CrackMe.apk
Download file
package com.google.common.collect;
import com.google.common.collect.Multiset;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Map;
@ElementTypesAreNonnullByDefault
final class Serialization {
private Serialization() {
}
static int readCount(ObjectInputStream objectInputStream) throws IOException {
return objectInputStream.readInt();
}
static <K, V> void writeMap(Map<K, V> map, ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.writeInt(map.size());
for (Map.Entry next : map.entrySet()) {
objectOutputStream.writeObject(next.getKey());
objectOutputStream.writeObject(next.getValue());
}
}
static <K, V> void populateMap(Map<K, V> map, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
populateMap(map, objectInputStream, objectInputStream.readInt());
}
static <K, V> void populateMap(Map<K, V> map, ObjectInputStream objectInputStream, int i) throws IOException, ClassNotFoundException {
for (int i2 = 0; i2 < i; i2++) {
map.put(objectInputStream.readObject(), objectInputStream.readObject());
}
}
static <E> void writeMultiset(Multiset<E> multiset, ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.writeInt(multiset.entrySet().size());
for (Multiset.Entry next : multiset.entrySet()) {
objectOutputStream.writeObject(next.getElement());
objectOutputStream.writeInt(next.getCount());
}
}
static <E> void populateMultiset(Multiset<E> multiset, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
populateMultiset(multiset, objectInputStream, objectInputStream.readInt());
}
static <E> void populateMultiset(Multiset<E> multiset, ObjectInputStream objectInputStream, int i) throws IOException, ClassNotFoundException {
for (int i2 = 0; i2 < i; i2++) {
multiset.add(objectInputStream.readObject(), objectInputStream.readInt());
}
}
static <K, V> void writeMultimap(Multimap<K, V> multimap, ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.writeInt(multimap.asMap().size());
for (Map.Entry next : multimap.asMap().entrySet()) {
objectOutputStream.writeObject(next.getKey());
objectOutputStream.writeInt(((Collection) next.getValue()).size());
for (Object writeObject : (Collection) next.getValue()) {
objectOutputStream.writeObject(writeObject);
}
}
}
static <K, V> void populateMultimap(Multimap<K, V> multimap, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
populateMultimap(multimap, objectInputStream, objectInputStream.readInt());
}
static <K, V> void populateMultimap(Multimap<K, V> multimap, ObjectInputStream objectInputStream, int i) throws IOException, ClassNotFoundException {
for (int i2 = 0; i2 < i; i2++) {
Collection<V> collection = multimap.get(objectInputStream.readObject());
int readInt = objectInputStream.readInt();
for (int i3 = 0; i3 < readInt; i3++) {
collection.add(objectInputStream.readObject());
}
}
}
static <T> FieldSetter<T> getFieldSetter(Class<T> cls, String str) {
try {
return new FieldSetter<>(cls.getDeclaredField(str));
} catch (NoSuchFieldException e) {
throw new AssertionError(e);
}
}
static final class FieldSetter<T> {
private final Field field;
private FieldSetter(Field field2) {
this.field = field2;
field2.setAccessible(true);
}
/* access modifiers changed from: package-private */
public void set(T t, Object obj) {
try {
this.field.set(t, obj);
} catch (IllegalAccessException e) {
throw new AssertionError(e);
}
}
/* access modifiers changed from: package-private */
public void set(T t, int i) {
try {
this.field.set(t, Integer.valueOf(i));
} catch (IllegalAccessException e) {
throw new AssertionError(e);
}
}
}
}
Download file