linear mask retention

unit test

review changes

review changes

review changes

new init

license header