From 2cd1dd9ce8fc2738d852fdb5b7e82b2bcb130a89 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:30:07 +0900 Subject: [PATCH 01/20] bootstrap(coverage): stage trusted uv materializer script chunk 00 --- .tmp/uv-materializer/script.00.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/script.00.b64 diff --git a/.tmp/uv-materializer/script.00.b64 b/.tmp/uv-materializer/script.00.b64 new file mode 100644 index 000000000..ec8c3f39d --- /dev/null +++ b/.tmp/uv-materializer/script.00.b64 @@ -0,0 +1 @@ +IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiJNYXRlcmlhbGl6ZSBoYXNoLXBpbm5lZCBQeXRob24gbG9ja3MgZnJvbSBhIHZhbGlkYXRlZCBwdWxsLXJlcXVlc3QgYmFzZSBjb21taXQuIiIiCgpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCgppbXBvcnQgYXJncGFyc2UKaW1wb3J0IGF0ZXhpdAppbXBvcnQgZm5tYXRjaAppbXBvcnQgZnVuY3Rvb2xzCmltcG9ydCBoYXNobGliCmltcG9ydCBpbwppbXBvcnQganNvbgppbXBvcnQgcGF0aGxpYgppbXBvcnQgcmUKaW1wb3J0IHNodXRpbAppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgc3lzCmltcG9ydCB0YXJmaWxlCmltcG9ydCB0ZW1wZmlsZQppbXBvcnQgdXJsbGliLnBhcnNlCmltcG9ydCB1cmxsaWIucmVxdWVzdAoKClNIQV9SRSA9IHJlLmNvbXBpbGUociJeWzAtOWEtZkEtRl17NDB9JCIpClVWX0VYUE9SVF9USU1FT1VUX1NFQ09ORFMgPSAxMjAKVFJVU1RFRF9VVl9WRVJTSU9OID0gIjAuMTIuMSIKVFJVU1RFRF9VVl9BUkNISVZFX1VSTCA9ICgKICAgICJodHRwczovL3JlbGVhc2VzLmFzdHJhbC5zaC9naXRodWIvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC4xMi4xLyIKICAgICJ1di14ODZfNjQtdW5rbm93bi1saW51eC1nbnUudGFyLmd6IgopClRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYgPSAoCiAgICAiOTBiMmYyMjNmYjY5ZDE5ZGI0OWUxMTdkYTYwMWY2NDk3ODU5MzQxNzk4ODUzMGFhNzMzZDQ1NjE0MWI0YmNiYiIKKQpUUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSID0gInV2LXg4Nl82NC11bmtub3duLWxpbnV4LWdudS91diIKVFJVU1RFRF9VVl9ET1dOTE9BRF9USU1FT1VUX1NFQ09ORFMgPSAxMjAKVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVMgPSA2NCAqIDEwMjQgKiAxMDI0ClRSVVNURURfVVZfQklOQVJZX01BWF9CWVRFUyA9IDY0ICogMTAyNCAqIDEwMjQKVFJVU1RFRF9VVl9WRVJTSU9OX1RJTUVPVVRfU0VDT05EUyA9IDEwCgoKZGVmIF9pc19jYW5kaWRhdGVfbG9ja19uYW1lKG5hbWU6IHN0cikgLT4gYm9vbDoKICAgICIiIlJldHVybiB3aGV0aGVyIGEgZmlsZSBuYW1lIGlzIGEgcG9zc2libGUgcGlwIHJlcXVpcmVtZW50cyBsb2NrLiIiIgogICAgcmV0dXJuIG5hbWUgPT0gInJlcXVpcmVtZW50cy5sb2NrIiBvciAoCiAgICAgICAgZm5tYXRjaC5mbm1hdGNoKG5hbWUsICJyZXF1aXJlbWVudHMqLnR4dCIpCiAgICAgICAgYW5kIG5vdCBmbm1hdGNoLmZubWF0Y2gobmFtZSwgInJlcXVpcmVtZW50cy0qLWNpLWhhc2hlcy50eHQiKQogICAgKQoKCmRlZiBfcmVxdWlyZW1lbnRfbGluZXMoY29udGVudDogYnl0ZXMpIC0+IGxpc3Rbc3RyXToKICAgICIiIlJldHVybiBsb2dpY2FsIHJlcXVpcmVtZW50IGxpbmVzLCBqb2luaW5nIGJhY2tzbGFzaCBsaW5lLWNvbnRpbnVhdGlvbnMuCgogICAgYGBwaXAtY29tcGlsZWBgL2BgdXYgZXhwb3J0YGAgd3JpdGUgZWFjaCByZXF1aXJlbWVudCBhcyBhIHNwZWMgbGluZSBlbmRpbmcgaW4KICAgIGEgYmFja3NsYXNoIGZvbGxvd2VkIGJ5IGluZGVudGVkIGBgLS1oYXNoPWBgIGNvbnRpbnVhdGlvbiBsaW5lcy4gSm9pbmluZyB0aGUKICAgIGNvbnRpbnVhdGlvbnMgZmlyc3Qga2VlcHMgYSBzcGVjIGFuZCBpdHMgaGFzaGVzIG9uIG9uZSBsb2dpY2FsIGxpbmUgc28gdGhlCiAgICBoYXNoLXBpbiBjaGVjayBzZWVzIHRoZW0gdG9nZXRoZXIuCiAgICAiIiIKICAgIHRleHQgPSBjb250ZW50LmRlY29kZSgidXRmLTgiLCBlcnJvcnM9Imlnbm9yZSIpLnJlcGxhY2UoIlxyXG4iLCAiXG4iKQogICAgam9pbmVkID0gdGV4dC5yZXBsYWNlKCJcXFxuIiwgIiAiKQogICAgbGluZXM6IGxpc3Rbc3RyXSA9IFtdCiAgICBmb3IgcmF3X2xpbmUgaW4gam9pbmVkLnNwbGl0bGluZXMoKToKICAgICAgICBsaW5lID0gcmF3X2xpbmUuc3RyaXAoKQogICAgICAgIGlmIG5vdCBsaW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQogICAgcmV0dXJuIGxpbmVzCgoKZGVmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50OiBieXRlcykgLT4gYm9vbDoKICAgICIiIlJldHVybiB3aGV0aGVyIGNvbnRlbnQgY2FycmllcyBoYXNoIHBpbnMgYW5kIGlzIHNhZmUgdG8gcHJlZmxpZ2h0LgoKICAgIERpc2NvdmVyeSBpcyBjb250ZW50LWJhc2VkIHJhdGhlciB0aGFuIG5hbWUtYmFzZWQgc28gaGFzaC1waW5uZWQgbG9ja3MgaW4gYW55CiAgICBsb2NhdGlvbiAoYSBzZXJ2aWNlIHN1YmRpcmVjdG9yeSwgYGByZXF1aXJlbWVudHMtZGV2LnR4dGBgLAogICAgYGByZXF1aXJlbWVudHMtdGVzdC50eHRgYCkgY2FuIGJlIGNvbnNpZGVyZWQgZm9yIG9mZmxpbmUgY292ZXJhZ2UsIHdoaWxlIGFuCiAgICB1bnBpbm5lZCBvciBQUi1tdXRhYmxlIHJlcXVpcmVtZW50cyBmaWxlIGlzIHN0aWxsIGV4Y2x1ZGVkIGZyb20gdGhlIG5ldHdvcmtlZAogICAgYnVpbGQgY29udGV4dC4gSGFzaCBzeW50YXggY2Fubm90IHByb3ZlIHRoYXQgYSBmaWxlIGluY2x1ZGVzIGV2ZXJ5IHRyYW5zaXRpdmUKICAgIGRlcGVuZGVuY3ksIHNvIHRoZSB0cnVzdGVkIGltYWdlIGluc3RhbGxlciBzZXBhcmF0ZWx5IHByZWZsaWdodHMgZXZlcnkKICAgIGNhbmRpZGF0ZSBhcyBhbiBpbmRlcGVuZGVudCBgYC0tcmVxdWlyZS1oYXNoZXNgYCBjbG9zdXJlLiBBbiBlbXB0eSBmaWxlCiAgICBjYXJyaWVzIG5vIGluc3RhbGxhYmxlIGRlcGVuZGVuY3kgYW5kIGlzIG5vdCBtYXRlcmlhbGl6ZWQuCiAgICAiIiIKICAgIGxpbmVzID0gX3JlcXVpcmVtZW50X2xpbmVzKGNvbnRlbnQpCiAgICBpZiBub3QgbGluZXM6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICByZXR1cm4gYW55KGxpbmUgPT0gIi0tcmVxdWlyZS1oYXNoZXMiIGZvciBsaW5lIGluIGxpbmVzKSBvciBhbGwoCiAgICAgICAgIi0taGFzaD0iIGluIGxpbmUgb3IgbGluZS5zdGFydHN3aXRoKCgiLXIgIiwgIi0tcmVxdWlyZW1lbnQgIikpCiAgICAgICAgZm9yIGxpbmUgaW4gbGluZXMKICAgICkKCgpkZWYgX2dpdChyZXBvX3Jvb3Q6IHBhdGhsaWIuUGF0aCwgKmFyZ3M6IHN0cikgLT4gYnl0ZXM6CiAgICAiIiJSdW4gb25lIHJlYWQtb25seSBnaXQgY29tbWFuZCBpbiB0aGUgbWF0ZXJpYWxpemVkIHJlcG9zaXRvcnkuIiIiCiAgICBjb21wbGV0ZWQgPSBzdWJwcm9jZXNzLnJ1bigKICAgICAgICBbImdpdCIsICItQyIsIHN0cihyZXBvX3Jvb3QpLCAqYXJnc10sCiAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAogICAgKQogICAgaWYgY29tcGxldGVkLnJldHVybmNvZGUgIT0gMDoKICAgICAgICBzdGRlcnIgPSBjb21wbGV0ZWQuc3RkZXJyLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKS5zdHJpcCgpCiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYiZ2l0IHthcmdzWzBdfSBmYWlsZWQ6IHtzdGRlcnJ9IikKICAgIHJldHVybiBjb21wbGV0ZWQuc3Rkb3V0CgoKZGVmIF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmUoKSAtPiBieXRlczoKICAgICIiIkRvd25sb2FkIHRoZSBmaXhlZCB1diByZWxlYXNlIGFyY2hpdmUgdGhyb3VnaCBv \ No newline at end of file From 20e328546be748a5a211022a29556f6a719083a1 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:31:13 +0900 Subject: [PATCH 02/20] bootstrap(coverage): stage trusted uv materializer script chunk 01 --- .tmp/uv-materializer/script.01.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/script.01.b64 diff --git a/.tmp/uv-materializer/script.01.b64 b/.tmp/uv-materializer/script.01.b64 new file mode 100644 index 000000000..394635ab3 --- /dev/null +++ b/.tmp/uv-materializer/script.01.b64 @@ -0,0 +1 @@ +bmUgSFRUUFMgdHJ1c3QgYm91bmRhcnkuIiIiCiAgICByZXF1ZXN0ID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdCgKICAgICAgICBUUlVTVEVEX1VWX0FSQ0hJVkVfVVJMLAogICAgICAgIGhlYWRlcnM9eyJVc2VyLUFnZW50IjogIkNvbnRleHR1YWxXaXNkb21MYWItY292ZXJhZ2UvMSJ9LAogICAgICAgIG1ldGhvZD0iR0VUIiwKICAgICkKICAgIHRyeToKICAgICAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oICAjIG5vc2VjIEIzMTAgLS0gZml4ZWQgVVJMIHBsdXMgU0hBLTI1NiBwaW4KICAgICAgICAgICAgcmVxdWVzdCwgdGltZW91dD1UUlVTVEVEX1VWX0RPV05MT0FEX1RJTUVPVVRfU0VDT05EUwogICAgICAgICkgYXMgcmVzcG9uc2U6CiAgICAgICAgICAgIGZpbmFsX3VybCA9IHVybGxpYi5wYXJzZS51cmxwYXJzZShyZXNwb25zZS5nZXR1cmwoKSkKICAgICAgICAgICAgaWYgKGZpbmFsX3VybC5zY2hlbWUsIGZpbmFsX3VybC5ob3N0bmFtZSkgIT0gKAogICAgICAgICAgICAgICAgImh0dHBzIiwKICAgICAgICAgICAgICAgICJyZWxlYXNlcy5hc3RyYWwuc2giLAogICAgICAgICAgICApOgogICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAogICAgICAgICAgICAgICAgICAgICJ0cnVzdGVkIHV2IGFyY2hpdmUgcmVkaXJlY3RlZCBvdXRzaWRlIHJlbGVhc2VzLmFzdHJhbC5zaCIKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgcGF5bG9hZCA9IHJlc3BvbnNlLnJlYWQoVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVMgKyAxKQogICAgZXhjZXB0IE9TRXJyb3IgYXMgZXhjOgogICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKICAgICAgICAgICAgZiJ0cnVzdGVkIHV2IGFyY2hpdmUgZG93bmxvYWQgZmFpbGVkOiB7dHlwZShleGMpLl9fbmFtZV9ffSIKICAgICAgICApIGZyb20gZXhjCgogICAgaWYgbGVuKHBheWxvYWQpID4gVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVM6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgZXhjZWVkZWQgdGhlIGJvdW5kZWQgZG93bmxvYWQgc2l6ZSIpCiAgICByZXR1cm4gcGF5bG9hZAoKCmRlZiBfdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmVfcGF5bG9hZDogYnl0ZXMpIC0+IGJ5dGVzOgogICAgIiIiUmV0dXJuIHRoZSBib3VuZGVkIHV2IGV4ZWN1dGFibGUgYWZ0ZXIgYXJjaGl2ZSBhbmQgbWVtYmVyIHZlcmlmaWNhdGlvbi4iIiIKICAgIGRpZ2VzdCA9IGhhc2hsaWIuc2hhMjU2KGFyY2hpdmVfcGF5bG9hZCkuaGV4ZGlnZXN0KCkKICAgIGlmIGRpZ2VzdCAhPSBUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2OgogICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidHJ1c3RlZCB1diBhcmNoaXZlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBmYWlsZWQiKQoKICAgIHRyeToKICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihmaWxlb2JqPWlvLkJ5dGVzSU8oYXJjaGl2ZV9wYXlsb2FkKSwgbW9kZT0icjpneiIpIGFzIGJ1bmRsZToKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgbWVtYmVyID0gYnVuZGxlLmdldG1lbWJlcihUUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSKQogICAgICAgICAgICBleGNlcHQgS2V5RXJyb3IgYXMgZXhjOgogICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgb21pdHRlZCB0aGUgdXYgZXhlY3V0YWJsZSIpIGZyb20gZXhjCiAgICAgICAgICAgIGlmIG5vdCBtZW1iZXIuaXNmaWxlKCk6CiAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgYXJjaGl2ZSBtZW1iZXIgaXMgbm90IGEgcmVndWxhciBmaWxlIikKICAgICAgICAgICAgaWYgbWVtYmVyLnNpemUgPiBUUlVTVEVEX1VWX0JJTkFSWV9NQVhfQllURVM6CiAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgZXhlY3V0YWJsZSBleGNlZWRlZCB0aGUgYm91bmRlZCBzaXplIikKICAgICAgICAgICAgZXh0cmFjdGVkID0gYnVuZGxlLmV4dHJhY3RmaWxlKG1lbWJlcikKICAgICAgICAgICAgaWYgZXh0cmFjdGVkIGlzIE5vbmU6ICAjIHByYWdtYTogbm8gY292ZXIgLSBndWFyZGVkIGJ5IG1lbWJlci5pc2ZpbGUoKQogICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoInJlZ3VsYXIgdGFyIG1lbWJlcnMgbXVzdCBiZSBleHRyYWN0YWJsZSIpCiAgICAgICAgICAgIGJpbmFyeSA9IGV4dHJhY3RlZC5yZWFkKFRSVVNURURfVVZfQklOQVJZX01BWF9CWVRFUyArIDEpCiAgICBleGNlcHQgdGFyZmlsZS5UYXJFcnJvciBhcyBleGM6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgY291bGQgbm90IGJlIHBhcnNlZCIpIGZyb20gZXhjCgogICAgaWYgbGVuKGJpbmFyeSkgIT0gbWVtYmVyLnNpemU6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGV4ZWN1dGFibGUgc2l6ZSBkaWQgbm90IG1hdGNoIGl0cyBhcmNoaXZlIG1ldGFkYXRhIikKICAgIHJldHVybiBiaW5hcnkKCgpAZnVuY3Rvb2xzLmNhY2hlCmRlZiBfaW5zdGFsbF90cnVzdGVkX3V2KCkgLT4gc3RyOgogICAgIiIiSW5zdGFsbCBhbmQgdmVyaWZ5IHRoZSBwaW5uZWQgdXYgZXhwb3J0ZXIgb25jZSBmb3IgdGhpcyBwcm9jZXNzLiIiIgogICAgdG9vbF9kaXIgPSBwYXRobGliLlBhdGgodGVtcGZpbGUubWtkdGVtcChwcmVmaXg9Im9wZW5jb2RlLXRydXN0ZWQtdXYtIikpCiAgICB0b29sX2Rpci5ta2Rpcihtb2RlPTBvNzAwLCBwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCiAgICB1dl9wYXRoID0gdG9vbF9kaXIgLyAidXYiCiAgICB0cnk6CiAgICAgICAgdXZfcGF0aC53cml0ZV9ieXRlcyhfdmVyaWZpZWRfdXZfYmluYXJ5KF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmUoKSkpCiAgICAgICAgdXZfcGF0aC5jaG1vZCgwbzc1NSkKICAgICAgICB0cnk6CiAgICAgICAgICAgIGNvbXBsZXRlZCA9IHN1YnByb2Nlc3MucnVuKAogICAgICAgICAgICAgICAgW3N0cih1dl9wYXRoKSwgIi0tdmVyc2lvbiJdLAogICAgICAgICAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKICAgICAgICAgICAgICAgIHRpbWVvdXQ9VFJVU1RFRF9VVl9WRVJTSU9OX1RJTUVPVVRfU0VDT05EUywKICAgICAgICAgICAgKQogICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCkgYXMgZXhjOgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgICAgICBmInRydXN0ZWQgdXYgZXhlY3V0YWJsZSB2ZXJpZmljYXRpb24gZmFpbGVkOiB7dHlwZShleGMpLl9fbmFtZV9ffSIKICAgICAgICAgICAgKSBmcm9tIGV4YwogICAgICAgIG9ic2VydmVkID0gY29tcGxldGVkLnN0ZG91dC5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikuc3RyaXAoKQogICAgICAgIGlmIGNvbXBsZXRlZC5yZXR1cm5jb2RlICE9IDAgb3Igb2JzZXJ2ZWQgIT0gZiJ1diB7VFJVU1RFRF9VVl9WRVJTSU9OfSI6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJv \ No newline at end of file From b64197b92aa8e9923ff6465a278424fb19e83884 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:32:11 +0900 Subject: [PATCH 03/20] bootstrap(coverage): stage trusted uv materializer script chunk 02 --- .tmp/uv-materializer/script.02.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/script.02.b64 diff --git a/.tmp/uv-materializer/script.02.b64 b/.tmp/uv-materializer/script.02.b64 new file mode 100644 index 000000000..62bf6b90f --- /dev/null +++ b/.tmp/uv-materializer/script.02.b64 @@ -0,0 +1 @@ +cigKICAgICAgICAgICAgICAgICJ0cnVzdGVkIHV2IGV4ZWN1dGFibGUgcmVwb3J0ZWQgYW4gdW5leHBlY3RlZCB2ZXJzaW9uIG9yIGV4aXQgc3RhdHVzIgogICAgICAgICAgICApCiAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgIHNodXRpbC5ybXRyZWUodG9vbF9kaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKICAgICAgICByYWlzZQoKICAgIGF0ZXhpdC5yZWdpc3RlcihzaHV0aWwucm10cmVlLCB0b29sX2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQogICAgcmV0dXJuIHN0cih1dl9wYXRoKQoKCmRlZiBfcnVuX3V2X2V4cG9ydCgKICAgIHdvcmtfZGlyOiBwYXRobGliLlBhdGgsCiAgICB1dl9wYXRoOiBzdHIsCiAgICAqLAogICAgdGltZW91dDogZmxvYXQgPSBVVl9FWFBPUlRfVElNRU9VVF9TRUNPTkRTLAopIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAiIiJSdW4gYGB1diBleHBvcnRgYCBmb3IgYSByZWNvbnN0cnVjdGVkIGJhc2UgcHJvamVjdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCgogICAgYGAtLWZyb3plbmBgIGZvcmJpZHMgbG9jayBtdXRhdGlvbiBhbmQgYGAtLW9mZmxpbmVgYCBmb3JiaWRzIG5ldHdvcmsgYWNjZXNzLAogICAgc28gdGhlIGV4cG9ydCBpcyBhIHB1cmUgZnVuY3Rpb24gb2YgdGhlIGFscmVhZHktdHJ1c3RlZCBiYXNlIGBgdXYubG9ja2BgIGFuZAogICAgYGBweXByb2plY3QudG9tbGBgOyBgYC0tbm8tZW1pdC1wcm9qZWN0YGAvYGAtLW5vLWVkaXRhYmxlYGAgZHJvcCB0aGUgcHJvamVjdAogICAgaXRzZWxmIChpbnN0YWxsZWQgdmlhIGBgUFlUSE9OUEFUSGBgIGluIHRoZSBzYW5kYm94KSBhbmQga2VlcCBvbmx5IGl0cwogICAgaGFzaC1waW5uZWQgZGVwZW5kZW5jeSBjbG9zdXJlLgogICAgIiIiCiAgICByZXR1cm4gc3VicHJvY2Vzcy5ydW4oCiAgICAgICAgWwogICAgICAgICAgICB1dl9wYXRoLAogICAgICAgICAgICAiZXhwb3J0IiwKICAgICAgICAgICAgIi0tZnJvemVuIiwKICAgICAgICAgICAgIi0tb2ZmbGluZSIsCiAgICAgICAgICAgICItLW5vLWVtaXQtcHJvamVjdCIsCiAgICAgICAgICAgICItLW5vLWVkaXRhYmxlIiwKICAgICAgICAgICAgIi0tZm9ybWF0IiwKICAgICAgICAgICAgInJlcXVpcmVtZW50cy10eHQiLAogICAgICAgIF0sCiAgICAgICAgY3dkPXN0cih3b3JrX2RpciksCiAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgIHRpbWVvdXQ9dGltZW91dCwKICAgICkKCgpkZWYgX2V4cG9ydF91dl9sb2NrKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIsIGxvY2tfcGF0aDogc3RyCikgLT4gYnl0ZXMgfCBOb25lOgogICAgIiIiRXhwb3J0IG9uZSB0cmFja2VkIGJhc2UgYGB1di5sb2NrYGAgaW50byBhIHRydXN0ZWQgaGFzaC1waW5uZWQgY2xvc3VyZS4KCiAgICBUaGUgc2libGluZyBgYHB5cHJvamVjdC50b21sYGAgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBsb2NrIGJlbG9uZ3MgdG8gYW4KICAgIGV4cG9ydGFibGUgcHJvamVjdC4gT3JwaGFuIGxvY2tzIGFyZSBpZ25vcmVkLCBhbmQgYSBzdWNjZXNzZnVsIGNvbW1lbnQtb25seQogICAgZXhwb3J0IHJlcHJlc2VudHMgYSB2YWxpZCBwcm9qZWN0IHdpdGggbm8gdGhpcmQtcGFydHkgZGVwZW5kZW5jeSBjbG9zdXJlLgogICAgRXZlcnkgb3RoZXIgZXhwb3J0ZXIgZmFpbHVyZSBpcyBmYXRhbDogc2lsZW50bHkgZHJvcHBpbmcgYSB0cmFja2VkIHByb2plY3QKICAgIGxvY2sgd291bGQgZXhlY3V0ZSBjb3ZlcmFnZSB3aXRob3V0IHRoZSBiYXNlIGRlcGVuZGVuY2llcyBhbmQgY291bGQgdHVybgogICAgaW1wb3J0IGZhaWx1cmVzIGludG8gbWlzbGVhZGluZyByZXZpZXcgZmVlZGJhY2suCiAgICAiIiIKICAgIHByb2plY3RfZGlyID0gcGF0aGxpYi5QdXJlUG9zaXhQYXRoKGxvY2tfcGF0aCkucGFyZW50CiAgICBweXByb2plY3RfcGF0aCA9ICgKICAgICAgICAicHlwcm9qZWN0LnRvbWwiCiAgICAgICAgaWYgc3RyKHByb2plY3RfZGlyKSA9PSAiLiIKICAgICAgICBlbHNlIGYie3Byb2plY3RfZGlyfS9weXByb2plY3QudG9tbCIKICAgICkKICAgIGxvY2tfY29udGVudCA9IF9naXQocmVwb19yb290LCAic2hvdyIsIGYie2Jhc2Vfc2hhfTp7bG9ja19wYXRofSIpCiAgICB0cnk6CiAgICAgICAgcHlwcm9qZWN0X2NvbnRlbnQgPSBfZ2l0KHJlcG9fcm9vdCwgInNob3ciLCBmIntiYXNlX3NoYX06e3B5cHJvamVjdF9wYXRofSIpCiAgICBleGNlcHQgUnVudGltZUVycm9yOgogICAgICAgIHJldHVybiBOb25lCgogICAgdXZfcGF0aCA9IF9pbnN0YWxsX3RydXN0ZWRfdXYoKQoKICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgd29ya19kaXI6CiAgICAgICAgd29ya19wYXRoID0gcGF0aGxpYi5QYXRoKHdvcmtfZGlyKQogICAgICAgICh3b3JrX3BhdGggLyAidXYubG9jayIpLndyaXRlX2J5dGVzKGxvY2tfY29udGVudCkKICAgICAgICAod29ya19wYXRoIC8gInB5cHJvamVjdC50b21sIikud3JpdGVfYnl0ZXMocHlwcm9qZWN0X2NvbnRlbnQpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBjb21wbGV0ZWQgPSBfcnVuX3V2X2V4cG9ydCh3b3JrX3BhdGgsIHV2X3BhdGgpCiAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkKSBhcyBleGM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKICAgICAgICAgICAgICAgIGYiY291bGQgbm90IHJ1biB0cnVzdGVkIHV2IGV4cG9ydCBmb3IgdHJhY2tlZCBiYXNlIGxvY2sge2xvY2tfcGF0aH06ICIKICAgICAgICAgICAgICAgIGYie3R5cGUoZXhjKS5fX25hbWVfX30iCiAgICAgICAgICAgICkgZnJvbSBleGMKCiAgICBpZiBjb21wbGV0ZWQucmV0dXJuY29kZSAhPSAwOgogICAgICAgIHN0ZGVyciA9IGNvbXBsZXRlZC5zdGRlcnIuZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIpCiAgICAgICAgbm9ybWFsaXplZF9zdGRlcnIgPSAiICIuam9pbihzdGRlcnIuc3BsaXQoKSkKICAgICAgICBkZXRhaWwgPSAoCiAgICAgICAgICAgIG5vcm1hbGl6ZWRfc3RkZXJyWzo1MDBdCiAgICAgICAgICAgIGlmIG5vcm1hbGl6ZWRfc3RkZXJyCiAgICAgICAgICAgIGVsc2UgZiJleGl0IHN0YXR1cyB7Y29tcGxldGVkLnJldHVybmNvZGV9IgogICAgICAgICkKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgIGYidXYgZXhwb3J0IGZhaWxlZCBmb3IgdHJhY2tlZCBiYXNlIGxvY2sge2xvY2tfcGF0aH06IHtkZXRhaWx9IgogICAgICAgICkKCiAgICBleHBvcnRlZCA9IGNvbXBsZXRlZC5zdGRvdXQKICAgIGlmIG5vdCBfcmVxdWlyZW1lbnRfbGluZXMoZXhwb3J0ZWQpOgogICAgICAgIHJldHVybiBOb25lCiAgICBpZiBub3QgX2lzX2hhc2hfcGlubmVkKGV4cG9ydGVkKToKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgIGYidXYgZXhwb3J0IGZvciB0cmFja2VkIGJhc2UgbG9jayB7bG9ja19wYXRofSB3YXMgbm90IGZ1bGx5IGhhc2gtcGlubmVkIgogICAgICAgICkKICAgIHJldHVybiBleHBvcnRlZAoKCmRl \ No newline at end of file From c7d334c4f7fb945a5e3f018503c65d1603aed97f Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:33:14 +0900 Subject: [PATCH 04/20] bootstrap(coverage): stage trusted uv materializer script chunk 03 --- .tmp/uv-materializer/script.03.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/script.03.b64 diff --git a/.tmp/uv-materializer/script.03.b64 b/.tmp/uv-materializer/script.03.b64 new file mode 100644 index 000000000..bdaffe41a --- /dev/null +++ b/.tmp/uv-materializer/script.03.b64 @@ -0,0 +1 @@ +ZiBiYXNlX2hhc2hfbG9ja3MocmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIpIC0+IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dOgogICAgIiIiUmV0dXJuIHJlZ3VsYXIgaGFzaC1sb2NrIGJsb2JzIGZyb20gdGhlIGV4YWN0IHZhbGlkYXRlZCBiYXNlIGNvbW1pdC4iIiIKICAgIGlmIG5vdCBTSEFfUkUuZnVsbG1hdGNoKGJhc2Vfc2hhKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNlIFNIQSBtdXN0IGJlIGV4YWN0bHkgNDAgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyIpCgogICAgbG9ja3M6IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dID0gW10KICAgIGVudHJpZXMgPSBfZ2l0KHJlcG9fcm9vdCwgImxzLXRyZWUiLCAiLXIiLCAiLXoiLCAiLS1mdWxsLXRyZWUiLCBiYXNlX3NoYSkKICAgIGZvciByYXdfZW50cnkgaW4gZW50cmllcy5zcGxpdChiIlwwIik6CiAgICAgICAgaWYgbm90IHJhd19lbnRyeToKICAgICAgICAgICAgY29udGludWUKICAgICAgICBtZXRhZGF0YSwgc2VwYXJhdG9yLCByYXdfcGF0aCA9IHJhd19lbnRyeS5wYXJ0aXRpb24oYiJcdCIpCiAgICAgICAgaWYgbm90IHNlcGFyYXRvcjoKICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJnaXQgbHMtdHJlZSByZXR1cm5lZCBhIG1hbGZvcm1lZCBlbnRyeSIpCiAgICAgICAgZmllbGRzID0gbWV0YWRhdGEuc3BsaXQoKQogICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwiZ2l0IGxzLXRyZWUgcmV0dXJuZWQgbWFsZm9ybWVkIG1ldGFkYXRhIikKICAgICAgICBtb2RlLCBvYmplY3RfdHlwZSwgX29iamVjdF9pZCA9ICgKICAgICAgICAgICAgZmllbGQuZGVjb2RlKCJhc2NpaSIsIGVycm9ycz0ic3RyaWN0IikgZm9yIGZpZWxkIGluIGZpZWxkcwogICAgICAgICkKICAgICAgICBwYXRoID0gcmF3X3BhdGguZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0ic3Vycm9nYXRlZXNjYXBlIikKICAgICAgICBjYW5kaWRhdGUgPSBwYXRobGliLlB1cmVQb3NpeFBhdGgocGF0aCkKICAgICAgICBpZiAoCiAgICAgICAgICAgIG9iamVjdF90eXBlICE9ICJibG9iIgogICAgICAgICAgICBvciBub3QgbW9kZS5zdGFydHN3aXRoKCIxMDAiKQogICAgICAgICAgICBvciBjYW5kaWRhdGUuaXNfYWJzb2x1dGUoKQogICAgICAgICAgICBvciAiLi4iIGluIGNhbmRpZGF0ZS5wYXJ0cwogICAgICAgICk6CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgaWYgX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoY2FuZGlkYXRlLm5hbWUpOgogICAgICAgICAgICBjb250ZW50ID0gX2dpdChyZXBvX3Jvb3QsICJzaG93IiwgZiJ7YmFzZV9zaGF9OntwYXRofSIpCiAgICAgICAgICAgIGlmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50KToKICAgICAgICAgICAgICAgIGxvY2tzLmFwcGVuZCgocGF0aCwgY29udGVudCkpCiAgICAgICAgZWxpZiBjYW5kaWRhdGUubmFtZSA9PSAidXYubG9jayI6CiAgICAgICAgICAgIGV4cG9ydGVkID0gX2V4cG9ydF91dl9sb2NrKHJlcG9fcm9vdCwgYmFzZV9zaGEsIHBhdGgpCiAgICAgICAgICAgIGlmIGV4cG9ydGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgbG9ja3MuYXBwZW5kKChwYXRoLCBleHBvcnRlZCkpCiAgICByZXR1cm4gc29ydGVkKGxvY2tzLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMF0pCgoKZGVmIG1hdGVyaWFsaXplKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsCiAgICBiYXNlX3NoYTogc3RyLAogICAgb3V0cHV0X2RpcjogcGF0aGxpYi5QYXRoLAopIC0+IGxpc3RbZGljdFtzdHIsIHN0cl1dOgogICAgIiIiV3JpdGUgYmFzZSBsb2NrIGJsb2JzIHVuZGVyIGdlbmVyYXRlZCBuYW1lcyBzYWZlIGZvciBhIERvY2tlciBidWlsZCBjb250ZXh0LiIiIgogICAgaWYgb3V0cHV0X2Rpci5leGlzdHMoKSBhbmQgb3V0cHV0X2Rpci5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3V0cHV0IGRpcmVjdG9yeSBtdXN0IG5vdCBiZSBhIHN5bWxpbmsiKQogICAgb3V0cHV0X2Rpci5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCgogICAgbWFuaWZlc3Q6IGxpc3RbZGljdFtzdHIsIHN0cl1dID0gW10KICAgIGZvciBpbmRleCwgKHNvdXJjZV9wYXRoLCBjb250ZW50KSBpbiBlbnVtZXJhdGUoCiAgICAgICAgYmFzZV9oYXNoX2xvY2tzKHJlcG9fcm9vdC5yZXNvbHZlKCksIGJhc2Vfc2hhKQogICAgKToKICAgICAgICBnZW5lcmF0ZWRfbmFtZSA9IGYicmVxdWlyZW1lbnRzLXtpbmRleDowM2R9LnR4dCIKICAgICAgICBkZXN0aW5hdGlvbiA9IG91dHB1dF9kaXIgLyBnZW5lcmF0ZWRfbmFtZQogICAgICAgIGRlc3RpbmF0aW9uLndyaXRlX2J5dGVzKGNvbnRlbnQpCiAgICAgICAgbWFuaWZlc3QuYXBwZW5kKHsiZmlsZSI6IGdlbmVyYXRlZF9uYW1lLCAic291cmNlIjogc291cmNlX3BhdGh9KQoKICAgIChvdXRwdXRfZGlyIC8gIm1hbmlmZXN0Lmpzb24iKS53cml0ZV90ZXh0KAogICAgICAgIGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAob3V0cHV0X2RpciAvICJtYW5pZmVzdC50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICIiLmpvaW4oZiJ7ZW50cnlbJ2ZpbGUnXX1cbiIgZm9yIGVudHJ5IGluIG1hbmlmZXN0KSwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgcmV0dXJuIG1hbmlmZXN0CgoKZGVmIG1haW4oYXJndjogbGlzdFtzdHJdIHwgTm9uZSA9IE5vbmUpIC0+IGludDoKICAgICIiIk1hdGVyaWFsaXplIGJhc2UgbG9ja3MgYW5kIHJlcG9ydCBleGFjdGx5IHdoaWNoIHRydXN0ZWQgcGF0aHMgd2VyZSBzZWxlY3RlZC4iIiIKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVwby1yb290IiwgcmVxdWlyZWQ9VHJ1ZSwgdHlwZT1wYXRobGliLlBhdGgpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJhc2Utc2hhIiwgcmVxdWlyZWQ9VHJ1ZSkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0cHV0LWRpciIsIHJlcXVpcmVkPVRydWUsIHR5cGU9cGF0aGxpYi5QYXRoKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3YpCgogICAgdHJ5OgogICAgICAgIG1hbmlmZXN0ID0gbWF0ZXJpYWxpemUoYXJncy5yZXBvX3Jvb3QsIGFyZ3MuYmFzZV9zaGEsIGFyZ3Mub3V0cHV0X2RpcikKICAgIGV4Y2VwdCAoT1NFcnJvciwgUnVudGltZUVycm9yLCBWYWx1ZUVycm9yKSBhcyBleGM6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgIGYiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiB7ZXhjfSIsIGZpbGU9c3lzLnN0ZGVycgogICAgICAgICkKICAgICAgICByZXR1cm4gMQoKICAgIGlmIG1hbmlmZXN0OgogICAgICAgIGZvciBlbnRyeSBpbiBtYW5pZmVzdDoKICAgICAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayAiCiAgICAgICAgICAgICAgICBmIntlbnRyeVsnc291cmNlJ119IGFzIHtlbnRyeVsn \ No newline at end of file From c4f67107f4c5cbe42c85425f071156796d8ec014 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:33:49 +0900 Subject: [PATCH 05/20] bootstrap(coverage): stage trusted uv materializer script chunk 04 --- .tmp/uv-materializer/script.04.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/script.04.b64 diff --git a/.tmp/uv-materializer/script.04.b64 b/.tmp/uv-materializer/script.04.b64 new file mode 100644 index 000000000..30bfb6a8f --- /dev/null +++ b/.tmp/uv-materializer/script.04.b64 @@ -0,0 +1 @@ +ZmlsZSddfS4iCiAgICAgICAgICAgICkKICAgIGVsc2U6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICJObyB0cmFja2VkIGhhc2gtYmVhcmluZyBQeXRob24gcmVxdWlyZW1lbnQgY2FuZGlkYXRlcyBleGlzdCBhdCB0aGUgdmFsaWRhdGVkIGJhc2UgU0hBLiIKICAgICAgICApCiAgICByZXR1cm4gMAoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICByYWlzZSBTeXN0ZW1FeGl0KG1haW4oKSkK \ No newline at end of file From 1be4665bad9db8859942689745fc4be8e9a04f55 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:35:01 +0900 Subject: [PATCH 06/20] bootstrap(coverage): correct trusted uv materializer script chunk 03 --- .tmp/uv-materializer/script.03.b64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tmp/uv-materializer/script.03.b64 b/.tmp/uv-materializer/script.03.b64 index bdaffe41a..01b5da537 100644 --- a/.tmp/uv-materializer/script.03.b64 +++ b/.tmp/uv-materializer/script.03.b64 @@ -1 +1 @@ -ZiBiYXNlX2hhc2hfbG9ja3MocmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIpIC0+IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dOgogICAgIiIiUmV0dXJuIHJlZ3VsYXIgaGFzaC1sb2NrIGJsb2JzIGZyb20gdGhlIGV4YWN0IHZhbGlkYXRlZCBiYXNlIGNvbW1pdC4iIiIKICAgIGlmIG5vdCBTSEFfUkUuZnVsbG1hdGNoKGJhc2Vfc2hhKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNlIFNIQSBtdXN0IGJlIGV4YWN0bHkgNDAgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyIpCgogICAgbG9ja3M6IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dID0gW10KICAgIGVudHJpZXMgPSBfZ2l0KHJlcG9fcm9vdCwgImxzLXRyZWUiLCAiLXIiLCAiLXoiLCAiLS1mdWxsLXRyZWUiLCBiYXNlX3NoYSkKICAgIGZvciByYXdfZW50cnkgaW4gZW50cmllcy5zcGxpdChiIlwwIik6CiAgICAgICAgaWYgbm90IHJhd19lbnRyeToKICAgICAgICAgICAgY29udGludWUKICAgICAgICBtZXRhZGF0YSwgc2VwYXJhdG9yLCByYXdfcGF0aCA9IHJhd19lbnRyeS5wYXJ0aXRpb24oYiJcdCIpCiAgICAgICAgaWYgbm90IHNlcGFyYXRvcjoKICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJnaXQgbHMtdHJlZSByZXR1cm5lZCBhIG1hbGZvcm1lZCBlbnRyeSIpCiAgICAgICAgZmllbGRzID0gbWV0YWRhdGEuc3BsaXQoKQogICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwiZ2l0IGxzLXRyZWUgcmV0dXJuZWQgbWFsZm9ybWVkIG1ldGFkYXRhIikKICAgICAgICBtb2RlLCBvYmplY3RfdHlwZSwgX29iamVjdF9pZCA9ICgKICAgICAgICAgICAgZmllbGQuZGVjb2RlKCJhc2NpaSIsIGVycm9ycz0ic3RyaWN0IikgZm9yIGZpZWxkIGluIGZpZWxkcwogICAgICAgICkKICAgICAgICBwYXRoID0gcmF3X3BhdGguZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0ic3Vycm9nYXRlZXNjYXBlIikKICAgICAgICBjYW5kaWRhdGUgPSBwYXRobGliLlB1cmVQb3NpeFBhdGgocGF0aCkKICAgICAgICBpZiAoCiAgICAgICAgICAgIG9iamVjdF90eXBlICE9ICJibG9iIgogICAgICAgICAgICBvciBub3QgbW9kZS5zdGFydHN3aXRoKCIxMDAiKQogICAgICAgICAgICBvciBjYW5kaWRhdGUuaXNfYWJzb2x1dGUoKQogICAgICAgICAgICBvciAiLi4iIGluIGNhbmRpZGF0ZS5wYXJ0cwogICAgICAgICk6CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgaWYgX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoY2FuZGlkYXRlLm5hbWUpOgogICAgICAgICAgICBjb250ZW50ID0gX2dpdChyZXBvX3Jvb3QsICJzaG93IiwgZiJ7YmFzZV9zaGF9OntwYXRofSIpCiAgICAgICAgICAgIGlmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50KToKICAgICAgICAgICAgICAgIGxvY2tzLmFwcGVuZCgocGF0aCwgY29udGVudCkpCiAgICAgICAgZWxpZiBjYW5kaWRhdGUubmFtZSA9PSAidXYubG9jayI6CiAgICAgICAgICAgIGV4cG9ydGVkID0gX2V4cG9ydF91dl9sb2NrKHJlcG9fcm9vdCwgYmFzZV9zaGEsIHBhdGgpCiAgICAgICAgICAgIGlmIGV4cG9ydGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgbG9ja3MuYXBwZW5kKChwYXRoLCBleHBvcnRlZCkpCiAgICByZXR1cm4gc29ydGVkKGxvY2tzLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMF0pCgoKZGVmIG1hdGVyaWFsaXplKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsCiAgICBiYXNlX3NoYTogc3RyLAogICAgb3V0cHV0X2RpcjogcGF0aGxpYi5QYXRoLAopIC0+IGxpc3RbZGljdFtzdHIsIHN0cl1dOgogICAgIiIiV3JpdGUgYmFzZSBsb2NrIGJsb2JzIHVuZGVyIGdlbmVyYXRlZCBuYW1lcyBzYWZlIGZvciBhIERvY2tlciBidWlsZCBjb250ZXh0LiIiIgogICAgaWYgb3V0cHV0X2Rpci5leGlzdHMoKSBhbmQgb3V0cHV0X2Rpci5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3V0cHV0IGRpcmVjdG9yeSBtdXN0IG5vdCBiZSBhIHN5bWxpbmsiKQogICAgb3V0cHV0X2Rpci5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCgogICAgbWFuaWZlc3Q6IGxpc3RbZGljdFtzdHIsIHN0cl1dID0gW10KICAgIGZvciBpbmRleCwgKHNvdXJjZV9wYXRoLCBjb250ZW50KSBpbiBlbnVtZXJhdGUoCiAgICAgICAgYmFzZV9oYXNoX2xvY2tzKHJlcG9fcm9vdC5yZXNvbHZlKCksIGJhc2Vfc2hhKQogICAgKToKICAgICAgICBnZW5lcmF0ZWRfbmFtZSA9IGYicmVxdWlyZW1lbnRzLXtpbmRleDowM2R9LnR4dCIKICAgICAgICBkZXN0aW5hdGlvbiA9IG91dHB1dF9kaXIgLyBnZW5lcmF0ZWRfbmFtZQogICAgICAgIGRlc3RpbmF0aW9uLndyaXRlX2J5dGVzKGNvbnRlbnQpCiAgICAgICAgbWFuaWZlc3QuYXBwZW5kKHsiZmlsZSI6IGdlbmVyYXRlZF9uYW1lLCAic291cmNlIjogc291cmNlX3BhdGh9KQoKICAgIChvdXRwdXRfZGlyIC8gIm1hbmlmZXN0Lmpzb24iKS53cml0ZV90ZXh0KAogICAgICAgIGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAob3V0cHV0X2RpciAvICJtYW5pZmVzdC50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICIiLmpvaW4oZiJ7ZW50cnlbJ2ZpbGUnXX1cbiIgZm9yIGVudHJ5IGluIG1hbmlmZXN0KSwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgcmV0dXJuIG1hbmlmZXN0CgoKZGVmIG1haW4oYXJndjogbGlzdFtzdHJdIHwgTm9uZSA9IE5vbmUpIC0+IGludDoKICAgICIiIk1hdGVyaWFsaXplIGJhc2UgbG9ja3MgYW5kIHJlcG9ydCBleGFjdGx5IHdoaWNoIHRydXN0ZWQgcGF0aHMgd2VyZSBzZWxlY3RlZC4iIiIKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVwby1yb290IiwgcmVxdWlyZWQ9VHJ1ZSwgdHlwZT1wYXRobGliLlBhdGgpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJhc2Utc2hhIiwgcmVxdWlyZWQ9VHJ1ZSkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0cHV0LWRpciIsIHJlcXVpcmVkPVRydWUsIHR5cGU9cGF0aGxpYi5QYXRoKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3YpCgogICAgdHJ5OgogICAgICAgIG1hbmlmZXN0ID0gbWF0ZXJpYWxpemUoYXJncy5yZXBvX3Jvb3QsIGFyZ3MuYmFzZV9zaGEsIGFyZ3Mub3V0cHV0X2RpcikKICAgIGV4Y2VwdCAoT1NFcnJvciwgUnVudGltZUVycm9yLCBWYWx1ZUVycm9yKSBhcyBleGM6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgIGYiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiB7ZXhjfSIsIGZpbGU9c3lzLnN0ZGVycgogICAgICAgICkKICAgICAgICByZXR1cm4gMQoKICAgIGlmIG1hbmlmZXN0OgogICAgICAgIGZvciBlbnRyeSBpbiBtYW5pZmVzdDoKICAgICAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayAiCiAgICAgICAgICAgICAgICBmIntlbnRyeVsnc291cmNlJ119IGFzIHtlbnRyeVsn \ No newline at end of file +ZiBiYXNlX2hhc2hfbG9ja3MocmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIpIC0+IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dOgogICAgIiIiUmV0dXJuIHJlZ3VsYXIgaGFzaC1sb2NrIGJsb2JzIGZyb20gdGhlIGV4YWN0IHZhbGlkYXRlZCBiYXNlIGNvbW1pdC4iIiIKICAgIGlmIG5vdCBTSEFfUkUuZnVsbG1hdGNoKGJhc2Vfc2hhKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNlIFNIQSBtdXN0IGJlIGV4YWN0bHkgNDAgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyIpCgogICAgbG9ja3M6IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dID0gW10KICAgIGVudHJpZXMgPSBfZ2l0KHJlcG9fcm9vdCwgImxzLXRyZWUiLCAiLXIiLCAiLXoiLCAiLS1mdWxsLXRyZWUiLCBiYXNlX3NoYSkKICAgIGZvciByYXdfZW50cnkgaW4gZW50cmllcy5zcGxpdChiIlwwIik6CiAgICAgICAgaWYgbm90IHJhd19lbnRyeToKICAgICAgICAgICAgY29udGludWUKICAgICAgICBtZXRhZGF0YSwgc2VwYXJhdG9yLCByYXdfcGF0aCA9IHJhd19lbnRyeS5wYXJ0aXRpb24oYiJcdCIpCiAgICAgICAgaWYgbm90IHNlcGFyYXRvcjoKICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJnaXQgbHMtdHJlZSByZXR1cm5lZCBhIG1hbGZvcm1lZCBlbnRyeSIpCiAgICAgICAgZmllbGRzID0gbWV0YWRhdGEuc3BsaXQoKQogICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiZ2l0IGxzLXRyZWUgcmV0dXJuZWQgbWFsZm9ybWVkIG1ldGFkYXRhIikKICAgICAgICBtb2RlLCBvYmplY3RfdHlwZSwgX29iamVjdF9pZCA9ICgKICAgICAgICAgICAgZmllbGQuZGVjb2RlKCJhc2NpaSIsIGVycm9ycz0ic3RyaWN0IikgZm9yIGZpZWxkIGluIGZpZWxkcwogICAgICAgICkKICAgICAgICBwYXRoID0gcmF3X3BhdGguZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0ic3Vycm9nYXRlZXNjYXBlIikKICAgICAgICBjYW5kaWRhdGUgPSBwYXRobGliLlB1cmVQb3NpeFBhdGgocGF0aCkKICAgICAgICBpZiAoCiAgICAgICAgICAgIG9iamVjdF90eXBlICE9ICJibG9iIgogICAgICAgICAgICBvciBub3QgbW9kZS5zdGFydHN3aXRoKCIxMDAiKQogICAgICAgICAgICBvciBjYW5kaWRhdGUuaXNfYWJzb2x1dGUoKQogICAgICAgICAgICBvciAiLi4iIGluIGNhbmRpZGF0ZS5wYXJ0cwogICAgICAgICk6CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgaWYgX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoY2FuZGlkYXRlLm5hbWUpOgogICAgICAgICAgICBjb250ZW50ID0gX2dpdChyZXBvX3Jvb3QsICJzaG93IiwgZiJ7YmFzZV9zaGF9OntwYXRofSIpCiAgICAgICAgICAgIGlmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50KToKICAgICAgICAgICAgICAgIGxvY2tzLmFwcGVuZCgocGF0aCwgY29udGVudCkpCiAgICAgICAgZWxpZiBjYW5kaWRhdGUubmFtZSA9PSAidXYubG9jayI6CiAgICAgICAgICAgIGV4cG9ydGVkID0gX2V4cG9ydF91dl9sb2NrKHJlcG9fcm9vdCwgYmFzZV9zaGEsIHBhdGgpCiAgICAgICAgICAgIGlmIGV4cG9ydGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgbG9ja3MuYXBwZW5kKChwYXRoLCBleHBvcnRlZCkpCiAgICByZXR1cm4gc29ydGVkKGxvY2tzLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMF0pCgoKZGVmIG1hdGVyaWFsaXplKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsCiAgICBiYXNlX3NoYTogc3RyLAogICAgb3V0cHV0X2RpcjogcGF0aGxpYi5QYXRoLAopIC0+IGxpc3RbZGljdFtzdHIsIHN0cl1dOgogICAgIiIiV3JpdGUgYmFzZSBsb2NrIGJsb2JzIHVuZGVyIGdlbmVyYXRlZCBuYW1lcyBzYWZlIGZvciBhIERvY2tlciBidWlsZCBjb250ZXh0LiIiIgogICAgaWYgb3V0cHV0X2Rpci5leGlzdHMoKSBhbmQgb3V0cHV0X2Rpci5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3V0cHV0IGRpcmVjdG9yeSBtdXN0IG5vdCBiZSBhIHN5bWxpbmsiKQogICAgb3V0cHV0X2Rpci5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCgogICAgbWFuaWZlc3Q6IGxpc3RbZGljdFtzdHIsIHN0cl1dID0gW10KICAgIGZvciBpbmRleCwgKHNvdXJjZV9wYXRoLCBjb250ZW50KSBpbiBlbnVtZXJhdGUoCiAgICAgICAgYmFzZV9oYXNoX2xvY2tzKHJlcG9fcm9vdC5yZXNvbHZlKCksIGJhc2Vfc2hhKQogICAgKToKICAgICAgICBnZW5lcmF0ZWRfbmFtZSA9IGYicmVxdWlyZW1lbnRzLXtpbmRleDowM2R9LnR4dCIKICAgICAgICBkZXN0aW5hdGlvbiA9IG91dHB1dF9kaXIgLyBnZW5lcmF0ZWRfbmFtZQogICAgICAgIGRlc3RpbmF0aW9uLndyaXRlX2J5dGVzKGNvbnRlbnQpCiAgICAgICAgbWFuaWZlc3QuYXBwZW5kKHsiZmlsZSI6IGdlbmVyYXRlZF9uYW1lLCAic291cmNlIjogc291cmNlX3BhdGh9KQoKICAgIChvdXRwdXRfZGlyIC8gIm1hbmlmZXN0Lmpzb24iKS53cml0ZV90ZXh0KAogICAgICAgIGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAob3V0cHV0X2RpciAvICJtYW5pZmVzdC50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICIiLmpvaW4oZiJ7ZW50cnlbJ2ZpbGUnXX1cbiIgZm9yIGVudHJ5IGluIG1hbmlmZXN0KSwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgcmV0dXJuIG1hbmlmZXN0CgoKZGVmIG1haW4oYXJndjogbGlzdFtzdHJdIHwgTm9uZSA9IE5vbmUpIC0+IGludDoKICAgICIiIk1hdGVyaWFsaXplIGJhc2UgbG9ja3MgYW5kIHJlcG9ydCBleGFjdGx5IHdoaWNoIHRydXN0ZWQgcGF0aHMgd2VyZSBzZWxlY3RlZC4iIiIKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVwby1yb290IiwgcmVxdWlyZWQ9VHJ1ZSwgdHlwZT1wYXRobGliLlBhdGgpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJhc2Utc2hhIiwgcmVxdWlyZWQ9VHJ1ZSkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0cHV0LWRpciIsIHJlcXVpcmVkPVRydWUsIHR5cGU9cGF0aGxpYi5QYXRoKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3YpCgogICAgdHJ5OgogICAgICAgIG1hbmlmZXN0ID0gbWF0ZXJpYWxpemUoYXJncy5yZXBvX3Jvb3QsIGFyZ3MuYmFzZV9zaGEsIGFyZ3Mub3V0cHV0X2RpcikKICAgIGV4Y2VwdCAoT1NFcnJvciwgUnVudGltZUVycm9yLCBWYWx1ZUVycm9yKSBhcyBleGM6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgIGYiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiB7ZXhjfSIsIGZpbGU9c3lzLnN0ZGVycgogICAgICAgICkKICAgICAgICByZXR1cm4gMQoKICAgIGlmIG1hbmlmZXN0OgogICAgICAgIGZvciBlbnRyeSBpbiBtYW5pZmVzdDoKICAgICAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayAiCiAgICAgICAgICAgICAgICBmIntlbnRyeVsnc291cmNlJ119IGFzIHtlbnRyeVsn \ No newline at end of file From 2855e413da2c84ebc4f73296626f96fbe9d896e8 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:36:30 +0900 Subject: [PATCH 07/20] bootstrap(coverage): stage trusted uv materializer tests chunk 00 --- .tmp/uv-materializer/tests.00.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.00.b64 diff --git a/.tmp/uv-materializer/tests.00.b64 b/.tmp/uv-materializer/tests.00.b64 new file mode 100644 index 000000000..4bc864f95 --- /dev/null +++ b/.tmp/uv-materializer/tests.00.b64 @@ -0,0 +1 @@ +ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhbm5vdGF0aW9ucwoKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGlvCmltcG9ydCBydW5weQppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgc3lzCmltcG9ydCB0YXJmaWxlCmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAoKaW1wb3J0IHB5dGVzdAoKZnJvbSBzY3JpcHRzLmNpIGltcG9ydCBtYXRlcmlhbGl6ZV9iYXNlX3B5dGhvbl9yZXF1aXJlbWVudHMgYXMgbWF0ZXJpYWxpemVyCgoKZGVmIGdpdChyZXBvOiBQYXRoLCAqYXJnczogc3RyKSAtPiBzdHI6CiAgICAiIiJSdW4gZ2l0IGluIGEgdGVtcG9yYXJ5IGZpeHR1cmUgcmVwb3NpdG9yeS4iIiIKICAgIHJldHVybiBzdWJwcm9jZXNzLnJ1bigKICAgICAgICBbImdpdCIsICItQyIsIHN0cihyZXBvKSwgKmFyZ3NdLAogICAgICAgIGNoZWNrPVRydWUsCiAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICB0ZXh0PVRydWUsCiAgICApLnN0ZG91dC5zdHJpcCgpCgoKZGVmIHRlc3RfbWF0ZXJpYWxpemVzX29ubHlfcmVndWxhcl9oYXNoX2xvY2tzX2Zyb21fZXhhY3RfYmFzZSh0bXBfcGF0aDogUGF0aCkgLT4gTm9uZToKICAgICIiIkEgUFItbW9kaWZpZWQgbG9jayBjYW5ub3QgZW50ZXIgdGhlIG5ldHdvcmtlZCBjb3ZlcmFnZSBpbWFnZSBidWlsZCBjb250ZXh0LiIiIgogICAgcmVwbyA9IHRtcF9wYXRoIC8gInJlcG8iCiAgICByZXBvLm1rZGlyKCkKICAgIGdpdChyZXBvLCAiaW5pdCIpCiAgICBnaXQocmVwbywgImNvbmZpZyIsICJ1c2VyLm5hbWUiLCAiVGVzdCIpCiAgICBnaXQocmVwbywgImNvbmZpZyIsICJ1c2VyLmVtYWlsIiwgInRlc3RAZXhhbXBsZS5pbnZhbGlkIikKCiAgICBiYWNrZW5kID0gcmVwbyAvICJiYWNrZW5kIgogICAgYmFja2VuZC5ta2RpcigpCiAgICAoYmFja2VuZCAvICJyZXF1aXJlbWVudHMtaGFzaGVzLnR4dCIpLndyaXRlX3RleHQoCiAgICAgICAgImRlbW89PTEgLS1oYXNoPXNoYTI1NjoiICsgKCJhIiAqIDY0KSArICJcbiIsCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwKICAgICkKICAgIChyZXBvIC8gInJlcXVpcmVtZW50cy5sb2NrIikud3JpdGVfdGV4dCgKICAgICAgICAibG9ja2VkPT0xIC0taGFzaD1zaGEyNTY6IiArICgiYyIgKiA2NCkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAoYmFja2VuZCAvICJyZXF1aXJlbWVudHMudHh0Iikud3JpdGVfdGV4dCgidW50cnVzdGVkPT0xXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIGJhc2Vfc2hhID0gZ2l0KHJlcG8sICJyZXYtcGFyc2UiLCAiSEVBRCIpCgogICAgKGJhY2tlbmQgLyAicmVxdWlyZW1lbnRzLWhhc2hlcy50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICJjaGFuZ2VkPT0yIC0taGFzaD1zaGEyNTY6IiArICgiYiIgKiA2NCkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAocmVwbyAvICJyZXF1aXJlbWVudHMubG9jayIpLndyaXRlX3RleHQoCiAgICAgICAgImNoYW5nZWQ9PTIgLS1oYXNoPXNoYTI1NjoiICsgKCJkIiAqIDY0KSArICJcbiIsCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwKICAgICkKICAgIGdpdChyZXBvLCAiYWRkIiwgIi4iKQogICAgZ2l0KHJlcG8sICJjb21taXQiLCAiLW0iLCAiaGVhZCIpCgogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgbWFuaWZlc3QgPSBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIG91dHB1dCkKCiAgICBhc3NlcnQgbWFuaWZlc3QgPT0gWwogICAgICAgIHsKICAgICAgICAgICAgImZpbGUiOiAicmVxdWlyZW1lbnRzLTAwMC50eHQiLAogICAgICAgICAgICAic291cmNlIjogImJhY2tlbmQvcmVxdWlyZW1lbnRzLWhhc2hlcy50eHQiLAogICAgICAgIH0sCiAgICAgICAgeyJmaWxlIjogInJlcXVpcmVtZW50cy0wMDEudHh0IiwgInNvdXJjZSI6ICJyZXF1aXJlbWVudHMubG9jayJ9LAogICAgXQogICAgYXNzZXJ0ICgKICAgICAgICAob3V0cHV0IC8gInJlcXVpcmVtZW50cy0wMDAudHh0IikKICAgICAgICAucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpCiAgICAgICAgLnN0YXJ0c3dpdGgoImRlbW89PTEiKQogICAgKQogICAgYXNzZXJ0ICJyZXF1aXJlbWVudHMtMDAwLnR4dFxucmVxdWlyZW1lbnRzLTAwMS50eHRcbiIgPT0gKAogICAgICAgIG91dHB1dCAvICJtYW5pZmVzdC50eHQiCiAgICApLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKQogICAgYXNzZXJ0ICgKICAgICAgICAob3V0cHV0IC8gInJlcXVpcmVtZW50cy0wMDEudHh0IikKICAgICAgICAucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpCiAgICAgICAgLnN0YXJ0c3dpdGgoImxvY2tlZD09MSIpCiAgICApCiAgICBhc3NlcnQgInJlcXVpcmVtZW50cy50eHQiIG5vdCBpbiAob3V0cHV0IC8gIm1hbmlmZXN0Lmpzb24iKS5yZWFkX3RleHQoCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IgogICAgKQoKCmRlZiB0ZXN0X21hdGVyaWFsaXplc19oYXNoX3Bpbm5lZF9sb2Nrc19uYW1lZF9iZXlvbmRfdGhlX2xlZ2FjeV93aGl0ZWxpc3QoCiAgICB0bXBfcGF0aDogUGF0aCwKKSAtPiBOb25lOgogICAgIiIiSGFzaC1waW5uZWQgbG9ja3MgaW4gc2VydmljZSBzdWJkaXJzIGFuZCBkZXYvdGVzdCBmaWxlcyBhcmUgbWF0ZXJpYWxpemVkLgoKICAgIERpc2NvdmVyeSBpcyBjb250ZW50LWJhc2VkOiBhIGhhc2gtcGlubmVkIGBgcmVxdWlyZW1lbnRzLWRldi50eHRgYCB1bmRlciBhCiAgICBzZXJ2aWNlIGRpcmVjdG9yeSBhbmQgYSBoYXNoLXBpbm5lZCBgYHJlcXVpcmVtZW50cy10ZXN0LnR4dGBgIGFyZSBpbnN0YWxsZWQKICAgIGZvciBvZmZsaW5lIGNvdmVyYWdlLCB3aGlsZSBhIG5vbi1yZXF1aXJlbWVudHMgYGB1di5sb2NrYGAgKGV4Y2x1ZGVkIGJ5IG5hbWUpCiAgICBhbmQgYW4gdW5waW5uZWQgYGByZXF1aXJlbWVudHMtZXh0cmEudHh0YGAgKGV4Y2x1ZGVkIGJ5IGNvbnRlbnQpIGFyZSBub3QuCiAgICAiIiIKICAgIHJlcG8gPSB0bXBfcGF0aCAvICJyZXBvIgogICAgcmVwby5ta2RpcigpCiAgICBnaXQocmVwbywgImluaXQiKQogICAgZ2l0KHJlcG8sICJjb25maWciLCAidXNlci5uYW1lIiwgIlRlc3QiKQogICAgZ2l0KHJlcG8sICJjb25maWciLCAidXNlci5lbWFpbCIsICJ0ZXN0QGV4YW1wbGUuaW52YWxpZCIpCgogICAgc2VydmljZSA9IHJlcG8gLyAic2VydmljZXMiIC8gImFjY291bnRfdW5pZmljYXRpb24iCiAgICBzZXJ2aWNlLm1rZGlyKHBhcmVudHM9VHJ1ZSkKICAgIChzZXJ2aWNlIC8gInJlcXVpcmVtZW50cy1kZXYudHh0Iikud3JpdGVfdGV4dCgKICAgICAgICAiZmFzdGFwaT09MSAtLWhhc2g9c2hhMjU2OiIgKyAoImEiICogNjQpICsgIlxuIiwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgKHJlcG8gLyAicmVxdWlyZW1lbnRzLXRlc3QudHh0Iikud3JpdGVfdGV4dCgKICAgICAgICAiaHlwb3RoZXNpcz09NiAtLWhhc2g9c2hhMjU2OiIgKyAoImIiICogNjQpICsgIlxuIiwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgKHJlcG8gLyAidXYubG9jayIp \ No newline at end of file From daeb57060fcdaf802d6c57d75e3906359473cd7b Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:37:50 +0900 Subject: [PATCH 08/20] bootstrap(coverage): stage trusted uv materializer tests chunk 01 --- .tmp/uv-materializer/tests.01.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.01.b64 diff --git a/.tmp/uv-materializer/tests.01.b64 b/.tmp/uv-materializer/tests.01.b64 new file mode 100644 index 000000000..7b97282af --- /dev/null +++ b/.tmp/uv-materializer/tests.01.b64 @@ -0,0 +1 @@ +LndyaXRlX3RleHQoCiAgICAgICAgInZlcnNpb24gPSAxXG5bW3BhY2thZ2VdXVxubmFtZSA9ICd4J1xuIiwgZW5jb2Rpbmc9InV0Zi04IgogICAgKQogICAgKHJlcG8gLyAicmVxdWlyZW1lbnRzLWV4dHJhLnR4dCIpLndyaXRlX3RleHQoInVucGlubmVkPT0xXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIGJhc2Vfc2hhID0gZ2l0KHJlcG8sICJyZXYtcGFyc2UiLCAiSEVBRCIpCgogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgbWFuaWZlc3QgPSBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIG91dHB1dCkKCiAgICBhc3NlcnQgW2VudHJ5WyJzb3VyY2UiXSBmb3IgZW50cnkgaW4gbWFuaWZlc3RdID09IFsKICAgICAgICAicmVxdWlyZW1lbnRzLXRlc3QudHh0IiwKICAgICAgICAic2VydmljZXMvYWNjb3VudF91bmlmaWNhdGlvbi9yZXF1aXJlbWVudHMtZGV2LnR4dCIsCiAgICBdCgoKZGVmIHRlc3RfbG9ja19uYW1lX2NhbmRpZGF0ZXNfYXJlX3BpcF9yZXF1aXJlbWVudHNfZmlsZXMoKSAtPiBOb25lOgogICAgIiIiUmVxdWlyZW1lbnRzIGZpbGVzIGFuZCByZXF1aXJlbWVudHMubG9jayBhcmUgY2FuZGlkYXRlczsgb3RoZXIgbmFtZXMgYXJlIG5vdC4iIiIKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy5sb2NrIikKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy1kZXYudHh0IikKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy50eHQiKQogICAgYXNzZXJ0IG5vdCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoCiAgICAgICAgInJlcXVpcmVtZW50cy1vcGVuY29kZS1yZXZpZXctY2ktaGFzaGVzLnR4dCIKICAgICkKICAgIGFzc2VydCBub3QgbWF0ZXJpYWxpemVyLl9pc19jYW5kaWRhdGVfbG9ja19uYW1lKCJ1di5sb2NrIikKICAgIGFzc2VydCBub3QgbWF0ZXJpYWxpemVyLl9pc19jYW5kaWRhdGVfbG9ja19uYW1lKCJweXByb2plY3QudG9tbCIpCgoKZGVmIHRlc3RfaGFzaF9waW5fZGV0ZWN0aW9uX2luY2x1ZGVzX3Bpbm5lZF9hbmRfZXhjbHVkZXNfdW5waW5uZWRfb3JfZW1wdHkoKSAtPiBOb25lOgogICAgIiIiT25seSBmdWxseSBoYXNoLXBpbm5lZCwgbm9uLWVtcHR5IGxvY2sgY29udGVudCBpcyBtYXRlcmlhbGl6ZWQuIiIiCiAgICBhc3NlcnQgbm90IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiIjIGNvbW1lbnQgb25seVxuXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiItLXJlcXVpcmUtaGFzaGVzXG5kZW1vPT0xXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiJkZW1vPT0xIC0taGFzaD1zaGEyNTY6IiArIGIiYSIgKiA2NCArIGIiXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiItciBvdGhlci1oYXNoZXMudHh0XG4iKQogICAgYXNzZXJ0IG5vdCBtYXRlcmlhbGl6ZXIuX2lzX2hhc2hfcGlubmVkKGIidW50cnVzdGVkPT0xXG4iKQogICAgIyB1diBleHBvcnQgLyBwaXAtY29tcGlsZSBtdWx0aS1saW5lIGNvbnRpbnVhdGlvbiBmb3JtYXQgKHNwZWMsIHRoZW4gLS1oYXNoPSBsaW5lcykuCiAgICBhc3NlcnQgbWF0ZXJpYWxpemVyLl9pc19oYXNoX3Bpbm5lZCgKICAgICAgICBiImZvbz09MSBcXFxuICAgIC0taGFzaD1zaGEyNTY6IgogICAgICAgICsgYiJhIiAqIDY0CiAgICAgICAgKyBiIiBcXFxuICAgIC0taGFzaD1zaGEyNTY6IgogICAgICAgICsgYiJiIiAqIDY0CiAgICAgICAgKyBiIlxuIgogICAgKQoKCmRlZiB0ZXN0X3JlamVjdHNfaW52YWxpZF9iYXNlX3NoYSh0bXBfcGF0aDogUGF0aCkgLT4gTm9uZToKICAgICIiIkdpdCBvcHRpb25zIGFuZCBzeW1ib2xpYyByZWZzIGNhbm5vdCBjcm9zcyB0aGUgZXhhY3QtU0hBIGJvdW5kYXJ5LiIiIgogICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSI0MCBoZXhhZGVjaW1hbCIpOgogICAgICAgIG1hdGVyaWFsaXplci5iYXNlX2hhc2hfbG9ja3ModG1wX3BhdGgsICItLWhlbHAiKQoKCmRlZiB0ZXN0X2dpdF9mYWlsdXJlX3ByZXNlcnZlc19hX3Zpc2libGVfcmVhc29uKHRtcF9wYXRoOiBQYXRoKSAtPiBOb25lOgogICAgIiIiQSBmYWlsZWQgcmVhZC1vbmx5IGdpdCBjb21tYW5kIHJlcG9ydHMgaXRzIG9wZXJhdGlvbiBhbmQgc3RkZXJyLiIiIgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ciJnaXQgcmV2LXBhcnNlIGZhaWxlZDogZmF0YWwiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2dpdCh0bXBfcGF0aCwgInJldi1wYXJzZSIsICJIRUFEIikKCgpAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAoInRyZWVfb3V0cHV0IiwgIm1lc3NhZ2UiKSwKICAgIFsKICAgICAgICAoYiJtYWxmb3JtZWRcMCIsICJtYWxmb3JtZWQgZW50cnkiKSwKICAgICAgICAoYiIxMDA2NDQgYmxvYlx0ZmlsZVwwIiwgIm1hbGZvcm1lZCBtZXRhZGF0YSIpLAogICAgXSwKKQpkZWYgdGVzdF9yZWplY3RzX21hbGZvcm1lZF9naXRfdHJlZV9lbnRyaWVzKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgdHJlZV9vdXRwdXQ6IGJ5dGVzLAogICAgbWVzc2FnZTogc3RyLAopIC0+IE5vbmU6CiAgICAiIiJNYWxmb3JtZWQgZ2l0IG91dHB1dCBjYW5ub3QgYmUgaW50ZXJwcmV0ZWQgYXMgYSB0cnVzdGVkIGxvY2sgYmxvYi4iIiIKCiAgICBkZWYgZmFrZV9naXQoX3JlcG9fcm9vdDogUGF0aCwgKl9hcmdzOiBzdHIpIC0+IGJ5dGVzOgogICAgICAgIHJldHVybiB0cmVlX291dHB1dAoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX2dpdCIsIGZha2VfZ2l0KQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPW1lc3NhZ2UpOgogICAgICAgIG1hdGVyaWFsaXplci5iYXNlX2hhc2hfbG9ja3ModG1wX3BhdGgsICJhIiAqIDQwKQoKCmRlZiB0ZXN0X3JlamVjdHNfc3ltbGlua19vdXRwdXRfZGlyZWN0b3J5KAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBzeW1saW5rIGNhbm5vdCByZWRpcmVjdCB0cnVzdGVkIGxvY2sgbWF0ZXJpYWxpemF0aW9uIG91dHNpZGUgaXRzIGNvbnRleHQuIiIiCiAgICB0YXJnZXQgPSB0bXBfcGF0aCAvICJ0YXJnZXQiCiAgICB0YXJnZXQubWtkaXIoKQogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgb3V0cHV0LnN5bWxpbmtfdG8odGFyZ2V0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgImJhc2VfaGFzaF9sb2NrcyIsIGxhbWJkYSAqX2FyZ3M6IFtdKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD0ibXVzdCBub3QgYmUg \ No newline at end of file From 675583ec77b53e070ad80f14ca4777b412400ff8 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:39:03 +0900 Subject: [PATCH 09/20] bootstrap(coverage): stage trusted uv materializer tests chunk 02 --- .tmp/uv-materializer/tests.02.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.02.b64 diff --git a/.tmp/uv-materializer/tests.02.b64 b/.tmp/uv-materializer/tests.02.b64 new file mode 100644 index 000000000..23cc5d5ec --- /dev/null +++ b/.tmp/uv-materializer/tests.02.b64 @@ -0,0 +1 @@ +YSBzeW1saW5rIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLm1hdGVyaWFsaXplKHRtcF9wYXRoLCAiYSIgKiA0MCwgb3V0cHV0KQoKCmRlZiB0ZXN0X21haW5fcmVwb3J0c19lYWNoX21hdGVyaWFsaXplZF9sb2NrKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiVGhlIENMSSBpZGVudGlmaWVzIHRoZSBleGFjdCB0cnVzdGVkIHNvdXJjZSBhbmQgZ2VuZXJhdGVkIGxvY2sgbmFtZS4iIiIKCiAgICBkZWYgZmFrZV9tYXRlcmlhbGl6ZSgKICAgICAgICBfcmVwb19yb290OiBQYXRoLCBfYmFzZV9zaGE6IHN0ciwgX291dHB1dF9kaXI6IFBhdGgKICAgICkgLT4gbGlzdFtkaWN0W3N0ciwgc3RyXV06CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZpbGUiOiAicmVxdWlyZW1lbnRzLTAwMC50eHQiLAogICAgICAgICAgICAgICAgInNvdXJjZSI6ICJiYWNrZW5kL3JlcXVpcmVtZW50cy1oYXNoZXMudHh0IiwKICAgICAgICAgICAgfQogICAgICAgIF0KCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgZmFrZV9tYXRlcmlhbGl6ZSkKCiAgICBhc3NlcnQgKAogICAgICAgIG1hdGVyaWFsaXplci5tYWluKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoKSwKICAgICAgICAgICAgICAgICItLWJhc2Utc2hhIiwKICAgICAgICAgICAgICAgICJhIiAqIDQwLAogICAgICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgICAgICBzdHIodG1wX3BhdGggLyAib3V0cHV0IiksCiAgICAgICAgICAgIF0KICAgICAgICApCiAgICAgICAgPT0gMAogICAgKQogICAgYXNzZXJ0ICgKICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayBiYWNrZW5kL3JlcXVpcmVtZW50cy1oYXNoZXMudHh0ICIKICAgICAgICAiYXMgcmVxdWlyZW1lbnRzLTAwMC50eHQuIiBpbiBjYXBzeXMucmVhZG91dGVycigpLm91dAogICAgKQoKCmRlZiB0ZXN0X21haW5fcmVwb3J0c193aGVuX25vX2xvY2tzX2V4aXN0KAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiVGhlIENMSSBkaXN0aW5ndWlzaGVzIGFuIGVtcHR5IHRydXN0ZWQgYmFzZSBmcm9tIGEgZmFpbGVkIGV4dHJhY3Rpb24uIiIiCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgbGFtYmRhICpfYXJnczogW10pCgogICAgYXNzZXJ0ICgKICAgICAgICBtYXRlcmlhbGl6ZXIubWFpbigKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgIi0tcmVwby1yb290IiwKICAgICAgICAgICAgICAgIHN0cih0bXBfcGF0aCksCiAgICAgICAgICAgICAgICAiLS1iYXNlLXNoYSIsCiAgICAgICAgICAgICAgICAiYSIgKiA0MCwKICAgICAgICAgICAgICAgICItLW91dHB1dC1kaXIiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoIC8gIm91dHB1dCIpLAogICAgICAgICAgICBdCiAgICAgICAgKQogICAgICAgID09IDAKICAgICkKICAgIGFzc2VydCAoCiAgICAgICAgIk5vIHRyYWNrZWQgaGFzaC1iZWFyaW5nIFB5dGhvbiByZXF1aXJlbWVudCBjYW5kaWRhdGVzIGV4aXN0IgogICAgICAgIGluIGNhcHN5cy5yZWFkb3V0ZXJyKCkub3V0CiAgICApCgoKZGVmIHRlc3RfbWFpbl9mYWlsc193aXRoX3RoZV9tYXRlcmlhbGl6YXRpb25fcmVhc29uKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiQSBtYXRlcmlhbGl6YXRpb24gZXhjZXB0aW9uIGZhaWxzIGNsb3NlZCBhbmQgcmVtYWlucyBkaWFnbm9zYWJsZSBpbiBDSS4iIiIKCiAgICBkZWYgZmFpbF9tYXRlcmlhbGl6ZShfcmVwb19yb290OiBQYXRoLCBfYmFzZV9zaGE6IHN0ciwgX291dHB1dF9kaXI6IFBhdGgpIC0+IE5vbmU6CiAgICAgICAgcmFpc2UgT1NFcnJvcigiZml4dHVyZSBmYWlsdXJlIikKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgZmFpbF9tYXRlcmlhbGl6ZSkKCiAgICBhc3NlcnQgKAogICAgICAgIG1hdGVyaWFsaXplci5tYWluKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoKSwKICAgICAgICAgICAgICAgICItLWJhc2Utc2hhIiwKICAgICAgICAgICAgICAgICJhIiAqIDQwLAogICAgICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgICAgICBzdHIodG1wX3BhdGggLyAib3V0cHV0IiksCiAgICAgICAgICAgIF0KICAgICAgICApCiAgICAgICAgPT0gMQogICAgKQogICAgYXNzZXJ0ICgKICAgICAgICAiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiBmaXh0dXJlIGZhaWx1cmUiCiAgICAgICAgaW4gY2Fwc3lzLnJlYWRvdXRlcnIoKS5lcnIKICAgICkKCgpkZWYgdGVzdF9zY3JpcHRfZW50cnlwb2ludF9leGl0c190aHJvdWdoX21haW4oCiAgICB0bXBfcGF0aDogUGF0aCwgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaAopIC0+IE5vbmU6CiAgICAiIiJUaGUgZXhlY3V0YWJsZSBzY3JpcHQgcHJvcGFnYXRlcyB0aGUgZmFpbC1jbG9zZWQgQ0xJIHN0YXR1cy4iIiIKICAgIG1vZHVsZV9wYXRoID0gUGF0aChtYXRlcmlhbGl6ZXIuX19maWxlX18pCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIHN5cywKICAgICAgICAiYXJndiIsCiAgICAgICAgWwogICAgICAgICAgICBzdHIobW9kdWxlX3BhdGgpLAogICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICBzdHIodG1wX3BhdGgpLAogICAgICAgICAgICAiLS1iYXNlLXNoYSIsCiAgICAgICAgICAgICJpbnZhbGlkIiwKICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgIHN0cih0bXBfcGF0aCAvICJvdXRwdXQiKSwKICAgICAgICBdLAogICAgKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyByYWlzZWQ6CiAgICAgICAgcnVucHkucnVuX3BhdGgoc3RyKG1vZHVsZV9wYXRoKSwgcnVuX25hbWU9Il9fbWFpbl9fIikKCiAgICBhc3NlcnQgcmFpc2VkLnZhbHVlLmNvZGUgPT0gMQoKCmRlZiB0ZXN0X3NraXBzX25vbl9ibG9iX3RyZWVfZW50cmllcygKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlN1Ym1vZHVsZS9naXRsaW5rIChub24tYmxvYikgdHJlZSBlbnRyaWVzIGFyZSBza2lwcGVkLCBuZXZlciBtYXRlcmlhbGl6ZWQuIiIiCiAgICBibG9iID0gYiJwaW5uZWQ9PTEgLS1oYXNoPXNoYTI1NjoiICsgYiJhIiAqIDY0ICsgYiJcbiIK \ No newline at end of file From 32fb62f143e03dfab8e8d6ace8e30d5bc7399d42 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:40:22 +0900 Subject: [PATCH 10/20] bootstrap(coverage): stage trusted uv materializer tests chunk 03 --- .tmp/uv-materializer/tests.03.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.03.b64 diff --git a/.tmp/uv-materializer/tests.03.b64 b/.tmp/uv-materializer/tests.03.b64 new file mode 100644 index 000000000..7aa2fa11a --- /dev/null +++ b/.tmp/uv-materializer/tests.03.b64 @@ -0,0 +1 @@ +ICAgIHRyZWUgPSAoCiAgICAgICAgYiIxNjAwMDAgY29tbWl0ICIgKyBiIjAiICogNDAgKyBiIlx0dmVuZG9yZWQtc3VibW9kdWxlXDAiCiAgICAgICAgYiIxMDA2NDQgYmxvYiAiICsgYiIxIiAqIDQwICsgYiJcdHJlcXVpcmVtZW50cy50eHRcMCIKICAgICkKCiAgICBkZWYgZmFrZV9naXQoX3JlcG9fcm9vdDogUGF0aCwgKmFyZ3M6IHN0cikgLT4gYnl0ZXM6CiAgICAgICAgaWYgYXJnc1swXSA9PSAibHMtdHJlZSI6CiAgICAgICAgICAgIHJldHVybiB0cmVlCiAgICAgICAgaWYgYXJnc1swXSA9PSAic2hvdyI6CiAgICAgICAgICAgIHJldHVybiBibG9iCiAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoYXJncykKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9naXQiLCBmYWtlX2dpdCkKCiAgICBhc3NlcnQgbWF0ZXJpYWxpemVyLmJhc2VfaGFzaF9sb2Nrcyh0bXBfcGF0aCwgImEiICogNDApID09IFsKICAgICAgICAoInJlcXVpcmVtZW50cy50eHQiLCBibG9iKQogICAgXQoKCmRlZiBfdXZfcmVwbyh0bXBfcGF0aDogUGF0aCwgKiwgd2l0aF9weXByb2plY3Q6IGJvb2wsIGxvY2tfZGlyOiBzdHIgPSAiIikgLT4gdHVwbGVbUGF0aCwgc3RyXToKICAgICIiIkluaXQgYSBmaXh0dXJlIHJlcG8gd2l0aCBhIHV2LmxvY2sgKGFuZCBvcHRpb25hbCBweXByb2plY3QudG9tbCkgYXQgbG9ja19kaXIuIiIiCiAgICByZXBvID0gdG1wX3BhdGggLyAicmVwbyIKICAgIHJlcG8ubWtkaXIoKQogICAgZ2l0KHJlcG8sICJpbml0IikKICAgIGdpdChyZXBvLCAiY29uZmlnIiwgInVzZXIubmFtZSIsICJUZXN0IikKICAgIGdpdChyZXBvLCAiY29uZmlnIiwgInVzZXIuZW1haWwiLCAidGVzdEBleGFtcGxlLmludmFsaWQiKQogICAgYmFzZSA9IHJlcG8gLyBsb2NrX2RpciBpZiBsb2NrX2RpciBlbHNlIHJlcG8KICAgIGJhc2UubWtkaXIocGFyZW50cz1UcnVlLCBleGlzdF9vaz1UcnVlKQogICAgKGJhc2UgLyAidXYubG9jayIpLndyaXRlX3RleHQoInZlcnNpb24gPSAxXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgaWYgd2l0aF9weXByb2plY3Q6CiAgICAgICAgKGJhc2UgLyAicHlwcm9qZWN0LnRvbWwiKS53cml0ZV90ZXh0KAogICAgICAgICAgICAiW3Byb2plY3RdXG5uYW1lID0gJ2RlbW8nXG52ZXJzaW9uID0gJzAnXG4iLCBlbmNvZGluZz0idXRmLTgiCiAgICAgICAgKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIHJldHVybiByZXBvLCBnaXQocmVwbywgInJldi1wYXJzZSIsICJIRUFEIikKCgpkZWYgX2V4cG9ydChyZXR1cm5jb2RlOiBpbnQsIHN0ZG91dDogYnl0ZXMpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAiIiJCdWlsZCBhIGZha2UgYGB1diBleHBvcnRgYCBjb21wbGV0ZWQtcHJvY2VzcyByZXN1bHQuIiIiCiAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFsidXYiLCAiZXhwb3J0Il0sIHJldHVybmNvZGUsIHN0ZG91dCwgYiIiKQoKCmRlZiB0ZXN0X3V2X2xvY2tfaXNfZXhwb3J0ZWRfdG9fYV9oYXNoX3Bpbm5lZF9sb2NrKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBiYXNlIHV2LmxvY2sgaXMgZXhwb3J0ZWQgdmlhIHV2IGludG8gYSBtYXRlcmlhbGl6ZWQgaGFzaC1waW5uZWQgY2xvc3VyZS4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBoYXNoZWQgPSBiImRlbW8tZGVwPT0xIC0taGFzaD1zaGEyNTY6IiArIGIiYSIgKiA2NCArIGIiXG4iCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IF9leHBvcnQoMCwgaGFzaGVkKSwKICAgICkKCiAgICBvdXRwdXQgPSB0bXBfcGF0aCAvICJvdXRwdXQiCiAgICBtYW5pZmVzdCA9IG1hdGVyaWFsaXplci5tYXRlcmlhbGl6ZShyZXBvLCBiYXNlX3NoYSwgb3V0cHV0KQoKICAgIGFzc2VydCBtYW5pZmVzdCA9PSBbeyJmaWxlIjogInJlcXVpcmVtZW50cy0wMDAudHh0IiwgInNvdXJjZSI6ICJ1di5sb2NrIn1dCiAgICBhc3NlcnQgKG91dHB1dCAvICJyZXF1aXJlbWVudHMtMDAwLnR4dCIpLnJlYWRfYnl0ZXMoKSA9PSBoYXNoZWQKCgpkZWYgdGVzdF91dl9sb2NrX2ZhaWxzX2Nsb3NlZF93aGVuX3RydXN0ZWRfdXZfYm9vdHN0cmFwX2ZhaWxzKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSB0cmFja2VkIHByb2plY3QgdXYubG9jayBjYW5ub3Qgc2lsZW50bHkgbG9zZSBpdHMgZGVwZW5kZW5jeSBldmlkZW5jZS4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCgogICAgZGVmIGZhaWxfaW5zdGFsbCgpIC0+IHN0cjoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgYm9vdHN0cmFwIGZhaWxlZCIpCgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgZmFpbF9pbnN0YWxsKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJ0cnVzdGVkIHV2IGJvb3RzdHJhcCBmYWlsZWQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpCgoKZGVmIHRlc3RfdXZfbG9ja19za2lwcGVkX3doZW5fcHlwcm9qZWN0X2lzX2Fic2VudCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIkEgdXYubG9jayB3aXRob3V0IGEgc2libGluZyBweXByb2plY3QudG9tbCBhdCBiYXNlIChpbiBhIHN1YmRpcikgY2Fubm90IGJlIGV4cG9ydGVkLiIiIgogICAgcmVwbywgYmFzZV9zaGEgPSBfdXZfcmVwbyh0bXBfcGF0aCwgd2l0aF9weXByb2plY3Q9RmFsc2UsIGxvY2tfZGlyPSJzZXJ2aWNlIikKICAgIGRlZiB1bmV4cGVjdGVkX2luc3RhbGwoKSAtPiBzdHI6CiAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIm9ycGhhbiB1di5sb2NrIG11c3Qgbm90IGJvb3RzdHJhcCB1diIpCgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgdW5leHBlY3RlZF9pbnN0YWxsKQoKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpID09IFtdCgoKZGVmIHRlc3RfdXZfbG9ja19mYWlsc19jbG9zZWRfd2hlbl9leHBvcnRfZmFpbHMoCiAgICB0bXBfcGF0aDogUGF0aCwgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaAopIC0+IE5vbmU6CiAgICAiIiJBIHN0YWxlIG9yIG90aGVy \ No newline at end of file From 83b90e4f02d364a21cd48c5e47c024de3bc312f3 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:41:39 +0900 Subject: [PATCH 11/20] bootstrap(coverage): stage trusted uv materializer tests chunk 04 --- .tmp/uv-materializer/tests.04.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.04.b64 diff --git a/.tmp/uv-materializer/tests.04.b64 b/.tmp/uv-materializer/tests.04.b64 new file mode 100644 index 000000000..68dc4424b --- /dev/null +++ b/.tmp/uv-materializer/tests.04.b64 @@ -0,0 +1 @@ +d2lzZSB1bmV4cG9ydGFibGUgdHJhY2tlZCB1di5sb2NrIGJsb2NrcyBldmlkZW5jZSBjcmVhdGlvbi4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcygKICAgICAgICAgICAgWyJ1diIsICJleHBvcnQiXSwgMSwgYiIiLCBiImxvY2sgaXMgc3RhbGVcbiIKICAgICAgICApLAogICAgKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJ1diBleHBvcnQgZmFpbGVkLipsb2NrIGlzIHN0YWxlIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLm1hdGVyaWFsaXplKHJlcG8sIGJhc2Vfc2hhLCB0bXBfcGF0aCAvICJvdXRwdXQiKQoKCmRlZiB0ZXN0X3V2X2xvY2tfZmFpbHNfY2xvc2VkX3doZW5fZXhwb3J0X2lzX25vdF9oYXNoX3Bpbm5lZCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIkEgbm9uZW1wdHkgdXYgZXhwb3J0IHdpdGhvdXQgaGFzaGVzIGlzIHJlamVjdGVkIGluc3RlYWQgb2YgaWdub3JlZC4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IF9leHBvcnQoMCwgYiJ1bnBpbm5lZD09MVxuIiksCiAgICApCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9Im5vdCBmdWxseSBoYXNoLXBpbm5lZCIpOgogICAgICAgIG1hdGVyaWFsaXplci5tYXRlcmlhbGl6ZShyZXBvLCBiYXNlX3NoYSwgdG1wX3BhdGggLyAib3V0cHV0IikKCgpkZWYgdGVzdF91dl9sb2NrX3dpdGhfZW1wdHlfZGVwZW5kZW5jeV9jbG9zdXJlX21hdGVyaWFsaXplc19ub3RoaW5nKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBzdWNjZXNzZnVsIGNvbW1lbnQtb25seSB1diBleHBvcnQgcmVwcmVzZW50cyBhIHZhbGlkIGVtcHR5IGNsb3N1cmUuIiIiCiAgICByZXBvLCBiYXNlX3NoYSA9IF91dl9yZXBvKHRtcF9wYXRoLCB3aXRoX3B5cHJvamVjdD1UcnVlKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgbGFtYmRhOiAiL3Vzci9iaW4vdXYiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIsCiAgICAgICAgIl9ydW5fdXZfZXhwb3J0IiwKICAgICAgICBsYW1iZGEgX3dvcmssIF91dl9wYXRoOiBfZXhwb3J0KDAsIGIiIyBubyB0aGlyZC1wYXJ0eSBkZXBlbmRlbmNpZXNcbiIpLAogICAgKQoKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpID09IFtdCgoKY2xhc3MgX0Zha2VSZXNwb25zZToKICAgICIiIk1pbmltYWwgY29udGV4dC1tYW5hZ2VkIEhUVFAgcmVzcG9uc2UgdXNlZCBieSB0cnVzdGVkIHV2IGRvd25sb2FkIHRlc3RzLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXlsb2FkOiBieXRlcywgZmluYWxfdXJsOiBzdHIpIC0+IE5vbmU6CiAgICAgICAgIiIiU3RvcmUgZGV0ZXJtaW5pc3RpYyByZXNwb25zZSBieXRlcyBhbmQgdGhlIG9ic2VydmVkIGZpbmFsIFVSTC4iIiIKICAgICAgICBzZWxmLl9wYXlsb2FkID0gcGF5bG9hZAogICAgICAgIHNlbGYuX2ZpbmFsX3VybCA9IGZpbmFsX3VybAoKICAgIGRlZiBfX2VudGVyX18oc2VsZikgLT4gIl9GYWtlUmVzcG9uc2UiOgogICAgICAgICIiIlJldHVybiB0aGlzIHJlc3BvbnNlIGZyb20gYSBjb250ZXh0IG1hbmFnZXIuIiIiCiAgICAgICAgcmV0dXJuIHNlbGYKCiAgICBkZWYgX19leGl0X18oc2VsZiwgKl9hcmdzOiBvYmplY3QpIC0+IE5vbmU6CiAgICAgICAgIiIiQ2xvc2UgdGhlIGZha2UgcmVzcG9uc2Ugd2l0aG91dCBzdXBwcmVzc2luZyBleGNlcHRpb25zLiIiIgoKICAgIGRlZiBnZXR1cmwoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybiB0aGUgZmluYWwgVVJMIGFmdGVyIHJlZGlyZWN0cy4iIiIKICAgICAgICByZXR1cm4gc2VsZi5fZmluYWxfdXJsCgogICAgZGVmIHJlYWQoc2VsZiwgc2l6ZTogaW50KSAtPiBieXRlczoKICAgICAgICAiIiJSZXR1cm4gYXQgbW9zdCBgYHNpemVgYCBieXRlcyBsaWtlIGFuIEhUVFAgcmVzcG9uc2UuIiIiCiAgICAgICAgcmV0dXJuIHNlbGYuX3BheWxvYWRbOnNpemVdCgoKZGVmIF90cnVzdGVkX3V2X2FyY2hpdmUoCiAgICBiaW5hcnk6IGJ5dGVzID0gYiJ2ZXJpZmllZC11diIsCiAgICAqLAogICAgbWVtYmVyX25hbWU6IHN0ciA9IG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSLAogICAgcmVndWxhcjogYm9vbCA9IFRydWUsCikgLT4gYnl0ZXM6CiAgICAiIiJCdWlsZCBhIGRldGVybWluaXN0aWMgdXYgdGFyIGFyY2hpdmUgZm9yIHN1cHBseS1jaGFpbiBib3VuZGFyeSB0ZXN0cy4iIiIKICAgIHBheWxvYWQgPSBpby5CeXRlc0lPKCkKICAgIHdpdGggdGFyZmlsZS5vcGVuKGZpbGVvYmo9cGF5bG9hZCwgbW9kZT0idzpneiIpIGFzIGJ1bmRsZToKICAgICAgICBtZW1iZXIgPSB0YXJmaWxlLlRhckluZm8obWVtYmVyX25hbWUpCiAgICAgICAgaWYgcmVndWxhcjoKICAgICAgICAgICAgbWVtYmVyLnNpemUgPSBsZW4oYmluYXJ5KQogICAgICAgICAgICBidW5kbGUuYWRkZmlsZShtZW1iZXIsIGlvLkJ5dGVzSU8oYmluYXJ5KSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBtZW1iZXIudHlwZSA9IHRhcmZpbGUuRElSVFlQRQogICAgICAgICAgICBidW5kbGUuYWRkZmlsZShtZW1iZXIpCiAgICByZXR1cm4gcGF5bG9hZC5nZXR2YWx1ZSgpCgoKZGVmIHRlc3RfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlX2FjY2VwdHNfZml4ZWRfaHR0cHNfb3JpZ2luKAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKKSAtPiBOb25lOgogICAgIiIiVGhlIGRvd25sb2FkZXIgcmV0dXJucyBib3VuZGVkIGJ5dGVzIGZyb20gdGhlIGZpeGVkIEFzdHJhbCBIVFRQUyBvcmlnaW4uIiIiCiAgICBwYXlsb2FkID0gYiJhcmNoaXZlIgogICAgcmVzcG9uc2UgPSBfRmFrZVJlc3BvbnNlKHBheWxvYWQsIG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfVVJMKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRh \ No newline at end of file From acc6f74af320b57d48f63c0f2e5c55e690f55a87 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:43:00 +0900 Subject: [PATCH 12/20] bootstrap(coverage): stage trusted uv materializer tests chunk 05 --- .tmp/uv-materializer/tests.05.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.05.b64 diff --git a/.tmp/uv-materializer/tests.05.b64 b/.tmp/uv-materializer/tests.05.b64 new file mode 100644 index 000000000..4cce32727 --- /dev/null +++ b/.tmp/uv-materializer/tests.05.b64 @@ -0,0 +1 @@ +ICpfYSwgKipfazogcmVzcG9uc2UpCgogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkgPT0gcGF5bG9hZAoKCmRlZiB0ZXN0X2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZV9yZWplY3RzX3Vuc2FmZV9yZWRpcmVjdCgKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkEgcmVkaXJlY3QgYXdheSBmcm9tIHRoZSBmaXhlZCBIVFRQUyByZWxlYXNlIGhvc3QgZmFpbHMgY2xvc2VkLiIiIgogICAgcmVzcG9uc2UgPSBfRmFrZVJlc3BvbnNlKGIiYXJjaGl2ZSIsICJodHRwczovL2V4YW1wbGUuaW52YWxpZC91di50YXIuZ3oiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRhICpfYSwgKipfazogcmVzcG9uc2UpCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9InJlZGlyZWN0ZWQgb3V0c2lkZSIpOgogICAgICAgIG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkKCgpkZWYgdGVzdF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmVfcmVqZWN0c19uZXR3b3JrX2FuZF9zaXplX2ZhaWx1cmVzKAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKKSAtPiBOb25lOgogICAgIiIiTmV0d29yayBlcnJvcnMgYW5kIG92ZXJzaXplZCBhcmNoaXZlcyBjYW5ub3QgZW50ZXIgdGhlIHRydXN0ZWQgdG9vbCBwYXRoLiIiIgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsCiAgICAgICAgInVybG9wZW4iLAogICAgICAgIGxhbWJkYSAqX2EsICoqX2s6IChfIGZvciBfIGluICgpKS50aHJvdyhPU0Vycm9yKCJvZmZsaW5lIikpLAogICAgKQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImRvd25sb2FkIGZhaWxlZCIpOgogICAgICAgIG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkKCiAgICByZXNwb25zZSA9IF9GYWtlUmVzcG9uc2UoYiIxMjM0NSIsIG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfVVJMKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRhICpfYSwgKipfazogcmVzcG9uc2UpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfRE9XTkxPQURfTUFYX0JZVEVTIiwgNCkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJib3VuZGVkIGRvd25sb2FkIHNpemUiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZSgpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X2FjY2VwdHNfZXhhY3RfYXJjaGl2ZSgKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkFuIGV4YWN0LWhhc2ggYXJjaGl2ZSB5aWVsZHMgb25seSBpdHMgYm91bmRlZCByZWd1bGFyIHV2IG1lbWJlci4iIiIKICAgIGFyY2hpdmUgPSBfdHJ1c3RlZF91dl9hcmNoaXZlKCkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCiAgICAgICAgbWF0ZXJpYWxpemVyLCAiVFJVU1RFRF9VVl9BUkNISVZFX1NIQTI1NiIsIGhhc2hsaWIuc2hhMjU2KGFyY2hpdmUpLmhleGRpZ2VzdCgpCiAgICApCgogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpID09IGIidmVyaWZpZWQtdXYiCgoKQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAogICAgKCJhcmNoaXZlIiwgImVycm9yIiksCiAgICBbCiAgICAgICAgKGIibm90LWEtdGFyIiwgImNoZWNrc3VtIHZlcmlmaWNhdGlvbiBmYWlsZWQiKSwKICAgICAgICAoX3RydXN0ZWRfdXZfYXJjaGl2ZShtZW1iZXJfbmFtZT0id3JvbmcvdXYiKSwgIm9taXR0ZWQgdGhlIHV2IGV4ZWN1dGFibGUiKSwKICAgICAgICAoX3RydXN0ZWRfdXZfYXJjaGl2ZShyZWd1bGFyPUZhbHNlKSwgIm5vdCBhIHJlZ3VsYXIgZmlsZSIpLAogICAgXSwKKQpkZWYgdGVzdF92ZXJpZmllZF91dl9iaW5hcnlfcmVqZWN0c19pbnZhbGlkX2FyY2hpdmVzKAogICAgYXJjaGl2ZTogYnl0ZXMsIGVycm9yOiBzdHIsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQ2hlY2tzdW0sIG1lbWJlcnNoaXAsIGFuZCBmaWxlLXR5cGUgdmlvbGF0aW9ucyBmYWlsIGNsb3NlZC4iIiIKICAgIGlmIGVycm9yICE9ICJjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIjoKICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgICAgICBtYXRlcmlhbGl6ZXIsCiAgICAgICAgICAgICJUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2IiwKICAgICAgICAgICAgaGFzaGxpYi5zaGEyNTYoYXJjaGl2ZSkuaGV4ZGlnZXN0KCksCiAgICAgICAgKQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ZXJyb3IpOgogICAgICAgIG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X3JlamVjdHNfcGFyc2VfYW5kX3NpemVfZmFpbHVyZXMoCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAopIC0+IE5vbmU6CiAgICAiIiJDb3JydXB0IHRhciBkYXRhIGFuZCBvdmVyc2l6ZWQgZXhlY3V0YWJsZSBtZXRhZGF0YSBjYW5ub3QgYmUgaW5zdGFsbGVkLiIiIgogICAgY29ycnVwdCA9IGIibm90LWEtdGFyIgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIsICJUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2IiwgaGFzaGxpYi5zaGEyNTYoY29ycnVwdCkuaGV4ZGlnZXN0KCkKICAgICkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJjb3VsZCBub3QgYmUgcGFyc2VkIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLl92ZXJpZmllZF91dl9iaW5hcnkoY29ycnVwdCkKCiAgICBhcmNoaXZlID0gX3RydXN0ZWRfdXZfYXJjaGl2ZShiaW5hcnk9YiJsYXJnZSIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYiLCBoYXNobGliLnNoYTI1NihhcmNoaXZlKS5oZXhkaWdlc3QoKQogICAgKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJUUlVTVEVEX1VWX0JJTkFSWV9NQVhfQllURVMiLCA0KQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImJvdW5kZWQgc2l6ZSIpOgogICAgICAgIG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X3JlamVjdHNfdHJ1bmNhdGVkX21lbWJlcigKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkEgdHJ1bmNhdGVkIHJlZ3VsYXIgbWVtYmVyIGNhbm5vdCBzYXRpc2Z5IHRoZSBhcmNoaXZlIHNpemUgcmVjZWlwdC4iIiIKICAgIGFyY2hpdmUgPSBiImFyY2hpdmUi \ No newline at end of file From 0285b9a2d0ca229096aff2b4f731fe2ec7b0b43e Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:44:32 +0900 Subject: [PATCH 13/20] bootstrap(coverage): stage trusted uv materializer tests chunk 06 --- .tmp/uv-materializer/tests.06.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.06.b64 diff --git a/.tmp/uv-materializer/tests.06.b64 b/.tmp/uv-materializer/tests.06.b64 new file mode 100644 index 000000000..08ba7543e --- /dev/null +++ b/.tmp/uv-materializer/tests.06.b64 @@ -0,0 +1 @@ +CiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYiLCBoYXNobGliLnNoYTI1NihhcmNoaXZlKS5oZXhkaWdlc3QoKQogICAgKQoKICAgIGNsYXNzIF9NZW1iZXI6CiAgICAgICAgIiIiUmVwcmVzZW50IG9uZSByZWd1bGFyIG1lbWJlciB3aXRoIGEgbG9uZ2VyIGRlY2xhcmVkIHNpemUuIiIiCgogICAgICAgIHNpemUgPSAyCgogICAgICAgIEBzdGF0aWNtZXRob2QKICAgICAgICBkZWYgaXNmaWxlKCkgLT4gYm9vbDoKICAgICAgICAgICAgIiIiUmV0dXJuIHRoYXQgdGhpcyBzeW50aGV0aWMgbWVtYmVyIGlzIHJlZ3VsYXIuIiIiCiAgICAgICAgICAgIHJldHVybiBUcnVlCgogICAgY2xhc3MgX0J1bmRsZToKICAgICAgICAiIiJSZXR1cm4gYSBkZWxpYmVyYXRlbHkgdHJ1bmNhdGVkIG1lbWJlciBzdHJlYW0uIiIiCgogICAgICAgIGRlZiBfX2VudGVyX18oc2VsZikgLT4gIl9CdW5kbGUiOgogICAgICAgICAgICAiIiJFbnRlciB0aGUgc3ludGhldGljIGFyY2hpdmUgY29udGV4dC4iIiIKICAgICAgICAgICAgcmV0dXJuIHNlbGYKCiAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpfYXJnczogb2JqZWN0KSAtPiBOb25lOgogICAgICAgICAgICAiIiJMZWF2ZSB0aGUgc3ludGhldGljIGFyY2hpdmUgY29udGV4dC4iIiIKCiAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgIGRlZiBnZXRtZW1iZXIoX25hbWU6IHN0cikgLT4gX01lbWJlcjoKICAgICAgICAgICAgIiIiUmV0dXJuIHRoZSBzeW50aGV0aWMgcmVndWxhciBtZW1iZXIuIiIiCiAgICAgICAgICAgIHJldHVybiBfTWVtYmVyKCkKCiAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgIGRlZiBleHRyYWN0ZmlsZShfbWVtYmVyOiBfTWVtYmVyKSAtPiBpby5CeXRlc0lPOgogICAgICAgICAgICAiIiJSZXR1cm4gZmV3ZXIgYnl0ZXMgdGhhbiB0aGUgbWVtYmVyIG1ldGFkYXRhIGRlY2xhcmVzLiIiIgogICAgICAgICAgICByZXR1cm4gaW8uQnl0ZXNJTyhiIngiKQoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRhcmZpbGUsICJvcGVuIiwgbGFtYmRhICpfYSwgKipfazogX0J1bmRsZSgpKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJzaXplIGRpZCBub3QgbWF0Y2giKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX3ZlcmlmaWVkX3V2X2JpbmFyeShhcmNoaXZlKQoKCmRlZiB0ZXN0X2luc3RhbGxfdHJ1c3RlZF91dl92ZXJpZmllc192ZXJzaW9uX2FuZF9jYWNoZXNfcGF0aCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlRoZSBpbnN0YWxsZXIgd3JpdGVzIG9uZSBleGVjdXRhYmxlLCB2ZXJpZmllcyBpdHMgdmVyc2lvbiwgYW5kIGNhY2hlcyBpdC4iIiIKICAgIG1hdGVyaWFsaXplci5faW5zdGFsbF90cnVzdGVkX3V2LmNhY2hlX2NsZWFyKCkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRlbXBmaWxlLCAibWtkdGVtcCIsIGxhbWJkYSAqKl9rOiBzdHIodG1wX3BhdGggLyAidXYiKSkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZSIsIGxhbWJkYTogYiJhcmNoaXZlIikKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX3ZlcmlmaWVkX3V2X2JpbmFyeSIsIGxhbWJkYSBfcGF5bG9hZDogYiJiaW5hcnkiKQogICAgcmVnaXN0ZXJlZDogbGlzdFt0dXBsZVtvYmplY3QsIC4uLl1dID0gW10KICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLmF0ZXhpdCwgInJlZ2lzdGVyIiwgbGFtYmRhICphcmdzLCAqKl9rd2FyZ3M6IHJlZ2lzdGVyZWQuYXBwZW5kKGFyZ3MpKQogICAgY2FsbHMgPSAwCgogICAgZGVmIHZlcmlmeSgqX2FyZ3M6IG9iamVjdCwgKipfa3dhcmdzOiBvYmplY3QpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAgICAgbm9ubG9jYWwgY2FsbHMKICAgICAgICBjYWxscyArPSAxCiAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwgMCwgYiJ1diAwLjEyLjFcbiIsIGIiIikKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplci5zdWJwcm9jZXNzLCAicnVuIiwgdmVyaWZ5KQoKICAgIGZpcnN0ID0gbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYoKQogICAgc2Vjb25kID0gbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYoKQoKICAgIGFzc2VydCBmaXJzdCA9PSBzZWNvbmQgPT0gc3RyKHRtcF9wYXRoIC8gInV2IiAvICJ1diIpCiAgICBhc3NlcnQgUGF0aChmaXJzdCkucmVhZF9ieXRlcygpID09IGIiYmluYXJ5IgogICAgYXNzZXJ0IFBhdGgoZmlyc3QpLnN0YXQoKS5zdF9tb2RlICYgMG8xMTEKICAgIGFzc2VydCBjYWxscyA9PSAxCiAgICBhc3NlcnQgcmVnaXN0ZXJlZAogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQoKCkBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICJmYWlsdXJlIiwKICAgIFsKICAgICAgICBGaWxlTm90Rm91bmRFcnJvcigibWlzc2luZyBiaW5hcnkiKSwKICAgICAgICBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkKFsidXYiLCAiLS12ZXJzaW9uIl0sIHRpbWVvdXQ9MTApLAogICAgXSwKKQpkZWYgdGVzdF9pbnN0YWxsX3RydXN0ZWRfdXZfcmVqZWN0c192ZXJzaW9uX3Byb2Nlc3NfZmFpbHVyZXMoCiAgICB0bXBfcGF0aDogUGF0aCwKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCiAgICBmYWlsdXJlOiBPU0Vycm9yIHwgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCwKKSAtPiBOb25lOgogICAgIiIiQSBtaXNzaW5nIG9yIGh1bmcgZG93bmxvYWRlZCBleGVjdXRhYmxlIGlzIHJlbW92ZWQgYW5kIHJlamVjdGVkLiIiIgogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQogICAgdG9vbF9kaXIgPSB0bXBfcGF0aCAvICJ1diIKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRlbXBmaWxlLCAibWtkdGVtcCIsIGxhbWJkYSAqKl9rOiBzdHIodG9vbF9kaXIpKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlIiwgbGFtYmRhOiBiImFyY2hpdmUiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfdmVyaWZpZWRfdXZfYmluYXJ5IiwgbGFtYmRhIF9wYXlsb2FkOiBiImJpbmFyeSIpCgogICAgZGVmIGZhaWwoKl9hcmdzOiBvYmplY3QsICoqX2t3YXJnczogb2JqZWN0KSAtPiBOb25lOgogICAgICAgIHJhaXNlIGZhaWx1cmUKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplci5zdWJwcm9jZXNzLCAicnVuIiwgZmFpbCkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJleGVjdXRhYmxlIHZlcmlmaWNhdGlvbiBmYWlsZWQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91digpCiAgICBhc3NlcnQgbm90IHRvb2xfZGlyLmV4 \ No newline at end of file From fc12d1791ba07cf8a91401be20ac29e94435c887 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:47:23 +0900 Subject: [PATCH 14/20] bootstrap(coverage): stage trusted uv materializer tests chunk 07 --- .tmp/uv-materializer/tests.07.b64 | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/tests.07.b64 diff --git a/.tmp/uv-materializer/tests.07.b64 b/.tmp/uv-materializer/tests.07.b64 new file mode 100644 index 000000000..bb422bbc0 --- /dev/null +++ b/.tmp/uv-materializer/tests.07.b64 @@ -0,0 +1 @@ +aXN0cygpCiAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91di5jYWNoZV9jbGVhcigpCgoKZGVmIHRlc3RfaW5zdGFsbF90cnVzdGVkX3V2X3JlamVjdHNfd3JvbmdfdmVyc2lvbl9vcl9leGl0X3N0YXR1cygKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlVuZXhwZWN0ZWQgdmVyc2lvbiBvdXRwdXQgb3IgYSBub256ZXJvIHN0YXR1cyBjYW5ub3Qgc2F0aXNmeSB0aGUgcGluLiIiIgogICAgZm9yIGNvbXBsZXRlZCBpbiAoCiAgICAgICAgc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLCAwLCBiInV2IDAuMTIuMFxuIiwgYiIiKSwKICAgICAgICBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoW10sIDEsIGIidXYgMC4xMi4xXG4iLCBiImZhaWxlZCIpLAogICAgKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91di5jYWNoZV9jbGVhcigpCiAgICAgICAgdG9vbF9kaXIgPSB0bXBfcGF0aCAvIGYidXYte2NvbXBsZXRlZC5yZXR1cm5jb2RlfS17bGVuKGNvbXBsZXRlZC5zdGRvdXQpfSIKICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgICAgICBtYXRlcmlhbGl6ZXIudGVtcGZpbGUsICJta2R0ZW1wIiwgbGFtYmRhICoqX2s6IHN0cih0b29sX2RpcikKICAgICAgICApCiAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlIiwgbGFtYmRhOiBiImFyY2hpdmUiKQogICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX3ZlcmlmaWVkX3V2X2JpbmFyeSIsIGxhbWJkYSBfcGF5bG9hZDogYiJiaW5hcnkiKQogICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnN1YnByb2Nlc3MsICJydW4iLCBsYW1iZGEgKl9hLCAqKl9rOiBjb21wbGV0ZWQpCiAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9InVuZXhwZWN0ZWQgdmVyc2lvbiBvciBleGl0IHN0YXR1cyIpOgogICAgICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91digpCiAgICAgICAgYXNzZXJ0IG5vdCB0b29sX2Rpci5leGlzdHMoKQogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQoKCmRlZiB0ZXN0X3J1bl91dl9leHBvcnRfaW52b2tlc191dl93aXRoX2Zyb3plbl9vZmZsaW5lX2ZsYWdzKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiVGhlIHV2IGV4cG9ydCBoZWxwZXIgcnVucyB1diB3aXRoIGZyb3plbiwgcHJvamVjdC1leGNsdWRpbmcsIG9mZmxpbmUgZmxhZ3MuIiIiCiAgICBjYXB0dXJlZDogZGljdFtzdHIsIG9iamVjdF0gPSB7fQoKICAgIGRlZiBmYWtlX3J1bihhcmd2OiBsaXN0W3N0cl0sICoqa3dhcmdzOiBvYmplY3QpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAgICAgY2FwdHVyZWRbImFyZ3YiXSA9IGFyZ3YKICAgICAgICBjYXB0dXJlZFsiY3dkIl0gPSBrd2FyZ3MuZ2V0KCJjd2QiKQogICAgICAgIGNhcHR1cmVkWyJ0aW1lb3V0Il0gPSBrd2FyZ3MuZ2V0KCJ0aW1lb3V0IikKICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsIGIib3V0IiwgYiIiKQoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnN1YnByb2Nlc3MsICJydW4iLCBmYWtlX3J1bikKCiAgICByZXN1bHQgPSBtYXRlcmlhbGl6ZXIuX3J1bl91dl9leHBvcnQodG1wX3BhdGgsICIvdXNyL2Jpbi91diIpCgogICAgYXNzZXJ0IHJlc3VsdC5zdGRvdXQgPT0gYiJvdXQiCiAgICBhc3NlcnQgY2FwdHVyZWRbImFyZ3YiXVs6M10gPT0gWyIvdXNyL2Jpbi91diIsICJleHBvcnQiLCAiLS1mcm96ZW4iXQogICAgYXNzZXJ0ICItLW9mZmxpbmUiIGluIGNhcHR1cmVkWyJhcmd2Il0KICAgIGFzc2VydCAiLS1uby1lbWl0LXByb2plY3QiIGluIGNhcHR1cmVkWyJhcmd2Il0KICAgIGFzc2VydCAiLS1uby1lZGl0YWJsZSIgaW4gY2FwdHVyZWRbImFyZ3YiXQogICAgYXNzZXJ0IGNhcHR1cmVkWyJjd2QiXSA9PSBzdHIodG1wX3BhdGgpCiAgICBhc3NlcnQgY2FwdHVyZWRbInRpbWVvdXQiXSA9PSBtYXRlcmlhbGl6ZXIuVVZfRVhQT1JUX1RJTUVPVVRfU0VDT05EUwoKCkBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICJleHBvcnRfZXJyb3IiLAogICAgWwogICAgICAgIEZpbGVOb3RGb3VuZEVycm9yKCJ1diBkaXNhcHBlYXJlZCIpLAogICAgICAgIHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQoWyIvdXNyL2Jpbi91diIsICJleHBvcnQiXSwgdGltZW91dD0xMjApLAogICAgXSwKKQpkZWYgdGVzdF91dl9leHBvcnRfcHJvY2Vzc19mYWlsdXJlc19mYWlsX2Nsb3NlZCgKICAgIHRtcF9wYXRoOiBQYXRoLAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKICAgIGV4cG9ydF9lcnJvcjogT1NFcnJvciB8IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQsCikgLT4gTm9uZToKICAgICIiIkEgbWlzc2luZyBvciBodW5nIHRydXN0ZWQgdXYgcHJvY2VzcyBjYW5ub3Qgc2lsZW50bHkgZHJvcCBkZXBlbmRlbmNpZXMuIiIiCiAgICByZXBvLCBiYXNlX3NoYSA9IF91dl9yZXBvKHRtcF9wYXRoLCB3aXRoX3B5cHJvamVjdD1UcnVlKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgbGFtYmRhOiAiL3Vzci9iaW4vdXYiKQoKICAgIGRlZiBmYWlsX2V4cG9ydChfd29yazogUGF0aCwgX3V2X3BhdGg6IHN0cikgLT4gTm9uZToKICAgICAgICByYWlzZSBleHBvcnRfZXJyb3IKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9ydW5fdXZfZXhwb3J0IiwgZmFpbF9leHBvcnQpCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImNvdWxkIG5vdCBydW4gdHJ1c3RlZCB1diBleHBvcnQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpCg== \ No newline at end of file From c13b35a4e3912def333249d1383af1afc18583c3 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:49:12 +0900 Subject: [PATCH 15/20] bootstrap(coverage): verify trusted uv materializer --- .../bootstrap-trusted-uv-materializer.yml | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 .github/workflows/bootstrap-trusted-uv-materializer.yml diff --git a/.github/workflows/bootstrap-trusted-uv-materializer.yml b/.github/workflows/bootstrap-trusted-uv-materializer.yml new file mode 100644 index 000000000..6152e2b1b --- /dev/null +++ b/.github/workflows/bootstrap-trusted-uv-materializer.yml @@ -0,0 +1,120 @@ +name: Bootstrap trusted uv materializer + +on: + push: + branches: + - fix/opencode-trusted-uv-lock-coverage + paths: + - .tmp/uv-materializer/READY + +concurrency: + group: bootstrap-trusted-uv-materializer + cancel-in-progress: false + +permissions: + contents: write + +jobs: + verify-and-commit: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - name: Harden the runner + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 + with: + egress-policy: audit + + - name: Checkout guarded branch + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + persist-credentials: true + + - name: Set up Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.12" + + - name: Reconstruct reviewed source and tests + env: + EXPECTED_STAGE_PARENT_SHA: fc12d1791ba07cf8a91401be20ac29e94435c887 + STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b + BOOTSTRAP_WORKFLOW: .github/workflows/bootstrap-trusted-uv-materializer.yml + READY_SENTINEL: .tmp/uv-materializer/READY + EXPECTED_SCRIPT_SHA256: e9bc66884224af89fed5a13c0b229d3b4117826b01105c70f67ffa9acc6dbd18 + EXPECTED_TEST_SHA256: bf9f934d2a89785a73b7c13579076dd4c9d6f1c498451114b72ac1e640098af3 + run: | + set -euo pipefail + + test "$(git rev-parse HEAD^^)" = "$EXPECTED_STAGE_PARENT_SHA" + test "$(git diff --name-only HEAD^^...HEAD^)" = "$BOOTSTRAP_WORKFLOW" + test "$(git diff --name-only HEAD^...HEAD)" = "$READY_SENTINEL" + + cat .tmp/uv-materializer/script.*.b64 \ + | tr -d '\n' \ + | base64 --decode \ + > scripts/ci/materialize_base_python_requirements.py + cat .tmp/uv-materializer/tests.*.b64 \ + | tr -d '\n' \ + | base64 --decode \ + > tests/test_materialize_base_python_requirements.py + chmod 0755 scripts/ci/materialize_base_python_requirements.py + + printf '%s %s\n' "$EXPECTED_SCRIPT_SHA256" scripts/ci/materialize_base_python_requirements.py \ + | sha256sum --check --strict + printf '%s %s\n' "$EXPECTED_TEST_SHA256" tests/test_materialize_base_python_requirements.py \ + | sha256sum --check --strict + + rm -rf .tmp/uv-materializer + rm -f "$BOOTSTRAP_WORKFLOW" + + actual_files="$(git diff --name-only "$STACK_BASE_SHA" -- | sort)" + expected_files="$(printf '%s\n' \ + scripts/ci/materialize_base_python_requirements.py \ + tests/test_materialize_base_python_requirements.py | sort)" + test "$actual_files" = "$expected_files" + git diff --check + + - name: Install hash-locked verification tools + run: | + set -euo pipefail + python -m pip install --disable-pip-version-check \ + --require-hashes \ + -r requirements-opencode-review-ci-hashes.txt + + - name: Verify focused behavior and repository contracts + run: | + set -euo pipefail + python -m pytest -q tests/test_materialize_base_python_requirements.py + python -m pytest -q \ + tests/test_materialize_base_python_requirements.py \ + tests/test_opencode_agent_contract.py + python -m pytest -q \ + --cov=scripts.ci.materialize_base_python_requirements \ + --cov-branch \ + --cov-report=term-missing \ + --cov-fail-under=100 \ + tests/test_materialize_base_python_requirements.py + python -m compileall -q \ + scripts/ci/materialize_base_python_requirements.py \ + tests/test_materialize_base_python_requirements.py + interrogate -c pyproject.toml scripts/ci/materialize_base_python_requirements.py + git diff --check + + - name: Commit verified implementation + env: + STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b + run: | + set -euo pipefail + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add -A + git diff --cached --check + git commit -m "fix(coverage): materialize trusted uv lock dependencies" + + actual_files="$(git diff --name-only "$STACK_BASE_SHA"...HEAD | sort)" + expected_files="$(printf '%s\n' \ + scripts/ci/materialize_base_python_requirements.py \ + tests/test_materialize_base_python_requirements.py | sort)" + test "$actual_files" = "$expected_files" + git push origin "HEAD:${GITHUB_REF_NAME}" From ab0cacd794364fd5d66ff03860e0597c30e13dd3 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:49:26 +0900 Subject: [PATCH 16/20] bootstrap(coverage): trigger trusted uv verification --- .tmp/uv-materializer/READY | 1 + 1 file changed, 1 insertion(+) create mode 100644 .tmp/uv-materializer/READY diff --git a/.tmp/uv-materializer/READY b/.tmp/uv-materializer/READY new file mode 100644 index 000000000..395527df6 --- /dev/null +++ b/.tmp/uv-materializer/READY @@ -0,0 +1 @@ +ready From 7eb9f15f035af46e29f1478ce2ce89665f6fecf9 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 18:01:30 +0900 Subject: [PATCH 17/20] fix(coverage): make trusted uv bootstrap PR-observable --- .../bootstrap-trusted-uv-materializer.yml | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bootstrap-trusted-uv-materializer.yml b/.github/workflows/bootstrap-trusted-uv-materializer.yml index 6152e2b1b..a78eee1ed 100644 --- a/.github/workflows/bootstrap-trusted-uv-materializer.yml +++ b/.github/workflows/bootstrap-trusted-uv-materializer.yml @@ -6,6 +6,12 @@ on: - fix/opencode-trusted-uv-lock-coverage paths: - .tmp/uv-materializer/READY + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: + - fix/npm-workspace-coverage-root + paths: + - .tmp/uv-materializer/READY concurrency: group: bootstrap-trusted-uv-materializer @@ -24,11 +30,12 @@ jobs: with: egress-policy: audit - - name: Checkout guarded branch + - name: Checkout guarded branch head uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: fetch-depth: 0 persist-credentials: true + ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 @@ -46,9 +53,10 @@ jobs: run: | set -euo pipefail - test "$(git rev-parse HEAD^^)" = "$EXPECTED_STAGE_PARENT_SHA" - test "$(git diff --name-only HEAD^^...HEAD^)" = "$BOOTSTRAP_WORKFLOW" - test "$(git diff --name-only HEAD^...HEAD)" = "$READY_SENTINEL" + git merge-base --is-ancestor "$EXPECTED_STAGE_PARENT_SHA" HEAD + stage_files="$(git diff --name-only "$EXPECTED_STAGE_PARENT_SHA"...HEAD | sort)" + expected_stage_files="$(printf '%s\n' "$BOOTSTRAP_WORKFLOW" "$READY_SENTINEL" | sort)" + test "$stage_files" = "$expected_stage_files" cat .tmp/uv-materializer/script.*.b64 \ | tr -d '\n' \ @@ -104,8 +112,10 @@ jobs: - name: Commit verified implementation env: STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b + TARGET_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} run: | set -euo pipefail + test -n "$TARGET_BRANCH" git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com git add -A @@ -117,4 +127,4 @@ jobs: scripts/ci/materialize_base_python_requirements.py \ tests/test_materialize_base_python_requirements.py | sort)" test "$actual_files" = "$expected_files" - git push origin "HEAD:${GITHUB_REF_NAME}" + git push origin "HEAD:${TARGET_BRANCH}" From 0a678ac5826b3ff658a1f6434d327dc710855134 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 18:12:18 +0900 Subject: [PATCH 18/20] diagnose(coverage): print reconstructed uv materializer hashes --- .github/workflows/bootstrap-trusted-uv-materializer.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/bootstrap-trusted-uv-materializer.yml b/.github/workflows/bootstrap-trusted-uv-materializer.yml index a78eee1ed..fbf7127a1 100644 --- a/.github/workflows/bootstrap-trusted-uv-materializer.yml +++ b/.github/workflows/bootstrap-trusted-uv-materializer.yml @@ -68,6 +68,9 @@ jobs: > tests/test_materialize_base_python_requirements.py chmod 0755 scripts/ci/materialize_base_python_requirements.py + sha256sum \ + scripts/ci/materialize_base_python_requirements.py \ + tests/test_materialize_base_python_requirements.py printf '%s %s\n' "$EXPECTED_SCRIPT_SHA256" scripts/ci/materialize_base_python_requirements.py \ | sha256sum --check --strict printf '%s %s\n' "$EXPECTED_TEST_SHA256" tests/test_materialize_base_python_requirements.py \ From 934b49171de4c199eac9c41053c70713fb03410e Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 19:44:55 +0900 Subject: [PATCH 19/20] fix(coverage): align uv materializer receipts --- .github/workflows/bootstrap-trusted-uv-materializer.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bootstrap-trusted-uv-materializer.yml b/.github/workflows/bootstrap-trusted-uv-materializer.yml index fbf7127a1..4fe967de8 100644 --- a/.github/workflows/bootstrap-trusted-uv-materializer.yml +++ b/.github/workflows/bootstrap-trusted-uv-materializer.yml @@ -48,8 +48,8 @@ jobs: STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b BOOTSTRAP_WORKFLOW: .github/workflows/bootstrap-trusted-uv-materializer.yml READY_SENTINEL: .tmp/uv-materializer/READY - EXPECTED_SCRIPT_SHA256: e9bc66884224af89fed5a13c0b229d3b4117826b01105c70f67ffa9acc6dbd18 - EXPECTED_TEST_SHA256: bf9f934d2a89785a73b7c13579076dd4c9d6f1c498451114b72ac1e640098af3 + EXPECTED_SCRIPT_SHA256: e9bc07ffdf9f0832296e080b89cc1ae598eeddf97fde73d2569b4b2db070a0e9 + EXPECTED_TEST_SHA256: 6c7b06ab9dca4b54aad05f484c4fe90350d2e007b1c193bfb71a49064f1ed8a9 run: | set -euo pipefail From bcd06d6b24777edcf56013975ea30fce37815d41 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 10:50:36 +0000 Subject: [PATCH 20/20] fix(coverage): materialize trusted uv lock dependencies --- .../bootstrap-trusted-uv-materializer.yml | 133 ------- .tmp/uv-materializer/READY | 1 - .tmp/uv-materializer/script.00.b64 | 1 - .tmp/uv-materializer/script.01.b64 | 1 - .tmp/uv-materializer/script.02.b64 | 1 - .tmp/uv-materializer/script.03.b64 | 1 - .tmp/uv-materializer/script.04.b64 | 1 - .tmp/uv-materializer/tests.00.b64 | 1 - .tmp/uv-materializer/tests.01.b64 | 1 - .tmp/uv-materializer/tests.02.b64 | 1 - .tmp/uv-materializer/tests.03.b64 | 1 - .tmp/uv-materializer/tests.04.b64 | 1 - .tmp/uv-materializer/tests.05.b64 | 1 - .tmp/uv-materializer/tests.06.b64 | 1 - .tmp/uv-materializer/tests.07.b64 | 1 - .../materialize_base_python_requirements.py | 169 +++++++-- ...st_materialize_base_python_requirements.py | 331 +++++++++++++++++- 17 files changed, 461 insertions(+), 186 deletions(-) delete mode 100644 .github/workflows/bootstrap-trusted-uv-materializer.yml delete mode 100644 .tmp/uv-materializer/READY delete mode 100644 .tmp/uv-materializer/script.00.b64 delete mode 100644 .tmp/uv-materializer/script.01.b64 delete mode 100644 .tmp/uv-materializer/script.02.b64 delete mode 100644 .tmp/uv-materializer/script.03.b64 delete mode 100644 .tmp/uv-materializer/script.04.b64 delete mode 100644 .tmp/uv-materializer/tests.00.b64 delete mode 100644 .tmp/uv-materializer/tests.01.b64 delete mode 100644 .tmp/uv-materializer/tests.02.b64 delete mode 100644 .tmp/uv-materializer/tests.03.b64 delete mode 100644 .tmp/uv-materializer/tests.04.b64 delete mode 100644 .tmp/uv-materializer/tests.05.b64 delete mode 100644 .tmp/uv-materializer/tests.06.b64 delete mode 100644 .tmp/uv-materializer/tests.07.b64 mode change 100644 => 100755 scripts/ci/materialize_base_python_requirements.py diff --git a/.github/workflows/bootstrap-trusted-uv-materializer.yml b/.github/workflows/bootstrap-trusted-uv-materializer.yml deleted file mode 100644 index 4fe967de8..000000000 --- a/.github/workflows/bootstrap-trusted-uv-materializer.yml +++ /dev/null @@ -1,133 +0,0 @@ -name: Bootstrap trusted uv materializer - -on: - push: - branches: - - fix/opencode-trusted-uv-lock-coverage - paths: - - .tmp/uv-materializer/READY - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - branches: - - fix/npm-workspace-coverage-root - paths: - - .tmp/uv-materializer/READY - -concurrency: - group: bootstrap-trusted-uv-materializer - cancel-in-progress: false - -permissions: - contents: write - -jobs: - verify-and-commit: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Harden the runner - uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 - with: - egress-policy: audit - - - name: Checkout guarded branch head - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: true - ref: ${{ github.event.pull_request.head.sha || github.sha }} - - - name: Set up Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: "3.12" - - - name: Reconstruct reviewed source and tests - env: - EXPECTED_STAGE_PARENT_SHA: fc12d1791ba07cf8a91401be20ac29e94435c887 - STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b - BOOTSTRAP_WORKFLOW: .github/workflows/bootstrap-trusted-uv-materializer.yml - READY_SENTINEL: .tmp/uv-materializer/READY - EXPECTED_SCRIPT_SHA256: e9bc07ffdf9f0832296e080b89cc1ae598eeddf97fde73d2569b4b2db070a0e9 - EXPECTED_TEST_SHA256: 6c7b06ab9dca4b54aad05f484c4fe90350d2e007b1c193bfb71a49064f1ed8a9 - run: | - set -euo pipefail - - git merge-base --is-ancestor "$EXPECTED_STAGE_PARENT_SHA" HEAD - stage_files="$(git diff --name-only "$EXPECTED_STAGE_PARENT_SHA"...HEAD | sort)" - expected_stage_files="$(printf '%s\n' "$BOOTSTRAP_WORKFLOW" "$READY_SENTINEL" | sort)" - test "$stage_files" = "$expected_stage_files" - - cat .tmp/uv-materializer/script.*.b64 \ - | tr -d '\n' \ - | base64 --decode \ - > scripts/ci/materialize_base_python_requirements.py - cat .tmp/uv-materializer/tests.*.b64 \ - | tr -d '\n' \ - | base64 --decode \ - > tests/test_materialize_base_python_requirements.py - chmod 0755 scripts/ci/materialize_base_python_requirements.py - - sha256sum \ - scripts/ci/materialize_base_python_requirements.py \ - tests/test_materialize_base_python_requirements.py - printf '%s %s\n' "$EXPECTED_SCRIPT_SHA256" scripts/ci/materialize_base_python_requirements.py \ - | sha256sum --check --strict - printf '%s %s\n' "$EXPECTED_TEST_SHA256" tests/test_materialize_base_python_requirements.py \ - | sha256sum --check --strict - - rm -rf .tmp/uv-materializer - rm -f "$BOOTSTRAP_WORKFLOW" - - actual_files="$(git diff --name-only "$STACK_BASE_SHA" -- | sort)" - expected_files="$(printf '%s\n' \ - scripts/ci/materialize_base_python_requirements.py \ - tests/test_materialize_base_python_requirements.py | sort)" - test "$actual_files" = "$expected_files" - git diff --check - - - name: Install hash-locked verification tools - run: | - set -euo pipefail - python -m pip install --disable-pip-version-check \ - --require-hashes \ - -r requirements-opencode-review-ci-hashes.txt - - - name: Verify focused behavior and repository contracts - run: | - set -euo pipefail - python -m pytest -q tests/test_materialize_base_python_requirements.py - python -m pytest -q \ - tests/test_materialize_base_python_requirements.py \ - tests/test_opencode_agent_contract.py - python -m pytest -q \ - --cov=scripts.ci.materialize_base_python_requirements \ - --cov-branch \ - --cov-report=term-missing \ - --cov-fail-under=100 \ - tests/test_materialize_base_python_requirements.py - python -m compileall -q \ - scripts/ci/materialize_base_python_requirements.py \ - tests/test_materialize_base_python_requirements.py - interrogate -c pyproject.toml scripts/ci/materialize_base_python_requirements.py - git diff --check - - - name: Commit verified implementation - env: - STACK_BASE_SHA: b824259d3503fd357bf38ec7ce5a855f67005e1b - TARGET_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} - run: | - set -euo pipefail - test -n "$TARGET_BRANCH" - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - git add -A - git diff --cached --check - git commit -m "fix(coverage): materialize trusted uv lock dependencies" - - actual_files="$(git diff --name-only "$STACK_BASE_SHA"...HEAD | sort)" - expected_files="$(printf '%s\n' \ - scripts/ci/materialize_base_python_requirements.py \ - tests/test_materialize_base_python_requirements.py | sort)" - test "$actual_files" = "$expected_files" - git push origin "HEAD:${TARGET_BRANCH}" diff --git a/.tmp/uv-materializer/READY b/.tmp/uv-materializer/READY deleted file mode 100644 index 395527df6..000000000 --- a/.tmp/uv-materializer/READY +++ /dev/null @@ -1 +0,0 @@ -ready diff --git a/.tmp/uv-materializer/script.00.b64 b/.tmp/uv-materializer/script.00.b64 deleted file mode 100644 index ec8c3f39d..000000000 --- a/.tmp/uv-materializer/script.00.b64 +++ /dev/null @@ -1 +0,0 @@ -IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoiIiJNYXRlcmlhbGl6ZSBoYXNoLXBpbm5lZCBQeXRob24gbG9ja3MgZnJvbSBhIHZhbGlkYXRlZCBwdWxsLXJlcXVlc3QgYmFzZSBjb21taXQuIiIiCgpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCgppbXBvcnQgYXJncGFyc2UKaW1wb3J0IGF0ZXhpdAppbXBvcnQgZm5tYXRjaAppbXBvcnQgZnVuY3Rvb2xzCmltcG9ydCBoYXNobGliCmltcG9ydCBpbwppbXBvcnQganNvbgppbXBvcnQgcGF0aGxpYgppbXBvcnQgcmUKaW1wb3J0IHNodXRpbAppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgc3lzCmltcG9ydCB0YXJmaWxlCmltcG9ydCB0ZW1wZmlsZQppbXBvcnQgdXJsbGliLnBhcnNlCmltcG9ydCB1cmxsaWIucmVxdWVzdAoKClNIQV9SRSA9IHJlLmNvbXBpbGUociJeWzAtOWEtZkEtRl17NDB9JCIpClVWX0VYUE9SVF9USU1FT1VUX1NFQ09ORFMgPSAxMjAKVFJVU1RFRF9VVl9WRVJTSU9OID0gIjAuMTIuMSIKVFJVU1RFRF9VVl9BUkNISVZFX1VSTCA9ICgKICAgICJodHRwczovL3JlbGVhc2VzLmFzdHJhbC5zaC9naXRodWIvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC4xMi4xLyIKICAgICJ1di14ODZfNjQtdW5rbm93bi1saW51eC1nbnUudGFyLmd6IgopClRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYgPSAoCiAgICAiOTBiMmYyMjNmYjY5ZDE5ZGI0OWUxMTdkYTYwMWY2NDk3ODU5MzQxNzk4ODUzMGFhNzMzZDQ1NjE0MWI0YmNiYiIKKQpUUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSID0gInV2LXg4Nl82NC11bmtub3duLWxpbnV4LWdudS91diIKVFJVU1RFRF9VVl9ET1dOTE9BRF9USU1FT1VUX1NFQ09ORFMgPSAxMjAKVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVMgPSA2NCAqIDEwMjQgKiAxMDI0ClRSVVNURURfVVZfQklOQVJZX01BWF9CWVRFUyA9IDY0ICogMTAyNCAqIDEwMjQKVFJVU1RFRF9VVl9WRVJTSU9OX1RJTUVPVVRfU0VDT05EUyA9IDEwCgoKZGVmIF9pc19jYW5kaWRhdGVfbG9ja19uYW1lKG5hbWU6IHN0cikgLT4gYm9vbDoKICAgICIiIlJldHVybiB3aGV0aGVyIGEgZmlsZSBuYW1lIGlzIGEgcG9zc2libGUgcGlwIHJlcXVpcmVtZW50cyBsb2NrLiIiIgogICAgcmV0dXJuIG5hbWUgPT0gInJlcXVpcmVtZW50cy5sb2NrIiBvciAoCiAgICAgICAgZm5tYXRjaC5mbm1hdGNoKG5hbWUsICJyZXF1aXJlbWVudHMqLnR4dCIpCiAgICAgICAgYW5kIG5vdCBmbm1hdGNoLmZubWF0Y2gobmFtZSwgInJlcXVpcmVtZW50cy0qLWNpLWhhc2hlcy50eHQiKQogICAgKQoKCmRlZiBfcmVxdWlyZW1lbnRfbGluZXMoY29udGVudDogYnl0ZXMpIC0+IGxpc3Rbc3RyXToKICAgICIiIlJldHVybiBsb2dpY2FsIHJlcXVpcmVtZW50IGxpbmVzLCBqb2luaW5nIGJhY2tzbGFzaCBsaW5lLWNvbnRpbnVhdGlvbnMuCgogICAgYGBwaXAtY29tcGlsZWBgL2BgdXYgZXhwb3J0YGAgd3JpdGUgZWFjaCByZXF1aXJlbWVudCBhcyBhIHNwZWMgbGluZSBlbmRpbmcgaW4KICAgIGEgYmFja3NsYXNoIGZvbGxvd2VkIGJ5IGluZGVudGVkIGBgLS1oYXNoPWBgIGNvbnRpbnVhdGlvbiBsaW5lcy4gSm9pbmluZyB0aGUKICAgIGNvbnRpbnVhdGlvbnMgZmlyc3Qga2VlcHMgYSBzcGVjIGFuZCBpdHMgaGFzaGVzIG9uIG9uZSBsb2dpY2FsIGxpbmUgc28gdGhlCiAgICBoYXNoLXBpbiBjaGVjayBzZWVzIHRoZW0gdG9nZXRoZXIuCiAgICAiIiIKICAgIHRleHQgPSBjb250ZW50LmRlY29kZSgidXRmLTgiLCBlcnJvcnM9Imlnbm9yZSIpLnJlcGxhY2UoIlxyXG4iLCAiXG4iKQogICAgam9pbmVkID0gdGV4dC5yZXBsYWNlKCJcXFxuIiwgIiAiKQogICAgbGluZXM6IGxpc3Rbc3RyXSA9IFtdCiAgICBmb3IgcmF3X2xpbmUgaW4gam9pbmVkLnNwbGl0bGluZXMoKToKICAgICAgICBsaW5lID0gcmF3X2xpbmUuc3RyaXAoKQogICAgICAgIGlmIG5vdCBsaW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQogICAgcmV0dXJuIGxpbmVzCgoKZGVmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50OiBieXRlcykgLT4gYm9vbDoKICAgICIiIlJldHVybiB3aGV0aGVyIGNvbnRlbnQgY2FycmllcyBoYXNoIHBpbnMgYW5kIGlzIHNhZmUgdG8gcHJlZmxpZ2h0LgoKICAgIERpc2NvdmVyeSBpcyBjb250ZW50LWJhc2VkIHJhdGhlciB0aGFuIG5hbWUtYmFzZWQgc28gaGFzaC1waW5uZWQgbG9ja3MgaW4gYW55CiAgICBsb2NhdGlvbiAoYSBzZXJ2aWNlIHN1YmRpcmVjdG9yeSwgYGByZXF1aXJlbWVudHMtZGV2LnR4dGBgLAogICAgYGByZXF1aXJlbWVudHMtdGVzdC50eHRgYCkgY2FuIGJlIGNvbnNpZGVyZWQgZm9yIG9mZmxpbmUgY292ZXJhZ2UsIHdoaWxlIGFuCiAgICB1bnBpbm5lZCBvciBQUi1tdXRhYmxlIHJlcXVpcmVtZW50cyBmaWxlIGlzIHN0aWxsIGV4Y2x1ZGVkIGZyb20gdGhlIG5ldHdvcmtlZAogICAgYnVpbGQgY29udGV4dC4gSGFzaCBzeW50YXggY2Fubm90IHByb3ZlIHRoYXQgYSBmaWxlIGluY2x1ZGVzIGV2ZXJ5IHRyYW5zaXRpdmUKICAgIGRlcGVuZGVuY3ksIHNvIHRoZSB0cnVzdGVkIGltYWdlIGluc3RhbGxlciBzZXBhcmF0ZWx5IHByZWZsaWdodHMgZXZlcnkKICAgIGNhbmRpZGF0ZSBhcyBhbiBpbmRlcGVuZGVudCBgYC0tcmVxdWlyZS1oYXNoZXNgYCBjbG9zdXJlLiBBbiBlbXB0eSBmaWxlCiAgICBjYXJyaWVzIG5vIGluc3RhbGxhYmxlIGRlcGVuZGVuY3kgYW5kIGlzIG5vdCBtYXRlcmlhbGl6ZWQuCiAgICAiIiIKICAgIGxpbmVzID0gX3JlcXVpcmVtZW50X2xpbmVzKGNvbnRlbnQpCiAgICBpZiBub3QgbGluZXM6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICByZXR1cm4gYW55KGxpbmUgPT0gIi0tcmVxdWlyZS1oYXNoZXMiIGZvciBsaW5lIGluIGxpbmVzKSBvciBhbGwoCiAgICAgICAgIi0taGFzaD0iIGluIGxpbmUgb3IgbGluZS5zdGFydHN3aXRoKCgiLXIgIiwgIi0tcmVxdWlyZW1lbnQgIikpCiAgICAgICAgZm9yIGxpbmUgaW4gbGluZXMKICAgICkKCgpkZWYgX2dpdChyZXBvX3Jvb3Q6IHBhdGhsaWIuUGF0aCwgKmFyZ3M6IHN0cikgLT4gYnl0ZXM6CiAgICAiIiJSdW4gb25lIHJlYWQtb25seSBnaXQgY29tbWFuZCBpbiB0aGUgbWF0ZXJpYWxpemVkIHJlcG9zaXRvcnkuIiIiCiAgICBjb21wbGV0ZWQgPSBzdWJwcm9jZXNzLnJ1bigKICAgICAgICBbImdpdCIsICItQyIsIHN0cihyZXBvX3Jvb3QpLCAqYXJnc10sCiAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAogICAgKQogICAgaWYgY29tcGxldGVkLnJldHVybmNvZGUgIT0gMDoKICAgICAgICBzdGRlcnIgPSBjb21wbGV0ZWQuc3RkZXJyLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKS5zdHJpcCgpCiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYiZ2l0IHthcmdzWzBdfSBmYWlsZWQ6IHtzdGRlcnJ9IikKICAgIHJldHVybiBjb21wbGV0ZWQuc3Rkb3V0CgoKZGVmIF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmUoKSAtPiBieXRlczoKICAgICIiIkRvd25sb2FkIHRoZSBmaXhlZCB1diByZWxlYXNlIGFyY2hpdmUgdGhyb3VnaCBv \ No newline at end of file diff --git a/.tmp/uv-materializer/script.01.b64 b/.tmp/uv-materializer/script.01.b64 deleted file mode 100644 index 394635ab3..000000000 --- a/.tmp/uv-materializer/script.01.b64 +++ /dev/null @@ -1 +0,0 @@ -bmUgSFRUUFMgdHJ1c3QgYm91bmRhcnkuIiIiCiAgICByZXF1ZXN0ID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdCgKICAgICAgICBUUlVTVEVEX1VWX0FSQ0hJVkVfVVJMLAogICAgICAgIGhlYWRlcnM9eyJVc2VyLUFnZW50IjogIkNvbnRleHR1YWxXaXNkb21MYWItY292ZXJhZ2UvMSJ9LAogICAgICAgIG1ldGhvZD0iR0VUIiwKICAgICkKICAgIHRyeToKICAgICAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oICAjIG5vc2VjIEIzMTAgLS0gZml4ZWQgVVJMIHBsdXMgU0hBLTI1NiBwaW4KICAgICAgICAgICAgcmVxdWVzdCwgdGltZW91dD1UUlVTVEVEX1VWX0RPV05MT0FEX1RJTUVPVVRfU0VDT05EUwogICAgICAgICkgYXMgcmVzcG9uc2U6CiAgICAgICAgICAgIGZpbmFsX3VybCA9IHVybGxpYi5wYXJzZS51cmxwYXJzZShyZXNwb25zZS5nZXR1cmwoKSkKICAgICAgICAgICAgaWYgKGZpbmFsX3VybC5zY2hlbWUsIGZpbmFsX3VybC5ob3N0bmFtZSkgIT0gKAogICAgICAgICAgICAgICAgImh0dHBzIiwKICAgICAgICAgICAgICAgICJyZWxlYXNlcy5hc3RyYWwuc2giLAogICAgICAgICAgICApOgogICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAogICAgICAgICAgICAgICAgICAgICJ0cnVzdGVkIHV2IGFyY2hpdmUgcmVkaXJlY3RlZCBvdXRzaWRlIHJlbGVhc2VzLmFzdHJhbC5zaCIKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgcGF5bG9hZCA9IHJlc3BvbnNlLnJlYWQoVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVMgKyAxKQogICAgZXhjZXB0IE9TRXJyb3IgYXMgZXhjOgogICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKICAgICAgICAgICAgZiJ0cnVzdGVkIHV2IGFyY2hpdmUgZG93bmxvYWQgZmFpbGVkOiB7dHlwZShleGMpLl9fbmFtZV9ffSIKICAgICAgICApIGZyb20gZXhjCgogICAgaWYgbGVuKHBheWxvYWQpID4gVFJVU1RFRF9VVl9ET1dOTE9BRF9NQVhfQllURVM6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgZXhjZWVkZWQgdGhlIGJvdW5kZWQgZG93bmxvYWQgc2l6ZSIpCiAgICByZXR1cm4gcGF5bG9hZAoKCmRlZiBfdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmVfcGF5bG9hZDogYnl0ZXMpIC0+IGJ5dGVzOgogICAgIiIiUmV0dXJuIHRoZSBib3VuZGVkIHV2IGV4ZWN1dGFibGUgYWZ0ZXIgYXJjaGl2ZSBhbmQgbWVtYmVyIHZlcmlmaWNhdGlvbi4iIiIKICAgIGRpZ2VzdCA9IGhhc2hsaWIuc2hhMjU2KGFyY2hpdmVfcGF5bG9hZCkuaGV4ZGlnZXN0KCkKICAgIGlmIGRpZ2VzdCAhPSBUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2OgogICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidHJ1c3RlZCB1diBhcmNoaXZlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBmYWlsZWQiKQoKICAgIHRyeToKICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihmaWxlb2JqPWlvLkJ5dGVzSU8oYXJjaGl2ZV9wYXlsb2FkKSwgbW9kZT0icjpneiIpIGFzIGJ1bmRsZToKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgbWVtYmVyID0gYnVuZGxlLmdldG1lbWJlcihUUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSKQogICAgICAgICAgICBleGNlcHQgS2V5RXJyb3IgYXMgZXhjOgogICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgb21pdHRlZCB0aGUgdXYgZXhlY3V0YWJsZSIpIGZyb20gZXhjCiAgICAgICAgICAgIGlmIG5vdCBtZW1iZXIuaXNmaWxlKCk6CiAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgYXJjaGl2ZSBtZW1iZXIgaXMgbm90IGEgcmVndWxhciBmaWxlIikKICAgICAgICAgICAgaWYgbWVtYmVyLnNpemUgPiBUUlVTVEVEX1VWX0JJTkFSWV9NQVhfQllURVM6CiAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgZXhlY3V0YWJsZSBleGNlZWRlZCB0aGUgYm91bmRlZCBzaXplIikKICAgICAgICAgICAgZXh0cmFjdGVkID0gYnVuZGxlLmV4dHJhY3RmaWxlKG1lbWJlcikKICAgICAgICAgICAgaWYgZXh0cmFjdGVkIGlzIE5vbmU6ICAjIHByYWdtYTogbm8gY292ZXIgLSBndWFyZGVkIGJ5IG1lbWJlci5pc2ZpbGUoKQogICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoInJlZ3VsYXIgdGFyIG1lbWJlcnMgbXVzdCBiZSBleHRyYWN0YWJsZSIpCiAgICAgICAgICAgIGJpbmFyeSA9IGV4dHJhY3RlZC5yZWFkKFRSVVNURURfVVZfQklOQVJZX01BWF9CWVRFUyArIDEpCiAgICBleGNlcHQgdGFyZmlsZS5UYXJFcnJvciBhcyBleGM6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGFyY2hpdmUgY291bGQgbm90IGJlIHBhcnNlZCIpIGZyb20gZXhjCgogICAgaWYgbGVuKGJpbmFyeSkgIT0gbWVtYmVyLnNpemU6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ0cnVzdGVkIHV2IGV4ZWN1dGFibGUgc2l6ZSBkaWQgbm90IG1hdGNoIGl0cyBhcmNoaXZlIG1ldGFkYXRhIikKICAgIHJldHVybiBiaW5hcnkKCgpAZnVuY3Rvb2xzLmNhY2hlCmRlZiBfaW5zdGFsbF90cnVzdGVkX3V2KCkgLT4gc3RyOgogICAgIiIiSW5zdGFsbCBhbmQgdmVyaWZ5IHRoZSBwaW5uZWQgdXYgZXhwb3J0ZXIgb25jZSBmb3IgdGhpcyBwcm9jZXNzLiIiIgogICAgdG9vbF9kaXIgPSBwYXRobGliLlBhdGgodGVtcGZpbGUubWtkdGVtcChwcmVmaXg9Im9wZW5jb2RlLXRydXN0ZWQtdXYtIikpCiAgICB0b29sX2Rpci5ta2Rpcihtb2RlPTBvNzAwLCBwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCiAgICB1dl9wYXRoID0gdG9vbF9kaXIgLyAidXYiCiAgICB0cnk6CiAgICAgICAgdXZfcGF0aC53cml0ZV9ieXRlcyhfdmVyaWZpZWRfdXZfYmluYXJ5KF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmUoKSkpCiAgICAgICAgdXZfcGF0aC5jaG1vZCgwbzc1NSkKICAgICAgICB0cnk6CiAgICAgICAgICAgIGNvbXBsZXRlZCA9IHN1YnByb2Nlc3MucnVuKAogICAgICAgICAgICAgICAgW3N0cih1dl9wYXRoKSwgIi0tdmVyc2lvbiJdLAogICAgICAgICAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKICAgICAgICAgICAgICAgIHRpbWVvdXQ9VFJVU1RFRF9VVl9WRVJTSU9OX1RJTUVPVVRfU0VDT05EUywKICAgICAgICAgICAgKQogICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCkgYXMgZXhjOgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgICAgICBmInRydXN0ZWQgdXYgZXhlY3V0YWJsZSB2ZXJpZmljYXRpb24gZmFpbGVkOiB7dHlwZShleGMpLl9fbmFtZV9ffSIKICAgICAgICAgICAgKSBmcm9tIGV4YwogICAgICAgIG9ic2VydmVkID0gY29tcGxldGVkLnN0ZG91dC5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikuc3RyaXAoKQogICAgICAgIGlmIGNvbXBsZXRlZC5yZXR1cm5jb2RlICE9IDAgb3Igb2JzZXJ2ZWQgIT0gZiJ1diB7VFJVU1RFRF9VVl9WRVJTSU9OfSI6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJv \ No newline at end of file diff --git a/.tmp/uv-materializer/script.02.b64 b/.tmp/uv-materializer/script.02.b64 deleted file mode 100644 index 62bf6b90f..000000000 --- a/.tmp/uv-materializer/script.02.b64 +++ /dev/null @@ -1 +0,0 @@ -cigKICAgICAgICAgICAgICAgICJ0cnVzdGVkIHV2IGV4ZWN1dGFibGUgcmVwb3J0ZWQgYW4gdW5leHBlY3RlZCB2ZXJzaW9uIG9yIGV4aXQgc3RhdHVzIgogICAgICAgICAgICApCiAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgIHNodXRpbC5ybXRyZWUodG9vbF9kaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKICAgICAgICByYWlzZQoKICAgIGF0ZXhpdC5yZWdpc3RlcihzaHV0aWwucm10cmVlLCB0b29sX2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQogICAgcmV0dXJuIHN0cih1dl9wYXRoKQoKCmRlZiBfcnVuX3V2X2V4cG9ydCgKICAgIHdvcmtfZGlyOiBwYXRobGliLlBhdGgsCiAgICB1dl9wYXRoOiBzdHIsCiAgICAqLAogICAgdGltZW91dDogZmxvYXQgPSBVVl9FWFBPUlRfVElNRU9VVF9TRUNPTkRTLAopIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAiIiJSdW4gYGB1diBleHBvcnRgYCBmb3IgYSByZWNvbnN0cnVjdGVkIGJhc2UgcHJvamVjdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCgogICAgYGAtLWZyb3plbmBgIGZvcmJpZHMgbG9jayBtdXRhdGlvbiBhbmQgYGAtLW9mZmxpbmVgYCBmb3JiaWRzIG5ldHdvcmsgYWNjZXNzLAogICAgc28gdGhlIGV4cG9ydCBpcyBhIHB1cmUgZnVuY3Rpb24gb2YgdGhlIGFscmVhZHktdHJ1c3RlZCBiYXNlIGBgdXYubG9ja2BgIGFuZAogICAgYGBweXByb2plY3QudG9tbGBgOyBgYC0tbm8tZW1pdC1wcm9qZWN0YGAvYGAtLW5vLWVkaXRhYmxlYGAgZHJvcCB0aGUgcHJvamVjdAogICAgaXRzZWxmIChpbnN0YWxsZWQgdmlhIGBgUFlUSE9OUEFUSGBgIGluIHRoZSBzYW5kYm94KSBhbmQga2VlcCBvbmx5IGl0cwogICAgaGFzaC1waW5uZWQgZGVwZW5kZW5jeSBjbG9zdXJlLgogICAgIiIiCiAgICByZXR1cm4gc3VicHJvY2Vzcy5ydW4oCiAgICAgICAgWwogICAgICAgICAgICB1dl9wYXRoLAogICAgICAgICAgICAiZXhwb3J0IiwKICAgICAgICAgICAgIi0tZnJvemVuIiwKICAgICAgICAgICAgIi0tb2ZmbGluZSIsCiAgICAgICAgICAgICItLW5vLWVtaXQtcHJvamVjdCIsCiAgICAgICAgICAgICItLW5vLWVkaXRhYmxlIiwKICAgICAgICAgICAgIi0tZm9ybWF0IiwKICAgICAgICAgICAgInJlcXVpcmVtZW50cy10eHQiLAogICAgICAgIF0sCiAgICAgICAgY3dkPXN0cih3b3JrX2RpciksCiAgICAgICAgY2hlY2s9RmFsc2UsCiAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgIHRpbWVvdXQ9dGltZW91dCwKICAgICkKCgpkZWYgX2V4cG9ydF91dl9sb2NrKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIsIGxvY2tfcGF0aDogc3RyCikgLT4gYnl0ZXMgfCBOb25lOgogICAgIiIiRXhwb3J0IG9uZSB0cmFja2VkIGJhc2UgYGB1di5sb2NrYGAgaW50byBhIHRydXN0ZWQgaGFzaC1waW5uZWQgY2xvc3VyZS4KCiAgICBUaGUgc2libGluZyBgYHB5cHJvamVjdC50b21sYGAgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBsb2NrIGJlbG9uZ3MgdG8gYW4KICAgIGV4cG9ydGFibGUgcHJvamVjdC4gT3JwaGFuIGxvY2tzIGFyZSBpZ25vcmVkLCBhbmQgYSBzdWNjZXNzZnVsIGNvbW1lbnQtb25seQogICAgZXhwb3J0IHJlcHJlc2VudHMgYSB2YWxpZCBwcm9qZWN0IHdpdGggbm8gdGhpcmQtcGFydHkgZGVwZW5kZW5jeSBjbG9zdXJlLgogICAgRXZlcnkgb3RoZXIgZXhwb3J0ZXIgZmFpbHVyZSBpcyBmYXRhbDogc2lsZW50bHkgZHJvcHBpbmcgYSB0cmFja2VkIHByb2plY3QKICAgIGxvY2sgd291bGQgZXhlY3V0ZSBjb3ZlcmFnZSB3aXRob3V0IHRoZSBiYXNlIGRlcGVuZGVuY2llcyBhbmQgY291bGQgdHVybgogICAgaW1wb3J0IGZhaWx1cmVzIGludG8gbWlzbGVhZGluZyByZXZpZXcgZmVlZGJhY2suCiAgICAiIiIKICAgIHByb2plY3RfZGlyID0gcGF0aGxpYi5QdXJlUG9zaXhQYXRoKGxvY2tfcGF0aCkucGFyZW50CiAgICBweXByb2plY3RfcGF0aCA9ICgKICAgICAgICAicHlwcm9qZWN0LnRvbWwiCiAgICAgICAgaWYgc3RyKHByb2plY3RfZGlyKSA9PSAiLiIKICAgICAgICBlbHNlIGYie3Byb2plY3RfZGlyfS9weXByb2plY3QudG9tbCIKICAgICkKICAgIGxvY2tfY29udGVudCA9IF9naXQocmVwb19yb290LCAic2hvdyIsIGYie2Jhc2Vfc2hhfTp7bG9ja19wYXRofSIpCiAgICB0cnk6CiAgICAgICAgcHlwcm9qZWN0X2NvbnRlbnQgPSBfZ2l0KHJlcG9fcm9vdCwgInNob3ciLCBmIntiYXNlX3NoYX06e3B5cHJvamVjdF9wYXRofSIpCiAgICBleGNlcHQgUnVudGltZUVycm9yOgogICAgICAgIHJldHVybiBOb25lCgogICAgdXZfcGF0aCA9IF9pbnN0YWxsX3RydXN0ZWRfdXYoKQoKICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgd29ya19kaXI6CiAgICAgICAgd29ya19wYXRoID0gcGF0aGxpYi5QYXRoKHdvcmtfZGlyKQogICAgICAgICh3b3JrX3BhdGggLyAidXYubG9jayIpLndyaXRlX2J5dGVzKGxvY2tfY29udGVudCkKICAgICAgICAod29ya19wYXRoIC8gInB5cHJvamVjdC50b21sIikud3JpdGVfYnl0ZXMocHlwcm9qZWN0X2NvbnRlbnQpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBjb21wbGV0ZWQgPSBfcnVuX3V2X2V4cG9ydCh3b3JrX3BhdGgsIHV2X3BhdGgpCiAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkKSBhcyBleGM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKICAgICAgICAgICAgICAgIGYiY291bGQgbm90IHJ1biB0cnVzdGVkIHV2IGV4cG9ydCBmb3IgdHJhY2tlZCBiYXNlIGxvY2sge2xvY2tfcGF0aH06ICIKICAgICAgICAgICAgICAgIGYie3R5cGUoZXhjKS5fX25hbWVfX30iCiAgICAgICAgICAgICkgZnJvbSBleGMKCiAgICBpZiBjb21wbGV0ZWQucmV0dXJuY29kZSAhPSAwOgogICAgICAgIHN0ZGVyciA9IGNvbXBsZXRlZC5zdGRlcnIuZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIpCiAgICAgICAgbm9ybWFsaXplZF9zdGRlcnIgPSAiICIuam9pbihzdGRlcnIuc3BsaXQoKSkKICAgICAgICBkZXRhaWwgPSAoCiAgICAgICAgICAgIG5vcm1hbGl6ZWRfc3RkZXJyWzo1MDBdCiAgICAgICAgICAgIGlmIG5vcm1hbGl6ZWRfc3RkZXJyCiAgICAgICAgICAgIGVsc2UgZiJleGl0IHN0YXR1cyB7Y29tcGxldGVkLnJldHVybmNvZGV9IgogICAgICAgICkKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgIGYidXYgZXhwb3J0IGZhaWxlZCBmb3IgdHJhY2tlZCBiYXNlIGxvY2sge2xvY2tfcGF0aH06IHtkZXRhaWx9IgogICAgICAgICkKCiAgICBleHBvcnRlZCA9IGNvbXBsZXRlZC5zdGRvdXQKICAgIGlmIG5vdCBfcmVxdWlyZW1lbnRfbGluZXMoZXhwb3J0ZWQpOgogICAgICAgIHJldHVybiBOb25lCiAgICBpZiBub3QgX2lzX2hhc2hfcGlubmVkKGV4cG9ydGVkKToKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCiAgICAgICAgICAgIGYidXYgZXhwb3J0IGZvciB0cmFja2VkIGJhc2UgbG9jayB7bG9ja19wYXRofSB3YXMgbm90IGZ1bGx5IGhhc2gtcGlubmVkIgogICAgICAgICkKICAgIHJldHVybiBleHBvcnRlZAoKCmRl \ No newline at end of file diff --git a/.tmp/uv-materializer/script.03.b64 b/.tmp/uv-materializer/script.03.b64 deleted file mode 100644 index 01b5da537..000000000 --- a/.tmp/uv-materializer/script.03.b64 +++ /dev/null @@ -1 +0,0 @@ -ZiBiYXNlX2hhc2hfbG9ja3MocmVwb19yb290OiBwYXRobGliLlBhdGgsIGJhc2Vfc2hhOiBzdHIpIC0+IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dOgogICAgIiIiUmV0dXJuIHJlZ3VsYXIgaGFzaC1sb2NrIGJsb2JzIGZyb20gdGhlIGV4YWN0IHZhbGlkYXRlZCBiYXNlIGNvbW1pdC4iIiIKICAgIGlmIG5vdCBTSEFfUkUuZnVsbG1hdGNoKGJhc2Vfc2hhKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNlIFNIQSBtdXN0IGJlIGV4YWN0bHkgNDAgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyIpCgogICAgbG9ja3M6IGxpc3RbdHVwbGVbc3RyLCBieXRlc11dID0gW10KICAgIGVudHJpZXMgPSBfZ2l0KHJlcG9fcm9vdCwgImxzLXRyZWUiLCAiLXIiLCAiLXoiLCAiLS1mdWxsLXRyZWUiLCBiYXNlX3NoYSkKICAgIGZvciByYXdfZW50cnkgaW4gZW50cmllcy5zcGxpdChiIlwwIik6CiAgICAgICAgaWYgbm90IHJhd19lbnRyeToKICAgICAgICAgICAgY29udGludWUKICAgICAgICBtZXRhZGF0YSwgc2VwYXJhdG9yLCByYXdfcGF0aCA9IHJhd19lbnRyeS5wYXJ0aXRpb24oYiJcdCIpCiAgICAgICAgaWYgbm90IHNlcGFyYXRvcjoKICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJnaXQgbHMtdHJlZSByZXR1cm5lZCBhIG1hbGZvcm1lZCBlbnRyeSIpCiAgICAgICAgZmllbGRzID0gbWV0YWRhdGEuc3BsaXQoKQogICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiZ2l0IGxzLXRyZWUgcmV0dXJuZWQgbWFsZm9ybWVkIG1ldGFkYXRhIikKICAgICAgICBtb2RlLCBvYmplY3RfdHlwZSwgX29iamVjdF9pZCA9ICgKICAgICAgICAgICAgZmllbGQuZGVjb2RlKCJhc2NpaSIsIGVycm9ycz0ic3RyaWN0IikgZm9yIGZpZWxkIGluIGZpZWxkcwogICAgICAgICkKICAgICAgICBwYXRoID0gcmF3X3BhdGguZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0ic3Vycm9nYXRlZXNjYXBlIikKICAgICAgICBjYW5kaWRhdGUgPSBwYXRobGliLlB1cmVQb3NpeFBhdGgocGF0aCkKICAgICAgICBpZiAoCiAgICAgICAgICAgIG9iamVjdF90eXBlICE9ICJibG9iIgogICAgICAgICAgICBvciBub3QgbW9kZS5zdGFydHN3aXRoKCIxMDAiKQogICAgICAgICAgICBvciBjYW5kaWRhdGUuaXNfYWJzb2x1dGUoKQogICAgICAgICAgICBvciAiLi4iIGluIGNhbmRpZGF0ZS5wYXJ0cwogICAgICAgICk6CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgaWYgX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoY2FuZGlkYXRlLm5hbWUpOgogICAgICAgICAgICBjb250ZW50ID0gX2dpdChyZXBvX3Jvb3QsICJzaG93IiwgZiJ7YmFzZV9zaGF9OntwYXRofSIpCiAgICAgICAgICAgIGlmIF9pc19oYXNoX3Bpbm5lZChjb250ZW50KToKICAgICAgICAgICAgICAgIGxvY2tzLmFwcGVuZCgocGF0aCwgY29udGVudCkpCiAgICAgICAgZWxpZiBjYW5kaWRhdGUubmFtZSA9PSAidXYubG9jayI6CiAgICAgICAgICAgIGV4cG9ydGVkID0gX2V4cG9ydF91dl9sb2NrKHJlcG9fcm9vdCwgYmFzZV9zaGEsIHBhdGgpCiAgICAgICAgICAgIGlmIGV4cG9ydGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgbG9ja3MuYXBwZW5kKChwYXRoLCBleHBvcnRlZCkpCiAgICByZXR1cm4gc29ydGVkKGxvY2tzLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMF0pCgoKZGVmIG1hdGVyaWFsaXplKAogICAgcmVwb19yb290OiBwYXRobGliLlBhdGgsCiAgICBiYXNlX3NoYTogc3RyLAogICAgb3V0cHV0X2RpcjogcGF0aGxpYi5QYXRoLAopIC0+IGxpc3RbZGljdFtzdHIsIHN0cl1dOgogICAgIiIiV3JpdGUgYmFzZSBsb2NrIGJsb2JzIHVuZGVyIGdlbmVyYXRlZCBuYW1lcyBzYWZlIGZvciBhIERvY2tlciBidWlsZCBjb250ZXh0LiIiIgogICAgaWYgb3V0cHV0X2Rpci5leGlzdHMoKSBhbmQgb3V0cHV0X2Rpci5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3V0cHV0IGRpcmVjdG9yeSBtdXN0IG5vdCBiZSBhIHN5bWxpbmsiKQogICAgb3V0cHV0X2Rpci5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCgogICAgbWFuaWZlc3Q6IGxpc3RbZGljdFtzdHIsIHN0cl1dID0gW10KICAgIGZvciBpbmRleCwgKHNvdXJjZV9wYXRoLCBjb250ZW50KSBpbiBlbnVtZXJhdGUoCiAgICAgICAgYmFzZV9oYXNoX2xvY2tzKHJlcG9fcm9vdC5yZXNvbHZlKCksIGJhc2Vfc2hhKQogICAgKToKICAgICAgICBnZW5lcmF0ZWRfbmFtZSA9IGYicmVxdWlyZW1lbnRzLXtpbmRleDowM2R9LnR4dCIKICAgICAgICBkZXN0aW5hdGlvbiA9IG91dHB1dF9kaXIgLyBnZW5lcmF0ZWRfbmFtZQogICAgICAgIGRlc3RpbmF0aW9uLndyaXRlX2J5dGVzKGNvbnRlbnQpCiAgICAgICAgbWFuaWZlc3QuYXBwZW5kKHsiZmlsZSI6IGdlbmVyYXRlZF9uYW1lLCAic291cmNlIjogc291cmNlX3BhdGh9KQoKICAgIChvdXRwdXRfZGlyIC8gIm1hbmlmZXN0Lmpzb24iKS53cml0ZV90ZXh0KAogICAgICAgIGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAob3V0cHV0X2RpciAvICJtYW5pZmVzdC50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICIiLmpvaW4oZiJ7ZW50cnlbJ2ZpbGUnXX1cbiIgZm9yIGVudHJ5IGluIG1hbmlmZXN0KSwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgcmV0dXJuIG1hbmlmZXN0CgoKZGVmIG1haW4oYXJndjogbGlzdFtzdHJdIHwgTm9uZSA9IE5vbmUpIC0+IGludDoKICAgICIiIk1hdGVyaWFsaXplIGJhc2UgbG9ja3MgYW5kIHJlcG9ydCBleGFjdGx5IHdoaWNoIHRydXN0ZWQgcGF0aHMgd2VyZSBzZWxlY3RlZC4iIiIKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVwby1yb290IiwgcmVxdWlyZWQ9VHJ1ZSwgdHlwZT1wYXRobGliLlBhdGgpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJhc2Utc2hhIiwgcmVxdWlyZWQ9VHJ1ZSkKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0cHV0LWRpciIsIHJlcXVpcmVkPVRydWUsIHR5cGU9cGF0aGxpYi5QYXRoKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3YpCgogICAgdHJ5OgogICAgICAgIG1hbmlmZXN0ID0gbWF0ZXJpYWxpemUoYXJncy5yZXBvX3Jvb3QsIGFyZ3MuYmFzZV9zaGEsIGFyZ3Mub3V0cHV0X2RpcikKICAgIGV4Y2VwdCAoT1NFcnJvciwgUnVudGltZUVycm9yLCBWYWx1ZUVycm9yKSBhcyBleGM6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgIGYiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiB7ZXhjfSIsIGZpbGU9c3lzLnN0ZGVycgogICAgICAgICkKICAgICAgICByZXR1cm4gMQoKICAgIGlmIG1hbmlmZXN0OgogICAgICAgIGZvciBlbnRyeSBpbiBtYW5pZmVzdDoKICAgICAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayAiCiAgICAgICAgICAgICAgICBmIntlbnRyeVsnc291cmNlJ119IGFzIHtlbnRyeVsn \ No newline at end of file diff --git a/.tmp/uv-materializer/script.04.b64 b/.tmp/uv-materializer/script.04.b64 deleted file mode 100644 index 30bfb6a8f..000000000 --- a/.tmp/uv-materializer/script.04.b64 +++ /dev/null @@ -1 +0,0 @@ -ZmlsZSddfS4iCiAgICAgICAgICAgICkKICAgIGVsc2U6CiAgICAgICAgcHJpbnQoCiAgICAgICAgICAgICJObyB0cmFja2VkIGhhc2gtYmVhcmluZyBQeXRob24gcmVxdWlyZW1lbnQgY2FuZGlkYXRlcyBleGlzdCBhdCB0aGUgdmFsaWRhdGVkIGJhc2UgU0hBLiIKICAgICAgICApCiAgICByZXR1cm4gMAoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICByYWlzZSBTeXN0ZW1FeGl0KG1haW4oKSkK \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.00.b64 b/.tmp/uv-materializer/tests.00.b64 deleted file mode 100644 index 4bc864f95..000000000 --- a/.tmp/uv-materializer/tests.00.b64 +++ /dev/null @@ -1 +0,0 @@ -ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhbm5vdGF0aW9ucwoKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGlvCmltcG9ydCBydW5weQppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgc3lzCmltcG9ydCB0YXJmaWxlCmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAoKaW1wb3J0IHB5dGVzdAoKZnJvbSBzY3JpcHRzLmNpIGltcG9ydCBtYXRlcmlhbGl6ZV9iYXNlX3B5dGhvbl9yZXF1aXJlbWVudHMgYXMgbWF0ZXJpYWxpemVyCgoKZGVmIGdpdChyZXBvOiBQYXRoLCAqYXJnczogc3RyKSAtPiBzdHI6CiAgICAiIiJSdW4gZ2l0IGluIGEgdGVtcG9yYXJ5IGZpeHR1cmUgcmVwb3NpdG9yeS4iIiIKICAgIHJldHVybiBzdWJwcm9jZXNzLnJ1bigKICAgICAgICBbImdpdCIsICItQyIsIHN0cihyZXBvKSwgKmFyZ3NdLAogICAgICAgIGNoZWNrPVRydWUsCiAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICB0ZXh0PVRydWUsCiAgICApLnN0ZG91dC5zdHJpcCgpCgoKZGVmIHRlc3RfbWF0ZXJpYWxpemVzX29ubHlfcmVndWxhcl9oYXNoX2xvY2tzX2Zyb21fZXhhY3RfYmFzZSh0bXBfcGF0aDogUGF0aCkgLT4gTm9uZToKICAgICIiIkEgUFItbW9kaWZpZWQgbG9jayBjYW5ub3QgZW50ZXIgdGhlIG5ldHdvcmtlZCBjb3ZlcmFnZSBpbWFnZSBidWlsZCBjb250ZXh0LiIiIgogICAgcmVwbyA9IHRtcF9wYXRoIC8gInJlcG8iCiAgICByZXBvLm1rZGlyKCkKICAgIGdpdChyZXBvLCAiaW5pdCIpCiAgICBnaXQocmVwbywgImNvbmZpZyIsICJ1c2VyLm5hbWUiLCAiVGVzdCIpCiAgICBnaXQocmVwbywgImNvbmZpZyIsICJ1c2VyLmVtYWlsIiwgInRlc3RAZXhhbXBsZS5pbnZhbGlkIikKCiAgICBiYWNrZW5kID0gcmVwbyAvICJiYWNrZW5kIgogICAgYmFja2VuZC5ta2RpcigpCiAgICAoYmFja2VuZCAvICJyZXF1aXJlbWVudHMtaGFzaGVzLnR4dCIpLndyaXRlX3RleHQoCiAgICAgICAgImRlbW89PTEgLS1oYXNoPXNoYTI1NjoiICsgKCJhIiAqIDY0KSArICJcbiIsCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwKICAgICkKICAgIChyZXBvIC8gInJlcXVpcmVtZW50cy5sb2NrIikud3JpdGVfdGV4dCgKICAgICAgICAibG9ja2VkPT0xIC0taGFzaD1zaGEyNTY6IiArICgiYyIgKiA2NCkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAoYmFja2VuZCAvICJyZXF1aXJlbWVudHMudHh0Iikud3JpdGVfdGV4dCgidW50cnVzdGVkPT0xXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIGJhc2Vfc2hhID0gZ2l0KHJlcG8sICJyZXYtcGFyc2UiLCAiSEVBRCIpCgogICAgKGJhY2tlbmQgLyAicmVxdWlyZW1lbnRzLWhhc2hlcy50eHQiKS53cml0ZV90ZXh0KAogICAgICAgICJjaGFuZ2VkPT0yIC0taGFzaD1zaGEyNTY6IiArICgiYiIgKiA2NCkgKyAiXG4iLAogICAgICAgIGVuY29kaW5nPSJ1dGYtOCIsCiAgICApCiAgICAocmVwbyAvICJyZXF1aXJlbWVudHMubG9jayIpLndyaXRlX3RleHQoCiAgICAgICAgImNoYW5nZWQ9PTIgLS1oYXNoPXNoYTI1NjoiICsgKCJkIiAqIDY0KSArICJcbiIsCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwKICAgICkKICAgIGdpdChyZXBvLCAiYWRkIiwgIi4iKQogICAgZ2l0KHJlcG8sICJjb21taXQiLCAiLW0iLCAiaGVhZCIpCgogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgbWFuaWZlc3QgPSBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIG91dHB1dCkKCiAgICBhc3NlcnQgbWFuaWZlc3QgPT0gWwogICAgICAgIHsKICAgICAgICAgICAgImZpbGUiOiAicmVxdWlyZW1lbnRzLTAwMC50eHQiLAogICAgICAgICAgICAic291cmNlIjogImJhY2tlbmQvcmVxdWlyZW1lbnRzLWhhc2hlcy50eHQiLAogICAgICAgIH0sCiAgICAgICAgeyJmaWxlIjogInJlcXVpcmVtZW50cy0wMDEudHh0IiwgInNvdXJjZSI6ICJyZXF1aXJlbWVudHMubG9jayJ9LAogICAgXQogICAgYXNzZXJ0ICgKICAgICAgICAob3V0cHV0IC8gInJlcXVpcmVtZW50cy0wMDAudHh0IikKICAgICAgICAucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpCiAgICAgICAgLnN0YXJ0c3dpdGgoImRlbW89PTEiKQogICAgKQogICAgYXNzZXJ0ICJyZXF1aXJlbWVudHMtMDAwLnR4dFxucmVxdWlyZW1lbnRzLTAwMS50eHRcbiIgPT0gKAogICAgICAgIG91dHB1dCAvICJtYW5pZmVzdC50eHQiCiAgICApLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKQogICAgYXNzZXJ0ICgKICAgICAgICAob3V0cHV0IC8gInJlcXVpcmVtZW50cy0wMDEudHh0IikKICAgICAgICAucmVhZF90ZXh0KGVuY29kaW5nPSJ1dGYtOCIpCiAgICAgICAgLnN0YXJ0c3dpdGgoImxvY2tlZD09MSIpCiAgICApCiAgICBhc3NlcnQgInJlcXVpcmVtZW50cy50eHQiIG5vdCBpbiAob3V0cHV0IC8gIm1hbmlmZXN0Lmpzb24iKS5yZWFkX3RleHQoCiAgICAgICAgZW5jb2Rpbmc9InV0Zi04IgogICAgKQoKCmRlZiB0ZXN0X21hdGVyaWFsaXplc19oYXNoX3Bpbm5lZF9sb2Nrc19uYW1lZF9iZXlvbmRfdGhlX2xlZ2FjeV93aGl0ZWxpc3QoCiAgICB0bXBfcGF0aDogUGF0aCwKKSAtPiBOb25lOgogICAgIiIiSGFzaC1waW5uZWQgbG9ja3MgaW4gc2VydmljZSBzdWJkaXJzIGFuZCBkZXYvdGVzdCBmaWxlcyBhcmUgbWF0ZXJpYWxpemVkLgoKICAgIERpc2NvdmVyeSBpcyBjb250ZW50LWJhc2VkOiBhIGhhc2gtcGlubmVkIGBgcmVxdWlyZW1lbnRzLWRldi50eHRgYCB1bmRlciBhCiAgICBzZXJ2aWNlIGRpcmVjdG9yeSBhbmQgYSBoYXNoLXBpbm5lZCBgYHJlcXVpcmVtZW50cy10ZXN0LnR4dGBgIGFyZSBpbnN0YWxsZWQKICAgIGZvciBvZmZsaW5lIGNvdmVyYWdlLCB3aGlsZSBhIG5vbi1yZXF1aXJlbWVudHMgYGB1di5sb2NrYGAgKGV4Y2x1ZGVkIGJ5IG5hbWUpCiAgICBhbmQgYW4gdW5waW5uZWQgYGByZXF1aXJlbWVudHMtZXh0cmEudHh0YGAgKGV4Y2x1ZGVkIGJ5IGNvbnRlbnQpIGFyZSBub3QuCiAgICAiIiIKICAgIHJlcG8gPSB0bXBfcGF0aCAvICJyZXBvIgogICAgcmVwby5ta2RpcigpCiAgICBnaXQocmVwbywgImluaXQiKQogICAgZ2l0KHJlcG8sICJjb25maWciLCAidXNlci5uYW1lIiwgIlRlc3QiKQogICAgZ2l0KHJlcG8sICJjb25maWciLCAidXNlci5lbWFpbCIsICJ0ZXN0QGV4YW1wbGUuaW52YWxpZCIpCgogICAgc2VydmljZSA9IHJlcG8gLyAic2VydmljZXMiIC8gImFjY291bnRfdW5pZmljYXRpb24iCiAgICBzZXJ2aWNlLm1rZGlyKHBhcmVudHM9VHJ1ZSkKICAgIChzZXJ2aWNlIC8gInJlcXVpcmVtZW50cy1kZXYudHh0Iikud3JpdGVfdGV4dCgKICAgICAgICAiZmFzdGFwaT09MSAtLWhhc2g9c2hhMjU2OiIgKyAoImEiICogNjQpICsgIlxuIiwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgKHJlcG8gLyAicmVxdWlyZW1lbnRzLXRlc3QudHh0Iikud3JpdGVfdGV4dCgKICAgICAgICAiaHlwb3RoZXNpcz09NiAtLWhhc2g9c2hhMjU2OiIgKyAoImIiICogNjQpICsgIlxuIiwKICAgICAgICBlbmNvZGluZz0idXRmLTgiLAogICAgKQogICAgKHJlcG8gLyAidXYubG9jayIp \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.01.b64 b/.tmp/uv-materializer/tests.01.b64 deleted file mode 100644 index 7b97282af..000000000 --- a/.tmp/uv-materializer/tests.01.b64 +++ /dev/null @@ -1 +0,0 @@ -LndyaXRlX3RleHQoCiAgICAgICAgInZlcnNpb24gPSAxXG5bW3BhY2thZ2VdXVxubmFtZSA9ICd4J1xuIiwgZW5jb2Rpbmc9InV0Zi04IgogICAgKQogICAgKHJlcG8gLyAicmVxdWlyZW1lbnRzLWV4dHJhLnR4dCIpLndyaXRlX3RleHQoInVucGlubmVkPT0xXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIGJhc2Vfc2hhID0gZ2l0KHJlcG8sICJyZXYtcGFyc2UiLCAiSEVBRCIpCgogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgbWFuaWZlc3QgPSBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIG91dHB1dCkKCiAgICBhc3NlcnQgW2VudHJ5WyJzb3VyY2UiXSBmb3IgZW50cnkgaW4gbWFuaWZlc3RdID09IFsKICAgICAgICAicmVxdWlyZW1lbnRzLXRlc3QudHh0IiwKICAgICAgICAic2VydmljZXMvYWNjb3VudF91bmlmaWNhdGlvbi9yZXF1aXJlbWVudHMtZGV2LnR4dCIsCiAgICBdCgoKZGVmIHRlc3RfbG9ja19uYW1lX2NhbmRpZGF0ZXNfYXJlX3BpcF9yZXF1aXJlbWVudHNfZmlsZXMoKSAtPiBOb25lOgogICAgIiIiUmVxdWlyZW1lbnRzIGZpbGVzIGFuZCByZXF1aXJlbWVudHMubG9jayBhcmUgY2FuZGlkYXRlczsgb3RoZXIgbmFtZXMgYXJlIG5vdC4iIiIKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy5sb2NrIikKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy1kZXYudHh0IikKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoInJlcXVpcmVtZW50cy50eHQiKQogICAgYXNzZXJ0IG5vdCBtYXRlcmlhbGl6ZXIuX2lzX2NhbmRpZGF0ZV9sb2NrX25hbWUoCiAgICAgICAgInJlcXVpcmVtZW50cy1vcGVuY29kZS1yZXZpZXctY2ktaGFzaGVzLnR4dCIKICAgICkKICAgIGFzc2VydCBub3QgbWF0ZXJpYWxpemVyLl9pc19jYW5kaWRhdGVfbG9ja19uYW1lKCJ1di5sb2NrIikKICAgIGFzc2VydCBub3QgbWF0ZXJpYWxpemVyLl9pc19jYW5kaWRhdGVfbG9ja19uYW1lKCJweXByb2plY3QudG9tbCIpCgoKZGVmIHRlc3RfaGFzaF9waW5fZGV0ZWN0aW9uX2luY2x1ZGVzX3Bpbm5lZF9hbmRfZXhjbHVkZXNfdW5waW5uZWRfb3JfZW1wdHkoKSAtPiBOb25lOgogICAgIiIiT25seSBmdWxseSBoYXNoLXBpbm5lZCwgbm9uLWVtcHR5IGxvY2sgY29udGVudCBpcyBtYXRlcmlhbGl6ZWQuIiIiCiAgICBhc3NlcnQgbm90IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiIjIGNvbW1lbnQgb25seVxuXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiItLXJlcXVpcmUtaGFzaGVzXG5kZW1vPT0xXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiJkZW1vPT0xIC0taGFzaD1zaGEyNTY6IiArIGIiYSIgKiA2NCArIGIiXG4iKQogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5faXNfaGFzaF9waW5uZWQoYiItciBvdGhlci1oYXNoZXMudHh0XG4iKQogICAgYXNzZXJ0IG5vdCBtYXRlcmlhbGl6ZXIuX2lzX2hhc2hfcGlubmVkKGIidW50cnVzdGVkPT0xXG4iKQogICAgIyB1diBleHBvcnQgLyBwaXAtY29tcGlsZSBtdWx0aS1saW5lIGNvbnRpbnVhdGlvbiBmb3JtYXQgKHNwZWMsIHRoZW4gLS1oYXNoPSBsaW5lcykuCiAgICBhc3NlcnQgbWF0ZXJpYWxpemVyLl9pc19oYXNoX3Bpbm5lZCgKICAgICAgICBiImZvbz09MSBcXFxuICAgIC0taGFzaD1zaGEyNTY6IgogICAgICAgICsgYiJhIiAqIDY0CiAgICAgICAgKyBiIiBcXFxuICAgIC0taGFzaD1zaGEyNTY6IgogICAgICAgICsgYiJiIiAqIDY0CiAgICAgICAgKyBiIlxuIgogICAgKQoKCmRlZiB0ZXN0X3JlamVjdHNfaW52YWxpZF9iYXNlX3NoYSh0bXBfcGF0aDogUGF0aCkgLT4gTm9uZToKICAgICIiIkdpdCBvcHRpb25zIGFuZCBzeW1ib2xpYyByZWZzIGNhbm5vdCBjcm9zcyB0aGUgZXhhY3QtU0hBIGJvdW5kYXJ5LiIiIgogICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSI0MCBoZXhhZGVjaW1hbCIpOgogICAgICAgIG1hdGVyaWFsaXplci5iYXNlX2hhc2hfbG9ja3ModG1wX3BhdGgsICItLWhlbHAiKQoKCmRlZiB0ZXN0X2dpdF9mYWlsdXJlX3ByZXNlcnZlc19hX3Zpc2libGVfcmVhc29uKHRtcF9wYXRoOiBQYXRoKSAtPiBOb25lOgogICAgIiIiQSBmYWlsZWQgcmVhZC1vbmx5IGdpdCBjb21tYW5kIHJlcG9ydHMgaXRzIG9wZXJhdGlvbiBhbmQgc3RkZXJyLiIiIgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ciJnaXQgcmV2LXBhcnNlIGZhaWxlZDogZmF0YWwiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2dpdCh0bXBfcGF0aCwgInJldi1wYXJzZSIsICJIRUFEIikKCgpAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAoInRyZWVfb3V0cHV0IiwgIm1lc3NhZ2UiKSwKICAgIFsKICAgICAgICAoYiJtYWxmb3JtZWRcMCIsICJtYWxmb3JtZWQgZW50cnkiKSwKICAgICAgICAoYiIxMDA2NDQgYmxvYlx0ZmlsZVwwIiwgIm1hbGZvcm1lZCBtZXRhZGF0YSIpLAogICAgXSwKKQpkZWYgdGVzdF9yZWplY3RzX21hbGZvcm1lZF9naXRfdHJlZV9lbnRyaWVzKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgdHJlZV9vdXRwdXQ6IGJ5dGVzLAogICAgbWVzc2FnZTogc3RyLAopIC0+IE5vbmU6CiAgICAiIiJNYWxmb3JtZWQgZ2l0IG91dHB1dCBjYW5ub3QgYmUgaW50ZXJwcmV0ZWQgYXMgYSB0cnVzdGVkIGxvY2sgYmxvYi4iIiIKCiAgICBkZWYgZmFrZV9naXQoX3JlcG9fcm9vdDogUGF0aCwgKl9hcmdzOiBzdHIpIC0+IGJ5dGVzOgogICAgICAgIHJldHVybiB0cmVlX291dHB1dAoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX2dpdCIsIGZha2VfZ2l0KQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPW1lc3NhZ2UpOgogICAgICAgIG1hdGVyaWFsaXplci5iYXNlX2hhc2hfbG9ja3ModG1wX3BhdGgsICJhIiAqIDQwKQoKCmRlZiB0ZXN0X3JlamVjdHNfc3ltbGlua19vdXRwdXRfZGlyZWN0b3J5KAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBzeW1saW5rIGNhbm5vdCByZWRpcmVjdCB0cnVzdGVkIGxvY2sgbWF0ZXJpYWxpemF0aW9uIG91dHNpZGUgaXRzIGNvbnRleHQuIiIiCiAgICB0YXJnZXQgPSB0bXBfcGF0aCAvICJ0YXJnZXQiCiAgICB0YXJnZXQubWtkaXIoKQogICAgb3V0cHV0ID0gdG1wX3BhdGggLyAib3V0cHV0IgogICAgb3V0cHV0LnN5bWxpbmtfdG8odGFyZ2V0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgImJhc2VfaGFzaF9sb2NrcyIsIGxhbWJkYSAqX2FyZ3M6IFtdKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD0ibXVzdCBub3QgYmUg \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.02.b64 b/.tmp/uv-materializer/tests.02.b64 deleted file mode 100644 index 23cc5d5ec..000000000 --- a/.tmp/uv-materializer/tests.02.b64 +++ /dev/null @@ -1 +0,0 @@ -YSBzeW1saW5rIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLm1hdGVyaWFsaXplKHRtcF9wYXRoLCAiYSIgKiA0MCwgb3V0cHV0KQoKCmRlZiB0ZXN0X21haW5fcmVwb3J0c19lYWNoX21hdGVyaWFsaXplZF9sb2NrKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiVGhlIENMSSBpZGVudGlmaWVzIHRoZSBleGFjdCB0cnVzdGVkIHNvdXJjZSBhbmQgZ2VuZXJhdGVkIGxvY2sgbmFtZS4iIiIKCiAgICBkZWYgZmFrZV9tYXRlcmlhbGl6ZSgKICAgICAgICBfcmVwb19yb290OiBQYXRoLCBfYmFzZV9zaGE6IHN0ciwgX291dHB1dF9kaXI6IFBhdGgKICAgICkgLT4gbGlzdFtkaWN0W3N0ciwgc3RyXV06CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZpbGUiOiAicmVxdWlyZW1lbnRzLTAwMC50eHQiLAogICAgICAgICAgICAgICAgInNvdXJjZSI6ICJiYWNrZW5kL3JlcXVpcmVtZW50cy1oYXNoZXMudHh0IiwKICAgICAgICAgICAgfQogICAgICAgIF0KCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgZmFrZV9tYXRlcmlhbGl6ZSkKCiAgICBhc3NlcnQgKAogICAgICAgIG1hdGVyaWFsaXplci5tYWluKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoKSwKICAgICAgICAgICAgICAgICItLWJhc2Utc2hhIiwKICAgICAgICAgICAgICAgICJhIiAqIDQwLAogICAgICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgICAgICBzdHIodG1wX3BhdGggLyAib3V0cHV0IiksCiAgICAgICAgICAgIF0KICAgICAgICApCiAgICAgICAgPT0gMAogICAgKQogICAgYXNzZXJ0ICgKICAgICAgICAiTWF0ZXJpYWxpemVkIHRydXN0ZWQgYmFzZSBQeXRob24gbG9jayBiYWNrZW5kL3JlcXVpcmVtZW50cy1oYXNoZXMudHh0ICIKICAgICAgICAiYXMgcmVxdWlyZW1lbnRzLTAwMC50eHQuIiBpbiBjYXBzeXMucmVhZG91dGVycigpLm91dAogICAgKQoKCmRlZiB0ZXN0X21haW5fcmVwb3J0c193aGVuX25vX2xvY2tzX2V4aXN0KAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiVGhlIENMSSBkaXN0aW5ndWlzaGVzIGFuIGVtcHR5IHRydXN0ZWQgYmFzZSBmcm9tIGEgZmFpbGVkIGV4dHJhY3Rpb24uIiIiCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgbGFtYmRhICpfYXJnczogW10pCgogICAgYXNzZXJ0ICgKICAgICAgICBtYXRlcmlhbGl6ZXIubWFpbigKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgIi0tcmVwby1yb290IiwKICAgICAgICAgICAgICAgIHN0cih0bXBfcGF0aCksCiAgICAgICAgICAgICAgICAiLS1iYXNlLXNoYSIsCiAgICAgICAgICAgICAgICAiYSIgKiA0MCwKICAgICAgICAgICAgICAgICItLW91dHB1dC1kaXIiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoIC8gIm91dHB1dCIpLAogICAgICAgICAgICBdCiAgICAgICAgKQogICAgICAgID09IDAKICAgICkKICAgIGFzc2VydCAoCiAgICAgICAgIk5vIHRyYWNrZWQgaGFzaC1iZWFyaW5nIFB5dGhvbiByZXF1aXJlbWVudCBjYW5kaWRhdGVzIGV4aXN0IgogICAgICAgIGluIGNhcHN5cy5yZWFkb3V0ZXJyKCkub3V0CiAgICApCgoKZGVmIHRlc3RfbWFpbl9mYWlsc193aXRoX3RoZV9tYXRlcmlhbGl6YXRpb25fcmVhc29uKAogICAgdG1wX3BhdGg6IFBhdGgsCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAogICAgY2Fwc3lzOiBweXRlc3QuQ2FwdHVyZUZpeHR1cmVbc3RyXSwKKSAtPiBOb25lOgogICAgIiIiQSBtYXRlcmlhbGl6YXRpb24gZXhjZXB0aW9uIGZhaWxzIGNsb3NlZCBhbmQgcmVtYWlucyBkaWFnbm9zYWJsZSBpbiBDSS4iIiIKCiAgICBkZWYgZmFpbF9tYXRlcmlhbGl6ZShfcmVwb19yb290OiBQYXRoLCBfYmFzZV9zaGE6IHN0ciwgX291dHB1dF9kaXI6IFBhdGgpIC0+IE5vbmU6CiAgICAgICAgcmFpc2UgT1NFcnJvcigiZml4dHVyZSBmYWlsdXJlIikKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIm1hdGVyaWFsaXplIiwgZmFpbF9tYXRlcmlhbGl6ZSkKCiAgICBhc3NlcnQgKAogICAgICAgIG1hdGVyaWFsaXplci5tYWluKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICAgICAgc3RyKHRtcF9wYXRoKSwKICAgICAgICAgICAgICAgICItLWJhc2Utc2hhIiwKICAgICAgICAgICAgICAgICJhIiAqIDQwLAogICAgICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgICAgICBzdHIodG1wX3BhdGggLyAib3V0cHV0IiksCiAgICAgICAgICAgIF0KICAgICAgICApCiAgICAgICAgPT0gMQogICAgKQogICAgYXNzZXJ0ICgKICAgICAgICAiOjplcnJvcjo6Q291bGQgbm90IG1hdGVyaWFsaXplIGJhc2UgUHl0aG9uIGxvY2tzOiBmaXh0dXJlIGZhaWx1cmUiCiAgICAgICAgaW4gY2Fwc3lzLnJlYWRvdXRlcnIoKS5lcnIKICAgICkKCgpkZWYgdGVzdF9zY3JpcHRfZW50cnlwb2ludF9leGl0c190aHJvdWdoX21haW4oCiAgICB0bXBfcGF0aDogUGF0aCwgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaAopIC0+IE5vbmU6CiAgICAiIiJUaGUgZXhlY3V0YWJsZSBzY3JpcHQgcHJvcGFnYXRlcyB0aGUgZmFpbC1jbG9zZWQgQ0xJIHN0YXR1cy4iIiIKICAgIG1vZHVsZV9wYXRoID0gUGF0aChtYXRlcmlhbGl6ZXIuX19maWxlX18pCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIHN5cywKICAgICAgICAiYXJndiIsCiAgICAgICAgWwogICAgICAgICAgICBzdHIobW9kdWxlX3BhdGgpLAogICAgICAgICAgICAiLS1yZXBvLXJvb3QiLAogICAgICAgICAgICBzdHIodG1wX3BhdGgpLAogICAgICAgICAgICAiLS1iYXNlLXNoYSIsCiAgICAgICAgICAgICJpbnZhbGlkIiwKICAgICAgICAgICAgIi0tb3V0cHV0LWRpciIsCiAgICAgICAgICAgIHN0cih0bXBfcGF0aCAvICJvdXRwdXQiKSwKICAgICAgICBdLAogICAgKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyByYWlzZWQ6CiAgICAgICAgcnVucHkucnVuX3BhdGgoc3RyKG1vZHVsZV9wYXRoKSwgcnVuX25hbWU9Il9fbWFpbl9fIikKCiAgICBhc3NlcnQgcmFpc2VkLnZhbHVlLmNvZGUgPT0gMQoKCmRlZiB0ZXN0X3NraXBzX25vbl9ibG9iX3RyZWVfZW50cmllcygKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlN1Ym1vZHVsZS9naXRsaW5rIChub24tYmxvYikgdHJlZSBlbnRyaWVzIGFyZSBza2lwcGVkLCBuZXZlciBtYXRlcmlhbGl6ZWQuIiIiCiAgICBibG9iID0gYiJwaW5uZWQ9PTEgLS1oYXNoPXNoYTI1NjoiICsgYiJhIiAqIDY0ICsgYiJcbiIK \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.03.b64 b/.tmp/uv-materializer/tests.03.b64 deleted file mode 100644 index 7aa2fa11a..000000000 --- a/.tmp/uv-materializer/tests.03.b64 +++ /dev/null @@ -1 +0,0 @@ -ICAgIHRyZWUgPSAoCiAgICAgICAgYiIxNjAwMDAgY29tbWl0ICIgKyBiIjAiICogNDAgKyBiIlx0dmVuZG9yZWQtc3VibW9kdWxlXDAiCiAgICAgICAgYiIxMDA2NDQgYmxvYiAiICsgYiIxIiAqIDQwICsgYiJcdHJlcXVpcmVtZW50cy50eHRcMCIKICAgICkKCiAgICBkZWYgZmFrZV9naXQoX3JlcG9fcm9vdDogUGF0aCwgKmFyZ3M6IHN0cikgLT4gYnl0ZXM6CiAgICAgICAgaWYgYXJnc1swXSA9PSAibHMtdHJlZSI6CiAgICAgICAgICAgIHJldHVybiB0cmVlCiAgICAgICAgaWYgYXJnc1swXSA9PSAic2hvdyI6CiAgICAgICAgICAgIHJldHVybiBibG9iCiAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoYXJncykKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9naXQiLCBmYWtlX2dpdCkKCiAgICBhc3NlcnQgbWF0ZXJpYWxpemVyLmJhc2VfaGFzaF9sb2Nrcyh0bXBfcGF0aCwgImEiICogNDApID09IFsKICAgICAgICAoInJlcXVpcmVtZW50cy50eHQiLCBibG9iKQogICAgXQoKCmRlZiBfdXZfcmVwbyh0bXBfcGF0aDogUGF0aCwgKiwgd2l0aF9weXByb2plY3Q6IGJvb2wsIGxvY2tfZGlyOiBzdHIgPSAiIikgLT4gdHVwbGVbUGF0aCwgc3RyXToKICAgICIiIkluaXQgYSBmaXh0dXJlIHJlcG8gd2l0aCBhIHV2LmxvY2sgKGFuZCBvcHRpb25hbCBweXByb2plY3QudG9tbCkgYXQgbG9ja19kaXIuIiIiCiAgICByZXBvID0gdG1wX3BhdGggLyAicmVwbyIKICAgIHJlcG8ubWtkaXIoKQogICAgZ2l0KHJlcG8sICJpbml0IikKICAgIGdpdChyZXBvLCAiY29uZmlnIiwgInVzZXIubmFtZSIsICJUZXN0IikKICAgIGdpdChyZXBvLCAiY29uZmlnIiwgInVzZXIuZW1haWwiLCAidGVzdEBleGFtcGxlLmludmFsaWQiKQogICAgYmFzZSA9IHJlcG8gLyBsb2NrX2RpciBpZiBsb2NrX2RpciBlbHNlIHJlcG8KICAgIGJhc2UubWtkaXIocGFyZW50cz1UcnVlLCBleGlzdF9vaz1UcnVlKQogICAgKGJhc2UgLyAidXYubG9jayIpLndyaXRlX3RleHQoInZlcnNpb24gPSAxXG4iLCBlbmNvZGluZz0idXRmLTgiKQogICAgaWYgd2l0aF9weXByb2plY3Q6CiAgICAgICAgKGJhc2UgLyAicHlwcm9qZWN0LnRvbWwiKS53cml0ZV90ZXh0KAogICAgICAgICAgICAiW3Byb2plY3RdXG5uYW1lID0gJ2RlbW8nXG52ZXJzaW9uID0gJzAnXG4iLCBlbmNvZGluZz0idXRmLTgiCiAgICAgICAgKQogICAgZ2l0KHJlcG8sICJhZGQiLCAiLiIpCiAgICBnaXQocmVwbywgImNvbW1pdCIsICItbSIsICJiYXNlIikKICAgIHJldHVybiByZXBvLCBnaXQocmVwbywgInJldi1wYXJzZSIsICJIRUFEIikKCgpkZWYgX2V4cG9ydChyZXR1cm5jb2RlOiBpbnQsIHN0ZG91dDogYnl0ZXMpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAiIiJCdWlsZCBhIGZha2UgYGB1diBleHBvcnRgYCBjb21wbGV0ZWQtcHJvY2VzcyByZXN1bHQuIiIiCiAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFsidXYiLCAiZXhwb3J0Il0sIHJldHVybmNvZGUsIHN0ZG91dCwgYiIiKQoKCmRlZiB0ZXN0X3V2X2xvY2tfaXNfZXhwb3J0ZWRfdG9fYV9oYXNoX3Bpbm5lZF9sb2NrKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBiYXNlIHV2LmxvY2sgaXMgZXhwb3J0ZWQgdmlhIHV2IGludG8gYSBtYXRlcmlhbGl6ZWQgaGFzaC1waW5uZWQgY2xvc3VyZS4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBoYXNoZWQgPSBiImRlbW8tZGVwPT0xIC0taGFzaD1zaGEyNTY6IiArIGIiYSIgKiA2NCArIGIiXG4iCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IF9leHBvcnQoMCwgaGFzaGVkKSwKICAgICkKCiAgICBvdXRwdXQgPSB0bXBfcGF0aCAvICJvdXRwdXQiCiAgICBtYW5pZmVzdCA9IG1hdGVyaWFsaXplci5tYXRlcmlhbGl6ZShyZXBvLCBiYXNlX3NoYSwgb3V0cHV0KQoKICAgIGFzc2VydCBtYW5pZmVzdCA9PSBbeyJmaWxlIjogInJlcXVpcmVtZW50cy0wMDAudHh0IiwgInNvdXJjZSI6ICJ1di5sb2NrIn1dCiAgICBhc3NlcnQgKG91dHB1dCAvICJyZXF1aXJlbWVudHMtMDAwLnR4dCIpLnJlYWRfYnl0ZXMoKSA9PSBoYXNoZWQKCgpkZWYgdGVzdF91dl9sb2NrX2ZhaWxzX2Nsb3NlZF93aGVuX3RydXN0ZWRfdXZfYm9vdHN0cmFwX2ZhaWxzKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSB0cmFja2VkIHByb2plY3QgdXYubG9jayBjYW5ub3Qgc2lsZW50bHkgbG9zZSBpdHMgZGVwZW5kZW5jeSBldmlkZW5jZS4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCgogICAgZGVmIGZhaWxfaW5zdGFsbCgpIC0+IHN0cjoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInRydXN0ZWQgdXYgYm9vdHN0cmFwIGZhaWxlZCIpCgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgZmFpbF9pbnN0YWxsKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJ0cnVzdGVkIHV2IGJvb3RzdHJhcCBmYWlsZWQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpCgoKZGVmIHRlc3RfdXZfbG9ja19za2lwcGVkX3doZW5fcHlwcm9qZWN0X2lzX2Fic2VudCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIkEgdXYubG9jayB3aXRob3V0IGEgc2libGluZyBweXByb2plY3QudG9tbCBhdCBiYXNlIChpbiBhIHN1YmRpcikgY2Fubm90IGJlIGV4cG9ydGVkLiIiIgogICAgcmVwbywgYmFzZV9zaGEgPSBfdXZfcmVwbyh0bXBfcGF0aCwgd2l0aF9weXByb2plY3Q9RmFsc2UsIGxvY2tfZGlyPSJzZXJ2aWNlIikKICAgIGRlZiB1bmV4cGVjdGVkX2luc3RhbGwoKSAtPiBzdHI6CiAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIm9ycGhhbiB1di5sb2NrIG11c3Qgbm90IGJvb3RzdHJhcCB1diIpCgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgdW5leHBlY3RlZF9pbnN0YWxsKQoKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpID09IFtdCgoKZGVmIHRlc3RfdXZfbG9ja19mYWlsc19jbG9zZWRfd2hlbl9leHBvcnRfZmFpbHMoCiAgICB0bXBfcGF0aDogUGF0aCwgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaAopIC0+IE5vbmU6CiAgICAiIiJBIHN0YWxlIG9yIG90aGVy \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.04.b64 b/.tmp/uv-materializer/tests.04.b64 deleted file mode 100644 index 68dc4424b..000000000 --- a/.tmp/uv-materializer/tests.04.b64 +++ /dev/null @@ -1 +0,0 @@ -d2lzZSB1bmV4cG9ydGFibGUgdHJhY2tlZCB1di5sb2NrIGJsb2NrcyBldmlkZW5jZSBjcmVhdGlvbi4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcygKICAgICAgICAgICAgWyJ1diIsICJleHBvcnQiXSwgMSwgYiIiLCBiImxvY2sgaXMgc3RhbGVcbiIKICAgICAgICApLAogICAgKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJ1diBleHBvcnQgZmFpbGVkLipsb2NrIGlzIHN0YWxlIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLm1hdGVyaWFsaXplKHJlcG8sIGJhc2Vfc2hhLCB0bXBfcGF0aCAvICJvdXRwdXQiKQoKCmRlZiB0ZXN0X3V2X2xvY2tfZmFpbHNfY2xvc2VkX3doZW5fZXhwb3J0X2lzX25vdF9oYXNoX3Bpbm5lZCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIkEgbm9uZW1wdHkgdXYgZXhwb3J0IHdpdGhvdXQgaGFzaGVzIGlzIHJlamVjdGVkIGluc3RlYWQgb2YgaWdub3JlZC4iIiIKICAgIHJlcG8sIGJhc2Vfc2hhID0gX3V2X3JlcG8odG1wX3BhdGgsIHdpdGhfcHlwcm9qZWN0PVRydWUpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9pbnN0YWxsX3RydXN0ZWRfdXYiLCBsYW1iZGE6ICIvdXNyL2Jpbi91diIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwKICAgICAgICAiX3J1bl91dl9leHBvcnQiLAogICAgICAgIGxhbWJkYSBfd29yaywgX3V2X3BhdGg6IF9leHBvcnQoMCwgYiJ1bnBpbm5lZD09MVxuIiksCiAgICApCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9Im5vdCBmdWxseSBoYXNoLXBpbm5lZCIpOgogICAgICAgIG1hdGVyaWFsaXplci5tYXRlcmlhbGl6ZShyZXBvLCBiYXNlX3NoYSwgdG1wX3BhdGggLyAib3V0cHV0IikKCgpkZWYgdGVzdF91dl9sb2NrX3dpdGhfZW1wdHlfZGVwZW5kZW5jeV9jbG9zdXJlX21hdGVyaWFsaXplc19ub3RoaW5nKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQSBzdWNjZXNzZnVsIGNvbW1lbnQtb25seSB1diBleHBvcnQgcmVwcmVzZW50cyBhIHZhbGlkIGVtcHR5IGNsb3N1cmUuIiIiCiAgICByZXBvLCBiYXNlX3NoYSA9IF91dl9yZXBvKHRtcF9wYXRoLCB3aXRoX3B5cHJvamVjdD1UcnVlKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgbGFtYmRhOiAiL3Vzci9iaW4vdXYiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIsCiAgICAgICAgIl9ydW5fdXZfZXhwb3J0IiwKICAgICAgICBsYW1iZGEgX3dvcmssIF91dl9wYXRoOiBfZXhwb3J0KDAsIGIiIyBubyB0aGlyZC1wYXJ0eSBkZXBlbmRlbmNpZXNcbiIpLAogICAgKQoKICAgIGFzc2VydCBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpID09IFtdCgoKY2xhc3MgX0Zha2VSZXNwb25zZToKICAgICIiIk1pbmltYWwgY29udGV4dC1tYW5hZ2VkIEhUVFAgcmVzcG9uc2UgdXNlZCBieSB0cnVzdGVkIHV2IGRvd25sb2FkIHRlc3RzLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXlsb2FkOiBieXRlcywgZmluYWxfdXJsOiBzdHIpIC0+IE5vbmU6CiAgICAgICAgIiIiU3RvcmUgZGV0ZXJtaW5pc3RpYyByZXNwb25zZSBieXRlcyBhbmQgdGhlIG9ic2VydmVkIGZpbmFsIFVSTC4iIiIKICAgICAgICBzZWxmLl9wYXlsb2FkID0gcGF5bG9hZAogICAgICAgIHNlbGYuX2ZpbmFsX3VybCA9IGZpbmFsX3VybAoKICAgIGRlZiBfX2VudGVyX18oc2VsZikgLT4gIl9GYWtlUmVzcG9uc2UiOgogICAgICAgICIiIlJldHVybiB0aGlzIHJlc3BvbnNlIGZyb20gYSBjb250ZXh0IG1hbmFnZXIuIiIiCiAgICAgICAgcmV0dXJuIHNlbGYKCiAgICBkZWYgX19leGl0X18oc2VsZiwgKl9hcmdzOiBvYmplY3QpIC0+IE5vbmU6CiAgICAgICAgIiIiQ2xvc2UgdGhlIGZha2UgcmVzcG9uc2Ugd2l0aG91dCBzdXBwcmVzc2luZyBleGNlcHRpb25zLiIiIgoKICAgIGRlZiBnZXR1cmwoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybiB0aGUgZmluYWwgVVJMIGFmdGVyIHJlZGlyZWN0cy4iIiIKICAgICAgICByZXR1cm4gc2VsZi5fZmluYWxfdXJsCgogICAgZGVmIHJlYWQoc2VsZiwgc2l6ZTogaW50KSAtPiBieXRlczoKICAgICAgICAiIiJSZXR1cm4gYXQgbW9zdCBgYHNpemVgYCBieXRlcyBsaWtlIGFuIEhUVFAgcmVzcG9uc2UuIiIiCiAgICAgICAgcmV0dXJuIHNlbGYuX3BheWxvYWRbOnNpemVdCgoKZGVmIF90cnVzdGVkX3V2X2FyY2hpdmUoCiAgICBiaW5hcnk6IGJ5dGVzID0gYiJ2ZXJpZmllZC11diIsCiAgICAqLAogICAgbWVtYmVyX25hbWU6IHN0ciA9IG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfTUVNQkVSLAogICAgcmVndWxhcjogYm9vbCA9IFRydWUsCikgLT4gYnl0ZXM6CiAgICAiIiJCdWlsZCBhIGRldGVybWluaXN0aWMgdXYgdGFyIGFyY2hpdmUgZm9yIHN1cHBseS1jaGFpbiBib3VuZGFyeSB0ZXN0cy4iIiIKICAgIHBheWxvYWQgPSBpby5CeXRlc0lPKCkKICAgIHdpdGggdGFyZmlsZS5vcGVuKGZpbGVvYmo9cGF5bG9hZCwgbW9kZT0idzpneiIpIGFzIGJ1bmRsZToKICAgICAgICBtZW1iZXIgPSB0YXJmaWxlLlRhckluZm8obWVtYmVyX25hbWUpCiAgICAgICAgaWYgcmVndWxhcjoKICAgICAgICAgICAgbWVtYmVyLnNpemUgPSBsZW4oYmluYXJ5KQogICAgICAgICAgICBidW5kbGUuYWRkZmlsZShtZW1iZXIsIGlvLkJ5dGVzSU8oYmluYXJ5KSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBtZW1iZXIudHlwZSA9IHRhcmZpbGUuRElSVFlQRQogICAgICAgICAgICBidW5kbGUuYWRkZmlsZShtZW1iZXIpCiAgICByZXR1cm4gcGF5bG9hZC5nZXR2YWx1ZSgpCgoKZGVmIHRlc3RfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlX2FjY2VwdHNfZml4ZWRfaHR0cHNfb3JpZ2luKAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKKSAtPiBOb25lOgogICAgIiIiVGhlIGRvd25sb2FkZXIgcmV0dXJucyBib3VuZGVkIGJ5dGVzIGZyb20gdGhlIGZpeGVkIEFzdHJhbCBIVFRQUyBvcmlnaW4uIiIiCiAgICBwYXlsb2FkID0gYiJhcmNoaXZlIgogICAgcmVzcG9uc2UgPSBfRmFrZVJlc3BvbnNlKHBheWxvYWQsIG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfVVJMKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRh \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.05.b64 b/.tmp/uv-materializer/tests.05.b64 deleted file mode 100644 index 4cce32727..000000000 --- a/.tmp/uv-materializer/tests.05.b64 +++ /dev/null @@ -1 +0,0 @@ -ICpfYSwgKipfazogcmVzcG9uc2UpCgogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkgPT0gcGF5bG9hZAoKCmRlZiB0ZXN0X2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZV9yZWplY3RzX3Vuc2FmZV9yZWRpcmVjdCgKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkEgcmVkaXJlY3QgYXdheSBmcm9tIHRoZSBmaXhlZCBIVFRQUyByZWxlYXNlIGhvc3QgZmFpbHMgY2xvc2VkLiIiIgogICAgcmVzcG9uc2UgPSBfRmFrZVJlc3BvbnNlKGIiYXJjaGl2ZSIsICJodHRwczovL2V4YW1wbGUuaW52YWxpZC91di50YXIuZ3oiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRhICpfYSwgKipfazogcmVzcG9uc2UpCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9InJlZGlyZWN0ZWQgb3V0c2lkZSIpOgogICAgICAgIG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkKCgpkZWYgdGVzdF9kb3dubG9hZF90cnVzdGVkX3V2X2FyY2hpdmVfcmVqZWN0c19uZXR3b3JrX2FuZF9zaXplX2ZhaWx1cmVzKAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKKSAtPiBOb25lOgogICAgIiIiTmV0d29yayBlcnJvcnMgYW5kIG92ZXJzaXplZCBhcmNoaXZlcyBjYW5ub3QgZW50ZXIgdGhlIHRydXN0ZWQgdG9vbCBwYXRoLiIiIgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsCiAgICAgICAgInVybG9wZW4iLAogICAgICAgIGxhbWJkYSAqX2EsICoqX2s6IChfIGZvciBfIGluICgpKS50aHJvdyhPU0Vycm9yKCJvZmZsaW5lIikpLAogICAgKQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImRvd25sb2FkIGZhaWxlZCIpOgogICAgICAgIG1hdGVyaWFsaXplci5fZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlKCkKCiAgICByZXNwb25zZSA9IF9GYWtlUmVzcG9uc2UoYiIxMjM0NSIsIG1hdGVyaWFsaXplci5UUlVTVEVEX1VWX0FSQ0hJVkVfVVJMKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIudXJsbGliLnJlcXVlc3QsICJ1cmxvcGVuIiwgbGFtYmRhICpfYSwgKipfazogcmVzcG9uc2UpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfRE9XTkxPQURfTUFYX0JZVEVTIiwgNCkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJib3VuZGVkIGRvd25sb2FkIHNpemUiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZSgpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X2FjY2VwdHNfZXhhY3RfYXJjaGl2ZSgKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkFuIGV4YWN0LWhhc2ggYXJjaGl2ZSB5aWVsZHMgb25seSBpdHMgYm91bmRlZCByZWd1bGFyIHV2IG1lbWJlci4iIiIKICAgIGFyY2hpdmUgPSBfdHJ1c3RlZF91dl9hcmNoaXZlKCkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCiAgICAgICAgbWF0ZXJpYWxpemVyLCAiVFJVU1RFRF9VVl9BUkNISVZFX1NIQTI1NiIsIGhhc2hsaWIuc2hhMjU2KGFyY2hpdmUpLmhleGRpZ2VzdCgpCiAgICApCgogICAgYXNzZXJ0IG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpID09IGIidmVyaWZpZWQtdXYiCgoKQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAogICAgKCJhcmNoaXZlIiwgImVycm9yIiksCiAgICBbCiAgICAgICAgKGIibm90LWEtdGFyIiwgImNoZWNrc3VtIHZlcmlmaWNhdGlvbiBmYWlsZWQiKSwKICAgICAgICAoX3RydXN0ZWRfdXZfYXJjaGl2ZShtZW1iZXJfbmFtZT0id3JvbmcvdXYiKSwgIm9taXR0ZWQgdGhlIHV2IGV4ZWN1dGFibGUiKSwKICAgICAgICAoX3RydXN0ZWRfdXZfYXJjaGl2ZShyZWd1bGFyPUZhbHNlKSwgIm5vdCBhIHJlZ3VsYXIgZmlsZSIpLAogICAgXSwKKQpkZWYgdGVzdF92ZXJpZmllZF91dl9iaW5hcnlfcmVqZWN0c19pbnZhbGlkX2FyY2hpdmVzKAogICAgYXJjaGl2ZTogYnl0ZXMsIGVycm9yOiBzdHIsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiQ2hlY2tzdW0sIG1lbWJlcnNoaXAsIGFuZCBmaWxlLXR5cGUgdmlvbGF0aW9ucyBmYWlsIGNsb3NlZC4iIiIKICAgIGlmIGVycm9yICE9ICJjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIjoKICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgICAgICBtYXRlcmlhbGl6ZXIsCiAgICAgICAgICAgICJUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2IiwKICAgICAgICAgICAgaGFzaGxpYi5zaGEyNTYoYXJjaGl2ZSkuaGV4ZGlnZXN0KCksCiAgICAgICAgKQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ZXJyb3IpOgogICAgICAgIG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X3JlamVjdHNfcGFyc2VfYW5kX3NpemVfZmFpbHVyZXMoCiAgICBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoLAopIC0+IE5vbmU6CiAgICAiIiJDb3JydXB0IHRhciBkYXRhIGFuZCBvdmVyc2l6ZWQgZXhlY3V0YWJsZSBtZXRhZGF0YSBjYW5ub3QgYmUgaW5zdGFsbGVkLiIiIgogICAgY29ycnVwdCA9IGIibm90LWEtdGFyIgogICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKICAgICAgICBtYXRlcmlhbGl6ZXIsICJUUlVTVEVEX1VWX0FSQ0hJVkVfU0hBMjU2IiwgaGFzaGxpYi5zaGEyNTYoY29ycnVwdCkuaGV4ZGlnZXN0KCkKICAgICkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJjb3VsZCBub3QgYmUgcGFyc2VkIik6CiAgICAgICAgbWF0ZXJpYWxpemVyLl92ZXJpZmllZF91dl9iaW5hcnkoY29ycnVwdCkKCiAgICBhcmNoaXZlID0gX3RydXN0ZWRfdXZfYXJjaGl2ZShiaW5hcnk9YiJsYXJnZSIpCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYiLCBoYXNobGliLnNoYTI1NihhcmNoaXZlKS5oZXhkaWdlc3QoKQogICAgKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJUUlVTVEVEX1VWX0JJTkFSWV9NQVhfQllURVMiLCA0KQogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImJvdW5kZWQgc2l6ZSIpOgogICAgICAgIG1hdGVyaWFsaXplci5fdmVyaWZpZWRfdXZfYmluYXJ5KGFyY2hpdmUpCgoKZGVmIHRlc3RfdmVyaWZpZWRfdXZfYmluYXJ5X3JlamVjdHNfdHJ1bmNhdGVkX21lbWJlcigKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCikgLT4gTm9uZToKICAgICIiIkEgdHJ1bmNhdGVkIHJlZ3VsYXIgbWVtYmVyIGNhbm5vdCBzYXRpc2Z5IHRoZSBhcmNoaXZlIHNpemUgcmVjZWlwdC4iIiIKICAgIGFyY2hpdmUgPSBiImFyY2hpdmUi \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.06.b64 b/.tmp/uv-materializer/tests.06.b64 deleted file mode 100644 index 08ba7543e..000000000 --- a/.tmp/uv-materializer/tests.06.b64 +++ /dev/null @@ -1 +0,0 @@ -CiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgIG1hdGVyaWFsaXplciwgIlRSVVNURURfVVZfQVJDSElWRV9TSEEyNTYiLCBoYXNobGliLnNoYTI1NihhcmNoaXZlKS5oZXhkaWdlc3QoKQogICAgKQoKICAgIGNsYXNzIF9NZW1iZXI6CiAgICAgICAgIiIiUmVwcmVzZW50IG9uZSByZWd1bGFyIG1lbWJlciB3aXRoIGEgbG9uZ2VyIGRlY2xhcmVkIHNpemUuIiIiCgogICAgICAgIHNpemUgPSAyCgogICAgICAgIEBzdGF0aWNtZXRob2QKICAgICAgICBkZWYgaXNmaWxlKCkgLT4gYm9vbDoKICAgICAgICAgICAgIiIiUmV0dXJuIHRoYXQgdGhpcyBzeW50aGV0aWMgbWVtYmVyIGlzIHJlZ3VsYXIuIiIiCiAgICAgICAgICAgIHJldHVybiBUcnVlCgogICAgY2xhc3MgX0J1bmRsZToKICAgICAgICAiIiJSZXR1cm4gYSBkZWxpYmVyYXRlbHkgdHJ1bmNhdGVkIG1lbWJlciBzdHJlYW0uIiIiCgogICAgICAgIGRlZiBfX2VudGVyX18oc2VsZikgLT4gIl9CdW5kbGUiOgogICAgICAgICAgICAiIiJFbnRlciB0aGUgc3ludGhldGljIGFyY2hpdmUgY29udGV4dC4iIiIKICAgICAgICAgICAgcmV0dXJuIHNlbGYKCiAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpfYXJnczogb2JqZWN0KSAtPiBOb25lOgogICAgICAgICAgICAiIiJMZWF2ZSB0aGUgc3ludGhldGljIGFyY2hpdmUgY29udGV4dC4iIiIKCiAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgIGRlZiBnZXRtZW1iZXIoX25hbWU6IHN0cikgLT4gX01lbWJlcjoKICAgICAgICAgICAgIiIiUmV0dXJuIHRoZSBzeW50aGV0aWMgcmVndWxhciBtZW1iZXIuIiIiCiAgICAgICAgICAgIHJldHVybiBfTWVtYmVyKCkKCiAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgIGRlZiBleHRyYWN0ZmlsZShfbWVtYmVyOiBfTWVtYmVyKSAtPiBpby5CeXRlc0lPOgogICAgICAgICAgICAiIiJSZXR1cm4gZmV3ZXIgYnl0ZXMgdGhhbiB0aGUgbWVtYmVyIG1ldGFkYXRhIGRlY2xhcmVzLiIiIgogICAgICAgICAgICByZXR1cm4gaW8uQnl0ZXNJTyhiIngiKQoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRhcmZpbGUsICJvcGVuIiwgbGFtYmRhICpfYSwgKipfazogX0J1bmRsZSgpKQoKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJzaXplIGRpZCBub3QgbWF0Y2giKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX3ZlcmlmaWVkX3V2X2JpbmFyeShhcmNoaXZlKQoKCmRlZiB0ZXN0X2luc3RhbGxfdHJ1c3RlZF91dl92ZXJpZmllc192ZXJzaW9uX2FuZF9jYWNoZXNfcGF0aCgKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlRoZSBpbnN0YWxsZXIgd3JpdGVzIG9uZSBleGVjdXRhYmxlLCB2ZXJpZmllcyBpdHMgdmVyc2lvbiwgYW5kIGNhY2hlcyBpdC4iIiIKICAgIG1hdGVyaWFsaXplci5faW5zdGFsbF90cnVzdGVkX3V2LmNhY2hlX2NsZWFyKCkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRlbXBmaWxlLCAibWtkdGVtcCIsIGxhbWJkYSAqKl9rOiBzdHIodG1wX3BhdGggLyAidXYiKSkKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX2Rvd25sb2FkX3RydXN0ZWRfdXZfYXJjaGl2ZSIsIGxhbWJkYTogYiJhcmNoaXZlIikKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX3ZlcmlmaWVkX3V2X2JpbmFyeSIsIGxhbWJkYSBfcGF5bG9hZDogYiJiaW5hcnkiKQogICAgcmVnaXN0ZXJlZDogbGlzdFt0dXBsZVtvYmplY3QsIC4uLl1dID0gW10KICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLmF0ZXhpdCwgInJlZ2lzdGVyIiwgbGFtYmRhICphcmdzLCAqKl9rd2FyZ3M6IHJlZ2lzdGVyZWQuYXBwZW5kKGFyZ3MpKQogICAgY2FsbHMgPSAwCgogICAgZGVmIHZlcmlmeSgqX2FyZ3M6IG9iamVjdCwgKipfa3dhcmdzOiBvYmplY3QpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAgICAgbm9ubG9jYWwgY2FsbHMKICAgICAgICBjYWxscyArPSAxCiAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwgMCwgYiJ1diAwLjEyLjFcbiIsIGIiIikKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplci5zdWJwcm9jZXNzLCAicnVuIiwgdmVyaWZ5KQoKICAgIGZpcnN0ID0gbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYoKQogICAgc2Vjb25kID0gbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYoKQoKICAgIGFzc2VydCBmaXJzdCA9PSBzZWNvbmQgPT0gc3RyKHRtcF9wYXRoIC8gInV2IiAvICJ1diIpCiAgICBhc3NlcnQgUGF0aChmaXJzdCkucmVhZF9ieXRlcygpID09IGIiYmluYXJ5IgogICAgYXNzZXJ0IFBhdGgoZmlyc3QpLnN0YXQoKS5zdF9tb2RlICYgMG8xMTEKICAgIGFzc2VydCBjYWxscyA9PSAxCiAgICBhc3NlcnQgcmVnaXN0ZXJlZAogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQoKCkBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICJmYWlsdXJlIiwKICAgIFsKICAgICAgICBGaWxlTm90Rm91bmRFcnJvcigibWlzc2luZyBiaW5hcnkiKSwKICAgICAgICBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkKFsidXYiLCAiLS12ZXJzaW9uIl0sIHRpbWVvdXQ9MTApLAogICAgXSwKKQpkZWYgdGVzdF9pbnN0YWxsX3RydXN0ZWRfdXZfcmVqZWN0c192ZXJzaW9uX3Byb2Nlc3NfZmFpbHVyZXMoCiAgICB0bXBfcGF0aDogUGF0aCwKICAgIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gsCiAgICBmYWlsdXJlOiBPU0Vycm9yIHwgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCwKKSAtPiBOb25lOgogICAgIiIiQSBtaXNzaW5nIG9yIGh1bmcgZG93bmxvYWRlZCBleGVjdXRhYmxlIGlzIHJlbW92ZWQgYW5kIHJlamVjdGVkLiIiIgogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQogICAgdG9vbF9kaXIgPSB0bXBfcGF0aCAvICJ1diIKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnRlbXBmaWxlLCAibWtkdGVtcCIsIGxhbWJkYSAqKl9rOiBzdHIodG9vbF9kaXIpKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlIiwgbGFtYmRhOiBiImFyY2hpdmUiKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfdmVyaWZpZWRfdXZfYmluYXJ5IiwgbGFtYmRhIF9wYXlsb2FkOiBiImJpbmFyeSIpCgogICAgZGVmIGZhaWwoKl9hcmdzOiBvYmplY3QsICoqX2t3YXJnczogb2JqZWN0KSAtPiBOb25lOgogICAgICAgIHJhaXNlIGZhaWx1cmUKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplci5zdWJwcm9jZXNzLCAicnVuIiwgZmFpbCkKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPSJleGVjdXRhYmxlIHZlcmlmaWNhdGlvbiBmYWlsZWQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91digpCiAgICBhc3NlcnQgbm90IHRvb2xfZGlyLmV4 \ No newline at end of file diff --git a/.tmp/uv-materializer/tests.07.b64 b/.tmp/uv-materializer/tests.07.b64 deleted file mode 100644 index bb422bbc0..000000000 --- a/.tmp/uv-materializer/tests.07.b64 +++ /dev/null @@ -1 +0,0 @@ -aXN0cygpCiAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91di5jYWNoZV9jbGVhcigpCgoKZGVmIHRlc3RfaW5zdGFsbF90cnVzdGVkX3V2X3JlamVjdHNfd3JvbmdfdmVyc2lvbl9vcl9leGl0X3N0YXR1cygKICAgIHRtcF9wYXRoOiBQYXRoLCBtb25rZXlwYXRjaDogcHl0ZXN0Lk1vbmtleVBhdGNoCikgLT4gTm9uZToKICAgICIiIlVuZXhwZWN0ZWQgdmVyc2lvbiBvdXRwdXQgb3IgYSBub256ZXJvIHN0YXR1cyBjYW5ub3Qgc2F0aXNmeSB0aGUgcGluLiIiIgogICAgZm9yIGNvbXBsZXRlZCBpbiAoCiAgICAgICAgc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLCAwLCBiInV2IDAuMTIuMFxuIiwgYiIiKSwKICAgICAgICBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoW10sIDEsIGIidXYgMC4xMi4xXG4iLCBiImZhaWxlZCIpLAogICAgKToKICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91di5jYWNoZV9jbGVhcigpCiAgICAgICAgdG9vbF9kaXIgPSB0bXBfcGF0aCAvIGYidXYte2NvbXBsZXRlZC5yZXR1cm5jb2RlfS17bGVuKGNvbXBsZXRlZC5zdGRvdXQpfSIKICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAogICAgICAgICAgICBtYXRlcmlhbGl6ZXIudGVtcGZpbGUsICJta2R0ZW1wIiwgbGFtYmRhICoqX2s6IHN0cih0b29sX2RpcikKICAgICAgICApCiAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfZG93bmxvYWRfdHJ1c3RlZF91dl9hcmNoaXZlIiwgbGFtYmRhOiBiImFyY2hpdmUiKQogICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLCAiX3ZlcmlmaWVkX3V2X2JpbmFyeSIsIGxhbWJkYSBfcGF5bG9hZDogYiJiaW5hcnkiKQogICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnN1YnByb2Nlc3MsICJydW4iLCBsYW1iZGEgKl9hLCAqKl9rOiBjb21wbGV0ZWQpCiAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9InVuZXhwZWN0ZWQgdmVyc2lvbiBvciBleGl0IHN0YXR1cyIpOgogICAgICAgICAgICBtYXRlcmlhbGl6ZXIuX2luc3RhbGxfdHJ1c3RlZF91digpCiAgICAgICAgYXNzZXJ0IG5vdCB0b29sX2Rpci5leGlzdHMoKQogICAgbWF0ZXJpYWxpemVyLl9pbnN0YWxsX3RydXN0ZWRfdXYuY2FjaGVfY2xlYXIoKQoKCmRlZiB0ZXN0X3J1bl91dl9leHBvcnRfaW52b2tlc191dl93aXRoX2Zyb3plbl9vZmZsaW5lX2ZsYWdzKAogICAgdG1wX3BhdGg6IFBhdGgsIG1vbmtleXBhdGNoOiBweXRlc3QuTW9ua2V5UGF0Y2gKKSAtPiBOb25lOgogICAgIiIiVGhlIHV2IGV4cG9ydCBoZWxwZXIgcnVucyB1diB3aXRoIGZyb3plbiwgcHJvamVjdC1leGNsdWRpbmcsIG9mZmxpbmUgZmxhZ3MuIiIiCiAgICBjYXB0dXJlZDogZGljdFtzdHIsIG9iamVjdF0gPSB7fQoKICAgIGRlZiBmYWtlX3J1bihhcmd2OiBsaXN0W3N0cl0sICoqa3dhcmdzOiBvYmplY3QpIC0+IHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzc1tieXRlc106CiAgICAgICAgY2FwdHVyZWRbImFyZ3YiXSA9IGFyZ3YKICAgICAgICBjYXB0dXJlZFsiY3dkIl0gPSBrd2FyZ3MuZ2V0KCJjd2QiKQogICAgICAgIGNhcHR1cmVkWyJ0aW1lb3V0Il0gPSBrd2FyZ3MuZ2V0KCJ0aW1lb3V0IikKICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsIGIib3V0IiwgYiIiKQoKICAgIG1vbmtleXBhdGNoLnNldGF0dHIobWF0ZXJpYWxpemVyLnN1YnByb2Nlc3MsICJydW4iLCBmYWtlX3J1bikKCiAgICByZXN1bHQgPSBtYXRlcmlhbGl6ZXIuX3J1bl91dl9leHBvcnQodG1wX3BhdGgsICIvdXNyL2Jpbi91diIpCgogICAgYXNzZXJ0IHJlc3VsdC5zdGRvdXQgPT0gYiJvdXQiCiAgICBhc3NlcnQgY2FwdHVyZWRbImFyZ3YiXVs6M10gPT0gWyIvdXNyL2Jpbi91diIsICJleHBvcnQiLCAiLS1mcm96ZW4iXQogICAgYXNzZXJ0ICItLW9mZmxpbmUiIGluIGNhcHR1cmVkWyJhcmd2Il0KICAgIGFzc2VydCAiLS1uby1lbWl0LXByb2plY3QiIGluIGNhcHR1cmVkWyJhcmd2Il0KICAgIGFzc2VydCAiLS1uby1lZGl0YWJsZSIgaW4gY2FwdHVyZWRbImFyZ3YiXQogICAgYXNzZXJ0IGNhcHR1cmVkWyJjd2QiXSA9PSBzdHIodG1wX3BhdGgpCiAgICBhc3NlcnQgY2FwdHVyZWRbInRpbWVvdXQiXSA9PSBtYXRlcmlhbGl6ZXIuVVZfRVhQT1JUX1RJTUVPVVRfU0VDT05EUwoKCkBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICJleHBvcnRfZXJyb3IiLAogICAgWwogICAgICAgIEZpbGVOb3RGb3VuZEVycm9yKCJ1diBkaXNhcHBlYXJlZCIpLAogICAgICAgIHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQoWyIvdXNyL2Jpbi91diIsICJleHBvcnQiXSwgdGltZW91dD0xMjApLAogICAgXSwKKQpkZWYgdGVzdF91dl9leHBvcnRfcHJvY2Vzc19mYWlsdXJlc19mYWlsX2Nsb3NlZCgKICAgIHRtcF9wYXRoOiBQYXRoLAogICAgbW9ua2V5cGF0Y2g6IHB5dGVzdC5Nb25rZXlQYXRjaCwKICAgIGV4cG9ydF9lcnJvcjogT1NFcnJvciB8IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQsCikgLT4gTm9uZToKICAgICIiIkEgbWlzc2luZyBvciBodW5nIHRydXN0ZWQgdXYgcHJvY2VzcyBjYW5ub3Qgc2lsZW50bHkgZHJvcCBkZXBlbmRlbmNpZXMuIiIiCiAgICByZXBvLCBiYXNlX3NoYSA9IF91dl9yZXBvKHRtcF9wYXRoLCB3aXRoX3B5cHJvamVjdD1UcnVlKQogICAgbW9ua2V5cGF0Y2guc2V0YXR0cihtYXRlcmlhbGl6ZXIsICJfaW5zdGFsbF90cnVzdGVkX3V2IiwgbGFtYmRhOiAiL3Vzci9iaW4vdXYiKQoKICAgIGRlZiBmYWlsX2V4cG9ydChfd29yazogUGF0aCwgX3V2X3BhdGg6IHN0cikgLT4gTm9uZToKICAgICAgICByYWlzZSBleHBvcnRfZXJyb3IKCiAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hdGVyaWFsaXplciwgIl9ydW5fdXZfZXhwb3J0IiwgZmFpbF9leHBvcnQpCgogICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWF0Y2g9ImNvdWxkIG5vdCBydW4gdHJ1c3RlZCB1diBleHBvcnQiKToKICAgICAgICBtYXRlcmlhbGl6ZXIubWF0ZXJpYWxpemUocmVwbywgYmFzZV9zaGEsIHRtcF9wYXRoIC8gIm91dHB1dCIpCg== \ No newline at end of file diff --git a/scripts/ci/materialize_base_python_requirements.py b/scripts/ci/materialize_base_python_requirements.py old mode 100644 new mode 100755 index 8158372df..1a1dd87f7 --- a/scripts/ci/materialize_base_python_requirements.py +++ b/scripts/ci/materialize_base_python_requirements.py @@ -4,18 +4,38 @@ from __future__ import annotations import argparse +import atexit import fnmatch +import functools +import hashlib +import io import json import pathlib import re import shutil import subprocess import sys +import tarfile import tempfile +import urllib.parse +import urllib.request SHA_RE = re.compile(r"^[0-9a-fA-F]{40}$") UV_EXPORT_TIMEOUT_SECONDS = 120 +TRUSTED_UV_VERSION = "0.12.1" +TRUSTED_UV_ARCHIVE_URL = ( + "https://releases.astral.sh/github/uv/releases/download/0.12.1/" + "uv-x86_64-unknown-linux-gnu.tar.gz" +) +TRUSTED_UV_ARCHIVE_SHA256 = ( + "90b2f223fb69d19db49e117da601f64978593417988530aa733d456141b4bcbb" +) +TRUSTED_UV_ARCHIVE_MEMBER = "uv-x86_64-unknown-linux-gnu/uv" +TRUSTED_UV_DOWNLOAD_TIMEOUT_SECONDS = 120 +TRUSTED_UV_DOWNLOAD_MAX_BYTES = 64 * 1024 * 1024 +TRUSTED_UV_BINARY_MAX_BYTES = 64 * 1024 * 1024 +TRUSTED_UV_VERSION_TIMEOUT_SECONDS = 10 def _is_candidate_lock_name(name: str) -> bool: @@ -80,6 +100,98 @@ def _git(repo_root: pathlib.Path, *args: str) -> bytes: return completed.stdout +def _download_trusted_uv_archive() -> bytes: + """Download the fixed uv release archive through one HTTPS trust boundary.""" + request = urllib.request.Request( + TRUSTED_UV_ARCHIVE_URL, + headers={"User-Agent": "ContextualWisdomLab-coverage/1"}, + method="GET", + ) + try: + with urllib.request.urlopen( # nosec B310 -- fixed URL plus SHA-256 pin + request, timeout=TRUSTED_UV_DOWNLOAD_TIMEOUT_SECONDS + ) as response: + final_url = urllib.parse.urlparse(response.geturl()) + if (final_url.scheme, final_url.hostname) != ( + "https", + "releases.astral.sh", + ): + raise RuntimeError( + "trusted uv archive redirected outside releases.astral.sh" + ) + payload = response.read(TRUSTED_UV_DOWNLOAD_MAX_BYTES + 1) + except OSError as exc: + raise RuntimeError( + f"trusted uv archive download failed: {type(exc).__name__}" + ) from exc + + if len(payload) > TRUSTED_UV_DOWNLOAD_MAX_BYTES: + raise RuntimeError("trusted uv archive exceeded the bounded download size") + return payload + + +def _verified_uv_binary(archive_payload: bytes) -> bytes: + """Return the bounded uv executable after archive and member verification.""" + digest = hashlib.sha256(archive_payload).hexdigest() + if digest != TRUSTED_UV_ARCHIVE_SHA256: + raise RuntimeError("trusted uv archive checksum verification failed") + + try: + with tarfile.open(fileobj=io.BytesIO(archive_payload), mode="r:gz") as bundle: + try: + member = bundle.getmember(TRUSTED_UV_ARCHIVE_MEMBER) + except KeyError as exc: + raise RuntimeError("trusted uv archive omitted the uv executable") from exc + if not member.isfile(): + raise RuntimeError("trusted uv archive member is not a regular file") + if member.size > TRUSTED_UV_BINARY_MAX_BYTES: + raise RuntimeError("trusted uv executable exceeded the bounded size") + extracted = bundle.extractfile(member) + if extracted is None: # pragma: no cover - guarded by member.isfile() + raise AssertionError("regular tar members must be extractable") + binary = extracted.read(TRUSTED_UV_BINARY_MAX_BYTES + 1) + except tarfile.TarError as exc: + raise RuntimeError("trusted uv archive could not be parsed") from exc + + if len(binary) != member.size: + raise RuntimeError("trusted uv executable size did not match its archive metadata") + return binary + + +@functools.cache +def _install_trusted_uv() -> str: + """Install and verify the pinned uv exporter once for this process.""" + tool_dir = pathlib.Path(tempfile.mkdtemp(prefix="opencode-trusted-uv-")) + tool_dir.mkdir(mode=0o700, parents=True, exist_ok=True) + uv_path = tool_dir / "uv" + try: + uv_path.write_bytes(_verified_uv_binary(_download_trusted_uv_archive())) + uv_path.chmod(0o755) + try: + completed = subprocess.run( + [str(uv_path), "--version"], + check=False, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + timeout=TRUSTED_UV_VERSION_TIMEOUT_SECONDS, + ) + except (OSError, subprocess.TimeoutExpired) as exc: + raise RuntimeError( + f"trusted uv executable verification failed: {type(exc).__name__}" + ) from exc + observed = completed.stdout.decode("utf-8", errors="replace").strip() + if completed.returncode != 0 or observed != f"uv {TRUSTED_UV_VERSION}": + raise RuntimeError( + "trusted uv executable reported an unexpected version or exit status" + ) + except Exception: + shutil.rmtree(tool_dir, ignore_errors=True) + raise + + atexit.register(shutil.rmtree, tool_dir, ignore_errors=True) + return str(uv_path) + + def _run_uv_export( work_dir: pathlib.Path, uv_path: str, @@ -116,46 +228,61 @@ def _run_uv_export( def _export_uv_lock( repo_root: pathlib.Path, base_sha: str, lock_path: str ) -> bytes | None: - """Export a base ``uv.lock`` to a hash-pinned requirements closure, or ``None``. - - ``uv.lock`` is not a pip-installable format, so a uv-managed repository - materializes no dependencies and its offline coverage run fails at import. - When ``uv`` is available, reconstruct the exact base ``uv.lock`` and its - sibling ``pyproject.toml`` in an isolated temporary directory and run - ``uv export --frozen`` to produce a fully hash-pinned closure the trusted - installer can consume like any other lock. Both inputs are read only from - the validated base commit, so no PR-mutable content reaches ``uv``. Return - ``None`` — degrading to the prior no-uv behavior — when ``uv`` is absent, - the sibling ``pyproject.toml`` is missing at the base commit, the export - fails, or its output is not fully hash-pinned, so this can never break an - otherwise-working build. + """Export one tracked base ``uv.lock`` into a trusted hash-pinned closure. + + The sibling ``pyproject.toml`` determines whether the lock belongs to an + exportable project. Orphan locks are ignored, and a successful comment-only + export represents a valid project with no third-party dependency closure. + Every other exporter failure is fatal: silently dropping a tracked project + lock would execute coverage without the base dependencies and could turn + import failures into misleading review feedback. """ - uv_path = shutil.which("uv") - if uv_path is None: - return None project_dir = pathlib.PurePosixPath(lock_path).parent pyproject_path = ( "pyproject.toml" if str(project_dir) == "." else f"{project_dir}/pyproject.toml" ) + lock_content = _git(repo_root, "show", f"{base_sha}:{lock_path}") try: - lock_content = _git(repo_root, "show", f"{base_sha}:{lock_path}") pyproject_content = _git(repo_root, "show", f"{base_sha}:{pyproject_path}") except RuntimeError: return None + + uv_path = _install_trusted_uv() + with tempfile.TemporaryDirectory() as work_dir: work_path = pathlib.Path(work_dir) (work_path / "uv.lock").write_bytes(lock_content) (work_path / "pyproject.toml").write_bytes(pyproject_content) try: completed = _run_uv_export(work_path, uv_path) - except (OSError, subprocess.TimeoutExpired): - return None + except (OSError, subprocess.TimeoutExpired) as exc: + raise RuntimeError( + f"could not run trusted uv export for tracked base lock {lock_path}: " + f"{type(exc).__name__}" + ) from exc + if completed.returncode != 0: - return None + stderr = completed.stderr.decode("utf-8", errors="replace") + normalized_stderr = " ".join(stderr.split()) + detail = ( + normalized_stderr[:500] + if normalized_stderr + else f"exit status {completed.returncode}" + ) + raise RuntimeError( + f"uv export failed for tracked base lock {lock_path}: {detail}" + ) + exported = completed.stdout - return exported if _is_hash_pinned(exported) else None + if not _requirement_lines(exported): + return None + if not _is_hash_pinned(exported): + raise RuntimeError( + f"uv export for tracked base lock {lock_path} was not fully hash-pinned" + ) + return exported def base_hash_locks(repo_root: pathlib.Path, base_sha: str) -> list[tuple[str, bytes]]: diff --git a/tests/test_materialize_base_python_requirements.py b/tests/test_materialize_base_python_requirements.py index 41b86b261..fd2b68f1a 100644 --- a/tests/test_materialize_base_python_requirements.py +++ b/tests/test_materialize_base_python_requirements.py @@ -1,8 +1,11 @@ from __future__ import annotations +import hashlib +import io import runpy import subprocess import sys +import tarfile from pathlib import Path import pytest @@ -378,7 +381,7 @@ def test_uv_lock_is_exported_to_a_hash_pinned_lock( ) -> None: """A base uv.lock is exported via uv into a materialized hash-pinned closure.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) - monkeypatch.setattr(materializer.shutil, "which", lambda _name: "/usr/bin/uv") + monkeypatch.setattr(materializer, "_install_trusted_uv", lambda: "/usr/bin/uv") hashed = b"demo-dep==1 --hash=sha256:" + b"a" * 64 + b"\n" monkeypatch.setattr( materializer, @@ -393,14 +396,19 @@ def test_uv_lock_is_exported_to_a_hash_pinned_lock( assert (output / "requirements-000.txt").read_bytes() == hashed -def test_uv_lock_skipped_when_uv_is_unavailable( +def test_uv_lock_fails_closed_when_trusted_uv_bootstrap_fails( tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: - """Without the uv exporter, a uv.lock-only repo materializes nothing (no regression).""" + """A tracked project uv.lock cannot silently lose its dependency evidence.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) - monkeypatch.setattr(materializer.shutil, "which", lambda _name: None) - assert materializer.materialize(repo, base_sha, tmp_path / "output") == [] + def fail_install() -> str: + raise RuntimeError("trusted uv bootstrap failed") + + monkeypatch.setattr(materializer, "_install_trusted_uv", fail_install) + + with pytest.raises(RuntimeError, match="trusted uv bootstrap failed"): + materializer.materialize(repo, base_sha, tmp_path / "output") def test_uv_lock_skipped_when_pyproject_is_absent( @@ -408,41 +416,327 @@ def test_uv_lock_skipped_when_pyproject_is_absent( ) -> None: """A uv.lock without a sibling pyproject.toml at base (in a subdir) cannot be exported.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=False, lock_dir="service") - monkeypatch.setattr(materializer.shutil, "which", lambda _name: "/usr/bin/uv") + def unexpected_install() -> str: + raise AssertionError("orphan uv.lock must not bootstrap uv") + + monkeypatch.setattr(materializer, "_install_trusted_uv", unexpected_install) assert materializer.materialize(repo, base_sha, tmp_path / "output") == [] -def test_uv_lock_skipped_when_export_fails( +def test_uv_lock_fails_closed_when_export_fails( tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: - """A non-zero uv export (e.g. a stale lock) is skipped, never materialized.""" + """A stale or otherwise unexportable tracked uv.lock blocks evidence creation.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) - monkeypatch.setattr(materializer.shutil, "which", lambda _name: "/usr/bin/uv") + monkeypatch.setattr(materializer, "_install_trusted_uv", lambda: "/usr/bin/uv") monkeypatch.setattr( materializer, "_run_uv_export", - lambda _work, _uv_path: _export(1, b""), + lambda _work, _uv_path: subprocess.CompletedProcess( + ["uv", "export"], 1, b"", b"lock is stale\n" + ), ) - assert materializer.materialize(repo, base_sha, tmp_path / "output") == [] + with pytest.raises(RuntimeError, match="uv export failed.*lock is stale"): + materializer.materialize(repo, base_sha, tmp_path / "output") -def test_uv_lock_skipped_when_export_is_not_hash_pinned( +def test_uv_lock_fails_closed_when_export_is_not_hash_pinned( tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: - """A uv export that somehow lacks hashes is rejected by the hash-pin guard.""" + """A nonempty uv export without hashes is rejected instead of ignored.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) - monkeypatch.setattr(materializer.shutil, "which", lambda _name: "/usr/bin/uv") + monkeypatch.setattr(materializer, "_install_trusted_uv", lambda: "/usr/bin/uv") monkeypatch.setattr( materializer, "_run_uv_export", lambda _work, _uv_path: _export(0, b"unpinned==1\n"), ) + with pytest.raises(RuntimeError, match="not fully hash-pinned"): + materializer.materialize(repo, base_sha, tmp_path / "output") + + +def test_uv_lock_with_empty_dependency_closure_materializes_nothing( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + """A successful comment-only uv export represents a valid empty closure.""" + repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) + monkeypatch.setattr(materializer, "_install_trusted_uv", lambda: "/usr/bin/uv") + monkeypatch.setattr( + materializer, + "_run_uv_export", + lambda _work, _uv_path: _export(0, b"# no third-party dependencies\n"), + ) + assert materializer.materialize(repo, base_sha, tmp_path / "output") == [] +class _FakeResponse: + """Minimal context-managed HTTP response used by trusted uv download tests.""" + + def __init__(self, payload: bytes, final_url: str) -> None: + """Store deterministic response bytes and the observed final URL.""" + self._payload = payload + self._final_url = final_url + + def __enter__(self) -> "_FakeResponse": + """Return this response from a context manager.""" + return self + + def __exit__(self, *_args: object) -> None: + """Close the fake response without suppressing exceptions.""" + + def geturl(self) -> str: + """Return the final URL after redirects.""" + return self._final_url + + def read(self, size: int) -> bytes: + """Return at most ``size`` bytes like an HTTP response.""" + return self._payload[:size] + + +def _trusted_uv_archive( + binary: bytes = b"verified-uv", + *, + member_name: str = materializer.TRUSTED_UV_ARCHIVE_MEMBER, + regular: bool = True, +) -> bytes: + """Build a deterministic uv tar archive for supply-chain boundary tests.""" + payload = io.BytesIO() + with tarfile.open(fileobj=payload, mode="w:gz") as bundle: + member = tarfile.TarInfo(member_name) + if regular: + member.size = len(binary) + bundle.addfile(member, io.BytesIO(binary)) + else: + member.type = tarfile.DIRTYPE + bundle.addfile(member) + return payload.getvalue() + + +def test_download_trusted_uv_archive_accepts_fixed_https_origin( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """The downloader returns bounded bytes from the fixed Astral HTTPS origin.""" + payload = b"archive" + response = _FakeResponse(payload, materializer.TRUSTED_UV_ARCHIVE_URL) + monkeypatch.setattr(materializer.urllib.request, "urlopen", lambda *_a, **_k: response) + + assert materializer._download_trusted_uv_archive() == payload + + +def test_download_trusted_uv_archive_rejects_unsafe_redirect( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """A redirect away from the fixed HTTPS release host fails closed.""" + response = _FakeResponse(b"archive", "https://example.invalid/uv.tar.gz") + monkeypatch.setattr(materializer.urllib.request, "urlopen", lambda *_a, **_k: response) + + with pytest.raises(RuntimeError, match="redirected outside"): + materializer._download_trusted_uv_archive() + + +def test_download_trusted_uv_archive_rejects_network_and_size_failures( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Network errors and oversized archives cannot enter the trusted tool path.""" + monkeypatch.setattr( + materializer.urllib.request, + "urlopen", + lambda *_a, **_k: (_ for _ in ()).throw(OSError("offline")), + ) + with pytest.raises(RuntimeError, match="download failed"): + materializer._download_trusted_uv_archive() + + response = _FakeResponse(b"12345", materializer.TRUSTED_UV_ARCHIVE_URL) + monkeypatch.setattr(materializer.urllib.request, "urlopen", lambda *_a, **_k: response) + monkeypatch.setattr(materializer, "TRUSTED_UV_DOWNLOAD_MAX_BYTES", 4) + with pytest.raises(RuntimeError, match="bounded download size"): + materializer._download_trusted_uv_archive() + + +def test_verified_uv_binary_accepts_exact_archive( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """An exact-hash archive yields only its bounded regular uv member.""" + archive = _trusted_uv_archive() + monkeypatch.setattr( + materializer, "TRUSTED_UV_ARCHIVE_SHA256", hashlib.sha256(archive).hexdigest() + ) + + assert materializer._verified_uv_binary(archive) == b"verified-uv" + + +@pytest.mark.parametrize( + ("archive", "error"), + [ + (b"not-a-tar", "checksum verification failed"), + (_trusted_uv_archive(member_name="wrong/uv"), "omitted the uv executable"), + (_trusted_uv_archive(regular=False), "not a regular file"), + ], +) +def test_verified_uv_binary_rejects_invalid_archives( + archive: bytes, error: str, monkeypatch: pytest.MonkeyPatch +) -> None: + """Checksum, membership, and file-type violations fail closed.""" + if error != "checksum verification failed": + monkeypatch.setattr( + materializer, + "TRUSTED_UV_ARCHIVE_SHA256", + hashlib.sha256(archive).hexdigest(), + ) + with pytest.raises(RuntimeError, match=error): + materializer._verified_uv_binary(archive) + + +def test_verified_uv_binary_rejects_parse_and_size_failures( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Corrupt tar data and oversized executable metadata cannot be installed.""" + corrupt = b"not-a-tar" + monkeypatch.setattr( + materializer, "TRUSTED_UV_ARCHIVE_SHA256", hashlib.sha256(corrupt).hexdigest() + ) + with pytest.raises(RuntimeError, match="could not be parsed"): + materializer._verified_uv_binary(corrupt) + + archive = _trusted_uv_archive(binary=b"large") + monkeypatch.setattr( + materializer, "TRUSTED_UV_ARCHIVE_SHA256", hashlib.sha256(archive).hexdigest() + ) + monkeypatch.setattr(materializer, "TRUSTED_UV_BINARY_MAX_BYTES", 4) + with pytest.raises(RuntimeError, match="bounded size"): + materializer._verified_uv_binary(archive) + + +def test_verified_uv_binary_rejects_truncated_member( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """A truncated regular member cannot satisfy the archive size receipt.""" + archive = b"archive" + monkeypatch.setattr( + materializer, "TRUSTED_UV_ARCHIVE_SHA256", hashlib.sha256(archive).hexdigest() + ) + + class _Member: + """Represent one regular member with a longer declared size.""" + + size = 2 + + @staticmethod + def isfile() -> bool: + """Return that this synthetic member is regular.""" + return True + + class _Bundle: + """Return a deliberately truncated member stream.""" + + def __enter__(self) -> "_Bundle": + """Enter the synthetic archive context.""" + return self + + def __exit__(self, *_args: object) -> None: + """Leave the synthetic archive context.""" + + @staticmethod + def getmember(_name: str) -> _Member: + """Return the synthetic regular member.""" + return _Member() + + @staticmethod + def extractfile(_member: _Member) -> io.BytesIO: + """Return fewer bytes than the member metadata declares.""" + return io.BytesIO(b"x") + + monkeypatch.setattr(materializer.tarfile, "open", lambda *_a, **_k: _Bundle()) + + with pytest.raises(RuntimeError, match="size did not match"): + materializer._verified_uv_binary(archive) + + +def test_install_trusted_uv_verifies_version_and_caches_path( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + """The installer writes one executable, verifies its version, and caches it.""" + materializer._install_trusted_uv.cache_clear() + monkeypatch.setattr(materializer.tempfile, "mkdtemp", lambda **_k: str(tmp_path / "uv")) + monkeypatch.setattr(materializer, "_download_trusted_uv_archive", lambda: b"archive") + monkeypatch.setattr(materializer, "_verified_uv_binary", lambda _payload: b"binary") + registered: list[tuple[object, ...]] = [] + monkeypatch.setattr(materializer.atexit, "register", lambda *args, **_kwargs: registered.append(args)) + calls = 0 + + def verify(*_args: object, **_kwargs: object) -> subprocess.CompletedProcess[bytes]: + nonlocal calls + calls += 1 + return subprocess.CompletedProcess([], 0, b"uv 0.12.1\n", b"") + + monkeypatch.setattr(materializer.subprocess, "run", verify) + + first = materializer._install_trusted_uv() + second = materializer._install_trusted_uv() + + assert first == second == str(tmp_path / "uv" / "uv") + assert Path(first).read_bytes() == b"binary" + assert Path(first).stat().st_mode & 0o111 + assert calls == 1 + assert registered + materializer._install_trusted_uv.cache_clear() + + +@pytest.mark.parametrize( + "failure", + [ + FileNotFoundError("missing binary"), + subprocess.TimeoutExpired(["uv", "--version"], timeout=10), + ], +) +def test_install_trusted_uv_rejects_version_process_failures( + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, + failure: OSError | subprocess.TimeoutExpired, +) -> None: + """A missing or hung downloaded executable is removed and rejected.""" + materializer._install_trusted_uv.cache_clear() + tool_dir = tmp_path / "uv" + monkeypatch.setattr(materializer.tempfile, "mkdtemp", lambda **_k: str(tool_dir)) + monkeypatch.setattr(materializer, "_download_trusted_uv_archive", lambda: b"archive") + monkeypatch.setattr(materializer, "_verified_uv_binary", lambda _payload: b"binary") + + def fail(*_args: object, **_kwargs: object) -> None: + raise failure + + monkeypatch.setattr(materializer.subprocess, "run", fail) + with pytest.raises(RuntimeError, match="executable verification failed"): + materializer._install_trusted_uv() + assert not tool_dir.exists() + materializer._install_trusted_uv.cache_clear() + + +def test_install_trusted_uv_rejects_wrong_version_or_exit_status( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + """Unexpected version output or a nonzero status cannot satisfy the pin.""" + for completed in ( + subprocess.CompletedProcess([], 0, b"uv 0.12.0\n", b""), + subprocess.CompletedProcess([], 1, b"uv 0.12.1\n", b"failed"), + ): + materializer._install_trusted_uv.cache_clear() + tool_dir = tmp_path / f"uv-{completed.returncode}-{len(completed.stdout)}" + monkeypatch.setattr( + materializer.tempfile, "mkdtemp", lambda **_k: str(tool_dir) + ) + monkeypatch.setattr(materializer, "_download_trusted_uv_archive", lambda: b"archive") + monkeypatch.setattr(materializer, "_verified_uv_binary", lambda _payload: b"binary") + monkeypatch.setattr(materializer.subprocess, "run", lambda *_a, **_k: completed) + with pytest.raises(RuntimeError, match="unexpected version or exit status"): + materializer._install_trusted_uv() + assert not tool_dir.exists() + materializer._install_trusted_uv.cache_clear() + + def test_run_uv_export_invokes_uv_with_frozen_offline_flags( tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: @@ -475,18 +769,19 @@ def fake_run(argv: list[str], **kwargs: object) -> subprocess.CompletedProcess[b subprocess.TimeoutExpired(["/usr/bin/uv", "export"], timeout=120), ], ) -def test_uv_export_process_failures_fall_back_to_no_lock( +def test_uv_export_process_failures_fail_closed( tmp_path: Path, monkeypatch: pytest.MonkeyPatch, export_error: OSError | subprocess.TimeoutExpired, ) -> None: - """A missing or hung uv process preserves the documented best-effort fallback.""" + """A missing or hung trusted uv process cannot silently drop dependencies.""" repo, base_sha = _uv_repo(tmp_path, with_pyproject=True) - monkeypatch.setattr(materializer.shutil, "which", lambda _name: "/usr/bin/uv") + monkeypatch.setattr(materializer, "_install_trusted_uv", lambda: "/usr/bin/uv") def fail_export(_work: Path, _uv_path: str) -> None: raise export_error monkeypatch.setattr(materializer, "_run_uv_export", fail_export) - assert materializer.materialize(repo, base_sha, tmp_path / "output") == [] + with pytest.raises(RuntimeError, match="could not run trusted uv export"): + materializer.materialize(repo, base_sha, tmp_path / "output")