public final class test/Bar$Creator : java/lang/Object, android/os/Parcelable$Creator {
    public void <init>()

    public final test.Bar createFromParcel(android.os.Parcel in) {
        LABEL (L0)
          ALOAD (1)
          LDC (in)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
        LABEL (L1)
          NEW (test/Bar)
          DUP
          ALOAD (1)
          INVOKEVIRTUAL (android/os/Parcel, readInt, ()I)
          IFEQ (L2)
          ALOAD (1)
          GETSTATIC (test/Foo, CREATOR, Landroid/os/Parcelable$Creator;)
          SWAP
          INVOKEINTERFACE (android/os/Parcelable$Creator, createFromParcel, (Landroid/os/Parcel;)Ljava/lang/Object;)
          CHECKCAST (test/Foo)
          GOTO (L3)
        LABEL (L2)
          ACONST_NULL
        LABEL (L3)
          INVOKESPECIAL (test/Bar, <init>, (Ltest/Foo;)V)
          ARETURN
        LABEL (L4)
    }

    public java.lang.Object createFromParcel(android.os.Parcel p0) {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          ALOAD (1)
          INVOKEVIRTUAL (test/Bar$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/Bar;)
          ARETURN
    }

    public final test.Bar[] newArray(int size)

    public java.lang.Object[] newArray(int p0)
}

public final class test/Bar : java/lang/Object, android/os/Parcelable {
    public final static android.os.Parcelable$Creator CREATOR

    private final test.Foo foo

    static void <clinit>() {
          NEW (test/Bar$Creator)
          DUP
          INVOKESPECIAL (test/Bar$Creator, <init>, ()V)
          PUTSTATIC (test/Bar, CREATOR, Landroid/os/Parcelable$Creator;)
          RETURN
    }

    public void <init>(test.Foo foo)

    public int describeContents()

    public final test.Foo getFoo()

    public void writeToParcel(android.os.Parcel parcel, int flags) {
        LABEL (L0)
          ALOAD (1)
          LDC (parcel)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          ALOAD (0)
          GETFIELD (test/Bar, foo, Ltest/Foo;)
          DUP
          IFNULL (L1)
          ALOAD (1)
          LDC (1)
          INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
          SWAP
          LDC (0)
          INVOKEINTERFACE (android/os/Parcelable, writeToParcel, (Landroid/os/Parcel;I)V)
          GOTO (L2)
        LABEL (L1)
          POP
          LDC (0)
          INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V)
        LABEL (L2)
          RETURN
        LABEL (L3)
    }
}

public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator {
    public void <init>()

    public final test.Foo createFromParcel(android.os.Parcel in) {
        LABEL (L0)
          ALOAD (1)
          LDC (in)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
          NEW (test/Foo)
          DUP
          ALOAD (1)
          GETSTATIC (test/Bar, CREATOR, Landroid/os/Parcelable$Creator;)
          SWAP
          INVOKEINTERFACE (android/os/Parcelable$Creator, createFromParcel, (Landroid/os/Parcel;)Ljava/lang/Object;)
          CHECKCAST (test/Bar)
          INVOKESPECIAL (test/Foo, <init>, (Ltest/Bar;)V)
          ARETURN
        LABEL (L1)
    }

    public java.lang.Object createFromParcel(android.os.Parcel p0) {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          ALOAD (1)
          INVOKEVIRTUAL (test/Foo$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/Foo;)
          ARETURN
    }

    public final test.Foo[] newArray(int size)

    public java.lang.Object[] newArray(int p0)
}

public final class test/Foo : java/lang/Object, android/os/Parcelable {
    public final static android.os.Parcelable$Creator CREATOR

    private final test.Bar bar

    static void <clinit>() {
          NEW (test/Foo$Creator)
          DUP
          INVOKESPECIAL (test/Foo$Creator, <init>, ()V)
          PUTSTATIC (test/Foo, CREATOR, Landroid/os/Parcelable$Creator;)
          RETURN
    }

    public void <init>(test.Bar bar)

    public int describeContents()

    public final test.Bar getBar()

    public void writeToParcel(android.os.Parcel parcel, int flags) {
        LABEL (L0)
          ALOAD (1)
          LDC (parcel)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          ALOAD (0)
          GETFIELD (test/Foo, bar, Ltest/Bar;)
          SWAP
          LDC (0)
          INVOKEINTERFACE (android/os/Parcelable, writeToParcel, (Landroid/os/Parcel;I)V)
          RETURN
        LABEL (L1)
    }
}
