// Signature format: 2.0
package android.compat {

  public final class Compatibility {
    method public static void clearBehaviorChangeDelegate();
    method public static void clearOverrides();
    method public static boolean isChangeEnabled(long);
    method public static void reportUnconditionalChange(long);
    method public static void setBehaviorChangeDelegate(android.compat.Compatibility.BehaviorChangeDelegate);
    method public static void setOverrides(android.compat.Compatibility.ChangeConfig);
  }

  public static interface Compatibility.BehaviorChangeDelegate {
    method public default boolean isChangeEnabled(long);
    method public default void onChangeReported(long);
  }

  public static final class Compatibility.ChangeConfig {
    ctor public Compatibility.ChangeConfig(@NonNull java.util.Set<java.lang.Long>, @NonNull java.util.Set<java.lang.Long>);
    method @NonNull public long[] getDisabledChangesArray();
    method @NonNull public java.util.Set<java.lang.Long> getDisabledSet();
    method @NonNull public long[] getEnabledChangesArray();
    method @NonNull public java.util.Set<java.lang.Long> getEnabledSet();
    method public boolean isEmpty();
    method public boolean isForceDisabled(long);
    method public boolean isForceEnabled(long);
  }

}

package android.system {

  public final class NetlinkSocketAddress extends java.net.SocketAddress {
    ctor public NetlinkSocketAddress(int, int);
    method public int getGroupsMask();
    method public int getPortId();
  }

  public final class Os {
    method @Nullable public static android.system.StructCapUserData[] capget(@NonNull android.system.StructCapUserHeader) throws android.system.ErrnoException;
    method public static void capset(@NonNull android.system.StructCapUserHeader, @NonNull android.system.StructCapUserData[]) throws android.system.ErrnoException;
    method public static int getpgid(int) throws android.system.ErrnoException;
    method @Nullable public static android.system.StructRlimit getrlimit(int) throws android.system.ErrnoException;
    method public static int getsockoptInt(@NonNull java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
    method @Nullable public static android.system.StructLinger getsockoptLinger(@NonNull java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
    method public static int ioctlInt(@NonNull java.io.FileDescriptor, int) throws android.system.ErrnoException;
    method @Nullable public static java.io.FileDescriptor[] pipe2(int) throws android.system.ErrnoException;
    method @Nullable public static String realpath(@Nullable String) throws android.system.ErrnoException;
    method public static void setpgid(int, int) throws android.system.ErrnoException;
    method public static void setregid(int, int) throws android.system.ErrnoException;
    method public static void setreuid(int, int) throws android.system.ErrnoException;
    method public static void setsockoptIfreq(@NonNull java.io.FileDescriptor, int, int, @Nullable String) throws android.system.ErrnoException;
    method public static void setsockoptLinger(@NonNull java.io.FileDescriptor, int, int, @NonNull android.system.StructLinger) throws android.system.ErrnoException;
    method public static long splice(@NonNull java.io.FileDescriptor, @Nullable android.system.Int64Ref, @NonNull java.io.FileDescriptor, @Nullable android.system.Int64Ref, long, int) throws android.system.ErrnoException;
    method public static void unlink(@Nullable String) throws android.system.ErrnoException;
  }

  public final class OsConstants {
    method public static int CAP_TO_INDEX(int);
    method public static int CAP_TO_MASK(int);
    field public static final int ARPHRD_LOOPBACK;
    field public static final int EUSERS;
    field public static final int MAP_POPULATE;
    field public static final int O_DIRECT;
    field public static final int PR_CAP_AMBIENT;
    field public static final int PR_CAP_AMBIENT_RAISE;
    field public static final int RLIMIT_NOFILE;
    field public static final int RTMGRP_IPV4_IFADDR;
    field public static final int SPLICE_F_MORE;
    field public static final int SPLICE_F_MOVE;
    field public static final int TIOCOUTQ;
    field public static final int UDP_ENCAP;
    field public static final int UDP_ENCAP_ESPINUDP;
    field public static final int XATTR_CREATE;
    field public static final int XATTR_REPLACE;
    field public static final int _LINUX_CAPABILITY_VERSION_3;
  }

  public final class PacketSocketAddress extends java.net.SocketAddress {
    ctor public PacketSocketAddress(int, int, byte[]);
  }

  public final class StructCapUserData {
    ctor public StructCapUserData(int, int, int);
    field public final int effective;
    field public final int inheritable;
    field public final int permitted;
  }

  public final class StructCapUserHeader {
    ctor public StructCapUserHeader(int, int);
  }

  public final class StructLinger {
    ctor public StructLinger(int, int);
    method public boolean isOn();
    field public final int l_linger;
  }

  public final class StructRlimit {
    field public final long rlim_cur;
  }

  public final class UnixSocketAddress extends java.net.SocketAddress {
    method public static android.system.UnixSocketAddress createFileSystem(String);
  }

  public final class VmSocketAddress extends java.net.SocketAddress {
    ctor public VmSocketAddress(int, int);
    method public int getSvmCid();
    method public int getSvmPort();
  }

}

package com.android.okhttp.internalandroidapi {

  public final class AndroidResponseCacheAdapter {
    ctor public AndroidResponseCacheAdapter(@NonNull com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder);
    method public void close() throws java.io.IOException;
    method public void delete() throws java.io.IOException;
    method public void flush() throws java.io.IOException;
    method @Nullable public java.net.CacheResponse get(@NonNull java.net.URI, @NonNull String, @Nullable java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
    method @NonNull public com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder getCacheHolder();
    method public int getHitCount();
    method public long getMaxSize();
    method public int getNetworkCount();
    method public int getRequestCount();
    method public long getSize() throws java.io.IOException;
    method @Nullable public java.net.CacheRequest put(@NonNull java.net.URI, @NonNull java.net.URLConnection) throws java.io.IOException;
  }

  public interface HasCacheHolder {
    method @NonNull public com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder getCacheHolder();
  }

  public static final class HasCacheHolder.CacheHolder {
    method @NonNull public static com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder create(@NonNull java.io.File, long);
    method public boolean isEquivalent(@NonNull java.io.File, long);
  }

}

package dalvik.annotation.codegen {

  @java.lang.annotation.Repeatable(CovariantReturnType.CovariantReturnTypes.class) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public @interface CovariantReturnType {
    method public abstract int presentAfter();
    method public abstract Class<?> returnType();
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public static @interface CovariantReturnType.CovariantReturnTypes {
    method public abstract dalvik.annotation.codegen.CovariantReturnType[] value();
  }

}

package dalvik.annotation.optimization {

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface CriticalNative {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface FastNative {
  }

}

package dalvik.system {

  public final class AnnotatedStackTraceElement {
    method @Nullable public Object getBlockedOn();
    method @Nullable public Object[] getHeldLocks();
    method @NonNull public StackTraceElement getStackTraceElement();
  }

  public class AppSpecializationHooks {
    method public static void handleCompatChangesBeforeBindingApplication();
  }

  public class BaseDexClassLoader extends java.lang.ClassLoader {
    method public void addDexPath(@Nullable String);
    method public void addNativePath(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public String getLdLibraryPath();
    method public void reportClassLoaderChain();
    method public static void setReporter(@Nullable dalvik.system.BaseDexClassLoader.Reporter);
  }

  public static interface BaseDexClassLoader.Reporter {
    method public void report(@NonNull java.util.Map<java.lang.String,java.lang.String>);
  }

  public final class BlockGuard {
    method @NonNull public static dalvik.system.BlockGuard.Policy getThreadPolicy();
    method @NonNull public static dalvik.system.BlockGuard.VmPolicy getVmPolicy();
    method public static void setThreadPolicy(@NonNull dalvik.system.BlockGuard.Policy);
    method public static void setVmPolicy(@NonNull dalvik.system.BlockGuard.VmPolicy);
    field public static final dalvik.system.BlockGuard.Policy LAX_POLICY;
    field public static final dalvik.system.BlockGuard.VmPolicy LAX_VM_POLICY;
  }

  public static interface BlockGuard.Policy {
    method public int getPolicyMask();
    method public void onReadFromDisk();
    method public void onUnbufferedIO();
    method public void onWriteToDisk();
  }

  public static interface BlockGuard.VmPolicy {
    method public void onPathAccess(@NonNull String);
  }

  public final class CloseGuard {
    method public void close();
    method public static dalvik.system.CloseGuard get();
    method public static dalvik.system.CloseGuard.Reporter getReporter();
    method public void open(String);
    method public void openWithCallSite(String, String);
    method public static void setEnabled(boolean);
    method public static void setReporter(dalvik.system.CloseGuard.Reporter);
    method public void warnIfOpen();
  }

  public static interface CloseGuard.Reporter {
    method public void report(String, Throwable);
    method public default void report(String);
  }

  public final class DelegateLastClassLoader extends dalvik.system.PathClassLoader {
    ctor public DelegateLastClassLoader(String, String, ClassLoader, ClassLoader[]);
  }

  @Deprecated public final class DexFile {
    method @Deprecated @NonNull public static dalvik.system.DexFile.OptimizationInfo getDexFileOptimizationInfo(@NonNull String, @NonNull String) throws java.io.FileNotFoundException;
    method @Deprecated @Nullable public static String[] getDexFileOutputPaths(@NonNull String, @NonNull String) throws java.io.FileNotFoundException;
    method @Deprecated public static int getDexOptNeeded(@NonNull String, @NonNull String, @NonNull String, @Nullable String, boolean, boolean) throws java.io.FileNotFoundException, java.io.IOException;
    method @Deprecated @NonNull public static String getSafeModeCompilerFilter(@NonNull String);
    method @Deprecated public static boolean isProfileGuidedCompilerFilter(@NonNull String);
    method @Deprecated public static boolean isValidCompilerFilter(@NonNull String);
    field @Deprecated public static final int DEX2OAT_FOR_FILTER = 3; // 0x3
    field @Deprecated public static final int NO_DEXOPT_NEEDED = 0; // 0x0
  }

  @Deprecated public static final class DexFile.OptimizationInfo {
    method @Deprecated @NonNull public String getReason();
    method @Deprecated @NonNull public String getStatus();
  }

  public class PathClassLoader extends dalvik.system.BaseDexClassLoader {
    ctor public PathClassLoader(@NonNull String, @Nullable String, @Nullable ClassLoader, @Nullable ClassLoader[]);
  }

  public final class RuntimeHooks {
    method public static void setTimeZoneIdSupplier(@NonNull java.util.function.Supplier<java.lang.String>);
    method public static void setUncaughtExceptionPreHandler(@Nullable java.lang.Thread.UncaughtExceptionHandler);
  }

  public abstract class SocketTagger {
    ctor public SocketTagger();
    method public static dalvik.system.SocketTagger get();
    method public static void set(dalvik.system.SocketTagger);
    method public abstract void tag(java.io.FileDescriptor) throws java.net.SocketException;
    method public final void tag(java.net.Socket) throws java.net.SocketException;
    method public final void tag(java.net.DatagramSocket) throws java.net.SocketException;
    method public abstract void untag(java.io.FileDescriptor) throws java.net.SocketException;
    method public final void untag(java.net.Socket) throws java.net.SocketException;
    method public final void untag(java.net.DatagramSocket) throws java.net.SocketException;
  }

  public final class VMDebug {
    method public static void attachAgent(String, ClassLoader) throws java.io.IOException;
    method public static long countInstancesOfClass(Class, boolean);
    method public static long[] countInstancesOfClasses(Class[], boolean);
    method public static void dumpHprofData(String) throws java.io.IOException;
    method public static void dumpHprofData(String, java.io.FileDescriptor) throws java.io.IOException;
    method public static void dumpHprofDataDdms();
    method public static void dumpReferenceTables();
    method public static int getAllocCount(int);
    method public static int getGlobalsRefNum();
    method @dalvik.annotation.optimization.FastNative public static int getLoadedClassCount();
    method public static int getMethodTracingMode();
    method public static String getRuntimeStat(String);
    method public static java.util.Map<java.lang.String,java.lang.String> getRuntimeStats();
    method public static String[] getVmFeatureList();
    method public static int getWeakRefNum();
    method @dalvik.annotation.optimization.FastNative public static boolean isDebuggerConnected();
    method @dalvik.annotation.optimization.FastNative public static boolean isDebuggingEnabled();
    method @dalvik.annotation.optimization.FastNative public static long lastDebuggerActivity();
    method @dalvik.annotation.optimization.FastNative public static void printLoadedClasses(int);
    method public static void resetAllocCount(int);
    method public static void setAllocTrackerStackDepth(int);
    method public static void startAllocCounting();
    method public static void startMethodTracing(String, int, int, boolean, int);
    method public static void startMethodTracing(String, java.io.FileDescriptor, int, int, boolean, int, boolean);
    method public static void startMethodTracingDdms(int, int, boolean, int);
    method public static void stopAllocCounting();
    method public static void stopMethodTracing();
    method @dalvik.annotation.optimization.FastNative public static long threadCpuTimeNanos();
    field public static final int KIND_ALL_COUNTS = -1; // 0xffffffff
    field public static final int KIND_GLOBAL_ALLOCATED_BYTES = 2; // 0x2
    field public static final int KIND_GLOBAL_ALLOCATED_OBJECTS = 1; // 0x1
    field public static final int KIND_GLOBAL_CLASS_INIT_COUNT = 32; // 0x20
    field public static final int KIND_GLOBAL_CLASS_INIT_TIME = 64; // 0x40
    field public static final int KIND_GLOBAL_FREED_BYTES = 8; // 0x8
    field public static final int KIND_GLOBAL_FREED_OBJECTS = 4; // 0x4
    field public static final int KIND_GLOBAL_GC_INVOCATIONS = 16; // 0x10
    field public static final int KIND_THREAD_ALLOCATED_BYTES = 131072; // 0x20000
    field public static final int KIND_THREAD_ALLOCATED_OBJECTS = 65536; // 0x10000
    field public static final int KIND_THREAD_GC_INVOCATIONS = 1048576; // 0x100000
    field public static final int TRACE_COUNT_ALLOCS = 1; // 0x1
  }

  public final class VMRuntime {
    method @dalvik.annotation.optimization.FastNative public long addressOf(Object);
    method public static void bootCompleted();
    method public void clampGrowthLimit();
    method public void clearGrowthLimit();
    method public static String getCurrentInstructionSet();
    method public static String getInstructionSet(String);
    method public static dalvik.system.VMRuntime getRuntime();
    method public int getTargetSdkVersion();
    method @dalvik.annotation.optimization.FastNative public boolean is64Bit();
    method public static boolean is64BitAbi(String);
    method public static boolean is64BitInstructionSet(String);
    method @dalvik.annotation.optimization.FastNative public boolean isCheckJniEnabled();
    method @dalvik.annotation.optimization.FastNative public boolean isNativeDebuggable();
    method public static boolean isValidClassLoaderContext(String);
    method @dalvik.annotation.optimization.FastNative public Object newNonMovableArray(Class<?>, int);
    method @dalvik.annotation.optimization.FastNative public Object newUnpaddedArray(Class<?>, int);
    method public void notifyStartupCompleted();
    method public void preloadDexCaches();
    method public static void registerAppInfo(String, String, String, String[], int);
    method public void registerNativeAllocation(long);
    method @Deprecated public void registerNativeAllocation(int);
    method public void registerNativeFree(long);
    method @Deprecated public void registerNativeFree(int);
    method public static void registerSensitiveThread();
    method public void requestConcurrentGC();
    method public static void resetJitCounters();
    method public static void setDedupeHiddenApiWarnings(boolean);
    method public void setDisabledCompatChanges(long[]);
    method public void setHiddenApiAccessLogSamplingRate(int);
    method public void setHiddenApiExemptions(String[]);
    method public static void setHiddenApiUsageLogger(dalvik.system.VMRuntime.HiddenApiUsageLogger);
    method public static void setNonSdkApiUsageConsumer(java.util.function.Consumer<java.lang.String>);
    method public static void setProcessDataDirectory(String);
    method public static void setProcessPackageName(String);
    method public void setTargetSdkVersion(int);
    method public void updateProcessState(int);
    method public String vmInstructionSet();
    method public String vmLibrary();
    field public static final int CODE_PATH_TYPE_PRIMARY_APK = 1; // 0x1
    field public static final int CODE_PATH_TYPE_SECONDARY_DEX = 4; // 0x4
    field public static final int CODE_PATH_TYPE_SPLIT_APK = 2; // 0x2
    field public static final int SDK_VERSION_CUR_DEVELOPMENT = 10000; // 0x2710
  }

  public static interface VMRuntime.HiddenApiUsageLogger {
    method public void hiddenApiUsed(int, String, String, int, boolean);
    field public static final int ACCESS_METHOD_JNI = 2; // 0x2
    field public static final int ACCESS_METHOD_LINKING = 3; // 0x3
    field public static final int ACCESS_METHOD_NONE = 0; // 0x0
    field public static final int ACCESS_METHOD_REFLECTION = 1; // 0x1
  }

  public final class VMStack {
    method @Nullable @dalvik.annotation.optimization.FastNative public static dalvik.system.AnnotatedStackTraceElement[] getAnnotatedThreadStackTrace(Thread);
  }

  public final class ZygoteHooks {
    method public static void gcAndFinalize();
    method public static boolean isIndefiniteThreadSuspensionSafe();
    method public static void onBeginPreload();
    method public static void onEndPreload();
    method public static void postForkChild(int, boolean, boolean, String);
    method public static void postForkCommon();
    method public static void postForkSystemServer(int);
    method public static void preFork();
    method public static void startZygoteNoThreadCreation();
    method public static void stopZygoteNoThreadCreation();
  }

}

package java.io {

  public final class FileDescriptor {
    method public int getInt$();
    method public void setInt$(int);
  }

  public class FileInputStream extends java.io.InputStream {
    ctor public FileInputStream(java.io.FileDescriptor, boolean);
  }

}

package java.lang {

  public class Thread implements java.lang.Runnable {
    method public static java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionPreHandler();
    method public static void setUncaughtExceptionPreHandler(java.lang.Thread.UncaughtExceptionHandler);
  }

}

package java.net {

  public class DatagramSocket implements java.io.Closeable {
    method public java.io.FileDescriptor getFileDescriptor$();
  }

  public final class Inet4Address extends java.net.InetAddress {
    field public static final java.net.InetAddress ALL;
    field public static final java.net.InetAddress ANY;
    field public static final java.net.InetAddress LOOPBACK;
  }

  public final class Inet6Address extends java.net.InetAddress {
    field public static final java.net.InetAddress ANY;
    field public static final java.net.InetAddress LOOPBACK;
  }

  public class InetAddress implements java.io.Serializable {
    method public static void clearDnsCache();
    method @NonNull public static java.net.InetAddress[] getAllByNameOnNet(@Nullable String, int) throws java.net.UnknownHostException;
    method @NonNull public static java.net.InetAddress getByNameOnNet(@Nullable String, int) throws java.net.UnknownHostException;
    method @Deprecated public static boolean isNumeric(String);
    method @Deprecated public static java.net.InetAddress parseNumericAddress(String);
  }

  public class InetSocketAddress extends java.net.SocketAddress {
    ctor public InetSocketAddress();
  }

  public class ServerSocket implements java.io.Closeable {
    method public java.net.SocketImpl getImpl() throws java.net.SocketException;
  }

  public class Socket implements java.io.Closeable {
    method public java.io.FileDescriptor getFileDescriptor$();
  }

  public abstract class SocketImpl implements java.net.SocketOptions {
    method public java.io.FileDescriptor getFD$();
  }

}

package java.nio {

  public abstract class ByteBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.ByteBuffer> {
    method public void setAccessible(boolean);
  }

  public class DirectByteBuffer extends java.nio.MappedByteBuffer {
    ctor public DirectByteBuffer(int, long, java.io.FileDescriptor, Runnable, boolean);
    method public final long address();
    method public final void setAccessible(boolean);
  }

  public final class NIOAccess {
    method public static Object getBaseArray(java.nio.Buffer);
    method public static int getBaseArrayOffset(java.nio.Buffer);
  }

  public final class NioUtils {
    method public static void freeDirectBuffer(java.nio.ByteBuffer);
    method public static byte[] unsafeArray(java.nio.ByteBuffer);
    method public static int unsafeArrayOffset(java.nio.ByteBuffer);
  }

}

package java.security {

  public abstract class Provider extends java.util.Properties {
    method public void warmUpServiceProvision();
  }

  public abstract class Signature extends java.security.SignatureSpi {
    method public java.security.SignatureSpi getCurrentSpi();
  }

}

package java.text {

  public abstract class DateFormat extends java.text.Format {
    method public static final void set24HourTimePref(Boolean);
  }

}

package java.util {

  public class LinkedHashMap<K, V> extends java.util.HashMap<K,V> implements java.util.Map<K,V> {
    method public java.util.Map.Entry<K,V> eldest();
  }

}

package java.util.zip {

  public class ZipEntry implements java.lang.Cloneable {
    method public long getDataOffset();
  }

}

package javax.crypto {

  public class Cipher {
    method public javax.crypto.CipherSpi getCurrentSpi();
  }

  public class Mac implements java.lang.Cloneable {
    method public javax.crypto.MacSpi getCurrentSpi();
  }

}

package javax.net.ssl {

  public abstract class HttpsURLConnection extends java.net.HttpURLConnection {
    method public static javax.net.ssl.HostnameVerifier getStrictHostnameVerifier();
  }

}

package libcore.content.type {

  public final class MimeMap {
    method @NonNull public libcore.content.type.MimeMap.Builder buildUpon();
    method @NonNull public static libcore.content.type.MimeMap.Builder builder();
    method @NonNull public java.util.Set<java.lang.String> extensions();
    method @NonNull public static libcore.content.type.MimeMap getDefault();
    method @Nullable public String guessExtensionFromMimeType(@Nullable String);
    method @Nullable public String guessMimeTypeFromExtension(@Nullable String);
    method public boolean hasExtension(@Nullable String);
    method public boolean hasMimeType(@Nullable String);
    method @NonNull public java.util.Set<java.lang.String> mimeTypes();
    method public static void setDefaultSupplier(@NonNull java.util.function.Supplier<libcore.content.type.MimeMap>);
  }

  public static final class MimeMap.Builder {
    method @NonNull public libcore.content.type.MimeMap.Builder addMimeMapping(@NonNull String, @NonNull java.util.List<java.lang.String>);
    method @NonNull public libcore.content.type.MimeMap build();
  }

}

package libcore.io {

  public class ForwardingOs implements libcore.io.Os {
    ctor protected ForwardingOs(@NonNull libcore.io.Os);
    method public boolean access(@Nullable String, int) throws android.system.ErrnoException;
    method public java.io.FileDescriptor open(@Nullable String, int, int) throws android.system.ErrnoException;
    method public void remove(@Nullable String) throws android.system.ErrnoException;
    method public void rename(@Nullable String, @Nullable String) throws android.system.ErrnoException;
    method @Nullable public android.system.StructStat stat(@Nullable String) throws android.system.ErrnoException;
    method public void unlink(@Nullable String) throws android.system.ErrnoException;
  }

  public final class IoBridge {
    method public static void closeAndSignalBlockedThreads(@NonNull java.io.FileDescriptor) throws java.io.IOException;
    method @NonNull public static java.io.FileDescriptor open(@NonNull String, int) throws java.io.FileNotFoundException;
    method public static int read(@NonNull java.io.FileDescriptor, @NonNull byte[], int, int) throws java.io.IOException;
    method public static void write(@NonNull java.io.FileDescriptor, @NonNull byte[], int, int) throws java.io.IOException;
  }

  public final class IoUtils {
    method public static int acquireRawFd(@NonNull java.io.FileDescriptor);
    method public static void close(@Nullable java.io.FileDescriptor) throws java.io.IOException;
    method public static void closeQuietly(@Nullable AutoCloseable);
    method public static void closeQuietly(@Nullable java.io.FileDescriptor);
    method public static void closeQuietly(@Nullable java.net.Socket);
    method @NonNull public static byte[] readFileAsByteArray(@NonNull String) throws java.io.IOException;
    method @NonNull public static String readFileAsString(@NonNull String) throws java.io.IOException;
    method public static void setBlocking(@NonNull java.io.FileDescriptor, boolean) throws java.io.IOException;
    method public static void setFdOwner(@NonNull java.io.FileDescriptor, @NonNull Object);
  }

  public final class Memory {
    method public static void memmove(@NonNull Object, int, @NonNull Object, int, long);
    method public static int peekInt(@NonNull byte[], int, @NonNull java.nio.ByteOrder);
    method public static short peekShort(@NonNull byte[], int, @NonNull java.nio.ByteOrder);
    method public static void pokeInt(@NonNull byte[], int, int, @NonNull java.nio.ByteOrder);
    method public static void pokeLong(@NonNull byte[], int, long, @NonNull java.nio.ByteOrder);
    method public static void pokeShort(@NonNull byte[], int, short, @NonNull java.nio.ByteOrder);
  }

  public interface Os {
    method public static boolean compareAndSetDefault(libcore.io.Os, libcore.io.Os);
    method public static libcore.io.Os getDefault();
  }

  public final class Streams {
    method public static int copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream) throws java.io.IOException;
    method public static void readFully(@NonNull java.io.InputStream, @NonNull byte[]) throws java.io.IOException;
    method @NonNull public static byte[] readFully(@NonNull java.io.InputStream) throws java.io.IOException;
    method @NonNull public static String readFully(@NonNull java.io.Reader) throws java.io.IOException;
    method @NonNull public static byte[] readFullyNoClose(@NonNull java.io.InputStream) throws java.io.IOException;
    method public static int readSingleByte(@NonNull java.io.InputStream) throws java.io.IOException;
    method public static long skipByReading(@NonNull java.io.InputStream, long) throws java.io.IOException;
    method public static void writeSingleByte(@NonNull java.io.OutputStream, int) throws java.io.IOException;
  }

}

package libcore.net {

  public class InetAddressUtils {
    method public static boolean isNumericAddress(String);
    method public static java.net.InetAddress parseNumericAddress(String);
  }

  public abstract class NetworkSecurityPolicy {
    ctor public NetworkSecurityPolicy();
    method public static libcore.net.NetworkSecurityPolicy getInstance();
    method public abstract boolean isCertificateTransparencyVerificationRequired(String);
    method public abstract boolean isCleartextTrafficPermitted();
    method public abstract boolean isCleartextTrafficPermitted(String);
    method public static void setInstance(libcore.net.NetworkSecurityPolicy);
  }

}

package libcore.net.event {

  public final class NetworkEventDispatcher {
    method public void dispatchNetworkConfigurationChange();
    method public static libcore.net.event.NetworkEventDispatcher getInstance();
  }

}

package libcore.net.http {

  public interface Dns {
    method @NonNull public java.util.List<java.net.InetAddress> lookup(@Nullable String) throws java.net.UnknownHostException;
  }

  public class HttpURLConnectionFactory {
    method @NonNull public static libcore.net.http.HttpURLConnectionFactory createInstance();
    method public java.net.URLConnection openConnection(@NonNull java.net.URL, @NonNull javax.net.SocketFactory, @NonNull java.net.Proxy) throws java.io.IOException;
    method public void setDns(@NonNull libcore.net.http.Dns);
    method public void setNewConnectionPool(int, long, @NonNull java.util.concurrent.TimeUnit);
  }

}

package libcore.util {

  public final class EmptyArray {
    field @NonNull public static final boolean[] BOOLEAN;
    field @NonNull public static final byte[] BYTE;
    field @NonNull public static final float[] FLOAT;
    field @NonNull public static final int[] INT;
    field @NonNull public static final long[] LONG;
    field @NonNull public static final Object[] OBJECT;
    field @NonNull public static final String[] STRING;
  }

  public final class FP16 {
    method public static short ceil(short);
    method public static int compare(short, short);
    method public static boolean equals(short, short);
    method public static short floor(short);
    method public static boolean greater(short, short);
    method public static boolean greaterEquals(short, short);
    method public static boolean isInfinite(short);
    method public static boolean isNaN(short);
    method public static boolean isNormalized(short);
    method public static boolean less(short, short);
    method public static boolean lessEquals(short, short);
    method public static short max(short, short);
    method public static short min(short, short);
    method public static short rint(short);
    method public static float toFloat(short);
    method public static short toHalf(float);
    method public static String toHexString(short);
    method public static short trunc(short);
    field public static final short EPSILON = 5120; // 0x1400
    field public static final int EXPONENT_BIAS = 15; // 0xf
    field public static final int EXPONENT_SHIFT = 10; // 0xa
    field public static final int EXPONENT_SIGNIFICAND_MASK = 32767; // 0x7fff
    field public static final short LOWEST_VALUE = -1025; // 0xfffffbff
    field public static final int MAX_EXPONENT = 15; // 0xf
    field public static final short MAX_VALUE = 31743; // 0x7bff
    field public static final int MIN_EXPONENT = -14; // 0xfffffff2
    field public static final short MIN_NORMAL = 1024; // 0x400
    field public static final short MIN_VALUE = 1; // 0x1
    field public static final short NEGATIVE_INFINITY = -1024; // 0xfffffc00
    field public static final short NEGATIVE_ZERO = -32768; // 0xffff8000
    field public static final short NaN = 32256; // 0x7e00
    field public static final short POSITIVE_INFINITY = 31744; // 0x7c00
    field public static final short POSITIVE_ZERO = 0; // 0x0
    field public static final int SHIFTED_EXPONENT_MASK = 31; // 0x1f
    field public static final int SIGNIFICAND_MASK = 1023; // 0x3ff
    field public static final int SIGN_MASK = 32768; // 0x8000
    field public static final int SIGN_SHIFT = 15; // 0xf
    field public static final int SIZE = 16; // 0x10
  }

  public class HexEncoding {
    method public static byte[] decode(String) throws java.lang.IllegalArgumentException;
    method public static byte[] decode(String, boolean) throws java.lang.IllegalArgumentException;
    method public static byte[] decode(char[]) throws java.lang.IllegalArgumentException;
    method public static byte[] decode(char[], boolean) throws java.lang.IllegalArgumentException;
    method public static char[] encode(byte[]);
    method public static char[] encode(byte[], boolean);
    method public static char[] encode(byte[], int, int);
    method public static String encodeToString(byte, boolean);
    method public static String encodeToString(byte[]);
    method public static String encodeToString(byte[], boolean);
  }

  public class NativeAllocationRegistry {
    ctor public NativeAllocationRegistry(@NonNull ClassLoader, long, long);
    method public static void applyFreeFunction(long, long);
    method public static libcore.util.NativeAllocationRegistry createMalloced(@NonNull ClassLoader, long, long);
    method public static libcore.util.NativeAllocationRegistry createMalloced(@NonNull ClassLoader, long);
    method public static libcore.util.NativeAllocationRegistry createNonmalloced(@NonNull ClassLoader, long, long);
    method @NonNull public Runnable registerNativeAllocation(@NonNull Object, long);
  }

  public class SneakyThrow {
    method public static void sneakyThrow(@NonNull Throwable);
  }

  public class XmlObjectFactory {
    method @NonNull public static org.xml.sax.XMLReader newXMLReader();
    method @NonNull public static org.xmlpull.v1.XmlPullParser newXmlPullParser();
    method @NonNull public static org.xmlpull.v1.XmlSerializer newXmlSerializer();
  }

}

package org.apache.harmony.dalvik.ddmc {

  public class Chunk {
    ctor public Chunk(int, byte[], int, int);
    ctor public Chunk(int, java.nio.ByteBuffer);
    field public int type;
  }

  public abstract class ChunkHandler {
    ctor public ChunkHandler();
    method public static org.apache.harmony.dalvik.ddmc.Chunk createFailChunk(int, String);
    method public abstract org.apache.harmony.dalvik.ddmc.Chunk handleChunk(org.apache.harmony.dalvik.ddmc.Chunk);
    method public static String name(int);
    method public abstract void onConnected();
    method public abstract void onDisconnected();
    method public static int type(String);
    method public static java.nio.ByteBuffer wrapChunk(org.apache.harmony.dalvik.ddmc.Chunk);
    field public static final java.nio.ByteOrder CHUNK_ORDER;
  }

  public final class DdmServer {
    method public static void registerHandler(int, org.apache.harmony.dalvik.ddmc.ChunkHandler);
    method public static void registrationComplete();
    method public static void sendChunk(org.apache.harmony.dalvik.ddmc.Chunk);
    method public static org.apache.harmony.dalvik.ddmc.ChunkHandler unregisterHandler(int);
  }

  public final class DdmVmInternal {
    method public static void setRecentAllocationsTrackingEnabled(boolean);
    method public static void setThreadNotifyEnabled(boolean);
  }

}

package org.json {

  public class JSONObject {
    method @NonNull public java.util.Set<java.lang.String> keySet();
  }

}

package sun.misc {

  public class Cleaner extends java.lang.ref.PhantomReference<java.lang.Object> {
    method public void clean();
    method public static sun.misc.Cleaner create(Object, Runnable);
  }

  public final class Unsafe {
    method public int arrayBaseOffset(Class);
    method public int arrayIndexScale(Class);
    method @dalvik.annotation.optimization.FastNative public void copyMemory(long, long, long);
    method @dalvik.annotation.optimization.FastNative public boolean getBoolean(Object, long);
    method @dalvik.annotation.optimization.FastNative public byte getByte(Object, long);
    method @dalvik.annotation.optimization.FastNative public byte getByte(long);
    method @dalvik.annotation.optimization.FastNative public double getDouble(Object, long);
    method @dalvik.annotation.optimization.FastNative public double getDouble(long);
    method @dalvik.annotation.optimization.FastNative public float getFloat(Object, long);
    method @dalvik.annotation.optimization.FastNative public float getFloat(long);
    method @dalvik.annotation.optimization.FastNative public int getInt(Object, long);
    method @dalvik.annotation.optimization.FastNative public int getInt(long);
    method @dalvik.annotation.optimization.FastNative public long getLong(Object, long);
    method @dalvik.annotation.optimization.FastNative public long getLong(long);
    method @dalvik.annotation.optimization.FastNative public Object getObject(Object, long);
    method public static sun.misc.Unsafe getUnsafe();
    method public long objectFieldOffset(java.lang.reflect.Field);
    method @dalvik.annotation.optimization.FastNative public void putBoolean(Object, long, boolean);
    method @dalvik.annotation.optimization.FastNative public void putByte(Object, long, byte);
    method @dalvik.annotation.optimization.FastNative public void putByte(long, byte);
    method @dalvik.annotation.optimization.FastNative public void putDouble(Object, long, double);
    method @dalvik.annotation.optimization.FastNative public void putDouble(long, double);
    method @dalvik.annotation.optimization.FastNative public void putFloat(Object, long, float);
    method @dalvik.annotation.optimization.FastNative public void putFloat(long, float);
    method @dalvik.annotation.optimization.FastNative public void putInt(Object, long, int);
    method @dalvik.annotation.optimization.FastNative public void putInt(long, int);
    method @dalvik.annotation.optimization.FastNative public void putLong(Object, long, long);
    method @dalvik.annotation.optimization.FastNative public void putLong(long, long);
    method @dalvik.annotation.optimization.FastNative public void putObject(Object, long, Object);
  }

}

package sun.security.jca {

  public class Providers {
    method public static Object startJarVerification();
    method public static void stopJarVerification(Object);
  }

}

package sun.security.pkcs {

  public class PKCS7 {
    ctor public PKCS7(java.io.InputStream) throws java.io.IOException, sun.security.pkcs.ParsingException;
    ctor public PKCS7(byte[]) throws sun.security.pkcs.ParsingException;
    method public java.security.cert.X509Certificate[] getCertificates();
    method public sun.security.pkcs.SignerInfo[] getSignerInfos();
    method public sun.security.pkcs.SignerInfo verify(sun.security.pkcs.SignerInfo, java.io.InputStream) throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.SignatureException;
    method public sun.security.pkcs.SignerInfo[] verify(byte[]) throws java.security.NoSuchAlgorithmException, java.security.SignatureException;
  }

  public class ParsingException extends java.io.IOException {
  }

  public class SignerInfo {
    ctor public SignerInfo();
    method public java.util.ArrayList<java.security.cert.X509Certificate> getCertificateChain(sun.security.pkcs.PKCS7) throws java.io.IOException;
  }

}

package sun.security.util {

  public final class ObjectIdentifier implements java.io.Serializable {
    ctor public ObjectIdentifier(String) throws java.io.IOException;
  }

}

package sun.security.x509 {

  public class AlgorithmId implements java.io.Serializable {
    ctor public AlgorithmId(sun.security.util.ObjectIdentifier);
    method public String getName();
  }

}

