@Override
  public char charAt(int index) {
    InnerLeaf leaf = myLastLeaf;
    if (leaf == null || index < leaf.start || index >= leaf.end) {
      myLastLeaf = leaf = findLeaf(index);
    }
    return leaf.leafNode.charAt(index - leaf.start);
  }
@Override
  public char charAt(int index)