SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: project
DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-8232bb14-6222-45df-bd62-a0afdd7c0eae
Creator: Person: Anonymous ()
Creator: Organization: Anonymous ()
Creator: Tool: reuse-6.1.0
Created: 2026-03-30T17:14:07Z
CreatorComment: This document was created automatically using available reuse information consistent with REUSE.
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7cae9d43a2c57f31c16395b7bc469d6d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7ed4336c28af8b6b2819b85409b921a7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ca35af8eae6e32b107bf02a22b281224
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-303473b19b51f975940a7004103effb6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2f968f84e3fa29652a27b21cfaddd93d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8f661251fe2bd7874bd9cf0f1c300e71
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-41cbba1d67b1d98071c193b5c285fff8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3b4a765830de6b9647dddc01b2fcd20c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b594eefb3e3aac78d70176120a99c1bc
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-054ac652dd40d7d63fff5a704bd00b8c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7ded4b69706e457d3d24c032df7ac545
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8c2757c8b4663760dcd18c1adcedb0d5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f68ab46c6bd51c6e86b0447c0bbb9cdd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aea8cb9e7621f4844514cf9e2c2bc3a2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5a80defbe733a7f48d24de3d2238e035
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-364a6c432b3ea17db34935825ed55357
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3e71062622dd3aec2f1e03012831998b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8f5fba447c93c25b1ec8055af6d9868c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-59dfd8f7142d48779d0e724dd3f92357
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4c819f306eb9b43c1759813bfe83e5db
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-84f921feab5ebf2e5ad87dcb3b1aaaab
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-069aa6da79f89b382b16e29ae8572b6f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-194a870a6d3e8bd8dc0ac3f7442f3357
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3f3ab03989668a72b4dbe1fb1ed5e87f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-94ccf851a8cb968b21034606c4f24151
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d9cdace2ae4c36713b75f3b626e2557e
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-28179093f4136db9d8f17e8e3b6e04fe
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a7b6e821e5a716502b1259594829cc01
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b458abf35c50814252a0738e901b9a7a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aa22173a3a736e248cca6c242ef0b75b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0efd977b7431db70298b723e684fefd2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-efb45a47971542b43c2a4d61962acef1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-61557b8a2acf2c00060099b824ff3c69
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b76ab7708869941e11b48312d422072b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2ce36332140d3e414f25ba8c54d8daf8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0efa1fe9dc8c953aa7fcf4a0d6a12bca
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8216ab07e1c469e2f2c939016cdff1dd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ecf2179f549a1a98aeaecf6f18d169fd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fa3354f95cef8590e5b24d3f366de0cb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1784a93309684b8b9c4859813ec9dfa1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5970553fb2fd15a28834d4e2644242df
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f3ebeefe7d1e38cfc5fac0320e7ac721
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-88e2612f9537c35425623d9cbaf93311
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b5389295c5703e309547eba7fe5df923
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3cb07b2320ad1c0e64cf6f6b8970e35c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f178661251fc8cf845ae8e536d479479
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b0f1cceced22a2871eea700af8c36338
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-86850be4e958bb5ade2fdfa6c20d36ee
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a9dac128334df5500fe7f90cd5e38ac7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b72546c1cb37b4c3aea5d6ec12ec25ef
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4affa720084836123e0bceaf9449e47e
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e25dd4bfcec4c71dd437d496836a599a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cffed0612c19d81e2db805a832aa7228
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-95fd4699795c83e8635a6418ef00b15d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-550ccc2c2c98d76377010276aaaba4b3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7934619dafcc2205ae0ac9acc6dd2591
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4cada232fe088b99720478d5279ff560
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b7269ad7b5a6159adc9ccb0705eb84d3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6104500d14bd174c4be87c0abe569603
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e7568bea6ea299c75b7a94af07924645
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c151d23d3842a47f79c26b8a9b064bf3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4da1775666b755dd6eae59c10d804958
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-84599d9b65d0b2ddd86741aeee18bec6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bed1a052a527be4a7e251260dff3ecc1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5c7b06cf4de9daf14cd937d7ad44c52f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-48990cdf88c823b6b7167635cb130103
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8ffe76f52edafe585e25bb5114dce9c5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-af48bd30e0a9f54bdc2699d8752db435
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c4d8113397ce2e0ed6cc497013f6e9bb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8c393b4df682fd0136782b0aea36f765
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c9a821797a161499ae018f44596a6afe
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cdb59781dee70563e74283835b85c792
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8fae548f392a0b6a2f4e97f1a4e897a0
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2638c65d312c64088f89891f164f2cc1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-78f40bb826cdb5dbf9e095cbfc0bcb23
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5d64f7a182700d9e774df174802b1233
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-35bbc0e5e442e779d4064324f434b269
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7254450ffc6996b52bb491520eab6643
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-49ff8814b56107aa4d88216c1e564594
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f941c775cf2af2e384a9e6be4499d03b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3f6a624ad5e07b28af5817e530ce68e7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ac929acc226d9d19c9bd873440e830aa
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-51d4b842e9e697138958208893032562
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-78e71c908069b90f6b6578e9e88f21fa
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-42919b9149bccdcc27e1b74ac2a42c3b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-46d7717019e106518583e978f8339322
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2fc01d4e7109b05ecd37a0c1f303bdc2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-29775e8fa04b6a3f833311de728ebf06
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3c798163222d469e7037aa9f6c6a18b9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0038bd7b020c96dd31aaa85b87ab9c61
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fb3e1ed53134b9617e559a7f66376554
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e8521033c9ba23be00cf58df5393bc53
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1db43aae9359aaede2c63ec3a7ae43a5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-22bafdac38b3026fb7a9bf61f436cee3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-732dfb7eff5375d6ff573b05e5db0e75
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0b25efd04a5a5e5eae365ed937d5797
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5df5621845b4cf6844eec80d56b03618
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-57118e3960b1bd85103225b1457a8747
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7e908eb68f1b43bb1e02b97ebd2d3db3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c4afce8cb6ae47eca1e7b14727a4fbb4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-96a300e020105bb39aebf90d1377e72c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-99741661d3b7e1588cde1a90299e0ab2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9604af548689695d4d546d991eda5907
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-01a3bf1488b76f13ccc040e6ccbb3fa6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-465731a9dd4a49375623580d4100a840
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-70c00e7f6ddec9a2991e23e091e61017
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6e5a4054e5eb35a95c8bf33c1cff820c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1cfb9d5f44e527d77bf5f70a42b23ef3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-96b88e809f1e50995ceaf7638d771760
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6359ac8f9fa29b01743dabde49f16331
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f72629c847f9437f3ae8d86c39884f30
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6f4f4b1029c10d6979cf003a03486dd6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b1e0477fa2310848b4591ef95660b379
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0b02ba821a81a639408f2622bdeb410
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-22e620021d3b75607a3ffb67ac7a7ed9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e4655714cfe60c1d1af6a5e0620e8448
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d6807f60c71765f10fcd51e2e644e650
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1d98b98a9f0b015f0727069418dd183c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c61148e37252a8d9cb9e86a0929145dc
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d49f49a6ba57cbbdf0890315041313c9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d5c9a389ea196bcfd1ce1727554aa493
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a794907accdef09e94d30e3604e60d3a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a84da9afbccfa3081606064b0dbb8f35
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-72d6025b777ce2d2764c8a86d2bc7417
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-da30ffd595ae298c8f6a989b1adf613b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c6009b0878b752d9bb8381810f2a0b15
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fc2d3f9a31b3757fb4fe8fa3ab004948
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a1fed8320d4f77170a0cd66b18b3d78e
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-508c0a0bd3e078806d119d56a0170ff7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eac26fa898213dd6b838962f76b4dd82
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b2c683a63e4f120a8a3d0f68cb60a1ce
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1bd82ea574f70b2388aca5c3c3c9e9c2
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-68a768eb43d3988c51aa4c0810af4894
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3fe2103a1af8c8da0437cfd08ba52103
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1d66bc291b99d144119f0c92d9b2e4ee
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a5906b1517d3ca15566460831d623444
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fbb2b318332de905e4cd541df0a80480
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-20dbd192e84ca2cf17304a84b6d9800e
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1075c8cf7f85bef579a0edc9739dd813
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-309b329adbb141833cf4db0fbf7219e7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d19973f7174ed0f8265354217e2979fe
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c2192619f6058e17a4fda96e0034654b
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-87a6e3542c9942c80a4fc6ca7be16963
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b2a6872225eb295e55df41405b652292
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3ca6a8445359d8443639ff060952cae8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1c58c51b054a5d498ec7eba6165677a1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c90195e4afabdc6c90c7022f5cb645b5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-32c14b87af68b2c540ee1a7574b31afb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c9666f3e36235aab9fbae9d522918015
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-dd206b5c9dc979242abe946cf55c54d3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-984424ed3d3aeccf8aaeec50fbf00a65
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-820ac3534e273e0549a7dc6a41854961
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-27d5c14575cf31fd3d7d1560c967fb6f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1aeba43d651c1dc3110bc9cf16b0a664
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-30765439e2987ebd09ed3ebfc9621fe4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-774510ad2adf998241e9196fe931085d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6b77bd1a9796531208fb7bc3062da7fc
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-07a2e24a4fd8c82d2e83606a12341437
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d878d2cfc36fca0a93a8d069bff9477c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cf845400695152f0e6247e07db119dfc
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4a78448d8d942371174bfd0b589a2003
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f2085d5b23ab3521a90899496f0c1ea0
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3186eac76fb9083f4e1ef53810691fb4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fff57693849de420b78a348871e5c7de
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bb8796cb7c8aa5653e78293c5e465548
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f42c8fe1165f2c398f538ace4d1f7453
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3e593c7c1568b35ab99338ed006c1050
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a0d4e356c2e7cc288bb09db393a3718a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-97dc999f28edf5714e3509be2b1fb6c5
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-24732d517745c4ed8007a30d534bf50f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c74d3ac5161b2d7e8a245c35bf47e1ce
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7370f410646e4306a24154343f9041d8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fc8911a52a9e7a3e3f44fd5fd6e15ec8
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f3d61405be20140c539d04fad6df57be
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9d7cec466863ba503da5769dfaaf1fa1
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8954268336c1e860f3b0a0509169c187
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e08106502e27091424d6a14d2fd3e9c3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-98ef8ae47cb12cd6130a9375afd0a0b0
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ef4e140d4163647de68e36fb02161dd9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4cfd1574682a8829959a70b5480f43bf
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-75513552b4180abb8e019bc4568219b7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9e9ae5f3f63531aad85ed83d6e3c6024
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a356ca460a3f1930f87dfff578a91c4f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aeba76e5b88c64c2445a513edeaab0f6
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-97bc9ceb76c8e09fb20b0eb94213fa02
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6a27c28bcb905bac2ef767f6f882e46a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3eac03c802811ff5a1e142040ff64e43
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2adf8a59cbb4b26d5c9b81ea5cede913
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1601fcbe3740da2d92cc75e7909876d9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d4a85e7370c99c29f3061bbf3426714f
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-08798510e6370878fd48042979d4e915
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bb1f778290980cad3f86c2acf4f8462c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0ce72f1f16e66f03d20dbfb32ea7b61
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cefb2bb3c359538148d6d9f2b72e1346
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3b1b5e513a44ce5aa14613ef621aebf9
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d2aa98de5454663fb8b60feaebbb29c2
FileName: ./.dockerignore
SPDXID: SPDXRef-7cae9d43a2c57f31c16395b7bc469d6d
FileChecksum: SHA1: 044b7e945a0e98286041aebcfd3a762531706b3b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.env.example
SPDXID: SPDXRef-7ed4336c28af8b6b2819b85409b921a7
FileChecksum: SHA1: c81380dfc8d602f575f96c3db68bb75303faf4c6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/CONTRIBUTING.md
SPDXID: SPDXRef-ca35af8eae6e32b107bf02a22b281224
FileChecksum: SHA1: 1c37c657e18359fdd2069889ca53cf07286ce227
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
SPDX-FileCopyrightText: 2026 Andrey Kotlyar
SPDX-FileCopyrightText:
FileName: ./.github/ISSUE_TEMPLATE/bug_report.yml
SPDXID: SPDXRef-303473b19b51f975940a7004103effb6
FileChecksum: SHA1: 27e09218f6bd5753fd04ea13873f1182243ca051
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./.github/ISSUE_TEMPLATE/feature_request.yml
SPDXID: SPDXRef-2f968f84e3fa29652a27b21cfaddd93d
FileChecksum: SHA1: 7967b2fe5940e311e73c141b9ceb84992ccc47a6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./.github/PULL_REQUEST_TEMPLATE/common_pull_request.md
SPDXID: SPDXRef-8f661251fe2bd7874bd9cf0f1c300e71
FileChecksum: SHA1: 51e3717576fe7c6210d4969aea96b70426689d9d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/dependabot.yml
SPDXID: SPDXRef-41cbba1d67b1d98071c193b5c285fff8
FileChecksum: SHA1: 30a77007cc97fa1a3a2d88c3a40319ad30284a86
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/labeler.yml
SPDXID: SPDXRef-3b4a765830de6b9647dddc01b2fcd20c
FileChecksum: SHA1: edcbdda6cbfb5fa1383bc6d37154c67602ae1ec5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/release.yml
SPDXID: SPDXRef-b594eefb3e3aac78d70176120a99c1bc
FileChecksum: SHA1: caf6b676b25a4fbb65415b90bcc101f33a29255e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/ci.yml
SPDXID: SPDXRef-054ac652dd40d7d63fff5a704bd00b8c
FileChecksum: SHA1: 782fdcccc03b9d316921558034c83609ba4018e3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./.github/workflows/deploy.yml
SPDXID: SPDXRef-7ded4b69706e457d3d24c032df7ac545
FileChecksum: SHA1: dd10270a3cb8677e295499e4f451666f71ce88b4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/labeler.yml
SPDXID: SPDXRef-8c2757c8b4663760dcd18c1adcedb0d5
FileChecksum: SHA1: 937a28c23e3b68ec879b5b484276e3c50cce3b13
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/labels.yml
SPDXID: SPDXRef-f68ab46c6bd51c6e86b0447c0bbb9cdd
FileChecksum: SHA1: a66e6bf1b074e18bdd6191973f0ff3e1d9ee4414
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.github/workflows/release.yml
SPDXID: SPDXRef-aea8cb9e7621f4844514cf9e2c2bc3a2
FileChecksum: SHA1: 63db80f699117cd5a13c2301e1e2f834f318fa23
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./.gitignore
SPDXID: SPDXRef-5a80defbe733a7f48d24de3d2238e035
FileChecksum: SHA1: f1c1ad5ad6daa01b18f88fcabe2217b29aba59db
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./.pre-commit-config.yaml
SPDXID: SPDXRef-364a6c432b3ea17db34935825ed55357
FileChecksum: SHA1: cd367a5b212a32424cc6742004969bc3a8bd697e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./.trivyignore
SPDXID: SPDXRef-3e71062622dd3aec2f1e03012831998b
FileChecksum: SHA1: cb70dda2ca179bffaa31f6676fc6b645cf93ac54
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./Dockerfile
SPDXID: SPDXRef-8f5fba447c93c25b1ec8055af6d9868c
FileChecksum: SHA1: 27bb7ac7a85dd25e00a893a1ddf10ce05c4af96e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./Makefile
SPDXID: SPDXRef-59dfd8f7142d48779d0e724dd3f92357
FileChecksum: SHA1: 4e76b849b5da9f5b2998bdca2b5ddc126b4c7c4b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./README.md
SPDXID: SPDXRef-4c819f306eb9b43c1759813bfe83e5db
FileChecksum: SHA1: 5bfdb94c7a6ba87504b7163c0c1c9a69565785ad
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./apps/__init__.py
SPDXID: SPDXRef-84f921feab5ebf2e5ad87dcb3b1aaaab
FileChecksum: SHA1: 3a6dbdaca4d3d32831e40c68aa43d10e6fae1445
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/__init__.py
SPDXID: SPDXRef-069aa6da79f89b382b16e29ae8572b6f
FileChecksum: SHA1: 013fb97860d2abf2142af7d5a1dcccb8b2176adf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/admin.py
SPDXID: SPDXRef-194a870a6d3e8bd8dc0ac3f7442f3357
FileChecksum: SHA1: 47185cc0a1c2922b0cff94d884ddc34749ed5473
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/apps.py
SPDXID: SPDXRef-3f3ab03989668a72b4dbe1fb1ed5e87f
FileChecksum: SHA1: 00b2170462a52ab092f83517055677030e34aae7
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/managers/__init__.py
SPDXID: SPDXRef-94ccf851a8cb968b21034606c4f24151
FileChecksum: SHA1: b835a1e3cfca7f29c778a7bc8dbb93947ce24ce8
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/managers/user_manager.py
SPDXID: SPDXRef-d9cdace2ae4c36713b75f3b626e2557e
FileChecksum: SHA1: ab4444da0bdd2b2acf012b40a37b5a0f8c9b7dc5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/migrations/0001_initial.py
SPDXID: SPDXRef-28179093f4136db9d8f17e8e3b6e04fe
FileChecksum: SHA1: 8363ebcdac763fc026e5f012e0949ccb3ad00992
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/models/__init__.py
SPDXID: SPDXRef-a7b6e821e5a716502b1259594829cc01
FileChecksum: SHA1: 721d7596195dcc769821dd17a62b03ab027d0d9e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/models/user.py
SPDXID: SPDXRef-b458abf35c50814252a0738e901b9a7a
FileChecksum: SHA1: 4e13a703b6c35ec6f0e1e91476b40700c28aee62
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests.py
SPDXID: SPDXRef-aa22173a3a736e248cca6c242ef0b75b
FileChecksum: SHA1: 27bed8831aae0542d2524ebeda8e0a7a1f2b1bc5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/__init__.py
SPDXID: SPDXRef-0efd977b7431db70298b723e684fefd2
FileChecksum: SHA1: 9fd8c793ebba080bd00a2e3b9b761fda0fe3427c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/factories/__init__.py
SPDXID: SPDXRef-efb45a47971542b43c2a4d61962acef1
FileChecksum: SHA1: b21b7b02bdec8cf5a9495da24386cf99a2eaa1b6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/factories/user.py
SPDXID: SPDXRef-61557b8a2acf2c00060099b824ff3c69
FileChecksum: SHA1: 567abe72c0cb8ee92d84cf5454364762706e5c67
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/test_admin.py
SPDXID: SPDXRef-b76ab7708869941e11b48312d422072b
FileChecksum: SHA1: a80fbccef924a35caeff6b51fd39d5dd7c58847e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/test_user.py
SPDXID: SPDXRef-2ce36332140d3e414f25ba8c54d8daf8
FileChecksum: SHA1: 03d57bb27dd2e57a703b9273be7715bb1615d070
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/tests/test_user_manager.py
SPDXID: SPDXRef-0efa1fe9dc8c953aa7fcf4a0d6a12bca
FileChecksum: SHA1: e18959999d1397ad8b3eefe3c91e008b5dd72a42
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/accounts/views.py
SPDXID: SPDXRef-8216ab07e1c469e2f2c939016cdff1dd
FileChecksum: SHA1: 53fa20bcba88128d6fcabb92ab2ffddeb97934cb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/announcements/__init__.py
SPDXID: SPDXRef-ecf2179f549a1a98aeaecf6f18d169fd
FileChecksum: SHA1: 4c3880f0a29c1f4b764fa628b675b01ddb2e7b8f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/admin.py
SPDXID: SPDXRef-fa3354f95cef8590e5b24d3f366de0cb
FileChecksum: SHA1: b2fa952ca8220892571fb5c348c18b7f6462b385
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/__init__.py
SPDXID: SPDXRef-1784a93309684b8b9c4859813ec9dfa1
FileChecksum: SHA1: 232589186060101094ca3933d726756e9cf97f0e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/__init__.py
SPDXID: SPDXRef-5970553fb2fd15a28834d4e2644242df
FileChecksum: SHA1: 1b3d94bf738158705372a1cd392295ee7baeb999
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/serializers/__init__.py
SPDXID: SPDXRef-f3ebeefe7d1e38cfc5fac0320e7ac721
FileChecksum: SHA1: 0ec2dc2e8b953203d88c2eeab43aebdd7b270a0b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/serializers/announcement_detail_serializer.py
SPDXID: SPDXRef-88e2612f9537c35425623d9cbaf93311
FileChecksum: SHA1: cc3421fea91e4bbf74af792f19efdb0208b27a8e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/serializers/announcements_list_serializer.py
SPDXID: SPDXRef-b5389295c5703e309547eba7fe5df923
FileChecksum: SHA1: 51db9c5b156c22baa3323dd343aa4b0e6110b397
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/urls.py
SPDXID: SPDXRef-3cb07b2320ad1c0e64cf6f6b8970e35c
FileChecksum: SHA1: cc3655e0906619c02bcc59de5dd1b84552643b5f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/api/v1/views.py
SPDXID: SPDXRef-f178661251fc8cf845ae8e536d479479
FileChecksum: SHA1: d8ac318a4b4efc16355d6d246900db6da76a88f1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/apps.py
SPDXID: SPDXRef-b0f1cceced22a2871eea700af8c36338
FileChecksum: SHA1: 2818b8a6a527581f125dbd9bc2ea5e8b6e9ebb3b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/migrations/0001_initial.py
SPDXID: SPDXRef-86850be4e958bb5ade2fdfa6c20d36ee
FileChecksum: SHA1: bca110244e8efe6036c02353752515b7ec60e3c4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/migrations/0002_remove_announcement_is_published_and_more.py
SPDXID: SPDXRef-a9dac128334df5500fe7f90cd5e38ac7
FileChecksum: SHA1: 84c1b2dc37d87c2dc31372679f0192df30de189b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/models.py
SPDXID: SPDXRef-b72546c1cb37b4c3aea5d6ec12ec25ef
FileChecksum: SHA1: 42a516c7d427b62aa82c70cd4f729134226cc236
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/selectors.py
SPDXID: SPDXRef-4affa720084836123e0bceaf9449e47e
FileChecksum: SHA1: 1041e480ffbdfdf67bc26ebaa96ce1703d658d81
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/__init__.py
SPDXID: SPDXRef-e25dd4bfcec4c71dd437d496836a599a
FileChecksum: SHA1: f5e4ce9f634a02cf3a91b49123f6ceba1f3bc0aa
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/conftest.py
SPDXID: SPDXRef-cffed0612c19d81e2db805a832aa7228
FileChecksum: SHA1: 56e54a6f8876770948a8a7f54924630a532b49fd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/factories.py
SPDXID: SPDXRef-95fd4699795c83e8635a6418ef00b15d
FileChecksum: SHA1: 3a1c41a02e4227f339d0b08690c497b97ddd0fd0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/test_models.py
SPDXID: SPDXRef-550ccc2c2c98d76377010276aaaba4b3
FileChecksum: SHA1: 25522e9d422593bd142a016e75c4f31bb1349124
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/test_selectors.py
SPDXID: SPDXRef-7934619dafcc2205ae0ac9acc6dd2591
FileChecksum: SHA1: 285e59058f61f58e3600ea590e22c01e4b3068ee
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/announcements/tests/test_views.py
SPDXID: SPDXRef-4cada232fe088b99720478d5279ff560
FileChecksum: SHA1: 4b3cfdfeb989b98dc164aa68d92b08a40303f060
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/__init__.py
SPDXID: SPDXRef-b7269ad7b5a6159adc9ccb0705eb84d3
FileChecksum: SHA1: 7bf77c90fad4b4daffba73b5d34dbe27bd489580
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/admin.py
SPDXID: SPDXRef-6104500d14bd174c4be87c0abe569603
FileChecksum: SHA1: b7bf367200f19d87ed416da245b664077421effe
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/api/__init__.py
SPDXID: SPDXRef-e7568bea6ea299c75b7a94af07924645
FileChecksum: SHA1: c34ed2eedb80ad16bb109a0a6d55cfb2691f644f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/api/v1/__init__.py
SPDXID: SPDXRef-c151d23d3842a47f79c26b8a9b064bf3
FileChecksum: SHA1: f1b77f6702051f29c9e2559b5338965a621f46b6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/serializers/__init__.py
SPDXID: SPDXRef-4da1775666b755dd6eae59c10d804958
FileChecksum: SHA1: e4cca9ab59291184f12c5d24d2b70b71a86a826e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/serializers/chord_detail_serializer.py
SPDXID: SPDXRef-84599d9b65d0b2ddd86741aeee18bec6
FileChecksum: SHA1: a68edca0b6e94658c8a6bad651b1941c0b9021be
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/serializers/chord_position_serializer.py
SPDXID: SPDXRef-bed1a052a527be4a7e251260dff3ecc1
FileChecksum: SHA1: e94874625855a02cc9bbf3e6c763e0697dbe2fb1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/serializers/chords_list_serializer.py
SPDXID: SPDXRef-5c7b06cf4de9daf14cd937d7ad44c52f
FileChecksum: SHA1: 4e16afa63b11332dcd93f7c76145b9b355be427e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/urls.py
SPDXID: SPDXRef-48990cdf88c823b6b7167635cb130103
FileChecksum: SHA1: ee457568a13b94ca450de2b384bc4ca336bca3a1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/api/v1/views.py
SPDXID: SPDXRef-8ffe76f52edafe585e25bb5114dce9c5
FileChecksum: SHA1: 42e2d2c0aa27e6a2d90b3979f76371b1d725c74e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/apps.py
SPDXID: SPDXRef-af48bd30e0a9f54bdc2699d8752db435
FileChecksum: SHA1: 3d2ea94e995ffe401d2f143f904d2a48cfdcabd1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/constants.py
SPDXID: SPDXRef-c4d8113397ce2e0ed6cc497013f6e9bb
FileChecksum: SHA1: c42aa7d8f7582ccafa74cb96a5beeb6953b6ada0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/migrations/0001_initial.py
SPDXID: SPDXRef-8c393b4df682fd0136782b0aea36f765
FileChecksum: SHA1: 2aa0f320b3dc4fbda5d5de49b282725929dee63d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/migrations/0002_alter_chordposition_finger_alter_chordposition_fret.py
SPDXID: SPDXRef-c9a821797a161499ae018f44596a6afe
FileChecksum: SHA1: feb08036c93abad46aa287139819c40cc4796bfb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/chords/models.py
SPDXID: SPDXRef-cdb59781dee70563e74283835b85c792
FileChecksum: SHA1: 8f85bc4110035f5d1affd273285232ff06bb1b5e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/selectors.py
SPDXID: SPDXRef-8fae548f392a0b6a2f4e97f1a4e897a0
FileChecksum: SHA1: 80d86dba2a0ecbc8520c163185e843a024d7cba3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/services.py
SPDXID: SPDXRef-2638c65d312c64088f89891f164f2cc1
FileChecksum: SHA1: fcc6cb9dc922b18e8961728c4859b5f12387cbfe
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/__init__.py
SPDXID: SPDXRef-78f40bb826cdb5dbf9e095cbfc0bcb23
FileChecksum: SHA1: 72a30cd161c7a5ea1ec54416aad08d23bee54be5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/conftest.py
SPDXID: SPDXRef-5d64f7a182700d9e774df174802b1233
FileChecksum: SHA1: 9c1872e0bca5a202567b9ebdf29b6cc0329b6cff
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/factories.py
SPDXID: SPDXRef-35bbc0e5e442e779d4064324f434b269
FileChecksum: SHA1: 2c7465ce9c1e3ff06addb0d49e7389cecde0a095
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/integration/test_chords_crud.py
SPDXID: SPDXRef-7254450ffc6996b52bb491520eab6643
FileChecksum: SHA1: 5ef99f90b13df4cbeca97a60fef4571d3cfe24ab
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./apps/chords/tests/test_admin.py
SPDXID: SPDXRef-49ff8814b56107aa4d88216c1e564594
FileChecksum: SHA1: 926da0e99b52b0c1458dee82cb613075baa2763a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/test_constants.py
SPDXID: SPDXRef-f941c775cf2af2e384a9e6be4499d03b
FileChecksum: SHA1: 9256ef958ed70c0609c5170b6f9b99f0c34f4567
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/test_models.py
SPDXID: SPDXRef-3f6a624ad5e07b28af5817e530ce68e7
FileChecksum: SHA1: b5654c75ffad9e914793b5f6c6ae7d7216aade60
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/test_selectors.py
SPDXID: SPDXRef-ac929acc226d9d19c9bd873440e830aa
FileChecksum: SHA1: 26dd8d7febd2db479008b041d0d23649ab5c7a3d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/chords/tests/test_serializers.py
SPDXID: SPDXRef-51d4b842e9e697138958208893032562
FileChecksum: SHA1: 5dc91ee279146d321f3ce563ab2b8094dcd15964
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./apps/chords/tests/test_services.py
SPDXID: SPDXRef-78e71c908069b90f6b6578e9e88f21fa
FileChecksum: SHA1: 93822ae6875e50f811ae5ff1b19da24d9eb0f3ce
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/courses/__init__.py
SPDXID: SPDXRef-42919b9149bccdcc27e1b74ac2a42c3b
FileChecksum: SHA1: 4b5d6cc97cf1cf2688c61e4bcce696fd1b684844
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/admin.py
SPDXID: SPDXRef-46d7717019e106518583e978f8339322
FileChecksum: SHA1: 01611326b5c9842e6016ca9a39c745219af1419c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/api/__init__.py
SPDXID: SPDXRef-2fc01d4e7109b05ecd37a0c1f303bdc2
FileChecksum: SHA1: 148b44412b014c1ec6abe226294a7699977a9319
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/api/v1/serializers/course_detail_serializer.py
SPDXID: SPDXRef-29775e8fa04b6a3f833311de728ebf06
FileChecksum: SHA1: 1c01d2895c58def822c0a1d50fcc3ac270682c99
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/api/v1/serializers/courses_list_serializer.py
SPDXID: SPDXRef-3c798163222d469e7037aa9f6c6a18b9
FileChecksum: SHA1: 8452dea634841a9083123f07ef1610976ee4e266
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/api/v1/urls.py
SPDXID: SPDXRef-0038bd7b020c96dd31aaa85b87ab9c61
FileChecksum: SHA1: 50f8556873404b67ea4b2b4ebe742a36a4db8d0f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/api/v1/views.py
SPDXID: SPDXRef-fb3e1ed53134b9617e559a7f66376554
FileChecksum: SHA1: 3ecc7c97063db7b787dffe3def6e65dbc39d528d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/apps.py
SPDXID: SPDXRef-e8521033c9ba23be00cf58df5393bc53
FileChecksum: SHA1: 070973293fb3a29f0bcb798b0ab876090bdcc40a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/migrations/0001_initial.py
SPDXID: SPDXRef-1db43aae9359aaede2c63ec3a7ae43a5
FileChecksum: SHA1: a06fbb2567367ecd93134bbb4f3ae2311d3bb45b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/migrations/0002_alter_course_is_published.py
SPDXID: SPDXRef-22bafdac38b3026fb7a9bf61f436cee3
FileChecksum: SHA1: 7b2684380e40784407b4eeeb0a3ed7b8dabd68eb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/models.py
SPDXID: SPDXRef-732dfb7eff5375d6ff573b05e5db0e75
FileChecksum: SHA1: 5ce7dcd133fd2faac818ad96df3be68d7ef693f4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/selectors.py
SPDXID: SPDXRef-d0b25efd04a5a5e5eae365ed937d5797
FileChecksum: SHA1: 3075670b40c104b491aa627e8007dd4cf36c0d42
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/__init__.py
SPDXID: SPDXRef-5df5621845b4cf6844eec80d56b03618
FileChecksum: SHA1: a8c20801cd56ca1f0395a72350d9ecf3256bbb75
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/conftest.py
SPDXID: SPDXRef-57118e3960b1bd85103225b1457a8747
FileChecksum: SHA1: a47985356e50cfd08b2fce6f819510c8c9e82e1b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/factories.py
SPDXID: SPDXRef-7e908eb68f1b43bb1e02b97ebd2d3db3
FileChecksum: SHA1: 46b5031670411c45408a7ae39dc64e1f5edea2bf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/test_models.py
SPDXID: SPDXRef-c4afce8cb6ae47eca1e7b14727a4fbb4
FileChecksum: SHA1: 53b0199709916d1bcce7c3ef339201e4a53864ef
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/test_selectors.py
SPDXID: SPDXRef-96a300e020105bb39aebf90d1377e72c
FileChecksum: SHA1: ba067b4361e7289c9cf954d152771fd065d0260b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/test_serializers.py
SPDXID: SPDXRef-99741661d3b7e1588cde1a90299e0ab2
FileChecksum: SHA1: 30acc775be7dd30f8c7a861a90d0282172fd67f0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/courses/tests/test_views.py
SPDXID: SPDXRef-9604af548689695d4d546d991eda5907
FileChecksum: SHA1: e331c29d7752f5f1477a7c5bfaf59b7c9d9a1360
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/__init__.py
SPDXID: SPDXRef-01a3bf1488b76f13ccc040e6ccbb3fa6
FileChecksum: SHA1: 60fa2295cb45069cc9cd1e65d2e1ece544f40b3e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/admin.py
SPDXID: SPDXRef-465731a9dd4a49375623580d4100a840
FileChecksum: SHA1: 20314019fef17ae6898597d11bc9de83cfcf0d5f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/api/__init__.py
SPDXID: SPDXRef-70c00e7f6ddec9a2991e23e091e61017
FileChecksum: SHA1: 6352a5923574c3677a828c66f20027a672a5374a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/api/v1/serializers/lesson_detail_serializer.py
SPDXID: SPDXRef-6e5a4054e5eb35a95c8bf33c1cff820c
FileChecksum: SHA1: 5d06f10ac78e9873a8bbcbe02239584952f74315
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/api/v1/serializers/lessons_list_serializer.py
SPDXID: SPDXRef-1cfb9d5f44e527d77bf5f70a42b23ef3
FileChecksum: SHA1: bad429d3e6743100a47ba0031f331a9364564a36
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/api/v1/urls.py
SPDXID: SPDXRef-96b88e809f1e50995ceaf7638d771760
FileChecksum: SHA1: 894471c0cd50242ef3eb40f8caedc01ee9f051df
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/api/v1/views.py
SPDXID: SPDXRef-6359ac8f9fa29b01743dabde49f16331
FileChecksum: SHA1: 4aa933f5a63d340d3d949b85d56579debe9b3f88
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/apps.py
SPDXID: SPDXRef-f72629c847f9437f3ae8d86c39884f30
FileChecksum: SHA1: 2212e93434587a9cbac1c1df6929447b0a968fe5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/migrations/0001_initial.py
SPDXID: SPDXRef-6f4f4b1029c10d6979cf003a03486dd6
FileChecksum: SHA1: 2e97a740a155d6904436ddfbfe91846a33e7cd21
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/models.py
SPDXID: SPDXRef-b1e0477fa2310848b4591ef95660b379
FileChecksum: SHA1: 709adef38465718fa325bae19e03f56336b40f69
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/selectors.py
SPDXID: SPDXRef-d0b02ba821a81a639408f2622bdeb410
FileChecksum: SHA1: 6b856ebe836a0aa619f2efec06387d82f8750092
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/__init__.py
SPDXID: SPDXRef-22e620021d3b75607a3ffb67ac7a7ed9
FileChecksum: SHA1: 156cb65aa7a7551ff4f5a229d9aa346e23cbcffc
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/conftest.py
SPDXID: SPDXRef-e4655714cfe60c1d1af6a5e0620e8448
FileChecksum: SHA1: f429549e23de6524751fc00883379f36f8a43def
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/factories.py
SPDXID: SPDXRef-d6807f60c71765f10fcd51e2e644e650
FileChecksum: SHA1: cca685674d623e2f6d5d53eb8f80412fcfcd5012
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/test_models.py
SPDXID: SPDXRef-1d98b98a9f0b015f0727069418dd183c
FileChecksum: SHA1: 169df9306cf1f411b8de1bcca437671b0ee19654
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/test_selectors.py
SPDXID: SPDXRef-c61148e37252a8d9cb9e86a0929145dc
FileChecksum: SHA1: 0f1faae6868a5bb25c57b809358be8f889caed47
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/test_serializers.py
SPDXID: SPDXRef-d49f49a6ba57cbbdf0890315041313c9
FileChecksum: SHA1: 7e2370738f74cc30e5bc8609d6419d5cb28c13d7
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/lessons/tests/test_views.py
SPDXID: SPDXRef-d5c9a389ea196bcfd1ce1727554aa493
FileChecksum: SHA1: c44e36fd512b44e79fba089957b9a5f6ea137cf2
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/__init__.py
SPDXID: SPDXRef-a794907accdef09e94d30e3604e60d3a
FileChecksum: SHA1: d9fbeab566a64b1bd1acca3d1e56d79a043b232d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/apps.py
SPDXID: SPDXRef-a84da9afbccfa3081606064b0dbb8f35
FileChecksum: SHA1: 82926284f787c14c3c6e0ed2fb7246ba300f778e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/constants.py
SPDXID: SPDXRef-72d6025b777ce2d2764c8a86d2bc7417
FileChecksum: SHA1: dcff7bcd831417f9ff41a9398d742ac663b03c40
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/metrics.py
SPDXID: SPDXRef-da30ffd595ae298c8f6a989b1adf613b
FileChecksum: SHA1: c6f6ca145d09c9e4710f178822da286b61194f28
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/middleware.py
SPDXID: SPDXRef-c6009b0878b752d9bb8381810f2a0b15
FileChecksum: SHA1: d63ed8fa65e896253201e083b67e2af504acf3bf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/registry.py
SPDXID: SPDXRef-fc2d3f9a31b3757fb4fe8fa3ab004948
FileChecksum: SHA1: d7f83c69b2af7820ca1aaf4cf514160df1db5f00
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/__init__.py
SPDXID: SPDXRef-a1fed8320d4f77170a0cd66b18b3d78e
FileChecksum: SHA1: 31b6ed8e88fb0438d90573432e5448bfffdab335
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/conftest.py
SPDXID: SPDXRef-508c0a0bd3e078806d119d56a0170ff7
FileChecksum: SHA1: 97974e23d9605a06313021576a515d8b6f073b9c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/integration/__init__.py
SPDXID: SPDXRef-eac26fa898213dd6b838962f76b4dd82
FileChecksum: SHA1: 16a12eff1235d55dce725db1f8a54b2304fa0f57
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/integration/test_metrics_integration.py
SPDXID: SPDXRef-b2c683a63e4f120a8a3d0f68cb60a1ce
FileChecksum: SHA1: dd0d6ae1761869596ad39bb1c17fe31295f6168b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/test_metrics.py
SPDXID: SPDXRef-1bd82ea574f70b2388aca5c3c3c9e9c2
FileChecksum: SHA1: 6ce7c24ef951b8074c22836bb17acbef637a0871
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/test_middleware.py
SPDXID: SPDXRef-68a768eb43d3988c51aa4c0810af4894
FileChecksum: SHA1: f71ed52547799c465aa7935bec994e55c798b53d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/test_registry.py
SPDXID: SPDXRef-3fe2103a1af8c8da0437cfd08ba52103
FileChecksum: SHA1: db9c3161893773192e2d81c9e005640eaba8dfce
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./apps/metrics/tests/test_views.py
SPDXID: SPDXRef-1d66bc291b99d144119f0c92d9b2e4ee
FileChecksum: SHA1: 9aef1a2a46edb8bb179fc73f774c8389c337fbfc
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/urls.py
SPDXID: SPDXRef-a5906b1517d3ca15566460831d623444
FileChecksum: SHA1: 2258869ff29ccd064646a913042590276c309940
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/metrics/views.py
SPDXID: SPDXRef-fbb2b318332de905e4cd541df0a80480
FileChecksum: SHA1: 05a4fdeab01cb678d53ad3191c184c3fa97fa009
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./apps/schemes/__init__.py
SPDXID: SPDXRef-20dbd192e84ca2cf17304a84b6d9800e
FileChecksum: SHA1: 99da4fcc6a2d4303e3503a285805661b8f5519cf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/admin.py
SPDXID: SPDXRef-1075c8cf7f85bef579a0edc9739dd813
FileChecksum: SHA1: c05e0929bc06b1d0855dd8e51c528e0f71460d83
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/api/__init__.py
SPDXID: SPDXRef-309b329adbb141833cf4db0fbf7219e7
FileChecksum: SHA1: 7a209ab89632987c5745822636f280b6c3f660bf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/api/serializers.py
SPDXID: SPDXRef-d19973f7174ed0f8265354217e2979fe
FileChecksum: SHA1: f80d1235dcaecbfba7e7628137a10af6b23e4fcb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/api/views.py
SPDXID: SPDXRef-c2192619f6058e17a4fda96e0034654b
FileChecksum: SHA1: d360bdbef89771c3f16d67daa8a5dd2a9b6b8989
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/apps.py
SPDXID: SPDXRef-87a6e3542c9942c80a4fc6ca7be16963
FileChecksum: SHA1: d57d38621535209dff13d86b5a60492c2a38a8db
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/migrations/0001_initial.py
SPDXID: SPDXRef-b2a6872225eb295e55df41405b652292
FileChecksum: SHA1: d8637706bcb53a73c5ac38a96cfab298170cbacd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/models.py
SPDXID: SPDXRef-3ca6a8445359d8443639ff060952cae8
FileChecksum: SHA1: 5103ec929d2a8513ccdf52381785a1480893822a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/__init__.py
SPDXID: SPDXRef-1c58c51b054a5d498ec7eba6165677a1
FileChecksum: SHA1: b749e83af26c3b715f4b38f315392b2bac89b822
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/conftest.py
SPDXID: SPDXRef-c90195e4afabdc6c90c7022f5cb645b5
FileChecksum: SHA1: 4b9bebe366f2737ddf2c596dc2083114d57e0336
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/factories.py
SPDXID: SPDXRef-32c14b87af68b2c540ee1a7574b31afb
FileChecksum: SHA1: c6a8ae143977e3918b110d4a140182beed143200
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/test_admin.py
SPDXID: SPDXRef-c9666f3e36235aab9fbae9d522918015
FileChecksum: SHA1: e695527912901c8198268ae52bb5298c327588fa
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/test_models.py
SPDXID: SPDXRef-dd206b5c9dc979242abe946cf55c54d3
FileChecksum: SHA1: 445ee33e5a852f726fe949465d0a48f4ee4ccf5e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/schemes/tests/test_serializers.py
SPDXID: SPDXRef-984424ed3d3aeccf8aaeec50fbf00a65
FileChecksum: SHA1: e5a2fff9fc769f23b66368ec761e179145d0286d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/shared/__init__.py
SPDXID: SPDXRef-820ac3534e273e0549a7dc6a41854961
FileChecksum: SHA1: 6b7aebfecd50aecbbcf8a2e259eb4d09ea04a714
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/shared/permissions.py
SPDXID: SPDXRef-27d5c14575cf31fd3d7d1560c967fb6f
FileChecksum: SHA1: 214a2b28639b66fa6d5660f572dd442571413c77
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/shared/tests/__init__.py
SPDXID: SPDXRef-1aeba43d651c1dc3110bc9cf16b0a664
FileChecksum: SHA1: 5367f2004c81fe1b81516c3297b9bcff5d6929ba
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/shared/tests/test_permissions.py
SPDXID: SPDXRef-30765439e2987ebd09ed3ebfc9621fe4
FileChecksum: SHA1: 8d658441f4f578ba5b1c14ef5ea93e701947dadd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./apps/songs/__init__.py
SPDXID: SPDXRef-774510ad2adf998241e9196fe931085d
FileChecksum: SHA1: 2f422346649474cd6b2947007258799aa35f849f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/admin.py
SPDXID: SPDXRef-6b77bd1a9796531208fb7bc3062da7fc
FileChecksum: SHA1: 867f98ed826b49d1c65acd878090621bbaf050d5
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/api/__init__.py
SPDXID: SPDXRef-07a2e24a4fd8c82d2e83606a12341437
FileChecksum: SHA1: c0d0ed9b3624ce659bab28ed0d0ec7280197ab8a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/api/v1/serializers/__init__.py
SPDXID: SPDXRef-d878d2cfc36fca0a93a8d069bff9477c
FileChecksum: SHA1: c9f0e5d2210519386cbc627837847df21767caeb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/api/v1/serializers/song_detail_serializer.py
SPDXID: SPDXRef-cf845400695152f0e6247e07db119dfc
FileChecksum: SHA1: 9f522a544c85291998c453b364aee91a9271e6f7
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/api/v1/serializers/songs_list_serializer.py
SPDXID: SPDXRef-4a78448d8d942371174bfd0b589a2003
FileChecksum: SHA1: 893df46a72990566a4c58517d2fa06ecacaabbdb
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/apps.py
SPDXID: SPDXRef-f2085d5b23ab3521a90899496f0c1ea0
FileChecksum: SHA1: 2bad53ec9ee7d789a07ba31867a04c7623764eb0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/migrations/0001_initial.py
SPDXID: SPDXRef-3186eac76fb9083f4e1ef53810691fb4
FileChecksum: SHA1: 6b5ae29b36017c6e6e9a16b46d30e2a38645bab0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/models.py
SPDXID: SPDXRef-fff57693849de420b78a348871e5c7de
FileChecksum: SHA1: 842e187cb5e8d5be8cf62f86693e3b3be7000d0b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/tests/__init__.py
SPDXID: SPDXRef-bb8796cb7c8aa5653e78293c5e465548
FileChecksum: SHA1: f184cb7bde032ead84578a1eacf5b3b3ba133193
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/tests/conftest.py
SPDXID: SPDXRef-f42c8fe1165f2c398f538ace4d1f7453
FileChecksum: SHA1: a0c3e70b8ee514a14f3d29c2cdca7dd6331352ca
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/tests/factories.py
SPDXID: SPDXRef-3e593c7c1568b35ab99338ed006c1050
FileChecksum: SHA1: 109ec20c6d3822278aa9e782ba35a2f28bf46181
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/tests/test_models.py
SPDXID: SPDXRef-a0d4e356c2e7cc288bb09db393a3718a
FileChecksum: SHA1: 2c165783c0dbd3391d87e5f2892f26ab6fa07592
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./apps/songs/tests/test_serializers.py
SPDXID: SPDXRef-97dc999f28edf5714e3509be2b1fb6c5
FileChecksum: SHA1: f28165032083ff82ae28f8ba4d702e77f4d0acb2
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./codecov.yml
SPDXID: SPDXRef-24732d517745c4ed8007a30d534bf50f
FileChecksum: SHA1: cc23a96b054db52dc39b80d8d88688be785e3ed7
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./config/__init__.py
SPDXID: SPDXRef-c74d3ac5161b2d7e8a245c35bf47e1ce
FileChecksum: SHA1: 1288b815917e718e420e9348b816ac155a5511ec
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./config/asgi.py
SPDXID: SPDXRef-7370f410646e4306a24154343f9041d8
FileChecksum: SHA1: 30de1ea8f6926543ad7ef534dd2171b42ce12f95
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./config/gunicorn.py
SPDXID: SPDXRef-fc8911a52a9e7a3e3f44fd5fd6e15ec8
FileChecksum: SHA1: b95dde71df1b60dedcb87fc130d17b386fa4e706
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./config/settings/__init__.py
SPDXID: SPDXRef-f3d61405be20140c539d04fad6df57be
FileChecksum: SHA1: b25954c85ef3cd759c01feadf7e76e087e9c9060
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./config/settings/base.py
SPDXID: SPDXRef-9d7cec466863ba503da5769dfaaf1fa1
FileChecksum: SHA1: 262683a10ab6479f892132a7d66a5aad6c3a2772
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./config/settings/filters.py
SPDXID: SPDXRef-8954268336c1e860f3b0a0509169c187
FileChecksum: SHA1: db1efb05a5f8c473d7b01d8c36f6c2a8e6d77911
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./config/settings/logging.py
SPDXID: SPDXRef-e08106502e27091424d6a14d2fd3e9c3
FileChecksum: SHA1: 267395e73965bd82ed392bc50483040052cbe630
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./config/urls.py
SPDXID: SPDXRef-98ef8ae47cb12cd6130a9375afd0a0b0
FileChecksum: SHA1: 8442d4f14df24e953a6645187febb116f6d1daf7
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./config/wsgi.py
SPDXID: SPDXRef-ef4e140d4163647de68e36fb02161dd9
FileChecksum: SHA1: 6f618e0ec0c540404d82ca31d5e538ba57dc758d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./conftest.py
SPDXID: SPDXRef-4cfd1574682a8829959a70b5480f43bf
FileChecksum: SHA1: b5b64b7475ef4a933db46bc2ef06e30d4552897c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./docker-compose.yml
SPDXID: SPDXRef-75513552b4180abb8e019bc4568219b7
FileChecksum: SHA1: a932028cab51bdf5f1787d77eb30fc1dde4fddff
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./docs/http/chords.http
SPDXID: SPDXRef-9e9ae5f3f63531aad85ed83d6e3c6024
FileChecksum: SHA1: 40867dd954eae994e18851e206544c135a0252f2
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./docs/http/courses.http
SPDXID: SPDXRef-a356ca460a3f1930f87dfff578a91c4f
FileChecksum: SHA1: bc229eaf60e0576e3f6415dfc24a04cab474e4e8
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./docs/http/lessons.http
SPDXID: SPDXRef-aeba76e5b88c64c2445a513edeaab0f6
FileChecksum: SHA1: 1e79921468f0c5e304dbaac20e121cadcbd18a64
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar
FileName: ./manage.py
SPDXID: SPDXRef-97bc9ceb76c8e09fb20b0eb94213fa02
FileChecksum: SHA1: fe2e6f6fd2dbb65cc1144d6e6ebb074171f6ab8d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./pdm.lock
SPDXID: SPDXRef-6a27c28bcb905bac2ef767f6f882e46a
FileChecksum: SHA1: d2c6eb161dbdae6246b3fe1771137b4f9dfd5e5a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: Andrey Kotlyar
FileName: ./pyproject.toml
SPDXID: SPDXRef-3eac03c802811ff5a1e142040ff64e43
FileChecksum: SHA1: 3e5633cef9d8678ef817885ac126c69710002bc4
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./scripts/__init__.py
SPDXID: SPDXRef-2adf8a59cbb4b26d5c9b81ea5cede913
FileChecksum: SHA1: fa100f1e3fcd706fd0e0ff44bb9697000eda5538
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./scripts/lint.py
SPDXID: SPDXRef-1601fcbe3740da2d92cc75e7909876d9
FileChecksum: SHA1: 379e403798ee5fa281508ad8cc1ff551f4b33c7c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/integration/scripts/test_lint_integration.py
SPDXID: SPDXRef-d4a85e7370c99c29f3061bbf3426714f
FileChecksum: SHA1: a0246dc9b1a11cb5bf058cc8284536f873b1c53a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/unit/config/test_filters.py
SPDXID: SPDXRef-08798510e6370878fd48042979d4e915
FileChecksum: SHA1: 47314adfaa48163fbe6fe0a7b49a055a8fdc1e33
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/unit/config/test_logging.py
SPDXID: SPDXRef-bb1f778290980cad3f86c2acf4f8462c
FileChecksum: SHA1: 10be1c7d4f55fcdfd17532184b9b9f817d269617
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/unit/config/test_settings.py
SPDXID: SPDXRef-d0ce72f1f16e66f03d20dbfb32ea7b61
FileChecksum: SHA1: 8b02501c8d82f29535f616420c5350e84de8d926
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar
FileName: ./tests/unit/config/test_sgi.py
SPDXID: SPDXRef-cefb2bb3c359538148d6d9f2b72e1346
FileChecksum: SHA1: a62bbffe3117a5a4abb51dc012f394a16106982c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/unit/config/test_urls.py
SPDXID: SPDXRef-3b1b5e513a44ce5aa14613ef621aebf9
FileChecksum: SHA1: 7439e688eaa3b1def6836e59047dfbe92bfd3105
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar
FileName: ./tests/unit/scripts/test_lint.py
SPDXID: SPDXRef-d2aa98de5454663fb8b60feaebbb29c2
FileChecksum: SHA1: e108c297ace5503e8ebf0bd860441a4a83ec2363
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar