3.10/3.18 WORST_CASE(?,O(n^1)) 3.10/3.18 3.10/3.18 Preprocessing Cost Relations 3.10/3.18 ===================================== 3.10/3.18 3.10/3.18 #### Computed strongly connected components 3.10/3.18 0. recursive : [f1/57] 3.10/3.18 1. non_recursive : [exit_location/1] 3.10/3.18 2. non_recursive : [f4/55] 3.10/3.18 3. recursive : [f7/42] 3.10/3.18 4. non_recursive : [f7_loop_cont/56] 3.10/3.18 5. non_recursive : [f1_loop_cont/56] 3.10/3.18 6. non_recursive : [f3/55] 3.10/3.18 3.10/3.18 #### Obtained direct recursion through partial evaluation 3.10/3.18 0. SCC is partially evaluated into f1/57 3.10/3.18 1. SCC is completely evaluated into other SCCs 3.10/3.18 2. SCC is completely evaluated into other SCCs 3.10/3.18 3. SCC is partially evaluated into f7/42 3.10/3.18 4. SCC is partially evaluated into f7_loop_cont/56 3.10/3.18 5. SCC is partially evaluated into f1_loop_cont/56 3.10/3.18 6. SCC is partially evaluated into f3/55 3.10/3.18 3.10/3.18 Control-Flow Refinement of Cost Relations 3.10/3.18 ===================================== 3.10/3.18 3.10/3.18 ### Specialization of cost equations f1/57 3.10/3.18 * CE 8 is refined into CE [20] 3.10/3.18 * CE 7 is refined into CE [21] 3.10/3.18 * CE 6 is refined into CE [22] 3.10/3.18 * CE 5 is refined into CE [23] 3.10/3.18 * CE 4 is refined into CE [24] 3.10/3.18 3.10/3.18 3.10/3.18 ### Cost equations --> "Loop" of f1/57 3.10/3.18 * CEs [24] --> Loop 20 3.10/3.18 * CEs [20] --> Loop 21 3.10/3.18 * CEs [21] --> Loop 22 3.10/3.18 * CEs [22] --> Loop 23 3.10/3.18 * CEs [23] --> Loop 24 3.10/3.18 3.10/3.18 ### Ranking functions of CR f1(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,C1,F1,S1,T1,U1,W1,X1,Y1,Z1,A2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3) 3.10/3.18 * RF of phase [20]: [A-B,-B+N] 3.10/3.18 3.10/3.18 #### Partial ranking functions of CR f1(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,C1,F1,S1,T1,U1,W1,X1,Y1,Z1,A2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3) 3.10/3.18 * Partial RF of phase [20]: 3.10/3.18 - RF of loop [20:1]: 3.10/3.18 A-B 3.10/3.18 -B+N 3.10/3.18 3.10/3.18 3.10/3.18 ### Specialization of cost equations f7/42 3.10/3.18 * CE 17 is refined into CE [25] 3.10/3.18 * CE 14 is refined into CE [26] 3.10/3.18 * CE 16 is refined into CE [27] 3.10/3.18 * CE 13 is refined into CE [28] 3.10/3.18 * CE 15 is refined into CE [29] 3.10/3.18 * CE 12 is refined into CE [30] 3.10/3.18 3.10/3.18 3.10/3.18 ### Cost equations --> "Loop" of f7/42 3.10/3.18 * CEs [30] --> Loop 25 3.10/3.18 * CEs [25] --> Loop 26 3.10/3.18 * CEs [26] --> Loop 27 3.10/3.18 * CEs [27] --> Loop 28 3.10/3.18 * CEs [28] --> Loop 29 3.10/3.18 * CEs [29] --> Loop 30 3.10/3.18 3.10/3.18 ### Ranking functions of CR f7(I,J,K,M,N,O,P,Q,R,S,V,C1,E1,F1,K1,L1,M1,N1,O1,P1,Q1,R1,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3) 3.10/3.18 * RF of phase [25]: [E1+1] 3.10/3.18 3.10/3.18 #### Partial ranking functions of CR f7(I,J,K,M,N,O,P,Q,R,S,V,C1,E1,F1,K1,L1,M1,N1,O1,P1,Q1,R1,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3) 3.10/3.18 * Partial RF of phase [25]: 3.10/3.18 - RF of loop [25:1]: 3.10/3.18 E1+1 3.10/3.18 3.10/3.18 3.10/3.18 ### Specialization of cost equations f7_loop_cont/56 3.10/3.18 * CE 19 is refined into CE [31] 3.10/3.18 * CE 18 is refined into CE [32] 3.10/3.18 3.10/3.18 3.10/3.18 ### Cost equations --> "Loop" of f7_loop_cont/56 3.10/3.18 * CEs [31] --> Loop 31 3.10/3.18 * CEs [32] --> Loop 32 3.10/3.18 3.10/3.18 ### Ranking functions of CR f7_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2) 3.10/3.18 3.10/3.18 #### Partial ranking functions of CR f7_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2) 3.10/3.18 3.10/3.18 3.10/3.18 ### Specialization of cost equations f1_loop_cont/56 3.10/3.18 * CE 11 is refined into CE [33,34,35,36,37,38,39,40,41,42] 3.10/3.18 * CE 10 is refined into CE [43] 3.10/3.18 * CE 9 is refined into CE [44] 3.10/3.18 3.10/3.18 3.10/3.18 ### Cost equations --> "Loop" of f1_loop_cont/56 3.10/3.18 * CEs [42] --> Loop 33 3.10/3.18 * CEs [37,38,39,40] --> Loop 34 3.10/3.18 * CEs [33,34,35,36] --> Loop 35 3.10/3.18 * CEs [41] --> Loop 36 3.10/3.18 * CEs [43] --> Loop 37 3.10/3.18 * CEs [44] --> Loop 38 3.10/3.18 3.10/3.18 ### Ranking functions of CR f1_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2) 3.10/3.18 3.10/3.18 #### Partial ranking functions of CR f1_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2) 3.10/3.18 3.10/3.18 3.10/3.18 ### Specialization of cost equations f3/55 3.10/3.18 * CE 3 is refined into CE [45,46,47,48,49,50,51,52,53,54,55,56] 3.10/3.18 * CE 1 is refined into CE [57] 3.10/3.18 * CE 2 is refined into CE [58] 3.10/3.18 3.10/3.18 3.10/3.18 ### Cost equations --> "Loop" of f3/55 3.10/3.18 * CEs [54] --> Loop 39 3.10/3.18 * CEs [56] --> Loop 40 3.10/3.18 * CEs [55] --> Loop 41 3.10/3.18 * CEs [57] --> Loop 42 3.10/3.18 * CEs [53] --> Loop 43 3.10/3.18 * CEs [58] --> Loop 44 3.10/3.18 * CEs [49,51] --> Loop 45 3.10/3.18 * CEs [50,52] --> Loop 46 3.10/3.18 * CEs [45,47] --> Loop 47 3.10/3.18 * CEs [46,48] --> Loop 48 3.10/3.18 3.10/3.18 ### Ranking functions of CR f3(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,T2) 3.10/3.18 3.10/3.18 #### Partial ranking functions of CR f3(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,T2) 3.10/3.18 3.10/3.18 3.10/3.18 Computing Bounds 3.10/3.18 ===================================== 3.10/3.18 3.10/3.18 #### Cost of chains of f1(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,C1,F1,S1,T1,U1,W1,X1,Y1,Z1,A2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3): 3.10/3.18 * Chain [[20],24]: 1*it(20)+0 3.10/3.18 Such that:it(20) =< A-B 3.10/3.18 3.10/3.18 with precondition: [M=0,T2=4,F3=0,C=E,J=K,A=N,O=S1,A=A3+1,I=B3,J=C3,J=D3,O=H3,J=J3,I3=K3,J=L3,E3+1=Q3,I=S3,B>=2,G3>=2,A>=B+1,O>=J+1,W1>=G3] 3.10/3.18 3.10/3.18 * Chain [[20],23]: 1*it(20)+0 3.10/3.18 Such that:it(20) =< A-B 3.10/3.18 3.10/3.18 with precondition: [M=0,T2=4,F3=0,C=E,J=K,A=N,O=S1,A=A3+1,I=B3,J=C3,J=D3,O=H3,J=J3,I3=K3,J=L3,E3+1=Q3,I=S3,B>=2,G3>=2,A>=B+1,J>=O+1,W1>=G3] 3.10/3.18 3.10/3.18 * Chain [[20],22]: 1*it(20)+0 3.10/3.19 Such that:it(20) =< A-B 3.10/3.19 3.10/3.19 with precondition: [T2=2,C=E,S1=J,A=N,S1=O,A=A3+1,I=B3,K=D3,L=E3,M=F3,S=K3,W1=Q3,X1=R3,Y1=S3,Z1=T3,A2=U3,B>=2,G3>=2,A>=B+1,W1>=G3] 3.10/3.19 3.10/3.19 * Chain [[20],21]: 1*it(20)+0 3.10/3.19 Such that:it(20) =< A-B 3.10/3.19 3.10/3.19 with precondition: [T2=3,C=E,A=N,O=S1,B>=2,A>=B+1] 3.10/3.19 3.10/3.19 * Chain [24]: 0 3.10/3.19 with precondition: [M=0,T2=4,F3=0,A=B,E=C,Z2=F,A3=G,B3=H,S3=I,J=K,A=N,S1=O,J=C3,J=D3,Q3=E3+1,S1=H3,K3=I3,J=J3,J=L3,A>=2,G3>=2,S1>=J+1,W1>=G3] 3.10/3.19 3.10/3.19 * Chain [23]: 0 3.10/3.19 with precondition: [M=0,T2=4,F3=0,A=B,E=C,Z2=F,A3=G,B3=H,S3=I,J=K,A=N,S1=O,J=C3,J=D3,Q3=E3+1,S1=H3,K3=I3,J=J3,J=L3,A>=2,G3>=2,J>=S1+1,W1>=G3] 3.10/3.19 3.10/3.19 * Chain [22]: 0 3.10/3.19 with precondition: [T2=2,A=B,E=C,Z2=F,A3=G,B3=H,O=J,D3=K,E3=L,F3=M,A=N,K3=S,O=S1,R3=X1,S3=Y1,T3=Z1,U3=A2,W1=Q3,A>=2,G3>=2,W1>=G3] 3.10/3.19 3.10/3.19 * Chain [21]: 0 3.10/3.19 with precondition: [T2=3,N=A,E=C,S1=O,B>=2,N>=B] 3.10/3.19 3.10/3.19 3.10/3.19 #### Cost of chains of f7(I,J,K,M,N,O,P,Q,R,S,V,C1,E1,F1,K1,L1,M1,N1,O1,P1,Q1,R1,T2,U2,V2,W2,X2,Y2,Z2,A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3): 3.10/3.19 * Chain [[25],30]: 1*it(25)+0 3.10/3.19 Such that:it(25) =< -M+V2 3.10/3.19 3.10/3.19 with precondition: [T2=2,J=P,V=H3,I=I3,K=J3,V2=K3,M+E1=V2+D3,M+E1=V2+L3,V2>=0,W2>=2,X2>=K+1,V2>=M+1,M3>=X2+1,M+E1>=V2] 3.10/3.19 3.10/3.19 * Chain [[25],29]: 1*it(25)+0 3.10/3.19 Such that:it(25) =< -M+V2 3.10/3.19 3.10/3.19 with precondition: [T2=2,J=P,V=H3,I=I3,K=J3,V2=K3,M+E1=V2+D3,M+E1=V2+L3,V2>=0,W2>=2,X2>=K+1,V2>=M+1,X2>=M3+1,M+E1>=V2] 3.10/3.19 3.10/3.19 * Chain [[25],28]: 1*it(25)+0 3.10/3.19 Such that:it(25) =< E1-D3 3.10/3.19 3.10/3.19 with precondition: [T2=2,J=P,V=H3,I=I3,K=J3,V2=K3,M+E1=V2+D3,M+E1=V2+L3,V2>=0,W2>=2,V2>=M+1,K>=X2+1,M3>=X2+1,M+E1>=V2] 3.10/3.19 3.10/3.19 * Chain [[25],27]: 1*it(25)+0 3.10/3.19 Such that:it(25) =< E1-D3 3.10/3.19 3.10/3.19 with precondition: [T2=2,J=P,V=H3,I=I3,K=J3,V2=K3,M+E1=V2+D3,M+E1=V2+L3,V2>=0,W2>=2,V2>=M+1,K>=X2+1,X2>=M3+1,M+E1>=V2] 3.10/3.19 3.10/3.19 * Chain [[25],26]: 1*it(25)+0 3.10/3.19 Such that:it(25) =< E1+1 3.10/3.19 3.10/3.19 with precondition: [T2=3,E1>=0] 3.10/3.19 3.10/3.19 * Chain [30]: 0 3.10/3.19 with precondition: [T2=2,P=J,B3=S,F3=K1,G3=L1,H3=M1,I3=N1,J3=O1,K3=P1,L3=Q1,M=V2,E1=D3,M>=0,E1>=0,W2>=2,X2>=K+1,M3>=X2+1] 3.10/3.19 3.10/3.19 * Chain [29]: 0 3.10/3.19 with precondition: [T2=2,P=J,B3=S,F3=K1,G3=L1,H3=M1,I3=N1,J3=O1,K3=P1,L3=Q1,M=V2,E1=D3,M>=0,E1>=0,W2>=2,X2>=K+1,X2>=M3+1] 3.10/3.19 3.10/3.19 * Chain [28]: 0 3.10/3.19 with precondition: [T2=2,P=J,B3=S,F3=K1,G3=L1,H3=M1,I3=N1,J3=O1,K3=P1,L3=Q1,M=V2,E1=D3,M>=0,E1>=0,W2>=2,K>=X2+1,M3>=X2+1] 3.10/3.19 3.10/3.19 * Chain [27]: 0 3.10/3.19 with precondition: [T2=2,P=J,B3=S,F3=K1,G3=L1,H3=M1,I3=N1,J3=O1,K3=P1,L3=Q1,M=V2,E1=D3,M>=0,E1>=0,W2>=2,K>=X2+1,X2>=M3+1] 3.10/3.19 3.10/3.19 * Chain [26]: 0 3.10/3.19 with precondition: [T2=3] 3.10/3.19 3.10/3.19 3.10/3.19 #### Cost of chains of f7_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2): 3.10/3.19 * Chain [32]: 0 3.10/3.19 with precondition: [A=2] 3.10/3.19 3.10/3.19 * Chain [31]: 0 3.10/3.19 with precondition: [A=3] 3.10/3.19 3.10/3.19 3.10/3.19 #### Cost of chains of f1_loop_cont(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,C2,D2): 3.10/3.19 * Chain [38]: 0 3.10/3.19 with precondition: [A=2] 3.10/3.19 3.10/3.19 * Chain [37]: 0 3.10/3.19 with precondition: [A=3] 3.10/3.19 3.10/3.19 * Chain [36]: 0 3.10/3.19 with precondition: [A=4] 3.10/3.19 3.10/3.19 * Chain [35]: 0 3.10/3.19 with precondition: [A=4,Q=K,N>=0,F1>=0] 3.10/3.19 3.10/3.19 * Chain [34]: 4*s(1)+0 3.10/3.19 Such that:aux(1) =< F1 3.10/3.19 s(1) =< aux(1) 3.10/3.19 3.10/3.19 with precondition: [A=4,Q=K,F1>=1,N+F1>=0] 3.10/3.19 3.10/3.19 * Chain [33]: 1*s(5)+0 3.10/3.19 Such that:s(5) =< F1+1 3.10/3.19 3.10/3.19 with precondition: [A=4,F1>=0] 3.10/3.19 3.10/3.19 3.10/3.19 #### Cost of chains of f3(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,T2): 3.10/3.19 * Chain [48]: 2*s(6)+0 3.10/3.19 Such that:aux(2) =< E1+1 3.10/3.19 s(6) =< aux(2) 3.10/3.19 3.10/3.19 with precondition: [M=0,N=2,K=J,E1>=0,W1>=2] 3.10/3.19 3.10/3.19 * Chain [47]: 0 3.10/3.19 with precondition: [M=0,N=2,K=J,W1>=2] 3.10/3.19 3.10/3.19 * Chain [46]: 2*s(8)+2*s(9)+0 3.10/3.19 Such that:aux(3) =< N 3.10/3.19 aux(4) =< E1+1 3.10/3.19 s(8) =< aux(3) 3.10/3.19 s(9) =< aux(4) 3.10/3.19 3.10/3.19 with precondition: [M=0,K=J,N>=3,E1>=0,W1>=2] 3.10/3.19 3.10/3.19 * Chain [45]: 2*s(12)+0 3.10/3.19 Such that:aux(5) =< N 3.10/3.19 s(12) =< aux(5) 3.10/3.19 3.10/3.19 with precondition: [M=0,K=J,N>=3,W1>=2] 3.10/3.19 3.10/3.19 * Chain [44]: 0 3.10/3.19 with precondition: [N=1] 3.10/3.19 3.10/3.19 * Chain [43]: 0 3.10/3.19 with precondition: [N=2,W1>=2] 3.10/3.19 3.10/3.19 * Chain [42]: 0 3.10/3.19 with precondition: [0>=N] 3.10/3.19 3.10/3.19 * Chain [41]: 0 3.10/3.19 with precondition: [N>=2] 3.10/3.19 3.10/3.19 * Chain [40]: 1*s(14)+0 3.10/3.19 Such that:s(14) =< N 3.10/3.19 3.10/3.19 with precondition: [N>=3] 3.10/3.19 3.10/3.19 * Chain [39]: 1*s(15)+0 3.10/3.19 Such that:s(15) =< N 3.10/3.19 3.10/3.19 with precondition: [N>=3,W1>=2] 3.10/3.19 3.10/3.19 3.10/3.19 Closed-form bounds of f3(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,T2): 3.10/3.19 ------------------------------------- 3.10/3.19 * Chain [48] with precondition: [M=0,N=2,K=J,E1>=0,W1>=2] 3.10/3.19 - Upper bound: 2*E1+2 3.10/3.19 - Complexity: n 3.10/3.19 * Chain [47] with precondition: [M=0,N=2,K=J,W1>=2] 3.10/3.19 - Upper bound: 0 3.10/3.19 - Complexity: constant 3.10/3.19 * Chain [46] with precondition: [M=0,K=J,N>=3,E1>=0,W1>=2] 3.10/3.19 - Upper bound: 2*N+2*E1+2 3.10/3.19 - Complexity: n 3.10/3.19 * Chain [45] with precondition: [M=0,K=J,N>=3,W1>=2] 3.10/3.19 - Upper bound: 2*N 3.10/3.19 - Complexity: n 3.10/3.19 * Chain [44] with precondition: [N=1] 3.10/3.19 - Upper bound: 0 3.10/3.19 - Complexity: constant 3.10/3.19 * Chain [43] with precondition: [N=2,W1>=2] 3.10/3.19 - Upper bound: 0 3.10/3.19 - Complexity: constant 3.10/3.19 * Chain [42] with precondition: [0>=N] 3.10/3.19 - Upper bound: 0 3.10/3.19 - Complexity: constant 3.10/3.19 * Chain [41] with precondition: [N>=2] 3.10/3.19 - Upper bound: 0 3.10/3.19 - Complexity: constant 3.10/3.19 * Chain [40] with precondition: [N>=3] 3.10/3.19 - Upper bound: N 3.10/3.19 - Complexity: n 3.10/3.19 * Chain [39] with precondition: [N>=3,W1>=2] 3.10/3.19 - Upper bound: N 3.10/3.19 - Complexity: n 3.10/3.19 3.10/3.19 ### Maximum cost of f3(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2,B2,T2): max([nat(E1+1)*2,nat(E1+1)*2+nat(N)+nat(N)]) 3.10/3.19 Asymptotic class: n 3.10/3.19 * Total analysis performed in 2836 ms. 3.10/3.19 3.18/3.29 EOF