public final class org.eclipse.aether.util.graph.transformer.ConflictResolver implements org.eclipse.aether.collection.DependencyGraphTransformer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.aether.util.graph.transformer.ConflictResolver
  super_class: java.lang.Object
{
  public static final java.lang.String CONFIG_PROP_VERBOSE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "aether.conflictResolver.verbose"

  public static final java.lang.String NODE_DATA_WINNER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conflict.winner"

  public static final java.lang.String NODE_DATA_ORIGINAL_SCOPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conflict.originalScope"

  public static final java.lang.String NODE_DATA_ORIGINAL_OPTIONALITY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conflict.originalOptionality"

  private final org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector;
    descriptor: Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$VersionSelector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector;
    descriptor: Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeSelector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver scopeDeriver;
    descriptor: Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeDeriver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector;
    descriptor: Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$OptionalitySelector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver);
    descriptor: (Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$VersionSelector;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeSelector;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$OptionalitySelector;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeDeriver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
        start local 1 // org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector
        start local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector
        start local 3 // org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector
        start local 4 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver scopeDeriver
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            aload 1 /* versionSelector */
            ldc "version selector cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector
            putfield org.eclipse.aether.util.graph.transformer.ConflictResolver.versionSelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$VersionSelector;
         2: .line 112
            aload 0 /* this */
            aload 2 /* scopeSelector */
            ldc "scope selector cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector
            putfield org.eclipse.aether.util.graph.transformer.ConflictResolver.scopeSelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeSelector;
         3: .line 113
            aload 0 /* this */
            aload 3 /* optionalitySelector */
            ldc "optionality selector cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector
            putfield org.eclipse.aether.util.graph.transformer.ConflictResolver.optionalitySelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$OptionalitySelector;
         4: .line 114
            aload 0 /* this */
            aload 4 /* scopeDeriver */
            ldc "scope deriver cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver
            putfield org.eclipse.aether.util.graph.transformer.ConflictResolver.scopeDeriver:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeDeriver;
         5: .line 115
            return
        end local 4 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver scopeDeriver
        end local 3 // org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector
        end local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector
        end local 1 // org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector
        end local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver;
            0    6     1      versionSelector  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$VersionSelector;
            0    6     2        scopeSelector  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeSelector;
            0    6     3  optionalitySelector  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$OptionalitySelector;
            0    6     4         scopeDeriver  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeDeriver;
    MethodParameters:
                     Name  Flags
      versionSelector      
      scopeSelector        
      optionalitySelector  
      scopeDeriver         

  public org.eclipse.aether.graph.DependencyNode transformGraph(org.eclipse.aether.graph.DependencyNode, org.eclipse.aether.collection.DependencyGraphTransformationContext);
    descriptor: (Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/collection/DependencyGraphTransformationContext;)Lorg/eclipse/aether/graph/DependencyNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=3
        start local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
        start local 1 // org.eclipse.aether.graph.DependencyNode node
        start local 2 // org.eclipse.aether.collection.DependencyGraphTransformationContext context
         0: .line 120
            aload 2 /* context */
            getstatic org.eclipse.aether.util.graph.transformer.TransformationContextKeys.SORTED_CONFLICT_IDS:Ljava/lang/Object;
            invokeinterface org.eclipse.aether.collection.DependencyGraphTransformationContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* sortedConflictIds */
        start local 3 // java.util.List sortedConflictIds
         1: .line 121
            aload 3 /* sortedConflictIds */
            ifnonnull 5
         2: .line 123
            new org.eclipse.aether.util.graph.transformer.ConflictIdSorter
            dup
            invokespecial org.eclipse.aether.util.graph.transformer.ConflictIdSorter.<init>:()V
            astore 4 /* sorter */
        start local 4 // org.eclipse.aether.util.graph.transformer.ConflictIdSorter sorter
         3: .line 124
            aload 4 /* sorter */
            aload 1 /* node */
            aload 2 /* context */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictIdSorter.transformGraph:(Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/collection/DependencyGraphTransformationContext;)Lorg/eclipse/aether/graph/DependencyNode;
            pop
         4: .line 126
            aload 2 /* context */
            getstatic org.eclipse.aether.util.graph.transformer.TransformationContextKeys.SORTED_CONFLICT_IDS:Ljava/lang/Object;
            invokeinterface org.eclipse.aether.collection.DependencyGraphTransformationContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* sortedConflictIds */
        end local 4 // org.eclipse.aether.util.graph.transformer.ConflictIdSorter sorter
         5: .line 130
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* context */
            getstatic org.eclipse.aether.util.graph.transformer.TransformationContextKeys.STATS:Ljava/lang/Object;
            invokeinterface org.eclipse.aether.collection.DependencyGraphTransformationContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 4 /* stats */
        start local 4 // java.util.Map stats
         6: .line 131
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* time1 */
        start local 5 // long time1
         7: .line 135
            aload 2 /* context */
            getstatic org.eclipse.aether.util.graph.transformer.TransformationContextKeys.CYCLIC_CONFLICT_IDS:Ljava/lang/Object;
            invokeinterface org.eclipse.aether.collection.DependencyGraphTransformationContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
         8: .line 134
            astore 7 /* conflictIdCycles */
        start local 7 // java.util.Collection conflictIdCycles
         9: .line 136
            aload 7 /* conflictIdCycles */
            ifnonnull 11
        10: .line 138
            new org.eclipse.aether.RepositoryException
            dup
            ldc "conflict id cycles have not been identified"
            invokespecial org.eclipse.aether.RepositoryException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 141
      StackMap locals: java.util.Map long java.util.Collection
      StackMap stack:
            aload 2 /* context */
            getstatic org.eclipse.aether.util.graph.transformer.TransformationContextKeys.CONFLICT_IDS:Ljava/lang/Object;
            invokeinterface org.eclipse.aether.collection.DependencyGraphTransformationContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 8 /* conflictIds */
        start local 8 // java.util.Map conflictIds
        12: .line 142
            aload 8 /* conflictIds */
            ifnonnull 14
        13: .line 144
            new org.eclipse.aether.RepositoryException
            dup
            ldc "conflict groups have not been identified"
            invokespecial org.eclipse.aether.RepositoryException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 147
      StackMap locals: java.util.Map
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 9 /* cyclicPredecessors */
        start local 9 // java.util.Map cyclicPredecessors
        15: .line 148
            aload 7 /* conflictIdCycles */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 25
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        16: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 10 /* cycle */
        start local 10 // java.util.Collection cycle
        17: .line 150
            aload 10 /* cycle */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 13
            goto 24
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map java.util.Collection java.util.Iterator top java.util.Iterator
      StackMap stack:
        18: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 12 /* conflictId */
        start local 12 // java.lang.Object conflictId
        19: .line 152
            aload 9 /* cyclicPredecessors */
            aload 12 /* conflictId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            astore 14 /* predecessors */
        start local 14 // java.util.Collection predecessors
        20: .line 153
            aload 14 /* predecessors */
            ifnonnull 23
        21: .line 155
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 14 /* predecessors */
        22: .line 156
            aload 9 /* cyclicPredecessors */
            aload 12 /* conflictId */
            aload 14 /* predecessors */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 158
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map java.util.Collection java.util.Iterator java.lang.Object java.util.Iterator java.util.Collection
      StackMap stack:
            aload 14 /* predecessors */
            aload 10 /* cycle */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        end local 14 // java.util.Collection predecessors
        end local 12 // java.lang.Object conflictId
        24: .line 150
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map java.util.Collection java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 10 // java.util.Collection cycle
        25: .line 148
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        26: .line 162
            new org.eclipse.aether.util.graph.transformer.ConflictResolver$State
            dup
            aload 0 /* this */
            aload 1 /* node */
            aload 8 /* conflictIds */
            aload 3 /* sortedConflictIds */
            invokeinterface java.util.List.size:()I
            aload 2 /* context */
            invokespecial org.eclipse.aether.util.graph.transformer.ConflictResolver$State.<init>:(Lorg/eclipse/aether/util/graph/transformer/ConflictResolver;Lorg/eclipse/aether/graph/DependencyNode;Ljava/util/Map;ILorg/eclipse/aether/collection/DependencyGraphTransformationContext;)V
            astore 10 /* state */
        start local 10 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
        27: .line 163
            aload 3 /* sortedConflictIds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11 /* it */
        start local 11 // java.util.Iterator it
        28: goto 53
        29: .line 165
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.graph.DependencyNode org.eclipse.aether.collection.DependencyGraphTransformationContext java.util.List java.util.Map long java.util.Collection java.util.Map java.util.Map org.eclipse.aether.util.graph.transformer.ConflictResolver$State java.util.Iterator
      StackMap stack:
            aload 11 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 12 /* conflictId */
        start local 12 // java.lang.Object conflictId
        30: .line 168
            aload 10 /* state */
            aload 12 /* conflictId */
            aload 9 /* cyclicPredecessors */
            aload 12 /* conflictId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.prepare:(Ljava/lang/Object;Ljava/util/Collection;)V
        31: .line 171
            aload 0 /* this */
            aload 1 /* node */
            aload 10 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver.gatherConflictItems:(Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)Z
            pop
        32: .line 174
            aload 10 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.finish:()V
        33: .line 177
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.items:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 48
        34: .line 179
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.conflictCtx:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;
            astore 13 /* ctx */
        start local 13 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext ctx
        35: .line 180
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.versionSelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$VersionSelector;
            aload 13 /* ctx */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector.selectVersion:(Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;)V
        36: .line 181
            aload 13 /* ctx */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.winner:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            ifnonnull 38
        37: .line 183
            new org.eclipse.aether.RepositoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "conflict resolver did not select winner among "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.items:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.eclipse.aether.RepositoryException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 185
      StackMap locals: java.lang.Object org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext
      StackMap stack:
            aload 13 /* ctx */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.winner:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.node:Lorg/eclipse/aether/graph/DependencyNode;
            astore 14 /* winner */
        start local 14 // org.eclipse.aether.graph.DependencyNode winner
        39: .line 187
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.scopeSelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ScopeSelector;
            aload 13 /* ctx */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector.selectScope:(Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;)V
        40: .line 188
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.verbose:Z
            ifeq 42
        41: .line 190
            aload 14 /* winner */
            ldc "conflict.originalScope"
            aload 14 /* winner */
            invokeinterface org.eclipse.aether.graph.DependencyNode.getDependency:()Lorg/eclipse/aether/graph/Dependency;
            invokevirtual org.eclipse.aether.graph.Dependency.getScope:()Ljava/lang/String;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setData:(Ljava/lang/Object;Ljava/lang/Object;)V
        42: .line 192
      StackMap locals: org.eclipse.aether.graph.DependencyNode
      StackMap stack:
            aload 14 /* winner */
            aload 13 /* ctx */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.scope:Ljava/lang/String;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setScope:(Ljava/lang/String;)V
        43: .line 194
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.optionalitySelector:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$OptionalitySelector;
            aload 13 /* ctx */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector.selectOptionality:(Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;)V
        44: .line 195
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.verbose:Z
            ifeq 46
        45: .line 197
            aload 14 /* winner */
            ldc "conflict.originalOptionality"
            aload 14 /* winner */
            invokeinterface org.eclipse.aether.graph.DependencyNode.getDependency:()Lorg/eclipse/aether/graph/Dependency;
            invokevirtual org.eclipse.aether.graph.Dependency.isOptional:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setData:(Ljava/lang/Object;Ljava/lang/Object;)V
        46: .line 199
      StackMap locals:
      StackMap stack:
            aload 14 /* winner */
            aload 13 /* ctx */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.optional:Ljava/lang/Boolean;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setOptional:(Ljava/lang/Boolean;)V
        47: .line 201
            aload 0 /* this */
            aload 10 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver.removeLosers:(Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)V
        end local 14 // org.eclipse.aether.graph.DependencyNode winner
        end local 13 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext ctx
        48: .line 205
      StackMap locals:
      StackMap stack:
            aload 10 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.winner:()V
        49: .line 208
            aload 11 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 53
            aload 7 /* conflictIdCycles */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 53
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.conflictCtx:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.winner:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            ifnull 53
        50: .line 210
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.conflictCtx:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.winner:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.node:Lorg/eclipse/aether/graph/DependencyNode;
            astore 13 /* winner */
        start local 13 // org.eclipse.aether.graph.DependencyNode winner
        51: .line 211
            aload 10 /* state */
            aload 10 /* state */
            aconst_null
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.prepare:(Ljava/lang/Object;Ljava/util/Collection;)V
        52: .line 212
            aload 0 /* this */
            aload 13 /* winner */
            aload 10 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver.gatherConflictItems:(Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)Z
            pop
        end local 13 // org.eclipse.aether.graph.DependencyNode winner
        end local 12 // java.lang.Object conflictId
        53: .line 163
      StackMap locals:
      StackMap stack:
            aload 11 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        end local 11 // java.util.Iterator it
        54: .line 216
            aload 4 /* stats */
            ifnull 58
        55: .line 218
            invokestatic java.lang.System.nanoTime:()J
            lstore 11 /* time2 */
        start local 11 // long time2
        56: .line 219
            aload 4 /* stats */
            ldc "ConflictResolver.totalTime"
            lload 11 /* time2 */
            lload 5 /* time1 */
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        57: .line 220
            aload 4 /* stats */
            ldc "ConflictResolver.conflictItemCount"
            aload 10 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.totalConflictItems:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // long time2
        58: .line 223
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            areturn
        end local 10 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
        end local 9 // java.util.Map cyclicPredecessors
        end local 8 // java.util.Map conflictIds
        end local 7 // java.util.Collection conflictIdCycles
        end local 5 // long time1
        end local 4 // java.util.Map stats
        end local 3 // java.util.List sortedConflictIds
        end local 2 // org.eclipse.aether.collection.DependencyGraphTransformationContext context
        end local 1 // org.eclipse.aether.graph.DependencyNode node
        end local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   59     0                this  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver;
            0   59     1                node  Lorg/eclipse/aether/graph/DependencyNode;
            0   59     2             context  Lorg/eclipse/aether/collection/DependencyGraphTransformationContext;
            1   59     3   sortedConflictIds  Ljava/util/List<*>;
            3    5     4              sorter  Lorg/eclipse/aether/util/graph/transformer/ConflictIdSorter;
            6   59     4               stats  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            7   59     5               time1  J
            9   59     7    conflictIdCycles  Ljava/util/Collection<Ljava/util/Collection<*>;>;
           12   59     8         conflictIds  Ljava/util/Map<**>;
           15   59     9  cyclicPredecessors  Ljava/util/Map<Ljava/lang/Object;Ljava/util/Collection<Ljava/lang/Object;>;>;
           17   25    10               cycle  Ljava/util/Collection<*>;
           19   24    12          conflictId  Ljava/lang/Object;
           20   24    14        predecessors  Ljava/util/Collection<Ljava/lang/Object;>;
           27   59    10               state  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;
           28   54    11                  it  Ljava/util/Iterator<*>;
           30   53    12          conflictId  Ljava/lang/Object;
           35   48    13                 ctx  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;
           39   48    14              winner  Lorg/eclipse/aether/graph/DependencyNode;
           51   53    13              winner  Lorg/eclipse/aether/graph/DependencyNode;
           56   58    11               time2  J
    Exceptions:
      throws org.eclipse.aether.RepositoryException
    MethodParameters:
         Name  Flags
      node     
      context  

  private boolean gatherConflictItems(org.eclipse.aether.graph.DependencyNode, org.eclipse.aether.util.graph.transformer.ConflictResolver$State);
    descriptor: (Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
        start local 1 // org.eclipse.aether.graph.DependencyNode node
        start local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
         0: .line 229
            aload 2 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.conflictIds:Ljava/util/Map;
            aload 1 /* node */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* conflictId */
        start local 3 // java.lang.Object conflictId
         1: .line 230
            aload 2 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.currentId:Ljava/lang/Object;
            aload 3 /* conflictId */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 233
            aload 2 /* state */
            aload 1 /* node */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.add:(Lorg/eclipse/aether/graph/DependencyNode;)V
         3: .line 235
            goto 14
         4: .line 236
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* state */
            aload 1 /* node */
            aload 3 /* conflictId */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.loser:(Lorg/eclipse/aether/graph/DependencyNode;Ljava/lang/Object;)Z
            ifeq 6
         5: .line 239
            iconst_0
            ireturn
         6: .line 241
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aload 1 /* node */
            aload 3 /* conflictId */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.push:(Lorg/eclipse/aether/graph/DependencyNode;Ljava/lang/Object;)Z
            ifeq 14
         7: .line 244
            aload 1 /* node */
            invokeinterface org.eclipse.aether.graph.DependencyNode.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
         8: goto 12
         9: .line 246
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.aether.graph.DependencyNode
            astore 5 /* child */
        start local 5 // org.eclipse.aether.graph.DependencyNode child
        10: .line 247
            aload 0 /* this */
            aload 5 /* child */
            aload 2 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver.gatherConflictItems:(Lorg/eclipse/aether/graph/DependencyNode;Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)Z
            ifne 12
        11: .line 249
            aload 4 /* it */
            invokeinterface java.util.Iterator.remove:()V
        end local 5 // org.eclipse.aether.graph.DependencyNode child
        12: .line 244
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 4 // java.util.Iterator it
        13: .line 252
            aload 2 /* state */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$State.pop:()V
        14: .line 254
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Object conflictId
        end local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
        end local 1 // org.eclipse.aether.graph.DependencyNode node
        end local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver;
            0   15     1        node  Lorg/eclipse/aether/graph/DependencyNode;
            0   15     2       state  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;
            1   15     3  conflictId  Ljava/lang/Object;
            8   13     4          it  Ljava/util/Iterator<Lorg/eclipse/aether/graph/DependencyNode;>;
           10   12     5       child  Lorg/eclipse/aether/graph/DependencyNode;
    Exceptions:
      throws org.eclipse.aether.RepositoryException
    MethodParameters:
       Name  Flags
      node   
      state  

  private void removeLosers(org.eclipse.aether.util.graph.transformer.ConflictResolver$State);
    descriptor: (Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
        start local 1 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
         0: .line 259
            aload 1 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.conflictCtx:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictContext;
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.winner:Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            astore 2 /* winner */
        start local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner
         1: .line 260
            aconst_null
            astore 3 /* previousParent */
        start local 3 // java.util.List previousParent
         2: .line 261
            aconst_null
            astore 4 /* childIt */
        start local 4 // java.util.ListIterator childIt
         3: .line 262
            iconst_0
            istore 5 /* conflictVisualized */
        start local 5 // boolean conflictVisualized
         4: .line 263
            aload 1 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.items:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 28
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.util.graph.transformer.ConflictResolver$State org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem java.util.List java.util.ListIterator int top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem
            astore 6 /* item */
        start local 6 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem item
         6: .line 265
            aload 6 /* item */
            aload 2 /* winner */
            if_acmpne 8
         7: .line 267
            goto 28
         8: .line 269
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.util.graph.transformer.ConflictResolver$State org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem java.util.List java.util.ListIterator int org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem java.util.Iterator
      StackMap stack:
            aload 6 /* item */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.parent:Ljava/util/List;
            aload 3 /* previousParent */
            if_acmpeq 27
         9: .line 271
            aload 6 /* item */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.parent:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 4 /* childIt */
        10: .line 272
            aload 6 /* item */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.parent:Ljava/util/List;
            astore 3 /* previousParent */
        11: .line 273
            iconst_0
            istore 5 /* conflictVisualized */
        12: .line 275
            goto 27
        13: .line 277
      StackMap locals:
      StackMap stack:
            aload 4 /* childIt */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.aether.graph.DependencyNode
            astore 8 /* child */
        start local 8 // org.eclipse.aether.graph.DependencyNode child
        14: .line 278
            aload 8 /* child */
            aload 6 /* item */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.node:Lorg/eclipse/aether/graph/DependencyNode;
            if_acmpne 27
        15: .line 280
            aload 1 /* state */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$State.verbose:Z
            ifeq 25
            iload 5 /* conflictVisualized */
            ifne 25
            aload 6 /* item */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.parent:Ljava/util/List;
            aload 2 /* winner */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.parent:Ljava/util/List;
            if_acmpeq 25
        16: .line 282
            iconst_1
            istore 5 /* conflictVisualized */
        17: .line 283
            new org.eclipse.aether.graph.DefaultDependencyNode
            dup
            aload 8 /* child */
            invokespecial org.eclipse.aether.graph.DefaultDependencyNode.<init>:(Lorg/eclipse/aether/graph/DependencyNode;)V
            astore 9 /* loser */
        start local 9 // org.eclipse.aether.graph.DependencyNode loser
        18: .line 284
            aload 9 /* loser */
            ldc "conflict.winner"
            aload 2 /* winner */
            getfield org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.node:Lorg/eclipse/aether/graph/DependencyNode;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setData:(Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 285
            aload 9 /* loser */
            ldc "conflict.originalScope"
            aload 9 /* loser */
            invokeinterface org.eclipse.aether.graph.DependencyNode.getDependency:()Lorg/eclipse/aether/graph/Dependency;
            invokevirtual org.eclipse.aether.graph.Dependency.getScope:()Ljava/lang/String;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setData:(Ljava/lang/Object;Ljava/lang/Object;)V
        20: .line 286
            aload 9 /* loser */
            ldc "conflict.originalOptionality"
            aload 9 /* loser */
            invokeinterface org.eclipse.aether.graph.DependencyNode.getDependency:()Lorg/eclipse/aether/graph/Dependency;
            invokevirtual org.eclipse.aether.graph.Dependency.isOptional:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setData:(Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 287
            aload 9 /* loser */
            aload 6 /* item */
            invokevirtual org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem.getScopes:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.eclipse.aether.graph.DependencyNode.setScope:(Ljava/lang/String;)V
        22: .line 288
            aload 9 /* loser */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface org.eclipse.aether.graph.DependencyNode.setChildren:(Ljava/util/List;)V
        23: .line 289
            aload 4 /* childIt */
            aload 9 /* loser */
            invokeinterface java.util.ListIterator.set:(Ljava/lang/Object;)V
        end local 9 // org.eclipse.aether.graph.DependencyNode loser
        24: .line 290
            goto 28
        25: .line 293
      StackMap locals: org.eclipse.aether.graph.DependencyNode
      StackMap stack:
            aload 4 /* childIt */
            invokeinterface java.util.ListIterator.remove:()V
        26: .line 295
            goto 28
        end local 8 // org.eclipse.aether.graph.DependencyNode child
        27: .line 275
      StackMap locals:
      StackMap stack:
            aload 4 /* childIt */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 13
        end local 6 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem item
        28: .line 263
      StackMap locals: org.eclipse.aether.util.graph.transformer.ConflictResolver org.eclipse.aether.util.graph.transformer.ConflictResolver$State org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem java.util.List java.util.ListIterator int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        29: .line 301
            return
        end local 5 // boolean conflictVisualized
        end local 4 // java.util.ListIterator childIt
        end local 3 // java.util.List previousParent
        end local 2 // org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner
        end local 1 // org.eclipse.aether.util.graph.transformer.ConflictResolver$State state
        end local 0 // org.eclipse.aether.util.graph.transformer.ConflictResolver this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   30     0                this  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver;
            0   30     1               state  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$State;
            1   30     2              winner  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
            2   30     3      previousParent  Ljava/util/List<Lorg/eclipse/aether/graph/DependencyNode;>;
            3   30     4             childIt  Ljava/util/ListIterator<Lorg/eclipse/aether/graph/DependencyNode;>;
            4   30     5  conflictVisualized  Z
            6   28     6                item  Lorg/eclipse/aether/util/graph/transformer/ConflictResolver$ConflictItem;
           14   27     8               child  Lorg/eclipse/aether/graph/DependencyNode;
           18   24     9               loser  Lorg/eclipse/aether/graph/DependencyNode;
    MethodParameters:
       Name  Flags
      state  
}
SourceFile: "ConflictResolver.java"
NestMembers:
  org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext  org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem  org.eclipse.aether.util.graph.transformer.ConflictResolver$NodeInfo  org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector  org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeContext  org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver  org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector  org.eclipse.aether.util.graph.transformer.ConflictResolver$State  org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector
InnerClasses:
  public final ConflictContext = org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public final ConflictItem = org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem of org.eclipse.aether.util.graph.transformer.ConflictResolver
  final NodeInfo = org.eclipse.aether.util.graph.transformer.ConflictResolver$NodeInfo of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public abstract OptionalitySelector = org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public final ScopeContext = org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeContext of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public abstract ScopeDeriver = org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public abstract ScopeSelector = org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector of org.eclipse.aether.util.graph.transformer.ConflictResolver
  final State = org.eclipse.aether.util.graph.transformer.ConflictResolver$State of org.eclipse.aether.util.graph.transformer.ConflictResolver
  public abstract VersionSelector = org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector of org.eclipse.aether.util.graph.transformer.ConflictResolver