docs: public String getEffectiveTldPlusOne(String domain) {
      if (domain == null) throw new NullPointerException("domain == null");
  
      // We use UTF-8 in the list so we need to convert to Unicode.
      String unicodeDomain = IDN.toUnicode(domain);
      String[] domainLabels = unicodeDomain.split("\\.");
      String[] rule = findMatchingRule(domainLabels);
      if (domainLabels.length == rule.length && rule[0].charAt(0) != EXCEPTION_MARKER) {
        // The domain is a public suffix.
        return null;
      }
  
      int firstLabelOffset;
      if (rule[0].charAt(0) == EXCEPTION_MARKER) {
        // Exception rules hold the effective TLD plus one.
        firstLabelOffset = domainLabels.length - rule.length;
      } else {
        // Otherwise the rule is for a public suffix, so we must take one more label.
        firstLabelOffset = domainLabels.length - (rule.length + 1);
      }
  
      StringBuilder effectiveTldPlusOne = new StringBuilder();
      String[] punycodeLabels = domain.split("\\.");
      for (int i = firstLabelOffset; i < punycodeLabels.length; i++) {
        effectiveTldPlusOne.append(punycodeLabels[i]).append('.');
      }
      effectiveTldPlusOne.deleteCharAt(effectiveTldPlusOne.length() - 1);
  
      return effectiveTldPlusOne.toString();
    }