final class sun.security.ssl.SupportedEllipticCurvesExtension extends sun.security.ssl.HelloExtension
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SupportedEllipticCurvesExtension
  super_class: sun.security.ssl.HelloExtension
{
  private static final sun.security.ssl.Debug debug;
    descriptor: Lsun/security/ssl/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int ARBITRARY_PRIME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65281

  private static final int ARBITRARY_CHAR2;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65282

  private static final java.util.Map<java.lang.String, java.lang.Integer> oidToIdMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private static final java.util.Map<java.lang.Integer, java.lang.String> idToOidMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;

  private static final java.util.Map<java.lang.Integer, java.security.AlgorithmParameters> idToParams;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/security/AlgorithmParameters;>;

  private static final int[] supportedCurveIds;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=0
         0: .line 355
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
            putstatic sun.security.ssl.SupportedEllipticCurvesExtension.debug:Lsun/security/ssl/Debug;
         1: .line 361
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic sun.security.ssl.SupportedEllipticCurvesExtension.oidToIdMap:Ljava/util/Map;
         2: .line 362
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToOidMap:Ljava/util/Map;
         3: .line 366
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         4: .line 365
            putstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToParams:Ljava/util/Map;
         5: .line 434
            invokestatic sun.security.ssl.SunJSSE.isFIPS:()Z
            istore 0 /* requireFips */
        start local 0 // boolean requireFips
         6: .line 438
            ldc "secp256r1"
            iconst_0
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.getCurve:(Ljava/lang/String;Z)Lsun/security/ssl/SupportedEllipticCurvesExtension$NamedEllipticCurve;
            pop
         7: .line 448
            new sun.security.action.GetPropertyAction
            dup
            ldc "jdk.tls.namedGroups"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         8: .line 447
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* property */
        start local 1 // java.lang.String property
         9: .line 449
            aload 1 /* property */
            ifnull 13
            aload 1 /* property */
            invokevirtual java.lang.String.length:()I
            ifeq 13
        10: .line 451
            aload 1 /* property */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 13
            aload 1 /* property */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 34
            if_icmpne 13
        11: .line 452
            aload 1 /* property */
            aload 1 /* property */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 34
            if_icmpne 13
        12: .line 453
            aload 1 /* property */
            iconst_1
            aload 1 /* property */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* property */
        13: .line 458
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 1 /* property */
            ifnull 33
            aload 1 /* property */
            invokevirtual java.lang.String.length:()I
            ifeq 33
        14: .line 459
            aload 1 /* property */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* curves */
        start local 3 // java.lang.String[] curves
        15: .line 460
            new java.util.ArrayList
            dup
            aload 3 /* curves */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* idList */
        start local 2 // java.util.ArrayList idList
        16: .line 461
            aload 3 /* curves */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 26
      StackMap locals: int java.lang.String java.util.ArrayList java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        17: aload 7
            iload 5
            aaload
            astore 4 /* curve */
        start local 4 // java.lang.String curve
        18: .line 462
            aload 4 /* curve */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 4 /* curve */
        19: .line 463
            aload 4 /* curve */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 25
        20: .line 465
            aload 4 /* curve */
            iload 0 /* requireFips */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.getCurve:(Ljava/lang/String;Z)Lsun/security/ssl/SupportedEllipticCurvesExtension$NamedEllipticCurve;
        21: .line 464
            astore 8 /* namedCurve */
        start local 8 // sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve namedCurve
        22: .line 466
            aload 8 /* namedCurve */
            ifnull 25
        23: .line 467
            aload 8 /* namedCurve */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.id:I
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isAvailableCurve:(I)Z
            ifeq 25
        24: .line 468
            aload 2 /* idList */
            aload 8 /* namedCurve */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve namedCurve
        end local 4 // java.lang.String curve
        25: .line 461
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        26: iload 5
            iload 6
            if_icmplt 17
        27: .line 473
            aload 2 /* idList */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 49
            invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
            ifeq 49
        28: .line 474
            new java.lang.IllegalArgumentException
            dup
        29: .line 475
            new java.lang.StringBuilder
            dup
            ldc "System property jdk.tls.namedGroups("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 476
            ldc "contains no supported elliptic curves"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 475
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 474
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String[] curves
        end local 2 // java.util.ArrayList idList
        33: .line 480
      StackMap locals: int java.lang.String
      StackMap stack:
            iload 0 /* requireFips */
            ifeq 38
        34: .line 481
            bipush 9
            newarray 10
            dup
            iconst_0
        35: .line 483
            bipush 23
            iastore
            dup
            iconst_1
            bipush 24
            iastore
            dup
            iconst_2
            bipush 25
            iastore
            dup
            iconst_3
            bipush 9
            iastore
            dup
            iconst_4
            bipush 10
            iastore
            dup
            iconst_5
            bipush 11
            iastore
            dup
            bipush 6
            bipush 12
            iastore
            dup
            bipush 7
            bipush 13
            iastore
            dup
            bipush 8
            bipush 14
            iastore
        36: .line 481
            astore 3 /* ids */
        start local 3 // int[] ids
        37: .line 485
            goto 42
        end local 3 // int[] ids
        38: .line 486
      StackMap locals:
      StackMap stack:
            bipush 10
            newarray 10
            dup
            iconst_0
        39: .line 488
            bipush 23
            iastore
            dup
            iconst_1
            bipush 24
            iastore
            dup
            iconst_2
            bipush 25
            iastore
            dup
            iconst_3
            bipush 9
            iastore
            dup
            iconst_4
            bipush 10
            iastore
            dup
            iconst_5
            bipush 11
            iastore
            dup
            bipush 6
            bipush 12
            iastore
            dup
            bipush 7
            bipush 13
            iastore
            dup
            bipush 8
            bipush 14
            iastore
            dup
            bipush 9
        40: .line 490
            bipush 22
            iastore
        41: .line 486
            astore 3 /* ids */
        start local 3 // int[] ids
        42: .line 494
      StackMap locals: int java.lang.String top int[]
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 3 /* ids */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* idList */
        start local 2 // java.util.ArrayList idList
        43: .line 495
            aload 3 /* ids */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 48
      StackMap locals: int java.lang.String java.util.ArrayList int[] top int int int[]
      StackMap stack:
        44: aload 7
            iload 5
            iaload
            istore 4 /* curveId */
        start local 4 // int curveId
        45: .line 496
            iload 4 /* curveId */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isAvailableCurve:(I)Z
            ifeq 47
        46: .line 497
            aload 2 /* idList */
            iload 4 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int curveId
        47: .line 495
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        48: iload 5
            iload 6
            if_icmplt 44
        end local 3 // int[] ids
        49: .line 502
      StackMap locals: int java.lang.String java.util.ArrayList
      StackMap stack:
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.debug:Lsun/security/ssl/Debug;
            ifnull 57
            aload 2 /* idList */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 57
        50: .line 503
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.debug:Lsun/security/ssl/Debug;
        51: .line 504
            new java.lang.StringBuilder
            dup
            ldc "Initialized [jdk.tls.namedGroups|default] list contains no available elliptic curves. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        52: .line 506
            aload 1 /* property */
            ifnull 53
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 54
      StackMap locals: int java.lang.String java.util.ArrayList
      StackMap stack: sun.security.ssl.Debug java.lang.StringBuilder
        53: ldc "[Default]"
      StackMap locals: int java.lang.String java.util.ArrayList
      StackMap stack: sun.security.ssl.Debug java.lang.StringBuilder java.lang.String
        54: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 504
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 503
            invokevirtual sun.security.ssl.Debug.println:(Ljava/lang/String;)V
        57: .line 509
      StackMap locals:
      StackMap stack:
            aload 2 /* idList */
            invokevirtual java.util.ArrayList.size:()I
            newarray 10
            putstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
        58: .line 510
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        59: .line 511
            aload 2 /* idList */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 62
      StackMap locals: int java.lang.String java.util.ArrayList int top java.util.Iterator
      StackMap stack:
        60: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* id */
        start local 4 // java.lang.Integer id
        61: .line 512
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
            iload 3 /* i */
            iinc 3 /* i */ 1
            aload 4 /* id */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        end local 4 // java.lang.Integer id
        62: .line 511
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 60
        end local 3 // int i
        end local 2 // java.util.ArrayList idList
        end local 1 // java.lang.String property
        end local 0 // boolean requireFips
        63: .line 514
            return
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            6   63     0  requireFips  Z
            9   63     1     property  Ljava/lang/String;
           16   33     2       idList  Ljava/util/ArrayList<Ljava/lang/Integer;>;
           43   63     2       idList  Ljava/util/ArrayList<Ljava/lang/Integer;>;
           15   33     3       curves  [Ljava/lang/String;
           18   25     4        curve  Ljava/lang/String;
           22   25     8   namedCurve  Lsun/security/ssl/SupportedEllipticCurvesExtension$NamedEllipticCurve;
           37   38     3          ids  [I
           42   49     3          ids  [I
           45   47     4      curveId  I
           59   63     3            i  I
           61   62     4           id  Ljava/lang/Integer;

  private static boolean isAvailableCurve(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int curveId
         0: .line 518
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToOidMap:Ljava/util/Map;
            iload 0 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* oid */
        start local 1 // java.lang.String oid
         1: .line 519
            aload 1 /* oid */
            ifnull 10
         2: .line 520
            aconst_null
            astore 2 /* params */
        start local 2 // java.security.AlgorithmParameters params
         3: .line 522
            ldc "EC"
            invokestatic sun.security.ssl.JsseJce.getAlgorithmParameters:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 2 /* params */
         4: .line 523
            aload 2 /* params */
            new java.security.spec.ECGenParameterSpec
            dup
            aload 1 /* oid */
            invokespecial java.security.spec.ECGenParameterSpec.<init>:(Ljava/lang/String;)V
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
         5: .line 524
            goto 8
      StackMap locals: int java.lang.String java.security.AlgorithmParameters
      StackMap stack: java.lang.Exception
         6: pop
         7: .line 525
            iconst_0
            ireturn
         8: .line 529
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToParams:Ljava/util/Map;
            iload 0 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* params */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 531
            iconst_1
            ireturn
        end local 2 // java.security.AlgorithmParameters params
        10: .line 534
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String oid
        end local 0 // int curveId
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  curveId  I
            1   11     1      oid  Ljava/lang/String;
            3   10     2   params  Ljava/security/AlgorithmParameters;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      curveId  

  private void <init>(int[]);
    descriptor: ([I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
        start local 1 // int[] curveIds
         0: .line 538
            aload 0 /* this */
            getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
            invokespecial sun.security.ssl.HelloExtension.<init>:(Lsun/security/ssl/ExtensionType;)V
         1: .line 539
            aload 0 /* this */
            aload 1 /* curveIds */
            putfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
         2: .line 540
            return
        end local 1 // int[] curveIds
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            0    3     1  curveIds  [I
    MethodParameters:
          Name  Flags
      curveIds  

  void <init>(sun.security.ssl.HandshakeInStream, int);
    descriptor: (Lsun/security/ssl/HandshakeInStream;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
        start local 1 // sun.security.ssl.HandshakeInStream s
        start local 2 // int len
         0: .line 544
            aload 0 /* this */
            getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
            invokespecial sun.security.ssl.HelloExtension.<init>:(Lsun/security/ssl/ExtensionType;)V
         1: .line 545
            aload 1 /* s */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
            istore 3 /* k */
        start local 3 // int k
         2: .line 546
            iload 2 /* len */
            iconst_1
            iand
            ifne 3
            iload 3 /* k */
            iconst_2
            iadd
            iload 2 /* len */
            if_icmpeq 4
         3: .line 547
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension sun.security.ssl.HandshakeInStream int int
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.type:Lsun/security/ssl/ExtensionType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " extension"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* k */
            iconst_1
            ishr
            newarray 10
            putfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
         5: .line 552
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 553
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            iload 4 /* i */
            aload 1 /* s */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
            iastore
         8: .line 552
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            arraylength
            if_icmplt 7
        end local 4 // int i
        10: .line 555
            return
        end local 3 // int k
        end local 2 // int len
        end local 1 // sun.security.ssl.HandshakeInStream s
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            0   11     1     s  Lsun/security/ssl/HandshakeInStream;
            0   11     2   len  I
            2   11     3     k  I
            6   10     4     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     
      len   

  static int getActiveCurves(sun.security.util.AlgorithmConstraints);
    descriptor: (Lsun/security/util/AlgorithmConstraints;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.util.AlgorithmConstraints constraints
         0: .line 559
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
            aload 0 /* constraints */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getPreferredCurve:([ILsun/security/util/AlgorithmConstraints;)I
            ireturn
        end local 0 // sun.security.util.AlgorithmConstraints constraints
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  constraints  Lsun/security/util/AlgorithmConstraints;
    MethodParameters:
             Name  Flags
      constraints  

  static boolean hasActiveCurves(sun.security.util.AlgorithmConstraints);
    descriptor: (Lsun/security/util/AlgorithmConstraints;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.util.AlgorithmConstraints constraints
         0: .line 563
            aload 0 /* constraints */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getActiveCurves:(Lsun/security/util/AlgorithmConstraints;)I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.util.AlgorithmConstraints constraints
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  constraints  Lsun/security/util/AlgorithmConstraints;
    MethodParameters:
             Name  Flags
      constraints  

  static sun.security.ssl.SupportedEllipticCurvesExtension createExtension(sun.security.util.AlgorithmConstraints);
    descriptor: (Lsun/security/util/AlgorithmConstraints;)Lsun/security/ssl/SupportedEllipticCurvesExtension;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // sun.security.util.AlgorithmConstraints constraints
         0: .line 569
            new java.util.ArrayList
            dup
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* idList */
        start local 1 // java.util.ArrayList idList
         1: .line 570
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 10
      StackMap locals: sun.security.util.AlgorithmConstraints java.util.ArrayList top int int int[]
      StackMap stack:
         2: aload 5
            iload 3
            iaload
            istore 2 /* curveId */
        start local 2 // int curveId
         3: .line 571
            aload 0 /* constraints */
         4: .line 572
            getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
         5: .line 573
            ldc "EC"
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToParams:Ljava/util/Map;
            iload 2 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.AlgorithmParameters
         6: .line 571
            invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         7: .line 573
            ifeq 9
         8: .line 574
            aload 1 /* idList */
            iload 2 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // int curveId
         9: .line 570
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        10: iload 3
            iload 4
            if_icmplt 2
        11: .line 578
            aload 1 /* idList */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 19
        12: .line 579
            aload 1 /* idList */
            invokevirtual java.util.ArrayList.size:()I
            newarray 10
            astore 2 /* ids */
        start local 2 // int[] ids
        13: .line 580
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        14: .line 581
            aload 1 /* idList */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: sun.security.util.AlgorithmConstraints java.util.ArrayList int[] int top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* id */
        start local 4 // java.lang.Integer id
        16: .line 582
            aload 2 /* ids */
            iload 3 /* i */
            iinc 3 /* i */ 1
            aload 4 /* id */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        end local 4 // java.lang.Integer id
        17: .line 581
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 585
            new sun.security.ssl.SupportedEllipticCurvesExtension
            dup
            aload 2 /* ids */
            invokespecial sun.security.ssl.SupportedEllipticCurvesExtension.<init>:([I)V
            areturn
        end local 3 // int i
        end local 2 // int[] ids
        19: .line 588
      StackMap locals: sun.security.util.AlgorithmConstraints java.util.ArrayList
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.ArrayList idList
        end local 0 // sun.security.util.AlgorithmConstraints constraints
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0  constraints  Lsun/security/util/AlgorithmConstraints;
            1   20     1       idList  Ljava/util/ArrayList<Ljava/lang/Integer;>;
            3    9     2      curveId  I
           13   19     2          ids  [I
           14   19     3            i  I
           16   17     4           id  Ljava/lang/Integer;
    MethodParameters:
             Name  Flags
      constraints  

  int getPreferredCurve(sun.security.util.AlgorithmConstraints);
    descriptor: (Lsun/security/util/AlgorithmConstraints;)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
        start local 1 // sun.security.util.AlgorithmConstraints constraints
         0: .line 593
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            aload 1 /* constraints */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getPreferredCurve:([ILsun/security/util/AlgorithmConstraints;)I
            ireturn
        end local 1 // sun.security.util.AlgorithmConstraints constraints
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            0    1     1  constraints  Lsun/security/util/AlgorithmConstraints;
    MethodParameters:
             Name  Flags
      constraints  

  private static int getPreferredCurve(int[], sun.security.util.AlgorithmConstraints);
    descriptor: ([ILsun/security/util/AlgorithmConstraints;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // int[] curves
        start local 1 // sun.security.util.AlgorithmConstraints constraints
         0: .line 599
            aload 0 /* curves */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: int[] sun.security.util.AlgorithmConstraints top int int int[]
      StackMap stack:
         1: aload 5
            iload 3
            iaload
            istore 2 /* curveId */
        start local 2 // int curveId
         2: .line 600
            iload 2 /* curveId */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isSupported:(I)Z
            ifeq 8
            aload 1 /* constraints */
         3: .line 601
            getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
         4: .line 602
            ldc "EC"
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToParams:Ljava/util/Map;
            iload 2 /* curveId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.AlgorithmParameters
         5: .line 600
            invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         6: .line 602
            ifeq 8
         7: .line 603
            iload 2 /* curveId */
            ireturn
        end local 2 // int curveId
         8: .line 599
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 1
        10: .line 607
            iconst_m1
            ireturn
        end local 1 // sun.security.util.AlgorithmConstraints constraints
        end local 0 // int[] curves
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0       curves  [I
            0   11     1  constraints  Lsun/security/util/AlgorithmConstraints;
            2    8     2      curveId  I
    MethodParameters:
             Name  Flags
      curves       
      constraints  

  boolean contains(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
        start local 1 // int index
         0: .line 611
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension int top int int int[]
      StackMap stack:
         1: aload 5
            iload 3
            iaload
            istore 2 /* curveId */
        start local 2 // int curveId
         2: .line 612
            iload 1 /* index */
            iload 2 /* curveId */
            if_icmpne 4
         3: .line 613
            iconst_1
            ireturn
        end local 2 // int curveId
         4: .line 611
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 616
            iconst_0
            ireturn
        end local 1 // int index
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            0    7     1    index  I
            2    4     2  curveId  I
    MethodParameters:
       Name  Flags
      index  

  int length();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
         0: .line 620
            bipush 6
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            arraylength
            iconst_1
            ishl
            iadd
            ireturn
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SupportedEllipticCurvesExtension;

  void send(sun.security.ssl.HandshakeOutStream);
    descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
        start local 1 // sun.security.ssl.HandshakeOutStream s
         0: .line 624
            aload 1 /* s */
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.type:Lsun/security/ssl/ExtensionType;
            getfield sun.security.ssl.ExtensionType.id:I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         1: .line 625
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            arraylength
            iconst_1
            ishl
            istore 2 /* k */
        start local 2 // int k
         2: .line 626
            aload 1 /* s */
            iload 2 /* k */
            iconst_2
            iadd
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         3: .line 627
            aload 1 /* s */
            iload 2 /* k */
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         4: .line 628
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension sun.security.ssl.HandshakeOutStream int top int int int[]
      StackMap stack:
         5: aload 6
            iload 4
            iaload
            istore 3 /* curveId */
        start local 3 // int curveId
         6: .line 629
            aload 1 /* s */
            iload 3 /* curveId */
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
        end local 3 // int curveId
         7: .line 628
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 5
         9: .line 631
            return
        end local 2 // int k
        end local 1 // sun.security.ssl.HandshakeOutStream s
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            0   10     1        s  Lsun/security/ssl/HandshakeOutStream;
            2   10     2        k  I
            6    7     3  curveId  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
         0: .line 634
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 635
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "Extension "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.type:Lsun/security/ssl/ExtensionType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", curve names: {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 636
            iconst_1
            istore 2 /* first */
        start local 2 // boolean first
         3: .line 637
            aload 0 /* this */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension.curveIds:[I
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 21
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension java.lang.StringBuilder int top int int int[]
      StackMap stack:
         4: aload 6
            iload 4
            iaload
            istore 3 /* curveId */
        start local 3 // int curveId
         5: .line 638
            iload 2 /* first */
            ifeq 8
         6: .line 639
            iconst_0
            istore 2 /* first */
         7: .line 640
            goto 9
         8: .line 641
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension java.lang.StringBuilder int int int int int[]
      StackMap stack:
            aload 1 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 643
      StackMap locals:
      StackMap stack:
            iload 3 /* curveId */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveName:(I)Ljava/lang/String;
            astore 7 /* curveName */
        start local 7 // java.lang.String curveName
        10: .line 644
            aload 7 /* curveName */
            ifnull 13
        11: .line 645
            aload 1 /* sb */
            aload 7 /* curveName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 646
            goto 20
      StackMap locals: java.lang.String
      StackMap stack:
        13: iload 3 /* curveId */
            ldc 65281
            if_icmpne 16
        14: .line 647
            aload 1 /* sb */
            ldc "arbitrary_explicit_prime_curves"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 648
            goto 20
      StackMap locals:
      StackMap stack:
        16: iload 3 /* curveId */
            ldc 65282
            if_icmpne 19
        17: .line 649
            aload 1 /* sb */
            ldc "arbitrary_explicit_char2_curves"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 650
            goto 20
        19: .line 651
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "unknown curve "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* curveId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String curveName
        end local 3 // int curveId
        20: .line 637
      StackMap locals: sun.security.ssl.SupportedEllipticCurvesExtension java.lang.StringBuilder int top int int int[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        21: iload 4
            iload 5
            if_icmplt 4
        22: .line 654
            aload 1 /* sb */
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 655
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean first
        end local 1 // java.lang.StringBuilder sb
        end local 0 // sun.security.ssl.SupportedEllipticCurvesExtension this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lsun/security/ssl/SupportedEllipticCurvesExtension;
            1   24     1         sb  Ljava/lang/StringBuilder;
            3   24     2      first  Z
            5   20     3    curveId  I
           10   20     7  curveName  Ljava/lang/String;

  static boolean isSupported(int);
    descriptor: (I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // int index
         0: .line 660
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.supportedCurveIds:[I
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: int top int int int[]
      StackMap stack:
         1: aload 4
            iload 2
            iaload
            istore 1 /* curveId */
        start local 1 // int curveId
         2: .line 661
            iload 0 /* index */
            iload 1 /* curveId */
            if_icmpne 4
         3: .line 662
            iconst_1
            ireturn
        end local 1 // int curveId
         4: .line 660
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 666
            iconst_0
            ireturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    index  I
            2    4     1  curveId  I
    MethodParameters:
       Name  Flags
      index  

  static int getCurveIndex(java.security.spec.ECParameterSpec);
    descriptor: (Ljava/security/spec/ECParameterSpec;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.security.spec.ECParameterSpec params
         0: .line 670
            aload 0 /* params */
            invokestatic sun.security.ssl.JsseJce.getNamedCurveOid:(Ljava/security/spec/ECParameterSpec;)Ljava/lang/String;
            astore 1 /* oid */
        start local 1 // java.lang.String oid
         1: .line 671
            aload 1 /* oid */
            ifnonnull 3
         2: .line 672
            iconst_m1
            ireturn
         3: .line 674
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.oidToIdMap:Ljava/util/Map;
            aload 1 /* oid */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* n */
        start local 2 // java.lang.Integer n
         4: .line 675
            aload 2 /* n */
            ifnonnull 5
            iconst_m1
            goto 6
      StackMap locals: java.lang.Integer
      StackMap stack:
         5: aload 2 /* n */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 2 // java.lang.Integer n
        end local 1 // java.lang.String oid
        end local 0 // java.security.spec.ECParameterSpec params
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  params  Ljava/security/spec/ECParameterSpec;
            1    7     1     oid  Ljava/lang/String;
            4    7     2       n  Ljava/lang/Integer;
    MethodParameters:
        Name  Flags
      params  

  static java.lang.String getCurveOid(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int index
         0: .line 679
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToOidMap:Ljava/util/Map;
            iload 0 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  index  I
    MethodParameters:
       Name  Flags
      index  

  static java.security.spec.ECGenParameterSpec getECGenParamSpec(int);
    descriptor: (I)Ljava/security/spec/ECGenParameterSpec;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // int index
         0: .line 683
            getstatic sun.security.ssl.SupportedEllipticCurvesExtension.idToParams:Ljava/util/Map;
            iload 0 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.AlgorithmParameters
            astore 1 /* params */
        start local 1 // java.security.AlgorithmParameters params
         1: .line 685
            aload 1 /* params */
            ldc Ljava/security/spec/ECGenParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast java.security.spec.ECGenParameterSpec
         2: areturn
         3: .line 686
      StackMap locals: int java.security.AlgorithmParameters
      StackMap stack: java.security.spec.InvalidParameterSpecException
            pop
         4: .line 688
            iload 0 /* index */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveOid:(I)Ljava/lang/String;
            astore 2 /* curveOid */
        start local 2 // java.lang.String curveOid
         5: .line 689
            new java.security.spec.ECGenParameterSpec
            dup
            aload 2 /* curveOid */
            invokespecial java.security.spec.ECGenParameterSpec.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String curveOid
        end local 1 // java.security.AlgorithmParameters params
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0     index  I
            1    6     1    params  Ljava/security/AlgorithmParameters;
            5    6     2  curveOid  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.spec.InvalidParameterSpecException
    MethodParameters:
       Name  Flags
      index  

  private static java.lang.String getCurveName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // int index
         0: .line 694
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.values:()[Lsun/security/ssl/SupportedEllipticCurvesExtension$NamedEllipticCurve;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: int top int int sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* namedCurve */
        start local 1 // sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve namedCurve
         2: .line 695
            aload 1 /* namedCurve */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.id:I
            iload 0 /* index */
            if_icmpne 4
         3: .line 696
            aload 1 /* namedCurve */
            getfield sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve.name:Ljava/lang/String;
            areturn
        end local 1 // sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve namedCurve
         4: .line 694
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 700
            aconst_null
            areturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0       index  I
            2    4     1  namedCurve  Lsun/security/ssl/SupportedEllipticCurvesExtension$NamedEllipticCurve;
    MethodParameters:
       Name  Flags
      index  
}
SourceFile: "HelloExtensions.java"
NestMembers:
  sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve
InnerClasses:
  private final NamedEllipticCurve = sun.security.ssl.SupportedEllipticCurvesExtension$NamedEllipticCurve of sun.security.ssl.SupportedEllipticCurvesExtension