fn EExecRA &out_prm1 in_prm1 in_prm2 Att_RAxe Sg1 Sg2 FM = ( if ((in_prm1==undefined) or (in_prm2==undefined)) then return false local p1,p2,o1,p3,d2,p4,p5,d1,p1,d2,p3,p4,p5,o1,o2 if ((in_prm1.OB=="O") and not (in_prm2.OB=="O")) then ( CreateCopy &out_prm1 in_prm1 out_prm1.FAtt=CopyAtt Att5 return true ) if ((in_prm2.OB=="O") and not(in_prm1.OB=="O")) then ( CreateCopy &out_prm1 in_prm2 out_prm1.FAtt=CopyAtt Att5 return true ) if ((in_prm1.OB=="P") and (in_prm2.OB=="P")) then ( CreateCopy &p1 in_prm1 p1.FAtt=CopyAtt in_Prm1.FAtt CreateCopy &p2 in_prm2 p2.FAtt=CopyAtt in_Prm2.FAtt EExecO0 &o1 p2 p1 Att5 Sg2 Sg1 "0" EExecPA &p3 o1 Att5 1 "0" EExecO5 &out_prm1 o1 p3 rect att_RAxe 1 1 1 "0" return true ) if ((in_prm1.OB=="D") and (in_prm2.OB=="P")) then ( CreateCopy &d1 in_prm1 d1.FAtt=CopyAtt in_prm1.FAtt CreateCopy &p1 in_prm2 p1.FAtt=CopyAtt in_prm2.FAtt EExecD0 &d2 p1 nol Att5 1 1 "0" EExecP3 &p3 &p4 d1 d2 Att5 Att5 1 1 "0" EExecO0 &out_prm1 p3 p4 att_RAxe Sg2 1 "0" return true ) if ((in_prm2.OB=="D") and (in_prm1.OB=="P")) then ( CreateCopy &d1 in_prm2 d1.FAtt=CopyAtt in_prm2.FAtt CreateCopy &p1 in_prm1 p1.FAtt=CopyAtt in_prm1.FAtt EExecD0 &d2 p1 null Att5 1 1 "0" EExecP3 &p3 &p4 d1 d2 Att5 Att5 1 1 "0" EExecO0 &out_prm1 p3 p4 att_RAxe Sg2 1 "0" return true ) if ((in_prm2.OB=="D") and (in_prm1.OB=="D")) then ( CreateCopy &d1 in_prm1 d1.FAtt=CopyAtt in_prm1.FAtt CreateCopy &d2 in_prm2 d2.FAtt=CopyAtt in_prm2.FAtt EExecP3 &p1 &p2 d1 d2 Att5 Att5 1 1 "0" EExecO0 &o1 p1 p2 Att5 Sg2 1 "0" if (IsNull o1) then ( EExecPA &p3 d1 Att5 Sg1 "0" EExecPA &p5 d2 Att5 Sg2 "0" EExecO0 &o2 p3 p5 Att5 1 1 "0" EExecO5 &o1 o2 p1 rect Att5 1 1 1 "0" ) CreateCopy &out_prm1 o1 out_prm1.FAtt=CopyAtt Att5 return true ) if (Att.Chk==1) then TOEmpty_Create &Out_Prm1 Att result=true ) -- EExecRA