public class org.hibernate.loader.custom.CustomLoader extends org.hibernate.loader.Loader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.loader.custom.CustomLoader
  super_class: org.hibernate.loader.Loader
{
  private final java.lang.String sql;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<java.io.Serializable> querySpaces;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/io/Serializable;>;

  private final java.util.List<org.hibernate.param.ParameterBinder> paramValueBinders;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/hibernate/param/ParameterBinder;>;

  private final org.hibernate.persister.entity.Queryable[] entityPersisters;
    descriptor: [Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] entiytOwners;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.loader.EntityAliases[] entityAliases;
    descriptor: [Lorg/hibernate/loader/EntityAliases;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.persister.collection.QueryableCollection[] collectionPersisters;
    descriptor: [Lorg/hibernate/persister/collection/QueryableCollection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] collectionOwners;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.loader.CollectionAliases[] collectionAliases;
    descriptor: [Lorg/hibernate/loader/CollectionAliases;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.LockMode[] lockModes;
    descriptor: [Lorg/hibernate/LockMode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean[] includeInResultRow;
    descriptor: [Z
    flags: (0x0002) ACC_PRIVATE

  private final org.hibernate.loader.custom.ResultRowProcessor rowProcessor;
    descriptor: Lorg/hibernate/loader/custom/ResultRowProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.hibernate.type.Type[] resultTypes;
    descriptor: [Lorg/hibernate/type/Type;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] transformerAliases;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.hibernate.loader.custom.CustomQuery, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/loader/custom/CustomQuery;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=27, args_size=3
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 86
            aload 0 /* this */
            aload 2 /* factory */
            invokespecial org.hibernate.loader.Loader.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
         1: .line 58
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
         2: .line 88
            aload 0 /* this */
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getSQL:()Ljava/lang/String;
            putfield org.hibernate.loader.custom.CustomLoader.sql:Ljava/lang/String;
         3: .line 89
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getQuerySpaces:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 91
            aload 0 /* this */
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getParameterValueBinders:()Ljava/util/List;
            putfield org.hibernate.loader.custom.CustomLoader.paramValueBinders:Ljava/util/List;
         5: .line 93
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* entityPersisters */
        start local 3 // java.util.List entityPersisters
         6: .line 94
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* entityOwners */
        start local 4 // java.util.List entityOwners
         7: .line 95
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* entityAliases */
        start local 5 // java.util.List entityAliases
         8: .line 97
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* collectionPersisters */
        start local 6 // java.util.List collectionPersisters
         9: .line 98
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* collectionOwners */
        start local 7 // java.util.List collectionOwners
        10: .line 99
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* collectionAliases */
        start local 8 // java.util.List collectionAliases
        11: .line 101
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* lockModes */
        start local 9 // java.util.List lockModes
        12: .line 102
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* resultColumnProcessors */
        start local 10 // java.util.List resultColumnProcessors
        13: .line 103
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* nonScalarReturnList */
        start local 11 // java.util.List nonScalarReturnList
        14: .line 104
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* resultTypes */
        start local 12 // java.util.List resultTypes
        15: .line 105
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* specifiedAliases */
        start local 13 // java.util.List specifiedAliases
        16: .line 107
            iconst_0
            istore 14 /* returnableCounter */
        start local 14 // int returnableCounter
        17: .line 108
            iconst_0
            istore 15 /* hasScalars */
        start local 15 // boolean hasScalars
        18: .line 110
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* includeInResultRowList */
        start local 16 // java.util.List includeInResultRowList
        19: .line 112
            aload 1 /* customQuery */
            invokeinterface org.hibernate.loader.custom.CustomQuery.getCustomQueryReturns:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 128
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List top java.util.Iterator
      StackMap stack:
        20: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.custom.Return
            astore 17 /* rtn */
        start local 17 // org.hibernate.loader.custom.Return rtn
        21: .line 113
            aload 17 /* rtn */
            instanceof org.hibernate.loader.custom.ScalarReturn
            ifeq 34
        22: .line 114
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.ScalarReturn
            astore 19 /* scalarRtn */
        start local 19 // org.hibernate.loader.custom.ScalarReturn scalarRtn
        23: .line 115
            aload 12 /* resultTypes */
            aload 19 /* scalarRtn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getType:()Lorg/hibernate/type/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 116
            aload 13 /* specifiedAliases */
            aload 19 /* scalarRtn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getColumnAlias:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 117
            aload 10 /* resultColumnProcessors */
        26: .line 118
            new org.hibernate.loader.custom.ScalarResultColumnProcessor
            dup
        27: .line 119
            aload 19 /* scalarRtn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getColumnAlias:()Ljava/lang/String;
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
        28: .line 120
            aload 19 /* scalarRtn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getType:()Lorg/hibernate/type/Type;
        29: .line 118
            invokespecial org.hibernate.loader.custom.ScalarResultColumnProcessor.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;)V
        30: .line 117
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 123
            aload 16 /* includeInResultRowList */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 124
            iconst_1
            istore 15 /* hasScalars */
        end local 19 // org.hibernate.loader.custom.ScalarReturn scalarRtn
        33: .line 125
            goto 128
        34: .line 126
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator
      StackMap stack:
            ldc Lorg/hibernate/loader/custom/ConstructorReturn;
            aload 17 /* rtn */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 53
        35: .line 127
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.ConstructorReturn
            astore 19 /* constructorReturn */
        start local 19 // org.hibernate.loader.custom.ConstructorReturn constructorReturn
        36: .line 128
            aload 12 /* resultTypes */
            aconst_null
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        37: .line 129
            aload 16 /* includeInResultRowList */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        38: .line 130
            iconst_1
            istore 15 /* hasScalars */
        39: .line 132
            aload 19 /* constructorReturn */
            invokevirtual org.hibernate.loader.custom.ConstructorReturn.getScalars:()[Lorg/hibernate/loader/custom/ScalarReturn;
            arraylength
            anewarray org.hibernate.loader.custom.ScalarResultColumnProcessor
            astore 20 /* scalarProcessors */
        start local 20 // org.hibernate.loader.custom.ScalarResultColumnProcessor[] scalarProcessors
        40: .line 133
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        41: .line 134
            aload 19 /* constructorReturn */
            invokevirtual org.hibernate.loader.custom.ConstructorReturn.getScalars:()[Lorg/hibernate/loader/custom/ScalarReturn;
            dup
            astore 25
            arraylength
            istore 24
            iconst_0
            istore 23
            goto 48
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator org.hibernate.loader.custom.ConstructorReturn org.hibernate.loader.custom.ScalarResultColumnProcessor[] int top int int org.hibernate.loader.custom.ScalarReturn[]
      StackMap stack:
        42: aload 25
            iload 23
            aaload
            astore 22 /* scalarReturn */
        start local 22 // org.hibernate.loader.custom.ScalarReturn scalarReturn
        43: .line 135
            aload 20 /* scalarProcessors */
            iload 21 /* i */
            iinc 21 /* i */ 1
            new org.hibernate.loader.custom.ScalarResultColumnProcessor
            dup
        44: .line 136
            aload 22 /* scalarReturn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getColumnAlias:()Ljava/lang/String;
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
        45: .line 137
            aload 22 /* scalarReturn */
            invokevirtual org.hibernate.loader.custom.ScalarReturn.getType:()Lorg/hibernate/type/Type;
            invokespecial org.hibernate.loader.custom.ScalarResultColumnProcessor.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;)V
        46: .line 135
            aastore
        end local 22 // org.hibernate.loader.custom.ScalarReturn scalarReturn
        47: .line 134
            iinc 23 1
      StackMap locals:
      StackMap stack:
        48: iload 23
            iload 24
            if_icmplt 42
        49: .line 141
            aload 10 /* resultColumnProcessors */
        50: .line 142
            new org.hibernate.loader.custom.ConstructorResultColumnProcessor
            dup
            aload 19 /* constructorReturn */
            invokevirtual org.hibernate.loader.custom.ConstructorReturn.getTargetClass:()Ljava/lang/Class;
            aload 20 /* scalarProcessors */
            invokespecial org.hibernate.loader.custom.ConstructorResultColumnProcessor.<init>:(Ljava/lang/Class;[Lorg/hibernate/loader/custom/ScalarResultColumnProcessor;)V
        51: .line 141
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // int i
        end local 20 // org.hibernate.loader.custom.ScalarResultColumnProcessor[] scalarProcessors
        end local 19 // org.hibernate.loader.custom.ConstructorReturn constructorReturn
        52: .line 144
            goto 128
        53: .line 145
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator
      StackMap stack:
            aload 17 /* rtn */
            instanceof org.hibernate.loader.custom.RootReturn
            ifeq 67
        54: .line 146
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.RootReturn
            astore 19 /* rootRtn */
        start local 19 // org.hibernate.loader.custom.RootReturn rootRtn
        55: .line 147
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 19 /* rootRtn */
            invokevirtual org.hibernate.loader.custom.RootReturn.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Queryable
            astore 20 /* persister */
        start local 20 // org.hibernate.persister.entity.Queryable persister
        56: .line 148
            aload 3 /* entityPersisters */
            aload 20 /* persister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        57: .line 149
            aload 9 /* lockModes */
            aload 19 /* rootRtn */
            invokevirtual org.hibernate.loader.custom.RootReturn.getLockMode:()Lorg/hibernate/LockMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 150
            aload 10 /* resultColumnProcessors */
            new org.hibernate.loader.custom.NonScalarResultColumnProcessor
            dup
            iload 14 /* returnableCounter */
            iinc 14 /* returnableCounter */ 1
            invokespecial org.hibernate.loader.custom.NonScalarResultColumnProcessor.<init>:(I)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        59: .line 151
            aload 11 /* nonScalarReturnList */
            aload 17 /* rtn */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        60: .line 152
            aload 4 /* entityOwners */
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        61: .line 153
            aload 12 /* resultTypes */
            aload 20 /* persister */
            invokeinterface org.hibernate.persister.entity.Queryable.getType:()Lorg/hibernate/type/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        62: .line 154
            aload 13 /* specifiedAliases */
            aload 19 /* rootRtn */
            invokevirtual org.hibernate.loader.custom.RootReturn.getAlias:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        63: .line 155
            aload 5 /* entityAliases */
            aload 19 /* rootRtn */
            invokevirtual org.hibernate.loader.custom.RootReturn.getEntityAliases:()Lorg/hibernate/loader/EntityAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        64: .line 156
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 20 /* persister */
            invokeinterface org.hibernate.persister.entity.Queryable.getQuerySpaces:()[Ljava/io/Serializable;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)V
        65: .line 157
            aload 16 /* includeInResultRowList */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 20 // org.hibernate.persister.entity.Queryable persister
        end local 19 // org.hibernate.loader.custom.RootReturn rootRtn
        66: .line 158
            goto 128
        67: .line 159
      StackMap locals:
      StackMap stack:
            aload 17 /* rtn */
            instanceof org.hibernate.loader.custom.CollectionReturn
            ifeq 88
        68: .line 160
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.CollectionReturn
            astore 19 /* collRtn */
        start local 19 // org.hibernate.loader.custom.CollectionReturn collRtn
        69: .line 161
            new java.lang.StringBuilder
            dup
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getOwnerEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getOwnerProperty:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 20 /* role */
        start local 20 // java.lang.String role
        70: .line 162
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 20 /* role */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 21 /* persister */
        start local 21 // org.hibernate.persister.collection.QueryableCollection persister
        71: .line 163
            aload 6 /* collectionPersisters */
            aload 21 /* persister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        72: .line 164
            aload 9 /* lockModes */
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getLockMode:()Lorg/hibernate/LockMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        73: .line 165
            aload 10 /* resultColumnProcessors */
            new org.hibernate.loader.custom.NonScalarResultColumnProcessor
            dup
            iload 14 /* returnableCounter */
            iinc 14 /* returnableCounter */ 1
            invokespecial org.hibernate.loader.custom.NonScalarResultColumnProcessor.<init>:(I)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        74: .line 166
            aload 11 /* nonScalarReturnList */
            aload 17 /* rtn */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        75: .line 167
            aload 7 /* collectionOwners */
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        76: .line 168
            aload 12 /* resultTypes */
            aload 21 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getType:()Lorg/hibernate/type/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        77: .line 169
            aload 13 /* specifiedAliases */
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getAlias:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        78: .line 170
            aload 8 /* collectionAliases */
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getCollectionAliases:()Lorg/hibernate/loader/CollectionAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        79: .line 172
            aload 21 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 22 /* elementType */
        start local 22 // org.hibernate.type.Type elementType
        80: .line 173
            aload 22 /* elementType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 86
        81: .line 174
            aload 22 /* elementType */
            checkcast org.hibernate.type.EntityType
            aload 2 /* factory */
            invokevirtual org.hibernate.type.EntityType.getAssociatedJoinable:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.entity.Queryable
            astore 23 /* elementPersister */
        start local 23 // org.hibernate.persister.entity.Queryable elementPersister
        82: .line 175
            aload 3 /* entityPersisters */
            aload 23 /* elementPersister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        83: .line 176
            aload 4 /* entityOwners */
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        84: .line 177
            aload 5 /* entityAliases */
            aload 19 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getElementEntityAliases:()Lorg/hibernate/loader/EntityAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        85: .line 178
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 23 /* elementPersister */
            invokeinterface org.hibernate.persister.entity.Queryable.getQuerySpaces:()[Ljava/io/Serializable;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)V
        end local 23 // org.hibernate.persister.entity.Queryable elementPersister
        86: .line 180
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator org.hibernate.loader.custom.CollectionReturn java.lang.String org.hibernate.persister.collection.QueryableCollection org.hibernate.type.Type
      StackMap stack:
            aload 16 /* includeInResultRowList */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 22 // org.hibernate.type.Type elementType
        end local 21 // org.hibernate.persister.collection.QueryableCollection persister
        end local 20 // java.lang.String role
        end local 19 // org.hibernate.loader.custom.CollectionReturn collRtn
        87: .line 181
            goto 128
        88: .line 182
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator
      StackMap stack:
            aload 17 /* rtn */
            instanceof org.hibernate.loader.custom.EntityFetchReturn
            ifeq 105
        89: .line 183
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.EntityFetchReturn
            astore 19 /* fetchRtn */
        start local 19 // org.hibernate.loader.custom.EntityFetchReturn fetchRtn
        90: .line 184
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.EntityFetchReturn.getOwner:()Lorg/hibernate/loader/custom/NonScalarReturn;
            astore 20 /* ownerDescriptor */
        start local 20 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
        91: .line 185
            aload 11 /* nonScalarReturnList */
            aload 20 /* ownerDescriptor */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 21 /* ownerIndex */
        start local 21 // int ownerIndex
        92: .line 186
            aload 4 /* entityOwners */
            iload 21 /* ownerIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        93: .line 187
            aload 9 /* lockModes */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.EntityFetchReturn.getLockMode:()Lorg/hibernate/LockMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        94: .line 188
            aload 0 /* this */
            aload 20 /* ownerDescriptor */
            invokevirtual org.hibernate.loader.custom.CustomLoader.determineAppropriateOwnerPersister:(Lorg/hibernate/loader/custom/NonScalarReturn;)Lorg/hibernate/persister/entity/Queryable;
            astore 22 /* ownerPersister */
        start local 22 // org.hibernate.persister.entity.Queryable ownerPersister
        95: .line 189
            aload 22 /* ownerPersister */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.EntityFetchReturn.getOwnerProperty:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.entity.Queryable.getPropertyType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
            astore 23 /* fetchedType */
        start local 23 // org.hibernate.type.EntityType fetchedType
        96: .line 190
            aload 23 /* fetchedType */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 24 /* entityName */
        start local 24 // java.lang.String entityName
        97: .line 191
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 24 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Queryable
            astore 25 /* persister */
        start local 25 // org.hibernate.persister.entity.Queryable persister
        98: .line 192
            aload 3 /* entityPersisters */
            aload 25 /* persister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        99: .line 193
            aload 11 /* nonScalarReturnList */
            aload 17 /* rtn */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       100: .line 194
            aload 13 /* specifiedAliases */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.EntityFetchReturn.getAlias:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       101: .line 195
            aload 5 /* entityAliases */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.EntityFetchReturn.getEntityAliases:()Lorg/hibernate/loader/EntityAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       102: .line 196
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 25 /* persister */
            invokeinterface org.hibernate.persister.entity.Queryable.getQuerySpaces:()[Ljava/io/Serializable;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)V
       103: .line 197
            aload 16 /* includeInResultRowList */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // org.hibernate.persister.entity.Queryable persister
        end local 24 // java.lang.String entityName
        end local 23 // org.hibernate.type.EntityType fetchedType
        end local 22 // org.hibernate.persister.entity.Queryable ownerPersister
        end local 21 // int ownerIndex
        end local 20 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
        end local 19 // org.hibernate.loader.custom.EntityFetchReturn fetchRtn
       104: .line 198
            goto 128
       105: .line 199
      StackMap locals:
      StackMap stack:
            aload 17 /* rtn */
            instanceof org.hibernate.loader.custom.CollectionFetchReturn
            ifeq 127
       106: .line 200
            aload 17 /* rtn */
            checkcast org.hibernate.loader.custom.CollectionFetchReturn
            astore 19 /* fetchRtn */
        start local 19 // org.hibernate.loader.custom.CollectionFetchReturn fetchRtn
       107: .line 201
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getOwner:()Lorg/hibernate/loader/custom/NonScalarReturn;
            astore 20 /* ownerDescriptor */
        start local 20 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
       108: .line 202
            aload 11 /* nonScalarReturnList */
            aload 20 /* ownerDescriptor */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 21 /* ownerIndex */
        start local 21 // int ownerIndex
       109: .line 203
            aload 7 /* collectionOwners */
            iload 21 /* ownerIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       110: .line 204
            aload 9 /* lockModes */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getLockMode:()Lorg/hibernate/LockMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       111: .line 205
            aload 0 /* this */
            aload 20 /* ownerDescriptor */
            invokevirtual org.hibernate.loader.custom.CustomLoader.determineAppropriateOwnerPersister:(Lorg/hibernate/loader/custom/NonScalarReturn;)Lorg/hibernate/persister/entity/Queryable;
            astore 22 /* ownerPersister */
        start local 22 // org.hibernate.persister.entity.Queryable ownerPersister
       112: .line 206
            new java.lang.StringBuilder
            dup
            aload 22 /* ownerPersister */
            invokeinterface org.hibernate.persister.entity.Queryable.getEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getOwnerProperty:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 23 /* role */
        start local 23 // java.lang.String role
       113: .line 207
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 23 /* role */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 24 /* persister */
        start local 24 // org.hibernate.persister.collection.QueryableCollection persister
       114: .line 208
            aload 6 /* collectionPersisters */
            aload 24 /* persister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       115: .line 209
            aload 11 /* nonScalarReturnList */
            aload 17 /* rtn */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       116: .line 210
            aload 13 /* specifiedAliases */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getAlias:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       117: .line 211
            aload 8 /* collectionAliases */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getCollectionAliases:()Lorg/hibernate/loader/CollectionAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       118: .line 213
            aload 24 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 25 /* elementType */
        start local 25 // org.hibernate.type.Type elementType
       119: .line 214
            aload 25 /* elementType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 125
       120: .line 215
            aload 25 /* elementType */
            checkcast org.hibernate.type.EntityType
            aload 2 /* factory */
            invokevirtual org.hibernate.type.EntityType.getAssociatedJoinable:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.entity.Queryable
            astore 26 /* elementPersister */
        start local 26 // org.hibernate.persister.entity.Queryable elementPersister
       121: .line 216
            aload 3 /* entityPersisters */
            aload 26 /* elementPersister */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       122: .line 217
            aload 4 /* entityOwners */
            iload 21 /* ownerIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       123: .line 218
            aload 5 /* entityAliases */
            aload 19 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.CollectionFetchReturn.getElementEntityAliases:()Lorg/hibernate/loader/EntityAliases;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       124: .line 219
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 26 /* elementPersister */
            invokeinterface org.hibernate.persister.entity.Queryable.getQuerySpaces:()[Ljava/io/Serializable;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)V
        end local 26 // org.hibernate.persister.entity.Queryable elementPersister
       125: .line 221
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator org.hibernate.loader.custom.CollectionFetchReturn org.hibernate.loader.custom.NonScalarReturn int org.hibernate.persister.entity.Queryable java.lang.String org.hibernate.persister.collection.QueryableCollection org.hibernate.type.Type
      StackMap stack:
            aload 16 /* includeInResultRowList */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // org.hibernate.type.Type elementType
        end local 24 // org.hibernate.persister.collection.QueryableCollection persister
        end local 23 // java.lang.String role
        end local 22 // org.hibernate.persister.entity.Queryable ownerPersister
        end local 21 // int ownerIndex
        end local 20 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
        end local 19 // org.hibernate.loader.custom.CollectionFetchReturn fetchRtn
       126: .line 222
            goto 128
       127: .line 224
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List org.hibernate.loader.custom.Return java.util.Iterator
      StackMap stack:
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected custom query return type : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 17 /* rtn */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 17 // org.hibernate.loader.custom.Return rtn
       128: .line 112
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List top java.util.Iterator
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
       129: .line 228
            aload 0 /* this */
            aload 3 /* entityPersisters */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.persister.entity.Queryable
            putfield org.hibernate.loader.custom.CustomLoader.entityPersisters:[Lorg/hibernate/persister/entity/Queryable;
       130: .line 229
            iconst_0
            istore 17 /* i */
        start local 17 // int i
       131: goto 134
       132: .line 230
      StackMap locals: org.hibernate.loader.custom.CustomLoader org.hibernate.loader.custom.CustomQuery org.hibernate.engine.spi.SessionFactoryImplementor java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List int int java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.entityPersisters:[Lorg/hibernate/persister/entity/Queryable;
            iload 17 /* i */
            aload 3 /* entityPersisters */
            iload 17 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.persister.entity.Queryable
            aastore
       133: .line 229
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
       134: iload 17 /* i */
            aload 3 /* entityPersisters */
            invokeinterface java.util.List.size:()I
            if_icmplt 132
        end local 17 // int i
       135: .line 232
            aload 0 /* this */
            aload 4 /* entityOwners */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
            putfield org.hibernate.loader.custom.CustomLoader.entiytOwners:[I
       136: .line 233
            aload 0 /* this */
            aload 5 /* entityAliases */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.loader.EntityAliases
            putfield org.hibernate.loader.custom.CustomLoader.entityAliases:[Lorg/hibernate/loader/EntityAliases;
       137: .line 234
            iconst_0
            istore 17 /* i */
        start local 17 // int i
       138: goto 141
       139: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.entityAliases:[Lorg/hibernate/loader/EntityAliases;
            iload 17 /* i */
            aload 5 /* entityAliases */
            iload 17 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.loader.EntityAliases
            aastore
       140: .line 234
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
       141: iload 17 /* i */
            aload 5 /* entityAliases */
            invokeinterface java.util.List.size:()I
            if_icmplt 139
        end local 17 // int i
       142: .line 238
            aload 0 /* this */
            aload 6 /* collectionPersisters */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.persister.collection.QueryableCollection
            putfield org.hibernate.loader.custom.CustomLoader.collectionPersisters:[Lorg/hibernate/persister/collection/QueryableCollection;
       143: .line 239
            iconst_0
            istore 17 /* i */
        start local 17 // int i
       144: goto 147
       145: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.collectionPersisters:[Lorg/hibernate/persister/collection/QueryableCollection;
            iload 17 /* i */
            aload 6 /* collectionPersisters */
            iload 17 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.persister.collection.QueryableCollection
            aastore
       146: .line 239
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
       147: iload 17 /* i */
            aload 6 /* collectionPersisters */
            invokeinterface java.util.List.size:()I
            if_icmplt 145
        end local 17 // int i
       148: .line 242
            aload 0 /* this */
            aload 7 /* collectionOwners */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
            putfield org.hibernate.loader.custom.CustomLoader.collectionOwners:[I
       149: .line 243
            aload 0 /* this */
            aload 8 /* collectionAliases */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.loader.CollectionAliases
            putfield org.hibernate.loader.custom.CustomLoader.collectionAliases:[Lorg/hibernate/loader/CollectionAliases;
       150: .line 244
            iconst_0
            istore 17 /* i */
        start local 17 // int i
       151: goto 154
       152: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.collectionAliases:[Lorg/hibernate/loader/CollectionAliases;
            iload 17 /* i */
            aload 8 /* collectionAliases */
            iload 17 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.loader.CollectionAliases
            aastore
       153: .line 244
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
       154: iload 17 /* i */
            aload 8 /* collectionAliases */
            invokeinterface java.util.List.size:()I
            if_icmplt 152
        end local 17 // int i
       155: .line 248
            aload 0 /* this */
            aload 9 /* lockModes */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.LockMode
            putfield org.hibernate.loader.custom.CustomLoader.lockModes:[Lorg/hibernate/LockMode;
       156: .line 249
            iconst_0
            istore 17 /* i */
        start local 17 // int i
       157: goto 160
       158: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.lockModes:[Lorg/hibernate/LockMode;
            iload 17 /* i */
            aload 9 /* lockModes */
            iload 17 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.LockMode
            aastore
       159: .line 249
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
       160: iload 17 /* i */
            aload 9 /* lockModes */
            invokeinterface java.util.List.size:()I
            if_icmplt 158
        end local 17 // int i
       161: .line 253
            aload 0 /* this */
            aload 12 /* resultTypes */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.loader.custom.CustomLoader.resultTypes:[Lorg/hibernate/type/Type;
       162: .line 254
            aload 0 /* this */
            aload 13 /* specifiedAliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.loader.custom.CustomLoader.transformerAliases:[Ljava/lang/String;
       163: .line 256
            aload 0 /* this */
            new org.hibernate.loader.custom.ResultRowProcessor
            dup
       164: .line 257
            iload 15 /* hasScalars */
       165: .line 258
            aload 10 /* resultColumnProcessors */
            aload 10 /* resultColumnProcessors */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.loader.custom.ResultColumnProcessor
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.hibernate.loader.custom.ResultColumnProcessor[]
            invokespecial org.hibernate.loader.custom.ResultRowProcessor.<init>:(Z[Lorg/hibernate/loader/custom/ResultColumnProcessor;)V
       166: .line 256
            putfield org.hibernate.loader.custom.CustomLoader.rowProcessor:Lorg/hibernate/loader/custom/ResultRowProcessor;
       167: .line 261
            aload 0 /* this */
            aload 16 /* includeInResultRowList */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.loader.custom.CustomLoader.includeInResultRow:[Z
       168: .line 262
            return
        end local 16 // java.util.List includeInResultRowList
        end local 15 // boolean hasScalars
        end local 14 // int returnableCounter
        end local 13 // java.util.List specifiedAliases
        end local 12 // java.util.List resultTypes
        end local 11 // java.util.List nonScalarReturnList
        end local 10 // java.util.List resultColumnProcessors
        end local 9 // java.util.List lockModes
        end local 8 // java.util.List collectionAliases
        end local 7 // java.util.List collectionOwners
        end local 6 // java.util.List collectionPersisters
        end local 5 // java.util.List entityAliases
        end local 4 // java.util.List entityOwners
        end local 3 // java.util.List entityPersisters
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // org.hibernate.loader.custom.CustomQuery customQuery
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0  169     0                    this  Lorg/hibernate/loader/custom/CustomLoader;
            0  169     1             customQuery  Lorg/hibernate/loader/custom/CustomQuery;
            0  169     2                 factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            6  169     3        entityPersisters  Ljava/util/List<Lorg/hibernate/persister/entity/Queryable;>;
            7  169     4            entityOwners  Ljava/util/List<Ljava/lang/Integer;>;
            8  169     5           entityAliases  Ljava/util/List<Lorg/hibernate/loader/EntityAliases;>;
            9  169     6    collectionPersisters  Ljava/util/List<Lorg/hibernate/persister/collection/QueryableCollection;>;
           10  169     7        collectionOwners  Ljava/util/List<Ljava/lang/Integer;>;
           11  169     8       collectionAliases  Ljava/util/List<Lorg/hibernate/loader/CollectionAliases;>;
           12  169     9               lockModes  Ljava/util/List<Lorg/hibernate/LockMode;>;
           13  169    10  resultColumnProcessors  Ljava/util/List<Lorg/hibernate/loader/custom/ResultColumnProcessor;>;
           14  169    11     nonScalarReturnList  Ljava/util/List<Lorg/hibernate/loader/custom/Return;>;
           15  169    12             resultTypes  Ljava/util/List<Lorg/hibernate/type/Type;>;
           16  169    13        specifiedAliases  Ljava/util/List<Ljava/lang/String;>;
           17  169    14       returnableCounter  I
           18  169    15              hasScalars  Z
           19  169    16  includeInResultRowList  Ljava/util/List<Ljava/lang/Boolean;>;
           21  128    17                     rtn  Lorg/hibernate/loader/custom/Return;
           23   33    19               scalarRtn  Lorg/hibernate/loader/custom/ScalarReturn;
           36   52    19       constructorReturn  Lorg/hibernate/loader/custom/ConstructorReturn;
           40   52    20        scalarProcessors  [Lorg/hibernate/loader/custom/ScalarResultColumnProcessor;
           41   52    21                       i  I
           43   47    22            scalarReturn  Lorg/hibernate/loader/custom/ScalarReturn;
           55   66    19                 rootRtn  Lorg/hibernate/loader/custom/RootReturn;
           56   66    20               persister  Lorg/hibernate/persister/entity/Queryable;
           69   87    19                 collRtn  Lorg/hibernate/loader/custom/CollectionReturn;
           70   87    20                    role  Ljava/lang/String;
           71   87    21               persister  Lorg/hibernate/persister/collection/QueryableCollection;
           80   87    22             elementType  Lorg/hibernate/type/Type;
           82   86    23        elementPersister  Lorg/hibernate/persister/entity/Queryable;
           90  104    19                fetchRtn  Lorg/hibernate/loader/custom/EntityFetchReturn;
           91  104    20         ownerDescriptor  Lorg/hibernate/loader/custom/NonScalarReturn;
           92  104    21              ownerIndex  I
           95  104    22          ownerPersister  Lorg/hibernate/persister/entity/Queryable;
           96  104    23             fetchedType  Lorg/hibernate/type/EntityType;
           97  104    24              entityName  Ljava/lang/String;
           98  104    25               persister  Lorg/hibernate/persister/entity/Queryable;
          107  126    19                fetchRtn  Lorg/hibernate/loader/custom/CollectionFetchReturn;
          108  126    20         ownerDescriptor  Lorg/hibernate/loader/custom/NonScalarReturn;
          109  126    21              ownerIndex  I
          112  126    22          ownerPersister  Lorg/hibernate/persister/entity/Queryable;
          113  126    23                    role  Ljava/lang/String;
          114  126    24               persister  Lorg/hibernate/persister/collection/QueryableCollection;
          119  126    25             elementType  Lorg/hibernate/type/Type;
          121  125    26        elementPersister  Lorg/hibernate/persister/entity/Queryable;
          131  135    17                       i  I
          138  142    17                       i  I
          144  148    17                       i  I
          151  155    17                       i  I
          157  161    17                       i  I
    MethodParameters:
             Name  Flags
      customQuery  
      factory      

  private org.hibernate.persister.entity.Queryable determineAppropriateOwnerPersister(org.hibernate.loader.custom.NonScalarReturn);
    descriptor: (Lorg/hibernate/loader/custom/NonScalarReturn;)Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
         0: .line 265
            aconst_null
            astore 2 /* entityName */
        start local 2 // java.lang.String entityName
         1: .line 266
            aload 1 /* ownerDescriptor */
            instanceof org.hibernate.loader.custom.RootReturn
            ifeq 4
         2: .line 267
            aload 1 /* ownerDescriptor */
            checkcast org.hibernate.loader.custom.RootReturn
            invokevirtual org.hibernate.loader.custom.RootReturn.getEntityName:()Ljava/lang/String;
            astore 2 /* entityName */
         3: .line 268
            goto 22
         4: .line 269
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* ownerDescriptor */
            instanceof org.hibernate.loader.custom.CollectionReturn
            ifeq 11
         5: .line 270
            aload 1 /* ownerDescriptor */
            checkcast org.hibernate.loader.custom.CollectionReturn
            astore 3 /* collRtn */
        start local 3 // org.hibernate.loader.custom.CollectionReturn collRtn
         6: .line 271
            new java.lang.StringBuilder
            dup
            aload 3 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getOwnerEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* collRtn */
            invokevirtual org.hibernate.loader.custom.CollectionReturn.getOwnerProperty:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* role */
        start local 4 // java.lang.String role
         7: .line 272
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 4 /* role */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 5 /* persister */
        start local 5 // org.hibernate.persister.collection.CollectionPersister persister
         8: .line 273
            aload 5 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getElementType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
            astore 6 /* ownerType */
        start local 6 // org.hibernate.type.EntityType ownerType
         9: .line 274
            aload 6 /* ownerType */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 2 /* entityName */
        end local 6 // org.hibernate.type.EntityType ownerType
        end local 5 // org.hibernate.persister.collection.CollectionPersister persister
        end local 4 // java.lang.String role
        end local 3 // org.hibernate.loader.custom.CollectionReturn collRtn
        10: .line 275
            goto 22
        11: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* ownerDescriptor */
            instanceof org.hibernate.loader.custom.FetchReturn
            ifeq 22
        12: .line 277
            aload 1 /* ownerDescriptor */
            checkcast org.hibernate.loader.custom.FetchReturn
            astore 3 /* fetchRtn */
        start local 3 // org.hibernate.loader.custom.FetchReturn fetchRtn
        13: .line 278
            aload 0 /* this */
            aload 3 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.FetchReturn.getOwner:()Lorg/hibernate/loader/custom/NonScalarReturn;
            invokevirtual org.hibernate.loader.custom.CustomLoader.determineAppropriateOwnerPersister:(Lorg/hibernate/loader/custom/NonScalarReturn;)Lorg/hibernate/persister/entity/Queryable;
            astore 4 /* persister */
        start local 4 // org.hibernate.persister.entity.Queryable persister
        14: .line 279
            aload 4 /* persister */
            aload 3 /* fetchRtn */
            invokevirtual org.hibernate.loader.custom.FetchReturn.getOwnerProperty:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.entity.Queryable.getPropertyType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 5 /* ownerType */
        start local 5 // org.hibernate.type.Type ownerType
        15: .line 280
            aload 5 /* ownerType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 18
        16: .line 281
            aload 5 /* ownerType */
            checkcast org.hibernate.type.EntityType
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 2 /* entityName */
        17: .line 282
            goto 22
        18: .line 283
      StackMap locals: org.hibernate.loader.custom.FetchReturn org.hibernate.persister.entity.Queryable org.hibernate.type.Type
      StackMap stack:
            aload 5 /* ownerType */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 22
        19: .line 284
            aload 5 /* ownerType */
            checkcast org.hibernate.type.CollectionType
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.CollectionType.getElementType:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/type/Type;
            astore 6 /* ownerCollectionElementType */
        start local 6 // org.hibernate.type.Type ownerCollectionElementType
        20: .line 285
            aload 6 /* ownerCollectionElementType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 22
        21: .line 286
            aload 6 /* ownerCollectionElementType */
            checkcast org.hibernate.type.EntityType
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 2 /* entityName */
        end local 6 // org.hibernate.type.Type ownerCollectionElementType
        end local 5 // org.hibernate.type.Type ownerType
        end local 4 // org.hibernate.persister.entity.Queryable persister
        end local 3 // org.hibernate.loader.custom.FetchReturn fetchRtn
        22: .line 291
      StackMap locals:
      StackMap stack:
            aload 2 /* entityName */
            ifnonnull 24
        23: .line 292
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not determine fetch owner : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ownerDescriptor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 2 /* entityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Queryable
            areturn
        end local 2 // java.lang.String entityName
        end local 1 // org.hibernate.loader.custom.NonScalarReturn ownerDescriptor
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   25     0                        this  Lorg/hibernate/loader/custom/CustomLoader;
            0   25     1             ownerDescriptor  Lorg/hibernate/loader/custom/NonScalarReturn;
            1   25     2                  entityName  Ljava/lang/String;
            6   10     3                     collRtn  Lorg/hibernate/loader/custom/CollectionReturn;
            7   10     4                        role  Ljava/lang/String;
            8   10     5                   persister  Lorg/hibernate/persister/collection/CollectionPersister;
            9   10     6                   ownerType  Lorg/hibernate/type/EntityType;
           13   22     3                    fetchRtn  Lorg/hibernate/loader/custom/FetchReturn;
           14   22     4                   persister  Lorg/hibernate/persister/entity/Queryable;
           15   22     5                   ownerType  Lorg/hibernate/type/Type;
           20   22     6  ownerCollectionElementType  Lorg/hibernate/type/Type;
    MethodParameters:
                 Name  Flags
      ownerDescriptor  

  protected java.lang.String getQueryIdentifier();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 300
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.sql:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  public java.lang.String getSQLString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 305
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.sql:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  public java.util.Set getQuerySpaces();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 309
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected org.hibernate.LockMode[] getLockModes(org.hibernate.LockOptions);
    descriptor: (Lorg/hibernate/LockOptions;)[Lorg/hibernate/LockMode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.LockOptions lockOptions
         0: .line 314
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.lockModes:[Lorg/hibernate/LockMode;
            areturn
        end local 1 // org.hibernate.LockOptions lockOptions
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/loader/custom/CustomLoader;
            0    1     1  lockOptions  Lorg/hibernate/LockOptions;
    MethodParameters:
             Name  Flags
      lockOptions  

  protected org.hibernate.persister.entity.Loadable[] getEntityPersisters();
    descriptor: ()[Lorg/hibernate/persister/entity/Loadable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 319
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.entityPersisters:[Lorg/hibernate/persister/entity/Queryable;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected org.hibernate.persister.collection.CollectionPersister[] getCollectionPersisters();
    descriptor: ()[Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 324
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.collectionPersisters:[Lorg/hibernate/persister/collection/QueryableCollection;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected int[] getCollectionOwners();
    descriptor: ()[I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 329
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.collectionOwners:[I
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected int[] getOwners();
    descriptor: ()[I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 334
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.entiytOwners:[I
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  public java.util.List list(org.hibernate.engine.spi.SharedSessionContractImplementor, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 338
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* queryParameters */
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.querySpaces:Ljava/util/Set;
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.resultTypes:[Lorg/hibernate/type/Type;
            invokevirtual org.hibernate.loader.custom.CustomLoader.list:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Ljava/util/Set;[Lorg/hibernate/type/Type;)Ljava/util/List;
            areturn
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/loader/custom/CustomLoader;
            0    1     1          session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    1     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      session          
      queryParameters  

  protected java.lang.String applyLocks(java.lang.String, org.hibernate.engine.spi.QueryParameters, org.hibernate.dialect.Dialect, java.util.List<org.hibernate.loader.spi.AfterLoadAction>);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/dialect/Dialect;Ljava/util/List;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.lang.String sql
        start local 2 // org.hibernate.engine.spi.QueryParameters parameters
        start local 3 // org.hibernate.dialect.Dialect dialect
        start local 4 // java.util.List afterLoadActions
         0: .line 347
            aload 2 /* parameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getLockOptions:()Lorg/hibernate/LockOptions;
            astore 5 /* lockOptions */
        start local 5 // org.hibernate.LockOptions lockOptions
         1: .line 348
            aload 5 /* lockOptions */
            ifnull 3
         2: .line 349
            aload 5 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            if_acmpne 4
            aload 5 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getAliasLockCount:()I
            ifne 4
         3: .line 350
      StackMap locals: org.hibernate.LockOptions
      StackMap stack:
            aload 1 /* sql */
            areturn
         4: .line 356
      StackMap locals:
      StackMap stack:
            aload 4 /* afterLoadActions */
         5: .line 357
            new org.hibernate.loader.custom.CustomLoader$1
            dup
            aload 0 /* this */
            aload 5 /* lockOptions */
            invokespecial org.hibernate.loader.custom.CustomLoader$1.<init>:(Lorg/hibernate/loader/custom/CustomLoader;Lorg/hibernate/LockOptions;)V
         6: .line 356
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 369
            aload 2 /* parameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getLockOptions:()Lorg/hibernate/LockOptions;
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockOptions.setLockMode:(Lorg/hibernate/LockMode;)Lorg/hibernate/LockOptions;
            pop
         8: .line 371
            aload 1 /* sql */
            areturn
        end local 5 // org.hibernate.LockOptions lockOptions
        end local 4 // java.util.List afterLoadActions
        end local 3 // org.hibernate.dialect.Dialect dialect
        end local 2 // org.hibernate.engine.spi.QueryParameters parameters
        end local 1 // java.lang.String sql
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/hibernate/loader/custom/CustomLoader;
            0    9     1               sql  Ljava/lang/String;
            0    9     2        parameters  Lorg/hibernate/engine/spi/QueryParameters;
            0    9     3           dialect  Lorg/hibernate/dialect/Dialect;
            0    9     4  afterLoadActions  Ljava/util/List<Lorg/hibernate/loader/spi/AfterLoadAction;>;
            1    9     5       lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.QueryException
    Signature: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/dialect/Dialect;Ljava/util/List<Lorg/hibernate/loader/spi/AfterLoadAction;>;)Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      sql               
      parameters        
      dialect           
      afterLoadActions  

  public org.hibernate.query.spi.ScrollableResultsImplementor scroll(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.engine.spi.QueryParameters queryParameters
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 377
            aload 1 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getResultTransformer:()Lorg/hibernate/transform/ResultTransformer;
            astore 3 /* resultTransformer */
        start local 3 // org.hibernate.transform.ResultTransformer resultTransformer
         1: .line 379
            aload 3 /* resultTransformer */
            ifnonnull 3
         2: .line 380
            getstatic org.hibernate.hql.internal.HolderInstantiator.NOOP_INSTANTIATOR:Lorg/hibernate/hql/internal/HolderInstantiator;
            goto 4
         3: .line 381
      StackMap locals: org.hibernate.transform.ResultTransformer
      StackMap stack:
            new org.hibernate.hql.internal.HolderInstantiator
            dup
            aload 3 /* resultTransformer */
            aload 0 /* this */
            invokedynamic get(Lorg/hibernate/loader/custom/CustomLoader;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/hibernate/loader/custom/CustomLoader.getReturnAliasesForTransformer()[Ljava/lang/String; (7)
                  ()[Ljava/lang/String;
            invokespecial org.hibernate.hql.internal.HolderInstantiator.<init>:(Lorg/hibernate/transform/ResultTransformer;Ljava/util/function/Supplier;)V
         4: .line 379
      StackMap locals:
      StackMap stack: org.hibernate.hql.internal.HolderInstantiator
            astore 4 /* holderInstantiator */
        start local 4 // org.hibernate.hql.internal.HolderInstantiator holderInstantiator
         5: .line 383
            aload 0 /* this */
         6: .line 384
            aload 1 /* queryParameters */
         7: .line 385
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.resultTypes:[Lorg/hibernate/type/Type;
         8: .line 386
            aload 4 /* holderInstantiator */
         9: .line 387
            aload 2 /* session */
        10: .line 383
            invokevirtual org.hibernate.loader.custom.CustomLoader.scroll:(Lorg/hibernate/engine/spi/QueryParameters;[Lorg/hibernate/type/Type;Lorg/hibernate/hql/internal/HolderInstantiator;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/query/spi/ScrollableResultsImplementor;
            areturn
        end local 4 // org.hibernate.hql.internal.HolderInstantiator holderInstantiator
        end local 3 // org.hibernate.transform.ResultTransformer resultTransformer
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/hibernate/loader/custom/CustomLoader;
            0   11     1     queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   11     2             session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1   11     3   resultTransformer  Lorg/hibernate/transform/ResultTransformer;
            5   11     4  holderInstantiator  Lorg/hibernate/hql/internal/HolderInstantiator;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      queryParameters  final
      session          final

  protected java.lang.String[] getResultRowAliases();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 393
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.transformerAliases:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected org.hibernate.transform.ResultTransformer resolveResultTransformer(org.hibernate.transform.ResultTransformer);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.transform.ResultTransformer resultTransformer
         0: .line 398
            aconst_null
            aload 1 /* resultTransformer */
            invokestatic org.hibernate.hql.internal.HolderInstantiator.resolveResultTransformer:(Lorg/hibernate/transform/ResultTransformer;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
            areturn
        end local 1 // org.hibernate.transform.ResultTransformer resultTransformer
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/hibernate/loader/custom/CustomLoader;
            0    1     1  resultTransformer  Lorg/hibernate/transform/ResultTransformer;
    MethodParameters:
                   Name  Flags
      resultTransformer  

  protected boolean[] includeInResultRow();
    descriptor: ()[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 403
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.includeInResultRow:[Z
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected java.lang.Object getResultColumnOrRow(java.lang.Object[], org.hibernate.transform.ResultTransformer, java.sql.ResultSet, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Lorg/hibernate/transform/ResultTransformer;Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.lang.Object[] row
        start local 2 // org.hibernate.transform.ResultTransformer transformer
        start local 3 // java.sql.ResultSet rs
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 412
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.rowProcessor:Lorg/hibernate/loader/custom/ResultRowProcessor;
            aload 1 /* row */
            aload 3 /* rs */
            aload 2 /* transformer */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.lang.Object[] org.hibernate.transform.ResultTransformer java.sql.ResultSet org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: org.hibernate.loader.custom.ResultRowProcessor java.lang.Object[] java.sql.ResultSet
         1: iconst_0
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.lang.Object[] org.hibernate.transform.ResultTransformer java.sql.ResultSet org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: org.hibernate.loader.custom.ResultRowProcessor java.lang.Object[] java.sql.ResultSet int
         2: aload 4 /* session */
            invokevirtual org.hibernate.loader.custom.ResultRowProcessor.buildResultRow:([Ljava/lang/Object;Ljava/sql/ResultSet;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            areturn
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // java.sql.ResultSet rs
        end local 2 // org.hibernate.transform.ResultTransformer transformer
        end local 1 // java.lang.Object[] row
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/hibernate/loader/custom/CustomLoader;
            0    3     1          row  [Ljava/lang/Object;
            0    3     2  transformer  Lorg/hibernate/transform/ResultTransformer;
            0    3     3           rs  Ljava/sql/ResultSet;
            0    3     4      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws java.sql.SQLException, org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      row          
      transformer  
      rs           
      session      

  protected java.lang.Object[] getResultRow(java.lang.Object[], java.sql.ResultSet, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.lang.Object[] row
        start local 2 // java.sql.ResultSet rs
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 418
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.rowProcessor:Lorg/hibernate/loader/custom/ResultRowProcessor;
            aload 1 /* row */
            aload 2 /* rs */
            aload 3 /* session */
            invokevirtual org.hibernate.loader.custom.ResultRowProcessor.buildResultRow:([Ljava/lang/Object;Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.sql.ResultSet rs
        end local 1 // java.lang.Object[] row
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/loader/custom/CustomLoader;
            0    1     1      row  [Ljava/lang/Object;
            0    1     2       rs  Ljava/sql/ResultSet;
            0    1     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws java.sql.SQLException, org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      row      
      rs       
      session  

  protected java.util.List getResultList(java.util.List, org.hibernate.transform.ResultTransformer);
    descriptor: (Ljava/util/List;Lorg/hibernate/transform/ResultTransformer;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.util.List results
        start local 2 // org.hibernate.transform.ResultTransformer resultTransformer
         0: .line 426
            aconst_null
         1: .line 427
            aload 2 /* resultTransformer */
         2: .line 428
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getReturnAliasesForTransformer:()[Ljava/lang/String;
         3: .line 425
            invokestatic org.hibernate.hql.internal.HolderInstantiator.getHolderInstantiator:(Lorg/hibernate/transform/ResultTransformer;Lorg/hibernate/transform/ResultTransformer;[Ljava/lang/String;)Lorg/hibernate/hql/internal/HolderInstantiator;
            astore 3 /* holderInstantiator */
        start local 3 // org.hibernate.hql.internal.HolderInstantiator holderInstantiator
         4: .line 430
            aload 3 /* holderInstantiator */
            invokevirtual org.hibernate.hql.internal.HolderInstantiator.isRequired:()Z
            ifeq 13
         5: .line 431
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 11
         7: .line 432
      StackMap locals: org.hibernate.hql.internal.HolderInstantiator int
      StackMap stack:
            aload 1 /* results */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 5 /* row */
        start local 5 // java.lang.Object[] row
         8: .line 433
            aload 3 /* holderInstantiator */
            aload 5 /* row */
            invokevirtual org.hibernate.hql.internal.HolderInstantiator.instantiate:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* result */
        start local 6 // java.lang.Object result
         9: .line 434
            aload 1 /* results */
            iload 4 /* i */
            aload 6 /* result */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.Object result
        end local 5 // java.lang.Object[] row
        10: .line 431
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 1 /* results */
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 4 // int i
        12: .line 437
            aload 2 /* resultTransformer */
            aload 1 /* results */
            invokeinterface org.hibernate.transform.ResultTransformer.transformList:(Ljava/util/List;)Ljava/util/List;
            areturn
        13: .line 440
      StackMap locals:
      StackMap stack:
            aload 1 /* results */
            areturn
        end local 3 // org.hibernate.hql.internal.HolderInstantiator holderInstantiator
        end local 2 // org.hibernate.transform.ResultTransformer resultTransformer
        end local 1 // java.util.List results
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Lorg/hibernate/loader/custom/CustomLoader;
            0   14     1             results  Ljava/util/List;
            0   14     2   resultTransformer  Lorg/hibernate/transform/ResultTransformer;
            4   14     3  holderInstantiator  Lorg/hibernate/hql/internal/HolderInstantiator;
            6   12     4                   i  I
            8   10     5                 row  [Ljava/lang/Object;
            9   10     6              result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.QueryException
    MethodParameters:
                   Name  Flags
      results            
      resultTransformer  

  private java.lang.String[] getReturnAliasesForTransformer();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 445
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.transformerAliases:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected org.hibernate.loader.EntityAliases[] getEntityAliases();
    descriptor: ()[Lorg/hibernate/loader/EntityAliases;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 450
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.entityAliases:[Lorg/hibernate/loader/EntityAliases;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected org.hibernate.loader.CollectionAliases[] getCollectionAliases();
    descriptor: ()[Lorg/hibernate/loader/CollectionAliases;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.custom.CustomLoader this
         0: .line 455
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.collectionAliases:[Lorg/hibernate/loader/CollectionAliases;
            areturn
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/custom/CustomLoader;

  protected int bindParameterValues(java.sql.PreparedStatement, org.hibernate.engine.spi.QueryParameters, int, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.sql.PreparedStatement statement
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        start local 3 // int startIndex
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 464
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getOptionalId:()Ljava/io/Serializable;
            astore 5 /* optionalId */
        start local 5 // java.io.Serializable optionalId
         1: .line 465
            aload 5 /* optionalId */
            ifnull 8
         2: .line 466
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.paramValueBinders:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.param.ParameterBinder
            aload 1 /* statement */
            aload 2 /* queryParameters */
            aload 4 /* session */
            iload 3 /* startIndex */
            invokeinterface org.hibernate.param.ParameterBinder.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;I)I
            pop
         3: .line 467
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
         4: .line 468
            aload 2 /* queryParameters */
            invokevirtual org.hibernate.engine.spi.QueryParameters.getOptionalEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
         5: .line 469
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
         6: .line 470
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
         7: .line 467
            ireturn
         8: .line 473
      StackMap locals: java.io.Serializable
      StackMap stack:
            iconst_0
            istore 6 /* span */
        start local 6 // int span
         9: .line 474
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.paramValueBinders:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 17
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.sql.PreparedStatement org.hibernate.engine.spi.QueryParameters int org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable int top java.util.Iterator
      StackMap stack:
        10: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.param.ParameterBinder
            astore 7 /* paramValueBinder */
        start local 7 // org.hibernate.param.ParameterBinder paramValueBinder
        11: .line 475
            iload 6 /* span */
            aload 7 /* paramValueBinder */
        12: .line 476
            aload 1 /* statement */
        13: .line 477
            aload 2 /* queryParameters */
        14: .line 478
            aload 4 /* session */
        15: .line 479
            iload 3 /* startIndex */
            iload 6 /* span */
            iadd
        16: .line 475
            invokeinterface org.hibernate.param.ParameterBinder.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;I)I
            iadd
            istore 6 /* span */
        end local 7 // org.hibernate.param.ParameterBinder paramValueBinder
        17: .line 474
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        18: .line 482
            iload 6 /* span */
            ireturn
        end local 6 // int span
        end local 5 // java.io.Serializable optionalId
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // int startIndex
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // java.sql.PreparedStatement statement
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lorg/hibernate/loader/custom/CustomLoader;
            0   19     1         statement  Ljava/sql/PreparedStatement;
            0   19     2   queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            0   19     3        startIndex  I
            0   19     4           session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1   19     5        optionalId  Ljava/io/Serializable;
            9   19     6              span  I
           11   17     7  paramValueBinder  Lorg/hibernate/param/ParameterBinder;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                 Name  Flags
      statement        
      queryParameters  
      startIndex       
      session          

  protected void autoDiscoverTypes(java.sql.ResultSet);
    descriptor: (Ljava/sql/ResultSet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.sql.ResultSet rs
         0: .line 488
            new org.hibernate.loader.custom.JdbcResultMetadata
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.loader.custom.CustomLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* rs */
            invokespecial org.hibernate.loader.custom.JdbcResultMetadata.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/sql/ResultSet;)V
            astore 2 /* metadata */
        start local 2 // org.hibernate.loader.custom.JdbcResultMetadata metadata
         1: .line 489
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.rowProcessor:Lorg/hibernate/loader/custom/ResultRowProcessor;
            aload 2 /* metadata */
            invokevirtual org.hibernate.loader.custom.ResultRowProcessor.prepareForAutoDiscovery:(Lorg/hibernate/loader/custom/JdbcResultMetadata;)V
         2: .line 491
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* aliases */
        start local 3 // java.util.List aliases
         3: .line 492
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* types */
        start local 4 // java.util.List types
         4: .line 493
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.rowProcessor:Lorg/hibernate/loader/custom/ResultRowProcessor;
            invokevirtual org.hibernate.loader.custom.ResultRowProcessor.getColumnProcessors:()[Lorg/hibernate/loader/custom/ResultColumnProcessor;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.sql.ResultSet org.hibernate.loader.custom.JdbcResultMetadata java.util.List java.util.List top int int org.hibernate.loader.custom.ResultColumnProcessor[]
      StackMap stack:
         5: aload 8
            iload 6
            aaload
            astore 5 /* resultProcessor */
        start local 5 // org.hibernate.loader.custom.ResultColumnProcessor resultProcessor
         6: .line 494
            aload 5 /* resultProcessor */
            aload 2 /* metadata */
            aload 4 /* types */
            aload 3 /* aliases */
            invokeinterface org.hibernate.loader.custom.ResultColumnProcessor.performDiscovery:(Lorg/hibernate/loader/custom/JdbcResultMetadata;Ljava/util/List;Ljava/util/List;)V
        end local 5 // org.hibernate.loader.custom.ResultColumnProcessor resultProcessor
         7: .line 493
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 5
         9: .line 497
            aload 0 /* this */
            aload 3 /* aliases */
            invokevirtual org.hibernate.loader.custom.CustomLoader.validateAliases:(Ljava/util/List;)V
        10: .line 499
            aload 0 /* this */
            aload 4 /* types */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.loader.custom.CustomLoader.resultTypes:[Lorg/hibernate/type/Type;
        11: .line 500
            aload 0 /* this */
            aload 3 /* aliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.loader.custom.CustomLoader.transformerAliases:[Ljava/lang/String;
        end local 4 // java.util.List types
        end local 3 // java.util.List aliases
        end local 2 // org.hibernate.loader.custom.JdbcResultMetadata metadata
        12: .line 501
            goto 15
        13: .line 502
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.sql.ResultSet
      StackMap stack: java.sql.SQLException
            astore 2 /* e */
        start local 2 // java.sql.SQLException e
        14: .line 503
            new org.hibernate.HibernateException
            dup
            ldc "Exception while trying to autodiscover types."
            aload 2 /* e */
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.sql.SQLException e
        15: .line 505
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.ResultSet rs
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lorg/hibernate/loader/custom/CustomLoader;
            0   16     1               rs  Ljava/sql/ResultSet;
            1   12     2         metadata  Lorg/hibernate/loader/custom/JdbcResultMetadata;
            3   12     3          aliases  Ljava/util/List<Ljava/lang/String;>;
            4   12     4            types  Ljava/util/List<Lorg/hibernate/type/Type;>;
            6    7     5  resultProcessor  Lorg/hibernate/loader/custom/ResultColumnProcessor;
           14   15     2                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0    12      13  Class java.sql.SQLException
    MethodParameters:
      Name  Flags
      rs    

  private void validateAliases(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.util.List aliases
         0: .line 515
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* aliasesSet */
        start local 2 // java.util.HashSet aliasesSet
         1: .line 516
            aload 1 /* aliases */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.util.List java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         3: .line 517
            aload 0 /* this */
            aload 3 /* alias */
            invokevirtual org.hibernate.loader.custom.CustomLoader.validateAlias:(Ljava/lang/String;)V
         4: .line 518
            aload 2 /* aliasesSet */
            aload 3 /* alias */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.util.List java.util.HashSet java.lang.String java.util.Iterator
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* alreadyExisted */
        start local 5 // boolean alreadyExisted
         7: .line 519
            iload 5 /* alreadyExisted */
            ifeq 11
         8: .line 520
            new org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException
            dup
         9: .line 521
            new java.lang.StringBuilder
            dup
            ldc "Encountered a duplicated sql alias ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] during auto-discovery of a native-sql query"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 520
            invokespecial org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // boolean alreadyExisted
        end local 3 // java.lang.String alias
        11: .line 516
      StackMap locals: org.hibernate.loader.custom.CustomLoader java.util.List java.util.HashSet top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 525
            return
        end local 2 // java.util.HashSet aliasesSet
        end local 1 // java.util.List aliases
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/hibernate/loader/custom/CustomLoader;
            0   13     1         aliases  Ljava/util/List<Ljava/lang/String;>;
            1   13     2      aliasesSet  Ljava/util/HashSet<Ljava/lang/String;>;
            3   11     3           alias  Ljava/lang/String;
            7   11     5  alreadyExisted  Z
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      aliases  

  protected void validateAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // java.lang.String alias
         0: .line 529
            return
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/hibernate/loader/custom/CustomLoader;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  protected void putResultInQueryCache(org.hibernate.engine.spi.SharedSessionContractImplementor, org.hibernate.engine.spi.QueryParameters, org.hibernate.type.Type[], org.hibernate.cache.spi.QueryResultsCache, org.hibernate.cache.spi.QueryKey, java.util.List);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;[Lorg/hibernate/type/Type;Lorg/hibernate/cache/spi/QueryResultsCache;Lorg/hibernate/cache/spi/QueryKey;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.hibernate.loader.custom.CustomLoader this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        start local 3 // org.hibernate.type.Type[] resultTypes
        start local 4 // org.hibernate.cache.spi.QueryResultsCache queryCache
        start local 5 // org.hibernate.cache.spi.QueryKey key
        start local 6 // java.util.List result
         0: .line 548
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* queryParameters */
            aload 0 /* this */
            getfield org.hibernate.loader.custom.CustomLoader.resultTypes:[Lorg/hibernate/type/Type;
            aload 4 /* queryCache */
            aload 5 /* key */
            aload 6 /* result */
            invokespecial org.hibernate.loader.Loader.putResultInQueryCache:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;[Lorg/hibernate/type/Type;Lorg/hibernate/cache/spi/QueryResultsCache;Lorg/hibernate/cache/spi/QueryKey;Ljava/util/List;)V
         1: .line 549
            return
        end local 6 // java.util.List result
        end local 5 // org.hibernate.cache.spi.QueryKey key
        end local 4 // org.hibernate.cache.spi.QueryResultsCache queryCache
        end local 3 // org.hibernate.type.Type[] resultTypes
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 0 // org.hibernate.loader.custom.CustomLoader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/loader/custom/CustomLoader;
            0    2     1          session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    2     2  queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            0    2     3      resultTypes  [Lorg/hibernate/type/Type;
            0    2     4       queryCache  Lorg/hibernate/cache/spi/QueryResultsCache;
            0    2     5              key  Lorg/hibernate/cache/spi/QueryKey;
            0    2     6           result  Ljava/util/List;
    MethodParameters:
                 Name  Flags
      session          final
      queryParameters  final
      resultTypes      final
      queryCache       final
      key              final
      result           final
}
SourceFile: "CustomLoader.java"
NestMembers:
  org.hibernate.loader.custom.CustomLoader$1
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.hibernate.loader.custom.CustomLoader$1