void write(XmlWriter writer, AddressSetView set, TaskMonitor monitor) throws CancelledException {
		monitor.setMessage("Getting ENTRY POINTS ...");
		writer.startElement("PROGRAM_ENTRY_POINTS"); 
		AddressIterator iter = symbolTable.getExternalEntryPointIterator();
		ArrayList<Address> list = new ArrayList<Address>();
		while (iter.hasNext()) {
			if (monitor.isCancelled()) {
				throw new CancelledException();	
			}
			list.add(iter.next());

		}
		monitor.setMessage("Sorting ENTRY POINTS ...");
		Collections.sort(list);
		monitor.setMessage("Writing ENTRY POINTS ...");
		Iterator<Address> listIter = list.iterator();
		while (listIter.hasNext()) {
			if (monitor.isCancelled()) {
				throw new CancelledException();	
			}
		    Address addr = listIter.next();
			if (set == null || set.contains(addr)) {
				XmlAttributes attrs = new XmlAttributes();
				attrs.addAttribute("ADDRESS", addr.toString()); 
				writer.startElement("PROGRAM_ENTRY_POINT", attrs);
				writer.endElement("PROGRAM_ENTRY_POINT");
			}
		}
		writer.endElement("PROGRAM_ENTRY_POINTS");
	}
Write out the XML for the external entry points.
@param writer writer for XML
@param set address set that is either the entire program or a selection
@param monitor monitor that can be canceled
should be written
@throws IOException
Ghidra/Features/Base/src/main/java/ghidra/app/util/xml/ExtEntryPointXmlMgr.java