@Override
    public void endElement(String nsURI, String strippedName, String tagName) throws SAXException {
      strippedName = strippedName.trim();
      String name = strippedName.length() == 0 ? tagName.trim() : strippedName;

      if (name.equalsIgnoreCase("across")) {
        inAcross = false;
      } else if (name.equalsIgnoreCase("down")) {
        inDown = false;
      } else if (name.equalsIgnoreCase("crossword")) {
        int numberOfClues = acrossNumToClueMap.size() + downNumToClueMap.size();
        puz.setNumberOfClues(numberOfClues);
        String[] rawClues = new String[numberOfClues];
        int i = 0;
        for (int clueNum = 1; clueNum <= maxClueNum; clueNum++) {
          String clue = acrossNumToClueMap.get(clueNum);
          if (clue != null) {
            rawClues[i] = clue;
            i++;
          }

          clue = downNumToClueMap.get(clueNum);
          if (clue != null) {
            rawClues[i] = clue;
            i++;
          }
        }
        puz.setRawClues(rawClues);
      }
    }