code: func UpdateServiceMap(serviceMap ServiceMap, changes *ServiceChangeTracker) (result UpdateServiceMapResult) {
  	result.UDPStaleClusterIP = sets.NewString()
  	serviceMap.apply(changes, result.UDPStaleClusterIP)
  
  	// TODO: If this will appear to be computationally expensive, consider
  	// computing this incrementally similarly to serviceMap.
  	result.HCServiceNodePorts = make(map[types.NamespacedName]uint16)
  	for svcPortName, info := range serviceMap {
  		if info.GetHealthCheckNodePort() != 0 {
  			result.HCServiceNodePorts[svcPortName.NamespacedName] = uint16(info.GetHealthCheckNodePort())
  		}
  	}
  
  	return result
  }
docs: // UpdateServiceMap updates ServiceMap based on the given changes.