From aae045d3c67a3d99f3366b61945cf7048579eb4d Mon Sep 17 00:00:00 2001 From: Takeshi Date: Mon, 12 Oct 2026 09:27:48 +0900 Subject: [PATCH] Preserve ready-route candidate and reviewed finite evidence through r305 preparation --- .../native-ready-route-r302-r305/README.md | 11 + .../thetree-prepare-ready-route-build-r303.py | 16 + ...e-prepare-ready-route-impact-whole-r305.py | 21 + ...tree-prepare-ready-route-local-r304-r02.py | 83 ++ .../thetree-prepare-ready-route-local-r304.py | 76 ++ .../thetree-prepare-ready-route-r302.py | 64 ++ .../manifest.json | 602 ++++++++++++ ...-build-actual-independent-review-r303.json | 288 ++++++ ...e-build-actual-root-verification-r303.json | 218 +++++ ...-preexecution-independent-review-r303.json | 319 +++++++ ...d-preexecution-root-verification-r303.json | 278 ++++++ ...native-ready-route-build-preview-r303.json | 61 ++ .../p23-02-native-ready-route-build-r303.py | 181 ++++ .../compile-062-phase.json | 28 + .../compile-062/ended.json | 49 + .../compile-062/started.json | 45 + .../compile-062/stderr.log | 0 .../compile-062/stdout.log | 0 .../execution.json | 173 ++++ .../input.json.gz | Bin 0 -> 137740 bytes .../link-phase.json | 28 + .../link/ended.json | 35 + .../link/started.json | 31 + .../link/stderr.log | 0 .../link/stdout.log | 0 .../input.json | 77 ++ .../source/tree_core.hpp | 75 ++ .../source/tree_numeric_core.cpp | 868 ++++++++++++++++++ ...te-checkpoint-independent-review-r305.json | 763 +++++++++++++++ ...ute-checkpoint-root-verification-r305.json | 713 ++++++++++++++ ...-preexecution-independent-review-r305.json | 311 +++++++ ...02-native-ready-route-impact-whole-r305.py | 63 ++ .../baseline-guarded.gd | 16 + .../candidate-guarded.gd | 16 + .../input.json.gz | Bin 0 -> 229318 bytes .../preexecution-root-verification.json | 268 ++++++ .../s6-guarded.gd | 17 + .../whole.gd | 38 + ...al-actual-independent-review-r304-r02.json | 384 ++++++++ ...execution-independent-review-r304-r02.json | 218 +++++ ...-preexecution-independent-review-r304.json | 204 ++++ ...23-02-native-ready-route-local-r304-r02.gd | 162 ++++ ...23-02-native-ready-route-local-r304-r02.py | 74 ++ .../actual-root-verification.json | 263 ++++++ .../fixtures.varbytes.zst | Bin 0 -> 709 bytes .../ready-route-fixtures.varbytes.zst | Bin 0 -> 332 bytes .../boundaries-measurement/report.json | 33 + .../boundaries-phase.json | 185 ++++ .../boundaries-profile.json | 20 + .../boundaries/adapter-owned-cleanup.json | 18 + .../boundaries/ended.json | 38 + .../boundaries/engine-native.log | 116 +++ .../boundaries/outer-owned-finally.json | 39 + .../boundaries/process.json | 140 +++ .../boundaries/started.json | 40 + .../boundaries/stderr.log | 0 .../boundaries/stdout.log | 120 +++ .../candidate-guarded.gd | 11 + .../candidate.gdextension | 7 + .../execution.json | 269 ++++++ .../input.json.gz | Bin 0 -> 165347 bytes .../preexecution-root-verification.json | 178 ++++ .../p23-02-native-ready-route-local-r304.gd | 155 ++++ .../p23-02-native-ready-route-local-r304.py | 74 ++ .../candidate-guarded.gd | 11 + .../candidate.gdextension | 7 + .../input.json.gz | Bin 0 -> 165211 bytes .../preexecution-root-verification.json | 168 ++++ ...-route-static-independent-review-r302.json | 136 +++ ...y-route-static-root-verification-r302.json | 93 ++ 70 files changed, 8995 insertions(+) create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link-phase.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/ended.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/started.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stderr.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stdout.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/input.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-independent-review-r305.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-root-verification-r305.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/process.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/started.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json create mode 100644 docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md new file mode 100644 index 0000000..97a3ad7 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md @@ -0,0 +1,11 @@ +# P23-02 native ready-route r302–r305 checkpoint + +コミット時点の未採用候補と有限検証を保存する。制作実装と採用親 r274/library275 は保持。候補 r302 は exact builtin Path の compact parent 経路復元と typed route の複製を native で行い、条件外では元の GDScript helper に戻る。候補ソース・準備 author・実行 driver・版付き input・レビュー・全文 fixture とログを manifest で固定する。 + +r302 静的レビュー、r303 の bridge compile/link と実出力の独立レビュー、r304-r02 局所 252成功/0失敗を保存。局所は既存15ケースと新しい ready-route 8ケースを含み、直接の原 Path helper 比較、型・readonly・所有と複製後の変更分離を列挙条件で確認した。未変更の tag 1028 行列は重複実行していない。r304 は connector がない準備不備を実行前レビューで拒否し、未実行の記録を保持。r304-r02 は既存 connector と batch active 確認を加えて実行した。 + +r305 は S6 と同一条件で代表 whole を比較する driver の準備・実行前独立レビュー・root pin 照合まで。コミット時点で未実行。whole 同値、全体速度利益、50ms/P95/D10、必須最終版全回帰、一般再入、invalid shape/index/type fallback、途中の custom/script 置換は未受入。candidate r302/library303 は未採用。テスト成功数を成果単位完了へ換算しない。 + +正式完了追加0。30パッケージ/88成果、正式9/着手19/予定60、部分点なし。P23-02 は着手中、原17条件 C01–C09/X1–X8 は全て未受入。Windows C08/X8 のみブロック。手動 Ctrl 保持 wheel と左保持 drag は延期・免除なし。次に閉じる1件は引き続き P23-02。次の検証は準備済み r305 の1比較を行い、全体利益と同値から候補の扱いを決める。 + +現在の正式台帳 r301 と過去証拠を変更せず、この checkpoint に現在の候補段階を追加保存する。完了や採用を宣言する台帳更新は行っていない。大きな JSON は gzip 復元後の全文一致を検証した。SDK、engine、stage、生成 object と dylib は同梱せず、元ローカル artifacts の版付き参照と出力 hash を保持するため、単独実行パッケージではない。保存 GDScript は親 .gdignore により本体走査から除外される。 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py new file mode 100644 index 0000000..96a8b33 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py @@ -0,0 +1,16 @@ +from pathlib import Path +import ast,json +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';old=A/'p23-02-native-pure-tag-projection-build-r275.py';p=A/'p23-02-native-ready-route-build-r303.py';assert not p.exists() +text=old.read_text() +for oldname,newname in [('p23-02-native-pure-tag-projection-candidate-r274','p23-02-native-ready-route-candidate-r302'),('p23-02-native-pure-tag-projection-static-independent-review-r274','p23-02-native-ready-route-static-independent-review-r302'),('p23-02-native-pure-tag-projection-static-root-verification-r274','p23-02-native-ready-route-static-root-verification-r302'),('p23-02-native-pure-tag-projection-build-preexecution-independent-review-r275','p23-02-native-ready-route-build-preexecution-independent-review-r303'),('p23-02-native-pure-tag-projection-build-preexecution-root-verification-r275','p23-02-native-ready-route-build-preexecution-root-verification-r303'),('p23-02-native-pure-tag-projection-build-preview-r275','p23-02-native-ready-route-build-preview-r303'),('p23-02-native-pure-tag-projection-build-r275','p23-02-native-ready-route-build-r303')]:text=text.replace(oldname,newname) +text=text.replace('r274 pure builtin tag projection','r302 builtin compact ready-route materialization').replace('current canonical184','current canonical301').replace('Exact modified r265-r03 WALK provider bridge','Exact modified r302 compact ready-route materialization bridge');ast.parse(text);p.write_text(text) +v=json.loads((A/'p23-02-native-pure-tag-projection-build-preview-r275.json').read_text()) +def rewrite(x): + if isinstance(x,str):return x.replace('p23-02-native-pure-tag-projection-candidate-r274','p23-02-native-ready-route-candidate-r302').replace('p23-02-native-pure-tag-projection-build-r275','p23-02-native-ready-route-build-r303') + if isinstance(x,list):return [rewrite(y) for y in x] + if isinstance(x,dict):return {k:rewrite(y) for k,y in x.items()} + return x +v=rewrite(v);v['scope']='Same authenticated compiler/options/SDK archive as275; only r302 candidate and r303 output paths changed. 1 bridge compile +1 link, SDK compile0, engine0, unadopted.' +p=A/'p23-02-native-ready-route-build-preview-r303.json' +with p.open('x') as f:json.dump(v,f,ensure_ascii=False,indent=2);f.write('\n') +print('prepared303 build runner/preview; no compiler/engine runs') diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py new file mode 100644 index 0000000..e652a62 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py @@ -0,0 +1,21 @@ +from pathlib import Path +import ast,importlib.util,json,shutil,sys +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-native-ready-route-impact-whole-r305';driver=A/'p23-02-native-ready-route-impact-whole-r305.py' +s=importlib.util.spec_from_file_location('prep305',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +assert not O.exists() and not driver.exists();assert shutil.disk_usage(A).free>=528*1048576 +old=A/'p23-02-native-pure-tag-impact-whole-r281';plan=r.read(old/'input.json');current=r.read(A/'p23-02-native-ready-route-local-r304-r02/input.json');baseline=r.read(A/'p23-02-native-pure-tag-local-r278-r04/input.json');review=A/'p23-02-native-ready-route-local-actual-independent-review-r304-r02.json';root=A/'p23-02-native-ready-route-local-r304-r02/actual-root-verification.json' +assert r.read(review)['finite_local_equivalence_accepted'] and not r.read(review)['blockers'];assert r.read(root)['passed'] and r.read(root)['review_sha256']==r.sha(review);assert plan['expected_stage']==current['expected_stage']==baseline['expected_stage'];stage=Path(plan['stage']);parent=Path(plan['parent']);assert r.inventory(stage,stage=True)==r.inventory(parent,stage=True)==plan['expected_stage'];O.mkdir() +baseconf=baseline['pins']['config'];newconf=current['pins']['config'];qa=(old/'whole.gd').read_text().replace('r265-r03/library266-r02 versus r274/library275','r274/library275 versus r302/library303').replace('baseline r265-r03/library266-r02 versus pure tag r274/library275','baseline r274/library275 versus ready-route r302/library303');whole=O/'whole.gd';whole.write_text(qa) +s6=(old/'s6-guarded.gd').read_text();oldconf=plan['pins']['config_candidate']['path'];assert s6.count(oldconf)==1;(O/'s6-guarded.gd').write_text(s6.replace(oldconf,newconf['path'])) +for mode,conf in [('baseline',baseconf),('candidate',newconf)]: + text=(old/'candidate-guarded.gd').read_text();text=text.replace(text.splitlines()[0],'extends '+json.dumps(str(whole)),1);encoded=json.dumps(oldconf);assert text.count(encoded)==1;text=text.replace(encoded,json.dumps(conf['path']));(O/(mode+'-guarded.gd')).write_text(text) +oldrunner=A/'p23-02-native-pure-tag-impact-whole-r281.py';runner=oldrunner.read_text().replace('p23-02-native-pure-tag-impact-whole-r281','p23-02-native-ready-route-impact-whole-r305').replace('p23-02-native-pure-tag-impact-whole-preexecution-independent-review-r281','p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305');ast.parse(runner);driver.write_text(runner) +pins={k:plan['pins'][k] for k in ['engine','helper','run_all','profile_guard','modified_budget','original_budget','original_path','fixture','oracle','original_s6','original_clock','QA_base','whole_original_input','whole_prior_review','prior_combined_input','prior_combined_review']} +pins.update(config_baseline=baseconf,library_baseline=baseline['pins']['copied_library'],config_candidate=newconf,new_library=current['pins']['original_library'],library_candidate=current['pins']['copied_library']) +paths=dict(prepare=Path(__file__),runner=driver,QA=whole,QA_original=old/'whole.gd',prior_driver=oldrunner,prior_input=old/'input.json',prior_review=A/'p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json',prior_root=old/'actual-root-verification.json',current_local_input=A/'p23-02-native-ready-route-local-r304-r02/input.json',local_review=review,local_root=root,candidate_input=A/'p23-02-native-ready-route-candidate-r302/input.json',host_review=A/'p23-02-native-ready-route-build-actual-independent-review-r303.json',host_root=A/'p23-02-native-ready-route-build-actual-root-verification-r303.json',baseline_local_input=A/'p23-02-native-pure-tag-local-r278-r04/input.json',baseline_local_review=A/'p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json',baseline_local_root=A/'p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json',current_matrix=A/'p23-02-current-progress-disposition-r301.json',provider_review=A/'p23-02-native-provider-fallback-static-independent-review-r280.json',provider_root=A/'p23-02-native-provider-fallback-static-root-verification-r280.json') +for mode in ['s6','baseline','candidate']:paths['starter_'+mode]=O/(mode+'-guarded.gd') +for k,p in paths.items():pins[k]=pin(p) +for q in pins.values():assert pin(Path(q['path']))==q +plan.update(pins=pins,source_before=r.source_refs(R),default_before=r.default_player(R),doc4_before={n:r.sha(D/n) for n in ['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json']},support_inventory=r.inventory(r.SUPPORT),expected_total_seconds=[8,60],scope='Original unchanged S6/GameClock24 on r302/library303; only if pass one adjacent baseline274/library275 versus candidate302/library303 cold646 paused speed1 whole64715 each. Same physical209/parent239 original1299 stage, Budget257 transient same all three phases, original Path/Guest without counters. Full11487732bytes original oracle required. Current301 source/default/D4/SUPPORT/stages preserved; restoration after owned end. Existing private libraries/configs reused, no SDK/bridgecompile/librarycopy/stageclone/localrepeat/full172. One finite timing pair is not stable/P95/D10/50ms/Main/render/OS/x3/Windows/adoption/unit acceptance. Unsupported shape/index conversion and mid-call custom/script replacement remain uncovered before adoption.');r.write(O/'input.json',plan);print(dict(prepared=True,pins=len(pins),engine_runs=0,compiler_runs=0,free_bytes=shutil.disk_usage(A).free)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py new file mode 100644 index 0000000..98c1a43 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py @@ -0,0 +1,83 @@ +from pathlib import Path +import ast,json,importlib.util,sys,shutil,uuid +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-native-ready-route-local-r304-r02';QA=A/'p23-02-native-ready-route-local-r304-r02.gd';driver=A/'p23-02-native-ready-route-local-r304-r02.py';assert not O.exists() and not QA.exists() +s=importlib.util.spec_from_file_location('prep304',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +review=A/'p23-02-native-ready-route-build-actual-independent-review-r303.json';root=A/'p23-02-native-ready-route-build-actual-root-verification-r303.json';assert r.read(review)['host_build_accepted'] and not r.read(review)['blockers'];assert r.read(root)['passed'] and r.read(root)['review_sha256']==r.sha(review);assert shutil.disk_usage(A).free>=528*1048576 +stage=A/'p23-02-native-reconstruction-local-r209/stage';parent=A/'p23-02-native-local-names-candidate-r239/stage';inventory=r.inventory(stage,stage=True);assert inventory==r.inventory(parent,stage=True);O.mkdir() +base=A/'p23-02-native-guest-pipeline-boundaries-r195.gd';text=base.read_text() +classes='''const ROUTE_CASES := ["ordinary", "goal_only", "cycle_limit", "negative_terminal", "readonly_cells", "readonly_indices", "untyped_cells", "noncompact"] +var route_records: Array = [] +func route_setup(label: String) -> Dictionary: + setup("ordinary") + var p=runtime.path_service + check(p.configure_connector(&"finite.route.connector",Vector3i.ZERO,Vector3i(1,0,0)),label+" finite default-cost connector configured") + var goal := Vector3i.ZERO if label == "goal_only" else Vector3i(2,0,0) + var goals: Array=[goal] + p.begin_guest_path_query_batch(Vector3i.ZERO,goals) + var active: bool=not p._query_batch.is_empty() and p._query_batch[&"start"]==Vector3i.ZERO and p._query_batch[&"targets"].has(goal) + check(active,label+" actual ready batch start and target active") + if not active: return {} + var layers: Array[int]=[0,1] + var access: Array[StringName]=[] + var tree: Dictionary=p._build_guest_query_tree_compact(Vector3i.ZERO,p._query_batch[&"targets"],layers,access) + if label == "cycle_limit": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[1]=2;parents[2]=1;tree[&"parent_indices"]=parents + elif label == "negative_terminal": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[2]=-99;tree[&"parent_indices"]=parents + elif label == "readonly_cells": tree[&"cells"].make_read_only() + elif label == "readonly_indices": tree[&"indices"].make_read_only() + elif label == "untyped_cells": + var cells: Array=[];cells.append_array(tree[&"cells"]);tree[&"cells"]=cells + elif label == "noncompact": + tree[&"compact"]=false + tree[&"parents"]={Vector3i(1,0,0):Vector3i.ZERO,Vector3i(2,0,0):Vector3i(1,0,0)} + tree[&"costs"]={Vector3i.ZERO:0,Vector3i(1,0,0):100,Vector3i(2,0,0):200} + p._query_batch[&"tree"]=tree;p._query_batch[&"ready"]=true;p._query_batch[&"arithmetic_wrapped"]=false + return {"path":p,"goal":goal,"goals":goals,"layers":layers,"access":access,"tree":tree} +func route_case(label: String) -> void: + var input: Dictionary=route_setup(label) + if input.is_empty(): return + var p=input["path"] + var before: PackedByteArray=var_to_bytes(input["tree"]) + var actual: Dictionary=core.nearest_guest_access(p,Vector3i.ZERO,input["goals"],input["goal"],input["layers"],input["access"],Callable(Time,"get_ticks_usec")) + check(bool(actual.get(&"supported",false)),label+" ready route actual native selected") + check(var_to_bytes(input["tree"])==before and (label!="readonly_cells" or input["tree"][&"cells"].is_read_only()) and (label!="readonly_indices" or input["tree"][&"indices"].is_read_only()),label+" ready route original tree and readonly unchanged") + var got_bytes: PackedByteArray=var_to_bytes(actual) + var after: PackedByteArray=var_to_bytes(state()) + var route: Array=actual[&"path"] + var key: String=p._cache_key(Vector3i.ZERO,input["goal"],input["layers"],input["access"]) + var cached: Array=p._path_cache[key] + check(route.is_typed() and route.get_typed_builtin()==TYPE_VECTOR3I and not route.is_read_only() and cached.is_typed() and cached.get_typed_builtin()==TYPE_VECTOR3I and not cached.is_read_only() and not is_same(route,cached),label+" fresh writable typed path and separate cache copy") + var cache_before: PackedByteArray=var_to_bytes(p._path_cache) + route[0]=Vector3i(99,99,0) + check(var_to_bytes(p._path_cache)==cache_before,label+" returned path mutation leaves cache unchanged") + var returned_before: PackedByteArray=var_to_bytes(route) + cached[0]=Vector3i(77,77,0) + check(var_to_bytes(route)==returned_before,label+" cache copy mutation leaves returned path unchanged") + input=route_setup(label) + if input.is_empty(): return + p=input["path"];before=var_to_bytes(input["tree"]) + var expected: Dictionary=p._query_nearest_guest_access_without_native(Vector3i.ZERO,input["goals"],input["goal"]) + check(var_to_bytes(expected)==got_bytes,label+" full original ordered typed ready-route result") + check(var_to_bytes(state())==after,label+" full Runtime cache counters errors and signals equal") + check(var_to_bytes(input["tree"])==before,label+" original fallback tree unchanged") + route_records.append({"case":label,"expected":expected,"actual":bytes_to_var(got_bytes)}) +''' +assert text.count('func run() -> void:')==1;text=text.replace('func run() -> void:',classes+'\nfunc run() -> void:',1) +assert text.count('\tcore=null')==1;text=text.replace('\tcore=null','\tfor label: String in ROUTE_CASES: route_case(label)\n\tvar route_payload := typed("ready-route-fixtures",route_records)\n\tcore=null',1) +text=text.replace('"case_count":CASES.size(),','"case_count":CASES.size(),"ready_route_cases":ROUTE_CASES.size(),"ready_route_fixtures":route_payload,',1).replace('Guest pipeline boundaries: ','Ready route local: ');QA.write_text(text) +oldO=A/'p23-02-native-pure-tag-local-r278-r04';oldplan=r.read(oldO/'input.json');oldconfig=Path(oldplan['pins']['config']['path']);oldlib=oldplan['pins']['copied_library']['path'];newlib=Path(r.read(A/'p23-02-native-ready-route-build-r303/execution.json')['library']['path']);ascii_dir=Path('/private/tmp')/('TheTree-ready-route-r304-r02-'+uuid.uuid4().hex);ascii_dir.mkdir();copy=ascii_dir/'candidate.dylib';shutil.copyfile(newlib,copy);assert copy.read_bytes()==newlib.read_bytes();ct=oldconfig.read_text();assert ct.count(oldlib)==2;config=O/'candidate.gdextension';config.write_text(ct.replace(oldlib,str(copy))) +starter=O/'candidate-guarded.gd';st=Path(oldplan['pins']['starter_boundaries']['path']).read_text();st=st.replace(json.dumps(str(Path(oldplan['pins']['QA']['path'])))[1:-1],json.dumps(str(QA))[1:-1]).replace(json.dumps(str(oldconfig))[1:-1],json.dumps(str(config))[1:-1]);assert 'r278-r04.gd' not in st;starter.write_text(st) +oldrunner=A/'p23-02-native-pure-tag-local-r278-r04.py';runner=oldrunner.read_text().replace('p23-02-native-pure-tag-local-r278-r04','p23-02-native-ready-route-local-r304-r02').replace('p23-02-native-pure-tag-local-preexecution-independent-review-r278-r04','p23-02-native-ready-route-local-preexecution-independent-review-r304-r02').replace('r274-library275','r302-library303') +runner=runner.replace("assert report['case_count']==15 and report['tag_matrix_cases']==1028 and report['callback_cases']==2", "assert report['case_count']==15 and report['ready_route_cases']==8") +runner=runner.replace("unpack(report['tag_fixtures'])", "unpack(report['ready_route_fixtures'])") +runner=runner.replace('Fifteen original boundary fixtures plus1028 tag combinations and2 actual script-change callback fixtures compare','Fifteen original projection boundary fixtures plus8 compact ready-route boundary fixtures compare').replace('tag matrix full Runtime state is compared only for empty/all-tag, while all cases compare full candidates and recorded Path effects.','ready route cases compare full Runtime and Path state, ownership, typed/readonly, cache and ordered results; invalid shape and mid-call script-change execution remains uncovered.') +ast.parse(runner);driver.write_text(runner) +legacy=r.read(A/'p23-02-native-guest-pipeline-boundaries-r195/input.json');pins={k:oldplan['pins'][k] for k in ['engine','helper','run_all','profile_guard']};pins.update({k:legacy['pins'][k] for k in ['fixture','oracle']}) +paths=dict(QA=QA,QA_parent=base,QA_base=A/'p23-02-build-preview-monitor-compressed-r06.gd',runner=driver,author=Path(__file__),starter_boundaries=starter,config=config,original_library=newlib,copied_library=copy,host_review=review,host_root=root,host_execution=A/'p23-02-native-ready-route-build-r303/execution.json',candidate_input=A/'p23-02-native-ready-route-candidate-r302/input.json',source_cpp=A/'p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp',original_runtime=stage/'autoload/simulation_runtime.gd',original_path=stage/'scripts/world/path_service.gd',original_budget=stage/'scripts/core/performance_budget.gd',old_config=oldconfig,old_starter=Path(oldplan['pins']['starter_boundaries']['path']),prior_input=oldO/'input.json',prior_driver=oldrunner,current_matrix=A/'p23-02-current-progress-disposition-r301.json',rejected_predecessor=A/'p23-02-native-ready-route-local-preexecution-independent-review-r304.json',rejected_input=A/'p23-02-native-ready-route-local-r304/input.json') +for k,p in paths.items():pins[k]=pin(p) +r.write(O/'input.json',dict(pins=pins,stage=str(stage),parent=str(parent),expected_stage=inventory,source_before=r.source_refs(R),default_before=r.default_player(R),doc4_before={n:r.sha(D/n) for n in ['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json']},support_inventory=r.inventory(r.SUPPORT),specs=[dict(name='boundaries',label='Ready route local: ',expected_checks=252)],capacity_floor_bytes=528*1048576,maximum_growth_bytes=16*1048576,expected_seconds=[3,30],watchdog_seconds=90,engine_processes=1,compiler_runs=0,stage_clones=0,expected_checks_basis='original139 +8*(2 graph setup+4 connector/batch setup+8 assertions)+1 route codec=252',ready_route_cases=8,scope='New binary local differential vs original Runtime loop and original Path nearest helper, cycle/limit/readonly/typed/cache ownership; no whole/performance/adoption/unit acceptance. Invalid shape/index conversion, mid-call custom/script replacement remain uncovered and required before adoption. Unchanged1028 pure tag matrix not repeated, no claim old full binary evidence applies to302.',unit_accepted=False));print(dict(prepared=True,pins=len(pins),cases=8,expected_checks=252,engine_runs=0)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py new file mode 100644 index 0000000..ab66a01 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py @@ -0,0 +1,76 @@ +from pathlib import Path +import ast,json,importlib.util,sys,shutil,uuid +sys.dont_write_bytecode=True +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-native-ready-route-local-r304';QA=A/'p23-02-native-ready-route-local-r304.gd';driver=A/'p23-02-native-ready-route-local-r304.py';assert not O.exists() and not QA.exists() +s=importlib.util.spec_from_file_location('prep304',R/'tools/run_all_tests.py');r=importlib.util.module_from_spec(s);s.loader.exec_module(r) +def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) +review=A/'p23-02-native-ready-route-build-actual-independent-review-r303.json';root=A/'p23-02-native-ready-route-build-actual-root-verification-r303.json';assert r.read(review)['host_build_accepted'] and not r.read(review)['blockers'];assert r.read(root)['passed'] and r.read(root)['review_sha256']==r.sha(review);assert shutil.disk_usage(A).free>=528*1048576 +stage=A/'p23-02-native-reconstruction-local-r209/stage';parent=A/'p23-02-native-local-names-candidate-r239/stage';inventory=r.inventory(stage,stage=True);assert inventory==r.inventory(parent,stage=True);O.mkdir() +base=A/'p23-02-native-guest-pipeline-boundaries-r195.gd';text=base.read_text() +classes='''const ROUTE_CASES := ["ordinary", "goal_only", "cycle_limit", "negative_terminal", "readonly_cells", "readonly_indices", "untyped_cells", "noncompact"] +var route_records: Array = [] +func route_setup(label: String) -> Dictionary: + setup("ordinary") + var p=runtime.path_service + var goal := Vector3i.ZERO if label == "goal_only" else Vector3i(2,0,0) + var goals: Array=[goal] + p.begin_guest_path_query_batch(Vector3i.ZERO,goals) + var layers: Array[int]=[0,1] + var access: Array[StringName]=[] + var tree: Dictionary=p._build_guest_query_tree_compact(Vector3i.ZERO,p._query_batch[&"targets"],layers,access) + if label == "cycle_limit": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[1]=2;parents[2]=1;tree[&"parent_indices"]=parents + elif label == "negative_terminal": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[2]=-99;tree[&"parent_indices"]=parents + elif label == "readonly_cells": tree[&"cells"].make_read_only() + elif label == "readonly_indices": tree[&"indices"].make_read_only() + elif label == "untyped_cells": + var cells: Array=[];cells.append_array(tree[&"cells"]);tree[&"cells"]=cells + elif label == "noncompact": + tree[&"compact"]=false + tree[&"parents"]={Vector3i(1,0,0):Vector3i.ZERO,Vector3i(2,0,0):Vector3i(1,0,0)} + tree[&"costs"]={Vector3i.ZERO:0,Vector3i(1,0,0):100,Vector3i(2,0,0):200} + p._query_batch[&"tree"]=tree;p._query_batch[&"ready"]=true;p._query_batch[&"arithmetic_wrapped"]=false + return {"path":p,"goal":goal,"goals":goals,"layers":layers,"access":access,"tree":tree} +func route_case(label: String) -> void: + var input: Dictionary=route_setup(label) + var p=input["path"] + var before: PackedByteArray=var_to_bytes(input["tree"]) + var actual: Dictionary=core.nearest_guest_access(p,Vector3i.ZERO,input["goals"],input["goal"],input["layers"],input["access"],Callable(Time,"get_ticks_usec")) + check(bool(actual.get(&"supported",false)),label+" ready route actual native selected") + check(var_to_bytes(input["tree"])==before and (label!="readonly_cells" or input["tree"][&"cells"].is_read_only()) and (label!="readonly_indices" or input["tree"][&"indices"].is_read_only()),label+" ready route original tree and readonly unchanged") + var got_bytes: PackedByteArray=var_to_bytes(actual) + var after: PackedByteArray=var_to_bytes(state()) + var route: Array=actual[&"path"] + var key: String=p._cache_key(Vector3i.ZERO,input["goal"],input["layers"],input["access"]) + var cached: Array=p._path_cache[key] + check(route.is_typed() and route.get_typed_builtin()==TYPE_VECTOR3I and not route.is_read_only() and cached.is_typed() and cached.get_typed_builtin()==TYPE_VECTOR3I and not cached.is_read_only() and not is_same(route,cached),label+" fresh writable typed path and separate cache copy") + var cache_before: PackedByteArray=var_to_bytes(p._path_cache) + route[0]=Vector3i(99,99,0) + check(var_to_bytes(p._path_cache)==cache_before,label+" returned path mutation leaves cache unchanged") + var returned_before: PackedByteArray=var_to_bytes(route) + cached[0]=Vector3i(77,77,0) + check(var_to_bytes(route)==returned_before,label+" cache copy mutation leaves returned path unchanged") + input=route_setup(label);p=input["path"];before=var_to_bytes(input["tree"]) + var expected: Dictionary=p._query_nearest_guest_access_without_native(Vector3i.ZERO,input["goals"],input["goal"]) + check(var_to_bytes(expected)==got_bytes,label+" full original ordered typed ready-route result") + check(var_to_bytes(state())==after,label+" full Runtime cache counters errors and signals equal") + check(var_to_bytes(input["tree"])==before,label+" original fallback tree unchanged") + route_records.append({"case":label,"expected":expected,"actual":bytes_to_var(got_bytes)}) +''' +assert text.count('func run() -> void:')==1;text=text.replace('func run() -> void:',classes+'\nfunc run() -> void:',1) +assert text.count('\tcore=null')==1;text=text.replace('\tcore=null','\tfor label: String in ROUTE_CASES: route_case(label)\n\tvar route_payload := typed("ready-route-fixtures",route_records)\n\tcore=null',1) +text=text.replace('"case_count":CASES.size(),','"case_count":CASES.size(),"ready_route_cases":ROUTE_CASES.size(),"ready_route_fixtures":route_payload,',1).replace('Guest pipeline boundaries: ','Ready route local: ');QA.write_text(text) +oldO=A/'p23-02-native-pure-tag-local-r278-r04';oldplan=r.read(oldO/'input.json');oldconfig=Path(oldplan['pins']['config']['path']);oldlib=oldplan['pins']['copied_library']['path'];newlib=Path(r.read(A/'p23-02-native-ready-route-build-r303/execution.json')['library']['path']);ascii_dir=Path('/private/tmp')/('TheTree-ready-route-r304-'+uuid.uuid4().hex);ascii_dir.mkdir();copy=ascii_dir/'candidate.dylib';shutil.copyfile(newlib,copy);assert copy.read_bytes()==newlib.read_bytes();ct=oldconfig.read_text();assert ct.count(oldlib)==2;config=O/'candidate.gdextension';config.write_text(ct.replace(oldlib,str(copy))) +starter=O/'candidate-guarded.gd';st=Path(oldplan['pins']['starter_boundaries']['path']).read_text();st=st.replace(json.dumps(str(Path(oldplan['pins']['QA']['path'])))[1:-1],json.dumps(str(QA))[1:-1]).replace(json.dumps(str(oldconfig))[1:-1],json.dumps(str(config))[1:-1]);assert 'r278-r04.gd' not in st;starter.write_text(st) +oldrunner=A/'p23-02-native-pure-tag-local-r278-r04.py';runner=oldrunner.read_text().replace('p23-02-native-pure-tag-local-r278-r04','p23-02-native-ready-route-local-r304').replace('p23-02-native-pure-tag-local-preexecution-independent-review-r278-r04','p23-02-native-ready-route-local-preexecution-independent-review-r304').replace('r274-library275','r302-library303') +runner=runner.replace("assert report['case_count']==15 and report['tag_matrix_cases']==1028 and report['callback_cases']==2", "assert report['case_count']==15 and report['ready_route_cases']==8") +runner=runner.replace("unpack(report['tag_fixtures'])", "unpack(report['ready_route_fixtures'])") +runner=runner.replace('Fifteen original boundary fixtures plus1028 tag combinations and2 actual script-change callback fixtures compare','Fifteen original projection boundary fixtures plus8 compact ready-route boundary fixtures compare').replace('tag matrix full Runtime state is compared only for empty/all-tag, while all cases compare full candidates and recorded Path effects.','ready route cases compare full Runtime and Path state, ownership, typed/readonly, cache and ordered results; invalid shape and mid-call script-change execution remains uncovered.') +ast.parse(runner);driver.write_text(runner) +legacy=r.read(A/'p23-02-native-guest-pipeline-boundaries-r195/input.json');pins={k:oldplan['pins'][k] for k in ['engine','helper','run_all','profile_guard']};pins.update({k:legacy['pins'][k] for k in ['fixture','oracle']}) +paths=dict(QA=QA,QA_parent=base,QA_base=A/'p23-02-build-preview-monitor-compressed-r06.gd',runner=driver,author=Path(__file__),starter_boundaries=starter,config=config,original_library=newlib,copied_library=copy,host_review=review,host_root=root,host_execution=A/'p23-02-native-ready-route-build-r303/execution.json',candidate_input=A/'p23-02-native-ready-route-candidate-r302/input.json',source_cpp=A/'p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp',original_runtime=stage/'autoload/simulation_runtime.gd',original_path=stage/'scripts/world/path_service.gd',original_budget=stage/'scripts/core/performance_budget.gd',old_config=oldconfig,old_starter=Path(oldplan['pins']['starter_boundaries']['path']),prior_input=oldO/'input.json',prior_driver=oldrunner,current_matrix=A/'p23-02-current-progress-disposition-r301.json') +for k,p in paths.items():pins[k]=pin(p) +r.write(O/'input.json',dict(pins=pins,stage=str(stage),parent=str(parent),expected_stage=inventory,source_before=r.source_refs(R),default_before=r.default_player(R),doc4_before={n:r.sha(D/n) for n in ['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json']},support_inventory=r.inventory(r.SUPPORT),specs=[dict(name='boundaries',label='Ready route local: ',expected_checks=220)],capacity_floor_bytes=528*1048576,maximum_growth_bytes=16*1048576,expected_seconds=[3,30],watchdog_seconds=90,engine_processes=1,compiler_runs=0,stage_clones=0,expected_checks_basis='original139 +8*(2 graph setup+8 assertions)+1 route codec=220',ready_route_cases=8,scope='New binary local differential vs original Runtime loop and original Path nearest helper, cycle/limit/readonly/typed/cache ownership; no whole/performance/adoption/unit acceptance. Invalid shape/index conversion, mid-call custom/script replacement remain uncovered and required before adoption. Unchanged1028 pure tag matrix not repeated, no claim old full binary evidence applies to302.',unit_accepted=False));print(dict(prepared=True,pins=len(pins),cases=8,expected_checks=220,engine_runs=0)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py new file mode 100644 index 0000000..875d2e5 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py @@ -0,0 +1,64 @@ +from pathlib import Path +import hashlib,json +R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');A=R/'artifacts/original-completion-2026-10-02';P=A/'p23-02-native-pure-tag-projection-candidate-r274';C=A/'p23-02-native-ready-route-candidate-r302';assert not C.exists();(C/'source').mkdir(parents=True) +text=(P/'source/tree_numeric_core.cpp').read_text();changes=[] +def replace(old,new): + global text + assert text.count(old)==1;text=text.replace(old,new);changes.append((old,new)) +replace(' const StringName k__build_guest_query_tree_compact', ' const StringName k__adjacency{"_adjacency",false};\n const StringName k_cells{"cells",false};\n const StringName k_parent_indices{"parent_indices",false};\n const StringName k__build_guest_query_tree_compact') +replace(' else if (settled.has(goal)) route = Array(path->call(n.k__guest_tree_reconstruct_path, tree, goal));',''' else if (settled.has(goal)) { + if (!reconstruct_builtin_compact_route(n,path,tree,goal,route)) + route = Array(path->call(n.k__guest_tree_reconstruct_path, tree, goal)); + }''') +replace(' cache[key] = path->call(n.k__copy_path, route);',''' // Fresh Array storage with copy-on-write value backing, matching the + // original typed _copy_path result. Recheck script at this call position. + cache[key] = builtin(n,path,"res://scripts/world/path_service.gd") && + route.is_typed() && route.get_typed_builtin()==Variant::VECTOR3I ? + Variant(route.duplicate(false)) : Variant(path->call(n.k__copy_path,route));''') +needle='''public: +private: + // One existing builtin provider operation''' +helper=''' // Translate only the builtin compact parent walk. Preflight reads have no + // callback or public writes. Unsupported shapes retain original dispatch at + // the original position; all temporary ownership is confined to this call. + static bool reconstruct_builtin_compact_route(const ProjectionNames &n,Object *path, + const Dictionary &tree,const Vector3i &goal,TypedArray &output) { + if (!builtin(n,path,"res://scripts/world/path_service.gd")) return false; + const Variant compact=tree.get(n.k_compact,Variant()); + if (compact.get_type()!=Variant::BOOL || !static_cast(compact)) return false; + const Variant raw_indices=tree.get(n.k_indices,Variant()); + const Variant raw_cells=tree.get(n.k_cells,Variant()); + const Variant raw_parents=tree.get(n.k_parent_indices,Variant()); + const Variant raw_adjacency=path->get(n.k__adjacency); + if (raw_indices.get_type()!=Variant::DICTIONARY || raw_cells.get_type()!=Variant::ARRAY || + raw_parents.get_type()!=Variant::PACKED_INT64_ARRAY || raw_adjacency.get_type()!=Variant::DICTIONARY) return false; + const Dictionary indices=raw_indices; + if (!indices.has(goal) || indices[goal].get_type()!=Variant::INT) return false; + const Array cells=raw_cells; + const PackedInt64Array parents=raw_parents; + const Dictionary adjacency=raw_adjacency; + const int64_t maximum_length=adjacency.size()+int64_t(1); + int64_t current=indices[goal]; + TypedArray reversed; + reversed.push_back(goal); + while (true) { + // The original evaluates parent before its maximum-length condition. + if (current<0 || current>=parents.size()) return false; + if (parents[current]<0 || reversed.size()>maximum_length) break; + current=parents[current]; + if (current<0 || current>=cells.size() || cells[current].get_type()!=Variant::VECTOR3I) return false; + reversed.push_back(cells[current]); + } + reversed.reverse(); + output=reversed; + return true; + } +''' +replace(needle,helper+needle) +cpp=C/'source/tree_numeric_core.cpp';cpp.write_text(text);header=C/'source/tree_core.hpp';header.write_bytes((P/'source/tree_core.hpp').read_bytes()) +restored=text +for old,new in reversed(changes):assert restored.count(new)==1;restored=restored.replace(new,old) +assert restored==(P/'source/tree_numeric_core.cpp').read_text() +def pin(p):raw=p.read_bytes();return dict(path=str(p),bytes=len(raw),sha256=hashlib.sha256(raw).hexdigest()) +paths=[P/'source/tree_numeric_core.cpp',P/'source/tree_core.hpp',cpp,header,Path(__file__),A/'p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd',A/'p23-02-native-residual-symbol-map-r273-r04/execution.json',A/'p23-02-native-residual-sampling-r272-r03/actual-root-verification.json',A/'p23-02-integer-window-codec-array-source-r289/array.cpp',A/'p23-02-integer-window-codec-array-source-r289/source.json',A/'p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json',A/'p23-02-current-progress-disposition-r301.json'] +(C/'input.json').write_text(json.dumps(dict(pins={str(p):pin(p) for p in paths},scope='One compact ready-route reconstruction and fresh typed cache-copy bundle against retained r274/library275. Original parent order/maximum-length/cycle bound/error fallback/counters/callback positions/ownership/cache publication retained. Exact builtin Path rechecked at each original helper call; invalid shape and custom script use original helpers. Same graph/route/value policies; no persistent cache or scheduler/time/price/content change. Source-only uncompiled, unadopted. Historical sample273 on prior implementation is a location hypothesis only, not current timing acceptance.',parent_inverse_byteexact=True,changes=len(changes),compiler_runs=0,engine_runs=0,candidate_adopted=False,unit_accepted=False,unverified=['Compile/parse/type and fresh writable typed Array result','Finite compact parent/cycle/bounds/readonly/alias/custom script fallback behavior','Whole representative runtime/results/50ms/P95/D10','Mandatory final172/normal OS/Windows/original17']),ensure_ascii=False,indent=2)+'\n');print(dict(source_ready=True,changes=len(changes),bytes=cpp.stat().st_size,compiler_runs=0,engine_runs=0)) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json new file mode 100644 index 0000000..45739b6 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json @@ -0,0 +1,602 @@ +{ + "schema": 1, + "unit": "P23-02", + "status": "unadopted_candidate_finite_local_accepted_whole_not_executed", + "formal_completion_added": 0, + "entries": [ + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29", + "stored_bytes": 21696, + "stored_sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b", + "stored_bytes": 12307, + "stored_sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3", + "stored_bytes": 26409, + "stored_sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37", + "stored_bytes": 15934, + "stored_sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5", + "stored_bytes": 3085, + "stored_sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297", + "stored_bytes": 16465, + "stored_sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "bytes": 26171, + "sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917", + "stored_bytes": 26171, + "stored_sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4", + "stored_bytes": 7671, + "stored_sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b", + "stored_bytes": 28290, + "stored_sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023", + "stored_bytes": 17299, + "stored_sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d", + "stored_bytes": 16416, + "stored_sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373", + "stored_bytes": 11882, + "stored_sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432", + "stored_bytes": 7152, + "stored_sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1", + "stored_bytes": 11460, + "stored_sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3", + "stored_bytes": 7140, + "stored_sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618", + "stored_bytes": 11389, + "stored_sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b", + "stored_bytes": 5118, + "stored_sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f", + "stored_bytes": 6602, + "stored_sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480", + "stored_bytes": 3299, + "stored_sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59", + "stored_bytes": 56783, + "stored_sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3", + "stored_bytes": 1845, + "stored_sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39", + "stored_bytes": 2944, + "stored_sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056", + "stored_bytes": 621, + "stored_sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088", + "stored_bytes": 7142, + "stored_sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz", + "bytes": 658203, + "sha256": "034ff3aef70b9b8f8ada839f97127f65c2705983766a064f53a5f429f01da1a1", + "stored_bytes": 137740, + "stored_sha256": "810bb03f13faeb336f97e9ab31e96769d2a44dd98327996ed088c6ceac290f4e", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767", + "stored_bytes": 1339, + "stored_sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833", + "stored_bytes": 2030, + "stored_sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6", + "stored_bytes": 614, + "stored_sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a", + "stored_bytes": 1116, + "stored_sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38", + "stored_bytes": 319, + "stored_sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de", + "stored_bytes": 165211, + "stored_sha256": "4e90f26db243b10149b2b7cb1f35a3d41f8a3f6bdcfc367691d5f303b31a88e3", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "bytes": 9355, + "sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d", + "stored_bytes": 9355, + "stored_sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e", + "stored_bytes": 15302, + "stored_sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54", + "stored_bytes": 351, + "stored_sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746", + "stored_bytes": 1793, + "stored_sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db", + "stored_bytes": 13479, + "stored_sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97", + "stored_bytes": 964, + "stored_sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3", + "stored_bytes": 6723, + "stored_sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83", + "stored_bytes": 2422, + "stored_sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stored_bytes": 0, + "stored_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08", + "stored_bytes": 13629, + "stored_sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5", + "stored_bytes": 709, + "stored_sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d", + "stored_bytes": 332, + "stored_sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d", + "stored_bytes": 1309, + "stored_sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d", + "stored_bytes": 8183, + "stored_sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45", + "stored_bytes": 912, + "stored_sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed", + "stored_bytes": 1124, + "stored_sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642", + "stored_bytes": 327, + "stored_sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664", + "stored_bytes": 12210, + "stored_sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858", + "stored_bytes": 165347, + "stored_sha256": "22d37f665b3d01c48b13f2d67f6cbf3a6ca04c93b3696e7697a65bae0a273393", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab", + "stored_bytes": 9990, + "stored_sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91", + "stored_bytes": 1445, + "stored_sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125", + "stored_bytes": 1448, + "stored_sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5", + "stored_bytes": 229318, + "stored_sha256": "c5688c125ee132d4a6d0aa264d5076dcc5a70fd954c1bb8634c67bfe3994dc06", + "encoding": "gzip" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "bytes": 15532, + "sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e", + "stored_bytes": 15532, + "stored_sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3", + "stored_bytes": 1514, + "stored_sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3", + "encoding": "identity" + }, + { + "source": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa", + "stored_bytes": 4442, + "stored_sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294", + "stored_bytes": 2388, + "stored_sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d", + "stored_bytes": 5761, + "stored_sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890", + "stored_bytes": 10741, + "stored_sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-ready-route-local-r304.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03", + "stored_bytes": 10105, + "stored_sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03", + "encoding": "identity" + }, + { + "source": "/private/tmp/thetree-prepare-ready-route-r302.py", + "checkpoint": "docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5", + "stored_bytes": 6099, + "stored_sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5", + "encoding": "identity" + } + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json new file mode 100644 index 0000000..b342f52 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json @@ -0,0 +1,288 @@ +{ + "schema": 1, + "review": "r303 bounded actual independent host build review", + "host_build_accepted": true, + "blockers": [], + "evidence_sha256": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json", + "bytes": 16092, + "sha256": "75d3bbff767fb88af266c4b1b9da37d96294ab72b9e07fcac9a3e7e567a29d49" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json", + "bytes": 900666, + "sha256": "d2381f455e44d8355f54de0c52ed08d6ffbadbd68836848a87e96073c41e80e9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2251696, + "sha256": "f429c29496622a7bfd460ebf249bb3930a515ca4fedd7efc6d347acab8015c35" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json", + "bytes": 62521, + "sha256": "58eb89af57b5d445058adfacff053171765433570a5d406d324a476ede7695f1" + }, + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++": { + "path": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "bytes": 141373024, + "sha256": "7def90dd8829726686213a747fc5bff1583df933dae5edc55d755479e0bfe00a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json", + "bytes": 46759, + "sha256": "43cbba9c13c03bc8539efac1eaaf4da9b5d3d6a9af3875d8cc3a3994e1a59745" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json", + "bytes": 199445, + "sha256": "c3cbeb45c1353dfea5f8181d10cc60f8a9b81db55d766ac5db902ac28c159a61" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json", + "bytes": 838584, + "sha256": "bf6dafe0a55c9ffb0310ef5ede6471aac93f9dee4f4fe6ad84e20e998202514e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py", + "bytes": 14637, + "sha256": "e8cfbc4cea630e0cb245d825ac5daf9730e309c4895bcbc949a744f41a2d760a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json", + "bytes": 7774, + "sha256": "f8d005f09381389167f9e0aeaa169bc9e7dff162ef22ca2fd8e98df7ff1acafe" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist", + "bytes": 5388, + "sha256": "e5c7c40b8c5dc1a9f99f8b9fa51870f8fe180421225b8201d0c4c826aad11bdc" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef", + "bytes": 1607, + "sha256": "53c4fc868f6439e48e52bbc9445a48eab1e597bbfad037ab7480216cb0c6832f" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd", + "bytes": 155867, + "sha256": "5539059b5e609a9518358e42234cc9a439ae0f54e5e8ca136686a8c9ebc35c1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json", + "bytes": 658203, + "sha256": "034ff3aef70b9b8f8ada839f97127f65c2705983766a064f53a5f429f01da1a1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + "/private/tmp/thetree-prepare-ready-route-build-r303.py": { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "bytes": 267672, + "sha256": "19574a4e5a283d805bc2699ca586c75732cfd7c336ef5be890ba5331f3c32c17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "object": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "bytes": 267672, + "sha256": "19574a4e5a283d805bc2699ca586c75732cfd7c336ef5be890ba5331f3c32c17" + }, + "SDK_archive_reused": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + "verification": { + "bridge_compilations": 1, + "link_attempts": 1, + "SDK_compilations": 0, + "Godot_loaded": false, + "exact_preview_argv": true, + "phases": [ + { + "phase": "compile-062", + "pid": 57046, + "exit_code": 0, + "duration_seconds": 1.7274599580000007 + }, + { + "phase": "link", + "pid": 57061, + "exit_code": 0, + "duration_seconds": 0.4242618339999993 + } + ], + "strict_stdout_stderr_empty": true, + "owned_sessions_ended": true, + "foreign_signals": 0, + "all_fixed_pins_fresh": true, + "source_files_fresh_equal": 1299, + "default_fresh_equal": true, + "candidate_sdk_base_inventory_fresh_equal": true, + "arm64_macho_dylib": true, + "export": "_tree_numeric_core_init", + "dependencies_same_saved_receipt": true, + "output_growth_within_16MiB": true + }, + "accepted_scope": "Host-only compile row062 and link of exact r302 source to unchanged SDK133 archive; no SDK compilation or old object reuse. Current301 metadata/source/default/candidate and SDK inputs preserved.", + "remaining": [ + "New binary Godot ABI/load, public nearest/project native selection, compact parent/cycle/index/conversion fallback and writable typed cache-copy ownership.", + "Finite local/whole647/gameplay/save equivalence and callback/script/reentry boundary verification.", + "Stable benefit/50ms/P95/D10/final172/OS/Windows/production adoption/unit acceptance." + ], + "performance_accepted": false, + "native_load_accepted": false, + "finite_local_equivalence_accepted": false, + "unit_accepted": false, + "candidate_adopted": false, + "reviewer_execution": { + "compiler": 0, + "link": 0, + "engine": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json new file mode 100644 index 0000000..1232636 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json @@ -0,0 +1,218 @@ +{ + "passed": true, + "review_sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29", + "verified_entries": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json", + "bytes": 16092, + "sha256": "75d3bbff767fb88af266c4b1b9da37d96294ab72b9e07fcac9a3e7e567a29d49" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json", + "bytes": 900666, + "sha256": "d2381f455e44d8355f54de0c52ed08d6ffbadbd68836848a87e96073c41e80e9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2251696, + "sha256": "f429c29496622a7bfd460ebf249bb3930a515ca4fedd7efc6d347acab8015c35" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json", + "bytes": 62521, + "sha256": "58eb89af57b5d445058adfacff053171765433570a5d406d324a476ede7695f1" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "bytes": 141373024, + "sha256": "7def90dd8829726686213a747fc5bff1583df933dae5edc55d755479e0bfe00a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json", + "bytes": 46759, + "sha256": "43cbba9c13c03bc8539efac1eaaf4da9b5d3d6a9af3875d8cc3a3994e1a59745" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json", + "bytes": 199445, + "sha256": "c3cbeb45c1353dfea5f8181d10cc60f8a9b81db55d766ac5db902ac28c159a61" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json", + "bytes": 838584, + "sha256": "bf6dafe0a55c9ffb0310ef5ede6471aac93f9dee4f4fe6ad84e20e998202514e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py", + "bytes": 14637, + "sha256": "e8cfbc4cea630e0cb245d825ac5daf9730e309c4895bcbc949a744f41a2d760a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json", + "bytes": 7774, + "sha256": "f8d005f09381389167f9e0aeaa169bc9e7dff162ef22ca2fd8e98df7ff1acafe" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist", + "bytes": 5388, + "sha256": "e5c7c40b8c5dc1a9f99f8b9fa51870f8fe180421225b8201d0c4c826aad11bdc" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef", + "bytes": 1607, + "sha256": "53c4fc868f6439e48e52bbc9445a48eab1e597bbfad037ab7480216cb0c6832f" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd", + "bytes": 155867, + "sha256": "5539059b5e609a9518358e42234cc9a439ae0f54e5e8ca136686a8c9ebc35c1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json", + "bytes": 658203, + "sha256": "034ff3aef70b9b8f8ada839f97127f65c2705983766a064f53a5f429f01da1a1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "bytes": 267672, + "sha256": "19574a4e5a283d805bc2699ca586c75732cfd7c336ef5be890ba5331f3c32c17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json new file mode 100644 index 0000000..e23cf25 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json @@ -0,0 +1,319 @@ +{ + "schema": 1, + "review": "r303 bounded host build preexecution independent review", + "execution_allowed": true, + "blockers": [], + "evidence_sha256": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_numeric_core.cpp", + "bytes": 50531, + "sha256": "a226d928a894c7ca88a26a56ed5e9abe93b4b5097f8e2671566be6b304ba01d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json", + "bytes": 239284, + "sha256": "5894ace631e88d5b02e58cfe654af9f140beb6bf032458b516b830e0b643c62a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json", + "bytes": 25953, + "sha256": "22462a79745aa07629fa30ee7ad2297db4bdefd2c4a340a2fea30fd4e615ec20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275.py", + "bytes": 16495, + "sha256": "3f3c7118f9ad880a9f8ea0ed7f98940bd8a18a2edacf354fb9028ffba03f16de" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02.py", + "bytes": 16425, + "sha256": "df4009c713d138a819cf2ec4a78aaf874df6a273824553661733ad519b386946" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preview-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preview-r275.json", + "bytes": 3379, + "sha256": "43d7ddf26df4b28e48699bae16de16442946890c3e302cd15e94a9e3cd84b8e8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-independent-review-r274.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-independent-review-r274.json", + "bytes": 8909, + "sha256": "f13ed2a32320d85c02011943633be7a4e01f2409f019fadab8dde1680d58f642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-root-verification-r274.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-root-verification-r274.json", + "bytes": 5150, + "sha256": "8570795a1f86ac90c053d208ccfad2c9966d912c26fe46380a22a2dd946de860" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-actual-independent-review-r266-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-actual-independent-review-r266-r02.json", + "bytes": 23678, + "sha256": "63eebafd26d536dc5c7bdf9d4dd0880d75fe9f701a7a4da84225cade7d83ff2f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/input.json", + "bytes": 658416, + "sha256": "1a97069005f62b1186925cc62cd53055f90a04851f70b44cffed9381e2697ce7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/execution.json", + "bytes": 7154, + "sha256": "91c5e7ccedaf123b54d57258aa4d5eb8eb445067f9afefc4ce8c0aac2a115ee0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json", + "bytes": 16092, + "sha256": "75d3bbff767fb88af266c4b1b9da37d96294ab72b9e07fcac9a3e7e567a29d49" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json", + "bytes": 900666, + "sha256": "d2381f455e44d8355f54de0c52ed08d6ffbadbd68836848a87e96073c41e80e9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2251696, + "sha256": "f429c29496622a7bfd460ebf249bb3930a515ca4fedd7efc6d347acab8015c35" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json", + "bytes": 62521, + "sha256": "58eb89af57b5d445058adfacff053171765433570a5d406d324a476ede7695f1" + }, + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++": { + "path": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "bytes": 141373024, + "sha256": "7def90dd8829726686213a747fc5bff1583df933dae5edc55d755479e0bfe00a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/input.json", + "bytes": 10538, + "sha256": "f7a872726566563f07462a13b5caf0f49fca12c4eabc627326ab79842f19fc72" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-independent-review-r265-r03.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-independent-review-r265-r03.json", + "bytes": 16528, + "sha256": "ee61c1b689b92e12c653701f801b99cccf94ef64e3aeb018c06c7a14259d1778" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json", + "bytes": 46759, + "sha256": "43cbba9c13c03bc8539efac1eaaf4da9b5d3d6a9af3875d8cc3a3994e1a59745" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json", + "bytes": 199445, + "sha256": "c3cbeb45c1353dfea5f8181d10cc60f8a9b81db55d766ac5db902ac28c159a61" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json", + "bytes": 838584, + "sha256": "bf6dafe0a55c9ffb0310ef5ede6471aac93f9dee4f4fe6ad84e20e998202514e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py", + "bytes": 14637, + "sha256": "e8cfbc4cea630e0cb245d825ac5daf9730e309c4895bcbc949a744f41a2d760a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-root-verification-r265-r03.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-root-verification-r265-r03.json", + "bytes": 13035, + "sha256": "e5bf37bdd96f9ffc8890b07345a1698a6840313690d7b2b0d5b3d5266f04c86a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-preexecution-independent-review-r266-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-preexecution-independent-review-r266-r02.json", + "bytes": 43675, + "sha256": "ee4156fd9425ca632317ee4821059842b5c34f4146421dba90e8b00036192845" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json", + "bytes": 7774, + "sha256": "f8d005f09381389167f9e0aeaa169bc9e7dff162ef22ca2fd8e98df7ff1acafe" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist", + "bytes": 5388, + "sha256": "e5c7c40b8c5dc1a9f99f8b9fa51870f8fe180421225b8201d0c4c826aad11bdc" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef", + "bytes": 1607, + "sha256": "53c4fc868f6439e48e52bbc9445a48eab1e597bbfad037ab7480216cb0c6832f" + }, + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd": { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd", + "bytes": 155867, + "sha256": "5539059b5e609a9518358e42234cc9a439ae0f54e5e8ca136686a8c9ebc35c1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + "/private/tmp/thetree-prepare-ready-route-build-r303.py": { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preexecution-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preexecution-independent-review-r275.json", + "bytes": 21406, + "sha256": "38639f46a7dedb6926351ba5ded85cb0740ff4988e7ecff0360817696257b76a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json", + "bytes": 38167, + "sha256": "0aefd18bc6d12b9f50dae3faf7d53f7120c384906708bab519a506e8432a5dd6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/private/tmp/thetree-prepare-ready-route-r302.py": { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp", + "bytes": 27906, + "sha256": "ad9ebc6db6a962c817e2dbcee7f9c529dccd042090137e00dcf1a0594696f70b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json", + "bytes": 291, + "sha256": "cd89af6dd2258fe71036edf9f92ce6302d823b68c257405e2a56795726e87834" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "verification": { + "driver_full_inverse_to_accepted275": true, + "preview_plan_full_inverse_to275": true, + "compile_database_rows": 63, + "bridge_compile_count": 1, + "link_count": 1, + "SDK_compile_count": 0, + "old_bridge_object_reuse": false, + "no_existing_output_directory": true, + "current_free_bytes": 1216536576, + "admission_bytes": 553648128, + "runtime_floor_bytes": 536870912, + "maximum_output_growth_bytes": 16777216, + "owned_watchdog_each_seconds": 90, + "fresh_foreign_Godot_count": 0, + "static302_root_bound_sha": true + }, + "allowed_scope": "Only candidate302 bridge compile row062 and one link against unchanged authenticated SDK133 archive, serial owned sessions, strict stderr-empty, preserved candidate/source/default/doc301/SDK inputs and arm64/export/dependency checks. Fresh runtime floor/foreign-process and all direct/current pin gates remain mandatory.", + "remaining": [ + "Actual compile/link/owned exit and binary receipt independent review.", + "Separate ABI/load/local compact parent/cycle/conversion/fallback/cache-copy ownership verification.", + "Whole647/game equivalence, stable benefit, 50ms/P95/D10/final172/OS/Windows/adoption/unit acceptance." + ], + "inference_limits": [ + "Prior275 SDK/compiler/ownership evidence reused by fresh hashes and full driver inverse, not a renewed SDK audit.", + "Static support does not prove compilation, runtime ownership or performance.", + "Prior275/host canonical271 context is historical, not compared as live301.", + "Preparation free-space observation is momentary; driver enforces admission floor+growth and live floor/growth guards." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "link": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_file_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json new file mode 100644 index 0000000..2b17f02 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json @@ -0,0 +1,278 @@ +{ + "passed": true, + "review_sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3", + "verified_entries": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_numeric_core.cpp", + "bytes": 50531, + "sha256": "a226d928a894c7ca88a26a56ed5e9abe93b4b5097f8e2671566be6b304ba01d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json", + "bytes": 239284, + "sha256": "5894ace631e88d5b02e58cfe654af9f140beb6bf032458b516b830e0b643c62a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json", + "bytes": 25953, + "sha256": "22462a79745aa07629fa30ee7ad2297db4bdefd2c4a340a2fea30fd4e615ec20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-r275.py", + "bytes": 16495, + "sha256": "3f3c7118f9ad880a9f8ea0ed7f98940bd8a18a2edacf354fb9028ffba03f16de" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02.py", + "bytes": 16425, + "sha256": "df4009c713d138a819cf2ec4a78aaf874df6a273824553661733ad519b386946" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preview-r275.json", + "bytes": 3379, + "sha256": "43d7ddf26df4b28e48699bae16de16442946890c3e302cd15e94a9e3cd84b8e8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/input.json", + "bytes": 4511, + "sha256": "6bd46c589bc57ab5afad1d7195f7293ec450aafeed055e394a3a880744666ca3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-independent-review-r274.json", + "bytes": 8909, + "sha256": "f13ed2a32320d85c02011943633be7a4e01f2409f019fadab8dde1680d58f642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-static-root-verification-r274.json", + "bytes": 5150, + "sha256": "8570795a1f86ac90c053d208ccfad2c9966d912c26fe46380a22a2dd946de860" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-actual-independent-review-r266-r02.json", + "bytes": 23678, + "sha256": "63eebafd26d536dc5c7bdf9d4dd0880d75fe9f701a7a4da84225cade7d83ff2f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/input.json", + "bytes": 658416, + "sha256": "1a97069005f62b1186925cc62cd53055f90a04851f70b44cffed9381e2697ce7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-r266-r02/execution.json", + "bytes": 7154, + "sha256": "91c5e7ccedaf123b54d57258aa4d5eb8eb445067f9afefc4ce8c0aac2a115ee0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-independent-review-r77.json", + "bytes": 16092, + "sha256": "75d3bbff767fb88af266c4b1b9da37d96294ab72b9e07fcac9a3e7e567a29d49" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/input.json", + "bytes": 900666, + "sha256": "d2381f455e44d8355f54de0c52ed08d6ffbadbd68836848a87e96073c41e80e9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/sdk/bin/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2251696, + "sha256": "f429c29496622a7bfd460ebf249bb3930a515ca4fedd7efc6d347acab8015c35" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-validation-r77/execution.json", + "bytes": 62521, + "sha256": "58eb89af57b5d445058adfacff053171765433570a5d406d324a476ede7695f1" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "bytes": 141373024, + "sha256": "7def90dd8829726686213a747fc5bff1583df933dae5edc55d755479e0bfe00a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/input.json", + "bytes": 10538, + "sha256": "f7a872726566563f07462a13b5caf0f49fca12c4eabc627326ab79842f19fc72" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-independent-review-r265-r03.json", + "bytes": 16528, + "sha256": "ee61c1b689b92e12c653701f801b99cccf94ef64e3aeb018c06c7a14259d1778" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76/compile_commands.json", + "bytes": 46759, + "sha256": "43cbba9c13c03bc8539efac1eaaf4da9b5d3d6a9af3875d8cc3a3994e1a59745" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json", + "bytes": 199445, + "sha256": "c3cbeb45c1353dfea5f8181d10cc60f8a9b81db55d766ac5db902ac28c159a61" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/input.json", + "bytes": 838584, + "sha256": "bf6dafe0a55c9ffb0310ef5ede6471aac93f9dee4f4fe6ad84e20e998202514e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-bridge-build-r76.py", + "bytes": 14637, + "sha256": "e8cfbc4cea630e0cb245d825ac5daf9730e309c4895bcbc949a744f41a2d760a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-static-root-verification-r265-r03.json", + "bytes": 13035, + "sha256": "e5bf37bdd96f9ffc8890b07345a1698a6840313690d7b2b0d5b3d5266f04c86a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-build-preexecution-independent-review-r266-r02.json", + "bytes": 43675, + "sha256": "ee4156fd9425ca632317ee4821059842b5c34f4146421dba90e8b00036192845" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json", + "bytes": 7774, + "sha256": "f8d005f09381389167f9e0aeaa169bc9e7dff162ef22ca2fd8e98df7ff1acafe" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist", + "bytes": 5388, + "sha256": "e5c7c40b8c5dc1a9f99f8b9fa51870f8fe180421225b8201d0c4c826aad11bdc" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef", + "bytes": 1607, + "sha256": "53c4fc868f6439e48e52bbc9445a48eab1e597bbfad037ab7480216cb0c6832f" + }, + { + "path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc++.tbd", + "bytes": 155867, + "sha256": "5539059b5e609a9518358e42234cc9a439ae0f54e5e8ca136686a8c9ebc35c1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-preexecution-independent-review-r275.json", + "bytes": 21406, + "sha256": "38639f46a7dedb6926351ba5ded85cb0740ff4988e7ecff0360817696257b76a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json", + "bytes": 38167, + "sha256": "0aefd18bc6d12b9f50dae3faf7d53f7120c384906708bab519a506e8432a5dd6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp", + "bytes": 27906, + "sha256": "ad9ebc6db6a962c817e2dbcee7f9c529dccd042090137e00dcf1a0594696f70b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json", + "bytes": 291, + "sha256": "cd89af6dd2258fe71036edf9f92ce6302d823b68c257405e2a56795726e87834" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json new file mode 100644 index 0000000..bfd17b8 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json @@ -0,0 +1,61 @@ +{ + "plan": [ + [ + "compile-062", + [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "-c", + "-std=c++17", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/include", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/gen/include", + "-Wall", + "-Wextra", + "-Werror", + "-fexceptions", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-O3", + "-fPIC", + "-DMACOS_ENABLED", + "-DUNIX_ENABLED", + "-DTHREADS_ENABLED", + "-DDEBUG_ENABLED", + "-DNDEBUG", + "-DGDEXTENSION", + "-I/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp" + ] + ], + [ + "link", + [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-Wl,-S", + "-Wl,-x", + "-Wl,-dead_strip", + "-shared", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a" + ] + ] + ], + "planned_bridge_compilations": 1, + "planned_SDK_compilations": 0, + "Godot_loaded": false, + "source_candidate": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302", + "scope": "Same authenticated compiler/options/SDK archive as275; only r302 candidate and r303 output paths changed. 1 bridge compile +1 link, SDK compile0, engine0, unadopted." +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py new file mode 100644 index 0000000..24df3ce --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py @@ -0,0 +1,181 @@ +# coding: utf-8 +"""Compile only r302 builtin compact ready-route materialization bridge against authenticated unchanged r133 SDK archive; no Godot execution.""" +from pathlib import Path +import importlib.util, json, os, platform, shutil, subprocess, sys, time, signal, shlex +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02' +C=A/'p23-02-native-ready-route-candidate-r302';O=A/'p23-02-native-ready-route-build-r303' +BASE=A/'p23-02-native-bridge-build-r76';BASE_SDK=BASE/'sdk';SDK_C=A/'p23-02-native-sdk-lifetime-candidate-r131';SDK=SDK_C/'sdk';HOST=A/'p23-02-native-sdk-lifetime-build-r133' +FLOOR=512*1048576;GROWTH=16*1048576 +def mod(name,path): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m +def main(): + r=mod('buffer_build_runner',R/'tools/run_all_tests.py');outer=mod('buffer_build_owned',r.SUPPORT/'owned_outer.py') + build_helper_path=A/'p23-02-native-bridge-build-r76.py' + build_helper=mod('retained_build_ownership',build_helper_path) + def pin(p):return dict(path=str(p),bytes=p.stat().st_size,sha256=r.sha(p)) + D=R/'docs/plans/original-completion-2026-10-02';names=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] + preexecution_review=A/'p23-02-native-ready-route-build-preexecution-independent-review-r303.json' + preexecution=r.read(preexecution_review) + assert preexecution['execution_allowed'] and not preexecution['blockers'] + for group in ['evidence_sha256','canonical_doc4_context_pins']: + values=preexecution[group] + for q in values.values() if isinstance(values,dict) else values: + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + assert r.read(A/'p23-02-native-ready-route-build-preexecution-root-verification-r303.json')['passed'] + source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in names} + assert {n:v['sha256'] for n,v in source.items()}==r.read(A/'p23-02-final-candidate-r32-source-adoption-r03/source-after.json') + assert platform.machine()=='arm64' and not O.exists() and not outer.native.helper['live_engines']() + assert shutil.disk_usage(A).free>=FLOOR+GROWTH + review=A/'p23-02-native-bridge-build-validation-independent-review-r77.json' + assert r.sha(review)=='75d3bbff767fb88af266c4b1b9da37d96294ab72b9e07fcac9a3e7e567a29d49' + auth=r.read(review)['evidence_sha256'] + base_input=BASE/'input.json';archive=BASE_SDK/'bin/libgodot-cpp.macos.template_debug.arm64.a' + accepted_receipt=A/'p23-02-native-bridge-build-validation-r77/execution.json' + for p in [base_input,archive,accepted_receipt]: + v=auth[str(p)];assert p.stat().st_size==v['bytes'] and r.sha(p)==v['sha256'] + old=r.read(base_input);compiler=Path(old['compiler_pins']['clang++']['path']) + assert pin(compiler)==old['compiler_pins']['clang++'] + for p in old['macos_sdk']['pins']:assert pin(Path(p['path']))==p + sdk_path=old['macos_sdk']['path'] + assert str(Path(subprocess.run(['/usr/bin/xcrun','--sdk','macosx','--show-sdk-path'],capture_output=True,text=True,check=True,timeout=10).stdout.strip()).resolve())==sdk_path + candidate_input=C/'input.json';candidate_review=A/'p23-02-native-ready-route-static-independent-review-r302.json' + candidate_root=r.read(A/'p23-02-native-ready-route-static-root-verification-r302.json') + assert candidate_root['passed'] and candidate_root['review_sha256']==r.sha(candidate_review) + v=r.read(candidate_input);support=r.read(candidate_review) + assert support['implementation_supported'] and not support['blockers'] + # Authenticate candidate evidence; current canonical301 context pins must still match at preexecution. + for path,q in support['evidence_sha256'].items(): + p=Path(q.get('path',path));assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + canonical_context=support['canonical_doc4_context_pins'] + for q in canonical_context.values() if isinstance(canonical_context,dict) else canonical_context: + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + host_review=A/'p23-02-native-sdk-lifetime-build-actual-independent-review-r133.json' + assert r.sha(host_review)=='c3cbeb45c1353dfea5f8181d10cc60f8a9b81db55d766ac5db902ac28c159a61' + host_support=r.read(host_review);assert host_support['host_build_accepted'] and not host_support['blockers'] + host_input=HOST/'input.json';new_archive=HOST/'libgodot-cpp.macos.template_debug.arm64.a' + for p in [host_input,new_archive]: + q=host_support['evidence_sha256'][str(p)];assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + host=r.read(host_input);sdk_inventory=host['SDK_inventory'];assert r.inventory(SDK)==sdk_inventory + sdk_candidate_inventory=host['candidate_inventory'];assert r.inventory(SDK_C)==sdk_candidate_inventory + accepted_inventory=r.read(accepted_receipt)['original_r76_inventory'] + parent_sdk_inventory={key[len('sdk/'):]:value for key,value in accepted_inventory.items() if key.startswith('sdk/')} + assert parent_sdk_inventory and r.inventory(BASE_SDK)==parent_sdk_inventory + source_inventory=r.inventory(C/'source') + assert pin(C/'source/tree_numeric_core.cpp')==v['pins'][str(C/'source/tree_numeric_core.cpp')] and pin(C/'source/tree_core.hpp')==v['pins'][str(C/'source/tree_core.hpp')] + candidate_inventory=r.inventory(C);base_source_inventory=r.inventory(BASE/'source') + compile_db=BASE/'compile_commands.json' + authenticated_compile_db=auth[str(compile_db)] + assert compile_db.stat().st_size==authenticated_compile_db['bytes'] and r.sha(compile_db)==authenticated_compile_db['sha256'] + commands=r.read(compile_db);assert len(commands)==63 + fixed=[review,base_input,archive,accepted_receipt,compiler,candidate_input,candidate_review,C/'source/tree_numeric_core.cpp',C/'source/tree_core.hpp',compile_db,host_review,host_input,new_archive,build_helper_path,Path(__file__)] + fixed += [A/'p23-02-native-ready-route-static-root-verification-r302.json'] + fixed += [preexecution_review] + fixed += [Path(p['path']) for p in old['macos_sdk']['pins']] + pins={str(p):pin(p) for p in fixed} + O.mkdir();(O/'objects').mkdir();library=O/'libtree_numeric_core.macos.template_debug.dylib' + compile_plan=[];sdk_objects=[];bridge_object=None + for i,row in enumerate(commands): + if row['file'].startswith('sdk/'):continue + argv=shlex.split(row['command']);assert argv[0]=='clang++' and '-c' in argv + argv[0]=str(compiler);out_index=argv.index('-o')+1;assert argv[out_index]==row['output'] + obj=O/'objects'/('%03d-'%i+Path(row['output']).name);argv[out_index]=str(obj) + for j,t in enumerate(argv): + if t.startswith('sdk/'):argv[j]=str(SDK_C/t) + elif t.startswith('source/'):argv[j]=str(C/t) + elif t.startswith('-Isdk/'):argv[j]='-I'+str(SDK_C/t[2:]) + elif t=='-Isource':argv[j]='-I'+str(C/t[2:]) + source_file=C/row['file'];assert source_file.is_file();pins[str(source_file)]=pin(source_file) + compile_plan.append(('compile-%03d'%i,argv)) + if row['file'].startswith('sdk/'):sdk_objects.append(obj) + else:assert row['file']=='source/tree_numeric_core.cpp' and bridge_object is None;bridge_object=obj + assert len(sdk_objects)==0 and len(compile_plan)==1 and bridge_object is not None + link_argv=[str(compiler),'-o',str(library),'-arch','arm64','-isysroot',sdk_path,'-fvisibility=hidden','-Wl,-S','-Wl,-x','-Wl,-dead_strip','-shared',str(bridge_object),str(new_archive)] + plan=compile_plan+[('link',link_argv)] + assert json.loads(json.dumps(plan))==r.read(A/'p23-02-native-ready-route-build-preview-r303.json')['plan'] + r.write(O/'input.json',dict(source_before=source,default_player_before=player,doc4_before=docs,pins=pins,SDK_path=str(SDK),SDK_inventory=sdk_inventory,parent_SDK_inventory=parent_sdk_inventory,SDK_identity_source=pin(accepted_receipt),candidate_inventory=candidate_inventory,base_source_inventory=base_source_inventory,plan=plan,capacity_floor_bytes=FLOOR,maximum_growth_bytes=GROWTH,expected_duration_seconds=[2,30],watchdog_seconds_each=90,serial=True,authenticated_compile_database=authenticated_compile_db,full_input_inventory_before_and_after_each_phase=True,planned_bridge_compilations=1,planned_SDK_compilations=0,SDK_archive_reused=pin(new_archive),old_bridge_object_reused=False,Godot_loaded=False,unit_accepted=False)) + env=r.fresh_environment(os.environ) + for key in list(env): + if key.startswith('CCACHE_') or key in ['CFLAGS','CXXFLAGS','CCFLAGS','LDFLAGS','CPATH','CPLUS_INCLUDE_PATH','LIBRARY_PATH','SDKROOT','MACOSX_DEPLOYMENT_TARGET']: + env.pop(key) + phases=[];error=None;cleanup=[];cleanup_errors=[];binary_checks={};spawned=[] + def verify_protected_inputs(): + assert r.inventory(C)==candidate_inventory + assert r.inventory(SDK)==sdk_inventory and r.inventory(SDK_C)==sdk_candidate_inventory + assert r.inventory(BASE/'source')==base_source_inventory + assert r.inventory(BASE_SDK)==parent_sdk_inventory + for path,q in pins.items():assert pin(Path(path))==q + + def run_build_phase(name,argv): + # Compiler diagnostics have no Godot banner. Use retained build ownership, + # not the engine-specific diagnostic parser or a synthesized banner. + folder=O/name;folder.mkdir();process=None;phase_error=None;phase_cleanup=[];errors=[];remaining=None + started=time.monotonic();timed_out=False;exit_code=None + try: + with (folder/'stdout.log').open('wb') as stdout,(folder/'stderr.log').open('wb') as stderr: + process=subprocess.Popen(argv,cwd=folder,env=env,stdout=stdout,stderr=stderr,start_new_session=True) + spawned.append(dict(phase=name,pid=process.pid,argv=argv)) + initial=build_helper.group_members(process.pid) + if process.poll() is None: + assert os.getpgid(process.pid)==process.pid and os.getsid(process.pid)==process.pid + assert any(q['pid']==process.pid and q['ppid']==os.getpid() for q in initial) + r.write(folder/'started.json',dict(pid=process.pid,owner_pid=os.getpid(),pgid=process.pid,argv=argv,started_utc=r.now(),initial_members=initial,owned_new_session=True)) + print(json.dumps(dict(build_phase=name,pid=process.pid)),flush=True) + while process.poll() is None: + if time.monotonic()-started>90: + timed_out=True;raise TimeoutError('owned compiler watchdog90s') + assert shutil.disk_usage(A).free>=FLOOR + assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file())<=GROWTH + time.sleep(0.1) + exit_code=process.wait(timeout=5) + except BaseException as caught:phase_error=type(caught).__name__+': '+str(caught) + finally: + if process is not None: + try: + phase_cleanup,remaining=build_helper.cleanup_owned_parent(process,process.pid,errors) + except BaseException as caught: + errors.append('retained cleanup exception: '+repr(caught)) + # An unexpected helper exception never skips exact-Popen cleanup. + # No group is discovered or signalled by this fallback. + for sig in [signal.SIGTERM,signal.SIGKILL]: + try: + if process.poll() is None:process.send_signal(sig) + except BaseException as failure:errors.append('tracked signal: '+repr(failure)) + try:process.wait(timeout=3) + except BaseException as failure:errors.append('tracked wait: '+repr(failure)) + try:exit_code=process.wait(timeout=5) + except BaseException as caught:errors.append('final tracked wait: '+repr(caught)) + r.write(folder/'ended.json',dict(pid=process.pid,argv=argv,pgid=process.pid,ended_utc=r.now(),exit_code=exit_code,duration_seconds=time.monotonic()-started,cleanup=phase_cleanup,remaining=remaining,cleanup_errors=errors,foreign_process_or_group_signals=0)) + result=dict(pid=process.pid if process else None,exit_code=exit_code,timed_out=timed_out,error_lines=[phase_error] if phase_error else [],duration_seconds=time.monotonic()-started) + capture=dict(passed=process is not None and phase_error is None and not errors and remaining==[],cleanup=phase_cleanup,cleanup_errors=errors,all_captured_ended=process is not None and process.poll() is not None,foreign_process_or_group_signals=0) + return result,capture + try: + for name,argv in plan: + assert shutil.disk_usage(A).free>=FLOOR+GROWTH and not outer.native.helper['live_engines']() + # Authenticate every header/source and retained parent before and after each owned phase. + verify_protected_inputs() + result,capture=run_build_phase(name,argv) + post_input_error=None + try:verify_protected_inputs() + except BaseException as caught:post_input_error=type(caught).__name__+': '+str(caught) + row=dict(name=name,result=result,capture=capture,full_input_inventory_before_verified=True,full_input_inventory_after_verified=post_input_error is None,post_input_error=post_input_error);phases.append(row);r.write(O/(name+'-phase.json'),row) + assert post_input_error is None, post_input_error + assert result is not None and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + assert (O/name/'stderr.log').read_bytes()==b'' + assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file())<=GROWTH + assert library.is_file() and bridge_object.is_file() and new_archive.is_file() + for name,argv in [('file',['/usr/bin/file',str(library)]),('arch',['/usr/bin/lipo','-archs',str(library)]),('dependencies',['/usr/bin/otool','-L',str(library)]),('exports',['/usr/bin/nm','-gU',str(library)])]: + q=subprocess.run(argv,capture_output=True,text=True,check=True,timeout=10) + assert not q.stderr;binary_checks[name]=q.stdout + assert binary_checks['arch'].strip()=='arm64' and '_tree_numeric_core_init' in binary_checks['exports'] and 'dynamically linked shared library' in binary_checks['file'] + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup=[row['capture']['cleanup'] for row in phases] + cleanup_errors=[message for row in phases for message in row['capture']['cleanup_errors']] + preserved=r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in names}==docs and r.inventory(C)==candidate_inventory and r.inventory(SDK)==sdk_inventory and r.inventory(SDK_C)==sdk_candidate_inventory and r.inventory(BASE/'source')==base_source_inventory and r.inventory(BASE_SDK)==parent_sdk_inventory + for name_pin,q in pins.items():preserved=preserved and pin(Path(name_pin))==q + assert preserved + passed=error is None and len(phases)==2 and not cleanup_errors + r.write(O/'execution.json',dict(passed=passed,error=error,phases=phases,cleanup=cleanup,cleanup_errors=cleanup_errors,binary_checks=binary_checks,object=pin(bridge_object) if bridge_object.exists() else None,library=pin(library) if library.exists() else None,original_inputs_preserved=preserved,bridge_compilations=sum(q['phase']=='compile-062' for q in spawned),link_attempts=sum(q['phase']=='link' for q in spawned),spawned_children=spawned,SDK_compilations=sum(q['phase'].startswith('compile-') and q['phase']!='compile-062' for q in spawned),SDK_archive_reused=pin(new_archive),SDK_archive_rebuilt=False,old_bridge_object_reused=False,Godot_loaded=False,selected=False,unit_accepted=False,performance_accepted=False,limits=['Exact modified r302 compact ready-route materialization bridge one-object compile and link to authenticated unchanged r133 SDK archive only; no SDK recompilation, Godot load, protocol, performance or unit acceptance.'])) + print(json.dumps(dict(passed=passed,error=error)),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json new file mode 100644 index 0000000..01d29df --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json @@ -0,0 +1,28 @@ +{ + "name": "compile-062", + "result": { + "pid": 57046, + "exit_code": 0, + "timed_out": false, + "error_lines": [], + "duration_seconds": 1.7274599580000007 + }, + "capture": { + "passed": true, + "cleanup": [ + { + "attempt": 0, + "pgid": 57046, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ], + "cleanup_errors": [], + "all_captured_ended": true, + "foreign_process_or_group_signals": 0 + }, + "full_input_inventory_before_verified": true, + "full_input_inventory_after_verified": true, + "post_input_error": null +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json new file mode 100644 index 0000000..3ef9d6e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json @@ -0,0 +1,49 @@ +{ + "pid": 57046, + "argv": [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "-c", + "-std=c++17", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/include", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/gen/include", + "-Wall", + "-Wextra", + "-Werror", + "-fexceptions", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-O3", + "-fPIC", + "-DMACOS_ENABLED", + "-DUNIX_ENABLED", + "-DTHREADS_ENABLED", + "-DDEBUG_ENABLED", + "-DNDEBUG", + "-DGDEXTENSION", + "-I/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp" + ], + "pgid": 57046, + "ended_utc": "2026-10-12T00:11:26.519218+00:00", + "exit_code": 0, + "duration_seconds": 1.7271206249999995, + "cleanup": [ + { + "attempt": 0, + "pgid": 57046, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ], + "remaining": [], + "cleanup_errors": [], + "foreign_process_or_group_signals": 0 +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json new file mode 100644 index 0000000..7774ee9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json @@ -0,0 +1,45 @@ +{ + "pid": 57046, + "owner_pid": 56991, + "pgid": 57046, + "argv": [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "-c", + "-std=c++17", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/include", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/gen/include", + "-Wall", + "-Wextra", + "-Werror", + "-fexceptions", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-O3", + "-fPIC", + "-DMACOS_ENABLED", + "-DUNIX_ENABLED", + "-DTHREADS_ENABLED", + "-DDEBUG_ENABLED", + "-DNDEBUG", + "-DGDEXTENSION", + "-I/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp" + ], + "started_utc": "2026-10-12T00:11:24.827341+00:00", + "initial_members": [ + { + "pid": 57046, + "ppid": 56991, + "pgid": 57046, + "args": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -o /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os -c -std=c++17 -isystem /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/include -isystem /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/gen/include -Wall -Wextra -Werror -fexceptions -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -fvisibility=hidden -O3 -fPIC -DMACOS_ENABLED -DUNIX_ENABLED -DTHREADS_ENABLED -DDEBUG_ENABLED -DNDEBUG -DGDEXTENSION -I/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp" + } + ], + "owned_new_session": true +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log new file mode 100644 index 0000000..e69de29 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json new file mode 100644 index 0000000..76ce6f6 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json @@ -0,0 +1,173 @@ +{ + "passed": true, + "error": null, + "phases": [ + { + "name": "compile-062", + "result": { + "pid": 57046, + "exit_code": 0, + "timed_out": false, + "error_lines": [], + "duration_seconds": 1.7274599580000007 + }, + "capture": { + "passed": true, + "cleanup": [ + { + "attempt": 0, + "pgid": 57046, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ], + "cleanup_errors": [], + "all_captured_ended": true, + "foreign_process_or_group_signals": 0 + }, + "full_input_inventory_before_verified": true, + "full_input_inventory_after_verified": true, + "post_input_error": null + }, + { + "name": "link", + "result": { + "pid": 57061, + "exit_code": 0, + "timed_out": false, + "error_lines": [], + "duration_seconds": 0.4242618339999993 + }, + "capture": { + "passed": true, + "cleanup": [ + { + "attempt": 0, + "pgid": 57061, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ], + "cleanup_errors": [], + "all_captured_ended": true, + "foreign_process_or_group_signals": 0 + }, + "full_input_inventory_before_verified": true, + "full_input_inventory_after_verified": true, + "post_input_error": null + } + ], + "cleanup": [ + [ + { + "attempt": 0, + "pgid": 57046, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ], + [ + { + "attempt": 0, + "pgid": 57061, + "members_before": [], + "group_signal": null, + "tracked_parent_signal": null + } + ] + ], + "cleanup_errors": [], + "binary_checks": { + "file": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib: Mach-O 64-bit dynamically linked shared library arm64\n", + "arch": "arm64\n", + "dependencies": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib:\n\t/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib (compatibility version 0.0.0, current version 0.0.0)\n\t/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2100.43.0)\n\t/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0)\n", + "exports": "0000000000000828 T _tree_numeric_core_init\n" + }, + "object": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "bytes": 267672, + "sha256": "19574a4e5a283d805bc2699ca586c75732cfd7c336ef5be890ba5331f3c32c17" + }, + "library": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "original_inputs_preserved": true, + "bridge_compilations": 1, + "link_attempts": 1, + "spawned_children": [ + { + "phase": "compile-062", + "pid": 57046, + "argv": [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "-c", + "-std=c++17", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/include", + "-isystem", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-candidate-r131/sdk/gen/include", + "-Wall", + "-Wextra", + "-Werror", + "-fexceptions", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-O3", + "-fPIC", + "-DMACOS_ENABLED", + "-DUNIX_ENABLED", + "-DTHREADS_ENABLED", + "-DDEBUG_ENABLED", + "-DNDEBUG", + "-DGDEXTENSION", + "-I/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp" + ] + }, + { + "phase": "link", + "pid": 57061, + "argv": [ + "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++", + "-o", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "-arch", + "arm64", + "-isysroot", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", + "-fvisibility=hidden", + "-Wl,-S", + "-Wl,-x", + "-Wl,-dead_strip", + "-shared", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/objects/062-tree_numeric_core.os", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a" + ] + } + ], + "SDK_compilations": 0, + "SDK_archive_reused": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-sdk-lifetime-build-r133/libgodot-cpp.macos.template_debug.arm64.a", + "bytes": 2284912, + "sha256": "4d54f0980c3f445f3013cddb859135b619f28a91205fc8b9fbc9d10bc76c52c3" + }, + "SDK_archive_rebuilt": false, + "old_bridge_object_reused": false, + "Godot_loaded": false, + "selected": false, + "unit_accepted": false, + "performance_accepted": false, + "limits": [ + "Exact modified r302 compact ready-route materialization bridge one-object compile and link to authenticated unchanged r133 SDK archive only; no SDK recompilation, Godot load, protocol, performance or unit acceptance." + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5d2178396acc4e582165013003d457aaeca8b95f GIT binary patch literal 137740 zcmX_HWk8f|vzA7>yAkP-?k+*P8$r6eJEc*&Q)1~Qq`Nzo4ry2#r0cBuy~p2p&(2&E z*Th2}jriuzKj_!F_R)#TkKbrG_vz)hq%lv;?d{FSbPM_dS=0-Ne$aR7Xu6u~<2co^ z)Dx&L6!nMV8+XB$(U_wcLvMZlCcVY1ePf}ashQnQz5UAVH6de2wXJ{o^k`JOYRl~6 z0t~n!f1W0PzCho20YAF=b1V5iKHqP@?!>>K`eTVav%UaD?pa?zxd9i~FDFWyw4KD{ zFVG?{+pMnu@`+m!-}`8X&R1|JA$iBMM&-$<$m7dOfZu!sdB@ZB#>=D8>&oltLcpWQ z>x0AV4LStu1UzPn+{eGVK5g}BbqWTgIh-~HJjiV5C68Qpd+=msxG_xg!w&D zGmD|t?=Cq6ko@4cz+@KzzXRat+VB`%k1>dlHr&0eI0*aNM+rS(oc+??PzjIwRge|K z(3bU4d_J!>!<7RN#%&@$N3d*B-yqhYF#C|fnt#0{dqbVOYnt*_q^nXg{{u!`a)Uac zy&qA9%xQznDV$-O!e&<(Z2HmJQ{Eh;@^03?6^B$$c4@dxPcRq z7A5~cJLh9m9&^w>s#Az=#Ly46wo{j4sN+zqEShtCN8|oWU$ex3G59f_nyvGBZ(oG5 z*#F{WGT_CE;*Qqnf*K`*%jZqcj~218GU>|UoPxNsQ;e5;r5>>|)BDr*>|VhMM8L-KA3Jjtm_yNT%cb z(>sj=M55Td9`2V5>RlFJK#iPL8R8pdVk9mtXuK%2UW$i6@X5+L3`Ef(h@#lkBNUFt z0|nYBZ;2-oiYjK5!f^5nBTM^733qIAIPi^wO<9C~_{q1fw`=3fE5PJ2=dg)4ip#ALQxfX5 zG+gsu`-X))^`>q-@3lVYyc|T6zg(jG80Pp6$A6}~l+Eo~tgPqk@XFEXmjS9=ppLHl zjDL+Gc5@Gt%&n?R-7I00m1Lfr^+iC*-D-Qf)AD~K=i_XQw8LA&i@m{W@`VrQPKMP6 zY07DhG!T=`#)*KpyN(SpxI$r#++`boKht4i!}s3kWw`TB>GikLi*Z=Jh0(ETtN6`< zb_^y4@tq9XMWsT6r!(1Q&mhqqdiOxr)jZd6mciR_RF!#0&db+^!Fa!;PQGf9r%md< z!s^@Fl@ghKF{hjU$}WHv<201ST;chbbge{w5}mo`yYeaWbB1UEe~^=0xzdTq&2zvV zIJ5J9=>^0iBC_FsH9U57_PC7hdrWP}Yb)StId`y%a8^-r!-DOe%>dUVp{7_Z+uqZr zp@nI($ZJ`vY4be%^J(dJpS6=e;JV*q9wxRzI8rzPt-*ya{@az0aaXn#fr&RN2;9sI_18 zx2EOiES{nk%PUJid`+YHv-9teBBnz%TR3@M8v2Szci1E8HNFY`*4447hgSVfYQa{5 zpKab$k-u+-&H|aM@271|{Q*W%zbfTxYVzIfG!S`;Y0qM~=2Gz-pM}}(o=&^7V-%x= zB=^vMWjzrr*2KxTMYMbh;7VK6@?;0`5x&JnkXh%W3fUsM1G)p!@}XJ1_i~`)%zJ>N zl>kKwB6&({dZhIFlRQS`Thv`fMTFIN7q3vZJe#W_O20o`lj-rscTBQThjlU+Vnv)l zt@vAm!syIVFVJ{%=!SCT-Q=QcG^9QJ$-_n3{MK`EpN@b|r?~;)@lKZ!$>O{ZFaaj5 zIxB!lA+!mK)NPHikH)q|jlvCqrVTxtaI#)|Wi|b~xM{+)gE_uQ2u>##P(lbxm<)wy zTo|Pc6%&+ajAlMesz$t#!u+hTooWxTdC=l=ncJi| z;vU7292awfdGVCZ*uJ)BPuG3UtC+FAsY)S`&GD;bC4tC%-VCs;V_s+=8EfCg;@!jIg|l@eSTb!nj*&)%0r0)X z+}D=sQ>C8B6pPxE(PP7o216-(g~gzpBPre*<3E$R3#ryAYpyOc(Zsp&p7L1|%l^o8 zlKxCkcwwkW`xrPtI8}|T6NvI4@`%S$Fu-Gs-%0B}%}}#y_!-}41yOIREb=7ds{=Fn zob~ORF|4M;(IU>`2$NN}Kr+`cE<^*C4vf~W^w_L44;zGU4Se5B-sBue5$pta?SFv1 zY2Drk19te|=-Y#mHmo{cFA5upYXCxkG~t#J^nu~6Mynn!D%+(+Hwz5CF?~P%$dSgLv8qW1m4STX&4o;uacE9`i=2M<4u) zfbCn&M~jr%zwduzJl0J(v-5E`02z*Fd60hO21xy|Et$sE0aD&v4RjLr6mo%o^s?j* z`@^_j(;j`JRdz4tt zv&}~UWrbHTENYzcWA?U6SaBim*a_PPgsiw0{!U7FF~+me)YkjY^YYc6(rMz6Wxb@( z$C3s$38rV+;Cf5T>asD4Hbq+O$Y&hFKE}QQv5~gOjI}_6o1Lm!!8WTe<4EN;`=4ul z8kNPrYeulH_P4T}_@kuH`c7=G?PZoUB2~|c8~(9<9b+v3)qVCCmjD4Z)bPlxUH6G4 zX0AruBcGZFqptgWcm0oaSCUHu)`C4A<5Ur~>v%_9ZZ}QXngZ1uqK0Tt6vmIo9koW7 z6w*PyN@OeJlKz48EQTe`I_kgAUowK`#N;Otiw2qiaY43ePBxUQw-xh zuu^hs>;Si;8zjXhV=ZQUutAa=LfJG%6?BH*(nvulUR2@r8zl$Ev*yPYCm|u<(cscW zZ&^!y$rJd7hldKySAr7To=x9%Eeo2iT9Ym``yBDGSj?uy5$h79wm5h++nZ2+|BhmW zzxD?h8ZX!mdBY)8j~Ooch2mImbAIG^L&}I${ebzpPlU}~hIRWn%g)KhNa#CHDQLl> z;UOaXO+vvEC1$1j5pMTz-7T|GbH6Z9Es$(sw2nh8IW2*il%;vaoNtxM9|_ZzkHXbUjbgC>I1iqITy} zrkgOtK#IIkS8e{TUfG}86h%E`v)zm5;Np1~T3%ujRc&a;jJoWmw_7k<1+kKrm(sELi@@{mhDNM79Tn+MBdW37yyPJ|C}n>2 z)FA3yuba1CNbfd#1}z`|WT7g?hKII!iay7%B>t-}BJC8rYX$O6Ntv6&m;-gKv&c&^7@12)Tgm6+kHILJeatWm>Q>b%Z7CJK#_P0RL^UB`PoVwH!^WTUFf=#7(Uy z%gf^V9i3NUz8Si!rs#&B%wX;TQ=7i!@YFW^!XjQosJ}dw3Bgr9E5&sWd+h6IDT+{4;79)%yBcr*fTafQ30L z&b#M57Rl#lh2f=<@Xhtm?|kjd;Q)IQJ_XA6q_Q03EtYeCA%ung zF1&@KD~vKMI9P0&rm#w2;QfSQ&1R0FZ?=|W3ta1gT;+Po{z?p}VyBQkt6OMvi@g#S zNGa1u(l!+qTVG9LPvG^I-l6bQ)s6lPL{j30DGs;uF&7lFr9dzkX@pYwgxgtK znRPur?M=@&i9SRtwSC*#zf}Md1`Ev<4na%ncl3RL?uI$Sp(H-PF?o?CEGSBmAVOvR zh>0L+K!MD&NnZ&BhW~Yk%hIu zJw#VX2moRfIu0>SBMnbKhhJMFL^Y5No9>6i?o~FUT|b`~F3; zbvgP_StQ}8?G;%*vB~Dn+&=LAyM;xp_T-P1m#C}#*gZ~WYzd$I{+@R2`q?qldl@9j=Gr@~1 z*hOAT@v9T44@hcntNqy5Hcmcf-f)clpAsOj0@-?+j(Uo(S!@>#0M|+kcvd_VlyE=V z=u^=IMdDW5c%UJ8MS+-P+ zc66oP5?tM~g|2kc0Bz)HDm~;ZHjvDx_j>a7;6Q6LW@ddsK+uL$Shl2A++A6s@vV!k zk)zj{Sa7>x{1ay0VjjESr6Qc(_5Cm;%GOO$OtX$e3Rf25TR|-fNwPRsJWsWT`>N)m zUt}l+sW;x|46RVzuU6cBt(zccUbGNab*s!1aYE4<0m(oq3b0s`8S$RDsMEj&*}gM<1r8r zzKi%Yd`5r#rOTleREbF3X*C`kMpw#^+aQBCLmIAD3Tg#StD1@DOgT3F-uZ!q7DppX#pCUcM< zx+U8#6&p;>%yKqybt!r9bI7m_i&aEaU4O%NWoGTv%EULt|0~1#T9nmOiz5t)n8xna6{v*&e(_w0xvoa=z%%z- zp`j+v7fCxS`jWjd)U;f*-N}E&xf~R~Zd~I6T%EQhhNa`T*-3!S^fnGEw{YbN(JFFs zClt2hTL|0m#chCOjP%^Ys)*Z|FT^J0_8awuGN<>!f(HnSSe%UOz^o`ob3XRZ2N^Y+ zA>Mrxcn4Si>Q2YQY`$3Y95x@OYd5<0>GehPm15%psR5moumS+z0Kbve=h-MDvcTV%!P(_WxBL zhb6Pa!W(1adufNP)rhc!@C{=r=kpKa8TgWz7*FEQh!x*`P#sUUgsA_s(iF$QkUw#3 zcvtp%jX9LJTBU3R?{}bt?`~wV<#?0x%Gy;1H|fj|&$s{Fm8>LsGEEtGiE{nM9=B|= z!ZwuCZTw@|geve;KqF$3^zr9J!9F7vMeQw!m6|(CGFmQ9c<7@g+3Mm1*~W|Hnop5F1sSQL7hLoM4MnI^sO?p~^TkLgOk?SNrUhy2Ikp z@9!jOFH28U4~nG!E&r*88E7)hu3~Z&1nF$6COT}h`<2RR*jsrN-Yi@_5Ph^!b%Y|3 z>R;O)@G}1=LMG?KpoO+6NpQ4F7o;Nds)8f!rR)O_*ROb`N)&vZoL zzKclmOCy+ce?swe-}tQJ{ftX!-@2v?-e=yJNvosDZX>V(EkjBj4Y}7 ztE)1PB(8>{fy&_ld-V8*A!kx7-?;sMzFJMD{hMQXc%0V-luQgmygP)t0~L;<_Vm+Y zw^^H|Nm_aPTo^&`258tOVgpHiO^|rFDa}CAn)O;(GU-0P`&x(Zil3N~z1NJulB&?d zlyNM9%$__l(Qk>WDEhafg>Xr44Whf#R6U8iV7h)*jDm&BhsNwayC{&lg)m}{4^?9s z$_U&WifyTqH3*S$faE?YvaNTxAFKEjbJ63&vr_#W_+1ev4|#);eq5aHP$PW*GTtND z^wU*n`#-XpgH`S@GeR+k^{&4o$ulbvx%`J~Ssvb}EuEyoe7#97pCwU?*4XHVhrd89 zYrV>Xa*yYu+QOwULQ3nt>uu%rfOW0;YMn+CCzjG?F;A3ohoTBo)~+aJy#AI5NahRk zAGulcHAA^D!}VOWw69pj1Uffp?Z_UGwNEIt>yo?KCSYs~xBR7hCsvg&D)Evb9SpV2 zPz-8!2V`^Q<0MdEWgUOd3YGNzaQ`$j3!RDzn21B(3<%bL8S!)N2g2p(1kzq&eEUY& zPyDqi^;|6yZmwg>7;rH|_z@9yg=r$iP3bQGft@94rHNMOj`v(L!37NVcJ4Boel zWlCNBvVsbWS1+);qg0+pLOy&#oXGWd{kt3s-B&l`ELc@{qhtdfIuK95B-gezY%g|i zofRxnZWg_OnxAZtZ<;R?f}g4ovm$rd9zp%`Wn-&{)#qLf;)D$7Njk4mQPN1*!@Km@ z1h;Tc!`@|mAF`*d3UXFO$(VM5#F|G-osw1L2d zndZct%q_XpAIbVp10f*>kV9kB?H4yJiJSfJ16T>geA@1Ny2`!rUZN78g8Q^_MPN>p znlpRzpZ-VZ%bUPR0Vh6e$!*gI>rp-Q6YFv*b}4L+8QA{%w*=hqZ`Ri|?M#gfZkhgw zXdM9c-nquMJ73xxTKryiF51;~G9Q&u{e^jaOT^`&Di(Gp{HX*+JpBY*$I`4+W>}R3 zrX=i9auj=$Dh;!2h*DxNq1Gk3XE=o+%bvgNAyqGPPIM)DyZzJ%I3nDIFZTA*EN>c| z6wVj+Qg)xOC|!DOqlOEs2R5A&aB)6*AEn_gj~42Zx;w)R@@vUoJLjslLtv;zelw?n z0F57N6=4d7|4JSy&u2`v@d>IZc4NK=*k034ukGCT?BsSA{s)N5oaqqu^1U<`OhyLP z0jC}5rv@!GDYje=k0QC;Q(0($r;g28!_P=E-GB6j0c5j&q-KxqF*V}lnp5ygBU^3o zRKdv>IJy3Q{JRi#=Z802I@uk6>SlTB%W?Noq0@EDm4+$RNvxFxb9#fGjj+qOP9g`u1HoAYKg?e2)=ODe%y&P#aOVR13F21pEigDB`K^NiVpsXB> zd&F?)Jh21non%1i8szsYt$=r(kgIDXCU|%UXHChW?3~koK?Rf5NMhRe0XQideC4+1 zKMHQ37}(JyJ|=;8<;vEZ_dN54%5$5`EYXlQzEy|5DRLWz`HB-rN3MV*w#6C+KlSdR zgXjXH0ltsY_7zJ*C}prp#CX+rN)WTpS_P93<(iqY-GuyY1wDtS7urf5M~d^mBq~># zW3lO5042POd_9DTb$>wqgI`8_ek+zXo>T*A=3TGRo@}`k_Uq9zLn|Z=rT!rnc8)1m z-CmT)6OE>JIX>5czek2x+bJu0d2T+uNr@x8^W$?J-X{s0_@4wlzv*%|0gg3b7f$Uy zH;{uVLeUM`N+6f8+LlgIxe(_`X8)A$yF|6-y9Y=|+ula&UinQ3^IkY=(}P0HiD1)L zw7*{nrJzA+)K5J>;gMbalQdL?I1I}Q#Qb>2U`WlEn}bPgWjnquDpui?iQe94EYi|+ z;jaXZzK!@0)zo1GW`^sSbW!oRhOi1Bze&fRoIxdDn*Ecl_{y|f@fm6<@I~wE(w$e} zakaq}bpyINVLejp^Y#Cc7MLmZYUGD@`6`X340*KQcO(8;>onmNb{}b;d?&fy)GxdX zU)I(_h`NP5FVJrB7K8*_l8w#1Y-^FN0{>2%@tJcrnMdOM>j(^3gpM`bggVy!mPBbt zYtZBRaSr@gtSgiR3*F+DYnR4|ViJP2#+!UU7T_i>yK*l}Nn5_C3bI~m zmrtb0Nz+$iZVdl+MAuxRWfJe~Bq;vBpAQf|4%vn_;x*mtx&IE}4wh0PT%rA%H35TZ z)K#7!_8mXO-H>~iarxI@2zJB+w9piZ21nvxyyKQJ>q=S6xSa_ow}{jkqva#O8_lm? zI52&Fu2o0YHr9V7*Z^*2T9C>3>i0*Fbbp$4>pTV?2CW>bI3xB@kyq}Z_;kTkSWgbK zPLW>U-TVjhk#x(bhe!h{J@`FpL@MSqCHuT=wL#sAxrEzv8lthIsMI5-)HLnEMZ}2bDmC`m*{~YnzK+PKWC7NQxIHe1x)1&wB=J>@cz>v$X6e-NHUUq z6slC?cKLW~PF8}DBn9GXc)vhlR?PKIF1MXb08TpczTDyum4E=eQix!&NfVI5@{H}X~}Kwa!hrnGR}pa-9tWFqpCLi zt|XmC?e3&}%OqL-K|m)NzTLf+Djz~kZM>AslY|vXH709J5`Os5F##2prZi0obEm(4 zvLN=EB*Eis@mPy4HKYC0jFb5YTQMmFEVS#N!6G)67lPbL&B_7vk(8+uJL za&ebs;iaqvSg1lekc9^(cOeq3NfSf$g;GaB7p~33ak*yakxM=ib!`@g@Sa6zZ>f-( zrr!yOx4d8fnTarHTjPn&1oH*p7|b!bo6hU_NY{4r<{~N%k6jBNk@?^Q$;xnLhh2Vq zO5 zXXIM3yB*>t8IQBb%&Y^2*TeStoAS@T*V(RPu$<4MFD;Xq1z21{1|xpDfB>9UhW(ID zLz2&o)M;b2c&vKOl9MAb$vh3sC^*NVDKZ^d#Xw~lyg=N4?fwiR$u2afD22Hu6*|Gt zchHQX^9Cv$6IV8Lvjz}sHpXr8+Z+aMgw;Le0P_2n*S`~LxvP(q`!J9DH)%piqlE`K zHUMQ8@aQ;rDc2i`c1zc-mYnFuuNVJ?vh**{d^r3edN3icV@!HxPs9SHi2@M$I#f*b zlOk3)WjNQ9jp(3Z<@TS~8O{i8>1%~HKH23WVCugEA4*{4IeVKOLuJE>nka(($QZDz z1b7IQ&WQIO{&fX@*D%U4V7^2{)9$mO+KjR>i#qreNiz@u3A)?&QgPEj}>QC8teXg?6b-@w0wazl8+`Cz7&Is5G z|HW~WgfrzrrMd31?DPxX1b1lrW1u%&DXQ?QRz&tOr)~(l8j0SA7G0V-NV?Y8=&ka) zELInB$mF&iJa3mLhoX36ixh?is`+wWi@M2%k1eSDBDnqL=&yZJrGL@YKao+d{6brV zbLvETY5daLF4+`gq~<*K;pNSfgWn4Gv=UzRBnbc5J4CmA*=G@CCBf3Qny4pQi+;bn&>DG_dd4VOcjg76r>h_SPrUQZcGBYd1W?+;(m=Uorg|K zXxR{-dXIJYh@Oc~qs0OfSZSKrmOzBOe*_300Tv>F!6^Py7OcVFn<8yus5dc+eC~h6 z?0-QaM-Ad8j@#79^x33Bp7y`~&p>+aa71(BAu&;4p~yipKF30bun7uDPOYzj>sxhe zBY2FvOvBO}(S}2ig5UIqZWYU&AntvMToO7$L;PYPTa}Kwq`9@T`rs?WG(j0Lut#FW zj{7beGR=X|Y6C(o5z0Ke+l-H4$f5N_#1oEsikz9ec@9$ZB$6vus^f&>VG)!9&R;RL z1muq)LEtm5#rnMIEiJ1e6uAbB&Q|4S=2>SG5i*h0ZYpqNfMW{{k2L>)r?3YDto#?m zhk)EEIEt97;5Eu}2en?xQx~J?%5-2}e)q2!3P#s_=+jk$ntSx!YAbwj7mlGBv z8bb2YqI+6&D=f$uTq)KYpC@b#yggt8-PeWOhTol$4tC`H#gApYE6C|oh{mVyN7lTy z(&Q*gbXF@Gvbqh(G?w987hR-5U~Lw^y5!v!0QHZE9l}8d}M38mpoE3WnWwUrYPG}CVSV_3YL~=7`GVgq9 zU;)PKpy48&3@XM8PuBhCgM)Q#<_c08Hi_xzsC~sBSK3cNy2%3o5JmD#+iu<4d0R$8 zgqD|bT}T>O|E+WE{TnYcagE{tReJ|Vh&Ov&$J)IV=}X5~Iw?V@7=_Ymj>L~1XGc3| zKYY!u|JSl{U zWeP70T{&AO1Jt!02ns zBATO-(_lktR&mKuR$>wRd6Ye{|I{bx$E0@Q84jfjpWjS_Wc zHyzeuY*0IjZMg0j9kFt3=F_E`@w6dv*y@!lW$^_I#<0kVzBs;_mK@&C)=!CWh11G;NmqdTugIT3vC?Ez)m> zTuPc$_Lgi-XH!M{jXdYtxNV3EK7LAE4OAx|*N={UIgxESn>Hv+>rjoF$E#T${4QohLi7<6GqhdrT zDZWw7A4>94p}9e(nSG_vS&TMrm7;H#oh4`1u=mmpgIcQufK}O`PYtTtRVJiyXjFLr zzkIAY8q6$XoIzQR_Hjrvf!;$$S6kR=iOU^LdxX;B8+s7K;J32gNs<#2i?5Km?%5NB zF@U@184*5>E3_F@N(E$Uw-Ik?n;{J$IPL4lw_uEL7YQkDFF~zsY$6Q&jRs#zjxAZT zO;js5m3ZKyQo0ME$7;a<-JfQnMg`Ad(IKj9(=N6iTJ7Cez;O%2Sy!GnI3E10ul*t0 z&K~3o#tcVpEX9z{y?Jys-1wFVu7e1kK}!&M z6gN#HH^z9H8qtbaXQw{RNR7nB|M;YyK(S(Z4()YCrnvom8fs1^xZK(-MWZY@ z41_2HoLE(~#0Ql5LozIcvCj5-U9%}r3{N-N5z)L`z`tFTaE@l$FLpb$dWYE#tx0Fp zGuJf?3)Ns4X8>8hJSOWtBZc#_N(8-?!6gy0_N6eOJr8*trg@uSO6uRne_%d!Cy4lV z&Z2o)>kQ(3kB~LnO0QyZSu~AqzY`~$ZMQ^KZ0I8YkQ=WIeeLv6v6@eCQ2TD{6js$* z_4;23>{A)APKC8}`0-d%Pg@>;eMkS1*Yz%sO(4;{?P@k$^DjQlnrt^ps8<0u zWHfM^5h0T5lRV38GG9r7JE$II1u>ku=$yhq{toDmEcxLg$3Wl_Ipp-sd!ZNAJ2@YR zAr6Ffi|Iy6K#G4}HbmGeUb**}dK_h(P9-(G@v2ehq>F;84%bEB`enh4U`_ip z5UW*9PK=7UWZN4o*?M&><$5VGmd+?5$bF5{K1if$m4c&j+H^D2Yy)+IdYIv=f|vTt z?HviNT3j;n|>!^ ztFaU0TiCuIE^lq_jmgyk)tWQWin9tf}Cm@#ZE-uxty2JrlJ071N zCq4h3s8}%9+>oFoYTU0*)X7iUaHgF!LA9aM)~1A<<1weXw60&Y?|t~;U3=Ax_vb`Q zNX<*hNG6f9Y^u>!ju2#@7>! zj)%6098%OEjx(IR;T?8MnX`1BKuD&ljJAjM99B)$Xj!~}y3M^HJ8n@2oUu<16SnbY znOo!-gzsKjr0QFIsti^(oem5Q?B1b4@J}?ALFu?ds>f^p0|g*JyZNxy>XcE9NEGGL zZ@Dz#xk?onOEeptZ~^p zXsG^%xh{=dGlF*YdGVq}YcVRebfK!;`wtcn0gIVP?>BuAwBVrtSB=l+!%Unq zaiRh+JF1rcB+5g6J44>)VL$#qHBnFEM)(E_2`;tHWyBOfB`uQ(Y7N#NyTM;p4aGHi zm48571;dN@<8pQWMf*s?-N`01VT*z1Enw<+)@2=a!eGahQTs?*h%h2yUd|1==zX(- zr8n_^^pd>z)>on}ai3dUtJjOEe<6oADgnRsYHNL+Y$7-;;S1@y|(|4Nd4Nlg9tIAL;N85*?>xSs^;!>LFKkS-jHD zC${QJ>1NkO6Cf6JPBcTMKVL4Vz4zeSf|OsQd!ZGPrg7CGz1t2L1QuitJcYq}HJ1?O z(`iQBV8&5C$D}E9-UhpQ_UNBN}ZTJzb+}6nj?HhtbcaWbolKkZ;dwC2pxTL|8UAFwFBQ9XG^DI9kXHVmcpk* zq0}gPNdkL>=wmSU-)-22MyjP**3W)ym5!U)(J_Oi*+q@pCE)3rb3+9@LQ=p^j)od? zmFwTNB%m$A!1TK_;}VoV&Tutgi7L2&j@QdE(p5aq@U1dKsC7Jld_0NDH+1RS|LF84 z-~IA4C&zF@&Jsl_q6wF(2+n$2{y1XI!;iYgsPqpNsv23tfb)P%5mLv_0!i3^(a@FIm>2K!`{ z{LXib=;h3P-}jp&NMAIYEmDA?_v4`M(g@A{fr!lMyla9VauI#qE)J{xw^VaGSqI|MWPXfcB9goR zQ0S7>X6I0yCCC&|%9>fN?$Dd=f-Ep;?(V{$=}#<2@e_u!jDPjNl~0DWy(Jb`;OEU~ zAXl53gU#0@;gYE#J^!FZ9z-9{L0^lht6C;5{>tMei&3b7j^5q2KXh6OayT?dFsFEm zWG!gyUH_&-v-!q+t34^*CORx%%(v6X zieG9r;`GN~UfiTQs_z?OjJ?L43PyvGLZr?9O@1JkVYg|@d3@HXz<4ZSnUNGX>#$Sj zk&`xO=)D$Xru+2i0wn*n-wJ8}y0U`XG2i!n;5h20?&=U1Pjl+XY6TJ}+gt)(8=AVo znknOR=3Lv~Et?%B`jyBt5W?zOrfGzy!vYTm?3i)$6&>vHS+J5Zj{dNdIr2r?l?)Zr zDM>+k7Kxhp>!{vax3;fiFKbgIPoKP|F46FgFWHv_-8)z%2qaX;?RnE2omXUkeAaub zI{&|g{*|aBNU$Y?7uPdh@;Lxm&_Oww#Wb1QzD@4&KDjc zjt-AI+I{gk8|JaJm|x$>A=h%ooVY%^4-~2<1j&7OhU_CD2SaTZA?tW_L0P8sfim<* z!FEoORq5Gs^7+7@-`P_)Ina`%hV7%qTRda$|LZ3YDHAlCM^v3rZjJ-1PxQwcc-#zN zL=Zop+fj~G&f3;?%d%%R37u^3Icz5A(+imTWx92%V@}&N>k~E z%suR^g(xmpROA>5s87Lz#od(ahgN;PJ!kdh3Mg&-*VqJYu+CtZ0p$h|o03 zxS}+=ORh)+f714}EO?D7?zzpdfYqjO`y_wJ^;NqqSK5uF*N@hJ0q^|Zok1288TT!;SOmpR1Zun5H zU%<;H;7Ti(^Q+(QF!J_tPtOG3-}xg`>&Mtgh_vq?KXX#Eee*JM# z%f~uW=6-6Dvgyz|GCQ`1U9Pw`loduc6^48Xhd4`a=)ZT|ETk|AZTg_?V4%uJ1802l zjfgfPit^1F$E8&MJ`!2?D{9n534FRbF68^9by$Lz+gXnNX@omo6l!Dv&pK*JOzgq>u)DCq-r<>@zP!h*@3BJz6@ay9Vg%k5g-HzDI4 zB@Sou5Kt_FxT^QOFiOn{No;Vyt^wNukt^LbmvWnQS*{IUh+j zvYEz5ok!7!;}qK1C^TtynD(E2SO+$yqp9537o@6PJ1529pszl-H3H|y-GldO_76k8 zr8!&Xb&tVJ%TQ2Ow2T{B=t}V?ww6wzRXTn*{C*)(_~2D?gKxWiRHG{3#B2%gJ1 z`TUD?zBO0T4Hie!Mn?%-%u{@bh|eYBc48oAmQgaf=XbDiyXEdE;##0eXSMt9bCz;X zzNOE~m+#TAu*q3;hvD!zqHW(PtIv-Q*g}_q92p?nPKTptdHwEaVV=Sq1;zP@OxpCdW%X6pZO)9o-g4l76sbm5lG@Vi8dE)aDne`_5|MakpNJNrYzG13 z3V~1PE_#T@{hx7g*Qe^fkAcZjF8)3617FkVNumd2g&3#>^P0&W6 z2j|Q1dz!OZ(|Qs~!Bm_^$JR^DBMwXQnQ z{116rWf2I@ZdN0O1jWtPA367LI^5zIT`kHcyr$pP^kwuyWAxr&>9o-7iwyi4XpOhU zX#E3pF+PDApSRV1hVn>IhbTIfflGrVH{KRO&->e;9iGr2Q0X~WE0fgCcjiacn7YYv zIv*vE*$LBkCDImYSnzHX={Nzvnaaq0$`&J3hnS~GZ{Ktusj7rG@srU#=cNwx&@0GEqevn)- zh{JSJ)rguPnDgSZjDs-7Fc)1C4>lRsfBK((y9W*r!~=7>z*YK9JN(A-NmsGRFBpiU z<6PVm#=`Y8e8p#3jU{$?4qm$y_44g8Q~MTkXW3Ry%IW)9$8SD9xt76t<-jZ*HO_Cy zdDjHP^)W==+OSj?I-RNv?H3e15)}%2jJM6-ereA+arAZe!M`+&U*0^8!?uHO=AP6q z*JaLC8SjD`kEKaM!Wo`WFYo0gdsLmB*RA?q89P^TS!X(4gmGBX+BRo=Ltoz_Y6xDyY}HhW4X z*a9MB-kImIlXaAD`Zj%5Fn;p)(bx?}deKfUFDIZ>l+PfnL}f@29nL5?wSOFcx}Bh5 zLEk{ubMS)Ea4yKy-JfwuLA~>E=3F3yO}BCoI4GoMObM^Svr7%Rn}DS5zm`h8`y8-u zWtcd~oyLA;=#&M%ivCeE=WRqRJssHQuIa z8QNpGw@_w<; zr&8C643Z#TmLt!cMh&eFgn~Lj07He|rE2^DukOVE(R2-rbv8}(#%ye(VUwn@Z8v6P z+qP}nHXGY&Y};mo@3wuvA8?<&yEAj<%-Px9{|s@v?QWUL#Iff$k^5!n!l^n0k8)Vs)Xu8p*m@o5QlOkZz^Kmm06lpZePkYg_U}dtG=vTF~fqz(c zJxNx(v4UPL`gfsvulhdS@En3C9rq0`c&7cl~dEULV`NKQaJ)NA>4o~B%`p(WM zR_QZz+?L(=hDK!M@)C_vI;5XYQfoq77EfL4!QxcU#90+};HF}L@t4tGd!*c#vEc4)kylnTsEH0;mzgf&pT0@NNrxl1@#zR) zHgmr7Swu#&bvf}^=0aVSFf!Y#hYwXjOJ$B-pq%C`jGjU4rNn)?S-r#VFsfxPcRyT0 zYZUC~^rgwJU7TmWbzk)d;wWk$+h>v~jA{lL7#W*R9NQBzR*#Jpd6g`jVg>9aZgmdJ z0>9`NQ#fuP(L~1klB1L=E(W^kFq{6X1n{g39A_&E_m>GmgAYpN#9B7jEpah`^F|SFXb)pve@q@9e zne531&;X(ug$5am52xuYXeabJT3Xej{4!uuidgW3U~JP~(qDeM7q!#nBrS}fz(B@$ zWn4F-Vne8}G7pMr?*IhzlT2%sN%=6; zXuU#_-8VNloMWKX%Qa(nEP>|NB=wQpz62p_zNqrjhg>HoaqJypKdYTAxkBr|{#ws; z-;f-Vh-+k?#2E8nh}t)y`Ks&)(vS?uD{pit1D8USXDDVQvnK-Ws7$ruP8cn0sA9^{ zw+ye93(3dgb4zDY$M#p&G^-rJ-wxB@(626+JaEPYMDOb6!cejs_ABaJWSYYkN4%HK}0AY}G>zi56P7q|*E(1h&Pl1IOl($bX;zc9 zCc9FMk}a(UUd}C-+grWx)SxkCXIY08eBblGuCTvS8k9T1S16ptRt>v~OP+8$Qn}x; zw`Dc`0&|&5jcbvFEt>&JV4C3Yfwi+z*4LM;3u9V}^y~h-5}^qlESRB}rf=#wN%H9b z*xqWObwoyAb}liEvZmkLiaaT|BKD%y$CGR3w-?>r=>rRoY))U#>SP7$294nP&khm? z1WIJAIx>j(QbSa?zqmBGw&}R9!$Qy)2g5C~KhnU@}!L)I7y~)H%)?Appm;ukfOy|3^zbD$E=YIX)?)|`{@ib zP$SSCOy2spH}8FN_!T?!FsO2l5N=zCr;K_X1sz0c^i2xp zco1jyOz>n-yZA(IpWp0YUn-sbchPztYhe_JfSkS@sOfSk6`!w*9{u;7R&H=(n66d6 zSJ+0W@+@@?_5X&jqm098rS(_WBp`wxc=2zjqXA=t+%@#E&ckv05ou;I(agSxa9)Kx zmh$#*7IWimMwwwLj7;+}iIlnKvmQj6jT}gQD)TcoTjU^dL+gDZ(-5^xV>1f(CFSM^ z`&tvP-+6K-0{sJMptM^pv22+;KHV3WwEBQdRyoQMP{DoU8ezI>-vAZ*#a{JD#C&U4 zWVGQ6e_|D%{}Qg6`Q^KkW^pt(`Td+H%+@~mrUq^Vh4PN_2)EGI6~$BqI1LcC$2!v3 z@m=SF^rszi1y#=m)jG9LzVOQPS=kRlEPm;O`dqxeW_7BEGpfT+B@lP1ssFKS~|a}=fD>KHWs(#f2X`6s#Acd9TJ=VMHQa%A`pLtUc$z@GHS zSd86;5fr!vS-V`4*QvVCwiLx$e#$Anjblm}sJx*p9tyoQ}kRgt3 zxR%okrZTqrtycKG7%+9^E7%F$z-4;YnrO$H&qvBk9JaUgY+BgnV}96dipiB4HX9_3 zgoFjdS+Y4XIh09-b>8Myl+`!_;X1(uI$^=KE=LPdq?|zq^A{Td#p!ax@OjHCaxmZ} zM-;RA{$5iW8q_UGCRDSGY+=<^skh-Poi)sMl|3xCcYpbRNI)*pJu6VFH9a7=@o;~IE zNgDfRc`6|_{Xj=GXnb`5R==jtSZT@xd;J#DMw7rW+HJ3#Zm2g4Wt}2%sn5krqo$X^B{^Dmz3vVw*bV*e@u7FNH6orSweAXd~R9%>z$1mFp4P8cnG9PX(8ib4ZL+5 zEYzq2l}gcVj^`SD0g^Z@VGjs`b^8q}o45rOpTA5h20Q}?cuW>kDeM+~5@b^}J@Hdg zHm_e$*7H5RB4eLu$FS_TRHboLr9TGW+&)78$HNrL)!Y=~mW)K;-ywJB36M2uorIw= zLAei>@aeb2>>0DbaGhX zJWxNuwhT^Rpr5+78<^^ayWe70%Hd!_MJiAwXhhHM3uGz7Hs+4o=FVI62br}|Rgi>5 zTKrr8qA5Hq2LEFTHN3)vFb5-37TcKtJz^Z|xD$pXn5k16E(pJGJ+(r3oP7o-Ko;p% zZL|?hgVstmVm(SGLClk4;Bb|=<3|(~U{b|q3QBjjvJ!M7^rV61TFc z_D5xLW)Utn5NgUu=nJa*UlDLYyWRO(eN)QtCvVg+C#3+XjFaybzzLkL&(plwM0BC+ zAavIvIPgsSNw^Z_%K~3LsN&WS{}R>AI6&qa$QNH^2jTPt z>DAJT35PyiOj_Ewk zZ~U|gnz%jfxjT-&tF{={!D~~+bOT<^{*P#T9rq(hgSxXJGCs&Rs_HQ_6pg?M5?8I$oH#5Y=vbu%$c=IY}?j zAY&X{sLb?TSXxC9ZyN}OA7&+LD> z-#F_FDHjOTo)y`i?pnB+xmHEYa)O*)dMgNCJ7-@RV@or%S@~G0SDl;VMEk}$BX32j zb@mr^rEVdokPdjzp+=3CHOkfiTZA6<5L(jX{iRIABt^l&*!b0d>wnBhfo@n(&0%*q zLN%d?Tvc2{9AI2sy8{Vr=7(~r6pKX0d|7j|;dDXJp!I{X+S$1tuWFkH4YS)Zta*pc z-UqWu*|ZxRXYtqo->X`D&5rU5UZItGby4i{2z zW(hvUevp~;@(DS?IRjKLK6o%Pi!TYXleWn~C|y)Q$!XUV!2cRMucVtnFi=u7m@e1> ziuHwY5kD<5%TN)Q?~LGPU~AS`i0f}8G*7*LS5#(etSbC^{3RemB`tzxDMgo=m~Jfg zNk~NM<}gHRivfL!NHo}n_pc)hfTI^c+tl1G zPwWxrvkF2n$~6!P%ms_?%=SF$X>2nxVNxtxg0+VfX3*@#sy!%h2oICr`o`t7>8o-R zmGfD3?WbJ(H2)vY9t(BNLX4+6(GLk0+$(Bs7}~hrqPbS;*NT=h{Cw47K|c9p$!8ux zxXr+IqU{js*RMh$L9<2N-_{^iHf&I>+GEiNEpoACh{bwRO{eU;MOt?RHn#Q^(>ipB zHZr2*ND7)E{W6s=+v-MBnnX^mwhnLwcPj7KP%#5PDmC1$DEiJ1@{nhD0N(UxfUdnF zEOyH%)w9___%$Z;K=)Wc^(jHQ5U(WkfPq$P5X*9a7{RWaPfo|p|D7otlt8L7B$-=} zUnDxJ_FzLj5Qab6w0Jaa+o2&zxR9;{0nFiyV{)s+3Fxltm8pbI^%dx-bqF^7=0>^5 zgg%}&7u_DArz@Po{JDOhbmz5Bq-?nt>Iq|i2bhM5riNxG)thRdv7yDI`=!qxAqs$6 zU>bO?Pj#b?h==`(>ONI@++ec9n|Kezi)Op%Q~ZIFwAJyDX(c!8tyYw`s!W`~;jfg^ ztCg72mK^BK7?RhnhY5|+R|h=*GQVQBD-PLZ*1Q1wyeC=;{4XLF`$>X(DjZu!%?S=A zQ(9;OR@2g;oD*R7ZfiB#cp_t?HrvUg6`gvzX@v^O7()T=&7h)-nnxBn0Ppk@WO1KJ zld_oVXpa7me@(6_fIK9njsi*eJ6)({GinW2v+j&S7xU*NqsSF?d=^QxN+(DuBH#Uge_krv6)INY zdxttzBa-dLjCofh<$`#PHdWicYLZpBd9@tFcRr|c#t8?rWa&TOUy-x{Qlw!h@fn#A zUUyOs!|)zq0&LgWgb%SesZ%Y;l2kK9uBDZxdc`c zZ>c#msOUktPt_=@zTSOh&NIZ%KTHR=_= ztwNV#oA}ha`~Mhg_e+xU0YEaRin$^T#i1|eGJX}&C&2YB!zk$b(Ta{`q2d#;T+BA^ zF{lMh2&*pQDmDvwwFVX8aeY#2H&unV5uWKG=Yei%%)XR#uc0__HyU41eaEgsi(CCx z{pZG4Q`6WB(Qvfe+ONHs@|bUg$f!`rK#PDz@ob%uL7fJ zgI0pb_7#StRe{bZQE$4rdRRR6mo|{Gu|1*CARL`U(6+}6GhWo$-@vq=rCoO}T3&yf zhF{~S4ELP8u7ce^-9u6nIBSupo83 z$HZ7~OLGw8k=No_BdB}z(*e9`rL^R0MHO}6S zZ#=rizdA33-xO7BykpW_d6gKm)eFr902F=EihQpkQN$^gMFVz>xB`vcRW>wBb=&qg zS%PyXr72!OC*52()?G^atV&uh&f-oDRAMJV-;|8R5$5J+3}%@^tr zf->q#(R@aOCb^*M$((%osVjJ4#15nByBZV&?hOe*Cli#_&&-kAmfJ$$x$iS=m$e_;8o zRpu%Af5{jpNAYuXU8UkW_7mf61^`Yvi2MTGppZm4w$RXX31`>?Pe3`)8HlhCt-uHy z0)kxds8v1{*XqN!=otkYzI{DovmuQuRp5uE1!W-&c6k6ex&(9vX7u zDkhdQ0L=>k`vu~qHn;|swdh-9VGNfVCSGi%yLXb-vbJuVh2W?Q$V7Xts2C(O+go6D z?5E29HVGek)d-pdRvc{L5{bMQRI@39_VTy#JDKCT?O`UFp;2HxZ*M9v10Mzd zrx%#av!O4U;o=B9$_+S+Rx%>(f9jVpDmE@y*n=huhIdR*sF`HVg zxH&bERraz|?m@w+Ey|Wwqp!})d_&ulP3(Hx{6|R*+&4$v5Oqd|Y4w+;-{eijtt9I6 z0|#L$b%n23Ye)ZiQE94i7`g`go)(q`YfKT%PZbl+>M;Gmb`0X@+Wx^vYR1KbA4)8% zbqe$+e-;VIeaGD@<7UTyV>CKTa{J9kc#4W6SExf6>X!2rFgA%z%xNSBf^lh#-~Q9R zQaumMO8^pqUXucv(ISMnuH-+_5tn~h(Lx%bLg!6+pav{|+6ZiLv7^WVrkdn7&jV4- z>U3ovkxWhFPm?>{$$f(*xx)^#ImX0hcr#l#oScSLpvw8EzU>*!e}uI-R0_ZLn-Arl;HcZy zq+T@U?X@{Hs;lQ7=?N|UCp;=J7N_7xbrd8dGw6_iizhLn+xwa20Es558vICO`m{Dz zae>Cs&KxB0kGPZknL#%n_2e9^bVpJ>s56H7ZuVP&Iu zEg656N2*WXSF?1!taC0(=N{{}P4vS=u4#fI(R zqR2xmCG-C0j()mz%wP6deDO1RB%#O>g=*=4ibyt+e_>_cWsf}g=RV8EGDLI-%l0N` z6Vz&OLuVCMT9$o8JUi6pb-_&INjR0Y%WN953PLo^+UEoC{dx(qNTJT*klGc(t7TP~2VXyshSo)^d zc!Xwx73L{>@Bh^$LRp-kF{=@BUSTleoz+`xmth-QHn!=a){=J>P$C=BuQEEjPfjlxYA~w$HY;+-F}=VIt;?^2t09mq1uA>*Pb3S~@*Rd;Zxr z^;*J9?J!;Z2v3kKw5?b;Zz}CRGHuUe9Bnl)0N6WAukYW9#3mgSei^_2E3wGjr><^n z(ZEoQYHXyb2aw1n{thwBNPPjV?iq=%>#@f0kOFt{+Q){z`&)oV0|iaFXl6eBd3VqO z!-aLuiKQ+z&O=ot42EPmwo49N(GNvJ?zzlhf3Bgx`Tyfk@;G<_5~CunO>Sf!eVFoN z8T&vXp$!#)oKKM)E&#{#fFNU|=&x=>O` zz(7h%bIbkZhCpS34_DI=7m&02pQld93mz4S>^4-lu+mY4A_uLOjRe>aFC-uORjAPH zBn6*vWP!q7TMl((9{+Cn_g*(;XDU!=z z;=<3(nzaW3i3h}%%SM|NB*CGWV~8p|wZDtD>!Mh=*NL(&m)L|yMro>Kr8;eM(ht-? zQ0u^ZyU4Puu*}O+>wtWvJbcd~oH(=gSjZpaT-iqyW5+vb&)%Kg{0p3A1as-+qHB0_ zwHzuv)r~g}*GgXJdN2VHQN`$DJ|1VG2F3}AN!dMeT^(Ed1o!jqT+K#W^-d2BG-$Fm z?<~a)KL_+w)WDI@Gv@=c!7Q7WL9=Epe+&7ixBuMCSRA)qId zNomk^#vp#e2>AOS(GFsYo+A%lr#4tppVw@sZuoC%T>+J4sfo4bvrN4{Xf~;qbpiG7gQR>*cABeH~DI30tjTH5zaOXQ_8} zSNZCMT9x(lnW9qK3Ky27?Ux8g*z!WOi(dcVz{ZF?Ab5t0QNXrsKQk;6H@WE^ z)Hn90!DVeJB+kpI*-sI2Iepcm(8+-dSp?gkQk--?UnX12E-E@}L>2xC9nCz&&^m2~3dz^Vv`bOdD#JNP|ens*MM&T$l~_vz#WZ_f5m?`iciE>p6LI zPW@^(;35H)gmpAlbeU;Ag2zLg7M_7_wX{szUrmyA8yc$NKLMzvlrhQ?EWn&{QLm zuiYer;Cn%F5};h5*QI44Wd@_q+UMmSMxR>x#&J~Z%`CdLd5UX#+d(P04yj+V%uwE; zT6yois_tcD&RBp(TRchHI)CzvycRNAZ{i0}ee78?rUxMUq&OkSOiU9LJOW|{?mJ92 z4*OswjG`4S_}xZ?mB6HkzkB5KN=)i0I}M6Ph#|nFY`s(6q&{;*-Xn%SK?+Yd|!p*@eu`X^BXs^AVmNQovQ7tPnrTO7j#if z2;s5bS=_Lhe54>;ejpu-T6_lSVArp<1rAc08l7+6k;s4GHXl>1F2@NHPMVmCym}bo ziT$ORyFwq7WW7Q&nzQ8P&^O=v3~w)Q^2HtK+c-{Vocbqm=l{1E$(&5wRx%iPub7V zs_q(QnnykUqDjGvr=v3*aFIF&H&zb|+1cU4em9i#w*X-_8|dlUnJLeNN`(8tw@ zB3@}^Qs)pT)l2wOGZU36o?T;Hp0@uFU*hgdgByti)+g--wM8r({6B01xJdB;X<$1< z8x}>p>WsAKc-=zWbV&gj$Cy})MT(Fallubms?J3aDu=m)^*=I}8pl4P8e9w@9N$Bg zGpmAERid8q<*jw4kbxj#ET~bbT87WY?aM`QS&_*N05&Y7YVXO}WT%o-R@3>Btu?{! zI@_OZjH4360r>Et?DW}}SI+L08(Jvz8QvZQQv2uL_mJw4b9Ee8A5+EvUdPfFNtSnr_lRuw6h5B4m zT?(P+iGAO;3@`D|2$GV^; zvR3loSu5R@7jH5D*mDXy{Q{crL>V`@z8~jlPhV8>UM6H?-bd6K8jaD%jcN6KPM!Oo z_F{Pe&7uLFr3Y*8TN6+uGj|1RD*Nf$v~lL=(1=5nx{2liS{CoO>lk_Jtw$2>y3f+L$J zal!oZ=obJF55nj#KUz|;?l9(a2Fg>w?PVEpAHP;dJJnFgD;Mcj-x<`Y^%ild!rJQ6 z5q)d5@Ya^3g4z|My9;BCJ!4??FY~xE{`^azXC-D|1$%}O)Fl$;S8G1~&%rwQ%b6i) z;j2|>%k09UOy6IblI)}`AOAqllrfqGBUIQsO&P>U-Djum5kVQ#e6oYpX9nb;&iSOg zU*K~91z4E2ltnw6T_rDQk8VKs=U8J3VZ%eBw7dGT7d(1=H;(Us@K`FkX;&fAIU) z#pWnYJ~7L}R}A8IxWt{=ETRM=@TgEd14+8T}L=_wY)WF=vG4}Vbr)Bqf;nc)bP z*#u#V{Ws;JA}t-I9*RWxl)7Qdt4xLgM%J*R5?n|X>i*pGBfgyfdLo|YR{RSA@qKy1 zw&%6xn(RXx{k^lk)pbN5O{-`)-EM)=;xiEqDcvYHtixa*4ExqkFRhk0Zu7UttQaV?$pnK%P9tUd63j~h-~}3NRqi3QlEHadzv(|^ z?xt*K8>-`7p~a4>{095mS_7DYM`;WL}A|{{c#CQO@7KjZWbsp;Lu%{6wHMe=VfLLS~a`- zS22TO0C2CA`-=~t<#HxCV;P9pgI56dvfkZ)`yfB_8BWL#sfTdQm&)F>`i(JT-#78G zlk-Z8K$q{3y8bRoD{_U-|IR&|s|t+eWQVEzs2JBK$W0xC-`j8)r5ry@0^>xtWKjvb zLC3C&t?eU)Y`E3FW{vq&0|l6S0wrL1NH*Z7K{n>8F4I4A15F#qj1rOO>bIDHCBB+x zC~JGb1m_C6j9a`Q^hc%I*UEmb1wShBS0-dLuMDVg+?rTYWDHSMu?RH*WQORLQ)JYs zUU0a;2iTHV{gXO@t(;BDARqV;d^)62vr_WOlNZoiO+D-w%l1f}E9ia7ptWup?AF2pvrH|7Bxs!Tou|%$-sx($sd*5Wu-tc&D{ zKk-qS&AZd)l4$w} z%*DR-Et8BR35S+-FxL9vc|ym^FHqp-OQ75C!@ z!S4={7tS|%SyI(J+Y&-8xXQKq`s<4I*7$-1mVws~z9Tvx1?6$LZ`^%lbJmf9jA5|u zug)nqyT7w}J>F-hPGf1FwJ-1HX!mVMTB>8@#%PHnjlzz_mS-_);eK&N^DrV=G^LrG zx4ZjKr<;u(j16YGZAxmTc|AG526OB=Yh8xA<~y-F zI`ulcr-)G~Zs`_7(sG_1SNbz8$>f+qJU6XNZt-1c{Uc*EO2r=Tv;p z`gn8lY)El`gh1@I#F zxSEOGOrhN~M0d#peD}=z>4seEd2#AR*W2Uc;`WsDlyzgj#GX8wKe$(^k4 z6t%SX(=+TAFQnoDWeALx1#U)S{*P5?yfI(f*_X?jbuxtKb`=giP|?UZeG(%S!z4p? z^*DWp@NtPc$YEY(D^1-2v_=t8=*G2jC6UgV#u*;{!MB6m;wfH_ZVK&lAMK8jSrXCl zcKlrV`p!}|FRJk1(IQuKrpg5gv@$5ppYfknwDW7+Z#x+QWnxVuuR{|LfKKOE;7O0< z-`g&_WASgm8^)-)zJlV97|f$A63EHHNgIOqo)8*Kb&@1-ZLLrkT_V*y?7DIElZtDT9eh){YncMI4a<)Vk&Izj#1N@5(u`iEZSc(`23$AIXO^eEVX zBanf_P?LQx4K)ecvR*%+nU3cTYnoT6#-(txwqz5{z$W_{(~C8 zZdVm2QbjsO={1J$xH^iUjLbR-E=h=k@bMd6`$6Na&HMGba(CWKz02#W4d?hV>vuoV z4}{cKNqG7NHMa#WiA;n|D%9ab>hCt63z zn~e#X90}H?Kr@{n+O)_RGx#BpbmhggiY&khS`1z+Ah6(&OU$J^7dI@wBql|p5_vou zf7~5@wClWFH^UY2e(-+WemoI=EPlLhI5Tg0z3`XA5h9CaWCNg}*>h3MYjfw=UFp6y zwk0SY$kgfS)_|e*CuLhGln;M3+=Q8b)VhS!>t5t}M>l%fPQK(Vd(XpkJ(0#9DJN`E zw0II^I33n0?^9l59ays)JMylog! zh*C2Cf)1Y9fE;8v;OR4uw@67fAguIN{|% z>qGtX&zbY6%{>z$NqP3x5Ht53u?ygHeHk!TiB8u+U~L`fLp^)@^T>ln)jO~z$fPKs z4UMs&tAx#~iBXSjbPijtqB?MZQANpdzKTQ*Xdd*7qDYZ!Vk~_7e7KrCx(5O{hp@rP zdhn}OgDx6ukC)%YQ}4I;Ue0#}qA$Xg^Q0^ZtUn*BWR4HC#X=3Irrk=JbO%QYt!O7I zIb@kLKT~0-#3fUO&k{B+C-OXUR^QI;BB1BkQK#zt)`4L+_#Bmibnw{$SHKvzEAA)0 zv^y!z3iR>9PhH#0QrGMkl2Z^ls0^=2f*Iq^Uf-lmq6^WdL<+AJ8QYOgkmpa`N_w~w4vwPJ4~VKK5}2G`@&2}7?&Uub6Lvy6h`7fLh6QdL{ z+RSTI{U!QfJ()e^EtrHl90 z-@Dl8FyQPc%wu2OGC=UoZ6?_cQbu`@eCcsLE&80_;c4yt_P%)weC~NxGObTK!PYwl ziK5Y|{;6}pq*8YRJ)0gSJgU{9AoYtl6X`(S$%+j*&aYn=Q_rp1+imZ6u2Zi~))af| zTxM!wHSGd+;{9DK{?Rw*?c)rm`!*ctX9Ni|Tm!8krJg3Iqh1S2lxlc{I z?73-tmShMPou1SMOhdtf6ptOnuG3`Oq4#e-6k&IdI>su~*2^@TR|c z*Lu^>4zwWu8&hSBKg>uTQg>A9vV2)ZfR8dEb5)KVEi5i)THb z6?1pnv2`h^RE9H~Cj5ZLM(#$1FLdI&h5WpclCO_$Qa3oiRgl00NwwA&!q8=zB1^co z(cUWlzF#Vu$uvZIjsK0QJf_a z3HUgKIuzgh&|?0kDBaWkdiuvb1p7x9&&w!e>+LHk9KMs21=Wl=f9srwWtJ<5g*atc zU`pT80PMJ*1z2_{oaw}H?^;^n{oc;$gWvl_GV2x>FWATX@uiwnvkdS8G_(#cj)ob8yE%6hdi%TGL^w%jxe1|)Stf6m(L@pP%#>u z@+;FAe#N`#7-iEoe}r!%Dka@&2o%8CWG1SoPucP1YR|{6f9G%TtEgNbDI@25mIGB|JdiYL5((lBNh+&~hDXCKqGOW_(PnhGioY(G zQqJ1b2K;*L+0@cY_x8F2nXU}ZT!3)trv^oI&9?8?Nxo}f=rlttg;gQ?_$j7N0^Q@| zXisu8*WX~tvr7Ge{jSB{`FerNb?z=9YAlJr-Ro4sbeZux?b}cdi@sixRe22cz)wvO z){ucq_|r(Lxfw{`C%2Zq%Z}}IXX`VP-Phe|DCEQM-%H?Eg&-y795KL7rnsPHKD9LY zk)jEp5iqc$oR@#oo^1MUaWP`=-lVkA^`ra8CGUwW5Wuq9yA`_FBSzHnFSCHR$eP+c zU|mJ>Bi=${fdwcSvbWq@;<=NNF$abU9H@hUXPf6{zh-*RH8(rA4+=q9U(JcU+1N_N zANhUlU`c{G$S^ySQiM5Q3*9UHCT`w?CsE>t5V|hkgt}HjJ2urcoy_|5b;aFA`@1I2 z?s8$MOIt6~+x21gcZi3JwW|GD5Ip}~MEgYg;1RR0lCqD^Q>Z~zQIT9{8U(o4Al4qz zi2L#0;R>0^2k&oAPviI9%?_f1NRAWqSQrj9*yAO&+~l=K12ED|H2|{U-Yfu;VXbQ7P~$AKcYf3J{ptPO5&L6OgR60#__%C-nOeBV zUKDqG#jp@s@+zl5p3~P^=F}-2dZvLoH3+XvEm!)!rRn8r+S}`P|L}DD?hXRsr6*dC zwbxF%);jR^YpuQb45jTV{5SSY%7)~F3s1)!0Gnd8IB`@^Rn`g4jR)M@C;~-NX9hYIpH5bb4eQJ7(SNg37W%j(7QVv(aKc#YtOUd0ElNL@@@pgI=mdnx6PcKIEvYCo5@F$Gmn8Q}KUL_g8Jk>Pi z@wkEX2H7eXsjZesKk8vKv-DT22qG5qE^_cuy{s zZ!u(d6*<~*8+%re{YNS1Ok~kV*_pnp#ZRn$Qq_!Y8pJJ$k3UCiPcs&9+inJ^@{rlIwZ+bqHGTm*>8+UEE-#QL@2BZg z518H)@DFsdTqau_G*M_H`Q;Kc@Zea~!^%A4dfXfEFevMIsHuU$whJh?)^JdC;V#yc``xnzDjOCjrN7T%}ijpEo_tA=D!9y*9Ig4YpQyJUX|(&jTm z%6OW#!6|!;|2Z;A3N-x#((>czfG}_B2%YwNo)Ix>SeN(qPASQ_z~IRT5CLz18Sots z6nv+Brev5!W3CjG^3p0k5BXaI!ursA5;4y*W^~QN!S2*cS-|bnw5p&4E0!B^pS$;+X8aS;+8ddl&qCDF#o+iYB=wlx{X}t zBVLF{w{<)7J0Q96PqhQY`$6pUgM$^63=J@;;6j7!(O|~psRHg41Sed)W~sZ#+u**R z1AiqjVtcDW$g0$lfGH*uUGzO2fS*Pu(o}*-=od@2xLi95d+NZtP6Q- z53IDeR>wn*zH*&j7yJwCb-`=k&1k^w?V@4&BsheDNh{K5@_807Zc!ZzYMy?h%tF>Qlte)Op8M z90xN1i(Zf!HH;%&r#;{D#;ezRK7{B3^6`2s+tfAtYp2IPi^X|C&=B>8nQ>bKYkfzu zxnIX-Sm3A7N4bCh#n1Z0(cX|O;xuN?U#-3REAP~39#8j;A9u6A@83Bmu-{Kf5eD<3 z5045gbMg?}NlqqsvaIKnqXg87=u(id9rx5L` zB`>hE;^muP^!FPbx%aSV&Wm`J6ifDTRCmHx-8|H&!L9lRMqU;T@N29RdOjePsk9b~ zCZJW4i+=07{rQu- z&xrE)?Sy=<(RwlNf7Q3)-3Twgyz#%iinBj?;?qnHymHvn1^hcxEW)S6vGFU^|5DAd z&3DT17?9qQV+6a(%Ms7h$Qe1luumys z6vO$wQ3lX>?c_Gv4=8M2@Sd-wS+#^>SZ}Cbt+ZCH;`&K0Y1}< zZ1I||@$|vZ3m6jz0lZk&=(QCbn-QW62$cjl640YHoRl3m@jxakiVI0WFQTnVpU9s* zeXlp~EPVF!E4s!%Kk_MgEaOn-W6l~KEbtAGhFT}$z&42sk8U^#2|wP35ek0U0ZL{s zR7MpEcuxERGrXo(eEryG`b6!9WHE}VB?tBb#LhOF^jytCo4^@(b=AS!C^VCiT%rz9Vvs;$uNG_-Jz>R>Xkd;~ z(;RKjSb4pAJvK<}F}&U3|2jGIk6--w@9*b#_mXcu{pb!X9}cqDp_}7YIQrf?#cCg$ zIcMF1-^9N#QUXw`*`1$ZD*q4DU-UY6I)47sUiTzd&;bTVl)hX@nsk=hK?3mE<*bEX*_H0U!}A=e0^a%{U$#qzdl>Z& zOSu9J#?JwYbKykEg~6wZ$QC}gWr{6;nxA2&|6CRQ<46DW=Ku3oD9pX=C7!}%YR8u? z;ElagEOk{H-5sQ$#jb@mQ!g`Uqs&4Ej)_0hK|C{!dYcYw$aR0nRIlt--*}Pdp(frq zeuDp1p;n6oItsn4=y8rNA!{9Md#~8I*+Zur0`e%o}08?lQ7-NBjoPhM_2DU`(O(hYWSGWBu!U zJTGQ}n2AN3xbiM>!3RJYcLHU`>an6_PylwVGnqRV(79FCPJrg%ar&I(_u;LY$1WPY zXIxgku16g`{UGrjZUq`U_hAE6C8kgjfm)(&z)iJ`kfT(fteKK%=!k@nqNJ&#?9pk) z2=F=Mys{VFdxK}zi%Z+NOdGK|3E{{Qpwea$~*|?((k>JJ3rxY#125=Dm4xnm(6$ZL`fHeSn78+z7@LtJq?Nc_w_q z?FI@#$7f}Dhd%2|e+_4N`oQOX?*U(uRqqY)W0yXJTdD>8Yp%RumN83c6NxVlx;v7l zP!6s*8M9lWZyVsp|MkVc_^W!rKOT8d;^B0}weW=ktV)XsjwElnQ-fp|D97hs< zqOKyr|I1lx=5lVn7tjJp(5XpVa!YbnXFvTHag@$<`s{PGCAYS#s>_yTxk*7F5J3Wg z+!`w`$^zyMO=nugm0lW5VgPgqgsv?G@dP)YvvathT78Wn4t9&bue&c;%s9;}QUL2M zc(GMd9#uV}VQVh-v>Iz}sCA8lLZNS*6Ic+aBgt6T5(R+o?cMFO#;AR`MQZ!~80WaK z@J7)_bz3$up!8&{P|zlz)44H6blAdKndR|&pqpJZcf_u2f4?0E1sJ`HYd^!vJ)3Z$a&&tUYidwWgL|VzE;*u0yh8)Mw&%Z zDLuQ2d{Z>Dp}x%*#rS=y^j@)MloyTy0Lj>PKbP_=kfg){J4-?2D0g3$4ee)L&Ra~t_I znc-SRV%H!ZpVn)>^4T8N{llk|R#yKqKiEMLWP9E7&gHNPR-K8IiU0yc-h5Nepjb#b zNecdfIuJcCvlbwhnZa{{nfa4QSD(DFeXT(ba+J$!?<}J{O%+M20HE`abv}e?$xq6%iM9u+zgh% zVc0~~z+3u~AcI}3krESWEh-;#>w$nb|nNH@OyY&e9ynNjCc{&2hYs{C(+t zOh>aW>2;_JY{RT;!fRM~v198V?|k0{+l{kN!*{G;e=EwGMt{h$cON`LZ(ZzTg{6G!3kVK|3eK`CExT)mdD8yT zZf@tzvkW)o3XbuW?S(hy&4&g4TwZ)%Tv^@4QI9FyzP#*t?g91RoI#0bYLWV#h#5TvFFK|3#x=t$YHMyTA2|Xh zoo?8itG*VH8yGH)`ATyf=Ox=q?<|&#jX*81D{M*3!whh>Iu|*Hft`jTv#pidD1A(A zrH5k9fd{}*#)X9ZZ3qAFHv@nAc>n$v^A}g$xL?~G>|T0z)X_*Bf}B0FOQa4pyXLY0 z+s2B|xE7_4u-uA>CLJ_K1#~!@wAUHq{T<}$$~#|fC^Ma!#2DrT{Rfiut?`|^`{=>+ zMxU)}1a28QhLn=8%MZXf{C|jRmr4G5UOL!C{=V>rmu$-N7~(|AtANylzyQA|33Xb` zFcS-lsbF3ZTxX0O3>g_26lkpJC=7S8EcD9Gj&_vu#rOFNA_Q+edX-{>g0?+M4M~9I zx`(gy8V4u$)!=8#b;?SfZ^$}1v~P_ohT%v!D)94y_|R~2Vd3+aKE#Mkk-S`r>miQ7 zs>KEuVF8{boA?6jLNV!+=z~uy2NEH`G-ReSz=$;XSKH(uXSuTY&gUKEl9^II4PK-2 zmuB9@vqjrtn$f$udKPNM6@(M8zaV}A%OU)-^5TMFY}wtTef|BgOSLQOZnUEMP{O83 z0NYD3PSC1OCa0vv=%-Ylv;q8Pcv3E_4-t^S)PQ9)RE`hMV2|syCON=WuCKi>tQ0oe zMvi|?tF%P{f0whC5eJA+bI3R2AHc}~>1MoW1QtJ-Z;joatv-03@KX{-!ZyN_Hfg6{A#Cq&igM9&!Xo~$ECEFHgOJ`{iftN2xg23 zOF4T`@j*RP%35mTK(W*Y+gT`c)q9%Bh1xSx-K@^5IdSdBOm&=R?b*mq;x&=$q8lv6 zZli&pQy7Z<3PV!_7)ZgoBAoSR4S!WB`R6H^1SFj=UG#moPk8(Rg-%KR`>w@X)WZeF6i|xL@ zuk75!#(3UM#q#B-8x}(HBj!$#<={cT)U+fRq_8o@_nGUW2=OWuPAZ`8%YZQDQmezx zT^`^|uh_`W$89GufoX(5jdBSJ(iKC(vFp_<8-x&r3cRYinKPfEazxfk*>Yt6&|3`l z$JqOy>sxh;dGrX0oLc7xky4xO0A?40m?JQ9Xw|rPgk1n z-p~9)rux~w_4keJ%xOx&i-9oS!>TY}UGf_Gb3^8n{aacY~c=r;I}ewA2-<3UXqyG(s$kGm?UMFy@@t z`pS`GF@!aGeA#gSGMEAh{OR_Sai@p+*Vf`2cuF>BMsWtTxa>KLwYp$Zd3zw4*DEgY zk*60L3O^02pniIq1k{3BK#X&5GR?7mbZG-Swb4M^Do}RL4jiQ*yVWe-u@P|1>X8j$ zsHPR*0iHxg{`dEgS1m~Gh}L)BQphQ1B9fNGA|;Z%}pKb7k^)O=Yx7N=N&+uoF?jmcxElrTki-T z%cUHLfnER#7SN0Wu!AqvLCId;^6MUR+~3XH<3q;ZmOYnu31xG}jh~2x;8e4>eyW$Y z>1NWo3XA7C&=Ein%xnP3gzg75{Xz0M%){19uQbQe4)XodJ0%s}8s4WC7VVO}I8dme zr4ZSkVv3&@D9<}#oZ-Rnf$9oJY#E`<4x=1cb8%(ejdrG#HcPi)2_%hV_+}I6IBQaX z^(BteLpf57XD5>uj&fP-%3t0u*V8c0gm|q%4tA3_7hHtigrk+$ER;toxhx;p9XZq? zx4Jku29`6&I>1_<-Xpq#sk4itr?tZ@w|AVyb99#ZcGdG+cbfv&Ef~|&bk(I<8*4>kgvBxBb@#PDPo^xYnhV6UM5q+MBonAOH!bw0T z!MDHgQK-3arbdiHL!^nLW62Y_$2yR(!>ep@uy?$P^h$9Zu8^IT43N<}e&)TM9tI=> zg&-$;&$ih*SG1gqfwPFtw)%*ANt59#DgTR|9~MEbFTK%$Uwzu_aLWp)9zgb61Mf9H zF0nHy!=k|TKh@{1_ykqqq`MY z6Wn{999lnEx)!~oP#={u`)tvH@U#s2i_pAuuW>#<+>YA=v^=h^d>&g|+=OeB_a1H4 z#`MBNvI?7Y7)_;nZD7CD#uV3)pFQwO%-UvQhz%o^*Bj+$ILvpe@2uS#0A^K!waWW# zNdT=tYo`jgZmGwd)GMLMBnO-|=3td~lrgoL$6nJMm4>dae2!FNOPgZO)+6U>i^Nn* zJXPQ0Aa&_{8mTd8r#|8EYs6&~po_Gh%>)+IOL@Ijeul%mt%fUr@8(*mX5qYXcCZVL z*NwyX(nAf&R!-Fw&RS^VR}~PSZj>cUT3;~D*LkeRC#9{GH-=Gczq3hGA7xcQ*AYC> zYR}WvNHInP89^$F2tJ6z8Ptc0QWL);7H6EddFhVv+SU&AmrJYf)M(B)OVqI@WNlKx zjaONwW-S)#ppIxPy`OFv2h>;Vi?hS1;5A}hJ5BRo|M}&JHtcH)pNE&SIbs?t5Gci^ z=vnzWr+K(XUa`$c@yb>YvKyBwn^$kH ziYj1k=#7;_QXrMYeo%DKD?x!9uGSi$M2A0eCo4XWA)_O$? zX3FLKGw)9Js6MZzEltiu@{JV;DFvDE1~^V`)wK|fH`t&&OFAOSYb{$Q&0WfS{sIX2aOv#pXQAA5>6v>gDO-Q+x*08#)0;lDiqj0#7EC4!WoT1+J zw;JgEeP`z$cFsZK!>`rG(Z)5^!5e}sgZGxL)C_!5`>2hQ7@U_|IpowWO}zl&fi3Sh z(@}xug|#=znwo^o8I6WS99UTqLroruSxYJ|@Sy|N;3Scv8e?Gu_JSPUs+PcJ{}nD} zqU*c+InMJY$_#^?sw}z{Fd<{vr~*a-dh#-l6gMf ze>h3HKHkjRN7!NfVh;!U&ZXryd;jV~INNDUL|$+vi9Ry0(SA3eDMavxXe4L00IQZ)8S=q2h4jDnqq*2_!orey73P zT|S>h3IJXjFuk?Iqp0)?Yi|^VZ}!YlF^1aIh(P!@L4UG1WGk1zg|uX3eYTynr7O7N zw1pfZ%Tw1##+tde80P1=&YL*39}D=FBq5izW_HL}ry|{md>(Qf$nF`mL13spIW1&W z00OY6Wux{B&uX9aPEWtw+}YE=?jL?VEN5L^c_ZYc5H_dqEZ^8UsZzm`a_01~Sw>#k zEB+8ntrgHq>KdP#-ji5rAX6(gy`-9PZEx@IGB2*a6E06`BT_umoF)Kcp`>v}N^d3u zX$;{RAz1U6p<1n!Rip?>>6|=rsqg=<&3(TAmp$Bke*PAZK+4yb-bmq_^Bu(j5@#xO zSxta0t&i^E53Tf462A4u!F=FVI7kgC9qb}lb3SHvb~Ss0S&np>OUv(+?bWE$avC5J zoV?t`bOYK{GHu?UZw0jpjrSxbX92}Raj8M!;aR~$>A`DZzbi&IJiQ+`~vCvyCvN9{; zV{i#Xb=y>khaceRkEgM1e|>xy*x9lE#w8C(_@+E|G)EGuJ!<4*TjNM1nHBIbRNrez z5uZTTZ?RP^ze+t1$)0K9$t_3L=j!<_1sd)au^beq@ClMMke zRsf>3y3W{a^lre0)k0Pd!=59WS41%Hgbk=8Q9G*4ncB+#6P9~_XM4kbcJ?XNQmFTd zXyv8N7=;r<(&Dk?ok(bL0C?j}BFu#ZcWYoOsd_$r!J0eF_w65kj=Npj!3J?_b+g?q z)2|}p6D2?u{EkAp$>lV`Q!+JoIW@xkC|QaKd+KXS3Dh@*IOOeCI@q;~+}~Aa}Ec3C!IhpgN$b2L>H0OX!&;U!2E|L^^;$U+++dXqoI-|NQ2tGk3z%09Ue zK<6~g0VK7=vl6bf7y!wqXo<*(1y(LY^WuD?vXWoLK>jWb62wN<`X~0Z4(wsLwCMTM zYHOR*zifcs&(y(iL!EJqHat*5FJpq&c}`RuE=1KyWQhPR#g<>Ol>*pRUuBB-cav)i z@0|gbG(^Dc=6qPiiJQ~UnjP#j%d)F=kwBx!9mc)iSRSF>ZT5?K*V-|#Ac^Wc!3`r;AOGeh3933yR!*7nN;<>Qq z`SB?=Y;t^86hHkwO3fKqc+5O2GO!Q1_7tmA%6rdTlZr;xQC6!Sq@=GTh{CV2#IX+Y zrYfGeYKzo?qyh~LL4XT-;Qbh;cF-=&f?{JKt5lF5Ma>{A@ zPBp>p6O~gIMb_es3vr~6C@p|bt?C`8w74*-r^%7FC8RE+&I*!x>H2VcSI0WW+t4fm zX{u!b$hS_EUmJ_3bC9S8ldO&dg2-7{kESk*AJgSd(JcJKBrlueNgsbb)GNL&cy0jk zVYA}Ts127z0Z4&aLk6@r&p`+Yh--jWt0IShD>@ID?~5Vns49ROrHXa84UYAPZx`L$ zwNik(3J!is)K-q>CUqLb!qSAFew3QcB1IZg%8RP8`G zb(^zz<^qraqyT{MuC|ft=z{|?7MLA1;#L_%w5|JYQBn$o9W(YS&0T5~ytJ>QeB;8( zJ0~`c(c?rs1TN1DxZ+vbGl!hI!fz~9R+JYC;IkSM4&*~xKo>pD7B93lJ%0K8`Qz{Z z{PmVQy5nov{4$=7yb#{CgN@6STDIuSLORKP4zI4O09dr>y+5H;s+)G!+cP^MqK2^8 zahZ5QrG9w_IxKIu(g9AicNaUA^f)df2cP^&^*=>rD`n=0xKO6xz`5WGU;9A%eAG2O z0IQogej`b)S55W&+l_vCy1)7SP4%B&?w|f0-0Hi1Y^YfS;%*iAm)X^_ z0~U^6R_v=SH~Io63U0=#3*mfGrYSj^i*jBvf(t%0PO11&i~U>|+t|xa?YwC?cX^mr z4V6KxX4ow@!0Bd`A6{u9oJpnz)X>;W_?VmkolJu4G22lSUoNh?feL)x?ga?c&exW} z7{C$=Y@*Y#&WraAl-e&ih*d>WsSal?ISbAPD>Hn0oiUE~m^aONVF@;;->?bManS3` z1|Crs$DT&b9{xgU^lXb4n-##@g`!qsnaFRt$0UE%Fdn2l{PObWhX;gu^Ifi4XpxEm zHE}L*iLnUS97Zt z{3ov7Qr1}nARD0iBrrIOPYu9{({$r#o;@~`!rx_&kyv*0;rX@oV7PsC0~-@l-R42F zs1vvek;#dRHL<9`vA-4Q$GN4m0a>@Ss1RmA*mHoJRS;eLo4U$+vyF~+rOTVxc?Sq2 z$h&c-ps1WMCC%GPY?1~gDHJeCpu8oz4g^_CXD@IUAIV?xu88zqUj0oD_NC4B&jWT! zo5an>LFu2+JBO;mOiMfhHBR9G)lD%2H)aV4?GxaVi9Y()D3mxrA7x%Ew zk=BX0`b5;oXO+sDld8J1tF31M$;E3j!7n{#Yi14%&PAsy`fzCw;AxcS=lh4Jf7(a; zjiqXb#iQ#>pO=Ca@!Rqy>e`$QVJIa(sJ7*MaNr`$?_~^djle3NsUz@q8M&+xGcER# zxbX(NyuatXy!>9gJZeiNQt~tDe5%r5;92@gJ`L7VAc$`p z=gaLs`AoH6$) z3D)DNkFXGuIFdGm>HM2)^Zu^0X9GJYQ-LxViv~HH;rM7g}K8azqgtj z_{X#a@5-K-n_>p*qJh2+==&MIb8YQ&vv}m1t(XH}s09W=4hQv8&tZ`O(+2P9-YW+M z7UN}X!k=ws`~!eTxLTp-__tW*5YKsO{hf-k;9S;RPKd;SI)0`GPeFVRfI!RZN`f2@ za?UZ>ks{43|CU}080xwtj*0C(3lIX`-^|-XIQoS(H>%!qsGC|!4rn+fiqwywsdfS5 zYG4bV*E*!@h_uCVG+xf5mqC4@R!2`9-s)asi9;OZ(z-ikEfz=qxrm=UED&SrF|;X& z9*xa>8If4V>MLt8qq?e8WpR>bn9jG$>F8Ne;lBUb4S!rfxw7;|?cOGYVKd{%(M19I zt}Y-@@U}Ej6|xixxLXDiZZbw5Rclowq$vQ%DxocTgINx7mKT=a*$lzyB76e01_r+J zFy!Agw0hr5Hi!S_9Ku@Rq*_;%I0ybTvQM*@e$hC$cU0Q{&2B#G@Ah!>aDV^l@d$^x zwC;vJ+g4?|?|o`@NX$b4dSxQgx^6xRd-x`m??I+&9^Mr87zUr2gJQc;y3YDqdmQ2^ z*Vf+o1hJOm`0v^?=cL!9tIskmRx6paubY$BLu1>6GwX;epyGaZK;1H`TrtbKefXpl z+rX}F^x^3kC)rwcV+z9NHQ%ZMC*m~b+c=I-4M+uvX!-65(gY;3EE_Yqnm~yf@=r4b zkVDGWl3r(wgFNKY%KQ9dg7V~*N{TIee3R}pTD7xWt-?w<6)*Xu92*pXw*k#LQ`NL8 zxPj&?Cb_%0|7@qxQy;J&JH|aW7TtJ!$~kV9AAu-?1xizzWXVajyYmjOYp#aaS_d#a z9HlxOm0J?XwJy|wGK~hb1x}uZvus9V%J$3Jk z3%&)_RrAVy4Pe(Ebn0c8_8iV`@1E>|Ba3bxf4#js!apvpyLGFwS)7%CQ$<*pm<*^b zv50dd7unJ3qa+w>7|urF08GFXgi?f@QIK|GlKEPL9O5L`*4}xUYmJl!R4(}1Lr>0A z*ru(t)E8vs1gA(geaiT7!BQRvEap(yM&K^zUhu6i`tjybkpdq--akDaNN}#Ly&==K z8Bu^if(=-;!#6^08Vg6jdB9fy6&7wSz&7M)WT93)g=4i3r0QM`T-m?HFo*ceOY85f z5D$K}Jc6*027%VPvys#}T^ya^Pebz5bF5$}DRD{!ND@BXfbjYi8u&-IF{0idGg}X% zJ(pMB7*grdW*SP;1M<*_0I0>WrW`itAUDk$WvYE`X*uvg&hU<|3gCX2lnY8({d~Pu z4sn_5tM9z*=ggE9d-e*C(9OKp1v+a>rA^=b%!_E&$^f;gt2;yuzIL?Y zeYMLbxcx8tc=OrrKYu&~sD8iRc>^|nrkj0w#RG1E(y7V>b*bH8kH8LWTWv)C{iw@Q zn@GEqis&Qa5G-Wme(6=`d_%{0!N!_9`>1o!5=&3BuIi^O-lGDf3b~xP*f=941!UOf zf%R9m2^a#u=)kR`_7}|XbP~!rh|+E>xlxO`-QCK$>aEx4+~^fPk$U$7!9f~j>I?OW z;#|pvHB!Vu=oY~Iv(8>Q{%^g)4hMR~*|Iy6LkhzSEKqwNz*sEq>Vd6Rm8zc6B{u)M zlv3${96;)x@4yx3NaHN~oMPIi`=h<$>zW&=vux3}352~CC_2~(ht98xZ*NtV8k4W= zd2Us-YJ|l)&W#kAaR6likeX(DjUf(qi*MK6cT>t~Q$pqF0%n$DE1JMVr~{W~^3zc+ zrizoP05ZAc4@J`ypSzxZ#!K$yl{bb6rwdjIEJzD{#qPnm z={ZljmsD{)G&uM~nVQUdXO@T^zmtHC$x4hmehxp3%)px4k0eUU(SwhQ>JjcP? zh@*q4$64wC8pTZjbJ%Ci28xmpT|%f92KC6VndWZl!#wmleRI)`N|DXm^a_F@N~zjL zfZ?b0!G0KoO(0MOC$qSK#|-I)U(gY8D7NmGi_1Z_F`3dZIpI9kxYSeWm@WGX%fdk;m< zx#)Q+_HA3SH#y1^jc7B>L30N_M|=C2XNaIAM(cEBqu?h-cx%(6&SU^Nb4t^-epc~o2G#1O0 zVGe2h%H8^Jw~u@)din)9l0Dk%_Lw`?OY3e_i);=Z5PZP7u@fN`;bYF(jQ!uedN3l^ zpaJtQSu6_=0RGKePMliYkg12g+8~Gc%C)t3Rur{@Kq3JM-m=GLSdX`=vQ!2~D0dbw zvemF~jA%rlmTA5wmn$N%UJkzhx_|gMZ=N2^ZXWdR*8`)=<&`(2z+BkuLP>*-UBiJ6 z4bE*(9w9e-(4JMR2Z09ko2ynl#|L zOix&=Cp>r%9=?pHFAw%r^VR_aR#gTVm=N|fCEBy8LYFlRLmTZp&_#)Ue%IEx@NYI z_Cd$*RMxybt`qF~(i^NQZeIFYrtB$xMZD3}bh+#u#R7WGh1!Lj7Bj#xsG#0cN1jKz zZ&BI^VaRxcU5@ggYs>F^NyI@4vYe|faw4%%V9lkJW0-LU>&*j8<0FZDIclzljzj5L z+2qruDFx5F<9B_qvwXkghLaS(DY_hE@gWrsxn_MN?;H$H10<}A(w;1^?~x<%gaakj zXqdoP<~dfM@fC(R$~(4}-4{x11lT}xEh{-K!Ffbhz@4>*;1FeS1LUWOBSRJ3r7*%o zdXq^pT*+6x;^F?JsQIO{ZtCW=N1gil$&N}^*EeupiI9RXn~wy^@(6GeNxj4lz*kf= zdl9Ty>d7OfYSmdPhxdj~iq7#B+AIgZ-fW|z+~?&@?ClrCS(?kFcmo2|>dW#Z<#F-; zJV)uNwk%U?l{MyCy>vhT9~)n%t~wKy({5Ra_s1@ejW$%4RDVKu{!wNWtn- z5QiY}8=u4)l9LYQFw$-jxY?!EJ!kD8G6~XDQ+u0rj`E=wcCfSRDLUUMK2|w&3XB|l zyoOkci`K`~#kx{G1?gC+x@AeN<`JXgMCf|WM9&ESShqP_b3Lq@N4&AD)l zMwD2S2Bm`eY%`OM$}+cd?PX@6#0C<#;h=p-t*{U_^|eX*pZw#^pDoklH2=k#?}4( zHT>!4_|Mc|R&aU0l&8voXx+ z9B;MIPx7MkJ?sO^NIMpyokr0LlFv$Tn6wi zh|^#cZOW*zgP0G*CR@m3krg>?5f7Bdp5$4(jP&PaE8xJzBz$4)(Hc#c+U zU|sE5=to^$NOg6kT652(AWT~b)#3Ctgs2);HnzcXj;GsYu0JMd{7kpHu!XI1^DR;q zI`s^trnCqT6OfS=3bLo-fRUPv%mK>y1(c)LlB#r$x|l9o$UXjmnGScVE8Ez685BW3 zWVo7rPN8_qb*kqpSntA`xDnt!3S`bn_e(%tacUC{o5ks?jP);rJ>KzNasTq?fN2{q zxmaL^z!$)kH4f@wa}Wl&+L{6eA51`8sD+b82nz>NlQbYs;HRYSjpq4je)QcIcKQ%p zCL=6~ucaZ-RL-|ARtiu-K)OrPeLRhmL2&2k6Ac_-8gq7lSF+1Uf9wqKZruN755FJn zL|f~ho2U7_+414~3UCrmO`efLAIM?VXRk4GqWj2$HJ1fQiQo!wn}hG7MYHB=d#iyC zccV*t*mNV}y-Xg?F$av=aR)34|>m`ANjr+w06kcW1!- zS$_2G`Wqd$+Z8}w_#)~82W`WL45+e~WV|YwY8nxjWgtpZTho>4Y{d}r#BYmZmfvci zpXNv3?_nSQM(E{~L`~UJ%xW$NnPE0S&0<4)n3b1s0dOi)QL+LH;L9Soo-;RX(@g($ zlKDLC?)hUd%s-?|-rI# z4x}DEaQjRh1a~C=2D7}o|XAW}{(bpVDU9o<9nGK3ztYov9b1jS^)z1JBZmZY8 zX8(x~w2X$&Y#C?W{uk><9={fr+~ULAyWjNV?VtDSf0n#GJ)HLTZkBrWUbZf_%jSj2 zbh0wil}o$=0f@{_{jldZ5kc}F;{4#aci1to#S8HW5NXvVmaiJ_k9vyF5BBNy%coNt z%yE{wxcK>ji+Qt@!?7D6O*0LQIJ{(Z(n!X@%aSgYl}6*MYEHzxdhfWse-k@Z4tf-SE56Jd@ z1r2U3O4;~Q5V5Sg7Y+60^RH%~e})g8ue|YI-dvs!N4tV}bL zQUlqiLXop%t}WMB87>yqEU<9Zb7WPDk;6P$)*MHw@ZaEu595vY1abMz?(}Zhzr)G@ zem5KafGuy%8WdM!j=HEX7&72+ve4#0T5glC&Mjo)h3ZIYCf-#na8_g~u+mb)8;$p` zhubIn4}5O?`uYC$?&%-D>BCR9;O3S#oUo;`DNL6FLts(9jTK+K0~#K@S`?o|0wQHy zes-_cJ8Ugco2iq5n5rNbKW51LyQc>o|3+r~c0=dB*tUoCa;kM0yg-aA<<4P!PFx0U zbw!DZT#4P%D%A%gjYXo01<{gPkw0d^&#=$!ZKd|F<#brM+!9CxB(% z6m{m@C5M%=*s2Q z&+$$zaZ}Bvuony<4{h|u)(4m?vv(?{$>OBZ18fM22fvGOIg3VhoAfs097bEN z?_l5Mc9H_(#$g)(dG(}9(GbQ~is}jlz%3v<;2=`jgwK{kmo1r|HD5h%*4X}HAL-cN zs6#yO`1x7+-5qGp@*9Gbo6Tj2;rPoBY>^CkldF*7NtVsJd3@6!^(g=_i+wfa7`TKWd6WHRg=-CK|)+Rltz4 ztPIew{bKa#x6gkC#Q*RA{ICE0fB(-vKE10kF06Q7PL#F-3NP@Jx7M5mpEw4}^|r%7-&Bh_s=d?72aO&y$Rj2vEOU_JkE_*bF!OZGXv=_#Lo^=97R z9a64;b=~t=Qe<;ZYM)3v2$}$ZB`)WUAJ(KbYV|o43f{Ebq;g170nP@5hAa8Bkb_!y ztwG*9mb|$3{%OsoDTnAQs9BfBl7$%x;_LJgP*+1JWohjlM~nl|OAxUU%>}<+@RPfT z+ne?A{{G?S^TX|U|2O#;R^A%%BAZ>#;s&6Kk1$Vc;uXL)B5ZIX14T^M1kek<Ko5fNn=R4uJMK1;md8LRB21uNIJ_2)rMgy2ir1IaoPd z={nw5xYqDG)4Fb&&!=0Od9$b`^5yRKKfl)ub5JFr15H#9OgC`7vEVH zR9du|`RLx-@T<8v0COd93XEp4lqg>pM&^~7PdI*t`0YCm*Ie5780Nj3onKt_%oMyo z-Hyn?n|ExmE5%1(eoNI;m;(?8463+HL3fVm0`_g*MU`HLdzP8?uQSHcF7l?1XZ*Bl zcUGd}dn~!)+jiEhBbRgZXE8U{S_*gRMe|xx;66H>`I7yta@8d3_Rjw5M6!io{&bX= zTv~gh_+WF=Q~}Okt}7MniFjj_0F-AZrcG%8AUomssggOsyAO#&!5pQA!HUhd80IjK zxwih!8yE+?R}xF(lR6Ma%OfIQz)SF{Hj;K&ET=wF3qn1uM(uyfIBQ#S-EZ*04R8Ia z06g^RT~+J$Exm#GwnyxCaKc_o<8}ZGj(*f`8acZytw>B`eu=co4Ew zC++HQu*+dyb7lFx14VfCl;I*P*HVCA@@nMM94-~v4UUkK4WYOrCKq+p(>nOu0J`-8 zBL3zcU;wkvTd=(Qhok)F^6DE9CZ?^6h+1N60JbY8Evz{0K69ALatK18knkFzXfYsA zOV0TKC0NNV9M*A|N2k zzgH|qVF8vqUpLXi?FVe?&KH2`C)GK!XD1eBxMs2i{;6Jui{gl zJ!JOjh*2g0zX$NGiAcnuy^>t7a|ADdd|{;+5W}bc5lbECQakpsGcr}zI&7&enFa(Y zoUZCJd`iGW`cY|+atpHA-@JTp zNY|Z+FM(b5;8yQAhNU5|)iqk6z!a#Zl|IKz#yiqDI6JJ)^#-#X?>y(r@6-iHyzVI@ zn)}5^7B+X|MD-BH0G|qR_{=`I4A!L{upoqrG=P>wF1gDBVWyz=GJ2!NcM3R&I9TJ@vBrT zDg2nV4)dygJK5)82rQ+ATx&C3 z&vt+73OUN1zFYG=4CPJU4z}LZTIP^BUsh%Lj&jmv{sj8%XiQwCFA6!3-h9Keu= z8KB`U1QYk>feX+?ltzifwQGj*qdAtQeG3T9d zaLlSJ69H-(b%3`zO09Fw5&*Qm!7c|n&c)?-PAVAEdtb|QoP~HQk%btR2MnUFXwMZ) zekNY}z!;HYF2&6<)<8n{zFjrWpGqKq+%SBz+oPQ4g)MB%ajT(h>dgbbc=oR&5izpl zu&m<%!KbndHS|`I0H;7$zoa9G`>dq;;25wJsM$%0!u^1q4s)g*+t@ket&i$La9TxR zDmE~HKrA0>6?j-yPMuXzO3k;K#a9P|<-syj-plSX7DtNRO#A%No_>Nqov*(2VzF7* zH8~iu8U;ykiUbI`fm*npW(F))5L3>mLh#{XB>ds?sVpGs)~njvjB~gXZSP=bP+HAv z3>BD2YY4fEbCi?RR(z*Gf>mqPdk&{9JcPV*ZI=1&HRf2mO!Up=6$RBkKb^WG4tAr9 zo7lLW-tMT>>Tr;X)~!rZ#~GQiO?Yu&UI7rzYx{x)`SNHh?p*jVhJp)y{Q`VEW-f ze@2kHyo(K$Ah&s4RBPq{`CKV_xA=_MH9G-fn9FKdFk+~V{)8h))mt^hG?#@sZ|drg zS?g!|*TznEYQ1{4PXyt7xd=MP=XgYKojDf|uA5>Dqxv>tjW8kyB#guX5;?S-L)m4r z=T76J9qO-D&zW1;#7(9ak@Y#Mauzrdn`?o)tA(JP6>=)?2)@UL&rFI7M9X}fX3ws) z{yJkE?k|5|d1nBMy@GqSm}~0_f4~6>C2~-5bylk9YgubDsZo{*1Aw_Rb(R84Sg(`W zXYq?aN|C;{Ssi@E_|hKE%+y4--s>B_@6OSbU5avmXT~9t1V_VH4Dd6gv@Bq1mQJ#! z2uN+TRCQ`WA}l{*sKY#I&pvkEA!$X%x6^>a%zNy>mN+LX#$jb}x>$~a^F?ij%(BJV zV9CYX$S~&hf~lwbPx@!=|O@T-p?T@ZgrZG#~&vuXi0 zqQy#+GCijgN^nvZN0F31L4kt{Z?Vi_4s>n(on_EHd4V^ql9O8s6bYOd)Tf5u%-H)j zR!P!^2gP0NTk48fmAr~|y^e^!diF0$$F_%?lfKg_t=@dT|9CroKgx~v?d0645Sq6# zoAfw}ODdIYH2bd~3|G3o-bFuxq+2?Sj zk7|6}7~b<8ZT2QromqvO#U90jAkQUrR-rDw8?awoO%~@K`WH<1tigg%`aCU@bs z_2pe`$eV9wLCGw`s*9z;CAm8CkSf%ljtK{HR*yKZ?7?3%X7k!>UA{QZa-rVAj~VMY zAKSH)od_#%=;~>dvF|oJI80s^_%4vfU>mQmh+U)4L7^QSTPM*vXJnT+o8M!yKg7nq zmMI+UR~xIJ_l~(ui8F6;$dXq3iXxd4SUDv?90kk)I4ft%<9q@~A!Q8&}|Y>!Jymz+i<2k5Sh^T{ucK3qTVNQCnl_NI`P~ng|@7 zo+r%$geAelb;j$Ba=6c&uf9|2jcx6g3s{`%VD`Z;R{h0{z%sL0tCIsuqDLwNfD*MP zWW5I1(1vZA=CeJVv~TW)9n+G!z2Jssk!)*{JFC9B;fb#!3#Vs`Be!K9k+%Ez>=?JK>WnLe# zGpc*!F`Tj%QmHesSZ3zT2ZM=t=1h_+vm=qs-G+O-{q*JIGs>N}9~dZp^FP<=Uf$99 zd3C{W&+SOVwYFf%wX)Te1{qyg9&mfj?yQYG-KsvX>DU>OvzsZmlw5m-_r18~pW=r5 zcD2(V6DKiF=S5<&-T^r|WwCM3)V4$m$;eDLKR?L(_`Xf4ip#{se6eFoOd_XIwN0<>bZ}S&2Cz1jzQO$rkX6{AA`Y=uA1gsIx z(lphQm{JX9@-L-$&L-W3*iQwnF18nG(TThLk-oqA{DCfYWe4Z6TL4+NTK|Fb zi>whtD`~MN)5N80Fb0rBk7L#@vw%}giiN>k$b2l@EX9Lvt+!k0NRN797dv~!U=-vu zxK9$Pg)kvga2SMO7($g~j%_ANkWu-j-X%Jrj&5!$BD+lW=S;i@LweSJ`oqyab#W6L zZ9Z)a-@7gvKosYwmBn@$q`Z)M=3TfYVC`1Q3MthOY@#L6iopl=(6t4!9~O?@LN`YTkDYKk9$~{>Lde z+M~W(dgJvWZr=KN;PIJ94caFs@y0BsC6unp(eWdRl{^BBwTf~?&qUN$4~*$cjrk2` zIox|Tmfxwgpe=^6S^-fRDK=jm&KGi6_B~EbA;@r(!!SXw{ert#(Ag{g+hgea;t^rp zSEcrw6Jt2qb+&h~k>Khk#iL+f&I~UtMEnN_ivtULZW0C%W7WDKzqp*xGYPD%DKd0*FN5nlaCqRtYR4i&7&g zo%B_6>8V!UEcB)MjpjMrjV^3q_Z*Sb3pfhw(ZFV5gE^wt)AT*%1#%zAVG`%aA)JJj z05h%iR=lJ>_ZjIM!g;s@eYf^TBhY5MDrd_Lai+0)*Cg_aox1gluf#E~5qJxgk@cOk zR;regNujvQ^BO6x1ke*`nw*BQAG`}6BOLYG60C(7Zav#tu#342 z^SRcF38^?w@Y%|8@6s!q4^&&S7lglG;RkwysS(VmOSIXOYns!ud$BRZ`C~>bcKYrx`PUx&Kdr+?V#S@wi;J za$U@eoYf(mvqjOZGUn{8*o=Z$O@Y!_^9sFsHoWu}XJzjc5?^gC{E(pzcdKjr*om1^ zl+!3RmnJ-_0x2QK<>*1>3hyF;sHVdS%-zXkPd*}gldbV*X#ffwE!GB=a%&DEF6`OUaV{*6Oj&SmsrjV%!Gp<9Uu&M)wR+?+)?DPV2>~D7ACist zpWu_<_~Ebi`_28swD%S)+qZ%9!T|83tvikCf~FQaOf@;p1YCUT1z)$v1LjuiniOj5zSQM7sRD$vssIQg zCw1kN1{looWe9M3E@0#cye(<_ivIfEj`o|4)pt&=5Ff;+7~Et_cg!tvZ0QCRVsX{N2)yW7)4-GhC&eSCWO{UC?Au=2UX#O>akzCubT zjaq#Ftts50x88D?9O0la6JKzUg8J+pUpK}I6Wo1PfEkd~*IVT%hql;I^vDxPDi7t+>LB@S^GghQCvM2HjSQ@d`OCwusW{XKp<%u)Wf;>P%` z%?X4WTA6anEjS&(s#bDHZi0O01V7;%7@vh2;mTg+wPq=qJtSk4ByPVEj`NGNRdbDO*NqgSyo@W%Zryb6${9Jj?<#aq84Gg$Gpw3LBiT5GNS&Pyx*7&cK^j zu+vTehwbDcWbove z7tUA@F?3eR!{hL;Ci|lR@nf&DJx2Qa){gR*E35DH7ho}qoK9mQ<_!0dYz^Sc_mXg! zkfS|EL`UoJqgcCNz;a0{3>SuM#~1&Vb$!zhdW`VkOG|Iu?B~tenPE9_Byo+rC7H!L z>w&|Ho!2%xhY2)sizC)7`fmB80kVdKmP|%?gI(U;XLc;V^LeNiv#K$9cnpGXmlbnB zT1F^|9l$+CAHu2KvWH^GL~gY*q6|PdfSYT^nFxP(Cr!kzPve(Ekjo28@1;9~d}p|r zN^6;8Vfnpx!&xf5%r3+8ulSfhkO-;H8UeMQ|B zumPWXXsqv?1OL+|aF|xKInQ3pl_X5?W;Q^aW^b%~HTwQpZ+d&T9`rd9a`N%#=kNFZ zG0kiCvC$|~Hw+2X~MDXYUOMn|nPGT7dxUhy8(Z^{*qOUbYFaxRP%2J0zsCE3P z#g6i<-Fw-qb_xs#piFHJt^?*Ac?QX{=vX6=uCI;H9kP?=?(7 zqfvanW}-hQV*I(&KeO=TK~D727S4@S{1##FDQoRZPMQkc6lg~V;A5{tQX1*7-fiYAl;9c=_q&FvyGjV=_REybMV4mz5@OcK|t1U(=Sd^jG0_5X7~^| z3Tyv0N&&p)@Y>a`hVoN&DhL4U-xxDJeJn&Z2W+__hJy*9J0Fm&4Aacr->roPM zRiP*+N0(^HEC2u0y-k-~w~{2dpI_0Z*Hcf9Z(!N0+01Tg&*K0bQnpe|c4qRu(!U?G zAVpD%8<96MiIJC5FQS9Gr-;4dqku#qKhW7Lf9^ey}YlZyye2mJ0)(6ml7Nu z3!)Wagy>fqdYW^Mm>f%s9RA~5n%xyR$1uuo1*OEvg{JktZ0uMN{r4r$s~u9=3M#J5 zwr2D_B#{_O?u*?|fe9N?W`LK2Sou_Kl$9sgsj^FXi#N28{&Mg$m zXeCYcOI%1L`XJOeP*w8+7EwnPsz`M(3oo!jx4ghoUpB@cB^ReR^t@Bqw1~i)>u=r^knn&-U)= zV}H7T_`GGE`r+A*qF&cGu+gR&q;AT$BiecseEJN?TN_7;IyVP!OmMRXgkx3kwZK*= zFUe7fAzP|Lk<|cjRu3$}XPW~4cd%pt0Vy(% z0sk2YJoUSk(7I+Y*cnqS;mtNX%*l3dW^Xfa<&Y$SwfcyilPA(iayqqE`Ix*wGQc}L z5A%oh9fk^{J^0`|)CEl{$CM3DNcO?0$RUEah#q|HW`8i%v#S_xzvJ+jQ0vz5{e zzOj`0#h&i+_aIV?pxe#4Sp!DN8I7=DA1>w7K$E3G9J_@aL2Aw8>iy!sjOwU1|G2>V?DPjY(3RCU9H?%- z%lABilTv34a;Db0g-_xsI7@{nGc4yMA-B1lg@t3BM1`OQW`ALjgMI&GVd9 zH*3Q*nac@|v|M(;kOOJk122}PV@_9!#6GA2&1$h_Wlirr+sJ$m_`hrItK@f2(37?%=G)gIG?{Wv_C}YuOmSm3s2!*9PI zeM!jZ|FE`wu zrzs!gAY03BRDh-IHoH%kr05Vj16XLErD$z+WLTuZCbc>~$&_0Aav+{FN(Um&1qn!I zoash;9OWaImfl&%Gm$=godJ|Q3>Q1KWCz%jQWl4AFo0?t5AHiCfR6yR6hZ?879E!M zImxk6WNX>2u^^lM+_6)j)J;SX?OvzI=m2XOF%w|}879L$IB%C7RFf~ld8#wt#t85p zxzQenJISjeNuQN;W<=|&Bx8*mGI8(-pd0`;**n+^T!cCsH5&z9+GI(;pCC&6PR?f) zcOB#Lquw9wE9a}9U(@)!Ik&li<)xf7;8SNwjk021JurRAwFU?DGtbA^gRPxrdmaW=ru>zEv@E^(m z_+G~p*kGkaA$afv9y7fPhwp9vY>)4NrGNc&BlPg`aoAB2 z=E~|D>RD-1Jv$E$>jtJVb1_yb_a*#~jsU0e;18iMUy!zNp6YN8#9)z{Tva~jG1 z-k$&U@c8S&lYZuM05ApdWjJYLF>~8mi?46K#?TOpU5jG zq{%Sn*La0lj&hr8%kO+3Xq@H%mzk4@clErK6G&Xw6%rr}+n&j(Qd%9T4|D?@BP9`z z%kl0-<9vAd7aaR@dGv8P>f+iPDo152-dF&*BPF0H?}q@psk+T?H=Ko`yjMjW02Jk#rnaGW*kVhN=8 z2J&!f5QqW4Rq;c3(L9KO@Ml9vygxvg|D~lj`XDyvg-GH3j1vP_0{jo70`+zl>5Ssw zEP#V!9y}~SqI?aXUch+>V*2b$-X90k3>0~{2I@Jtz16QgD z%)Tv7^~~ zbs{A30_#Ljg@J&r-N4XUN?DR2Xm@1#iQiPvjm$c&DR8_xExEPQRVVt4%GfFYh+o}5 zJRcR0F08!KGgG!6yeVA`%Gnh7c;F{>4R}PAs(r#tYLb>WPIosxaf6D&nP9|WIELYW`R0a*cWs}uz1>RFUb4eZIXfTolw zF42L402hu-<>xGkS0BNHmtE)<*}ctg?o+qzWM_j7(s@LZ@^Q4D;9Ujr$Bm)Za(8hW zg11IzIdo8ys!{4>_n*4Ts_z~Cbr6HUwB|V!Vkgm7)eW+mfP{0dl{n=P=~Xh&VG9YA zesqp&NMNeeWimH8DcK}=7B#c6;ucFB>ngA7vPq?93)MFks*h$ZfOmPd=-C)M3OT%( z_%=9)K!nv=G1nYnuOL?)|#C!=v-fUW3orMU=;vnZDQsaU%{n{acqpK&7MYV zoI~JR3%U?)00@`yu2AOetU?aATjeNMxw87cNYasyCZL_cKbj~$xC4pkaE^)JEQ=h& z$Tx;krW*VKK#1y?MHE3e?KjOYia7WFfNGqVSKly=_gmJHY272Bbeg4+Vp*ZU9l)^{ z>ma1&ns(QQqZ*=%0L*bLQI>9Ld!=>0kMo@EVDJ5)Qhrx>l@6c-ONP+fXj;MHX_Y!S z0Vbtt9LHoGU^%kQF>+d!%X>_8YV3J_)V1!$!QS)trO%B5OuL0@njZjuNKdYmkb@4+ z5C8xS3B(*YX2~eXMwW53JlH~TY`I#%Gh=ez;4AEMwBKwkzt3qD-#_PcfM|joBwtzx z(Oen@XNM}QAX)58YaKu^tqi}3HtPzLuca4m-2b*afcLfD>C@BQ&+m^YxY)7$M%>xf zEnZn*A)F3j@s<;x>zr^Ljxien=P0x5D%GO1fN8lUc_@`g*)i(EYwdHi16|s}&Ku@b zT5Z+!=*n;ad^5L>XcKICoUq`h@2;lI8|ailwfd6YEpqf}uXYvdeA?Lu{r&Ob{{E}W zgM*yt+Vba4lylfjUWwE0dI5=YIvgM#`xj>j@TZjFSQ)XabBt$*D=+XYhmfSgrpLJI zc%^-ga-x^Eu=C0}l+m4|XuctRbM|Xv3C05V%vlhefO&v-;8C_>$Z@q+lsb$$eV*xM zBOS}6&el9esK0?*_ivp5i#R9ux< z-7S_l)<<5)q?U7Io*I9(gpSavK!Cny5QEX`>CmLsy_NxswqRApN^0#@{o%Sr5fygBB zKg&`-HINl84v~Al$yVRomu}j~&iiDft11=erw&#M>a>`0X$UDpIavv;Jgu2i9Gy+B zHM%+KXfctouYAp5k9Pkl5dL!a;gjO`!H#u(1LqH=Uh-yZt2sq7DlQ`y;~*yXw5r2T z)YsX)V^RA$4KoiKBeK2e5~|OYf&*x;w$V`z_3|e6QTQ5_Z^qJm&bqwCLQTEu=s@r? z@0GW!P1X#V0`74kjCnvHi7vHNt{UnyQaj)4(^1}ZeFvM>VR=(4E+ari=^^s;bt*RI zB5cibl3C6(eJg!b5Y#2JCsup&{ubrpYSI*L0a5=~jz;bC-E(?VU6}=~%U-=1Ouc z;-rifLg4U3(9@ZudIe(U~;1jj8dYLQNS(d?BJyEqP9xwV~CosVQPWXQ0W9j9*N9z{K)I9bClz} zu!EhV+^df^II0@Q!o;2$22 zjh_0M5B8v~3o(6A3&?EJ$IB%;odwd9eTtRH7DYyK$T%rSW_akc%~8 zw+kgr`SU&0pA)Lz^^fys`{plOR~J4f;J|rXcZ6ywHp!vP5<2KYU&MVT(!rU4cj8Qj zpQPF%&>;{Yyaid!aa=;K?PimFb9Z@h@tyJo;0HFW_+=@L3~H3a2-(0CW|bI5b#>sE zGb=o$a7YV$a=sKY@zV9=R=C$WVXZ-ydqd`1p5v&kuh?^ z`#?wu0s!o%GegK7X#(p|dbHr^#OA;JleXaM&XhE z@s~w6M$^abQ8eID@zmtlC{LSLk_n8%3U#0t#GJC~s(khwNgNfbbVgsTmElJ1?Iv3s z>K$hb?=7s*VXWL*!`04S&_K$7daAkRzA=|zJ)+IaY< zJyKcBz7*9T=_nUBaIOj%H>bqP8bZY?$uoumJQv#>h_5Wf=rU_@;&RU+SW^CeKzvai zoB$k+fb(h-9qK<7!4ZZfLibPO{_;$E()@fT%)gV+0;2B^zZzWB^Z_ zQT2b*P%I7kV>!K+zGUN|+VrGO?%$X7W~@*Vx`@u5a#LH*RI8kFhSwvL-~SHnRh}5Z3@}W&o2Y zsk8LQxeSUL#Q{@$P!fvmsdVby?l#)fFL&$tn0vw<%Ww3pr>$6}Q^Q~_^P(0H&Kf|D zj|m~n(h33RPjh6`U$apWrYNC?s8?j_GBEsCn&-Rt(#96{T{O=!dz?Lt!F~Y)CYlRz zTtaD{9VV^`xM=}w?i7!9l%WY7e>z6)m-L9q^iscvgEuM&L(K=p0&iriMgUK%2tAp``Agf8bum8Y9u0Gy_l{3vZ(`| z<9ywnd8ql+b!4;Vhu}k&tXYu7ePq)_a{~lIU2---!UK%r#j_NCvKz*b&9Y>v#4>~>Bv8mfh!@q1sdXP#>27j9ffTAZh>uf{MXBP z***TYu_HZXYw5ju1b(aul9{K;%)yio<#Q>e@`~eSOj85@M!;A$oLem#rKQ(WaTi)2 z{=Ty>3Grw*`OCr^oxq#dd%>kPA_oe3XKj@{PH(rl#Hv1feCh$PR=jjsX|yRl<;ub~ zkSv31-E5M>J>_iiouYw5lC=z^-q95NoJUHUInCjam%J^{ zsXAkqVLqk8qaEeXRkvD!+vYXitV5VvM@Ss;>P7};^Ex=vV*>Zb8d8clDrq1TgJuto z-Sco7xL3T<8i)JHUsv9F&pSp7I08Uwjy>`TAvJQI(h9zS6SiKFczCSfHeQ>X%A1Lr z5RI3FzSktr-@!dDJWZW>TsFdYqv;2H)J1V-Zk1uoqw*N zk`ZvDjav-yJv`&q{yKcrF$!o(a-&i=03icV4Pdm?Ak%zSS11I;iPFQznQKjbNDH!N ze~I!v>(j6APP&BS{$c!joO5g}ykQW(ISprSw}M~*w30{t1Ks4p;ydf~W<$oE#%s*UVLu(rZiJw|#>U&IB)K;HP=QFC zRN?e&Z@q=aLDJjV_v42T_rHJEmb?4y?%juvkK-48vUmUIN4} zG8Ofg%@Eeq98$$ulCp-2(Wz^74!{;)T(H>s8aPJ9td6P|E>B+E-#7Q2eLL7GoIWZ4 zQ(z5`?8BQiN8x&v_ag=QXb4)3eg}l}frCh2wqi{5bz>e(K zim;z+r0BqBheX^9h&x-`B+l~y=_vM&x#A+OYF1;5Jx2Jafa z%S$HuytBVJ`hgyFY59#_O`x5v=$(@5j)Loa=eMFWLz#2gEA4Zn4_({BPM+0L^$5`&n7K_rL+=tiiL(GXpGbljLV9KOaOA5}35Z6K zx4olf_4*nkz3UGj-%owK`}Ruyx9wzO7=+(^%p8>Vu(~)aaCiphv3h7OWarki%y$mtumvSGBEwz@sNZ(y^QOCQ-1T@9h#;9$cKhx=x3Qg_dSEM^>UWHz9N|%nVxjnjGg-9G>{O8@ zab8c?i&JYSw4Yg6`|iu$DEDRD&b$72H-G*P*>YRbW@iF71tCRImT}lfK76EysKJuo1Vmd10f@N(@?AQnwJ> z7x4O+qkMWfn^{00(1@13>I%W5M%pAHJ5X|9JOq-sutApw}1PS=wTa zos-jAwjt{Axvc;I0JhiDL^8O}SS&m&Bg^E>96yJ&&+CJk7+ zt^M@!{=T{2?AyV<6V-g0dG^vn9-~rM!_TAui!-*kTH$n@+`)|zv}4WQ;gFR?4PLDj z%G_b1uOuk%zWD%{7uVi+zD{+^G62#cBcf!4mO-_!(0yBMm(2dtQ*F0l7D5?P-1N)G zJULK4WLGYfVZOAxgI#BP{hcX&u<*3H+*)nPlIwmT3J*X=!71}2wXhZf&yre(8o=}b z@V2mEIRK;^%=6{9zmMHOz(mvnGgU+_FSDcvLxU=BH5B6{c^Sr}Vr(sY6t5lt7c8H|J^`j2w&g1z^6zbboI0unXaxJJ@=rs%}$20A3Z#h-oc_?{H#!sz`XFAW9)v zX%LR&Y`ry5JA^il>+Ib^s=0^wdMh35Sl4#3^SKIe$rl@8aB>%GVl6xIK8fZwm9I0F zYi!i=12Uh%1y*CQ87Oyfyqiq*y&~7{h~;9It%y~uiZxpmoK1YGKnY8x)2V4Rhm;ps z@TRSgPz2a~;Yjji0)&fSyHMtj5vl$gB2*fs7@Igswb2pJSBU{Y3qZoP8I*q!V2gv} z@~PNI;Dam|L>#NN-(;%EMy}`I54$tDZ6oLIB{ggo{nRXLPA>^S3qJrZ#Hg*!nnGYz z;o|EIM?tjK3ak2;56$`3LJTX#H{0yHdD+Fy?A0Bp4d;)V+P1aGmN>jAAleR99gaKCLW<;+iFv-hA=w1wi)Guqj9I@$RRgAD%xx+PmNM?)|%|PrvjBeVpIeXRfZh zVUD;71Hf>5E4KWqO4-Eet#SlURV^#`l>n*YM9irsx;XOPMYt5O0*9iGTMhE9edWcq zcgB}KffAdaFi2Eh)sEgMN(JNOLG?CY5^w0z@HO}~P71%p*e?KE^%udCbRXl2=>rzH1nmeI+0#%nj&D}^N&#n!i*`>QC-U$ z2M#80YlJ%2P}fSHud&Mk{_^trI~%{n?bO7-O&ZXry1S#Ama2YPJT1HAY8xoRmm`o90 z%ji8&eV?rZ<~4d(kchxCX3g1pfTgy_mG0Qzkq&fi3ww){n^Qpy*2;O6&igP5@2&y& z0+?w5lbXP|VCcGP^*uGMW!W61_6ygJ*x@Ig_wng1=H8Ad%(}Ab#%)jB6jNUav#}qTx1c9N;O}R^Hnp!IoypfN;o8 zGN;TU)u@`8oMas%xWRE=jn@=~qIJ`UH7Pa9mbR-VdH;AvrJl!+ch3h5%e%Jhx!(Tv z_;C)}q;jz#_?Fy8Y_Y)_0jzrB9JO9Rs8`O2%5gP8?4@=c{KT!w%Bma9ahQu-SbAr( zZ*7|C|Gj1zS%6*G$?H-|%Lz1WTC)OF7xs(Hm+#gru_9jjAmV*V9~Cd|ob4znPC-z&9B* z3Sp(TZl~vpMk2sR#5Y>&Fpt`|lf9DI&a_S%MXi872jisMo~Ry$XrvZ+Z^}9M$X-kH z5and1<^dJ$BBwlUw10fMdv8xqUsZM;@wmQr8@w8%$V#aLKf&{1q;93Dn~ibmDP9F1E-2l-NQ(rj5UKL41{BjP#KZZ z@=d@V3<0{tY`(2@k`#B;-;XJzdCfHA7ySU9_p|Z0H?mUN1U8|j z7RGd?`j(yJq)Coz9TACr;*`YZ`MkcYQ^7f>HX}l7W=oL|QOB(oIm}Hit-a4tC|@Wt z*-k*Q*#caPh-w;GIj1JgQa87#?94V6$4+$osSko<=H^wr_l5Sq8xMMKPvhHNFuFhV2PGcP&aks-Zk`2+;Wtc8gtAI@@;=}DWIm}%y zF23_!03T6CU?Dd#3c@RE-VFd{c<;fu5n+m$!lQWCi$8JTn1wYcxq)0>HO#p@>2Z|l z^5W;>T6wd$OBPVtsDSqsuEUF%G1=xUo|kpf3!6+Fn+w^}H2AWD0Iahi(8MA0Ri-)2 zZ?0}&XUTiz0MSr!Zt_WTA+1?qHD^7qfVgrhPqNix;}{e$$ zBh7`C&rE_~vZagcg}+c_MU3XEdcxDw+DW0bRC~NfC|`RUt@+6n;YPd zGN|)-gBcEUjg4jZicG9kE5c|6ODq&532jWpA*!{sv5=r0XKrb4F0lNAlFUg7YEo6X z%7oV4BmVoju?G-*9>#?(th`mFw>?JyWG@Y~Xj;0fqX1@=q24w8VHc{z z7B#RVUkhBx`+U1qj`EZ%tM7aeNH`v8u?|)nxKON#LpRKqAa2$b%UJ5d5_2_ZE>?=` z2*&|&N8h(~lo{dA2l>nP!si7IX|w1KzwLnowO2O40HWZdvhz-t1i@kI zr6%phN$5cSz%Xzij{~%vOJfyxvq_F}mdlIp9LI5DiNQbqob!W*2OD-dCbY+UB4q9~0Ecg1mJ$@Pk^8WcqN7-I@t9oHm4n!)48_bn~OF@V0 z09FNDOSx3_d}Q^`JkWgxjShAB#MwW-ubHQrmYYp-l&f4`e4np$-rd3}MpcH0HYieF zvjc-hlpUH`PfzKrT)_jau?f#q@&b&jVeasir(f@m^^rdoJogQev?;LzekY8Y-Xmhx zObyVc)%RF(IMLyTlS8%P){$V^#9{JuA<L?mN{JuW`1r#Z$ZP?M6AuO|GoIACLGs zMjyGj&8O7dg9d~BUtUyt^3Xa@2PNv+6YoXh{G7ypTNFHk@l5^cb3A*T1c*4 zIUEO!Kd3FsoaW_Z8IlS=JlGz>2~JcC6lkG5(o7>+N>{PjABB4Q^mO<0`vWi2win*e z5Z=_ScQK4U%g~r=OHq1S!jW)ulo7*3>VZjWX(84aXPDEw8CZz1I2TR*%_cd@PcARM zFY!1;O%mNu(u`Ch&)HR>o|X;k04D`D8m)J@N@)cMrLB{Of@jrAxC%n>8GpWeulMiz z$GiLa?!&{~`{yI7`d?UlOUSOd%}(~HrQu94-J~`hf=tSssqGwlsiOKadQ}kLNV(30 z^93;9ki+pS7hYwX!yM=826px}4tT{3EU45XA@ypth!ivLz;fDYUP{65HT-`pwu=Dg zq>2pQ43^sGJWI#jJ^SIt!~5sQhx@0a9cXg{=NP8tO=(vkl+X}eScbsMf|OEk)s4C; zAg?Rt0Qz+)(B3LUF@+6FYqgKjBOOpxTucX?r<`)@@ON# ze~`74a+=0;6*gQs%t8SUhhTlpP#^T}(dN7U^KS?F&R-YY2sofOo0qk^0CDS3)|{@^ zsKE-Nqk0la=Db@;LD>(Gig1{qdhjQB(L{tEvfBnnImh{;=eF2vtl}4|>b*?I38iHr zOPAF-jwKqchtM*wL(ko)Lj(^&>oC?)euKEm~E}NrQMsi*zs~mwy{$q+s86> zuIz)A)1!KCeRdpy6oWtMIq@1h>C{z$>cE$B*8NsE%pYFcSe82_1H^Zh8apBq?ZO!< zAj2iYAhCf9!2$;SSFNj`S#2~Nj^^w2;{8W`|LeivDjffan=1o0U>{uU?u&dNFh)0wVDiN}YB-@eCP>*l&!wU2(YK$aJ#V-aPA zIDtnil>x;7xJGwMjm27(E$;*QHG>p$>IE<^T`6n3)gp)a$fdRSksMFK4YGY!Q@dfK z^Qr{)a0QumHd`@7U<>42Mi=;vPZpFy{K^9TYi9Y1LB0ltkd8d!0|}jI?@`}POa{_mM|)7A>)nqILuEjEWNW! z!%{R>jn^oM5v2jaig(IFf;qbc0Ncq@9Uq+UngXJB^H~!o1nKp9wF4)JURrXae`k}> z0E)W;d>%SSYk|)+&zk!L!V(oh#U>Jt^BfiFdoi{!cM#wN)*r!m>;^L&>ld$?8`>ix zqvcl2rP1P|BGX#az~mJt!dHsSX$bI+QW}zw)g-ajMzpVS?lQ*n(H?QJ@o($Cqd33( zU>gO=yq6l1Q5N0cA>L~MS{r!{N%$WZ%is_P8$LC}jFPVR7aTe+^zx!R+d^k&rz2t| z7#nEp^2n~1=kQHJO=-G-!!i}*4xr8TX}wDWNA!))7cV7|yT`xCi{Up8yG6aS`WCBk zTW$g*&Wbaf008#|{87e?4L>?Q0wZE%H)>uUrV?1J+Q=c79{mib&h6J(=Rlviwu7Bi znC}#|1H|`|WQ95#@-2dB$W7Y>u~AM_!{4bXsMHmalv`iZ&8R+JE%V$QaC2B~^p({& z(Cg*{v9e&Ms>L2acbY?f$%XiJM2GVf(o_f6!hcLuMEwI}q+PHz49CgD$;9@=wr$(S z#G2T)ZQGvM*2K1rj`{U{&UxPN7j#`!t5&VOyLOfFh~rOu8(K|6KPzBYp3#@H542aE zvS(bEd2L2xBv|1>hXP)FgaHx)T_B{I<<$_*gsMY)z$>sj_sPB@})mt`tr3I+ry&z#RBj=gBFZzo_?1K<|ntH3`kN5!ASh;_CC2-vRZN>jLAC=mUJu*KafO5qz-lYsk<2Am02 zfUxgUp;koi?a6Xv9sozm)IZGhyLG2kf-p;p6MJOS=u3z>lx2$(6l z{qtN%w5LPEDro7rwlKqwk9S+)mb+=;=ZO$~W5c-zTEeu@@lt%=n4432zOX+N2=!K2 z7iFjFK)5os#dkAj%+@-rE0@0;=&d1T_cWFS*H}o3+x8?aq+%8)CCVO{!?d!D|3{xk z>Mpt6BMQzt>suxEsbH`I(c0b)ey=#t1CNYE#`>+AAYqs41ZiVaOa zeU(_+vgj^lQOgw7rl3>oGqRC%9qgg7!Z;Q9EjbpmT+i6?U7+Ljl?8q;A&bY=dLyo^ zcHzclQ%%$ErsAu|qP}NR!PbvH8{w|$^Lr;_HmZEOC0FF211!40^jXa-V5jyeWtPm% z6fbb&30}eiEw*?p%rfmVlzd!@T8(>A)4>0f?K4U0hBb} z2~C>1KyQ6g*P3qRX~!=0Pa!r=B8|2YOXWSr7-4=i-OzsZa=RQW-Fs$B!wTB~P~eW> z6Twj+mvl!`f$BoFj{CrDoZ^KUR1F7&gSAzHYI02F8pk$(?lrR7u({Gy*;`*R%?VuH zz1p3A@`(0#IyQgXRQKG?oN`#`iD5gJ90oP3ITmx$haxx^s3V2zWSeUa5o6L-RM1bD zl8t5*s+;@(lFHndvk^4U=dW?W=)JK&AFDdo5h;P#{0Ch!h^_^`kpXm^Q30P}yAmR# z%AIG_4C$u}MI&49kL3!pafHxnz;3=g8DO8zV`mptUe2$4*$XBIGTF0mff(w*+n)y} z(s@OLe}=sZ2al{zg;rfopb76TfNeVY;CdVVGl@_YG?3ObK}hMzhK9=dYoNL-_ecb>0y`8DhOr*tv`FJ*3*d!)00(-f?4+d{`#<+Pf z1&{=&Y)cq8SpQVMOV?Bbu)-IXjpbO_GE6X}z4kB(lJRnzC=xqmxXFpBU*}q70i(ZT z8T2r^_}@b{au{ek9C>=U960(ABA2mz#E_{XZE|_O+PT4Rkw(27Z|#yzIr;S>TXpf} zRnIzv<2;k7diGw|8gAuNNc?p{sf4i#noSvO)y=}OsYL5+rfsOGHH9LhoDV7^Nd%-s zg`2oq;qQM72(14Mk@J1~Q(^Vp1zwKzbZz0&YVU2Mum6Gf_$sH29Ull={y_aR-F?7b z6%SE5t6x34duYwm#Wivm<)PmrKJ;JwO37b4hV)VaUS87Wv#@V>oH#ea+`O;5-aLYB zLeosRs62!1qbng1Rrgp!DUpk6_EnV=W4t7*eN}I3I0?8HGfmCpPh$mtR&bYa>|ZyK z3l8F+?_t04BZBzMP4*Cyl3Ukk$P@c9I#p)+ANA2s!hsUIRZp1}E??D7{2tN;A*08! z@??rD<=TJ|`0!8^$Nl4TD-0;wTan3E%n37&HaWFPmqHDh zNn?}OZYSnSLhgHd+^H27GfBQ~$rnB@_#{3*UYCs0!2MkFeQGZa4-jQcX=HR9E@`KZ zCBSN?w2`d~YhZRWz%_{JUMnS@vuXt`!BQ%pkjnTMe*Z}_jKw!wAR z?tsgtpie-{Y@W#)8`?Pqyj?0F;y$X+d7;I{%tr3yL0f%wq?iI#-YyPAbec|w|{wP*#%J4=XrQafu({bWOLHGw4Sc@oO;gU zxNnRWIJC1=^d>jv@o)2O_<5JML7QIyTsYE;YzRsii_#F)o7EH7x&WEl7%H~AQa(gH zj-xK%k4x!RBgKcTF_jjLL?&(j2ej`2KFZY4I`2qTyBV1T^MpX#oLCE6J ziH2K{%R~O8tvH=~Zq{_kRC?ODzxIb6QCU#1lpXg$g8K;BryuV=dAfW3+(^22-tazs zY5+*FWZe<2-HQ8gpg~BaaP*AEqE?n_D4sqUbA1IqXNlI6ZWXuj+p_`%C89;vX(;tvk7O;RnrL6@Vj#YF@nOQ^l z3SC*~Nik#`0DiuXb{4@q_Uwwk$Y#9`DdaPXl*%oJ#?f&IqB??Wwe1e7BUsWlXbEM- zRG9q%S7y<$Lfqi^m9OV^@VaH8Rx)aE$JE<^0Gw$!69jm=dOUrRW{ZOubENKb08?Zq zYcy!{2N1jcw&BEzy-H8z{wg^0h#*p8j~fP(tlj6=%vTioad3E^_aiRu{zT;oK|-rU zPzT1QY%18_C^zgy`93SiUt+rRhR6GO6xD6fE z-<*$Hes8k|mwq27MQbN|ScD^r^ecz*R3VeJ#EX;nad7f|y=lc^%hX<_j@H&b%$8t?;&?3lU@4CSUKMW2!epw%*CAM!1n!PN4b16WMNA#v1Ld&{3J>XRL z8T)J8XihlfEVS37M~vNB;PauR=6zD(ucNH37< z1{HP9mu;5KB<6ufvU_CQlLuKrsO7Q%zkL|XGlYnwkUWFtVOF)gom;=R1p_uoSsWW)(gts)Dc1k;dfUL&xtpQ z-cCcw%ArMD6>a@_Gx(~263BdGm`Jll&3Jlbaxb~$o~($P_6UVb;VFEH%=Qvo*)#pC zlvHpqvK~R#rV>sYS_X=YkSQ00UK~yn)d@_i$+^rhHLpE2{mZI$ou?P5x@wRkC9bFj z9u$MU{Nr2OTIObn4-#69(W%RgC?*Se*8)Tn+=7zUbGnTWw_EAwLJe-JjVxIhYNnL} z@@f5mKkpzPS5zVB=mC_^iRgD{4+EKrDf(SYfxG%v%>vR4vm6oj&qdqd5xwh}H2Hyp zMxeR7_0#O?CBjTMG+-eepM@{-l}yVnnHIBJs3yx?kogDqX&)yuuI`3Y8(NBBn*Vmk z*#G9UAEwlT@dn%=1-FaZM_^_MqJjtq{tPr!DC(HfFK!;R5y;*7Y;VKtqU$Sby+fe= zNfoUY>{K4qgl`U(gGh5S#(iX_w@Jr1b*6B zegfwaMetponYBe3s~bM`Mgrmt>I)+Lm~y0j0CsA<{-I~<>b}DkU?w67mqfbrqMq{> zJ%(M9Y}4}Y4-pdwA_&tFDoSfcHCdX|k}aqyvf9>9xC)Se_o7<93vlHr1Q{XCNI^U# z)EH!l*TS3+BndDZ5(4BD>U4T0_F1x)BJ4mTW{40`8P>ad@%O6*AchK1bT_vq2lwwrf_u}x4S(Kc)ZysTNQ$- zz@Ye8fNP7;HR_LEI&wRwspV)vp@I^RR6H!>GI>h|P~L^AwlNZSE1I(};lTkPOq zOhW{kZ}7?()>uIrA27A;V^T1fA8kzsftOx%Ph@I0$bUfNt@7TMb9$-Z{p{^`a7$D+ zMxgr6xl;W7Sk93}O&P|%K$!94Vg3Fl<4-v<+dDx8<_h1?R5)~4(Tj~GTdiNcKKEn6HbASE1 ziRMNdl7!A4;f}l=(wRrU28+|}gcawe-yegmDo2TgQF}zz(!&^Xz_&16d_c+QJuE0oBi_>9zU+0 z6I(KHNiaY07lJL*VR#Fem?Y__S_OcgGXl$d_7+Hy&H~#D-vE+Y70SiV-#d{=h$TS!#*4xfFd0ouxpzZdywe_+M zsFZ>fkXZ~0OmGb3W?&DZOw@Yj}GRl_M0GQIn{kdsBN`VSm%Te?LFI<-B~( z;c~-#!DiM8GUK{)iWYh}n21e=C&l!@XiO>y$ZiMA%tW2k5K-xL zO!KmXKX@uqNwgxG^VgbY2>3K!(A8`g5Xx(L@Gm;&8uc+dSro6%=-zKY(MWaN5clIP z+uA;X+m?d-zPicrSCBwlVr|e{;Jk^uAHd*VJDQS==VoDu)ylmH_?cv0tjJ+#<>8n` zkT>7G#AA_bHgpE{&9=m~5lLT9g??PZO!`hqN0fskTB{s<1PRWbrfq}XX`5z$E1$he ze0;Ebv>^4=b&{}J$f^a4bei7s#yKf!V@obA8hcA>w!oP=u_|O9L=6K0}=>BXuHXk0%I2DHljJ9)7=CvNcuxeci>M|>_41z;tf^>Ln1WN{RGB9NLULio3^WagzXG~AdWG@DtrSwM))B` zKHfeGI7l-uiFJc|w3w`%GURJ)?v|53-_c0S*Vy*!Bfr7D{LUd*wUZWRx#$%BQzdA6 z+#%K)u77+Q+oEmPsec8&v`Xee00zh zmRzUVMp>?GA@GxT2>S^VCIp(a7Q4+O+^(jUz4hPwp3d}E`Y_vew6ij7-u?N#c)Dn8 z*xt&#$cw>ZE#TQf%$i-cMFRD1UuJm>Bl1KOwwbuf2<%x5Jv1kA=@%D&S{81R};Cogay8Z&T?@X?KVc#8-r}PC- zuzR%HZJfqk<`~>KOPKG(=7`15Pz@g>nvK@sjuQTpbHD%Dc=9K(Ub~ZUOq=*FK#E4@ zNiU4%@>X6k_~Cd8@i3H8|EERxVDXHa^>zv|`NsWX$E1`d*kDY6S95ykqZ8`7n_qd! z&DMWD0t*89TBORpHqQoE<~95g@@Nhg0`7JYPvY+phk)41pS+FFue8VL4@42E*U8Ge zH&auZLqVe>nH-|siqoMaLWB%Aj~8aOx;SNcMwhbVD$_4+(AB-m=jyw~LUo{Gf(rF< zHi!NL?qkh~%64=VzJ=Oj_7VuVjAqG_yn{)bc8TY92bIvLcCe7Dh}m#`g}RA`g9xjE zL|N56b>M5r;bn`v;TMmp@UrY1AoU!@tx%Xx@HX=AefxhFeK=~N+)C8iKgt(dV^M9K z@&^w|oGsKln4Ie~jWUJouA(c(@1x&hC40~c_7RXIUf6be!(Bt%4(sz&G3rgxLBf8@ z#}~88fT+wmz?_fCWqX{hbAkr8;Fxe`cpixRncjSO<_R#;RKgJ3_bBay=tAm*c^FF< zkX>T$jezixUaofM&0)$LPufm}*zb^OXQ5o5J-eT*bb1H5VW{9?5t;gz$jhBCIY{c( zE-smwBn~mYRTpA(a~YD$Fa@&pf3>G?w$2f*@$_z=AZ4%hgKXpR+~GrW7IK1cSr*a% zU~zEO5an!Cn*r;Tr zc#QFn3{Wg~lsz-Fl?T>kN6>qMPXenRaWjKH+2*4m9G#Yfy}TY^ly_TL?T zj`Ti*{Sxk9(dSBae2h2fsfr-6?^R+JCDCuyfLxAt7>A*e_umch*A9Z7WBi~8)6iCq zzvOD+oTd7yh=caks@K!cV|D~$EGi};^~2pa^%RU?1N^qax^_)Z9RvL0?Zf-W9LJbAjK_bmhY; zi=p>t$dwyO{{)y7Zr5ILQ=vJ+&Sd18`K%=0zJ=9!KO;J8)4}eqR!ky}26>m+H2rOT z(1E$#b~5i3WlH~ioW4m?9Fssp4WAp)o?c@6mf|qd@}*ycjJ05$iQYO zqf|d&`4|}_;<)84X%DY3f<&pok(?SInJmV}?Osf=Km*!rAHrN`8hgQlkDxY=;qjP; z!w7dsvBbo}t){JF*kiguNGibo9c9D+`4JT;V0m}>3YNC+xERG?e|)i;tdkf(0^$Na z@I)J^I2#jlT^dEef4+1w;WeX4mMeWJZc#j~Vz+UmbDjk2JCLOw+Y8bv>4<@sY-A|N z!i9H&I1e#Z!KvNY6@eu)o$yt%KeqM%GHSlsTs0xgI%bl8JctbjT#e+7OXdDU6{3RAcKm@HE@Xw7mHx2( zJQe+afa>A*&4*Q_<}5w8=C_m6TH<=!{cNTbF1Xh9Gs^j;}%rPOH=(zkxD#ASB=$Ke}1lfC`#im2{iS@wyVMLI!N1NZ!K zHpzm7`I3Ag|5ks@fg>N|lAYH4mtk!8T_i|TyhoY`_;Bv?`8XrPMH>F*T!*~w9Ef_0KGUd zQ*JPfe-|y%bQZ_1Y@QQKGLX{<``_e7^z{{6PP;r|APym<@}8h+8uJVCB{jE*lFLsX z)!>50bC6uz@M@1ot87@u1NxnTP=61ea$HnSL$NEIL8}t4k9u)i@IBrU5Qv-C%@mPi z2NMftxdvwYt^ZXifKea90gm{c?A3$^Sod@m>sw_3s*ITo>hhw;BFSGr%!4)0_|Xi@O3LnC`<}wBAc6-iURZcYwCP4S)o4;k3Q@%ek5jj z2G#ab3n{}!Vb9yhswd>NBQq%kihgHtOyyZ9pI*hRWlI|eM!RQmGe)T!vxzj21R`?IDrB}EpG_NB2pKCB4HtkDO54zDvW>Ysy63f^WLcHNT_TM zB#w65)ro%(GuO_(x1K9bmZUyE(@K(Cu(gGK?lIAp5?uqdcZh~X(M0YHx5IS+3|b=c zdKuzf4uJlOD>+Rbmmx`e#55tYLu&#Rr<|A=-Q9J}Q17_qq*i%_(M&FR4>$5p1J{!; z;wfAc051Cm*et{YjVvV9QkxYMb29Zah{HX|5GJ(7cAIq5LKgYwM>m!G5aW+AZ-Ms! znIOrI&qmTf`zjHYH6@)|M&yth6Ii5tW%pDy=UkM2^{xpQdSo)~`srl??MY|Kx=SQT zRWE(_JVf+7p~YO>!*DQiBcp*?KE_mD9dzVUSVt$C#t1Gb%sae)8s;ZD*>zQ1cMh-j zIJ|9YUKS)0?0D6UL~K_-Y^k=nvg^l5rTNpD$Ig_0&0;sTkKv&MXS644ta82UV~;3{ zPZE*nbHH%12cO<5l6hkRc7L?neVVo&-_L0~4y&G*@IpU?ti3|ctmsADyc!rrIN^|s zt4zg>s7rSNpw{Jzoyz0&)h+V&$k1mkS;Xs`l)=%(Evv!>!tNulb!A-f*aMblw(sdq z_Wz0H6Brj0=+kKf{8H52;@#CG6P2kI00N4|hj94}(=+x1=q?1Ry%RHP3VjhY#^p65 z^Yp&(Qc3s})K&gO>kJlyl$@>?EV$81HFW(GD|eE?eo^;eJZ8?5yfkEz4E>+Z`o>}S zIBoo?NdZnRkiv^89ct{?QrH-UP?*0bodpdta_k*@t}EL0o!h;kowvCanj?`b(VW`@ zV_QvNd3G!9g``tj(Q7G#a^2%wS_WCCw>P$D3%VL}7w5zM*+d?SX$A}%QlOJh{Of1A z9^0P?@b8*g<6YxonDp}y`umwdMHR6`cIb;IoEnb9161&nOZSkf2-pL zYuh_zm#=P2gi=TVZs{IJ_&Hc%)9c5;fG>WPyFw-3A_lzG%taB5nbP5Gi=G>`RVDLH zZ)|xEPH~?lCnNDRA$cI4(li0+W>%&z!RwBljBkwW%9@gb2VP=}9L%^qDYqSO))Pb) z=0GKOG^tQSYyZU%{X52crHa?MhPKa2r>oz?6=|!^PQI&|p=Z;L8O`2jzd+H@0p|jd zGE}ezkMP^L{{Iq{gH1dL_pdhw0aqO2Z4%dIa< zXlmJ+dsfkZ5huM*)pL_VZ?tIS$TB&f63HomG?(kf5B8SA6>9$5GWNK0H1h` z-c5XxCnmVsuBmQ&*02fNy=m%;ghoQsVv_JTCk9M~#g(K@J8<KddV2ExHYhlSIHTA@zxd5aUgoKaiE#6}mQeEg3BQ z9=1KSf6T!abTdTodmK?|L9(%nbJNUs8|kMg6U(+hDaOs^LU{&Mw8O8pk5GAJ;6&NC zO}CRSx$#r8=KZvsxP822%dhqC#@5u`KWzQl~t1wjVJl&C);_{JC2G{4}l#{_qZB%+tI zCC=T6=QN}ZY3&ge{=T;mNw@6O9eQA1ShGCBmDf$H(pBi0S#dGV!w3LJ)03Ex7FZoI z^FJH#y$1gVRcLba4acMhnBUSG4+jB_dPv}xcGGrR9x}JUB97t0keyH0TRlnC3-#I| zC5!2hGJm0QP04_aC*PCUeYvu%W|&!QQ`|8-A3Kw0X|){rm$bCH#MID;kwx5wcu;4Z zr@BU_C8JeM!I;pq9^Rc4G%H6SJi%|5#`AKW0gFUrzw9Jqwxkbm{M)78UG;jH==-o> zrH$pr=^cJiWYSiD`^fqajw!{l`Bs|6xAS*pd-0+IM)|zrONnx$nxtLIZ`+lmsJ*C~ z8!V#xh_Z$rPL&;DpR|fsyMm~kmWJ|HAT|;j9H}!^Kfw_Wpo=e zkZ=3pZaNmsg@(lPr}{1O3w;2)|1%b_#_(<%i>t_U0(r zxq{09+pTj-Gj3nY)hC}n(+B_dW=(u-OMO8f^-3vTJ)e+LN4BjIf0wj#YR1d+YXMj$ zxfdunE|G1$a>3|93St@4)$d~ao{*Jab|$xb>#GZcGUNR`*yL)tY3i1Rw2`_TeuGmA z{LaWYYlSTRHgte%n?U&s1plxSz687&t(k~aYG*~NIfJ@8rA#RM4kQlGGj{?hQFXCN zbHX6lz4;j+=zrn=nZ7=c4+ekuJg`ykAQh6vb0U=9_?xxI-E7 z{PSf^K0a_IIa4NN|D>>38LC*jzI3USJ66`@t!SPabXY^!Bx#Ki1wh(BaQ|&AXc}Z! z*cbHNlwX_qVOvV^)jxOn!$VvKfGR=WDL{!Nx~2sY8^CnwWuLfuUUFAbE?$sI(kvaR zm6rZKi`#;3pm*=zW(DkW-t8zgnOp zjmi)tx(f%E9Uwz^QzWRR(Zcwd8|4ZIjZj}P6+6JCX?$JOo5hwR4GJV20Zg}^Q&y9S zo&sHu?Cg(*;fCs>e}rqAAy-!WYaUwWV>SvLevW|Lfdw=eE?oJ$n<_0sv7M)ZF4eK^ ze*cYYX@%QV@29jsUAbpn*04CoEl1+4tV5zcelsL49bqqRZz#iKq^C)-7`@2#Pey33 zHY-)NgQH*8JJ}moy1~SI1EVS)HIq;qkjR2b`salnk6Mi1%o=yJ0d_yPo2{w3xRkG@ znZnRucTi1R$@mDgC!O26hIe_v`~kk_T5YCyJZ$P2d2C_EGX`!P9(M9pu_X*|t1>+% zuI9rp;Bh$P4deVhmO6%~qyd?~MO6Hh>B&zXRv5APqX9ST9{}pdcBk`buPJ7w==M+Z zJ6f#juz2azN$w@{n?%F&+jW(uMu>SkQ(MK=IU>U|@yy^lY+aH@#9F5U9}pX>J0Rbz z<%#`D70rYmghrBN0!y<<=)BU(5~>|D3_8|~pXZCf;a~|>2rKd=xQJqTq+5hm|LTox z?i0SL*QqlcS?nO^x<3uZ5rncHcg7R7r+;$n7JEU$)KS*n#BqnAT3kB51M^eq7G z6+mS6))@Mn4)Sq%kxy5MOh{fTqqDMK8wd78n`E=+4toTY@iHIf?xoT0e&_Qw)ge~2 zuHEwvvi^W0qzhh{?-m@Zv=?0uQBBz}$)W<{ms4(s$S1GF=_c`DRU(14e+FEMI~zUs zrEv=ptYUx}K~r5QcwWn8@0Z7~XHB?&1^i%WiF50ZpB2HkddS-xizn5AN?^hL;^~*C z8Onx{EhHoJx3pCdX;j?0#vUFLR=?V*8AdDk`Fn)e6yQVG0YmI$K_VzD#4sJ~1s6acoQ)D|sPQeBdN_WRA3f%^Aq;bYhIly_)Pxys)3@XZLzM8d|0X;EHYjj9Itn6zG$M|s#j4qJ7+?F;G+uoPwNk4&gYIgC? zL3T;$hVhZptF8ZiF!nOkrn2Z^5J#rD*nO+2RA7ScXm_q=%c#sv!LaJo<2OwSI`6Gn zOk{p8Gn$n~*LgOXNGO&U32xxGIpz&zp~Ip`SG%Ab&x6|^GUJd9Uz}6)(vef^W3`PR z`e}mMqq>dwHvNV)C*GdtOGs$4!t8y?CV%i1KNXi*fGPgJAeLR?kwV9Ijxw$5t~a&L zWl|v08#q0n(v+v^FO{uNFX>XTCg--7GlziiW30eXJf&92YR66NP#-g|X(t$59OoC3 z&y~-`r4lr*9uH#2uMUA4!>&B0q?=d}tjm_y`q3n@dz7+Lzs42!e67__>zTO*&z-D1RqQ=3Og`#O^-L?E`;7?rHo$MSXZYkoR+`t!Ap;K|GF%RZ6=CgTaBGHR88+mr7tV z{|J>zumsObW|i=l8Qdr@YHg#d5mA+c=F8axD6o@3-;laEOlZuj2Hei2v3Y!(mru>v z%KHEozmrJU&L_a6)y76g#)!P4`2_lZfgn>?(nv1X-IH|Q2InZ(wK+qqZlG+d0+mX~ z&ti-Pc8PrGuf4DtMPN2SfByArYwHHA+bLEW`Gn(UDq2ZBy!kV%?66nBcvSbdHT=Rl3w;@cq0{Jw`q`236Z7 z;*DniPfGrfPp~kLVC@cGV4@f8ha|&hfbqGQ<|zp??OX)D8^D%JzFybYvwQd!G@)Yn z8aE|JE%E`??7ghdzW#Z478R6FbIF)v>&NsZPP&?O(6#_?OZ3fEi;nzJx{&j@VgD-Z zv?nsjxd|L~i>`jLm0|v%WLmmfQ6R*%&C9i#1)Tki|2cptDV4Rmb}Xw**=2^ayUfB- zf9z8N6iEt}+3FF2Pg`h{eU0KD)YMOAa5$yiqD>r|Z>F#gdY)lAI9|SD2KfaJNr9<( zGPqVOXB_JBW3Gww=w)2yOF~G|pCbrNmxe>{)mU#(3#IcVL$JE}WnfxWm(XuVnaUY5-`$c4P^gZv zo0fAi-FY1wU#xb?sZ|sQnXy*yzh5*YQ5hKexD@sTynO+u8sE?=R;@;+-ezGor!*PS z^H7SKSEV^!RO%abwEyhp=o_}SctK<@-Sc&$r9lrr=;Uj#p4WnnH!#{LmcUeoLyr@IJY6R(Y1+4`j>@-R zrKXNTsi83&+RM`T{9mz3;}=;1dAzUuj^B(aD^aPkyh$IsO4#GmwU=|N`u9Z|0o5~; z(Atg)mxlIX&;K{>3*$5;{haa79K!KJyM<@;3e6QSaT&$79PksrD+kBp_xc%p-o%6aE`WD47o>KT@*hojjy7 zi+(YYWwTDp=wMkP+%h^_Oh$ z-+rdyD&hn!T#uY;-}rpbxShHGnb%;=?`--HYhK!uPDv=#rBt)t{XcX5({#Qs^3>U( zSwc!J8OlKodEUcNCiv{@XXxMj*wMBqms57(ze}#Ce3r}akX6>ArRwTR_BA3i83>L~ zv8%=8g=P%EEiq(Qqi}G2%_Org+aj@@lLx`(-&T*-fX3W?q64_pa$hi7_2@_V(4KmZ zToOhg76P&@7yqmuZv7AeH#5S0^%TaE3-<(Z0yeN?GX2$b8k{^+cu7%0ov};T-;r7 zFgU}+^4Su3?PX^~=OdjRDbrpBHtMR1AwGh?!{M|t}fZwXjz^zgLvi^eTj=y7x| z(;IM9-Co+pBcC6oRk}%?&D>Tu*g6Jhd1!b^VN+l0i@%H!kKV_SHcWFu_-{*fC zK-**_(9m@!<2$$db#8<@aF)*jGW5Dr-t27*3k8w>vy zx^?Sv0{^OXo(6y<;H9?aa)P}|3qbx37>kT^YRczI4!9%C>P$DY_WZA^m*#3&QZ9j4 zBz{v~D@8|jg+ud4pS)=&glhP;KBiQrLC_(K{q6Z=UBoe}*J3tgQo%Z4;@p9tg%9t7%!6g6s?-@_OD@#<_UiX!pX z>fID(kE#ks#e5WfH}!NndVdLE8e5t6J^t^oy;3pU;~RuXP}wA7o6J;@yV?LMzMfjk za^hNC?(F|^si;Hy3Nne1wmxd5{#hV&#moE0V>Zvl+4bJ=iq@j0fCc#uSYboYvC+a@ z8uo8ae>Hv8ojBbG>Y6Hj{#U%LjBUAuWX1C1a`-M?FDx8z3mM?u{$6dbjW-hUG*8z` zT#D?z@CvB&9l%xp532bUbn_&PZsFivCe{u4;nhVEX}C@X#@1pF4%l?Kx+I3# zVXbg%hCi_8btjMbD*K~!>piT?9q?<^+2K21`HNo%pL?}JY1MJcM3rS!CQMy?2$aVa zz`OfYsoLhjanH)01k0;k9OnvaGLes*Igvg}8TEzfpbUng5Mc8Mj#|F{|L&LR^kpHZ zs(Np_U;Ja%zxd-F?Poe%Z~z3Ev_Mz2RrL!j%7(&p`{1-7)~X3lvH?hUp~~J>vu)P| zoo#p)JS56;t#Malhld;Sqf&*w>z~7bUE5)@vf`)J`5nyvZ-XMK2ZdLnJQ&lXA?F-qez>s zN1(xDnx3l~h?WD!^(h`J7XK&s&)$5yTmHP_rI0uUX6pQn?(NrLn5!mIM(m_glWiQf zLR?p6yn6!q$ed#KrOp7}ok{cJUzTM(XEM=@pz^0A%r}Q-a0y#hR$1(+Z~WfqTpXmJ zCRuh`K56LTR@wok40`2E%iv_ymx*&b%1uZ85Dc$#mNo{e*dl1km1*P2wiPx-f)*Fu z4_v*x2^?!+)Et;op5^xnW}qA*wt+5g!@ zZJ`Imb6BpW7@f;98`;&d%4hKAhq-LsHBmhU=dU2crO3s+0xQ%9A?%5$dT@%? zYP<$;j6@r?pdq8Cc34+c-OIwl$wf8ox<9c9&6WPqQQRVb4{e`_yL$BoeUQe4We+|9 zPUE{!@L%XyYTP?#w)bc!ng9@3VTbY6tKdiXn%!jB*@pdpSBEzWF$HOHN+m}bI(J?TK3*rxrr-qJ#t&LdYcp0CP(ifJS=Sn$x8%>-Hi!vG#J#O%pwU@SAa;rxS zVd4RI76{bHg|`%JZQ2ODF45RaTzF!YW-*@i@e&0uFgx?qM z1M)k5I$viu0)AadH|sXs!#{T-u4?xHd#4H;NgRoL4FgdkHYaTUIT{)qG}QnQ8JgWe zfF#2ofY>}0+?ux>2m1qcb)?hnJyYlXn7R8WFIp)NZrwC3yK+`UTi+hcW*+prr*3!L zBYrCedZ$XlfMvqU?pE@TUu>}NN)6n`XTKUW(P0u62!;czR&t(|qP?_VglGeB?>J}A=N@y^594A;r#Jio}dQMNRB5URTFji{T;NvU46DbkthlM>jC$PKxeSU;6X8Ipj`cwm z*@KqDz|u{JRGUAvNKxC^G)#lFxTW;X_6{isd^|kg2<)+ZKWsc#D$#u14)tO+cnLkR zGhy(VsdY_8X(j%Wxww0A3d_r63jBs!Su@g#u33(0yJb9ZC$c9M6rq_JVWCI;K0k3E zOIynUlcjMQ9-F;N_jKs`$8=ra{c?Ky5=28O@O%xoPs^J(@jhgQz1_Cf`=+FCPvHF^ zwVgpul6jL8KmMt{_YsZJ1O?B}%+*-9Y>aNnH_K)JsLXEsR*tI2O1#iCtVxa3iwaSL zLk+97Y6azCVg#XuPN{zVshdM?EEC_y;sw`yFk=^lF9Mz83C7(_T@3S~r*z>13cAbi z5!OA=SohTX#zjAc8Zg4HUvcGLxZtc{*H(F`+dk8w5o8vuex~bWInDH$mbPc24RJXA zpN)R0yl-SkQ;Br~;kKt~i!du{?IS4`0SlsN7g;eyR`5Ht8%;X~hc4hIBS_7jPE0ME;wPtll?^V+$qbE`EpX$P@V<;~vLXi3?7UuN(W}B2udr zTB5jwn6Sn@8Fw=iTAut`;c;#g3EeTRP3=W~(R&OE^e%7MHy=4U+s;|?CiwT7XQ%f_ zuFAQ?Yl<~0=nB$L9^#jyG37dIL9-J+tI)6``pq83k6!P$*Au|Sj`wHi+4~lQz_*3> z+x5wgAD~x6{A1($R>8mzmF4uKj>WS477dx!)r4mj$~y9!BK2(ujk2g1%!2XUXl*~y zDbSm@o5(FX#Dkwf0M>kcHgCW45uk7q*8BZM_2dS0K+o4f9-OvcXd2gh&63>8$fR(6TM*x@0$>u!*;kO$^G0ryiZDn~HSHI$w~9K5 zw9PrWsVuBREsw ztLrOhh`V>V?7NfTEN%^8%fCQ~@!YA<3(Om&@9>+K@b7F#?8RPZg}>J&RwEvWTFPE+ zzad*)BR!opMFSKbl(cK#-ObMa<_N=X*lyk!0d9*v?g4eZ#KE5?Z}#6D^;gz$06Lbd zINn!=Xz1@zlgFH29k+>JaRR8>lL{LGS2w<&pM<~wd_O9fIx>BB)LtrO|EmABDBX7M zyr-mYPuftWmWUu#HxIWvSa+H8xqCxh>m$5;p;z`|{ek62^o^3}^SScI)H5pi@X%)9 z_wm{m=k+IUFeP}yl44^+JK4-;sLdleyStFD&ZOlBu6?Vzd$XZ~2m7uDKkPHgfl_Y| zaFePM2<>DoU*_)@5b%7vpR7jHSjI5h;DG+t(Ce;8W=TxR1`JofxNH2Ox)auI(2r|Z z+g=s~x4&*LEeUta9t0b__FXZmLo0-~5bl4h0|!2nyY1+1@My7B;-5cE+`nz#{Jc$Q zdxU&X%L6vso0rU&9J^Mf5HCto3Tp9RTCX<;rP%23iP|m$IQFHQo=Da;CZCaR`2F8> zOaKTE@6q%Im=-~82psUHgv=~a`X1C*q9K~#E$EJJ?wXFl(3XkODPJjOj<>+27FfqO z-+bQRSiN6wF>`M$*Af`AHzh&>iG5d#O#2|L-iJjN=-NID3xD+yusP zc}=nHGz$EzA-z2PMyyX+kwFS{+>pXhphl1|}L zi2&3-Pu!-Oc3$Aktsd*(jkVrx!VD7-cSMb z-znWHW&V)4KbhlQObzxZgL50Agst~FF8M8icUi~k z-~aIaBIoBKU8yr%icrYg=BTY#>)z42W|MsGXV(9PDZpRzkh4;W(y2=D#iu-yh_j9H zzAT#n<4!GNI%f7=m3P?fcK;T4|NU{D_ffXv`$DztM@RCky%F1@_g3GWnLB4SZV{ws za%)$06=8}fY=*Vg68nT_afszk?YZ)~b4z>Eo1W&Ku5gFDxb4=K#H`!@b~O5O74Soa z2(l+vF1leowyfLTwhIax^N!Az=bLG;U-mhu z;OF-}?9CH*AJc;WmG2h3~ybn`BEeJ1R6r~)e~Mu z*N$6+2(1J-KGLm9qNsag;700*R>12lbZ^;XIoQi3Yuq}nocv4dh47yN!wU$I!=k?H zd!xR`N5gM?UmpN(pDG`uzHe9En96sUrz?aoN!s!(oV4q-(@Lu&`kj_I4O&;IuV$oZ z^-6|ed|_6=C!PQQi2A0$O1Guk*tXHJ)$xit=_DQ7 zX2(ueY}>YNb!;ac+qSKnz0W!SeO*thYF3RgYS#R!G^|1>FN2FABaH3z7EBiuNP;Ye z`hH6-9Ir!Dj$Hdzp*=Pud-;<*-zR4aygzs@aGcp>do5jG|M0}z^(0sAUkNEN({Eq3 zCFHBcyXD8EX{V5@(9k@K&;b|q-0QoEI;V+=u8@ABI!nR*dQZ_YkXGI6@wimK&Rw=(5|eBS2k0!07>=RRqaasM zx2RGLxpZFbgJ_h?p&y^$*-$fj#)%yx|jEis`ri}ap$tyEEvwNRM z$34JrJxz*uDO{|_yrSm7kuKH}hgwq2zPeMYEV0q71WS4rm1_?Hybdb6_SZV+s0rasTp_O7fnt_Xpe!@dVU*b1B^ORBv}o~!7BRTX z8qwO~P}524bf>>L)h9IXRvd0)-5U@>=fu3bwd9}*EXIwR`{T+ShBT0v-s|#_wHo|f zE6PKZV2jUn>anfep9I6`2l34;QSLB?gBiKjmSwb6;L;;x7yTk8>ppvQ_7(BIqvEt) zlhiTP>e&hO(oVBOt`oLd2?X92rat2yfb-l=%KXBQW2L&=ai+?rtRRC4t?9Qoos8i3 zZEZ!M~sf!${SY32WUX1smYtwO$5GrO(k zCqAI?R<0a#Pc$U=&wxmaFaVoLeQHgjHb|}q0R~*SkdH6G!(t^t< zO2%-ozA{H0nIPv8d)9_%RyMwP}(|+Ja|S7aBr&D`JLfY~L2mAisPX^9@0 zDZ>+OI}U1X$jtBt_%YsSF@pSiJPhd05`Wow^^o9MD2b#c0#}WSD~QsMUjN5h1kg68TnTG^XQvBYkz>CW(8_@3w^;5*g-|c;hymNu`>h; z*~ZKll%%C(>vxWgdx#mrS-_e~-8zyi$-?VGRzdw$7~$_FIH4jwkWzDpAfYZEG^S*r z-%%nKgpGG|O5~eFBLSOQqAIH2M&%vokt@JVpBJ7?H5K6{)e7gXL4_+q9v4SI%IX7@uM$);q|w zXDN)DS*L7csJGgRIS}U$G}e#t)&s!r@sX(<%)q_6@cGrLcMM9MYEb}i z#AqXGN!UpON!e&oA_u|ypl2K`A->)BPB*rUdWub~xrhb*r8Hu-(e0FpZBVk<>F*)d|mkz1CjQpO#LA z7Gjl-C$!22n@^?j9`lVZAqp4UrA59Y+@Fqk`v=A=G$m_TV|={WM*UQ1C3B-ls94f{ zf|LK|97+cA6UR*O-hYez28Hq!mx-y*PzUg)4lz$V4^z|@B!hFSsX&ASqPzOxL~XV2 z9?9#xlFX~3XwB^w=>!V98%CbL$KKcm;V-D_`|VRxnPdk;NnG_vXe;zdC`apvUEZMqeMPf<%T8F5sp$C;scro()Lv&ggw5nfztfNa#CxfX5(?gM^I~pLh$!96hM7sjOH8?* z%DG%PT`KQ?y-QRHH(&R>ncwN60_OP7-wE}DZ82zq3^!9sZK*+zWZ`@Jl@C>*wn zIGId&V46Z~Y9jxpuylqY-BQhJNMP63|to+>ouxp7%C?Q^`9mZGTYA^ zgkWM&kN$03WJRA;wDYs9cwHsas!Hd<(#p(PryK|Nu3@8~a6!WpZV%GLK*f@)KJ-yr z^B^GFm`vV`yppsz{qK5)_6Zd^YuwB6HqP!$MdLfhp5?Q{0X(ZV{>8J04ahAF#LU-^@GKmv;tgFtBbh_>T27 zs6=`<%6dK_;>N{+Q!@xO{MTDDvHkE%yb>Z+!o)({_N_nzHP;keGFOr{5-%~8ERZF3 zyG%T5#8?LtfhO#t=?vgVYk_89ZbDgAv7nA#k<0jLEQQKd9NLsop?a&e@~AZmUIkPs zKwqIzUB6rdCI5bwTpxJ*mFnrK-n||ICL7#iQL3~RW#TLiaT-hj|ICI<4j^tb{+{Np z-eTYtSv*5%i&O2*MI*pZVQJa#t0Dt`EJma)KhWB5$Gn?z*S|E4c7e{yM0 z*_rUtSvyZ$^NG}cO|H?lU7jP-?0?6l4NC#i*r!m zrG^2|$gc`Fhw+d5r5GWAzH{1{n15oXHK)dMf{@xk8#*x^6UT*`IpPC3nAeRo4COH3d`XOdP3UD& zbQOKbn}nb^G~WnjGBV@EX--MOhAsL%XGpcG=OpYLtIjXUKYR>QwyZ{TK@)?WvaANf zY&PrR`1l8#mtQl@kQfx)ojq%&4*-S_q|jE+4GxAYFBN$#w*6Aro82DCsk@U+kRMS4 z1Mn{5^&N2IeP9%-m#&M9{2G~=h5ls}xJZfwF}LZw*udL&P_qKR2DfXDYFWrXW@j?3 zvvom$BVKklM5%PN&Vh#+br3Y)vZL|H<{p_HjfsB@jz6uUsJDd_odQ5ccQ`Yk3|v{P z$ojyURj4SPEc+o8jGt?7hY+>;yg>a&aY7TstkF09h+h1mv*H=P(eSCTp@cLXNWF8O%+z-009rXqNZ#s5FD?9^G8)_HHWon3;Np4 z1`#v|N!$$)Sk?NC5AtS)&jC?$EsKXk)W7r?R>;oiQcKyV8v+-(8MXq+*OKv23ckP* z*qU(q7196JAXlBOjcH6gB=H(_bg_b;2N@ML!DZu?nG~(|bIWcPAx{=J5xjT!qK(}c z`X@JjeP7aqneDtYmkx!FG;AjBYFWT# zvkCNhY=W-S7%a{HT^>Eh+X;BBG}a_%E2-CH5N?7nVmSrj#Sl=G>vUa^4X!vdzEKdt96Q^$`U=Nd9pF6~Eg7u_z36oOzeKS*% zF+GzV^;ql%k&XiyzNUdAp=$!!o{|-mp4p;)P{nR}ToDsI3wD%-zj8A=Dtp zxlHFNo4BSds(2DFvNF4(=#gdpuNZ=!yPKqdTG(jCbRP>=d zPtrqgxt%4+EbA=?cLC^8@rr!>1fP@jv;8HBzX4Rv0`@T*_bB<+!>Fxk<2P4Qp0(8` zjt9MUQ}@z7idhqQ4*~~1`>oK|4jCiElO(2gM+U6{mT{z^TfLh6dSG)U1#?!`4}`=x z<6<%*o5ZY! zA{noj%@@xk#~g%&2WOJ+sc}jAuw+~w$(H?$WOgy{mv`GoGOyJPwSYEZT5Tui}U4e z&t7tKZaZg@294%NNL%Hogn{(+6yrJ|DPdhIVn;H7JaDtugWS4_w|EPy&hgQ8axjAg z{c-2{wLz9ok5P+fhc9K7W#%Lln-9A8lb$|J4H;{Hb zlGB8o+$IL}(jB=*4;aWqywQwU)m9s#+}TKtYnvQR5bGL#t8myEMB^yf>Za1E@&RfVC)>!}VJc9`VeLzhw$=GP7=ldwr6yC^&#zE$^wJ0S z)7J5E!Vx65AHM`X&m1KLw8_Ja7d@oY(FyLSb$(5C?%vj)AL?X?Iq9ZPzQ4*M(4>i5 zjUS;7Pj7EmCXM|n=-|kfQ;AXYASmnTjN+g1n6Fa~jQ8q2Y*aE+&VB)yw;9~rj^b#` zadfp5MrrJ>`36rqziFNNfWi{85o+gk+^ZAThw%Es!!f74Upv6B6bw6jkq0^$EM5nW z=8Xp0V^;I@a547}s4183fCEJyvFL$BO<4e1jBiKc|A2J+JvUaP<4@U~LBf$0vDq(~ zC@$M>m^I9@0KWED8s@t|mu~E}IFqO7P+RX9j*gRm(8xjg_ZEFf!i;JKY%LAjeQwGN zN-8aX>-V-TPDq<}paJ13=r(e6@FoBMiW&FE>8gbU-!`Aocm%(!S#=aL_6=|Y&(zQm z|72w8FlJ?6fbm0NNmc;{s)_D$Q?`#T5?j!`! z*hA;6t#rf2teckLo#(Nw*=f1wa3AsNV;qzwIf*%)_j4royq?bc1}!XXLV86JE-D}O#K0D2;7@1he2J`q^5+> z{(0Hku_&|sM;?9qh|W&MQsUTMG{V`b-F>!?XLN0Q_{)7Ew+i;qT6QysBWw^j9D0JD zBo?E!%C_n%uGMI-PuyylfS#O0+GRD#`jDI1`fau8dA>zPq1=lzmdA2}RL+jn)`R>aqJ-_g)aU0(b zw)th!^4mev;;;38OYHT64U_GG?l<*^$bz0et!~8w;A^HvO^H1?7ooV#gQzVXXqvrS zHwyqHO;dgns7b%>UzUFpEpWZkyg<&&>mT52ko(u{ir0k=-XoAIk#%I8r+k9B+wOB2 zjGejarxToZR%_xX19X4Mh1bk>YzP>*5}y{Pv`HQ(245beHZ?u+xuybV!M^R=&zm7d zScnr2w6MY%Ivi|e+D|;%SagCv#-{LID2ex@4RB_kA&<=GT^w{|o$ z^#(Er&s*61VTr;}YPs>8lKW)=x(PvJihj}ahF0f~m%I78@+%H_i>;D%f%!Mtznwf5 zT_CU4cp@Nu8!R9>9EoHE$E=ThheC}7-mzW6d}=l2=#BGxf6%C{=C4jP2EXXokcA* zC!SeW?S)u!SnkJu?9U4yL4HW53j~*dG@{hSa&DTt^D46+^H1)q3zZP`*fj* z79W8hT%=~8`c^{Gq|^!haO5$Ez)$FS;>*hH zT*ywGT7v;Q7?_c(X^|tc+aw*j)9J=QrvLhjs@zs1|$c^RztK9}-wH~rAFkRFYg#J>sN}e^nl{ket ze;JiXE}#M-sdCG{V-ANnz+K-;e^7z@T+Iq+h6k`UqBjR%M= zUa+6`j8_tiyfM^13T3W#Ud%zYzx=u~D1Mypr(0tRnp(<2gvBYdf8;9lgJ^rz68%Lm z+&_ta7hM&lyz$qlVaDXg<^uxax(TmTE18R9Ay6Ws4diUg^jkem)W=0g(G2<5q}Tn7oMK zg?yHRQ%_3NPyq%G*i9ByIM;!js^WGR+7hB#CPJlmpbbn@E6sYuA+0WM?mu8=2)LkZ z;Ug|Z!Te7~`yTg z?Mn#fH0?}7QIQ~F&ii69s?jNUVE)NBwFZrOx(EIL-%5b+8Prg_%?c7~Pu z$oq*F0y^7vJf?QjXG|YSwgnUYNvh}5{gE?i+?6$U+S-&R)V>#|ex!<4v~=KmX67`x zapL?`H&SG0Mlv8sC#O&bo8I5+;stUNsLYb|2#syEh>OUCyRF~Q-bf08lRhdO`8=v( zA_vu&?Ve5W^hdW7k#_snS9 z#Zru&BPG}7N3cNIYl}~{e5=MZu-28;sJiH&_&6^UF^&9AfAG!{;=8YrPj>Ur2o;AT zq5+969x*`JowxRbE=}NHLNH|E99uMGl&is^EoT(8u53WQfRRbvrz z8oqbQqzXUCz2BrXpVcO>YP*>@cnYl4XBqH5-D0OBapV=?o=$8!0iGJq$L2oa`TC1k z@b#v`6aJy^v^8ZDwC}H;O|h9%l5ZGe`zIxQi=@n|o5{3^@qEAh_V!9i=}5?$K=+b` z1-v)6MfHgm$3`Gd^w+~EZAPf@h>Rm~ofSF@I8qy*6=g3|kS>fdMWINW6A7^dLnN~z1Ybx1MDG7@#f2jqcwENrF)nY4i0hp^_(V; zng{Pq$;Z9#{n0ga3KDcY&144bD-(v#;J>>-7c@HBv*=z)*hb_LW{cj5mQ{&hta$e; zO1G`Pw);#AtxO{jkM>X1n4>5SKtnw!jK80%yDJ}7u~EIMUu0oaw;Vc;PKy`9cJ`K! z|1n`GGzBdELOr09miMhWs(*z>^_Dz)r(AHb_(Sg?Ca4QtUM9ls@3dzo#8qErd(=eQ zW_2`@N6IE?f@oQ=fivMLj_pl!oEQTCxHa@x!^4~Y=9pT66sW~9m|@8p`73Z6Yr#f$ zjhA<54$fkE;u*AtNp_i2ZL<Ghpg(rimv z_!GPdf`}p8c*^bfImzt@CeyS1^?HR{GXP|qrteDKdXS*Y$W9n`!jiRFZ|ylb>nd(o zvR#B%OLm2m2f`I+|Jsm&RmZGAqSd}HhJsh$XBB)?hD(O@Wc~B0Ls= zHUyvkhrTO+3p(hn<8#Q8QGwrM&}W@C&z>GO!W!HL`x@r#tmR_;mEctZ61EvXNg!6U zVh-KcQ$~t~ZwYm+$|mtR)1cLu%Nn@FvX5Cu;|rx7$Sp92&%-7(+w3&~Ub;7cB~{Zi z&5BD4&5lJ3`+M?YgjI0!aLAkD>SfwjQDulZewAAVcmf+C%dM0J|7|OAvva_dZ@6TO zG}@z(;`(@Fg^N-@=K$?ir`>B+Fq;mgm|(dLXuDAs)Q8gcdLvGo{JVaEY8B$0G6-afS z-QwT7ia~lo+CQnPxduw+yaZ9WJ05PsH&n}fA*5G(C)kYTw({l#p*WCPCrV?^&kEE# zblJIP9a(8vlq24cTDAQ9!^}vub$-`?+j&N>?&M1OY4d)Khw1}C@X&FueY5BO#JGKOLF%cX`f|K#h_Q8!WXxJImBLT@+@3W%GTOeZ5>NER5kMUF9uA)Zii3z z@RmQ(kg&si(_{%>429~vz`)0WcS1VK=DJAdSKctJ| zfgiZYxz8(>;w%ZW2+ynkm+=aXOPql*={mA~S*=msRGE^zu`g1IF;=vY^ILP2ih_dK$eYOd{LjFVH+Cz$9Q^w$wDkVU4d8%+2kt>JnRyiP=SPkObq( z1eJ2_2(O=<&%8#@NLUJI%f@iz(oZgih4XZ8;Frqh)W?4*kUz)abP*eut=~MWJX&)s z3O6RulG6)-i>8_#3dvALx5cE=yx*OEg~wHG(eyvkXIfM}vS*G$bk-k_PYm?Ngw19A zolHpawP~t@K%%gMQXhg)@x}CeZ;*m7FZ-b3E=E;?pSb4FaZ=WSd|Ga zPOM@Z=?o;;YAS02J`elquUKcni&(V7n=+XxhYXv5!&$<}tTBNpaYh`E|P~B65wuYp%tV}%C9F7Y} zY+RH-D*s_|PE-f?V^!e`A^_TvYj^zadsXkQN{T0V7!<7QV*hLuYc3rpat~Fu_+M#O zBg*n2{7?v1k z^>L>g?qr~Ax5%2}F%GwuixOK4e!4j#?|i~P;Tv2u%L!Dtyv-+Hrk__7M)lwW0$rS( z7d5k6X2T#^Z^WC}qRT@$n({y>(rQ`wU|5N?yI;Xh5}np&t(fjP3Pfqur_S}HgN6z< z324$67}`@tRV<^9P8}YrJgwAr|EbC29}t(I7wj$xCQQM`X!O_Spvrq&uGV%kEXyi+ zYpr|qU-3=Vr9hUq*8M2E6*xc9Pz^Q@N)~v4=dk2-vdaL7zQe#R3f>V;Y z%x$PgLI2`37o5M#!Wy{&Ex}F+$F3yndBNJO7*Bay0$fyJGo!h)^8}t2vZ~mk$$FtTzpRHs6Lj$?+^FGTO?MVDh~!dqu1(^C$bt zcWFy!ecc8^lUY(xJV|!&eWX!_dyF!($wIDpl3Az99t?p4Y>hWXo(_S)l=97NDf!_>CiQN0HN_(c>pS;X3`!o!Ui*dRi zvg)cUj3mfL9JRRbWe|InlY*WrewJYi&I|`;tLP$oRl1%29Q3o4VF^#4-%dn1*VUt^x~$Gng75rQHiB z`FHwHCx zt1tU{G@Sqv#mo^dZ4mUc_kcj*idfEFmc|Quksua5J#2fdc56zxX`c+qFEgt6)o-ZZ z632qaOG3Dt+UzbbR}FO&G`VICbi0t+^tZZUyD6+f_jE8zmSV~1tY?2c-#e8@U!Th` z|2aa*Wswq6HkIhllK>ZS6Eo=z={<=3eda)Jy&;4Z1M7T61U4|`Z3v3pl9)-7lS=G2vD;a%0YmEy2d7fQYbpm{ zt|$}aN;yLFCeR_lhenuJuy%eS#@!mylOxP4k0L67{1h)!#uFj(VOV><;|yw4ST%d| zw{Ade-AUHOukPy}`{I)j4u=eo$!UmaPM!=FM!L7%5Up)N)opE$3%ndZTp?6IvOc3R zerhlL#;lQX3pewc#qIKe=w&R5Su^-7aQr*0pbU(1{;A8faP7 zjkfz2qA71R))zFLVZtvQ^Uwndr2>))wo5lpLCd`Xua@^Ip9GTc$>4)} zzW-`LnO+g{iCg9sWc2YI6w!$i4AU@35*eP<`I2)~4yZWo0xg%LE!Y8s8p1=Y(9bQv zawN~0$De56B$3@2CqWP00=@f{{XobN*sDGn3{6R(+h3TduDJ_v=r*yZy#UqkExt%7 zU86!So%}#k?>8zymFQI~u;0+(r+6HGMbVSk$S~0EyBUAT?Z!QIBh3)XU=nZLx77vd z(9$6=iNvq@UH>uhRSQ)UE!?}bl9J>&H0pp3pF}IHXng44>)JiY4lZG@L@7lfyHvkY zR9YWT=&zGi|Je@+21wlK9v_=@zrC@bn|}gdX%30FcW+K2cvptI?4XCNn<@i-(C{%< z%;5Cuwg3|fh}pSBzF-d`%eO8Du!!cm!6%x;G&x6PZob}@tby!vDFbihhB6MPj6wl= z63|aHR<@2u{lczMZdAdoC3oeq0TNW_klQC&YVGzX>Qw|l=|XD5IVnL8`Z9;hGWQef z$)D8I5|hy;6)hIOhYiiKsQu+c$|v%|QwcW-U`eMult`0NrZILx0%Rx7bZluUk7jne z8zgOKKL~q4WnHgr(gCH)k7wa+W!UTGS3>4tJS8MJ__I_=tnKrjuTVKAdPVJl%}8yL z8;%nS!OX{#b!~@l(phHmN6f{y_{y3oQorlps8qwyV|M&9BB+=Z z)l;^baSEU}mOwNFEK>pEQ~~JGK*vVPN%!wTv?r}TGj>ok_BsRJsq?ngT1MfjhTG`H zXwHy`c1vvNr+sWjGH?F|u#3*uFwCJm2ut0o4N0FxOmb3eJgO?_*KGE)k@9-qcRlxibC|^uug77E za9pV0fFw@Fq77YvP15iEMhnm(U_L|5t8pZ#(%D)~jC@;`^5~!S>@nPEvYJe|JlxYf z?T~bU`>pjWl0kzYFNd$(uFoE0^#OGR%9#Lnu~uL95p`;rEb2Wd*x@I&`=8CK))>G1 zr$VuDE9(WKHoM&Mh2U=vE&*iO9?ZQxBzkVGu_!N9*CYJfcCBC+_z1J0-NBKBBaU z;O|P&5_rkCD__>*4qp+*RtTI2zaap2hqdGv#NlGizNs!Q9HI#P_%R4mRNrjd&nkMg zA~iocJpW`~kmI>kPpKRg0@!(`c9A*h<1k+_k*_z&O^)N5E--a{a~~MydYI*fhQ74b z^*z6e(kQ2?Km5%l`u&-fWp$6!taF)5j8y*dyTCd&Kr~Zcy=|xFW_0@No8DggLmAy; z?pL+$7T0HpqT_rhU9nW$V5AG{A(m*yA+P^Mxho{lACIlzB{W620B$HAA}bao2T(p$ zX0zU~hZ5}wHi|1Cbmf*p;wRgT7(I#^r!bdliV8mSHv@(MV$Z-Rxni0q_aQvF`nJqz|@8{b1#j%nc`1Q=lA1`3S7kE@hvv4 z`5C}}oYi_8#)`0H=;FG7@huLuJKPb%;banY8^EKghQt#LZ*eaUoq>!aWyZD(J@Ac; zq8oJ&K2q&dK8CZ-HkB6N_J64=Y8cbPMx0C1w)rTsG>)y#4>Hk~!>S{WQB&_G1*M9Xy39b; zPc%tzyV+o5|CoPUzIA6A*q>jFE0$F3Lw@H&ki6861M}P-ni`hlYM$Xo0ETiJWPq$y z7L`a!c+|Y~|B1>2`H$Z&S39gN{WXScW*n$x#+=wKTsAd~y7u=-L^xIem#{Gz9N2jT zOfMK5W7FX_IzQdK#N&|f*9@Omo4PR6n-iAxc@|T0oE|rSJ0tr*t8}KJqC-xX~ zNYe^-TeMxEmE7rhx%tAd|0Md@W>ZgEe4lO*9p=M=c&$?R-Im3^Icn+_D?8$u~M*QHaaoXc!G>l6Fd&VN-ww4Qz%|UO@$@|FH9XbL zmgQd6oto*nRRQ)5Lc}s-m1VAW8x4M&=(DL31RwUUwI&aonOtNKNhdjQBYhKU0&X5R z-zf+zA7%usjE@pE_m}J=WOS*2T?Qv?HevNPZmxL<;CKcxo)? zcu&K!iR_5L7mfX^L^`=tK{8Hi5KoCsQbWWP@LSRy2XcRfDzY=Y`LbyWN*CcSZ@Xxj z(wH;5{sZF|9Xnqfy{mkx7S4grl!g6DEo%mJP&O^^WKmjYQJvfJbIxF%G>KXXC+b-gGt@DyarW3=-&W?K)r@zQ2)1rbqy zht~;z8Uw+Mz4|4v$c8}N-VmBLe1q`P@sJh+WSb!__kpwWZ3DzLA+1Xgvgi133R4v3 z5>5Q)s(=HNq^aA|v~5LdMsP-oR0Sx7AZ8bA8T72J1(_>dAm;D&3YIX?^~v2(fj!eL z+$lcQ5=tLNOXIPpX4^qSp}%Yy_Z;~vVz*&D9@UDbQI+Opq?qYq!y{ry*GeSuu~M8* zjGStE{XJq&BV_%#d_=c#E@#+)Ak{nRgxmra&m8krg#2ch2OO?9&juu%kZjEu0udwX zzw_kl9I5CTz5f^8Uo<9!)lF2>W5>ag_%cfHD$!D@c5E&+jj90&b?I}^n8+eQ$A4$# zbrtXVCCjn>RPRy&6=9HKFs0U(eUZ`(UK03lVDJ)YXX2flW{B$jKU*S>(G=ZQs)6Ho z)=0^mU@%Lij=VH-VDRqq)7KOsA&|NysbS6aWWkO|tL6@B{2YZZ4a7HWR}qIRzR&0tCBE@*80zh62*it7AOPm^o^dG1K>ajM>h&bP}w)Sy#5ms~57a z$g=9i2woAz_QEoI)0G&a9zz%#w+tcnM0e!C;ZWDtA$;K$lrm4QjP`u z=sKk=+OTVjWt20s*N4R&gj}F;E{2Xo=p0eKstkr;GcqE3Gmn9}cYlPH5PF4sKLz^5 zP+&*hy+3yIYTy#HHE9OLjVpp#UUI0GAc?_JMTy;1)g5ZCkx~SSM7&7KBMiCpnIpOt z4se4`RD6A{1=yK(lj}=6Na@9MHgZ1YD@I48Z9h~Kx>vfgo1CKIkbw`=mo!NAPGeKL z{m&Vj#?gJuixJ;q$~;b_YDLwDmw&8JEI%7}0eKy_pf`v%PP*J4p}X)@`7+ouRiWSY z9#y+O&WXKl?`^t1*0a5?i*-LgTui;6CYZb)Zzh&TzqNyshY@rqpolb2#&8dETm~6C zfzIW(3Y3y(j_islYqh8cjGAaS(iVX!3IecH)BhD6aag@USDp!yWDHsXn%~W zmP$jt-ZZ_33{gV0tSE2a7q0|jIXs)EF@*+3`NFwGvU#9n1+g@pzIwmjZ=c)?*;r3n zGw#0}td=8tJt^;!NcLAN2niOV>Z<__0>vWFivKoh1lRYVU`h6Ru;&M^W!}G6E$>;| zR82A2d^FKif80kBS?hSZIB|V8+q>T{tX!QS2bX`U^G2QNejW?F-*3KGd%qWd?pA-^ zb-h1+z6yK@e13F&eEpv7{eJlQw&?wV{Q185srz}}^>+DrDezgWYTv?_-765~J#^~O z-;Mo#GI1Zck)^BMX**bmz0l5lG2eLmv>Gni%J-?G+tBw6jO^;*>%w8`Ob)*#UH#m8 zvp;IwVM=ahLV9^`{dgWAJ(S&@R$a7zWmw#&GX4w>x!UlIjsM_)e&3xN+?e3t&idV? zVDyc}M_@@M_z7TJXO1$t4XHX&FIl~Vs*BnbKz_eYIN@IGNo3(Td_4cWf4{nF+L@fa z^t_yi4&f!9k-Qq2~WTO?N8mk_)3#@<~5T-Sfr{pIuMI+bGmlRz=mI)IOm@1b)*MqP37!fC44Jw{@W5C@ z8PPe`ZRpw;cy~0o={=iz_}+SSW*}xLFTqPAXr*}cc`x1V78h+cE>U4Xuc~_pxwEyxl&s5E56U$<)^Dfb~7+!9{*Zwj) zKmYSnWpeYgRTq@Bv!liHIoa#=!$qf~gWJ-yRd;y*)cYxT-{kG{6ZrmbLP2Xn+>8P=LmWw5A9ZF6+RE2{pA3-8B4Sr&YVbbyz8x8D1;WqZc{I&|y(m&F-@Iwx9h{u!o|dorpDgdMa=LL{ni7iKQ`mOP z4wzlO2TeWTHEh|q5E2(R;fB?TmOx-XFCCZW1bBbm2~w9XZmh@DAzp}hNmi+j)y;1B z3H4VARCa7E9Ij>`5P8?U*LU1kRjsv{sgi-QH6NJi1aJnmQwL`fD{U$HI!s;R=pK1BCEnRp%O>DpuXSS)Wh?(p{F zeGSaMay=Qi2xwV4iK<+{`u4yB22};}U}(C`Zbth!gE!&q zcHO*c&|zRuEai0>3riQoT-DA+fl>w$GXEqaqRvAW1YgS6{Ji5uJy=2Bh?Y*@k0-wo zD+T-f)m3H68QwchRWSN9Z2(aYcD`y@9*0FrG5px8ccPdx$ttt5AFkPYWZ`&gWFeKy z-OQ;;=h=RN4do%&yu>uwRafWps$!P@TyyPbLDxL4=UT?3#N4EH%3fsJhL+#~M7fYu zqB?i)qk3Bi`16HW;k!R8)$|V-q*;(uPTxVkVVN8rl=(Gxwp;4P-<_sJ( z^>Ps(DW(K!_K)wacb1Y>^@9prC#qyW8kknr-C2AOf!nq%Kc1e6-mE&?@?MYEIM+;H z4l(9d>Xw%JVf|X0rw4A#$X$W^7*WKWLgRnUD)Bj%){GxC4j^=WPY<-9VSc+eMF9~P z9zJ?q4^0LIF17jZdHH2yX;LtALET5#%M2NuFh+jTm|5G`U9BVWwA`#MUkO1P%4nA>3GNf2q9tn%`lgqto>o82vHM+4Vv!@Ww$Lb~UwmbbkK4 zf9hUxu(=#CrNVRA-kVpC03M^ymHU_McM+gm!BoYvY}lLtgwM*JC-ZdYfLdcL1-FaZ zmh&B3^Y>du`l|PKVrTvKE!V*qZIszrEA%WJh)DCWLZgfUZ|LwZJ!?fPmLB!PZ_xho z(J8EStxp#B1v<4H{Q ztHwi-(;_p6m%l=usZiiyXFP*y*Ts5 znX7z%G^0UfGd<4JiGSf?@}?np6_R(~l5WS^#t&WFiG4BsuL~Rv*z!{s{PZHF$Z4X( z6rMVjVo33(^pa)suo=LIZ55;CyjveQp0P?9EXU!{;X`4R!_s^;W7P@| z>&UeYqRG|OHsY65OxLgNLR7XfcPsg&NN+(qPmg(3E&~ z?uNetoI9({=krY7pXJrwp91d}rvhH}{P^V)sf4w&zZ+l=+3>%g)k=5-ox6#ceyn8vZeZ2|h z#HQQzurH5a^*E+@wT2}L1n~W`sSic&feN<5tA8dHG6kctBq|0v7W{@hIcp*^UeDw` zSH~JNU$(?6O`c48%c&f|pe~svXgsv56Prpai9C!A%R86nrBaQ|s5$NvtLH#qv66(k zw5}-d9-H+9PhNECYBr^KGx^!!f!luZyMk=Ly{jMfz=zY7L;+{EQvX!b5R*pM4Srev zWQin8(*6TTXS4SjEES=jXcnOHbwLI3V;<`}l@P(`#;QIv`)OUBB$ry04~xonwQ?*g zNCO;wc*v$kQ`#YQQ;FW z*hqqE$rY zqmu7^_*R1Xh8=7YU@E*^V6*+?km&{gS>~}~6ejHd0Xaa%zpHnRCMMSaNSv$Wfir}N z8A|d%WX-^hRlM_Bka}D%UL$Zq2}x!`F0?rxVb%>C^=8kkl9!cTEs7DU1obu|+y9Hq zki}WVHZyqAs%tf{YA?0Ko7$PwS)|`q)V&v2+BfU)_VQ8>dqz34EFg5$&Ga5f72q^) zB7oS-X;{hKqbuG}2Y#|{%H*L489fXmHfH3-;U3(=yUUw1_+|fYcfs-!XLsy}Yk4N{ z#H=QBmJBNb*y=_Vl|Dn7-gga=jexT@pV=84;1)TV@wsXHSivQ;f=oaG0Vg^doDxw4 z+KL#}L{iOSWt$WY-}lL~qkx@QuEkNXepL7fbFn&auEyJob$0$c;FW7Y6ut`sw!F_Y zvg7b&9mQ+tCSc#^EY)x(T+9?S6Q#zg%NmR8AtGVN*0O9m?Wqrz1BCElX7+n~e)(HC z_isRaZ(iR1WeH^+oOG4)nrKD_23U-N&ygG-0#*k9##Us6pX@8~ly!gyN!9i~z|r7; zUc;yL>c9E*FTeiXH(%d%ZhXEH@PL)$AUQOLq*VoQ*9_{9=vm6BfvYnCBO|Heh)+w_((U^5`-%!Ud3Z6BhUSgg*jLsMXPb#Q;Qm zfNkdt$We~P!*Sau;pC5B|KeA_-CF`|Xj~S3c+Ly%QA$lcIH}kLXUc@Z$O_0oC1)0d zP>&)PC$I|H0IMd};a7ib!8ahAH@Ank{dS!X^2CyNAhmK88r||W?qV@%=goR-kb2nRp)>2LTwm2&M#k|y;ekg5ZA*ek1!ur&84z5 zhvTnj7B(ybM^I0Z`^e!pHJfU4D5cJ10n|cE>Um|#xqLl(p>F0UXl%Q?J-a?!@d)pj z65$&wPxfvi^%)!#;J)Gq4u_Xv$x-3e*%(nyot$M_ggd0ck!(TShjoCmpBS>Cg;)Q` z{rlw~{_xu^*1p_+aY@R;lA_Mic~}QP`v?|?t1DsvsE|lRytT!)rWPv{TL;3yza-iU zh$wcZ2G?Ji1craOIv@MC0Cp?`9e7y@F~tF=mJyH+hOZVFkPUW1^%_z(35dxFhk8<< z4w0uj5cv9OUDcf}OaNDxXYcBS4rlX1Uf=9nmgABR0UC1*QDdJQqO^;3VhvotxiOr{ z5;x^}TfpP9j)olOkfHkk^0!C`ePx-xxf$R657NK8Z=L)q7@A->Ck6OLYUHShQX1dq z96%^ALF~MG_Jsuzptise2DBS-i#McFJ`F{8)@)&bQDEPg6iQmw@b}Qfac05*c9{XW zT9p(cHQ<8okTyLKNA}GX(*PtuCUKap0W6kJaq*os=U4aak+pW2A`p{J+D7A;0fJ8z zG6T%XVp?!i^}upeT%8`k(^qP#bnAi5D{L8Y?Ah_5Jb&M!=>4+h2mv{PE+n8@{3i?m z?*f2}^U-rKOpe>6iMmxQAZRvZ4U;Sgt}z9Cb!F1U`Q_Wc+_N|?uNDWXA`|=9o?r%c zfb?ma3fQX}0rf!f@MGuf)hAHAY!YJ;SQcVI4R&S8UB0--lJz!GOf^tRwFFm4ev=zU zgNgXDAS;=w^B3X8=a0r8 z92_Ckl+~@~m|ICwW^FfC#Z%O>X|y)7C3(gUNZ7_mY;! zP8aaY8_n`F+ZIKi&nc=FXeda;=XmU z*tiY_NLMB+PgEd2v+#2!_}qZqeHo!d5G_SKYMEycq=V@W;nP!}{DhrN`_|=@foWD* zmM;M#k=`I$4c_l4lX}TEPeo?oC{6>&qzTX;Mu$F|4=3wnt)XI+zH6a( zeD7PfqZKev1Nud&FAkHSWLYX!$W(Z($Oo5*j3X8?4=5aAE%5ontEuuyOhX|1@RGSU z@Y`j40}xxjDZ>Q{vdPqd;}z-%O-HCEv_S#W7AdGvkd_kVc5y}lJrS1ye0>~le2T<> zWF3Lj8Sgy%h1}fe%`163&ackqLEe1UBJqJrg|vj7&25PYpaD#PH$u_%EMQmFIykM{ zH2Z-ul`>KVxvTLlD~>)q$WA}S$}R`J#d^-GT_XXNR!a%$+dNQjoJ>$~0_1E~({rL9 z^~1J?#B4d326(SGW&M0+d&EQtl#`6)-_J%ny8$7*(A%raJ!3%zb6&RB0rpXvcEEd# zwSYWn)0K=s_S14$Ct%V527tYxIbOH~%aKZ=Ays>dwIqmV0+4revu7rUhONANyKf&8 zkp^Ke1CoJ;;;3diFMu@m-G@R7rqkC1eh8LNNi^X70Wxxmm9Hz4~qk_j;tSgAr1mus|L^6NFaq;lDp=kogA|ks3;@tMZyu3ks%y4)8^P2Y0=hv?!0*O^Of$d=0hs~envb(acZz*i zjpYfu-jkQKOF$FgB3LW%(GhdErRG>Ew+a(1z#515aR>+CMn~}Mp)_QuNHLi{Pg=mM zeb)v)SQzI$K()Y4Q_4txvOP9;$4ZYzNtuA7s9>yZaypN|N$zs}?GHES z{pRdO58vy-jkCWc&No+lkUKl*4V%#S4(PhIk;7s-6OU;~n$^L~K%b8S%nb?y1kShX z$&qTc1DOnhP@5Zj;XwPI=o1d|!$bCiORw&k3b;aXO3Y-Ybuc$5qSpjS&Sfa`s8Po$ zAlM~SbRrsO=Y@j4EtV&;9|m13zu=*?Ti5tXK}Lc7Sj(Gmb{v2}YrW&B%nEFU{F?7D zfzxiO(-x8Bl-EP>$Mn=6ao;wq+j%;nbS=H(8vy!RsLf7}!4c3VaUh>yEloJ9a(0_R zNm^qmnt}r>V#=3)fnRt+zq+_M=P&FZrlm7j??8Q1nYJtb--ir{3krp=0OSElhyZRr za%3yE04{7}q*hkt&bb_(_A4Ip=VijdB6~5N(pTWlfe)VE)(T&4F}iAr-oP=Fc>IkI zJQbfv-+hV_X);TV5jA`qUSte_9BDb>&^4^%SNws=iI&e#l}Ir<8aFVsvZ;wPL2 zJd-lG^@;3%oIgiioMP<}EUAY*3jV3^g{2kbgfe5~omdyP6eD#-050DX^~gBDt=Xsk zh|~QUSlV$$wQR#DOU}*#K6MLs7D`DLs#U~6&<~!%`iNoRIlj?T5C=~Af`d+Y>|3zE zv47a(^044EsBxtNgw}2OisRcUa5JFltXdO^t1U7sB*sspAgv7*77K&rL)!8;+XveAqOJ#uuNaGnD=R7H--1Niw_3asp zEZ+hOesmJN!zF7|e6U5qz8`5|yKR~S2+KH6~vf=HRfK7qsRLT=p;mrhR z)wgPfoOTvif1!u7+i%%nadv%mb+Jnb!0lI+JtG5UA&|4lJC$kxT6jA~4pv5+(h=-t zPda1fFqk30WtsIz_+McUPcil{Z!XTR$e#T3}_>(mSL+*Fnzvou`r~2&kP1KrKOfMT4T2_{w-Bp=9$fEzid76 z&vJNu_C{~Nz1m+`kkb`Lk?Q!iI!(t>WR;c%sTHBr6~Qu(L6M#URG`Cp%U!ofw4=o= ziI3Z-7~JLJLfXY{_D^>CW|JaCwoRB(@s~cjF>$njUjLNT^BNbinJO zw>t1Sxt?O;IN$1WG2meKIT51i8zivZWDw9iBCh)pH>H48$b&b zv;|=F*i`CiMqXYG-I`c-_u4L><`C=QlI#s^C;M zN{I&WQ2c`6kDOv7MT>Qu(W0~aBa_Get}uvEv6A^hsI4EGk)o3etJ3?w60>U4$ zeC*aln2oGxFCaL%*Do*@jQ8qrzqKVUTgD4Kgm3r`Fv#Zy^bt(xh(b=CV2ycy3D{=| zK1QTeBT}cYF&dAvG35)4oyhCA-aTZlS+-g0Y?%2vtg17 zxn_x=EM)2UEjO$poX#&bH-(4HwM!laT$eope`sS!MH-US@k`A#H=NfVy9#d*5L^35 zfPNMBdRjdY)%+Kj3;6Wl+ODgAknC+XKpln{9{=fz^K011IKFjpbmq@6pvj%<_pfw zf`j}eD|>T$AceZ$S}e)3G>;t5;EB0otJTUmc$5#C~8vBAi(apoj2 zUn(JgfwkXjzr8vTm zv`8FDK5ZyD!Ce1E=6ZwyVwS`fy&B;-g^lsO0eHD-M^``__#MYr^E$ioq@?0%%uT~_ z40UPlLq|8|B|+&G0TmlfpCY%zxyac2z?u%wzDact0)r4Ot34d029evyYHZb$j_%=n z_flo&4N!we>_n<(Qx48yVbfYdhDD6!jBRlmDV@ff+g@0A7Gxv<_|hg>J6O)g`*6$NnU=jZCi#96GkJS^esO;L z!`Xa$dDm99|1@ovXulX#fHt^R`keqSKJ(q;x^5 zvL`vsyT6~^od4VXMfJ<-Vp!rW2wsY&;oltkeKiw(Z_mxzd9dN^L8XXR^Pzx|4ha<}1Q8PdfGroLlxgAcK@X~g;|uP> zK0TRVVBbBR2v_SOE|XUb0FK=iNj&?cSXpUmN(3#PX?Tzq8++%wc`K8D%i06NdjOQl zDF7?j`wjoNykloYy*i8K7;n>mzULHN~GsQKen$mkk=(g%Rn`TDnLBoJsND8b? z=&Up|`6!!CUBSX*vwBjKrtOObFYwONU(=8sIj<$*{bGA6(uR6cjC4MDm)Bx9jAk z1e#u6A7+q+-gs?TusAUp$FZpaf0^`C?n+cBlIB!dBVY0qhpSV_HiI zwG0FUpaw5($aM)UJ4fws4ZxeOPLN6vd%zxCmSM|QSp#}w zq&i|tY=*p$jscP z00F>#of;tZO7uu*JK;V+JlN+}OUcf3APWwAFU<{^-C`$#Iohm~*RibEadrVeL~2BK z1}EE&sZLf60C4lsz}Ny-SX*$0&z2xUbFxp|MWBnluypTh&L(cSfQ;0@ z5W!*nEC5GIoU&5M3}68M6W-J9odWA6~5X5>Qy*r2)5k_>##phQyx<8t7R3 zS&<XwmusB~Z(WRL*j`zHpm7Fk1&O@D z-DT4iFD##QoR5T9fYs~pEvFQO@b{bh(VN;X95>54Jn$`6)M&Ru53Q$y; z^uV_U(jR+ZL14QdQPpLDsKRouW6e4pRpQt$n{$hwow6?xL<^ZFg7yRRA{i?9*)){T z2}y+&3JC4&kB@QMVd8YillR;E`P1YcN{@9}%jFQDD-Z>2OPqU=Y=^HW8#6#UYjml{ zQS%s$jp;1=iLqxZ?CVQI&8g;{94phh%p2T=r5#fSVqaxH0&HbRSPOXuI6dV<2f(=< zeCV+X&P(4b;7FvFN7?=HBkJBUEo-@hnH8LXZI_;b1?X1@ET@Tr2tRTLpes%k)`O6T z0?cVE037}>L32FWzLVYFxw9ZxyfKAWL5Y`rSj}PBpAuWfN`gej32s?~N$_25ND|>UPw%!Y`Usxhfy;TqY2j27s*$eoP57sp#GfEwK zMYu+t#MEcu@%K4ke1=?1Hk?!90;DYG5m|$RJ)1_>0kF`ixun1=k=Kr#Of?*@LW#C18EQdaiyN)kqYVF1k-}~k1NB`II@X>8`p3qXDWQB& zS5v|8u#^RV-CPUH4G=wZ1!b||Sw@NhlI_w?H}LeOT~kp{QDyKZs>lT_|BTJMgq3vo zm{tM~G>!(ln*kb>I*Ke{^L$<}L5_^HKdz|QJ+*NuL4fr{!1n{Gb8IClK($!KP=O-{ zV^rfsPo%D6sR9(^GE#&{)W(*D@&y*2ytv*jC-qbpw-P2QH@U&~*Un=f1JC40L7N@} zpKw^x6cLNfDd*zBcx#rmOGvVa?%Uu)AeboBp0K>ukF)R+H*V#n`2q`14-4zp5-v=VP=YgIky1*e5K`x*aKXQsQ>qQ3K<~{`gdaXjqn|oF+;6NtTsJu_fAigYGm1%rnm#(KafkB*zZNTC{9W}7q{2=|J zJty;6Q|od%SFe)_#v_1jW#a%!`|t@sO0Yy32+D=ts5l(~ZpMZStr!O?0Tiwec+|VP zpWU~SwQ{BHii0nPf@IX$+j1$~N^tUw^i8`nCl2k5oFG9t65y3?gpvihm!oVtc>&qW zw}O9Z#GV3Z_DHY@JakhjLk=?P%nT6+0q4(BJB{NNjMN_4tOCf&TD1p^y{k*wJAK|P zYbFs30YU+j3#f**0K^3dE~*AVk07nsWl^jw48|f1u^KRa5gpL}m=Y^9|`nPc`rKyFRn7Nh?+1N35dL zqE$J^vRmWXTM7@tvUWa$AY5q@(b4>5_gt~jH)l-$*LX40EQdQd7Q5DAs1s-4?}4u*h@d>E6nY`vaj7CHAu9O6 zSJ7~!g|}z(Trciv)LzS8J5PCYxP+~tgA{0FUv9{qx;cey1u^G=WZl?ZLK&*uQytz? z^;FAo#=UDQyS_c}nQ6DG7>9n@ju}j3U7QK5pYelt-*BVpa3&1PA|u5s1T<|RXX2lE z?V#`zwjbtsl!@=_BX^5mb6xu_r^{RNKv;t??d$|LL$GXo#~PWMdy&@$(QPBHt0)d+ zMwH|^GfMv=l8sjTuya#ZIT_ zfMAOw#H8XRFS;o+96ibFQAWPm-UqMVT+8jQd1-k=Q8;G7D~Lzo8dl^qv9$nuQ#DvX z7E&LM4{lq5MQh5}cD}RY7lX0Ko42pVvTXHen`l}o)b~ev3sm};MSV6PQ(#`bdq8fc zRtp+USzq|ZU~Bjw8#G57c6Oil`t^06MVN?*4*&?r0J{!xu4k+Wc)kSFdBunHA7G!T z9kmpW4Kk_mSZ1L;&2+OCJ3@jpY=#1_0843Wh|(Q%X_g#VIv19>N91V@PBbCP93tB1MUY)ZArl5 zxvdpvuOZn28iN1V81zWf*c-idp6^3~b%V4mEX@g1DEgOun0_;6bEmw}@b~yZ$EQYE08`f!h-rFnw8z6m&gs%7_ zA?S4M-9IkeU4w_-p55O71^B(xz)lq$xKhNH^9MXtw}I*>TeVnNG>j>MvSP)XK)E*1c|{$WLZiL&aEIXw~6dk z%ZP?WZXIAXA$qr?45SFdy~bJImM+^1*hU$7i{q#DVXz`Tb_(x^fCtB-pvult(G-YP z9TzxI+6!N0y?@BM?Z54=SPsiKfWik%tO=hj;RKeQ1DR6Ap|SlB*^EmwOdslj_jt!Z zus4c2( z+t2`xzVOt9R+ik!%zVc<-o}3Q=OMSU-*D&F8>?j2hT7a6eLPEV*w4T)Uce$tgZuT zO_sPRWq4ES9yt0$3vYDy99jgfk~}m?B#tfY1Rr^6htznPJ}+bB>5;ED8Lad*e=THic_~I-_SC)Rrx+`g{?DG z_&UM5D?oyGFFX6{K4#eu7J)-3(w&;)GP>Hpxq$$%x3Ps{Se2M&8;HxbjjaomL*5w9 zZ3mt>-pV&`Z}l(xq;l!Vk~4ev01vQM4WY$gK`U^8>wq#d%BXC>2?-`zu(ZmOgaVWp zhw$<}Lt15LJ*MaR_i7WZM@Ms z!G~{vlFkk~x9+Q5VWG7?JJ34-d&iP=6Oll+8HW}DhDgOGGvGC`dGEXT;*3T|aaDn* zr=d2U5C?DcVxHX>3}aZ<7UtGD782tG;D~N;B$on`$uKQUXS*E;H^|A!BlLQqdY}H+5&uq)4td(t^=!xG@Pp|uDKeq&Awm(xtytiMollxxb2m6o?zcS z(b})i9&lYw2x%>{1_42&a>H>7DO_i;vSDT*D-I_IdWqCB126+~Laa0rAEcTeT7RVN z-`dB#6jno~53y2DeNvmuZUQw8+(pTY`COe!DKSZP;s<`4(Vo~4-{eM=qithYIr~;G zHkr@e8_H$*QIXIoVcpY&Vo*hDW@7KyWCAa*2X3` z=leh!M`(EoV{Bq;+%!O2nyEa)&O>ZBD^javZA!HWhF~Aj1V1R66AMl$Fi#2PSmWMz zC7t!RH@8=Bc8{Q6PTwvf)S6?ZF_WA#a88y;QIsTde!_sEi3QaIr?flQw>w@$7oYoQ z`nX3}`Tol7YU}LVo%rCFEwSC<+yR7gzBSMa73DdUHfGlwWr{%qI5&+R9+2dKS54Ew z*~AGnt^REoh^oJHgg8BU<}Z9Yw{r52icEQ zNu{`N;=DxD{nnavl9l)0adB?b3OZ;Up=j@evcU+>#>VQWCIFnJ^1)%Ipukp&jDqZp9mTfh9xT?68c2zw zB0biyK3se9!M4K{FRAaTH7Vd6%T_Z*TJ+OJBED^^tIvUTgrY*>J4>Zt79X`}qp#`% z;EpLAdu;%Bjy3Rqc?;}txV**T}>`fo{@*t zkGQ?3jHrVH6^~!R1D4P2r#`oA!|iIuEM2J<6$~d|C-!1B_=OqNj2ED;>Nq)ivY~}< z0R_w+%Sf?)J;}K9-K{mt`+Yazs}y7f2t+J#xe8yXCy-0woir!OJI?k15ka=8N)Anl zvpm{xa&&aQMgF*%SBE!l?6aozi}1J`EFRfQ<+cW(;#CdjehaBo_i%{;pUGhsz(?IK zM06G@0jJfRY@**c5wv#Maf?vWG7HolLR?U!5tg)?jlC1UuyDCfAO&ngG!1`}v#3F1 zOo?$EZ{iQvI_~G5NTW+Bzz6_lD_ehA7m;eWmcl&^2@k9kE{zE8w_65mJs;$N`CZJ^ ztBS4ZX%;>#UuV%I(5oQSf{!)pG}D49EARyfYcJ)q z8K)2G!rimcO9s#PbQh3XC-4a}n^bm!%oe-@x^bJ%DyOiTtW>b<;QED=dwt}{L-i+` zcPIF8kFKI~emM*bQINebBOwP@jVToYDu~Fyj=J+j49_1QXbn{g03eLUXeRr>Wsai} z!@Dk(dzLXRr>b}xOP&IMO?)i`ZVhInL}`l*4kmDA*5g)#^b!%f8=L>#C?2T0k9MMY zyFn48Xn7~Bh(sYvf|1MJ0$A&i9Kc*7^g( zBcoW)Mv^h?w1qv9Fr=ppm_JyXLROqwQUoNdTocQg+^lshZrIc83%i>O{=JHX)W!y2 z5ti;YAbC(wkJG5wa$nfhh22$S_}j=TmGcFokq|*iBT~_c*4?vud3mSq05?I31iY;( zCE%i^GAf`HhdpJ)KncJxN~Z4s2|4MRLM&o|8fAVGVmR{pBiWd5b(4+R89R-`v+OmX z68~2997<=Vo0Jd*v`V>eQwRC5D6E$Tys?vY+#K>A4MAYjPrUWb`AvV-&tKiiSKYki zE#+DlW;xoRaKf4|mIH!V{=#8K!pDV8d=uvhxh%DAeC22c5tCc9-FYGW`gA(kX3O2I zog2_I?cbgC^RtVq*E=f&=&@`g=(V?&*!@X$-$?u>At{{FflY#3&So=37XnrZK)Dpl zHdY&F09<|8sMpG3-3z_D(%soTz_Mk5Nu_>rD2S+*I$7+U+muut_4lQLu~|V7Q3`-- zLM|8%Ar0IXwAhyWY`ePt;c))?+uL`?>So6>c9Siqe)vrevTz{eY%ZDP=R}Ms)K997 zw|gUUvhyg&_zk<)k_QMiou%6K9?Q11B9xQe)iO)*2kZ`sX{)WWXc_KqEI5Nh-n7-v z!BXpP*m)|Z@rKVOj{5LEvIlkEx082kboTnK9LC;C?THU;S{_{j$ACA@8@1xTMk*mW z6Djuqmx$Gx&H<3ygkta?4#vS&-ec7kA8zH)Sn+kUp4RM_4SBO6e3pb0MNi}`*7ec6Dx-V~p|B zDkqeLu82xt0fkaVKHyZd126)pQvPv_Zm6T?SzpC6aPpUyT=^msPjANaVc8$-4QIgt zgR^m28SE`K8sCG+F>~Y06+1i%8vn}l#e{uEavkU!RFYZy|S-~+d z&b+nVupKA#)N5`AVWWd4NNApkIdL$E$C~mCkSoj@GoKCmr*hV7i%##N^?8}fLo!q- z@tqa@KxFJ;AC>R;oSZcS8(^l3o$uftDZWW}xl^QJ`tYn{QYw(*VD8xYqb`lT9!0;ruSSXjj}%n{3IOZ_ z_8An3$s#pGEYF--k-T#Dz((-XI*|MUp(b*clOV@fbn@zz<%4(gF;TDnQh;EvI|w@~SXVB9gKo8fs$;Y(s1w9buO#c3=_N zVJuQd26Ssq0a+5To&$nwvdnCs7Vht@T3X(mb3SswZutUC7C;D$r}{MZ$98zYY^J9M zW=TwhQwW1%8o&Z&P|gS8;sbh7(2#6vP%fJ2MRnYG;W^x|5UTfhL`S zgOU+;#5fL|0=}ub7g6q)K#zV2cq0%TyJ-L@9XpYxF_lV{t~*nkqoh{BAqyk1R>9(^ zmoiA#fnTEW=6+jF*I8V*wR@O{gAc-&HqMSX+;ieQT0kY`v@l7@!0h1Fa0)x(o3HSi zwAFX-t=NyM_4m?3Sl$ec4Db(Jhb5~(LURDRxz2e+z_`G2gSx(RQy4cKXb`tPXQ2ps zb2FP`EIK*1twrt;U;%+s+^(*Rfc(cKJc`2cMAXp`V6b|TF+j)y^9VzX{coNH1) zH}$R-eou%3CvB;ag|%YCN}<9at7Mg0-5~(!=FH;l#OBs!hVSg7F%cLNyK7jk*KKcm zW}NJmdA&?#o9$5pU&0O3Q>ZeS7XU=;48R@{ZbF4Ze1wY`zf+JJ5QurD7USpkt*WB; zgIZj^==&L|6x-|=ibyY&!s=dP7{Y2c@MiS@9l+&mW(CHqZ5Vc)MW16n&ZbjW5Z}I> z2VemMc$@1+_m<`NV93C}9-!7r2JYqLLux%V%ETi=^EL^NtD_iXw9k$GQ5{j=t@fATWg02*RcqP-C@el<^MO8iS!ivm4_I@0F7V4ds$p8r zuXKh}cagz4JHfOF(oCTun*nvnV_6Epeo^Hmn>I0sZH&wNX5JMK?eWzZ<8t=qyO0)v zggT(v*h;^sChLM9)=^Maol;_LAX%}bvj&Q=V%L#M>qF+8EK#29I;L?D!Q47QnsFS{ z!4Y;5IJ}Cpu5vzbjnc7z-MR#S0Dz+IF0z*<-}deNw5(|_ovw$RSkZ1wP~lK2fHZLY z<{K|4W^1z!s)A7`bkmL*Y_#Q2&YBaVVu7W{+jX*H%$lYe%?SN`ECpjRtc%@W2V4F06@YIi}G)g%#^J2()TVgprdQiNm7LQ(gD zEC!UMv48?jKX4M8rkR18stvJ4?0!4lzLSOC*Bv8vBRm$4797YdqEG?`b)~UlyABRneS_$iy(+4cam(0 zB!x{o*uS;av5$&U^i$h$MxC5b>{{i`BhGlGIPun$>4&nHPO+kJ;)xIF0^?a5gCokx zv6-{hfO9-6$8x^M+O7O*S5-SKk7BPG$*Scpmc_>rYy+pR05jDIY|yFfk4=n8N-TU6 zEC>Mzr?&ChqK1deIXO1g^+iC7@PmS|-7_eEWThB3xdUC9$t#^8`A&9jtBUylczc%}yOJzRY~G)dbCULc3=5e7sn8YOh0JPb=-AsH4DWEd zQ|`{lh@Mr~q|p=ofCicfXh1U!q=^K5OsWOwFSORVB!l6!bMHOOggUz-BZ92rb~|Q! zuVuFPT2E(|Z~1hiu>$Yav6=RcnUnx)P)vY%B#)sMu^L19#uU33Us^3H6KRv|{MxV% zqh`DAL$1imRFEsaH6X$O)B|oyuW^ed3yo@Xzz#lVPFjP`HDKB{DDQ}qb>{q@8rRxx zndPaW!-IToQy!RX*8EOJ4)^AgaV8z0utK6gi%t6f}NZ>yI*wt?IP*8G!bkgPUZf> zuj7w#3hX7EtwAur?O3MSZ1VWpRP~|21VHQ!iUH9Ag96EF*+4qt1lojCoKDV^~$a6wYyX!@7LynXD25d=`{kMbN~y3 zlxImGLEsD>Bf#e!k&N>C$VoAJF`UEOZH-WB2POqY=`y!okxnz+0&0SqK^=RMLc0p2 zJ;z}Tii{Qhr3VhN@eaImYy$YsJt1qxgZCPt+#>7 z*=9f5Po0~4XE#N+&LxItHq!MxP^sBQVl12hY7cdqH=)F~oQrDYU|vMYWjKzeIOmYl zr+^L{q~x^`-`1uBx*O=yjMUeF6nqui#qpb#P=KiTwkQZY57c9ef`X&#D(Gbh7bE?( zt8{M-vsns<0FKuZu_)de&xQa*!a+gB0#Z_{w%$g^hfOx{n>)2&yGaB`XS8%6u*2IB z7=3k*0LnV61laF8p|7PjQMJpHL%c<-)iJvEI3ph7cd6*mP5Z4U3M zP`?ZTdBh49Cx!D1DN+-wCy$yOH1TTCjmz;IznfY?)htz7^RrT!)&bNZUCc&(mC2_^lc$1r z8zUZg8LW*HMqzFe*V?3C5zt|Vw(hvbL7bM(yr=?H85-(Dcu8tedu@+`WZfeBloW?l zuq8pg zZa~#+b@OsO$EC@a+W0sLadHrll{C`<5%|q>?kWoKfaf{UhQfyE`G*VGNz`L>OXnQIi+YY~d77EBs((sV{CiJnOEOzeDm0EhGx7J5ZFxrB8nNnABWLtcwAmw{@{;#e)Ib6 z?ep#1`-jJ|R{LE(!gIt5q$YOYVhYigKtm8y3`#1s*T|oN%jYzWZ;{ww97C1BjvpkG zMHs*TUVa?^aQpO(Rr>jP$E0HEYQV9EP$>h@EjT`KM+Xo`DJ|ghxmu$(I!Ynh+yS0I z!%Cq1G~g7)Bp0##@w>nK!}s64e%IG`BYF8cK|w+X^Axz4A zA}@i=Q#FP%EJg?u@w>U}Uq0JyaZng~Q@>@0_v?TE^l-mpk+!6uV4tWa$U}w}2*B5T z&a8mWsUjx<$-3;QeoIk@W+|nF|3vT>AHqv*lP#S7&~8389De`HKjB|}FSqxve_l5X zgKey;OrUS5RD3P$SoXI}dc%5rE-L1epBD-#6_h$4SpcBcYLc8Mn-N~NWNu--9rxpr zXZzw8U4-Ot8i+dMcvMg-d}U=DT|;&NsiCiHYao(;#Sij0?uI;#Z}?Hl@|#4yZ-XY& zZ^mTolL_DrFl2F7z+!7iwCXXbOz>yyjTt!(8`uY5a%|?zk3w0H4|mTuGy}-#wdAO$zl)P`B;j{`LF& zw`&-*Y)o+^1gPb@y=8kv+2K{NalNs{38{H&Id!1)g&LtHIRK`>5%9qWrz@g)ef#eH z!{d4fE|n}f&M#^eXlPd2vr^Qg(2l`lsX8_zn4RV1u;Pa*sQQsoR)$iIfWYodOz)U$ z-tJU}b?Z*8g|t&L(3hbOj5DB~u{bg-@{gV-)f`3=_W4EOmIHy3L8fKmm{O(NQIpgth!A!&1iUk>N_sVxfxw(9a# zpVDeuvlkcvz>Cfa=2mLQ*YN|V#8T~%y?tG&4Fd2p=~vpOCTZuA#k*f__|JP^Yk6Z; z3?e8)sAS7#)wxMpd56pepu?MGRerOW*q5Hm*hcPr+tj(l)vLnU`&>)=u!yoSiI{W5 z{sg9*6YHWNY=Brmd}DjKr(9hp6LE!3Zd;o*A1dv(i4( zx(iu;g|*m^9mLtDJqv_1Zp#0^cweX&4h!0{bh z9JP~e>b&>_nG}RV2}Md^rO;ghB{~z@rvas{<8b|K>z8h(3Hw}uGYVY^yX6F>r)p`; zs3Q1h>}>Y2AU%k!d`C9w0P#^iv9jkf693^wS@m`{dR#t+4zN*tj0~hIRH_F(HDC(T zdAWl>91IA5pYeys;;X}tg+&wI^+e>QmxhYF5gpp=&K1yTw7vj~ zaAA(nQH<&GHdEju&tUm6BV#$`QcPb7C9GG>EpH}_MWv0If``%v%F4uo@KUK{df51a zo!tO;Bj*AurMd@SWI02F-!ju8xW^CoulP4lJ3uikzZ@?c3?+_x&kkTPa2|{G3=|gF z1c|%~+xC(nuFe*}n@03ghD&@DSOh}O`svW^zR#8ApfVCb-wee8@9{};N*vVvV?$;Q z|32`Z*_b%luBplH%yyG)+qOB`wr#s6+ty^C)zs{+>$>;vzu&@s1#3N7PuBN1KF7C6 z2lx{Xu{#N&ylQ>%afRR6J8)}R>#pH6LkM$!>IylURJtvx56kUMGv@(a5(Co&5A+sY zaffNu7yiwQgKO}T8iVzM`0Btt63+( zm;HY@g=3N9c-witvUKd5?b#9zoY+rOKASLQspnH|i-*46xZe*B4#s&M%r?<#5;*1m z8F`36cK;49iVKW!NNK>#V)3S%Cm~y$GCD_>C-}hjMAhZ`OGiCc(a{#&ih(q&KPuuht3v6=CdZYJqeC4TU4wuKbfDbtgdBo z!uc@W#aXMGl8@0-mfAPBADxKl31AR$NefNs%|=t^H`^cDv>E%{*H!UXl0S<0K}~eB z(u$Y%uHknP+#K7n)NY|^4qPh9;?Z)n?@$!1Sg8?-;I!mCX>WkrL5e3<@$sLqP6gZI zzku4iO->a$EczbN-D#L$fF?yMh^+B&NdA>c{_8id{xdrQjG>@Fni%P>x8DuV7(-i^ z?_s&m%L7#=)<|Y&;QFsXQCDx?vNE`I5KbpsF|W2DG;>*k$5-!^v4qZu%`*QjSIm*K zD+Bo^!w3>e)E|*(T{HxoB?{m5Vc#P$oY@X$W{8DF1v!Ock-m4VouVX=71Pf%N9)<< zY)|H1yFrPiOiO*Ed#Ab2iwh%0`v8rNKy4z>n0uMg>vQv4vdKDQu!jtNUEQ$Mh40NF zeYv0QCZ1UDN*}x~hgNgPi6SV=iaoX+2Fq9Fb8jFR*o$Vax74p%Wi(}dB8-5WB#yr% z{OEetan$6O6k(E--w>g}pW0R_Q9z~BiDhV0JtU^=fv_}a4y^*ekvm1^jLMjSSO5Fl zh^g0$G49~wv`b2{n= zu0IC_w(pmV^MLB&i%^IxlB?I72+_xoWwe`SDfjL_1|J+Vs`p?>2KcW)IiORF@=5@V;Bh$3gm6C zif_d(QTaZ9mRBum9c>eO%@Ccoh8Z18zEnkZ2A z(sc8?RDkMSz{)O_`RuWW4-NMy(A@)5*hx{RCzYDex6U{(MX^@45F%2Wr_#sOjAJ6! z3oBxYyKgD!<7A`dt0zg9<9E_ z2a2>I;X!M%w?US1_<;QpDq#w>x!Ki)=P%nl!}agR-QA%KKKb*g$UiQhDikf9PYdUo z$s$5(d_FLCL42|1B^?Rhml%fSd#PK7#cZ#8UYAlU2$e8$Pr@H_f^x0rqdM7+N)jfm zCJxD2dJo}fX%l(l3o#o+hFv%f-9X*tl}!=HM71?u$8pn14JR+S;}Y)EMf40}Md>s% zWav<91V`zx@IMZ^@A49BX@U6bh^56Ri|Q{>L9U01F!_q88iOCC^ST7QDK!V(FkdSK z?=)?w#aN1aDVnrG#>A*Jg+~4;`zen>3MhV|(dozDAm%J8SjqEz4Ci-rhOZ-Rp6$VZ z)(CxEG&ku+SJkMrq-zWEr&=!2@*1TU@{%!2*pNAqJ7B{dol3Y*R8^t8F=gUYjFk$N zHsJGZD@`AlQ$W`DC=V_KBIMv>%E0EL`NuGpa{7A9(&ZWHZa8DX@+=&LVXKQ-|0;{x z()klCPc7McX}Tb?p;OmI-ne_dW>F#qtySBQM+p$v`$ggwyw>9N<$B|38xMV0L7tL| z6RU6F{e1SRK2U3?6C4Wi;&iOs5J#dZxx*$e?c^`f&4d>aW8SncMLt=~75UG41Qvq4)fcrBdcae+5gF??DR_^+*zuPr zE0O|z@g;h~-EYOqFjF0Yc8vS&1y+Ss1l5>}U5c@BvOzJX^u8^9_c8Jb3BC=rL(0}h zcNPHq)*2~s4uOG5j$eMDx1G-q z)mW%crq8E4lR^1m62nN9)P~x1r2$j7nTbqXL7WKBxGV2DNjpZR&!NI;!idJ`5&hNQ z9Hs6uEB}(<`k-?G`|Qwq;j_aS1!&yo$*Vx1$PP-3tlgE_<802yVj2@YMl2Kg(;jlr z1GV(&%^aFC?w*JECU-p)8vVs~G>QS472|V&F+bttAxE|e$_=i>vSO@M_2FDdFz{KC zkYrv$p}a2=-Du2R$?POoF}eYCQ$1Yw5jnyNl7LX;bSA^U^minFm`s=%-BMz&)@xC^ zSDmyTx?_BF$LT@6Zt%40JmpLfS_xMTY``lsY;2x?UNRWW3--dt zK~*)PafmFsv|t}C!)7PY$Yw?^Kf5!jeW39|P~v-xocyJ<996P@TSx0BH~nJ1JmzWW z#v;8Y;|8u_2Uwf$P5BL8Kfn3?8NF`Re)D`wl~%$^!Ei|#nOX;1_xg;nucnAqsFIWJ ztQ-FLlv=MWvhA=a{xxVQhv)P{9?mR1II#L+O$yMFDIB6P!!)@=Y&vUQ9RqRnaaZjM zt$DJ%&a4Fev)=@{l){~;Zkg_zmER)#!Z8A%juOGr z!=SZzG^pwYT#Gdlu67}3lsWHXdlmgE^Q)}I3@&5|V7H}@MT z(0s2cWgo7UztypkL!bx$v+?YHam=mV*tBuknEinO?x%fdB=MT!LD4#sIi-K(xK=I~ znD3vwuGY_g1fwYqzX#PQVf36!vh1+GNpD}$o3wD>YylFtMW7HLmn4?DW*7i})D7$| z%oAf1!?k#%=#kZ~7;{Z~5RdP7w#MEz)b^5hY*u3=@=ezWHmEWaWm}v@bI0At2?^%b z%@?gnspP}!ZQQU0=?^L$R z6G5#G@GeUC`UGZAObk^fyLklKPlwzkO- zE2;R9+A|v_k7|j~=Gg(=nHzn}tT04A=J_svhkw)BX1P-i*MRG|d%UO+wSEDT=X=m* zM+($Mg=U!WIrTXP!AUX?JBelL9RuCdGT)dS51L8hXg}D>OWie1N7KylSm@`ET{$dj zeDFoy5LVaPF zmzvMkKAsf<3<{OmEc=&)eIT+!3w|<#slq5is=n3075=9tL%uG1lnX5?-x=zehg3;@ z;JP!N&Q;Ql_!*pztj_Ro2P?YWY8`JA33E== zOuiAhqNr%<@_=^%%qu2Kka3ybhO|njVQjX;1FxojMcsj?4CeTR{mDUN178onJo4Fj z0om@1Z){aTN_Df66cP+HZ&3R*ev#3^i;*CB!#5HyKGP2g(kxDb%6>HA z8F~Tn)9znsdVaG=^{3nohxOrcjBD4RU0zhJ+w(4J6vMP9pcmK`Yuwn(Ef5m5UR^)V zhw@$(Snq?W^Z=qLFvM_YTmX|V>)YGS5jvy6-AOFJe62Jz@+5<87yaf&My|x=tiApB zW^%#CtHT2~P9R2n#m<)@>zWWm>~_zY!@tRQotc+RkzPf@jzw6Aui*g8a`Q`B=&J%X zc)eGt7Pv_>=({Z-40L zwuEjGL&lh-F(Sn?JL$Lc$JLdx@pk$Hd&)Ojm-8)ot7AkB!Wd(9=4S1y*XZ!nbdy1) z!kesu-aQ<8+gv=OP;_<&Qa0pQYqxXvUUsNW6o`q2s;U82+6v0v`{rjC<6&#S--!BrN-BS!J zV`GNe>~~JI5AuLcam_L;7-O2H={DejX>-UDb-<81&mMH>dRB-uZ?Uy^(TjbXnCHP9{x88BwF{~3J$WVcgP#fOHz=3hB z5hKN%tGy>7M4DPHK1Blrf_VtM8X!M|mV}J8asFxx>k$$>;^k^GP#Nioieu)2^CUmX z@oufdAn^zW*w5%Xa267UVt3+pe>c^EkVd?$s*QbA?F~~;xGYyiACF`=3TX|`S_(cB zOWTzWh+@^0O*Qfgc*oAV0_{1#LPZd{Zb^(^rg}Q#P$NWaLUa`=ApsHWM#uW4R%npM zZJj1!xWK+UgMFL45La4vCNR_z=`2Q9s0R)nGchU^?2pR`JQ7C9HMiO%YCY zcjK)~JnYSY_vd|EQhj<|4e^clLyknanZ2lp`TJgrU6#YpGk z2F(}>k-ooOG;K&JNvlk`i%Z@@VOoInaa|+lXsUD?tZgk3t0S$VLlvmO( zTnjvEn}>~PqfH)9d|@=2`LTiXzLAPP-?kQz-o3+r2RxKQ5^3r;XRSJ5|Cb z|8r!x!7ruxV1k6*e8gt(lhJuF%@IVvBxWJ#3ucmN?DIljB>XSX-FvzP{6zPbQ*5*Z zaao3W@yo)$=<5UD``f*f{4^72+6uE{86VcL`FFlpf>*@&ZW;LDoQ$5eWfwL1X4XGE z9W6r0c^;M-9wA`k31>W4=@Tmlxo+#Q(f&l!?`pF-q;^`q(b^vpm^|2sd%f=j3(ESY zGhcDA@tYM%D?vw-4E7ya5FBc9ljo!fL81RNMffA@p;TY^*H2KJ5BaXV(o3h@sTEEd zh9afliYY!w`g|&Fl}+D6(f-DbO-73#jW#}@Se7(~iTClE$2UtmF4%nyhHs@AaOSL^ zkwZx`GP+s9@?~SrNO?XudPrRHp_HI|o|MY5j}}lUUYtFiPkc@E3Y_xZ?iMdhKT?Xq z*K5U6CBgr?#Y^^6nzf+cp_IwDgpLt}Q(LDEEe}l$g(8a)^*gNRQT)4$n6nc0<4_vBVORv!~Kl7*0Rtb z6xDxjj2YA`EG4TkiFk49q5FSs3^x-x!;1f3LsmjBqX`a39>ta1?oNy=CHkKOP~Bjk zZj8#wFl(oK{J(BY!lxUP@PBR$#mXg+J9`J$7Cv=Ahr3C0x8ouK6!i2B(?mk45F@h2{73?YJE*_RZP;dQGRF!vDE3wMZ9wgMyS{Is-j4YEVG` zidSma?9k47m{}Zgz`aesuJ&5CYH?OKLWr%4GKAI(my38#I zzRbISO`|TM*Th8rm=L=_Ryrh1W9$}@U9x=WY2;o*gGUMLcVd}3ZmCJs0~SOkl4opW z8_d6GjBpcCvlwHrmbSK3L+FL!FFp@xtrY)aLe~D~B-SfnAgnA}{tkc;U|ZJ?fY8K< zC1-?@LJmIfrO~c{L2V?DJykTWPZA+>gt~EDcwz_G*k2hRPoG~*WdAH9NlrFw+rhso zuFgzhDVwK7vn(`KeK>So#m3p;uPcRULK$Wd{RfQcC#+y!VF=Ro1-VLC9Lf(jZ-k-6P4x z&$}Q~YhjCZj@ftmlUyF<+kqC;jFXm`E+l`mN$}YDz{E?&!I$mL+;a&g3VNhdi#ttE znULkBi%iyl1B0Q5MYjQsj1=7x>yrZ?&Z&?JQ@a?+9s)y3q8z(x+g!i){GDy~|8X&T z=)fK&WqB~gEa^3`J|24fH28R6>om1LaIC8uA9Jldikn7Oq2eN6_+FCq&)Ji}1>ko@W=7E=&_Wa{$crk6EC_d(`jeEBBC zuv}W91!pmfy>S#=Y(3;>94z%7(apFC;QM`R%s$HxXS_CqlLup8Vee5NmtXTiP%xcH z7`GP-eG`$$%7*zdN~M$SG1a%9eRPIAu2!`8ZHVSeC4g$(3B=!qZX-2%Z@#s!T&qRh z`h2Ajq)@kC@goT_24H(MJ96C=JpWMabG)S>=(yoF1k6-YJ#_cQzESv7FjPnJv`{G( ziF|h5b{_a1BaP!Z=n&cEUShPl7Fb{<JBAIw7=P! z2f;RJe3)e9Cbl(9yy9GH8t&(<;kO>bpKU~#u>Op!sy(;pg*k85lhyJe`>+Bm`W{2r zm(mC5Kq-LBz>DxMqq9NN(uKpa2F4Qg_31cce~?p`efV_e*G_`(ClLbeJh9GjqP*_8 zG%Aiv#m$k6vSAX)Qwo;G!Ldg52%plE!8B0~yek5R7lJz5Cl9lMk4nD_IVGXP zI6ZqLX+aZuv<}H1Fr(?VF07}6(;I$rv;2v};N@_BAu=~8^4T>ugaOYw2wE`ZLaNYM ziX4)|8Q_Q55-;J@^?QV~wR`X`(&Hb_=IT3VjHIP<*;grAHpkr*`~~nUvbjr!Z;NrB zXSm+wNlhg@Qc4u1tUY^eLuRCyeYksN3ZiE{YBuQKA2Qai7l!y?_K-W9J+D}oQ^xCP z&qsvri=Dl-+I2`J{QzmV*`+p%?BG9Jr1+##?~FG2KMDbtZ-zgFIDkC>U*3Oi0Dk*zkB}#M*m(ki!F7PKnHtvLV;0-a z>yUcf+cuq+H95w9RVn)ez@ey-;yo!m$(ynxekOtKXjsv#r9&H&NGOTwq^{BTe4->_ zF75=Ao&@EjNBw>5#W%+-Hr%J?`hd0C=+K_2&#v8B_)pBSj5(XSA@=%!a6c%-}+`TLWe zO=HA!siCxAhVar-T$fFLfedVYIv&Tq0$Se?= zo83=UWem1$>^VslHu@An3@;H9IYJa=`lLop%w-i2(fB_Vres5P&7Wx>aTy-IeZLLi zaxgx~l2Cmc9x*y56?ZxX?~{c&8GPTDwZV?fG$A4cC7-e3dTO@_T^Cna>d0>Z8SF31 z@?a@FahVkWvCH{5y}yo&PLG!y2;6>Z>S>pKi5z*dQ2Y;t$@l&Cn;YH*w_3}!B4|8( zUq&qnZ|@i14uZ+j8_1-u_mdj+q|EGcP67{E@vC&pT!B^y)Mhog(^m$ZQ>RFsb z+c<~M(;@fb`2DT#J8OH`yphh6BNzE8yhy+*+Npq}^+0yU&DzLP8iIq5V5)}L^TDR z#YY)+1Fd#;J=smgAocGfHB-{)&)7muilc$i%tt3fMnt1;Hb5ty%1h$S9ws-GtU!Hi z!0dDvS5wqnf;pH%Zm`c4tG}41tidO*-^9A%>N2yP^U8v)okT3iGmM-ufL=~_Q1@BDcK;BP`IFq(PBv?wu)=7afGv7F`tlD5v-B?rqk>+7B69WeIx8ShaK(6q#wcqm zc(Phh0y+idB68;>h$TP>4dEEp%w&a#VeMMsoV@$1Hxyg`dOG3hPS1G4iHIczqmvuc(b%Hc6Y6%R zKFu5iZz%|6;>xm5b-MttJ6NGQsZN22I`3n=UV9vXu8My;E|Umz%B{FAdnZJ!6wi&R?q-<8<>62*dR>Pw@Xh znDdIKiax)EqB^Z%ppRN`Z1;)(hvEw}MG}hTpb8T&y-B}bYvECOw$54hoJV$aqyl2R zH98;R?(IJwj0!mFTYNbwcHJMAiqd|R3Ed(EVs_RR=+aLQ2HFK?#lNPgS@U7l&lIC>7Zeejuz%QN|SP3P_3@~#n%9D)>kmt0vh#VU}9_wjKvzuyggA;X~-CI?$L>0?_ z3O;J~%?e3vtAD`g2Y@Xa4!6jz9!m~>o=jeMK3{)yVc@kn7$vK$gP(#wNnc()31eL- zLomXL0o1GQZ;I3aw6eVQTByT^1K8Z`36<;HO>O%;Xomdcc)rj!XI;i~xZ$S=0yS9t zD7g(#?#Nk(g!Uk{6dwxUw$yKZA$>RG4fCifmo@>-{w@l1K+)G)$Q>^K7+Mi;LtW7=2U>oyK&eP@ws?g^TE@gQ(I@pW$>Yv5X#D9pC6p2TJv{rtvp@4i4`V=168YDyPKgo`S7m!oGr1y30C^?ndI@`EBvlfjUB4)PEfH?E zutl{^wdgbqM?3rO=yx|S!}IxH25sqQA{{SQvk8!10I+i9$@cQu_&jQ?)bnUj406xF z+eStlNK|QG8{<-ov3EhE#h4>|6;^A(f)4lAtZ!5522p6bNM*t2n0q(%<&DFOD@@4| zSxQ9pW$fKw31J>Nb=V2*?*B0zez~-bE36`LM!=)SV4PND{_?DR}mj?Dpn;g zP$cC~Ff3g${E!!K|JD{KY;v7T^zy4|<43e?Fa9VZWdq|huw{T-m5Sp&dzpVxmU1*Dpoxea+*;&PsGbR$g z);wTh5YqGfy`pb~Z+^QCq;o&dD-pd%%+|v5G}qK*Cf&u1ED_kx&hMsjOXk?NmHI`B z0%}kd*iCb6LN%-#92Yk>Q$`o}j{JYCIg1&noi5ZJzATPP-*tTjX5wh9tf ze8?iVjp_Zeem*y7ecH`cTv^e}$NkNceo_%-OJqSRzeivKj}EH%-uqt#rrHB&oARFm zlNB>PcO%DcUW0sbym|I`e$F4o`h_D*n%vl5CyaN6Srw93FVLcEU-$(jTt4)&8Dkwf zy~umH;Q(kqq?_5dk$$G4pLi5yBGj@(4FsDC{5cyvWhMw;R8FM#SF!tl2#lfAKL|{P zOy=VR@n~n*``D^NGb^WCrcOBo#$$SeEadzUz({s)1nW20lhriR=MEfqF`*g$XD4df+? zxE69OnVY%uEm5%)cb}Bh1-^_K`05Mrvk*5Lzmm+i&=slHr-fuTIEj@gqOs{=?s;sr zw~<|j+T}RrL-V3BM)rq89T88l@~R@Q$^S8BH>KV3vHD6Z?VVeq5!c&LmrdHaMl^S4 z%cUQUxqIO-uZ>szv+jjPBU<5BPrdZa!%pDF&HsU7qDWN{b*B`k#FedX7Vjx7f~Fs z>j}9{-*n1MPD)RWlks7Aq-Q8uKqT?^)o@zr^8R+VLzB-)A_E^Tdpn!|Qt*WjK~^d3 z;My*|opkB}6n+ISWBD@eck-i`!oc|#(E}Y-&^O~@IY0uw_Pg{C7bUr6E z?EoPtY3k_wTKlN#a>&L~m@r2mq6(bUlFVfoP~1&yz=V!zQAN3~$W87lXaTSNMKH$~ zkmlK&d0jT&l0_o;eHV$*$F_gU4Dj?A>;Rx98_jo6-;#ka_t`6l<6Cv4V!0TID znA^!a`O&wPAqt-FuYniobt9JnUkAy+d^!RT%u+DVWMH2?+QgRLAnM3@{s~Zxqu(E< z*lafx)hQS?SIG!I84=&nppi(j9s$R7EjQp&)X;&L&#-pDOWKny_t-rR`obTxMtNgIk?gqgx588h9RWqd3nr1lR2WAw$g&xAvyuc8^O zp7vh@2Jin2n1ljcv9O}-WUgYcG}~GrNU&}hMyRXPXI&3?xM?zq0+kS5j$R(eD9JAc z0dFsY&@!IaxsSh*Xg3=@!wvdWU<&_HU{JRpi2FxVvwd8M8na-c`baR&@57SV2(L zePA_U6Thgt9RXD2!RGz*v|4EJ3WgU0qtEAsUW~1sR@f^GKF**AdV6b*uU+3OSum{5 z7zG-IeN`wktf?|%%g-iPZURw0*K%lj_}j$!QjJ#M+AiiO=jOg!rDA|dEEK)q;K^I) zuyRFDP%gwSaw-WbPG-W$Acim`Q4&O6YlnhKtN$E_$2tchUqUKY;#QrIlb239U|BnJ zC|_Hl0x%tha>O@4Vzd@#_&Fb2y$-`hi*wH54PvSiT_J4F-!0kL=|t zN-FAj48K<74|CuJQ69<;J=^AcWaZR9=l%=n3(fgcMBx+#&x?t)@F`2Skp>tp2I>rf@pTDD~)%X z?bDHUY|SH79}4&*^oZ=je^XuFxX|wyxK6YhDUT92gS{9W|9=R~<$nlF(>%{?fjcXa zW-(;vNob#$saIxw2w}^Q{~s+4J1)EYB?!}zTj$LEyq%g&d7X5BwDIjdO^9w z6#DRF&X9C-&S30A;4@^Mx80l90`&By^b>V?X}=g^f3v51*80zFQTweJlcMY4KIF*IQ zeDR@R#HP0B9_Ve>(5!dOx7(2wKhN3#114E?7i5I3)HbbeGWZLq%KHC9z|^p!F)B^X z6bcl)wLX1k3|Ue*6RuiR&RwKz%ml^+b|T&x@~f39Ny#W>gJSheTd3HFW)3}*DvgXZ z+g}VeZJ2XAIg%!y3Q6-72Re!)f)cW11d(rD^G@%e`;}fo?1*BV83Arq#aWg`7mh41 z>tBE5*gglaw#?q4jjRsMwORPLh?U$SQlZ?ouO(FQXwOP~+&z8WTRWlN=Y2ZE6|7>jN9Y}=ckLTQBMZnAKHvxfDA`rqF6NK5H?G_h zbi8f#&JJ|H9F@|whS@aOt=#rAiW_DQ_CUZE_x?-3SV-YDT1llF&H`RbZi8VkxORUO z7A|CR2AqYsyEF-m9ZVH&_7Z#&Fm68TT5@sl5{j~;W{fdpq4@t0FnMmD1dJoq{}C_+ zdIc7~c(U9WM=w0zUfHYj2E+N1<}^#KnSM6b*S}hLEC8O8?5lXXVa;F+MQn2=3gonh z%PmPn{HTSVm@X!bMv8OHq>}~)2#eVHjs;<^D&&tSE~S|3F9k&i_fkXe4K+OuY~rLa@H}+%FMfLP`8$-jKcNGnpWaJ!4t{J^QWtJMJ(dZ zt(TFZ1M7}v@i7gDD-B?uG655oJ^*OJEu+3r0VK)twd&XVE&`>RA|KQTJ=>oTovh%nehdM1ELbRd^}ND$~l5&J685UNVmIYX>j+GY4l}THW5j zICcJ3z1K}g#8#vQGm9Wg#s1kBZU-!Bhi@{ardJ^kl=YqxrkG zZUWUB+t-~DjZ%WD{=h@D)XJL>Pw;k(ZOH}6?YRvI5y+(yWJhzUtfQK(@ujsFoW}zT ze%>A@pIo+Tz2LWTbzaAm2^$FDaGb&E8$*%O)PaO^Ryw{Zm^c1L$XJ@FRG%$dnDE0J zN#OD~D%%7p)<(fClHrg5=7AK|#(KAXZ1!&}a7F$zs4@F)^HI30BS~N19!Wm#d>`&N z(M_CbpgxNj)<>s|Z=^~#%SvtHiZ^{y4n+z5@2->n@-r}8`o7pKj}-;KIkEOkz>M@) zj|?1)gsHac?dW-`N{e03Tzz6lVLdT}HE-&VzfU#kPe6dcgPW7@l1I-(b=p{nJjZum za<0Io&LQ~)O%f+0Gu>81Kn=U=4mqJbc{) zdrC?R$205N$rZO^&=_Z%r|;iO8iv|;bTs{gYU%UF;c)@qd8{u@G{k=adgs;~=AQzL zO&Px|V8H04O!M+l-@Wy13d8C>;7U=k>V#PG+I4*(T>^4m3HsOdg)9l3Tn026nyTFJ zd}3yI?68X$eNWw+Lw~PYdi?q-fPP?E2kIvb)Z=OlMD8ZGoXg%hvJq&qj5hfra84pT zujothslKzBDkJ0dBEc@DM1p_ok|120d3iKEwP<5$G(I&Lr)m5d4^W7kPdQwaUZL<8 zHce>Cir(1BA13y-G=dEa>zt!1uw+nc&4~go-BwXBb>5E&8z+Lp!GbzH+?x@(Cx?YY zKHNYc0i)b`=SJyM$yN{7xEf#g@xK7fTDR6|-Ema0AnJymxhc7~_UaHveXhdfPxb@4 zY8(+6)#j;B|Hbo6u4UNqZruZ%5ASj`)78uA`Nq{O1i+VK1X<0#G;}6k@g}y<0cWwR zz+ER9KUvPM>`bDc3`ml$$2V$rfbLtG6znFjUhc*#rQ6D`g;8&@W-4ElM~1>#Qlg4# zbjti$QTWkA{WTMlJV6lbCP4wALs$x;6^fzdNZT6a+RvlQ=WXzQ)aJ1X9jA0WrH05i z@$4gocRI0Kw9JJvfOz$di*gQ5iE_L9@~=E!HEwZ*r~Fng_v(0;NcIHGW()oU)81KPPTg8t5ag~`2>QPJ{sPZ2j6U0GPK zUSov0DPy) zJ|V2HuMdo_hn_3G9)dunO4J=vydS!*?VL?NuN}sN3vYxpB1GPHS%vh$j=Hc2O#JX> z-}LzBk5*<-uCJDN4RA!imr-gbF30EA2PC+o{U&NQtP`$tpxZDH%x}3M=M=#L$lV7g z91pj?Dk)$7IvuN-zMLQV>Ze&OENKp*0Y{&wFfj&mVJQa?1N@i}c-lsES>%1IT!ohV zC>T$+gTDna<)BQy=-Zt_!5~ieAN3pC-R9rk6FdE?deE-lDpVMbCta#z>4SB=q2#Ev z5CC3ZLmd3tSVbCj5R$GoWs|@|VigSZ#5xu+LXBfPA|zHzV>9K) zYf5!oJ`azTpL^}1KO(`QO#+R?`Vuow*F8_Td2^dhNo= z8hy3EH8ZYLuFm+Z z&~CeR(P$p+D)80G(nGsLe1XpBgdm4ku&*2X7-P_M7ndm>x-iTu!)?$_cv@Q6#yYbb zk$4grx4t>oQd=CQ4HP*iU~>9Cb7BufUQv9`qif_AhdK=nAVmpjk#kqLq?T213|_%M|+ zvJ;zQyslI%=p%!YhWd|xfySCBU>#CPsJI8-POL%T?PV>;Qa}Y~lxfHXYNOBXEzwQF z*ggKkzc_sIFK7SbUo!4uV{46q{^ehU{^MUvE-u^S81B3@rfZGrW8v4>HD=WQuA!F! zt`UNc(mv7G;h;vl8X>91MO<)#4b#DCEz@>JLoQ#bRJD)@w1gxmoP1hwea!ZDjv}3u z)mYKP;ChKmoLSi|fU#tsCo-&@iN=~P`~Uct1tP9ptN+Kp^u*b4f+@>N!~es-=!E+l z{_X=WR-S8kqXU11PWM0h^AG${Nuo)9N^tRQvc)JNZT-;I zfSt_D&jI@gIIlCtlrVP%a;%(+Lq;ReuauwjaD+Gr3kS7LaUqD#E=^h2M4Z~&YDI05 z^@Fp+rIjA!m4MYebhqP#9zoRY70M1s);GRZG=&N3{&rC6T=YFEZG}6s?Y`+ONOIxg z#MG7s=e3A7aw(AI5uYi`4e~LeLaxg9Z9Ir6ZiYzXL!LblN~kC@WsDvyWv)#fx85eC z-e|s?ZYfbHZu|xaU&Zm~BaMZ_gzqoc{sqDWf{BtICu>IQjkf-d+?Ka=cqzCxD^jXj z--coCR)MedipWRkT2TUor^6OK6+QtN;ZFbt#_hpSVXg=HiNi<4rgfw7n^#ta9NN9*>D+2# z6Y}8@c>K`pGV@~+sDjM~1_LYi=JsCzrg|A+4!;)4S3_JpE#)J5de#LSGiw`8j7)+h zB+?psks{874)R14hH))4Qqa~&cN^t?k+*47%_v&>dMb{F0UVAE*x1wTt0=n+wNqV~ zcVQodW<@X@$&k&a5R9ouP~4;oe^Mvn(Quw6Mi$sE8%TXOesfWus9vJtFa~^psZqqm zs?$idCj{h`bw>SW`?>PYsn^1GnY_?E9+5l;L=2rxf+t48*XzCuG_06jFNYV)o|WY( zahgpj$->M6YsN~@C0a2UPGggW(i8lBVq}r&O+H$%?_`Cgyp|Kw$fj9a_FjfTZ7CtX z9}E#jy<~0BMY@Zft=5UqaX}f;x7i;shJjaRm`I8|LXY8cU1kWBB*RkZJL7RJh-GE5 zS8gV;99mg9xFx{y)RT{1jk!_BZ`uW#CWN3dmC;SaUapJBMSBBYZ`-BQp*7cw);R$S zlj(iE=Dq8fK@*cSFtN3AlL%+)sO&Z{%sVRz@q(z*w&ZJQlJG99b$(Wr2l$x9rzf-L zf!x~v@h>wVL5F=C>V@ZijgA1!VUipWSO&5C(};f5JQw?d6%yxYqZ9oJ%be|{S|@;# zzSXc2XIRP!ee(DKwk1GE%|HD&B)hrF)2R6W_!kKpZ4P;8lX(!HyFUyUe~+eowNKsrR}qUMgTtU>~2ZMLK7)Y&qvYjI5G@YTws_ zAVmc7?Y2DNwyHPGma)TJ>^dD6v7Krotl|aT#d2zxO<$KgR9~{!Fgz1dY-&p-O+?tp z)YGudN^eIaC80(5!(}y}rMJj?)X_OKX4yPsM5GpQ*>bj4Q5N4Xf2;FLK*Fi(Cu@c`REb7l~y%1-mm9WpiFQzvW{s|PL z=_-kBN-DhO5@jl5rn8n53&}5$D{}i0^ZuFo$lba~Sq9p07ctuFKp|FEb;iUbexYWM zIYu)RFZan-@K+QC3h|^dNx>`DC9;@3N5%H)kQ1a*2HFgjZ|Z?u{(P4U=nigVgN1G* zm}JeACDhBT;KxVHn;($R_86hf2`Fd9v~m&@4o}OYS=_vZRmsm5{<-2ScPK-}%!`AgLz5X{ee&fH>; zFchJi{f>esx-Gc)1Ob=UPR!=pn4r|C`|#9n%gGarhI<*|?M zK3v|DLa7J3l=WnLnHci1Xp(m5fqA48GM5khX`P^yF5az;4R>B=z_%$0A0&x>wR#== zUJE#=@JPF;z`A=NUkf!gXGcw-Zm9kDdA&}l=VhkMVtd$KcZM%f`_;GBut0Kr3>A7} ziek%i8)xrTV~E~%WrUVY5qoDbX&7*xE~J1twP)DAtm&`S>An)-#f!0V>xlM*u)I^N zr>0`IOCAOXfT04xa(0u0TQky+RZxdp=vD)ZV_OLWcwr(ePGsGXTpvd8_G8!gJPF~# z5=Ogo^bOShkd`m5uhzP;CpS=t>>o;|SUADVab@r6YH?rG^Vn24o8d{wcmyub;dWi?WDP>!EHzNvwKoJ5V!T@*gDuKk=uWUKeQD;pO?uZ7-f z!=JhBEI)F>O$-@yJ4fP7+xLSU|78DUn*<$JqcIi29f&Jn(H_UEoi*dNQyH(gdV5a{ zbu9I!l#1B|=#ni6fCTfy){AQC-kz);wC=6n_XAS<*EtO^jwv0gWnVvi8B_D~SS$P? zi?d%*w7}&2e7WG%BCO_>Cu)ghh6Z^_2MH)Gv>_kWDn>cD-N9ms!5-e1bqr0LTFuBv zd527Ul$Mw^3qc~q!1{&}+cvvZ8NRQ3UOt!5DpRT)jH6E48Q$eFafzr@Fkl*zECi?l zJG>_~1ppNH9CRCMZ%(vu%`%6?#^zNF@K}d>VDLL%>;3lVNH(%NM`U$4gXyrt6qpDZ z<|9NGUS@1d>3;p?&4yXN|0X#SiexS9DadM+d4>z4v?jk~Om2q1m^IPkacYDk?%mXU zL>eq$>VdH!4eXD@*X+>Iqv0czkFpbv+MR9wot|z#cYLenog*?{@hYIDAMM_>Ve{kBov_*SsV z%z&-H0|+-~fJ4$eIDc*>n`L1kM!^)pE*xuButqnyoT7~5mr0`Dw@v}?zgy>SK0X{j zQ)|&NSVeA+VGkF<@7B2QR+mW>?@m{LG>5J`$~J1qHO9|0WKqExjgdwRynpO{oW0x% zdu_AGskaP6I7{12Gx^+CX!8>A#KWNu6#b&QLmT7$VMIM>7|isgH?#BOsBsGmCM2KZ zQOni6_v2X}<(UV|LK+_aDZ(<4*VsG&;5~Kn3;r~V))6hfYBKhBD~5}Cijova9@6fX zq-&9VZQu;$@>qFr@45F6`p43{6 zkNkKg!E%V7Pyown%5jg3uWyqnzZj}o4}5v=tp9Ev7k1$}w{BZp#ZIbGx)on~izFbW;hQ-2Y%^>8I+Ygf!wl917D_)2uWpSLp~^>@4EGV; z{he&o0OD;|I(91SMUfieZtv>Fbo1}S>x%>LrTHwwR))FTZ|I|taRHzGT{bMXg==1J z+IU!M1GS z=Z13TDAHWHLMb$a+!8Y;*J!d>A#!dOb8Y+fJiou<_kX;f*E+-wn z)fkAd;o(0Pnz}1D$tr~Q1;Ve#_^yv7Mh-`pvnHNPvD_qaACQu##V5OZ;%SVZ54zc3 z+7?Kyp83eDqocaz1_^S!iy@(%q>F`dU*T|9iiNln-5R25@z%=RD+*i_h0_gHru5IgGnX6^b8Twa*I@kmor*sSF!UG{?$KYf<1jjb_CCJ&h%}pS<;; zi}DkJOvg2t72wUFOghE>zUmhssma&q&Q#; z#_GcJT6P5r`OH)GN9#^tnrL;Cm*_0wVe8xQ^mi^#nrWX3_PvGuy+t%v)95^Q`bx7` zE)iJJ$b+H%F#As(Q1CC_QevxKu&LAcXlKi^AKTyJbFO6-5;Oca*k)^$G9yxxK*gu5 zMB~F^IqvvU-C7h{*;QBI4PvyjXVH7EUa75*(1Ech>gke28OJ_}IOLLXt3i;`JU*Jj zqXpr9B9f8cXIs(9VH*K%v1hmS!2CR#n^pf|C%XTMEkLY8ByyC;)_!IRb>j+ooG`cP zdnrc9<1jk}&-$w>&c}b;Ux6`@)wI49^0z&XU)rnc00^>ne&Zw<6Vxa6nhFOX41hum z($4zhY?*=OE!$R~StWe$ z^VenKo~`hoN*J}vB*~Z&dw(rn++rF0a02fN(a1O0HZex__eGzd)pl_85>?n$37Nl^ z(r)B&a$jQ79;8OO;U&y%xKV4-c5LcWkUV0|60a===)x#rArIP>hae@3K&(7ZVr!DL zqQ%>&1SP-lp!u^kLh6>(f$W6|$Gy6W+}h8D_iWk8=Xi{xCYoPUOrQItVdr301V%HFyHVuzGU>x2M9g#AWt3m5z0P5RM#A|qdhu;oKtJ_Q$% zzN4^k;VIYqOE>j3+bBoD7nVrU3x0WBtY(~w7+w(DQ#_<4vsrL680%BGIJ#*)iiFY@TLSIiRH*j)}~ZLR!Hv(2BH|1(q0{IN`Y0_mO%ZvLp?H zy=Chn^iVLz!A9}~L?{jz_B=~t2X}eCI)%Ib9z+4F$>!v!I@W~L^_r2YhEPiF` z(Qx3_UYtrcENRBZgZPzht)aP;M7D)WiVW0&j>-pytFm4ODD>l;jQv{ESTbLC6?R5}a5lqOY3 zv05JMk<^h^=7M}5Ek7Bu9Ag1!{J#)d44CMPzoXh{vIz?we9Z-D-I8iPNXf&#TGg546N-;HJQv%OhK7DL2Su25hT>*LFC!L zs*V#gPtDAd`NcVZavSP>S%X!XS!U-qS&wQYe2R`yNAxU;1Ko^NKfV83i%T|@NwPjz zl9xOarvAEos}zm=bMR(HXYvL?OvKkK^j$RMBqn2d+=7;*9884?^wvt;{^@@{vK($y z)F}>l?7m0BMslZWk9?_1MEmrjCJC_$;Pc7mt+5Bxg(z&`p@ML~g2_G6>M)(yn}wGz zy^k<#CAmLKMjZ&ec`_r>#M@_FVN5z7WUA^#f0xsLvi*NDOFYqR+K?K-x@TCl*!?nK z7Q5Je7-erT9hwmLsEaOWJu3VDR49YO;quQiTPb6XdNP&}j8QYDI^uAZ`Lma?!=y5) zWsJt&6AW`towGWnV4i|l+S=+ScKc{`OMYo< z%&nbL4ZZ`S{qCk7G`i4soN0@(c*CWYyv zoki2QX72PgxmVYu-eme>nhdG^3LK~t&legax(W~2#7_H zg`7~6N1$MF{l1w05YIm0mA*DEcc*lXOXC^<#gUs{xqNk;O$rU|&T~5WX_Y8Q;s`CT zg1pU@Ru$lKYgtH;KuukFXdwqN2P8$$4I4{~Zfcx+94L6H4E9+=6Zgy5wLkK;q=clm z(De4{{EOMs^h4kJy&BQ)C?Myo+Tet;hO+F_^t1ivZ)m*+4;YzrjG+%pFa~!S*%v;< za>;{XmaYpsFi~2}=7kB?t%dbS<$p=Y(7K7-<#+?(@(c6jX-I~yUjf(mIc`hoB|LQ^ zcqLH^ACh?AB{^aT_~Ds|DLZN3AEF_AH4Dk-{aH`7Ee-j%{E8dcyOnA5^t&NBpMy_|KoKX4@JKO}C3 zAnz`LiOviv>-CNj9@Av%-wcHms~4==a1uc5L4H{&AKR1|r(qRJvCWKlUS9nc!+h6L56>`~^UQ-mBXt#J^QAk#8wKo+^zVV?#7c z$KBKZ-1v}Lng=Lya5kWVvj2Roeb&z})5~gIs9OL2=6!nEB2A-VD<)DLA^Q3%ZOA;Wc2K8_SIZ_Sp<_^!yBDOfP%zbX-C|~$n<4v?hCstbd@kolFf_H8$S9s zbc`icn<2G6g^`D)Kg-|q z@SUi_gUV+bz{?t8RzxSULekacz$2=~`~!3E$L(qst(_GpC=aZ0C@mCNW3NMS|7tQH zG4aH3N*a;&Z=Iq$9niXZAQRr+5RH@23?H^`u6W=SYCYrGQB!AM^`7`i(k +#include +#include +#include +#include +#include +#include +#include +#include +namespace the_tree_native { +using I = std::int64_t; +struct Edge { I neighbor, cost; }; +struct Result { + std::string status = "usable"; + std::vector costs, parents, discovered, parent_discovered, settled; +}; +I signed_add(I a, I b) { + const auto sum = static_cast(a) + static_cast(b); + if (sum <= static_cast(std::numeric_limits::max())) return static_cast(sum); + return std::numeric_limits::min() + static_cast(sum - (std::uint64_t(1) << 63)); +} +template +Result search(I n, I start, const std::vector& goals, EdgeProvider&& edge_provider) { + Result r; + if (start < 0 || start >= n) { r.status = "unusable"; return r; } + r.costs.assign(n, std::numeric_limits::max()); + r.parents.assign(n, -1); + std::vector finalized(n, 0), pending(n, 0); + bool unknown_goal = false; + I remaining = 0; + for (I goal : goals) { + if (goal < 0 || goal >= n) { unknown_goal = true; continue; } + if (!pending[goal]) { pending[goal] = 1; ++remaining; } + } + r.costs[start] = 0; r.discovered.push_back(start); + std::map> frontier; + frontier[0].push_back(start); + while (!frontier.empty()) { + auto it = frontier.begin(); + const I entry_cost = it->first; + auto active = std::move(it->second); + frontier.erase(it); + std::sort(active.begin(), active.end()); + for (I current : active) { + if (finalized[current] || entry_cost != r.costs[current]) continue; + finalized[current] = 1; + r.settled.push_back(current); + if (pending[current]) { pending[current] = 0; --remaining; } + if (!remaining && !unknown_goal) return r; + for (const Edge& edge : edge_provider(current)) { + if (edge.cost <= 0) { r.status = "unusable"; return r; } + const I neighbor = edge.neighbor; + if (neighbor < 0 || neighbor >= n) { r.status = "unusable"; return r; } + const I cost = signed_add(r.costs[current], edge.cost); + if (cost < r.costs[current]) { r.status = "wrapped"; return r; } + const I known = r.costs[neighbor]; + const bool better_parent = cost == known && r.parents[neighbor] >= 0 && current < r.parents[neighbor]; + if (cost > known || (cost == known && !better_parent)) continue; + if (r.parents[neighbor] < 0) { + r.parent_discovered.push_back(neighbor); + if (neighbor != start) r.discovered.push_back(neighbor); + } + r.parents[neighbor] = current; + r.costs[neighbor] = cost; + if (finalized[neighbor]) r.settled.erase(std::remove(r.settled.begin(), r.settled.end(), neighbor), r.settled.end()); + finalized[neighbor] = 0; + frontier[cost].push_back(neighbor); + } + } + } + return r; +} +} // namespace the_tree_native diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp new file mode 100644 index 0000000..9958e17 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp @@ -0,0 +1,868 @@ +// Isolated, uncompiled bridge prototype. No production registration or integration yet. +#include "tree_core.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace godot; +using the_tree_native::I; +using the_tree_native::Edge; + +class TheTreeNumericCore : public RefCounted { + GDCLASS(TheTreeNumericCore, RefCounted) +protected: + static void _bind_methods() { + ClassDB::bind_method(D_METHOD("performance_record_sample", "owner", "metric_id", "duration_us"), &TheTreeNumericCore::performance_record_sample); + ClassDB::bind_method(D_METHOD("guest_tree_edge_rows", "path", "current", "layers", "access"), &TheTreeNumericCore::guest_tree_edge_rows); + ClassDB::bind_method(D_METHOD("search", "cells", "indices", "start_index", "goals", "edge_provider"), &TheTreeNumericCore::search); + ClassDB::bind_method(D_METHOD("search_cached", "cells", "indices", "start_index", "goals", "edge_provider"), &TheTreeNumericCore::search_cached); + ClassDB::bind_method(D_METHOD("clear_edge_cache"), &TheTreeNumericCore::clear_edge_cache); + ClassDB::bind_method(D_METHOD("nearest_guest_access", "path", "start", "goals", "fallback_target", "layers", "access", "ticks"), &TheTreeNumericCore::nearest_guest_access); + ClassDB::bind_method(D_METHOD("project_guest_candidates", "runtime", "guest_id", "open_state", "degraded_state", "movement_scale", "stair_credit", "orthogonal_cost", "ticks"), &TheTreeNumericCore::project_guest_candidates); + } +private: + // Cache belongs to this instance and one caller-owned graph workspace. + // No reuse after cells, indices, filters or edge values change: the caller + // must clear it or release this core. The original search never uses it. + std::map> cached_edges; + // Per-public-call immutable names. No static/global lifetime, cached + // object values, script dispatch result or profile; recursive calls own + // separate scopes. Destruction precedes leaving the engine call. + struct ProjectionNames { + const StringName k_ACCESS_LAYER_DENIED{"ACCESS_LAYER_DENIED",false}; + const StringName k_CONNECTOR{"CONNECTOR",false}; + const StringName k_GOAL_NOT_PASSABLE{"GOAL_NOT_PASSABLE",false}; + const StringName k_GOAL_TEMPORARILY_BLOCKED{"GOAL_TEMPORARILY_BLOCKED",false}; + const StringName k_GOAL_UNREACHABLE{"GOAL_UNREACHABLE",false}; + const StringName k_OK{"OK",false}; + const StringName k_START_NOT_PASSABLE{"START_NOT_PASSABLE",false}; + const StringName k_START_TEMPORARILY_BLOCKED{"START_TEMPORARILY_BLOCKED",false}; + const StringName k__adjacency{"_adjacency",false}; + const StringName k_cells{"cells",false}; + const StringName k_parent_indices{"parent_indices",false}; + const StringName k__build_guest_query_tree_compact{"_build_guest_query_tree_compact",false}; + const StringName k__cache_key{"_cache_key",false}; + const StringName k__cell_traffic{"_cell_traffic",false}; + const StringName k__copy_path{"_copy_path",false}; + const StringName k__diagnose_no_route_reason{"_diagnose_no_route_reason",false}; + const StringName k__find_facility_access_path{"_find_facility_access_path",false}; + const StringName k__find_path_internal{"_find_path_internal",false}; + const StringName k__guest_access_batch_can_select{"_guest_access_batch_can_select",false}; + const StringName k__guest_batch_has_permitted_layer_crossing{"_guest_batch_has_permitted_layer_crossing",false}; + const StringName k__guest_has_checked_in{"_guest_has_checked_in",false}; + const StringName k__guest_step_connector_memo{"_guest_step_connector_memo",false}; + const StringName k__guest_tree_arithmetic_wrapped{"_guest_tree_arithmetic_wrapped",false}; + const StringName k__guest_tree_reconstruct_path{"_guest_tree_reconstruct_path",false}; + const StringName k__need_relief_for_facility_tags{"_need_relief_for_facility_tags",false}; + const StringName k__passable_cells{"_passable_cells",false}; + const StringName k__path_cache{"_path_cache",false}; + const StringName k__query_batch{"_query_batch",false}; + const StringName k__route_failure{"_route_failure",false}; + const StringName k__service_category_for_tags{"_service_category_for_tags",false}; + const StringName k__sorted_name_keys{"_sorted_name_keys",false}; + const StringName k_arithmetic_wrapped{"arithmetic_wrapped",false}; + const StringName k_available_quantity{"available_quantity",false}; + const StringName k_base_quality{"base_quality",false}; + const StringName k_base_service_minutes{"base_service_minutes",false}; + const StringName k_begin_guest_path_query_batch{"begin_guest_path_query_batch",false}; + const StringName k_cache_misses{"cache_misses",false}; + const StringName k_calculate_guest_batch_path_cost{"calculate_guest_batch_path_cost",false}; + const StringName k_candidates{"candidates",false}; + const StringName k_capacity{"capacity",false}; + const StringName k_compact{"compact",false}; + const StringName k_cost{"cost",false}; + const StringName k_cost_values{"cost_values",false}; + const StringName k_costs{"costs",false}; + const StringName k_current_cell{"current_cell",false}; + const StringName k_definition_id{"definition_id",false}; + const StringName k_definition_registry{"definition_registry",false}; + const StringName k_elevators{"elevators",false}; + const StringName k_end_guest_path_query_batch{"end_guest_path_query_batch",false}; + const StringName k_entrance{"entrance",false}; + const StringName k_estimated_total_gold{"estimated_total_gold",false}; + const StringName k_expected_quality{"expected_quality",false}; + const StringName k_expected_wait{"expected_wait",false}; + const StringName k_facility_id{"facility_id",false}; + const StringName k_facility_service{"facility_service",false}; + const StringName k_facility_tags{"facility_tags",false}; + const StringName k_get_connector{"get_connector",false}; + const StringName k_get_facility{"get_facility",false}; + const StringName k_get_facility_business_price{"get_facility_business_price",false}; + const StringName k_get_guest{"get_guest",false}; + const StringName k_get_instances{"get_instances",false}; + const StringName k_get_step_connector{"get_step_connector",false}; + const StringName k_graph_revision{"graph_revision",false}; + const StringName k_group_fit{"group_fit",false}; + const StringName k_guest_service{"guest_service",false}; + const StringName k_illegal_level{"illegal_level",false}; + const StringName k_indices{"indices",false}; + const StringName k_inputs_available{"inputs_available",false}; + const StringName k_instance_id{"instance_id",false}; + const StringName k_inventory_inputs{"inventory_inputs",false}; + const StringName k_inventory_service{"inventory_service",false}; + const StringName k_is_open{"is_open",false}; + const StringName k_last_error{"last_error",false}; + const StringName k_last_no_route_reason{"last_no_route_reason",false}; + const StringName k_last_path_cost{"last_path_cost",false}; + const StringName k_local_inventory_id{"local_inventory_id",false}; + const StringName k_movement_type{"movement_type",false}; + const StringName k_need_relief{"need_relief",false}; + const StringName k_occupied_cells{"occupied_cells",false}; + const StringName k_origin{"origin",false}; + const StringName k_owns_connector{"owns_connector",false}; + const StringName k_path{"path",false}; + const StringName k_path_handle{"path_handle",false}; + const StringName k_path_query_measured{"path_query_measured",false}; + const StringName k_path_service{"path_service",false}; + const StringName k_queue_entries{"queue_entries",false}; + const StringName k_reachable{"reachable",false}; + const StringName k_ready{"ready",false}; + const StringName k_resource_path{"resource_path",false}; + const StringName k_risk_level{"risk_level",false}; + const StringName k_service_category{"service_category",false}; + const StringName k_settled{"settled",false}; + const StringName k_staff_only{"staff_only",false}; + const StringName k_start{"start",false}; + const StringName k_state{"state",false}; + const StringName k_supported{"supported",false}; + const StringName k_tags{"tags",false}; + const StringName k_tagproj_hunger{"hunger",false}; + const StringName k_tagproj_sleep{"sleep",false}; + const StringName k_tagproj_hygiene{"hygiene",false}; + const StringName k_tagproj_medical{"medical",false}; + const StringName k_tagproj_leisure{"leisure",false}; + const StringName k_tagproj_intimacy{"intimacy",false}; + const StringName k_tagproj_dining{"dining",false}; + const StringName k_tagproj_lodging{"lodging",false}; + const StringName k_tagproj_social{"social",false}; + const StringName k_tagproj_bath{"bath",false}; + const StringName k_tagproj_wellness{"wellness",false}; + const StringName k_tagproj_adult_only{"adult_only",false}; + const StringName k_tagproj_restricted_service{"restricted_service",false}; + const StringName k_tagproj_food{"food",false}; + const StringName k_tagproj_service{"service",false}; + const StringName k_target_cell{"target_cell",false}; + const StringName k_targets{"targets",false}; + const StringName k_temporary_block{"temporary_block",false}; + const StringName k_travel_minutes{"travel_minutes",false}; + const StringName k_tree{"tree",false}; + const StringName k_usable{"usable",false}; + }; +public: + // Whole builtin integer record operation. No retained sample values or time + // suppression. Unsupported data returns before any caller-owned mutation. + Dictionary performance_record_sample(Object *owner, const StringName &metric, int64_t duration) { + const StringName supported("supported",false), report_key("report",false); + Dictionary unsupported; unsupported[supported]=false; + Object *script=owner ? owner->get_script() : nullptr; + if (!script || String(script->get(StringName("resource_path",false))) != "res://scripts/core/performance_budget.gd" || metric==StringName() || duration<0) return unsupported; + const StringName samples_key("_samples",false), ordered_key("_ordered_samples",false), bytes_key("_ordered_sample_bytes",false), integer_key("_integer_window_bytes",false), totals_key("_totals",false), counts_key("_sample_counts",false), budgets_key("_budgets",false); + const Variant sv=owner->get(samples_key), ov=owner->get(ordered_key), bv=owner->get(bytes_key), iv=owner->get(integer_key), tv=owner->get(totals_key), cv=owner->get(counts_key), uv=owner->get(budgets_key), capacityv=owner->get(StringName("sample_capacity",false)); + if (sv.get_type()!=Variant::DICTIONARY || ov.get_type()!=Variant::DICTIONARY || bv.get_type()!=Variant::DICTIONARY || iv.get_type()!=Variant::DICTIONARY || tv.get_type()!=Variant::DICTIONARY || cv.get_type()!=Variant::DICTIONARY || uv.get_type()!=Variant::DICTIONARY || capacityv.get_type()!=Variant::INT) return unsupported; + Dictionary samples=sv, orders=ov, rawbytes=bv, integers=iv, totals=tv, counts=cv, budgets=uv; + if (samples.is_read_only() || orders.is_read_only() || rawbytes.is_read_only() || integers.is_read_only() || totals.is_read_only() || counts.is_read_only()) return unsupported; + const std::vector maps{samples,orders,rawbytes,integers,totals,counts,budgets}; + for (size_t i=0;i ordered; + Variant savedbytes=rawbytes.get(metric,PackedByteArray()); + bool reuse=existing && orders.has(metric) && savedbytes.get_type()==Variant::PACKED_BYTE_ARRAY && PackedByteArray(savedbytes)==before; + if (reuse) { + Variant orderv=orders[metric]; + if (orderv.get_type()!=Variant::ARRAY) return unsupported; + Array prior=orderv; + if (prior.is_read_only() || !prior.is_typed() || prior.get_typed_builtin()!=Variant::INT || prior.size()!=values.size()) return unsupported; + ordered=prior; + } else { + for (int64_t i=0;iint64_t(capacityv)) { + Variant removed=values.pop_front(); + ordered.remove_at(ordered.bsearch(removed)); + } + PackedByteArray after=UtilityFunctions::var_to_bytes(values); + rawbytes[metric]=after; integers[metric]=after; + const int64_t lifetime_total=the_tree_native::signed_add(int64_t(totalv),duration); + const int64_t lifetime_count=the_tree_native::signed_add(int64_t(countv),1); + totals[metric]=lifetime_total; counts[metric]=lifetime_count; + const int64_t average=lifetime_count>0 ? lifetime_total/lifetime_count : 0; + const int64_t maximum=ordered.is_empty() ? 0 : std::max(0,int64_t(ordered[ordered.size()-1])); + int64_t p95=0; + if (!ordered.is_empty()) { + const int64_t index=std::max(the_tree_native::signed_add(the_tree_native::signed_add(signed_product(95,ordered.size()),99)/100,-1),0); + p95=ordered[std::min(index,ordered.size()-1)]; + } + const int64_t aggregation=aggregationv, limit=limitv; + // Original default match is P95, including unknown aggregation values. + const int64_t measured=aggregation==0 ? average : (aggregation==2 ? maximum : p95); + Dictionary report; + report[StringName("metric_id",false)]=metric; + report[StringName("window_sample_count",false)]=values.size(); + report[StringName("lifetime_sample_count",false)]=lifetime_count; + report[StringName("average_us",false)]=average; + report[StringName("p95_us",false)]=p95; + report[StringName("maximum_us",false)]=maximum; + report[aggregation_key]=aggregation; + report[StringName("measured_us",false)]=measured; + report[limit_key]=limit; + report[StringName("budget_exceeded",false)]=limit>0 && measured>limit; + Dictionary result; result[supported]=true; result[report_key]=report; return result; + } + void clear_edge_cache() { cached_edges.clear(); } + Dictionary search(const Array &cells, const Dictionary &indices, I start_index, + const Dictionary &goals, const Callable &edge_provider) { + return search_impl(cells, indices, start_index, goals, edge_provider, false); + } + Dictionary search_cached(const Array &cells, const Dictionary &indices, I start_index, + const Dictionary &goals, const Callable &edge_provider) { + return search_impl(cells, indices, start_index, goals, edge_provider, true); + } + // One ordered projection, with no new persistent ownership/cache. Only + // builtin pure getters and the already guarded sole budget observer qualify. + Dictionary project_guest_candidates(Object *runtime, const StringName &guest_id, + int64_t open_state, int64_t degraded_state, int64_t movement_scale, + int64_t stair_credit, int64_t orthogonal_cost, const Callable &ticks) { + const ProjectionNames n; + Dictionary unsupported; + unsupported[n.k_supported] = false; + if (!builtin(n,runtime, "res://autoload/simulation_runtime.gd") || !ticks.is_valid()) return unsupported; + Object *path = runtime->get(n.k_path_service); + Object *elevators = runtime->get(n.k_elevators); + Object *facilities = runtime->get(n.k_facility_service); + Object *definitions = runtime->get(n.k_definition_registry); + Object *inventory = runtime->get(n.k_inventory_service); + Object *guests = runtime->get(n.k_guest_service); + if (!builtin(n,path,"res://scripts/world/path_service.gd") || + !builtin(n,elevators,"res://scripts/transport/elevator_service.gd") || + !builtin(n,facilities,"res://scripts/facility/facility_service.gd") || + !builtin(n,definitions,"res://scripts/core/definition_registry.gd") || + !builtin(n,inventory,"res://scripts/inventory/inventory_service.gd") || + !builtin(n,guests,"res://scripts/guest/guest_service.gd") || + !static_cast(runtime->call(n.k__guest_access_batch_can_select))) return unsupported; + Object *guest = guests->call(n.k_get_guest,guest_id); + Array candidates; + if (!guest) { + Dictionary result; result[n.k_supported] = true; + result[n.k_candidates] = candidates; return result; + } + if (!builtin(n,guest,"res://scripts/guest/guest_runtime.gd")) return unsupported; + const Array initial = facilities->call(n.k_get_instances); + // Preflight is read-only: default registry/get_instances have no public + // error/counter effects. Custom resources retain the original whole loop. + for (int64_t i=0;icall(n.k_get_facility,facility->get(n.k_definition_id)); + if (definition && !builtin(n,definition,"res://scripts/data/facility_definition.gd")) return unsupported; + } + Array goals; + for (int64_t i=0;iget(n.k_current_cell); + path->call(n.k_begin_guest_path_query_batch,start,goals); + const Array ordered = facilities->call(n.k_get_instances); + TypedArray layers; layers.push_back(0); layers.push_back(1); + TypedArray access_ids; + for (int64_t i=0;icall(n.k_get_facility,facility->get(n.k_definition_id)); + if (!definition) continue; + const Array tags = definition->get(n.k_tags); + if (tags.has(n.k_staff_only)) continue; + if (tags.has(n.k_entrance) && static_cast(runtime->call(n.k__guest_has_checked_in,guest))) continue; + bool has_inputs = true; + const Dictionary inputs = definition->get(n.k_inventory_inputs); + const Array items = runtime->call(n.k__sorted_name_keys,inputs); + for (int64_t j=0;jcall(n.k_available_quantity,facility->get(n.k_local_inventory_id),items[j]); + if (quantity < static_cast(inputs[items[j]])) {has_inputs=false;break;} + } + if (!has_inputs) { + Dictionary row;row[n.k_facility_id]=facility->get(n.k_instance_id); + row[n.k_inputs_available]=false;candidates.push_back(row);continue; + } + const Array destinations = facility_access_cells(n,path,facility); + Dictionary route = nearest_guest_access_impl(n,path,start,destinations,facility->get(n.k_origin),layers,access_ids,ticks); + if (static_cast(route.get(n.k_supported,false))) route.erase(n.k_supported); + else route = Dictionary(runtime->call(n.k__find_facility_access_path,start,facility)); + const Array walk = route.get(n.k_path,Array()); + const bool plain_tag_relief = builtin(n,runtime,"res://autoload/simulation_runtime.gd") && + tags.is_typed() && tags.get_typed_builtin()==Variant::STRING_NAME; + const Dictionary relief = plain_tag_relief ? builtin_tag_relief(n,tags) : + Dictionary(runtime->call(n.k__need_relief_for_facility_tags,tags)); + Dictionary row; + row[n.k_facility_id]=facility->get(n.k_instance_id); + row[n.k_facility_tags]=tags.duplicate(); + const int64_t state = facility->get(n.k_state); + row[n.k_is_open]=(state==open_state || state==degraded_state); + row[n.k_reachable]=route.get(n.k_reachable,false); + row[n.k_travel_minutes]=guest_path_minutes(n,path,elevators,walk,movement_scale,stair_credit,orthogonal_cost); + const Array queue = facility->get(n.k_queue_entries); + const int64_t capacity = facility->get(n.k_capacity); + row[n.k_expected_wait]=signed_product(queue.size(),facility->get(n.k_base_service_minutes))/std::max(capacity,1); + row[n.k_estimated_total_gold]=runtime->call(n.k_get_facility_business_price,facility); + const int64_t quality = facility->get(n.k_base_quality); + row[n.k_expected_quality]=std::max(0,std::min(quality,100)); + row[n.k_need_relief]=relief; + row[n.k_risk_level]=int64_t(0);row[n.k_illegal_level]=int64_t(0); + row[n.k_group_fit]=signed_product(std::min(capacity,4),5); + // Recheck at the original call position: preceding price/observer + // callbacks must retain a replaced/custom runtime's original call. + const bool plain_tag_category = builtin(n,runtime,"res://autoload/simulation_runtime.gd") && + tags.is_typed() && tags.get_typed_builtin()==Variant::STRING_NAME; + row[n.k_service_category]=plain_tag_category ? Variant(builtin_tag_category(n,tags)) : + runtime->call(n.k__service_category_for_tags,tags); + Dictionary handle;handle[n.k_target_cell]=route.get(n.k_target_cell,guest->get(n.k_current_cell)); + handle[n.k_graph_revision]=path->get(n.k_graph_revision); + row[n.k_path_handle]=handle;candidates.push_back(row); + } + path->call(n.k_end_guest_path_query_batch); + Dictionary result;result[n.k_supported]=true;result[n.k_candidates]=candidates;return result; + } +private: + // Direct translation of the two pure builtin tag methods. Fresh result, + // original insertion/branch order, no retained definition/tag memo. + static Dictionary builtin_tag_relief(const ProjectionNames &n,const Array &tags) { + Dictionary relief; + relief[n.k_tagproj_hunger]=int64_t(0);relief[n.k_tagproj_sleep]=int64_t(0); + relief[n.k_tagproj_hygiene]=int64_t(0);relief[n.k_tagproj_medical]=int64_t(0); + relief[n.k_tagproj_leisure]=int64_t(0);relief[n.k_tagproj_intimacy]=int64_t(0); + if(tags.has(n.k_tagproj_dining)) {relief[n.k_tagproj_hunger]=int64_t(80);relief[n.k_tagproj_leisure]=int64_t(10);} + if(tags.has(n.k_tagproj_lodging)) {relief[n.k_tagproj_sleep]=int64_t(90);relief[n.k_tagproj_hygiene]=std::max(int64_t(relief[n.k_tagproj_hygiene]),10);} + if(tags.has(n.k_tagproj_social)||tags.has(n.k_tagproj_leisure)) relief[n.k_tagproj_leisure]=std::max(int64_t(relief[n.k_tagproj_leisure]),40); + if(tags.has(n.k_tagproj_hygiene)||tags.has(n.k_tagproj_bath)) relief[n.k_tagproj_hygiene]=std::max(int64_t(relief[n.k_tagproj_hygiene]),80); + if(tags.has(n.k_tagproj_medical)) relief[n.k_tagproj_medical]=int64_t(90); + else if(tags.has(n.k_tagproj_wellness)) relief[n.k_tagproj_medical]=std::max(int64_t(relief[n.k_tagproj_medical]),20); + if(tags.has(n.k_tagproj_adult_only)||tags.has(n.k_tagproj_restricted_service)) relief[n.k_tagproj_intimacy]=int64_t(80); + return relief; + } + static StringName builtin_tag_category(const ProjectionNames &n,const Array &tags) { + if(tags.has(n.k_tagproj_dining))return n.k_tagproj_food; + if(tags.has(n.k_tagproj_lodging))return n.k_tagproj_lodging; + if(tags.has(n.k_tagproj_social))return n.k_tagproj_leisure; + return n.k_tagproj_service; + } + static bool builtin(const ProjectionNames &n,Object *object,const char *resource) { + if (!object) return false;Object *script=object->get_script(); + return script && String(script->get(n.k_resource_path))==resource; + } + // Exact builtin cache-key spelling. No normalized/reordered profile and no + // persistent cache; String lengths count Unicode codepoints as GDScript does. + static String cache_key_suffix(const ProjectionNames &n,Object *path, const TypedArray &layers, + const TypedArray &access) { + String layer_text, access_text; + for (int64_t i=0; i(layers[i])); + } + for (int64_t i=0; i(access[i])); + access_text += String::num_int64(value.length()) + ":" + value; + } + return String("|L:") + layer_text + "|A:" + access_text + "|R:" + + String::num_int64(static_cast(path->get(n.k_graph_revision))); + } + static String cache_key_with_suffix(const Vector3i &start, const Vector3i &goal, + const String &suffix) { + return String::num_int64(start.x) + "," + String::num_int64(start.y) + "," + + String::num_int64(start.z) + ">" + String::num_int64(goal.x) + "," + + String::num_int64(goal.y) + "," + String::num_int64(goal.z) + suffix; + } + static int64_t signed_product(int64_t a,int64_t b) { + const uint64_t product=static_cast(a)*static_cast(b); + if (product<=static_cast(std::numeric_limits::max())) return static_cast(product); + return std::numeric_limits::min()+static_cast(product-(uint64_t(1)<<63)); + } + static Array facility_access_cells(const ProjectionNames &n,Object *path,Object *facility) { + const Dictionary passable=path->get(n.k__passable_cells); + Array occupied=Array(facility->get(n.k_occupied_cells)).duplicate(); + if (occupied.is_empty()) occupied.push_back(facility->get(n.k_origin)); + Dictionary unique; + for (int64_t i=0;iget(n.k_origin);if(passable.has(origin)) unique[origin]=true; + const Array keys=unique.keys();std::vector sorted;sorted.reserve(keys.size()); + for (int64_t i=0;iget(n.k__guest_step_connector_memo); + // Route-local only. Reuse an ownership result only after an actual + // BOOL return and a typed cached step; no script callback occurs on a + // repeated typed memo hit. A miss/conversion/custom script keeps calls. + const bool builtin_pair = builtin(n,path,"res://scripts/world/path_service.gd") && + builtin(n,elevators,"res://scripts/transport/elevator_service.gd"); + bool ownership_valid = false; + bool ownership_value = false; + StringName ownership_connector; + for(int64_t i=1;i access;connector=path->call(n.k_get_step_connector,from,to,access);} + bool special; + if (builtin_pair && typed_memo_hit && ownership_valid && connector == ownership_connector) { + special = ownership_value; + } else { + const Variant owned = elevators->call(n.k_owns_connector,connector); + special = static_cast(owned); + ownership_valid = builtin_pair && typed_memo_hit && owned.get_type() == Variant::BOOL; + ownership_value = special; + ownership_connector = connector; + } + if(!special && String(connector).begins_with("infra.connector:") && from.x==to.x && from.z==to.z && + std::abs(int64_t(from.y)-int64_t(to.y))==1) { + const Dictionary detail=path->call(n.k_get_connector,connector); + special=detail.get(n.k_movement_type,StringName())==Variant(n.k_CONNECTOR) && + static_cast(detail.get(n.k_cost,int64_t(0)))==150 && stair_credit>movement_scale; + } + if(special) { + const int64_t cost=path->call(n.k_calculate_guest_batch_path_cost,route[0],route[route.size()-1],route); + return static_cast(std::ceil(static_cast(cost)/static_cast(orthogonal_cost))); + } + } + return std::max(route.size()-1,0); + } +public: + + // Stateless translation of the builtin nearest access query. The caller + // supplies the existing typed default profile and the real Time callable. + // Public cache publication, failure diagnostics and fallback stay ordered. + Dictionary nearest_guest_access(Object *path, const Vector3i &start, + const Array &goals, const Vector3i &fallback_target, + const TypedArray &layers, const TypedArray &access, + const Callable &ticks) { + const ProjectionNames n; + return nearest_guest_access_impl(n,path,start,goals,fallback_target,layers,access,ticks); + } +private: + Dictionary nearest_guest_access_impl(const ProjectionNames &n,Object *path, const Vector3i &start, + const Array &goals, const Vector3i &fallback_target, + const TypedArray &layers, const TypedArray &access, + const Callable &ticks) { + Dictionary unsupported; + unsupported[n.k_supported] = false; + if (!path || !ticks.is_valid() || goals.is_empty()) return unsupported; + Object *script = path->get_script(); + if (!script || String(script->get(n.k_resource_path)) != "res://scripts/world/path_service.gd") return unsupported; + Dictionary batch = path->get(n.k__query_batch); + if (batch.is_empty() || start != static_cast(batch[n.k_start])) return unsupported; + const Dictionary passable = path->get(n.k__passable_cells); + if (!passable.has(start) || blocked(n,path, start) || !layers.has(start.z)) return unsupported; + const Dictionary targets = batch[n.k_targets]; + Dictionary cache = path->get(n.k__path_cache); + // Exact builtin validation loop has no callback before ticks.call(). + // Build the unchanged profile/revision suffix lazily at the first key. + String key_suffix; + bool key_suffix_ready = false; + for (int64_t j = 0; j < goals.size(); ++j) { + if (goals[j].get_type() != Variant::VECTOR3I) return unsupported; + const Vector3i cell = goals[j]; + if (!targets.has(cell)) { + const bool searchable = passable.has(cell) && layers.has(cell.z) && !blocked(n,path, cell); + if (searchable && (start.z == cell.z || static_cast(path->call(n.k__guest_batch_has_permitted_layer_crossing, start, cell, layers, access)))) return unsupported; + } + if (!key_suffix_ready) { + key_suffix = cache_key_suffix(n,path, layers, access); + key_suffix_ready = true; + } + const String key = cache_key_with_suffix(start, cell, key_suffix); + if (cache.has(key)) return unsupported; + } + const int64_t started = ticks.call(); + if (!static_cast(batch[n.k_ready])) { + batch[n.k_tree] = path->call(n.k__build_guest_query_tree_compact, start, targets, layers, access); + batch[n.k_arithmetic_wrapped] = path->get(n.k__guest_tree_arithmetic_wrapped); + batch[n.k_ready] = true; + } + const Dictionary tree = batch[n.k_tree]; + if (!static_cast(tree.get(n.k_usable, false)) || static_cast(batch.get(n.k_arithmetic_wrapped, false))) return unsupported; + Vector3i best_cell = fallback_target; + bool found = false; + int64_t best_cost = 0; + const Dictionary settled = tree[n.k_settled]; + for (int64_t j = 0; j < goals.size(); ++j) { + const Vector3i cell = goals[j]; + if (!targets.has(cell) || !settled.has(cell)) continue; + if (!tree_has_cost(n,tree, cell)) return unsupported; + const int64_t cost = tree_cost(n,tree, cell); + if (!found || cost < best_cost) { + found = true; + best_cost = cost; + best_cell = cell; + } + } + TypedArray best_path; + if (found) { + best_path = resolve_ready_guest_point(n,path, start, best_cell, tree, layers, access); + if (best_path.is_empty()) return unsupported; + } + if (!goals.is_empty() && (!found || goals[goals.size() - 1] != Variant(best_cell))) { + resolve_ready_guest_point(n,path, start, goals[goals.size() - 1], tree, layers, access); + } + const int64_t elapsed = the_tree_native::signed_add(static_cast(ticks.call()), the_tree_native::signed_add(~started, 1)); + path->emit_signal(n.k_path_query_measured, std::max(elapsed, 0)); + Dictionary result; + result[n.k_supported] = true; + result[n.k_reachable] = found; + result[n.k_path] = best_path; + result[n.k_target_cell] = best_cell; + return result; + } +private: + static bool blocked(const ProjectionNames &n,Object *path, const Vector3i &cell) { + const Dictionary traffic_map = path->get(n.k__cell_traffic); + const Dictionary traffic = traffic_map.get(cell, Dictionary()); + return !traffic.is_empty() && static_cast(traffic[n.k_temporary_block]); + } + static bool tree_has_cost(const ProjectionNames &n,const Dictionary &tree, const Vector3i &cell) { + if (!static_cast(tree.get(n.k_compact, false))) { + const Dictionary values = tree[n.k_costs]; + return values.has(cell); + } + const Dictionary indices = tree[n.k_indices]; + if (!indices.has(cell)) return false; + const int64_t index = indices[cell]; + const PackedInt64Array values = tree[n.k_cost_values]; + return index >= 0 && index < values.size(); + } + static int64_t tree_cost(const ProjectionNames &n,const Dictionary &tree, const Vector3i &cell) { + if (!static_cast(tree.get(n.k_compact, false))) { + const Dictionary values = tree[n.k_costs]; + return static_cast(values[cell]); + } + const Dictionary indices = tree[n.k_indices]; + const PackedInt64Array values = tree[n.k_cost_values]; + return values[static_cast(indices[cell])]; + } + static TypedArray resolve_ready_guest_point(const ProjectionNames &n,Object *path, + const Vector3i &start, const Vector3i &goal, const Dictionary &tree, + const TypedArray &layers, const TypedArray &access) { + const Dictionary passable = path->get(n.k__passable_cells); + if (!passable.has(start)) return path->call(n.k__route_failure, n.k_START_NOT_PASSABLE); + if (!passable.has(goal)) return path->call(n.k__route_failure, n.k_GOAL_NOT_PASSABLE); + if (!layers.has(start.z) || !layers.has(goal.z)) return path->call(n.k__route_failure, n.k_ACCESS_LAYER_DENIED); + if (blocked(n,path, start)) return path->call(n.k__route_failure, n.k_START_TEMPORARILY_BLOCKED); + if (blocked(n,path, goal)) return path->call(n.k__route_failure, n.k_GOAL_TEMPORARILY_BLOCKED); + // ticks/tree callbacks may have changed the script or revision. Recheck + // at this original call position and never reuse the pre-tick suffix. + const String key = builtin(n,path,"res://scripts/world/path_service.gd") ? + cache_key_with_suffix(start, goal, cache_key_suffix(n,path, layers, access)) : + String(path->call(n.k__cache_key, start, goal, layers, access)); + Dictionary cache = path->get(n.k__path_cache); + const Dictionary batch = path->get(n.k__query_batch); + const Dictionary targets = batch[n.k_targets]; + if (cache.has(key) || !targets.has(goal)) return path->call(n.k__find_path_internal, start, goal); + path->set(n.k_cache_misses, the_tree_native::signed_add(static_cast(path->get(n.k_cache_misses)), 1)); + if (start.z != goal.z && !static_cast(path->call(n.k__guest_batch_has_permitted_layer_crossing, start, goal, layers, access))) return path->call(n.k__route_failure, n.k_GOAL_UNREACHABLE); + TypedArray route; + const Dictionary settled = tree[n.k_settled]; + if (start == goal) route.push_back(start); + else if (settled.has(goal)) { + if (!reconstruct_builtin_compact_route(n,path,tree,goal,route)) + route = Array(path->call(n.k__guest_tree_reconstruct_path, tree, goal)); + } + if (route.is_empty()) return path->call(n.k__route_failure, path->call(n.k__diagnose_no_route_reason, start, goal, layers, access)); + // Fresh Array storage with copy-on-write value backing, matching the + // original typed _copy_path result. Recheck script at this call position. + cache[key] = builtin(n,path,"res://scripts/world/path_service.gd") && + route.is_typed() && route.get_typed_builtin()==Variant::VECTOR3I ? + Variant(route.duplicate(false)) : Variant(path->call(n.k__copy_path,route)); + path->set(n.k_last_no_route_reason, n.k_OK); + path->set(n.k_last_path_cost, tree_cost(n,tree, goal)); + path->set(n.k_last_error, String("")); + return route; + } + // Translate only the builtin compact parent walk. Preflight reads have no + // callback or public writes. Unsupported shapes retain original dispatch at + // the original position; all temporary ownership is confined to this call. + static bool reconstruct_builtin_compact_route(const ProjectionNames &n,Object *path, + const Dictionary &tree,const Vector3i &goal,TypedArray &output) { + if (!builtin(n,path,"res://scripts/world/path_service.gd")) return false; + const Variant compact=tree.get(n.k_compact,Variant()); + if (compact.get_type()!=Variant::BOOL || !static_cast(compact)) return false; + const Variant raw_indices=tree.get(n.k_indices,Variant()); + const Variant raw_cells=tree.get(n.k_cells,Variant()); + const Variant raw_parents=tree.get(n.k_parent_indices,Variant()); + const Variant raw_adjacency=path->get(n.k__adjacency); + if (raw_indices.get_type()!=Variant::DICTIONARY || raw_cells.get_type()!=Variant::ARRAY || + raw_parents.get_type()!=Variant::PACKED_INT64_ARRAY || raw_adjacency.get_type()!=Variant::DICTIONARY) return false; + const Dictionary indices=raw_indices; + if (!indices.has(goal) || indices[goal].get_type()!=Variant::INT) return false; + const Array cells=raw_cells; + const PackedInt64Array parents=raw_parents; + const Dictionary adjacency=raw_adjacency; + const int64_t maximum_length=adjacency.size()+int64_t(1); + int64_t current=indices[goal]; + TypedArray reversed; + reversed.push_back(goal); + while (true) { + // The original evaluates parent before its maximum-length condition. + if (current<0 || current>=parents.size()) return false; + if (parents[current]<0 || reversed.size()>maximum_length) break; + current=parents[current]; + if (current<0 || current>=cells.size() || cells[current].get_type()!=Variant::VECTOR3I) return false; + reversed.push_back(cells[current]); + } + reversed.reverse(); + output=reversed; + return true; + } +public: +private: + // One existing builtin provider operation, with no new value cache. Only + // connector-free WALK rows qualify; unsupported cases call the old provider. + // All work stays private until the original final shared[current] assignment. + struct WalkEdgeNames { + const StringName resource_path{"resource_path",false}, constants_method{"get_script_constant_map",false}; + const StringName front{"FRONT",false}, back{"BACK",false}, walk{"MOVEMENT_WALK",false}; + const StringName base{"ORTHOGONAL_MOVE_COST",false}, congestion{"CONGESTION_COST_PER_EXCESS",false}; + const StringName workspace{"_guest_tree_workspace",false}, edges{"edges",false}, indices{"indices",false}; + const StringName adjacency{"_adjacency",false}, traffic{"_cell_traffic",false}, vertical{"_vertical_walk_requires_connector",false}; + const StringName to{"to",false}, connector{"connector_id",false}, access{"access_id",false}, movement{"movement_type",false}; + const StringName base_cost{"base_cost",false}, cost{"cost",false}, temporary{"temporary_block",false}; + const StringName dynamic{"dynamic_cost",false}, density{"current_density",false}, capacity{"base_capacity",false}; + const StringName provider{"_guest_tree_shared_edges",false}; + }; + struct WalkEdgeContext { + Object *path=nullptr; + int64_t front=0, back=0, base=0, congestion=0; + StringName walk; + }; + static bool walk_edge_context(const WalkEdgeNames &n,Object *path,const Array &layers, + const Array &access,WalkEdgeContext &context) { + if (!path || layers.size()!=2 || !access.is_empty() || + layers[0].get_type()!=Variant::INT || layers[1].get_type()!=Variant::INT) return false; + Object *script=path->get_script(); + if (!script || String(script->get(n.resource_path))!="res://scripts/world/path_service.gd" || + !script->has_method(n.constants_method)) return false; + const Variant value=script->call(n.constants_method); + if (value.get_type()!=Variant::DICTIONARY) return false; + const Dictionary constants=value; + for (const StringName &key : {n.front,n.back,n.base,n.congestion}) + if (constants.get(key,Variant()).get_type()!=Variant::INT) return false; + if (constants.get(n.walk,Variant()).get_type()!=Variant::STRING_NAME || + int64_t(layers[0])!=int64_t(constants[n.front]) || + int64_t(layers[1])!=int64_t(constants[n.back])) return false; + context.path=path;context.front=constants[n.front];context.back=constants[n.back]; + context.base=constants[n.base];context.congestion=constants[n.congestion];context.walk=constants[n.walk]; + return true; + } + static bool builtin_walk_edge_rows(const WalkEdgeNames &n,const WalkEdgeContext &context, + const Vector3i ¤t,Array &rows) { + if (!context.path) return false; + const Variant workspace_value=context.path->get(n.workspace); + if (workspace_value.get_type()!=Variant::DICTIONARY) return false; + const Dictionary workspace=workspace_value; + const Variant shared_value=workspace.get(n.edges,Variant()); + if (shared_value.get_type()!=Variant::DICTIONARY) return false; + Dictionary shared=shared_value; + // Original cached-row branch precedes readonly and all other state reads. + if (shared.has(current)) { + const Variant cached=shared[current]; + if (cached.get_type()!=Variant::ARRAY) return false; + rows=cached;return true; + } + if (shared.is_read_only()) return false; + const Variant indices_value=workspace.get(n.indices,Variant()), adjacency_value=context.path->get(n.adjacency); + const Variant traffic_value=context.path->get(n.traffic), vertical_value=context.path->get(n.vertical); + if (indices_value.get_type()!=Variant::DICTIONARY || adjacency_value.get_type()!=Variant::DICTIONARY || + traffic_value.get_type()!=Variant::DICTIONARY || vertical_value.get_type()!=Variant::BOOL) return false; + const Dictionary indices=indices_value, adjacency=adjacency_value, traffic=traffic_value; + const Variant raw_value=adjacency.get(current,Array()); + if (raw_value.get_type()!=Variant::ARRAY) return false; + const Array raw=raw_value;Array result; + for (int64_t i=0;i0?excess:0,context.congestion)); + } + const int64_t cost=the_tree_native::signed_add(int64_t(base),dynamic); + Array pair;pair.push_back(neighbor);pair.push_back(cost);result.push_back(pair); + // Same short circuit and first invalid prefix as the original method. + if (cost<=0 || !indices.has(neighbor)) break; + } + shared[current]=result;rows=result;return true; + } +public: + Dictionary guest_tree_edge_rows(Object *path,const Vector3i ¤t,const Array &layers,const Array &access) { + const WalkEdgeNames names;WalkEdgeContext context;Array rows; + Dictionary result;const StringName supported{"supported",false}, row_key{"rows",false}; + result[supported]=false; + if (!walk_edge_context(names,path,layers,access,context) || + !builtin_walk_edge_rows(names,context,current,rows)) return result; + result[supported]=true;result[row_key]=rows;return result; + } +private: + Dictionary search_impl(const Array &cells, const Dictionary &indices, I start_index, + const Dictionary &goals, const Callable &edge_provider, bool use_edge_cache) { + Dictionary output; + output[StringName("status")] = String("unusable"); + if (start_index < 0 || start_index >= cells.size() || !edge_provider.is_valid()) return output; + try { + std::vector goal_indices; + const Array goal_keys = goals.keys(); + for (I j = 0; j < goal_keys.size(); ++j) + goal_indices.push_back(static_cast(indices.get(goal_keys[j], I(-1)))); + Array arguments; + arguments.resize(1); + const WalkEdgeNames walk_names;WalkEdgeContext walk_context; + if (edge_provider.get_method()==walk_names.provider && edge_provider.get_argument_count()==1 && + edge_provider.get_bound_arguments_count()==2 && edge_provider.get_unbound_arguments_count()==0) { + const Array bound=edge_provider.get_bound_arguments(); + if (bound.size()==2 && bound[0].get_type()==Variant::ARRAY && bound[1].get_type()==Variant::ARRAY) + walk_edge_context(walk_names,edge_provider.get_object(),bound[0],bound[1],walk_context); + } + // Call the original bound Godot edge method only when the search expands a node. + // Preserve its lazy cache population, filter ordering and first invalid row. + auto original_edges = [&](I current) { + arguments[0] = cells[current]; + Array fused;bool fused_supported=false; + if (cells[current].get_type()==Variant::VECTOR3I) { + const Vector3i cell=cells[current]; + fused_supported=builtin_walk_edge_rows(walk_names,walk_context,cell,fused); + } + const Variant value = fused_supported ? Variant(fused) : edge_provider.callv(arguments); + if (value.get_type() != Variant::ARRAY) return std::vector{{-1, 0}}; + const Array rows = value; + std::vector result; + result.reserve(rows.size()); + for (I j = 0; j < rows.size(); ++j) { + if (rows[j].get_type() != Variant::ARRAY) { result.push_back({-1, 0}); break; } + const Array row = rows[j]; + if (row.size() != 2 || row[1].get_type() != Variant::INT) { + result.push_back({-1, 0}); break; + } + const I cost = static_cast(row[1]); + // Nonpositive cost is rejected before requesting the neighbor index. + if (cost <= 0) { result.push_back({-1, cost}); break; } + const I neighbor = static_cast(indices.get(row[0], I(-1))); + result.push_back({neighbor, cost}); + if (neighbor < 0) break; + } + return result; + }; + auto edges = [&](I current) { + if (!use_edge_cache) return original_edges(current); + const auto found = cached_edges.find(current); + if (found != cached_edges.end()) return found->second; + // Populate only when the old algorithm expands this same node. + // Retain original provider validation and first-invalid prefix. + auto converted = original_edges(current); + cached_edges.emplace(current, converted); + return converted; + }; + const auto result = the_tree_native::search(cells.size(), start_index, goal_indices, edges); + output[StringName("status")] = String(result.status.c_str()); + if (result.status != "usable") return output; + PackedInt64Array costs, parents; + if (costs.resize(result.costs.size()) != OK || parents.resize(result.parents.size()) != OK) { + output[StringName("status")] = String("unusable"); + return output; + } + for (I j = 0; j < cells.size(); ++j) { costs.set(j, result.costs[j]); parents.set(j, result.parents[j]); } + TypedArray discovered, parent_discovered; + for (I j : result.discovered) discovered.push_back(j); + for (I j : result.parent_discovered) parent_discovered.push_back(j); + Dictionary settled; + for (I j : result.settled) settled[cells[j]] = true; + output[StringName("cost_values")] = costs; + output[StringName("parent_indices")] = parents; + output[StringName("discovered")] = discovered; + output[StringName("parent_discovered")] = parent_discovered; + output[StringName("settled")] = settled; + return output; + } catch (const std::exception &) { + output = Dictionary(); + output[StringName("status")] = String("unusable"); + return output; + } + } +}; + +void initialize_tree_numeric_core(ModuleInitializationLevel level) { + if (level == MODULE_INITIALIZATION_LEVEL_SCENE) GDREGISTER_CLASS(TheTreeNumericCore); +} +void uninitialize_tree_numeric_core(ModuleInitializationLevel) {} + +extern "C" { +GDExtensionBool GDE_EXPORT tree_numeric_core_init(GDExtensionInterfaceGetProcAddress get_proc, + GDExtensionClassLibraryPtr library, GDExtensionInitialization *initialization) { + GDExtensionBinding::InitObject init(get_proc, library, initialization); + init.register_initializer(initialize_tree_numeric_core); + init.register_terminator(uninitialize_tree_numeric_core); + init.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE); + return init.init(); +} +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-independent-review-r305.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-independent-review-r305.json new file mode 100644 index 0000000..34516af --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-independent-review-r305.json @@ -0,0 +1,763 @@ +{ + "schema": 1, + "review": "r305 native-ready-route checkpoint commit independent review", + "checkpoint_accepted": true, + "commit_supported": true, + "blockers": [], + "evidence_sha256": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "bytes": 26171, + "sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "bytes": 26171, + "sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz", + "bytes": 137740, + "sha256": "810bb03f13faeb336f97e9ab31e96769d2a44dd98327996ed088c6ceac290f4e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json", + "bytes": 658203, + "sha256": "034ff3aef70b9b8f8ada839f97127f65c2705983766a064f53a5f429f01da1a1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz", + "bytes": 165211, + "sha256": "4e90f26db243b10149b2b7cb1f35a3d41f8a3f6bdcfc367691d5f303b31a88e3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "bytes": 9355, + "sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "bytes": 9355, + "sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz", + "bytes": 165347, + "sha256": "22d37f665b3d01c48b13f2d67f6cbf3a6ca04c93b3696e7697a65bae0a273393" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz", + "bytes": 229318, + "sha256": "c5688c125ee132d4a6d0aa264d5076dcc5a70fd954c1bb8634c67bfe3994dc06" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "bytes": 15532, + "sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "bytes": 15532, + "sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + "/private/tmp/thetree-prepare-ready-route-build-r303.py": { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py": { + "path": "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py": { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + "/private/tmp/thetree-prepare-ready-route-local-r304.py": { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + "/private/tmp/thetree-prepare-ready-route-r302.py": { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md", + "bytes": 2458, + "sha256": "2ccc2fe02682b8bcefa53a37061f25aabd4392848af519ef0b0caa5d343d3b5a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json", + "bytes": 40627, + "sha256": "2a8614a1525477c6b20018e92d3ceccaa73ed502a157c8812282e98d346cd80e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json", + "bytes": 38167, + "sha256": "0aefd18bc6d12b9f50dae3faf7d53f7120c384906708bab519a506e8432a5dd6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "verification": { + "manifest_entries": 66, + "all_original_full_bytes_and_sha_equal": true, + "gzip_full_raw_restoration_count": 4, + "manifest_all_new_files_covered": true, + "files_in_checkpoint": 68, + "stored_copy_bytes": 1186743, + "original_copy_bytes": 3640117, + "parent_gdignore_empty": true, + "current_canonical_revision": "r301", + "formal_added": 0, + "counts": { + "packages": 30, + "units": 88, + "completed": 9, + "in_progress": 19, + "planned": 60 + }, + "partial_credit": false, + "all_original17_unaccepted": true, + "Windows_only_blocked_ids": [ + "C08", + "X8" + ], + "manual_deferred_not_waived": true, + "accepted_static302_host303_local304r02_distinct": true, + "rejected304_unexecuted_preserved": true, + "preapproved305_unexecuted_at_review": true + }, + "accepted_scope": "Content-preserving commit checkpoint only. README/manifest accurately retain r302 source-only static, r303 actual host, r304 unexecuted refusal/r304-r02 finite local252/0 and r305 preapproved but not executed. No canonical ledger, production source, binary adoption or formal acceptance changes.", + "limits": [ + "Current candidate302/library303 unadopted; retained implementation parent274/library275 unchanged.", + "Local15 may use new native Path transitive calls; direct8 original-nearest comparison and listed physical readonly/cache-copy assertions remain finite.", + "No new whole647 evidence for302, performance benefit/stable gain/50ms/P95/D10/final172/normal OS/Windows/general reentry/invalid shapes/midcall script change or unit completion acceptance.", + "SDK/engine/stage/object/library remain external immutable references; checkpoint is not a standalone runnable package.", + "Future305 adjacent pair can provide only finite equality/timing observation, not stable performance or adoption by itself." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "codec_redecode": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-root-verification-r305.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-root-verification-r305.json new file mode 100644 index 0000000..a98f8c4 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-checkpoint-root-verification-r305.json @@ -0,0 +1,713 @@ +{ + "passed": true, + "review_sha256": "c3971182104d6c304af23ca9613277d637fbad15bb0ee74366e8f174f766048f", + "verified_entries": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-independent-review-r303.json", + "bytes": 26409, + "sha256": "efa795e289f95aa78e507007615884f53f6f661ab72554490b55c8de524d1af3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preexecution-root-verification-r303.json", + "bytes": 15934, + "sha256": "663118f678a57086846c172bea33a10cb8e943e2de1d6546f9ee47e183b0be37" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-preview-r303.json", + "bytes": 3085, + "sha256": "3e77e3b73fddfe1a520940707ba941db55b121dd543dbac03afe10c8b48ddfd5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303.py", + "bytes": 16465, + "sha256": "194020907a9fab891b01bec6b55a8a3645078c71879f9588de43e585838ec297" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "bytes": 26171, + "sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json", + "bytes": 26171, + "sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-independent-review-r302.json", + "bytes": 11389, + "sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-static-root-verification-r302.json", + "bytes": 5118, + "sha256": "67db97cbdca1dbd663c4cfaaafb04a0def112d1417cafc98ff946fbc779dc59b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/ended.json", + "bytes": 1845, + "sha256": "370c6b6d432225979111945ed2f9f9d40c120c5551b9108d16990321596980d3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/started.json", + "bytes": 2944, + "sha256": "8e6834d088396d9575765bd131f854460b40defd8ca7332328bb4a30b05c8d39" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/compile-062-phase.json", + "bytes": 621, + "sha256": "0690f5bac45d8d8c82fa1bfe39440d218e0a31a6e7d26f7f2d31360b63d66056" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/input.json.gz", + "bytes": 137740, + "sha256": "810bb03f13faeb336f97e9ab31e96769d2a44dd98327996ed088c6ceac290f4e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/input.json", + "bytes": 658203, + "sha256": "034ff3aef70b9b8f8ada839f97127f65c2705983766a064f53a5f429f01da1a1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/ended.json", + "bytes": 1339, + "sha256": "641e3e8a4dc2d13fc4fbed5f50d7ae7615f5ce9682d2f4eb2abf285a051e2767" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/started.json", + "bytes": 2030, + "sha256": "5076e31b509e64e37ec08a28337647170e31be5dd5cf0613edd2a9b08bccb833" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link/stdout.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/link-phase.json", + "bytes": 614, + "sha256": "1ffd3c3a655d75f8ae4bad908d70c32fa2cc9f9720aa58156b610a61efe508c6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz", + "bytes": 165211, + "sha256": "4e90f26db243b10149b2b7cb1f35a3d41f8a3f6bdcfc367691d5f303b31a88e3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "bytes": 9355, + "sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/preexecution-root-verification.json", + "bytes": 9355, + "sha256": "e500e883c7da60307fddf77f861dc75916cd0dd009048bb795cdf569d8ef037d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz", + "bytes": 165347, + "sha256": "22d37f665b3d01c48b13f2d67f6cbf3a6ca04c93b3696e7697a65bae0a273393" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz", + "bytes": 229318, + "sha256": "c5688c125ee132d4a6d0aa264d5076dcc5a70fd954c1bb8634c67bfe3994dc06" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "bytes": 15532, + "sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json", + "bytes": 15532, + "sha256": "82736532d59d3d1edaf93f806cef1ed1213b1feec4fd2e24bba06d741589ad0e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-build-r303.py", + "bytes": 2388, + "sha256": "24ac85648c2b569ff99827bb384333ef4f43f2d26953411bbc5593b875712294" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/authors/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/README.md", + "bytes": 2458, + "sha256": "2ccc2fe02682b8bcefa53a37061f25aabd4392848af519ef0b0caa5d343d3b5a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/manifest.json", + "bytes": 40627, + "sha256": "2a8614a1525477c6b20018e92d3ceccaa73ed502a157c8812282e98d346cd80e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/checkpoints/.gdignore", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-actual-independent-review-r301.json", + "bytes": 38167, + "sha256": "0aefd18bc6d12b9f50dae3faf7d53f7120c384906708bab519a506e8432a5dd6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json new file mode 100644 index 0000000..86c1978 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json @@ -0,0 +1,311 @@ +{ + "schema": 1, + "review": "r305 bounded original impact and whole-pair preexecution independent review", + "execution_allowed": true, + "blockers": [], + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/tests/s6/test_performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/tests/s6/test_performance_budget.gd", + "bytes": 3968, + "sha256": "1ae5490637d73b519bf9ed0e00bda0e034d5ea0e589493bcf8886e4d1ff63689" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/game_clock.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/game_clock.gd", + "bytes": 841, + "sha256": "39400634a57ccbf8c584b54a15a259048a95da90b1528330151e45667d65f7f7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-r253-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-r253-r02/input.json", + "bytes": 1205935, + "sha256": "b116fd3e0dbad6b84594486dfaa531845e549482493a76dd7333a95dc760453b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json", + "bytes": 37005, + "sha256": "f4c2b2c17da88ddf1f4f65bc2aacb53d5e5f062447df46e61bf724f7f3200d3c" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-r262/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-r262/input.json", + "bytes": 972136, + "sha256": "c8e7282ea7125c97eb8f8abe2914e7ecae28d76b368a042855a0ee11ccae68ba" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json", + "bytes": 37515, + "sha256": "530a10149df9138948f037937fda669f7f8d3b420a70260b4ecb5c4f96298782" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib": { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib": { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py": { + "path": "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/whole.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/whole.gd", + "bytes": 4455, + "sha256": "8af18e506a8cf859103c9d2a79f0d31f4d65f9f5d022f2848bbbb4ead21b9fc4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281.py", + "bytes": 7665, + "sha256": "a2f907ff0b3abbefb9df0011d4304bc64169969bbf8324fdb04467c604f00d38" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/input.json", + "bytes": 975133, + "sha256": "cab7c33fad7f013628756bb968d78e0da57d712de3474c31287f4e93f91a21ad" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-independent-review-r280.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-independent-review-r280.json", + "bytes": 15586, + "sha256": "c25202cb2b17e74b7c097572b61c8d60f76e9b26074c637de116b29c48faf118" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-root-verification-r280.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-root-verification-r280.json", + "bytes": 7214, + "sha256": "7928ab71bf6ec7a03762b1ac1705557e7b9729880cec5df043937b266bb2ecdd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "archival_before_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + } + }, + "verification": { + "driver_full_inverse_to_accepted281": true, + "QA_full_inverse_labels_comments_only_to281": true, + "original_S6_body_unchanged": true, + "expected_s6": 24, + "expected_whole_each": 15, + "whole_basis": "13 QA assertions +1 exclusive typed check +1 wrapper registration", + "serial_owned_engine_count": 3, + "cold646_paused_speed1_unchanged": true, + "original_whole_oracle_bytes": 11487732, + "library_configs_exact_existing275_and303": true, + "original_path_guest_runtime_unchanged": true, + "Budget257_same_all_phases": true, + "patched_inventory_only_budget": true, + "shared_parent_original_file_count": 1299, + "source_default_support_doc301_fresh": true, + "free_bytes_at_review": 1229123584, + "floor_bytes": 536870912, + "postphase_output_bytes_limit": 16777216, + "watchdog_each_seconds": 90 + }, + "allowed_scope": "One original S6/GameClock impact on exact302/library303. Only on pass, one adjacent fresh baseline274/library275 then candidate302/library303 cold646 whole647 pair. Full original oracle byte equality, strict/private/owned guards mandatory. Budget257/project transient only, restore after actual owned termination; no copies/clones/compiles/local rerun/full172.", + "limits": [ + "Registration/API markers authenticate library availability, not every native helper invocation.", + "Historical host275 canonical271 pins match C276/before archival bytes and do not stand for live301. Prior281 unchanged evidence reused without re-decoding.", + "Shape/index/type conversion, midcall custom/script replacement and arbitrary reentry remain untested.", + "Single adjacent timing observation cannot establish stable speed, causal component gain, P95/D10/50ms/Main/render/normal OS/x3/Windows/adoption/unit acceptance.", + "16MiB output gate is postphase, not a live peak bound; runtime noforeign and floor gates remain mandatory." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "codec_redecode": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py new file mode 100644 index 0000000..9e95fd2 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305.py @@ -0,0 +1,63 @@ +# coding: utf-8 +from pathlib import Path +import hashlib,importlib.util,json,os,shutil,subprocess,sys,uuid +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02';O=A/'p23-02-native-ready-route-impact-whole-r305';NAMES=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +def mod(name,p): + s=importlib.util.spec_from_file_location(name,p);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def unpack(path):return subprocess.run(['/opt/homebrew/bin/zstd','-d','-q','-c',str(path)],check=True,capture_output=True,timeout=10).stdout +def main(): + r=mod('r281',R/'tools/run_all_tests.py');outer=mod('owned270',r.SUPPORT/'owned_outer.py');plan=r.read(O/'input.json');fixed=plan['pins'];assert not (O/'execution.json').exists() + source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in NAMES};assert source==plan['source_before'] and player==plan['default_before'] and docs==plan['doc4_before'] + prepath=A/'p23-02-native-ready-route-impact-whole-preexecution-independent-review-r305.json';pre=r.read(prepath);assert pre['execution_allowed'] and not pre['blockers'] + for group in ['evidence_sha256','canonical_doc4_context_pins']: + for key,q in pre[group].items(): + f=Path(q.get('path',key));assert f.stat().st_size==q['bytes'] and r.sha(f)==q['sha256'] + root=r.read(O/'preexecution-root-verification.json');assert root['passed'] and root['review_sha256']==r.sha(prepath) + assert r.read(fixed['local_review']['path'])['finite_local_equivalence_accepted'] + auditpath=A/'p23-02-native-provider-fallback-static-independent-review-r280.json';audit=r.read(auditpath);assert audit['builtin_synchronous_fallback_supported'] and not audit['blockers'] + auditroot=r.read(A/'p23-02-native-provider-fallback-static-root-verification-r280.json');assert auditroot['passed'] and auditroot['review_sha256']==r.sha(auditpath) + stage=Path(plan['stage']);parent=Path(plan['parent']);budget=stage/'scripts/core/performance_budget.gd';original=budget.read_bytes();modified=Path(fixed['modified_budget']['path']).read_bytes();public=(stage/'project.godot').read_bytes();patched=False + assert hashlib.sha256(original).hexdigest()==plan['original_budget_sha256'] + def protect(): + assert r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in NAMES}==docs and r.inventory(r.SUPPORT)==plan['support_inventory'] + assert r.inventory(parent,stage=True)==plan['expected_stage'] and r.inventory(stage,stage=True)==(plan['patched_stage'] if patched else plan['expected_stage']) + for key,q in fixed.items(): + f=Path(q['path']);assert f.stat().st_size==q['bytes'] and r.sha(f)==q['sha256'],key + protect();oracle=unpack(fixed['oracle']['path']);assert len(oracle)==11487732 and hashlib.sha256(oracle).hexdigest()=='9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f' + phases=[];samples=[];error=None;cleanup=[];cleanup_errors=[] + try: + for mode in ['s6','baseline','candidate']: + protect();assert not outer.native.helper['live_engines']() and shutil.disk_usage(A).free>=plan['capacity_floor_bytes'] + budget.write_bytes(modified);patched=True + protect();output=O/(mode+'-measurement');output.mkdir();ident=uuid.uuid4().hex;startup='TheTree-PCK-tests-'+ident+'-budget-startup';profile='TheTree-PCK-tests-'+ident+'-budget-runtime';assert not r.profile_path(startup).exists() and not r.profile_path(profile).exists() + env=r.fresh_environment(os.environ);env.update(THE_TREE_PACK_PROFILE_NAME=profile,THE_TREE_PACK_PROFILE_EXPECTED=str(r.profile_path(profile)),THE_TREE_PACK_PROFILE_REPORT=str(O/(mode+'-profile.json')),THE_TREE_RUNTIME_MONITOR_OUTPUT=str(output),THE_TREE_REPLAY_SNAPSHOT=fixed['fixture']['path'],THE_TREE_CANDIDATE_ORACLE=fixed['oracle']['path'],THE_TREE_PAIRED_CANDIDATE=mode,THE_TREE_PAIRED_SAMPLE=mode,THE_TREE_EXPECTED_BUDGET_SHA=fixed['modified_budget']['sha256'],THE_TREE_EXPECTED_PATH_SHA=fixed['original_path']['sha256']) + (stage/'project.godot').write_bytes(r.private_project(public,startup));phase=O/mode;argv=[fixed['engine']['path'],'--headless','--path',str(stage),'--script',fixed['starter_'+mode]['path'],'--verbose','--log-file',str(phase/'engine-native.log')] + result,capture=outer.run_phase(argv,phase,90,env,now_fn=r.now,dump_fn=r.write,sha_fn=r.sha,live_engines_fn=outer.native.helper['live_engines']);row=dict(mode=mode,result=result,capture=capture);phases.append(row);r.write(O/(mode+'-phase.json'),row) + rp=output/'report.json';report=r.read(rp) if rp.exists() else None + if report is not None:samples.append(report) + assert result and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + logs=''.join((phase/n).read_text() for n in ['stdout.log','stderr.log','engine-native.log']);assert 'Orphan StringName:' not in logs and 'unclaimed string names' not in logs + assert report and report['passed'] and not report['failures'] and report['pid']==result['pid'] + stdout=(phase/'stdout.log').read_text();assert stdout.count('NATIVE_ADAPTER_LIBRARY_REGISTERED')==1 + if mode=='s6':assert report['mode']==mode and report['checks']==24 and stdout.count('PASS: 24 checks')==1 + else: + assert report['candidate']==mode and report['sample']==mode and report['checks']==15 and stdout.count('SDK whole647: 15 checks, 0 failures')==1 + ref=report['after647'];raw=unpack(ref['path']);assert raw==oracle and len(raw)==ref['uncompressed_bytes'] and hashlib.sha256(raw).hexdigest()==ref['uncompressed_sha256'] + r.profile_gate(r.profile_path(profile),O/(mode+'-profile.json'),profile);assert sum(f.stat().st_size for f in O.rglob('*') if f.is_file())<=16*1048576 + (stage/'project.godot').write_bytes(public);budget.write_bytes(original);patched=False;protect() + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup,cleanup_errors=outer.finish_captured(outer.OWNED) + if all(q['engine_ended'] is True for q in cleanup):budget.write_bytes(original);patched=False;(stage/'project.godot').write_bytes(public) + else:cleanup_errors.append('Budget/project restoration refused while owned child remains live') + guard_errors=[] + try:assert not patched and budget.read_bytes()==original;protect() + except BaseException as caught:guard_errors.append(type(caught).__name__+': '+str(caught)) + pairs=[] + if len(samples)==3: + before=samples[1]['manual_tick_us'];after=samples[2]['manual_tick_us'];assert before>0 and after>=0;pairs=[dict(baseline_us=before,candidate_us=after,ratio=after/before,reduction_percent=(before-after)*100.0/before,scope='One adjacent cold paused speed1 headless observation only; no stable/P95/budget acceptance')] + passed=error is None and not guard_errors and not cleanup_errors and len(phases)==3 and len(samples)==3 + r.write(O/'execution.json',dict(passed=passed,error=error,guard_errors=guard_errors,phases=phases,samples=samples,pairs=pairs,cleanup=cleanup,cleanup_errors=cleanup_errors,shared_Budget_restored_byteexact=not patched and budget.read_bytes()==original,input_source_default_doc4_preserved=not guard_errors,candidate_adopted=False,unit_accepted=False,performance_accepted=False,limitations=['Candidate original S6/GameClock impact first; only on pass baseline/candidate whole647 equality and one finite timing pair. No stable/P95/D10/50ms/final172/Main/render/OS/realtime x3/Windows/adoption/unit acceptance.'])) + print(json.dumps(dict(passed=passed,error=error,guard_errors=guard_errors,pairs=pairs)),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd new file mode 100644 index 0000000..853ff04 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd @@ -0,0 +1,16 @@ +extends "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd" +const Guard := preload("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension") + var exact_api := false + if loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"): + var probe: Variant = ClassDB.instantiate(&"TheTreeNumericCore") + exact_api = probe != null and probe.has_method(&"guest_tree_edge_rows") == true + probe = null + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore") and exact_api, "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore") or not exact_api: quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd new file mode 100644 index 0000000..79f6f7e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd @@ -0,0 +1,16 @@ +extends "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd" +const Guard := preload("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension") + var exact_api := false + if loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"): + var probe: Variant = ClassDB.instantiate(&"TheTreeNumericCore") + exact_api = probe != null and probe.has_method(&"guest_tree_edge_rows") == true + probe = null + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore") and exact_api, "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore") or not exact_api: quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/input.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..ec77952cb8da5bd9f5627a601f26ea41033efc9a GIT binary patch literal 229318 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 z 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

6Z`h+WYtK4iIzWt2(mE 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ℑ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 literal 0 HcmV?d00001 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json new file mode 100644 index 0000000..70ca376 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/preexecution-root-verification.json @@ -0,0 +1,268 @@ +{ + "passed": true, + "review_sha256": "0e3700d6c1a1ca02fbad985c1e97c88a2502eeb01951bb48e28d3e71e76dc917", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-walk-edges-candidate-r265-r03/performance_budget.candidate.gd", + "bytes": 11250, + "sha256": "1010129d3124c3aec037c840a5766a7cdabe60c654999dfb6f23b224140a73f8" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-local-names-candidate-r239/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-whole647-native-r02/diagnostic-measurement/after647.varbytes.zst", + "bytes": 246720, + "sha256": "684ba40e9f649b7dd4bfc620185d7cd18bae3111c3b4038e48aaad5a9168d880" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/tests/s6/test_performance_budget.gd", + "bytes": 3968, + "sha256": "1ae5490637d73b519bf9ed0e00bda0e034d5ea0e589493bcf8886e4d1ff63689" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/game_clock.gd", + "bytes": 841, + "sha256": "39400634a57ccbf8c584b54a15a259048a95da90b1528330151e45667d65f7f7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-r253-r02/input.json", + "bytes": 1205935, + "sha256": "b116fd3e0dbad6b84594486dfaa531845e549482493a76dd7333a95dc760453b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cached-path-whole-pair-actual-independent-review-r253-r02.json", + "bytes": 37005, + "sha256": "f4c2b2c17da88ddf1f4f65bc2aacb53d5e5f062447df46e61bf724f7f3200d3c" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-r262/input.json", + "bytes": 972136, + "sha256": "c8e7282ea7125c97eb8f8abe2914e7ecae28d76b368a042855a0ee11ccae68ba" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-budget-impact-whole-actual-independent-review-r262.json", + "bytes": 37515, + "sha256": "530a10149df9138948f037937fda669f7f8d3b420a70260b4ecb5c4f96298782" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/private/tmp/TheTree-pure-tags-r278-r04-72046c25b9384bcf8ea8ec91123462e1/candidate.dylib", + "bytes": 367520, + "sha256": "386d579d32b5660ccc1ed50d4c59f6a772a8360c7070241886354bfcade46cc0" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-impact-whole-r305.py", + "bytes": 5761, + "sha256": "51e9a5615fb687aecfcc5efcd88475a5647e58db9e41d76b3c27f749ceb4fe0d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305.py", + "bytes": 7671, + "sha256": "ff28c27307333335b57846203a1834c10c2b004fbf5dfb2571df7ce9b7475bd4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/whole.gd", + "bytes": 4442, + "sha256": "729de52998f376ad249194d4eb3a0073e246fb9c0839d6271593b118badb46fa" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/whole.gd", + "bytes": 4455, + "sha256": "8af18e506a8cf859103c9d2a79f0d31f4d65f9f5d022f2848bbbb4ead21b9fc4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281.py", + "bytes": 7665, + "sha256": "a2f907ff0b3abbefb9df0011d4304bc64169969bbf8324fdb04467c604f00d38" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/input.json", + "bytes": 975133, + "sha256": "cab7c33fad7f013628756bb968d78e0da57d712de3474c31287f4e93f91a21ad" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-actual-independent-review-r281.json", + "bytes": 46359, + "sha256": "1876c883e898fdfb8c1c4fb84ee5950930719d0e623b3f010fad0312402166b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-impact-whole-r281/actual-root-verification.json", + "bytes": 28310, + "sha256": "1d3d3a0d804d508e7daf11551c30997b0ef048660ceaafb814fd7e07104ae292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json", + "bytes": 28290, + "sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json", + "bytes": 15302, + "sha256": "d69adddf6ec16948caf7f2e85634059a7befeac7ba8ddd48d2352b9a75c7462e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-actual-independent-review-r278-r04.json", + "bytes": 28145, + "sha256": "671f15fa542465cf6a7e88ee272a2ce67049fffcca2483205f999cfeb2075253" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/actual-root-verification.json", + "bytes": 17143, + "sha256": "00e01cce5240ebd3accddbfc88f8776ac4cd4dfa887df3b8ee319eb16c45913f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-independent-review-r280.json", + "bytes": 15586, + "sha256": "c25202cb2b17e74b7c097572b61c8d60f76e9b26074c637de116b29c48faf118" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-provider-fallback-static-root-verification-r280.json", + "bytes": 7214, + "sha256": "7928ab71bf6ec7a03762b1ac1705557e7b9729880cec5df043937b266bb2ecdd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd", + "bytes": 1514, + "sha256": "6fbefbad8edde64461b3d751e1e27104b7bb65957e17216073638442a89d41c3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/baseline-guarded.gd", + "bytes": 1445, + "sha256": "a7c3f9c4d744e49808f4b3be1e9e105dec6b7e3ede4c83627986c459d67bbb91" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/candidate-guarded.gd", + "bytes": 1448, + "sha256": "437cae63b5bebbb183fa87464770bdd7deb8b1c99a3309573c501cac92955125" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-impact-whole-r305/input.json", + "bytes": 976234, + "sha256": "0ec0212b04a1f16bbe8789976a359d62a69d68035063558a0e7e0250a381b3e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/IMPLEMENTATION_PLAN.md", + "bytes": 511898, + "sha256": "de1f65be5107f297b6737749b89f93c066beb39f223689a27be3698611fdb9bc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/PROGRESS_INTEGRATION.md", + "bytes": 429962, + "sha256": "b259f86fe8d9709cf8f943b90aabae4e2ea2457dfce82eaa51a7edf23160b66b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/work_packages.json", + "bytes": 1247101, + "sha256": "d058f5d00a98bc162ffefa362c9dce2602adf7ce4cfac0317d5d9de580e96977" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-progress-integration-candidate-r276/before/progress_snapshot.json", + "bytes": 524354, + "sha256": "99e45a9ae230926987de481123e977a9b0d49fdcc21f1e450d74fc1e2467ccc5" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd new file mode 100644 index 0000000..208f7b4 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/s6-guarded.gd @@ -0,0 +1,17 @@ +extends "res://tests/s6/test_performance_budget.gd" +const Guard := preload("/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore"): quit(96); return + var probe: Variant = ClassDB.instantiate(&"TheTreeNumericCore") + if probe == null or not probe.has_method(&"performance_record_sample") or not probe.has_method(&"guest_tree_edge_rows"): quit(96); return + probe = null + if FileAccess.get_sha256("res://scripts/core/performance_budget.gd") != OS.get_environment("THE_TREE_EXPECTED_BUDGET_SHA"): quit(98); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super._initialize() +func _run() -> void: + super._run() + var f := FileAccess.open(OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT").path_join("report.json"), FileAccess.WRITE) + if f == null: quit(98); return + f.store_string(JSON.stringify({"mode":"s6", "pid":OS.get_process_id(), "checks":_checks, "failures":_failures, "passed":_failures == 0, "original_s6_test_unchanged":true, "unit_accepted":false, "performance_accepted":false}, "\t")); f.close() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd new file mode 100644 index 0000000..49227fa --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-impact-whole-r305/whole.gd @@ -0,0 +1,38 @@ +extends "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd" +# One sample of an adjacent r274/library275 versus r302/library303 pair. Only the synchronous tick is timed. +func run() -> void: + output = OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT") + var input_path := OS.get_environment("THE_TREE_REPLAY_SNAPSHOT") + var candidate := OS.get_environment("THE_TREE_PAIRED_CANDIDATE") + if not output.is_absolute_path() or not input_path.is_absolute_path() or candidate not in ["baseline","candidate"]: quit(98); return + var original := FileAccess.get_file_as_bytes(input_path).decompress(11411840, FileAccess.COMPRESSION_ZSTD) + var initial: Dictionary = bytes_to_var(original) + runtime = root.get_node("SimulationRuntime") + clock = root.get_node("GameClock") + runtime.initialize(clock, root.get_node("GameState"), int(initial[&"systems"][&"runtime"][&"world_seed"])) + check(runtime.restore_snapshot(initial), "fixed646 public restore") + check(var_to_bytes(runtime.create_snapshot()) == original, "complete input bytes identical") + check(clock.absolute_minute == 646 and clock.paused and clock.speed == 1, "same paused646 speed1") + var path_listeners: Array = runtime.path_service.get_signal_connection_list(&"path_query_measured") + check(path_listeners.size() == 1 and path_listeners[0]["callable"] == Callable(runtime, "_on_path_query_measured") and int(path_listeners[0]["flags"]) == 0, "only builtin path listener") + check(clock.performance_budget.get_signal_connection_list(&"budget_exceeded").is_empty(), "no external budget listener") + check(clock.get_signal_connection_list(&"tick_phase_started").is_empty() and clock.get_signal_connection_list(&"tick_completed").is_empty(), "no phase or completion instrumentation") + check(runtime.path_service.cache_hits == 0 and runtime.path_service.cache_misses == 0 and runtime.path_service.cached_path_count() == 0, "same cold derived cache") + check(runtime.path_service._query_batch.is_empty() and runtime.path_service._guest_tree_workspace.is_empty() and runtime.path_service._guest_step_connector_memo.is_empty(), "same cold tree/native-edge/step workspace") + check(runtime._guest_access_batch_can_select(), "both candidates active fast guard") + check(runtime.path_service.get_script().get_source_code().sha256_text() == OS.get_environment("THE_TREE_EXPECTED_PATH_SHA") and FileAccess.get_sha256("res://scripts/core/performance_budget.gd") == OS.get_environment("THE_TREE_EXPECTED_BUDGET_SHA"), "actual loaded original Path and same candidate Budget sources") + var started := Time.get_ticks_usec() + clock.advance_minutes(1) + var elapsed := Time.get_ticks_usec() - started + check(clock.absolute_minute == 647 and clock.paused, "tick returns at paused647") + var after: Dictionary = runtime.create_snapshot() + var oracle := FileAccess.get_file_as_bytes(OS.get_environment("THE_TREE_CANDIDATE_ORACLE")).decompress(11487732, FileAccess.COMPRESSION_ZSTD) + check(var_to_bytes(after) == oracle, "complete after647 equals pinned r32 oracle") + var after_pin := typed("after647", after) + check(after_pin["uncompressed_sha256"] == "9df3c1b6f65dfd8be944cd5cab8c631f7533530dfef3820d9fa5d74a5b1ac30f", "complete output digest identical") + var report := {"plan_id":"P23-02", "candidate":candidate, "sample":OS.get_environment("THE_TREE_PAIRED_SAMPLE"), "pid":OS.get_process_id(), "manual_tick_us":elapsed, "after647":after_pin, "cache_hits":runtime.path_service.cache_hits, "cache_misses":runtime.path_service.cache_misses, "checks":checks, "failures":failures, "passed":failures.is_empty(), "unit_accepted":false, "performance_budget_accepted":false, "normal_OS_accepted":false, "Windows_accepted":false, "candidate_adopted":false, "limits":["One sample from an adjacent baseline r274/library275 versus ready-route r302/library303 pair; fixed cold restored646. Only exploratory pair observation, no stable speedup, percentile or budget acceptance.", "No Main, rendering, OS input or realtime x3. Timed interval contains builtin production callbacks; snapshot verification and compression occur after timing."]} + var file := FileAccess.open(output.path_join("report.json"), FileAccess.WRITE) + if file == null: quit(98); return + file.store_string(JSON.stringify(report, "\t")); file.close() + print("SDK whole647: %d checks, %d failures" % [checks, failures.size()]) + quit(0 if failures.is_empty() else 1) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json new file mode 100644 index 0000000..a57242a --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-actual-independent-review-r304-r02.json @@ -0,0 +1,384 @@ +{ + "schema": 1, + "review": "r304-r02 bounded actual independent local ready-route review", + "finite_local_equivalence_accepted": true, + "ready_route_equivalence_accepted": true, + "finite_exit_observation_accepted": true, + "native_load_accepted": true, + "blockers": [], + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py": { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib": { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py", + "bytes": 5438, + "sha256": "8c7077b53e28da4054bdf7dd88e82de02a51149269a8fce59bae0e74f95b4734" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "raw_details": { + "fixtures": { + "compressed": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + "raw_bytes": 10948, + "raw_sha256": "43250a2fa5c56ca73fc853f2d883dfbf23dfdc7c8ba647f191c2b1282b636e0f", + "codec": { + "nodes": 739, + "headers": { + "28": 16, + "27": 55, + "4": 75, + "1": 42, + "21": 328, + "65564": 13, + "2": 195, + "10": 13, + "65538": 2 + }, + "file_envelope_bytes": 0, + "all_bytes_roundtrip": true + }, + "cases": [ + "ordinary", + "stairs150", + "stairs149", + "foreign150", + "elevator151", + "integer_wrap", + "clamp_low", + "geometry_wrap", + "inputs_unavailable", + "staff_only", + "custom_facility", + "custom_definition", + "custom_elevator", + "custom_guest", + "path_observer" + ], + "expected_actual_ordered_typed_full_span_equal": false + }, + "ready_route_fixtures": { + "compressed": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + "raw_bytes": 3288, + "raw_sha256": "560b08669f28f79ab0eddff115d22830515420bea51e0271d71f5a569832b664", + "codec": { + "nodes": 229, + "headers": { + "28": 1, + "27": 24, + "4": 32, + "21": 64, + "1": 32, + "65564": 16, + "10": 60 + }, + "file_envelope_bytes": 0, + "all_bytes_roundtrip": true + }, + "cases": [ + "ordinary", + "goal_only", + "cycle_limit", + "negative_terminal", + "readonly_cells", + "readonly_indices", + "untyped_cells", + "noncompact" + ], + "expected_actual_ordered_typed_full_span_equal": true + } + }, + "verified": { + "checks": 252, + "failures": 0, + "original_projection_cases": 15, + "direct_original_nearest_route_cases": 8, + "PID": 59578, + "normal_exit_code": 0, + "owned_end_and_foreign_signals_zero": true, + "private_conditions": 5, + "strict_three_logs_clear": true, + "source_default_support_doc4_fresh_equal": true, + "shared_parent_original_files": 1299, + "project_original_bytes_restored": true, + "library303_copy_loaded_guard": true, + "readonly_physical_flags_and_typed_writable_cache_copy_checks_passed": true, + "bidirectional_return_cache_mutation_isolation_asserted": true + }, + "accepted_scope": "Finite exact303 ABI/load plus original15 ordered projection boundary candidates/public state and8 direct original _query_nearest_guest_access_without_native results/full Runtime+Path state/cache counters/errors/observer counts/physical readonly/typed writable distinct cache copy and reciprocal mutation isolation.", + "limits": [ + "The legacy15 original Runtime loop may itself use Path native303; these15 are not a claim that every transitive Path call is nonnative. The8 direct route oracle calls explicitly bypass native nearest.", + "Full public state, physical readonly and ownership properties are evidenced by pinned QA252 assertions and successful report; raw route fixtures store result pairs, not independent full state/readonly metadata records.", + "Native library registration and supported result do not independently count each reconstruct/copy helper native invocation.", + "Actual invalid shape/index/type-conversion and midcall custom/script replacement are not covered. General reentry/provider ownership remains open.", + "No whole647/final172/performance/stable benefit/P95/D10/50ms/OS/Windows/production adoption/unit acceptance." + ], + "candidate_adopted": false, + "performance_accepted": false, + "unit_accepted": false, + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json new file mode 100644 index 0000000..90562a9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json @@ -0,0 +1,218 @@ +{ + "schema": 1, + "review": "r304-r02 bounded repaired local preexecution independent review", + "execution_allowed": true, + "blockers": [], + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py": { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib": { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "verification": { + "original304_refusal_preserved": true, + "connector_and_active_batch_repair": true, + "default_same_layer_connector_from_zero_to_one": true, + "graph_cells_and_adjacency_keys_retained": 3, + "cycle_maximum_length": 4, + "original195_boundary_body_preserved": true, + "checks": 252, + "check_basis": "139 original +8*(2 graph setups+4 connector/batch checks+8 assertions)+1 route codec", + "route_cases": 8, + "original_boundary_cases": 15, + "fresh_library_identical_separate_inode": true, + "shared_parent_stage_file_count": 1299, + "source_default_support_current_doc_fresh": true, + "driver_inverse304_revision_only": true, + "free_bytes_at_review": 1204985856, + "capacity_floor_bytes": 553648128, + "output_postphase_max_bytes": 16777216, + "owned_engine_count": 1, + "watchdog_seconds": 90 + }, + "allowed_scope": "One owned fresh headless engine on exact binary303, original15 projection boundaries plus8 listed ready-route original-helper/typed/readonly/cache ownership comparisons. Private project only, exact shared/parent stage protection and restore after all owned children end. Runtime admission/foreign engine/fresh root pin gates remain mandatory.", + "limits": [ + "No invalid shape/index/type conversion or midcall custom/script-change execution is included; those remain required before adoption.", + "Registration/nearest supported markers are not direct per-helper native invocation counters.", + "Listed full Runtime/Path result/state snapshots and typed/cache ownership tests are finite synthetic conditions, not general reentry/ownership acceptance.", + "No whole647, performance, P95/D10/50ms/final172/OS/Windows/adoption/unit acceptance.", + "Capacity and 16MiB output postphase check do not establish a live peak disk cap." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json new file mode 100644 index 0000000..16359ec --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-preexecution-independent-review-r304.json @@ -0,0 +1,204 @@ +{ + "schema": 1, + "review": "r304 bounded local preexecution independent review, unexecuted refusal", + "execution_allowed": false, + "blockers": [ + { + "id": "B1", + "file": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "function": "route_setup", + "cause": "setup(\"ordinary\") creates a graph with no connectors. Original begin_guest_path_query_batch clears _query_batch and returns immediately for empty _connectors (Path1158-1160). The subsequent _query_batch[&\"targets\"] access is missing, so all eight ready-route fixtures cannot establish their intended original ready-batch starting state.", + "required_repair": "In a separate revision, configure the same finite supported connector in both setup sides before begin; explicitly assert active batch/start/targets before tree construction. Preserve graph/adjacency and intended cycle limit, derive the added setup check count and update exact expected count. Do not change native/source or weaken strict errors." + } + ], + "evidence_sha256": { + "/Applications/Godot.app/Contents/MacOS/Godot": { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + "/private/tmp/thetree-prepare-ready-route-local-r304.py": { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/private/tmp/TheTree-ready-route-r304-3b80863933444e339e087ffc49628c0b/candidate.dylib": { + "path": "/private/tmp/TheTree-ready-route-r304-3b80863933444e339e087ffc49628c0b/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "verified_supported_scope": { + "original195_body_full_inverse": true, + "planned_count_before_repair": 220, + "count_basis": "139 original +8*(2 graph setups+8 assertions)+1 route typed codec", + "planned_route_cases": 8, + "parent_runtime_path_budget_unchanged": true, + "library_copy_sha_equal_separate_inode": true, + "current301_doc_pins_fresh": true, + "driver_owned90_private5_strict_restore_protect_gates_retained": true, + "candidate_cpp_compiled_host_receipt_only": true + }, + "other_blockers": [], + "remaining": [ + "No actual native selection, ready compact route or cache ownership can be accepted from this unexecuted proposal.", + "Listed route tests compare typed result and full Runtime/Path public state to original helper; actual invalid shape/index conversion and midcall script replacement remain explicitly uncovered.", + "ABI/load/local/whole647/performance/final172/OS/Windows/adoption/unit acceptance remain separate." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd new file mode 100644 index 0000000..d9382c4 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.gd @@ -0,0 +1,162 @@ +extends "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd" +class CustomFacility: + extends FacilityInstance +class CustomDefinition: + extends FacilityDefinition +class CustomElevator: + extends ElevatorService +class CustomGuest: + extends GuestRuntime +const CASES := ["ordinary", "stairs150", "stairs149", "foreign150", "elevator151", "integer_wrap", "clamp_low", "geometry_wrap", "inputs_unavailable", "staff_only", "custom_facility", "custom_definition", "custom_elevator", "custom_guest", "path_observer"] +var records: Array = [] +var core: Variant +var calls := 0 +func observed(_duration: int) -> void: calls += 1 +func setup(label: String) -> void: + var p := PathService.new() + var start := Vector3i.ZERO + var target := Vector3i(0,1,0) if label in ["stairs150","stairs149","foreign150","elevator151"] else Vector3i(2,0,0) + if label == "geometry_wrap": + start=Vector3i(-2147483648,0,0);target=start + var cells: Array[Vector3i] = [start,target] + if target.y==0 and label!="geometry_wrap": cells.insert(1,Vector3i(1,0,0)) + check(p.rebuild_graph(cells),label+" finite public graph") + if target.y!=0: check(p.set_vertical_walk_requires_connector(true),label+" actual connector-only vertical route") + runtime.path_service=p + p.path_query_measured.connect(Callable(runtime,"_on_path_query_measured")) + var e: ElevatorService = CustomElevator.new() if label=="custom_elevator" else ElevatorService.new() + e.configure(p);runtime.elevators=e + if label=="elevator151": + check(bool(e.synchronize([{&"shaft_id":&"transport.shaft.finite", &"module_ids":[&"finite.module"], &"stops":[start,target], &"width":2, &"capacity":4, &"travel_minutes_per_floor":10, &"access_id":&""}],646).get(&"ok",false)),label+" actual owned shaft") + var id: StringName=e._connector_configs(e.get_report()[&"shafts"][0][&"config"])[0][&"id"] + check(p.configure_connector(id,start,target,151,true,&"",true,{&"movement_type":PathService.MOVEMENT_ELEVATOR, &"cabin_capacity":4, &"queue_capacity":16, &"travel_minutes_per_floor":10}),label+" owned elevator cost151") + elif target.y!=0: + var id: StringName = &"foreign" if label=="foreign150" else &"infra.connector:finite" + check(p.configure_connector(id,start,target,149 if label=="stairs149" else 150),label+" public connector") + var f: FacilityInstance = CustomFacility.new() if label=="custom_facility" else FacilityInstance.new() + f.instance_id=&"finite.facility";f.definition_id=&"finite.definition";f.origin=target + f.occupied_cells=[];f.base_price=0;f.base_quality=101;f.capacity=4;f.base_service_minutes=7 + f.queue_entries=[&"q1",&"q2",&"q3"] + if label=="integer_wrap": f.base_service_minutes=9223372036854775807;f.capacity=-9223372036854775808 + if label=="clamp_low": f.base_quality=-9223372036854775808;f.capacity=0 + if label=="geometry_wrap": f.origin=Vector3i(2147483647,0,0);f.occupied_cells=[f.origin] + runtime.facility_service._instances={f.instance_id:f} + var d: FacilityDefinition = CustomDefinition.new() if label=="custom_definition" else FacilityDefinition.new() + d.id=f.definition_id;d.tags=[&"rest"] + if label=="inputs_unavailable": d.inventory_inputs={&"finite.missing":1} + if label=="staff_only": d.tags=[&"staff_only"] + runtime.definition_registry._facilities_by_id[f.definition_id]=d + var g: GuestRuntime = CustomGuest.new() if label=="custom_guest" else GuestRuntime.new() + g.guest_id=&"finite.guest";g.current_cell=start + runtime.guest_service._guests={g.guest_id:g};runtime.guest_service._guest_order_dirty=true + calls=0 + if label=="path_observer":p.path_query_measured.connect(observed) +func state() -> Array: + var p=runtime.path_service + return [runtime.create_snapshot(),p.last_error,p.last_no_route_reason,p.last_path_cost,p.cache_hits,p.cache_misses,p._path_cache,p._query_batch,p._guest_step_connector_memo,calls] +func project() -> Dictionary: + return core.project_guest_candidates(runtime,&"finite.guest",FacilityInstance.State.OPEN,FacilityInstance.State.DEGRADED,runtime.MOVEMENT_CREDIT_SCALE,runtime.STAIR_MOVEMENT_CREDIT,PathService.ORTHOGONAL_MOVE_COST,Callable(Time,"get_ticks_usec")) +const ROUTE_CASES := ["ordinary", "goal_only", "cycle_limit", "negative_terminal", "readonly_cells", "readonly_indices", "untyped_cells", "noncompact"] +var route_records: Array = [] +func route_setup(label: String) -> Dictionary: + setup("ordinary") + var p=runtime.path_service + check(p.configure_connector(&"finite.route.connector",Vector3i.ZERO,Vector3i(1,0,0)),label+" finite default-cost connector configured") + var goal := Vector3i.ZERO if label == "goal_only" else Vector3i(2,0,0) + var goals: Array=[goal] + p.begin_guest_path_query_batch(Vector3i.ZERO,goals) + var active: bool=not p._query_batch.is_empty() and p._query_batch[&"start"]==Vector3i.ZERO and p._query_batch[&"targets"].has(goal) + check(active,label+" actual ready batch start and target active") + if not active: return {} + var layers: Array[int]=[0,1] + var access: Array[StringName]=[] + var tree: Dictionary=p._build_guest_query_tree_compact(Vector3i.ZERO,p._query_batch[&"targets"],layers,access) + if label == "cycle_limit": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[1]=2;parents[2]=1;tree[&"parent_indices"]=parents + elif label == "negative_terminal": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[2]=-99;tree[&"parent_indices"]=parents + elif label == "readonly_cells": tree[&"cells"].make_read_only() + elif label == "readonly_indices": tree[&"indices"].make_read_only() + elif label == "untyped_cells": + var cells: Array=[];cells.append_array(tree[&"cells"]);tree[&"cells"]=cells + elif label == "noncompact": + tree[&"compact"]=false + tree[&"parents"]={Vector3i(1,0,0):Vector3i.ZERO,Vector3i(2,0,0):Vector3i(1,0,0)} + tree[&"costs"]={Vector3i.ZERO:0,Vector3i(1,0,0):100,Vector3i(2,0,0):200} + p._query_batch[&"tree"]=tree;p._query_batch[&"ready"]=true;p._query_batch[&"arithmetic_wrapped"]=false + return {"path":p,"goal":goal,"goals":goals,"layers":layers,"access":access,"tree":tree} +func route_case(label: String) -> void: + var input: Dictionary=route_setup(label) + if input.is_empty(): return + var p=input["path"] + var before: PackedByteArray=var_to_bytes(input["tree"]) + var actual: Dictionary=core.nearest_guest_access(p,Vector3i.ZERO,input["goals"],input["goal"],input["layers"],input["access"],Callable(Time,"get_ticks_usec")) + check(bool(actual.get(&"supported",false)),label+" ready route actual native selected") + check(var_to_bytes(input["tree"])==before and (label!="readonly_cells" or input["tree"][&"cells"].is_read_only()) and (label!="readonly_indices" or input["tree"][&"indices"].is_read_only()),label+" ready route original tree and readonly unchanged") + var got_bytes: PackedByteArray=var_to_bytes(actual) + var after: PackedByteArray=var_to_bytes(state()) + var route: Array=actual[&"path"] + var key: String=p._cache_key(Vector3i.ZERO,input["goal"],input["layers"],input["access"]) + var cached: Array=p._path_cache[key] + check(route.is_typed() and route.get_typed_builtin()==TYPE_VECTOR3I and not route.is_read_only() and cached.is_typed() and cached.get_typed_builtin()==TYPE_VECTOR3I and not cached.is_read_only() and not is_same(route,cached),label+" fresh writable typed path and separate cache copy") + var cache_before: PackedByteArray=var_to_bytes(p._path_cache) + route[0]=Vector3i(99,99,0) + check(var_to_bytes(p._path_cache)==cache_before,label+" returned path mutation leaves cache unchanged") + var returned_before: PackedByteArray=var_to_bytes(route) + cached[0]=Vector3i(77,77,0) + check(var_to_bytes(route)==returned_before,label+" cache copy mutation leaves returned path unchanged") + input=route_setup(label) + if input.is_empty(): return + p=input["path"];before=var_to_bytes(input["tree"]) + var expected: Dictionary=p._query_nearest_guest_access_without_native(Vector3i.ZERO,input["goals"],input["goal"]) + check(var_to_bytes(expected)==got_bytes,label+" full original ordered typed ready-route result") + check(var_to_bytes(state())==after,label+" full Runtime cache counters errors and signals equal") + check(var_to_bytes(input["tree"])==before,label+" original fallback tree unchanged") + route_records.append({"case":label,"expected":expected,"actual":bytes_to_var(got_bytes)}) + +func run() -> void: + output=OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT") + runtime=root.get_node("SimulationRuntime");clock=root.get_node("GameClock") + var raw := FileAccess.get_file_as_bytes(OS.get_environment("THE_TREE_REPLAY_SNAPSHOT")).decompress(11411840,FileAccess.COMPRESSION_ZSTD) + var initial: Dictionary=bytes_to_var(raw) + runtime.initialize(clock,root.get_node("GameState"),int(initial[&"systems"][&"runtime"][&"world_seed"])) + check(runtime.restore_snapshot(initial),"fixed646 original seed/context restore") + core=ClassDB.instantiate(&"TheTreeNumericCore") + for label: String in CASES: + setup(label) + var before := var_to_bytes(state()) + var selected := project() + var fallback := label.begins_with("custom_") or label=="path_observer" + check(bool(selected.get(&"supported",false))==not fallback,label+" actual native domain") + if fallback:check(var_to_bytes(state())==before,label+" rejection has no public effects") + var got: Array=runtime._project_guest_candidates(&"finite.guest") if fallback else selected[&"candidates"] + var after := var_to_bytes(state()) + var got_bytes := var_to_bytes(got) + check(runtime.path_service._query_batch.is_empty(),label+" derived batch released") + setup(label) + check(var_to_bytes(state())==before,label+" same complete starting state") + var expected: Array=runtime._project_guest_candidates_without_native(&"finite.guest") + check(var_to_bytes(expected)==got_bytes,label+" complete ordered typed candidates") + check(var_to_bytes(state())==after,label+" complete Runtime Path cache errors counters callback count") + if label=="stairs150":check(int(got[0][&"travel_minutes"])==2,label+" stairs ceil150/100") + elif label=="elevator151":check(int(got[0][&"travel_minutes"])==12,label+" elevator ceil((151+1floor*10minutes*100)/100)") + elif label in ["stairs149","foreign150"]:check(int(got[0][&"travel_minutes"])==1,label+" ordinary movement retained") + if label=="integer_wrap":check(int(got[0][&"expected_wait"])==9223372036854775805 and int(got[0][&"group_fit"])==-9223372036854775808,label+" signed multiplication wrap") + if label=="clamp_low":check(got[0][&"expected_quality"]==0 and got[0][&"group_fit"]==0,label+" zero divisor guard and quality lower clamp") + if label=="ordinary": + check(got[0][&"expected_quality"]==100,label+" quality upper clamp") + var protected_bytes := var_to_bytes(expected) + got[0][&"facility_tags"].append(&"mutated");got[0][&"need_relief"].clear();got[0][&"path_handle"].clear() + check(var_to_bytes(expected)==protected_bytes and runtime.definition_registry.get_facility(&"finite.definition").tags==[&"rest"],label+" owned returned tags relief and handle") + records.append({"case":label,"native_supported":not fallback,"candidates":expected,"observer_calls":calls}) + for label: String in ROUTE_CASES: route_case(label) + var route_payload := typed("ready-route-fixtures",route_records) + core=null + var report := {"passed":failures.is_empty(),"checks":checks,"failures":failures,"pid":OS.get_process_id(),"case_count":CASES.size(),"ready_route_cases":ROUTE_CASES.size(),"ready_route_fixtures":route_payload,"fixtures":typed("fixtures",records),"unit_accepted":false,"performance_accepted":false,"Windows_accepted":false} + report["passed"]=failures.is_empty();report["checks"]=checks;report["failures"]=failures + var file := FileAccess.open(output.path_join("report.json"),FileAccess.WRITE) + if file==null:quit(98);return + file.store_string(JSON.stringify(report,"\t"));file.close() + print("Ready route local: %d checks, %d failures"%[checks,failures.size()]);quit(0 if failures.is_empty() else 1) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py new file mode 100644 index 0000000..862bc63 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02.py @@ -0,0 +1,74 @@ +# coding: utf-8 +"""One finite cold native guest projection QA against original Runtime golden; no full regression.""" +from pathlib import Path +import hashlib, importlib.util, json, os, shutil, subprocess, sys, uuid +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02' +O=A/'p23-02-native-ready-route-local-r304-r02';D=R/'docs/plans/original-completion-2026-10-02' +NAMES=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +def mod(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def unpack(ref): + raw=subprocess.run(['/opt/homebrew/bin/zstd','-d','-q','-c',ref['path']],capture_output=True,check=True,timeout=10).stdout + assert len(raw)==ref['uncompressed_bytes'] and hashlib.sha256(raw).hexdigest()==ref['uncompressed_sha256'] + return raw +def main(): + r=mod('impact_runner',R/'tools/run_all_tests.py');outer=mod('impact_owned',r.SUPPORT/'owned_outer.py');plan=r.read(O/'input.json') + assert not (O/'execution.json').exists() + fixed=plan['pins'];source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in NAMES} + assert source==plan['source_before'] and player==plan['default_before'] and docs==plan['doc4_before'] + stage=Path(plan['stage']);parent=Path(plan['parent']);public=(stage/'project.godot').read_bytes() + def protect(): + assert r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in NAMES}==docs + assert r.inventory(parent,stage=True)==plan['expected_stage'] and r.inventory(stage,stage=True)==plan['expected_stage'] + assert r.inventory(r.SUPPORT)==plan['support_inventory'] + for key,q in fixed.items(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'],key + protect() + review=r.read(Path(fixed['host_review']['path'])) + assert not review['blockers'] and review['host_build_accepted'] + pre=r.read(A/'p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json') + assert pre['execution_allowed'] and not pre['blockers'] + for group in ('evidence_sha256','canonical_doc4_context_pins'): + for q in pre[group].values(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + root=r.read(O/'preexecution-root-verification.json');assert root['passed'] and root['review_sha256']==r.sha(A/'p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json') + phases=[];samples=[];error=None;cleanup=[];cleanup_errors=[] + try: + for spec in plan['specs']: + name=spec['name'];protect() + assert not outer.native.helper['live_engines']() and shutil.disk_usage(A).free >= plan['capacity_floor_bytes'] + output=O/(name+'-measurement');output.mkdir();ident=uuid.uuid4().hex + startup='TheTree-PCK-tests-'+ident+'-impact-startup';profile='TheTree-PCK-tests-'+ident+'-impact-runtime' + assert not r.profile_path(startup).exists() and not r.profile_path(profile).exists() + env=r.fresh_environment(os.environ) + env.update(THE_TREE_PACK_PROFILE_NAME=profile,THE_TREE_PACK_PROFILE_EXPECTED=str(r.profile_path(profile)),THE_TREE_PACK_PROFILE_REPORT=str(O/(name+'-profile.json')),THE_TREE_RUNTIME_MONITOR_OUTPUT=str(output),THE_TREE_REPLAY_SNAPSHOT=fixed['fixture']['path'],THE_TREE_CANDIDATE_ORACLE=fixed['oracle']['path'],THE_TREE_PAIRED_CANDIDATE='r302-library303',THE_TREE_PAIRED_SAMPLE=name) + (stage/'project.godot').write_bytes(r.private_project(public,startup));phase=O/name + argv=[fixed['engine']['path'],'--headless','--path',str(stage),'--script',fixed['starter_'+name]['path'],'--verbose','--log-file',str(phase/'engine-native.log')] + result,capture=outer.run_phase(argv,phase,90,env,now_fn=r.now,dump_fn=r.write,sha_fn=r.sha,live_engines_fn=outer.native.helper['live_engines']) + row=dict(name=name,result=result,capture=capture);phases.append(row);r.write(O/(name+'-phase.json'),row) + report_path=output/'report.json';report=r.read(report_path) if report_path.exists() else None + if report is not None:samples.append(dict(name=name,report=report)) + assert result is not None and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + logs=''.join((phase/n).read_text() for n in ['stdout.log','stderr.log','engine-native.log']) + assert 'Orphan StringName:' not in logs and 'unclaimed string names' not in logs + assert report and report['passed'] and not report['failures'] and report['pid']==result['pid'] and report['checks']==spec['expected_checks'] + assert (phase/'stdout.log').read_text().count(spec['label']+'%d checks, 0 failures'%report['checks'])==1 + assert (phase/'stdout.log').read_text().count('NATIVE_ADAPTER_LIBRARY_REGISTERED')==1 + r.profile_gate(r.profile_path(profile),O/(name+'-profile.json'),profile) + assert report['case_count']==15 and report['ready_route_cases']==8 + unpack(report['ready_route_fixtures']);assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file())<=16*1048576 + unpack(report['fixtures']) + (stage/'project.godot').write_bytes(public);protect() + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup,cleanup_errors=outer.finish_captured(outer.OWNED) + if all(q['engine_ended'] is True for q in cleanup):(stage/'project.godot').write_bytes(public) + else:cleanup_errors.append('Restoration refused while actual owned child remains live') + guard_errors=[] + try:protect() + except BaseException as caught:guard_errors.append(type(caught).__name__+': '+str(caught)) + passed=error is None and not guard_errors and not cleanup_errors and len(phases)==1 and len(samples)==1 + r.write(O/'execution.json',dict(passed=passed,error=error,guard_errors=guard_errors,phases=phases,samples=samples,cleanup=cleanup,cleanup_errors=cleanup_errors,input_source_default_doc4_preserved=not guard_errors,candidate_adopted=False,unit_accepted=False,performance_accepted=False,normal_OS_accepted=False,Windows_accepted=False,limitations=['Fifteen original projection boundary fixtures plus8 compact ready-route boundary fixtures compare all typed candidate bytes and entire Runtime plus public Path cache/errors/counters and observer call counts against byte-retained original loop. Synthetic fixtures do not approve new game values or general reentry/provider ownership; ready route cases compare full Runtime and Path state, ownership, typed/readonly, cache and ordered results; invalid shape and mid-call script-change execution remains uncovered. No whole647, performance, final full regression, OS or Windows acceptance.'])) + print(json.dumps(dict(passed=passed,error=error,guard_errors=guard_errors)),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json new file mode 100644 index 0000000..c7c42aa --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/actual-root-verification.json @@ -0,0 +1,263 @@ +{ + "passed": true, + "review_sha256": "1cf6b982252f442ed40801a6707f1d8c39cc4a48ba3721a453f50b9d405e949b", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/execution.json", + "bytes": 12210, + "sha256": "7cd220b4cfa9bceecfa8b39eacc0f9e019ad0983009c2596fe07020a2ccf0664" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-phase.json", + "bytes": 8183, + "sha256": "09cffa8ba3a51722dc67d4acc91610cb92d997fa690a7bf7356185ad5ca7517d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-profile.json", + "bytes": 912, + "sha256": "b95335c1c492cca6fa9fd8d474242eccccdee8f1c7c4e9c47c7426a8392fdb45" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/report.json", + "bytes": 1309, + "sha256": "4d3d129656268ed4c9f03737a3b94049886e43d4f51b9d312c869aedc9ac7c2d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304-r02.json", + "bytes": 17299, + "sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json", + "bytes": 9990, + "sha256": "7d9db13c588c163fed16849eda32d94d180fe9e3a4350c70551be1aef4eebcab" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-ai-r03-typed-difference-independent-review-r01/finite_variant_codec.py", + "bytes": 5438, + "sha256": "8c7077b53e28da4054bdf7dd88e82de02a51149269a8fce59bae0e74f95b4734" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/ended.json", + "bytes": 1793, + "sha256": "eb8d321fa42560813f05a1bd32a8abdce4dd9cbc4d86d005d5248cf8eb917746" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/adapter-owned-cleanup.json", + "bytes": 351, + "sha256": "c1f3d289b362cc61b9be169a3994be27df39f35e6221881b4a9678ce3c72ba54" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log", + "bytes": 13479, + "sha256": "29c80683e381332a409ac7e852aabb09ff4594273ebc30b3a26b233f5dcdd0db" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/stdout.log", + "bytes": 13629, + "sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/started.json", + "bytes": 2422, + "sha256": "917ba2cc75dc38e9c3c3033c17e283756c9e83f3946429a8126cbc4cf5a1cb83" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/process.json", + "bytes": 6723, + "sha256": "28ba2ddcea2a9911983521e2c44e98d3e2992fdbc5d407e3e383a529ce8beda3" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/outer-owned-finally.json", + "bytes": 964, + "sha256": "d676912bce39e81174b0f66bec033c670fa15db3d4f6ed49d831ec2554c4ec97" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "bytes": 709, + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "bytes": 332, + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst new file mode 100644 index 0000000000000000000000000000000000000000..8e913777c6b04ac40c8047fa72a1480ad97f0425 GIT binary patch literal 709 zcmV;$0y_ODwJ-f(#3|hs0OlJ~F@Pya2PQHiBQhc*(3m2~5+Zk_y*EW6$tG!UvXF@l ztssQa$qiN%n_1X5;6LndBn3eLLI6bo1NPk=ehT-%f^V*TNO_t~O@xST1GXb#3T=?bl~_ zwU$Hx^3=PN{*`cnz;IHgj^eUKCHFxD@FrHA^hIwGzF1Z&N6(%`I5OiNkgYpkIr5>+{HC5Oir@c8pqTZ(K$-S{Xrn7 zEzBuJb=A}}*Yn_|YtYKOwio-ps0KeFaPU#sz6CY9*g+5m#zGSrT+4a8w3XoS1UGK4 zu&cw4I4YQ)rl6t;mQaC$kE5ZhIPU7Za-pFy(Qs^$xqhj9fSahnK@t%uNs|t8DoS-SP>Fq1V%XG3e5yp2LK;K4wNLkPtqOIM>2jXZG}c}jwHpI zKXhC0%@Hf&)9=78y8)oRotdF1b*(qCr1_2A5OSts>fs2he%YiQxm`E>*Lds^98>CM znqaIbw~MQAjQu_K3cnahjLd(5mczu8RgRQ}1GodJl?@z{-uY>tn9I+=o$>d+V!6Pm zn@Rg+?27;}&aTDWhoSz5#I>ct#pK#+9fq{HG~fP<0t#?!hb!yM%tq`!{SxI}3T)kQ zWzh9}oEkFrCuFai=S=W~S)Z3zx%3SWFMJIFxvjwU`UFQ|m-LHc7*Z?bSq6t6?tCmQ zCEMelJFTt3F6Cekv9!T#=x~SIQX6J87o!*o|IB}Wa{xWr0zuh#AL{WMMk#*e}E)SVXuW5pL_={iR z5BL!QO{gKtNFo{1QaZo_krAou5|nvj^ys_pk~^tS1WP|sV9vf$1c$j void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension") + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"), "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore"): quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension new file mode 100644 index 0000000..bea9975 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/candidate.gdextension @@ -0,0 +1,7 @@ +[configuration] +entry_symbol = "tree_numeric_core_init" +compatibility_minimum = "4.7" + +[libraries] +macos.debug.arm64 = "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib" +macos.release.arm64 = "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib" diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json new file mode 100644 index 0000000..b4fc7e9 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/execution.json @@ -0,0 +1,269 @@ +{ + "passed": true, + "error": null, + "guard_errors": [], + "phases": [ + { + "name": "boundaries", + "result": { + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + ], + "pid": 59578, + "started_utc": "2026-10-12T00:18:59.928450+00:00", + "ended_utc": "2026-10-12T00:19:11.508053+00:00", + "wall_seconds": 11.579403917, + "exit_code": 0, + "helper_exit_code": 0, + "timed_out": false, + "stdout_sha256": "87fa4f71bc08488c003609835e6eb1526c4cd3c58e2457bea36a7825b1333e08", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "error_lines": [], + "owned_popen_ended": true, + "old_helper_engine_ended": true, + "start_receipt_written": true, + "end_receipt_written": true, + "lifecycle_error": null, + "old_helper_lifecycle_error": null, + "actual_start_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_STARTED", + "actual_pid": 59578, + "owner_pid": 59564, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + ], + "monotonic_ns": 2673321416, + "pid": 59578, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + ], + "started_utc": "2026-10-12T00:18:59.928450+00:00", + "current_process_identity": { + "pid": 59578, + "ppid": 59564, + "pgid": 59578, + "args": "/Applications/Godot.app/Contents/MacOS/Godot --headless --path /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage --script /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd --verbose --log-file /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + }, + "live_identity_exact": true, + "tracked_child_ended_before_initial_probe": false, + "signal_scope": "tracked Popen child only; no external group signal" + }, + "actual_end_binding": { + "scope": "isolated diagnostic owned child", + "event": "ENGINE_ENDED", + "actual_pid": 59578, + "owner_pid": 59564, + "command": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + ], + "monotonic_ns": 14245020416, + "exit_code": 0, + "actual_process_exit_code": 0, + "engine_ended": true, + "timed_out": false, + "lifecycle_error": null, + "start_receipt_written": true, + "pid": 59578, + "argv": [ + "/Applications/Godot.app/Contents/MacOS/Godot", + "--headless", + "--path", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage", + "--script", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "--verbose", + "--log-file", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries/engine-native.log" + ], + "ended_utc": "2026-10-12T00:19:11.505315+00:00", + "signal_scope": "tracked Popen child only; no external group signal" + }, + "strict_native_diagnostics": { + "errors": [], + "banner_count": 1, + "known_unicode_diagnostic_count": 0, + "unrecognized_unicode_diagnostic_count": 0, + "exit_leak_diagnostic_lines": [] + }, + "external_process_or_group_signals": 0, + "owned_child_process_helper_sha256": "c007e712c281573254faa1233c2ac92e100ab87393256a6dc096b35283e43037", + "adapter_owned_cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "adapter_error": null, + "old_helper_bytes_preserved": true, + "helper_wait_None_maps_to_actual_timeout_seconds": 5, + "explicit_helper_wait_timeouts_preserved": true, + "additional_cleanup_wait_timeout_seconds": 5, + "additional_cleanup_max_attempts": 3 + }, + "capture": { + "actual_captured_pids": [ + 59578 + ], + "cleanup": [ + { + "pid": 59578, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "adapter_exception": null, + "all_captured_ended": true, + "outer_cleanup_errors": [], + "foreign_process_or_group_signals": 0, + "all_cleanup_before_outer_receipt": true, + "outer_receipt_written": true, + "outer_receipt_error": null, + "passed": true + } + } + ], + "samples": [ + { + "name": "boundaries", + "report": { + "Windows_accepted": false, + "case_count": 15, + "checks": 252, + "failures": [], + "fixtures": { + "bytes": 709, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/fixtures.varbytes.zst", + "sha256": "abb1d265988c2b5d7a7d42fc6625ee76eb2846964ff21863978280dd055415d5", + "uncompressed_bytes": 10948, + "uncompressed_sha256": "43250a2fa5c56ca73fc853f2d883dfbf23dfdc7c8ba647f191c2b1282b636e0f" + }, + "passed": true, + "performance_accepted": false, + "pid": 59578, + "ready_route_cases": 8, + "ready_route_fixtures": { + "bytes": 332, + "codec": "zstd", + "field_deletions": 0, + "file_envelope": false, + "full_bytes_roundtrip": true, + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/boundaries-measurement/ready-route-fixtures.varbytes.zst", + "sha256": "091eb9995586689e726da8abaf9b46aa451bc7ac768dbdad4375585a3188cb0d", + "uncompressed_bytes": 3288, + "uncompressed_sha256": "560b08669f28f79ab0eddff115d22830515420bea51e0271d71f5a569832b664" + }, + "unit_accepted": false + } + } + ], + "cleanup": [ + { + "pid": 59578, + "cleanup": { + "owned_child_created": true, + "engine_ended": true, + "actual_process_exit_code": 0, + "attempts": [ + { + "attempt": 1, + "kill_attempted": false, + "wait_timeout_seconds": 5, + "wait_completed": true, + "errors": [], + "poll_before": 0, + "wait_returned_code": 0, + "poll_after": 0 + } + ], + "errors": [] + }, + "outer_cleanup_errors": [], + "engine_ended": true, + "outer_maximum_helper_invocations": 3, + "helper_maximum_waits": 3, + "per_wait_timeout_seconds": 5, + "foreign_process_or_group_signals": 0 + } + ], + "cleanup_errors": [], + "input_source_default_doc4_preserved": true, + "candidate_adopted": false, + "unit_accepted": false, + "performance_accepted": false, + "normal_OS_accepted": false, + "Windows_accepted": false, + "limitations": [ + "Fifteen original projection boundary fixtures plus8 compact ready-route boundary fixtures compare all typed candidate bytes and entire Runtime plus public Path cache/errors/counters and observer call counts against byte-retained original loop. Synthetic fixtures do not approve new game values or general reentry/provider ownership; ready route cases compare full Runtime and Path state, ownership, typed/readonly, cache and ordered results; invalid shape and mid-call script-change execution remains uncovered. No whole647, performance, final full regression, OS or Windows acceptance." + ] +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/input.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..420680eb074df0fda46ba3a4ce10a376615fb174 GIT binary patch literal 165347 zcmX6^gIlHD+s&Lj*|u%_ZL&^ovR#ug*|vS+q?2pH)x9@776O#2lH{-Gge=rpHacvP@^zR;0_KLWPz_HQbR^g=HNYBTxVJ%A{E9{Nhh$_ zE7QVpDnj6uWQrz)%?fVMDoSccEqLHhoZfj+eSCN;a?6bRwLUfNDtuz%$9vKBVE4W! z{#4WVyfOm15Pv%rf2#=^6Thjsdp`kPEL{ZEHGmGBAMbt}f832EZuXL%J)K296dHfb zVcZPf=$`G2EPbp*KKwp;yQy3X0{;rSyJ0tZTnW1F3hMgU|8|u4@W=NA=-Kx%Ug?|@ zs~B`W`Zcb1;+*esZ;;FB_vd`0iu=8Y6W&NitGxBkbB??#2}0)k7nX5v&0zAU&7h~$ zp!=!k`yF4QSGbR}%Dda6J9aUVo;Uonr$KA`!IM6}=gZ$q63?6OgMA-oeb4-TZ;>BI zppQ%O*T|2%px3_lyN@ey(4F|lJ^2S{^L?l91>@s6=t=zJA?PLOW2Y}@y`W(8yu$h5 zw}ko`Sa)ZzD{+&JaW9>lt*2=}-L*kn==Y}a-EZf<{01?xI+I?bKHt0Z!57eP@&c!i z@ww+)+bLaDx`4a8S9i}9l8Iy>FxPd3XbzoOzpplybDCt%(9F7PiBD{gYrpA7TQbV5 zufe!ppkLu)A@KO<=7s+Z?EKO9XW=FiV>8hAZ9UOvaK!ihc41`m^-11yY{BDFy@$KB zT&u}j^fZ5+jPg6c-WL2V(^}6}CbLViyn=)yetwm&*h2SF_x-js(Eqt{Gq7vJ|E)uG ziagS_dn7%u!#JL=SHD3l@LXW2#=EevPhh!*o_OFyJo$M>EpI}8JeIdIM~=@mu4!t# z_32Q9WU9evKf(1t^tFFU$HA#~b->N4WBdc~T%ddg>I-~-Z3!f?d%3-TTiUGGeI;&B z8G6j8DvS#f-E3>v40^m}(XPKoF5bk-H7?z{icKWn=neWp8E`jo@1eP=`>{PIS?2bW zAZXXGExqX`C#xWTLw`qZbpk}x<30VQmvz;y+0%Y?ITa)WOk&<7b>O*D^?cr{j&}~C zVG00{i;IZ%JuiSCZU!5SMa2W&Z)=xt_q@fsO&WUN<6hn+f1lSEfM1@x_>S%^X~Aj} zAu-n1V`bfS>nknWtK-d`Tt*7LU+e4P?cG5Bn=L)9yl8wzi}k&kBI|{~$G-Oy^7K;i zI=-Nr(^d`uqURA(B$Ep_8=rTZ~ivT=KF`}Xm7 zJ2E8pK^%|dK2!7(DcgcLaekM3+8Ri>@a1Hmh!&TaqdaSUtpRcB*o0J*iV1F z0K&4LkNT`N&Tek_$rBcCua3^xqsto#Hv|0NUZ;Em0m>t+L833}Q8`@;>ckA`G>2hqai|1#4x#q?6Re()-j`$l(VS!-Q-R(Zc`!kNwj*P%iWi4Q|DDXoQEGIK@li|ig}(WHsmBen>$oUy4yGV7|D z?mXodKSW{qFU57qp)X=3&)3Nt{x5Cft(BXvHrkK0E~Qc*MCyBs&Kp62pn{DA{++?O z=VK#ca!Ae zGhCvu7TRHVK60J+iWM{RGNAPJ(Q68y_hsbI@kO70P=n3gNa3?L-Hn|SmGw=MP^#4L z_#G3@bjxOaHLMqTzB}><=^)ttfE(JL_ff}a@g43DuE&4?!`HpHo0<#LklNFlp!cIu z`h1nhAz=ZH?DelBYB%ErGP>(f5|S;_9y2FG?yHT%5$x#Z1{cLzn*c+GE;7ce!N`Nc z2o&0*8k6nVm#&)nOdgwj{wGYzB9J+s1wkhqpC$1nrs%=uXz6s1<9mAUnJ7>t7ZZ=av+{q1WMc(C+T`OK z)q?dSH?15)oOmY}xVTooiT&qr>+J3D^k`vU0IG1jP(*Ise>)yGYuMjsQ@F+tf1YBU zkaEDF`3Al?y^VSxkG|f%-hNx_y%1J7_%8r0^uxC&BGv!#UOKlyyeHt{32Z>{x_%%q zG&~0Q>{&ENmiHsuKPAA>bJ0-vhYKj(5bzZN(YPPnt}sbM2K%-Jsg>iYt+k=rHtNX-i)nC5w?dH{2^n-?%Nj&JyRrCx)^3pGuXM`-Y}h!cOj8qTS^|k2C)p>RlId zaq&9cs`CfnBs>pUpg@RlOg3HI-#T2%li-2n%tB%egmZ#+MJGaEXyNVC6Z zZ5T_7(?Rte7xkEd0N@L1Cc^z8(C-e{T-kBKuBa89xpC}P#oh|grF6FNHbUdENC6V_mFw z5V+1iM>;xv>GN91hY_ecqfS@RJ5e26J2zB+rrv?s@$fM~XHA8!onTHVwqI+~jaM`4 z^R;nonRP6LXG$5`Ra(Kx*zT>YzIsw*hjZR&J*Wiry}KSB3uhY#_&;B^)_0jqfeOU} zA8+ry)222!>-8qLge8d?Kb11U&!sv~vgr!-@_>~YlPj5E|kaXoW7nEl+6e_ zG8g{`il8Qbbm(^e=9TFsT{E?>|7$#%T@e4^g3RoF%sb{~1&!@3t9VU?U;O2bdN)W! zun+0Jx5uFHJP{Z?svD-)6n|Za~?%{!fwh5_h z&#{!^w8Ju6nmL>4#kr9sg#`w&V$SZWQ~_%p0A?%LuO;aW2rj?w!SB02nv*&@yYYY7 z^89#S$CrDDj15E<=N)|K_h8JvNUyTB{SBPF*{0|!qMod`cZ0wonm+E*20V}78M}Ov(y73#Ox31 zR~EZH<9?4#3Jcc!t5`lbPEB`@Z!xDmJlDmZ>CetkKks2-OZSuoV^&HZl5U{Lc1o4G zMwM5J?T?cY$vi!;XcL9hCLMX1$n^@pWjtfz5}BFg^6O`2Np^V*ubV@UUzbyq5tCMxx0Z2U!`kEgk7U{59_Y2J$8~ z7(?&{SuG*VZSUdIZ|5OfMt&b&4XT^ayVNt=7#C^C*uwq*rX?#A;66NT3js&B-Itt*pBRu!!p{_~5^WKH%4O3&F5ik*@ zTt6@{&plxSnE-sBrl`^rx+uQ|qRb_R`sMln3Aan$;&|Fbo(G5E23yTGF%GjcP0Ux>iH#aX0OOX#jgkMRH zYC>J3o}e0cHE%R!D9V?A@=bT14Z4ZeTOiZ_dC9(k0{ChOUGeGJ2Q_*GJ%pbI-Ce!? zI6L^NCwJ-{2*h6P{|vLd1hiSAV{Fm7RGagB(kt-zeL?d&=pZ#gQ`A1wF!~URKR?(c z3Q}1t*FA2twl_0genffmTH!8X7)A&kT8k$4eb$^3SxLJ@eInRLM18uUtN*4N`9*eH ze*5lt&6pT5iqKeXmP-^pHknXahbVA((&R+RC(_a1y_uLJdK!B0CDez#`VumJG2N@_ z7CYq>_>#}k2mg@IHaOkyXNAa27jcQnlKT;9=uz+>;vZmSTwQGaxVfv$EeisR1>U`$ zFOAR?lUYS!(c0)_!yhM@8qq68!p~YF{jM!zbNE&nE>%a|kRfkopUHRyx0Psbtj{buHZ;AW9lU27?|nQ3sH`HIo(=!0G1B_$#; z)qA~YA0aN10b#E8W(M6RNxS&1UrM<@BiYYUTC3eCC$eXP1L!S8e^Z$|1f~D=y!syV zXFYni{%#*v@u+*5*p>$tM;9=@T&O2ThFIe_LOh@*11G`MGo4cBCMt=2_4EgBZFm<> z(<})Zb<6Jbo*j{rO#fx=xIKmCHN`{+#g#vL`rZiCcP0GrR`0oP;j&SjD>#w2_;@FZG{wP&*m82H|S_gs4}|FMn(eN^2D8Fxrfkwz3H-habrHWiCv~4=jwT z_($1jFhu279=CP*gicw;YXI6AYP)J?eRh@bu0K-*7n_FqeNFc)Yg=N%15XZryZQzS zQ_=@LOpoMcsz;ly_^eWE^j6K5@<{l@^?H82XF|@J&CP|MvWgn~;%f^BjtAm%E?D!2 ze)LZnQhFX?AD1+~=cRWR$GD9S4RO#RDAkTcHof}Btr|9}5p4hQfcBRqRCQ zy^2b!totmhVrYEoi*+wOe88`9W>F$vx=W|M0Hcll5xz2zvG_d?*PuxpS?is`p*`^; zvEHZcfFmHQv55+n)e)fWy0FzFYySi7+4Sn=92n)PO{|dZY94zMp%!P18SS1}ElI?^W&3eSPJYD(l3suPcV%pnYIpHSH{SULd@LJG zm9qP_8MGg4Wv@iI->CoPP{wv^rA+bCnxN}+c`4WlCSURuJe}WzQt^o%{jrAfzTnN{ zSns=m$!ESz&}`|gR?NlJSKsxju;{`~mC>GQTYCdW=gOLOz0f+l#eBGLYtFtb-sksk zPHXNO1-~E5JYaUOql-G*NTGuH4z!B+za3cMIwDsvcVLeJP>iM%NtF#`zQ+z^bct+| zH2D{XpV)utO&3kApNPJ0OIfI_W=zaGW`c{*@H4^X@EN2YPH`JdNL2W?p(K5SxpVeY zy^7JPr0)WEyw9DFL!4N*&i+nh;hisBw;A_y6;K|8A71w`H@mGC}?Q%$$%1@k0i92DzmW~HVL?WN3B)NFX2R25H2UjeMVS|(gJh3du zz1a1=SNM$q`-eI-+M;|*-&^;^*hISzY{#k>0)d10a^&eNCpLr2XO!x}T76uP9u!Nn z6HqJFd$UjWtkoh^d$xwhaOoxRG?_mX#Y#VIRXMB~uSh96ph@d89$67Fp9$?yXiatZ zSDuwLKCI0BNbB6Z@wEYwzPHRR$6JU6B$`%k|4=iTL_*!(_1##GIzM9WBTrKzPrhzZ z5{9ZLMkh412&luP+v&fhREivPT>3Gx?%IfsMKJ|9&}24V>bV?>9oVo|jnox|^IjKm z#0*gUOJ(9wUbEyNV5>SU1Kv{RX1ma=%hj5JB`?aTuL*vJbc;4X(1E{Je;TDXRYCDW zRJ%;kXqcIVPsdWaESv5})zr+;<%9i#t1AK=~Gq2~o zsh}rDI70ILjKO+qYC#_3FInxX;mfGBgSol+J)FPQCye;)>iTM=3Z+6hak79rpY2;# zKBy17qJAjXD}>s7_6mBxLecO+nTR*l2_<*AuMo`L{Y8*Kr*vrH~)|`vB@EPu3))GTJn*gdizSp(ID}FTd(C0a z3Rj+ak<5wj8QlYfjwkg)FsVh!8BJ9TQNkkzysb3|r0LyOmVNMF#CZ~iUfdT$ydp=D zXlb23q`CwuO$1a0d302k(E9^2w~A!%%<0w?oiXiP+u>&<6ELbs^kpR}*|RaY>WHGr zQy@R~`_D=UjPzx!O=YMl{!nNVfcq(5Vo`c92UDn1C=XFybu+4|TA;ZB1(H8f)ztA{ zsPP_Ctki{Ib_bcWA-pTj2z38@ij=<~lngKL8KAyF#M#R2znZh79H!N&#psT_3m>ZP zn!N^~Q7Cy~`?XyrYt+fXVR!kHaHp?&u&RZWM*bD0vTqAYy@?oH#l{`@tDOrJM&@M^H8kcV;1mCkN#VaBslY6)=tsQx5ah%`wurXy&^%K1$jqf(b4W~ z!}{dDV|X;W3I_gBDhw2V>no4}9BGC|dPvB~!E&Nhd*7-ssPD{a{nEJJ9E4SQ3xHUb z@m~lWxzFKByukA8HAKzU^aq#fjnCWdomG)f1-qC7Hxkl00P(Bv(4jOlW%X?xN`y1LreiG} z$J&ZGMS9mm?LHj`=gssc80_QGyT7pK1wCs(S7)=!ZKcB%#E9*R(PH~)_f8uP`l6pC zNad9oKd>0t1;kv*(+uhL11BO$(n^bDUC5^`sE}Oj*O(AaGmo?#@dc0JZBlO7{}o=k zk3#N5n;0+w4ksQq1v=>1HX$xHwE-cx`rMUyqX{;zCso4q)}P2-aL44UD$`T^l=K!< zNztLhK3^9L;=Fz8P=^cYVE~o3q#WGL6@IH&~3SBO0O$gK2-s8u@Y7nyhxwu_?7Aixjmn zEqPSFTr&t?;~RW(rL3V6F~PkT^AoDwm}K2^!oz9-=CkhsohTM~!;S{v4xSqEw(>vd zsIvFk5A5m^>LT*5At+k+*#m}6vKWW9daZnNhMT0N$fniK013Ip^XM&4PeNnepWrek zyUoz^)%QcNfn?)2Ld|YkJggvOF}Q{f;+F#x)XSbuVa0Ph>}{izBTD`l~fKf}$#WSG(AwCY8 zA;%0Z@K6I(m(ycqVE7plX<%d>SmLk2w+RK(Q~j++*GSgsKWo5hdF}CdEtf|UIHdk> z5_oPlRN+q$94I9 zB%VR0TF90PWow=9bl$QM^xvr>DoL=@*8RXUK|P<;a)vzOfP~URfiI^%-X!`Wjw^)wV4G$%wHnfAc*O|#{igdhlz-mmVLrxQ@~ewqP` zz)}Kr)r>W!UTlC%>utQ`Dr4p4;9x!6l_;}d3q8+=ge$}HUyoy zt!lk7wm98VElx}ADM=jX87aOz5k;tUS78PQ)Qz3 z3kGKS$Ej8aVVlEkZdD-6mwOsk2(9~;{$-T@2eQdlcf9SdsZ(qT8L)<%R7D zQ&Yrg7@L?NNctA&2on%ho0!(5|7#Y7L+7a@6EjKuP5Z0NjRC1ZTie6tn34J_@%!4+ zcQgoP+`6qI30vPCYnRHQo@|fL;c?WCemN9QtL_z1=tJ;M#FLgDiSPk?BHBQBf&bpd z{Gsl460tPy&`h%J0+Q`oy)Wxc$SeB5mlZ6t1C2VT6Tl~3?d>3SJ-_<5kZxG&`>_t2 zT)9F-EoY>>Ty8Q01I|y&z79sGhpC76^IEu+NjP>s|EP@YcQ~NI@jP4x`dt%ZC6JY5 z3J1^}krEr9RYFOh)v&1z3mt0=!`5`*0x4(oXF98Bwq7r5M^wMV6Dbo|hZdZeOX0MY(51Mn{j+VGLS*J7(-;nte-~*)y+KpF7p~@gHpr@}Q$T?vYF< zft!aR&n^!K_}?R+XgOc$3@WZ7&+PtXs$Svy)7@%jhGY@Hf`zKk!Z7YY?YS&yaEhltnBjINe4K5FbL5@qV9I!ZA zAP3`Vd0x&|B4wu(;Zd~egO+0F%ND)_$2*Y(yk2x#hv(?=F(DeS_VQ0NALBko=$!(s zBBL~TLJ`9WLD5FAAMY#NPUl3-FA#2uD41TXl4D&Dz}lihpIc2X#*;~=((GzooU{1e zGXqVWQRSXi^400L$YO_3MLcip80rof-k}!v&^>2|3984nFFYz6rWl7R&UMw(h4lna z%TEGu$5x9@($g+0AO|kYZ;RkVX!v!f5nW9t`mHGCKpbyBxme9Ho5T4H^G}uNmlqaJ z7(c>{UoX2yje?1PNyi@552AXbBsi~xadr$@b&MpSfYv7dKfuf89{XM&2Tr9e*N~FH zD2MVgugnd!L!mrv{szN{q!fXovxT2t)oQ4xXN_vWZmSXoeX^m86WFa<2&&~`{|0WDJq@FpO|7Q8*3$fC7%6hI+8ht-`SKw4bk1dtSiFinDs1`JxJLe%Z1j{?#u|A<|>`UJk z{CuYTO642Nw0>8fTg{%$qQjX{194>f1j*TscNEUfeLPPr$wXuQNY;K0XpS!3oTN>2b{+u~1pFh1gSW=lK>y_Fg}A zLR5E)&c_60`9bh8eNffBc3Q4?u)dDCgWdbLs0OXcJ>UK(P&~>&!f92rnRRXq3)jIi zT9WA3=)Es|yi6$!eVZm-T#ze(-h4F+bEVIuoqaVPyIMcqkcwEp(GgLRL*HqIoaw~ zsAy^Q#1y5ppO=nanoHla;5$nvnSVncQt|=)%w85UA4}vx>9-nHK%F*xSzKaIk@k-? zv)|>zw)>?+3kbZ9f-O8xE?+WSnAS4a2*zrS6l-7Z)u11BD}Vt;aphwLHOty4Ci`uO zaND&Jad|*jD-3h2RbHZ=MP?R40V`y0*&GceopMeEk}s*$OC*glFe-w2?Iroj;%qRm%7c zwL}QQ5nsn#NS4rI!+ATQ)-Yy>4n=UiKH_8Tvzqmzs8X$@h3go|<=m)#;MTsnAw^Hk z%4$&`sKakio(s57yQUoZecZ7A-D3&6__L_j`Z9(|2J6?vrc7pS)j(jYZEE zM_p^y3j0%J+B$fw>yUo#=uu^Y>c0vhCbljzKgEPz*$%@FnHNHz%t@iW+!n3|$K{c?DLE5 zGq$NH2QA5p;9yASiHsEbG#g7g>Zz3h%=^_u*rX4MRG?%B1NLcBIu|*$xvHW;p%^Up zRBS3wYq{>)+V0E%@uF|Q8hRNo-h~oHdw4SZUk%dXa;cYxK(~bi6d` zJU9pqlkuEy427?WTS9B`7A zB9ZQrx@i!}Q{3GGYAYWx&A5QO!LISPOj`EFHbcM~vTLCV6{$#C^`nYQQ8Wv{|1A!F z(eYir-~C!mckqWLx_L0$e~z`x*CiI{5mlShWyTZlZTE=ISc3%pSLgniquIaCr2$Z6 z^XvFAh%V84rT>`Z+>nEg3tNu{)cBR05nCksM^5`;SkF`@WGNxcKis&GryZSr6?X=l zdskS_XLCl@F0S6@82q9Yl2OM!ILX_>+Owo>*7Q$WhR+*#6Mw2`)k;DaO-e)m=H_es zU8)WWIhfH?HB1)=XeFvOUs4y>TT37}X5SdrMUztCXb(YQy z!6tk!lMy%sbndqtC&fWb)`M7;CVr%l#qP*-hza-sBJ>)oBF1^|C^3k@v%06Kh_5PT1Uh4)onQ>)C_?>v1Rjjt{(icpi4q9DaX)KtggX13VI z-{O{G7Y^|WYrPBe5x&=+o1hGJ?^+Nf&Vf#xmx5d4)M*Y z!`5S`W&ki9x#_T5!){9&pYoJmW@{V)pp9;r@Ot;0c|OQy>T@_YrR~r@ewkRfST}Y0 z@q;K|Dx|fgSZEoiDkK}siZvVqXP`_=<*VB@lgsa`_|V^>-kqFD-E5<0YHP|lJMuJb zVQ3EIDr);@6+)@@oxkSQ`}@z~5&Re9(_ou~xul?h(yP_y<;7`uMl-Re!J-0^%7b2A zw%vYZP&PR5Bu$o|5yGsrHB@gN$h@CD=t0<`0CKh&)~!ucB4(scwWgqiT1VVq?&5mW z4*gco&D?C?{z;KDj3@BKTcP?ZSKtzu{Eutx71U>-aw>#v@&sE82j$kLlC(r0?lrFG z>}(9FIahcw{4$TDV|gHA+n+U`#+4+-3>>f}2_|p*q%~ln8%sp-qcr25?M}Sf0=A@S z$Ia1qq3kZs>fxWCIM<3C^JRVNPs$*2CMMm5m3py#-`TR)sv(Dl+p4Kh1>Q1V-e&Il z{epe7+s7GW#h{mesGqUEaPe2@E>(V@oPliX8mL{FDT&nQV;={zs7SR7jg@Xu=J6F$ z%f(`U5LmUv6*8w+45-odl^o+OJv?(Tb;oMqYKpjadT!s{B>uckiw$>Gkc3;QFN-oK`UZ);ubz<^)@q?!JmdY;_B{7{h20nsing=Out`u-> zn>7@)l%AnQQFC7@W(~68`|sp$6Mi_vQHLx&rxudpT5@0<%wy$Npd@Ns+>vNX+wv<8 z?KL=qWmE$Lzcdj%wg`0n%S@e^4K?i^S>3o+2Vb{L?H6IF2+DAPeX+++{q9=HH`f;n z9$X=*M>es8bRUy)`6FcM6Jz#kAh!o@8j!aP5A;K`-l#=mK})UqcRWLbAb(D;z5}X- z#segJ-0%Hl6M!=>V(l>dY8+ z&N5@8-#ngD3OF!NrqMWu! zuK_70${L$=U-oJ5A*TE&6#gsE3Z9J4uXo!okYn4Ipsdv)`nTV<%l93jVUt!0O+E)7 z>E_ulvQJdZo#s$fOs(6=jNvz^jK6uRMz%gXR@Ble5}`s(JHYwvM2n+EaXr{b(X{Rn zp#kn_2_`+`st7~IB5P7XuX~jK9 zLx=~LvaW~eqcna`@knXrsMVr4mX65el1y$KB+bH6Cr9x_!HH4L!1UEnF6zX2GNS(n z7K5lx$K-`ACfE_$(#*BUSy=+a9Z=z(bfC6wCV(r5Zs{nu9%S zCqkb$>ES${cQN+aScIxAIpL6Md7e>j{+0XQM{Dy6`;d$e4y1w*8W=3cuz79^6~uKlLt(aXsX3iad1zeKluJ` zyXXrCz_oQvG`DMSy&$4mT`0G>Bl431R(BNT)PRxRdhPDwB6KI!PG@0*2>8Msh7@_X zs%)@9i)yK8tHZNdzL0&Hv{Z?Ce#vOPxtsHZ9@8evBJe5ztB8(fJUQQ#1<=mPL^*lL zR4&u_{y&34PL??o(j_^ysAJM$M1*Qye^Pf^{D62GtqtnGOBS8`wVXWfCYbGxQK=u$ zt%=aI&7~44|C5-`cZw&(nO)%}&Rd3KyUXe4;8?9*2x6>5b`5#oo7g&9?RQHElFdRO zzKiZmbcmSI8K%RC zS%*?IBz+|js;;bH0IijsYly})>rF4B|8-&pugBQ( z2jKZbJ1Q0L89R?;xzW!NzKg*@NVk7bF;^$xi!^S>=qG4d> zAfXiWRf{&e@p`3tL%kp1*M0Sq?5oR}ti5(o0Vcoz1CZ+wIW=tKQAZaB48iAaG_|!PMUw;md@@vQ1-SUA>?ruPRXt%EgJ|fG5lky{VnHi>o+EMZAv!s&H6lYt>j#Sh26c)K1zwTzialpNY0Lto8fpfD7 zE1sI#2^4f(bYJ9mxlG-KQug|4RQyog8l6t(g~DB}2DeuLTWA$v>zkE@%SJG!?UnA0 zazmS@fo8M;Yuw*eN2N~;vENOs|0`bIeH*rK2K=tp%B_NN{ll~bVu6A8Z>x^y!Ra0Y zv|61uEt&q7FJ60NA&JtCJ zaU#lM6l2cmgtnPLf_f&+Wi6;Is&%)3TQnacE2Y6k zYEfxTPK5B?AV-*664GX{KWO{lRZ2Hb7`uqN_BSTd34b-VQNnK=pmXQE3;8yhl>Th-eZyg+@NpG4ZK%|FM~=+ z{^p^uWPailidNM#XczQGwC#%8bqS=t{tp27HsZeAzX5_zvFrMqir>UCBBC3x6hL{# z_5r1|sD!5TFa}{yc8y>=I2MK6!3B;Y7Z>hbPmxi568x8~ybl z$E%yS^$fZ!Z&MT8$A(9$m-^e0`aj!<+WNgyqU)5%qNU?I% znzZ=h=u(IL&J4R*IwNjLc$x0&27re*0|0yGPcvDne%LciH)`-5s;iUMbPDooa^RN1A|g^g z?bEFhup;Oc zinnX~_}NJtyQ+XAceIY%d)c&3*J!-Ak>#P06(s0LxTps8u{Ya&R~Kk?DbG0e60kt;Uk}%A>D#exMEeFB23+ z$&$GdIWXO?3s>b(O)vcFdoCZB%cb|9N@4S`2P@aV)}VG}a1M#+Kug<)OE#+P;jBJW zQCOBLK!%Yq!H}7vWPk_ESM}c~m-RN=z67itTTEI|Ikk2@#3M_c791^ehJ=nm?f>>E z^g)k#pcquyo7hp|xj0^ISH%~())u2d2fRx1Ewvi+UtUCy<5W(Tk$=2yqSEjYhSI^u z)A}%DftMqCttl-(T7UFps+Zttuvc#J<=~rcO+lsQWu^r#l)rXhAvSxc3@}w!AT!oU zxmiZmN*d~{m)lYDXHYP`B9c*Tm@^cEB?P*bm2UIXDoHoJ9kCYQ>I$saYpdZ-Jf}2^ z-h2P^qt>wlle1nhgl->fLor$9vxPDcPoqWc(0ld>L#qM{`Z9GECV|zyn)Zxg>;TXo zl?&7uZ3lof*apGhyj}T#2iSgapgnwx zl|Y(d8|b{Gk>2{e^{5F$?l&*<4w%vYTOqX}A$soXIbM;+ml4FV?}2rX`mNQ!{koVLi-)~NJyKb>+@n|wjFhfJ6deLh71GrP^&ZKhR z7HG$c9W-I;Bg%&zY0d|@;gsuREd$AlI<-x9^Md~qU0wZBI0vB1j2E7LsEPyB!aK03ng~+!A%EIA(wvoRAiHZFk6uTKnF{=M{=w!6thd*)vC0Xt^E`BcLm_=sI(6|4LMqwo?9fG|_ z3W3JYNxfgOh(2+{PNr>6IA)*e=9j7B=%D*P(Q_2t#||egX1m)ftOpz0G%Q8^DcdNu z@0^desFRAIx;dd`spcAh2Zd&nLe+_(*_idTbKeLsNECg-JC@I?rsSi&{|PT8dIWpERJ@|2E2P$DYZy(gA^|1)E!Wz3C4c2dmI_ora-J zy(HV1RzY4dtNq1hi{}vj%HrdYZ(3h~&>-w`ZNbBx0Ke^BlnS0%ZWH4f03nDZ zwv)RRlOs3B(JAVhUL_U~nUd2P3AtG*Z1Yj08KCaI&GyI6F?{R|xbxypjedLH*gCu< zoL}ceu4cC68B@%;-uT8?PfQf- zywz;%CcEN&!*;<{9?F&^xw=jzM^TftXIOm^T`L6K>sG;}RMlu*TvD*twZBO0Gf_tVpVPiYu<+4v^v`9>J8S9maAL7j{o^76~2 zbCx`IWMNKer~h)F+R4#f)sm|ZQ4fA${JUE`QhI{oW?^2b%E8hQKIezk7I$9D^X*UK zB4kqe+sdpayHrO*tM{;qQhH|DVMc70ixBleUGT^2Bs$s3y$Nx|{`S@S}a>vBiN~=|lggA4$a*)P-%-& z4kme8Pw-?Ngg&p!OXff8*vsjVn;FI?ZuLLCG%4K(rX#o*uK20W+#pR1$c4fSK#LD9 zd&Y0@5Noc|-hdFcQ9)-sQB{QU|4-?v-?^%5R#J%m=&*PCN!->~P+8E}o~Jc2+oU`H z0HyQUr(8mF;fJ#xXmy^nP`hj=>j^ID8T*mWK?P=DB1@Xi73&*BFK3r7N)vF9yAJ4V z>i)Y3qCFF6`>ASfNM%0vx^`7YWGo-S@R&|9$nJ-=ZlFoOLme|q=iZWGMJzsceSsfk zs|^EGx*d8Rb+=V6Oi)uX5RPc0I6RHxZBLtHfoEF=_E`zR!&oRzl2Q3L75bq~exGj@ z1q!FMLac9+Yg$g}45o)=%+VzS4D;1kr?e2=7+zHAv7%IwQEH4cM+vZ!xd3 zi(X|tj$gBzmx%a@Z5^$J4=R(Mp4QIA#BR0<$N+m3k*?1J=~;)2G-(fLk1}Aaxd!dY zMh3>ljpdfGew9Z;*eyI7DTl1sicH?{K@I+QPe)*Cti;R``%wPt5UyC_xt-6PHdo!Wk%Orv4Nk#=t!u^b zm6@cv;TJVISBv_{AN8W*S2ccAWNg0{sP*ReIZM2GT~B^CmsAvy62jfqWs)Qr&T%=< z+eT)z;e6l5?0=a+zIhsK*yww=b{_Hluw574^bruqCl6i^VL@zkw>PebryK50W>o#V zif7#xQ?iaVdUaVg9_(vqERDQn)haVF{ zFadX)Y{vQ8Oq6ZE8f?2fY|`2Q8FkJCS8v(WpdgPXcla2Iq92W6-QNbo*bF^6=%{%V z7}a#(6}gd}4^*DP7i6TT2HTsd5x&45`$pwCgL@~v!$qwT(qWcphxT^*o=#+ua^)Ki z@w5)`PBn}eIxl5WCm@YTSwN81e5QwAdjfyhv^}G1g`{3yu7Yt!d%W%f%(9`kGcFFA zV6Bc~n(-VH@|}(f+j}JH>q|uXi|GFW;y@k0AcyO1XBco>qKa9o=I(vHE#M<{X9ML8 z;);~p)-aHX$>W;x)mheT$V~!bl!j(B`A4_Y|Hrz_Jj2mtix6MYgoJr-S zl)6<7JO*UgkpjjxHC&POg{3$5dei*eCBbeJly(zHLlB&e5o^Rkn+gE^oVwLo2?jJX z$OGLbldZoj;)}{WWVu?;qdOuahOJSe1SS}aCjAKCx=6ePq?gu1B#>%}s5W(|9LLlj zuuJ4XQg?3F;A+vyIAJq0p|l-tJ!ue_WJ>WQN9{1~vo+`QhM*VQZUCsSv|1jQMLcbp zT|4U+l&t2sCc;Zwd#`I#2ie2jcOt{hfK@BtqlD^O=e}pe12RHY|eRr>DX-#c>&k?wUhgVG_ zNQ#amqByteespI%G871X$Lk`VS7uj7hbI*-l>y)=7UNV2y$WeU1iq)_@o*0vBMgu{ z+bA21=Kv`+UXk?vMSDGB5^)%HoK7;O*PRdsSA%9X_uOxtktNlt>3u-UstL0i?6X?Y zMQpLNT^8}QGFyRl)v4A^4LQ^@Bb!yt*<1?t*3Ao8?kL!)p^_w7wVrE}2htq=lAEV< z!$fB>Bo;Ey2;@W{oThZCN*OS!+52G7j**wl=U8IvInU=9XcFGfd- zLe5Yx;f{LF&7tmQLu>SKCiZP$XQXbtxN3wNqS-u4)%<+}4h4n+HoA|ldZRX_%OakJ zMrcR%gh4Hvnr!7lL}M@?&8~NiuYfLN)QZieZrDCRd0JYnfeFiB!5#P8IF8*sf+j}0 z?e=S=KX8$H$&6YHG#Yer{`of3Py@|XhMYs!CRlTu)MxBv5zi+eO*Gl)2X+yyBMYh3 z$j%bd4J4E7jnmjo=K*llHqDkBUDXOM&uhxG=iEH$iq|hS7USq?Td+FG$GPdz>-1eS z9Bk3^Zr9#YbsIW`dz7B-CFil%7?9>bxk^|E-QpBhqr*6IwU!Vbkx$#5!N6d*0P1W+ zg97l>3kufhucS)r&h1xO0E{@wf5&QR}P7OThTJ;=IDmUufEh zM~{#I_T2E|yqoRIr%*uc7XR%6^G=;k8oW1E*<1LoJ;&e^7)`+(w#~~Tp6BLc0w(e( zY8@uASb`&}a~n@_J8H=4Y+@WW@96Z1UZ+M5@PW2g{9chXoZS55G>0MM*aAP@3@q3 zcGEh^$P4T`bXFsHS0_E}&?Blw{0p;rfU$_Vc0_>kE{k|R0Re+&?yhObXVETqwLGYt z7>)^w4@O0MYAdZ%#izAQffBLxjuBjfM&;ZBI=z+_>)WaC8aNjUW=KBr zL@HvG_#~;aT)G^#^<0mOM$={@xiWV$O=WEuVgsPr+*j4C)ntiIxRqbGG6T(D(|S*J zY6W*$#0%Vf?CLrK?pOxc!Y^HNfh#Lo^+^rkEpJh?JWQ_9_c#i5(WmPU1p9GD=m{kE>jx~SzCs$TY{Y%TffjYO&G z630u9#`B(DxRypUH23B~{*Uxv>6l1)>0L zjRC&sw5MUJlsSZ@2fpOx?c0p0IkniOcYqBbo$7ouxV2omf^*jx5D^f&Tbhj(Iau#E z|92@$BBOO<1u{`XZBBLU{FWgk!R3`EHTdU>r14Y@LL!P+BZLmc$ed($0PM~sbt=lkVb4{5i zyVGOVs!bPc(?*ePGpw;`Y?o~*Xe1h0kZN0j!v36=%9GaZeM@_y~H^qx5I3FVg(p{0XoKt4gmRb;5)$_iJep4eO zwl&i9nmiEp*bBghZvi%(h9c@^h!Bt5t&Phfo=@i1qqe=5=Hzrvyw%=D$*_pB++NOT z?WL)6%#U#jDIp{L^T+1$(+y;m2iCbS7r7+n!`Ko2xW;}Wc9(xLF> zv_wFCfIea$EfD=LRYSRJ1gL6D?LxZIhc4fAU0I-Nvnz%t;86(%C<6Sn&XlPoD6Vy! z$ZomW1xa7(rZ~KcfmWo!k0hHUyVDZl09+);ul<<2Dw0pZ(5(emNlT6sfyrPC*Xp+X zH3BqLYF)!^EMnpy!RuPR46+~>c38R#H6ZHFAYki!;?#8Ku!B`y*OeQ%7y2j;-_ta! zQ#ql9r5(GGXj$WQ+e(G%kLl2kK+&NOFEF$owLleqtly3R)I-!oT1r-nH43V zx)BLC_|qf~X*Tu@L2DYc=1NX$ z)Pb*qM7kD7TlJ}5iSFK?QzoY9)stdt>%gI6)7I8K=#Z%+jRcfW9vGaKhPV)zqH-zO z-wNL4cv-~r2}qOp$~3U>1>Ge+64z%k*+FvbD0-u|ZjWZ+zL5a0@;Ik0O+*B9iCy?` z&dr^l{|{~NvaHu}W$V34HSGqaykDA*IBq!{;c&xUL|(~V0s)*2Ksxl(`x^^XsVuGk z-+L|AsVWso5ESRml{x1anRAZegcqGAk84!)=dBl$>fMxd^;bbV&{970X#18@QX)C*%o7dIB-0Ir6+ifc!7#GGO9GRHb`xp=xC7na4)JmUqBH|0rDi5m zIzDk-NnHjtrK3kP_Rumo-OK+u^-8>h5>$OqC(pjMGt)J__>vEO)5AY0@6Eq@3I*_< z;$BjlaQxjwX@|XA2a&sTz2zS>Ab+aXpdrZWlDHU~Pc27qV7ZuiCwCKSjB`;##>qtu zU5yR~)xdGp1j)J`;^oE6%{JIX^|hI(2|1~8F32yNG=Y2}5wZEiSBB6L9~`dgMNJ~S zezsdU^DzTD9s2@}^ARN(+1$}lwq&TJb{->4M~w&nfR$`D7Wlbb>4Qq1lhT&ESIzG+ zAh~+QouG$M3C@O%WKiA1)Lpv+uB|DNyDm#z8Psd0A;N|Qyd1H2EjB4wEbXHq+*~xa$RfrAkc8J$6IzT|=#%*;%f>$G< z@k=&F709+$VPQw)*BrzXYF;U%rj!acN}6@M5ovhLfKCl`IXX5=YCY&~x>2KNDW0;l zvUHdVJPb(3&ymTZk^H_PmXT^s-J-0A+aX@R8_u(t!v!J&(=}jsD22{A;+}2T(u~HR z`R-k|+JI+i9ZOnfA6Kz=B7Mw&+^H1=h{IBNAQWB~S}Vv!CxYpQ->Nc^Wen8O`~TUaH2S%JeFUOj*+aMi&NuP3Njy0aM$Q{`P%N}%y97uh^^>V zOsXa;!q`q?MT;b}pzNLu)l?e@kXnWSI16<1OeIB)?lPwNJSx~q6|xOmF!c^%oL%}rZ42#5C)Lmtvfg~Ty=SY z??~<=0FmHnQZLe2jVYw~ynlF$7l@>W)G|dV7QG7Ow2g)YZ}lLAdkn~RPC_HYRGDA; z3iTE7&AOCn@Hjw*Hx)eBvb0~rux3w49aUAMb$94R$k&E?jdCIX7#~y?S%ftcToMbYh}Ub6*L2@BVQAJdV+c8yOh>8N zNprMtcE|t&TI2zEMlXG76uTX#2w=B$?~reYc>N71=M({Edh-j0tOQ)sVS64TU!`43@)WjuN7)-`r~(gc@J8+ei@{~3;O(lzUb)n*8&q+FJQ`efKk8S+iVTfx4(IIHM9$hHsnz93R6q$}L zNmZ^pr82sU(|&8S3)}2X?|dVGJ2@N2&~yU9Ly+d-;m7v|<@GqHnhRN1BUQcVZ-;n! zF|D%s1Zxb=Oq2y%&77bh#mQys_R^uNa-E@=%3>NyIbg>ertadcnX2fo;Y<&l4T;qP z@A7X=?eLPAAYMc5NjWylW>izSc7-8(HY%CM8vICZuG=AAhemwDIe@PDyOPNd=DvqdU4XTXJ%G{b=WtXx3HC2Lk7##|-H zkz(ATYs}v^cjzdZwg7dd-45~k&Wu6&T2yNouSO^ru&5eI&s=WZyv8SQK&K37uRe9ZM#Ym`$EXe%F%I%GoSre*15`%`25D8K`1uaw<2$zq@ktll zX-m6zy1$U_Q}T=NZKMn|eIg4rUB|eQ*`9FAnS9FpnJJ>zE09?0EftY?j{zk)1~$%b z&eo|pbgbDY$0<1gh*+gvQzJ`jInMaBotmm%qsHMM=GM;4kB#omTH3qcLk-ssZ0=KR z6>t=4a)#{bf@)D(@@0q`KirN#uyZN;X=+CCUX8pdgb?IhH9#J2#2KXnB#@cf2(S+4 z^#lmZi(BLS%a$5Pm1UQtJHRS;rv2iRH=t8hi4si8&Bs}Qj+*5({cyAkfv`dCelAYB zG_2r{R{N2f8OcUgPZ;@jh}Xw}@=hI^<0NZNCEQXQaCA;?oa5Icc;< zLwTxFSGM4xJ%F0r`nYxdz7<{E0m?S z>-4&W(=eqCv(4I4*^UFGXLIs>j^TEQ*LSA$*d2Urd1!gy;OK5OfqoJcqXRwM26i>e zdb>G?u(N8ZY@>IqcXDQO*X)?E11?;MbHmy|OHo?ghrN;7 zi(8ZFLGZUjyu6s6jaIee`T#P!#5VpAzp8fp;SYWUPfC%DO&*2BqRfnGZvDRDDDyg^it|3Tn^ie<`x4=`C87DPy<=VP;)Zd z5sqtJ&*UT{-}fPN=Ut`RyRFk;yjP7>=QzJFj$7P3&c{s@Q8SsJ%WWx4h`Df@YjgiBjRFc0gtuS3xkvq8U_P1Riz z1wS?`|F4zXq0QenWp&*S@$$}$)V)r=3DmwmrF$G>nYv8qx>ish%92?*=Y7lfiBMsd zH%o zEz&&(6WDGy`-zOGl548L5bs^pgPV znGn^g&CVprb}E+i=kG*%u?ueRB(J9yh)l{rlN@ANDxeY-as~ozawi1X)l`*`D5Tbv zq+SJ*!tD^R&jHzbuyb{fWvWcF8li;;?NNe-_vlJN!`o~G(D52G?I^LpqFc~g_gmRt z>m25o>n3QdG&C{`1fFK>#i2=?{8OxC(TS*soTpqK`3>7h@&sbEZarJ%n+&KoXj(HI z7zYV5&Qsc})wAT5Xyvd8KvbMeirBzjHW&OJD_!b#$wlHHkv^FNil_7DFzy9h_ode2 z^`)zkRY}f4x+{@dWYy&y!Ks?tpHpPWhqW~09d3ts{idDmIBIRdt9QA%qx(ODkvUmP z=dL^XN&}!QsYs`WtOb%k)cE$kRe&Bdpx{r%u%Q%dY&S|>vF}v$reYkYze|T_=en9k zZCJ?F_tDx@h~FKPlzZO}@%qjrie7>PW7tW>VN=Fv+HrQE9INp^-9XoK)HtH-u-V8} z_c82>TbG47UCWte%6py9J!P+x$=p(+lYqSRte_O#GN(p_Ol^GS$XFWw_CSEyxxT1e39h&@Ud-6mbamId32WAOvsUH2w`__fSYoa z&nUo1Bfe6K%J&jdy_PeVbS|I>#cSL&g(~e#-4V$IMt3ibH0~W=y2V6BXi*f|$qS?D zvi)|5*W0lBDtW@Po891FxLHl5wc2GaU8PZ3_5d`OR`~AfdgNzuLSnGVa0|qhCk*Jc zx6Hs7ZB@TX0aI#1a%*XM0A!iv{lqvgj-VX74HLsb~w0p?a zM0ePnB3p~*qSduSZXyx!m%er=T2VKb`YMLT>AJf`C(DyLAago9Nt$dNU_VpvVmt$) z0g)W56J3`y%bcn{lp{&CL^XgUPFt!%(6>XpJ_l4o)IRJI=ytG*UBJhr@6L+tXhw08 zq)jqyPms((ITf7@YEtUAvU_gSFvyYaxD*g1aq{MG^Cb2%y(poLv>%%w&F@z z9SV1HW_hB7P*3}DdsUN>CJfWAfORranQ&d#A>n-xrEHcCsfn62jp!y=xbVL&v~oMd z>zBh$&7)Q$kuV>ld=9SbLy96Z@@-+n({b8CZliGGeX>ekMD@&!CXBWLUF5HIh{Sz94(YPu7)P;@US z=Vil+hFW$m$K}u%on)1}J%%QMnPZR#ZuU5rcuhVtj|M4AvK{MkMeLv+3rnw(0sA3) z6AA!1NRp+g|Go6-sh$n=oc;X}Z_Jx}Nr(V00qjMZMw&PDv#ga28v;PodiD_{+LPMD z21Rl}gcNIYx3YV>DARsuXze7O{h7+9o@b3gyXk-+(}6~G^n016IXN)+EH$`AMshyh zl3ptJ7*LZugiN!xTtB9fe$6Vn!df#*m6iit#N7dUoa?^TF$^i%QPx_w1_VmJwwO^; z_P#b*7D;)9DjrLm9FxTd%}o>B1l{(Wq7f6=8D(s(8*ffqyB*?n(5}u6b=SiiTIlkp zYK=1@P2X%_x_n=mh1(7;;`f>aWiyh%hnjnrfz33bno7Qrs#xl@JDOjVRmRHcFTYhl1i7^R&jSqWi{81 zxmpgotCA>+p~~u*f?e%4yHE8L%SW#t@}qW{27GV8jS=Jw=XL9SJH+eH7IjymI^L|L z4wRx~*gF_Ad$>=ce7o8^8&#c~;+5*lW^>3hgr&X{sl5i;Ck(+WNoOfEEIz2bn(Kt! znAyEd|HkC3TVS%}%62FoEI+|(NJylW zMbWP#=GB_XOM@bO`!;XQAJ@kW=u}^T%{XO1q>{ei3gk|SGN=PL8&`@X{yaQ#1L#w+ zliyXkPiwm(PaAtX#5+b+@+Of$OwbKr48c*^30%UokYIVU*WkB&jl54)U7V#ixfqd> z?l7S0FYe4hWzH;Ug3idc{IH6Mv0BbdoAOBoysvr~6Rssq$UqJP1TSdkEnZP?8lw6l zTYx5E!dwpFR1+p&8vxwJe3#XoTQj7Cs^mTvWXo!zH&0-|ok+tq*Doo-NL7tWZ3;+j z`4pvGl)Y4VShcL1?HQ;$VeMdx`ncWzcqrO9gY#Opk#M5NgHq(z+F{i zyOmLz1v0PVHwAREyx?WBgYC-mcOrda2Nchh5HzD?KoKFdowMueWsf;nb-_w%B&rMT~k=S{Mz^cj!gU*E%|?Mi@92 zJ+eX}l<4FauC!TQ->@*gxQ`8J-#J(+`Q$09cP$@u5q3Mo>&LuEc6J%fa|W40*j55Z zDfwc9goJ9ET|F^t=zX#}vZ)pEg>zVYOPZyYi^{GRVAi9zLn6JJ^{QidHJEG<9g-Jn zD>8%`YA_^UMVXiYMM~1c@4g-4b99FSpq zjGjb3$?X(QHo;1I$FDK#^zb{~9=*A(AL7of(eEK%Z`|5tZ=+T+iljfTJNV+OdpZ5d zFD(Iv7s)&(d0ohAG^*7sbU#|X^C)f2V+NGtx&0FetyZcFJWMaqCHu)A+sJjrk;91F zRyChE3+Cih?M$B6q-wHvR4IQC@p^xz9)Xq)EQ!4Z&W)F$Xfv(rim-=Ri%c(OQ_rq1 z{m?6{ew1Z%zJrLZdCY+7Sx0J-gPAClMVB;L-Eu*a zn$^vcTe}_Njbpwk)9U<(G^&|LXxM0GvQa^UX?u3ZD#Ivz^O|UCGu8$AjQj-Y)-iv` zfLu7snb4m-7A#g5TO6UdkN)O)h}?Gp%iLU(7``bIf15M)(3XtXI9$2h4)Mn9B>XI< z)+P72&z&Em zx$f4y73t$SAmdJ-dUNrUv*S(l-RY7)l5MgKI`?+D8;;PF{cT^V#ty$IYA$wa9=3Oy zU4IYp#vp2x&H(ua=(EY4f#s}LZ6=OlJtqe!r{NCykRidssOAbyedj^qyc6kT2ISnS zex}=MZj#D0MEh@zq6HtNEvxIA2YByJd(7`4-q1A~3Dl^U z$em*c_^dHY7(LceRMtQjEOpJkx=Q|sqQ%0=s%kx>e%^_+Ub0Y|kend#q6VxKGNVqr zRyw4XFw~wkt=SMY5Yu!ffTT7!50cb4NhaKm@XqL@@lvcB1D;mLbfuU;TzZ1cVQv%M zC6byTDQ* z$L$br^lgE3B(~)SUv)T{V5$wm_pFYTwA2eFiN~zlcvE$w2*!lEQMK9~8$$k7*A_GN z>bx_WppyxE0#X)^em7|jQ%aLFDw~k%4hUYO$pjAAo*O(X>k4Kkfy^C7 z01QdFH>$DGn|zq$HPRIoy!0@Q{MeTzV@H0SW$b;R{CGYHRhj^Wud#Mx2C%PL5xfy+0QmBuiR~eQ`kI8sa zxfD<)2p*;hhLd3#MIhZuNa5mQvU1%3c*ro0P}bO>c>bu|cztK)U3*uDeXBCP-4vGLi%R4S6FM<0+Y&a%5^5e@k_2ES4*HS=#T^1< zpGd)-3L!K%f|s+b%-mp!OH)hcFr9?!dNyJ#YRdN#yIDq;b+c=vq3iL|-wyG5HBWlZ zAEiq~QHtG_oT`8e4C{OnXrX0V3JqK6&${`IyVF zCwGDH+O}e58-%V$!Ja8UdKK17OJWCSC)|ARd*6Ek>LhT#(n^N&k|Yu1?Oe{PeXGKT z%OX0*hvt}pO*F(9s*-<|I{v)^^!N!VpFW$rz9b#3{$WSbJeUsar1>R)(AJ|1I4&mH zailGAjzB%qz3?``(Ayzi$LuBT;#j272$YJbiBF+oxHp87T`A?ikhL9F5WE*5H*!E8 zav8W2>60g*vua+*E^Vz=CAiU-x}9We;i)_v{7i-qFd!h2-UJF2Kk4O9^2+qJWZR_5PZEt=FBeh0S>VuItCU!dHj3OmINmzR zOG|?Oc8E6&1i~t6TyAE1^5c{yT+W%gt?{6h6RE$-m|-8bPf<9t4~o?U9^C?Q&Ry$u z1({dPmCEYJXKz7mdrZ}7>iKlLs-ZZ9nL^2CtfS}9P??lY3qhZ5>i-%-^-L5Bj*JB{MMhj{&>WA@;h1*yrEj0$5lxMJZLKqf#&m5c9A zoOcco>_V5&WCK@^@#%OcySs2ra@cEJGgHBxRX1*|9opE2BZHEiCY0UE&ab4#8Uozd zqABqMwdLRyY26O-MyrwhSX~{u$DX_Hs5=uiVtYADM{f%!J{^zI)TAh-Ez>M{z<>kR zt(6^f`qF9+u7X#>;?8N@i0%Fza8TB0^~A> zS^LiAz}eO9w2cc&Wce%G{bZphAGmBvW#3Y~0jrZ1iZIlzo%uuz+nm1a>&e8Ds+*Mg zts3ez4!b6m+rZWK0DQ3Ii%-n|&C&d#7O+3pOn)H6>(EFI)xFsYR*%qI51Sl@9XXOA zJE@L`xqy`=_ZZ=Gf&C~WjpX;uCm@%v(MffudulnK8LVFSp~b!nYqumIl51!%NKLEM z;iG!sTq$}67*%B5-45~kOYgKTr%IU6@T69b(lZGkGVVFlU5H-&xojE|lS`6GTVrd4 zg`!^X+_bxL?bgT@SL)$5xg=y(VCQ5}Z%CO#W7`_K;7H4I5Wqx|T#|Z)#%dTlX*wb?I_ zEqK_~oemn78%&~AvQgNLU6~de6J)ZDgL*iQQwu#nm7wg6AH}@oBOa5oobKYjx`7ec79x|u8AIeDp>D7mXCuR7P-RBIHZT{~AEJI-lF zpoUsGJ%@1R?GUe5^Eo}(0%|@v!L7Ouf%a7taWj;p5QTov_7B@8V z5f6n?){SotT9*r5&cy*R)f}}f$w+EThv3mNSHknT`49`5<%;vl2aa` zW&j@l8PT}8EexL@F-awKEU@SUtb8SG_tU?(FYVL%x_;X2)3^5Zw?}(M?-cetr49D? zVgqzeTC%WFc1{JzL^Fv5+j81wPd)LaRS=J{y11TA z-5U}HimC6zoGO!#plG>DXBeagXx~2TT|XA{Ul2AKf4%YR_P=J5bDTeSnq8AuaE!f5jd6ahpV;0R)Mc+ zU?f)KIi=t}!#PL;CRafw8x{`}0hc(5D%es5|3iB4YW*)i!|V4?-(G%QKYf2u&_90H zPy6-rr*BWL>ujy=bZ%9yM$z@QQZmy1EhUzaIJp!kJw0~F=rYSgi}?mY4>H5a&Y99+ z=6^-R&+FCM6?pCJaObT2xvd^L^!V$>@Mb_nY@IfRNYF-*d$HkR264o|S#Hw(xfAt% zdHwqBr!V~GN2?t4T78z{heXdj1SOUkDjeVS@8eH1y?O>ZWGz~w=P^h&IYLT^R1-gJ;ZS>dLProGKZ#m`07EJDD>z2^YIz_N3AAM zEB@hdudi^TVC7=;^q4&1j{;xUpQ_(3Xizr6CX?h>q{LB*w9~e(2d9(u?ER3RY+z^O z=~dgVx&kU4tUxvJdXJoe-8s~{W2QB|#-2AM(r3-?W(g6GBJH&~=lo-_KF<%QPm(h3 z%7F@;^$aByJuzD8hfEX0D01dDQrdFr8ucR;Ya~&)W#9Wi)aGft`KPacdHM8g^FlVN zv!~P%4wCdRwu}l{(3lq$w>h~wvQ;@!Bahyt3P%QR2`~h}lhH{~Q~4i__W9m*4=Nk% zI|LVelE)w=7TlHwXv`*CqKENP#{m5DBn-C57EG-PF>ng!?TDZFYRRzc3{RS=@tNTW zFImW+v&W3$a648x#>)(@jvgmCQ#B&EZKXXwo6nDQG~XNQ^~$D4beJ_&YBq90pJUtg zW6Hl;3&*H7R^YB*$AOGeu3Z#A-GexOzSD5|ub=Dn>z~2v>-EFOMQ}gQAHR4O8hrBX zo3Ek=``CS!Fu#Y>v39O%9nFqzF>jqFd~U(PQw&fU$S zYYiwey$vi*E99Z>q&6U_D$4(qyGrsTQ8`7lC~KH4Q9}pWI6v@w-Cx(&KmVN(fB2md z|M~y^-~YG&_J98G52z(M`wRl`O_h+?eA0&)YOr4cMCDhBc@=Lw=&wx8S}gLAdI-U- zEtaz70yZxNc%)7c!0TUFTS)yAo2nR3)kxK;JY?o({mcXzvLyYg%{9m7^n$uHhd66s z3vPLHFEam<cUib(RF@+LoU7f zwBTN$gV14SMy=&;fyQPqe>B=>%X>OwYmK~NpfFyV9$Bs!RT_y+%~Q}C!~fIKgGFxG zgft*TC|B$9MeprWz!WM~sb^R8z?E=nR~dS!Mv{<&Z|%2kSH0;FR`?>&FD*9nutpa& zFa|0t7)(uUdb$yb_yd7HeTq9Zece%Rt|pq+Hu=G&CJQMk1QzQIB@_s*nrqDh4zfYu z-d5uLV60%SC9>b|!j8YKfPn^I&j$wiZ$539Rfi8*fB86^B&s)A6;kDzdXnnWQ%&$1 zbX=y9B&;5iHBdB+tYR+(`?t@pALmc({HO0UNpS8|E)>{L$;!iKHSDefM#t3clAX5o zBarvpCJP6b;bL&!!p~-clV0=#4YYU1`t)#}4iNU{N3U&@x@PwwHlP8^SbINUEJ<}P z3owKmTFnfDvhC6Ru+*TFZiIVW&OLnt%ORic0}a2pC4)fHRPQU7UO4b_;I)Y2gu`IW}x;ht*L29^R( zrtv{Hfrre4Op9aRP{QSAmwISxq$pO~y(5@Q&=hc-$BMPDIMg1erqak*y_z&YFMC8Hhl+!kH@iN1JMbgFUX~|-H(welSeotM=QOugMtDTPjWO9+!MX_y> z9X_a^Y5H0J>A=nQt^IlY(q3UHVyeIX^~;B!zpt;~*zU@#U;p&)Uq633eak4PZ=-R- zLqao6@Xj47@3JzK-3X)v01$#60?6!9yuLeQnx6BP^kqxwZ-@8w%Nj3F0t4foH``>n zeM(b(^4&~sW-hg(x(K^=(AOd5rl8iPW7cd39mA<1d|gYtBd~96?+>GWnlJqAXAv5I z%0OV8VxC=^%J5_vwzJjb00<{?Igs$xMAa6N76~w0N5ZAplTCB|=Z2QE5WjzV`S0IJ zW&iQ3&tg2i8r#K}>>3rhjWwae(2yb#jny^jCgDv_U>r^sPM0dpTG<4qAydP%5Z9-_ zzEGZjr2zeTd|d6*%cq||eEIzGW&HLyx^soY={0OAb4M1q%91@oMkG?8epu40QUChGx==Wr?7LySRHbCd9cOA}km-h8aORMY$X-&sgO(fL{@JDQ zafqCYFYDvu;7;4*YWJkD5!sUtqS~w8l1ny}3*(n&?pC9eiQ~>vI3(ob-r1B9wy;Nk zcW{3{8&9_$yzVTsEH=^D(hk|s*x3mOe%sY*;f@~2==4JFr;i$C3PfLfamfJJ+CTR} zJ&W<>)600W0Z*q=eH~lc{AK3W;W41H(52)KOGw}*qv^V(iO-_90e%WAvACYrGV7lu zlAi?k`Qs!>e|~L0ugB|mdPZ#116HshLtT21Wqp`>92_f=@W_R+%;na|dj$297n2$> zN(!ZswBH-z&+F5AZ6A*)pTw9?d)-pe8;j2|h0=p3ziEUn7AakH4s#=b=uwCx}n(qjIs|YFRrp zW*TeP;wWPmX-Msv-+fj-w(pu(REtM-)iN2?}rDaTlnN!T#X4BhHGQY~1mVgoE^ zG@(;ic2WB~=e-oWC+zCI(W%Ag+xpZ#jr9S3`j@Z2eE#wzBc9!+70{^h-oX;2SqE=e zeag_0gS6q&CVQKA4+HSf<%}F9kO02kmQ_#v{h@wpeCto&UO#_)o_NY>NsdtF0sWK+ zgRZXU_S0xbvTUZ6m=A?LpxN=V3M7keG|4!O;oWxey>WhdUBAA3|MiXBcq)H>xcjIn zF4*nWKUqxmx+@`}_vM_1Y5UH3W>S!BI`sM)bj6y1lC``)#2?6^w{O2Z$&l{UyvFuo zGKZu2W>uv19%-h;wn#wP#yF<5u*uw@pXDXXMfs7OwfgSg8{*eBUe~t|-`Zc->!&A& z=hS^2$nTF98k5Uz6b_j}_X>JoQB#+TY?g(D@K@2g;tGUw?fe zNj^T}oYm8*n#^XKM6_yA$1JRW$Br#8paHg!>txMX%}h9Nu01nRFD$hC=YTGwN$QrZK2*Qids8M7un^Lqm% zKd#rGUkP#kPWYZ5op?S8vgMHnww8}lBU^&cq>ecy^f((OC)*+$19Fc|q*wLSlx|Ay zQqO*Guz!8|@*lwaYy0^5$=)=lw+ur@oa{Say-RNQCMi$pHvn-*KRB~48zdb>f)A!_ zO;~`seFCPxdr|+^z7pY=*Uw{p{R&ij{OwN%dO`avUzCY`UIBufQ*%!8nber72i`Sw zf8|H?-g>$7`eXrbMuP(O4Sw)Dt^fS``oihCcy4CS1CW-ohE<#%!A#@}%i2QXx9Y`( z32tYB9d7FR*HKDm*vIdCtKR$wZGBvP;me`v-vVmX)zt`VR;Uc+kQF32AVbgtE;T5~ zBg>d^h^??g8|TI4w%_=;FQ4`+U-k9-`1bvE{T?Yf=mqZlI6vem+=N@IBkJ00@1+3 z!YPpMrdr6Y?!whJzilN(Fb|2O!T56yz2r<0cN4S-+<61nysojn=pOUQcRYPf>1#^b zpESbi6f#-mAhP56Qk)w*jpU-;E^WC;dD&1_r|W6W->+5oTVZ`2-W02|NIC zK#spir-SRm%gj#wUD+;qZplojl8ZN3Fu{h|_uZFDAs%)^qWADp{+G1*tl^DK2E6+I z`tt3!G6^AiA-WnwfQ5KRStvimFR2_4F;1DzqtRfR!~38oz|K203f~#`vZ8EWkeiYp3Br;4J66!ung|uim^gIvt)9 z5OI1H8?2Nyj_NAoPBjlE$gi!oOEURrkdm+_yad#=LJF{ykoKG5eVXlcK94M&Qnqr; z7E85rCO~it!+Jj0w%{XMliWx7>t5CB(yBgY9&*afEB4|28>RFO`cqDAH&zc|%tb*o zBr{+UiGvtfFFgunnjRFP^oB~Z1_iQDe6>8f5w41=#|Gvhz zKmGi9em-wNeeir<(k3rvieD7)0#28(q&Vii8W^E^0G!Z$&hjRZajDURk#vN~xc>yP zzmE0k01q!eE_EI}GFl%?K5vblng5j>b+AKu?DPXY<`sEHU-LZK) zWizz=o6%f*SzNIg&26zGwjq?XBy~b%&ak;KhhC*7oJfPH00iSfhLSCFLjl>&}-JWqLd|4f%@2-m3(^BmB>7*_m?>5`0x4z|DosJoC$D+0v&7iVv z(vl_4E^R{Npcr@JyVhV`Gbb;!s;g)?80c8z)hn(*9=Cps6^!>XT^KqIP>-ca)ZX_N zjCd)n>K4PpIGnXLxo@shHixg;W)7W&2d3CsARDY}N^ezQ<=}fXj@T%5o*uzOhgd-}v z<@K0W)RIcjx}x<`5hE@i4RmOCjoZu|&m&XA_i?B6fAQhpKlewq^Sm`Ljab_b zx(v}(Fhr(|Ab~Xt7UXa89|DDFcs;nue^d%bw#6i;?3(Tccxl@~Ddv>MV^0zU$$-J5 ztHqZvr_4o3a=J%t#w3t%f1iAqd5BIz!**wAOy7h3{tn5pM9ePB~ zx}jxTWVz;Acch>2jxg8%811j^9ZL!6Iz2QLbP9Q#Cbzo4`=CosjN1F%=qv8-R->%R z3bW)1Vk)U*Fkhya@w@%q7%wekq#P{SQNfSwluLBZ#JS)_UVlyzu|61QRtex0=b$zG zUKo@bs+)aBkbfVb`2e$f`G40N;5fT<&NV6h()&wbCJ^6(|7r&~BY`GpACQGoD^78#Pk$*+DPHCd2-e2U*Nin!=e6VRN+NhOe%WIWrU) z!gSV>*NZcMD9lScl;T{5UWi)QUbLOmEf(hCiGBFyt5bPuP^Yn=brL9*x*~;$THfAs z)W3XeW2r@uNOcME@SvY|E!GW{9+l##<_B3;8JCA_*nO2$K_jPjBl`fDlSclF>8<)* zGi)=&aWBAY48*5xeIHewm2Abu<}^^onlgae#Ny>4BAN6>(NqhCa_5ka1s}c6MOGoF-#>>LRu%3A|A9@jhKB58d8_~I0vos`CbWlN8)+Rz%M935ZE*9_ZBFAo&VKDm949!ClK;Ln8B89NLhh zhJ_MI<%g}`lB{WWi6H7(%-Bvv!cw=4CP4> zrp*R|D8uIAr$(XWw%MfEvREw-*#vF&CN5;hJHz_G?qBWKhqs%jgdaQ4 zlx1CPquRcY52p$IAXiqk2p2uJH}6*;P$EBby&T)MT^9ASBC9UjT4QNMwTvDZ0@Ym? zJEPBh2np!AAhFQdh2Ffg{BnD?a$nZ#{`~su(Z<@p&!5+~hu3xfRKQg#3?XSI4lcuY zlzynIx9TN3y~oTqVa>%X z@V5;zQ~;<)k-q)3P@RQ#ZP@@q+jf_dCUCk_`UfqRk@bH?+Ua^jCJvMMO)bR{B=jYr zWzO_`Uu=I_ub`@^48TELX?}uf?G7FUXCMYMjjm=CsAh_-4>NrM3Gpe(EK`X_ea3)- zeL1#kR~-P1FuObsbnWI~=o_NK>ZH&+n2i%swpu6%SDKe3WTN$EC6jA1&!YR*`p5O* zWq$ZE1*A5o2M3iye`-Lu%;Zbj-mDytt*o>(QYE3K8YT#sWlKVuElDd#kE>1@cusP! zzZ~18JqL;nAgEF6f#T#lCi{}5MS{wZjg!=bs_dUAs+t^t8pxcbOu247kM7(0@a?sI z`r4ko>f~^0V-cvEWPbJ4v!g(9uq+LCLlBb8;GutW+n}+{cpzV6iY=KU%FhtTycpTF zTl7$sZ~dWp>_UQVQUD-{K|^wS>UR#HF0r@V$80rs5VAy}DFJ%p0Cn4JsgrgJYI7iwv|POw*flz; z(U@3W2oM7h5Y@p}iSx7Y5H7qWMVSUH(X!~o%S=QoK5#( z_`_I}1=F>%i)->5R(BeUIU22O+{vrZl5wRuH6)DZ?d9OEF;vdpj4>TE-fDwwNd!vW zEb?Ot7CzIHQyXy}l8sz2tW8Shi0BIJL3C@cPhZ#H|M&*vwIuOVc_8YQEGm} zF6k_%-Aa|+T9YkuoRxn<&+Mcasl0H0b9QB2jqTc&V+*BFYywv{$>>7YDOz?39FaC6 z=yHO5sih(CQHut=<%qL1>15{f;Qk|>eE;&7wZ434W4wNE4?%D|?QnLkrl@)3A$;D{ zI7kVAV71ka{BlcBYfjK;dXP>bXCe-Yoo(R0GVX?WX#=j#$0B=4EmBS_!W>5C6nT`U z7EvpMtxzG{BBq`bBzZ_bINWM7x)$Wu_3hio8x8}K zioSzC3%N(ECyuBIi)p(i2eT1dg34ite2LSQc@Df-T# zW`A|Kx2UOU@RS}f)k+E?1Ri_9Am@A*18p=CI{!m)UMtI!vmMOPn@t_E5m9HSUf@QH zffN+|>QGxS^O6vFQO~qhuO*cwJ%Y~v6e(Z&;T4oWpI4M0Ze}IQR9D#2v7Ngg62q`^ z*rOyVYo9>WAd?_YPSntf+HCf6=~7&mQsWdWR7{dfZ}MmEAodu3yqK)w`D;RNMJiVS z|6GJkp}Q#9E<|db_nIkk9*PORmcMzIv7?6hJ+azR z;Oa?~7rsnacM+fmX)>L@TgzOiObIrDtf!{X`#PL%Ce%2)$bO79#~i3d zNv%^>5+f6+Xo0vh{h>Ioo$97OuEE*qeivfQaL&m`4!cpax73}gg;lLlhaXi|g(0*C z@Q@mryBg`omrv{K*SDI^&gV#cah1Gi!;ZmAs#7-!awl=lv&PH$;i&V?vy=re#eRhv zF2CfzWuy7Sv0hqPiesWS6P)Slhf3t|wml$;(;inG0Hdv;Te$*l-3fNJ$ypz~-=l}O zqy5`z-+m!ENx)69KFpi$bP`yqCNjm8!UXglJSKqTk}#a{Vxc`NS{7x=qP-nct<|^X z+0W)yeAgOqDba=60!*YNLZc!~%No7Q?^&!wf?$BHke^sj6;PXDWz`3h#`X_xqmOs2 z-~aI8=}nFErwgZfIi2pZieBFHro4r0ovZ?Ekbqm?wIyeagm~9fok>$limSp6?Uk@D z)tjWFu}04g*6CDUT404JC5H@u1#|29FXhzX)S5He-MP$3(Fm+7?+9%C^7#pWIk#I+ zCTGd4Px5p$YP(Xm*pyVDC6A1w*`cdL-X{$hNvPe`(PZ43=fh-p8rHQdn!F5bwOe;6 zYk&wKd~o94*>2mw7{;RFk*712FOv}Yt!-!`Lkz6FC$P_-=Ccc$j0X@E=a zTTd>q%^BO=S#ML47a%WFw+H#pcRMsD1`yKR;o37^jO<#Ew~-2U1WhZvD1qkzJg9tzczwibOT4Na$y|zFC0|s z2H|9lVQw}2Y-_jaaV*W1mf(0ZtCun-InAhXU^GL1FkwivLi5#~{F|n= zoCJ5+eMAuBJA!-pq(N@(Tr1z zV7AGUapCfhdZZr(cJbo5=+V(@n5+*q@>-kJK_=gcne=AwdeamO=R%r_L9ZYZeCg3a zq}~zQ8%RVa>Kxh+$jxN4Tc<%g5N4;S;^f<|XjQC28RQ&)DX?n| zirE}GTV~}%!m3?barK~LE|JklD&XS|*_b=5l%yvWT$^?G5!$0RsJ{cFe;}kc_L|eJ z-s!`4YE&f;>ZvkiSfaC11q-gu*)(O!X$%?C1b$B5aT2!1FLfp79}W9F4ewe_D1FC8 z4yj?ixJjql6r%XoR%NES_~=ekkm zXk@E8j{0o!B^^e)-gVm~Qm@{35GT3ClJP=nbxNl=_!0B<;I7@F4$^CJe$^s+1Av76 z?jQHPGP?^YHrtfirt1AHA<3GBBNAerX}mYQ=SMb#dM*>SdXQ|3gF?#rL9bbS+%6TX zl}do=sx5oiJwQ=vF%J4U)&!~lt9i+LqPupF>OmKx?wYo6|c+|#-34RUnV;NKdQunS2x?|ps?YUk&NAa{9 zPx|Inqht`L9_7>|_@pjWTO~(qTQ|}$?Rf?2)zYXGtJ`%@Gw0$;T-R_M(7zdzHry(k zO=gvx?wYVEp*3x>(j=uX!II1;2f|Me>00o9)A!qfJ+BFgq8&~Xhvu%Keu}Qx1aGf# zYPQx^T{cBom$OPNXsS}=4AP7Ob=K{=v+GJ+*LIi(d`OyY$vjiHMI_g3<)gV|MotkU zm5f8_$Y`2EwpNoAl9%Mr9x$1gPePWTUw`|@pXpJ65ZjXj>isE_)4iYvx~z5``zQ+w`=Cr~(uSpK@u+`9)9`H5$XBTnoK4mdE zq$j-{Dr_n5J)zs<$0J1uk{=C&Yy+tBuCK$+mET`TP}JeQM(GduwsfU` zh)aK3-=u;4R%?q)S5HSzx2@_JXp)t!DQQ4@LWg#Px=!ntbaMd;8X7s;aiUvMR@&ge z_NdqES#;Nm$yD#Q8sC>`aY~Uft7C+0xZL1yN2#>Omd5l2P^`9ZwXeZCY*~-Gg8mWS zm(PD&uOEIF!+IiTQBRcwoS|wYwWZ3Y(}&u@dn^rLKIcdTa&_92VZLpZZnz9RtFa;J zxw)`%&Gb z$o=uz-JK8l^ie(}&EoTk$#P`mkWvQ;)Uo|0fye=3SGmDi8MyEZd~!EupMCA{_PO}i z;I188c_%dRF%Y!0m~@ZgV6Wb*?Xf2le3G)5Ka`qB3hEK!%Y({N9*;Qp=P&EWP{@D& z(+}hG=hyl2=~>4z!0vPlO0B|$q6}=injZs;$9bmSm>y^7X6qu>?xvw)lDJ8Q7+KWL z8GrPw{GKqcH7_f)DdQORDP?$fHjye9I1y^-pR6!DGEBDN^77$yJL$D5coTsX=V5X( zetwlw^q~&_AAkN54 zT|e6Tzy9*_J-ZSFEAvOqAjYkaFM#H27?d2oJlh$5YJ8Oe zP_d%W#Q%vZjC0aT2AQjh0aD#HFcD3PlM0zMTcL@&We1!AF0U@00w)B3 zL?4E`ALX@YUHL+R{Ux9*O@Uk}K4w6XRRyVH`^pO<_|@P4GZB>uFLW<)@pcSF3!1@$@( zncc9IDP7|2tZsjE4ZcbTyXC;C&-{!sT;7_N1vc58<>2*bw*C;f{WDSRH{ajL#i!HG z0J6ShmD#N?GsyJUl9qZNQ%ZlD_#eiH)}~T9C&lHpEzmJ%vTV5&*TsS7*nFVC0JngU z#>uN^mSnmt%lGPgm>~}UxoI|SLluf4 zpt2O>(Ab;PkpbE|K5T50-IqAiQwloHy<`2}xF?j5oR}+dT^!aeRpM+}{d$C?l0XTwc8o*5L=#pwlhc|0d5(V1ThyF&G`^wn;Tms(Yoq zJE)7VlbNKN*)B0^q6C~e)d?l@MVURN;7VF6s1-cMv^D497dy?v`C59qREp;v7g(IE z(_z#9kF|H(vg1gOHlIl9I3F%&t@$tKW?ld*j${o16jT7Hrk;L2%K|_)JNK^2f?85H z2(ksQ$Ow0{2zRr&Wk8hz$w_vqBbL#JX8bl4U7f%?4;7EvZI>lWl;MhlmjGMMttb0i zkzJe79ixZIUZxbKP3C%Ts!u+}-dIbCHP6+uMznNS&Z1f$H~Fhe)c3}d?&q(cKE40r zy9bB3`Fxcap)Dn!RnRSAqdtdirZ*?2?qIDwDuMd?yI!$$vN;3ZZ#5r8fzxI|%YYI0 z_9(A)FKe_fc^mC93Km0CJ3-QjxXvqA?CfNJ4m$shD z-d2rrBfwbiLc3W-c6w>4RmETL6LlME{5+6uk*5Tbl}!_EwF1B3U(hOp?cdl z(wmqGHr}!%^CjO8u1^|Bl2;Zu9ug-tB@lDSlk?qP6WX75=yzv4)X92E$?Jl3t6``_ ziFM=q)zE+gi) zH!^CPAORY)+pH9p8n>EVp=lg?N^}8x@ZTvr?>7f|4M~%U#eH-vL({~st9ETE+-?c? zs);QEJ903c3|?|qcSm<{J!)rq)sFmIw)x%NI?pklmTenkp)18RsYS@Z%2|$zlrRAr zF(k5gl8-ic!Y8GlAU|L>@QAes`_>pQE#y8xgN@4HqK!qjYo)cFKx#da(&aH}!P>Kj zv?{cO3T}dFTOx)xf;_|+q|o_~?`A?T-M5w-^O%(4K?&g~=mI!NrLeB7ENx}}?5I2y zT*+R@H9Eh@n5nJfPF{w)ZwT*VH5sMG9Mo11hteHT54F^3G-o@U$*vf65=op%va#|T ziZ%}2XmOU#_w$y%?F#{3n+&FuEnQMeI>l+Ux@Z=sa8}1yTaOUKkZb^r zFcsitkIcVz1#LamRM(_$$%I8_p)en&ua5cx_cPtvrt$f_L=Pf= zy=LOSAc5u?vlh_4CBADD3)JFOVE`Wb#O9i@vSKDgPilmW?&!!o02!&Q1P!R@$psq_k)x={<2&+}JXTfVyjPKvo=JoR;_@Y`uMG zpL?Pn`;UH}yBjW_TUe?CV59)n2Cx+4*+~NWQ9b23Ytm^Y%13o$NISJ0@~P8NRhom# zyEjC4?U_!)i6Zc;f?Rfz6r|sy6>Ga}uK1tBd3gJyzqmBzMcFAs>SxdWW_%AHH5c~# zdiTElv7Qdgvd=gBc+cLEY?nr|A(@O;opH~Ci_1bbx-C-^T9o6GhF$XKl4XU73*?37a}5Z2uZ?wbwc z5!btRTetfhIq%~6T8E;`(vW*wWI7J+w%sb#I-o(`YfK3dr9>5zqEsUtlW^KCQ;S=H zU6Tu@jHVqa_Z8q|n>mCcx-NGM(I%N#reih%=I)j}R?KRx#a$?ME!_$2liHl zg@|s8y`)nQ91;PzypW}u;@j>R;_1T5y`=)T1mRJxs=Q~LG`Lthy%$S#cG!L?u$!mz z)I5d4)K${u|K#&wBqQsEsZj*J*=SZXS{d>U;gl=LPJIvRLicU9+e!C%>py(_vYs?C z`|k5^H?7$CV^8l*Bl+Js-EBu0P>8ycAJGK$O2{^gu!m$nvlI`=c5HvP=Exk_5Z$~Q z+BHJ4s>&yY+uH(WhaIWOuWnek&199xBE<#IPW*C9n}H{2{Lda!>k!8&x!xExT}J_yhcKDC-zoOrdP_JD-?S?3 zl~m0wou1d|y63=3?r3DAcOzl}%Pm-=MrAB0ej94Ogj|9tjzZ?A8X4i|c3zL}8VS=3 zoUM8nJlR$RH%iOPZ&$L6A0?KJu5!FE}(0dCxEuDcLWpq z)cE(3sS$u;9eQ`R+L^X$#dEWO2{ku==@zeX8jVt`rr!Vf= zl1M4*t;x7@m%fP5t8-;-S!8FG?!96K$VD|(^%3}Vo7~dPcx_16dQ*~bIpiK^*~Lz` z#RVt^P8HpmP&Ex1JvpOVirbdWd@FK_p+1b#UkK{U(QbGfWY}=tLLt=}2#Cz#dtt$1 z2Ya)(K;6ZRtggo}cQhc$82D~|`6UaZ30dXS?h9dEJ9@Ar>tu}G`*8NSTJ2sB#znpL z!9+ECm>6T0tqv8+>h_~Jsglk7y5*Yd!{g0-pHF>$s4%iN6FWa-e+qxtF3pt?q46Yy zT3jnF5P#?Uy6k2cWHm~`YH3{w>ze3Kh5&2cB~z(WsJTTdqI!XW*LE5;=M`rT9~C=H zGisj*CF%)?uY8+39T@R&z5V#*-na&-`s}hT?@@x&hhz67&>%rLABP79E-POeKiPG| z9GdasQGLo^g`!_L1?5s)*H(%>jzEgA&OS&6*F_74@?wA4|NQX#f50{@#9*qs1vd zA;sDpNDgZc-)aiBP{PfmX!{2K3Xa`hfUVoew;cevq@~=;B+vQwhVZW4MyfN~2lYhz z-qTPI(Xwj)Y7(8UtB{WM;x0Amjb(#;H0pm#|*-)2&Hy-;gA!!#Ox$QdpYB<%hAa*l<#rgrU4ZJUvk7bb@;4HKq+} z7AjFQBCr8!6`!>=QvzsLb1R^>9Qo`dyJ(x)vYm)G9XjrZckOLjt!Y&gw?l%W9K$7h z)0H|X668j{jdCrApaQv*A-EOtbOQ+P?s2EzA3lp2fBBVcqVAae@cy&cGZoW4dy(>XeDcH&;>IH zQ4v}=a&y@dO)4CccKcjBo2-9%TI=0Y`}o`aU6<{tf5_Gqu4c|4 zn_wk!MYJ4=WT~XP6bne9dgyO^h`Z2U%<8R_gRFBSTo3Njo-=8gnW71~LOs2HnabX| zslgfu=WLqL8n2W*gGOmc*UL4^vBW5EeApwlze>F9r}pf9`1NUhpYXal{gabFRTU)h zl0)LGdq@+ zI#Kcx%jRXn&{R0}!yGdARTA#T$nHEYd1~i0;=N$suV32uL%sD6FTF-vH3Of4gQVVn z{#|Axa#}XY8ub#vA+p-EHMTh@gnFy)v6FhpKrrq)ydQ47A-rqcpAYGsWFbwE{)bbW zu8}shpJDpdtEJNLD;LCQtLYv*J+1CIZM-#)_8i}*_T|@?mJK}O&WecKhr^PcUaPWW zt8o__CcCS<8jLG?2jmwZ{3Mk>^26$y%j>((U%PHq-yKo5**<-_**;4Gw)vEy#g&F% zYq{7#>ty6CZ;`yyf`s>IlT^Rk%tb04z6;)HhOgC?Zd%yABFKxc_}~!<4rdDmGp*RX zt)L7v2%?mN>#@}2W-G<*F*jtglbUR(;>UNFQr*1|x}^RV=S!n|l(y67XcA;Ne6kOX zc_()O7S2YuYLmTpJB-GmY`~bfyVcYwr`>UiYg=!N@Y)?`Ft(~qwrCO<3U(U~ah=;&bJDsV6Lyv!!d2^=%wcibS#vj=N+=qMN4K z1sV)vYz&pUz(vUzM8Ihu7Q;Rm;u z*{SqAlT(w}ZgOe=`#T(e5Mh09Z25=&^4*U%m+}7bGqvsJLt(CGnQyYSyqZmI0h$_t zJV(izCR!o;NhGc}e!C4|jnu9d5Z^)MW)WL?Q-If+ArhI`^cMD#q|Y`S-rXVQS<-ch z1KOrsmtnoBOgNOwgZ(6I;W(PqFo}wJ2p%+Ul%!Ei`OG(& zqQP?C&IDC#Em)(%vOfmr$pjrL!I6s8ci9LAY{=56#D+9dNP1lQBx;V{pWCyd#MiyKR7&K~H%Wg^AEF`jE%Zo2d zjj>VUy0y>0zxO{!_*cc|Bgh|$;*H($`SZ>DQh)9suB_ML?Butt;Tbh9QOj&KdYGkL zP%CQkZPaD=G*!3FO?G{9e+zGn@X|($Qu}Bnx&1|<-x9T;F%kkzGi|C-IOd9Na<9n z*#nXy)$ARACd_MdEv%T-nyJb4xk0g+0zU#o#8OgE;C?@s_r=Irp3PZ2*i5Yz(poUD z3iR7V;VYIioqL7(uAXd}8E<9hNLpN3Gfgpr3PtXcBuDr+>RvB77S}cDHzBh=_3#r> zUIdCV$#cV$WK;CO#Z+dq;>^7}T?7x$!Zm7=w0gGNGMI-4@-ro8+NC(ZNwnWel;?R8 zT2CZilzpcbh6Zai>PMyC(*>z)N>^SDg3`|1lEaIVjB4b~*vuOvytaxgT4GB&E29cv zo0NGn%z#AXIpXpX3&$uYM@paGH7}6|iOrK#-K%2!E^z;}#^dknwx4>nry9c9cEEPu z(iM^0aO11{VgZmLNCIc1p__J)w^c@^&S-Q!tgx26citM}MS;k}@P|JVCYs6)9eS6B z&h6I2-5L_g)9tLUIoO>e#TqOW9i%?3YeBwfWN?0qXq_$-Botf?Yq-eeJ;x=WCKHpu z*>HoC(sjd`r&+*YpCodg2KmpUMgNHJ`PU$eZ_RNx^}p)rpg)Wq5FYfLUtH4;>|v|x6BaY1 zT)Lu6SDQK{^ibP_)X5Nzj zUNBxQLX%%Km_EOA7TS5{rcL8^;;@=1 z;6)lwrrEKc`Jp5E49Vt85QpgHyi?hYWXLV~`gAwkZ}(uIp4NwluOE(Q(3|n)Q$vQn zjb6UuT=EgK>fNTUxT! zu-{IL;DFs_I}Q!Z;ozmBuCav@V&eCq4icfyYNS?;DKN05E0j>kQ|ZkiUTY8@K(H|2 zTfUVjUk%wOSF*UZ>hRl;SKUgHa_siao4wWl2ZCbTu5Mn8@|#iH3py0`R6#Ty5v?MD zfDv4gCK-rcMvL%*;)73`OOrcaSo*%A6#?uEx^?!PZ`}{>qJfVo%Sk|g6@t+;%Cu^Q zXI*-TBd3vcLubGv%2g?rK)dfmoD_$NnMYKYf@m2a|C77ZX7w@ukJ9U%s zceTm4M*abgwx#v>|9yV^ctffE?7dPt%8l=?R!?8o*p&3(ta zEW*g4G)w8q|4YGt`St6E{;@s0|Ibg9tM3v2yI{y^YFImx0)kF^f&CDgx^4z15Te`J zLBr}P*ajh*QHP{U_#td96~OHNcYcE7-ta&B!^iWH%=6dm+|?_T;6&=4jne!yeam7X z>uO0a01_UmF$5_m=;b7gSojv+4C}`mL#NLEzCIojMYlGK52y2w1~4L}pSIOF?GuF} zE??&$Rme97V&~y+ApQ~Ki~>^|D8Z=(Eac+f81R2TJ$zaJ!S9XVK0Q8s{PLf_x2N-U zt}&lB5J#^ao11uYwvuq(6fU5)v(Y)v#x7g#^KJFckLE(F&}x{9&!F1}oFmxsX4tr_T?c zfsp?}k$8Ms|MBp6d(BDLr$$tVJcz`oZBC;G?_?a~RutL}-LrkNw|asLng|&+Ilt>3 zQ|?P_nrlD6=k?|5r<+bZ=eAEK>%kPvYWV0R z7e=V&zWBBPujxU%Oj*{fAL+IneO8qn3LR`F@5647bH*oE@0u(!e#>G)Y_uz^E&ymF9fDhK$ZbT6zj`xMMiKTga`l z+>lS1OXiIcUV|3aNX>1idyfq{bD&Tg&q0sAOZsQKs+qw2+?lBB<-R#eP+GEAd|ixR zR(rbB4i@UEA*~dX!`7{x;ZJ1Q3Tr0EQfVRqgDOOk#7QawD!?OH>Q>+~SuThC99KiT z_MFuL|FX%}BC!%`EtID-bxDkClnBmkA;FzNGQrPY9K|&`8BwQmp8DbUPk$bg|M&m= zU;p?2^MC&H!}-NxJl}63Qqe;0%#yedhj_W;iY&C=lZ*^Fu4POPhT37KZ{}!vu^Pem zFUIs2@z~$}J3|8a&oBS{a=K=zoVFLtHhd(D>}86HQG}WNtHhH3{PmJ10 zqRG?iZEG0*TfX#LAs*bm=|ZGI^*-Kxx{?{j=}7A2kg~(2ffTl}OTPptmC%Y!F{{0= zN)%Lsw3z}#ZDCz)+??0yuZDJ6k7PAar;Jf@>#piTY5L4Tm{yK6&HD@iExq&AB{q}2 zbFk)RyxlLX+sCJecl-V0SXF%D>`n}sgn4v<5B+nFOaRZVkV8dp){q;*sPK>9Hp%?UzVZh9Hsm0P8JC541K@b%#8M-ZqMs(b~c? z4=707_rv>iK*srQt5fak$A|y=3S)kHBCp(hJB`7*Q|%r*B{bp>J{JM(#Tna&dLX3C zsavJ!#OYiG7^(Sx!}4`40mC=_XX3op>MvQn;GzrCdTo0XYL}FTFRPJ~YlUaP=&c4R zl6-Hi{yFu88Dmnu8|e78eOm9|^~bO3u76lJ->Tec64Zc{&2@wRY)POhQ-F!Nw`DmX zQLmNKs|f7aoc!T{xFj)_rvqrkaXGeY*N3@=HIuGqWT&;O0lH50)5Cb7k_)CY_U7Le;b6)Oz-ZxXD0Bub(RH_jnI8R1i2YgWj5LsB-rFtx7m-XS`CjbFg z{Lt&Gu- z;QHk-a(zKd?Oa5oQ`mcf<%65rAoY4_Wu%r8l%JwDGXKS%d$oLPUA-mKv#cz#%s^d# zLwFa*4uvffi?ve$mxEB?$KVnT_y+a2NQiiGNIIt_Hv^jL8iZFLc736GTyhQI&ptJq zg~HWJDcB*ltlRuFkiD>s<7JazDhUhhGTm{ksnj^W(!WzkWFe72Y4C zMK?`B^J(>P@H5?d6nN8Z+tDIynLnmDfJ0SP#0zD?%{^#-I%_7Xt zf7&pzfq8N!QyPwdg6_=*nI5V&4p_@(e#p)nNYImu5)^#_&PwV4Uw*K?!?m(^Yo|c{- zZ(>4wdbT;QY9Y0oBg1O4Sk;FlNnXnF47#M*E!7^%Al-zWHHq3i`!^px7e5#2MZaIT zoZm(YgMb;zidXNobdX3-vr0U;Qdao%9h$W>EPV&odP`_L-aq62^2m5&FQ!vu1D>g% z(WH@Z3t!UhAUw`4Q_GARGIk_ztBDU8?UE%!vV8POCGTL{D`8!$%hXs~C1)k6Wk7SM z2sa~1s}@?=uqQiqmen=b3`9$k;pZ@b`(jpS{A+z-DH<7-`LU}LAPHCufZav)@91-Ipua?Iy(Ry4V& zNz7e#Qi5)A$d@%3O(SWdmdeuJ5Z*;QGuM0H+iD=sS@pj9;I}0`s?Qz@3eK5P;E;HN z+UK&Fd2C>;roHdR_oD~x8v^@FyfTmHCMPlkH^5T0{ zh<|~#YTf;G&n?B)^R9tbU@UtM)+k9TPOiYE7l3SC0P9u*|Jc(q>B8f;3{NeiU0rD1qQLng-XV1|?tNy!ln3J~xis)K)xAmaDBm zzLEC8lo^PcDJVB(dEYckc-)Oa3qxHJjs*~fm2`ok9t~IfwZN`z#Lx>BxQ0|}Z>$j? z)8`<$kYbjkTlx64x~Z<%q$G5xfm=7d9trLvisw$RZ&#b&UzYE~?&@4P6?mVyOJSfp zDK1fS_^d9n-24-R;>?Lojxr6oQR_Zi6Ob!=)RxHu`Densh9O%a)vRNzK8e$Ky?w)? zLIC$lu@9yVoLp*rO1ku(m7hTZm)Vbb|F-kXR3HXDPxIVmEm*0|r*m6ez$BmrQ&qsUB=ms>jMDzwo zQIx7zSDJxNu%w}bH-RE^y8>3%#FZJu95!5BQ~36UaGzW1I6%+S>$Nk13pwG8Sd0dYuu*uEx6 zIHtX%xC(z5>ejH3SvUF|>J(&qfPz<-m`V<_+Si2ot#kJKHPx-@7IWG$YgZUoPh%$PK%_JF`Zt|(~0LvFr`e|_2`gqk%v!E;TYXIFyOjJ!biH$bX z0+~-uA_hpKIh40nbwV49bXCVX4G%bWvy>wb4@~x zde-gIjg@$$hxyE?yE`zi*x6)Do8_WxhB(vn)zN-_`0(}FRrB3^_(ePQcl+WJ10C)8 z5Fi+>)=lJlrv)${D%c*nV8))^EGX}UMA)>a(eqqN20&M1H1)y~zZmqjwT>F;pT+`7 zBeX{n$5vzBa`B`3Y?JvXD@$x;1yS5Q8cFq{4&XnZ6FUw2>&MZ?uWSCW)_rj+oAXg` zse8x6&=LwsK1x$;7Z?(a4V-(zggqL&0j~ay8qy;w1u18DGE)#|%H7M)f7~;hjWzIgwj6k3t zq^g;EcHrT$q(3S1DVD2(?{idA07fTU;xq~RZhC()#^+(De=)in>*H-V+tVgndBsWp zQg<0TKHZ0;UdEDLZ?TXu zI@Ps6a>p3GIJqsm3_pXPQ%ci5^y5vyg!*DdJqrJ~1ofBSziFjOxXdwMZ*C>7G4jd5G+{M|tg`c^wYMES;nbv(i!0phlPW z6C2beDT<6|PgGsUbTGfuctonrIrpkCe~hXFprA|r_=}q_r1h*wnJz)nuC7*TO}9ju zmu_~69B{vljL2nx8(8DeD*UaG6Vhr)Z$K;jRGb&QlFNfskWRT*^Jn`}9x zD6?`Jo|t!Tni!oNw+0`ToO4KTi0)eRlDuTcu9<>3VyKYDBI(7DY!9mN3FbhxXWoNS2J@;+F{iP{>3NOAbn5O`9WTfoDE4Z z^Ow0L5~P*3(exTdlW6GMqr6ymnm3x~_nOCQ&K_^edKPU3ZsC&rb|mj^ha|dK@M_}N zyGj?>GqrW$5hNxl#F?@@tKjHG3gKC5QAIMQvA-p} zYalZ0ND}l44jR7H(*iOBPZ~ApM&jipt)7-l4)QXIAHc{w!!EtEyeh!YAKRzTzdn9> zmaM(A5xqaPLL;O&eT13^qdVdzJL|z=%@X@H6%yBEKcj~2Ry1g&w~XeD{47J9Zx8a? z4WUFtI4>r!ik3fmThQ1L7iRalLB0WvaYjr~FI&dLtyEJxmW>=80)~Z=CrOu*S6eX3R$J%n5NDbh{I)qp14h|mvwCTnuZ#1W3f%Wk zf3MsqL7yebB!MswAlJyL28qU;@&IYUaX!?CA4=N37ps@aUc)SU+BMRptp2CMyp}1W ztg6f=Va_J0P8e6r36>R77WO8ON?vL~7~NFc4tuv5r|Y`m_UX0o)7Ovhj$hq;7%itA zYa%6{LLrs1z2)?xE&`Vfku}XgdE1g9UAIh{l%1dJ-K@mE24Eig7G&<;Snq}h5amXoeatTawj^k?&}SN!nFyT_+_ zQyQpHP0xUr{P<$^T?Q8#P;}B^1T;)?Uj%Op@5Ih>X|&&odiey7>{iBK?(H#N<9^nw ztQNbn*(MiP2E~r!NX_-S;g!PVga=p^o4y3Z;($iGyz)A~tNMGChlOezcha8qwww>Z zO9^dH_2YKn@-~{f100m*NZ6d=-Zbk*;70tFk|U>f7pO@to|CEj(OsLta}uwVZtql= z3hX{mav>d|$-*@lIXpCt!L7QA=HN*v(*d&GRv-7h@aEbNA0G}<|Fq;KeN$5jwsWpz zvpoz*!wSSvYh!78m524z1ROXkiFa~T`-I(-fX9a4uQCgXaM^r4x@!%@vVk7d-!&TF ze#lvtlk8#HZclhb5RQ=`b_ z%T7y?b#Nw_@O;~e0Lb7-W+u@`P^r#8wxn*QeM8IS6lK87cCvP+*>@&o<6Sk?~e4_e!n^8R8JMwH8!$~PuXoLZm*$f z>;S|p0Ji~Wvq|S7wM{|otH=V#Z9T$FPg&2`0=u+kIroy%QIvwqMFu4FOAraVljndGFxAQV~-P3e1~eec3l1Q746z+7&`3_#8n`>w0k4-o!2FD_TM$Lme##tFfA8kzI#I*}?>i3<&ogGCPEa z`E`uPRt-|#J)fVywEmvx=DT0kN41UJ9M7Q;oc0#z!8Yg}T)k~ZB~{%p(tWEFD9m^7 zKKQOTC{~~U*3^S9r7ZN~&V@|w2X}4l$gL}ASaX4D6HDn5v^qK|*YR;>GcVDSAfMY3 zz(?E3A*K+#AMSkL+3z*}FD(x*NP)9>r=}(gqL5jMAcQuvHLH86d>Dx0=$aU-^2E@m_qBWAX85?(Xf&`1M}CyHQVv3hFRH(%VU56AA$o2{D7YfO@U|mTrC|qbSWk zF^2}X&LHQ$-w@rk+j@>5o z-FALMa94BQ@%GwHrk>d-Kk6b|UjDCD$MV(Os| zysvFHzCPbPX_h!afaaX8vTRfoD<(@(PBjMQYMF9_VRyBizkFMO7sdWq4sjc5g`U}0 zof^@WRS{>$AJgs$bgFaTfy_nEU%g1cu#S8#_WwP^ALD;NV*QbcZr-WnQ@aj1{guAm z(YXXBCF8k4CJ$vLxGZ?a?`gcBRwg!i0bV5uukjA{g!!2$ue~AV81qctI=!`L3SpoU z?jdI?jq``3+8q+Bm!zp5WV4hd$t~HVdiVGoZwVAay=~p;)(5nlinN*9dn#rd@}UzM z3mWW|08dm}&FX^JykdimB$>K_41>h$&G!EMDdBcx*LwV9|2L#IK?x276C?xH4tW$# zNXRv4@YK~fB}z|0Ug|rQBd_T<+G+kJwEIP+#8W+1n`hkQ>CtGR8gk2yGR)R)v+Th37C$|yz+ zo}JR?3;}_-_A345xV~SN9rryCU*7%lwLQ(7f>7rQJvkY0=c-gXGvooB58?<{igvfE z_86=EZ>mqb)SMtmVR3A{1`f>IgS>XLQsu5I3sw~|_WF|N>O!f~S^#kkvYofHcuq-clyiTWLYnHx z=}s7kgp<2}bCB0Sj_XN2;ZOjmNa=M#-C}1;8enxBGER+xK=1$;TIMWi8fQw*Y`JCc zM)`wx{tIq+nIn_eP6v%!gO;VD#3;|H^?!dobt}lc42uqRE}6vQvOYVTKs8 z|LI^awsjOu#2P}B)49g$;xXG2Yn3fk*;G9Wq2r)|Fv;LHj|DaLse<$7YodLAgZV4X zx;2JlPrdC^tnO%jsU+&$qq-5G(j;#6-50Nk>8+RcXi2CA3Q={FN|CP1+;|FpRg9M^ zjUFkbY`i9r+pF^Rpa&2Q&qiQ3oFP&Nqid^(mBOcYo*I&8YnOPJWL@*qvJ&w*#os&Z z1cMQ z7n<%{)vMP6KS3WhrelI}H*c(-Tdm4Lfkxa5@xPab1lIfxYG06uCW>&XQ!`17v1=pR z)mH7xKexZ}O|$a4?5|DaSla}CG$U&8mz@jJxuGNQa)cKoFA z6Em#d&mN&uJ_>}nK!pT(NN04bLn_@pFRw8r14W!B#<*;f|H`(>lEp#z*^#j!cwGE&&8vCBxrDEJ?Ofc#%#aRgco3MqCOBuzSVVE!zv# zA)j}*gs#4PJK1KfyEYBjn#`Nn;^bq~C_3+89q?+xuIn&!toO z5s0w_U7P1mPI5(!*1G1XRXLU7EoDKEU@p(;DF4*{8f@B}WX{F*Zwv6+^#R;m8m7BW zH+7HEhP1d;y8tBmf<3RUG?E99z?UVx57?*USD~3JA-*WQ1%0gNZL%qGB$iSC_$u-> z_C4rXcl0jnA-Np-lp;KDXEkBXZK4l;$mEF^Bnofi|ZXcbL1&tn( zeT;I84irTyVU&7ZQeVuA@qK#y@AdTk(dM3P%&CXP@>GK8Q-)up(D zuW``zWCmg1@@e+|#Q-@MeA&e@d4FfP%a_xcLz9K?UFqE_|lW2A&x=VrZf}Z5Z$#KRo(T;56HrI_*^oZ)V;KBtNWtL7ETL{5p2+OwaTfE z(rie&Vaew1?)&$LnosSieNeO5O#%6GDr75fgc0T5TA{jStR}TpJ}m64OgWGmYREKH zjJPCdJOYKy+0xvS-po%#d5wxB-A3g+%>WllBm_D{VwT$BF-Bvo&5La~g;iaSeW|hB zM-Kf?_p#QA!qWI-+?I_A_VkIf0;aa)&zDnQCp&JDp|ja5kcqb1O)clWXVUkSK8v5; zN~l44Ez8F@hInxqNhX=#B=0mhFRg>9tM1TYDx8^4#+m$PqYNh9noh&gm$?9sJKkN! z?}D74zqBX*>iy&GcJZ9gu3R(>11zYG!ZG+o0ecN#b!jlFFxxV5yCrFxrArpz0&AKj zEXszk_w&tpa2Hi~oXi1OwM?aLGl?8;zfu@IL5BluuIrW1%e7~u;3Czq6zxSlRh@?C zpTm2Wl6>q6vwdrk{S0(nce}{dWpwtDTZi3M*G%S^6sK1a&D2a?2i2z8j|@w3hAcgj zrdi;Cf@j`Quy4E~zB1o4cnS-1#_Q0L{cQ{o}Zc&Aqu zJ?>qJ>)M-V%w2|DuIlkf<~;ro%UZ#yonmAm9kYz9Lz8C4=r%Q^k^+%?b9ceMCz+-W zl=~^r`Ww+vOO_oa+U6@w^K6xW=(!GZxz8c53e~5$xz@(mg;QJrb+7f_2K>6I1P7Zq-Na}-q>n!JpVcMajLPEnC-UkjQMKG(zAjt_rtg;M09Q*TiqZxbAByo zIsw5nL`IJG5fDSV+rUGP>q>lOM{)C3Ps5wEH>QT|-w@uVshfx!r0H+*J&X0V&z~QD`FQ7A%hvNDke!T?M^G}l zFqJuMnUm$yB=zuo)TGzqSaO@0vTV0RI@PGJ=7t+ChOY?m8aIi#mRf8N&`e8OhNN_M zo?qJ?&U#Z4T``Hf#6(F3eD}VBgdciYck|$LY@ga6Pmk~4{{?d0T1E))=~<2%Iq#X8 zYum77U_JRy?^)59SlYxM?vhjR0oF`ewrow9Nu((4GTs>CHIm{b)onGFwMZt?pQyUx zlF?~OQbi&Qk^xy$*?y<6Yt3@GkhEl)@#Pp_sK0u+J$n>%t2X`FkWNPemYPU(t?6E4 zZyBm{w3E!;v=67os>5KPHe(Ce)?SJ0TK(PDj(N0jwCp>3zR6y)C(78U<@lDdb_a&# zXR99gI;Os^e3|x*tMl-!o#%ZU#})6pr-#qK{SXd%LBpGUbNWmud7!x^&>ih8!hW5C zOkx2mciVb0Nt+W;t$%|{_v2kUw`|7^6Wdn@dX1BCd;$44LTYWY}W=bCr{ zWK^bHDaxc?T85o7b6Bn3jq+RO{`Y9_-MgmKUf{&O4AM5zx0j=~Xo#NGtx38el=Lse z80fGKz)^2JVgUJhp!n@kUgLYNXX1%fC`W?@yBFO%fNL5xTGJhJuaUw?&o#pSovyK` zC&{bn=rqju&DiYgmtP;BUh(`{)2ZHKExKIF{NZ5>14=7S4|hE~Pm0`v_-bQ&?={>HZkW*&*Qg|t6^U{z3|lWNBA`2S zy2HKTM~ve{DhaKr9>iET?R8W5X~%9r0tV*D=9*ijkpw*r#kn0FMF5Vm733zi}zI>Brf`KXot(=D#P5s5UeQFPAX)kEhlRl$rq`)4cxGbHBOucH0+!dx!FRcRLJ<1k|JHiIkvNY0b`4FYe;=1!dU?v0-0$9ThnY;AvYkAv z9e3_N_G%0%+WMr^;O?pdw*SxOQF=p!1B&A3YoXSB|C2@hI-=Ti;>Vsee5&;%_f?a8o>>lC z@N}i+WlX2ok_y8FXG>+j29h@knuX)ETTQT~QZL7Lt@(&rw#Ld1L>~uCE+BHQuj7wpm0o50Q5IsG_rke>+xcM*P1?zn%hYnd{OU7)(wa{7XS~u zuNHw!HuO}%n2RISB=KX7zc|jlzj1p19^v}2M$931Qy+A!S7;+u~X+bQ9d;3u#hiT2|pF*wd0)J1j7f8weO7sBvG#&QtdWI z`EJea1z=4zb`LeGdRQNyKtf>tMo;{=NRMy*;w4RR_Ebc$0PgrZeD9p3;$gQ2b%xSn zuEhnrOi#(iQRU;*o7#c{CA_K!bM1XCvTH4HuJj?%azmML)2_wt9}yi0d{ujzaGDyz)(<`}O{+87{8hJ^RIrX8)XLufn{usmQTlfPve>)|5Pnw;cr z4272!^wMP5X_UHn`>xdT^x@%X&HHmA|HH%m5hkf5oMA1K0a~O&6RVt9A-@JlRm!N6 zlv8vd8un@S5_R@bcbHugtK|?s`^iYJt*Y)j7f6&{S!c48J0s!jI6b8;$F7S+Yr$VD z7(1l13XP|dH~B`n_3BtZ|N5}M+{M3vb=1I=ejO4o>sRr8+j z{M|89zxB%aXN;Vh@fG~~e*Jz&I3<;EhHd}?gr&5%I_EeKmu#oBj7ALEQb6Qr>)DY7 z2AKEeC^cA~TeI$RL*DCNY!|Pzq_CNwA+1g|c{r<{3db*7(*z5Qi>j9!6d7}^ zH~+AEDX`-uLZWhCzufjQFsCmhrYP$vfvMPXX4zLo3bd;`51q49qi055u<}x#R*bu?Y-PEBhf7s}1Ti}-@)uUknU14bgX2Xu{jmNpa z$Mz$Y+-&VQ1t__V6PHI^wKE}XDjDuqXQW+XQ1ZYt@Yt z+5165wHugBnTJ+#SoOVGO4llcP9Up9j?Ff{zc#clw`HKtO6ivR^mGy`HV|0Qlcd1q z13OIWrLUm&UJfm}LzX%k`kGR|O&pN0#+9%xs%Nz#=|P(!cwGHLY%f`;0to=gbGg)P zR$rp@PlgLK73pi6>dl`0r5gXGeg5s;(YHO`KaQJ5Qs&gu40LWcU{ejn>>7$egn}mz zPt)5j*vN7=d|S{TnSrij7*ub*;=HwAj_un0@~k9`xrE!NMp8QkeMtGSgen*srS{B! z6f&DN#YlQZg6fd(HQzy`i>tyJiPn#^=bUtKCgHG_4V<~9qF-CK5HbE zm^7!g*YtkRmV7LHT?2QtL5k_M%(3KgZv6_i@4<(a9@vl*=Hjp&cmb$v*Sx~ckWgesX3+lJ}-mqPrg3$*vg<@cYF^6w8fm1N0Vr>-{D zrU}|jN5O1HjaO0;mI|bXq$hzc`fM~Q$ka5c~ zZBBZubUyH1y-Cor9glZc2alV3y)ndV)wssuI3b-1QsFpKJ7z64Bd@7fBOSWrirzYc zcy0FV$sm3)YHF^%CB|2HXj*rAdoa{Iw#wGT{BSxJV|QO|NYop(L};36B#u9%u8r-E zRu4bw+O4rSe?Hnv)R#Xqf^C{Q_Ng<=r~}24;UT+8a+1ySJ9S%`tTm{oFj(JtLZ3p& z`%U4_^^z0{HRaS6!?_B4kQKs^lcHYME2z84**8n~*VjX2D8y0p62NBeDUP5)+6I64 zUkLYFZ!5q{_kc^%0IZ$%CJb0kaJdygF7zE@1LqRlo~?8htC@`6ouJLHjQ7Vl>bw5* zFn_uIdgo7PX5AFJa9|#)kEULf-c2FDf{CiEJ0vJXDOwyo)qNQ>YN|(#d(o}8M|lk_ z+2{@*j|2mN(?bV?w`myueZ^@^it;SmYf;;6aieOI8$3nO$;Q|2Rn2Ps^4yK~QZLPU znXhVv3mzbzrCnyjrUH#Q^7GvYkp~cbQZHhWLsS4YuQ@3Kny9VuXX3opS7UVzA#zqi9k*g8?PM%|!D-_VS)+6s|0_YRWCpE<+g8D+4_)kzc%w^{4WqO^My-SOZvy zy~!H-Rs1wV2Glc#&E{n{ctZ-+-6Fr}aTf`{Y}3|TL%ftklZ(>xE>m->CK}n!J1J|} zshP22950CUmxDhhjzKQ9$c>0fho7NVdPif z4S;4V&iJeCRBc&{fGgG6J!@@kBnLcFUWYhjlN#)zs;ftzF=l+CC;`>1k z?f|&zN~&hcQv_hFbK#^94WcV%xH+@YD{1vqBk&2O;JjJ$ahW~f1?W?g=^Kn_lj6d)~MJj*d#>Z9|#r}=Lo{-ulk;pW7ppzNt=y4yan$r8J5 zsL9oLSGO7kl6$_b=xeOyCB~oOMcYXwv$F@2%{Q*tUyAQqo*BBGN?eyOVXcwc_F|bzkQQVnA00$jaru7BopkKE@fFetER_Q zBy!w(gDFY^JT@N)*h(=Zc0CTc(rkQVh!-b4)P@0t;1lc7*e@rV&@8l8J)~JOWgA$g zc8KM5cBF{ySi^2jd($%N#`Y7)^7HLsbaQ?$+M6!hYi3a;xRoSPJ~jZ2BavHVM~1pm zk08CYE$r8Ixxi^(m`=j_`Dm{_j{87?Y2?7R*{13%B|FOS%^ljB#0s6vZOiKsxRFv> zQVf9^!Qr-jMYw;4`69c3^_Ejx`Nm2HiQ4YnST70M#B!*Ku_4))vIeYX)Ltvqon0)c z1Q!kIwpf#FL)?2|!7Gx_chdP^BCcGWmvAb;Br?+0$T6#`RodSO; z%olekEa6o0DKAJlysJ>Mjmw36w9T|lx^V!Z9lY*$Av}O}Lp9oL2ki>Vj&b`{dHsK7 zXT~A_JbMU;4XKXp4B}-ImTl{VqHFr6YXA&}t{X$c`s-$z{aemeX>W!(^&0mFm5tYi9 z)>zHjehvzvrdn*-0~l;8Xi1_*IkwKBONDesHmy05aO2A3QnYuB3u;NH{a7rN1(}0! zCmdF0=$)d}N(}rjq#78FH#V@mSdl_w=AP9YS5*)uHErV3w2sc63KNe2$UU? zLsL7u&mnXuO>RrAlv4cyQA)051`p4c)ZvZD_QO9F+2?-@YMrD(%spgKk>*>XyVl`i;GD8+)aR`bXq&5= zhSCs(UpdjQ#%czi)P3+0$G%tk<=j z$$ddpeKZ=$JY+PbeWxidJ(B@*gR_82>59*i((15;aW35OiU=>hid5SS$D$Pp6IkcG zj7CNzL3^-6rru6!0~n_50_u*nfh5-)x%3+VoEV>nq{cHteScT^$+~blhqT%J#08Sk z3r*!7hmVpAOhM1{zS95H7VxXNlIp3VcWWD4KTg*AVK_VMXK?TJrcAHLj~OV8)>FcLb@%*Wz% z}s-9 zmf$ypGXn6XWE0i9$)0S>3-e2UhjYE*tfp!1wmK5|x`_#nQ2W=<4{QsyPNyQ`_+z$_QI;kM)&O8`Vy-j zQzle3Su3FdiAan<+L>~&sZN(Rdv%SVq*!O*5G1|8Iv?7&8rwAu_cA0kq}MV{DnK$O zJ0HrRd*QZB1qv^_HKU^UNUQc4{;u*OlfBZXW*P z{5-&d5G53|jQ$CZb6cAO8{|0Ps-LCbJrUo>7+*|tAeDG})0*dkeJM-WHY4!2+qS#< zbtDuq97m%QB*2{mVG} zzTy@99Scmzx`RuSM7tZ^zxVs!F1I0_-m02Sngtjwd3Hr%yfM`}Vw@ncfs`q)=?P!Y zxkCg~#!iwoPhpt(rueQsITh(G_`)YlM-x+&bvB@B^|U>E?YN{|yN9Z=NAQ5}dhf{) zCAEIui}1%w&WpQ`{dLw2IJcnscFhh}FgO<)2x@0D0(;Rz!L4*4`Sy9*G&4-ZI$4Y* zi7{AvJ-CbhA6^YEtbz=NithQgE+4n%5BToBP4In`Sg$*nlBz@*?x4ni(!1dusJHN4X$8Ar0w55|je_rs?>q+uAsGwwGhO=ozo#? zEl+$ys*q_&!m(4Gk^B9uM8mGq~(}M^gxa>NdDwr z`N}uBxWIW9=yD~XiZ9zmji|c5XPRrZd^xsjGLzyFEYT=U8%S0&POs9S6b`~@N$*zb zHcdrJgjLV#vPIuy;^OBkR_^m}Hyd!1IW^~LjdE@d**V7sKMbi-ZN>GFlRw}`<-=;a zqXMF&zO^;cOYChH-(MZmwUwGPv_4?YN2jWfkYw3tRI;0fg_0R8i>(r>sy&lWtR4Y^ z@m?O)cX`8c<=?)}hsSr4?2;7!E$kNSxu@=^%L0LXsHL*G<$lA4W9KLSBRFVt=&%G^ zmQ0VFGO#2@RyZ0pt_OEHugTxAkCd&ii}MJFK3HU8>eWZ5&dC`^Tru9wx8E zH=Pwx8~o_twiWENbuX~b^En7h27lc*sht5vAYE^ ze2z0{EGQ*gj2chZSYXVN33Sv$X)M=FzN`D_a&o$_^LJC)51IJ>_2K<|_vujvkx#cf zjjO#Os|tvWOJ_4yh!ngzNp!_pJr0NFz{I7=MOPj3kxx#wl0grDW&N81yw(>mSQ}_+ z)GWX8vBOBSF?lU#siXB6e$4z{<-f7@&`5TSg?v+G<^H-Q{Gqfz9zTA0dVGIV4x^qb z^C_Xpu%qa9DLlJj^jhpFTYfw?FFEivV5spsE9qrbj9k?o4?=x&jMr9@UuZUrO0ZKK z@}zBcnw2FlGOBbKl~AA#utd2n7P}=at`0G4=iP7psXaWc`L6%+;pPSmr*0k+A)-E% zA#cjKYt?)JrL(nTbVTwOCPD~@nm3K+>zkt@%hZiyGt8@lx_NF-Ux@W%x8@x1N3soB z{u~(;7n6~QbCn(piCM!~!cvC|F#9kJnc#%GKxtu~bwJ%b{cQL!Obzm&ygw*7tln!~25|{jU zj*(?G?m!2N>;_52-fVXvtc!|;gq3$A$5I=nnW?T^WZYTwnB<`B-MB1GmzedETCSSxnKiq6)YiRe**MmW`n1Va1XSr_u5 zvptkd6I;RvcKAjEz%~bA8%`A)g2yr{Etkxd3{F3U9h2nzAErNJ@!wroS!Im)=iC%i40wkP~n`4khaEB3f3lbEvLX?Nk_E<|T zzGne}HVNp9j4X%~_@2(nxnKvoPn4vzl6@`S)ySt};CJBmVZaD>Id8vr}sAx>@&!BICt?C8~*v`8n~Rc@0;&Me2Zy&uzDUoC+obhRt1{4<7BoHFi=qAA>06+=0%hNSI=0A!)4< za^k{v&TrFmiV$ovCz`td0c~} zF;Qe7jkeisG5|-w2C2Jj`+-wE#;^)Jc~@)PXkf+Ji|M{LAWp}(EGZj_d(N<1Ylh1U z$P|jIF`a?hf6}==@KRq7^~IB?$%i~5ofI^K%oR^txwoum1mRhI2JZfgAUPbC+cSy5 z%bI-ndF{LigRQ|n0k}F6Hb8|Z#0n5)s*zhY;i2mtYCl$$;bykb{${5 z`m@Gc{K8!>fE*f+?1qfPk}bYRNKlT5Mg>2^kCDX>Zqx-YsGe}#K=sDWg;8ykwDPU* z<=hD$gCL}QIvQnxBzV?kkqh!#uGT>U1;jYciH`v+>Vd+r1u)WA1ieb-gGKwp+0wgj zF}RC|dxTih)4mI}xSK^>$l90{X5lK)EL=*A;DLY}fVwNb?V(RTtT{4$-{%haAdDNM zkfms4uQzaJv5|z52l)By85{x3wNh+fDn&S_bJH_|oJi9C2}k^BVu-mM(wEIOP+Lbv zGHTp^*+C65Vp{7IM?_MnYZvPB4?dU*J^)d~S_TZ|h~%SZdu-0klPv*zBf!Yq(j$#} z(xt~%0Xvb}OADY?)ERU*>cWj_sVx!KFh7_XetPj~rOOln@efBFr%dqpfE*NLA;nvR z%`CIUV5C?P+9Fqba5>%Vb#V7cWM_5Z)!mPt?XiA`QZ`UWM|waWfPb<22QUN}tkg4C zzL&yCj_^1mNgs^HrC(#QcSApNxIcyFKcDngY3TFK{ppC55Buf0R0gy&)*RMycJ$?r z(|E?Wesw;Khq5}t5O)}N>ad4mlt}_JO!Cx0AKRnmBOvQu*-r`|Sqm`Q6Lcdwt+F`nX3O0hwA`?9*Jv8ZR3Oxw8QW$k&TUbAj_6>xn!OHu1KD6z zSkY1T#e&a%Fz)^K<*V-&aKYZU(!@Pi3x^srx^a=2HEX6?E+qARLLW@(M#cVjpc* zr6N`fz7|<5X4LtS^L@9!?eljZndZ*nc%Osl0vHmGvrItIVPWSAcj{Io_4LV$l3m|29HyHe;Dq&2aiKNY=D6GJFK?g^f@98M4z{r{JFtXnP79QI5d!b z^ji(D`VOE@9r$=2D@lL+fDiV^0dI1JQynw#6`c}fMD)`spNHQ@#sD9a0_ttZ6ZNgS zmQ`RaI~E9k_lUpQuim_v{kv~)J6_ED{nY7j#<+097@&9###P9RQ=5Dy&q^g%aK{b^ zS|cv12NiX8e@Uc*0~gBYa|e9PhF}x$H7eBL#{o<)EKyh3Ev6_D=VF)K<_4%;GGG0X zX=g8pJG*=P$PwR?$rnHPtNvE`=ciY9Wi8l~f4K5+A=cR_nIoEQzz>c6)v(njjT~zZ z9KWT+DDFw~$W++#G+Fx5b0>VP5C!@wd7D>mW(h5CWMP1ojMEy@+7yIG4NJMe)Tzr& z&=0%-CWlb??lZv4m*2hq`t5_}FE4Zb_3Qlx$7GWq#Y=zu-Ju@>njiTgfZX7iMo?vm z4EW8r6_q6x)?AHkt@sJ|JSgS;5pAOM6$I{?rX8K{50i+$JQ)%t-|b+IhjJSkh5o0nrtC%u!Xhb3N7&iIfnKP~l;0K_AVQ za`Eh#V2|7s8Q2NXxv8x<$I7*XphX}p-1oia(aB!zZ^0_qEBEzVMzMeM0+Da-Z@%qs z_MPvjr9)JZxmyvC#2YYYU9e&Y3^lQpw*%7w*MT0zeY-2bRtA`_a+CB5Esp(>^Np7; z-{3a%AOGt0eD&hTH?P0?*RNmxa4Z{rJpRh@mBOt=U6=03$MaaqTpSx>6EIL$W}urp zJKJ9QY6c#OTvsZb;UnjxfX@#vsett%+rgy{cc{+5Rdxydn<^P8f!@gAyaTSq2m%J2 zk&NRi%yKj#0BMJw2iQ~) z#99TnC4aR-VFYKRe+ZyH)U(RSudQrQH~s`qkx%q zT#p38vxTeo24#|KD?u5OJrr$;t*H0T^G=?<6X{|*stT}^g!+s!wg<2{{pm5S1YQe5nFbSO}o7yi3%_CN6biCN(7xAUI0 zM$WMs_*razGN4aUPyfo(yeV_9KlL{+e~Phu z{kN}P{_8!#L4N;_|L*ty=70YEKmH%T|HuF3KmGgv{XhTP|L6Dr=KuWtKmCW_|I`2W zpZ@Lt^&kK5|Mma*IyX-B`Yjm$dVKr+*S8wto4?=RO|U%mLAclQb=`@>P*vz(Me6=#Z}gPzYW+cTVuYn3{p2xvebHp9*d zs0Xk}ZG#pt>=7Xqn+SF9Hd%e>sQwDb;!C^O(IFo2vAR5TB)lB>#N_QJ9h<~u637&( zsv1LDh%FwyH?aHLE@eXk&^pIc*7{;j_JOm!?`8L9j}v>4xgU+IGb-@E3-Nw-zH@~- zt>u}Q-_~63IS3A?*{!$fUEuR)XZ`8L*Z=axye)Qp^ADfHIPZMIUmeU3AGW+15P55S zT3%rTns%E_0>!BKN{>`T6%kI#rh+RelwtwsqtaK@ce_B}J>gBiJejXG2 z*=Kyu21Sb=iaWBUo2$@L;oc)@hOcfXeE&ycu>@pru}NWPs=QJBx>4x7JY9uDR9_Qa zx{>bgPU%LZyIH!WJ0z6u?gpj1TafOCC0DwnK^oC-#h>3F@ZRjbGjrz5xwG%a9-$~6 z%*S3loQ>tG{HzQ{>y~j=Cn@uVYdLNX{gPtI?o?eYoKlI*%k@A+OcRcj`^Kfhl%Wl8 zZe@bJWd!!%=gq-QwAk+ygg6)edS|3zrN__ePcT;ZRe3J=nXe3XoPP+s>%OK-TtoKRqbf(wn#Lk9?s^zVM&Vnh#_Z+C z9@SSE5nLw6X#O}r$NupGzqb41+QsF2k=;Y?uh!TiM&6{hc)Ucry`|xBz!8s$PDaE} zfM@7YEvb~g?LEM)6OKl3_AmNDzNygV<IIZv!@nL@!?g_yrT`)wRV$El_FLa1^iThc#0=G%dhJJ- zPl&O|s$**`{|!@><}@sVh~*^DKCWvxB(qJYNRYt2Dc&G29|eBnj@*bpJ7J@m{MVkn z>wV_N!SX|$$gF@y#(rF61qLmkdsu(9*;Ybiw}oM27zqi3GM5cJ8ITaeVmKzOEW+-b zX#DYcXRY>#_}5A0($|Oa^>m^9D;)&Z#l1Q&SYt}A$ZFv>_;H_EvP-yepj}*G%(2S? ze1vF~nyHJ+2M+#lj^;Roi3@?V@o=#pfofy9DE;-~%R$)_Iy+puyZ4LZB+$pY`XGMQ zG?~j>Q+m}jR0JEo)ZgYC_cy<`!k;^9e?NWwb?|#~oS)1d*I}6+nZPZ-<{5nkH7kb@IU&UH$J}+ zNg2XJn0L!JkeR@p><{vp!ONoS+RCc}V}el=h&+MY zMjmdkHtfo#?11K&tYuF9!~tS)zIVu7U?vF)Mc5Ewyx{h`OFBv0Om0Sd`P{yS>flG$ zC@PN-Y@0>y5j54+TakWx{qN_GcVZt}zeYU$94-9?dYVohp60XBmG36))dFs7fYIMr zNy#E%a`^90CdN$+(r2TYjrzJ92T+G{Inke773Um0V}Cgp3jgly{JjZ|vvBcUmC46l z_v{X~mh!S7l>O>bfN>!1@bz0(^lp;0>zcR|1m*i$Bfr+ArCO(hpV_~5bey_>hfg~e z7jlzm>YwV0E5EBK(G;oet44}!$s)qy&`l1xekf0D2zNZoP*!gwi zX;R0@=%b#-^Cix?ao5h=YgawYDd;SV5M<7!BEV{Fg}{v z-`1+(M;H(kQ?XM8>VBx7Ha_=&V}F`2B$;_7q^ZAGvDkx#mD4SWi0^pJIu4bFg|0A( znz--xfPedg#)Kien|UI4;I|mZ+FQS~O{w$Fb`_(YRfZ=tsz7UFD&hP#dk-bJq`HO16+Io z+ZiyaE)RYyU3I1u6RK3cI?$D~P?;wCS1GwQTZWe*UP$=&1X@Sisyhj)x106s%?!hJjPr!>#|?>gXPO&^=|4tgl<+TV+=n~S^=YVu-fFPF#moS=J6J59`PvnI zh$xvz@7*2rWX^N@d@>pK={_U|^&;kvjqlX!sjsYiq}eP(Huaea_(1bG%8S}Vq;RI! zeGZm5bbZsF2p@962L(O9PxSe1n*E^8$KnTS21diypoPJ6p>=RMQOoNY_hqu_@+o3+0fn zw49%NY0StxOC94*;_7+0Fb&09r(K6r1pF(-rO{Q-CV)qstDsia@I$tM41dD)sKhLX zPHH<$Wk`e_7*!u3-zmR-p65$t&SlLf`$v-<0}jJX*UPm@?3}m`ix$BB+B({Z-BZag z%yhNb4(YT0X=%Uq0IyNfb3p?y@GaIE;7~jd@vMWyUa*tibcOIt8}paO1mZ=cqzy^# zwh7|9IWp5F>l1gh^Ca$d9(r8-7(<-d0H6nl%xt? z!!sA^o4|dXE%>({gub^V`j(NPovSqZ2|Q;M1zBy2m^7WSuG@^M?MP3k zbK5(!rAuV)ib^Vq*o3)}x*kM>fG>{yE2-2UFsDjrfj!mw0Y#B^r5Mv`cV0RfBA!DK z8$$hr63C2vnaqIYTYd@3r_XhVySf&Yi6f{zc1uOjbt(yoSMIajiCii`CH752pMz>n zlJ3|0L&z1)S)Gp+_Mc$sVx=Kpac`c~c3|czT_sqnh$AjtM6A&?$ou04h3SEsxkj79 z1%pb)pLae3SrXV6H{X6wMJdhg(7_ z9W58G{OxCCJLQ!V2e`6xgU0P|>lzonCo$<4H3Z5Fomj`{SX~qb0v-e&4GgoASKqcv zW=u2v4r*GDJ1U8nCaRj+PPuQAwL8VDMb|4qi{FyucE(5S`iWQn*ykb>7ey1}w z)W#ErO~FaNJ8K=b<*`tbLqZ|L{?2Wrb0RoB_RZ~3HFMr$w!m@D=$TyGtJfICeiXmr z9vp*0wicC>d6$U_}cei4buN8J>({^f>n&=-V)s8EzRI`B$Pk43_C& z|CVF}2BQLP@^jG9&ZllFuiY~qD4eq8!M%#KkZf*y$i2UeQCCRXVo-Tj5xm$fA9lEoW5lp{ObpQoA4)umMTN;&l)*kM@?Z5 zgVEgFIq-=bG%7J8K73mfEMH5LETN}DVeP+N(%J1(#q83J2wwr5CWq|5DMEaEvH3x- z*^&9ZOj<`zo@e_h34_Fx&k~&N&81QGFXz1CLFlO8TWX&R$5L{Zy1U@GaX-A2;&A<0DiCzvIuv%Ula68pFa14wEB-zu|m>6X;vsILA zT334p0{y?}R4(-|gCyw+$qYV;KkT;BTBF&iYvJ&@Ia8wRdTfoAiTD?xy|e0?Trl?^ zQhxEnV;M)P>WAi`*bGf3N3*&0+cR^|0H5ysL9i67`a2v3>Tv_D>K`6YIS?V+_U5~C zwdkOC8?>b*6IE+V*Csj@zg84?7Py4OO_mMa3{>urcf`=LjIua6GI;P|NEwpT?j_o_ z^ZePI(eUU>Tj({IR_Jen52{8IL;Fy)8cMY32hnol6I_$I1lHU#*;Ff4E)$n6?R?h? zZ-l+$w`5iWJ8Xl;DOIcI$}u&AL99%{b|lg_Ax$eo4BaoVcdS_59b4{!lrFTLj#29q zN4efIq~<>%`OQ8OkU-vtHf4F%#K!?lY01uwx&IE`{ODe*y@75VB+qqo#<#`F)c96S zzA-acR%M_@RI}YT+84X(6xOenIt-Y_+w=4iO7hlBSjF~^b;@XMP%Rugw&chP(ag-o z5tcw}U5{NVES*(Qz=MNYUU%-Um_Ag)n~79%^i z^pZlgs5_>Og=MN=;atDO(p9Eyg+~wL-Ij*O9;k~oAXEu-Ac8=lW4zrQk|>Nq+pcp6 zf|Co7u+M8+{o@8lh}L_hciSMIrnkk#uTvwA!mJdV_gZ~lMD>&v?_Tp7@MSOXQFNPC zx7OPDY2E|!h@!DSX>)Dj>)JIfnB4}7*f-WNuw_I~EUia4;x&jR7PPKP=xzM;sRyIz zIqr~P>d>j2_FT3^0uxeEFw~grzRN2W6hY_LJm@@z9Y|oQ*1pU8VU%{az5qNxPQQPF zjZ)hiI1{aYhe~y~FmE;kZGId+{9>Xa>6)Olz`8Uq0%^TXx)WAolUVwfaD`aV5%A;G zh}Yw{jP0Rqggxsg@R$rELCg^I$b9&Ms*FXR*wkvmdim4l0GfM%1j_v;lJi zYuI|<)n-TX{UNinarjNSIPu_|Vp|7{3z@wO4%8xl^btEGmQE9wdC(RFI`x0uLs>g>g}gP~yR1v&(V_(1g*n z0DzPn`1nZ+{K7Vneqr)B8*}bat?5-77HH?6fsS5*%G)+vLqyt-l{!IInmncQCeXA7 zmc1Ld@C1XunR=uLzUdq6zRpG7{EMxS3V|&}j6>Yryvd#;zoZ2jgNeFm=Xw)I>$`uZ zkQ-%zq`n)uW~!sBHf=QofsN#E*{d`CqHXF6K$s@TtkkE`5xY8h0`pZjhn=f0Rw0%5 ztt)|}i`!I{mX6j!sdImPty$gOuiECs$Z-&eT>rBwJG%W2O(e!}?F8^!ugJdVVL!8z zjhf4biM|x`3KC8aM#j%uSG-6tB=oeTP(Ai`m*1`!dayTFaT4vg1a8ILt4Ps)hLZaEq2RE32ysi<7-DdKz@zQD|wDl=_-VpW^p*fy`4Lj z9gCAONR2pvR3W@q#!vWsgiX4AYz82_M7Y2*JX(2FLJZHXU<3^28nX;ef_7EeR!{)7 z$RAp^M2JRm$~a+Wa81EE_+>>Re>EzT2n%R3rG+!Zq#h`&KA!x|*`~&ZBtWDcXC*d|yd@{8XG4&~nNn*2zDa3F`#9o-+QaRAS z77jK$d(YE+jUuMca0f?jW|o&h^|iE@mh<4k9rCv@<#Cto;A!9~1Uquhw`%&mhKf*3 znAr4f-g}%qKns@cRnCrtam@OYx zs>8Z_%J;uN5mA^a=~^f1UBIKSc2=3^_Us7r$}I;mcd}FuAL$8MUq9}PvV^?$3xNN0 z!P%PYtA7UgnRJAwO3!^JBnAOkNK#DS+1_}L5Oy_gl)RVNq~nWW5wFFeo})b5Edv;* z=w7MYHydd4h|VWbR`05;d?#A>DAA5zOZ6fb$34Mdw@Zy!C?&#^1U5<+YmWEPE}64q zQlJ?d=6;Cyn4_ut;^{|O9*?bYb}S-jOglap-d;GEuTu7NZ9jHx)xPzHA8=@|a9%nn zJFDT+2>eCY>~ZtnjQo6)09 z^NW%=5-fEpY6}6~$aOa^aybS9tXlg5;#aPfx+AX2Qk;P2;T63TKM44B>sN|x$D~Zp zB)N3qb&^Yl#>*M6t~z3hlhbfbk>Z2oF}9#TVj8uH*ZD&Yh`t1CCeR=F85$>0HBN{? z@|8`qW^cLWk)tFbWbUg3S>J_(kX)^SPtTRuU(BW%lGZ=Ex*uI}I*Ewg%Trc)1dN$n z-&`!tTJyq{%Cd|^VC##NPMsF` za=1Me3oFZsJwaRC{|&ls#iUT#`=wgD%EMSU%m192&(WNWhHFoJGLm%Nk(FdKiD-;l z#hO`OO$j}IqYjpC2fZ-x?g1Ii_fShRlkFum_4IXp(CnxHy*Ly;5j7H1Xj=i}M;irC zU$`B928^oIzqD*#=av4#xAA?e9L}BHp`Ij$_CVnTsD7dkMtbkj$MzNxZC9$}@=~9x z=r^XvAkN-1s_rJy(&)9dHFCkprx0opsX_v$s%v~3Y(t0}r<1_bT2#j7;0YZZd0>;;_674=kE1~U7gwBCib>vNe*;cg>%wvd zFnxoFKsa~@_VR;6wEDJI=E`rIHasYpZwa*bC}be6_`}VJ_|fhoPdjtC;P2-Uec!Q{ zwC_b_41$c546bAjp3G1rwJaE` z06xW1=x)V)${b28rcM_R#Vy#BsHQ~tznFbq6y>VZk@R$D7TEo)vFYqy(Hyu_8sYj~ z&+`+dM)fz-r8B!Y$bFBHR>k;;I%?Zr`J%t&E{yozq6}~7(Xax2n|jk(dVK0y8cw5eFvYDZixM!FBAtyI_`qUYTOx5 z#Q^g9Rq7lUl}w7s#vbD^f?uh919e*BIqW<(x5(oedlH|dZN8;ZuhW9nW%~U7ao4PD z7)f`Gf}(N0<|W*SZg>;jiV%2AQ=}eT9=3U3lnO( z{loYmW}6+dsou^GudL~h0Lb-LQ2E?uhjrP-3BK^@?yZ+GnKfGmrK?9W?6i#O;JQd+QRF$n*3tN*VD}rY*;oSkIg}i>eOZ|DP0!>^A${NRrsSRB`Nb~2IA+`qNJ%uI*V(xvWWAN~XyEuK{iz!3|Mtl!epob6)J^52 zDwAyG_m`Xi$uXl!*7I57Cm(Zi%;j-m+mnv=K=ZT4VxJciO`u^Um;o{&X#4;hIP(hR zi1P>qoQ%y0oS3Ey)4|x&(7iB|WXiL<#%*HPK=rN>>bc-K^Fqb+h%h>=N8VlOpN-NE zXuW=@XR@h+6A7?ZbsPskw|xqS(ucpqTmB~Y{4sK^AI;ISeMz{ew|1MLx)w-O!}@gM zQB=ReeVGP`s2B9VRW>TnWWQPOSxGeTA9{`wO}KrW5h;z)ZN?!saKod1+W}}WXj5~- z(-)ZHT5A$afb+Tfi+9aHJZDP$yCIR-ivn~hW0JcBTGFw^*HD-6pv&3%8bDXRDQ5sEmC9fLn;k1k*)4SiNpzDIDab%J&-?&5<_RSv;w&_K)vgbI(C|Q zU^5Cajp>~y38AXt%5jNl%c;7OPt@R*y`5BFjBuwi$%{3tBB9|8X}68lIQ z2?_lrII@R4PDiric zxby58q*N7Pe|E-dm5Y5D+8DPBjg!ixGQ-o zUyuKHB~70IJz9@Cdq|%SX`+2fv^Uf%;zmfh4sT=|-@i-28?KcRXV-SK&1wugg*V%6 z?cUHtf$EO+$MOO}u+Gj;iX@K486oZ1nn1pITbs3L6WbXo4o_Pd+>!{*z*AWzT3WBl zpL{Lw|B6Xk5{XBD;fq_NwKPJD;IL*Prd+*kxUb%U^`XlZO&sV}gxbV8jU2V~=k-1o zNFaCE(zl_pTw{5i;pm9klHcC0?T%x3n~jqmZeWv#`BBDdbB|%~H(nXu2sS_ZRA|4V z2@I$KNq@IRgRKWdvVrB}9;UM}=J3LC%F3eRW!p+n0@)HcRz`1Yd>{<0OQ*8-^dh(3 zB{u~opu`BOb5lLozm)qpPSC&Nyl7}NF4K)%x_*6iS&qP$eR}yXPkr@qMZY%;nW7Kc zbB%?cVcV~Fy3I)2#d>(PedhB|(r8QGdOi2?l?iW%0oGU5{0esO;cjzytfpB<;mI{8 zC8$^nn{|T<1BK9MKFyAu_(4b25Mlg!kw5?F4DVEk`B0}|(lc{XCJVyf_kotXvU6z3 z$OX;_+;7vWZhAzzwkyMvuMlq_y@C%!XIM2QH$dME?MJ|$a;jOqU~vfVwx>xnbdwpt z_fAz%p`J!ZxE$9wOPmGQZj=W)r1BSF_!{>jTxE+zXqSD zMHmzfd?#J<9F(ddyk*JP;l?whvnR1jOW9~R0R?5M+B1QyF83&q3XxlnJ&@>@2K$}Gz*}qEjB4; zgV7cRCHws(+qaWm9u(2b`|lFF;Tf2VDb!ZWT#nHxBn9&KVqO-|>?14o_T4BI$gX6K=~}S6{o3Hd#{tzux15@1&gf1)uSRsH*XR=wWf= z%^Oh$H+6LeSIlr;!%kR}sL-5%!;cLI4S#6M`50)apA1R4ysc?@IDvCazOXoq!-#o+Rt_9%4xn%1&)_l^2+Lg){VaP@F(v)5s{` zI+X-#i;VB`Z{sPusf)9QR*(3RkE6HOw;h2EyozSf*?%c{JZL$=1OWD!x3y5Gd#_3Q z&e{Gk0cp^M>{#>*doHV$(YkFXxP~cu7yG)s$`dd5zuFng_)4<|qMbL#oPjPc(%nTNH z)K;+D?9SdTSg=9psUE3F->>@S%evYNp%>P2kn@11856)x|H;(BnFUB3Te1{mBWAXCl){694yKN>57#v-z9yDYIGs%q9=g8~~(FvzJvf}Y4Q zRoU4w;UGBI=a;f<{dgp#I9sTe*!=*zkyxF$Gz&{XeFB9_r$1CtjuY@YQm@U<##yEF zcr?A>PY`uNFfZJ$K3b`~TUfIV9a`@oj_(_w{Js?rV;+jN?;2cvJ4zaBKei&|jGz(s zFQ31nCZM!C;yHYB54zRo*9Y8MksjhovuUDnhS@P^O=%;oK`KwR$hM)m zn|j6BS_zurxUXFmo9OQ0m2ZN}V>MYv54E9Fh`pEofm;J?|H0;>#@X57_?=Gfl} zIJ55g3eO9U*0KCaB$;Xc6Y8FGy+vtZa{ES9sCOOGgE&1#c!8P#_~I@shgh3F6q>In z>k%kmoMQvm(A<$ru!}1JCS-y@gOS(!D%jw>=`)gvfVd$NvNpd`~#08A+&^t9Kxcvq}x;!Wzh2CB|%3q|k*n z`uJ;>S&Um8-p9OMNl5AG3X>^9c$1=wIgw0drL#ziG2)3|lj)&HjaI=X}>xcmgu_Ecpx;ZSIoPV!NTNbuC2|Vmhxl z-{f{27l?BXwKNw+(9FP?;ZG2Fo+wFOjh3VRF|n8DMf%AnBtKCgQ+BezLf_nBoVxG5 z!Gu52KpA76k0WVD3d(UflMFcugX&+Lf#}MBat`b=UfQk6bwSG0y^1!Tcu&a3kTpVD(7cnUVBF1-3w=O{&@x zqEP5=wc|I?@v_GM>4VB1H#4SIj08La+CY)4UUQY6d`gmaWL{Q?S?D;OtGT}1M$e7) z>>q--dNx>7sCN=`0xw=$2d8!2 zZyZ`ljlR$B7sIZ2YMkN2nF(iaJW{VwzlN}#E`L=Kn>>l z5_JW~;ze9K&}N$e5G?m4+lkrC@QtDt9kkK^dwLOd=2dP`=TJ+)>t#k)?O}*S#i)hw zZpVy7|Gh3sdwMSwfrO0kcS8tZc7^)h)D%t}7P?nlPxr2cy5l2fHgi|(5JB(zzGl*l z)fV9#b29FEaKSyAOM5B14bHZ}mfeh!(v;{M!Jejv4|u#218IFg>MHynXIO11v+n6V zu>#=k#J*9%IEcXSbeU*tE47NYxQx z(Et3m=q?RMG5!->MfQHv@#C~n|lwB+ZQv_gpV z=^u4VJ68ZyJMc-faYF5&gei4sZ$`ZEQzB1-NL|(Af^B%`b zunMTi9kAr#$M({zV3sk^zJ41>8?y(h zr3vitNZ2K6Y1V^J3S6?yjoonzwo|?b|BLZ#&+dooG)V`yKqT5zyz;@sR^656>y=L0 z?~9+q$xOF%g6?sDrsD)z z!&(>6f3aV=c-9J!9dk)-%M_c$m5pXVeak>dL!Qy@$Uv|eUbqf#Dipp|`}9Pp5CY0h zJ{44^R_0+Vj}!AnK>g-}$v{R54i}0TBP+S*7JEZ^c*`c*X5A`*{1cXXNEA+zUDgm? zf?(dfZ5UkFt!ZVgztz)0BV;L!Ypfq4A`$R zal)|%U7`?F3kG8)&fIV}HQrQB^D#DUVYLNu{9mKg+86-&HRUU3 zY2R45G)>Jlxyn5h?n<>IyFT5d~W#|qt*w11RZW)0JTD!ucaIH z$)Kkba$;#G0$xmQFT}!U4>hXFruBQ^LtDqPF4y;EC~PX`p~RFbK4D?JBk-?HcFPyb zhm4UyPJpI?CRI3LCR%xGdfH`v(l9ICNEdkE0RrB>Z2alWwVRe|ftGz76;IJ&3j7PU z_fn}|OYOu-R>;)5!qyUgpVd+3s8v6l;>Essc5%IW71zcP4v5o~wBgBLxcU9?cOv9b z4^JIRJe`|)|FZ&BkMBq}n!M1R1Fc{XFv`x&ix*2gUE2!)AUoH}fDho%b#~PeSvF0_jk4k;*w@m>A*bo`$MCnjN}JGWSMRtsf9{<0~Dr^yt|xx*B3 z$hVFmQw1&(P4y!_Sh^ zBazqICGmN!^J^tQ>cmReNE1?fZ*@-z)I}no(^mtOe27A7zV{-SXG* z<^q)AEH$HYZ@}#%Tph5^r;EJL=k^0%A*a*(GA$q3NGWAOwjKg(Bq-cR#W$aXT!S(0 z4nq-p23^q!XzK_a9SG|IE;*V;|4$0xCZ3~PK4s}*OD%;7zh6tJ;9} z)+z;Y1xpe){}_voy#{ci&4v4w)Pt@UT5xAWxRss5DbF@Aw9+!$8sW<8Ob=9&XD;}1 zZdoY2ZRlT|reK0_?D78cTvs(! zjxCgC0-i}8?}17FX3W@IOf?-CW!9l*XOp<~qkoJ*!3C`m{bT0|3soBBBTSbv;E81< zG~!|;iE@AlbChAYKE0L^PW80u4^{aSuBV5&nC_}RXwG$76-8kG0DgJMpy%?=@~2yP z&*f&9*S+CtIP{@-xMzYt|8CJWsMM6lN{V?`$WSCqBGy{BYALTxza^_Dh1A)jcLmVz zw;vUd<_E`U-97^$1(!y~{`^NuU8hl#_hT|pfNGK{g5pawyjIQ@u5xM6QNSx7Wg(VA z>9Vj@BB+!9ln$R8QRFfno|K7YqehYNv1ZN9RYT7-qt%+I!+eI~9xn=x(um*ZpIlqk zJs?WKm(sw(@Y-jSIZ=B3_K-KfQ^2tn2_8rVj17AjC?$O|jdR6maFwCUn4`!9_y6{( zpDrmhlQVVSe=iHck@2pw7AtFK3AoYwqXq5}d(1HuJ7FZ}q9++yf%9dwXiDb;)Upo1*I8zYP!oN;B*_!WZb6N~#C}}q7GfgAtC-vWrt40V*9$Hc zEa3wTc#xl{$HT3pMD4yoP;zcm>ze*t7;FiTZa?g|_(yRny&qxroP)m0v|T(#2mjDp z_R`akbjNbeOKnj^qQ;fx5OuS!i#o2Ks%2voP_YmCPdmg!4sH-|lI7&!gX zK)Tz3%FB#ivQcnvKh_hm|oQRMSO4n`$&4LInd1GryA9{L{0*y&`rCUgdLz9k4- z;Qkp)P0YhqcTQ=29P}NcQoC1ZlUu2?!B=o!a0(F?9FCdC5KYjJmsq|pe;+ROHY88C zG!60R#v5X5?j4Au8O0i&lb<`+8Ghz?&)&nMoHuYZWU)`BQ^ru1HxQ%K2xqdBvh6|(4 zT5Jr5y<-@2?rB#x_dDMKpwrGUXQu4_qX&B3kIZ@-2CTnBk8)%y1+B2M0fK4JKbi(Q zOfpxBCwrBPR{|PcAs0%_INZZGAfA-ywnMH0`~NwLsv)4dZA_gZScGXp2M^z^I@LCt zRLo`cqBW9%&ucalSBfk6eXD;%Ru)7LQi05xu#$D()(+l=n=w*-;3-6uMCgHL%u2Z? z-<&Ua(}Q2>R8S3o)z`mb~L}#rlz*4OLntYk7s?s!nn6XUk75S{-yf8XG1* z{>`$~W*@1iK21=Sp^;cKkeiwIOE7v8pcD<;Imm69+$XdN^?frch}qozJEJxy^JUy& zP|x`pw$1jmz0vXFxLq1VC63hlMguGmrrMviLl%-Su77^rS%XD+n7A+e=##$}NRQ5?;9!-&?ddZ_%>6!itktTo!|VqZq@YomoP3uCQ7*ar@7d;%xfk2j?E z48-dGWB-kv@&I!QdxeXH+he<>4!Eme>Uj;vs^90lrSQ}h#a7>6oO8EhJNfN1Vf*px zU3TsI&whNa1@`=BY}~Ew8RP*Bco+dcTGuFzL}aKVkGnRYt)>UksI`H)#=(0x2XhB= znB9*J4!?%+YmL7=)c#&uJNLVpuRIs+e7`Q#&UI|(aug0?QgX8#c*i&iQ)OzC zLc20&uQbmwP&+_&X~B|7q+@d;gLd8eJjwj?1O<4gqH>WJDTSVDo_N+;ifmyckpm+F z&(8Qh3))^#zt>}bor*16AqRwC7cyqyvA^?We{y`|*Tv0OKhC>XwRhHCz;plYJ2drI zrN_v8#2{X4GL)27%9A!Zw~Wu#SQ8Iac#$R2&<#>Pm720jg*Gf2qLWk~pKO2c5B@r} zRx*P;Tv#5}A8pZfyU11N)dB?@Lfro$V+b*Z#>g}&iOV6uPBD3We~Zo|y&e1b?A6+? z8-0~;{_kfNE%c48A1Mr`4j5~q(n>wNZd4@kgl#?9q;HQD&mkWK&?lO=IvJ3!dBS$r zc073M{Pi5aaXNj@_3`Tc#vOs9gz|75$1RkIUT=3i_^ zQPq03hn2QLYZDJ;a@`TbUw(goMN&d0`a#{-5zWE3&)hb@m5s5Ys7IF>V@FjJ70UZ` zDpGO>nXLCC{J?#=L|EDO)2|)0fUV)_a{(CyZ!uJA6mpLY!n!flmPeMK)TnY~?YIrz zh^9UvjMDPlKIh05%hj@o{`}=#skTs&T)5!N6x>Wn5rziFdhtFXWryx+ngcF z?N&82PqZ+^27SH9%Q3%h!oK9G@}4UG`C5imP}g0Pb_G2v-x{>TMr0=- zaq8kRe3{0oRCkt+b?+nT(B{}f-vXj{@Y$jFI(#{QdI}SzR z(Rh_B;N9U-|7j4TL!P;l_)zZF<4s25Bj{ni`Ysx9ZLO``p5HQRbl+l&3sgsuyKB4!bd9-4=LH2dIjK!TtsM)Gw-YgYi=#j@Ht z5LckWNS$vNF^tzz9xzm1A<%rZ&*DN4nET#4M(8`peyV!MB)hjx7WT!!uGvuI1U*Cx z`PhaEQ3X*iH%sU}E3efF5mW_{EIUb67~T&X6vLiEQEeeXzi4DUULjOy<81(^3qN}x z3JZL+y<9+9Q^lJ`ye!b4)9GQoTKs%{p!)X#h2@vWc?7+L-!ANzt zryxs0m!_6e`<#)lw#~PG0~uhx^leSp;S-9trXXga_OrF!|XA|GiIeAfbOVcJiPP#G?-m7(+rP+xUn7!u+&eMy`04!Jv zc)%j;oZ^Y@_bOfs+=1F}9%k0g4Gp*D(Kvj#H{~ zW26pU%`0He{s7seTHpCNrY~GDOQ@_I89$9PeABH2+(;BIY8PCsFf(Zo6E+(rJ9He( zd3mE(!U8EW%aucMs%5nIzUITkmu1O+n|{*~gWMjz{pm^d{-BM*86A;C>IXnl1pym& z*lwo!At~QsR;zg=W&Uhuq1Jo91g);VDHx!L_Vv<)d5-^WLBrrwE=)&wh|`91$*JHF zf6ENEcM6#|&YfgKOwWU?B)N>oHR?=V)?~f^kkJk!4<+liMG1T`v^Z2}KM)+>=JK&g z=4Q#FD~Hjcp3EG{#XsFjawMu~(bP56(lvWk-%=s<>Z~_J2J?tEwBqUI$3IHk0NAkl z#7Qch)!CwTH+gMrrl~CMqXM8K*%G#N+g|5jPGByZCmu45i zs%6RqOutDGQQ7lh{vL=-$FD8< zjwMeC6Ogoz-srxLV)+8QX&~p2ei$g7!$hx0C)Q#0L8X`982BzQ`SqP8nH@FIm^PFF z`n=h1__=Q;2V-kbl9^xm{STiC5ll4j9GPWNv7&rd5`wwR>^XG`FzEYcUQpO#nlQu!hn#5P;1~ape=1FeWfxFN2 zw?6KZKWnHiEk7P?=Oqr)2}9V8!0`V01d*NjQ=CGEyt5$nh3I!;g7u3@)D+A9qJ47| zkwBT;g$W&}DiLdw5Y0tIF(g2$!(h+;yRlhnVz&e0UOAt6VW+Bg82Jl+Nu(D~P&(>> zU{p7o^x4--&9bbDT*nVc|K<{2(07O67$}#g6 zK>M?7(uW0Ew#ct&w;`0<7?@YsQ5(1 z`a!A%-heUzI#U0N=#3$H`=rz?y( zC3IOp%6t7xU9Q1(Ip=qo5NQ1(Gb@+>o{b3R4uDdg#vtu$wPGaN56 zE~cOOtc4YSBkghGpS1p)oAp937l-Qa5-o9N$mCxYpeQ7FCByjbzD|3rUL=Bgea6=$=R z_r3zD53^qb%iFaA?47m9xrSz(8NhxnEST;H9;>oU$EJJp5=*F4dq*X0Qs1gkrqQe` zI2#ib%#Aol)D&pG=K9^vQAy%LV^0-^uIrEIUYBKu<`r2f)AP6$P)Sip(NqR;YmW_y zY0{n~@hTVK{g0+=V9cXyqOtA9ww(rzZ98dfqjA#Mwr$&JY};vUJNcfr@An6GcIVDL z=M47V`^gQ;dG_m4u#B9sp95C+`B?WyY0tcg+hf4fF#0P>Si-JQEf-J!Fv>Qm#18|V6@fcIcBC4*8Eu1lk~95~ zDQ%(z?Mu!8;ez6?D9=#n6iXhzgaN%JbGDb)g}^?_Z@XvB>s>EqD>P6k4j5g9p<@ER z5ni4IMe?#`l4bV9`-4hlS*+_5Y5CC9>;a`*e*60?u8YvR_1}|gPvn#8!lG6mf!ql- zVL6E;zTTDqo`0+o{#u~1FOXsV^WtLtCTr1j)~eCr0qJ&xGpVzV-nkZfS{Ec_QgcoL zI_2-%lQ|NCw2w$HVWf{X&YR3*23v*KE76MC``&%+SeoUYXqiv*$LT{~ax$p?`}#nS zr{8mdDY+VklnqNJRX~+$_nniLBS+RAu_d8y^!pkN!jOsZOHfT%ZvVkWL#h(}Rc2?h z-y%FN-{~)H9KQ#;)o_%&MOj`N1d2Y5_+5O(!!X}(Q9&=qGi0~zdELo-?&e_$DBQtV zVpK;qVQUji9J@;4nRzP`aJtPUNZak9n7v=vAP9L;f^sORQs*Q_I+FeL;c=d?jtoN| zC}d0=!P+W3*!RKO)=`Zm!*EM8tq4mF@xFid=TLoTa(y2n6?f z((LT*Iz9p=vy7^22b{6}I;7SY>~rHmou!mhWM-fsb3{b%pERVyM>idHIzVca$UR`s zNNiz&Yr;7lR;I?~u#w?7L|WxEH=&BAPu)U)?8Mc^5)c7Wj9eNughEnImf#L17+5XC z13g9iI{PytxuRfEajwn-Cx7Ly%8->jkW!LQgvc>67l))CZfy%Nka7^fwvrXlN3j;A z5BNnS%M{5c(lt z>ZYQr4S$D(`?4%3x2-@yc8ji3xZjgO^Po?kQHRbwMUMC+CB;KRJP>hhbQv`d*~G){ z5pp8O+nf2vM~b?83Q&?{^LdWVGYPCqGWcE(oZ-5i7Xpn~11HqKO#N8>_k3{x;d9I_!!h_7GbSn9{MFVJoJFEe5r## zz4-eQ>997G0ZC}FyDx=p=$nA#)fE&~+iMmIo<2+l^{e3-%#r1Mknca7U@^zA&I!EX<=X;ih0rY?(!9}k+g z*ow@{*i71y%(8~T3%JW2m{GMKUTFCMAZ2*8IB;lfDYu@$Im#i5K96+m#GoA$jJ_c}5wM@IHZJ5(>t%9KHosq0|4B}N zof>ThnP=nAC-kz^BHWRrB!IRU>r8WN)sDmV(E7U2!o!aR^X$)BFAK>6v1jaSOC0K@ zlSrz3>lM*z=&FXubnwqd@o8@LR=|NpTVW$HXo!=!ZoXlZ4In}9l1Q=2lTtM05|XDH!+hsPs8JSz8j1f^F>My}r-?rX##DG=W>!K}lU7A5;Sor4eY6bW zjRjR5FG|(qv8H>%l*G6>MwMHrE^S=?5@+@N_`XGO@Y?oIR?*n|1ElSMlDu$J#AEg! z@%|V0>J)Q=0^R%8Y>BjFnxki6Vt-uqR>tlKR)|8`9!$^p3Q>dHBwzvu1T!A`zC#qX^*0Y{~4gSEwvI6F50 zuqB>#C*B-TmDXRe8K0#?1jfNzGQwW5NN5mtWY7hJU#M}>lb$^MiOVTVf!hA*dGX1P zWUMXQt|9df7h12-(wr8z<5rvO8MeiS;uYV?6%z%01``hbAZNwsU4VhsE^1M_o8`Rm z`a@-KBiA5CSH+ykCNbD!n?`#r~$s2tu%fxFcWq9aS~8 z5g}Gnu&1%Qlq-^l!n)sDot90VX$5F&=LnteFRI3}N|lRZTbT53+cIV~glr$=qUUNu z-K7X|=lzNugp!8Q*Bz544wbX1d;&avaf$F&l{$x97BPBRP`il=sDH9EVi{F$@nQL5 z136z62d<-vkWs=RcGj}_|4JUY$gqs;D?^6ycvjsLQk1W7V8dcWNLGn48(~GCaBXaf z@AfpkDa94w@fX#|G8Oi=e0gl6ySq6K)PWAx_H9YCk}LyFx#RY^DxJZCja%#$#9{Ym z|J3O*3uMr^ew!w_7?nuOBu`{nxK*7yZKSIVbEb38EjI3yFQK+QE%K0TN(4`v2|WN* z&qoDon@KCz4p8#d`BEAcTas2g|4+ zC|W+l*5pyF3gN2=1*s%}Vu`vknjI; zrFN_rb4$thwITFb^FJGSfMGP8m>V;Io^%C>qowgc-Nt@H>wc2-Uj|vfQp*X&w;u8r z;I}{$cQzLXQ)woJ4&XKjIMq(ve3x+lC7e?{kdqnPzoM`ZGLAbrgq>>8#%Lbl31O1* zaY&0Pmf8x@^wyErAxC2QyZ*RnpY6Vcd50ODzCPygrX-06hAJ`!mSZwgT~r+gdW16- zI%E{+S_q-}M`7#V9LIUyG-{5OH(ItfqQ*5Pz!XX}LA3PTgz*bJ7%7ksKB`}snaa~5 zHdWqhXeWTzFuhgO>=xFsQy2zhmGuxLi$z4VLOQ}4@TEe_hYyh3@#>L7A{LBjcDDah zEidEsjD4tf{5HA^LUDNbB2Y%5EZ+)J17XSwHE_wxDRi)ht9~aE$?YdB4C!*VL4~pnj1#Fd(U#i@eW+ zEarDh#E4}O(3@sJ0>>@TKJ*5t5dEFgU+PchW^)`>W6sF8Li7^8nUz96?LhuXO-4w) z3v}$98ckn2Z-n~cj|CyAZfeEHwMP$N&E$Oa9G>Jsmlk1qCH)MHff9?!bVCntMpcs} zJZ>DdMfy#@Wwiy1{olR#-P$%1*=FIHCTVXHMU!cNDIis*)KKCEFre z;sZApT3gf?-oXj#-#*40Np02p1SIp`8RJC-x7?gEgW=M({vM!MZ{ce* z(VeqQ`VpaF04=gERC!g2ulR+nKQSpf#h0p_)?oqbDJ7lq*Dcb9H3EF<4giWa^G`-# zrp;?DkfzP$QS9`?s7<5Cm)QGwK-yuin^LKP-8EA=%c+`jfIJkqxcu$`34fZNqf$f$ zyF1kDJRb-LJaP*r)m7U$pVVD_e_qP?oJn(8I?{-tHX>33^#4Q2lkx}SLSFe9KFAlk zuY)I=jWE(s?$X@QT0wI&8Tg4^IbY$XYYVftOJ0uB+&Z;by3b5fS;&nrdyuDM6Wu*Q z9(r2=xf`Hp754L|FNmBaQ9E+RbQ9X1!yiJX{CZXLGiHwD0d5LrsqY$uSGE5Kn4P{1 zN5(gT(!xH@(rxBkkBfyMG1O0mMGt`bO7hUYq!yK^A|VkCZ<_6OW_!`WQ3)e!&tY|5 zQl(v}EupO@3Y+3CwsQ96Xtw{$`T2ae^HQ61=|czejqZLUK=6X8jtwPp3en|;_O_&& zmPkBRn(_UD3jiVL1+Z{qX{S8jzhDuSb=?Z+rL-0*K|?tf@NgB7WOyP!!62-d#nH9C z;Coyy{1d^Xrd^7_4~wyqkfn}_phSyplucJ4s6c^1It?D{%~R&inApY|-!;U-`%VG7 zSw+`B9|lt$2+a1OZgpP19nW{a)nzGZwUVe-xmx+qszxKvtkF>)1fJIC@5{&Y-9iwX z=C~6lSkT&Ut`=-)q8THdsf|`~_0M|Mv4+O^0e@|YV4aOklKJ!Ui%Z*-fz{I|1tZu* zA7_zA3A_-Pt)>BYC_6Zxm3bra5oh@UoJfkBqBcDL5|9ZVhW&Jq@S%__+T9|m#nYw? z!%BC{TI0yppD(o@49-k79VAb35@Kw(f0oy}x>uo=2px+MID!MLC_$}g#uo`iC8Z)! z#WmU5%`}WRfUHI8NP73RA5bPb0RV+1H~&H7V@y;7gcA@PA=EWz)MO50O?2dBLEMe# z@90oX%k3G?vK^JOh3J&=Kkm_EfhEymF<@E1`(5Bxq|+A6#ATn zL9X9tZZ)0xpLpkU1g84}1Po`v9CL$#D`l!39Mysq>1G8+O(pKr&dR{JjNuzF6GWf# z{I`O-^pRGzZ8achR8czfGqvS_uJ9VFQ>OnxkPcpga1_-?P>`^Dkr}B4ck9PIx^^}I z<^XCXLGkQqway6JJ~pu1>;bJ@!Ed?PsFdS3+Pi@H`LS~TI|9;otjzwB2Y`p#+d=M5 zFihlWzkyqyR&-meRkdZb_7K)OhghNm(Oz1vkuFZJL%E57&tg~ot#&oWr*Y-o7tF&3 zH~-L-g(!j}?$DTJ%@~h4gP>*bM>75LFB^ypLSe@e#ZW7pCvmHBH%(CFG6dKe0&Rb%1w=`8FY%$t6@nvYfDjMV)=8a~RKB8czgYMA{Gd?Y$fghun7_F6 znHsc=dYl6z^4l?+M+zwX9{#I_@Qzatz1vq{6=ETtbR4ZLPU4zq4wEFc!v>o;GbAn= zJQwLIF=md+zMd?Y0bsiM20N15sPl;8N`+UISw;WnZx15(C3x1HR8wXwBRfl|$I+)C zfLL^s&zBs&Oe23V#t)G=3{>(5G~49H1E1i*pZE7*bL=|V zK{JirPuG5pt1TBDav~=ErI1v;@luC$8pKgqYYX}Tb30=#HNN>z(5(W)Xu%nSAWovn zQ9^SRxQ}`N4NQ`0@k;(3qtIe)>#y_x1XyXg0c14 z#dbXZYw@~RosPBb!MSf1nW`G)G`WZ9Ti##)FXZFPeqZy2^q|XNBNonK@?~jsphaf* zE!5CwMr4ufQt=7{>?G;{cFffZY5nH|9ce-Ddh2~pE7z#s|f{eo#ck7O>Xq1|k( zwbJ~*ev=CwsC}hk(>eR_W|fW6%XEh~?(A9#>+YIWaWQH-QUe&j6)Hw^INF z(KMZ@Vrv>?%NrBkV!xtWY?ax&+VCd@+O0}cqZCMJTPajsb(`(|AL6tJXW1Lu_A3)Q zcFkIIAdhGgzQhw=n*)6#C<{?-q4h&G|bBt~N{jstZW zhc1EGrBat|EwMmRntCdc{jAGr2TEoAM9ph+akZl-^wtfit?&_QOqISSN(<*!kx>jEbcaw&^Awk$4oW?U(}$ z26O*Unpgt+Rim640L4FXC5m+#7jC&;Cc~`wm^XDHdm$&I((=?}lWgz5dU2`U>mXU9 z8io$rZ7c7gs#K%~JJ&SM+JH=(`5TMdC4mEu zL3Is{ly1hms}N2!WNQgDDUQRG4HvbhDckr<6J5xT%`ZGW(E-q2FAE3)PwcD(jt8VCf(6MLDkY4RcQ`X2HaMe1~me?sRqSwvt~o;N%hSPvGZtNV)55OTbYL4Q;#Odk17B(insii?+uje&Q@GPF7F2o3< z7Y*>@{?9;$feWXT1eKg&kF-9y(0JCcJ>3cvWmFBqWvb?NXKC9Rn#T{aAi*euc>oHP zRV%p2=o9{AVKXe&omlbZ4qx)Z(FutiRMqHSw`p9TFHX{%lu!$Cp?wGuj{#=XgIWqG@;6AVrqR`fdiqz zTU7^9tqxzWlE=o*ZE9;ynaP;?0e}d(>JfLQORf?Q6ATFAk}pnGhnWv4x!xSBxnR@;4(X)m-hBR{Nihdh+Om8L#+aa%c_P7)B=(O_79afHNWphy25^@0VZkxPrd z#6*-I;t0c7c-8#3U$c2@Nu5#8gv4%V7`{*f8$8N`R#g8ZEnnK`Tei4YE5!*Fm~JDK z-)zW5YUO_=m8lL{YA`!l8hUIjqh-PO%>{SsCQj9_>Gbk_7qdwk7Bu}y_Hfqt=PxG! zh<@~7yB*6+f|7Df&iZ*(840DMXe9)n*pwumC?GGX+2J~+a@+5EOzCW`c=c`K{~!&i zGE!^GVS=1jD3$`_J0 z>OG^{_NP^;0#h*CbYFEc4L#qBT*n$0om4-lphmVAzB1rP06;v(r#;h(KXqbLYFnh; z;L=?8_pYsrYHL;Ep3@}7;Cb}O>PbjNb*fnZB+Xg|tnjV3+SFUwH|mGH=mq8<+KT>4 ziPXQ!8{_g1JtHtS!s3C4-K;0E`*27^Bf^_v_y1K5ybiiJIHmeRHQ8*X*aT-J`znL6 zOpDliE$wa^tgh0b36#LIvfaQycx#scA^Hx0xv_hM=@@spoR;w>t$gH{^jXeeWsQo~ zh(5P^1+JH3P21XyR)(0vmYT2sZGsLXa>Brr+*M!LM$B*p))gg(FsX0bia^r7CDQm% zY%k+#%0b3!lN9JXe*&qxx|Qld5-2jqPSZU-%T%cUL|S_ZMM^=F->j?&W}xa&JJnqfQceq|;y;b?zcJt6J$m-lYLIpGb(b z00ss&0T)$=d5CWj^C9}BGnUIktie()n4iV&&Z9F?n-lgy5`kF^&$Q`rwsHOA0Y#Q- zYL;WkTBcxueG7KufCo)hN0GM+=O`>0J^VSwOy3%ZbeQVJHc8{@&kMam9tl(c4|2?5*Q>t%e+i=IM9QOLrA;93s<_GV zfcba>1r;BsiBC)6Atz`mebJJZIXNVqhX1Yd2S6+)jrJTH1p8^GC7N=~z$gJl9d?fC zZ`(&H2Zs#gFo!($X%W*^_gI&pqh9WT2`&`$c!ru6$H}zz5{rfgQ8T(HsAQ^$&dTC}^787_t~_!k zuq}*e@$b6^(ne-OJ8$xNPXLj0y^jF=gtqAtrs%utNf%HEV#Ni_Az)^Qq!xKSKu_1l z*%jY}n2*QKbIkj651ieT57+HV#0>6VlKiV+25i z`~t-6PbucixMuzt(K*2fQuul5(qlt|R&TmG+V3-=rMDZY<8r~|CDXbPdDVrJV_HF6 zrtxox319+0@_^8*RL-?g;?%eH}7QSOZF&lDEhZF%~x#VD2L_}<4l@lr7sr&K-@ z!sjXv|}qz->fA?6#_7CEGyan0W1H|Dc)V7mYlB zq*(?j7%?-@C{LR|eRe?hjm_OBglZVch3w}r`PJZELW&JobpU3sRoXyO3r`Q|-V$_> z6}#aewsRG*##vczd1J?AMaIM-$)v{ePSr3DJ}jBmwiYBrNmB)LLuERmx>ZE}VnmL~ za%dyoUOfOCE)C}51_NaL{Mm$^K#5nSS%&Lr{QC#O{I(0nO~Wgtj`1ngk!+3=z(ulW zg@A7WBp_`!lsV^kUlIAm;A>lxR$5?o8X8xYl9(~~!buSXJ#j?JbG#kz4(MH&3qMXl z`Th>K)VrNSiTWzGk1Q)C$r%&O>VTg61OM7`r^);pQwmZ|L+phpf-;?s>T&;frQN#Q z7Sq2NRfP_`lznMLt>I+G`%>$5H$9fZb$-FjYQ)Kfx#7m{pNKSzN`P|&ja!yo87L7* z?)s>4eJN2E`aKithdGZcN*ZSvXN)tgkSLnI-KDLv{~D04zApLt6VYJw^rK`mfvBMF%ioi;+6+|!9*$61W|49kdK|Pn0^z9?quc>_ zXuSG{vSmsfG{IHoCs~rM(x957neBmJ3^8cUiRRf>xOIx9@TOL+-$Q{>7NFfe^(cAZ-U>25+50T=@r!rp~B;D8Z~GdoI2TIT6iyz3lCR%{^=H6HzcAJYPkr7bGdw^F$SRBXV^ zo&Jd52?zB;wM|RKeRZ8f}fCqSz?r`XJfP||5wtS zP)z@FKMR{agk`lmduy#m(kzdAdQDVeHanqKU6=yQmjdXv@R{!v08$aEPSFRT>*6zX zVi*3MkR2hIo35YPga(mukicn=NWxcUW&#~yQC?b&jc`Y@0I>=f@S1^0u%FF(9OVn(QGR_4;P)~bwr0!Xd;Ofs*;snpCI%~iO?F7g;EAW7; zC42?F(WF{AP$Ay9@#VY;v;b)U1!P#Zw5PIlF2G2rE{Qn%f;%n3&u)2hGO6@6(;Cj2 zPKoy5JG|S93cBaE5nwX@2VeD**?&G#WFg?R{Ka0};n5sHh|VI+8}GPz>+-!2f3jcV z$HmGbtz|&-g3eJ1u{1!@&vmjpcA?Eu{#dHpiWz}RAQ(N^I2CuJ^i^oi z%)>G44*v>bG=dR)Y0#82e7Z2lM>_j`+_uobA&{=oFfesnB{QH?5P~_QFXl{sWK|@% zfZ7XJXPHTtsjT$^2x=oTEKRd$H;v-Q72vY9GNdcN{&~|%x9Geg$3gre)gF-lJ1II# zFFAyN9;=iV8?l~tDfU_c-?(p$d@{|3F}2nZ_PvKmMk9aR?r+v#44^jIWYEYNq)b2j z2_0ZK1M@u$Ez}NrD(_4E!K?N_!=UbBEe+q|5M|57t?z#cI*lvvW2a_4zU2qi0IHjy z)lC}Em!JFB+7(i3NGmc}u~cL|m34?~iHbc_k!R*qk@-od!et621!fu)BiHSYK=qmdJ5> z%xl4L3S>zA@BWn@tq<^`m{=^SuF~4nHll{DPegIo1n8QO*ryEZ8ql1}GHh<~+exHW zB{10lbAqz(Z1{;0ni{3*`66CRYn=itBfj805FPN>rSt)m(+8QuSTPxfYe0@t-M{`$ zFVXNjM-h9;3gc_cL(rx6?w7f=LQ@X?F1CywD0`CLw2UvcBr5> z%;OPg%UI{7hl+uWBV|5F9^I2&RSpU(J(S%w!G_X%??kWD>huH1!fb; z)4aolY&pT}LN%VHk2VI{QPeNKs!HQ=WFVVAElKF{E>4~YXvFGX+^6bQ1D(&BH$~N} zN>wx>bbOIy%N(`}k`x9%5{65s+erv)u{_*F9!ym~`mZ?am|gGt`2a##gFIwTnrNO+ z2WF?X0I_(s=vs$jVZ`;~3juckF6xoEJf*kva#t+(`2dCbJ|xwBm*?P|oE*GpO%u2) zM7E*fC3lYBH)}smuD+4PIP)N{hHv2P>|3%rSa&y}>h>7z^L&}T^={nh^T_ZyR1WgnLBfJb<)t3&}ARgCKA#z&-(oT@0 z)GLpzGFqw$+lsokZd*RUAsq~#w-3jcw#As$AARh}A~$GO;FI$r2|NLDA}!}&TfKgJ zRE4NLMYBg#V8p5r;Y!N& zLUQ`-h2db}i#Q*oRD|w=gd-dsUGpdQt5@`$>zh0SiF%%Q>o;wfiS-+UL!yZ_Vi_vy zu;BjOdwq9n8o@ zGO2~uumc@UIQFojPY@vxj4H%$o^N;2&8MY#mtz#|SCgtr-4Wnn8Q{}h$QFj0X6>zy znl9U!V=9pqGF16 z)p5=7G3|NZ?(7v4cn@-XTLtd^5tl3ymEzVeSa@Nrr12zA;W{U?w`fMKD}`3Z&0t3% zGq!jZxKvht4(D5z=EeBwUC--xsq<|*@NnOSOIQ7N+c`by6eK#FU+n90MSr81^1MMY zGe~ZQx>1{w6GV|VH|0mBLh+WT!N*Qyx6h+~@#_?#y@K61{P6y$rbOw*InCi$L!7ZN zdU|0lo7R313t&u5&Q3DhljhoDeE;v`L`tl8t{SI1T`t$Om^Ln@SHh&eVrrbqhRs#_n$z`fn#t`q*yGJf3#1Ss=Q$a!)y;Z_rO!j@b8t z6+j%|hW}(I>6xiWwAuB}U9@4c(f7wXs?jpRRAhh=PJSMXlr3Fm&5y#E%*wY1jcEfYliC|pVYK^*}VE| z<6`pGvwTg3(Z7glP{+cLNvG88jlIB(bCF2}*g3>_yEa~ZAqY67=NpBJaJM5UU+~mM zq+`Ne?h|pLaeF-pFPz zx>{X?{(@Qy!>dY+%tzlZ*pJG!vu@Qp)`WM|8*bDG^v_ug#ztY3Hb zwl+IFJbhnxxpc9l6S?=tJd%IHA)!LkfQxM}lL9FkgHf{~O(4B>K4X!&-+0u1)v~Cw z&*KPY-oI>I`Gt4!VqcYqvylroLcwA$fP2b_9&NrrBdPxKq&~Y-pj3 zrD2Gleo6Iqp2aLN=kCVunnpBp4hFlx(=6Y0E^5Cz+nM5;#n~uiqJS_w*1*CUC__W{ z{Gqexjv>dL3&*tETmwCr(UX)d6dTzYo5Nwt0=BLsh$89_+q3=3%qO+m^9GS^*0%Ek)}OW0=tRmeL_ySi#esnt!?PHUP)$@=i_R}# z5PQ6c1;rX79%dvCrFm-Z#`65Sc*^!5-^#(`JiKVKJY6DZ&P0Ey-YAGA1%wzbEHRmi z+fPgu&vG6lA`og`dUnuv7k>CmTJ|K)lKw&>gEx6i%q_s7pupSKxT zHa(yFa8=AM;uy|vzz9eV22vHlg2%fJni|yB<`Twd1uS6xn2Z7?Z$<>()$TFLn+dTUtBF#9eFSkDLJ;ZjO}kB02PRs!2556aG)bA` zlObPmJ~8#Fkh1FrMTxcF+AAM;`yNJaJFITzPb=#M!38L+1HNb46Ku!rVUrcMl#Ggq z6v1K@xYL0H<1sc3rC3wtH>#~5s-I7+ab$m7OT})-+PJ=xs)1^xjV_2NZ-9z9M60+@ zq;9L4C#%@&Kb9Hq=-+79Aq|S6>Ohzwlc2yfG{%CQUN*0h;9YVM9QEB+^2zqc7(T@w&|tIWo~bXA+OZ|p8n zZ8Z>b^S89sNU-?`Oi+I~YDCWkWEOQuwUn4}&Y(I1Q2moc~*v|JDPZOTS$ZZjlk)6m&+y@nR2w2J*qWf3$Ff%Bc$ zUA+4mncn5udDkUS&&_U#>(vQM)4fy-DZ8T2;L-y`|YlT8u>+T9G;6zfhEUl1V zm0F4NC&N9K-21z54T3mWQKinn8VoS6Zowy)_0CNeijAjukXP7pH#vHhARGu8ltK5#c+2gXcF^K^W|G z{;|F^gX%KD#8i^z&9VZX-u=^RXI5)hQsyv*CQ2uGCfYaLbPqpF+uhS(ZOfPHI%(9> zSb_TsnyBVZ#C)gMJ1JbcqlqpJ;RMPcZ@l9Yim%;=@8VV3G23aaG_!t6i>RCoKe(b|^5BA_ z7u~w5`s@*0+DLwFTE);Z?<$BU!@r@=o!rkS+*!+D-z)w~l3hvG8ieq9p@?ehOC9#S z&uz>1Lg{nYeEDwc^EUOCt#`UlHc^OTyiP#cFA;x$|4l7)5xa@@DJo07a;zas6l2y* z6eicAloJ)*%&ghgZEI_%_~Yij>w2gQlj!n*-k7-eCIVeWoSG07&|>@oh9BEQ^8&R4 zA7tBjG@h6i>D<M+5>98V2c7w9X7lIugk1L4YB9&<*89`x!Z^X_ZMXMCGB0K6SRtQ6 zz}4n}>KL)KVG9%#YfneXrfL_AG%3rRq-T1@JIX!oZD-n|@OHh#Q!&x)p;_S=c}Oqh{7eL&cintlK955wzj5?ljS*{fCohN5Qmsbv&IE@;fU@){XMrYY zVtyD$MXBUSgqHUTP-(y^R-lW{UpxQud~~z*XBV4IsYPe9QR?o+%C@>B*w~!lc)EFP9^D_))22)wJE@t8 zD98CdsrY&Vl~KFudP%p&%m&c|mkX`M7;giKOr%dg{S~Neu^acj%e`mna`WwSYWVr{ zdgan8hr8OxICpF^s!{~!i+J*LTDn*kkQO%1fI+Iz)&T7IPb<*uP+0S^;Xdv1;^*Dn z(+A(vjjb);+c&VcS5v?-L>uX@KF`;OfY5*X_F=Z>d0)s7_B)w7(Q^|LfSv zZ2Dl-_%s73Q21|H@i=M&cqC0hRq7r)>_o0iOx5T6Do~2IDfVyO?{|BE6zmNT|9vm` z5s*QE!rE@V>@wJwX%jD${;1DGr)TOf>{S^JX}l+-$zsNgy6+t1)N^cxYbPuv*`5#k z^|0&xJXS2ksAady@qkBnGho?8N_$UzLp%Wzzb(d>9)+JTCl!<6qBAT*W&5yS`y<)1 z)Ut@jKC55QG0$0^?bVvQ!sm5m(+lj!)9nw-k7fef8g=KlPiR2NrTa!&^v zI6g7aG^_gI>E;^(&^irWp_vPaPnhN zoDdE(MxN&f?Nm`6ILVhk3cwELq)hVBU6Xex%(6vr+)r4|(Q9(e2D% z>09JKX=R9-)q_uT&Eh@FE4@Ezyxnh~i-%H=_d&Jq{PhNG0*obcoBQ07r?qG2rPkR& zrK3d9+LH%utl4vbIF-XCh@yh3l8jv5U0~n)5FjJ231PjSfiSU-!yE~p5oO@7SHkwU zjhTw$$n7!peJSZ)8;oJ5p#F_x?2U(Z$!{5fVzDwM`t> zJa&yXw$EOZm1YBKLhm?wL|AcE`t@pHTG*y}EJ#yo<;lv5LnvXi-J6Bswa|%U%jfAB zUVhZDZhfDn}l6A3vNi5Ve}s~q6^NX)`sU@T?-aIKDW0%^G|%MYmd>P3a(kZ#u<{yuKAlQ*aq^) zfz;>UCAo$Wl$(CrynFdg70qSOizXmRPW>MpjmxzNdORMY9Bd#7fy6|l(%MV*Z=GAB)n;>&# zDy>@{@j-~@x25uB15UGaMzB1a0%UDD^uZ$|ZJShqBZ{kYF1kCPfBWccvG~8w(de?; z>0pS39c+%Xf`I}D!PG6BTo6Tb7=VXbM}>~}ZE$IYJ~xN@C#$HX-xL;YCr97Kd%c%T*bw9#(29#M9rA0;fms9+k&NcIjK z|9o@n@Y>r-&+huMklfUg@G@6|`Y;j3Pg8|K9mnO4Bed*zh|umkOTw~-Th4~RiY<;U zg9pa`iN5;r{rQFKC88^ztn0@_IEll`6we~9qj7=JlP^ewlM!ZsJT3^>E{_tXQF>() z;O}e6|5Z4 zq4OlMN^=sIs64!a(OVnd7iEifXW@&LXBxk~y&C`*dcF)*a$mo?kK9Y?t;g%S`d$7! z%DMWP;v#NdT2S(Uz} z*=@Zb<@WP;gBi>{@H8+Cnl(nQX1(HhKI6~}(GTRIhZH7W$$~d)RX3ozPVZyb@~eHp zLn=XqUuDpg7&+dph!UgL=-KeYh6^caRb6FRDMlfV_eLc2cB5+4nxDEtFI^8$yCMwo zANLMrx^YL#sAlNfhH%@JX<}*;!vZ}x?N!+CaWvTH9CqUQI+^YWOV8v|Z{<7rms{#~ zmjimLy7ZW$VBAG1Xm(E`vS26;1`+rY%@`0aV?wLr9QMH|yDVOH1p|qdSWE9JV;$)a z-}!nd^|~%Z7F+9rH!*C!Fi%x1#2E5m;)Z1=KdzUD*?RK0OM7ZXgU;c$ST&OUl6r<2 zdcFv}-m37oY@b)aSzp1RlmLM^mWp-xj=~APG_RG1Zdu@9#{9*3tLI|Gh2u%sY27=p z@vYoT9gw#?1MYP^@xD&OY?f3zvo1PkGRh-T1Mm9=Q*#{CIPpNdh$7O`h7xB%iV6db zUXU3yj4e~AH{ZI{JrJ-K{cR6;u{hf2<{c8APPb!n>_E14-Ad3hO8N;|wE3x_k_ijf zk|;^^^Asd>!``&KZ!{#UmerCq$Ju{q{#}If={b4mV@_{#>d|L9W9M6U|A6}4J#OYA zyz)Fh11UA8PSK6U7tYcE!5Ct?hw=P|CSoA<$iQWOz~yXLiM9-i*x^XOD>z_@A3J?~{c z?ej?5V!dz|GOwym!>s4GRjolu^_y`kA=dp2Q_{&)_Uq4ek z+Rs}YaLw;Ri_*b98KyK3+uv*^Va@zVk7g6-%t>1SnF--8-Z{yYffYh@Tp}Wt*>0dp=TEi}(P8?5E?1 z(nRx;iB)oVsG+u_&cL%`%2fN!yQ@g*Yo%Spqit1Nbu5ZH9r1D@C;as~+hy#YP=l@z zUf;o+BB=_&_5ByqEE4pJI(0@rscZuOp*2WP$d~8mWDmuaYJ!co5%tX(HkV4TD%eBE z^)}B~)gCC{Tjumre_CPxDz8vbAx`)d)Rvf{-w-W5f~$`;Na7ES6sv1mw6|Fobsq1T zc|R)&m4vNnZ>4lR_ulYKM~Llm5e?OyfKwgo^gTk=SrCqoz37-HlE*>yvRqtCx;@)} zx2E?`n7*eaU7~(_gTkNQEg_8YN&%u=$od6RINm9R-!()83$_MoDlA`!b>-m^_$A6I z>N0sFSxG}-0XUaAxa!J7lyqe9_2ojAA(WztGgb%OZ;7L2O4C@Bqck$>R%-BR;O;qd ztzJ*lNh-~`ee+iw4bxsRe37`<&(JMc3MKH#97{Iv$>KCJ>G)D|BC00{#dDM%Q@2FA zD5uEVz(??iD1RVbZBrU5NZjC42m8M~nRE}4k>TkU^ zHsN2+ZvCpR&*Kh%Gc`;w5p+_h*7R`jV=JD7fLbc^{YdbO-@bY+{X(=I4W3hwOqg4! z2|Y#D)dwf$KJYkpaTlr#5hnsG6wCtnW7q1NCVt=<^{c2CFS@@7E`d*3YevO<(>C|Y z+t{Ff^3^f@yLk1J%S@!i_d2dp^UT$_@|v<3JgT!pTU-^)phwGt{{fFcaK9PcjH}j> zloQ1?73*P8xxC62$GXP%3-8M&aE3UGYKv5_u*r-JB^ilyOn;XGrfuOIHcb!$pzs0uo8gnSiB8v zi>*8AySg;|U>i?ibr_Cj@tq1Rr|cegn9BZp=x_S-+-ZCLb8({LHbXY(9%x>gu4psU z6*9hczAkdowWZa?6m%ehBi1slO3k&znhHn&zB;_sLI=CjB-8JltbQ zDX^3&z#u;cDE1*baaJSvw1|v}ugzYl0;qn6nf{WBzIn8#+yAixF6LghiF3FtdHb;i zys;FasH;jVW*`NbS_`?m5;|#P?Lh`OCjLzU@$}NtsXHtq*Zq*G4tA>-HnI;j#f9Tn z@jn$Lr%;KGI4_Ge&a4s|xqxl2NyW|5cqcJz8jFT}9@58KeCzT4GnHn3s%w4S!^RZ1 z&5AomRU{li5OU|UL$n&wVk!XJ6*(}*g)pC1Xx?H${07d3p~QP&%qs4O4E2*8>+k#6 z7qdXj>R_3;#ufO$2SCX;fzT;E7Bn;=VAs^$FpB|nZicxWpgDM)?n!I`lNUB0C)NOVjJ^PHVXz?Nq()^qwChETFO25P)h?18GRub3#Hg7VeSQAaC(74 z(6OE(yhC?=>qj`l`GWg?_JA*LBr6&5V};Uc%q|7+uRi^PSy~UAO;l}0(%t6NadL3N z$>?P`dD#Fr|Ml5E+o2xtb;*q@p6Ir?7QRuSyewXphGCwQg^;duPk?w)Wd=UP1`c_l zq)#2KS_RGbgQ|@!y}}O1y2Ia>-3L^XYhD58JTLoNWC;~u9r&iJ6S0)<@GN_tv72Wn zQV~IlP9^%F;*#w!2GZTA_ z0O$}1U0Vv`32r`T=Ws!_`WizV>=u7tcVDoWahg}80M=XZVymP)s(M7j)?DmqHP+lv z>lz1zLf<$iupm%JlCiEO3IN~RyW1}sqxRtzsqK$roa4g68$}z{ZP~l2(iv!}6xAw`acrGYr!^wl;w$WN{;z7tgpzqA%UnK__`;Tr-< zZUd22a~KNPo-$5Wbz=#ks|Tic97Qt#;zzk^m}h(ZgzY^&-;SHdyAMaX%Eq$iTCZ)> zPZ}>;Jmm$wm6PA<|P-F-l-Md zeRnN}XX%{XE9-Z7CShME9?(gZm)2U#pb@(#E=r8$2SU20Qewyb1SXrzvg_%}hTX z?-t)Iyix45Ido*To{EB@^c2P_GZ!C3eWJGF=}d6yAcAL`)Pt*RyVDS?533etX|FcP zPjHg&7T*~=604g-)#6nZ&cJJZ$Ku!sLdQ4y(Puf$ZRFErhHDjxU4wXhTCe%agFUYM z$4@7%tp0g^u!ADV_PXbt%V86&Iuj`s0R)J=`KFvfv5<0-6#N5qAbMVAEkG#6x=gQtu=oVxD`JQTRaGbI)`>k-KZ@lSwFax^JSl|~^If9^eJxx%HI4NNj9FvGd%yKDX z_cLcfBGdxVgqEi0wQHhprfkgH5B79W&e>e{9IYWXZn7H3jx%kUBiuu-E`aVK31!w0 zhVCs+K)I1ibrwAQrXU(8D~S&h>necX+SpP4acSwDPSR>yzDv#&$L>O`8t1H|@c(LK z1o4B#Q!e9+G^YWF=@f-p$WL>hQGT_@JNtOJlYCuvL&?}}@teSGI*?%p7;fZfvyovF zH+$x2#+BRRTn12?**L&AxfXEF(j3T1Hv22halDWGed&EnN3$;Jb*Kw$!>nt46t-DvG}iQ0N zCEH8yES8LoKrOH8 z1AqE>|Na;A7gyc5U)vn)UV3-b(MTMEoISEjqz*N^=CT0W#){9l7Nw7{+=_@M9W+M; zbU2%|*BRse9pviDJ6~=nGo6~m80G~12a@%z@twQ-=)v?xpRH;HZW%d-l#;K@55PG5 zFT}OWBwwGG4t9~hFTCL;o3cEHIFa%yAoUE*QorZnRoGQ(YBao^scU+g<5e1 z;RNh2h+n{R2*0enxL_DtcK2j|{eIY`+Ld)TT2Xx{Vbdgl?WGteXjLbZQ&MB}Q>ste z0Ddz(DVNoU2uNURz%m*t#|LMy$Mss19N;R~*WMRa3Y%>s$G@gk+MI_cx zq2L(+Ny$rVbAav|bK`6b{0sKrAz5?!Hd0b4Qth=Cd4ETFVeOqE1tB8G>T?!0Av9o@ z0d((;_XNnnDa0~cTwppe;`mg~S_4|CMzwV}ubbsx>GAW!uVxQ7I>zH?{dkzeTv>lh zrGK-)Q(8_OkTrN4sg%qCcpYh}bqDKkSV(9yaz2+mv3(V_093yKk;GSWDLeEd+-OeUx00+3a&hHEd4(>s3KF@76b)x{z(^)TngK{_?AML; z(dGwxyy-fAwNpLk{pZIoqUX=YrL>neaSodOrsOyXW{e0+IeSp?K|NE-T594zvD60J zStxVWdz#6G+A~t!tj?=BaqY)Ub)0AI*~m`fHIeJ08!X0dqk*4O7>fN0LsJA8NWr=y zob_f6e^n{@=P8&3B%Lo^^nJHac>Dq743`!?$41*TLqM&-AzH7Kava9oH5X8#AkBkC zfKsjATAw07j-f>a??eq|HlZ(*{3=r%?kj&=cpoU5d>WxCqN^R>eW5mgN%2cnveke; z!(s{=Vcw5fDsQxc_8grrddWAwnMnTig6Xfxxc%`K+kJmu*|~|0@w}Ug<;zhwEQI7o z%$*|3!GnIOX-P0hVPlN%GuK5C;#DY|R6yOA0b$CeR)?LtJiwP;v5}pR+fHHv(+GhY zXXFfyah^&{g<;eb_w;1ftvG+gMx4v%T{1E2N=Cb5t zsna!|l7z|Obe$~$*5{nLNJ30Xt)vnG$}`0sJZB$ISDNqM&-_EC`q{qq_l@k#X-dJ1 zfiT{~sxVcNUM5amTnYxaq8DVn7%1#K!f3NOi%}H>xRrKEnCtRBKi=Ni)6;R+0I%4{ z`Nj0M;&G_bfRTJ$DF*P9)4OL#BZ~xhoJkl0`lkVoRfB7YW3DC(Hk(eL+z*@VXZqRp zX7>3SxJw3igPmNbj6(*r)D@}SHLM)3jl7e_J=A792%8_F+gf)76*>JxbOo0Uc zeEZ3`(?k7hYw-;{C7Uy&I0IT-_MF99T`;Mo7MH&ngT^=i3 zr~*8d!vFc(%|S2h7uGyCL)i2bj%Z+tt5(_OR~D#6EMBTZtd4QS)K}9i&V{waCINSz zO7zqOnCmr$IKV+Jue%R-XU1V0z3A*t2(vZ969B16VMFuP*rt(7?yE=Ymai^S5SBSY zNa_xAj9=~#Nmbixo<|VBDbSl;DWfZ>db8xHH$kxu&=L}Mt>e@|+Nrr2GPTQ*nS!(d zLeff^7m?5ArVjRtzpuOVLA{vs4xmm>6Lmp6vzF|b&omj@8<3CA>(h$p3A$0vN_|%PsBoSs@YpV)l1uSGwED~#q%8K2%raMHh^S8 z_k)`LAo(2TVQZ#Wn&W5(`F`o0l8SB(?^6qlc1d0wDAdqWh-^A=bbRl@L>2r zb%i6gj8JBWQ4XxRxU%j>J5x%VrCYEBl14Iovk7#ZH7UUQ636MG9I3{$lSvClxh!_& zFYlM@X&7fhyw)HGyUCjiE<$g@(aLKU$|IFrmJjTX9O{r;T^t+(%b8;xU@cGY5naL5 z*~QV*+F_R4JI>-cI?H^!>iMm4-MqcAFN*Fi%#*(6tgg;5df?o-l4On4`^;4T!`~+- z)VV1>dtkEG+a=k*OWQiwL%v^mZ*gB`8%p53fIcY5=6$Ao$Lx|P+##!UrNA?St%h!q zmBbv@-II*5$0UdGeV&M&UN|zsNkAsSx4-aFsJU>aMvOv3q=}oke!tbkkLAR=DnRB1|$Q8ASZjzw%IyYw4959vxv^N z`iOc-li@E?{*|2{7D28rz0rYRecJ4B%L=F-K=xY$?=?Oyu`@PGn^QSs2Wcgi1|;j) z?1aF&IH-k{DdCdx_tnk4zq`D={7&>*`$`4|2YjldyA@ay+aBk1Z~4!nMhJkG5)Kdf_2ig-tq)rqaDOuwQCp zitEVF9(W~YZL=`MhLOtajq)=b=DXE*)@}^|vns(_<^8rKfL5TjQ-xc%)MHNSmC$68 z1I`+Au*y5inA*%^uW61-LswTmM=G(UO)+Qdk@K`gVyY#cs_$`-x^zB`)EKl=pK$m! z;xY=*McU710t@P;yxuB5!(rZ5!xg}HbFEafaNamO*oDUH#^HPEp@w8Dr|Jr4Ej00~ z3W!fP%916mFPP@9d924LrLC1WhEZ(4vq@7QWmQ1e5j@ap&(qaNF-8O#K`M#}K8V8^ z)Q5^v6Tc%CXPmcr>5lQ*)(-TSORMkHXwEoG)UhUHZBoIFS6QZJEf(saj%X~spKcfj z)K}|^v%{$1HDX;mP4j5~_4$Z4>}w03hnKQBVj3(ED8;4dS@}7qdALVjvCT;F&N&L; zzJLIZlb~aY;xc8)kfoY)F9MkJo&5x7`EK!@bXnM3P5N-kt1GeO^slnw*K` z8!He}3NqmhaGcz#YatqMut9m2bVQQZSmId6c+)*f3n0RwtZw*L3#$bH#EK8aie(T% zfPCcO!4@a)D4QEBQ$Y#m20Z6dp~~$YZ+7k<|M>b5OGL3jJtV#CSpWP1Fl=6^uudmT z$(D3cL`!NE$&sB+NV%5Qu)3@Qr{$cZaJY{w06Juxq2Bek8tDCfXXhSv&OzeCuhquU z#x>Q!8-gr@_m-{H417}isEv{soR?cU>%03o&hsY941=7iEV>mi zA!FI)Y@m!uGAFTkoVY|Y#F?X(p~*MvRN$@NTNU?`c|P8MI7zxb-OSr3*kSx)j|ckB zrR6u|LEI)El0Y@#u82-ZXzU{7R19x0!s>G>)gi0bqMqXIKCP7J0^(6he3v)d=SUB_ zwuQY4&DnCZh8(RyR_K{;WJZOd;&9?BL$!AaBs(I0r@`A@KA%Mj0A3m}y|u%msPqeK zZxn@Z_RLW+hT7DKK=?L6f3i4aE0@59v}9y`ww<)4E4bpcg&ZQwQ`bnwnz^?a=I6N1 zn>e)}3;32KA(ypgcF0(#BHf659&#MW?isW}V5mMhEo4;y0^{7%_kjXEu-0TRK<%iTLCevJlWCh&!^8iGze zNsQDnLiQEmW&r|$c(&|cGR_ywZZ};&9`Yz~b>;JG-Vn=X(_hRSNr(dl00X2KbM9c4 zZLF}6nrm@$H6*S9yQGCr;DE`TeRf;%<;Z)!wIdzo!sIia9ARfj~rrVQQC7co`y5oCrS_ddo#tW<`7qE`g|Sn+oyp104P7G`8*Q z$A^KP9qVsg@_>YI%40`!B%#`)Mn1MRjzp4K0S`m}+saC0js%FKKWbWT^n;ZniLixmyHO z2Q>A-pkrkTJ+tJC^VpF{2QcXC9qJG*lO5}y-yF5PWgvj2SAo&z6 z5gD<-%4KL?oNrWC@~arg-=#r<*vMM{#GclHJq(u?J%3tlZFBmU4bc0UIv8%KGmg=Q z2TJH=Oz=9-iHgI8s5*%(5ul~m@+-Dd0K4j|O!5A1a&6(gGr*FD2$#S>R;kvfo6pn)L>a6u2e zALBIAnGaxov{qEj%teZ2nC~H`3G4J7j`1@B$<;wlIc?vmCb)f~a>}B}TAXnqj`R_w z1@Ng=z2lS?7bf*IInuU-)MeCJK~gVWA8zmJSjTu9nnfT@wJZSn)`{|KWAStj64hXm z)p0-&IqT}t)MfEwy4)$6g@2gjWph01)31km#a|1a8$f*6toSo(!(~wbQef7Q0qxCm z5JCdt8lcsx$RXg0&I9KAVn{lw3ZO=*V%=?nWBuXVMfY~C6riqxgP#($m7}>yod&V6 zG~uTorDn58k;atrqV8}o#Ej5Z*L>9(xSJyjDK4(MQ3zVy<}9AM03-k@03f`pZKOK- z;DC$;W=D;%Lo*lmcPLjJ-;8ml_2x?dvGtxUllhiA`hlI1vwl%ku)R_#*9@ zLrz`cHJbD%p4IH$`l+p7hK_MA4s2%x`qc}brZ*LB+2!vslNPnqo1Ge zZyr8Bj$ic2ZXQ1B-P2JHb$th0CFyRn(GuaNDL_3!(lDUclX4KqPYOL~v;=U^aJ*)T z)I@EzS?r5FL0vZW~{mp z&KG5xlB2mO=OrV!;6vk-iXXMu&vmhlz3kM^n}&0jhiTPN8N_Oa-C_frZbtdxl_tWO zWNJVSjm?CQ$qCTOB*-4K9X0Xg;;I{{z}M|wfI#hhZ3&D4ETO897<7kh0)0`KUU~~Enn-Cobz0Pdl5oK}gY1HiDFO){lws^5w z0lZx(Y9*G5{HA+M^0kKXAm!ngmp?x|Ak>@ha?L`ER1BzzbAd~Yy#N6T3Rt_ETeaXnarKt6&LRNW0M#df!C8E2 z08X5y8%Oi(v6&S9E_;l`vZD`QURw`_+gCTRF)`I`9yE(OftwJSoVZvMiwYe3TY-L@ zTRIz%bxVs1VFrXf2e?@U(Z#>1tE@NM=xA5EyosH6fIx!08)piN$_Z1_ysgA0X;6|v z0h0vETcYbgkhOI70(bF|{3Y*-NZ;kv-{fFl+FbuUV5hW6+{CA-(;Kj zcbz>O*g2UBl)+du$eGr{(Pou`+ZDNK3|lPB9S-@u)!e{8rX_e+_Qc#2Gguc5^w)sC zpW!>#);>3jN3Pk5Iq-#AU=ZYRP%rfy76~wI@Sg6ya!_C~UdAT;*=EK+0C9v5Nu1n&W z*xnZbLZJJbd3y*)zp&;;)q4(gQ%lJK4W~qr`VlnME?`^@Y{Bzdhjbm0wm6Q)%X#!N zs4vv&=!wHy-D@myh=W{Occ-ky;>bT2@so!IVoW`THU-h6v6(L;63bY9Wi4h@SCy(P zPSOn1`F1%SeNj}n@BiwCKQ5qLS$d;(Zxh0>nQ`RkqJVr?7Z50TTbif}SqcT*EdvQR z86%IXwJH+Q6aZwE(3ZTxEQdJD3(N0phTwD&J^@+-17CR<^6wg2z3(NP!+&!QVXbgd zt*c6$1AiLXr`b!tXq?+SD((MfHy`y6d%StPzyI`fgu`4~cSE0Tt1{j9KD9a|=Ai(+ zG7)KAH=l$(e3Q!eAX7CDZwh-1gU`%CvE3+LXML?b4)K(0Ywvu5Sj%zzckP*T(rePy zXPFkOmCV`K%}MK_vF*W`b;K1=aX&ktZW&dsm}T8Qeo~5UU{^Q#_PQ_49-TUH#Z$Wj{ymDUy*tG|pdKspD z31_!=&-TcXMK@2s-rgPIAD7nMx>eaM&Pu?kBCJbH2Go{V#5t0S>}d5-5{xwrXQOZc zCSVFeDMHRDNINmfe62waagu9m@4U>lMoI%J7kurZC+8__(^gvQ3$k*8QzV-{Wqi0` zDUSmdb0};haF=s0_||9rc=M!4flnXrpPvpSIM>$RkZIeDD8L}W2CUlQ8=*Fhg(KiR z;46R%3%3?v8*((VP^+H8vDybxb*~1l?B8OTLwx3?^>A$jUKRxp&5I3)rk37>92c>M|u{IlB_QSZ;0t%uQ`%PVgTsdQ;G4JGLTd1yoc z)Z$oE4jXiko92x&)xNg09QYt-ct=+Sa6e4S1*NQhzTPT_xXks{cV6~$X3B~^dj)3C z2ssF`apVr9M*0j)LXlKspH9VL$_weMIpBSRed6T|{h+sxHgEcePe(Y(-&fn30=U&~ zqJXA|vwX_0jXgQMha8Bid}9Fi!BAT@_KyB*k4pD=z9j$m@?Xn4O|Jy#^JlOri$3uYX z_v@WEVB=@H*{4@L;1(#Is!ULq+70#y?7+6wM&#d*x-7Mcv`eXoJ|YgmLPqYFUUkkl zbc`2lthuv~ItMMW^fc?Le#+uKDnP1`%ZZDPGg4AOhHV~Le`TA1A@GY1+&XH1!3@tQ zp`3##?Z%QDwV2!8t(>dgdX3JFUf~m|cRvsuq*126P@gEym0VaOMI3}~0n9(^?3LsH z)+_9Aphui7yE8eYFucG5wf6yx#p13W*lJa&>KR>P^RG)Ol@7=Or0)3+Tyc&x&a%%b zrhU3U+AIEAa|3mjE!sALu-5`b2OHtg`Bm}lt*TOE@|8W$t%_ESuvo{rks>n=pbP*~ z(`>IX#Nlr7?YjGJN;z#xs2p9u%yMi+6L<)9;L=QfI?BaVakI?l{MDHqHi3b z%eU*N8ZwB)~HcM#1+jA&pS*WA|+|4HHphIFGZ! zW~|odnnS?uD#B=el_?H!jf)HK^bH`Wl_VFopn`#P$}=yO9kYX*IVTfU%9^eP8B>rujM^UXxWkHICvXzbTIWeOC3O?xCvkm`>feO zQ4*p{2-U)%9{DxX+)aI)hhC>|F1k@EvU!_cK`=xqRoe(K{IovU4}-7?1ghX<78mfC zA>Hr`IwB6m*8OsE+NCjM7j|`&gKRInQ&rPWjV`^#lXT=tKIS3XI2^QzfR+v&0B9g4 zaE94R?1}FSJ?4;Vx{SuoYc7wACYP5!=dBThV+)u8i}@0fU2Tn^Ek|F$*xUq13)&Y8 z^F5eM#pi&};B9I(srEVnPlCR|F2}gb_2qX~6H)CiMC$y7-t(YFfO!gOXbBbWQ32st zp}!>IRC&iSQ!Y%6skf|`1Ip*y8~r?Q?{Ajb>^gou!d*5OJx|5HZ7cRBM|q+VZHAdB z!P;98L>JD-3~sFE>a1E$gX~}*=`o~}QWnk+64k40afpjtTzDTm@u2f8^mRB3*2c;d zK~O2fT2zZ-Nu-XN1n$$@Dp`F5*o70pl}c|f8|41?JAmq^Up_xie0ZpfoG*R;)L-hB zpXAdl0wk1yuo^OTtyt13*_L>~xL%B}layHHIG`DDl7<+2$s~FwZ!pWT-m<;?&c~QG zU1f*Usqq&PL^J44kHyM7NvPQb;alQ*hBag?&9n(;E5VX}M?iV9XWru;`51F;?TtL- z(&pr`RcuTjDHBi=Rg5)&3k!~ss;e;=uh?~@SQ3sIFiZ04)^NEX+W5B^=2*A6u>Q^- zF-nazPE;Dr4W<{Xpa7P;Pcec8M1!_5mFI8=A6yg|J|zxBVr92F#nRpvhV=l-@N6-sl^SM zdf2NCa)_^7TYG0kQ7Z@}5`f?>du)dFc&jQ)WpIRYXYnFi4GYJJMg(e^=4*1fA`X6ZhP_wx!HsEtXe$?G@vj4 zI@FeU@sbKvkmf8VGUDrva)`HFUwvO(aoOC=$;Hy70oP@E!dgWsC|IM3&vOCM65Gv4 zX=~s<69s`_i%T7lFuhs-k9mB|; z1LPBDu$nLCOFPjd8GRmrHv4Vj5pZjC=a@}{LYs| z9Hb!2x#}V(5(@>^TuM2H8E3HGJg_uAlE{~%=6dKjl%ADMK3$qp@MU-Wt`ByW@0Z+g zlHxZ-mt!nGq{1QBtdHcKgTZNlgmqEclLhuYawMK`prjfN6ZpzJ$Lce_!VpJ!$JVm@ zLWzw48)&X&C8s4gkH`wRv(^wCq6}_;{1kCysDir`Mwm!%GAV{D`Knhu-k%gTKX=wm z-JJHQQy-q~sAP401Lu_pDfqJaNRTX#04I^uOY8uAMK!Y*!HT7xJYuR=ouzVkZ|J1x z9ABZ$a`5ZTHag0EUf#ssenFh2xlD>TAV96YEKgD%7w^w=l%8tKGPPD&W3JUp2L$l3 z@pbB|Gf_G1mW6nK?(*1Zb7l3dxumUZwt@i!MN)_qtS$v{2m-(HNvt6`=}-XA9`U2JFA|e^Nr$Tl|!e%$ic^Jh^4q_eN0`fE7enwj+Lrg zmegtqm-HfL*Y$ZN#9PmWcPDsB38rw!=(Vmn7mm@05^K_+R4|`yX0lOP=2ot~ z%q*1HK;kwWwC|`D7Q&|fYLfmZ|9JDSmg({F{t4Lp-8^LP;v3BzrET5zO+=4CMJ!)6 zCdd030p6c3d0v4|7(u$?(>lPswHoUUtJ)+CnY zkeXK4hEtSq%#eO`iuzD-qWo!8c7~@RbuFKCeLrR6>i)hCfBHH8^Y`^PFmc#?W=M0* zx`aj5%~wi?)~bBZhIu^PsIS36IJtD*k4jJ%SMB%BZn}m=DAzTgYRP z6*+7X50uBA&*Tz^NX??j zdMhwr?5>tl%K)`#Z2px&!HKlej~ME3m%6r(oqEvl9Ie*Cy4n|^A9Zyh)zy`1%{`Zb zFl`}Jhtt;(qH0*#*apivo^F@9{+yukGu`UK7PiXGw@6v&)H9Tt(jq)eKt@(5$exM= zMrtxL2PoqgP>x7jmvA_(0FMum+9Mr?+APjJ| zH3bYln1HxY3nz^b77nB)X+WI7Pf6Vy&GXaz=({cK^dY!RMpzPGOGBWkoNr&O6rh5D zbeE+2cp4{z;Lg)08aTi-=Ij8kWS5ct+!^5Axc|)_|2W!-w$?v4PxE=R(2j4}DX3f?1Rs$XGMwj-m^IlP42J85yyR=+a z>`m|~=B~xY2pg>m?_fh{CHhqo2wOn%lZdak*O`g#&Vc!|{OH^DH#%;&D}cQ4Mbrfj z+J+AqP-QR4cvUjhG$Jm`K$NDorYqCgiXr5Q-xkL#ztuoL&5yp{!#@0t(90=_nzE&s z)m#oT!)$<>#fJ7UD=*;!;8dofWCa$$mql2tIV*0pszD-&$ZB0CSOD1%Rri*i#l)B(mjECqliWy>l%kb3mM?K5={+>!hn%<}Gz zvt#+4Im}H&UvnIF#ro}KHYkR%lFeq$wJ?TMKLbFxtzHA0{U<)qG8#U!Wt?^U->e^b z`m39quadXt$J5^4%~G%4%httq*}O2BPF6;`a*0jV~ICcZ1 zX{Lb@hnI{_8p#-VS<2qGe!6|WN4`DUIGgKl zl+ABWp#+=;p$F3l&Z)SSr2t@8!Kd0-2uKb2u62M#@HnM}efHDC;dJFT##Q^^r}o`2 zllLCZ`I-%E(T`2`F?5aMN0^drNHXE8QPNmr%J{s@40JsT1q6w$Yc1XQKpiU(LVmM_ z-aBsZ-^5PUxUmx4$x94cfsd$^*Fyt<^qyihE9zv)1G2qeL4#Y1QZ~L6L@ev>MMHgl z_|@#;XZXVEELld zzkSz#eQSrh&Gza$Z~4KhOj@T9DGWh5<>{%s318?j0T(VLdjVE#ID$!wOR<28t>$62 z;IEqI`v-`dFR>Ee^Fo}|kN@$Y<5&G)|NPJU&yRQd@gE=WKOADUH*IVqRBgU)128o! zi}L@2bukgtL~B5Dv&w5;R(3YPOsa!aHgpFm#^MD{n@hm-&PZZ`S>Ti%>CD6YmFbx~h1 zWWeEMq0ND`+$LY0Tgb)>)sfOnysKE?tjJPerKN^98t?bV+h_X^d~W>uaDRLE{Ey%C z@h4kwb4wde*izXPrb~e#uqfZgiZ9*)4G&%|iccZ|k+Lp7yI1QSww9>P)X6|hRgjAx zGvxi<^P`S`BQt)xp>tns+e3Oe)jAAbAjXw)=deB}E`zqZqQpe5#BOPo>VuKSB2mSH zXi2TeAG6>C>~s6{Z1X<=SnnV0KW^{;ZH#$oZyU}DV3{{XojLb7=P179(PEHcQp6Ik zA!83X_$7GL)+42jN6QjcTVtBx&qZHn+9!Md{BRUqxxD&0-l-*Ss@W7a1C@dF(I@bs zjo#S$0CQ#bPQ^4?oHTlX4MFkXcM&dU(Wq{d-e#P`Xv_5-?7Q4fQb61|Yy%*#o>VCs z!q`etU7-ND1!M;tL@Jx`*>dQzCDXI!tLM!c+h6P>9s3(~h%Y<-@~r&s4zy?a4MEDy z<}yU_*-Fb3xFd@Q3n47e`K3xJNl0CLj%mng+F|!S8bQj)I9!t58_o0HF0^+GJL#`? z3eYg9Y=clVO9X3k0l6@R-UkdKjl((07r7vo{`H0M?gkM@+GnI^)5mw!@Yu2Lxz~We zZy5weF_!whm^`Ev)!RW@&abcBQiz09SMR1{gKNpLnJ z)onR^AuF&=9h_;59A0K%J^yg{SE2Sx_Bp-jDW8A!X5QZ&Qm%h>-Sb#dWOGhxpGZ6i zngD<$F6WIO)}%FR^*I#^-n87La!67E&IW{rEBUmLgIaj4LEbx-ytwxMY0ai7hv+M) zS(nC=g&7Ls>+}&&S3@XeY3&_Hj04b15U~->1;1YKle@>;oAvSj{_*DF@pioboBRta zZ;g17%`Rtg15m|Bm?t*z3Sb)%HaL-iA|`7B=mp<#R(L<3T9g?K5ovKyU-z%K%5m;; zarJ#bw<8?~K>M5m;zt6ZDh|Ff-j7XPV`1JLtQ@X%9q%h#Yj~Y$T{q3c>6T{R zENY2-zPtUe&vv7ak4Tfp1(_H2uyyO^w<1pDJXo;JaC){#wIftJ-v|3wZAfR;LJ~e* zNCV%ebm~eP`Q|!vcl}2!b(}lx*vC%ERI^^AB#Ca49W5BFbJ%XEra*bERRsi&o+7*% ze9An(j(Q!=xm>QAYy6@Q_VK3Qf2MNhtsUk~n+u=6#LFhgp%%R_ZFK;hnoWwU4uG$# zdBo(zRv3UTu=Y+~(rqJIjJfi#9VK-CG-eH5Uh9t^`hj z(JYn{scQg7>G}5jlACjtzFD_z28zsd@@? z0OEi_6_+XK&JkU}zRkO+(#vpPWM=*AjB&J!ys6_EKkeF`m8ke0ORo5~oi*#oE{rGh;X zZ;TRv^6bR4DGdN*CmcUjG6#6~A#o^}qtq~1vH2Fm9Og0C*57#p|tOKc6mcEzNH6{p>24pUhUK?oEQULzDO1_Wx!IUfLpK)rgiWNYR(TIVqD zxxRzl5(|k&8RjDRrIj3GPlLnmV?<1D#<>Y;7S2Tk1Z4U5ip3}_z;fs7CVIU6fK7e8 z`E)z)Za@6;e3F0tcoHH%%#B{y!?~HHYyx7jJX!Ene9E(j%sw44$^_u|0KPR5i8!=Z zlIwMj;02H`tP}%c`1C(wspDK~$3AvOrs`UUEwv@nfFOm_Rb7Tp33zBZCN;XRgx}g#Wp}JC0OcSb9TlK{orFm+uYfx)bpwu*)9Y>K(_hG~~6q zMhg^}0=2Z#=a|WOM;Zrbht;{>V3y;Z=Y08{y5NY{J!M35zxc?)=5Cy*9>N&lQy~tY z*$0=wy3_*}gwPYnN3`0?YRN4d|-yV$tn@tfHV8H;jS zej#YXo!~7k#5}AOP_7yIYQ8kL9_v7|kE?JVP!EV-rCLeh$ETv=q$UgOF-m9?W8_0{oaVnChZ{FRbSPhCJM;>^8^EhtDUr`0@VtpW!0k zEx!SzgKV}9bT;^_8RujdAZX=qPwB%2ung*zc@WbOfh0W#5`fW518XzRt?Tke^ZXRY z+1SF)*n)&qK)<3^oR;bf@J>WN3$wChn@wIWa-g5Ufr2*x$AOpwlo(D$b1xX_{==g^ zJpt?=eK~kx>2ssR?N0Z_Cfl@zA&f);*0C?+Ef9)1?}US6R$ZA0P}8Ubywy=^opY7| zp!E%QInZ$~F28e9!I0kjTAt%9#8ZhZ#IQVI5Oqa+u3+*r@zMvzh!k@vZkDkI61w;8 zs&W3M1oGz%!#BG<%6VSc!p0o88p@{LJm8CG|2h&8BTEj;It~zgD!WiaZxu;8g1FC0 zst=9R_w$PLuO^)xeJv4WU# zMiqh&4z-e#P`ooIUpJA=|{USp`hL|Q}0U7Vwwq_*Na1rn@UtKM@s zZQ&v0m20!icds$W+GV0|F0Ux4_V9e_jyTwjE^cDuc6z&`Qmey3ngec$WG^SQnSlLYlaJ@Y?|5x9!L=; zvcalS2cDX!W9nj<%G&_Wz&5H>mRCF1ErRKXNBtQ=>hdl&RD#^*by2OE1LSk1=-uKo zV%O{hh+!_PVZn%@I{FiiAXRVG5Yt>1>b$9|KW43;>0cW=*{SvF**+13^W`Gw9G~M6 zy>;eXJh*O(EsW~hh&9599FQ;)2T0`5at>ve$-ZMoU$v79_&*BZfN6llJUm=N*z( zWPCdfD9pUa4s3~YvSJ)o2B(YVC^%o#X2>jCoDG&-yp0TFUN4w>zW=2Es-1j(y#L%k z9tM^!t-V#zx~Ved;1quK5u^*^52}@#duObV{o?5BDE$#~(+z(Y~FWI~79nR%VkPM{&tzi!o#{Ts{=7R^dAhAgS>F z7QrcMoW}Y^j#6E@Yw7?~CFdWv+F>rXe>eLauJlojj~l~#zN5|Fq^dKkaI@H>co5{d zq|PeT#dibti>t}v+(Z9@>Aq;NAe4TYmd8yVU;6s;E;i)NHvp_aQ@^vIWR_vo#nRxC zTpf8x73xpNgabLNN1Rvo;IA38dF{0>UmRz-Q19T!jCGuk?b^vsgcUe+^)$-Zcbgp? zCNB$o7f55Ujn`MiuF>b9&<>8RlW3hYvP+!J?=jh*Vq<@mDIDxq8>^r9j=4>VGjDOo zl2-eQBAF9dIVC_G1!NDDOR}0vaX~=u-HRi;^rhs;_|)Qt5gjz2X$Fc4~`Xb$Y=c zEc)<9`yA<0*S4^?`3sp7NdcCqX22XX_ab6_m?m=q)(B^5nrcZ*sRlFonx@M&S1{@q zjr2vwoi!!%Pj>$_?C!|Ob!`jh$a!i-_g zCf$YDPX(?nwijv9iM#!ozQ6hWfi87r2j{U{09m(M|AF(1tPw*iX|X2L#HDO729QLL zW7aOSfKyG1g~43Nd@S26#e;6Gw_E8*k9uJjJA1`o6y!9xPZFtxFdPQTe9cB|4#wZf+_fyG-@3nRt(e^sN2#hogP!;wCoQeA*VicU?4qD9%wUi|sPV z<5;oPgmf2{1J`We={3UDqPCuEMTX3#nRVqBf5=paJJ!{W>_zd?2LQmS(;)EyrS#_L1ey!G?I<1>#M zv`#O)vV;FmVw6 zjpa84Jkr)vXyhBQwJ#m1R5NJ{AQFLV#yn$MC9sSvN{ys+(pSx;r&@Wl(3j>nn&)sg zy0C@ab3{@v;3%+11Dk~n=7?TT)Ay7Y$bBG(Nt`2xa1vGm%(T{9@sj%7XQXck=iv_Y z-P#+CK%4EVoGmxRna1i}lgKM}>ees5634hk;4M@})_2ZYsai@Z1?dkK1dHi!G0gF< zv$6ipYoxdmKu@4)avH{d@Gg9eaMWu{uohyt^=xawF6J`K=UNlzjV05&%=2`o4^O|` zKi}N{e)n_2&-M<^VReXGuo@;wGo;p6bS$@1=~V~PR4K!nYq7)2tQRULYNcR0OMz8f z)6!y^Z#UB6o^*K^JBxfcry0T8MR=0Ox4*o$JovbU$Rh*Ue!!-tSk1wsq?)kppk}55yTp12L?)O z3MgAzewz2$<;Az;2AZ2~+P1v>&OILQQkS=}lcWJZn@e@bbVx|=3G)m2-36H8kO2~0JdQiE- zyGS6a>2LybcQVb_WbL zo!T)aJAD62P5Iz8JHSIN07uTbCA~Y#$a@^W`_ec3-ac@));^5m-E7{bV|+#W=KNEf z3(F%@7TjBEJ}G|iVDi(~nx}TH9(jy47kO+#z$f>oWaIrO_~bW!_^bVKbN@K)y#>qm zZQ#5x06b~yPNTY@sf7+x{r}XxOLtsH&Mi3aUvbwRcU8svG3-%Kde+}u3xPn`yrxB6 zlBz2AukXE656jMz$&=)#BbQf|B~h{>5<~!dM*tg>(@enCX9X9X05@66iOS~zzu=_C zz?=P8inifL1kicCiN3eX?BB%B*9{*@nVPrima8o^1)V^m0iTL2f*UR(<$!DuP!HoZ zN7m9xs8(&eg5uA6e14SoPof9Fnip0+KVH$d?eT!6x3(sQ+J>)fIZmno;cOBB1d)@5 za7qIV=J+xMI6W6Iasu8CdHag~`reNAn~l|XPOb<(2A@-OlP%q;^aLu^rXCl^hm@6|b3Q+PZsxcY3IMw4d&to*#cZ$YCz5eC{x5yEkX7nDa@a z7N5U&fjf*odWn-G90X?K3l37yn8V}GsjfJ|-Dd-s0ZF~xDn~iYmDP7D*x^Vx1&=Zn zoVQtAjzB5uLkzikj;UTqTT_HM#90g+!o(&*oG_pJb<;fC?LDik`t^(l;wATvY5Pg7C_$#$X6R-C);4-db}-TQa;PkaB} z5$nY@&zp)}-E3G}!-3c#yY$hTB3Sk$(-j3Y522PNa2Ali&_H{FOF(#D{i>W3)z+|E z3~`uOY^}S~FM!jBtOf(HLX)?@QBI(3RG%aPta0iB0xVFz%i^e2GZO$F;)<_Vk;pIh z_}=c{odA>k(+={CjaAR(Re&?Ls=cO zq_9|BJtGKRz0DX$dB=s7_xVSyqm^>P?I~1*S*amADc0O{?C%M6^@zL+%OTac5;%I4 zmryLCXmZUYUmD?$Q@MCyuGFn=k<-+Bn{g=OM97>TU?WI_!|={+X3;*u zae(PlsxVs3t2?{hC`b9qmDP8)&-s9i;$aq`iBqSh2|TD7P?&PULYiR6DgiKKI0J89 z(N1%bI%m0D%`;EWGVZar`R*rsPpyrIqv-L4mA8QEW*a8^n-bgQD2d`obJ$KEV*yW2 zW#NpCnBriSJUkBn)ntDZAbuJxY>$z?zO|$L<;vg>`+?4|~-jdAf zosGz0#m-CD!C?YDxWy4`mi(}C(g0Z+V$T*dzQQiw-Dh?zzw>#hRkJ23dw2|j?+7cE zh_sAQk_Lc#N5st+1;hJ+NV%K&{8XYEd*ID5&5eO7|7D;-QJsZsjslfQSNei@!crq)K@fI z1sm{r#LoK8srbM20Eg*Sy7TO{Tsg!E-pmGw)9j5^u14Rl^`>|4*Q0!jgq(c*;nU~+ z{+Q;LeQY$!w6r~n!z~4A3<*3s!V=(yq2yo%2)MF_7}3W`Mxt*mCoqH1%+)0hhftcn z)nZ3^*6zLRRXYU+1W=|nhqUfi>d0EvS*%S~SinMgWsplhR`WT5if6D=^)9y=M&D(& zM|-;a|LjYv*wOBFzWT=ObGKQtS7Pk41Sb*auW+1JnYGP1Lx=MKH+w!Gfo_$a6H#GK zz2vr5_XEFtopBELr0pH-ENW1=0&lp1irKzreR4h<65K!tkEgMIMI`E z1T@m>$2Ajuorv*ur(d)1(?L%3(iYB*RQ(oVAGt^yE1WbHh6&J4P{7C3thkXu)#I8j z#_4tRUTsv$3>amIaUk7W%yg7H?b*i8%JiCZohACfUcL(ckw8F}y6G1uDW*cMmI{0b z9EG+2l0pT%=J49puZHqdbt(t|>*Wu)?zz0`#ys%e@@6SoAEPw48~{<^13}`HDK}Ec z#8s7|oE%*uwX6~XB2v`klR39y+%Ac|ysx9Y<-*E4C2owD5*!^1qLpBT6joL_&ACQQ zPPHcv{|PY>Y1@7pFJ$yXSX5eU!&}sEb_O!8xGmA#8d~aiMkV zU=vP9meqPKCG=zn#F2`x?)64G)`70>V(0sHM^<)ejY^t; zXlijvny@Q~JUEwC(9~3&E>BHlq#qfYy^E7tWO~(~9v?nF+qKR(6zclskS!4vWHkVsH6ly!*`|R1DN6jXty=+u zohhdp-)ytPoNV`I_BI1I4oPyb*3dLKc_N=Ar*rR(kI4%p1H2<30n|v`=&Rc7EtVcz zn|loRscQM#i}Zt?YMt+10~jx+02;%tH-47Xp5X+w%DhaJ-}6S zV6QCS0wwE61bMvLL`VD7Z z)yesQ2zM=Cz0rTdhra_~{1RS|1>ILxKQ|5H%%)C3S!tD?A}T@{_G+7dzXSa|iNNq*0-Y@>ksE%s$%LUeFr$5MnuB^V{KyC9~ev}EElm}ywH?ck} zeiBc?S*k>tae41Da+@#3v2cu&s1UTk>@N(Ge0hIIInWC`*xM1T75Qw;DH%Vj0mo?} z|JUwv6=bYAvVhNKUV4NC&H@4)Va!EghjKMkf9}0GH13?Od7iV{W^I^c^CiQPmMD> z;0uQ8Lw8+^>y4#QVCoX83ytixO-knt8Ve!UR>)y`ZP!fl^@jWNH06UFWNX=t3b0)K zX7}lGIeCQ62o^eKtjAdH-LysMFMg&&3vOhj`ER9OYf}X znMfa@%?L^!)u%x%Sp|C%%Hr@122hRT!NULr2nnE;LTG@%PSo-~Cpk8XY%RMr7G$%Z zI}Hky`iTf4Bgk}42f$iE%tY8ghAD6l&f8@N)#QtCnc^*U)d=r#H`?QHCwWyQ8MBej zXtJ?tHrBWy6UTr6$^l@Ly@R8|MX0mUic#RDPnPtD38J*`^25rd_1J z+C)Ffk**G3d$+>}aMhd;GR<0T9 z?mgRg9v**tcmKeSzdL<8$cZkjd~T9l%ht1&tu|V<3Y44iFUkOf(R4c4VC80B5{C_m z_>SyVqVwXSwA#A28s{sla+Kd(S$&_w#I>{rm%a96b4*`C$z?>4A|T??TonnWjO(<4B*zju(Z8#{4-H5IL>-H$r z&g#Ao&PZq7iKIoP`(ZQya-_o4%b;dc$bza!P-qB^9{dfWV za;dkL>P%&fMTyKR9d>Ymm*hZ-g5Z+jW57Vp46JI6bv4+WMzX)R=YKss{&Fy-y0r9p zx1R4?>1j9#-lP-&n2PwK-gRBf+_u)@>sx3kcEn=eQ`6S#V2Ot7PR)mE5i663J283bTGdWexYXJ3uZh&Lt>>S7C1plIOK0N#jj{Uhj z`nVi*aqSJ2qq-GuECSx&x zrt?diJJfA1t-rUVqA|4EhTSvmqqjA0W*C($X7!5S#NtT;=_YcLuHm_#d?a^$r&4X!URwz(LhA*?HANb|V7! zMR*x$dJ~slVU|Ok=ECwjYr0r#6U2+R2*9^wvK~91Y6gdaD>Ve>&=*Liu(%7ED|19? z;cIqvS7Xh2`SS;PlwT>AaTLgTX$u=|e17YyIL@pJCyJ{#U_CYI2)8&-ZKj4ZMU}15 zrUM$zHk?&W;0nPv3C5}CZ!ptQzO-i>JFk!n>mO>JPD@Lil)QWe1WXjQpzO8tz8XT% z*APN}Qb39cT0$OUlXJ7V|6ZbCe^!w1vG+gd|>Jodl|&2-q?V z44tKvH5-EVK&GGgqJVA`)@e-#$7|EFUn^gAqR*&|o$`K z($%1xU4V}jKWR(h5zRFj6J`=~c?IKicjFT`s3@EXMpVNw^w%@|_STMank%dC9eN)M zh!#AhfI4E+x+f6b=yvMHrODYCnTwmw2ut$s)#>cRjilc(=-HcN#05vpe9X{Ym?o7 z;v1{Jclg&q4F1xZ=TL~9L|aui$Z8HGoO7+57Y>nLwE!LVm_g}va9l$MQ>8AG`N>Ji z=3-z`GaD;zvBa^i^13dYTt~6kLT916cIy$mD~P4Q##pW7@XlQ5$~gqiv05vYRub$L z-Brinm?e_J|j(0>CWYnR&)naH(n>8)IT~WKErO2z>8R7Qzhx;WFM8 zx;Y1{kmK!EIm%V8tiCUj4CJE;XlL+`?gSs)gG3BC$HW)wBF8ZD4He2%gFgTWQ5~~7 zK@iUSP4lxL&b>dN8t3KJH%t@4mUY~;5fD%Y&C*G+tWw|(;5axNAf)EI4BypL4bdk6 z=A_FBOSh!I(mFrJdCqpQ_kK_)zw3CF4xj@|#yGlmY2fg*N>fgN$+;QFG1&lEPHb~b zoL1$_9uu7!d!8R=w@^(F3gCzIH?mS3)@P>GZsqdvaYK1Vyyr7i5dVa~O;-uy_ust4ekr4K}# zXe;1^#W2J0Ef?NE=K`uVmK(zoN1u*nSFz5goqdqs9v|-Szqvd($ce5kf9^!3#LeWD zIqhy#kSH(e0rA+sIAerAcP+!`M;0rAb8rxNCI^`%MPL%=n@i2#Vu@pYEV2@IP;D?t{Twx$Gm-(+{d7K)^s#K52J>O)j z@9s-CZDi+tGSXFZ4dl-+KC=IS`wzirVB%|sJVlfV4W>2el{6s>VBX}0IuhTH|C@CS^ zn=D85xms}m?bS9q%AsD~#6Ak&lJL#g^-zkeV5w45uX#EUyetIa?P_;x#zF!2v=GJu zAdpKw_gt?U>N8S1-|N#+-gJEjo7G`uQ!B0@KqWU~;^`YyY%JBWHP5@ka-JD_9oj%p zmzyKA+MD;M_0u@3*IVf@e|mWrJ6|utsIW=yhU8C{c6bxR#%P2XVSIV5KJZjGd zBFAFG8G$Y-RIq8P{ArW&@%d+b;N#kEuC2Sp$4cH5FJfUr#YawycRbo$X7j|TAp$5Y z%1`r+%Lm}+F-9@T)?mIa%Yx=xE%M!6=B2fF()cX8TFu?p?0dpV(G_Fl@I=tlnOzG4 z#LUUb*-;a2vBH^8H>)D2rE6xHw(R|r9qc9>tDaX8=CFC=Ls@b_1Q#_S82ef?&I-UI zNf+3tfUM63?7d=9SOjppuOt@Tg1eLp!_6-4>nInwu<}lvlYoi6`Q>8-uWBmJYRr)% z;E>XTI(Q6_;B+8dBJhkgs^ep5%dK3HI>~>!z5MFKhdfEVy!wW^K(AYgJI2ml=a8e; zn!M8rZaL=wCxsXFRr^qNVxh$;6;4B?6A*bMvcT~pud~ikj`P9}c8YSZpqSmtQQ*<630 z<0Lzc?TKX~foGR0QkWofg`%S@7Jz|Dv`TF^j#H#GUWg9lVoliXLP=Bkd=K^egz9(W zd*W8qSlL#e<%0+@CUSM?cT(BnQ6^i+9|*_4$KK>XB1W6Ip4Lf z|68`+t}N|+U70m&>5LHt%WM5fY* z&)J%S+DBf4x$gW@%67%ECY*64$Nq_H20QuuanI_PSKSyj;@g({G>Z?YF zz&ey3tvEWVd$7#u$0)T70cz~c5V?Dd7p9?pyRi?Cw(hA>c%*;)VbP7z^l5t(4R};K zH92<5)0UOp1jb>7I?xMZPF-y^K6`3*o(femQ)t$!dTpcMWQ#++<80x*g%zU4%B`io z4fcXYQU)X^YM-2Bq2ur@(y5>a$pX$2oBJH{yelQYXpl$Khkx25mBs99QT>sQa&ZIa zs(@*8N~~Mzs95F7OtAvbr9Kt$m4z6?%~rkhWt12#3%?!_UxWuI0!Jg@yxK&E`p?x( z>{QHlAlkJK9n+>)8P@Yjmb~M5jaC5=#ZlTAfycXAj4~lkfv3%=`oC!?mWF(pj{W%S z-ATmd_bGzE-W?>)e#17-kxt56_g%<95scGQQM~4Y?3|oi)|z%nHPJ+%=!jA^&W3ZD zS=0nG1#3P?>TfjHclWLvx3bg6SQlkQGNM$U#e-cq-vMi81e2(Fu=L0K0*acP2c{07 zBox~dH>h{J+h|We->v6k?g@7+ztOjzw_=q{iOO2$MJ*njHGrIuGD4W;6(i1{l*FdL zZrTv0D4~X^SKX9lVEC^z&kymXjV_qe;zT~`s%{xv8bgj1`oCgYY_6-KsKuyiXTAG zD){Kt11CpCLPI=i(^6dv(OhyvESi0_}fgW>V@x4VBz($+`Ri#fh4hPSE*?^yl zP#ZcWK*>-g7OABn-^Ch=O%CuI{z8Ai?|b{?!;c@Iem>4k{TDoO zJ_N_v1fAWpmf1KlSCU29O7QWJ2B}u3NFzs$B;>0Xv(+Cqb)a*cue&o3^^k{XG3!Ac zK4dLY9I|*wY?|m^K_J9uZxbXu!YIK7mcnbv_`~5PbDSz-_2JiFKRzFrf6kWOFoxSK zOLmP|hOmSL3ONYzq6KGSBg9pQpPWzNYFLefnU#fGV4DN~4o+Wok3VhfNDtXsdaoWq z&^19a%QQDjG~q+}Ttcb5>UkN{#lXK2FqWzJt0$wh^jhNlh1Q2Z@9b+rJlakEu<%AF z@aFYi^to%|K*8XxuUho(%WoGrdn zG*Df(UV!v_cc4%KD3-$+K`loEgQ(4h$^@7TNJ+EgsUCSL*b1Dgqq_|ADHR^=D8H|| z)e77xm1Fk;oCfZdZnVbXKJv$v zci!`=_J|_@q~_TppAk|M=P9iiDmY;u4T*=x3T_jm`zgGcXc^IXxj6Qk%HfH+ZFLz<hgw1(CKKeC)%z{+}1EAF$Ba0d=vJJ}n;t^(}SZzSA(d;zqhV4;&W9s8( zlN{(K7Z%@Hr#Cw??lfLwP7eDSV0Id#gqAvQqp~ZlRWMT^Xs%A}_T(~@Waev?4clPaIr*QhD{7;270)@b`V<-*@j1^rP#WIL9ymB4JZ< z!IxQ5Dkp*?jtUeWC$KF$&2SqdkI@$}9}6Lhz(52-! zdNqM|wxV~=es~J5^PzXZ7!))K-PuAKqxJ&(TtZAZP|=lIL8ne_LLt^Um%Y+HNBYpU zE$rl3J-2`mJ%E|}1T+jj!;?4*kn@RLbcT@LSUsHhs#GJQQQ~c{_98)EW2ATE;p6)$ zk9Xf+$^W*UYz%`4n~#}FX%B0QvjR0RFzXtz`&0nA*}h7db}h(*mYwJdr_SK0-IfR< z)Z4B0qrGfnH~XHW@cA>CyilhU*xMYNr#+D8!Wk@%XAxiN3qgK%DW3H?0A6+G4s=o1 zt4ufTu#wX@Ze_!0EpK&uhS0%gt<<5#GF=U!-QZx}``VMt*dNatbGr4 zZWa^MqZrlefBK~FaZticl!6~cYjHXqlG@B^A&lWn zMhCdXf*|~4>==GD61e$Y%5oLfu zgA+C7l<)`#V~qnq>}F%Z^RFMim8}1G_ioUs|N8+2}tDSLjD_fH=l9-lvtp8i~Ob5N|_vHDim|7Po? zRR{9dn9vqJcq`pa2X5%SV?Ykb|I^err(w?O*u2vtAUc>dVClB@)64t&?tZgx2m4M` z4|$e3>WD?PQCB0(EC7o$^|X5BbeuB4jS;j{E5YNC)l3auX%x!bVWMv&DDS@e0GJoo z-gv&wZObwM(y<_-6oeL~T38&RFSbjT@ad^`n3}~{)m1;k3aLyEl#j*N3uTxu?e1XL z*>)1HeY&gJzMr8D59_eGCG{Hpt;Aj5O|hrRmA|N6~No#g5>~^ZZOZ+FaH?d z`NQ%XSG{ht){e7Y+Cu1QD+mkA;5MG(Mb;9lc8B;ed~7L8Ot6;c^y55OK^~g;{7U=$ zAP+j*!d`J=cH_>953lUuiWYc>D_){f0;@Ked6ksdnre{|J2g->c+l`pUgbnA1N$J4 zcTe9PA>O!?tvbEU`l}(V*X$MEHAj}BtFuNeQYy1bMpR1O%E-OtvV5vFj8aGD>2w27 z;q6xY(O$N(o1J}hF#%r-kdQ0{E=p$sBLQ{fcJ0_GbVIBzM{!=!vGchKa4A&NsGQuznpi8|g^-<;K83F{R$A)R@&huT(MMKeuo%gmD8JT_QSmF;%4^h4z!N*M@?;8aVn?_^`w1UT5|T?M-v^ZW*JBar2%vRd-a+D z&$3m$$#A^*`BDD$W$p8R;Z`;kEZ{9(s$T)1DaGLtkAU8#<%IuvAS@1$E8sfK=aif| z^+|k#UHHf@uQALIbE0q8->KGBW1YDmlGlWoQ|70sx*d)b;WvoyRMvrGNlt6lR7Vdr zuonQ?PvWK=!N#c?uI$iCJX?>9lhELs|jTj zXRyW*JWZsoGFAqpN)s`snUlql?>@n$fE73tRc|%O_x6<+*WMXl#so_2VZtCucvY*T zQMGUXo#xJg-7`g33^8Y2Fvz<5H~01Q4+Wxsws~Y6 zxxV(sG?}fZMX-lq+AY+v+C+M>X@Y=(&#&4PVa5dMsI3)@0|#@krLoPW;(IOgHFi0` zUtV5+XXCf?C8tu^iU>;4qOYAw0!2wv;W`v&9TH@COTM?&b(;6ogihXOdC5EvA5N3m zPE8yfNxSYJ{&k?|Tv~oZkiu^Q7xj_VGOi9Ybul{*lc_GWs$)c|@3VElf~4Rp5)oL& zY^B(Uu+;Xr(jEId(t)mRVQ-Og_u>$PrEy-R4#3|&@hVdO5Y zE}L50xNz-=9e&bz*H3RT_jW{K)|FK^ZhO+EnEFDPg)P9%S)`ptj*WqqGn$fmoSM3V zE3t!Nt;pLk7^qB6|G+tO5^uA{0iJSg<-IKuY-x4{5DwYN&FN-!&8V80y(^*`y>gsa z=QTy8Xx$8PO-hZjrR}Oo-ap<^sps+I-SYv%@~$m=uD8EEew>3gsa$LbzO{5sJ#|lqPqdqDK^(qBXIj!yxd#POqKk=)vvg$^29OfbymfqRy+qx9`|7gW&alkI@=^hkqhTu1B+XAK%~o?~nFQ9v@8}StxLn z%e=gcjVl_zDSy3IX~_a>qgpTON1m&=P?nF>Z|0*H@J#`YLRe{i*y*{VlL+t;@r~9x z%%k@0WUnN)H))eb5v!oj(KzXLWU5CY8i_^Tn{v)Qve%NLPB@vV2S7!;$SF@79Uq_W z-rLjDHWC;8Pr+{h!gRUcBd|NsepPgv35^ zN>UGeUSBq-;9PQ_38A&Hr6|NCdaFeabCXMJ?{gH&7dkiDPC&8Q3S5hbY7$vFC+524 zVSZ8BnQbhdo#^=85FL)0pI7nTSK9whALQPi^!tyge`)D+qac88rJj`rwOwY4os;aU zRBNG?lyX9Ntz8WMqMDjH5J;vR%d;arxfGr0E6j3~!(3Z_r#w3Qq+0@)43Sk&Glj|V zZ4<@>olKe2$IbCiAVG;Oq@V;QnL>{fJnO1)KF<|79IR|Fd~T3b^JWcLoi}>h_~D1Fn77Q_|A6$d_<>_h1|p_2(PSp zHvkk3A%Jls!c=DhkK$b~e#e7jR@R`D4svu$*<|9`T*#It<;w~Ju*{A?lhn;undUIRxw?U!CGU*`L}SCbDJRK= zyk>*dyp6IV;>xK!$<|1nV^F{(<6zBq)pk;zx@MrSwbX}4nhPtRnFPUPOD$(EUR|yr zUg0|i#WJHsfmj^1C{rdV)0#D$uFZ*cn}*Zl)N1vrX-;#C?jL?SF2ekI$@4qBZSBvF zv{Q9>AHW00$gP(if&KAi#jlO76UqQk0b3kPXRN7v1%Gr(oyQx@aF}asEW1}^Vy)H? zMjKdSr65V{It7QQwc2$dL3_^JlF@x+`3EJLvk=teChjT|T6d55_vgkQK=64O7rLr@A%E(s1jSnz>Y$zaHSB+?N&L;Q?9JO z^Fbivc;v-8Sn1$Gsbvn`uu!A(v#nHhiI2;fZ&6CMTKzycj)*%hUB7ku>EkCzrFW;y z2!B4vU$z%MFKEb{MR)je01lMV*Z>2Ff{)71J6SF|9HvoQmSLQP4&)CE0|yE?K+F5A ztNNQwa+I@NUVP^`juT6a2AbGfn$B}{gFUVgL3Ph&vdKOgBR+Y4`1FKo(zxW?fIa~0rH(BY=Qs(@>`)Fy$Ctif9Vx-X#7 zv8|9f`zMSw%QTaEvq_F}mCK9o^OeE7TR4R_VTkBTk@8kN7&M}+N?|=crL#%{546rE zJQG(IU|frHhp#;Sa(Aqcd|B|^H=N6x5>%b zS$djWj4mOxUNgk0*i$~vyN7p+Vs-M})nZ>*`TW`>Zwe^jTi(rs{>Ri?N1!a$GNK5g zXu%IDSmOjR~Ft`3g^~Bavj3qIAHuyY+2znFYlHisqn*t z?IE1tMD<947Rn>dtl4tDip{dDj7-B0fiyiD6(ctb;YQ@7rysAE=@lv~fqjl3L3 z!cDE3;za6!Nm}hOwUlO@Gx!-y=+Rm0-?l?=)y7tUKZq>M{i!+YJj}Hng{5YB|v+t62(-a-P$S0 znZ>`_M2Gv)#ZBz=CH#al0f1^(5v1+q#ZPCI^OLn}g#RFGXW=xB=^JdgN}QDf93H{? znxQ_(-J{KS zf)c==;6)P=THS6N9OWG6i=NwJv$2ZbSdkFi^qf#y7qWC+gX1`x1lKuP9QclU_q1VEig#x;6ku~0sl1{5@r$8 zj>FMIyI#EiDDQtc7@Yih$&FLdHZM#lDg;iqnp*=Qpfp7?Eh4#q7<0mL%T^F9PIJ20 zDnF5DJWvbJTXZYjV27i8Vr$u*W84yKQI`Oa0mDu=OSjqr2gXy zMSd+H#hiKpj7wK4(r>lMVLozc?R_LCP;i56pVib}O$V<^U=LrBX=k^UVgj~6&Si9g z--K*YD8w%;(7$GuuiZ!|1?U6x5UwwLPKaIKDjo2%&VaxP?BHGEfSr)M0)G*9f%j!e zCFF=e6K5u;K@tKGOF-?wsy^RrlA~PZ^5Q$?%Wys%a9GIA`#fSsj>Y-W!s%42r5Sn$ z+)8oH$(-ZaKeb|Nxr9}v?K8~%-LfNQSii9HxpYR{lytXQ+VFuL?!o+sbu?YB(8i?=EMn@4Sg+7g#R=nK^4PPF|j{l3GZ}HK)=W zL>3lZxatv~S<(gu$oCu&zH;>mFn*EWp< zMvF{?Zve+5af{}q)=#bOrPZj7wUFsXdmQE`7na`HrC~W4tHxV$h!M2|!Mfmug#>dB z7XfT1OLao@VMvaM+C3D>oDd|}>(vgNAbM%ZjsBfYLIWu7EAV+79IXXD(*tYnGYCr( z1QnY|I6iPxWEj=h!aP8LGgyBDTWxHJ`PoMMb8yrh&-|PDE%F znUfgd9kq5OA#2&C);iI?q`Au&&qsU2#m2v_`;O|v3d%MLlKJ3T%tl#sgNKA55ok@z zQkU_MPgOa@!8GKKm{Iff{(?itg~ut|1Y-k@T>;tE%GA(ZY&lOKaag8+ z+yS)tF>MUj!4X5}^TkU^{e{EBi|y3#?qxv z5F6n%HT;>Dqqw#bl5!tw`k5r8t7V>>18xqhjlQz_2729mAQl$PG_f=y=uY>@FQpQ{ zYVtTwF;DSuE&R)zxKwc5oG2R$7TBNI>x^@l|6Jd}-m8=`60ezCp{$|<(di>(4#>o> zRbo$|!&aP|E0-1o_&?O?H^*co@62?s?FOY4Zx&0MIFE76I4++#5cB<8awf z1ptK@woFUnavki_$@l}v%Du)GjPp=#waCHlvIEI(&lXsr&pZ)2KzSoT8T-va_mcQp za!eq7sk%^*$^vzoaF&X%q0XFHuXGj3e!TlJWlEdtZrsw>xOp`V=BLdy2c+)u1nuh; zKGGwbCP(lESjB_?fFT3%Nr6Wx9Lfm}5R#MKYLTNH<>J~qdq-0;a9{zj1%gHVV9AZf zG0eBDt2OrKz$q4Bk9s~?z)4&;)rF9$Pru1g% zgYP!JL^tQ60gjz*AhJGDd(i-Dr-(Jm$jE zI|tv5QJVnBAQ{CRaISbAmB5`!)}o-@sj>=1+bl_P1rb*pYXB4rmCJV+*4W! zg4dayo;VM3k&RW)qlnuaWZn$k=610=j= z3~;8+#C+P&pZcJmA3i+XKm7E)n@V3=dZVi}ZeHA_3Wki&E8fKkHkf8uHcVJe8aXMd zt6QK2Gf3oYWc5fiBdrl@02myvu*>)Mmp#kxtYljmc3D07ye0xi)!qxIa0AJC-b2Lc zMiU?xdP>O!fG@+4dGbZJ=nKZVx1U6RJ7)6QwPiP$v`c=o&$i8qb3^54ZKICvREBo| zvl;QWh%d`KYgs(KQ($G$(lr{}w$rg~Cmq|i-Lb6>J9c;M9oy+@UQzoKH89jV$0}JekLQa)@X`@d$?+-vs1PA=M*s1>fD15XR#v%!PE1hWl5mn;?2x=;sxMKFP& zTFC(KwxE~MGOg4)V(8mDiVp3H$Hfo_{}#zxdAm9HH@oul8; z^FZ|p4lf=LEjhm(T<}z){Kju7oipr)(i#Y>tqLGZ&e0`iM5BU$(W+@&oQ*c(EuuEU z9T-hLx!>f`8e-fmkU@qy=uc65-MrpB?GC)cgPJELKDp)m7Q@N=-_-p_L5=1+dGu0X z?I^`?rr~obMGq_CTJ|nuZg+(67l;0O47KGg`gkA2oE_>XX{^7Fl(pMB zPjjmcWPNn?_%>LwAgt7-I}od(QfcJLF~YrCrN!Of``4?x#Xc#I)VMY4su{ zAteF!TeSn8d_LfFI^e%|22k|j5E1c2;iS9o+1NS}_gj1;qT@gw_*as4+w&WSUb!h9 zGY~{Q|8^!M^ZxcxGsukn)dMS__S|F-Wum=?(eYnnBS2>sNl&+!0!XEg9BxO2-Qdn0 zk@0UiVd*9cHcnIGlvuUnvSDse#@H8y) z&^;dfS$7B)r3w3@zsr3=F^;%b)8%0yL}Qrf`$AD13;qeZ&-}-5ypYK8;Ja(fijKE^ z`HvO!xL(F9T-WsT|m={y2x ze)n1=Cth9MnXYaHCI$q(zJvxAh8V4n@Znv$Rw2^`qkTh7F&UHr4h2&_q(|;l)o6~V zGTY{1-lXIYDG(vi@w$SEZ=>cMzC3;8t#9=TByU~?Bz$xMpJ8QEHYGdzRd*4=!%!&^ znG5O2oA18Cb^o5W*q;53qOHfm^(A&|HL&ASAw8R;`NZUV{viGI?|0ALJp+bO=45Q> zaiHo?Q0ENI|v8v$sv>*>lEa_;eX>eB0{{Z27z~PP8fz+52n? z+7jBC-*XNMe6uO&ZM(cwCVj2CxFQYoeHm4LTl+{T2m}di!6bn3e+GSg+&kxEDh`jX z;!_2Wi3ZX^B&PDwdNilxadO~^YFWIhIMy7o25ahTITx_N_4rPaK42Qq27xY}ncp&$ zgS{t^=4*`T+0NdcUwd!YR3^_OZ$%OYL6ll!qUk;sn1o!Zq;MC;lbhUuNZ0Ss<}GdQ^41zXwLitWk>8-UPO1^2 z6F71sCDI?V7Mba|ubTF9guu*&JeC>)eZB(L#5^HzYjguzLXD)YAbQ>*wp|YPqTwIvXh61jABQ!HKnO3J;1Vit7vUH zXe3wSQj7?V*Ey2^YS;SJvbCS#J`VnI*_a)=mVUBE4Y0UkmXzZq_K z{=}Bcx~d4q9=pH0#lqN*d4?zE>Qbg17AmNjgbGXU*C>8q&r@N0`;D_*jhPK~2ocoAVg@vhWhxB##uMY)#4avIkj`wh~ z4Y6FXe}bC4+6KwGgz1~DorXrOjy+~@wythKLedIQCOlseP_H^3ExGUp9Sp92J}KJJ zaKP8rx!Zzu5%1CQn&sT5?7bW7?1{aTSQTt9dGZwOR=H{q_ir_#tyoeY!fs&%0LM8T z!o&=Ek44l{cx+eDZG&~ItRa00e2VT)Z_||gt-C;^uZox>p1Wdnnj9vb_$=R^Cu*v* zNhcZ?Eo+hAL_!}tlTj+E5MeUM_rAZ^XHUStrOmM*dY(_^NH@5NW1{sB(~R{!y94)9 zo@JkjN`qS^1F@`Ip){|V$Wv3$>*lB2rT-q#_~A$IRIn&gJuFZ#EVTqj)2B6YTdz`p zZaef7rA03(pl;Zz7)LOa8BC2(eX|3^6R|^jap70=<8o~oOs9LF;Ku8lYE(24QG-bE zBv|o)Gqb5Z`?R=Y%F3h>{nhRbvHo{fV@avaw$D$4x-INI$YoH=5v;`teC~ldWN-~H zSh8GRk+qT+DM6AjGI~(G8JYn$nipLUX&*J6gQ2p)TENY{p|fc5eGPe!Rj-NDOcgfd z5ebn5CIsH>ADw0%JIHSgPv65lWSo4bdmJO~skz_vAK%mAjQ0xjqd4@*!sV%IlR2MH zf|b|z{l?W28|A52GBaR{{%%yJK+y!80YB9Z-u;hQMjspEEx=^AXW+K@Cu=mek?OzH zS!wsS*Uq-C=_;|>tQ}kdQCpO6DzyalAMu1i>fWFI`5(aJ9(GvSXF8Kf;*jEOH~zUo z6z>#>f$FDHD8q^tu=NcC5OG$Ey3U5y^VRZ4Q1$3l>;<}spF2pDt#&mUBK13)X{DCE zatWYlUA1Pt9?j~Ty)eW}^_;(2Gq%qdq4VHXmbyUw>z54I-ena1XDnV!co0VPxDbR> z3@l98(Trw=-oWAW4#9`Rj%Hv#YS-%3Wt?6gA@@h*F^V3E735C!BHB(!Yu5t-^=jew zZ0MYHFptt-eDs?ClJ(I)i@cQV-JLgIgQ6Rq9Rpz1H&EDxUEw6|=hP>0=+`^tGjU=W zdYI($(>MDwaQj%w@nIC4g~7Fk`}BG{==4pvc%-C;Q(+@Tc$(=MgG zMoyyj7dS=pe-u>_5TC%3EIqugxUR_iXg&WFSvvFDecXy$`iS1jiRT*qNiM@y@WQ+J zNIrGQ2P=x!}5^XeHr{0(Xg|Z15)Dl&9x7x5fH{-c*I5%ms-bH&Y{#tqi4o3 zc0SLE@={a_7#8#7L&PYa9EdXq9>8o5F+$TVFeqFYty}e#-8tV+>sl>xcHcTh_>mC(+i#r0Y#)HI3~|9~CefiMFL))KX-0an#VS9Gq6 z_NbfW5Sb`f9 zgE#jTLC&OEtI|E!PX@v|nN^9!NbMT-fiuCn5%hoFxVNK;*B-_d}HAv(tlgO3}c zs#RO+aLsVOp59#ax|mM93`l7}>*}uUljrge6AR+2r6BIFC43f-^(pJ>%?&Hc^@kx#)?~5N55HxQ z?<}>zGv8RPpNwP@8Ta-{y3xZa*}8e!sNb~v0!hOs`I3T1a{(RV`WR-0057hI){9%@ z%?cw|&Pa0E48aH?=op#G;42RzmP>!6x8)I8kuKN_`+X|R96|jrqt%_~ZC$#{SZyWb zEt2P{hmBe@-ox{lW-qpa(=@N1ywlj2v8*MIg11_|P6zI0EAXAdli z08GBToQH$EV_ek@Y->L!glGSbsFxrkzpwJpINn zlI5u{owqRtE74`;9jqb@*9BMt<^{~{+-#ZP@wV0@<2|SQ-glUQ!o&Xh*B$j~v&@1n zaho3iDBbp#6V3#VF9DR@2f=@}cjyE}lMiB#V zkKwqA{E-l7QWII}rS7!;zhxU|VsnKj@odq$-qr-y3<}a6>2N&!bTJRkhxa5RpTwe< z0i@Ns?{qpd>lVOY;y-vFwRZZ4eGTX$!XvW?E)iopU3C5KZ;Q2HX`UjlI_jXr2o36! zOIL@m4}F*C^7{YRGLS`#v^`aixwQu;^Mgcm+QV^T7@x0+ft+Zi5)ul^r1tg&2GAD5 zMd=!A{}+lpg3#+Zov=hYq=rPl=DT3Xl}Qx^XEDr`!T$&pOgNKO%tA&b@ z)L%!!cX_`fp4T@-KN_2pHRn{UKjD85iHHE^m zUkfh6MHRLa!9U8Eid*eYCav4gkcv!~fIZ(J8uwa0Ws%xLi1RBxzAv_4Mf}KrZfurM0=2%mWmeOn#mRlP%xg*U@x!Kx^oJ`WcEkS^M!%iP4db3J+ z#CDl{@ZOk>F>sGb9YwQi>c`jFV?aKAX-Ac zGxNL4B+pbnlGTi1RE6Q`Z4QGY*al@$e1BsWt}?bpOH8UW*2Fz6t8y5Hu~ie(c6*(o)Wt z5$Go+ks@qKGMzlfVfArI#L-*!F|9X88G_}>%`tG<|B(8a_)&- zc$Baqv=YwQ!i$wEJgA{fO!?jE*Dozxh`EJBLJf}v==Oyf@a{$r;k~Xp`q0KUhuqSB z#3m+vObPYAvmZtjqEc{ewC656@nJJ#2F-BS2~fC|?I}>T0OgP_H=LPu*5PmUn(9Nf z(>Q8z=cY!3%hTFFm#1NPU9+h2Bz_IspJ#u02YE_wtFZ9_}yi zOqQ>3Aa6+dBa0ow+b%l6Bg~U=z;Xv#`hc5Zf;1Alest%94`gls!M@_BB_zwVJiZ-} z!>5gHAHDoWWSr*xZOb=`K(-!l{n){i?Ba+p71x0yB0HjnBJ+f86sA^1;9s1Nvo|tk z)3U;j7!L<&9I~LeoqW25@=@^SD(}5F4BR~OrqT4|idxrKNs*{3XIuGZck}LqE+U$^ zBiRp%Me>Ym`QHT!nD#w|B`6LaioUvakQ(b^eH5Y|H0uv@VA{$i?nBt}q4D43=e(zN zIa6g~H;C?<8V2}MwQql6kzN<4xwG^!+3Ci{vlAoOEJj}ll4bYtA?q`o@00VYPoaNE z45kaf-c19ae}V$GvNoOiKsFWe#!sU{9?bO(a_HZEShY#Xt$q5dj4uByU!0F-i0@sP z>OKck%;m1#3wX9=jwX|F`YPvk7Q4jv5T>(K+)TY3`X%N}2~T=%VKdA7vB=MTeTkCi6s`m%VD>v1VGi$YF0R;iCF%6tx=c*1EE^QB#O|_zY=yrG^?+FggO1XS&z%T z-)omQYva%gnb@A9pDU&I_gqU8ZJDFWyBnmHQPjV^_c0Ei&pDH`t1ye1;R&xZ@X1y;ojUI$O{;~eyW81$ zu$#25F)<0&HzM^kt!5cB$KdQs)`+8Yo^CBGaaZyM&#g?CKs&8Zf+&alLECExbH&Bgcx;Z*sA3yHJA-OUp*;A zVDCnN&&bn{SHRb}$As3uR$^q+QI(#JIn-2K~mrB>WW^ETk>yXVA{sPy{$3Qq|QD#_A zD4__HxJzQKY#hH5_e{JW&X%K4tZ3oET9E5F)>md%!4in_GUhj)2>WRqPg6gI+oXA= zNhedLH+F7YtJ2BIFT+V!1X1ks8CdiP^_yIEglrn}2Yk%u{Ud#hr^lorGZ?sblbUzR z=aarl>$rZj74ROf8-hvmBDm5SSh(55sdgu#`NX7wlI=5`RgA_WNVgLmgduwWp><>} zz}CTKgVQ6~Ly6|)(h-rbUYn=9LMRf$6X~Vbx{F>pH%Q99Erx& zk)>OuQtD6)O^11ZH$({Wq;?KM`k=U6Ncgs3@5$X0jmxi$sJqJs0A!_f9W3EdG|-bU zI0b9~3e9t7zYMIjO_fuf5P$w~qkrK4e`cHEJ&S{q%q+I~H5@ZyJ`^&1R!w${KcR(t z2Dfwx843Ry!0P=3I4^u|Sqk|h2DRa-i!Roh#!Sw{!i57DJ(R^317A*+Z<~%6)#(mX zcb$s}v%AP=Z0|vLLNw0sD1ibbq1h}88J5Abi^KjQ8Jq$D?2Ml3$RBF)MOOsp3T8W) zC5lPqLi$>t`Hy^UYD`pI#>}=)%_;#T-yc)!j0l4Pg6;Gbf(%UdcE4CceHb>OjDA6L z6kPo7zQ%kBpJ9F(eGYM*LnBHg^g2SA72IeW9$YAYICtwvgZUOpYd76Gt}GLV=G1BM z?s|{FFi;Q84bum73TQ#V0+RfIpiaa2-L5gMOSIq9BZj%#W_ zohnlCF{j!!?&%jQyAY(6jSbClj#9Jx;V}cuWY-V#ysQYZhHKFXrW$g{Nw+1WH`g+UZoMJO^1FpZ~C;LVa*`HF!5Jw;!GaaSH1tWb$u zo$-ITx6+eDD%wbk3P&-djXK?ys$ydo4P?G#QxSSa!Zi zw+Q&)yuS|clggsjhx6<}HR9j-%?3qpplXjGl7ZUL5sc$q0_2T`7f>jLejW`vGQFn%+@jJ>SG}$9V3%`=be#%hhWn0bxOqB;PV3*3@*D*7zLP%o z3~y1DTtFDIDz2Ywwe!dvdrrb4(Z!e7#{RYA)TP6k&F^1vh^*n@_KBp5=Bn@5xpmiZ z`7`#@QJRNa%kpC@WW;+5th>?miyYN&IjDTgXpG18w}i^Q_~YP@7e>K34fA>@_9hYK z%@(CF(}E#Ln@9}v+7a3P1+HqH`LX-D-W8h5PCj)_3WEsdygDurG;?{&JGQbmtfpP> zbbUyKX)DUiNB_0xe z^Qd;?fxCkDpp^{e0={fwW?dF#={SbF;PTp{DWK;O0Nqlg?o$*NK*r6OWPIQ z@DoD53oRL00L2b_#i~oK_;)g2<{3B)GiB|%lPS>kd@043u~|fgCbpwD=5?H%DrQui z9V=!bYmA#0lG%>|N8Rpfp5N?ZGK{9ugFy!&+klTuvnXY&MDxT5(iHfpG@0|V5F>yF z$sDy(G*i(e9-vJKA^>!_Y0p)P1{MZNS`rvsVuQJ_jKX4}2mw@+LtIDZ89U)jQ>wrF2g<`nk^- zGB^zo-z`#(E*921%#~NdcXITY`JEwU9@(?2k(CU_2m1zx)tf)!>n%)p|-fh%^+^g zSXz^;Y^j~X#;b<2%aKV={MMSoV?3e;VB0t6v^_j>zE*u*aaR;WJ@s^-9NG2G3Cz(yOI5m^d)jj7c81oJ-d_-!=Hp@UgJzQ( zfh2)La36U=G@^oDl>C9ChTRS4EMod9&puYTb$E(QaFluk(2aS4RF6p(iZ$eH#%UZYllDrRxMo^nps4{gm z>axZo^Z7CgLUXz~aw7ediM&)RU$BLH=lrI$l}QPUR(@O7-U>DmX(O#)QK5(%Qa;*( zEg%oZSL$^s8$H!*95ILHhSs;%t2$Sg>Olsz_JJS9eSCjIX?EdDmAnsUdTRQ4Uedr~ot2FQ!Mw7 zOB%`M^j_R>%S#7sLb@>wPn}i%6lJT*h4HmevJQAfD7pO0iE&NEm|c=ZZxqBxMK?8G zF0gQ7e>RvSP5{Nt7DW=Q7mQ?c|3BAx#9pjAF7V52clhgvLk0(LY1odO7(R^F?0Ggl|o`OqmB-VE`D6q zm)o?K1VY{qrpIoOW>M#w+eAKb{A%B!ek95y??30|1t%mw(zVJb`}jF9DGoU*caNu5 z9x*}lS#qWkwiLBZ8hz^uxOzn*lH0Zq?YwPi1zbaXFqlCOXwya03y_ui6C6hzqx$v& zL>b9cxE*|{qWvZZHVfrG=K5bsc<)HB>JJ-`n$rN|h;LkZBfehp0inL4s@>h?%V&A< zne?NXBjZ_aeY{-QhY1;6V083my75RAT{yYtozwecMn*hDFEDiFqn1)>>%PP;zqb9L zlOW28+c@WMJs^DQRFoX(?fz^to{!@$x4L3+YvQ>P97D?!mtd9NFYGW47%eIIsqBXx z=2*|pj|9eJ_9G$5->8)MY&J*&2ov+(g2L_((_fJ81EjED;($6X1u239_q0bMupwfe z;cq?kQL~MqP*)q?dj)?i8zh17jXpR~K=NX~!wEr68GAm_g`MW8N?R+HPLh&PQ$OgC z5`u~qN0cMu+L=`>haKK*|OT*&42lY0&dzT1GbG4w=zV!R(s26h>YLI)WqV9*Z)NIYW73c3MM zhmTc-NPO>~W~M0zm@*wj@ZSY)MPDm!KjLD(%C%wx3ZNLWtO@zYx_y^0 zp?U0<U6$+Ai zoJ*cHlg*9w(Kt=>2#cEt1q5#_bDVh9LM%>`s_{wWq?2O`EEF$+r>s$KP_(o~z_Ukn z@JoUIZWh3dD!Udu8b7S5+aGJV1STzYt(Hh@ed=-t`FbpeLH4_^Lr%1)v#$m+k(eZg zh43Xvpv8s}DJMoGrf<>4Ih?1p&!INwm|~4Q4$=n(AiYTc z!{K4i_4i~EqMB<$_(z%=Cdm`KOoTcrI#M&dkp~iAXe6yQ1w-!VE|#;hZeh7!iygkh zYF}?RIU3@^gKeQU<<+NIBqX9%9iJxqSJ5<;--k#HM>@^cs@PA;vS> z{e{^k;@V8jm01+!^5Bl?7!z6!c{Y$EW9R$zXb=sLe3>@$Ce7PmY@v$|za{yQ@8mqk zk(Pz<^^9~Pr^bA$JFQ_koJ}R;>^-0S97>?P#w8j2)kZgU+(G^XXB$lS@TcGfFMoW# zK?p0C3cz+r;{yeD?HBtV&`#y~?>_93WknNF;;Q5uH*`|IMca)geL$Ceoctrsr{lz$ zh8B<^-PjK+H46|0v&%y;HeNNFcVIK_x0a3Pu

RQ+n?x0C|AO3;mZ1G{-K8Phml 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 CI^6XD literal 0 HcmV?d00001 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json new file mode 100644 index 0000000..0c4a974 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304-r02/preexecution-root-verification.json @@ -0,0 +1,178 @@ +{ + "passed": true, + "review_sha256": "70690266737ad1b840b75ee643249f3e8900a55b432c86cc9262c1bfe7d3a023", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.gd", + "bytes": 11882, + "sha256": "7e2f55e671b097cad57c0be332a1456e70b03690e55035c43a6650d9e85b1373" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02.py", + "bytes": 7152, + "sha256": "37e67090c91d12dec86814a6a572dfea43c28ce0409a6e07ea95af6ef65de432" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304-r02.py", + "bytes": 10741, + "sha256": "f594a2995dd54d8a6a61db1d474ce0ce012f122685ac29c82cca11289aa4a890" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate-guarded.gd", + "bytes": 1124, + "sha256": "00524070180300538a08a8e4cbfa9508e22b3e09fcae9aad5dd6a247abf099ed" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/candidate.gdextension", + "bytes": 327, + "sha256": "1930b4586d7fd733ab47c010b254c0a07a3cb5d4918c77851ff41dc764aec642" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/private/tmp/TheTree-ready-route-r304-r02-dfc91a3b4f064b7a86de568e170ea2c1/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-preexecution-independent-review-r304.json", + "bytes": 16416, + "sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304-r02/input.json", + "bytes": 758625, + "sha256": "34667cdb5107e476b475b5ebcf2f178ff2ffa6a0d8811a5542e83f4708a7e858" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd new file mode 100644 index 0000000..9753a8e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.gd @@ -0,0 +1,155 @@ +extends "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd" +class CustomFacility: + extends FacilityInstance +class CustomDefinition: + extends FacilityDefinition +class CustomElevator: + extends ElevatorService +class CustomGuest: + extends GuestRuntime +const CASES := ["ordinary", "stairs150", "stairs149", "foreign150", "elevator151", "integer_wrap", "clamp_low", "geometry_wrap", "inputs_unavailable", "staff_only", "custom_facility", "custom_definition", "custom_elevator", "custom_guest", "path_observer"] +var records: Array = [] +var core: Variant +var calls := 0 +func observed(_duration: int) -> void: calls += 1 +func setup(label: String) -> void: + var p := PathService.new() + var start := Vector3i.ZERO + var target := Vector3i(0,1,0) if label in ["stairs150","stairs149","foreign150","elevator151"] else Vector3i(2,0,0) + if label == "geometry_wrap": + start=Vector3i(-2147483648,0,0);target=start + var cells: Array[Vector3i] = [start,target] + if target.y==0 and label!="geometry_wrap": cells.insert(1,Vector3i(1,0,0)) + check(p.rebuild_graph(cells),label+" finite public graph") + if target.y!=0: check(p.set_vertical_walk_requires_connector(true),label+" actual connector-only vertical route") + runtime.path_service=p + p.path_query_measured.connect(Callable(runtime,"_on_path_query_measured")) + var e: ElevatorService = CustomElevator.new() if label=="custom_elevator" else ElevatorService.new() + e.configure(p);runtime.elevators=e + if label=="elevator151": + check(bool(e.synchronize([{&"shaft_id":&"transport.shaft.finite", &"module_ids":[&"finite.module"], &"stops":[start,target], &"width":2, &"capacity":4, &"travel_minutes_per_floor":10, &"access_id":&""}],646).get(&"ok",false)),label+" actual owned shaft") + var id: StringName=e._connector_configs(e.get_report()[&"shafts"][0][&"config"])[0][&"id"] + check(p.configure_connector(id,start,target,151,true,&"",true,{&"movement_type":PathService.MOVEMENT_ELEVATOR, &"cabin_capacity":4, &"queue_capacity":16, &"travel_minutes_per_floor":10}),label+" owned elevator cost151") + elif target.y!=0: + var id: StringName = &"foreign" if label=="foreign150" else &"infra.connector:finite" + check(p.configure_connector(id,start,target,149 if label=="stairs149" else 150),label+" public connector") + var f: FacilityInstance = CustomFacility.new() if label=="custom_facility" else FacilityInstance.new() + f.instance_id=&"finite.facility";f.definition_id=&"finite.definition";f.origin=target + f.occupied_cells=[];f.base_price=0;f.base_quality=101;f.capacity=4;f.base_service_minutes=7 + f.queue_entries=[&"q1",&"q2",&"q3"] + if label=="integer_wrap": f.base_service_minutes=9223372036854775807;f.capacity=-9223372036854775808 + if label=="clamp_low": f.base_quality=-9223372036854775808;f.capacity=0 + if label=="geometry_wrap": f.origin=Vector3i(2147483647,0,0);f.occupied_cells=[f.origin] + runtime.facility_service._instances={f.instance_id:f} + var d: FacilityDefinition = CustomDefinition.new() if label=="custom_definition" else FacilityDefinition.new() + d.id=f.definition_id;d.tags=[&"rest"] + if label=="inputs_unavailable": d.inventory_inputs={&"finite.missing":1} + if label=="staff_only": d.tags=[&"staff_only"] + runtime.definition_registry._facilities_by_id[f.definition_id]=d + var g: GuestRuntime = CustomGuest.new() if label=="custom_guest" else GuestRuntime.new() + g.guest_id=&"finite.guest";g.current_cell=start + runtime.guest_service._guests={g.guest_id:g};runtime.guest_service._guest_order_dirty=true + calls=0 + if label=="path_observer":p.path_query_measured.connect(observed) +func state() -> Array: + var p=runtime.path_service + return [runtime.create_snapshot(),p.last_error,p.last_no_route_reason,p.last_path_cost,p.cache_hits,p.cache_misses,p._path_cache,p._query_batch,p._guest_step_connector_memo,calls] +func project() -> Dictionary: + return core.project_guest_candidates(runtime,&"finite.guest",FacilityInstance.State.OPEN,FacilityInstance.State.DEGRADED,runtime.MOVEMENT_CREDIT_SCALE,runtime.STAIR_MOVEMENT_CREDIT,PathService.ORTHOGONAL_MOVE_COST,Callable(Time,"get_ticks_usec")) +const ROUTE_CASES := ["ordinary", "goal_only", "cycle_limit", "negative_terminal", "readonly_cells", "readonly_indices", "untyped_cells", "noncompact"] +var route_records: Array = [] +func route_setup(label: String) -> Dictionary: + setup("ordinary") + var p=runtime.path_service + var goal := Vector3i.ZERO if label == "goal_only" else Vector3i(2,0,0) + var goals: Array=[goal] + p.begin_guest_path_query_batch(Vector3i.ZERO,goals) + var layers: Array[int]=[0,1] + var access: Array[StringName]=[] + var tree: Dictionary=p._build_guest_query_tree_compact(Vector3i.ZERO,p._query_batch[&"targets"],layers,access) + if label == "cycle_limit": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[1]=2;parents[2]=1;tree[&"parent_indices"]=parents + elif label == "negative_terminal": + var parents: PackedInt64Array=tree[&"parent_indices"] + parents[2]=-99;tree[&"parent_indices"]=parents + elif label == "readonly_cells": tree[&"cells"].make_read_only() + elif label == "readonly_indices": tree[&"indices"].make_read_only() + elif label == "untyped_cells": + var cells: Array=[];cells.append_array(tree[&"cells"]);tree[&"cells"]=cells + elif label == "noncompact": + tree[&"compact"]=false + tree[&"parents"]={Vector3i(1,0,0):Vector3i.ZERO,Vector3i(2,0,0):Vector3i(1,0,0)} + tree[&"costs"]={Vector3i.ZERO:0,Vector3i(1,0,0):100,Vector3i(2,0,0):200} + p._query_batch[&"tree"]=tree;p._query_batch[&"ready"]=true;p._query_batch[&"arithmetic_wrapped"]=false + return {"path":p,"goal":goal,"goals":goals,"layers":layers,"access":access,"tree":tree} +func route_case(label: String) -> void: + var input: Dictionary=route_setup(label) + var p=input["path"] + var before: PackedByteArray=var_to_bytes(input["tree"]) + var actual: Dictionary=core.nearest_guest_access(p,Vector3i.ZERO,input["goals"],input["goal"],input["layers"],input["access"],Callable(Time,"get_ticks_usec")) + check(bool(actual.get(&"supported",false)),label+" ready route actual native selected") + check(var_to_bytes(input["tree"])==before and (label!="readonly_cells" or input["tree"][&"cells"].is_read_only()) and (label!="readonly_indices" or input["tree"][&"indices"].is_read_only()),label+" ready route original tree and readonly unchanged") + var got_bytes: PackedByteArray=var_to_bytes(actual) + var after: PackedByteArray=var_to_bytes(state()) + var route: Array=actual[&"path"] + var key: String=p._cache_key(Vector3i.ZERO,input["goal"],input["layers"],input["access"]) + var cached: Array=p._path_cache[key] + check(route.is_typed() and route.get_typed_builtin()==TYPE_VECTOR3I and not route.is_read_only() and cached.is_typed() and cached.get_typed_builtin()==TYPE_VECTOR3I and not cached.is_read_only() and not is_same(route,cached),label+" fresh writable typed path and separate cache copy") + var cache_before: PackedByteArray=var_to_bytes(p._path_cache) + route[0]=Vector3i(99,99,0) + check(var_to_bytes(p._path_cache)==cache_before,label+" returned path mutation leaves cache unchanged") + var returned_before: PackedByteArray=var_to_bytes(route) + cached[0]=Vector3i(77,77,0) + check(var_to_bytes(route)==returned_before,label+" cache copy mutation leaves returned path unchanged") + input=route_setup(label);p=input["path"];before=var_to_bytes(input["tree"]) + var expected: Dictionary=p._query_nearest_guest_access_without_native(Vector3i.ZERO,input["goals"],input["goal"]) + check(var_to_bytes(expected)==got_bytes,label+" full original ordered typed ready-route result") + check(var_to_bytes(state())==after,label+" full Runtime cache counters errors and signals equal") + check(var_to_bytes(input["tree"])==before,label+" original fallback tree unchanged") + route_records.append({"case":label,"expected":expected,"actual":bytes_to_var(got_bytes)}) + +func run() -> void: + output=OS.get_environment("THE_TREE_RUNTIME_MONITOR_OUTPUT") + runtime=root.get_node("SimulationRuntime");clock=root.get_node("GameClock") + var raw := FileAccess.get_file_as_bytes(OS.get_environment("THE_TREE_REPLAY_SNAPSHOT")).decompress(11411840,FileAccess.COMPRESSION_ZSTD) + var initial: Dictionary=bytes_to_var(raw) + runtime.initialize(clock,root.get_node("GameState"),int(initial[&"systems"][&"runtime"][&"world_seed"])) + check(runtime.restore_snapshot(initial),"fixed646 original seed/context restore") + core=ClassDB.instantiate(&"TheTreeNumericCore") + for label: String in CASES: + setup(label) + var before := var_to_bytes(state()) + var selected := project() + var fallback := label.begins_with("custom_") or label=="path_observer" + check(bool(selected.get(&"supported",false))==not fallback,label+" actual native domain") + if fallback:check(var_to_bytes(state())==before,label+" rejection has no public effects") + var got: Array=runtime._project_guest_candidates(&"finite.guest") if fallback else selected[&"candidates"] + var after := var_to_bytes(state()) + var got_bytes := var_to_bytes(got) + check(runtime.path_service._query_batch.is_empty(),label+" derived batch released") + setup(label) + check(var_to_bytes(state())==before,label+" same complete starting state") + var expected: Array=runtime._project_guest_candidates_without_native(&"finite.guest") + check(var_to_bytes(expected)==got_bytes,label+" complete ordered typed candidates") + check(var_to_bytes(state())==after,label+" complete Runtime Path cache errors counters callback count") + if label=="stairs150":check(int(got[0][&"travel_minutes"])==2,label+" stairs ceil150/100") + elif label=="elevator151":check(int(got[0][&"travel_minutes"])==12,label+" elevator ceil((151+1floor*10minutes*100)/100)") + elif label in ["stairs149","foreign150"]:check(int(got[0][&"travel_minutes"])==1,label+" ordinary movement retained") + if label=="integer_wrap":check(int(got[0][&"expected_wait"])==9223372036854775805 and int(got[0][&"group_fit"])==-9223372036854775808,label+" signed multiplication wrap") + if label=="clamp_low":check(got[0][&"expected_quality"]==0 and got[0][&"group_fit"]==0,label+" zero divisor guard and quality lower clamp") + if label=="ordinary": + check(got[0][&"expected_quality"]==100,label+" quality upper clamp") + var protected_bytes := var_to_bytes(expected) + got[0][&"facility_tags"].append(&"mutated");got[0][&"need_relief"].clear();got[0][&"path_handle"].clear() + check(var_to_bytes(expected)==protected_bytes and runtime.definition_registry.get_facility(&"finite.definition").tags==[&"rest"],label+" owned returned tags relief and handle") + records.append({"case":label,"native_supported":not fallback,"candidates":expected,"observer_calls":calls}) + for label: String in ROUTE_CASES: route_case(label) + var route_payload := typed("ready-route-fixtures",route_records) + core=null + var report := {"passed":failures.is_empty(),"checks":checks,"failures":failures,"pid":OS.get_process_id(),"case_count":CASES.size(),"ready_route_cases":ROUTE_CASES.size(),"ready_route_fixtures":route_payload,"fixtures":typed("fixtures",records),"unit_accepted":false,"performance_accepted":false,"Windows_accepted":false} + report["passed"]=failures.is_empty();report["checks"]=checks;report["failures"]=failures + var file := FileAccess.open(output.path_join("report.json"),FileAccess.WRITE) + if file==null:quit(98);return + file.store_string(JSON.stringify(report,"\t"));file.close() + print("Ready route local: %d checks, %d failures"%[checks,failures.size()]);quit(0 if failures.is_empty() else 1) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py new file mode 100644 index 0000000..94b39a3 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304.py @@ -0,0 +1,74 @@ +# coding: utf-8 +"""One finite cold native guest projection QA against original Runtime golden; no full regression.""" +from pathlib import Path +import hashlib, importlib.util, json, os, shutil, subprocess, sys, uuid +sys.dont_write_bytecode=True +R=Path(__file__).resolve().parents[2];A=R/'artifacts/original-completion-2026-10-02' +O=A/'p23-02-native-ready-route-local-r304';D=R/'docs/plans/original-completion-2026-10-02' +NAMES=['IMPLEMENTATION_PLAN.md','PROGRESS_INTEGRATION.md','work_packages.json','progress_snapshot.json'] +def mod(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def unpack(ref): + raw=subprocess.run(['/opt/homebrew/bin/zstd','-d','-q','-c',ref['path']],capture_output=True,check=True,timeout=10).stdout + assert len(raw)==ref['uncompressed_bytes'] and hashlib.sha256(raw).hexdigest()==ref['uncompressed_sha256'] + return raw +def main(): + r=mod('impact_runner',R/'tools/run_all_tests.py');outer=mod('impact_owned',r.SUPPORT/'owned_outer.py');plan=r.read(O/'input.json') + assert not (O/'execution.json').exists() + fixed=plan['pins'];source=r.source_refs(R);player=r.default_player(R);docs={n:r.sha(D/n) for n in NAMES} + assert source==plan['source_before'] and player==plan['default_before'] and docs==plan['doc4_before'] + stage=Path(plan['stage']);parent=Path(plan['parent']);public=(stage/'project.godot').read_bytes() + def protect(): + assert r.source_refs(R)==source and r.default_player(R)==player and {n:r.sha(D/n) for n in NAMES}==docs + assert r.inventory(parent,stage=True)==plan['expected_stage'] and r.inventory(stage,stage=True)==plan['expected_stage'] + assert r.inventory(r.SUPPORT)==plan['support_inventory'] + for key,q in fixed.items(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'],key + protect() + review=r.read(Path(fixed['host_review']['path'])) + assert not review['blockers'] and review['host_build_accepted'] + pre=r.read(A/'p23-02-native-ready-route-local-preexecution-independent-review-r304.json') + assert pre['execution_allowed'] and not pre['blockers'] + for group in ('evidence_sha256','canonical_doc4_context_pins'): + for q in pre[group].values(): + p=Path(q['path']);assert p.stat().st_size==q['bytes'] and r.sha(p)==q['sha256'] + root=r.read(O/'preexecution-root-verification.json');assert root['passed'] and root['review_sha256']==r.sha(A/'p23-02-native-ready-route-local-preexecution-independent-review-r304.json') + phases=[];samples=[];error=None;cleanup=[];cleanup_errors=[] + try: + for spec in plan['specs']: + name=spec['name'];protect() + assert not outer.native.helper['live_engines']() and shutil.disk_usage(A).free >= plan['capacity_floor_bytes'] + output=O/(name+'-measurement');output.mkdir();ident=uuid.uuid4().hex + startup='TheTree-PCK-tests-'+ident+'-impact-startup';profile='TheTree-PCK-tests-'+ident+'-impact-runtime' + assert not r.profile_path(startup).exists() and not r.profile_path(profile).exists() + env=r.fresh_environment(os.environ) + env.update(THE_TREE_PACK_PROFILE_NAME=profile,THE_TREE_PACK_PROFILE_EXPECTED=str(r.profile_path(profile)),THE_TREE_PACK_PROFILE_REPORT=str(O/(name+'-profile.json')),THE_TREE_RUNTIME_MONITOR_OUTPUT=str(output),THE_TREE_REPLAY_SNAPSHOT=fixed['fixture']['path'],THE_TREE_CANDIDATE_ORACLE=fixed['oracle']['path'],THE_TREE_PAIRED_CANDIDATE='r302-library303',THE_TREE_PAIRED_SAMPLE=name) + (stage/'project.godot').write_bytes(r.private_project(public,startup));phase=O/name + argv=[fixed['engine']['path'],'--headless','--path',str(stage),'--script',fixed['starter_'+name]['path'],'--verbose','--log-file',str(phase/'engine-native.log')] + result,capture=outer.run_phase(argv,phase,90,env,now_fn=r.now,dump_fn=r.write,sha_fn=r.sha,live_engines_fn=outer.native.helper['live_engines']) + row=dict(name=name,result=result,capture=capture);phases.append(row);r.write(O/(name+'-phase.json'),row) + report_path=output/'report.json';report=r.read(report_path) if report_path.exists() else None + if report is not None:samples.append(dict(name=name,report=report)) + assert result is not None and result['exit_code']==0 and not result['error_lines'] and not result['timed_out'] and capture['passed'] + logs=''.join((phase/n).read_text() for n in ['stdout.log','stderr.log','engine-native.log']) + assert 'Orphan StringName:' not in logs and 'unclaimed string names' not in logs + assert report and report['passed'] and not report['failures'] and report['pid']==result['pid'] and report['checks']==spec['expected_checks'] + assert (phase/'stdout.log').read_text().count(spec['label']+'%d checks, 0 failures'%report['checks'])==1 + assert (phase/'stdout.log').read_text().count('NATIVE_ADAPTER_LIBRARY_REGISTERED')==1 + r.profile_gate(r.profile_path(profile),O/(name+'-profile.json'),profile) + assert report['case_count']==15 and report['ready_route_cases']==8 + unpack(report['ready_route_fixtures']);assert sum(p.stat().st_size for p in O.rglob('*') if p.is_file())<=16*1048576 + unpack(report['fixtures']) + (stage/'project.godot').write_bytes(public);protect() + except BaseException as caught:error=type(caught).__name__+': '+str(caught) + finally: + cleanup,cleanup_errors=outer.finish_captured(outer.OWNED) + if all(q['engine_ended'] is True for q in cleanup):(stage/'project.godot').write_bytes(public) + else:cleanup_errors.append('Restoration refused while actual owned child remains live') + guard_errors=[] + try:protect() + except BaseException as caught:guard_errors.append(type(caught).__name__+': '+str(caught)) + passed=error is None and not guard_errors and not cleanup_errors and len(phases)==1 and len(samples)==1 + r.write(O/'execution.json',dict(passed=passed,error=error,guard_errors=guard_errors,phases=phases,samples=samples,cleanup=cleanup,cleanup_errors=cleanup_errors,input_source_default_doc4_preserved=not guard_errors,candidate_adopted=False,unit_accepted=False,performance_accepted=False,normal_OS_accepted=False,Windows_accepted=False,limitations=['Fifteen original projection boundary fixtures plus8 compact ready-route boundary fixtures compare all typed candidate bytes and entire Runtime plus public Path cache/errors/counters and observer call counts against byte-retained original loop. Synthetic fixtures do not approve new game values or general reentry/provider ownership; ready route cases compare full Runtime and Path state, ownership, typed/readonly, cache and ordered results; invalid shape and mid-call script-change execution remains uncovered. No whole647, performance, final full regression, OS or Windows acceptance.'])) + print(json.dumps(dict(passed=passed,error=error,guard_errors=guard_errors)),flush=True);return 0 if passed else 1 +if __name__=='__main__':raise SystemExit(main()) diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd new file mode 100644 index 0000000..5adb203 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate-guarded.gd @@ -0,0 +1,11 @@ +extends "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd" +const Guard := preload("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd") +func _initialize() -> void: + if not Guard.activate(): quit(97); return + super._initialize() +func run() -> void: + var loaded := GDExtensionManager.load_extension("/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension") + check(loaded == GDExtensionManager.LOAD_STATUS_OK and ClassDB.class_exists(&"TheTreeNumericCore"), "exact native extension registered before diagnostic") + if loaded != GDExtensionManager.LOAD_STATUS_OK or not ClassDB.class_exists(&"TheTreeNumericCore"): quit(96); return + print("NATIVE_ADAPTER_LIBRARY_REGISTERED") + super.run() diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension new file mode 100644 index 0000000..7ced8ea --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/candidate.gdextension @@ -0,0 +1,7 @@ +[configuration] +entry_symbol = "tree_numeric_core_init" +compatibility_minimum = "4.7" + +[libraries] +macos.debug.arm64 = "/private/tmp/TheTree-ready-route-r304-3b80863933444e339e087ffc49628c0b/candidate.dylib" +macos.release.arm64 = "/private/tmp/TheTree-ready-route-r304-3b80863933444e339e087ffc49628c0b/candidate.dylib" diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/input.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..441c3103a181514eb68f225a1532b40ff5c38612 GIT binary patch literal 165211 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%0DflnHe*MrtwukqB`$W0= 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 ?X;4g*w;tqu+oJv0B1u2Jj6-u^oxsZ>xnYKwc z4j{CH*ZnSp2e59aMw{)RT|wC~Zoew8|F7)KIOLya4*{_u)v=vHylldnMe|q-Aa&3Wv#PB?{!zb z#WyuKS1Wu|MgR_W>}vJFLzaFz*o$pMrShdURr)X)W*6cO;bt2#-Ye z+m_mm4J#xnz#ZSOU<8zn19>)kqUV11a z;{HN#pC10X-oN`IwU%1~WZs>Sao}D>YV}G40RI&Z+B5QFT{(|!ryMW$@GtU znJ3sS%P5N)bSbWDcl^>qoz{{>avci-WryU@)Xwg62pvk3+fpl~RKGx!l53g4!?PuI zcq6j?@J~hd`R{{TC+X3bcAGuDK%uq)vFmcV?=m@zYp%wYA_^G8STgG1@Rq&h!yH_c zZL}|Q4;fUX`IhLeb+{Nfr|cT_c`F3k=BlQlGz1}7LX8ge=32Ka*jk{7GV#;^OORgA zO98@EHTr$L9!d{mzkmG4&8{nZn(K!3y0$a9FQ}@IMkASrjHa~jG{vQ7GGK0S7Emc& z@mW$@9hNZ8g&STG;l)>xYMbF$v?5^w>ztR-$cQ9p4|d4Z+evKz!?ayM-LW>1zo=yU|j^o_ngx}VVBx0`njg8J*Uijhs#r#|D~jI2`IQ zX6fuMx(&S;*|olnQd`oO=>V#c47pBC88${qR1wLckx(SS(x|L*7hNta8QVd!cE20j zr%z9hzmrb((^~Joeth`vuj^fVdRpyC7fm-2pFN$O+56B>(#0lZbJ!l|PR7CMyhcyN zkI90Ga?EBcwXcKXRh2SP{-2EW;uMWtO_s_M{DyEw0KSxLqIx&klWlone#!4}t~Z?3 zG|k;sM;Pp4?jHVeA_`Y8_T zM{j)5m6CUNbKiKs+ELM7ST)(`o}F7?V)bLngsLWMB{U!ri4jOUQw}!O>C$Get`U?J z>kJ%%q!(D{LmO9PyQbk@hNOn{TBb<_NXBI6Lm6~0+?J_8;bpgGRP-Kc)jq@Db>8s# z?Yx_se}E`Bd3(P;-_h8XeebE6AppK;q73Rv4Fe9Z;z|kunv!W32Ip=&sEhsmr7UFoE;B(wxD~!(W`A2UrlIgkqM_Kf!TsYja?O90y$Wv-GIbh^IWhmWeMA61pap0c2~cSgd&FHXmo-ExN{(E;%7+eH_|htasGO6 z*O-~~)`k=clGard#m&bk5T7F6G^*})11 z=RyNP?QBM1FM24rl@27|K2MuwhKX1wi?Jjz25YYechUdDtHFg;kik&VJ>S;lpO21F$m3Wmtd_e?KA4j2)J0_K__{a!;Z84+B^*gAZ@uWnlJv%(sn_$ijW>K@xPNSY zNpnVmQefXS9ba`@8^_M}a%>kp<5m2?5vNu{Y(pzpCz*8iEl_%a+V=m_Mq8l6D;gPx`jSi$6u$} z7r@&z|;`0mPfM921Ei$WaE#pWG{7`6d?^IL`uIt^`!^WxJ>mRoC}SbFG#y z$97F-Qapks8l`Ci$!f;wRT`ASK^QIR-Adi2sYr>i>RDa3=$lMj{CvgAeg5rc18y>> z<~*%Y&dnh^=h)zfAyulaxE^xy2mGjfSWS0SK$O(CwkCRsz0KnLt7E#hQgepZ2h92C zRP_;(EE|nVcGIv>GJ|EYRYFy@XYz^FBS0|T%cJ@(Z#b^}+t>N<_)d~tlH$LG-C{lW z)E#wMAdnBWR5rKVZ`g3`{KS6*2W<`=mSD@0>5)?gmc+;kN2A8|;4bGi`5X3;vh{Uw z9^uf(E0gPUFFq#7DC*X(L94-c(u=i)-y1c?m)Gv4yLBI9Im>FB-M>I+9bN@GZ!!m( zhO(tfFhJ|8bki3+Q0g}^YdCvAt$`vQ*lsQbcI`q~p6j{vrfE<>kB3XGq>*K7_To?~ z3aUFBj&EJP`sma-Ipc^c#=H6U`-Sz3s+;Vlvm$DPA06D*0)Q>b2{}awKrr{0g-X(Y{m+af;T6Lu2`$b;m{nI zxHP%ws$)L#$*EQ{=;5!de^Y?h`T_=P15J&ZpujMRtv>wBcncu7YH?|%c z$&Rs*Z>p@^U$=xml=jEt$1hKh?{CUs)Kg_XB{Ug!6x}X`XE%&qiydXlkH_XE2fhXj zHGXF$y{w9ntJ>p1sBez(+Dh^Z&4y74c4|YOw9QVlvgAcZl@6m43e*9XD7VF8x1`0@ zA!hBo`>j8Tm&OABG_l zoNyN?z5HzLtUFaN1c6t|m&R&b$Z+JHoL~94xRD@k=Yz%I-O;Hj$^)m6%|n;s2zc-H zQC*|+U2Q^A#FV|1@>%Of5kJBuEZ9F)Bqm!%0aA&6FQ4aBCqq}67;ySJVmA3wZ?A6OIJ=_7+s{@BW( zha49Na7qxLWIDQSYW*&ysWoSiJrZa{Q+*T=t?v!HkbALRDyB{?VFEjPqXDpuF4#s? zHj_MNmC|zXvSirWhpeNE%QuaC$+2(W3+~6e?=ci}r-#X#dMa)<^K?=+ve`mBcjkoJ zL9$hjrO?L~qyWiglyeMagfmRm4HPJTi=t)7a(@8EW~b1Scl?j>cj>Q9HAU@@gb(06cdSrBF~W1AG=2vdVM0K2`+ z|4-f9?Am!HSz>cPh0)_IY5&FE5yJ*t=z+V8f~)PRu>V5EPDvCY6k>@e6q1 ziGc<@^T0i6!w-|)4frj3twW_Ull%_J^BpJoS(y?=@``ugxUnPFiXE{cPHqpuQ8z;D z=+&9DNGICkhkJ}K@YUIBLO7Ah{pcIyD^Xwu@KSHpKx%L`$|y$M9~OYAC7{fBY#`fVvMmJ9Ar;4-i}chrmX$ab25Q4YgBw4Oh8E>VS*SZMS}$3MK=F&0U`l z9__(3c2YJUgDBI?!F9cu5zIt@aPsct1goq1v(j zZ$hv@63T~T!W-BQDh*Ew%Khm07t+Esk?0Zfm1!kunIhRS8Lp8 zV8z*s>Ap4~PRF+_DI1A<&ahi+hRX}c6pE@boq^ha(z!nHQeO}C#gnJWhdd&k6f}d( z6;E5ax2$Ib;aPnK?*5A)IUJVTGl{{=ntb?q?Yszst-(G4xH=LxK!qp73J_(gk!2NG z5u^|26>e&5aV*fRV1Nk8$Ok`m9bdfqv&LKe!d)(a92$@8hK$3KExt!cP>zU31wX@& zk;M;g)CDi7o^aei^~TMGQEim8@~!XX+zB6pAf$Xc8fAebc-Cc+3-Vg7)5`1$M^90AO=Qfyx;ML4H( z(=&pcNYefZNBn4Fh`Ainm(4X$TSrDRYTSR>K@BouTI&=?L{g}07wYm4K9~wV08zwR z1`OqhqQJCWK;3!qih8FV=6!i{OEEfLl*KbRSQ zdhuzc%M=0e4@VrQOz`-C928_B#an~TEVIR6q*xK!B3FBGIo<4aaQ8@LXLaG#-H)E_ zv3`eAHc&@LdO#k4f3f-pFa#K^)H7GUm%>Pn@Hit$AB@JOUt_U%LqBr3KZWK$pY&E~ z==06}>4=mM`{lV*2DCHQ9M*Dn^yQAzc*eJWbv}%TvO2;LcNll-u!mxlNdhxW^3*{e z+oR?qBDI3BS`n~mR!Ano_sXC<0{DwW%XM5e7hDxJs#);@88zrq`SADq?FQ=k-OJZ| zec(0vxJMlUnOa-y(_F?HFB=KDx+;OYa)T%$jKk}=1d~I;h*g`DH^s>Bp`Qyv)UVeMO`QdmK zb^+N(5&#YXtw)Lnk@h`yXW2h<(rum zE4NKHBeiK(Dcph}9Eq>;3PU?$A8l5pB328&7FjH2)cKL~eYd~u^LHPa=FZ`GpM&TE z7!r=NOhD0LVfGOz4Fm=>Ymb#nid8xi1p5qeStwXnfOu9p-j(oyqdj(0JJBV+Z@2kP zdQ|})3EL*VrMtQAmNvew4CroL_6C0&WY=Toy?g!0+5WHwk5her81B0Vk3&6dfPnWq zthV6vIU)^2pSPL(xxrJJU~{ZEG?0DtTMe)J4xmmQ_;?;GNq_u+5BA3aZ*qlG9W(G1 zof2e3^wTMyhu=oV03VYA>TSpq^{u*=RbVYU76^a$h`-sd-n^LoyKitiUd;Rb)ah`> zxNyT5pm+|(Rmh7|n|vnEN+nlt#|{WuBQB~36?JxhNu+`U7s}^z2Yk$iU=#2)D%9Y| z0ZcC}QCHY4rYI5TVwc?J2B=*!U;UA3XD^65yL-hfw(LGr-H2-@X3&?StkoFLV9%>-`4D zWRoAoOMm>`p&tU8ANe7G+~Al-P-Te>_|3N!l_eI|T#aq5_zCwsDCPYTZKCuQ1n!xp z9i8tFlZd}O84@Mm?O=|FavK?j0W_xq9$c$+#F;wq2kOd*j+}j_>_!Q~C3qvWZk79a zyp8S|%=n>mJ=PG3ln{_m;bCk+AI+9>@$8sjkK7a)*a^_NsjWE2%C&=_MIbHQ_r2!P z$zJVm!7A7*_w`#wv48Udk#FvAzU^=Jo$sinLsXEtTM>}N8!%^Guwn-cHL;bq1JeQ5 zfgZ(uyDPv}2AHpMlk^HLj{TAIjh8Rq;5PIh|LXO8_2S1jufO`&uV4OfEE|11{>t%{ z!mUJIm+r~O^H|DU92;U2Fi=-!pqo28+g|x<1|ErAS1O$0Bj=-l&krxDfb}8U!KDs& zsLsGub_x8ODj6w(-pJs*1Fppg0tTFsjN>ZIay?q4mJg!ds+AJWA3590R|_}xrt$ys zrGMyrHQBKSEYc`$K*jeGpmSC}?cDZDC^sW75Hi-?Q>WTP?to@q2d;i5zygX=3NdC;iHmbwC8QH@IKf4(iHfzMbHPZ7~(#58RyFum>Lp zQZd8rX`gh;mp}3G^Y~x@X@{N%*i;b2S_QWyf3-qk1ZSgv2%tXHv&zV?t!z*@00vpD zQt(GP1N*Ua{TS?W{bMuYM`}+&gNrtcUuF zxTz5dZjYE*y+g(~Eo0+XRU7;Hy@PWCCzN?>c?xsdareO(w~0#rhoU{H#ZP- z=ewE^RSq*o3T$tMQ;{7y_f>PFfSGn&j|9TAg{$`lWs++vK^c-g6m5yEsQ1qEPM*CJ z>0&#o3b2!e`iwHR2e3HhMz#S&0&Yv;`OcD$Cm(wQC-L>s1s_IfTv+kF#{OT!T* z`R3;a&R4(QukQJk)nke?2fpTBry!=?id+%62`RR)aibyM<0kfE_$Ed+B5WCziqeEq zTWxr^PaWjSf?Rcj!U*=WX%MoKalke#=}p6Z9$@AS#t*# z-b<6#8|6dC04_j$`=yiPzxw%b|Lpb4pI&kE+xC~Q_Alr7XaD?P{PlnLum0|<@Ba*1 zl9=%fU;huUVbHIC4HW-B^*1knim`nCx36CQ>pj6ie*cgE?)U%ZfByYH{vW^p$N%L& z{rms@KmXhR=lB2S|NQ+w{fFQG)BpCL{_X$uAOG+F_5b~+fA{qt|M*|M-%T#Zy8zZC zdWjidb`!23^-QTuzJ9X?nJ1MVRrp}pk)S&m-tMtT;A_sGe?R`F|9bn2@AhBji~HqI z|JA|wG#|E-8oTvVaAKow?ElKnxhbPqP6ST6jg)Xld$-tqPB0pLd$~>`)psj8H%|5X zEg1iLeEa>^w;JM`zu({E``qWRznT4q^0FCWkUkcI>%Gi`eIJ@fwR2t zW%p)}6MK-kAC0RsD)7Gx@qTu`bA>vs<(Ze?)?Dv72o9&&t+(l2;PYo^{prQm|MJDW zEp~nL51+$0?|i~v9n23Ow!9e-d24)HUSR{8cAHHC#i;m7k5ohz5l+gcf-5PMVgcx* z(pS`XyFlMP(0B>-7ef5%<+tB{9uxf8XME2FMT;JaJF=yltI$&6-Xm#-uWl!N|3_l6 z1Y~frNnvNIyixqRQRuvl>I+Qg(~a=??#i7{{HucvzDICU9H@H*w(GTpyp&}xZ>^;~ zl&cChGWi-CB!>x|LvgBMD7Y5V*~}ld$OPy7_2>1AKmU{mj&V4#aBHgc9_Bn<1w)ig z7hSrM?hXNIkZz>AW9gQq8wp*yyQERNy9MbE1(satk_Kr+zZGAJ9lt{gjS8jr-R>uw+gLtvF2w^tB<)JSIvoL{YtSOA?y?(Kg+caz9VtZYuRT z%{Hv>?|$w~OYGFHzT*<47+*zDBoqw(_)gLSW9@AbG>Vf@Co1(tFQEJq`Q@-CAt*eA z28eP{txV0`Z+Dg0Km9WbH%xcxWx(@%Qk;2qeUO>bH(U*da@5V<};4lKZhmDq-K~iGd zEzE1fXlOXJxg5|*aAGW*$(X2`7^iEJ*}KQBmD&UHUq_V-pYO(3Gelt5Y@@Kx@6`Dq zn$hw^Rg1PEkNbV4I!77@I>ZOX9=gpTM~YWzTDZBr{QgzV*C6O{^-sf8^Rj&k#Q zBGNDT+_732mS11JGW(rPEb;Rs`)U?;j3h%MfdAsYembznDxnjl*TvsGo_j$p(|6v$ z#*-*F#g0R>$XY_HcKZ`>D+Y)hS2*t;d!BN9(dt5d)qQ^+;Udv#^6S#$Gd1h7TO2~< z%bm2&`Y5e&k~Tv0A*1gyAoB+?B@&OdJi-t?#HDqG0i7`go1FTIJ=EfS-_V<&ObQH| z@FCI!;mz0Q&!s_`yey7NxqS`QA@}albY7wO_Vc_WSQ^XMV*N};-%syvB;K}uj(qqz zTKWs}Fr79$Ensh;)J@r|3*6L(V!yJLQ9#4x3f!Gcik}!{%Eq!B_4hOb(}(f6FdbbK z=j=V=e>xS3`0nfay$OlCaQ=0b`MYh;><*5W^0Huz-Re?+SrFmyr7SykH%0noP5cpx z+HI|AK|a~@F5SN)rk#rmc`0;^jtwN$URRXph}HI0qeZo3QM`8;@8LXlOB(4%lJi zOBTej?(l=*dCc~)>Nr`AUl(;am4Tcfvn}E;Gt6i5x#u#_b*Tl%9=H$d+9Sz}n_EX1 zQ`}r}4aUP9sM-f?wT~y5iv^g+N7GY4D^Fr3?FQTtU;kh*XU^_soyZ;dEy1-S8*s8NbK1Ge z9mZSh;M1}ivW9%U(yoQX?_5)EfnX!`DTK1U;Z4HQa^hx9N@vT36@NgW$f*F_pQoq% zZ!k|+zPp+x#Wb-*R93z=JUTce_u-0gGR}Ssek?Mbh3Z%&6p3S(d z7m*i=bQmV~bm6f6m^^%>LvA?N-Xx5+5?Er3PyAK5Rd96q12&1ydZL!xJ23U{JIyVm z9M;v1umQn5;d+V@1%{BaKOhFs%Xv3!*wjPq{xR2Ne(AEYbF^#M&(tB&uTn} zJF$%z=tX3;Ic0I*L))FK=TH0{irz++Ol0(K4|=oad3-#Y4F7N&8jE=r`$xui`qi{& zc0F<&HlgcAtRw=ESpv0ry&*~@i_1PI8-nM3)7~g=bD?_$J-?5P1nrvx;7-R925JUI z!&l%%p)+B1NIB7qtM6~i6f%^G?ghzR95SIvD8SKVqU_GSPCWgD+;g(kH1z?F+ldNe zR3Q`;U<@sbaM+4NBIX`^&vX~YzCdZYAn(GMsa2L1&W+T?<8Wa*hOd6RKDQY3SE^g1 zyP-XpPm8CZR>9-U(n|G7t5n zgThg`lgVO<^h6K$m-YneS(LOrMee3K>gyRQiv_zQPps2q-c>#(LgH8x{dzgwaaM2P zY&kU;n;5^?F@uOp(F5-HmA=CG1oAP0#;y zpuJOOHHDE)6lCin zooRx|6+>A;&pI|;f2`~J{nTcZH{2=c#&Y2towuTrjwUW~W~8nM)foKAxqm5*{w?lQ z2_vwl+6Y_}ovZhzarx-w}56Lwaz z2)<4|G3mndYj+ZlI#88!-NbLNnwz5g^X&F9JG}Zw{Llw!e-^H!HEDpQvo4{z+dyV^rBt^ z^vTTQQ##uISxz4Jf~$GL%nSW(e7Gm9m3+zl98<;QQjgc7MGo;JtsmhNy{ACu@WuBe zCy-8T5rCg6pbW}0kDID9g5`8gN~f>u#*@GKi0+`abmW9oc52+X`E6DE%>O7ht%n_zs3O>M`#S1Ed(lGWm?l@RKc zC{@ACtw6T{L=Tk;9Vk(;hM}O#2?u855%aq6q`-}xKF8u%7{xxRh)I9vCfX?(k|F2% zW|*cG{~<@vICspKT+qc!oZZ@a&W_~Nr)Ut?uDls+iTo}sNF7F__6?9dR&2q`Kfq!j zB4<6Q_EiNs->npNk~yYy%uta)Tm~8TZ@zb5WN3|!C?AO`RO#009}EbG1Y}JdvuNgz zNRI?OUk37zBw;#J4Gmu1KdoX%=IB7PA#U3QqZ7%75b;vjk7ik&;AFjyuJT7pU2rrQ zN#PwMhgQ}G!)!cEg8Ul>Z`$9-9fvt{z|*-D85PU&61SUzV788d+Py&Nw z;HOik1K*?Ag|iyoW66osOwECB8UhyFO zOq(DY$q$m*@n}>v<8z)g5wj|$K}uD=0rB1hYi4b!+L`tAttVfanmhQRvOZHC3)nxY zUwgT0#~!Xx>o^oe>I!=*%FX{A@wFEheMJYd_hHUe4QvsGtCb~GUh5hsaEb}JskGrW ztU94@t}lk>uCW|d>jvOYLz-`|XGI0xyAM(|i`l^P(n2QiF_BC!TFhhijgNWEV$gu? z;>v)>vG$&GP#hrH@p+B8X(lU2MajBdwRaFO@RNS!LjNK}`gtLh@dwGfZP+W5SPojc z1OgtewAcn-8)Ic+fkjxaZM!DttOAGBp6qa6#+9b=ws|P-z0M0~%bC^d6Dx19Uw8f> zREAyaH32jIxUp{a53h$D7?BOS`mR>6BK>{lUsRU=7ZeHgk8C3;MQ zSh)#_?kPM%D;}8~8kOqjNsBfP{wsx7qP__m^20<3c0J$ zrlld~?x(bOs8Zb>SMG(DA+ni)Q|lK`yV^3O88{*R%`pm)NZp4uWpmObzy(Zg$siXENn)Uev%TDZ1A)ac4FtgL2{Hb6TAuWdR!{bdOF&Pg+`J9k_9KMC*H5Kc&~ znL;LXjD;Zt9;C}3Z5T#SSLnox(Op}5DdAeQoYTj`Gqo-VE}wkqA`?{M)x&bLq3yK; z>0$?msY3R|P-yhcHk(6}L@^lK_4gr2ieM?nyr$(pW^jgay%&bp4U*}G8$5#gHIf*t zs&RQQwRXicj@gNBbuIy)c7pE3H`xtp?aUr#yA}^?*RK2DQYR(Onh0O^_*VZxlPn6Xr}E`jyk(i#BLbQaT#u8uRVfd8NW)*n&EH zorj16iEPz+H+ery({EPifP3f}w@+!K6m*4TuG{Za37dfMGhBau#BOFD$Moc`FbVoX0o>XNhJrS6J&cWrC;cQ|li?Jo??cq4rCgg zk7dPMFY@N>#x9gYN?~au`m5r!F>3>R_-fz9dPmCbKC7!)#8tT@`QVI7TL*$0m7^O0 z+`M4S0Vm9tj*}Mou;zq1cb!qSQOy~vtQFJkBJ|->(wlHf1w}*{U0QJE(2Pw|R-lJZ zW>`jp4kpPWxT!>{@)2-2WI2I#5Ok~o5LG7uLCS)F@HMnwxO}c=+&gqDhLt7-dif`i zgJ+QPwl()qvGzmNPKd1zU#XHgJfpEq@7gso$>8r7J#quzjEuKm=Ay6v&8@HsfiFW& zK;GTF&Y7dMpevVc9(~r%^D3UvfA>T=H`*FaYddPiLf=4h+I9$*Hd4N2FMsJ5Z_}Cs zA~a(ypP<3IWrL{efi*q*xTkEEAT-mo(gipO&QZm!mVu@POu1 zx&%Wnw1Pyn##6qz1{#g8%P?sMcEjMnS|wy<1Gx=RXYl-op?srtV9*VLoke@;B+^={ zU#4ynt`Ti9MO+p+jRfI{#1rycC0ztIWcXYv7&1{3dzhy*Ob!h&M@26W{; zLfX~1R`Nz_{kcFan`A8k{S58Nb{W7d)!;(QvDsLUPkc6+wt8EA={wn~SBYN2N}3O~ zB;gSbr$bugTqzlmG_X;wSZBPCalwicmj=tsB=>FPyBr;ZCrjTe@Of>FbK;S~<2nc+ z@b@Aie3o&XY5TDa()`vNvB#yi#C`6h=Bi1^Ao|zN<=uW;L~m}$AG{Q=fk^>E$f ziHO{a?H6HBn>4lIp0tQQ` z_VT_KI>X6+R8u=!QYw8b*3J80V6%9&>3mX^L_?%c!)zgWK62Sjh+d9^f~eU(hx(ak zsqTQMvXlV)IJ{(d6aY(p-A0uXo3W|WUy|Lrh&rjI!x9wDmY1DzC8-&BrYMOaN;n(v z?{H1qB6@&$WOMH zFw`^E^}%yu0u19Z1jIBcEZ{*xX7~2W-u_5ig3LHoX@6nato}2jxo_jUwmIBe+e1Cc z%V(ADk*flS>9@@Yg`#H!Gs zXCUU+bMb`@4!%ZGk^EatVaUu#nbPd>B|EAap!hZ}bf1rXwI$^} z_E!Z@Td^RIX9F$I#oXWkIp++s9I)J!;U9QK7vY^8$)JzfI^FR`YRYQO=&)Lus^1lf zT$H^wt4jNQC?5u&vs<~-%|CQm8>-<|OvFn8LQl5LW#8!*A=bev$J+qXMEO5gdX+K8 z=kHiBt9w5R416-haixUxRrWXFl$`-0H~7Uj7zso`wCAWaIK*fKvb9o^ZCdl9VZA2N z+o6$%nc@#NBNN2BjXLhk;X%HgLG^#lS<=1}{eBQ)s;0Pqz!#qenp?IqbCnKY{80sg z0Vhr$hbwt8Jfzzfw_`{pGssjXVrgX|cm>F*HX=7mR#R4R60vm#L>L|+7GyOgqW}5q z4U1cYbnhJ}!81cG1++VnG)9r7^2XWgR&@BwNw)hn+et_4k>EZHuE%)oP zixd5kGdx?*V>4?uj7ygf$_V@Xc$e1W zMg^9nDx4jG>5DdO$zYwIW6~qbCb83X!n**7D{zLNR? zL6Eij)0~mZ3o!)G<5iMw$}TNK{Se;Kki}b#mI)vAY5~c%D^h6%5#m9RnGEC5Tg|9q7-mh#FF`AY6MCaSNKW zgxR1h1iyHjC&D$L04Cwx)CWJ}`*@Hf{{CCuSRf8f$Zwr0_Xuu3YF39Lmk5H;*j7|V zmv%|kx16qOy83%64`PdJ8xQk#;EVm^$vDoiPL=$8f4Pk&v1fCddk7QMW9(fw6Oz?hvf*`i(%wjO^IBX}}Jcah;rg4+p zJxHr-gnlMu#;Q;yBQpFs-aY@e+|NciC#>E8%oBw);R)DXRCQc?K#yG-r_#H>z+34m z?({xtr60@LrhP%QsJC{Lq`DSJR>S^q{p zWD_=-Np-(E8*sQzY4u)3_;);h}?G&7GgahiUXa_lGeZ!l;1W}~&ULMjz*64Bc;Uc`)1sl#_)HIK zx%$=RMMV;S&gsR!IQ7}PC8OSObecYR?-e#d=FNcK={8e6H@o5G_AeiQQpVWu*Bg3{ zFHQKu1h7A=7F2e4gLIw4XFJV4icGCDDMiO#*lZA77$k!I<-^ypqX78m8Zw+;PxR*> zp5e7Rxd7%ALPlmz>SRI0n?A^5S9T5~6}8X_iRX2C)m4vJ*Jfoz$_45btXJ@Z@eIor z)W+EBVf`q?Q!X{jXKYRp-Hr@NCLZzw#J*|D>h#l?t&MefrLV=F@LfjE{^>_otu?ZA zmo~cuLRwY`i>AmRD((Up*!W(j;Md^ev>3CBvHzr7o|9@d47V)!J6(B)cJ?H7>8hCy zCt_esReL8=)#V-p(V_Ahat4uIb3Jn;WKA;zi@@Gd{--2r;u*@lx0XwIS>*)AtFe*T ziQFRX-sY{7@CQnPG~ggOq;@QN`uNowt5@R89$H$=?zj>BCY^}p(P25@{dWy}4S!(E z=@?|8p9)Q_ysc?*IFWlysjxVl%aoY~j!n43W3REq6rd8=8kaaISJ%B=JRmXkzg%X z9ym<3azaM%#q$bztm+j}UE1r~&V|&bxS0hq0*nI)$cVSNPpt%&P|;37rP~J^y5GKQ zF&>G6C3V@Datp#u@2rv4Scq^Y$<`${7DxyaF;o;Tk8&MhifZ-c^rjqx*lA)^Pg3>z z4zVSRWT&;cD+x_KBN&n$lq6AJH#G%crcvN+Pzjv>Z9Em$4G31S>QUbbaP{{3x1(@C zm$8gH`_H8h2W=)^0DwJKZ7uW}zAMuHGoU{rU=6y61DjD{kIt)sYwPkYVYO;UAA~IC z+yg0gq*AbA49i5_HQP~1os)>@KX!72o6y8Y*N$AxYPc~zZ4s0LbOk>q&r%5|r&HL5 zW)qr6>twyL|J$}5!`e1x@4<89{v_K|4vD@@0lv zvP1wvzbA;NjVH*CVt|01>fy|i86xSdr|huaoxNQ!XOGfTJyMaeTlLMKeYqC~FYFXy z`vKi)@;qDC^2HNvyN*Xbthhr3T$td>lgwpfcx&Y6sTotr%n*@O$_TA0r~l|rJVBxv zM2rc$XZzM2DrrLfqiQbt$O1zlSusuve0&ip%wE{@(O48%v zP&qc;7C2BfbZRdlL5=1()btQxZ*+vJ?CjVG2$K8bQ(3mVKM+y*TBw=SeTTS~RGqZ& z6_JMi2oCeP5$rx>0`SWy!!`$dSM|=r(TsvWPSgp@c@YlvF{Qw0^b1T zx2;4tvvBNvm(c3#QOY>Su_X~#6z%wb@%$Mx5u@Fi$mxS;@U@Yk5#ZXEa-UF+eSL$U zb>CXGi-4vv+<`S~N)K%XR(Yz$HchNNv?@+kO0Y~;ovJlD`*FC~f~1i^?`M9@Bdv4U zs;x`@yo$wu{*AU&L^XtTv#v%g=l)K>iCxcUWPWIjzRgcE=}fDiaJSs6Evj>qn^)o@ zy{oVu#N|HH2hs!}mULs=$6NQK(RoH&k3xgs8W*&J<%wQ`Ut9?o&!|doZDrUw;tBQ6 z1qROIw^gn_zh;VTTnIZt{k(*c^QE%Ya16flq|k1(ZWa0C@#Kw6H-WRoOe2}#9}331 zwziuRgv4@N5J!e6;8H@-<>H1wV>0V!E2^H=TL||>u9pw$u|wvb81-7>@E<`!?2Yu| zi!@y9#cPQ6Nu{=HVGV4q66b4Gl*pML_V`P-uQ=BP{P%g=(y-Fg6)scMhf!57B<1dj;pPyd*Ovek;N4^?B4Qvm9binj zvJg%pbL>}-DA6uw$wklMptrL&SYfX|I@(3SGE(i${XsERjU6I^6M4PA&R5DlrP-I9 ziTMYsgUz7VZcW>Dv|ORYSK_lHZ$cbf|Fz8$V2pLHbf$eZrSlRpY}e^Pc43s}f}q}> zSO6<}@fDQSxvp6;N<%~lsRHJ!unJ8ia%_ZRgPqdZ%CLc+<>ABFhLffR8)J3$BAneA zn)#qj@t}vVyiqlkX_YyoTCh3$8F2nTRC0x+rlc+L*Xpo%WdhA}rKAP; z+gic}@sq!cFAhT3G-jpkd{EMHi0!=KewEvCSRlzg)Y4oO$?yfil6Zo|`$$y=cK8eH zkBFT-AIcAYq4`NdnF^By)<#xN?NN;2J>;8v zQ84?#3ED_{D_lJie_|>(QGqYiXrHF}fGQHUUG4l0a=57dfB2xj!^?`R8!Ls3f;CX2 zVAxz`sFa#)7nPS4Y8f{E+}+AZajoad?&}|bxO_5LQ)qY;dxR`mTZg23+2g5aTfPK- zk$8vvQD+Px{43mLGYZf53NPmq^UYMqKQ~9o6^aXHD18+WpN%1uc(|Dy%FW3B>d36b zT$1R3%*qASAX5BsWmMnskD9JbkA(Y70wF{;p{&JT%fMlcwS#hRs*DcdYQzb}EiRbie+F(+JGD|`PIM>G9Bx%uNhdy!D1 zq7##d9}EKd!7yB_Ut8NE7&UY(Hb|SbzC=sexp=$}gTu%3{gn1I9XEyUzY>~n5`oDak6Q?J}J?3K8bLU2QFq8gNb{kwlz?SXzC8en` zSHe9_cW;UKCkE2{fb>uR|QkZ}U36^}n_W z?Hkxu6(flwBhia1JE^P@;;l z9=>Ftsxh)~DVz;rw_|1Oe;IiWWav9ilxPdC$Q`iZ6U6s1tYDQl*1MDqVvNo~LkY6H zW-0VqDa=U8W&ER}9sl~nG6W_Sbd|WYi-wZHL)Cg;!h!ntDG1_`hP!@qQ5r3PV>j{} z_w`@s;$NP8l{J4Pwk_G{0=@~pY}lkqB(@%iFdNV6{4@TvMr`7f&tqe<08(fGTZnMnV93vH^dYXc)tqPPr+`HchHGQk6n> zSOPYhmxtR^a~mqL2qo1HC6-fd%W`uS`H)vt@@FFswt{@@s{^U5b%xGwE%u1SHJmlw z9j-BsyML-1qI z+cpL`*Q($I`H)T)uD2&>XmfIcEBY?5HLP?21LynIioeKz}66vC3Si(dtug{@Wi(*4A25zwf4Z!(C5hRcm6*3?$< zvBl9u3E8HJvDu(XDF2A99_EFUROdBh=MaQfvJHc)1~skh_1A{_Sfp&FQT(p(u74i@C{b^=a9<`BmN?=z99_K6Z+j(6Up|9p~>3t z$5Bk@|7AT$0;T!IL^LAPiWje@~AsS^*vb?sMG(*i6_8+dKO zT>s}Nb=L0$M-asn@lb--^~9p2q{uSDcTx3>5VE@vapDxAThI5Pz#RIj)LX_<$ojQL&0Rwd2EB^{vG ze3fJDiqKCHmHV8R=(M;OWU($`P)+;HRn9*SDP2crMX_=R!*{_1E9ceeOrAxOp8j~7 zbJQj(*Vq`V20tf(A|ya|6l``x72Al6w3o+STl62ypF3!;StPDQU^Y*9_40M>QqnJ| zw@X8e-^Z4Bv6_9z2k;S&1#nA@`ML(tAB=lCVLO%%V$k`t_Ch>j&M?!eY{q~)0jyO# zyK*Cc=EA08K3ZIv;v+Ve8XkJASZmyfRVyIUZAcwHjjdn%^ z9U$TF%O;-AT)Aqg7HZigQ1=!erXfD#cq5bMv(QeSY>Q66Eovtf@KFn6hF;_CF;U#B zM>qG2XYp;!5rB9dX?wo>xvSrIe0 zeE9JsGxU4_0P;gN;tJxkntKIXw&%h>Q0Ece)6)4zSFa!FwhW^!7?vcfL; zU_cPY*n7kKunAdg5*Va$Pa^trc}6Qf2o`K52u&~K5KRl_oba?53LD)APJu2b0vi1 z)SKj8a3{|RBZg1bbuEO*A=)-K;!424?9%|#22n+x9()#0jaZkL@%0AO8X3D9$a`YD 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 Q@k$xkx3*T5f)4Zl0sR&f&;S4c literal 0 HcmV?d00001 diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json new file mode 100644 index 0000000..9e13438 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-local-r304/preexecution-root-verification.json @@ -0,0 +1,168 @@ +{ + "passed": true, + "review_sha256": "9830e8cc7ab5ceede78951d43818972e5c8b1fe0a7739d385b9d93c449a8288d", + "verified_entries": [ + { + "path": "/Applications/Godot.app/Contents/MacOS/Godot", + "bytes": 351312912, + "sha256": "c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-build-preview-monitor-compressed-r06.gd", + "bytes": 17582, + "sha256": "92d5e1956f4e613e12555d756de4f71fef03678cde159ac68fac3188ce3f336e" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/tools/run_all_tests.py", + "bytes": 26296, + "sha256": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-cache-public-mutations-r144/profile_guard.gd", + "bytes": 2276, + "sha256": "597696c705cc8f0e79a35265ca3ef8df55f7fc3c4e0e5a2ce9a4e20e29e29a6f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-single-actor-path-native-r03/diagnostic-measurement/checkpoint646.varbytes.zst", + "bytes": 240032, + "sha256": "1a88f7ed27d1d32102c6fe3a9533221d2565191712ed15b631190479d1d41505" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-report-window-trusted-report-one-guest-native-r02/diagnostic-measurement/candidates.varbytes.zst", + "bytes": 1498, + "sha256": "d636067f11f70a82ae7d928d2463bc3c2a4107b1d63d1baaed065c8ef93b87d2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.gd", + "bytes": 11460, + "sha256": "8a2426704468655b2489234c617d5153f2d2148f4d0aa7a7a39d9e73f8dd39c1" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-guest-pipeline-boundaries-r195.gd", + "bytes": 7571, + "sha256": "410e117b72c9fbabfad7b7ba837403a6ad24c3085b0d221f19974824a3dd7292" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304.py", + "bytes": 7140, + "sha256": "55257a66bcd2cd244f4c31455e77d21e0137924a0833cbc9f2f30902c2a9cca3" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-local-r304.py", + "bytes": 10105, + "sha256": "9ac1d42a5593b7e0ec668cbb53bc03003b827bf84fea2bf5003e6a196a6c0d03" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate-guarded.gd", + "bytes": 1116, + "sha256": "256bb7a392c2b38b049ca0a39cde0a4bbd271b45ff50197bbda97ba4abdbff1a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/candidate.gdextension", + "bytes": 319, + "sha256": "13c4bd2ac8206197095df408b974ba955ecf047ed525119a1651a68195b7bd38" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/libtree_numeric_core.macos.template_debug.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/private/tmp/TheTree-ready-route-r304-3b80863933444e339e087ffc49628c0b/candidate.dylib", + "bytes": 367536, + "sha256": "c7b2eeddc5e429e7413b2e271226bae36e0733f861361011876bc1f962716c74" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-independent-review-r303.json", + "bytes": 21696, + "sha256": "426a51fcf5497e730c992c72c0684528729d76f20eadc7c2b3bb4893aa5e2e29" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-actual-root-verification-r303.json", + "bytes": 12307, + "sha256": "377e780f646facc4d1f9632741ebaba8837ec58ea693642bf07c83518b8d110b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-build-r303/execution.json", + "bytes": 7142, + "sha256": "913097cdce59a505259a1877a61b4328806e223c8759b0fb8a6fc61bb583e088" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/autoload/simulation_runtime.gd", + "bytes": 611530, + "sha256": "b4201726a735e9d979bd1ffae626ecd43ad2b76e4c7d1b51430884609bf2f4dc" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/core/performance_budget.gd", + "bytes": 10355, + "sha256": "742c464d16ab417cbc3c2930d43e508faf5c9f7688da416324ca1150bdb9b6b9" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate.gdextension", + "bytes": 323, + "sha256": "04c4311764ab9d75be3df884f960f0944cd474847fb1ca061224ce4c1bc2aef7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/candidate-guarded.gd", + "bytes": 1118, + "sha256": "ebe45a6ae990ff4f38ba9e2df86a99e83810ee6d65f7b0811d4a02be6a4a8dd6" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04/input.json", + "bytes": 759469, + "sha256": "7f2403a6d4bd1dbff44f246bced74e810bf515f187f65c1a2dd3ef947c0445af" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-local-r278-r04.py", + "bytes": 7138, + "sha256": "567b30c74a7f52127e5cc6de48fe956ba3eb4aaca8b1bd858e6c7c288fd2742f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-local-r304/input.json", + "bytes": 757928, + "sha256": "33867a9f019fd094dd1a848d2ec26d637033a7db26fa5cea17d8ce75d63225de" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json new file mode 100644 index 0000000..0ff9f23 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-independent-review-r302.json @@ -0,0 +1,136 @@ +{ + "schema": 1, + "review": "r302 bounded independent static ready-route reconstruction/cache-copy", + "implementation_supported": true, + "static_accepted": true, + "build_allowed": false, + "execution_allowed": false, + "blockers": [], + "evidence_sha256": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + "/private/tmp/thetree-prepare-ready-route-r302.py": { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json", + "bytes": 239284, + "sha256": "5894ace631e88d5b02e58cfe654af9f140beb6bf032458b516b830e0b643c62a" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json", + "bytes": 25953, + "sha256": "22462a79745aa07629fa30ee7ad2297db4bdefd2c4a340a2fea30fd4e615ec20" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp", + "bytes": 27906, + "sha256": "ad9ebc6db6a962c817e2dbcee7f9c529dccd042090137e00dcf1a0594696f70b" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json", + "bytes": 291, + "sha256": "cd89af6dd2258fe71036edf9f92ce6302d823b68c257405e2a56795726e87834" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + } + }, + "canonical_doc4_context_pins": { + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + }, + "verified": { + "mechanical_inverse_changes": 4, + "parent_cpp_full_inverse": true, + "header_byte_exact": true, + "new_public_binding_count": 0, + "retained_global_or_static_engine_state": false + }, + "findings": [ + "Compact translation follows original parent-before-bound evaluation and allows maximum_length+1 reversed entries before termination; negative parent returns goal-only and cycles preserve original truncation/reverse order.", + "Strict BOOL compact, Dictionary indices/adjacency, Array cells, PackedInt64Array parents, INT initial index and Vector3i appended cells protect the native domain. Invalid/missing/noncompact/conversion-shaped values return false before public mutation and invoke original helper at its original call position.", + "Local partial reversed path is discarded on unsupported shape; output is assigned only on success. No helper callback, Time, notification or persistent cache is added inside reconstruction.", + "Each original helper position independently rechecks builtin Path script. Custom paths retain dynamic reconstruct/copy dispatch; post-fallback script changes are rechecked for copy.", + "Engine Array::recursive_duplicate(false) creates fresh ArrayPrivate, retains typed metadata, shares only COW backing and starts writable. For the pre-existing TypedArray route it preserves original _copy_path values/order with independently mutable array storage.", + "Route failure, public cache publication, last reason/cost/error, terminal query and measured signal/clock order remain outside these four changes and are byte unchanged." + ], + "required_local_boundaries": [ + "Compile/link against authenticated SDK then ABI-load existing public nearest/project paths; no new helper API is bound.", + "Normal compact route, start==goal, negative parent goal-only, cycle and maximum bound+1 exact typed order; boundary/missing indices, mismatched parent/cell sizes, conversion-shaped indices/cells and noncompact original fallback.", + "Writable/readonly input trees and route; returned/cache arrays different identity, typed metadata, fresh writable copy, mutation isolation on cache and caller return.", + "Actual custom Path script and callback-induced script/profile/revision changes at nearest/terminal query positions; original fallback dispatch and whole public cache/counters/error/signal snapshots.", + "Finite existing local/golden comparisons and whole647 equality before any performance inference." + ], + "limits": [ + "Static source support only; no compiler, ABI load, native path selection, local/whole equivalence, performance, adoption or unit acceptance is established.", + "Exact resource-path builtin guard retains existing contract; malicious same-path script spoofing, arbitrary concurrent mutation, invalid/freed Objects and general reentry remain unaccepted.", + "Shape guards preserve malformed/conversion/error behavior by original fallback; static review does not accept every original error-generating path.", + "Historical272/273 sample identifies prior-version source locations only and is not current timing or a speed claim.", + "Native direct typed operations still require SDK compilation and finite engine ownership tests; allocation failure behavior has not been exercised." + ], + "reviewer_execution": { + "engine": 0, + "compiler": 0, + "tests": 0, + "validator": 0, + "author": 0, + "existing_edits": 0, + "new_agents": 0 + } +} diff --git a/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json new file mode 100644 index 0000000..0cb9dff --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/checkpoints/native-ready-route-r302-r305/p23-02-native-ready-route-static-root-verification-r302.json @@ -0,0 +1,93 @@ +{ + "passed": true, + "review_sha256": "2bd34186da07d0ce7590036766c55062d303625a554c92949b83d8985f99a618", + "verified_entries": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_numeric_core.cpp", + "bytes": 54002, + "sha256": "ce20a90adb8a410dc1b6cbf607b7bfa8bf21eaef158c5c6bfc7a9bbcc703d2b2" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-candidate-r274/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_numeric_core.cpp", + "bytes": 56783, + "sha256": "5f48ed8738425ee6d381d5302f3a4f6c9cc2da8d02c570a62c91c748cb40fc59" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/source/tree_core.hpp", + "bytes": 3299, + "sha256": "be46852fe55aeee4e18996b4d87222662b031fd1b946977c81092f4d0707e480" + }, + { + "path": "/private/tmp/thetree-prepare-ready-route-r302.py", + "bytes": 6099, + "sha256": "4df2960d3ecfb764c398ecb324cff08d66f07e5d942dbf109465333458b6f9e5" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-reconstruction-local-r209/stage/scripts/world/path_service.gd", + "bytes": 132925, + "sha256": "6b7f4e989ea9b09495f814d8ecb294028d10794005966414bf52640e122b0d17" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-symbol-map-r273-r04/execution.json", + "bytes": 239284, + "sha256": "5894ace631e88d5b02e58cfe654af9f140beb6bf032458b516b830e0b643c62a" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-residual-sampling-r272-r03/actual-root-verification.json", + "bytes": 25953, + "sha256": "22462a79745aa07629fa30ee7ad2297db4bdefd2c4a340a2fea30fd4e615ec20" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/array.cpp", + "bytes": 27906, + "sha256": "ad9ebc6db6a962c817e2dbcee7f9c529dccd042090137e00dcf1a0594696f70b" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-integer-window-codec-array-source-r289/source.json", + "bytes": 291, + "sha256": "cd89af6dd2258fe71036edf9f92ce6302d823b68c257405e2a56795726e87834" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-pure-tag-projection-build-actual-independent-review-r275.json", + "bytes": 21552, + "sha256": "54576596f82b8aceca440c1a5514ce811125e977c64c210675feecbb3901929f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r301.json", + "bytes": 58071, + "sha256": "ac64c035130b63ae0a5d0dda247afc5ea07d2c77b57fede7b7558142e5279bfd" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-native-ready-route-candidate-r302/input.json", + "bytes": 6602, + "sha256": "021180dc82cac96f1468102398a44532cd80271d634bacdd584b8d9f7551639f" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "bytes": 491547, + "sha256": "a308e552d656cbb13f80fddf094bcc4d417193cafd5487693ff9f742fdd5eaf7" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/PROGRESS_INTEGRATION.md", + "bytes": 409611, + "sha256": "2dbcf78463a9bc01fe4701ae2d4cd6c2010a32d7c7068f5e7c92383ba57d07ea" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/work_packages.json", + "bytes": 1185667, + "sha256": "06f5f9c37e382c8ec1612962466b837392390b38657a042739b46b8c72d001ce" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/progress_snapshot.json", + "bytes": 547774, + "sha256": "b61ae8f18990aab0ea91457907bd73faa07bbcd10f5f8e8fc92e0db47c213c47" + } + ], + "unit_accepted": false, + "performance_accepted": false +}