Instructions to use kernels-community/aiter-flash-attn with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Kernels
How to use kernels-community/aiter-flash-attn with Kernels:
# !pip install kernels from kernels import get_kernel kernel = get_kernel("kernels-community/aiter-flash-attn") - Notebooks
- Google Colab
- Kaggle
Uploaded using `kernel-builder`.
Browse files
build/torch-rocm/_ops.py
CHANGED
|
@@ -22,7 +22,7 @@ def get_backend() -> str:
|
|
| 22 |
|
| 23 |
def _find_ops_name() -> str:
|
| 24 |
kernel_name = "aiter_flash_attn"
|
| 25 |
-
unique_id = "
|
| 26 |
backend = get_backend()
|
| 27 |
return f"_{kernel_name}_{backend}_{unique_id}"
|
| 28 |
|
|
|
|
| 22 |
|
| 23 |
def _find_ops_name() -> str:
|
| 24 |
kernel_name = "aiter_flash_attn"
|
| 25 |
+
unique_id = "e5d81f8"
|
| 26 |
backend = get_backend()
|
| 27 |
return f"_{kernel_name}_{backend}_{unique_id}"
|
| 28 |
|
build/torch-rocm/configs/gfx1250-MHA-DEFAULT.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fwd": {
|
| 3 |
+
"dropout_or_fp32": {
|
| 4 |
+
"BLOCK_M": 32,
|
| 5 |
+
"BLOCK_N": 32,
|
| 6 |
+
"PRELOAD_V": true,
|
| 7 |
+
"waves_per_eu": 1,
|
| 8 |
+
"num_warps": 2,
|
| 9 |
+
"num_ctas": 1,
|
| 10 |
+
"num_stages": 1
|
| 11 |
+
},
|
| 12 |
+
"default": {
|
| 13 |
+
"BLOCK_M": 128,
|
| 14 |
+
"BLOCK_N": 64,
|
| 15 |
+
"PRELOAD_V": true,
|
| 16 |
+
"waves_per_eu": 2,
|
| 17 |
+
"num_warps": 4,
|
| 18 |
+
"num_ctas": 1,
|
| 19 |
+
"num_stages": 1
|
| 20 |
+
},
|
| 21 |
+
"pe": {
|
| 22 |
+
"BLOCK_M": 128,
|
| 23 |
+
"BLOCK_N": 32,
|
| 24 |
+
"PRELOAD_V": true,
|
| 25 |
+
"waves_per_eu": 2,
|
| 26 |
+
"num_warps": 4,
|
| 27 |
+
"num_ctas": 1,
|
| 28 |
+
"num_stages": 3
|
| 29 |
+
},
|
| 30 |
+
"pe_dropout_or_fp32": {
|
| 31 |
+
"BLOCK_M": 256,
|
| 32 |
+
"BLOCK_N": 64,
|
| 33 |
+
"PRELOAD_V": true,
|
| 34 |
+
"waves_per_eu": 2,
|
| 35 |
+
"num_warps": 8,
|
| 36 |
+
"num_ctas": 1,
|
| 37 |
+
"num_stages": 1
|
| 38 |
+
}
|
| 39 |
+
},
|
| 40 |
+
"bkwd_fused" : {
|
| 41 |
+
"preprocess_kernel": {
|
| 42 |
+
"PRE_BLOCK": 128
|
| 43 |
+
},
|
| 44 |
+
"dkdvdq_kernel_N64" : {
|
| 45 |
+
"BLOCK_M": 16,
|
| 46 |
+
"BLOCK_N": 64,
|
| 47 |
+
"num_warps": 8,
|
| 48 |
+
"num_stages": 1,
|
| 49 |
+
"waves_per_eu": 2,
|
| 50 |
+
"BLK_SLICE_FACTOR": 1,
|
| 51 |
+
"matrix_instr_nonkdim": 16
|
| 52 |
+
},
|
| 53 |
+
"dkdvdq_kernel_N128" : {
|
| 54 |
+
"BLOCK_M": 16,
|
| 55 |
+
"BLOCK_N": 128,
|
| 56 |
+
"num_warps": 8,
|
| 57 |
+
"num_stages": 1,
|
| 58 |
+
"waves_per_eu": 2,
|
| 59 |
+
"BLK_SLICE_FACTOR": 1,
|
| 60 |
+
"matrix_instr_nonkdim": 16
|
| 61 |
+
}
|
| 62 |
+
},
|
| 63 |
+
"bkwd_onekernel" : {
|
| 64 |
+
"preprocess_kernel": {
|
| 65 |
+
"PRE_BLOCK": 128
|
| 66 |
+
},
|
| 67 |
+
"onekernel" : {
|
| 68 |
+
"BLOCK_M1": 32,
|
| 69 |
+
"BLOCK_N1": 128,
|
| 70 |
+
"BLOCK_M2": 128,
|
| 71 |
+
"BLOCK_N2": 32,
|
| 72 |
+
"BLK_SLICE_FACTOR": 2,
|
| 73 |
+
"waves_per_eu": 1,
|
| 74 |
+
"matrix_instr_nonkdim": 16,
|
| 75 |
+
"num_warps": 4,
|
| 76 |
+
"num_ctas": 1,
|
| 77 |
+
"num_stages": 1
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
}
|
build/torch-rocm/configs/gfx942-MHA-DEFAULT.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fwd": {
|
| 3 |
+
"dropout_or_fp32": {
|
| 4 |
+
"BLOCK_M": 32,
|
| 5 |
+
"BLOCK_N": 32,
|
| 6 |
+
"PRELOAD_V": false,
|
| 7 |
+
"waves_per_eu": 1,
|
| 8 |
+
"num_warps": 2,
|
| 9 |
+
"num_ctas": 1,
|
| 10 |
+
"num_stages": 1
|
| 11 |
+
},
|
| 12 |
+
"default": {
|
| 13 |
+
"BLOCK_M": 128,
|
| 14 |
+
"BLOCK_N": 64,
|
| 15 |
+
"PRELOAD_V": false,
|
| 16 |
+
"waves_per_eu": 2,
|
| 17 |
+
"num_warps": 4,
|
| 18 |
+
"num_ctas": 1,
|
| 19 |
+
"num_stages": 1
|
| 20 |
+
},
|
| 21 |
+
"pe": {
|
| 22 |
+
"BLOCK_M": 256,
|
| 23 |
+
"BLOCK_N": 64,
|
| 24 |
+
"PRELOAD_V": true,
|
| 25 |
+
"waves_per_eu": 1,
|
| 26 |
+
"num_warps": 8,
|
| 27 |
+
"num_ctas": 1,
|
| 28 |
+
"num_stages": 1
|
| 29 |
+
},
|
| 30 |
+
"pe_dropout_or_fp32": {
|
| 31 |
+
"BLOCK_M": 256,
|
| 32 |
+
"BLOCK_N": 64,
|
| 33 |
+
"PRELOAD_V": true,
|
| 34 |
+
"waves_per_eu": 1,
|
| 35 |
+
"num_warps": 8,
|
| 36 |
+
"num_ctas": 1,
|
| 37 |
+
"num_stages": 1
|
| 38 |
+
}
|
| 39 |
+
},
|
| 40 |
+
"bkwd_fused" : {
|
| 41 |
+
"preprocess_kernel": {
|
| 42 |
+
"PRE_BLOCK": 128
|
| 43 |
+
},
|
| 44 |
+
"dkdvdq_kernel_N64" : {
|
| 45 |
+
"BLOCK_M": 16,
|
| 46 |
+
"BLOCK_N": 64,
|
| 47 |
+
"num_warps": 8,
|
| 48 |
+
"num_stages": 1,
|
| 49 |
+
"waves_per_eu": 2,
|
| 50 |
+
"BLK_SLICE_FACTOR": 1,
|
| 51 |
+
"matrix_instr_nonkdim": 16
|
| 52 |
+
},
|
| 53 |
+
"dkdvdq_kernel_N128" : {
|
| 54 |
+
"BLOCK_M": 16,
|
| 55 |
+
"BLOCK_N": 128,
|
| 56 |
+
"num_warps": 8,
|
| 57 |
+
"num_stages": 1,
|
| 58 |
+
"waves_per_eu": 2,
|
| 59 |
+
"BLK_SLICE_FACTOR": 1,
|
| 60 |
+
"matrix_instr_nonkdim": 16
|
| 61 |
+
}
|
| 62 |
+
},
|
| 63 |
+
"bkwd_onekernel" : {
|
| 64 |
+
"preprocess_kernel": {
|
| 65 |
+
"PRE_BLOCK": 128
|
| 66 |
+
},
|
| 67 |
+
"onekernel" : {
|
| 68 |
+
"BLOCK_M1": 32,
|
| 69 |
+
"BLOCK_N1": 128,
|
| 70 |
+
"BLOCK_M2": 128,
|
| 71 |
+
"BLOCK_N2": 32,
|
| 72 |
+
"BLK_SLICE_FACTOR": 2,
|
| 73 |
+
"waves_per_eu": 1,
|
| 74 |
+
"matrix_instr_nonkdim": 16,
|
| 75 |
+
"num_warps": 4,
|
| 76 |
+
"num_ctas": 1,
|
| 77 |
+
"num_stages": 1
|
| 78 |
+
},
|
| 79 |
+
"onekernel_pe" : {
|
| 80 |
+
"BLOCK_M1": 32,
|
| 81 |
+
"BLOCK_N1": 64,
|
| 82 |
+
"BLOCK_M2": 128,
|
| 83 |
+
"BLOCK_N2": 32,
|
| 84 |
+
"BLK_SLICE_FACTOR": 2,
|
| 85 |
+
"waves_per_eu": 0,
|
| 86 |
+
"matrix_instr_nonkdim": 16,
|
| 87 |
+
"num_warps": 4,
|
| 88 |
+
"num_ctas": 1,
|
| 89 |
+
"num_stages": 2
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
}
|
build/torch-rocm/configs/gfx950-MHA-DEFAULT.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fwd": {
|
| 3 |
+
"dropout_or_fp32": {
|
| 4 |
+
"BLOCK_M": 32,
|
| 5 |
+
"BLOCK_N": 32,
|
| 6 |
+
"PRELOAD_V": true,
|
| 7 |
+
"waves_per_eu": 1,
|
| 8 |
+
"num_warps": 2,
|
| 9 |
+
"num_ctas": 1,
|
| 10 |
+
"num_stages": 1
|
| 11 |
+
},
|
| 12 |
+
"default": {
|
| 13 |
+
"BLOCK_M": 128,
|
| 14 |
+
"BLOCK_N": 64,
|
| 15 |
+
"PRELOAD_V": true,
|
| 16 |
+
"waves_per_eu": 2,
|
| 17 |
+
"num_warps": 4,
|
| 18 |
+
"num_ctas": 1,
|
| 19 |
+
"num_stages": 1
|
| 20 |
+
},
|
| 21 |
+
"pe": {
|
| 22 |
+
"BLOCK_M": 128,
|
| 23 |
+
"BLOCK_N": 32,
|
| 24 |
+
"PRELOAD_V": true,
|
| 25 |
+
"waves_per_eu": 2,
|
| 26 |
+
"num_warps": 4,
|
| 27 |
+
"num_ctas": 1,
|
| 28 |
+
"num_stages": 3
|
| 29 |
+
},
|
| 30 |
+
"pe_dropout_or_fp32": {
|
| 31 |
+
"BLOCK_M": 256,
|
| 32 |
+
"BLOCK_N": 64,
|
| 33 |
+
"PRELOAD_V": true,
|
| 34 |
+
"waves_per_eu": 2,
|
| 35 |
+
"num_warps": 8,
|
| 36 |
+
"num_ctas": 1,
|
| 37 |
+
"num_stages": 1
|
| 38 |
+
}
|
| 39 |
+
},
|
| 40 |
+
"bkwd_fused" : {
|
| 41 |
+
"preprocess_kernel": {
|
| 42 |
+
"PRE_BLOCK": 128
|
| 43 |
+
},
|
| 44 |
+
"dkdvdq_kernel_N64" : {
|
| 45 |
+
"BLOCK_M": 16,
|
| 46 |
+
"BLOCK_N": 64,
|
| 47 |
+
"num_warps": 8,
|
| 48 |
+
"num_stages": 1,
|
| 49 |
+
"waves_per_eu": 2,
|
| 50 |
+
"BLK_SLICE_FACTOR": 1,
|
| 51 |
+
"matrix_instr_nonkdim": 16
|
| 52 |
+
},
|
| 53 |
+
"dkdvdq_kernel_N128" : {
|
| 54 |
+
"BLOCK_M": 16,
|
| 55 |
+
"BLOCK_N": 128,
|
| 56 |
+
"num_warps": 8,
|
| 57 |
+
"num_stages": 1,
|
| 58 |
+
"waves_per_eu": 2,
|
| 59 |
+
"BLK_SLICE_FACTOR": 1,
|
| 60 |
+
"matrix_instr_nonkdim": 16
|
| 61 |
+
}
|
| 62 |
+
},
|
| 63 |
+
"bkwd_onekernel" : {
|
| 64 |
+
"preprocess_kernel": {
|
| 65 |
+
"PRE_BLOCK": 128
|
| 66 |
+
},
|
| 67 |
+
"onekernel" : {
|
| 68 |
+
"BLOCK_M1": 32,
|
| 69 |
+
"BLOCK_N1": 128,
|
| 70 |
+
"BLOCK_M2": 128,
|
| 71 |
+
"BLOCK_N2": 32,
|
| 72 |
+
"BLK_SLICE_FACTOR": 2,
|
| 73 |
+
"waves_per_eu": 1,
|
| 74 |
+
"matrix_instr_nonkdim": 16,
|
| 75 |
+
"num_warps": 4,
|
| 76 |
+
"num_ctas": 1,
|
| 77 |
+
"num_stages": 1
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
}
|
build/torch-rocm/metadata.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{
|
| 2 |
"name": "aiter-flash-attn",
|
| 3 |
-
"id": "
|
| 4 |
"version": 1,
|
| 5 |
"license": "MIT",
|
| 6 |
"python-depends": [],
|
|
|
|
| 1 |
{
|
| 2 |
"name": "aiter-flash-attn",
|
| 3 |
+
"id": "_aiter_flash_attn_rocm_e5d81f8",
|
| 4 |
"version": 1,
|
| 5 |
"license": "MIT",
|
| 6 |
"python-depends": [],
|
build/torch-rocm/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtKgAwIBAgIUSFLwqvM7l/bNNpomPz/NwDGCFU0wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjA4MDg1NTQxWhcNMjYwNjA4MDkwNTQxWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEat5ARvAr/FzAmOfjzAaiRxlVyAZmOkI8c481hctFAxXrW5JIHLEKO36J+RHk9zzceVcxIP7mNgnvDGIIfL0NDaOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUHkRnQr7AgN9FSNni1msA94P2JSMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZTVkODFmOGRhNTZhNGExNzYyNGIyZDI1MmEyODM4YmNiYWFlN2YzNDATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZTVkODFmOGRhNTZhNGExNzYyNGIyZDI1MmEyODM4YmNiYWFlN2YzNDAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoZTVkODFmOGRhNTZhNGExNzYyNGIyZDI1MmEyODM4YmNiYWFlN2YzNDAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGU1ZDgxZjhkYTU2YTRhMTc2MjRiMmQyNTJhMjgzOGJjYmFhZTdmMzQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjcxMjYzOTQyNDgvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABnqZx4hUAAAQDAEgwRgIhAPeo+w1Ul1U/NoHEKHAMSlr3O2sSorDFqSl7/QhIMBcsAiEAvzXqiD8K5SYFfn9fVHCU/CtAQ6Lhb1JN45HnsGqbj7IwCgYIKoZIzj0EAwMDZwAwZAIwMOYBWX4+hVmVCk/C1MfxHpNIk/m72zZedyBjyTHSIUypW+VO0+MukLvzAKW1GEVmAjB62maKnKAFeIFlsk4JFvSYBUI8kAomOdAGx5rtLrEsu0nYuV66hY1JfwbxZwXDZw4="},"tlogEntries":[{"logIndex":"1754979336","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1780908942","inclusionPromise":{"signedEntryTimestamp":"MEUCIQD5lANERj9Pf/5fYuywxKBMq85yU7rc7rX/iu/mByho4wIgWGFH02jbtQEzAO99OukZcLhAEdp8PFbTnDBMOd1q/J0="},"inclusionProof":{"logIndex":"1633075074","rootHash":"cQAmqdOUYCpwZyhkQVjW7h6iBWenMlCsryKceipl5Qs=","treeSize":"1633075075","hashes":["tdPKO2hJZ6xMowvqWmo66LYPeN1tdPfpstkJRzR+RFM=","r2s40i/mDr9xOYzjinJ88XAMCbu0nPvOd08QqlVGEcI=","M54+OUtPANrct4j0oWKn51bGijM32bJeArLx/LC8yYQ=","r/uLXBHRPU7+jqOBCfayZxo0YHIlT+oGOLss1gIdyo0=","cHTHh/ffvPzqdTKGyPfi3d+Fvr12+kbI1MJimu+TzDw=","GrlfXJDT20aNbElhIrE/Aah8HP/m5Ye8MBtTYmUM5Ik=","pLsH5xtmPtZsGvtBSoF55TXKi3eDyek5SG6kJpfJ2+E=","qUx5F018vTD4ocNz/0lF/09bjWNnSDSyrvE3VPO7Thg=","aNbk63OVxHW615u1h5gDJSuEC8z/YMYJ3HH7vF7K33w=","tgmzCkoVVTs0/unqGfeqjYPD6Z3AgOoCB4+1oZo9+yo=","XsYfiWUOfBERNbqnvEhm75r+cSkWy1eJICejpmuGyMw=","BhdMVwa7xxwCWC//5qOnv/wqs69cjw8nHrPed7oJkAI=","9jo43+euK7XyKWxBn2h5BwzuDA8PaUq2geJ8WGWycpQ=","x5jI42lOBdSMG7JZOSaglWmLNIaPCZTz6pXBlb7ZgYQ=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1633075075\ncQAmqdOUYCpwZyhkQVjW7h6iBWenMlCsryKceipl5Qs=\n\n— rekor.sigstore.dev wNI9ajBEAiAioS2Z5wqzjYxTgKP/9abeEwleWK3sXzjuebtw0zgZwQIgBfjmVKrkcUYEt4P6YR7ntKB5AUO6rcQfK2xwb3rlsBo=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1ZGRlNWI5ZWZkMjU0MDRiODUwZGI3M2E5MzljMzk0YTMwNzIzYjI4NzE2MGU2YTYwZGY4YTMxMmQ4ZGQzYmFmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUQvMktpOHEreDdlZE5ibWJKblB3NStnenREaEpkdERtK0pLUUlRT2VIS2tnSWdmWml3amhGdW9GQndFd1dnYzBxMWhWWmEvT1VQQ20veFFybWJmcHFQUHJVPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5STFowRjNTVUpCWjBsVlUwWk1kM0YyVFRkc0wySk9UbkJ2YlZCNkwwNTNSRWREUmxVd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxUVRSTlJHY3hUbFJSZUZkb1kwNU5hbGwzVG1wQk5FMUVhM2RPVkZGNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZoZERWQlVuWkJjaTlHZWtGdFQyWnFla0ZoYVZKNGJGWjVRVnB0VDJ0Sk9HTTBPREVLYUdOMFJrRjRXSEpYTlVwSlNFeEZTMDh6TmtvclVraHJPWHA2WTJWV1kzaEpVRGR0VG1kdWRrUkhTVWxtVERCT1JHRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZJYTFKdUNsRnlOMEZuVGpsR1UwNXVhVEZ0YzBFNU5GQXlTbE5OZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOWFWRlpyVDBSR2JVOUhVbWhPVkZwb1RrZEZlRTU2V1hsT1IwbDVDbHBFU1RGTmJVVjVUMFJOTkZsdFRtbFpWMFpzVGpKWmVrNUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMXBVVm10UFJFWnRUMGRTYUU1VVdtaE9SMFY0VG5wWmVVNUhTWGxhUkVreFRXMUZlVTlFVFRRS1dXMU9hVmxYUm14T01sbDZUa1JCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMXBVVm10UFJFWnRUMGRTYUU1VVdtaE9SMFY0VG5wWmVVNUhTWGtLV2tSSk1VMXRSWGxQUkUwMFdXMU9hVmxYUm14T01sbDZUa1JCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZFZNVnBFWjNnS1dtcG9hMWxVVlRKWlZGSm9UVlJqTWsxcVVtbE5iVkY1VGxSS2FFMXFaM3BQUjBwcVdXMUdhRnBVWkcxTmVsRjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1ONFRXcFplazlVVVhsT1JHZDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNXhXbmcwYUZWQlFVRlJSQXBCUldkM1VtZEphRUZRWlc4cmR6RlZiREZWTDA1dlNFVkxTRUZOVTJ4eU0wOHljMU52Y2tSR2NWTnNOeTlSYUVsTlFtTnpRV2xGUVhaNldIRnBSRGhMQ2pWVFdVWm1iamxtVmtoRFZTOURkRUZSTmt4b1lqRktUalExU0c1elIzRmlhamRKZDBObldVbExiMXBKZW1vd1JVRjNUVVJhZDBGM1drRkpkMDFQV1VJS1YxZzBLMmhXYlZaRGF5OURNVTFtZUVod1RrbHJMMjAzTW5wYVpXUjVRbXA1VkVoVFNWVjVjRmNyVms4d0swMTFhMHgyZWtGTFZ6RkhSVlp0UVdwQ05nb3liV0ZMYmt0QlJtVkpSbXh6YXpSS1JuWlRXVUpWU1RoclFXOXRUMlJCUjNnMWNuUk1ja1Z6ZFRCdVdYVldOalpvV1RGS1puZGllRnAzV0VSYWR6UTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgu/nkW9soSmjBRd4xhsGJDxbT/+nGJLVrC2YKuzDOn10CFQCnHTgW7I+QJfw69vJgiNU+QAaZZBgPMjAyNjA2MDgwODU1NDFaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDYwODA4NTU0MVowLwYJKoZIhvcNAQkEMSIEICx4gYGkD55ybV88BDTE5ouXqumZ8dP0zi5X3OwDlz9RMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMBIhho8zN+Ou+agS0qBbn0Ma6wG83+wG7cVp5EvmxoAd7hZLy/Lj8RhqoaTKuu11ewIwclO7Wo5ZnhM8psfjZn2mS6740ykGJXLL18kkfPDQ1H0rSMO38P7JIuTAd7VbpYns"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"Xd5bnv0lQEuFDbc6k5w5SjByOyhxYOamDfijEtjdO68="},"signature":"MEUCIQD/2Ki8q+x7edNbmbJnPw5+gztDhJdtDm+JKQIQOeHKkgIgfZiwjhFuoFBwEwWgc0q1hVZa/OUPCm/xQrmbfpqPPrU="}}
|