package com.huawei.hms.common.internal.safeparcel; import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import android.util.SparseLongArray; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; /* loaded from: classes2.dex */ public class SafeParcelReader { /* loaded from: classes2.dex */ public static class ParseException extends RuntimeException { public ParseException(String str, Parcel parcel) { super(new StringBuffer(String.valueOf(str).length() + 41).append(str).append(" Parcel: pos=").append(parcel.dataPosition()).append(" size=").append(parcel.dataSize()).toString()); } } private SafeParcelReader() { } private static void a(Parcel parcel, int i, int i2, int i3) { if (i2 == i3) { return; } String hexString = Integer.toHexString(i2); StringBuilder sb = new StringBuilder(hexString.length() + 46); sb.append("Expected size "); sb.append(i3); sb.append(" got "); sb.append(i2); sb.append(" (0x"); sb.append(hexString); sb.append(")"); throw new ParseException(sb.toString(), parcel); } private static boolean a(int i, int i2) { long j = i + i2; return j > 2147483647L || j < -2147483648L; } private static void b(Parcel parcel, int i, int i2) { int readSize = readSize(parcel, i); if (readSize == i2) { return; } String hexString = Integer.toHexString(readSize); StringBuilder sb = new StringBuilder(hexString.length() + 46); sb.append("Expected size "); sb.append(i2); sb.append(" got "); sb.append(readSize); sb.append(" (0x"); sb.append(hexString); sb.append(")"); throw new ParseException(sb.toString(), parcel); } public static BigDecimal createBigDecimal(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); byte[] createByteArray = parcel.createByteArray(); int readInt = parcel.readInt(); parcel.setDataPosition(readSize + dataPosition); return new BigDecimal(new BigInteger(createByteArray), readInt); } public static BigDecimal[] createBigDecimalArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new BigDecimal[0]; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); BigDecimal[] bigDecimalArr = new BigDecimal[readInt]; for (int i2 = 0; i2 < readInt; i2++) { bigDecimalArr[i2] = new BigDecimal(new BigInteger(parcel.createByteArray()), parcel.readInt()); } parcel.setDataPosition(dataPosition + readSize); return bigDecimalArr; } public static BigInteger createBigInteger(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); byte[] createByteArray = parcel.createByteArray(); parcel.setDataPosition(readSize + dataPosition); return new BigInteger(createByteArray); } public static BigInteger[] createBigIntegerArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new BigInteger[0]; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); BigInteger[] bigIntegerArr = new BigInteger[readInt]; for (int i2 = 0; i2 < readInt; i2++) { bigIntegerArr[i2] = new BigInteger(parcel.createByteArray()); } parcel.setDataPosition(dataPosition + readSize); return bigIntegerArr; } public static boolean[] createBooleanArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new boolean[0]; } a(parcel, readSize, dataPosition); boolean[] createBooleanArray = parcel.createBooleanArray(); parcel.setDataPosition(readSize + dataPosition); return createBooleanArray; } public static ArrayList createBooleanList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList arrayList = new ArrayList<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { arrayList.add(Boolean.valueOf(parcel.readInt() != 0)); } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static Bundle createBundle(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); Bundle readBundle = parcel.readBundle(); parcel.setDataPosition(readSize + dataPosition); return readBundle; } public static byte[] createByteArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new byte[0]; } a(parcel, readSize, dataPosition); byte[] createByteArray = parcel.createByteArray(); parcel.setDataPosition(readSize + dataPosition); return createByteArray; } public static byte[][] createByteArrayArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); byte[][] bArr = new byte[readInt]; for (int i2 = 0; i2 < readInt; i2++) { bArr[i2] = parcel.createByteArray(); } parcel.setDataPosition(dataPosition + readSize); return bArr; } public static SparseArray createByteArraySparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); SparseArray sparseArray = new SparseArray<>(readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), parcel.createByteArray()); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static char[] createCharArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new char[0]; } a(parcel, readSize, dataPosition); char[] createCharArray = parcel.createCharArray(); parcel.setDataPosition(readSize + dataPosition); return createCharArray; } public static double[] createDoubleArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new double[0]; } a(parcel, readSize, dataPosition); double[] createDoubleArray = parcel.createDoubleArray(); parcel.setDataPosition(readSize + dataPosition); return createDoubleArray; } public static ArrayList createDoubleList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList arrayList = new ArrayList<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { arrayList.add(Double.valueOf(parcel.readDouble())); } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static SparseArray createDoubleSparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseArray sparseArray = new SparseArray<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), Double.valueOf(parcel.readDouble())); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static float[] createFloatArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new float[0]; } a(parcel, readSize, dataPosition); float[] createFloatArray = parcel.createFloatArray(); parcel.setDataPosition(readSize + dataPosition); return createFloatArray; } public static ArrayList createFloatList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList arrayList = new ArrayList<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { arrayList.add(Float.valueOf(parcel.readFloat())); } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static SparseArray createFloatSparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseArray sparseArray = new SparseArray<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), Float.valueOf(parcel.readFloat())); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static IBinder[] createIBinderArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new IBinder[0]; } a(parcel, readSize, dataPosition); IBinder[] createBinderArray = parcel.createBinderArray(); parcel.setDataPosition(readSize + dataPosition); return createBinderArray; } public static ArrayList createIBinderList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList createBinderArrayList = parcel.createBinderArrayList(); parcel.setDataPosition(readSize + dataPosition); return createBinderArrayList; } public static SparseArray createIBinderSparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); SparseArray sparseArray = new SparseArray<>(readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), parcel.readStrongBinder()); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static int[] createIntArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new int[0]; } a(parcel, readSize, dataPosition); int[] createIntArray = parcel.createIntArray(); parcel.setDataPosition(readSize + dataPosition); return createIntArray; } public static ArrayList createIntegerList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList arrayList = new ArrayList<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { arrayList.add(Integer.valueOf(parcel.readInt())); } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static long[] createLongArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new long[0]; } a(parcel, readSize, dataPosition); long[] createLongArray = parcel.createLongArray(); parcel.setDataPosition(readSize + dataPosition); return createLongArray; } public static ArrayList createLongList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList arrayList = new ArrayList<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { arrayList.add(Long.valueOf(parcel.readLong())); } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static Parcel createParcel(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); Parcel obtain = Parcel.obtain(); obtain.appendFrom(parcel, dataPosition, readSize); parcel.setDataPosition(readSize + dataPosition); return obtain; } public static Parcel[] createParcelArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new Parcel[0]; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); Parcel[] parcelArr = new Parcel[readInt]; for (int i2 = 0; i2 < readInt; i2++) { int readInt2 = parcel.readInt(); if (readInt2 == 0) { parcelArr[i2] = null; } else { int dataPosition2 = parcel.dataPosition(); a(parcel, readInt2, dataPosition2); Parcel obtain = Parcel.obtain(); obtain.appendFrom(parcel, dataPosition2, readInt2); parcelArr[i2] = obtain; parcel.setDataPosition(readInt2 + dataPosition2); } } parcel.setDataPosition(dataPosition + readSize); return parcelArr; } public static ArrayList createParcelList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); ArrayList arrayList = new ArrayList<>(); for (int i2 = 0; i2 < readInt; i2++) { int readInt2 = parcel.readInt(); if (readInt2 == 0) { arrayList.add(null); } else { int dataPosition2 = parcel.dataPosition(); a(parcel, readInt2, dataPosition2); Parcel obtain = Parcel.obtain(); obtain.appendFrom(parcel, dataPosition2, readInt2); arrayList.add(obtain); parcel.setDataPosition(readInt2 + dataPosition2); } } parcel.setDataPosition(dataPosition + readSize); return arrayList; } public static SparseArray createParcelSparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); SparseArray sparseArray = new SparseArray<>(); for (int i2 = 0; i2 < readInt; i2++) { int readInt2 = parcel.readInt(); int readInt3 = parcel.readInt(); if (readInt3 == 0) { sparseArray.append(readInt2, null); } else { int dataPosition2 = parcel.dataPosition(); a(parcel, readInt3, dataPosition2); Parcel obtain = Parcel.obtain(); obtain.appendFrom(parcel, dataPosition2, readInt3); sparseArray.append(readInt2, obtain); parcel.setDataPosition(dataPosition2 + readInt3); } } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static

P createParcelable(Parcel parcel, int i, Parcelable.Creator

creator) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); P createFromParcel = creator.createFromParcel(parcel); parcel.setDataPosition(readSize + dataPosition); return createFromParcel; } public static SparseBooleanArray createSparseBooleanArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseBooleanArray readSparseBooleanArray = parcel.readSparseBooleanArray(); parcel.setDataPosition(readSize + dataPosition); return readSparseBooleanArray; } public static SparseIntArray createSparseIntArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseIntArray sparseIntArray = new SparseIntArray(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseIntArray.append(parcel.readInt(), parcel.readInt()); } parcel.setDataPosition(dataPosition + readSize); return sparseIntArray; } public static SparseLongArray createSparseLongArray(Parcel parcel, int i) { if (parcel == null) { return null; } int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseLongArray sparseLongArray = new SparseLongArray(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseLongArray.append(parcel.readInt(), parcel.readLong()); } parcel.setDataPosition(dataPosition + readSize); return sparseLongArray; } public static String createString(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); String readString = parcel.readString(); parcel.setDataPosition(readSize + dataPosition); return readString; } public static String[] createStringArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return new String[0]; } a(parcel, readSize, dataPosition); String[] createStringArray = parcel.createStringArray(); parcel.setDataPosition(readSize + dataPosition); return createStringArray; } public static ArrayList createStringList(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList createStringArrayList = parcel.createStringArrayList(); parcel.setDataPosition(readSize + dataPosition); return createStringArrayList; } public static SparseArray createStringSparseArray(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); SparseArray sparseArray = new SparseArray<>(); int readInt = parcel.readInt(); a(parcel, readInt); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), parcel.readString()); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static C[] createTypedArray(Parcel parcel, int i, Parcelable.Creator creator) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return creator.newArray(0); } a(parcel, readSize, dataPosition); C[] cArr = (C[]) parcel.createTypedArray(creator); parcel.setDataPosition(readSize + dataPosition); return cArr; } public static ArrayList createTypedList(Parcel parcel, int i, Parcelable.Creator creator) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); ArrayList createTypedArrayList = parcel.createTypedArrayList(creator); parcel.setDataPosition(readSize + dataPosition); return createTypedArrayList; } public static SparseArray createTypedSparseArray(Parcel parcel, int i, Parcelable.Creator creator) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); int readInt = parcel.readInt(); a(parcel, readInt); SparseArray sparseArray = new SparseArray<>(); for (int i2 = 0; i2 < readInt; i2++) { sparseArray.append(parcel.readInt(), parcel.readInt() != 0 ? creator.createFromParcel(parcel) : null); } parcel.setDataPosition(dataPosition + readSize); return sparseArray; } public static void ensureAtEnd(Parcel parcel, int i) { if (parcel.dataPosition() != i) { throw new ParseException("Overread allowed size end=".concat(String.valueOf(i)), parcel); } } public static int getFieldId(int i) { return i & 65535; } public static boolean readBoolean(Parcel parcel, int i) { b(parcel, i, 4); return parcel.readInt() != 0; } public static Boolean readBooleanObject(Parcel parcel, int i) { int readSize = readSize(parcel, i); if (readSize == 0) { return Boolean.FALSE; } a(parcel, i, readSize, 4); return Boolean.valueOf(parcel.readInt() != 0); } public static byte readByte(Parcel parcel, int i) { b(parcel, i, 4); return (byte) parcel.readInt(); } public static char readChar(Parcel parcel, int i) { b(parcel, i, 4); return (char) parcel.readInt(); } public static double readDouble(Parcel parcel, int i) { b(parcel, i, 8); return parcel.readDouble(); } public static Double readDoubleObject(Parcel parcel, int i) { int readSize = readSize(parcel, i); if (readSize == 0) { return null; } a(parcel, i, readSize, 8); return Double.valueOf(parcel.readDouble()); } public static float readFloat(Parcel parcel, int i) { b(parcel, i, 4); return parcel.readFloat(); } public static Float readFloatObject(Parcel parcel, int i) { int readSize = readSize(parcel, i); if (readSize == 0) { return null; } a(parcel, i, readSize, 4); return Float.valueOf(parcel.readFloat()); } public static int readHeader(Parcel parcel) { return parcel.readInt(); } public static IBinder readIBinder(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize == 0) { return null; } a(parcel, readSize, dataPosition); IBinder readStrongBinder = parcel.readStrongBinder(); parcel.setDataPosition(readSize + dataPosition); return readStrongBinder; } public static int readInt(Parcel parcel, int i) { b(parcel, i, 4); return parcel.readInt(); } public static Integer readIntegerObject(Parcel parcel, int i) { int readSize = readSize(parcel, i); if (readSize == 0) { return null; } a(parcel, i, readSize, 4); return Integer.valueOf(parcel.readInt()); } public static void readList(Parcel parcel, int i, List list, ClassLoader classLoader) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); if (readSize != 0) { a(parcel, readSize, dataPosition); parcel.readList(list, classLoader); parcel.setDataPosition(readSize + dataPosition); } } public static long readLong(Parcel parcel, int i) { b(parcel, i, 8); return parcel.readLong(); } public static Long readLongObject(Parcel parcel, int i) { int readSize = readSize(parcel, i); if (readSize == 0) { return null; } a(parcel, i, readSize, 8); return Long.valueOf(parcel.readLong()); } public static short readShort(Parcel parcel, int i) { b(parcel, i, 4); return (short) parcel.readInt(); } public static int readSize(Parcel parcel, int i) { return (i & (-65536)) != -65536 ? (i >> 16) & 65535 : parcel.readInt(); } public static void skipUnknownField(Parcel parcel, int i) { int readSize = readSize(parcel, i); int dataPosition = parcel.dataPosition(); a(parcel, readSize, dataPosition); parcel.setDataPosition(readSize + dataPosition); } public static int validateObjectHeader(Parcel parcel) { int readHeader = readHeader(parcel); int readSize = readSize(parcel, readHeader); int dataPosition = parcel.dataPosition(); if (getFieldId(readHeader) != 20293) { String hexString = Integer.toHexString(readHeader); throw new ParseException(hexString.length() != 0 ? "Expected object header. Got 0x".concat(hexString) : "Expected object header. Got 0x", parcel); } int i = readSize + dataPosition; if (i >= dataPosition && i <= parcel.dataSize()) { return i; } StringBuilder sb = new StringBuilder("invalid start="); sb.append(dataPosition); sb.append(" end="); sb.append(i); throw new ParseException(sb.toString(), parcel); } private static void a(Parcel parcel, int i, int i2) { if (i < 0 || a(i, i2)) { throw new ParseException("dataPosition cannot be beyond integer scope", parcel); } } private static void a(Parcel parcel, int i) { if (i > 1024) { throw new ParseException("arraySize cannot be beyond 65535", parcel); } } }