diff --git a/runtime/history/HOMELAB-123-RESOLUTION-124.json b/runtime/history/HOMELAB-123-RESOLUTION-124.json new file mode 100644 index 0000000..f8f4f8a --- /dev/null +++ b/runtime/history/HOMELAB-123-RESOLUTION-124.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HOMELAB-123-RESOLUTION-124", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "read-only", + "component": "cluster-audit", + "started_at_utc": "2026-07-21T16:03:11Z", + "finished_at_utc": "2026-07-21T16:03:11Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752", + "command_sha256": "54c85d2fcf7a473baa0c61aaaf6583b3f36b8fea59049871da97a269b73bad19", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "changes_made": false, + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7", + "sanitized_output_sha256": "2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64; exec(compile(base64.b64decode(\"CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IHJlCmltcG9ydCB1cmxsaWIucGFyc2UKaW1wb3J0IHVybGxpYi5yZXF1ZXN0CgpCQVNFID0gImh0dHBzOi8vZ2l0LmdyYW0xLnJ1IgpSRVBPID0gImhvbWVsYWItYWRtaW4vaG9tZWxhYi1wdWJsaWMtY29udGV4dCIKQlJBTkNIID0gImFzc2lzdGFudC1ydW50aW1lIgpUQVJHRVQgPSAiSE9NRUxBQi0xMjItREVDSVNJT04tMTIzIgoKZGVmIGZldGNoKHVybCwgdGltZW91dD05MCk6CiAgICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KHVybCwgaGVhZGVycz17IlVzZXItQWdlbnQiOiAiaG9tZWxhYi0xMjMtcmVzb2x1dGlvbi8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfaGlzdG9yeShjb21tYW5kX2lkKToKICAgIHZhbHVlcyA9IHt9CiAgICBjb21taXRzID0gW10KICAgIGZvciBleHQgaW4gKCJqc29uIiwgInR4dCIpOgogICAgICAgIHBhdGggPSBmInJ1bnRpbWUvaGlzdG9yeS97Y29tbWFuZF9pZH0ue2V4dH0iCiAgICAgICAgZW5jb2RlZF9wYXRoID0gdXJsbGliLnBhcnNlLnF1b3RlKHBhdGgsIHNhZmU9Ii8iKQogICAgICAgIG1ldGEgPSBmZXRjaF9qc29uKGYie0JBU0V9L2FwaS92MS9yZXBvcy97UkVQT30vY29udGVudHMve2VuY29kZWRfcGF0aH0/cmVmPXtCUkFOQ0h9IikKICAgICAgICBicmFuY2hfYnl0ZXMgPSBiYXNlNjQuYjY0ZGVjb2RlKG1ldGFbImNvbnRlbnQiXSkKICAgICAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgICAgICBpZiBub3QgY29tbWl0OgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJtaXNzaW5nIGxhc3RfY29tbWl0X3NoYSBmb3Ige3BhdGh9IikKICAgICAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgICAgIGlmIGJyYW5jaF9ieXRlcyAhPSBpbW11dGFibGVfYnl0ZXM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihmImJyYW5jaC9jb21taXQgbWlzbWF0Y2ggZm9yIHtwYXRofSIpCiAgICAgICAgdmFsdWVzW2V4dF0gPSBpbW11dGFibGVfYnl0ZXMKICAgICAgICBjb21taXRzLmFwcGVuZChjb21taXQpCiAgICBpZiBjb21taXRzWzBdICE9IGNvbW1pdHNbMV06CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYianNvbi90eHQgY29tbWl0IG1pc21hdGNoIGZvciB7Y29tbWFuZF9pZH06IHtjb21taXRzfSIpCiAgICBkYXRhID0ganNvbi5sb2Fkcyh2YWx1ZXNbImpzb24iXS5kZWNvZGUoInV0Zi04IikpCiAgICB0ZXh0ID0gdmFsdWVzWyJ0eHQiXS5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgIHJldHVybiBkYXRhLCB0ZXh0LCBjb21taXRzWzBdLCBoYXNobGliLnNoYTI1Nih2YWx1ZXNbImpzb24iXSkuaGV4ZGlnZXN0KCksIGhhc2hsaWIuc2hhMjU2KHZhbHVlc1sidHh0Il0pLmhleGRpZ2VzdCgpCgpkZWYgbWFya2VyKHRleHQsIG5hbWUsIGRlZmF1bHQ9IiIpOgogICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwocmYiXntyZS5lc2NhcGUobmFtZSl9PSguKikkIiwgdGV4dCwgZmxhZ3M9cmUuTSkKICAgIHJldHVybiBtYXRjaGVzWy0xXS5zdHJpcCgpIGlmIG1hdGNoZXMgZWxzZSBkZWZhdWx0Cgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmVycm9yc190ZXh0ID0gZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQpqc29uLmxvYWRzKGVycm9yc190ZXh0KQoKcmVzdWx0LCB0ZXh0LCBjb21taXQsIGpzb25fc2hhLCB0eHRfc2hhID0gaW1tdXRhYmxlX2hpc3RvcnkoVEFSR0VUKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjMgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJJTU1VVEFCTEVfQ09NTUlUPXtjb21taXR9IikKcHJpbnQoZiJKU09OX1NIQTI1Nj17anNvbl9zaGF9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXt0eHRfc2hhfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9Q09NTUFORF9GQUlMRUQiKQogICAgcHJpbnQoZiJFUlJPUl9SRUdJU1RSQVRJT05fMTIzPXsnUEFTUycgaWYgcmVnaXN0ZXJlZCBlbHNlICdNSVNTSU5HJ30iKQogICAgdGFpbCA9ICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkKICAgIHByaW50KCI9PT0gRkFJTFVSRV9FVklERU5DRV8xMjMgPT09IikKICAgIHByaW50KHRhaWwgaWYgdGFpbCBlbHNlICJFTVBUWSIpCiAgICBwcmludCgiTkVYVF9BQ1RJT049UkVCVUlMRF9ERUNJU0lPTl8xMjMiKQplbHNlOgogICAgaWYgIkhPTUVMQUJfMTIyX0RFQ0lTSU9OPUNPTVBMRVRFIiBub3QgaW4gdGV4dDoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbXBsZXRpb24gbWFya2VyIG1pc3NpbmcgaW4gMTIzIikKICAgIGRlY2lzaW9uID0gbWFya2VyKHRleHQsICJERUNJU0lPTl8xMjIiLCAiVU5LTk9XTiIpCiAgICB3b3JrZmxvdyA9IG1hcmtlcih0ZXh0LCAiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVMiLCAiVU5LTk9XTiIpCiAgICBuZXh0X2FjdGlvbiA9IG1hcmtlcih0ZXh0LCAiTkVYVF9BQ1RJT04iLCAiVU5LTk9XTiIpCiAgICBwcmludCgiPT09IFBBUlNFRF8xMjMgPT09IikKICAgIHByaW50KGYiREVDSVNJT05fMTIyPXtkZWNpc2lvbn0iKQogICAgcHJpbnQoZiJXT1JLRkxPV19TVEFUVVNfMTIzPXt3b3JrZmxvd30iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTl8xMjM9e25leHRfYWN0aW9ufSIpCiAgICBpZiBkZWNpc2lvbiA9PSAiUEFTUyIgYW5kIHdvcmtmbG93ID09ICJDT01QTEVURSIgYW5kIG5leHRfYWN0aW9uID09ICJOT05FIjoKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9UEFTUyIpCiAgICAgICAgcHJpbnQoIkhPTUVMQUJfV09SS0ZMT1dfU1RBVFVTPUNPTVBMRVRFIikKICAgICAgICBwcmludCgiTkVYVF9BQ1RJT049Tk9ORSIpCiAgICBlbGlmIGRlY2lzaW9uID09ICJDT01NQU5EX0ZBSUxFRCI6CiAgICAgICAgcm9vdF9pZCA9ICJIT01FTEFCLUlOREVQRU5ERU5ULUZJTkFMLVNUQVRFLTEyMiIKICAgICAgICByb290LCByb290X3RleHQsIHJvb3RfY29tbWl0LCByb290X2pzb25fc2hhLCByb290X3R4dF9zaGEgPSBpbW11dGFibGVfaGlzdG9yeShyb290X2lkKQogICAgICAgIHJvb3Rfc3RhdHVzID0gc3RyKHJvb3QuZ2V0KCJzdGF0dXMiLCAiVU5LTk9XTiIpKQogICAgICAgIHJvb3RfcmMgPSBpbnQocm9vdC5nZXQoInJjIiwgLTk5OSkpCiAgICAgICAgcm9vdF9yZWdpc3RlcmVkID0gcm9vdF9pZCBpbiBlcnJvcnNfdGV4dAogICAgICAgIGpvaW5lZCA9IHJvb3RfdGV4dFstMzAwMDA6XQogICAgICAgIGlmIHJlLnNlYXJjaChyIlN5bnRheEVycm9yfHVuZXhwZWN0ZWQgRU9GfHVudGVybWluYXRlZHx1bmNsb3NlZHxxdW90Iiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJDT01NQU5EX1NZTlRBWF9PUl9RVU9USU5HX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJIVFRQRXJyb3J8NDA0fG5vdCBmb3VuZHxNSVNTSU5HPSIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiSU1NVVRBQkxFX1BBVEhfT1JfUFVCTElDQVRJT05fTE9PS1VQX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJBc3NlcnRpb25FcnJvcnxhc3NlcnQgIiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJJTlZBTElEX0FTU0VSVElPTl9PUl9FWFBFQ1RFRF9NQVJLRVIiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJUaW1lb3V0fHRpbWVkIG91dCIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiVElNRU9VVCIKICAgICAgICBlbHNlOgogICAgICAgICAgICBmYWlsdXJlX2NsYXNzID0gIlVOQ0xBU1NJRklFRF9DT01NQU5EX0ZBSUxVUkUiCiAgICAgICAgcHJpbnQoIj09PSBJTU1VVEFCTEVfUk9PVF8xMjIgPT09IikKICAgICAgICBwcmludChmIlJPT1RfQ09NTUFORF9JRD17cm9vdF9pZH0iKQogICAgICAgIHByaW50KGYiUk9PVF9JTU1VVEFCTEVfQ09NTUlUPXtyb290X2NvbW1pdH0iKQogICAgICAgIHByaW50KGYiUk9PVF9KU09OX1NIQTI1Nj17cm9vdF9qc29uX3NoYX0iKQogICAgICAgIHByaW50KGYiUk9PVF9UWFRfU0hBMjU2PXtyb290X3R4dF9zaGF9IikKICAgICAgICBwcmludChmIlJPT1RfU1RBVFVTPXtyb290X3N0YXR1c30iKQogICAgICAgIHByaW50KGYiUk9PVF9SQz17cm9vdF9yY30iKQogICAgICAgIHByaW50KGYiUk9PVF9FUlJPUl9SRUdJU1RFUkVEPXsneWVzJyBpZiByb290X3JlZ2lzdGVyZWQgZWxzZSAnbm8nfSIpCiAgICAgICAgcHJpbnQoZiJST09UX0ZBSUxVUkVfQ0xBU1M9e2ZhaWx1cmVfY2xhc3N9IikKICAgICAgICBwcmludCgiPT09IFJPT1RfRkFJTFVSRV9FVklERU5DRV8xMjIgPT09IikKICAgICAgICBwcmludCgiXG4iLmpvaW4ocm9vdF90ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkgb3IgIkVNUFRZIikKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRF9CWV8xMjIiKQogICAgICAgIHByaW50KCJORVhUX0FDVElPTj1SRUJVSUxEX0lOREVQRU5ERU5UX0ZJTkFMX0dBVEUiKQogICAgZWxzZToKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRCIpCiAgICAgICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb24gaWYgbmV4dF9hY3Rpb24gYW5kIG5leHRfYWN0aW9uICE9ICdVTktOT1dOJyBlbHNlICdDTEFTU0lGWV9CTE9DS0VSXzEyMyd9IikKICAgICAgICBwcmludCgiPT09IEJMT0NLRVJfRVZJREVOQ0VfMTIzID09PSIpCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGxpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkKICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHIiQkxPQ0tFRHxGQUlMfEVSUk9SfE1JU1NJTkd8REVHUkFERUR8UklTS1M9WzEtOV18QVJDSElWRVM9WzEtOV18UFJPQkVfRkFJTFVSRVM9WzEtOV0iLCBsaW5lLCByZS5JKQogICAgICAgIF0KICAgICAgICBwcmludCgiXG4iLmpvaW4obGluZXNbLTYwMDpdKSBpZiBsaW5lcyBlbHNlICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkpCgpwcmludCgiSE9NRUxBQl8xMjNfUkVTT0xVVElPTj1DT01QTEVURSIK\"), \"\", \"exec\"))\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 143\n print(\"HOMELAB_123_RESOLUTION=COMPLETE\"\n ^\nSyntaxError: '(' was never closed\n" +} diff --git a/runtime/history/HOMELAB-123-RESOLUTION-124.txt b/runtime/history/HOMELAB-123-RESOLUTION-124.txt new file mode 100644 index 0000000..cb88efd --- /dev/null +++ b/runtime/history/HOMELAB-123-RESOLUTION-124.txt @@ -0,0 +1,32 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HOMELAB-123-RESOLUTION-124 +STATUS=FAIL +RC=1 +HOST=pve01 +MODE=read-only +COMPONENT=cluster-audit +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752 +COMMAND_SHA256=54c85d2fcf7a473baa0c61aaaf6583b3f36b8fea59049871da97a269b73bad19 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGES_MADE=false +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7 +SANITIZED_OUTPUT_SHA256=2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7 +OUTPUT_BEGIN +Traceback (most recent call last): + File "", line 1, in + import base64; exec(compile(base64.b64decode("CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IHJlCmltcG9ydCB1cmxsaWIucGFyc2UKaW1wb3J0IHVybGxpYi5yZXF1ZXN0CgpCQVNFID0gImh0dHBzOi8vZ2l0LmdyYW0xLnJ1IgpSRVBPID0gImhvbWVsYWItYWRtaW4vaG9tZWxhYi1wdWJsaWMtY29udGV4dCIKQlJBTkNIID0gImFzc2lzdGFudC1ydW50aW1lIgpUQVJHRVQgPSAiSE9NRUxBQi0xMjItREVDSVNJT04tMTIzIgoKZGVmIGZldGNoKHVybCwgdGltZW91dD05MCk6CiAgICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KHVybCwgaGVhZGVycz17IlVzZXItQWdlbnQiOiAiaG9tZWxhYi0xMjMtcmVzb2x1dGlvbi8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfaGlzdG9yeShjb21tYW5kX2lkKToKICAgIHZhbHVlcyA9IHt9CiAgICBjb21taXRzID0gW10KICAgIGZvciBleHQgaW4gKCJqc29uIiwgInR4dCIpOgogICAgICAgIHBhdGggPSBmInJ1bnRpbWUvaGlzdG9yeS97Y29tbWFuZF9pZH0ue2V4dH0iCiAgICAgICAgZW5jb2RlZF9wYXRoID0gdXJsbGliLnBhcnNlLnF1b3RlKHBhdGgsIHNhZmU9Ii8iKQogICAgICAgIG1ldGEgPSBmZXRjaF9qc29uKGYie0JBU0V9L2FwaS92MS9yZXBvcy97UkVQT30vY29udGVudHMve2VuY29kZWRfcGF0aH0/cmVmPXtCUkFOQ0h9IikKICAgICAgICBicmFuY2hfYnl0ZXMgPSBiYXNlNjQuYjY0ZGVjb2RlKG1ldGFbImNvbnRlbnQiXSkKICAgICAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgICAgICBpZiBub3QgY29tbWl0OgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJtaXNzaW5nIGxhc3RfY29tbWl0X3NoYSBmb3Ige3BhdGh9IikKICAgICAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgICAgIGlmIGJyYW5jaF9ieXRlcyAhPSBpbW11dGFibGVfYnl0ZXM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihmImJyYW5jaC9jb21taXQgbWlzbWF0Y2ggZm9yIHtwYXRofSIpCiAgICAgICAgdmFsdWVzW2V4dF0gPSBpbW11dGFibGVfYnl0ZXMKICAgICAgICBjb21taXRzLmFwcGVuZChjb21taXQpCiAgICBpZiBjb21taXRzWzBdICE9IGNvbW1pdHNbMV06CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYianNvbi90eHQgY29tbWl0IG1pc21hdGNoIGZvciB7Y29tbWFuZF9pZH06IHtjb21taXRzfSIpCiAgICBkYXRhID0ganNvbi5sb2Fkcyh2YWx1ZXNbImpzb24iXS5kZWNvZGUoInV0Zi04IikpCiAgICB0ZXh0ID0gdmFsdWVzWyJ0eHQiXS5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgIHJldHVybiBkYXRhLCB0ZXh0LCBjb21taXRzWzBdLCBoYXNobGliLnNoYTI1Nih2YWx1ZXNbImpzb24iXSkuaGV4ZGlnZXN0KCksIGhhc2hsaWIuc2hhMjU2KHZhbHVlc1sidHh0Il0pLmhleGRpZ2VzdCgpCgpkZWYgbWFya2VyKHRleHQsIG5hbWUsIGRlZmF1bHQ9IiIpOgogICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwocmYiXntyZS5lc2NhcGUobmFtZSl9PSguKikkIiwgdGV4dCwgZmxhZ3M9cmUuTSkKICAgIHJldHVybiBtYXRjaGVzWy0xXS5zdHJpcCgpIGlmIG1hdGNoZXMgZWxzZSBkZWZhdWx0Cgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmVycm9yc190ZXh0ID0gZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQpqc29uLmxvYWRzKGVycm9yc190ZXh0KQoKcmVzdWx0LCB0ZXh0LCBjb21taXQsIGpzb25fc2hhLCB0eHRfc2hhID0gaW1tdXRhYmxlX2hpc3RvcnkoVEFSR0VUKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjMgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJJTU1VVEFCTEVfQ09NTUlUPXtjb21taXR9IikKcHJpbnQoZiJKU09OX1NIQTI1Nj17anNvbl9zaGF9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXt0eHRfc2hhfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9Q09NTUFORF9GQUlMRUQiKQogICAgcHJpbnQoZiJFUlJPUl9SRUdJU1RSQVRJT05fMTIzPXsnUEFTUycgaWYgcmVnaXN0ZXJlZCBlbHNlICdNSVNTSU5HJ30iKQogICAgdGFpbCA9ICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkKICAgIHByaW50KCI9PT0gRkFJTFVSRV9FVklERU5DRV8xMjMgPT09IikKICAgIHByaW50KHRhaWwgaWYgdGFpbCBlbHNlICJFTVBUWSIpCiAgICBwcmludCgiTkVYVF9BQ1RJT049UkVCVUlMRF9ERUNJU0lPTl8xMjMiKQplbHNlOgogICAgaWYgIkhPTUVMQUJfMTIyX0RFQ0lTSU9OPUNPTVBMRVRFIiBub3QgaW4gdGV4dDoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbXBsZXRpb24gbWFya2VyIG1pc3NpbmcgaW4gMTIzIikKICAgIGRlY2lzaW9uID0gbWFya2VyKHRleHQsICJERUNJU0lPTl8xMjIiLCAiVU5LTk9XTiIpCiAgICB3b3JrZmxvdyA9IG1hcmtlcih0ZXh0LCAiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVMiLCAiVU5LTk9XTiIpCiAgICBuZXh0X2FjdGlvbiA9IG1hcmtlcih0ZXh0LCAiTkVYVF9BQ1RJT04iLCAiVU5LTk9XTiIpCiAgICBwcmludCgiPT09IFBBUlNFRF8xMjMgPT09IikKICAgIHByaW50KGYiREVDSVNJT05fMTIyPXtkZWNpc2lvbn0iKQogICAgcHJpbnQoZiJXT1JLRkxPV19TVEFUVVNfMTIzPXt3b3JrZmxvd30iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTl8xMjM9e25leHRfYWN0aW9ufSIpCiAgICBpZiBkZWNpc2lvbiA9PSAiUEFTUyIgYW5kIHdvcmtmbG93ID09ICJDT01QTEVURSIgYW5kIG5leHRfYWN0aW9uID09ICJOT05FIjoKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9UEFTUyIpCiAgICAgICAgcHJpbnQoIkhPTUVMQUJfV09SS0ZMT1dfU1RBVFVTPUNPTVBMRVRFIikKICAgICAgICBwcmludCgiTkVYVF9BQ1RJT049Tk9ORSIpCiAgICBlbGlmIGRlY2lzaW9uID09ICJDT01NQU5EX0ZBSUxFRCI6CiAgICAgICAgcm9vdF9pZCA9ICJIT01FTEFCLUlOREVQRU5ERU5ULUZJTkFMLVNUQVRFLTEyMiIKICAgICAgICByb290LCByb290X3RleHQsIHJvb3RfY29tbWl0LCByb290X2pzb25fc2hhLCByb290X3R4dF9zaGEgPSBpbW11dGFibGVfaGlzdG9yeShyb290X2lkKQogICAgICAgIHJvb3Rfc3RhdHVzID0gc3RyKHJvb3QuZ2V0KCJzdGF0dXMiLCAiVU5LTk9XTiIpKQogICAgICAgIHJvb3RfcmMgPSBpbnQocm9vdC5nZXQoInJjIiwgLTk5OSkpCiAgICAgICAgcm9vdF9yZWdpc3RlcmVkID0gcm9vdF9pZCBpbiBlcnJvcnNfdGV4dAogICAgICAgIGpvaW5lZCA9IHJvb3RfdGV4dFstMzAwMDA6XQogICAgICAgIGlmIHJlLnNlYXJjaChyIlN5bnRheEVycm9yfHVuZXhwZWN0ZWQgRU9GfHVudGVybWluYXRlZHx1bmNsb3NlZHxxdW90Iiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJDT01NQU5EX1NZTlRBWF9PUl9RVU9USU5HX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJIVFRQRXJyb3J8NDA0fG5vdCBmb3VuZHxNSVNTSU5HPSIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiSU1NVVRBQkxFX1BBVEhfT1JfUFVCTElDQVRJT05fTE9PS1VQX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJBc3NlcnRpb25FcnJvcnxhc3NlcnQgIiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJJTlZBTElEX0FTU0VSVElPTl9PUl9FWFBFQ1RFRF9NQVJLRVIiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJUaW1lb3V0fHRpbWVkIG91dCIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiVElNRU9VVCIKICAgICAgICBlbHNlOgogICAgICAgICAgICBmYWlsdXJlX2NsYXNzID0gIlVOQ0xBU1NJRklFRF9DT01NQU5EX0ZBSUxVUkUiCiAgICAgICAgcHJpbnQoIj09PSBJTU1VVEFCTEVfUk9PVF8xMjIgPT09IikKICAgICAgICBwcmludChmIlJPT1RfQ09NTUFORF9JRD17cm9vdF9pZH0iKQogICAgICAgIHByaW50KGYiUk9PVF9JTU1VVEFCTEVfQ09NTUlUPXtyb290X2NvbW1pdH0iKQogICAgICAgIHByaW50KGYiUk9PVF9KU09OX1NIQTI1Nj17cm9vdF9qc29uX3NoYX0iKQogICAgICAgIHByaW50KGYiUk9PVF9UWFRfU0hBMjU2PXtyb290X3R4dF9zaGF9IikKICAgICAgICBwcmludChmIlJPT1RfU1RBVFVTPXtyb290X3N0YXR1c30iKQogICAgICAgIHByaW50KGYiUk9PVF9SQz17cm9vdF9yY30iKQogICAgICAgIHByaW50KGYiUk9PVF9FUlJPUl9SRUdJU1RFUkVEPXsneWVzJyBpZiByb290X3JlZ2lzdGVyZWQgZWxzZSAnbm8nfSIpCiAgICAgICAgcHJpbnQoZiJST09UX0ZBSUxVUkVfQ0xBU1M9e2ZhaWx1cmVfY2xhc3N9IikKICAgICAgICBwcmludCgiPT09IFJPT1RfRkFJTFVSRV9FVklERU5DRV8xMjIgPT09IikKICAgICAgICBwcmludCgiXG4iLmpvaW4ocm9vdF90ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkgb3IgIkVNUFRZIikKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRF9CWV8xMjIiKQogICAgICAgIHByaW50KCJORVhUX0FDVElPTj1SRUJVSUxEX0lOREVQRU5ERU5UX0ZJTkFMX0dBVEUiKQogICAgZWxzZToKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRCIpCiAgICAgICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb24gaWYgbmV4dF9hY3Rpb24gYW5kIG5leHRfYWN0aW9uICE9ICdVTktOT1dOJyBlbHNlICdDTEFTU0lGWV9CTE9DS0VSXzEyMyd9IikKICAgICAgICBwcmludCgiPT09IEJMT0NLRVJfRVZJREVOQ0VfMTIzID09PSIpCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGxpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkKICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHIiQkxPQ0tFRHxGQUlMfEVSUk9SfE1JU1NJTkd8REVHUkFERUR8UklTS1M9WzEtOV18QVJDSElWRVM9WzEtOV18UFJPQkVfRkFJTFVSRVM9WzEtOV0iLCBsaW5lLCByZS5JKQogICAgICAgIF0KICAgICAgICBwcmludCgiXG4iLmpvaW4obGluZXNbLTYwMDpdKSBpZiBsaW5lcyBlbHNlICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkpCgpwcmludCgiSE9NRUxBQl8xMjNfUkVTT0xVVElPTj1DT01QTEVURSIK"), "", "exec")) + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 143 + print("HOMELAB_123_RESOLUTION=COMPLETE" + ^ +SyntaxError: '(' was never closed + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 0577b95..f8f4f8a 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HOMELAB-122-DECISION-123", - "status": "OK", - "rc": 0, + "command_id": "HOMELAB-123-RESOLUTION-124", + "status": "FAIL", + "rc": 1, "host": "pve01", "mode": "read-only", "component": "cluster-audit", - "started_at_utc": "2026-07-21T15:59:07Z", - "finished_at_utc": "2026-07-21T15:59:07Z", + "started_at_utc": "2026-07-21T16:03:11Z", + "finished_at_utc": "2026-07-21T16:03:11Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752", - "command_sha256": "349e58af3a0fcb597cfcfd602116aed1ad8b32f3051714ae11cdc2decc64e1c4", + "command_sha256": "54c85d2fcf7a473baa0c61aaaf6583b3f36b8fea59049871da97a269b73bad19", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -22,9 +22,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "ceccc88286d1fa9aed82b7df3a2a03cd394b9fddc1c06bb2ab9efdd5822bcbd1", - "sanitized_output_sha256": "ceccc88286d1fa9aed82b7df3a2a03cd394b9fddc1c06bb2ab9efdd5822bcbd1", + "raw_evidence_sha256": "2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7", + "sanitized_output_sha256": "2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "=== IMMUTABLE_122 ===\nCOMMAND_ID=HOMELAB-INDEPENDENT-FINAL-STATE-122\nIMMUTABLE_COMMIT=97301771d177621643129aba26090667abc04c43\ncut: '\"': No such file or directory\nJSON_SHA256=\ncut: '\"': No such file or directory\nTXT_SHA256=\ncut: '\"': No such file or directory\nERROR_REGISTER_SHA256=\nSTATUS=OK\nRC=0\nEXECUTION_STARTED=true\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nERROR_REGISTERED=no\n=== RESULT_MARKERS ===\nPROBE_FAILURES=0\nQUORUM_RISKS=0\nFAILED_UNIT_RISKS=3\nSTORAGE_STATE_RISKS=0\nCAPACITY_RISKS=0\nKERNEL_RISKS=0\nBACKUP_POLICY_RISKS=6\nLOCAL_BACKUP_ARCHIVES=12\nTOTAL_FINAL_RISKS=21\nHOMELAB_FINAL_STATE=BLOCKED\nFINAL_GATE=BLOCKED\nNEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS\nHOMELAB_INDEPENDENT_FINAL_STATE=COMPLETE\nPARSED_STATE=COMPLETE\nPARSED_GATE=BLOCKED\nPARSED_WORKFLOW=UNKNOWN\nPARSED_TOTAL_RISKS=21\nPARSED_NEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS\nDECISION_122=BLOCKED\nNEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS\n=== BLOCKER_EVIDENCE ===\nCOMPONENT=cluster-audit\nREFERENCE_REGISTER_CHECK=OK\nREFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752\nCOMMAND_SHA256=b3b366284f3b29c9881d7ddd136b158f6d1ccb5b9b40115149cf2a24918fd4c5\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nEXECUTION_STARTED=true\nCHANGES_MADE=false\nSANITIZED=yes\nSECRETS_INCLUDED=no\nPRIVATE_ADDRESSES_INCLUDED=no\nRAW_EVIDENCE_SHA256=e353d492c484c1f16581d8bfaa55cf0466c8b60ccb2072e139d952985753eb1e\nSANITIZED_OUTPUT_SHA256=e353d492c484c1f16581d8bfaa55cf0466c8b60ccb2072e139d952985753eb1e\nOUTPUT_BEGIN\n--\nSTATUS=OK\nRC=0\nEXECUTION_STARTED=yes\nERROR_REGISTERED=no\nPREVIOUS_FINAL_VERIFICATION=BLOCKED\nPREVIOUS_NEXT_ACTION=REPAIR_COMMAND_119\nPREVIOUS_FINAL_DECISION_120=PREVIOUS_COMMAND_FAILED\nPREVIOUS_WORKFLOW_STATUS_120=UNKNOWN\nPREVIOUS_NEXT_ACTION_120=REPAIR_COMMAND_119\n=== INDEPENDENT_FINAL_STATE ===\nPROBE_FAILURES=0\nQUORUM_RISKS=0\nFAILED_UNIT_RISKS=3\nSTORAGE_STATE_RISKS=0\nCAPACITY_RISKS=0\nKERNEL_RISKS=0\nBACKUP_POLICY_RISKS=6\nLOCAL_BACKUP_ARCHIVES=12\nTOTAL_FINAL_RISKS=21\nHOMELAB_FINAL_STATE=BLOCKED\nFINAL_GATE=BLOCKED\nNEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS\n=== PROBE_FAILURE_EVIDENCE ===\nNONE\n=== QUORUM_EVIDENCE ===\nNONE\n=== FAILED_UNIT_EVIDENCE ===\nhomelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state\nhomelab-cluster-admin-pull.service loaded failed failed Pull cluster-admin observer health into pve01\nhomelab-vm160-remote-backup.service loaded failed failed VM160 full-image backup streamed from pve02 to pve03\n=== STORAGE_EVIDENCE ===\nNONE\n=== CAPACITY_EVIDENCE ===\nNONE\n=== KERNEL_EVIDENCE ===\nHOMELAB_122_DECISION=COMPLETE\n" + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64; exec(compile(base64.b64decode(\"CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IHJlCmltcG9ydCB1cmxsaWIucGFyc2UKaW1wb3J0IHVybGxpYi5yZXF1ZXN0CgpCQVNFID0gImh0dHBzOi8vZ2l0LmdyYW0xLnJ1IgpSRVBPID0gImhvbWVsYWItYWRtaW4vaG9tZWxhYi1wdWJsaWMtY29udGV4dCIKQlJBTkNIID0gImFzc2lzdGFudC1ydW50aW1lIgpUQVJHRVQgPSAiSE9NRUxBQi0xMjItREVDSVNJT04tMTIzIgoKZGVmIGZldGNoKHVybCwgdGltZW91dD05MCk6CiAgICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KHVybCwgaGVhZGVycz17IlVzZXItQWdlbnQiOiAiaG9tZWxhYi0xMjMtcmVzb2x1dGlvbi8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfaGlzdG9yeShjb21tYW5kX2lkKToKICAgIHZhbHVlcyA9IHt9CiAgICBjb21taXRzID0gW10KICAgIGZvciBleHQgaW4gKCJqc29uIiwgInR4dCIpOgogICAgICAgIHBhdGggPSBmInJ1bnRpbWUvaGlzdG9yeS97Y29tbWFuZF9pZH0ue2V4dH0iCiAgICAgICAgZW5jb2RlZF9wYXRoID0gdXJsbGliLnBhcnNlLnF1b3RlKHBhdGgsIHNhZmU9Ii8iKQogICAgICAgIG1ldGEgPSBmZXRjaF9qc29uKGYie0JBU0V9L2FwaS92MS9yZXBvcy97UkVQT30vY29udGVudHMve2VuY29kZWRfcGF0aH0/cmVmPXtCUkFOQ0h9IikKICAgICAgICBicmFuY2hfYnl0ZXMgPSBiYXNlNjQuYjY0ZGVjb2RlKG1ldGFbImNvbnRlbnQiXSkKICAgICAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgICAgICBpZiBub3QgY29tbWl0OgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJtaXNzaW5nIGxhc3RfY29tbWl0X3NoYSBmb3Ige3BhdGh9IikKICAgICAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgICAgIGlmIGJyYW5jaF9ieXRlcyAhPSBpbW11dGFibGVfYnl0ZXM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihmImJyYW5jaC9jb21taXQgbWlzbWF0Y2ggZm9yIHtwYXRofSIpCiAgICAgICAgdmFsdWVzW2V4dF0gPSBpbW11dGFibGVfYnl0ZXMKICAgICAgICBjb21taXRzLmFwcGVuZChjb21taXQpCiAgICBpZiBjb21taXRzWzBdICE9IGNvbW1pdHNbMV06CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYianNvbi90eHQgY29tbWl0IG1pc21hdGNoIGZvciB7Y29tbWFuZF9pZH06IHtjb21taXRzfSIpCiAgICBkYXRhID0ganNvbi5sb2Fkcyh2YWx1ZXNbImpzb24iXS5kZWNvZGUoInV0Zi04IikpCiAgICB0ZXh0ID0gdmFsdWVzWyJ0eHQiXS5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgIHJldHVybiBkYXRhLCB0ZXh0LCBjb21taXRzWzBdLCBoYXNobGliLnNoYTI1Nih2YWx1ZXNbImpzb24iXSkuaGV4ZGlnZXN0KCksIGhhc2hsaWIuc2hhMjU2KHZhbHVlc1sidHh0Il0pLmhleGRpZ2VzdCgpCgpkZWYgbWFya2VyKHRleHQsIG5hbWUsIGRlZmF1bHQ9IiIpOgogICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwocmYiXntyZS5lc2NhcGUobmFtZSl9PSguKikkIiwgdGV4dCwgZmxhZ3M9cmUuTSkKICAgIHJldHVybiBtYXRjaGVzWy0xXS5zdHJpcCgpIGlmIG1hdGNoZXMgZWxzZSBkZWZhdWx0Cgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmVycm9yc190ZXh0ID0gZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQpqc29uLmxvYWRzKGVycm9yc190ZXh0KQoKcmVzdWx0LCB0ZXh0LCBjb21taXQsIGpzb25fc2hhLCB0eHRfc2hhID0gaW1tdXRhYmxlX2hpc3RvcnkoVEFSR0VUKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjMgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJJTU1VVEFCTEVfQ09NTUlUPXtjb21taXR9IikKcHJpbnQoZiJKU09OX1NIQTI1Nj17anNvbl9zaGF9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXt0eHRfc2hhfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9Q09NTUFORF9GQUlMRUQiKQogICAgcHJpbnQoZiJFUlJPUl9SRUdJU1RSQVRJT05fMTIzPXsnUEFTUycgaWYgcmVnaXN0ZXJlZCBlbHNlICdNSVNTSU5HJ30iKQogICAgdGFpbCA9ICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkKICAgIHByaW50KCI9PT0gRkFJTFVSRV9FVklERU5DRV8xMjMgPT09IikKICAgIHByaW50KHRhaWwgaWYgdGFpbCBlbHNlICJFTVBUWSIpCiAgICBwcmludCgiTkVYVF9BQ1RJT049UkVCVUlMRF9ERUNJU0lPTl8xMjMiKQplbHNlOgogICAgaWYgIkhPTUVMQUJfMTIyX0RFQ0lTSU9OPUNPTVBMRVRFIiBub3QgaW4gdGV4dDoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbXBsZXRpb24gbWFya2VyIG1pc3NpbmcgaW4gMTIzIikKICAgIGRlY2lzaW9uID0gbWFya2VyKHRleHQsICJERUNJU0lPTl8xMjIiLCAiVU5LTk9XTiIpCiAgICB3b3JrZmxvdyA9IG1hcmtlcih0ZXh0LCAiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVMiLCAiVU5LTk9XTiIpCiAgICBuZXh0X2FjdGlvbiA9IG1hcmtlcih0ZXh0LCAiTkVYVF9BQ1RJT04iLCAiVU5LTk9XTiIpCiAgICBwcmludCgiPT09IFBBUlNFRF8xMjMgPT09IikKICAgIHByaW50KGYiREVDSVNJT05fMTIyPXtkZWNpc2lvbn0iKQogICAgcHJpbnQoZiJXT1JLRkxPV19TVEFUVVNfMTIzPXt3b3JrZmxvd30iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTl8xMjM9e25leHRfYWN0aW9ufSIpCiAgICBpZiBkZWNpc2lvbiA9PSAiUEFTUyIgYW5kIHdvcmtmbG93ID09ICJDT01QTEVURSIgYW5kIG5leHRfYWN0aW9uID09ICJOT05FIjoKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9UEFTUyIpCiAgICAgICAgcHJpbnQoIkhPTUVMQUJfV09SS0ZMT1dfU1RBVFVTPUNPTVBMRVRFIikKICAgICAgICBwcmludCgiTkVYVF9BQ1RJT049Tk9ORSIpCiAgICBlbGlmIGRlY2lzaW9uID09ICJDT01NQU5EX0ZBSUxFRCI6CiAgICAgICAgcm9vdF9pZCA9ICJIT01FTEFCLUlOREVQRU5ERU5ULUZJTkFMLVNUQVRFLTEyMiIKICAgICAgICByb290LCByb290X3RleHQsIHJvb3RfY29tbWl0LCByb290X2pzb25fc2hhLCByb290X3R4dF9zaGEgPSBpbW11dGFibGVfaGlzdG9yeShyb290X2lkKQogICAgICAgIHJvb3Rfc3RhdHVzID0gc3RyKHJvb3QuZ2V0KCJzdGF0dXMiLCAiVU5LTk9XTiIpKQogICAgICAgIHJvb3RfcmMgPSBpbnQocm9vdC5nZXQoInJjIiwgLTk5OSkpCiAgICAgICAgcm9vdF9yZWdpc3RlcmVkID0gcm9vdF9pZCBpbiBlcnJvcnNfdGV4dAogICAgICAgIGpvaW5lZCA9IHJvb3RfdGV4dFstMzAwMDA6XQogICAgICAgIGlmIHJlLnNlYXJjaChyIlN5bnRheEVycm9yfHVuZXhwZWN0ZWQgRU9GfHVudGVybWluYXRlZHx1bmNsb3NlZHxxdW90Iiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJDT01NQU5EX1NZTlRBWF9PUl9RVU9USU5HX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJIVFRQRXJyb3J8NDA0fG5vdCBmb3VuZHxNSVNTSU5HPSIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiSU1NVVRBQkxFX1BBVEhfT1JfUFVCTElDQVRJT05fTE9PS1VQX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJBc3NlcnRpb25FcnJvcnxhc3NlcnQgIiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJJTlZBTElEX0FTU0VSVElPTl9PUl9FWFBFQ1RFRF9NQVJLRVIiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJUaW1lb3V0fHRpbWVkIG91dCIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiVElNRU9VVCIKICAgICAgICBlbHNlOgogICAgICAgICAgICBmYWlsdXJlX2NsYXNzID0gIlVOQ0xBU1NJRklFRF9DT01NQU5EX0ZBSUxVUkUiCiAgICAgICAgcHJpbnQoIj09PSBJTU1VVEFCTEVfUk9PVF8xMjIgPT09IikKICAgICAgICBwcmludChmIlJPT1RfQ09NTUFORF9JRD17cm9vdF9pZH0iKQogICAgICAgIHByaW50KGYiUk9PVF9JTU1VVEFCTEVfQ09NTUlUPXtyb290X2NvbW1pdH0iKQogICAgICAgIHByaW50KGYiUk9PVF9KU09OX1NIQTI1Nj17cm9vdF9qc29uX3NoYX0iKQogICAgICAgIHByaW50KGYiUk9PVF9UWFRfU0hBMjU2PXtyb290X3R4dF9zaGF9IikKICAgICAgICBwcmludChmIlJPT1RfU1RBVFVTPXtyb290X3N0YXR1c30iKQogICAgICAgIHByaW50KGYiUk9PVF9SQz17cm9vdF9yY30iKQogICAgICAgIHByaW50KGYiUk9PVF9FUlJPUl9SRUdJU1RFUkVEPXsneWVzJyBpZiByb290X3JlZ2lzdGVyZWQgZWxzZSAnbm8nfSIpCiAgICAgICAgcHJpbnQoZiJST09UX0ZBSUxVUkVfQ0xBU1M9e2ZhaWx1cmVfY2xhc3N9IikKICAgICAgICBwcmludCgiPT09IFJPT1RfRkFJTFVSRV9FVklERU5DRV8xMjIgPT09IikKICAgICAgICBwcmludCgiXG4iLmpvaW4ocm9vdF90ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkgb3IgIkVNUFRZIikKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRF9CWV8xMjIiKQogICAgICAgIHByaW50KCJORVhUX0FDVElPTj1SRUJVSUxEX0lOREVQRU5ERU5UX0ZJTkFMX0dBVEUiKQogICAgZWxzZToKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRCIpCiAgICAgICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb24gaWYgbmV4dF9hY3Rpb24gYW5kIG5leHRfYWN0aW9uICE9ICdVTktOT1dOJyBlbHNlICdDTEFTU0lGWV9CTE9DS0VSXzEyMyd9IikKICAgICAgICBwcmludCgiPT09IEJMT0NLRVJfRVZJREVOQ0VfMTIzID09PSIpCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGxpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkKICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHIiQkxPQ0tFRHxGQUlMfEVSUk9SfE1JU1NJTkd8REVHUkFERUR8UklTS1M9WzEtOV18QVJDSElWRVM9WzEtOV18UFJPQkVfRkFJTFVSRVM9WzEtOV0iLCBsaW5lLCByZS5JKQogICAgICAgIF0KICAgICAgICBwcmludCgiXG4iLmpvaW4obGluZXNbLTYwMDpdKSBpZiBsaW5lcyBlbHNlICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkpCgpwcmludCgiSE9NRUxBQl8xMjNfUkVTT0xVVElPTj1DT01QTEVURSIK\"), \"\", \"exec\"))\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 143\n print(\"HOMELAB_123_RESOLUTION=COMPLETE\"\n ^\nSyntaxError: '(' was never closed\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 3b4a1b9..cb88efd 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,7 +1,7 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMELAB-122-DECISION-123 -STATUS=OK -RC=0 +COMMAND_ID=HOMELAB-123-RESOLUTION-124 +STATUS=FAIL +RC=1 HOST=pve01 MODE=read-only COMPONENT=cluster-audit @@ -9,104 +9,24 @@ REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752 -COMMAND_SHA256=349e58af3a0fcb597cfcfd602116aed1ad8b32f3051714ae11cdc2decc64e1c4 +COMMAND_SHA256=54c85d2fcf7a473baa0c61aaaf6583b3f36b8fea59049871da97a269b73bad19 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGES_MADE=false SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=ceccc88286d1fa9aed82b7df3a2a03cd394b9fddc1c06bb2ab9efdd5822bcbd1 -SANITIZED_OUTPUT_SHA256=ceccc88286d1fa9aed82b7df3a2a03cd394b9fddc1c06bb2ab9efdd5822bcbd1 +RAW_EVIDENCE_SHA256=2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7 +SANITIZED_OUTPUT_SHA256=2cbe569035a6a7830d2c45b85558c3ff21472a464fcd9a4b5fbc3d5740780ac7 OUTPUT_BEGIN -=== IMMUTABLE_122 === -COMMAND_ID=HOMELAB-INDEPENDENT-FINAL-STATE-122 -IMMUTABLE_COMMIT=97301771d177621643129aba26090667abc04c43 -cut: '"': No such file or directory -JSON_SHA256= -cut: '"': No such file or directory -TXT_SHA256= -cut: '"': No such file or directory -ERROR_REGISTER_SHA256= -STATUS=OK -RC=0 -EXECUTION_STARTED=true -DUPLICATE_FAILED_COMMAND_BLOCKED=false -ERROR_REGISTERED=no -=== RESULT_MARKERS === -PROBE_FAILURES=0 -QUORUM_RISKS=0 -FAILED_UNIT_RISKS=3 -STORAGE_STATE_RISKS=0 -CAPACITY_RISKS=0 -KERNEL_RISKS=0 -BACKUP_POLICY_RISKS=6 -LOCAL_BACKUP_ARCHIVES=12 -TOTAL_FINAL_RISKS=21 -HOMELAB_FINAL_STATE=BLOCKED -FINAL_GATE=BLOCKED -NEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS -HOMELAB_INDEPENDENT_FINAL_STATE=COMPLETE -PARSED_STATE=COMPLETE -PARSED_GATE=BLOCKED -PARSED_WORKFLOW=UNKNOWN -PARSED_TOTAL_RISKS=21 -PARSED_NEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS -DECISION_122=BLOCKED -NEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS -=== BLOCKER_EVIDENCE === -COMPONENT=cluster-audit -REFERENCE_REGISTER_CHECK=OK -REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e -ERROR_REGISTER_CHECK=OK -ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752 -COMMAND_SHA256=b3b366284f3b29c9881d7ddd136b158f6d1ccb5b9b40115149cf2a24918fd4c5 -DUPLICATE_FAILED_COMMAND_BLOCKED=false -EXECUTION_STARTED=true -CHANGES_MADE=false -SANITIZED=yes -SECRETS_INCLUDED=no -PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=e353d492c484c1f16581d8bfaa55cf0466c8b60ccb2072e139d952985753eb1e -SANITIZED_OUTPUT_SHA256=e353d492c484c1f16581d8bfaa55cf0466c8b60ccb2072e139d952985753eb1e -OUTPUT_BEGIN --- -STATUS=OK -RC=0 -EXECUTION_STARTED=yes -ERROR_REGISTERED=no -PREVIOUS_FINAL_VERIFICATION=BLOCKED -PREVIOUS_NEXT_ACTION=REPAIR_COMMAND_119 -PREVIOUS_FINAL_DECISION_120=PREVIOUS_COMMAND_FAILED -PREVIOUS_WORKFLOW_STATUS_120=UNKNOWN -PREVIOUS_NEXT_ACTION_120=REPAIR_COMMAND_119 -=== INDEPENDENT_FINAL_STATE === -PROBE_FAILURES=0 -QUORUM_RISKS=0 -FAILED_UNIT_RISKS=3 -STORAGE_STATE_RISKS=0 -CAPACITY_RISKS=0 -KERNEL_RISKS=0 -BACKUP_POLICY_RISKS=6 -LOCAL_BACKUP_ARCHIVES=12 -TOTAL_FINAL_RISKS=21 -HOMELAB_FINAL_STATE=BLOCKED -FINAL_GATE=BLOCKED -NEXT_ACTION=RECONCILE_DUAL_MAIL_CLOUD_BACKUPS -=== PROBE_FAILURE_EVIDENCE === -NONE -=== QUORUM_EVIDENCE === -NONE -=== FAILED_UNIT_EVIDENCE === -homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state -homelab-cluster-admin-pull.service loaded failed failed Pull cluster-admin observer health into pve01 -homelab-vm160-remote-backup.service loaded failed failed VM160 full-image backup streamed from pve02 to pve03 -=== STORAGE_EVIDENCE === -NONE -=== CAPACITY_EVIDENCE === -NONE -=== KERNEL_EVIDENCE === -HOMELAB_122_DECISION=COMPLETE +Traceback (most recent call last): + File "", line 1, in + import base64; exec(compile(base64.b64decode("CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IHJlCmltcG9ydCB1cmxsaWIucGFyc2UKaW1wb3J0IHVybGxpYi5yZXF1ZXN0CgpCQVNFID0gImh0dHBzOi8vZ2l0LmdyYW0xLnJ1IgpSRVBPID0gImhvbWVsYWItYWRtaW4vaG9tZWxhYi1wdWJsaWMtY29udGV4dCIKQlJBTkNIID0gImFzc2lzdGFudC1ydW50aW1lIgpUQVJHRVQgPSAiSE9NRUxBQi0xMjItREVDSVNJT04tMTIzIgoKZGVmIGZldGNoKHVybCwgdGltZW91dD05MCk6CiAgICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KHVybCwgaGVhZGVycz17IlVzZXItQWdlbnQiOiAiaG9tZWxhYi0xMjMtcmVzb2x1dGlvbi8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfaGlzdG9yeShjb21tYW5kX2lkKToKICAgIHZhbHVlcyA9IHt9CiAgICBjb21taXRzID0gW10KICAgIGZvciBleHQgaW4gKCJqc29uIiwgInR4dCIpOgogICAgICAgIHBhdGggPSBmInJ1bnRpbWUvaGlzdG9yeS97Y29tbWFuZF9pZH0ue2V4dH0iCiAgICAgICAgZW5jb2RlZF9wYXRoID0gdXJsbGliLnBhcnNlLnF1b3RlKHBhdGgsIHNhZmU9Ii8iKQogICAgICAgIG1ldGEgPSBmZXRjaF9qc29uKGYie0JBU0V9L2FwaS92MS9yZXBvcy97UkVQT30vY29udGVudHMve2VuY29kZWRfcGF0aH0/cmVmPXtCUkFOQ0h9IikKICAgICAgICBicmFuY2hfYnl0ZXMgPSBiYXNlNjQuYjY0ZGVjb2RlKG1ldGFbImNvbnRlbnQiXSkKICAgICAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgICAgICBpZiBub3QgY29tbWl0OgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJtaXNzaW5nIGxhc3RfY29tbWl0X3NoYSBmb3Ige3BhdGh9IikKICAgICAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgICAgIGlmIGJyYW5jaF9ieXRlcyAhPSBpbW11dGFibGVfYnl0ZXM6CiAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihmImJyYW5jaC9jb21taXQgbWlzbWF0Y2ggZm9yIHtwYXRofSIpCiAgICAgICAgdmFsdWVzW2V4dF0gPSBpbW11dGFibGVfYnl0ZXMKICAgICAgICBjb21taXRzLmFwcGVuZChjb21taXQpCiAgICBpZiBjb21taXRzWzBdICE9IGNvbW1pdHNbMV06CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYianNvbi90eHQgY29tbWl0IG1pc21hdGNoIGZvciB7Y29tbWFuZF9pZH06IHtjb21taXRzfSIpCiAgICBkYXRhID0ganNvbi5sb2Fkcyh2YWx1ZXNbImpzb24iXS5kZWNvZGUoInV0Zi04IikpCiAgICB0ZXh0ID0gdmFsdWVzWyJ0eHQiXS5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgIHJldHVybiBkYXRhLCB0ZXh0LCBjb21taXRzWzBdLCBoYXNobGliLnNoYTI1Nih2YWx1ZXNbImpzb24iXSkuaGV4ZGlnZXN0KCksIGhhc2hsaWIuc2hhMjU2KHZhbHVlc1sidHh0Il0pLmhleGRpZ2VzdCgpCgpkZWYgbWFya2VyKHRleHQsIG5hbWUsIGRlZmF1bHQ9IiIpOgogICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwocmYiXntyZS5lc2NhcGUobmFtZSl9PSguKikkIiwgdGV4dCwgZmxhZ3M9cmUuTSkKICAgIHJldHVybiBtYXRjaGVzWy0xXS5zdHJpcCgpIGlmIG1hdGNoZXMgZWxzZSBkZWZhdWx0Cgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmVycm9yc190ZXh0ID0gZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQpqc29uLmxvYWRzKGVycm9yc190ZXh0KQoKcmVzdWx0LCB0ZXh0LCBjb21taXQsIGpzb25fc2hhLCB0eHRfc2hhID0gaW1tdXRhYmxlX2hpc3RvcnkoVEFSR0VUKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjMgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJJTU1VVEFCTEVfQ09NTUlUPXtjb21taXR9IikKcHJpbnQoZiJKU09OX1NIQTI1Nj17anNvbl9zaGF9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXt0eHRfc2hhfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9Q09NTUFORF9GQUlMRUQiKQogICAgcHJpbnQoZiJFUlJPUl9SRUdJU1RSQVRJT05fMTIzPXsnUEFTUycgaWYgcmVnaXN0ZXJlZCBlbHNlICdNSVNTSU5HJ30iKQogICAgdGFpbCA9ICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkKICAgIHByaW50KCI9PT0gRkFJTFVSRV9FVklERU5DRV8xMjMgPT09IikKICAgIHByaW50KHRhaWwgaWYgdGFpbCBlbHNlICJFTVBUWSIpCiAgICBwcmludCgiTkVYVF9BQ1RJT049UkVCVUlMRF9ERUNJU0lPTl8xMjMiKQplbHNlOgogICAgaWYgIkhPTUVMQUJfMTIyX0RFQ0lTSU9OPUNPTVBMRVRFIiBub3QgaW4gdGV4dDoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbXBsZXRpb24gbWFya2VyIG1pc3NpbmcgaW4gMTIzIikKICAgIGRlY2lzaW9uID0gbWFya2VyKHRleHQsICJERUNJU0lPTl8xMjIiLCAiVU5LTk9XTiIpCiAgICB3b3JrZmxvdyA9IG1hcmtlcih0ZXh0LCAiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVMiLCAiVU5LTk9XTiIpCiAgICBuZXh0X2FjdGlvbiA9IG1hcmtlcih0ZXh0LCAiTkVYVF9BQ1RJT04iLCAiVU5LTk9XTiIpCiAgICBwcmludCgiPT09IFBBUlNFRF8xMjMgPT09IikKICAgIHByaW50KGYiREVDSVNJT05fMTIyPXtkZWNpc2lvbn0iKQogICAgcHJpbnQoZiJXT1JLRkxPV19TVEFUVVNfMTIzPXt3b3JrZmxvd30iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTl8xMjM9e25leHRfYWN0aW9ufSIpCiAgICBpZiBkZWNpc2lvbiA9PSAiUEFTUyIgYW5kIHdvcmtmbG93ID09ICJDT01QTEVURSIgYW5kIG5leHRfYWN0aW9uID09ICJOT05FIjoKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9UEFTUyIpCiAgICAgICAgcHJpbnQoIkhPTUVMQUJfV09SS0ZMT1dfU1RBVFVTPUNPTVBMRVRFIikKICAgICAgICBwcmludCgiTkVYVF9BQ1RJT049Tk9ORSIpCiAgICBlbGlmIGRlY2lzaW9uID09ICJDT01NQU5EX0ZBSUxFRCI6CiAgICAgICAgcm9vdF9pZCA9ICJIT01FTEFCLUlOREVQRU5ERU5ULUZJTkFMLVNUQVRFLTEyMiIKICAgICAgICByb290LCByb290X3RleHQsIHJvb3RfY29tbWl0LCByb290X2pzb25fc2hhLCByb290X3R4dF9zaGEgPSBpbW11dGFibGVfaGlzdG9yeShyb290X2lkKQogICAgICAgIHJvb3Rfc3RhdHVzID0gc3RyKHJvb3QuZ2V0KCJzdGF0dXMiLCAiVU5LTk9XTiIpKQogICAgICAgIHJvb3RfcmMgPSBpbnQocm9vdC5nZXQoInJjIiwgLTk5OSkpCiAgICAgICAgcm9vdF9yZWdpc3RlcmVkID0gcm9vdF9pZCBpbiBlcnJvcnNfdGV4dAogICAgICAgIGpvaW5lZCA9IHJvb3RfdGV4dFstMzAwMDA6XQogICAgICAgIGlmIHJlLnNlYXJjaChyIlN5bnRheEVycm9yfHVuZXhwZWN0ZWQgRU9GfHVudGVybWluYXRlZHx1bmNsb3NlZHxxdW90Iiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJDT01NQU5EX1NZTlRBWF9PUl9RVU9USU5HX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJIVFRQRXJyb3J8NDA0fG5vdCBmb3VuZHxNSVNTSU5HPSIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiSU1NVVRBQkxFX1BBVEhfT1JfUFVCTElDQVRJT05fTE9PS1VQX0ZBSUxVUkUiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJBc3NlcnRpb25FcnJvcnxhc3NlcnQgIiwgam9pbmVkLCByZS5JKToKICAgICAgICAgICAgZmFpbHVyZV9jbGFzcyA9ICJJTlZBTElEX0FTU0VSVElPTl9PUl9FWFBFQ1RFRF9NQVJLRVIiCiAgICAgICAgZWxpZiByZS5zZWFyY2gociJUaW1lb3V0fHRpbWVkIG91dCIsIGpvaW5lZCwgcmUuSSk6CiAgICAgICAgICAgIGZhaWx1cmVfY2xhc3MgPSAiVElNRU9VVCIKICAgICAgICBlbHNlOgogICAgICAgICAgICBmYWlsdXJlX2NsYXNzID0gIlVOQ0xBU1NJRklFRF9DT01NQU5EX0ZBSUxVUkUiCiAgICAgICAgcHJpbnQoIj09PSBJTU1VVEFCTEVfUk9PVF8xMjIgPT09IikKICAgICAgICBwcmludChmIlJPT1RfQ09NTUFORF9JRD17cm9vdF9pZH0iKQogICAgICAgIHByaW50KGYiUk9PVF9JTU1VVEFCTEVfQ09NTUlUPXtyb290X2NvbW1pdH0iKQogICAgICAgIHByaW50KGYiUk9PVF9KU09OX1NIQTI1Nj17cm9vdF9qc29uX3NoYX0iKQogICAgICAgIHByaW50KGYiUk9PVF9UWFRfU0hBMjU2PXtyb290X3R4dF9zaGF9IikKICAgICAgICBwcmludChmIlJPT1RfU1RBVFVTPXtyb290X3N0YXR1c30iKQogICAgICAgIHByaW50KGYiUk9PVF9SQz17cm9vdF9yY30iKQogICAgICAgIHByaW50KGYiUk9PVF9FUlJPUl9SRUdJU1RFUkVEPXsneWVzJyBpZiByb290X3JlZ2lzdGVyZWQgZWxzZSAnbm8nfSIpCiAgICAgICAgcHJpbnQoZiJST09UX0ZBSUxVUkVfQ0xBU1M9e2ZhaWx1cmVfY2xhc3N9IikKICAgICAgICBwcmludCgiPT09IFJPT1RfRkFJTFVSRV9FVklERU5DRV8xMjIgPT09IikKICAgICAgICBwcmludCgiXG4iLmpvaW4ocm9vdF90ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkgb3IgIkVNUFRZIikKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRF9CWV8xMjIiKQogICAgICAgIHByaW50KCJORVhUX0FDVElPTj1SRUJVSUxEX0lOREVQRU5ERU5UX0ZJTkFMX0dBVEUiKQogICAgZWxzZToKICAgICAgICBwcmludCgiUkVTT0xVVElPTl8xMjM9QkxPQ0tFRCIpCiAgICAgICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb24gaWYgbmV4dF9hY3Rpb24gYW5kIG5leHRfYWN0aW9uICE9ICdVTktOT1dOJyBlbHNlICdDTEFTU0lGWV9CTE9DS0VSXzEyMyd9IikKICAgICAgICBwcmludCgiPT09IEJMT0NLRVJfRVZJREVOQ0VfMTIzID09PSIpCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGxpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkKICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHIiQkxPQ0tFRHxGQUlMfEVSUk9SfE1JU1NJTkd8REVHUkFERUR8UklTS1M9WzEtOV18QVJDSElWRVM9WzEtOV18UFJPQkVfRkFJTFVSRVM9WzEtOV0iLCBsaW5lLCByZS5JKQogICAgICAgIF0KICAgICAgICBwcmludCgiXG4iLmpvaW4obGluZXNbLTYwMDpdKSBpZiBsaW5lcyBlbHNlICJcbiIuam9pbih0ZXh0LnN0cmlwKCkuc3BsaXRsaW5lcygpWy01MDA6XSkpCgpwcmludCgiSE9NRUxBQl8xMjNfUkVTT0xVVElPTj1DT01QTEVURSIK"), "", "exec")) + ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 143 + print("HOMELAB_123_RESOLUTION=COMPLETE" + ^ +SyntaxError: '(' was never closed OUTPUT_END CHAT_OUTPUT_END