@Override
  public void start(final @NotNull CharSequence buffer, final int startOffset, final int endOffset, final int initialState) {
    super.start(buffer, startOffset, endOffset, initialState & BASE_STATE_MASK);
    if ((initialState & CONTENT_PROVIDER_HAS_STATE) != 0) {
      throw new IllegalStateException(
        "Cannot restore HTML Lexer to a position, in which an embedded content provider has state. Use restoreLocation() method.");
    }
    isWithinTag = (initialState & IS_WITHIN_TAG_STATE) != 0;
    myHtmlEmbedmentInfo = null;
    myEmbeddedContentProviders.forEach(provider -> provider.restoreState(null));
    broadcastToken();
  }
@Override
  public void start(final @NotNull CharSequence buffer, final int startOffset, final int endOffset, final int initialState)