Migrate remaining content from ojluni.jaif to stub files.

This change makes no difference to the output of `make metalava-api-stubs-docs`.

The stubs files were generated modified form of metalava, so they are
guaranteed to contain the same members with the same annotations that
currently appear in the API stubs.

One class with no annotations is left in ojluni.jaif after this
change. That class can't be removed without changing the build rules,
because the build will try to invoke tools with empty inputs which
causes failures. A follow-up change will remove all
annotated_java_files.bp and ojluni.jaif, and remove all the build
rules around them.

Test: `make metalava-api-stubs-docs`
Bug: 111639530
Change-Id: I4cddb05aecd55194376ea9924fe08de542f70693
diff --git a/annotated_java_files.bp b/annotated_java_files.bp
index ed99a3e..4371921 100644
--- a/annotated_java_files.bp
+++ b/annotated_java_files.bp
@@ -4,44 +4,5 @@
     export_to_make_var: "annotated_ojluni_files",
     srcs: [
         "ojluni/src/main/java/java/io/PrintWriter.java",
-        "ojluni/src/main/java/java/lang/Appendable.java",
-        "ojluni/src/main/java/java/lang/Boolean.java",
-        "ojluni/src/main/java/java/lang/Byte.java",
-        "ojluni/src/main/java/java/lang/CharSequence.java",
-        "ojluni/src/main/java/java/lang/Character.java",
-        "ojluni/src/main/java/java/lang/Class.java",
-        "ojluni/src/main/java/java/lang/Double.java",
-        "ojluni/src/main/java/java/lang/Enum.java",
-        "ojluni/src/main/java/java/lang/Float.java",
-        "ojluni/src/main/java/java/lang/Integer.java",
-        "ojluni/src/main/java/java/lang/Long.java",
-        "ojluni/src/main/java/java/lang/Object.java",
-        "ojluni/src/main/java/java/lang/String.java",
-        "ojluni/src/main/java/java/lang/StringBuffer.java",
-        "ojluni/src/main/java/java/lang/StringBuilder.java",
-        "ojluni/src/main/java/java/lang/System.java",
-        "ojluni/src/main/java/java/lang/Thread.java",
-        "ojluni/src/main/java/java/lang/ThreadLocal.java",
-        "ojluni/src/main/java/java/lang/reflect/AccessibleObject.java",
-        "ojluni/src/main/java/java/lang/reflect/AnnotatedElement.java",
-        "ojluni/src/main/java/java/lang/reflect/Array.java",
-        "ojluni/src/main/java/java/lang/reflect/Constructor.java",
-        "ojluni/src/main/java/java/lang/reflect/Executable.java",
-        "ojluni/src/main/java/java/lang/reflect/Field.java",
-        "ojluni/src/main/java/java/lang/reflect/GenericArrayType.java",
-        "ojluni/src/main/java/java/lang/reflect/GenericDeclaration.java",
-        "ojluni/src/main/java/java/lang/reflect/Member.java",
-        "ojluni/src/main/java/java/lang/reflect/Method.java",
-        "ojluni/src/main/java/java/lang/reflect/Parameter.java",
-        "ojluni/src/main/java/java/lang/reflect/ParameterizedType.java",
-        "ojluni/src/main/java/java/lang/reflect/Proxy.java",
-        "ojluni/src/main/java/java/lang/reflect/Type.java",
-        "ojluni/src/main/java/java/lang/reflect/TypeVariable.java",
-        "ojluni/src/main/java/java/lang/reflect/WildcardType.java",
-        "ojluni/src/main/java/java/util/ArrayList.java",
-        "ojluni/src/main/java/java/util/HashMap.java",
-        "ojluni/src/main/java/java/util/List.java",
-        "ojluni/src/main/java/java/util/Map.java",
-        "ojluni/src/main/java/java/util/Set.java",
     ],
 }
diff --git a/annotations/ojluni.jaif b/annotations/ojluni.jaif
index 1c2f9d5..2b2bd9a 100644
--- a/annotations/ojluni.jaif
+++ b/annotations/ojluni.jaif
@@ -40,2782 +40,3 @@
 
 package java.io:
 class PrintWriter:
-
-    method <init>(Ljava/io/Writer;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/io/Writer;Z)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/io/OutputStream;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/io/OutputStream;Z)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/nio/charset/Charset;Ljava/io/File;)V:
-        return:
-
-    method <init>(Ljava/lang/String;Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/io/File;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method <init>(Ljava/io/File;Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-
-    method write([CII)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method write([C)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method write(Ljava/lang/String;II)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method write(Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method print([C)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method print(Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method print(Ljava/lang/Object;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method println(Ljava/lang/String;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method println(Ljava/lang/Object;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-
-    method printf(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-
-    method format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-
-    method format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-
-    method append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method append(Ljava/lang/CharSequence;II)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method append(C)Ljava/io/PrintWriter;:
-        return: @libcore.util.NonNull
-
-package java.lang:
-class Appendable:
-    method append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;:
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Is expected to return self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;:
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Is expected to return self
-        return: @libcore.util.NonNull
-
-    method append(C)Ljava/lang/Appendable;:
-        // Is expected to return self
-        return: @libcore.util.NonNull
-
-class Boolean:
-    method <init>(Ljava/lang/String;)V:
-        // In contrast to other type classes, doesn't NPE on null, but sets value to false
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method parseBoolean(Ljava/lang/String;)Z:
-        // In contrast to other type classes, doesn't NPE on null, but sets value to false
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method valueOf(Z)Ljava/lang/Boolean;:
-        // Always return value
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Boolean;:
-        // Null == false
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Always return value
-        return: @libcore.util.NonNull
-
-    method toString(Z)Ljava/lang/String;:
-        // Always return value
-        return: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always return value
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getBoolean(Ljava/lang/String;)Z:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method compareTo(Ljava/lang/Boolean;)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-class Byte:
-    method toString(B)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(B)Ljava/lang/Byte;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method parseByte(Ljava/lang/String;I)B:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseByte(Ljava/lang/String;)B:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;I)Ljava/lang/Byte;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Byte;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method decode(Ljava/lang/String;)Ljava/lang/Byte;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method compareTo(Ljava/lang/Byte;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toHexString(BZ)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-class Character:
-    method valueOf(C)Ljava/lang/Character;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toString(C)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method codePointAt(Ljava/lang/CharSequence;I)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointAt([CI)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointAt([CII)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointBefore(Ljava/lang/CharSequence;I)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointBefore([CI)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointBefore([CII)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toChars(I[CI)I:
-        // throws NPE
-        parameter #1:
-          type: @libcore.util.NonNull
-
-    method toChars(I)[C:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method codePointCount(Ljava/lang/CharSequence;II)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method codePointCount([CII)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method offsetByCodePoints(Ljava/lang/CharSequence;II)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method offsetByCodePoints([CIIII)I:
-        // throws NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method compareTo(Ljava/lang/Character;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method getName(I)Ljava/lang/String;:
-        // Null is a valid return value
-        return: @libcore.util.Nullable
-
-class Character$Subset:
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method hashCode()I:
-        return:
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-class Character$UnicodeBlock:
-    method of(C)Ljava/lang/Character$UnicodeBlock;:
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method of(I)Ljava/lang/Character$UnicodeBlock;:
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method forName(Ljava/lang/String;)Ljava/lang/Character$UnicodeBlock;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-class Character$UnicodeScript:
-    method of(I)Ljava/lang/Character$UnicodeScript;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method forName(Ljava/lang/String;)Ljava/lang/Character$UnicodeScript;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-class CharSequence:
-    // Always returns a string instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class Enum:
-    // Always returns an instance or throws
-    method valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;:
-        return: @libcore.util.NonNull
-
-class Integer:
-    method toString(II)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toUnsignedString(II)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toHexString(I)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toOctalString(I)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toBinaryString(I)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toString(I)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toUnsignedString(I)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-   method parseInt(Ljava/lang/String;I)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseInt(Ljava/lang/String;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseUnsignedInt(Ljava/lang/String;I)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseUnsignedInt(Ljava/lang/String;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;I)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(I)Ljava/lang/Integer;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getInteger(Ljava/lang/String;)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method getInteger(Ljava/lang/String;I)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method getInteger(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Can be null
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method decode(Ljava/lang/String;)Ljava/lang/Integer;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method compareTo(Ljava/lang/Integer;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-class Float:
-    method toString(F)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toHexString(F)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Float;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(F)Ljava/lang/Float;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method parseFloat(Ljava/lang/String;)F:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method compareTo(Ljava/lang/Float;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-class Double:
-    method toString(D)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toHexString(D)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Double;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(D)Ljava/lang/Double;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method parseDouble(Ljava/lang/String;)D:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method compareTo(Ljava/lang/Double;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-class Long:
-    method toString(JI)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toUnsignedString(JI)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toHexString(J)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toOctalString(J)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toBinaryString(J)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toString(J)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method toUnsignedString(J)Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method parseLong(Ljava/lang/String;I)J:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseLong(Ljava/lang/String;)J:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseUnsignedLong(Ljava/lang/String;I)J:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method parseUnsignedLong(Ljava/lang/String;)J:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;I)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(Ljava/lang/String;)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method valueOf(J)Ljava/lang/Long;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method decode(Ljava/lang/String;)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/String;)V:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Always returns an instance
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        // Can be null
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getLong(Ljava/lang/String;)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method getLong(Ljava/lang/String;J)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method getLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Can be null
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns null in case of failure
-        return: @libcore.util.Nullable
-
-    method compareTo(Ljava/lang/Long;)I:
-        // Throws NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-class String:
-    method <init>(Ljava/lang/String;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([C)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([CII)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([III)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BIII)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BI)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BIILjava/lang/String;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #3:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BIILjava/nio/charset/Charset;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #3:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BLjava/lang/String;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BLjava/nio/charset/Charset;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([BII)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>([B)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>(Ljava/lang/StringBuffer;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>(Ljava/lang/StringBuilder;)V:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return:
-    method <init>(II[C)V:
-        parameter #2:
-          type: @libcore.util.NonNull
-        return:
-    method getChars(II[CI)V:
-        parameter #2:
-          type: @libcore.util.NonNull
-        return:
-
-    // Always returns a string instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method getBytes(II[BI)V:
-        parameter #2:
-          type: @libcore.util.NonNull
-    // Empty array in worst case
-    method getBytes(Ljava/lang/String;)[B:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Empty array in worst case
-    method getBytes(Ljava/nio/charset/Charset;)[B:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Empty array in worst case (or throws)
-    method getBytes(Ljava/lang/String;)[B:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Empty array in worst case
-    method getBytes()[B:
-        return: @libcore.util.NonNull
-    method equals(Ljava/lang/Object;)Z:
-        parameter #0:
-          type: @libcore.util.Nullable
-    // Empty array in worst case
-    method toCharArray()[C:
-        return: @libcore.util.NonNull
-    // Empty char sequence in worst case
-    method subSequence(II)Ljava/lang/CharSequence;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method concat(Ljava/lang/String;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method copyValueOf([CII)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method copyValueOf([C)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method intern()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method replace(CC)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method substring(I)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method substring(II)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method toLowerCase(Ljava/util/Locale;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method toLowerCase()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method toUpperCase(Ljava/util/Locale;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method toUpperCase()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method trim()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(Z)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(C)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(I)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(J)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(F)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(D)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf(Ljava/lang/Object;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.Nullable
-        return:@libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf([C)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method valueOf([CII)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method split(Ljava/lang/String;I)[Ljava/lang/String;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-    // Always returns a string instance
-    method split(Ljava/lang/String;)[Ljava/lang/String;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-    // Always returns a string instance
-    method join(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-    // Always returns a string instance
-    method join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-            inner-type 3, 0, 2, 0: @libcore.util.Nullable
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    // Always returns a string instance
-    method replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-   method replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        return: @libcore.util.NonNull
-    method contentEquals(Ljava/lang/StringBuffer;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method contentEquals(Ljava/lang/CharSequence;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method equalsIgnoreCase(Ljava/lang/String;)Z:
-        parameter #0:
-          type: @libcore.util.Nullable
-    method compareTo(Ljava/lang/String;)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method compareToIgnoreCase(Ljava/lang/String;)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method regionMatches(ILjava/lang/String;II)Z:
-        parameter #1:
-          type: @libcore.util.NonNull
-    method regionMatches(ZILjava/lang/String;II)Z:
-        parameter #2:
-          type: @libcore.util.NonNull
-    method startsWith(Ljava/lang/String;I)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method startsWith(Ljava/lang/String;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method endsWith(Ljava/lang/String;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method indexOf(Ljava/lang/String;)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method indexOf(Ljava/lang/String;I)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method lastIndexOf(Ljava/lang/String;)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method lastIndexOf(Ljava/lang/String;I)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method matches(Ljava/lang/String;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method contains(Ljava/lang/CharSequence;)Z:
-        parameter #0:
-          type: @libcore.util.NonNull
-    method format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-        return: @libcore.util.NonNull
-    method format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;:
-        parameter #0:
-          type: @libcore.util.NonNull
-        parameter #1:
-          type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-        return: @libcore.util.NonNull
-
-class System:
-    // Ideally, in should be made NonNull - but it IS possible to make this final field
-    // a null using setIn(null). It makes sense to leave this field as a platform
-    // type for convenience reasons - no one sane should expect this to be null,
-    // but it's nice to have kotlin check it.
-    field in:
-
-    // Same as in "in" field
-    field out:
-
-    // Same as in "in" field
-    field err:
-
-
-    method setIn(Ljava/io/InputStream;)V:
-        // While it makes little sense, it's possible to set System.in to null.
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method setOut(Ljava/io/PrintStream;)V:
-        // While it makes little sense, it's possible to set System.out to null.
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method setErr(Ljava/io/PrintStream;)V:
-        // While it makes little sense, it's possible to set System.err to null.
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method console()Ljava/io/Console;:
-        // Always returns an instance
-        return: @libcore.util.Nullable
-
-    method inheritedChannel()Ljava/nio/channels/Channel;:
-        // Null if there's no inherited channel
-        return: @libcore.util.Nullable
-
-    method setSecurityManager(Ljava/lang/SecurityManager;)V:
-        // Null is a valid argument.
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getSecurityManager()Ljava/lang/SecurityManager;:
-        // Null is valid return value.
-        return: @libcore.util.Nullable
-
-    method arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V:
-        // NPE on null src
-        parameter #0:
-          type: @libcore.util.NonNull
-        // NPE on null dst
-        parameter #1:
-          type: @libcore.util.NonNull
-
-    method identityHashCode(Ljava/lang/Object;)I:
-        // Null is a valid argument.
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getProperties()Ljava/util/Properties;:
-        // There's always a properties object
-        return: @libcore.util.NonNull
-
-    method lineSeparator()Ljava/lang/String;:
-        // There's always a line separator string (empty in worst case)
-        return: @libcore.util.NonNull
-
-    method setProperties(Ljava/util/Properties;)V:
-        // Null is a valid argument (will reset to defaults)
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method getProperty(Ljava/lang/String;)Ljava/lang/String;:
-        // Property key can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;:
-        // Property key can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Property value can be null
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;:
-        // Property key can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Property value can be null
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method clearProperty(Ljava/lang/String;)Ljava/lang/String;:
-        // Property key can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method getenv(Ljava/lang/String;)Ljava/lang/String;:
-        // Name can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Null is valid return value
-        return: @libcore.util.Nullable
-
-    method getenv()Ljava/util/Map;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method load(Ljava/lang/String;)V:
-        // Filename can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method loadLibrary(Ljava/lang/String;)V:
-        // Libname can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method mapLibraryName(Ljava/lang/String;)Ljava/lang/String;:
-        // Libname can't be null
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Never null
-        return: @libcore.util.NonNull
-
-class StringBuffer:
-    method <init>(Ljava/lang/String;)V:
-        // NPE on null argument
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/CharSequence;)V:
-        // NPE on null argument
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method getChars(II[CI)V:
-        // NPE on null argument
-        parameter #2:
-          type: @libcore.util.NonNull
-
-    method append(Ljava/lang/Object;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/String;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/CharSequence;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append([C)Ljava/lang/StringBuffer;:
-        // Null for char[] methods result in NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append([CII)Ljava/lang/StringBuffer;:
-        // Null for char[] methods result in NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Z)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(C)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(I)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method appendCodePoint(I)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(J)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(F)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(D)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method delete(II)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method deleteCharAt(I)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method replace(IILjava/lang/String;)Ljava/lang/StringBuffer;:
-        // NPE from null
-        parameter #2:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method substring(I)Ljava/lang/String;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method subSequence(II)Ljava/lang/CharSequence;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method substring(II)Ljava/lang/String;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method insert(I[CII)Ljava/lang/StringBuffer;:
-        // Null for char[] methods result in NPE
-        parameter #1:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/Object;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/String;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(I[C)Ljava/lang/StringBuffer;:
-        // Null for char[] methods result in NPE
-        parameter #1:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuffer;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IZ)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IC)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(II)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IJ)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IF)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ID)Ljava/lang/StringBuffer;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method indexOf(Ljava/lang/String;)I:
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method indexOf(Ljava/lang/String;I)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method lastIndexOf(Ljava/lang/String;)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method lastIndexOf(Ljava/lang/String;I)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method reverse()Ljava/lang/StringBuffer;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Never null
-        return: @libcore.util.NonNull
-
-class StringBuilder:
-
-    method <init>(Ljava/lang/String;)V:
-        // NPE on null argument
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method <init>(Ljava/lang/CharSequence;)V:
-        // NPE on null argument
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method append(Ljava/lang/Object;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/String;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #0:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append([C)Ljava/lang/StringBuilder;:
-        // Null for char[] methods result in NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append([CII)Ljava/lang/StringBuilder;:
-        // Null for char[] methods result in NPE
-        parameter #0:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(Z)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(C)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(I)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(J)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(F)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method append(D)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method appendCodePoint(I)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method delete(II)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method deleteCharAt(I)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method replace(IILjava/lang/String;)Ljava/lang/StringBuilder;:
-        // NPE from null
-        parameter #2:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(I[CII)Ljava/lang/StringBuilder;:
-        // Null for char[] methods result in NPE
-        parameter #1:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/Object;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/String;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(I[C)Ljava/lang/StringBuilder;:
-        // Null for char[] methods result in NPE
-        parameter #1:
-          type: @libcore.util.NonNull
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuilder;:
-        // null -> "null"
-        parameter #1:
-          type: @libcore.util.Nullable
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IZ)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IC)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(II)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IJ)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(IF)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method insert(ID)Ljava/lang/StringBuilder;:
-        // Returns self
-        return: @libcore.util.NonNull
-
-    method indexOf(Ljava/lang/String;)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method indexOf(Ljava/lang/String;I)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method lastIndexOf(Ljava/lang/String;)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method lastIndexOf(Ljava/lang/String;I)I:
-        // NPE on null
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method reverse()Ljava/lang/StringBuilder;:
-        // Never null
-        return: @libcore.util.NonNull
-
-    method toString()Ljava/lang/String;:
-        // Never null
-        return: @libcore.util.NonNull
-
-class Thread:
-    // Always returns a string instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always return an instance
-    method currentThread()Ljava/lang/Thread;:
-        return: @libcore.util.NonNull
-
-// It would be nice to use @NullFromTypeParam in ThreadLocal
-// everywhere its <T> is used, buy sadly the code below makes it impossible:
-//
-// ThreadLocal<@NonNull Object> foo = new ThreadLocal<>();
-// assertNull(foo.get())
-//
-// Hence @Nullable T is used heavily
-class ThreadLocal:
-    method withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;:
-        // NPE on null supplier
-        parameter #0:
-          type: @libcore.util.NonNull
-	// Always returns instance
-        return: @libcore.util.NonNull
-
-    method initialValue()Ljava/lang/Object;:
-        // Returns null by default
-        return: @libcore.util.Nullable
-
-    method get()Ljava/lang/Object;:
-        // May return null
-        return: @libcore.util.Nullable
-
-    method set(Ljava/lang/Object;)V:
-        // Depends on type param
-        parameter #0:
-          type: @libcore.util.NullFromTypeParam
-
-class Object:
-
-    method getClass()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class Class:
-
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method toGenericString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method forName(Ljava/lang/String;)Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.Nullable
-
-    method newInstance()Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-
-    method isInstance(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method isAssignableFrom(Ljava/lang/Class;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method getClassLoader()Ljava/lang/ClassLoader;:
-        return: @libcore.util.Nullable
-
-    method getTypeParameters()[Ljava/lang/reflect/TypeVariable;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0,3, 0: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getSuperclass()Ljava/lang/Class;:
-        return: @libcore.util.Nullable
-
-    method getGenericSuperclass()Ljava/lang/reflect/Type;:
-        return: @libcore.util.Nullable
-
-    method getPackage()Ljava/lang/Package;:
-        return: @libcore.util.Nullable
-
-    method getInterfaces()[Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getGenericInterfaces()[Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getComponentType()Ljava/lang/Class;:
-        return: @libcore.util.Nullable
-
-    method getSigners()[Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getEnclosingMethod()Ljava/lang/reflect/Method;:
-        return: @libcore.util.Nullable
-
-    method getEnclosingConstructor()Ljava/lang/reflect/Constructor;:
-        return: @libcore.util.Nullable
-
-    method getDeclaringClass()Ljava/lang/Class;:
-        return: @libcore.util.Nullable
-
-    method getEnclosingClass()Ljava/lang/Class;:
-        return: @libcore.util.Nullable
-
-    method getSimpleName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method getTypeName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-    method getCanonicalName()Ljava/lang/String;:
-        return: @libcore.util.Nullable
-
-    method getClasses()[Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getFields()[Ljava/lang/reflect/Field;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getMethods()[Ljava/lang/reflect/Method;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getConstructors()[Ljava/lang/reflect/Constructor;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getField(Ljava/lang/String;)Ljava/lang/reflect/Field;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.Nullable
-                inner-type 0, 0: @libcore.util.NonNull
-
-    method getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-                inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredClasses()[Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredFields()[Ljava/lang/reflect/Field;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredMethods()[Ljava/lang/reflect/Method;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredConstructors()[Ljava/lang/reflect/Constructor;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-        parameter #1:
-            type: @libcore.util.Nullable
-                inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;:
-        return: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.Nullable
-                inner-type 0, 0: @libcore.util.NonNull
-
-    method getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getResource(Ljava/lang/String;)Ljava/net/URL;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getProtectionDomain()Ljava/security/ProtectionDomain;:
-        return: @libcore.util.Nullable
-
-    method getEnumConstants()[Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method cast(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method asSubclass(Ljava/lang/Class;)Ljava/lang/Class;:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method isAnnotationPresent(Ljava/lang/Class;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getAnnotationsByType(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getAnnotations()[Ljava/lang/annotation/Annotation;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method getDeclaredAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.NonNull
-
-    method isDeclaredAnnotationPresent(Ljava/lang/Class;)Z:
-        return:
-
-package java.lang.reflect:
-
-class AccessibleObject:
-    // Empty array in the worst case
-    method getAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-
-class AnnotatedElement:
-    // Empty array in the worst case
-    method getAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-
-class Array:
-    // Returns instance or throws
-    method newInstance(Ljava/lang/Class;I)Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-    // Returns instance or throws
-    method newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-
-class Constructor:
-    // Always returns an instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method toGenericString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // There's always a declaring class
-    method getDeclaringClass()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameterTypes()[Ljava/lang/Class;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Returns instance or throws
-    method newInstance([Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-
-class Executable:
-    // There's always a declaring class
-    method getDeclaringClass()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameterTypes()[Ljava/lang/Class;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getTypeParameters()[Ljava/lang/reflect/TypeVariable;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getGenericParameterTypes()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameters()[Ljava/lang/reflect/Parameter;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getExceptionTypes()[Ljava/lang/Class;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getGenericExceptionTypes()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Always returns an instance
-    method toGenericString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameterAnnotations()[[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-          inner-type 0, 0, 0, 0:  @libcore.util.NonNull
-
-class Field:
-    // Always returns an instance
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // There's always a type of a field
-    method getType()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method toGenericString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class GenericArrayType:
-    // There's always a type for array
-    method getGenericComponentType()Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-
-class GenericDeclaration:
-    // Empty array in the worst case
-    method getTypeParameters()[Ljava/lang/reflect/TypeVariable;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-
-class Member:
-    method getDeclaringClass()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class Method:
-    // There's always a declaring class
-    method getDeclaringClass()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getTypeParameters()[Ljava/lang/reflect/TypeVariable;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // There's always a return type (such as Void.class)
-    method getReturnType()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // There's always a return type (such as Void.class)
-    method getGenericReturnType()Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameterTypes()[Ljava/lang/Class;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getGenericParameterTypes()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getExceptionTypes()[Ljava/lang/Class;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getGenericExceptionTypes()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Always returns an instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method toGenericString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getParameterAnnotations()[[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-          inner-type 0, 0, 0, 0:  @libcore.util.NonNull
-
-
-class ParameterizedType:
-    // Empty array in the worst case
-    method getActualTypeArguments()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Always returns an instance
-    method getRawType()Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-
-class Parameter:
-    // Always returns an instance
-    method toString()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // There's always a declaring executable
-    method getDeclaringExecutable()Ljava/lang/reflect/Executable;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method getRealName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-    // There's always a type
-    method getParameterizedType()Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-    // There's always a type
-    method getType()Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Empty array in the worst case
-    method getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getAnnotations()[Ljava/lang/annotation/Annotation;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-
-class Proxy:
-    // Always returns an instance (or throws)
-    method getProxyClass(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;:
-        return: @libcore.util.NonNull
-    // Always returns an instance (or throws)
-    method newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-    // Always returns an instance (or throws)
-    method getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;:
-        return: @libcore.util.NonNull
-
-class Type:
-    // Always returns an instance
-    method getTypeName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class TypeVariable:
-    // Empty array in the worst case
-    method getBounds()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Always returns an instance
-    method getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;:
-        return: @libcore.util.NonNull
-    // Always returns an instance
-    method getName()Ljava/lang/String;:
-        return: @libcore.util.NonNull
-
-class WildcardType:
-    // Empty array in the worst case
-    method getUpperBounds()[Ljava/lang/reflect/Type;:
-        return: @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-    // Empty array in the worst case
-    method getLowerBounds()[Ljava/lang/reflect/Type;:
-        return:  @libcore.util.NonNull
-          inner-type 0, 0:  @libcore.util.NonNull
-
-package java.util:
-
-class ArrayList:
-
-    method <init>(Ljava/util/Collection;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method contains(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method indexOf(Ljava/lang/Object;)I:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method lastIndexOf(Ljava/lang/Object;)I:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method clone()Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-
-    method toArray()[Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-
-    method toArray([Ljava/lang/Object;)[Ljava/lang/Object;:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-
-    method get(I)Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-
-    method set(ILjava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method add(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-
-    method add(ILjava/lang/Object;)V:
-        return:
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method remove(I)Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method addAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method addAll(ILjava/util/Collection;)Z:
-        return:
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method removeAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method retainAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method listIterator(I)Ljava/util/ListIterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method listIterator()Ljava/util/ListIterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method iterator()Ljava/util/Iterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method subList(II)Ljava/util/List;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method forEach(Ljava/util/function/Consumer;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method spliterator()Ljava/util/Spliterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method removeIf(Ljava/util/function/Predicate;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method replaceAll(Ljava/util/function/UnaryOperator;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method sort(Ljava/util/Comparator;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-class HashMap:
-
-    method <init>(Ljava/util/Map;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-
-    method get(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method containsKey(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method putAll(Ljava/util/Map;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method containsValue(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method keySet()Ljava/util/Set;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method values()Ljava/util/Collection;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method entrySet()Ljava/util/Set;:
-        return: @libcore.util.NonNull
-            // N.B. The CF extract-annotations tool incorrectly omits the 1,0 from here.
-            inner-type 3, 0, 1, 0: @libcore.util.NonNull
-            inner-type 3, 0, 1, 0, 3, 0: @libcore.util.NullFromTypeParam
-            inner-type 3, 0, 1, 0, 3, 1: @libcore.util.NullFromTypeParam
-
-    method getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.Nullable
-
-    method putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.Nullable
-
-    method replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.Nullable
-        parameter #2:
-            type: @libcore.util.NullFromTypeParam
-
-    method replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.Nullable
-
-    method computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NonNull
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-    method compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.Nullable
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-    method merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NonNull
-                inner-type 3, 1,2, 0: @libcore.util.NonNull
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-    method forEach(Ljava/util/function/BiConsumer;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-
-    method replaceAll(Ljava/util/function/BiFunction;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 2,2, 0: @libcore.util.NullFromTypeParam
-
-    method clone()Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-
-class List:
-    method contains(Ljava/lang/Object;)Z:
-        // May be null
-        parameter #0:
-          type: @libcore.util.Nullable
-        return:
-
-    method iterator()Ljava/util/Iterator;:
-        // Javadoc doesn't mention possiblity of a null result
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method toArray()[Ljava/lang/Object;:
-        // Never returns null
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-
-    method toArray([Ljava/lang/Object;)[Ljava/lang/Object;:
-        // Javadoc mention NPE for param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-        // Never returns null
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-
-    method add(Ljava/lang/Object;)Z:
-        // Nullness depends on type parameter nullness
-        parameter #0:
-          type: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;)Z:
-        // param #0 has to allow nulls
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method containsAll(Ljava/util/Collection;)Z:
-        // Javadoc mention NPE for null param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method addAll(Ljava/util/Collection;)Z:
-        // Javadoc mention NPE for null param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-          // boolean addAll(Collection<? extends E> c);
-          // Nullness depends on type parameter nullness
-          inner-type 3, 0, 2, 0: @libcore.util.NullFromTypeParam
-
-    method addAll(ILjava/util/Collection;)Z:
-        // Javadoc mention NPE for null param #1
-        parameter #1:
-          type: @libcore.util.NonNull
-          // boolean addAll(int, Collection<? extends E> c);
-          inner-type 3, 0, 2, 0: @libcore.util.NullFromTypeParam
-
-    method removeAll(Ljava/util/Collection;)Z:
-        // Javadoc mention NPE for null param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method retainAll(Ljava/util/Collection;)Z:
-        // Javadoc mention NPE for null param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-
-    method replaceAll(Ljava/util/function/UnaryOperator;)V:
-        // Javadoc mention NPE for null param #0
-        parameter #0:
-          type: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method sort(Ljava/util/Comparator;)V:
-        // Javadoc mention null as valid param #0
-        parameter #0:
-          type: @libcore.util.Nullable
-          inner-type 3, 0, 2, 0: @libcore.util.NullFromTypeParam
-
-    method equals(Ljava/lang/Object;)Z:
-        // Null is valid argument #0
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method get(I)Ljava/lang/Object;:
-        // Nullness depends on type parameter nullness
-        // E get(int index);
-        return: @libcore.util.NullFromTypeParam
-
-    method set(ILjava/lang/Object;)Ljava/lang/Object;:
-        // Nullness depends on type parameter nullness
-        // E set(int index, E element);
-        parameter #1:
-          type: @libcore.util.NullFromTypeParam
-        return: @libcore.util.NullFromTypeParam
-
-    method add(ILjava/lang/Object;)V:
-        // Nullness depends on type parameter nullness
-        // void add(int index, E element);
-        parameter #1:
-          type: @libcore.util.NullFromTypeParam
-
-    method remove(I)Ljava/lang/Object;:
-        // Nullness depends on type parameter nullness
-        // E remove(int index);
-        return: @libcore.util.NullFromTypeParam
-
-    method indexOf(Ljava/lang/Object;)I:
-        // Null is valid argument
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method lastIndexOf(Ljava/lang/Object;)I:
-        // Null is valid argument
-        parameter #0:
-          type: @libcore.util.Nullable
-
-    method listIterator()Ljava/util/ListIterator;:
-        // Javadoc doesn't mention possiblity of a null result
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method listIterator(I)Ljava/util/ListIterator;:
-        // Javadoc doesn't mention possiblity of a null result
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method subList(II)Ljava/util/List;:
-         // Javadoc doesn't mention possiblity of a null result
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method spliterator()Ljava/util/Spliterator;:
-        // Javadoc doesn't mention possiblity of a null result
-        return: @libcore.util.NonNull
-
-class Map:
-
-    method containsKey(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method containsValue(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method get(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method putAll(Ljava/util/Map;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-
-    method keySet()Ljava/util/Set;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method values()Ljava/util/Collection;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method entrySet()Ljava/util/Set;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 0: @libcore.util.NullFromTypeParam
-            inner-type 3, 0,3, 1: @libcore.util.NullFromTypeParam
-
-    method equals(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.Nullable
-
-    method forEach(Ljava/util/function/BiConsumer;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-
-    method replaceAll(Ljava/util/function/BiFunction;)V:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 2,2, 0: @libcore.util.NullFromTypeParam
-
-    method putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-        parameter #1:
-            type: @libcore.util.Nullable
-
-    method replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.Nullable
-        parameter #2:
-            type: @libcore.util.NullFromTypeParam
-
-    method replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NullFromTypeParam
-
-    method computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.Nullable
-
-    method computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.NonNull
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-    method compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-                inner-type 3, 1,2, 0: @libcore.util.Nullable
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-    method merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;:
-        return: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-        parameter #1:
-            type: @libcore.util.NonNull
-        parameter #2:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NonNull
-                inner-type 3, 1,2, 0: @libcore.util.NonNull
-                inner-type 3, 2,2, 0: @libcore.util.Nullable
-
-class Map$Entry:
-
-    method getKey()Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-
-    method getValue()Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-
-    method setValue(Ljava/lang/Object;)Ljava/lang/Object;:
-        return: @libcore.util.NullFromTypeParam
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-
-    method equals(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method comparingByKey()Ljava/util/Comparator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 1: @libcore.util.Nullable
-
-    method comparingByValue()Ljava/util/Comparator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 0: @libcore.util.Nullable
-            inner-type 3, 0,3, 1: @libcore.util.NonNull
-
-    method comparingByKey(Ljava/util/Comparator;)Ljava/util/Comparator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 0: @libcore.util.NullFromTypeParam
-            inner-type 3, 0,3, 1: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method comparingByValue(Ljava/util/Comparator;)Ljava/util/Comparator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NonNull
-            inner-type 3, 0,3, 0: @libcore.util.Nullable
-            inner-type 3, 0,3, 1: @libcore.util.NullFromTypeParam
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-class Set:
-
-    method contains(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method iterator()Ljava/util/Iterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
-
-    method toArray()[Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-
-    method toArray([Ljava/lang/Object;)[Ljava/lang/Object;:
-        return: @libcore.util.NonNull
-            inner-type 0, 0: @libcore.util.Nullable
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 0, 0: @libcore.util.Nullable
-
-    method add(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NullFromTypeParam
-
-    method remove(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method containsAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method addAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-                inner-type 3, 0,2, 0: @libcore.util.NullFromTypeParam
-
-    method retainAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method removeAll(Ljava/util/Collection;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.NonNull
-
-    method equals(Ljava/lang/Object;)Z:
-        return:
-        parameter #0:
-            type: @libcore.util.Nullable
-
-    method spliterator()Ljava/util/Spliterator;:
-        return: @libcore.util.NonNull
-            inner-type 3, 0: @libcore.util.NullFromTypeParam
diff --git a/ojluni/annotations/java/io/PrintWriter.java b/ojluni/annotations/java/io/PrintWriter.java
new file mode 100644
index 0000000..430cee0
--- /dev/null
+++ b/ojluni/annotations/java/io/PrintWriter.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.io;
+
+import java.nio.charset.Charset;
+import java.util.Formatter;
+import java.util.Locale;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class PrintWriter extends java.io.Writer {
+
+public PrintWriter(@libcore.util.NonNull java.io.Writer out) { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.io.Writer out, boolean autoFlush) { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.io.OutputStream out) { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.io.OutputStream out, boolean autoFlush) { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.lang.String fileName) throws java.io.FileNotFoundException { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.lang.String fileName, @libcore.util.NonNull java.lang.String csn) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.io.File file) throws java.io.FileNotFoundException { throw new RuntimeException("Stub!"); }
+
+public PrintWriter(@libcore.util.NonNull java.io.File file, @libcore.util.NonNull java.lang.String csn) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException { throw new RuntimeException("Stub!"); }
+
+public void flush() { throw new RuntimeException("Stub!"); }
+
+public void close() { throw new RuntimeException("Stub!"); }
+
+public boolean checkError() { throw new RuntimeException("Stub!"); }
+
+protected void setError() { throw new RuntimeException("Stub!"); }
+
+protected void clearError() { throw new RuntimeException("Stub!"); }
+
+public void write(int c) { throw new RuntimeException("Stub!"); }
+
+public void write(char[] buf, int off, int len) { throw new RuntimeException("Stub!"); }
+
+public void write(char[] buf) { throw new RuntimeException("Stub!"); }
+
+public void write(@libcore.util.NonNull java.lang.String s, int off, int len) { throw new RuntimeException("Stub!"); }
+
+public void write(@libcore.util.NonNull java.lang.String s) { throw new RuntimeException("Stub!"); }
+
+public void print(boolean b) { throw new RuntimeException("Stub!"); }
+
+public void print(char c) { throw new RuntimeException("Stub!"); }
+
+public void print(int i) { throw new RuntimeException("Stub!"); }
+
+public void print(long l) { throw new RuntimeException("Stub!"); }
+
+public void print(float f) { throw new RuntimeException("Stub!"); }
+
+public void print(double d) { throw new RuntimeException("Stub!"); }
+
+public void print(char[] s) { throw new RuntimeException("Stub!"); }
+
+public void print(@libcore.util.Nullable java.lang.String s) { throw new RuntimeException("Stub!"); }
+
+public void print(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public void println() { throw new RuntimeException("Stub!"); }
+
+public void println(boolean x) { throw new RuntimeException("Stub!"); }
+
+public void println(char x) { throw new RuntimeException("Stub!"); }
+
+public void println(int x) { throw new RuntimeException("Stub!"); }
+
+public void println(long x) { throw new RuntimeException("Stub!"); }
+
+public void println(float x) { throw new RuntimeException("Stub!"); }
+
+public void println(double x) { throw new RuntimeException("Stub!"); }
+
+public void println(char[] x) { throw new RuntimeException("Stub!"); }
+
+public void println(@libcore.util.Nullable java.lang.String x) { throw new RuntimeException("Stub!"); }
+
+public void println(@libcore.util.Nullable java.lang.Object x) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter printf(@libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter printf(@libcore.util.Nullable java.util.Locale l, @libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter format(@libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter format(@libcore.util.Nullable java.util.Locale l, @libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter append(@libcore.util.Nullable java.lang.CharSequence csq) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter append(@libcore.util.Nullable java.lang.CharSequence csq, int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.io.PrintWriter append(char c) { throw new RuntimeException("Stub!"); }
+
+protected java.io.Writer out;
+}
+
diff --git a/ojluni/annotations/java/lang/Appendable.java b/ojluni/annotations/java/lang/Appendable.java
new file mode 100644
index 0000000..0ef58db
--- /dev/null
+++ b/ojluni/annotations/java/lang/Appendable.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.io.IOException;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface Appendable {
+
+@libcore.util.NonNull public java.lang.Appendable append(@libcore.util.Nullable java.lang.CharSequence csq) throws java.io.IOException;
+
+@libcore.util.NonNull public java.lang.Appendable append(@libcore.util.Nullable java.lang.CharSequence csq, int start, int end) throws java.io.IOException;
+
+@libcore.util.NonNull public java.lang.Appendable append(char c) throws java.io.IOException;
+}
+
diff --git a/ojluni/annotations/java/lang/Boolean.java b/ojluni/annotations/java/lang/Boolean.java
new file mode 100644
index 0000000..3950062
--- /dev/null
+++ b/ojluni/annotations/java/lang/Boolean.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Boolean implements java.io.Serializable, java.lang.Comparable<java.lang.Boolean> {
+
+public Boolean(boolean value) { throw new RuntimeException("Stub!"); }
+
+public Boolean(@libcore.util.Nullable java.lang.String s) { throw new RuntimeException("Stub!"); }
+
+public static boolean parseBoolean(@libcore.util.Nullable java.lang.String s) { throw new RuntimeException("Stub!"); }
+
+public boolean booleanValue() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Boolean valueOf(boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Boolean valueOf(@libcore.util.Nullable java.lang.String s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(boolean value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static boolean getBoolean(@libcore.util.NonNull java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.lang.Boolean b) { throw new RuntimeException("Stub!"); }
+
+public static int compare(boolean x, boolean y) { throw new RuntimeException("Stub!"); }
+
+public static boolean logicalAnd(boolean a, boolean b) { throw new RuntimeException("Stub!"); }
+
+public static boolean logicalOr(boolean a, boolean b) { throw new RuntimeException("Stub!"); }
+
+public static boolean logicalXor(boolean a, boolean b) { throw new RuntimeException("Stub!"); }
+
+public static final java.lang.Boolean FALSE;
+static { FALSE = null; }
+
+public static final java.lang.Boolean TRUE;
+static { TRUE = null; }
+
+public static final java.lang.Class<java.lang.Boolean> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Byte.java b/ojluni/annotations/java/lang/Byte.java
new file mode 100644
index 0000000..b64ca1e
--- /dev/null
+++ b/ojluni/annotations/java/lang/Byte.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Byte extends java.lang.Number implements java.lang.Comparable<java.lang.Byte> {
+
+public Byte(byte value) { throw new RuntimeException("Stub!"); }
+
+public Byte(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(byte b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Byte valueOf(byte b) { throw new RuntimeException("Stub!"); }
+
+public static byte parseByte(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static byte parseByte(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Byte valueOf(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Byte valueOf(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Byte decode(@libcore.util.NonNull java.lang.String nm) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public byte byteValue() { throw new RuntimeException("Stub!"); }
+
+public short shortValue() { throw new RuntimeException("Stub!"); }
+
+public int intValue() { throw new RuntimeException("Stub!"); }
+
+public long longValue() { throw new RuntimeException("Stub!"); }
+
+public float floatValue() { throw new RuntimeException("Stub!"); }
+
+public double doubleValue() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(byte value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.lang.Byte anotherByte) { throw new RuntimeException("Stub!"); }
+
+public static int compare(byte x, byte y) { throw new RuntimeException("Stub!"); }
+
+public static int toUnsignedInt(byte x) { throw new RuntimeException("Stub!"); }
+
+public static long toUnsignedLong(byte x) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 1; // 0x1
+
+public static final byte MAX_VALUE = 127; // 0x7f
+
+public static final byte MIN_VALUE = -128; // 0xffffff80
+
+public static final int SIZE = 8; // 0x8
+
+public static final java.lang.Class<java.lang.Byte> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/CharSequence.java b/ojluni/annotations/java/lang/CharSequence.java
new file mode 100644
index 0000000..4c82aa8
--- /dev/null
+++ b/ojluni/annotations/java/lang/CharSequence.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.util.stream.IntStream;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface CharSequence {
+
+public int length();
+
+public char charAt(int index);
+
+public java.lang.CharSequence subSequence(int start, int end);
+
+@libcore.util.NonNull public java.lang.String toString();
+
+public default java.util.stream.IntStream chars() { throw new RuntimeException("Stub!"); }
+
+public default java.util.stream.IntStream codePoints() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/Character.java b/ojluni/annotations/java/lang/Character.java
new file mode 100644
index 0000000..d50474f
--- /dev/null
+++ b/ojluni/annotations/java/lang/Character.java
@@ -0,0 +1,1140 @@
+/*
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.util.Locale;
+import java.util.Map;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Character implements java.io.Serializable, java.lang.Comparable<java.lang.Character> {
+
+public Character(char value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Character valueOf(char c) { throw new RuntimeException("Stub!"); }
+
+public char charValue() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(char value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(char c) { throw new RuntimeException("Stub!"); }
+
+public static boolean isValidCodePoint(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isBmpCodePoint(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isSupplementaryCodePoint(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isHighSurrogate(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLowSurrogate(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isSurrogate(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isSurrogatePair(char high, char low) { throw new RuntimeException("Stub!"); }
+
+public static int charCount(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static int toCodePoint(char high, char low) { throw new RuntimeException("Stub!"); }
+
+public static int codePointAt(@libcore.util.NonNull java.lang.CharSequence seq, int index) { throw new RuntimeException("Stub!"); }
+
+public static int codePointAt(char[] a, int index) { throw new RuntimeException("Stub!"); }
+
+public static int codePointAt(char[] a, int index, int limit) { throw new RuntimeException("Stub!"); }
+
+public static int codePointBefore(@libcore.util.NonNull java.lang.CharSequence seq, int index) { throw new RuntimeException("Stub!"); }
+
+public static int codePointBefore(char[] a, int index) { throw new RuntimeException("Stub!"); }
+
+public static int codePointBefore(char[] a, int index, int start) { throw new RuntimeException("Stub!"); }
+
+public static char highSurrogate(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static char lowSurrogate(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static int toChars(int codePoint, char[] dst, int dstIndex) { throw new RuntimeException("Stub!"); }
+
+public static char[] toChars(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static int codePointCount(@libcore.util.NonNull java.lang.CharSequence seq, int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+public static int codePointCount(char[] a, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+public static int offsetByCodePoints(@libcore.util.NonNull java.lang.CharSequence seq, int index, int codePointOffset) { throw new RuntimeException("Stub!"); }
+
+public static int offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLowerCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLowerCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUpperCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUpperCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isTitleCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isTitleCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isDigit(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isDigit(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isDefined(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isDefined(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLetter(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLetter(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLetterOrDigit(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isLetterOrDigit(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public static boolean isJavaLetter(char ch) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public static boolean isJavaLetterOrDigit(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isAlphabetic(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isIdeographic(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isJavaIdentifierStart(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isJavaIdentifierStart(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isJavaIdentifierPart(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isJavaIdentifierPart(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUnicodeIdentifierStart(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUnicodeIdentifierStart(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUnicodeIdentifierPart(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isUnicodeIdentifierPart(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isIdentifierIgnorable(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isIdentifierIgnorable(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static char toLowerCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static int toLowerCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static char toUpperCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static int toUpperCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static char toTitleCase(char ch) { throw new RuntimeException("Stub!"); }
+
+public static int toTitleCase(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static int digit(char ch, int radix) { throw new RuntimeException("Stub!"); }
+
+public static int digit(int codePoint, int radix) { throw new RuntimeException("Stub!"); }
+
+public static int getNumericValue(char ch) { throw new RuntimeException("Stub!"); }
+
+public static int getNumericValue(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public static boolean isSpace(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isSpaceChar(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isSpaceChar(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isWhitespace(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isWhitespace(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isISOControl(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isISOControl(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static int getType(char ch) { throw new RuntimeException("Stub!"); }
+
+public static int getType(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static char forDigit(int digit, int radix) { throw new RuntimeException("Stub!"); }
+
+public static byte getDirectionality(char ch) { throw new RuntimeException("Stub!"); }
+
+public static byte getDirectionality(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static boolean isMirrored(char ch) { throw new RuntimeException("Stub!"); }
+
+public static boolean isMirrored(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.lang.Character anotherCharacter) { throw new RuntimeException("Stub!"); }
+
+public static int compare(char x, char y) { throw new RuntimeException("Stub!"); }
+
+public static char reverseBytes(char ch) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String getName(int codePoint) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 2; // 0x2
+
+public static final byte COMBINING_SPACING_MARK = 8; // 0x8
+
+public static final byte CONNECTOR_PUNCTUATION = 23; // 0x17
+
+public static final byte CONTROL = 15; // 0xf
+
+public static final byte CURRENCY_SYMBOL = 26; // 0x1a
+
+public static final byte DASH_PUNCTUATION = 20; // 0x14
+
+public static final byte DECIMAL_DIGIT_NUMBER = 9; // 0x9
+
+public static final byte DIRECTIONALITY_ARABIC_NUMBER = 6; // 0x6
+
+public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = 9; // 0x9
+
+public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7; // 0x7
+
+public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = 3; // 0x3
+
+public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4; // 0x4
+
+public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5; // 0x5
+
+public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = 0; // 0x0
+
+public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14; // 0xe
+
+public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15; // 0xf
+
+public static final byte DIRECTIONALITY_NONSPACING_MARK = 8; // 0x8
+
+public static final byte DIRECTIONALITY_OTHER_NEUTRALS = 13; // 0xd
+
+public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10; // 0xa
+
+public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18; // 0x12
+
+public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = 1; // 0x1
+
+public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2; // 0x2
+
+public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16; // 0x10
+
+public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17; // 0x11
+
+public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = 11; // 0xb
+
+public static final byte DIRECTIONALITY_UNDEFINED = -1; // 0xffffffff
+
+public static final byte DIRECTIONALITY_WHITESPACE = 12; // 0xc
+
+public static final byte ENCLOSING_MARK = 7; // 0x7
+
+public static final byte END_PUNCTUATION = 22; // 0x16
+
+public static final byte FINAL_QUOTE_PUNCTUATION = 30; // 0x1e
+
+public static final byte FORMAT = 16; // 0x10
+
+public static final byte INITIAL_QUOTE_PUNCTUATION = 29; // 0x1d
+
+public static final byte LETTER_NUMBER = 10; // 0xa
+
+public static final byte LINE_SEPARATOR = 13; // 0xd
+
+public static final byte LOWERCASE_LETTER = 2; // 0x2
+
+public static final byte MATH_SYMBOL = 25; // 0x19
+
+public static final int MAX_CODE_POINT = 1114111; // 0x10ffff
+
+public static final char MAX_HIGH_SURROGATE = 56319; // 0xdbff '\udbff'
+
+public static final char MAX_LOW_SURROGATE = 57343; // 0xdfff '\udfff'
+
+public static final int MAX_RADIX = 36; // 0x24
+
+public static final char MAX_SURROGATE = 57343; // 0xdfff '\udfff'
+
+public static final char MAX_VALUE = 65535; // 0xffff '\uffff'
+
+public static final int MIN_CODE_POINT = 0; // 0x0
+
+public static final char MIN_HIGH_SURROGATE = 55296; // 0xd800 '\ud800'
+
+public static final char MIN_LOW_SURROGATE = 56320; // 0xdc00 '\udc00'
+
+public static final int MIN_RADIX = 2; // 0x2
+
+public static final int MIN_SUPPLEMENTARY_CODE_POINT = 65536; // 0x10000
+
+public static final char MIN_SURROGATE = 55296; // 0xd800 '\ud800'
+
+public static final char MIN_VALUE = 0; // 0x0000 '\u0000'
+
+public static final byte MODIFIER_LETTER = 4; // 0x4
+
+public static final byte MODIFIER_SYMBOL = 27; // 0x1b
+
+public static final byte NON_SPACING_MARK = 6; // 0x6
+
+public static final byte OTHER_LETTER = 5; // 0x5
+
+public static final byte OTHER_NUMBER = 11; // 0xb
+
+public static final byte OTHER_PUNCTUATION = 24; // 0x18
+
+public static final byte OTHER_SYMBOL = 28; // 0x1c
+
+public static final byte PARAGRAPH_SEPARATOR = 14; // 0xe
+
+public static final byte PRIVATE_USE = 18; // 0x12
+
+public static final int SIZE = 16; // 0x10
+
+public static final byte SPACE_SEPARATOR = 12; // 0xc
+
+public static final byte START_PUNCTUATION = 21; // 0x15
+
+public static final byte SURROGATE = 19; // 0x13
+
+public static final byte TITLECASE_LETTER = 3; // 0x3
+
+public static final java.lang.Class<java.lang.Character> TYPE;
+static { TYPE = null; }
+
+public static final byte UNASSIGNED = 0; // 0x0
+
+public static final byte UPPERCASE_LETTER = 1; // 0x1
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static class Subset {
+
+protected Subset(@libcore.util.NonNull java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public final boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public final int hashCode() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public final java.lang.String toString() { throw new RuntimeException("Stub!"); }
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static final class UnicodeBlock extends java.lang.Character.Subset {
+
+UnicodeBlock(java.lang.String idName) { super(null); throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Character.UnicodeBlock of(char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Character.UnicodeBlock of(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Character.UnicodeBlock forName(@libcore.util.NonNull java.lang.String blockName) { throw new RuntimeException("Stub!"); }
+
+public static final java.lang.Character.UnicodeBlock AEGEAN_NUMBERS;
+static { AEGEAN_NUMBERS = null; }
+
+public static final java.lang.Character.UnicodeBlock ALCHEMICAL_SYMBOLS;
+static { ALCHEMICAL_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock ALPHABETIC_PRESENTATION_FORMS;
+static { ALPHABETIC_PRESENTATION_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock ANCIENT_GREEK_MUSICAL_NOTATION;
+static { ANCIENT_GREEK_MUSICAL_NOTATION = null; }
+
+public static final java.lang.Character.UnicodeBlock ANCIENT_GREEK_NUMBERS;
+static { ANCIENT_GREEK_NUMBERS = null; }
+
+public static final java.lang.Character.UnicodeBlock ANCIENT_SYMBOLS;
+static { ANCIENT_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC;
+static { ARABIC = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC_EXTENDED_A;
+static { ARABIC_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
+static { ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC_PRESENTATION_FORMS_A;
+static { ARABIC_PRESENTATION_FORMS_A = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC_PRESENTATION_FORMS_B;
+static { ARABIC_PRESENTATION_FORMS_B = null; }
+
+public static final java.lang.Character.UnicodeBlock ARABIC_SUPPLEMENT;
+static { ARABIC_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock ARMENIAN;
+static { ARMENIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock ARROWS;
+static { ARROWS = null; }
+
+public static final java.lang.Character.UnicodeBlock AVESTAN;
+static { AVESTAN = null; }
+
+public static final java.lang.Character.UnicodeBlock BALINESE;
+static { BALINESE = null; }
+
+public static final java.lang.Character.UnicodeBlock BAMUM;
+static { BAMUM = null; }
+
+public static final java.lang.Character.UnicodeBlock BAMUM_SUPPLEMENT;
+static { BAMUM_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock BASIC_LATIN;
+static { BASIC_LATIN = null; }
+
+public static final java.lang.Character.UnicodeBlock BATAK;
+static { BATAK = null; }
+
+public static final java.lang.Character.UnicodeBlock BENGALI;
+static { BENGALI = null; }
+
+public static final java.lang.Character.UnicodeBlock BLOCK_ELEMENTS;
+static { BLOCK_ELEMENTS = null; }
+
+public static final java.lang.Character.UnicodeBlock BOPOMOFO;
+static { BOPOMOFO = null; }
+
+public static final java.lang.Character.UnicodeBlock BOPOMOFO_EXTENDED;
+static { BOPOMOFO_EXTENDED = null; }
+
+public static final java.lang.Character.UnicodeBlock BOX_DRAWING;
+static { BOX_DRAWING = null; }
+
+public static final java.lang.Character.UnicodeBlock BRAHMI;
+static { BRAHMI = null; }
+
+public static final java.lang.Character.UnicodeBlock BRAILLE_PATTERNS;
+static { BRAILLE_PATTERNS = null; }
+
+public static final java.lang.Character.UnicodeBlock BUGINESE;
+static { BUGINESE = null; }
+
+public static final java.lang.Character.UnicodeBlock BUHID;
+static { BUHID = null; }
+
+public static final java.lang.Character.UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS;
+static { BYZANTINE_MUSICAL_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock CARIAN;
+static { CARIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock CHAKMA;
+static { CHAKMA = null; }
+
+public static final java.lang.Character.UnicodeBlock CHAM;
+static { CHAM = null; }
+
+public static final java.lang.Character.UnicodeBlock CHEROKEE;
+static { CHEROKEE = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_COMPATIBILITY;
+static { CJK_COMPATIBILITY = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_COMPATIBILITY_FORMS;
+static { CJK_COMPATIBILITY_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS;
+static { CJK_COMPATIBILITY_IDEOGRAPHS = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
+static { CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_RADICALS_SUPPLEMENT;
+static { CJK_RADICALS_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_STROKES;
+static { CJK_STROKES = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION;
+static { CJK_SYMBOLS_AND_PUNCTUATION = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS;
+static { CJK_UNIFIED_IDEOGRAPHS = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
+static { CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
+static { CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
+static { CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = null; }
+
+public static final java.lang.Character.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
+static { CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = null; }
+
+public static final java.lang.Character.UnicodeBlock COMBINING_DIACRITICAL_MARKS;
+static { COMBINING_DIACRITICAL_MARKS = null; }
+
+public static final java.lang.Character.UnicodeBlock COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
+static { COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock COMBINING_HALF_MARKS;
+static { COMBINING_HALF_MARKS = null; }
+
+public static final java.lang.Character.UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS;
+static { COMBINING_MARKS_FOR_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock COMMON_INDIC_NUMBER_FORMS;
+static { COMMON_INDIC_NUMBER_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock CONTROL_PICTURES;
+static { CONTROL_PICTURES = null; }
+
+public static final java.lang.Character.UnicodeBlock COPTIC;
+static { COPTIC = null; }
+
+public static final java.lang.Character.UnicodeBlock COUNTING_ROD_NUMERALS;
+static { COUNTING_ROD_NUMERALS = null; }
+
+public static final java.lang.Character.UnicodeBlock CUNEIFORM;
+static { CUNEIFORM = null; }
+
+public static final java.lang.Character.UnicodeBlock CUNEIFORM_NUMBERS_AND_PUNCTUATION;
+static { CUNEIFORM_NUMBERS_AND_PUNCTUATION = null; }
+
+public static final java.lang.Character.UnicodeBlock CURRENCY_SYMBOLS;
+static { CURRENCY_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock CYPRIOT_SYLLABARY;
+static { CYPRIOT_SYLLABARY = null; }
+
+public static final java.lang.Character.UnicodeBlock CYRILLIC;
+static { CYRILLIC = null; }
+
+public static final java.lang.Character.UnicodeBlock CYRILLIC_EXTENDED_A;
+static { CYRILLIC_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock CYRILLIC_EXTENDED_B;
+static { CYRILLIC_EXTENDED_B = null; }
+
+public static final java.lang.Character.UnicodeBlock CYRILLIC_SUPPLEMENTARY;
+static { CYRILLIC_SUPPLEMENTARY = null; }
+
+public static final java.lang.Character.UnicodeBlock DESERET;
+static { DESERET = null; }
+
+public static final java.lang.Character.UnicodeBlock DEVANAGARI;
+static { DEVANAGARI = null; }
+
+public static final java.lang.Character.UnicodeBlock DEVANAGARI_EXTENDED;
+static { DEVANAGARI_EXTENDED = null; }
+
+public static final java.lang.Character.UnicodeBlock DINGBATS;
+static { DINGBATS = null; }
+
+public static final java.lang.Character.UnicodeBlock DOMINO_TILES;
+static { DOMINO_TILES = null; }
+
+public static final java.lang.Character.UnicodeBlock EGYPTIAN_HIEROGLYPHS;
+static { EGYPTIAN_HIEROGLYPHS = null; }
+
+public static final java.lang.Character.UnicodeBlock EMOTICONS;
+static { EMOTICONS = null; }
+
+public static final java.lang.Character.UnicodeBlock ENCLOSED_ALPHANUMERICS;
+static { ENCLOSED_ALPHANUMERICS = null; }
+
+public static final java.lang.Character.UnicodeBlock ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
+static { ENCLOSED_ALPHANUMERIC_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS;
+static { ENCLOSED_CJK_LETTERS_AND_MONTHS = null; }
+
+public static final java.lang.Character.UnicodeBlock ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
+static { ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock ETHIOPIC;
+static { ETHIOPIC = null; }
+
+public static final java.lang.Character.UnicodeBlock ETHIOPIC_EXTENDED;
+static { ETHIOPIC_EXTENDED = null; }
+
+public static final java.lang.Character.UnicodeBlock ETHIOPIC_EXTENDED_A;
+static { ETHIOPIC_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock ETHIOPIC_SUPPLEMENT;
+static { ETHIOPIC_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock GENERAL_PUNCTUATION;
+static { GENERAL_PUNCTUATION = null; }
+
+public static final java.lang.Character.UnicodeBlock GEOMETRIC_SHAPES;
+static { GEOMETRIC_SHAPES = null; }
+
+public static final java.lang.Character.UnicodeBlock GEORGIAN;
+static { GEORGIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock GEORGIAN_SUPPLEMENT;
+static { GEORGIAN_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock GLAGOLITIC;
+static { GLAGOLITIC = null; }
+
+public static final java.lang.Character.UnicodeBlock GOTHIC;
+static { GOTHIC = null; }
+
+public static final java.lang.Character.UnicodeBlock GREEK;
+static { GREEK = null; }
+
+public static final java.lang.Character.UnicodeBlock GREEK_EXTENDED;
+static { GREEK_EXTENDED = null; }
+
+public static final java.lang.Character.UnicodeBlock GUJARATI;
+static { GUJARATI = null; }
+
+public static final java.lang.Character.UnicodeBlock GURMUKHI;
+static { GURMUKHI = null; }
+
+public static final java.lang.Character.UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS;
+static { HALFWIDTH_AND_FULLWIDTH_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock HANGUL_COMPATIBILITY_JAMO;
+static { HANGUL_COMPATIBILITY_JAMO = null; }
+
+public static final java.lang.Character.UnicodeBlock HANGUL_JAMO;
+static { HANGUL_JAMO = null; }
+
+public static final java.lang.Character.UnicodeBlock HANGUL_JAMO_EXTENDED_A;
+static { HANGUL_JAMO_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock HANGUL_JAMO_EXTENDED_B;
+static { HANGUL_JAMO_EXTENDED_B = null; }
+
+public static final java.lang.Character.UnicodeBlock HANGUL_SYLLABLES;
+static { HANGUL_SYLLABLES = null; }
+
+public static final java.lang.Character.UnicodeBlock HANUNOO;
+static { HANUNOO = null; }
+
+public static final java.lang.Character.UnicodeBlock HEBREW;
+static { HEBREW = null; }
+
+public static final java.lang.Character.UnicodeBlock HIGH_PRIVATE_USE_SURROGATES;
+static { HIGH_PRIVATE_USE_SURROGATES = null; }
+
+public static final java.lang.Character.UnicodeBlock HIGH_SURROGATES;
+static { HIGH_SURROGATES = null; }
+
+public static final java.lang.Character.UnicodeBlock HIRAGANA;
+static { HIRAGANA = null; }
+
+public static final java.lang.Character.UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
+static { IDEOGRAPHIC_DESCRIPTION_CHARACTERS = null; }
+
+public static final java.lang.Character.UnicodeBlock IMPERIAL_ARAMAIC;
+static { IMPERIAL_ARAMAIC = null; }
+
+public static final java.lang.Character.UnicodeBlock INSCRIPTIONAL_PAHLAVI;
+static { INSCRIPTIONAL_PAHLAVI = null; }
+
+public static final java.lang.Character.UnicodeBlock INSCRIPTIONAL_PARTHIAN;
+static { INSCRIPTIONAL_PARTHIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock IPA_EXTENSIONS;
+static { IPA_EXTENSIONS = null; }
+
+public static final java.lang.Character.UnicodeBlock JAVANESE;
+static { JAVANESE = null; }
+
+public static final java.lang.Character.UnicodeBlock KAITHI;
+static { KAITHI = null; }
+
+public static final java.lang.Character.UnicodeBlock KANA_SUPPLEMENT;
+static { KANA_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock KANBUN;
+static { KANBUN = null; }
+
+public static final java.lang.Character.UnicodeBlock KANGXI_RADICALS;
+static { KANGXI_RADICALS = null; }
+
+public static final java.lang.Character.UnicodeBlock KANNADA;
+static { KANNADA = null; }
+
+public static final java.lang.Character.UnicodeBlock KATAKANA;
+static { KATAKANA = null; }
+
+public static final java.lang.Character.UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS;
+static { KATAKANA_PHONETIC_EXTENSIONS = null; }
+
+public static final java.lang.Character.UnicodeBlock KAYAH_LI;
+static { KAYAH_LI = null; }
+
+public static final java.lang.Character.UnicodeBlock KHAROSHTHI;
+static { KHAROSHTHI = null; }
+
+public static final java.lang.Character.UnicodeBlock KHMER;
+static { KHMER = null; }
+
+public static final java.lang.Character.UnicodeBlock KHMER_SYMBOLS;
+static { KHMER_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock LAO;
+static { LAO = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_1_SUPPLEMENT;
+static { LATIN_1_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_EXTENDED_A;
+static { LATIN_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_EXTENDED_ADDITIONAL;
+static { LATIN_EXTENDED_ADDITIONAL = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_EXTENDED_B;
+static { LATIN_EXTENDED_B = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_EXTENDED_C;
+static { LATIN_EXTENDED_C = null; }
+
+public static final java.lang.Character.UnicodeBlock LATIN_EXTENDED_D;
+static { LATIN_EXTENDED_D = null; }
+
+public static final java.lang.Character.UnicodeBlock LEPCHA;
+static { LEPCHA = null; }
+
+public static final java.lang.Character.UnicodeBlock LETTERLIKE_SYMBOLS;
+static { LETTERLIKE_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock LIMBU;
+static { LIMBU = null; }
+
+public static final java.lang.Character.UnicodeBlock LINEAR_B_IDEOGRAMS;
+static { LINEAR_B_IDEOGRAMS = null; }
+
+public static final java.lang.Character.UnicodeBlock LINEAR_B_SYLLABARY;
+static { LINEAR_B_SYLLABARY = null; }
+
+public static final java.lang.Character.UnicodeBlock LISU;
+static { LISU = null; }
+
+public static final java.lang.Character.UnicodeBlock LOW_SURROGATES;
+static { LOW_SURROGATES = null; }
+
+public static final java.lang.Character.UnicodeBlock LYCIAN;
+static { LYCIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock LYDIAN;
+static { LYDIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock MAHJONG_TILES;
+static { MAHJONG_TILES = null; }
+
+public static final java.lang.Character.UnicodeBlock MALAYALAM;
+static { MALAYALAM = null; }
+
+public static final java.lang.Character.UnicodeBlock MANDAIC;
+static { MANDAIC = null; }
+
+public static final java.lang.Character.UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
+static { MATHEMATICAL_ALPHANUMERIC_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock MATHEMATICAL_OPERATORS;
+static { MATHEMATICAL_OPERATORS = null; }
+
+public static final java.lang.Character.UnicodeBlock MEETEI_MAYEK;
+static { MEETEI_MAYEK = null; }
+
+public static final java.lang.Character.UnicodeBlock MEETEI_MAYEK_EXTENSIONS;
+static { MEETEI_MAYEK_EXTENSIONS = null; }
+
+public static final java.lang.Character.UnicodeBlock MEROITIC_CURSIVE;
+static { MEROITIC_CURSIVE = null; }
+
+public static final java.lang.Character.UnicodeBlock MEROITIC_HIEROGLYPHS;
+static { MEROITIC_HIEROGLYPHS = null; }
+
+public static final java.lang.Character.UnicodeBlock MIAO;
+static { MIAO = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
+static { MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
+static { MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_SYMBOLS;
+static { MISCELLANEOUS_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS;
+static { MISCELLANEOUS_SYMBOLS_AND_ARROWS = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
+static { MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = null; }
+
+public static final java.lang.Character.UnicodeBlock MISCELLANEOUS_TECHNICAL;
+static { MISCELLANEOUS_TECHNICAL = null; }
+
+public static final java.lang.Character.UnicodeBlock MODIFIER_TONE_LETTERS;
+static { MODIFIER_TONE_LETTERS = null; }
+
+public static final java.lang.Character.UnicodeBlock MONGOLIAN;
+static { MONGOLIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock MUSICAL_SYMBOLS;
+static { MUSICAL_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock MYANMAR;
+static { MYANMAR = null; }
+
+public static final java.lang.Character.UnicodeBlock MYANMAR_EXTENDED_A;
+static { MYANMAR_EXTENDED_A = null; }
+
+public static final java.lang.Character.UnicodeBlock NEW_TAI_LUE;
+static { NEW_TAI_LUE = null; }
+
+public static final java.lang.Character.UnicodeBlock NKO;
+static { NKO = null; }
+
+public static final java.lang.Character.UnicodeBlock NUMBER_FORMS;
+static { NUMBER_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock OGHAM;
+static { OGHAM = null; }
+
+public static final java.lang.Character.UnicodeBlock OLD_ITALIC;
+static { OLD_ITALIC = null; }
+
+public static final java.lang.Character.UnicodeBlock OLD_PERSIAN;
+static { OLD_PERSIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock OLD_SOUTH_ARABIAN;
+static { OLD_SOUTH_ARABIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock OLD_TURKIC;
+static { OLD_TURKIC = null; }
+
+public static final java.lang.Character.UnicodeBlock OL_CHIKI;
+static { OL_CHIKI = null; }
+
+public static final java.lang.Character.UnicodeBlock OPTICAL_CHARACTER_RECOGNITION;
+static { OPTICAL_CHARACTER_RECOGNITION = null; }
+
+public static final java.lang.Character.UnicodeBlock ORIYA;
+static { ORIYA = null; }
+
+public static final java.lang.Character.UnicodeBlock OSMANYA;
+static { OSMANYA = null; }
+
+public static final java.lang.Character.UnicodeBlock PHAGS_PA;
+static { PHAGS_PA = null; }
+
+public static final java.lang.Character.UnicodeBlock PHAISTOS_DISC;
+static { PHAISTOS_DISC = null; }
+
+public static final java.lang.Character.UnicodeBlock PHOENICIAN;
+static { PHOENICIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock PHONETIC_EXTENSIONS;
+static { PHONETIC_EXTENSIONS = null; }
+
+public static final java.lang.Character.UnicodeBlock PHONETIC_EXTENSIONS_SUPPLEMENT;
+static { PHONETIC_EXTENSIONS_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock PLAYING_CARDS;
+static { PLAYING_CARDS = null; }
+
+public static final java.lang.Character.UnicodeBlock PRIVATE_USE_AREA;
+static { PRIVATE_USE_AREA = null; }
+
+public static final java.lang.Character.UnicodeBlock REJANG;
+static { REJANG = null; }
+
+public static final java.lang.Character.UnicodeBlock RUMI_NUMERAL_SYMBOLS;
+static { RUMI_NUMERAL_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock RUNIC;
+static { RUNIC = null; }
+
+public static final java.lang.Character.UnicodeBlock SAMARITAN;
+static { SAMARITAN = null; }
+
+public static final java.lang.Character.UnicodeBlock SAURASHTRA;
+static { SAURASHTRA = null; }
+
+public static final java.lang.Character.UnicodeBlock SHARADA;
+static { SHARADA = null; }
+
+public static final java.lang.Character.UnicodeBlock SHAVIAN;
+static { SHAVIAN = null; }
+
+public static final java.lang.Character.UnicodeBlock SINHALA;
+static { SINHALA = null; }
+
+public static final java.lang.Character.UnicodeBlock SMALL_FORM_VARIANTS;
+static { SMALL_FORM_VARIANTS = null; }
+
+public static final java.lang.Character.UnicodeBlock SORA_SOMPENG;
+static { SORA_SOMPENG = null; }
+
+public static final java.lang.Character.UnicodeBlock SPACING_MODIFIER_LETTERS;
+static { SPACING_MODIFIER_LETTERS = null; }
+
+public static final java.lang.Character.UnicodeBlock SPECIALS;
+static { SPECIALS = null; }
+
+public static final java.lang.Character.UnicodeBlock SUNDANESE;
+static { SUNDANESE = null; }
+
+public static final java.lang.Character.UnicodeBlock SUNDANESE_SUPPLEMENT;
+static { SUNDANESE_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS;
+static { SUPERSCRIPTS_AND_SUBSCRIPTS = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTAL_ARROWS_A;
+static { SUPPLEMENTAL_ARROWS_A = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTAL_ARROWS_B;
+static { SUPPLEMENTAL_ARROWS_B = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
+static { SUPPLEMENTAL_MATHEMATICAL_OPERATORS = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTAL_PUNCTUATION;
+static { SUPPLEMENTAL_PUNCTUATION = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A;
+static { SUPPLEMENTARY_PRIVATE_USE_AREA_A = null; }
+
+public static final java.lang.Character.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B;
+static { SUPPLEMENTARY_PRIVATE_USE_AREA_B = null; }
+
+@Deprecated public static final java.lang.Character.UnicodeBlock SURROGATES_AREA;
+static { SURROGATES_AREA = null; }
+
+public static final java.lang.Character.UnicodeBlock SYLOTI_NAGRI;
+static { SYLOTI_NAGRI = null; }
+
+public static final java.lang.Character.UnicodeBlock SYRIAC;
+static { SYRIAC = null; }
+
+public static final java.lang.Character.UnicodeBlock TAGALOG;
+static { TAGALOG = null; }
+
+public static final java.lang.Character.UnicodeBlock TAGBANWA;
+static { TAGBANWA = null; }
+
+public static final java.lang.Character.UnicodeBlock TAGS;
+static { TAGS = null; }
+
+public static final java.lang.Character.UnicodeBlock TAI_LE;
+static { TAI_LE = null; }
+
+public static final java.lang.Character.UnicodeBlock TAI_THAM;
+static { TAI_THAM = null; }
+
+public static final java.lang.Character.UnicodeBlock TAI_VIET;
+static { TAI_VIET = null; }
+
+public static final java.lang.Character.UnicodeBlock TAI_XUAN_JING_SYMBOLS;
+static { TAI_XUAN_JING_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock TAKRI;
+static { TAKRI = null; }
+
+public static final java.lang.Character.UnicodeBlock TAMIL;
+static { TAMIL = null; }
+
+public static final java.lang.Character.UnicodeBlock TELUGU;
+static { TELUGU = null; }
+
+public static final java.lang.Character.UnicodeBlock THAANA;
+static { THAANA = null; }
+
+public static final java.lang.Character.UnicodeBlock THAI;
+static { THAI = null; }
+
+public static final java.lang.Character.UnicodeBlock TIBETAN;
+static { TIBETAN = null; }
+
+public static final java.lang.Character.UnicodeBlock TIFINAGH;
+static { TIFINAGH = null; }
+
+public static final java.lang.Character.UnicodeBlock TRANSPORT_AND_MAP_SYMBOLS;
+static { TRANSPORT_AND_MAP_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock UGARITIC;
+static { UGARITIC = null; }
+
+public static final java.lang.Character.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
+static { UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = null; }
+
+public static final java.lang.Character.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
+static { UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = null; }
+
+public static final java.lang.Character.UnicodeBlock VAI;
+static { VAI = null; }
+
+public static final java.lang.Character.UnicodeBlock VARIATION_SELECTORS;
+static { VARIATION_SELECTORS = null; }
+
+public static final java.lang.Character.UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT;
+static { VARIATION_SELECTORS_SUPPLEMENT = null; }
+
+public static final java.lang.Character.UnicodeBlock VEDIC_EXTENSIONS;
+static { VEDIC_EXTENSIONS = null; }
+
+public static final java.lang.Character.UnicodeBlock VERTICAL_FORMS;
+static { VERTICAL_FORMS = null; }
+
+public static final java.lang.Character.UnicodeBlock YIJING_HEXAGRAM_SYMBOLS;
+static { YIJING_HEXAGRAM_SYMBOLS = null; }
+
+public static final java.lang.Character.UnicodeBlock YI_RADICALS;
+static { YI_RADICALS = null; }
+
+public static final java.lang.Character.UnicodeBlock YI_SYLLABLES;
+static { YI_SYLLABLES = null; }
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static enum UnicodeScript {
+COMMON,
+LATIN,
+GREEK,
+CYRILLIC,
+ARMENIAN,
+HEBREW,
+ARABIC,
+SYRIAC,
+THAANA,
+DEVANAGARI,
+BENGALI,
+GURMUKHI,
+GUJARATI,
+ORIYA,
+TAMIL,
+TELUGU,
+KANNADA,
+MALAYALAM,
+SINHALA,
+THAI,
+LAO,
+TIBETAN,
+MYANMAR,
+GEORGIAN,
+HANGUL,
+ETHIOPIC,
+CHEROKEE,
+CANADIAN_ABORIGINAL,
+OGHAM,
+RUNIC,
+KHMER,
+MONGOLIAN,
+HIRAGANA,
+KATAKANA,
+BOPOMOFO,
+HAN,
+YI,
+OLD_ITALIC,
+GOTHIC,
+DESERET,
+INHERITED,
+TAGALOG,
+HANUNOO,
+BUHID,
+TAGBANWA,
+LIMBU,
+TAI_LE,
+LINEAR_B,
+UGARITIC,
+SHAVIAN,
+OSMANYA,
+CYPRIOT,
+BRAILLE,
+BUGINESE,
+COPTIC,
+NEW_TAI_LUE,
+GLAGOLITIC,
+TIFINAGH,
+SYLOTI_NAGRI,
+OLD_PERSIAN,
+KHAROSHTHI,
+BALINESE,
+CUNEIFORM,
+PHOENICIAN,
+PHAGS_PA,
+NKO,
+SUNDANESE,
+BATAK,
+LEPCHA,
+OL_CHIKI,
+VAI,
+SAURASHTRA,
+KAYAH_LI,
+REJANG,
+LYCIAN,
+CARIAN,
+LYDIAN,
+CHAM,
+TAI_THAM,
+TAI_VIET,
+AVESTAN,
+EGYPTIAN_HIEROGLYPHS,
+SAMARITAN,
+MANDAIC,
+LISU,
+BAMUM,
+JAVANESE,
+MEETEI_MAYEK,
+IMPERIAL_ARAMAIC,
+OLD_SOUTH_ARABIAN,
+INSCRIPTIONAL_PARTHIAN,
+INSCRIPTIONAL_PAHLAVI,
+OLD_TURKIC,
+BRAHMI,
+KAITHI,
+MEROITIC_HIEROGLYPHS,
+MEROITIC_CURSIVE,
+SORA_SOMPENG,
+CHAKMA,
+SHARADA,
+TAKRI,
+MIAO,
+UNKNOWN;
+
+@libcore.util.NonNull public static java.lang.Character.UnicodeScript of(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Character.UnicodeScript forName(@libcore.util.NonNull java.lang.String scriptName) { throw new RuntimeException("Stub!"); }
+}
+
+}
+
diff --git a/ojluni/annotations/java/lang/Class.java b/ojluni/annotations/java/lang/Class.java
new file mode 100644
index 0000000..ae2c6ca
--- /dev/null
+++ b/ojluni/annotations/java/lang/Class.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Type;
+import java.lang.reflect.GenericDeclaration;
+import java.lang.reflect.TypeVariable;
+import java.io.Serializable;
+import java.lang.reflect.Array;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Method;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.io.InputStream;
+import java.util.HashMap;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Class<T> implements java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lang.reflect.Type, java.lang.reflect.AnnotatedElement {
+
+Class() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toGenericString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Class<?> forName(@libcore.util.NonNull java.lang.String className) throws java.lang.ClassNotFoundException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Class<?> forName(@libcore.util.NonNull java.lang.String name, boolean initialize, @libcore.util.Nullable java.lang.ClassLoader loader) throws java.lang.ClassNotFoundException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native T newInstance() throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+
+public boolean isInstance(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public boolean isAssignableFrom(@libcore.util.NonNull java.lang.Class<?> cls) { throw new RuntimeException("Stub!"); }
+
+public boolean isInterface() { throw new RuntimeException("Stub!"); }
+
+public boolean isArray() { throw new RuntimeException("Stub!"); }
+
+public boolean isPrimitive() { throw new RuntimeException("Stub!"); }
+
+public boolean isAnnotation() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.ClassLoader getClassLoader() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.reflect.TypeVariable<java.lang.Class<T>>[] getTypeParameters() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.Class<? super T> getSuperclass() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.reflect.Type getGenericSuperclass() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.Package getPackage() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?>[] getInterfaces() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getGenericInterfaces() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.Class<?> getComponentType() { throw new RuntimeException("Stub!"); }
+
+public int getModifiers() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Object[] getSigners() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.reflect.Method getEnclosingMethod() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.reflect.Constructor<?> getEnclosingConstructor() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public native java.lang.Class<?> getDeclaringClass();
+
+@libcore.util.Nullable public native java.lang.Class<?> getEnclosingClass();
+
+@libcore.util.NonNull public java.lang.String getSimpleName() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getTypeName() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.String getCanonicalName() { throw new RuntimeException("Stub!"); }
+
+public native boolean isAnonymousClass();
+
+public boolean isLocalClass() { throw new RuntimeException("Stub!"); }
+
+public boolean isMemberClass() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?>[] getClasses() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Field[] getFields() throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Method[] getMethods() throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Constructor<?>[] getConstructors() throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Field getField(@libcore.util.NonNull java.lang.String name) throws java.lang.NoSuchFieldException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Method getMethod(@libcore.util.NonNull java.lang.String name, @libcore.util.NonNull java.lang.Class<?>... parameterTypes) throws java.lang.NoSuchMethodException, java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Constructor<T> getConstructor(@libcore.util.NonNull java.lang.Class<?>... parameterTypes) throws java.lang.NoSuchMethodException, java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native java.lang.Class<?>[] getDeclaredClasses();
+
+@libcore.util.NonNull public native java.lang.reflect.Field[] getDeclaredFields();
+
+@libcore.util.NonNull public java.lang.reflect.Method[] getDeclaredMethods() throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Constructor<?>[] getDeclaredConstructors() throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native java.lang.reflect.Field getDeclaredField(@libcore.util.NonNull java.lang.String name) throws java.lang.NoSuchFieldException;
+
+@libcore.util.NonNull public java.lang.reflect.Method getDeclaredMethod(@libcore.util.NonNull java.lang.String name, @libcore.util.NonNull java.lang.Class<?>... parameterTypes) throws java.lang.NoSuchMethodException, java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Constructor<T> getDeclaredConstructor(@libcore.util.NonNull java.lang.Class<?>... parameterTypes) throws java.lang.NoSuchMethodException, java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.io.InputStream getResourceAsStream(@libcore.util.NonNull java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public java.net.URL getResource(@libcore.util.NonNull java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public java.security.ProtectionDomain getProtectionDomain() { throw new RuntimeException("Stub!"); }
+
+public boolean desiredAssertionStatus() { throw new RuntimeException("Stub!"); }
+
+public boolean isEnum() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public T[] getEnumConstants() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public T cast(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public <U> java.lang.Class<? extends U> asSubclass(@libcore.util.NonNull java.lang.Class<U> clazz) { throw new RuntimeException("Stub!"); }
+
+public <A extends java.lang.annotation.Annotation> A getAnnotation(@libcore.util.NonNull java.lang.Class<A> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public boolean isAnnotationPresent(@libcore.util.NonNull java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(@libcore.util.NonNull java.lang.Class<A> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getAnnotations() { throw new RuntimeException("Stub!"); }
+
+public native <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(@libcore.util.NonNull java.lang.Class<A> annotationClass);
+
+@libcore.util.NonNull public native java.lang.annotation.Annotation[] getDeclaredAnnotations();
+}
+
diff --git a/ojluni/annotations/java/lang/Double.java b/ojluni/annotations/java/lang/Double.java
new file mode 100644
index 0000000..8f565fc
--- /dev/null
+++ b/ojluni/annotations/java/lang/Double.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Double extends java.lang.Number implements java.lang.Comparable<java.lang.Double> {
+
+public Double(double value) { throw new RuntimeException("Stub!"); }
+
+public Double(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(double d) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toHexString(double d) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Double valueOf(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Double valueOf(double d) { throw new RuntimeException("Stub!"); }
+
+public static double parseDouble(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static boolean isNaN(double v) { throw new RuntimeException("Stub!"); }
+
+public static boolean isInfinite(double v) { throw new RuntimeException("Stub!"); }
+
+public static boolean isFinite(double d) { throw new RuntimeException("Stub!"); }
+
+public boolean isNaN() { throw new RuntimeException("Stub!"); }
+
+public boolean isInfinite() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public byte byteValue() { throw new RuntimeException("Stub!"); }
+
+public short shortValue() { throw new RuntimeException("Stub!"); }
+
+public int intValue() { throw new RuntimeException("Stub!"); }
+
+public long longValue() { throw new RuntimeException("Stub!"); }
+
+public float floatValue() { throw new RuntimeException("Stub!"); }
+
+public double doubleValue() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(double value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public static long doubleToLongBits(double value) { throw new RuntimeException("Stub!"); }
+
+public static native long doubleToRawLongBits(double value);
+
+public static native double longBitsToDouble(long bits);
+
+public int compareTo(@libcore.util.NonNull java.lang.Double anotherDouble) { throw new RuntimeException("Stub!"); }
+
+public static int compare(double d1, double d2) { throw new RuntimeException("Stub!"); }
+
+public static double sum(double a, double b) { throw new RuntimeException("Stub!"); }
+
+public static double max(double a, double b) { throw new RuntimeException("Stub!"); }
+
+public static double min(double a, double b) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 8; // 0x8
+
+public static final int MAX_EXPONENT = 1023; // 0x3ff
+
+public static final double MAX_VALUE = 1.7976931348623157E308;
+
+public static final int MIN_EXPONENT = -1022; // 0xfffffc02
+
+public static final double MIN_NORMAL = 2.2250738585072014E-308;
+
+public static final double MIN_VALUE = 4.9E-324;
+
+public static final double NEGATIVE_INFINITY = (-1.0/0.0);
+
+public static final double NaN = (0.0/0.0);
+
+public static final double POSITIVE_INFINITY = (1.0/0.0);
+
+public static final int SIZE = 64; // 0x40
+
+public static final java.lang.Class<java.lang.Double> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Enum.java b/ojluni/annotations/java/lang/Enum.java
new file mode 100644
index 0000000..75c7662
--- /dev/null
+++ b/ojluni/annotations/java/lang/Enum.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public abstract class Enum<E extends java.lang.Enum<E>> implements java.lang.Comparable<E>, java.io.Serializable {
+
+protected Enum(java.lang.String name, int ordinal) { throw new RuntimeException("Stub!"); }
+
+public final java.lang.String name() { throw new RuntimeException("Stub!"); }
+
+public final int ordinal() { throw new RuntimeException("Stub!"); }
+
+public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public final boolean equals(java.lang.Object other) { throw new RuntimeException("Stub!"); }
+
+public final int hashCode() { throw new RuntimeException("Stub!"); }
+
+protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException { throw new RuntimeException("Stub!"); }
+
+public final int compareTo(E o) { throw new RuntimeException("Stub!"); }
+
+public final java.lang.Class<E> getDeclaringClass() { throw new RuntimeException("Stub!"); }
+
+public static <T extends java.lang.Enum<T>> T valueOf(java.lang.Class<T> enumType, java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+protected final void finalize() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/Float.java b/ojluni/annotations/java/lang/Float.java
new file mode 100644
index 0000000..a459ec1
--- /dev/null
+++ b/ojluni/annotations/java/lang/Float.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Float extends java.lang.Number implements java.lang.Comparable<java.lang.Float> {
+
+public Float(float value) { throw new RuntimeException("Stub!"); }
+
+public Float(double value) { throw new RuntimeException("Stub!"); }
+
+public Float(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toHexString(float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Float valueOf(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Float valueOf(float f) { throw new RuntimeException("Stub!"); }
+
+public static float parseFloat(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static boolean isNaN(float v) { throw new RuntimeException("Stub!"); }
+
+public static boolean isInfinite(float v) { throw new RuntimeException("Stub!"); }
+
+public static boolean isFinite(float f) { throw new RuntimeException("Stub!"); }
+
+public boolean isNaN() { throw new RuntimeException("Stub!"); }
+
+public boolean isInfinite() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public byte byteValue() { throw new RuntimeException("Stub!"); }
+
+public short shortValue() { throw new RuntimeException("Stub!"); }
+
+public int intValue() { throw new RuntimeException("Stub!"); }
+
+public long longValue() { throw new RuntimeException("Stub!"); }
+
+public float floatValue() { throw new RuntimeException("Stub!"); }
+
+public double doubleValue() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(float value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public static int floatToIntBits(float value) { throw new RuntimeException("Stub!"); }
+
+public static native int floatToRawIntBits(float value);
+
+public static native float intBitsToFloat(int bits);
+
+public int compareTo(@libcore.util.NonNull java.lang.Float anotherFloat) { throw new RuntimeException("Stub!"); }
+
+public static int compare(float f1, float f2) { throw new RuntimeException("Stub!"); }
+
+public static float sum(float a, float b) { throw new RuntimeException("Stub!"); }
+
+public static float max(float a, float b) { throw new RuntimeException("Stub!"); }
+
+public static float min(float a, float b) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 4; // 0x4
+
+public static final int MAX_EXPONENT = 127; // 0x7f
+
+public static final float MAX_VALUE = 3.4028235E38f;
+
+public static final int MIN_EXPONENT = -126; // 0xffffff82
+
+public static final float MIN_NORMAL = 1.17549435E-38f;
+
+public static final float MIN_VALUE = 1.4E-45f;
+
+public static final float NEGATIVE_INFINITY = (-1.0f/0.0f);
+
+public static final float NaN = (0.0f/0.0f);
+
+public static final float POSITIVE_INFINITY = (1.0f/0.0f);
+
+public static final int SIZE = 32; // 0x20
+
+public static final java.lang.Class<java.lang.Float> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Integer.java b/ojluni/annotations/java/lang/Integer.java
new file mode 100644
index 0000000..d3f6753
--- /dev/null
+++ b/ojluni/annotations/java/lang/Integer.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Integer extends java.lang.Number implements java.lang.Comparable<java.lang.Integer> {
+
+public Integer(int value) { throw new RuntimeException("Stub!"); }
+
+public Integer(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(int i, int radix) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toUnsignedString(int i, int radix) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toHexString(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toOctalString(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toBinaryString(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toUnsignedString(int i) { throw new RuntimeException("Stub!"); }
+
+public static int parseInt(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static int parseInt(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static int parseUnsignedInt(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static int parseUnsignedInt(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Integer valueOf(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Integer valueOf(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Integer valueOf(int i) { throw new RuntimeException("Stub!"); }
+
+public byte byteValue() { throw new RuntimeException("Stub!"); }
+
+public short shortValue() { throw new RuntimeException("Stub!"); }
+
+public int intValue() { throw new RuntimeException("Stub!"); }
+
+public long longValue() { throw new RuntimeException("Stub!"); }
+
+public float floatValue() { throw new RuntimeException("Stub!"); }
+
+public double doubleValue() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(int value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Integer getInteger(@libcore.util.NonNull java.lang.String nm) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Integer getInteger(@libcore.util.NonNull java.lang.String nm, int val) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Integer getInteger(@libcore.util.NonNull java.lang.String nm, @libcore.util.Nullable java.lang.Integer val) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Integer decode(@libcore.util.NonNull java.lang.String nm) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.lang.Integer anotherInteger) { throw new RuntimeException("Stub!"); }
+
+public static int compare(int x, int y) { throw new RuntimeException("Stub!"); }
+
+public static int compareUnsigned(int x, int y) { throw new RuntimeException("Stub!"); }
+
+public static long toUnsignedLong(int x) { throw new RuntimeException("Stub!"); }
+
+public static int divideUnsigned(int dividend, int divisor) { throw new RuntimeException("Stub!"); }
+
+public static int remainderUnsigned(int dividend, int divisor) { throw new RuntimeException("Stub!"); }
+
+public static int highestOneBit(int i) { throw new RuntimeException("Stub!"); }
+
+public static int lowestOneBit(int i) { throw new RuntimeException("Stub!"); }
+
+public static int numberOfLeadingZeros(int i) { throw new RuntimeException("Stub!"); }
+
+public static int numberOfTrailingZeros(int i) { throw new RuntimeException("Stub!"); }
+
+public static int bitCount(int i) { throw new RuntimeException("Stub!"); }
+
+public static int rotateLeft(int i, int distance) { throw new RuntimeException("Stub!"); }
+
+public static int rotateRight(int i, int distance) { throw new RuntimeException("Stub!"); }
+
+public static int reverse(int i) { throw new RuntimeException("Stub!"); }
+
+public static int signum(int i) { throw new RuntimeException("Stub!"); }
+
+public static int reverseBytes(int i) { throw new RuntimeException("Stub!"); }
+
+public static int sum(int a, int b) { throw new RuntimeException("Stub!"); }
+
+public static int max(int a, int b) { throw new RuntimeException("Stub!"); }
+
+public static int min(int a, int b) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 4; // 0x4
+
+public static final int MAX_VALUE = 2147483647; // 0x7fffffff
+
+public static final int MIN_VALUE = -2147483648; // 0x80000000
+
+public static final int SIZE = 32; // 0x20
+
+public static final java.lang.Class<java.lang.Integer> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Long.java b/ojluni/annotations/java/lang/Long.java
new file mode 100644
index 0000000..b077ef5
--- /dev/null
+++ b/ojluni/annotations/java/lang/Long.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.math.*;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Long extends java.lang.Number implements java.lang.Comparable<java.lang.Long> {
+
+public Long(long value) { throw new RuntimeException("Stub!"); }
+
+public Long(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(long i, int radix) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toUnsignedString(long i, int radix) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toHexString(long i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toOctalString(long i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toBinaryString(long i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toString(long i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String toUnsignedString(long i) { throw new RuntimeException("Stub!"); }
+
+public static long parseLong(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static long parseLong(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static long parseUnsignedLong(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public static long parseUnsignedLong(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Long valueOf(@libcore.util.NonNull java.lang.String s, int radix) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Long valueOf(@libcore.util.NonNull java.lang.String s) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Long valueOf(long l) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Long decode(@libcore.util.NonNull java.lang.String nm) throws java.lang.NumberFormatException { throw new RuntimeException("Stub!"); }
+
+public byte byteValue() { throw new RuntimeException("Stub!"); }
+
+public short shortValue() { throw new RuntimeException("Stub!"); }
+
+public int intValue() { throw new RuntimeException("Stub!"); }
+
+public long longValue() { throw new RuntimeException("Stub!"); }
+
+public float floatValue() { throw new RuntimeException("Stub!"); }
+
+public double doubleValue() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public static int hashCode(long value) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Long getLong(@libcore.util.NonNull java.lang.String nm) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Long getLong(@libcore.util.NonNull java.lang.String nm, long val) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.Long getLong(@libcore.util.NonNull java.lang.String nm, @libcore.util.Nullable java.lang.Long val) { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.lang.Long anotherLong) { throw new RuntimeException("Stub!"); }
+
+public static int compare(long x, long y) { throw new RuntimeException("Stub!"); }
+
+public static int compareUnsigned(long x, long y) { throw new RuntimeException("Stub!"); }
+
+public static long divideUnsigned(long dividend, long divisor) { throw new RuntimeException("Stub!"); }
+
+public static long remainderUnsigned(long dividend, long divisor) { throw new RuntimeException("Stub!"); }
+
+public static long highestOneBit(long i) { throw new RuntimeException("Stub!"); }
+
+public static long lowestOneBit(long i) { throw new RuntimeException("Stub!"); }
+
+public static int numberOfLeadingZeros(long i) { throw new RuntimeException("Stub!"); }
+
+public static int numberOfTrailingZeros(long i) { throw new RuntimeException("Stub!"); }
+
+public static int bitCount(long i) { throw new RuntimeException("Stub!"); }
+
+public static long rotateLeft(long i, int distance) { throw new RuntimeException("Stub!"); }
+
+public static long rotateRight(long i, int distance) { throw new RuntimeException("Stub!"); }
+
+public static long reverse(long i) { throw new RuntimeException("Stub!"); }
+
+public static int signum(long i) { throw new RuntimeException("Stub!"); }
+
+public static long reverseBytes(long i) { throw new RuntimeException("Stub!"); }
+
+public static long sum(long a, long b) { throw new RuntimeException("Stub!"); }
+
+public static long max(long a, long b) { throw new RuntimeException("Stub!"); }
+
+public static long min(long a, long b) { throw new RuntimeException("Stub!"); }
+
+public static final int BYTES = 8; // 0x8
+
+public static final long MAX_VALUE = 9223372036854775807L; // 0x7fffffffffffffffL
+
+public static final long MIN_VALUE = -9223372036854775808L; // 0x8000000000000000L
+
+public static final int SIZE = 64; // 0x40
+
+public static final java.lang.Class<java.lang.Long> TYPE;
+static { TYPE = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Object.java b/ojluni/annotations/java/lang/Object.java
new file mode 100644
index 0000000..61c4fd1
--- /dev/null
+++ b/ojluni/annotations/java/lang/Object.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class Object {
+
+public Object() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public final java.lang.Class<?> getClass() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+protected java.lang.Object clone() throws java.lang.CloneNotSupportedException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public final native void notify();
+
+public final native void notifyAll();
+
+public final void wait(long timeout) throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+public final native void wait(long timeout, int nanos) throws java.lang.InterruptedException;
+
+public final void wait() throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+protected void finalize() throws java.lang.Throwable { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/String.java b/ojluni/annotations/java/lang/String.java
new file mode 100644
index 0000000..35a8ca8
--- /dev/null
+++ b/ojluni/annotations/java/lang/String.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.nio.charset.Charset;
+import java.io.UnsupportedEncodingException;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+import java.util.StringJoiner;
+import java.util.Locale;
+import java.util.Formatter;
+import java.util.Comparator;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class String implements java.io.Serializable, java.lang.Comparable<java.lang.String>, java.lang.CharSequence {
+
+public String() { throw new RuntimeException("Stub!"); }
+
+public String(@libcore.util.NonNull java.lang.String original) { throw new RuntimeException("Stub!"); }
+
+public String(char[] value) { throw new RuntimeException("Stub!"); }
+
+public String(char[] value, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+public String(int[] codePoints, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public String(byte[] ascii, int hibyte, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public String(byte[] ascii, int hibyte) { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes, int offset, int length, @libcore.util.NonNull java.lang.String charsetName) throws java.io.UnsupportedEncodingException { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes, int offset, int length, @libcore.util.NonNull java.nio.charset.Charset charset) { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes, @libcore.util.NonNull java.lang.String charsetName) throws java.io.UnsupportedEncodingException { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes, @libcore.util.NonNull java.nio.charset.Charset charset) { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes, int offset, int length) { throw new RuntimeException("Stub!"); }
+
+public String(byte[] bytes) { throw new RuntimeException("Stub!"); }
+
+public String(@libcore.util.NonNull java.lang.StringBuffer buffer) { throw new RuntimeException("Stub!"); }
+
+public String(@libcore.util.NonNull java.lang.StringBuilder builder) { throw new RuntimeException("Stub!"); }
+
+public int length() { throw new RuntimeException("Stub!"); }
+
+public boolean isEmpty() { throw new RuntimeException("Stub!"); }
+
+public native char charAt(int index);
+
+public int codePointAt(int index) { throw new RuntimeException("Stub!"); }
+
+public int codePointBefore(int index) { throw new RuntimeException("Stub!"); }
+
+public int codePointCount(int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+public int offsetByCodePoints(int index, int codePointOffset) { throw new RuntimeException("Stub!"); }
+
+public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) { throw new RuntimeException("Stub!"); }
+
+public byte[] getBytes(@libcore.util.NonNull java.lang.String charsetName) throws java.io.UnsupportedEncodingException { throw new RuntimeException("Stub!"); }
+
+public byte[] getBytes(@libcore.util.NonNull java.nio.charset.Charset charset) { throw new RuntimeException("Stub!"); }
+
+public byte[] getBytes() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object anObject) { throw new RuntimeException("Stub!"); }
+
+public boolean contentEquals(@libcore.util.NonNull java.lang.StringBuffer sb) { throw new RuntimeException("Stub!"); }
+
+public boolean contentEquals(@libcore.util.NonNull java.lang.CharSequence cs) { throw new RuntimeException("Stub!"); }
+
+public boolean equalsIgnoreCase(@libcore.util.Nullable java.lang.String anotherString) { throw new RuntimeException("Stub!"); }
+
+public native int compareTo(@libcore.util.NonNull java.lang.String anotherString);
+
+public int compareToIgnoreCase(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public boolean regionMatches(int toffset, @libcore.util.NonNull java.lang.String other, int ooffset, int len) { throw new RuntimeException("Stub!"); }
+
+public boolean regionMatches(boolean ignoreCase, int toffset, @libcore.util.NonNull java.lang.String other, int ooffset, int len) { throw new RuntimeException("Stub!"); }
+
+public boolean startsWith(@libcore.util.NonNull java.lang.String prefix, int toffset) { throw new RuntimeException("Stub!"); }
+
+public boolean startsWith(@libcore.util.NonNull java.lang.String prefix) { throw new RuntimeException("Stub!"); }
+
+public boolean endsWith(@libcore.util.NonNull java.lang.String suffix) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public int indexOf(int ch) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(int ch, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(int ch) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(int ch, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String substring(int beginIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String substring(int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.CharSequence subSequence(int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native java.lang.String concat(@libcore.util.NonNull java.lang.String str);
+
+@libcore.util.NonNull public java.lang.String replace(char oldChar, char newChar) { throw new RuntimeException("Stub!"); }
+
+public boolean matches(@libcore.util.NonNull java.lang.String regex) { throw new RuntimeException("Stub!"); }
+
+public boolean contains(@libcore.util.NonNull java.lang.CharSequence s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String replaceFirst(@libcore.util.NonNull java.lang.String regex, @libcore.util.NonNull java.lang.String replacement) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String replaceAll(@libcore.util.NonNull java.lang.String regex, @libcore.util.NonNull java.lang.String replacement) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String replace(@libcore.util.NonNull java.lang.CharSequence target, @libcore.util.NonNull java.lang.CharSequence replacement) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String[] split(@libcore.util.NonNull java.lang.String regex, int limit) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String[] split(@libcore.util.NonNull java.lang.String regex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String join(@libcore.util.NonNull java.lang.CharSequence delimiter, @libcore.util.Nullable java.lang.CharSequence... elements) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String join(@libcore.util.NonNull java.lang.CharSequence delimiter, @libcore.util.NonNull java.lang.Iterable<? extends java.lang.CharSequence> elements) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toLowerCase(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toLowerCase() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toUpperCase(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toUpperCase() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String trim() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public native char[] toCharArray();
+
+@libcore.util.NonNull public static java.lang.String format(@libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String format(@libcore.util.NonNull java.util.Locale l, @libcore.util.NonNull java.lang.String format, @libcore.util.Nullable java.lang.Object... args) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(char[] data) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(char[] data, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String copyValueOf(char[] data, int offset, int count) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String copyValueOf(char[] data) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(long l) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String valueOf(double d) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native java.lang.String intern();
+
+public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
+static { CASE_INSENSITIVE_ORDER = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/StringBuffer.java b/ojluni/annotations/java/lang/StringBuffer.java
new file mode 100644
index 0000000..4baff67
--- /dev/null
+++ b/ojluni/annotations/java/lang/StringBuffer.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class StringBuffer implements java.lang.Appendable, java.lang.CharSequence, java.io.Serializable {
+
+public StringBuffer() { throw new RuntimeException("Stub!"); }
+
+public StringBuffer(int capacity) { throw new RuntimeException("Stub!"); }
+
+public StringBuffer(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public StringBuffer(@libcore.util.NonNull java.lang.CharSequence seq) { throw new RuntimeException("Stub!"); }
+
+public synchronized int length() { throw new RuntimeException("Stub!"); }
+
+public synchronized int capacity() { throw new RuntimeException("Stub!"); }
+
+public synchronized void ensureCapacity(int minimumCapacity) { throw new RuntimeException("Stub!"); }
+
+public synchronized void trimToSize() { throw new RuntimeException("Stub!"); }
+
+public synchronized void setLength(int newLength) { throw new RuntimeException("Stub!"); }
+
+public synchronized char charAt(int index) { throw new RuntimeException("Stub!"); }
+
+public synchronized int codePointAt(int index) { throw new RuntimeException("Stub!"); }
+
+public synchronized int codePointBefore(int index) { throw new RuntimeException("Stub!"); }
+
+public synchronized int codePointCount(int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+public synchronized int offsetByCodePoints(int index, int codePointOffset) { throw new RuntimeException("Stub!"); }
+
+public synchronized void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) { throw new RuntimeException("Stub!"); }
+
+public synchronized void setCharAt(int index, char ch) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(@libcore.util.Nullable java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(@libcore.util.Nullable java.lang.StringBuffer sb) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(@libcore.util.Nullable java.lang.CharSequence s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(@libcore.util.Nullable java.lang.CharSequence s, int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(char[] str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(char[] str, int offset, int len) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer appendCodePoint(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(long lng) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer append(double d) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer delete(int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer deleteCharAt(int index) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer replace(int start, int end, @libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.String substring(int start) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.CharSequence subSequence(int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.String substring(int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int index, char[] str, int offset, int len) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int offset, @libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int offset, @libcore.util.Nullable java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int offset, char[] str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int dstOffset, @libcore.util.Nullable java.lang.CharSequence s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int dstOffset, @libcore.util.Nullable java.lang.CharSequence s, int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int offset, boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer insert(int offset, char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int offset, int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int offset, long l) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int offset, float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuffer insert(int offset, double d) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public synchronized int indexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public synchronized int lastIndexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.StringBuffer reverse() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public synchronized java.lang.String toString() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/StringBuilder.java b/ojluni/annotations/java/lang/StringBuilder.java
new file mode 100644
index 0000000..9ec4039
--- /dev/null
+++ b/ojluni/annotations/java/lang/StringBuilder.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class StringBuilder implements java.lang.Appendable, java.lang.CharSequence, java.io.Serializable {
+
+public StringBuilder() { throw new RuntimeException("Stub!"); }
+
+public StringBuilder(int capacity) { throw new RuntimeException("Stub!"); }
+
+public StringBuilder(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public StringBuilder(@libcore.util.NonNull java.lang.CharSequence seq) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(@libcore.util.Nullable java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(@libcore.util.Nullable java.lang.StringBuffer sb) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(@libcore.util.Nullable java.lang.CharSequence s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(@libcore.util.Nullable java.lang.CharSequence s, int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(char[] str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(char[] str, int offset, int len) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(long lng) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder append(double d) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder appendCodePoint(int codePoint) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder delete(int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder deleteCharAt(int index) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder replace(int start, int end, @libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int index, char[] str, int offset, int len) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, @libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, @libcore.util.Nullable java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, char[] str) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int dstOffset, @libcore.util.Nullable java.lang.CharSequence s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int dstOffset, @libcore.util.Nullable java.lang.CharSequence s, int start, int end) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, boolean b) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, char c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, int i) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, long l) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, float f) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder insert(int offset, double d) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.NonNull java.lang.String str) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.NonNull java.lang.String str, int fromIndex) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.StringBuilder reverse() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public void trimToSize() { throw new RuntimeException("Stub!"); }
+
+public int codePointAt(int index) { throw new RuntimeException("Stub!"); }
+
+public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) { throw new RuntimeException("Stub!"); }
+
+public int length() { throw new RuntimeException("Stub!"); }
+
+public void setCharAt(int index, char ch) { throw new RuntimeException("Stub!"); }
+
+public java.lang.CharSequence subSequence(int start, int end) { throw new RuntimeException("Stub!"); }
+
+public java.lang.String substring(int start) { throw new RuntimeException("Stub!"); }
+
+public java.lang.String substring(int start, int end) { throw new RuntimeException("Stub!"); }
+
+public int capacity() { throw new RuntimeException("Stub!"); }
+
+public void setLength(int newLength) { throw new RuntimeException("Stub!"); }
+
+public void ensureCapacity(int minimumCapacity) { throw new RuntimeException("Stub!"); }
+
+public int codePointBefore(int index) { throw new RuntimeException("Stub!"); }
+
+public char charAt(int index) { throw new RuntimeException("Stub!"); }
+
+public int codePointCount(int beginIndex, int endIndex) { throw new RuntimeException("Stub!"); }
+
+public int offsetByCodePoints(int index, int codePointOffset) { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/System.java b/ojluni/annotations/java/lang/System.java
new file mode 100644
index 0000000..c7f22fc
--- /dev/null
+++ b/ojluni/annotations/java/lang/System.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.lang;
+
+import java.io.*;
+import java.nio.channels.spi.SelectorProvider;
+import java.nio.channels.Channel;
+import java.util.Properties;
+import java.util.PropertyPermission;
+import java.util.Map;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class System {
+
+System() { throw new RuntimeException("Stub!"); }
+
+public static void setIn(@libcore.util.Nullable java.io.InputStream in) { throw new RuntimeException("Stub!"); }
+
+public static void setOut(@libcore.util.Nullable java.io.PrintStream out) { throw new RuntimeException("Stub!"); }
+
+public static void setErr(@libcore.util.Nullable java.io.PrintStream err) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.io.Console console() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.nio.channels.Channel inheritedChannel() throws java.io.IOException { throw new RuntimeException("Stub!"); }
+
+public static void setSecurityManager(@libcore.util.Nullable java.lang.SecurityManager s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.SecurityManager getSecurityManager() { throw new RuntimeException("Stub!"); }
+
+public static native long currentTimeMillis();
+
+public static native long nanoTime();
+
+public static native void arraycopy(@libcore.util.NonNull java.lang.Object src, @libcore.util.NonNull int srcPos, java.lang.Object dest, int destPos, int length);
+
+public static int identityHashCode(@libcore.util.Nullable java.lang.Object x) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Properties getProperties() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.String lineSeparator() { throw new RuntimeException("Stub!"); }
+
+public static void setProperties(@libcore.util.Nullable java.util.Properties props) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String getProperty(@libcore.util.NonNull java.lang.String key) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String getProperty(@libcore.util.NonNull java.lang.String key, @libcore.util.Nullable java.lang.String def) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String setProperty(@libcore.util.NonNull java.lang.String key, @libcore.util.Nullable java.lang.String value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String clearProperty(@libcore.util.NonNull java.lang.String key) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String getenv(@libcore.util.NonNull java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public static java.util.Map<java.lang.String,java.lang.String> getenv() { throw new RuntimeException("Stub!"); }
+
+public static void exit(int status) { throw new RuntimeException("Stub!"); }
+
+public static void gc() { throw new RuntimeException("Stub!"); }
+
+public static void runFinalization() { throw new RuntimeException("Stub!"); }
+
+@Deprecated public static void runFinalizersOnExit(boolean value) { throw new RuntimeException("Stub!"); }
+
+public static void load(@libcore.util.NonNull java.lang.String filename) { throw new RuntimeException("Stub!"); }
+
+public static void loadLibrary(@libcore.util.NonNull java.lang.String libname) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static native java.lang.String mapLibraryName(@libcore.util.NonNull java.lang.String libname);
+
+public static final java.io.PrintStream err;
+static { err = null; }
+
+public static final java.io.InputStream in;
+static { in = null; }
+
+public static final java.io.PrintStream out;
+static { out = null; }
+}
+
diff --git a/ojluni/annotations/java/lang/Thread.java b/ojluni/annotations/java/lang/Thread.java
new file mode 100644
index 0000000..27a0114
--- /dev/null
+++ b/ojluni/annotations/java/lang/Thread.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.util.Map;
+import java.util.concurrent.locks.LockSupport;
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class Thread implements java.lang.Runnable {
+
+public Thread() { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.Runnable target) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.ThreadGroup group, java.lang.Runnable target) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.ThreadGroup group, java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.Runnable target, java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.ThreadGroup group, java.lang.Runnable target, java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public Thread(java.lang.ThreadGroup group, java.lang.Runnable target, java.lang.String name, long stackSize) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static native java.lang.Thread currentThread();
+
+public static native void yield();
+
+public static void sleep(long millis) throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+public static void sleep(long millis, int nanos) throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+protected java.lang.Object clone() throws java.lang.CloneNotSupportedException { throw new RuntimeException("Stub!"); }
+
+public synchronized void start() { throw new RuntimeException("Stub!"); }
+
+public void run() { throw new RuntimeException("Stub!"); }
+
+@Deprecated public final void stop() { throw new RuntimeException("Stub!"); }
+
+@Deprecated public final synchronized void stop(java.lang.Throwable obj) { throw new RuntimeException("Stub!"); }
+
+public void interrupt() { throw new RuntimeException("Stub!"); }
+
+public static native boolean interrupted();
+
+public native boolean isInterrupted();
+
+@Deprecated public void destroy() { throw new RuntimeException("Stub!"); }
+
+public final boolean isAlive() { throw new RuntimeException("Stub!"); }
+
+@Deprecated public final void suspend() { throw new RuntimeException("Stub!"); }
+
+@Deprecated public final void resume() { throw new RuntimeException("Stub!"); }
+
+public final void setPriority(int newPriority) { throw new RuntimeException("Stub!"); }
+
+public final int getPriority() { throw new RuntimeException("Stub!"); }
+
+public final synchronized void setName(java.lang.String name) { throw new RuntimeException("Stub!"); }
+
+public final java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+public final java.lang.ThreadGroup getThreadGroup() { throw new RuntimeException("Stub!"); }
+
+public static int activeCount() { throw new RuntimeException("Stub!"); }
+
+public static int enumerate(java.lang.Thread[] tarray) { throw new RuntimeException("Stub!"); }
+
+@Deprecated public int countStackFrames() { throw new RuntimeException("Stub!"); }
+
+public final void join(long millis) throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+public final void join(long millis, int nanos) throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+public final void join() throws java.lang.InterruptedException { throw new RuntimeException("Stub!"); }
+
+public static void dumpStack() { throw new RuntimeException("Stub!"); }
+
+public final void setDaemon(boolean on) { throw new RuntimeException("Stub!"); }
+
+public final boolean isDaemon() { throw new RuntimeException("Stub!"); }
+
+public final void checkAccess() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+public java.lang.ClassLoader getContextClassLoader() { throw new RuntimeException("Stub!"); }
+
+public void setContextClassLoader(java.lang.ClassLoader cl) { throw new RuntimeException("Stub!"); }
+
+public static native boolean holdsLock(java.lang.Object obj);
+
+public java.lang.StackTraceElement[] getStackTrace() { throw new RuntimeException("Stub!"); }
+
+public static java.util.Map<java.lang.Thread,java.lang.StackTraceElement[]> getAllStackTraces() { throw new RuntimeException("Stub!"); }
+
+public long getId() { throw new RuntimeException("Stub!"); }
+
+public java.lang.Thread.State getState() { throw new RuntimeException("Stub!"); }
+
+public static void setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler eh) { throw new RuntimeException("Stub!"); }
+
+public static java.lang.Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() { throw new RuntimeException("Stub!"); }
+
+public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler() { throw new RuntimeException("Stub!"); }
+
+public void setUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler eh) { throw new RuntimeException("Stub!"); }
+
+public static final int MAX_PRIORITY = 10; // 0xa
+
+public static final int MIN_PRIORITY = 1; // 0x1
+
+public static final int NORM_PRIORITY = 5; // 0x5
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static enum State {
+NEW,
+RUNNABLE,
+BLOCKED,
+WAITING,
+TIMED_WAITING,
+TERMINATED;
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+@java.lang.FunctionalInterface
+public static interface UncaughtExceptionHandler {
+
+public void uncaughtException(java.lang.Thread t, java.lang.Throwable e);
+}
+
+}
+
diff --git a/ojluni/annotations/java/lang/ThreadLocal.java b/ojluni/annotations/java/lang/ThreadLocal.java
new file mode 100644
index 0000000..3b7e93a
--- /dev/null
+++ b/ojluni/annotations/java/lang/ThreadLocal.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang;
+
+import java.lang.ref.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Supplier;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class ThreadLocal<T> {
+
+public ThreadLocal() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable protected T initialValue() { throw new RuntimeException("Stub!"); }
+
+public static <S> java.lang.ThreadLocal<S> withInitial(@libcore.util.NonNull java.util.function.Supplier<? extends S> supplier) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public T get() { throw new RuntimeException("Stub!"); }
+
+public void set(@libcore.util.NullFromTypeParam T value) { throw new RuntimeException("Stub!"); }
+
+public void remove() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/AccessibleObject.java b/ojluni/annotations/java/lang/reflect/AccessibleObject.java
new file mode 100644
index 0000000..e84e365
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/AccessibleObject.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class AccessibleObject implements java.lang.reflect.AnnotatedElement {
+
+protected AccessibleObject() { throw new RuntimeException("Stub!"); }
+
+public static void setAccessible(java.lang.reflect.AccessibleObject[] array, boolean flag) throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+public void setAccessible(boolean flag) throws java.lang.SecurityException { throw new RuntimeException("Stub!"); }
+
+public boolean isAccessible() { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getAnnotations() { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/AnnotatedElement.java b/ojluni/annotations/java/lang/reflect/AnnotatedElement.java
new file mode 100644
index 0000000..66b827a
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/AnnotatedElement.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.AnnotationFormatError;
+import java.lang.annotation.Annotation;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface AnnotatedElement {
+
+public default boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass);
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getAnnotations();
+
+public default <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public default <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public default <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Array.java b/ojluni/annotations/java/lang/reflect/Array.java
new file mode 100644
index 0000000..fb09931
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Array.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Array {
+
+Array() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Object newInstance(java.lang.Class<?> componentType, int length) throws java.lang.NegativeArraySizeException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Object newInstance(java.lang.Class<?> componentType, int... dimensions) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException { throw new RuntimeException("Stub!"); }
+
+public static int getLength(java.lang.Object array) { throw new RuntimeException("Stub!"); }
+
+public static java.lang.Object get(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static boolean getBoolean(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static byte getByte(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static char getChar(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static short getShort(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static int getInt(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static long getLong(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static float getFloat(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static double getDouble(java.lang.Object array, int index) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void set(java.lang.Object array, int index, java.lang.Object value) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setBoolean(java.lang.Object array, int index, boolean z) { throw new RuntimeException("Stub!"); }
+
+public static void setByte(java.lang.Object array, int index, byte b) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setChar(java.lang.Object array, int index, char c) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setShort(java.lang.Object array, int index, short s) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setInt(java.lang.Object array, int index, int i) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setLong(java.lang.Object array, int index, long l) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setFloat(java.lang.Object array, int index, float f) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static void setDouble(java.lang.Object array, int index, double d) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Constructor.java b/ojluni/annotations/java/lang/reflect/Constructor.java
new file mode 100644
index 0000000..46c2a82
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Constructor.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Constructor<T> extends java.lang.reflect.Executable {
+
+Constructor() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<T> getDeclaringClass() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+public int getModifiers() { throw new RuntimeException("Stub!"); }
+
+public java.lang.reflect.TypeVariable<java.lang.reflect.Constructor<T>>[] getTypeParameters() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?>[] getParameterTypes() { throw new RuntimeException("Stub!"); }
+
+public int getParameterCount() { throw new RuntimeException("Stub!"); }
+
+public java.lang.reflect.Type[] getGenericParameterTypes() { throw new RuntimeException("Stub!"); }
+
+public native java.lang.Class<?>[] getExceptionTypes();
+
+public java.lang.reflect.Type[] getGenericExceptionTypes() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toGenericString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public T newInstance(java.lang.Object... initargs) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException { throw new RuntimeException("Stub!"); }
+
+public boolean isVarArgs() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public java.lang.annotation.Annotation[] getDeclaredAnnotations() { throw new RuntimeException("Stub!"); }
+
+public java.lang.annotation.Annotation[][] getParameterAnnotations() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Executable.java b/ojluni/annotations/java/lang/reflect/Executable.java
new file mode 100644
index 0000000..9374734
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Executable.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public abstract class Executable extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member, java.lang.reflect.GenericDeclaration {
+
+Executable() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public abstract java.lang.Class<?> getDeclaringClass();
+
+@libcore.util.NonNull public abstract java.lang.String getName();
+
+public abstract int getModifiers();
+
+@libcore.util.NonNull public abstract java.lang.reflect.TypeVariable<?>[] getTypeParameters();
+
+@libcore.util.NonNull public abstract java.lang.Class<?>[] getParameterTypes();
+
+public int getParameterCount() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getGenericParameterTypes() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Parameter[] getParameters() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public abstract java.lang.Class<?>[] getExceptionTypes();
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getGenericExceptionTypes() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public abstract java.lang.String toGenericString();
+
+public boolean isVarArgs() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public abstract java.lang.annotation.Annotation[][] getParameterAnnotations();
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations() { throw new RuntimeException("Stub!"); }
+
+public final boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Field.java b/ojluni/annotations/java/lang/reflect/Field.java
new file mode 100644
index 0000000..d212353
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Field.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member {
+
+Field() { throw new RuntimeException("Stub!"); }
+
+public java.lang.Class<?> getDeclaringClass() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+public int getModifiers() { throw new RuntimeException("Stub!"); }
+
+public boolean isEnumConstant() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?> getType() { throw new RuntimeException("Stub!"); }
+
+public java.lang.reflect.Type getGenericType() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toGenericString() { throw new RuntimeException("Stub!"); }
+
+public native java.lang.Object get(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native boolean getBoolean(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native byte getByte(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native char getChar(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native short getShort(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native int getInt(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native long getLong(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native float getFloat(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native double getDouble(java.lang.Object obj) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void set(java.lang.Object obj, java.lang.Object value) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setBoolean(java.lang.Object obj, boolean z) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setByte(java.lang.Object obj, byte b) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setChar(java.lang.Object obj, char c) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setShort(java.lang.Object obj, short s) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setInt(java.lang.Object obj, int i) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setLong(java.lang.Object obj, long l) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setFloat(java.lang.Object obj, float f) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public native void setDouble(java.lang.Object obj, double d) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) { throw new RuntimeException("Stub!"); }
+
+public native java.lang.annotation.Annotation[] getDeclaredAnnotations();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/GenericArrayType.java b/ojluni/annotations/java/lang/reflect/GenericArrayType.java
new file mode 100644
index 0000000..c173408
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/GenericArrayType.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface GenericArrayType extends java.lang.reflect.Type {
+
+@libcore.util.NonNull public java.lang.reflect.Type getGenericComponentType();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/GenericDeclaration.java b/ojluni/annotations/java/lang/reflect/GenericDeclaration.java
new file mode 100644
index 0000000..3614d84
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/GenericDeclaration.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface GenericDeclaration extends java.lang.reflect.AnnotatedElement {
+
+@libcore.util.NonNull public java.lang.reflect.TypeVariable<?>[] getTypeParameters();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Member.java b/ojluni/annotations/java/lang/reflect/Member.java
new file mode 100644
index 0000000..0552ce2
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Member.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface Member {
+
+@libcore.util.NonNull public java.lang.Class<?> getDeclaringClass();
+
+@libcore.util.NonNull public java.lang.String getName();
+
+public int getModifiers();
+
+public boolean isSynthetic();
+
+public static final int DECLARED = 1; // 0x1
+
+public static final int PUBLIC = 0; // 0x0
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Method.java b/ojluni/annotations/java/lang/reflect/Method.java
new file mode 100644
index 0000000..1c37b2e
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Method.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Method extends java.lang.reflect.Executable {
+
+Method() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?> getDeclaringClass() { throw new RuntimeException("Stub!"); }
+
+public java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+public int getModifiers() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.TypeVariable<java.lang.reflect.Method>[] getTypeParameters() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?> getReturnType() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Type getGenericReturnType() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?>[] getParameterTypes() { throw new RuntimeException("Stub!"); }
+
+public int getParameterCount() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getGenericParameterTypes() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public native java.lang.Class<?>[] getExceptionTypes();
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getGenericExceptionTypes() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toGenericString() { throw new RuntimeException("Stub!"); }
+
+public native java.lang.Object invoke(java.lang.Object obj, java.lang.Object... args) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException;
+
+public boolean isBridge() { throw new RuntimeException("Stub!"); }
+
+public boolean isVarArgs() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+public boolean isDefault() { throw new RuntimeException("Stub!"); }
+
+public native java.lang.Object getDefaultValue();
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[][] getParameterAnnotations() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Parameter.java b/ojluni/annotations/java/lang/reflect/Parameter.java
new file mode 100644
index 0000000..b8142e4
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Parameter.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.lang.reflect;
+
+import java.lang.annotation.*;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Parameter implements java.lang.reflect.AnnotatedElement {
+
+Parameter(java.lang.String name, int modifiers, java.lang.reflect.Executable executable, int index) { throw new RuntimeException("Stub!"); }
+
+public boolean equals(java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public boolean isNamePresent() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Executable getDeclaringExecutable() { throw new RuntimeException("Stub!"); }
+
+public int getModifiers() { throw new RuntimeException("Stub!"); }
+
+public java.lang.String getName() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.reflect.Type getParameterizedType() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Class<?> getType() { throw new RuntimeException("Stub!"); }
+
+public boolean isImplicit() { throw new RuntimeException("Stub!"); }
+
+public boolean isSynthetic() { throw new RuntimeException("Stub!"); }
+
+public boolean isVarArgs() { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getDeclaredAnnotations() { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+public <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(java.lang.Class<T> annotationClass) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.annotation.Annotation[] getAnnotations() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/ParameterizedType.java b/ojluni/annotations/java/lang/reflect/ParameterizedType.java
new file mode 100644
index 0000000..01ab45d
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/ParameterizedType.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface ParameterizedType extends java.lang.reflect.Type {
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getActualTypeArguments();
+
+@libcore.util.NonNull public java.lang.reflect.Type getRawType();
+
+public java.lang.reflect.Type getOwnerType();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Proxy.java b/ojluni/annotations/java/lang/reflect/Proxy.java
new file mode 100644
index 0000000..781308d
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Proxy.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+import java.security.Permission;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class Proxy implements java.io.Serializable {
+
+protected Proxy(java.lang.reflect.InvocationHandler h) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Class<?> getProxyClass(java.lang.ClassLoader loader, java.lang.Class<?>... interfaces) throws java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.Object newProxyInstance(java.lang.ClassLoader loader, java.lang.Class<?>[] interfaces, java.lang.reflect.InvocationHandler h) throws java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+public static boolean isProxyClass(java.lang.Class<?> cl) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.lang.reflect.InvocationHandler getInvocationHandler(java.lang.Object proxy) throws java.lang.IllegalArgumentException { throw new RuntimeException("Stub!"); }
+
+protected java.lang.reflect.InvocationHandler h;
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/Type.java b/ojluni/annotations/java/lang/reflect/Type.java
new file mode 100644
index 0000000..f2b646b
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/Type.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface Type {
+
+@libcore.util.NonNull public default java.lang.String getTypeName() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/TypeVariable.java b/ojluni/annotations/java/lang/reflect/TypeVariable.java
new file mode 100644
index 0000000..fae4b15
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/TypeVariable.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface TypeVariable<D extends java.lang.reflect.GenericDeclaration> extends java.lang.reflect.Type {
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getBounds();
+
+@libcore.util.NonNull public D getGenericDeclaration();
+
+@libcore.util.NonNull public java.lang.String getName();
+}
+
diff --git a/ojluni/annotations/java/lang/reflect/WildcardType.java b/ojluni/annotations/java/lang/reflect/WildcardType.java
new file mode 100644
index 0000000..1ad4086
--- /dev/null
+++ b/ojluni/annotations/java/lang/reflect/WildcardType.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.lang.reflect;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface WildcardType extends java.lang.reflect.Type {
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getUpperBounds();
+
+@libcore.util.NonNull public java.lang.reflect.Type[] getLowerBounds();
+}
+
diff --git a/ojluni/annotations/java/util/ArrayList.java b/ojluni/annotations/java/util/ArrayList.java
new file mode 100644
index 0000000..decd6a0
--- /dev/null
+++ b/ojluni/annotations/java/util/ArrayList.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.util;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class ArrayList<E> extends java.util.AbstractList<E> implements java.util.List<E>, java.util.RandomAccess, java.lang.Cloneable, java.io.Serializable {
+
+public ArrayList(int initialCapacity) { throw new RuntimeException("Stub!"); }
+
+public ArrayList() { throw new RuntimeException("Stub!"); }
+
+public ArrayList(@libcore.util.NonNull java.util.Collection<? extends E> c) { throw new RuntimeException("Stub!"); }
+
+public void trimToSize() { throw new RuntimeException("Stub!"); }
+
+public void ensureCapacity(int minCapacity) { throw new RuntimeException("Stub!"); }
+
+public int size() { throw new RuntimeException("Stub!"); }
+
+public boolean isEmpty() { throw new RuntimeException("Stub!"); }
+
+public boolean contains(@libcore.util.Nullable java.lang.Object o) { throw new RuntimeException("Stub!"); }
+
+public int indexOf(@libcore.util.Nullable java.lang.Object o) { throw new RuntimeException("Stub!"); }
+
+public int lastIndexOf(@libcore.util.Nullable java.lang.Object o) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Object clone() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.Object[] toArray() { throw new RuntimeException("Stub!"); }
+
+public <T> T[] toArray(@libcore.util.Nullable T[] a) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NullFromTypeParam public E get(int index) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NullFromTypeParam public E set(int index, @libcore.util.NullFromTypeParam E element) { throw new RuntimeException("Stub!"); }
+
+public boolean add(@libcore.util.NullFromTypeParam E e) { throw new RuntimeException("Stub!"); }
+
+public void add(int index, @libcore.util.NullFromTypeParam E element) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NullFromTypeParam public E remove(int index) { throw new RuntimeException("Stub!"); }
+
+public boolean remove(@libcore.util.Nullable java.lang.Object o) { throw new RuntimeException("Stub!"); }
+
+public void clear() { throw new RuntimeException("Stub!"); }
+
+public boolean addAll(@libcore.util.NonNull java.util.Collection<? extends E> c) { throw new RuntimeException("Stub!"); }
+
+public boolean addAll(int index, @libcore.util.NonNull java.util.Collection<? extends E> c) { throw new RuntimeException("Stub!"); }
+
+protected void removeRange(int fromIndex, int toIndex) { throw new RuntimeException("Stub!"); }
+
+public boolean removeAll(@libcore.util.NonNull java.util.Collection<?> c) { throw new RuntimeException("Stub!"); }
+
+public boolean retainAll(@libcore.util.NonNull java.util.Collection<?> c) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.ListIterator<E> listIterator(int index) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.ListIterator<E> listIterator() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Iterator<E> iterator() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.List<E> subList(int fromIndex, int toIndex) { throw new RuntimeException("Stub!"); }
+
+public void forEach(@libcore.util.NonNull java.util.function.Consumer<? super E> action) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Spliterator<E> spliterator() { throw new RuntimeException("Stub!"); }
+
+public boolean removeIf(@libcore.util.NonNull java.util.function.Predicate<? super E> filter) { throw new RuntimeException("Stub!"); }
+
+public void replaceAll(@libcore.util.NonNull java.util.function.UnaryOperator<E> operator) { throw new RuntimeException("Stub!"); }
+
+public void sort(@libcore.util.Nullable java.util.Comparator<? super E> c) { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/util/HashMap.java b/ojluni/annotations/java/util/HashMap.java
new file mode 100644
index 0000000..50a9ccf
--- /dev/null
+++ b/ojluni/annotations/java/util/HashMap.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.util;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public class HashMap<K, V> extends java.util.AbstractMap<K,V> implements java.util.Map<K,V>, java.lang.Cloneable, java.io.Serializable {
+
+public HashMap(int initialCapacity, float loadFactor) { throw new RuntimeException("Stub!"); }
+
+public HashMap(int initialCapacity) { throw new RuntimeException("Stub!"); }
+
+public HashMap() { throw new RuntimeException("Stub!"); }
+
+public HashMap(@libcore.util.NonNull java.util.Map<? extends K, ? extends V> m) { throw new RuntimeException("Stub!"); }
+
+public int size() { throw new RuntimeException("Stub!"); }
+
+public boolean isEmpty() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V get(@libcore.util.Nullable java.lang.Object key) { throw new RuntimeException("Stub!"); }
+
+public boolean containsKey(@libcore.util.Nullable java.lang.Object key) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V put(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value) { throw new RuntimeException("Stub!"); }
+
+public void putAll(@libcore.util.NonNull java.util.Map<? extends K,? extends V> m) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V remove(@libcore.util.Nullable java.lang.Object key) { throw new RuntimeException("Stub!"); }
+
+public void clear() { throw new RuntimeException("Stub!"); }
+
+public boolean containsValue(@libcore.util.Nullable java.lang.Object value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Set<K> keySet() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Collection<V> values() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V getOrDefault(@libcore.util.Nullable java.lang.Object key, @libcore.util.Nullable V defaultValue) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V putIfAbsent(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value) { throw new RuntimeException("Stub!"); }
+
+public boolean remove(@libcore.util.Nullable java.lang.Object key, @libcore.util.Nullable java.lang.Object value) { throw new RuntimeException("Stub!"); }
+
+public boolean replace(@libcore.util.NullFromTypeParam K key, @libcore.util.Nullable V oldValue, @libcore.util.NullFromTypeParam V newValue) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V replace(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V computeIfAbsent(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.Function<? super K,? extends V> mappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V computeIfPresent(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V compute(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public V merge(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull V value, @libcore.util.NonNull java.util.function.BiFunction<? super V,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+
+public void forEach(@libcore.util.NonNull java.util.function.BiConsumer<? super K,? super V> action) { throw new RuntimeException("Stub!"); }
+
+public void replaceAll(@libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> function) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Object clone() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/util/List.java b/ojluni/annotations/java/util/List.java
new file mode 100644
index 0000000..207a35a
--- /dev/null
+++ b/ojluni/annotations/java/util/List.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.util;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface List<E> extends java.util.Collection<E> {
+
+public int size();
+
+public boolean isEmpty();
+
+public boolean contains(@libcore.util.Nullable java.lang.Object o);
+
+@libcore.util.NonNull public java.util.Iterator<E> iterator();
+
+@libcore.util.Nullable public java.lang.Object[] toArray();
+
+public <T> T[] toArray(@libcore.util.Nullable T[] a);
+
+public boolean add(@libcore.util.NullFromTypeParam E e);
+
+public boolean remove(@libcore.util.Nullable java.lang.Object o);
+
+public boolean containsAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public boolean addAll(@libcore.util.NonNull java.util.Collection<? extends E> c);
+
+public boolean addAll(int index, @libcore.util.NonNull java.util.Collection<? extends E> c);
+
+public boolean removeAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public boolean retainAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public default void replaceAll(@libcore.util.NonNull java.util.function.UnaryOperator<E> operator) { throw new RuntimeException("Stub!"); }
+
+public default void sort(@libcore.util.Nullable java.util.Comparator<? super E> c) { throw new RuntimeException("Stub!"); }
+
+public void clear();
+
+public boolean equals(@libcore.util.Nullable java.lang.Object o);
+
+public int hashCode();
+
+@libcore.util.NullFromTypeParam public E get(int index);
+
+@libcore.util.NullFromTypeParam public E set(int index, @libcore.util.NullFromTypeParam E element);
+
+public void add(int index, @libcore.util.NullFromTypeParam E element);
+
+@libcore.util.NullFromTypeParam public E remove(int index);
+
+public int indexOf(@libcore.util.Nullable java.lang.Object o);
+
+public int lastIndexOf(@libcore.util.Nullable java.lang.Object o);
+
+@libcore.util.NonNull public java.util.ListIterator<E> listIterator();
+
+@libcore.util.NonNull public java.util.ListIterator<E> listIterator(int index);
+
+@libcore.util.NonNull public java.util.List<E> subList(int fromIndex, int toIndex);
+
+@libcore.util.NonNull public default java.util.Spliterator<E> spliterator() { throw new RuntimeException("Stub!"); }
+}
+
diff --git a/ojluni/annotations/java/util/Map.java b/ojluni/annotations/java/util/Map.java
new file mode 100644
index 0000000..5b0dd48
--- /dev/null
+++ b/ojluni/annotations/java/util/Map.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.util;
+
+import java.util.function.Function;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface Map<K, V> {
+
+public int size();
+
+public boolean isEmpty();
+
+public boolean containsKey(@libcore.util.Nullable java.lang.Object key);
+
+public boolean containsValue(@libcore.util.Nullable java.lang.Object value);
+
+@libcore.util.Nullable public V get(@libcore.util.Nullable java.lang.Object key);
+
+@libcore.util.Nullable public V put(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value);
+
+@libcore.util.Nullable public V remove(@libcore.util.Nullable java.lang.Object key);
+
+public void putAll(@libcore.util.NonNull java.util.Map<? extends K,? extends V> m);
+
+public void clear();
+
+@libcore.util.NonNull public java.util.Set<K> keySet();
+
+@libcore.util.NonNull public java.util.Collection<V> values();
+
+@libcore.util.NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+
+public boolean equals(@libcore.util.Nullable java.lang.Object o);
+
+public int hashCode();
+
+@libcore.util.Nullable public default V getOrDefault(@libcore.util.Nullable java.lang.Object key, @libcore.util.Nullable V defaultValue) { throw new RuntimeException("Stub!"); }
+
+public default void forEach(@libcore.util.NonNull java.util.function.BiConsumer<? super K,? super V> action) { throw new RuntimeException("Stub!"); }
+
+public default void replaceAll(@libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> function) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V putIfAbsent(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value) { throw new RuntimeException("Stub!"); }
+
+public default boolean remove(@libcore.util.Nullable java.lang.Object key, @libcore.util.Nullable java.lang.Object value) { throw new RuntimeException("Stub!"); }
+
+public default boolean replace(@libcore.util.NullFromTypeParam K key, @libcore.util.Nullable V oldValue, @libcore.util.NullFromTypeParam V newValue) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V replace(@libcore.util.NullFromTypeParam K key, @libcore.util.NullFromTypeParam V value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V computeIfAbsent(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.Function<? super K,? extends V> mappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V computeIfPresent(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V compute(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public default V merge(@libcore.util.NullFromTypeParam K key, @libcore.util.NonNull V value, @libcore.util.NonNull java.util.function.BiFunction<? super V,? super V,? extends V> remappingFunction) { throw new RuntimeException("Stub!"); }
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static interface Entry<K, V> {
+
+@libcore.util.NullFromTypeParam public K getKey();
+
+@libcore.util.NullFromTypeParam public V getValue();
+
+@libcore.util.NullFromTypeParam public V setValue(@libcore.util.NullFromTypeParam V value);
+
+public boolean equals(@libcore.util.Nullable java.lang.Object o);
+
+public int hashCode();
+
+public static <K extends java.lang.Comparable<? super K>, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey() { throw new RuntimeException("Stub!"); }
+
+public static <K, V extends java.lang.Comparable<? super V>> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue() { throw new RuntimeException("Stub!"); }
+
+public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey(@libcore.util.NonNull java.util.Comparator<? super K> cmp) { throw new RuntimeException("Stub!"); }
+
+public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue(@libcore.util.NonNull java.util.Comparator<? super V> cmp) { throw new RuntimeException("Stub!"); }
+}
+
+}
+
diff --git a/ojluni/annotations/java/util/Set.java b/ojluni/annotations/java/util/Set.java
new file mode 100644
index 0000000..9b29d64
--- /dev/null
+++ b/ojluni/annotations/java/util/Set.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package java.util;
+
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public interface Set<E> extends java.util.Collection<E> {
+
+public int size();
+
+public boolean isEmpty();
+
+public boolean contains(@libcore.util.Nullable java.lang.Object o);
+
+@libcore.util.NonNull public java.util.Iterator<E> iterator();
+
+@libcore.util.Nullable public java.lang.Object[] toArray();
+
+public <T> T[] toArray(@libcore.util.Nullable T[] a);
+
+public boolean add(@libcore.util.NullFromTypeParam E e);
+
+public boolean remove(@libcore.util.Nullable java.lang.Object o);
+
+public boolean containsAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public boolean addAll(@libcore.util.NonNull java.util.Collection<? extends E> c);
+
+public boolean retainAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public boolean removeAll(@libcore.util.NonNull java.util.Collection<?> c);
+
+public void clear();
+
+public boolean equals(@libcore.util.Nullable java.lang.Object o);
+
+public int hashCode();
+
+@libcore.util.NonNull public default java.util.Spliterator<E> spliterator() { throw new RuntimeException("Stub!"); }
+}
+