class com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential implements com.azure.core.credential.TokenCredential
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential
  super_class: java.lang.Object
{
  private static final java.lang.String NULL_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "R_NullValue"

  private final java.lang.String clientId;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String clientSecret;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback authenticationCallback;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private com.microsoft.aad.msal4j.ConfidentialClientApplication confidentialClientApplication;
    descriptor: Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
    flags: (0x0002) ACC_PRIVATE

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

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

  void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // java.lang.String clientId
        start local 2 // java.lang.String clientSecret
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 1 /* clientId */
            ifnull 2
            aload 1 /* clientId */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         2: .line 53
      StackMap locals: com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential java.lang.String java.lang.String
      StackMap stack:
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 3 /* form */
        start local 3 // java.text.MessageFormat form
         3: .line 54
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Client ID"
            aastore
            astore 4 /* msgArgs1 */
        start local 4 // java.lang.Object[] msgArgs1
         4: .line 55
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 3 /* form */
            aload 4 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Object[] msgArgs1
        end local 3 // java.text.MessageFormat form
         5: .line 58
      StackMap locals:
      StackMap stack:
            aload 2 /* clientSecret */
            ifnull 6
            aload 2 /* clientSecret */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         6: .line 59
      StackMap locals:
      StackMap stack:
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 3 /* form */
        start local 3 // java.text.MessageFormat form
         7: .line 60
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Client Secret"
            aastore
            astore 4 /* msgArgs1 */
        start local 4 // java.lang.Object[] msgArgs1
         8: .line 61
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 3 /* form */
            aload 4 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Object[] msgArgs1
        end local 3 // java.text.MessageFormat form
         9: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* clientId */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientId:Ljava/lang/String;
        10: .line 65
            aload 0 /* this */
            aload 2 /* clientSecret */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientSecret:Ljava/lang/String;
        11: .line 66
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticationCallback:Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
        12: .line 67
            return
        end local 2 // java.lang.String clientSecret
        end local 1 // java.lang.String clientId
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0   13     1      clientId  Ljava/lang/String;
            0   13     2  clientSecret  Ljava/lang/String;
            3    5     3          form  Ljava/text/MessageFormat;
            4    5     4      msgArgs1  [Ljava/lang/Object;
            7    9     3          form  Ljava/text/MessageFormat;
            8    9     4      msgArgs1  [Ljava/lang/Object;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
              Name  Flags
      clientId      
      clientSecret  

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback authenticationCallback
         0: .line 75
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 76
            aload 0 /* this */
            aload 1 /* authenticationCallback */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticationCallback:Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
         2: .line 77
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientId:Ljava/lang/String;
         3: .line 78
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientSecret:Ljava/lang/String;
         4: .line 79
            return
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback authenticationCallback
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    5     1  authenticationCallback  Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
    MethodParameters:
                        Name  Flags
      authenticationCallback  

  public reactor.core.publisher.Mono<com.azure.core.credential.AccessToken> getToken(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // com.azure.core.credential.TokenRequestContext request
         0: .line 83
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticationCallback:Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
            ifnull 3
         1: .line 89
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticationCallback:Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.resource:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.scope:Ljava/lang/String;
            invokeinterface com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback.getAccessToken:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* accessToken */
        start local 2 // java.lang.String accessToken
         2: .line 90
            new com.azure.core.credential.AccessToken
            dup
            aload 2 /* accessToken */
            getstatic java.time.OffsetDateTime.MIN:Ljava/time/OffsetDateTime;
            invokespecial com.azure.core.credential.AccessToken.<init>:(Ljava/lang/String;Ljava/time/OffsetDateTime;)V
            invokestatic reactor.core.publisher.Mono.just:(Ljava/lang/Object;)Lreactor/core/publisher/Mono;
            areturn
        end local 2 // java.lang.String accessToken
         3: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticateWithConfidentialClientCache:(Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$0(Ljava/lang/Throwable;)Lreactor/core/publisher/Mono; (6)
                  (Ljava/lang/Throwable;)Lreactor/core/publisher/Mono;
            invokevirtual reactor.core.publisher.Mono.onErrorResume:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
         4: .line 95
            aload 0 /* this */
            aload 1 /* request */
            invokedynamic get(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;Lcom/azure/core/credential/TokenRequestContext;)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;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$1(Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono; (7)
                  ()Lreactor/core/publisher/Mono;
            invokestatic reactor.core.publisher.Mono.defer:(Ljava/util/function/Supplier;)Lreactor/core/publisher/Mono;
            invokevirtual reactor.core.publisher.Mono.switchIfEmpty:(Lreactor/core/publisher/Mono;)Lreactor/core/publisher/Mono;
         5: .line 94
            areturn
        end local 1 // com.azure.core.credential.TokenRequestContext request
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    6     1      request  Lcom/azure/core/credential/TokenRequestContext;
            2    3     2  accessToken  Ljava/lang/String;
    Signature: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono<Lcom/azure/core/credential/AccessToken;>;
    MethodParameters:
         Name  Flags
      request  

  com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential setAuthorization(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // java.lang.String authorization
         0: .line 106
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
            ifnull 2
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
            aload 1 /* authorization */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 107
            aload 0 /* this */
            areturn
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* authorization */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
         3: .line 110
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.getConfidentialClientApplication:()Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.confidentialClientApplication:Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
         4: .line 111
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String authorization
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    5     1  authorization  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      authorization  

  private com.microsoft.aad.msal4j.ConfidentialClientApplication getConfidentialClientApplication();
    descriptor: ()Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
         0: .line 120
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientId:Ljava/lang/String;
            ifnonnull 4
         1: .line 121
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 1 /* form */
        start local 1 // java.text.MessageFormat form
         2: .line 122
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Client ID"
            aastore
            astore 2 /* msgArgs1 */
        start local 2 // java.lang.Object[] msgArgs1
         3: .line 123
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* form */
            aload 2 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Object[] msgArgs1
        end local 1 // java.text.MessageFormat form
         4: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
            ifnonnull 8
         5: .line 127
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 1 /* form */
        start local 1 // java.text.MessageFormat form
         6: .line 128
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Authorization"
            aastore
            astore 2 /* msgArgs1 */
        start local 2 // java.lang.Object[] msgArgs1
         7: .line 129
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* form */
            aload 2 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Object[] msgArgs1
        end local 1 // java.text.MessageFormat form
         8: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientSecret:Ljava/lang/String;
            ifnonnull 12
         9: .line 133
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 1 /* form */
        start local 1 // java.text.MessageFormat form
        10: .line 134
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Client Secret"
            aastore
            astore 2 /* msgArgs1 */
        start local 2 // java.lang.Object[] msgArgs1
        11: .line 135
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* form */
            aload 2 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Object[] msgArgs1
        end local 1 // java.text.MessageFormat form
        12: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientSecret:Ljava/lang/String;
            invokestatic com.microsoft.aad.msal4j.ClientCredentialFactory.createFromSecret:(Ljava/lang/String;)Lcom/microsoft/aad/msal4j/IClientSecret;
            astore 1 /* credential */
        start local 1 // com.microsoft.aad.msal4j.IClientCredential credential
        13: .line 141
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.clientId:Ljava/lang/String;
        14: .line 142
            aload 1 /* credential */
        15: .line 141
            invokestatic com.microsoft.aad.msal4j.ConfidentialClientApplication.builder:(Ljava/lang/String;Lcom/microsoft/aad/msal4j/IClientCredential;)Lcom/microsoft/aad/msal4j/ConfidentialClientApplication$Builder;
            astore 2 /* applicationBuilder */
        start local 2 // com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder applicationBuilder
        16: .line 144
            aload 2 /* applicationBuilder */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authorization:Ljava/lang/String;
            invokevirtual com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder.authority:(Ljava/lang/String;)Lcom/microsoft/aad/msal4j/AbstractClientApplicationBase$Builder;
            checkcast com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder
            astore 2 /* applicationBuilder */
        17: .line 145
            goto 20
      StackMap locals: com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential com.microsoft.aad.msal4j.IClientCredential com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder
      StackMap stack: java.net.MalformedURLException
        18: astore 3 /* e */
        start local 3 // java.net.MalformedURLException e
        19: .line 146
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.net.MalformedURLException e
        20: .line 148
      StackMap locals:
      StackMap stack:
            aload 2 /* applicationBuilder */
            invokevirtual com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder.build:()Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
            areturn
        end local 2 // com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder applicationBuilder
        end local 1 // com.microsoft.aad.msal4j.IClientCredential credential
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   21     0                this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            2    4     1                form  Ljava/text/MessageFormat;
            3    4     2            msgArgs1  [Ljava/lang/Object;
            6    8     1                form  Ljava/text/MessageFormat;
            7    8     2            msgArgs1  [Ljava/lang/Object;
           10   12     1                form  Ljava/text/MessageFormat;
           11   12     2            msgArgs1  [Ljava/lang/Object;
           13   21     1          credential  Lcom/microsoft/aad/msal4j/IClientCredential;
           16   21     2  applicationBuilder  Lcom/microsoft/aad/msal4j/ConfidentialClientApplication$Builder;
           19   20     3                   e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
          16    17      18  Class java.net.MalformedURLException

  private reactor.core.publisher.Mono<com.azure.core.credential.AccessToken> authenticateWithConfidentialClientCache(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // com.azure.core.credential.TokenRequestContext request
         0: .line 160
            aload 0 /* this */
            aload 1 /* request */
            invokedynamic get(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;Lcom/azure/core/credential/TokenRequestContext;)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;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$2(Lcom/azure/core/credential/TokenRequestContext;)Ljava/util/concurrent/CompletableFuture; (7)
                  ()Ljava/util/concurrent/CompletableFuture;
            invokestatic reactor.core.publisher.Mono.fromFuture:(Ljava/util/function/Supplier;)Lreactor/core/publisher/Mono;
         1: .line 168
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$3(Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken; (6)
                  (Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken;
            invokevirtual reactor.core.publisher.Mono.map:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
         2: .line 169
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$4(Lcom/azure/core/credential/AccessToken;)Z (6)
                  (Lcom/azure/core/credential/AccessToken;)Z
            invokevirtual reactor.core.publisher.Mono.filter:(Ljava/util/function/Predicate;)Lreactor/core/publisher/Mono;
         3: .line 160
            areturn
        end local 1 // com.azure.core.credential.TokenRequestContext request
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    4     1  request  Lcom/azure/core/credential/TokenRequestContext;
    Signature: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono<Lcom/azure/core/credential/AccessToken;>;
    MethodParameters:
         Name  Flags
      request  

  private java.util.concurrent.CompletableFuture<com.microsoft.aad.msal4j.IAuthenticationResult> getFailedCompletableFuture(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)Ljava/util/concurrent/CompletableFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // java.lang.Exception e
         0: .line 180
            new java.util.concurrent.CompletableFuture
            dup
            invokespecial java.util.concurrent.CompletableFuture.<init>:()V
            astore 2 /* completableFuture */
        start local 2 // java.util.concurrent.CompletableFuture completableFuture
         1: .line 181
            aload 2 /* completableFuture */
            aload 1 /* e */
            invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
            pop
         2: .line 182
            aload 2 /* completableFuture */
            areturn
        end local 2 // java.util.concurrent.CompletableFuture completableFuture
        end local 1 // java.lang.Exception e
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    3     1                  e  Ljava/lang/Exception;
            1    3     2  completableFuture  Ljava/util/concurrent/CompletableFuture<Lcom/microsoft/aad/msal4j/IAuthenticationResult;>;
    Signature: (Ljava/lang/Exception;)Ljava/util/concurrent/CompletableFuture<Lcom/microsoft/aad/msal4j/IAuthenticationResult;>;
    MethodParameters:
      Name  Flags
      e     

  private reactor.core.publisher.Mono<com.azure.core.credential.AccessToken> authenticateWithConfidentialClient(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // com.azure.core.credential.TokenRequestContext request
         0: .line 194
            aload 0 /* this */
            aload 1 /* request */
            invokedynamic get(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;Lcom/azure/core/credential/TokenRequestContext;)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;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$5(Lcom/azure/core/credential/TokenRequestContext;)Ljava/util/concurrent/CompletableFuture; (7)
                  ()Ljava/util/concurrent/CompletableFuture;
            invokestatic reactor.core.publisher.Mono.fromFuture:(Ljava/util/function/Supplier;)Lreactor/core/publisher/Mono;
         1: .line 196
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.lambda$6(Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken; (6)
                  (Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken;
            invokevirtual reactor.core.publisher.Mono.map:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
         2: .line 193
            areturn
        end local 1 // com.azure.core.credential.TokenRequestContext request
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    3     1  request  Lcom/azure/core/credential/TokenRequestContext;
    Signature: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono<Lcom/azure/core/credential/AccessToken;>;
    MethodParameters:
         Name  Flags
      request  

  void setResource(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // java.lang.String resource
         0: .line 207
            aload 0 /* this */
            aload 1 /* resource */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.resource:Ljava/lang/String;
         1: .line 208
            return
        end local 1 // java.lang.String resource
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    2     1  resource  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      resource  

  void setScope(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
        start local 1 // java.lang.String scope
         0: .line 217
            aload 0 /* this */
            aload 1 /* scope */
            putfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.scope:Ljava/lang/String;
         1: .line 218
            return
        end local 1 // java.lang.String scope
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            0    2     1  scope  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      scope  

  private static reactor.core.publisher.Mono lambda$0(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lreactor/core/publisher/Mono;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 94
            invokestatic reactor.core.publisher.Mono.empty:()Lreactor/core/publisher/Mono;
            areturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Throwable;

  private reactor.core.publisher.Mono lambda$1(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
         0: .line 95
            aload 0 /* this */
            aload 1
            invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.authenticateWithConfidentialClient:(Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;

  private java.util.concurrent.CompletableFuture lambda$2(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Ljava/util/concurrent/CompletableFuture;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
         0: .line 162
            new java.util.HashSet
            dup
            aload 1
            invokevirtual com.azure.core.credential.TokenRequestContext.getScopes:()Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic com.microsoft.aad.msal4j.SilentParameters.builder:(Ljava/util/Set;)Lcom/microsoft/aad/msal4j/SilentParameters$SilentParametersBuilder;
         1: .line 161
            astore 2 /* parametersBuilder */
        start local 2 // com.microsoft.aad.msal4j.SilentParameters$SilentParametersBuilder parametersBuilder
         2: .line 164
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.confidentialClientApplication:Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
            aload 2 /* parametersBuilder */
            invokevirtual com.microsoft.aad.msal4j.SilentParameters$SilentParametersBuilder.build:()Lcom/microsoft/aad/msal4j/SilentParameters;
            invokevirtual com.microsoft.aad.msal4j.ConfidentialClientApplication.acquireTokenSilently:(Lcom/microsoft/aad/msal4j/SilentParameters;)Ljava/util/concurrent/CompletableFuture;
         3: areturn
         4: .line 165
      StackMap locals: com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential com.azure.core.credential.TokenRequestContext com.microsoft.aad.msal4j.SilentParameters$SilentParametersBuilder
      StackMap stack: java.net.MalformedURLException
            astore 3 /* e */
        start local 3 // java.net.MalformedURLException e
         5: .line 166
            aload 0 /* this */
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.getFailedCompletableFuture:(Ljava/lang/Exception;)Ljava/util/concurrent/CompletableFuture;
            areturn
        end local 3 // java.net.MalformedURLException e
        end local 2 // com.microsoft.aad.msal4j.SilentParameters$SilentParametersBuilder parametersBuilder
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
            2    6     2  parametersBuilder  Lcom/microsoft/aad/msal4j/SilentParameters$SilentParametersBuilder;
            5    6     3                  e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.net.MalformedURLException

  private static com.azure.core.credential.AccessToken lambda$3(com.microsoft.aad.msal4j.IAuthenticationResult);
    descriptor: (Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.microsoft.aad.msal4j.IAuthenticationResult ar
         0: .line 168
            new com.azure.core.credential.AccessToken
            dup
            aload 0 /* ar */
            invokeinterface com.microsoft.aad.msal4j.IAuthenticationResult.accessToken:()Ljava/lang/String;
         1: .line 169
            aload 0 /* ar */
            invokeinterface com.microsoft.aad.msal4j.IAuthenticationResult.expiresOnDate:()Ljava/util/Date;
            invokevirtual java.util.Date.toInstant:()Ljava/time/Instant;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokestatic java.time.OffsetDateTime.ofInstant:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/OffsetDateTime;
         2: .line 168
            invokespecial com.azure.core.credential.AccessToken.<init>:(Ljava/lang/String;Ljava/time/OffsetDateTime;)V
         3: .line 169
            areturn
        end local 0 // com.microsoft.aad.msal4j.IAuthenticationResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    ar  Lcom/microsoft/aad/msal4j/IAuthenticationResult;

  private static boolean lambda$4(com.azure.core.credential.AccessToken);
    descriptor: (Lcom/azure/core/credential/AccessToken;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.azure.core.credential.AccessToken t
         0: .line 169
            aload 0 /* t */
            invokevirtual com.azure.core.credential.AccessToken.isExpired:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.azure.core.credential.AccessToken t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Lcom/azure/core/credential/AccessToken;

  private java.util.concurrent.CompletableFuture lambda$5(com.azure.core.credential.TokenRequestContext);
    descriptor: (Lcom/azure/core/credential/TokenRequestContext;)Ljava/util/concurrent/CompletableFuture;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
         0: .line 194
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.confidentialClientApplication:Lcom/microsoft/aad/msal4j/ConfidentialClientApplication;
         1: .line 195
            new java.util.HashSet
            dup
            aload 1
            invokevirtual com.azure.core.credential.TokenRequestContext.getScopes:()Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic com.microsoft.aad.msal4j.ClientCredentialParameters.builder:(Ljava/util/Set;)Lcom/microsoft/aad/msal4j/ClientCredentialParameters$ClientCredentialParametersBuilder;
            invokevirtual com.microsoft.aad.msal4j.ClientCredentialParameters$ClientCredentialParametersBuilder.build:()Lcom/microsoft/aad/msal4j/ClientCredentialParameters;
            invokevirtual com.microsoft.aad.msal4j.ConfidentialClientApplication.acquireToken:(Lcom/microsoft/aad/msal4j/ClientCredentialParameters;)Ljava/util/concurrent/CompletableFuture;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;

  private static com.azure.core.credential.AccessToken lambda$6(com.microsoft.aad.msal4j.IAuthenticationResult);
    descriptor: (Lcom/microsoft/aad/msal4j/IAuthenticationResult;)Lcom/azure/core/credential/AccessToken;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.microsoft.aad.msal4j.IAuthenticationResult ar
         0: .line 196
            new com.azure.core.credential.AccessToken
            dup
            aload 0 /* ar */
            invokeinterface com.microsoft.aad.msal4j.IAuthenticationResult.accessToken:()Ljava/lang/String;
         1: .line 197
            aload 0 /* ar */
            invokeinterface com.microsoft.aad.msal4j.IAuthenticationResult.expiresOnDate:()Ljava/util/Date;
            invokevirtual java.util.Date.toInstant:()Ljava/time/Instant;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokestatic java.time.OffsetDateTime.ofInstant:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/OffsetDateTime;
         2: .line 196
            invokespecial com.azure.core.credential.AccessToken.<init>:(Ljava/lang/String;Ljava/time/OffsetDateTime;)V
         3: .line 197
            areturn
        end local 0 // com.microsoft.aad.msal4j.IAuthenticationResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    ar  Lcom/microsoft/aad/msal4j/IAuthenticationResult;
}
SourceFile: "KeyVaultTokenCredential.java"
InnerClasses:
  public ClientCredentialParametersBuilder = com.microsoft.aad.msal4j.ClientCredentialParameters$ClientCredentialParametersBuilder of com.microsoft.aad.msal4j.ClientCredentialParameters
  public Builder = com.microsoft.aad.msal4j.ConfidentialClientApplication$Builder of com.microsoft.aad.msal4j.ConfidentialClientApplication
  public SilentParametersBuilder = com.microsoft.aad.msal4j.SilentParameters$SilentParametersBuilder of com.microsoft.aad.msal4j.SilentParameters
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  abstract Builder = com.microsoft.aad.msal4j.AbstractClientApplicationBase$Builder of com.microsoft.aad.msal4j.AbstractClientApplicationBase