Copyright (c) 2023 Stefan Haustein and Aaron Liu This program is free software: you may copy, redistribute and/or modify it under the terms of (at your option) either the Apache License, Version 2.0, or the GNU General Public License as published by the Free Software Foundation, version 3, or any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see either for the Apache License, Version 2.0 , or for the GNU GPL, version 3.