anchor.diff:          Items : NugetV3CatalogPageItem []
       }
   
  -type NugetV3CatalogIndex =
  -    {   [<JsonProperty("commitId")>]
  -        CommitId : string
  -        [<JsonProperty("commitTimeStamp")>]
  -        CommitTimeStamp : DateTimeOffset
  -        [<JsonProperty("count")>]
  -        Count : int
  -        [<JsonProperty("items")>]
  -        Items : NugetV3CatalogIndexItem []
  -    }
  -
  -/// [omit]
  -let private getCatalogIndex auth nugetUrl cancel =
  -    let catalogApi = getCatalogAPI auth nugetUrl
  -    let indexResponse =
  -        async {
  -            return! safeGetFromUrl (auth, catalogApi, acceptJson)
  -        } |> (fun future ->
  -            Async.StartAsTaskProperCancel(future,TaskCreationOptions.None,cancel))
  -    match indexResponse.Result with
  -    | NotFound -> failwith "Catalog/3.0 Index NotFound/404"; ""
  -    | Unauthorized -> failwith "Catalog/3.0 Index Unauthorized/401"; ""
  -    | UnknownError e -> failwithf "Catalog/3.0 Index N/A %A" e; ""
  -    | SuccessResponse s -> s
  -    |> JsonConvert.DeserializeObject<NugetV3CatalogIndex>
   
   let private getHostSpecificFileName fromUrl =
       let normalizeFileName name =
  
positive.code: type NugetV3ResourceType =
      | AutoComplete
      | AllVersionsAPI
      //| Registration
      | PackageIndex
      | Catalog
      static member All = [ AutoComplete; AllVersionsAPI; PackageIndex; Catalog ]
      member this.AsString =
          match this with
          | AutoComplete -> "SearchAutoCompleteService"
          | AllVersionsAPI -> "PackageBaseAddress"
          | PackageIndex -> "RegistrationsBaseUrl"
          | Catalog -> "Catalog"
      member this.AcceptedVersions =
          match this with
          | AutoComplete -> None :: ([ "3.0.0-rc"; "3.0.0-beta" ] |> List.map (SemVer.Parse >> Some))
          | AllVersionsAPI -> None :: [ Some (SemVer.Parse "3.0.0") ]
          // prefer 3.6.0 as it includes semver packages.
          | PackageIndex -> None :: ([ "3.6.0"; "3.4.0"; "3.0.0-rc"; "3.0.0-beta" ] |> List.map (SemVer.Parse >> Some))
          | Catalog -> None :: [ Some (SemVer.Parse "3.0.0") ]
  
  // Cache for nuget indices of sources
  type ResourceIndex = Map<NugetV3ResourceType,string>
  
negative.code: 
      nextFile.Replace(fileInfo.FullName,backFile,true).Exists
  
  
  /// [omit]
  let extractAutoCompleteVersions(response:string) =
  