mstlo-python 0.1.0__cp312-cp312-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,586 @@
1
+ {
2
+ "bomFormat": "CycloneDX",
3
+ "specVersion": "1.5",
4
+ "version": 1,
5
+ "serialNumber": "urn:uuid:70888129-a6b5-40e4-aee4-b01e58e45ea5",
6
+ "metadata": {
7
+ "timestamp": "2026-04-08T14:14:55.299604000Z",
8
+ "tools": [
9
+ {
10
+ "vendor": "CycloneDX",
11
+ "name": "cargo-cyclonedx",
12
+ "version": "0.5.7"
13
+ }
14
+ ],
15
+ "component": {
16
+ "type": "library",
17
+ "bom-ref": "path+file:///D:/a/mstlo/mstlo/mstlo-python#0.1.0",
18
+ "name": "mstlo-python",
19
+ "version": "0.1.0",
20
+ "scope": "required",
21
+ "purl": "pkg:cargo/mstlo-python@0.1.0?download_url=file://.",
22
+ "components": [
23
+ {
24
+ "type": "library",
25
+ "bom-ref": "path+file:///D:/a/mstlo/mstlo/mstlo-python#0.1.0 bin-target-0",
26
+ "name": "mstlo_python",
27
+ "version": "0.1.0",
28
+ "purl": "pkg:cargo/mstlo-python@0.1.0?download_url=file://.#src/lib.rs"
29
+ }
30
+ ]
31
+ },
32
+ "properties": [
33
+ {
34
+ "name": "cdx:rustc:sbom:target:all_targets",
35
+ "value": "true"
36
+ }
37
+ ]
38
+ },
39
+ "components": [
40
+ {
41
+ "type": "library",
42
+ "bom-ref": "path+file:///D:/a/mstlo/mstlo/mstlo#0.1.0",
43
+ "name": "mstlo",
44
+ "version": "0.1.0",
45
+ "description": "A Rust library for online monitoring of Signal Temporal Logic (STL) specifications.",
46
+ "scope": "required",
47
+ "licenses": [
48
+ {
49
+ "license": {
50
+ "name": "Unknown",
51
+ "text": {
52
+ "encoding": "base64",
53
+ "content": "LS0tIFN0YXJ0IG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tDQoNCi8qDQogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24uDQogKg0KICogQ29weXJpZ2h0IChjKSAyMDE3LUN1cnJlbnRZZWFyLCBJTlRPLUNQUyBBc3NvY2lhdGlvbiAoSUNBKSwNCiAqIGMvbyBQZXRlciBHb3JtIExhcnNlbiwgQWFyaHVzIFVuaXZlcnNpdHksIERlcGFydG1lbnQgb2YgRW5naW5lZXJpbmcsDQogKiBGaW5sYW5kc2dhZGUgMjIsIDgyMDAgQWFyaHVzIE4sIERlbm1hcmsuDQogKg0KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBUSElTIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIEdQTCBWRVJTSU9OIDMgTElDRU5TRSBPUg0KICogVEhJUyBJTlRPLUNQUyBBU1NPQ0lBVElPTiBQVUJMSUMgTElDRU5TRSAoSUNBUEwpIFZFUlNJT04gMS4wLg0KICogQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSElTIFBST0dSQU0gQ09OU1RJVFVURVMNCiAqIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhFIElOVE8tQ1BTIEFTU09DSUFUSU9OIFBVQkxJQyBMSUNFTlNFIE9SDQogKiBUSEUgR1BMIFZFUlNJT04gMywgQUNDT1JESU5HIFRPIFJFQ0lQSUVOVFMgQ0hPSUNFLg0KICoNCiAqIFRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHNvZnR3YXJlIGFuZCB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24NCiAqIFB1YmxpYyBMaWNlbnNlIChJQ0FQTCkgYXJlIG9idGFpbmVkIGZyb20gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uLCBlaXRoZXINCiAqIGZyb20gdGhlIGFib3ZlIGFkZHJlc3MsIGZyb20gdGhlIFVSTHM6IGh0dHA6Ly93d3cuaW50by1jcHMub3JnIG9yDQogKiBpbiB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBkaXN0cmlidXRpb24uDQogKiBHTlUgdmVyc2lvbiAzIGlzIG9idGFpbmVkIGZyb206IGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbC4NCiAqDQogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQNCiAqIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQogKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIDQogKiBJTiBUSEUgQlkgUkVDSVBJRU5UIFNFTEVDVEVEIFNVQlNJRElBUlkgTElDRU5TRSBDT05ESVRJT05TIE9GDQogKiBUSEUgSU5UTy1DUFMgQVNTT0NJQVRJT04gUFVCTElDIExJQ0VOU0UuDQogKg0KICogU2VlIHRoZSBmdWxsIElDQVBMIGNvbmRpdGlvbnMgZm9yIG1vcmUgZGV0YWlscy4NCiAqDQogKi8NCg0KLS0tIEVuZCBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSBIZWFkZXIgLS0tDQoNClRoZSBJQ0FQTCBpcyBhIHB1YmxpYyBsaWNlbnNlIGZvciB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSB3aXRoIHRocmVlIG1vZGVzL2FsdGVybmF0aXZlcw0KKEdQTCwgSUNBLUludGVybmFsLUVQTCwgSUNBLUV4dGVybmFsLUVQTCkgZm9yIHVzZSBhbmQgcmVkaXN0cmlidXRpb24sDQppbiBzb3VyY2UgYW5kL29yIGJpbmFyeS9vYmplY3QtY29kZSBmb3JtOg0KDQoqIEdQTC4gQW55IHBhcnR5IChtZW1iZXIgb3Igbm9uLW1lbWJlciBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24pIG1heSB1c2UgYW5kDQogIHJlZGlzdHJpYnV0ZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIEdQTCB2ZXJzaW9uIDMuDQoNCiogU2lsdmVyIExldmVsIG1lbWJlcnMgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1heSBhbHNvIHVzZSBhbmQgcmVkaXN0cmlidXRlDQogIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgY29uZGl0aW9ucy4NCg0KKiBHb2xkIExldmVsIG1lbWJlcnMgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1heSBhbHNvIHVzZSBhbmQgcmVkaXN0cmlidXRlDQogIFRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3IgSUNBLUV4dGVybmFsLUVQTCBjb25kaXRpb25zLg0KDQpEZWZpbml0aW9ucyBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIGxpY2Vuc2UgbW9kZXM6DQoNCiogR1BMID0gR1BMIHZlcnNpb24gMy4NCg0KKiBJQ0EtSW50ZXJuYWwtRVBMID0gVGhlc2UgSU5UTy1DUEEgQXNzb2NpYXRpb24gUHVibGljIGxpY2Vuc2UgY29uZGl0aW9ucyB0b2dldGhlciB3aXRoDQogSW50ZXJuYWxseSByZXN0cmljdGVkIEVQTCwgaS5lLiwgRVBMIHZlcnNpb24gMS4wIHdpdGggdGhlIEFkZGl0aW9uYWwgQ29uZGl0aW9uDQogdGhhdCB1c2UgYW5kIHJlZGlzdHJpYnV0aW9uIGJ5IGEgbWVtYmVyIG9mIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBpcyBvbmx5IGFsbG93ZWQNCiB3aXRoaW4gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1lbWJlcidzIG93biBvcmdhbml6YXRpb24gKGkuZS4sIGl0cyBvd24gbGVnYWwgZW50aXR5KSwNCiBvciBmb3IgYSBtZW1iZXIgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHBheWluZyBhIG1lbWJlcnNoaXAgZmVlIGNvcnJlc3BvbmRpbmcgdG8NCiB0aGUgc2l6ZSBvZiB0aGUgb3JnYW5pemF0aW9uIGluY2x1ZGluZyBhbGwgaXRzIGFmZmlsaWF0ZXMsIHVzZSBhbmQgcmVkaXN0cmlidXRpb24NCiBpcyBhbGxvd2VkIHdpdGhpbi9iZXR3ZWVuIGl0cyBhZmZpbGlhdGVzLg0KDQoqIElDQS1FeHRlcm5hbC1FUEwgPSBUaGVzZSBJTlRPLUNQQSBBc3NvY2lhdGlvbiBQdWJsaWMgbGljZW5zZSBjb25kaXRpb25zIHRvZ2V0aGVyIHdpdGgNCiBFeHRlcm5hbGx5IHJlc3RyaWN0ZWQgRVBMLCBpLmUuLCBFUEwgdmVyc2lvbiAxLjAgd2l0aCB0aGUgQWRkaXRpb25hbCBDb25kaXRpb24NCiB0aGF0IHVzZSBhbmQgcmVkaXN0cmlidXRpb24gYnkgYSBtZW1iZXIgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uLCBvciBieSBhIExpY2Vuc2VkDQogVGhpcmQgUGFydHkgRGlzdHJpYnV0b3IgaGF2aW5nIGEgcmVkaXN0cmlidXRpb24gYWdyZWVtZW50IHdpdGggdGhhdCBtZW1iZXIsDQogdG8gcGFydGllcyBleHRlcm5hbCB0byB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gbWVtYmVy4oCZcyBvd24gb3JnYW5pemF0aW9uIChpLmUuLCBpdHMgb3duDQogbGVnYWwgZW50aXR5KSBpcyBvbmx5IGFsbG93ZWQgaW4gYmluYXJ5L29iamVjdC1jb2RlIGZvcm0sIGV4Y2VwdCB0aGUgY2FzZSBvZg0KIHJlZGlzdHJpYnV0aW9uIHRvIG90aGVyIG1lbWJlcnMgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHRvIHdoaWNoIHNvdXJjZSBpcyBhbHNvDQogYWxsb3dlZCB0byBiZSBkaXN0cmlidXRlZC4NCg0KW1RoaXMgaGFzIHRoZSBjb25zZXF1ZW5jZSB0aGF0IGFuIGV4dGVybmFsIHBhcnR5IHdobyB3aXNoZXMgdG8gdXNlDQp0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gaW4gc291cmNlIGZvcm0gdG9nZXRoZXIgd2l0aCBpdHMgb3duIHByb3ByaWV0YXJ5IHNvZnR3YXJlIGluIGFsbA0KY2FzZXMgbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb25dLg0KDQpJbiBhbGwgY2FzZXMgb2YgdXNhZ2UgYW5kIHJlZGlzdHJpYnV0aW9uIGJ5IHJlY2lwaWVudHMsIHRoZSBmb2xsb3dpbmcNCmNvbmRpdGlvbnMgYWxzbyBhcHBseToNCg0KYSkgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLA0KIGFsbCBkZWZpbml0aW9ucywgYW5kIGNvbmRpdGlvbnMuIEl0IGlzIHN1ZmZpY2llbnQgaWYgdGhlIElDQVBMIEhlYWRlciBpcw0KIHByZXNlbnQgaW4gZWFjaCBzb3VyY2UgZmlsZSwgaWYgdGhlIGZ1bGwgSUNBUEwgaXMgYXZhaWxhYmxlIGluIGEgcHJvbWluZW50DQogYW5kIGVhc2lseSBsb2NhdGVkIHBsYWNlIGluIHRoZSByZWRpc3RyaWJ1dGlvbi4NCg0KYikgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeS9vYmplY3QtY29kZSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KIGNvcHlyaWdodCBub3RpY2UsIGFsbCBkZWZpbml0aW9ucywgYW5kIGNvbmRpdGlvbnMuIEl0IGlzIHN1ZmZpY2llbnQgaWYgdGhlDQogSUNBUEwgSGVhZGVyIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBmdWxsIElDQVBMDQogYXJlIHByZXNlbnQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KIHJlZGlzdHJpYnV0aW9uLCBpZiB0aGUgZnVsbCBJQ0FQTCBpcyBhdmFpbGFibGUgaW4gYSBwcm9taW5lbnQgYW5kIGVhc2lseQ0KIGxvY2F0ZWQgcGxhY2UgaW4gdGhlIHJlZGlzdHJpYnV0aW9uLg0KDQpjKSBBIHJlY2lwaWVudCBtdXN0IGNsZWFybHkgaW5kaWNhdGUgaXRzIGNob3NlbiB1c2FnZSBtb2RlIG9mIElDQVBMLA0KIGluIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGFuZCBpbiBhIHRleHQgZmlsZSBJQ0EtVVNBR0UtTU9ERS50eHQsDQogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KDQpkKSBDb250cmlidXRvcihzKSBtYWtpbmcgYSBDb250cmlidXRpb24gdG8gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHRoZXJlYnkgYWxzbyBtYWtlcyBhDQogVHJhbnNmZXIgb2YgQ29udHJpYnV0aW9uIENvcHlyaWdodC4gSW4gcmV0dXJuLCB1cG9uIHRoZSBlZmZlY3RpdmUgZGF0ZSBvZg0KIHRoZSB0cmFuc2ZlciwgSUNBIGdyYW50cyB0aGUgQ29udHJpYnV0b3IocykgYSBDb250cmlidXRpb24gTGljZW5zZSBvZiB0aGUNCiBDb250cmlidXRpb24uIElDQSBoYXMgdGhlIHJpZ2h0IHRvIGFjY2VwdCBvciByZWZ1c2UgQ29udHJpYnV0aW9ucy4NCg0KRGVmaW5pdGlvbnM6DQoNCiJTdWJzaWRpYXJ5IGxpY2Vuc2UgY29uZGl0aW9ucyIgbWVhbnM6DQoNClRoZSBhZGRpdGlvbmFsIGxpY2Vuc2UgY29uZGl0aW9ucyBkZXBlbmRpbmcgb24gdGhlIGJ5IHRoZSByZWNpcGllbnQgY2hvc2VuDQptb2RlIG9mIElDQVBMLCBkZWZpbmVkIGJ5IEdQTCB2ZXJzaW9uIDMuMCBmb3IgR1BMLCBhbmQgYnkgRVBMIGZvcg0KSUNBLUludGVybmFsLUVQTCBhbmQgSUNBLUV4dGVybmFsLUVQTC4NCg0KIklDQVBMIiBtZWFuczoNCg0KSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgdmVyc2lvbiAxLjAsIGkuZS4sIHRoZSBsaWNlbnNlDQpkZWZpbmVkIGhlcmUgKHRoZSB0ZXh0IGJldHdlZW4NCiItLS0gU3RhcnQgb2YgRGVmaW5pdGlvbiBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSAtLS0iIGFuZA0KIi0tLSBFbmQgb2YgRGVmaW5pdGlvbiBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSAtLS0iLCBvciBsYXRlciB2ZXJzaW9ucyB0aGVyZW9mLg0KDQoiSUNBUEwgSGVhZGVyIiBtZWFuczoNCg0KSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgSGVhZGVyIHZlcnNpb24gMS4yLCBpLmUuLCB0aGUNCnRleHQgYmV0d2VlbiAiLS0tIFN0YXJ0IG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tIiBhbmQNCiItLS0gRW5kIG9mIElOVE8tQ1BTIEFzc29jaWF0aW9uIFB1YmxpYyBMaWNlbnNlIEhlYWRlciAtLS0sIG9yIGxhdGVyIHZlcnNpb25zIHRoZXJlb2YuDQoNCiJDb250cmlidXRpb24iIG1lYW5zOg0KDQphKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29kZSBhbmQgZG9jdW1lbnRhdGlvbg0KIGRpc3RyaWJ1dGVkIHVuZGVyIElDQVBMLCBhbmQNCg0KYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOg0KICAgaSkgY2hhbmdlcyB0byB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSwgYW5kDQogIGlpKSBhZGRpdGlvbnMgdG8gdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGU7DQoNCndoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUNCmRpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20NCmEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yDQphbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuDQoNCkZvciBDb250cmlidXRvcnMgbGljZW5zaW5nIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3INCklDQS1FeHRlcm5hbC1FUEwgY29uZGl0aW9ucywgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFsc28gaG9sZDoNCg0KQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlIGRpc3RyaWJ1dGVkIFByb2dyYW0gd2hpY2g6IChpKQ0KYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZQ0KdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCAoaWkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIHdoaWNoIGFyZSBub3QNCmRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUsIGFuZCAoaWlpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQNCndoZXJlIHRoZXNlIHNlcGFyYXRlIG1vZHVsZXMgYXJlIG1lcmdlZCB3aXRoICh3ZWF2ZWQgdG9nZXRoZXIgd2l0aCkgbW9kdWxlcyBvZg0KVGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUgdG8gZm9ybSBuZXcgbW9kdWxlcyB0aGF0IGFyZSBkaXN0cmlidXRlZCBhcyBvYmplY3QgY29kZSBvciBzb3VyY2UNCmNvZGUgdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhcyBhbGxvd2VkIHVuZGVyIHRoZSBBZGRpdGlvbmFsDQpDb25kaXRpb24gb2YgaW50ZXJuYWwgZGlzdHJpYnV0aW9uIGFjY29yZGluZyB0byBJQ0EtSW50ZXJuYWwtRVBMIGFuZC9vcg0KQWRkaXRpb25hbCBDb25kaXRpb24gZm9yIGV4dGVybmFsIGRpc3RyaWJ1dGlvbiBhY2NvcmRpbmcgdG8gSUNBLUV4dGVybmFsLUVQTC4NCg0KIlRyYW5zZmVyIG9mIENvbnRyaWJ1dGlvbiBDb3B5cmlnaHQiIG1lYW5zIHRoYXQgdGhlIENvbnRyaWJ1dG9ycyBvZiBhDQpDb250cmlidXRpb24gdHJhbnNmZXIgdGhlIG93bmVyc2hpcCBhbmQgdGhlIGNvcHlyaWdodCBvZiB0aGUgQ29udHJpYnV0aW9uIHRvDQp0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24sIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBDb3B5cmlnaHQgb3duZXIsIGZvcg0KaW5jbHVzaW9uIGluIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLiBUaGUgdHJhbnNmZXIgdGFrZXMgcGxhY2UgdXBvbiB0aGUgZWZmZWN0aXZlIGRhdGUNCndoZW4gdGhlIENvbnRyaWJ1dGlvbiBpcyBtYWRlIGF2YWlsYWJsZSBvbiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gd2ViIHNpdGUgdW5kZXIgSUNBUEwsIGJ5DQpzdWNoIENvbnRyaWJ1dG9ycyB0aGVtc2VsdmVzIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcnMnIGJlaGFsZi4NClRoZSB0cmFuc2ZlciBpcyBmcmVlIG9mIGNoYXJnZS4gSWYgdGhlIENvbnRyaWJ1dG9ycyBvciB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gc28gd2lzaCwNCmFuIG9wdGlvbmFsIENvcHlyaWdodCB0cmFuc2ZlciBhZ3JlZW1lbnQgY2FuIGJlIHNpZ25lZCBiZXR3ZWVuIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBhbmQgdGhlIENvbnRyaWJ1dG9ycy4NCg0KIkNvbnRyaWJ1dGlvbiBMaWNlbnNlIiBtZWFucyBhIGxpY2Vuc2UgZnJvbSB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gdG8gdGhlIENvbnRyaWJ1dG9ycyBvZiB0aGUgQ29udHJpYnV0aW9uLCBlZmZlY3RpdmUgb24gdGhlIGRhdGUgb2YgdGhlIFRyYW5zZmVyIG9mIENvbnRyaWJ1dGlvbiBDb3B5cmlnaHQsDQp3aGVyZSB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gZ3JhbnRzIHRoZSBDb250cmlidXRvcnMgYSBub24tZXhjbHVzaXZlLCB3b3JsZC13aWRlLCB0cmFuc2ZlcmFibGUsIGZyZWUgb2YgY2hhcmdlLCBwZXJwZXR1YWwgbGljZW5zZSwgaW5jbHVkaW5nIHN1YmxpY2Vuc2luZyByaWdodHMsIHRvIHVzZSwNCmhhdmUgdXNlZCwgbW9kaWZ5LCBoYXZlIG1vZGlmaWVkLCByZXByb2R1Y2UgYW5kIG9yIGhhdmUgcmVwcm9kdWNlZCB0aGUNCmNvbnRyaWJ1dGVkIG1hdGVyaWFsLCBmb3IgYnVzaW5lc3MgYW5kIG90aGVyIHB1cnBvc2VzLCBpbmNsdWRpbmcgYnV0IG5vdA0KbGltaXRlZCB0byBldmFsdWF0aW9uLCBkZXZlbG9wbWVudCwgdGVzdGluZywgaW50ZWdyYXRpb24gYW5kIG1lcmdpbmcgd2l0aA0Kb3RoZXIgc29mdHdhcmUgYW5kIGRpc3RyaWJ1dGlvbi4gVGhlIHdhcnJhbnR5IGFuZCBsaWFiaWxpdHkgZGlzY2xhaW1lcnMgb2YNCklDQVBMIGFwcGx5IHRvIHRoaXMgbGljZW5zZS4NCg0KIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIChwYXJ0IG9mKQ0KdGhlIElOVE8tQ1BTIHRvb2wgY2hhaW4uDQoNCiJUaGUgUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIElDQVBMLg0KDQoiVGhlIElOVE8tQ1BTIHRvb2wgY2hhaW4iIG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCBJQ0FQTC4NCg0KIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgSU5UTy1DUFMgdG9vbCBjaGFpbiB1bmRlciBJQ0FQTCwNCmluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLg0KDQoiTGljZW5zZWQgVGhpcmQgUGFydHkgRGlzdHJpYnV0b3IiIG1lYW5zIGEgcmVzZWxsZXIvZGlzdHJpYnV0b3IgaGF2aW5nIHNpZ25lZA0KYSByZWRpc3RyaWJ1dGlvbi9yZXNhbGUgYWdyZWVtZW50IGluIGFjY29yZGFuY2Ugd2l0aCBJQ0FQTCBhbmQgdGhlIElOVE8tQ1BTDQpBc3NvY2lhdGlvbiBCeWxhd3MsIHdpdGggYSBHb2xkIExldmVsIG9yZ2FuaXphdGlvbmFsIG1lbWJlciB3aGljaCBpcyBub3QgYW4NCkFmZmlsaWF0ZSBvZiB0aGUgcmVzZWxsZXIvZGlzdHJpYnV0b3IsIGZvciBkaXN0cmlidXRpbmcgYSBwcm9kdWN0IGNvbnRhaW5pbmcNCnBhcnQocykgb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUuIFRoZSBMaWNlbnNlZCBUaGlyZCBQYXJ0eSBEaXN0cmlidXRvciBzaGFsbA0Kb25seSBiZSBhbGxvd2VkIGZ1cnRoZXIgcmVkaXN0cmlidXRpb24gdG8gb3RoZXIgcmVzZWxsZXJzIGlmIHRoZSBHb2xkIExldmVsDQptZW1iZXIgaXMgZ3JhbnRpbmcgc3VjaCBhIHJpZ2h0IHRvIGl0IGluIHRoZSByZWRpc3RyaWJ1dGlvbi9yZXNhbGUgYWdyZWVtZW50DQpiZXR3ZWVuIHRoZSBHb2xkIExldmVsIG1lbWJlciBhbmQgdGhlIExpY2Vuc2VkIFRoaXJkIFBhcnR5IERpc3RyaWJ1dG9yLg0KDQoiQWZmaWxpYXRlIiBzaGFsbCBtZWFuIGFueSBsZWdhbCBlbnRpdHksIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIHRocm91Z2ggb25lDQpvciBtb3JlIGludGVybWVkaWFyaWVzLCBjb250cm9sbGluZyBvciBjb250cm9sbGVkIGJ5IG9yIHVuZGVyIGNvbW1vbiBjb250cm9sDQp3aXRoIGFueSBvdGhlciBsZWdhbCBlbnRpdHksIGFzIHRoZSBjYXNlIG1heSBiZS4gRm9yIHB1cnBvc2VzIG9mIHRoaXMNCmRlZmluaXRpb24sIHRoZSB0ZXJtICJjb250cm9sIiAoaW5jbHVkaW5nIHRoZSB0ZXJtcyAiY29udHJvbGxpbmcsIg0KImNvbnRyb2xsZWQgYnkiIGFuZCAidW5kZXIgY29tbW9uIGNvbnRyb2wgd2l0aCIpIG1lYW5zIHRoZSBwb3NzZXNzaW9uLA0KZGlyZWN0IG9yIGluZGlyZWN0LCBvZiB0aGUgcG93ZXIgdG8gZGlyZWN0IG9yIGNhdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlDQptYW5hZ2VtZW50IGFuZCBwb2xpY2llcyBvZiBhIGxlZ2FsIGVudGl0eSwgd2hldGhlciB0aHJvdWdoIHRoZSBvd25lcnNoaXAgb2YNCnZvdGluZyBzZWN1cml0aWVzLCBieSBjb250cmFjdCBvciBvdGhlcndpc2UuDQoNCk5PIFdBUlJBTlRZDQoNCkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRIRSBCWSBSRUNJUElFTlQgU0VMRUNURUQgU1VCU0lESUFSWQ0KTElDRU5TRSBDT05ESVRJT05TIE9GIElDQVBMLCBUSEUgSU5UTy1DUFMgQVNTT0NJQVRJT04gSVMgUFJPVklERUQgT04gQU4gIkFTIElTIg0KQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUg0KSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRg0KVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINClBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlDQphcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBhbmQgYXNzdW1lcyBhbGwgcmlza3MNCmFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIElDQVBMICwgaW5jbHVkaW5nIGJ1dCBub3QNCmxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUNCmxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5DQpvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4NCg0KRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkNCg0KRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhFIEJZIFJFQ0lQSUVOVCBTRUxFQ1RFRCBTVUJTSURJQVJZDQpMSUNFTlNFIENPTkRJVElPTlMgT0YgSUNBUEwsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTDQpTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04NCkxPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCkFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIElOVE8tQ1BTIFRPT0wNClNVSVRFIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQNCk9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuDQoNCkEgQ29udHJpYnV0b3IgbGljZW5zaW5nIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3INCklDQS1FeHRlcm5hbC1FUEwgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIChwYXJ0cyBvZikgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUNCmluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDoNCg0KYSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgSUNBUEw7IG9yIGZvciB0aGUgY2FzZSBvZg0KcmVkaXN0cmlidXRpb24gb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUgdG9nZXRoZXIgd2l0aCBwcm9wcmlldGFyeSBjb2RlIGl0IGlzIGEgZHVhbA0KbGljZW5zZSB3aGVyZSB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBwYXJ0cyBhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgSUNBUEwgY29tcGF0aWJsZQ0KY29uZGl0aW9ucyBhbmQgdGhlIHByb3ByaWV0YXJ5IGNvZGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgcHJvcHJpZXRhcnkgbGljZW5zZQ0KY29uZGl0aW9uczsgYW5kDQoNCmIpIGl0cyBsaWNlbnNlIGFncmVlbWVudDoNCiAgIGkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQNCmNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUNCmFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5DQphbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7DQogIGlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvcg0KZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwNCmRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOw0KIGlpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gSUNBUEwgYXJlIG9mZmVyZWQgYnkgdGhhdA0KQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZA0KICBpdikgc3RhdGVzIGZyb20gd2hlcmUgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBpcyBhdmFpbGFibGUsIGFuZA0KaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQ0KbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLg0KDQpXaGVuIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06DQoNCiBhKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIElDQVBMOyBhbmQNCg0KIGIpIGEgY29weSBvZiBJQ0FQTCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQogYykgYSBjb3B5IG9mIHRoZSBzdWJzaWRpYXJ5IGxpY2Vuc2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWxlY3RlZCBtb2RlIG9mDQpJQ0FQTCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQpDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4NClRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQpJZiB0aGVyZSBpcyBhIGNvbmZsaWN0IGJldHdlZW4gSUNBUEwgYW5kIHRoZSBzdWJzaWRpYXJ5IGxpY2Vuc2UgY29uZGl0aW9ucywNCklDQVBMIGhhcyBwcmlvcml0eS4NCg0KVGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgRGVubWFyay4gVGhlIHBsYWNlIG9mIGp1cmlzZGljdGlvbg0KZm9yIGFsbCBkaXNhZ3JlZW1lbnRzIHJlbGF0ZWQgdG8gdGhpcyBBZ3JlZW1lbnQsIGlzIEFhcmh1cywgRGVubWFyay4NCg0KVGhlIEVQTCAxLjAgbGljZW5zZSBkZWZpbml0aW9uIGhhcyBiZWVuIG9idGFpbmVkIGZyb206DQpodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC4gSXQgaXMgYWxzbyByZXByb2R1Y2VkIGluIHRoZSBJTlRPLUNQUyBkaXN0cmlidXRpb24uDQoNClRoZSBHUEwgVmVyc2lvbiAzIGxpY2Vuc2UgZGVmaW5pdGlvbiBoYXMgYmVlbiBvYnRhaW5lZCBmcm9tDQpodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwuIEl0IGlzIGFsc28gcmVwcm9kdWNlZCBpbiB0aGUgSU5UTy1DUFMgZGlzdHJpYnV0aW9uLg0KDQotLS0gRW5kIG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tDQo="
54
+ }
55
+ }
56
+ }
57
+ ],
58
+ "purl": "pkg:cargo/mstlo@0.1.0?download_url=file://..\\mstlo",
59
+ "externalReferences": [
60
+ {
61
+ "type": "documentation",
62
+ "url": "https://docs.rs/mstlo"
63
+ },
64
+ {
65
+ "type": "website",
66
+ "url": "https://github.com/INTO-CPS-Association/mstlo"
67
+ },
68
+ {
69
+ "type": "vcs",
70
+ "url": "https://github.com/INTO-CPS-Association/mstlo"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "type": "library",
76
+ "bom-ref": "path+file:///D:/a/mstlo/mstlo/mstlo/mstlo-macros#0.1.0",
77
+ "name": "mstlo-macros",
78
+ "version": "0.1.0",
79
+ "description": "Procedural macros for the mstlo online Signal Temporal Logic (STL) monitoring library.",
80
+ "scope": "required",
81
+ "licenses": [
82
+ {
83
+ "license": {
84
+ "name": "Unknown",
85
+ "text": {
86
+ "encoding": "base64",
87
+ "content": "LS0tIFN0YXJ0IG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tDQoNCi8qDQogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24uDQogKg0KICogQ29weXJpZ2h0IChjKSAyMDE3LUN1cnJlbnRZZWFyLCBJTlRPLUNQUyBBc3NvY2lhdGlvbiAoSUNBKSwNCiAqIGMvbyBQZXRlciBHb3JtIExhcnNlbiwgQWFyaHVzIFVuaXZlcnNpdHksIERlcGFydG1lbnQgb2YgRW5naW5lZXJpbmcsDQogKiBGaW5sYW5kc2dhZGUgMjIsIDgyMDAgQWFyaHVzIE4sIERlbm1hcmsuDQogKg0KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBUSElTIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIEdQTCBWRVJTSU9OIDMgTElDRU5TRSBPUg0KICogVEhJUyBJTlRPLUNQUyBBU1NPQ0lBVElPTiBQVUJMSUMgTElDRU5TRSAoSUNBUEwpIFZFUlNJT04gMS4wLg0KICogQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSElTIFBST0dSQU0gQ09OU1RJVFVURVMNCiAqIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhFIElOVE8tQ1BTIEFTU09DSUFUSU9OIFBVQkxJQyBMSUNFTlNFIE9SDQogKiBUSEUgR1BMIFZFUlNJT04gMywgQUNDT1JESU5HIFRPIFJFQ0lQSUVOVFMgQ0hPSUNFLg0KICoNCiAqIFRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHNvZnR3YXJlIGFuZCB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24NCiAqIFB1YmxpYyBMaWNlbnNlIChJQ0FQTCkgYXJlIG9idGFpbmVkIGZyb20gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uLCBlaXRoZXINCiAqIGZyb20gdGhlIGFib3ZlIGFkZHJlc3MsIGZyb20gdGhlIFVSTHM6IGh0dHA6Ly93d3cuaW50by1jcHMub3JnIG9yDQogKiBpbiB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBkaXN0cmlidXRpb24uDQogKiBHTlUgdmVyc2lvbiAzIGlzIG9idGFpbmVkIGZyb206IGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbC4NCiAqDQogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQNCiAqIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQogKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIDQogKiBJTiBUSEUgQlkgUkVDSVBJRU5UIFNFTEVDVEVEIFNVQlNJRElBUlkgTElDRU5TRSBDT05ESVRJT05TIE9GDQogKiBUSEUgSU5UTy1DUFMgQVNTT0NJQVRJT04gUFVCTElDIExJQ0VOU0UuDQogKg0KICogU2VlIHRoZSBmdWxsIElDQVBMIGNvbmRpdGlvbnMgZm9yIG1vcmUgZGV0YWlscy4NCiAqDQogKi8NCg0KLS0tIEVuZCBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSBIZWFkZXIgLS0tDQoNClRoZSBJQ0FQTCBpcyBhIHB1YmxpYyBsaWNlbnNlIGZvciB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSB3aXRoIHRocmVlIG1vZGVzL2FsdGVybmF0aXZlcw0KKEdQTCwgSUNBLUludGVybmFsLUVQTCwgSUNBLUV4dGVybmFsLUVQTCkgZm9yIHVzZSBhbmQgcmVkaXN0cmlidXRpb24sDQppbiBzb3VyY2UgYW5kL29yIGJpbmFyeS9vYmplY3QtY29kZSBmb3JtOg0KDQoqIEdQTC4gQW55IHBhcnR5IChtZW1iZXIgb3Igbm9uLW1lbWJlciBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24pIG1heSB1c2UgYW5kDQogIHJlZGlzdHJpYnV0ZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIEdQTCB2ZXJzaW9uIDMuDQoNCiogU2lsdmVyIExldmVsIG1lbWJlcnMgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1heSBhbHNvIHVzZSBhbmQgcmVkaXN0cmlidXRlDQogIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgY29uZGl0aW9ucy4NCg0KKiBHb2xkIExldmVsIG1lbWJlcnMgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1heSBhbHNvIHVzZSBhbmQgcmVkaXN0cmlidXRlDQogIFRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3IgSUNBLUV4dGVybmFsLUVQTCBjb25kaXRpb25zLg0KDQpEZWZpbml0aW9ucyBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIGxpY2Vuc2UgbW9kZXM6DQoNCiogR1BMID0gR1BMIHZlcnNpb24gMy4NCg0KKiBJQ0EtSW50ZXJuYWwtRVBMID0gVGhlc2UgSU5UTy1DUEEgQXNzb2NpYXRpb24gUHVibGljIGxpY2Vuc2UgY29uZGl0aW9ucyB0b2dldGhlciB3aXRoDQogSW50ZXJuYWxseSByZXN0cmljdGVkIEVQTCwgaS5lLiwgRVBMIHZlcnNpb24gMS4wIHdpdGggdGhlIEFkZGl0aW9uYWwgQ29uZGl0aW9uDQogdGhhdCB1c2UgYW5kIHJlZGlzdHJpYnV0aW9uIGJ5IGEgbWVtYmVyIG9mIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBpcyBvbmx5IGFsbG93ZWQNCiB3aXRoaW4gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIG1lbWJlcidzIG93biBvcmdhbml6YXRpb24gKGkuZS4sIGl0cyBvd24gbGVnYWwgZW50aXR5KSwNCiBvciBmb3IgYSBtZW1iZXIgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHBheWluZyBhIG1lbWJlcnNoaXAgZmVlIGNvcnJlc3BvbmRpbmcgdG8NCiB0aGUgc2l6ZSBvZiB0aGUgb3JnYW5pemF0aW9uIGluY2x1ZGluZyBhbGwgaXRzIGFmZmlsaWF0ZXMsIHVzZSBhbmQgcmVkaXN0cmlidXRpb24NCiBpcyBhbGxvd2VkIHdpdGhpbi9iZXR3ZWVuIGl0cyBhZmZpbGlhdGVzLg0KDQoqIElDQS1FeHRlcm5hbC1FUEwgPSBUaGVzZSBJTlRPLUNQQSBBc3NvY2lhdGlvbiBQdWJsaWMgbGljZW5zZSBjb25kaXRpb25zIHRvZ2V0aGVyIHdpdGgNCiBFeHRlcm5hbGx5IHJlc3RyaWN0ZWQgRVBMLCBpLmUuLCBFUEwgdmVyc2lvbiAxLjAgd2l0aCB0aGUgQWRkaXRpb25hbCBDb25kaXRpb24NCiB0aGF0IHVzZSBhbmQgcmVkaXN0cmlidXRpb24gYnkgYSBtZW1iZXIgb2YgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uLCBvciBieSBhIExpY2Vuc2VkDQogVGhpcmQgUGFydHkgRGlzdHJpYnV0b3IgaGF2aW5nIGEgcmVkaXN0cmlidXRpb24gYWdyZWVtZW50IHdpdGggdGhhdCBtZW1iZXIsDQogdG8gcGFydGllcyBleHRlcm5hbCB0byB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gbWVtYmVy4oCZcyBvd24gb3JnYW5pemF0aW9uIChpLmUuLCBpdHMgb3duDQogbGVnYWwgZW50aXR5KSBpcyBvbmx5IGFsbG93ZWQgaW4gYmluYXJ5L29iamVjdC1jb2RlIGZvcm0sIGV4Y2VwdCB0aGUgY2FzZSBvZg0KIHJlZGlzdHJpYnV0aW9uIHRvIG90aGVyIG1lbWJlcnMgdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHRvIHdoaWNoIHNvdXJjZSBpcyBhbHNvDQogYWxsb3dlZCB0byBiZSBkaXN0cmlidXRlZC4NCg0KW1RoaXMgaGFzIHRoZSBjb25zZXF1ZW5jZSB0aGF0IGFuIGV4dGVybmFsIHBhcnR5IHdobyB3aXNoZXMgdG8gdXNlDQp0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gaW4gc291cmNlIGZvcm0gdG9nZXRoZXIgd2l0aCBpdHMgb3duIHByb3ByaWV0YXJ5IHNvZnR3YXJlIGluIGFsbA0KY2FzZXMgbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb25dLg0KDQpJbiBhbGwgY2FzZXMgb2YgdXNhZ2UgYW5kIHJlZGlzdHJpYnV0aW9uIGJ5IHJlY2lwaWVudHMsIHRoZSBmb2xsb3dpbmcNCmNvbmRpdGlvbnMgYWxzbyBhcHBseToNCg0KYSkgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLA0KIGFsbCBkZWZpbml0aW9ucywgYW5kIGNvbmRpdGlvbnMuIEl0IGlzIHN1ZmZpY2llbnQgaWYgdGhlIElDQVBMIEhlYWRlciBpcw0KIHByZXNlbnQgaW4gZWFjaCBzb3VyY2UgZmlsZSwgaWYgdGhlIGZ1bGwgSUNBUEwgaXMgYXZhaWxhYmxlIGluIGEgcHJvbWluZW50DQogYW5kIGVhc2lseSBsb2NhdGVkIHBsYWNlIGluIHRoZSByZWRpc3RyaWJ1dGlvbi4NCg0KYikgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeS9vYmplY3QtY29kZSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KIGNvcHlyaWdodCBub3RpY2UsIGFsbCBkZWZpbml0aW9ucywgYW5kIGNvbmRpdGlvbnMuIEl0IGlzIHN1ZmZpY2llbnQgaWYgdGhlDQogSUNBUEwgSGVhZGVyIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBmdWxsIElDQVBMDQogYXJlIHByZXNlbnQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KIHJlZGlzdHJpYnV0aW9uLCBpZiB0aGUgZnVsbCBJQ0FQTCBpcyBhdmFpbGFibGUgaW4gYSBwcm9taW5lbnQgYW5kIGVhc2lseQ0KIGxvY2F0ZWQgcGxhY2UgaW4gdGhlIHJlZGlzdHJpYnV0aW9uLg0KDQpjKSBBIHJlY2lwaWVudCBtdXN0IGNsZWFybHkgaW5kaWNhdGUgaXRzIGNob3NlbiB1c2FnZSBtb2RlIG9mIElDQVBMLA0KIGluIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGFuZCBpbiBhIHRleHQgZmlsZSBJQ0EtVVNBR0UtTU9ERS50eHQsDQogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KDQpkKSBDb250cmlidXRvcihzKSBtYWtpbmcgYSBDb250cmlidXRpb24gdG8gdGhlIElOVE8tQ1BTIEFzc29jaWF0aW9uIHRoZXJlYnkgYWxzbyBtYWtlcyBhDQogVHJhbnNmZXIgb2YgQ29udHJpYnV0aW9uIENvcHlyaWdodC4gSW4gcmV0dXJuLCB1cG9uIHRoZSBlZmZlY3RpdmUgZGF0ZSBvZg0KIHRoZSB0cmFuc2ZlciwgSUNBIGdyYW50cyB0aGUgQ29udHJpYnV0b3IocykgYSBDb250cmlidXRpb24gTGljZW5zZSBvZiB0aGUNCiBDb250cmlidXRpb24uIElDQSBoYXMgdGhlIHJpZ2h0IHRvIGFjY2VwdCBvciByZWZ1c2UgQ29udHJpYnV0aW9ucy4NCg0KRGVmaW5pdGlvbnM6DQoNCiJTdWJzaWRpYXJ5IGxpY2Vuc2UgY29uZGl0aW9ucyIgbWVhbnM6DQoNClRoZSBhZGRpdGlvbmFsIGxpY2Vuc2UgY29uZGl0aW9ucyBkZXBlbmRpbmcgb24gdGhlIGJ5IHRoZSByZWNpcGllbnQgY2hvc2VuDQptb2RlIG9mIElDQVBMLCBkZWZpbmVkIGJ5IEdQTCB2ZXJzaW9uIDMuMCBmb3IgR1BMLCBhbmQgYnkgRVBMIGZvcg0KSUNBLUludGVybmFsLUVQTCBhbmQgSUNBLUV4dGVybmFsLUVQTC4NCg0KIklDQVBMIiBtZWFuczoNCg0KSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgdmVyc2lvbiAxLjAsIGkuZS4sIHRoZSBsaWNlbnNlDQpkZWZpbmVkIGhlcmUgKHRoZSB0ZXh0IGJldHdlZW4NCiItLS0gU3RhcnQgb2YgRGVmaW5pdGlvbiBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSAtLS0iIGFuZA0KIi0tLSBFbmQgb2YgRGVmaW5pdGlvbiBvZiBJTlRPLUNQUyBBc3NvY2lhdGlvbiBQdWJsaWMgTGljZW5zZSAtLS0iLCBvciBsYXRlciB2ZXJzaW9ucyB0aGVyZW9mLg0KDQoiSUNBUEwgSGVhZGVyIiBtZWFuczoNCg0KSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgSGVhZGVyIHZlcnNpb24gMS4yLCBpLmUuLCB0aGUNCnRleHQgYmV0d2VlbiAiLS0tIFN0YXJ0IG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tIiBhbmQNCiItLS0gRW5kIG9mIElOVE8tQ1BTIEFzc29jaWF0aW9uIFB1YmxpYyBMaWNlbnNlIEhlYWRlciAtLS0sIG9yIGxhdGVyIHZlcnNpb25zIHRoZXJlb2YuDQoNCiJDb250cmlidXRpb24iIG1lYW5zOg0KDQphKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29kZSBhbmQgZG9jdW1lbnRhdGlvbg0KIGRpc3RyaWJ1dGVkIHVuZGVyIElDQVBMLCBhbmQNCg0KYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOg0KICAgaSkgY2hhbmdlcyB0byB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSwgYW5kDQogIGlpKSBhZGRpdGlvbnMgdG8gdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGU7DQoNCndoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUNCmRpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20NCmEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yDQphbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuDQoNCkZvciBDb250cmlidXRvcnMgbGljZW5zaW5nIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3INCklDQS1FeHRlcm5hbC1FUEwgY29uZGl0aW9ucywgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFsc28gaG9sZDoNCg0KQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlIGRpc3RyaWJ1dGVkIFByb2dyYW0gd2hpY2g6IChpKQ0KYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZQ0KdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCAoaWkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIHdoaWNoIGFyZSBub3QNCmRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUsIGFuZCAoaWlpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQNCndoZXJlIHRoZXNlIHNlcGFyYXRlIG1vZHVsZXMgYXJlIG1lcmdlZCB3aXRoICh3ZWF2ZWQgdG9nZXRoZXIgd2l0aCkgbW9kdWxlcyBvZg0KVGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUgdG8gZm9ybSBuZXcgbW9kdWxlcyB0aGF0IGFyZSBkaXN0cmlidXRlZCBhcyBvYmplY3QgY29kZSBvciBzb3VyY2UNCmNvZGUgdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhcyBhbGxvd2VkIHVuZGVyIHRoZSBBZGRpdGlvbmFsDQpDb25kaXRpb24gb2YgaW50ZXJuYWwgZGlzdHJpYnV0aW9uIGFjY29yZGluZyB0byBJQ0EtSW50ZXJuYWwtRVBMIGFuZC9vcg0KQWRkaXRpb25hbCBDb25kaXRpb24gZm9yIGV4dGVybmFsIGRpc3RyaWJ1dGlvbiBhY2NvcmRpbmcgdG8gSUNBLUV4dGVybmFsLUVQTC4NCg0KIlRyYW5zZmVyIG9mIENvbnRyaWJ1dGlvbiBDb3B5cmlnaHQiIG1lYW5zIHRoYXQgdGhlIENvbnRyaWJ1dG9ycyBvZiBhDQpDb250cmlidXRpb24gdHJhbnNmZXIgdGhlIG93bmVyc2hpcCBhbmQgdGhlIGNvcHlyaWdodCBvZiB0aGUgQ29udHJpYnV0aW9uIHRvDQp0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24sIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBDb3B5cmlnaHQgb3duZXIsIGZvcg0KaW5jbHVzaW9uIGluIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLiBUaGUgdHJhbnNmZXIgdGFrZXMgcGxhY2UgdXBvbiB0aGUgZWZmZWN0aXZlIGRhdGUNCndoZW4gdGhlIENvbnRyaWJ1dGlvbiBpcyBtYWRlIGF2YWlsYWJsZSBvbiB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gd2ViIHNpdGUgdW5kZXIgSUNBUEwsIGJ5DQpzdWNoIENvbnRyaWJ1dG9ycyB0aGVtc2VsdmVzIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcnMnIGJlaGFsZi4NClRoZSB0cmFuc2ZlciBpcyBmcmVlIG9mIGNoYXJnZS4gSWYgdGhlIENvbnRyaWJ1dG9ycyBvciB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gc28gd2lzaCwNCmFuIG9wdGlvbmFsIENvcHlyaWdodCB0cmFuc2ZlciBhZ3JlZW1lbnQgY2FuIGJlIHNpZ25lZCBiZXR3ZWVuIHRoZSBJTlRPLUNQUyBBc3NvY2lhdGlvbiBhbmQgdGhlIENvbnRyaWJ1dG9ycy4NCg0KIkNvbnRyaWJ1dGlvbiBMaWNlbnNlIiBtZWFucyBhIGxpY2Vuc2UgZnJvbSB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gdG8gdGhlIENvbnRyaWJ1dG9ycyBvZiB0aGUgQ29udHJpYnV0aW9uLCBlZmZlY3RpdmUgb24gdGhlIGRhdGUgb2YgdGhlIFRyYW5zZmVyIG9mIENvbnRyaWJ1dGlvbiBDb3B5cmlnaHQsDQp3aGVyZSB0aGUgSU5UTy1DUFMgQXNzb2NpYXRpb24gZ3JhbnRzIHRoZSBDb250cmlidXRvcnMgYSBub24tZXhjbHVzaXZlLCB3b3JsZC13aWRlLCB0cmFuc2ZlcmFibGUsIGZyZWUgb2YgY2hhcmdlLCBwZXJwZXR1YWwgbGljZW5zZSwgaW5jbHVkaW5nIHN1YmxpY2Vuc2luZyByaWdodHMsIHRvIHVzZSwNCmhhdmUgdXNlZCwgbW9kaWZ5LCBoYXZlIG1vZGlmaWVkLCByZXByb2R1Y2UgYW5kIG9yIGhhdmUgcmVwcm9kdWNlZCB0aGUNCmNvbnRyaWJ1dGVkIG1hdGVyaWFsLCBmb3IgYnVzaW5lc3MgYW5kIG90aGVyIHB1cnBvc2VzLCBpbmNsdWRpbmcgYnV0IG5vdA0KbGltaXRlZCB0byBldmFsdWF0aW9uLCBkZXZlbG9wbWVudCwgdGVzdGluZywgaW50ZWdyYXRpb24gYW5kIG1lcmdpbmcgd2l0aA0Kb3RoZXIgc29mdHdhcmUgYW5kIGRpc3RyaWJ1dGlvbi4gVGhlIHdhcnJhbnR5IGFuZCBsaWFiaWxpdHkgZGlzY2xhaW1lcnMgb2YNCklDQVBMIGFwcGx5IHRvIHRoaXMgbGljZW5zZS4NCg0KIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIChwYXJ0IG9mKQ0KdGhlIElOVE8tQ1BTIHRvb2wgY2hhaW4uDQoNCiJUaGUgUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIElDQVBMLg0KDQoiVGhlIElOVE8tQ1BTIHRvb2wgY2hhaW4iIG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCBJQ0FQTC4NCg0KIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgSU5UTy1DUFMgdG9vbCBjaGFpbiB1bmRlciBJQ0FQTCwNCmluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLg0KDQoiTGljZW5zZWQgVGhpcmQgUGFydHkgRGlzdHJpYnV0b3IiIG1lYW5zIGEgcmVzZWxsZXIvZGlzdHJpYnV0b3IgaGF2aW5nIHNpZ25lZA0KYSByZWRpc3RyaWJ1dGlvbi9yZXNhbGUgYWdyZWVtZW50IGluIGFjY29yZGFuY2Ugd2l0aCBJQ0FQTCBhbmQgdGhlIElOVE8tQ1BTDQpBc3NvY2lhdGlvbiBCeWxhd3MsIHdpdGggYSBHb2xkIExldmVsIG9yZ2FuaXphdGlvbmFsIG1lbWJlciB3aGljaCBpcyBub3QgYW4NCkFmZmlsaWF0ZSBvZiB0aGUgcmVzZWxsZXIvZGlzdHJpYnV0b3IsIGZvciBkaXN0cmlidXRpbmcgYSBwcm9kdWN0IGNvbnRhaW5pbmcNCnBhcnQocykgb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUuIFRoZSBMaWNlbnNlZCBUaGlyZCBQYXJ0eSBEaXN0cmlidXRvciBzaGFsbA0Kb25seSBiZSBhbGxvd2VkIGZ1cnRoZXIgcmVkaXN0cmlidXRpb24gdG8gb3RoZXIgcmVzZWxsZXJzIGlmIHRoZSBHb2xkIExldmVsDQptZW1iZXIgaXMgZ3JhbnRpbmcgc3VjaCBhIHJpZ2h0IHRvIGl0IGluIHRoZSByZWRpc3RyaWJ1dGlvbi9yZXNhbGUgYWdyZWVtZW50DQpiZXR3ZWVuIHRoZSBHb2xkIExldmVsIG1lbWJlciBhbmQgdGhlIExpY2Vuc2VkIFRoaXJkIFBhcnR5IERpc3RyaWJ1dG9yLg0KDQoiQWZmaWxpYXRlIiBzaGFsbCBtZWFuIGFueSBsZWdhbCBlbnRpdHksIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIHRocm91Z2ggb25lDQpvciBtb3JlIGludGVybWVkaWFyaWVzLCBjb250cm9sbGluZyBvciBjb250cm9sbGVkIGJ5IG9yIHVuZGVyIGNvbW1vbiBjb250cm9sDQp3aXRoIGFueSBvdGhlciBsZWdhbCBlbnRpdHksIGFzIHRoZSBjYXNlIG1heSBiZS4gRm9yIHB1cnBvc2VzIG9mIHRoaXMNCmRlZmluaXRpb24sIHRoZSB0ZXJtICJjb250cm9sIiAoaW5jbHVkaW5nIHRoZSB0ZXJtcyAiY29udHJvbGxpbmcsIg0KImNvbnRyb2xsZWQgYnkiIGFuZCAidW5kZXIgY29tbW9uIGNvbnRyb2wgd2l0aCIpIG1lYW5zIHRoZSBwb3NzZXNzaW9uLA0KZGlyZWN0IG9yIGluZGlyZWN0LCBvZiB0aGUgcG93ZXIgdG8gZGlyZWN0IG9yIGNhdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlDQptYW5hZ2VtZW50IGFuZCBwb2xpY2llcyBvZiBhIGxlZ2FsIGVudGl0eSwgd2hldGhlciB0aHJvdWdoIHRoZSBvd25lcnNoaXAgb2YNCnZvdGluZyBzZWN1cml0aWVzLCBieSBjb250cmFjdCBvciBvdGhlcndpc2UuDQoNCk5PIFdBUlJBTlRZDQoNCkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRIRSBCWSBSRUNJUElFTlQgU0VMRUNURUQgU1VCU0lESUFSWQ0KTElDRU5TRSBDT05ESVRJT05TIE9GIElDQVBMLCBUSEUgSU5UTy1DUFMgQVNTT0NJQVRJT04gSVMgUFJPVklERUQgT04gQU4gIkFTIElTIg0KQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUg0KSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRg0KVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINClBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlDQphcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBhbmQgYXNzdW1lcyBhbGwgcmlza3MNCmFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIElDQVBMICwgaW5jbHVkaW5nIGJ1dCBub3QNCmxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUNCmxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5DQpvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4NCg0KRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkNCg0KRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhFIEJZIFJFQ0lQSUVOVCBTRUxFQ1RFRCBTVUJTSURJQVJZDQpMSUNFTlNFIENPTkRJVElPTlMgT0YgSUNBUEwsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTDQpTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04NCkxPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCkFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIElOVE8tQ1BTIFRPT0wNClNVSVRFIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQNCk9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuDQoNCkEgQ29udHJpYnV0b3IgbGljZW5zaW5nIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIHVuZGVyIElDQS1JbnRlcm5hbC1FUEwgb3INCklDQS1FeHRlcm5hbC1FUEwgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIChwYXJ0cyBvZikgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUNCmluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDoNCg0KYSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgSUNBUEw7IG9yIGZvciB0aGUgY2FzZSBvZg0KcmVkaXN0cmlidXRpb24gb2YgdGhlIElOVE8tQ1BTIHRvb2wgc3VpdGUgdG9nZXRoZXIgd2l0aCBwcm9wcmlldGFyeSBjb2RlIGl0IGlzIGEgZHVhbA0KbGljZW5zZSB3aGVyZSB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBwYXJ0cyBhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgSUNBUEwgY29tcGF0aWJsZQ0KY29uZGl0aW9ucyBhbmQgdGhlIHByb3ByaWV0YXJ5IGNvZGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgcHJvcHJpZXRhcnkgbGljZW5zZQ0KY29uZGl0aW9uczsgYW5kDQoNCmIpIGl0cyBsaWNlbnNlIGFncmVlbWVudDoNCiAgIGkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQNCmNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUNCmFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5DQphbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7DQogIGlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvcg0KZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwNCmRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOw0KIGlpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gSUNBUEwgYXJlIG9mZmVyZWQgYnkgdGhhdA0KQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZA0KICBpdikgc3RhdGVzIGZyb20gd2hlcmUgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgSU5UTy1DUFMgdG9vbCBzdWl0ZSBpcyBhdmFpbGFibGUsIGFuZA0KaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQ0KbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLg0KDQpXaGVuIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06DQoNCiBhKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIElDQVBMOyBhbmQNCg0KIGIpIGEgY29weSBvZiBJQ0FQTCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQogYykgYSBjb3B5IG9mIHRoZSBzdWJzaWRpYXJ5IGxpY2Vuc2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWxlY3RlZCBtb2RlIG9mDQpJQ0FQTCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQpDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4NClRoZSBJTlRPLUNQUyB0b29sIHN1aXRlLg0KDQpJZiB0aGVyZSBpcyBhIGNvbmZsaWN0IGJldHdlZW4gSUNBUEwgYW5kIHRoZSBzdWJzaWRpYXJ5IGxpY2Vuc2UgY29uZGl0aW9ucywNCklDQVBMIGhhcyBwcmlvcml0eS4NCg0KVGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgRGVubWFyay4gVGhlIHBsYWNlIG9mIGp1cmlzZGljdGlvbg0KZm9yIGFsbCBkaXNhZ3JlZW1lbnRzIHJlbGF0ZWQgdG8gdGhpcyBBZ3JlZW1lbnQsIGlzIEFhcmh1cywgRGVubWFyay4NCg0KVGhlIEVQTCAxLjAgbGljZW5zZSBkZWZpbml0aW9uIGhhcyBiZWVuIG9idGFpbmVkIGZyb206DQpodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC4gSXQgaXMgYWxzbyByZXByb2R1Y2VkIGluIHRoZSBJTlRPLUNQUyBkaXN0cmlidXRpb24uDQoNClRoZSBHUEwgVmVyc2lvbiAzIGxpY2Vuc2UgZGVmaW5pdGlvbiBoYXMgYmVlbiBvYnRhaW5lZCBmcm9tDQpodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwuIEl0IGlzIGFsc28gcmVwcm9kdWNlZCBpbiB0aGUgSU5UTy1DUFMgZGlzdHJpYnV0aW9uLg0KDQotLS0gRW5kIG9mIERlZmluaXRpb24gb2YgSU5UTy1DUFMgQXNzb2NpYXRpb24gUHVibGljIExpY2Vuc2UgLS0tDQo="
88
+ }
89
+ }
90
+ }
91
+ ],
92
+ "purl": "pkg:cargo/mstlo-macros@0.1.0?download_url=file://..\\mstlo\\mstlo-macros",
93
+ "externalReferences": [
94
+ {
95
+ "type": "documentation",
96
+ "url": "https://docs.rs/mstlo-macros"
97
+ },
98
+ {
99
+ "type": "website",
100
+ "url": "https://github.com/INTO-CPS-Association/mstlo"
101
+ },
102
+ {
103
+ "type": "vcs",
104
+ "url": "https://github.com/INTO-CPS-Association/mstlo"
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "type": "library",
110
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#dyn-clone@1.0.20",
111
+ "author": "David Tolnay <dtolnay@gmail.com>",
112
+ "name": "dyn-clone",
113
+ "version": "1.0.20",
114
+ "description": "Clone trait that is dyn-compatible",
115
+ "scope": "required",
116
+ "hashes": [
117
+ {
118
+ "alg": "SHA-256",
119
+ "content": "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
120
+ }
121
+ ],
122
+ "licenses": [
123
+ {
124
+ "expression": "MIT OR Apache-2.0"
125
+ }
126
+ ],
127
+ "purl": "pkg:cargo/dyn-clone@1.0.20",
128
+ "externalReferences": [
129
+ {
130
+ "type": "documentation",
131
+ "url": "https://docs.rs/dyn-clone"
132
+ },
133
+ {
134
+ "type": "vcs",
135
+ "url": "https://github.com/dtolnay/dyn-clone"
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "type": "library",
141
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0",
142
+ "name": "heck",
143
+ "version": "0.5.0",
144
+ "description": "heck is a case conversion library.",
145
+ "scope": "required",
146
+ "hashes": [
147
+ {
148
+ "alg": "SHA-256",
149
+ "content": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
150
+ }
151
+ ],
152
+ "licenses": [
153
+ {
154
+ "expression": "MIT OR Apache-2.0"
155
+ }
156
+ ],
157
+ "purl": "pkg:cargo/heck@0.5.0",
158
+ "externalReferences": [
159
+ {
160
+ "type": "vcs",
161
+ "url": "https://github.com/withoutboats/heck"
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "type": "library",
167
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.184",
168
+ "author": "The Rust Project Developers",
169
+ "name": "libc",
170
+ "version": "0.2.184",
171
+ "description": "Raw FFI bindings to platform libraries like libc.",
172
+ "scope": "required",
173
+ "licenses": [
174
+ {
175
+ "expression": "MIT OR Apache-2.0"
176
+ }
177
+ ],
178
+ "purl": "pkg:cargo/libc@0.2.184",
179
+ "externalReferences": [
180
+ {
181
+ "type": "vcs",
182
+ "url": "https://github.com/rust-lang/libc"
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "type": "library",
188
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
189
+ "author": "Aleksey Kladov <aleksey.kladov@gmail.com>",
190
+ "name": "once_cell",
191
+ "version": "1.21.4",
192
+ "description": "Single assignment cells and lazy values.",
193
+ "scope": "required",
194
+ "licenses": [
195
+ {
196
+ "expression": "MIT OR Apache-2.0"
197
+ }
198
+ ],
199
+ "purl": "pkg:cargo/once_cell@1.21.4",
200
+ "externalReferences": [
201
+ {
202
+ "type": "documentation",
203
+ "url": "https://docs.rs/once_cell"
204
+ },
205
+ {
206
+ "type": "vcs",
207
+ "url": "https://github.com/matklad/once_cell"
208
+ }
209
+ ]
210
+ },
211
+ {
212
+ "type": "library",
213
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
214
+ "author": "David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>",
215
+ "name": "proc-macro2",
216
+ "version": "1.0.106",
217
+ "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
218
+ "scope": "required",
219
+ "hashes": [
220
+ {
221
+ "alg": "SHA-256",
222
+ "content": "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
223
+ }
224
+ ],
225
+ "licenses": [
226
+ {
227
+ "expression": "MIT OR Apache-2.0"
228
+ }
229
+ ],
230
+ "purl": "pkg:cargo/proc-macro2@1.0.106",
231
+ "externalReferences": [
232
+ {
233
+ "type": "documentation",
234
+ "url": "https://docs.rs/proc-macro2"
235
+ },
236
+ {
237
+ "type": "vcs",
238
+ "url": "https://github.com/dtolnay/proc-macro2"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "type": "library",
244
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3",
245
+ "author": "PyO3 Project and Contributors <https://github.com/PyO3>",
246
+ "name": "pyo3-build-config",
247
+ "version": "0.28.3",
248
+ "description": "Build configuration for the PyO3 ecosystem",
249
+ "scope": "required",
250
+ "licenses": [
251
+ {
252
+ "expression": "MIT OR Apache-2.0"
253
+ }
254
+ ],
255
+ "purl": "pkg:cargo/pyo3-build-config@0.28.3",
256
+ "externalReferences": [
257
+ {
258
+ "type": "website",
259
+ "url": "https://github.com/pyo3/pyo3"
260
+ },
261
+ {
262
+ "type": "vcs",
263
+ "url": "https://github.com/pyo3/pyo3"
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "type": "library",
269
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3",
270
+ "author": "PyO3 Project and Contributors <https://github.com/PyO3>",
271
+ "name": "pyo3-ffi",
272
+ "version": "0.28.3",
273
+ "description": "Python-API bindings for the PyO3 ecosystem",
274
+ "scope": "required",
275
+ "licenses": [
276
+ {
277
+ "expression": "MIT OR Apache-2.0"
278
+ }
279
+ ],
280
+ "purl": "pkg:cargo/pyo3-ffi@0.28.3",
281
+ "externalReferences": [
282
+ {
283
+ "type": "website",
284
+ "url": "https://github.com/pyo3/pyo3"
285
+ },
286
+ {
287
+ "type": "other",
288
+ "url": "python"
289
+ },
290
+ {
291
+ "type": "vcs",
292
+ "url": "https://github.com/pyo3/pyo3"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "type": "library",
298
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3",
299
+ "author": "PyO3 Project and Contributors <https://github.com/PyO3>",
300
+ "name": "pyo3-macros-backend",
301
+ "version": "0.28.3",
302
+ "description": "Code generation for PyO3 package",
303
+ "scope": "required",
304
+ "licenses": [
305
+ {
306
+ "expression": "MIT OR Apache-2.0"
307
+ }
308
+ ],
309
+ "purl": "pkg:cargo/pyo3-macros-backend@0.28.3",
310
+ "externalReferences": [
311
+ {
312
+ "type": "website",
313
+ "url": "https://github.com/pyo3/pyo3"
314
+ },
315
+ {
316
+ "type": "vcs",
317
+ "url": "https://github.com/pyo3/pyo3"
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "type": "library",
323
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3",
324
+ "author": "PyO3 Project and Contributors <https://github.com/PyO3>",
325
+ "name": "pyo3-macros",
326
+ "version": "0.28.3",
327
+ "description": "Proc macros for PyO3 package",
328
+ "scope": "required",
329
+ "licenses": [
330
+ {
331
+ "expression": "MIT OR Apache-2.0"
332
+ }
333
+ ],
334
+ "purl": "pkg:cargo/pyo3-macros@0.28.3",
335
+ "externalReferences": [
336
+ {
337
+ "type": "website",
338
+ "url": "https://github.com/pyo3/pyo3"
339
+ },
340
+ {
341
+ "type": "vcs",
342
+ "url": "https://github.com/pyo3/pyo3"
343
+ }
344
+ ]
345
+ },
346
+ {
347
+ "type": "library",
348
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3",
349
+ "author": "PyO3 Project and Contributors <https://github.com/PyO3>",
350
+ "name": "pyo3",
351
+ "version": "0.28.3",
352
+ "description": "Bindings to Python interpreter",
353
+ "scope": "required",
354
+ "licenses": [
355
+ {
356
+ "expression": "MIT OR Apache-2.0"
357
+ }
358
+ ],
359
+ "purl": "pkg:cargo/pyo3@0.28.3",
360
+ "externalReferences": [
361
+ {
362
+ "type": "documentation",
363
+ "url": "https://docs.rs/crate/pyo3/"
364
+ },
365
+ {
366
+ "type": "website",
367
+ "url": "https://github.com/pyo3/pyo3"
368
+ },
369
+ {
370
+ "type": "vcs",
371
+ "url": "https://github.com/pyo3/pyo3"
372
+ }
373
+ ]
374
+ },
375
+ {
376
+ "type": "library",
377
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
378
+ "author": "David Tolnay <dtolnay@gmail.com>",
379
+ "name": "quote",
380
+ "version": "1.0.45",
381
+ "description": "Quasi-quoting macro quote!(...)",
382
+ "scope": "required",
383
+ "licenses": [
384
+ {
385
+ "expression": "MIT OR Apache-2.0"
386
+ }
387
+ ],
388
+ "purl": "pkg:cargo/quote@1.0.45",
389
+ "externalReferences": [
390
+ {
391
+ "type": "documentation",
392
+ "url": "https://docs.rs/quote/"
393
+ },
394
+ {
395
+ "type": "vcs",
396
+ "url": "https://github.com/dtolnay/quote"
397
+ }
398
+ ]
399
+ },
400
+ {
401
+ "type": "library",
402
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117",
403
+ "author": "David Tolnay <dtolnay@gmail.com>",
404
+ "name": "syn",
405
+ "version": "2.0.117",
406
+ "description": "Parser for Rust source code",
407
+ "scope": "required",
408
+ "licenses": [
409
+ {
410
+ "expression": "MIT OR Apache-2.0"
411
+ }
412
+ ],
413
+ "purl": "pkg:cargo/syn@2.0.117",
414
+ "externalReferences": [
415
+ {
416
+ "type": "documentation",
417
+ "url": "https://docs.rs/syn"
418
+ },
419
+ {
420
+ "type": "vcs",
421
+ "url": "https://github.com/dtolnay/syn"
422
+ }
423
+ ]
424
+ },
425
+ {
426
+ "type": "library",
427
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5",
428
+ "author": "Dan Gohman <sunfish@mozilla.com>",
429
+ "name": "target-lexicon",
430
+ "version": "0.13.5",
431
+ "description": "LLVM target triple types",
432
+ "scope": "required",
433
+ "licenses": [
434
+ {
435
+ "expression": "Apache-2.0 WITH LLVM-exception"
436
+ }
437
+ ],
438
+ "purl": "pkg:cargo/target-lexicon@0.13.5",
439
+ "externalReferences": [
440
+ {
441
+ "type": "documentation",
442
+ "url": "https://docs.rs/target-lexicon/"
443
+ },
444
+ {
445
+ "type": "vcs",
446
+ "url": "https://github.com/bytecodealliance/target-lexicon"
447
+ }
448
+ ]
449
+ },
450
+ {
451
+ "type": "library",
452
+ "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24",
453
+ "author": "David Tolnay <dtolnay@gmail.com>",
454
+ "name": "unicode-ident",
455
+ "version": "1.0.24",
456
+ "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
457
+ "scope": "required",
458
+ "licenses": [
459
+ {
460
+ "expression": "(MIT OR Apache-2.0) AND Unicode-3.0"
461
+ }
462
+ ],
463
+ "purl": "pkg:cargo/unicode-ident@1.0.24",
464
+ "externalReferences": [
465
+ {
466
+ "type": "documentation",
467
+ "url": "https://docs.rs/unicode-ident"
468
+ },
469
+ {
470
+ "type": "vcs",
471
+ "url": "https://github.com/dtolnay/unicode-ident"
472
+ }
473
+ ]
474
+ }
475
+ ],
476
+ "dependencies": [
477
+ {
478
+ "ref": "path+file:///D:/a/mstlo/mstlo/mstlo#0.1.0",
479
+ "dependsOn": [
480
+ "registry+https://github.com/rust-lang/crates.io-index#dyn-clone@1.0.20",
481
+ "path+file:///D:/a/mstlo/mstlo/mstlo/mstlo-macros#0.1.0"
482
+ ]
483
+ },
484
+ {
485
+ "ref": "path+file:///D:/a/mstlo/mstlo/mstlo-python#0.1.0",
486
+ "dependsOn": [
487
+ "path+file:///D:/a/mstlo/mstlo/mstlo#0.1.0",
488
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3"
489
+ ]
490
+ },
491
+ {
492
+ "ref": "path+file:///D:/a/mstlo/mstlo/mstlo/mstlo-macros#0.1.0",
493
+ "dependsOn": [
494
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
495
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
496
+ "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117"
497
+ ]
498
+ },
499
+ {
500
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#dyn-clone@1.0.20",
501
+ "dependsOn": []
502
+ },
503
+ {
504
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0",
505
+ "dependsOn": []
506
+ },
507
+ {
508
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.184",
509
+ "dependsOn": []
510
+ },
511
+ {
512
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
513
+ "dependsOn": []
514
+ },
515
+ {
516
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
517
+ "dependsOn": [
518
+ "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
519
+ ]
520
+ },
521
+ {
522
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3",
523
+ "dependsOn": [
524
+ "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5"
525
+ ]
526
+ },
527
+ {
528
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3",
529
+ "dependsOn": [
530
+ "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.184",
531
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3"
532
+ ]
533
+ },
534
+ {
535
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3",
536
+ "dependsOn": [
537
+ "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0",
538
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
539
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3",
540
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
541
+ "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117"
542
+ ]
543
+ },
544
+ {
545
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3",
546
+ "dependsOn": [
547
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
548
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.28.3",
549
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
550
+ "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117"
551
+ ]
552
+ },
553
+ {
554
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.28.3",
555
+ "dependsOn": [
556
+ "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.184",
557
+ "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
558
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.28.3",
559
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.28.3",
560
+ "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.28.3"
561
+ ]
562
+ },
563
+ {
564
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
565
+ "dependsOn": [
566
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106"
567
+ ]
568
+ },
569
+ {
570
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117",
571
+ "dependsOn": [
572
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
573
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
574
+ "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
575
+ ]
576
+ },
577
+ {
578
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5",
579
+ "dependsOn": []
580
+ },
581
+ {
582
+ "ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24",
583
+ "dependsOn": []
584
+ }
585
+ ]
586
+ }