@NonNull
	private static ECPoint sumOfTwoMultiplies(@NonNull final ECPoint ptP,
			@NonNull final BigInteger k, @NonNull final ECPoint ptQ,
			@NonNull final BigInteger l) {

		final int m = Math.max(k.bitLength(), l.bitLength());
		final ECPoint z = ptP.add(ptQ);
		ECPoint r = O;

		for (int i = m - 1; i >= 0; --i) {
			r = r.twice();

			if (k.testBit(i)) {
				if (l.testBit(i)) {
					r = r.add(z);
				} else {
					r = r.add(ptP);
				}
			} else {
				if (l.testBit(i)) {
					r = r.add(ptQ);
				}
			}
		}

		return r;
	}