diff --git a/build/torch212-cxx11-cu126-aarch64-linux/_ops.py b/build/torch212-cxx11-cu126-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch212-cxx11-cu126-aarch64-linux/_ops.py +++ b/build/torch212-cxx11-cu126-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index 8f4f7cfa60bb6cc02bedd64bbc2240d8fb7729b9..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5576bc98ec57e2fa36dd060a2eb37f9c6a5671d02959857cce85ebfac1bb9d80 -size 138067384 diff --git a/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..8885f8c614f97ee9eedb0fe0777e1c772d5f07b4 --- /dev/null +++ b/build/torch212-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:746fab30a399d252e7e846bb4857fbb00df0cb3d5e7d3a8cd210e754c6dde5e8 +size 138067384 diff --git a/build/torch212-cxx11-cu126-aarch64-linux/metadata.json b/build/torch212-cxx11-cu126-aarch64-linux/metadata.json index 1024a2c6488838a80e0134448f9aed1d3d757b29..74dd36f8915b51fa19cc80670ea35349164b9278 100644 --- a/build/torch212-cxx11-cu126-aarch64-linux/metadata.json +++ b/build/torch212-cxx11-cu126-aarch64-linux/metadata.json @@ -1,9 +1,10 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ @@ -22,20 +23,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "VXa8mOxX4vo23QYKLrN/nGpWcdApWYV8zoXr+sG7nYA=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "dG+rMKOZ0lLn6Ea7SFf7sA3wyz1efTqM0hDnVMbd5eg=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore b/build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore index 18afee2bbe6df15bd4bd1b67b89bf0905b110038..56fa61b690e2c66a6580f19e5079915cfadf8de3 100644 --- a/build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore +++ b/build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtKgAwIBAgIUMzi/PabA9BqcOssmBx0S9W+hBOAwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzA2WhcNMjYwNzA4MTEyMzA2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXIqZ3uuWmLegDChePw92RLthmSxkupi9sDMw2Ff3oTnVjClDIqCx34uPPC2z0XPS62HvBqgLnttoPk6aoXWwfaOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUfSripb5h7N+q2UPoa48d4q0neQUwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0FudvQAAAQDAEgwRgIhAPZXuz3gkW86KpUdtdcbCWPLL9kzmW3YsYIhKclGaAEjAiEAuz614rQEugRAilcX5Rxsm2T0IuaFBv5RqFQopVHouPAwCgYIKoZIzj0EAwMDZwAwZAIwH4VPf6O0epc40RFtSJcJOctOgqlMZbrEU/vOkvPhT1hO9vbxYjtGDExW9JHX5NXxAjAaG4VSTEaeVissNKlWenIdXR5fJSnyVoOcZIktFW52m0k+IKAcoQKk0ELAXIh6opE="}, "tlogEntries":[{"logIndex":"2115038259", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509187", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQDhdReLBWSU5wny06HK4N2zmzUgehRvz03NyvrBjl+XjQIgDT7BxyCGdUl0AF+v5RFg1Af7WuiX2Sm6x6Ti5y2DljI="}, "inclusionProof":{"logIndex":"1993133997", "rootHash":"N91T3IXlxLpPOvXguX7aXUV0jbcfCPVUe3h8YTqd6vQ=", "treeSize":"1993134147", "hashes":["YPh653fvH3J0n4Rd7j9COzGUzG+r8KOXgNbp9OeNJcQ=", "EoukgGhOgtPfn5e0I1inYaNxvhM7Fcq+awR9lI9x+2g=", "ctMK5xSpiwL0B5XxgFNipZy6y89GPGKEphYoJqG/IYQ=", "zHm+UsUkuwQzbXCDRGzWcHOQtlF7M2aGR+QdrOEeSws=", "uC3wauzas7+/ccmTSdYo8Z7NumZLExkb0sSTW34qkgY=", "MNG7mQhCHK/aSpkmRLfyJpmR9/kv9T3Cq7SjXgdGUNw=", "oxCT48NIW70pZzAwhI86IorfofvkQshRd8oibm/BjEo=", "ZMmDFVA0NgnMd5ch9wBKAgQS/4/ZlkawuQbwE6VB5M4=", "lEi+Rdlwv40hWMxtFK4l7yyTOcR+b85SAo9oEsi+e0w=", "2rbAQRF/6ZHzBA1KTv+yHHW6FFIW6w/5IXdScH56vCk=", "60IqpoS03BQVZ1xfwY9d86arUzjh+yoOhp8yi5XNVAo=", "LfIL3EVKDnnTjDKMbj/Wh3bu35o3HU5M3T1J32u5l60=", "Xg8ImF9ogkS66XEqEy6LggQmhIZJNZSVFjt5bXpyLT8=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993134147\nN91T3IXlxLpPOvXguX7aXUV0jbcfCPVUe3h8YTqd6vQ=\n\n— rekor.sigstore.dev wNI9ajBFAiAx7shOLUX1+Dz/9YB6gnT6NXVv7Y0Ie+Beu2hVNb0DDgIhAKxu2m8o39iCbXx99e0K61BvHb4D6xJ16rwrTQG4Hgte\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3OGQ0ZDNjNDQxZjZkY2ZjMWY0OWY1ZmZmN2ViYzM2NzQ1ZjQ4ZjRiOGI5YmQ4ZGQ4MTc1MTcyNDJiMDhhYWI3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNib3dDWjRieWJzUEpnVHFiK1o4Rm1OYjFhb00zYkdNemJrcGRWUEpUNnZRSWdNdUJWNUloMStyV29mOWh1NytHbDR1UTR1WWdrODFFZjhwc0duc05MbmNJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5STFowRjNTVUpCWjBsVlRYcHBMMUJoWWtFNVFuRmpUM056YlVKNE1GTTVWeXRvUWs5QmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBCTWxkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZZU1hGYU0zVjFWMjFNWldkRVEyaGxVSGM1TWxKTWRHaHRVM2hyZFhCcE9YTkVUWGNLTWtabU0yOVVibFpxUTJ4RVNYRkRlRE0wZFZCUVF6SjZNRmhRVXpZeVNIWkNjV2RNYm5SMGIxQnJObUZ2V0ZkM1ptRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZtVTNKcENuQmlOV2czVGl0eE1sVlFiMkUwT0dRMGNUQnVaVkZWZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZrZGxGQlFVRlJSQXBCUldkM1VtZEphRUZRV2xoMWVqTm5hMWM0Tmt0d1ZXUjBaR05pUTFkUVRFdzVhM3B0VnpOWmMxbEphRXRqYkVkaFFVVnFRV2xGUVhWNk5qRTBjbEZGQ25WblVrRnBiR05ZTlZKNGMyMHlWREJKZFdGR1FuWTFVbkZHVVc5d1ZraHZkVkJCZDBObldVbExiMXBKZW1vd1JVRjNUVVJhZDBGM1drRkpkMGcwVmxBS1pqWlBNR1Z3WXpRd1VrWjBVMHBqU2s5amRFOW5jV3hOV21KeVJWVXZkazlyZGxCb1ZERm9UemwyWW5oWmFuUkhSRVY0VnpsS1NGZzFUbGg0UVdwQllRcEhORlpUVkVWaFpWWnBjM05PUzJ4WFpXNUpaRmhTTldaS1UyNTVWbTlQWTFwSmEzUkdWelV5YlRCckswbExRV052VVV0ck1FVk1RVmhKYURadmNFVTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgU10tsGNqyLONJg2tf555yqsH78iNs3hyx8+/OEcYfcgCFQDct/+o4VoHy432EZJ0yA3u009LsRgPMjAyNjA3MDgxMTEzMDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwODExMTMwNlowLwYJKoZIhvcNAQkEMSIEIP1HL6u1UwEDeScXZlD93s2Dc/8T/x6pxBdn4iokdBRtMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMFre0rVd0HD0ffgadXTMzN7zbZeUgEnuz1d6TfYxKbAoPgAoe1FFxlf3iSqiQVWPyAIxANZPcUAPTaWVoo7rhXO80swZtfBGLwucIZAlIcFQMiji2o4qM9igkBqnLtYF4GlI0A=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"eNTTxEH23PwfSfX/9+vDZ0X0j0uLm9jdgXUXJCsIqrc="}, "signature":"MEUCIQCbowCZ4bybsPJgTqb+Z8FmNb1aoM3bGMzbkpdVPJT6vQIgMuBV5Ih1+rWof9hu7+Gl4uQ4uYgk81Ef8psGnsNLncI="}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUR3l6+PYhq12gwO4z3VqjlUI+ABYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzIwWhcNMjYwODI3MDgxMzIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/0aqaWpCJ53p5S0kOQ7CuvbaHDnpxJoLaipkh3Lea0PST6GqrcUG06AXOtY4XM2mPm4ut4Ctx8QnRbsb8TljFqOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU9MkunkG1kyxfEGsX+ronFGWAyJYwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+sXMAAAQDAEcwRQIhAPS1Ez3DUxjvKY/QZlIfY5gSC/a84xYaELYHZIgaMcLcAiAFUtOjMNA2Lapq2vkeegGYa19wuNShSy7+8Rj1o2ZG/jAKBggqhkjOPQQDAwNoADBlAjEA9g2h+q0S6haeJjgkrOxa27laMM5oS12gb+Wg1mk6l5ikFaOZ+974AZWmDzpj3cYYAjB8J3H5YC8wzIGspFbxlIvKxg0QfGBynnKsCR8Qf4HsqrZAtNK5tCAtg+jkBuISfHM="},"tlogEntries":[{"logIndex":"2614701388","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817800","inclusionPromise":{"signedEntryTimestamp":"MEYCIQDxzXdVPlWUScHGABz9FXdeYfLx0zm/BbkOTIjRfOLu2QIhAOvvVlPHirvw73Pt4agwoXaX34CVsgSpHXohrvcVmLhP"},"inclusionProof":{"logIndex":"2492797126","rootHash":"IawHkaeXJWh1aVoXl18057ouvmmjuKFMMCBZl6CV0ys=","treeSize":"2492797134","hashes":["C5t+s684zOVXEYhxG3RgCMBFN/ekEYfABCDMRUWEqHI=","wz40BmiosaxNGfQ87wHL7dMZ4HtVfeuqb18ofeGpXkI=","hUYsNALco+0dwEYS7xget3ChBsVMlMx/yF7ygH0U2pg=","P4dLlopKPbBKmXRB2g5GC7QMFbFLuiJsEYK04iDcQP0=","Jvwf3diaBhh7UmwCMtCb3DjZDYpGled1mif1bqPvA0c=","icgd63hwjQ8rD/Zslv/rmpYF9kYgA4W6P9cMCOCWg30=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797134\nIawHkaeXJWh1aVoXl18057ouvmmjuKFMMCBZl6CV0ys=\n\n— rekor.sigstore.dev wNI9ajBFAiB2OvPM4a/uegL6kqep23dsgD+S1z8PyzI+Aln0vZepygIhANLp71Jbo8EJtL7Ua0Lv0Nv6vuCGTVpJOmkkDXFlZWot\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjZTE4MmE0MTI3MzlmMjg3NzQ1OTkxOTg4ZWY5YWMyYjY3NmE1ODI0MDc5YWM2MzY2NWNkMWRmZDc5MTBkNjUyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUQ3ZkplMzRraENyMm9TaFViRXF1eWdwM1gzV2phYXFSMXF2WVQ0TEJCMThRSWdOWCtnaWhSYk5lK0dGSWdJWEY4K28yVHMyZTR5Qjl3dlJRNUZDaHl2YmtRPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlVqTnNOaXRRV1doeE1USm5kMDgwZWpOV2NXcHNWVWtyUVVKWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKZDFkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV2TUdGeFlWZHdRMG8xTTNBMVV6QnJUMUUzUTNWMlltRklSRzV3ZUVwdlRHRnBjR3NLYUROTVpXRXdVRk5VTmtkeGNtTlZSekEyUVZoUGRGazBXRTB5YlZCdE5IVjBORU4wZURoUmJsSmljMkk0Vkd4cVJuRlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlU1VFd0MUNtNXJSekZyZVhobVJVZHpXQ3R5YjI1R1IxZEJlVXBaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3R6V0UxQlFVRlJSQXBCUldOM1VsRkphRUZRVXpGRmVqTkVWWGhxZGt0WkwxRmFiRWxtV1RWblUwTXZZVGcwZUZsaFJVeFpTRnBKWjJGTlkweGpRV2xCUmxWMFQycE5Ua0V5Q2t4aGNIRXlkbXRsWldkSFdXRXhPWGQxVGxOb1UzazNLemhTYWpGdk1scEhMMnBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRVGxuTW1nS0szRXdVelpvWVdWS2FtZHJjazk0WVRJM2JHRk5UVFZ2VXpFeVoySXJWMmN4YldzMmJEVnBhMFpoVDFvck9UYzBRVnBYYlVSNmNHb3pZMWxaUVdwQ09BcEtNMGcxV1VNNGQzcEpSM053Um1KNGJFbDJTM2huTUZGbVIwSjVibTVMYzBOU09GRm1ORWh6Y1hKYVFYUk9TelYwUTBGMFp5dHFhMEoxU1ZObVNFMDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgrCnOtuQDq6vM85UsShFQD2LBRJORFzF9wZkNovHQZ+0CFCt601EUsqtzH/53D9YRJpmHfoO7GA8yMDI2MDgyNzA4MDMyMFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzIwWjAvBgkqhkiG9w0BCQQxIgQgEHCtR0TGfPtgWnnIqI0YKTc97bt2lOKgLkLtIBN5Ul4wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxALxb0Wpc9uTQBGoyNxhkMMSUgtnhs1IbKBDZ+neZNnRbV1ANXkdOMut1RhpvaSOM4gIxAI2oAFfjdxM6IBii6kIKdjGkc73vkfZ+S7JLNNic1zAG0JbhxxcUsGK8bSZ8EvzqyA=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"zhgqQSc58od0WZGYjvmsK2dqWCQHmsY2Zc0d/XkQ1lI="},"signature":"MEUCIQD7fJe34khCr2oShUbEquygp3X3WjaaqR1qvYT4LBB18QIgNX+gihRbNe+GFIgIXF8+o2Ts2e4yB9wvRQ5FChyvbkQ="}} \ No newline at end of file diff --git a/build/torch212-cxx11-cu126-aarch64-linux/paged_attention/__init__.py b/build/torch212-cxx11-cu126-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu126-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch212-cxx11-cu130-aarch64-linux/_ops.py b/build/torch212-cxx11-cu130-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch212-cxx11-cu130-aarch64-linux/_ops.py +++ b/build/torch212-cxx11-cu130-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index b34e6c0c947f07d92d0f02d06150cd64520f871e..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c86a1b8234227dd0fb5ef8364eebac9f368e8402ad27040d803556407044fe04 -size 90545632 diff --git a/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..5eca787d2bbd3fa5cad02c16ed89f21e74ed25af --- /dev/null +++ b/build/torch212-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76c94efe50256877d11649ed499e8906f3e0574a7831c292727b4e702e1ac516 +size 97230312 diff --git a/build/torch212-cxx11-cu130-aarch64-linux/metadata.json b/build/torch212-cxx11-cu130-aarch64-linux/metadata.json index 8e314a2eca89758302c5449210e6b3b04ebfd729..de984f579ab08f4ef61c8dd03b88728f3d000271 100644 --- a/build/torch212-cxx11-cu130-aarch64-linux/metadata.json +++ b/build/torch212-cxx11-cu130-aarch64-linux/metadata.json @@ -1,13 +1,15 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ "10.0", + "10.3", "11.0", "12.0", "12.1+PTX", @@ -24,20 +26,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "yGobgjQifdD7Xvg2TuusnzaOhAKtJwQNgDVWQHBE/gQ=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "dslO/lAlaHfRFkntSZ6JBvPgV0p4McKScntOcC4axRY=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore b/build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore index 6b8e8168bb11a27b8cbc6f7b5b344f37de82155b..8c240049567d4b3f3ae1dfabc24b80d30d66bd13 100644 --- a/build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore +++ b/build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSTCCBtCgAwIBAgIUW3eRjYxfNdeLd2QYM7I6Xq7ukFkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzA4WhcNMjYwNzA4MTEyMzA4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEK5qDk179Z3LuN7JtdCMIma314v4Nf+VfEeyz8H9LrNbEhFJdRn33UJIxWbI4FKWN7RkRXruwusmk0hr+sKQOd6OCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUzRrstw8D+GC1PFPYIPW7SMIwJ9QwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0FufyQAAAQDAEYwRAIgEQUhVUrRYihlt1a73gE2fq5h791r3yDU8wkE2T0elfQCIAOVVR6WPD7IER3uJTHTLKMgz89x5YQky4ogqP9ZHD0eMAoGCCqGSM49BAMDA2cAMGQCMHI2swblvjkDGQgcAHXmqQqR42DpVoaDQ5NJbVuIomnJrdlvKUGbtDPA6iYA9Fu+OAIwCIQnSaqvPECiUnhxd1cDj/B+qNphkZ223XLnW3VmSpy7cjZenV5dyxx2/z6CPKm+"}, "tlogEntries":[{"logIndex":"2115038717", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509188", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQDOllgpt+YrmWFr/9DQDSiu1Qkfe21x2gNAhunsKy0WWAIhAL1Ym37eDpxfcxoWHMQTwQy8SpD/p2vWXjJsEyNdQz7y"}, "inclusionProof":{"logIndex":"1993134455", "rootHash":"HjQDs3WSo2D3kn0ASaQ+HgMr96zd2vsdWi6QOk5FWjY=", "treeSize":"1993134485", "hashes":["+dYzKBxvJuMiwJAl5ktwKlf+WwSabMbhogETIlC7uW0=", "FvPC4qSjruhZlAdLoIjxtZoS5lXL3OrrbvRGUIoY7nY=", "obosoLu7g9o0vQh4BvTIMDPj+vThqydI0OE5J9rEA4A=", "3SZVtPHzQBnFBWVYeBwqk9DrQx8lTcyIMxuOQEc0wIw=", "HBLHcg4NM1cvnVs3pvF8CAegp5FTWYs44jh/8Hj5A+w=", "gLanWjzb4r1HWSH1LNLI104s9Lznb6kNjdNzSmfHuaM=", "Excv0haANwxc1W7dP4BM+5pDPsvLRFolmcUzdbpLQbk=", "JTlRvoJnufm2KNoWqKKZkMGXNmd14EgUGQQNrf02lBM=", "FXXRxvtbUc1NGbShm6Zf6O7T6aeqUjJXsEwdPBTYL0M=", "pKbvZfV91AX+uD/5cl79XlBxUMHgILpQ7ga3acAZ8a0=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993134485\nHjQDs3WSo2D3kn0ASaQ+HgMr96zd2vsdWi6QOk5FWjY=\n\n— rekor.sigstore.dev wNI9ajBEAiATYDYz0/Z1WbZVEy13EuUzjfJzFT2TKCjG4RK8v6b49QIgOr8lsbx9reqzXStUAKzA6q2H+oPjFuIv7KvfY5MZ7tE=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2NTI3OGI0MGU4ZTA2ZGFmM2QwNWY2ZDk0ZDY3NmFlZDQwNDZhZDUxNjM0NzhiMDEyZmVkYzk1YzY3MmVmOThjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRnMvanJzQzlVa0Y5OGpOSXBRZFRIUXhkOFI5Q3R5WFYybmErcTlBK0NuSkFpRUFwM3FpNUVEQkg2YnU5SVlrWitER2dZL0pMWUFiR2hDLzhHTzJueVN1NkhFPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRWRU5EUW5SRFowRjNTVUpCWjBsVlZ6TmxVbXBaZUdaT1pHVk1aREpSV1UwM1NUWlljVGQxYTBacmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBCTkZkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtFMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZMTlhGRWF6RTNPVm96VEhWT04wcDBaRU5OU1cxaE16RTBkalJPWml0V1prVmxlWG9LT0VnNVRISk9Za1ZvUmtwa1VtNHpNMVZLU1hoWFlrazBSa3RYVGpkU2ExSlljblYzZFhOdGF6Qm9jaXR6UzFGUFpEWlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlY2VW5KekNuUjNPRVFyUjBNeFVFWlFXVWxRVnpkVFRVbDNTamxSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZtZVZGQlFVRlJSQXBCUlZsM1VrRkpaMFZSVldoV1ZYSlNXV2xvYkhReFlUY3paMFV5Wm5FMWFEYzVNWEl6ZVVSVk9IZHJSVEpVTUdWc1psRkRTVUZQVmxaU05sZFFSRGRKQ2tWU00zVktWRWhVVEV0TlozbzRPWGcxV1ZGcmVUUnZaM0ZRT1ZwSVJEQmxUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlZMEZOUjFGRFRVaEpNbk4zWW13S2RtcHJSRWRSWjJOQlNGaHRjVkZ4VWpReVJIQldiMkZFVVRWT1NtSldkVWx2Ylc1S2NtUnNka3RWUjJKMFJGQkJObWxaUVRsR2RTdFBRVWwzUTBsUmJncFRZWEYyVUVWRGFWVnVhSGhrTVdORWFpOUNLM0ZPY0docldqSXlNMWhNYmxjelZtMVRjSGszWTJwYVpXNVdOV1I1ZUhneUwzbzJRMUJMYlNzS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg9a8FM8+HQao1ZF/ETQxmUlqYXubbNCEUIFeOhlPVGeYCFQCAh/rYtpwDQGQHQnrdXga8LYuNLxgPMjAyNjA3MDgxMTEzMDhaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwODExMTMwOFowLwYJKoZIhvcNAQkEMSIEIHHYhmS0rfHazp3iZJUO3/JNCYn5PKcvRsYkqOb1+Dq4MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMELl+tjXvwA95N4MVdExnaJ4tM2QnSMnVdNzEoJ3om7hNJGdFBuKEPNRViEnmCjwjgIxAJ2wJFVYdznC7moROIhTAPosDd0gRbLDBqH5txmnFozhFK8s6qeMWqI6m/5xc+AQEw=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"ZSeLQOjgba89BfbZTWdq7UBGrVFjR4sBL+3JXGcu+Yw="}, "signature":"MEUCIFs/jrsC9UkF98jNIpQdTHQxd8R9CtyXV2na+q9A+CnJAiEAp3qi5EDBH6bu9IYkZ+DGgY/JLYAbGhC/8GO2nySu6HE="}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtCgAwIBAgIUPfIbtXCTQ2PTMR/pMudqWSOXHI8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzIwWhcNMjYwODI3MDgxMzIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5moy2uPfY5uNKPERVjfU0C6swDhI+sni3SrId3IufPL6Sg5NvDigOa7SiSmh9Hfx+3LyVlddE2dwZ7F45ZXucaOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUTsQFSaZsGmr0zGy9pAqZKvyCWkYwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+tN4AAAQDAEYwRAIgdpEJN1kUAdMmOpsOHNFkx4P0xV+hZj+EogTLdoymsCUCIH2sB9881qtDVAwSXNbjnwBE0DtUGXCfN+oGrTv2wuaBMAoGCCqGSM49BAMDA2gAMGUCMQCCsi5oUlM+r7XDk73GlH9itICC7vh2xyMdMSiyqDOVSmepjrPXklN072ULAUZd6W0CMDbfbz4ng4jhH75YhUqDDo2fUOu8gzqRaQHabW0WS9b9AtmWJC6LAb46yWV03kyVHA=="},"tlogEntries":[{"logIndex":"2614701464","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817801","inclusionPromise":{"signedEntryTimestamp":"MEYCIQDN8D5/EHPJdl1MbJWdK36DTEBMgEdPgZJhf9ei9KP7/gIhAOhxxUMIk4zSyRDqmO0Tv+FtN/iBXHuKHVSfd70BYW/4"},"inclusionProof":{"logIndex":"2492797202","rootHash":"475iNgWq/8T2Ws+CSGqoeU372wcEO4co6OpR6cBuDFg=","treeSize":"2492797212","hashes":["0NZKL7YJi/s3V4lDsMZiqbYWPrzYjJ7FvbaJpN/h7Ng=","nnybOYwAVWR6KMyCvlse8bgAeFKb5YYUT2/3IUgJSqM=","02byBe8EF43UnQwdHxmLVsMDteB22H7Cy6rRDfx+YSc=","vAYOn5qarJcSWdWWUykpczswNuOnc6zFAdKoHXjPTVg=","C+QZ+QrldQC+IsZqUxzU2VpodshxZGmHTAhPBERMen8=","0fsGS1dVLGWAYcDSMD1KxtzZ0NUDtIUtBJP7bm4QP68=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797212\n475iNgWq/8T2Ws+CSGqoeU372wcEO4co6OpR6cBuDFg=\n\n— rekor.sigstore.dev wNI9ajBFAiEAlfTSt5PlEMllXakLeR3OWUo/aZy8Niy43ZJO4cl9UqsCIFBl5jvgyFjWoSQ84FKrf9EfwcDkW3Z5qTMWh6N4Sxje\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxNDRlMWZkYTkxOTU1MDYzNjllOGEyODQ3MTE0ODQ2YTlmMjc5MmJiN2Q4MWVhMTcwODMwYmJjNmUzY2EzNDc0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQ1JpNFc3OFV6MG41KzZLVEpwa3M5UVRYTVc2dVhWc2tpR1phN0U1a2lVL0FpRUFtVzVWaUpQaW40VkpLL0FiUDAxYnd3TGhPaGlMTStObGZpVUphOWVzMTJrPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SRFowRjNTVUpCWjBsVlVHWkpZblJZUTFSUk1sQlVUVkl2Y0UxMVpIRlhVMDlZU0VrNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKZDFkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUxYlc5NU1uVlFabGsxZFU1TFVFVlNWbXBtVlRCRE5uTjNSR2hKSzNOdWFUTlRja2tLWkROSmRXWlFURFpUWnpWT2RrUnBaMDloTjFOcFUyMW9PVWhtZUNzelRIbFdiR1JrUlRKa2QxbzNSalExV2xoMVkyRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZVYzFGR0NsTmhXbk5IYlhJd2VrZDVPWEJCY1ZwTGRubERWMnRaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3QwVGpSQlFVRlJSQXBCUlZsM1VrRkpaMlJ3UlVwT01XdFZRV1JOYlU5d2MwOUlUa1pyZURSUU1IaFdLMmhhYWl0RmIyZFVUR1J2ZVcxelExVkRTVWd5YzBJNU9EZ3hjWFJFQ2xaQmQxTllUbUpxYm5kQ1JUQkVkRlZIV0VObVRpdHZSM0pVZGpKM2RXRkNUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlaMEZOUjFWRFRWRkRRM05wTlc4S1ZXeE5LM0kzV0VSck56TkhiRWc1YVhSSlEwTTNkbWd5ZUhsTlpFMVRhWGx4UkU5V1UyMWxjR3B5VUZocmJFNHdOekpWVEVGVldtUTJWekJEVFVSaVpncGllalJ1WnpScWFFZzNOVmxvVlhGRVJHOHlabFZQZFRobmVuRlNZVkZJWVdKWE1GZFRPV0k1UVhSdFYwcEROa3hCWWpRMmVWZFdNRE5yZVZaSVFUMDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg3dfI1uBhdM84Ok0lg+G/H5MpwsDImv2aRR5PCNzz9l4CFDSE+ZnGDZl+k+m6hM3Y60NI/pRpGA8yMDI2MDgyNzA4MDMyMVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzIxWjAvBgkqhkiG9w0BCQQxIgQg89hnirz/SoN+VOYlzwMHuW63OHfiJ/PZCFV/IsIKlU8wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAN0PMDut3DtRV6oqRjNBt0bk+s7cPpNKNQMb6tA9yYj8qVtgXZtdvDG6i6R/ZUfiggIwBZWwz0HWNJSQ61Nu/IUY5YwmPKnq+G9PR6KHu1dyzEc+SLJwR+I3Vmfz3Zp+E+6I"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"FE4f2pGVUGNp6KKEcRSEap8nkrt9geoXCDC7xuPKNHQ="},"signature":"MEUCICRi4W78Uz0n5+6KTJpks9QTXMW6uXVskiGZa7E5kiU/AiEAmW5ViJPin4VJK/AbP01bwwLhOhiLM+NlfiUJa9es12k="}} \ No newline at end of file diff --git a/build/torch212-cxx11-cu130-aarch64-linux/paged_attention/__init__.py b/build/torch212-cxx11-cu130-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu130-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch212-cxx11-cu132-aarch64-linux/_ops.py b/build/torch212-cxx11-cu132-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch212-cxx11-cu132-aarch64-linux/_ops.py +++ b/build/torch212-cxx11-cu132-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index f0a271698f78963c45c7b69d2f8434c69f240149..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95d70ac2732c002babec889d82be2b5452641959c6ca481eea98c1abf7a8f5e7 -size 89434528 diff --git a/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..196e5e870e1e87cb836cfebfb5ca985f2c04240f --- /dev/null +++ b/build/torch212-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6926012d2f7813eba37423bb0c55487428cb469ad70ade5bb013c6bc12b2a82b +size 96119288 diff --git a/build/torch212-cxx11-cu132-aarch64-linux/metadata.json b/build/torch212-cxx11-cu132-aarch64-linux/metadata.json index 490e64040877d12871b80ed6c2f6eef2fc05c25b..6907d63d27a3320b6422974279d39d72e682de53 100644 --- a/build/torch212-cxx11-cu132-aarch64-linux/metadata.json +++ b/build/torch212-cxx11-cu132-aarch64-linux/metadata.json @@ -1,13 +1,15 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ "10.0", + "10.3", "11.0", "12.0", "12.1+PTX", @@ -24,20 +26,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "ldcKwnMsACur7Iidgr4rVFJkGVnGykge6pjBq/eo9ec=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "aSYBLS94E+ujdCO7DFVIdCjLRprXCt5bsBPGvBKyqCs=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore b/build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore index 45a1363f893ac62cf95bbde74c4e2da5131e2754..5ca9f71348fd4d731648fde0ed6cc8e19a684390 100644 --- a/build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore +++ b/build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtGgAwIBAgIUZjhrlVKaDeUnNfRTSIJUvy8mCW0wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzEwWhcNMjYwNzA4MTEyMzEwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExGIqShBUZpgPN61A81q8WRZ54NnVVW25CZpyPOeTmqYZtIG0e/9Z4wIxBegCJHo4bTEbdNKaHdykMNg/o9ztw6OCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUlzwxCACgieKAuICDYVC12a2KROQwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0FuhqAAAAQDAEcwRQIgHAW8daf4VNH3P02l0OUh2rixYuhRbQV1XLl0vZhOXP4CIQDkcqZkdwxAt0nJVSBsSx+gaQkr6F0QxclIcjN5DHHgtTAKBggqhkjOPQQDAwNpADBmAjEAlBprcRaa6ixjEYEdznqpPa7rfyXniMxWBMS99NwT8is7/bQ6Pu3yBYwA+YtQ46r1AjEA3JzZLsO9ih7uGGREEDlbRNCfi2oZYG7IwJS8uorB/8K39gKtN0JXCoWRWq7O2vbn"}, "tlogEntries":[{"logIndex":"2115039319", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509191", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQDtd5ePvNbFLSR/i76KzQjZvAbJwJvaHsd9GpTxT0pmTgIgXmETEogPOV7vu1G1+Mv5duXGqD5/04pGtetpw2rXtrs="}, "inclusionProof":{"logIndex":"1993135057", "rootHash":"4ur3fq09/PeUPTBTDdIzOD7l3RGnwYt5JbTCeK/QdYU=", "treeSize":"1993135125", "hashes":["TTI9NmuUXJGqttjB4kS2hsGuXnOxrosV9fMI41MjgTw=", "cWuYhVDhGvrypP1iotUAlFNkmeH4F4StoocGJC+h3OE=", "g696/UTTs/KvEMGj4ndKsm9qTh9pEfg+aL9xdZz/I1c=", "iNs6nbCXRIR2VjdEhxaRDVRsMgEi66pqP89EKifENZ8=", "PssPEcYcJv5pa6wayCaEUXT9CwgMgQySQRtGhj/8CCw=", "1M5/FBJVc8yrTDZar25IneKCrpe55jBPinXydF2xNOg=", "skb29p0FDH0zU1WtJInko/MR/vo6BPbqneTmWR1URJ8=", "nVlZQa1j/hhrMD6fimdBEug5Q6w37Ao3sIp7OnbHkiQ=", "TGyB+WkvySR7BUU2Qg/CYzweMmJgY8mBgDtrR2YK3tA=", "R658uDQolrw2ScIZudL4F/qz+U0tgLqZjDOkZPmmJ9k=", "17mjEAiYUcfO8gLqwg3lBksYiRASpIVdqfrwwkXlA1o=", "pKbvZfV91AX+uD/5cl79XlBxUMHgILpQ7ga3acAZ8a0=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993135125\n4ur3fq09/PeUPTBTDdIzOD7l3RGnwYt5JbTCeK/QdYU=\n\n— rekor.sigstore.dev wNI9ajBGAiEAtypOrDW7O7Jp04acAsbH7L4RavL/cOctmJ/RxiGey/MCIQCx7AvCk3glGSxyApSNVxNy4JYeHk1KCyeqF3EJ1aHfkg==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZTQ4ZmVhNmJlYWYxNWNkNTg2ZTdlMzU5YzRmNGFkMGI4OTAzM2ExNjAwMDYyZDM3YzgyYWI2YTc0NzlhYzU3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQzBIUDRoYWptSjRQTERDbmJnTEFPeEdqWjZiNy9BaWt6V1pabUZ1TkFNM0FpQWxBT0g0QXRWS21JUGxKRDVRN1JsT0lVNG5pTVBmWDBCZWxEdzZKR294b2c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5SSFowRjNTVUpCWjBsVldtcG9jbXhXUzJGRVpWVnVUbVpTVkZOSlNsVjJlVGh0UTFjd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBGZDFkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVY0UjBseFUyaENWVnB3WjFCT05qRkJPREZ4T0ZkU1dqVTBUbTVXVmxjeU5VTmFjSGtLVUU5bFZHMXhXVnAwU1Vjd1pTODVXalIzU1hoQ1pXZERTa2h2TkdKVVJXSmtUa3RoU0dSNWEwMU9aeTl2T1hwMGR6WlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZzZW5kNENrTkJRMmRwWlV0QmRVbERSRmxXUXpFeVlUSkxVazlSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZvY1VGQlFVRlJSQXBCUldOM1VsRkpaMGhCVnpoa1lXWTBWazVJTTFBd01td3dUMVZvTW5KcGVGbDFhRkppVVZZeFdFeHNNSFphYUU5WVVEUkRTVkZFYTJOeFdtdGtkM2hCQ25Rd2JrcFdVMEp6VTNncloyRlJhM0kyUmpCUmVHTnNTV05xVGpWRVNFaG5kRlJCUzBKblozRm9hMnBQVUZGUlJFRjNUbkJCUkVKdFFXcEZRV3hDY0hJS1kxSmhZVFpwZUdwRldVVmtlbTV4Y0ZCaE4zSm1lVmh1YVUxNFYwSk5Vems1VG5kVU9HbHpOeTlpVVRaUWRUTjVRbGwzUVN0WmRGRTBObkl4UVdwRlFRb3pTbnBhVEhOUE9XbG9OM1ZIUjFKRlJVUnNZbEpPUTJacE1tOWFXVWMzU1hkS1V6aDFiM0pDTHpoTE16bG5TM1JPTUVwWVEyOVhVbGR4TjA4eWRtSnVDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgpaK343S8xGjhbnFez0ObukpCjwDvHexKopK5hT1eNXYCFF+OgFKflDHfM8yWTImAZsg6+TDLGA8yMDI2MDcwODExMTMxMFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA4MTExMzEwWjAvBgkqhkiG9w0BCQQxIgQgEyvV9OcWInNSUkdSBNXHmXUk+rptv8Dolbzg0iOe9sgwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwCEy71Iz5fkCyY1FKac6GrhDDL0YrZYw/zXkf3SyhcaJ3+gCr78UrmYEXfTZFnXYFAjBohHHsHpY6xu2Gq6GSLwh6J9SOgRF/B9o44K0z08As8JCNiECbJc7uNIc5jkHou/s="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"7kj+pr6vFc1Ybn41nE9K0LiQM6FgAGLTfIKranR5rFc="}, "signature":"MEQCIC0HP4hajmJ4PLDCnbgLAOxGjZ6b7/AikzWZZmFuNAM3AiAlAOH4AtVKmIPlJD5Q7RlOIU4niMPfX0BelDw6JGoxog=="}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUL9WCut2M86mxqkGWROoIVYFjhKwwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzIxWhcNMjYwODI3MDgxMzIxWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEew3wWpfhp2WWYGZE9zn7PcytBUryB81+LVDnuht+pEiWmq/98BCqzxlxJZZFb8pv0iGO3YTUbmjwsHIILd2QmKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU72HGgPlK5PRzsHrDiLwG2DemoMcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+uDgAAAQDAEcwRQIgYHsNJ80Mg9jKfedSdoW1R2RCdW13in2dvsm8/ZQ8v+gCIQCXCodH/Ap1JXf6sEJGi9JQQBMs8eAzeOUhXldkSe3d0DAKBggqhkjOPQQDAwNoADBlAjEAzhvIEsTuOyTWD8AKyPVHQj3Ply3QHUrGqQhp0JqhsnY/Zxbvwj/tAcpl5Mpo5Eo/AjB7C0KcHOPiXr6zLvFlrzkaKPMUbvyWm2F6qnxFpWt98OF1ECr54v1YwX4HpHD93Ag="},"tlogEntries":[{"logIndex":"2614701520","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817802","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCIWswwF9IISNtkfA5KrRJ2nm7kK4mX8zJhpVl+P0OnGgIgS6XxZNKIEiA+NQemrPaK6fqVMHgRqUey+NH+TdP/Uzg="},"inclusionProof":{"logIndex":"2492797258","rootHash":"zJ05HMF27eCDnqorSlYKJlPmHAKIE5IrEOO3ZJO/OJc=","treeSize":"2492797267","hashes":["4hoic9+FzFe8m3Ygcy8n7kf7LODzhu8VpWox+/nhsU0=","RAtGl4xVmHerTAE8Acg2Jdid0uy6zNypXUr8J7bbonQ=","LXcyBKEx4bb6nlPJJ1QgsuYH8nzcwad24oAbaQoZRz4=","N14b9wHA0Wo/PQDTTouUtSCW+b4yJeF3TsMNd+Iz2C0=","hZ9BiZ45Zy1N4NGH4bdaFW1aQgHU5jTnn9rpbKZWY0c=","K/csYgFjxQv18JsFo5ckHFUYDutRM41CtWt9k6kKO6M=","0fsGS1dVLGWAYcDSMD1KxtzZ0NUDtIUtBJP7bm4QP68=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797267\nzJ05HMF27eCDnqorSlYKJlPmHAKIE5IrEOO3ZJO/OJc=\n\n— rekor.sigstore.dev wNI9ajBEAiBti4DaHsvEqL5Pu5RuIZEz6TgViVjJNgK9d8PBH9G4fQIgSsc+NRWFtzlt15OyJ3ViZqbsERkVt1TuhPt3EeQaJZ4=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwM2I0ZTMyZWYxYWNlMTRjNjExMmIyNTBmZmM1NDVmNDNlNDNmZmQ2Y2YxNTJiZWFlODE4Y2EzYWMyNTkzODA2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRElJY3hKaXROMjJhY05YT2QreEJRNzNPa0ttYzc4VUw4aDBnYTdydFlkWkFpQTcvQnR1UStMWjJPNkgyRENtTVR0UUtCSVBtOE5HVUdaNWxSWTY1NVUzZWc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlREbFhRM1YwTWswNE5tMTRjV3RIVjFKUGIwbFdXVVpxYUV0M2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKZUZkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtsNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZsZHpOM1YzQm1hSEF5VjFkWlIxcEZPWHB1TjFCamVYUkNWWEo1UWpneEsweFdSRzRLZFdoMEszQkZhVmR0Y1M4NU9FSkRjWHA0YkhoS1dscEdZamh3ZGpCcFIwOHpXVlJWWW0xcWQzTklTVWxNWkRKUmJVdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUzTWtoSENtZFFiRXMxVUZKNmMwaHlSR2xNZDBjeVJHVnRiMDFqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3QxUkdkQlFVRlJSQXBCUldOM1VsRkpaMWxJYzA1S09EQk5aemxxUzJabFpGTmtiMWN4VWpKU1EyUlhNVE5wYmpKa2RuTnRPQzlhVVRoMksyZERTVkZEV0VOdlpFZ3ZRWEF4Q2twWVpqWnpSVXBIYVRsS1VWRkNUWE00WlVGNlpVOVZhRmhzWkd0VFpUTmtNRVJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRWHBvZGtrS1JYTlVkVTk1VkZkRU9FRkxlVkJXU0ZGcU0xQnNlVE5SU0ZWeVIzRlJhSEF3U25Gb2MyNVpMMXA0WW5aM2FpOTBRV053YkRWTmNHODFSVzh2UVdwQ053cERNRXRqU0U5UWFWaHlObnBNZGtac2NucHJZVXRRVFZWaWRubFhiVEpHTm5GdWVFWndWM1E1T0U5R01VVkRjalUwZGpGWmQxZzBTSEJJUkRrelFXYzlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgM21hwh6mzqKftYFN0FiRuqugksAtn1hlQjnl6HOGYhQCFHhrfjKu1Flg6BSzBO2VlzvFuSXlGA8yMDI2MDgyNzA4MDMyMVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzIxWjAvBgkqhkiG9w0BCQQxIgQg9BQOsQPkI4um5l3Q3GhIs4E/JN44iwBtHSpjp7eIxWIwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAPViU1gD/EEARHnDtSpxEv8PkO22xQ22K3aak9AoTbMb1AmglTcrBOVmCuQ8pM8xXwIxAMKwkEpu3V423EiJ4qe7AvCrb6DjQX5D2IkYsFQ/tyQ22oQcUOHueZjbH857wb/g1A=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"A7TjLvGs4UxhErJQ/8VF9D5D/9bPFSvq6BjKOsJZOAY="},"signature":"MEQCIDIIcxJitN22acNXOd+xBQ73OkKmc78UL8h0ga7rtYdZAiA7/BtuQ+LZ2O6H2DCmMTtQKBIPm8NGUGZ5lRY655U3eg=="}} \ No newline at end of file diff --git a/build/torch212-cxx11-cu132-aarch64-linux/paged_attention/__init__.py b/build/torch212-cxx11-cu132-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch212-cxx11-cu132-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch213-cxx11-cu126-aarch64-linux/_ops.py b/build/torch213-cxx11-cu126-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch213-cxx11-cu126-aarch64-linux/_ops.py +++ b/build/torch213-cxx11-cu126-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index d0746ee88a663ae4f095178e7842ce26a521465c..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d428509920cdbefa2787371e31f17bc7f8d32e57dfabae669969863cb87dcfd -size 138067488 diff --git a/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..36ed5a96f19f4834286a8f6fe1b66439bc45bbd4 --- /dev/null +++ b/build/torch213-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df0f4c0590737bccba922904822a9037a2a60594854932c7d88ecf5d9199f768 +size 138067488 diff --git a/build/torch213-cxx11-cu126-aarch64-linux/metadata.json b/build/torch213-cxx11-cu126-aarch64-linux/metadata.json index 0fa11f25441bb4d2f8a46b2a2c23a4c990a10ad6..55514c61e6e5c500f59de0b2c9ec30f2f74682fb 100644 --- a/build/torch213-cxx11-cu126-aarch64-linux/metadata.json +++ b/build/torch213-cxx11-cu126-aarch64-linux/metadata.json @@ -1,9 +1,10 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ @@ -22,20 +23,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "LUKFCZIM2++ieHNx4x8XvH+NMuV9+rrmaZaYY8uH3P0=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "3w9MBZBze8y6kikEgiqQN6KmBZSFSTLH2I7PXZGZ92g=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore b/build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore index f8e3e5e238f126894053e4092398a6b2a3cb4f60..8257ed07c483363d26f98a65340fda97719aa73c 100644 --- a/build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore +++ b/build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUWoTBQldKoCLuPBNRZ0pARXpWYEUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzEyWhcNMjYwNzA4MTEyMzEyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikPjz9CwQHGEzEGDChD/2j2Wen8DMLxMj4WQ6aelpBjNSCRGcq0H9jsMGy4Gh8zkHf5eunpVXkRQTRSSLDPUbqOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUK9Jiu9qQP/YiKzDk1aegLbyCTmcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0Fuj8MAAAQDAEcwRQIgfXIxHkbYQ5Iq5HwiSO7irE5tCbUw0Dk/Hl9L+kpvXfECIQD9SpqbOLA/tjZmdnsDaeIDiWVMwu/Xt4zwcL1e47js1TAKBggqhkjOPQQDAwNoADBlAjA1glglkh1essDydfSl6xFq+JNU6ccTxzjvEJ+5RE4Hhac+QwlIEg13QmjuwfJhIHECMQCULTTLkFp0fIywUGRbJXKrlPmhzFDwHxh0wjkVTczH4uFErwL31tn2nXXTxk6t8w4="}, "tlogEntries":[{"logIndex":"2115039746", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509192", "inclusionPromise":{"signedEntryTimestamp":"MEQCIFF2vh3+ejky8fo25M/g1+809kBv0PlSoWmIeFdER1XRAiBZ058qoKaA2TW0jf6pW0lhM65z0ArSzGct9dkV1AuLmA=="}, "inclusionProof":{"logIndex":"1993135484", "rootHash":"dUIm3PtXXTZQIMRmaIG0HuuE3gykZCCOJvm8CwYAe5k=", "treeSize":"1993135555", "hashes":["Mdza53aEYEp/w2DvhiYzjWw+hjqLnYTMS6xDIttsfJM=", "xZ8qQj24Q/uUZYRmTu0fd8MPk7d6tq/6IWP3cTNPej4=", "PrT+cDCXlxrwauA3ayPCl1wH4Fl2GCKFSF0zxIKWW/Y=", "qXRQnvLZmXXmuZVBWbdMsm1xbtLKg3PNEORg0wgsrxE=", "Qs+yXsnkcYGN/Da7NYuTF/yNoF04kbUln06O8VBeZiE=", "E43AmFWI9rgg6g1aj3hD2V75Ku8VAIfNOvgWk2c7Mzw=", "/gZ8j++j7mcZC/PCM4Tapn9d6n2UdHoKtJKnQUbAFbc=", "4cb4bfb4OkawzgLYvvj8KneMxO32vCKeR0hhxyaL6kM=", "e3Ipyr3DrppcjPPKgRZ4U/iIiED768ixywNkdOR5l6g=", "fiNbDaW4WSA5uKj8iX1X4RMFVUb2rwUF9hGiY7fSYmc=", "pKbvZfV91AX+uD/5cl79XlBxUMHgILpQ7ga3acAZ8a0=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993135555\ndUIm3PtXXTZQIMRmaIG0HuuE3gykZCCOJvm8CwYAe5k=\n\n— rekor.sigstore.dev wNI9ajBFAiEA5qG9NDbcktz60Tkj48auHE1US7epOAvyfgQ1B9b8it8CIBfNIlNs6fDRcCL0HtoEWvKcUN53+PHp/q6Eg1Tg/hd9\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzN2ZkZTliMTdiZjMzMGZhMGNjZTE5ZmJiNjlmY2FkZWQ1NTA3MjFlN2U2ZWI4MDUwYmIyMzcyZDAzNGVjMTk5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNTNk00KzN2cDU3SEQwa3ErdHM2dTBvd1A4QnZmUm5XTWFrR25NM2NkMnZnSWhBSjBOTyt5UGxsRGJOMFVTcDRFdTFoUEtGTlB5WTZEcWR1UWlEK252SWRvbSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlYyOVVRbEZzWkV0dlEweDFVRUpPVWxvd2NFRlNXSEJYV1VWVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBGZVZkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZwYTFCcWVqbERkMUZJUjBWNlJVZEVRMmhFTHpKcU1sZGxiamhFVFV4NFRXbzBWMUVLTm1GbGJIQkNhazVUUTFKSFkzRXdTRGxxYzAxSGVUUkhhRGg2YTBobU5XVjFibkJXV0d0U1VWUlNVMU5NUkZCVlluRlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZMT1VwcENuVTVjVkZRTDFscFMzcEVhekZoWldkTVlubERWRzFqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZxT0UxQlFVRlJSQXBCUldOM1VsRkpaMlpZU1hoSWEySlpVVFZKY1RWSWQybFRUemRwY2tVMWRFTmlWWGN3UkdzdlNHdzVUQ3RyY0haWVprVkRTVkZFT1ZOd2NXSlBURUV2Q25ScVdtMWtibk5FWVdWSlJHbFhWazEzZFM5WWREUjZkMk5NTVdVME4ycHpNVlJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEJNV2RzWjJ3S2EyZ3haWE56Ukhsa1psTnNObmhHY1N0S1RsVTJZMk5VZUhwcWRrVktLelZTUlRSSWFHRmpLMUYzYkVsRlp6RXpVVzFxZFhkbVNtaEpTRVZEVFZGRFZRcE1WRlJNYTBad01HWkplWGRWUjFKaVNsaExjbXhRYldoNlJrUjNTSGhvTUhkcWExWlVZM3BJTkhWR1JYSjNURE14ZEc0eWJsaFlWSGhyTm5RNGR6UTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgzhlKtABoqhgF/uUAQggIs64fEihw5NL16m4EPMLbqtkCFQCACyzPYMlN4thEcVz0D3NO2o70YhgPMjAyNjA3MDgxMTEzMTJaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwODExMTMxMlowLwYJKoZIhvcNAQkEMSIEICKElfIKwFRpYjFOxQ2omSTeMYDbvsLiZ12zWXU6MwSKMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQCPqGGAZMUbemD+Qlaboo3D2JkZNmD4n2BhK7vBZNSROMRhoXe+HllutqF4AGCGAmMCMBp4Nh4JOQoFvNLw/QIaV5BlKycJUBD40u7QC+twicNFTxpwxmXYzUiW75PNGLHzmw=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"N/3psXvzMPoMzhn7tp/K3tVQch5+brgFC7I3LQNOwZk="}, "signature":"MEYCIQCS6M4+3vp57HD0kq+ts6u0owP8BvfRnWMakGnM3cd2vgIhAJ0NO+yPllDbN0USp4Eu1hPKFNPyY6DqduQiD+nvIdom"}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUQKu9XPl4fyHTIwjRnHeN2bPM6wwwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzIyWhcNMjYwODI3MDgxMzIyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnR0TQoN2Mx4ugYGEKaaJ5Nr9odvWp9fIGl7iAJ/cJ5DF4TghpryESnRA87JOtdulTgDD06NC7BUb/9MHld+yZqOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUuS241B3t74weFRBRHM7mI6z1YeQwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+u4IAAAQDAEgwRgIhALYgA7epFou8KwsdvD5fwGt09O5cGOFxwWZEtVKNCgftAiEAtJpkGVtHfwMLzbGxq4+RCkCmCeGLKEiNliTCSiIZ4nIwCgYIKoZIzj0EAwMDaAAwZQIwZcFwm8VZ/SptmUDaUp2WCUDWW4hH0l+kONFzEZ24wPvmK082VkGh9NePEuAuRF0fAjEA1Hi3NKCqaTvXtKismy++XOLKtAhlBepjtjvsBqmAoPsI5DHz+hyN1DJFmpx/5L7R"},"tlogEntries":[{"logIndex":"2614701568","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817802","inclusionPromise":{"signedEntryTimestamp":"MEYCIQCSOG7ZIbSqqfL4AoMv6DncUEsffhwc7wTsE05pORhRWQIhAIQgoEW83CBNQY1FjhXSiYrPqxYsLZriB/IDvsz2rKs/"},"inclusionProof":{"logIndex":"2492797306","rootHash":"qJpfbkHknWWYCSnpnn88laXclPPqcsADu25Ns+VM5Uc=","treeSize":"2492797319","hashes":["QvuHmqM1zyVSPkzV1gnQ8WEFNMo2rI5gHW4vzuHS6K8=","S1fytGV0G3+LObllt8DALxA3/eYS254qnZDGSGZBM0M=","QEj79ynMzbTeMQLu5MNJ3se8RphG1EiQCMzJ6Vdx6Vc=","Zg3EwixE+r9eucE9r6u0cSUo4JRxULO9ywagsaFLi/I=","yEu6UpMwKpuDhFbO2NEvsX08sd64OpTnovqLRoyMRk4=","bSrHuzAEa7cu5hEKljrnATj7hzyKDUxcafRaCbdiiB0=","K/csYgFjxQv18JsFo5ckHFUYDutRM41CtWt9k6kKO6M=","fAYOyakheo7dwQ3gx2Zl7YSaTcmdIoMIc39I+xrC2BU=","0fsGS1dVLGWAYcDSMD1KxtzZ0NUDtIUtBJP7bm4QP68=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797319\nqJpfbkHknWWYCSnpnn88laXclPPqcsADu25Ns+VM5Uc=\n\n— rekor.sigstore.dev wNI9ajBGAiEAym+47lFA2gI3BFIfAMZ6lclKTR+jRjFNQ0ftnVHWIsoCIQDpY5I/XUpkxtlQjl8kMEH6/nZfJbGE7g3W5SAaKYFsJA==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhZjExZWVmNmU5NmJlMWU5ZGU0ODA3ZDkzYzQzZWZjMDNlNmNlYTAxMGE5YjM2ZmM1MWY4NTgwYWNhZGY5ZDY0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJSEVkUFlhR1FpZFZMNFFPSXl5WGIwQk1tc2c3bVo2dmdYWXZJb1VGOW5zZUFpRUFxZzFES1FRTTBTQmM2UTNCWCtIbE4ramNnU1NEYy90QTNEaXVjT3FtdGs0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlVVdDFPVmhRYkRSbWVVaFVTWGRxVW01SVpVNHlZbEJOTm5kM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKZVZkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtsNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ1VWpCVVVXOU9NazE0TkhWbldVZEZTMkZoU2pWT2NqbHZaSFpYY0RsbVNVZHNOMmtLUVVvdlkwbzFSRVkwVkdkb2NISjVSVk51VWtFNE4wcFBkR1IxYkZSblJFUXdOazVETjBKVllpODVUVWhzWkN0NVduRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYxVXpJMENqRkNNM1EzTkhkbFJsSkNVa2hOTjIxSk5ub3hXV1ZSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3QxTkVsQlFVRlJSQXBCUldkM1VtZEphRUZNV1dkQk4yVndSbTkxT0V0M2MyUjJSRFZtZDBkME1EbFBOV05IVDBaNGQxZGFSWFJXUzA1RFoyWjBRV2xGUVhSS2NHdEhWblJJQ21aM1RVeDZZa2Q0Y1RRclVrTnJRMjFEWlVkTVMwVnBUbXhwVkVOVGFVbGFORzVKZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkpkMXBqUm5jS2JUaFdXaTlUY0hSdFZVUmhWWEF5VjBOVlJGZFhOR2hJTUd3cmEwOU9SbnBGV2pJMGQxQjJiVXN3T0RKV2EwZG9PVTVsVUVWMVFYVlNSakJtUVdwRlFRb3hTR2t6VGt0RGNXRlVkbGgwUzJsemJYa3JLMWhQVEV0MFFXaHNRbVZ3YW5ScWRuTkNjVzFCYjFCelNUVkVTSG9yYUhsT01VUktSbTF3ZUM4MVREZFNDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgT4srgqDP9iJSO7nwpJVL2CJd2xWH8t7vEzBooaOkoYwCFAK43R43bUbP6QDb4p15K3OZnrjoGA8yMDI2MDgyNzA4MDMyMlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzIyWjAvBgkqhkiG9w0BCQQxIgQgSKQXH4/mocbc5l4XiZYkrRWcSc+AN0lNEiqoQsQaQakwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwTS9F2TJx+PNEuEKg6JmMkylNZ2tKiT3jq1kh/EVwOVixiyKSR4rVI2TIqKZB8JdeAjEAvtatjGu69DfpVduhbif2A4Y+eobK0IGnGhQ+HsF+5qwSGbSq3ELhnrkJbV11ctZf"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"rxHu9ulr4eneSAfZPEPvwD5s6gEKmzb8UfhYCsrfnWQ="},"signature":"MEUCIHEdPYaGQidVL4QOIyyXb0BMmsg7mZ6vgXYvIoUF9nseAiEAqg1DKQQM0SBc6Q3BX+HlN+jcgSSDc/tA3DiucOqmtk4="}} \ No newline at end of file diff --git a/build/torch213-cxx11-cu126-aarch64-linux/paged_attention/__init__.py b/build/torch213-cxx11-cu126-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu126-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch213-cxx11-cu130-aarch64-linux/_ops.py b/build/torch213-cxx11-cu130-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch213-cxx11-cu130-aarch64-linux/_ops.py +++ b/build/torch213-cxx11-cu130-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index 09417cf3c63a948946967bba114c8c65f3e9a14e..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de7ef3fa613b6b3faf7e16631992d5e6a77c1fceb6604406d0605cc9214e5181 -size 90545864 diff --git a/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..8fd72f7be0c8a4bba923bac3098b0a6092b80c7e --- /dev/null +++ b/build/torch213-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e0e72d7dc1bad37c74e3804d623a04d1b1565d2e8c12023cfa81372df77208c +size 97296072 diff --git a/build/torch213-cxx11-cu130-aarch64-linux/metadata.json b/build/torch213-cxx11-cu130-aarch64-linux/metadata.json index 3c083a9b5ce65c0a9dc789a5363ac2fce87fde7c..db2b34d3acffabe174cb8f503da00af247ea2670 100644 --- a/build/torch213-cxx11-cu130-aarch64-linux/metadata.json +++ b/build/torch213-cxx11-cu130-aarch64-linux/metadata.json @@ -1,13 +1,15 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ "10.0", + "10.3", "11.0", "12.0", "12.1+PTX", @@ -24,20 +26,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "3n7z+mE7az+vfhZjGZLV5qd8H862YEQG0GBcySFOUYE=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "jg5y19wbrTfHTjgE1iOgTRsVZdLowSAjz6gTct93IIw=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore b/build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore index dca321dd3fd06a77762859f8331307c0a85164dd..40c88c4f0bb922d0dd4d90086f0aae8c7dafd433 100644 --- a/build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore +++ b/build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtCgAwIBAgIUBbgd6cVyujvLtZWvvX6VJPTyLt8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzE0WhcNMjYwNzA4MTEyMzE0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJV5sMrhBPyi2+kTQsCznFq/Ry2Iu5OwcuwQgwYNsWfxZtNcMU0qnlEcdKFZIVBFDKC1g+g/Zv5bFmiuh5Nnp5qOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUCAjVFIscsFcq2Obz8esD+Wxe5YQwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0FulUcAAAQDAEYwRAIgFvaiGMut4btyBkW3jBIeJcBcn5gukOwScb4kKfVL/ksCIGcXjt5kyd+ybk/rUt+ktZQ6EffpEa2gmXQX/CkDPY1sMAoGCCqGSM49BAMDA2kAMGYCMQCnfsksPXJkg8ZzesdGaywrMEjFghyroXOFxot64lkqYXsznX8D9hYkhvmmXEiN9TECMQDHoiGpOV/2xJboa2nc50VX4JFZAlPuuiIr8McDGUmyzv7EztixpfIN/Wl8pbOnmtU="}, "tlogEntries":[{"logIndex":"2115040116", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509194", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQD/dKmkiEGn77B4QCYs3Y0T5yyYCP3H/7YWYnABT6f8GwIhAIuEATWd+tvTcjj8B4ETxEtkTs8YRfkQ4V9AbKXBCoh6"}, "inclusionProof":{"logIndex":"1993135854", "rootHash":"ukMASAr8hGiREV+MkG13bO6L1036TChdbEOOoWlltCs=", "treeSize":"1993136016", "hashes":["IJTCVqOvLO6M8udmd6zim4dZJByHiiNnl+ISAJEBjA0=", "6/gSwEkQjI7EkqrPqzxzKLElyMH8L2SsV/yiySmq3oU=", "vFiRx5iv0K/IGVBJ+0IJEK3T4z731kjECR/YSMXw2Ng=", "bnA5vV56iRcG+oH9k9/k72GNgwP8s7vf/fzlsqJ8v84=", "/HM/kVwygM+rBeVwiPc49cadfHw1XeBaMs7BH+uGVxc=", "8lGERRAcyJ8YN2Fudd+X0MsOykD0SMwZs6NaLmOR5fc=", "+5wjgGdJ3Bz+h41dyrab47kjRXRpU6ej4vMhZ1byVo4=", "2fA1rgwYDTBGR9IiBOAAW3JvP89AqLQp8bzHeS/y1xs=", "uzy5Q88yYaNADAV6PLeFPHinPf1I0oFeAYS6mXlskkE=", "m9t9Hqql5EMCASR7sqUj6QTbMAlUN2q0ZiToFb9LmWE=", "fiNbDaW4WSA5uKj8iX1X4RMFVUb2rwUF9hGiY7fSYmc=", "pKbvZfV91AX+uD/5cl79XlBxUMHgILpQ7ga3acAZ8a0=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993136016\nukMASAr8hGiREV+MkG13bO6L1036TChdbEOOoWlltCs=\n\n— rekor.sigstore.dev wNI9ajBFAiBFoB/zxydnN1vS4J53WKJnjaai3k6UHnMcaN9QSel5VwIhAISb00gtGfG0B7EjP6PoelkmfjbTg26QAvBLvJVBSmE2\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlMzRmNTlhZDM0Yzk0NWE0MzFiMGFlMTE2ZGZkOTNjZGFjN2YzMmZkY2Y0YTZkZmNmN2FkMWIxNWY1NGIzMTkyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRzVTeTVwN1N3WTRjRzNKTE04dGNnc2V0ZndCOGtSZDFjM1RxVWhFU3R2R0FpRUExclN1a0N2TGFYa0Zwc1MxZ25EQnkvUC9JSkZSeCt4THZtWCtRRUdKVjBvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SRFowRjNTVUpCWjBsVlFtSm5aRFpqVm5sMWFuWk1kRnBYZG5aWU5sWktVRlI1VEhRNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBGTUZkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtVd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZLVmpWelRYSm9RbEI1YVRJcmExUlJjME42YmtaeEwxSjVNa2wxTlU5M1kzVjNVV2NLZDFsT2MxZG1lRnAwVG1OTlZUQnhibXhGWTJSTFJscEpWa0pHUkV0RE1XY3JaeTlhZGpWaVJtMXBkV2cxVG01d05YRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZEUVdwV0NrWkpjMk56Um1OeE1rOWllamhsYzBRclYzaGxOVmxSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZzVldOQlFVRlJSQXBCUlZsM1VrRkpaMFoyWVdsSFRYVjBOR0owZVVKclZ6TnFRa2xsU21OQ1kyNDFaM1ZyVDNkVFkySTBhMHRtVmt3dmEzTkRTVWRqV0dwME5XdDVaQ3Q1Q21KckwzSlZkQ3RyZEZwUk5rVm1abkJGWVRKbmJWaFJXQzlEYTBSUVdURnpUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkRibVp6YTNNS1VGaEthMmM0V25wbGMyUkhZWGwzY2sxRmFrWm5hSGx5YjFoUFJuaHZkRFkwYkd0eFdWaHplbTVZT0VRNWFGbHJhSFp0YlZoRmFVNDVWRVZEVFZGRVNBcHZhVWR3VDFZdk1uaEtZbTloTW01ak5UQldXRFJLUmxwQmJGQjFkV2xKY2poTlkwUkhWVzE1ZW5ZM1JYcDBhWGh3WmtsT0wxZHNPSEJpVDI1dGRGVTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgcmkg4JQfHFBA5NSxjoU26+RFcVWS8X8f/QKC9nPxltoCFCVsWLUDAlYS/MCGxsMYfUPp8ezkGA8yMDI2MDcwODExMTMxNFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA4MTExMzE0WjAvBgkqhkiG9w0BCQQxIgQgVUWmMGfAyQP29jrzXu2/+rXLBReSZp5nRtkffUILMlIwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwfnvriV5T5pQr+MGOcpdjk5jjXDXwTrKLoEx8vZFfF4iMOCMV7gfQ1lE1dnu8kbgPAjB7sOcUwateLkglUIgAsFHCgs2VzA7cA/awcWDngEazuzoIjne+HafO5zyLl61FeI8="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"409ZrTTJRaQxsK4Rbf2Tzax/Mv3PSm38960bFfVLMZI="}, "signature":"MEUCIG5Sy5p7SwY4cG3JLM8tcgsetfwB8kRd1c3TqUhEStvGAiEA1rSukCvLaXkFpsS1gnDBy/P/IJFRx+xLvmX+QEGJV0o="}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTTCCBtKgAwIBAgIUb7F6AHzewIPJrasyfWw3DpvR93kwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzIzWhcNMjYwODI3MDgxMzIzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr7K0+Lzm62x1SH3G6w8SbEXrQpfwpvZW9s1BOWSgbVqA2e3/QbVyY+xN2lQnGQXraj+PLhsHbpYSpNR+pGNsqqOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUZcj6EZQiWMjSruII8nAkKTb0lUkwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+vngAAAQDAEgwRgIhALZfFUrHwLhmrmbJuVU+w9o0VeIdeGDDBA4QFJ8nmHwRAiEA2TvbgtN7LeyDZXagXOII29dYPr/1FabgiWOQsYCFhLkwCgYIKoZIzj0EAwMDaQAwZgIxAIUbyq84OH+KuCVLlQNKBdIyOWHDA7jdrg0s7PF0+/n5oWSakZxP4H/lgZ13RAQyegIxAN+atzbM77ibrraqnjEhPqwvltPaTD8WEw05WLQ4tORtYE/jst46XCyHmTyaJGw84A=="},"tlogEntries":[{"logIndex":"2614701621","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817803","inclusionPromise":{"signedEntryTimestamp":"MEQCIEriQEPaxdSwF5WO0qg6xcGe6L73rYElv1yBn+RTSA/iAiBHvjS+aQjcSETl7P3bLTsjQnwSzJVXg4qadscASnrwtw=="},"inclusionProof":{"logIndex":"2492797359","rootHash":"leVa4tFcGKu+IixAsBItzyu0VvzRbi5+QSk0ZGapb1E=","treeSize":"2492797370","hashes":["yt2694dwInW+/H3xF9Bfd1WfitZHwMxZR9dEuOpX6Q4=","1ohxMZfyezCuILOtbLkW1Hg6h2aKV01DFiBUZhhxKD8=","VomuLKa3LNKrY2CKJ3VJwgFl4N7u/Con1wWNlsq93J8=","blUY0dUaWyBXy9/woYKhVjw1onAo/49SIHUkQATWiso=","YK6XVSdQbgJy4AJ34kH2XGD6LVhPonS+iEmlOafMkas=","+magx3x+OuxJ+epAr6Ey/fAgLrxJVags1vNdVXvPCEU=","AhmKibOGoELIifWoz25bqsyFrlRt+XyO5YzMjAXA61A=","0fsGS1dVLGWAYcDSMD1KxtzZ0NUDtIUtBJP7bm4QP68=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797370\nleVa4tFcGKu+IixAsBItzyu0VvzRbi5+QSk0ZGapb1E=\n\n— rekor.sigstore.dev wNI9ajBFAiEA7kOWxbRUWyiTs2a/m0VqeDgIKnOFyAzeXfxN4DxCqzMCIF2cvfP1/MQBScftUtTP3fnLR4HqbEtwqnLd+x6XL1pU\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzMWVmMTMzOGY5MWU1ZWJmMmRiOTI4ZjM3N2M1MjU3MTkxMzQ4MTQ4NzczYTMwNGE2MmUwNWM2Njg3YTkwMTQ1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNWVXZadWFYTmRZbjF4dnVlV0RCUTZ6WmQ3NW1XdWV6TlF1eUZiU3pxbkpBSWhBSmZma01QWFpKQkExRUpmSmNBM2tPUXdEazFhRmdZd2Nya0tuRy90M014biIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVWRU5EUW5STFowRjNTVUpCWjBsVllqZEdOa0ZJZW1WM1NWQktjbUZ6ZVdaWGR6TkVjSFpTT1ROcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKZWxkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtsNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ5TjBzd0sweDZiVFl5ZURGVFNETkhObmM0VTJKRldISlJjR1ozY0haYVZ6bHpNVUlLVDFkVFoySldjVUV5WlRNdlVXSldlVmtyZUU0eWJGRnVSMUZZY21GcUsxQk1hSE5JWW5CWlUzQk9VaXR3UjA1emNYRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZhWTJvMkNrVmFVV2xYVFdwVGNuVkpTVGh1UVd0TFZHSXdiRlZyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3QyYm1kQlFVRlJSQXBCUldkM1VtZEphRUZNV21aR1ZYSklkMHhvYlhKdFlrcDFWbFVyZHpsdk1GWmxTV1JsUjBSRVFrRTBVVVpLT0c1dFNIZFNRV2xGUVRKVWRtSm5kRTQzQ2t4bGVVUmFXR0ZuV0U5SlNUSTVaRmxRY2k4eFJtRmlaMmxYVDFGeldVTkdhRXhyZDBObldVbExiMXBKZW1vd1JVRjNUVVJoVVVGM1dtZEplRUZKVldJS2VYRTRORTlJSzB0MVExWk1iRkZPUzBKa1NYbFBWMGhFUVRkcVpISm5NSE0zVUVZd0t5OXVOVzlYVTJGclduaFFORWd2YkdkYU1UTlNRVkY1WldkSmVBcEJUaXRoZEhwaVRUYzNhV0p5Y21GeGJtcEZhRkJ4ZDNac2RGQmhWRVE0VjBWM01EVlhURkUwZEU5U2RGbEZMMnB6ZERRMldFTjVTRzFVZVdGS1IzYzRDalJCUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg9TnMCL15m6uuP3ARiINiE1aDfxJwcifsz9gysE9tOGsCFCY5WSCfv77Xtl0J6DgaVH0nHRJCGA8yMDI2MDgyNzA4MDMyM1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzIzWjAvBgkqhkiG9w0BCQQxIgQg2ujpe3P5cbre5t3VToAAEx6fDN3a5xep+xnse4TA9IUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwVe5pkQ6nJUVC0RZgpLBBdvWnd3mm1MAiEwWenJsglSW/PctiPi3pbV5CGHVjKBfdAjEA7VMyMUw1gu1pHesT3w+cQCSc6cUZ46OanliaHOEyN/Vk39I6dEjAGTksunYvCvUD"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"Me8TOPkeXr8tuSjzd8UlcZE0gUh3OjBKYuBcZoepAUU="},"signature":"MEYCIQCVUvZuaXNdYn1xvueWDBQ6zZd75mWuezNQuyFbSzqnJAIhAJffkMPXZJBA1EJfJcA3kOQwDk1aFgYwcrkKnG/t3Mxn"}} \ No newline at end of file diff --git a/build/torch213-cxx11-cu130-aarch64-linux/paged_attention/__init__.py b/build/torch213-cxx11-cu130-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu130-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch213-cxx11-cu132-aarch64-linux/_ops.py b/build/torch213-cxx11-cu132-aarch64-linux/_ops.py index bcd0f41942ae7578f38e15537016d5565e743c11..f658c7b22de9c375f428bb55e8d5f297532cdc85 100644 --- a/build/torch213-cxx11-cu132-aarch64-linux/_ops.py +++ b/build/torch213-cxx11-cu132-aarch64-linux/_ops.py @@ -1,9 +1,9 @@ import torch -from . import _paged_attention_cuda_8a730d9 -ops = torch.ops._paged_attention_cuda_8a730d9 +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 def add_op_namespace_prefix(op_name: str): """ Prefix op by namespace. """ - return f"_paged_attention_cuda_8a730d9::{op_name}" + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so b/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so deleted file mode 100644 index e9bd43e490129716a37b1d61f5d694ceafe6ba75..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_8a730d9.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a186bc101ed43323132b7b741dd0a6166d40179c89ebd5a3a55eefe86a866f6 -size 89434632 diff --git a/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..001c4c59f5052ce2dd62d9cc27c55674788cd9fe --- /dev/null +++ b/build/torch213-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cde9a51549bdb56981046a6483c198137f300fbbb363d3a62a1711822f6207bf +size 96119392 diff --git a/build/torch213-cxx11-cu132-aarch64-linux/metadata.json b/build/torch213-cxx11-cu132-aarch64-linux/metadata.json index fb5dfc5f3370fb6f05ca223fe1417f9055606919..0792d73283d2a0026a1ee2d14e9e3c17027c0971 100644 --- a/build/torch213-cxx11-cu132-aarch64-linux/metadata.json +++ b/build/torch213-cxx11-cu132-aarch64-linux/metadata.json @@ -1,13 +1,15 @@ { "name": "paged-attention", - "id": "_paged_attention_cuda_8a730d9", + "id": "_paged_attention_cuda_addf474", "version": 1, "license": "Apache-2.0", "python-depends": [], + "kernel-depends": [], "backend": { "type": "cuda", "archs": [ "10.0", + "10.3", "11.0", "12.0", "12.1+PTX", @@ -24,20 +26,19 @@ "files": { "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", - "_ops.py": "MOfL7QKBHd4XnS6XuvCZiFtJQ/dVaqeO0ivYue4G6B4=", - "_paged_attention_cuda_8a730d9.abi3.so": "ShhrwQHtQzIxMre3Qd0KYWbUAXnInr1aOlXu/oaoZvY=", - "paged_attention/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "zemlFUm9tWmBBGpkg8GYE38wD7uzY9OmKhcRgi9iB78=", "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" } }, "provenance": { "kernel-builder": { "version": "0.17.0-dev0", - "sha": "81580bb92577f2f7228661ca2a221fc052375709", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", "dirty": false }, "kernel": { - "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33", + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", "dirty": false } } diff --git a/build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore b/build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore index 49ba427f39573c628ed373c1d7069e5597bd8b5b..76a54eeef36b1ad7414ca9c32b2f4ff176cf9358 100644 --- a/build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore +++ b/build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore @@ -1 +1 @@ -{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSTCCBtCgAwIBAgIUAt6hF4V8Tly2OK/ukagDvnUbJU4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MTExMzE1WhcNMjYwNzA4MTEyMzE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnJub5C8sxC3QOUkD12mCP34dk/Df6Jx5uUFXCQB4DYI0vzsTR+929LVYpTMX7RlHVbeRUski+TEeWYmfCcOXQKOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUzw3kKURYOzzj4+GrlCSqqiDQOekwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjg5MzEyMjQ1MjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0Fum6gAAAQDAEYwRAIgeUXCrPxd0eCpZ/jXT5vTYRAbOGMXP/v/xqMiQ2ELZ60CIFWK6rP108LyDdpvEY1b0xNoSU1UUtWlla5b6zV30EudMAoGCCqGSM49BAMDA2cAMGQCMAJYd2UIfAT1I7pzp43Rr9ene1S6pPC+SxGSiFvTW8uuSRZxcjefc/JC0g1BgkPRxQIwNG5TJQpNgQ0s/SsnK8bOdijdkvg7GlSbjO7rQp9fkX1+BSs7/oFkqNnUkrWlAIe/"}, "tlogEntries":[{"logIndex":"2115040526", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783509196", "inclusionPromise":{"signedEntryTimestamp":"MEQCIEi4N4TArBFzPtWyetmuYxJg5W+YvrYsfCWy2WTj5VsxAiBisdCIJtxcI0VHtjl2BoduANhDR2b2oP67byXbw9wqxA=="}, "inclusionProof":{"logIndex":"1993136264", "rootHash":"nmWOkAo0HrRGH5yZkV5cEPoKZ0WTIx59DWRM10JrSqM=", "treeSize":"1993136531", "hashes":["h6/f2X3ZgmzS9Xe1dVDpnZwpP2WEivtc7AgpvbJBUDU=", "1dxnaPIBJFcJVFjr3uXSCD4fsDKW89BPYXN30UZk3rE=", "8+yb5fH5OCPlJR8sXaNpm3qeR5z6xXhGwtA9uGnTYt4=", "eirev8yLY8Bh3fg0fETN45x7DtEVZK9xCQul2aiGHLM=", "D8c/FgEyKKgrXObbn+W1+EeXAXw7OtlvtkqH9B13vgw=", "4v0382Arqcdsousf9Lx1XG5axbLSV/p9E5RWj7KGY6o=", "h9WPAwEaw3Xitc1y9lhhC3uvvQr5IGRuQMVAby/V7zw=", "YMCnqsbvFMVPFNQ8oODWmPZ/ywJHLBauF1ZuVPY/ejk=", "uJx1iYJ04wduTXgtAuqOCeWrqpoxnDYtjL6kJgFK4yc=", "XtdW9QRHxPs9AKM03iZZ5YbeLj8lgdLSb31t2j9cceQ=", "pKbvZfV91AX+uD/5cl79XlBxUMHgILpQ7ga3acAZ8a0=", "Bbpa/GgdZ0HLVG5ip1/Su4tDrttYeV2ABhU4hwK0p7Y=", "I5MjJubQP0qSM1f/XD4Y+mM8UBtoZb/f+hzuQeSwFEI=", "KEoaBedJtDHZJJ0hfsWskdmVy2dzbHOA8Z/QRgDoCAw=", "Qt1jiKhOtf6yp73wykIuRUIfatVXkF3q7xBJ6DqwXnk=", "frI9BMUdqa/KPLUCZ9yfDzZ2Z6tglf7SvThMJqEFBKU=", "Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1993136531\nnmWOkAo0HrRGH5yZkV5cEPoKZ0WTIx59DWRM10JrSqM=\n\n— rekor.sigstore.dev wNI9ajBFAiBcc7aEJTW/fCUgC44JZJuMB3F23j+gKYNpZ52SKELgVQIhAJtI9C3tA1ADHNw5t8Ev87xojEd1p+ucVMFvvIyPmyup\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3ZmIzNmExYWNjY2NmNmVmZTg2MjQ2NjhhNDY0ZGVkZWM4ZGQ0MTA3MjEzZTE2ZGYwN2QxN2RmYjA3NjhmNmYyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNNSVhsMksvTmxpd2FaajNEdWpPVXV6eGZaVjc4dndXWkZwSjlobVBNWGx3SWdGbG9WZlVHdkdpWjdSTm1XbkhHUEFpY3hqTTArNkRXcDM4ZUgvT1pITVljPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRWRU5EUW5SRFowRjNTVUpCWjBsVlFYUTJhRVkwVmpoVWJIa3lUMHN2ZFd0aFowUjJibFZpU2xVMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlZFVjRUWHBGTVZkb1kwNU5hbGwzVG5wQk5FMVVSWGxOZWtVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ1U25WaU5VTTRjM2hETTFGUFZXdEVNVEp0UTFBek5HUnJMMFJtTmtwNE5YVlZSbGdLUTFGQ05FUlpTVEIyZW5OVVVpczVNamxNVmxsd1ZFMVlOMUpzU0ZaaVpWSlZjMnRwSzFSRlpWZFpiV1pEWTA5WVVVdFBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlY2ZHpOckNrdFZVbGxQZW5wcU5DdEhjbXhEVTNGeGFVUlJUMlZyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVBSMFV6VFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNDazFFYkcxT01rcHBXVEpPYTFsNlp6Uk9hbWQ0VDBkWmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXhOUkd4dFRqSkthVmt5VG1zS1dYcG5ORTVxWjNoUFIxbDZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDlIUlROTmVrSnJUMVJhYWsxNll6Rk9ha0pxV1RKWmVGcEVUbXdLVFVSc2JVNHlTbWxaTWs1cldYcG5ORTVxWjNoUFIxbDZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUm9hRTU2VFhjS1drUnJNbGw2VFROT1ZGbDNXVEpPYlUxWFVYcGFWRUUxV21wa2FWbHRUbXBhUjAwMFQwUlpORTFVYUcxTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW1jMVRYcEZlVTFxVVRGTmFtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdSblZ0Tm1kQlFVRlJSQXBCUlZsM1VrRkpaMlZWV0VOeVVIaGtNR1ZEY0ZvdmFsaFVOWFpVV1ZKQllrOUhUVmhRTDNZdmVIRk5hVkV5UlV4YU5qQkRTVVpYU3paeVVERXdPRXg1Q2tSa2NIWkZXVEZpTUhoT2IxTlZNVlZWZEZkc2JHRTFZalo2VmpNd1JYVmtUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlZMEZOUjFGRFRVRktXV1F5VlVrS1prRlVNVWszY0hwd05ETlNjamxsYm1VeFV6WndVRU1yVTNoSFUybEdkbFJYT0hWMVUxSmFlR05xWldaakwwcERNR2N4UW1kclVGSjRVVWwzVGtjMVZBcEtVWEJPWjFFd2N5OVRjMjVMT0dKUFpHbHFaR3QyWnpkSGJGTmlhazgzY2xGd09XWnJXREVyUWxOek55OXZSbXR4VG01VmEzSlhiRUZKWlM4S0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKVL/nztNJ3q2H01DxdAic8RW6/OOagi99wQuionJA68CFQD0WZmuu4h4svD3GullweHlK/eNqhgPMjAyNjA3MDgxMTEzMTVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwODExMTMxNVowLwYJKoZIhvcNAQkEMSIEIGEOjrIuv67Sym3LIKdN/LLioHtxnoZSi1x7lCUPipstMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMDPng7tEPe0dvJ30ncSOnPiAS1RHXc7n/3c/5oupvXeD5OdDkdjeffi6lx5u4HnDwgIxAP+5TQ5Ftxqrj7qNpUkK5uPhkdXdiVPNOtWE+MPNwL+hC6NuM/D5LnhbC8FGuaOYmg=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"f7NqGszM9u/oYkZopGTe3sjdQQchPhbfB9F9+wdo9vI="}, "signature":"MEUCIQCMIXl2K/NliwaZj3DujOUuzxfZV78vwWZFpJ9hmPMXlwIgFloVfUGvGiZ7RNmWnHGPAicxjM0+6DWp38eH/OZHMYc="}} \ No newline at end of file +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUQXL+9v68u6n/W+Uf29KaDoSFDV8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzI0WhcNMjYwODI3MDgxMzI0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6NIcZG9Z8vfHCNClOLPQf24R9b49dyC+OS+j8+4ooXdn4UmdTx0tIZj2vKJYVRhj2s2pF4dQra0ZWaFUhBdR1qOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUvs5iyT45mQoC/SIYDKf+IHoS2kswHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+waMAAAQDAEgwRgIhAJqp4W9H/Uxeh8eEc3EassnznDVqpAXvrLQSb0vuGx44AiEA0L19Xn/bi5u9jVsgkO4Og5+yy69IWNDyyT/CJLZYVT8wCgYIKoZIzj0EAwMDaAAwZQIxAMFrTkwl2ahdhbdKh1zn5OfTVXN9S3VWfx2Qb3zf0YiwF4IBh0qezcbPFMla3HALHgIwDlZxrb2gcaSNMdF5ETIusJOIQ31E+1NkmJ8GyL3QpUS6QGeixnJPUS1PgKh+QFX3"},"tlogEntries":[{"logIndex":"2614701678","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817804","inclusionPromise":{"signedEntryTimestamp":"MEYCIQDIMqfVRqNTiVQpb33twzJX80MFwOluQBFsM/aX7Lj8ogIhAJpS4Xd8y/o13pL3e+ICjJZo4X93INypSzoJdcowE0DA"},"inclusionProof":{"logIndex":"2492797416","rootHash":"W3O3VkbJHNjz7x2B29codrm6/dmau235UeE+hChAVfI=","treeSize":"2492797419","hashes":["DBln+yCFrocTtpH0Vsz3zERD6W5TU06vdGBeYS/17aw=","nrb0ykKOSEuh9SkERBpsGcLZmT/9GvR/oo8nDxfwDRk=","+yweCuX/76M1exscxT8M9WX3+QyE2PBT2W9sZrOIVd4=","idF045QgACdEwqcJ3VMvq6fweOPJQqYsCpdYqgTNMVM=","yh7mFaXmh2Mw4ju4L+WFTQsTpOi2/kAojvs5osa0h3w=","AhmKibOGoELIifWoz25bqsyFrlRt+XyO5YzMjAXA61A=","0fsGS1dVLGWAYcDSMD1KxtzZ0NUDtIUtBJP7bm4QP68=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797419\nW3O3VkbJHNjz7x2B29codrm6/dmau235UeE+hChAVfI=\n\n— rekor.sigstore.dev wNI9ajBFAiEApx7l5pq0GdpcBd6zQC/wWAq7gJzcJ+4XTtk3jygqBrMCIB5khONElih3ozaBJCwZ3L4oXiE2jjyycye/ZjjNuz88\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1MWFhY2RiOTdlM2ViMTQxZGRmZDg3YjNhZmNjNmRkZTlkNzk0MDcwM2RkOWFlNDUyZDQ2ODYxY2VmYWI5NWM0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUN2c21Oc1h2T1p3bWpuSW1JSFduSStRci9WTEZ3dFltNE54WERaS2N1aWJnSWdFVC9BdWtGRWRyTUlLV3VMV0UydHZOM0srWnhhUDRrT0VJOVByck5MSkVnPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlVWaE1LemwyTmpoMU5tNHZWeXRWWmpJNVMyRkViMU5HUkZZNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKTUZkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtrd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUyVGtsaldrYzVXamgyWmtoRFRrTnNUMHhRVVdZeU5GSTVZalE1WkhsREswOVRLMm9LT0NzMGIyOVlaRzQwVlcxa1ZIZ3dkRWxhYWpKMlMwcFpWbEpvYWpKek1uQkdOR1JSY21Fd1dsZGhSbFZvUW1SU01YRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYyY3pWcENubFVORFZ0VVc5REwxTkpXVVJMWml0SlNHOVRNbXR6ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3QzWVUxQlFVRlJSQXBCUldkM1VtZEphRUZLY1hBMFZ6bElMMVY0WldnNFpVVmpNMFZoYzNOdWVtNUVWbkZ3UVZoMmNreFJVMkl3ZG5WSGVEUTBRV2xGUVRCTU1UbFliaTlpQ21rMWRUbHFWbk5uYTA4MFQyYzFLM2w1TmpsSlYwNUVlWGxVTDBOS1RGcFpWbFE0ZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkplRUZOUm5JS1ZHdDNiREpoYUdSb1ltUkxhREY2YmpWUFpsUldXRTQ1VXpOV1YyWjRNbEZpTTNwbU1GbHBkMFkwU1VKb01IRmxlbU5pVUVaTmJHRXpTRUZNU0dkSmR3cEViRnA0Y21JeVoyTmhVMDVOWkVZMVJWUkpkWE5LVDBsUk16RkZLekZPYTIxS09FZDVURE5SY0ZWVE5sRkhaV2w0YmtwUVZWTXhVR2RMYUN0UlJsZ3pDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgnXGT8I72BXC4WZr+tPdfYdELDDJ/tqzcaqdg4FbGq5ACFGOele+o5tMogn8PL0ehDT+1CTZhGA8yMDI2MDgyNzA4MDMyNFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDgwMzI0WjAvBgkqhkiG9w0BCQQxIgQghBZdwym+2mMRTsHtOutQCYihQpSrUTSoCncgWXnyw9EwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwPWK5Ze1ns80URi5a9tukkM/gc26NOXJB+cOdJD9Q9pcB0rLwH6BY+BSCBo59IdNdAjAWJyjk/iNA0b5XDkz5Fu+y5xlXjnTfs9PtuMWUhmCvirVg7WIXGJXDhPkUODw+2+U="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"UarNuX4+sUHd/Yezr8xt3p15QHA92a5FLUaGHO+rlcQ="},"signature":"MEUCIQCvsmNsXvOZwmjnImIHWnI+Qr/VLFwtYm4NxXDZKcuibgIgET/AukFEdrMIKWuLWE2tvN3K+ZxaP4kOEI9PrrNLJEg="}} \ No newline at end of file diff --git a/build/torch213-cxx11-cu132-aarch64-linux/paged_attention/__init__.py b/build/torch213-cxx11-cu132-aarch64-linux/paged_attention/__init__.py deleted file mode 100644 index a9b2672c1cd85b74c1b3ded0fc0b2100e1aeac23..0000000000000000000000000000000000000000 --- a/build/torch213-cxx11-cu132-aarch64-linux/paged_attention/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -import ctypes -import importlib.util -import sys -from pathlib import Path -from types import ModuleType - - -def _import_from_path(file_path: Path) -> ModuleType: - # We cannot use the module name as-is, after adding it to `sys.modules`, - # it would also be used for other imports. So, we make a module name that - # depends on the path for it to be unique using the hex-encoded hash of - # the path. - path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value) - module_name = path_hash - spec = importlib.util.spec_from_file_location(module_name, file_path) - if spec is None: - raise ImportError(f"Cannot load spec for {module_name} from {file_path}") - module = importlib.util.module_from_spec(spec) - if module is None: - raise ImportError(f"Cannot load module {module_name} from spec") - sys.modules[module_name] = module - spec.loader.exec_module(module) # type: ignore - return module - - -globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py"))) diff --git a/build/torch214-cxx11-cu126-aarch64-linux/__init__.py b/build/torch214-cxx11-cu126-aarch64-linux/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9de56043369487facc1f163df6bd319c9806e5ca --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/__init__.py @@ -0,0 +1,21 @@ +from ._custom_ops import ( + convert_fp8, + copy_blocks, + paged_attention_v1, + paged_attention_v2, + reshape_and_cache, + reshape_and_cache_flash, + swap_blocks, +) +from ._ops import ops + +__all__ = [ + "convert_fp8", + "copy_blocks", + "ops", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "reshape_and_cache_flash", + "swap_blocks", +] diff --git a/build/torch214-cxx11-cu126-aarch64-linux/_custom_ops.py b/build/torch214-cxx11-cu126-aarch64-linux/_custom_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..a0c0b8db085468dee5100c98d14106a9ee917bf2 --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/_custom_ops.py @@ -0,0 +1,173 @@ +from typing import List, Optional + +import torch + +from ._ops import ops + + +# page attention ops +def paged_attention_v1( + out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v1( + out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def paged_attention_v2( + out: torch.Tensor, + exp_sum: torch.Tensor, + max_logits: torch.Tensor, + tmp_out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v2( + out, + exp_sum, + max_logits, + tmp_out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def reshape_and_cache( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: float, + v_scale: float, +) -> None: + ops.reshape_and_cache( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def reshape_and_cache_flash( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: torch.Tensor, + v_scale: torch.Tensor, +) -> None: + ops.reshape_and_cache_flash( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def copy_blocks( + key_caches: List[torch.Tensor], + value_caches: List[torch.Tensor], + block_mapping: torch.Tensor, +) -> None: + ops.copy_blocks(key_caches, value_caches, block_mapping) + + +def swap_blocks( + src: torch.Tensor, dst: torch.Tensor, block_mapping: torch.Tensor +) -> None: + ops.swap_blocks(src, dst, block_mapping) + + +def convert_fp8( + output: torch.Tensor, input: torch.Tensor, scale: float = 1.0, kv_dtype: str = "fp8" +) -> None: + ops.convert_fp8(output, input, scale, kv_dtype) + + +__all__ = [ + "convert_fp8", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "copy_blocks", +] diff --git a/build/torch214-cxx11-cu126-aarch64-linux/_ops.py b/build/torch214-cxx11-cu126-aarch64-linux/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..f658c7b22de9c375f428bb55e8d5f297532cdc85 --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch214-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch214-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..e5baada5b0a49fe1012ab0d21590f89272a6f3e2 --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91acf9553b211fefd6e206980448d6f41c97be7ae84e1ad34da2475a8f4dc78 +size 138068880 diff --git a/build/torch214-cxx11-cu126-aarch64-linux/metadata.json b/build/torch214-cxx11-cu126-aarch64-linux/metadata.json new file mode 100644 index 0000000000000000000000000000000000000000..2855a5817fa5397b6c628cab165d786fd9bfa695 --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/metadata.json @@ -0,0 +1,42 @@ +{ + "name": "paged-attention", + "id": "_paged_attention_cuda_addf474", + "version": 1, + "license": "Apache-2.0", + "python-depends": [], + "kernel-depends": [], + "backend": { + "type": "cuda", + "archs": [ + "7.0", + "7.2", + "7.5", + "8.0", + "8.6", + "8.7", + "8.9", + "9.0+PTX" + ] + }, + "digest": { + "algorithm": "sha256", + "files": { + "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", + "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "2RrPlVOyEf79biBpgESNb0HJe+euhOGtNNokdaj03Hg=", + "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" + } + }, + "provenance": { + "kernel-builder": { + "version": "0.17.0-dev0", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", + "dirty": false + }, + "kernel": { + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", + "dirty": false + } + } +} \ No newline at end of file diff --git a/build/torch214-cxx11-cu126-aarch64-linux/metadata.json.sigstore b/build/torch214-cxx11-cu126-aarch64-linux/metadata.json.sigstore new file mode 100644 index 0000000000000000000000000000000000000000..dead5cb2dac34669aa3351a96184d1767662317c --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/metadata.json.sigstore @@ -0,0 +1 @@ +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtGgAwIBAgIUampsWBiUY+Ob4fAIRz6i9zX4saMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzI1WhcNMjYwODI3MDgxMzI1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbccd7QL1ukZQwC3acgBHzXv2LR/DNs/YFK6x2JQ6idIsYoMVa/BMTiiebu8wYlTZWJlGv6jdU2b/4/mmKpHUrKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUk3xr6mGEidZpOFdZPhOZtoI0j1kwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+xQsAAAQDAEcwRQIhAPYlHJu70ggN7ugjblEoVwQ7hDGf1Mep8Z9oz1tzYUgbAiBfsCsXQzLHYo75DlmtUU77G7ZKEgn3RDpsvTkPkxdacjAKBggqhkjOPQQDAwNnADBkAjB/l9teA3uv2rgy7T59xEVIWynaemZcgZV79SfuTsR8E2gUIXYyHtoP4EZupBHlat0CMFXv4EZTMpLOjtOi6dZQv7y7XFyR152IZynU+FmGFb6fotuw4X14OHSrZJKQEHyfLw=="},"tlogEntries":[{"logIndex":"2614701741","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817805","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCwS6L76/HxSs4lt1ZxUoGq5+UODuUXJ4DARo3TLPF/VgIgEseN6PgTZsEzL06NjLZZpK54phVnHqlY+1j1qPHLA+Q="},"inclusionProof":{"logIndex":"2492797479","rootHash":"bdd8bTB75/L372IVQkGyd9sR4wsVq2jRvC2q/Ba9Sz4=","treeSize":"2492797496","hashes":["rghfzdudhPstQ7hcbE5ASiTOPRpX8OHpZuOYsNkLAhk=","/2pKrcL9+UmpeL4U5z4mwOAChNwyyFFdasRpBcNg3bk=","lGjuWqObxZOu5WJUuc0v/9KGHMrHWuINevSEbz78IB8=","K5E3bH2S7GKPLp5+GAqLpqkAVurw04xyVi+9kMxnjHE=","YokHjCeC2X43ivTSsxPuargGPzCjC2kjYZq77MZA2iQ=","FlhQ7p1q78Q4eoz4w7RwnasWtI0idtA4q3BqZm4ys/k=","Vf5JlmLjuzUA4+au4ilen49mQjVessipzFacyF2aHjg=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797496\nbdd8bTB75/L372IVQkGyd9sR4wsVq2jRvC2q/Ba9Sz4=\n\n— rekor.sigstore.dev wNI9ajBFAiAvGSx8qbCjbmCt9zO8fTq5VidWy54o8BTquBuc/8ErEQIhAIFOnpxRfdw9MrUtJhp1LYtFWnjHHUgjpwgamSlnBL71\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4NGFjY2M0M2ZmZGU3MzQ2MDdkNDc0YmQzYjVhYmEyNjI1ZTNlYzlhOWYzOTExMDgwMDgyYTVjNDJlOTE4YmZlIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURsaXNEYkl4TWc3Q0xGcFQ5em1nVWtqRWZJOTliS0xaZHg3cVBCVzNjUkdRSWhBTDkxSlowQUJ4MVREL0pkd3JpdUxlVERjaGhmdGtRNW1IRW05dENUU3FzLyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SSFowRjNTVUpCWjBsVllXMXdjMWRDYVZWWkswOWlOR1pCU1ZKNk5tazVlbGcwYzJGTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKTVZkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtreFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZpWTJOa04xRk1NWFZyV2xGM1F6TmhZMmRDU0hwWWRqSk1VaTlFVG5NdldVWkxObmdLTWtwUk5tbGtTWE5aYjAxV1lTOUNUVlJwYVdWaWRUaDNXV3hVV2xkS2JFZDJObXBrVlRKaUx6UXZiVzFMY0VoVmNrdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZyTTNoeUNqWnRSMFZwWkZwd1QwWmtXbEJvVDFwMGIwa3dhakZyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3Q0VVhOQlFVRlJSQXBCUldOM1VsRkphRUZRV1d4SVNuVTNNR2RuVGpkMVoycGliRVZ2Vm5kUk4yaEVSMll4VFdWd09GbzViM294ZEhwWlZXZGlRV2xDWm5ORGMxaFJla3hJQ2xsdk56VkViRzEwVlZVM04wYzNXa3RGWjI0elVrUndjM1pVYTFCcmVHUmhZMnBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTVCUkVKclFXcENMMnc1ZEdVS1FUTjFkakp5WjNrM1ZEVTVlRVZXU1ZkNWJtRmxiVnBqWjFwV056bFRablZVYzFJNFJUSm5WVWxZV1hsSWRHOVFORVZhZFhCQ1NHeGhkREJEVFVaWWRnbzBSVnBVVFhCTVQycDBUMmsyWkZwUmRqZDVOMWhHZVZJeE5USkpXbmx1VlN0R2JVZEdZalptYjNSMWR6UllNVFJQU0ZOeVdrcExVVVZJZVdaTWR6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgqMbERXjf+MtnJENx22md1Q4D1dx6LKm5S/SS3rz1TrICFQCAOkf3V63S2t6gL7CxawTH5LIgGhgPMjAyNjA4MjcwODAzMjVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNzA4MDMyNVowLwYJKoZIhvcNAQkEMSIEIBUaN4Lk3C01UMLz0+SxwelW9yRFxG/Z1SM8cnIuiZDgMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDi9+I8XTPwtY+lm5ztc+EK5u/STXBjzXl0k6uqIRkny1+9we00LJDbib1DGY0caAICMAgfKA4pchrCb4RgBA+EegOiupmF9ubuoXArxOtYAmSs4U7Uhl5uLJV/Vm5ey6HSLg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"hKzMQ//ec0YH1HS9O1q6JiXj7JqfOREIAIKlxC6Ri/4="},"signature":"MEYCIQDlisDbIxMg7CLFpT9zmgUkjEfI99bKLZdx7qPBW3cRGQIhAL91JZ0ABx1TD/JdwriuLeTDchhftkQ5mHEm9tCTSqs/"}} \ No newline at end of file diff --git a/build/torch214-cxx11-cu126-aarch64-linux/platforms.py b/build/torch214-cxx11-cu126-aarch64-linux/platforms.py new file mode 100644 index 0000000000000000000000000000000000000000..6277d5f50ff3ddc265bb39fa1c4d17e0341b7767 --- /dev/null +++ b/build/torch214-cxx11-cu126-aarch64-linux/platforms.py @@ -0,0 +1,92 @@ +import os +import random +from abc import ABC, abstractmethod +from functools import lru_cache, wraps +from typing import Callable, ParamSpec, TypeVar + +import numpy as np +import torch + +IS_ROCM = torch.version.hip is not None +IS_MPS = torch.backends.mps.is_available() + + +class Platform(ABC): + @classmethod + def seed_everything(cls, seed: int) -> None: + """ + Set the seed of each random module. + `torch.manual_seed` will set seed on all devices. + + Loosely based on: https://github.com/Lightning-AI/pytorch-lightning/blob/2.4.0/src/lightning/fabric/utilities/seed.py#L20 + """ + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + + @abstractmethod + def get_device_name(self, device_id: int = 0) -> str: ... + + @abstractmethod + def is_cuda(self) -> bool: ... + + @abstractmethod + def is_rocm(self) -> bool: ... + + @abstractmethod + def is_mps(self) -> bool: ... + + +class CudaPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(0) + + def is_cuda(self) -> bool: + return True + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return False + + +class RocmPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return True + + def is_mps(self) -> bool: + return False + + +class MpsPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return True + +current_platform = ( + RocmPlatform() if IS_ROCM else + MpsPlatform() if IS_MPS else + CudaPlatform() if torch.cuda.is_available() else + None +) diff --git a/build/torch214-cxx11-cu130-aarch64-linux/__init__.py b/build/torch214-cxx11-cu130-aarch64-linux/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9de56043369487facc1f163df6bd319c9806e5ca --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/__init__.py @@ -0,0 +1,21 @@ +from ._custom_ops import ( + convert_fp8, + copy_blocks, + paged_attention_v1, + paged_attention_v2, + reshape_and_cache, + reshape_and_cache_flash, + swap_blocks, +) +from ._ops import ops + +__all__ = [ + "convert_fp8", + "copy_blocks", + "ops", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "reshape_and_cache_flash", + "swap_blocks", +] diff --git a/build/torch214-cxx11-cu130-aarch64-linux/_custom_ops.py b/build/torch214-cxx11-cu130-aarch64-linux/_custom_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..a0c0b8db085468dee5100c98d14106a9ee917bf2 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/_custom_ops.py @@ -0,0 +1,173 @@ +from typing import List, Optional + +import torch + +from ._ops import ops + + +# page attention ops +def paged_attention_v1( + out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v1( + out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def paged_attention_v2( + out: torch.Tensor, + exp_sum: torch.Tensor, + max_logits: torch.Tensor, + tmp_out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v2( + out, + exp_sum, + max_logits, + tmp_out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def reshape_and_cache( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: float, + v_scale: float, +) -> None: + ops.reshape_and_cache( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def reshape_and_cache_flash( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: torch.Tensor, + v_scale: torch.Tensor, +) -> None: + ops.reshape_and_cache_flash( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def copy_blocks( + key_caches: List[torch.Tensor], + value_caches: List[torch.Tensor], + block_mapping: torch.Tensor, +) -> None: + ops.copy_blocks(key_caches, value_caches, block_mapping) + + +def swap_blocks( + src: torch.Tensor, dst: torch.Tensor, block_mapping: torch.Tensor +) -> None: + ops.swap_blocks(src, dst, block_mapping) + + +def convert_fp8( + output: torch.Tensor, input: torch.Tensor, scale: float = 1.0, kv_dtype: str = "fp8" +) -> None: + ops.convert_fp8(output, input, scale, kv_dtype) + + +__all__ = [ + "convert_fp8", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "copy_blocks", +] diff --git a/build/torch214-cxx11-cu130-aarch64-linux/_ops.py b/build/torch214-cxx11-cu130-aarch64-linux/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..f658c7b22de9c375f428bb55e8d5f297532cdc85 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch214-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch214-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..a29ce28e694cdd55b8cd281c2b426de8cab82b47 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7f09d7e729437ad1a64db72010da2d67775b729295259f0d66512f341d35b2f +size 97297264 diff --git a/build/torch214-cxx11-cu130-aarch64-linux/metadata.json b/build/torch214-cxx11-cu130-aarch64-linux/metadata.json new file mode 100644 index 0000000000000000000000000000000000000000..2bef1ea3e8040d07a9beeccb72b4d27de8ef5855 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/metadata.json @@ -0,0 +1,45 @@ +{ + "name": "paged-attention", + "id": "_paged_attention_cuda_addf474", + "version": 1, + "license": "Apache-2.0", + "python-depends": [], + "kernel-depends": [], + "backend": { + "type": "cuda", + "archs": [ + "10.0", + "10.3", + "11.0", + "12.0", + "12.1+PTX", + "7.5", + "8.0", + "8.6", + "8.7", + "8.9", + "9.0" + ] + }, + "digest": { + "algorithm": "sha256", + "files": { + "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", + "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "x/CdfnKUN60aZNtyAQ2i1nd1tykpUlnw1mUS80HTWy8=", + "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" + } + }, + "provenance": { + "kernel-builder": { + "version": "0.17.0-dev0", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", + "dirty": false + }, + "kernel": { + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", + "dirty": false + } + } +} \ No newline at end of file diff --git a/build/torch214-cxx11-cu130-aarch64-linux/metadata.json.sigstore b/build/torch214-cxx11-cu130-aarch64-linux/metadata.json.sigstore new file mode 100644 index 0000000000000000000000000000000000000000..a922a774acbd332e82185ad3584856111291f787 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/metadata.json.sigstore @@ -0,0 +1 @@ +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUFfHPZVvh5fdDEPgGZGH/4NqNdtUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzI1WhcNMjYwODI3MDgxMzI1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB4p4SoVA4zaeNSfxJw4Gp2gJxCai5DcqmHbPrYivVMWLodYlI+I36B0OS5tBMi/V0k10js23dorBTVTFgkvPKaOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUu+q8YPvxgKxkNTcw2oGRYlJKlnIwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+yGMAAAQDAEgwRgIhAMQInsw3BiMCLapA0SqOSbWddTXgM8sCWkbrry8xrmyhAiEAqceJEp6nNmB8Y3Kt2Hnpnx04nYNdf0pzXYGEM1uhCq0wCgYIKoZIzj0EAwMDaAAwZQIwIU3EToOh8xCYXD5fcvpmGUx9raaWG9ZTRbCDD4jo82T2J4JNh5eb0mwlI7/x2DNnAjEAzOOS9T6NOwsOKej6dz7L7Wze0DFeOrVtG4CuQVj4lw3uvqCv1uzNpKVqWYX9zxZu"},"tlogEntries":[{"logIndex":"2614701824","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817806","inclusionPromise":{"signedEntryTimestamp":"MEYCIQDBdI4ekO/DjUnb8LgLu08VzkowmNkexsVLStr0YM9CjgIhAK+LkCFPs1FpXlgwQNvzEM93COJTM9k3HHKP7f2+rYLY"},"inclusionProof":{"logIndex":"2492797562","rootHash":"FILFLtkE3E9+5VkmuNqzGfsx9yLjozqqmlcU0I0IGcg=","treeSize":"2492797582","hashes":["s7+V1Wlj2Yu3Ih5+nYBcMhdMbleQ79PD1F41mXiInFU=","pBSVrBvcMWL046uLzxhY9lBJJ9IQ8LAgV+2E/Wu8zzs=","3BlYXDL7pybfrO3UGY50yAZwpaz8oyjgkeJlbUIF+jE=","qWsj6hHP7EopLqXyzgAwizHqZx44YbvrDSHxzi7K5yw=","hH/y7UYCzN4IMsaXwBgDJHz5znDWmntuLo18lcJWmtk=","jz1eviQvHlEEt+sZ3P+hHiun8Be1SKknqvgLNalltEk=","PZ9LzajKWetGLCtZ99YQNMyX0gXvN1LH6J0gQrtyyRU=","nQBMUyKRJ9Rzwqkp2RQMMs9hj3BvoF0rWWrPtHAvvic=","Vf5JlmLjuzUA4+au4ilen49mQjVessipzFacyF2aHjg=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797582\nFILFLtkE3E9+5VkmuNqzGfsx9yLjozqqmlcU0I0IGcg=\n\n— rekor.sigstore.dev wNI9ajBEAiB25zSouGZVkl7iCBnYfaT7qvUnytbyu0MWVy+/zmChhQIgKCD8L4Q/wsMvvPbiqxuN9aZ1OrZRynejg6UGIxzi+lg=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2MmEwMzc1Y2IwOGE0NjdjMmNjYzNiYjkwZGJjYWJlNDNhMzA4NTNjMDZlNzViMmZkOGIyNzg3YjNkZGFjNjVlIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQVR3L04wQk9rTktTZ2VzamdMaWp5dHZUV2tWSnhqZ04wUTA0Rzhqakw2aUFpQUZ6SEdrQXJRMnZDTmpvQ2NvQVBFOGY1cHl0ZFIrMGp5VGhQSmtEQU00TFE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlJtWklVRnBXZG1nMVptUkVSVkJuUjFwSFNDODBUbkZPWkhSVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKTVZkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtreFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZDTkhBMFUyOVdRVFI2WVdWT1UyWjRTbmMwUjNBeVowcDRRMkZwTlVSamNXMUlZbEFLY2xscGRsWk5WMHh2WkZsc1NTdEpNelpDTUU5VE5YUkNUV2t2VmpCck1UQnFjekl6Wkc5eVFsUldWRVpuYTNaUVMyRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYxSzNFNENsbFFkbmhuUzNoclRsUmpkekp2UjFKWmJFcExiRzVKZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3Q1UjAxQlFVRlJSQXBCUldkM1VtZEphRUZOVVVsdWMzY3pRbWxOUTB4aGNFRXdVM0ZQVTJKWFpHUlVXR2ROT0hORFYydGljbko1T0hoeWJYbG9RV2xGUVhGalpVcEZjRFp1Q2s1dFFqaFpNMHQwTWtodWNHNTRNRFJ1V1U1a1pqQndlbGhaUjBWTk1YVm9RM0V3ZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkpkMGxWTTBVS1ZHOVBhRGg0UTFsWVJEVm1ZM1p3YlVkVmVEbHlZV0ZYUnpsYVZGSmlRMFJFTkdwdk9ESlVNa28wU2s1b05XVmlNRzEzYkVrM0wzZ3lSRTV1UVdwRlFRcDZUMDlUT1ZRMlRrOTNjMDlMWldvMlpIbzNURGRYZW1Vd1JFWmxUM0pXZEVjMFEzVlJWbW8wYkhjemRYWnhRM1l4ZFhwT2NFdFdjVmRaV0RsNmVGcDFDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgG8WGXHYzWPvypKDdL4bVuS9nlY9jqFbtOj4+fgZGi0UCFQCLzDZUBCVYSRVn26L1Q8yWwXGG2RgPMjAyNjA4MjcwODAzMjZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNzA4MDMyNlowLwYJKoZIhvcNAQkEMSIEIJ4RXqTpBmQtp+nTubxxGo+k9QbAJWDT0OokU4mkz23GMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMFaNsnSoURsZR78wXbFX0pxquempCEFEPOUjhAOPihLetV6m5bTB4ktYNPWU5aH2PwIwLwa7aDXlMDxBYw2JYl0wvlPjBv20AnFEKzWH+LUCE934cVr0XRzfYewBlAT3ig48"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"YqA3XLCKRnwszDu5Dbyr5DowhTwG51sv2LJ4ez3axl4="},"signature":"MEQCIATw/N0BOkNKSgesjgLijytvTWkVJxjgN0Q04G8jjL6iAiAFzHGkArQ2vCNjoCcoAPE8f5pytdR+0jyThPJkDAM4LQ=="}} \ No newline at end of file diff --git a/build/torch214-cxx11-cu130-aarch64-linux/platforms.py b/build/torch214-cxx11-cu130-aarch64-linux/platforms.py new file mode 100644 index 0000000000000000000000000000000000000000..6277d5f50ff3ddc265bb39fa1c4d17e0341b7767 --- /dev/null +++ b/build/torch214-cxx11-cu130-aarch64-linux/platforms.py @@ -0,0 +1,92 @@ +import os +import random +from abc import ABC, abstractmethod +from functools import lru_cache, wraps +from typing import Callable, ParamSpec, TypeVar + +import numpy as np +import torch + +IS_ROCM = torch.version.hip is not None +IS_MPS = torch.backends.mps.is_available() + + +class Platform(ABC): + @classmethod + def seed_everything(cls, seed: int) -> None: + """ + Set the seed of each random module. + `torch.manual_seed` will set seed on all devices. + + Loosely based on: https://github.com/Lightning-AI/pytorch-lightning/blob/2.4.0/src/lightning/fabric/utilities/seed.py#L20 + """ + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + + @abstractmethod + def get_device_name(self, device_id: int = 0) -> str: ... + + @abstractmethod + def is_cuda(self) -> bool: ... + + @abstractmethod + def is_rocm(self) -> bool: ... + + @abstractmethod + def is_mps(self) -> bool: ... + + +class CudaPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(0) + + def is_cuda(self) -> bool: + return True + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return False + + +class RocmPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return True + + def is_mps(self) -> bool: + return False + + +class MpsPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return True + +current_platform = ( + RocmPlatform() if IS_ROCM else + MpsPlatform() if IS_MPS else + CudaPlatform() if torch.cuda.is_available() else + None +) diff --git a/build/torch214-cxx11-cu132-aarch64-linux/__init__.py b/build/torch214-cxx11-cu132-aarch64-linux/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9de56043369487facc1f163df6bd319c9806e5ca --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/__init__.py @@ -0,0 +1,21 @@ +from ._custom_ops import ( + convert_fp8, + copy_blocks, + paged_attention_v1, + paged_attention_v2, + reshape_and_cache, + reshape_and_cache_flash, + swap_blocks, +) +from ._ops import ops + +__all__ = [ + "convert_fp8", + "copy_blocks", + "ops", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "reshape_and_cache_flash", + "swap_blocks", +] diff --git a/build/torch214-cxx11-cu132-aarch64-linux/_custom_ops.py b/build/torch214-cxx11-cu132-aarch64-linux/_custom_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..a0c0b8db085468dee5100c98d14106a9ee917bf2 --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/_custom_ops.py @@ -0,0 +1,173 @@ +from typing import List, Optional + +import torch + +from ._ops import ops + + +# page attention ops +def paged_attention_v1( + out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v1( + out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def paged_attention_v2( + out: torch.Tensor, + exp_sum: torch.Tensor, + max_logits: torch.Tensor, + tmp_out: torch.Tensor, + query: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + num_kv_heads: int, + scale: float, + block_tables: torch.Tensor, + seq_lens: torch.Tensor, + block_size: int, + max_seq_len: int, + alibi_slopes: Optional[torch.Tensor], + kv_cache_dtype: str, + k_scale: float, + v_scale: float, + tp_rank: int = 0, + blocksparse_local_blocks: int = 0, + blocksparse_vert_stride: int = 0, + blocksparse_block_size: int = 64, + blocksparse_head_sliding_step: int = 0, +) -> None: + ops.paged_attention_v2( + out, + exp_sum, + max_logits, + tmp_out, + query, + key_cache, + value_cache, + num_kv_heads, + scale, + block_tables, + seq_lens, + block_size, + max_seq_len, + alibi_slopes, + kv_cache_dtype, + k_scale, + v_scale, + tp_rank, + blocksparse_local_blocks, + blocksparse_vert_stride, + blocksparse_block_size, + blocksparse_head_sliding_step, + ) + + +def reshape_and_cache( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: float, + v_scale: float, +) -> None: + ops.reshape_and_cache( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def reshape_and_cache_flash( + key: torch.Tensor, + value: torch.Tensor, + key_cache: torch.Tensor, + value_cache: torch.Tensor, + slot_mapping: torch.Tensor, + kv_cache_dtype: str, + k_scale: torch.Tensor, + v_scale: torch.Tensor, +) -> None: + ops.reshape_and_cache_flash( + key, + value, + key_cache, + value_cache, + slot_mapping, + kv_cache_dtype, + k_scale, + v_scale, + ) + + +def copy_blocks( + key_caches: List[torch.Tensor], + value_caches: List[torch.Tensor], + block_mapping: torch.Tensor, +) -> None: + ops.copy_blocks(key_caches, value_caches, block_mapping) + + +def swap_blocks( + src: torch.Tensor, dst: torch.Tensor, block_mapping: torch.Tensor +) -> None: + ops.swap_blocks(src, dst, block_mapping) + + +def convert_fp8( + output: torch.Tensor, input: torch.Tensor, scale: float = 1.0, kv_dtype: str = "fp8" +) -> None: + ops.convert_fp8(output, input, scale, kv_dtype) + + +__all__ = [ + "convert_fp8", + "paged_attention_v1", + "paged_attention_v2", + "reshape_and_cache", + "copy_blocks", +] diff --git a/build/torch214-cxx11-cu132-aarch64-linux/_ops.py b/build/torch214-cxx11-cu132-aarch64-linux/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..f658c7b22de9c375f428bb55e8d5f297532cdc85 --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _paged_attention_cuda_addf474 +ops = torch.ops._paged_attention_cuda_addf474 + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_paged_attention_cuda_addf474::{op_name}" diff --git a/build/torch214-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so b/build/torch214-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so new file mode 100644 index 0000000000000000000000000000000000000000..d2d35608c098b51b0b173e759dc85f4ddf7e42dd --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/_paged_attention_cuda_addf474.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df7db66b05eaa003bad25b7e41df28871072d2cefeca06ea2d4a6feb551873b +size 96120456 diff --git a/build/torch214-cxx11-cu132-aarch64-linux/metadata.json b/build/torch214-cxx11-cu132-aarch64-linux/metadata.json new file mode 100644 index 0000000000000000000000000000000000000000..55b0ea44a48d4ccdf12775c181734f543da5c857 --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/metadata.json @@ -0,0 +1,45 @@ +{ + "name": "paged-attention", + "id": "_paged_attention_cuda_addf474", + "version": 1, + "license": "Apache-2.0", + "python-depends": [], + "kernel-depends": [], + "backend": { + "type": "cuda", + "archs": [ + "10.0", + "10.3", + "11.0", + "12.0", + "12.1+PTX", + "7.5", + "8.0", + "8.6", + "8.7", + "8.9", + "9.0" + ] + }, + "digest": { + "algorithm": "sha256", + "files": { + "__init__.py": "oes6jQj02wGGtnJVomIE7ZJr2qnJmOm6CWurue5Vf6w=", + "_custom_ops.py": "tnC6OR7TPhMV+tt8MyUyIH2gDIdxBzHT+1z1NUhA9EE=", + "_ops.py": "ljgy4ogthuAfMI0FHeqd6vBDQG9gDf8si+utP/EiYCI=", + "_paged_attention_cuda_addf474.abi3.so": "HffbZrBeqgA7rSW35B3yiHEHLSzv7KBuotSm/rVRhzs=", + "platforms.py": "NeAhENqA8yXHgy3EfkYP1Bkx1n6aStkExV9py7Jvdiw=" + } + }, + "provenance": { + "kernel-builder": { + "version": "0.17.0-dev0", + "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5", + "dirty": false + }, + "kernel": { + "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a", + "dirty": false + } + } +} \ No newline at end of file diff --git a/build/torch214-cxx11-cu132-aarch64-linux/metadata.json.sigstore b/build/torch214-cxx11-cu132-aarch64-linux/metadata.json.sigstore new file mode 100644 index 0000000000000000000000000000000000000000..25f07b754bff3616b9a9f9262278a05ea979f8bf --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/metadata.json.sigstore @@ -0,0 +1 @@ +{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUe7pCuU55lmw5MWFFZY/Imv1DERswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDgwMzI2WhcNMjYwODI3MDgxMzI2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqRynxk7xQ6sr7o2BIBaBGQEi/GYq2tv//3wm9hcwynmqD1YHHhPz7xfYWA5CwGgQsmKmkERNJ/g0iOaR28yZKaOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUHA2lJM/lWHWNct7pqDh2cRlcaRcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzMwNDU0MTE3MDQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoEI+y8YAAAQDAEcwRQIhAOIlGyd22chglNyjxceB7s8kuqK9qeL0gV35u9n3xQZMAiBZ07Hmo8Ar7tLpl06lPBsiE37r+FpXmHpN10B341fsgDAKBggqhkjOPQQDAwNoADBlAjAkvjyILK0HNh/jgA8Ml9MyUVhhTIsrwGrfrw3b1OOhIVPuwGsN/er0OxmcCoRelJYCMQCSNrf6tz8vDQOxAqlBYRSPDn0/MEhClilC06NK2sfLgj2ffpdn3bPo11xZfqK61s4="},"tlogEntries":[{"logIndex":"2614701890","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787817807","inclusionPromise":{"signedEntryTimestamp":"MEQCIDHEzbVlUhOd4rmTDVYGMjAo5cIFdoJ+JL1V4TfItSXTAiA2QfqDmlVTWIVnvba9sMJTEaewD3CdoWn4jYAxZHcVVQ=="},"inclusionProof":{"logIndex":"2492797628","rootHash":"+TU6o7Ote8LTwVhbZ8MPYWDyO+YTBfyUBfOiG4h3Hao=","treeSize":"2492797633","hashes":["pwPuJHQOcyx922bmmuZGyuaqD89uG3Jmf70TaKVgy/Q=","zZIHskgGurTXwN0lTHWFl33d7CTfKHCPGS4YCcJV87I=","CxKme6mAYBsd9MVOdF9oXHU8SsPNW4hVTSHL883Aj6M=","fjF2xp80wswOh8OGiYSJC61HZ+bolomNkqHHfoWZEdE=","OYcm3UUmNlIgn2rssiohY64FUOKH8/FD9kg5YgRRzH4=","h5iZ2jSu1aWK/8i7Bm2u6syAbP/k5L9HiKwJa7EtKfs=","Sh57hw9LrxofF+AxjYGuTRmJKM15eFIy+16bFSFFjQk=","OZAukS4RFUFP/+g317f4J5TtlpueXUit4wNomga4aNQ=","Vf5JlmLjuzUA4+au4ilen49mQjVessipzFacyF2aHjg=","KzwObXg+9XQEEDSj+W/cd2MXxQoI6gFroU4bKeFoMPM=","FelTwxb3dSIwDjE+tCzw3hYBU95j9cTagfEHxLt8V1E=","4SZE8QJP+ameGOSQLMFVdGwU+IT0s4kbtOBJGZahbDE=","NSuKPSrhPDg3xoCPz74qzkB8LWy1aV46KTWus0HJYzQ=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2492797633\n+TU6o7Ote8LTwVhbZ8MPYWDyO+YTBfyUBfOiG4h3Hao=\n\n— rekor.sigstore.dev wNI9ajBGAiEA1VM4+UrSH3S0YS6bDHs6tHWCeDViRjjtZbn99GeJEUgCIQDdp5EZjcLNfllbb5hrJhw7XuEsyv3H+EqqSW4cvpjEKg==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3MDFlZjE2NWJiNjBhMTk3MzdlZTQ1ZWYzM2M5M2U1M2M3YjlmMDhkMWY5MWNmNjYwZTJmOWMyODZiZTM1ZTY3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQTZ2cVlDS0liNDVJT2U3b3VrRTJ5dVBlRC9TTEY0RjU4aDVPbExGSUpnNEFpQUhCUzV4cEFZTjlQTWcyQWJSeTZJNWJTZlZLLzRqclRLQ2p3VTdaS0JyZ3c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlpUZHdRM1ZWTlRWc2JYYzFUVmRHUmxwWkwwbHRkakZFUlZKemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJHZDNUWHBKTWxkb1kwNU5hbGwzVDBSSk0wMUVaM2hOZWtreVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ4VW5sdWVHczNlRkUyYzNJM2J6SkNTVUpoUWtkUlJXa3ZSMWx4TW5SMkx5OHpkMjBLT1doamQzbHViWEZFTVZsSVNHaFFlamQ0WmxsWFFUVkRkMGRuVVhOdFMyMXJSVkpPU2k5bk1HbFBZVkl5T0hsYVMyRlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZJUVRKc0NrcE5MMnhYU0ZkT1kzUTNjSEZFYURKalVteGpZVkpqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVpWMUpyV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBDazFVVlRWUFJGWnJXbTFHYkZwWFJUTlplbVJxVFcxWmVsbFVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWxOVkZVMVQwUldhMXB0Um13S1dsZEZNMWw2WkdwTmJWbDZXVlJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWxYVW10YWFsRXpUa1JHYlZsWFdtbE9WRlpwVGtkTmVFMUVSbWtLVFZSVk5VOUVWbXRhYlVac1dsZEZNMWw2WkdwTmJWbDZXVlJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZEdhMXBIV1RBS1RucFJlRnB0Um0xWmFsVXhXV3BTYWsxVVFYaFpha1V4VDFSbk1WcEhXbWhhVjFab1RqSk5NMWw2U20xTk1rVjNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWsxM1RrUlZNRTFVUlROTlJGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUZTU3Q1T0ZsQlFVRlJSQXBCUldOM1VsRkphRUZQU1d4SGVXUXlNbU5vWjJ4T2VXcDRZMlZDTjNNNGEzVnhTemx4WlV3d1oxWXpOWFU1YmpONFVWcE5RV2xDV2pBM1NHMXZPRUZ5Q2pkMFRIQnNNRFpzVUVKemFVVXpOM0lyUm5CWWJVaHdUakV3UWpNME1XWnpaMFJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEJhM1pxZVVrS1RFc3dTRTVvTDJwblFUaE5iRGxOZVZWV2FHaFVTWE55ZDBkeVpuSjNNMkl4VDA5b1NWWlFkWGRIYzA0dlpYSXdUM2h0WTBOdlVtVnNTbGxEVFZGRFV3cE9jbVkyZEhvNGRrUlJUM2hCY1d4Q1dWSlRVRVJ1TUM5TlJXaERiR2xzUXpBMlRrc3ljMlpNWjJveVptWndaRzR6WWxCdk1URjRXbVp4U3pZeGN6UTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgRd4yb/sBF6idrir23r+w+Qz5qgqMmeb6jgAP5IaFyFsCFQDLNECqC76m5aoihNdlnukBxKknnhgPMjAyNjA4MjcwODAzMjZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNzA4MDMyNlowLwYJKoZIhvcNAQkEMSIEIA+MBHMbiGaFZXuA3Ou4t7t5f7XdjYIVrcnPKSSa8/5XMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQCCJbzknIN7oA1gmC/IAK8B5h1MdihL+yfnm1tj85cJeLhxT09N5SfOi0I/qjr03C8CMQDbn2qdF+TNmNMJgchxJh0auqKLRNk9ehKTFCVRAyXYxQikNrNPQP/8/SVFcEuzC6k="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"cB7xZbtgoZc37kXvM8k+U8e58I0fkc9mDi+cKGvjXmc="},"signature":"MEQCIA6vqYCKIb45IOe7oukE2yuPeD/SLF4F58h5OlLFIJg4AiAHBS5xpAYN9PMg2AbRy6I5bSfVK/4jrTKCjwU7ZKBrgw=="}} \ No newline at end of file diff --git a/build/torch214-cxx11-cu132-aarch64-linux/platforms.py b/build/torch214-cxx11-cu132-aarch64-linux/platforms.py new file mode 100644 index 0000000000000000000000000000000000000000..6277d5f50ff3ddc265bb39fa1c4d17e0341b7767 --- /dev/null +++ b/build/torch214-cxx11-cu132-aarch64-linux/platforms.py @@ -0,0 +1,92 @@ +import os +import random +from abc import ABC, abstractmethod +from functools import lru_cache, wraps +from typing import Callable, ParamSpec, TypeVar + +import numpy as np +import torch + +IS_ROCM = torch.version.hip is not None +IS_MPS = torch.backends.mps.is_available() + + +class Platform(ABC): + @classmethod + def seed_everything(cls, seed: int) -> None: + """ + Set the seed of each random module. + `torch.manual_seed` will set seed on all devices. + + Loosely based on: https://github.com/Lightning-AI/pytorch-lightning/blob/2.4.0/src/lightning/fabric/utilities/seed.py#L20 + """ + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + + @abstractmethod + def get_device_name(self, device_id: int = 0) -> str: ... + + @abstractmethod + def is_cuda(self) -> bool: ... + + @abstractmethod + def is_rocm(self) -> bool: ... + + @abstractmethod + def is_mps(self) -> bool: ... + + +class CudaPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(0) + + def is_cuda(self) -> bool: + return True + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return False + + +class RocmPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return True + + def is_mps(self) -> bool: + return False + + +class MpsPlatform(Platform): + @classmethod + @lru_cache(maxsize=8) + def get_device_name(cls, device_id: int = 0) -> str: + return torch.cuda.get_device_name(device_id) + + def is_cuda(self) -> bool: + return False + + def is_rocm(self) -> bool: + return False + + def is_mps(self) -> bool: + return True + +current_platform = ( + RocmPlatform() if IS_ROCM else + MpsPlatform() if IS_MPS else + CudaPlatform() if torch.cuda.is_available() else + None +)