from research import *
s=begin(1273,'Specify the Rounded genealogy to inverse-path interface','Which source roles may the newMoses path supply toFile52c?',{},['C1234','File52c §§2.1,3.3–3.4','inherited/model/completed_path_inputs.json'])
by={r['name']:r['rounded_BC'] for r in json.loads((ROOT/'model/Moses_MT_complete_path.json').read_text())['rows']};nodes={'Nativity':{'BC':6,'role':'heldsourceanchor','source':'File52c'},'Conquest':{'BC':1406,'role':'sourceeventanchor','source':'File52c'},'Flood':{'BC':2456,'role':'selectedRoundedevent','source':'File52c'},'Noah':{'BC':by['Noah'],'role':'sourcebirth','source':'MosesMTpath'},'Creation':{'BC':by['Adam'],'role':'sourcehead','source':'MosesMTpath'},'Arphaxad':{'BC':by['Arphaxad'],'role':'sourcebirth','source':'MosesMTpath'}}
a=artifact('model/Moses_inverse_interface_nodes.json',json.dumps({'nodes':nodes,'primary_source_hash':hashlib.sha256((ROOT/'evidence/sources/File52c_latest.md').read_bytes()).hexdigest(),'scope':'ProjectiontoalreadyadmittedMTregularoriginalpaths only; noSPcaptransfer, nonewroute, nosecondinverse.','collision':'FloodandArphaxadshare2456 butretaindifferentroles.'},indent=2)+'\n')
finish(s,{'interface_nodes':a},'The newgenealogy suppliesCreation4106 andNoah3056 to theadmittedFile52c interface. Nativity,Conquest andFlood retain their independentlyspecifiedeventroles; Arphaxad’s equal2456 coordinate doesnotreplaceFlood.','Generate allthreeadmittedoriginalcomponentwords from theseorderednodes.',{'nodes':by['Adam']==4106 and by['Noah']==3056 and by['Arphaxad']==2456,'52c_pinned':hashlib.sha256((ROOT/'evidence/sources/File52c_latest.md').read_bytes()).hexdigest()=='a5ea84562101158b60d0cf296765d6eff38e7a2abda4e74ad1b353dfd13b9530'})
