Problem Display
PID: 123020 (1B4nb/3Pp2r/pp2B1Nq/r1PNpp2/1Qpkp1R1/1b2R3/1P1KPP2/8 w - - 0 1)

Krizovensky, Marian

Mlynka-60 JT (Pat a Mat), 2004

1B4nb/3Pp2r/pp2B1Nq/r1PNpp2/1Qpkp1R1/1b2R3/1P1KPP2/8

#2

13 + 14


6490 yacpdb 2009

SOLUTION


  • SOUND
  • Sets
    • 1...Qxe3+
      • 2.fxe3#
    • 1...Qg7
      • 2.Rd3#
    • 1...Qf8
      • 2.Rd3#
    • 1...Qh1
      • 2.Rd3#
    • 1...Qh2
      • 2.Rd3#
    • 1...Qh4
      • 2.Rd3#
    • 1...Qh5
      • 2.Rd3#
    • 1...Qxg6
      • 2.Rd3#
    • 1...Rxc5
      • 2.Qc3#
    • 1...Rg7
      • 2.Bxe5#
    • 1...Sf6
      • 2.Bxe5#
    • 1...bxc5
      • 2.Qc3#
  • Tries
    • 1.Sc3?
      • threat
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxg6
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...fxg4
        • 2.d8Q#
        • 2.d8R#
      • 1...bxc5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg7
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf8
        • 2.Rd3#
      • 1...Qh1
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh2
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh3
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh4
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh5
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra1
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra2
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra3
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra4
        • 2.d8Q#
        • 2.d8R#
      • 1...Rb5
        • 2.d8Q#
        • 2.d8R#
      • 1...Rf7
        • 2.d8Q#
        • 2.d8R#
      • 1...Rg7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Bd1
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba2
        • 2.d8Q#
        • 2.d8R#
      • 1...Bc2
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba4
        • 2.Qxc4#
      • 1...Bf6
        • 2.d8Q#
        • 2.d8R#
      • 1...Bg7
        • 2.d8Q#
        • 2.d8R#
      • 1...Sf6
        • 2.Bxe5#
      • 1...f4
        • 2.Rxe4#
        • 2.d8Q#
        • 2.d8R#
      • 1...b5
        • 2.d8Q#
        • 2.d8R#
      • 1...Rxc5!
    • 1.Sdf4?
      • threat
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxf4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxg6
        • 2.d8Q#
        • 2.d8R#
      • 1...Rxc5
        • 2.Qc3#
      • 1...exf4
        • 2.d8Q#
        • 2.d8R#
      • 1...fxg4
        • 2.d8Q#
        • 2.d8R#
      • 1...bxc5
        • 2.Qc3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg7
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh1
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh2
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh3
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh5
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra1
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra2
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra3
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra4
        • 2.d8Q#
        • 2.d8R#
      • 1...Rb5
        • 2.d8Q#
        • 2.d8R#
      • 1...Rf7
        • 2.d8Q#
        • 2.d8R#
      • 1...Rg7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Bd1
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba2
        • 2.d8Q#
        • 2.d8R#
      • 1...Bc2
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba4
        • 2.Qxc4#
      • 1...Bf6
        • 2.d8Q#
        • 2.d8R#
      • 1...Bg7
        • 2.d8Q#
        • 2.d8R#
      • 1...Sf6
        • 2.Bxe5#
      • 1...b5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf8!
    • 1.Sf6?
      • threat
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxg6
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rxc5
        • 2.Qc3#
      • 1...Bxf6
        • 2.d8Q#
        • 2.d8R#
      • 1...Sxf6
        • 2.Bxe5#
      • 1...fxg4
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...bxc5
        • 2.Bxe5#
        • 2.Qc3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg5
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg7
        • 2.Bxe5#
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf8
        • 2.Bxe5#
        • 2.Rd3#
      • 1...Qh1
        • 2.Bxe5#
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh2
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh3
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh4
        • 2.Bxe5#
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh5
        • 2.Bxe5#
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra1
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra2
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra3
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra4
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rb5
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rf7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rg7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Bd1
        • 2.Bxe5#
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba2
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Bc2
        • 2.Bxe5#
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba4
        • 2.Bxe5#
        • 2.Qxc4#
      • 1...Bg7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...f4
        • 2.Bxe5#
        • 2.Rxe4#
        • 2.d8Q#
        • 2.d8R#
      • 1...b5
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...exf6!
    • 1.Sc7?
      • threat
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxg6
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rxc5
        • 2.Qc3#
      • 1...fxg4
        • 2.d8Q#
        • 2.d8R#
      • 1...bxc5
        • 2.Qc3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg7
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf8
        • 2.Rd3#
      • 1...Qh1
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh2
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh3
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh4
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh5
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra1
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra2
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra3
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra4
        • 2.d8Q#
        • 2.d8R#
      • 1...Rb5
        • 2.d8Q#
        • 2.d8R#
      • 1...Rf7
        • 2.d8Q#
        • 2.d8R#
      • 1...Rg7
        • 2.d8Q#
        • 2.d8R#
      • 1...Bd1
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba2
        • 2.d8Q#
        • 2.d8R#
      • 1...Bc2
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba4
        • 2.Qxc4#
      • 1...Bf6
        • 2.d8Q#
        • 2.d8R#
      • 1...Bg7
        • 2.d8Q#
        • 2.d8R#
      • 1...f4
        • 2.d8Q#
        • 2.d8R#
      • 1...b5
        • 2.d8Q#
        • 2.d8R#
      • 1...Sf6!
    • 1.Sh4?
      • threat
        • 2.Sf3#
        • 2.Sxf5#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxh4
        • 2.Rd3#
      • 1...Qxe6
        • 2.Rd3#
      • 1...fxg4
        • 2.Sf5#
      • 1...Qg5
        • 2.Sf3#
      • 1...Qf8
        • 2.Sf3#
        • 2.Rd3#
      • 1...Qh5
        • 2.Sf3#
        • 2.Rd3#
      • 1...Qf6
        • 2.Sf3#
        • 2.Rd3#
      • 1...Qg6
        • 2.Sf3#
        • 2.Rd3#
      • 1...Rf7
        • 2.Sf3#
      • 1...f4
        • 2.Sf5#
      • 1...Qf4!
    • 1.Sxe5?
      • threat
        • 2.Sf3#
        • 2.Sc6#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxe6
        • 2.Rd3#
      • 1...Rxc5
        • 2.Sf3#
        • 2.Qc3#
      • 1...fxg4
        • 2.Sc6#
      • 1...Qf4
        • 2.Sc6#
      • 1...Qh1
        • 2.Sc6#
        • 2.Rd3#
      • 1...Qh3
        • 2.Sc6#
      • 1...Ba4
        • 2.Sf3#
        • 2.Qxc4#
      • 1...f4
        • 2.Sc6#
      • 1...Bxe5!
    • 1.Bd6?
      • threat
        • 2.Qc3#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...exd6!
    • 1.d8Q?
      • threat
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Qxe3+
        • 2.Sxe3#
        • 2.fxe3#
      • 1...Rxc5
        • 2.Qc3#
      • 1...bxc5
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
        • 2.Qc3#
      • 1...Qf4
        • 2.Sc3#
        • 2.Sdxf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Qf8
        • 2.Rd3#
      • 1...Bf6
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sxb6#
        • 2.Sxf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Sf6
        • 2.Sxf6#
        • 2.Bxe5#
      • 1...f4
        • 2.Sc3#
        • 2.Sdxf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...b5
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Ba4!
    • 1.d8S?
      • threat
        • 2.Sc6#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Rxc5
        • 2.Qc3#
      • 1...Ba4!
    • 1.d8R?
      • threat
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Qxe3+
        • 2.Sxe3#
        • 2.fxe3#
      • 1...Rxc5
        • 2.Qc3#
      • 1...bxc5
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
        • 2.Qc3#
      • 1...Qf4
        • 2.Sc3#
        • 2.Sdxf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Qf8
        • 2.Rd3#
      • 1...Bf6
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sxb6#
        • 2.Sxf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Sf6
        • 2.Sxf6#
        • 2.Bxe5#
      • 1...f4
        • 2.Sc3#
        • 2.Sdxf4#
        • 2.Sxb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...b5
        • 2.Sc3#
        • 2.Sdf4#
        • 2.Sb6#
        • 2.Sf6#
        • 2.Sc7#
        • 2.Sdxe7#
      • 1...Ba4!
  • Keys
    • 1.Sxb6!
      • threat
        • 2.d8Q#
        • 2.d8R#
      • 1...Qxe3+
        • 2.fxe3#
      • 1...Qxg6
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Rxc5
        • 2.Qc3#
      • 1...fxg4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf4
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg5
        • 2.d8Q#
        • 2.d8R#
      • 1...Qg7
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qf8
        • 2.Rd3#
      • 1...Qh1
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh2
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh3
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh4
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Qh5
        • 2.Rd3#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra1
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra2
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra3
        • 2.d8Q#
        • 2.d8R#
      • 1...Ra4
        • 2.d8Q#
        • 2.d8R#
      • 1...Rb5
        • 2.d8Q#
        • 2.d8R#
      • 1...Rf7
        • 2.d8Q#
        • 2.d8R#
      • 1...Rg7
        • 2.Bxe5#
        • 2.d8Q#
        • 2.d8R#
      • 1...Bd1
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba2
        • 2.d8Q#
        • 2.d8R#
      • 1...Bc2
        • 2.Qxc4#
        • 2.d8Q#
        • 2.d8R#
      • 1...Ba4
        • 2.Qxc4#
      • 1...Bf6
        • 2.d8Q#
        • 2.d8R#
      • 1...Bg7
        • 2.d8Q#
        • 2.d8R#
      • 1...Sf6
        • 2.Bxe5#
      • 1...f4
        • 2.d8Q#
        • 2.d8R#

FEATURES


  • Static
    • TYPE = THREAT
    • CHANGED MATES = 0
    • ADDED MATES = 1
    • REMOVED MATES = 8
  • Sets
    • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
    • Q(j);N_PINR(E)::R1(E)
    • Q(j);N_PINR(E),XS(K)::R1(E)
    • R(e);SBLOCK,XP(H)::QAB1(F)
    • R(l);S_CUTB(n)::B(M),XP(f)
    • S(m);S_CUTB(n)::B(M),XP(f)
    • P(i);SBLOCK,XP(H)::QAB1(F)
  • Tries
    • Try
      • S(I);
      • Threat
        • P=Q
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • P(g);XR(G)::P=Q
        • P(i);XP(H)::P=Q
        • Q(j);::P=Q
        • Q(j);N_PINR(E)::R1(E)
        • Q(j);N_PINR(E)::P=Q
        • R(e);::P=Q
        • R(e);P_PINP(A)::P=Q
        • R(l);::P=Q
        • B(a);::P=Q
        • B(a);N_GUARD::QAR1(F),XP(b)
        • B(n);::P=Q
        • S(m);S_CUTB(n)::B(M),XP(f)
        • P(i);::P=Q
      • Refutation
        • R(e);XP(H)
    • Try
      • S(I);N_SPINR(E)
      • Threat
        • P=Q
      • Vars
        • Q(j);P_PINR(E),XS(I)::P=Q
        • Q(j);XS(K)::P=Q
        • R(e);SBLOCK,XP(H)::QAB1(F)
        • P(f);XS(I)::P=Q
        • P(g);XR(G)::P=Q
        • Q(j);::P=Q
        • R(e);::P=Q
        • R(e);P_PINP(A)::P=Q
        • R(l);::P=Q
        • B(a);::P=Q
        • B(a);N_GUARD::QAR1(F),XP(b)
        • B(n);::P=Q
        • S(m);S_CUTB(n)::B(M),XP(f)
        • P(i);::P=Q
      • Refutation
        • Q(j);
    • Try
      • S(I);
      • Threat
        • DUALS(3)
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • R(e);SBLOCK,XP(H)::QAB1(F)
        • B(n);XS(I)::P=Q
        • S(m);XS(I)::B(M),XP(f)
        • Q(j);::P=Q
      • Refutation
        • P(k);XS(I)
    • Try
      • S(I);
      • Threat
        • P=Q
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • R(e);SBLOCK,XP(H)::QAB1(F)
        • P(g);XR(G)::P=Q
        • Q(j);::P=Q
        • Q(j);N_PINR(E)::R1(E)
        • Q(j);N_PINR(E)::P=Q
        • R(e);::P=Q
        • R(e);P_PINP(A)::P=Q
        • R(l);::P=Q
        • B(a);::P=Q
        • B(a);N_GUARD::QAR1(F),XP(b)
        • B(n);::P=Q
        • P(g);N_PINR(E)::P=Q
        • P(i);::P=Q
      • Refutation
        • S(m);
    • Try
      • S(K);
      • Threat
        • DUALS(2)
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • Q(j);N_PINR(E),XS(K)::R1(E)
        • Q(j);N_PINR(E),XB(J)::R1(E)
        • P(g);XR(G)::S(K)
        • Q(j);::S(K)
        • R(l);::S(K)
        • P(g);N_PINR(E)::S(K)
      • Refutation
        • Q(j);
    • Try
      • S(K);XP(f)
      • Threat
        • DUALS(2)
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • Q(j);N_PINR(E),XB(J)::R1(E)
        • P(g);XR(G)::S(K)
        • Q(j);::S(K)
        • Q(j);N_PINR(E)::S(K)
        • P(g);N_PINR(E)::S(K)
      • Refutation
        • B(n);XS(K)
    • Try
      • B(M);
      • Threat
        • QAB1(F)
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
      • Refutation
        • P(k);XB(M)
    • Try
      • P(L);
      • Threat
        • DUALS(6)
      • Vars
        • R(e);SBLOCK,XP(H)::QAB1(F)
        • Q(j);N_PINR(E)::R1(E)
      • Refutation
        • B(a);
    • Try
      • P(L);
      • Threat
        • S(L)
      • Vars
        • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
        • R(e);SBLOCK,XP(H)::QAB1(F)
      • Refutation
        • B(a);
    • Try
      • P(L);
      • Threat
        • DUALS(6)
      • Vars
        • R(e);SBLOCK,XP(H)::QAB1(F)
        • Q(j);N_PINR(E)::R1(E)
      • Refutation
        • B(a);
  • Actual
    • S(I);XP(i)
    • Threat
      • P=Q
    • Vars
      • Q(j);CHECK,OGATE,XR(E)::P(D),XQ(j)
      • R(e);SBLOCK,XP(H)::QAB1(F)
      • P(g);XR(G)::P=Q
      • Q(j);::P=Q
      • Q(j);N_PINR(E)::R1(E)
      • Q(j);N_PINR(E)::P=Q
      • R(e);::P=Q
      • R(e);P_PINP(A)::P=Q
      • R(l);::P=Q
      • B(a);::P=Q
      • B(a);N_GUARD::QAR1(F),XP(b)
      • B(n);::P=Q
      • S(m);S_CUTB(n)::B(M),XP(f)
      • P(g);N_PINR(E)::P=Q


Developed and maintained by Brian Stephenson.
Implemented with HTML5, MySQL, Perl (with, inter alia, CGI::Simple, HTML::Template & XML::LibXML) & CSS/Javascript (jQuery, Bootstrap & DataTables).