new commit from upstream

new commit from upstream, while some local changes have been made.
merge with upstream