%------------------------------------------------------------------------------
% File : Zipperpin---2.1.9999
% Problem : SYN193-10 : TPTP v9.2.0. Released v7.3.0.
% Transfm : none
% Format : tptp:raw
% Command : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.2ZwmjSGVox true
% Computer : n012.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 : Thu Oct 2 05:04:12 PM UTC 2025
% Result : Unsatisfiable 4.34s 1.23s
% Output : Refutation 4.34s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.12 % Problem : SYN193-10 : TPTP v9.2.0. Released v7.3.0.
% 0.07/0.13 % Command : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.2ZwmjSGVox true
% 0.14/0.34 % Computer : n012.cluster.edu
% 0.14/0.34 % Model : x86_64 x86_64
% 0.14/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.34 % Memory : 8042.1875MB
% 0.14/0.34 % OS : Linux 3.10.0-693.el7.x86_64
% 0.14/0.34 % CPULimit : 300
% 0.14/0.34 % WCLimit : 300
% 0.14/0.34 % DateTime : Wed Oct 1 13:45:53 EDT 2025
% 0.14/0.34 % CPUTime :
% 0.14/0.34 % Running portfolio for 300 s
% 0.14/0.34 % File : /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.14/0.35 % Number of cores: 8
% 0.14/0.35 % Python version: Python 3.6.8
% 0.14/0.35 % Running in FO mode
% 0.57/0.65 % Total configuration time : 435
% 0.57/0.65 % Estimated wc time : 1092
% 0.57/0.65 % Estimated cpu time (7 cpus) : 156.0
% 0.57/0.72 % /export/starexec/sandbox2/solver/bin/fo/fo6_bce.sh running for 75s
% 0.57/0.75 % /export/starexec/sandbox2/solver/bin/fo/fo1_av.sh running for 75s
% 0.57/0.75 % /export/starexec/sandbox2/solver/bin/fo/fo3_bce.sh running for 75s
% 0.57/0.76 % /export/starexec/sandbox2/solver/bin/fo/fo7.sh running for 63s
% 0.57/0.77 % /export/starexec/sandbox2/solver/bin/fo/fo13.sh running for 50s
% 0.57/0.77 % /export/starexec/sandbox2/solver/bin/fo/fo5.sh running for 50s
% 0.57/0.77 % /export/starexec/sandbox2/solver/bin/fo/fo4.sh running for 50s
% 0.57/0.81 % /export/starexec/sandbox2/solver/bin/fo/fo1_lcnf.sh running for 50s
% 4.34/1.23 % Solved by fo/fo3_bce.sh.
% 4.34/1.23 % BCE start: 295
% 4.34/1.23 % BCE eliminated: 0
% 4.34/1.23 % PE start: 295
% 4.34/1.23 logic: eq
% 4.34/1.23 % PE eliminated: 0
% 4.34/1.23 % done 1026 iterations in 0.465s
% 4.34/1.23 % SZS status Theorem for '/export/starexec/sandbox2/benchmark/theBenchmark.p'
% 4.34/1.23 % SZS output start Refutation
% 4.34/1.23 thf(k0_type, type, k0: $i > $i).
% 4.34/1.23 thf(q3_type, type, q3: $i > $i > $i).
% 4.34/1.23 thf(d_type, type, d: $i).
% 4.34/1.23 thf(e_type, type, e: $i).
% 4.34/1.23 thf(true_type, type, true: $i).
% 4.34/1.23 thf(m1_type, type, m1: $i > $i > $i > $i).
% 4.34/1.23 thf(c_type, type, c: $i).
% 4.34/1.23 thf(n0_type, type, n0: $i > $i > $i).
% 4.34/1.23 thf(r4_type, type, r4: $i > $i).
% 4.34/1.23 thf(n3_type, type, n3: $i > $i).
% 4.34/1.23 thf(ifeq_type, type, ifeq: $i > $i > $i > $i > $i).
% 4.34/1.23 thf(q2_type, type, q2: $i > $i > $i > $i).
% 4.34/1.23 thf(n1_type, type, n1: $i > $i > $i > $i).
% 4.34/1.23 thf(r0_type, type, r0: $i > $i).
% 4.34/1.23 thf(k1_type, type, k1: $i > $i).
% 4.34/1.23 thf(b_type, type, b: $i).
% 4.34/1.23 thf(p0_type, type, p0: $i > $i > $i).
% 4.34/1.23 thf(p2_type, type, p2: $i > $i > $i > $i).
% 4.34/1.23 thf(rule_012, axiom,
% 4.34/1.23 (( ifeq @ ( r0 @ e ) @ true @ ( m1 @ e @ e @ e ) @ true ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl50, plain,
% 4.34/1.23 (((ifeq @ (r0 @ e) @ true @ (m1 @ e @ e @ e) @ true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_012])).
% 4.34/1.23 thf(axiom_13, axiom, (( r0 @ e ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl13, plain, (((r0 @ e) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_13])).
% 4.34/1.23 thf(ifeq_axiom, axiom, (( ifeq @ A @ A @ B @ C ) = ( B ))).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl426, plain, (((m1 @ e @ e @ e) = (true))),
% 4.34/1.23 inference('demod', [status(thm)],
% 4.34/1.23 [zip_derived_cl50, zip_derived_cl13, zip_derived_cl0])).
% 4.34/1.23 thf(rule_046, axiom,
% 4.34/1.23 (( ifeq @
% 4.34/1.23 ( m1 @ B @ C @ A ) @ true @
% 4.34/1.23 ( ifeq @ ( k0 @ B ) @ true @ ( n1 @ A @ A @ A ) @ true ) @ true ) =
% 4.34/1.23 ( true ))).
% 4.34/1.23 thf(zip_derived_cl84, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]:
% 4.34/1.23 ((ifeq @ (m1 @ X0 @ X1 @ X2) @ true @
% 4.34/1.23 (ifeq @ (k0 @ X0) @ true @ (n1 @ X2 @ X2 @ X2) @ true) @ true)
% 4.34/1.23 = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_046])).
% 4.34/1.23 thf(zip_derived_cl1127, plain,
% 4.34/1.23 (((ifeq @ true @ true @
% 4.34/1.23 (ifeq @ (k0 @ e) @ true @ (n1 @ e @ e @ e) @ true) @ true) = (
% 4.34/1.23 true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl426, zip_derived_cl84])).
% 4.34/1.23 thf(axiom_28, axiom, (( k0 @ e ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl28, plain, (((k0 @ e) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_28])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl1134, plain, (((n1 @ e @ e @ e) = (true))),
% 4.34/1.23 inference('demod', [status(thm)],
% 4.34/1.23 [zip_derived_cl1127, zip_derived_cl28, zip_derived_cl0,
% 4.34/1.23 zip_derived_cl0])).
% 4.34/1.23 thf(rule_179, axiom,
% 4.34/1.23 (( ifeq @
% 4.34/1.23 ( n1 @ J @ J @ A ) @ true @
% 4.34/1.23 ( ifeq @ ( k1 @ A ) @ true @ ( q2 @ J @ J @ J ) @ true ) @ true ) =
% 4.34/1.23 ( true ))).
% 4.34/1.23 thf(zip_derived_cl212, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i]:
% 4.34/1.23 ((ifeq @ (n1 @ X0 @ X0 @ X1) @ true @
% 4.34/1.23 (ifeq @ (k1 @ X1) @ true @ (q2 @ X0 @ X0 @ X0) @ true) @ true)
% 4.34/1.23 = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_179])).
% 4.34/1.23 thf(zip_derived_cl1355, plain,
% 4.34/1.23 (((ifeq @ true @ true @
% 4.34/1.23 (ifeq @ (k1 @ e) @ true @ (q2 @ e @ e @ e) @ true) @ true) = (
% 4.34/1.23 true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl1134, zip_derived_cl212])).
% 4.34/1.23 thf(axiom_3, axiom, (( n0 @ d @ e ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl3, plain, (((n0 @ d @ e) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_3])).
% 4.34/1.23 thf(rule_001, axiom,
% 4.34/1.23 (( ifeq @ ( n0 @ J @ I ) @ true @ ( k1 @ I ) @ true ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl39, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i]:
% 4.34/1.23 ((ifeq @ (n0 @ X0 @ X1) @ true @ (k1 @ X1) @ true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_001])).
% 4.34/1.23 thf(zip_derived_cl295, plain,
% 4.34/1.23 (((ifeq @ true @ true @ (k1 @ e) @ true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl3, zip_derived_cl39])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl375, plain, (((true) = (k1 @ e))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl295, zip_derived_cl0])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl1364, plain, (((q2 @ e @ e @ e) = (true))),
% 4.34/1.23 inference('demod', [status(thm)],
% 4.34/1.23 [zip_derived_cl1355, zip_derived_cl375, zip_derived_cl0,
% 4.34/1.23 zip_derived_cl0])).
% 4.34/1.23 thf(rule_255, axiom,
% 4.34/1.23 (( ifeq @
% 4.34/1.23 ( q2 @ I @ G @ H ) @ true @
% 4.34/1.23 ( ifeq @ ( n0 @ I @ G ) @ true @ ( q3 @ G @ H ) @ true ) @ true ) =
% 4.34/1.23 ( true ))).
% 4.34/1.23 thf(zip_derived_cl255, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]:
% 4.34/1.23 ((ifeq @ (q2 @ X0 @ X1 @ X2) @ true @
% 4.34/1.23 (ifeq @ (n0 @ X0 @ X1) @ true @ (q3 @ X1 @ X2) @ true) @ true)
% 4.34/1.23 = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_255])).
% 4.34/1.23 thf(zip_derived_cl1607, plain,
% 4.34/1.23 (((ifeq @ true @ true @
% 4.34/1.23 (ifeq @ (n0 @ e @ e) @ true @ (q3 @ e @ e) @ true) @ true) = (
% 4.34/1.23 true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl1364, zip_derived_cl255])).
% 4.34/1.23 thf(axiom_30, axiom, (( n0 @ e @ e ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl30, plain, (((n0 @ e @ e) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_30])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl1613, plain, (((q3 @ e @ e) = (true))),
% 4.34/1.23 inference('demod', [status(thm)],
% 4.34/1.23 [zip_derived_cl1607, zip_derived_cl30, zip_derived_cl0,
% 4.34/1.23 zip_derived_cl0])).
% 4.34/1.23 thf(axiom_18, axiom, (( p0 @ c @ b ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl18, plain, (((p0 @ c @ b) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_18])).
% 4.34/1.23 thf(rule_298, axiom,
% 4.34/1.23 (( ifeq @
% 4.34/1.23 ( q3 @ H @ I ) @ true @
% 4.34/1.23 ( ifeq @
% 4.34/1.23 ( n3 @ G ) @ true @
% 4.34/1.23 ( ifeq @ ( p0 @ J @ G ) @ true @ ( r4 @ G ) @ true ) @ true ) @
% 4.34/1.23 true ) =
% 4.34/1.23 ( true ))).
% 4.34/1.23 thf(zip_derived_cl275, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i, X3 : $i]:
% 4.34/1.23 ((ifeq @ (q3 @ X0 @ X1) @ true @
% 4.34/1.23 (ifeq @ (n3 @ X2) @ true @
% 4.34/1.23 (ifeq @ (p0 @ X3 @ X2) @ true @ (r4 @ X2) @ true) @ true) @
% 4.34/1.23 true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_298])).
% 4.34/1.23 thf(zip_derived_cl1961, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i]:
% 4.34/1.23 ((ifeq @ (q3 @ X1 @ X0) @ true @
% 4.34/1.23 (ifeq @ (n3 @ b) @ true @ (ifeq @ true @ true @ (r4 @ b) @ true) @
% 4.34/1.23 true) @
% 4.34/1.23 true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl18, zip_derived_cl275])).
% 4.34/1.23 thf(axiom_7, axiom, (( n0 @ d @ b ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl7, plain, (((n0 @ d @ b) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [axiom_7])).
% 4.34/1.23 thf(zip_derived_cl39, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i]:
% 4.34/1.23 ((ifeq @ (n0 @ X0 @ X1) @ true @ (k1 @ X1) @ true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_001])).
% 4.34/1.23 thf(zip_derived_cl296, plain,
% 4.34/1.23 (((ifeq @ true @ true @ (k1 @ b) @ true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl7, zip_derived_cl39])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl304, plain, (((true) = (k1 @ b))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl296, zip_derived_cl0])).
% 4.34/1.23 thf(rule_159, axiom,
% 4.34/1.23 (( ifeq @ ( k1 @ A ) @ true @ ( p2 @ A @ A @ A ) @ true ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl193, plain,
% 4.34/1.23 (![X0 : $i]:
% 4.34/1.23 ((ifeq @ (k1 @ X0) @ true @ (p2 @ X0 @ X0 @ X0) @ true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_159])).
% 4.34/1.23 thf(zip_derived_cl376, plain,
% 4.34/1.23 (((ifeq @ true @ true @ (p2 @ b @ b @ b) @ true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl304, zip_derived_cl193])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl489, plain, (((true) = (p2 @ b @ b @ b))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl376, zip_derived_cl0])).
% 4.34/1.23 thf(rule_240, axiom,
% 4.34/1.23 (( ifeq @ ( p2 @ E @ F @ D ) @ true @ ( n3 @ D ) @ true ) = ( true ))).
% 4.34/1.23 thf(zip_derived_cl246, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]:
% 4.34/1.23 ((ifeq @ (p2 @ X0 @ X1 @ X2) @ true @ (n3 @ X2) @ true) = (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [rule_240])).
% 4.34/1.23 thf(zip_derived_cl492, plain,
% 4.34/1.23 (((ifeq @ true @ true @ (n3 @ b) @ true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl489, zip_derived_cl246])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl517, plain, (((true) = (n3 @ b))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl492, zip_derived_cl0])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl1965, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i]:
% 4.34/1.23 ((ifeq @ (q3 @ X1 @ X0) @ true @ (r4 @ b) @ true) = (true))),
% 4.34/1.23 inference('demod', [status(thm)],
% 4.34/1.23 [zip_derived_cl1961, zip_derived_cl517, zip_derived_cl0,
% 4.34/1.23 zip_derived_cl0])).
% 4.34/1.23 thf(zip_derived_cl4101, plain,
% 4.34/1.23 (((ifeq @ true @ true @ (r4 @ b) @ true) = (true))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl1613, zip_derived_cl1965])).
% 4.34/1.23 thf(zip_derived_cl0, plain,
% 4.34/1.23 (![X0 : $i, X1 : $i, X2 : $i]: ((ifeq @ X1 @ X1 @ X0 @ X2) = (X0))),
% 4.34/1.23 inference('cnf', [status(esa)], [ifeq_axiom])).
% 4.34/1.23 thf(zip_derived_cl4102, plain, (((true) = (r4 @ b))),
% 4.34/1.23 inference('sup+', [status(thm)], [zip_derived_cl4101, zip_derived_cl0])).
% 4.34/1.23 thf(prove_this, conjecture, (( r4 @ b ) = ( true ))).
% 4.34/1.23 thf(zf_stmt_0, negated_conjecture, (( r4 @ b ) != ( true )),
% 4.34/1.23 inference('cnf.neg', [status(esa)], [prove_this])).
% 4.34/1.23 thf(zip_derived_cl294, plain, (((r4 @ b) != (true))),
% 4.34/1.23 inference('cnf', [status(esa)], [zf_stmt_0])).
% 4.34/1.23 thf(zip_derived_cl4103, plain, ($false),
% 4.34/1.23 inference('simplify_reflect-', [status(thm)],
% 4.34/1.23 [zip_derived_cl4102, zip_derived_cl294])).
% 4.34/1.23
% 4.34/1.23 % SZS output end Refutation
% 4.34/1.23
% 4.34/1.23
% 4.34/1.23 % Terminating...
% 4.65/1.27 % Runner terminated.
% 4.65/1.28 % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------