code: public Trie2Writable setRange(Trie2.Range range, boolean overwrite) {
            fHash = 0;
            if (range.leadSurrogate) {
                for (int c=range.startCodePoint; c<=range.endCodePoint; c++) {
                    if (overwrite || getFromU16SingleLead((char)c) == this.initialValue)  {
                        setForLeadSurrogateCodeUnit((char)c, range.value); 
                    }
                }
            } else {
                setRange(range.startCodePoint, range.endCodePoint, range.value, overwrite);
            }
            return this;
        }
docs: Set the values from a Trie2.Range.
  
  All code points within the range will get the value if
  overwrite is TRUE or if the old value is the initial value.
  
  Ranges with the lead surrogate flag set will set the alternate
  lead-surrogate values in the Trie, rather than the code point values.
  
  This function is intended to work with the ranges produced when iterating
  the contents of a source Trie.
  
  @param range contains the range of code points and the value to be set.
  @param overwrite flag for whether old non-initial values are to be overwritten