docs: def publishMap(self, maps_info, fsInfo=None, itInfo=None):
          """Publishes a list of maps.
          
          Args:
              maps_info (list): A list of JSON configuration maps to publish.
          
          Returns:
              list: A list of results from :py:meth:`arcrest.manageorg._content.UserItem.updateItem`.
              
          """
          if self.securityhandler is None:
              print ("Security handler required")
              return
          itemInfo = None
          itemId = None
          map_results = None
          replaceInfo = None
          replaceItem = None
          map_info = None
          admin = None
          try:
              admin = arcrest.manageorg.Administration(securityHandler=self._securityHandler)
              map_results = []
              for map_info in maps_info:
                  itemInfo = {}
  
                  if 'ReplaceInfo' in map_info:
                      replaceInfo = map_info['ReplaceInfo']
                  else:
                      replaceInfo = None
  
  
                  if replaceInfo != None:
  
                      for replaceItem in replaceInfo:
                          if replaceItem['ReplaceType'] == 'Layer':
  
                              if fsInfo is not None:
  
                                  for fs in fsInfo:
                                      if fs is not None and replaceItem['ReplaceString'] == fs['ReplaceTag']:
                                          replaceItem['ReplaceString'] = fs['FSInfo']['url']
                                          replaceItem['ItemID'] = fs['FSInfo']['itemId']
                                          replaceItem['ItemFolder'] = fs['FSInfo']['folderId']
                                          if 'convertCase' in fs['FSInfo']:
                                              replaceItem['convertCase'] = fs['FSInfo']['convertCase']
                                      elif 'ItemID' in replaceItem:
                                          if 'ItemFolder' in replaceItem == False:
  
                                              itemId = replaceItem['ItemID']
                                              itemInfo = admin.content.getItem(itemId=itemId)
                                              if itemInfo.owner:
                                                  if itemInfo.owner == self._securityHandler.username and itemInfo.ownerFolder:
                                                      replaceItem['ItemFolder'] = itemInfo.ownerFolder
                                                  else:
                                                      replaceItem['ItemFolder'] = None
                          elif replaceItem['ReplaceType'] == 'Global':
  
                              if itInfo is not None:
  
                                  for itm in itInfo:
                                      if itm is not None:
  
                                          if replaceItem['ReplaceString'] == itm['ReplaceTag']:
                                              if 'ItemInfo' in itm:
                                                  if 'url' in itm['ItemInfo']:
                                                      replaceItem['ReplaceString'] = itm['ItemInfo']['url']
  
  
                  if 'ReplaceTag' in map_info:
  
                      itemInfo = {"ReplaceTag":map_info['ReplaceTag'] }
                  else:
                      itemInfo = {"ReplaceTag":"{WebMap}" }
  
                  itemInfo['MapInfo']  = self._publishMap(config=map_info,
                                                     replaceInfo=replaceInfo)
                  map_results.append(itemInfo)
                  print ("%s webmap created" % itemInfo['MapInfo']['Name'])
              return map_results
  
          except common.ArcRestHelperError as e:
              raise e
          except Exception as e:
  
              line, filename, synerror = trace()
              raise common.ArcRestHelperError({
                   "function": "publishMap",
                   "line": line,
                   "filename":  filename,
                   "synerror": synerror,
              })
          finally:
              itemInfo = None
              itemId = None
              replaceInfo = None
              replaceItem = None
              map_info = None
              admin = None
  
              del itemInfo
              del itemId
              del replaceInfo
              del replaceItem
              del map_info
              del admin
  
              gc.collect()