{"objective":"Make Hwanse Chwihojeon playable on the web.","achieved":false,"mapCount":174,"reachableCount":2,"reachableFromStart":["map1_02b","map1_01a"],"confirmedRouteBlockers":[{"source":"map1_01a","target":"map2_02d","eventTransitionRecords":0,"reason":"no strict event transition records on the confirmed route","status":"blocked","strictEventCoordinate":false,"selectorOnly":true,"promotionRisk":"medium","missingEvidence":["strict source coordinate","tile hotspot confirmation","selected-root execution ref","real selector 2:0 captured savedata","runtime trace/equivalent selected-root proof"],"nonPromotingEvidence":["scene-list/resource gate only"],"selectors":["2:0"],"leafPointers":["0x00542ac0","0x00542ad4","0x00542ae8"],"scenePairs":[{"selector":"2:0","leafPointerHex":"0x00542ac0","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"]},{"selector":"2:0","leafPointerHex":"0x00542ad4","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"]},{"selector":"2:0","leafPointerHex":"0x00542ae8","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"]}],"branchConditions":["secondaryBranchState[selectionBuffer[0x20]] == 1"],"branchTargets":[{"leafPointerHex":"0x00542ae8","fallthroughVaHex":"0x00542b14","branchTargetHex":"0x0053f46f","branchTargetKind":"cns:cara_01.cns"}],"sourceRecordTilesets":["map_a1","map_a2"],"targetRecordTilesets":["map_d1","map_d2","map_d3"],"sourceAcceptedRender":{"visual":"layer1UnderSceneTilesets","tilesets":["map_a1","map_a2"],"tileIndexMode":"row40_zero"},"targetAcceptedRender":{"visual":"layer1UnderSceneTilesets","tilesets":["map_d1","map_d2"],"tileIndexMode":"row40_zero"},"sourceTilesetMatch":true,"targetTilesetMatch":true,"xrefScenePairs":[{"selector":"2:0","leafPointerHex":"0x00542ac0","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"],"leafRefs":[{"section":".data","refVaHex":"0x005429f4","fileOffsetHex":"0x1409f4","targetVaHex":"0x00542ac0"}],"sourceRecordRefs":[],"targetRecordRefs":[],"leafDwords":[{"index":0,"vaHex":"0x00542ac0","valueHex":"0x0000003f","u16Lo":63,"u16Hi":0},{"index":1,"vaHex":"0x00542ac4","valueHex":"0x00542e10","u16Lo":11792,"u16Hi":84},{"index":2,"vaHex":"0x00542ac8","valueHex":"0x00203026","u16Lo":12326,"u16Hi":32},{"index":3,"vaHex":"0x00542acc","valueHex":"0x0053f32c","u16Lo":62252,"u16Hi":83},{"index":4,"vaHex":"0x00542ad0","valueHex":"0x00000001","u16Lo":1,"u16Hi":0},{"index":5,"vaHex":"0x00542ad4","valueHex":"0x0000003f","u16Lo":63,"u16Hi":0},{"index":6,"vaHex":"0x00542ad8","valueHex":"0x00542e48","u16Lo":11848,"u16Hi":84},{"index":7,"vaHex":"0x00542adc","valueHex":"0x00203026","u16Lo":12326,"u16Hi":32}]},{"selector":"2:0","leafPointerHex":"0x00542ad4","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"],"leafRefs":[{"section":".data","refVaHex":"0x005429fc","fileOffsetHex":"0x1409fc","targetVaHex":"0x00542ad4"}],"sourceRecordRefs":[],"targetRecordRefs":[],"leafDwords":[{"index":0,"vaHex":"0x00542ad4","valueHex":"0x0000003f","u16Lo":63,"u16Hi":0},{"index":1,"vaHex":"0x00542ad8","valueHex":"0x00542e48","u16Lo":11848,"u16Hi":84},{"index":2,"vaHex":"0x00542adc","valueHex":"0x00203026","u16Lo":12326,"u16Hi":32},{"index":3,"vaHex":"0x00542ae0","valueHex":"0x0053f32c","u16Lo":62252,"u16Hi":83},{"index":4,"vaHex":"0x00542ae4","valueHex":"0x00000001","u16Lo":1,"u16Hi":0},{"index":5,"vaHex":"0x00542ae8","valueHex":"0x000a3012","u16Lo":12306,"u16Hi":10},{"index":6,"vaHex":"0x00542aec","valueHex":"0x0053f338","u16Lo":62264,"u16Hi":83},{"index":7,"vaHex":"0x00542af0","valueHex":"0x00100010","u16Lo":16,"u16Hi":16}]},{"selector":"2:0","leafPointerHex":"0x00542ae8","sourceRecordVaHex":"0x00542b44","sourceSceneIdHex":"0x0518","targetRecordVaHex":"0x00542bac","targetSceneIdHex":"0x0818","sourceTilesets":["map_a1","map_a2"],"targetTilesets":["map_d1","map_d2","map_d3"],"leafRefs":[{"section":".data","refVaHex":"0x00542a08","fileOffsetHex":"0x140a08","targetVaHex":"0x00542ae8"}],"sourceRecordRefs":[],"targetRecordRefs":[],"leafDwords":[{"index":0,"vaHex":"0x00542ae8","valueHex":"0x000a3012","u16Lo":12306,"u16Hi":10},{"index":1,"vaHex":"0x00542aec","valueHex":"0x0053f338","u16Lo":62264,"u16Hi":83},{"index":2,"vaHex":"0x00542af0","valueHex":"0x00100010","u16Lo":16,"u16Hi":16},{"index":3,"vaHex":"0x00542af4","valueHex":"0x000b3016","u16Lo":12310,"u16Hi":11},{"index":4,"vaHex":"0x00542af8","valueHex":"0x0053f343","u16Lo":62275,"u16Hi":83},{"index":5,"vaHex":"0x00542afc","valueHex":"0x00100010","u16Lo":16,"u16Hi":16},{"index":6,"vaHex":"0x00542b00","valueHex":"0x000d9012","u16Lo":36882,"u16Hi":13},{"index":7,"vaHex":"0x00542b04","valueHex":"0x0053f463","u16Lo":62563,"u16Hi":83}]}],"xrefCurrentRootRefIsSelectorRowEntry":true,"xrefCurrentRootNonMetadataRefCount":0,"xrefRoutePromotionStatus":"blocked","leafSummaries":[{"leafPointerHex":"0x00542ac0","nestedPointerHex":"0x00542e10","linkedCns":["map_a1.cns","map_a2.cns","face_01.cns","cara_01.cns","cara_05.cns","cara_etc.cns","map1_01a.cns","map_d1.cns","map_d2.cns","map_d3.cns","cara_03.cns","map2_02d.cns"],"fieldRecords":[{"recordVaHex":"0x00542b44","filename":"map1_01a.cns","map":"map1_01a","sceneIdHex":"0x0518"},{"recordVaHex":"0x00542bac","filename":"map2_02d.cns","map":"map2_02d","sceneIdHex":"0x0818"}],"nestedFieldRecords":[{"recordVaHex":"0x00542e3c","filename":"map2_15j.cns","map":"map2_15j","sceneIdHex":"0x1518"}]},{"leafPointerHex":"0x00542ad4","nestedPointerHex":"0x00542e48","linkedCns":["map_a1.cns","map_a2.cns","face_01.cns","cara_01.cns","cara_05.cns","cara_etc.cns","map1_01a.cns","map_d1.cns","map_d2.cns","map_d3.cns","cara_03.cns","map2_02d.cns"],"fieldRecords":[{"recordVaHex":"0x00542b44","filename":"map1_01a.cns","map":"map1_01a","sceneIdHex":"0x0518"},{"recordVaHex":"0x00542bac","filename":"map2_02d.cns","map":"map2_02d","sceneIdHex":"0x0818"}],"nestedFieldRecords":[{"recordVaHex":"0x00542e74","filename":"map2_16j.cns","map":"map2_16j","sceneIdHex":"0x1618"}]},{"leafPointerHex":"0x00542ae8","nestedPointerHex":null,"linkedCns":["map_a1.cns","map_a2.cns","face_01.cns","cara_01.cns","cara_05.cns","cara_etc.cns","map1_01a.cns","map_d1.cns","map_d2.cns","map_d3.cns","cara_03.cns","map2_02d.cns","map2_18d.cns","map_g1.cns"],"fieldRecords":[{"recordVaHex":"0x00542b44","filename":"map1_01a.cns","map":"map1_01a","sceneIdHex":"0x0518"},{"recordVaHex":"0x00542bac","filename":"map2_02d.cns","map":"map2_02d","sceneIdHex":"0x0818"},{"recordVaHex":"0x00542c14","filename":"map2_18d.cns","map":"map2_18d","sceneIdHex":"0x1818"}],"nestedFieldRecords":[]}],"traceStops":[{"streamVaHex":"0x00542ac0","leafPointerHex":"0x00542ac0","stopReasons":["no-fixed-advance"]},{"streamVaHex":"0x00542e10","leafPointerHex":"0x00542ac0","stopReasons":["no-fixed-advance"]},{"streamVaHex":"0x00542ad4","leafPointerHex":"0x00542ad4","stopReasons":["no-fixed-advance"]},{"streamVaHex":"0x00542e48","leafPointerHex":"0x00542ad4","stopReasons":["no-fixed-advance"]},{"streamVaHex":"0x00542ae8","leafPointerHex":"0x00542ae8","stopReasons":["branch-or-fallthrough"]}],"saveLoaderFrontierExample":{"group":2,"slot":0,"groupTableVaHex":"0x00442d35","rowPointerVaHex":"0x0053f328","selectedPointerHex":"0x00540714","secondLevelPointerHex":"0x005429dc","leafPointerHex":"0x00542ac0","knownFrontier":"map1_01a -> map2_02d via leaf 0x00542ac0"},"selectorProgressHint":{"fromLabel":"0:0","label":"2:0","group":2,"slot":0,"sharedMaps":["map1_01a"],"introducedMaps":["map2_02d","map2_18d","map2_09g","map2_10g","map2_11g","map2_12h","map2_17h","map2_14j","map2_15j","map2_16j"]},"sourceOpen":"../web/game.html?map=map1_01a&events=1&overview=1","targetOpen":"../web/game.html?map=map2_02d&events=1&overview=1","trialOpen":"../web/game.html?map=map1_01a&trialTransitions=routeAssist","selectorTrialOpen":"../web/game.html?map=map1_01a&trialTransitions=saveSelectorLinks","selectorOpen":"../web/game.html?saveGroup=2&saveSlot=0&events=1&overview=1","frontierMissingEvidence":["strict source coordinate","tile hotspot confirmation","selected-root execution ref"],"frontierNonPromotingEvidence":["scene-list/resource gate only"],"routePromotionGateStatus":"blocked","routePromotionAllowed":false,"routePromotionFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation","realSelector20Savedata","selectedRootExecution","runtimeTraceOrEquivalent"],"routePromotionMissingEvidence":["strict source coordinate","tile hotspot confirmation","selected-root execution ref","real selector 2:0 captured savedata","runtime trace/equivalent selected-root proof"],"hardMissingEvidence":["strict source coordinate","tile hotspot confirmation","selected-root execution ref","real selector 2:0 captured savedata","runtime trace/equivalent selected-root proof"],"hardMissingEvidenceExtra":["real selector 2:0 captured savedata","runtime trace/equivalent selected-root proof"],"routePromotionNonPromotingEvidence":["scene-list/resource gate only"],"hardNonPromotingEvidence":["scene-list/resource gate only"],"hardNonPromotingEvidenceExtra":[],"routePromotionNextActionEvidenceRefs":[{"priority":1,"status":"open","task":"Prove predecessor fill-site execution/order before the current reader.","why":"The public predecessor runtime path reaches selector 1:0 but leaves secondaryBranchState all zero; local/static reset evidence is closed, so the next proof is whether the 1:0 fill sites execute before the 0x00542b0c reader.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefs":[{"path":"out/save_selector_predecessor_branch_state_execution_gap.json","fields":["proofFound","failedBranchStateExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeBranchStateSplit","fillExecutionOrderProofFound","fillSiteExecutionContextProven"]},{"path":"out/save_selector_predecessor_fill_execution_order_gap.json","fields":["localFillTraceReachesCurrentReader","rootEntryFixedTraversalFillSitesReachable","predecessorDescriptorDependsOnSaveSelectorSliceModel","rawGenericClassification","rawGenericCallGraphClassification","rawGenericCallGraphProofFound","rawGenericCallGraphDepthSensitivity","rawGenericRouteProofFound","predecessorDispatchTableBaseAuditRows","predecessorFillProofGateRows","predecessorFillProofGateCount","predecessorFillProofGatePassCount","predecessorFillProofGateBlockedIds","predecessorFillProofGateBlockedCount","predecessorFillAllProofGatesBlocked","failedPredecessorFillOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_opcode10_context.json","fields":["helperOnlyDirectCallInsideOpcode10Handler","directFillSiteTextRefCount","runtimeObservedAllZero","branchStatePollSampleCount","branchStatePollFillMatchCount","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","failedPredecessorFillOpcode10GateIds","missingEvidence","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_site_execution_context.json","fields":["branchStatePollSampleCount","branchStatePollFillMatchCount","descriptorEdgeRejectionClassification","requiredProofGates","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","fillSiteExecutionContextProven","proofFound","failedPredecessorFillGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_predecessor_descriptor_bridge_gap.json","fields":["proofFound","failedDescriptorBridgeGateIds","missingEvidence","evidenceRefCount","descriptorEdgeRejectionClassification","rootStopToFillBridgeFound","fillStopToCurrentBridgeFound","descriptorBridgeProofFound"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["forwardBridgeAbsent","reverseReuseBeforeFillOnly","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","saveLoaderGate","runtimeProbeGate","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_predecessor_coordinate_source_scan.json","fields":["classification","promotionStatus","proofFound","predecessorCoordinateSourceProofFound","failedPredecessorCoordinateSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","sourceSave","scanTargets","pointerTables","staticBasePairHits","trailRingPairHits","pairHitSummaryRows","coordinateSourceRejectionClassification","publicSaveStartPointerTableTileHitCount","publicSaveStartStaticBaseHitCount","publicSaveStartTrailRingHitCount","publicSaveStartImageHitCount","reciprocalPointerTableTileHitCount","reciprocalStaticBaseHitCount","reciprocalTrailRingHitCount","reciprocalImageHitCount","remainingProofs","imagePairHits"]},{"path":"out/runtime_predecessor_route_attempt_context.json","fields":["proofFound","predecessorRouteAttemptProofFound","routeSelectorHitCount","currentRootHitCount","observedSelectorCounts","dominantDiversionSelector","diversionSelectorContextCount","diversionRoutePromotionEvidenceFound","publicPredecessorSelectorContext","failedPredecessorRouteAttemptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":2,"status":"open","task":"Resolve selector merge before using predecessor 1:0 persistence.","why":"The confirmed source-side route overlaps selector 0:0, while predecessor 1:0 is target-side only. The current 2:0 row looks like a merge of those selector lists, not a proven execution sequence.","relatedFailedGateIds":["selectedRootExecution"],"relatedMissingEvidence":["selected-root execution ref"],"nextInputClasses":["selected-root-execution-proof"],"nextInputSummary":"selected-root-execution-proof","evidenceRefs":[{"path":"out/save_selector_predecessor_persistence_gap.json","fields":["proofFound","predecessorPersistenceProofFound","failedPredecessorPersistenceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","persistenceProven","selectorMergeGapOpen","routeOrderProven","promotionStatus"]},{"path":"out/save_selector_predecessor_route_order.json","fields":["proofFound","predecessorRouteOrderProofFound","failedPredecessorRouteOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","routeOrderProven","selectorMergeGapOpen","sourceRoutePreviousSelector","predecessorIsTargetSideOnly","promotionStatus"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["mergeShapeOnly","forwardBridgeAbsent","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_merge_closure_context.json","fields":["selectorMergeClosureProofFound","proofFound","failedSelectorMergeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","predecessorPersistenceUsableForCurrent","promotionStatus"]},{"path":"out/save_selector_merge_execution_gap.json","fields":["sourceToCurrentBridgeHitCount","currentToPredecessorBeforeFillHitCount","selectorMergeExecutionProofFound","proofFound","failedSelectorMergeExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_set_decomposition.json","fields":["currentEqualsPredecessorPlusSource","sourcePredecessorUnionCoversCurrent","executionOrderProven","proofFound","failedSelectorSetDecompositionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_target_alias_bridges.json","fields":["forwardHitsAddressAdjacentOnly","targetAliasExecutionExclusionStatus","aliasToCurrentExecutionLikeBridgeFound","proofFound","failedTargetAliasBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_route_root_ref_context.json","fields":["allRouteSelectorRootsTableOnly","predecessorToCurrentRootRefFound","routeOrderProven","proofFound","failedRouteRootRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_reverse_reuse_context.json","fields":["reverseHitCount","beforePredecessorFillHitCount","fillSiteHitCount","alignedTargetCount","unalignedTargetCount","classificationCounts","forwardMergeBridgeHitCount","directMergeExecutionBridgeFound","proofFound","reverseReuseProofFound","failedReverseReuseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_merge_bridge_matrix.json","fields":["sourceToCurrentHitCount","predecessorToCurrentHitCount","currentToPredecessorHitCount","currentToPredecessorBeforeFillHitCount","currentToPredecessorFillSiteHitCount","forwardMergeBridgeHitCount","forwardEncodedAnchorRawScalarCandidateCount","forwardEncodedAnchorPromotingCandidateCount","directMergeExecutionBridgeFound","encodedMergeExecutionBridgeFound","currentPredecessorHitsBeforeFillOnly","selectorMergeProofStatus","proofFound","failedMergeBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["proofFound","failedRoutePairEntryGateIds","missingEvidence","routePairEntryExecutionProven","correctedTraceNormalSelectionGapFound","selectedRootExecutionRefFound","wrapperExecutionProofFound","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":3,"status":"blocked","task":"Treat the save-selector branch as a resource/scene-list gate, not a map transition.","why":"The branch target is a character/object CNS resource, while the target map appears later as another scene record in the selector list.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefs":[{"path":"out/save_selector_scene_list_context.json","fields":["currentFrontier","rowCount","proofFound","failedSceneListGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_frontier_reader_branch_context.json","fields":["classification","passOutcome","failOutcome","proofFound","failedFrontierReaderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeSelectionProven","strictHotspotFound"]},{"path":"out/save_selector_frontier_payload_shape.json","fields":["allPayloadsFitPairedImages","sourceInBoundsPointCount","payloadTextRefCount","proofFound","failedFrontierPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_scene_adjacency_index.json","fields":["adjacentPairsWithoutStrictOrConfirmedCount","currentPairSelectorAdjacencyOnly","currentPairStrictEventBacked","proofFound","failedSceneAdjacencyGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]}]},{"priority":5,"status":"open","task":"Find a strict source coordinate or hotspot before promotion.","why":"The frontier currently comes from save-selector scene links, not from event transition coordinates.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefs":[{"path":"out/map1_01a_strict_source_hotspot_context.json","fields":["candidateSummaries","evidence","remainingProofs","candidateCount","strictHotspotRejectionClassification","evidenceRefs","evidenceRefCount","strictSourceCoordinateFound","tileHotspotConfirmed","proofFound","failedStrictHotspotGateIds","missingEvidence","targetSpawnCoordinateCurrentRootClassificationCounts","targetSpawnCoordinateCharacterDescriptorClassificationCounts","targetSpawnCoordinatePromotableHitCount","strictSourceHotspotProofFound","promotionStatus"]},{"path":"out/map1_01a_strict_hotspot_review_matrix.json","fields":["candidateRows","remainingProofs","transitionReviewRowCount","eventTransitionCount","candidateGateSummary","proofFound","strictHotspotReviewProofFound","failedStrictHotspotReviewGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_coordinate_variant_scan.json","fields":["spanSequenceHitCount","spanCurrentRootHitCount","targetSpawnCurrentRootClassificationCounts","targetSpawnCharacterDescriptorClassificationCounts","targetSpawnPromotableHitCount","strictCoordinateEvidenceFound","proofFound","exitCoordinateVariantProofFound","failedExitCoordinateVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map_exit_coordinate_refs.json","fields":["promotionPolicy","promotionStatus","proofFound","mapExitCoordinateRefProofFound","failedMapExitCoordinateRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount","rows"]},{"path":"out/map1_01a_exit_coordinate_context.json","fields":["xyPackedHex","xyHitCount","hitVaHex","ownerSelector","ownerLinkedCns","classification","proofFound","exitCoordinateContextProofFound","failedExitCoordinateContextGateIds","missingEvidence","evidenceRefCount","promotable","promotionStatus"]},{"path":"out/map1_01a_exit_byte_coordinate_scan.json","fields":["bytePairScanCount","targetSpawnBytePairScanCount","sequenceHitCount","strictSourceTargetByteHitCount","targetSpawnStrictSourceTargetByteHitCount","strictByteCoordinateEvidenceFound","targetSpawnStrictByteCoordinateEvidenceFound","proofFound","exitByteCoordinateProofFound","failedExitByteCoordinateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_cns_payload_scan.json","fields":["bytePairScanCount","wordPairScanCount","outsideStructuredHitCount","strictCnsCoordinateEvidenceFound","proofFound","exitCnsPayloadCoordinateProofFound","failedExitCnsPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/original_collision_route_audit.json","fields":["collisionMode","routeCandidateCount","sourceOriginalStandableCandidateCount","targetOriginalStandableSpawnCount","promotionAllowed","promotionStatus","proofFound","originalCollisionRouteProofFound","failedOriginalCollisionRouteGateIds","missingEvidence","evidenceRefCount"]},{"path":"out/map1_01a_tile_hotspot_pattern_contrast.json","fields":["currentCandidatesMatchingConfirmedLowNibbleCount","currentCandidatesMatchingConfirmedCenterPairCount","currentCandidatesMatchingConfirmedLow3x3Count","currentCandidatesMatchingConfirmedPair3x3Count","currentStrictTransitionReviewCount","tileHotspotConfirmed","proofFound","tileHotspotPatternProofFound","failedTileHotspotPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_event_tile_signature_scan.json","fields":["strictEventRecordCount","strictEventPointCount","targetLinkedStrictEventRecordCount","directSourceTargetStrictEventRecordCount","candidateCount","centerPairMatchCount","allCenterPairMatchesRejectedReview","targetSpawnTargetMapStrictEventPointCount","tileHotspotConfirmed","tileSignaturePromotes","promotionStatus","proofFound","strictEventTileSignatureProofFound","failedStrictEventTileSignatureGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/map1_01a_edge_trigger_gap.json","fields":["candidateRows","directCallGraphEvidence","missingPromotionEvidence","sourceBoundaryCandidateCount","transitionLikeDirectRelHitCountInHelperOrController","directRouteImmediateCountInHelperOrController","promotionStatus","proofFound","edgeTriggerProofFound","failedEdgeTriggerGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/runtime_source_save_load_variant_context.json","fields":["classification","proofFound","runtimeSourceSaveLoadVariantProofFound","failedRuntimeSourceSaveLoadVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","exitPath","readyPathSummary","strictSourceHotspotProofFound","selectedRootExecutionProofFound","routePromotionEvidenceFound","promotionStatus"]},{"path":"out/map1_01a_exit_target_ranking.json","fields":["exits","blockedTargetCandidates","selectorOutgoingCandidates","confirmedIncomingReviews","remainingProofs","exitCount","blockedTargetExitCount","selectorOutgoingOnlyCount","proofFound","exitTargetRankingProofFound","failedExitTargetRankingGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":6,"status":"open","task":"Prove current selector leaf selection and wrapper execution.","why":"The current 2:0 root contains route-adjacent leaves, but the traced reader leaf is indirect and the direct opcode 0x07/object+0x61 paths do not select the frontier.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefs":[{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","selectedRootExecutionRejection","selectedRootSubgateStatusOrder","selectedRootSubgateStatuses","selectedRootNonPromotingSubgateCount","gateRows","remainingProofs","evidenceRefs","evidenceRefCount","staticReferenceGate","runtimeProbeGate","promotionStatus"]},{"path":"out/save_selector_wrapper_execution_gap.json","fields":["proofFound","failedWrapperGateIds","missingEvidence","wrapperExecutionProofFound","currentSelectorLeafExecutionProofFound","correctedTraceNormalSelectionGapFound","readerBearingNegativeOnly","evidence","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["routePairEntryExecutionProven","proofFound","failedRoutePairEntryGateIds","missingEvidence","correctedTraceNormalSelectionGapFound","globalCurrentFrontierLeafOnlyNegative","opcode07DirectEntrySelectionAbsent","evidenceRows","routePairEntryRows","negativeReaderRows","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_index_source_gap.json","fields":["routeEntryIndices","routePairEntryIndices","negativeReaderEntryIndices","entryPointerRefCount","entryPointerTextRefCount","entryPointerPromotingRefCount","encodedEntryAnchorRawScalarCandidateCount","encodedEntryAnchorBranchAttachedEncodedFieldCount","encodedEntryAnchorModeledControlFlowCandidateCount","encodedEntryAnchorPromotingCandidateCount","encodedEntryAnchorClassification","entryPointerOpcode5aFallthroughRefCount","entryPointerFallthroughNonCodeRefCount","nonNegativeEntryPointerPromotingRefCount","negativeReaderEntryPointerPromotingRefCount","higherLevelIndexSourceProven","proofFound","failedRoutePairIndexSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_context.json","fields":["runtimeSelectionProven","proofFound","failedLeafTableGateIds","missingEvidence","frontierLeafRefIsDirectRootTableEntry","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_index_space.json","fields":["entryCount","negativeIndexCount","routePairDescriptorCurrentEntryCount","readerBearingCurrentEntryCount","readerBearingNegativeEntryCount","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","proofFound","failedLeafIndexGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_global_context.json","fields":["selectorTableCount","fieldEntryRowCount","negativeFieldEntryRowCount","nonNegativeFieldEntryRowCount","currentSelectorRoutePairIndices","currentSelectorNegativeRoutePairRowCount","currentSelectorNonNegativeRoutePairRowCount","currentFrontierLeafOnlyNegative","runtimeSelectionProven","proofFound","leafTableGlobalProofFound","failedLeafTableGlobalGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_descriptor_context.json","fields":["currentRoutePairDescriptorCount","currentRoutePairDescriptorIndices","currentRoutePairCorrectedTraceReachesReaderCount","currentRoutePairCorrectedTraceAllDescriptorsReachReader","currentRoutePairGeometryExitHitCount","readerBearingNegativeEntryCount","readerBearingNegativeIndices","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","runtimeSelectionProven","proofFound","routePairDescriptorProofFound","failedRoutePairDescriptorGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode2c_route_pair_context.json","fields":["routePairDescriptorCount","oldNoFixedAdvanceStopCount","correctedTraceReachesReaderCount","correctedTraceAllRoutePairDescriptorsReachReader","runtimeSelectionProven","proofFound","opcode2cRoutePairProofFound","failedOpcode2cRoutePairGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_current_writer_paths.json","fields":["classification","rootHex","writerVaHex","writerValueHex","proofFound","currentWriterPathProofFound","failedCurrentWriterPathGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":7,"status":"open","task":"Prove the opcode 0x20 gate-time base path, not just active order.","why":"The local gate window has only opcode 0x20 as a base candidate, and descriptor+0/+4/+8 scanning does not directly reference field maps, the current frontier, or the 0xe8/0xea gate offsets.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefs":[{"path":"out/save_selector_gate_base_proof_gap.json","fields":["proofFound","gateBaseProofFound","activeOrderProofFound","gateTimeBaseProofFound","failedGateBaseGateIds","missingEvidence","gateWindowRows","localBaseAffectingRowsBeforeGate","activeOrderOnlyProofEliminated","descriptorAllScriptSpecificGateBaseProven","promotionStatus","remainingProofs","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_gate_offset_sources.json","fields":["gateOffsetsHex","gates","anyScriptLocalSelectionWriter","anyGlobalScriptSelectionWriter","controlPathGateStatus","controlPathProofStatus","proofFound","gateOffsetSourceProofFound","failedGateOffsetSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_offset_patterns.json","fields":["offsets","totalReaderCount","totalWriterCount","proofFound","gateOffsetPatternProofFound","failedGateOffsetPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_base_candidates.json","fields":["baseCandidates","candidateCount","directRefCandidateCount","partySlotStatByteCandidateCount","runtimePointerModeStillRequired","proofFound","gateBaseCandidateProofFound","failedGateBaseCandidateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_sample_values.json","fields":["sampleCount","uniqueSelectorCount","currentFrontierSampleCovered","saveRuntimeGateSampleRows","partySlotStatSampleRows","runtimePointerModeStillRequired","proofFound","gateSampleValueProofFound","failedGateSampleValueGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_pass_matrix.json","fields":["gateRows","saveRuntimePassMatrix","saveRuntimePredecessorAllGatePassSampleCount","saveRuntimeZeroTableAllGatePassSampleCount","runtimeBaseProofRequired","predecessorPersistenceProofRequired","strictHotspotProofRequired","proofFound","gatePassMatrixProofFound","failedGatePassMatrixGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_selection_buffer_bases.json","fields":["immediateAssignments","registerAssignments","knownStaticGateOffsetDirectRefCount","runtimePointerModeStillRequired","proofFound","selectionBufferBaseProofFound","failedSelectionBufferBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_object_base_candidates.json","fields":["candidates","candidateCount","contextF2ObjectSelectorCount","fieldMapRowsAfterCandidateCount","currentFrontierRowsAfterCandidateCount","gateSelectionRowsAfterCandidateCount","runtimeObjectPointerProofRequired","proofFound","opcode20ObjectBaseProofFound","failedOpcode20ObjectBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_order_space.json","fields":["uniqueOrderSpace","repeatAllowedOrderSpace","descriptorRowCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","runtimeDescriptorObjectStateRequired","proofFound","opcode20OrderSpaceProofFound","failedOpcode20OrderSpaceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_nested_base_modes.json","fields":["currentModeIsNestedObjectPlus4","directContextA8SetterCount","proofFound","opcode20NestedBaseProofFound","failedOpcode20NestedBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_context_f2_sources.json","fields":["referenceCount","readReferenceCount","writeReferenceCount","runtimeObjectTableReaderCount","directInitializerCount","copyWriterCount","constantWriteCount","objectBaseCandidateCount","contextF2ObjectSelectorCount","fixedStream2ObjectSelectorCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","diagnosticRuntimeObjectTableEvidence","fixedContextF2ValueProvenForCurrentFrontier","specificRuntimeObjectPointerProven","runtimeObjectTableStateRequired","proofFound","opcode20ContextF2ProofFound","failedOpcode20ContextF2GateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_sources.json","fields":["runtimeSlotCountRequired","runtimeSlotDescriptorPointersRequired","controlPathProofStatus","proofFound","opcode20SlotSourceProofFound","failedOpcode20SlotSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_descriptor_scripts.json","fields":["scriptSlotAggregateRows","script4SpecificGateBaseProven","allScriptsSpecificGateBaseProven","runtimeActiveOrderRequired","controlPathProofStatus","proofFound","opcode20DescriptorScriptProofFound","failedOpcode20DescriptorScriptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_descriptor_writers.json","fields":["descriptorRows","routines","descriptorWriteCount","opcode20Mode0ScriptSource","runtimeActiveOrderRequired","proofFound","opcode20DescriptorWriterProofFound","failedOpcode20DescriptorWriterGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_sample_order_effects.json","fields":["sampleRows","sampleCount","uniqueSampleStateCount","currentFrontierSampleCovered","allSamplesHaveKnownDescriptorIndices","controlPathProofStatus","proofFound","opcode20SampleOrderProofFound","failedOpcode20SampleOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_runtime_materializers.json","fields":["materializers","loadRebuildEvidence","currentRouteSameLowByteRows","descriptorScriptMutationRows","currentFrontierActiveOrderProven","opcode20SelfMutationPathEliminated","controlPathProofStatus","proofFound","opcode20RuntimeMaterializerProofFound","failedOpcode20RuntimeMaterializerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":8,"status":"open","task":"Capture a runtime producer trace for opcode 0x24 mode1 source.","why":"Static scans now rule out direct writes, savedata backing, and the known 0x0059e310+0x38 base-immediate path for 0x0059e348, ReadFile destinations, and broad block-write candidates. The runtime enabled flag 0x0059e34d also has no broad block-write candidate.","relatedFailedGateIds":["runtimeTraceOrEquivalent","selectedRootExecution"],"relatedMissingEvidence":["runtime trace/equivalent selected-root proof","selected-root execution ref"],"nextInputClasses":["runtime-trace-or-equivalent-proof","selected-root-execution-proof"],"nextInputSummary":"runtime-trace-or-equivalent-proof, selected-root-execution-proof","evidenceRefs":[{"path":"out/save_selector_opcode24_mode1_indirect_context.json","fields":["mode1DirectRefs","globalBaseDirectRefs","basePlusOffsetRows","basePlusMode1OffsetCandidates","baseWindowMode1WriteCandidates","nearbyBaseWindowMode1WriteCandidates","noStaticBaseIndirectCandidate","basePlusMode1OffsetCandidateCount","baseWindowMode1WriteCandidateCount","proofFound","opcode24Mode1IndirectProofFound","failedOpcode24Mode1IndirectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_source_writes.json","fields":["rows","coveringWrites","indexedWriteCandidates","addressProducerCandidates","staticProducerCandidates","coveringWriteCount","indexedWriteCandidateCount","staticProducerCandidateCount","proofFound","opcode24Mode1SourceWriteProofFound","failedOpcode24Mode1SourceWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_file_read_context.json","fields":["globalDestinationReadFileRows","mode1FileReadCandidates","readFileCallCount","globalDestinationReadFileCount","mode1FileReadCandidateCount","proofFound","opcode24Mode1FileReadProofFound","failedOpcode24Mode1FileReadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24Mode1BlockWriteProofFound","failedOpcode24Mode1BlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_runtime_context.json","fields":["storage","saveReadBlocks","remainingProofs","saveReadBlockContainsMode1Source","directProducerSummary","proofFound","failedOpcode24RuntimeProducerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_context.json","fields":["refs","storage","saveReadBlocks","remainingProofs","modeDispatchRequiresRuntimeFlagOne","proofFound","failedOpcode24RuntimeEnabledGateIds","missingEvidence","evidenceRefs","evidenceRefCount","directWriteCount","staticEvidenceProvesModeDispatch","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24RuntimeEnabledBlockWriteProofFound","failedOpcode24RuntimeEnabledBlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_default_effect.json","fields":["object61ConsumerGroups","branchOperand","remainingProofs","routeOperandRowCount","staticDefaultPromotesRoute","directFrontierOperandCount","branchFrontierOperandCount","proofFound","opcode24Mode1DefaultEffectProofFound","failedOpcode24Mode1DefaultEffectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_feasibility.json","fields":["canRunRuntimeTraceNow","blockers","tracePoints","proofFound","failedRuntimeTraceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_execution_probe.json","fields":["canCaptureTraceNow","blockers","probes","qemuI386Binfmt","relocationContext","winePrefix","gdbMultiarchPath","proofFound","runtimeTraceExecutionProofFound","failedRuntimeTraceExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_opcode24_flag_context.json","fields":["classification","promotionStatus","proofFound","runtimeOpcode24FlagProofFound","failedRuntimeOpcode24FlagGateIds","missingEvidence","evidenceRefs","evidenceRefCount","pollCount","realRouteHitObserved","constructedRouteHitObserved","runtimeFlagOneCount","mode1SourceNonzeroObserved","runtimeFlagNonzeroObserved","currentObjectIndexNonzeroObserved","selectedRootExecutionProofFound","routePromotionEvidenceFound","sourceSaveLoadClassification","sourceSaveLoadPromotionStatus","sourceSaveLoadReadyPathDiversionClassification","sourceSaveLoadReadyPathCount","sourceSaveLoadReadyPathRouteOrCurrentCount","sourceSaveLoadReadyPathCandidateOrOutsideCount","sourceSaveLoadDiversionSelector","sourceSaveLoadDiversionFieldMaps","sourceSaveLoadDiversionSelectedPointerCurrentProofCount","sourceSaveLoadDiversionRoutePromotionEvidenceFound","sourceSaveLoadRoutePromotionEvidenceFound"]}]},{"priority":9,"status":"blocked","task":"Do not promote from adjacent strict clusters without a target link.","why":"The related strict cluster is adjacent to the route but does not prove this source->target transition.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefs":[{"path":"out/field_map_record_roots.json","fields":["clusters","strictEventLinkedClusterCount","selectorOnlyClusterCount","proofFound","fieldMapRecordRootsProofFound","failedFieldMapRecordRootGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_target_link_gap.json","fields":["directStrictEventTransitions","sourceStrictClusters","targetStrictClusters","targetSelectorOnlyClusters","currentFrontierCluster","directStrictEventTransitionCount","targetSelectorOnlyClusterCount","strictTargetLinkFound","proofFound","strictTargetLinkProofFound","failedStrictTargetLinkGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]}],"routePromotionStrictSourceHotspotCandidateRows":[{"side":"top","x":18,"y":0,"coordinateStatus":"coordinate-like-hit-without-table-text-ref","coordinatePromotable":false,"variantStrictCoordinateEvidenceFound":false,"routeReviewRowCount":0,"eventTransitionCount":0,"sourceOriginalStandable":true,"targetSpawnOriginalStandable":true,"lowNibbleMatch":true,"coordinateXyHitCount":122,"coordinateYxHitCount":22,"variantInterestingHitCount":41,"variantCurrentRootHitCount":9,"variantCharacterDescriptorHitCount":9,"blockReasons":["no map1_01a->map2_02d transition-review row","no strict map1_01a event transition","coordinate refs are non-promotable","variant coordinate scan found no strict source coordinate","tile signature matches only as geometry/tile evidence"],"blockReasonSummary":"no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence","autoTrigger":true,"boundaryCandidate":true,"routeAssistUrl":"../web/game.html?map=map1_01a&startTile=18%2C0&focusTile=18%2C0&collision=1&collisionMode=originalLayer1Flags&overview=1&trialTransitions=routeAssist&transitionTarget=map2_02d","targetReviewUrl":"../web/game.html?map=map2_02d&startTile=47%2C47&focusTile=47%2C47&collision=1&collisionMode=originalLayer1Flags&overview=1"},{"side":"bottom","x":16,"y":47,"coordinateStatus":"no-exact-packed-coordinate-hit","coordinatePromotable":false,"variantStrictCoordinateEvidenceFound":false,"routeReviewRowCount":0,"eventTransitionCount":0,"sourceOriginalStandable":false,"targetSpawnOriginalStandable":true,"lowNibbleMatch":true,"coordinateXyHitCount":0,"coordinateYxHitCount":0,"variantInterestingHitCount":28,"variantCurrentRootHitCount":7,"variantCharacterDescriptorHitCount":9,"blockReasons":["no map1_01a->map2_02d transition-review row","no strict map1_01a event transition","coordinate refs are non-promotable","variant coordinate scan found no strict source coordinate","tile signature matches only as geometry/tile evidence"],"blockReasonSummary":"no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence","autoTrigger":true,"boundaryCandidate":true,"routeAssistUrl":"../web/game.html?map=map1_01a&startTile=16%2C47&focusTile=16%2C47&collision=1&collisionMode=originalLayer1Flags&overview=1&trialTransitions=routeAssist&transitionTarget=map2_02d","targetReviewUrl":"../web/game.html?map=map2_02d&startTile=46%2C0&focusTile=46%2C0&collision=1&collisionMode=originalLayer1Flags&overview=1"},{"side":"left","x":3,"y":14,"coordinateStatus":"coordinate-like-hit-without-table-text-ref","coordinatePromotable":false,"variantStrictCoordinateEvidenceFound":false,"routeReviewRowCount":0,"eventTransitionCount":0,"sourceOriginalStandable":true,"targetSpawnOriginalStandable":true,"lowNibbleMatch":true,"coordinateXyHitCount":0,"coordinateYxHitCount":8,"variantInterestingHitCount":16,"variantCurrentRootHitCount":0,"variantCharacterDescriptorHitCount":2,"blockReasons":["no map1_01a->map2_02d transition-review row","no strict map1_01a event transition","coordinate refs are non-promotable","variant coordinate scan found no strict source coordinate","tile signature matches only as geometry/tile evidence"],"blockReasonSummary":"no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence","autoTrigger":false,"boundaryCandidate":false,"routeAssistUrl":"../web/game.html?map=map1_01a&startTile=3%2C14&focusTile=3%2C14&collision=1&collisionMode=originalLayer1Flags&overview=1&trialTransitions=routeAssist&transitionTarget=map2_02d","targetReviewUrl":"../web/game.html?map=map2_02d&startTile=95%2C16&focusTile=95%2C16&collision=1&collisionMode=originalLayer1Flags&overview=1"},{"side":"right","x":34,"y":19,"coordinateStatus":"coordinate-like-hit-without-table-text-ref","coordinatePromotable":false,"variantStrictCoordinateEvidenceFound":false,"routeReviewRowCount":0,"eventTransitionCount":0,"sourceOriginalStandable":true,"targetSpawnOriginalStandable":true,"lowNibbleMatch":true,"coordinateXyHitCount":1,"coordinateYxHitCount":28,"variantInterestingHitCount":7,"variantCurrentRootHitCount":2,"variantCharacterDescriptorHitCount":3,"blockReasons":["no map1_01a->map2_02d transition-review row","no strict map1_01a event transition","coordinate refs are non-promotable","variant coordinate scan found no strict source coordinate","tile signature matches only as geometry/tile evidence"],"blockReasonSummary":"no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence","autoTrigger":false,"boundaryCandidate":false,"routeAssistUrl":"../web/game.html?map=map1_01a&startTile=34%2C19&focusTile=34%2C19&collision=1&collisionMode=originalLayer1Flags&overview=1&trialTransitions=routeAssist&transitionTarget=map2_02d","targetReviewUrl":"../web/game.html?map=map2_02d&startTile=1%2C14&focusTile=1%2C14&collision=1&collisionMode=originalLayer1Flags&overview=1"}],"routePromotionStrictHotspotGateEvidence":{"strictSourceHotspotFound":false,"tileHotspotConfirmed":false,"strictSourceHotspotRejectionClassification":"selector-only-scene-list-no-strict-hotspot","strictSourceHotspotRejection":{"classification":"selector-only-scene-list-no-strict-hotspot","proofFound":false,"reason":"candidate tiles have no route review/event rows; the only tile-signature overlap is a rejected incoming map1_02b->map1_01a center match, resource scans have no route-exit point, and generic edge-trigger scans find no map-loader/selector-path hit","candidateCount":4,"transitionReviewRowCount":0,"eventTransitionCount":0,"strictSourceCoordinateFound":false,"tileHotspotConfirmed":false,"allCoordinateRefsNonPromotable":true,"allVariantScansNonPromotable":true,"centerPairStrictEventMatchCount":11,"centerPairTargetLinkedMatchCount":0,"centerPairRejectedReviewMatchCount":11,"allCenterPairMatchesRejectedReview":true,"targetLinkedStrictEventMatchCount":0,"directSourceTargetStrictEventMatchCount":0,"routeExitPointCandidateCount":0,"strictTargetLinkFound":false,"currentPairSelectorAdjacencyOnly":true,"edgeTriggerPromotionAllowed":false,"edgeTriggerPromotionStatus":"blocked-generic-edge-trigger-unproven","edgeTriggerDirectCallGraphRejectionClassification":"bounded-direct-callgraph-no-transition-path","edgeTriggerDirectCallGraphProofFound":false,"edgeTriggerDirectCallGraphReachableFunctionCount":7,"edgeTriggerDirectCallGraphTransitionTargetHitCount":0,"edgeTriggerDirectCallGraphRouteImmediateHitCount":0,"edgeTriggerDirectCallGraphIndirectRejectionClassification":"bounded-indirect-callgraph-no-static-transition-target","edgeTriggerDirectCallGraphIndirectProofFound":false,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableCandidateCount":6,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableEntryCount":58,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableTargetCount":58,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableUniqueTargetCount":54,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableTargetClassCounts":{"actor-controller-local":46,"collision-helper-local":12},"edgeTriggerDirectCallGraphIndirectIndexedJumpTableAllTargetsLocalToEdgeHandlers":true,"edgeTriggerDirectCallGraphIndirectIndexedJumpTableOutsideEdgeHandlerTargetCount":0,"edgeTriggerDirectCallGraphIndirectTransitionTargetHitCount":0,"edgeTriggerDirectCallGraphIndirectRouteImmediateHitCount":0,"edgeTriggerDirectCallGraphDepthSensitivityMaxDepthChecked":6,"edgeTriggerDirectCallGraphDepthSensitivityProofAbsentAcrossCheckedDepths":true,"edgeTriggerDirectCallGraphDepthSensitivityCountsStableAtAndBeyondDefaultDepth":true},"contextEvidenceRowCount":17,"contextEvidenceRows":[{"kind":"candidate-review-gate","status":"no-route-review-or-event","detail":"candidates=4; routeReviews=0; routeEvents=0; incomingReviews=2/24; incomingRecords=0x00503350"},{"kind":"coordinate-variant-gate","status":"non-promotable","detail":"coordRefsBlocked=True; variantsBlocked=True; targetSpawnEncodings=80; targetSpawnCurrentRoot/Character=18/43; targetSpawnCurrentClasses={\"selector-script-word\": 18}; targetSpawnCharacterClasses={\"character-descriptor-script-word\": 43}; targetSpawnPromotable=0; targetSpawnAllInterestingNonPromotable=True; spanSeqHits=0; xySeqHits=0; yxOpcodeHits=0"},{"kind":"byte-coordinate-gate","status":"non-promotable","detail":"bytePairScans=24; sequenceScans=16; byteHits=5021; sequenceHits=0; strictSourceTargetByteHits=0; strictEventOtherByteHits=22; currentSelectorRootByteHits=66; textCodeByteHits=233; strictByteCoordinateEvidenceFound=False; targetSpawnBytePairScans=24; targetSpawnByteHits=1687; targetSpawnStrictSourceTargetByteHits=0; targetSpawnCurrentSelectorRootByteHits=15; targetSpawnStrictByteCoordinateEvidenceFound=False; promotionStatus=blocked"},{"kind":"cns-payload-gate","status":"tilemap-only-nonpromoting","detail":"sourceCns=37x48; bytePairScans=24; wordPairScans=24; packedU32Scans=24; sequenceScans=32; bytePairHits=8; wordPairHits=3; packedU32Hits=3; sequenceHits=0; headerHits=0; layerHits=14; outsideStructuredHits=0; strictCnsCoordinateEvidenceFound=False; promotionStatus=blocked"},{"kind":"tile-signature-gate","status":"center-pair-only-nonpromoting","detail":"centerPairMatches=11; centerPairOwners=map1_02b->map1_01a:11; centerPairSameSource=0; centerPairTargetLinked=0; centerPairConfirmedReview=0; centerPairRejectedReview=11; allCenterPairRejectedReview=True; centerSides=right; low3x3Matches=0; pair3x3Matches=0; targetSpawnStrictEvents=0; targetSpawnMatches=0/147/0; targetSpawnTargetMapMatches=0/0/0; targetSpawnLow3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5; targetSpawnLow3x3TargetLinked/Confirmed/Rejected=0/1/19; targetSpawnLow3x3GenericOnly=True; targetSpawnAllCenterPair/Pair3x3/TargetMapZero=True/True/True; targetLinkedMatches=0; directSourceTargetMatches=0; confirmedPairMatches=0; tileSignaturePromotes=False"},{"kind":"resource-window-gate","status":"scene-list-no-point-hit","detail":"resourceRefs=10; frontierRef=True; pointCandidates=163; routeExitPointCandidates=0; strictSourceTargetCandidates=0; classes={'script-command-shaped-run': 3, 'short-in-bounds-scalar-run': 13, 'single-in-bounds-point': 3, 'sentinel-0x003f-singleton': 103, 'out-of-bounds-singleton': 5, 'owned-point-table-non-route': 2, 'short-out-of-bounds-scalar-run': 4, 'resource-size-singleton': 28, 'out-of-bounds-run': 1, 'point-table-near-resource-reference': 1}; frontierClasses={'sentinel-0x003f-singleton': 16, 'resource-size-singleton': 2}; frontierRouteHits=0"},{"kind":"frontier-branch-gate","status":"resource-gate-before-scene-record","detail":"reader=0x00542b0c; failResource=True; passPayload=sprite-or-rect-payload-like; passInBounds=0; siblingFieldMaps=0; runtimeSelection=False"},{"kind":"payload-shape-gate","status":"resource-rect-payload","detail":"rectLike=3/3; fitImages=True; inBoundsPoints=0; textRefs=0"},{"kind":"strict-target-link-gate","status":"absent","detail":"directStrict=0; sourceIncomingOnly=1; sourceOutgoing=0; targetStrict=0; targetSelectorOnly=5; targetSelectorSourceOverlap=1; targetSelectorSourceTargetPairs=1; currentFrontierPairs=110; currentSourceOutgoing=10; currentTargetIncoming=10; frontierSelectorOnly=True; strictTargetLinkFound=False"},{"kind":"scene-adjacency-gate","status":"selector-only","detail":"currentOcc=3; selectors=2:0; strictBacked=False; confirmedBacked=False; selectorOnly=True"},{"kind":"generic-edge-trigger-gate","status":"blocked-generic-edge-trigger-unproven","detail":"sourceBoundaryCandidates=2; autoBoundaryCandidates=2; transitionRelHits=0; routeImmediateHits=0; directionLatchRefs=79; routeWindowHits=0/0; globalTextRefs=0/4/0; scriptRunnerWindows=4/0/0/0; selectedPointerWindows=6/0; callerWindows=actor:1/0/0;helper:20/0/0; encodedHandler=0/0/0/0/0; encodedLocal=0/0/0/0/0; encodedCallGraph=0/0/0/0/0; encodedContrast=4/4/0/0/0; callGraph=bounded-direct-callgraph-no-transition-path/7/24/0/0/0/6; indirectGraph=bounded-indirect-callgraph-no-static-transition-target/6/58/0/0; callGraphSensitivity=6/True/True; promotionAllowed=False; promotionStatus=blocked-generic-edge-trigger-unproven"},{"kind":"confirmed-pattern-contrast","status":"not-confirmed-like","detail":"confirmedRoute=map1_02b -> map1_01a; frontierStrictEvent=False; frontierStrictHotspot=False; frontierSelectorOnly=True; confirmedLike=False"},{"kind":"manifest-point-scan","status":"blocked","detail":"records=3; incomingPointTables=1; strictSourceHotspot=False; conclusion=The only strict-event-owned 24-point table found in the map1_01a manifest neighborhoods is owned by the strict map1_02b -> map1_01a event record at 0x00503350. It confirms the incoming route, but it is not a map1_01a source hotspot and it does not target map2_02d. Other short point-like reads come from tail/script blocks without a strict map1_01a event owner. No scanned record provides strict map1_01a source coordinate evidence for map1_01a -> map2_02d."},{"kind":"current-root-point-scan","status":"blocked","detail":"root=0x00540714; pointerLike=448; reportedCandidates=447; frontierClusterCandidates=4; exactExitCandidates=0; scriptLikeCandidates=445; strictSourceHotspot=False"},{"kind":"confirmed-entry-vs-frontier-context","status":"blocked","detail":"confirmedEntryCluster=0x005032d8; frontierCluster=0x00542b44; frontierSelectors={'selector': '2:0', 'leafPointerHex': '0x00542ac0', 'targets': ['map2_02d'], 'sceneRecords': ['0x00542b44', '0x00542bac']},{'selector': '2:0', 'leafPointerHex': '0x00542ad4', 'targets': ['map2_02d'], 'sceneRecords': ['0x00542b44', '0x00542bac']},{'selector': '2:0', 'leafPointerHex': '0x00542ae8', 'targets': ['map2_02d'], 'sceneRecords': ['0x00542b44', '0x00542bac']}; frontierProvenFromConfirmedEntry=False; remainingProofs=3"},{"kind":"scene-record-cluster-context","status":"blocked","detail":"sourceRecords=3; sourceStrictOutgoing=0; targetStrict=0; targetSelectorOnly=5; sharedStrict=0; sharedSelectorOnly=1; frontierEvents=0; frontierSelectorRefs=34; strictTargetLink=False"},{"kind":"selector-context-bridge-scan","status":"blocked","detail":"confirmedToFrontier=0; frontierToConfirmed=0; bridgeFound=False; limitations=3"}],"contextRemainingProofs":["find a strict map1_01a event/coordinate source row for map2_02d","confirm a route review or tile hotspot tied to this source-target pair","or replace selector-only adjacency with equivalent runtime trigger proof"],"reviewCandidateRowCount":4,"reviewCandidateRows":[{"side":"top","tile":{"x":18,"y":0},"coordRefStatus":"coordinate-like-hit-without-table-text-ref","xyHitCount":122,"yxHitCount":22,"variantCurrentRootHitCount":9,"variantStrictCoordinateEvidenceFound":false,"lowNibbleMatch":true,"promotionStatus":"blocked"},{"side":"bottom","tile":{"x":16,"y":47},"coordRefStatus":"no-exact-packed-coordinate-hit","xyHitCount":0,"yxHitCount":0,"variantCurrentRootHitCount":7,"variantStrictCoordinateEvidenceFound":false,"lowNibbleMatch":true,"promotionStatus":"blocked"},{"side":"left","tile":{"x":3,"y":14},"coordRefStatus":"coordinate-like-hit-without-table-text-ref","xyHitCount":0,"yxHitCount":8,"variantCurrentRootHitCount":0,"variantStrictCoordinateEvidenceFound":false,"lowNibbleMatch":true,"promotionStatus":"blocked"},{"side":"right","tile":{"x":34,"y":19},"coordRefStatus":"coordinate-like-hit-without-table-text-ref","xyHitCount":1,"yxHitCount":28,"variantCurrentRootHitCount":2,"variantStrictCoordinateEvidenceFound":false,"lowNibbleMatch":true,"promotionStatus":"blocked"}],"reviewRemainingProofs":["strict source coordinate","tile hotspot confirmation","selected-root execution ref"],"candidateCount":4,"transitionReviewRowCount":0,"eventTransitionCount":0,"strictSourceCoordinateFound":false,"targetSpawnCoordinateCurrentRootHitCount":18,"targetSpawnCoordinateCharacterDescriptorHitCount":43,"targetSpawnCoordinateCurrentRootClassificationCounts":{"selector-script-word":18},"targetSpawnCoordinateCharacterDescriptorClassificationCounts":{"character-descriptor-script-word":43},"targetSpawnCoordinatePromotableHitCount":0,"targetSpawnCoordinateAllInterestingHitsNonPromotable":true,"targetSpawnTargetMapStrictEventPointCount":0,"targetSpawnCenterPairStrictEventMatchCount":0,"targetSpawnLow3x3StrictEventMatchCount":147,"targetSpawnPair3x3StrictEventMatchCount":0,"targetSpawnCenterPairTargetMapMatchCount":0,"targetSpawnLow3x3TargetMapMatchCount":0,"targetSpawnPair3x3TargetMapMatchCount":0,"targetSpawnLow3x3TargetLinkedMatchCount":0,"targetSpawnLow3x3ConfirmedReviewMatchCount":1,"targetSpawnLow3x3RejectedReviewMatchCount":19,"targetSpawnLow3x3OwnerPairs":[{"owner":"map2_03l->map2_01c,map2_13c","count":45},{"owner":"map1_02b->map1_01a","count":20},{"owner":"map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e","count":20},{"owner":"map2_03l->map2_01c,map2_13c,map3_01f","count":15},{"owner":"map2_03l->map2_01c,map2_13c,map7_05h","count":15},{"owner":"map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l","count":14},{"owner":"map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p","count":7},{"owner":"map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o","count":6},{"owner":"map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i","count":5}],"targetSpawnLow3x3GenericOnly":true,"allTargetSpawnCenterPairMatchesZero":true,"allTargetSpawnPair3x3MatchesZero":true,"allTargetSpawnTargetMapStrictEventsZero":true,"centerPairRejectedReviewMatchCount":11,"allCenterPairMatchesRejectedReview":true,"targetLinkedStrictEventMatchCount":0,"directSourceTargetStrictEventMatchCount":0,"routeExitPointCandidateCount":0,"currentPairSelectorAdjacencyOnly":true,"edgeTriggerPromotionAllowed":false,"edgeTriggerPromotionStatus":"blocked-generic-edge-trigger-unproven","sourceSaveLoadClassification":"source-ready-adaptive-exit-no-route","sourceSaveLoadSummary":"sourceSaveLoad=class=source-ready-adaptive-exit-no-route, load=None/None:-, loadPublic=-, loadSource=False, loadRouteCurrent=False/False, coord=None/None:-, coordPublic=-, coordSourceStart=False/False, exit=7923/5:50:0,48:13,0:0, exitPublic=0:0, exitSource=True, exitCandidateOutside=False/False, exitRouteCurrent=False/False, adaptive=1881/4/4, adaptiveCandidateOutside=False/False, adaptiveRouteCurrent=False/False, adaptiveTrail=1476/4/4, adaptiveTrailCandidateOutside=False/False, adaptiveTrailRouteCurrent=False/False, readyDivert=source-ready-path-diverts-to-48:13-before-exit-candidates, readyPaths=8/0/0, firstNonSource=48:13, firstNonSourceCounts={\"48:13\":8}, diversionContext=non-route-selector-adjacency-only, diversionSelector=48:13, diversionMaps=map2_04l,map2_05e, diversionAdjacency=1/1/0/0, diversionCurrentProof=0, strictProof=False, selectedRootProof=False, routeEvidence=False, status=blocked","sourceSaveLoadStrictSourceHotspotProofFound":false,"sourceSaveLoadRoutePromotionEvidenceFound":false,"sourceSaveLoadExitPathSampleCount":7923,"sourceSaveLoadExitPathSourceSaveObserved":true,"sourceSaveLoadExitPathCandidateObserved":false,"sourceSaveLoadExitPathOutsideObserved":false,"sourceSaveLoadExitPathReachedRouteSelector":false,"sourceSaveLoadReadyPathDiversionClassification":"source-ready-path-diverts-to-48:13-before-exit-candidates","sourceSaveLoadReadyPathCount":8,"sourceSaveLoadReadyPathRouteOrCurrentCount":0,"sourceSaveLoadReadyPathCandidateOrOutsideCount":0,"sourceSaveLoadReadyPathDominantNonRouteSelector":"48:13","sourceSaveLoadDiversionSelectorClassification":"non-route-selector-adjacency-only","sourceSaveLoadDiversionSelector":"48:13","sourceSaveLoadDiversionSelectorFieldMaps":["map2_04l","map2_05e"],"sourceSaveLoadDiversionSelectorInRoutePair":false,"sourceSaveLoadDiversionSelectorContainsSourceMap":false,"sourceSaveLoadDiversionSelectorContainsTargetMap":false,"sourceSaveLoadDiversionSelectorSceneAdjacencyRowCount":1,"sourceSaveLoadDiversionSelectorSceneAdjacencySelectorOnlyPairCount":1,"sourceSaveLoadDiversionSelectorSceneAdjacencyStrictEventBackedCount":0,"sourceSaveLoadDiversionSelectorSceneAdjacencyConfirmedReviewBackedCount":0,"sourceSaveLoadDiversionSelectorSelectedPointerRootHex":"0x00500000","sourceSaveLoadDiversionSelectorSelectedPointerCurrentProofCount":0,"sourceSaveLoadDiversionSelectorRoutePromotionEvidenceFound":false},"routePromotionSelectedRootGateEvidence":{"selectedRootExecutionRefFound":false,"proofFound":false,"failedSelectedRootGateIds":["save-loader-selected-root","save-selector-dispatch-table-anchor","static-current-root-references","selected-pointer-hook-prerequisites","global-opcode-07-08-09-selected-pointer-paths","current-root-writer-paths","runtime-selected-pointer-probes","constructed-selector-2:0-diagnostic-exclusion"],"missingEvidence":["captured gameplay savedat with save bytes 0x0002=0x02 and 0x0003=0x00","runtime watchpoint/poll proof that 0x0059de30 becomes 0x00540714 on the route path","static or VM control-flow proof that a non-current root selects/stores the current 2:0 root/range","runtime/control-flow proof that the current stream is interpreted through the 0x00440720 save-selector slice","strict map1_01a source hotspot remains required even after selector 2:0 evidence"],"selectedRootExecutionRejectionClassification":"selected-root-no-real-selector-no-execution-ref-diagnostic-excluded","selectedRootExecutionRejection":{"classification":"selected-root-no-real-selector-no-execution-ref-diagnostic-excluded","proofFound":false,"noRealSelectedRoot":true,"noStaticExecutionRef":true,"hooksAreUnprovenTraceTargets":true,"dispatchIsStaticSliceOnly":true,"noNonCurrentOpcodeProducer":true,"currentWritersAreInternalOnly":true,"runtimeHasNoRealRouteHit":true,"constructedDiagnosticExcluded":true,"realSaveCounts":{"validRealCandidateCount":0,"currentSelectorRealSaveCount":0,"selectedPointerRealSaveCount":0,"routePairRealSaveCount":0,"routePromotionRealSaveCount":0,"syntheticDiagnosticExcluded":true},"staticRefCounts":{"currentCodeRefCount":0,"currentSelectorRootTextRefCount":0,"currentSecondLevelTableTextRefCount":0,"currentFrontierReaderRefCount":0},"hookCounts":{"traceHookPointCount":6,"routePrerequisiteUnprovenCount":6,"hookSelfProvingCount":0,"hookPromotingCount":0,"hookWindowScannedRefCount":6,"hookWindowRouteSpecificHitCount":0,"hookWindowAllRouteSpecificZero":true,"hookHandlerCallGraphClassification":"selected-pointer-handler-callgraph-generic-only-contrast","hookHandlerCallGraphProofFound":false,"hookHandlerCallGraphRouteContextFound":false,"hookHandlerCallGraphExpectedContextHitCount":7,"hookHandlerCallGraphReachableFunctionCount":15,"hookHandlerCallGraphDirectCallEdgeCount":27,"hookHandlerCallGraphDepthSensitivityProofAbsentAcrossCheckedDepths":true,"hookHandlerEncodedTargetClassification":"no-encoded-route-target-scalars-in-handler-graph","hookHandlerEncodedTargetRawScalarCandidateCount":0,"hookHandlerEncodedTargetRouteProofRawScalarCandidateCount":0,"hookHandlerEncodedTargetRouteContextRawScalarCandidateCount":0,"hookHandlerEncodedTargetPromotingCandidateCount":0},"dispatchCounts":{"saveSelectorHandlerTableHex":"0x00440720","saveSelectorSliceOffsetHex":"0x7a","saveSelectorDirectDwordRefCount":0,"saveSelectorIndexedDispatchCount":0,"dynamicIndexedDispatchRowCount":3,"dynamicScopeTableCallbackCount":3,"dynamicSaveSelectorTableImmediateNearCount":0,"saveSelectorTableBaseArithmeticRowCount":116,"saveSelectorTableBaseArithmeticCandidateCount":0,"saveSelectorTableBaseArithmeticCandidateFound":false,"routeRelevantSliceRequiresTableBaseSwitchCount":6,"routeRelevantSliceDataDescriptorGenericByteReachableCount":0,"saveSelectorSliceDirectRuntimeDispatchProofFound":false,"selectedRootExecutionDispatchRefFound":false},"opcodeCounts":{"nonCurrentRootProducerCounts":[0,0,0],"nonCurrentRangeProducerCounts":[0,0,0],"currentInternalOpcode09CurrentRangeStoreCount":6,"currentInternalOpcode08NearestCurrentRangeProducerCount":35,"promotingSelectedPointerPathCount":0},"runtimeCounts":{"pollSampleCount":1550,"pollObservedSelectors":["8:0"],"preludePollSampleCount":491,"preludePollObservedSelectors":["8:0","50:0"],"longPollSampleCount":1928,"longPollObservedSelectors":["8:0","50:0"],"latePollSampleCount":1122,"latePollObservedSelectors":["8:0","50:0"],"anyRuntimePollReachedRouteSelector":false,"constructedDiagnosticPollReachedRouteSelector":true},"diagnosticCounts":{"excludedFromSelectedRootExecutionProof":true,"notRoutePromotionProof":true,"runtimePollObservedSelectors":["2:0","10:0"],"followupSelector":"10:0","followupAliasContainsSource":false,"followupAliasContainsTarget":true,"aliasToCurrentExecutionLikeBridgeFound":false,"exactTraceStopReasons":["no-fixed-advance"]}},"gateRowCount":8,"gateRows":[{"gate":"save-loader selected root","status":"missing-current-selector","evidence":"real=0; selector2:0=0; selectedPointer=0; routePair=0; syntheticExcluded=True","impact":"no real captured save currently selects 2:0 / 0x00540714"},{"gate":"save-selector dispatch table anchor","status":"static-slice-only","evidence":"generalTable=0x00440538; saveTable=0x00440720; sliceOffset=0x7a; genericDispatches=1; saveTableRefs=0; saveDispatches=0; dynamicDispatches=3/3/0; tableBaseArithmetic=116/0; tableBaseSwitch=6/0; selectedPointerHandlers=3; handlersVerified=True; sliceRuntimeProof=False; routeDescriptorRows=5; rawGeneralDefaultRows=2; descriptorDependsOnSlice=True; dispatchRef=False","impact":"the 0x00440720 decoder slice and descriptor boundaries are statically anchored but do not prove selector 2:0 execution"},{"gate":"static current-root references","status":"table-only-no-text-ref","evidence":"currentCodeRefs=0; rootTextRefs=0; secondLevelTextRefs=0; readerRefs=0; writerHooks=4; readerHooks=2","impact":"current selector 2:0 is table data, not directly code-referenced route execution"},{"gate":"selected-pointer hook prerequisites","status":"trace-targets-prerequisites-unproven","evidence":"hooks=6; present=6; writers=4; readers=2; textRefs=6; prereqUnproven=6; selfProving=0; promoting=0; windows=6/0; windowRefs=0/0/0/0/0/0; handlerCallGraph=selected-pointer-handler-callgraph-generic-only-contrast; handlerGraphRoots/Fns/Calls=4/15/27; handlerGraphRoute/current/record/selector/branch=0/0/0/0/0; handlerGraphGeneric=6/1; handlerGraphDepth=4/True/True; handlerEncoded=0/0/0/0; handlerEncodedClass=no-encoded-route-target-scalars-in-handler-graph; mechanisms=save-loader-writer,opcode07-indexed-writer,opcode08-zero-check,opcode08-activator-read,opcode09-mode0-writer,opcode09-mode1-writer; requirementKinds=requires-captured-save-selector,requires-indexed-slot-current-root,requires-prior-selected-pointer-current-root,requires-current-stream-in-current-range,requires-stream-operand-in-current-range","impact":"the selected-pointer text refs are trace hook targets; their prerequisites and handler call graph still do not reach selector 2:0 route evidence"},{"gate":"global opcode 07/08/09 selected-pointer paths","status":"no-non-current-producer","evidence":"roots=28; op7/8/9=3238/3180/316; nonCurrentRoot=0/0/0; nonCurrentRange=0/0/0; currentInternal=6/35; promoters=0","impact":"source/predecessor roots do not select or store the current 2:0 root/range"},{"gate":"current-root writer paths","status":"current-internal-only","evidence":"writers=4; starts=0x00542470,0x005428b4; selectedStores=0x0054248c; activators=0x0054246c; outOfRangeHelper=True; proofFound=False; failedGates=source-predecessor-current-producer,non-current-selected-pointer-store,runtime-branch-state-slot-proof,selected-root-execution; missingEvidenceCount=4","impact":"stores inside selector 2:0 cannot prove how normal route execution enters selector 2:0"},{"gate":"runtime selected-pointer probes","status":"no-real-selector-2:0-observed","evidence":"memory=8:0; input=8:0->50:0; keySeq=False; pollSamples=1550; pollObserved=8:0; pollRoute=False; preludePollSamples=491; preludePollObserved=8:0,50:0; preludePollRoute=False; longPollSamples=1928; longPollObserved=8:0,50:0; longPollRoute=False; latePollSamples=1122; latePollObserved=8:0,50:0; latePollRoute=False; routeWatchSamples=1123; routeWatchObserved=8:0,50:0; routeWatchValues=opcode24Mode1Source=0x00x1123; opcode24CurrentObjectIndex=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340; routeWatchRoute=False; saveLoadPollSamples=None; saveLoadPollObserved=-; saveLoadPollRoute=None; multiSaveLoadPollSamples=None; multiSaveLoadPollPublicSelectors=-; multiSaveLoadPollObserved=-; multiSaveLoadPollPublicHit=None; multiSaveLoadPollRoute=None; caseAliasMultiSaveLoadPollSamples=None; caseAliasMultiSaveLoadPollObserved=-; caseAliasMultiSaveLoadPollPublicHit=None; caseAliasMultiSaveLoadPollRoute=None; inputPathCaseAliasMultiSaveLoadPollSamples=None; inputPathCaseAliasMultiSaveLoadPollObserved=-; inputPathCaseAliasMultiSaveLoadPollPublicHit=None; inputPathCaseAliasMultiSaveLoadPollRoute=None; predecessorDirectionSweepPollSamples=3380; predecessorDirectionSweepPollKind=public predecessor direction sweep; predecessorDirectionSweepPollObserved=50:0,19:1,1:0; predecessorDirectionSweepPollObservedPublic=1:0; predecessorDirectionSweepPollPublicHit=True; predecessorDirectionSweepPollRoute=False; predecessorDirectionSweepPollValues=opcode24Mode1Source=0x00x3380; opcode24CurrentObjectIndex=0x00x3380; opcode24RuntimeFlag=0x00x3380; predecessorLeftOverrunActivationSweepPollSamples=2299; predecessorLeftOverrunActivationSweepPollKind=public predecessor left-overrun activation sweep; predecessorLeftOverrunActivationSweepPollObserved=50:0,19:1,1:0; predecessorLeftOverrunActivationSweepPollObservedPublic=1:0; predecessorLeftOverrunActivationSweepPollPublicHit=True; predecessorLeftOverrunActivationSweepPollRoute=False; predecessorLeftOverrunActivationSweepPollValues=opcode24Mode1Source=0x00x2299; opcode24CurrentObjectIndex=0x00x2299; opcode24RuntimeFlag=0x00x2299; predecessorRouteAttempt=files=13; seq=60; samples=59816; publicFiles=11; routeHits=0; currentRootHits=0; dominantDiversion=19:1; diversionContexts=3/2/1; diversionRouteEvidence=False; publicContext=public-predecessor-target-side-non-promoting; status=blocked; syntheticSelector20PollSamples=374; syntheticSelector20PollObserved=8:0; syntheticSelector20PollObservedStaged=-; syntheticSelector20PollStagedHit=False; syntheticSelector20PollRoute=False; patchedPublicSelector20PollSamples=375; patchedPublicSelector20PollKind=patched public-base diagnostic; patchedPublicSelector20PollObserved=2:0,10:0; patchedPublicSelector20PollRoute=True; constructedDiagnosticRoute=True; fileIoAttachLoadBackend=strace-attach; fileIoAttachLoadPidRuns=8/8; fileIoAttachLoadKeyWrites=8/8; fileIoAttachLoadUsable=True; fileIoAttachLoadSavedat1=False; fileIoAttachCaseAliasLoadBackend=strace-attach; fileIoAttachCaseAliasLoadPidRuns=8/8; fileIoAttachCaseAliasLoadKeyWrites=8/8; fileIoAttachCaseAliasLoadUsable=True; fileIoAttachCaseAliasLoadSavedat1=False; anyPollRoute=False","impact":"real/public runtime probes have not observed 0x0059de30 reaching 0x00540714; the constructed selector 2:0 hit is diagnostic-only"},{"gate":"constructed selector 2:0 diagnostic exclusion","status":"diagnostic-excluded","evidence":"notRouteProof=True; runtimeSamples=375; observed=2:0,10:0; activeOrder=0x01/0x00; activeDescriptor=0x004f867c; followup=10:0@0x0053c4a4; followupSource=False; followupTarget=True; followupPublic=False; bridgeExec=False; exactPointers=0x00540540; traceStops=no-fixed-advance; branchStateSamples=374; branchStateRouteSamples=164; branchStateObserved=2:0,10:0,50:0; branchStateActive=0x01; branchStateAllZero=True; branchStateMatchesFill=False; exitCandidates=None; exitRouteSides=-; exitBranchNonzero=-; exitCandidateStatus=None; leftStabilitySamples=679; leftStabilityRouteSeq=left-load-right; leftStabilityNonRouteSeq=left-load-only,left-load-left; leftStabilityObserved=50:0,10:0,2:0; leftStabilityRouteHits=125; leftStabilityOpcode24AllZero=True; leftStabilityRepro=not-reproduced; leftRecheckSamples=680; leftRecheckObserved=50:0; leftRecheckRouteHits=0; leftActiveOrderRecheckSamples=679; leftActiveOrderRecheckObserved=50:0; leftActiveOrderRecheckRouteHits=0; leftActiveOrderCount=0x00x679; leftStabilityStatus=diagnostic-only","impact":"constructed save bytes can exercise the load path, but are excluded from selected-root execution proof"}],"remainingProofCount":5,"remainingProofs":["captured gameplay savedat with save bytes 0x0002=0x02 and 0x0003=0x00","runtime watchpoint/poll proof that 0x0059de30 becomes 0x00540714 on the route path","static or VM control-flow proof that a non-current root selects/stores the current 2:0 root/range","runtime/control-flow proof that the current stream is interpreted through the 0x00440720 save-selector slice","strict map1_01a source hotspot remains required even after selector 2:0 evidence"],"evidenceRefCount":8,"evidenceRefs":[{"path":"out/save_selector_real_savedata_evidence_gap.json","fields":["validCandidateCount","requiredSelectorBytePairRealSaveCount","syntheticDiagnosticExcluded"]},{"path":"out/save_selector_selected_pointer_usage.json","fields":["selectedPointerGlobalHex","currentSelectorRootHex","currentCodeRefCount","runtimeTraceHookPointCount","promotionStatus"]},{"path":"out/save_selector_dispatch_table_context.json","fields":["saveSelectorHandlerTableHex","saveSelectorSliceOffsetHex","selectedRootExecutionDispatchRefFound"]},{"path":"out/save_selector_global_selected_pointer_paths.json","fields":["nonCurrentOpcode07CurrentRootSelectCount","nonCurrentOpcode09CurrentRootStoreCount","nonCurrentOpcode08NearestCurrentRootProducerCount","selectedRootExecutionRefFound"]},{"path":"out/save_selector_current_writer_paths.json","fields":["writerCount","currentInternalOnly","promotionStatus"]},{"path":"out/runtime_selected_pointer_poll.json","fields":["sampleCount","observedSelectors","reachedRouteSelector"]},{"path":"out/runtime_patched_public_selector_2_0_input_path_case_alias_poll.json","fields":["sampleCount","observedSelectors","reachedRouteSelector","constructedDiagnosticExcluded"]},{"path":"out/runtime_predecessor_route_attempt_context.json","fields":["sourceFileCount","totalSequenceCount","totalSampleCount","routeSelectorHitCount","currentRootHitCount","dominantDiversionSelector","diversionRoutePromotionEvidenceFound"]}],"saveLoaderGateStatus":"missing-current-selector","staticReferenceGateStatus":"table-only-no-text-ref","hookPrerequisiteGateStatus":"trace-targets-prerequisites-unproven","dispatchTableGateStatus":"static-slice-only","opcodeSelectedPointerGateStatus":"no-non-current-producer","currentWriterPathGateStatus":"current-internal-only","runtimeProbeGateStatus":"no-real-selector-2:0-observed","diagnosticExclusionGateStatus":"diagnostic-excluded","hookTraceHookPointCount":6,"hookPrerequisiteUnprovenCount":6,"hookSelfProvingCount":0,"hookPromotingCount":0,"hookWindowScannedRefCount":6,"hookWindowRouteSpecificHitCount":0,"hookWindowAllRouteSpecificZero":true,"hookPrerequisitesAllUnproven":true,"hookEncodedClassification":"no-encoded-route-target-scalars-in-handler-graph","hookEncodedRawScalarCandidateCount":0,"hookEncodedRouteProofRawScalarCandidateCount":0,"hookEncodedRouteContextRawScalarCandidateCount":0,"hookEncodedPromotingCandidateCount":0,"runtimeProbeAnyPollRoute":false,"runtimeProbeConstructedDiagnosticRoute":true,"diagnosticExcludedFromProof":true,"routePairEvidenceRowCount":11,"routePairEvidenceRows":[{"kind":"route-pair-current-entries","status":"corrected-reader-trace-only","detail":"indices=6,8; corrected=6,8; readerReachableByCorrectedNonNegativeIndex=True"},{"kind":"negative-wrapper-reader","status":"outside-current-root-run","detail":"indices=-12; wrapperEntry=0x005429ac; wrapper=0x00542a04; child=0x00542ae8; entryRunRefs=0; opcode5aFallthroughRefs=1; fallthroughNonCodeRefs=1; fallthroughHandlers=0x005429ac/0xac->0x00000003/-"},{"kind":"route-entry-pointer-source-refs","status":"non-promoting-fallthrough-only","detail":"routeEntryIdx=-13,-12,6,8; entryRefs=3; textRefs=0; promotingRefs=0; opcode5aFallthroughRefs=3; fallthroughNonCodeRefs=3; nonNegPromoting=0; negativeReaderPromoting=0; encodedRaw=3; encodedBranch=0; encodedModeled=0; encodedPromoting=0; encodedClass=raw-encoded-entry-anchor-scalars-nonpromoting; handlers=0x005429ac/0xac->0x00000003/-,0x005429f4/0xf4->0x00000004/-,0x005429fc/0xfc->0x004409b8/.data; descriptorTableOnly=True; childDescriptorWordOnly=True"},{"kind":"global-leaf-table-context","status":"frontier-leaf-negative-only","detail":"selectorTables=35; fieldEntries=261; negative/nonNegative=136/125; currentRoutePairIdx=-13,-12,6,8; frontierLeafOnlyNegative=True"},{"kind":"root-table-direct-ref-context","status":"data-only-no-text-ref","detail":"tableWindow=0x005429a8..0x00542a10; tableRefs=14/0; sections={'.data': 14}; routeEntryTextRefs=0; routeLeafTextRefs=0; frontierLeafTextRefs=0; frontierReaderTextRefs=0; frontierReaderRefs=0"},{"kind":"opcode07-direct-entry-selection","status":"absent","detail":"rowCount=33; indexMode=zero-extended-u8; leafWindow=0; negative=0; current=0; wrapper=0; directFrontier=0"},{"kind":"opcode08-activation-window","status":"source-predecessor-current-producer-absent","detail":"sourcePredecessorActivators=162; currentRoot=0; currentRange=0; ownRange=24; scriptScalar=107; currentInternalRange=24; sourcePredBuckets=0:0:op8=31,currentRootRange=0/0,own=9,script=21,unreadable=1;1:0:op8=131,currentRootRange=0/0,own=15,script=86,unreadable=30; currentContrast=2:0:op8=67,currentRootRange=0/24,own=24,script=39,unreadable=4; promotes=False"},{"kind":"opcode09-selected-pointer-store","status":"source-predecessor-current-store-absent","detail":"sourcePredecessorRows=17; supported=12; unsupported=5; unsupportedModes=0x6c,0xfe; pointerCollisions=5; currentRangeStores=0; activationLinkedCollisions=13; collisionRows=1:0@0x0047da5c=0x00476c09/0x6c/.data;1:0@0x0047dad4=0x00476c09/0x6c/.data;1:0@0x0047dbcc=0x00476c09/0x6c/.data;1:0@0x0047dc88=0x00476c09/0x6c/.data;1:0@0x0047f2ac=0x0041fe09/0xfe/.text; promotes=False"},{"kind":"corrected-trace-normal-selection-gap","status":"corrected-trace-not-normal-selection-proof","detail":"correctedReaderGrounded=True; nonNegativeSelectable=False; nonNegativeCorrectedReachable=True; frontierLeafNegativeOnly=True; opcode07DirectAbsent=True; sourcePredCurrentProducers=0; wrapperExec=False; selectedRootRef=False"},{"kind":"selected-root-execution","status":"missing","detail":"selectedRootExecutionRefFound=False; currentRoot=0x00540714; selectedPointerGlobal=0x0059de30; promotion=blocked"},{"kind":"strict-hotspot","status":"missing","detail":"leafIndexStrict=False; frontierStrict=False; frontierClusterClass=current frontier selector-only cluster"}],"routePairEvidenceRefs":[{"path":"out/save_selector_leaf_index_space.json","fields":["routeRelevantRows","routePairCurrentDescriptorIndices","routePairCorrectedTraceDescriptorIndices","readerBearingNegativeIndices","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex"]},{"path":"out/save_selector_leaf_table_global_context.json","fields":["selectorTableCount","fieldEntryRowCount","currentSelectorRoutePairIndices","currentFrontierLeafOnlyNegative"]},{"path":"out/save_selector_opcode08_activation_windows.json","fields":["sourceOrPredecessorOpcode08ActivatorCount","sourceOrPredecessorCurrentRootProducerCount","sourceOrPredecessorCurrentRangeProducerCount","currentInternalCurrentRangeProducerCount","contextWindows"]},{"path":"out/save_selector_opcode07_indexed_pointers.json","fields":["opcode07IndexMode","rowCount","selectedLeafTableWindowSlotCount","selectedNegativeRootEntrySlotCount","selectedCurrentRootEntrySlotCount","selectedWrapperEntrySlotCount","directFrontierTargetCount"]},{"path":"out/save_selector_opcode09_pointer_collisions.json","fields":["sourceOrPredecessorOpcode09RowCount","sourceOrPredecessorSupportedOpcode09RowCount","sourceOrPredecessorUnsupportedModeOpcode09RowCount","sourceOrPredecessorCurrentRangeStoreCount","rows"]},{"path":"out/save_selector_wrapper_descriptor_context.json","fields":["wrapperEntryHex","wrapperDescriptorHex","wrapperChildPointerHex","wrapperRefBeforeCurrentRoot","wrapperEntryRefs","wrapperEntryPromotingRefCount"]},{"path":"out/save_selector_selected_root_execution_gap.json","fields":["selectedRootExecutionRefFound","currentRootHex","selectedPointerGlobalHex","runtimeProbeGate","diagnosticExclusionGate","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_current_root_frontier_paths.json","fields":["strictHotspotFound","frontierClusterClass","frontierClusterEventCount","frontierClusterSelectorRefCount"]},{"path":"out/save_selector_route_pair_index_source_gap.json","fields":["routeEntryIndices","entryPointerRefCount","entryPointerTextRefCount","entryPointerPromotingRefCount","encodedEntryAnchorRawScalarCandidateCount","encodedEntryAnchorPromotingCandidateCount","higherLevelIndexSourceProven"]},{"path":"out/save_selector_leaf_table_context.json","fields":["selector","rootHex","rootTablePointerHex","tableWindowHex","frontierLeafHex","frontierReaderHex"]}],"routePairEvidenceRefCount":10,"routePairEntryRowCount":2,"routePairEntryRows":[{"rootRelativeIndex":6,"entryVaHex":"0x005429f4","insideCurrentRootEntryRun":true,"descriptorHex":"0x00542ac0","childPointerHex":"0x00542e10","descriptorFieldMaps":["map1_01a","map2_02d"],"descriptorNestedFieldMaps":["map2_15j"],"childFieldMaps":[],"descriptorHasRoutePair":true,"childHasRoutePair":false,"descriptorTraceContainsFrontierReader":false,"childTraceContainsFrontierReader":false,"correctedDescriptorTraceContainsFrontierReader":true,"correctedDescriptorFrontierReaderStep":17,"effectiveDescriptorTraceContainsFrontierReader":true},{"rootRelativeIndex":8,"entryVaHex":"0x005429fc","insideCurrentRootEntryRun":true,"descriptorHex":"0x00542ad4","childPointerHex":"0x00542e48","descriptorFieldMaps":["map1_01a","map2_02d"],"descriptorNestedFieldMaps":["map2_16j"],"childFieldMaps":[],"descriptorHasRoutePair":true,"childHasRoutePair":false,"descriptorTraceContainsFrontierReader":false,"childTraceContainsFrontierReader":false,"correctedDescriptorTraceContainsFrontierReader":true,"correctedDescriptorFrontierReaderStep":12,"effectiveDescriptorTraceContainsFrontierReader":true}],"routePairNegativeReaderRowCount":1,"routePairNegativeReaderRows":[{"rootRelativeIndex":-12,"entryVaHex":"0x005429ac","insideCurrentRootEntryRun":false,"descriptorHex":"0x00542a04","childPointerHex":"0x00542ae8","descriptorFieldMaps":[],"descriptorNestedFieldMaps":[],"childFieldMaps":["map1_01a","map2_02d","map2_18d"],"descriptorHasRoutePair":false,"childHasRoutePair":true,"descriptorTraceContainsFrontierReader":false,"childTraceContainsFrontierReader":true,"correctedDescriptorTraceContainsFrontierReader":false,"correctedDescriptorFrontierReaderStep":null,"effectiveDescriptorTraceContainsFrontierReader":false}],"routePairRemainingProofs":["prove selected-root execution reaches selector 2:0 on the normal route path","prove a higher-level selector/table index selects entry 6 or 8","or prove wrapper entry -12 executes into 0x00542ae8 on the normal route path","find a strict map1_01a source coordinate or hotspot linked to map2_02d"],"wrapperEvidenceRowCount":13,"wrapperEvidenceRows":[{"kind":"current-root-table-window","status":"route-pair-descriptors-present","detail":"root=0x00540714; table=0x005429dc; insideRootRows=10; routePairIndices=6,8"},{"kind":"negative-wrapper-entry","status":"outside-current-root-run","detail":"wrapperEntry=0x005429ac; wrapper=0x00542a04; child=0x00542ae8; childIsFrontier=True; frontierLeaf=0x00542ae8; reader=0x00542b0c"},{"kind":"wrapper-reference-context","status":"non-promoting","detail":"wrapperEntryRefs=1; currentRootRangeRefs=1; currentRootEntryRunRefs=0; opcode5aFallthroughRefs=1; fallthroughNonCodeRefs=1; fallthroughHandlers=0x005429ac/0xac->0x00000003/-; promotingRefs=0; currentRootReferencesWrapper=False"},{"kind":"global-leaf-table-context","status":"frontier-leaf-negative-only","detail":"selectorTables=35; fieldEntries=261; negative/nonNegative=136/125; currentRoutePairIdx=-13,-12,6,8; frontierLeafOnlyNegative=True"},{"kind":"root-table-direct-ref-context","status":"data-only-no-text-ref","detail":"tableWindow=0x005429a8..0x00542a10; tableRefs=14/0; sections={'.data': 14}; routeEntryTextRefs=0; routeLeafTextRefs=0; frontierLeafTextRefs=0; frontierReaderTextRefs=0; frontierReaderRefs=0"},{"kind":"route-pair-reader-trace","status":"corrected-trace-only","detail":"routePairDescriptors=2; correctedReaderHits=2; geometryExitHits=0; readerNegativeOnly=True"},{"kind":"opcode07-leaf-selection","status":"absent","detail":"rowCount=33; indexMode=zero-extended-u8; selectedWrapper=0; selectedLeafWindow=0; selectedNegative=0; directFrontier=0"},{"kind":"opcode08-source-predecessor-activation","status":"current-producer-absent","detail":"activators=162; currentRoot=0; currentRange=0; ownRange=24; scriptScalar=107; currentInternalRange=24"},{"kind":"opcode09-source-predecessor-store","status":"current-store-absent","detail":"rows=17; supported=12; unsupported=5; unsupportedModes=0x6c,0xfe; currentRangeStores=0; sourcePredCurrentProducers=0"},{"kind":"corrected-trace-normal-selection-gap","status":"corrected-trace-not-normal-selection-proof","detail":"routePairReaderTraceGrounded=True; readerNegativeOnly=True; frontierLeafNegativeOnly=True; opcode07SelectionAbsent=True; sourcePredCurrentProducers=0; runtimeSelection=False; wrapperExec=False; selectedRootRef=False"},{"kind":"selected-root-execution","status":"missing","detail":"selectedRootExecutionRefFound=False; runtimeSelectionProven=False; selectedPointerGlobal=0x0059de30; currentRoot=0x00540714"},{"kind":"constructed-diagnostic-recheck","status":"diagnostic-only-not-reproduced","detail":"runtimePoll=375 observed=2:0,10:0 route=True; leftStability=679 routeHits=125 repro=not-reproduced; leftRecheck=680 routeHits=0; leftActiveOrder=679 routeHits=0 activeOrderCount=0x00x679; excluded=True"},{"kind":"strict-hotspot","status":"missing","detail":"strictHotspotFound=False; frontierClusterClass=current frontier selector-only cluster; frontierClusterEventCount=0; frontierClusterSelectorRefCount=34"}],"wrapperEvidenceRefs":[{"path":"out/save_selector_leaf_table_context.json","fields":["selector","rootHex","rootTablePointerHex","frontierLeafRefIsDirectRootTableEntry","runtimeSelectionProven","promotionStatus"]},{"path":"out/save_selector_leaf_table_global_context.json","fields":["selectorTableCount","fieldEntryRowCount","currentSelectorRoutePairIndices","currentFrontierLeafOnlyNegative"]},{"path":"out/save_selector_wrapper_descriptor_context.json","fields":["wrapperDescriptorHex","wrapperEntryHex","wrapperChildPointerHex","wrapperRefBeforeCurrentRoot","currentRootReferencesWrapper","wrapperEntryPromotingRefCount"]},{"path":"out/save_selector_route_pair_descriptor_context.json","fields":["currentRoutePairDescriptorCount","currentRoutePairDescriptorIndices","currentRoutePairCorrectedTraceReachesReaderCount","readerBearingCurrentEntryCount","readerBearingNegativeEntryCount"]},{"path":"out/save_selector_opcode07_indexed_pointers.json","fields":["opcode07IndexMode","rowCount","selectedWrapperEntrySlotCount","selectedLeafTableWindowSlotCount","selectedCurrentRootEntrySlotCount","selectedNegativeRootEntrySlotCount","directFrontierTargetCount"]},{"path":"out/save_selector_opcode08_activation_windows.json","fields":["sourceOrPredecessorOpcode08ActivatorCount","sourceOrPredecessorCurrentRootProducerCount","sourceOrPredecessorCurrentRangeProducerCount","currentInternalCurrentRangeProducerCount"]},{"path":"out/save_selector_opcode09_pointer_collisions.json","fields":["sourceOrPredecessorOpcode09RowCount","sourceOrPredecessorSupportedOpcode09RowCount","sourceOrPredecessorUnsupportedModeOpcode09RowCount","sourceOrPredecessorCurrentRangeStoreCount"]},{"path":"out/save_selector_selected_root_execution_gap.json","fields":["selectedRootExecutionRefFound","runtimeSelectionProven","diagnosticExclusionGate","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_current_root_frontier_paths.json","fields":["strictHotspotFound","frontierClusterClass","frontierClusterEventCount","frontierClusterSelectorRefCount"]},{"path":"out/save_selector_merge_execution_gap.json","fields":["selectorMergeExecutionProofFound","selectorMergeGapOpen","promotionStatus"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["rootTableDirectRefContext","routePairEntryExecutionProven","correctedTraceNormalSelectionGapFound","remainingProofs"]}],"wrapperEvidenceRefCount":11,"wrapperRemainingProofs":["prove selected-root execution reaches current selector 2:0 on the normal route path","decode the higher-level table/index path that selects entries 6/8 or negative entry -12","prove wrapper 0x00542a04 executes into frontier leaf 0x00542ae8 in normal route execution","find a strict map1_01a source coordinate or hotspot linked to map2_02d"],"sourceSaveLoadClassification":"source-ready-adaptive-exit-no-route","sourceSaveLoadSelectedRootExecutionProofFound":false,"sourceSaveLoadRoutePromotionEvidenceFound":false,"sourceSaveLoadExitPathSourceSaveObserved":true,"sourceSaveLoadExitPathReachedRouteSelector":false,"sourceSaveLoadExitPathReachedCurrentRoot":false,"sourceSaveLoadReadyPathDiversionClassification":"source-ready-path-diverts-to-48:13-before-exit-candidates","sourceSaveLoadReadyPathCount":8,"sourceSaveLoadReadyPathRouteOrCurrentCount":0,"sourceSaveLoadReadyPathCandidateOrOutsideCount":0,"sourceSaveLoadDiversionSelectorClassification":"non-route-selector-adjacency-only","sourceSaveLoadDiversionSelector":"48:13","sourceSaveLoadDiversionSelectorInRoutePair":false,"sourceSaveLoadDiversionSelectorContainsSourceMap":false,"sourceSaveLoadDiversionSelectorContainsTargetMap":false,"sourceSaveLoadDiversionSelectorSelectedPointerCurrentProofCount":0,"sourceSaveLoadDiversionSelectorRoutePromotionEvidenceFound":false},"routePromotionRuntimeTraceGateEvidence":{"runtimeTraceCanRunNow":false,"proofFound":false,"failedRuntimeTraceGateIds":["runtime-trace-capture-unavailable","stable-watchpoint-session-unavailable","equivalent-selected-root-proof-missing"],"missingEvidence":["stable runtime trace capture session for Hwanse2.exe","watchpoint or breakpoint path that observes selected pointer 0x0059de30 on the route path","equivalent selected-root proof if runtime tracing remains unavailable"],"runtimeTraceEquivalentRejectionClassification":"trace-unavailable-no-equivalent-selected-root-proof-diagnostic-excluded","runtimeTraceEquivalentRejection":{"classification":"trace-unavailable-no-equivalent-selected-root-proof-diagnostic-excluded","proofFound":false,"runtimeTraceCanRunNow":false,"failedRuntimeTraceGateIds":["runtime-trace-capture-unavailable","stable-watchpoint-session-unavailable","equivalent-selected-root-proof-missing"],"missingEvidence":["stable runtime trace capture session for Hwanse2.exe","watchpoint or breakpoint path that observes selected pointer 0x0059de30 on the route path","equivalent selected-root proof if runtime tracing remains unavailable"],"evidenceRefs":[{"path":"out/runtime_trace_execution_probe.json","fields":["canCaptureTraceNow","blockers","probes","promotionStatus","proofFound","runtimeTraceExecutionProofFound","failedRuntimeTraceExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/runtime_memory_snapshot.json","fields":["loadedBaseHex","memory","promotionStatus"]},{"path":"out/runtime_input_path_probe.json","fields":["heldKeyPressedDetected","baselineSelectedPointerContext","finalSelectedPointerContext"]},{"path":"out/runtime_key_sequence_probe.json","fields":["sequenceCount","anyReachedRouteSelectorContext"]},{"path":"out/runtime_key_sequence_prelude_probe.json","fields":["sequenceCount","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_poll.json","fields":["sampleCount","observedSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_prelude_poll.json","fields":["sampleCount","observedSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_long_poll.json","fields":["sampleCount","observedSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_late_poll.json","fields":["sampleCount","observedSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_route_watch_values_poll.json","fields":["sampleCount","observedWatchValues","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_synthetic_selector_2_0_input_path_case_alias_poll.json","fields":["sampleCount","publicSaveSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_selected_pointer_patched_public_selector_2_0_input_path_case_alias_poll.json","fields":["sampleCount","publicSaveSelectors","anyReachedRouteSelectorContext"]},{"path":"out/runtime_save_file_io_probe.json","fields":["backend","inputTraceUsable","anySavedat1DatAccess"]},{"path":"out/runtime_save_file_io_strace_probe.json","fields":["backend","inputTraceUsable","anySavedat1DatAccess"]},{"path":"out/runtime_save_file_io_strace_attach_probe.json","fields":["backend","inputTraceUsable","anySavedat1DatAccess"]},{"path":"out/runtime_save_file_io_strace_attach_load_candidates_probe.json","fields":["backend","inputTraceUsable","anySavedat1DatAccess"]},{"path":"out/runtime_save_file_io_strace_attach_load_candidates_case_alias_probe.json","fields":["backend","inputTraceUsable","anySavedat1DatAccess"]}],"evidenceRefCount":17,"runtimeTraceBlockerCount":6,"runtimeTraceExecutionCanCaptureNow":false,"runtimeTraceExecutionBlockerCount":6,"runtimeTraceExecutionProbeCount":18,"runtimeTraceSummaryBinfmtRegistered":true,"runtimeTraceSummaryBinfmtEnabled":true,"runtimeTraceExecutionBinfmtRegistered":true,"runtimeTraceExecutionVirtualDesktopGdbstubConnectStatus":0,"runtimeTraceExecutionVirtualDesktopGdbstubConnectTimedOut":false,"runtimeTraceExecutionVirtualDesktopGdbstubConnectCrashed":false,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointStatus":0,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointTimedOut":false,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointCrashed":true,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointStatus":0,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointTimedOut":false,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointCrashed":true,"selectedRootExecutionRefFound":false,"selectedRootRuntimeAnyPollRoute":false,"selectedRootConstructedDiagnosticRoute":true,"selectedRootDiagnosticExcludedFromProof":true,"routeWatchReachedRoute":false,"predecessorDirectionSweepReachedRoute":false,"predecessorLeftOverrunActivationSweepReachedRoute":false},"runtimePollReachedRoute":false,"runtimeTraceBlockerCount":6,"runtimeTraceExecutionCanCaptureNow":false,"runtimeTraceExecutionBlockerCount":6,"runtimeTraceExecutionProbeCount":18,"runtimeTraceSummaryBinfmtRegistered":true,"runtimeTraceSummaryBinfmtEnabled":true,"runtimeTraceExecutionBinfmtRegistered":true,"runtimeTraceExecutionWinePrefix":"/home/exedev/.cache/hwanse-wine32","runtimeTraceExecutionGdbMultiarchPath":"/bin/gdb-multiarch","runtimeTraceExecutionVirtualDesktopGdbstubConnectStatus":0,"runtimeTraceExecutionVirtualDesktopGdbstubConnectTimedOut":false,"runtimeTraceExecutionVirtualDesktopGdbstubConnectCrashed":false,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointStatus":0,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointTimedOut":false,"runtimeTraceExecutionVirtualDesktopRelocatedSoftwareBreakpointCrashed":true,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointStatus":0,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointTimedOut":false,"runtimeTraceExecutionVirtualDesktopRelocatedWatchpointCrashed":true,"runtimeRouteWatchPollSampleCount":1123,"runtimeRouteWatchPollReachedRouteSelector":false,"sourceSaveLoadClassification":"source-ready-adaptive-exit-no-route","sourceSaveLoadExitPathSampleCount":7923,"sourceSaveLoadExitPathObservedSelectors":["50:0","48:13","0:0"],"sourceSaveLoadExitPathSourceSaveObserved":true,"sourceSaveLoadExitPathCandidateObserved":false,"sourceSaveLoadExitPathOutsideObserved":false,"sourceSaveLoadExitPathReachedRouteSelector":false,"sourceSaveLoadExitPathReachedCurrentRoot":false,"sourceSaveLoadReadyPathDiversionClassification":"source-ready-path-diverts-to-48:13-before-exit-candidates","sourceSaveLoadReadyPathCount":8,"sourceSaveLoadReadyPathRouteOrCurrentCount":0,"sourceSaveLoadReadyPathCandidateOrOutsideCount":0,"sourceSaveLoadDiversionSelectorClassification":"non-route-selector-adjacency-only","sourceSaveLoadDiversionSelector":"48:13","sourceSaveLoadDiversionSelectorFieldMaps":["map2_04l","map2_05e"],"sourceSaveLoadDiversionSelectorSceneAdjacencyRowCount":1,"sourceSaveLoadDiversionSelectorSceneAdjacencySelectorOnlyPairCount":1,"sourceSaveLoadDiversionSelectorSelectedPointerCurrentProofCount":0,"sourceSaveLoadDiversionSelectorRoutePromotionEvidenceFound":false},"routePromotionExitTargetRankingEvidence":{"sourceMap":"map1_01a","blockedTarget":"map2_02d","returnTarget":"map1_02b","exitCount":4,"blockedTargetExitCount":4,"autoBlockedTargetExitCount":2,"blockedTargetReturnOverlapExitCount":4,"blockedTargetReciprocalExitCount":4,"blockedTargetCoordinateLikeHitCount":3,"coordinatePromotableCount":0,"selectorOutgoingCandidateCount":2,"selectorOutgoingTargets":["map1_02b","map2_02d"],"selectorOutgoingStrictBackedCount":0,"selectorOutgoingConfirmedBackedCount":0,"selectorOutgoingOnlyCount":2,"blockedTargetSelectorOccurrenceCount":3,"returnTargetSelectorOccurrenceCount":2,"confirmedIncomingCount":2,"promotionStatus":"blocked","selectorOutgoingRows":[{"target":"map1_02b","occurrenceCount":2,"selectors":["0:0"],"leafPointers":["0x00503260","0x0050327c"],"sourceRecords":["0x005032d8"],"targetRecords":["0x00503350"],"strictEventBacked":false,"confirmedReviewBacked":false,"selectorAdjacencyOnly":true,"classification":"selector-adjacency-only"},{"target":"map2_02d","occurrenceCount":3,"selectors":["2:0"],"leafPointers":["0x00542ac0","0x00542ad4","0x00542ae8"],"sourceRecords":["0x00542b44"],"targetRecords":["0x00542bac"],"strictEventBacked":false,"confirmedReviewBacked":false,"selectorAdjacencyOnly":true,"classification":"selector-adjacency-only"}],"blockedTargetRows":["map2_02d"],"confirmedIncomingRows":[{"source":"map1_02b","target":"map1_01a","x":11,"y":12,"spawnX":11,"spawnY":11,"recordVaHex":"0x00503350"},{"source":"map1_02b","target":"map1_01a","x":11,"y":13,"spawnX":11,"spawnY":11,"recordVaHex":"0x00503350"}],"remainingProofs":["strict map1_01a source coordinate or hotspot","runtime/control-flow proof that the selected exit targets map2_02d","real selector 2:0 savedata or equivalent runtime trace"]},"routePromotionExternalProofHandoffUrl":"route_promotion_external_proof_handoff.html","routePromotionExternalProofHandoffExpectedPackageIds":["captured-selector-2-0-savedata","runtime-trace-or-equivalent-selected-root-proof","strict-source-hotspot-review","selected-root-execution-proof","current-leaf-wrapper-proof","predecessor-fill-order-proof","selector-merge-proof","opcode20-gate-base-proof","opcode24-runtime-producer-proof"],"routePromotionExternalProofHandoffRegenerateCommand":"python3 tools/refresh_savedata_route_proof.py --search-root <file-or-dir-or-zip>"}],"nextReviewCandidateCount":10,"saveSelectorFrontierCount":1,"routeNextActionCount":8,"openNextActionCount":6,"blockedNextActionCount":2,"routeNextActions":[{"priority":1,"status":"open","task":"Prove predecessor fill-site execution/order before the current reader.","why":"The public predecessor runtime path reaches selector 1:0 but leaves secondaryBranchState all zero; local/static reset evidence is closed, so the next proof is whether the 1:0 fill sites execute before the 0x00542b0c reader.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":9,"evidenceRefs":[{"path":"out/save_selector_predecessor_branch_state_execution_gap.json","fields":["proofFound","failedBranchStateExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeBranchStateSplit","fillExecutionOrderProofFound","fillSiteExecutionContextProven"]},{"path":"out/save_selector_predecessor_fill_execution_order_gap.json","fields":["localFillTraceReachesCurrentReader","rootEntryFixedTraversalFillSitesReachable","predecessorDescriptorDependsOnSaveSelectorSliceModel","rawGenericClassification","rawGenericCallGraphClassification","rawGenericCallGraphProofFound","rawGenericCallGraphDepthSensitivity","rawGenericRouteProofFound","predecessorDispatchTableBaseAuditRows","predecessorFillProofGateRows","predecessorFillProofGateCount","predecessorFillProofGatePassCount","predecessorFillProofGateBlockedIds","predecessorFillProofGateBlockedCount","predecessorFillAllProofGatesBlocked","failedPredecessorFillOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_opcode10_context.json","fields":["helperOnlyDirectCallInsideOpcode10Handler","directFillSiteTextRefCount","runtimeObservedAllZero","branchStatePollSampleCount","branchStatePollFillMatchCount","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","failedPredecessorFillOpcode10GateIds","missingEvidence","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_site_execution_context.json","fields":["branchStatePollSampleCount","branchStatePollFillMatchCount","descriptorEdgeRejectionClassification","requiredProofGates","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","fillSiteExecutionContextProven","proofFound","failedPredecessorFillGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_predecessor_descriptor_bridge_gap.json","fields":["proofFound","failedDescriptorBridgeGateIds","missingEvidence","evidenceRefCount","descriptorEdgeRejectionClassification","rootStopToFillBridgeFound","fillStopToCurrentBridgeFound","descriptorBridgeProofFound"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["forwardBridgeAbsent","reverseReuseBeforeFillOnly","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","saveLoaderGate","runtimeProbeGate","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_predecessor_coordinate_source_scan.json","fields":["classification","promotionStatus","proofFound","predecessorCoordinateSourceProofFound","failedPredecessorCoordinateSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","sourceSave","scanTargets","pointerTables","staticBasePairHits","trailRingPairHits","pairHitSummaryRows","coordinateSourceRejectionClassification","publicSaveStartPointerTableTileHitCount","publicSaveStartStaticBaseHitCount","publicSaveStartTrailRingHitCount","publicSaveStartImageHitCount","reciprocalPointerTableTileHitCount","reciprocalStaticBaseHitCount","reciprocalTrailRingHitCount","reciprocalImageHitCount","remainingProofs","imagePairHits"]},{"path":"out/runtime_predecessor_route_attempt_context.json","fields":["proofFound","predecessorRouteAttemptProofFound","routeSelectorHitCount","currentRootHitCount","observedSelectorCounts","dominantDiversionSelector","diversionSelectorContextCount","diversionRoutePromotionEvidenceFound","publicPredecessorSelectorContext","failedPredecessorRouteAttemptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":2,"status":"open","task":"Resolve selector merge before using predecessor 1:0 persistence.","why":"The confirmed source-side route overlaps selector 0:0, while predecessor 1:0 is target-side only. The current 2:0 row looks like a merge of those selector lists, not a proven execution sequence.","relatedFailedGateIds":["selectedRootExecution"],"relatedMissingEvidence":["selected-root execution ref"],"nextInputClasses":["selected-root-execution-proof"],"nextInputSummary":"selected-root-execution-proof","evidenceRefCount":11,"evidenceRefs":[{"path":"out/save_selector_predecessor_persistence_gap.json","fields":["proofFound","predecessorPersistenceProofFound","failedPredecessorPersistenceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","persistenceProven","selectorMergeGapOpen","routeOrderProven","promotionStatus"]},{"path":"out/save_selector_predecessor_route_order.json","fields":["proofFound","predecessorRouteOrderProofFound","failedPredecessorRouteOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","routeOrderProven","selectorMergeGapOpen","sourceRoutePreviousSelector","predecessorIsTargetSideOnly","promotionStatus"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["mergeShapeOnly","forwardBridgeAbsent","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_merge_closure_context.json","fields":["selectorMergeClosureProofFound","proofFound","failedSelectorMergeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","predecessorPersistenceUsableForCurrent","promotionStatus"]},{"path":"out/save_selector_merge_execution_gap.json","fields":["sourceToCurrentBridgeHitCount","currentToPredecessorBeforeFillHitCount","selectorMergeExecutionProofFound","proofFound","failedSelectorMergeExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_set_decomposition.json","fields":["currentEqualsPredecessorPlusSource","sourcePredecessorUnionCoversCurrent","executionOrderProven","proofFound","failedSelectorSetDecompositionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_target_alias_bridges.json","fields":["forwardHitsAddressAdjacentOnly","targetAliasExecutionExclusionStatus","aliasToCurrentExecutionLikeBridgeFound","proofFound","failedTargetAliasBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_route_root_ref_context.json","fields":["allRouteSelectorRootsTableOnly","predecessorToCurrentRootRefFound","routeOrderProven","proofFound","failedRouteRootRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_reverse_reuse_context.json","fields":["reverseHitCount","beforePredecessorFillHitCount","fillSiteHitCount","alignedTargetCount","unalignedTargetCount","classificationCounts","forwardMergeBridgeHitCount","directMergeExecutionBridgeFound","proofFound","reverseReuseProofFound","failedReverseReuseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_merge_bridge_matrix.json","fields":["sourceToCurrentHitCount","predecessorToCurrentHitCount","currentToPredecessorHitCount","currentToPredecessorBeforeFillHitCount","currentToPredecessorFillSiteHitCount","forwardMergeBridgeHitCount","forwardEncodedAnchorRawScalarCandidateCount","forwardEncodedAnchorPromotingCandidateCount","directMergeExecutionBridgeFound","encodedMergeExecutionBridgeFound","currentPredecessorHitsBeforeFillOnly","selectorMergeProofStatus","proofFound","failedMergeBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["proofFound","failedRoutePairEntryGateIds","missingEvidence","routePairEntryExecutionProven","correctedTraceNormalSelectionGapFound","selectedRootExecutionRefFound","wrapperExecutionProofFound","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":3,"status":"blocked","task":"Treat the save-selector branch as a resource/scene-list gate, not a map transition.","why":"The branch target is a character/object CNS resource, while the target map appears later as another scene record in the selector list.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":4,"evidenceRefs":[{"path":"out/save_selector_scene_list_context.json","fields":["currentFrontier","rowCount","proofFound","failedSceneListGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_frontier_reader_branch_context.json","fields":["classification","passOutcome","failOutcome","proofFound","failedFrontierReaderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeSelectionProven","strictHotspotFound"]},{"path":"out/save_selector_frontier_payload_shape.json","fields":["allPayloadsFitPairedImages","sourceInBoundsPointCount","payloadTextRefCount","proofFound","failedFrontierPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_scene_adjacency_index.json","fields":["adjacentPairsWithoutStrictOrConfirmedCount","currentPairSelectorAdjacencyOnly","currentPairStrictEventBacked","proofFound","failedSceneAdjacencyGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]}]},{"priority":5,"status":"open","task":"Find a strict source coordinate or hotspot before promotion.","why":"The frontier currently comes from save-selector scene links, not from event transition coordinates.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":13,"evidenceRefs":[{"path":"out/map1_01a_strict_source_hotspot_context.json","fields":["candidateSummaries","evidence","remainingProofs","candidateCount","strictHotspotRejectionClassification","evidenceRefs","evidenceRefCount","strictSourceCoordinateFound","tileHotspotConfirmed","proofFound","failedStrictHotspotGateIds","missingEvidence","targetSpawnCoordinateCurrentRootClassificationCounts","targetSpawnCoordinateCharacterDescriptorClassificationCounts","targetSpawnCoordinatePromotableHitCount","strictSourceHotspotProofFound","promotionStatus"]},{"path":"out/map1_01a_strict_hotspot_review_matrix.json","fields":["candidateRows","remainingProofs","transitionReviewRowCount","eventTransitionCount","candidateGateSummary","proofFound","strictHotspotReviewProofFound","failedStrictHotspotReviewGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_coordinate_variant_scan.json","fields":["spanSequenceHitCount","spanCurrentRootHitCount","targetSpawnCurrentRootClassificationCounts","targetSpawnCharacterDescriptorClassificationCounts","targetSpawnPromotableHitCount","strictCoordinateEvidenceFound","proofFound","exitCoordinateVariantProofFound","failedExitCoordinateVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map_exit_coordinate_refs.json","fields":["promotionPolicy","promotionStatus","proofFound","mapExitCoordinateRefProofFound","failedMapExitCoordinateRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount","rows"]},{"path":"out/map1_01a_exit_coordinate_context.json","fields":["xyPackedHex","xyHitCount","hitVaHex","ownerSelector","ownerLinkedCns","classification","proofFound","exitCoordinateContextProofFound","failedExitCoordinateContextGateIds","missingEvidence","evidenceRefCount","promotable","promotionStatus"]},{"path":"out/map1_01a_exit_byte_coordinate_scan.json","fields":["bytePairScanCount","targetSpawnBytePairScanCount","sequenceHitCount","strictSourceTargetByteHitCount","targetSpawnStrictSourceTargetByteHitCount","strictByteCoordinateEvidenceFound","targetSpawnStrictByteCoordinateEvidenceFound","proofFound","exitByteCoordinateProofFound","failedExitByteCoordinateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_cns_payload_scan.json","fields":["bytePairScanCount","wordPairScanCount","outsideStructuredHitCount","strictCnsCoordinateEvidenceFound","proofFound","exitCnsPayloadCoordinateProofFound","failedExitCnsPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/original_collision_route_audit.json","fields":["collisionMode","routeCandidateCount","sourceOriginalStandableCandidateCount","targetOriginalStandableSpawnCount","promotionAllowed","promotionStatus","proofFound","originalCollisionRouteProofFound","failedOriginalCollisionRouteGateIds","missingEvidence","evidenceRefCount"]},{"path":"out/map1_01a_tile_hotspot_pattern_contrast.json","fields":["currentCandidatesMatchingConfirmedLowNibbleCount","currentCandidatesMatchingConfirmedCenterPairCount","currentCandidatesMatchingConfirmedLow3x3Count","currentCandidatesMatchingConfirmedPair3x3Count","currentStrictTransitionReviewCount","tileHotspotConfirmed","proofFound","tileHotspotPatternProofFound","failedTileHotspotPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_event_tile_signature_scan.json","fields":["strictEventRecordCount","strictEventPointCount","targetLinkedStrictEventRecordCount","directSourceTargetStrictEventRecordCount","candidateCount","centerPairMatchCount","allCenterPairMatchesRejectedReview","targetSpawnTargetMapStrictEventPointCount","tileHotspotConfirmed","tileSignaturePromotes","promotionStatus","proofFound","strictEventTileSignatureProofFound","failedStrictEventTileSignatureGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/map1_01a_edge_trigger_gap.json","fields":["candidateRows","directCallGraphEvidence","missingPromotionEvidence","sourceBoundaryCandidateCount","transitionLikeDirectRelHitCountInHelperOrController","directRouteImmediateCountInHelperOrController","promotionStatus","proofFound","edgeTriggerProofFound","failedEdgeTriggerGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/runtime_source_save_load_variant_context.json","fields":["classification","proofFound","runtimeSourceSaveLoadVariantProofFound","failedRuntimeSourceSaveLoadVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","exitPath","readyPathSummary","strictSourceHotspotProofFound","selectedRootExecutionProofFound","routePromotionEvidenceFound","promotionStatus"]},{"path":"out/map1_01a_exit_target_ranking.json","fields":["exits","blockedTargetCandidates","selectorOutgoingCandidates","confirmedIncomingReviews","remainingProofs","exitCount","blockedTargetExitCount","selectorOutgoingOnlyCount","proofFound","exitTargetRankingProofFound","failedExitTargetRankingGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":6,"status":"open","task":"Prove current selector leaf selection and wrapper execution.","why":"The current 2:0 root contains route-adjacent leaves, but the traced reader leaf is indirect and the direct opcode 0x07/object+0x61 paths do not select the frontier.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":10,"evidenceRefs":[{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","selectedRootExecutionRejection","selectedRootSubgateStatusOrder","selectedRootSubgateStatuses","selectedRootNonPromotingSubgateCount","gateRows","remainingProofs","evidenceRefs","evidenceRefCount","staticReferenceGate","runtimeProbeGate","promotionStatus"]},{"path":"out/save_selector_wrapper_execution_gap.json","fields":["proofFound","failedWrapperGateIds","missingEvidence","wrapperExecutionProofFound","currentSelectorLeafExecutionProofFound","correctedTraceNormalSelectionGapFound","readerBearingNegativeOnly","evidence","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["routePairEntryExecutionProven","proofFound","failedRoutePairEntryGateIds","missingEvidence","correctedTraceNormalSelectionGapFound","globalCurrentFrontierLeafOnlyNegative","opcode07DirectEntrySelectionAbsent","evidenceRows","routePairEntryRows","negativeReaderRows","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_index_source_gap.json","fields":["routeEntryIndices","routePairEntryIndices","negativeReaderEntryIndices","entryPointerRefCount","entryPointerTextRefCount","entryPointerPromotingRefCount","encodedEntryAnchorRawScalarCandidateCount","encodedEntryAnchorBranchAttachedEncodedFieldCount","encodedEntryAnchorModeledControlFlowCandidateCount","encodedEntryAnchorPromotingCandidateCount","encodedEntryAnchorClassification","entryPointerOpcode5aFallthroughRefCount","entryPointerFallthroughNonCodeRefCount","nonNegativeEntryPointerPromotingRefCount","negativeReaderEntryPointerPromotingRefCount","higherLevelIndexSourceProven","proofFound","failedRoutePairIndexSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_context.json","fields":["runtimeSelectionProven","proofFound","failedLeafTableGateIds","missingEvidence","frontierLeafRefIsDirectRootTableEntry","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_index_space.json","fields":["entryCount","negativeIndexCount","routePairDescriptorCurrentEntryCount","readerBearingCurrentEntryCount","readerBearingNegativeEntryCount","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","proofFound","failedLeafIndexGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_global_context.json","fields":["selectorTableCount","fieldEntryRowCount","negativeFieldEntryRowCount","nonNegativeFieldEntryRowCount","currentSelectorRoutePairIndices","currentSelectorNegativeRoutePairRowCount","currentSelectorNonNegativeRoutePairRowCount","currentFrontierLeafOnlyNegative","runtimeSelectionProven","proofFound","leafTableGlobalProofFound","failedLeafTableGlobalGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_descriptor_context.json","fields":["currentRoutePairDescriptorCount","currentRoutePairDescriptorIndices","currentRoutePairCorrectedTraceReachesReaderCount","currentRoutePairCorrectedTraceAllDescriptorsReachReader","currentRoutePairGeometryExitHitCount","readerBearingNegativeEntryCount","readerBearingNegativeIndices","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","runtimeSelectionProven","proofFound","routePairDescriptorProofFound","failedRoutePairDescriptorGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode2c_route_pair_context.json","fields":["routePairDescriptorCount","oldNoFixedAdvanceStopCount","correctedTraceReachesReaderCount","correctedTraceAllRoutePairDescriptorsReachReader","runtimeSelectionProven","proofFound","opcode2cRoutePairProofFound","failedOpcode2cRoutePairGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_current_writer_paths.json","fields":["classification","rootHex","writerVaHex","writerValueHex","proofFound","currentWriterPathProofFound","failedCurrentWriterPathGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":7,"status":"open","task":"Prove the opcode 0x20 gate-time base path, not just active order.","why":"The local gate window has only opcode 0x20 as a base candidate, and descriptor+0/+4/+8 scanning does not directly reference field maps, the current frontier, or the 0xe8/0xea gate offsets.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":16,"evidenceRefs":[{"path":"out/save_selector_gate_base_proof_gap.json","fields":["proofFound","gateBaseProofFound","activeOrderProofFound","gateTimeBaseProofFound","failedGateBaseGateIds","missingEvidence","gateWindowRows","localBaseAffectingRowsBeforeGate","activeOrderOnlyProofEliminated","descriptorAllScriptSpecificGateBaseProven","promotionStatus","remainingProofs","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_gate_offset_sources.json","fields":["gateOffsetsHex","gates","anyScriptLocalSelectionWriter","anyGlobalScriptSelectionWriter","controlPathGateStatus","controlPathProofStatus","proofFound","gateOffsetSourceProofFound","failedGateOffsetSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_offset_patterns.json","fields":["offsets","totalReaderCount","totalWriterCount","proofFound","gateOffsetPatternProofFound","failedGateOffsetPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_base_candidates.json","fields":["baseCandidates","candidateCount","directRefCandidateCount","partySlotStatByteCandidateCount","runtimePointerModeStillRequired","proofFound","gateBaseCandidateProofFound","failedGateBaseCandidateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_sample_values.json","fields":["sampleCount","uniqueSelectorCount","currentFrontierSampleCovered","saveRuntimeGateSampleRows","partySlotStatSampleRows","runtimePointerModeStillRequired","proofFound","gateSampleValueProofFound","failedGateSampleValueGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_pass_matrix.json","fields":["gateRows","saveRuntimePassMatrix","saveRuntimePredecessorAllGatePassSampleCount","saveRuntimeZeroTableAllGatePassSampleCount","runtimeBaseProofRequired","predecessorPersistenceProofRequired","strictHotspotProofRequired","proofFound","gatePassMatrixProofFound","failedGatePassMatrixGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_selection_buffer_bases.json","fields":["immediateAssignments","registerAssignments","knownStaticGateOffsetDirectRefCount","runtimePointerModeStillRequired","proofFound","selectionBufferBaseProofFound","failedSelectionBufferBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_object_base_candidates.json","fields":["candidates","candidateCount","contextF2ObjectSelectorCount","fieldMapRowsAfterCandidateCount","currentFrontierRowsAfterCandidateCount","gateSelectionRowsAfterCandidateCount","runtimeObjectPointerProofRequired","proofFound","opcode20ObjectBaseProofFound","failedOpcode20ObjectBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_order_space.json","fields":["uniqueOrderSpace","repeatAllowedOrderSpace","descriptorRowCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","runtimeDescriptorObjectStateRequired","proofFound","opcode20OrderSpaceProofFound","failedOpcode20OrderSpaceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_nested_base_modes.json","fields":["currentModeIsNestedObjectPlus4","directContextA8SetterCount","proofFound","opcode20NestedBaseProofFound","failedOpcode20NestedBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_context_f2_sources.json","fields":["referenceCount","readReferenceCount","writeReferenceCount","runtimeObjectTableReaderCount","directInitializerCount","copyWriterCount","constantWriteCount","objectBaseCandidateCount","contextF2ObjectSelectorCount","fixedStream2ObjectSelectorCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","diagnosticRuntimeObjectTableEvidence","fixedContextF2ValueProvenForCurrentFrontier","specificRuntimeObjectPointerProven","runtimeObjectTableStateRequired","proofFound","opcode20ContextF2ProofFound","failedOpcode20ContextF2GateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_sources.json","fields":["runtimeSlotCountRequired","runtimeSlotDescriptorPointersRequired","controlPathProofStatus","proofFound","opcode20SlotSourceProofFound","failedOpcode20SlotSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_descriptor_scripts.json","fields":["scriptSlotAggregateRows","script4SpecificGateBaseProven","allScriptsSpecificGateBaseProven","runtimeActiveOrderRequired","controlPathProofStatus","proofFound","opcode20DescriptorScriptProofFound","failedOpcode20DescriptorScriptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_descriptor_writers.json","fields":["descriptorRows","routines","descriptorWriteCount","opcode20Mode0ScriptSource","runtimeActiveOrderRequired","proofFound","opcode20DescriptorWriterProofFound","failedOpcode20DescriptorWriterGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_sample_order_effects.json","fields":["sampleRows","sampleCount","uniqueSampleStateCount","currentFrontierSampleCovered","allSamplesHaveKnownDescriptorIndices","controlPathProofStatus","proofFound","opcode20SampleOrderProofFound","failedOpcode20SampleOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_runtime_materializers.json","fields":["materializers","loadRebuildEvidence","currentRouteSameLowByteRows","descriptorScriptMutationRows","currentFrontierActiveOrderProven","opcode20SelfMutationPathEliminated","controlPathProofStatus","proofFound","opcode20RuntimeMaterializerProofFound","failedOpcode20RuntimeMaterializerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":8,"status":"open","task":"Capture a runtime producer trace for opcode 0x24 mode1 source.","why":"Static scans now rule out direct writes, savedata backing, and the known 0x0059e310+0x38 base-immediate path for 0x0059e348, ReadFile destinations, and broad block-write candidates. The runtime enabled flag 0x0059e34d also has no broad block-write candidate.","relatedFailedGateIds":["runtimeTraceOrEquivalent","selectedRootExecution"],"relatedMissingEvidence":["runtime trace/equivalent selected-root proof","selected-root execution ref"],"nextInputClasses":["runtime-trace-or-equivalent-proof","selected-root-execution-proof"],"nextInputSummary":"runtime-trace-or-equivalent-proof, selected-root-execution-proof","evidenceRefCount":11,"evidenceRefs":[{"path":"out/save_selector_opcode24_mode1_indirect_context.json","fields":["mode1DirectRefs","globalBaseDirectRefs","basePlusOffsetRows","basePlusMode1OffsetCandidates","baseWindowMode1WriteCandidates","nearbyBaseWindowMode1WriteCandidates","noStaticBaseIndirectCandidate","basePlusMode1OffsetCandidateCount","baseWindowMode1WriteCandidateCount","proofFound","opcode24Mode1IndirectProofFound","failedOpcode24Mode1IndirectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_source_writes.json","fields":["rows","coveringWrites","indexedWriteCandidates","addressProducerCandidates","staticProducerCandidates","coveringWriteCount","indexedWriteCandidateCount","staticProducerCandidateCount","proofFound","opcode24Mode1SourceWriteProofFound","failedOpcode24Mode1SourceWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_file_read_context.json","fields":["globalDestinationReadFileRows","mode1FileReadCandidates","readFileCallCount","globalDestinationReadFileCount","mode1FileReadCandidateCount","proofFound","opcode24Mode1FileReadProofFound","failedOpcode24Mode1FileReadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24Mode1BlockWriteProofFound","failedOpcode24Mode1BlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_runtime_context.json","fields":["storage","saveReadBlocks","remainingProofs","saveReadBlockContainsMode1Source","directProducerSummary","proofFound","failedOpcode24RuntimeProducerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_context.json","fields":["refs","storage","saveReadBlocks","remainingProofs","modeDispatchRequiresRuntimeFlagOne","proofFound","failedOpcode24RuntimeEnabledGateIds","missingEvidence","evidenceRefs","evidenceRefCount","directWriteCount","staticEvidenceProvesModeDispatch","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24RuntimeEnabledBlockWriteProofFound","failedOpcode24RuntimeEnabledBlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_default_effect.json","fields":["object61ConsumerGroups","branchOperand","remainingProofs","routeOperandRowCount","staticDefaultPromotesRoute","directFrontierOperandCount","branchFrontierOperandCount","proofFound","opcode24Mode1DefaultEffectProofFound","failedOpcode24Mode1DefaultEffectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_feasibility.json","fields":["canRunRuntimeTraceNow","blockers","tracePoints","proofFound","failedRuntimeTraceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_execution_probe.json","fields":["canCaptureTraceNow","blockers","probes","qemuI386Binfmt","relocationContext","winePrefix","gdbMultiarchPath","proofFound","runtimeTraceExecutionProofFound","failedRuntimeTraceExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_opcode24_flag_context.json","fields":["classification","promotionStatus","proofFound","runtimeOpcode24FlagProofFound","failedRuntimeOpcode24FlagGateIds","missingEvidence","evidenceRefs","evidenceRefCount","pollCount","realRouteHitObserved","constructedRouteHitObserved","runtimeFlagOneCount","mode1SourceNonzeroObserved","runtimeFlagNonzeroObserved","currentObjectIndexNonzeroObserved","selectedRootExecutionProofFound","routePromotionEvidenceFound","sourceSaveLoadClassification","sourceSaveLoadPromotionStatus","sourceSaveLoadReadyPathDiversionClassification","sourceSaveLoadReadyPathCount","sourceSaveLoadReadyPathRouteOrCurrentCount","sourceSaveLoadReadyPathCandidateOrOutsideCount","sourceSaveLoadDiversionSelector","sourceSaveLoadDiversionFieldMaps","sourceSaveLoadDiversionSelectedPointerCurrentProofCount","sourceSaveLoadDiversionRoutePromotionEvidenceFound","sourceSaveLoadRoutePromotionEvidenceFound"]}]},{"priority":9,"status":"blocked","task":"Do not promote from adjacent strict clusters without a target link.","why":"The related strict cluster is adjacent to the route but does not prove this source->target transition.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":2,"evidenceRefs":[{"path":"out/field_map_record_roots.json","fields":["clusters","strictEventLinkedClusterCount","selectorOnlyClusterCount","proofFound","fieldMapRecordRootsProofFound","failedFieldMapRecordRootGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_target_link_gap.json","fields":["directStrictEventTransitions","sourceStrictClusters","targetStrictClusters","targetSelectorOnlyClusters","currentFrontierCluster","directStrictEventTransitionCount","targetSelectorOnlyClusterCount","strictTargetLinkFound","proofFound","strictTargetLinkProofFound","failedStrictTargetLinkGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]}],"openNextActions":[{"priority":1,"status":"open","task":"Prove predecessor fill-site execution/order before the current reader.","why":"The public predecessor runtime path reaches selector 1:0 but leaves secondaryBranchState all zero; local/static reset evidence is closed, so the next proof is whether the 1:0 fill sites execute before the 0x00542b0c reader.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":9,"evidenceRefs":[{"path":"out/save_selector_predecessor_branch_state_execution_gap.json","fields":["proofFound","failedBranchStateExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeBranchStateSplit","fillExecutionOrderProofFound","fillSiteExecutionContextProven"]},{"path":"out/save_selector_predecessor_fill_execution_order_gap.json","fields":["localFillTraceReachesCurrentReader","rootEntryFixedTraversalFillSitesReachable","predecessorDescriptorDependsOnSaveSelectorSliceModel","rawGenericClassification","rawGenericCallGraphClassification","rawGenericCallGraphProofFound","rawGenericCallGraphDepthSensitivity","rawGenericRouteProofFound","predecessorDispatchTableBaseAuditRows","predecessorFillProofGateRows","predecessorFillProofGateCount","predecessorFillProofGatePassCount","predecessorFillProofGateBlockedIds","predecessorFillProofGateBlockedCount","predecessorFillAllProofGatesBlocked","failedPredecessorFillOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_opcode10_context.json","fields":["helperOnlyDirectCallInsideOpcode10Handler","directFillSiteTextRefCount","runtimeObservedAllZero","branchStatePollSampleCount","branchStatePollFillMatchCount","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","failedPredecessorFillOpcode10GateIds","missingEvidence","evidenceRefCount","proofFound"]},{"path":"out/save_selector_predecessor_fill_site_execution_context.json","fields":["branchStatePollSampleCount","branchStatePollFillMatchCount","descriptorEdgeRejectionClassification","requiredProofGates","requiredProofGateCount","requiredProofGatePassCount","requiredProofGateFailCount","requiredProofGateFailIds","requiredProofGateAllBlocked","fillSiteExecutionContextProven","proofFound","failedPredecessorFillGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_predecessor_descriptor_bridge_gap.json","fields":["proofFound","failedDescriptorBridgeGateIds","missingEvidence","evidenceRefCount","descriptorEdgeRejectionClassification","rootStopToFillBridgeFound","fillStopToCurrentBridgeFound","descriptorBridgeProofFound"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["forwardBridgeAbsent","reverseReuseBeforeFillOnly","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","saveLoaderGate","runtimeProbeGate","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_predecessor_coordinate_source_scan.json","fields":["classification","promotionStatus","proofFound","predecessorCoordinateSourceProofFound","failedPredecessorCoordinateSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","sourceSave","scanTargets","pointerTables","staticBasePairHits","trailRingPairHits","pairHitSummaryRows","coordinateSourceRejectionClassification","publicSaveStartPointerTableTileHitCount","publicSaveStartStaticBaseHitCount","publicSaveStartTrailRingHitCount","publicSaveStartImageHitCount","reciprocalPointerTableTileHitCount","reciprocalStaticBaseHitCount","reciprocalTrailRingHitCount","reciprocalImageHitCount","remainingProofs","imagePairHits"]},{"path":"out/runtime_predecessor_route_attempt_context.json","fields":["proofFound","predecessorRouteAttemptProofFound","routeSelectorHitCount","currentRootHitCount","observedSelectorCounts","dominantDiversionSelector","diversionSelectorContextCount","diversionRoutePromotionEvidenceFound","publicPredecessorSelectorContext","failedPredecessorRouteAttemptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":2,"status":"open","task":"Resolve selector merge before using predecessor 1:0 persistence.","why":"The confirmed source-side route overlaps selector 0:0, while predecessor 1:0 is target-side only. The current 2:0 row looks like a merge of those selector lists, not a proven execution sequence.","relatedFailedGateIds":["selectedRootExecution"],"relatedMissingEvidence":["selected-root execution ref"],"nextInputClasses":["selected-root-execution-proof"],"nextInputSummary":"selected-root-execution-proof","evidenceRefCount":11,"evidenceRefs":[{"path":"out/save_selector_predecessor_persistence_gap.json","fields":["proofFound","predecessorPersistenceProofFound","failedPredecessorPersistenceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","persistenceProven","selectorMergeGapOpen","routeOrderProven","promotionStatus"]},{"path":"out/save_selector_predecessor_route_order.json","fields":["proofFound","predecessorRouteOrderProofFound","failedPredecessorRouteOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","routeOrderProven","selectorMergeGapOpen","sourceRoutePreviousSelector","predecessorIsTargetSideOnly","promotionStatus"]},{"path":"out/save_selector_merge_runtime_context.json","fields":["mergeShapeOnly","forwardBridgeAbsent","selectorMergeRuntimeProofFound","proofFound","failedSelectorMergeRuntimeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_merge_closure_context.json","fields":["selectorMergeClosureProofFound","proofFound","failedSelectorMergeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","predecessorPersistenceUsableForCurrent","promotionStatus"]},{"path":"out/save_selector_merge_execution_gap.json","fields":["sourceToCurrentBridgeHitCount","currentToPredecessorBeforeFillHitCount","selectorMergeExecutionProofFound","proofFound","failedSelectorMergeExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_set_decomposition.json","fields":["currentEqualsPredecessorPlusSource","sourcePredecessorUnionCoversCurrent","executionOrderProven","proofFound","failedSelectorSetDecompositionGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_target_alias_bridges.json","fields":["forwardHitsAddressAdjacentOnly","targetAliasExecutionExclusionStatus","aliasToCurrentExecutionLikeBridgeFound","proofFound","failedTargetAliasBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_route_root_ref_context.json","fields":["allRouteSelectorRootsTableOnly","predecessorToCurrentRootRefFound","routeOrderProven","proofFound","failedRouteRootRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_reverse_reuse_context.json","fields":["reverseHitCount","beforePredecessorFillHitCount","fillSiteHitCount","alignedTargetCount","unalignedTargetCount","classificationCounts","forwardMergeBridgeHitCount","directMergeExecutionBridgeFound","proofFound","reverseReuseProofFound","failedReverseReuseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_merge_bridge_matrix.json","fields":["sourceToCurrentHitCount","predecessorToCurrentHitCount","currentToPredecessorHitCount","currentToPredecessorBeforeFillHitCount","currentToPredecessorFillSiteHitCount","forwardMergeBridgeHitCount","forwardEncodedAnchorRawScalarCandidateCount","forwardEncodedAnchorPromotingCandidateCount","directMergeExecutionBridgeFound","encodedMergeExecutionBridgeFound","currentPredecessorHitsBeforeFillOnly","selectorMergeProofStatus","proofFound","failedMergeBridgeGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["proofFound","failedRoutePairEntryGateIds","missingEvidence","routePairEntryExecutionProven","correctedTraceNormalSelectionGapFound","selectedRootExecutionRefFound","wrapperExecutionProofFound","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":5,"status":"open","task":"Find a strict source coordinate or hotspot before promotion.","why":"The frontier currently comes from save-selector scene links, not from event transition coordinates.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":13,"evidenceRefs":[{"path":"out/map1_01a_strict_source_hotspot_context.json","fields":["candidateSummaries","evidence","remainingProofs","candidateCount","strictHotspotRejectionClassification","evidenceRefs","evidenceRefCount","strictSourceCoordinateFound","tileHotspotConfirmed","proofFound","failedStrictHotspotGateIds","missingEvidence","targetSpawnCoordinateCurrentRootClassificationCounts","targetSpawnCoordinateCharacterDescriptorClassificationCounts","targetSpawnCoordinatePromotableHitCount","strictSourceHotspotProofFound","promotionStatus"]},{"path":"out/map1_01a_strict_hotspot_review_matrix.json","fields":["candidateRows","remainingProofs","transitionReviewRowCount","eventTransitionCount","candidateGateSummary","proofFound","strictHotspotReviewProofFound","failedStrictHotspotReviewGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_coordinate_variant_scan.json","fields":["spanSequenceHitCount","spanCurrentRootHitCount","targetSpawnCurrentRootClassificationCounts","targetSpawnCharacterDescriptorClassificationCounts","targetSpawnPromotableHitCount","strictCoordinateEvidenceFound","proofFound","exitCoordinateVariantProofFound","failedExitCoordinateVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map_exit_coordinate_refs.json","fields":["promotionPolicy","promotionStatus","proofFound","mapExitCoordinateRefProofFound","failedMapExitCoordinateRefGateIds","missingEvidence","evidenceRefs","evidenceRefCount","rows"]},{"path":"out/map1_01a_exit_coordinate_context.json","fields":["xyPackedHex","xyHitCount","hitVaHex","ownerSelector","ownerLinkedCns","classification","proofFound","exitCoordinateContextProofFound","failedExitCoordinateContextGateIds","missingEvidence","evidenceRefCount","promotable","promotionStatus"]},{"path":"out/map1_01a_exit_byte_coordinate_scan.json","fields":["bytePairScanCount","targetSpawnBytePairScanCount","sequenceHitCount","strictSourceTargetByteHitCount","targetSpawnStrictSourceTargetByteHitCount","strictByteCoordinateEvidenceFound","targetSpawnStrictByteCoordinateEvidenceFound","proofFound","exitByteCoordinateProofFound","failedExitByteCoordinateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_exit_cns_payload_scan.json","fields":["bytePairScanCount","wordPairScanCount","outsideStructuredHitCount","strictCnsCoordinateEvidenceFound","proofFound","exitCnsPayloadCoordinateProofFound","failedExitCnsPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/original_collision_route_audit.json","fields":["collisionMode","routeCandidateCount","sourceOriginalStandableCandidateCount","targetOriginalStandableSpawnCount","promotionAllowed","promotionStatus","proofFound","originalCollisionRouteProofFound","failedOriginalCollisionRouteGateIds","missingEvidence","evidenceRefCount"]},{"path":"out/map1_01a_tile_hotspot_pattern_contrast.json","fields":["currentCandidatesMatchingConfirmedLowNibbleCount","currentCandidatesMatchingConfirmedCenterPairCount","currentCandidatesMatchingConfirmedLow3x3Count","currentCandidatesMatchingConfirmedPair3x3Count","currentStrictTransitionReviewCount","tileHotspotConfirmed","proofFound","tileHotspotPatternProofFound","failedTileHotspotPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_event_tile_signature_scan.json","fields":["strictEventRecordCount","strictEventPointCount","targetLinkedStrictEventRecordCount","directSourceTargetStrictEventRecordCount","candidateCount","centerPairMatchCount","allCenterPairMatchesRejectedReview","targetSpawnTargetMapStrictEventPointCount","tileHotspotConfirmed","tileSignaturePromotes","promotionStatus","proofFound","strictEventTileSignatureProofFound","failedStrictEventTileSignatureGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/map1_01a_edge_trigger_gap.json","fields":["candidateRows","directCallGraphEvidence","missingPromotionEvidence","sourceBoundaryCandidateCount","transitionLikeDirectRelHitCountInHelperOrController","directRouteImmediateCountInHelperOrController","promotionStatus","proofFound","edgeTriggerProofFound","failedEdgeTriggerGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]},{"path":"out/runtime_source_save_load_variant_context.json","fields":["classification","proofFound","runtimeSourceSaveLoadVariantProofFound","failedRuntimeSourceSaveLoadVariantGateIds","missingEvidence","evidenceRefs","evidenceRefCount","exitPath","readyPathSummary","strictSourceHotspotProofFound","selectedRootExecutionProofFound","routePromotionEvidenceFound","promotionStatus"]},{"path":"out/map1_01a_exit_target_ranking.json","fields":["exits","blockedTargetCandidates","selectorOutgoingCandidates","confirmedIncomingReviews","remainingProofs","exitCount","blockedTargetExitCount","selectorOutgoingOnlyCount","proofFound","exitTargetRankingProofFound","failedExitTargetRankingGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":6,"status":"open","task":"Prove current selector leaf selection and wrapper execution.","why":"The current 2:0 root contains route-adjacent leaves, but the traced reader leaf is indirect and the direct opcode 0x07/object+0x61 paths do not select the frontier.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":10,"evidenceRefs":[{"path":"out/save_selector_selected_root_execution_gap.json","fields":["proofFound","failedSelectedRootGateIds","missingEvidence","selectedRootExecutionRefFound","selectedRootExecutionRejectionClassification","selectedRootExecutionRejection","selectedRootSubgateStatusOrder","selectedRootSubgateStatuses","selectedRootNonPromotingSubgateCount","gateRows","remainingProofs","evidenceRefs","evidenceRefCount","staticReferenceGate","runtimeProbeGate","promotionStatus"]},{"path":"out/save_selector_wrapper_execution_gap.json","fields":["proofFound","failedWrapperGateIds","missingEvidence","wrapperExecutionProofFound","currentSelectorLeafExecutionProofFound","correctedTraceNormalSelectionGapFound","readerBearingNegativeOnly","evidence","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_entry_execution_gap.json","fields":["routePairEntryExecutionProven","proofFound","failedRoutePairEntryGateIds","missingEvidence","correctedTraceNormalSelectionGapFound","globalCurrentFrontierLeafOnlyNegative","opcode07DirectEntrySelectionAbsent","evidenceRows","routePairEntryRows","negativeReaderRows","evidenceRefs","evidenceRefCount","remainingProofs"]},{"path":"out/save_selector_route_pair_index_source_gap.json","fields":["routeEntryIndices","routePairEntryIndices","negativeReaderEntryIndices","entryPointerRefCount","entryPointerTextRefCount","entryPointerPromotingRefCount","encodedEntryAnchorRawScalarCandidateCount","encodedEntryAnchorBranchAttachedEncodedFieldCount","encodedEntryAnchorModeledControlFlowCandidateCount","encodedEntryAnchorPromotingCandidateCount","encodedEntryAnchorClassification","entryPointerOpcode5aFallthroughRefCount","entryPointerFallthroughNonCodeRefCount","nonNegativeEntryPointerPromotingRefCount","negativeReaderEntryPointerPromotingRefCount","higherLevelIndexSourceProven","proofFound","failedRoutePairIndexSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_context.json","fields":["runtimeSelectionProven","proofFound","failedLeafTableGateIds","missingEvidence","frontierLeafRefIsDirectRootTableEntry","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_index_space.json","fields":["entryCount","negativeIndexCount","routePairDescriptorCurrentEntryCount","readerBearingCurrentEntryCount","readerBearingNegativeEntryCount","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","proofFound","failedLeafIndexGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_leaf_table_global_context.json","fields":["selectorTableCount","fieldEntryRowCount","negativeFieldEntryRowCount","nonNegativeFieldEntryRowCount","currentSelectorRoutePairIndices","currentSelectorNegativeRoutePairRowCount","currentSelectorNonNegativeRoutePairRowCount","currentFrontierLeafOnlyNegative","runtimeSelectionProven","proofFound","leafTableGlobalProofFound","failedLeafTableGlobalGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_route_pair_descriptor_context.json","fields":["currentRoutePairDescriptorCount","currentRoutePairDescriptorIndices","currentRoutePairCorrectedTraceReachesReaderCount","currentRoutePairCorrectedTraceAllDescriptorsReachReader","currentRoutePairGeometryExitHitCount","readerBearingNegativeEntryCount","readerBearingNegativeIndices","frontierReaderSelectableByNonNegativeIndex","frontierReaderReachableByCorrectedNonNegativeIndex","runtimeSelectionProven","proofFound","routePairDescriptorProofFound","failedRoutePairDescriptorGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode2c_route_pair_context.json","fields":["routePairDescriptorCount","oldNoFixedAdvanceStopCount","correctedTraceReachesReaderCount","correctedTraceAllRoutePairDescriptorsReachReader","runtimeSelectionProven","proofFound","opcode2cRoutePairProofFound","failedOpcode2cRoutePairGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_current_writer_paths.json","fields":["classification","rootHex","writerVaHex","writerValueHex","proofFound","currentWriterPathProofFound","failedCurrentWriterPathGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":7,"status":"open","task":"Prove the opcode 0x20 gate-time base path, not just active order.","why":"The local gate window has only opcode 0x20 as a base candidate, and descriptor+0/+4/+8 scanning does not directly reference field maps, the current frontier, or the 0xe8/0xea gate offsets.","relatedFailedGateIds":["selectedRootExecution","runtimeTraceOrEquivalent"],"relatedMissingEvidence":["selected-root execution ref","runtime trace/equivalent selected-root proof"],"nextInputClasses":["selected-root-execution-proof","runtime-trace-or-equivalent-proof"],"nextInputSummary":"selected-root-execution-proof, runtime-trace-or-equivalent-proof","evidenceRefCount":16,"evidenceRefs":[{"path":"out/save_selector_gate_base_proof_gap.json","fields":["proofFound","gateBaseProofFound","activeOrderProofFound","gateTimeBaseProofFound","failedGateBaseGateIds","missingEvidence","gateWindowRows","localBaseAffectingRowsBeforeGate","activeOrderOnlyProofEliminated","descriptorAllScriptSpecificGateBaseProven","promotionStatus","remainingProofs","evidenceRefs","evidenceRefCount"]},{"path":"out/save_selector_gate_offset_sources.json","fields":["gateOffsetsHex","gates","anyScriptLocalSelectionWriter","anyGlobalScriptSelectionWriter","controlPathGateStatus","controlPathProofStatus","proofFound","gateOffsetSourceProofFound","failedGateOffsetSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_offset_patterns.json","fields":["offsets","totalReaderCount","totalWriterCount","proofFound","gateOffsetPatternProofFound","failedGateOffsetPatternGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_base_candidates.json","fields":["baseCandidates","candidateCount","directRefCandidateCount","partySlotStatByteCandidateCount","runtimePointerModeStillRequired","proofFound","gateBaseCandidateProofFound","failedGateBaseCandidateGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_sample_values.json","fields":["sampleCount","uniqueSelectorCount","currentFrontierSampleCovered","saveRuntimeGateSampleRows","partySlotStatSampleRows","runtimePointerModeStillRequired","proofFound","gateSampleValueProofFound","failedGateSampleValueGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_gate_pass_matrix.json","fields":["gateRows","saveRuntimePassMatrix","saveRuntimePredecessorAllGatePassSampleCount","saveRuntimeZeroTableAllGatePassSampleCount","runtimeBaseProofRequired","predecessorPersistenceProofRequired","strictHotspotProofRequired","proofFound","gatePassMatrixProofFound","failedGatePassMatrixGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_selection_buffer_bases.json","fields":["immediateAssignments","registerAssignments","knownStaticGateOffsetDirectRefCount","runtimePointerModeStillRequired","proofFound","selectionBufferBaseProofFound","failedSelectionBufferBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_object_base_candidates.json","fields":["candidates","candidateCount","contextF2ObjectSelectorCount","fieldMapRowsAfterCandidateCount","currentFrontierRowsAfterCandidateCount","gateSelectionRowsAfterCandidateCount","runtimeObjectPointerProofRequired","proofFound","opcode20ObjectBaseProofFound","failedOpcode20ObjectBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_order_space.json","fields":["uniqueOrderSpace","repeatAllowedOrderSpace","descriptorRowCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","runtimeDescriptorObjectStateRequired","proofFound","opcode20OrderSpaceProofFound","failedOpcode20OrderSpaceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_nested_base_modes.json","fields":["currentModeIsNestedObjectPlus4","directContextA8SetterCount","proofFound","opcode20NestedBaseProofFound","failedOpcode20NestedBaseGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_context_f2_sources.json","fields":["referenceCount","readReferenceCount","writeReferenceCount","runtimeObjectTableReaderCount","directInitializerCount","copyWriterCount","constantWriteCount","objectBaseCandidateCount","contextF2ObjectSelectorCount","fixedStream2ObjectSelectorCount","currentFrontierSampleCovered","activeOrderAlonePromotesRoute","diagnosticRuntimeObjectTableEvidence","fixedContextF2ValueProvenForCurrentFrontier","specificRuntimeObjectPointerProven","runtimeObjectTableStateRequired","proofFound","opcode20ContextF2ProofFound","failedOpcode20ContextF2GateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_sources.json","fields":["runtimeSlotCountRequired","runtimeSlotDescriptorPointersRequired","controlPathProofStatus","proofFound","opcode20SlotSourceProofFound","failedOpcode20SlotSourceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_descriptor_scripts.json","fields":["scriptSlotAggregateRows","script4SpecificGateBaseProven","allScriptsSpecificGateBaseProven","runtimeActiveOrderRequired","controlPathProofStatus","proofFound","opcode20DescriptorScriptProofFound","failedOpcode20DescriptorScriptGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_slot_descriptor_writers.json","fields":["descriptorRows","routines","descriptorWriteCount","opcode20Mode0ScriptSource","runtimeActiveOrderRequired","proofFound","opcode20DescriptorWriterProofFound","failedOpcode20DescriptorWriterGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_sample_order_effects.json","fields":["sampleRows","sampleCount","uniqueSampleStateCount","currentFrontierSampleCovered","allSamplesHaveKnownDescriptorIndices","controlPathProofStatus","proofFound","opcode20SampleOrderProofFound","failedOpcode20SampleOrderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode20_runtime_materializers.json","fields":["materializers","loadRebuildEvidence","currentRouteSameLowByteRows","descriptorScriptMutationRows","currentFrontierActiveOrderProven","opcode20SelfMutationPathEliminated","controlPathProofStatus","proofFound","opcode20RuntimeMaterializerProofFound","failedOpcode20RuntimeMaterializerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]}]},{"priority":8,"status":"open","task":"Capture a runtime producer trace for opcode 0x24 mode1 source.","why":"Static scans now rule out direct writes, savedata backing, and the known 0x0059e310+0x38 base-immediate path for 0x0059e348, ReadFile destinations, and broad block-write candidates. The runtime enabled flag 0x0059e34d also has no broad block-write candidate.","relatedFailedGateIds":["runtimeTraceOrEquivalent","selectedRootExecution"],"relatedMissingEvidence":["runtime trace/equivalent selected-root proof","selected-root execution ref"],"nextInputClasses":["runtime-trace-or-equivalent-proof","selected-root-execution-proof"],"nextInputSummary":"runtime-trace-or-equivalent-proof, selected-root-execution-proof","evidenceRefCount":11,"evidenceRefs":[{"path":"out/save_selector_opcode24_mode1_indirect_context.json","fields":["mode1DirectRefs","globalBaseDirectRefs","basePlusOffsetRows","basePlusMode1OffsetCandidates","baseWindowMode1WriteCandidates","nearbyBaseWindowMode1WriteCandidates","noStaticBaseIndirectCandidate","basePlusMode1OffsetCandidateCount","baseWindowMode1WriteCandidateCount","proofFound","opcode24Mode1IndirectProofFound","failedOpcode24Mode1IndirectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_source_writes.json","fields":["rows","coveringWrites","indexedWriteCandidates","addressProducerCandidates","staticProducerCandidates","coveringWriteCount","indexedWriteCandidateCount","staticProducerCandidateCount","proofFound","opcode24Mode1SourceWriteProofFound","failedOpcode24Mode1SourceWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_file_read_context.json","fields":["globalDestinationReadFileRows","mode1FileReadCandidates","readFileCallCount","globalDestinationReadFileCount","mode1FileReadCandidateCount","proofFound","opcode24Mode1FileReadProofFound","failedOpcode24Mode1FileReadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24Mode1BlockWriteProofFound","failedOpcode24Mode1BlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_runtime_context.json","fields":["storage","saveReadBlocks","remainingProofs","saveReadBlockContainsMode1Source","directProducerSummary","proofFound","failedOpcode24RuntimeProducerGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_context.json","fields":["refs","storage","saveReadBlocks","remainingProofs","modeDispatchRequiresRuntimeFlagOne","proofFound","failedOpcode24RuntimeEnabledGateIds","missingEvidence","evidenceRefs","evidenceRefCount","directWriteCount","staticEvidenceProvesModeDispatch","promotionStatus"]},{"path":"out/save_selector_opcode24_runtime_enabled_block_writes.json","fields":["rows","addressLikeCoveringBases","directCoveringWrites","blockWriteCandidates","blockWriteCandidateCount","proofFound","opcode24RuntimeEnabledBlockWriteProofFound","failedOpcode24RuntimeEnabledBlockWriteGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_opcode24_mode1_default_effect.json","fields":["object61ConsumerGroups","branchOperand","remainingProofs","routeOperandRowCount","staticDefaultPromotesRoute","directFrontierOperandCount","branchFrontierOperandCount","proofFound","opcode24Mode1DefaultEffectProofFound","failedOpcode24Mode1DefaultEffectGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_feasibility.json","fields":["canRunRuntimeTraceNow","blockers","tracePoints","proofFound","failedRuntimeTraceGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_trace_execution_probe.json","fields":["canCaptureTraceNow","blockers","probes","qemuI386Binfmt","relocationContext","winePrefix","gdbMultiarchPath","proofFound","runtimeTraceExecutionProofFound","failedRuntimeTraceExecutionGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/runtime_opcode24_flag_context.json","fields":["classification","promotionStatus","proofFound","runtimeOpcode24FlagProofFound","failedRuntimeOpcode24FlagGateIds","missingEvidence","evidenceRefs","evidenceRefCount","pollCount","realRouteHitObserved","constructedRouteHitObserved","runtimeFlagOneCount","mode1SourceNonzeroObserved","runtimeFlagNonzeroObserved","currentObjectIndexNonzeroObserved","selectedRootExecutionProofFound","routePromotionEvidenceFound","sourceSaveLoadClassification","sourceSaveLoadPromotionStatus","sourceSaveLoadReadyPathDiversionClassification","sourceSaveLoadReadyPathCount","sourceSaveLoadReadyPathRouteOrCurrentCount","sourceSaveLoadReadyPathCandidateOrOutsideCount","sourceSaveLoadDiversionSelector","sourceSaveLoadDiversionFieldMaps","sourceSaveLoadDiversionSelectedPointerCurrentProofCount","sourceSaveLoadDiversionRoutePromotionEvidenceFound","sourceSaveLoadRoutePromotionEvidenceFound"]}]}],"blockedNextActions":[{"priority":3,"status":"blocked","task":"Treat the save-selector branch as a resource/scene-list gate, not a map transition.","why":"The branch target is a character/object CNS resource, while the target map appears later as another scene record in the selector list.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":4,"evidenceRefs":[{"path":"out/save_selector_scene_list_context.json","fields":["currentFrontier","rowCount","proofFound","failedSceneListGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_frontier_reader_branch_context.json","fields":["classification","passOutcome","failOutcome","proofFound","failedFrontierReaderGateIds","missingEvidence","evidenceRefs","evidenceRefCount","runtimeSelectionProven","strictHotspotFound"]},{"path":"out/save_selector_frontier_payload_shape.json","fields":["allPayloadsFitPairedImages","sourceInBoundsPointCount","payloadTextRefCount","proofFound","failedFrontierPayloadGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/save_selector_scene_adjacency_index.json","fields":["adjacentPairsWithoutStrictOrConfirmedCount","currentPairSelectorAdjacencyOnly","currentPairStrictEventBacked","proofFound","failedSceneAdjacencyGateIds","missingEvidence","evidenceRefs","evidenceRefCount"]}]},{"priority":9,"status":"blocked","task":"Do not promote from adjacent strict clusters without a target link.","why":"The related strict cluster is adjacent to the route but does not prove this source->target transition.","relatedFailedGateIds":["strictSourceHotspot","tileHotspotConfirmation"],"relatedMissingEvidence":["strict source coordinate","tile hotspot confirmation"],"nextInputClasses":["strict-source-coordinate-or-hotspot-proof","tile-hotspot-confirmation-proof"],"nextInputSummary":"strict-source-coordinate-or-hotspot-proof, tile-hotspot-confirmation-proof","evidenceRefCount":2,"evidenceRefs":[{"path":"out/field_map_record_roots.json","fields":["clusters","strictEventLinkedClusterCount","selectorOnlyClusterCount","proofFound","fieldMapRecordRootsProofFound","failedFieldMapRecordRootGateIds","missingEvidence","evidenceRefs","evidenceRefCount","promotionStatus"]},{"path":"out/map1_01a_strict_target_link_gap.json","fields":["directStrictEventTransitions","sourceStrictClusters","targetStrictClusters","targetSelectorOnlyClusters","currentFrontierCluster","directStrictEventTransitionCount","targetSelectorOnlyClusterCount","strictTargetLinkFound","proofFound","strictTargetLinkProofFound","failedStrictTargetLinkGateIds","missingEvidence","remainingProofs","evidenceRefs","evidenceRefCount","promotionStatus"]}]}],"successCriteria":[{"id":"resource-extraction","title":"Original resources are extracted into browser-consumable assets","status":"complete"},{"id":"map-rendering","title":"Field maps render without the previously broken tile layout/candidate modes","status":"partial"},{"id":"movement-input","title":"Browser runtime supports walking, camera follow, desktop input, and mobile input","status":"partial"},{"id":"runtime-resource-loading","title":"The web runtime loads only the needed startup resources and lazy map chunks","status":"complete"},{"id":"normal-progression","title":"Normal gameplay can progress through confirmed map transitions","status":"partial"},{"id":"event-dialogue-battle","title":"Event, dialogue, battle, and story-state systems are playable, not only inspected","status":"partial"},{"id":"completion-gate","title":"The project can be called a playable web version of Hwanse Chwihojeon","status":"partial"}],"missingRequirements":[{"id":"map-rendering","title":"Field maps render without the previously broken tile layout/candidate modes","status":"partial","gaps":["Expected all field maps to be covered by direct accepted rows with no family-default or fallback render rows."]},{"id":"movement-input","title":"Browser runtime supports walking, camera follow, desktop input, and mobile input","status":"partial","gaps":["Original frame timing, input masks, 16px tile/camera projection, draw-prep/projected-coordinate consumption, input-driven actor tile mutation, party actor draw projection from tile/trail entries, +0x28 sprite frame selector/source-rect/offset consumer, opcode 0x21 script/timer frame selector path, party actor +0x68-to-+0x64 frame-script descriptor tables for cara_at1/cara_rs1/cara_sm1, descriptor table rows 0..2 vs 3..11 classification, save-load active descriptor materialization through 0x00432323, web source-rect selector mapping, exact 8-command selector cadence, browser 48ms sub-tile interpolation, original collision flag tests, directional latch fallback cases, actor-overlap collision response, CNS layer1 collision flag grid, default web original layer1 collision mode, original companion tile/direction trail ring with initial cursors 0,4,1 and post-mutation leader-tile write timing, default web party actor-overlap collision, and 7-slot web party-trail cursor history are now identified. The original actor position model is tile-field snap plus fixed-point draw projection, while browser interpolation is classified as a visual overlay and not original proof; original actor interpolation timing remains unproven, and current selector 2:0 active order plus scripted behavior for non-player descriptors are still inferred."]},{"id":"normal-progression","title":"Normal gameplay can progress through confirmed map transitions","status":"partial","gaps":["1 confirmed-route blocker(s) remain.","The current route stops at map1_01a because no strict source coordinate has been found for map1_01a -> map2_02d.","routeAssist is a trial/debug route continuation, not confirmed normal-route evidence.","The current VM has Wine tooling installed, but qemu-i386/WineDbg control probes fail even for notepad, so the Hwanse2.exe runtime trace cannot be captured here yet. A non-debugger /proc memory snapshot can read Hwanse2.exe globals, but the latest idle sample is not route-path proof. Embedded execution-probe binfmt view: registered=True, enabled=True; summary view enabled=True. The qemu-i386 binfmt state is consistent with the child/debugger trace availability check. Direct qemu-i386 can run both the Wine loader smoke (wine-9.0 (Ubuntu 9.0~repack-4build3)) and CLI child exec smoke (Microsoft Windows 10.0.19043); the remaining blocker is the WineDbg/runtime trace path. A bounded X/input-buffer probe confirms Wine DirectInput can see held synthetic keydowns, but ordinary X key events did not move the idle selected pointer. Direct cached-key-buffer pokes moved the selected pointer only to non-route selector 50:0, not current selector 2:0. This remains input-path diagnostic evidence, not route proof. A bounded direct key-buffer sequence probe covered 28 sequence(s) after 14.0s startup wait and reached route selector 2:0=False; it remains non-promoting diagnostic evidence. A supplemental input-path prelude key-buffer probe covered 3 sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is diagnostic-only. A non-debugger selected-pointer poll covered 1550 sample(s) across 8 direct key-buffer sequence(s), observed selectors=8:0, and reached route selector 2:0=False; it still does not replace a watchpoint trace. A supplemental input-path selected-pointer poll covered 491 sample(s) across 3 direct key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental long selected-pointer poll covered 1928 sample(s) across 5 custom key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental late-start selected-pointer poll waited 45.0s, covered 1122 sample(s) across 1 key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental route watch-value poll covered 1123 sample(s) across 1 key-buffer sequence(s), observed selectors=8:0,50:0, watchValues=opcode24CurrentObjectIndex=0x00x1123; opcode24Mode1Source=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental standalone synthetic selector 2:0 poll staged a save-shaped file under SaveData\\savedat1.dat, ran the input-path prelude with case aliases, and covered 374 sample(s) across 2 load-menu candidate sequence(s), inputQuality=pid=2/2 base=2/2 keyWrites=2/2 pressedSeq=2/2 pressedEvents=18 offsets=28,208, stagedSelectors=2:0, observed selectors=8:0, observedStaged=False, and reached route selector 2:0=False; this keeps standalone synthetic selector 2:0 non-promoting. A supplemental patched public-base selector 2:0 diagnostic poll staged a public save with only selector/position bytes patched under SaveData\\savedat1.dat, ran the input-path prelude with case aliases, and covered 375 sample(s) across 2 load-menu candidate sequence(s), inputQuality=pid=2/2 base=2/2 keyWrites=2/2 pressedSeq=2/2 pressedEvents=138 offsets=28,208, stagedSelectors=2:0, observed selectors=2:0,10:0, observedStaged=True, and reached route selector 2:0=True; this proves the load path can select a constructed 2:0 save-shaped diagnostic, but it is not a captured gameplay save. A supplemental SaveData file-I/O trace probe (winedebug) placed a public save under SaveData/savedat1.dat but inputTraceUsable=False (pidRuns=0/1, keyWriteRuns=0/1); absent savedat lines remain backend-feasibility evidence, not load-menu proof. A supplemental SaveData file-I/O trace probe (strace) placed a public save under SaveData/savedat1.dat but inputTraceUsable=False (pidRuns=0/1, keyWriteRuns=0/1); absent savedat lines remain backend-feasibility evidence, not load-menu proof. A supplemental attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat and had inputTraceUsable=True (pidRuns=1/1, keyWriteRuns=1/1, matchedFileIoLines=0, savedat1Access=False); this rules out savedat file access only for the bounded attached load-menu candidate window, not the full load-menu path. A broader attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat and had inputTraceUsable=True (pidRuns=8/8, keyWriteRuns=8/8, matchedFileIoLines=0, savedat1Access=False); this rules out savedat file access across the covered bounded load-menu candidate windows, not the full load-menu path. A case-alias attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat with temporary resource archive aliases and had inputTraceUsable=True (pidRuns=8/8, keyWriteRuns=8/8, matchedFileIoLines=0, savedat1Access=False); aliases reduce archive lookup noise but still do not prove full load-menu reachability."]},{"id":"event-dialogue-battle","title":"Event, dialogue, battle, and story-state systems are playable, not only inspected","status":"partial","gaps":["Dialogue playback is still candidate/debug playback rather than confirmed event VM execution.","Save-point candidate review is still candidate/debug playback rather than original inn/statue/recovery NPC save-point event execution.","Linked event object previews are still candidate/prototype surfaces rather than original object/NPC descriptor execution.","out/event_vm_semantics_gap.* keeps instruction-length decoding, operand layout, route-linked event VM execution, full browser event VM implementation, and story dialogue route proof outside the completed surface; browser opcode trace replay is partial and non-promoting.","out/event_vm_semantics_gap.* promotion gate keeps browserReplayPromotesOriginalEventVm=False until route-linked dispatch, full instruction/operand decode, scene dialogue binding, original story flag mutation, full browser VM execution, and event-driven battle entry are proven.","out/event_battle_gap_audit.* keeps route-linked event VM execution, event-driven battle entry, original enemy data/formulas/rewards, equipment offsets, status flag offsets, and story flag mutation outside the completed surface.","EXE battle resource descriptors are grounded resource-load rows, not enemy rows, formations, encounter dispatch, reward tables, combat formulas, or battle-entry event execution.","Battle enemy sprite candidate visuals are EXE-proximity visual evidence, not enemy row/stat/formation/reward/formula proof.","Prototype progress records are browser-local save/load state and are not original story flag offsets or event-script branch-state mutation.","Prototype party join records and manual party battle rows are browser-local gameplay state and do not prove original party join/story state logic.","Original event-driven battle entry, enemy data, combat formulas, rewards, equipment ownership/equipped offsets/effects, status flag offsets, and story flag mutation are not implemented as gameplay systems."]},{"id":"completion-gate","title":"The project can be called a playable web version of Hwanse Chwihojeon","status":"partial","gaps":["Confirmed normal route coverage is far below full-game progression.","The playable completion gate is browser-local routeAssist completion, not the original full-game ending, normal-route promotion, or story flag completion.","Major original game systems beyond map walking, reviewed map transitions, and candidate/prototype gameplay surfaces are not implemented."]}],"blockingRequirements":[{"gateId":"strictSourceHotspot","required":"strict map1_01a source coordinate or hotspot linked to map2_02d","missingEvidence":"strict source coordinate","sourceArtifact":"out/route_promotion_gate.json"},{"gateId":"tileHotspotConfirmation","required":"confirmed normal gameplay tile trigger, not routeAssist/debug trial","missingEvidence":"tile hotspot confirmation","sourceArtifact":"out/route_promotion_gate.json"},{"gateId":"realSelector20Savedata","required":"non-synthetic captured savedat with selector 2:0 / selected pointer 0x00540714","missingEvidence":"real selector 2:0 captured savedata","sourceArtifact":"out/route_promotion_gate.json"},{"gateId":"selectedRootExecution","required":"runtime/static proof that selected pointer 0x0059de30 executes root 0x00540714","missingEvidence":"selected-root execution ref","sourceArtifact":"out/route_promotion_gate.json"},{"gateId":"runtimeTraceOrEquivalent","required":"watchpoint/runtime trace or equivalent selected-root proof","missingEvidence":"runtime trace/equivalent selected-root proof","sourceArtifact":"out/route_promotion_gate.json"}],"nextRequiredInputs":["Captured gameplay savedat with selector 2:0 and selected pointer 0x00540714 covering map1_01a -> map2_02d.","Stable selected-root runtime trace or equivalent proof for selected pointer 0x0059de30 executing root 0x00540714.","Strict map1_01a source coordinate or tile-hotspot proof linked to map2_02d."],"externalInputChecklist":[{"id":"real-selector-2-0-save","status":"missing","requiredInput":"Captured gameplay savedat with selector 2:0 and selected pointer 0x00540714 covering map1_01a -> map2_02d.","unblocksGates":["realSelector20Savedata","selectedRootExecution"],"acceptedSignals":["currentSelectorRealSaveCount > 0","selectedPointerRealSaveCount > 0","routePairRealSaveCount > 0","routeEvidenceProofFound == true"],"intakeArtifacts":["SAVEDATA/README.md","SaveData/README.md","out/savedata_slot_scan.html","out/save_selector_real_savedata_evidence_gap.html"],"refreshCommand":"python3 tools/refresh_savedata_route_proof.py --search-root <file-or-dir-or-zip>","sourceArtifact":"out/route_promotion_external_proof_handoff.html","stillNotAccepted":["constructed selector 2:0 diagnostic save","public save that does not contain selector 2:0 / pointer 0x00540714"]},{"id":"normal-route-runtime-trace","status":"blocked-by-environment","requiredInput":"Stable selected-root runtime trace or equivalent proof for selected pointer 0x0059de30 executing root 0x00540714.","unblocksGates":["runtimeTraceOrEquivalent","selectedRootExecution"],"acceptedSignals":["selected pointer 0x0059de30 becomes 0x00540714 on a normal route path","trace reaches 0x00542b0c frontier reader on a non-diagnostic path","trace captures 0x0059e348 producer or equivalent selected-root proof"],"intakeArtifacts":["out/runtime_trace_feasibility.html","out/runtime_trace_execution_probe.json","out/selected_root_execution_external_proof_packet.html"],"refreshCommand":"python3 tools/refresh_savedata_route_proof.py --search-root <file-or-dir-or-zip>","sourceArtifact":"out/route_promotion_external_proof_handoff.html","stillNotAccepted":["diagnostic patched selector poll","idle memory snapshot without route-path execution","green verifier output that only confirms the blocked state"]},{"id":"strict-source-hotspot","status":"missing","requiredInput":"Strict map1_01a source coordinate or tile-hotspot proof linked to map2_02d.","unblocksGates":["strictSourceHotspot","tileHotspotConfirmation"],"acceptedSignals":["strictSourceHotspotProofFound == true","tileHotspotConfirmed == true","candidate row links map1_01a source tile to map2_02d target"],"intakeArtifacts":["out/strict_source_hotspot_external_review_packet.html","out/map1_01a_strict_source_hotspot_context.json","out/map1_01a_strict_hotspot_review_matrix.html"],"refreshCommand":"python3 tools/refresh_savedata_route_proof.py --search-root <file-or-dir-or-zip>","sourceArtifact":"out/route_promotion_external_proof_handoff.html","stillNotAccepted":["selector-only scene-list edge","geometry/tile similarity without source tile execution","routeAssist trial transition"]}],"routePromotionFailedGates":[{"id":"strictSourceHotspot","required":"strict map1_01a source coordinate or hotspot linked to map2_02d","missingEvidence":"strict source coordinate","evidence":"directStrict=0, sourceOutgoingStrict=0, targetSelectorOnly=5, strictTargetProofFound=False, strictTargetFailedGates=direct-strict-event-transition,source-outgoing-strict-cluster,target-strict-cluster,selector-only-frontier-not-event-linked, strictTargetMissingEvidenceCount=4, coordinateCandidates=4, coordinateEncodings=80, spanBoundEncodings=32, targetSpawnEncodings=80, targetSpawnCurrentRoot/Character=18/43, targetSpawnClasses={\"selector-script-word\":18}/{\"character-descriptor-script-word\":43}, targetSpawnPromotable=0/0/True, targetSpawnStrict=False, strictCoordinateEvidenceFound=False, tileHotspotPattern=confirmedReviews:2/22,currentCandidates:4,low:4/4,center:0/4,low3x3:0/4,pair3x3:0/4,reviews:0,events:0,status:blocked, strictSourceHotspotContext=candidates=4, evidenceRefs=19, reviews=0, events=0, strict=False/False, proofFound=False, coordBlocked=True, variantBlocked=True, targetSpawnCoord=80/18/43/0/True, targetSpawnClasses={\"selector-script-word\":18}/{\"character-descriptor-script-word\":43}, byteCoord=24/0/0/66/False, targetByteCoord=24/0/15/False, cnsPayload=24/0/0,14,0/False, tileMatches=center:11,low3x3:0,pair:0, targetSpawnSig=points:0,matches:0/147/0,targetMap:0/0/0,low3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5,low3x3Target/Confirmed/Rejected=0/1/19,low3x3GenericOnly=True,zero:True/True/True, centerOwners=map1_02b->map1_01a:11, centerSame/Target/Confirmed/Rejected=0/0/0/11, allCenterRejected=True, targetLinked=0, direct=0, points=163/0, pointClasses=script-command-shaped-run:3,short-in-bounds-scalar-run:13,single-in-bounds-point:3,sentinel-0x003f-singleton:103,out-of-bounds-singleton:5,owned-point-table-non-route:2,short-out-of-bounds-scalar-run:4,resource-size-singleton:28,out-of-bounds-run:1,point-table-near-resource-reference:1, frontierPointClasses=sentinel-0x003f-singleton:16,resource-size-singleton:2/0, branch=resource-gate-before-scene-record, selectorOverlap=1/1, frontierBreadth=11/110/10/10, edgeTrigger=2/2/0/0, edgeLatchWindow=79/0/0, edgeGlobal=0/4/0, edgeScriptRunnerWindows=4/0/0/0, edgeSelectedPointerWindows=6/0, edgeEncoded=0/0/0/0/0;0/0/0/0/0;0/0/0/0/0;4/4/0/0/0, edgeEncodedClass=no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/edge-encoded-route-target-scalars-nonpromoting, edgeCallerWindows=1/0/0;20/0/0, edgeCallGraph=bounded-direct-callgraph-no-transition-path/7/24/0/0/0/6, edgeCallGraphSensitivity=6/True/True, edgeIndirectGraph=bounded-indirect-callgraph-no-static-transition-target/6/58/58/54/0/0/0, edgeIndirectLocal=True, manifestRoot=3/1/False;448/447/4/0/445/False, entryFrontier=0x005032d8/0x00542b44/3/False, sceneCluster=3/0/0/5/0/1/0/34/False, selectorBridge=0/0/False/3, edgeStatus=blocked-generic-edge-trigger-unproven, selectorOnly=True, proof=False, failedStrictHotspotGates=strict-source-coordinate,tile-hotspot-confirmation,strict-target-link,equivalent-runtime-trigger-proof, missingEvidenceCount=4, reject=selector-only-scene-list-no-strict-hotspot, status=blocked, sourceSaveLoad=class=source-ready-adaptive-exit-no-route, load=None/None:-, loadPublic=-, loadSource=False, loadRouteCurrent=False/False, coord=None/None:-, coordPublic=-, coordSourceStart=False/False, exit=7923/5:50:0,48:13,0:0, exitPublic=0:0, exitSource=True, exitCandidateOutside=False/False, exitRouteCurrent=False/False, adaptive=1881/4/4, adaptiveCandidateOutside=False/False, adaptiveRouteCurrent=False/False, adaptiveTrail=1476/4/4, adaptiveTrailCandidateOutside=False/False, adaptiveTrailRouteCurrent=False/False, readyDivert=source-ready-path-diverts-to-48:13-before-exit-candidates, readyPaths=8/0/0, firstNonSource=48:13, firstNonSourceCounts={\"48:13\":8}, diversionContext=non-route-selector-adjacency-only, diversionSelector=48:13, diversionMaps=map2_04l,map2_05e, diversionAdjacency=1/1/0/0, diversionCurrentProof=0, strictProof=False, selectedRootProof=False, routeEvidence=False, status=blocked, exitTargetRanking=exits=4, blockedExits=4, autoBlocked=2, returnOverlap=4, reciprocal=4, coordLike=3, coordPromotable=0, outgoing=2, targets=map1_02b,map2_02d, strictBacked=0, confirmedBacked=0, selectorOnly=2, blockedOcc=3, returnOcc=2, incomingConfirmed=2, status=blocked"},{"id":"tileHotspotConfirmation","required":"confirmed normal gameplay tile trigger, not routeAssist/debug trial","missingEvidence":"tile hotspot confirmation","evidence":"route queue still lists tile hotspot confirmation as missing evidence; strictEventTileSignature=11/228, reviewed=24, targetLinked=0, directSourceTarget=0, matches=center:1/4,low3x3:0/4,pair3x3:0/4, centerPairs=11, centerOwners=map1_02b->map1_01a:11, centerSame/Target/Confirmed/Rejected=0/0/0/11, allCenterRejected=True, targetSpawnSig=points:0,candidates:0/2/0,matches:0/147/0,targetMap:0/0/0,low3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5,low3x3Target/Confirmed/Rejected=0/1/19,low3x3GenericOnly=True,zero:True/True/True, targetZero=True, directZero=True, confirmedPair3x3Zero=True, tilePromotes=False; tileHotspotPattern=confirmedReviews:2/22,currentCandidates:4,low:4/4,center:0/4,low3x3:0/4,pair3x3:0/4,reviews:0,events:0,status:blocked; strictSourceHotspotContext=candidates=4, evidenceRefs=19, reviews=0, events=0, strict=False/False, proofFound=False, coordBlocked=True, variantBlocked=True, targetSpawnCoord=80/18/43/0/True, targetSpawnClasses={\"selector-script-word\":18}/{\"character-descriptor-script-word\":43}, byteCoord=24/0/0/66/False, targetByteCoord=24/0/15/False, cnsPayload=24/0/0,14,0/False, tileMatches=center:11,low3x3:0,pair:0, targetSpawnSig=points:0,matches:0/147/0,targetMap:0/0/0,low3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5,low3x3Target/Confirmed/Rejected=0/1/19,low3x3GenericOnly=True,zero:True/True/True, centerOwners=map1_02b->map1_01a:11, centerSame/Target/Confirmed/Rejected=0/0/0/11, allCenterRejected=True, targetLinked=0, direct=0, points=163/0, pointClasses=script-command-shaped-run:3,short-in-bounds-scalar-run:13,single-in-bounds-point:3,sentinel-0x003f-singleton:103,out-of-bounds-singleton:5,owned-point-table-non-route:2,short-out-of-bounds-scalar-run:4,resource-size-singleton:28,out-of-bounds-run:1,point-table-near-resource-reference:1, frontierPointClasses=sentinel-0x003f-singleton:16,resource-size-singleton:2/0, branch=resource-gate-before-scene-record, selectorOverlap=1/1, frontierBreadth=11/110/10/10, edgeTrigger=2/2/0/0, edgeLatchWindow=79/0/0, edgeGlobal=0/4/0, edgeScriptRunnerWindows=4/0/0/0, edgeSelectedPointerWindows=6/0, edgeEncoded=0/0/0/0/0;0/0/0/0/0;0/0/0/0/0;4/4/0/0/0, edgeEncodedClass=no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/edge-encoded-route-target-scalars-nonpromoting, edgeCallerWindows=1/0/0;20/0/0, edgeCallGraph=bounded-direct-callgraph-no-transition-path/7/24/0/0/0/6, edgeCallGraphSensitivity=6/True/True, edgeIndirectGraph=bounded-indirect-callgraph-no-static-transition-target/6/58/58/54/0/0/0, edgeIndirectLocal=True, manifestRoot=3/1/False;448/447/4/0/445/False, entryFrontier=0x005032d8/0x00542b44/3/False, sceneCluster=3/0/0/5/0/1/0/34/False, selectorBridge=0/0/False/3, edgeStatus=blocked-generic-edge-trigger-unproven, selectorOnly=True, proof=False, failedStrictHotspotGates=strict-source-coordinate,tile-hotspot-confirmation,strict-target-link,equivalent-runtime-trigger-proof, missingEvidenceCount=4, reject=selector-only-scene-list-no-strict-hotspot, status=blocked; sourceSaveLoad=class=source-ready-adaptive-exit-no-route, load=None/None:-, loadPublic=-, loadSource=False, loadRouteCurrent=False/False, coord=None/None:-, coordPublic=-, coordSourceStart=False/False, exit=7923/5:50:0,48:13,0:0, exitPublic=0:0, exitSource=True, exitCandidateOutside=False/False, exitRouteCurrent=False/False, adaptive=1881/4/4, adaptiveCandidateOutside=False/False, adaptiveRouteCurrent=False/False, adaptiveTrail=1476/4/4, adaptiveTrailCandidateOutside=False/False, adaptiveTrailRouteCurrent=False/False, readyDivert=source-ready-path-diverts-to-48:13-before-exit-candidates, readyPaths=8/0/0, firstNonSource=48:13, firstNonSourceCounts={\"48:13\":8}, diversionContext=non-route-selector-adjacency-only, diversionSelector=48:13, diversionMaps=map2_04l,map2_05e, diversionAdjacency=1/1/0/0, diversionCurrentProof=0, strictProof=False, selectedRootProof=False, routeEvidence=False, status=blocked; exitTargetRanking=exits=4, blockedExits=4, autoBlocked=2, returnOverlap=4, reciprocal=4, coordLike=3, coordPromotable=0, outgoing=2, targets=map1_02b,map2_02d, strictBacked=0, confirmedBacked=0, selectorOnly=2, blockedOcc=3, returnOcc=2, incomingConfirmed=2, status=blocked"},{"id":"realSelector20Savedata","required":"non-synthetic captured savedat with selector 2:0 / selected pointer 0x00540714","missingEvidence":"real selector 2:0 captured savedata","evidence":"localScan=missing, foundValid=0/0, real=None, valid=None, uniqueSha256=None, validRowsBlocked=None, realCandidateBlocks={}, workspaceDat=None, workspaceExpected=None, workspaceZipMembers=None, workspaceHidden=None, currentSelectorReal=None, selectedPointerReal=None, routePairReal=None, routePromotionReal=None, proofFound=None, routeEvidenceProof=None, realSelector20Save=None, routeEvidenceReject=None, requiredBytePair=None, capturedSplit=None/None/None, syntheticExcluded=None, publicCurrentCovered=None, failedSavedataGates=-, missingEvidenceCount=0, publicSearchNoteCount=None, latestPublicSearchNote=None, evidenceRefs=None, status=None"},{"id":"selectedRootExecution","required":"runtime/static proof that selected pointer 0x0059de30 executes root 0x00540714","missingEvidence":"selected-root execution ref","evidence":"selectedRootExecutionRefFound=False, runtimePollReachedRoute=False, selectedPointerUsage=global=0x0059de30, globalTextRefs=6, currentRoot=0x00540714, rootTextRefs=0, level2=0x005429dc, level2TextRefs=0, currentCodeRefs=0, hooks=6, writerHooks=4, readerHooks=2, opcode8Read=0x0040adfe, proofFound=False, usageProof=False, failedGates=static-current-selector-text-ref,selected-pointer-runtime-current-root,opcode08-current-root-activation,real-selector-2-0-savedata,strict-hotspot-or-runtime-producer, missingEvidenceCount=5, evidenceRefs=5, status=blocked, routeRootRefs=tableOnly=True, textRefs=False, splitPrev=True, currentPair=True, predToCurrent=False, routeOrder=False, proofFound=False, failedGates=selector-root-code-ref,predecessor-current-root-link,route-order-execution-proof,strict-hotspot-or-real-selector-proof, missingEvidenceCount=4, status=blocked, selectedRootSubgates=save=missing-current-selector, rows=8, static=table-only-no-text-ref, hook=trace-targets-prerequisites-unproven, dispatch=static-slice-only, opcode=no-non-current-producer, writer=current-internal-only, runtime=no-real-selector-2:0-observed, diagnostic=diagnostic-excluded, saveReal=0/0/0, hookPrereq=6/6/0/0, hookWindow=6/0, hookAllUnproven=True, hookGraph=selected-pointer-handler-callgraph-generic-only-contrast, hookGraphRoots/Fns/Calls=4/15/27, hookGraphRoute/current/record/selector/branch=0/0/0/0/0, hookGraphGeneric=6/1, hookGraphDepth=4/True/True, hookEncoded=0/0/0/0, hookEncodedClass=no-encoded-route-target-scalars-in-handler-graph, dispatchRefs=0/0, dispatchDynamic=3/3/0, dispatchArithmetic=116/0, nonCurrentRoot=0/0/0, nonCurrentRange=0/0/0, currentInternal=6/35, writerCount=4, currentInternalOnly=True, proofFound=False, failedSelectedRootGates=save-loader-selected-root,save-selector-dispatch-table-anchor,static-current-root-references,selected-pointer-hook-prerequisites,global-opcode-07-08-09-selected-pointer-paths,current-root-writer-paths,runtime-selected-pointer-probes,constructed-selector-2:0-diagnostic-exclusion, missingEvidenceCount=5, remainingProofs=5, evidenceRefs=8, anyPollRoute=False, constructedDiagnosticRoute=True, diagnosticExcluded=True, reject=selected-root-no-real-selector-no-execution-ref-diagnostic-excluded, diagnosticBranchState=374/164:2:0,10:0,50:0, diagnosticBranchAllZero=True, diagnosticBranchMatchesFill=False, diagnosticLeftStability=679, diagnosticLeftRouteSeq=left-load-right, diagnosticLeftObserved=50:0,10:0,2:0, diagnosticLeftRouteHits=125, diagnosticLeftOpcode24AllZero=True, diagnosticLeftRepro=not-reproduced, diagnosticLeftRecheckRouteHits=0, diagnosticLeftActiveOrderRecheckRouteHits=0, diagnosticLeftActiveOrderCount=0x00x679, status=blocked, predecessorFillOrder=fills=0x004844d0,0x004844d8, local=0x004844d0->0x004844dc:no-fixed-advance, containsFills=True, reachesReader=False, rootEntryReachesFills=False, directRefs=0/0, entryRefs=0, entryRootBranches=0, encodedEntry=raw-encoded-scalars-nonpromoting, encodedRaw=4, encodedTailRaw=4, encodedBranchAttached=0, encodedModeled=0, encodedPromoting=0, rawScalarReject=scalar-only-no-branch-or-fixed-advance, rawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailIsolated=True, rootTailBranchClasses={'before-root-tail': 262, 'inside-root-tail': 80, 'mapped-.data': 111, 'unmapped': 138}, rootTailBranchSections={'.data': 221, '.text': 3, 'unmapped': 367}, rootTailBranchToFill=0, rootTailBranchToReader=0, rootTailFixedToFill=0, rootTailClosure=591/7249/0/0, rootTailClosureOutside=512/{'before-root-tail': 262, 'inside-root-tail': 1, 'mapped-.data': 111, 'unmapped': 138}/{'.data': 142, '.text': 3, 'unmapped': 367}, rootTailClosureClass=branch-closure-no-fill-or-current-reader, rootTailBeforeFill=.data/0x00440c5c, descriptorBoundaries=True, rootStopDescriptor=0x00440a9c, fillStopDescriptor=0x00440c5c, sliceRuntimeProof=False, dispatchTableProof=False, dispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, dispatchMissingEvidenceCount=4, dispatchEvidenceRefs=3, descriptorDependsOnSlice=True, rawGeneralDiffers=2, sliceByteReachable=0, sliceRequiresTableBase=2, sliceDynamic=3/3/0, sliceDynamicScopeSites=0x00438456,0x004390b7,0x004390f3, sliceDynamicTableBaseCandidates=0, sliceTableBaseArithmetic=116/0, sliceDynamicTableBase=False, sliceDynamicTableBaseCandidateSites=-, tableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGeneric=raw-generic-handlers-nonroute-contrast, rawGenericHandlers=2, rawGenericRoute/fill/currentImm=0/0/0, rawGenericSelected/branchImm=0/0, rawGenericCalls=9, rawGenericMappedCalls=2, rawGenericMappedTargets=0x00416c77,0x004173db, rawGenericOneHopRoute/fill/currentImm=0/0/0, rawGenericOneHopSelected/branchImm=0/0, rawGenericRoute/fillTransfers=0/0, rawGenericOneHopRoute/fillTransfers=0/0, rawGenericOneHopRouteProof=False, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth=3, rawGenericCallGraphFunctions/Edges=4/10, rawGenericCallGraphRoute/fill/currentImm=0/0/0, rawGenericCallGraphSelected/branchImm=0/0, rawGenericCallGraphRoute/fillTransfers=0/0, rawGenericCallGraphDepthSensitivity=6/True/True, rawGenericCallGraphProof=False, rawGenericRouteProof=False, publicPred=True, runtimeFill=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntryStatus=field-entry-not-found, coordinateSource=start-coordinate-found-in-image-memory/save-camera-memory-only-no-route-object-coordinate-source, coordinateStartPtrStaticTrailImage=0/1/0/2, coordinateTrailPtrStaticTrailImage=0/0/7/10, coordinateReciprocalPtrStaticTrailImage=0/0/0/118, coordinateSourcePromotion=diagnostic-only, allZero=True, forwardBridge=False, routeOrder=False, mergeGap=True, routeMergeClosed=False, mergeRuntimeProof=False, mergeClosureProof=False, mergePersistenceUsable=False, proofGates=10/10, proofGatePass=0, proofGateAllBlocked=True, proofGateBlockedIds=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, failedPredecessorFillOrderGates=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, missingEvidenceCount=10, evidenceRefs=11, proof=False, status=blocked, secondaryFillEntryRefs=roots=1, routeOverlapRoots=0, predecessorCandidate=False, predecessorRefs=0/0/0, entrySelectors=55:0, entryNonRouteOnly=True, entryExclusion=non-route-only-entry-reference, predecessorDescriptorBridge=rootStop=0x004783e0->0x00440a9c, fillStop=0x004844dc->0x00440c5c, rootReachesFillDescriptor=True, rootToFill=False, fillSelfLoop=True, fillToCurrent=False, sharedDescriptorOnly=True, descriptorEdges=9/1, routeEdges=0/0, edgeReject=descriptor-only-no-route-execution-edge, edgeCounts=10/0, encodedTargets=1/1/0/0, encodedClass=descriptor-encoded-route-target-scalars-nonpromoting, edgeAllData=True, proof=False, topProof=False, failedDescriptorBridgeGates=root-stop-to-fill-bridge,fill-stop-to-current-bridge,route-execution-target-edge,descriptor-encoded-route-target-control-flow,runtime-or-decoded-nonlinear-vm-path, missingEvidenceCount=5, evidenceRefs=3, refs=reader:0/fill0:0/fill1:0, status=blocked, dataDescriptorOpcodeMap=predRootDescriptor=True, predFillDescriptor=True, d0Ops=0xc7,0xca,0xcd,0xd0,0xd3,0xd6,0xd9, c0Ops=0xc0,0xf5, d0Refs=.data, c0Refs=.data, directLeafDistinct=True, payloadLeaf=False, payloadFrontier=False, status=blocked, predecessorFillContext=progressSamples=4927, branchPolls=8/30/46919, publicHits=6, currentHits=0, routeHits=0, allZero=8, fillMatches=0, movementTarget=1@10928, targetObs=0@0, targetFillCurrentRoute=0/0/0, cameraOnlyTarget=0, actorTrailTarget=0, targetStatus=target-not-observed, branchGate=same-selection-slot-preserved-known-opcodes/True/True/0x20, branchGateWrites=0/0/3:0x0a,0x0d,0x68, branchGateInvalidFills=0x54,0xe6,0xe7, rootEntryVisited=23, encodedEntry=raw-encoded-scalars-nonpromoting, encodedRaw=4, encodedTailRaw=4, encodedPromoting=0, rawScalarReject=scalar-only-no-branch-or-fixed-advance, rawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailIsolated=True, rootTailBranchToFill=0, rootTailFixedToFill=0, descriptorNodes=949/2, descriptorFillEdges=0/0, descriptorEdgeReject=descriptor-only-no-route-execution-edge, descriptorRouteEdges=0/0, descriptorEncoded=1/1/0/0, descriptorEncodedClass=descriptor-encoded-route-target-scalars-nonpromoting, dispatchTableProof=False, dispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, dispatchMissingEvidenceCount=4, dispatchEvidenceRefs=3, tableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth/Functions/Edges=3/4/10, rawGenericCallGraphProof=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySelectors={'1:0': 12, '50:0': 2, '8:0': 2, '19:1': 6}, fieldEntryCameras={'5,15': 18, '0,0': 4}, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntrySnapshotSelectors={'8:0': 10, '1:0': 64, '50:0': 4, '19:1': 7}, fieldEntrySnapshotCameras={'0,0': 14, '5,15': 71}, fieldEntryClasses={'start-coordinate-found-in-image-memory': 18, 'start-coordinate-not-found-outside-camera-snapshot': 4}, coordinateClass=start-coordinate-found-in-image-memory, coordinateReject=save-camera-memory-only-no-route-object-coordinate-source, coordinateStartPtrStaticTrailImage=0/1/0/2, coordinateReciprocalPtrStaticTrailImage=0/0/0/118, proofGates=0/6, proofGateAllBlocked=True, proofGateFailedIds=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, proofFound=False, failedPredecessorFillGates=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, missingEvidenceCount=6, evidenceRefs=6, contextProof=False, status=blocked, selectorMergeRuntime=shapeOnly=True, forwardAbsent=True, reverseBeforeFill=True, forward=0/0/0, encoded=3/0/False, reverse=51/51/0, selectedRootRef=False, anyPollRoute=False, diagRoute=True, diagExcluded=True, predFillContext=False, predFillSamples=46919, predFillMatches=0, routePairEntry=False, correctedReader=2, strict=False/False, runtimeProof=False, gapOpen=True, status=blocked, selectorMergeExecution=currentEqualsPredPlusSource=True, routePairOnlyCurrent=True, unionExtra=map1_02b, exactPairs=0, forward=0/0/0, forwardMerge=0, reverse=51/51/0, encoded=3/0/False, aliasForward=10:0, aliasData=10:0, aliasTailData=10:0, aliasDominant=10:0, aliasPublicForward=-, aliasAddressForward=10:0, aliasPublicSamples=0, aliasCoverage=uncovered-address-adjacent-only, aliasExclusion=address-adjacent-alias-data-only, aliasPromotingMetaData=1/0, aliasExactMetadataOnly=True, aliasExec=False, routeRootRef=False, branchProof=False, executionProof=False, gapOpen=True, status=blocked, wrapperExecutionGap=wrapper=0x005429ac->0x00542a04->0x00542ae8, evidenceRows=13, evidenceRefs=11, remainingProofs=4, reader=0x00542b0c, beforeCurrent=True, currentRefsWrapper=False, wrapperRefs=1/1/0/1/0, wrapperFallthrough=1/0x005429ac/0xac->0x00000003/-, globalRoutePair=-13,-12,6,8, globalNegNonNeg=2/2, frontierLeafNegativeOnly=True, rootTableRefs=14/0, rootTableTextRefs=0/0/0/0, rootTableStatus=data-only-no-text-ref, normalSelectionGap=corrected-trace-not-normal-selection-proof, normalSelectionGapFound=True, routePair=2@6,8, correctedReader=2, geometryHits=0, readerNegative=-12, opcode07=33/0/0/0/0/0, op8CurrentRootRange=0/0, op9CurrentRangeStores=0, sourcePredCurrentProducers=0, diagnosticWrapperStatus=diagnostic-only-not-reproduced, diagnosticLeftRecheck=125/0/0, diagnosticActiveOrderCount=0x00x679, proofFound=False, failedWrapperGates=selected-root-execution,current-leaf-selection,wrapper-execution,current-selector-leaf-execution,strict-hotspot, missingEvidenceCount=5, runtimeSelection=False, leafProof=False, wrapperProof=False, selectorLeafProof=False, selectedRootRef=False, selectorMergeProof=False, strictHotspot=False, status=blocked, gateBaseProof=writer=0x005428bc, opcode20=0x005428a8, mode=mode 0, rows=7/1/3, gates=0x005428c4/0x005428cc, localBase=0/1, windowBase=1/True, proofFound=False, gateBaseProofFound=False, activeOrderProof=False, gateTimeBaseProof=False, failedGateBaseGates=opcode20-runtime-base-path,predecessor-state-persistence,strict-source-hotspot, missingEvidenceCount=3, nestedA8=5, script4=0/0/0/0/16, script4Encoded=0/0/0, script4EncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, specificBase=False, allScripts=0/0/362/0/0/False, allScriptsEncoded=0/0/0, allScriptsEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, activeOrderAlone=False/True, contextF2=204/141/63/65/16/0/False/True/blocked, publicPred=1689@1:0:0x01/0x00, publicRoute=False, publicBase=False, publicPredLeft=584@1:0:0x01/0x00, publicLeftRoute=False, publicLeftBase=False, diagnostic=210@50:0,2:0,10:0:0x01/0x00, diagnosticStatus=diagnostic-only, diagnosticBase=False, diagnosticRecheck=125/0/0, diagnosticRecheckCount=0x00x679, diagnosticRecheckBaseOpen=True, sampleCurrent=False, evidenceRefs=19, status=blocked, opcode24Mode1Producer=source=0x0059e348, rowCounts=95/2/2/259/3/3/12/333/6/3, sourceRefs=1/0/0/0/0, static=0x00/pe-zero-filled-section-tail/raw=False, saveBacked=False, noStaticProducer=True, indirect=0/0/0, fileRead=30/2/0/False, block=0/0/2, diagnostic=210/374:0x00/0x00/0x00, diagnosticStable=True, diagnosticStatus=diagnostic-only, diagnosticProof=False, runtimeEvidenceRefs=10, enabled=0x0059e34d/12/0/True/True/False/3, enabledBlock=0x0059e34d/2/0/0, currentRootModes=28/19/9/18/0/0, default=0x00/0x03/0/0/False, runtimeProducerRequired=True, status=blocked, runtimeTraceFeasibility=canRun=False, proofFound=False, failedRuntimeTraceGates=runtime-trace-capture-unavailable,stable-watchpoint-session-unavailable,equivalent-selected-root-proof-missing, missingEvidenceCount=3, evidenceRefs=17, blockers=6, execCanCapture=False, execBlockers=6, execProbeCount=18, virtualDesktopGdbstub=0/False/False, virtualDesktopRelocated=0/False/True/0/False/True, summaryBinfmt=True/True, execBinfmt=True, winePrefix=/home/exedev/.cache/hwanse-wine32, gdb=/bin/gdb-multiarch, sourceSaveLoad=class=source-ready-adaptive-exit-no-route, load=None/None:-, loadPublic=-, loadSource=False, loadRouteCurrent=False/False, coord=None/None:-, coordPublic=-, coordSourceStart=False/False, exit=7923/5:50:0,48:13,0:0, exitPublic=0:0, exitSource=True, exitCandidateOutside=False/False, exitRouteCurrent=False/False, adaptive=1881/4/4, adaptiveCandidateOutside=False/False, adaptiveRouteCurrent=False/False, adaptiveTrail=1476/4/4, adaptiveTrailCandidateOutside=False/False, adaptiveTrailRouteCurrent=False/False, readyDivert=source-ready-path-diverts-to-48:13-before-exit-candidates, readyPaths=8/0/0, firstNonSource=48:13, firstNonSourceCounts={\"48:13\":8}, diversionContext=non-route-selector-adjacency-only, diversionSelector=48:13, diversionMaps=map2_04l,map2_05e, diversionAdjacency=1/1/0/0, diversionCurrentProof=0, strictProof=False, selectedRootProof=False, routeEvidence=False, status=blocked, routeWatch=1123@45.0:8:0,50:0, routeWatchValues=opcode24Mode1Source=0x00x1123; opcode24CurrentObjectIndex=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, routeWatchReachedRoute=False, routePairEvidenceRows=11/2/1, routePairEvidenceRefs=10, routePairEntryIdx=6,8, correctedIdx=6,8, negativeReaderIdx=-12, globalRoutePairIdx=-13,-12,6,8, globalNegNonNeg=2/2, frontierLeafNegativeOnly=True, normalSelectionGap=corrected-trace-not-normal-selection-proof, normalSelectionGapFound=True, op7DirectAbsent=True, op8CurrentRootRange=0/0, op8Buckets=0:0:op8=31,currentRootRange=0/0,own=9,script=21,unreadable=1;1:0:op8=131,currentRootRange=0/0,own=15,script=86,unreadable=30, op8CurrentContrast=2:0:op8=67,currentRootRange=0/24,own=24,script=39,unreadable=4, op9CurrentRangeStores=0, op9Unsupported=5, op9UnsupportedModes=0x6c,0xfe, op9CollisionRows=1:0@0x0047da5c=0x00476c09/0x6c/.data;1:0@0x0047dad4=0x00476c09/0x6c/.data;1:0@0x0047dbcc=0x00476c09/0x6c/.data;1:0@0x0047dc88=0x00476c09/0x6c/.data;1:0@0x0047f2ac=0x0041fe09/0xfe/.text, sourcePredCurrentProducers=0, indexSourceEntryRefs=3/0/0, indexSourceEncoded=3/0/0/0, indexSourceEncodedClass=raw-encoded-entry-anchor-scalars-nonpromoting, indexSourceFallthrough=3/3, indexSourcePromoting=0/0, indexSourceHandlers=0x005429ac/0xac->0x00000003/-,0x005429f4/0xf4->0x00000004/-,0x005429fc/0xfc->0x004409b8/.data, indexSourceProven=False, rootTableRefs=14/0, rootTableEntryLeafFrontierReaderText=0/0/0/0, rootTableFrontierReaderRefs=0, wrapperEntryRunRefs=0, wrapperFallthroughRefs=1, wrapperFallthroughNonCodeRefs=1, wrapperFallthroughHandlers=0x005429ac/0xac->0x00000003/-, entryExec=False, status=blocked, predecessorDirectionSweep=3380@18.0:50:0,19:1,1:0, predecessorDirectionSweepPublic=1:0, predecessorDirectionSweepPublicHit=True, predecessorDirectionSweepReachedRoute=False, predecessorDirectionSweepValues=opcode24Mode1Source=0x00x3380; opcode24CurrentObjectIndex=0x00x3380; opcode24RuntimeFlag=0x00x3380, predecessorLeftOverrunActivationSweep=2299@18.0:50:0,19:1,1:0, predecessorLeftOverrunActivationSweepPublic=1:0, predecessorLeftOverrunActivationSweepPublicHit=True, predecessorLeftOverrunActivationSweepReachedRoute=False, predecessorLeftOverrunActivationSweepValues=opcode24Mode1Source=0x00x2299; opcode24CurrentObjectIndex=0x00x2299; opcode24RuntimeFlag=0x00x2299, predecessorBranchState=3377:19:1,1:0, predecessorBranchStatePublic=1:0, predecessorBranchStateActiveFlag=0x01, predecessorBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorBranchStateMatchesFill=False, predecessorBranchStateAllZero=True, predecessorBranchStateReachedRoute=False, predecessorHighFrequencyBranchState=2090@0.005:1:0,19:1,8:0, predecessorHighFrequencyBranchStatePublic=1:0, predecessorHighFrequencyBranchStateActiveFlag=0x01, predecessorHighFrequencyBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorHighFrequencyBranchStateMatchesFill=False, predecessorHighFrequencyBranchStateAllZero=True, predecessorHighFrequencyBranchStateReachedRoute=False, predecessorLeftOverrunActivationBranchState=2297:50:0, predecessorLeftOverrunActivationBranchStatePublic=-, predecessorLeftOverrunActivationBranchStateActiveFlag=0x01, predecessorLeftOverrunActivationBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorLeftOverrunActivationBranchStateMatchesFill=False, predecessorLeftOverrunActivationBranchStateAllZero=True, predecessorLeftOverrunActivationBranchStateReachedRoute=False, predecessorTrailStart=10928:19:1,1:0, predecessorTrailStartPublic=1:0, predecessorTrailStartClass=trail-start-movement-without-target, predecessorTrailStartValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailStartMatchesFill=False, predecessorTrailStartAllZero=True, predecessorTrailStartTargetObserved=False, predecessorTrailStartMove=True, predecessorTrailStartReachedRoute=False, predecessorTrailLeftOverrun=4297:50:0, predecessorTrailLeftOverrunPublic=-, predecessorTrailLeftOverrunClass=edge-target-not-observed, predecessorTrailLeftOverrunValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailLeftOverrunMatchesFill=False, predecessorTrailLeftOverrunAllZero=True, predecessorTrailLeftOverrunCameraTarget=False, predecessorTrailLeftOverrunCameraOutside=False, predecessorTrailLeftOverrunReachedRoute=False"},{"id":"runtimeTraceOrEquivalent","required":"watchpoint/runtime trace or equivalent selected-root proof","missingEvidence":"runtime trace/equivalent selected-root proof","evidence":"canRunRuntimeTraceNow=False, runtimePollReachedRoute=False, runtimeTraceEquivalentReject=trace-unavailable-no-equivalent-selected-root-proof-diagnostic-excluded, selectedPointerUsage=global=0x0059de30, globalTextRefs=6, currentRoot=0x00540714, rootTextRefs=0, level2=0x005429dc, level2TextRefs=0, currentCodeRefs=0, hooks=6, writerHooks=4, readerHooks=2, opcode8Read=0x0040adfe, proofFound=False, usageProof=False, failedGates=static-current-selector-text-ref,selected-pointer-runtime-current-root,opcode08-current-root-activation,real-selector-2-0-savedata,strict-hotspot-or-runtime-producer, missingEvidenceCount=5, evidenceRefs=5, status=blocked, predecessorFillOrder=fills=0x004844d0,0x004844d8, local=0x004844d0->0x004844dc:no-fixed-advance, containsFills=True, reachesReader=False, rootEntryReachesFills=False, directRefs=0/0, entryRefs=0, entryRootBranches=0, encodedEntry=raw-encoded-scalars-nonpromoting, encodedRaw=4, encodedTailRaw=4, encodedBranchAttached=0, encodedModeled=0, encodedPromoting=0, rawScalarReject=scalar-only-no-branch-or-fixed-advance, rawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailIsolated=True, rootTailBranchClasses={'before-root-tail': 262, 'inside-root-tail': 80, 'mapped-.data': 111, 'unmapped': 138}, rootTailBranchSections={'.data': 221, '.text': 3, 'unmapped': 367}, rootTailBranchToFill=0, rootTailBranchToReader=0, rootTailFixedToFill=0, rootTailClosure=591/7249/0/0, rootTailClosureOutside=512/{'before-root-tail': 262, 'inside-root-tail': 1, 'mapped-.data': 111, 'unmapped': 138}/{'.data': 142, '.text': 3, 'unmapped': 367}, rootTailClosureClass=branch-closure-no-fill-or-current-reader, rootTailBeforeFill=.data/0x00440c5c, descriptorBoundaries=True, rootStopDescriptor=0x00440a9c, fillStopDescriptor=0x00440c5c, sliceRuntimeProof=False, dispatchTableProof=False, dispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, dispatchMissingEvidenceCount=4, dispatchEvidenceRefs=3, descriptorDependsOnSlice=True, rawGeneralDiffers=2, sliceByteReachable=0, sliceRequiresTableBase=2, sliceDynamic=3/3/0, sliceDynamicScopeSites=0x00438456,0x004390b7,0x004390f3, sliceDynamicTableBaseCandidates=0, sliceTableBaseArithmetic=116/0, sliceDynamicTableBase=False, sliceDynamicTableBaseCandidateSites=-, tableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGeneric=raw-generic-handlers-nonroute-contrast, rawGenericHandlers=2, rawGenericRoute/fill/currentImm=0/0/0, rawGenericSelected/branchImm=0/0, rawGenericCalls=9, rawGenericMappedCalls=2, rawGenericMappedTargets=0x00416c77,0x004173db, rawGenericOneHopRoute/fill/currentImm=0/0/0, rawGenericOneHopSelected/branchImm=0/0, rawGenericRoute/fillTransfers=0/0, rawGenericOneHopRoute/fillTransfers=0/0, rawGenericOneHopRouteProof=False, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth=3, rawGenericCallGraphFunctions/Edges=4/10, rawGenericCallGraphRoute/fill/currentImm=0/0/0, rawGenericCallGraphSelected/branchImm=0/0, rawGenericCallGraphRoute/fillTransfers=0/0, rawGenericCallGraphDepthSensitivity=6/True/True, rawGenericCallGraphProof=False, rawGenericRouteProof=False, publicPred=True, runtimeFill=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntryStatus=field-entry-not-found, coordinateSource=start-coordinate-found-in-image-memory/save-camera-memory-only-no-route-object-coordinate-source, coordinateStartPtrStaticTrailImage=0/1/0/2, coordinateTrailPtrStaticTrailImage=0/0/7/10, coordinateReciprocalPtrStaticTrailImage=0/0/0/118, coordinateSourcePromotion=diagnostic-only, allZero=True, forwardBridge=False, routeOrder=False, mergeGap=True, routeMergeClosed=False, mergeRuntimeProof=False, mergeClosureProof=False, mergePersistenceUsable=False, proofGates=10/10, proofGatePass=0, proofGateAllBlocked=True, proofGateBlockedIds=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, failedPredecessorFillOrderGates=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, missingEvidenceCount=10, evidenceRefs=11, proof=False, status=blocked, secondaryFillEntryRefs=roots=1, routeOverlapRoots=0, predecessorCandidate=False, predecessorRefs=0/0/0, entrySelectors=55:0, entryNonRouteOnly=True, entryExclusion=non-route-only-entry-reference, predecessorDescriptorBridge=rootStop=0x004783e0->0x00440a9c, fillStop=0x004844dc->0x00440c5c, rootReachesFillDescriptor=True, rootToFill=False, fillSelfLoop=True, fillToCurrent=False, sharedDescriptorOnly=True, descriptorEdges=9/1, routeEdges=0/0, edgeReject=descriptor-only-no-route-execution-edge, edgeCounts=10/0, encodedTargets=1/1/0/0, encodedClass=descriptor-encoded-route-target-scalars-nonpromoting, edgeAllData=True, proof=False, topProof=False, failedDescriptorBridgeGates=root-stop-to-fill-bridge,fill-stop-to-current-bridge,route-execution-target-edge,descriptor-encoded-route-target-control-flow,runtime-or-decoded-nonlinear-vm-path, missingEvidenceCount=5, evidenceRefs=3, refs=reader:0/fill0:0/fill1:0, status=blocked, dataDescriptorOpcodeMap=predRootDescriptor=True, predFillDescriptor=True, d0Ops=0xc7,0xca,0xcd,0xd0,0xd3,0xd6,0xd9, c0Ops=0xc0,0xf5, d0Refs=.data, c0Refs=.data, directLeafDistinct=True, payloadLeaf=False, payloadFrontier=False, status=blocked, predecessorFillContext=progressSamples=4927, branchPolls=8/30/46919, publicHits=6, currentHits=0, routeHits=0, allZero=8, fillMatches=0, movementTarget=1@10928, targetObs=0@0, targetFillCurrentRoute=0/0/0, cameraOnlyTarget=0, actorTrailTarget=0, targetStatus=target-not-observed, branchGate=same-selection-slot-preserved-known-opcodes/True/True/0x20, branchGateWrites=0/0/3:0x0a,0x0d,0x68, branchGateInvalidFills=0x54,0xe6,0xe7, rootEntryVisited=23, encodedEntry=raw-encoded-scalars-nonpromoting, encodedRaw=4, encodedTailRaw=4, encodedPromoting=0, rawScalarReject=scalar-only-no-branch-or-fixed-advance, rawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailIsolated=True, rootTailBranchToFill=0, rootTailFixedToFill=0, descriptorNodes=949/2, descriptorFillEdges=0/0, descriptorEdgeReject=descriptor-only-no-route-execution-edge, descriptorRouteEdges=0/0, descriptorEncoded=1/1/0/0, descriptorEncodedClass=descriptor-encoded-route-target-scalars-nonpromoting, dispatchTableProof=False, dispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, dispatchMissingEvidenceCount=4, dispatchEvidenceRefs=3, tableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth/Functions/Edges=3/4/10, rawGenericCallGraphProof=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySelectors={'1:0': 12, '50:0': 2, '8:0': 2, '19:1': 6}, fieldEntryCameras={'5,15': 18, '0,0': 4}, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntrySnapshotSelectors={'8:0': 10, '1:0': 64, '50:0': 4, '19:1': 7}, fieldEntrySnapshotCameras={'0,0': 14, '5,15': 71}, fieldEntryClasses={'start-coordinate-found-in-image-memory': 18, 'start-coordinate-not-found-outside-camera-snapshot': 4}, coordinateClass=start-coordinate-found-in-image-memory, coordinateReject=save-camera-memory-only-no-route-object-coordinate-source, coordinateStartPtrStaticTrailImage=0/1/0/2, coordinateReciprocalPtrStaticTrailImage=0/0/0/118, proofGates=0/6, proofGateAllBlocked=True, proofGateFailedIds=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, proofFound=False, failedPredecessorFillGates=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, missingEvidenceCount=6, evidenceRefs=6, contextProof=False, status=blocked, selectorMergeRuntime=shapeOnly=True, forwardAbsent=True, reverseBeforeFill=True, forward=0/0/0, encoded=3/0/False, reverse=51/51/0, selectedRootRef=False, anyPollRoute=False, diagRoute=True, diagExcluded=True, predFillContext=False, predFillSamples=46919, predFillMatches=0, routePairEntry=False, correctedReader=2, strict=False/False, runtimeProof=False, gapOpen=True, status=blocked, selectorMergeExecution=currentEqualsPredPlusSource=True, routePairOnlyCurrent=True, unionExtra=map1_02b, exactPairs=0, forward=0/0/0, forwardMerge=0, reverse=51/51/0, encoded=3/0/False, aliasForward=10:0, aliasData=10:0, aliasTailData=10:0, aliasDominant=10:0, aliasPublicForward=-, aliasAddressForward=10:0, aliasPublicSamples=0, aliasCoverage=uncovered-address-adjacent-only, aliasExclusion=address-adjacent-alias-data-only, aliasPromotingMetaData=1/0, aliasExactMetadataOnly=True, aliasExec=False, routeRootRef=False, branchProof=False, executionProof=False, gapOpen=True, status=blocked, wrapperExecutionGap=wrapper=0x005429ac->0x00542a04->0x00542ae8, evidenceRows=13, evidenceRefs=11, remainingProofs=4, reader=0x00542b0c, beforeCurrent=True, currentRefsWrapper=False, wrapperRefs=1/1/0/1/0, wrapperFallthrough=1/0x005429ac/0xac->0x00000003/-, globalRoutePair=-13,-12,6,8, globalNegNonNeg=2/2, frontierLeafNegativeOnly=True, rootTableRefs=14/0, rootTableTextRefs=0/0/0/0, rootTableStatus=data-only-no-text-ref, normalSelectionGap=corrected-trace-not-normal-selection-proof, normalSelectionGapFound=True, routePair=2@6,8, correctedReader=2, geometryHits=0, readerNegative=-12, opcode07=33/0/0/0/0/0, op8CurrentRootRange=0/0, op9CurrentRangeStores=0, sourcePredCurrentProducers=0, diagnosticWrapperStatus=diagnostic-only-not-reproduced, diagnosticLeftRecheck=125/0/0, diagnosticActiveOrderCount=0x00x679, proofFound=False, failedWrapperGates=selected-root-execution,current-leaf-selection,wrapper-execution,current-selector-leaf-execution,strict-hotspot, missingEvidenceCount=5, runtimeSelection=False, leafProof=False, wrapperProof=False, selectorLeafProof=False, selectedRootRef=False, selectorMergeProof=False, strictHotspot=False, status=blocked, gateBaseProof=writer=0x005428bc, opcode20=0x005428a8, mode=mode 0, rows=7/1/3, gates=0x005428c4/0x005428cc, localBase=0/1, windowBase=1/True, proofFound=False, gateBaseProofFound=False, activeOrderProof=False, gateTimeBaseProof=False, failedGateBaseGates=opcode20-runtime-base-path,predecessor-state-persistence,strict-source-hotspot, missingEvidenceCount=3, nestedA8=5, script4=0/0/0/0/16, script4Encoded=0/0/0, script4EncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, specificBase=False, allScripts=0/0/362/0/0/False, allScriptsEncoded=0/0/0, allScriptsEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, activeOrderAlone=False/True, contextF2=204/141/63/65/16/0/False/True/blocked, publicPred=1689@1:0:0x01/0x00, publicRoute=False, publicBase=False, publicPredLeft=584@1:0:0x01/0x00, publicLeftRoute=False, publicLeftBase=False, diagnostic=210@50:0,2:0,10:0:0x01/0x00, diagnosticStatus=diagnostic-only, diagnosticBase=False, diagnosticRecheck=125/0/0, diagnosticRecheckCount=0x00x679, diagnosticRecheckBaseOpen=True, sampleCurrent=False, evidenceRefs=19, status=blocked, opcode24Mode1Producer=source=0x0059e348, rowCounts=95/2/2/259/3/3/12/333/6/3, sourceRefs=1/0/0/0/0, static=0x00/pe-zero-filled-section-tail/raw=False, saveBacked=False, noStaticProducer=True, indirect=0/0/0, fileRead=30/2/0/False, block=0/0/2, diagnostic=210/374:0x00/0x00/0x00, diagnosticStable=True, diagnosticStatus=diagnostic-only, diagnosticProof=False, runtimeEvidenceRefs=10, enabled=0x0059e34d/12/0/True/True/False/3, enabledBlock=0x0059e34d/2/0/0, currentRootModes=28/19/9/18/0/0, default=0x00/0x03/0/0/False, runtimeProducerRequired=True, status=blocked, runtimeTraceFeasibility=canRun=False, proofFound=False, failedRuntimeTraceGates=runtime-trace-capture-unavailable,stable-watchpoint-session-unavailable,equivalent-selected-root-proof-missing, missingEvidenceCount=3, evidenceRefs=17, blockers=6, execCanCapture=False, execBlockers=6, execProbeCount=18, virtualDesktopGdbstub=0/False/False, virtualDesktopRelocated=0/False/True/0/False/True, summaryBinfmt=True/True, execBinfmt=True, winePrefix=/home/exedev/.cache/hwanse-wine32, gdb=/bin/gdb-multiarch, sourceSaveLoad=class=source-ready-adaptive-exit-no-route, load=None/None:-, loadPublic=-, loadSource=False, loadRouteCurrent=False/False, coord=None/None:-, coordPublic=-, coordSourceStart=False/False, exit=7923/5:50:0,48:13,0:0, exitPublic=0:0, exitSource=True, exitCandidateOutside=False/False, exitRouteCurrent=False/False, adaptive=1881/4/4, adaptiveCandidateOutside=False/False, adaptiveRouteCurrent=False/False, adaptiveTrail=1476/4/4, adaptiveTrailCandidateOutside=False/False, adaptiveTrailRouteCurrent=False/False, readyDivert=source-ready-path-diverts-to-48:13-before-exit-candidates, readyPaths=8/0/0, firstNonSource=48:13, firstNonSourceCounts={\"48:13\":8}, diversionContext=non-route-selector-adjacency-only, diversionSelector=48:13, diversionMaps=map2_04l,map2_05e, diversionAdjacency=1/1/0/0, diversionCurrentProof=0, strictProof=False, selectedRootProof=False, routeEvidence=False, status=blocked, routeWatch=1123@45.0:8:0,50:0, routeWatchValues=opcode24Mode1Source=0x00x1123; opcode24CurrentObjectIndex=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, routeWatchReachedRoute=False, routePairEvidenceRows=11/2/1, routePairEvidenceRefs=10, routePairEntryIdx=6,8, correctedIdx=6,8, negativeReaderIdx=-12, globalRoutePairIdx=-13,-12,6,8, globalNegNonNeg=2/2, frontierLeafNegativeOnly=True, normalSelectionGap=corrected-trace-not-normal-selection-proof, normalSelectionGapFound=True, op7DirectAbsent=True, op8CurrentRootRange=0/0, op8Buckets=0:0:op8=31,currentRootRange=0/0,own=9,script=21,unreadable=1;1:0:op8=131,currentRootRange=0/0,own=15,script=86,unreadable=30, op8CurrentContrast=2:0:op8=67,currentRootRange=0/24,own=24,script=39,unreadable=4, op9CurrentRangeStores=0, op9Unsupported=5, op9UnsupportedModes=0x6c,0xfe, op9CollisionRows=1:0@0x0047da5c=0x00476c09/0x6c/.data;1:0@0x0047dad4=0x00476c09/0x6c/.data;1:0@0x0047dbcc=0x00476c09/0x6c/.data;1:0@0x0047dc88=0x00476c09/0x6c/.data;1:0@0x0047f2ac=0x0041fe09/0xfe/.text, sourcePredCurrentProducers=0, indexSourceEntryRefs=3/0/0, indexSourceEncoded=3/0/0/0, indexSourceEncodedClass=raw-encoded-entry-anchor-scalars-nonpromoting, indexSourceFallthrough=3/3, indexSourcePromoting=0/0, indexSourceHandlers=0x005429ac/0xac->0x00000003/-,0x005429f4/0xf4->0x00000004/-,0x005429fc/0xfc->0x004409b8/.data, indexSourceProven=False, rootTableRefs=14/0, rootTableEntryLeafFrontierReaderText=0/0/0/0, rootTableFrontierReaderRefs=0, wrapperEntryRunRefs=0, wrapperFallthroughRefs=1, wrapperFallthroughNonCodeRefs=1, wrapperFallthroughHandlers=0x005429ac/0xac->0x00000003/-, entryExec=False, status=blocked, predecessorDirectionSweep=3380@18.0:50:0,19:1,1:0, predecessorDirectionSweepPublic=1:0, predecessorDirectionSweepPublicHit=True, predecessorDirectionSweepReachedRoute=False, predecessorDirectionSweepValues=opcode24Mode1Source=0x00x3380; opcode24CurrentObjectIndex=0x00x3380; opcode24RuntimeFlag=0x00x3380, predecessorLeftOverrunActivationSweep=2299@18.0:50:0,19:1,1:0, predecessorLeftOverrunActivationSweepPublic=1:0, predecessorLeftOverrunActivationSweepPublicHit=True, predecessorLeftOverrunActivationSweepReachedRoute=False, predecessorLeftOverrunActivationSweepValues=opcode24Mode1Source=0x00x2299; opcode24CurrentObjectIndex=0x00x2299; opcode24RuntimeFlag=0x00x2299, predecessorBranchState=3377:19:1,1:0, predecessorBranchStatePublic=1:0, predecessorBranchStateActiveFlag=0x01, predecessorBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorBranchStateMatchesFill=False, predecessorBranchStateAllZero=True, predecessorBranchStateReachedRoute=False, predecessorHighFrequencyBranchState=2090@0.005:1:0,19:1,8:0, predecessorHighFrequencyBranchStatePublic=1:0, predecessorHighFrequencyBranchStateActiveFlag=0x01, predecessorHighFrequencyBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorHighFrequencyBranchStateMatchesFill=False, predecessorHighFrequencyBranchStateAllZero=True, predecessorHighFrequencyBranchStateReachedRoute=False, predecessorLeftOverrunActivationBranchState=2297:50:0, predecessorLeftOverrunActivationBranchStatePublic=-, predecessorLeftOverrunActivationBranchStateActiveFlag=0x01, predecessorLeftOverrunActivationBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorLeftOverrunActivationBranchStateMatchesFill=False, predecessorLeftOverrunActivationBranchStateAllZero=True, predecessorLeftOverrunActivationBranchStateReachedRoute=False, predecessorTrailStart=10928:19:1,1:0, predecessorTrailStartPublic=1:0, predecessorTrailStartClass=trail-start-movement-without-target, predecessorTrailStartValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailStartMatchesFill=False, predecessorTrailStartAllZero=True, predecessorTrailStartTargetObserved=False, predecessorTrailStartMove=True, predecessorTrailStartReachedRoute=False, predecessorTrailLeftOverrun=4297:50:0, predecessorTrailLeftOverrunPublic=-, predecessorTrailLeftOverrunClass=edge-target-not-observed, predecessorTrailLeftOverrunValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailLeftOverrunMatchesFill=False, predecessorTrailLeftOverrunAllZero=True, predecessorTrailLeftOverrunCameraTarget=False, predecessorTrailLeftOverrunCameraOutside=False, predecessorTrailLeftOverrunReachedRoute=False"}],"routePromotionHardBlockers":[{"id":"strictSourceHotspot","missingEvidence":"strict source coordinate","required":"strict map1_01a source coordinate or hotspot linked to map2_02d"},{"id":"tileHotspotConfirmation","missingEvidence":"tile hotspot confirmation","required":"confirmed normal gameplay tile trigger, not routeAssist/debug trial"},{"id":"realSelector20Savedata","missingEvidence":"real selector 2:0 captured savedata","required":"non-synthetic captured savedat with selector 2:0 / selected pointer 0x00540714"},{"id":"selectedRootExecution","missingEvidence":"selected-root execution ref","required":"runtime/static proof that selected pointer 0x0059de30 executes root 0x00540714"},{"id":"runtimeTraceOrEquivalent","missingEvidence":"runtime trace/equivalent selected-root proof","required":"watchpoint/runtime trace or equivalent selected-root proof"}],"routePromotionNextRequiredEvidence":["strict source coordinate","tile hotspot confirmation","real selector 2:0 captured savedata","selected-root execution ref","runtime trace/equivalent selected-root proof"],"criteria":[{"id":"resource-extraction","title":"Original resources are extracted into browser-consumable assets","status":"complete","evidence":["174 field maps are present in the generated map index.","The verifier checks image, WAV sound, map, save selector, and DirectX import outputs.","The web runtime wires extracted WLK effects into movement, dialogue, runtime menu, map-transition, and candidate battle feedback, including runtime-menu-sound markers for menu open/move/close.","out/home_landing_browser_smoke.* records the detailed review surface links: assetSplitRows=None, mapGallery=None, monster=None, audio=None, cnsRect=None.","out/runtime_music_cue_browser_smoke.* records WebKit runtime MIDDATA.MLK cue markers plus browser MIDI synth playback: title=scene=title map=map1_01a cue=title src=../extract_mlk/00.mid index=0 archive=MIDDATA.MLK log=1 synth=scheduled notes=194 synthSrc=../extract_mlk/00.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; map=scene=map map=map1_02b cue=map src=../extract_mlk/01.mid index=1 archive=MIDDATA.MLK log=1 synth=scheduled notes=330 synthSrc=../extract_mlk/01.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; battle=scene=battle map=map1_02b cue=battle src=../extract_mlk/08.mid index=8 archive=MIDDATA.MLK log=2 synth=scheduled notes=380 synthSrc=../extract_mlk/08.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; title/map/battle fetch the extracted .mid files and schedule WebAudio oscillator notes, while still avoiding claims about native DirectMusic playback or original music selection logic."],"gaps":[]},{"id":"map-rendering","title":"Field maps render without the previously broken tile layout/candidate modes","status":"partial","evidence":["0 maps have direct accepted render reviews.","0 tileset families can provide default render reviews.","Runtime render selection is covered for 0/174 maps by 0 direct accepted rows and 0 family-default rows, with 174 fallback rows.","Direct accepted render reviews cover every field map; old family-default/proxy render audits are no longer part of the active review surface.","The map review/gallery browser checks catch map preview scale/layout regressions.","The home landing browser smoke has not produced a current map-review summary report."],"gaps":["Expected all field maps to be covered by direct accepted rows with no family-default or fallback render rows."]},{"id":"movement-input","title":"Browser runtime supports walking, camera follow, desktop input, and mobile input","status":"partial","evidence":["The runtime has tile-step walking, camera follow, keyboard input, wall-slide movement, a touch virtual joystick, and mobile transition-review controls.","Sprite frame extraction and web verification cover the current character frame data.","out/runtime_timing.* identifies the original GetTickCount main-loop tick: frameIntervalMs=48, frameCap=3, nominalFps=20.833, updateTarget=0x00411476, webDefaultTileStepMs=48, exactActorConsumerStillInferred=False.","out/runtime_movement.* identifies the original per-frame movement/input consumer and tile projection: updateFunction=0x00411476, perFrameCalls=0x00422d74,0x00435c04,0x00432ff0, actionPacker=0x0042f6d2, continuousInputMask=0x0059e310, pressedEdgeMask=0x0059e312, cameraTileGlobals=0x004576dc/0x004576de, objectTileFields=+0xe8/+0xea, tileSizePixels=16, tileGridAndCameraConsumerGrounded=True, originalDrawPrepProjectionGrounded=True, partyActorDrawProjectionGrounded=True, partyActorAnimationStateValuesGrounded=True, originalSpriteFrameSelectorGrounded=True, originalFrameSelectorToSourceRectGrounded=True, originalSpriteFrameScriptTimerGrounded=True, actorAnimationStateDirectFrameMappingEliminated=True, actorAnimationStateToFrameSelectorPartyDescriptorsGrounded=True, objectDescriptorTableClassified=True, objectDescriptorTableRows=12, objectDescriptorPartyStateTableRows=[0, 1, 2], nonPartyDescriptorAnimationStateTablesAbsent=True, nonPartyDescriptorFieldMapRefsAbsent=True, descriptorActivationOrderPathGrounded=True, descriptorActivationOrderCountRuntimeVa=0x004576e8, descriptorActivationOrderBytesVa=0x004576e9, descriptorActivationSlotBaseVa=0x00457750, descriptorActivationLoadRebuildGrounded=True, descriptorActivationOpcode20SelfMutationEliminated=True, descriptorActivationCurrentSelectorActiveOrderStillUnproven=True, actorAnimationStateToFrameSelectorStillUnresolved=True, actorAnimationStateToFrameSelectorRemainingGap=the 12-row descriptor table is classified: rows 0..2 ground +0x68 -> +0x64 state-table frame scripts for Ataho/Rinshan/Smashu, while rows 3..11 are battle/effect/object resource descriptors without +0x68 state-table selectors or field-map refs; save-load active-order materialization is grounded, but current selector 2:0 active order and scripted behavior for non-player descriptors remain inferred, spriteFrameSelector=+0x28 via 0x00416ce2 surfaceTable=0x0055abd8, spriteFrameSelectorCounts=0/0, spriteFrameScriptTimer=0x00432ff0->0x00402321, spriteFrameOpcode=0x21@0x004405bc->0x004044bd, spriteFrameTimerField=+0x62, spriteFrameScriptPointer=+0x64, partyFrameDescriptorTable=0x00442d95, objectDescriptorTableClassification=the 12-row descriptor table has +0x68 animation state-table selectors only in rows 0..2 for the party walking descriptors; rows 3..11 are battle/effect/object resource descriptors with no +0x68 state-table selector and no field-map CNS refs, descriptorActivationOrder=save load calls 0x00432323 after count/order and slot blocks are read and before selector pointer selection; later add/remove active descriptor mutations are general-table opcode 0x62/0x63 paths, while the current selector 2:0 active order remains unproven because public samples do not cover it, descriptorActivationLoadRebuild=0x0042349c->0x00432323, partyFramePointerOpcode=0x20@0x004405b8->0x0040448a, partyFrameStateTableOpcode=0x18@0x00440598->0x0040408f, partyFrameStateCommand=18 a0 64 68 <state-table-va>, partyFrameResources=cara_at1.cns,cara_rs1.cns,cara_sm1.cns, partyFrameSurfaces=cara_at1.cns:0x11,cara_rs1.cns:0x14,cara_sm1.cns:0x17, webDefaultTileStepMs=48, webFrameQuantizedTileStepGrounded=True, webSourceRectSelectorMappingGrounded=True, webSourceRectSelectorCadenceGrounded=True, webSourceRectPhaseStillInferred=False, webWalkFrames=5, webIdleFrame=0, webFirstWalkFrame=1, webFrameSize=48x64, webWallSlideFallbackPresent=True, webDefaultCollisionMode=originalLayer1Flags, webCollisionFallbackStillInferred=True, webDefaultCollisionModeUsesOriginalLayer1Flags=True, exactActorWalkInterpolationStillInferred=True, webPositionInterpolationStillVisualApproximation=True, originalActorPositionModel=tile-field-snap-plus-fixed-point-draw-projection, originalActorSubTileInterpolationEvidenceFound=False, originalActorSubTileInterpolationEvidenceScope=identified actor controller tile mutations +0xe8/+0xea and draw projection writes +0x1c/+0x20, browserInterpolationClassification=browser-visual-overlay-not-original-proof, browserInterpolationOverlayDetected=True, browserInterpolationFixedPointPreserved=True, browserInterpolationOffsetField=interpolationOffset, browserInterpolationOverlayNotPromotingOriginal=True, exactActorSpriteFramePhaseStillInferred=False, actorController=0x0043022d, collisionHelper=0x004319f8, actorInputMaskRefs=24, actorTileFieldWrites=2/2, actorTrailRing=0x00574540/0x00574550/0x00574552/0x00574554, actorTrailSlots=7, actorTrailInitialCursors=0,4,1, partyActorProjection=party actor draw coordinates are recomputed from tile/trail entries; +0x68 stores direction/animation state; party frame scripts provide the selector phase outside the actor controller, collisionFlagTable=0x0058d7d0/0x0058d7ce, collisionFlagReads=4, directionBlockBits={'down': '0x02', 'up': '0x01', 'left': '0x04', 'right': '0x08'}, directionCaseCount=4, objectOverlapResponse=actor-overlap collision response after tile-flag checks, objectOverlapClearsDirectionLatch=True, mapCollisionLoader=0x0042449c, cnsLayer0Grid=0x00595af0, cnsLayer1CollisionGrid=0x0058d7d0, inputDrivenTileMutationGrounded=True, originalCollisionFlagTestsGrounded=True, originalCollisionFlagTableNotMappedToCnsTiles=False, originalCollisionFlagGridMappedToCnsLayer1=True, webOriginalLayer1FlagCollisionModePresent=False, webActorOverlapCollisionModePresent=True, webActorOverlapCollisionDefaultEnabled=False, webActorOverlapCollisionModeQuery=actorCollision=1 enables review-only party blocking, webActorOverlapCollisionStillOptIn=True, webPartyTrailHistoryPresent=True, webPartyTrailRingSlotCount=7, webPartyTrailRingMatchesOriginalSlotCount=True, webPartyTrailActorSlotCount=3, webPartyTrailInitialCursors=0,4,1, webPartyTrailCursorModelPresent=True, webPartyTrailInitialCursorsMatchOriginal=True, webPartyTrailRecordsAcceptedMoveTarget=True, webPartyTrailCallTimingMatchesOriginalTileMutation=True, webPartyTrailStillApproximate=False, webDefaultCollisionModeStillFallback=False.","out/non_party_descriptor_asset_links.* links non-party descriptor rows 3..11 to decoded/runtime assets without behavior promotion: promotionStatus=asset-linked-behavior-gap-remains, descriptorTable=0x00442d95, nonPartyRows=9, linkedCns=10, decoded/listed/resourceRefs=None/10/0, directBattlePartySprites=0, battleSpriteCandidates=5, fieldObjectOverlayCandidates=1, sceneLinkedZAssets=7, descriptorZAssetsWithSceneAnchors=1/5, descriptorZAssetsWithoutSceneAnchor=['zsa_saru', 'zsl_yoi', 'zsa_mi', 'zsa_kika'], fieldObjectOverlaySceneAnchorCount=1, detailReviewOnly=5, rowsWithoutFrameInitializer=[3], noAnimationStateTables=True, noFieldMapRefs=True, fieldObjectOverlaySceneAnchorLimitedToZsaIwa=True, descriptorZAssetsWithoutSceneAnchorsStayBattleOnly=True, currentSelectorActiveOrderProven=False, originalNonPartyDescriptorScriptBehaviorProven=False, originalFieldObjectRuntimeBound=False, originalBattleEntryProven=False.","tools/verify_mobile_runtime_controls.py guards the mobile joystick, A button, touch-action suppression, non-control document touch starts, direction mapping, and pointer-event wiring in source and HTTP responses.","The web movement loop uses tile-target stepping and wall-slide fallback: vertical input falls back to left/right, horizontal input falls back to up/down, and wallSlidePreference flips when the preferred side is blocked so held input can snake through narrow two-tile passages.","out/movement_candidate_review_summary.* records a deterministic WebKit movement cadence trace: map=map1_02b frameMs=48 tileStepMs=48 commands=1 cadence=8 walkFrames=5 start=11,12 target=12,12 selectors=start:3,tick1:16,tick2:3,tick3:3,tick4:3,idle-after-complete:3 sources=start:240,64,48x64,tick1:288,64,48x64,tick2:240,64,48x64,tick3:240,64,48x64,tick4:240,64,48x64,idle-after-complete:240,64,48x64 sourceMatches=True projectionBias=24,8 fixedShift=16 projectionMatches=True projections=start:200,200->160,144:fp13107200,13107200,tick1:216,200->176,144:fp14155776,13107200,tick2:216,200->176,144:fp14155776,13107200,tick3:216,200->176,144:fp14155776,13107200,tick4:216,200->176,144:fp14155776,13107200,idle-after-complete:216,200->176,144:fp14155776,13107200 movementDeltas=start:0,0,tick1:16,0,tick2:16,0,tick3:16,0,tick4:16,0,idle-after-complete:16,0 stepFractions=start:0.00,tick1:1.00,tick2:1.00,tick3:1.00,tick4:1.00,idle-after-complete:1.00 interpolationOffsets=start:0,0,tick1:0,0,tick2:0,0,tick3:0,0,tick4:0,0,idle-after-complete:0,0 samples=start:168,176:f0:p0:foot11,12,tick1:184,176:f0:p0:foot12,12,tick2:184,176:f0:p0:foot12,12,tick3:184,176:f0:p0:foot12,12,tick4:184,176:f0:p0:foot12,12,idle-after-complete:184,176:f0:p0:foot12,12; it verifies 48ms frame ticks, 48ms tile steps, 1 step command, 8-command original selector cadence, 5 walk frames, frame-quantized positions, right-facing selector/source-rect mapping, sourceMatches=True, original projection bias 24/8, fixed-point shift 16, browser projection-to-draw coordinate matches, browser tile snap at the original-frame step is verified through movementDeltas/stepFractions/interpolationOffsets, and footTile changes only at the completed target step without promoting original actor interpolation timing.","The movement smoke also verifies actual keyboard field movement WLK step feedback: map=map1_02b input=keyboard-movement from=11,12 target=12,12 after=12,12 stepActiveAfterInput=True stepActiveAfterComplete=False fieldMovementSound=field-movement-sound:step fieldMovementSoundSrc=../extract_wlk/00.wav fieldMovementSoundPlayed=True stepSoundCount=1 browserFieldMovementSound=True; the ArrowRight input starts a real tile step, records field-movement-sound with extract_wlk/00.wav, and keeps original actor movement/timing/story flag proof flags false.","The movement smoke also verifies blocked movement bump feedback from a real collision input: map=map1_02b source=movement-collision reason=collision from=29,10 target=30,10 direction=right playerStayed=True stepActive=False duration=220 log=1 render=True browserBump=True bumpSound=movement-bump-sound:menuMove bumpSoundSrc=../extract_wlk/03.wav bumpSoundPlayed=True bumpSoundCount=1 browserBumpSound=True originalObjectScriptCollisionRuntimeImplemented=False; the player remains on the same footTile, no step is started, the canvas renders a short bump marker on the blocked target tile, WLK menuMove feedback is recorded as movement-bump-sound, and the evidence keeps originalObjectScriptCollisionRuntimeImplemented=False.","The same movement smoke verifies prototype field status movement effects: map=map1_02b interval=4 steps=4 hp=36->34 damage=2 partialCounter=2 partialAutoSource=field-status-step-prototype progressCount=1 autoSaved=True autoSource=field-status-effect-prototype savedHp=34 savedPoison=True objective=후보 필드 상태 완료 map1_02b objectiveAction=field-status-completion-notice objectiveActiveId=field-status-complete:map1_02b partyHud=True hud=True statusFeedback=field-status-feedback:Ataho 독 -2 HP 34 statusFeedbackRender=True statusSound=battleHit statusSoundSrc=../extract_wlk/09.wav statusSoundPlayed=True noticeFeedback=field-status-feedback:field-status-completion-notice-feedback:필드 상태 완료 1/1 noticeFeedbackRender=True noticeSound=menuConfirm noticeSoundSrc=../extract_wlk/04.wav noticeSoundPlayed=True originalStatusFormulaImplemented=False; title continue restores partial counters, labels the saved status, and exposes the status-menu counter: titleContinue=True label=True statusLabel=True map=map1_02b tile=11,12 savedCounter=2 restoredCounter=2 restoredHp=36 restoredPoison=True autoSource=field-status-step-prototype quickLoadText=임시 불러오기 hud=True statusMenu=True statusFeedback=field-status-feedback:Ataho 독 2/4 statusFeedbackRender=True originalStatusFormulaImplemented=False; antidote cure resets the field counter and clears title/HUD/status-menu status: titleContinue=True label=True statusLabel=False map=map1_02b tile=11,12 count=1->0 counter=2->0 savedCounter=0 restoredCounter=0 restoredPoison=False autoSource=item-use-prototype quickLoadText=임시 불러오기 hud=False statusMenu=False statusFeedbackCleared=True originalStatusFormulaImplemented=False; antidote cure resets the paralysis field counter and clears stale movement HUD/status-menu state: titleContinue=True label=True statusLabel=False map=map1_02b tile=11,12 count=1->0 counter=2->0 savedCounter=0 restoredCounter=0 restoredParalysis=False autoSource=item-use-prototype quickLoadText=임시 불러오기 hud=False statusMenu=False staleCleared=True statusFeedbackCleared=True originalStatusFormulaImplemented=False; title continue after actual poison damage restores the saved HP/status and field status completion objective: titleContinue=True label=True statusLabel=True map=map1_02b tile=11,12 savedHp=34 restoredHp=34 restoredPoison=True autoSource=field-status-effect-prototype objective=후보 필드 상태 완료 map1_02b objectiveAction=field-status-completion-notice objectiveActiveId=field-status-complete:map1_02b quickLoadText=임시 불러오기 hud=True noticeFeedback=field-status-feedback:field-status-completion-notice-feedback:필드 상태 완료 1/1 noticeFeedbackRender=True noticeSound=menuConfirm noticeSoundSrc=../extract_wlk/04.wav noticeSoundPlayed=True originalStatusFormulaImplemented=False; paralysis blocks a deterministic field movement attempt and restores the completion objective through title continue: titleContinue=True label=True statusLabel=True attempts=3 blocked=1 tile=11,12 savedCounter=0 restoredCounter=0 restoredParalysis=True autoSource=field-status-movement-block-prototype objective=후보 필드 상태 완료 map1_02b objectiveAction=field-status-completion-notice objectiveActiveId=field-status-complete:map1_02b quickLoadText=임시 불러오기 hud=True statusMenu=True statusFeedback=field-status-feedback:Ataho 마비 이동 실패 statusFeedbackRender=True statusSound=menuMove statusSoundSrc=../extract_wlk/03.wav statusSoundPlayed=True noticeFeedback=field-status-feedback:field-status-completion-notice-feedback:필드 상태 완료 1/1 noticeFeedbackRender=True noticeSound=menuConfirm noticeSoundSrc=../extract_wlk/04.wav noticeSoundPlayed=True originalStatusFormulaImplemented=False; title continue restores partial paralysis movement counters and status-menu field counter text: titleContinue=True label=True statusLabel=True map=map1_02b tile=11,12 savedCounter=2 restoredCounter=2 restoredParalysis=True autoSource=field-status-movement-step-prototype quickLoadText=임시 불러오기 hud=True statusMenu=True statusFeedback=field-status-feedback:Ataho 마비 2/3 statusFeedbackRender=True originalStatusFormulaImplemented=False; it keeps poison/paralysis in runtimeState, applies field-status-effect-prototype after the configured movement interval, blocks prototype paralysis movement through field-status-movement-block-prototype, auto-saves intermediate field-status-step-prototype and field-status-movement-step-prototype counters, renders intermediate field-status-feedback overlays for poison/paralysis counters, records WLK status sound markers for actual poison damage and paralysis movement blocking, renders field-status-completion-notice-feedback overlays with WLK menuConfirm sound for field status completion notices, shows the party status name and latest field status damage/movement block in the play HUD, auto-saves the HP/status result, and exposes a field-status-completion-notice objective for the latest field status damage, and keeps originalStatusFormulaImplemented=False.","out/map3_runtime_browser_smoke.* records a focused WebKit run for the original goal's third map surface: map=map3_09a size=96x64 tilesets=map_a1,map_a2 render=layer1UnderSceneTilesets/row40_zero/accepted layout=planar_layers/accepted collision=originalLayer1Flags chunk=True; start=76,18 right=77,18 stepSound=step:../extract_wlk/00.wav:True; status=no-blocked-attempt-in-map from=None,None target=None,None reason=None render=False bumpSound=None:None:None originalRoutePromotionImplemented=False. It verifies the map3_09a chunk, accepted layer1UnderSceneTilesets/row40_zero render review, accepted planar layout review, originalLayer1Flags collision, a real right-tile movement from 76,18 to 77,18 with WLK step feedback, and a hard-blocked left movement bump at 75,18 with WLK menuMove feedback, while keeping originalRoutePromotionImplemented=False.","tools/verify_mobile_browser_controls.py runs the runtime in WebKitGTK and dispatches touch PointerEvents against the canvas and non-control document area to verify joystick activation, release, rendered movement, and current map/startTile URL persistence.","The WebKit mobile browser smoke also verifies that party=rinshan,smash survives touch movement, that the runtime menu party command persists a party query, and that quick save/load restores manual party selection when no savedat is loaded.","The debug map dropdown has a search filter, and the WebKit smoke verifies it narrows the 174-map list while preserving the current map selection.","out/mobile_browser_controls_summary.json records the compact WebKit browser run summary for canvas/document joystick activation, URL-synced movement, overviewButton URL sync, map filtering, runtime menu open/move/close WLK markers, menu party selection, manual party quick save/load, and mobile A-button routing; the checked-in raw mobile_browser_controls_smoke.json was removed, and the verifier regenerates it locally as an ignored output when needed."],"gaps":["Original frame timing, input masks, 16px tile/camera projection, draw-prep/projected-coordinate consumption, input-driven actor tile mutation, party actor draw projection from tile/trail entries, +0x28 sprite frame selector/source-rect/offset consumer, opcode 0x21 script/timer frame selector path, party actor +0x68-to-+0x64 frame-script descriptor tables for cara_at1/cara_rs1/cara_sm1, descriptor table rows 0..2 vs 3..11 classification, save-load active descriptor materialization through 0x00432323, web source-rect selector mapping, exact 8-command selector cadence, browser 48ms sub-tile interpolation, original collision flag tests, directional latch fallback cases, actor-overlap collision response, CNS layer1 collision flag grid, default web original layer1 collision mode, original companion tile/direction trail ring with initial cursors 0,4,1 and post-mutation leader-tile write timing, default web party actor-overlap collision, and 7-slot web party-trail cursor history are now identified. The original actor position model is tile-field snap plus fixed-point draw projection, while browser interpolation is classified as a visual overlay and not original proof; original actor interpolation timing remains unproven, and current selector 2:0 active order plus scripted behavior for non-player descriptors are still inferred."]},{"id":"runtime-resource-loading","title":"The web runtime loads only the needed startup resources and lazy map chunks","status":"complete","evidence":["The runtime uses out/maps_runtime.js plus per-map chunks instead of eagerly loading out/maps.js.","tools/verify_runtime_http.py smoke-checks /web/index.html, startup PNG/JS assets, key map chunks, and the save-selector trial URL through the local HTTP server.","out/runtime_music_cue_browser_smoke.* records WebKit runtime MIDDATA.MLK cue markers plus browser MIDI synth playback: title=scene=title map=map1_01a cue=title src=../extract_mlk/00.mid index=0 archive=MIDDATA.MLK log=1 synth=scheduled notes=194 synthSrc=../extract_mlk/00.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; map=scene=map map=map1_02b cue=map src=../extract_mlk/01.mid index=1 archive=MIDDATA.MLK log=1 synth=scheduled notes=330 synthSrc=../extract_mlk/01.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; battle=scene=battle map=map1_02b cue=battle src=../extract_mlk/08.mid index=8 archive=MIDDATA.MLK log=2 synth=scheduled notes=380 synthSrc=../extract_mlk/08.mid browserMusicCue=True browserMidiSynth=True originalMidiPlayback=False; title/map/battle fetch the extracted .mid files and schedule WebAudio oscillator notes, while still avoiding claims about native DirectMusic playback or original music selection logic."],"gaps":[]},{"id":"normal-progression","title":"Normal gameplay can progress through confirmed map transitions","status":"partial","evidence":["Confirmed transition points: 2.","Confirmed map edges: 1.","Reachable from title start: 2 maps (map1_02b, map1_01a).","out/title_start_browser_summary.* records a compact WebKit title-screen start: titleChecksum=4101021888, mapChecksum=913600737, started=map1_02b@11,12, submenuCancel=shop-buy->main->False, mobileMenuCancel=shop-buy->main->False, mobileBCancel=shop-buy->main->False, returnTitle=title menu=['start', 'playStart', 'startEncounters', 'loadSavedat', 'scanSavedat', 'sampleSavedat', 'routeAssist', 'routeGoal', 'home'] visible=['도구 선택 -', '전체 지도', '전투 탐색 켜기', '전투 선택', '전투', '임시 저장', '임시 불러오기 -', '제목'] pointerHit=26, titleSavedatRequest=title-menu parser=True, titleSavedatScan=found0/loadedFalse search=?savedatScan=1, titlePublicSavedat=flack3r-savedat2->map2_02d@5,14 selector=1:0 sampleSavedatRouteMissing=3 sampleSavedatRouteExternalInput=real-selector-2-0-save sampleSavedatMarkerMissing=3, savedTitlePublicSavedat=1:0@5,14 quickRouteMissing=3, continueTitlePublicSavedat=1:0->map2_02d@5,14 continueRouteMissing=3 label=이어하기 map2_02d 5,14 세이브 1:0, queryPlay=map2_02d->map1_02b@11,12 source=query-play-start fieldEncounter=True/0 autoSaved=True->map1_02b, playStart=map2_02d->map1_02b@11,12 fieldEncounter=True/0 autoSaved=True->map1_02b autoRoute=map2_02d, continuePlayStart=map2_02d->map1_02b@11,12 label=이어하기 map1_02b 11,12 전투 후보 map2_02d fieldEncounter=True/0, playStartNext=map2_02d->map1_01a@11,11 autoSaved=True fieldEncounter=True/0, playStartFocus=map2_02d->map1_01a@18,0 autoSaved=True fieldEncounter=True/0, playStartTarget=map2_02d->map2_02d@47,47 autoSaved=True routeTargetBlockReasons=5 routeTargetTrialOnly=trial-only: no map1_01a->map2_02d transition-review row +4 routeTargetFeedback=route-progress-feedback:후보 완료 1/1 map2_02d · trial-only: no map1_01a->map2_02d transition-review row +4 fieldEncounter=True/0, continuePlayStartTarget=map2_02d->map2_02d@47,47 label=이어하기 map2_02d 47,47 전투 후보 map2_02d fieldEncounter=True/0, playStartTargetEncounter=map2_02d@48,47 targetEncounterInput=True/{'x': 47, 'y': 47}->{'x': 48, 'y': 47} fieldEncounterVictoryCount=1 continuePlayStartTargetEncounter=map2_02d@48,47 label=이어하기 map2_02d 48,47 전투 후보 map2_02d 완료 map2_02d, playStartConfirmedInput=ArrowUp/map1_02b@11,12->map1_01a@11,11 autoSource=map-transition transitionFeedback=map-transition-feedback:맵 이동 map1_02b -> map1_01a confirmedTransitionSound=transition:../extract_wlk/07.wav:True transitionFeedbackRender=True, playStartCandidateInput=ArrowUp/map1_01a@18,0->map2_02d@47,47 autoSource=route-candidate transitionFeedback=route-candidate-feedback:후보 이동 map1_01a -> map2_02d · trial-only: no map1_01a->map2_02d transition-review row +4 candidateTransitionSound=transition:../extract_wlk/07.wav:True transitionFeedbackRender=True, continuePlayStartInput=map2_02d->map2_02d@47,47 label=이어하기 map2_02d 47,47 전투 후보 map2_02d, continue=map1_02b@11,12 label=이어하기 map1_02b 11,12, itemUseObjective=후보 도구 완료 map1_02b/완료 알림 확인 itemFeedback=inventory-item-use:herb:약초 HP +12 itemFeedbackRender=True itemFeedbackSound=item itemFeedbackSoundSrc=../extract_wlk/11.wav itemFeedbackSoundPlayed=True itemNoticeFeedback=inventory-item-completion-notice-feedback:도구 사용 완료 1/1 itemNoticeFeedbackRender=True itemNoticeSound=menuConfirm:../extract_wlk/04.wav:True itemFailFeedback=inventory-item-failed-feedback:herb:약초 대상 없음 itemFailFeedbackRender=True statusFailFeedback=inventory-item-failed-feedback:item_2:해독초 회복 대상 없음 statusFailFeedbackRender=True itemSoundItemCount=1 action=item-use-completion-notice active=item-use-complete:map1_02b notice=item-use-complete:map1_02b completion=약초:24->36, itemUseContinue=hp36/36/herb0/progress1 quickSaveFeedback=title-start-smoke-quick-save-feedback:임시 저장 map1_02b 11,12 quickSaveFeedbackRender=True quickSaveFeedbackSound=menuConfirm:../extract_wlk/04.wav:True quickLoadFeedback=title-continue-feedback:임시 불러오기 map1_02b 11,12 quickLoadFeedbackRender=True quickLoadFeedbackSound=menuConfirm:../extract_wlk/04.wav:True objective=후보 도구 완료 map1_02b/완료 알림 확인 action=item-use-completion-notice active=item-use-complete:map1_02b notice=item-use-complete:map1_02b completion=약초:1->0, encounterStart=map1_02b@11,12 fieldEncounter=True/0 modeAutoSource=field-encounter-enable modeFeedback=field-encounter-enable-feedback:전투 탐색 켬 0/6 modeAutoFeedback=field-encounter-enable-feedback:전투 탐색 켬 0/6 modeFeedbackRender=True stepAutoSource=field-encounter-step stepInput=True/{'x': 11, 'y': 12}->{'x': 12, 'y': 12} encounterFeedback=field-encounter-step-feedback:전투 탐색 1/6 encounterFeedbackRender=True encounterFeedbackSound=step:../extract_wlk/00.wav:True savedFieldEncounter=True/1, continueEncounter=map1_02b@12,12 label=이어하기 map1_02b 12,12 전투 fieldEncounter=True/1, disableAutoSource=field-encounter-disable disableFeedback=field-encounter-disable-feedback:전투 탐색 끔 1/6 disableAutoFeedback=field-encounter-disable-feedback:전투 탐색 끔 1/6 disableFeedbackRender=True continueDisabledEncounter=map1_02b@12,12 label=이어하기 map1_02b 12,12 fieldEncounter=False/0, routeAssistMenu=map1_02b@11,12, titleRouteGoal=map2_18d->map1_02b@11,12, continueRouteGoal=map2_18d->map1_02b@11,12 label=이어하기 map1_02b 11,12 후보 map2_18d, routeAssist=map1_02b@11,12 goal=map2_02d.","out/title_menu_sound_browser_smoke.* records WebKit title menu WLK sound markers: keyboard=scene=map map=map1_02b titleMenuSound=title-menu-sound:move,move,select titleMenuSoundSrcs=../extract_wlk/03.wav,../extract_wlk/03.wav,../extract_wlk/04.wav selectedKeys=startEncounters,playStart,playStart inputSources=keyboard,keyboard,keyboard menuMoveSoundCount=2 menuConfirmSoundCount=1 browserTitleMenuSound=True; pointer=scene=map map=map1_02b titleMenuSound=title-menu-sound:select titleMenuSoundSrcs=../extract_wlk/04.wav selectedKeys=playStart inputSources=canvas-pointer menuMoveSoundCount=None menuConfirmSoundCount=1 browserTitleMenuSound=True; mobile=scene=map map=map1_02b titleMenuSound=title-menu-sound:select titleMenuSoundSrcs=../extract_wlk/04.wav selectedKeys=playStart inputSources=mobile-action menuMoveSoundCount=None menuConfirmSoundCount=1 browserTitleMenuSound=True; ArrowDown/ArrowUp produce menuMove, while keyboard Enter, canvas pointer, and mobile A on the default playStart row produce menuConfirm before map start.","Map-exit trial mode reaches 13 maps using geometry-only exits, kept separate from confirmed gameplay.","The WebKit mobile browser smoke verifies the confirmed A-button transition from map1_02b to map1_01a and confirms the URL follows the current map/startTile after the transition.","The web runtime has a routeAssist trial mode that combines selector-only links and map-exit candidates, and the WebKit mobile browser smoke verifies a touch joystick transition from map1_01a to the map2_02d candidate route with routeAssist preserved in the URL, then activates the next candidate frontier and continues from map2_02d to map2_18d.","out/completion_candidate_review_summary.* verifies routeAssist progress overlay feedback in the normal progression path: recordedRoute carries routeProgressFeedback=route-progress-feedback:후보 진행 1/2 map2_02d with routeProgressFeedbackRender=True, blockReasons=5, and trialOnly=trial-only: no map1_01a->map2_02d transition-review row +4, chainedRoute carries routeProgressFeedback=route-progress-feedback:후보 완료 2/2 map2_18d, and continuation entries carry routeProgressFeedback=route-progress-feedback:후보 진행 1/2 map2_09g through routeProgressFeedback=route-progress-feedback:후보 진행 4/5 map2_14j with routeProgressSound=menuConfirm, routeProgressSoundSrc=../extract_wlk/04.wav, and routeProgressSoundPlayed=True while keeping originalRoutePromotionImplemented=False.","out/completion_candidate_review_summary.* verifies the browser-local routeNext chain from map1_02b to map5_40f: path=map1_02b -> map1_01a -> map2_02d -> map2_09g -> map2_11g -> map2_17h -> map2_15j -> map5_09h -> map5_07h -> map5_05h -> map5_03h -> map5_04h -> map5_02h -> map5_40f, actions=25, candidateEntries=12, final=map=map5_40f@65,39 routeGoal=map5_40f routePathValue=map5_40f routeNextText=완료 routeCandidateCount=12 savedRouteCandidateCount=12 savedPayloadMap=map5_40f pathProgress=후보 완료 12/12 originalRoutePromotionImplemented=False, titleContinue=titleContinue=True label=이어하기 map5_40f 65,39 후보 map5_40f clickOk=True map=map5_40f@65,39 quickLoadText=임시 불러오기 routeCandidateCount=12 savedRouteCandidateCount=12 pathProgress=후보 완료 12/12, fieldEncounter=map=map5_40f started=True battleId=event-dialogue-block-010:btl_f1 battleBackground=btl_f1 fieldEncounterVictoryCount=1 completionCompleted=True autoSource=field-encounter-victory originalRoutePromotionImplemented=False originalEncounterRuntimeImplemented=False, completionNotice=activeId=route-complete:map5_40f completionRouteCompleteCount=1 playableGate=prototype-playable-route-gate playableGateOpen=True playableGateLabel=웹 후보 루트 완료 map5_40f routeGateFeedback=route-completion-feedback:후보 완료 map5_40f routeGateFeedbackRender=True routeGateSound=victory routeGateSoundSrc=../extract_wlk/12.wav routeGateSoundPlayed=True, completionTitleContinue=titleContinue=True label=이어하기 map5_40f 66,39 전투 후보 map5_40f 완료 map5_40f clickOk=True map=map5_40f@66,39 routeCompleteCount=1 savedRouteCompleteCount=1 playableGateOpen=True, routeClearGate=activeId=route-clear:map5_40f routeClearCount=1 completionRouteClearCount=1 payloadRouteClearCount=1 autoSource=route-clear routeGateFeedback=route-clear-feedback:후보 클리어 map5_40f routeGateFeedbackRender=True routeGateSound=victory routeGateSoundSrc=../extract_wlk/12.wav routeGateSoundPlayed=True lines=후보 클리어 요약 map5_40f / 후보 진행 12 / 필드 전투 승리 1 / 완료 기록 1, routeClearTitleContinue=titleContinue=True label=이어하기 map5_40f 66,39 전투 후보 map5_40f 클리어 map5_40f clickOk=True map=map5_40f@66,39 routeCompleteCount=1 routeClearCount=1 savedRouteCompleteCount=1 savedRouteClearCount=1 routeNextText=클리어 playableGateOpen=True, while keeping originalRoutePromotionImplemented=False.","The WebKit mobile browser smoke also opens a routeGoal=map2_18d path from map1_02b and verifies the compact 다음/후보/진입 button flow follows the confirmed map1_02b->map1_01a edge, focuses the trial-only map1_01a->map2_02d blocker candidate, enters its routeAssist target, and click-throughs the post-blocker candidate to map2_18d while preserving routeGoal.","out/route_guide_browser_summary.json records a compact WebKit route-guide run for out/web_playtest_route.html: routeGoalLinks=25, savedatScanLinks=2, runtime=map1_02b->map2_18d routeAssist, waypoint=map1_02b->map1_01a 11,12 rendered=True browserRouteAssistWaypointImplemented=True originalRoutePromotionImplemented=False, waypointPrompt=Enter -> 다음 map1_01a promptImplemented=True, waypointEnter=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint-action runtime=map1_01a sound=menuConfirm:route-waypoint-action:True, waypointMobileAction=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint-action runtime=map1_01a sound=menuConfirm:route-waypoint-action:True, waypointAction=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint, waypointRuntime=map1_01a routeAutoSave=1, routeControl=route-next:map1_01a sound=menuConfirm:route-waypoint:True, waypointGuide=map1_01a->map2_02d direction=북동 distance=18칸 blocker=trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence blockReasons=5 missingEvidence=5 externalProofInputs=3 handoff=blocked goalChecklist=goal_completion_checklist.html strictHotspotChecklist=4/4/selector-only-scene-list-no-strict-hotspot lineRendered=True hud=길 다음 map2_02d 북동 18칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence browserRouteAssistWaypointGuideImplemented=True, waypointNudgePrompt=목표 -> 길 안내 map2_02d 북동 18칸 · trial-only: no map1_01a->map2_02d transition-review row +4 blockReasons=5 missingEvidence=5 promptImplemented=True, waypointClickNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=route-waypoint queued=True to=11,10 distance=17칸 externalProofInputs=3 hud=길 다음 map2_02d 북동 17칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence sound=step:route-waypoint:True browserRouteAssistWaypointNudgeImplemented=True, waypointNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=keyboard queued=True from=11,11 to=11,10 distance=17칸 hud=길 다음 map2_02d 북동 17칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence sound=step:keyboard:True browserRouteAssistWaypointNudgeImplemented=True, waypointToolbarNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=objective-action-button queued=True to=11,10 distance=17칸 sound=step:objective-action-button:True, waypointMobileNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=virtual-objective-button queued=True to=11,10 distance=17칸 sound=step:virtual-objective-button:True browserRouteAssistWaypointNudgeImplemented=True, waypointFollow=keyboard steps=18 arrived=True to=18,0 guide=도착, waypointFollowNext=keyboard action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:keyboard:True control=None:None, waypointToolbarFollow=objective-action-button steps=1 arrived=True to=18,0 guide=도착, waypointToolbarFollowNext=objective-action-button action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:objective-action-button:True control=None:None, waypointMobileFollow=virtual-objective-button steps=1 arrived=True to=18,0 guide=도착, waypointMobileFollowNext=virtual-objective-button action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:virtual-objective-button:True control=None:None.","The WebKit mobile browser smoke also loads a captured-save URL via savedatUrl=../data/public_savedata/flack3r/savedat2.dat and verifies it takes the same savedat parser/route-evidence path as file upload; the browser publishes the latest parsed route verdict to window.HWANSE_LAST_SAVEDAT_ROUTE_EVIDENCE for uploaded/URL/scanned saves, including missingEvidence/missingEvidenceCount/externalProofInputId checklist fields.","The runtime can scan SAVEDATA/savedat1.dat through savedat9.dat, SAVEDATA/savedat1.zip through savedat9.zip, and matching original-case SaveData aliases with savedatScan=1 or the tool-panel scan SAVEDATA savedat1-9 dat/zip option, prioritizes a real selector 2:0 route-evidence candidate when a captured save is present, and labels known constructed selector probes as synthetic diagnostics rather than real route proof.","web/index.html also accepts captured .dat/.zip saves by drag/drop onto the playfield; this uses the same loadSavedatFile parser and publishes window.HWANSE_LAST_SAVEDAT_DROP with selector, route-evidence status, missingEvidence/missingEvidenceCount/externalProofInputId, and route-missing HUD lines.","tools/scan_savedata_slots.py writes out/savedata_slot_scan.* from the same local savedat1-9 dat/zip range so uploaded captured saves can be checked from the terminal as well as the browser, and it fingerprints the synthetic selector probe separately so it never counts as real route evidence.","The same WebKit smoke loads the synthetic selector 2:0 diagnostic through the savedat File/loadSavedatFile path and the browser drag/drop loadDroppedSavedatFile path, verifies that both expose map1_01a/map2_02d route evidence, turns on routeAssist, and still labels the strict hotspot as needed.","out/mobile_browser_controls_summary.json records the compact WebKit route proof summary through confirmed map1_02b->map1_01a, routeGoalNext, routeGoalBlocker, routeGoalClickThrough, savedatUrl, savedatScan with a synthetic local scan probe explicitly labeled, synthetic selector 2:0, synthetic quick save/load metadata preservation, routeAssist map1_01a->map2_02d, and routeAssist continuation to map2_18d; the checked-in raw mobile_browser_controls_smoke.json was removed, and the verifier regenerates it locally as an ignored output when needed.","out/transition_review_shortlist_audit.* keeps the next active-nearest review queue non-promoting: rows=24, sources=3, targets=16, recordGroups=7, strictRows=24, zeroRenderRows=24, activeZeroRows=24, duplicateSourceTargetPointGroups=2, patchPreviewFileMatches=0/24, normalRoutePatchPreviewPromotions=0/24, reviewMode=manual-review-only, promotionStatus=not-auto-confirmed, normalRouteImpact=none until a reviewer merges a confirmed transition review into data/transition_reviews.json.","out/route_investigation_queue.* keeps the current route blocker tied to concrete next reverse-engineering tasks.","out/route_promotion_gate.* keeps map1_01a -> map2_02d promotion blocked behind hard prerequisites: promotionAllowed=False, failedPromotionGates=strictSourceHotspot,tileHotspotConfirmation,realSelector20Savedata,selectedRootExecution,runtimeTraceOrEquivalent, hardMissingEvidence=strict source coordinate,tile hotspot confirmation,selected-root execution ref,real selector 2:0 captured savedata,runtime trace/equivalent selected-root proof, strictSourceHotspot=False, tileHotspot=False, strictEventTileSignature=11/228, strictEventTileSignatureTargetLinked=0, strictEventTileSignatureDirect=0, strictEventTileSignaturePair3x3=0, strictEventTileSignatureCenterPairs=11, strictEventTileSignatureCenterOwners=map1_02b->map1_01a:11, strictEventTileSignatureCenterSameTargetConfirmedRejected=0/0/0/11, strictEventTileSignatureAllCenterRejected=True, strictEventTileSignatureTargetSpawnSig=points:0,candidates:0/2/0,matches:0/147/0,targetMap:0/0/0,zero:True/True/True, strictEventTileSignaturePromotes=False, strictSourceHotspotContext=4/0/0, strictSourceHotspotContextRows=17/3/4/3/4, strictSourceHotspotContextEvidenceRefs=19, strictSourceHotspotCandidates=top@18,0[coord=coordinate-like-hit-without-table-text-ref,review=0,event=0,standable=True/True,auto=True,boundary=True,blocks=5]; bottom@16,47[coord=no-exact-packed-coordinate-hit,review=0,event=0,standable=False/True,auto=True,boundary=True,blocks=5]; left@3,14[coord=coordinate-like-hit-without-table-text-ref,review=0,event=0,standable=True/True,auto=False,boundary=False,blocks=5]; right@34,19[coord=coordinate-like-hit-without-table-text-ref,review=0,event=0,standable=True/True,auto=False,boundary=False,blocks=5], strictSourceHotspotContextTargetSpawnCoord=80/18/43/0/True, strictSourceHotspotContextTargetSpawnClasses={\"selector-script-word\":18}/{\"character-descriptor-script-word\":43}, strictSourceHotspotContextTargetSpawnSig=points:0,matches:0/147/0,targetMap:0/0/0,zero:True/True/True, strictSourceHotspotContextByteCoord=24/0/0/66/False, strictSourceHotspotContextTargetByteCoord=24/0/15/False, strictSourceHotspotContextCnsPayload=24/0/0/14/0/False, strictSourceHotspotContextCenterOwners=map1_02b->map1_01a:11, strictSourceHotspotContextCenterSameTargetConfirmedRejected=0/0/0/11, strictSourceHotspotContextAllCenterRejected=True, strictSourceHotspotContextFrontierPointClasses={'sentinel-0x003f-singleton': 16, 'resource-size-singleton': 2}, strictSourceHotspotContextFrontierRouteHits=0, strictSourceHotspotContextProof=False, strictSourceHotspotContextTopProof=False, strictSourceHotspotContextFailedGates=strict-source-coordinate,tile-hotspot-confirmation,strict-target-link,equivalent-runtime-trigger-proof, strictSourceHotspotContextMissingEvidenceCount=4, strictSourceHotspotContextReject=selector-only-scene-list-no-strict-hotspot, strictSourceHotspotContextBranch=resource-gate-before-scene-record, strictSourceHotspotContextSelectorOverlap=1/1, strictSourceHotspotContextFrontierBreadth=11/110/10/10, strictSourceHotspotContextEdgeTrigger=2/2/0/0, strictSourceHotspotContextEdgeLatchWindow=79/0/0, strictSourceHotspotContextEdgeGlobal=0/4/0, strictSourceHotspotContextEdgeStatus=blocked-generic-edge-trigger-unproven, sourceSaveLoad=source-ready-adaptive-exit-no-route, sourceSaveLoadSamples=None/None/7923/1881/1476, sourceSaveLoadExit=50:0,48:13,0:0/0:0/True/False/False/False/False, sourceSaveLoadReady=source-ready-path-diverts-to-48:13-before-exit-candidates/8/0/0/48:13, sourceSaveLoadDiversion=non-route-selector-adjacency-only/48:13/map2_04l,map2_05e/False/False/False/1/1/0/0/0x00500000/0/False, sourceSaveLoadProofs=False/False/False, exitTargetRanking=4/4/2/4/4/3/0, exitTargetBlockedReturn=map2_02d/map1_02b/3/2, exitTargetRows=4/1/2/2/3, exitTargetOutgoing=2/0/0/2, exitTargetOutgoingTargets=map1_02b,map2_02d, exitTargetIncomingConfirmed=2, realSavedata=None/None, realSavedataUniqueSha256=None, realSavedataWorkspace=None/None, realSavedataRoutePromotion=None, realSavedataRequiredBytePair=None, realSavedataRouteEvidenceReject=None, realSavedataSyntheticExcluded=None, realSavedataEvidenceRefs=None, realSelector20Save=False, selectedRootExecution=False, selectedRootReject=selected-root-no-real-selector-no-execution-ref-diagnostic-excluded, selectedPointerUsage=0x0059de30/0x00540714, selectedPointerUsageRefs=6/0/0, selectedPointerProof=False, selectedPointerUsageProof=False, selectedPointerFailedGates=static-current-selector-text-ref,selected-pointer-runtime-current-root,opcode08-current-root-activation,real-selector-2-0-savedata,strict-hotspot-or-runtime-producer, selectedPointerMissingEvidenceCount=5, selectedPointerEvidenceRefs=5, routeRootRefs=True/False/False, selectedRootSubgates=missing-current-selector/table-only-no-text-ref/trace-targets-prerequisites-unproven/static-slice-only/no-non-current-producer/current-internal-only/no-real-selector-2:0-observed/diagnostic-excluded, selectedRootRemainingProofs=5, selectedRootEvidenceRefs=8, selectedRootTopProof=False, selectedRootFailedGates=save-loader-selected-root,save-selector-dispatch-table-anchor,static-current-root-references,selected-pointer-hook-prerequisites,global-opcode-07-08-09-selected-pointer-paths,current-root-writer-paths,runtime-selected-pointer-probes,constructed-selector-2:0-diagnostic-exclusion, selectedRootMissingEvidenceCount=5, selectedRootHookPrereq=6/6/0/0, selectedRootHookWindow=6/0, selectedRootHookAllUnproven=True, selectedRootHookGraph=selected-pointer-handler-callgraph-generic-only-contrast, selectedRootHookGraphRoots/Fns/Calls=4/15/27, selectedRootHookGraphRoute/current/record/selector/branch=0/0/0/0/0, selectedRootHookGraphGeneric=6/1, selectedRootHookGraphDepth=4/True/True, selectedRootHookEncoded=0/0/0/0, selectedRootHookEncodedClass=no-encoded-route-target-scalars-in-handler-graph, selectedRootDispatchRefs=0/0, selectedRootDispatchDynamic=3/0, selectedRootDispatchArithmetic=116/0, selectedRootDispatchTableBaseSwitch=6/0, selectedRootNonCurrentRoot=0/0/0, selectedRootNonCurrentRange=0/0/0, selectedRootAnyPollRoute=False, selectedRootConstructedDiagnosticRoute=True, selectedRootDiagnosticExcluded=True, diagnosticBranchState=374/164:2:0,10:0,50:0, diagnosticBranchAllZero=True, diagnosticBranchMatchesFill=False, predecessorFillOrder=0x004844d0,0x004844d8, predecessorFillOrderProof=False, predecessorFillOrderStops=0x004844dc/no-fixed-advance, predecessorFillOrderRootEntry=False, predecessorFillOrderEncoded=raw-encoded-scalars-nonpromoting/4/0, predecessorFillOrderRawScalarReject=scalar-only-no-branch-or-fixed-advance, predecessorFillOrderRawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, predecessorFillOrderRootTail=0xc0f0/12348, predecessorFillOrderRootTailIsolated=True, predecessorFillOrderRootTailBranchClasses={'before-root-tail': 262, 'inside-root-tail': 80, 'mapped-.data': 111, 'unmapped': 138}, predecessorFillOrderRootTailBranchSections={'.data': 221, '.text': 3, 'unmapped': 367}, predecessorFillOrderRootTailBranchToFill=0, predecessorFillOrderRootTailBranchToReader=0, predecessorFillOrderRootTailFixedToFill=0, predecessorFillOrderRootTailClosure=591/7249/0/0, predecessorFillOrderRootTailClosureClass=branch-closure-no-fill-or-current-reader, sliceRuntimeProof=False, descriptorDependsOnSlice=True, rawGeneralDiffers=2, sliceByteReachable=0, sliceRequiresTableBase=2, sliceDynamic=3/3/0, sliceDynamicScopeSites=0x00438456,0x004390b7,0x004390f3, sliceDynamicTableBaseCandidates=0, sliceTableBaseArithmetic=116/0, sliceDynamicTableBase=False, sliceDynamicTableBaseCandidateSites=-, tableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGeneric=raw-generic-handlers-nonroute-contrast, rawGenericHandlers=2, rawGenericRoute/fill/currentImm=0/0/0, rawGenericSelected/branchImm=0/0, rawGenericCalls=9, rawGenericMappedCalls=2, rawGenericMappedTargets=0x00416c77,0x004173db, rawGenericOneHopRoute/fill/currentImm=0/0/0, rawGenericOneHopSelected/branchImm=0/0, rawGenericRoute/fillTransfers=0/0, rawGenericOneHopRoute/fillTransfers=0/0, rawGenericOneHopRouteProof=False, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth=3, rawGenericCallGraphFunctions/Edges=4/10, rawGenericCallGraphRoute/fill/currentImm=0/0/0, rawGenericCallGraphSelected/branchImm=0/0, rawGenericCallGraphRoute/fillTransfers=0/0, rawGenericCallGraphDepthSensitivity=6/True/True, rawGenericCallGraphProof=False, rawGenericRouteProof=False, predecessorDescriptorBridgeProof=False, predecessorDescriptorBridgeStops=0x004783e0->0x00440a9c/0x004844dc->0x00440c5c, predecessorDescriptorBridgeSharedOnly=True, predecessorDescriptorBridgeEdges=9/1, predecessorDescriptorBridgeRouteEdges=0/0, predecessorDescriptorBridgeEncoded=1/1/0/0, predecessorDescriptorBridgeEncodedClass=descriptor-encoded-route-target-scalars-nonpromoting, dataDescriptorStops=True/True, dataDescriptorD0Ops=0xc7,0xca,0xcd,0xd0,0xd3,0xd6,0xd9, dataDescriptorC0Ops=0xc0,0xf5, dataDescriptorRefs=.data/.data, dataDescriptorPayloadFrontier=False, predecessorFillContext=46919/6/0, predecessorFillContextEncoded=raw-encoded-scalars-nonpromoting/4/0, predecessorFillContextRawScalarReject=scalar-only-no-branch-or-fixed-advance, predecessorFillContextRawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, predecessorFillContextDispatchTableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, predecessorFillContextProven=False, predecessorFillContextProofFound=False, predecessorFillContextFailedGates=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, predecessorFillContextMissingEvidenceCount=6, predecessorFillOrderFailedGates=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, predecessorFillOrderMissingEvidenceCount=10, selectorMergeRuntime=True/True/True, selectorMergeRuntimeForward=0/0/0, selectorMergeRuntimeReverse=51/51/0, selectorMergeRuntimeProof=False, selectorMergeRuntimeGapOpen=True, routePairEvidenceRefs=10, wrapperExecutionGap=0x005429ac/0x00542a04/0x00542ae8, wrapperExecutionGapEvidenceRefs=11, wrapperExecutionGapProofs=False/False/False, wrapperExecutionGapProofFound=False, wrapperExecutionGapFailedGates=selected-root-execution,current-leaf-selection,wrapper-execution,current-selector-leaf-execution,strict-hotspot, wrapperExecutionGapMissingEvidenceCount=5, wrapperExecutionGapOpcode07=33/0/0/0/0/0, wrapperExecutionGapReaderNegative=-12, wrapperExecutionGapNormalSelection=corrected-trace-not-normal-selection-proof/True, wrapperExecutionGapRootTable=14/0/0/0/0/0/data-only-no-text-ref, wrapperExecutionGapRoutePair=2/2, wrapperExecutionGapFallthrough=1/0x005429ac/0xac->0x00000003/-, wrapperExecutionGapDiagnostic=diagnostic-only-not-reproduced/125/0/0/0x00x679, gateBaseProof=0x005428bc/0x005428a8/mode 0, gateBaseProofRows=7/1/3, gateBaseProofGates=0x005428c4/0x005428cc, gateBaseProofProofFound=False, gateBaseProofFailedGates=opcode20-runtime-base-path,predecessor-state-persistence,strict-source-hotspot, gateBaseProofMissingEvidenceCount=3, gateBaseProofProofs=False/False/False/False, gateBaseProofLocal=0/1/1/True, gateBaseProofScript4=0/0/0/0/16, gateBaseProofScript4Encoded=0/0/0, gateBaseProofScript4EncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, gateBaseProofAllScripts=0/0/362/0/0/False, gateBaseProofAllScriptsEncoded=0/0/0, gateBaseProofAllScriptsEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, gateBaseProofActiveOrder=False/True, gateBaseProofContextF2=204/141/63/65/2/61/0/16/0/False/True/blocked, gateBaseProofPublic=1689/0x01/0x00/False/False, gateBaseProofPublicLeft=584/0x01/0x00/False/False, gateBaseProofDiagnostic=210/0x01/0x00/False/diagnostic-only, gateBaseProofDiagnosticRecheck=125/0/0/0x00x679/True, gateBaseProofEvidenceRefs=19, gateBaseProofStatus=blocked, opcode24Mode1=0x0059e348/1/0/0/0/0, opcode24Mode1Rows=95/2/2/259/3/3/12/3/3/333/6/3, opcode24Mode1Runtime=0x00/False/True/True, opcode24Mode1Diagnostic=210/374/0x00/0x00/0x00/False/diagnostic-only, opcode24Mode1RuntimeProofFound=False, opcode24Mode1RuntimeFailedGates=indirect-runtime-producer,opcode24-route-stream-selection,strict-hotspot, opcode24Mode1RuntimeMissingEvidenceCount=3, opcode24Mode1RuntimeEvidenceRefs=10, opcode24Mode1IndirectBlock=0/0/0/0/0/2, opcode24RuntimeEnabled=0x0059e34d/12/0/True/True, opcode24RuntimeEnabledProofFound=False, opcode24RuntimeEnabledFailedGates=runtime-enabled-flag-producer,mode1-source-runtime-producer,selected-root-or-strict-hotspot-proof, opcode24RuntimeEnabledMissingEvidenceCount=3, opcode24RuntimeEnabledBlock=0x0059e300..0x0059e34d/333/2/0/0, opcode24CurrentRootModes=28/19/9/18/0/0, opcode24Default=0x03/0/0/False/True, opcode24Status=blocked, runtimeTraceCanRunNow=False, runtimeTraceProof=False, runtimeTraceFailedGates=runtime-trace-capture-unavailable,stable-watchpoint-session-unavailable,equivalent-selected-root-proof-missing, runtimeTraceMissingEvidenceCount=3, runtimeTraceEquivalentReject=trace-unavailable-no-equivalent-selected-root-proof-diagnostic-excluded, runtimeRouteWatchSamples=1123, runtimeRouteWatchValues=opcode24Mode1Source=0x00x1123; opcode24CurrentObjectIndex=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, runtimeRouteWatchReachedRoute=False, predecessorBranchStateSamples=3377, predecessorBranchStateObserved=19:1,1:0, predecessorBranchStateActiveFlag=0x01, predecessorBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorBranchStateMatchesFill=False, predecessorBranchStateAllZero=True, predecessorBranchStateReachedRoute=False, predecessorHighFrequencyBranchStateSamples=2090, predecessorHighFrequencyBranchStateInterval=0.005, predecessorHighFrequencyBranchStateObserved=1:0,19:1,8:0, predecessorHighFrequencyBranchStateActiveFlag=0x01, predecessorHighFrequencyBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorHighFrequencyBranchStateMatchesFill=False, predecessorHighFrequencyBranchStateAllZero=True, predecessorHighFrequencyBranchStateReachedRoute=False, predecessorLeftOverrunActivationBranchStateSamples=2297, predecessorLeftOverrunActivationBranchStateObserved=50:0, predecessorLeftOverrunActivationBranchStateActiveFlag=0x01, predecessorLeftOverrunActivationBranchStateValues=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorLeftOverrunActivationBranchStateMatchesFill=False, predecessorLeftOverrunActivationBranchStateAllZero=True, predecessorLeftOverrunActivationBranchStateReachedRoute=False, predecessorRouteAttempt=13/60/59816, predecessorRouteAttemptPublicFiles=11, predecessorRouteAttemptRouteCurrentHits=0/0, predecessorRouteAttemptDominantDiversion=19:1, predecessorRouteAttemptDiversionContexts=3/2/1, predecessorRouteAttemptRouteEvidence=False, predecessorRouteAttemptStatus=blocked, coordinateCandidates=4, coordinateEncodings=80, strictCoordinateEvidenceFound=False, localSavedata=missing, localSavedataProof=None, localSavedataFailedGates=-, localSavedataMissingEvidenceCount=0, localSavedataEvidenceRefs=None, status=blocked.","route_promotion_gate next action evidence refs: p1:out/save_selector_predecessor_branch_state_execution_gap.json,out/save_selector_predecessor_fill_execution_order_gap.json,out/save_selector_predecessor_fill_opcode10_context.json,out/save_selector_predecessor_fill_site_execution_context.json,out/save_selector_predecessor_descriptor_bridge_gap.json,out/save_selector_merge_runtime_context.json,out/save_selector_selected_root_execution_gap.json,out/runtime_predecessor_coordinate_source_scan.json,out/runtime_predecessor_route_attempt_context.json status=open task=Prove predecessor fill-site execution/order before the current reader. why=The public predecessor runtime path reaches selector 1:0 but leaves secondaryBranchState all zero; local/static reset evidence is closed, so the next proof is whether the 1:0 fill sites execute before the 0x00542b0c reader. gates=selectedRootExecution,runtimeTraceOrEquivalent inputs=selected-root-execution-proof,runtime-trace-or-equivalent-proof; p2:out/save_selector_predecessor_persistence_gap.json,out/save_selector_predecessor_route_order.json,out/save_selector_merge_runtime_context.json,out/save_selector_merge_closure_context.json,out/save_selector_merge_execution_gap.json,out/save_selector_set_decomposition.json,out/save_selector_target_alias_bridges.json,out/save_selector_route_root_ref_context.json,out/save_selector_reverse_reuse_context.json,out/save_selector_merge_bridge_matrix.json,out/save_selector_route_pair_entry_execution_gap.json status=open task=Resolve selector merge before using predecessor 1:0 persistence. why=The confirmed source-side route overlaps selector 0:0, while predecessor 1:0 is target-side only. The current 2:0 row looks like a merge of those selector lists, not a proven execution sequence. gates=selectedRootExecution inputs=selected-root-execution-proof; p3:out/save_selector_scene_list_context.json,out/save_selector_frontier_reader_branch_context.json,out/save_selector_frontier_payload_shape.json,out/save_selector_scene_adjacency_index.json status=blocked task=Treat the save-selector branch as a resource/scene-list gate, not a map transition. why=The branch target is a character/object CNS resource, while the target map appears later as another scene record in the selector list. gates=strictSourceHotspot,tileHotspotConfirmation inputs=strict-source-coordinate-or-hotspot-proof,tile-hotspot-confirmation-proof; p5:out/map1_01a_strict_source_hotspot_context.json,out/map1_01a_strict_hotspot_review_matrix.json,out/map1_01a_exit_coordinate_variant_scan.json,out/map_exit_coordinate_refs.json,out/map1_01a_exit_coordinate_context.json,out/map1_01a_exit_byte_coordinate_scan.json,out/map1_01a_exit_cns_payload_scan.json,out/original_collision_route_audit.json,out/map1_01a_tile_hotspot_pattern_contrast.json,out/map1_01a_strict_event_tile_signature_scan.json,out/map1_01a_edge_trigger_gap.json,out/runtime_source_save_load_variant_context.json,out/map1_01a_exit_target_ranking.json status=open task=Find a strict source coordinate or hotspot before promotion. why=The frontier currently comes from save-selector scene links, not from event transition coordinates. gates=strictSourceHotspot,tileHotspotConfirmation inputs=strict-source-coordinate-or-hotspot-proof,tile-hotspot-confirmation-proof; p6:out/save_selector_selected_root_execution_gap.json,out/save_selector_wrapper_execution_gap.json,out/save_selector_route_pair_entry_execution_gap.json,out/save_selector_route_pair_index_source_gap.json,out/save_selector_leaf_table_context.json,out/save_selector_leaf_index_space.json,out/save_selector_leaf_table_global_context.json,out/save_selector_route_pair_descriptor_context.json,out/save_selector_opcode2c_route_pair_context.json,out/save_selector_current_writer_paths.json status=open task=Prove current selector leaf selection and wrapper execution. why=The current 2:0 root contains route-adjacent leaves, but the traced reader leaf is indirect and the direct opcode 0x07/object+0x61 paths do not select the frontier. gates=selectedRootExecution,runtimeTraceOrEquivalent inputs=selected-root-execution-proof,runtime-trace-or-equivalent-proof; p7:out/save_selector_gate_base_proof_gap.json,out/save_selector_gate_offset_sources.json,out/save_selector_gate_offset_patterns.json,out/save_selector_gate_base_candidates.json,out/save_selector_gate_sample_values.json,out/save_selector_gate_pass_matrix.json,out/save_selector_selection_buffer_bases.json,out/save_selector_opcode20_object_base_candidates.json,out/save_selector_opcode20_order_space.json,out/save_selector_opcode20_nested_base_modes.json,out/save_selector_opcode20_context_f2_sources.json,out/save_selector_opcode20_slot_sources.json,out/save_selector_opcode20_descriptor_scripts.json,out/save_selector_opcode20_slot_descriptor_writers.json,out/save_selector_opcode20_sample_order_effects.json,out/save_selector_opcode20_runtime_materializers.json status=open task=Prove the opcode 0x20 gate-time base path, not just active order. why=The local gate window has only opcode 0x20 as a base candidate, and descriptor+0/+4/+8 scanning does not directly reference field maps, the current frontier, or the 0xe8/0xea gate offsets. gates=selectedRootExecution,runtimeTraceOrEquivalent inputs=selected-root-execution-proof,runtime-trace-or-equivalent-proof; p8:out/save_selector_opcode24_mode1_indirect_context.json,out/save_selector_opcode24_mode1_source_writes.json,out/save_selector_opcode24_mode1_file_read_context.json,out/save_selector_opcode24_mode1_block_writes.json,out/save_selector_opcode24_mode1_runtime_context.json,out/save_selector_opcode24_runtime_enabled_context.json,out/save_selector_opcode24_runtime_enabled_block_writes.json,out/save_selector_opcode24_mode1_default_effect.json,out/runtime_trace_feasibility.json,out/runtime_trace_execution_probe.json,out/runtime_opcode24_flag_context.json status=open task=Capture a runtime producer trace for opcode 0x24 mode1 source. why=Static scans now rule out direct writes, savedata backing, and the known 0x0059e310+0x38 base-immediate path for 0x0059e348, ReadFile destinations, and broad block-write candidates. The runtime enabled flag 0x0059e34d also has no broad block-write candidate. gates=runtimeTraceOrEquivalent,selectedRootExecution inputs=runtime-trace-or-equivalent-proof,selected-root-execution-proof; p9:out/field_map_record_roots.json,out/map1_01a_strict_target_link_gap.json status=blocked task=Do not promote from adjacent strict clusters without a target link. why=The related strict cluster is adjacent to the route but does not prove this source->target transition. gates=strictSourceHotspot,tileHotspotConfirmation inputs=strict-source-coordinate-or-hotspot-proof,tile-hotspot-confirmation-proof.","out/original_collision_route_audit.* rechecks the current geometry-only route candidates with originalLayer1Flags: route=map1_01a->map2_02d, routeCandidateCount=4, sourceOriginalStandable=3/4, targetSpawnsOriginalStandable=4/4, sourceLayer1Passable=1629, sourceFootprintStandable=1476, targetLayer1Passable=4103, targetFootprintStandable=3793, promotionAllowed=False, status=diagnostic-only, proofFound=False, failedOriginalCollisionRouteGates=strict-source-hotspot,selected-root-execution,real-selector-2-0-savedata,runtime-trace-or-equivalent-control-flow, missingEvidenceCount=4, evidenceRefs=3; this is collision diagnostics only and still does not replace strict hotspot, savedata, selected-root execution, or runtime trace proof.","out/map1_01a_edge_trigger_gap.* checks whether the current edge candidates can be generic original boundary transitions: sourceBoundaryCandidates=2, autoBoundaryCandidates=2, boundarySnippets=True, fallToOverlap=True, collisionHelperCalls=20, transitionRelHits=0, routeImmediateHits=0, globalRelHits=0/4/0, globalRouteImms=6/0/0/0, scriptRunnerWindows=4/0/0/0, selectedPointerWindows=6/0, edgeEncoded=0/0/0/0/0;0/0/0/0/0;0/0/0/0/0;4/4/0/0/0, edgeEncodedClass=no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/edge-encoded-route-target-scalars-nonpromoting, directionLatchRefs=79, directionLatchOtherTextRefs=9, directionLatchWindowHits=0/0, callGraph=bounded-direct-callgraph-no-transition-path/7/24/0/0/0/6, callGraphSensitivity=6/True/True, indirectGraph=bounded-indirect-callgraph-no-static-transition-target/6/58/0/0, promotionAllowed=False, proofFound=False, failedEdgeTriggerGates=edge-to-transition-control-flow,runtime-edge-selected-root-proof,strict-source-hotspot, missingEvidenceCount=3, status=blocked-generic-edge-trigger-unproven; top/bottom edge candidates are still boundary diagnostics, not transition proof.","out/map1_01a_tile_hotspot_pattern_contrast.* compares confirmed hotspot tiles with current candidates: confirmedReviews=2, rejected=22, confirmedRecord=0x00503350, currentCandidates=4, sourceStandable=3/4, targetSpawns=4/4, lowNibbleMatches=4/4, centerPairMatches=0/4, low3x3Matches=0/4, pair3x3Matches=0/4, currentReviewRows=0, currentStrictEventPoints=0, tileHotspotConfirmed=False, status=blocked; tile signatures do not replace event record/review proof.","out/map1_01a_strict_event_tile_signature_scan.* compares current candidates against all strict-event tile signatures: strictEventRecords=11, strictEventPoints=228, reviewedPoints=24, confirmedPoints=2, targetLinkedRecords=0, directSourceTargetRecords=0, candidateMatches=center:1/4,low3x3:0/4,pair3x3:0/4, centerPairMatches=11, centerPairOwners=map1_02b->map1_01a:11, centerPairSame/Target/Confirmed/Rejected=0/0/0/11, allCenterRejected=True, targetSpawnSig=points:0,candidates:0/2/0,matches:0/147/0,targetMap:0/0/0,low3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5,low3x3Target/Confirmed/Rejected=0/1/19,low3x3GenericOnly=True,zero:True/True/True, targetMatchesZero=True, directMatchesZero=True, confirmedPair3x3Zero=True, tileSignaturePromotes=False, proofFound=False, failedStrictEventTileSignatureGates=target-linked-strict-event-signature,direct-source-target-strict-event,tile-hotspot-confirmation, missingEvidenceCount=3, status=blocked; strict event tile signatures do not confirm a map1_01a -> map2_02d hotspot.","out/map1_01a_strict_hotspot_review_matrix.* cross-checks all geometry candidates against transition reviews, event rows, coordinate refs, and coordinate variants: candidateRows=4, remainingProofs=3, candidates=4, routeReviewRows=0, routeEventTransitions=0, sourceReviewRows=0, incomingReviews=2/24, incomingStates=confirmed:2,rejected:22, incomingRecords=0x00503350, allNoRouteReviews=True, allNoStrictEvents=True, coordRefsBlocked=True, variantsBlocked=True, lowNibbleMatches=4/4, tileSignatureOnly=True, proofFound=False, failedStrictHotspotReviewGates=strict-source-coordinate,tile-hotspot-confirmation,selected-root-execution-ref, missingEvidenceCount=3, status=blocked; review/event absence keeps the candidate tiles diagnostic-only.","out/map1_01a_strict_source_hotspot_context.* consolidates strict source/hotspot blockers; candidateRows=4, evidenceRows=17, evidenceRefs=19, remainingProofs=3, candidates=4, candidateAllBlocked=True, candidateBlocks={\"coordinate refs are non-promotable\":4,\"no map1_01a->map2_02d transition-review row\":4,\"no strict map1_01a event transition\":4,\"tile signature matches only as geometry/tile evidence\":4,\"variant coordinate scan found no strict source coordinate\":4}, reviews=0, events=0, strictSourceCoordinateFound=False, tileHotspotConfirmed=False, proofFound=False, failedStrictHotspotGates=strict-source-coordinate,tile-hotspot-confirmation,strict-target-link,equivalent-runtime-trigger-proof, missingEvidenceCount=4, coordRefsBlocked=True, variantsBlocked=True, byteCoord=24/0/0/66/False, targetByteCoord=24/0/15/False, cnsPayload=24/0/0/14/0/False, centerPairMatches=11, centerPairOwners=map1_02b->map1_01a:11, centerPairSame/Target/Confirmed/Rejected=0/0/0/11, allCenterRejected=True, low3x3Matches=0, pair3x3Matches=0, targetSpawnSig=points:0,matches:0/147/0,targetMap:0/0/0,low3x3Owners=map2_03l->map2_01c,map2_13c:45,map1_02b->map1_01a:20,map9_01e->map2_04l,map2_05e,map2_06e,map2_08e,map6_01e:20,map2_03l->map2_01c,map2_13c,map3_01f:15,map2_03l->map2_01c,map2_13c,map7_05h:15,map4_08n->map2_01c,map2_13c,map2_03l,map4_01l,map4_09l:14,map8_32q->map8_19p,map8_20p,map8_21p,map8_22p,map8_23p,map8_24p,map8_25p,map8_26p,map8_27p,map8_28p,map8_29p,map8_30p,map8_31p:7,map8_18o->map8_11o,map8_12o,map8_13o,map8_14o,map8_15o,map8_16o,map8_17o:6,map5_38i->map5_14i,map5_11i,map5_12i,map5_15i,map5_16i,map5_17i,map5_18i,map5_19i,map5_20i,map5_37i:5,low3x3Target/Confirmed/Rejected=0/1/19,low3x3GenericOnly=True,zero:True/True/True, targetLinkedMatches=0, directSourceTargetMatches=0, resourcePointCandidates=163, routeExitPointCandidates=0, frontierPointClasses={'sentinel-0x003f-singleton': 16, 'resource-size-singleton': 2}, frontierRouteHits=0, readerBranch=resource-gate-before-scene-record, selectorOverlap=1/1, frontierBreadth=11/110/10/10, edgeTrigger=2/2/0/0, edgeLatchWindow=79/0/0, edgeGlobal=0/4/0, edgeScriptRunnerWindows=4/0/0/0, edgeSelectedPointerWindows=6/0, edgeEncoded=0/0/0/0/0;0/0/0/0/0;0/0/0/0/0;4/4/0/0/0, edgeEncodedClass=no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/no-encoded-route-target-scalars-in-edge-windows/edge-encoded-route-target-scalars-nonpromoting, edgeCallerWindows=1/0/0;20/0/0, edgeCallGraph=bounded-direct-callgraph-no-transition-path/7/24/0/0/0/6, edgeCallGraphSensitivity=6/True/True, edgeIndirectGraph=bounded-indirect-callgraph-no-static-transition-target/6/58/58/54/0/0/0, edgeIndirectLocal=True, edgeStatus=blocked-generic-edge-trigger-unproven, selectorOnly=True, strictSourceHotspotProofFound=False, strictHotspotReject=selector-only-scene-list-no-strict-hotspot, promotionStatus=blocked.","out/map1_01a_resource_ref_scan.* scans 10 direct map1_01a/map2_02d CNS references and finds 0 route-exit point candidates and 0 strict source-target candidates; current frontier point classes={'sentinel-0x003f-singleton': 16, 'resource-size-singleton': 2} routeHits=0.","out/map1_01a_event_shape_scan.* checks direct source/target scene references against the strict event-record shape: sourceReferences=3, targetReferences=7, sourceEventShapeRecords=0, targetEventShapeRecords=0, directStrictEventTransitionCount=0, currentFrontierEventShapeFound=False; allStrictEventShapeRecordCount=11, allStrictEventShapesMatchExtractedEvents=True, allStrictEventSourceMap1Count=0, allStrictEventTargetMap2_02dCount=0, relaxedNonStrictSmallEventRecordCount=44, relaxedRowsTouchingSourceOrTargetCount=0.","out/map1_01a_hotspot_gap.* fixes strict hotspot absence; map=map1_01a, target=map2_02d, strictHotspotFound=False, coordinateCandidates=0, eventTransitions=0, manifestIncoming=1, promotableSourcePoints=0, resourceRefs=10, routeExitPointCandidates=0, strictSourceTargetCandidates=0, targetContexts=5, targetStrictContexts=0, targetSelectorOnlyContexts=5, currentFrontierCluster=0x00542b44..0x00542e74, promotionStatus=blocked.","out/strict_event_source_coverage.* summarizes global strict event source-map coverage: fieldMapCount=174, strictEventRecordCount=11, strictEventSourceMapCount=7, strictEventSourceCoveragePercent=4.02, directStrictPairCount=0, sourceStrictEventCount=0, targetStrictIncomingCount=0, sourceAsEventSourceStrictClusterCount=0, sourceAsEventTargetStrictClusterCount=1, reachableStrictSourceUncovered=map1_01a, promotionStatus=blocked.","out/map1_01a_record_pattern_contrast.* compares the confirmed map1_02b -> map1_01a strict event pattern (1 event record, 24 raw points, 2 confirmed review tiles) against the current map1_01a->map2_02d frontier (0 event records, 34 selector refs, 0 route-exit point candidates, geometryExitWordHitCount=0); confirmedLikePatternFound=False.","out/map1_01a_strict_target_link_gap.* fixes the strict source/target link gap: directStrictEventTransitionRows=0, sourceStrictClusterRows=1, targetStrictClusterRows=0, targetSelectorOnlyClusterRows=5, evidenceRefs=2, directStrictEventTransitionCount=0, sourceStrictClusterCount=1, sourceIncomingOnlyStrictClusterCount=1, targetStrictClusterCount=0, targetSelectorOnlyClusterCount=5, targetSelectorOnlySourceOverlapCount=1, targetSelectorOnlySourceTargetRoutePairClusterCount=1, currentFrontierRoutePairCount=110, currentFrontierSourceOutgoingRoutePairCount=10, currentFrontierTargetIncomingRoutePairCount=10, currentFrontierCluster=0x00542b44..0x00542e74, strictTargetLinkFound=False, proofFound=False, failedStrictTargetLinkGates=direct-strict-event-transition,source-outgoing-strict-cluster,target-strict-cluster,selector-only-frontier-not-event-linked, missingEvidenceCount=4, promotionStatus=blocked.","out/map1_01a_scene_record_cluster_context.* compares every map1_01a scene record against source/target clusters: sourceSceneRecordCount=3, sourceSceneRecordUnlinkedCount=1, sourceStrictIncomingClusterCount=1, sourceStrictOutgoingClusterCount=0, targetSelectorOnlyClusterCount=5, sourceTargetSharedStrictClusterCount=0, sourceTargetSharedSelectorOnlyClusterCount=1, currentFrontierEventRecordCount=0, currentFrontierSaveSelectorRefCount=34, promotionStatus=blocked.","out/map1_01a_entry_context.* separates the confirmed entry context from the selector frontier: confirmedPrevious=map1_02b, confirmedEntryRecord=0x005032d8, frontierRecord=0x00542b44, frontierProvenFromConfirmedEntry=False, promotionStatus=blocked.","out/map1_01a_selector_bridge_refs.* scans direct dword bridges between confirmed and frontier contexts: confirmedSelector=0:0 root=0x00501808, frontierSelector=2:0 root=0x00540714, confirmedToFrontierHitCount=0, frontierToConfirmedHitCount=0, bridgeFound=False.","out/map1_01a_manifest_point_scan.* scans map1_01a manifest neighborhoods for strict point tables: records=3, pointLikePointerCount=11, incomingPointTableCount=1, promotableSourcePointCount=0, strictSourceHotspotFound=False.","out/map1_01a_root_point_scan.* scans the full current selector root for hidden point tables: selector=2:0, root=0x00540714, pointerLikeCount=448, reportedCandidateCount=447, frontierClusterCandidateCount=4, exactExitCandidateCount=0, scriptLikeCandidateCount=445, strictSourceHotspotFound=False.","out/map1_01a_scene_payload_context.* checks 3 scene-local payload pointers between source record 0x00542b44 and target record 0x00542bac; in-bounds point payloads=0, text refs=0, promotion payloads=0, and promotionStatus=blocked.","out/save_selector_scene_list_context.* classifies the current frontier as selectorOnlySceneList=True; branch 0x00542b0c targets cns:cara_01.cns with classification=resource-gate-before-scene-record, nearest source record=0x00542b44, nearest target record=0x00542bac, proofFound=False, sceneListResourceGateProofFound=False, failedGates=resource-branch-not-field-map,selector-adjacency-only,strict-hotspot-missing, missingEvidenceCount=3, evidenceRefs=3, and promotionStatus=blocked.","out/save_selector_frontier_reader_branch_context.* classifies the 0x00542b0c reader outcomes; correctedTraceReachesReader=2/2, predecessorOutcome=fallthrough, passValue=0x0053f4fc, passPayloadClass=sprite-or-rect-payload-like, passPayloadPromotion=False, failTarget=0x0053f46f, failTargetResource=True, siblingFieldMapTargetCount=0, proofFound=False, failedGates=normal-runtime-reader-execution,resource-payload-strict-hotspot,independent-strict-transition-evidence, missingEvidenceCount=3, evidenceRefs=4, promotionStatus=blocked.","out/save_selector_frontier_payload_shape.* classifies the reader pass payload and sibling payloads as paired image source-rectangle tables; rectLikePayloadGateCount=3/3, allPayloadsFitPairedImages=True, sourceInBoundsPointCount=0, payloadTextRefCount=0, proofFound=False, failedGates=in-bounds-source-point-table,payload-text-or-code-reference,strict-hotspot, missingEvidenceCount=3, evidenceRefs=4, promotionStatus=blocked.","out/save_selector_scene_record_sequence.* segments the current selector 2:0 leaf streams into field-map scene records; rowCount=3, adjacentSceneRecordCount=3, geometryExitWordHitCount=0, promotionStatus=blocked, so map1_01a->map2_02d remains scene-list adjacency without strict hotspot.","out/save_selector_scene_adjacency_index.* compares all save-selector field-map scene-record adjacencies against strict event transitions and confirmed reviews; selectorLeafCount=322, fieldMapReferenceCount=663, adjacentOccurrenceCount=341, uniqueDirectedAdjacentPairCount=77, strictEventEdgeCount=45, confirmedReviewEdgeCount=1, adjacentPairsWithStrictEventCount=0, adjacentPairsWithConfirmedReviewCount=0, selectorAdjacencyOnlyPairs=77, currentPairOccurrenceCount=3, currentPairStrictEventBacked=False, currentPairConfirmedReviewBacked=False, currentPairSelectorAdjacencyOnly=True, proofFound=False, failedGates=strict-event-backed-adjacency,confirmed-review-backed-adjacency,strict-hotspot-or-coordinate, missingEvidenceCount=3, evidenceRefs=3, promotionStatus=blocked.","out/map1_01a_exit_coordinate_variant_scan.* scans 4 map1_01a exit candidates, 80 coordinate encodings, 80 target-spawn encodings, targetSpawnCurrentRoot/Character=18/43, targetSpawnClasses={\"selector-script-word\":18}/{\"character-descriptor-script-word\":43}, targetSpawnPromotable=0/0/True, 32 span/bounds encodings, and 8 span sequences; all current-root/descriptor hits are classified as VM script words and strictCoordinateEvidenceFound=False, proofFound=False, failedExitCoordinateVariantGates=strict-source-coordinate,target-spawn-strict-coordinate,promotable-coordinate-owner, missingEvidenceCount=3.","out/map1_01a_exit_byte_coordinate_scan.* scans byte-sized coordinate encodings for 4 map1_01a exit candidates; bytePairScans=24, sequenceScans=16, bytePairHits=5021, sequenceHits=0, strictSourceTargetByteHits=0, strictEventOtherByteHits=22, currentSelectorRootByteHits=66, textCodeByteHits=233, targetSpawnBytePairScans=24, targetSpawnByteHits=1687, targetSpawnStrictSourceTargetByteHits=0, targetSpawnCurrentSelectorRootByteHits=15, targetSpawnStrictByteCoordinateEvidenceFound=False, strictByteCoordinateEvidenceFound=False.","out/map1_01a_exit_cns_payload_scan.* scans the decoded source CNS tilemap payload for 4 map1_01a exit candidates; sourceCns=37x48/7108 bytes, bytePairScans=24, wordPairScans=24, packedU32Scans=24, sequenceScans=32, bytePairHits=8, wordPairHits=3, packedU32Hits=3, sequenceHits=0, headerHits=0, layerHits=14, outsideStructuredHits=0, strictCnsCoordinateEvidenceFound=False.","out/map1_01a_exit_coordinate_context.* classifies the right-exit packed-coordinate hit as non-promoting script data; side=right, tile=34,19, xyPacked=0x00130022, xyHitCount=1, xyAlignedHitCount=1, hit=0x004f9460, hitSection=.data, hitLowOpcode=0x22, ownerSelector=24:0, ownerRoot=0x004f8dd8, ownerLinkedCns=cara_at1.cns, ownerFieldMaps=none, hitDataRefCount=4, hitHasTextRefs=False, classification=save-selector-script-word, proofFound=False, failedExitCoordinateContextGates=strict-source-coordinate-owner,source-field-map-owner,text-or-code-reference-to-hit,target-map-control-path, missingEvidenceCount=4, evidenceRefs=3, promotable=False, promotionStatus=blocked.","out/save_selector_branch_gate_consistency.* keeps the current gate state inherited; sameTableAndOffset=True, sameSelectionBufferOffset=0x20, selectionOpcodeRowsBetween=11, postWriterSameOffsetWrites=0, postWriterSameOffsetReads=0, postWriterOtherOffsetWrites=3@0x0a,0x0d,0x68, validSecondaryFillsBetween=0, invalidSecondaryFillsBetween=3, invalidSecondaryFillOffsets=0x54,0xe6,0xe7, knownOpcodeStatePreservationStatus=same-selection-slot-preserved-known-opcodes, statePreservedByKnownOpcodes=True, branchStateValueStillRuntimeDependent=True, controlPathStillUnproven=True.","out/save_selector_branch_selector_equation.* narrows the secondaryBranchState value side without proving route order; writer=0x005428bc, reader=0x00542b0c, selectionOffset=0x20, equationNarrowedByPredecessorHypothesis=True, predecessor=1:0, predecessorFill=0x00000210, allStartsPassReader=True, priorSelectionBufferStillPrimaryBlocker=False, promotionStatus=blocked.","out/save_selector_writer_chain.* narrows the selectionBuffer[0x20] writer chain without proving control flow; writerCount=4, nearest=0x005428bc, nearestValue=0x00208212, nearestTable=secondaryBranchState, distanceToReader=592, reader=0x00542b0c, readerValue=0x00209011, selectionOffset=0x20, followingGate=0x005428c4, followingGateOpcode=0x11, controlFlowProofStillRequired=True.","out/save_selector_dispatch_stop_context.* classifies the naive dispatch stop as descriptor data, not code; stop=0x005428f4, value=0x005428e8, opcode=0xe8, handlerTable=0x00440720, entry=0x00440ac0->0x00440c28, entrySection=.data, entryIsCodeHandler=False, targetPointerRefs=6, targetPointerRefSections=.data, descriptorContext=True, frontierLeaf=0x00542ae8, frontierReader=0x00542b0c, promotionStatus=blocked.","out/save_selector_gate_offset_sources.* classifies current gate offsets as inherited runtime state; gateOffsets=0xe8,0xea, anyScriptLocalSelectionWriter=False, anyGlobalScriptSelectionWriter=False, controlPathGateStatus=inherited-runtime-state, controlPathProofStatus=blocked, 0xe8 rows/writers/current=453/0/1, 0xea rows/writers/current=528/0/5.","out/save_selector_gate_offset_patterns.* shows gate offsets are reader-only across selector roots; totalRowCount=981, totalReaderCount=981, totalWriterCount=0, rootCount=35, promotionStatus=blocked.","out/save_selector_gate_base_candidates.* maps possible gate bases without proving the runtime pointer mode; candidateCount=12, partySlotStatByteCandidateCount=4, directRefCandidateCount=0, runtimePointerModeStillRequired=True, gateOffsets=0xe8,0xea.","out/save_selector_gate_base_proof_gap.* keeps opcode 0x20 gate-base proof open; gateWindowRows=7, localBaseRows=1, remainingProofs=3, windowOnlyOpcode20=True, baseSetterCandidates=1, descriptorFieldRecords=0, descriptorFrontierRefs=0, descriptorEncodedTargets=0/0/0, descriptorEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, descriptorGateWriters=0, descriptorGateReaders=0, descriptorAllScriptGateWriters=0, descriptorAllScriptGateReaders=0, descriptorAllScriptSelectionRows=362, descriptorAllScriptEncodedTargets=0/0/0, descriptorAllScriptEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, descriptorAllScriptSpecificBase=False, proofFound=False, gateBaseProofFound=False, activeOrderProofFound=False, gateTimeBaseProofFound=False, failedGateBaseGates=opcode20-runtime-base-path,predecessor-state-persistence,strict-source-hotspot, missingEvidenceCount=3, activeOrderAloneSufficient=False, activeOrderOnlyEliminated=True, diagnosticOrder=0x01/0x00, diagnosticDescriptor=0x004f867c, diagnosticGateRows=0/0, diagnosticNonPointerA8=0, diagnosticPointerCollision=True, diagnosticGateBaseProven=False, diagnosticRecheckRouteHits=125/0/0, diagnosticRecheckActiveOrderCount=0x00x679, diagnosticRecheckGateBaseStillUnproven=True, publicPredOrder=0x01/0x00, publicPredDescriptor=0x004f867c, publicPredSamples=1689/3378, publicPredRoute=False, publicPredStable=True, publicPredGateRows=0/0, publicPredGateBaseProven=False, publicPredLeftSamples=584/2293, publicPredLeftRoute=False, publicPredLeftStable=True, publicPredLeftGateBaseProven=False, sampleCurrentFrontierCovered=False, evidenceRefs=19, promotionStatus=blocked.","out/save_selector_gate_sample_values.* applies public savedat samples to the gate hypotheses; sampleCount=0, sampleSelectors=, currentFrontierSelector=2:0, currentFrontierSampleCovered=False, saveRuntimeGateInRange=0/0, saveRuntimeGateDistinctValues=, partySlotStatInRange=0/0.","out/legacy_hwanedit_editor_gap.* classifies the public legacy hwanedit executable as non-route evidence; available=True, size=764928, sha256=edd79d260d58efed59842bcb4c6cf9c1788dd360a4734c85a52fc0c7c93fdb83, saveFilterPresent=True, statControlCount=46, routeKeywordCount=0, selectorEvidenceFound=False, routePromotionEvidenceFound=False, promotionStatus=blocked.","out/save_selector_gate_pass_matrix.* keeps the predecessor gate pass as a hypothesis, not promotion; currentFrontierSampleCovered=False, saveRuntimePredecessorAllGatePassSampleCount=0/0, saveRuntimeZeroTableAllGatePassSampleCount=0/0, runtimeBaseProofRequired=True, predecessorPersistenceProofRequired=True, strictHotspotProofRequired=True.","out/save_selector_selection_buffer_bases.* shows context+0xa8 is not a fixed base; immediateAssignmentCount=5, registerAssignmentCount=6, knownStaticGateOffsetDirectRefCount=0, runtimePointerModeStillRequired=True, promotionStatus=blocked.","out/save_selector_opcode20_object_base_candidates.* classifies 16 non-pointer descriptor+4 object-base candidates; 16 select context+0xf2, 0 select a fixed stream+2 object index, and 0 gate 0xe8/0xea rows, 0 field-map rows, and 0 current-frontier refs follow those candidates.","out/save_selector_opcode20_order_space.* exhausts opcode 0x20 descriptor active-order shapes; descriptorRows=12, slotCapacity=3, uniqueOrders=1464, repeatAllowedOrders=1884, uniqueDirectProofOrders=0, repeatDirectProofOrders=0, uniqueNonPointerContextOrders=1424, currentFrontierSampleCovered=False, activeOrderAlonePromotesRoute=False.","out/save_selector_opcode20_context_f2_sources.* traces context+0xf2 as a runtime object-slot selector; refs=204, reads=141, writes=63, runtimeObjectTableReaders=65, directInitializers=2, constantWrites=0, specificRuntimeObjectPointerProven=False; diagnosticObjectTableAvailable=True, diagnosticRouteSamples=210, diagnosticTotalSamples=374, diagnosticActiveOrder=0x01/0x00, diagnosticSlotBaseStatic=0x00457750, diagnosticObjectTableStatic=0x0055be00,0x0055d2f8,0x0055d5d4, diagnosticStatus=diagnostic-only, normalRouteProof=False.","out/save_selector_opcode20_slot_sources.* ties opcode 0x20 slot count/source to save-backed runtime state; currentOpcode20=0x005428a8, currentMode=0x00, countRuntime=0x004576e8 saveOffset=0x0010, slotBase=0x00457750 saveOffset=0x0072, loadedCompleteSlotCapacity=3, staticFirstDwordNonzeroCount=0, runtimeSlotDescriptorPointersRequired=True.","out/save_selector_opcode20_slot_descriptor_writers.* fixes opcode 0x20 slot descriptor materialization; descriptorTable=0x00442d95, slotBase=0x00457750, descriptorWriteCount=3, slotFirstDwordSource=runtime descriptor table 0x00442d95[index], opcode20Mode0ScriptSource=descriptor+4, runtimeActiveOrderRequired=True, promotionStatus=blocked.","out/save_selector_opcode20_descriptor_scripts.* keeps descriptor+4 scripts from proving the route; descriptorRowCount=12, scriptSlotAggregateRows=3, script4FieldRecordCount=0, script4CurrentFrontierDirectRefCount=0, script4EncodedTargets=0/0/0, script4EncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, script4GateReaderCount=0, script4GateWriterCount=0, script4SelectionOpcodeCount=126, script4NonPointerContextA8Sources=context-f2-runtime-object-pointer:16, allScriptGateReaderCount=0, allScriptGateWriterCount=0, allScriptSelectionOpcodeCount=362, allScriptEncodedTargets=0/0/0, allScriptEncodedClass=no-encoded-route-target-scalars-in-descriptor-scripts, script4SpecificGateBaseProven=False, allScriptsSpecificGateBaseProven=False, runtimeActiveOrderRequired=True.","out/save_selector_opcode20_sample_order_effects.* calibrates active order from public samples without covering current selector; sampleCount=0, uniqueSampleStateCount=0, currentFrontierSelector=2:0, currentFrontierSampleCovered=False, signatures=.","out/save_selector_opcode20_runtime_materializers.* separates active-order materialization from selector streams; materializers=3, currentFrontierActiveOrderProven=False, opcode20SelfMutationPathEliminated=True, currentRouteGeneralMutationEvidenceCount=0, currentRouteSameLowByteRowCount=11, currentRouteSameLowByteRows=11, descriptorScriptMutationRowCount=0, descriptorScriptMutationRows=0, loadRebuild=0x0042349c->0x00432323, rebuildAfterSaveReadBlocks=True, rebuildBeforeSelectorPointerSelection=True.","out/save_selector_opcode20_nested_base_modes.* proves current opcode 0x20 uses a nested object+4 general-handler path; opcode20=0x005428a8, value=0x00200020, mode=0x00, nestedObjectPlus4=True, saveSelectorHandler=0x0040c3f4, handlerExpected=True, nestedRunner=0x00402360, generalTable=0x00440538, contextA8Setters=5, runtimePointerModeStillRequired=True, gateOffsets=0xe8,0xea, staticGateOffsetDirectRefCount=0, controlPathGateStatus=inherited-runtime-state, promotionStatus=blocked.","out/save_selector_secondary_reset_scope.* finds 0 direct secondaryBranchState indexed writers, 0 current-root valid before-frontier secondary fills, 0 predecessor-tail secondary fills, and noKnownPreFrontierResetInScopedEvidence=True while globalResetRuledOut=False.","out/save_selector_secondary_global_reset_gap.* closes the static reset scope while keeping runtime order open; class=static-scope-closed-runtime-order-open, direct=0, unresolved=0, helperOpcode10Only=True, blockScan=0x0059e300..0x0059e36b, blockTouch=0, blockFull=0, blockClosed=True, currentBefore=0, currentAfter=1, predecessorFills=2, tailValid=0, closedStaticResetScope=True, staticResetShapeRuledOut=True, selectorOrderResetGapClosed=True, openRuntimeOrderOrBytecodeGap=True, runtimeResetRiskClass=runtime-order-or-untraced-bytecode-path, globalResetRuledOut=False.","out/save_selector_secondary_block_writes.* checks broad secondaryBranchState reset shapes; secondary=0x0059e360..0x0059e36b, scan=0x0059e300..0x0059e36b, addressLike=5, directOverlap=0, touchBlock=0, fullCoverBlock=0, promotionStatus=blocked.","out/save_selector_runtime_selector_byte_writes.* identifies the runtime selector-byte writer without promoting route order; handler=0x00406dbb, generalOpcode=0x4f, mechanism=True, currentWriter=1, outsideCurrent=0, rootSelfPattern selfRows=23, crossRows=4, routeCommon=4, crossToCurrent=0, sourcePredCurrent=0, leafHits=0, selfWrite=True, rootPatternPromotes=False, promotes=False.","out/save_selector_post_gate_reset_candidates.* classifies 2 post-gate opcode 0x10 rows; 0 are valid secondary resets, helper args are 0xe6, 0xe7, and postGateRowsPromoteRoute=False.","out/save_selector_merge_gap.* keeps selector merge unresolved; sourceSelector=0:0, targetSelector=1:0, currentSelector=2:0, samePreviousContainsRoutePair=False, selectorMergeGapOpen=True, predecessorPersistenceWouldPass=True, predecessorPersistenceProven=False, predecessorRouteOrderProven=False, currentFrontierSampleCovered=False, routePairSampleCovered=False, sourceToCurrentBridgeHitCount=0, targetToCurrentBridgeHitCount=0, currentToTargetBridgeHitCount=51, targetReverseHitsOnlyBeforeFill=True, targetReverseHitsToFillSiteCount=0, promotionStatus=blocked.","out/save_selector_merge_bridge_matrix.* checks direct/encoded-anchor bridges among selector 0:0, 1:0, and 2:0; forwardMergeBridgeHitCount=0, sourceToPredecessor=0, sourceToCurrent=0, predecessorToCurrent=0, currentToPredecessor=51 with fill-site hits=0, directMergeExecutionBridgeFound=False, forwardEncodedAnchorRawScalarCandidateCount=3, forwardEncodedAnchorPromotingCandidateCount=0, encodedMergeExecutionBridgeFound=False, proofFound=False, failedMergeBridgeGates=selector-2:0-runtime-or-savedata,source-current-vm-control-flow,strict-source-hotspot, missingEvidenceCount=3, evidenceRefs=2.","out/save_selector_selected_pointer_opcode_paths.* scans selected-pointer opcode 0x07/0x08/0x09 rows in selector roots 0:0, 1:0, and 2:0; source/predecessor opcode 0x08 activators=162, current-root writers=0, current-range writers=0, current internal opcode 0x09 stores=6, and selectedPointerOpcodePathPromotesRoute=False.","out/save_selector_global_selected_pointer_paths.* extends selected-pointer opcode 0x07/0x08/0x09 scanning to every save-selector root; selectorRows=94, selectorRoots=28, scannedRoots=28, nonCurrentCurrentRootSelectStoreProducer=0/0/0, nonCurrentCurrentRangeSelectStoreProducer=0/0/0, currentInternalStoreProducer=6/35, selectedRootExecutionRefFound=False, promotingSelectedPointerPathCount=0, promotionStatus=blocked.","out/save_selector_selected_pointer_usage.* fixes selected pointer 0x0059de30 as the runtime choke point; selectedPointerGlobal=0x0059de30, selectorGroupTable=0x00442d35, currentSelector=2:0, currentRoot=0x00540714, currentCodeRefCount=0, noStaticDirectCurrentSelectorCodeRef=True, selectedPointerGlobalTextRefCount=6, selectedPointerWriterHookCount=4, selectedPointerReaderHookCount=2, currentRootTextRefCount=0, secondLevel=0x005429dc, secondLevelTextRefCount=0, frontierReaderRefCount=0, sourceRecordRefCount=0, targetRecordRefCount=0, runtimeTraceHookPointCount=6, routePromotionStatus=blocked.","out/save_selector_selected_root_execution_gap.* consolidates selected-root execution evidence; selectedRootExecutionRefFound=False, proofFound=False, failedSelectedRootGates=save-loader-selected-root,save-selector-dispatch-table-anchor,static-current-root-references,selected-pointer-hook-prerequisites,global-opcode-07-08-09-selected-pointer-paths,current-root-writer-paths,runtime-selected-pointer-probes,constructed-selector-2:0-diagnostic-exclusion, missingEvidenceCount=5, saveCurrentSelectorRealSaveCount=0, saveSelectedPointerRealSaveCount=0, staticCurrentCodeRefCount=0, hookPrereq=6/6/0/0, hookWindow=6/0, hookAllUnproven=True, hookGraph=selected-pointer-handler-callgraph-generic-only-contrast, hookGraphRoots/Fns/Calls=4/15/27, hookGraphRoute/current/record/selector/branch=0/0/0/0/0, hookGraphGeneric=6/1, hookGraphDepth=4/True/True, hookEncoded=0/0/0/0, hookEncodedClass=no-encoded-route-target-scalars-in-handler-graph, dispatchTable=0x00440720, dispatchSlice=0x7a, dispatchSaveRefs=0/0, dispatchDynamic=3/3/0, dispatchTableBaseSwitch=6/0, dispatchHandlersVerified=True, dispatchExecRef=False, globalNonCurrentRootProducer=0/0/0, globalNonCurrentRangeProducer=0/0/0, currentInternalProducer=6/35, currentWriterCount=4, remainingProofs=5, evidenceRefs=8, runtimePollSamples=1550, runtimePollObservedSelectors=8:0, saveLoadPollSamples=None, saveLoadPollObservedSelectors=-, saveLoadPollRoute=None, multiSaveLoadPollSamples=None, multiSaveLoadPollPublicSelectors=-, multiSaveLoadPollObservedSelectors=-, multiSaveLoadPollPublicHit=None, multiSaveLoadPollRoute=None, caseAliasMultiSaveLoadPollSamples=None, caseAliasMultiSaveLoadPollObservedSelectors=-, caseAliasMultiSaveLoadPollPublicHit=None, caseAliasMultiSaveLoadPollRoute=None, inputPathCaseAliasMultiSaveLoadPollSamples=None, inputPathCaseAliasMultiSaveLoadPollObservedSelectors=-, inputPathCaseAliasMultiSaveLoadPollObservedPublicSelectors=-, inputPathCaseAliasMultiSaveLoadPollPublicHit=None, inputPathCaseAliasMultiSaveLoadPollRoute=None, predecessorDirectionSweepPollSamples=3380, predecessorDirectionSweepPollKind=public predecessor direction sweep, predecessorDirectionSweepPollObservedSelectors=50:0,19:1,1:0, predecessorDirectionSweepPollObservedPublic=1:0, predecessorDirectionSweepPollPublicHit=True, predecessorDirectionSweepPollRoute=False, predecessorDirectionSweepPollValues=opcode24Mode1Source=0x00x3380; opcode24CurrentObjectIndex=0x00x3380; opcode24RuntimeFlag=0x00x3380, predecessorLeftOverrunActivationSweepPollSamples=2299, predecessorLeftOverrunActivationSweepPollKind=public predecessor left-overrun activation sweep, predecessorLeftOverrunActivationSweepPollObservedSelectors=50:0,19:1,1:0, predecessorLeftOverrunActivationSweepPollObservedPublic=1:0, predecessorLeftOverrunActivationSweepPollPublicHit=True, predecessorLeftOverrunActivationSweepPollRoute=False, predecessorLeftOverrunActivationSweepPollValues=opcode24Mode1Source=0x00x2299; opcode24CurrentObjectIndex=0x00x2299; opcode24RuntimeFlag=0x00x2299, syntheticSelector20PollSamples=374, syntheticSelector20PollObservedSelectors=8:0, syntheticSelector20PollObservedStagedSelectors=-, syntheticSelector20PollStagedHit=False, syntheticSelector20PollRoute=False, patchedPublicSelector20PollSamples=375, patchedPublicSelector20PollKind=patched public-base diagnostic, patchedPublicSelector20PollObservedSelectors=2:0,10:0, patchedPublicSelector20PollRoute=True, constructedDiagnosticRoute=True, diagnosticExcluded=True, diagnosticNotRouteProof=True, diagnosticActiveOrder=0x01/0x00, diagnosticDescriptor=0x004f867c, diagnosticFollowup=10:0@0x0053c4a4, diagnosticFollowupSource=False, diagnosticFollowupTarget=True, diagnosticBridgeExec=False, diagnosticTraceStops=no-fixed-advance, diagnosticBranchStateSamples=374, diagnosticBranchStateRouteSamples=164, diagnosticBranchStateObserved=2:0,10:0,50:0, diagnosticBranchStateActive=0x01, diagnosticBranchStateAllZero=True, diagnosticBranchStateMatchesFill=False, diagnosticExitCandidates=None, diagnosticExitRouteSides=-, diagnosticExitBranchNonzero=-, diagnosticExitStatus=None, diagnosticLeftStabilitySamples=679, diagnosticLeftStabilityRouteSeq=left-load-right, diagnosticLeftStabilityObserved=50:0,10:0,2:0, diagnosticLeftStabilityRouteHits=125, diagnosticLeftStabilityOpcode24AllZero=True, diagnosticLeftStabilityRepro=not-reproduced, diagnosticLeftStabilityRecheckRouteHits=0, diagnosticLeftActiveOrderRecheckRouteHits=0, diagnosticLeftActiveOrderCount=0x00x679, fileIoAttachLoadPidRuns=8/8, fileIoAttachLoadKeyWrites=8/8, fileIoAttachLoadUsable=True, fileIoAttachLoadSavedat1=False, fileIoAttachCaseAliasLoadPidRuns=8/8, fileIoAttachCaseAliasLoadKeyWrites=8/8, fileIoAttachCaseAliasLoadUsable=True, fileIoAttachCaseAliasLoadSavedat1=False, promotionStatus=blocked.","out/save_selector_route_pair_entry_execution_gap.* consolidates route-pair entry execution evidence; evidenceRows=11, evidenceRefs=10, routePairEntryRows=2, negativeReaderRows=1, remainingProofs=4, routePairEntryIndices=[6, 8], correctedTraceEntryIndices=[6, 8], negativeReaderEntryIndices=[-12], globalCurrentSelectorRoutePairIndices=[-13, -12, 6, 8], globalCurrentSelectorNegativeNonNegative=2/2, globalCurrentFrontierLeafOnlyNegative=True, correctedReaderHits=2/2, correctedTraceNormalSelectionGapStatus=corrected-trace-not-normal-selection-proof, correctedTraceNormalSelectionGapFound=True, frontierReaderSelectableByNonNegativeIndex=False, frontierReaderReachableByCorrectedNonNegativeIndex=True, opcode07DirectEntrySelectionAbsent=True, opcode08SourceOrPredecessorCurrentRootRange=0/0, opcode08SourcePredecessorBuckets=0:0:op8=31,currentRootRange=0/0,own=9,script=21,unreadable=1;1:0:op8=131,currentRootRange=0/0,own=15,script=86,unreadable=30, opcode08CurrentSelectorContrast=2:0:op8=67,currentRootRange=0/24,own=24,script=39,unreadable=4, opcode09SourceOrPredecessorCurrentRangeStores=0, opcode09SourceOrPredecessorUnsupportedModes=['0x6c', '0xfe'], opcode09SourcePredecessorCollisionRows=1:0@0x0047da5c=0x00476c09/0x6c/.data;1:0@0x0047dad4=0x00476c09/0x6c/.data;1:0@0x0047dbcc=0x00476c09/0x6c/.data;1:0@0x0047dc88=0x00476c09/0x6c/.data;1:0@0x0047f2ac=0x0041fe09/0xfe/.text, sourceOrPredecessorCurrentProducerCount=0, routePairIndexSourceEntryRefs=3/0/0, routePairIndexSourceEncoded=3/0/0/0, routePairIndexSourceEncodedClass=raw-encoded-entry-anchor-scalars-nonpromoting, routePairIndexSourceFallthroughRefs=3/3, routePairIndexSourcePromotingRefs=0/0, routePairIndexSourceHandlers=['0x005429ac/0xac->0x00000003/-', '0x005429f4/0xf4->0x00000004/-', '0x005429fc/0xfc->0x004409b8/.data'], routePairIndexSourceProven=False, routePairIndexSourceProofFound=False, routePairIndexSourceFailedGates=direct-entry-pointer-source,encoded-entry-anchor-control-flow,nonnegative-entry-index-source,negative-wrapper-index-source, routePairIndexSourceMissingEvidenceCount=4, rootTableRefs=14/0, rootTableEntryLeafFrontierReaderText=0/0/0/0, rootTableFrontierReaderRefs=0, wrapperEntryCurrentRootEntryRunRefCount=0, wrapperEntryOpcode5aFallthroughRefCount=1, wrapperExecutionProofFound=False, selectedRootExecutionRefFound=False, routePairEntryExecutionProven=False, proofFound=False, failedRoutePairEntryGates=selected-root-execution,route-pair-index-source,source-predecessor-current-producer,wrapper-entry-execution,strict-hotspot, missingEvidenceCount=5, strictHotspotFound=False, promotionStatus=blocked.","out/save_selector_current_writer_paths.* keeps current-root writer paths internal to selector 2:0; root=2:0@0x00540714, localWriterCount=4, evidenceRefs=2, writers=0x00542474,0x0054247c,0x00542484,0x005428bc, nearest=0x005428bc, nearestValue=0x00208212, streamStarts=0x00542470,0x005428b4, nearestClassification=secondary local writer before current frontier reader, selectionOffset=0x20, selectedRootExecutionStillUnproven=True, proofFound=False, failedCurrentWriterGates=source-predecessor-current-producer,non-current-selected-pointer-store,runtime-branch-state-slot-proof,selected-root-execution, missingEvidenceCount=4, promotionStatus=blocked-current-internal-only.","out/save_selector_opcode08_activation_windows.* classifies 162 source/predecessor opcode 0x08 activators; 0 have local current-range producers, 24 use own-range producers, 107 use script-scalar producers, 31 use unreadable producers, current internal current-range producers=24, and opcode08ActivationPromotesRoute=False.","out/save_selector_opcode08_unreadable_producers.* explains 31 unreadable source/predecessor opcode 0x08 producer windows; 18 opcode 0x07 cases have unmapped selected slots, 13 opcode 0x09 cases use unsupported modes, staticCurrentPointerEvidenceCount=0, and opcode08UnreadableProducerPromotesRoute=False.","out/save_selector_opcode09_pointer_collisions.* separates opcode 0x09 stores from low-byte pointer collisions; handler=0x0040ae0e, modeSource=zero-extended-u8, supportedModes=['0x00', '0x01'], source/predecessor opcode 0x09 rows=17, supported rows=12, unsupported-mode rows=5, pointer-collision rows=5, unsupportedModePointerCollisions=5, unsupportedModes=['0x6c', '0xfe'], allUnsupportedModesArePointerCollisions=True, unsupportedModeReturnsWithoutStore=True, current-range stores=0, activation-linked pointer collisions=13, and opcode09PointerCollisionPromotesRoute=False.","out/save_selector_secondary_route_overlap_candidates.* compares 4 route-overlap secondary fill roots; only 1 is pre-current, source-side previous fills=0, current after-frontier fills=1, post-current route-overlap roots=2, and secondaryRouteOverlapPromotesRoute=False.","out/save_selector_predecessor_state_effect.* models predecessor branch-state fill; predecessor=1:0, current=2:0, predecessorRoot=0x00478364, fill=0x00000210, fillSites=0x004844d0,0x004844d8, writer=0x005428bc, reader=0x00542b0c, table=[1,1,0,0,...], allStartsPassReader=True, promotionStatus=blocked.","out/save_selector_active_flag_effect.* resolves activeFlag 0x00457744 default=0x01 saveOffset=0x006c; allPredecessorStartsPass=True, priorSelectionBufferStillPrimaryBlockerUnderPredecessorHypothesis=False, counterexamplesWithoutPredecessor=2.","out/save_selector_active_flag_sources.* pins the opcode 0x12 active flag source/default; activeFlag=0x00457744, staticDefault=0x01, saveOffset=0x006c, startupInit=0x00411300, startupInitCallCount=1, refs/read/write=4/3/1, resolvedStaticDefault=True, promotionStatus=blocked.","out/save_selector_selection_state.* documents save-selector branch-state semantics; selectionBuffer=0x000000a8, stateSlots=12, handlerCount=5, helperTable=0x00410db0, helperCaseRange=0x00..0x0b, case0StateValues=1/0, case0Risk=supports predecessor fill 0x00000210; produces slots 0..1 as 1, opcode13Handler=0x0040b696.","out/save_selector_selection_writers.* preserves global and current-root selectionBuffer[0x20] readers/writers; writerCountFor0x20=813, readerCountFor0x20=127, currentFrontierRootHexes=0x00540714, currentRootWriterCount=18, currentRootReaderCount=6, writersBeforeFirstReader=0x00542474,0x0054247c,0x00542484,0x005428bc.","out/save_selector_branch_paths.* scans the current frontier branch path; stream=0x00542b0c, fallthrough=0x00542b14, branchTarget=0x0053f46f, branchTargetKind=cns:cara_01.cns, fallthroughContainsSource=True, fallthroughContainsTarget=True, fallthroughMaps=map1_01a,map2_02d, branchTargetCns=cara_01.cns.","out/save_selector_stream_traces.* keeps leaf bytecode traces bounded; traceCount=5, trace542ac0Steps=4, trace542ac0Stop=no-fixed-advance, trace542ac0StopOpcode=0x2c, trace542ae8BranchVa=0x00542b0c, trace542ae8BranchTarget=0x0053f46f, trace542ae8Fallthrough=0x00542b14.","out/save_selector_xrefs.* separates selector path metadata refs from execution refs; selectors=2:0, selectorPathCount=10, scenePairCount=3, currentRootRefIsSelectorRowEntry=True, currentRootNonMetadataRefCount=0, routePromotionStatus=blocked.","out/save_selector_predecessor_persistence_gap.* narrows predecessor branch-state persistence without promoting it; predecessor=1:0 root=0x00478364, current=2:0 root=0x00540714, adjacent=True, intermediateSelectors=0, sourcePrevious=0:0, sourceOverlap=map1_01a,map1_02b, predecessorTargetOnly=True, wouldPassCurrentReader=True, noKnownBeforeFrontierOverwrite=True, directSecondaryWriters=0, routeOrderProven=False, selectorMergeGapOpen=True, persistenceProven=False, promotionStatus=blocked.","out/save_selector_selection_buffer20_provenance.* summarizes selectionBuffer[0x20] roots; writers/readers=813/127, rootCounts=35/32, currentRoot=2:0@0x00540714 w/r=18/6 routePair=True, sourceRoot=0:0@0x00501808 w/r=4/2 sourceOnly=True, predecessorRoot=1:0@0x00478364 w/r=0/3 targetOnly=True, nearestCurrentWriter=0x005428bc, frontierReader=0x00542b0c, frontierStateTable=secondaryBranchState, promotionStatus=blocked.","out/save_selector_secondary_fill_roots.* finds inherited-state producer roots; rootCount=24, routeOverlapRootCount=4, fillEntryReferenceRootCount=1, routeOverlapFillEntryReferenceRootCount=0, fillEntryReferenceSelectors=55:0, fillEntryReferenceNonRouteOnly=True, fillEntryReferenceExclusionStatus=non-route-only-entry-reference, predecessorRootFillCount=2, predecessorFillEntryCandidateFound=False, predecessorFillEntryDwordRefCount=0, predecessorFillEntryRootRangeDwordRefCount=0, predecessorFillEntryRootBranchTargetCount=0, currentRootFillCount=1, currentRootAfterFrontierFillCount=1.","out/save_selector_inherited_state_candidates.* ranks the strongest inherited-state producer; currentSelector=2:0, bestPrevious=1:0, bestPreviousRoot=0x00478364, bestPreviousSecondaryFillCount=2, bestPreviousFirstFill=0x004844d0.","out/save_selector_current_state_sources.* keeps current root state inherited; candidateCount=114, validBeforeFirstFrontierReaderCount=1, validBeforeFirstFrontierReaderWithExecutionEvidenceCount=0, validBeforeFirstFrontierReaderPromotingFillCount=0, branchOperand=0x00542244 owner=0x00542240 smallScalarBranchOperandCount=1, validActivationCandidateCount=0, outOfRangeActivationCandidateCount=2.","out/save_selector_predecessor_tail_reset.* narrows persistence inside predecessor root 1:0; lastFill=0x004844d8, tailRange=0x004844dc..0x0048458c, tailOpcode10RowCount=0, tailValidSecondaryFillCount=0, localTailResetFound=False, tailCurrentRootRangePointerCount=0, tailRouteRefs=0/0/0/0/0, tailBranchToCurrentRouteCount=0, tailDirectCurrentRouteBridgeFound=False, promotionStatus=blocked.","out/save_selector_predecessor_branch_state_execution_gap.* consolidates predecessor branch-state execution/persistence; fillWouldPass=True, tailReset=False, tailValid=0, directGlobalSecondaryWriters=0, unresolvedGlobalSecondaryRefs=0, helperOpcode10Only=True, closedStaticResetScope=True, selectorOrderResetGapClosed=True, runtimeOrderGapOpen=True, routeOrderProven=False, selectorMergeGapOpen=True, fillExecutionOrderProofFound=False, fillOrderTrace=0x004844d0->0x004844dc, fillOrderRootEntryReach=False, fillOrderEncoded=raw-encoded-scalars-nonpromoting, fillOrderRaw=4, fillOrderRootTailRaw=4, fillOrderPromoting=0, fillOrderRawScalarReject=scalar-only-no-branch-or-fixed-advance, fillOrderRawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, fillSiteExecutionContextProven=False, fillContextPolls=8/30/46919, fillContextPublic=6, fillContextCurrentRoot=0, fillContextRoute2_0=0, fillContextMatches=0, fillContextAllZero=8, fillContextTargetStatus=target-not-observed, fillContextFieldEntryCandidates=0, fillContextSnapshotRouteCandidates=0, fillContextBranchGatePreserve=same-selection-slot-preserved-known-opcodes, fillContextBranchGateSameOffset=True/0x20, fillContextBranchGateWriteRead=0/0, fillContextBranchGateOther=3@0x0a,0x0d,0x68, fillContextBranchGateInvalid=0x54,0xe6,0xe7, globalResetRuledOut=False, strictHotspotFound=False, predecessorProgressPollSeq=6, predecessorProgressPollSamples=1547, predecessorProgressObservedSelectors=19:1,1:0,50:0, predecessorProgressObservedPublic=1:0, predecessorProgressInputPid=6/6, predecessorProgressInputKeyWrites=6/6, predecessorProgressInputPressedSeq=6/6, predecessorProgressInputPressedEvents=83, predecessorProgressInputOffsets=1,28,200,203,205,208, predecessorProgressPublicHit=True, predecessorProgressCurrentRoot=False, predecessorProgressRoute2_0=False, predecessorProgressWatch=opcode24CurrentObjectIndex=0x00x1547; opcode24Mode1Source=0x00x1547; opcode24RuntimeFlag=0x00x1547, predecessorDirectionSweepSeq=8, predecessorDirectionSweepSamples=3380, predecessorDirectionSweepObservedSelectors=50:0,19:1,1:0, predecessorDirectionSweepObservedPublic=1:0, predecessorDirectionSweepInputPid=8/8, predecessorDirectionSweepInputKeyWrites=8/8, predecessorDirectionSweepInputPressedSeq=8/8, predecessorDirectionSweepInputPressedEvents=245, predecessorDirectionSweepInputOffsets=28,200,203,205,208, predecessorDirectionSweepPublicHit=True, predecessorDirectionSweepCurrentRoot=False, predecessorDirectionSweepRoute2_0=False, predecessorDirectionSweepWatch=opcode24CurrentObjectIndex=0x00x3380; opcode24Mode1Source=0x00x3380; opcode24RuntimeFlag=0x00x3380, predecessorBranchStatePollSeq=8, predecessorBranchStatePollSamples=3377, predecessorBranchStateObservedSelectors=19:1,1:0, predecessorBranchStateObservedPublic=1:0, predecessorBranchStateInputPid=8/8, predecessorBranchStateInputKeyWrites=8/8, predecessorBranchStateInputPressedSeq=8/8, predecessorBranchStateInputPressedEvents=220, predecessorBranchStateInputOffsets=28,200,203,205,208, predecessorBranchStateActiveFlag=0x01, predecessorBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorBranchStateMatchesFill=False, predecessorBranchStateAllZero=True, predecessorBranchStateRoute2_0=False, predecessorHighFrequencyBranchStatePollSeq=2, predecessorHighFrequencyBranchStatePollSamples=2090, predecessorHighFrequencyBranchStatePollInterval=0.005, predecessorHighFrequencyBranchStateObservedSelectors=1:0,19:1,8:0, predecessorHighFrequencyBranchStateObservedPublic=1:0, predecessorHighFrequencyBranchStateInputPid=2/2, predecessorHighFrequencyBranchStateInputKeyWrites=2/2, predecessorHighFrequencyBranchStateInputPressedSeq=2/2, predecessorHighFrequencyBranchStateInputPressedEvents=71, predecessorHighFrequencyBranchStateInputOffsets=28,200,203,208, predecessorHighFrequencyBranchStateActiveFlag=0x01, predecessorHighFrequencyBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorHighFrequencyBranchStateMatchesFill=False, predecessorHighFrequencyBranchStateAllZero=True, predecessorHighFrequencyBranchStateRoute2_0=False, predecessorLeftOverrunActivationBranchStatePollSeq=4, predecessorLeftOverrunActivationBranchStatePollSamples=2297, predecessorLeftOverrunActivationBranchStateObservedSelectors=50:0, predecessorLeftOverrunActivationBranchStateObservedPublic=-, predecessorLeftOverrunActivationBranchStateInputPid=4/4, predecessorLeftOverrunActivationBranchStateInputKeyWrites=4/4, predecessorLeftOverrunActivationBranchStateInputPressedSeq=4/4, predecessorLeftOverrunActivationBranchStateInputPressedEvents=176, predecessorLeftOverrunActivationBranchStateInputOffsets=28,44,57,200,203,208, predecessorLeftOverrunActivationBranchStateActiveFlag=0x01, predecessorLeftOverrunActivationBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorLeftOverrunActivationBranchStateMatchesFill=False, predecessorLeftOverrunActivationBranchStateAllZero=True, predecessorLeftOverrunActivationBranchStateRoute2_0=False, predecessorNearestExitBranchStatePollSeq=3, predecessorNearestExitBranchStatePollSamples=1383, predecessorNearestExitBranchStateObservedSelectors=19:1,1:0,50:0, predecessorNearestExitBranchStateObservedPublic=1:0, predecessorNearestExitBranchStateInputPid=3/3, predecessorNearestExitBranchStateInputKeyWrites=3/3, predecessorNearestExitBranchStateInputPressedSeq=3/3, predecessorNearestExitBranchStateInputPressedEvents=87, predecessorNearestExitBranchStateInputOffsets=28,200,203,208, predecessorNearestExitBranchStateActiveFlag=0x01, predecessorNearestExitBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorNearestExitBranchStateMatchesFill=False, predecessorNearestExitBranchStateAllZero=True, predecessorNearestExitBranchStateRoute2_0=False, predecessorNearestExitTargets=[{'sourceMap': 'map2_02d', 'targetMap': 'map1_01a', 'startTile': {'x': 5, 'y': 15}, 'candidateTile': {'x': 1, 'y': 14}, 'candidateSide': 'left', 'targetSpawn': {'x': 34, 'y': 19, 'side': 'right'}, 'reason': 'nearest reciprocal geometry hint from the public predecessor save tile'}], predecessorReciprocalExitBranchStatePollSeq=3, predecessorReciprocalExitBranchStatePollSamples=11386, predecessorReciprocalExitBranchStateObservedSelectors=50:0,19:1,1:0, predecessorReciprocalExitBranchStateObservedPublic=1:0, predecessorReciprocalExitBranchStateInputPid=3/3, predecessorReciprocalExitBranchStateInputKeyWrites=3/3, predecessorReciprocalExitBranchStateInputPressedSeq=3/3, predecessorReciprocalExitBranchStateInputPressedEvents=300, predecessorReciprocalExitBranchStateInputOffsets=28,205,208, predecessorReciprocalExitBranchStateActiveFlag=0x01, predecessorReciprocalExitBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorReciprocalExitBranchStateMatchesFill=False, predecessorReciprocalExitBranchStateAllZero=True, predecessorReciprocalExitBranchStateRoute2_0=False, predecessorReciprocalExitTargets=[{'name': 'predecessor-reciprocal-top-auto', 'sourceMap': 'map2_02d', 'targetMap': 'map1_01a', 'startTile': {'x': 5, 'y': 15}, 'candidateTile': {'x': 46, 'y': 0}, 'candidateSide': 'top', 'targetSpawn': {'x': 16, 'y': 47, 'side': 'bottom'}, 'reason': 'reciprocal geometry hint for map1_01a bottom exit', 'pathStepCount': 56, 'pathRunLengths': [{'key': 'Right', 'count': 33}, {'key': 'Up', 'count': 4}, {'key': 'Right', 'count': 6}, {'key': 'Up', 'count': 1}, {'key': 'Right', 'count': 2}, {'key': 'Up', 'count': 10}], 'sequenceKeyCount': 59, 'sequenceKeys': ['Down', 'Return', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Up', 'Up', 'Up', 'Up', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Up', 'Right', 'Right', 'Up', 'Up', 'Up', 'Up', 'Up', 'Up', 'Up', 'Up', 'Up', 'Up', 'Return']}, {'name': 'predecessor-reciprocal-bottom-auto', 'sourceMap': 'map2_02d', 'targetMap': 'map1_01a', 'startTile': {'x': 5, 'y': 15}, 'candidateTile': {'x': 47, 'y': 47}, 'candidateSide': 'bottom', 'targetSpawn': {'x': 18, 'y': 0, 'side': 'top'}, 'reason': 'reciprocal geometry hint for map1_01a top exit', 'pathStepCount': 74, 'pathRunLengths': [{'key': 'Right', 'count': 27}, {'key': 'Down', 'count': 2}, {'key': 'Right', 'count': 3}, {'key': 'Down', 'count': 7}, {'key': 'Right', 'count': 12}, {'key': 'Down', 'count': 23}], 'sequenceKeyCount': 77, 'sequenceKeys': ['Down', 'Return', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Down', 'Down', 'Right', 'Right', 'Right', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Down', 'Return']}, {'name': 'predecessor-reciprocal-right-auto', 'sourceMap': 'map2_02d', 'targetMap': 'map1_01a', 'startTile': {'x': 5, 'y': 15}, 'candidateTile': {'x': 95, 'y': 16}, 'candidateSide': 'right', 'targetSpawn': {'x': 3, 'y': 14, 'side': 'left'}, 'reason': 'reciprocal geometry hint for map1_01a left exit', 'pathStepCount': 99, 'pathRunLengths': [{'key': 'Right', 'count': 76}, {'key': 'Down', 'count': 4}, {'key': 'Right', 'count': 6}, {'key': 'Up', 'count': 3}, {'key': 'Right', 'count': 3}, {'key': 'Down', 'count': 1}, {'key': 'Right', 'count': 5}, {'key': 'Up', 'count': 1}], 'sequenceKeyCount': 102, 'sequenceKeys': ['Down', 'Return', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Down', 'Down', 'Down', 'Down', 'Right', 'Right', 'Right', 'Right', 'Right', 'Right', 'Up', 'Up', 'Up', 'Right', 'Right', 'Right', 'Down', 'Right', 'Right', 'Right', 'Right', 'Right', 'Up', 'Return']}], predecessorCoordinateBranchStatePollSeq=3, predecessorCoordinateBranchStatePollSamples=11161, predecessorCoordinateBranchStateObservedSelectors=19:1,1:0,50:0, predecessorCoordinateBranchStateObservedPublic=1:0, predecessorCoordinateBranchStateInputPid=3/3, predecessorCoordinateBranchStateInputKeyWrites=3/3, predecessorCoordinateBranchStateInputPressedSeq=3/3, predecessorCoordinateBranchStateInputPressedEvents=302, predecessorCoordinateBranchStateInputOffsets=28,205,208, predecessorCoordinateBranchStateActiveFlag=0x01, predecessorCoordinateBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorCoordinateBranchStateMatchesFill=False, predecessorCoordinateBranchStateAllZero=True, predecessorCoordinateBranchStateRoute2_0=False, predecessorCoordinateClass=coordinate-target-not-observed, predecessorCoordinateStartObserved=False, predecessorCoordinateTargetObserved=False, predecessorTrailStartBranchStatePollSeq=4, predecessorTrailStartBranchStatePollSamples=10928, predecessorTrailStartBranchStateObservedSelectors=19:1,1:0, predecessorTrailStartBranchStateObservedPublic=1:0, predecessorTrailStartBranchStateInputPid=4/4, predecessorTrailStartBranchStateInputKeyWrites=4/4, predecessorTrailStartBranchStateInputPressedSeq=4/4, predecessorTrailStartBranchStateInputPressedEvents=404, predecessorTrailStartBranchStateInputOffsets=28,200,203,205,208, predecessorTrailStartBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailStartBranchStateMatchesFill=False, predecessorTrailStartBranchStateAllZero=True, predecessorTrailStartBranchStateRoute2_0=False, predecessorTrailStartClass=trail-start-movement-without-target, predecessorTrailStartObserved=True, predecessorTrailStartTargetObserved=False, predecessorTrailStartTrailMove=True, predecessorTrailLeftOverrunBranchStatePollSeq=3, predecessorTrailLeftOverrunBranchStatePollSamples=4297, predecessorTrailLeftOverrunBranchStateObservedSelectors=50:0, predecessorTrailLeftOverrunBranchStateObservedPublic=-, predecessorTrailLeftOverrunBranchStateInputPid=3/3, predecessorTrailLeftOverrunBranchStateInputKeyWrites=3/3, predecessorTrailLeftOverrunBranchStateInputPressedSeq=3/3, predecessorTrailLeftOverrunBranchStateInputPressedEvents=300, predecessorTrailLeftOverrunBranchStateInputOffsets=28,200,203,208, predecessorTrailLeftOverrunBranchState=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, predecessorTrailLeftOverrunBranchStateMatchesFill=False, predecessorTrailLeftOverrunBranchStateAllZero=True, predecessorTrailLeftOverrunBranchStateRoute2_0=False, predecessorTrailLeftOverrunClass=edge-target-not-observed, predecessorTrailLeftOverrunCameraTarget=False, predecessorTrailLeftOverrunCameraOutside=False, runtimeBranchStateSplit=public-predecessor-reached-fill-not-observed, runtimeBranchStateSplitPublicPred=True, runtimeBranchStateSplitObservedFill=False, runtimeBranchStateSplitAllZero=True, runtimeBranchStateSplitStaticNoReset=True/True/True, runtimeBranchStateSplitNext=fill-site execution/order before current reader, leftOverrunActivationRuntimeBranchStateSplit=not-classified, leftOverrunActivationRuntimeBranchStateSplitObservedFill=False, leftOverrunActivationRuntimeBranchStateSplitAllZero=True, nearestExitRuntimeBranchStateSplit=nearest-exit-fill-not-observed, nearestExitRuntimeBranchStateSplitPublicPred=True, nearestExitRuntimeBranchStateSplitObservedFill=False, nearestExitRuntimeBranchStateSplitAllZero=True, nearestExitRuntimeBranchStateSplitNext=captured selector 2:0 save, watchpoint trace, or decoded non-linear VM path, reciprocalExitRuntimeBranchStateSplit=reciprocal-exits-fill-not-observed, reciprocalExitRuntimeBranchStateSplitPublicPred=True, reciprocalExitRuntimeBranchStateSplitObservedFill=False, reciprocalExitRuntimeBranchStateSplitAllZero=True, reciprocalExitRuntimeBranchStateSplitNext=captured selector 2:0 save, watchpoint trace, or decoded non-linear VM path, coordinateRuntimeBranchStateSplit=coordinate-target-not-observed, coordinateRuntimeBranchStateSplitPublicPred=True, coordinateRuntimeBranchStateSplitStartObserved=False, coordinateRuntimeBranchStateSplitTargetObserved=False, coordinateRuntimeBranchStateSplitNext=find the runtime gameplay object/position source or capture a real selector 2:0 save, trailStartRuntimeBranchStateSplit=trail-start-movement-without-target, trailStartRuntimeBranchStateSplitPublicPred=True, trailStartRuntimeBranchStateSplitStartObserved=True, trailStartRuntimeBranchStateSplitTargetObserved=False, trailStartRuntimeBranchStateSplitTrailMove=True, trailStartRuntimeBranchStateSplitNext=selector 2:0/current-root observation or branch-state fill on the moving trail/camera path, trailLeftOverrunRuntimeBranchStateSplit=edge-target-not-observed, trailLeftOverrunRuntimeBranchStateSplitPublicPred=False, trailLeftOverrunRuntimeBranchStateSplitCameraTarget=False, trailLeftOverrunRuntimeBranchStateSplitCameraOutside=False, trailLeftOverrunRuntimeBranchStateSplitNext=watch the edge-overrun transition producer or capture selector 2:0/current-root, highFrequencyRuntimeBranchStateSplit=high-frequency-fill-not-observed, highFrequencyRuntimeBranchStateSplitPublicPred=True, highFrequencyRuntimeBranchStateSplitObservedFill=False, highFrequencyRuntimeBranchStateSplitAllZero=True, highFrequencyRuntimeBranchStateSplitInterval=0.005, proofFound=False, failedBranchStateExecutionGates=fill-execution-order-proof,fill-site-execution-context,normal-route-order,vm-bytecode-reset-scope-ruled-out,runtime-branch-state-fill-observed,selector-merge-closed,strict-source-hotspot, missingEvidenceCount=7, remainingProofs=7, evidenceRefs=8, branchStateExecutionProofFound=False, persistencePromotable=False, promotionStatus=blocked.","out/save_selector_predecessor_fill_execution_order_gap.* isolates predecessor fill-site execution/order; localFillTraceStart=0x004844d0, localFillTraceStop=0x004844dc, localFillTraceStopReason=no-fixed-advance, localFillTraceStopHandler=0x00440c5c, localFillTraceContainsAllFillSites=True, localFillTraceReachesReader=False, rootEntryFixedTraversalFillSitesReachable=False, directFillSiteRefCounts={'0x004844d0': 0, '0x004844d8': 0}, fillEntryFragmentRange=0x004844d0..0x004844e0, fillEntryDwordRefs=0, fillEntryRootRangeDwordRefs=0, fillEntryRootBranchTargets=0, encodedFillEntry=raw-encoded-scalars-nonpromoting, encodedFillEntryRawScalars=4, encodedFillEntryRootTailRawScalars=4, encodedFillEntryBranchAttached=0, encodedFillEntryModeledControlFlow=0, encodedFillEntryPromoting=0, encodedRawScalarReject=scalar-only-no-branch-or-fixed-advance, encodedRawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailDescriptorIsolated=True, rootTailHandlers=7350/1443/3555, rootTailBranchClasses={'before-root-tail': 262, 'inside-root-tail': 80, 'mapped-.data': 111, 'unmapped': 138}, rootTailBranchSections={'.data': 221, '.text': 3, 'unmapped': 367}, rootTailBranchToFill=0, rootTailBranchToReader=0, rootTailFixedToFill=0, rootTailClosure=591/7249/0/0, rootTailClosureOutside=512/{'before-root-tail': 262, 'inside-root-tail': 1, 'mapped-.data': 111, 'unmapped': 138}/{'.data': 142, '.text': 3, 'unmapped': 367}, rootTailClosureClass=branch-closure-no-fill-or-current-reader, rootTailBeforeFill=.data/0x00440c5c, predecessorDispatchSliceRuntimeProofFound=False, predecessorDispatchTableProofFound=False, predecessorDispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, predecessorDispatchMissingEvidenceCount=4, predecessorDispatchEvidenceRefs=3, predecessorDescriptorDependsOnSlice=True, predecessorRawGeneralDiffersFromSlice=2, predecessorSliceByteReachable=0, predecessorSliceRequiresTableBase=2, predecessorSliceDynamic=3/3/0, predecessorSliceDynamicTableBaseCandidates=0, predecessorSliceDynamicTableBase=False, predecessorDispatchTableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGeneric=raw-generic-handlers-nonroute-contrast, rawGenericHandlers=2, rawGenericRoute/fill/currentImm=0/0/0, rawGenericSelected/branchImm=0/0, rawGenericCalls=9, rawGenericMappedCalls=2, rawGenericMappedTargets=0x00416c77,0x004173db, rawGenericOneHopRoute/fill/currentImm=0/0/0, rawGenericOneHopSelected/branchImm=0/0, rawGenericRoute/fillTransfers=0/0, rawGenericOneHopRoute/fillTransfers=0/0, rawGenericOneHopRouteProof=False, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth=3, rawGenericCallGraphFunctions/Edges=4/10, rawGenericCallGraphRoute/fill/currentImm=0/0/0, rawGenericCallGraphSelected/branchImm=0/0, rawGenericCallGraphRoute/fillTransfers=0/0, rawGenericCallGraphDepthSensitivity=6/True/True, rawGenericCallGraphProof=False, rawGenericRouteProof=False, publicPredecessorReached=True, runtimeObservedFill=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntryStatus=field-entry-not-found, coordinateSource=start-coordinate-found-in-image-memory/save-camera-memory-only-no-route-object-coordinate-source, coordinateStartPtrStaticTrailImage=0/1/0/2, coordinateTrailPtrStaticTrailImage=0/0/7/10, coordinateReciprocalPtrStaticTrailImage=0/0/0/118, coordinateSourcePromotion=diagnostic-only, runtimeBranchStateAllZero=True, staticNoLocalTailReset=True, staticResetScopeClosed=True, predecessorToCurrentForwardBridgeFound=False, reverseReuseBeforeFill=51, reverseReuseFillSite=0, routeOrderProven=False, selectorMergeGapOpen=True, selectorMergeRuntimeProofFound=False, selectorMergeClosureProofFound=False, predecessorPersistenceUsableForCurrent=False, proofGates=10/10, proofGatePass=0, proofGateAllBlocked=True, proofGateBlockedIds=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, failedPredecessorFillOrderGates=localFillStreamReachesCurrentReader,rootEntryFixedTraversalReachesFillSites,fillFragmentEntryCandidateFound,encodedFillEntryControlFlowCandidateFound,rootTailBranchClosureReachesFillOrReader,descriptorSliceRuntimeDispatchProven,rawGenericRouteProofFound,runtimeObservedPredecessorFill,predecessorToCurrentForwardBridgeFound,routeOrderAndSelectorMergeClosed, missingEvidenceCount=10, evidenceRefs=11, proofFound=False, promotionStatus=blocked.","out/save_selector_predecessor_fill_opcode10_context.* ties the predecessor fill fragment to opcode 0x10 handler scope without promoting execution/order; opcodeHandler=0x0040b49e, opcodeEffect=advance +4; read 0x02, scriptHandlerRefs=33, helper=0x00410c90, helperDirectCalls=1, helperOnlyOpcode10=True, fillFragment=0x004844d0..0x004844e0, fillFragmentOpcodes=0x10,0x00,0x10,0xc0, decodedFill=secondaryBranchState/2,2/0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, fillOpcode10/default/descriptor=2/1/1, directFillSiteTextRefs=0, directCurrentReaderTextRefs=0, opcode10HandlerRouteImmediate=0, rootTailBranchToFill/Reader/Fixed=0/0/0, runtimePublicPredecessor=True, runtimeAllZero=True, runtimeMatchesFill=False, branchStatePollSamples=46919, branchStatePollFillMatches=0, requiredProofGatePasses=0, requiredProofGateFailures=6, requiredProofGateAllBlocked=True, requiredProofGateFailIds=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, failedOpcode10Gates=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, missingEvidenceCount=6, evidenceRefs=6, proofFound=False, promotionStatus=blocked.","out/save_selector_predecessor_fill_site_execution_context.* consolidates predecessor fill-site execution context; branchStatePolls=8, branchStatePollSequences=30, branchStatePollSamples=46919, branchStatePollPublicHits=6, branchStatePollCurrentHits=0, branchStatePollRouteHits=0, branchStatePollAllZero=8, branchStatePollFillMatches=0, branchStatePollMovementOrTarget=1@10928, branchStatePollTargetObservation=0@0, branchStatePollTargetFillCurrentRoute=0/0/0, branchStatePollCameraOnlyTarget=0, branchStatePollActorOrTrailTarget=0, branchStatePollTargetObservationStatus=target-not-observed, rootEntryFixedTraversalFillSitesReachable=False, rootEntryFixedTraversalVisitedNodeCount=23, encodedFillEntry=raw-encoded-scalars-nonpromoting, encodedFillEntryRawScalars=4, encodedFillEntryRootTailRawScalars=4, encodedFillEntryPromoting=0, encodedRawScalarReject=scalar-only-no-branch-or-fixed-advance, encodedRawScalarNoFixed/noBranch/branchAttached/scalarOnly=4/4/0/4, rootTail=0xc0f0/12348, rootTailDescriptorIsolated=True, rootTailBranchToFill=0, rootTailBranchToReader=0, rootTailFixedToFill=0, rootTailClosure=591/7249/0/0, rootTailClosureOutside=512/{'before-root-tail': 262, 'inside-root-tail': 1, 'mapped-.data': 111, 'unmapped': 138}/{'.data': 142, '.text': 3, 'unmapped': 367}, descriptorBridgeProofFound=False, descriptorClosureNodes=949/2, descriptorFillEdges=0/0, descriptorEdgeReject=descriptor-only-no-route-execution-edge, descriptorRouteEdges=0/0, descriptorEdgeCounts=10/0, descriptorEncodedTargets=1/1/0/0, descriptorEncodedClass=descriptor-encoded-route-target-scalars-nonpromoting, dispatchTableProof=False, dispatchFailedGates=save-selector-slice-runtime-dispatch,descriptor-boundary-runtime-bridge,dynamic-save-selector-table-base-candidate,route-relevant-slice-table-base-switch, dispatchMissingEvidenceCount=4, dispatchEvidenceRefs=3, dispatchTableBaseReject=table-base-switch-required-no-dynamic-save-selector-candidate, rawGenericCallGraph=raw-generic-callgraph-nonroute-contrast, rawGenericCallGraphDepth/Functions/Edges=3/4/10, rawGenericCallGraphProof=False, branchGatePreserve=same-selection-slot-preserved-known-opcodes, branchGateSameOffset=True/0x20, branchGateWriteRead=0/0, branchGateOther=3@0x0a,0x0d,0x68, branchGateInvalid=0x54,0xe6,0xe7, runtimeFillObserved=False, fieldEntrySeq=22, fieldEntryCandidates=0, fieldEntrySelectors={'1:0': 12, '50:0': 2, '8:0': 2, '19:1': 6}, fieldEntryCameras={'5,15': 18, '0,0': 4}, fieldEntrySnapshots=85, fieldEntrySnapshotRouteCandidates=0, fieldEntrySnapshotSelectors={'8:0': 10, '1:0': 64, '50:0': 4, '19:1': 7}, fieldEntrySnapshotCameras={'0,0': 14, '5,15': 71}, fieldEntryClasses={'start-coordinate-found-in-image-memory': 18, 'start-coordinate-not-found-outside-camera-snapshot': 4}, coordinateSourceClass=start-coordinate-found-in-image-memory, coordinateSourceReject=save-camera-memory-only-no-route-object-coordinate-source, coordinateSourceStartPtrStaticTrailImage=0/1/0/2, coordinateSourceReciprocalPtrStaticTrailImage=0/0/0/118, routeOrderProven=False, selectorMergeGapOpen=True, requiredProofGates=0/6, requiredProofGateAllBlocked=True, requiredProofGateFailIds=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, proofFound=False, failedPredecessorFillGates=root-entry-to-fill,descriptor-boundary-bridge,dispatch-slice-runtime-proof,runtime-fill-observed,route-order,selector-merge-closed, missingEvidenceCount=6, evidenceRefs=6, fillSiteExecutionContextProven=False, promotionStatus=blocked.","out/save_selector_predecessor_descriptor_bridge_gap.* checks descriptor-boundary pointer bridges after the predecessor fill-order stops; rootStop=0x004783e0->0x00440a9c, fillStop=0x004844dc->0x00440c5c, rootClosureNodes=949, rootClosureEdges=4316, rootStopClosureReachesFillStopDescriptor=True, rootStopToFillBridgeFound=False, fillClosureNodes=2, fillClosureEdges=3, fillStopClosureSelfLoopFound=True, fillStopToCurrentBridgeFound=False, sharedDescriptorOnly=True, descriptorTargetEdges=9/1, routeExecutionTargetEdges=0/0, descriptorEdgeReject=descriptor-only-no-route-execution-edge, descriptorEdgeCounts=10/0, descriptorEdgeAllData=True, descriptorEncodedTargets=1/1/0/0, descriptorEncodedClass=descriptor-encoded-route-target-scalars-nonpromoting, descriptorBridgeProofFound=False, proofFound=False, failedDescriptorBridgeGates=root-stop-to-fill-bridge,fill-stop-to-current-bridge,route-execution-target-edge,descriptor-encoded-route-target-control-flow,runtime-or-decoded-nonlinear-vm-path, missingEvidenceCount=5, evidenceRefs=3, promotionStatus=blocked.","out/save_selector_branch_state.* documents opcode 0x11 branch-state tables; handler=0x0040b4e6, primary=0x0059e370..0x0059e37b refs=21 refKinds=baseAddressImmediate:1,indexedReadByte:2,indexedWriteImmediate:14,unknown:4 writeValues=0x00:4,0x01:7,0x02:3, secondary=0x0059e360..0x0059e36b refs=5 refKinds=baseAddressImmediate:1,indexedReadByte:2,unknown:2 writeValues=-, condition=value1FallthroughElseBranch.","out/save_selector_branch_state_writers.* keeps primaryBranchState inherited; base=0x0059e370, directWriterCount=14, clusterCount=4, writer clusters are earlier runtime object/party/list evaluation routines.","out/save_selector_branch_state_dispatch.* maps writer clusters through event/object dispatch table 0x0047f1d8; dispatcher=0x0041b687, opcodes=0x25,0x26,0x27,0x31, directRelativeCallRefs=0, pointerRefs=4.","out/save_selector_secondary_state_sources.* keeps secondaryBranchState inherited; candidateCount=72, beforeFrontierCount=62, validBeforeFrontierCount=0, validAfterFrontierCount=1, directWriterCount=0.","out/save_selector_branch_state_opcode_overlap.* rejects current save-selector opcode overlap as event/object proof; overlapCount=2, overlapBeforeCurrentFrontierReaderCount=2, currentFrontierReader=0x00542b0c, saveSelectorDispatch=0x00440720, eventObjectDispatch=0x0047f1d8.","out/event_object_branch_state_stream_candidates.* keeps raw event/object branch-state byte pairs as candidates only; candidateCount=44, byIndex={'0x25': 4, '0x26': 10, '0x27': 1, '0x31': 29}, byConfidence={'medium': 10, 'low': 10, 'weak': 24}.","out/event_object_branch_state_candidate_links.* does not link medium event/object branch-state candidates to current route indexes or ranges; mediumCandidateCount=10, currentRouteLinkedCount=0, currentRouteRangeHitCount=0, routeMapContainerCandidateCount=0, emptySelectorContainerCandidateCount=10.","out/event_object_branch_state_block_context.* classifies medium event/object branch-state candidates as non-promotion evidence; candidateCount=10, nearbyCnsCandidateCount=0, menuLikeCandidateCount=8.","out/save_selector_predecessor_route_order.* keeps predecessor selector 1:0 target-side only; sourceRoutePreviousSelector=0:0, predecessorConfirmedOverlap=0, routePairPreviousSelectors=0, selectorMergeGapOpen=True, and routeOrderProven=False.","out/save_selector_set_decomposition.* decomposes current selector 2:0 as predecessor 1:0 plus map1_01a; currentEqualsPredecessorPlusSource=True, sourcePredecessorUnionCoversCurrent=True, sourcePredecessorUnionExtraMaps=map1_02b, exactPreviousSelectorUnionCount=0, listRecompositionPatternFound=True, executionOrderProven=False, proofFound=False, failedSelectorSetDecompositionGates=source-current-control-flow,predecessor-state-persistence,real-selector-2:0-or-selected-root-runtime,strict-source-hotspot, missingEvidenceCount=4, evidenceRefs=5.","out/save_selector_recomposition_lattice.* scans all save-scene selector map sets; selectorWithFieldMapCount=29, oneMapAugmentationCount=2, exactPairUnionCount=5, routePairSelectorCount=1, routePairOnlyCurrentSelector=True, currentEqualsPredecessorPlusSource=True, currentExactPairUnionCount=0, sourcePredecessorUnionExtraMaps=map1_02b, executionOrderProven=False.","out/save_selector_address_predecessor_context.* isolates the address-adjacent target-side root 10:0 before current selector 2:0; addressPredecessorEqualsLogicalPredecessorMapSet=True, currentEqualsAddressPredecessorPlusSource=True, addressPredecessorToCurrentRootRefCount=1, addressPredecessorToCurrentRootRefIsCurrentSelectorRowEntry=True, addressPredecessorCurrentRootRefClassification=current-selector-row-entry-with-resource-list, addressPredecessorLastFillAllStartsPassCurrentReader=True, addressPredecessorTailHasKnownSecondaryFillAfterLastFill=False, addressPredecessorPassingFillStillNotExecutionProof=True, addressPredecessorTailCurrentRootRangePointerCount=74, addressPredecessorTailCurrentRootExactRefCount=0, addressPredecessorTailFrontierReaderRefCount=0, addressPredecessorTailSourceRecordRefCount=0, addressPredecessorTailTargetRecordRefCount=0, addressPredecessorTailLooksLikeDescriptorData=True, addressContiguityProvesExecution=False, and executionOrderProven=False.","out/save_selector_mapset_aliases.* separates duplicate target-side selector map sets; duplicateMapSetGroupCount=5, duplicateMapSetSelectorCount=13, targetAliasSelectors=1:0,10:0,17:0, targetAliasPublicSampleCount=0, currentEqualsTargetAliasPlusSource=True, sourceTargetUnionExtraMaps=map1_02b, addressPredecessorEqualsLogicalPredecessorMapSet=True, addressContiguityProvesExecution=False, promotionStatus=blocked.","out/save_selector_target_alias_state_effects.* applies the current-reader branch-state equation to target-side aliases; targetAliasSelectors=1:0,10:0,17:0, aliasPassCount=2, aliasesThatWouldPassIfExecutedAndPersisted=1:0,10:0, aliasNoFillProofCount=1, aliasesWithoutFillProof=17:0, allTargetAliasesHaveFillProof=False, currentWriterVaHex=0x005428bc, currentReaderVaHex=0x00542b0c, promotionStatus=blocked.","out/save_selector_target_alias_bridges.* scans direct alias-root dword links into the bounded current root; targetAliasSelectors=1:0,10:0,17:0, currentRootRangeHex=0x00540714..0x00543578, aliasToCurrentHitCount=75, aliasToCurrentMetadataHitCount=1, aliasToCurrentDataHitCount=74, publicCoveredAliasSelectors=-, publicCoveredForwardHitSelectors=-, forwardHitPublicSampleCount=0, addressAdjacentForwardHitSelectors=10:0, forwardHitsAddressAdjacentOnly=True, publicForwardHitCoverageStatus=uncovered-address-adjacent-only, targetAliasExecutionExclusionStatus=address-adjacent-alias-data-only, aliasesWithForwardHits=10:0, aliasesWithForwardDataHits=10:0, aliasesWithAfterLastFillDataHits=10:0, dominantForwardDataAliases=10:0, dominantAfterLastFillDataAliases=10:0, aliasToCurrentPromotingExactHitCount=1, aliasToCurrentPromotingMetadataHitCount=1, aliasToCurrentPromotingDataHitCount=0, aliasToCurrentPromotingExactMetadataOnly=True, aliasToCurrentPromotingMetadataSourceRoles=current-selector-row-selected-root-entry, aliasToCurrentReaderOrSceneRecordHitCount=0, aliasToCurrentLeafTableHitCount=9, aliasToCurrentLeafTableRoutePairHitCount=2, aliasToCurrentLeafTableReaderHitCount=0, aliasToCurrentLeafTableCorrectedReaderHitCount=2, aliasToCurrentLeafTableEffectiveReaderHitCount=2, aliasToCurrentLeafTableFrontierLeafHitCount=0, aliasToCurrentPreWriterUniqueTargetCount=38, aliasToCurrentPreWriterTraceCurrentWriterHitCount=0, aliasToCurrentPreWriterTraceCurrentReaderHitCount=0, aliasToCurrentPreWriterTraceRouteSceneRecordHitCount=0, aliasToCurrentAfterLastFillHitCount=74, aliasToCurrentAfterLastFillDataHitCount=74, aliasToCurrentAfterLastFillMetadataHitCount=0, aliasToCurrentAfterLastFillPreWriterHitCount=65, aliasToCurrentAfterLastFillLeafTableHitCount=9, aliasToCurrentAfterLastFillLeafTableCorrectedReaderHitCount=2, aliasToCurrentAfterLastFillLeafTableEffectiveReaderHitCount=2, aliasToCurrentAfterLastFillReaderOrSceneRecordHitCount=0, aliasToCurrentAfterLastFillPreWriterUniqueTargetCount=38, aliasToCurrentAfterLastFillTraceCurrentWriterHitCount=0, aliasToCurrentAfterLastFillTraceCurrentReaderHitCount=0, aliasToCurrentAfterLastFillTraceRouteSceneRecordHitCount=0, aliasToCurrentAfterLastFillExecutionLikeBridgeFound=False, aliasToCurrentAfterLastFillTargetClasses=leaf-table-window:9,pre-writer-script-range:65, aliasToCurrentExecutionLikeBridgeFound=False, aliasToCurrentTargetClasses=leaf-table-window:9,pre-writer-script-range:65,selector-row-metadata:1, aliasesWithoutForwardHits=1:0,17:0, proofFound=False, failedTargetAliasBridgeGates=target-alias-execution-order,branch-state-persistence,real-selector-2:0-or-selected-root-runtime,strict-source-hotspot, missingEvidenceCount=4, evidenceRefs=5, promotionStatus=blocked.","out/save_selector_route_root_ref_context.* checks selector root reference chains; allRouteSelectorRootsTableOnly=True, anyRouteSelectorRootTextRefs=False, sourceTargetSplitAcrossPreviousSelectors=True, predecessorToCurrentRootRefFound=False, routeOrderProven=False, proofFound=False, failedRouteRootRefGates=selector-root-code-ref,predecessor-current-root-link,route-order-execution-proof,strict-hotspot-or-real-selector-proof, missingEvidenceCount=4, evidenceRefs=2, promotionStatus=blocked.","out/save_selector_predecessor_bridge_refs.* scans direct dword bridges between predecessor/current roots; predecessorToCurrent=0, currentToPredecessor=51, forwardExecutionBridgeFound=False, reverseHitsBeforeFill=51, reverseHitsToFillSite=0, and routeOrderProven=False.","out/save_selector_reverse_reuse_context.* classifies current->predecessor reverse hits as reuse, not execution; reverseHitCount=51, beforePredecessorFillHitCount=51, fillSiteHitCount=0, unalignedTargetCount=27, forwardMergeBridgeHitCount=0, directMergeExecutionBridgeFound=False.","out/save_selector_merge_execution_gap.* consolidates selector merge shape versus execution proof; currentEqualsPredecessorPlusSource=True, routePairOnlyCurrent=True, currentExactPairUnions=0, sourceCurrentBridge=0/0, predecessorCurrentBridge=0/51, forwardMergeBridgeHitCount=0, reverseBeforeFill=51, reverseFillSite=0, forwardEncodedAnchorRawScalarCandidateCount=3, forwardEncodedAnchorPromotingCandidateCount=0, encodedMergeExecutionBridgeFound=False, targetAliasForwardHitSelectors=10:0, targetAliasForwardDataSelectors=10:0, targetAliasAfterLastFillDataSelectors=10:0, targetAliasPublicCoveredForwardHitSelectors=-, targetAliasForwardHitPublicSampleCount=0, targetAliasAddressAdjacentForwardHitSelectors=10:0, targetAliasPublicForwardHitCoverageStatus=uncovered-address-adjacent-only, targetAliasExecutionExclusionStatus=address-adjacent-alias-data-only, targetAliasToCurrentPromotingMetadataHitCount=1, targetAliasToCurrentPromotingDataHitCount=0, targetAliasToCurrentPromotingExactMetadataOnly=True, targetAliasExecutionLike=False, routeRootExecutionRef=False, branchStateExecutionProofFound=False, selectorMergeExecutionProofFound=False, runtimeOrControlFlowProofFound=False, proofFound=False, failedSelectorMergeExecutionGates=source-current-bridge,predecessor-current-forward-bridge,execution-like-bridge-or-root-ref,branch-state-execution-proof,strict-source-hotspot, missingEvidenceCount=5, evidenceRefs=7, selectorMergeGapOpen=True, promotionStatus=blocked.","out/save_selector_merge_runtime_context.* ties selector merge shape to runtime proof gates; mergeShapeOnly=True, forwardBridgeAbsent=True, forwardEncodedAnchorRawScalarCandidateCount=3, forwardEncodedAnchorPromotingCandidateCount=0, encodedMergeExecutionBridgeFound=False, targetAliasPublicCoveredForwardHitSelectors=-, targetAliasForwardHitPublicSampleCount=0, targetAliasAddressAdjacentForwardHitSelectors=10:0, targetAliasPublicForwardHitCoverageStatus=uncovered-address-adjacent-only, targetAliasExecutionExclusionStatus=address-adjacent-alias-data-only, reverseReuseBeforeFillOnly=True, selectedRootExecutionRefFound=False, anyRuntimePollReachedRouteSelector=False, constructedDiagnosticPollReachedRouteSelector=True, constructedDiagnosticExcludedFromProof=True, predecessorFillSiteExecutionContextProven=False, predecessorBranchStatePollSamples=46919, predecessorBranchStatePollFillMatches=0, routePairEntryExecutionProven=False, routePairCorrectedTraceReachesReaderCount=2, strictSourceCoordinateFound=False, tileHotspotConfirmed=False, selectorMergeRuntimeProofFound=False, proofFound=False, failedSelectorMergeRuntimeGates=selector-merge-execution-proof,selected-root-runtime-execution,predecessor-fill-runtime-proof,route-pair-entry-execution,strict-source-hotspot, missingEvidenceCount=5, evidenceRefs=5, selectorMergeGapOpen=True, promotionStatus=blocked.","out/save_selector_merge_closure_context.* closes selector merge as shape-only, not execution proof; currentEqualsPredecessorPlusSource=True, sourcePredecessorUnionCoversCurrent=True, extraMaps=map1_02b, shapeOverIncludesExtraMaps=True, mergeShapeOnly=True, forwardBridgeAbsent=True, sourcePredecessorForwardBridge=0/0/0, forwardEncodedAnchorRawScalarCandidateCount=3, forwardEncodedAnchorPromotingCandidateCount=0, encodedMergeExecutionBridgeFound=False, reverseReuseBeforeFillOnly=True, reverseHits=51/51/0, targetAliasPublicForward=-, targetAliasAddressAdjacentForward=10:0, targetAliasForwardHitPublicSampleCount=0, targetAliasExecutionExclusionStatus=address-adjacent-alias-data-only, targetAliasExecutionLike=False, routeRootsTableOnly=True, routeRootPredToCurrentRef=False, selectedRootExecutionRefFound=False, anyRuntimePollReachedRouteSelector=False, constructedDiagnosticExcludedFromProof=True, predecessorFillOpcode10ProofFound=False, predecessorFillOpcode10RuntimeObservedAllZero=True, predecessorFillOpcode10BranchStatePollFillMatchCount=0, routeOrderProven=False, predecessorPersistenceProven=False, strictSourceCoordinateFound=False, tileHotspotConfirmed=False, selectorMergeExecutionProofFound=False, selectorMergeRuntimeProofFound=False, selectorMergeClosureProofFound=False, proofFound=False, failedSelectorMergeGates=selector-merge-execution-proof,selected-root-runtime-execution,predecessor-fill-route-order-proof,strict-source-hotspot, missingEvidenceCount=4, evidenceRefs=10, predecessorPersistenceUsableForCurrent=False, promotionStatus=blocked.","out/save_selector_wrapper_execution_gap.* consolidates current selector leaf selection and wrapper execution proof gaps; evidenceRows=13, remainingProofs=4, wrapperEntry=0x005429ac, wrapperDescriptor=0x00542a04, frontierLeaf=0x00542ae8, frontierReader=0x00542b0c, wrapperRefBeforeCurrentRoot=True, currentRootReferencesWrapper=False, wrapperEntryCurrentRootEntryRunRefCount=0, wrapperEntryOpcode5aFallthroughRefCount=1, wrapperEntryPromotingRefCount=0, globalCurrentSelectorRoutePairIndices=[-13, -12, 6, 8], globalCurrentSelectorNegativeNonNegative=2/2, globalCurrentFrontierLeafOnlyNegative=True, routePairReaderTraceGrounded=True, readerBearingNegativeOnly=True, correctedTraceNormalSelectionGapStatus=corrected-trace-not-normal-selection-proof, correctedTraceNormalSelectionGapFound=True, opcode07LeafSelectionAbsent=True, opcode08SourceOrPredecessorCurrentRootRange=0/0, opcode09SourceOrPredecessorCurrentRangeStores=0, sourceOrPredecessorCurrentProducerCount=0, constructedDiagnosticWrapperProofStatus=diagnostic-only-not-reproduced, constructedDiagnosticLeftRecheckRouteHits=125/0/0, constructedDiagnosticLeftActiveOrderCount=0x00x679, constructedDiagnosticExcludedFromWrapperProof=True, selectedRootExecutionRefFound=False, proofFound=False, failedWrapperGates=selected-root-execution,current-leaf-selection,wrapper-execution,current-selector-leaf-execution,strict-hotspot, missingEvidenceCount=5, currentLeafSelectionProofFound=False, wrapperExecutionProofFound=False, currentSelectorLeafExecutionProofFound=False, strictHotspotFound=False, promotionStatus=blocked.","out/save_selector_opcode24_globals.* keeps opcode 0x24 mode1 source unwritten; range=0x0059e330..0x0059e350, currentMode=0x01, mode1Reads/Writes=1/0, mode1DirectWriteCount=0, mode1UnwrittenRuntimeGlobalSource=True, mode1DirectWriteHole=True, mode1NearestWrites=0x0059e347/0x0059e34a, mode2DirectWriteCount=1, mode2Writer=0x0040fb21, mode2CopiesCurrentRuntimeObjectIndex=True, mode2Source=0x0059e33e, mode2Target=0x0059e347.","out/save_selector_opcode24_mode1_source_writes.* rules out direct/static writes for opcode 0x24 mode1 source; mode1Source=0x0059e348, rows=95, exactMode1RefCount=1, coveringWriteCount=0, coveringWrites=0, indexedWriteCandidateCount=0, indexedWriteCandidates=0, addressProducerCandidateCount=0, addressProducerCandidates=0, staticProducerCandidateCount=0, staticProducerCandidates=0, promotionStatus=blocked.","out/save_selector_opcode24_runtime_enabled_block_writes.* rules out broad static block writes for opcode 0x24 runtime flag; runtimeFlag=0x0059e34d, scanRange=0x0059e300..0x0059e34d, rows=333, rowDetails=333, addressLikeBases=2, addressLikeBaseRows=2, directCoveringWrites=0, directCoveringWriteRows=0, blockWriteCandidates=0, blockWriteCandidateRows=0, promotionStatus=blocked.","out/save_selector_opcode24_mode1_runtime_context.* fixes opcode 0x24 mode1 source as zero-filled non-save runtime state; mode1Source=0x0059e348, saveReadBlocks=3, remainingProofs=3, proofFound=False, failedGates=indirect-runtime-producer,opcode24-route-stream-selection,strict-hotspot, missingEvidenceCount=3, section=.data, rawEnd=0x00559e00, virtualEnd=0x0059f4c0, hasRawByte=False, staticInitialValue=0x00, staticInitialKind=pe-zero-filled-section-tail, saveReadBlockContainsMode1Source=False, directCoveringWriteCount=0, indexedWriteCandidateCount=0, notSavedataBacked=True, noStaticProducer=True, diagnosticRouteSamples=210, diagnosticMode1Source=0x00, diagnosticRuntimeFlag=0x00, diagnosticCurrentObjectIndex=0x00, diagnosticWatchStable=True, diagnosticStatus=diagnostic-only, diagnosticNormalRouteProof=False, evidenceRefs=10, promotionStatus=blocked.","out/save_selector_opcode24_mode1_default_effect.* ties opcode 0x24 mode1's static default to object+0x61; sourceValue=0x00, defaultObject61=0x03, object61Groups=6, routeOperandRows=12, remainingProofs=3, saveBacked=False, staticProducer=False, directFrontierOperandCount=0, branchFrontierOperandCount=0, branchNextDword=0x00001618, branchCns=map2_16j.cns, staticDefaultPromotesRoute=False.","out/save_selector_opcode24_payload_table.* keeps the opcode 0x24 payload table pointer-local; opcode24=0x005428e4, dispatchStop=0x005428f4, payloadWindow=0x005428e8..0x005429a4, leafTableWindowStart=0x005429a8, rootTablePointer=0x005429dc, wrapperLeaf=0x00542a04, frontierLeaf=0x00542ae8, frontierReader=0x00542b0c, payloadPointerCount=7, leafTablePointerCount=0, payloadGraphEdgeCount=7, payloadGraphComponentCount=4, payloadGraphExternalEdgeCount=0, payloadGraphAllEdgesLocal=True, payloadGraphReachesFrontierTarget=False, closureReachesFrontierTarget=False, payloadDirectlyTargetsLeafTable=False, promotionStatus=blocked.","out/save_selector_opcode24_current_root_modes.* scans current selector 2:0 root opcode 0x24 candidates; rootRange=0x00540714..0x00543578, rowCount=28, opcodeCandidateCount=19, pointerCollisionCount=9, mode1CandidateCount=18, frontierOperandCount=0, routeCnsOperandCount=0, gateBoundary=0x005428e4, promotionStatus=blocked.","out/save_selector_wrapper_descriptor_context.* separates the frontier wrapper from the current root entry run; currentRootDescriptorCount=10, wrapperRefBeforeCurrentRoot=True, currentRootReferencesWrapper=False, frontierLeafDirectCurrentRootRef=False, wrapperChildIsFrontierLeaf=True, wrapperEntryRefCount=1, wrapperEntryCurrentRootRangeRefCount=1, wrapperEntryPromotingRefCount=0, and promotionStatus=blocked.","out/save_selector_leaf_table_context.* keeps current selector leaf selection unproven; leafRefCount=4, evidenceRefs=4, frontierLeafRefIsDirectRootTableEntry=False, runtimeSelectionProven=False, proofFound=False, failedLeafTableGates=runtime-selector-index,wrapper-frontier-execution,strict-hotspot, missingEvidenceCount=3, strictHotspotFound=False, frontierLeaf=0x00542ae8, frontierReader=0x00542b0c.","out/save_selector_leaf_index_space.* indexes the current selector leaf table relative to the root table pointer; entryCount=23, evidenceRefs=3, negativeIndexCount=13, currentRootEntryCount=10, routePairDescriptorCurrentEntryCount=2, readerBearingCurrentEntryCount=0, readerBearingNegativeEntryCount=1, opcode2cCorrectionApplied=True, correctedReaderBearingCurrentEntryCount=2, correctedRoutePairTraceReachesReaderCount=2, frontierLeafChildEntryIndices=[-12], frontierReaderSelectableByNonNegativeIndex=False, frontierReaderReachableByCorrectedNonNegativeIndex=True, runtimeSelectionProven=False, proofFound=False, failedLeafIndexGates=normal-runtime-selector-root-execution,reader-branch-target-linkage,strict-hotspot, missingEvidenceCount=3.","out/save_selector_leaf_table_global_context.* compares leaf-table windows across selector rows; selectorTableCount=35, evidenceRefs=2, fieldEntryRowCount=261, negativeFieldEntryRowCount=136, nonNegativeFieldEntryRowCount=125, currentSelectorRoutePairIndices=[-13, -12, 6, 8], currentFrontierLeafOnlyNegative=True, promotionStatus=blocked.","out/save_selector_route_pair_descriptor_context.* compares current-root route-pair descriptors with the reader-bearing frontier descriptor; currentRoutePairDescriptorCount=2, currentRoutePairDescriptorIndices=[6, 8], currentRoutePairSceneAdjacentCount=2, opcode2cCorrectionApplied=True, currentRoutePairRawTraceReachesReaderCount=0, currentRoutePairCorrectedTraceReachesReaderCount=2, currentRoutePairTraceReachesReaderCount=2, currentRoutePairGeometryExitHitCount=0, frontierReaderReachableByCorrectedNonNegativeIndex=True, readerBearingCurrentEntryCount=0, readerBearingNegativeEntryCount=1, readerBearingNegativeIndices=[-12], proofFound=False, failedRoutePairDescriptorGates=normal-runtime-selector-root-execution,reader-branch-target-linkage,strict-source-hotspot, missingEvidenceCount=3, evidenceRefs=4, promotionStatus=blocked.","out/save_selector_opcode2c_route_pair_context.* corrects the local opcode 0x2c trace stop: handler=0x0040d080, oldNoFixedAdvanceStopCount=2, correctedTraceReachesReaderCount=2/2, oldNoFixedAdvanceIsScannerArtifact=True, strictHotspotFound=False, runtimeSelectionProven=False, proofFound=False, failedOpcode2cRoutePairGates=normal-route-descriptor-selection,frontier-reader-target-linkage,strict-source-hotspot, missingEvidenceCount=3, evidenceRefs=2, promotionStatus=blocked.","out/save_selector_opcode07_indexed_pointers.* closes the direct opcode 0x07 frontier-selection path; rowCount=33, validTableRowCount=30, indexMode=zero-extended-u8, selectedLeafTableWindowSlotCount=0, selectedNegativeRootEntrySlotCount=0, selectedWrapperEntrySlotCount=0, directFrontierTargetCount=0, and promotionStatus=blocked.","out/save_selector_object61_stream_operands.* blocks object+0x61 promotion; objectHandlerOpcodeCount=5, routeOperandRowCount=12, branchCapableRowCount=1, directFrontierOperandCount=0, branchFrontierOperandCount=0, branchNextDword=0x00001618, branchMeaning=map2_16j.cns.","out/save_selector_context58_consumers.* closes context+0x58 as standalone promotion evidence; context58RefCount=23, currentOpcode24ModeHex=0x01, currentOpcode24ModeTouchesContext58=False, opcode20Context58HandlerCount=1, context58PromotionStatus=blocked-not-current-opcode24-path.","out/save_selector_current_root_frontier_paths.* separates current-root leaf adjacency from promotion; leafCount=3, readerLeafCount=1, frontierClusterClass=current frontier selector-only cluster, frontierClusterEventCount=0, frontierClusterSelectorRefCount=34, strictHotspotFound=False, proofFound=False, failedCurrentRootFrontierGates=normal-current-root-execution,strict-source-hotspot,frontier-event-cluster,reader-branch-target-linkage, missingEvidenceCount=4, evidenceRefs=5, promotionStatus=blocked.","out/runtime_trace_feasibility.* records the exact watchpoints needed for the current runtime proof; proofFound=False, failedRuntimeTraceGates=runtime-trace-capture-unavailable,stable-watchpoint-session-unavailable,equivalent-selected-root-proof-missing, missingEvidenceCount=3, evidenceRefs=17.","out/runtime_trace_execution_probe.* records the bounded runtime trace capture attempts; canCaptureTraceNow=False, qemuI386BinfmtRegistered=True, winePrefix=/home/exedev/.cache/hwanse-wine32, gdbMultiarch=/bin/gdb-multiarch, relocatedTraceBase=0x00120000, relocatedDelta=-0x002e0000, probeCount=18, blockerCount=6, qemuGdbstubConnectStatus=0, hardwareWatchpointCrashed=True, softwareBreakpointCrashed=True, relocatedSoftwareBreakpointCrashed=True, relocatedWatchpointCrashed=True, virtualDesktopGdbstubConnectStatus=0, virtualDesktopGdbstubConnectCrashed=False, virtualDesktopRelocatedSoftwareBreakpoint=0/False/True, virtualDesktopRelocatedWatchpoint=0/False/True.","out/runtime_memory_snapshot.* samples a live Wine Hwanse2.exe process without WineDbg: loadedBase=0x00120000, canReadProcessMemory=True, selectedPointerStatic=0x004a2d38, selectedPointerEqualsCurrentRoot=False, currentRootRelocationLooksValid=True; this is not route-path watchpoint proof.","out/runtime_input_path_probe.* probes original EXE input driving: loadedBase=0x00120000, baselineSelectedPointer=0x004a2d38, baselineSelector=8:0, initialSelectedPointer=0x004a2d38, finalSelectedPointer=0x004d0584, finalSelector=50:0, heldKeyPressedDetected=True, heldKeyChangedSelectedPointer=False, xEventChangedSelectedPointer=False, keyBufferPokeChangedSelectedPointer=True; this is diagnostic-only and does not promote the route.","out/runtime_key_sequence_probe.* tries bounded original-EXE direct key-buffer sequences: sequenceCount=28, startupWait=14.0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this is diagnostic-only and does not promote the route.","out/runtime_key_sequence_prelude_probe.* retries selected direct key-buffer sequences after the input-path prelude: sequenceCount=3, prelude=input-path, observedSelectors=8:0,50:0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this explains the non-route 50:0 movement but still does not promote the route.","out/runtime_selected_pointer_poll.* polls selected-pointer global 0x0059de30 during original-EXE direct key-buffer input: sequenceCount=8, sampleCount=1550, pollInterval=0.02, observedSelectors=8:0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this is a non-debugger fallback and still does not promote the route.","out/runtime_selected_pointer_prelude_poll.* repeats selected-pointer global 0x0059de30 polling after the input-path prelude: sequenceCount=3, sampleCount=491, prelude=input-path, pollInterval=0.02, observedSelectors=8:0,50:0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this confirms the prelude path remains diagnostic-only and still does not promote the route.","out/runtime_selected_pointer_long_poll.* extends selected-pointer global 0x0059de30 polling to longer custom key-buffer sequences: sequenceCount=5, sampleCount=1928, prelude=input-path, pollInterval=0.02, observedSelectors=8:0,50:0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this keeps the longer title/menu probing diagnostic-only and still does not promote the route.","out/runtime_selected_pointer_late_poll.* repeats selected-pointer global 0x0059de30 polling after a longer title/start wait: sequenceCount=1, sampleCount=1122, startupWait=45.0, prelude=focus-only, pollInterval=0.02, observedSelectors=8:0,50:0, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; this reduces the early-input timing concern but remains diagnostic-only and still does not promote the route.","out/runtime_route_watch_values_poll.* samples selected-pointer and opcode24 route watch values during original-EXE key-buffer input: sequenceCount=1, sampleCount=1123, startupWait=45.0, pollInterval=0.02, observedSelectors=8:0,50:0, watchValues=opcode24CurrentObjectIndex=0x00x1123; opcode24Mode1Source=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; opcode24 mode1 source and current object index stayed zero in this poll, so this is diagnostic-only and still does not promote the route.","out/runtime_selected_pointer_synthetic_selector_2_0_input_path_case_alias_poll.* stages a standalone synthetic selector 2:0 save-shaped file under SaveData/savedat1.dat with temporary archive case aliases, runs the input-path prelude, and polls selected-pointer during load-menu candidate input: sequenceCount=2, sampleCount=374, startupWait=18.0, prelude=input-path, pollInterval=0.02, caseAliasesEnabled=True, inputObserved=True, pressedSeq=2/2, pressedEvents=18, stagedSelectors=2:0, observedSelectors=8:0, observedStagedSelectors=-, anyReachedStagedSelector=False, watchValues=opcode24CurrentObjectIndex=0x00x374; opcode24Mode1Source=0x00x374; opcode24RuntimeFlag=0x00x374, anyReachedCurrentRoot=False, anyReachedRouteSelector2_0=False; standalone synthetic selector 2:0 remains non-promoting and contrasts with the patched public-base diagnostic.","out/runtime_selected_pointer_patched_public_selector_2_0_input_path_case_alias_poll.* stages a patched public-base selector 2:0 diagnostic under SaveData/savedat1.dat with temporary archive case aliases, runs the input-path prelude, and polls selected-pointer during load-menu candidate input: stagedKind=patched public-base diagnostic, sequenceCount=2, sampleCount=375, startupWait=18.0, prelude=input-path, pollInterval=0.02, caseAliasesEnabled=True, inputObserved=True, pressedSeq=2/2, pressedEvents=138, stagedSelectors=2:0, observedSelectors=2:0,10:0, observedStagedSelectors=2:0, anyReachedStagedSelector=True, watchValues=opcode24CurrentObjectIndex=0x00x375; opcode24Mode1Source=0x00x375; opcode24RuntimeFlag=0x00x375, anyReachedCurrentRoot=True, anyReachedRouteSelector2_0=True; this proves the current load path can select a constructed 2:0 save-shaped diagnostic, but it is not a captured gameplay save or strict route trigger.","out/runtime_patched_selector_left_stability_poll.* reruns the constructed left-exit public-base selector 2:0 save under load-only/load-left/load-right variants: sequenceCount=3, sampleCount=679, observedSelectors=50:0,10:0,2:0, observedStagedSelectors=2:0, sequenceSelectors=left-load-only:164:50:0x164:routeHits=0; left-load-left:257:50:0x257:routeHits=0; left-load-right:258:10:0x133,2:0x125:routeHits=125, watchValues=opcode24CurrentObjectIndex=0x00x679; opcode24Mode1Source=0x00x679; opcode24RuntimeFlag=0x00x679, anyReachedRouteSelector2_0=True; selector-only recheck samples=680 observed=50:0 routeHits=0; active-order recheck samples=679 observed=50:0 activeOrderCount=activeOrderCount=0x00x679 routeHits=0; the initial route hit is not reproduced by rechecks and remains diagnostic-only.","out/runtime_save_file_io_probe.* places a public captured save under SaveData/savedat1.dat and traces file I/O during load-menu candidate input: backend=winedebug, sequenceCount=1, sequenceWithPid=0, sequenceWithKeyWrites=0, inputTraceUsable=False, matchedFileIoLines=0, caseAliasesEnabled=None, caseAliasesRemoved=-, anySavedat1Access=False; absent savedat lines remain backend-feasibility evidence, not load-menu proof.","out/runtime_save_file_io_strace_probe.* places a public captured save under SaveData/savedat1.dat and traces file I/O during load-menu candidate input: backend=strace, sequenceCount=1, sequenceWithPid=0, sequenceWithKeyWrites=0, inputTraceUsable=False, matchedFileIoLines=0, caseAliasesEnabled=None, caseAliasesRemoved=-, anySavedat1Access=False; absent savedat lines remain backend-feasibility evidence, not load-menu proof.","out/runtime_save_file_io_strace_attach_probe.* places a public captured save under SaveData/savedat1.dat and traces file I/O during load-menu candidate input: backend=strace-attach, sequenceCount=1, sequenceWithPid=1, sequenceWithKeyWrites=1, inputTraceUsable=True, matchedFileIoLines=0, caseAliasesEnabled=None, caseAliasesRemoved=-, anySavedat1Access=False; this usable attached trace saw no savedat lines in the bounded load-menu candidate window, but it is still not full load-menu proof.","out/runtime_save_file_io_strace_attach_load_candidates_probe.* places a public captured save under SaveData/savedat1.dat and traces file I/O during load-menu candidate input: backend=strace-attach, sequenceCount=8, sequenceWithPid=8, sequenceWithKeyWrites=8, inputTraceUsable=True, matchedFileIoLines=0, caseAliasesEnabled=None, caseAliasesRemoved=-, anySavedat1Access=False; this usable attached trace saw no savedat lines across the covered bounded load-menu candidate windows, but it is still not full load-menu proof.","out/runtime_save_file_io_strace_attach_load_candidates_case_alias_probe.* places a public captured save under SaveData/savedat1.dat and traces file I/O during load-menu candidate input: backend=strace-attach, sequenceCount=8, sequenceWithPid=8, sequenceWithKeyWrites=8, inputTraceUsable=True, matchedFileIoLines=0, caseAliasesEnabled=True, caseAliasesRemoved=Gense.fld,middata.mlk,pcmdata.wlk, anySavedat1Access=False; this case-alias attached trace had a usable bounded input window and no savedat lines; aliases reduce archive lookup noise but still do not prove the full load-menu path.","out/runtime_title_start_context.* separates original EXE title/start diagnostics from the current web start: selectedPointer=0x004a2d38, selector=8:0, fieldMapCount=12, titleResourceNearby=True, livePointerClassification=title-resource-tail-not-field-record, selector8FieldRecordSpan=0x00498cd8..0x004990f0, titleResourceTailSpan=0x004a2cc0..0x004a2d0b, inputTransition=8:0->50:0, inputTransitionClassification=non-field-map-resource-context, inputTransitionFieldMapCount=0, inputTransitionCns=cara_05.cns,zh_rai.cns, inputTransitionPayloads=cara_05.cns:image:640x400,zh_rai.cns:image:472x88, webConfirmedStart=map1_02b, confirmedOverlap=none, candidateOverlap=map5_02h,map5_03h,map5_04h,map5_05h,map5_06h,map5_07h,map5_08h,map5_09h,map5_10h,map5_39h,map5_40f, keySequenceReachedRouteSelector2_0=False, promotionStatus=diagnostic-only."],"gaps":["1 confirmed-route blocker(s) remain.","The current route stops at map1_01a because no strict source coordinate has been found for map1_01a -> map2_02d.","routeAssist is a trial/debug route continuation, not confirmed normal-route evidence.","The current VM has Wine tooling installed, but qemu-i386/WineDbg control probes fail even for notepad, so the Hwanse2.exe runtime trace cannot be captured here yet. A non-debugger /proc memory snapshot can read Hwanse2.exe globals, but the latest idle sample is not route-path proof. Embedded execution-probe binfmt view: registered=True, enabled=True; summary view enabled=True. The qemu-i386 binfmt state is consistent with the child/debugger trace availability check. Direct qemu-i386 can run both the Wine loader smoke (wine-9.0 (Ubuntu 9.0~repack-4build3)) and CLI child exec smoke (Microsoft Windows 10.0.19043); the remaining blocker is the WineDbg/runtime trace path. A bounded X/input-buffer probe confirms Wine DirectInput can see held synthetic keydowns, but ordinary X key events did not move the idle selected pointer. Direct cached-key-buffer pokes moved the selected pointer only to non-route selector 50:0, not current selector 2:0. This remains input-path diagnostic evidence, not route proof. A bounded direct key-buffer sequence probe covered 28 sequence(s) after 14.0s startup wait and reached route selector 2:0=False; it remains non-promoting diagnostic evidence. A supplemental input-path prelude key-buffer probe covered 3 sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is diagnostic-only. A non-debugger selected-pointer poll covered 1550 sample(s) across 8 direct key-buffer sequence(s), observed selectors=8:0, and reached route selector 2:0=False; it still does not replace a watchpoint trace. A supplemental input-path selected-pointer poll covered 491 sample(s) across 3 direct key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental long selected-pointer poll covered 1928 sample(s) across 5 custom key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental late-start selected-pointer poll waited 45.0s, covered 1122 sample(s) across 1 key-buffer sequence(s), observed selectors=8:0,50:0, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental route watch-value poll covered 1123 sample(s) across 1 key-buffer sequence(s), observed selectors=8:0,50:0, watchValues=opcode24CurrentObjectIndex=0x00x1123; opcode24Mode1Source=0x00x1123; opcode24RuntimeFlag=0x00x783,0x01x340, and reached route selector 2:0=False; it is also diagnostic-only. A supplemental standalone synthetic selector 2:0 poll staged a save-shaped file under SaveData\\savedat1.dat, ran the input-path prelude with case aliases, and covered 374 sample(s) across 2 load-menu candidate sequence(s), inputQuality=pid=2/2 base=2/2 keyWrites=2/2 pressedSeq=2/2 pressedEvents=18 offsets=28,208, stagedSelectors=2:0, observed selectors=8:0, observedStaged=False, and reached route selector 2:0=False; this keeps standalone synthetic selector 2:0 non-promoting. A supplemental patched public-base selector 2:0 diagnostic poll staged a public save with only selector/position bytes patched under SaveData\\savedat1.dat, ran the input-path prelude with case aliases, and covered 375 sample(s) across 2 load-menu candidate sequence(s), inputQuality=pid=2/2 base=2/2 keyWrites=2/2 pressedSeq=2/2 pressedEvents=138 offsets=28,208, stagedSelectors=2:0, observed selectors=2:0,10:0, observedStaged=True, and reached route selector 2:0=True; this proves the load path can select a constructed 2:0 save-shaped diagnostic, but it is not a captured gameplay save. A supplemental SaveData file-I/O trace probe (winedebug) placed a public save under SaveData/savedat1.dat but inputTraceUsable=False (pidRuns=0/1, keyWriteRuns=0/1); absent savedat lines remain backend-feasibility evidence, not load-menu proof. A supplemental SaveData file-I/O trace probe (strace) placed a public save under SaveData/savedat1.dat but inputTraceUsable=False (pidRuns=0/1, keyWriteRuns=0/1); absent savedat lines remain backend-feasibility evidence, not load-menu proof. A supplemental attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat and had inputTraceUsable=True (pidRuns=1/1, keyWriteRuns=1/1, matchedFileIoLines=0, savedat1Access=False); this rules out savedat file access only for the bounded attached load-menu candidate window, not the full load-menu path. A broader attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat and had inputTraceUsable=True (pidRuns=8/8, keyWriteRuns=8/8, matchedFileIoLines=0, savedat1Access=False); this rules out savedat file access across the covered bounded load-menu candidate windows, not the full load-menu path. A case-alias attached SaveData file-I/O trace probe (strace-attach) placed a public save under SaveData/savedat1.dat with temporary resource archive aliases and had inputTraceUsable=True (pidRuns=8/8, keyWriteRuns=8/8, matchedFileIoLines=0, savedat1Access=False); aliases reduce archive lookup noise but still do not prove full load-menu reachability."]},{"id":"event-dialogue-battle","title":"Event, dialogue, battle, and story-state systems are playable, not only inspected","status":"partial","evidence":["Scene events, save selectors, branch state candidates, and object assets are extracted into review reports.","CP949 Korean text candidates are indexed with executable VA and pointer references for the next text-handler pass.","Decompressed CNS payload text scan found no plain CP949 dialogue candidates after excluding image pixels and tilemap bodies.","Scene event condition/payload windows have no direct Korean text or text-table pointers in the current extraction.","Known Korean text routine callers use instruction-aligned direct-call scanning and classify as system UI, item/menu, or battle-action contexts; no story-dialogue caller class is identified yet.","Event/object VM handler scan finds opcode 0x0b calling text routine candidate 0x0041b579 without local static Korean text refs; other matched handlers reference item/action text tables.","Event text source flow identifies opcode 0x0d as a context+0x28 producer and finds story-like CP949 text near many 0x0d/0x0b streams, but current route-linked 0x0c hits are pointer-byte overlaps.","Event dialogue block indexing groups opcode 0x0d source commands with nearby CP949 text, 0x0b render commands, and 0x35 literal text payload markers, but this is still storage evidence rather than event-driven playback.","No event/battle prototype gap audit has been generated yet.","out/event_vm_semantics_gap.* consolidates event/script VM semantic evidence without promoting route execution: scriptOpcodes=35, scriptCodeHandlers=26, scriptDefaultHandlers=9, eventTableEntries=64, eventUniqueHandlers=56, eventHandlerScanCount=56, directTextRoutineHandlers=1, textCommands=3265, opcode0dMediumCommands=79, routeLinkedTextCommands=2, routeLinkedCommandsArePointerOverlap=True, textSourceOpcodeLengthsDecoded=True, textSourceOperandSemanticsGrounded=True, decodedTextSourceOpcodeLengths={'0x0b': 4, '0x0c': 20, '0x0d': 8}, displayCursorOpcodeGrounded=True, decodedDisplayCursorOpcodeLengths={'0x02': 4}, displayCursorCommandCount=526, controlOpcodeSemanticsGrounded=True, groundedControlOpcodeCount=11, decodedControlOpcodeLengths={'0x03': 4, '0x04': 4, '0x06': 4, '0x07': 8, '0x09': 8, '0x0e': 8, '0x15': 8, '0x1b': 4, '0x37': 4}, variableLengthControlOpcodes={'0x08': {'mode0': 4, 'mode1': 8}}, groundedControlCommandCount=1007, groundedControlEventCount=1007, groundedControlEventOpcodeSet=0x03,0x04,0x06,0x07,0x08,0x09,0x0a,0x0e,0x15,0x1b,0x37, groundedControlSampleEffectExecutionCount=0, browserGroundedControlEventsPreserved=True, browserReplayStatus=passed, browserGroundedControlReplayImplemented=True, browserGroundedControlEffectsExecuted=True, browserGroundedControlExecutedEventCount=15, browserGroundedControlExecutedOpcodeSet=0x03,0x06,0x07,0x08,0x09,0x0a,0x15,0x1b,0x37, browserBranchExecutionSteps=62, browserBranchExecutionRenders=6, browserBranchExecutionLineAdvances=8, browserBranchExecutionWaits=4, browserRenderStateSnapshots=2, browserBranchTextOrigin=5:0x0045ee44:16,16, browserBranchGlobalTimer=5:0x0045ee4c:0, browserEventVmControlFlowSummaryImplemented=True, browserEventVmBranchExecution=True, browserEventVmBranchTextOrigin=True, browserEventVmBranchGlobalTimer=True, browserEventVmRenderStateSnapshot=True, browserEventVmDisplayStyle=True, browserEventVmDisplayTimerState=True, browserEventVmBranchDisplayStyle=True, browserEventVmBranchObjectPosition=True, browserEventVmBranchDisplayTimer=True, browserEventVmCursorRelativeLayout=True, browserEventVmBranchCursorRelative=True, browserEventVmBranchDataBank=True, browserEventVmLiteralPayloadLine=True, browserEventVmObjectPositionFocus=True, browserDialogueInputWaitLatch=True, literalStorageOpcodeObserved=True, opcode0cPointerOverlapNotPromoted=True, dialogueBlocks=47, routeLinkedDialogueBlocks=0, partialVmReplayBlocks=47, partialVmReplayOpcodes=0x02,0x0b,0x0d,0x35, literalVmReplayBlocks=41, literalVmReplayEvents=249, groundedControlReplayBlocks=47, groundedControlReplayEvents=1007, groundedControlReplayOpcodes=0x03,0x04,0x06,0x07,0x08,0x09,0x0a,0x0e,0x15,0x1b,0x37, sceneEventDirectTextRefs=0, scriptHandlerTableMapped=True, eventObjectHandlerTableMapped=True, instructionLengthFullyDecoded=False, operandLayoutFullyDecoded=False, routeLinkedEventVmExecution=False, browserEventVmPartialReplay=True, browserGroundedControlEventsPreserved=True, browserReplayClassification=browser-partial-known-opcode-replay-not-original-event-vm-runtime, browserReplayPromotesOriginalEventVm=False, browserReplayScope=known text-source/cursor/control/display opcode replay for indexed dialogue candidates, eventVmPromotionGatePassed=False, eventVmPromotionMissingGateCount=7, eventVmPromotionMissingGates=fullInstructionLengthDecode,fullOperandLayoutDecode,routeLinkedEventVmExecution,sceneEventDialogueBinding,originalStoryFlagMutation,fullBrowserEventVmImplementation,eventDrivenBattleEntry, remainingOriginalEventVmProofInputs=fullInstructionLengthDecode,fullOperandLayoutDecode,routeLinkedEventVmExecution,sceneEventDialogueBinding,originalStoryFlagMutation,fullBrowserEventVmImplementation,eventDrivenBattleEntry, browserEventVmImplementation=False, eventVmPromotionGateCheck=False, storyDialogueRouteProof=False, status=handler-storage-grounded-execution-missing.","The web runtime can lazy-load the compact dialogue block index, partially replay the indexed opcode 0x02/0x0d/0x0b/0x35 trace into window.HWANSE_LAST_EVENT_VM_REPLAY, expose VM-driven render lines, cursor/separator events, source context, and grounded control/display effect state in the dialogue box snapshot/progress records, apply the grounded text-origin layout, cursor-relative layout, and display style/timer state for rendered dialogue, and show candidate dialogue in a dialogue box; exact map-linked candidates can be opened with Enter/mobile A or the compact dialogueButton without going through the debug menu, and the WebKit smoke verifies map4_08n opens event-dialogue-block-005, records vmPartial=True/vmFull=False with vmOpcodes containing 0x0d and 0x0b plus vmDriven=2/13, vmCoverage=partial-render-prefix, vmSource=0x00030000, and advances it; dialogue open and line advances now record dialogue-open-sound/dialogue-advance-sound markers tied to ../extract_wlk/01.wav, verify dialogueOpenSoundCount=2 and dialogueAdvanceSoundCount=13, and keep repeat keydown at soundRepeat=2. out/dialogue_candidate_review_summary.* verifies dialogue chrome internal-id hiding by showing the play-facing header 대화 1/13 while hiding the internal event-dialogue-block-005 id, records grounded control/display effect execution for event-dialogue-block-005 with groundedControlEffects=True, groundedControlEvents=15, groundedControlOpcodes=0x03,0x06,0x07,0x08,0x09,0x0a,0x15,0x1b,0x37, groundedControlWaits=4, groundedControlBranches=4, controlFlow=4/1, underflow=1, dataBank=0, browserEventVmControlFlowSummaryImplemented=True, branchExecution=62/6, branchLineAdvance=8, branchWait=4, literalPayload=7/7/10, branchExecutionDepth=1/0, browserEventVmBranchExecutionImplemented=True, branchTextOrigin=5:0x0045ee44:16,16, branchGlobalTimer=5:0x0045ee4c:0, browserEventVmBranchTextOriginImplemented=True, browserEventVmBranchGlobalTimerImplemented=True, renderStateSnapshots=2, browserEventVmRenderStateSnapshotImplemented=True, branchRenderSelection=True, groundedControlObjects=1, displayStyle=default, displayStyleProbe=event-dialogue-block-029/emphasis, branchFontRow=12:0x004ec78a:2, branchDisplayStyle=12:0x004ec78e:1:emphasis, branchObjectPosition=12:0x004ec79a:144,248, branchDisplayTimer=12:0x004ec7a2:2880, cursorRelative=37/20, branchCursorRelative=37:0x004e8054:24,96, branchDisplayTimer028=5:0x004e7ffc:1856, branchStyle028=6:0x004e7ff0:0, branchObject028=5:0x004e8000:0,352, branchDataBank028=4:0x004e8088:0, browserEventVmDisplayStyleImplemented=True, browserEventVmDisplayTimerStateImplemented=True, browserEventVmBranchDisplayStyleImplemented=True, browserEventVmBranchObjectPositionImplemented=True, browserEventVmBranchDisplayTimerImplemented=True, browserEventVmCursorRelativeLayoutImplemented=True, browserEventVmBranchCursorRelativeImplemented=True, browserEventVmBranchDataBankImplemented=True, objectFocus=144,248, and browserEventVmObjectPositionFocusImplemented=True, verifies the grounded opcode 0x06 input-release latch in canvas and keyboard play with canvas releaseCleared=True, firstAdvanced=True, repeatBlocked=True, releaseCleared=True, secondAdvancedAfterRelease=True, and browserDialogueInputWaitLatchImplemented=True while keeping originalEventVmRuntimeImplemented=False, records mobile B dialogue cancel by closing the same candidate once by mobile B without completing, reopens it, advances once by a canvas PointerEvent, then to completion, auto-saves it with autoSaved=True and autoSource=dialogue-complete, records browser-local prototypeStoryFlags=1/savedStoryFlags=1/storyFlagSource=prototype-progress-derived-story-flags/storyFlagKeys=story:dialogue-complete:map4_08n:event-dialogue-block-005 with browserPrototypeStoryFlagImplemented=True, restores it as 대사 완료 1/2, then targets next=event-dialogue-block-026 with dialogueCompleteCount=1, dialogueFeedback=dialogue-completion-feedback:대사 완료 1/2, dialogueFeedbackRender=True, and dialogueFeedbackSound=dialogue:../extract_wlk/01.wav:True; it then completes event-dialogue-block-026, restores the all-complete UI as 대사 완료 2, confirms the completed action opens dialogue-complete:map4_08n with completedActionResult=True and dialogueCompleteCount=2 instead of replaying a candidate dialogue, verifies prototypeStoryFlags=2/savedStoryFlags=2/storyFlagKeys=story:dialogue-complete:map4_08n:event-dialogue-block-005,story:dialogue-complete:map4_08n:event-dialogue-block-026, verifies the current objective becomes objective=후보 대사 완료 map4_08n / objectiveNext=완료 알림 확인 and objectiveAction=dialogue-completion-notice opens objectiveActiveId=dialogue-complete:map4_08n with noticeFeedback=dialogue-completion-notice-feedback:대사 완료 2/2, noticeFeedbackRender=True, and noticeFeedbackSound=menuConfirm:../extract_wlk/04.wav:True, verifies the runtime menu opens 대사 선택 2 with directMenuIndex=-1 and menuMode=dialogue-candidate instead of exposing a duplicate direct completion row, and restores the same all-complete state through title `이어하기 map4_08n 11,11` with quickLoadText=임시 불러오기 and prototypeStoryFlags=2, while keeping originalStoryFlagRuntimeImplemented=False.","Dialogue completion notice feedback marker summary: noticeFeedback=dialogue-completion-notice-feedback:대사 완료 2/2; noticeFeedbackRender=True; noticeFeedbackSound=menuConfirm:../extract_wlk/04.wav:True.","Runtime dialogue candidate menu marker summary: the map menu exposes `대사 선택 N`, opens a `dialogue-candidate` submenu, and the WebKit smoke selects event-dialogue-block-026 on map4_08n to open a dialogue with firstLine=스마슈, lineCount=14, source=prototype-dialogue-candidate-menu, dialogueOpenSound=dialogue-open-sound:../extract_wlk/01.wav, vmPartial=True, vmFull=False, originalEventVmRuntimeImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is a browser-local gameplay selection surface, not proof of original event VM dispatch or story flag mutation.","The web runtime records routeAssist candidate map-exit movement as route-candidate prototype progress without promoting original route proof; out/completion_candidate_review_summary.* verifies the map runtime menu starts routeAssist from map1_02b with `후보 진행 map2_02d`, exposes `후보 다음 map1_01a`, and opens `후보 목표 25` to select `map2_18d` from the same in-game menu while the play HUD shows `후보 map2_18d  다음 map1_01a`. The same smoke verifies map1_01a -> map2_02d through the routeAssist top auto exit, auto-saves/restores map2_02d with routeCandidateCount=1, autoSaved=True, autoSource=route-candidate, pathProgress=후보 진행 1/2, and routeProgressFeedback=route-progress-feedback:후보 진행 1/2 map2_02d with routeProgressFeedbackRender=True, blockReasons=5, and trialOnly=trial-only: no map1_01a->map2_02d transition-review row +4, then reopens the source tile with saved prototypeProgress and verifies the action prompt `Move/Enter -> 후보 완료 map2_02d` plus pathProgress=후보 완료 1/1 before continuing map2_02d -> map2_18d and auto-saving/restoring the completed chained route with routeCandidateCount=2, autoSaved=True, autoSource=route-candidate, pathProgress=후보 완료 2/2, and routeProgressFeedback=route-progress-feedback:후보 완료 2/2 map2_18d. It also restores the completed chain through title `이어하기 map2_18d 47,47` with quickLoadText=임시 불러오기, routeGoal=map2_18d, and routeCandidateCount=2. The same smoke verifies the runtime objective action now executes active route goals, with objectiveAction action=route-next for map1_02b -> map1_01a, objectiveAction action=route-continuation preparing map2_02d -> map2_09g with routeNextText=진입, and objectiveAction action=field-encounter-enable on map2_14j with autoSource=field-encounter-enable, modeSource=objective-action, and fieldEnabled=True. It also verifies quick play controls for the same objective path: keyboard `G` records quickObjectiveKeyboard=True, source=keyboard, action=route-next, beforeButtonTitle=목표 실행: 후보 목표 map2_02d, routeAutoSave=1, savedPayloadMap=map1_01a, quickObjectiveSound=quick-objective-sound:keyboard:route-next, quickObjectiveSoundSrc=../extract_wlk/04.wav, and quickObjectiveSoundPlayed=True; the mobile `목` virtualObjectiveButton records quickObjectiveButton=True, source=virtual-objective-button, action=field-encounter-enable, buttonTitle=목표 실행: 후보 목표 map2_14j / 걸어서 필드 전투 0/6, autoSource=field-encounter-enable, modeSource=objective-action, quickObjectiveSound=quick-objective-sound:virtual-objective-button:field-encounter-enable, quickObjectiveSoundSrc=../extract_wlk/04.wav, and quickObjectiveSoundPlayed=True; the desktop toolbar `목표` button records quickObjectiveToolbar=True, source=objective-action-button, action=route-continuation, beforeObjectiveButtonTitle=목표 실행: 후보 목표 map2_02d / map2_09g 이어가기, objectiveButtonTitle=목표 실행: 후보 목표 map2_09g / map2_09g 이동, routeNextText=후보, quickObjectiveSound=quick-objective-sound:objective-action-button:route-continuation, quickObjectiveSoundSrc=../extract_wlk/04.wav, and quickObjectiveSoundPlayed=True. The direct routeNext continuation button also records routeControlAction=route-continuation and routeControlSound=route-control-sound:route-next-button:route-continuation with routeControlSoundSrc=../extract_wlk/04.wav and routeControlSoundPlayed=True. The continuation smoke also verifies routeAutoSave entries show routeProgressFeedback=route-progress-feedback:후보 진행 1/2 map2_09g, routeProgressFeedback=route-progress-feedback:후보 진행 2/3 map2_10g, routeProgressFeedback=route-progress-feedback:후보 진행 3/4 map2_12h, and routeProgressFeedback=route-progress-feedback:후보 진행 4/5 map2_14j. The deep continuation smoke now carries that browser-local path to map2_14j, wins a prototype field encounter, and verifies completionCompleted=True with completionSource=prototype-route-assist-completion, completionRouteCandidateCount=4, completionFieldEncounterVictoryCount=1, the title label suffix `완료 map2_14j`, and the visible HUD text `완료 map2_14j` both immediately after victory and after title `이어하기` restore. It also verifies the completed routeNext button, objective action, and runtime menu completion command open route-complete:map2_14j with activeId=route-complete:map2_14j, objectiveAction=route-completion-notice, objectiveActiveId=route-complete:map2_14j, menuCommand=후보 완료 map2_14j, routeCompleted=1, routeCompleteProgress=route-complete, routeCompleteAutoSource=route-complete, routeCompleteSavedPayloadMap=map2_14j, routeCompleteFlagKeys=story:route-complete:map2_14j:route-complete:map2_14j, playableGate=prototype-playable-route-gate, playableGateStatus=open, playableGateOpen=True, playableGateLabel=웹 후보 루트 완료 map2_14j, routeGateFeedback=route-completion-feedback:후보 완료 map2_14j, routeGateSound=victory, routeGateSoundSrc=../extract_wlk/12.wav, routeGateSoundPlayed=True, originalFullGameCompletionImplemented=False, progressReviewRouteComplete=True with 진행 리뷰 `후보 완료 1`, HUD objective `목표 후보 루트 완료 map2_14j` / `다음 완료 버튼으로 결과 확인`, lines `후보 루트 완료 map2_14j`/`필드 전투 승리 1`, and runtimeRouteCompletionNotice=True, while keeping originalRoutePromotionImplemented=False and originalEncounterRuntimeImplemented=False.","out/completion_candidate_review_summary.* also records the visible desktop toolbar objective button for the first routeAssist objective move: quickObjectiveToolbarNext=True, source=objective-action-button, action=route-next, beforeObjectiveButtonText=목표, routeAutoSave=1, savedPayloadMap=map1_01a, quickObjectiveSound=quick-objective-sound:objective-action-button:route-next, quickObjectiveSoundSrc=../extract_wlk/04.wav, and quickObjectiveSoundPlayed=True.","out/completion_candidate_review_summary.* also records the mobile virtual objective button for the first routeAssist objective move: quickObjectiveButtonNext=True/source=virtual-objective-button/action=route-next, beforeButtonTitle=목표 실행: 후보 목표 map2_02d, routeAutoSave=1, savedPayloadMap=map1_01a, quickObjectiveSound=quick-objective-sound:virtual-objective-button:route-next, quickObjectiveSoundSrc=../extract_wlk/04.wav, and quickObjectiveSoundPlayed=True.","The web runtime records confirmed map-transition gameplay as map-transition prototype progress; out/transition_progress_candidate_review_summary.* verifies the default non-routeAssist action path for map1_02b -> map1_01a by clicking the `Move/Enter -> map1_01a...confirmed` canvas prompt with canvasPointer=True, auto-saves payloadMap=map1_01a with mapTransitionCount=1, autoSaved=True, autoSource=map-transition, transitionReviewState=confirmed, originalSceneRecordBacked=True, and routeAssistActive=False, then restores the same payload through the title-screen `이어하기 map1_01a` row as prototype-progress:map1_01a with titleContinue=True, progressRestored=True, label=맵 전환, quickLoadText=임시 불러오기, and also direct quick-loads it before returning to the source prompt `Move/Enter -> 전환 완료 map1_01a...confirmed`. The completed transition objective becomes objective=후보 전환 완료 map1_01a / objectiveNext=완료 알림 확인, and objectiveAction=map-transition-completion-notice opens objectiveActiveId=transition-complete:map1_01a from both the direct confirmed-transition state and title-continue restored state while showing transitionCompletionFeedback=map-transition-completion-feedback:맵 전환 완료 map1_01a, transitionCompletionFeedbackRender=True, and transitionCompletionSound=menuConfirm:../extract_wlk/04.wav:True. The same smoke verifies browser-local transition fade evidence via window.HWANSE_LAST_TRANSITION_EFFECT, transitionEffect=map1_02b->map1_01a, fadeMs=420, browserFade=True, effectTrigger=action/movement, and the movement-triggered confirmed transition path with trigger=movement, autoSaved=True, autoSource=map-transition, and direction metadata while keeping originalStoryFlagRuntimeImplemented=False, originalTransitionFadeTimingImplemented=False, and originalRoutePromotionImplemented=False.","Map transition completion feedback marker summary: transitionCompletionFeedback=map-transition-completion-feedback:맵 전환 완료 map1_01a; transitionCompletionFeedbackRender=True; transitionCompletionSound=menuConfirm:../extract_wlk/04.wav:True.","The web runtime can lazy-load the compact save-point candidate subset and show it from the map menu as a read-only review dialogue; the WebKit smoke verifies map1_01a opens save-point-candidates:map1_01a with global-review scope and keeps originalSavePointRuntimeImplemented=False. A separate candidate save-point browser smoke verifies global-review candidates stay read-only while current-map candidate map2_07e applies prototype HP/MP/status recovery before saving, recovered=True, recoveredCount=1, curedStatusCount=2, and confirms map2_07e saves the current location/state after recovery into the prototype temporary save slot through both the menu command and the normal Enter/A action prompt `Enter -> 세이브 후보 1`, using event-dialogue-block-033 with candidateEvidence=event-dialogue-block-033/candidateCategories=statue-shrine-context/candidateStrengths=weak-location-only, autoSaved=True, and autoSource=save-point-candidate plus saveFeedback=save-point-feedback:세이브 완료 1/saveFeedbackRender=True and savePointSound=menuConfirm/savePointSoundSrc=../extract_wlk/04.wav/savePointSoundPlayed=True. The save-point runtime save, auto-save payload, prototype progress detail, feedback log/render, and Enter/A action save now carry both the candidate evidence row and the partial VM replay summary vmBlocks=event-dialogue-block-033/vmPartial=True/vmFull=False/vmRender=2/vmLiteral=2/vmSource=0x00030000 while keeping original event VM/full save-point proof unpromoted. The same smoke verifies that the displayed current-map save-point prompt now matches the Enter/A activation path instead of opening the overlapping dialogue candidate, while broad tileset-family save candidates are not promoted above direct dialogue/shop prompts, then restores save-point completion and the saved state through the title-screen `이어하기 map2_07e 11,11` row with titleContinue=True, restoredHp=36, restoredMp=8, restoredStatuses=none, quickLoadText=임시 불러오기, and source action prompt `Enter -> 세이브 완료 1`. The completed save-point objective becomes objective=후보 세이브 완료 map2_07e / objectiveNext=완료 알림 확인, and objectiveAction=save-point-completion-notice opens objectiveActiveId=save-point-complete:map2_07e with saveNoticeFeedback=save-point-completion-notice-feedback:세이브 완료 1, saveNoticeFeedbackRender=True, and saveNoticeSound=menuConfirm:../extract_wlk/04.wav:True without recording another save-point-candidate event, while keeping originalRecoveryEventImplemented=False.","Save-point completion notice feedback marker summary: saveNoticeFeedback=save-point-completion-notice-feedback:세이브 완료 1; saveNoticeFeedbackRender=True; saveNoticeSound=menuConfirm:../extract_wlk/04.wav:True.","Runtime save-point candidate menu marker summary: the map menu exposes `세이브 선택 N`, opens a `save-point-candidate` submenu, and the WebKit smoke selects event-dialogue-block-033 on map2_07e with menuCount=1, selected=event-dialogue-block-033, scope=current-map, saved=True, eligible=True, selectionSource=prototype-save-point-candidate-menu, commandResult=True, selectResult=True, directMenuIndex=-1, afterMenuOpen=False, saveFeedback=save-point-feedback:세이브 완료 1, savePointSound=menuConfirm:../extract_wlk/04.wav:True, vmBlocks=event-dialogue-block-033, vmPartial=True, vmFull=False, vmRender=2, vmLiteral=2, vmSource=0x00030000, originalSavePointRuntimeImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is a browser-local save-point selection surface, not proof of original save-point event VM dispatch, recovery event execution, or story flag mutation.","The web runtime can render linked z*.cns object sprite candidates directly in the normal map view and hit-test the visible sprites as canvas pointer targets with hover cursor/highlight feedback; out/event_object_candidate_review_summary.* verifies map2_03l first-load passive rendering with passiveVisible=True, prototype=False, annotated=False, candidates=3, loaded=3, rendered=3 for zm_2, zg_kni, and zs_rg at the shared active point, then opens event-object-candidates:map2_03l by clicking the visible sprite with scope=pointer-object, hoverCursor=pointer, hoverAsset=zs_rg, hit=zs_rg, assets=zs_rg,zg_kni,zm_2, canvasPointer=True, dialogueLinks=3, and linkedDialogueCount=3. The same smoke verifies visible object anchors now block movement in the web runtime with objectCollision=map2_03l blocked=True anchors=3 target=11,11 primary=None directCanMove=False prompt=Enter -> 조사 zg_kni 3개 objectCollisionEnabled=True renderAnchors=3 originalEventObjectRuntimeImplemented=False, verifies the collision overlay renders the same block as collisionOverlay=map2_03l enabled=True objectTiles=1 objectAnchors=3 visible=1 tile=11,11 assets=zg_kni,zm_2,zs_rg, and verifies the objectCollision=0 opt-out allows the same movement with objectCollisionDisabled=map2_03l enabled=False directCanMove=True primaryTile=11,11 anchors=0 blocked=False while keeping the 조사 prompt. This keeps the collision/overlay gameplay-visible without promoting original NPC/object VM proof.","The web runtime can inspect nearby linked z*.cns object sprite candidates from the normal map action path and includes a linked dialogue candidate summary in the same 조사 result; out/event_object_candidate_review_summary.* verifies map2_03l opens event-object-candidates:map2_03l through the visible sprite canvas pointer, the 조사 button, a facing-object Enter/A prompt from one tile below (`Enter -> 조사 zg_kni 3개`, actionHighlight=zg_kni), and the existing near-foot Enter/A hotspot action. It renders zg_kni, zm_2, and zs_rg as prototype object sprites, reports dialogueLinks=3 dialogueBlocks=event-dialogue-block-004,event-dialogue-block-032,event-dialogue-block-041, records linkedDialogueCount=3, and shows the immediate map overlay inspectFeedback=event-object-inspect-feedback:조사 완료 3 with inspectFeedbackRender=True plus inspectSound=menuConfirm/inspectSoundSrc=../extract_wlk/04.wav/inspectSoundPlayed=True, then advances the 조사 result into a linked dialogue follow-up event-object-candidates:map2_03l -> event-dialogue-block-004 with dialogueCandidateCount=1 and partial VM replay vmBlocks=event-dialogue-block-004/vmPartial=True/vmFull=False/vmRender=6/vmLiteral=9/vmSource=0x00030000. The same smoke completes that linked dialogue as button=대사 완료 1/3, next=event-dialogue-block-032, dialogueCompleteCount=1, savedDialogueCompleteCount=1, autoSaved=True, autoSource=dialogue-complete, carrying the same block004 replay into progress and autosave; it then completes the remaining linked dialogue all-complete sequence completed=event-dialogue-block-032,event-dialogue-block-041 with button=대사 완료 3, notice=dialogue-complete:map2_03l, dialogueCandidateCount=3, dialogueCompleteCount=3, savedDialogueCompleteCount=3, autoSaved=True, autoSource=dialogue-complete, vmBlocks=event-dialogue-block-004,event-dialogue-block-032,event-dialogue-block-041, vmPartial=True,True,True, vmFull=False,False,False, vmRender=6,3,5, vmLiteral=9,4,8, and vmSource=0x00030000,0x00030000,0x00030000. It also performs a linked dialogue quick-load restore from a fresh page as loaded=True, button=대사 완료 3, objectButton=조사 완료 3, notice=dialogue-complete:map2_03l, dialogueButtonResult=True, menuObject=조사 선택 3, directMenuIndex=-1, menuMode=object-candidate, menuCandidateCount=3, dialogueCompleteCount=3, objectInspectCount=1, then restores the same completed object/dialogue state through title `이어하기 map2_03l 11,11` with quickLoadText=임시 불러오기 while keeping originalLinkedDialogueRuntimeImplemented=False plus originalEventObjectRuntimeImplemented=False and without promoting original NPC/object VM execution proof.","The same event-object smoke separately browser-verifies the only descriptor-row z*.cns asset with a field scene anchor: map8_32q descriptorTable=0x00442d95 descriptorRow=10 asset=zsa_iwa.cns runtimeSurface=field-object-overlay-candidate active=event-object-candidates:map8_32q button=조사 완료 1 passiveVisible=True candidates=1 loaded=1 rendered=1 anchors=1 scope=near-foot assets=zsa_iwa sceneIds=0xac18 inspectFeedback=event-object-inspect-feedback:조사 완료 1 inspectSound=menuConfirm:../extract_wlk/04.wav:True, while originalEventObjectRuntimeImplemented=False and originalStoryFlagRuntimeImplemented=False. This ties the descriptor-row scene anchor to a visible field object only for zsa_iwa; zsa_saru, zsl_yoi, zsa_mi, and zsa_kika remain battle-sprite-only candidates.","The same event-object smoke now browser-verifies all 7 scene-event linked z*.cns object sprites as visible/inspectable field object candidates: verified=7/7 maps=map1_02b:zjk_suz@0x0618;map2_03l:zg_kni,zm_2,zs_rg@0x0918;map8_18o:zs_dd@0x9e18;map8_32q:zsa_iwa@0xac18;map9_01e:zi_ana@0xad18 with loaded=7 rendered=7 inspected=7 anchors=7 scope=near-foot, inspectSound=menuConfirm, and originalLinkedDialogueRuntimeImplemented=False/originalEventObjectRuntimeImplemented=False/originalStoryFlagRuntimeImplemented=False. This is browser-local object-candidate coverage for extracted scene links, not proof of original NPC/object VM dispatch, field-object script behavior, or story flag mutation.","The same event-object smoke now verifies the completed object/dialogue path does not dead-end at the 조사-complete notice: after the first linked dialogue completion the field prompt advances to prompt=Enter -> 대사 2/3, and after all three linked dialogues it quick-loads and title-continues map2_03l with prompt=Enter -> 대사 전투 btl_l1. Pressing Enter/A on that restored field state starts linked dialogue battle action event-dialogue-block-041:btl_l1 with actionResult=True, linkAction=dialogue-battle-action, scene=battle, battleBackground=btl_l1, enemyName=백호 괴수, enemySprite=zjk_byk.cns, enemyDropItemTextRef=0x0048b98c, enemyDropItemTextVa=0x0048ba8e, battleStartFeedback=battle-start-feedback:전투 시작 btl_l1, battleStartFeedbackRender=True, battleStartFeedbackSound=battleStart:../extract_wlk/08.wav:True, dialogueBattleLinkCount=3, and battleStartCount=1. The same smoke then wins that linked dialogue battle and returns to the map with linked dialogue battle victory event-dialogue-block-041, attackResult=True, finishResult=True, rewardGranted=True, autoSaved=True, autoSource=battle-victory, battleVictoryCount=1, drop=해독초, dropCount=1, dropItemTextRef=0x0048b98c, dropItemTextVa=0x0048ba8e, rewardEffect=battle-victory:백호 괴수, rewardDropItemTextRef=0x0048b98c, rewardRenderDropItemTextRef=0x0048b98c, rewardEffectRender=True, rewardEffectSound=victory:../extract_wlk/12.wav:True, and the next play-facing objective/prompt advances to objective=후보 대사 전투 btl_l2, prompt=Enter -> 대사 전투 btl_l2, nextLink=event-dialogue-block-032:btl_l2. It then completes the remaining linked dialogue battle chain with steps=2, order=event-dialogue-block-032:btl_l2,event-dialogue-block-004:btl_l1, battleStartCount=3, battleVictoryCount=3, pendingLink=None, objective=후보 전투 완료 btl_l1, prompt=Enter -> 전투 완료 btl_l1, dropCount=3, stepDropItemTextRefs=0x0048b98c,0x0048b98c, rewardDropItemTextRefs=0x0048b98c,0x0048b98c, rewardRenderDropItemTextRefs=0x0048b98c,0x0048b98c, rewardEffectSounds=victory,victory, rewardEffectSoundSrcs=../extract_wlk/12.wav,../extract_wlk/12.wav, rewardEffectSoundsPlayed=True,True, autoSource=battle-victory, noticeResult=True, notice=battle-complete:event-dialogue-block-004, and duplicateProgress=True while keeping the proof browser-local rather than original event-driven battle execution.","Linked dialogue battle completion feedback marker summary: completionFeedback=battle-completion-feedback:전투 완료 btl_l1; completionFeedbackRender=True; completionFeedbackSound=menuConfirm:../extract_wlk/04.wav:True.","Runtime object candidate menu marker summary: the map menu exposes `조사 선택 N`, opens an `object-candidate` submenu, and the WebKit smoke selects zs_rg on map2_03l to open event-object-candidates:map2_03l with selected=zs_rg, scope=menu-object, assets=zs_rg, selectionSource=prototype-object-candidate-menu, source=prototype-object-candidate-menu, inspectFeedback=event-object-inspect-feedback:조사 완료 1, inspectSound=menuConfirm:../extract_wlk/04.wav:True, linkedDialogueCount=3, originalLinkedDialogueRuntimeImplemented=False, originalEventObjectRuntimeImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is a browser-local object selection surface, not proof of original NPC/object VM dispatch or story flag mutation.","The web runtime records candidate dialogue/object/save/battle prototype interactions into a browser-local progress log that is preserved by temporary save/load and reviewed from the map menu as showPrototypeProgress; the same surface now carries a play-facing objective summary, objective action, and browser-local prototypeStoryFlags derived from progress records. out/menu_candidate_review_summary.* verifies event-object-candidates:map2_03l is opened by the visible desktop toolbar 목표 button with quickObjectiveSource=objective-action-button, beforeObjectiveButtonHidden=False, beforeObjectiveButtonText=목표, objectiveAction=hotspot-action, and quickObjectiveSound=quick-objective-sound:objective-action-button:hotspot-action with quickObjectiveSoundSrc=../extract_wlk/04.wav/quickObjectiveSoundPlayed=True, saved into prototypeProgress with autoSaved=True and autoSource=object-inspect, records storyFlags=1/progressStoryFlags=1/savedStoryFlags=1/storyFlagSource=prototype-progress-derived-story-flags/storyFlagKeys=story:object-inspect:map2_03l:event-object-candidates:map2_03l with browserPrototypeStoryFlagImplemented=True, keeps the completed field prompt as prompt=Enter -> 조사 완료 zg_kni 3개, verifies completedHotspotResult=True/completedHotspotNotice=event-object-complete:map2_03l from the normal Enter/A hotspot path, restored as prototype-progress:map2_03l with progressRestored=True, objective=후보 조사 완료 map2_03l, next=완료 알림 확인, runtime menu label 진행 목표 1, objectiveMenu=목표 실행, and objectiveAction=object-completion-notice opens objectiveActiveId=event-object-complete:map2_03l while showing objectNoticeFeedback=event-object-completion-notice-feedback:조사 완료 3, objectNoticeFeedbackRender=True, and objectNoticeSound=menuConfirm:../extract_wlk/04.wav:True; progressReview=prototype-progress:map2_03l remains available for the log review and now shows progressReviewStoryStatus=True/progressReviewStoryRecent=True for `스토리 상태 1개` and `최근 스토리 조사 map2_03l event-object-candidates:map2_03l`; storyFlagReview=prototype-story-flags:map2_03l is also available from storyFlagMenuCommand=showPrototypeStoryFlags and verifies storyFlagReviewStatus=True/storyFlagReviewCounts=True for `스토리 상태 map2_03l: 1개` and `종류 조사 1`, updates the objectButton=조사 완료 3 completion state and the runtime menu object selector objectMenu=조사 선택 3, renders completed object candidates with renderDone=True, and opens event-object-complete:map2_03l from both Enter/A completed action and the objectButton with completedActionResult=True and buttonCompletedActionResult=True while keeping progressAfterAction=1 and progressAfterButton=1 instead of duplicating object-inspect progress, and keeps originalStoryFlagRuntimeImplemented=False.","Object completion notice feedback marker summary: objectNoticeFeedback=event-object-completion-notice-feedback:조사 완료 3; objectNoticeFeedbackRender=True; objectNoticeSound=menuConfirm:../extract_wlk/04.wav:True.","The web runtime keeps prototype party-join execution separate from the old manual party cycle while the map main menu now exposes only `동료 선택 N` for direct player selection: out/menu_candidate_review_summary.* verifies menuCommands=동료 선택 2 directJoinRows=False on map1_02b, records two party-join-prototype events with source=prototype-party-join, auto-saves members=rinshan,smash as label=린샹+스마슈 with autoSaved=True and autoSource=prototype-party-join, shows joinFeedback=party-join-feedback:동료 합류 스마슈 with joinFeedbackRender=True plus partyJoinSound=menuConfirm/partyJoinSoundSrc=../extract_wlk/04.wav/partyJoinSoundPlayed=True, and verifies the joined party renders on the map through drawParty with party-follower-render source=prototype-party-trail-render, followers=party_rinshan,party_smash, stepCount=7, trailFilledCount=7, visibleFollowers=2, separateFromPlayer=True, actorCollisionEnabled=True, and actorCollisionBlocked=1. It restores the same joined party through the title-screen `이어하기 map1_02b 11,12` row with titleContinue=True, progressRestored=2, menuProgress=진행 목표 2, and quickLoadText=임시 불러오기, also direct quick-loads the same state, and the completed party objective becomes objective=후보 동료 완료 map1_02b / objectiveNext=완료 알림 확인 with objectiveAction=party-completion-notice opening objectiveActiveId=party-complete:map1_02b while showing partyNoticeFeedback=party-join-completion-notice-feedback:동료 합류 완료 2/2, partyNoticeFeedbackRender=True, and partyNoticeSound=menuConfirm:../extract_wlk/04.wav:True. It keeps originalPartyJoinEventImplemented=False plus originalPartyTrailRuntimeImplemented=False plus originalStoryFlagRuntimeImplemented=False. The same smoke verifies dialogue-party-join for event-dialogue-block-003: completing that candidate dialogue records dialogueCompleteCount=1 and partyJoinCount=1 with source=prototype-dialogue-party-join, joins Rinshan, shows joinFeedback=party-join-feedback:동료 합류 린샹 with joinFeedbackRender=True plus partyJoinSound=menuConfirm/partyJoinSoundSrc=../extract_wlk/04.wav/partyJoinSoundPlayed=True, carries the event VM replay summary through the join marker/autosave/progress as vmPartial=True, vmRender=7, vmLiteral=7, vmSource=0x00030000, auto-saves the state with autoSaved=True and autoSource=dialogue-party-join, exposes the completed dialogue-join objective as objective=후보 대사 합류 완료 map1_02b / objectiveAction=dialogue-party-join-completion-notice / objectiveActiveId=dialogue-party-join-complete:map1_02b:event-dialogue-block-003 with dialoguePartyNoticeFeedback=dialogue-party-join-completion-notice-feedback:대사 동료 합류 완료 1/1, dialoguePartyNoticeFeedbackRender=True, and dialoguePartyNoticeSound=menuConfirm:../extract_wlk/04.wav:True, and restores dialogueCompleteRestored=1/partyJoinRestored=1 with menuProgress=진행 목표 3 and the same dialogue-join completion notice while keeping originalEventVmRuntimeImplemented=False.","Runtime party join candidate menu marker summary: the map menu exposes `동료 선택 N`, opens a `party-candidate` submenu, and the WebKit smoke selects Smashu on map1_02b with menuCount=2, selected=smash, memberName=스마슈, selectionSource=prototype-party-candidate-menu, commandResult=True, selectResult=True, afterOpenMenuMode=party-candidate, afterMenuMode=main, joined=True, manualLabel=스마슈, members=smash, progressCount=1, autoSaved=True, autoSource=prototype-party-candidate-menu, joinFeedback=party-join-feedback:동료 합류 스마슈, joinFeedbackRender=True, partyJoinSound=menuConfirm, partyJoinSoundSrc=../extract_wlk/04.wav, partyJoinSoundPlayed=True, originalPartyJoinEventImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is a browser-local party selection surface, not proof of original party join event dispatch or story flag mutation.","The runtime has a status/item menu overlay using extracted save-data fields and Korean item names; loaded savedat menus now show level, HP/MP, EXP, ATK, DEF, and learned skill counts from documented character stat/skill offsets.","The savedat status menu exposes parsed character stat fields as a gameplay menu dialogue; out/menu_candidate_review_summary.* verifies public savedat flack3r-savedat2 opens status-menu:map2_02d with label=상태 3, source=savedat-character-stat-fields, Ataho/Rinshan/Smashu HP/MP/ATK/DEF rows, originalEquipmentOffsetsMapped=False, and originalStoryFlagRuntimeImplemented=False. The same smoke verifies a new-game no-loaded-savedat status menu, specifically a new-game no-loaded-savedat prototype status menu, on map1_02b opens as status-menu:map1_02b with label=상태 1, source=prototype-party-defaults, Ataho Lv1 HP 36/36 MP 8/8, EXP 0/100 상태 정상 기술 0/0, ATK 0 DEF 0 TECH 0 QUICK 0 LUCK 0, records status-menu-prototype progress with autoSource=status-menu-prototype, exposes objective=후보 상태 완료 map1_02b/objectiveAction=menu-review-completion-notice/objectiveActiveId=status-review-complete:map1_02b, and restores the same completed objective through titleContinue=True/quickLoadText=임시 불러오기/statusProgressCount=1 while keeping loadedSaveSummary absent.","The savedat skill menu now reuses the battle skill command decoder to show learned skill names, levels, MP costs, decoded slot/index/value metadata, and EXE text-table source from the map menu; out/menu_candidate_review_summary.* verifies public savedat flack3r-savedat2 opens skill-menu:map2_02d with label=기술, names=돌려차기,던지기, source=savedat-skill-bytes-and-exe-text-tables, originalEquipmentOffsetsMapped=False, and originalStoryFlagRuntimeImplemented=False. The same smoke verifies a new-game no-loaded-savedat skill menu, specifically a new-game no-loaded-savedat prototype skill menu, on map1_02b opens as skill-menu:map1_02b with label=기술 0, 기술 prototype: 0/0, source=prototype-party-defaults-and-exe-text-tables, Ataho Lv1 기술 0/0, 배운 기술 없음, records skill-menu-prototype progress with autoSource=skill-menu-prototype, exposes objective=후보 기술 완료 map1_02b/objectiveAction=menu-review-completion-notice/objectiveActiveId=skill-review-complete:map1_02b, and restores the same completed objective through titleContinue=True/quickLoadText=임시 불러오기/skillProgressCount=1 while keeping loadedSaveSummary absent.","Status/skill menu review feedback marker summary: statusFeedback=status-menu-review-feedback:status-menu-prototype:status-menu:map1_02b:상태 확인 1명/statusFeedbackRender=True/statusSound=menuConfirm/statusSoundSrc=../extract_wlk/04.wav/statusSoundPlayed=True; skillFeedback=skill-menu-review-feedback:skill-menu-prototype:skill-menu:map1_02b:기술 확인 0/0/skillFeedbackRender=True/skillSound=menuConfirm/skillSoundSrc=../extract_wlk/04.wav/skillSoundPlayed=True.","Status/skill completion notice feedback marker summary: statusNoticeFeedback=status-menu-completion-notice-feedback:상태 확인 완료 1/1; statusNoticeFeedbackRender=True; statusNoticeSound=menuConfirm:../extract_wlk/04.wav:True; skillNoticeFeedback=skill-menu-completion-notice-feedback:기술 확인 완료 1/1; skillNoticeFeedbackRender=True; skillNoticeSound=menuConfirm:../extract_wlk/04.wav:True; originalEquipmentOffsetsMapped=False; originalStoryFlagRuntimeImplemented=False.","The runtime menu now keeps the equipment candidate review inside the prototype equip surface without pretending savedat equipment offsets are mapped; out/menu_candidate_review_summary.* verifies public savedat flack3r-savedat2 opens equipment-menu:map2_02d through `장비 변경 18 -> 장비 후보 설명`, with label=장비 후보 설명 via=장비 변경 18 directEquipmentReviewRows=False, source=exe-text-table-equipment-candidates, table=0x0048b244, equipmentTextTable=equipment, equipmentTextRef=0x0048b244, equipmentTextVa=0x0048b52c, names=고양이 발톱,팬톰크로우 *,호랑이발톱 2,드레스, prototypeEquipmentEffectsImplemented=True, originalEquipmentOffsetsMapped=False, originalEquipmentEffectsImplemented=False, and originalStoryFlagRuntimeImplemented=False. The same smoke equips 고양이 발톱 as Ataho weapon through the prototype 장비 변경 menu, verifies ATK increases by the prototype +4 bonus, auto-saves/quick-loads the equipped weapon and restored ATK with autoSaved=True and autoSource=equipment-prototype, records equipment-prototype progressCount=1 with equipmentNameSource=exe-text-table-equipment/equipmentTextTable=equipment/equipmentTextRef=0x0048b244/equipmentTextVa=0x0048b52c in result, autosave, progress detail, and feedback, and verifies equipmentFeedback=equipment-change-feedback:Ataho:weapon:고양이 발톱:고양이 발톱 장착 / ATK+4 QUICK+1 plus equipmentFeedbackRender=True and equipmentSoundItemCount=1. It then restores the equipped state and verifies pressing the same row performs equipmentUnequip action=unequip with weaponAfter=None, QUICK decreasing by 1, autoSaved=True, autoSource=equipment-prototype, equipmentFeedback=equipment-change-feedback:Ataho:weapon:고양이 발톱:고양이 발톱 해제 / ATK-4 QUICK-1, equipmentFeedbackRender=True, and equipmentSoundItemCount=1 while keeping source=prototype-equipment-effects and original equipment offsets/effects unmapped. It also verifies 장비 변경 in a new-game no-loaded-savedat map1_02b state: Ataho equips 고양이 발톱, ATK 0->4, direct quick-load restores restoredAtk=4 from the automatic equipment save, carries the same equipmentFeedback=equipment-change-feedback:Ataho:weapon:고양이 발톱:고양이 발톱 장착 / ATK+4 QUICK+1/equipmentFeedbackRender=True/equipmentSoundItemCount=1, and title-screen `이어하기 map1_02b 11,12` restores titleContinue=True, restoredAtk=4, equipment-prototype progressCount=1, quickLoadText=임시 불러오기, loadedSaveSummary absent, and originalStoryFlagRuntimeImplemented=False. The completed equipment objective becomes objective=후보 장비 완료 map1_02b / objectiveNext=완료 알림 확인, and objectiveAction=equipment-completion-notice opens objectiveActiveId=equipment-complete:map1_02b while showing equipmentNoticeFeedback=equipment-completion-notice-feedback:장비 변경 완료 1/1, equipmentNoticeFeedbackRender=True, and equipmentNoticeSound=menuConfirm:../extract_wlk/04.wav:True, while keeping originalEquipmentOffsetsMapped=False and originalEquipmentEffectsImplemented=False.","Runtime equipment target menu marker summary: the map menu exposes `장비 대상 N`, opens an `equipment-target` submenu, and the WebKit smoke selects Ataho on map2_02d with menuCount=3, selected=Ataho, targetItems=5, targetCounts=Ataho:5,Rinshan:6,Smashu:7, selectionSource=prototype-equipment-target-menu, commandResult=True, selectResult=True, afterOpenMenuMode=equipment-target, afterMenuMode=equipment-equip, filteredItems=고양이 발톱,팬톰크로우 *,호랑이발톱 2,가죽 갑옷,흑장속, prototypeEquipmentEffectsImplemented=True, originalEquipmentOffsetsMapped=False, originalEquipmentEffectsImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is browser-local equipment target filtering, not proof of original equipment ownership, equipped-slot offsets, or original equipment effects.","The runtime now keeps the shop candidate review inside the prototype purchase surface without pretending original shop inventory/prices are mapped; out/menu_candidate_review_summary.* verifies map4_08n opens shop-candidates:map4_08n through `상점 구매 6 -> 상점 후보 설명`, with label=상점 후보 설명 via=상점 구매 6 directShopReviewRows=False, source=exe-text-table-items-and-event-dialogue-shop-candidates, table=0x0048b984, itemTextTable=items, itemTextRef=0x0048b984, itemTextVa=0x0048ba7c, scope=tileset-family, items=약초,해독초,리프레시 워터,마법의 물약, context blocks event-dialogue-block-032/event-dialogue-block-038, prototypeShopPurchaseImplemented=True, prototypeShopSellImplemented=True, and originalShopRuntimeImplemented=False/originalShopPriceTableMapped=False/originalShopInventoryMapped=False. The same smoke verifies direct dialogue gate precedence before the shop prompt with dialogueGateBeforeShop=True, firstPrompt=Enter -> 대사 1/2, firstBlock=event-dialogue-block-005, completedDialogue=event-dialogue-block-005,event-dialogue-block-026, vmBlocks=event-dialogue-block-005,event-dialogue-block-026, vmPartial=True,True, vmRender=2,1, vmLiteral=0,8, vmSource=0x00030000,0x00030000, and confirms broad tileset-family save candidates do not mask the shop prompt, then verifies the normal shop action prompt `Enter -> 상점 6` opens the prototype buy menu through a canvas PointerEvent with kind=shop-candidate/opensMenuMode=shop-buy/canvasPointer=True, then loads public flack3r-savedat2, buys 약초 with prototype price 12, verifies money 983062->983050 and count 3->4, auto-saves/quick-loads restoredMoney=983050/restoredCount=4 with autoSaved=True and autoSource=shop-buy-prototype, enters 상점 판매, sells 약초 with prototype price 6, verifies money 983050->983056 and count 4->3, auto-saves/quick-loads restoredMoney=983056/restoredCount=3 with autoSaved=True and autoSource=shop-sell-prototype, and records shop-buy-prototype/shop-sell-prototype progressCount=1 with itemNameSource=exe-text-table-items/itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c in purchase/sale results, autosaves, progress details, and feedback plus buyFeedback=shop-buy-feedback:buy:herb:약초 +1 / -12/buyFeedbackRender=True/buySoundItemCount=1 and sellFeedback=shop-sell-feedback:sell:herb:약초 -1 / +6/sellFeedbackRender=True/sellSoundItemCount=1 while keeping source=prototype-shop-prices and originalMoneyMutationImplemented=False. The public shop smoke also verifies failed buy/sell attempts stay non-mutating and visible on the menu canvas: buyFailFeedback=shop-buy-failed-feedback:buy:herb:약초 돈 부족 5/12/buyFailFeedbackRender=True for insufficient money, buyFullFeedback=shop-buy-failed-feedback:buy:herb:약초 소지수 가득/buyFullFeedbackRender=True for a full inventory, and sellFailFeedback=shop-sell-failed-feedback:sell:herb:약초 판매 없음/sellFailFeedbackRender=True for empty stock, without adding shop progress, autosave, or item WLK sound. It also verifies the same dialogue-gated shop flow without loaded savedat from the prototype-new-game runtime state: money 60->48 and herb count 1->2 after buying 약초, direct quick-load restores restoredMoney=48/restoredCount=2 from buyAutoSource=shop-buy-prototype, then sale money 48->54 and herb count 2->1, direct quick-load restores restoredSellMoney=54/restoredSellCount=1 from sellAutoSource=shop-sell-prototype, with the same buyFeedback=shop-buy-feedback:buy:herb:약초 +1 / -12/buyFeedbackRender=True/buySoundItemCount=1 and sellFeedback=shop-sell-feedback:sell:herb:약초 -1 / +6/sellFeedbackRender=True/sellSoundItemCount=1, and title-screen `이어하기 map4_08n 18,42` restores titleContinue=True, restoredMoney=54, restoredCount=1, buyProgressCount=1, sellProgressCount=1, quickLoadText=임시 불러오기, and loadedSaveSummary absent. The completed shop objective becomes objective=후보 상점 완료 map4_08n / objectiveNext=완료 알림 확인, and objectiveAction=shop-completion-notice opens objectiveActiveId=shop-complete:map4_08n from both the direct quick-load and title-continue restored states while keeping originalShopRuntimeImplemented=False, originalShopPriceTableMapped=False, originalShopInventoryMapped=False, originalMoneyMutationImplemented=False, and originalStoryFlagRuntimeImplemented=False.","Runtime shop candidate menu marker summary: the map menu exposes `상점 선택 N`, opens a `shop-candidate` submenu, and the WebKit smoke selects event-dialogue-block-032 on map4_08n with menuCount=2, selected=event-dialogue-block-032, scope=tileset-family, itemCount=6, contextCount=1, selectionSource=prototype-shop-candidate-menu, commandResult=True, selectResult=True, afterMenuMode=shop-buy, opensMenuMode=shop-buy, buyMenuSource=prototype-shop-prices, shopCandidateSource=exe-text-table-items-and-event-dialogue-shop-candidates, originalShopRuntimeImplemented=False, originalShopPriceTableMapped=False, originalShopInventoryMapped=False, originalMoneyMutationImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is a browser-local shop candidate selection surface, not proof of original shop runtime, inventory/price table mapping, money mutation, or story flag mutation.","Shop completion notice feedback marker summary: shopNoticeFeedback=shop-completion-notice-feedback:상점 거래 완료 2/2; shopNoticeFeedbackRender=True; shopNoticeSound=menuConfirm:../extract_wlk/04.wav:True; originalShopRuntimeImplemented=False; originalShopPriceTableMapped=False; originalShopInventoryMapped=False; originalMoneyMutationImplemented=False; originalStoryFlagRuntimeImplemented=False.","Equipment battle-effect marker summary: equipmentBattleEffect source=prototype-equipment-battle-effect; item=고양이 발톱; atkDelta=4; damageBaseline<damageEquipped; equipmentBonusAtk=4; hitMarker=prototypeEquipmentBattleEffectImplemented=True; turnMarker=prototypeEquipmentBattleEffectImplemented=True; armor=흑장속; defDelta=4; incomingDamageBaseline>incomingDamageEquipped; equipmentBonusDef=4; defenseHitMarker=prototypeEquipmentBattleDefenseEffectImplemented=True; defenseTurnMarker=prototypeEquipmentBattleDefenseEffectImplemented=True; originalEquipmentEffectsImplemented=False; originalCombatFormulaImplemented=False.","Equipment/shop feedback-level WLK sound marker summary: equipmentSound=item equipmentSoundSrc=../extract_wlk/11.wav equipmentSoundPlayed=True; buySound=item buySoundSrc=../extract_wlk/11.wav buySoundPlayed=True; sellSound=item sellSoundSrc=../extract_wlk/11.wav sellSoundPlayed=True.","out/battle_backgrounds.* indexes 26 btl_* battle background tilemaps for lazy web runtime use.","out/battle_event_candidates.* indexes 21 event dialogue blocks/resources with btl_* adjacency for source-backed battle review selection.","Runtime battle candidate menu marker summary: the map menu exposes `전투 선택 N`, opens a `battle-candidate` submenu from current-map/family candidates, and the WebKit smoke selects event-dialogue-block-010:btl_j1 on map2_14j to start btl_j1 with enemyName=황야 괴수, enemySprite=zkb_hyr.cns, source=prototype-battle-candidate-menu, battleStartFeedback=battle-start-feedback:전투 시작 btl_j1, battleStartFeedbackRender=True, originalEventDrivenBattleEntry=False, and originalEnemyRowBound=False. This is a browser-local gameplay selection surface, not proof of original event-driven battle entry or original enemy row binding.","out/candidate_battle_browser_smoke.* records that the battleButton, canvas pointer command selection, normal Enter/A action path, completed dialogue battle-link action prompt, and prototype field encounter mode expose and start source-backed candidate battle selection: the candidate battle browser smoke verifies map1_02b source-backed btl_b1 from event-dialogue-block-015 through both the button and `Enter -> 전투 btl_b1` action prompt with battleStartCount=1 plus battleStartFeedback=battle-start-feedback:전투 시작 btl_b1, battleStartFeedbackRender=True, battleStartFeedbackDuration=1000, battleStartFeedbackSound=battleStart:../extract_wlk/08.wav:True, and battleStartSound=battleStart/battleStartSoundSrc=../extract_wlk/08.wav, renders EXE-proximity enemySprite=zky_ao.cns enemyAsset=zky_ao, and applies the web prototype enemy profile enemyName=푸른 마수 enemyHp=42 enemyAtk=4 enemyDef=0 enemyAction=할퀴기 enemyActionSource=prototype-enemy-action enemyActionNameSource=exe-text-table-battleCommands enemyActionTextTable=battleCommands enemyActionTextRef=0x004d29a4 enemyActionTextVa=0x004d438c enemyDrop=약초 enemyDropCount=1 enemyDropItemTextRef=0x0048b984 enemyDropItemTextVa=0x0048ba7c enemyProfileSource=prototype-enemy-profile while keeping originalEnemyRowBound=False/originalStatsOrRewardsBound=False/originalDropTableMapped=False/originalEnemyAiImplemented=False/originalCombatFormulaImplemented=False. It also verifies completing event-dialogue-block-015 records dialogueBattleLink=event-dialogue-block-015 btl_b1 with linkSource=prototype-dialogue-battle-link, objective=후보 대사 전투 btl_b1, prompt=Enter -> 대사 전투 btl_b1, actionResult=True, linkAction=dialogue-battle-action, dialogueBattleLinkCount=1, autoSource=dialogue-battle-link, autoSaved=True, prototypeDialogueBattleLinkImplemented=True, and then starts the same btl_b1 battle with the same battle-start feedback, battleStartFeedbackSound=battleStart:../extract_wlk/08.wav:True, battleStartSound=battleStart/battleStartSoundSrc=../extract_wlk/08.wav, and partial VM replay evidence without promoting original event-driven battle entry. It verifies clicking the battle HUD attack row through a canvas PointerEvent hits the same command index, reduces enemy HP, and records browser-local hit feedback via HWANSE_BATTLE_HIT_EFFECT_LOG/HWANSE_LAST_BATTLE_HIT_EFFECT with hitEffectTargets=enemy,party, hitEffectDuration=260, hitEffectShake=4, browserHitEffect=True, hitEffectSprite=battle_effects, hitEffectSpriteSource=btl_etc.cns, spriteDrawn=True, browserHitSprite=True, battleHitSoundCount=2, battleHitSoundSrc=../extract_wlk/09.wav, renderTarget=party, damageTextTargets=enemy,party, damageTextDuration=620, damageTextRender=enemy,party, and browserDamageText=True, so battle commands, hit feedback, hit WLK audio events, extracted btl_etc sprite burst, and floating damage numbers are directly visible/observable on the canvas without promoting original combat formula or battle-effect timing proof. It verifies `encounter=1`/전투 탐색 reaches the same btl_b1 after movementInput=True with movementSteps=6, movementCodes=ArrowRight,ArrowLeft,ArrowRight,ArrowLeft,ArrowRight,ArrowLeft, steps=6/6, fieldEncounterCount=1, battleStartFeedback=battle-start-feedback:전투 시작 btl_b1, battleStartFeedbackRender=True, battleStartFeedbackSound=battleStart:../extract_wlk/08.wav:True, battleStartSound=battleStart/battleStartSoundSrc=../extract_wlk/08.wav, battleMusicCue=battle/battleMusicSrc=../extract_mlk/08.mid, source=prototype-field-encounter, originalEncounterTableMapped=False, and originalEncounterRuntimeImplemented=False. Field encounter victory records fieldEncounterVictoryCount=1 with battleVictoryCount=0, button=전투 btl_b1, completionCompleted=False for the source event battle candidate, fieldCompletionCompleted=True for the repeatable field encounter result, repeatable=True, runtimeMoney=75, victorySound=victory/victorySoundSrc=../extract_wlk/12.wav, mapMusicCue=map/mapMusicSrc=../extract_mlk/01.mid with battleEndMusicReason=battle-end-map-return and musicStop=battle->map/musicStopReason=cue-change/musicStopImplemented=True, and prototype enemy drop drop=약초 dropSource=prototype-enemy-drop dropCount=2 dropItemTextRef=0x0048b984 dropItemTextVa=0x0048ba7c in runtimeState.items so automatic field battles grant inventory rewards and restore map BGM without overlap or source event completion. The completed field encounter objective becomes objective=후보 필드 전투 완료 btl_b1 / objectiveNext=완료 알림 확인, and objectiveAction=field-encounter-completion-notice opens objectiveActiveId=field-encounter-complete:map1_02b from both the direct field encounter victory state and title-continue restored state while keeping originalEncounterTableMapped=False, originalEncounterRuntimeImplemented=False, originalRewardTableMapped=False, originalDropTableMapped=False, and originalStoryFlagRuntimeImplemented=False. It also verifies requested map2_07e btl_e1 from event-dialogue-block-041 renders enemySprite=zjk_byk.cns enemyAsset=zjk_byk with enemyName=백호 괴수 enemyHp=50 enemyAtk=5 enemyDef=1 enemyAction=돌진 enemyActionTextRef=0x004d29e4 enemyActionTextVa=0x004d447c enemyDrop=해독초 enemyDropItemTextRef=0x0048b98c enemyDropItemTextVa=0x0048ba8e and originalEnemyRowBound=False. The status cure smoke requests event-dialogue-block-038:btl_n2, confirms 철갑 코뿔 uses enemyAction=독액 enemyActionTextRef=0x004d2a0c enemyActionTextVa=0x004d4512 status=독 to set Ataho poisonBefore=True, then uses the battle item command item=해독초 to clear poisonAfter=False with itemCountAfter=0 while keeping originalStatusFormulaImplemented=False and originalEnemyAiImplemented=False. It then verifies normal candidate battle completion is saved/restored as 전투 완료 btl_b1 with battleVictoryCount=1, battleVictoryFlagKeys=story:battle-victory:map1_02b:event-dialogue-block-015, rewardExp=7, rewardEffectSource=battle-victory, rewardEffectDuration=1400, rewardEffectRender=True, rewardEffectSound=victory:../extract_wlk/12.wav:True, rewardDropItemTextRef=0x0048b984, rewardRenderDropItemTextRef=0x0048b984, rewardEffectLines including 소지금/경험치/약초/Ataho Lv2, drop=약초 dropCount=2 dropSource=prototype-enemy-drop dropItemTextRef=0x0048b984 dropItemTextVa=0x0048ba7c, victorySound=victory/victorySoundSrc=../extract_wlk/12.wav, runtimeMoney=75, and the restored source action prompt `Enter -> 전투 완료 btl_b1`; the same saved completion also restores through the title-screen `이어하기 map1_02b 11,12` row with titleContinue=True, quickLoadText=임시 불러오기, dropCount=2, expTotal=3, levelAfter=2, nextExp=3/125, and titleBattleVictoryFlagKeys=story:battle-victory:map1_02b:event-dialogue-block-015. Activating the completed prompt stays on the map and opens battle-complete:event-dialogue-block-015 with completedActionResult=True instead of replaying the battle; the current objective also becomes objective=후보 전투 완료 btl_b1 / objectiveNext=완료 알림 확인, and objectiveAction=battle-completion-notice opens objectiveActiveId=battle-complete:event-dialogue-block-015. The runtime menu shows 전투 완료 btl_b1 with menuNotice=battle-complete:event-dialogue-block-015 on selection. The completion notice and progress review now also expose 전투 보상 소지금 75 / 경험치 +7, 전투 드롭 약초 2, 전투 레벨 Ataho Lv2 3/125, and 최근 스토리 전투 승리 map1_02b event-dialogue-block-015 while keeping originalEventDrivenBattleEntry=False, originalRewardTableMapped=False/originalDropTableMapped=False/originalEnemyAiImplemented=False, and originalStoryFlagRuntimeImplemented=False. The same smoke verifies non-victory candidate battle outcomes: 도주 records battle-run with battleRunCount=1, autoSource=battle-run, runTextRef=0x004d2974, and runTextVa=0x004d42f6, run title continue restores battleRunCount=1 with runtimeMoney=60/runtimeExp=0, 패배 records battle-defeat with battleDefeatCount=1, autoSource=battle-defeat, defendTextRef=0x004d297c, defendTextVa=0x004d4314, defendFeedback=battle-defend-feedback:방어 피해 2, defendFeedbackRender=True, and defendFeedbackDuration=900 after the 방어 command, and defeat title continue restores battleDefeatCount=1 with recoveredHp=1. Both keep battleVictoryCount=0, rewardGranted=False, and completionCompleted=False for the source event battle candidate, while the separate battleOutcome snapshot has outcomeCompleted=True. The non-victory objective becomes objective=후보 전투 도주 btl_b1 or objective=후보 전투 패배 btl_b1 / objectiveNext=완료 알림 확인, and objectiveAction=battle-outcome-completion-notice opens objectiveActiveId=battle-outcome-complete:map1_02b:battle-run or objectiveActiveId=battle-outcome-complete:map1_02b:battle-defeat from both direct and title-continue restored states. The defeat path also records prototype-battle-defeat-recovery with recovered=True target=Ataho hp=0->1 and saves the recovered HP 1 payload so play can continue on the map without granting rewards, mutating original story flags, or promoting original reward/event VM proof.","Battle completion feedback marker summary: completionFeedback=battle-completion-feedback:전투 완료 btl_b1; completionFeedbackRender=True; completionFeedbackSound=menuConfirm:../extract_wlk/04.wav:True.","The same candidate battle smoke now verifies battle item feedback for status cure plus HP/status-missing failures: before the successful cure, a full-HP Ataho tries 약초 and statusCure records hpFailFeedback=battle-item-failed-feedback:herb:약초 대상 없음 with hpFailFeedbackRender=True and no item WLK sound or item-use-prototype progress; Ataho then tries 해독초 while no status can be cured and statusCure records itemFailFeedback=battle-item-failed-feedback:item_2:해독초 회복 대상 없음 with itemFailFeedbackRender=True and no item WLK sound or item-use-prototype progress; after 독액 applies poison, the successful cure records itemFeedback=battle-item-use:item_2:독 회복, itemFeedbackRender=True, itemFeedbackDuration=900, and the snapshot carries itemFeedbackLog/itemFeedbackRender entries with browserBattleItemFeedbackImplemented=True while keeping originalItemEffectFormulaImplemented=False and originalStatusFormulaImplemented=False.","The same candidate battle smoke also verifies battle item target selection with itemTargetSelection item=약초 target=Rinshan hp=8->28 count=2->1, targetMenuOpen=open, selectedPhase=selected, targetCount=3, choices=Ataho,Rinshan,Smashu, itemAutoSource=item-use-prototype, turnAutoSource=battle-turn-prototype, battleTurnCount=1, itemUseCount=1, savedHp=28, savedHerb=1, prototypeTargetSelection=True, then opens objective=후보 전투 도구 완료 btl_b1 with objectiveDetail=Ataho / 약초 / Rinshan / 2->1, objectiveAction=battle-item-completion-notice, objectiveActiveId=battle-item-complete:map1_02b, itemTargetNoticeFeedback=battle-item-completion-notice-feedback:전투 도구 완료 1/1, itemTargetNoticeFeedbackRender=True, and itemTargetNoticeSound=menuConfirm:../extract_wlk/04.wav:True while keeping originalItemEffectFormulaImplemented=False.","The same candidate battle smoke now carries a saved battle-turn-prototype status turn back through title continue: map2_07e restores poisonRestored=True/statusLineHasPoison=True with battleTurnCount=1 and battleVictoryCount=0, then the current objective becomes objective=후보 전투 턴 완료 btl_n2 / objectiveNext=완료 알림 확인 and objectiveAction=battle-turn-completion-notice opens objectiveActiveId=battle-turn-complete:map2_07e. The completion notice records 전투 턴 완료 1/1, btl_n2, 독액, 상태 독, Ataho HP progress, and turnNoticeFeedback=battle-turn-completion-notice-feedback:전투 턴 완료 1/1 with turnNoticeSound=menuConfirm:../extract_wlk/04.wav:True while keeping prototypeBattleTurnImplemented=True and originalEnemyAiImplemented=False/originalStatusFormulaImplemented=False/originalCombatFormulaImplemented=False/originalStoryFlagRuntimeImplemented=False.","The same candidate battle smoke now verifies prototype status-effect turn resolution: a second btl_n2 turn starts with Ataho still poisoned, records battle-status-effect-prototype with effectSource=prototype-battle-status-effect, effectKind=poison, poisonDamage=3, poisonHp=28->25, shows browser status feedback via statusFeedbackSources=enemy-status-apply:poison,battle-status-poison-damage:poison, statusFeedbackTexts=독,독 -3, statusFeedbackSound=battle-status-poison-damage:battleHit:../extract_wlk/09.wav:True, statusFeedbackRender=True, and statusFeedbackDuration=760, then records the normal battle-turn-prototype enemy response with turnHp=25->17, statusEffectDamage=3, battleStatusCount=1, battleTurnCount=2, autoSource=battle-turn-prototype, savedHp=17, and savedPoison=True while keeping originalStatusFormulaImplemented=False and originalCombatFormulaImplemented=False.","The same status-effect smoke also verifies paralysis as a turn-skip gameplay effect: requested event-dialogue-block-041:btl_a1 uses the boss_2 prototype profile to apply status=마비, the next Ataho turn records effectKind=paralysis/skipped=True through battle-status-effect-prototype, shows browser status feedback via statusFeedbackSources=enemy-status-apply:paralysis,battle-status-skip-turn:paralysis, statusFeedbackTexts=마비,마비 행동불가, statusFeedbackSound=battle-status-skip-turn:menuMove:../extract_wlk/03.wav:True, statusFeedbackRender=True, and statusFeedbackDuration=760, keeps enemyHp=90->90 because Ataho's command was skipped, records the enemy response as turnHp=27->18 with commandKey=status:skip-turn and statusEffectSkipped=True, then auto-saves battleTurnCount=2, battleStatusCount=1, savedHp=18, and savedParalysis=True while keeping originalStatusFormulaImplemented=False and originalCombatFormulaImplemented=False.","out/battle_enemy_candidates.* maps 21 battle review candidates to 8 EXE-nearest z*/boss_* enemy/object sprite visual candidates, including event-dialogue-block-015:btl_b1 -> zky_ao.cns, and the web battle scene can render that original sprite asset instead of the placeholder shape while keeping originalEnemyRowBound=False and originalStatsOrRewardsBound=False.","No extracted sprite-only battle menu evidence has been generated yet.","No original battle data gap audit has been generated yet.","The web runtime has a battle review scene started from the menu or battle=1 query, using extracted battle backgrounds, battle character sprite sheets, battle/action text tables, and keyboard/mobile command selection.","Savedat battle party rows now preserve parsed base/enhance stat blocks; candidate battle damage/mitigation uses ATK/DEF, and the WebKit smoke verifies public savedat Ataho ATK/DEF reaches battle state.","Savedat learned skill counts now add extracted skill/action text table commands to the battle command list and preserve decoded slot/index/level entries; the WebKit smoke verifies player command text provenance with attackTextRef=0x004d24ac/attackTextVa=0x004d2d8c for Ataho 정권, skillTextRef=0x004d24b4/skillTextVa=0x004d2daa for Ataho 돌려차기, and partySkillTextRefs=Rinshan:0x004d2c5c->0x004d4ee2,Smashu:0x004d2c2c->0x004d4e1e for Rinshan 장궁 and Smashu 투구쪼개기. The WebKit smoke verifies Ataho 돌려차기 consumes MP, damages the enemy, syncs the savedat-backed MP row, and battle skill auto-saves with skillAutoSource=battle-skill-prototype, scope=battle-skill, plus a payload containing MP/enemy HP progress. The same skill action now renders immediate browser feedback with skillFeedback=battle-skill-use:Ataho:돌려차기:돌려차기 -112 / MP -2, skillFeedbackRender=True, and skillFeedbackSound=battleHit:../extract_wlk/09.wav:True; the insufficient-MP guard renders noMPFeedback=battle-skill-no-mp:Ataho:돌려차기:돌려차기 MP 부족, noMPFeedbackRender=True, and noMPFeedbackSound=menuConfirm:../extract_wlk/04.wav:True while keeping originalSkillFormulaImplemented=False, originalCombatFormulaImplemented=False, and originalStoryFlagRuntimeImplemented=False. That saved skill action now restores as objective=후보 전투 기술 완료 btl_a1 with objectiveAction=battle-skill-completion-notice and objectiveActiveId=battle-skill-complete:map1_01a, whose notice records 전투 기술 완료 1/1, Ataho 돌려차기, MP 999->997, 보스 후보 HP 700->588, and 피해 112; the same notice also renders skillNoticeFeedback=battle-skill-completion-notice-feedback:전투 기술 완료 1/1, skillNoticeFeedbackRender=True, and skillNoticeSound=menuConfirm:../extract_wlk/04.wav:True. The same completed skill objective is restored again through titleContinue=True/quickLoadText=임시 불러오기 after the title row `이어하기 map1_01a 1,2`, with skillTitleContinue=후보 전투 기술 완료 btl_a1/battle-skill-completion-notice/battle-skill-complete:map1_01a. The same battle action then records the enemy response and battle turn auto-saves with turnAutoSource=battle-turn-prototype, scope=battle-turn, plus target HP/status progress. It rejects Ataho 돌려차기 when MP is insufficient without enemy damage, source-row mutation, or turn advance, exposes Rinshan/Smashu learned skill commands, and executes Rinshan 장궁 plus Smashu 투구쪼개기 with MP/source-row sync.","When no savedat is loaded, manual party selection flows into battle party rows; the WebKit browser smoke opens map1_02b with party=rinshan,smash, clicks battleButton, verifies Ataho, Rinshan, and Smashu, and confirms that the mobile A button changes the battle scene.","The battle prototype tracks an active actor index and advances commands through living party members instead of always using the first character.","Battle command labels use extracted character action text tables, so the WebKit smoke checks Ataho 정권 changes to Rinshan 유미쌍조 after the first party turn, records normalTextRef=0x004d24ac/normalTextVa=0x004d2d8c for the Ataho command and nextCommandTextRef=0x004d2c04/nextCommandTextVa=0x004d4d68 for Rinshan 유미쌍조, and the normal attack turn auto-saves with normalTurnAutoSource=battle-turn-prototype plus a payload containing Ataho's post-response HP.","The battle prototype grants a small candidate battle reward with money/EXP on victory, and the WebKit smoke drives attacks until victory to verify rewardGranted, rewardExp, expTotal, levelUpCount=1, levelAfter=2, nextExp=3/125, and a reward/level-up log while keeping originalLevelFormulaImplemented=False.","Non-victory candidate battle outcomes are now playable prototype outcomes rather than implicit exits: 도주 returns to the map with notice=도주했다., battle-run progress, autoSource=battle-run, runTextRef=0x004d2974/runTextVa=0x004d42f6 from battleCommands[0], outcomeCompleted=True, outcomeFeedback=battle-outcome-feedback:전투 도주 btl_b1, outcomeFeedbackRender=True, outcomeFeedbackDuration=1100, outcomeSound=transition, outcomeSoundSrc=../extract_wlk/07.wav, outcomeSoundPlayed=True, browserOutcomeFeedback=True, objective=후보 전투 도주 btl_b1, objectiveAction=battle-outcome-completion-notice, objectiveActiveId=battle-outcome-complete:map1_02b:battle-run, outcomeNoticeFeedback=battle-outcome-completion-notice-feedback:전투 도주 완료 1/1, outcomeNoticeFeedbackRender=True, and outcomeNoticeSound=menuConfirm:../extract_wlk/04.wav:True; party defeat closes after the 방어 command with notice=패배했다., battle-defeat progress, autoSource=battle-defeat, defendTextRef=0x004d297c/defendTextVa=0x004d4314 from battleCommands[1], defendFeedback=battle-defend-feedback:방어 피해 2, defendFeedbackRender=True, defendFeedbackDuration=900, defendSound=battleHit, defendSoundSrc=../extract_wlk/09.wav, defendSoundPlayed=True, outcomeCompleted=True, outcomeFeedback=battle-outcome-feedback:전투 패배 btl_b1, outcomeFeedbackRender=True, outcomeFeedbackDuration=1100, outcomeSound=battleHit, outcomeSoundSrc=../extract_wlk/09.wav, outcomeSoundPlayed=True, browserOutcomeFeedback=True, objective=후보 전투 패배 btl_b1, objectiveActiveId=battle-outcome-complete:map1_02b:battle-defeat, outcomeNoticeFeedback=battle-outcome-completion-notice-feedback:전투 패배 완료 1/1, outcomeNoticeFeedbackRender=True, outcomeNoticeSound=menuConfirm:../extract_wlk/04.wav:True, and prototype-battle-defeat-recovery that revives Ataho to HP 1 if the whole party fell. The run title continue and defeat title continue paths restore the saved non-victory progress, and the defeat title continue report records recoveredHp=1. Neither outcome grants rewards, marks source battle completion, or mutates original story flags.","Finished candidate battles can create runtime state for manual parties; the WebKit smoke verifies the battle-victory auto-save marker, closes the finished battle with the mobile A button, and quick-loads the rewarded money/EXP plus manual party selection back on the map.","The web runtime maps the known savedat recovery item effects and status item effects for 약초, 리프레시 워터, 마법의 물약, 고급한방약, 마수석, and a web-local 해독초 status cure for modeled poison/paralysis states; original poison/paralysis save/runtime flag offsets remain unmapped.","The WebKit smoke also starts battle=1 from a public savedat sample and verifies the savedat 약초 command consumes an item, applies the mapped HP recovery, advances to Rinshan, and battle item auto-saves with itemAutoSource=item-use-prototype, scope=battle-item, plus a payload containing healed HP and item count progress. That saved battle item action now restores as objective=후보 전투 도구 완료 btl_a1 with objectiveAction=battle-item-completion-notice and objectiveActiveId=battle-item-complete:map1_01a, whose notice records 전투 도구 완료 1/1, Ataho 약초, 약초 3->2, and Ataho HP 979->999 before the separate enemy response turn save. The same completed battle item objective restores again through titleContinue=True/quickLoadText=임시 불러오기 after the title row `이어하기 map1_01a 1,2`, with itemTitleContinue=후보 전투 도구 완료 btl_a1/battle-item-completion-notice/battle-item-complete:map1_01a. Its feedback now carries itemFeedbackSound=item:../extract_wlk/11.wav:True.","When multiple battle items are available, the battle prototype opens an item-selection sub-menu; the WebKit smoke injects 마법의 물약, selects it after 도구, verifies MP +50, consumes the item, closes the item menu, advances to Smashu, and battle item menu auto-saves with menuAutoSource=item-use-prototype, scope=battle-item, plus a payload containing recovered MP and potion count progress. The same sub-menu item use also restores as objective=후보 전투 도구 완료 btl_a1 with objectiveAction=battle-item-completion-notice and objectiveActiveId=battle-item-complete:map1_01a, whose notice records Rinshan 마법의 물약, 마법의 물약 1->0, and Rinshan MP 939->989, and its feedback carries menuItemFeedbackSound=item:../extract_wlk/11.wav:True.","The WebKit smoke injects modeled poison/paralysis status states and verifies 해독초 cures them in both the battle item menu and the map item menu. That status item use also restores as objective=후보 전투 도구 완료 btl_a1 with objectiveAction=battle-item-completion-notice and objectiveActiveId=battle-item-complete:map1_01a, whose notice records Smashu 해독초, 해독초 1->0, and 상태 poison->정상, and its feedback carries statusItemFeedbackSound=item:../extract_wlk/11.wav:True.","The item targeter now respects revive-only effects: ordinary HP recovery does not select a fallen party member, while the WebKit smoke injects 마수석 and verifies it revives fallen Smashu to full HP/MP and syncs the savedat-backed source row. That revive item use also restores as objective=후보 전투 도구 완료 btl_a1 with objectiveAction=battle-item-completion-notice and objectiveActiveId=battle-item-complete:map1_01a, whose notice records Ataho 마수석, 마수석 1->0, Smashu HP 0->999, and Smashu MP 0->999, and whose feedback carries reviveItemFeedbackSound=item:../extract_wlk/11.wav:True.","The same WebKit battle item smoke now verifies canvas item feedback for all modeled battle item classes: itemFeedback=battle-item-use:herb:HP +20 with itemFeedbackRender=True and itemFeedbackSound=item:../extract_wlk/11.wav:True, menuItemFeedback=battle-item-use:mp_recovery:MP +50 with menuItemFeedbackRender=True and menuItemFeedbackSound=item:../extract_wlk/11.wav:True, statusItemFeedback=battle-item-use:item_2:독 회복 with statusItemFeedbackRender=True and statusItemFeedbackSound=item:../extract_wlk/11.wav:True, and reviveItemFeedback=battle-item-use:item_6:부활 with reviveItemFeedbackRender=True and reviveItemFeedbackSound=item:../extract_wlk/11.wav:True while keeping originalItemEffectFormulaImplemented=False and originalStatusFormulaImplemented=False.","The map menu can use savedat recovery items and status items through the same item-effect path; the WebKit smoke opens a public savedat menu and verifies savedat menu item/status item flows, 약초 consumption/healing outside battle, and 해독초 status cure outside battle, then uses the in-game menu 저장/불러오기 commands and quick-saves and quick-loads the changed HP/item count plus modeled poison status while preserving savedat selector map candidates. The savedat 약초 map item action now restores as objective=후보 도구 완료 map1_01a and now renders inventoryFeedback=inventory-item-use:herb:약초 HP +30 with inventoryFeedbackRender=True and inventoryFeedbackSound=item:../extract_wlk/11.wav:True, objectiveAction=item-use-completion-notice, and objectiveActiveId=item-use-complete:map1_01a, whose notice records 도구 사용 완료 1/1, Ataho 약초, HP 969 -> 999, and 약초 3 -> 2. The saved menu item state restores again through titleContinue=True after the title row `이어하기 map1_01a ... 세이브 0:0`, with titleCount=2, titleHp=999, titleStatus=['poison'], field maps map1_01a/map1_02b, routeStatus=not-current-selector, and the latest completed map item objective notice for Ataho 해독초, HP 999 -> 999, and 해독초 1 -> 0 under item-use-complete:map1_01a.","The title/new-game smoke now also verifies field inventory target selection in the map runtime menu: with Ataho and Rinshan both damaged, the map menu exposes `도구 선택 1`, opens prototype-inventory-item-menu with 약초 x2, selecting 약초 opens inventory-item-target-selection through opensMenuMode=item-target, then selecting Rinshan applies HP 8->38 while Ataho stays 24, consumes 약초 2->1, auto-saves item-use-prototype, records inventoryFeedback=inventory-item-use:herb:약초 HP +30 and inventoryFeedbackSound=item:../extract_wlk/11.wav:True, then opens the completed objective notice as objective=후보 도구 완료 map1_02b with objectiveDetail=Rinshan 약초, objectiveAction=item-use-completion-notice, objectiveActiveId=item-use-complete:map1_02b, itemNoticeFeedback=inventory-item-completion-notice-feedback:도구 사용 완료 1/1, itemNoticeFeedbackRender=True, and itemNoticeSound=menuConfirm:../extract_wlk/04.wav:True, while keeping prototypeInventoryItemMenuImplemented=True, prototypeInventoryItemTargetSelectionImplemented=True, originalInventoryMenuRuntimeImplemented=False, originalItemEffectFormulaImplemented=False, and originalStoryFlagRuntimeImplemented=False.","New-game equipment/shop marker summary: new-game no-loaded-savedat equipment equip; map=map1_02b/atkBefore=0/atkAfter=4/restoredAtk=4/autoSource=equipment-prototype; equipmentTextTable=equipment/equipmentTextRef=0x0048b244/equipmentTextVa=0x0048b52c; equipmentSoundItemCount=1; titleContinue=True/quickLoadText=임시 불러오기/loadedSaveSummary=False; new-game no-loaded-savedat shop flow; moneyBefore=60/moneyAfter=48; countBefore=1/countAfter=2; restoredMoney=48/restoredCount=2; restoredSellMoney=54/restoredSellCount=1; buyAutoSource=shop-buy-prototype; sellAutoSource=shop-sell-prototype; buySoundItemCount=1; sellSoundItemCount=1; itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c; 이어하기 map4_08n 18,42; loadedSaveSummary=False.","Public shop marker summary: dialogueGateBeforeShop=True; firstPrompt=Enter -> 대사 1/2; completedDialogue=event-dialogue-block-005,event-dialogue-block-026; vmBlocks=event-dialogue-block-005,event-dialogue-block-026; normal shop action prompt; Enter -> 상점 6; opens the prototype buy menu through a canvas PointerEvent; canvasPointer=True; prototype 약초 purchase; buys 약초 with prototype price 12; itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c; moneyBefore=983062/moneyAfter=983050; autoSource=shop-buy-prototype; buyFeedback=shop-buy-feedback:buy:herb:약초 +1 / -12/buyFeedbackRender=True; buyFailFeedback=shop-buy-failed-feedback:buy:herb:약초 돈 부족 5/12/buyFailFeedbackRender=True; buyFullFeedback=shop-buy-failed-feedback:buy:herb:약초 소지수 가득/buyFullFeedbackRender=True; buySoundItemCount=1; prototype 약초 sale; sells 약초 with prototype price 6; moneyBefore=983050/moneyAfter=983056; autoSource=shop-sell-prototype; sellFeedback=shop-sell-feedback:sell:herb:약초 -1 / +6/sellFeedbackRender=True; sellFailFeedback=shop-sell-failed-feedback:sell:herb:약초 판매 없음/sellFailFeedbackRender=True; sellSoundItemCount=1; shop-sell-prototype; progressCount=1; source=prototype-shop-prices.","Battle outcome marker summary: candidate battle browser smoke verifies map1_02b source-backed btl_b1; battleStartFeedback=battle-start-feedback:전투 시작 btl_b1; battleStartFeedbackRender=True; battleStartFeedbackDuration=1000; battleStartFeedbackSound=battleStart:../extract_wlk/08.wav:True; battleStartSound=battleStart; battleStartSoundSrc=../extract_wlk/08.wav; dialogueBattleLink=event-dialogue-block-015 btl_b1; linkSource=prototype-dialogue-battle-link; objective=후보 대사 전투 btl_b1; prompt=Enter -> 대사 전투 btl_b1; actionResult=True; linkAction=dialogue-battle-action; dialogueBattleLinkCount=1; autoSource=dialogue-battle-link; prototypeDialogueBattleLinkImplemented=True; requested map2_07e btl_e1; 전투 완료 btl_b1; Enter -> 전투 완료 btl_b1; battle-complete:event-dialogue-block-015; completedActionResult=True; runtime menu shows 전투 완료 btl_b1; menuNotice=battle-complete:event-dialogue-block-015; battleVictoryCount=1; battle completion; victorySound=victory; victorySoundSrc=../extract_wlk/12.wav; candidate_battle_browser_smoke; HWANSE_BATTLE_HIT_EFFECT_LOG; HWANSE_LAST_BATTLE_HIT_EFFECT; hitEffectTargets=enemy,party; hitEffectDuration=260; hitEffectShake=4; browserHitEffect=True; hitEffectSprite=battle_effects; hitEffectSpriteSource=btl_etc.cns; spriteDrawn=True; browserHitSprite=True; battleHitSoundCount=2; battleHitSoundSrc=../extract_wlk/09.wav; renderTarget=party; damageTextTargets=enemy,party; damageTextDuration=620; damageTextRender=enemy,party; browserDamageText=True; non-victory battle-run/battle-defeat outcomes; autoSource=battle-run; runTextRef=0x004d2974; runTextVa=0x004d42f6; outcomeSound=transition; outcomeSoundSrc=../extract_wlk/07.wav; outcomeSoundPlayed=True; autoSource=battle-defeat; defendTextRef=0x004d297c; defendTextVa=0x004d4314; defendFeedback=battle-defend-feedback:방어 피해 2; defendFeedbackRender=True; defendFeedbackDuration=900; defendSound=battleHit; defendSoundSrc=../extract_wlk/09.wav; defendSoundPlayed=True; outcomeCompleted=True; outcomeFeedback=battle-outcome-feedback:전투 도주 btl_b1; outcomeFeedback=battle-outcome-feedback:전투 패배 btl_b1; outcomeFeedbackRender=True; outcomeFeedbackDuration=1100; outcomeSound=battleHit; outcomeSoundSrc=../extract_wlk/09.wav; outcomeSoundPlayed=True; browserOutcomeFeedback=True; objective=후보 전투 도주 btl_b1; objectiveAction=battle-outcome-completion-notice; objectiveActiveId=battle-outcome-complete:map1_02b:battle-run; outcomeNoticeFeedback=battle-outcome-completion-notice-feedback:전투 도주 완료 1/1; outcomeNoticeFeedbackRender=True; outcomeNoticeSound=menuConfirm:../extract_wlk/04.wav:True; objective=후보 전투 패배 btl_b1; objectiveActiveId=battle-outcome-complete:map1_02b:battle-defeat; outcomeNoticeFeedback=battle-outcome-completion-notice-feedback:전투 패배 완료 1/1; outcomeNoticeFeedbackRender=True; outcomeNoticeSound=menuConfirm:../extract_wlk/04.wav:True; run title continue; defeat title continue; recoveredHp=1; battleVictoryCount=0; rewardGranted=False; completionCompleted=False; objective=후보 전투 턴 완료 btl_n2; objectiveAction=battle-turn-completion-notice; objectiveActiveId=battle-turn-complete:map2_07e; turnNoticeFeedback=battle-turn-completion-notice-feedback:전투 턴 완료 1/1; turnNoticeSound=menuConfirm:../extract_wlk/04.wav:True; encounterFeedback=field-encounter-trigger-feedback:전투 발생 btl_b1; encounterFeedbackRender=True; encounterFeedbackSound=step:../extract_wlk/00.wav:True; battleMusicCue=battle; mapMusicCue=map; battleEndMusicReason=battle-end-map-return; musicStop=battle->map; musicStopReason=cue-change; musicStopImplemented=True; fieldCompletionCompleted=True; objective=후보 필드 전투 완료 btl_b1; objectiveAction=field-encounter-completion-notice; objectiveActiveId=field-encounter-complete:map1_02b; fieldNoticeFeedback=field-encounter-completion-notice-feedback:필드 전투 완료 1/1; fieldNoticeFeedbackRender=True; fieldNoticeSound=menuConfirm:../extract_wlk/04.wav:True.","Object/progress marker summary: hit-test the visible sprites as canvas pointer targets; hover cursor/highlight feedback; scope=pointer-object; hoverCursor=pointer; hoverAsset=zs_rg; hit=zs_rg; inspect nearby linked z*.cns object sprite candidates from the normal map action path; visible sprite canvas pointer; facing-object Enter/A prompt; Enter -> 조사 zg_kni 3개; near-foot Enter/A hotspot action; all scene-linked z object coverage verified=7/7; map1_02b:zjk_suz@0x0618; map2_03l:zg_kni,zm_2,zs_rg@0x0918; map8_18o:zs_dd@0x9e18; map8_32q:zsa_iwa@0xac18; map9_01e:zi_ana@0xad18; loaded=7 rendered=7 inspected=7 anchors=7; linked dialogue candidate summary; dialogueLinks=3; linkedDialogueCount=3; linked dialogue follow-up; dialogueCandidateCount=1; prompt=Enter -> 대사 2/3; linked dialogue all-complete; linked dialogue quick-load restore; loaded=True; prompt=Enter -> 대사 전투 btl_l1; linked dialogue battle action; event-dialogue-block-041:btl_l1; actionResult=True; linkAction=dialogue-battle-action; scene=battle; battleBackground=btl_l1; enemyName=백호 괴수; enemySprite=zjk_byk.cns; enemyDropItemTextRef=0x0048b98c; enemyDropItemTextVa=0x0048ba8e; battleStartFeedback=battle-start-feedback:전투 시작 btl_l1; battleStartFeedbackRender=True; dialogueBattleLinkCount=3; battleStartCount=1; linked dialogue battle victory; attackResult=True; finishResult=True; scene=map; rewardGranted=True; autoSaved=True; autoSource=battle-victory; battleVictoryCount=1; objective=후보 대사 전투 btl_l2; prompt=Enter -> 대사 전투 btl_l2; nextLink=event-dialogue-block-032:btl_l2; drop=해독초; dropCount=1; dropItemTextRef=0x0048b98c; dropItemTextVa=0x0048ba8e; rewardEffect=battle-victory:백호 괴수; rewardDropItemTextRef=0x0048b98c; rewardRenderDropItemTextRef=0x0048b98c; rewardEffectRender=True; linked dialogue battle chain; steps=2; order=event-dialogue-block-032:btl_l2,event-dialogue-block-004:btl_l1; battleStartCount=3; battleVictoryCount=3; pendingLink=None; objective=후보 전투 완료 btl_l1; prompt=Enter -> 전투 완료 btl_l1; dropCount=3; stepDropItemTextRefs=0x0048b98c,0x0048b98c; rewardDropItemTextRefs=0x0048b98c,0x0048b98c; rewardRenderDropItemTextRefs=0x0048b98c,0x0048b98c; noticeResult=True; notice=battle-complete:event-dialogue-block-004; duplicateProgress=True; dialogueButtonResult=True; menuObject=조사 선택 3; directMenuIndex=-1; menuMode=object-candidate; menuCandidateCount=3; objectInspectCount=1; event_object_candidate_review_summary; event-object-candidates:map2_03l; actionHighlight=zg_kni; candidate_progress_browser_smoke; prototype-progress:map2_03l; progressRestored=True; objective=후보 조사 완료 map2_03l; next=완료 알림 확인; 진행 목표 1; objectButton=조사 완료 3; runtime menu object command; objectMenu=조사 선택 3; storyFlags=1; progressStoryFlags=1; savedStoryFlags=1; progressReviewStoryStatus=True; progressReviewStoryRecent=True; storyFlagReview=prototype-story-flags:map2_03l; storyFlagReviewStatus=True; storyFlagReviewCounts=True; storyFlagMenuCommand=showPrototypeStoryFlags; event-object-complete:map2_03l; objectiveAction=object-completion-notice; objectiveActiveId=event-object-complete:map2_03l; progressReview=prototype-progress:map2_03l; buttonCompletedActionResult=True; progressAfterAction=1; progressAfterButton=1; renderDone=True; showPrototypeProgress; originalStoryFlagRuntimeImplemented=False.","Battle skill/item marker summary: party=rinshan,smash; battleButton; Ataho, Rinshan, and Smashu; active actor index; living party members; extracted character action text tables; normalTextRef=0x004d24ac; nextCommandTextRef=0x004d2c04; Ataho 정권 changes to Rinshan 유미쌍조; normal attack turn auto-saves with normalTurnAutoSource=battle-turn-prototype; preserve decoded slot/index/level entries; learned skill counts now add extracted skill/action text table commands; attackTextRef=0x004d24ac; skillTextRef=0x004d24b4; partySkillTextRefs=Rinshan:0x004d2c5c->0x004d4ee2,Smashu:0x004d2c2c->0x004d4e1e; Ataho 돌려차기 consumes MP; syncs the savedat-backed MP row; battle skill auto-saves with skillAutoSource=battle-skill-prototype; objective=후보 전투 기술 완료 btl_a1; objectiveAction=battle-skill-completion-notice; objectiveActiveId=battle-skill-complete:map1_01a; skillNoticeFeedback=battle-skill-completion-notice-feedback:전투 기술 완료 1/1; skillNoticeFeedbackRender=True; skillNoticeSound=menuConfirm:../extract_wlk/04.wav:True; 전투 기술 완료 1/1; Ataho 돌려차기; MP 999->997; 보스 후보 HP 700->588; 피해 112; 이어하기 map1_01a 1,2; skillTitleContinue=후보 전투 기술 완료 btl_a1/battle-skill-completion-notice/battle-skill-complete:map1_01a; battle turn auto-saves with turnAutoSource=battle-turn-prototype; battle-turn-completion-notice; rejects Ataho 돌려차기 when MP is insufficient; without enemy damage, source-row mutation, or turn advance; Rinshan/Smashu learned skill commands; executes Rinshan 장궁 plus Smashu 투구쪼개기; candidate battle reward; rewardGranted; battle-victory auto-save marker; closes the finished battle with the mobile A button; quick-loads the rewarded money/EXP plus manual party selection back on the map; known savedat recovery item effects; web-local 해독초 status cure; hpFailFeedback=battle-item-failed-feedback:herb:약초 대상 없음; hpFailFeedbackRender=True; itemFailFeedback=battle-item-failed-feedback:item_2:해독초 회복 대상 없음; itemFailFeedbackRender=True; poison/paralysis save/runtime flag offsets remain unmapped; public savedat sample; savedat 약초 command consumes an item; mapped HP recovery; itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c; battle item auto-saves with itemAutoSource=item-use-prototype; objective=후보 전투 도구 완료 btl_a1; objectiveAction=battle-item-completion-notice; objectiveActiveId=battle-item-complete:map1_01a; 전투 도구 완료 1/1; Ataho 약초; 약초 3->2; Ataho HP 979->999; restores again through titleContinue=True/quickLoadText=임시 불러오기; itemTitleContinue=후보 전투 도구 완료 btl_a1/battle-item-completion-notice/battle-item-complete:map1_01a; battle prototype opens an item-selection sub-menu; 마법의 물약; MP +50; menuItemTextRef=0x0048b99c; advances to Smashu; battle item menu auto-saves with menuAutoSource=item-use-prototype; Rinshan 마법의 물약; 마법의 물약 1->0; Rinshan MP 939->989; 해독초 cures them in both the battle item menu and the map item menu; statusItemTextRef=0x0048b98c; status item use also restores as objective=후보 전투 도구 완료 btl_a1; Smashu 해독초; 해독초 1->0; 상태 poison->정상; ordinary HP recovery does not select a fallen party member; revives fallen Smashu to full HP/MP; reviveItemTextRef=0x0048b9ac; revive item use also restores as objective=후보 전투 도구 완료 btl_a1; Ataho 마수석; 마수석 1->0; Smashu HP 0->999; Smashu MP 0->999.","Battle item target selection marker summary: itemTargetSelection item=약초 target=Rinshan hp=8->28 count=2->1; targetMenuOpen=open; selectedPhase=selected; targetCount=3; choices=Ataho,Rinshan,Smashu; itemAutoSource=item-use-prototype; turnAutoSource=battle-turn-prototype; battleTurnCount=1; itemUseCount=1; savedHp=28; savedHerb=1; prototypeTargetSelection=True; objective=후보 전투 도구 완료 btl_b1; objectiveDetail=Ataho / 약초 / Rinshan / 2->1; objectiveAction=battle-item-completion-notice; objectiveActiveId=battle-item-complete:map1_02b; itemTargetNoticeFeedback=battle-item-completion-notice-feedback:전투 도구 완료 1/1; itemTargetNoticeFeedbackRender=True; itemTargetNoticeSound=menuConfirm:../extract_wlk/04.wav:True; originalItemEffectFormulaImplemented=False; originalStoryFlagRuntimeImplemented=False.","Field item target selection marker summary: fieldItemTarget selected=Rinshan; inventoryMenu=prototype-inventory-item-menu count=1 item=약초 x2; inventorySelection=herb opensMenuMode=item-target targetCount=3; hp=8->38 count=2->1 targetMenuOpen=open; selectedPhase=selected; autoSource=item-use-prototype; itemUseCount=1; savedHp=38; savedHerb=1; inventoryFeedback=inventory-item-use:herb:약초 HP +30; inventoryFeedbackSound=item:../extract_wlk/11.wav:True; objective=후보 도구 완료 map1_02b; objectiveDetail=Rinshan 약초; objectiveAction=item-use-completion-notice; objectiveActiveId=item-use-complete:map1_02b; itemNoticeFeedback=inventory-item-completion-notice-feedback:도구 사용 완료 1/1; itemNoticeFeedbackRender=True; itemNoticeSound=menuConfirm:../extract_wlk/04.wav:True; prototypeInventoryItemMenuImplemented=True; prototypeInventoryItemTargetSelectionImplemented=True; originalInventoryMenuRuntimeImplemented=False; originalItemEffectFormulaImplemented=False; originalStoryFlagRuntimeImplemented=False.","Map item marker summary: map menu can use savedat recovery items; same item-effect path; 약초 consumption/healing outside battle; itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c; inventoryFeedbackSound=item:../extract_wlk/11.wav:True; savedat 약초 map item action now restores as objective=후보 도구 완료 map1_01a; 도구 사용 완료 1/1; HP 969 -> 999; 약초 3 -> 2; objective=후보 도구 완료 map1_02b; objectiveAction=item-use-completion-notice; objectiveActiveId=item-use-complete:map1_02b; 해독초 status cure outside battle; quick-saves and quick-loads the changed HP/item count; autoSource=item-use-prototype; modeled poison status; preserving savedat selector map candidates; restores again through titleContinue=True after the title row; titleCount=2; titleHp=999; titleStatus=['poison']; routeStatus=not-current-selector; latest completed map item objective notice; Ataho 해독초; HP 999 -> 999; 해독초 1 -> 0; under item-use-complete:map1_01a; equipment evidence gap explicitly; disabled equipment UI labels; ownership/equipped-slot offsets; equipment ownership/equipped offsets/effects; battle_backgrounds; savedat battle item menu; savedat status item; savedat revive item.","Cross-smoke marker summary: mobile_browser_controls_summary covers save-point candidate review, event object preview, savedat battle item, savedat battle item menu, savedat status item, and savedat revive item. save_point_candidate_review_summary covers save-point candidate review. candidate_battle_browser_smoke covers vmBlocks=event-dialogue-block-015, vmRender=5, vmBlocks=event-dialogue-block-041, vmLiteral=8, prototype enemy profile rows enemyName=푸른 마수/enemyHp=42, enemyName=백호 괴수/enemyHp=50, runtime enemySprite=zky_ao.cns/originalEnemyRowBound=False, and requested map2_07e btl_e1 enemySprite=zjk_byk.cns/originalEnemyRowBound=False. event_object_candidate_review_summary covers descriptor field object map8_32q/zsa_iwa.cns row10, all scene-linked z object coverage verified=7/7 for map1_02b:zjk_suz@0x0618;map2_03l:zg_kni,zm_2,zs_rg@0x0918;map8_18o:zs_dd@0x9e18;map8_32q:zsa_iwa@0xac18;map9_01e:zi_ana@0xad18, linked dialogue completion, linked dialogue battle action event-dialogue-block-041:btl_l1 with enemyDropItemTextRef=0x0048b98c, linked dialogue battle victory event-dialogue-block-041 -> nextLink=event-dialogue-block-032:btl_l2 with dropItemTextRef=0x0048b98c/rewardDropItemTextRef=0x0048b98c, and linked dialogue battle chain steps=2/order=event-dialogue-block-032:btl_l2,event-dialogue-block-004:btl_l1/battleVictoryCount=3/pendingLink=None/notice=battle-complete:event-dialogue-block-004/duplicateProgress=True/rewardRenderDropItemTextRefs=0x0048b98c,0x0048b98c. candidate_route_progress_browser_smoke covers quickObjectiveKeyboard=True/source=keyboard/action=route-next, quickObjectiveButtonNext=True/source=virtual-objective-button/action=route-next, quickObjectiveButton=True/source=virtual-objective-button/action=field-encounter-enable, quickObjectiveToolbar=True/source=objective-action-button/action=route-continuation/routeNextText=후보, quickObjectiveSound=quick-objective-sound markers, and routeControlSound=route-control-sound:route-next-button:route-continuation markers with ../extract_wlk/04.wav/Played=True.","The title/new-game smoke also verifies browser-local item use without a loaded savedat: before the successful use, a full-HP Ataho tries 약초 x1 and the runtime renders itemFailFeedback=inventory-item-failed-feedback:herb:약초 대상 없음 with itemFailFeedbackRender=True without item-use progress, autosave, or item WLK sound; an Ataho with no active status then tries 해독초 x1 and renders statusFailFeedback=inventory-item-failed-feedback:item_2:해독초 회복 대상 없음 with statusFailFeedbackRender=True without item-use progress, autosave, or item WLK sound; then the default prototype-new-game Ataho state is damaged to HP 24, the runtime menu opens `도구 선택 1`, selects 약초 x1 through prototype-inventory-item-menu, records inventorySelection=herb with originalInventoryMenuRuntimeImplemented=False, then useSelectedMenuItem records item-use-prototype with source=prototype-item-effect, itemTextTable=items/itemTextRef=0x0048b984/itemTextVa=0x0048ba7c, count 1->0 and HP 24->36, renders itemFeedback=inventory-item-use:herb:약초 HP +12 with itemFeedbackRender=True, itemFeedbackSound=item, itemFeedbackSoundSrc=../extract_wlk/11.wav, itemFeedbackSoundPlayed=True, and itemSoundItemCount=1, auto-saves that runtimeState with autoSaved=True and autoSource=item-use-prototype, renders quickSaveFeedbackSound=menuConfirm:../extract_wlk/04.wav:True for the explicit quick save, mutates it, quick-loads restored HP 36 plus herb count 0, and then restores the same HP 36/herb 0/progress 1 state through title `이어하기 map1_02b 11,12` with quickLoadText=임시 불러오기 and quickLoadFeedbackSound=menuConfirm:../extract_wlk/04.wav:True. The same title smoke renders the field encounter step overlay with encounterFeedback=field-encounter-step-feedback:전투 탐색 1/6, encounterFeedbackRender=True, and encounterFeedbackSound=step:../extract_wlk/00.wav:True while keeping originalEncounterTableMapped=False, originalEncounterRuntimeImplemented=False, and originalStoryFlagRuntimeImplemented=False. The completed item-use objective becomes objective=후보 도구 완료 map1_02b / objectiveNext=완료 알림 확인, and objectiveAction=item-use-completion-notice opens objectiveActiveId=item-use-complete:map1_02b from both the direct quick-load and title-continue restored states, while keeping loadedSaveSummary absent, originalItemEffectFormulaImplemented=False, and originalStoryFlagRuntimeImplemented=False.","Item-use completion notice feedback marker summary: itemNoticeFeedback=inventory-item-completion-notice-feedback:도구 사용 완료 1/1; itemNoticeFeedbackRender=True; itemNoticeSound=menuConfirm:../extract_wlk/04.wav:True; originalItemEffectFormulaImplemented=False; originalStoryFlagRuntimeImplemented=False.","The savedat parser and browser summary now expose the equipment evidence gap explicitly: HandyHwanseEditor documents money/items/stats/skills, while its disabled equipment UI labels and out/text_tables.* equipment-name candidates are not savedat ownership/equipped-slot offsets.","out/menu_candidate_review_summary.* now also records menu review progress, auto-save, completed objective actions, and title continue restore for new-game menu checks: status-menu:map1_02b/label=상태 1/source=prototype-party-defaults/stats=Ataho:1/36/8/ATK0/DEF0/loadedSaveSummary=False, status autoSource=status-menu-prototype/objective=후보 상태 완료 map1_02b/objectiveAction=menu-review-completion-notice/objectiveActiveId=status-review-complete:map1_02b/titleContinue=True/quickLoadText=임시 불러오기/statusProgressCount=1, skill-menu:map1_02b/label=기술 0/learned=0/0/source=prototype-party-defaults-and-exe-text-tables/loadedSaveSummary=False, and skill autoSource=skill-menu-prototype/objective=후보 기술 완료 map1_02b/objectiveAction=menu-review-completion-notice/objectiveActiveId=skill-review-complete:map1_02b/titleContinue=True/quickLoadText=임시 불러오기/skillProgressCount=1.","Runtime status member menu marker summary: the map menu exposes `상태 선택 N`, opens a `status-member` submenu, and the WebKit smoke selects Rinshan on map2_02d with menuCount=3, selected=Rinshan, selectionSource=prototype-status-member-menu, commandResult=True, selectResult=True, afterOpenMenuMode=status-member, afterMenuMode=main, active=status-member:map2_02d:Rinshan, progressCount=1, autoSaved=True, autoSource=status-member-menu-prototype, statusFeedback=status-member-menu-review-feedback:status-member-menu-prototype:status-member:map2_02d:Rinshan:상태 선택 Rinshan, statusFeedbackRender=True, statusSound=menuConfirm, statusSoundSrc=../extract_wlk/04.wav, statusSoundPlayed=True, objective=후보 상태 선택 완료 map2_02d, objectiveAction=menu-review-completion-notice, objectiveActiveId=status-member-review-complete:map2_02d, statusNoticeFeedback=status-member-menu-completion-notice-feedback:상태 선택 확인 완료 1/1, statusNoticeFeedbackRender=True, statusNoticeSound=menuConfirm:../extract_wlk/04.wav:True, originalEquipmentOffsetsMapped=False, and originalStoryFlagRuntimeImplemented=False. This is browser-local member status selection, not proof of original status flag or equipment offset runtime.","Runtime skill member menu marker summary: the map menu exposes `기술 선택 N`, opens a `skill-member` submenu, and the WebKit smoke selects Ataho on map2_02d with menuCount=3, selected=Ataho, learned=2/10, names=돌려차기,던지기, selectionSource=prototype-skill-member-menu, commandResult=True, selectResult=True, afterOpenMenuMode=skill-member, afterMenuMode=main, active=skill-member:map2_02d:Ataho, progressCount=1, autoSaved=True, autoSource=skill-member-menu-prototype, skillFeedback=skill-member-menu-review-feedback:skill-member-menu-prototype:skill-member:map2_02d:Ataho:기술 선택 Ataho 2/10, skillFeedbackRender=True, skillSound=menuConfirm, skillSoundSrc=../extract_wlk/04.wav, skillSoundPlayed=True, objective=후보 기술 선택 완료 map2_02d, objectiveAction=menu-review-completion-notice, objectiveActiveId=skill-member-review-complete:map2_02d, skillNoticeFeedback=skill-member-menu-completion-notice-feedback:기술 선택 확인 완료 1/1, skillNoticeFeedbackRender=True, skillNoticeSound=menuConfirm:../extract_wlk/04.wav:True, originalEquipmentOffsetsMapped=False, originalCombatFormulaImplemented=False, and originalStoryFlagRuntimeImplemented=False. This is browser-local member skill selection, not proof of original skill formula, combat formula, or story flag runtime.","Status/skill completion notice feedback marker summary: statusNoticeFeedback=status-menu-completion-notice-feedback:상태 확인 완료 1/1; statusNoticeFeedbackRender=True; statusNoticeSound=menuConfirm:../extract_wlk/04.wav:True; skillNoticeFeedback=skill-menu-completion-notice-feedback:기술 확인 완료 1/1; skillNoticeFeedbackRender=True; skillNoticeSound=menuConfirm:../extract_wlk/04.wav:True.","out/menu_candidate_review_summary.* specifically records the visible desktop toolbar objective button path for the same object interaction: quickObjectiveSource=objective-action-button, beforeObjectiveButtonHidden=False, beforeObjectiveButtonText=목표, and objectiveAction=hotspot-action."],"gaps":["Dialogue playback is still candidate/debug playback rather than confirmed event VM execution.","Save-point candidate review is still candidate/debug playback rather than original inn/statue/recovery NPC save-point event execution.","Linked event object previews are still candidate/prototype surfaces rather than original object/NPC descriptor execution.","out/event_vm_semantics_gap.* keeps instruction-length decoding, operand layout, route-linked event VM execution, full browser event VM implementation, and story dialogue route proof outside the completed surface; browser opcode trace replay is partial and non-promoting.","out/event_vm_semantics_gap.* promotion gate keeps browserReplayPromotesOriginalEventVm=False until route-linked dispatch, full instruction/operand decode, scene dialogue binding, original story flag mutation, full browser VM execution, and event-driven battle entry are proven.","out/event_battle_gap_audit.* keeps route-linked event VM execution, event-driven battle entry, original enemy data/formulas/rewards, equipment offsets, status flag offsets, and story flag mutation outside the completed surface.","EXE battle resource descriptors are grounded resource-load rows, not enemy rows, formations, encounter dispatch, reward tables, combat formulas, or battle-entry event execution.","Battle enemy sprite candidate visuals are EXE-proximity visual evidence, not enemy row/stat/formation/reward/formula proof.","Prototype progress records are browser-local save/load state and are not original story flag offsets or event-script branch-state mutation.","Prototype party join records and manual party battle rows are browser-local gameplay state and do not prove original party join/story state logic.","Original event-driven battle entry, enemy data, combat formulas, rewards, equipment ownership/equipped offsets/effects, status flag offsets, and story flag mutation are not implemented as gameplay systems."]},{"id":"completion-gate","title":"The project can be called a playable web version of Hwanse Chwihojeon","status":"partial","evidence":["The browser prototype is useful for map walking, resource review, transition review, and route investigation.","out/completion_candidate_review_summary.* now verifies a browser-local playable route completion gate: after routeAssist continuation to map2_14j, walking into the prototype field encounter, winning, restoring from title, and opening the completion notice, the runtime records routeCompleteProgress=route-complete, routeCompleteFlagKeys=story:route-complete:map2_14j:route-complete:map2_14j, opens playableGate=prototype-playable-route-gate with playableGateStatus=open/playableGateOpen=True/playableGateLabel=웹 후보 루트 완료 map2_14j, shows routeGateFeedback=route-completion-feedback:후보 완료 map2_14j with routeGateFeedbackRender=True plus routeGateSound=victory/routeGateSoundSrc=../extract_wlk/12.wav/routeGateSoundPlayed=True, auto-saves that gate, then restores it through title `이어하기 map2_14j ... 완료 map2_14j` with savedRouteCompleteCount=1, savedRouteCompleteFlagKeys=story:route-complete:map2_14j:route-complete:map2_14j, completionRouteCompleteCount=1, completionItem=후보 완료 map2_14j, and runtimeRouteCompletionGateTitleRestore=True. The same restored menu command reopens the completion notice with duplicateProgress=True, savedRouteCompleteCount=1, and runtimeRestoredRouteCompletionMenuNotice=True. A completed save now also exposes the title menu item titleItem=후보 완료 map2_14j; selecting it loads the save and opens route-complete:map2_14j with title-route-completion-gate, payloadRouteCompleteCount=1, payloadRouteCompleteFlagKeys=story:route-complete:map2_14j:route-complete:map2_14j, playableGateOpen=True, duplicateProgress=True, and runtimeTitleRouteCompletionGate=True. The same completed save exposes titleItem=후보 클리어 저장 map2_14j before the first clear; selecting it loads the save, opens route-clear:map2_14j with title-route-clear-gate, records routeClearProgress=route-clear, auto-saves routeClearAutoSource=route-clear with payloadRouteClearCount=1 and payloadRouteClearFlagKeys=story:route-clear:map2_14j:route-clear:map2_14j,story:route-complete:map2_14j:route-complete:map2_14j, shows routeGateFeedback=route-clear-feedback:후보 클리어 map2_14j with routeGateFeedbackRender=True plus routeGateSound=victory/routeGateSoundSrc=../extract_wlk/12.wav/routeGateSoundPlayed=True, updates the post-save title payload to titlePayloadLabel=후보 클리어 map2_14j/titlePayloadClearCount=1, shows the title label suffix 클리어 map2_14j, and leaves runtimeTitleRouteClearGate=True. The clear summary now reports 진행 기록 9 and 결과 소지금 80 / 보상 약초 2, and the progress review also reports 클리어 목표 map2_14j, 클리어 진행 기록 9, and 클리어 결과 소지금 80 / 보상 약초 2. The smoke then restores that clear save through title `이어하기 ... 클리어 map2_14j` with runtimeRouteClearGateTitleRestore=True, savedRouteClearFlagKeys=story:route-clear:map2_14j:route-clear:map2_14j,story:route-complete:map2_14j:route-complete:map2_14j, titleRouteCompletionLabelHidden=True, titleRouteCompletionHidden=True, titleRouteClearVisible=True, completionItem=-, clearLabelCount=1, routeNextText=클리어, HUD objective `목표 후보 루트 클리어 map2_14j` / `다음 클리어 요약 확인`, verifies the objective action and route button both reopen route-clear:map2_14j with runtimeRouteClearObjectiveAndButton=True and duplicateProgress=True, and reopens the runtime menu clear summary with duplicateProgress=True while keeping savedRouteClearCount=1 and runtimeRestoredRouteClearMenuSummary=True, all while keeping originalFullGameCompletionImplemented=False.","out/completion_candidate_review_summary.* now verifies the same playable completion gate on the longer map5_40f routeAssist chain: completionNotice=activeId=route-complete:map5_40f completionRouteCompleteCount=1 playableGate=prototype-playable-route-gate playableGateOpen=True playableGateLabel=웹 후보 루트 완료 map5_40f routeGateFeedback=route-completion-feedback:후보 완료 map5_40f routeGateFeedbackRender=True routeGateSound=victory routeGateSoundSrc=../extract_wlk/12.wav routeGateSoundPlayed=True, routeClearGate=activeId=route-clear:map5_40f routeClearCount=1 completionRouteClearCount=1 payloadRouteClearCount=1 autoSource=route-clear routeGateFeedback=route-clear-feedback:후보 클리어 map5_40f routeGateFeedbackRender=True routeGateSound=victory routeGateSoundSrc=../extract_wlk/12.wav routeGateSoundPlayed=True lines=후보 클리어 요약 map5_40f / 후보 진행 12 / 필드 전투 승리 1 / 완료 기록 1, routeClearTitleContinue=titleContinue=True label=이어하기 map5_40f 66,39 전투 후보 map5_40f 클리어 map5_40f clickOk=True map=map5_40f@66,39 routeCompleteCount=1 routeClearCount=1 savedRouteCompleteCount=1 savedRouteClearCount=1 routeNextText=클리어 playableGateOpen=True, while keeping originalFullGameCompletionImplemented=False and originalRoutePromotionImplemented=False."],"gaps":["Confirmed normal route coverage is far below full-game progression.","The playable completion gate is browser-local routeAssist completion, not the original full-game ending, normal-route promotion, or story flag completion.","Major original game systems beyond map walking, reviewed map transitions, and candidate/prototype gameplay surfaces are not implemented."]}],"promptToArtifactChecklist":[{"requirement":"docs/GOAL.md exists and remains the running project goal/status document.","status":"partial","artifacts":["docs/GOAL.md","out/completion_audit.*"],"evidence":["docs/GOAL.md records the original work order, current generated artifacts, and the latest route blocker evidence.","out/completion_audit.* restates achieved=False and reachableCount=2."],"gaps":["The goal is not complete because the completion gate and normal progression criteria remain incomplete."]},{"requirement":"1. File inventory analysis.","status":"complete","artifacts":["docs/INVENTORY.md","docs/FORMATS.md"],"evidence":["The resource containers and extracted file classes are documented."],"gaps":[]},{"requirement":"2. Binary format estimation for containers and CNS variants.","status":"partial","artifacts":["docs/FORMATS.md","docs/CNS_FORMAT.md","tools/decode_cns.py","out/event_vm_semantics_gap.*"],"evidence":["Container formats, CNS decoding, image payloads, and field map payload layout are documented and executable.","out/event_vm_semantics_gap.* records grounded handler/text-storage evidence while keeping event/script VM execution semantics partial."],"gaps":["Some event/script/save-selector behavior is still inferred from static/runtime probes rather than fully decoded VM semantics."]},{"requirement":"3. Resource extractors for FLD/WLK/MLK/CNS.","status":"complete","artifacts":["tools/extract_fld.py","tools/extract_wlk.py","tools/extract_mlk.py","tools/decode_cns.py","tools/build_web_assets.py"],"evidence":["Generated web assets cover field maps, images, audio, battle backgrounds, text candidates, and runtime chunk data."],"gaps":[]},{"requirement":"4. Image/palette/sound viewer surface.","status":"complete","artifacts":["web/cns_rect_review.html","web/audio_review.html","web/monster_review.html","web/index.html","web/map_review.html","web/map_gallery.html","out/home_landing_browser_smoke.*","out/character_sprite_frames.*"],"evidence":["Legacy aggregate asset workbench is removed; role-specific detailed review pages expose CNS rects, maps, monsters, and audio instead.","out/home_landing_browser_smoke.* records the detailed review surface links: assetSplitRows=None, mapGallery=None, monster=None, audio=None, cnsRect=None.","The home landing browser smoke has not produced a current map-review summary report.","Browser review pages and the runtime can display maps, sprites, extracted audio-backed effects, battle backgrounds, and dialogue/battle candidates."],"gaps":[]},{"requirement":"5. Original Hwanse2.exe execution-flow analysis.","status":"partial","artifacts":["out/directdraw_flow.*","docs/DIRECTINPUT_NOTES.md","out/runtime_movement.*","out/event_vm_semantics_gap.*","out/route_promotion_gate.*","out/runtime_trace_feasibility.*","out/savedata_slot_scan.*",".gitignore","SAVEDATA/README.md","SaveData/README.md","tools/refresh_savedata_route_proof.py"],"evidence":["DirectDraw, DirectInput, timing, movement, collision, sprite frame, save path, selected-pointer, route gate, and many opcode contexts are documented.","SAVEDATA/README.md and SaveData/README.md document the captured save intake names, drag/drop browser path, required selector/pointer bytes, --search-root checks, route proof handoff link, one-command refresh wrapper, and synthetic diagnostic exclusion for the current blocker.","tools/refresh_savedata_route_proof.py refreshes out/savedata_slot_scan.* before the real savedata evidence gap, so local SAVEDATA/SaveData slot uploads and arbitrary --search-root scans stay in the same proof chain.",".gitignore ignores captured SAVEDATA/SaveData slot contents while allowing the intake README files to remain versioned."],"gaps":["Runtime trace/watchpoint capture is blocked here, selected-root execution is unproven, and original event/battle VM execution remains incomplete."]},{"requirement":"6. Web Canvas runtime implementation.","status":"partial","artifacts":["web/index.html","out/maps_runtime.js","out/maps_runtime_chunks/*.js","tools/verify_runtime_http.py","out/map3_runtime_browser_smoke.*"],"evidence":["The runtime supports chunked map loading, walking, camera follow, mobile controls, routeAssist, savedat parsing, dialogue candidates, and prototype battle flows.","map3_09a focused runtime smoke verifies chunk load, accepted render/layout, originalLayer1Flags collision, right-step movement, and hard-blocked bump feedback."],"gaps":["Normal progression is blocked and major original gameplay systems are still partial/prototype."]},{"requirement":"7. First screen or at least one map reproduced.","status":"complete","artifacts":["web/index.html","extract_fld/title.cns","out/title_start_browser_summary.json","out/maps_runtime_chunks/map1_02b.js","out/maps_runtime_chunks/map1_01a.js"],"evidence":["out/title_start_browser_summary.* records a compact WebKit title-screen start: titleChecksum=4101021888, mapChecksum=913600737, started=map1_02b@11,12, submenuCancel=shop-buy->main->False, mobileMenuCancel=shop-buy->main->False, mobileBCancel=shop-buy->main->False, returnTitle=title menu=['start', 'playStart', 'startEncounters', 'loadSavedat', 'scanSavedat', 'sampleSavedat', 'routeAssist', 'routeGoal', 'home'] visible=['도구 선택 -', '전체 지도', '전투 탐색 켜기', '전투 선택', '전투', '임시 저장', '임시 불러오기 -', '제목'] pointerHit=26, titleSavedatRequest=title-menu parser=True, titleSavedatScan=found0/loadedFalse search=?savedatScan=1, titlePublicSavedat=flack3r-savedat2->map2_02d@5,14 selector=1:0 sampleSavedatRouteMissing=3 sampleSavedatRouteExternalInput=real-selector-2-0-save sampleSavedatMarkerMissing=3, savedTitlePublicSavedat=1:0@5,14 quickRouteMissing=3, continueTitlePublicSavedat=1:0->map2_02d@5,14 continueRouteMissing=3 label=이어하기 map2_02d 5,14 세이브 1:0, queryPlay=map2_02d->map1_02b@11,12 source=query-play-start fieldEncounter=True/0 autoSaved=True->map1_02b, playStart=map2_02d->map1_02b@11,12 fieldEncounter=True/0 autoSaved=True->map1_02b autoRoute=map2_02d, continuePlayStart=map2_02d->map1_02b@11,12 label=이어하기 map1_02b 11,12 전투 후보 map2_02d fieldEncounter=True/0, playStartNext=map2_02d->map1_01a@11,11 autoSaved=True fieldEncounter=True/0, playStartFocus=map2_02d->map1_01a@18,0 autoSaved=True fieldEncounter=True/0, playStartTarget=map2_02d->map2_02d@47,47 autoSaved=True routeTargetBlockReasons=5 routeTargetTrialOnly=trial-only: no map1_01a->map2_02d transition-review row +4 routeTargetFeedback=route-progress-feedback:후보 완료 1/1 map2_02d · trial-only: no map1_01a->map2_02d transition-review row +4 fieldEncounter=True/0, continuePlayStartTarget=map2_02d->map2_02d@47,47 label=이어하기 map2_02d 47,47 전투 후보 map2_02d fieldEncounter=True/0, playStartTargetEncounter=map2_02d@48,47 targetEncounterInput=True/{'x': 47, 'y': 47}->{'x': 48, 'y': 47} fieldEncounterVictoryCount=1 continuePlayStartTargetEncounter=map2_02d@48,47 label=이어하기 map2_02d 48,47 전투 후보 map2_02d 완료 map2_02d, playStartConfirmedInput=ArrowUp/map1_02b@11,12->map1_01a@11,11 autoSource=map-transition transitionFeedback=map-transition-feedback:맵 이동 map1_02b -> map1_01a confirmedTransitionSound=transition:../extract_wlk/07.wav:True transitionFeedbackRender=True, playStartCandidateInput=ArrowUp/map1_01a@18,0->map2_02d@47,47 autoSource=route-candidate transitionFeedback=route-candidate-feedback:후보 이동 map1_01a -> map2_02d · trial-only: no map1_01a->map2_02d transition-review row +4 candidateTransitionSound=transition:../extract_wlk/07.wav:True transitionFeedbackRender=True, continuePlayStartInput=map2_02d->map2_02d@47,47 label=이어하기 map2_02d 47,47 전투 후보 map2_02d, continue=map1_02b@11,12 label=이어하기 map1_02b 11,12, itemUseObjective=후보 도구 완료 map1_02b/완료 알림 확인 itemFeedback=inventory-item-use:herb:약초 HP +12 itemFeedbackRender=True itemFeedbackSound=item itemFeedbackSoundSrc=../extract_wlk/11.wav itemFeedbackSoundPlayed=True itemNoticeFeedback=inventory-item-completion-notice-feedback:도구 사용 완료 1/1 itemNoticeFeedbackRender=True itemNoticeSound=menuConfirm:../extract_wlk/04.wav:True itemFailFeedback=inventory-item-failed-feedback:herb:약초 대상 없음 itemFailFeedbackRender=True statusFailFeedback=inventory-item-failed-feedback:item_2:해독초 회복 대상 없음 statusFailFeedbackRender=True itemSoundItemCount=1 action=item-use-completion-notice active=item-use-complete:map1_02b notice=item-use-complete:map1_02b completion=약초:24->36, itemUseContinue=hp36/36/herb0/progress1 quickSaveFeedback=title-start-smoke-quick-save-feedback:임시 저장 map1_02b 11,12 quickSaveFeedbackRender=True quickSaveFeedbackSound=menuConfirm:../extract_wlk/04.wav:True quickLoadFeedback=title-continue-feedback:임시 불러오기 map1_02b 11,12 quickLoadFeedbackRender=True quickLoadFeedbackSound=menuConfirm:../extract_wlk/04.wav:True objective=후보 도구 완료 map1_02b/완료 알림 확인 action=item-use-completion-notice active=item-use-complete:map1_02b notice=item-use-complete:map1_02b completion=약초:1->0, encounterStart=map1_02b@11,12 fieldEncounter=True/0 modeAutoSource=field-encounter-enable modeFeedback=field-encounter-enable-feedback:전투 탐색 켬 0/6 modeAutoFeedback=field-encounter-enable-feedback:전투 탐색 켬 0/6 modeFeedbackRender=True stepAutoSource=field-encounter-step stepInput=True/{'x': 11, 'y': 12}->{'x': 12, 'y': 12} encounterFeedback=field-encounter-step-feedback:전투 탐색 1/6 encounterFeedbackRender=True encounterFeedbackSound=step:../extract_wlk/00.wav:True savedFieldEncounter=True/1, continueEncounter=map1_02b@12,12 label=이어하기 map1_02b 12,12 전투 fieldEncounter=True/1, disableAutoSource=field-encounter-disable disableFeedback=field-encounter-disable-feedback:전투 탐색 끔 1/6 disableAutoFeedback=field-encounter-disable-feedback:전투 탐색 끔 1/6 disableFeedbackRender=True continueDisabledEncounter=map1_02b@12,12 label=이어하기 map1_02b 12,12 fieldEncounter=False/0, routeAssistMenu=map1_02b@11,12, titleRouteGoal=map2_18d->map1_02b@11,12, continueRouteGoal=map2_18d->map1_02b@11,12 label=이어하기 map1_02b 11,12 후보 map2_18d, routeAssist=map1_02b@11,12 goal=map2_02d.","The browser runtime starts on a confirmed field-map route and renders accepted map reviews for all 174 maps."],"gaps":[]},{"requirement":"8. Input, movement, dialogue, battle, and related gameplay expansion.","status":"partial","artifacts":["out/runtime_movement.*","out/event_dialogue_blocks_runtime.js","out/event_battle_gap_audit.*","tools/verify_mobile_runtime_controls.py","tools/verify_mobile_browser_controls.py"],"evidence":["Movement/input, candidate dialogue playback, and prototype battle/item/status/reward flows are implemented and smoke-tested."],"gaps":["Dialogue is candidate/debug playback, battle entry/enemy/formula/reward/story flags are not original-system complete, and full non-party object/script behavior remains unresolved."]},{"requirement":"Primary route deliverable: identify non-graphic map-progression data and promote only proven transitions.","status":"partial","artifacts":["out/playable_progress.*","out/route_guide_browser_summary.json","out/transition_reviews.*","out/transition_review_shortlist_audit.*","out/route_blocker_evidence_matrix.*","out/route_promotion_gate.*"],"evidence":["Confirmed reachable maps from title start are 2: map1_02b, map1_01a.","Confirmed route blockers: 1.","map1_02b -> map1_01a is confirmed; map1_01a -> map2_02d remains routeAssist/debug-only.","route_promotion_gate hard missing evidence: strict source coordinate,tile hotspot confirmation,selected-root execution ref,real selector 2:0 captured savedata,runtime trace/equivalent selected-root proof; promotionStatus=blocked.","transition_review_shortlist_audit keeps next review candidates manual-only: rows=24, patchPreviewFileMatches=0/24, normalRoutePatchPreviewPromotions=0/24, promotionStatus=not-auto-confirmed.","out/route_guide_browser_summary.json records a compact WebKit route-guide run for out/web_playtest_route.html: routeGoalLinks=25, savedatScanLinks=2, runtime=map1_02b->map2_18d routeAssist, waypoint=map1_02b->map1_01a 11,12 rendered=True browserRouteAssistWaypointImplemented=True originalRoutePromotionImplemented=False, waypointPrompt=Enter -> 다음 map1_01a promptImplemented=True, waypointEnter=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint-action runtime=map1_01a sound=menuConfirm:route-waypoint-action:True, waypointMobileAction=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint-action runtime=map1_01a sound=menuConfirm:route-waypoint-action:True, waypointAction=route-assist-waypoint-action:map1_02b->map1_01a handled=True input=route-waypoint, waypointRuntime=map1_01a routeAutoSave=1, routeControl=route-next:map1_01a sound=menuConfirm:route-waypoint:True, waypointGuide=map1_01a->map2_02d direction=북동 distance=18칸 blocker=trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence blockReasons=5 missingEvidence=5 externalProofInputs=3 handoff=blocked goalChecklist=goal_completion_checklist.html strictHotspotChecklist=4/4/selector-only-scene-list-no-strict-hotspot lineRendered=True hud=길 다음 map2_02d 북동 18칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence browserRouteAssistWaypointGuideImplemented=True, waypointNudgePrompt=목표 -> 길 안내 map2_02d 북동 18칸 · trial-only: no map1_01a->map2_02d transition-review row +4 blockReasons=5 missingEvidence=5 promptImplemented=True, waypointClickNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=route-waypoint queued=True to=11,10 distance=17칸 externalProofInputs=3 hud=길 다음 map2_02d 북동 17칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence sound=step:route-waypoint:True browserRouteAssistWaypointNudgeImplemented=True, waypointNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=keyboard queued=True from=11,11 to=11,10 distance=17칸 hud=길 다음 map2_02d 북동 17칸 trial-only: no map1_01a->map2_02d transition-review row; no strict map1_01a event transition; coordinate refs are non-promotable; variant coordinate scan found no strict source coordinate; tile signature matches only as geometry/tile evidence sound=step:keyboard:True browserRouteAssistWaypointNudgeImplemented=True, waypointToolbarNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=objective-action-button queued=True to=11,10 distance=17칸 sound=step:objective-action-button:True, waypointMobileNudge=route-assist-waypoint-nudge:map1_01a->map2_02d input=virtual-objective-button queued=True to=11,10 distance=17칸 sound=step:virtual-objective-button:True browserRouteAssistWaypointNudgeImplemented=True, waypointFollow=keyboard steps=18 arrived=True to=18,0 guide=도착, waypointFollowNext=keyboard action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:keyboard:True control=None:None, waypointToolbarFollow=objective-action-button steps=1 arrived=True to=18,0 guide=도착, waypointToolbarFollowNext=objective-action-button action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:objective-action-button:True control=None:None, waypointMobileFollow=virtual-objective-button steps=1 arrived=True to=18,0 guide=도착, waypointMobileFollowNext=virtual-objective-button action=route-next runtime=map2_02d routeGoal=map2_18d sound=menuConfirm:virtual-objective-button:True control=None:None."],"gaps":["map1_01a -> map2_02d lacks strict source coordinate/tile hotspot, real selector 2:0 save, selected-root execution proof, runtime trace/equivalent proof, and selector-merge/control-flow proof."]},{"requirement":"Required validation commands/gates.","status":"partial","artifacts":["tools/verify_web_assets.py","tools/scan_savedata_slots.py","tools/refresh_savedata_route_proof.py","out/savedata_slot_scan.*","out/route_promotion_gate.*","out/completion_audit.*"],"evidence":["tools/verify_web_assets.py verifies the generated web assets and explicitly checks completion_audit achieved=false.","tools/verify_web_assets.py also checks the savedata intake README markers, refresh wrapper, slot-scan refresh command, and .gitignore slot guardrails so the local captured-save handoff path remains documented without tracking uploaded saves.","out/route_promotion_gate.* keeps every hard route-promotion gate failed for the current blocker."],"gaps":["A green verifier is not treated as completion because it confirms the known blocked state instead of full playability."]}]}