Copyright (c) 2010-2021 Daniel Nouri, Andreas Kaiser and Contributors.
All Rights Reserved
