final class sun.security.smartcardio.PCSCTerminals extends javax.smartcardio.CardTerminals
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.smartcardio.PCSCTerminals
  super_class: javax.smartcardio.CardTerminals
{
  private static long contextId;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.util.Map<java.lang.String, sun.security.smartcardio.PCSCTerminals$ReaderState> stateMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lsun/security/smartcardio/PCSCTerminals$ReaderState;>;

  private static final java.util.Map<java.lang.String, java.lang.ref.Reference<sun.security.smartcardio.TerminalImpl>> terminals;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/ref/Reference<Lsun/security/smartcardio/TerminalImpl;>;>;

  private static volatile int[] $SWITCH_TABLE$javax$smartcardio$CardTerminals$State;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 61
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         1: .line 60
            putstatic sun.security.smartcardio.PCSCTerminals.terminals:Ljava/util/Map;
         2: .line 61
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.smartcardio.PCSCTerminals this
         0: .line 50
            aload 0 /* this */
            invokespecial javax.smartcardio.CardTerminals.<init>:()V
         1: .line 52
            return
        end local 0 // sun.security.smartcardio.PCSCTerminals this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/smartcardio/PCSCTerminals;

  static synchronized void initContext();
    descriptor: ()V
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=0, args_size=0
         0: .line 55
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            lconst_0
            lcmp
            ifne 2
         1: .line 56
            iconst_0
            invokestatic sun.security.smartcardio.PCSC.SCardEstablishContext:(I)J
            putstatic sun.security.smartcardio.PCSCTerminals.contextId:J
         2: .line 58
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws sun.security.smartcardio.PCSCException

  private static synchronized sun.security.smartcardio.TerminalImpl implGetTerminal(java.lang.String);
    descriptor: (Ljava/lang/String;)Lsun/security/smartcardio/TerminalImpl;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 64
            getstatic sun.security.smartcardio.PCSCTerminals.terminals:Ljava/util/Map;
            aload 0 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.Reference
            astore 1 /* ref */
        start local 1 // java.lang.ref.Reference ref
         1: .line 65
            aload 1 /* ref */
            ifnull 2
            aload 1 /* ref */
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            checkcast sun.security.smartcardio.TerminalImpl
            goto 3
      StackMap locals: java.lang.ref.Reference
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: sun.security.smartcardio.TerminalImpl
         3: astore 2 /* terminal */
        start local 2 // sun.security.smartcardio.TerminalImpl terminal
         4: .line 66
            aload 2 /* terminal */
            ifnull 6
         5: .line 67
            aload 2 /* terminal */
            areturn
         6: .line 69
      StackMap locals: sun.security.smartcardio.TerminalImpl
      StackMap stack:
            new sun.security.smartcardio.TerminalImpl
            dup
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            aload 0 /* name */
            invokespecial sun.security.smartcardio.TerminalImpl.<init>:(JLjava/lang/String;)V
            astore 2 /* terminal */
         7: .line 70
            getstatic sun.security.smartcardio.PCSCTerminals.terminals:Ljava/util/Map;
            aload 0 /* name */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* terminal */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 71
            aload 2 /* terminal */
            areturn
        end local 2 // sun.security.smartcardio.TerminalImpl terminal
        end local 1 // java.lang.ref.Reference ref
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      name  Ljava/lang/String;
            1    9     1       ref  Ljava/lang/ref/Reference<Lsun/security/smartcardio/TerminalImpl;>;
            4    9     2  terminal  Lsun/security/smartcardio/TerminalImpl;
    MethodParameters:
      Name  Flags
      name  

  public synchronized java.util.List<javax.smartcardio.CardTerminal> list(javax.smartcardio.CardTerminals$State);
    descriptor: (Ljavax/smartcardio/CardTerminals$State;)Ljava/util/List;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.security.smartcardio.PCSCTerminals this
        start local 1 // javax.smartcardio.CardTerminals$State state
         0: .line 76
            aload 1 /* state */
            ifnonnull 2
         1: .line 77
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 80
      StackMap locals:
      StackMap stack:
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            invokestatic sun.security.smartcardio.PCSC.SCardListReaders:(J)[Ljava/lang/String;
            astore 2 /* readerNames */
        start local 2 // java.lang.String[] readerNames
         3: .line 81
            new java.util.ArrayList
            dup
            aload 2 /* readerNames */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* list */
        start local 3 // java.util.List list
         4: .line 82
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            ifnonnull 10
         5: .line 85
            aload 1 /* state */
            getstatic javax.smartcardio.CardTerminals$State.CARD_INSERTION:Ljavax/smartcardio/CardTerminals$State;
            if_acmpne 8
         6: .line 86
            getstatic javax.smartcardio.CardTerminals$State.CARD_PRESENT:Ljavax/smartcardio/CardTerminals$State;
            astore 1 /* state */
         7: .line 87
            goto 10
      StackMap locals: java.lang.String[] java.util.List
      StackMap stack:
         8: aload 1 /* state */
            getstatic javax.smartcardio.CardTerminals$State.CARD_REMOVAL:Ljavax/smartcardio/CardTerminals$State;
            if_acmpne 10
         9: .line 88
            getstatic javax.smartcardio.CardTerminals$State.CARD_ABSENT:Ljavax/smartcardio/CardTerminals$State;
            astore 1 /* state */
        10: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* readerNames */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 32
      StackMap locals: sun.security.smartcardio.PCSCTerminals javax.smartcardio.CardTerminals$State java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
        11: aload 7
            iload 5
            aaload
            astore 4 /* readerName */
        start local 4 // java.lang.String readerName
        12: .line 92
            aload 4 /* readerName */
            invokestatic sun.security.smartcardio.PCSCTerminals.implGetTerminal:(Ljava/lang/String;)Lsun/security/smartcardio/TerminalImpl;
            astore 8 /* terminal */
        start local 8 // javax.smartcardio.CardTerminal terminal
        13: .line 94
            invokestatic sun.security.smartcardio.PCSCTerminals.$SWITCH_TABLE$javax$smartcardio$CardTerminals$State:()[I
            aload 1 /* state */
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 14
                    2: 16
                    3: 19
                    4: 22
                    5: 26
              default: 30
          }
        14: .line 96
      StackMap locals: sun.security.smartcardio.PCSCTerminals javax.smartcardio.CardTerminals$State java.lang.String[] java.util.List java.lang.String int int java.lang.String[] javax.smartcardio.CardTerminal
      StackMap stack:
            aload 3 /* list */
            aload 8 /* terminal */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 97
            goto 31
        16: .line 99
      StackMap locals:
      StackMap stack:
            aload 8 /* terminal */
            invokevirtual javax.smartcardio.CardTerminal.isCardPresent:()Z
            ifeq 31
        17: .line 100
            aload 3 /* list */
            aload 8 /* terminal */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 102
            goto 31
        19: .line 104
      StackMap locals:
      StackMap stack:
            aload 8 /* terminal */
            invokevirtual javax.smartcardio.CardTerminal.isCardPresent:()Z
            ifne 31
        20: .line 105
            aload 3 /* list */
            aload 8 /* terminal */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 107
            goto 31
        22: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            aload 4 /* readerName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.smartcardio.PCSCTerminals$ReaderState
            astore 9 /* readerState */
        start local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState readerState
        23: .line 110
            aload 9 /* readerState */
            ifnull 31
            aload 9 /* readerState */
            invokevirtual sun.security.smartcardio.PCSCTerminals$ReaderState.isInsertion:()Z
            ifeq 31
        24: .line 111
            aload 3 /* list */
            aload 8 /* terminal */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 113
            goto 31
        end local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState readerState
        26: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            aload 4 /* readerName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.smartcardio.PCSCTerminals$ReaderState
            astore 9 /* readerState */
        start local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState readerState
        27: .line 116
            aload 9 /* readerState */
            ifnull 31
            aload 9 /* readerState */
            invokevirtual sun.security.smartcardio.PCSCTerminals$ReaderState.isRemoval:()Z
            ifeq 31
        28: .line 117
            aload 3 /* list */
            aload 8 /* terminal */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 119
            goto 31
        end local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState readerState
        30: .line 121
      StackMap locals:
      StackMap stack:
            new javax.smartcardio.CardException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* state */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.smartcardio.CardException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // javax.smartcardio.CardTerminal terminal
        end local 4 // java.lang.String readerName
        31: .line 91
      StackMap locals: sun.security.smartcardio.PCSCTerminals javax.smartcardio.CardTerminals$State java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        32: iload 5
            iload 6
            if_icmplt 11
        33: .line 124
            aload 3 /* list */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
        34: areturn
        end local 3 // java.util.List list
        end local 2 // java.lang.String[] readerNames
        35: .line 125
      StackMap locals: sun.security.smartcardio.PCSCTerminals javax.smartcardio.CardTerminals$State
      StackMap stack: sun.security.smartcardio.PCSCException
            astore 2 /* e */
        start local 2 // sun.security.smartcardio.PCSCException e
        36: .line 126
            new javax.smartcardio.CardException
            dup
            ldc "list() failed"
            aload 2 /* e */
            invokespecial javax.smartcardio.CardException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.security.smartcardio.PCSCException e
        end local 1 // javax.smartcardio.CardTerminals$State state
        end local 0 // sun.security.smartcardio.PCSCTerminals this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lsun/security/smartcardio/PCSCTerminals;
            0   37     1        state  Ljavax/smartcardio/CardTerminals$State;
            3   35     2  readerNames  [Ljava/lang/String;
            4   35     3         list  Ljava/util/List<Ljavax/smartcardio/CardTerminal;>;
           12   31     4   readerName  Ljava/lang/String;
           13   31     8     terminal  Ljavax/smartcardio/CardTerminal;
           23   26     9  readerState  Lsun/security/smartcardio/PCSCTerminals$ReaderState;
           27   30     9  readerState  Lsun/security/smartcardio/PCSCTerminals$ReaderState;
           36   37     2            e  Lsun/security/smartcardio/PCSCException;
      Exception table:
        from    to  target  type
           2    34      35  Class sun.security.smartcardio.PCSCException
    Exceptions:
      throws javax.smartcardio.CardException
    Signature: (Ljavax/smartcardio/CardTerminals$State;)Ljava/util/List<Ljavax/smartcardio/CardTerminal;>;
    MethodParameters:
       Name  Flags
      state  

  public synchronized boolean waitForChange(long);
    descriptor: (J)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // sun.security.smartcardio.PCSCTerminals this
        start local 1 // long timeout
         0: .line 155
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifge 4
         1: .line 156
            new java.lang.IllegalArgumentException
            dup
         2: .line 157
            new java.lang.StringBuilder
            dup
            ldc "Timeout must not be negative: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 156
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            ifnonnull 7
         5: .line 164
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
         6: .line 165
            aload 0 /* this */
            lconst_0
            invokevirtual sun.security.smartcardio.PCSCTerminals.waitForChange:(J)Z
            pop
         7: .line 167
      StackMap locals:
      StackMap stack:
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifne 9
         8: .line 168
            ldc -1
            lstore 1 /* timeout */
         9: .line 171
      StackMap locals:
      StackMap stack:
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            invokestatic sun.security.smartcardio.PCSC.SCardListReaders:(J)[Ljava/lang/String;
            astore 3 /* readerNames */
        start local 3 // java.lang.String[] readerNames
        10: .line 172
            aload 3 /* readerNames */
            arraylength
            istore 4 /* n */
        start local 4 // int n
        11: .line 173
            iload 4 /* n */
            ifne 13
        12: .line 174
            new java.lang.IllegalStateException
            dup
            ldc "No terminals available"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 176
      StackMap locals: java.lang.String[] int
      StackMap stack:
            iload 4 /* n */
            newarray 10
            astore 5 /* status */
        start local 5 // int[] status
        14: .line 177
            iload 4 /* n */
            anewarray sun.security.smartcardio.PCSCTerminals$ReaderState
            astore 6 /* readerStates */
        start local 6 // sun.security.smartcardio.PCSCTerminals$ReaderState[] readerStates
        15: .line 178
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 24
        17: .line 179
      StackMap locals: int[] sun.security.smartcardio.PCSCTerminals$ReaderState[] int
      StackMap stack:
            aload 3 /* readerNames */
            iload 7 /* i */
            aaload
            astore 8 /* name */
        start local 8 // java.lang.String name
        18: .line 180
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            aload 8 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.smartcardio.PCSCTerminals$ReaderState
            astore 9 /* state */
        start local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState state
        19: .line 181
            aload 9 /* state */
            ifnonnull 21
        20: .line 182
            new sun.security.smartcardio.PCSCTerminals$ReaderState
            dup
            invokespecial sun.security.smartcardio.PCSCTerminals$ReaderState.<init>:()V
            astore 9 /* state */
        21: .line 184
      StackMap locals: java.lang.String sun.security.smartcardio.PCSCTerminals$ReaderState
      StackMap stack:
            aload 6 /* readerStates */
            iload 7 /* i */
            aload 9 /* state */
            aastore
        22: .line 185
            aload 5 /* status */
            iload 7 /* i */
            aload 9 /* state */
            invokevirtual sun.security.smartcardio.PCSCTerminals$ReaderState.get:()I
            iastore
        end local 9 // sun.security.smartcardio.PCSCTerminals$ReaderState state
        end local 8 // java.lang.String name
        23: .line 178
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            aload 3 /* readerNames */
            arraylength
            if_icmplt 17
        end local 7 // int i
        25: .line 187
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            lload 1 /* timeout */
            aload 5 /* status */
            aload 3 /* readerNames */
            invokestatic sun.security.smartcardio.PCSC.SCardGetStatusChange:(JJ[I[Ljava/lang/String;)[I
            astore 5 /* status */
        26: .line 188
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        27: .line 189
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        28: goto 33
        29: .line 190
      StackMap locals:
      StackMap stack:
            aload 6 /* readerStates */
            iload 7 /* i */
            aaload
            astore 8 /* state */
        start local 8 // sun.security.smartcardio.PCSCTerminals$ReaderState state
        30: .line 191
            aload 8 /* state */
            aload 5 /* status */
            iload 7 /* i */
            iaload
            invokevirtual sun.security.smartcardio.PCSCTerminals$ReaderState.update:(I)V
        31: .line 192
            aload 0 /* this */
            getfield sun.security.smartcardio.PCSCTerminals.stateMap:Ljava/util/Map;
            aload 3 /* readerNames */
            iload 7 /* i */
            aaload
            aload 8 /* state */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // sun.security.smartcardio.PCSCTerminals$ReaderState state
        32: .line 189
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 7 /* i */
            iload 4 /* n */
            if_icmplt 29
        end local 7 // int i
        34: .line 194
            iconst_1
            ireturn
        end local 6 // sun.security.smartcardio.PCSCTerminals$ReaderState[] readerStates
        end local 5 // int[] status
        end local 4 // int n
        end local 3 // java.lang.String[] readerNames
        35: .line 195
      StackMap locals: sun.security.smartcardio.PCSCTerminals long
      StackMap stack: sun.security.smartcardio.PCSCException
            astore 3 /* e */
        start local 3 // sun.security.smartcardio.PCSCException e
        36: .line 196
            aload 3 /* e */
            getfield sun.security.smartcardio.PCSCException.code:I
            ldc -2146435062
            if_icmpne 38
        37: .line 197
            iconst_0
            ireturn
        38: .line 199
      StackMap locals: sun.security.smartcardio.PCSCException
      StackMap stack:
            new javax.smartcardio.CardException
            dup
            ldc "waitForChange() failed"
            aload 3 /* e */
            invokespecial javax.smartcardio.CardException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // sun.security.smartcardio.PCSCException e
        end local 1 // long timeout
        end local 0 // sun.security.smartcardio.PCSCTerminals this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   39     0          this  Lsun/security/smartcardio/PCSCTerminals;
            0   39     1       timeout  J
           10   35     3   readerNames  [Ljava/lang/String;
           11   35     4             n  I
           14   35     5        status  [I
           15   35     6  readerStates  [Lsun/security/smartcardio/PCSCTerminals$ReaderState;
           16   25     7             i  I
           18   23     8          name  Ljava/lang/String;
           19   23     9         state  Lsun/security/smartcardio/PCSCTerminals$ReaderState;
           28   34     7             i  I
           30   32     8         state  Lsun/security/smartcardio/PCSCTerminals$ReaderState;
           36   39     3             e  Lsun/security/smartcardio/PCSCException;
      Exception table:
        from    to  target  type
           9    34      35  Class sun.security.smartcardio.PCSCException
    Exceptions:
      throws javax.smartcardio.CardException
    MethodParameters:
         Name  Flags
      timeout  

  static java.util.List<javax.smartcardio.CardTerminal> waitForCards(java.util.List<? extends javax.smartcardio.CardTerminal>, long, boolean);
    descriptor: (Ljava/util/List;JZ)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.util.List terminals
        start local 1 // long timeout
        start local 3 // boolean wantPresent
         0: .line 210
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifne 4
         1: .line 211
            ldc -1
            lstore 1 /* timeout */
         2: .line 212
            ldc -1
            lstore 4 /* thisTimeout */
        start local 4 // long thisTimeout
         3: .line 213
            goto 5
        end local 4 // long thisTimeout
         4: .line 217
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 4 /* thisTimeout */
        start local 4 // long thisTimeout
         5: .line 220
      StackMap locals: long
      StackMap stack:
            aload 0 /* terminals */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 6 /* names */
        start local 6 // java.lang.String[] names
         6: .line 221
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: .line 222
            aload 0 /* terminals */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: java.util.List long int long java.lang.String[] int top java.util.Iterator
      StackMap stack:
         8: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.smartcardio.CardTerminal
            astore 8 /* terminal */
        start local 8 // javax.smartcardio.CardTerminal terminal
         9: .line 223
            aload 8 /* terminal */
            instanceof sun.security.smartcardio.TerminalImpl
            ifne 13
        10: .line 224
            new java.lang.IllegalArgumentException
            dup
        11: .line 225
            new java.lang.StringBuilder
            dup
            ldc "Invalid terminal type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* terminal */
            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;
        12: .line 224
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 227
      StackMap locals: java.util.List long int long java.lang.String[] int javax.smartcardio.CardTerminal java.util.Iterator
      StackMap stack:
            aload 8 /* terminal */
            checkcast sun.security.smartcardio.TerminalImpl
            astore 10 /* impl */
        start local 10 // sun.security.smartcardio.TerminalImpl impl
        14: .line 228
            aload 6 /* names */
            iload 7 /* i */
            iinc 7 /* i */ 1
            aload 10 /* impl */
            getfield sun.security.smartcardio.TerminalImpl.name:Ljava/lang/String;
            aastore
        end local 10 // sun.security.smartcardio.TerminalImpl impl
        end local 8 // javax.smartcardio.CardTerminal terminal
        15: .line 222
      StackMap locals: java.util.List long int long java.lang.String[] int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        16: .line 231
            aload 6 /* names */
            arraylength
            newarray 10
            astore 8 /* status */
        start local 8 // int[] status
        17: .line 232
            aload 8 /* status */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        18: .line 240
      StackMap locals: java.util.List long int long java.lang.String[] int int[]
      StackMap stack:
            getstatic sun.security.smartcardio.PCSCTerminals.contextId:J
            lload 4 /* thisTimeout */
            aload 8 /* status */
            aload 6 /* names */
            invokestatic sun.security.smartcardio.PCSC.SCardGetStatusChange:(JJ[I[Ljava/lang/String;)[I
            astore 8 /* status */
        19: .line 241
            lload 1 /* timeout */
            lstore 4 /* thisTimeout */
        20: .line 243
            aconst_null
            astore 9 /* results */
        start local 9 // java.util.List results
        21: .line 244
            iconst_0
            istore 7 /* i */
            goto 30
        22: .line 245
      StackMap locals: java.util.List
      StackMap stack:
            aload 8 /* status */
            iload 7 /* i */
            iaload
            bipush 32
            iand
            ifeq 23
            iconst_1
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 10 /* nowPresent */
        start local 10 // boolean nowPresent
        25: .line 246
            iload 10 /* nowPresent */
            iload 3 /* wantPresent */
            if_icmpne 29
        26: .line 247
            aload 9 /* results */
            ifnonnull 28
        27: .line 248
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* results */
        28: .line 250
      StackMap locals: int
      StackMap stack:
            aload 9 /* results */
            aload 6 /* names */
            iload 7 /* i */
            aaload
            invokestatic sun.security.smartcardio.PCSCTerminals.implGetTerminal:(Ljava/lang/String;)Lsun/security/smartcardio/TerminalImpl;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // boolean nowPresent
        29: .line 244
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 7 /* i */
            aload 6 /* names */
            arraylength
            if_icmplt 22
        31: .line 254
            aload 9 /* results */
            ifnull 18
        32: .line 255
            aload 9 /* results */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
        33: areturn
        end local 9 // java.util.List results
        34: .line 258
      StackMap locals: java.util.List long int long java.lang.String[] int int[]
      StackMap stack: sun.security.smartcardio.PCSCException
            astore 9 /* e */
        start local 9 // sun.security.smartcardio.PCSCException e
        35: .line 259
            aload 9 /* e */
            getfield sun.security.smartcardio.PCSCException.code:I
            ldc -2146435062
            if_icmpne 37
        36: .line 260
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        37: .line 262
      StackMap locals: sun.security.smartcardio.PCSCException
      StackMap stack:
            new javax.smartcardio.CardException
            dup
            ldc "waitForCard() failed"
            aload 9 /* e */
            invokespecial javax.smartcardio.CardException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // sun.security.smartcardio.PCSCException e
        end local 8 // int[] status
        end local 7 // int i
        end local 6 // java.lang.String[] names
        end local 4 // long thisTimeout
        end local 3 // boolean wantPresent
        end local 1 // long timeout
        end local 0 // java.util.List terminals
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0    terminals  Ljava/util/List<+Ljavax/smartcardio/CardTerminal;>;
            0   38     1      timeout  J
            0   38     3  wantPresent  Z
            3    4     4  thisTimeout  J
            5   38     4  thisTimeout  J
            6   38     6        names  [Ljava/lang/String;
            7   38     7            i  I
            9   15     8     terminal  Ljavax/smartcardio/CardTerminal;
           14   15    10         impl  Lsun/security/smartcardio/TerminalImpl;
           17   38     8       status  [I
           21   34     9      results  Ljava/util/List<Ljavax/smartcardio/CardTerminal;>;
           25   29    10   nowPresent  Z
           35   38     9            e  Lsun/security/smartcardio/PCSCException;
      Exception table:
        from    to  target  type
          18    33      34  Class sun.security.smartcardio.PCSCException
    Exceptions:
      throws javax.smartcardio.CardException
    Signature: (Ljava/util/List<+Ljavax/smartcardio/CardTerminal;>;JZ)Ljava/util/List<Ljavax/smartcardio/CardTerminal;>;
    MethodParameters:
             Name  Flags
      terminals    
      timeout      
      wantPresent  

  static int[] $SWITCH_TABLE$javax$smartcardio$CardTerminals$State();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 42
            getstatic sun.security.smartcardio.PCSCTerminals.$SWITCH_TABLE$javax$smartcardio$CardTerminals$State:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.smartcardio.CardTerminals$State.values:()[Ljavax/smartcardio/CardTerminals$State;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.smartcardio.CardTerminals$State.ALL:Ljavax/smartcardio/CardTerminals$State;
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.smartcardio.CardTerminals$State.CARD_ABSENT:Ljavax/smartcardio/CardTerminals$State;
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.smartcardio.CardTerminals$State.CARD_INSERTION:Ljavax/smartcardio/CardTerminals$State;
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.smartcardio.CardTerminals$State.CARD_PRESENT:Ljavax/smartcardio/CardTerminals$State;
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.smartcardio.CardTerminals$State.CARD_REMOVAL:Ljavax/smartcardio/CardTerminals$State;
            invokevirtual javax.smartcardio.CardTerminals$State.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic sun.security.smartcardio.PCSCTerminals.$SWITCH_TABLE$javax$smartcardio$CardTerminals$State:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "PCSCTerminals.java"
NestMembers:
  sun.security.smartcardio.PCSCTerminals$ReaderState
InnerClasses:
  public final State = javax.smartcardio.CardTerminals$State of javax.smartcardio.CardTerminals
  private ReaderState = sun.security.smartcardio.PCSCTerminals$ReaderState of sun.security.smartcardio.PCSCTerminals