class UInt256 implements UInt256Value<UInt256> {

  @Override
  public UInt256 multiply(UInt256 value) {
    if (isZero() || value.isZero()) {
      return ZERO;
    }
    if (value.equals(UInt256.ONE)) {
      return this;
    }
    if (this.equals(UInt256.ONE)) {
      return value;
    }
    return multiply(this.ints, value.ints);
  }

  private  UInt256(Bytes32 bytes);
  private  UInt256(long value);
  private  UInt256(int[] ints);

}