code: def _compute_jars_to_resolve_and_pin(raw_jars, artifact_set, manager):
      
      if artifact_set is None:
        artifact_set = PinnedJarArtifactSet()
  
      untouched_pinned_artifact = {M2Coordinate.create(x) for x in artifact_set}
      jar_list = list(raw_jars)
      for i, dep in enumerate(jar_list):
        direct_coord = M2Coordinate.create(dep)
        # Portion to manage pinned jars in case of conflict
        if direct_coord in artifact_set:
          managed_coord = artifact_set[direct_coord]
          untouched_pinned_artifact.remove(managed_coord)
  
          if direct_coord.rev != managed_coord.rev:
            # It may be necessary to actually change the version number of the jar we want to resolve
            # here, because overrides do not apply directly (they are exclusively transitive). This is
            # actually a good thing, because it gives us more control over what happens.
            coord = manager.resolve_version_conflict(managed_coord, direct_coord, force=dep.force)
  
            # Once a version is settled, we force it anyway
            jar_list[i] = dep.copy(rev=coord.rev, force=True)
  
      return jar_list, untouched_pinned_artifact
docs: This method provides settled lists of jar dependencies and coordinates
      based on conflict management.
  
      :param raw_jars: a collection of `JarDependencies`
      :param artifact_set: PinnedJarArtifactSet
      :param manager: JarDependencyManagement
      :return: (list of settled `JarDependency`, set of pinned `M2Coordinate`)