// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
    public static int convertBytesToInt(final byte[] bytes) {
        return ((0xff & bytes[3]) << 24 |
                (0xff & bytes[2]) << 16 |
                (0xff & bytes[1]) << 8 |
                (0xff & bytes[0]) << 0
        );
    }

    public static byte[] toByteArray(int value) {
        return new byte[]{
                (byte) value,
                (byte) (value >> 8 & 0xFF),
                (byte) (value >> 16 & 0xFF),
                (byte) (value >> 24 & 0xFF)};
    }

    public static int convertBytesToUnsignedShort(final byte[] bytes) {
        return convertBytesToShort(bytes) & 0xffff;
    }

    public static short convertBytesToShort(final byte[] bytes) {
        return (short) (
                (0xff & bytes[1]) << 8 |
                        (0xff & bytes[0]) << 0);
    }

    public static String convertBytesToString(final byte[] bytes) {
        return new String(bytes).trim();
    }

// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/util/IEXByteConverter.java
import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

    public static int convertBytesToInt(final byte[] bytes) {
        return ((0xff & bytes[3]) << 24 |
                (0xff & bytes[2]) << 16 |
                (0xff & bytes[1]) << 8 |
                (0xff & bytes[0]) << 0
        );
    }

    public static byte[] toByteArray(int value) {
        return new byte[]{
                (byte) value,
                (byte) (value >> 8 & 0xFF),
                (byte) (value >> 16 & 0xFF),
                (byte) (value >> 24 & 0xFF)};
    }

    public static int convertBytesToUnsignedShort(final byte[] bytes) {
        return convertBytesToShort(bytes) & 0xffff;
    }

    public static short convertBytesToShort(final byte[] bytes) {
        return (short) (
                (0xff & bytes[1]) << 8 |
                        (0xff & bytes[0]) << 0);
    }

    public static String convertBytesToString(final byte[] bytes) {
        return new String(bytes).trim();
    }

    public static IEXPrice convertBytesToIEXPrice(final byte[] bytes) {