public final class com.mchange.v2.c3p0.DataSources
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mchange.v2.c3p0.DataSources
  super_class: java.lang.Object
{
  static final com.mchange.v2.log.MLogger logger;
    descriptor: Lcom/mchange/v2/log/MLogger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.Set WRAPPER_CXN_POOL_DATA_SOURCE_OVERWRITE_PROPS;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.Set POOL_BACKED_DATA_SOURCE_OVERWRITE_PROPS;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 72
            ldc Lcom/mchange/v2/c3p0/DataSources;
            invokestatic com.mchange.v2.log.MLog.getLogger:(Ljava/lang/Class;)Lcom/mchange/v2/log/MLogger;
            putstatic com.mchange.v2.c3p0.DataSources.logger:Lcom/mchange/v2/log/MLogger;
         1: .line 85
            bipush 22
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 86
            ldc "checkoutTimeout"
            aastore
            dup
            iconst_1
         3: .line 87
            ldc "acquireIncrement"
            aastore
            dup
            iconst_2
         4: .line 88
            ldc "acquireRetryAttempts"
            aastore
            dup
            iconst_3
         5: .line 89
            ldc "acquireRetryDelay"
            aastore
            dup
            iconst_4
         6: .line 90
            ldc "autoCommitOnClose"
            aastore
            dup
            iconst_5
         7: .line 91
            ldc "connectionTesterClassName"
            aastore
            dup
            bipush 6
         8: .line 92
            ldc "forceIgnoreUnresolvedTransactions"
            aastore
            dup
            bipush 7
         9: .line 93
            ldc "idleConnectionTestPeriod"
            aastore
            dup
            bipush 8
        10: .line 94
            ldc "initialPoolSize"
            aastore
            dup
            bipush 9
        11: .line 95
            ldc "maxIdleTime"
            aastore
            dup
            bipush 10
        12: .line 96
            ldc "maxPoolSize"
            aastore
            dup
            bipush 11
        13: .line 97
            ldc "maxStatements"
            aastore
            dup
            bipush 12
        14: .line 98
            ldc "maxStatementsPerConnection"
            aastore
            dup
            bipush 13
        15: .line 99
            ldc "minPoolSize"
            aastore
            dup
            bipush 14
        16: .line 100
            ldc "propertyCycle"
            aastore
            dup
            bipush 15
        17: .line 101
            ldc "breakAfterAcquireFailure"
            aastore
            dup
            bipush 16
        18: .line 102
            ldc "testConnectionOnCheckout"
            aastore
            dup
            bipush 17
        19: .line 103
            ldc "testConnectionOnCheckin"
            aastore
            dup
            bipush 18
        20: .line 104
            ldc "usesTraditionalReflectiveProxies"
            aastore
            dup
            bipush 19
        21: .line 105
            ldc "preferredTestQuery"
            aastore
            dup
            bipush 20
        22: .line 106
            ldc "automaticTestTable"
            aastore
            dup
            bipush 21
        23: .line 107
            ldc "factoryClassLocation"
            aastore
        24: .line 84
            astore 0 /* props */
        start local 0 // java.lang.String[] props
        25: .line 110
            new java.util.HashSet
            dup
            aload 0 /* props */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic com.mchange.v2.c3p0.DataSources.WRAPPER_CXN_POOL_DATA_SOURCE_OVERWRITE_PROPS:Ljava/util/Set;
        26: .line 118
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        27: .line 119
            ldc "numHelperThreads"
            aastore
            dup
            iconst_1
        28: .line 120
            ldc "factoryClassLocation"
            aastore
        29: .line 117
            astore 0 /* props */
        30: .line 123
            new java.util.HashSet
            dup
            aload 0 /* props */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic com.mchange.v2.c3p0.DataSources.POOL_BACKED_DATA_SOURCE_OVERWRITE_PROPS:Ljava/util/Set;
        end local 0 // java.lang.String[] props
        31: .line 124
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
           25   31     0  props  [Ljava/lang/String;

  public static javax.sql.DataSource unpooledDataSource();
    descriptor: ()Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 132
            new com.mchange.v2.c3p0.DriverManagerDataSource
            dup
            invokespecial com.mchange.v2.c3p0.DriverManagerDataSource.<init>:()V
            astore 0 /* out */
        start local 0 // com.mchange.v2.c3p0.DriverManagerDataSource out
         1: .line 133
            aload 0 /* out */
            areturn
        end local 0 // com.mchange.v2.c3p0.DriverManagerDataSource out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0   out  Lcom/mchange/v2/c3p0/DriverManagerDataSource;
    Exceptions:
      throws java.sql.SQLException

  public static javax.sql.DataSource unpooledDataSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String jdbcUrl
         0: .line 138
            new com.mchange.v2.c3p0.DriverManagerDataSource
            dup
            invokespecial com.mchange.v2.c3p0.DriverManagerDataSource.<init>:()V
            astore 1 /* out */
        start local 1 // com.mchange.v2.c3p0.DriverManagerDataSource out
         1: .line 139
            aload 1 /* out */
            aload 0 /* jdbcUrl */
            invokevirtual com.mchange.v2.c3p0.DriverManagerDataSource.setJdbcUrl:(Ljava/lang/String;)V
         2: .line 140
            aload 1 /* out */
            areturn
        end local 1 // com.mchange.v2.c3p0.DriverManagerDataSource out
        end local 0 // java.lang.String jdbcUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  jdbcUrl  Ljava/lang/String;
            1    3     1      out  Lcom/mchange/v2/c3p0/DriverManagerDataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      jdbcUrl  

  public static javax.sql.DataSource unpooledDataSource(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.String jdbcUrl
        start local 1 // java.lang.String user
        start local 2 // java.lang.String password
         0: .line 148
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 3 /* props */
        start local 3 // java.util.Properties props
         1: .line 149
            aload 3 /* props */
            ldc "user"
            aload 1 /* user */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 150
            aload 3 /* props */
            ldc "password"
            aload 2 /* password */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 151
            aload 0 /* jdbcUrl */
            aload 3 /* props */
            invokestatic com.mchange.v2.c3p0.DataSources.unpooledDataSource:(Ljava/lang/String;Ljava/util/Properties;)Ljavax/sql/DataSource;
            areturn
        end local 3 // java.util.Properties props
        end local 2 // java.lang.String password
        end local 1 // java.lang.String user
        end local 0 // java.lang.String jdbcUrl
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   jdbcUrl  Ljava/lang/String;
            0    4     1      user  Ljava/lang/String;
            0    4     2  password  Ljava/lang/String;
            1    4     3     props  Ljava/util/Properties;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      jdbcUrl   
      user      
      password  

  public static javax.sql.DataSource unpooledDataSource(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String jdbcUrl
        start local 1 // java.util.Properties driverProps
         0: .line 165
            new com.mchange.v2.c3p0.DriverManagerDataSource
            dup
            invokespecial com.mchange.v2.c3p0.DriverManagerDataSource.<init>:()V
            astore 2 /* out */
        start local 2 // com.mchange.v2.c3p0.DriverManagerDataSource out
         1: .line 166
            aload 2 /* out */
            aload 0 /* jdbcUrl */
            invokevirtual com.mchange.v2.c3p0.DriverManagerDataSource.setJdbcUrl:(Ljava/lang/String;)V
         2: .line 167
            aload 2 /* out */
            aload 1 /* driverProps */
            invokevirtual com.mchange.v2.c3p0.DriverManagerDataSource.setProperties:(Ljava/util/Properties;)V
         3: .line 168
            aload 2 /* out */
            areturn
        end local 2 // com.mchange.v2.c3p0.DriverManagerDataSource out
        end local 1 // java.util.Properties driverProps
        end local 0 // java.lang.String jdbcUrl
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0      jdbcUrl  Ljava/lang/String;
            0    4     1  driverProps  Ljava/util/Properties;
            1    4     2          out  Lcom/mchange/v2/c3p0/DriverManagerDataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
             Name  Flags
      jdbcUrl      
      driverProps  

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.sql.DataSource unpooledDataSource
         0: .line 180
            aload 0 /* unpooledDataSource */
            aconst_null
            aconst_null
            invokestatic com.mchange.v2.c3p0.DataSources.pooledDataSource:(Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
            areturn
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0  unpooledDataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, int);
    descriptor: (Ljavax/sql/DataSource;I)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // int statement_cache_size
         0: .line 194
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* overrideProps */
        start local 2 // java.util.Map overrideProps
         1: .line 195
            aload 2 /* overrideProps */
            ldc "maxStatements"
            new java.lang.Integer
            dup
            iload 1 /* statement_cache_size */
            invokespecial java.lang.Integer.<init>:(I)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 196
            aload 0 /* unpooledDataSource */
            aconst_null
            aload 2 /* overrideProps */
            invokestatic com.mchange.v2.c3p0.DataSources.pooledDataSource:(Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
            areturn
        end local 2 // java.util.Map overrideProps
        end local 1 // int statement_cache_size
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0    unpooledDataSource  Ljavax/sql/DataSource;
            0    3     1  statement_cache_size  I
            1    3     2         overrideProps  Ljava/util/Map;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                      Name  Flags
      unpooledDataSource    
      statement_cache_size  

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, com.mchange.v2.c3p0.PoolConfig);
    descriptor: (Ljavax/sql/DataSource;Lcom/mchange/v2/c3p0/PoolConfig;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // com.mchange.v2.c3p0.PoolConfig pcfg
         0: .line 212
            new com.mchange.v2.c3p0.WrapperConnectionPoolDataSource
            dup
            invokespecial com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.<init>:()V
            astore 2 /* wcpds */
        start local 2 // com.mchange.v2.c3p0.WrapperConnectionPoolDataSource wcpds
         1: .line 213
            aload 2 /* wcpds */
            aload 0 /* unpooledDataSource */
            invokevirtual com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.setNestedDataSource:(Ljavax/sql/DataSource;)V
         2: .line 216
            aload 1 /* pcfg */
            aload 2 /* wcpds */
            getstatic com.mchange.v2.c3p0.DataSources.WRAPPER_CXN_POOL_DATA_SOURCE_OVERWRITE_PROPS:Ljava/util/Set;
            invokestatic com.mchange.v2.beans.BeansUtils.overwriteSpecificAccessibleProperties:(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Collection;)V
         3: .line 218
            new com.mchange.v2.c3p0.PoolBackedDataSource
            dup
            invokespecial com.mchange.v2.c3p0.PoolBackedDataSource.<init>:()V
            astore 3 /* nascent_pbds */
        start local 3 // com.mchange.v2.c3p0.PoolBackedDataSource nascent_pbds
         4: .line 219
            aload 3 /* nascent_pbds */
            aload 2 /* wcpds */
            invokevirtual com.mchange.v2.c3p0.PoolBackedDataSource.setConnectionPoolDataSource:(Ljavax/sql/ConnectionPoolDataSource;)V
         5: .line 220
            aload 1 /* pcfg */
            aload 3 /* nascent_pbds */
            getstatic com.mchange.v2.c3p0.DataSources.POOL_BACKED_DATA_SOURCE_OVERWRITE_PROPS:Ljava/util/Set;
            invokestatic com.mchange.v2.beans.BeansUtils.overwriteSpecificAccessibleProperties:(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Collection;)V
         6: .line 222
            aload 3 /* nascent_pbds */
         7: areturn
        end local 3 // com.mchange.v2.c3p0.PoolBackedDataSource nascent_pbds
        end local 2 // com.mchange.v2.c3p0.WrapperConnectionPoolDataSource wcpds
         8: .line 230
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         9: .line 233
            new java.lang.StringBuilder
            dup
            ldc "Exception configuring pool-backed DataSource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokestatic com.mchange.v2.sql.SqlUtils.toSQLException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
            astore 3 /* sqle */
        start local 3 // java.sql.SQLException sqle
        10: .line 234
            getstatic com.mchange.v2.c3p0.DataSources.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.FINE:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 12
            aload 2 /* e */
            aload 3 /* sqle */
            if_acmpeq 12
        11: .line 235
            getstatic com.mchange.v2.c3p0.DataSources.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.FINE:Lcom/mchange/v2/log/MLevel;
            ldc "Converted exception to throwable SQLException"
            aload 2 /* e */
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        12: .line 236
      StackMap locals: java.lang.Exception java.sql.SQLException
      StackMap stack:
            aload 3 /* sqle */
            athrow
        end local 3 // java.sql.SQLException sqle
        end local 2 // java.lang.Exception e
        end local 1 // com.mchange.v2.c3p0.PoolConfig pcfg
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0  unpooledDataSource  Ljavax/sql/DataSource;
            0   13     1                pcfg  Lcom/mchange/v2/c3p0/PoolConfig;
            1    8     2               wcpds  Lcom/mchange/v2/c3p0/WrapperConnectionPoolDataSource;
            4    8     3        nascent_pbds  Lcom/mchange/v2/c3p0/PoolBackedDataSource;
            9   13     2                   e  Ljava/lang/Exception;
           10   13     3                sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  
      pcfg                

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, java.lang.String);
    descriptor: (Ljavax/sql/DataSource;Ljava/lang/String;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // java.lang.String configName
         0: .line 259
            aload 0 /* unpooledDataSource */
            aload 1 /* configName */
            aconst_null
            invokestatic com.mchange.v2.c3p0.DataSources.pooledDataSource:(Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
            areturn
        end local 1 // java.lang.String configName
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0  unpooledDataSource  Ljavax/sql/DataSource;
            0    1     1          configName  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  
      configName          

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, java.util.Map);
    descriptor: (Ljavax/sql/DataSource;Ljava/util/Map;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // java.util.Map overrideProps
         0: .line 262
            aload 0 /* unpooledDataSource */
            aconst_null
            aload 1 /* overrideProps */
            invokestatic com.mchange.v2.c3p0.DataSources.pooledDataSource:(Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
            areturn
        end local 1 // java.util.Map overrideProps
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0  unpooledDataSource  Ljavax/sql/DataSource;
            0    1     1       overrideProps  Ljava/util/Map;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  
      overrideProps       

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, java.lang.String, java.util.Map);
    descriptor: (Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // java.lang.String configName
        start local 2 // java.util.Map overrideProps
         0: .line 268
            new com.mchange.v2.c3p0.WrapperConnectionPoolDataSource
            dup
            aload 1 /* configName */
            invokespecial com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.<init>:(Ljava/lang/String;)V
            astore 3 /* wcpds */
        start local 3 // com.mchange.v2.c3p0.WrapperConnectionPoolDataSource wcpds
         1: .line 269
            aload 3 /* wcpds */
            aload 0 /* unpooledDataSource */
            invokevirtual com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.setNestedDataSource:(Ljavax/sql/DataSource;)V
         2: .line 270
            aload 2 /* overrideProps */
            ifnull 12
         3: .line 271
            aload 2 /* overrideProps */
         4: .line 272
            aload 3 /* wcpds */
         5: .line 273
            iconst_0
         6: .line 274
            aconst_null
         7: .line 275
            iconst_1
         8: .line 276
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
         9: .line 277
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        10: .line 278
            iconst_0
        11: .line 271
            invokestatic com.mchange.v2.beans.BeansUtils.overwriteAccessiblePropertiesFromMap:(Ljava/util/Map;Ljava/lang/Object;ZLjava/util/Collection;ZLcom/mchange/v2/log/MLevel;Lcom/mchange/v2/log/MLevel;Z)V
        12: .line 280
      StackMap locals: com.mchange.v2.c3p0.WrapperConnectionPoolDataSource
      StackMap stack:
            new com.mchange.v2.c3p0.PoolBackedDataSource
            dup
            aload 1 /* configName */
            invokespecial com.mchange.v2.c3p0.PoolBackedDataSource.<init>:(Ljava/lang/String;)V
            astore 4 /* nascent_pbds */
        start local 4 // com.mchange.v2.c3p0.PoolBackedDataSource nascent_pbds
        13: .line 281
            aload 4 /* nascent_pbds */
            aload 3 /* wcpds */
            invokevirtual com.mchange.v2.c3p0.PoolBackedDataSource.setConnectionPoolDataSource:(Ljavax/sql/ConnectionPoolDataSource;)V
        14: .line 282
            aload 2 /* overrideProps */
            ifnull 24
        15: .line 283
            aload 2 /* overrideProps */
        16: .line 284
            aload 4 /* nascent_pbds */
        17: .line 285
            iconst_0
        18: .line 286
            aconst_null
        19: .line 287
            iconst_1
        20: .line 288
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        21: .line 289
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        22: .line 290
            iconst_0
        23: .line 283
            invokestatic com.mchange.v2.beans.BeansUtils.overwriteAccessiblePropertiesFromMap:(Ljava/util/Map;Ljava/lang/Object;ZLjava/util/Collection;ZLcom/mchange/v2/log/MLevel;Lcom/mchange/v2/log/MLevel;Z)V
        24: .line 292
      StackMap locals: com.mchange.v2.c3p0.PoolBackedDataSource
      StackMap stack:
            aload 4 /* nascent_pbds */
        25: areturn
        end local 4 // com.mchange.v2.c3p0.PoolBackedDataSource nascent_pbds
        end local 3 // com.mchange.v2.c3p0.WrapperConnectionPoolDataSource wcpds
        26: .line 300
      StackMap locals: javax.sql.DataSource java.lang.String java.util.Map
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        27: .line 303
            new java.lang.StringBuilder
            dup
            ldc "Exception configuring pool-backed DataSource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokestatic com.mchange.v2.sql.SqlUtils.toSQLException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
            astore 4 /* sqle */
        start local 4 // java.sql.SQLException sqle
        28: .line 304
            getstatic com.mchange.v2.c3p0.DataSources.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.FINE:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 30
            aload 3 /* e */
            aload 4 /* sqle */
            if_acmpeq 30
        29: .line 305
            getstatic com.mchange.v2.c3p0.DataSources.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.FINE:Lcom/mchange/v2/log/MLevel;
            ldc "Converted exception to throwable SQLException"
            aload 3 /* e */
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        30: .line 306
      StackMap locals: java.lang.Exception java.sql.SQLException
      StackMap stack:
            aload 4 /* sqle */
            athrow
        end local 4 // java.sql.SQLException sqle
        end local 3 // java.lang.Exception e
        end local 2 // java.util.Map overrideProps
        end local 1 // java.lang.String configName
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   31     0  unpooledDataSource  Ljavax/sql/DataSource;
            0   31     1          configName  Ljava/lang/String;
            0   31     2       overrideProps  Ljava/util/Map;
            1   26     3               wcpds  Lcom/mchange/v2/c3p0/WrapperConnectionPoolDataSource;
           13   26     4        nascent_pbds  Lcom/mchange/v2/c3p0/PoolBackedDataSource;
           27   31     3                   e  Ljava/lang/Exception;
           28   31     4                sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0    25      26  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  
      configName          
      overrideProps       

  public static javax.sql.DataSource pooledDataSource(javax.sql.DataSource, java.util.Properties);
    descriptor: (Ljavax/sql/DataSource;Ljava/util/Properties;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // javax.sql.DataSource unpooledDataSource
        start local 1 // java.util.Properties props
         0: .line 321
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 2 /* peeledProps */
        start local 2 // java.util.Properties peeledProps
         1: .line 322
            aload 1 /* props */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         2: goto 9
         3: .line 324
      StackMap locals: java.util.Properties java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* propKey */
        start local 4 // java.lang.String propKey
         4: .line 325
            aload 1 /* props */
            aload 4 /* propKey */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* propVal */
        start local 5 // java.lang.String propVal
         5: .line 326
            aload 4 /* propKey */
            ldc "c3p0."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
            aload 4 /* propKey */
            iconst_5
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 7
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         6: aload 4 /* propKey */
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 6 /* peeledKey */
        start local 6 // java.lang.String peeledKey
         8: .line 327
            aload 2 /* peeledProps */
            aload 6 /* peeledKey */
            aload 5 /* propVal */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String peeledKey
        end local 5 // java.lang.String propVal
        end local 4 // java.lang.String propKey
         9: .line 322
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 3 // java.util.Enumeration e
        10: .line 329
            aload 0 /* unpooledDataSource */
            aconst_null
            aload 2 /* peeledProps */
            invokestatic com.mchange.v2.c3p0.DataSources.pooledDataSource:(Ljavax/sql/DataSource;Ljava/lang/String;Ljava/util/Map;)Ljavax/sql/DataSource;
            areturn
        end local 2 // java.util.Properties peeledProps
        end local 1 // java.util.Properties props
        end local 0 // javax.sql.DataSource unpooledDataSource
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0  unpooledDataSource  Ljavax/sql/DataSource;
            0   11     1               props  Ljava/util/Properties;
            1   11     2         peeledProps  Ljava/util/Properties;
            2   10     3                   e  Ljava/util/Enumeration;
            4    9     4             propKey  Ljava/lang/String;
            5    9     5             propVal  Ljava/lang/String;
            8    9     6           peeledKey  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                    Name  Flags
      unpooledDataSource  
      props               

  public static void destroy(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.sql.DataSource pooledDataSource
         0: .line 348
            aload 0 /* pooledDataSource */
            iconst_0
            invokestatic com.mchange.v2.c3p0.DataSources.destroy:(Ljavax/sql/DataSource;Z)V
            return
        end local 0 // javax.sql.DataSource pooledDataSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  pooledDataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                  Name  Flags
      pooledDataSource  

  public static void forceDestroy(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.sql.DataSource pooledDataSource
         0: .line 361
            aload 0 /* pooledDataSource */
            iconst_1
            invokestatic com.mchange.v2.c3p0.DataSources.destroy:(Ljavax/sql/DataSource;Z)V
            return
        end local 0 // javax.sql.DataSource pooledDataSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  pooledDataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                  Name  Flags
      pooledDataSource  

  private static void destroy(javax.sql.DataSource, boolean);
    descriptor: (Ljavax/sql/DataSource;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.sql.DataSource pooledDataSource
        start local 1 // boolean force
         0: .line 365
            aload 0 /* pooledDataSource */
            instanceof com.mchange.v2.c3p0.PoolBackedDataSource
            ifeq 4
         1: .line 367
            aload 0 /* pooledDataSource */
            checkcast com.mchange.v2.c3p0.PoolBackedDataSource
            invokevirtual com.mchange.v2.c3p0.PoolBackedDataSource.getConnectionPoolDataSource:()Ljavax/sql/ConnectionPoolDataSource;
            astore 2 /* cpds */
        start local 2 // javax.sql.ConnectionPoolDataSource cpds
         2: .line 368
            aload 2 /* cpds */
            instanceof com.mchange.v2.c3p0.WrapperConnectionPoolDataSource
            ifeq 4
         3: .line 369
            aload 2 /* cpds */
            checkcast com.mchange.v2.c3p0.WrapperConnectionPoolDataSource
            invokevirtual com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getNestedDataSource:()Ljavax/sql/DataSource;
            iload 1 /* force */
            invokestatic com.mchange.v2.c3p0.DataSources.destroy:(Ljavax/sql/DataSource;Z)V
        end local 2 // javax.sql.ConnectionPoolDataSource cpds
         4: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* pooledDataSource */
            instanceof com.mchange.v2.c3p0.PooledDataSource
            ifeq 6
         5: .line 372
            aload 0 /* pooledDataSource */
            checkcast com.mchange.v2.c3p0.PooledDataSource
            iload 1 /* force */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.close:(Z)V
         6: .line 373
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean force
        end local 0 // javax.sql.DataSource pooledDataSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0  pooledDataSource  Ljavax/sql/DataSource;
            0    7     1             force  Z
            2    4     2              cpds  Ljavax/sql/ConnectionPoolDataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                  Name  Flags
      pooledDataSource  
      force             

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mchange.v2.c3p0.DataSources this
         0: .line 375
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 376
            return
        end local 0 // com.mchange.v2.c3p0.DataSources this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mchange/v2/c3p0/DataSources;
}
SourceFile: "DataSources.java"