%------------------------------------------------------------------------------ % File : Otter---3.3 % Problem : SWV015-10 : TPTP v8.1.0. Released v7.5.0. % Transfm : none % Format : tptp:raw % Command : otter-tptp-script %s % Computer : n009.cluster.edu % Model : x86_64 x86_64 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz % Memory : 8042.1875MB % OS : Linux 3.10.0-693.el7.x86_64 % CPULimit : 300s % WCLimit : 300s % DateTime : Wed Jul 27 13:19:41 EDT 2022 % Result : Unknown 1.67s 1.89s % Output : None % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----No solution output by system %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.07/0.12 % Problem : SWV015-10 : TPTP v8.1.0. Released v7.5.0. % 0.07/0.13 % Command : otter-tptp-script %s % 0.14/0.35 % Computer : n009.cluster.edu % 0.14/0.35 % Model : x86_64 x86_64 % 0.14/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.14/0.35 % Memory : 8042.1875MB % 0.14/0.35 % OS : Linux 3.10.0-693.el7.x86_64 % 0.14/0.35 % CPULimit : 300 % 0.14/0.35 % WCLimit : 300 % 0.14/0.35 % DateTime : Wed Jul 27 06:08:51 EDT 2022 % 0.14/0.35 % CPUTime : % 1.67/1.87 ----- Otter 3.3f, August 2004 ----- % 1.67/1.87 The process was started by sandbox on n009.cluster.edu, % 1.67/1.87 Wed Jul 27 06:08:51 2022 % 1.67/1.87 The command was "./otter". The process ID is 31755. % 1.67/1.87 % 1.67/1.87 set(prolog_style_variables). % 1.67/1.87 set(auto). % 1.67/1.87 dependent: set(auto1). % 1.67/1.87 dependent: set(process_input). % 1.67/1.87 dependent: clear(print_kept). % 1.67/1.87 dependent: clear(print_new_demod). % 1.67/1.87 dependent: clear(print_back_demod). % 1.67/1.87 dependent: clear(print_back_sub). % 1.67/1.87 dependent: set(control_memory). % 1.67/1.87 dependent: assign(max_mem, 12000). % 1.67/1.87 dependent: assign(pick_given_ratio, 4). % 1.67/1.87 dependent: assign(stats_level, 1). % 1.67/1.87 dependent: assign(max_seconds, 10800). % 1.67/1.87 clear(print_given). % 1.67/1.87 % 1.67/1.87 list(usable). % 1.67/1.87 0 [] A=A. % 1.67/1.87 0 [] ife_q(A,A,B,C)=B. % 1.67/1.87 0 [] party_of_protocol(a)=true. % 1.67/1.87 0 [] message(sent(a,b,pair(a,an_a_nonce)))=true. % 1.67/1.87 0 [] a_stored(pair(b,an_a_nonce))=true. % 1.67/1.87 0 [] ife_q(a_stored(pair(A,B)),true,ife_q(message(sent(t,a,triple(encrypt(quadruple(A,B,C,D),at),E,F))),true,message(sent(a,A,pair(E,encrypt(F,C)))),true),true)=true. % 1.67/1.87 0 [] party_of_protocol(b)=true. % 1.67/1.87 0 [] fresh_to_b(an_a_nonce)=true. % 1.67/1.87 0 [] ife_q(fresh_to_b(B),true,ife_q(message(sent(A,b,pair(A,B))),true,message(sent(b,t,triple(b,generate_b_nonce(B),encrypt(triple(A,B,generate_expiration_time(B)),bt)))),true),true)=true. % 1.67/1.87 0 [] t_holds(key(at,a))=true. % 1.67/1.87 0 [] t_holds(key(bt,b))=true. % 1.67/1.87 0 [] party_of_protocol(t)=true. % 1.67/1.87 0 [] ife_q(a_nonce(D),true,ife_q(t_holds(key(F,A)),true,ife_q(t_holds(key(G,C)),true,ife_q(message(sent(A,t,triple(A,B,encrypt(triple(C,D,E),F)))),true,message(sent(t,C,triple(encrypt(quadruple(A,D,generate_key(D),E),G),encrypt(triple(C,generate_key(D),E),F),B))),true),true),true),true)=true. % 1.67/1.87 0 [] ife_q(message(sent(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(pair(A,B)),true,intruder_message(A),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(pair(A,B)),true,intruder_message(B),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(A),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(B),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(A),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(B),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(C),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(D),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(B),true,ife_q(intruder_message(A),true,intruder_message(pair(A,B)),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(C),true,ife_q(intruder_message(B),true,ife_q(intruder_message(A),true,intruder_message(triple(A,B,C)),true),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(D),true,ife_q(intruder_message(C),true,ife_q(intruder_message(B),true,ife_q(intruder_message(A),true,intruder_message(quadruple(A,B,C,D)),true),true),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_holds(key(B,C)),true,ife_q(intruder_message(encrypt(A,B)),true,ife_q(party_of_protocol(C),true,intruder_message(B),true),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(A),true,ife_q(party_of_protocol(C),true,ife_q(party_of_protocol(B),true,message(sent(B,C,A)),true),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_message(A),true,ife_q(party_of_protocol(B),true,intruder_holds(key(A,B)),true),true)=true. % 1.67/1.87 0 [] ife_q(intruder_holds(key(B,C)),true,ife_q(intruder_message(A),true,ife_q(party_of_protocol(C),true,intruder_message(encrypt(A,B)),true),true),true)=true. % 1.67/1.87 0 [] a_nonce(an_a_nonce)=true. % 1.67/1.87 0 [] a_nonce(generate_expiration_time(A))=true. % 1.67/1.87 0 [] a_nonce(generate_b_nonce(A))=true. % 1.67/1.87 0 [] tuple(a_nonce(A),a_key(A))!=tuple(true,true). % 1.67/1.87 0 [] a_key(generate_key(A))=true. % 1.67/1.87 end_of_list. % 1.67/1.87 % 1.67/1.87 SCAN INPUT: prop=0, horn=1, equality=1, symmetry=0, max_lits=1. % 1.67/1.87 % 1.67/1.87 All clauses are units, and equality is present; the % 1.67/1.87 strategy will be Knuth-Bendix with positive clauses in sos. % 1.67/1.87 % 1.67/1.87 dependent: set(knuth_bendix). % 1.67/1.87 dependent: set(anl_eq). % 1.67/1.87 dependent: set(para_from). % 1.67/1.87 dependent: set(para_into). % 1.67/1.87 dependent: clear(para_from_right). % 1.67/1.87 dependent: clear(para_into_right). % 1.67/1.87 dependent: set(para_from_vars). % 1.67/1.87 dependent: set(eq_units_both_ways). % 1.67/1.87 dependent: set(dynamic_demod_all). % 1.67/1.87 dependent: set(dynamic_demod). % 1.67/1.87 dependent: set(order_eq). % 1.67/1.87 dependent: set(back_demod). % 1.67/1.87 dependent: set(lrpo). % 1.67/1.87 % 1.67/1.87 ------------> process usable: % 1.67/1.87 ** KEPT (pick-wt=9): 1 [] tuple(a_nonce(A),a_key(A))!=tuple(true,true). % 1.67/1.87 % 1.67/1.87 ------------> process sos: % 1.67/1.87 ** KEPT (pick-wt=3): 2 [] A=A. % 1.67/1.87 ** KEPT (pick-wt=7): 3 [] ife_q(A,A,B,C)=B. % 1.67/1.87 ---> New Demodulator: 4 [new_demod,3] ife_q(A,A,B,C)=B. % 1.67/1.87 ** KEPT (pick-wt=4): 5 [] party_of_protocol(a)=true. % 1.67/1.87 ---> New Demodulator: 6 [new_demod,5] party_of_protocol(a)=true. % 1.67/1.87 ** KEPT (pick-wt=9): 7 [] message(sent(a,b,pair(a,an_a_nonce)))=true. % 1.67/1.87 ---> New Demodulator: 8 [new_demod,7] message(sent(a,b,pair(a,an_a_nonce)))=true. % 1.67/1.87 ** KEPT (pick-wt=6): 9 [] a_stored(pair(b,an_a_nonce))=true. % 1.67/1.87 ---> New Demodulator: 10 [new_demod,9] a_stored(pair(b,an_a_nonce))=true. % 1.67/1.87 ** KEPT (pick-wt=35): 11 [] ife_q(a_stored(pair(A,B)),true,ife_q(message(sent(t,a,triple(encrypt(quadruple(A,B,C,D),at),E,F))),true,message(sent(a,A,pair(E,encrypt(F,C)))),true),true)=true. % 1.67/1.87 ---> New Demodulator: 12 [new_demod,11] ife_q(a_stored(pair(A,B)),true,ife_q(message(sent(t,a,triple(encrypt(quadruple(A,B,C,D),at),E,F))),true,message(sent(a,A,pair(E,encrypt(F,C)))),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=4): 13 [] party_of_protocol(b)=true. % 1.67/1.87 ---> New Demodulator: 14 [new_demod,13] party_of_protocol(b)=true. % 1.67/1.87 ** KEPT (pick-wt=4): 15 [] fresh_to_b(an_a_nonce)=true. % 1.67/1.87 ---> New Demodulator: 16 [new_demod,15] fresh_to_b(an_a_nonce)=true. % 1.67/1.87 ** KEPT (pick-wt=32): 17 [] ife_q(fresh_to_b(A),true,ife_q(message(sent(B,b,pair(B,A))),true,message(sent(b,t,triple(b,generate_b_nonce(A),encrypt(triple(B,A,generate_expiration_time(A)),bt)))),true),true)=true. % 1.67/1.87 ---> New Demodulator: 18 [new_demod,17] ife_q(fresh_to_b(A),true,ife_q(message(sent(B,b,pair(B,A))),true,message(sent(b,t,triple(b,generate_b_nonce(A),encrypt(triple(B,A,generate_expiration_time(A)),bt)))),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=6): 19 [] t_holds(key(at,a))=true. % 1.67/1.87 ---> New Demodulator: 20 [new_demod,19] t_holds(key(at,a))=true. % 1.67/1.87 ** KEPT (pick-wt=6): 21 [] t_holds(key(bt,b))=true. % 1.67/1.87 ---> New Demodulator: 22 [new_demod,21] t_holds(key(bt,b))=true. % 1.67/1.87 ** KEPT (pick-wt=4): 23 [] party_of_protocol(t)=true. % 1.67/1.87 ---> New Demodulator: 24 [new_demod,23] party_of_protocol(t)=true. % 1.67/1.87 ** KEPT (pick-wt=58): 25 [] ife_q(a_nonce(A),true,ife_q(t_holds(key(B,C)),true,ife_q(t_holds(key(D,E)),true,ife_q(message(sent(C,t,triple(C,F,encrypt(triple(E,A,G),B)))),true,message(sent(t,E,triple(encrypt(quadruple(C,A,generate_key(A),G),D),encrypt(triple(E,generate_key(A),G),B),F))),true),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 26 [new_demod,25] ife_q(a_nonce(A),true,ife_q(t_holds(key(B,C)),true,ife_q(t_holds(key(D,E)),true,ife_q(message(sent(C,t,triple(C,F,encrypt(triple(E,A,G),B)))),true,message(sent(t,E,triple(encrypt(quadruple(C,A,generate_key(A),G),D),encrypt(triple(E,generate_key(A),G),B),F))),true),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=12): 27 [] ife_q(message(sent(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 ---> New Demodulator: 28 [new_demod,27] ife_q(message(sent(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 ** KEPT (pick-wt=11): 29 [] ife_q(intruder_message(pair(A,B)),true,intruder_message(A),true)=true. % 1.67/1.87 ---> New Demodulator: 30 [new_demod,29] ife_q(intruder_message(pair(A,B)),true,intruder_message(A),true)=true. % 1.67/1.87 ** KEPT (pick-wt=11): 31 [] ife_q(intruder_message(pair(A,B)),true,intruder_message(B),true)=true. % 1.67/1.87 ---> New Demodulator: 32 [new_demod,31] ife_q(intruder_message(pair(A,B)),true,intruder_message(B),true)=true. % 1.67/1.87 ** KEPT (pick-wt=12): 33 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(A),true)=true. % 1.67/1.87 ---> New Demodulator: 34 [new_demod,33] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(A),true)=true. % 1.67/1.87 ** KEPT (pick-wt=12): 35 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(B),true)=true. % 1.67/1.87 ---> New Demodulator: 36 [new_demod,35] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(B),true)=true. % 1.67/1.87 ** KEPT (pick-wt=12): 37 [] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 ---> New Demodulator: 38 [new_demod,37] ife_q(intruder_message(triple(A,B,C)),true,intruder_message(C),true)=true. % 1.67/1.87 ** KEPT (pick-wt=13): 39 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(A),true)=true. % 1.67/1.87 ---> New Demodulator: 40 [new_demod,39] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(A),true)=true. % 1.67/1.87 ** KEPT (pick-wt=13): 41 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(B),true)=true. % 1.67/1.87 ---> New Demodulator: 42 [new_demod,41] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(B),true)=true. % 1.67/1.87 ** KEPT (pick-wt=13): 43 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(C),true)=true. % 1.67/1.87 ---> New Demodulator: 44 [new_demod,43] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(C),true)=true. % 1.67/1.87 ** KEPT (pick-wt=13): 45 [] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(D),true)=true. % 1.67/1.87 ---> New Demodulator: 46 [new_demod,45] ife_q(intruder_message(quadruple(A,B,C,D)),true,intruder_message(D),true)=true. % 1.67/1.87 ** KEPT (pick-wt=16): 47 [] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,intruder_message(pair(B,A)),true),true)=true. % 1.67/1.87 ---> New Demodulator: 48 [new_demod,47] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,intruder_message(pair(B,A)),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=22): 49 [] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,ife_q(intruder_message(C),true,intruder_message(triple(C,B,A)),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 50 [new_demod,49] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,ife_q(intruder_message(C),true,intruder_message(triple(C,B,A)),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=28): 51 [] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,ife_q(intruder_message(C),true,ife_q(intruder_message(D),true,intruder_message(quadruple(D,C,B,A)),true),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 52 [new_demod,51] ife_q(intruder_message(A),true,ife_q(intruder_message(B),true,ife_q(intruder_message(C),true,ife_q(intruder_message(D),true,intruder_message(quadruple(D,C,B,A)),true),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=23): 53 [] ife_q(intruder_holds(key(A,B)),true,ife_q(intruder_message(encrypt(C,A)),true,ife_q(party_of_protocol(B),true,intruder_message(A),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 54 [new_demod,53] ife_q(intruder_holds(key(A,B)),true,ife_q(intruder_message(encrypt(C,A)),true,ife_q(party_of_protocol(B),true,intruder_message(A),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=22): 55 [] ife_q(intruder_message(A),true,ife_q(party_of_protocol(B),true,ife_q(party_of_protocol(C),true,message(sent(C,B,A)),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 56 [new_demod,55] ife_q(intruder_message(A),true,ife_q(party_of_protocol(B),true,ife_q(party_of_protocol(C),true,message(sent(C,B,A)),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=16): 57 [] ife_q(intruder_message(A),true,ife_q(party_of_protocol(B),true,intruder_holds(key(A,B)),true),true)=true. % 1.67/1.87 ---> New Demodulator: 58 [new_demod,57] ife_q(intruder_message(A),true,ife_q(party_of_protocol(B),true,intruder_holds(key(A,B)),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=23): 59 [] ife_q(intruder_holds(key(A,B)),true,ife_q(intruder_message(C),true,ife_q(party_of_protocol(B),true,intruder_message(encrypt(C,A)),true),true),true)=true. % 1.67/1.87 ---> New Demodulator: 60 [new_demod,59] ife_q(intruder_holds(key(A,B)),true,ife_q(intruder_message(C),true,ife_q(party_of_protocol(B),true,intruder_message(encrypt(C,A)),true),true),true)=true. % 1.67/1.87 ** KEPT (pick-wt=4): 61 [] a_nonce(an_a_nonce)=true. % 1.67/1.87 ---> New Demodulator: 62 [new_demod,61] a_nonce(an_a_nonce)=true. % 1.67/1.87 ** KEPT (pick-wt=5): 63 [] a_nonce(generate_expiration_time(A))=true. % 1.67/1.87 ---> New Demodulator: 64 [new_demod,63] a_nonce(generate_expiration_time(A))=true. % 1.67/1.87 ** KEPT (pick-wt=5): 65 [] a_nonce(generate_b_nonce(A))=true. % 1.67/1.87 ---> New Demodulator: 66 [new_demod,65] a_nonce(generate_b_nonce(A))=true. % 1.67/1.87 ** KEPT (pick-wt=5): 67 [] a_key(generate_key(A))=true. % 1.67/1.87 ---> New Demodulator: 68 [new_demod,67] a_key(generate_key(A))=true. % 1.67/1.87 Following clause subsumed by 2 during input processing: 0 [copy,2,flip.1] A=A. % 1.67/1.89 >>>> Starting back demodulation with 4. % 1.67/1.89 >>>> Starting back demodulation with 6. % 1.67/1.89 >>>> Starting back demodulation with 8. % 1.67/1.89 >>>> Starting back demodulation with 10. % 1.67/1.89 >>>> Starting back demodulation with 12. % 1.67/1.89 >>>> Starting back demodulation with 14. % 1.67/1.89 >>>> Starting back demodulation with 16. % 1.67/1.89 >>>> Starting back demodulation with 18. % 1.67/1.89 >>>> Starting back demodulation with 20. % 1.67/1.89 >>>> Starting back demodulation with 22. % 1.67/1.89 >>>> Starting back demodulation with 24. % 1.67/1.89 >>>> Starting back demodulation with 26. % 1.67/1.89 >>>> Starting back demodulation with 28. % 1.67/1.89 >>>> Starting back demodulation with 30. % 1.67/1.89 >>>> Starting back demodulation with 32. % 1.67/1.89 >>>> Starting back demodulation with 34. % 1.67/1.89 >>>> Starting back demodulation with 36. % 1.67/1.89 >>>> Starting back demodulation with 38. % 1.67/1.89 >>>> Starting back demodulation with 40. % 1.67/1.89 >>>> Starting back demodulation with 42. % 1.67/1.89 >>>> Starting back demodulation with 44. % 1.67/1.89 >>>> Starting back demodulation with 46. % 1.67/1.89 >>>> Starting back demodulation with 48. % 1.67/1.89 >>>> Starting back demodulation with 50. % 1.67/1.89 >>>> Starting back demodulation with 52. % 1.67/1.89 >>>> Starting back demodulation with 54. % 1.67/1.89 >>>> Starting back demodulation with 56. % 1.67/1.89 >>>> Starting back demodulation with 58. % 1.67/1.89 >>>> Starting back demodulation with 60. % 1.67/1.89 >>>> Starting back demodulation with 62. % 1.67/1.89 >>>> Starting back demodulation with 64. % 1.67/1.89 >>>> Starting back demodulation with 66. % 1.67/1.89 >>>> Starting back demodulation with 68. % 1.67/1.89 % 1.67/1.89 ======= end of input processing ======= % 1.67/1.89 % 1.67/1.89 =========== start of search =========== % 1.67/1.89 % 1.67/1.89 % 1.67/1.89 Resetting weight limit to 13. % 1.67/1.89 % 1.67/1.89 % 1.67/1.89 Resetting weight limit to 13. % 1.67/1.89 % 1.67/1.89 sos_size=26 % 1.67/1.89 % 1.67/1.89 % 1.67/1.89 Resetting weight limit to 10. % 1.67/1.89 % 1.67/1.89 % 1.67/1.89 Resetting weight limit to 10. % 1.67/1.89 % 1.67/1.89 sos_size=67 % 1.67/1.89 % 1.67/1.89 Search stopped because sos empty. % 1.67/1.89 % 1.67/1.89 % 1.67/1.89 Search stopped because sos empty. % 1.67/1.89 % 1.67/1.89 ============ end of search ============ % 1.67/1.89 % 1.67/1.89 -------------- statistics ------------- % 1.67/1.89 clauses given 216 % 1.67/1.89 clauses generated 5326 % 1.67/1.89 clauses kept 217 % 1.67/1.89 clauses forward subsumed 1514 % 1.67/1.89 clauses back subsumed 0 % 1.67/1.89 Kbytes malloced 6835 % 1.67/1.89 % 1.67/1.89 ----------- times (seconds) ----------- % 1.67/1.89 user CPU time 0.02 (0 hr, 0 min, 0 sec) % 1.67/1.89 system CPU time 0.00 (0 hr, 0 min, 0 sec) % 1.67/1.89 wall-clock time 1 (0 hr, 0 min, 1 sec) % 1.67/1.89 % 1.67/1.89 Process 31755 finished Wed Jul 27 06:08:52 2022 % 1.67/1.89 Otter interrupted % 1.67/1.89 PROOF NOT FOUND %------------------------------------------------------------------------------