updates = {
 "d0191": "SAME|0|high|iProperty lists Taman Suria, Bestari Jaya (ex-Batang Berjuntai); 117 m, 222.5k vs 220k.|true",
 "d0263": "UNSURE|3|low|Taman Mawar in Bandar Serendah; C's Rawang-labelled one 12 km away; C prices shared by namesakes.|true",
 "d0281": "SAME|1|medium|Oasis Kajang is Ekovest's Kajang-Semenyih terrace scheme (brickz: Semenyih); R point misplaced near The Oasis.|true",
 "d0317": "DIFFERENT|null|medium|Segar Courts is at Jalan Manis 1, Taman Segar KL; Segar Apartments is 1.9 km off, psf 598.|true",
 "d0605": "DIFFERENT|null|medium|Rumah Rakyat Gunung Lambak is its own low-cost scheme (brickz, median 150k); Taman Gunung Lambak is separate.|true",
 "d0635": "SAME|0|low|Exact name in Penang, 125 m, but median 968k vs 440k (2.2x); web found no other.|true",
 "d0647": "SAME|0|low|Only Taman Sungai Murni found is Benut (Pontian); price ratio 1.28; R geocoded 30 km off.|true",
 "d0899": "SAME|0|medium|Taman Cheras Indah sits on the Ampang/Cheras border, filed under Selangor by EdgeProp; 286 m.|true",
 "d0935": "PART_OF|0|medium|R is Apartment Harmoni (PJU 10/4C) inside the Damansara Damai township row; Vista is another block.|true",
 "d1037": "DIFFERENT|null|medium|R's Taman Chengal is the Temerloh-Mentakab estate; C's is a 2025 project in Bera, 21 km away.|true",
 "d1367": "SAME|0|medium|Brickz: Taman Puncak Utama, Ulu Kelang (900k) = Puncak Bukit Utama, 418 m, price 1.08.|true",
 "d1253": "SAME|0|low|Taman Bernam Jaya is the Ulu Bernam PKNS township (C mislabelled); psf 204 vs 207; R median skewed.|true",
 "d0809": "SAME|0|high|Taman Sentosa Villa Kajang is C's Sentosa Villa; brickz median 650k equals R's; C price stale.|true",
 "d0455": "SAME|1|medium|Exact resettlement-area name; brickz 2025 landed median 681k fits R's 840k; C's 120k looks stale.|true",
 "d1211": "PART_OF|0|medium|R is the Sungai Sering PPR flats (Pangsapuri Ukay Indah, 655 sf); k0 is the locality row.|true",
 # consistency adjustments
 "d0041": "SAME|0|low|Township-level Bandar Nusajaya rows; R covers condos, while C carries new-launch landed metadata.|false",
 "d0521": "SAME|0|low|Taman Mawar, Hutan Kampung Alor Setar, 107 m; C flagged new launch 2026, maybe a later phase.|false",
 "d1187": "PART_OF|0|low|Section II of Taman Bukit Rambai, 749 m; C row dated 2025 may be a newer phase.|false",
 "d0203": "SAME|0|medium|Sri Rasau flats: psf 253 identical, 195 m; k1 Pangsapuri Taman Sri Rasau may be the same block.|false",
}
lines = open("r2b05_verdicts_a.txt").read().strip().split("\n")
out = []
seen = set()
for ln in lines:
    cid = ln.split("|")[0]
    if cid in updates:
        ln = cid + "|" + updates[cid]
        seen.add(cid)
    out.append(ln)
missing = set(updates) - seen
print("updated", len(seen), "missing", missing)
open("r2b05_verdicts_b.txt", "w").write("\n".join(out) + "\n")
print(sum(1 for l in out if "PENDING" in l), "pending left")
