diff --git a/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.json b/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.json new file mode 100644 index 00000000..695378ab --- /dev/null +++ b/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "snikket-vm150-backup-pipeline-rca", + "started_at_utc": "2026-10-05T09:01:30Z", + "finished_at_utc": "2026-10-05T09:01:36Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "fa63ff895da7ac1a4849b7dfe5ef876de998332951253b342bd18a20683391ab", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "dd3644f0d18f852c97cab7c2519a22789989cbe57ec7b30661b53cacb78363ac", + "sanitized_output_sha256": "bb1a4159fb966baac410cfc19986b6c53a847a83e0d9e74a555313dbe760148c", + "output_truncated_in_json": true, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "SNIKKET_VM150_BACKUP_PIPELINE_RCA=V1\nMODE=read-only\nNO_VM_MUTATION=true\nNO_BACKUP_EXECUTION=true\nNO_REMOTE_MUTATION=true\nNO_STATE_MUTATION=true\nNO_SOURCE_MUTATION=true\nNO_DNS_MUTATION=true\nHOST_PVE01=true\nINGRESS_HOSTKEY_SELF_BOUND=true\nVM150_RUNNING=true\nVM150_QGA=true\nHOMELAB_BACKUP_V2_SERVICE_PRESENT=true\nHOMELAB_BACKUP_V2_SERVICE_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d\nHOMELAB_BACKUP_V2_SERVICE_ACTIVE=inactive\nHOMELAB_BACKUP_V2_SERVICE_ENABLED=static\nHOMELAB_BACKUP_V2_TIMER_PRESENT=true\nHOMELAB_BACKUP_V2_TIMER_CAT_SHA256=11e196a0353983e6ccf0d1c683a7c581cf4eb6ed8afc778324ae9c279ba23c93\nHOMELAB_BACKUP_V2_TIMER_ACTIVE=active\nHOMELAB_BACKUP_V2_TIMER_ENABLED=enabled\nHOMELAB_BACKUP_AUDIT_SERVICE_PRESENT=true\nHOMELAB_BACKUP_AUDIT_SERVICE_CAT_SHA256=d7ca901a0238e10361a07403729e5b4768821af34f18e624032ab8ff1a6e8846\nHOMELAB_BACKUP_AUDIT_SERVICE_ACTIVE=inactive\nHOMELAB_BACKUP_AUDIT_SERVICE_ENABLED=static\nHOMELAB_BACKUP_AUDIT_TIMER_PRESENT=true\nHOMELAB_BACKUP_AUDIT_TIMER_CAT_SHA256=88e5b100a8e480dfb69141caf9776b9d9da274933ee32f464208d0aff7264d63\nHOMELAB_BACKUP_AUDIT_TIMER_ACTIVE=active\nHOMELAB_BACKUP_AUDIT_TIMER_ENABLED=enabled\nBACKUP_V2_UNIT_SHOW_SHA256=93dda19ac5b7e586443dd6505828caef8c62df1cb0b4b3eaf2eb63fa47775fc1\nBACKUP_V2_UNIT_SHOW_B64=RXhlY1N0YXJ0PXsgcGF0aD0vdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjIgOyBhcmd2W109L3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXYyIHNjaGVkdWxlZCA7IGlnbm9yZV9lcnJvcnM9bm8gOyBzdGFydF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0MDo1MiBNU0tdIDsgc3RvcF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0ODoyNyBNU0tdIDsgcGlkPTMxNTU5NjUgOyBjb2RlPWV4aXRlZCA7IHN0YXR1cz0wIH0KRW52aXJvbm1lbnQ9\nBACKUP_V2_COMMAND_PRESENT=true\nBACKUP_V2_FILETYPE_SHA256=75e59f7a9c20f8ef3feb350d7a6bae401bae921d9830a4d5907f01e23b038da5\nBACKUP_V2_SIZE_BYTES=1656\nBACKUP_V2_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c\nBKV2_TEXT_BYTES=1656\nBKV2_SHEBANG=#!/usr/bin/python3\nBKV2_SCHEDULE_TARGET_COUNT=0\nBKV2_QEMU_EXECUTION_DIAG_COUNT=0\nBKV2_SELFTEST_COUNT=0\nBKV2_VZDUMP_COUNT=0\nBKV2_RCLONE_COUNT=0\nBKV2_CLOUD_COUNT=0\nBKV2_SEAL_COUNT=0\nBKV2_TRANSPORT_COUNT=0\nBKV2_RESTORE_COUNT=0\nBKV2_PYTHON_COUNT=1\nBKV2_EXEC_COUNT=0\nBKV2_USR_LOCAL_COUNT=0\nBKV2_OPT_PATH_COUNT=1\nBKV2_RELEVANT_LINE_COUNT=5\nBKV2_RELEVANT_B64=MTojIS91c3IvYmluL3B5dGhvbjMKMjpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCjM6aW1wb3J0IGhhc2hsaWIsIGltcG9ydGxpYiwgb3MsIHBhdGhsaWIsIHN0YXQsIHN5cwo1OkVYUEVDVEVEPXsnZnJlc2hfbHhjX2hlbHBlci5weSc6ICc0ZTM5NDA0YjFkZGI5NzM5MjY0NWFkY2U2MjgwZjY5NzE4MmNjYTAzNzE0ZDNhNDYyZDM2M2VlYmNlOWIxODYwJywgJ3Byb2R1Y2VyX2V4ZWNfaGVscGVyLnB5JzogJ2IzYjk3MDk5YmNkNzEyNjY3MGY4NjZlODFmYWFlNmE0MmE5NmQ4NjlkOTk4OWU2YTY3ZjZlYTZjODcxYzkwYjMnLCAnbHhjX2FkYXB0ZXIucHknOiAnM2ZhN2QxOTQwMTBkNzZmN2M4YmM5NTAzNWFlODg3NjI2MmU5MzM3OTAzZTMxMGY0NWY0NWRmODhjMjY2ZGM4ZCcsICdxZW11X2FkYXB0ZXIucHknOiAnMTkwNmRiNDJiZDM0YmJlODVlYjQ2ZmQ5Nzk3YjM1NzJkNDZlMGE0MWMyOWQxYzI5YmU1ZjlkZjVlNDQ4ZjE1YicsICdzY2hlZHVsZXJfYWRhcHRlci5weSc6ICdhNmY2NzE1OWE2NDA2Nzc3MzMyM2YwMjgxMjZlMzEwOWUxNWNmMTdhODE0MmNlYTVlNjEyOTk3MGYxZDRkYTk2JywgJ2VudHJ5NTA0LnB5JzogJ2NhNjg3NmZhOWMzYjE0NjViMDQ1MzQ0YThhZDQ2OTYyZGUxNjk3MmM3ZGFkYzRhYzYyNTdjN2QyMjUwNDc3OTMnfQoyNDogZT1pbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnZW50cnk1MDQnKQ==\nBKV2_ABS_PATH_COUNT=1\nBKV2_PATH_1_BASENAME=backup-v2-overlay-505r1-4e39404b1ddb\nBKV2_PATH_1_SHA256=50a47e615a0781a486100f5d6723e32a263337608d003f678b4b582f74434cee\nPIPELINE_HELPER_CANDIDATE_COUNT=149\nPIPE_1_SCORE=5\nPIPE_1_BASENAME=homelab-backup-audit\nPIPE_1_PATH_SHA256=92769ab05a0e3e5bd466bc9d92157c75162ede4803289c63689289f751eebbef\nPIPE_1_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3\nPIPE_1_SCHEDULE_TARGET_COUNT=0\nPIPE_1_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_1_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_1_VZDUMP_QEMU_COUNT=0\nPIPE_1_RCLONE_COUNT=5\nPIPE_1_CLOUD_QUORUM_COUNT=2\nPIPE_1_SEAL_WRITTEN_COUNT=2\nPIPE_1_PAYLOAD_PARTS_COUNT=1\nPIPE_1_TRANSPORT_COUNT=1\nPIPE_1_RESTORE_VALIDATION_COUNT=0\nPIPE_1_SCHEDULE_RESULT_COUNT=0\nPIPE_1_RELEVANT_LINE_COUNT=114\nPIPE_1_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg==\nPIPE_2_SCORE=5\nPIPE_2_BASENAME=homelab-cloud-quorum-payload\nPIPE_2_PATH_SHA256=68de12f3737cfc95291752929a5ac96d6ab3078d9f540969437fd463cc238756\nPIPE_2_FILE_SHA256=df9e19485e5d87112bf58bf77bdddf3b9b896418dd85ff945a31cd5b6817f352\nPIPE_2_SCHEDULE_TARGET_COUNT=0\nPIPE_2_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_2_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_2_VZDUMP_QEMU_COUNT=0\nPIPE_2_RCLONE_COUNT=26\nPIPE_2_CLOUD_QUORUM_COUNT=15\nPIPE_2_SEAL_WRITTEN_COUNT=6\nPIPE_2_PAYLOAD_PARTS_COUNT=1\nPIPE_2_TRANSPORT_COUNT=1\nPIPE_2_RESTORE_VALIDATION_COUNT=0\nPIPE_2_SCHEDULE_RESULT_COUNT=0\nPIPE_2_RELEVANT_LINE_COUNT=448\nPIPE_2_RELEVANT_B64=NTpTQ0hFTUE9ImhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEiCjE5OlRNUF9CQVNFPSIke0hPTUVMQUJfUVVPUlVNX1RNUF9CQVNFOi0vbW50L3N0YWdpbmcvaG9tZWxhYi1jbG91ZC1xdW9ydW0tdG1wfSIKMjU6ICBwcmludGYgJ1JPT1RfQ0FVU0U9VU5FWFBFQ1RFRF9UUkFOU1BPUlRfRVJST1JcblJPT1RfQ0FVU0VfQ09VTlQ9MVxuREVUQUlMPWxpbmU6JXMgcmM6JXNcbicgIiR7MTotMH0iICIkcmMiID4mMgo0MTpmb3IgdG9vbCBpbiBqcSByY2xvbmUgc2hhMjU2c3VtIGRkIHN0YXQgc29ydCBta3RlbXAgZmxvY2sgYXdrIGNtcCBkYXRlOyBkbwo0Njp1c2FnZSgpewo0NzogIHByaW50ZiAndXNhZ2U6ICVzIGJhY2t1cC1kZWxldGUgTE9HSUNBTF9JRCBHRU5FUkFUSU9OIFBBWUxPQUQgUkVNT1RFX0FfUk9PVCBSRU1PVEVfQl9ST09UIFNUQVRFX1JPT1RcbicgIiQwIiA+JjIKNDg6ICBwcmludGYgJyAgICAgICAlcyB2ZXJpZnktc2VhbGVkIExPR0lDQUxfSUQgR0VORVJBVElPTiBSRU1PVEVfQV9ST09UIFJFTU9URV9CX1JPT1QgU1RBVEVfUk9PVFxuJyAiJDAiID4mMgo1MDp2YWxpZF9yZW1vdGVfcm9vdCgpeyBbWyAiJDEiID1+IF5bQS1aYS16MC05XVtBLVphLXowLTkuXy1dKjpbQS1aYS16MC05Ll8vLV0rJCBdXTsgfQo1NDogIGJhY2t1cC1kZWxldGUpCjU1OiAgICBbWyAiJCMiIC1lcSA3IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNTc6ICAgIEdFTkVSQVRJT049IiQzIgo1OTogICAgUkVNT1RFX0FfUk9PVD0iJDUiCjYwOiAgICBSRU1PVEVfQl9ST09UPSIkNiIKNjE6ICAgIFNUQVRFX1JPT1Q9IiQ3Igo2MzogIHZlcmlmeS1zZWFsZWQpCjY0OiAgICBbWyAiJCMiIC1lcSA2IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNjY6ICAgIEdFTkVSQVRJT049IiQzIgo2ODogICAgUkVNT1RFX0FfUk9PVD0iJDQiCjY5OiAgICBSRU1PVEVfQl9ST09UPSIkNSIKNzA6ICAgIFNUQVRFX1JPT1Q9IiQ2Igo3MzogICAgdXNhZ2UKNzk6dmFsaWRfdG9rZW4gIiRHRU5FUkFUSU9OIiB8fCBkaWUgIkdFTkVSQVRJT05fSU5WQUxJRCIgNjQKODA6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiB8fCBkaWUgIlJFTU9URV9BX1JPT1RfSU5WQUxJRCIgNjQKODE6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQl9ST09UIiB8fCBkaWUgIlJFTU9URV9CX1JPT1RfSU5WQUxJRCIgNjQKODI6W1sgIiRSRU1PVEVfQV9ST09UIiAhPSAiJFJFTU9URV9CX1JPT1QiIF1dIHx8IGRpZSAiUkVNT1RFX0ZBSUxVUkVfRE9NQUlOU19OT1RfRElTVElOQ1QiIDY0CjgzOltbICIkU1RBVEVfUk9PVCIgPT0gLyogXV0gfHwgZGllICJTVEFURV9ST09UX05PVF9BQlNPTFVURSIgNjQKODQ6aWYgW1sgIiRURVNUX01PREUiICE9ICIxIiAmJiAiJFNUQVRFX1JPT1QiICE9ICIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iIF1dOyB0aGVuCjg1OiAgZGllICJQUk9EVUNUSU9OX1NUQVRFX1JPT1RfSU5WQUxJRCIgNjQKODg6U1RBVEVfRElSPSIkU1RBVEVfUk9PVC8kTE9HSUNBTF9JRCIKODk6U1RBVEVfRklMRT0iJFNUQVRFX0RJUi8kR0VORVJBVElPTi5qc29uIgo5MDpSRU1PVEVfQV9CQVNFPSIke1JFTU9URV9BX1JPT1QlL30vJExPR0lDQUxfSUQvJEdFTkVSQVRJT04iCjkxOlJFTU9URV9CX0JBU0U9IiR7UkVNT1RFX0JfUk9PVCUvfS8kTE9HSUNBTF9JRC8kR0VORVJBVElPTiIKMTAyOiAgU1RBVEVfUk9PVD0iJChyZWFscGF0aCAtbSAtLSAiJFNUQVRFX1JPT1QiKSIKMTA0OiAgY2FzZSAiJFNUQVRFX1JPT1QiIGluICIkUlVOX1JFQUwiLyopIDs7ICopIGRpZSAiVEVTVF9TVEFURV9ST09UX09VVFNJREVfUlVOX0RJUiIgNjQ7OyBlc2FjCjEwNTogIFNUQVRFX0RJUj0iJFNUQVRFX1JPT1QvJExPR0lDQUxfSUQiCjEwNjogIFNUQVRFX0ZJTEU9IiRTVEFURV9ESVIvJEdFTkVSQVRJT04uanNvbiIKMTA5OltbICEgLUwgIiRTVEFURV9ST09UIiBdXSB8fCBkaWUgIlNUQVRFX1JPT1RfU1lNTElOS19GT1JCSURERU4iIDY0CjExMDppZiBbWyAtZSAiJFNUQVRFX0RJUiIgfHwgLUwgIiRTVEFURV9ESVIiIF1dOyB0aGVuIFtbIC1kICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRElSIiBdXSB8fCBkaWUgIlNUQVRFX0RJUl9VTlNBRkUiIDY0OyBmaQoxMTE6bWtkaXIgLXAgIiRTVEFURV9ESVIiCjExMjpbWyAhIC1MICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRklMRSIgXV0gfHwgZGllICJTVEFURV9QQVRIX1NZTUxJTktfRk9SQklEREVOIiA2NAoxMTM6Y2htb2QgMDcwMCAiJFNUQVRFX1JPT1QiICIkU1RBVEVfRElSIgoxMTQ6TE9DS19GSUxFPSIkU1RBVEVfRElSLy5sb2NrIgoxMTU6ZXhlYyA5PiIkTE9DS19GSUxFIgoxMTY6ZmxvY2sgLW4gOSB8fCBkaWUgIkdFTkVSQVRJT05fTE9DS19CVVNZIiA3NQoxNDM6aWYgW1sgIiRBQ1RJT04iID09ICJiYWNrdXAtZGVsZXRlIiBdXTsgdGhlbgoxNDg6IyBTRUNUSU9OX1NUQVRFX0lERU5USVRZX1YxCjE0OTpzdGF0ZV9pZGVudGl0eV9vaygpewoxNTA6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCByZXR1cm4gMQoxNTQ6ICAgIC0tYXJnIGdlbmVyYXRpb24gIiRHRU5FUkFUSU9OIiBcCjE1NTogICAgLS1hcmcgcmVtb3RlX2EgIiRSRU1PVEVfQV9ST09UIiBcCjE1NjogICAgLS1hcmcgcmVtb3RlX2IgIiRSRU1PVEVfQl9ST09UIiBcCjE2MDogICAgIC5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQKMTYxOiAgICAgLnJlbW90ZV9hX3Jvb3Q9PSRyZW1vdGVfYSBhbmQKMTYyOiAgICAgLnJlbW90ZV9iX3Jvb3Q9PSRyZW1vdGVfYiBhbmQKMTY4OiAgICAgIC5zdGF0dXM9PSJTRUFMRUQiKScgXAoxNjk6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoxNzI6c3RhdGVfc3RhdHVzKCl7CjE3MzogIGlmIFtbICEgLWUgIiRTVEFURV9GSUxFIiBdXTsgdGhlbgoxNzc6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCBkaWUgIlNUQVRFX0ZJTEVfVU5TQUZFIiA2NQoxNzg6ICBzdGF0ZV9pZGVudGl0eV9vayB8fCBkaWUgIlNUQVRFX0lERU5USVRZX01JU01BVENIIiA2NQoxNzk6ICBqcSAtciAnLnN0YXR1cycgIiRTVEFURV9GSUxFIgoxODI6IyBTRUNUSU9OX1NUQVRFX0lOSVRJQUxfVjEKMTgzOndyaXRlX2luaXRpYWxfc3RhdGUoKXsKMTg0OiAgbG9jYWwgbm93PSIkMSIgdG1wPSIke1NUQVRFX0ZJTEV9Lm5ldy4kJCIKMTkwOiAgICAtLWFyZyBnZW5lcmF0aW9uICIkR0VORVJBVElPTiIgXAoxOTU6ICAgIC0tYXJnIHJlbW90ZV9hX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiBcCjE5NjogICAgLS1hcmcgcmVtb3RlX2Jfcm9vdCAiJFJFTU9URV9CX1JPT1QiIFwKMTk3OiAgICAtLWFyZyByZW1vdGVfYV9iYXNlICIkUkVNT1RFX0FfQkFTRSIgXAoxOTg6ICAgIC0tYXJnIHJlbW90ZV9iX2Jhc2UgIiRSRU1PVEVfQl9CQVNFIiBcCjIwMjogICAgJ3tzY2hlbWE6JHNjaGVtYSxzdGF0dXM6JHN0YXR1cyxsb2dpY2FsX2lkOiRsb2dpY2FsX2lkLGdlbmVyYXRpb246JGdlbmVyYXRpb24sCjIwNzogICAgICByZW1vdGVfYV9yb290OiRyZW1vdGVfYV9yb290LHJlbW90ZV9iX3Jvb3Q6JHJlbW90ZV9iX3Jvb3QsCjIwODogICAgICByZW1vdGVfYV9iYXNlOiRyZW1vdGVfYV9iYXNlLHJlbW90ZV9iX2Jhc2U6JHJlbW90ZV9iX2Jhc2UsCjIwOTogICAgICBjbG91ZF9hX3ZlcmlmaWVkOmZhbHNlLGNsb3VkX2JfdmVyaWZpZWQ6ZmFsc2UsCjIxMDogICAgICBjbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2Om51bGwsY2xvdWRfYl9yZWNvbnN0cnVjdGVkX3NoYTI1NjpudWxsLAoyMTE6ICAgICAgY2xvdWRfYV92ZXJpZmllZF9hdF91dGM6bnVsbCxjbG91ZF9iX3ZlcmlmaWVkX2F0X3V0YzpudWxsLAoyMTI6ICAgICAgY2xvdWRfcXVvcnVtOjAscGFydF9oYXNoZXNfdmVyaWZpZWQ6ZmFsc2UscGFydHNfbWFuaWZlc3Rfc2hhMjU2Om51bGwsCjIxNTogICAgICBzZWFsX3dyaXR0ZW46ZmFsc2Usc2VhbGVkX2F0X3V0YzpudWxsfScgPiIkdG1wIgoyMjE6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgoyMjQ6c3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vaygpewoyMjk6ICAgIC0tYXJnIHJlbW90ZV9hX2Jhc2UgIiRSRU1PVEVfQV9CQVNFIiBcCjIzMDogICAtLWFyZyByZW1vdGVfYl9iYXNlICIkUkVNT1RFX0JfQkFTRSIgXAoyMzg6ICAgICAucmVtb3RlX2FfYmFzZT09JHJlbW90ZV9hX2Jhc2UgYW5kCjIzOTogICAgIC5yZW1vdGVfYl9iYXNlPT0kcmVtb3RlX2JfYmFzZScgXAoyNDA6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoyNDM6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9IRUxQRVJTX1YxCjI0NDpsb2FkX3N0YXRlX3BheWxvYWRfaWRlbnRpdHkoKXsKMjQ1OiAgUEFZTE9BRF9SRUFMPSIkKGpxIC1lciAnLnBheWxvYWRfcGF0aCB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1BBVEhfSU5WQUxJRCIgNjUKMjQ2OiAgUEFZTE9BRF9OQU1FPSIkKGpxIC1lciAnLnBheWxvYWRfbmFtZSB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX05BTUVfSU5WQUxJRCIgNjUKMjQ3OiAgUEFZTE9BRF9TSEE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYgfCBzdHJpbmdzIHwgc2VsZWN0KHRlc3QoIl5bMC05YS1mXXs2NH0kIikpJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1NIQV9JTlZBTElEIiA2NQoyNDg6ICBQQVlMT0FEX1NJWkU9IiQoanEgLWVyICcuYXJjaGl2ZV9zaXplX2J5dGVzIHwgbnVtYmVycyB8IHNlbGVjdCguPjAgYW5kIGZsb29yPT0uKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9TSVpFX0lOVkFMSUQiIDY1CjI0OTogIFBBUlRfQ09VTlQ9IiQoanEgLWVyICcucGFydF9jb3VudCB8IG51bWJlcnMgfCBzZWxlY3QoLj4wIGFuZCBmbG9vcj09LiknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBUlRfQ09VTlRfSU5WQUxJRCIgNjUKMjY1OmFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGgoKXsKMjY2OiAgbG9jYWwgaW5wdXRfcmVhbD0iJDEiIGlucHV0X25hbWU9IiQyIiBzdGF0ZV9yZWFsIHN0YXRlX25hbWUKMjY3OiAgc3RhdGVfcmVhbD0iJChqcSAtZXIgJy5wYXlsb2FkX3BhdGggfCBzdHJpbmdzIHwgc2VsZWN0KGxlbmd0aD4wKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX0lOVkFMSUQiIDY1CjI2ODogIHN0YXRlX25hbWU9IiQoanEgLWVyICcucGF5bG9hZF9uYW1lIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBWUxPQURfTkFNRV9JTlZBTElEIiA2NQoyNjk6ICBbWyAiJGlucHV0X3JlYWwiID09ICIkc3RhdGVfcmVhbCIgJiYgIiRpbnB1dF9uYW1lIiA9PSAiJHN0YXRlX25hbWUiIF1dIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX01JU01BVENIIiA2NQoyNzI6IyBTRUNUSU9OX1NUQVRFX1BIQVNFX0lOVkFSSUFOVFNfVjEKMjczOnN0YXRlX3BoYXNlX2NvcmVfaW52YXJpYW50c19vaygpewoyNzc6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzg6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzk6ICAgICAgLmNsb3VkX3F1b3J1bT09MCBhbmQKMjgzOiAgICAgIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZAoyODQ6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyODU6ICAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI4NjogICAgICAuY2xvdWRfcXVvcnVtPT0xIGFuZAoyOTA6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjI5MTogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMjkyOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAoyOTM6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI5NDogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAoyOTk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMwMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzAxOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMDI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMwMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMDg6ICAgIGVsaWYgLnN0YXR1cz09IlNFQUxFRCIgdGhlbgozMDk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMxMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzExOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMTI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMxMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMTg6ICAgICAgLnNlYWxfd3JpdHRlbj09dHJ1ZQozMjI6ICAnICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAozMjU6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9ESVNQQVRDSF9WMQozMjY6cHJlcGFyZV9iYWNrdXBfc3RhdGUoKXsKMzMwOiAgc3RhdHVzPSIkKHN0YXRlX3N0YXR1cykiCjMzNTogICAgICBhc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudAozMzY6ICAgICAgd3JpdGVfaW5pdGlhbF9zdGF0ZSAiJG5vdyIKMzM3OiAgICAgIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiSU5JVElBTF9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQozMzg6ICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozMzk6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0MjogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzQ0OiAgICAgIHN0YXRlX3BheWxvYWRfaWRlbnRpdHlfb2sgfHwgZGllICJSRVNVTUVfUEFZTE9BRF9JREVOVElUWV9NSVNNQVRDSCIgNjUKMzQ1OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJSRVNVTUVfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0ODogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzUyOiAgICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1BBWUxPQURfSURFTlRJVFlfTUlTTUFUQ0giIDY1CjM1NDogICAgICAgIGxvYWRfc3RhdGVfcGF5bG9hZF9pZGVudGl0eQozNTU6ICAgICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiREVMRVRFX0FVVEhPUklaRURfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozNTc6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX1BIQVNFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQozNTk6ICAgIFNFQUxFRCkKMzYwOiAgICAgIGFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGggIiRpbnB1dF9wYXlsb2FkX3JlYWwiICIkaW5wdXRfcGF5bG9hZF9uYW1lIgozNjE6ICAgICAgW1sgISAtZSAiJGlucHV0X3BheWxvYWRfcmVhbCIgJiYgISAtTCAiJGlucHV0X3BheWxvYWRfcmVhbCIgXV0gfHwgZGllICJTRUFMRURfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIiA2NgozNjI6ICAgICAgbG9hZF9zdGF0ZV9wYXlsb2FkX2lkZW50aXR5CjM2MzogICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiU0VBTEVEX1NUQVRFX1BBWUxPQURfSURFTlRJVFlfSU5WQUxJRCIgNjUKMzY0OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJTRUFMRURfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM2NzogICAgICBkaWUgIlNUQVRFX1NUQVRVU19VTlNVUFBPUlRFRF8ke3N0YXR1c30iIDY1CjM3MDogIEJBQ0tVUF9TVEFURV9TVEFUVVM9IiRzdGF0dXMiCjM3MjogICAgQkFDS1VQX1NUQVRFX1NUQVRVUz0iUFJFUEFSSU5HIgozNzU6IyBTRUNUSU9OX1JFTU9URV9QT0xJQ1lfVjEKMzc3OiAgW1sgIiRSRU1PVEVfQV9ST09UIiA9PSAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiIF1dIHx8IGRpZSAiUFJPRFVDVElPTl9SRU1PVEVfQV9JTlZBTElEIiA2NAozNzg6ICBbWyAiJFJFTU9URV9CX1JPT1QiID09ICJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIgXV0gfHwgZGllICJQUk9EVUNUSU9OX1JFTU9URV9CX0lOVkFMSUQiIDY0CjM3OTogIFtbIC16ICIke0hPTUVMQUJfVEVTVF9SQ0xPTkVfQklOOi19IiBdXSB8fCBkaWUgIlBST0RVQ1RJT05fUkNMT05FX09WRVJSSURFX0ZPUkJJRERFTiIgNjQKMzgwOiAgUkNMT05FX0JJTj0iJChjb21tYW5kIC12IHJjbG9uZSkiIHx8IGRpZSAiUkNMT05FX01JU1NJTkciIDY5CjM4MjogIFJDTE9ORV9CSU49IiR7SE9NRUxBQl9URVNUX1JDTE9ORV9CSU46LX0iCjM4MzogIGlmIFtbIC16ICIkUkNMT05FX0JJTiIgXV07IHRoZW4KMzg0OiAgICBSQ0xPTkVfQklOPSIkKGNvbW1hbmQgLXYgcmNsb25lKSIgfHwgZGllICJSQ0xPTkVfTUlTU0lORyIgNjkKMzg2OiAgW1sgIiRSQ0xPTkVfQklOIiA9PSAvKiAmJiAteCAiJFJDTE9ORV9CSU4iICYmICEgLUwgIiRSQ0xPTkVfQklOIiBdXSB8fCBkaWUgIlRFU1RfUkNMT05FX0JJTl9VTlNBRkUiIDY0CjM4OTpydW5fcmNsb25lKCl7CjM5MDogICIkUkNMT05FX0JJTiIgIiRAIgozOTM6IyBTRUNUSU9OX1JFTU9URV9HRU5FUkFUSU9OX0dVQVJEX1YxCjM5NDpyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSgpewozOTY6ICBbWyAiJGxhYmVsIiA9PSAiQSIgfHwgIiRsYWJlbCIgPT0gIkIiIF1dIHx8IGRpZSAiUkVNT1RFX1BST0JFX0xBQkVMX0lOVkFMSUQiIDY0CjM5NzogIHJvb3RfbGlzdGluZz0iJFdPUksvcmVtb3RlLSR7bGFiZWx9LXJvb3QubHNmIgozOTg6ICBsb2dpY2FsX2xpc3Rpbmc9IiRXT1JLL3JlbW90ZS0ke2xhYmVsfS1sb2dpY2FsLmxzZiIKNDAwOiAgaWYgISBydW5fcmNsb25lIGxzZiAiJHJvb3QiIC0tZGlycy1vbmx5IC0tbWF4LWRlcHRoIDEgPiIkcm9vdF9saXN0aW5nIjsgdGhlbgo0MDE6ICAgIGRpZSAiUkVNT1RFXyR7bGFiZWx9X1JPT1RfUFJPQkVfRkFJTEVEIiA3NAo0MDM6ICBpZiAhIGF3ayAtdiB0YXJnZXQ9IiRMT0dJQ0FMX0lELyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRyb290X2xpc3RpbmciOyB0aGVuCjQwNzogIGlmICEgcnVuX3JjbG9uZSBsc2YgIiR7cm9vdCUvfS8kTE9HSUNBTF9JRCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMSA+IiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQwODogICAgZGllICJSRU1PVEVfJHtsYWJlbH1fTE9HSUNBTF9QUk9CRV9GQUlMRUQiIDc0CjQxMDogIGlmIGF3ayAtdiB0YXJnZXQ9IiRHRU5FUkFUSU9OLyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQxNzphc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudCgpewo0MTg6ICBsb2NhbCBhX3N0YXRlIGJfc3RhdGUKNDE5OiAgYV9zdGF0ZT0iJChyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSBBICIkUkVNT1RFX0FfUk9PVCIpIgo0MjA6ICBiX3N0YXRlPSIkKHJlbW90ZV9nZW5lcmF0aW9uX3Byb2JlIEIgIiRSRU1PVEVfQl9ST09UIikiCjQyMTogIFtbICIkYV9zdGF0ZSIgPT0gIkFCU0VOVCIgXV0gfHwgZGllICJSRU1PVEVfQV9HRU5FUkFUSU9OX0FMUkVBRFlfRVhJU1RTIiA2NQo0MjI6ICBbWyAiJGJfc3RhdGUiID09ICJBQlNFTlQiIF1dIHx8IGRpZSAiUkVNT1RFX0JfR0VORVJBVElPTl9BTFJFQURZX0VYSVNUUyIgNjUKNDI1OiMgU0VDVElPTl9TVEFURV9UUkFOU0lUSU9OU19DTE9VRF9WMQo0MjY6YXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlKCl7CjQyODogIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQo0Mjk6ICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9QQVlMT0FEX0lERU5USVRZX0lOVkFMSUQiIDY1CjQzMDogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJUUkFOU0lUSU9OX1NPVVJDRV9JTlZBUklBTlRfSU5WQUxJRCIgNjUKNDMxOiAgYWN0dWFsPSIkKGpxIC1lciAnLnN0YXR1cyB8IHN0cmluZ3MnICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlRSQU5TSVRJT05fU1RBVFVTX0lOVkFMSUQiIDY1CjQzNjogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAKNDM3OiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQzODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSSU5HIgo0NDA6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NDU6ICAgIC0tYXJnIG1hbmlmZXN0X3NoYSAiJG1hbmlmZXN0X3NoYSIgXAo0NDg6ICAgICAuY2xvdWRfYV92ZXJpZmllZD10cnVlIHwKNDQ5OiAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDUwOiAgICAgLmNsb3VkX2FfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NTE6ICAgICAuY2xvdWRfcXVvcnVtPTEgfAo0NTI6ICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PSRtYW5pZmVzdF9zaGEnIFwKNDUzOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNDU1OiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNDU2OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkFfVkVSSUZJRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ2MDogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAgc2F2ZWRfbWFuaWZlc3QKNDYxOiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2MjogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiQV9WRVJJRklFRCIKNDYzOiAgc2F2ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwgc3RyaW5ncyB8IHNlbGVjdCh0ZXN0KCJeWzAtOWEtZl17NjR9JCIpKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2NDogIFtbICIkc2F2ZWRfbWFuaWZlc3QiID09ICIkbWFuaWZlc3Rfc2hhIiBdXSB8fCBkaWUgIlBBUlRTX01BTklGRVNUX1NIQV9DSEFOR0VEIiA2NQo0NjY6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NzM6ICAgICAuY2xvdWRfYl92ZXJpZmllZD10cnVlIHwKNDc0OiAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDc1OiAgICAgLmNsb3VkX2JfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NzY6ICAgICAuY2xvdWRfcXVvcnVtPTIgfAo0Nzg6ICAgICIkU1RBVEVfRklMRSIgPiIkdG1wIgo0ODA6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgo0ODE6ICBzdGF0ZV9waGFzZV9pbnZhcmlhbnRzX29rIHx8IGRpZSAiUFJFUEFSRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ4NDojIFNFQ1RJT05fU1RBVEVfVFJBTlNJVElPTlNfREVMRVRFX1YxCjQ4ODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSRUQiCjQ5MDogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUwMDogICAgIC5zZWFsX3dyaXR0ZW49ZmFsc2UnIFwKNTAxOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNTAzOiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNTA0OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1MDU6ICBqcSAtZSAnLmRlbGV0ZV9hdXRob3JpemVkX2F0X3V0YyB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwgfHwgZGllICJERUxFVEVfQVVUSE9SSVpFRF9USU1FU1RBTVBfSU5WQUxJRCIgNjUKNTEwOiAgYXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlICJERUxFVEVfQVVUSE9SSVpFRCIKNTEyOiAgaWYganEgLWUgJy5sb2NhbF9wYXlsb2FkX3ByZXNlbnQ9PWZhbHNlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRTVEFURV9GSUxFIiA+L2Rldi9udWxsOyB0aGVuCjUxNjogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUyNDogICAgIiRTVEFURV9GSUxFIiA+IiR0bXAiCjUyNjogIG12IC1mIC0tICIkdG1wIiAiJFNUQVRFX0ZJTEUiCjUyNzogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJMT0NBTF9ERUxFVEVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1Mjg6ICBqcSAtZSAnLmxvY2FsX2RlbGV0ZWRfYXRfdXRjIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbCB8fCBkaWUgIkxPQ0FMX0RFTEVURURfVElNRVNUQU1QX0lOVkFMSUQiIDY1CjUzMTojIFNFQ1RJT05fU1RBVEVfTUFOSUZFU1RfSU5WQVJJQU5UU19WMQo1MzI6c3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rKCl7CjUzNTogICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PT1udWxsCjUzOTogICAgICAgICAgLnN0YXR1cz09IlNFQUxFRCIpIHRoZW4KNTQwOiAgICAgICgucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwKNTQ2OiAgJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwKNTQ5OnN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2soKXsKNTUwOiAgc3RhdGVfcGhhc2VfY29yZV9pbnZhcmlhbnRzX29rICYmCjU1MTogICAgc3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rICYmCjU1MjogICAgc3RhdGVfc2VhbF9pbnZhcmlhbnRfb2sKNTYwOlBBUlRTX01BTklGRVNUPSIkV09SSy9QQVJUUy50c3YiCjU4OTogIGRkIGlmPSIkUEFZTE9BRF9SRUFMIiBvZj0iJFBBUlRfRklMRSIgYnM9MTA0ODU3NiBza2lwPSIkKCggaWR4ICogQ0hVTktfTUlCICkpIiBjb3VudD0iJENIVU5LX01JQiIgaWZsYWc9ZnVsbGJsb2NrIHN0YXR1cz1ub25lCjU5NzptYW5pZmVzdF9yZXNldCgpewo1OTg6ICA6ID4iJFBBUlRTX01BTklGRVNUIgo1OTk6ICBjaG1vZCAwNjAwICIkUEFSVFNfTUFOSUZFU1QiCjYwMjptYW5pZmVzdF9hcHBlbmRfY3VycmVudCgpewo2MDQ6ICBbWyAiJENVUlJFTlRfUEFSVF9OQU1FIiA9PSAiJChwYXJ0X25hbWUgIiRpZHgiKSIgXV0gfHwgZGllICJQQVJUX05BTUVfU1RBVEVfTUlTTUFUQ0giIDY1CjYwNTogIFtbICIkQ1VSUkVOVF9QQVJUX1NJWkUiID09ICIkKGV4cGVjdGVkX3BhcnRfc2l6ZSAiJGlkeCIpIiBdXSB8fCBkaWUgIlBBUlRfU0laRV9TVEFURV9NSVNNQVRDSCIgNjUKNjA2OiAgW1sgIiRDVVJSRU5UX1BBUlRfU0hBIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlBBUlRfU0hBX1NUQVRFX0lOVkFMSUQiIDY1CjYwNzogIHByaW50ZiAnJTA4ZFx0JXNcdCVzXHQlc1xuJyAiJGlkeCIgIiRDVVJSRU5UX1BBUlRfTkFNRSIgIiRDVVJSRU5UX1BBUlRfU0laRSIgIiRDVVJSRU5UX1BBUlRfU0hBIiA+PiIkUEFSVFNfTUFOSUZFU1QiCjYxMDptYW5pZmVzdF9maW5hbGl6ZSgpewo2MjE6ICAnICIkUEFSVFNfTUFOSUZFU1QiIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfSU5WQUxJRCIgNjUKNjIyOiAgUEFSVFNfTUFOSUZFU1RfU0hBPSIkKHNoYTI1NnN1bSAtLSAiJFBBUlRTX01BTklGRVNUIiB8IGF3ayAne3ByaW50ICQxfScpIgo2MjM6ICBbWyAiJFBBUlRTX01BTklGRVNUX1NIQSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQQVJUU19NQU5JRkVTVF9TSEFfSU5WQUxJRCIgNjUKNjI2OiMgU0VDVElPTl9SRU1PVEVfVVBMT0FEX1BSSU1JVElWRVNfVjEKNjI3OnJlbW90ZV9wYXJ0c19iYXNlKCl7CjYyOTogIFtbICIkYmFzZSIgPT0gIiRSRU1PVEVfQV9CQVNFIiB8fCAiJGJhc2UiID09ICIkUkVNT1RFX0JfQkFTRSIgXV0gfHwgZGllICJSRU1PVEVfQkFTRV9OT1RfQVBQUk9WRUQiIDY0CjYzMzpyZW1vdGVfbWFuaWZlc3RfcGF0aCgpewo2MzU6ICBbWyAiJGJhc2UiID09ICIkUkVNT1RFX0FfQkFTRSIgfHwgIiRiYXNlIiA9PSAiJFJFTU9URV9CX0JBU0UiIF1dIHx8IGRpZSAiUkVNT1RFX0JBU0VfTk9UX0FQUFJPVkVEIiA2NAo2NDM6ICBkZXN0aW5hdGlvbj0iJChyZW1vdGVfcGFydHNfYmFzZSAiJGJhc2UiKS8kQ1VSUkVOVF9QQVJUX05BTUUiCjY0NDogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVF9GSUxFIiAiJGRlc3RpbmF0aW9uIiAtLWltbXV0YWJsZSAtLXNpemUtb25seQo2NDc6dXBsb2FkX21hbmlmZXN0X2ltbXV0YWJsZSgpewo2NDk6ICBbWyAtcyAiJFBBUlRTX01BTklGRVNUIiAmJiAhIC1MICIkUEFSVFNfTUFOSUZFU1QiIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfTk9UX1JFQURZIiA2NQo2NTA6ICBbWyAiJHtQQVJUU19NQU5JRkVTVF9TSEE6LX0iID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfU0hBX05PVF9SRUFEWSIgNjUKNjUxOiAgZGVzdGluYXRpb249IiQocmVtb3RlX21hbmlmZXN0X3BhdGggIiRiYXNlIikiCjY1MjogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVFNfTUFOSUZFU1QiICIkZGVzdGluYXRpb24iIC0taW1tdXRhYmxlIC0tc2l6ZS1vbmx5CjY1NTojIFNFQ1RJT05fQ0xPVURfQV9VUExPQURfUEFTU19WMQ==\nPIPE_3_SCORE=5\nPIPE_3_BASENAME=vm150-runtime.py\nPIPE_3_PATH_SHA256=1f2b9620938f600855ee9172ae67b59709d740fe981c64c0d2b78b8298192b4f\nPIPE_3_FILE_SHA256=af1fcb7b519b60b203c940bfb6c6373fd012b691f1479f7e42a4c8b54bc17b2a\nPIPE_3_SCHEDULE_TARGET_COUNT=0\nPIPE_3_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_3_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_3_VZDUMP_QEMU_COUNT=1\nPIPE_3_RCLONE_COUNT=7\nPIPE_3_CLOUD_QUORUM_COUNT=2\nPIPE_3_SEAL_WRITTEN_COUNT=2\nPIPE_3_PAYLOAD_PARTS_COUNT=1\nPIPE_3_TRANSPORT_COUNT=0\nPIPE_3_RESTORE_VALIDATION_COUNT=0\nPIPE_3_SCHEDULE_RESULT_COUNT=0\nPIPE_3_RELEVANT_LINE_COUNT=175\nPIPE_3_RELEVANT_B64=MjE6Vk1JRD0xNTAKMjk6T0xEX1NUQVRFPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwJykvKE9MRF9HRU4rJy5qc29uJykKMzA6T0xEX1NUQVRFX1NIQT0nNjgwZGVjZDkwZWMwNmFmMTE5ZDRhNjUwN2RiOTRjMDA4N2E4YTIzNzM5NmFhNDhkZTBmMWFmYWM4NWJiYTY4OCcKMzE6T0xEX1JFU1RPUkU9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAnKS8oT0xEX0dFTisnLmpzb24nKQozMjpPTERfUkVTVE9SRV9TSEE9J2JiYTQ4Y2MzNWZhNjFmZjQ0MDc5ZGE5ZGZkNWI2NWI5N2U4NTZmNjM5Yjg5M2Y3ZGI4NTEwMGIyOGE1ODE2ZTAnCjM0OlNFQUw9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWFkbWluL3NlYWxzJykvKFRBU0tfSUQrJy5qc29uJykKMzU6U0VFRF9UQVJHRVQ9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi92ei90ZW1wbGF0ZS9pc28vc25pa2tldC12bTE1MC1zZWVkLmlzbycpCjUyOlFNUkVTVE9SRT0nL3Vzci9zYmluL3FtcmVzdG9yZScKNTQ6UkNMT05FPScvdXNyL2Jpbi9yY2xvbmUnCjU3OlFVRVVFPScvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUnCjU4OldPUktFUj0nL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLW5vZGUtd29ya2VyJwo2MDpCQUNLVVBfTE9DS1M9WycvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrJywnL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2snLCcvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2snXQo3NzpkZWYgcnVuKGFyZ3YsY2hlY2s9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSxlbnY9Tm9uZSk6Cjc4OiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KODg6ZGVmIHRleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6IHJldHVybiBydW4oYXJndixjaGVjaz1jaGVjayx0aW1lb3V0PXRpbWVvdXQpLnN0ZG91dC5kZWNvZGUoZXJyb3JzPSdyZXBsYWNlJykKODk6ZGVmIHJ1bl90dHkoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjkwOiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KMTY0OmRlZiB0YXJnZXRfc2hhcGUoY2ZnKToKMTgxOiAgICBpZiB0YXJnZXRfc2hhcGUoY2ZnKTogcmV0dXJuICdUQVJHRVQnCjE4NTogICAgcm93cz1beCBmb3IgeCBpbiBkYXRhIGlmIGludCh4LmdldCgndm1pZCcsLTEpKT09MTUwXQoyMDE6ZGVmIGFzc2VydF9vbGRfcmVjb3ZlcnkocmVhZF9yZW1vdGU9VHJ1ZSk6CjIwMjogICAgaWYgbm90IE9MRF9TVEFURS5pc19maWxlKCkgb3Igc2hhKE9MRF9TVEFURSkhPU9MRF9TVEFURV9TSEE6IGRpZSgnT0xEX1NUQVRFX1NIQV9NSVNNQVRDSCcsNjYpCjIwMzogICAgaWYgbm90IE9MRF9SRVNUT1JFLmlzX2ZpbGUoKSBvciBzaGEoT0xEX1JFU1RPUkUpIT1PTERfUkVTVE9SRV9TSEE6IGRpZSgnT0xEX1JFU1RPUkVfU0hBX01JU01BVENIJyw2NikKMjA0OiAgICBzdD1qc29uLmxvYWRzKE9MRF9TVEFURS5yZWFkX3RleHQoKSk7IHJ2PWpzb24ubG9hZHMoT0xEX1JFU1RPUkUucmVhZF90ZXh0KCkpCjIwNTogICAgY2hlY2tzPVtzdC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyxzdC5nZXQoJ2Nsb3VkX3F1b3J1bScpPT0yLHN0LmdldCgnY2xvdWRfYV92ZXJpZmllZCcpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9iX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3BhcnRfaGFzaGVzX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3NlYWxfd3JpdHRlbicpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9hX3NlYWxfdmVyaWZpZWQnKSBpcyBUcnVlLHN0LmdldCgnY2xvdWRfYl9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ2xvY2FsX2NsZWFudXAnKT09J09LJyxzdC5nZXQoJ2xvY2FsX3BheWxvYWRfcHJlc2VudCcpIGlzIEZhbHNlLHJ2LmdldCgncmVzdWx0Jyk9PSdPSycscnYuZ2V0KCdwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZCcpIGlzIFRydWUscnYuZ2V0KCdhcmNoaXZlX3JlY292ZXJ5X3JlYWRiYWNrX3ZlcmlmaWVkJykgaXMgVHJ1ZSxydi5nZXQoJ3Byb3htb3hfY29uZmlnX2V4dHJhY3RfdmVyaWZpZWQnKSBpcyBUcnVlXQoyMDc6ICAgIGlmIHJlYWRfcmVtb3RlOgoyMDg6ICAgICAgICBiYXNlPXN0LmdldCgncmVtb3RlX2FfYmFzZScpOyBtc2hhPXN0LmdldCgncGFydHNfbWFuaWZlc3Rfc2hhMjU2JykKMjA5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYmFzZSxzdHIpIG9yIG5vdCBiYXNlLmVuZHN3aXRoKCcvdm0xNTAvJytPTERfR0VOKTogZGllKCdPTERfUkVNT1RFX0FfQkFTRV9JTlZBTElEJyw2NikKMjEwOiAgICAgICAgc2VhbGI9cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL3NlYWwuanNvbiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTE6ICAgICAgICBtYW49cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL1BBUlRTLnRzdiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTI6ICAgICAgICB0cnk6IHJzPWpzb24ubG9hZHMoc2VhbGIpCjIxMzogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IGRpZSgnT0xEX1JFTU9URV9TRUFMX0pTT05fSU5WQUxJRCcsNjYpCjIxNDogICAgICAgIGlmIHJzLmdldCgnc3RhdHVzJykhPSdTRUFMRUQnIG9yIHJzLmdldCgnZ2VuZXJhdGlvbicpIT1PTERfR0VOIG9yIHJzLmdldCgnYXJjaGl2ZV9zaGEyNTYnKSE9c3QuZ2V0KCdhcmNoaXZlX3NoYTI1NicpOiBkaWUoJ09MRF9SRU1PVEVfU0VBTF9NSVNNQVRDSCcsNjYpCjIxNTogICAgICAgIGlmIHNoYV9ieXRlcyhtYW4pIT1tc2hhOiBkaWUoJ09MRF9SRU1PVEVfTUFOSUZFU1RfU0hBX01JU01BVENIJyw2NikKMjE4OmRlZiBiYWNrdXBfYnVzeSgpOgoyMTk6ICAgIHA9cnVuKFsnL3Vzci9iaW4vcGdyZXAnLCctYWYnLCcoXnwvKSh2emR1bXB8cW1yZXN0b3JlfHBjdHJlc3RvcmV8dm1hfHpzdGR8cmNsb25lKShbWzpzcGFjZTpdXXwkKXxob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1ub2RlLXdvcmtlciBiYWNrdXAnXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE1KQoyMzA6ICAgIGlmIG5vdCBwYXRobGliLlBhdGgoV09SS0VSKS5pc19maWxlKCkgb3Igc2hhKFdPUktFUikhPUNGR1sndm1fd29ya2VyX3NoYTI1NiddOiBkaWUoJ1ZNX1dPUktFUl9TT1VSQ0VfRFJJRlQnLDY2KQoyNTI6ICAgIGZyZWU9c2h1dGlsLmRpc2tfdXNhZ2UoJy9tbnQvc3RhZ2luZycpLmZyZWUKMjU3OiAgICBpZiBTRUFMLmV4aXN0cygpOiBkaWUoJ1RBU0tfQUxSRUFEWV9TRUFMRUQnLDY2KQoyNTk6ICAgIHN0YXRlPWNsYXNzaWZ5X3ZtKCk7IG93bmVyPWNsdXN0ZXJfb3duZXIoKQoyNjA6ICAgIGlmIHN0YXRlPT0nT0xEJzoKMjYyOiAgICBlbGlmIHN0YXRlPT0nVEFSR0VUJzoKMjYzOiAgICAgICAgaWYgb3duZXIhPSdwdmUwMScgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdWTTE1MF9UQVJHRVRfSURFTlRJVFlfSU5WQUxJRCcsNjYpCjI2NDogICAgZWxzZTogZGllKCdWTTE1MF9TVEFURV8nK3N0YXRlLDY2KQoyNjU6ICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQoyNjc6ICAgIG9iaj17J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlZmxpZ2h0LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6c3RhdGUsJ293bmVyJzpvd25lciwnb2xkX2dlbmVyYXRpb24nOk9MRF9HRU4sJ29sZF9yZWNvdmVyeSc6J1NFQUxFRF9SRVNUT1JFX1BST1ZFTicsJ2ltYWdlX3NoYTI1Nic6Q0ZHWydpbWFnZV9zaGEyNTYnXSwncXVldWVfc2hhMjU2JzpDRkdbJ3ZtX3F1ZXVlX3NoYTI1NiddLCd3b3JrZXJfc2hhMjU2JzpDRkdbJ3ZtX3dvcmtlcl9zaGEyNTYnXSwnZWRnZV9yZWFkb25seV9zaGEyNTYnOnNoYV9ieXRlcyhlZGdlLmVuY29kZSgpKSwnc291cmNlX2hlYWQnOnNvdXJjZV9oZWFkLCdzdGFnaW5nX2ZyZWVfYnl0ZXMnOmZyZWUsJ3JvbGxiYWNrX21pbl9mcmVlX2J5dGVzJzpuZWVkLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfQoyNjk6ICAgIHByaW50KGYnUFJFRkxJR0hUX1NUQVRVUz1PS3xWTTE1MD17c3RhdGV9fE9XTkVSPXtvd25lcn18T0xEX1JFQ09WRVJZPVNFQUxFRF9SRVNUT1JFX1BST1ZFTnxJTUFHRT1QSU5ORUR8U09VUkNFPXtzb3VyY2VfaGVhZH18U1RBR0lOR19ST0xMQkFDS19DQVBBQ0lUWT1PS3xFREdFX05QTVBMVVM9UkVBRF9PTkxZX09LfFBST0RVQ1RJT05fQ0hBTkdFRD1OTycpCjI3MTpkZWYgcGFyc2VfcGFydHMoc3QsbWFuaWZlc3RfYnl0ZXMpOgoyNzM6ICAgIGZvciBpLGxpbmUgaW4gZW51bWVyYXRlKG1hbmlmZXN0X2J5dGVzLmRlY29kZSgpLnNwbGl0bGluZXMoKSk6CjI3NTogICAgICAgIGlmIGxlbihmaWVsZHMpIT00OiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1JPV19JTlZBTElEJyw3MCkKMjc3OiAgICAgICAgaWYgaWR4IT1mJ3tpOjA4ZH0nIG9yIG5hbWUhPWYncGFydC17aTowOGR9LmJpbicgb3Igbm90IHNpemVfcy5pc2RpZ2l0KCkgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscHNoYSk6IGRpZSgnUk9MTEJBQ0tfTUFOSUZFU1RfUk9XX0lOVkFMSUQnLDcwKQoyODE6ICAgIGlmIGxlbihyb3dzKSE9aW50KHN0LmdldCgncGFydF9jb3VudCcsLTEpKSBvciB0b3RhbCE9aW50KHN0LmdldCgnYXJjaGl2ZV9zaXplX2J5dGVzJywtMSkpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1RPVEFMX0lOVkFMSUQnLDcwKQoyODY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsc3RyKSBvciBwYXRobGliLlBhdGgobmFtZSkubmFtZSE9bmFtZSBvciBub3QgbmFtZS5zdGFydHN3aXRoKCd2emR1bXAtcWVtdS0xNTAtJykgb3Igbm90IG5hbWUuZW5kc3dpdGgoJy52bWEuenN0Jyk6IGRpZSgnUk9MTEJBQ0tfQVJDSElWRV9OQU1FX0lOVkFMSUQnLDY2KQozMDE6ICAgIGJhc2U9c3RbJ3JlbW90ZV9hX2Jhc2UnXS5yc3RyaXAoJy8nKQozMDI6ICAgIG1hbmlmZXN0PXJ1bihbUkNMT05FLCdjYXQnLGJhc2UrJy9QQVJUUy50c3YnXSx0aW1lb3V0PTYwKS5zdGRvdXQKMzAzOiAgICBpZiBzaGFfYnl0ZXMobWFuaWZlc3QpIT1zdC5nZXQoJ3BhcnRzX21hbmlmZXN0X3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1NIQV9NSVNNQVRDSCcsNzApCjMwNDogICAgcm93cz1wYXJzZV9wYXJ0cyhzdCxtYW5pZmVzdCk7IG5hbWU9c2FmZV9hcmNoaXZlX25hbWUoc3QpCjMyODogICAgICAgICAgICBwPXN1YnByb2Nlc3MucnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZSsnL3BheWxvYWQucGFydHMvJytuYW1lX2ldLHN0ZG91dD1wZixzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTgwMCkKMzY5OiAgICAgICAgJyNjbG91ZC1jb25maWcnLCd1c2VyczonLCcgIC0gbmFtZTogZGViaWFuJywnICAgIGdlY29zOiBEZWJpYW4nLCcgICAgZ3JvdXBzOiBbc3Vkb10nLCcgICAgc3VkbzogIkFMTD0oQUxMKSBOT1BBU1NXRDpBTEwiJywnICAgIHNoZWxsOiAvYmluL2Jhc2gnLCcgICAgbG9ja19wYXNzd2Q6IHRydWUnLCcgICAgc3NoX2F1dGhvcml6ZWRfa2V5czonLCpbJyAgICAgIC0gJyt4IGZvciB4IGluIGtleXNdLAozODM6ICAgICMgUnVuIGluIHRoZSBzZWVkIGRpcmVjdG9yeSBzbyB0aGUgSVNPIGNvbnRhaW5zIHRoZSBjYW5vbmljYWwgTm9DbG91ZCBmaWxlbmFtZXMgYXQgaXRzIHJvb3QuCjQwMDogICAgaWYgeC5nZXQoJ3NjaGVtYScpIT0nc25pa2tldC12bTE1MC1zdGFnZS12Micgb3IgeC5nZXQoJ29sZF9nZW5lcmF0aW9uJykhPU9MRF9HRU4gb3IgeC5nZXQoJ29sZF9jb25maWdfc2hhMjU2JykhPU9MRF9DT05GSUdfU0hBOiBkaWUoJ1NUQUdFX01FVEFEQVRBX0lOVkFMSUQnLDY2KQo0MTM6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnVEFTS19BTFJFQURZX1NFQUxFRCcsNjYpCjQxNjogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyNjogICAgd2l0aCBleGNsdXNpdmVfbG9ja3MoQkFDS1VQX0xPQ0tTKToKNDI3OiAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyOTogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zdGFnZS12MicsJ2NvbXBsZXRlJzpUcnVlLCdjcmVhdGVkX29yX3JlZnJlc2hlZF9hdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwnb2xkX3N0YXRlX3NoYTI1Nic6T0xEX1NUQVRFX1NIQSwnb2xkX3Jlc3RvcmVfc2hhMjU2JzpPTERfUkVTVE9SRV9TSEEsJ29sZF9jb25maWdfc2hhMjU2JzpPTERfQ09ORklHX1NIQSwnaW1hZ2Vfc2hhMjU2JzpDRkdbJ2ltYWdlX3NoYTI1NiddLCdvcGVyYXRvcl9rZXlzX3NoYTI1Nic6c2hhKGtleXMpLCdzZWVkX3NoYTI1Nic6c2hhKHNlZWQpLCdyb2xsYmFja19hcmNoaXZlX25hbWUnOmFyY2hpdmUubmFtZSwncm9sbGJhY2tfYXJjaGl2ZV9ieXRlcyc6YXJjaGl2ZS5zdGF0KCkuc3Rfc2l6ZSwncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOnN0WydhcmNoaXZlX3NoYTI1NiddLCdtdXRhdGlvbl9zdGF0ZSc6J1BSRVBBUkVEJ30KNDMxOiAgICBwaGFzZV9qc29uKCdwcmVwYXJlJyx7J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlcGFyZS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnc3RhZ2UnOnN0cihTVEFHRSksJ29sZF9nZW5lcmF0aW9uJzpPTERfR0VOLCdyb2xsYmFja19hcmNoaXZlJzonTE9DQUxfUFJFU1RBR0VEX1ZFUklGSUVEJywncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOm9ialsncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnXSwnc2VlZF9zaGEyNTYnOm9ialsnc2VlZF9zaGEyNTYnXSwncHJpdmF0ZV9tYXRlcmlhbF9sb2dnZWQnOkZhbHNlLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfSkKNDMyOiAgICBwcmludChmJ1BSRVBBUkVfU1RBVFVTPU9LfE9MRF9HRU5FUkFUSU9OPXtPTERfR0VOfXxST0xMQkFDS19BUkNISVZFPUxPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRHxTRUVEPU5PX0NMT1VEX0NJREFUQXxQUklWQVRFX01BVEVSSUFMX0xPR0dFRD1OT3xQUk9EVUNUSU9OX0NIQU5HRUQ9Tk8nKQo0NjI6ZGVmIGd1ZXN0X2V4ZWMoYXJndix0aW1lb3V0PTEyMCxjaGVjaz1UcnVlLHJlcXVpcmVfcGlkPUZhbHNlKToKNDYzOiAgICBwPXJ1bihbUU0sJ2d1ZXN0JywnZXhlYycsJzE1MCcsJy0tJ10rbGlzdChhcmd2KSx0aW1lb3V0PW1pbih0aW1lb3V0LDEyMCkpCjQ4MDogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQ5MDogICAgaWYgbm90IGlkZV9jb250cmFjdCBvciBub3QgaXBjb25maWdfY29udHJhY3Q6IGRpZSgnUU1fU0VUX0NMT1VESU5JVF9DT05UUkFDVF9VTlBST1ZFTicsNjYpCjQ5NDogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1kcnktcnVuLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwncm9sbGJhY2tfYXJjaGl2ZSc6J0xPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRCcsJ3FnYV9hc3luY19jb250cmFjdCc6J1BST1ZFTl9PTl9DVVJSRU5UX1ZNMTUwJywndGFyZ2V0Jzp7J25hbWUnOidzbmlra2V0Jywndm1pZCc6MTUwLCdjb3Jlcyc6NCwnbWVtb3J5X21pYic6ODE5MiwnZGlza19naWInOjY0LCdpcCc6SVAsJ2dhdGV3YXknOkdXLCdtYWMnOk1BQywnZG5zJzpbR1csJ1tQUklWQVRFX0lQXSddfSwncHJveG1veF9zZXF1ZW5jZSc6WydzaHV0ZG93biBvbGQgVk0xNTAnLCdkZXN0cm95IGV4YWN0IG9sZCBWTTE1MCcsJ2NyZWF0ZSBWTTE1MCcsJ2ltcG9ydCBwaW5uZWQgRGViaWFuIDEzIGdlbmVyaWMgaW1hZ2UnLCdhdHRhY2grcmVzaXplIDY0RycsJ2F0dGFjaCB0YXNrLW93bmVkIE5vQ2xvdWQgY2lkYXRhIElTTycsJ3N0YXJ0IGFuZCB3YWl0IGZvciBndWVzdC1wcm92aXNpb24gdmlhIFFHQScsJ3N0b3AgYW5kIGRldGFjaCBzZWVkIElTTycsJ3Jlc3RhcnQgYW5kIHJldmVyaWZ5IGxvY2FsIFNuaWtrZXQgaGVhbHRoJywnY3JlYXRlIHJvb3Qtb25seSBhZG1pbiBpbnZpdGUnLCdjcmVhdGUgZnJlc2ggY2Fub25pY2FsIHJlc3RvcmUtcHJvdmVuIFZNMTUwIGJhY2t1cCddLCdyb2xsYmFjayc6J3ByZS1zdGFnZWQgZXhhY3Qgb2xkIGFyY2hpdmUgKyBxbXJlc3RvcmUgMTUwJywncHJvZHVjdGlvbl9jaGFuZ2VkJzpGYWxzZX0KNDk2OiAgICBwcmludCgnRFJZX1JVTl9TVEFUVVM9T0t8UFJPRFVDVElPTl9DSEFOR0VEPU5PfFJPTExCQUNLPUxPQ0FMX1BSRVNUQUdFRF9RTVJFU1RPUkV8UUdBX0FTWU5DX0NPTlRSQUNUPVBST1ZFTnxUQVJHRVQ9Vk0xNTBfU05JS0tFVCcpCjQ5OTpkZWYgZXhjbHVzaXZlX2xvY2tzKHBhdGhzKToKNTA0OiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX0VYfGZjbnRsLkxPQ0tfTkIpCjUwNTogICAgICAgICAgICBleGNlcHQgQmxvY2tpbmdJT0Vycm9yOgo1MDY6ICAgICAgICAgICAgICAgIGYuY2xvc2UoKTsgZGllKCdMT0NLX0JVU1lfJytwYXRobGliLlBhdGgocSkubmFtZSw3NSkKNTExOiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjUzMjogICAgaWYgU0VFRF9UQVJHRVQuZXhpc3RzKCk6CjUzMzogICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9QUkVFWElTVFNfRElGRkVSRU5UJyw2NikKNTM1OiAgICB0bXA9U0VFRF9UQVJHRVQud2l0aF9uYW1lKFNFRURfVEFSR0VULm5hbWUrJy5uZXcuJytzdHIob3MuZ2V0cGlkKCkpKQo1MzY6ICAgIHNodXRpbC5jb3B5ZmlsZShzcmMsdG1wKTsgb3MuY2htb2QodG1wLDBvNjAwKTsgb3MucmVwbGFjZSh0bXAsU0VFRF9UQVJHRVQpCjUzNzpkZWYgY3JlYXRlX3RhcmdldCgpOgo1NTA6ICAgIGlmIG5vdCB0YXJnZXRfc2hhcGUocW1fY29uZmlnKCkpOiBkaWUoJ1RBUkdFVF9DT05GSUdfU0hBUEVfSU5WQUxJRCcsNzApCjU3MDogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdUQVJHRVRfVk1fTk9UX1JVTk5JTkcnLDcwKQo1ODQ6ICAgICAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNTg2OiAgICAgICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9TSEFfRFJJRlQnLDcwKQo1ODc6ICAgICAgICAgICAgU0VFRF9UQVJHRVQudW5saW5rKCkKNTk0OiAgICBlbGlmIFNFRURfVEFSR0VULmV4aXN0cygpOgo1OTU6ICAgICAgICBkaWUoJ1VOUkVGRVJFTkNFRF9TRUVEX1RBUkdFVF9QUkVTRU5UJyw3MCkKNjA1OmRlZiBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik6CjYwNjogICAgc2Y9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAnKS8oZ2VuKycuanNvbicpOyByZj1wYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbi92bTE1MCcpLyhnZW4rJy5qc29uJykKNjA3OiAgICBpZiBub3Qgc2YuaXNfZmlsZSgpIG9yIG5vdCByZi5pc19maWxlKCk6IGRpZSgnTkVXX0JBQ0tVUF9FVklERU5DRV9NSVNTSU5HJyw3MCkKNjA5OiAgICBvaz1zLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBzLmdldCgnY2xvdWRfcXVvcnVtJyk9PTIgYW5kIHMuZ2V0KCdjbG91ZF9hX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2JfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCBzLmdldCgnY2xvdWRfYV9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2Jfc2VhbF92ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdwYXJ0X2hhc2hlc192ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdzZWFsX3dyaXR0ZW4nKSBpcyBUcnVlIGFuZCBzLmdldCgnbG9jYWxfcGF5bG9hZF9wcmVzZW50JykgaXMgRmFsc2UgYW5kIHMuZ2V0KCdsb2NhbF9jbGVhbnVwJyk9PSdPSycgYW5kIHIuZ2V0KCdyZXN1bHQnKT09J09LJyBhbmQgci5nZXQoJ3BheWxvYWRfc2hhMjU2X3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgci5nZXQoJ2FyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCByLmdldCgncHJveG1veF9jb25maWdfZXh0cmFjdF92ZXJpZmllZCcpIGlzIFRydWUKNjEwOiAgICBpZiBub3Qgb2s6IGRpZSgnTkVXX0JBQ0tVUF9OT1RfU1RSSUNUTFlfUFJPVkVOJyw3MCkKNjEyOmRlZiBmb3JjZV9iYWNrdXAoKToKNjEzOiAgICBlbnY9b3MuZW52aXJvbi5jb3B5KCk7IGVudlsnSE9NRUxBQl9CQUNLVVBfRElTUEFUQ0hFUiddPScxJwo2MTQ6ICAgIHA9cnVuKFtXT1JLRVIsJ2JhY2t1cCcsJzE1MCddLHRpbWVvdXQ9NTQwMCxlbnY9ZW52KQo2MTY6ICAgIG09cmUuc2VhcmNoKHInKD9tKV5HRU5FUkFUSU9OPSh2bTE1MC1wdmUwMS1bMC05VFpdKykkJyxvdXQpCjYxNzogICAgaWYgbm90IG06IGRpZSgnTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDcwKQo2MTk6ICAgIGlmIGdlbj09T0xEX0dFTjogZGllKCdORVdfQkFDS1VQX1JFVVNFRF9PTERfR0VORVJBVElPTicsNzApCjYyMDogICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjYyMzpkZWYgcmVzdG9yZV9vbGRfbG9ja2VkKCk6CjYyNjogICAgcnVuX3R0eShbUU1SRVNUT1JFLHN0cihhcmNoaXZlKSwnMTUwJywnLS1zdG9yYWdlJywnbG9jYWwtbHZtJ10sdGltZW91dD0yNDAwKQo2Mjc6ICAgIGlmIG5vdCBvbGRfY2ZnX21hdGNoKHFtX2NvbmZpZygpKTogZGllKCdST0xMQkFDS19SRVNUT1JFRF9DT05GSUdfU0hBX01JU01BVENIJyw3MCkKNjI4OiAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNjMwOiAgICAgICAgaWYgc2hhKFNFRURfVEFSR0VUKSE9c3guZ2V0KCdzZWVkX3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX1NFRURfVEFSR0VUX1NIQV9EUklGVCcsNzApCjYzMTogICAgICAgIFNFRURfVEFSR0VULnVubGluaygpCjY0MDogICAgaWYgU0VBTC5leGlzdHMoKTogZGllKCdUQVNLX0FMUkVBRFlfU0VBTEVEJyw2NikKNjQzOiAgICBzdGF0ZT1jbGFzc2lmeV92bSgpCjY0NDogICAgaWYgc3RhdGUgbm90IGluICgnT0xEJywnVEFSR0VUJyk6IGRpZSgnQVBQTFlfVk1fU1RBVEVfJytzdGF0ZSw2NikKNjQ1OiAgICBzeD1zdGFnZV9vYmooVHJ1ZSk7IG11dGF0aW9uX3N0YXRlPXN4LmdldCgnbXV0YXRpb25fc3RhdGUnKQo2NDY6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJzogZGllKCdBUFBMWV9SRUZVU0VTX0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU5fVVNFX1NFQUwnLDY2KQo2NDc6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdUQVJHRVRfQkFDS1VQX1BST1ZFTic6CjY0ODogICAgICAgIGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjQ5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cik6IGRpZSgnQVBQTFlfUkVVU0VfR0VORVJBVElPTl9NSVNTSU5HJyw2NikKNjUwOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pOyBsb2NhbF9oZWFsdGgoKQo2NTE6ICAgICAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2UsJ3JldXNlZF9wcm92ZW5fYXBwbHlfc3RhdGUnOlRydWV9KQo2NTI6ICAgICAgICBwcmludChmJ0FQUExZX1NUQVRVUz1PS3xSRVNVTFQ9UkVVU0VEX1BST1ZFTl9UQVJHRVR8Vk0xNTA9U05JS0tFVHxORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58T0xEX0dFTkVSQVRJT05fUFJFU0VSVkVEPXtPTERfR0VOfXxJTkdSRVNTX0FUVEVTVEVEPVlFU3xJTlZJVEVfTE9HR0VEPU5PJykKNjU0OiAgICBtdXRhdGlvbl9zdGFydGVkPShzdGF0ZT09J1RBUkdFVCcpOyB0YXJnZXRfZ3JlZW49bXV0YXRpb25fc3RhdGUgaW4gKCdUQVJHRVRfTE9DQUxfR1JFRU4nLCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKQo2NTU6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjY1NjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjY1ODogICAgICAgICAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjY1OTogICAgICAgICAgICAgICAgaWYgc3RhdGU9PSdPTEQnOgo2NjA6ICAgICAgICAgICAgICAgICAgICBkZXN0cm95X3ZtKCk7IG11dGF0aW9uX3N0YXJ0ZWQ9VHJ1ZTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdPTERfUkVNT1ZFRCcpCjY2MTogICAgICAgICAgICAgICAgICAgIGNyZWF0ZV90YXJnZXQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfQ1JFQVRFRCcpCjY2MzogICAgICAgICAgICAgICAgcHJvdmlzaW9uX2hhc2g9d2FpdF9ndWVzdF9wcm92aXNpb24oKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfUFJPVklTSU9ORUQnLGd1ZXN0X3Byb3Zpc2lvbl9zdGF0dXNfc2hhMjU2PXByb3Zpc2lvbl9oYXNoKQo2NjU6ICAgICAgICAgICAgICAgIHRhcmdldF9ncmVlbj1UcnVlOyB1cGRhdGVfc3RhZ2UobXV0YXRpb25fc3RhdGU9J1RBUkdFVF9MT0NBTF9HUkVFTicsbG9jYWxfaGVhbHRoX2JlZm9yZV9zZWVkX2RldGFjaF9zaGEyNTY9aGVhbHRoMSxsb2NhbF9oZWFsdGhfYWZ0ZXJfc2VlZF9kZXRhY2hfc2hhMjU2PWhlYWx0aDIpCjY2NjogICAgICAgICAgICAgICAgaW52aXRlX3N0YXRlPWdlbmVyYXRlX2ludml0ZSgpOyB1cGRhdGVfc3RhZ2UoYWRtaW5faW52aXRlPWludml0ZV9zdGF0ZSkKNjY3OiAgICAgICAgICAgICAgICBnZW4sYmhhc2g9Zm9yY2VfYmFja3VwKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nVEFSR0VUX0JBQ0tVUF9QUk9WRU4nLG5ld19nZW5lcmF0aW9uPWdlbixiYWNrdXBfb3V0cHV0X3NoYTI1Nj1iaGFzaCkKNjY5OiAgICAgICAgICAgICAgICBpZiBtdXRhdGlvbl9zdGFydGVkIGFuZCBub3QgdGFyZ2V0X2dyZWVuOgo2NzE6ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcF92bSgpOyByZXN0b3JlX29sZF9sb2NrZWQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdBVVRPX1JPTExFRF9CQUNLX09MRCcpCjY3MjogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnQVVUT19ST0xMQkFDS19TVEFUVVM9T0t8UkVTVE9SRUQ9U05JS0tFVF9CQVNFTElORV9WTTE1MCcsZmlsZT1zeXMuc3RkZXJyKQo2NzU6ICAgICAgICAgICAgICAgIGVsaWYgbXV0YXRpb25fc3RhcnRlZCBhbmQgdGFyZ2V0X2dyZWVuOgo2NzY6ICAgICAgICAgICAgICAgICAgICBwcmludCgnUkVTVU1FX1NBRkVfVEFSR0VUX1BSRVNFUlZFRD1ZRVMnLGZpbGU9c3lzLnN0ZGVycikKNjc4OiAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2V9KQo2Nzk6ICAgIHByaW50KGYnQVBQTFlfU1RBVFVTPU9LfFZNMTUwPVNOSUtLRVR8TE9DQUxfSEVBTFRIPU9LfFNFRURfREVUQUNIRUQ9WUVTfE5FV19CQUNLVVA9e2dlbn18TkVXX0JBQ0tVUF9SRVNUT1JFPVBST1ZFTnxPTERfR0VORVJBVElPTl9QUkVTRVJWRUQ9e09MRF9HRU59fElOR1JFU1NfQVRURVNURUQ9WUVTfEFETUlOX0lOVklURT1ST09UX09OTFlfRklMRXxJTlZJVEVfTE9HR0VEPU5PJykKNjk2OiAgICBpZiBjbGFzc2lmeV92bSgpIT0nVEFSR0VUJyBvciBxbV9zdGF0dXMoKSE9J3J1bm5pbmcnOiBkaWUoJ1ZFUklGWV9UQVJHRVRfVk1fSU5WQUxJRCcsNjYpCjY5NzogICAgaGVhbHRoPWxvY2FsX2hlYWx0aCgpOyBzeD1zdGFnZV9vYmooVHJ1ZSk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjk4OiAgICBpZiBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdWRVJJRllfTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDY2KQo2OTk6ICAgIHN0cmljdF9iYWNrdXBfZXZpZGVuY2UoZ2VuKQo3MTI6ICAgIHBoYXNlX2pzb24oJ3ZlcmlmeScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXZlcmlmeS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnbG9jYWxfaGVhbHRoX3NoYTI1Nic6aGVhbHRoLCdwdWJsaWNfZG5zJzpkbnMsJ2xvY2FsX3NwbGl0X2Rucyc6bG9jYWwsJ2VkZ2VfaHR0cHMnOmVkZ2VfaHR0cHMsJ3dlbGxfa25vd24nOidPSycsJ25ld19nZW5lcmF0aW9uJzpnZW4sJ25ld19iYWNrdXBfcmVzdG9yZSc6J1BST1ZFTicsJ2ZlZGVyYXRpb25fNTI2OV93YW4nOidPUEVSQVRPUl9OT19GT1JXQVJEX0FUVEVTVEFUSU9OX1JFUVVJUkVEJywnbW9iaWxlX2F2JzonT1BFUkFUT1JfRlVOQ1RJT05BTF9URVNUX1JFUVVJUkVEJywnbGltaXRlZF9yb2xlcyc6J1JFQ09NTUVOREVEX0ZPUl9GQU1JTFlfVVNFUlMnfSkKNzEzOiAgICBwcmludChmJ1ZFUklGWV9TVEFUVVM9T0t8UFVCTElDX0ROUz1PS3xMT0NBTF9TUExJVF9ETlM9RElSRUNUX1ZNMTUwfEVER0VfSFRUUFM9T0t8V0VMTF9LTk9XTj1PS3xORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58UkVRVUlSRVNfT1BFUkFUT1JfQVRURVNUQVRJT049Tk9fV0FOXzUyNjlfQU5EX01PQklMRV9BVl9BTkRfQURNSU4nKQo3MTY6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnUk9MTEJBQ0tfUkVGVVNFU19TRUFMRUQnLDY2KQo3MjE6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjcyMjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjcyMzogICAgICAgICAgICBpZiBiYWNrdXBfYnVzeSgpOiBkaWUoJ0FDVElWRV9CQUNLVVBfUkVTVE9SRV9QUkVTRU5UJyw3NSkKNzI0OiAgICAgICAgICAgIHN0b3Bfdm0oKTsgcmVzdG9yZV9vbGRfbG9ja2VkKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nUk9MTEVEX0JBQ0tfT0xEJykKNzI1OiAgICBwaGFzZV9qc29uKCdyb2xsYmFjaycseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXJvbGxiYWNrLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdyZXN1bHQnOidSRVNUT1JFRF9PTEQnLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTn0pCjcyNjogICAgcHJpbnQoZidST0xMQkFDS19TVEFUVVM9T0t8UkVTVUxUPVJFU1RPUkVEX05FWFRDTE9VRHxPTERfR0VORVJBVElPTj17T0xEX0dFTn0nKQo3Mjg6ZGVmIHNlYWwoKToKNzI5OiAgICBpZiBTRUFMLmV4aXN0cygpOgo3MzA6ICAgICAgICB4PWpzb24ubG9hZHMoU0VBTC5yZWFkX3RleHQoKSkKNzMxOiAgICAgICAgaWYgeC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgeC5nZXQoJ3Rhc2tfaWQnKT09VEFTS19JRDoKNzMyOiAgICAgICAgICAgIHBoYXNlX2pzb24oJ3NlYWwnLHgpOyBwcmludCgnU0VBTF9TVEFUVVM9T0t8UkVTVUxUPUFMUkVBRFlfU0VBTEVEJyk7IHJldHVybgo3MzM6ICAgICAgICBkaWUoJ0VYSVNUSU5HX1NFQUxfSU5WQUxJRCcsNjYpCjczNDogICAgc3g9c3RhZ2Vfb2JqKFRydWUpOyBtdXRhdGlvbl9zdGF0ZT1zeC5nZXQoJ211dGF0aW9uX3N0YXRlJyk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNzM1OiAgICBpZiBtdXRhdGlvbl9zdGF0ZSBub3QgaW4gKCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKSBvciBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdTRUFMX1RBUkdFVF9CQUNLVVBfTk9UX1BST1ZFTicsNjYpCjczNjogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdTRUFMX1RBUkdFVF9JTlZBTElEJyw2NikKNzM3OiAgICBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik7IGxvY2FsX2hlYWx0aCgpCjc0MjogICAgcHJlX2FkbWluX2dlbj1zeC5nZXQoJ3ByZV9hZG1pbl9nZW5lcmF0aW9uJykgaWYgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJyBlbHNlIGdlbgo3NDM6ICAgIGlmIG11dGF0aW9uX3N0YXRlIT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTic6Cjc0NDogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6Cjc0NTogICAgICAgICAgICB3aXRoIGV4Y2x1c2l2ZV9sb2NrcyhCQUNLVVBfTE9DS1MpOgo3NDY6ICAgICAgICAgICAgICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQo3NDc6ICAgICAgICAgICAgICAgIGZpbmFsX2dlbixmaW5hbF9oYXNoPWZvcmNlX2JhY2t1cCgpCjc0ODogICAgICAgIHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTicscHJlX2FkbWluX2dlbmVyYXRpb249cHJlX2FkbWluX2dlbixuZXdfZ2VuZXJhdGlvbj1maW5hbF9nZW4sZmluYWxfYmFja3VwX291dHB1dF9zaGEyNTY9ZmluYWxfaGFzaCkKNzUxOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjc1MjogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zZWFsLXYyJywnc3RhdHVzJzonU0VBTEVEJywndGFza19pZCc6VEFTS19JRCwnY2hhbmdlX2lkJzpDRkdbJ2NoYW5nZV9pZCddLCdzb3VyY2VfaGVhZCc6c291cmNlX2hlYWQsJ3NlYWxlZF9hdF91dGMnOm5vdygpLCd2bWlkJzoxNTAsJ2RvbWFpbic6J2NoYXQuZ3JhbTEucnUnLCdwcmVfYWRtaW5fZ2VuZXJhdGlvbic6cHJlX2FkbWluX2dlbiwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnOlRydWUsJ29sZF9nZW5lcmF0aW9uX3ByZXNlcnZlZCc6T0xEX0dFTiwnbW9iaWxlX2F2X3Rlc3QnOidQQVNTJywnd2FuXzUyNjlfZm9yd2FyZGVkJzpGYWxzZSwnYWRtaW5fYWNjb3VudF9jcmVhdGVkJzpUcnVlLCdmYW1pbHlfdXNlcl9yb2xlJzonTElNSVRFRF9SRUNPTU1FTkRFRCcsJ2ludml0ZV9sb2dnZWQnOkZhbHNlfQo3NTc6ICAgIGF0b21pY19qc29uKFNFQUwsb2JqKQo3NTg6ICAgIHBoYXNlX2pzb24oJ3NlYWwnLG9iaikKNzU5OiAgICBwcmludChmJ1NFQUxfU1RBVFVTPU9LfFRBU0s9e1RBU0tfSUR9fEZJTkFMX1BPU1RfQURNSU5fQkFDS1VQPXtnZW59fE1PQklMRV9BVj1QQVNTfFdBTl81MjY5PU5PVF9GT1JXQVJERUR8QURNSU5fQUNDT1VOVD1DUkVBVEVEfElOVklURV9MT0dHRUQ9Tk98Uk9MTEJBQ0tfU1RBR0VfUkVUQUlORUQ9WUVTJykKNzYyOiAgICBhY3Rpb249c3lzLmFyZ3ZbMV0gaWYgbGVuKHN5cy5hcmd2KT09MiBlbHNlICcnCjc2NDogICAgICAgIGFjdGlvbnM9eydwcmVmbGlnaHQnOnByZWZsaWdodCwncHJlcGFyZSc6cHJlcGFyZSwnZHJ5LXJ1bic6ZHJ5cnVuLCdhcHBseSc6YXBwbHksJ3ZlcmlmeSc6dmVyaWZ5LCdyb2xsYmFjayc6cm9sbGJhY2ssJ3NlYWwnOnNlYWx9\nPIPE_4_SCORE=5\nPIPE_4_BASENAME=homelab-backup-audit\nPIPE_4_PATH_SHA256=8625af1e2ff2eda46e03d400dced040d3506b25fd94cde5318eca74aa3a80888\nPIPE_4_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3\nPIPE_4_SCHEDULE_TARGET_COUNT=0\nPIPE_4_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_4_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_4_VZDUMP_QEMU_COUNT=0\nPIPE_4_RCLONE_COUNT=5\nPIPE_4_CLOUD_QUORUM_COUNT=2\nPIPE_4_SEAL_WRITTEN_COUNT=2\nPIPE_4_PAYLOAD_PARTS_COUNT=1\nPIPE_4_TRANSPORT_COUNT=1\nPIPE_4_RESTORE_VALIDATION_COUNT=0\nPIPE_4_SCHEDULE_RESULT_COUNT=0\nPIPE_4_RELEVANT_LINE_COUNT=114\nPIPE_4_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg==\nPIPE_5_SCORE=4\nPIPE_5_BASENAME=legacy_engine.py\nPIPE_5_PATH_SHA256=e4ceeb7671a8cdc119c5427c862109ecbbefb90b06c59ce1dcb68b03b8e96c95\nPIPE_5_FILE_SHA256=5715651655da32530df84a5a095b772d21dc0d1f92789465e9e6b5b1ff8a16e3\nPIPE_5_SCHEDULE_TARGET_COUNT=1\nPIPE_5_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_5_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_5_VZDUMP_QEMU_COUNT=0\nPIPE_5_RCLONE_COUNT=31\nPIPE_5_CLOUD_QUORUM_COUNT=0\nPIPE_5_SEAL_WRITTEN_COUNT=0\nPIPE_5_PAYLOAD_PARTS_COUNT=0\nPIPE_5_TRANSPORT_COUNT=3\nPIPE_5_RESTORE_VALIDATION_COUNT=0\nPIPE_5_SCHEDULE_RESULT_COUNT=2\nPIPE_5_RELEVANT_LINE_COUNT=350\nPIPE_5_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgaGVscGVyPVBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQvJ3B2ZTI2NV9hcmd2X2hlbHBlci5weScKNDQxOiAgICByZXE9eydqb2InOmpvYiwndnpkdW1wJzpzdHIodnpkdW1wKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpLCdub3cnOmludChub3cpfQo0NDM6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX0ZBSUxFRCcpCjQ0NDogICAgaWYgcC5zdGRlcnIgb3IgbGVuKHAuc3Rkb3V0KT42NTUzNjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0NTogICAgdHJ5OiBhcmd2PWpzb24ubG9hZHMocC5zdGRvdXQuZGVjb2RlKCd1dGYtOCcsJ3N0cmljdCcpKQo0NDY6ICAgIGV4Y2VwdCAoVW5pY29kZURlY29kZUVycm9yLGpzb24uSlNPTkRlY29kZUVycm9yKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpIGZyb20gTm9uZQo0NDc6ICAgIGlmIHR5cGUoYXJndikgaXMgbm90IGxpc3Qgb3Igbm90IGFyZ3Ygb3IgYW55KHR5cGUoeCkgaXMgbm90IHN0ciBvciBub3QgeCBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0ODogICAgcmV0dXJuIGFyZ3YKNDUzOiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1NzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1ODogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NjE6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ2MjogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NjM6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2NDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjU6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2NzogICAgYXJndj1saXN0KGFyZ3YpCjQ2ODogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2OTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ3MDogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ3MTogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ3MjogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0NzM6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDc0OiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3NTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3NjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3NzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3OTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0ODA6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ4MjogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0ODM6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4ODogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4OTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDkxOmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDkzOiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTU6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTY6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo1MDI6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwNjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwNzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTEwOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MTE6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTEzOiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTE2OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxNzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE5OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTIwOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTIzOiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTI1OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjY6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1Mjg6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTMwOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MzE6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUzMjogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUzMzogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTM1OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzY6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM4OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjU0MjogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0NDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQ1OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ4OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NTI6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2NjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1Njk6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU3MTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTc2OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTg1OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTg2OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTg3OiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg5OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU5MTogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5OTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo2MDM6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwNzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MTI6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxNzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTk6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjIxOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjIyOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYyMzogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjI0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyNTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI5OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MzA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MzE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MzI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjMzOiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjM0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzU6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2Mzc6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjYwOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjYzOiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2Njc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2ODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2OTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjcwOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjc0MzogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQ2OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDc6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDg6ICAgIHRhcmdldD1oaXRzWzBdCjc1NjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzU3OiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzYwOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzc1OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzgzOiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODc6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzkwOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc5MTogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0\nPIPE_6_SCORE=4\nPIPE_6_BASENAME=legacy_engine.py\nPIPE_6_PATH_SHA256=b08598c199b979909827472414e9d774eed12f00ff61eb1534b9cf9ff4333d05\nPIPE_6_FILE_SHA256=a5f1b1701a39eb22cf2f061d7daa7afa92789320c30b108371c3ee47d57f817c\nPIPE_6_SCHEDULE_TARGET_COUNT=1\nPIPE_6_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_6_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_6_VZDUMP_QEMU_COUNT=0\nPIPE_6_RCLONE_COUNT=31\nPIPE_6_CLOUD_QUORUM_COUNT=0\nPIPE_6_SEAL_WRITTEN_COUNT=0\nPIPE_6_PAYLOAD_PARTS_COUNT=0\nPIPE_6_TRANSPORT_COUNT=3\nPIPE_6_RESTORE_VALIDATION_COUNT=0\nPIPE_6_SCHEDULE_RESULT_COUNT=2\nPIPE_6_RELEVANT_LINE_COUNT=340\nPIPE_6_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgcmVxPXsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX1NVQlBST0NFU1NfRkFJTEVEJykKNDYyOiAgICBpZiBwLnN0ZGVyciBvciBsZW4ocC5zdGRvdXQpPjEwNDg1NzY6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NDogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fU1VCUFJPQ0VTU19PVVRQVVQnKSBmcm9tIE5vbmUKNDY1OiAgICBpZiB0eXBlKGQpIGlzIG5vdCBkaWN0IG9yIHNldChkKSE9eydhcmd2Jywnam9iJ306IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NjogICAgYXJndj1kWydhcmd2J107am9iPWRbJ2pvYiddO3ZtaWQ9aW50KHRbJ3ZtaWQnXSkKNDY3OiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2ODogICAgaWYgdHlwZShqb2IpIGlzIG5vdCBkaWN0IG9yIGpvYi5nZXQoJ3ZtaWQnKSE9dm1pZCBvciBqb2IuZ2V0KCdub2RlJykhPXN0cihub2RlKSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnIG9yIGpvYi5nZXQoJ2NvdmVyYWdlX2VsaWdpYmxlJykgaXMgbm90IFRydWUgb3Igam9iLmdldCgnYmxvY2tlcnMnKSE9W106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9KT0InKQo0Njk6ICAgIGlmIGFyZ3ZbMF0hPScvdXNyL2Jpbi92emR1bXAnIG9yIGxlbihhcmd2KTwyIG9yIGFyZ3ZbMV0hPXN0cih2bWlkKSBvciAnLS1zdGRvdXQnIG5vdCBpbiBhcmd2IG9yICctLXRtcGRpcicgbm90IGluIGFyZ3Ygb3Igc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fQVJHVicpCjQ3MDogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3MjpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzM6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3NTogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0NzY6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4MTogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4MjogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg0OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg2OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0ODg6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0ODk6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTU6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjQ5OTogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMDogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTAzOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDQ6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA2OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTA5OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMDogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTExOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEyOiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEzOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE2OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTE4OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MTk6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjE6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTIzOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MjQ6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyNTogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyNjogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTI4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1Mjk6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTMxOiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzNTogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUzNzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTM4OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQxOiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDU6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU1OTogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjI6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NDogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTY5OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTc4OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTc5OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgwOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTgyOmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NDogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1ODc6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5MjogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTY6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMDogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDU6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMDogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTI6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjEzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxNjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYxODogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjIyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MjQ6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MjU6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI2OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2Mjg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzA6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjUzOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU2OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2MTogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2MjogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjYzOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczNjogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzM5OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDA6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDE6ICAgIHRhcmdldD1oaXRzWzBdCjc0OTogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUwOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzUzOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzY4OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc2OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODA6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzgzOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NDogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5NTogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjc5NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo3OTk6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDA6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjgwMjogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo4MDM6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo4MDU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjgwODogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo4MTU6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo4MTg6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDAp\nPIPE_7_SCORE=4\nPIPE_7_BASENAME=legacy_engine.py\nPIPE_7_PATH_SHA256=d01be8c91a53c39ac6295a389b40b6b216db5f0cce27d2482e8f29523278d1d9\nPIPE_7_FILE_SHA256=ff4fbf84638ab55a8a1858558b759b3fc9d979ef5feb279132a558bcef583598\nPIPE_7_SCHEDULE_TARGET_COUNT=1\nPIPE_7_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_7_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_7_VZDUMP_QEMU_COUNT=0\nPIPE_7_RCLONE_COUNT=31\nPIPE_7_CLOUD_QUORUM_COUNT=0\nPIPE_7_SEAL_WRITTEN_COUNT=0\nPIPE_7_PAYLOAD_PARTS_COUNT=0\nPIPE_7_TRANSPORT_COUNT=3\nPIPE_7_RESTORE_VALIDATION_COUNT=0\nPIPE_7_SCHEDULE_RESULT_COUNT=2\nPIPE_7_RELEVANT_LINE_COUNT=340\nPIPE_7_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgdm1pZD1pbnQodFsndm1pZCddKQo0NjA6ICAgIHJlcT17J3ZtaWQnOnZtaWQsJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjY6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fJytjb2RlKQo0Njc6ICAgIGlmIHAuc3RkZXJyIG9yIGxlbihwLnN0ZG91dCk+MTA0ODU3NjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX09VVFBVVCcpCjQ2OTogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykgZnJvbSBOb25lCjQ3MDogICAgaWYgdHlwZShkKSBpcyBub3QgZGljdCBvciBzZXQoZCkhPXsnYXJndicsJ2pvYid9OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDcxOiAgICBhcmd2PWRbJ2FyZ3YnXTtqb2I9ZFsnam9iJ10KNDcyOiAgICBpZiB0eXBlKGpvYikgaXMgbm90IGRpY3Qgb3Igam9iLmdldCgndm1pZCcpIT12bWlkIG9yIGpvYi5nZXQoJ25vZGUnKSE9bm9kZSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDczOiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9PVVRQVVQnKQo0NzQ6ICAgIHJldHVybiBhcmd2LGpvYgo0NzY6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDc3OiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0Nzk6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDgwOiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0ODU6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0ODY6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQ4ODpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQ5MDogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDkyOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDkzOiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDk5OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo1MDM6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo1MDQ6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUwNzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNTA4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjUxMDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjUxMzogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo1MTQ6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUxNTogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNjogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNzogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjUyMDogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjUyMjogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNTIzOiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNTI1OiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjUyNzogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNTI4OiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo1Mjk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo1MzA6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjUzMjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNTMzOiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjUzNTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo1Mzk6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo1NDE6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjU0MjogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjU0NTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNTQ5OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1NjM6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTY2OmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1Njg6ICAgIGZvciB0IGluIHRhcmdldHM6CjU3MzpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjU4MjpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjU4MzogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjU4NDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjU4NjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1ODg6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTkxOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1OTY6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNjAwOiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo2MDQ6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNjA5OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo2MTQ6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNjE2OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYxNzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjYxODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjYxOTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2MjA6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYyMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MjI6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjYyNjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNjI4OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjI5OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjYzMDogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjYzMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNjMyOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjM0OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjY1NzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjY2MDogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjY0OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2NjU6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2NjY6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjY2NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo3NDA6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjc0MzogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNzQ0OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNzQ1OiAgICB0YXJnZXQ9aGl0c1swXQo3NTM6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjc1NDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjc1NzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjc3MjogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjc4MDogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzg0OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjc4NzogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3ODg6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3OTk6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo4MDE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKODAzOmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKODA0OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo4MDY6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KODA3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKODA5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo4MTI6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKODE5OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKODIyOiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQ==\nPIPE_8_SCORE=4\nPIPE_8_BASENAME=legacy_engine.py\nPIPE_8_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nPIPE_8_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_8_SCHEDULE_TARGET_COUNT=1\nPIPE_8_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_8_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_8_VZDUMP_QEMU_COUNT=0\nPIPE_8_RCLONE_COUNT=31\nPIPE_8_CLOUD_QUORUM_COUNT=0\nPIPE_8_SEAL_WRITTEN_COUNT=0\nPIPE_8_PAYLOAD_PARTS_COUNT=0\nPIPE_8_TRANSPORT_COUNT=3\nPIPE_8_RESTORE_VALIDATION_COUNT=0\nPIPE_8_SCHEDULE_RESULT_COUNT=2\nPIPE_8_RELEVANT_LINE_COUNT=346\nPIPE_8_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_9_SCORE=4\nPIPE_9_BASENAME=legacy_engine.py\nPIPE_9_PATH_SHA256=9a8b05902c8db1d56dc8303ffbd6fef278b3b69b41dd4eda89a767f2a3d6bd25\nPIPE_9_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_9_SCHEDULE_TARGET_COUNT=1\nPIPE_9_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_9_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_9_VZDUMP_QEMU_COUNT=0\nPIPE_9_RCLONE_COUNT=31\nPIPE_9_CLOUD_QUORUM_COUNT=0\nPIPE_9_SEAL_WRITTEN_COUNT=0\nPIPE_9_PAYLOAD_PARTS_COUNT=0\nPIPE_9_TRANSPORT_COUNT=3\nPIPE_9_RESTORE_VALIDATION_COUNT=0\nPIPE_9_SCHEDULE_RESULT_COUNT=2\nPIPE_9_RELEVANT_LINE_COUNT=346\nPIPE_9_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_10_SCORE=4\nPIPE_10_BASENAME=legacy_engine.py\nPIPE_10_PATH_SHA256=88ab68bf67a35e0d0b255725cf1d80a6bc6e1d39d0208f2cc2551fdaedd35b49\nPIPE_10_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_10_SCHEDULE_TARGET_COUNT=1\nPIPE_10_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_10_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_10_VZDUMP_QEMU_COUNT=0\nPIPE_10_RCLONE_COUNT=31\nPIPE_10_CLOUD_QUORUM_COUNT=0\nPIPE_10_SEAL_WRITTEN_COUNT=0\nPIPE_10_PAYLOAD_PARTS_COUNT=0\nPIPE_10_TRANSPORT_COUNT=3\nPIPE_10_RESTORE_VALIDATION_COUNT=0\nPIPE_10_SCHEDULE_RESULT_COUNT=2\nPIPE_10_RELEVANT_LINE_COUNT=346\nPIPE_10_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_11_SCORE=4\nPIPE_11_BASENAME=legacy_engine.py\nPIPE_11_PATH_SHA256=ed37300bf21f40701d61084225758267688ee569a15a9a8f5e7e1f2d1d95a496\nPIPE_11_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_11_SCHEDULE_TARGET_COUNT=1\nPIPE_11_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_11_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_11_VZDUMP_QEMU_COUNT=0\nPIPE_11_RCLONE_COUNT=31\nPIPE_11_CLOUD_QUORUM_COUNT=0\nPIPE_11_SEAL_WRITTEN_COUNT=0\nPIPE_11_PAYLOAD_PARTS_COUNT=0\nPIPE_11_TRANSPORT_COUNT=3\nPIPE_11_RESTORE_VALIDATION_COUNT=0\nPIPE_11_SCHEDULE_RESULT_COUNT=2\nPIPE_11_RELEVANT_LINE_COUNT=346\nPIPE_11_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_12_SCORE=4\nPIPE_12_BASENAME=legacy_engine.py\nPIPE_12_PATH_SHA256=ada28322dd44b921f815bb2cdba360506c3f4e2a58c97f1eea9a2a6d4e384c9d\nPIPE_12_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_12_SCHEDULE_TARGET_COUNT=1\nPIPE_12_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_12_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_12_VZDUMP_QEMU_COUNT=0\nPIPE_12_RCLONE_COUNT=31\nPIPE_12_CLOUD_QUORUM_COUNT=0\nPIPE_12_SEAL_WRITTEN_COUNT=0\nPIPE_12_PAYLOAD_PARTS_COUNT=0\nPIPE_12_TRANSPORT_COUNT=3\nPIPE_12_RESTORE_VALIDATION_COUNT=0\nPIPE_12_SCHEDULE_RESULT_COUNT=2\nPIPE_12_RELEVANT_LINE_COUNT=346\nPIPE_12_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzP" +} diff --git a/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.txt b/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.txt new file mode 100644 index 00000000..a8a65028 --- /dev/null +++ b/runtime/history/SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1.txt @@ -0,0 +1,1272 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=snikket-vm150-backup-pipeline-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=fa63ff895da7ac1a4849b7dfe5ef876de998332951253b342bd18a20683391ab +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=dd3644f0d18f852c97cab7c2519a22789989cbe57ec7b30661b53cacb78363ac +SANITIZED_OUTPUT_SHA256=bb1a4159fb966baac410cfc19986b6c53a847a83e0d9e74a555313dbe760148c +OUTPUT_BEGIN +SNIKKET_VM150_BACKUP_PIPELINE_RCA=V1 +MODE=read-only +NO_VM_MUTATION=true +NO_BACKUP_EXECUTION=true +NO_REMOTE_MUTATION=true +NO_STATE_MUTATION=true +NO_SOURCE_MUTATION=true +NO_DNS_MUTATION=true +HOST_PVE01=true +INGRESS_HOSTKEY_SELF_BOUND=true +VM150_RUNNING=true +VM150_QGA=true +HOMELAB_BACKUP_V2_SERVICE_PRESENT=true +HOMELAB_BACKUP_V2_SERVICE_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d +HOMELAB_BACKUP_V2_SERVICE_ACTIVE=inactive +HOMELAB_BACKUP_V2_SERVICE_ENABLED=static +HOMELAB_BACKUP_V2_TIMER_PRESENT=true +HOMELAB_BACKUP_V2_TIMER_CAT_SHA256=11e196a0353983e6ccf0d1c683a7c581cf4eb6ed8afc778324ae9c279ba23c93 +HOMELAB_BACKUP_V2_TIMER_ACTIVE=active +HOMELAB_BACKUP_V2_TIMER_ENABLED=enabled +HOMELAB_BACKUP_AUDIT_SERVICE_PRESENT=true +HOMELAB_BACKUP_AUDIT_SERVICE_CAT_SHA256=d7ca901a0238e10361a07403729e5b4768821af34f18e624032ab8ff1a6e8846 +HOMELAB_BACKUP_AUDIT_SERVICE_ACTIVE=inactive +HOMELAB_BACKUP_AUDIT_SERVICE_ENABLED=static +HOMELAB_BACKUP_AUDIT_TIMER_PRESENT=true +HOMELAB_BACKUP_AUDIT_TIMER_CAT_SHA256=88e5b100a8e480dfb69141caf9776b9d9da274933ee32f464208d0aff7264d63 +HOMELAB_BACKUP_AUDIT_TIMER_ACTIVE=active +HOMELAB_BACKUP_AUDIT_TIMER_ENABLED=enabled +BACKUP_V2_UNIT_SHOW_SHA256=93dda19ac5b7e586443dd6505828caef8c62df1cb0b4b3eaf2eb63fa47775fc1 +BACKUP_V2_UNIT_SHOW_B64=RXhlY1N0YXJ0PXsgcGF0aD0vdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjIgOyBhcmd2W109L3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXYyIHNjaGVkdWxlZCA7IGlnbm9yZV9lcnJvcnM9bm8gOyBzdGFydF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0MDo1MiBNU0tdIDsgc3RvcF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0ODoyNyBNU0tdIDsgcGlkPTMxNTU5NjUgOyBjb2RlPWV4aXRlZCA7IHN0YXR1cz0wIH0KRW52aXJvbm1lbnQ9 +BACKUP_V2_COMMAND_PRESENT=true +BACKUP_V2_FILETYPE_SHA256=75e59f7a9c20f8ef3feb350d7a6bae401bae921d9830a4d5907f01e23b038da5 +BACKUP_V2_SIZE_BYTES=1656 +BACKUP_V2_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c +BKV2_TEXT_BYTES=1656 +BKV2_SHEBANG=#!/usr/bin/python3 +BKV2_SCHEDULE_TARGET_COUNT=0 +BKV2_QEMU_EXECUTION_DIAG_COUNT=0 +BKV2_SELFTEST_COUNT=0 +BKV2_VZDUMP_COUNT=0 +BKV2_RCLONE_COUNT=0 +BKV2_CLOUD_COUNT=0 +BKV2_SEAL_COUNT=0 +BKV2_TRANSPORT_COUNT=0 +BKV2_RESTORE_COUNT=0 +BKV2_PYTHON_COUNT=1 +BKV2_EXEC_COUNT=0 +BKV2_USR_LOCAL_COUNT=0 +BKV2_OPT_PATH_COUNT=1 +BKV2_RELEVANT_LINE_COUNT=5 +BKV2_RELEVANT_B64=MTojIS91c3IvYmluL3B5dGhvbjMKMjpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCjM6aW1wb3J0IGhhc2hsaWIsIGltcG9ydGxpYiwgb3MsIHBhdGhsaWIsIHN0YXQsIHN5cwo1OkVYUEVDVEVEPXsnZnJlc2hfbHhjX2hlbHBlci5weSc6ICc0ZTM5NDA0YjFkZGI5NzM5MjY0NWFkY2U2MjgwZjY5NzE4MmNjYTAzNzE0ZDNhNDYyZDM2M2VlYmNlOWIxODYwJywgJ3Byb2R1Y2VyX2V4ZWNfaGVscGVyLnB5JzogJ2IzYjk3MDk5YmNkNzEyNjY3MGY4NjZlODFmYWFlNmE0MmE5NmQ4NjlkOTk4OWU2YTY3ZjZlYTZjODcxYzkwYjMnLCAnbHhjX2FkYXB0ZXIucHknOiAnM2ZhN2QxOTQwMTBkNzZmN2M4YmM5NTAzNWFlODg3NjI2MmU5MzM3OTAzZTMxMGY0NWY0NWRmODhjMjY2ZGM4ZCcsICdxZW11X2FkYXB0ZXIucHknOiAnMTkwNmRiNDJiZDM0YmJlODVlYjQ2ZmQ5Nzk3YjM1NzJkNDZlMGE0MWMyOWQxYzI5YmU1ZjlkZjVlNDQ4ZjE1YicsICdzY2hlZHVsZXJfYWRhcHRlci5weSc6ICdhNmY2NzE1OWE2NDA2Nzc3MzMyM2YwMjgxMjZlMzEwOWUxNWNmMTdhODE0MmNlYTVlNjEyOTk3MGYxZDRkYTk2JywgJ2VudHJ5NTA0LnB5JzogJ2NhNjg3NmZhOWMzYjE0NjViMDQ1MzQ0YThhZDQ2OTYyZGUxNjk3MmM3ZGFkYzRhYzYyNTdjN2QyMjUwNDc3OTMnfQoyNDogZT1pbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnZW50cnk1MDQnKQ== +BKV2_ABS_PATH_COUNT=1 +BKV2_PATH_1_BASENAME=backup-v2-overlay-505r1-4e39404b1ddb +BKV2_PATH_1_SHA256=50a47e615a0781a486100f5d6723e32a263337608d003f678b4b582f74434cee +PIPELINE_HELPER_CANDIDATE_COUNT=149 +PIPE_1_SCORE=5 +PIPE_1_BASENAME=homelab-backup-audit +PIPE_1_PATH_SHA256=92769ab05a0e3e5bd466bc9d92157c75162ede4803289c63689289f751eebbef +PIPE_1_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3 +PIPE_1_SCHEDULE_TARGET_COUNT=0 +PIPE_1_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_1_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_1_VZDUMP_QEMU_COUNT=0 +PIPE_1_RCLONE_COUNT=5 +PIPE_1_CLOUD_QUORUM_COUNT=2 +PIPE_1_SEAL_WRITTEN_COUNT=2 +PIPE_1_PAYLOAD_PARTS_COUNT=1 +PIPE_1_TRANSPORT_COUNT=1 +PIPE_1_RESTORE_VALIDATION_COUNT=0 +PIPE_1_SCHEDULE_RESULT_COUNT=0 +PIPE_1_RELEVANT_LINE_COUNT=114 +PIPE_1_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg== +PIPE_2_SCORE=5 +PIPE_2_BASENAME=homelab-cloud-quorum-payload +PIPE_2_PATH_SHA256=68de12f3737cfc95291752929a5ac96d6ab3078d9f540969437fd463cc238756 +PIPE_2_FILE_SHA256=df9e19485e5d87112bf58bf77bdddf3b9b896418dd85ff945a31cd5b6817f352 +PIPE_2_SCHEDULE_TARGET_COUNT=0 +PIPE_2_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_2_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_2_VZDUMP_QEMU_COUNT=0 +PIPE_2_RCLONE_COUNT=26 +PIPE_2_CLOUD_QUORUM_COUNT=15 +PIPE_2_SEAL_WRITTEN_COUNT=6 +PIPE_2_PAYLOAD_PARTS_COUNT=1 +PIPE_2_TRANSPORT_COUNT=1 +PIPE_2_RESTORE_VALIDATION_COUNT=0 +PIPE_2_SCHEDULE_RESULT_COUNT=0 +PIPE_2_RELEVANT_LINE_COUNT=448 +PIPE_2_RELEVANT_B64=NTpTQ0hFTUE9ImhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEiCjE5OlRNUF9CQVNFPSIke0hPTUVMQUJfUVVPUlVNX1RNUF9CQVNFOi0vbW50L3N0YWdpbmcvaG9tZWxhYi1jbG91ZC1xdW9ydW0tdG1wfSIKMjU6ICBwcmludGYgJ1JPT1RfQ0FVU0U9VU5FWFBFQ1RFRF9UUkFOU1BPUlRfRVJST1JcblJPT1RfQ0FVU0VfQ09VTlQ9MVxuREVUQUlMPWxpbmU6JXMgcmM6JXNcbicgIiR7MTotMH0iICIkcmMiID4mMgo0MTpmb3IgdG9vbCBpbiBqcSByY2xvbmUgc2hhMjU2c3VtIGRkIHN0YXQgc29ydCBta3RlbXAgZmxvY2sgYXdrIGNtcCBkYXRlOyBkbwo0Njp1c2FnZSgpewo0NzogIHByaW50ZiAndXNhZ2U6ICVzIGJhY2t1cC1kZWxldGUgTE9HSUNBTF9JRCBHRU5FUkFUSU9OIFBBWUxPQUQgUkVNT1RFX0FfUk9PVCBSRU1PVEVfQl9ST09UIFNUQVRFX1JPT1RcbicgIiQwIiA+JjIKNDg6ICBwcmludGYgJyAgICAgICAlcyB2ZXJpZnktc2VhbGVkIExPR0lDQUxfSUQgR0VORVJBVElPTiBSRU1PVEVfQV9ST09UIFJFTU9URV9CX1JPT1QgU1RBVEVfUk9PVFxuJyAiJDAiID4mMgo1MDp2YWxpZF9yZW1vdGVfcm9vdCgpeyBbWyAiJDEiID1+IF5bQS1aYS16MC05XVtBLVphLXowLTkuXy1dKjpbQS1aYS16MC05Ll8vLV0rJCBdXTsgfQo1NDogIGJhY2t1cC1kZWxldGUpCjU1OiAgICBbWyAiJCMiIC1lcSA3IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNTc6ICAgIEdFTkVSQVRJT049IiQzIgo1OTogICAgUkVNT1RFX0FfUk9PVD0iJDUiCjYwOiAgICBSRU1PVEVfQl9ST09UPSIkNiIKNjE6ICAgIFNUQVRFX1JPT1Q9IiQ3Igo2MzogIHZlcmlmeS1zZWFsZWQpCjY0OiAgICBbWyAiJCMiIC1lcSA2IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNjY6ICAgIEdFTkVSQVRJT049IiQzIgo2ODogICAgUkVNT1RFX0FfUk9PVD0iJDQiCjY5OiAgICBSRU1PVEVfQl9ST09UPSIkNSIKNzA6ICAgIFNUQVRFX1JPT1Q9IiQ2Igo3MzogICAgdXNhZ2UKNzk6dmFsaWRfdG9rZW4gIiRHRU5FUkFUSU9OIiB8fCBkaWUgIkdFTkVSQVRJT05fSU5WQUxJRCIgNjQKODA6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiB8fCBkaWUgIlJFTU9URV9BX1JPT1RfSU5WQUxJRCIgNjQKODE6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQl9ST09UIiB8fCBkaWUgIlJFTU9URV9CX1JPT1RfSU5WQUxJRCIgNjQKODI6W1sgIiRSRU1PVEVfQV9ST09UIiAhPSAiJFJFTU9URV9CX1JPT1QiIF1dIHx8IGRpZSAiUkVNT1RFX0ZBSUxVUkVfRE9NQUlOU19OT1RfRElTVElOQ1QiIDY0CjgzOltbICIkU1RBVEVfUk9PVCIgPT0gLyogXV0gfHwgZGllICJTVEFURV9ST09UX05PVF9BQlNPTFVURSIgNjQKODQ6aWYgW1sgIiRURVNUX01PREUiICE9ICIxIiAmJiAiJFNUQVRFX1JPT1QiICE9ICIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iIF1dOyB0aGVuCjg1OiAgZGllICJQUk9EVUNUSU9OX1NUQVRFX1JPT1RfSU5WQUxJRCIgNjQKODg6U1RBVEVfRElSPSIkU1RBVEVfUk9PVC8kTE9HSUNBTF9JRCIKODk6U1RBVEVfRklMRT0iJFNUQVRFX0RJUi8kR0VORVJBVElPTi5qc29uIgo5MDpSRU1PVEVfQV9CQVNFPSIke1JFTU9URV9BX1JPT1QlL30vJExPR0lDQUxfSUQvJEdFTkVSQVRJT04iCjkxOlJFTU9URV9CX0JBU0U9IiR7UkVNT1RFX0JfUk9PVCUvfS8kTE9HSUNBTF9JRC8kR0VORVJBVElPTiIKMTAyOiAgU1RBVEVfUk9PVD0iJChyZWFscGF0aCAtbSAtLSAiJFNUQVRFX1JPT1QiKSIKMTA0OiAgY2FzZSAiJFNUQVRFX1JPT1QiIGluICIkUlVOX1JFQUwiLyopIDs7ICopIGRpZSAiVEVTVF9TVEFURV9ST09UX09VVFNJREVfUlVOX0RJUiIgNjQ7OyBlc2FjCjEwNTogIFNUQVRFX0RJUj0iJFNUQVRFX1JPT1QvJExPR0lDQUxfSUQiCjEwNjogIFNUQVRFX0ZJTEU9IiRTVEFURV9ESVIvJEdFTkVSQVRJT04uanNvbiIKMTA5OltbICEgLUwgIiRTVEFURV9ST09UIiBdXSB8fCBkaWUgIlNUQVRFX1JPT1RfU1lNTElOS19GT1JCSURERU4iIDY0CjExMDppZiBbWyAtZSAiJFNUQVRFX0RJUiIgfHwgLUwgIiRTVEFURV9ESVIiIF1dOyB0aGVuIFtbIC1kICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRElSIiBdXSB8fCBkaWUgIlNUQVRFX0RJUl9VTlNBRkUiIDY0OyBmaQoxMTE6bWtkaXIgLXAgIiRTVEFURV9ESVIiCjExMjpbWyAhIC1MICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRklMRSIgXV0gfHwgZGllICJTVEFURV9QQVRIX1NZTUxJTktfRk9SQklEREVOIiA2NAoxMTM6Y2htb2QgMDcwMCAiJFNUQVRFX1JPT1QiICIkU1RBVEVfRElSIgoxMTQ6TE9DS19GSUxFPSIkU1RBVEVfRElSLy5sb2NrIgoxMTU6ZXhlYyA5PiIkTE9DS19GSUxFIgoxMTY6ZmxvY2sgLW4gOSB8fCBkaWUgIkdFTkVSQVRJT05fTE9DS19CVVNZIiA3NQoxNDM6aWYgW1sgIiRBQ1RJT04iID09ICJiYWNrdXAtZGVsZXRlIiBdXTsgdGhlbgoxNDg6IyBTRUNUSU9OX1NUQVRFX0lERU5USVRZX1YxCjE0OTpzdGF0ZV9pZGVudGl0eV9vaygpewoxNTA6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCByZXR1cm4gMQoxNTQ6ICAgIC0tYXJnIGdlbmVyYXRpb24gIiRHRU5FUkFUSU9OIiBcCjE1NTogICAgLS1hcmcgcmVtb3RlX2EgIiRSRU1PVEVfQV9ST09UIiBcCjE1NjogICAgLS1hcmcgcmVtb3RlX2IgIiRSRU1PVEVfQl9ST09UIiBcCjE2MDogICAgIC5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQKMTYxOiAgICAgLnJlbW90ZV9hX3Jvb3Q9PSRyZW1vdGVfYSBhbmQKMTYyOiAgICAgLnJlbW90ZV9iX3Jvb3Q9PSRyZW1vdGVfYiBhbmQKMTY4OiAgICAgIC5zdGF0dXM9PSJTRUFMRUQiKScgXAoxNjk6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoxNzI6c3RhdGVfc3RhdHVzKCl7CjE3MzogIGlmIFtbICEgLWUgIiRTVEFURV9GSUxFIiBdXTsgdGhlbgoxNzc6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCBkaWUgIlNUQVRFX0ZJTEVfVU5TQUZFIiA2NQoxNzg6ICBzdGF0ZV9pZGVudGl0eV9vayB8fCBkaWUgIlNUQVRFX0lERU5USVRZX01JU01BVENIIiA2NQoxNzk6ICBqcSAtciAnLnN0YXR1cycgIiRTVEFURV9GSUxFIgoxODI6IyBTRUNUSU9OX1NUQVRFX0lOSVRJQUxfVjEKMTgzOndyaXRlX2luaXRpYWxfc3RhdGUoKXsKMTg0OiAgbG9jYWwgbm93PSIkMSIgdG1wPSIke1NUQVRFX0ZJTEV9Lm5ldy4kJCIKMTkwOiAgICAtLWFyZyBnZW5lcmF0aW9uICIkR0VORVJBVElPTiIgXAoxOTU6ICAgIC0tYXJnIHJlbW90ZV9hX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiBcCjE5NjogICAgLS1hcmcgcmVtb3RlX2Jfcm9vdCAiJFJFTU9URV9CX1JPT1QiIFwKMTk3OiAgICAtLWFyZyByZW1vdGVfYV9iYXNlICIkUkVNT1RFX0FfQkFTRSIgXAoxOTg6ICAgIC0tYXJnIHJlbW90ZV9iX2Jhc2UgIiRSRU1PVEVfQl9CQVNFIiBcCjIwMjogICAgJ3tzY2hlbWE6JHNjaGVtYSxzdGF0dXM6JHN0YXR1cyxsb2dpY2FsX2lkOiRsb2dpY2FsX2lkLGdlbmVyYXRpb246JGdlbmVyYXRpb24sCjIwNzogICAgICByZW1vdGVfYV9yb290OiRyZW1vdGVfYV9yb290LHJlbW90ZV9iX3Jvb3Q6JHJlbW90ZV9iX3Jvb3QsCjIwODogICAgICByZW1vdGVfYV9iYXNlOiRyZW1vdGVfYV9iYXNlLHJlbW90ZV9iX2Jhc2U6JHJlbW90ZV9iX2Jhc2UsCjIwOTogICAgICBjbG91ZF9hX3ZlcmlmaWVkOmZhbHNlLGNsb3VkX2JfdmVyaWZpZWQ6ZmFsc2UsCjIxMDogICAgICBjbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2Om51bGwsY2xvdWRfYl9yZWNvbnN0cnVjdGVkX3NoYTI1NjpudWxsLAoyMTE6ICAgICAgY2xvdWRfYV92ZXJpZmllZF9hdF91dGM6bnVsbCxjbG91ZF9iX3ZlcmlmaWVkX2F0X3V0YzpudWxsLAoyMTI6ICAgICAgY2xvdWRfcXVvcnVtOjAscGFydF9oYXNoZXNfdmVyaWZpZWQ6ZmFsc2UscGFydHNfbWFuaWZlc3Rfc2hhMjU2Om51bGwsCjIxNTogICAgICBzZWFsX3dyaXR0ZW46ZmFsc2Usc2VhbGVkX2F0X3V0YzpudWxsfScgPiIkdG1wIgoyMjE6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgoyMjQ6c3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vaygpewoyMjk6ICAgIC0tYXJnIHJlbW90ZV9hX2Jhc2UgIiRSRU1PVEVfQV9CQVNFIiBcCjIzMDogICAtLWFyZyByZW1vdGVfYl9iYXNlICIkUkVNT1RFX0JfQkFTRSIgXAoyMzg6ICAgICAucmVtb3RlX2FfYmFzZT09JHJlbW90ZV9hX2Jhc2UgYW5kCjIzOTogICAgIC5yZW1vdGVfYl9iYXNlPT0kcmVtb3RlX2JfYmFzZScgXAoyNDA6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoyNDM6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9IRUxQRVJTX1YxCjI0NDpsb2FkX3N0YXRlX3BheWxvYWRfaWRlbnRpdHkoKXsKMjQ1OiAgUEFZTE9BRF9SRUFMPSIkKGpxIC1lciAnLnBheWxvYWRfcGF0aCB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1BBVEhfSU5WQUxJRCIgNjUKMjQ2OiAgUEFZTE9BRF9OQU1FPSIkKGpxIC1lciAnLnBheWxvYWRfbmFtZSB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX05BTUVfSU5WQUxJRCIgNjUKMjQ3OiAgUEFZTE9BRF9TSEE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYgfCBzdHJpbmdzIHwgc2VsZWN0KHRlc3QoIl5bMC05YS1mXXs2NH0kIikpJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1NIQV9JTlZBTElEIiA2NQoyNDg6ICBQQVlMT0FEX1NJWkU9IiQoanEgLWVyICcuYXJjaGl2ZV9zaXplX2J5dGVzIHwgbnVtYmVycyB8IHNlbGVjdCguPjAgYW5kIGZsb29yPT0uKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9TSVpFX0lOVkFMSUQiIDY1CjI0OTogIFBBUlRfQ09VTlQ9IiQoanEgLWVyICcucGFydF9jb3VudCB8IG51bWJlcnMgfCBzZWxlY3QoLj4wIGFuZCBmbG9vcj09LiknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBUlRfQ09VTlRfSU5WQUxJRCIgNjUKMjY1OmFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGgoKXsKMjY2OiAgbG9jYWwgaW5wdXRfcmVhbD0iJDEiIGlucHV0X25hbWU9IiQyIiBzdGF0ZV9yZWFsIHN0YXRlX25hbWUKMjY3OiAgc3RhdGVfcmVhbD0iJChqcSAtZXIgJy5wYXlsb2FkX3BhdGggfCBzdHJpbmdzIHwgc2VsZWN0KGxlbmd0aD4wKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX0lOVkFMSUQiIDY1CjI2ODogIHN0YXRlX25hbWU9IiQoanEgLWVyICcucGF5bG9hZF9uYW1lIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBWUxPQURfTkFNRV9JTlZBTElEIiA2NQoyNjk6ICBbWyAiJGlucHV0X3JlYWwiID09ICIkc3RhdGVfcmVhbCIgJiYgIiRpbnB1dF9uYW1lIiA9PSAiJHN0YXRlX25hbWUiIF1dIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX01JU01BVENIIiA2NQoyNzI6IyBTRUNUSU9OX1NUQVRFX1BIQVNFX0lOVkFSSUFOVFNfVjEKMjczOnN0YXRlX3BoYXNlX2NvcmVfaW52YXJpYW50c19vaygpewoyNzc6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzg6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzk6ICAgICAgLmNsb3VkX3F1b3J1bT09MCBhbmQKMjgzOiAgICAgIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZAoyODQ6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyODU6ICAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI4NjogICAgICAuY2xvdWRfcXVvcnVtPT0xIGFuZAoyOTA6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjI5MTogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMjkyOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAoyOTM6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI5NDogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAoyOTk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMwMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzAxOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMDI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMwMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMDg6ICAgIGVsaWYgLnN0YXR1cz09IlNFQUxFRCIgdGhlbgozMDk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMxMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzExOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMTI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMxMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMTg6ICAgICAgLnNlYWxfd3JpdHRlbj09dHJ1ZQozMjI6ICAnICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAozMjU6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9ESVNQQVRDSF9WMQozMjY6cHJlcGFyZV9iYWNrdXBfc3RhdGUoKXsKMzMwOiAgc3RhdHVzPSIkKHN0YXRlX3N0YXR1cykiCjMzNTogICAgICBhc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudAozMzY6ICAgICAgd3JpdGVfaW5pdGlhbF9zdGF0ZSAiJG5vdyIKMzM3OiAgICAgIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiSU5JVElBTF9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQozMzg6ICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozMzk6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0MjogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzQ0OiAgICAgIHN0YXRlX3BheWxvYWRfaWRlbnRpdHlfb2sgfHwgZGllICJSRVNVTUVfUEFZTE9BRF9JREVOVElUWV9NSVNNQVRDSCIgNjUKMzQ1OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJSRVNVTUVfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0ODogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzUyOiAgICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1BBWUxPQURfSURFTlRJVFlfTUlTTUFUQ0giIDY1CjM1NDogICAgICAgIGxvYWRfc3RhdGVfcGF5bG9hZF9pZGVudGl0eQozNTU6ICAgICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiREVMRVRFX0FVVEhPUklaRURfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozNTc6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX1BIQVNFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQozNTk6ICAgIFNFQUxFRCkKMzYwOiAgICAgIGFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGggIiRpbnB1dF9wYXlsb2FkX3JlYWwiICIkaW5wdXRfcGF5bG9hZF9uYW1lIgozNjE6ICAgICAgW1sgISAtZSAiJGlucHV0X3BheWxvYWRfcmVhbCIgJiYgISAtTCAiJGlucHV0X3BheWxvYWRfcmVhbCIgXV0gfHwgZGllICJTRUFMRURfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIiA2NgozNjI6ICAgICAgbG9hZF9zdGF0ZV9wYXlsb2FkX2lkZW50aXR5CjM2MzogICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiU0VBTEVEX1NUQVRFX1BBWUxPQURfSURFTlRJVFlfSU5WQUxJRCIgNjUKMzY0OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJTRUFMRURfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM2NzogICAgICBkaWUgIlNUQVRFX1NUQVRVU19VTlNVUFBPUlRFRF8ke3N0YXR1c30iIDY1CjM3MDogIEJBQ0tVUF9TVEFURV9TVEFUVVM9IiRzdGF0dXMiCjM3MjogICAgQkFDS1VQX1NUQVRFX1NUQVRVUz0iUFJFUEFSSU5HIgozNzU6IyBTRUNUSU9OX1JFTU9URV9QT0xJQ1lfVjEKMzc3OiAgW1sgIiRSRU1PVEVfQV9ST09UIiA9PSAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiIF1dIHx8IGRpZSAiUFJPRFVDVElPTl9SRU1PVEVfQV9JTlZBTElEIiA2NAozNzg6ICBbWyAiJFJFTU9URV9CX1JPT1QiID09ICJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIgXV0gfHwgZGllICJQUk9EVUNUSU9OX1JFTU9URV9CX0lOVkFMSUQiIDY0CjM3OTogIFtbIC16ICIke0hPTUVMQUJfVEVTVF9SQ0xPTkVfQklOOi19IiBdXSB8fCBkaWUgIlBST0RVQ1RJT05fUkNMT05FX09WRVJSSURFX0ZPUkJJRERFTiIgNjQKMzgwOiAgUkNMT05FX0JJTj0iJChjb21tYW5kIC12IHJjbG9uZSkiIHx8IGRpZSAiUkNMT05FX01JU1NJTkciIDY5CjM4MjogIFJDTE9ORV9CSU49IiR7SE9NRUxBQl9URVNUX1JDTE9ORV9CSU46LX0iCjM4MzogIGlmIFtbIC16ICIkUkNMT05FX0JJTiIgXV07IHRoZW4KMzg0OiAgICBSQ0xPTkVfQklOPSIkKGNvbW1hbmQgLXYgcmNsb25lKSIgfHwgZGllICJSQ0xPTkVfTUlTU0lORyIgNjkKMzg2OiAgW1sgIiRSQ0xPTkVfQklOIiA9PSAvKiAmJiAteCAiJFJDTE9ORV9CSU4iICYmICEgLUwgIiRSQ0xPTkVfQklOIiBdXSB8fCBkaWUgIlRFU1RfUkNMT05FX0JJTl9VTlNBRkUiIDY0CjM4OTpydW5fcmNsb25lKCl7CjM5MDogICIkUkNMT05FX0JJTiIgIiRAIgozOTM6IyBTRUNUSU9OX1JFTU9URV9HRU5FUkFUSU9OX0dVQVJEX1YxCjM5NDpyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSgpewozOTY6ICBbWyAiJGxhYmVsIiA9PSAiQSIgfHwgIiRsYWJlbCIgPT0gIkIiIF1dIHx8IGRpZSAiUkVNT1RFX1BST0JFX0xBQkVMX0lOVkFMSUQiIDY0CjM5NzogIHJvb3RfbGlzdGluZz0iJFdPUksvcmVtb3RlLSR7bGFiZWx9LXJvb3QubHNmIgozOTg6ICBsb2dpY2FsX2xpc3Rpbmc9IiRXT1JLL3JlbW90ZS0ke2xhYmVsfS1sb2dpY2FsLmxzZiIKNDAwOiAgaWYgISBydW5fcmNsb25lIGxzZiAiJHJvb3QiIC0tZGlycy1vbmx5IC0tbWF4LWRlcHRoIDEgPiIkcm9vdF9saXN0aW5nIjsgdGhlbgo0MDE6ICAgIGRpZSAiUkVNT1RFXyR7bGFiZWx9X1JPT1RfUFJPQkVfRkFJTEVEIiA3NAo0MDM6ICBpZiAhIGF3ayAtdiB0YXJnZXQ9IiRMT0dJQ0FMX0lELyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRyb290X2xpc3RpbmciOyB0aGVuCjQwNzogIGlmICEgcnVuX3JjbG9uZSBsc2YgIiR7cm9vdCUvfS8kTE9HSUNBTF9JRCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMSA+IiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQwODogICAgZGllICJSRU1PVEVfJHtsYWJlbH1fTE9HSUNBTF9QUk9CRV9GQUlMRUQiIDc0CjQxMDogIGlmIGF3ayAtdiB0YXJnZXQ9IiRHRU5FUkFUSU9OLyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQxNzphc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudCgpewo0MTg6ICBsb2NhbCBhX3N0YXRlIGJfc3RhdGUKNDE5OiAgYV9zdGF0ZT0iJChyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSBBICIkUkVNT1RFX0FfUk9PVCIpIgo0MjA6ICBiX3N0YXRlPSIkKHJlbW90ZV9nZW5lcmF0aW9uX3Byb2JlIEIgIiRSRU1PVEVfQl9ST09UIikiCjQyMTogIFtbICIkYV9zdGF0ZSIgPT0gIkFCU0VOVCIgXV0gfHwgZGllICJSRU1PVEVfQV9HRU5FUkFUSU9OX0FMUkVBRFlfRVhJU1RTIiA2NQo0MjI6ICBbWyAiJGJfc3RhdGUiID09ICJBQlNFTlQiIF1dIHx8IGRpZSAiUkVNT1RFX0JfR0VORVJBVElPTl9BTFJFQURZX0VYSVNUUyIgNjUKNDI1OiMgU0VDVElPTl9TVEFURV9UUkFOU0lUSU9OU19DTE9VRF9WMQo0MjY6YXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlKCl7CjQyODogIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQo0Mjk6ICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9QQVlMT0FEX0lERU5USVRZX0lOVkFMSUQiIDY1CjQzMDogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJUUkFOU0lUSU9OX1NPVVJDRV9JTlZBUklBTlRfSU5WQUxJRCIgNjUKNDMxOiAgYWN0dWFsPSIkKGpxIC1lciAnLnN0YXR1cyB8IHN0cmluZ3MnICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlRSQU5TSVRJT05fU1RBVFVTX0lOVkFMSUQiIDY1CjQzNjogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAKNDM3OiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQzODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSSU5HIgo0NDA6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NDU6ICAgIC0tYXJnIG1hbmlmZXN0X3NoYSAiJG1hbmlmZXN0X3NoYSIgXAo0NDg6ICAgICAuY2xvdWRfYV92ZXJpZmllZD10cnVlIHwKNDQ5OiAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDUwOiAgICAgLmNsb3VkX2FfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NTE6ICAgICAuY2xvdWRfcXVvcnVtPTEgfAo0NTI6ICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PSRtYW5pZmVzdF9zaGEnIFwKNDUzOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNDU1OiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNDU2OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkFfVkVSSUZJRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ2MDogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAgc2F2ZWRfbWFuaWZlc3QKNDYxOiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2MjogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiQV9WRVJJRklFRCIKNDYzOiAgc2F2ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwgc3RyaW5ncyB8IHNlbGVjdCh0ZXN0KCJeWzAtOWEtZl17NjR9JCIpKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2NDogIFtbICIkc2F2ZWRfbWFuaWZlc3QiID09ICIkbWFuaWZlc3Rfc2hhIiBdXSB8fCBkaWUgIlBBUlRTX01BTklGRVNUX1NIQV9DSEFOR0VEIiA2NQo0NjY6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NzM6ICAgICAuY2xvdWRfYl92ZXJpZmllZD10cnVlIHwKNDc0OiAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDc1OiAgICAgLmNsb3VkX2JfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NzY6ICAgICAuY2xvdWRfcXVvcnVtPTIgfAo0Nzg6ICAgICIkU1RBVEVfRklMRSIgPiIkdG1wIgo0ODA6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgo0ODE6ICBzdGF0ZV9waGFzZV9pbnZhcmlhbnRzX29rIHx8IGRpZSAiUFJFUEFSRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ4NDojIFNFQ1RJT05fU1RBVEVfVFJBTlNJVElPTlNfREVMRVRFX1YxCjQ4ODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSRUQiCjQ5MDogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUwMDogICAgIC5zZWFsX3dyaXR0ZW49ZmFsc2UnIFwKNTAxOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNTAzOiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNTA0OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1MDU6ICBqcSAtZSAnLmRlbGV0ZV9hdXRob3JpemVkX2F0X3V0YyB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwgfHwgZGllICJERUxFVEVfQVVUSE9SSVpFRF9USU1FU1RBTVBfSU5WQUxJRCIgNjUKNTEwOiAgYXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlICJERUxFVEVfQVVUSE9SSVpFRCIKNTEyOiAgaWYganEgLWUgJy5sb2NhbF9wYXlsb2FkX3ByZXNlbnQ9PWZhbHNlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRTVEFURV9GSUxFIiA+L2Rldi9udWxsOyB0aGVuCjUxNjogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUyNDogICAgIiRTVEFURV9GSUxFIiA+IiR0bXAiCjUyNjogIG12IC1mIC0tICIkdG1wIiAiJFNUQVRFX0ZJTEUiCjUyNzogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJMT0NBTF9ERUxFVEVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1Mjg6ICBqcSAtZSAnLmxvY2FsX2RlbGV0ZWRfYXRfdXRjIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbCB8fCBkaWUgIkxPQ0FMX0RFTEVURURfVElNRVNUQU1QX0lOVkFMSUQiIDY1CjUzMTojIFNFQ1RJT05fU1RBVEVfTUFOSUZFU1RfSU5WQVJJQU5UU19WMQo1MzI6c3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rKCl7CjUzNTogICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PT1udWxsCjUzOTogICAgICAgICAgLnN0YXR1cz09IlNFQUxFRCIpIHRoZW4KNTQwOiAgICAgICgucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwKNTQ2OiAgJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwKNTQ5OnN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2soKXsKNTUwOiAgc3RhdGVfcGhhc2VfY29yZV9pbnZhcmlhbnRzX29rICYmCjU1MTogICAgc3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rICYmCjU1MjogICAgc3RhdGVfc2VhbF9pbnZhcmlhbnRfb2sKNTYwOlBBUlRTX01BTklGRVNUPSIkV09SSy9QQVJUUy50c3YiCjU4OTogIGRkIGlmPSIkUEFZTE9BRF9SRUFMIiBvZj0iJFBBUlRfRklMRSIgYnM9MTA0ODU3NiBza2lwPSIkKCggaWR4ICogQ0hVTktfTUlCICkpIiBjb3VudD0iJENIVU5LX01JQiIgaWZsYWc9ZnVsbGJsb2NrIHN0YXR1cz1ub25lCjU5NzptYW5pZmVzdF9yZXNldCgpewo1OTg6ICA6ID4iJFBBUlRTX01BTklGRVNUIgo1OTk6ICBjaG1vZCAwNjAwICIkUEFSVFNfTUFOSUZFU1QiCjYwMjptYW5pZmVzdF9hcHBlbmRfY3VycmVudCgpewo2MDQ6ICBbWyAiJENVUlJFTlRfUEFSVF9OQU1FIiA9PSAiJChwYXJ0X25hbWUgIiRpZHgiKSIgXV0gfHwgZGllICJQQVJUX05BTUVfU1RBVEVfTUlTTUFUQ0giIDY1CjYwNTogIFtbICIkQ1VSUkVOVF9QQVJUX1NJWkUiID09ICIkKGV4cGVjdGVkX3BhcnRfc2l6ZSAiJGlkeCIpIiBdXSB8fCBkaWUgIlBBUlRfU0laRV9TVEFURV9NSVNNQVRDSCIgNjUKNjA2OiAgW1sgIiRDVVJSRU5UX1BBUlRfU0hBIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlBBUlRfU0hBX1NUQVRFX0lOVkFMSUQiIDY1CjYwNzogIHByaW50ZiAnJTA4ZFx0JXNcdCVzXHQlc1xuJyAiJGlkeCIgIiRDVVJSRU5UX1BBUlRfTkFNRSIgIiRDVVJSRU5UX1BBUlRfU0laRSIgIiRDVVJSRU5UX1BBUlRfU0hBIiA+PiIkUEFSVFNfTUFOSUZFU1QiCjYxMDptYW5pZmVzdF9maW5hbGl6ZSgpewo2MjE6ICAnICIkUEFSVFNfTUFOSUZFU1QiIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfSU5WQUxJRCIgNjUKNjIyOiAgUEFSVFNfTUFOSUZFU1RfU0hBPSIkKHNoYTI1NnN1bSAtLSAiJFBBUlRTX01BTklGRVNUIiB8IGF3ayAne3ByaW50ICQxfScpIgo2MjM6ICBbWyAiJFBBUlRTX01BTklGRVNUX1NIQSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQQVJUU19NQU5JRkVTVF9TSEFfSU5WQUxJRCIgNjUKNjI2OiMgU0VDVElPTl9SRU1PVEVfVVBMT0FEX1BSSU1JVElWRVNfVjEKNjI3OnJlbW90ZV9wYXJ0c19iYXNlKCl7CjYyOTogIFtbICIkYmFzZSIgPT0gIiRSRU1PVEVfQV9CQVNFIiB8fCAiJGJhc2UiID09ICIkUkVNT1RFX0JfQkFTRSIgXV0gfHwgZGllICJSRU1PVEVfQkFTRV9OT1RfQVBQUk9WRUQiIDY0CjYzMzpyZW1vdGVfbWFuaWZlc3RfcGF0aCgpewo2MzU6ICBbWyAiJGJhc2UiID09ICIkUkVNT1RFX0FfQkFTRSIgfHwgIiRiYXNlIiA9PSAiJFJFTU9URV9CX0JBU0UiIF1dIHx8IGRpZSAiUkVNT1RFX0JBU0VfTk9UX0FQUFJPVkVEIiA2NAo2NDM6ICBkZXN0aW5hdGlvbj0iJChyZW1vdGVfcGFydHNfYmFzZSAiJGJhc2UiKS8kQ1VSUkVOVF9QQVJUX05BTUUiCjY0NDogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVF9GSUxFIiAiJGRlc3RpbmF0aW9uIiAtLWltbXV0YWJsZSAtLXNpemUtb25seQo2NDc6dXBsb2FkX21hbmlmZXN0X2ltbXV0YWJsZSgpewo2NDk6ICBbWyAtcyAiJFBBUlRTX01BTklGRVNUIiAmJiAhIC1MICIkUEFSVFNfTUFOSUZFU1QiIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfTk9UX1JFQURZIiA2NQo2NTA6ICBbWyAiJHtQQVJUU19NQU5JRkVTVF9TSEE6LX0iID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfU0hBX05PVF9SRUFEWSIgNjUKNjUxOiAgZGVzdGluYXRpb249IiQocmVtb3RlX21hbmlmZXN0X3BhdGggIiRiYXNlIikiCjY1MjogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVFNfTUFOSUZFU1QiICIkZGVzdGluYXRpb24iIC0taW1tdXRhYmxlIC0tc2l6ZS1vbmx5CjY1NTojIFNFQ1RJT05fQ0xPVURfQV9VUExPQURfUEFTU19WMQ== +PIPE_3_SCORE=5 +PIPE_3_BASENAME=vm150-runtime.py +PIPE_3_PATH_SHA256=1f2b9620938f600855ee9172ae67b59709d740fe981c64c0d2b78b8298192b4f +PIPE_3_FILE_SHA256=af1fcb7b519b60b203c940bfb6c6373fd012b691f1479f7e42a4c8b54bc17b2a +PIPE_3_SCHEDULE_TARGET_COUNT=0 +PIPE_3_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_3_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_3_VZDUMP_QEMU_COUNT=1 +PIPE_3_RCLONE_COUNT=7 +PIPE_3_CLOUD_QUORUM_COUNT=2 +PIPE_3_SEAL_WRITTEN_COUNT=2 +PIPE_3_PAYLOAD_PARTS_COUNT=1 +PIPE_3_TRANSPORT_COUNT=0 +PIPE_3_RESTORE_VALIDATION_COUNT=0 +PIPE_3_SCHEDULE_RESULT_COUNT=0 +PIPE_3_RELEVANT_LINE_COUNT=175 +PIPE_3_RELEVANT_B64=MjE6Vk1JRD0xNTAKMjk6T0xEX1NUQVRFPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwJykvKE9MRF9HRU4rJy5qc29uJykKMzA6T0xEX1NUQVRFX1NIQT0nNjgwZGVjZDkwZWMwNmFmMTE5ZDRhNjUwN2RiOTRjMDA4N2E4YTIzNzM5NmFhNDhkZTBmMWFmYWM4NWJiYTY4OCcKMzE6T0xEX1JFU1RPUkU9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAnKS8oT0xEX0dFTisnLmpzb24nKQozMjpPTERfUkVTVE9SRV9TSEE9J2JiYTQ4Y2MzNWZhNjFmZjQ0MDc5ZGE5ZGZkNWI2NWI5N2U4NTZmNjM5Yjg5M2Y3ZGI4NTEwMGIyOGE1ODE2ZTAnCjM0OlNFQUw9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWFkbWluL3NlYWxzJykvKFRBU0tfSUQrJy5qc29uJykKMzU6U0VFRF9UQVJHRVQ9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi92ei90ZW1wbGF0ZS9pc28vc25pa2tldC12bTE1MC1zZWVkLmlzbycpCjUyOlFNUkVTVE9SRT0nL3Vzci9zYmluL3FtcmVzdG9yZScKNTQ6UkNMT05FPScvdXNyL2Jpbi9yY2xvbmUnCjU3OlFVRVVFPScvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUnCjU4OldPUktFUj0nL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLW5vZGUtd29ya2VyJwo2MDpCQUNLVVBfTE9DS1M9WycvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrJywnL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2snLCcvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2snXQo3NzpkZWYgcnVuKGFyZ3YsY2hlY2s9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSxlbnY9Tm9uZSk6Cjc4OiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KODg6ZGVmIHRleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6IHJldHVybiBydW4oYXJndixjaGVjaz1jaGVjayx0aW1lb3V0PXRpbWVvdXQpLnN0ZG91dC5kZWNvZGUoZXJyb3JzPSdyZXBsYWNlJykKODk6ZGVmIHJ1bl90dHkoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjkwOiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KMTY0OmRlZiB0YXJnZXRfc2hhcGUoY2ZnKToKMTgxOiAgICBpZiB0YXJnZXRfc2hhcGUoY2ZnKTogcmV0dXJuICdUQVJHRVQnCjE4NTogICAgcm93cz1beCBmb3IgeCBpbiBkYXRhIGlmIGludCh4LmdldCgndm1pZCcsLTEpKT09MTUwXQoyMDE6ZGVmIGFzc2VydF9vbGRfcmVjb3ZlcnkocmVhZF9yZW1vdGU9VHJ1ZSk6CjIwMjogICAgaWYgbm90IE9MRF9TVEFURS5pc19maWxlKCkgb3Igc2hhKE9MRF9TVEFURSkhPU9MRF9TVEFURV9TSEE6IGRpZSgnT0xEX1NUQVRFX1NIQV9NSVNNQVRDSCcsNjYpCjIwMzogICAgaWYgbm90IE9MRF9SRVNUT1JFLmlzX2ZpbGUoKSBvciBzaGEoT0xEX1JFU1RPUkUpIT1PTERfUkVTVE9SRV9TSEE6IGRpZSgnT0xEX1JFU1RPUkVfU0hBX01JU01BVENIJyw2NikKMjA0OiAgICBzdD1qc29uLmxvYWRzKE9MRF9TVEFURS5yZWFkX3RleHQoKSk7IHJ2PWpzb24ubG9hZHMoT0xEX1JFU1RPUkUucmVhZF90ZXh0KCkpCjIwNTogICAgY2hlY2tzPVtzdC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyxzdC5nZXQoJ2Nsb3VkX3F1b3J1bScpPT0yLHN0LmdldCgnY2xvdWRfYV92ZXJpZmllZCcpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9iX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3BhcnRfaGFzaGVzX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3NlYWxfd3JpdHRlbicpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9hX3NlYWxfdmVyaWZpZWQnKSBpcyBUcnVlLHN0LmdldCgnY2xvdWRfYl9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ2xvY2FsX2NsZWFudXAnKT09J09LJyxzdC5nZXQoJ2xvY2FsX3BheWxvYWRfcHJlc2VudCcpIGlzIEZhbHNlLHJ2LmdldCgncmVzdWx0Jyk9PSdPSycscnYuZ2V0KCdwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZCcpIGlzIFRydWUscnYuZ2V0KCdhcmNoaXZlX3JlY292ZXJ5X3JlYWRiYWNrX3ZlcmlmaWVkJykgaXMgVHJ1ZSxydi5nZXQoJ3Byb3htb3hfY29uZmlnX2V4dHJhY3RfdmVyaWZpZWQnKSBpcyBUcnVlXQoyMDc6ICAgIGlmIHJlYWRfcmVtb3RlOgoyMDg6ICAgICAgICBiYXNlPXN0LmdldCgncmVtb3RlX2FfYmFzZScpOyBtc2hhPXN0LmdldCgncGFydHNfbWFuaWZlc3Rfc2hhMjU2JykKMjA5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYmFzZSxzdHIpIG9yIG5vdCBiYXNlLmVuZHN3aXRoKCcvdm0xNTAvJytPTERfR0VOKTogZGllKCdPTERfUkVNT1RFX0FfQkFTRV9JTlZBTElEJyw2NikKMjEwOiAgICAgICAgc2VhbGI9cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL3NlYWwuanNvbiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTE6ICAgICAgICBtYW49cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL1BBUlRTLnRzdiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTI6ICAgICAgICB0cnk6IHJzPWpzb24ubG9hZHMoc2VhbGIpCjIxMzogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IGRpZSgnT0xEX1JFTU9URV9TRUFMX0pTT05fSU5WQUxJRCcsNjYpCjIxNDogICAgICAgIGlmIHJzLmdldCgnc3RhdHVzJykhPSdTRUFMRUQnIG9yIHJzLmdldCgnZ2VuZXJhdGlvbicpIT1PTERfR0VOIG9yIHJzLmdldCgnYXJjaGl2ZV9zaGEyNTYnKSE9c3QuZ2V0KCdhcmNoaXZlX3NoYTI1NicpOiBkaWUoJ09MRF9SRU1PVEVfU0VBTF9NSVNNQVRDSCcsNjYpCjIxNTogICAgICAgIGlmIHNoYV9ieXRlcyhtYW4pIT1tc2hhOiBkaWUoJ09MRF9SRU1PVEVfTUFOSUZFU1RfU0hBX01JU01BVENIJyw2NikKMjE4OmRlZiBiYWNrdXBfYnVzeSgpOgoyMTk6ICAgIHA9cnVuKFsnL3Vzci9iaW4vcGdyZXAnLCctYWYnLCcoXnwvKSh2emR1bXB8cW1yZXN0b3JlfHBjdHJlc3RvcmV8dm1hfHpzdGR8cmNsb25lKShbWzpzcGFjZTpdXXwkKXxob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1ub2RlLXdvcmtlciBiYWNrdXAnXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE1KQoyMzA6ICAgIGlmIG5vdCBwYXRobGliLlBhdGgoV09SS0VSKS5pc19maWxlKCkgb3Igc2hhKFdPUktFUikhPUNGR1sndm1fd29ya2VyX3NoYTI1NiddOiBkaWUoJ1ZNX1dPUktFUl9TT1VSQ0VfRFJJRlQnLDY2KQoyNTI6ICAgIGZyZWU9c2h1dGlsLmRpc2tfdXNhZ2UoJy9tbnQvc3RhZ2luZycpLmZyZWUKMjU3OiAgICBpZiBTRUFMLmV4aXN0cygpOiBkaWUoJ1RBU0tfQUxSRUFEWV9TRUFMRUQnLDY2KQoyNTk6ICAgIHN0YXRlPWNsYXNzaWZ5X3ZtKCk7IG93bmVyPWNsdXN0ZXJfb3duZXIoKQoyNjA6ICAgIGlmIHN0YXRlPT0nT0xEJzoKMjYyOiAgICBlbGlmIHN0YXRlPT0nVEFSR0VUJzoKMjYzOiAgICAgICAgaWYgb3duZXIhPSdwdmUwMScgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdWTTE1MF9UQVJHRVRfSURFTlRJVFlfSU5WQUxJRCcsNjYpCjI2NDogICAgZWxzZTogZGllKCdWTTE1MF9TVEFURV8nK3N0YXRlLDY2KQoyNjU6ICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQoyNjc6ICAgIG9iaj17J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlZmxpZ2h0LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6c3RhdGUsJ293bmVyJzpvd25lciwnb2xkX2dlbmVyYXRpb24nOk9MRF9HRU4sJ29sZF9yZWNvdmVyeSc6J1NFQUxFRF9SRVNUT1JFX1BST1ZFTicsJ2ltYWdlX3NoYTI1Nic6Q0ZHWydpbWFnZV9zaGEyNTYnXSwncXVldWVfc2hhMjU2JzpDRkdbJ3ZtX3F1ZXVlX3NoYTI1NiddLCd3b3JrZXJfc2hhMjU2JzpDRkdbJ3ZtX3dvcmtlcl9zaGEyNTYnXSwnZWRnZV9yZWFkb25seV9zaGEyNTYnOnNoYV9ieXRlcyhlZGdlLmVuY29kZSgpKSwnc291cmNlX2hlYWQnOnNvdXJjZV9oZWFkLCdzdGFnaW5nX2ZyZWVfYnl0ZXMnOmZyZWUsJ3JvbGxiYWNrX21pbl9mcmVlX2J5dGVzJzpuZWVkLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfQoyNjk6ICAgIHByaW50KGYnUFJFRkxJR0hUX1NUQVRVUz1PS3xWTTE1MD17c3RhdGV9fE9XTkVSPXtvd25lcn18T0xEX1JFQ09WRVJZPVNFQUxFRF9SRVNUT1JFX1BST1ZFTnxJTUFHRT1QSU5ORUR8U09VUkNFPXtzb3VyY2VfaGVhZH18U1RBR0lOR19ST0xMQkFDS19DQVBBQ0lUWT1PS3xFREdFX05QTVBMVVM9UkVBRF9PTkxZX09LfFBST0RVQ1RJT05fQ0hBTkdFRD1OTycpCjI3MTpkZWYgcGFyc2VfcGFydHMoc3QsbWFuaWZlc3RfYnl0ZXMpOgoyNzM6ICAgIGZvciBpLGxpbmUgaW4gZW51bWVyYXRlKG1hbmlmZXN0X2J5dGVzLmRlY29kZSgpLnNwbGl0bGluZXMoKSk6CjI3NTogICAgICAgIGlmIGxlbihmaWVsZHMpIT00OiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1JPV19JTlZBTElEJyw3MCkKMjc3OiAgICAgICAgaWYgaWR4IT1mJ3tpOjA4ZH0nIG9yIG5hbWUhPWYncGFydC17aTowOGR9LmJpbicgb3Igbm90IHNpemVfcy5pc2RpZ2l0KCkgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscHNoYSk6IGRpZSgnUk9MTEJBQ0tfTUFOSUZFU1RfUk9XX0lOVkFMSUQnLDcwKQoyODE6ICAgIGlmIGxlbihyb3dzKSE9aW50KHN0LmdldCgncGFydF9jb3VudCcsLTEpKSBvciB0b3RhbCE9aW50KHN0LmdldCgnYXJjaGl2ZV9zaXplX2J5dGVzJywtMSkpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1RPVEFMX0lOVkFMSUQnLDcwKQoyODY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsc3RyKSBvciBwYXRobGliLlBhdGgobmFtZSkubmFtZSE9bmFtZSBvciBub3QgbmFtZS5zdGFydHN3aXRoKCd2emR1bXAtcWVtdS0xNTAtJykgb3Igbm90IG5hbWUuZW5kc3dpdGgoJy52bWEuenN0Jyk6IGRpZSgnUk9MTEJBQ0tfQVJDSElWRV9OQU1FX0lOVkFMSUQnLDY2KQozMDE6ICAgIGJhc2U9c3RbJ3JlbW90ZV9hX2Jhc2UnXS5yc3RyaXAoJy8nKQozMDI6ICAgIG1hbmlmZXN0PXJ1bihbUkNMT05FLCdjYXQnLGJhc2UrJy9QQVJUUy50c3YnXSx0aW1lb3V0PTYwKS5zdGRvdXQKMzAzOiAgICBpZiBzaGFfYnl0ZXMobWFuaWZlc3QpIT1zdC5nZXQoJ3BhcnRzX21hbmlmZXN0X3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1NIQV9NSVNNQVRDSCcsNzApCjMwNDogICAgcm93cz1wYXJzZV9wYXJ0cyhzdCxtYW5pZmVzdCk7IG5hbWU9c2FmZV9hcmNoaXZlX25hbWUoc3QpCjMyODogICAgICAgICAgICBwPXN1YnByb2Nlc3MucnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZSsnL3BheWxvYWQucGFydHMvJytuYW1lX2ldLHN0ZG91dD1wZixzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTgwMCkKMzY5OiAgICAgICAgJyNjbG91ZC1jb25maWcnLCd1c2VyczonLCcgIC0gbmFtZTogZGViaWFuJywnICAgIGdlY29zOiBEZWJpYW4nLCcgICAgZ3JvdXBzOiBbc3Vkb10nLCcgICAgc3VkbzogIkFMTD0oQUxMKSBOT1BBU1NXRDpBTEwiJywnICAgIHNoZWxsOiAvYmluL2Jhc2gnLCcgICAgbG9ja19wYXNzd2Q6IHRydWUnLCcgICAgc3NoX2F1dGhvcml6ZWRfa2V5czonLCpbJyAgICAgIC0gJyt4IGZvciB4IGluIGtleXNdLAozODM6ICAgICMgUnVuIGluIHRoZSBzZWVkIGRpcmVjdG9yeSBzbyB0aGUgSVNPIGNvbnRhaW5zIHRoZSBjYW5vbmljYWwgTm9DbG91ZCBmaWxlbmFtZXMgYXQgaXRzIHJvb3QuCjQwMDogICAgaWYgeC5nZXQoJ3NjaGVtYScpIT0nc25pa2tldC12bTE1MC1zdGFnZS12Micgb3IgeC5nZXQoJ29sZF9nZW5lcmF0aW9uJykhPU9MRF9HRU4gb3IgeC5nZXQoJ29sZF9jb25maWdfc2hhMjU2JykhPU9MRF9DT05GSUdfU0hBOiBkaWUoJ1NUQUdFX01FVEFEQVRBX0lOVkFMSUQnLDY2KQo0MTM6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnVEFTS19BTFJFQURZX1NFQUxFRCcsNjYpCjQxNjogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyNjogICAgd2l0aCBleGNsdXNpdmVfbG9ja3MoQkFDS1VQX0xPQ0tTKToKNDI3OiAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyOTogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zdGFnZS12MicsJ2NvbXBsZXRlJzpUcnVlLCdjcmVhdGVkX29yX3JlZnJlc2hlZF9hdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwnb2xkX3N0YXRlX3NoYTI1Nic6T0xEX1NUQVRFX1NIQSwnb2xkX3Jlc3RvcmVfc2hhMjU2JzpPTERfUkVTVE9SRV9TSEEsJ29sZF9jb25maWdfc2hhMjU2JzpPTERfQ09ORklHX1NIQSwnaW1hZ2Vfc2hhMjU2JzpDRkdbJ2ltYWdlX3NoYTI1NiddLCdvcGVyYXRvcl9rZXlzX3NoYTI1Nic6c2hhKGtleXMpLCdzZWVkX3NoYTI1Nic6c2hhKHNlZWQpLCdyb2xsYmFja19hcmNoaXZlX25hbWUnOmFyY2hpdmUubmFtZSwncm9sbGJhY2tfYXJjaGl2ZV9ieXRlcyc6YXJjaGl2ZS5zdGF0KCkuc3Rfc2l6ZSwncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOnN0WydhcmNoaXZlX3NoYTI1NiddLCdtdXRhdGlvbl9zdGF0ZSc6J1BSRVBBUkVEJ30KNDMxOiAgICBwaGFzZV9qc29uKCdwcmVwYXJlJyx7J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlcGFyZS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnc3RhZ2UnOnN0cihTVEFHRSksJ29sZF9nZW5lcmF0aW9uJzpPTERfR0VOLCdyb2xsYmFja19hcmNoaXZlJzonTE9DQUxfUFJFU1RBR0VEX1ZFUklGSUVEJywncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOm9ialsncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnXSwnc2VlZF9zaGEyNTYnOm9ialsnc2VlZF9zaGEyNTYnXSwncHJpdmF0ZV9tYXRlcmlhbF9sb2dnZWQnOkZhbHNlLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfSkKNDMyOiAgICBwcmludChmJ1BSRVBBUkVfU1RBVFVTPU9LfE9MRF9HRU5FUkFUSU9OPXtPTERfR0VOfXxST0xMQkFDS19BUkNISVZFPUxPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRHxTRUVEPU5PX0NMT1VEX0NJREFUQXxQUklWQVRFX01BVEVSSUFMX0xPR0dFRD1OT3xQUk9EVUNUSU9OX0NIQU5HRUQ9Tk8nKQo0NjI6ZGVmIGd1ZXN0X2V4ZWMoYXJndix0aW1lb3V0PTEyMCxjaGVjaz1UcnVlLHJlcXVpcmVfcGlkPUZhbHNlKToKNDYzOiAgICBwPXJ1bihbUU0sJ2d1ZXN0JywnZXhlYycsJzE1MCcsJy0tJ10rbGlzdChhcmd2KSx0aW1lb3V0PW1pbih0aW1lb3V0LDEyMCkpCjQ4MDogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQ5MDogICAgaWYgbm90IGlkZV9jb250cmFjdCBvciBub3QgaXBjb25maWdfY29udHJhY3Q6IGRpZSgnUU1fU0VUX0NMT1VESU5JVF9DT05UUkFDVF9VTlBST1ZFTicsNjYpCjQ5NDogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1kcnktcnVuLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwncm9sbGJhY2tfYXJjaGl2ZSc6J0xPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRCcsJ3FnYV9hc3luY19jb250cmFjdCc6J1BST1ZFTl9PTl9DVVJSRU5UX1ZNMTUwJywndGFyZ2V0Jzp7J25hbWUnOidzbmlra2V0Jywndm1pZCc6MTUwLCdjb3Jlcyc6NCwnbWVtb3J5X21pYic6ODE5MiwnZGlza19naWInOjY0LCdpcCc6SVAsJ2dhdGV3YXknOkdXLCdtYWMnOk1BQywnZG5zJzpbR1csJ1tQUklWQVRFX0lQXSddfSwncHJveG1veF9zZXF1ZW5jZSc6WydzaHV0ZG93biBvbGQgVk0xNTAnLCdkZXN0cm95IGV4YWN0IG9sZCBWTTE1MCcsJ2NyZWF0ZSBWTTE1MCcsJ2ltcG9ydCBwaW5uZWQgRGViaWFuIDEzIGdlbmVyaWMgaW1hZ2UnLCdhdHRhY2grcmVzaXplIDY0RycsJ2F0dGFjaCB0YXNrLW93bmVkIE5vQ2xvdWQgY2lkYXRhIElTTycsJ3N0YXJ0IGFuZCB3YWl0IGZvciBndWVzdC1wcm92aXNpb24gdmlhIFFHQScsJ3N0b3AgYW5kIGRldGFjaCBzZWVkIElTTycsJ3Jlc3RhcnQgYW5kIHJldmVyaWZ5IGxvY2FsIFNuaWtrZXQgaGVhbHRoJywnY3JlYXRlIHJvb3Qtb25seSBhZG1pbiBpbnZpdGUnLCdjcmVhdGUgZnJlc2ggY2Fub25pY2FsIHJlc3RvcmUtcHJvdmVuIFZNMTUwIGJhY2t1cCddLCdyb2xsYmFjayc6J3ByZS1zdGFnZWQgZXhhY3Qgb2xkIGFyY2hpdmUgKyBxbXJlc3RvcmUgMTUwJywncHJvZHVjdGlvbl9jaGFuZ2VkJzpGYWxzZX0KNDk2OiAgICBwcmludCgnRFJZX1JVTl9TVEFUVVM9T0t8UFJPRFVDVElPTl9DSEFOR0VEPU5PfFJPTExCQUNLPUxPQ0FMX1BSRVNUQUdFRF9RTVJFU1RPUkV8UUdBX0FTWU5DX0NPTlRSQUNUPVBST1ZFTnxUQVJHRVQ9Vk0xNTBfU05JS0tFVCcpCjQ5OTpkZWYgZXhjbHVzaXZlX2xvY2tzKHBhdGhzKToKNTA0OiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX0VYfGZjbnRsLkxPQ0tfTkIpCjUwNTogICAgICAgICAgICBleGNlcHQgQmxvY2tpbmdJT0Vycm9yOgo1MDY6ICAgICAgICAgICAgICAgIGYuY2xvc2UoKTsgZGllKCdMT0NLX0JVU1lfJytwYXRobGliLlBhdGgocSkubmFtZSw3NSkKNTExOiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjUzMjogICAgaWYgU0VFRF9UQVJHRVQuZXhpc3RzKCk6CjUzMzogICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9QUkVFWElTVFNfRElGRkVSRU5UJyw2NikKNTM1OiAgICB0bXA9U0VFRF9UQVJHRVQud2l0aF9uYW1lKFNFRURfVEFSR0VULm5hbWUrJy5uZXcuJytzdHIob3MuZ2V0cGlkKCkpKQo1MzY6ICAgIHNodXRpbC5jb3B5ZmlsZShzcmMsdG1wKTsgb3MuY2htb2QodG1wLDBvNjAwKTsgb3MucmVwbGFjZSh0bXAsU0VFRF9UQVJHRVQpCjUzNzpkZWYgY3JlYXRlX3RhcmdldCgpOgo1NTA6ICAgIGlmIG5vdCB0YXJnZXRfc2hhcGUocW1fY29uZmlnKCkpOiBkaWUoJ1RBUkdFVF9DT05GSUdfU0hBUEVfSU5WQUxJRCcsNzApCjU3MDogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdUQVJHRVRfVk1fTk9UX1JVTk5JTkcnLDcwKQo1ODQ6ICAgICAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNTg2OiAgICAgICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9TSEFfRFJJRlQnLDcwKQo1ODc6ICAgICAgICAgICAgU0VFRF9UQVJHRVQudW5saW5rKCkKNTk0OiAgICBlbGlmIFNFRURfVEFSR0VULmV4aXN0cygpOgo1OTU6ICAgICAgICBkaWUoJ1VOUkVGRVJFTkNFRF9TRUVEX1RBUkdFVF9QUkVTRU5UJyw3MCkKNjA1OmRlZiBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik6CjYwNjogICAgc2Y9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAnKS8oZ2VuKycuanNvbicpOyByZj1wYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbi92bTE1MCcpLyhnZW4rJy5qc29uJykKNjA3OiAgICBpZiBub3Qgc2YuaXNfZmlsZSgpIG9yIG5vdCByZi5pc19maWxlKCk6IGRpZSgnTkVXX0JBQ0tVUF9FVklERU5DRV9NSVNTSU5HJyw3MCkKNjA5OiAgICBvaz1zLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBzLmdldCgnY2xvdWRfcXVvcnVtJyk9PTIgYW5kIHMuZ2V0KCdjbG91ZF9hX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2JfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCBzLmdldCgnY2xvdWRfYV9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2Jfc2VhbF92ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdwYXJ0X2hhc2hlc192ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdzZWFsX3dyaXR0ZW4nKSBpcyBUcnVlIGFuZCBzLmdldCgnbG9jYWxfcGF5bG9hZF9wcmVzZW50JykgaXMgRmFsc2UgYW5kIHMuZ2V0KCdsb2NhbF9jbGVhbnVwJyk9PSdPSycgYW5kIHIuZ2V0KCdyZXN1bHQnKT09J09LJyBhbmQgci5nZXQoJ3BheWxvYWRfc2hhMjU2X3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgci5nZXQoJ2FyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCByLmdldCgncHJveG1veF9jb25maWdfZXh0cmFjdF92ZXJpZmllZCcpIGlzIFRydWUKNjEwOiAgICBpZiBub3Qgb2s6IGRpZSgnTkVXX0JBQ0tVUF9OT1RfU1RSSUNUTFlfUFJPVkVOJyw3MCkKNjEyOmRlZiBmb3JjZV9iYWNrdXAoKToKNjEzOiAgICBlbnY9b3MuZW52aXJvbi5jb3B5KCk7IGVudlsnSE9NRUxBQl9CQUNLVVBfRElTUEFUQ0hFUiddPScxJwo2MTQ6ICAgIHA9cnVuKFtXT1JLRVIsJ2JhY2t1cCcsJzE1MCddLHRpbWVvdXQ9NTQwMCxlbnY9ZW52KQo2MTY6ICAgIG09cmUuc2VhcmNoKHInKD9tKV5HRU5FUkFUSU9OPSh2bTE1MC1wdmUwMS1bMC05VFpdKykkJyxvdXQpCjYxNzogICAgaWYgbm90IG06IGRpZSgnTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDcwKQo2MTk6ICAgIGlmIGdlbj09T0xEX0dFTjogZGllKCdORVdfQkFDS1VQX1JFVVNFRF9PTERfR0VORVJBVElPTicsNzApCjYyMDogICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjYyMzpkZWYgcmVzdG9yZV9vbGRfbG9ja2VkKCk6CjYyNjogICAgcnVuX3R0eShbUU1SRVNUT1JFLHN0cihhcmNoaXZlKSwnMTUwJywnLS1zdG9yYWdlJywnbG9jYWwtbHZtJ10sdGltZW91dD0yNDAwKQo2Mjc6ICAgIGlmIG5vdCBvbGRfY2ZnX21hdGNoKHFtX2NvbmZpZygpKTogZGllKCdST0xMQkFDS19SRVNUT1JFRF9DT05GSUdfU0hBX01JU01BVENIJyw3MCkKNjI4OiAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNjMwOiAgICAgICAgaWYgc2hhKFNFRURfVEFSR0VUKSE9c3guZ2V0KCdzZWVkX3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX1NFRURfVEFSR0VUX1NIQV9EUklGVCcsNzApCjYzMTogICAgICAgIFNFRURfVEFSR0VULnVubGluaygpCjY0MDogICAgaWYgU0VBTC5leGlzdHMoKTogZGllKCdUQVNLX0FMUkVBRFlfU0VBTEVEJyw2NikKNjQzOiAgICBzdGF0ZT1jbGFzc2lmeV92bSgpCjY0NDogICAgaWYgc3RhdGUgbm90IGluICgnT0xEJywnVEFSR0VUJyk6IGRpZSgnQVBQTFlfVk1fU1RBVEVfJytzdGF0ZSw2NikKNjQ1OiAgICBzeD1zdGFnZV9vYmooVHJ1ZSk7IG11dGF0aW9uX3N0YXRlPXN4LmdldCgnbXV0YXRpb25fc3RhdGUnKQo2NDY6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJzogZGllKCdBUFBMWV9SRUZVU0VTX0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU5fVVNFX1NFQUwnLDY2KQo2NDc6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdUQVJHRVRfQkFDS1VQX1BST1ZFTic6CjY0ODogICAgICAgIGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjQ5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cik6IGRpZSgnQVBQTFlfUkVVU0VfR0VORVJBVElPTl9NSVNTSU5HJyw2NikKNjUwOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pOyBsb2NhbF9oZWFsdGgoKQo2NTE6ICAgICAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2UsJ3JldXNlZF9wcm92ZW5fYXBwbHlfc3RhdGUnOlRydWV9KQo2NTI6ICAgICAgICBwcmludChmJ0FQUExZX1NUQVRVUz1PS3xSRVNVTFQ9UkVVU0VEX1BST1ZFTl9UQVJHRVR8Vk0xNTA9U05JS0tFVHxORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58T0xEX0dFTkVSQVRJT05fUFJFU0VSVkVEPXtPTERfR0VOfXxJTkdSRVNTX0FUVEVTVEVEPVlFU3xJTlZJVEVfTE9HR0VEPU5PJykKNjU0OiAgICBtdXRhdGlvbl9zdGFydGVkPShzdGF0ZT09J1RBUkdFVCcpOyB0YXJnZXRfZ3JlZW49bXV0YXRpb25fc3RhdGUgaW4gKCdUQVJHRVRfTE9DQUxfR1JFRU4nLCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKQo2NTU6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjY1NjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjY1ODogICAgICAgICAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjY1OTogICAgICAgICAgICAgICAgaWYgc3RhdGU9PSdPTEQnOgo2NjA6ICAgICAgICAgICAgICAgICAgICBkZXN0cm95X3ZtKCk7IG11dGF0aW9uX3N0YXJ0ZWQ9VHJ1ZTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdPTERfUkVNT1ZFRCcpCjY2MTogICAgICAgICAgICAgICAgICAgIGNyZWF0ZV90YXJnZXQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfQ1JFQVRFRCcpCjY2MzogICAgICAgICAgICAgICAgcHJvdmlzaW9uX2hhc2g9d2FpdF9ndWVzdF9wcm92aXNpb24oKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfUFJPVklTSU9ORUQnLGd1ZXN0X3Byb3Zpc2lvbl9zdGF0dXNfc2hhMjU2PXByb3Zpc2lvbl9oYXNoKQo2NjU6ICAgICAgICAgICAgICAgIHRhcmdldF9ncmVlbj1UcnVlOyB1cGRhdGVfc3RhZ2UobXV0YXRpb25fc3RhdGU9J1RBUkdFVF9MT0NBTF9HUkVFTicsbG9jYWxfaGVhbHRoX2JlZm9yZV9zZWVkX2RldGFjaF9zaGEyNTY9aGVhbHRoMSxsb2NhbF9oZWFsdGhfYWZ0ZXJfc2VlZF9kZXRhY2hfc2hhMjU2PWhlYWx0aDIpCjY2NjogICAgICAgICAgICAgICAgaW52aXRlX3N0YXRlPWdlbmVyYXRlX2ludml0ZSgpOyB1cGRhdGVfc3RhZ2UoYWRtaW5faW52aXRlPWludml0ZV9zdGF0ZSkKNjY3OiAgICAgICAgICAgICAgICBnZW4sYmhhc2g9Zm9yY2VfYmFja3VwKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nVEFSR0VUX0JBQ0tVUF9QUk9WRU4nLG5ld19nZW5lcmF0aW9uPWdlbixiYWNrdXBfb3V0cHV0X3NoYTI1Nj1iaGFzaCkKNjY5OiAgICAgICAgICAgICAgICBpZiBtdXRhdGlvbl9zdGFydGVkIGFuZCBub3QgdGFyZ2V0X2dyZWVuOgo2NzE6ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcF92bSgpOyByZXN0b3JlX29sZF9sb2NrZWQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdBVVRPX1JPTExFRF9CQUNLX09MRCcpCjY3MjogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnQVVUT19ST0xMQkFDS19TVEFUVVM9T0t8UkVTVE9SRUQ9U05JS0tFVF9CQVNFTElORV9WTTE1MCcsZmlsZT1zeXMuc3RkZXJyKQo2NzU6ICAgICAgICAgICAgICAgIGVsaWYgbXV0YXRpb25fc3RhcnRlZCBhbmQgdGFyZ2V0X2dyZWVuOgo2NzY6ICAgICAgICAgICAgICAgICAgICBwcmludCgnUkVTVU1FX1NBRkVfVEFSR0VUX1BSRVNFUlZFRD1ZRVMnLGZpbGU9c3lzLnN0ZGVycikKNjc4OiAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2V9KQo2Nzk6ICAgIHByaW50KGYnQVBQTFlfU1RBVFVTPU9LfFZNMTUwPVNOSUtLRVR8TE9DQUxfSEVBTFRIPU9LfFNFRURfREVUQUNIRUQ9WUVTfE5FV19CQUNLVVA9e2dlbn18TkVXX0JBQ0tVUF9SRVNUT1JFPVBST1ZFTnxPTERfR0VORVJBVElPTl9QUkVTRVJWRUQ9e09MRF9HRU59fElOR1JFU1NfQVRURVNURUQ9WUVTfEFETUlOX0lOVklURT1ST09UX09OTFlfRklMRXxJTlZJVEVfTE9HR0VEPU5PJykKNjk2OiAgICBpZiBjbGFzc2lmeV92bSgpIT0nVEFSR0VUJyBvciBxbV9zdGF0dXMoKSE9J3J1bm5pbmcnOiBkaWUoJ1ZFUklGWV9UQVJHRVRfVk1fSU5WQUxJRCcsNjYpCjY5NzogICAgaGVhbHRoPWxvY2FsX2hlYWx0aCgpOyBzeD1zdGFnZV9vYmooVHJ1ZSk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjk4OiAgICBpZiBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdWRVJJRllfTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDY2KQo2OTk6ICAgIHN0cmljdF9iYWNrdXBfZXZpZGVuY2UoZ2VuKQo3MTI6ICAgIHBoYXNlX2pzb24oJ3ZlcmlmeScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXZlcmlmeS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnbG9jYWxfaGVhbHRoX3NoYTI1Nic6aGVhbHRoLCdwdWJsaWNfZG5zJzpkbnMsJ2xvY2FsX3NwbGl0X2Rucyc6bG9jYWwsJ2VkZ2VfaHR0cHMnOmVkZ2VfaHR0cHMsJ3dlbGxfa25vd24nOidPSycsJ25ld19nZW5lcmF0aW9uJzpnZW4sJ25ld19iYWNrdXBfcmVzdG9yZSc6J1BST1ZFTicsJ2ZlZGVyYXRpb25fNTI2OV93YW4nOidPUEVSQVRPUl9OT19GT1JXQVJEX0FUVEVTVEFUSU9OX1JFUVVJUkVEJywnbW9iaWxlX2F2JzonT1BFUkFUT1JfRlVOQ1RJT05BTF9URVNUX1JFUVVJUkVEJywnbGltaXRlZF9yb2xlcyc6J1JFQ09NTUVOREVEX0ZPUl9GQU1JTFlfVVNFUlMnfSkKNzEzOiAgICBwcmludChmJ1ZFUklGWV9TVEFUVVM9T0t8UFVCTElDX0ROUz1PS3xMT0NBTF9TUExJVF9ETlM9RElSRUNUX1ZNMTUwfEVER0VfSFRUUFM9T0t8V0VMTF9LTk9XTj1PS3xORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58UkVRVUlSRVNfT1BFUkFUT1JfQVRURVNUQVRJT049Tk9fV0FOXzUyNjlfQU5EX01PQklMRV9BVl9BTkRfQURNSU4nKQo3MTY6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnUk9MTEJBQ0tfUkVGVVNFU19TRUFMRUQnLDY2KQo3MjE6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjcyMjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjcyMzogICAgICAgICAgICBpZiBiYWNrdXBfYnVzeSgpOiBkaWUoJ0FDVElWRV9CQUNLVVBfUkVTVE9SRV9QUkVTRU5UJyw3NSkKNzI0OiAgICAgICAgICAgIHN0b3Bfdm0oKTsgcmVzdG9yZV9vbGRfbG9ja2VkKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nUk9MTEVEX0JBQ0tfT0xEJykKNzI1OiAgICBwaGFzZV9qc29uKCdyb2xsYmFjaycseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXJvbGxiYWNrLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdyZXN1bHQnOidSRVNUT1JFRF9PTEQnLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTn0pCjcyNjogICAgcHJpbnQoZidST0xMQkFDS19TVEFUVVM9T0t8UkVTVUxUPVJFU1RPUkVEX05FWFRDTE9VRHxPTERfR0VORVJBVElPTj17T0xEX0dFTn0nKQo3Mjg6ZGVmIHNlYWwoKToKNzI5OiAgICBpZiBTRUFMLmV4aXN0cygpOgo3MzA6ICAgICAgICB4PWpzb24ubG9hZHMoU0VBTC5yZWFkX3RleHQoKSkKNzMxOiAgICAgICAgaWYgeC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgeC5nZXQoJ3Rhc2tfaWQnKT09VEFTS19JRDoKNzMyOiAgICAgICAgICAgIHBoYXNlX2pzb24oJ3NlYWwnLHgpOyBwcmludCgnU0VBTF9TVEFUVVM9T0t8UkVTVUxUPUFMUkVBRFlfU0VBTEVEJyk7IHJldHVybgo3MzM6ICAgICAgICBkaWUoJ0VYSVNUSU5HX1NFQUxfSU5WQUxJRCcsNjYpCjczNDogICAgc3g9c3RhZ2Vfb2JqKFRydWUpOyBtdXRhdGlvbl9zdGF0ZT1zeC5nZXQoJ211dGF0aW9uX3N0YXRlJyk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNzM1OiAgICBpZiBtdXRhdGlvbl9zdGF0ZSBub3QgaW4gKCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKSBvciBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdTRUFMX1RBUkdFVF9CQUNLVVBfTk9UX1BST1ZFTicsNjYpCjczNjogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdTRUFMX1RBUkdFVF9JTlZBTElEJyw2NikKNzM3OiAgICBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik7IGxvY2FsX2hlYWx0aCgpCjc0MjogICAgcHJlX2FkbWluX2dlbj1zeC5nZXQoJ3ByZV9hZG1pbl9nZW5lcmF0aW9uJykgaWYgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJyBlbHNlIGdlbgo3NDM6ICAgIGlmIG11dGF0aW9uX3N0YXRlIT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTic6Cjc0NDogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6Cjc0NTogICAgICAgICAgICB3aXRoIGV4Y2x1c2l2ZV9sb2NrcyhCQUNLVVBfTE9DS1MpOgo3NDY6ICAgICAgICAgICAgICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQo3NDc6ICAgICAgICAgICAgICAgIGZpbmFsX2dlbixmaW5hbF9oYXNoPWZvcmNlX2JhY2t1cCgpCjc0ODogICAgICAgIHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTicscHJlX2FkbWluX2dlbmVyYXRpb249cHJlX2FkbWluX2dlbixuZXdfZ2VuZXJhdGlvbj1maW5hbF9nZW4sZmluYWxfYmFja3VwX291dHB1dF9zaGEyNTY9ZmluYWxfaGFzaCkKNzUxOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjc1MjogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zZWFsLXYyJywnc3RhdHVzJzonU0VBTEVEJywndGFza19pZCc6VEFTS19JRCwnY2hhbmdlX2lkJzpDRkdbJ2NoYW5nZV9pZCddLCdzb3VyY2VfaGVhZCc6c291cmNlX2hlYWQsJ3NlYWxlZF9hdF91dGMnOm5vdygpLCd2bWlkJzoxNTAsJ2RvbWFpbic6J2NoYXQuZ3JhbTEucnUnLCdwcmVfYWRtaW5fZ2VuZXJhdGlvbic6cHJlX2FkbWluX2dlbiwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnOlRydWUsJ29sZF9nZW5lcmF0aW9uX3ByZXNlcnZlZCc6T0xEX0dFTiwnbW9iaWxlX2F2X3Rlc3QnOidQQVNTJywnd2FuXzUyNjlfZm9yd2FyZGVkJzpGYWxzZSwnYWRtaW5fYWNjb3VudF9jcmVhdGVkJzpUcnVlLCdmYW1pbHlfdXNlcl9yb2xlJzonTElNSVRFRF9SRUNPTU1FTkRFRCcsJ2ludml0ZV9sb2dnZWQnOkZhbHNlfQo3NTc6ICAgIGF0b21pY19qc29uKFNFQUwsb2JqKQo3NTg6ICAgIHBoYXNlX2pzb24oJ3NlYWwnLG9iaikKNzU5OiAgICBwcmludChmJ1NFQUxfU1RBVFVTPU9LfFRBU0s9e1RBU0tfSUR9fEZJTkFMX1BPU1RfQURNSU5fQkFDS1VQPXtnZW59fE1PQklMRV9BVj1QQVNTfFdBTl81MjY5PU5PVF9GT1JXQVJERUR8QURNSU5fQUNDT1VOVD1DUkVBVEVEfElOVklURV9MT0dHRUQ9Tk98Uk9MTEJBQ0tfU1RBR0VfUkVUQUlORUQ9WUVTJykKNzYyOiAgICBhY3Rpb249c3lzLmFyZ3ZbMV0gaWYgbGVuKHN5cy5hcmd2KT09MiBlbHNlICcnCjc2NDogICAgICAgIGFjdGlvbnM9eydwcmVmbGlnaHQnOnByZWZsaWdodCwncHJlcGFyZSc6cHJlcGFyZSwnZHJ5LXJ1bic6ZHJ5cnVuLCdhcHBseSc6YXBwbHksJ3ZlcmlmeSc6dmVyaWZ5LCdyb2xsYmFjayc6cm9sbGJhY2ssJ3NlYWwnOnNlYWx9 +PIPE_4_SCORE=5 +PIPE_4_BASENAME=homelab-backup-audit +PIPE_4_PATH_SHA256=8625af1e2ff2eda46e03d400dced040d3506b25fd94cde5318eca74aa3a80888 +PIPE_4_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3 +PIPE_4_SCHEDULE_TARGET_COUNT=0 +PIPE_4_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_4_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_4_VZDUMP_QEMU_COUNT=0 +PIPE_4_RCLONE_COUNT=5 +PIPE_4_CLOUD_QUORUM_COUNT=2 +PIPE_4_SEAL_WRITTEN_COUNT=2 +PIPE_4_PAYLOAD_PARTS_COUNT=1 +PIPE_4_TRANSPORT_COUNT=1 +PIPE_4_RESTORE_VALIDATION_COUNT=0 +PIPE_4_SCHEDULE_RESULT_COUNT=0 +PIPE_4_RELEVANT_LINE_COUNT=114 +PIPE_4_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg== +PIPE_5_SCORE=4 +PIPE_5_BASENAME=legacy_engine.py +PIPE_5_PATH_SHA256=e4ceeb7671a8cdc119c5427c862109ecbbefb90b06c59ce1dcb68b03b8e96c95 +PIPE_5_FILE_SHA256=5715651655da32530df84a5a095b772d21dc0d1f92789465e9e6b5b1ff8a16e3 +PIPE_5_SCHEDULE_TARGET_COUNT=1 +PIPE_5_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_5_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_5_VZDUMP_QEMU_COUNT=0 +PIPE_5_RCLONE_COUNT=31 +PIPE_5_CLOUD_QUORUM_COUNT=0 +PIPE_5_SEAL_WRITTEN_COUNT=0 +PIPE_5_PAYLOAD_PARTS_COUNT=0 +PIPE_5_TRANSPORT_COUNT=3 +PIPE_5_RESTORE_VALIDATION_COUNT=0 +PIPE_5_SCHEDULE_RESULT_COUNT=2 +PIPE_5_RELEVANT_LINE_COUNT=350 +PIPE_5_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgaGVscGVyPVBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQvJ3B2ZTI2NV9hcmd2X2hlbHBlci5weScKNDQxOiAgICByZXE9eydqb2InOmpvYiwndnpkdW1wJzpzdHIodnpkdW1wKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpLCdub3cnOmludChub3cpfQo0NDM6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX0ZBSUxFRCcpCjQ0NDogICAgaWYgcC5zdGRlcnIgb3IgbGVuKHAuc3Rkb3V0KT42NTUzNjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0NTogICAgdHJ5OiBhcmd2PWpzb24ubG9hZHMocC5zdGRvdXQuZGVjb2RlKCd1dGYtOCcsJ3N0cmljdCcpKQo0NDY6ICAgIGV4Y2VwdCAoVW5pY29kZURlY29kZUVycm9yLGpzb24uSlNPTkRlY29kZUVycm9yKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpIGZyb20gTm9uZQo0NDc6ICAgIGlmIHR5cGUoYXJndikgaXMgbm90IGxpc3Qgb3Igbm90IGFyZ3Ygb3IgYW55KHR5cGUoeCkgaXMgbm90IHN0ciBvciBub3QgeCBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0ODogICAgcmV0dXJuIGFyZ3YKNDUzOiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1NzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1ODogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NjE6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ2MjogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NjM6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2NDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjU6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2NzogICAgYXJndj1saXN0KGFyZ3YpCjQ2ODogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2OTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ3MDogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ3MTogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ3MjogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0NzM6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDc0OiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3NTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3NjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3NzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3OTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0ODA6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ4MjogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0ODM6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4ODogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4OTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDkxOmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDkzOiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTU6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTY6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo1MDI6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwNjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwNzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTEwOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MTE6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTEzOiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTE2OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxNzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE5OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTIwOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTIzOiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTI1OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjY6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1Mjg6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTMwOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MzE6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUzMjogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUzMzogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTM1OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzY6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM4OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjU0MjogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0NDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQ1OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ4OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NTI6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2NjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1Njk6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU3MTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTc2OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTg1OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTg2OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTg3OiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg5OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU5MTogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5OTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo2MDM6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwNzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MTI6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxNzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTk6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjIxOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjIyOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYyMzogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjI0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyNTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI5OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MzA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MzE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MzI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjMzOiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjM0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzU6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2Mzc6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjYwOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjYzOiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2Njc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2ODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2OTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjcwOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjc0MzogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQ2OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDc6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDg6ICAgIHRhcmdldD1oaXRzWzBdCjc1NjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzU3OiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzYwOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzc1OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzgzOiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODc6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzkwOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc5MTogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0 +PIPE_6_SCORE=4 +PIPE_6_BASENAME=legacy_engine.py +PIPE_6_PATH_SHA256=b08598c199b979909827472414e9d774eed12f00ff61eb1534b9cf9ff4333d05 +PIPE_6_FILE_SHA256=a5f1b1701a39eb22cf2f061d7daa7afa92789320c30b108371c3ee47d57f817c +PIPE_6_SCHEDULE_TARGET_COUNT=1 +PIPE_6_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_6_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_6_VZDUMP_QEMU_COUNT=0 +PIPE_6_RCLONE_COUNT=31 +PIPE_6_CLOUD_QUORUM_COUNT=0 +PIPE_6_SEAL_WRITTEN_COUNT=0 +PIPE_6_PAYLOAD_PARTS_COUNT=0 +PIPE_6_TRANSPORT_COUNT=3 +PIPE_6_RESTORE_VALIDATION_COUNT=0 +PIPE_6_SCHEDULE_RESULT_COUNT=2 +PIPE_6_RELEVANT_LINE_COUNT=340 +PIPE_6_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgcmVxPXsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX1NVQlBST0NFU1NfRkFJTEVEJykKNDYyOiAgICBpZiBwLnN0ZGVyciBvciBsZW4ocC5zdGRvdXQpPjEwNDg1NzY6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NDogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fU1VCUFJPQ0VTU19PVVRQVVQnKSBmcm9tIE5vbmUKNDY1OiAgICBpZiB0eXBlKGQpIGlzIG5vdCBkaWN0IG9yIHNldChkKSE9eydhcmd2Jywnam9iJ306IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NjogICAgYXJndj1kWydhcmd2J107am9iPWRbJ2pvYiddO3ZtaWQ9aW50KHRbJ3ZtaWQnXSkKNDY3OiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2ODogICAgaWYgdHlwZShqb2IpIGlzIG5vdCBkaWN0IG9yIGpvYi5nZXQoJ3ZtaWQnKSE9dm1pZCBvciBqb2IuZ2V0KCdub2RlJykhPXN0cihub2RlKSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnIG9yIGpvYi5nZXQoJ2NvdmVyYWdlX2VsaWdpYmxlJykgaXMgbm90IFRydWUgb3Igam9iLmdldCgnYmxvY2tlcnMnKSE9W106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9KT0InKQo0Njk6ICAgIGlmIGFyZ3ZbMF0hPScvdXNyL2Jpbi92emR1bXAnIG9yIGxlbihhcmd2KTwyIG9yIGFyZ3ZbMV0hPXN0cih2bWlkKSBvciAnLS1zdGRvdXQnIG5vdCBpbiBhcmd2IG9yICctLXRtcGRpcicgbm90IGluIGFyZ3Ygb3Igc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fQVJHVicpCjQ3MDogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3MjpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzM6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3NTogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0NzY6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4MTogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4MjogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg0OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg2OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0ODg6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0ODk6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTU6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjQ5OTogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMDogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTAzOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDQ6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA2OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTA5OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMDogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTExOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEyOiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEzOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE2OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTE4OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MTk6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjE6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTIzOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MjQ6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyNTogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyNjogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTI4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1Mjk6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTMxOiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzNTogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUzNzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTM4OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQxOiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDU6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU1OTogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjI6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NDogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTY5OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTc4OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTc5OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgwOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTgyOmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NDogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1ODc6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5MjogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTY6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMDogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDU6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMDogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTI6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjEzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxNjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYxODogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjIyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MjQ6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MjU6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI2OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2Mjg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzA6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjUzOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU2OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2MTogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2MjogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjYzOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczNjogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzM5OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDA6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDE6ICAgIHRhcmdldD1oaXRzWzBdCjc0OTogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUwOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzUzOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzY4OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc2OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODA6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzgzOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NDogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5NTogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjc5NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo3OTk6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDA6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjgwMjogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo4MDM6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo4MDU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjgwODogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo4MTU6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo4MTg6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDAp +PIPE_7_SCORE=4 +PIPE_7_BASENAME=legacy_engine.py +PIPE_7_PATH_SHA256=d01be8c91a53c39ac6295a389b40b6b216db5f0cce27d2482e8f29523278d1d9 +PIPE_7_FILE_SHA256=ff4fbf84638ab55a8a1858558b759b3fc9d979ef5feb279132a558bcef583598 +PIPE_7_SCHEDULE_TARGET_COUNT=1 +PIPE_7_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_7_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_7_VZDUMP_QEMU_COUNT=0 +PIPE_7_RCLONE_COUNT=31 +PIPE_7_CLOUD_QUORUM_COUNT=0 +PIPE_7_SEAL_WRITTEN_COUNT=0 +PIPE_7_PAYLOAD_PARTS_COUNT=0 +PIPE_7_TRANSPORT_COUNT=3 +PIPE_7_RESTORE_VALIDATION_COUNT=0 +PIPE_7_SCHEDULE_RESULT_COUNT=2 +PIPE_7_RELEVANT_LINE_COUNT=340 +PIPE_7_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgdm1pZD1pbnQodFsndm1pZCddKQo0NjA6ICAgIHJlcT17J3ZtaWQnOnZtaWQsJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjY6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fJytjb2RlKQo0Njc6ICAgIGlmIHAuc3RkZXJyIG9yIGxlbihwLnN0ZG91dCk+MTA0ODU3NjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX09VVFBVVCcpCjQ2OTogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykgZnJvbSBOb25lCjQ3MDogICAgaWYgdHlwZShkKSBpcyBub3QgZGljdCBvciBzZXQoZCkhPXsnYXJndicsJ2pvYid9OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDcxOiAgICBhcmd2PWRbJ2FyZ3YnXTtqb2I9ZFsnam9iJ10KNDcyOiAgICBpZiB0eXBlKGpvYikgaXMgbm90IGRpY3Qgb3Igam9iLmdldCgndm1pZCcpIT12bWlkIG9yIGpvYi5nZXQoJ25vZGUnKSE9bm9kZSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDczOiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9PVVRQVVQnKQo0NzQ6ICAgIHJldHVybiBhcmd2LGpvYgo0NzY6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDc3OiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0Nzk6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDgwOiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0ODU6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0ODY6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQ4ODpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQ5MDogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDkyOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDkzOiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDk5OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo1MDM6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo1MDQ6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUwNzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNTA4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjUxMDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjUxMzogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo1MTQ6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUxNTogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNjogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNzogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjUyMDogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjUyMjogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNTIzOiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNTI1OiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjUyNzogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNTI4OiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo1Mjk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo1MzA6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjUzMjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNTMzOiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjUzNTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo1Mzk6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo1NDE6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjU0MjogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjU0NTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNTQ5OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1NjM6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTY2OmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1Njg6ICAgIGZvciB0IGluIHRhcmdldHM6CjU3MzpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjU4MjpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjU4MzogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjU4NDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjU4NjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1ODg6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTkxOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1OTY6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNjAwOiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo2MDQ6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNjA5OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo2MTQ6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNjE2OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYxNzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjYxODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjYxOTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2MjA6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYyMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MjI6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjYyNjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNjI4OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjI5OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjYzMDogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjYzMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNjMyOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjM0OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjY1NzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjY2MDogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjY0OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2NjU6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2NjY6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjY2NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo3NDA6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjc0MzogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNzQ0OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNzQ1OiAgICB0YXJnZXQ9aGl0c1swXQo3NTM6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjc1NDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjc1NzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjc3MjogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjc4MDogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzg0OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjc4NzogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3ODg6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3OTk6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo4MDE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKODAzOmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKODA0OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo4MDY6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KODA3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKODA5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo4MTI6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKODE5OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKODIyOiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQ== +PIPE_8_SCORE=4 +PIPE_8_BASENAME=legacy_engine.py +PIPE_8_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +PIPE_8_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_8_SCHEDULE_TARGET_COUNT=1 +PIPE_8_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_8_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_8_VZDUMP_QEMU_COUNT=0 +PIPE_8_RCLONE_COUNT=31 +PIPE_8_CLOUD_QUORUM_COUNT=0 +PIPE_8_SEAL_WRITTEN_COUNT=0 +PIPE_8_PAYLOAD_PARTS_COUNT=0 +PIPE_8_TRANSPORT_COUNT=3 +PIPE_8_RESTORE_VALIDATION_COUNT=0 +PIPE_8_SCHEDULE_RESULT_COUNT=2 +PIPE_8_RELEVANT_LINE_COUNT=346 +PIPE_8_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_9_SCORE=4 +PIPE_9_BASENAME=legacy_engine.py +PIPE_9_PATH_SHA256=9a8b05902c8db1d56dc8303ffbd6fef278b3b69b41dd4eda89a767f2a3d6bd25 +PIPE_9_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_9_SCHEDULE_TARGET_COUNT=1 +PIPE_9_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_9_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_9_VZDUMP_QEMU_COUNT=0 +PIPE_9_RCLONE_COUNT=31 +PIPE_9_CLOUD_QUORUM_COUNT=0 +PIPE_9_SEAL_WRITTEN_COUNT=0 +PIPE_9_PAYLOAD_PARTS_COUNT=0 +PIPE_9_TRANSPORT_COUNT=3 +PIPE_9_RESTORE_VALIDATION_COUNT=0 +PIPE_9_SCHEDULE_RESULT_COUNT=2 +PIPE_9_RELEVANT_LINE_COUNT=346 +PIPE_9_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_10_SCORE=4 +PIPE_10_BASENAME=legacy_engine.py +PIPE_10_PATH_SHA256=88ab68bf67a35e0d0b255725cf1d80a6bc6e1d39d0208f2cc2551fdaedd35b49 +PIPE_10_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_10_SCHEDULE_TARGET_COUNT=1 +PIPE_10_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_10_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_10_VZDUMP_QEMU_COUNT=0 +PIPE_10_RCLONE_COUNT=31 +PIPE_10_CLOUD_QUORUM_COUNT=0 +PIPE_10_SEAL_WRITTEN_COUNT=0 +PIPE_10_PAYLOAD_PARTS_COUNT=0 +PIPE_10_TRANSPORT_COUNT=3 +PIPE_10_RESTORE_VALIDATION_COUNT=0 +PIPE_10_SCHEDULE_RESULT_COUNT=2 +PIPE_10_RELEVANT_LINE_COUNT=346 +PIPE_10_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_11_SCORE=4 +PIPE_11_BASENAME=legacy_engine.py +PIPE_11_PATH_SHA256=ed37300bf21f40701d61084225758267688ee569a15a9a8f5e7e1f2d1d95a496 +PIPE_11_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_11_SCHEDULE_TARGET_COUNT=1 +PIPE_11_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_11_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_11_VZDUMP_QEMU_COUNT=0 +PIPE_11_RCLONE_COUNT=31 +PIPE_11_CLOUD_QUORUM_COUNT=0 +PIPE_11_SEAL_WRITTEN_COUNT=0 +PIPE_11_PAYLOAD_PARTS_COUNT=0 +PIPE_11_TRANSPORT_COUNT=3 +PIPE_11_RESTORE_VALIDATION_COUNT=0 +PIPE_11_SCHEDULE_RESULT_COUNT=2 +PIPE_11_RELEVANT_LINE_COUNT=346 +PIPE_11_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_12_SCORE=4 +PIPE_12_BASENAME=legacy_engine.py +PIPE_12_PATH_SHA256=ada28322dd44b921f815bb2cdba360506c3f4e2a58c97f1eea9a2a6d4e384c9d +PIPE_12_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_12_SCHEDULE_TARGET_COUNT=1 +PIPE_12_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_12_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_12_VZDUMP_QEMU_COUNT=0 +PIPE_12_RCLONE_COUNT=31 +PIPE_12_CLOUD_QUORUM_COUNT=0 +PIPE_12_SEAL_WRITTEN_COUNT=0 +PIPE_12_PAYLOAD_PARTS_COUNT=0 +PIPE_12_TRANSPORT_COUNT=3 +PIPE_12_RESTORE_VALIDATION_COUNT=0 +PIPE_12_SCHEDULE_RESULT_COUNT=2 +PIPE_12_RELEVANT_LINE_COUNT=346 +PIPE_12_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_13_SCORE=4 +PIPE_13_BASENAME=legacy_engine.py +PIPE_13_PATH_SHA256=68ed87fff22b735897acfc71beec8386ec9a7c7c5eab512d7fbb05e894955abf +PIPE_13_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_13_SCHEDULE_TARGET_COUNT=1 +PIPE_13_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_13_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_13_VZDUMP_QEMU_COUNT=0 +PIPE_13_RCLONE_COUNT=31 +PIPE_13_CLOUD_QUORUM_COUNT=0 +PIPE_13_SEAL_WRITTEN_COUNT=0 +PIPE_13_PAYLOAD_PARTS_COUNT=0 +PIPE_13_TRANSPORT_COUNT=3 +PIPE_13_RESTORE_VALIDATION_COUNT=0 +PIPE_13_SCHEDULE_RESULT_COUNT=2 +PIPE_13_RELEVANT_LINE_COUNT=346 +PIPE_13_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_14_SCORE=4 +PIPE_14_BASENAME=legacy_engine.py +PIPE_14_PATH_SHA256=d3dc1d9e6926e695d76fba16c6c5ffa20cc3f5b80a7ffc4b826ec197468a1cd7 +PIPE_14_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_14_SCHEDULE_TARGET_COUNT=1 +PIPE_14_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_14_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_14_VZDUMP_QEMU_COUNT=0 +PIPE_14_RCLONE_COUNT=31 +PIPE_14_CLOUD_QUORUM_COUNT=0 +PIPE_14_SEAL_WRITTEN_COUNT=0 +PIPE_14_PAYLOAD_PARTS_COUNT=0 +PIPE_14_TRANSPORT_COUNT=3 +PIPE_14_RESTORE_VALIDATION_COUNT=0 +PIPE_14_SCHEDULE_RESULT_COUNT=2 +PIPE_14_RELEVANT_LINE_COUNT=346 +PIPE_14_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_15_SCORE=4 +PIPE_15_BASENAME=legacy_engine.py +PIPE_15_PATH_SHA256=fa7629bf6b6d134d2701c19ee57801aca5eab13a8ed300e40fd6f4971c079350 +PIPE_15_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_15_SCHEDULE_TARGET_COUNT=1 +PIPE_15_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_15_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_15_VZDUMP_QEMU_COUNT=0 +PIPE_15_RCLONE_COUNT=31 +PIPE_15_CLOUD_QUORUM_COUNT=0 +PIPE_15_SEAL_WRITTEN_COUNT=0 +PIPE_15_PAYLOAD_PARTS_COUNT=0 +PIPE_15_TRANSPORT_COUNT=3 +PIPE_15_RESTORE_VALIDATION_COUNT=0 +PIPE_15_SCHEDULE_RESULT_COUNT=2 +PIPE_15_RELEVANT_LINE_COUNT=346 +PIPE_15_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_16_SCORE=4 +PIPE_16_BASENAME=engine396.py +PIPE_16_PATH_SHA256=3eb898a54af9d6804a1bbf0e8545bb6604e226a8104fc2c2054b3d86336b8bc5 +PIPE_16_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_16_SCHEDULE_TARGET_COUNT=1 +PIPE_16_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_16_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_16_VZDUMP_QEMU_COUNT=0 +PIPE_16_RCLONE_COUNT=31 +PIPE_16_CLOUD_QUORUM_COUNT=0 +PIPE_16_SEAL_WRITTEN_COUNT=0 +PIPE_16_PAYLOAD_PARTS_COUNT=0 +PIPE_16_TRANSPORT_COUNT=3 +PIPE_16_RESTORE_VALIDATION_COUNT=0 +PIPE_16_SCHEDULE_RESULT_COUNT=2 +PIPE_16_RELEVANT_LINE_COUNT=346 +PIPE_16_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlL + +===== PUBLIC OUTPUT TRUNCATED; FULL RAW LOG RETAINED LOCALLY ===== + +IkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjczOiAgYXJjaGl2ZT0iJChqcSAtciAnLmFyY2hpdmUnICIkc2VhbCIpIgoyNzQ6ICBzaXplPSIkKGpxIC1yICcuYXJjaGl2ZV9zaXplX2J5dGVzJyAiJHNlYWwiKSIKMjc1OiAgc2hhPSIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkc2VhbCIpIgoyNzY6ICByZW1vdGU9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjI3OTogIGJhc2U9IiQoYmFzZV9wYXRoICIkZ2VuZXJhdGlvbiIpIgoyODA6ICB2ZXJpZnlfcmVtb3RlICIkcmVtb3RlIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjI4MjogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZXN0b3JlLXBhcnRzLlhYWFhYWCkiCjI4NDogIHBhcnRzX2xpc3QgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAiCjI4NzogIHdoaWxlIElGUz0gcmVhZCAtciBwYXJ0OyBkbyByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9wYXJ0cy8kcGFydCIgPj4gIiRwYXJ0aWFsIjsgZG9uZSA8ICIkdG1wIgoyOTM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHJlbW90ZTokYmFzZS92emR1bXAubG9nIiAiJGRpci92emR1bXAubG9nIiA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQoyOTQ6ICBsbiAtc2ZuICIkZ2VuZXJhdGlvbiIgIiRMQVRFU1RfTElOSyIKMjk1OiAgdGVzdCAiJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiID0gIiRnZW5lcmF0aW9uIgoyOTg6ICBwcmludGYgJ1JFU1RPUkVfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5MQVRFU1RfTElOSz0lc1xuJyAiJGdlbmVyYXRpb24iICIkTEFURVNUX0xJTksiCjMwNDogICAgZm9yIHRvb2wgaW4gcmNsb25lIGpxIHNoYTI1NnN1bSB6c3RkIGRkIHN0YXQgZmluZCBhd2sgc2VkIHNvcnQgY21wIG1rZmlmbyB0ZWUgcGdyZXAgcGFzdGUgcmVhZGxpbms7IGRvIGNvbW1hbmQgLXYgIiR0b29sIiA+L2Rldi9udWxsOyBkb25lCjMwNTogICAgQUNUSVZFPSIkKHBncmVwIC1hZiAnKF58LykodnpkdW1wfHFtcmVzdG9yZXxwY3RyZXN0b3JlfHZtYXx6c3RkKShbWzpzcGFjZTpdXXwkKScgfHwgdHJ1ZSkiCjMwNzogICAgQT0iJChyZW1vdGVfYSkiOyBCPSIkKHJlbW90ZV9iKSI7IHRlc3QgIiRBIiAhPSAiJEIiCjMwOTogICAgR0VORVJBVElPTlM9IiQoZmluZCAiJFBBUkVOVCIgLW1pbmRlcHRoIDEgLW1heGRlcHRoIDEgLXR5cGUgZCAtbmFtZSAiJHtQUkVGSVh9KiIgLXByaW50ZiAnJWZcbicgfCBMQ19BTEw9QyBzb3J0IHwgcGFzdGUgLXNkLCAtKSIKMzExOiAgICB0ZXN0ICEgLUwgIiRMQVRFU1RfTElOSyIgfHwgTElOSz0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjMxMjogICAgVEFSR0VUX1dPUktFUl9TSEEyNTY9QUJTRU5UCjMxMzogICAgdGVzdCAhIC1mIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfHwgVEFSR0VUX1dPUktFUl9TSEEyNTY9IiQoc2hhMjU2c3VtIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfCBhd2sgJ3twcmludCAkMX0nKSIKMzE3OiAgICAgIE9ORV9HRU5FUkFUSU9OPSIkKGZpbmQgIiRQQVJFTlQiIC1taW5kZXB0aCAxIC1tYXhkZXB0aCAxIC10eXBlIGQgLW5hbWUgIiR7UFJFRklYfSoiIC1wcmludGYgJyVmXG4nKSIKMzE4OiAgICAgIE9ORV9BUkNISVZFPSIkKGZpbmQgIiRQQVJFTlQvJE9ORV9HRU5FUkFUSU9OIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQgLXF1aXQpIgozMjM6ICAgIHByaW50ZiAnUFZFMDNfUFJFRkxJR0hUX1NUQVRVUz1PS1xuQUNDT1VOVF9BX0ZQPSVzXG5BQ0NPVU5UX0JfRlA9JXNcblJFTU9URV9BX0ZSRUVfQllURVM9JXNcblJFTU9URV9CX0ZSRUVfQllURVM9JXNcbkxPQ0FMX0dFTkVSQVRJT05fQ09VTlQ9JXNcbkxPQ0FMX0dFTkVSQVRJT05TPSVzXG5MQVRFU1RfTElOS19UQVJHRVQ9JXNcbkFDVElWRV9CQUNLVVBfUkVTVE9SRV9DT1VOVD0wXG5UQVJHRVRfV09SS0VSX1NIQTI1Nj0lc1xuTE9DQUxfQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5MT0NBTF9BUkNISVZFX1NIQTI1Nj0lc1xuJyAiJEFDQ09VTlRfQV9GUCIgIiRBQ0NPVU5UX0JfRlAiICIkKHJlbW90ZV9mcmVlICIkQSIpIiAiJChyZW1vdGVfZnJlZSAiJEIiKSIgIiRDT1VOVCIgIiR7R0VORVJBVElPTlM6LW5vbmV9IiAiJExJTksiICIkVEFSR0VUX1dPUktFUl9TSEEyNTYiICIkQVJDSElWRV9TSVpFX0JZVEVTIiAiJEFSQ0hJVkVfU0hBMjU2IgozMjU6ICBiYWNrdXApIGJhY2t1cCAiJHsyOi19IiA7OwozMjg6ICBiYWNrdXAtZGVsZXRlKSBESVI9IiR7MjotfSI7IGJhY2t1cCAiJERJUiI7IGRlbGV0ZV9wcmVwYXJlZCAiJChiYXNlbmFtZSAiJERJUiIpIiA7OwozMjk6ICB2ZXJpZnktZ2VuZXJhdGlvbikgdmVyaWZ5X2dlbmVyYXRpb24gIiR7MjotfSIgOzsKMzMwOiAgcmVzdG9yZSkgcmVzdG9yZV9nZW5lcmF0aW9uICIkezI6LX0iIDs7CjMzMjogICopIHByaW50ZiAnVk0xNjBfQ0xPVURfUVVPUlVNX1dPUktFUl9VU0FHRV9FUlJPUlxuJyA+JjI7IGV4aXQgNjQgOzs= +PIPE_24_SCORE=4 +PIPE_24_BASENAME=vm160-cloud-quorum-worker.sh +PIPE_24_PATH_SHA256=d7e7d49cc5e8bcf74647191e68b65c9ab22a480b680a740e0af72752fa7f6ad1 +PIPE_24_FILE_SHA256=57d1b1fa788be824b97075f722140c24988c1fa912aa59d0464027eb48c06271 +PIPE_24_SCHEDULE_TARGET_COUNT=0 +PIPE_24_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_24_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_24_VZDUMP_QEMU_COUNT=2 +PIPE_24_RCLONE_COUNT=29 +PIPE_24_CLOUD_QUORUM_COUNT=11 +PIPE_24_SEAL_WRITTEN_COUNT=3 +PIPE_24_PAYLOAD_PARTS_COUNT=0 +PIPE_24_TRANSPORT_COUNT=0 +PIPE_24_RESTORE_VALIDATION_COUNT=0 +PIPE_24_SCHEDULE_RESULT_COUNT=0 +PIPE_24_RELEVANT_LINE_COUNT=169 +PIPE_24_RELEVANT_B64=NDpQQVJFTlQ9L21udC9zdGFnaW5nL3Z6ZHVtcAo2OkNPTkZJRz0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZgoxMTpSRU1PVEVfUk9PVD1oYi92bTE2MAoxNDpTVEFURV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bS92bTE2MAoxNTpMQVRFU1RfTElOSz0iJFBBUkVOVC92bTE2MC1wdmUwMi1sYXRlc3QiCjE2OnZhbGlkX2dlbmVyYXRpb24oKXsgW1sgIiR7MTotfSIgPX4gXnZtMTYwLXB2ZTAyLVswLTldezh9VFswLTldezZ9WiQgXV07IH0KMTc6dmFsaWRfZGlyKCl7IGxvY2FsIGRpcj0iJHsxOi19IiBiYXNlOyBiYXNlPSIkKGJhc2VuYW1lIC0tICIkZGlyIikiOyB2YWxpZF9nZW5lcmF0aW9uICIkYmFzZSI7IHRlc3QgIiRkaXIiID0gIiRQQVJFTlQvJGJhc2UiOyB9CjE4OnJlc29sdmVfcmVtb3RlKCl7CjI1OiAgZG9uZSA8IDwocmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsaXN0cmVtb3RlcykKMzQ6ICBiYXNlX3NwZWM9IiQoc2VjdGlvbl92YWx1ZSAiJGNyeXB0IiAnXltbOnNwYWNlOl1dKnJlbW90ZVtbOnNwYWNlOl1dKiQnKSIKNDE6cmVtb3RlX2EoKXsgbG9jYWwgcjsgcj0iJChyZXNvbHZlX3JlbW90ZSAiJFNFQ1RJT05fQV9GUCIpIjsgdGVzdCAiJChhY2NvdW50X2ZwICIkciIpIiA9ICIkQUNDT1VOVF9BX0ZQIjsgcHJpbnRmICclcycgIiRyIjsgfQo0MjpyZW1vdGVfYigpeyBsb2NhbCByOyByPSIkKHJlc29sdmVfcmVtb3RlICIkU0VDVElPTl9CX0ZQIikiOyB0ZXN0ICIkKGFjY291bnRfZnAgIiRyIikiID0gIiRBQ0NPVU5UX0JfRlAiOyBwcmludGYgJyVzJyAiJHIiOyB9CjQzOnJlbW90ZV9mcmVlKCl7IHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgYWJvdXQgIiQxOiIgLS1qc29uIHwganEgLXIgJy5mcmVlIC8vIDAnOyB9CjQ0OmJhc2VfcGF0aCgpeyBwcmludGYgJyVzLyVzJyAiJFJFTU9URV9ST09UIiAiJDEiOyB9CjQ2OiAgbG9jYWwgcmVtb3RlPSIkMSIgYmFzZT0iJDIiIG91dD0iJDMiCjQ3OiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JGJhc2UvcGFydHMiIC0tZmlsZXMtb25seSB8IExDX0FMTD1DIHNvcnQgPiAiJG91dCIKNTA6dmFsaWRhdGVfcGFydHNfbWFuaWZlc3QoKXsKNTE6ICBsb2NhbCBtYW5pZmVzdD0iJDEiIG5hbWVzPSIkMiIgZXhwZWN0ZWQgbmFtZSBleHRyYSBjb3VudD0wCjYwOiAgZG9uZSA8ICIkbWFuaWZlc3QiCjYzOnZlcmlmaWVkX3N0cmVhbV9yZW1vdGUoKXsKNjQ6ICBsb2NhbCByZW1vdGU9IiQxIiBiYXNlPSIkMiIgbWFuaWZlc3Q9IiQzIiB0bXA9IiQ0IiBleHBlY3RlZCBuYW1lIGV4dHJhIGdvdCBjaHVuaz0iJHRtcC9jaHVuayIKNjc6ICAgIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY2F0ICIkcmVtb3RlOiRiYXNlL3BhcnRzLyRuYW1lIiA+ICIkY2h1bmsiCjczOiAgZG9uZSA8ICIkbWFuaWZlc3QiCjc1OnZlcmlmeV9yZW1vdGUoKXsKNzY6ICBsb2NhbCByZW1vdGU9IiQxIiBnZW5lcmF0aW9uPSIkMiIgZXhwZWN0ZWRfc2l6ZT0iJDMiIGV4cGVjdGVkX3NoYT0iJDQiIGJhc2UgdG1wIGJ5dGVzIGdvdF9zaGEgenBpZCB6cmMKNzg6ICB2YWxpZF9nZW5lcmF0aW9uICIkZ2VuZXJhdGlvbiIKNzk6ICBiYXNlPSIkKGJhc2VfcGF0aCAiJGdlbmVyYXRpb24iKSIKODA6ICB0bXA9IiQobWt0ZW1wIC1kIC90bXAvdm0xNjAtY2xvdWQtdmVyaWZ5LlhYWFhYWCkiCjgyOiAgcGFydHNfbGlzdCAiJHJlbW90ZSIgIiRiYXNlIiAiJHRtcC9hY3R1YWwubGlzdCIKODM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9QQVJUUy5zaGEyNTYiID4gIiR0bXAvUEFSVFMuc2hhMjU2Igo4NDogIHZhbGlkYXRlX3BhcnRzX21hbmlmZXN0ICIkdG1wL1BBUlRTLnNoYTI1NiIgIiR0bXAvZXhwZWN0ZWQubGlzdCIKODY6ICBieXRlcz0iJChyY2xvbmUgLS1jb25maWcgIiRDT05GSUciIHNpemUgIiRyZW1vdGU6JGJhc2UvcGFydHMiIC0tanNvbiB8IGpxIC1yICcuYnl0ZXMgLy8gMCcpIgo5MjogIHZlcmlmaWVkX3N0cmVhbV9yZW1vdGUgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAvUEFSVFMuc2hhMjU2IiAiJHRtcCIgfCB0ZWUgIiR0bXAvenN0ZC5waXBlIiB8IHNoYTI1NnN1bSA+ICIkdG1wL2Z1bGwuc2hhMjU2IgoxMDM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9tYW5pZmVzdC5qc29uIiB8IGpxIC1lIC0tYXJnIGdlbmVyYXRpb24gIiRnZW5lcmF0aW9uIiAtLWFyZyBzaGEgIiRleHBlY3RlZF9zaGEiIC0tYXJnanNvbiBzaXplICIkZXhwZWN0ZWRfc2l6ZSIgJy5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQgLmFyY2hpdmVfc2hhMjU2PT0kc2hhIGFuZCAuYXJjaGl2ZV9zaXplX2J5dGVzPT0kc2l6ZSBhbmQgLmNsb3VkX3F1b3J1bV9yZXF1aXJlZD09MiBhbmQgLnBhcnRfaGFzaGVzX3JlcXVpcmVkPT10cnVlJyA+L2Rldi9udWxsCjEwODogIGxvY2FsIHJlbW90ZT0iJDEiIGN1cnJlbnQ9IiQyIiB0bXAgY291bnQgcmVtb3ZlIG5hbWUKMTEwOiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09UIiAtLWRpcnMtb25seSB8IHNlZCAncyMvJCMjJyB8IExDX0FMTD1DIHNvcnQgPiAiJHRtcCIKMTE3OiAgICAgIHZhbGlkX2dlbmVyYXRpb24gIiRuYW1lIgoxMTg6ICAgICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBwdXJnZSAiJHJlbW90ZTokUkVNT1RFX1JPT1QvJG5hbWUiCjEyMzpyZW1vdGVfZ2VuZXJhdGlvbl9jb25mbGljdCgpewoxMjQ6ICBsb2NhbCByZW1vdGU9IiQxIiBnZW5lcmF0aW9uPSIkMiIgdG1wCjEyNTogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZW1vdGUtZGlycy5YWFhYWFgpIgoxMjY6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIG1rZGlyICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIKMTI3OiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09UIiAtLWRpcnMtb25seSB8IHNlZCAncyMvJCMjJyA+ICIkdG1wIgoxMjg6ICBpZiBhd2sgLXYgZz0iJGdlbmVyYXRpb24iICckMD09Z3tmb3VuZD0xfSBFTkR7ZXhpdCAhZm91bmR9JyAiJHRtcCI7IHRoZW4gcm0gLWYgIiR0bXAiOyByZXR1cm4gMDsgZmkKMTMyOmJhY2t1cCgpewoxMzM6ICBsb2NhbCBkaXI9IiQxIiBnZW5lcmF0aW9uIGFyY2hpdmUgYXJjaGl2ZV9uYW1lIHNpemUgc2hhIGEgYiBiYXNlIHRtcCBjb3VudCBpbmRleCBwYXJ0X25hbWUgcGFydCBwYXJ0X3NoYSBzdGF0ZSByZW1vdGUKMTM3OiAgZ2VuZXJhdGlvbj0iJChiYXNlbmFtZSAiJGRpciIpIgoxMzg6ICBtYXBmaWxlIC10IGFyY2hpdmVzIDwgPChmaW5kICIkZGlyIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQpCjE0NjogIGE9IiQocmVtb3RlX2EpIgoxNDc6ICBiPSIkKHJlbW90ZV9iKSIKMTQ5OiAgdGVzdCAiJChyZW1vdGVfZnJlZSAiJGEiKSIgLWdlICIkc2l6ZSIKMTUwOiAgdGVzdCAiJChyZW1vdGVfZnJlZSAiJGIiKSIgLWdlICIkc2l6ZSIKMTUxOiAgYmFzZT0iJChiYXNlX3BhdGggIiRnZW5lcmF0aW9uIikiCjE1MjogIHN0YXRlPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoxNTM6ICBpZiB0ZXN0IC1zICIkc3RhdGUiOyB0aGVuCjE1NDogICAganEgLWUgLS1hcmcgZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iIC0tYXJnIHNoYSAiJHNoYSIgLS1hcmcgYSAiJGEiIC0tYXJnIGIgIiRiIiAtLWFyZ2pzb24gc2l6ZSAiJHNpemUiICcuZ2VuZXJhdGlvbj09JGdlbmVyYXRpb24gYW5kIC5hcmNoaXZlX3NoYTI1Nj09JHNoYSBhbmQgLmFyY2hpdmVfc2l6ZV9ieXRlcz09JHNpemUgYW5kIC5yZW1vdGVfYT09JGEgYW5kIC5yZW1vdGVfYj09JGIgYW5kICguc3RhdHVzPT0iUFJFUEFSRUQiIG9yIC5zdGF0dXM9PSJERUxFVEVfQVVUSE9SSVpFRCIgb3IgLnN0YXR1cz09IlNFQUxFRCIpJyAiJHN0YXRlIiA+L2Rldi9udWxsCjE1NTogICAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTU2OiAgICB2ZXJpZnlfcmVtb3RlICIkYiIgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoxNTc6ICAgIHByaW50ZiAnQkFDS1VQX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5BUkNISVZFX1NIQTI1Nj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0RFTEVURV9BTExPV0VEPVlFU1xuSURFTVBPVEVOVF9SRVVTRT1ZRVNcbicgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoxNjA6ICBpZiByZW1vdGVfZ2VuZXJhdGlvbl9jb25mbGljdCAiJGEiICIkZ2VuZXJhdGlvbiIgfHwgcmVtb3RlX2dlbmVyYXRpb25fY29uZmxpY3QgIiRiIiAiJGdlbmVyYXRpb24iOyB0aGVuCjE2MTogICAgcHJpbnRmICdST09UX0NBVVNFPVJFTU9URV9HRU5FUkFUSU9OX0NPTkZMSUNUX1dJVEhPVVRfTE9DQUxfU1RBVEVcbkdFTkVSQVRJT049JXNcbicgIiRnZW5lcmF0aW9uIiA+JjIKMTY0OiAgdG1wPSIkKG1rdGVtcCAtZCAvbW50L3N0YWdpbmcvdm0xNjAtY2xvdWQtdXBsb2FkLlhYWFhYWCkiCjE2NjogIGpxIC1uIC0tYXJnIGdlbmVyYXRpb24gIiRnZW5lcmF0aW9uIiAtLWFyZyBhcmNoaXZlICIkYXJjaGl2ZV9uYW1lIiAtLWFyZyBzaGEgIiRzaGEiIC0tYXJnIGFjY291bnRfYSAiJEFDQ09VTlRfQV9GUCIgLS1hcmcgYWNjb3VudF9iICIkQUNDT1VOVF9CX0ZQIiAtLWFyZ2pzb24gc2l6ZSAiJHNpemUiICd7c2NoZW1hOiJob21lbGFiLXZtMTYwLWNsb3VkLW1hbmlmZXN0LXYyIixnZW5lcmF0aW9uOiRnZW5lcmF0aW9uLGFyY2hpdmVfbmFtZTokYXJjaGl2ZSxhcmNoaXZlX3NpemVfYnl0ZXM6JHNpemUsYXJjaGl2ZV9zaGEyNTY6JHNoYSxjbG91ZF9xdW9ydW1fcmVxdWlyZWQ6MixhY2NvdW50X2ZhaWx1cmVfZG9tYWluczoyLHByb3ZpZGVyX2ZhaWx1cmVfZG9tYWluczoxLGFjY291bnRfYV9mcDokYWNjb3VudF9hLGFjY291bnRfYl9mcDokYWNjb3VudF9iLHBhcnRfaGFzaGVzX3JlcXVpcmVkOnRydWV9JyA+ICIkdG1wL21hbmlmZXN0Lmpzb24iCjE2ODogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgbWtkaXIgIiRhOiRiYXNlL3BhcnRzIgoxNjk6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIG1rZGlyICIkYjokYmFzZS9wYXJ0cyIKMTc1OiAgICBkZCBpZj0iJGFyY2hpdmUiIG9mPSIkcGFydCIgYnM9MU0gc2tpcD0kKChpbmRleCpQQVJUX01JQikpIGNvdW50PSIkUEFSVF9NSUIiIGlmbGFnPWZ1bGxibG9jayBzdGF0dXM9bm9uZQoxNzk6ICAgIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkcGFydCIgIiRhOiRiYXNlL3BhcnRzLyRwYXJ0X25hbWUiCjE4MDogICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiRwYXJ0IiAiJGI6JGJhc2UvcGFydHMvJHBhcnRfbmFtZSIKMTg0OiAgZm9yIHJlbW90ZSBpbiAiJGEiICIkYiI7IGRvCjE4NTogICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiR0bXAvbWFuaWZlc3QuanNvbiIgIiRyZW1vdGU6JGJhc2UvbWFuaWZlc3QuanNvbiIKMTg2OiAgICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHRtcC9QQVJUUy5zaGEyNTYiICIkcmVtb3RlOiRiYXNlL1BBUlRTLnNoYTI1NiIKMTg3OiAgICB0ZXN0ICEgLXMgIiRkaXIvdnpkdW1wLmxvZyIgfHwgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiRkaXIvdnpkdW1wLmxvZyIgIiRyZW1vdGU6JGJhc2UvdnpkdW1wLmxvZyIKMTg5OiAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTkwOiAgdmVyaWZ5X3JlbW90ZSAiJGIiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTkxOiAgaW5zdGFsbCAtZCAtbSAwNzAwICIkU1RBVEVfUk9PVCIKMTkyOiAganEgLW4gLS1hcmcgZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iIC0tYXJnIGRpciAiJGRpciIgLS1hcmcgYXJjaGl2ZSAiJGFyY2hpdmVfbmFtZSIgLS1hcmcgc2hhICIkc2hhIiAtLWFyZyByZW1vdGVfYSAiJGEiIC0tYXJnIHJlbW90ZV9iICIkYiIgLS1hcmdqc29uIHNpemUgIiRzaXplIiAne3NjaGVtYToiaG9tZWxhYi12bTE2MC1jbG91ZC1xdW9ydW0tdjIiLHN0YXR1czoiUFJFUEFSRUQiLGdlbmVyYXRpb246JGdlbmVyYXRpb24sbG9jYWxfZGlyOiRkaXIsYXJjaGl2ZTokYXJjaGl2ZSxhcmNoaXZlX3NpemVfYnl0ZXM6JHNpemUsYXJjaGl2ZV9zaGEyNTY6JHNoYSxyZW1vdGVfYTokcmVtb3RlX2EscmVtb3RlX2I6JHJlbW90ZV9iLGNsb3VkX3F1b3J1bToyLGNsb3VkX2Ffcm91bmR0cmlwX3NoYTI1Njp0cnVlLGNsb3VkX2Jfcm91bmR0cmlwX3NoYTI1Njp0cnVlLHBhcnRfaGFzaGVzX3ZlcmlmaWVkOnRydWUsenN0ZF9zdHJlYW1fdmVyaWZpZWQ6dHJ1ZSxzYW1lX2dlbmVyYXRpb25faWQ6dHJ1ZSxtYW5pZmVzdF9tYXRjaDp0cnVlLHNlYWxfd3JpdHRlbjpmYWxzZSxsb2NhbF9kZWxldGVfYWxsb3dlZDp0cnVlLGxvY2FsX2JhY2t1cF9kZWxldGVkOmZhbHNlfScgPiAiJHN0YXRlIgoxOTM6ICBjaG1vZCAwNjAwICIkc3RhdGUiCjE5NDogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc3RhdGUiICIkYTokYmFzZS9xdW9ydW0tc2VhbC5qc29uIgoxOTU6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHN0YXRlIiAiJGI6JGJhc2UvcXVvcnVtLXNlYWwuanNvbiIKMTk4OiAgcHJpbnRmICdCQUNLVVBfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5BUkNISVZFX1NJWkVfQllURVM9JXNcbkFSQ0hJVkVfU0hBMjU2PSVzXG5DTE9VRF9RVU9SVU09MlxuUEFSVF9IQVNIRVNfVkVSSUZJRUQ9WUVTXG5MT0NBTF9ERUxFVEVfQUxMT1dFRD1ZRVNcbklERU1QT1RFTlRfUkVVU0U9Tk9cbicgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoyMDE6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiCjIwMjogIHZhbGlkX2dlbmVyYXRpb24gIiRnZW5lcmF0aW9uIgoyMDM6ICBzZWFsPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoyMDQ6ICB0ZXN0IC1zICIkc2VhbCIKMjA1OiAganEgLWUgJy5zdGF0dXM9PSJQUkVQQVJFRCIgYW5kIC5jbG91ZF9xdW9ydW09PTIgYW5kIC5jbG91ZF9hX3JvdW5kdHJpcF9zaGEyNTY9PXRydWUgYW5kIC5jbG91ZF9iX3JvdW5kdHJpcF9zaGEyNTY9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnpzdGRfc3RyZWFtX3ZlcmlmaWVkPT10cnVlIGFuZCAuc2FtZV9nZW5lcmF0aW9uX2lkPT10cnVlIGFuZCAubWFuaWZlc3RfbWF0Y2g9PXRydWUgYW5kIC5sb2NhbF9kZWxldGVfYWxsb3dlZD09dHJ1ZSBhbmQgLmxvY2FsX2JhY2t1cF9kZWxldGVkPT1mYWxzZScgIiRzZWFsIiA+L2Rldi9udWxsCjIwNjogIGRpcj0iJChqcSAtciAnLmxvY2FsX2RpcicgIiRzZWFsIikiCjIwNzogIHNpemU9IiQoanEgLXIgJy5hcmNoaXZlX3NpemVfYnl0ZXMnICIkc2VhbCIpIgoyMDg6ICBzaGE9IiQoanEgLXIgJy5hcmNoaXZlX3NoYTI1NicgIiRzZWFsIikiCjIwOTogIGE9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjIxMDogIGI9IiQoanEgLXIgJy5yZW1vdGVfYicgIiRzZWFsIikiCjIxMzogIHZlcmlmeV9yZW1vdGUgIiRhIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjIxNDogIHZlcmlmeV9yZW1vdGUgIiRiIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjIxNTogIHByaW50ZiAnVkVSSUZZX1BSRVBBUkVEX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0dFTkVSQVRJT05fUFJFU0VOVD1ZRVNcbicgIiRnZW5lcmF0aW9uIgoyMTg6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiIGJhc2UgbGlua190YXJnZXQKMjE5OiAgdmFsaWRfZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iCjIyMDogIHNlYWw9IiRTVEFURV9ST09ULyRnZW5lcmF0aW9uLmpzb24iCjIyMTogIHZlcmlmeV9wcmVwYXJlZCAiJGdlbmVyYXRpb24iID4vZGV2L251bGwKMjIyOiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjIzOiAgc2l6ZT0iJChqcSAtciAnLmFyY2hpdmVfc2l6ZV9ieXRlcycgIiRzZWFsIikiCjIyNDogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJHNlYWwiKSIKMjI1OiAgYT0iJChqcSAtciAnLnJlbW90ZV9hJyAiJHNlYWwiKSIKMjI2OiAgYj0iJChqcSAtciAnLnJlbW90ZV9iJyAiJHNlYWwiKSIKMjI3OiAgYmFzZT0iJChiYXNlX3BhdGggIiRnZW5lcmF0aW9uIikiCjIyODogIGpxICcuc3RhdHVzPSJERUxFVEVfQVVUSE9SSVpFRCIgfCAuc2VhbF93cml0dGVuPXRydWUgfCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9ZmFsc2UgfCAuZGVsZXRlX2F1dGhvcml6ZWRfYXQ9KG5vd3x0b2RhdGVpc284NjAxKScgIiRzZWFsIiA+ICIkc2VhbC5uZXciCjIyOTogIG12ICIkc2VhbC5uZXciICIkc2VhbCIKMjMwOiAgY2htb2QgMDYwMCAiJHNlYWwiCjIzMTogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRhOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjIzMjogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRiOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjIzMzogIGlmIHRlc3QgLUwgIiRMQVRFU1RfTElOSyI7IHRoZW4KMjM0OiAgICBsaW5rX3RhcmdldD0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjIzNTogICAgaWYgdGVzdCAiJGxpbmtfdGFyZ2V0IiA9ICIkZ2VuZXJhdGlvbiIgfHwgdGVzdCAiJGxpbmtfdGFyZ2V0IiA9ICIkZGlyIjsgdGhlbiBybSAtZiAiJExBVEVTVF9MSU5LIjsgZmkKMjM5OiAganEgJy5zdGF0dXM9IlNFQUxFRCIgfCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9dHJ1ZSB8IC5zZWFsZWRfYXQ9KG5vd3x0b2RhdGVpc284NjAxKScgIiRzZWFsIiA+ICIkc2VhbC5uZXciCjI0MDogIG12ICIkc2VhbC5uZXciICIkc2VhbCIKMjQxOiAgY2htb2QgMDYwMCAiJHNlYWwiCjI0MjogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRhOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjI0MzogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRiOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjI0NDogIHJldGVudGlvbiAiJGEiICIkZ2VuZXJhdGlvbiIKMjQ1OiAgcmV0ZW50aW9uICIkYiIgIiRnZW5lcmF0aW9uIgoyNDY6ICBwcmludGYgJ0xPQ0FMX0RFTEVURV9TVEFUVVM9T0tcbkdFTkVSQVRJT049JXNcbkNMT1VEX1FVT1JVTT0yXG5ERUxFVEVfQVVUSE9SSVpBVElPTl9TRUFMPVlFU1xuRklOQUxfU0VBTD1ZRVNcbkxPQ0FMX0JBQ0tVUF9ERUxFVEVEPVlFU1xuJyAiJGdlbmVyYXRpb24iCjI0ODp2ZXJpZnlfZ2VuZXJhdGlvbigpewoyNDk6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiIGxpbmtfdGFyZ2V0CjI1MDogIHZhbGlkX2dlbmVyYXRpb24gIiRnZW5lcmF0aW9uIgoyNTE6ICBzZWFsPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoyNTI6ICB0ZXN0IC1zICIkc2VhbCIKMjUzOiAganEgLWUgJy5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuc2VhbF93cml0dGVuPT10cnVlIGFuZCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnpzdGRfc3RyZWFtX3ZlcmlmaWVkPT10cnVlJyAiJHNlYWwiID4vZGV2L251bGwKMjU0OiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjU1OiAgc2l6ZT0iJChqcSAtciAnLmFyY2hpdmVfc2l6ZV9ieXRlcycgIiRzZWFsIikiCjI1NjogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJHNlYWwiKSIKMjU3OiAgYT0iJChqcSAtciAnLnJlbW90ZV9hJyAiJHNlYWwiKSIKMjU4OiAgYj0iJChqcSAtciAnLnJlbW90ZV9iJyAiJHNlYWwiKSIKMjYxOiAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMjYyOiAgdmVyaWZ5X3JlbW90ZSAiJGIiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMjYzOiAgaWYgdGVzdCAtTCAiJExBVEVTVF9MSU5LIjsgdGhlbiBsaW5rX3RhcmdldD0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiOyB0ZXN0ICIkbGlua190YXJnZXQiICE9ICIkZ2VuZXJhdGlvbiI7IHRlc3QgIiRsaW5rX3RhcmdldCIgIT0gIiRkaXIiOyBmaQoyNjQ6ICBwcmludGYgJ1ZFUklGWV9HRU5FUkFUSU9OX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0dFTkVSQVRJT05fUFJFU0VOVD1OT1xuJyAiJGdlbmVyYXRpb24iCjI2NjpyZXN0b3JlX2dlbmVyYXRpb24oKXsKMjY3OiAgbG9jYWwgZ2VuZXJhdGlvbj0iJDEiIHNlYWwgZGlyIGFyY2hpdmUgc2l6ZSBzaGEgcmVtb3RlIGJhc2UgdG1wIHBhcnQgcGFydGlhbAoyNjg6ICB2YWxpZF9nZW5lcmF0aW9uICIkZ2VuZXJhdGlvbiIKMjY5OiAgc2VhbD0iJFNUQVRFX1JPT1QvJGdlbmVyYXRpb24uanNvbiIKMjcwOiAgdGVzdCAtcyAiJHNlYWwiCjI3MTogIGpxIC1lICcuc3RhdHVzPT0iU0VBTEVEIiBvciAuc3RhdHVzPT0iREVMRVRFX0FVVEhPUklaRUQiJyAiJHNlYWwiID4vZGV2L251bGwKMjcyOiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjczOiAgYXJjaGl2ZT0iJChqcSAtciAnLmFyY2hpdmUnICIkc2VhbCIpIgoyNzQ6ICBzaXplPSIkKGpxIC1yICcuYXJjaGl2ZV9zaXplX2J5dGVzJyAiJHNlYWwiKSIKMjc1OiAgc2hhPSIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkc2VhbCIpIgoyNzY6ICByZW1vdGU9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjI3OTogIGJhc2U9IiQoYmFzZV9wYXRoICIkZ2VuZXJhdGlvbiIpIgoyODA6ICB2ZXJpZnlfcmVtb3RlICIkcmVtb3RlIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjI4MjogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZXN0b3JlLXBhcnRzLlhYWFhYWCkiCjI4NDogIHBhcnRzX2xpc3QgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAiCjI4NzogIHdoaWxlIElGUz0gcmVhZCAtciBwYXJ0OyBkbyByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9wYXJ0cy8kcGFydCIgPj4gIiRwYXJ0aWFsIjsgZG9uZSA8ICIkdG1wIgoyOTM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHJlbW90ZTokYmFzZS92emR1bXAubG9nIiAiJGRpci92emR1bXAubG9nIiA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQoyOTQ6ICBsbiAtc2ZuICIkZ2VuZXJhdGlvbiIgIiRMQVRFU1RfTElOSyIKMjk1OiAgdGVzdCAiJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiID0gIiRnZW5lcmF0aW9uIgoyOTg6ICBwcmludGYgJ1JFU1RPUkVfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5MQVRFU1RfTElOSz0lc1xuJyAiJGdlbmVyYXRpb24iICIkTEFURVNUX0xJTksiCjMwNDogICAgZm9yIHRvb2wgaW4gcmNsb25lIGpxIHNoYTI1NnN1bSB6c3RkIGRkIHN0YXQgZmluZCBhd2sgc2VkIHNvcnQgY21wIG1rZmlmbyB0ZWUgcGdyZXAgcGFzdGUgcmVhZGxpbms7IGRvIGNvbW1hbmQgLXYgIiR0b29sIiA+L2Rldi9udWxsOyBkb25lCjMwNTogICAgQUNUSVZFPSIkKHBncmVwIC1hZiAnKF58LykodnpkdW1wfHFtcmVzdG9yZXxwY3RyZXN0b3JlfHZtYXx6c3RkKShbWzpzcGFjZTpdXXwkKScgfHwgdHJ1ZSkiCjMwNzogICAgQT0iJChyZW1vdGVfYSkiOyBCPSIkKHJlbW90ZV9iKSI7IHRlc3QgIiRBIiAhPSAiJEIiCjMwOTogICAgR0VORVJBVElPTlM9IiQoZmluZCAiJFBBUkVOVCIgLW1pbmRlcHRoIDEgLW1heGRlcHRoIDEgLXR5cGUgZCAtbmFtZSAiJHtQUkVGSVh9KiIgLXByaW50ZiAnJWZcbicgfCBMQ19BTEw9QyBzb3J0IHwgcGFzdGUgLXNkLCAtKSIKMzExOiAgICB0ZXN0ICEgLUwgIiRMQVRFU1RfTElOSyIgfHwgTElOSz0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjMxMjogICAgVEFSR0VUX1dPUktFUl9TSEEyNTY9QUJTRU5UCjMxMzogICAgdGVzdCAhIC1mIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfHwgVEFSR0VUX1dPUktFUl9TSEEyNTY9IiQoc2hhMjU2c3VtIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfCBhd2sgJ3twcmludCAkMX0nKSIKMzE3OiAgICAgIE9ORV9HRU5FUkFUSU9OPSIkKGZpbmQgIiRQQVJFTlQiIC1taW5kZXB0aCAxIC1tYXhkZXB0aCAxIC10eXBlIGQgLW5hbWUgIiR7UFJFRklYfSoiIC1wcmludGYgJyVmXG4nKSIKMzE4OiAgICAgIE9ORV9BUkNISVZFPSIkKGZpbmQgIiRQQVJFTlQvJE9ORV9HRU5FUkFUSU9OIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQgLXF1aXQpIgozMjM6ICAgIHByaW50ZiAnUFZFMDNfUFJFRkxJR0hUX1NUQVRVUz1PS1xuQUNDT1VOVF9BX0ZQPSVzXG5BQ0NPVU5UX0JfRlA9JXNcblJFTU9URV9BX0ZSRUVfQllURVM9JXNcblJFTU9URV9CX0ZSRUVfQllURVM9JXNcbkxPQ0FMX0dFTkVSQVRJT05fQ09VTlQ9JXNcbkxPQ0FMX0dFTkVSQVRJT05TPSVzXG5MQVRFU1RfTElOS19UQVJHRVQ9JXNcbkFDVElWRV9CQUNLVVBfUkVTVE9SRV9DT1VOVD0wXG5UQVJHRVRfV09SS0VSX1NIQTI1Nj0lc1xuTE9DQUxfQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5MT0NBTF9BUkNISVZFX1NIQTI1Nj0lc1xuJyAiJEFDQ09VTlRfQV9GUCIgIiRBQ0NPVU5UX0JfRlAiICIkKHJlbW90ZV9mcmVlICIkQSIpIiAiJChyZW1vdGVfZnJlZSAiJEIiKSIgIiRDT1VOVCIgIiR7R0VORVJBVElPTlM6LW5vbmV9IiAiJExJTksiICIkVEFSR0VUX1dPUktFUl9TSEEyNTYiICIkQVJDSElWRV9TSVpFX0JZVEVTIiAiJEFSQ0hJVkVfU0hBMjU2IgozMjU6ICBiYWNrdXApIGJhY2t1cCAiJHsyOi19IiA7OwozMjg6ICBiYWNrdXAtZGVsZXRlKSBESVI9IiR7MjotfSI7IGJhY2t1cCAiJERJUiI7IGRlbGV0ZV9wcmVwYXJlZCAiJChiYXNlbmFtZSAiJERJUiIpIiA7OwozMjk6ICB2ZXJpZnktZ2VuZXJhdGlvbikgdmVyaWZ5X2dlbmVyYXRpb24gIiR7MjotfSIgOzsKMzMwOiAgcmVzdG9yZSkgcmVzdG9yZV9nZW5lcmF0aW9uICIkezI6LX0iIDs7CjMzMjogICopIHByaW50ZiAnVk0xNjBfQ0xPVURfUVVPUlVNX1dPUktFUl9VU0FHRV9FUlJPUlxuJyA+JjI7IGV4aXQgNjQgOzs= +PIPE_25_SCORE=4 +PIPE_25_BASENAME=preflight.sh +PIPE_25_PATH_SHA256=7d34c8cd06d71c28251cbf0844638f1c29566bd01d7ee7701f236f1c29e84b5c +PIPE_25_FILE_SHA256=34c070f432a061a72bca0b1b087b0604ec1eb4753df19df2e910bb7a51bce6e1 +PIPE_25_SCHEDULE_TARGET_COUNT=0 +PIPE_25_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_25_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_25_VZDUMP_QEMU_COUNT=1 +PIPE_25_RCLONE_COUNT=4 +PIPE_25_CLOUD_QUORUM_COUNT=3 +PIPE_25_SEAL_WRITTEN_COUNT=2 +PIPE_25_PAYLOAD_PARTS_COUNT=0 +PIPE_25_TRANSPORT_COUNT=0 +PIPE_25_RESTORE_VALIDATION_COUNT=0 +PIPE_25_SCHEDULE_RESULT_COUNT=0 +PIPE_25_RELEVANT_LINE_COUNT=33 +PIPE_25_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKODpBUkNISVZFPSIkVEFSR0VULyRBUkNISVZFX05BTUUiCjExOlYxX1NFQUw9L3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoxMzpPTERfU1RBVEU9Ii92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bS92bTE1MC8kT0xEX0dFTi5qc29uIgoxNTpDVVJSRU5UX1NUQVRFPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE2OkNVUlJFTlRfVkFMPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjIwOnRlc3QgLWQgIiRUQVJHRVQiCjI0OnRlc3QgIiQoanEgLXIgJy5zdGF0dXMnICIkVjFfU0VBTCIpIiA9IFNFQUxFRAoyNTp0ZXN0ICIkKGpxIC1yICcubmV3X2JhY2t1cF9yZXN0b3JlX3Byb3ZlbicgIiRWMV9TRUFMIikiID0gdHJ1ZQoyNjp0ZXN0ICIkKGpxIC1yICcuZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnICIkVjFfU0VBTCIpIiA9IHRydWUKMjc6dGVzdCAiJChqcSAtciAnLmNvbXBsZXRlJyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gdHJ1ZQoyODp0ZXN0ICIkKGpxIC1yICcubXV0YXRpb25fc3RhdGUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSBGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOCjI5OnRlc3QgIiQoanEgLXIgJy5vbGRfZ2VuZXJhdGlvbicgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkT0xEX0dFTiIKMzA6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfbmFtZScgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9OQU1FIgozMTp0ZXN0ICIkKGpxIC1yICcucm9sbGJhY2tfYXJjaGl2ZV9ieXRlcycgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9CWVRFUyIKMzI6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfc2hhMjU2JyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gIiRBUkNISVZFX1NIQSIKMzM6Zm9yIGV4cHIgaW4gJy5zdGF0dXM9PSJTRUFMRUQiJyAnLmNsb3VkX3F1b3J1bT09MicgJy5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUnICcuY2xvdWRfYV9zZWFsX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZScgJy5zZWFsX3dyaXR0ZW49PXRydWUnICcubG9jYWxfY2xlYW51cD09Ik9LIic7IGRvIGpxIC1lICIkZXhwciIgIiRDVVJSRU5UX1NUQVRFIiA+L2Rldi9udWxsOyBkb25lCjM0OnRlc3QgIiQoanEgLXIgJy5nZW5lcmF0aW9uJyAiJENVUlJFTlRfU1RBVEUiKSIgPSAiJENVUlJFTlRfR0VOIgozNTp0ZXN0ICIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkQ1VSUkVOVF9TVEFURSIpIiA9IDhiN2ZiYjFiN2ZkNjQ0NzNhNGIyMzIzYTIyYWIyM2IzYTcyMjg3NDZjNTI2YWM2NDA1Y2YxY2NiOWVlMWI1YWMKMzc6Zm9yIGV4cHIgaW4gJy5zdGF0dXM9PSJTRUFMRUQiJyAnLmNsb3VkX3F1b3J1bT09MicgJy5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUnICcuY2xvdWRfYV9zZWFsX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZScgJy5zZWFsX3dyaXR0ZW49PXRydWUnOyBkbyBqcSAtZSAiJGV4cHIiICIkT0xEX1NUQVRFIiA+L2Rldi9udWxsOyBkb25lCjM4OnRlc3QgIiQoanEgLXIgJy5nZW5lcmF0aW9uJyAiJE9MRF9TVEFURSIpIiA9ICIkT0xEX0dFTiIKMzk6dGVzdCAiJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJE9MRF9TVEFURSIpIiA9ICIkQVJDSElWRV9TSEEiCjQwOk9MRF9BPSIkKGpxIC1yICcucmVtb3RlX2FfYmFzZSAvLyBlbXB0eScgIiRPTERfU1RBVEUiKSIKNDE6T0xEX0I9IiQoanEgLXIgJy5yZW1vdGVfYl9iYXNlIC8vIGVtcHR5JyAiJE9MRF9TVEFURSIpIgo0MzpyY2xvbmUgY2F0ICIke09MRF9BJS99L3NlYWwuanNvbiIgPiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWEtc2VhbC5qc29uIgo0NDpyY2xvbmUgY2F0ICIke09MRF9CJS99L3NlYWwuanNvbiIgPiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWItc2VhbC5qc29uIgo0NTpmb3IgcyBpbiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWEtc2VhbC5qc29uIiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWItc2VhbC5qc29uIjsgZG8ganEgLWUgLS1hcmcgZyAiJE9MRF9HRU4iIC0tYXJnIGggIiRBUkNISVZFX1NIQSIgJy5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5hcmNoaXZlX3NoYTI1Nj09JGgnICIkcyIgPi9kZXYvbnVsbDsgZG9uZQo0NjpFWFBFQ1RFRF9QQVJUUz0iJChqcSAtciAnLnBhcnRzX21hbmlmZXN0X3NoYTI1NiAvLyBlbXB0eScgIiRPTERfU1RBVEUiKSIKNDg6dGVzdCAiJChyY2xvbmUgY2F0ICIke09MRF9BJS99L1BBUlRTLnRzdiIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIgPSAiJEVYUEVDVEVEX1BBUlRTIgo0OTp0ZXN0ICIkKHJjbG9uZSBjYXQgIiR7T0xEX0IlL30vUEFSVFMudHN2IiB8IHNoYTI1NnN1bSB8IGF3ayAne3ByaW50ICQxfScpIiA9ICIkRVhQRUNURURfUEFSVFMiCjUxOmpxIC1uIC0tYXJnIHRhc2tfaWQgIiRUQVNLX0lEIiAtLWFyZyBzdGF0dXMgT0sgLS1hcmcgdGFyZ2V0ICIkVEFSR0VUIiAtLWFyZyBhcmNoaXZlX3NoYTI1NiAiJEFSQ0hJVkVfU0hBIiAtLWFyZyBvbGRfZ2VuZXJhdGlvbiAiJE9MRF9HRU4iIC0tYXJnIGN1cnJlbnRfZ2VuZXJhdGlvbiAiJENVUlJFTlRfR0VOIiAne3N0YXR1czokc3RhdHVzLHRhc2tfaWQ6JHRhc2tfaWQsdGFyZ2V0OiR0YXJnZXQsYXJjaGl2ZV9zaGEyNTY6JGFyY2hpdmVfc2hhMjU2LG9sZF9nZW5lcmF0aW9uOiRvbGRfZ2VuZXJhdGlvbixjdXJyZW50X3Jlc3RvcmVfcHJvdmVuX2dlbmVyYXRpb246JGN1cnJlbnRfZ2VuZXJhdGlvbixjdXJyZW50X3NuaWtrZXRfcnVubmluZzp0cnVlLG9sZF9jbG91ZF9hX3ZlcmlmaWVkOnRydWUsb2xkX2Nsb3VkX2JfdmVyaWZpZWQ6dHJ1ZSxwcm9kdWN0aW9uX2NoYW5nZWQ6ZmFsc2V9JyA+ICIkSE9NRUxBQl9SVU5fRElSL3ByZWZsaWdodC5qc29uIgo1MjpwcmludGYgJ1BSRUZMSUdIVF9TVEFUVVM9T0tcblZNMTUwPVJVTk5JTkdfU05JS0tFVFxuTE9DQUxfQVJDSElWRT1FWEFDVFxuT0xEX0NMT1VEX1FVT1JVTT0yXG5DVVJSRU5UX1JFU1RPUkVfUFJPT0Y9T0tcblBST0RVQ1RJT05fQ0hBTkdFRD1OT1xuJw== +PIPE_26_SCORE=4 +PIPE_26_BASENAME=preflight.sh +PIPE_26_PATH_SHA256=a686a97a8cdc4f26bf4f5e26ecb15db06605be34e4f2f77a181430d1f024d4e9 +PIPE_26_FILE_SHA256=0dd1c6f9ea99d1f69b81d45fbe8aca86a4adca53b3faf85281096a365c06d53d +PIPE_26_SCHEDULE_TARGET_COUNT=0 +PIPE_26_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_26_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_26_VZDUMP_QEMU_COUNT=1 +PIPE_26_RCLONE_COUNT=5 +PIPE_26_CLOUD_QUORUM_COUNT=1 +PIPE_26_SEAL_WRITTEN_COUNT=1 +PIPE_26_PAYLOAD_PARTS_COUNT=0 +PIPE_26_TRANSPORT_COUNT=0 +PIPE_26_RESTORE_VALIDATION_COUNT=0 +PIPE_26_SCHEDULE_RESULT_COUNT=0 +PIPE_26_RELEVANT_LINE_COUNT=25 +PIPE_26_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKODpBUkNISVZFPSIkVEFSR0VULyRBUkNISVZFX05BTUUiCjExOlYxX1NFQUw9L3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoxMjpSRVRFTlRJT05fVFg9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MvdHJhbnNhY3Rpb25zL3ZtMTUwL3ZtMTUwLXB2ZTAxLTIwMjYwODE0VDEyMTczNlouanNvbgoxNDpDVVJSRU5UX1NUQVRFPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE1OkNVUlJFTlRfVkFMPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE4OmZvciBjbWQgaW4gcW0ganEgcmNsb25lIHNoYTI1NnN1bSBzdGF0IGZpbmQgZnVzZXIgaG9tZWxhYi1yY2xvbmUtY29weS1jaHVua2VkIGhvbWVsYWItcmNsb25lLWNhdC1jaHVua2VkOyBkbyBjb21tYW5kIC12ICIkY21kIiA+L2Rldi9udWxsOyBkb25lCjIyOnRlc3QgLWQgIiRUQVJHRVQiCjI2OnRlc3QgIiQoanEgLXIgJy5zdGF0dXMnICIkVjFfU0VBTCIpIiA9IFNFQUxFRAoyNzp0ZXN0ICIkKGpxIC1yICcubmV3X2JhY2t1cF9yZXN0b3JlX3Byb3ZlbicgIiRWMV9TRUFMIikiID0gdHJ1ZQoyODp0ZXN0ICIkKGpxIC1yICcuZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnICIkVjFfU0VBTCIpIiA9IHRydWUKMjk6dGVzdCAiJChqcSAtciAnLmNvbXBsZXRlJyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gdHJ1ZQozMDp0ZXN0ICIkKGpxIC1yICcubXV0YXRpb25fc3RhdGUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSBGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOCjMxOnRlc3QgIiQoanEgLXIgJy5yb2xsYmFja19hcmNoaXZlX25hbWUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSAiJEFSQ0hJVkVfTkFNRSIKMzI6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfYnl0ZXMnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSAiJEFSQ0hJVkVfQllURVMiCjMzOnRlc3QgIiQoanEgLXIgJy5yb2xsYmFja19hcmNoaXZlX3NoYTI1NicgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9TSEEiCjM0OmpxIC1lICcuc3RhdHVzPT0iRE9ORSIgYW5kIC5nZW5lcmF0aW9uPT0idm0xNTAtcHZlMDEtMjAyNjA4MTRUMTIxNzM2WiIgYW5kIC5yZW1vdGVfYV9hYnNlbnQ9PXRydWUgYW5kIC5yZW1vdGVfYl9hYnNlbnQ9PXRydWUnICIkUkVURU5USU9OX1RYIiA+L2Rldi9udWxsCjM1OmZvciBleHByIGluICcuc3RhdHVzPT0iU0VBTEVEIicgJy5jbG91ZF9xdW9ydW09PTInICcuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZScgJy5jbG91ZF9iX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5jbG91ZF9iX3NlYWxfdmVyaWZpZWQ9PXRydWUnICcucGFydF9oYXNoZXNfdmVyaWZpZWQ9PXRydWUnICcuc2VhbF93cml0dGVuPT10cnVlJyAnLmxvY2FsX2NsZWFudXA9PSJPSyInOyBkbyBqcSAtZSAiJGV4cHIiICIkQ1VSUkVOVF9TVEFURSIgPi9kZXYvbnVsbDsgZG9uZQozNjp0ZXN0ICIkKGpxIC1yICcuZ2VuZXJhdGlvbicgIiRDVVJSRU5UX1NUQVRFIikiID0gIiRDVVJSRU5UX0dFTiIKMzc6dGVzdCAiJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJENVUlJFTlRfU1RBVEUiKSIgPSA4YjdmYmIxYjdmZDY0NDczYTRiMjMyM2EyMmFiMjNiM2E3MjI4NzQ2YzUyNmFjNjQwNWNmMWNjYjllZTFiNWFjCjQxOmlmIHJjbG9uZSBsc2YgIiRBUkNISVZFX0EiID4vZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICdhcmNoaXZhbC1hLWRlc3RpbmF0aW9uLWFscmVhZHktZXhpc3RzJyA+JjI7IGV4aXQgNDM7IGZpCjQyOmlmIHJjbG9uZSBsc2YgIiRBUkNISVZFX0IiID4vZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICdhcmNoaXZhbC1iLWRlc3RpbmF0aW9uLWFscmVhZHktZXhpc3RzJyA+JjI7IGV4aXQgNDQ7IGZpCjQ0OmpxIC1uIC0tYXJnIHRhc2tfaWQgIiRUQVNLX0lEIiAtLWFyZyBzdGF0dXMgT0sgLS1hcmcgdGFyZ2V0ICIkVEFSR0VUIiAtLWFyZyBhcmNoaXZlX3NoYTI1NiAiJEFSQ0hJVkVfU0hBIiAtLWFyZyBjdXJyZW50X2dlbmVyYXRpb24gIiRDVVJSRU5UX0dFTiIgLS1hcmcgYXJjaGl2ZV9hICIkQVJDSElWRV9BIiAtLWFyZyBhcmNoaXZlX2IgIiRBUkNISVZFX0IiICd7c3RhdHVzOiRzdGF0dXMsdGFza19pZDokdGFza19pZCx0YXJnZXQ6JHRhcmdldCxhcmNoaXZlX3NoYTI1NjokYXJjaGl2ZV9zaGEyNTYsY3VycmVudF9yZXN0b3JlX3Byb3Zlbl9nZW5lcmF0aW9uOiRjdXJyZW50X2dlbmVyYXRpb24sY3VycmVudF9zbmlra2V0X3J1bm5pbmc6dHJ1ZSxoaXN0b3JpY2FsX2dmc19yZXRlbnRpb25fZG9uZTp0cnVlLGhpc3RvcmljYWxfZ2ZzX3JlbW90ZV9hX2Fic2VudDp0cnVlLGhpc3RvcmljYWxfZ2ZzX3JlbW90ZV9iX2Fic2VudDp0cnVlLGFyY2hpdmFsX2E6JGFyY2hpdmVfYSxhcmNoaXZhbF9iOiRhcmNoaXZlX2IsYXJjaGl2YWxfZGVzdGluYXRpb25zX2Fic2VudDp0cnVlLHByb2R1Y3Rpb25fY2hhbmdlZDpmYWxzZX0nID4gIiRIT01FTEFCX1JVTl9ESVIvcHJlZmxpZ2h0Lmpzb24iCjQ1OnByaW50ZiAnUFJFRkxJR0hUX1NUQVRVUz1PS1xuVk0xNTA9UlVOTklOR19TTklLS0VUXG5MT0NBTF9BUkNISVZFPUVYQUNUXG5ISVNUT1JJQ0FMX0dGU19SRU1PVEVfQUJTRU5UPUErQlxuQVJDSElWQUxfREVTVElOQVRJT05TPUFCU0VOVFxuQ1VSUkVOVF9SRVNUT1JFX1BST09GPU9LXG5QUk9EVUNUSU9OX0NIQU5HRUQ9Tk9cbic= +PIPE_27_SCORE=4 +PIPE_27_BASENAME=homelab-control-backup +PIPE_27_PATH_SHA256=a43d3657289f537dc66a8bfaab1c93482aba98ebc44feee7cb048957fd6c5a01 +PIPE_27_FILE_SHA256=0b3a0f685d4e67cb86250df89a4918aff2e6c67799b7d35b0e54b1bbc016ee57 +PIPE_27_SCHEDULE_TARGET_COUNT=0 +PIPE_27_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_27_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_27_VZDUMP_QEMU_COUNT=0 +PIPE_27_RCLONE_COUNT=14 +PIPE_27_CLOUD_QUORUM_COUNT=1 +PIPE_27_SEAL_WRITTEN_COUNT=0 +PIPE_27_PAYLOAD_PARTS_COUNT=1 +PIPE_27_TRANSPORT_COUNT=11 +PIPE_27_RESTORE_VALIDATION_COUNT=0 +PIPE_27_SCHEDULE_RESULT_COUNT=0 +PIPE_27_RELEVANT_LINE_COUNT=100 +PIPE_27_RELEVANT_B64=NzpTVEFURV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bQo4OlNUQVRFX0RJUj0kU1RBVEVfUk9PVC8kTE9HSUNBTF9JRAo5OkVWSURFTkNFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY29udHJvbC1yZXN0b3JlLXZhbGlkYXRpb24vY29udHJvbC1ib290c3RyYXAKMTA6SEVBTFRIPS92YXIvbGliL2hvbWVsYWItaGVhbHRoL2NvbnRyb2wtYmFja3VwLmpzb24KMTM6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1jb250cm9sLWJhY2t1cC5sb2NrCjE0OkhFQVZZX0xPQ0s9L3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrCjE1OlJDTE9ORV9DT05GSUdfU09VUkNFPSR7UkNMT05FX0NPTkZJRzotL3Jvb3QvLmNvbmZpZy9yY2xvbmUvcmNsb25lLmNvbmZ9CjE2OlRSQU5TUE9SVD0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1jbG91ZC1xdW9ydW0tcGF5bG9hZAoxNzpUUkFOU1BPUlRfU0hBPWRmOWUxOTQ4NWU1ZDg3MTEyYmY1OGJmNzdiZGRkZjNiOWI4OTY0MThkZDg1ZmY5NDVhMzFjZDViNjgxN2YzNTIKMjA6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMKMjE6UkVNT1RFX0I9cHZlMDEtbWFpbC0wMi1jcnlwdDpob21lbGFiLWJhY2t1cHMKMjI6Q0xPVURfV1JJVEVfTUFSS0VSPSR7SE9NRUxBQl9DT05UUk9MX0NMT1VEX1dSSVRFX01BUktFUjotfQoyNDpkaWUoKXsgcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9FUlJPUj0lc1xuJyAiJDEiID4mMjsgZXhpdCAiJHsyOi02NX0iOyB9CjI1OmZvciBjIGluIGpxIGRhdGUgZmluZCBzb3J0IHRhaWwgY3V0IHNoYTI1NnN1bSBzdGF0IGZsb2NrIHJjbG9uZSBta3RlbXAgY21wIGF3ayBta2RpciBybSBpbnN0YWxsIHhhcmdzIGdyZXAgY2F0IG12IGNobW9kOyBkbyBjb21tYW5kIC12ICIkYyIgPi9kZXYvbnVsbCB8fCBkaWUgIlRPT0xfTUlTU0lOR18kYyIgNjk7IGRvbmUKMjY6W1sgLXggIiRUUkFOU1BPUlQiICYmICEgLUwgIiRUUkFOU1BPUlQiIF1dIHx8IGRpZSBUUkFOU1BPUlRfVU5TQUZFIDY5CjI3OltbICIkKHNoYTI1NnN1bSAiJFRSQU5TUE9SVCJ8YXdrICd7cHJpbnQgJDF9JykiID09ICIkVFJBTlNQT1JUX1NIQSIgXV0gfHwgZGllIFRSQU5TUE9SVF9TSEFfRFJJRlQgNjUKMzE6bGF0ZXN0X3N0YXRlKCl7CjMyOiAgW1sgLWQgIiRTVEFURV9ESVIiICYmICEgLUwgIiRTVEFURV9ESVIiIF1dIHx8IHJldHVybiAwCjMzOiAgZmluZCAiJFNUQVRFX0RJUiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnY29udHJvbC1ib290c3RyYXAtdjItcHZlMDEtPz8/Pz8/Pz9UPz8/Pz8/Wi5qc29uJyAtcHJpbnQgMj4vZGV2L251bGwgfCBMQ19BTEw9QyBzb3J0IHwgdGFpbCAtMQozNTpzdGF0ZV9kZWNpc2lvbigpewozNjogIGxvY2FsIHN0YXRlPSIkMSIgbm93PSIkMiIgc3RhdHVzIGdlbiB1cGQgZXBvY2ggYWdlIGV2IHNoYQozNzogIGlmIFtbIC16ICIkc3RhdGUiIF1dOyB0aGVuIHByaW50ZiAnREVDSVNJT049QkFDS1VQX1VOVkVSSUZJRUQgUkVBU09OPU5PX1NUQVRFIEFHRV9TRUNPTkRTPS0xXG4nOyByZXR1cm4gMDsgZmkKMzg6ICBbWyAtcyAiJHN0YXRlIiAmJiAhIC1MICIkc3RhdGUiIF1dIHx8IHsgcHJpbnRmICdERUNJU0lPTj1CQUNLVVBfVU5WRVJJRklFRCBSRUFTT049U1RBVEVfVU5TQUZFIEFHRV9TRUNPTkRTPS0xXG4nOyByZXR1cm4gMDsgfQozOTogIHN0YXR1cz0iJChqcSAtciAnLnN0YXR1cyAvLyAiSU5WQUxJRCInICIkc3RhdGUiKSI7IGdlbj0iJChqcSAtciAnLmdlbmVyYXRpb24gLy8gIlVOS05PV04iJyAiJHN0YXRlIikiCjQyOiAgICAgIHByaW50ZiAnREVDSVNJT049QkFDS1VQX1JFU1VNRSBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9LTFcbicgIiRnZW4iICIkc3RhdGUiOyByZXR1cm4gMDs7CjQzOiAgICBTRUFMRUQpIDs7CjQ0OiAgICAqKSBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9VTlZFUklGSUVEIEdFTkVSQVRJT049JXMgUkVBU09OPVNUQVRFX1NUQVRVU19JTlZBTElEIEFHRV9TRUNPTkRTPS0xXG4nICIkZ2VuIjsgcmV0dXJuIDA7Owo0NjogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2IC8vICIiJyAiJHN0YXRlIikiOyB1cGQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjIC8vIC51cGRhdGVkX2F0X3V0YyAvLyAiIicgIiRzdGF0ZSIpIgo0ODogIFtbICIkZXBvY2giID1+IF5bMC05XSskICYmICIkZXBvY2giIC1sZSAiJG5vdyIgXV0gfHwgeyBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9VTlZFUklGSUVEIEdFTkVSQVRJT049JXMgUkVBU09OPVRJTUVTVEFNUF9JTlZBTElEIEFHRV9TRUNPTkRTPS0xXG4nICIkZ2VuIjsgcmV0dXJuIDA7IH0KNTA6ICBpZiBbWyAhIC1zICIkZXYiIHx8IC1MICIkZXYiIF1dIHx8ICEganEgLWUgLS1hcmcgZyAiJGdlbiIgLS1hcmcgaCAiJHNoYSIgJy5yZXN1bHQ9PSJPSyIgYW5kIC5sb2dpY2FsX2lkPT0iY29udHJvbC1ib290c3RyYXAtdjIiIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5yZXN0b3JlX3NvdXJjZT09IkNsb3VkIEEgKyBDbG91ZCBCIiBhbmQgLnBheWxvYWRfc2hhMjU2PT0kaCBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5zZWNyZXRfZXNjcm93X3NlcGFyYXRlPT10cnVlIGFuZCAuY2xlYW5fbWFjaGluZV9ib290c3RyYXBfcHJvdmVuPT1mYWxzZScgIiRldiIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCjUxOiAgICBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9SRVZFUklGWSBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9LTFcbicgIiRnZW4iICIkc3RhdGUiOyByZXR1cm4gMAo1NDogIGlmICgoIGFnZSA8IERVRV9TRUNPTkRTICkpOyB0aGVuIGQ9U0tJUF9GUkVTSDsgZWxpZiAoKCBhZ2UgPCBTTEFfU0VDT05EUyApKTsgdGhlbiBkPUJBQ0tVUF9EVUU7IGVsc2UgZD1CQUNLVVBfU1RBTEU7IGZpCjU1OiAgcHJpbnRmICdERUNJU0lPTj0lcyBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9JXMgRFVFX1NFQ09ORFM9JXMgU0xBX1NFQ09ORFM9JXNcbicgIiRkIiAiJGdlbiIgIiRzdGF0ZSIgIiRhZ2UiICIkRFVFX1NFQ09ORFMiICIkU0xBX1NFQ09ORFMiCjU3OnNjYW4oKXsgbG9jYWwgbm93IHN0YXRlOyBub3c9IiQoZGF0ZSAtdSArJXMpIjsgc3RhdGU9IiQobGF0ZXN0X3N0YXRlKSI7IHN0YXRlX2RlY2lzaW9uICIkc3RhdGUiICIkbm93IjsgfQo1ODptYXJrX2Nsb3VkX3dyaXRlKCl7CjU5OiAgW1sgLXogIiRDTE9VRF9XUklURV9NQVJLRVIiIF1dICYmIHJldHVybiAwCjYwOiAgW1sgIiRDTE9VRF9XUklURV9NQVJLRVIiID09IC8qIF1dIHx8IGRpZSBDTE9VRF9XUklURV9NQVJLRVJfTk9UX0FCU09MVVRFIDY1CjYxOiAgW1sgISAtTCAiJENMT1VEX1dSSVRFX01BUktFUiIgXV0gfHwgZGllIENMT1VEX1dSSVRFX01BUktFUl9TWU1MSU5LIDY1CjYyOiAgcHJpbnRmICclc1xuJyAiJChkYXRlIC11ICslWS0lbS0lZFQlSDolTTolU1opIiA+IiRDTE9VRF9XUklURV9NQVJLRVIiCjYzOiAgY2htb2QgMDYwMCAiJENMT1VEX1dSSVRFX01BUktFUiIKNjY6cHJlcGFyZV9yY2xvbmUoKXsKNjc6ICBsb2NhbCBkc3Q9IiQxIjsgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUgNjYKNjg6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRkc3QiCjcxOiAgbG9jYWwgYmFzZT0iJDEiIG91dD0iJDIiIGNmZz0iJDMiIHN0YXRlPSIkNCIgbGFiZWw9IiQ1IiBtYW5pZmVzdCBwYXJ0IGlkeCBuYW1lIHNpemUgaGFzaCBnb3Rfc2l6ZSBnb3RfaGFzaCBleHBlY3RlZF9tYW5pZmVzdCBleHBlY3RlZF9hcmNoaXZlCjcyOiAgZXhwZWN0ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2JyAiJHN0YXRlIikiOyBleHBlY3RlZF9hcmNoaXZlPSIkKGpxIC1lciAnLmFyY2hpdmVfc2hhMjU2JyAiJHN0YXRlIikiCjczOiAgbWFuaWZlc3Q9IiR7b3V0fS5QQVJUUy50c3YiOyA6ID4iJG91dCIKNzQ6ICByY2xvbmUgLS1jb25maWcgIiRjZmciIGNhdCAiJHtiYXNlJS99L1BBUlRTLnRzdiIgPiIkbWFuaWZlc3QiIHx8IGRpZSAiUkVNT1RFXyR7bGFiZWx9X01BTklGRVNUX1JFQURfRkFJTEVEIiA3NAo3NTogIFtbICIkKHNoYTI1NnN1bSAiJG1hbmlmZXN0Inxhd2sgJ3twcmludCAkMX0nKSIgPT0gIiRleHBlY3RlZF9tYW5pZmVzdCIgXV0gfHwgZGllICJSRU1PVEVfJHtsYWJlbH1fTUFOSUZFU1RfU0hBX01JU01BVENIIiA2OAo3ODogICAgW1sgIiRyb3ciID09ICIkKHByaW50ZiAnJTA4ZCcgIiRpZHgiKSIgJiYgIiRuYW1lIiA9PSBwYXJ0LT8/Pz8/Pz8/LmJpbiAmJiAiJHNpemUiID1+IF5bMS05XVswLTldKiQgJiYgIiRoYXNoIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlJFTU9URV8ke2xhYmVsfV9NQU5JRkVTVF9ST1dfSU5WQUxJRCIgNjgKNzk6ICAgIHBhcnQ9IiR7b3V0fS5wYXJ0Ijsgcm0gLWYgIiRwYXJ0IjsgcmNsb25lIC0tY29uZmlnICIkY2ZnIiBjYXQgIiR7YmFzZSUvfS9wYXlsb2FkLnBhcnRzLyRuYW1lIiA+IiRwYXJ0IiB8fCBkaWUgIlJFTU9URV8ke2xhYmVsfV9QQVJUX1JFQURfRkFJTEVEIiA3NAo4MTogICAgW1sgIiRnb3Rfc2l6ZSIgPT0gIiRzaXplIiAmJiAiJGdvdF9oYXNoIiA9PSAiJGhhc2giIF1dIHx8IGRpZSAiUkVNT1RFXyR7bGFiZWx9X1BBUlRfVkVSSUZZX0ZBSUxFRCIgNjgKODM6ICBkb25lIDwiJG1hbmlmZXN0Igo4NDogIFtbICIkKHNoYTI1NnN1bSAiJG91dCJ8YXdrICd7cHJpbnQgJDF9JykiID09ICIkZXhwZWN0ZWRfYXJjaGl2ZSIgXV0gfHwgZGllICJSRU1PVEVfJHtsYWJlbH1fQVJDSElWRV9TSEFfTUlTTUFUQ0giIDY4Cjg1OiAgcm0gLWYgIiRtYW5pZmVzdCIKODc6dmVyaWZ5X2dlbmVyYXRpb24oKXsKODg6ICBsb2NhbCBnZW4gc3RhdGUgd29yayBjZmcgYmFzZV9hIGJhc2VfYiBhIGIgdmVyaWZ5X2pzb24gYXJjaGl2ZV9zaGEgdG1wIG5vdwo5MDogIHN0YXRlPSIkU1RBVEVfRElSLyRnZW4uanNvbiIKOTE6ICBbWyAtcyAiJHN0YXRlIiAmJiAhIC1MICIkc3RhdGUiIF1dIHx8IGRpZSBWRVJJRllfU1RBVEVfVU5TQUZFIDY4CjkyOiAgIiRUUkFOU1BPUlQiIHZlcmlmeS1zZWFsZWQgIiRMT0dJQ0FMX0lEIiAiJGdlbiIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIiA+L2Rldi9udWxsCjk0OiAgd29yaz0iJChta3RlbXAgLWQgIiRWRVJJRllfUk9PVC8udmVyaWZ5LlhYWFhYWCIpIjsgY2ZnPSIkd29yay9yY2xvbmUuY29uZiI7IHByZXBhcmVfcmNsb25lICIkY2ZnIgo5NjogIGJhc2VfYT0iJChqcSAtZXIgJy5yZW1vdGVfYV9iYXNlJyAiJHN0YXRlIikiOyBiYXNlX2I9IiQoanEgLWVyICcucmVtb3RlX2JfYmFzZScgIiRzdGF0ZSIpIjsgYT0iJHdvcmsvQS50YXIuZ3oiOyBiPSIkd29yay9CLnRhci5neiIKOTc6ICByZWNvbnN0cnVjdCAiJGJhc2VfYSIgIiRhIiAiJGNmZyIgIiRzdGF0ZSIgQTsgcmVjb25zdHJ1Y3QgIiRiYXNlX2IiICIkYiIgIiRjZmciICIkc3RhdGUiIEIKOTg6ICBjbXAgLXMgIiRhIiAiJGIiIHx8IGRpZSBDTE9VRF9BX0JfUEFZTE9BRF9NSVNNQVRDSCA2OAo5OTogIHZlcmlmeV9qc29uPSIkKCIkQlVJTERFUiIgdmVyaWZ5IC0tYXJjaGl2ZSAiJGEiIC0tZXhwZWN0ZWQtZ2VuZXJhdGlvbiAiJGdlbiIpIiB8fCBkaWUgQ09OVFJPTF9BUkNISVZFX1NFTUFOVElDX1ZFUklGWV9GQUlMRUQgNjgKMTAwOiAganEgLWUgJy5zdGF0dXM9PSJPSyIgYW5kIC5wYXlsb2FkX2NoZWNrc3Vtc192ZXJpZmllZD09dHJ1ZSBhbmQgLmNvbnRyb2xfbWFuaWZlc3RfdmVyaWZpZWQ9PXRydWUgYW5kIC5vcHNfZ2l0X2J1bmRsZV92ZXJpZmllZD09dHJ1ZSBhbmQgLmRlc2lyZWRfZ2l0X2J1bmRsZV92ZXJpZmllZD09dHJ1ZSBhbmQgLnNlY3JldF9lc2Nyb3dfc2VwYXJhdGU9PXRydWUgYW5kIC5jbGVhbl9tYWNoaW5lX2Jvb3RzdHJhcF9wcm92ZW49PWZhbHNlJyA8PDwiJHZlcmlmeV9qc29uIiA+L2Rldi9udWxsIHx8IGRpZSBWRVJJRllfUkVTVUxUX0lOVkFMSUQgNjgKMTAxOiAgYXJjaGl2ZV9zaGE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYnICIkc3RhdGUiKSI7IG1rZGlyIC1wICIkRVZJREVOQ0VfUk9PVCIgL3Zhci9saWIvaG9tZWxhYi1oZWFsdGg7IGNobW9kIDA3MDAgIiRFVklERU5DRV9ST09UIgoxMDM6ICBqcSAtbiAtLWFyZyBnZW4gIiRnZW4iIC0tYXJnIHNoYSAiJGFyY2hpdmVfc2hhIiAtLWFyZyBub3cgIiRub3ciIC0tYXJnanNvbiBydW50aW1lICIkKGpxIC1yICcucnVudGltZV9hc3NldF9jb3VudCcgPDw8IiR2ZXJpZnlfanNvbiIpIiAtLWFyZ2pzb24gc3lzdGVtZCAiJChqcSAtciAnLnN5c3RlbWRfYXNzZXRfY291bnQnIDw8PCIkdmVyaWZ5X2pzb24iKSIgJ3tyZXN1bHQ6Ik9LIixsb2dpY2FsX2lkOiJjb250cm9sLWJvb3RzdHJhcC12MiIsZ2VuZXJhdGlvbjokZ2VuLHJlc3RvcmVfc291cmNlOiJDbG91ZCBBICsgQ2xvdWQgQiIscGF5bG9hZF9zaGEyNTY6JHNoYSxwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZDp0cnVlLGNsb3VkX2Ffc2VtYW50aWNfcmVzdG9yZV92ZXJpZmllZDp0cnVlLGNsb3VkX2JfYnl0ZV9yZWNvbnN0cnVjdGlvbl92ZXJpZmllZDp0cnVlLGNsb3VkX2FfYl9wYXlsb2FkX2VxdWFsOnRydWUsY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZDp0cnVlLHBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkOnRydWUsb3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ6dHJ1ZSxkZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ6dHJ1ZSxydW50aW1lX2Fzc2V0X2NvdW50X3ZlcmlmaWVkOiRydW50aW1lLHN5c3RlbWRfYXNzZXRfY291bnRfdmVyaWZpZWQ6JHN5c3RlbWQsc2VjcmV0X2VzY3Jvd19zZXBhcmF0ZTp0cnVlLGNsZWFuX21hY2hpbmVfYm9vdHN0cmFwX3Byb3ZlbjpmYWxzZSxjb250cm9sX3Njb3BlOiJDT05UUk9MX1BMQU5FX1JFQ09WRVJZIix2ZXJpZmllZF9hdF91dGM6JG5vd30nID4iJHRtcCIKMTA1OiAgdG1wPSIke0hFQUxUSH0ubmV3LiQkIjsganEgLW4gLS1hcmcgZ2VuICIkZ2VuIiAtLWFyZyBzdGF0ZSAiJHN0YXRlIiAtLWFyZyBldmlkZW5jZSAiJEVWSURFTkNFX1JPT1QvJGdlbi5qc29uIiAtLWFyZyBzaGEgIiRhcmNoaXZlX3NoYSIgLS1hcmcgbm93ICIkbm93IiAne3NjaGVtYToiaG9tZWxhYi1jb250cm9sLWJhY2t1cC1oZWFsdGgtdjEiLHN0YXR1czoiT0siLGdlbmVyYXRpb246JGdlbixzdGF0ZV9maWxlOiRzdGF0ZSxyZXN0b3JlX2V2aWRlbmNlOiRldmlkZW5jZSxhcmNoaXZlX3NoYTI1Njokc2hhLGNsb3VkX3F1b3J1bToyLGNvbnRyb2xfZnJlc2huZXNzOiJGUkVTSCIsZnVsbF9zaXRlX2RyX3Byb3ZlbjpmYWxzZSx1cGRhdGVkX2F0X3V0Yzokbm93fScgPiIkdG1wIjsgY2htb2QgMDY0NCAiJHRtcCI7IG12IC1mICIkdG1wIiAiJEhFQUxUSCIKMTA3OiAgcHJpbnRmICdDT05UUk9MX1ZFUklGWT1PSyBHRU5FUkFUSU9OPSVzIEVWSURFTkNFPSVzXG4nICIkZ2VuIiAiJEVWSURFTkNFX1JPT1QvJGdlbi5qc29uIgoxMDk6cnVuX2JhY2t1cCgpewoxMTA6ICBsb2NhbCBmb3JjZT0iJHsxOi0wfSIgZGVjaXNpb24gbGluZSBzdGF0ZSBnZW4gcGF5bG9hZCBvdXRkaXIgbm93CjExMTogIG1rZGlyIC1wICIkU1RBVEVfRElSIiAiJEVWSURFTkNFX1JPT1QiICIkU1RBR0VfUk9PVCIgIiRWRVJJRllfUk9PVCIgL3J1bi9sb2NrOyBjaG1vZCAwNzAwICIkU1RBVEVfUk9PVCIgIiRTVEFURV9ESVIiICIkRVZJREVOQ0VfUk9PVCIgIiRTVEFHRV9ST09UIiAiJFZFUklGWV9ST09UIgoxMTI6ICBleGVjIDk+IiRMT0NLIjsgZmxvY2sgLW4gOSB8fCB7IHByaW50ZiAnQ09OVFJPTF9CQUNLVVBfREVGRVJSRUQ9TE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQoxMTQ6ICBpbmNvbXBsZXRlcz0iJChmaW5kICIkU1RBVEVfRElSIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICdjb250cm9sLWJvb3RzdHJhcC12Mi1wdmUwMS0/Pz8/Pz8/P1Q/Pz8/Pz9aLmpzb24nIC1wcmludDAgMj4vZGV2L251bGwgfCB4YXJncyAtMCAtciBqcSAtciAnc2VsZWN0KC5zdGF0dXMhPSJTRUFMRUQiKXwuZ2VuZXJhdGlvbicgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjExNTogIFtbICIkKGdyZXAgLWMgLiA8PDwiJGluY29tcGxldGVzIiB8fCB0cnVlKSIgLWxlIDEgXV0gfHwgZGllIE1VTFRJUExFX0lOQ09NUExFVEVfR0VORVJBVElPTlMgNjgKMTE3OiAgZ2VuPSIkKGF3ayAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9eR0VORVJBVElPTj0vKXtzdWIoL15HRU5FUkFUSU9OPS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxMTg6ICBpZiBbWyAiJGRlY2lzaW9uIiA9PSBTS0lQX0ZSRVNIICYmICIkZm9yY2UiICE9IDEgXV07IHRoZW4gcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9SRVNVTFQ9U0tJUF9GUkVTSCBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIjsgcmV0dXJuIDA7IGZpCjExOTogIGlmIFtbICIkZGVjaXNpb24iID09IEJBQ0tVUF9SRVZFUklGWSBdXTsgdGhlbgoxMjA6ICAgIGlmIFtbICIkZm9yY2UiICE9IDEgXV07IHRoZW4gdmVyaWZ5X2dlbmVyYXRpb24gIiRnZW4iOyByZXR1cm4gMDsgZmkKMTIxOiAgICAjIEZvcmNlZCByZWZyZXNoIGRlbGliZXJhdGVseSBjcmVhdGVzIGEgbmV3IGdlbmVyYXRpb24gaW5zdGVhZCBvZiByZXF1aXJpbmcKMTIyOiAgICAjIGEgbGVnYWN5IGdlbmVyYXRpb24gdG8gc2F0aXNmeSB0aGUgY3VycmVudCBidW5kbGUgc2NoZW1hLgoxMjM6ICAgIGRlY2lzaW9uPUJBQ0tVUF9EVUUKMTI1OiAgaWYgW1sgIiRkZWNpc2lvbiIgPT0gQkFDS1VQX1JFU1VNRSBdXTsgdGhlbgoxMjY6ICAgIHN0YXRlPSIkU1RBVEVfRElSLyRnZW4uanNvbiI7IHBheWxvYWQ9IiQoanEgLWVyICcucGF5bG9hZF9wYXRoJyAiJHN0YXRlIikiOyBbWyAtcyAiJHBheWxvYWQiICYmICEgLUwgIiRwYXlsb2FkIiBdXSB8fCBkaWUgSU5DT01QTEVURV9QQVlMT0FEX01JU1NJTkcgNjgKMTI3OiAgICAiJEJVSUxERVIiIHZlcmlmeSAtLWFyY2hpdmUgIiRwYXlsb2FkIiAtLWV4cGVjdGVkLWdlbmVyYXRpb24gIiRnZW4iID4vZGV2L251bGwgfHwgZGllIElOQ09NUExFVEVfUEFZTE9BRF9MT0NBTF9TRU1BTlRJQ19WRVJJRllfRkFJTEVEIDY4CjEyODogICAgbWFya19jbG91ZF93cml0ZQoxMjk6ICAgICIkVFJBTlNQT1JUIiBiYWNrdXAtZGVsZXRlICIkTE9HSUNBTF9JRCIgIiRnZW4iICIkcGF5bG9hZCIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIjsgdmVyaWZ5X2dlbmVyYXRpb24gIiRnZW4iOyBwcmludGYgJ0NPTlRST0xfQkFDS1VQX1JFU1VMVD1TRUFMRURfUkVTVU1FRCBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIjsgcmV0dXJuIDAKMTMxOiAgY2FzZSAiJGRlY2lzaW9uIiBpbiBCQUNLVVBfRFVFfEJBQ0tVUF9TVEFMRXxCQUNLVVBfVU5WRVJJRklFRHxTS0lQX0ZSRVNIKSA7OyAqKSBkaWUgIkRFQ0lTSU9OX0lOVkFMSURfJGRlY2lzaW9uIiA2NTs7IGVzYWMKMTMyOiAgZXhlYyA4PiIkSEVBVllfTE9DSyI7IGZsb2NrIC1uIDggfHwgeyBwcmludGYgJ0NPTlRST0xfQkFDS1VQX0RFRkVSUkVEPUhFQVZZX0xPQ0tfQlVTWVxuJzsgcmV0dXJuIDA7IH0KMTM0OiAgIiRCVUlMREVSIiBidWlsZCAtLWdlbmVyYXRpb24gIiRnZW4iIC0tb3V0cHV0LWRpciAiJG91dGRpciIgPi9kZXYvbnVsbAoxMzY6ICAiJEJVSUxERVIiIHZlcmlmeSAtLWFyY2hpdmUgIiRwYXlsb2FkIiAtLWV4cGVjdGVkLWdlbmVyYXRpb24gIiRnZW4iID4vZGV2L251bGwgfHwgZGllIEJVSUxUX1BBWUxPQURfTE9DQUxfU0VNQU5USUNfVkVSSUZZX0ZBSUxFRCA2OAoxMzg6ICBtYXJrX2Nsb3VkX3dyaXRlCjEzOTogICIkVFJBTlNQT1JUIiBiYWNrdXAtZGVsZXRlICIkTE9HSUNBTF9JRCIgIiRnZW4iICIkcGF5bG9hZCIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIgoxNDE6ICB2ZXJpZnlfZ2VuZXJhdGlvbiAiJGdlbiIKMTQyOiAgcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9SRVNVTFQ9U0VBTEVEX05FVyBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIgoxNDU6ICBzY2FuKSBbWyAiJCMiID09IDEgXV0gfHwgZGllIFVTQUdFIDY0OyBzY2FuOzsKMTQ2OiAgcnVuKSBbWyAiJCMiID09IDEgXV0gfHwgZGllIFVTQUdFIDY0OyBydW5fYmFja3VwIDA7OwoxNDc6ICBmb3JjZSkgW1sgIiQjIiA9PSAxIF1dIHx8IGRpZSBVU0FHRSA2NDsgcnVuX2JhY2t1cCAxOzsKMTQ4OiAgdmVyaWZ5KSBbWyAiJCMiID09IDIgXV0gfHwgZGllIFVTQUdFIDY0OyB2ZXJpZnlfZ2VuZXJhdGlvbiAiJDIiOzsKMTQ5OiAgKikgZGllIFVTQUdFX3NjYW5fcnVuX2ZvcmNlX3ZlcmlmeSA2NDs7 +PIPE_28_SCORE=4 +PIPE_28_BASENAME=homelab-rotating-boot-drill +PIPE_28_PATH_SHA256=dbc4c301ef8b70c3af642ace8d03a1442c8eed716579f99c365fd7a7258a7338 +PIPE_28_FILE_SHA256=5817d1c0ceae68df5849210f68c6d9d69a1d468d62dd8fa2cac98942bc7927d4 +PIPE_28_SCHEDULE_TARGET_COUNT=0 +PIPE_28_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_28_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_28_VZDUMP_QEMU_COUNT=1 +PIPE_28_RCLONE_COUNT=8 +PIPE_28_CLOUD_QUORUM_COUNT=1 +PIPE_28_SEAL_WRITTEN_COUNT=0 +PIPE_28_PAYLOAD_PARTS_COUNT=1 +PIPE_28_TRANSPORT_COUNT=0 +PIPE_28_RESTORE_VALIDATION_COUNT=0 +PIPE_28_SCHEDULE_RESULT_COUNT=0 +PIPE_28_RELEVANT_LINE_COUNT=208 +PIPE_28_RELEVANT_B64=MTk6UE9MSUNZX1BBVEggPSBwYXRobGliLlBhdGgob3MuZW52aXJvbi5nZXQoIkhPTUVMQUJfQk9PVF9EUklMTF9QT0xJQ1kiLCIvZXRjL2hvbWVsYWItYmFja3VwL3JvdGF0aW5nLWJvb3QtZHJpbGwuanNvbiIpKQoyMDpTVEFURV9FWFBPUlRFUiA9IHBhdGhsaWIuUGF0aChvcy5lbnZpcm9uLmdldCgiSE9NRUxBQl9CT09UX0RSSUxMX1NUQVRFX0VYUE9SVEVSIiwiL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItcm90YXRpbmctYm9vdC1kcmlsbC1zdGF0ZS1leHBvcnQiKSkKMjE6U1RBVEVfUk9PVCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1kci1yb3RhdGlvbiIpCjIyOlNUQVRFX1BBVEggPSBTVEFURV9ST09UIC8gInN0YXRlLmpzb24iCjIzOlBST09GX1BBVEggPSBTVEFURV9ST09UIC8gImVzY3Jvdy1wcm9vZi5qc29uIgoyNDpFVklERU5DRV9ESVIgPSBTVEFURV9ST09UIC8gImV2aWRlbmNlIgoyNTpIRUFMVEhfUEFUSCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLWJvb3QtZHJpbGwuanNvbiIpCjI3OlJFR0lTVFJZX1BBVEggPSBwYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMjg6QVVESVRfUEFUSCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXVuaWZpZWQtYXVkaXQuanNvbiIpCjMwOlJDTE9ORSA9IHBhdGhsaWIuUGF0aCgiL3Vzci9iaW4vcmNsb25lIikKMzI6UU1SRVNUT1JFID0gcGF0aGxpYi5QYXRoKCIvdXNyL3NiaW4vcW1yZXN0b3JlIikKNDA6UUVNVV9BUkNISVZFID0gcmUuY29tcGlsZShyIl52emR1bXAtcWVtdS0oWzAtOV0rKS1bMC05XXs0fV9bMC05XXsyfV9bMC05XXsyfS1bMC05XXsyfV9bMC05XXsyfV9bMC05XXsyfVwudm1hXC56c3QkIikKNDE6TFhDX0FSQ0hJVkUgPSByZS5jb21waWxlKHIiXnZ6ZHVtcC1seGMtKFswLTldKyktWzAtOV17NH1fWzAtOV17Mn1fWzAtOV17Mn0tWzAtOV17Mn1fWzAtOV17Mn1fWzAtOV17Mn1cLnRhclwuenN0JCIpCjQyOkxPQ0tTID0gWwo0MzogICAgIi9ydW4vbG9jay9ob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwubG9jayIsCjQ0OiAgICAiL3J1bi9sb2NrL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYy5sb2NrIiwKNDU6ICAgICIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIiwKNDY6ICAgICIvcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jayIsCjQ3OiAgICAiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwKNDg6ICAgICIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siLAo0OTogICAgIi9ydW4vbG9jay9ob21lbGFiLW1haWxydS10cmFzaC1nYy5sb2NrIiwKODQ6ICAgICAgICBwYXRoLnBhcmVudC5ta2RpcihwYXJlbnRzPVRydWUsbW9kZT0wbzcwMCBpZiBzdHIocGF0aCkuc3RhcnRzd2l0aChzdHIoU1RBVEVfUk9PVCkpIGVsc2UgMG83NTUpCjk2OmRlZiBydW4oYXJndixjaGVjaz1UcnVlLGNhcHR1cmU9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSx1bWFza192YWx1ZT1Ob25lKToKMTA1OiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLCoqa3cpCjEwNzogICAgICAgIHJhaXNlIERyaWxsRXJyb3IoIkNPTU1BTkRfVElNRU9VVF8iK3BhdGhsaWIuUGF0aChzdHIoYXJndlswXSkpLm5hbWUudXBwZXIoKSw3MCkKMTA5OiAgICAgICAgcmFpc2UgRHJpbGxFcnJvcigiQ09NTUFORF9NSVNTSU5HXyIrcGF0aGxpYi5QYXRoKHN0cihhcmd2WzBdKSkubmFtZS51cHBlcigpLDY5KQoxMTE6ICAgICAgICBjb2RlPSJDT01NQU5EX0ZBSUxFRF8iK3BhdGhsaWIuUGF0aChzdHIoYXJndlswXSkpLm5hbWUudXBwZXIoKSsiXyIrc3RyKHAucmV0dXJuY29kZSkKMTE4OmRlZiBydW5fdHR5KGFyZ3YsY2hlY2s9VHJ1ZSxjYXB0dXJlPVRydWUsaW5wdXRfYnl0ZXM9Tm9uZSx0aW1lb3V0PU5vbmUsdW1hc2tfdmFsdWU9Tm9uZSk6CjExOTogICAgYXJncz1bc3RyKHgpIGZvciB4IGluIGFyZ3ZdCjIxMTpkZWYgcnVuX3RleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjIxMjogICAgcD1ydW4oYXJndixjaGVjaz1jaGVjayxjYXB0dXJlPVRydWUsdGltZW91dD10aW1lb3V0KQoyMTk6ICAgICAgInRhc2tfaWQiOiJiYWNrdXAtcm90YXRpbmctYm9vdC1kcmlsbC1lc2Nyb3ctZnJlc2huZXNzLXYxIiwKMjI4OiAgICAgICJjbG91ZF93cml0ZXNfYWxsb3dlZCI6RmFsc2UsCjIzMzogICAgaWYgcC5nZXQoImluaXRpYWxfcWVtdV92bWlkIikhPSIxODAiIG9yIHAuZ2V0KCJpbml0aWFsX2x4Y192bWlkIikhPSIxMTIiOiBkaWUoIlBPTElDWV9JTklUSUFMX1BBSVJfSU5WQUxJRCIsNjYpCjIzNjogICAgaWYgcC5nZXQoImNsb3VkX3BhaXJfc2VxdWVuY2UiKSE9W3sicWVtdSI6IkIiLCJseGMiOiJBIn0seyJxZW11IjoiQSIsImx4YyI6IkIifV06IGRpZSgiUE9MSUNZX0NMT1VEX1NFUVVFTkNFX0lOVkFMSUQiLDY2KQoyNDY6ICAgIHNlYWw9cGF0aGxpYi5QYXRoKHBbImVzY3Jvd19zZW1hbnRpY19wcm9vZl9zZWFsIl0pCjI0OTogICAgYXNzZXJ0X3JlZ3VsYXJfcm9vdChzZWFsKQoyNTA6ICAgIGlmIHNoYTI1Nl9maWxlKHNlYWwpIT1wWyJlc2Nyb3dfc2VtYW50aWNfcHJvb2Zfc2VhbF9zaGEyNTYiXTogZGllKCJFU0NST1dfUFJPT0ZfU0VBTF9TSEFfRFJJRlQiLDY2KQoyNTE6ICAgIHM9cmVhZF9qc29uKHNlYWwpCjI1MjogICAgaWYgbm90IChzLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBzLmdldCgiZnVsbF9zaXRlX2RyX3Byb3ZlbiIpIGlzIFRydWUgYW5kCjI1NzogICAgICAgICAgICBzLmdldCgicWVtdV9ib290X3Jlc3RvcmVfcHJvdmVuIikgaXMgVHJ1ZSBhbmQgcy5nZXQoImN0X2Jvb3RfcmVzdG9yZV9wcm92ZW4iKSBpcyBUcnVlKToKMjU4OiAgICAgICAgZGllKCJFU0NST1dfUFJPT0ZfU0VBTF9DT05URU5UX0lOVkFMSUQiLDY2KQoyNTk6ICAgIHByb29mX2F0PXBhcnNlX3V0YyhzLmdldCgic2VhbGVkX2F0X3V0YyIpKQoyNjU6ICAgIGlmIG5vdCAoYS5nZXQoImF1ZGl0X3N0YXR1cyIpPT0iT0siIGFuZCBhLmdldCgiYmFja3VwX3N0YXR1cyIpPT0iR1JFRU4iIGFuZAoyNjc6ICAgICAgICAgICAgYS5nZXQoImVzY3Jvd19zdGF0dXMiKT09Ik9LIiBhbmQgYS5nZXQoInFlbXVfYm9vdF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUgYW5kCjI2ODogICAgICAgICAgICBhLmdldCgiY3RfYm9vdF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUgYW5kIGEuZ2V0KCJmdWxsX3NpdGVfZHJfcHJvdmVuIikgaXMgVHJ1ZSk6CjI2OTogICAgICAgIGRpZSgiQ1VSUkVOVF9CQUNLVVBfQVVESVRfTk9UX0RSX1JFQURZIiw3NSkKMjcwOiAgICByZXR1cm4geyJjaXBoZXJ0ZXh0X3NoYV92ZXJpZmllZCI6VHJ1ZSwic2VtYW50aWNfcHJvb2Zfc2VhbF9zaGFfdmVyaWZpZWQiOlRydWUsCjI3MTogICAgICAgICAgICAic2VtYW50aWNfcHJvb2ZfYXRfdXRjIjpzWyJzZWFsZWRfYXRfdXRjIl0sInNlbWFudGljX3Byb29mX2FnZV9kYXlzIjpyb3VuZChhZ2VfZGF5cyw0KSwKMjc3OiAgICBpZiByLmdldCgic2NoZW1hIikhPSJob21lbGFiLWJhY2t1cC10YXJnZXQtcmVnaXN0cnktdjEiOiBkaWUoIlJFR0lTVFJZX0lOVkFMSUQiLDY2KQoyNzk6ICAgIGZvciB4IGluIHIuZ2V0KCJ0YXJnZXRzIixbXSk6CjI4MTogICAgICAgICAgICB2bWlkPXN0cih4LmdldCgiaWQiLCIiKSkKMjgzOiAgICAgICAgICAgIGlmIG5vdCB2bWlkLmlzZGlnaXQoKSBvciBvd25lciBub3QgaW4gKCJwdmUwMSIsInB2ZTAyIiwicHZlMDMiKSBvciB2bWlkIGluIG91dDogZGllKCJSRUdJU1RSWV9WTV9JTlZBTElEIiw2NikKMjg0OiAgICAgICAgICAgIG91dFt2bWlkXT17ImxvZ2ljYWxfaWQiOnguZ2V0KCJsb2dpY2FsX2lkIiksIm93bmVyIjpvd25lcn0KMjg2OiAgICBpZiBub3QgcmVxdWlyZWQuaXNzdWJzZXQob3V0KTogZGllKCJSRUdJU1RSWV9ST1RBVElPTl9UQVJHRVRfTUlTU0lORyIsNjYpCjI5NzpkZWYgbm9kZV9ydW4ob3duZXIsYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSxpbnB1dF9ieXRlcz1Ob25lKToKMjk5OiAgICAgICAgcmV0dXJuIHJ1bihhcmd2LGNoZWNrPWNoZWNrLGNhcHR1cmU9VHJ1ZSx0aW1lb3V0PXRpbWVvdXQsaW5wdXRfYnl0ZXM9aW5wdXRfYnl0ZXMpCjMwMjogICAgY21kPXNzaF9iYXNlKHdpdGhfc3RkaW49aW5wdXRfYnl0ZXMgaXMgbm90IE5vbmUpK1tob3N0XStbc3RyKHgpIGZvciB4IGluIGFyZ3ZdCjMwNTpkZWYgZXhwb3J0X3N0YXRlKHAscmVnLHZtaWQsc3RhdGVfZXhwb3J0ZXI9U1RBVEVfRVhQT1JURVIpOgozMDY6ICAgIGl0ZW09cmVnW3ZtaWRdOyBsb2dpY2FsPWl0ZW1bImxvZ2ljYWxfaWQiXTsgb3duZXI9aXRlbVsib3duZXIiXQozMDc6ICAgIGlmIGxvZ2ljYWwhPWYidm17dm1pZH0iOiBkaWUoIlJFR0lTVFJZX0xPR0lDQUxfSU5WQUxJRF8iK3ZtaWQsNjYpCjMwODogICAgYXNzZXJ0X3JlZ3VsYXJfcm9vdChwYXRobGliLlBhdGgoc3RhdGVfZXhwb3J0ZXIpKQozMTA6ICAgICAgICBwcj1ydW4oW1BZVEhPTiwiLUIiLHN0YXRlX2V4cG9ydGVyLHZtaWQsbG9naWNhbF0sdGltZW91dD0zMCkKMzEyOiAgICAgICAgZGF0YT1wYXRobGliLlBhdGgoc3RhdGVfZXhwb3J0ZXIpLnJlYWRfYnl0ZXMoKQozMTM6ICAgICAgICBwcj1ub2RlX3J1bihvd25lcixbUFlUSE9OLCItQiIsIi0iLHZtaWQsbG9naWNhbF0sdGltZW91dD0zMCxpbnB1dF9ieXRlcz1kYXRhKQozMTQ6ICAgIGlmIHByLnJldHVybmNvZGUhPTA6IGRpZSgiU1RBVEVfRVhQT1JUX0ZBSUxFRF8iK3ZtaWQsNjUpCjMxNjogICAgZXhjZXB0IEV4Y2VwdGlvbjogZGllKCJTVEFURV9FWFBPUlRfSlNPTl9JTlZBTElEXyIrdm1pZCw2NikKMzE3OiAgICBpZiBub3QgKG9iai5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1ib290LWRyaWxsLXN0YXRlLWV4cG9ydC12MSIgYW5kIG9iai5nZXQoInZtaWQiKT09dm1pZCBhbmQKMzE4OiAgICAgICAgICAgIG9iai5nZXQoImxvZ2ljYWxfaWQiKT09bG9naWNhbCBhbmQgb2JqLmdldCgic3RyaWN0X3NlYWxlZF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUpOgozMTk6ICAgICAgICBkaWUoIlNUQVRFX0VYUE9SVF9DT05URU5UX0lOVkFMSURfIit2bWlkLDY2KQozMjk6ICAgICAgICBpZiAidm1pZCIgaW4geDoKMzMwOiAgICAgICAgICAgIG91dFtzdHIoeFsidm1pZCJdKV09eAozMzM6ZGVmIHFlbXVfYWdlbnRfb2socmVnLHZtaWQpOgozMzQ6ICAgIG93bmVyPXJlZ1t2bWlkXVsib3duZXIiXQozMzU6ICAgIHM9bm9kZV9ydW4ob3duZXIsW1FNLCJzdGF0dXMiLHZtaWRdLGNoZWNrPUZhbHNlLHRpbWVvdXQ9MjApCjMzNzogICAgcD1ub2RlX3J1bihvd25lcixbUU0sImd1ZXN0IiwiY21kIix2bWlkLCJwaW5nIl0sY2hlY2s9RmFsc2UsdGltZW91dD0yMCkKMzQwOmRlZiBseGNfcnVubmluZyhyZWcsdm1pZCk6CjM0MTogICAgb3duZXI9cmVnW3ZtaWRdWyJvd25lciJdCjM0MjogICAgcD1ub2RlX3J1bihvd25lcixbUENULCJzdGF0dXMiLHZtaWRdLGNoZWNrPUZhbHNlLHRpbWVvdXQ9MjApCjM1MDpkZWYgY2hvb3NlX3BhaXIocCxyZWcsbW9kZSxzdGF0ZSk6CjM1MjogICAgICAgIHE9cFsiaW5pdGlhbF9xZW11X3ZtaWQiXTsgbD1wWyJpbml0aWFsX2x4Y192bWlkIl0KMzU4OiAgICBmb3IgeCBpbiByb3RhdGVfYWZ0ZXIocFsicWVtdV9yb3RhdGlvbiJdLHN0YXRlLmdldCgicWVtdV9jdXJzb3IiKSk6CjM2MzogICAgZm9yIHggaW4gcm90YXRlX2FmdGVyKHBbImx4Y19yb3RhdGlvbiJdLHN0YXRlLmdldCgibHhjX2N1cnNvciIpKToKMzY4OmRlZiByY2xvbmVfY2F0KHJlbW90ZSx0aW1lb3V0PTYwKToKMzY5OiAgICBwPXJ1bihbUkNMT05FLCJjYXQiLHJlbW90ZV0sY2hlY2s9RmFsc2UsY2FwdHVyZT1UcnVlLHRpbWVvdXQ9dGltZW91dCkKMzcwOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IGRpZSgiUkNMT05FX0NBVF9GQUlMRUQiLDc0KQozNzM6ZGVmIHZhbGlkYXRlX3JlbW90ZV9tZXRhZGF0YShpbmZvLGNsb3VkKToKMzc0OiAgICBiYXNlPWluZm9bInJlbW90ZV9hX2Jhc2UiXSBpZiBjbG91ZD09IkEiIGVsc2UgaW5mb1sicmVtb3RlX2JfYmFzZSJdCjM3NTogICAgc2VhbF9ieXRlcz1yY2xvbmVfY2F0KGJhc2UucnN0cmlwKCIvIikrIi9zZWFsLmpzb24iLDYwKQozNzY6ICAgIG1hbmlmZXN0X2J5dGVzPXJjbG9uZV9jYXQoYmFzZS5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiIsNjApCjM3NzogICAgdHJ5OiBzZWFsPWpzb24ubG9hZHMoc2VhbF9ieXRlcykKMzc4OiAgICBleGNlcHQgRXhjZXB0aW9uOiBkaWUoIlJFTU9URV9TRUFMX0pTT05fSU5WQUxJRF8iK2luZm9bInZtaWQiXSw2NikKMzgwOiAgICAgICJzY2hlbWEiOiJob21lbGFiLWNsb3VkLXF1b3J1bS1zZWFsLXYxIiwic3RhdHVzIjoiU0VBTEVEIiwibG9naWNhbF9pZCI6aW5mb1sibG9naWNhbF9pZCJdLAozODE6ICAgICAgImdlbmVyYXRpb24iOmluZm9bImdlbmVyYXRpb24iXSwiYXJjaGl2ZV9uYW1lIjppbmZvWyJwYXlsb2FkX25hbWUiXSwKMzgzOiAgICAgICJwYXJ0X2NvdW50IjppbmZvWyJwYXJ0X2NvdW50Il0sInBhcnRzX21hbmlmZXN0X3NoYTI1NiI6aW5mb1sicGFydHNfbWFuaWZlc3Rfc2hhMjU2Il0sCjM4NDogICAgICAiY2xvdWRfcXVvcnVtIjoyLCJsb2NhbF9jbGVhbnVwIjoiT0siLCJsb2NhbF9wYXlsb2FkX3ByZXNlbnQiOkZhbHNlCjM4NzogICAgICAgIGlmIHNlYWwuZ2V0KGspIT12OiBkaWUoIlJFTU9URV9TRUFMX01JU01BVENIXyIraW5mb1sidm1pZCJdKyJfIitrLDY2KQozODg6ICAgIGlmIGhhc2hsaWIuc2hhMjU2KG1hbmlmZXN0X2J5dGVzKS5oZXhkaWdlc3QoKSE9aW5mb1sicGFydHNfbWFuaWZlc3Rfc2hhMjU2Il06IGRpZSgiUkVNT1RFX01BTklGRVNUX1NIQV9NSVNNQVRDSF8iK2luZm9bInZtaWQiXSw2NikKMzg5OiAgICByb3dzPXBhcnNlX21hbmlmZXN0KG1hbmlmZXN0X2J5dGVzLGluZm9bInBhcnRfY291bnQiXSxpbmZvWyJhcmNoaXZlX3NpemVfYnl0ZXMiXSkKMzkwOiAgICByZXR1cm4gYmFzZSxyb3dzLG1hbmlmZXN0X2J5dGVzCjM5MjpkZWYgcGFyc2VfbWFuaWZlc3QocmF3LGV4cGVjdGVkX2NvdW50LGV4cGVjdGVkX3RvdGFsKToKMzk2OiAgICBleGNlcHQgRXhjZXB0aW9uOiBkaWUoIk1BTklGRVNUX1RFWFRfSU5WQUxJRCIsNjYpCjM5OTogICAgICAgIGlmIGxlbihmKSE9NDogZGllKCJNQU5JRkVTVF9ST1dfSU5WQUxJRCIsNjYpCjQwMjogICAgICAgIGlmIGlkeCE9ZiJ7aTowOGR9IiBvciBtIGlzIE5vbmUgb3IgbS5ncm91cCgxKSE9aWR4OiBkaWUoIk1BTklGRVNUX0lOREVYX0lOVkFMSUQiLDY2KQo0MDM6ICAgICAgICBpZiBub3Qgc2l6ZV9zLmlzZGlnaXQoKSBvciBpbnQoc2l6ZV9zKTw9MCBvciBpbnQoc2l6ZV9zKT41MzY4NzA5MTI6IGRpZSgiTUFOSUZFU1RfU0laRV9JTlZBTElEIiw2NikKNDA0OiAgICAgICAgaWYgbm90IEhFWDY0LmZ1bGxtYXRjaChwc2hhKTogZGllKCJNQU5JRkVTVF9QQVJUX1NIQV9JTlZBTElEIiw2NikKNDA2OiAgICBpZiBsZW4ocm93cykhPWV4cGVjdGVkX2NvdW50IG9yIHRvdGFsIT1leHBlY3RlZF90b3RhbDogZGllKCJNQU5JRkVTVF9UT1RBTF9JTlZBTElEIiw2NikKNDE5OiAgICBmcmVlPXNodXRpbC5kaXNrX3VzYWdlKHBbInN0YWdlX3Jvb3QiXSkuZnJlZSBpZiBwYXRobGliLlBhdGgocFsic3RhZ2Vfcm9vdCJdKS5leGlzdHMoKSBlbHNlIHNodXRpbC5kaXNrX3VzYWdlKCIvbW50L3N0YWdpbmciKS5mcmVlCjQyODpkZWYgcHJlY2hlY2socCxzdGF0ZV9leHBvcnRlcj1TVEFURV9FWFBPUlRFUixtb2RlPSJpbml0aWFsIik6CjQyOTogICAgZXNjPXZlcmlmeV9lc2Nyb3cocCk7IHJlZz1yZWdpc3RyeShwKTsgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNDMwOiAgICBxLGwsc2tpcHBlZD1jaG9vc2VfcGFpcihwLHJlZyxtb2RlLHN0YXRlKQo0MzE6ICAgIHFpPWV4cG9ydF9zdGF0ZShwLHJlZyxxLHN0YXRlX2V4cG9ydGVyKTsgbGk9ZXhwb3J0X3N0YXRlKHAscmVnLGwsc3RhdGVfZXhwb3J0ZXIpCjQzMjogICAgcGFpcj1wWyJjbG91ZF9wYWlyX3NlcXVlbmNlIl1bc3RhdGUuZ2V0KCJzZXF1ZW5jZSIsMCklbGVuKHBbImNsb3VkX3BhaXJfc2VxdWVuY2UiXSldCjQzMzogICAgcWIscXIsXz12YWxpZGF0ZV9yZW1vdGVfbWV0YWRhdGEocWkscGFpclsicWVtdSJdKQo0MzQ6ICAgIGxiLGxyLF89dmFsaWRhdGVfcmVtb3RlX21ldGFkYXRhKGxpLHBhaXJbImx4YyJdKQo0MzY6ICAgIHJldHVybiB7InFlbXVfdm1pZCI6cSwibHhjX3ZtaWQiOmwsInFlbXVfY2xvdWQiOnBhaXJbInFlbXUiXSwibHhjX2Nsb3VkIjpwYWlyWyJseGMiXSwKNDM3OiAgICAgICAgICAgICJxZW11X2dlbmVyYXRpb24iOnFpWyJnZW5lcmF0aW9uIl0sImx4Y19nZW5lcmF0aW9uIjpsaVsiZ2VuZXJhdGlvbiJdLAo0NDI6ZGVmIGxvYWRfc3RhdGVfZGVmYXVsdCgpOgo0NDM6ICAgIGlmIG5vdCBTVEFURV9QQVRILmV4aXN0cygpOgo0NDQ6ICAgICAgICByZXR1cm4geyJzY2hlbWEiOiJob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwtc3RhdGUtdjEiLCJzZXF1ZW5jZSI6MCwicWVtdV9jdXJzb3IiOk5vbmUsImx4Y19jdXJzb3IiOk5vbmUsImxhc3Rfc3VjY2Vzc191dGMiOk5vbmUsImxhc3RfZXZpZGVuY2UiOk5vbmV9CjQ0NTogICAgcz1yZWFkX2pzb24oU1RBVEVfUEFUSCkKNDQ2OiAgICBpZiBzLmdldCgic2NoZW1hIikhPSJob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwtc3RhdGUtdjEiIG9yIG5vdCBpc2luc3RhbmNlKHMuZ2V0KCJzZXF1ZW5jZSIpLGludCkgb3Igc1sic2VxdWVuY2UiXTwwOgo0NDc6ICAgICAgICBkaWUoIlJPVEFUSU9OX1NUQVRFX0lOVkFMSUQiLDY2KQo0NTA6Y2xhc3MgTG9ja3M6CjQ1OTogICAgICAgICAgICAgICAgZm9yIHggaW4gTE9DS1M6CjQ2MzogICAgICAgICAgICAgICAgICAgICAgICBmY250bC5mbG9jayhmLmZpbGVubygpLGZjbnRsLkxPQ0tfRVh8ZmNudGwuTE9DS19OQikKNDY0OiAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJsb2NraW5nSU9FcnJvcjoKNDcyOiAgICAgICAgICAgICAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjQ3NDogICAgICAgICAgICBpZiB0aW1lLnRpbWUoKT49ZGVhZGxpbmU6IHJhaXNlIERyaWxsRXJyb3IoIkJBQ0tVUF9MT0NLX0JVU1kiLDc1KQo0Nzg6ICAgICAgICAgICAgdHJ5OiBmY250bC5mbG9jayhmLmZpbGVubygpLGZjbnRsLkxPQ0tfVU4pOyBmLmNsb3NlKCkKNDkxOmRlZiBjb25maWdfcGF0aChraW5kLHZtaWQpOgo0OTI6ICAgIHJldHVybiBwYXRobGliLlBhdGgoIi9ldGMvcHZlL3FlbXUtc2VydmVyIiBpZiBraW5kPT0icWVtdSIgZWxzZSAiL2V0Yy9wdmUvbHhjIikvZiJ7dm1pZH0uY29uZiIKNDk0OmRlZiBjbGVhbnVwX29uZShraW5kLHZtaWQsY3JlYXRlZF9lcG9jaCk6CjQ5NTogICAgcD1jb25maWdfcGF0aChraW5kLHZtaWQpCjQ5OTogICAgICAgIGlmIHN0LnN0X2N0aW1lKzUgPCBjcmVhdGVkX2Vwb2NoOiBkaWUoIlRFTVBfQ09ORklHX1BSRURBVEVTX0FDVElWRV9NQVJLRVJfIitzdHIodm1pZCksNjYpCjUwOTogICAgICAgIGxvY2tfbWF0Y2g9cmUuc2VhcmNoKHIiKD9tKV5sb2NrOlxzKihcUyspXHMqJCIsdHh0KQo1MTA6ICAgICAgICBpZiBsb2NrX21hdGNoOgo1MTE6ICAgICAgICAgICAgbG9ja19uYW1lPWxvY2tfbWF0Y2guZ3JvdXAoMSkKNTEyOiAgICAgICAgICAgIGlmIGxvY2tfbmFtZT09ImNyZWF0ZSI6CjUxMzogICAgICAgICAgICAgICAgdT1ydW5fdHR5KFtjbWQsInVubG9jayIsc3RyKHZtaWQpXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTMwKQo1MTU6ICAgICAgICAgICAgICAgICAgICBwcmludChmIlRFTVBfVU5MT0NLX0VSUk9SfGtpbmQ9e2tpbmR9fHZtaWQ9e3ZtaWR9fGxvY2s9Y3JlYXRlfHJjPXt1LnJldHVybmNvZGV9IixmaWxlPXN5cy5zdGRlcnIpCjUxODogICAgICAgICAgICAgICAgICAgICAgICBhZnRlcl91bmxvY2s9cC5yZWFkX3RleHQoZXJyb3JzPSJyZXBsYWNlIikKNTIwOiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyX3VubG9jaz0iIgo1MjE6ICAgICAgICAgICAgICAgICAgICBpZiByZS5zZWFyY2gociIoP20pXmxvY2s6XHMqY3JlYXRlXHMqJCIsYWZ0ZXJfdW5sb2NrKToKNTI1OiAgICAgICAgICAgICAgICBwcmludChmIlRFTVBfQ0xFQU5VUF9MT0NLX0JMT0NLRUR8a2luZD17a2luZH18dm1pZD17dm1pZH18bG9jaz17bG9ja19uYW1lfSIsZmlsZT1zeXMuc3RkZXJyKQo1Mjc6ICAgICAgICBzdGF0dXM9cnVuKFtjbWQsInN0YXR1cyIsc3RyKHZtaWQpXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTIwKQo1Mjk6ICAgICAgICAgICAgc3RvcF9hcmd2PVtjbWQsInN0b3AiLHN0cih2bWlkKV0KNTMwOiAgICAgICAgICAgIGlmIGtpbmQ9PSJxZW11Ijogc3RvcF9hcmd2Kz1bIi0tc2tpcGxvY2siLCIxIl0KNTMxOiAgICAgICAgICAgIHJ1bl90dHkoc3RvcF9hcmd2LGNoZWNrPUZhbHNlLHRpbWVvdXQ9OTApCjUzMjogICAgICAgIGRlc3Ryb3lfYXJndj1bY21kLCJkZXN0cm95IixzdHIodm1pZCksIi0tcHVyZ2UiLCIxIl0KNTMzOiAgICAgICAgaWYga2luZD09InFlbXUiOiBkZXN0cm95X2FyZ3YrPVsiLS1kZXN0cm95LXVucmVmZXJlbmNlZC1kaXNrcyIsIjEiLCItLXNraXBsb2NrIiwiMSJdCjUzNDogICAgICAgIGRlc3Ryb3llZD1ydW5fdHR5KGRlc3Ryb3lfYXJndixjaGVjaz1GYWxzZSx0aW1lb3V0PTE4MCkKNTM3OiAgICAgICAgICAgIHByaW50KGYiVEVNUF9ERVNUUk9ZX0VSUk9SfGtpbmQ9e2tpbmR9fHZtaWQ9e3ZtaWR9fHJjPXtkZXN0cm95ZWQucmV0dXJuY29kZX18ZGV0YWlsPXtkZXRhaWx9IixmaWxlPXN5cy5zdGRlcnIpCjU2MzpkZWYgZmV0Y2hfYXJjaGl2ZShpbmZvLGNsb3VkLHdvcmspOgo1NjQ6ICAgIGJhc2Uscm93cyxtYW5pZmVzdD12YWxpZGF0ZV9yZW1vdGVfbWV0YWRhdGEoaW5mbyxjbG91ZCkKNTY2OiAgICBpZiBub3QgKFFFTVVfQVJDSElWRS5mdWxsbWF0Y2gobmFtZSkgb3IgTFhDX0FSQ0hJVkUuZnVsbG1hdGNoKG5hbWUpKTogZGllKCJBUkNISVZFX05BTUVfSU5WQUxJRF8iK2luZm9bInZtaWQiXSw2NikKNTc0OiAgICAgICAgICAgICAgICAgICAgcHJvYz1zdWJwcm9jZXNzLnJ1bihbc3RyKFJDTE9ORSksImNhdCIsYmFzZS5yc3RyaXAoIi8iKSsiL3BheWxvYWQucGFydHMvIitwbmFtZV0sc3Rkb3V0PXBmLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD05MDApCjU3NjogICAgICAgICAgICAgICAgICAgIGRpZSgiUEFSVF9SRUFEX1RJTUVPVVRfIitpbmZvWyJ2bWlkIl0rIl8iK2lkeCw3NCkKNTc3OiAgICAgICAgICAgIGlmIHByb2MucmV0dXJuY29kZSE9MDogZGllKCJQQVJUX1JFQURfRkFJTEVEXyIraW5mb1sidm1pZCJdKyJfIitpZHgsNzQpCjU3ODogICAgICAgICAgICBpZiBwYXJ0LnN0YXQoKS5zdF9zaXplIT1zaXplIG9yIHNoYTI1Nl9maWxlKHBhcnQpIT1wc2hhOiBkaWUoIlBBUlRfVkVSSUZZX0ZBSUxFRF8iK2luZm9bInZtaWQiXSsiXyIraWR4LDcwKQo1ODM6ICAgIGlmIHRvdGFsIT1pbmZvWyJhcmNoaXZlX3NpemVfYnl0ZXMiXSBvciBoLmhleGRpZ2VzdCgpIT1pbmZvWyJhcmNoaXZlX3NoYTI1NiJdOiBkaWUoIkFSQ0hJVkVfVkVSSUZZX0ZBSUxFRF8iK2luZm9bInZtaWQiXSw3MCkKNTg2OiAgICAjIHN1YnNlcXVlbnQgcW1yZXN0b3JlL3BjdCByZXN0b3JlIGlzIHRoZSBhdXRob3JpdGF0aXZlIFByb3htb3ggc3RydWN0dXJhbCBwcm9vZi4KNjE5OiAgICBwcj1ydW5fdHR5KFtRTVJFU1RPUkUsYXJjaGl2ZSxzdHIodGVtcGlkKSwiLS1zdG9yYWdlIiwibG9jYWwtbHZtIiwiLS11bmlxdWUiLCIxIl0sY2hlY2s9RmFsc2UsdGltZW91dD0xODAwKQo2MjI6ICAgICAgICBwcmludChmIlFNUkVTVE9SRV9FUlJPUnx2bWlkPXt0ZW1waWR9fHJjPXtwci5yZXR1cm5jb2RlfXxzdGRlcnJfc2hhMjU2PXtoYXNobGliLnNoYTI1NihlcnIpLmhleGRpZ2VzdCgpfXxzdGRlcnJfYnl0ZXM9e2xlbihlcnIpfSIsZmlsZT1zeXMuc3RkZXJyKQo2MjM6ICAgICAgICBkaWUoIlFNUkVTVE9SRV9GQUlMRURfIitzdHIocHIucmV0dXJuY29kZSksNzApCjYzNDogICAgcHI9cnVuX3R0eShbUENULCJyZXN0b3JlIixzdHIodGVtcGlkKSxhcmNoaXZlLCItLXN0b3JhZ2UiLCJsb2NhbC1sdm0iXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE4MDAsdW1hc2tfdmFsdWU9MG8wMjIpCjYzNzogICAgICAgIHByaW50KGYiUENUX1JFU1RPUkVfRVJST1J8dm1pZD17dGVtcGlkfXxyYz17cHIucmV0dXJuY29kZX18c3RkZXJyX3NoYTI1Nj17aGFzaGxpYi5zaGEyNTYoZXJyKS5oZXhkaWdlc3QoKX18c3RkZXJyX2J5dGVzPXtsZW4oZXJyKX0iLGZpbGU9c3lzLnN0ZGVycikKNjM4OiAgICAgICAgZGllKCJQQ1RfUkVTVE9SRV9GQUlMRURfIitzdHIocHIucmV0dXJuY29kZSksNzApCjY0OTogICAgb2JqPXsic2NoZW1hIjoiaG9tZWxhYi1iYWNrdXAtYm9vdC1kcmlsbC1oZWFsdGgtdjEiLCJzdGF0dXMiOiJERUZFUlJFRCIsInJlYXNvbiI6Y29kZSwidXBkYXRlZF9hdF91dGMiOmlzb19ub3coKSwiZHJpbGxfZXhlY3V0ZWQiOkZhbHNlfQo2NTE6ICAgIHByaW50KGYiQk9PVF9EUklMTF9TQ0hFRFVMRUQ9REVGRVJSRUR8cmVhc29uPXtjb2RlfSIpCjY2ODogICAgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNjY5OiAgICB3aXRoIExvY2tzKGludChwWyJpbml0aWFsX2xvY2tfd2FpdF9zZWNvbmRzIl0pKToKNjcxOiAgICAgICAgcSxsLHNraXBwZWQ9Y2hvb3NlX3BhaXIocCxyZWcsImluaXRpYWwiLHN0YXRlKQo2NzI6ICAgICAgICBxaW5mbz1leHBvcnRfc3RhdGUocCxyZWcscSk7IGxpbmZvPWV4cG9ydF9zdGF0ZShwLHJlZyxsKQo2NzM6ICAgICAgICBwYWlyPXBbImNsb3VkX3BhaXJfc2VxdWVuY2UiXVtzdGF0ZVsic2VxdWVuY2UiXSVsZW4ocFsiY2xvdWRfcGFpcl9zZXF1ZW5jZSJdKV0KNjgxOiAgICAgICAgICAgIHByaW50KGYiQk9PVF9EUklMTF9BUkNISVZFX1BST0JFPU9LfHFlbXU9e3F9fHFlbXVfY2xvdWQ9e3BhaXJbJ3FlbXUnXX18cWVtdV9uYW1lPXtxYS5uYW1lfXxseGM9e2x9fGx4Y19jbG91ZD17cGFpclsnbHhjJ119fGx4Y19uYW1lPXtsYS5uYW1lfXxhcmNoaXZlX2ludGVncml0eT1TSEFfQU5EX1pTVERfUFJPVkVOfGNsb3VkX3dyaXRlcz1OTyIpCjY4NzogICAgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNjg4OiAgICB3YWl0PWludChwWyJpbml0aWFsX2xvY2tfd2FpdF9zZWNvbmRzIl0gaWYgbW9kZT09ImluaXRpYWwiIGVsc2UgcFsic2NoZWR1bGVkX2xvY2tfd2FpdF9zZWNvbmRzIl0pCjY5MDogICAgICAgIHdpdGggTG9ja3Mod2FpdCk6CjY5MjogICAgICAgICAgICBxLGwsc2tpcHBlZD1jaG9vc2VfcGFpcihwLHJlZyxtb2RlLHN0YXRlKQo2OTM6ICAgICAgICAgICAgcWluZm89ZXhwb3J0X3N0YXRlKHAscmVnLHEpOyBsaW5mbz1leHBvcnRfc3RhdGUocCxyZWcsbCkKNjk0OiAgICAgICAgICAgIHBhaXI9cFsiY2xvdWRfcGFpcl9zZXF1ZW5jZSJdW3N0YXRlWyJzZXF1ZW5jZSJdJWxlbihwWyJjbG91ZF9wYWlyX3NlcXVlbmNlIl0pXQo3MTY6ICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJQUk9EVUNUSU9OX0dVRVNUX1NUQVRFX0NIQU5HRURfIitzcmMsNzApCjcxOTogICAgICAgICAgICAgICAgICAic2VxdWVuY2UiOnN0YXRlWyJzZXF1ZW5jZSJdKzEsImNvbXBsZXRlZF9hdF91dGMiOmlzb19ub3coKSwKNzIxOiAgICAgICAgICAgICAgICAgICJxZW11Ijp7InNvdXJjZV92bWlkIjpxLCJvd25lciI6cmVnW3FdWyJvd25lciJdLCJnZW5lcmF0aW9uIjpxaW5mb1siZ2VuZXJhdGlvbiJdLCJhcmNoaXZlX25hbWUiOnFpbmZvWyJwYXlsb2FkX25hbWUiXSwKNzIyOiAgICAgICAgICAgICAgICAgICAgICAgICAgImFyY2hpdmVfc2hhMjU2IjpxaW5mb1siYXJjaGl2ZV9zaGEyNTYiXSwiY2xvdWRfc291cmNlIjpwYWlyWyJxZW11Il0sInRlbXBfdm1pZCI6cWlkLAo3MjQ6ICAgICAgICAgICAgICAgICAgImx4YyI6eyJzb3VyY2Vfdm1pZCI6bCwib3duZXIiOnJlZ1tsXVsib3duZXIiXSwiZ2VuZXJhdGlvbiI6bGluZm9bImdlbmVyYXRpb24iXSwiYXJjaGl2ZV9uYW1lIjpsaW5mb1sicGF5bG9hZF9uYW1lIl0sCjcyNTogICAgICAgICAgICAgICAgICAgICAgICAgImFyY2hpdmVfc2hhMjU2IjpsaW5mb1siYXJjaGl2ZV9zaGEyNTYiXSwiY2xvdWRfc291cmNlIjpwYWlyWyJseGMiXSwidGVtcF92bWlkIjpsaWQsCjcyNzogICAgICAgICAgICAgICAgICAicWVtdV9za2lwcGVkX2luZWxpZ2libGUiOnNraXBwZWQsImNsb3VkX3dyaXRlcyI6RmFsc2UsImNsb3VkX2RlbGV0ZXMiOkZhbHNlLAo3Mjg6ICAgICAgICAgICAgICAgICAgInByb2R1Y3Rpb25fZ3Vlc3Rfc3RhdGVfdW5jaGFuZ2VkIjpUcnVlLCJ0ZW1wb3JhcnlfZ3Vlc3RfcmVzaWR1ZSI6RmFsc2UKNzMzOiAgICAgICAgICAgICAgICBuZXdzdGF0ZT17InNjaGVtYSI6ImhvbWVsYWItcm90YXRpbmctYm9vdC1kcmlsbC1zdGF0ZS12MSIsInNlcXVlbmNlIjpzdGF0ZVsic2VxdWVuY2UiXSsxLAo3MzY6ICAgICAgICAgICAgICAgIGF0b21pY19qc29uKFNUQVRFX1BBVEgsbmV3c3RhdGUsMG82MDApCjczNzogICAgICAgICAgICAgICAgaGVhbHRoPXsic2NoZW1hIjoiaG9tZWxhYi1iYWNrdXAtYm9vdC1kcmlsbC1oZWFsdGgtdjEiLCJzdGF0dXMiOiJPSyIsInVwZGF0ZWRfYXRfdXRjIjpldmlkZW5jZVsiY29tcGxldGVkX2F0X3V0YyJdLAo3Mzg6ICAgICAgICAgICAgICAgICAgICAgICAgImRyaWxsX2V4ZWN1dGVkIjpUcnVlLCJzZXF1ZW5jZSI6bmV3c3RhdGVbInNlcXVlbmNlIl0sInFlbXVfdm1pZCI6cSwibHhjX3ZtaWQiOmwsCjc0MjogICAgICAgICAgICAgICAgcHJpbnQoZiJCT09UX0RSSUxMX0VYRUNVVEU9T0t8c2VxdWVuY2U9e25ld3N0YXRlWydzZXF1ZW5jZSddfXxxZW11PXtxfXxxZW11X2Nsb3VkPXtwYWlyWydxZW11J119fGx4Yz17bH18bHhjX2Nsb3VkPXtwYWlyWydseGMnXX18ZXNjcm93PUZSRVNIfHRlbXBfcmVzaWR1ZT1OT3xjbG91ZF93cml0ZXM9Tk8iKQo3NDk6ICAgICAgICBpZiBtb2RlPT0ic2NoZWR1bGVkIiBhbmQgZS5jb2RlIGluICgiQkFDS1VQX0xPQ0tfQlVTWSIsIkVTQ1JPV19TRU1BTlRJQ19QUk9PRl9TVEFMRSIsIkNVUlJFTlRfQkFDS1VQX0FVRElUX05PVF9EUl9SRUFEWSIsIk5PX1FFTVVfR1VFU1RfQUdFTlRfRUxJR0lCTEUiLCJOT19MWENfUlVOTklOR19FTElHSUJMRSIsIlNUQUdFX0NBUEFDSVRZX0lOU1VGRklDSUVOVCIsIkxPQ0FMX0xWTV9DQVBBQ0lUWV9JTlNVRkZJQ0lFTlQiKToKNzU1OiAgICBzPWxvYWRfc3RhdGVfZGVmYXVsdCgpCjc1NjogICAgaWYgcy5nZXQoInNlcXVlbmNlIiwwKTwxIG9yIG5vdCBzLmdldCgibGFzdF9ldmlkZW5jZSIpIG9yIG5vdCBIRVg2NC5mdWxsbWF0Y2goc3RyKHMuZ2V0KCJsYXN0X2V2aWRlbmNlX3NoYTI1NiIsIiIpKSk6IGRpZSgiTEFTVF9TVEFURV9JTlZBTElEIiw2NikKNzY3OiAgICAgICAgICAgIGUuZ2V0KCJjbG91ZF93cml0ZXMiKSBpcyBGYWxzZSBhbmQgZS5nZXQoImNsb3VkX2RlbGV0ZXMiKSBpcyBGYWxzZSBhbmQKNzY4OiAgICAgICAgICAgIGUuZ2V0KCJwcm9kdWN0aW9uX2d1ZXN0X3N0YXRlX3VuY2hhbmdlZCIpIGlzIFRydWUgYW5kIGUuZ2V0KCJ0ZW1wb3JhcnlfZ3Vlc3RfcmVzaWR1ZSIpIGlzIEZhbHNlKToKNzcyOiAgICBxaWQ9c3RyKGVbInFlbXUiXVsidGVtcF92bWlkIl0pOyBsaWQ9c3RyKGVbImx4YyJdWyJ0ZW1wX3ZtaWQiXSkKNzc1OiAgICBpZiBub3QgKGguZ2V0KCJzY2hlbWEiKT09ImhvbWVsYWItYmFja3VwLWJvb3QtZHJpbGwtaGVhbHRoLXYxIiBhbmQgaC5nZXQoInN0YXR1cyIpPT0iT0siIGFuZCBoLmdldCgibGFzdF9ldmlkZW5jZV9zaGEyNTYiKT09c1sibGFzdF9ldmlkZW5jZV9zaGEyNTYiXSk6Cjc4NDogICAgYWN0aW9uPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICIiCjc4NzogICAgICAgIHg9cHJlY2hlY2socCxTVEFURV9FWFBPUlRFUiwiaW5pdGlhbCIpCjc4ODogICAgICAgIHByaW50KGYiQk9PVF9EUklMTF9QUkVDSEVDSz1PS3xxZW11PXt4WydxZW11X3ZtaWQnXX18cWVtdV9jbG91ZD17eFsncWVtdV9jbG91ZCddfXxseGM9e3hbJ2x4Y192bWlkJ119fGx4Y19jbG91ZD17eFsnbHhjX2Nsb3VkJ119fHFlbXVfYnl0ZXM9e3hbJ3FlbXVfYXJjaGl2ZV9ieXRlcyddfXxseGNfYnl0ZXM9e3hbJ2x4Y19hcmNoaXZlX2J5dGVzJ119fGVzY3Jvd19hZ2VfZGF5cz17eFsnZXNjcm93J11bJ3NlbWFudGljX3Byb29mX2FnZV9kYXlzJ119fGNsb3VkX3dyaXRlcz1OTyIpCjc5MzogICAgZWxpZiBhY3Rpb249PSJzY2hlZHVsZWQiOgo3OTQ6ICAgICAgICBleGVjdXRlKCJzY2hlZHVsZWQiLHApCjgwMDogICAgICAgIGRpZSgiVVNBR0UiLDY0KQ== +PIPE_29_SCORE=4 +PIPE_29_BASENAME=homelab-rotating-boot-drill-state-export +PIPE_29_PATH_SHA256=14f9bcc4ba85669ed3f1dbb536101e773c19a63dbb9552beb91a423b48ebdb6f +PIPE_29_FILE_SHA256=59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc +PIPE_29_SCHEDULE_TARGET_COUNT=0 +PIPE_29_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_29_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_29_VZDUMP_QEMU_COUNT=1 +PIPE_29_RCLONE_COUNT=0 +PIPE_29_CLOUD_QUORUM_COUNT=1 +PIPE_29_SEAL_WRITTEN_COUNT=1 +PIPE_29_PAYLOAD_PARTS_COUNT=0 +PIPE_29_TRANSPORT_COUNT=2 +PIPE_29_RESTORE_VALIDATION_COUNT=0 +PIPE_29_SCHEDULE_RESULT_COUNT=0 +PIPE_29_RELEVANT_LINE_COUNT=41 +PIPE_29_RELEVANT_B64=NzpTVEFURV9ST09UID0gcGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iKQo4OkVWSURFTkNFX1JPT1QgPSBwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbiIpCjEzOiAgICBwcmludChmIlNUQVRFX0VYUE9SVF9FUlJPUj17Y29kZX0iLCBmaWxlPXN5cy5zdGRlcnIpCjIyOmRlZiBzdHJpY3Rfc3RhdGUodm1pZCwgbG9naWNhbCwgcCwgb2JqKToKMjM6ICAgIGlmIG9iai5nZXQoInNjaGVtYSIpICE9ICJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIjogcmV0dXJuIEZhbHNlCjI0OiAgICBpZiBvYmouZ2V0KCJsb2dpY2FsX2lkIikgIT0gbG9naWNhbCBvciBvYmouZ2V0KCJzdGF0dXMiKSAhPSAiU0VBTEVEIjogcmV0dXJuIEZhbHNlCjI1OiAgICBpZiBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKSAhPSAyOiByZXR1cm4gRmFsc2UKMjY6ICAgIGZvciBrIGluICgiY2xvdWRfYV92ZXJpZmllZCIsImNsb3VkX2JfdmVyaWZpZWQiLCJwYXJ0X2hhc2hlc192ZXJpZmllZCIsInNlYWxfd3JpdHRlbiIsImNsb3VkX2Ffc2VhbF92ZXJpZmllZCIsImNsb3VkX2Jfc2VhbF92ZXJpZmllZCIpOgoyOTogICAgZ2VuPW9iai5nZXQoImdlbmVyYXRpb24iKQozMDogICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cikgb3Igbm90IEdFTl9SRS5mdWxsbWF0Y2goZ2VuKSBvciBub3QgZ2VuLnN0YXJ0c3dpdGgoZiJ2bXt2bWlkfS0iKTogcmV0dXJuIEZhbHNlCjM0OiAgICBpZiBub3QgaXNpbnN0YW5jZShvYmouZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKSxzdHIpIG9yIG5vdCBIRVg2NC5mdWxsbWF0Y2gob2JqWyJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiXSk6IHJldHVybiBGYWxzZQozNzogICAgaWYgbm90IChyZS5mdWxsbWF0Y2gocmYidnpkdW1wLXFlbXUte3ZtaWR9LVswLTlde3s0fX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19LVswLTlde3syfX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19XC52bWFcLnpzdCIsbmFtZSkgb3IKMzg6ICAgICAgICAgICAgcmUuZnVsbG1hdGNoKHJmInZ6ZHVtcC1seGMte3ZtaWR9LVswLTlde3s0fX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19LVswLTlde3syfX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19XC50YXJcLnpzdCIsbmFtZSkpOgo0MDogICAgZXhwZWN0X2E9ZiJwdmUwMS1tYWlsLTAxLWNyeXB0OmhvbWVsYWItYmFja3Vwcy97bG9naWNhbH0ve2dlbn0iCjQxOiAgICBleHBlY3RfYj1mInB2ZTAxLW1haWwtMDItY3J5cHQ6aG9tZWxhYi1iYWNrdXBzL3tsb2dpY2FsfS97Z2VufSIKNDI6ICAgIGlmIG9iai5nZXQoInJlbW90ZV9hX2Jhc2UiKSAhPSBleHBlY3RfYSBvciBvYmouZ2V0KCJyZW1vdGVfYl9iYXNlIikgIT0gZXhwZWN0X2I6IHJldHVybiBGYWxzZQo0NTpkZWYgZXZpZGVuY2Vfb2sodm1pZCwgbG9naWNhbCwgc3RhdGVfcGF0aCwgb2JqKToKNDY6ICAgIGdlbj1vYmpbImdlbmVyYXRpb24iXQo0NzogICAgcD1FVklERU5DRV9ST09UL2Yidm17dm1pZH0iL2Yie2dlbn0uanNvbiIKNTE6ICAgICAgZS5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi12bS1yZXN0b3JlLXZhbGlkYXRpb24tdjEiIGFuZCBlLmdldCgibG9naWNhbF9pZCIpPT1sb2dpY2FsIGFuZAo1MjogICAgICBlLmdldCgiZ2VuZXJhdGlvbiIpPT1nZW4gYW5kIGUuZ2V0KCJ0cmFuc3BvcnRfc3RhdGUiKT09IlNFQUxFRCIgYW5kCjUzOiAgICAgIGUuZ2V0KCJ0cmFuc3BvcnRfc3RhdGVfZmlsZSIpPT1zdHIoc3RhdGVfcGF0aCkgYW5kIGUuZ2V0KCJyZXN0b3JlX3NvdXJjZSIpPT0iQ2xvdWQgQSIgYW5kCjU0OiAgICAgIGUuZ2V0KCJwYXJ0c19tYW5pZmVzdF92ZXJpZmllZCIpIGlzIFRydWUgYW5kIGUuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1vYmpbImFyY2hpdmVfc2hhMjU2Il0gYW5kCjU4OiAgICAgIGUuZ2V0KCJmdWxsX3Jlc3RvcmVfcHJvdmVuIikgaXMgRmFsc2UgYW5kIGUuZ2V0KCJyZXN1bHQiKT09Ik9LIgo2MjogICAgaWYgbGVuKHN5cy5hcmd2KSE9MzogZGllKCJVU0FHRSIsNjQpCjYzOiAgICB2bWlkPXN5cy5hcmd2WzFdCjY0OiAgICBsb2dpY2FsPXN5cy5hcmd2WzJdCjY1OiAgICBpZiBub3Qgdm1pZC5pc2RpZ2l0KCkgb3IgbG9naWNhbCAhPSBmInZte3ZtaWR9IjogZGllKCJJREVOVElUWV9JTlZBTElEIiw2NCkKNjY6ICAgIGQ9U1RBVEVfUk9PVC9sb2dpY2FsCjY3OiAgICBpZiBub3QgZC5pc19kaXIoKSBvciBkLmlzX3N5bWxpbmsoKTogZGllKCJTVEFURV9ESVJfSU5WQUxJRCIpCjcyOiAgICAgICAgaWYgc3RyaWN0X3N0YXRlKHZtaWQsbG9naWNhbCxwLG9iaikgYW5kIGV2aWRlbmNlX29rKHZtaWQsbG9naWNhbCxwLG9iaik6CjczOiAgICAgICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKChvYmpbImdlbmVyYXRpb24iXSxwLG9iaikpCjc0OiAgICBpZiBub3QgY2FuZGlkYXRlczogZGllKCJOT19TVFJJQ1RfU0VBTEVEX1JFU1RPUkVfUFJPVkVOX1NUQVRFIikKNzg6ICAgICAgInNjaGVtYSI6ImhvbWVsYWItYm9vdC1kcmlsbC1zdGF0ZS1leHBvcnQtdjEiLAo3OTogICAgICAidm1pZCI6dm1pZCwKODE6ICAgICAgImdlbmVyYXRpb24iOmdlbiwKODI6ICAgICAgInN0YXRlX2ZpbGUiOnN0cihwKSwKODY6ICAgICAgInBhcnRzX21hbmlmZXN0X3NoYTI1NiI6b2JqWyJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiXSwKODg6ICAgICAgInJlbW90ZV9hX2Jhc2UiOm9ialsicmVtb3RlX2FfYmFzZSJdLAo4OTogICAgICAicmVtb3RlX2JfYmFzZSI6b2JqWyJyZW1vdGVfYl9iYXNlIl0sCjkwOiAgICAgICJzdHJpY3Rfc2VhbGVkX3Jlc3RvcmVfcHJvdmVuIjpUcnVl +PIPE_30_SCORE=3 +PIPE_30_BASENAME=engine389.py +PIPE_30_PATH_SHA256=3a8a13358314972f0ccb46d5fd21cd314cad1787869f8e94ffe414dd53ccdee8 +PIPE_30_FILE_SHA256=f1524bf68b0495cc4a1f1036adb5ce293465547738ce35437a22b700f51cdd35 +PIPE_30_SCHEDULE_TARGET_COUNT=1 +PIPE_30_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_30_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_30_VZDUMP_QEMU_COUNT=0 +PIPE_30_RCLONE_COUNT=31 +PIPE_30_CLOUD_QUORUM_COUNT=0 +PIPE_30_SEAL_WRITTEN_COUNT=0 +PIPE_30_PAYLOAD_PARTS_COUNT=0 +PIPE_30_TRANSPORT_COUNT=0 +PIPE_30_RESTORE_VALIDATION_COUNT=0 +PIPE_30_SCHEDULE_RESULT_COUNT=2 +PIPE_30_RELEVANT_LINE_COUNT=264 +PIPE_30_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjE6ICAgIHA9c3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKMjY1OiAgICAgICAgICAgIHAua2lsbCgpOyByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9USU1FT1VUJykKMjcwOiAgICBpZiByYyE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9DQVRfRkFJTEVEJyxzdHIocmMpKQoyNzE6ICAgIGlmIGV4cGVjdGVkX2J5dGVzIGlzIG5vdCBOb25lIGFuZCBuIT1leHBlY3RlZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9DQVRfU0laRV9NSVNNQVRDSCcpCjI3NDpkZWYgcmNsb25lX2NhdF9ieXRlcyhyZW1vdGVfcGF0aCxtYXhfYnl0ZXM9NCoxMDI0KjEwMjQpOgoyNzU6ICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2NhdCcscmVtb3RlX3BhdGgsJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzYwcyddLHRpbWVvdXQ9OTApCjI3NjogICAgaWYgbGVuKHAuc3Rkb3V0KT5tYXhfYnl0ZXM6IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfU01BTExfT0JKRUNUX1RPT19MQVJHRScpCjI3OTpkZWYgZ2VuZXJhdGlvbl9pZChsb2dpY2FsX2lkKToKMjgzOmRlZiB1cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkX3BhdGgsc291cmNlX21ldGEpOgoyODY6ICAgIGdlbj1zb3VyY2VfbWV0YVsnZ2VuZXJhdGlvbiddOyByZWw9cmVtb3RlX2dlbmVyYXRpb25fcGF0aCh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pCjI4NzogICAgaWYgcmVtb3RlX2V4aXN0c19hbnkodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuKTogcmFpc2UgQmFja3VwRXJyb3IoJ0dFTkVSQVRJT05fQ09MTElTSU9OJykKMjkwOiAgICBtYW5pZmVzdD1tYWtlX21hbmlmZXN0KHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbixuLHBzaGEscGFydHMscmVwcyxzb3VyY2VfbWV0YSkKMjkxOiAgICBtYj1jYW5vbmljYWxfanNvbihtYW5pZmVzdCkrYidcbic7IG1zaGE9c2hhMjU2X2J5dGVzKG1iKQoyOTY6ICAgICAgICAgICAgcmNsb25lX3JjYXQocnAsc291cmNlX3BhdGg9cGF5bG9hZF9wYXRoLG9mZnNldD1wYXJ0WydvZmZzZXQnXSxsZW5ndGg9cGFydFsnYnl0ZXMnXSkKMjk3OiAgICAgICAgICAgIGdvdCxnb3RuPXJjbG9uZV9jYXRfaGFzaChycCxwYXJ0WydieXRlcyddKQoyOTg6ICAgICAgICAgICAgaWYgZ290IT1wYXJ0WydzaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BBUlRfUkVBREJBQ0tfU0hBX01JU01BVENIJykKMjk5OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL21hbmlmZXN0Lmpzb24nLGRhdGE9bWIpCjMwMDogICAgICAgIGlmIHJjbG9uZV9jYXRfYnl0ZXMoYmFzZSsnL21hbmlmZXN0Lmpzb24nKSE9bWI6IHJhaXNlIEJhY2t1cEVycm9yKCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjMwMTogICAgc2VhbD17J3NjaGVtYSc6MSwnZ2VuZXJhdGlvbic6Z2VuLCdsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ21hbmlmZXN0X3NoYTI1Nic6bXNoYSwncGF5bG9hZF9zaGEyNTYnOnBzaGEsJ3N0YXR1cyc6J1NFQUxFRCcsJ3NlYWxlZF9hdF91dGMnOnV0Y25vdygpfQozMDI6ICAgIHNiPWNhbm9uaWNhbF9qc29uKHNlYWwpK2InXG4nCjMwNTogICAgICAgIHJjbG9uZV9yY2F0KGJhc2UrJy9TRUFMRUQuanNvbicsZGF0YT1zYikKMzA2OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvU0VBTEVELmpzb24nKSE9c2I6IHJhaXNlIEJhY2t1cEVycm9yKCdTRUFMX1JFQURCQUNLX01JU01BVENIJykKMzA3OiAgICByZXR1cm4gbWFuaWZlc3QsbXNoYSx7J3VuaGVhbHRoeSc6YmFkLCdoZWFsdGh5JzpoZWFsdGh5fQozMDk6ZGVmIHJlY29uc3RydWN0X3JlcGxpY2EobWFuaWZlc3QscmVwLG91dF9wYXRoKToKMzEwOiAgICByZWw9cmVtb3RlX2dlbmVyYXRpb25fcGF0aChtYW5pZmVzdFsnc2NvcGUnXSxtYW5pZmVzdFsnbG9naWNhbF9pZCddLG1hbmlmZXN0WydnZW5lcmF0aW9uJ10pCjMxNDogICAgICAgIGZvciBwYXJ0IGluIG1hbmlmZXN0WydwYXJ0cyddOgozMTU6ICAgICAgICAgICAgcD1zdWJwcm9jZXNzLlBvcGVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2NhdCcsYmFzZSsnL3BhcnRzLycrcGFydFsnbmFtZSddLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKMzIyOiAgICAgICAgICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfQ0FUX0ZBSUxFRCcpCjMyMzogICAgICAgICAgICBpZiBuIT1wYXJ0WydieXRlcyddIG9yIHBoLmhleGRpZ2VzdCgpIT1wYXJ0WydzaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1JFQ09OU1RSVUNUX1BBUlRfTUlTTUFUQ0gnKQozMjQ6ICAgIGlmIHRvdGFsIT1tYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddIG9yIGguaGV4ZGlnZXN0KCkhPW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFZTE9BRF9NSVNNQVRDSCcpCjMzMzogICAgaWYgcjEhPTAgb3IgcDIucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUl9aU1RfTElTVF9GQUlMRUQnKQozMzU6ICAgIGlmIG5vdCBuYW1lczogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUl9aU1RfRU1QVFknKQozMzY6ICAgIGlmIHJlcXVpcmVkX21lbWJlciBhbmQgcmVxdWlyZWRfbWVtYmVyIG5vdCBpbiBuYW1lczogcmFpc2UgQmFja3VwRXJyb3IoJ1JFUVVJUkVEX01FTUJFUl9NSVNTSU5HJykKMzQ1OiAgICAgICAgICAgICMgR3JlZW4gc2V0IGlzIGludGVudGlvbmFsbHkgQ1Qtb25seS4gU2NoZWR1bGVkIFFFTVUgYmFja3VwcyBzdGlsbCBnZXQgZHVhbCByZW1vdGUgYnl0ZSByZWFkYmFjay4KMzUzOiAgICAgICAgaWYgcDIucmV0dXJuY29kZSE9MCBvciBsZW4oZGF0YSk8MTI4OiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19EQl9EVU1QX0lOVkFMSUQnKQozNTQ6ICAgIGVsc2U6IHJhaXNlIEJhY2t1cEVycm9yKCdWQUxJREFUT1JfVU5LTk9XTl9UWVBFJykKMzU5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0lOVkVOVE9SWV9KU09OJykKMzYxOmRlZiBzc2hfcmVtb3RlKG5vZGUsYXJndixpbnB1dD1Ob25lLHRpbWVvdXQ9MTgwMCxjaGVjaz1UcnVlKToKMzYyOiAgICBjbWQ9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdKQozNjM6ICAgIGlmIG5vZGU9PSdwdmUwMSc6IHJldHVybiBydW4oW3N0cih4KSBmb3IgeCBpbiBhcmd2XSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjM2NzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KMzY4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjM3MDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjM3MTogICAgc3JjZGlyPWYnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyLXNvdXJjZS97Z2VufScKMzcyOiAgICBzc2hfcmVtb3RlKG5vZGUsWydpbnN0YWxsJywnLWQnLCctbScsJzA3MDAnLHNyY2Rpcl0sdGltZW91dD0zMCkKMzc0OiAgICBzc2hfcmVtb3RlKG5vZGUsWyd2emR1bXAnLHN0cih2bWlkKSwnLS1tb2RlJywnc25hcHNob3QnLCctLWNvbXByZXNzJywnenN0ZCcsJy0tZHVtcGRpcicsc3JjZGlyXSx0aW1lb3V0PTcyMDApCjM3NTogICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjM3NzogICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjM4NDogICAgaWYgbm90IHBhdGhsaWIuUGF0aChsb2NhbCkuaXNfZmlsZSgpIG9yIHBhdGhsaWIuUGF0aChsb2NhbCkuc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKMzg2OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvd3NbMF0uZ2V0KCdzdGF0dXMnKX0sY2xlYW51cAozODk6ICAgIGlmIG5vdCBPUEVSQVRPUl9LRVkuaXNfZmlsZSgpIG9yIE9QRVJBVE9SX0tFWS5pc19zeW1saW5rKCk6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfTUlTU0lORycpCjM5MzogICAgaWYgbm90IG0gb3IgbS5ncm91cCgxKSE9T1BFUkFUT1JfS0VZX0ZJTkdFUlBSSU5UOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX0ZJTkdFUlBSSU5UX01JU01BVENIJykKNDA3OiAgICBpZiBsZW4oZ29vZCkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdIT1NUS0VZX1BJTl9NSVNNQVRDSCcpCjQxMDpkZWYgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKToKNDEyOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo0MTc6ZGVmIHZwc19zc2hfYXJndih0LCAqLCB1c2VfYWdlbnQ9RmFsc2UpOgo0MjY6ZGVmIHZwc19ydW4odCwgcmVtb3RlX2FyZ3YsICosIGlucHV0PU5vbmUsIHRpbWVvdXQ9MzAwLCB1c2VfYWdlbnQ9RmFsc2UsIGNoZWNrPVRydWUpOgo0Mjc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gcmVtb3RlX2FyZ3ZdKQo0Mjg6ICAgIHJldHVybiBydW4odnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PXVzZV9hZ2VudCkrW3JlbW90ZV0saW5wdXQ9aW5wdXQsdGltZW91dD10aW1lb3V0LGNoZWNrPWNoZWNrKQo0MzA6ZGVmIGJvb3RzdHJhcF92cHNfa2V5cyh0YXJnZXRzKToKNDMyOiAgICBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpCjQzNTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNDQwOiAgICAgICAgaWYgbm90IG9zLmVudmlyb24uZ2V0KCdTU0hfQVVUSF9TT0NLJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdGT1JXQVJERURfQUdFTlRfUkVRVUlSRURfRk9SX0JPT1RTVFJBUCcpCjQ0NDogICAgICAgIGlmIHRhZyBub3QgaW4gKCdBRERFRCcsJ0FMUkVBRFknKTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZQU19BVVRIT1JJWkVEX0tFWV9CT09UU1RSQVBfUkVTVUxUJykKNDQ4OiAgICB1cz1beCBmb3IgeCBpbiB0YXJnZXRzIGlmIHhbJ3R5cGUnXT09J3Zwc191cyddWzBdCjQ1MzpkZWYgcmVtb3RlX2hhc2hzZXQodCxjb21tYW5kKToKNDU4OiAgICBmaWxlcz1bJ2V0Yy9uZXRiaXJkL2luc3RhbGwuY29uZicsJ3Zhci9saWIvbmV0YmlyZC9zdGF0ZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL3NlcnZpY2UuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9hY3RpdmVfcHJvZmlsZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2RlZmF1bHQuanNvbiddCjQ2MDogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsY21kKQo0NjE6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsnc3VkbycsJy1uJywndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLSddK2ZpbGVzKQo0NjI6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo0NjM6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTYwMCkKNDY0OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsY21kKQo0NjU6ICAgIGlmIHByZSE9cG9zdDogcmFpc2UgQmFja3VwRXJyb3IoJ01EX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNDY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX21kJywnY29uc2lzdGVuY3knOidGSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo0NzA6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjQ3MTogICAgcmVtb3RlPXNobGV4LmpvaW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJywnZXRjL25naW54J10pCjQ3MjogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjQ3MzogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9OTAwKQo0NzQ6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo0NzU6ICAgIGlmIHByZSE9cG9zdDogcmFpc2UgQmFja3VwRXJyb3IoJ1NQQl9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjQ3NjogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19zcGInLCdjb25zaXN0ZW5jeSc6J1NUQVRJQ19DT05GSUdfRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ3Rsc19yZWNvdmVyeSc6J1JFSVNTVUVfVExTX09OX1JFU1RPUkUnLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjQ3ODpVU19SRU1PVEVfU0NSSVBUPXInJydpbXBvcnQgaW8sb3Msc3FsaXRlMyxzeXMsdGFyZmlsZSx0aW1lLGpzb24saGFzaGxpYgo1MDE6ICAgIGRzdD1zcWxpdGUzLmNvbm5lY3QoJzptZW1vcnk6Jyk7IHNyYy5iYWNrdXAoZHN0KQo1MDQ6ICAgIHRpPXRhcmZpbGUuVGFySW5mbyhuYW1lPSgnc3FsaXRlLWJhY2t1cHMvJytuYW1lKSk7IHRpLnNpemU9bGVuKGIpOyB0aS5tb2RlPTBvNjAwOyB0aS5tdGltZT1pbnQodGltZS50aW1lKCkpOyB0Zi5hZGRmaWxlKHRpLGlvLkJ5dGVzSU8oYikpCjUwODogICAgcmVtb3RlPXNobGV4LmpvaW4oWydweXRob24zJywnLUknLCctQicsJy1jJyxVU19SRU1PVEVfU0NSSVBUXSkKNTA5OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNTEwOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD0xMjAwKQo1MTE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfdXMnLCdjb25zaXN0ZW5jeSc6J1NRTElURV9PTkxJTkVfQkFDS1VQX1BMVVNfTk9OREJfRklMRVMnLCdzcWxpdGVfY291bnQnOjR9LE5vbmUKNTMwOiAgICBpZiBub3QgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfZmlsZSgpIG9yIFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShST1VURVJfTEVHQUNZX1NDUklQVCkhPVJPVVRFUl9MRUdBQ1lfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0xFR0FDWV9TQ1JJUFRfSURFTlRJVFknKQo1MzQ6ICAgIGhpdHM9W2lwIGZvciBpcCBpbiBpcHMgaWYgc2hhMjU2X2J5dGVzKGlwLmVuY29kZSgpKT09Uk9VVEVSX1RBUkdFVF9TSEFdCjUzNTogICAgaWYgbGVuKGhpdHMpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1RBUkdFVF9QQVJTRScpCjUzNjogICAgdGFyZ2V0PWhpdHNbMF0KNTU0OiAgICBpZiBsZW4oc2FmZSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUEFTU0ZJTEVfUEFSU0UnKQo1NTU6ICAgIHJldHVybiB0YXJnZXQsc2FmZVswXQo1NTg6ICAgIHJvb3RzPVtwYXRobGliLlBhdGgoJy9ldGMnKSxwYXRobGliLlBhdGgoJy9yb290Ly5zc2gnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12MicpXQo1NzM6ICAgIGlmIGxlbih1bmlxKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0VYQUNUX1NIQV9GSUxFX05PVF9VTklRVUUnKQo1ODE6ICAgIGlmIHNoYTI1Nl9ieXRlcyhiKSE9Uk9VVEVSX0tOT1dOX0hPU1RTX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9LTk9XTl9IT1NUU19JREVOVElUWScpCjU4NTogICAgdGFyZ2V0LHBmPXBhcnNlX3JvdXRlcl9sZWdhY3koKQo1ODY6ICAgIGFyZ3Y9W1NTSFBBU1MsJy1mJyxzdHIocGYpLFNTSCwnLXAnLCcyMjIyJywnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjU4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0CjU5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjYwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo2MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo2MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjYwNTogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo2MDY6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo2MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjYxMTogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo2MTg6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo2MjE6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDApCjYyMzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9KU09OJykKNjI1OiAgICBpZiBub3QgcGF0aCBvciBub3QgaXNpbnN0YW5jZShzaXplLGludCkgb3Igc2l6ZTw9MCBvciBub3QgcmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NjR9JyxleHBlY3RlZCBvciAnJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfUkVTVUxUJykKNjMyOiAgICAgICAgICAgICAgICBjb2RlPSJpbXBvcnQgYmFzZTY0LHN5czsgcD1zeXMuYXJndlsxXTsgbz1pbnQoc3lzLmFyZ3ZbMl0pOyBuPWludChzeXMuYXJndlszXSk7IGY9b3BlbihwLCdyYicpOyBmLnNlZWsobyk7IGI9Zi5yZWFkKG4pOyBmLmNsb3NlKCk7IHN5cy5zdGRvdXQud3JpdGUoYmFzZTY0LmI2NGVuY29kZShiKS5kZWNvZGUoKSkiCjYzMzogICAgICAgICAgICAgICAgYjY0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy1jJyxjb2RlLHBhdGgsc3RyKG9mZiksc3RyKHRha2UpXSxOb25lLHRpbWVvdXQ9NjApLnN0cmlwKCkKNjM1OiAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfQkFTRTY0JykKNjM2OiAgICAgICAgICAgICAgICBpZiBsZW4oYikhPXRha2U6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19MRU5HVEgnKQo2NDE6ICAgICAgICBxZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcm0nLCctZicscGF0aF0sTm9uZSx0aW1lb3V0PTMwKQo2NDM6ICAgICAgICBpZiBwcmltYXJ5IGlzIE5vbmU6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0dVRVNUX1RFTVBfQ0xFQU5VUCcpCjY0NTogICAgaWYgZ290IT1zaXplIG9yIGguaGV4ZGlnZXN0KCkhPWV4cGVjdGVkOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19TVFJFQU1fU0hBX01JU01BVENIJykKNjQ2OiAgICByZXR1cm4gbG9jYWwseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3hlbmZvcm8nLCdzaXRlJzp0WydzbHVnJ10sJ3ZtaWQnOnRbJ3ZtaWQnXSwnbm9kZSc6dFsnbm9kZSddLCdkdW1wX3N0cmF0ZWd5Jzp0WydkdW1wX3N0cmF0ZWd5J10sJ2RiX2R1bXBfYnl0ZXMnOmouZ2V0KCdkYl9ieXRlcycpfSxOb25lCjY1OTogICAgICAgIGVsc2U6IG9rPShzc2hfcmVtb3RlKG5vZGUsWyd0ZXN0JywnLWUnLCcvJytyZWxdLHRpbWVvdXQ9MjAsY2hlY2s9RmFsc2UpLnJldHVybmNvZGU9PTApCjY2MjogICAgaWYgbm90IHJlcXVpcmVkLmlzc3Vic2V0KHNldChwYXRocykpOiByYWlzZSBCYWNrdXBFcnJvcignTk9ERV9CVU5ETEVfUkVRVUlSRURfUEFUSF9NSVNTSU5HJykKNjY0OiAgICBhcmd2PVsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJ10rcGF0aHMKNjY1OiAgICBpZiBub2RlPT0ncHZlMDEnOiBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MzAwKQo2Njc6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo2Njg6ICAgICAgICBwaXBlX3RvX3pzdGQoW1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXSxwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2Njk6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfbm9kZV9idW5kbGUnLCdub2RlJzpub2RlLCdyZWNvdmVyeV9wb2xpY3knOidDTEVBTl9JTlNUQUxMX0pPSU5fUkVDT05DSUxFX05PVF9CTElORF9QTVhDRlNfT1ZFUldSSVRFJywnbWVtYmVyX3Jvb3RzJzpsZW4ocGF0aHMpfSxOb25lCjY3MTpkZWYgY2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk6CjY4MDogICAgcmFpc2UgQmFja3VwRXJyb3IoJ0NBUFRVUkVfVFlQRV9VTktOT1dOJykKNjg1OiAgICAgICAgc3NoX3JlbW90ZShjbGVhbnVwWydub2RlJ10sWydybScsJy1yZicsJy0tJyxjbGVhbnVwWydwYXRoJ11dLHRpbWVvdXQ9NjApCjY4ODogICAgZW5naW5lPXBhdGhsaWIuUGF0aCgnL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnKQo2ODk6ICAgIGlmIHNoYTI1Nl9maWxlKGVuZ2luZSkhPScwYjNhMGY2ODVkNGU2N2NiODYyNTBkZjg5YTQ5MThhZmYyZTZjNjc3OTliN2QzNWIwZTU0YjFiYmMwMTZlZTU3JzogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTlRST0xfRU5HSU5FX0lERU5USVRZJykKNjkwOiAgICByb290PXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2NvbnRyb2wtYm9vdHN0cmFwLXYyJykKNjk1OiAgICAgICAgICAgIGlmIGouZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgYW5kIGouZ2V0KCdnZW5lcmF0aW9uJyk6IHJvd3MuYXBwZW5kKChwLnN0YXQoKS5zdF9tdGltZSxqWydnZW5lcmF0aW9uJ10pKQo2OTc6ICAgIGlmIG5vdCByb3dzOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9TRUFMRURfR0VORVJBVElPTl9NSVNTSU5HJykKNzAwOiAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHZlcmlmaWNhdGlvbj0nZXhpc3RpbmdfY29udHJvbF9lbmdpbmVfdmVyaWZ5JyxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzAxOiAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOjAsJ3JlcGxpY2FzJzoyfQo3MDM6ZGVmIGJhY2t1cF90YXJnZXQodCxncmVlbl92ZXJpZnk9RmFsc2UpOgo3MDU6ICAgIGdlbj1nZW5lcmF0aW9uX2lkKHRbJ2xvZ2ljYWxfaWQnXSk7IHdvcms9ZW5zdXJlX2RpcihXT1JLX1JPT1QvZ2VuLDBvNzAwKQo3MDY6ICAgIHBheWxvYWQ9Tm9uZTsgY2xlYW51cD1Ob25lOyBzZWFsZWQ9RmFsc2UKNzA4OiAgICAgICAgcGF5bG9hZCxtZXRhLGNsZWFudXA9Y2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk7IG1ldGFbJ2dlbmVyYXRpb24nXT1nZW4KNzA5OiAgICAgICAgbWFuaWZlc3QsbXNoYSxhbGxvYz11cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkLG1ldGEpOyBzZWFsZWQ9VHJ1ZQo3MTA6ICAgICAgICAjIFNFQUxFRC1maXJzdCBjbGVhbnVwIGludmFyaWFudDogb25seSBub3cgcmVtb3ZlIHNvdXJjZS9sb2NhbCBwYXlsb2FkLgo3MTY6ICAgICAgICAgICAgaGE9cmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxtYW5pZmVzdFsncmVwbGljYXMnXVswXSxhKTsgdmFsaWRhdGVfcGF5bG9hZCh0LGEpCjcxNzogICAgICAgICAgICBoYj1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzFdLGIpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYikKNzE4OiAgICAgICAgICAgIGlmIGhhIT1oYiBvciBoYSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdHUkVFTl9SRVBMSUNBX0NPTVBBUkUnKQo3MjE6ICAgICAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHBheWxvYWRfc2hhMjU2PW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddLG1hbmlmZXN0X3NoYTI1Nj1tc2hhLHJlcGxpY2FzPW1hbmlmZXN0WydyZXBsaWNhcyddLGdyZWVuX3ZlcmlmaWVkPWJvb2woZ3JlZW5fdmVyaWZ5KSxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzIyOiAgICAgICAgcmV0dXJuIHsnbG9naWNhbF9pZCc6dFsnbG9naWNhbF9pZCddLCdnZW5lcmF0aW9uJzpnZW4sJ3Jlc3VsdCc6J1NVQ0NFU1MnLCdwYXlsb2FkX2J5dGVzJzptYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddLCdyZXBsaWNhcyc6MiwnYWxsb2NhdG9yX2hlYWx0aHknOmFsbG9jWydoZWFsdGh5J119CjcyMzogICAgZXhjZXB0IEJhY2t1cEVycm9yIGFzIGU6CjcyNDogICAgICAgIHJlc3VsdD0nUEFSVElBTF9WQUxJRCcgaWYgc2VhbGVkIGVsc2UgJ0ZBSUwnCjcyNTogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSxyZXN1bHQsZ2VuZXJhdGlvbj1nZW4scmVhc29uPWUuY29kZSxzZWFsZWQ9c2VhbGVkKQo3Mjk6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IGNob3Nlbj1bdCBmb3IgdCBpbiB0YXJnZXRzIGlmIHQuZ2V0KCdncmVlbjEnKV0KNzMxOiAgICBib290cz1ib290c3RyYXBfdnBzX2tleXModGFyZ2V0cykKNzM4OiAgICAgICAgICAgIHI9YmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT0odFsndHlwZSddIT0nY29udHJvbCcpKQo3NDA6ICAgICAgICAgICAgcHJpbnQoZid7bGFiZWx9X3trZXl9X0dFTkVSQVRJT049e3JbImdlbmVyYXRpb24iXX0nKQo3NDQ6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzQ2OiAgICBwcmludChmJ3tsYWJlbH1fVEFSR0VUX0NPVU5UPXtsZW4oY2hvc2VuKX0nKQo3NDk6ICAgIHByaW50KGYne2xhYmVsfV9DTE9VRF9CQUNLVVBfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdIT0iY29udHJvbCIpfScpCjc1MDogICAgcHJpbnQoZid7bGFiZWx9X0NPTlRST0xfVkVSSUZZX1RBUkdFVF9DT1VOVD17c3VtKDEgZm9yIHQgaW4gY2hvc2VuIGlmIHRbInR5cGUiXT09ImNvbnRyb2wiKX0nKQo3NTE6ICAgIGlmIGZhaWx1cmVzOiByYWlzZSBCYWNrdXBFcnJvcihsYWJlbCsnX1RBUkdFVF9GQUlMVVJFUycsJywnLmpvaW4oeFswXSBmb3IgeCBpbiBmYWlsdXJlcykpCjc1NTpkZWYgc2NoZWR1bGVkX3J1bigpOgo3NTY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IHN0YXRlPWxvYWRfc3RhdGVfYWxsKCk7IHQ9Y2hvb3NlX2R1ZV90YXJnZXQodGFyZ2V0cyxzdGF0ZSkKNzU4OiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQnKTsgcmV0dXJuIDAKNzU5OiAgICBwcmludCgnU0NIRURVTEVfVEFSR0VUPScrdFsnbG9naWNhbF9pZCddKQo3NjA6ICAgIHRyeTogYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSkKNzYxOiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzYyOiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1GQUlMJyk7IHByaW50KCdTQ0hFRFVMRV9SRUFTT049JytlLmNvZGUpOyByZXR1cm4gMgo3NjM6ICAgIHByaW50KCdTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUycpOyByZXR1cm4gMAo3NjY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IG09e3RbJ2xvZ2ljYWxfaWQnXTp0IGZvciB0IGluIHRhcmdldHN9Cjc2NzogICAgaWYgbG9naWNhbF9pZCBub3QgaW4gbTogcmFpc2UgQmFja3VwRXJyb3IoJ0RJU0NPVkVSX1VOS05PV05fVEFSR0VUJykKNzY4OiAgICB0PW1bbG9naWNhbF9pZF07IHByZWZpeD1mJ2hvbWVsYWItYmFja3Vwcy92Mi97dFsic2NvcGUiXX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zJwo3NzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgo3NzE6ICAgICAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydsc2YnLGNyeXB0Kyc6JytwcmVmaXgsJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD02MCxjaGVjaz1GYWxzZSkKNzc2OiAgICAgICAgICAgIHNlYWw9Y3J5cHQrJzonK3ByZWZpeCsnLycrZysnL1NFQUxFRC5qc29uJwo3Nzc6ICAgICAgICAgICAgcT1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxzZWFsXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo3ODE6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKT09ZzogYnlnZW4uc2V0ZGVmYXVsdChnLHNldCgpKS5hZGQocGh5c2ljYWwpCjc4MzogICAgcHJpbnQoJ0RJU0NPVkVSX0xPR0lDQUxfSUQ9Jytsb2dpY2FsX2lkKTsgcHJpbnQoJ0RJU0NPVkVSX1RXT19QSFlTSUNBTF9TRUFMRURfQ09VTlQ9JytzdHIobGVuKGdvb2QpKSkKNzg0OiAgICBmb3IgZyBpbiBnb29kWy0yMDpdOiBwcmludCgnRElTQ09WRVJfR0VORVJBVElPTj0nK2cpCjc4OTogICAgYXNzZXJ0IGxlbihSRU1PVEVTKT09MTMgYW5kIGxlbih7cCBmb3IgXyxwIGluIFJFTU9URVN9KT09MTMKNzkwOiAgICBhc3NlcnQgbGVuKGRlZmF1bHRfdGFyZ2V0cygpKT49MjgKNzkxOiAgICBhc3NlcnQge3RbJ2xvZ2ljYWxfaWQnXSBmb3IgdCBpbiBkZWZhdWx0X3RhcmdldHMoKSBpZiB0LmdldCgnZ3JlZW4xJyl9PT17J2N0MTEyJywnbm9kZS1wdmUwMScsJ21kLXJlbGF5Jywnc3BiLWluZ3Jlc3MnLCd1cy1uZXRiaXJkJywncm91dGVyLW5ldGNyYXplJywneGYtY29kZXZpcGUnLCd4Zi16YWtydXRpbScsJ2NvbnRyb2wtYm9vdHN0cmFwLXYyJ30KNzk1OmRlZiBtYWluKGFyZ3YpOgo3OTY6ICAgIGlmIGxlbihhcmd2KTwyOiBwcmludCgnVVNBR0UnKTsgcmV0dXJuIDY0Cjc5NzogICAgY21kPWFyZ3ZbMV0= +PIPE_31_SCORE=3 +PIPE_31_BASENAME=engine391.py +PIPE_31_PATH_SHA256=80bf4cf4820d512caa587b901df2a97b93c2fda191de8fe7740cd28de7aa7888 +PIPE_31_FILE_SHA256=9f5095085be09a50e5833cae7ccfb8e70e2536dd56f352676170ec466d7019b3 +PIPE_31_SCHEDULE_TARGET_COUNT=1 +PIPE_31_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_31_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_31_VZDUMP_QEMU_COUNT=0 +PIPE_31_RCLONE_COUNT=31 +PIPE_31_CLOUD_QUORUM_COUNT=0 +PIPE_31_SEAL_WRITTEN_COUNT=0 +PIPE_31_PAYLOAD_PARTS_COUNT=0 +PIPE_31_TRANSPORT_COUNT=0 +PIPE_31_RESTORE_VALIDATION_COUNT=0 +PIPE_31_SCHEDULE_RESULT_COUNT=2 +PIPE_31_RELEVANT_LINE_COUNT=268 +PIPE_31_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjI6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjY1OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzA6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3MTogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjc0OmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI3NTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjc2OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjc5OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODM6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI4NjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjg3OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTA6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTE6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjI5NjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQoyOTc6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjI5ODogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQoyOTk6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzAwOiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzAxOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwMjogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzA1OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMDY6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMDc6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMwOTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTA6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzE0OiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMxNjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjI6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzIzOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMyNDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzMzOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjMzNTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjMzNjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNDU6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTM6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM1NDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNTk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjE6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjI6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2MzogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzY5OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzI6ICAgIHZtaWQ9aW50KHRbJ3ZtaWQnXSk7IHJvd3M9W3IgZm9yIHIgaW4gY2x1c3Rlcl9pbnZlbnRvcnkoKSBpZiBpbnQoci5nZXQoJ3ZtaWQnLC0xKSk9PXZtaWRdCjM3MzogICAgaWYgbGVuKHJvd3MpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX05PVF9VTklRVUUnKQozNzU6ICAgIGlmIHR5cCE9dFsnZ3Vlc3RfdHlwZSddOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzY6ICAgIHNyY2Rpcj1mJy9tbnQvc3RhZ2luZy9ob21lbGFiLWJhY2t1cC12Mi1zb3VyY2Uve2dlbn0nCjM3ODogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLGYne21vZGU6b30nLHNyY2Rpcl0sdGltZW91dD0zMCkKMzgyOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnY2hvd24nLGYnMDp7Z2lkfScsc3JjZGlyXSx0aW1lb3V0PTMwKQozODM6ICAgICAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3N0YXQnLCctYycsJyVhOiV1OiVnJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjM4NDogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPWYne21vZGU6b306MDp7Z2lkfSc6IHJhaXNlIEJhY2t1cEVycm9yKCdMWENfRFVNUERJUl9BQ0NFU1NfQ09OVFJBQ1QnKQozODY6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKMzg3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKMzg5OiAgICBpZiBsZW4oZmlsZXMpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX09VVFBVVF9OT1RfVU5JUVVFJykKMzk2OiAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQozOTg6ICAgIHJldHVybiBwYXRobGliLlBhdGgobG9jYWwpLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93c1swXS5nZXQoJ3N0YXR1cycpfSxjbGVhbnVwCjQwMTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNDA1OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo0MTk6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNDIyOmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo0MjQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjQyOTpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjQzODpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjQzOTogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjQ0MDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjQ0MjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo0NDQ6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNDQ3OiAgICBmb3IgdCBpbiB0YXJnZXRzOgo0NTI6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNDU2OiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo0NjA6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNDY1OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo0NzA6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNDcyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjQ3MzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjQ3NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjQ3NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo0NzY6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjQ3NzogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo0Nzg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjQ4MjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNDgzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNDg0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNDg1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjQ4NjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjQ4NzogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNDg4OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNDkwOlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjUxMzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjUxNjogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNTIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo1MjE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo1MjI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjUyMzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo1OTY6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjU5OTogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNjAwOiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNjAxOiAgICB0YXJnZXQ9aGl0c1swXQo2MDk6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjYxMDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjYxMzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjYyODogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjYzNjogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNjQwOiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjY0MTogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT15ZXMnLCctbycsJ1N0cmljdEhvc3RLZXlDaGVja2luZz15ZXMnLCctbycsJ1VzZXJLbm93bkhvc3RzRmlsZT0nK3N0cihST1VURVJfS05PV05fSE9TVFMpLCctbycsJ0Nvbm5lY3RUaW1lb3V0PTE1Jywncm91dGVyYmFja3VwQCcrdGFyZ2V0LCdzaG93IHJ1bm5pbmctY29uZmlnJ10KNjQyOiAgICBwPXJ1bihhcmd2LHRpbWVvdXQ9NjApOyByZXR1cm4gcC5zdGRvdXQKNjUzOiAgICBpZiBub3QgYSBvciBhIT1iOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1JFQURfTk9UX0JZVEVfU1RBQkxFJykKNjU1OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncm91dGVyJywnY29uZmlnX3NoYTI1Nic6c2hhMjU2X2J5dGVzKGEpLCdyZWFkX2NvdW50JzoyLCdyZWNvdmVyeV9wb2xpY3knOidJTVBPUlRfUEFDS0FHRV9PUl9TQUZFX0NMSV9OT1RfQkxJTkRfQ09ORklHX1JFUExBQ0UnfSxOb25lCjY1NzpkZWYgcWdhX2V4ZWMobm9kZSx2bWlkLGd1ZXN0X2FyZ3YsaW5wdXRfYnl0ZXM9Tm9uZSx0aW1lb3V0PTYwMCk6CjY1ODogICAgYXJncz1bJ3FtJywnZ3Vlc3QnLCdleGVjJyxzdHIodm1pZCksJy0tc3luY2hyb25vdXMnLCcxJywnLS10aW1lb3V0JyxzdHIoaW50KHRpbWVvdXQpKV0KNjYwOiAgICBhcmdzICs9IFsnLS0nXStbc3RyKHgpIGZvciB4IGluIGd1ZXN0X2FyZ3ZdCjY2MTogICAgcD1zc2hfcmVtb3RlKG5vZGUsYXJncyxpbnB1dD1pbnB1dF9ieXRlcyx0aW1lb3V0PXRpbWVvdXQrNjApCjY2MzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9KU09OJykKNjY2OiAgICBpZiByYyBub3QgaW4gKDAsTm9uZSk6IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfR1VFU1RfQ09NTUFORF9GQUlMRUQnLHN0cihyYykpCjY3MzogICAgcmV0dXJuIGYnJydpbXBvcnQgaGFzaGxpYixqc29uLG9zLHBhdGhsaWIsc2VsZWN0LHNodXRpbCxzdWJwcm9jZXNzLHRlbXBmaWxlLHRpbWVcbnJvb3Q9e3Jvb3Qhcn07IGRiPXtkYiFyfTsgc3RyYXRlZ3k9e3N0cmF0ZWd5IXJ9OyB0b2tlbj1bUkVEQUNURURdIG5vdCByb290LnN0YXJ0c3dpdGgoJy92YXIvd3d3L2ZvcnVtcy8nKSBvciBub3QgZGIuc3RhcnRzd2l0aCgneGZfJyk6IHJhaXNlIFN5c3RlbUV4aXQoMjApXG50bXA9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbik7IHRtcC5ta2Rpcihtb2RlPTBvNzAwLGV4aXN0X29rPUZhbHNlKVxuZHVtcD10bXAvJ2RiLnNxbCc7IG91dD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKycudGFyLnpzdCcpXG5sb2NrPU5vbmVcbnRyeTpcbiAgaWYgc3RyYXRlZ3k9PSdnbG9iYWxfcmVhZF9sb2NrJzpcbiAgICBsb2NrPXN1YnByb2Nlc3MuUG9wZW4oWydtYXJpYWRiJywnLS11c2VyPXJvb3QnLCctLWJhdGNoJywnLS1za2lwLWNvbHVtbi1uYW1lcycsJy0tdW5idWZmZXJlZCddLHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGV4dD1UcnVlLGJ1ZnNpemU9MSlcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJGTFVTSCBUQUJMRVMgV0lUSCBSRUFEIExPQ0s7IFNFTEVDVCAnTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdMT0NLRUQnOiByYWlzZSBSdW50aW1lRXJyb3IoJ0xPQ0tfQUNRVUlSRScpXG4gICAgZHVtcF90aW1lb3V0PTE1XG4gIGVsc2U6IGR1bXBfdGltZW91dD0xODBcbiAgd2l0aCBvcGVuKGR1bXAsJ3diJykgYXMgZjpcbiAgICBhcmd2PVsnbWFyaWFkYi1kdW1wJywnLS11c2VyPXJvb3QnLCctLXF1aWNrJywnLS1za2lwLWxvY2stdGFibGVzJywnLS1oZXgtYmxvYicsJy0tcm91dGluZXMnLCctLWV2ZW50cycsJy0tdHJpZ2dlcnMnXVxuICAgIGlmIHN0cmF0ZWd5PT0nc2luZ2xlX3RyYW5zYWN0aW9uJzogYXJndi5hcHBlbmQoJy0tc2luZ2xlLXRyYW5zYWN0aW9uJylcbiAgICBhcmd2LmFwcGVuZChkYilcbiAgICBxPXN1YnByb2Nlc3MucnVuKGFyZ3Ysc3Rkb3V0PWYsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0aW1lb3V0PWR1bXBfdGltZW91dClcbiAgICBpZiBxLnJldHVybmNvZGUhPTA6IHJhaXNlIFJ1bnRpbWVFcnJvcignRFVNUCcpXG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgbG9jay5zdGRpbi53cml0ZSgiVU5MT0NLIFRBQkxFUzsgU0VMRUNUICdVTkxPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nVU5MT0NLRUQnOiByYWlzZSBSdW50aW1lRXJyb3IoJ1VOTE9DSycpXG4gICAgbG9jay5zdGRpbi5jbG9zZSgpOyBsb2NrLndhaXQodGltZW91dD01KTsgbG9jaz1Ob25lXG4gIHJlbD1yb290LmxzdHJpcCgnLycpXG4gIHRhcj1zdWJwcm9jZXNzLlBvcGVuKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJyxyZWwsJy1DJyxzdHIodG1wKSwnZGIuc3FsJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKVxuICB6PXN1YnByb2Nlc3MuUG9wZW4oWyd6c3RkJywnLVQwJywnLTMnLCctcScsJy1vJyxzdHIob3V0KV0sc3RkaW49dGFyLnN0ZG91dCxzdGRvdXQ9c3VicHJvY2Vzcy5ERVZOVUxMLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpOyB0YXIuc3Rkb3V0LmNsb3NlKClcbiAgenI9ei53YWl0KHRpbWVvdXQ9NjAwKTsgdHI9dGFyLndhaXQodGltZW91dD02MClcbiAgaWYgenIhPTAgb3IgdHIhPTA6IHJhaXNlIFJ1bnRpbWVFcnJvcignQVJDSElWRScpXG4gIGg9aGFzaGxpYi5zaGEyNTYoKTsgbj0wXG4gIHdpdGggb3BlbihvdXQsJ3JiJykgYXMgZjpcbiAgICBmb3IgYiBpbiBpdGVyKGxhbWJkYTpmLnJlYWQoMTA0ODU3NiksYicnKTogaC51cGRhdGUoYik7IG4rPWxlbihiKVxuICBwcmludChqc29uLmR1bXBzKHt7J3BhdGgnOnN0cihvdXQpLCdieXRlcyc6biwnc2hhMjU2JzpoLmhleGRpZ2VzdCgpLCdkYl9ieXRlcyc6ZHVtcC5zdGF0KCkuc3Rfc2l6ZSwnc3RyYXRlZ3knOnN0cmF0ZWd5fX0sc29ydF9rZXlzPVRydWUsc2VwYXJhdG9ycz0oJywnLCc6JykpKVxuZmluYWxseTpcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICB0cnk6IGxvY2sua2lsbCgpOyBsb2NrLndhaXQodGltZW91dD0zKVxuICAgIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbiAgdHJ5OiBzaHV0aWwucm10cmVlKHRtcClcbiAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuJycnCjY3NjogICAgb3V0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy0nXSx4Zl9ndWVzdF9idWlsZGVyKHQsZ2VuKS5lbmNvZGUoKSx0aW1lb3V0PTkwMCkKNjc4OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19CVUlMREVSX0pTT04nKQo2ODA6ICAgIGlmIG5vdCBwYXRoIG9yIG5vdCBpc2luc3RhbmNlKHNpemUsaW50KSBvciBzaXplPD0wIG9yIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLGV4cGVjdGVkIG9yICcnKTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9SRVNVTFQnKQo2ODc6ICAgICAgICAgICAgICAgIGNvZGU9ImltcG9ydCBiYXNlNjQsc3lzOyBwPXN5cy5hcmd2WzFdOyBvPWludChzeXMuYXJndlsyXSk7IG49aW50KHN5cy5hcmd2WzNdKTsgZj1vcGVuKHAsJ3JiJyk7IGYuc2VlayhvKTsgYj1mLnJlYWQobik7IGYuY2xvc2UoKTsgc3lzLnN0ZG91dC53cml0ZShiYXNlNjQuYjY0ZW5jb2RlKGIpLmRlY29kZSgpKSIKNjg4OiAgICAgICAgICAgICAgICBiNjQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLWMnLGNvZGUscGF0aCxzdHIob2ZmKSxzdHIodGFrZSldLE5vbmUsdGltZW91dD02MCkuc3RyaXAoKQo2OTA6ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19CQVNFNjQnKQo2OTE6ICAgICAgICAgICAgICAgIGlmIGxlbihiKSE9dGFrZTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fUUdBX0NIVU5LX0xFTkdUSCcpCjY5NjogICAgICAgIHFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9ybScsJy1mJyxwYXRoXSxOb25lLHRpbWVvdXQ9MzApCjY5ODogICAgICAgIGlmIHByaW1hcnkgaXMgTm9uZTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fR1VFU1RfVEVNUF9DTEVBTlVQJykKNzAwOiAgICBpZiBnb3QhPXNpemUgb3IgaC5oZXhkaWdlc3QoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1NUUkVBTV9TSEFfTUlTTUFUQ0gnKQo3MDE6ICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoneGVuZm9ybycsJ3NpdGUnOnRbJ3NsdWcnXSwndm1pZCc6dFsndm1pZCddLCdub2RlJzp0Wydub2RlJ10sJ2R1bXBfc3RyYXRlZ3knOnRbJ2R1bXBfc3RyYXRlZ3knXSwnZGJfZHVtcF9ieXRlcyc6ai5nZXQoJ2RiX2J5dGVzJyl9LE5vbmUKNzE0OiAgICAgICAgZWxzZTogb2s9KHNzaF9yZW1vdGUobm9kZSxbJ3Rlc3QnLCctZScsJy8nK3JlbF0sdGltZW91dD0yMCxjaGVjaz1GYWxzZSkucmV0dXJuY29kZT09MCkKNzE3OiAgICBpZiBub3QgcmVxdWlyZWQuaXNzdWJzZXQoc2V0KHBhdGhzKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdOT0RFX0JVTkRMRV9SRVFVSVJFRF9QQVRIX01JU1NJTkcnKQo3MTk6ICAgIGFyZ3Y9Wyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nXStwYXRocwo3MjA6ICAgIGlmIG5vZGU9PSdwdmUwMSc6IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD0zMDApCjcyMjogICAgICAgIHJlbW90ZT0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKGFyZ3YpCjcyMzogICAgICAgIHBpcGVfdG9fenN0ZChbU1NILCctbycsJ0JhdGNoTW9kZT15ZXMnLCctbycsJ1N0cmljdEhvc3RLZXlDaGVja2luZz15ZXMnLCdyb290QCcrbm9kZSxyZW1vdGVdLHBheWxvYWQsdGltZW91dD02MDApCjcyNDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ub2RlX2J1bmRsZScsJ25vZGUnOm5vZGUsJ3JlY292ZXJ5X3BvbGljeSc6J0NMRUFOX0lOU1RBTExfSk9JTl9SRUNPTkNJTEVfTk9UX0JMSU5EX1BNWENGU19PVkVSV1JJVEUnLCdtZW1iZXJfcm9vdHMnOmxlbihwYXRocyl9LE5vbmUKNzI2OmRlZiBjYXB0dXJlX3RhcmdldCh0LGdlbix3b3JrKToKNzM1OiAgICByYWlzZSBCYWNrdXBFcnJvcignQ0FQVFVSRV9UWVBFX1VOS05PV04nKQo3NDA6ICAgICAgICBzc2hfcmVtb3RlKGNsZWFudXBbJ25vZGUnXSxbJ3JtJywnLXJmJywnLS0nLGNsZWFudXBbJ3BhdGgnXV0sdGltZW91dD02MCkKNzQzOiAgICBlbmdpbmU9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1jb250cm9sLWJhY2t1cCcpCjc0NDogICAgaWYgc2hhMjU2X2ZpbGUoZW5naW5lKSE9JzBiM2EwZjY4NWQ0ZTY3Y2I4NjI1MGRmODlhNDkxOGFmZjJlNmM2Nzc5OWI3ZDM1YjBlNTRiMWJiYzAxNmVlNTcnOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9FTkdJTkVfSURFTlRJVFknKQo3NDU6ICAgIHJvb3Q9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vY29udHJvbC1ib290c3RyYXAtdjInKQo3NTA6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKTogcm93cy5hcHBlbmQoKHAuc3RhdCgpLnN0X210aW1lLGpbJ2dlbmVyYXRpb24nXSkpCjc1MjogICAgaWYgbm90IHJvd3M6IHJhaXNlIEJhY2t1cEVycm9yKCdDT05UUk9MX1NFQUxFRF9HRU5FUkFUSU9OX01JU1NJTkcnKQo3NTU6ICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSwnU1VDQ0VTUycsZ2VuZXJhdGlvbj1nZW4sdmVyaWZpY2F0aW9uPSdleGlzdGluZ19jb250cm9sX2VuZ2luZV92ZXJpZnknLGxhc3Rfc3VjY2Vzc19lcG9jaD1lcG9jaCgpKQo3NTY6ICAgIHJldHVybiB7J2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnZ2VuZXJhdGlvbic6Z2VuLCdyZXN1bHQnOidTVUNDRVNTJywncGF5bG9hZF9ieXRlcyc6MCwncmVwbGljYXMnOjJ9Cjc1ODpkZWYgYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSk6Cjc2MDogICAgZ2VuPWdlbmVyYXRpb25faWQodFsnbG9naWNhbF9pZCddKTsgd29yaz1lbnN1cmVfZGlyKFdPUktfUk9PVC9nZW4sMG83MDApCjc2MTogICAgcGF5bG9hZD1Ob25lOyBjbGVhbnVwPU5vbmU7IHNlYWxlZD1GYWxzZQo3NjM6ICAgICAgICBwYXlsb2FkLG1ldGEsY2xlYW51cD1jYXB0dXJlX3RhcmdldCh0LGdlbix3b3JrKTsgbWV0YVsnZ2VuZXJhdGlvbiddPWdlbgo3NjQ6ICAgICAgICBtYW5pZmVzdCxtc2hhLGFsbG9jPXVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWQsbWV0YSk7IHNlYWxlZD1UcnVlCjc2NTogICAgICAgICMgU0VBTEVELWZpcnN0IGNsZWFudXAgaW52YXJpYW50OiBvbmx5IG5vdyByZW1vdmUgc291cmNlL2xvY2FsIHBheWxvYWQuCjc3MTogICAgICAgICAgICBoYT1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzBdLGEpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYSkKNzcyOiAgICAgICAgICAgIGhiPXJlY29uc3RydWN0X3JlcGxpY2EobWFuaWZlc3QsbWFuaWZlc3RbJ3JlcGxpY2FzJ11bMV0sYik7IHZhbGlkYXRlX3BheWxvYWQodCxiKQo3NzM6ICAgICAgICAgICAgaWYgaGEhPWhiIG9yIGhhIT1tYW5pZmVzdFsncGF5bG9hZF9zaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ0dSRUVOX1JFUExJQ0FfQ09NUEFSRScpCjc3NjogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSwnU1VDQ0VTUycsZ2VuZXJhdGlvbj1nZW4scGF5bG9hZF9zaGEyNTY9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J10sbWFuaWZlc3Rfc2hhMjU2PW1zaGEscmVwbGljYXM9bWFuaWZlc3RbJ3JlcGxpY2FzJ10sZ3JlZW5fdmVyaWZpZWQ9Ym9vbChncmVlbl92ZXJpZnkpLGxhc3Rfc3VjY2Vzc19lcG9jaD1lcG9jaCgpKQo3Nzc6ICAgICAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOm1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10sJ3JlcGxpY2FzJzoyLCdhbGxvY2F0b3JfaGVhbHRoeSc6YWxsb2NbJ2hlYWx0aHknXX0KNzc4OiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzc5OiAgICAgICAgcmVzdWx0PSdQQVJUSUFMX1ZBTElEJyBpZiBzZWFsZWQgZWxzZSAnRkFJTCcKNzgwOiAgICAgICAgd3JpdGVfc3RhdGUodFsnbG9naWNhbF9pZCddLHJlc3VsdCxnZW5lcmF0aW9uPWdlbixyZWFzb249ZS5jb2RlLHNlYWxlZD1zZWFsZWQpCjc4NDogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgY2hvc2VuPVt0IGZvciB0IGluIHRhcmdldHMgaWYgdC5nZXQoJ2dyZWVuMScpXQo3ODY6ICAgIGJvb3RzPWJvb3RzdHJhcF92cHNfa2V5cyh0YXJnZXRzKQo3OTM6ICAgICAgICAgICAgcj1iYWNrdXBfdGFyZ2V0KHQsZ3JlZW5fdmVyaWZ5PSh0Wyd0eXBlJ10hPSdjb250cm9sJykpCjc5NTogICAgICAgICAgICBwcmludChmJ3tsYWJlbH1fe2tleX1fR0VORVJBVElPTj17clsiZ2VuZXJhdGlvbiJdfScpCjc5OTogICAgICAgIGV4Y2VwdCBCYWNrdXBFcnJvciBhcyBlOgo4MDE6ICAgIHByaW50KGYne2xhYmVsfV9UQVJHRVRfQ09VTlQ9e2xlbihjaG9zZW4pfScpCjgwNDogICAgcHJpbnQoZid7bGFiZWx9X0NMT1VEX0JBQ0tVUF9UQVJHRVRfQ09VTlQ9e3N1bSgxIGZvciB0IGluIGNob3NlbiBpZiB0WyJ0eXBlIl0hPSJjb250cm9sIil9JykKODA1OiAgICBwcmludChmJ3tsYWJlbH1fQ09OVFJPTF9WRVJJRllfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdPT0iY29udHJvbCIpfScpCjgwNjogICAgaWYgZmFpbHVyZXM6IHJhaXNlIEJhY2t1cEVycm9yKGxhYmVsKydfVEFSR0VUX0ZBSUxVUkVTJywnLCcuam9pbih4WzBdIGZvciB4IGluIGZhaWx1cmVzKSkKODEwOmRlZiBzY2hlZHVsZWRfcnVuKCk6CjgxMTogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgc3RhdGU9bG9hZF9zdGF0ZV9hbGwoKTsgdD1jaG9vc2VfZHVlX3RhcmdldCh0YXJnZXRzLHN0YXRlKQo4MTM6ICAgICAgICBwcmludCgnU0NIRURVTEVfREVDSVNJT049REVGRVJfTk9fRFVFX1RBUkdFVCcpOyByZXR1cm4gMAo4MTQ6ICAgIHByaW50KCdTQ0hFRFVMRV9UQVJHRVQ9Jyt0Wydsb2dpY2FsX2lkJ10pCjgxNTogICAgdHJ5OiBiYWNrdXBfdGFyZ2V0KHQsZ3JlZW5fdmVyaWZ5PUZhbHNlKQo4MTY6ICAgIGV4Y2VwdCBCYWNrdXBFcnJvciBhcyBlOgo4MTc6ICAgICAgICBwcmludCgnU0NIRURVTEVfUkVTVUxUPUZBSUwnKTsgcHJpbnQoJ1NDSEVEVUxFX1JFQVNPTj0nK2UuY29kZSk7IHJldHVybiAyCjgxODogICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1TVUNDRVNTJyk7IHJldHVybiAwCjgyMTogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgbT17dFsnbG9naWNhbF9pZCddOnQgZm9yIHQgaW4gdGFyZ2V0c30KODIyOiAgICBpZiBsb2dpY2FsX2lkIG5vdCBpbiBtOiByYWlzZSBCYWNrdXBFcnJvcignRElTQ09WRVJfVU5LTk9XTl9UQVJHRVQnKQo4MjM6ICAgIHQ9bVtsb2dpY2FsX2lkXTsgcHJlZml4PWYnaG9tZWxhYi1iYWNrdXBzL3YyL3t0WyJzY29wZSJdfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMnCjgyNTogICAgZm9yIGNyeXB0LHBoeXNpY2FsIGluIFJFTU9URVM6CjgyNjogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3ByZWZpeCwnLS1kaXJzLW9ubHknLCctLW1heC1kZXB0aCcsJzEnXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo4MzE6ICAgICAgICAgICAgc2VhbD1jcnlwdCsnOicrcHJlZml4KycvJytnKycvU0VBTEVELmpzb24nCjgzMjogICAgICAgICAgICBxPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHNlYWxdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpCjgzNjogICAgICAgICAgICBpZiBqLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBqLmdldCgnZ2VuZXJhdGlvbicpPT1nOiBieWdlbi5zZXRkZWZhdWx0KGcsc2V0KCkpLmFkZChwaHlzaWNhbCkKODM4OiAgICBwcmludCgnRElTQ09WRVJfTE9HSUNBTF9JRD0nK2xvZ2ljYWxfaWQpOyBwcmludCgnRElTQ09WRVJfVFdPX1BIWVNJQ0FMX1NFQUxFRF9DT1VOVD0nK3N0cihsZW4oZ29vZCkpKQo4Mzk6ICAgIGZvciBnIGluIGdvb2RbLTIwOl06IHByaW50KCdESVNDT1ZFUl9HRU5FUkFUSU9OPScrZykKODQ0OiAgICBhc3NlcnQgbGVuKFJFTU9URVMpPT0xMyBhbmQgbGVuKHtwIGZvciBfLHAgaW4gUkVNT1RFU30pPT0xMwo4NDU6ICAgIGFzc2VydCBsZW4oZGVmYXVsdF90YXJnZXRzKCkpPj0yOA== +PIPE_32_SCORE=3 +PIPE_32_BASENAME=engine392.py +PIPE_32_PATH_SHA256=31ca7bcf1ab30815fb911a00d6f9a015e02724b232a64ead7c25e99bfec8d87e +PIPE_32_FILE_SHA256=7d96b9842de06277ea1be45e1f58e35c8a116a922425317954d339a333fe84f0 +PIPE_32_SCHEDULE_TARGET_COUNT=1 +PIPE_32_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_32_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_32_VZDUMP_QEMU_COUNT=0 +PIPE_32_RCLONE_COUNT=31 +PIPE_32_CLOUD_QUORUM_COUNT=0 +PIPE_32_SEAL_WRITTEN_COUNT=0 +PIPE_32_PAYLOAD_PARTS_COUNT=0 +PIPE_32_TRANSPORT_COUNT=0 +PIPE_32_RESTORE_VALIDATION_COUNT=0 +PIPE_32_SCHEDULE_RESULT_COUNT=2 +PIPE_32_RELEVANT_LINE_COUNT=268 +PIPE_32_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjI6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjY1OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzA6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3MTogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjc0OmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI3NTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjc2OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjc5OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODM6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI4NjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjg3OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTA6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTE6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjI5NjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQoyOTc6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjI5ODogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQoyOTk6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzAwOiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzAxOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwMjogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzA1OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMDY6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMDc6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMwOTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTA6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzE0OiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMxNjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjI6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzIzOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMyNDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzMzOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjMzNTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjMzNjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNDU6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTM6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM1NDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNTk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjE6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjI6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2MzogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzY5OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzI6ICAgIHZtaWQ9aW50KHRbJ3ZtaWQnXSk7IHJvd3M9W3IgZm9yIHIgaW4gY2x1c3Rlcl9pbnZlbnRvcnkoKSBpZiBpbnQoci5nZXQoJ3ZtaWQnLC0xKSk9PXZtaWRdCjM3MzogICAgaWYgbGVuKHJvd3MpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX05PVF9VTklRVUUnKQozNzU6ICAgIGlmIHR5cCE9dFsnZ3Vlc3RfdHlwZSddOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59JwozODE6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJyxmJ3ttb2RlOm99JywnLW8nLCcwJywnLWcnLHN0cihnaWQpLHNyY2Rpcl0sdGltZW91dD0zMCkKMzgyOiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3N0YXQnLCctYycsJyVhOiV1OiVnJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjM4MzogICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9Zid7bW9kZTpvfTowOntnaWR9JzogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9EVU1QRElSX0FDQ0VTU19DT05UUkFDVCcpCjM4NjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKMzg3OiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjM4OTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQozOTY6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQozOTg6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpCjQwMTogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3dzWzBdLmdldCgnc3RhdHVzJyl9LGNsZWFudXAKNDA0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo0MDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjQyMjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo0MjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjQyNzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNDMyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNDQxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNDQyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNDQzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDQ1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjQ0NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo0NTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjQ1NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo0NTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjQ2MzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo0Njg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjQ3MzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo0NzU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNDc2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNDc3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNDc4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjQ3OTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNDgwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjQ4MTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNDg1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo0ODY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo0ODc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo0ODg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNDg5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNDkwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo0OTE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo0OTM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNTE2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNTE5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo1MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjUyNDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjUyNTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNTI2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjU5OTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNjAyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo2MDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo2MDQ6ICAgIHRhcmdldD1oaXRzWzBdCjYxMjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNjEzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNjE2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNjMxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNjM5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo2NDM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNjQ2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjY0NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0CjY1ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjY2MDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo2NjI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo2NjM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjY2NTogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo2NjY6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo2Njg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjY3MTogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo2Nzg6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo2ODE6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDApCjY4MzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9KU09OJykKNjg1OiAgICBpZiBub3QgcGF0aCBvciBub3QgaXNpbnN0YW5jZShzaXplLGludCkgb3Igc2l6ZTw9MCBvciBub3QgcmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NjR9JyxleHBlY3RlZCBvciAnJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfUkVTVUxUJykKNjkyOiAgICAgICAgICAgICAgICBjb2RlPSJpbXBvcnQgYmFzZTY0LHN5czsgcD1zeXMuYXJndlsxXTsgbz1pbnQoc3lzLmFyZ3ZbMl0pOyBuPWludChzeXMuYXJndlszXSk7IGY9b3BlbihwLCdyYicpOyBmLnNlZWsobyk7IGI9Zi5yZWFkKG4pOyBmLmNsb3NlKCk7IHN5cy5zdGRvdXQud3JpdGUoYmFzZTY0LmI2NGVuY29kZShiKS5kZWNvZGUoKSkiCjY5MzogICAgICAgICAgICAgICAgYjY0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy1jJyxjb2RlLHBhdGgsc3RyKG9mZiksc3RyKHRha2UpXSxOb25lLHRpbWVvdXQ9NjApLnN0cmlwKCkKNjk1OiAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfQkFTRTY0JykKNjk2OiAgICAgICAgICAgICAgICBpZiBsZW4oYikhPXRha2U6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19MRU5HVEgnKQo3MDE6ICAgICAgICBxZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcm0nLCctZicscGF0aF0sTm9uZSx0aW1lb3V0PTMwKQo3MDM6ICAgICAgICBpZiBwcmltYXJ5IGlzIE5vbmU6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0dVRVNUX1RFTVBfQ0xFQU5VUCcpCjcwNTogICAgaWYgZ290IT1zaXplIG9yIGguaGV4ZGlnZXN0KCkhPWV4cGVjdGVkOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19TVFJFQU1fU0hBX01JU01BVENIJykKNzA2OiAgICByZXR1cm4gbG9jYWwseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3hlbmZvcm8nLCdzaXRlJzp0WydzbHVnJ10sJ3ZtaWQnOnRbJ3ZtaWQnXSwnbm9kZSc6dFsnbm9kZSddLCdkdW1wX3N0cmF0ZWd5Jzp0WydkdW1wX3N0cmF0ZWd5J10sJ2RiX2R1bXBfYnl0ZXMnOmouZ2V0KCdkYl9ieXRlcycpfSxOb25lCjcxOTogICAgICAgIGVsc2U6IG9rPShzc2hfcmVtb3RlKG5vZGUsWyd0ZXN0JywnLWUnLCcvJytyZWxdLHRpbWVvdXQ9MjAsY2hlY2s9RmFsc2UpLnJldHVybmNvZGU9PTApCjcyMjogICAgaWYgbm90IHJlcXVpcmVkLmlzc3Vic2V0KHNldChwYXRocykpOiByYWlzZSBCYWNrdXBFcnJvcignTk9ERV9CVU5ETEVfUkVRVUlSRURfUEFUSF9NSVNTSU5HJykKNzI0OiAgICBhcmd2PVsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJ10rcGF0aHMKNzI1OiAgICBpZiBub2RlPT0ncHZlMDEnOiBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MzAwKQo3Mjc6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo3Mjg6ICAgICAgICBwaXBlX3RvX3pzdGQoW1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXSxwYXlsb2FkLHRpbWVvdXQ9NjAwKQo3Mjk6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfbm9kZV9idW5kbGUnLCdub2RlJzpub2RlLCdyZWNvdmVyeV9wb2xpY3knOidDTEVBTl9JTlNUQUxMX0pPSU5fUkVDT05DSUxFX05PVF9CTElORF9QTVhDRlNfT1ZFUldSSVRFJywnbWVtYmVyX3Jvb3RzJzpsZW4ocGF0aHMpfSxOb25lCjczMTpkZWYgY2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk6Cjc0MDogICAgcmFpc2UgQmFja3VwRXJyb3IoJ0NBUFRVUkVfVFlQRV9VTktOT1dOJykKNzQ1OiAgICAgICAgc3NoX3JlbW90ZShjbGVhbnVwWydub2RlJ10sWydybScsJy1yZicsJy0tJyxjbGVhbnVwWydwYXRoJ11dLHRpbWVvdXQ9NjApCjc0ODogICAgZW5naW5lPXBhdGhsaWIuUGF0aCgnL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnKQo3NDk6ICAgIGlmIHNoYTI1Nl9maWxlKGVuZ2luZSkhPScwYjNhMGY2ODVkNGU2N2NiODYyNTBkZjg5YTQ5MThhZmYyZTZjNjc3OTliN2QzNWIwZTU0YjFiYmMwMTZlZTU3JzogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTlRST0xfRU5HSU5FX0lERU5USVRZJykKNzUwOiAgICByb290PXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2NvbnRyb2wtYm9vdHN0cmFwLXYyJykKNzU1OiAgICAgICAgICAgIGlmIGouZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgYW5kIGouZ2V0KCdnZW5lcmF0aW9uJyk6IHJvd3MuYXBwZW5kKChwLnN0YXQoKS5zdF9tdGltZSxqWydnZW5lcmF0aW9uJ10pKQo3NTc6ICAgIGlmIG5vdCByb3dzOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9TRUFMRURfR0VORVJBVElPTl9NSVNTSU5HJykKNzYwOiAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHZlcmlmaWNhdGlvbj0nZXhpc3RpbmdfY29udHJvbF9lbmdpbmVfdmVyaWZ5JyxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzYxOiAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOjAsJ3JlcGxpY2FzJzoyfQo3NjM6ZGVmIGJhY2t1cF90YXJnZXQodCxncmVlbl92ZXJpZnk9RmFsc2UpOgo3NjU6ICAgIGdlbj1nZW5lcmF0aW9uX2lkKHRbJ2xvZ2ljYWxfaWQnXSk7IHdvcms9ZW5zdXJlX2RpcihXT1JLX1JPT1QvZ2VuLDBvNzAwKQo3NjY6ICAgIHBheWxvYWQ9Tm9uZTsgY2xlYW51cD1Ob25lOyBzZWFsZWQ9RmFsc2UKNzY4OiAgICAgICAgcGF5bG9hZCxtZXRhLGNsZWFudXA9Y2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk7IG1ldGFbJ2dlbmVyYXRpb24nXT1nZW4KNzY5OiAgICAgICAgbWFuaWZlc3QsbXNoYSxhbGxvYz11cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkLG1ldGEpOyBzZWFsZWQ9VHJ1ZQo3NzA6ICAgICAgICAjIFNFQUxFRC1maXJzdCBjbGVhbnVwIGludmFyaWFudDogb25seSBub3cgcmVtb3ZlIHNvdXJjZS9sb2NhbCBwYXlsb2FkLgo3NzY6ICAgICAgICAgICAgaGE9cmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxtYW5pZmVzdFsncmVwbGljYXMnXVswXSxhKTsgdmFsaWRhdGVfcGF5bG9hZCh0LGEpCjc3NzogICAgICAgICAgICBoYj1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzFdLGIpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYikKNzc4OiAgICAgICAgICAgIGlmIGhhIT1oYiBvciBoYSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdHUkVFTl9SRVBMSUNBX0NPTVBBUkUnKQo3ODE6ICAgICAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHBheWxvYWRfc2hhMjU2PW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddLG1hbmlmZXN0X3NoYTI1Nj1tc2hhLHJlcGxpY2FzPW1hbmlmZXN0WydyZXBsaWNhcyddLGdyZWVuX3ZlcmlmaWVkPWJvb2woZ3JlZW5fdmVyaWZ5KSxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzgyOiAgICAgICAgcmV0dXJuIHsnbG9naWNhbF9pZCc6dFsnbG9naWNhbF9pZCddLCdnZW5lcmF0aW9uJzpnZW4sJ3Jlc3VsdCc6J1NVQ0NFU1MnLCdwYXlsb2FkX2J5dGVzJzptYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddLCdyZXBsaWNhcyc6MiwnYWxsb2NhdG9yX2hlYWx0aHknOmFsbG9jWydoZWFsdGh5J119Cjc4MzogICAgZXhjZXB0IEJhY2t1cEVycm9yIGFzIGU6Cjc4NDogICAgICAgIHJlc3VsdD0nUEFSVElBTF9WQUxJRCcgaWYgc2VhbGVkIGVsc2UgJ0ZBSUwnCjc4NTogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSxyZXN1bHQsZ2VuZXJhdGlvbj1nZW4scmVhc29uPWUuY29kZSxzZWFsZWQ9c2VhbGVkKQo3ODk6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IGNob3Nlbj1bdCBmb3IgdCBpbiB0YXJnZXRzIGlmIHQuZ2V0KCdncmVlbjEnKV0KNzkxOiAgICBib290cz1ib290c3RyYXBfdnBzX2tleXModGFyZ2V0cykKNzk4OiAgICAgICAgICAgIHI9YmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT0odFsndHlwZSddIT0nY29udHJvbCcpKQo4MDA6ICAgICAgICAgICAgcHJpbnQoZid7bGFiZWx9X3trZXl9X0dFTkVSQVRJT049e3JbImdlbmVyYXRpb24iXX0nKQo4MDQ6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKODA2OiAgICBwcmludChmJ3tsYWJlbH1fVEFSR0VUX0NPVU5UPXtsZW4oY2hvc2VuKX0nKQo4MDk6ICAgIHByaW50KGYne2xhYmVsfV9DTE9VRF9CQUNLVVBfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdIT0iY29udHJvbCIpfScpCjgxMDogICAgcHJpbnQoZid7bGFiZWx9X0NPTlRST0xfVkVSSUZZX1RBUkdFVF9DT1VOVD17c3VtKDEgZm9yIHQgaW4gY2hvc2VuIGlmIHRbInR5cGUiXT09ImNvbnRyb2wiKX0nKQo4MTE6ICAgIGlmIGZhaWx1cmVzOiByYWlzZSBCYWNrdXBFcnJvcihsYWJlbCsnX1RBUkdFVF9GQUlMVVJFUycsJywnLmpvaW4oeFswXSBmb3IgeCBpbiBmYWlsdXJlcykpCjgxNTpkZWYgc2NoZWR1bGVkX3J1bigpOgo4MTY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IHN0YXRlPWxvYWRfc3RhdGVfYWxsKCk7IHQ9Y2hvb3NlX2R1ZV90YXJnZXQodGFyZ2V0cyxzdGF0ZSkKODE4OiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQnKTsgcmV0dXJuIDAKODE5OiAgICBwcmludCgnU0NIRURVTEVfVEFSR0VUPScrdFsnbG9naWNhbF9pZCddKQo4MjA6ICAgIHRyeTogYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSkKODIxOiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKODIyOiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1GQUlMJyk7IHByaW50KCdTQ0hFRFVMRV9SRUFTT049JytlLmNvZGUpOyByZXR1cm4gMgo4MjM6ICAgIHByaW50KCdTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUycpOyByZXR1cm4gMAo4MjY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IG09e3RbJ2xvZ2ljYWxfaWQnXTp0IGZvciB0IGluIHRhcmdldHN9CjgyNzogICAgaWYgbG9naWNhbF9pZCBub3QgaW4gbTogcmFpc2UgQmFja3VwRXJyb3IoJ0RJU0NPVkVSX1VOS05PV05fVEFSR0VUJykKODI4OiAgICB0PW1bbG9naWNhbF9pZF07IHByZWZpeD1mJ2hvbWVsYWItYmFja3Vwcy92Mi97dFsic2NvcGUiXX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zJwo4MzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgo4MzE6ICAgICAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydsc2YnLGNyeXB0Kyc6JytwcmVmaXgsJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD02MCxjaGVjaz1GYWxzZSkKODM2OiAgICAgICAgICAgIHNlYWw9Y3J5cHQrJzonK3ByZWZpeCsnLycrZysnL1NFQUxFRC5qc29uJwo4Mzc6ICAgICAgICAgICAgcT1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxzZWFsXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo4NDE6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKT09ZzogYnlnZW4uc2V0ZGVmYXVsdChnLHNldCgpKS5hZGQocGh5c2ljYWwpCjg0MzogICAgcHJpbnQoJ0RJU0NPVkVSX0xPR0lDQUxfSUQ9Jytsb2dpY2FsX2lkKTsgcHJpbnQoJ0RJU0NPVkVSX1RXT19QSFlTSUNBTF9TRUFMRURfQ09VTlQ9JytzdHIobGVuKGdvb2QpKSkKODQ0OiAgICBmb3IgZyBpbiBnb29kWy0yMDpdOiBwcmludCgnRElTQ09WRVJfR0VORVJBVElPTj0nK2cpCjg0OTogICAgYXNzZXJ0IGxlbihSRU1PVEVTKT09MTMgYW5kIGxlbih7cCBmb3IgXyxwIGluIFJFTU9URVN9KT09MTMKODUwOiAgICBhc3NlcnQgbGVuKGRlZmF1bHRfdGFyZ2V0cygpKT49Mjg= +PIPE_33_SCORE=3 +PIPE_33_BASENAME=engine394.py +PIPE_33_PATH_SHA256=4e2dc451f7792d52e3fec3607ed4ce812a63e37f6a4db1314e1bc31c9bb6e04c +PIPE_33_FILE_SHA256=c201145ac029a3ca43027df292fc57f91c2fa40118e2ce8225cf5c2c070a2e0d +PIPE_33_SCHEDULE_TARGET_COUNT=1 +PIPE_33_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_33_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_33_VZDUMP_QEMU_COUNT=0 +PIPE_33_RCLONE_COUNT=31 +PIPE_33_CLOUD_QUORUM_COUNT=0 +PIPE_33_SEAL_WRITTEN_COUNT=0 +PIPE_33_PAYLOAD_PARTS_COUNT=0 +PIPE_33_TRANSPORT_COUNT=0 +PIPE_33_RESTORE_VALIDATION_COUNT=0 +PIPE_33_SCHEDULE_RESULT_COUNT=2 +PIPE_33_RELEVANT_LINE_COUNT=319 +PIPE_33_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjM0OlJFTU9URVM9WwozOTpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo2MjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2NjogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjg2OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4OTpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo5MTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6CjkyOiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjkzOiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo5NTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6Cjk2OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5NzogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjk4OiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5OTogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTA2OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTEwOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjExMTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjEyNTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjY6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTI3OiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyODogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyOTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMzM6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzY6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzOTogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQ2OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQ4OiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQ5OiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE1MDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTUzOmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTY6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTc6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE2MDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNjM6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNzE6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzc6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTc4OiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTkzOmRlZiBsb2FkX3RhcmdldHMoKToKMTk0OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxOTU6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5NjogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTk3OiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTg6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjAwOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyMDI6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIxMDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIxMTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjE0OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTc6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjE4OiAgICByZXR1cm4gW1JDTE9ORV0KMjIwOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjIxOiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjIzOiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMjU6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMzE6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMzI6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjM3OmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzg6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjM5OiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI0MDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjQ0OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI0NTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDY6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1NjogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNjQ6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2NjpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjg6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjcxOiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzY6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3NzogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjgwOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI4MTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjgyOiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjg1OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODk6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI5MjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjkzOiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTY6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTc6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjMwMjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozMDM6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjMwNDogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozMDU6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzA2OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzA3OiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwODogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzExOiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMTI6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMTM6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMxNTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTY6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzIwOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMyMjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjg6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzI5OiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMzMDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzM5OiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM0MTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM0MjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNTE6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTk6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM2MDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNjU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjc6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjg6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2OTogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzc1OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzg6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjM4MjogICAgZm9yIGQgaW4gW0dVRVNUMjY2LnBhcmVudCxwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvcHZlLXJ1bi0yNjZyMScpLHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJykscGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpXToKMzg2OiAgICBpZiBzcGVjIGlzIE5vbmUgb3Igc3BlYy5sb2FkZXIgaXMgTm9uZTogcmFpc2UgQmFja3VwRXJyb3IoJ0dVRVNUMjY2X0lNUE9SVF9TUEVDJykKMzg5OiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9JTVBPUlRfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQozOTA6ICAgIGlmIG5vdCBjYWxsYWJsZShnZXRhdHRyKG1vZCwnZHVtcF9hcmd2JyxOb25lKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9EVU1QX0FSR1ZfTUlTU0lORycpCjM5NjogICAgcmV0dXJuIHsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ2lkJzppbnQodFsndm1pZCddKSwndHlwZSc6J2x4YycsJ2tpbmQnOidseGMnLCdndWVzdF90eXBlJzonbHhjJywnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKSwnbmFtZSc6cm93LmdldCgnbmFtZScsJycpLAo0MDA6ICAgICAgICAgICAgJ2Jsb2NrZXJzJzpbXSwnZGlza3MnOltdLCd0ZW1wbGF0ZSc6Ym9vbChyb3cuZ2V0KCd0ZW1wbGF0ZScsMCkpLCdob29rc2NyaXB0X3ByZXNlbnQnOkZhbHNlLCdsb2NrX3ByZXNlbnQnOkZhbHNlLAo0MDE6ICAgICAgICAgICAgJ3NuYXBzaG90X2hpc3RvcnlfaW5jbHVkZWQnOkZhbHNlLCd1bnVzZWRfdm9sdW1lX2NvdW50JzowLCdjZHJvbV9jb3VudCc6MCwnY2Ryb21fbWVkaWFfaW5jbHVkZWQnOkZhbHNlLCdndWVzdF9yZXN0b3JlX3ZlcmlmaWVkJzpGYWxzZSwKNDA0OmRlZiBwcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpOgo0MDU6ICAgIG9sZD1fbG9hZF9ndWVzdDI2NigpOyBqb2I9X2x4Y19qb2IodCxyb3csbm9kZSk7IHZ6ZHVtcD1zaHV0aWwud2hpY2goJ3Z6ZHVtcCcpIG9yICcvdXNyL2Jpbi92emR1bXAnCjQwNjogICAgdHJ5OiBhcmd2PW9sZC5kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxwYXRobGliLlBhdGgoc2NyYXRjaCksaW50KHRpbWUudGltZSgpKSkKNDA3OiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX0ZBSUxFRCcsdHlwZShlKS5fX25hbWVfXykKNDA4OiAgICBpZiBub3QgaXNpbnN0YW5jZShhcmd2LChsaXN0LHR1cGxlKSkgb3Igbm90IGFyZ3Ygb3Igbm90IGFsbChpc2luc3RhbmNlKHgsc3RyKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfU0hBUEUnKQo0MDk6ICAgIGFyZ3Y9bGlzdChhcmd2KQo0MTA6ICAgIGlmIHBhdGhsaWIuUGF0aChhcmd2WzBdKS5uYW1lIT0ndnpkdW1wJyBvciBzdHIoaW50KHRbJ3ZtaWQnXSkpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UQVJHRVQnKQo0MTE6ICAgIGlmICctLWR1bXBkaXInIGluIGFyZ3Ygb3IgYW55KHguc3RhcnRzd2l0aCgnLS1kdW1wZGlyPScpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9VTkVYUEVDVEVEX0RVTVBESVInKQo0MTI6ICAgIGlmIG5vdCBhbnkoeD09Jy0tc3Rkb3V0JyBvciB4LnN0YXJ0c3dpdGgoJy0tc3Rkb3V0PScpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9OT19TVERPVVQnKQo0MTM6ICAgIGlmIHN0cihzY3JhdGNoKSBub3QgaW4gYXJndiBhbmQgbm90IGFueSh4PT0nLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NDUkFUQ0gnKQo0MTQ6ICAgICMgQWNjZXB0ZWQgMjcwLzI4MiBpbXBsZW1lbnRhdGlvbiBwYXNzZWQgbWFwcGVkIHNjcmF0Y2ggdG8gdnpkdW1wIGFzIHRtcGRpci4KNDE1OiAgICBpZiAnLS10bXBkaXInIGluIGFyZ3Y6CjQxNjogICAgICAgIGk9YXJndi5pbmRleCgnLS10bXBkaXInKQo0MTc6ICAgICAgICBpZiBpKzE+PWxlbihhcmd2KSBvciBhcmd2W2krMV0hPXN0cihzY3JhdGNoKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfVE1QRElSX0JJTkRJTkcnKQo0MTg6ICAgIGVsaWYgJy0tdG1wZGlyPScrc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9OT19UTVBESVInKQo0MTk6ICAgIHJldHVybiBhcmd2LGpvYgo0MjE6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDIyOiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0MjQ6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDI1OiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0MzA6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0MzE6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQzMzpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQzNTogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDM3OiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDM4OiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDQ0OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo0NDg6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0NDk6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjQ1MjogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNDUzOiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjQ1NTogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjQ1ODogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo0NTk6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjQ2MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjQ2MTogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjQ2MjogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjQ2NTogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjQ2NzogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNDY4OiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNDcwOiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjQ3MjogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNDczOiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo0NzQ6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo0NzU6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjQ3NzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNDc4OiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjQ4MDogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo0ODQ6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo0ODY6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjQ4NzogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjQ5MDogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNDk0OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1MDg6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTExOmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1MTM6ICAgIGZvciB0IGluIHRhcmdldHM6CjUxODpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjUyNzpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjUyODogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjUyOTogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjUzMTpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1MzM6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTM2OiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1NDE6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNTQ1OiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo1NDk6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNTU0OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo1NTk6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNTYxOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjU2MjogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjU2MzogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjU2NDogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo1NjU6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjU2NjogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo1Njc6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjU3MTogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNTcyOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNTczOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNTc0OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjU3NTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjU3NjogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNTc3OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNTc5OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjYwMjogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjYwNTogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjA5OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2MTA6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MTE6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjYxMjogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo2ODU6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjY4ODogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNjg5OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNjkwOiAgICB0YXJnZXQ9aGl0c1swXQo2OTg6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjY5OTogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjcwMjogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjcxNzogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjcyNTogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzI5OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjczMjogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3MzM6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3NDQ6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo3NDY6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKNzQ4OmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKNzQ5OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo3NTE6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KNzUyOiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKNzU0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo3NTc6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKNzY0OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKNzY3OiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQo3Njk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfSlNPTicpCjc3MTogICAgaWYgbm90IHBhdGggb3Igbm90IGlzaW5zdGFuY2Uoc2l6ZSxpbnQpIG9yIHNpemU8PTAgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScsZXhwZWN0ZWQgb3IgJycpOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19CVUlMREVSX1JFU1VMVCcpCjc3ODogICAgICAgICAgICAgICAgY29kZT0iaW1wb3J0IGJhc2U2NCxzeXM7IHA9c3lzLmFyZ3ZbMV07IG89aW50KHN5cy5hcmd2WzJdKTsgbj1pbnQoc3lzLmFyZ3ZbM10pOyBmPW9wZW4ocCwncmInKTsgZi5zZWVrKG8pOyBiPWYucmVhZChuKTsgZi5jbG9zZSgpOyBzeXMuc3Rkb3V0LndyaXRlKGJhc2U2NC5iNjRlbmNvZGUoYikuZGVjb2RlKCkpIgo3Nzk6ICAgICAgICAgICAgICAgIGI2ND1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctYycsY29kZSxwYXRoLHN0cihvZmYpLHN0cih0YWtlKV0sTm9uZSx0aW1lb3V0PTYwKS5zdHJpcCgpCjc4MTogICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fUUdBX0NIVU5LX0JBU0U2NCcpCjc4MjogICAgICAgICAgICAgICAgaWYgbGVuKGIpIT10YWtlOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfTEVOR1RIJykKNzg3OiAgICAgICAgcWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3JtJywnLWYnLHBhdGhdLE5vbmUsdGltZW91dD0zMCkKNzg5OiAgICAgICAgaWYgcHJpbWFyeSBpcyBOb25lOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19HVUVTVF9URU1QX0NMRUFOVVAnKQo3OTE6ICAgIGlmIGdvdCE9c2l6ZSBvciBoLmhleGRpZ2VzdCgpIT1leHBlY3RlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fU1RSRUFNX1NIQV9NSVNNQVRDSCcpCjc5MjogICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid4ZW5mb3JvJywnc2l0ZSc6dFsnc2x1ZyddLCd2bWlkJzp0Wyd2bWlkJ10sJ25vZGUnOnRbJ25vZGUnXSwnZHVtcF9zdHJhdGVneSc6dFsnZHVtcF9zdHJhdGVneSddLCdkYl9kdW1wX2J5dGVzJzpqLmdldCgnZGJfYnl0ZXMnKX0sTm9uZQo4MDU6ICAgICAgICBlbHNlOiBvaz0oc3NoX3JlbW90ZShub2RlLFsndGVzdCcsJy1lJywnLycrcmVsXSx0aW1lb3V0PTIwLGNoZWNrPUZhbHNlKS5yZXR1cm5jb2RlPT0wKQo4MDg6ICAgIGlmIG5vdCByZXF1aXJlZC5pc3N1YnNldChzZXQocGF0aHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ05PREVfQlVORExFX1JFUVVJUkVEX1BBVEhfTUlTU0lORycpCjgxMDogICAgYXJndj1bJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLSddK3BhdGhzCjgxMTogICAgaWYgbm9kZT09J3B2ZTAxJzogcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTMwMCkKODEzOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKODE0OiAgICAgICAgcGlwZV90b196c3RkKFtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0scGF5bG9hZCx0aW1lb3V0PTYwMCkKODE1OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX25vZGVfYnVuZGxlJywnbm9kZSc6bm9kZSwncmVjb3ZlcnlfcG9saWN5JzonQ0xFQU5fSU5TVEFMTF9KT0lOX1JFQ09OQ0lMRV9OT1RfQkxJTkRfUE1YQ0ZTX09WRVJXUklURScsJ21lbWJlcl9yb290cyc6bGVuKHBhdGhzKX0sTm9uZQo4MTc6ZGVmIGNhcHR1cmVfdGFyZ2V0KHQsZ2VuLHdvcmspOgo4MjY6ICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDQVBUVVJFX1RZUEVfVU5LTk9XTicpCjgzMTogICAgICAgIHNzaF9yZW1vdGUoY2xlYW51cFsnbm9kZSddLFsncm0nLCctcmYnLCctLScsY2xlYW51cFsncGF0aCddXSx0aW1lb3V0PTYwKQo4MzQ6ICAgIGVuZ2luZT1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLWNvbnRyb2wtYmFja3VwJyk= +PIPE_34_SCORE=3 +PIPE_34_BASENAME=homelab-backup-retention-gc +PIPE_34_PATH_SHA256=84fd8be6ff7bf620fc553010a47c881e35b6a01960f5ea1bda22fe6aca8f826d +PIPE_34_FILE_SHA256=a96e607107e7b4e7762f7cb7f0e91f8c3ec6b793ed4604633c125433839ac909 +PIPE_34_SCHEDULE_TARGET_COUNT=0 +PIPE_34_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_34_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_34_VZDUMP_QEMU_COUNT=0 +PIPE_34_RCLONE_COUNT=31 +PIPE_34_CLOUD_QUORUM_COUNT=1 +PIPE_34_SEAL_WRITTEN_COUNT=1 +PIPE_34_PAYLOAD_PARTS_COUNT=0 +PIPE_34_TRANSPORT_COUNT=0 +PIPE_34_RESTORE_VALIDATION_COUNT=0 +PIPE_34_SCHEDULE_RESULT_COUNT=0 +PIPE_34_RELEVANT_LINE_COUNT=188 +PIPE_34_RELEVANT_B64=NTpUQVNLX0lEPWJhY2t1cC1yZXRlbnRpb24tc2FmZS1nYy12MQo3OlNUQVRFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtCjg6UkVURU5USU9OX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MKOTpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXJldGVudGlvbi1zYWZlLWdjLmpzb24KMTA6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLmxvY2sKMTE6RElTUEFUQ0hFUl9MT0NLPS9ydW4vbG9jay9ob21lbGFiLWJhY2t1cC1kaXNwYXRjaGVyLmxvY2sKMTI6Vk1fTE9DSz0vcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jawoxMzpBUFBfTE9DSz0vcnVuL2xvY2svaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2sKMTQ6SEVBVllfTE9DSz0vcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2sKMTU6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdAoxNjpSRU1PVEVfQj1wdmUwMS1tYWlsLTAyLWNyeXB0CjE3OlJFTU9URV9ST09UPWhvbWVsYWItYmFja3VwcwoxODpSQ0xPTkVfQ09ORklHX1NPVVJDRT0iJHtSQ0xPTkVfQ09ORklHOi0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZn0iCjE5OlZNX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1mcmVzaG5lc3MtcHJvYmUKMjA6QVBQX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLWFwcC1jbG91ZC1xdW9ydW0tZnJlc2huZXNzLXByb2JlCjIxOlJFR0lTVFJZX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9UQVJHRVRfUkVHSVNUUllfSEVMUEVSOi0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5fSIKMjM6R0ZTX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZX0hFTFBFUjotL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItYmFja3VwLWdmcy1wb2xpY3l9IgoyNTpHRlNfUE9MSUNZPSIke0hPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1k6LS9ldGMvaG9tZWxhYi1iYWNrdXAvZ2ZzLXJldGVudGlvbi5qc29ufSIKMjY6Q09OVFJPTF9FVklERU5DRV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2NvbnRyb2wtcmVzdG9yZS12YWxpZGF0aW9uL2NvbnRyb2wtYm9vdHN0cmFwCjI3OltbIC14ICIkUkVHSVNUUllfSEVMUEVSIiAmJiAhIC1MICIkUkVHSVNUUllfSEVMUEVSIiBdXSB8fCB7IHByaW50ZiAnR0NfU1RBVFVTPUVSUk9SfFJPT1RfQ0FVU0U9VEFSR0VUX1JFR0lTVFJZX0hFTFBFUl9NSVNTSU5HXG4nID4mMjsgZXhpdCA2OTsgfQoyODpbWyAiJChzaGEyNTZzdW0gIiRSRUdJU1RSWV9IRUxQRVIifGF3ayAne3ByaW50ICQxfScpIiA9PSAiJFJFR0lTVFJZX0hFTFBFUl9TSEFfRVhQRUNURUQiIF1dIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1UQVJHRVRfUkVHSVNUUllfSEVMUEVSX1NIQV9EUklGVFxuJyA+JjI7IGV4aXQgNjU7IH0KMjk6IiRSRUdJU1RSWV9IRUxQRVIiIHZhbGlkYXRlID4vZGV2L251bGwgfHwgeyBwcmludGYgJ0dDX1NUQVRVUz1FUlJPUnxST09UX0NBVVNFPVRBUkdFVF9SRUdJU1RSWV9JTlZBTElEXG4nID4mMjsgZXhpdCA2NjsgfQozMjpIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiB2YWxpZGF0ZSA+L2Rldi9udWxsIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1HRlNfUE9MSUNZX0lOVkFMSURcbicgPiYyOyBleGl0IDY2OyB9CjMzOkdGU19XRUVLTFk9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgd2Vla2x5LWJ1Y2tldHMpIgozNDpHRlNfTU9OVEhMWT0iJChIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBtb250aGx5LWJ1Y2tldHMpIgozNTpHRlNfQ1JJVElDQUxfQ09VTlQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgY3JpdGljYWwtbG9naWNhbHMgfCB3YyAtbCkiCjUzOnNhZmVfZ2VuZXJhdGlvbigpewo1NDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIKNTU6ICBbWyAiJGdlbmVyYXRpb24iID1+IF4ke2xvZ2ljYWx9LXB2ZTBbMTIzXS1bMC05XXs4fVRbMC05XXs2fVokIF1dCjYwOiAgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUKNjE6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRUTVBST09UL3JjbG9uZS5jb25mIgo2MzpzdGF0ZV9maWxlcygpewo2NTogIGRpcj0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwiCjY2OiAgbm9kZV9leGVjICIkbm9kZSIgZmluZCAiJGRpciIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnQgMj4iJFRNUFJPT1Qvc3RhdGUtZmluZC5lcnIiIHx8IHsKNjk6ICAgIGRpZSAiU1RBVEVfRU5VTV9GQUlMRURfJHtsb2dpY2FsfV8ke25vZGV9IiA2OQo3MjpzdHJpY3Rfc3RhdGUoKXsKNzM6ICBsb2NhbCBqc29uPSIkMSIgbG9naWNhbD0iJDIiIGdlbmVyYXRpb249IiQzIgo3NDogIGpxIC1lIC0tYXJnIGwgIiRsb2dpY2FsIiAtLWFyZyBnICIkZ2VuZXJhdGlvbiIgJy5zY2hlbWE9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQgLmxvZ2ljYWxfaWQ9PSRsIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnNlYWxfd3JpdHRlbj09dHJ1ZSBhbmQgLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmxvY2FsX2RlbGV0ZV9hbGxvd2VkPT10cnVlIGFuZCAubG9jYWxfcGF5bG9hZF9wcmVzZW50PT1mYWxzZSBhbmQgLmxvY2FsX2NsZWFudXA9PSJPSyInIDw8PCIkanNvbiIgPi9kZXYvbnVsbAo3NjpsYXRlc3RfcmVzdG9yZV9wcm92ZW4oKXsKNzc6ICBsb2NhbCBsb2dpY2FsPSIkMSIgbm9kZSBvdXQgZGVjaXNpb24gZ2VuZXJhdGlvbiBsYXRlc3QKODM6ICAgICAgW1sgIiRkZWNpc2lvbiIgPT0gU0VBTEVEX1BST1ZFTiBdXSB8fCByZXR1cm4gMQo4ODogICAgICBbWyAiJGRlY2lzaW9uIiA9PSBTRUFMRURfUFJPVkVOIF1dIHx8IHJldHVybiAxCjkxOiAgICAgIGxhdGVzdD0iJChmaW5kICIkU1RBVEVfUk9PVC9jb250cm9sLWJvb3RzdHJhcC12MiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnRmICclZlxuJyB8IExDX0FMTD1DIHNvcnQgfCB0YWlsIC1uIDEpIgo5MjogICAgICBbWyAtbiAiJGxhdGVzdCIgXV0gfHwgcmV0dXJuIDEKOTM6ICAgICAgZ2VuZXJhdGlvbj0iJHtsYXRlc3QlLmpzb259Igo5NDogICAgICBbWyAtcyAiJENPTlRST0xfRVZJREVOQ0VfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIiAmJiAhIC1MICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IHJldHVybiAxCjk1OiAgICAgIGpxIC1lIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAnLnJlc3VsdD09Ik9LIiBhbmQgLmxvZ2ljYWxfaWQ9PSJjb250cm9sLWJvb3RzdHJhcC12MiIgYW5kIC5nZW5lcmF0aW9uPT0kZyBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUnICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iID4vZGV2L251bGwKMTAwOnJlbW90ZV9zZXQoKXsKMTAxOiAgbG9jYWwgcmVtb3RlPSIkMSIKMTAyOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiB8IGF3ayAtRi8gJ05GPT0zICYmICQxIT0iIiAmJiAkMiE9IiJ7cHJpbnQgJDEiLyIkMn0nIHwgTENfQUxMPUMgc29ydCAtdQoxMDU6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuZXJhdGlvbj0iJDIiIGYKMTA2OiAgZj0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxMDc6ICBbWyAtcyAiJGYiICYmICEgLUwgIiRmIiBdXSAmJiBqcSAtZSAnLnN0YXR1cz09IkRPTkUiIGFuZCAucmVtb3RlX2FfYWJzZW50PT10cnVlIGFuZCAucmVtb3RlX2JfYWJzZW50PT10cnVlJyAiJGYiID4vZGV2L251bGwKMTEwOiAgbG9jYWwgbG9naWNhbD0iJDEiIGdlbmVyYXRpb249IiQyIiBmCjExMTogIGY9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMTM0OiAgbG9jYWwgZj0iJHtIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEU6LX0iIGV4cGVjdGVkPSIke0hPTUVMQUJfUkVURU5USU9OX1BJTk5FRF9ERUxFVEVfU0hBMjU2Oi19IiBhY3R1YWwgbGluZSBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgY291bnQ9MAoxNDM6ICAgIGdlbmVyYXRpb249IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15nZW5lcmF0aW9uPS8pe3N1YigvXmdlbmVyYXRpb249LywiIiwkaSk7cHJpbnQgJGl9fScgPDw8IiRsaW5lIikiCjE0NTogICAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTQ2OiAgICBzdGF0ZV9zaGE9IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15zdGF0ZV9zaGEyNTY9Lyl7c3ViKC9ec3RhdGVfc2hhMjU2PS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxNDc6ICAgIFtbICIkbGluZSIgPT0gIkRFTEVURXxsb2dpY2FsPSRsb2dpY2FsfGdlbmVyYXRpb249JGdlbmVyYXRpb258b3duZXI9JG93bmVyfHN0YXRlX2ZpbGU9JHN0YXRlX2ZpbGV8c3RhdGVfc2hhMjU2PSRzdGF0ZV9zaGEiIF1dIHx8IGRpZSBQSU5ORURfREVMRVRFX0xJTkVfRk9STUFUX0lOVkFMSUQgNjYKMTQ5OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiUElOTkVEX0RFTEVURV9HRU5FUkFUSU9OX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTUwOiAgICBbWyAiJHN0YXRlX2ZpbGUiID09ICIkU1RBVEVfUk9PVC8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIiBdXSB8fCBkaWUgIlBJTk5FRF9ERUxFVEVfU1RBVEVfUEFUSF9JTlZBTElEXyR7bG9naWNhbH0iIDY2CjE1MTogICAgW1sgIiRzdGF0ZV9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUElOTkVEX0RFTEVURV9TVEFURV9TSEFfSU5WQUxJRF8ke2xvZ2ljYWx9IiA2NgoxNTg6ICBsb2NhbCBmPSIkMSIgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgZXhwZWN0ZWRfcGF0aAoxNjA6ICBqcSAtZSAtLWFyZyB0YXNrICIkVEFTS19JRCIgLS1hcmcgY2hhbmdlICIkQ0hBTkdFX0lEIiAnLnNjaGVtYT09ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIgYW5kIC50YXNrX2lkPT0kdGFzayBhbmQgLmNoYW5nZV9pZD09JGNoYW5nZSBhbmQgKC5sb2dpY2FsX2lkfHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5nZW5lcmF0aW9ufHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5zdGF0ZV9zaGEyNTZ8dHlwZSk9PSJzdHJpbmciIGFuZCAoLnN0YXR1cz09IlBMQU5ORUQiIG9yIC5zdGF0dXM9PSJCX0RFTEVURUQiIG9yIC5zdGF0dXM9PSJET05FIiknICIkZiIgPi9kZXYvbnVsbCB8fCBkaWUgIlBJTk5FRF9UWF9DT05URU5UX0lOVkFMSURfJGYiIDY2CjE2MTogIGxvZ2ljYWw9IiQoanEgLWVyICcubG9naWNhbF9pZCcgIiRmIikiOyBnZW5lcmF0aW9uPSIkKGpxIC1lciAnLmdlbmVyYXRpb24nICIkZiIpIjsgc3RhdGVfc2hhPSIkKGpxIC1lciAnLnN0YXRlX3NoYTI1NicgIiRmIikiOyBzdGF0dXM9IiQoanEgLWVyICcuc3RhdHVzJyAiJGYiKSIKMTYzOiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIlBJTk5FRF9UWF9HRU5FUkFUSU9OX1VOU0FGRV8ke2xvZ2ljYWx9IiA2NgoxNjQ6ICBbWyAiJHN0YXRlX3NoYSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQSU5ORURfVFhfU1RBVEVfU0hBX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTY1OiAgZXhwZWN0ZWRfcGF0aD0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxNjY6ICBbWyAiJGYiID09ICIkZXhwZWN0ZWRfcGF0aCIgXV0gfHwgZGllICJQSU5ORURfVFhfUEFUSF9JTlZBTElEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTY3OiAgcHJpbnRmICdERUxFVEV8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHN0YXRlX2ZpbGU9JXN8c3RhdGVfc2hhMjU2PSVzXG4nICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJG93bmVyIiAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIgIiRzdGF0ZV9zaGEiCjE3ODogIGxvY2FsIHBsYW5fZmlsZT0iJDEiIGxpbmUgbG9naWNhbCBnZW5lcmF0aW9uIHJlYXNvbiB0eGYgc3RhdHVzCjE4MTogICAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTgzOiAgICBbWyAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fUExBTk5FRCB8fCAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fQl9ERUxFVEVEIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fVU5FWFBFQ1RFRF9QUk9URUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufV8ke3JlYXNvbn0iIDY2CjE4NDogICAgdHhmPSIkUkVURU5USU9OX1JPT1QvdHJhbnNhY3Rpb25zLyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iCjE4NTogICAgW1sgLXMgIiR0eGYiICYmICEgLUwgIiR0eGYiIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9UWF9NSVNTSU5HXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTg3OiAgICBbWyAiR0NfVFJBTlNBQ1RJT05fJHN0YXR1cyIgPT0gIiRyZWFzb24iIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9TVEFUVVNfTUlTTUFUQ0hfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IiA2NgoxODg6ICAgIGdyZXAgLUZxeCAiJChwaW5uZWRfdHhfaWRlbnRpdHkgIiR0eGYiKSIgIiRIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEUiIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9OT1RfUElOTkVEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMjExOiAgcHJpbnRmICdDT05UUkFDVHx0YXNrPSVzfHBvbGljeT1PV05FUl9BV0FSRV9TQUZFX0dDX0dGU3x0YXJnZXRfcmVnaXN0cnk9Q0FOT05JQ0FMfHZtX2tlZXA9JXN8YXBwX2tlZXA9JXN8Y29udHJvbF9rZWVwPSVzfG1pbl9kZWxldGVfYWdlX3NlY29uZHM9JXN8Z2ZzX2NyaXRpY2FsPSVzfGdmc193ZWVrbHk9JXN8Z2ZzX21vbnRobHk9JXN8Z2ZzX2NvbXBsZXRlZF9wZXJpb2RzX29ubHk9WUVTfG5vbnNlYWxlZD1QUk9URUNUfHJldGlyZWRfcHJlc2VydmU9UFJPVEVDVHx1bmtub3duX25hbWVzcGFjZT1QUk9URUNUfG93bmVyX3N0YXRlX3JlcXVpcmVkPVlFU3xib3RoX2Nsb3Vkc19yZXF1aXJlZD1ZRVN8bGF0ZXN0X3Jlc3RvcmVfcHJvdmVuX3JlcXVpcmVkPVlFU3xsZWdhY3lfaGI9UFJPVEVDVHxsZWdhY3lfcHZlMDE9UFJPVEVDVHxsZWdhY3lfY29udHJvbD1QUk9URUNUXG4nICIkVEFTS19JRCIgIiRWTV9LRUVQIiAiJEFQUF9LRUVQIiAiJENPTlRST0xfS0VFUCIgIiRNSU5fREVMRVRFX0FHRV9TRUNPTkRTIiAiJEdGU19DUklUSUNBTF9DT1VOVCIgIiRHRlNfV0VFS0xZIiAiJEdGU19NT05USExZIgoyMTQ6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdCB0eCBvdXQga2luZCBidWNrZXQKMjE4OiAgaWYgISBIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBpcy1jcml0aWNhbCAiJGxvZ2ljYWwiOyB0aGVuIHJldHVybiAwOyBmaQoyMTk6ICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyMjQ6ICAgIHByaW50ZiAnJXNcdCVzXG4nICIkZ2VuIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwuZ2ZzLWVsaWdpYmxlIgoyMjY6ICBvdXQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgc2VsZWN0ICIkbG9naWNhbCIgPCIkVE1QUk9PVC8kbG9naWNhbC5nZnMtZWxpZ2libGUiKSIgfHwgZGllICJHRlNfU0VMRUNUX0ZBSUxFRF8kbG9naWNhbCIgNjYKMjM4OiAgcmVtb3RlX3NldCAiJFJFTU9URV9BIiA+IiRUTVBST09UL2Euc2V0IgoyMzk6ICByZW1vdGVfc2V0ICIkUkVNT1RFX0IiID4iJFRNUFJPT1QvYi5zZXQiCjI0MDogIGxvY2FsIG5vdyBsb2dpY2FsIG5vZGUga2VlcCBsaWZlY3ljbGUgb3Blbl9jb3VudCBmaWxlIGpzb24gc2NoZW1hIGxpZCBnZW4gc3RhdHVzIHNoYSBzZWFsZWRfYXQgZXBvY2ggYWdlIGlkeCB0eCBnZnNfYnVja2V0IGNhbmRpZGF0ZXM9MCBwcm90ZWN0ZWQ9MCBrZXB0PTAgZ2ZzX2tlcHQ9MAoyNTA6ICAgICAgW1sgIiRmaWxlIiA9PSAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvIiouanNvbiBdXSB8fCB7IHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfHJlYXNvbj1TVEFURV9QQVRIX1VOU0FGRXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI1MTogICAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG5vZGUiIGNhdCAiJGZpbGUiKSIgfHwgZGllICJTVEFURV9SRUFEX0ZBSUxFRF8ke2xvZ2ljYWx9IiA2OQoyNTQ6ICAgICAgZ2VuPSIkKGpxIC1yICcuZ2VuZXJhdGlvbi8vIiInIDw8PCIkanNvbiIpIgoyNTY6ICAgICAgaWYgW1sgIiRzY2hlbWEiICE9IGhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEgfHwgIiRsaWQiICE9ICIkbG9naWNhbCIgXV0gfHwgISBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbiI7IHRoZW4KMjU3OiAgICAgICAgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8cmVhc29uPU5PTkNBTk9OSUNBTF9TVEFURXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlCjI2MDogICAgICBpZiBbWyAiJHN0YXR1cyIgIT0gU0VBTEVEIF1dOyB0aGVuCjI2MjogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPUlOQ09NUExFVEVfJXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJHN0YXR1cyIKMjY2OiAgICAgIHN0cmljdF9zdGF0ZSAiJGpzb24iICIkbG9naWNhbCIgIiRnZW4iIHx8IHsgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249U0VBTEVEX1NUQVRFX05PVF9TVFJJQ1RcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI2NzogICAgICBzZWFsZWRfYXQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjLy8iIicgPDw8IiRqc29uIikiCjI2ODogICAgICBlcG9jaD0iJChkYXRlIC11IC1kICIkc2VhbGVkX2F0IiArJXMgMj4iJFRNUFJPT1QvZGF0ZS5lcnIiKSIgfHwgeyBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1TRUFMRURfVElNRV9JTlZBTElEXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSI7IHByb3RlY3RlZD0kKChwcm90ZWN0ZWQrMSkpOyBjb250aW51ZTsgfQoyNzA6ICAgICAgcHJpbnRmICclc1x0JXNcdCVzXHQlc1x0JXNcdCVzXG4nICIkZ2VuIiAiJGZpbGUiICIkc2hhIiAiJGFnZSIgIiRub2RlIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIKMjcxOiAgICBkb25lIDwgPChzdGF0ZV9maWxlcyAiJG5vZGUiICIkbG9naWNhbCIgfCBMQ19BTEw9QyBzb3J0KQoyNzM6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TE9HSUNBTF9IQVNfSU5DT01QTEVURVxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjc3OiAgICAgIHdoaWxlIElGUz0kJ1x0JyByZWFkIC1yIGdlbiBmaWxlIHNoYSBhZ2Ugbm9kZSBzZWFsZWRfYXQ7IGRvIHByaW50ZiAnS0VFUHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFVElSRURfUFJFU0VSVkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsga2VwdD0kKChrZXB0KzEpKTsgZG9uZSA8IDwoTENfQUxMPUMgc29ydCAtciAiJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIpCjI4MDogICAgaWYgISBsYXRlc3RfcmVzdG9yZV9wcm92ZW4gIiRsb2dpY2FsIjsgdGhlbgoyODE6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TEFURVNUX1JFU1RPUkVfTk9UX1BST1ZFTlxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjg2OiAgICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyOTA6ICAgICAgICBwcmludGYgJ1JFVElSRUR8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19BTFJFQURZX0RPTkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIgoyOTI6ICAgICAgICBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19UUkFOU0FDVElPTl8lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkdHgiOyBwcm90ZWN0ZWQ9JCgocHJvdGVjdGVkKzEpKQoyOTQ6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1QT0xJQ1lfTkVXRVNUXyVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRrZWVwIjsga2VwdD0kKChrZXB0KzEpKQoyOTY6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1NSU5fQUdFfGFnZV9zZWNvbmRzPSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRhZ2UiOyBrZXB0PSQoKGtlcHQrMSkpCjI5ODogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFTU9URV9TRVRfTUlTTUFUQ0hcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSkKMzAwOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX1dFRUtMWXxidWNrZXQ9JXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJGdmc19idWNrZXQiOyBrZXB0PSQoKGtlcHQrMSkpOyBnZnNfa2VwdD0kKChnZnNfa2VwdCsxKSkKMzAyOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX01PTlRITFl8YnVja2V0PSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRnZnNfYnVja2V0Ijsga2VwdD0kKChrZXB0KzEpKTsgZ2ZzX2tlcHQ9JCgoZ2ZzX2tlcHQrMSkpCjMwNDogICAgICAgIHByaW50ZiAnREVMRVRFfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xzdGF0ZV9maWxlPSVzfHN0YXRlX3NoYTI1Nj0lc3xhZ2Vfc2Vjb25kcz0lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkZmlsZSIgIiRzaGEiICIkYWdlIgozMTQ6cmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCgpewozMTU6ICBsb2NhbCByZW1vdGU9IiQxIiBsb2dpY2FsPSIkMiIgZ2VuZXJhdGlvbj0iJDMiIGRpcnMKMzE2OiAgZGlycz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09ULyRsb2dpY2FsIiAtLWRpcnMtb25seSAtLW1heC1kZXB0aCAxIDI+IiRUTVBST09UL2xzZi5lcnIiKSIgfHwgZGllICJSRU1PVEVfTElTVF9GQUlMRURfJHtyZW1vdGV9XyR7bG9naWNhbH0iIDY5CjMxNzogIHByaW50ZiAnJXNcbicgIiRkaXJzIiB8IHNlZCAnczovJDo6JyB8IGdyZXAgLUZxeCAiJGdlbmVyYXRpb24iCjMyMDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIgc3RhdGVfc2hhPSIkMyIgc3RhdHVzPSIkNCIgYV9hYnNlbnQ9IiQ1IiBiX2Fic2VudD0iJDYiIHBhdGggdG1wCjMyMTogIHBhdGg9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzI0OiAganEgLW4gLS1hcmcgdGFzayAiJFRBU0tfSUQiIC0tYXJnIGNoYW5nZSAiJENIQU5HRV9JRCIgLS1hcmcgbCAiJGxvZ2ljYWwiIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAtLWFyZyBzICIkc3RhdGVfc2hhIiAtLWFyZyBzdGF0dXMgIiRzdGF0dXMiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBhYSAiJGFfYWJzZW50IiAtLWFyZ2pzb24gYmEgIiRiX2Fic2VudCIgJ3tzY2hlbWE6ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIsdGFza19pZDokdGFzayxjaGFuZ2VfaWQ6JGNoYW5nZSxsb2dpY2FsX2lkOiRsLGdlbmVyYXRpb246JGcsc3RhdGVfc2hhMjU2OiRzLHN0YXR1czokc3RhdHVzLHVwZGF0ZWRfYXRfdXRjOiRhdCxyZW1vdGVfYV9hYnNlbnQ6JGFhLHJlbW90ZV9iX2Fic2VudDokYmF9JyA+IiR0bXAiCjMyOTogIGxvY2FsIGxpbmU9IiQxIiBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgYWdlIGpzb24gY3VycmVudF9zaGEKMzMxOiAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzMzOiAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM0OiAgc3RhdGVfc2hhPSIkKGF3ayAtRid8JyAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9ec3RhdGVfc2hhMjU2PS8pe3N1YigvXnN0YXRlX3NoYTI1Nj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM2OiAgW1sgIiQobm9kZV9mb3JfbG9naWNhbCAiJGxvZ2ljYWwiKSIgPT0gIiRvd25lciIgXV0gfHwgZGllICJBUFBMWV9PV05FUl9DSEFOR0VEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzM3OiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX0dFTkVSQVRJT05fVU5TQUZFXyR7bG9naWNhbH0iCjMzODogIFtbICIkc3RhdGVfZmlsZSIgPT0gIiRTVEFURV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfUEFUSF9VTlNBRkVfJHtsb2dpY2FsfSIKMzM5OiAganNvbj0iJChub2RlX2V4ZWMgIiRvd25lciIgY2F0ICIkc3RhdGVfZmlsZSIpIiB8fCBkaWUgIkFQUExZX1NUQVRFX1JFQURfJHtsb2dpY2FsfSIgNjkKMzQxOiAgW1sgIiRjdXJyZW50X3NoYSIgPT0gIiRzdGF0ZV9zaGEiIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfRFJJRlRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDI6ICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJBUFBMWV9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzQzOiAgKCggYWdlID49IE1JTl9ERUxFVEVfQUdFX1NFQ09ORFMgKSkgfHwgZGllICJBUFBMWV9BR0VfR1VBUkRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDQ6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0EiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9BX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDU6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0IiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9CX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDY6ICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIFBMQU5ORUQgZmFsc2UgZmFsc2UKMzQ3OiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQjokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM0ODogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM0OTogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgQl9ERUxFVEVEIGZhbHNlIHRydWUKMzUwOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM1MTogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM1MjogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgRE9ORSB0cnVlIHRydWUKMzUzOiAgcHJpbnRmICdHQ19ERUxFVEVfRE9ORXxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXNcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkb3duZXIiCjM1NjogIGxvY2FsIGYgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgc3RhdGVfZmlsZSBqc29uIGN1cnJlbnRfc2hhCjM2MzogICAgZ2VuZXJhdGlvbj0iJChqcSAtZXIgJy5nZW5lcmF0aW9uJyAiJGYiKSIKMzY0OiAgICBzdGF0ZV9zaGE9IiQoanEgLWVyICcuc3RhdGVfc2hhMjU2JyAiJGYiKSIKMzY2OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiVFhfR0VORVJBVElPTl9VTlNBRkVfJGxvZ2ljYWwiCjM2NzogICAgc3RhdGVfZmlsZT0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzY4OiAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG93bmVyIiBjYXQgIiRzdGF0ZV9maWxlIikiIHx8IGRpZSAiVFhfU1RBVEVfUkVBRF8ke2xvZ2ljYWx9IiA2OQozNzA6ICAgIFtbICIkY3VycmVudF9zaGEiID09ICIkc3RhdGVfc2hhIiBdXSB8fCBkaWUgIlRYX1NUQVRFX0RSSUZUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzcxOiAgICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJUWF9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzczOiAgICAgIGlmIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iOyB0aGVuIHJjbG9uZSAtLWNvbmZpZyAiJFRNUFJPT1QvcmNsb25lLmNvbmYiIHB1cmdlICIkUkVNT1RFX0I6JFJFTU9URV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uIjsgZmkKMzc0OiAgICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3NTogICAgICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIEJfREVMRVRFRCBmYWxzZSB0cnVlCjM3NzogICAgaWYgcmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCAiJFJFTU9URV9BIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiI7IHRoZW4gcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iOyBmaQozNzg6ICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3OTogICAgd3JpdGVfdHggIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkc3RhdGVfc2hhIiBET05FIHRydWUgdHJ1ZQozODA6ICAgIHByaW50ZiAnR0NfVFJBTlNBQ1RJT05fUkVTVU1FRHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8c3RhdHVzPURPTkVcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iCjM4MzphY3F1aXJlX2djX2xvY2tzKCl7CjM4NDogIGV4ZWMgNj4iJERJU1BBVENIRVJfTE9DSyI7IGZsb2NrIC1uIDYgfHwgcmV0dXJuIDEKMzg1OiAgZXhlYyA3PiIkVk1fTE9DSyI7IGZsb2NrIC1uIDcgfHwgcmV0dXJuIDEKMzg2OiAgZXhlYyA4PiIkQVBQX0xPQ0siOyBmbG9jayAtbiA4IHx8IHJldHVybiAxCjM4NzogIGV4ZWMgOT4iJEhFQVZZX0xPQ0siOyBmbG9jayAtbiA5IHx8IHJldHVybiAxCjM5MTogIGxvY2FsIGdlbmVyYXRpb24gZmlsZSBzaGEgcmVtb3RlIHJlYWRiYWNrIGRpcnMKMzkyOiAgZ2VuZXJhdGlvbj0iY3IwMDMzLSQoZGF0ZSAtdSArJVklbSVkVCVIJU0lU1opLSQkIgozOTQ6ICBwcmludGYgJ2hvbWVsYWIgcmV0ZW50aW9uIGRlc3RydWN0aXZlIGNhbmFyeSAlc1xuJyAiJGdlbmVyYXRpb24iID4iJGZpbGUiCjM5NjogIGZvciByZW1vdGUgaW4gIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiI7IGRvCjM5NzogICAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgY29weXRvICIkZmlsZSIgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgLS1pbW11dGFibGUgLS1zaXplLW9ubHkKMzk4OiAgICByZWFkYmFjaz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBjYXQgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIKMzk5OiAgICBbWyAiJHJlYWRiYWNrIiA9PSAiJHNoYSIgXV0gfHwgZGllICJDQU5BUllfUkVBREJBQ0tfJHtyZW1vdGV9Igo0MDE6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9COiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDI6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9BOiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDM6ICBmb3IgcmVtb3RlIGluICIkUkVNT1RFX0EiICIkUkVNT1RFX0IiOyBkbwo0MDQ6ICAgIGRpcnM9IiQocmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiAyPiIkVE1QUk9PVC9jYW5hcnktbHNmLmVyciIpIiB8fCBkaWUgIkNBTkFSWV9MSVNUX0ZBSUxFRF8ke3JlbW90ZX0iIDY5CjQwNTogICAgaWYgcHJpbnRmICclc1xuJyAiJGRpcnMiIHwgc2VkICdzOi8kOjonIHwgZ3JlcCAtRnF4ICJyZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIjsgdGhlbiBkaWUgIkNBTkFSWV9QVVJHRV9GQUlMRURfJHtyZW1vdGV9IjsgZmkKNDA3OiAgcHJpbnRmICdDQU5BUllfU1RBVFVTPU9LfGdlbmVyYXRpb249JXN8Y2xvdWRfd3JpdGVzPVlFU3xjbG91ZF9kZWxldGVzPVlFU1xuJyAiJGdlbmVyYXRpb24iCjQxNTogIGlmIGZpbmQgIiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMiIC10eXBlIGYgLW5hbWUgJyouanNvbicgLWV4ZWMganEgLWUgJy5zdGF0dXM9PSJET05FIiBhbmQgLnJlbW90ZV9hX2Fic2VudD09dHJ1ZSBhbmQgLnJlbW90ZV9iX2Fic2VudD09dHJ1ZScge30gXDsgLXByaW50IDI+IiRUTVBST09UL3R4LWZpbmQuZXJyIiB8IGdyZXAgLXEgLjsgdGhlbiBoaXN0PXRydWU7IGZpCjQxODogIGpxIC1uIC0tYXJnIHRhc2sgIiRUQVNLX0lEIiAtLWFyZyBjaGFuZ2UgIiRDSEFOR0VfSUQiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBjYW5hcnkgIiRjYW5hcnlfcHJvdmVuIiAtLWFyZ2pzb24gaGlzdCAiJGhpc3QiIC0tYXJnanNvbiBjYW5kaWRhdGVzICIke2NhbmRpZGF0ZXM6LTB9IiAtLWFyZ2pzb24gcHJvdGVjdGVkICIke3Byb3RlY3RlZDotMH0iIC0tYXJnanNvbiBrZXB0ICIke2tlcHQ6LTB9IiAtLWFyZ2pzb24gZ2ZzX2tlcHQgIiR7Z2ZzX2tlcHQ6LTB9IiAtLWFyZ2pzb24gZGVsZXRlZCAiJGRlbGV0ZWQiIC0tYXJnanNvbiBnZnNfY3JpdGljYWwgIiRHRlNfQ1JJVElDQUxfQ09VTlQiIC0tYXJnanNvbiBnZnNfd2Vla2x5ICIkR0ZTX1dFRUtMWSIgLS1hcmdqc29uIGdmc19tb250aGx5ICIkR0ZTX01PTlRITFkiICd7c2NoZW1hOiJob21lbGFiLWJhY2t1cC1yZXRlbnRpb24tdjEiLHN0YXR1czoiT0siLHRhc2tfaWQ6JHRhc2ssY2hhbmdlX2lkOiRjaGFuZ2UsdXBkYXRlZF9hdF91dGM6JGF0LHBvbGljeTp7dm1fa2VlcDoyLGFwcF9rZWVwOjcsY29udHJvbF9rZWVwOjQsbWluX2RlbGV0ZV9hZ2Vfc2Vjb25kczo4NjQwMCxnZnM6e2VuYWJsZWQ6dHJ1ZSxjcml0aWNhbF92bV9jb3VudDokZ2ZzX2NyaXRpY2FsLHdlZWtseV9jb21wbGV0ZWRfYnVja2V0czokZ2ZzX3dlZWtseSxtb250aGx5X2NvbXBsZXRlZF9idWNrZXRzOiRnZnNfbW9udGhseSxjb21wbGV0ZWRfcGVyaW9kc19vbmx5OnRydWV9fSxvd25lcl9hd2FyZV9nY19wcm92ZW46dHJ1ZSxkZXN0cnVjdGl2ZV9jYW5hcnlfcHJvdmVuOiRjYW5hcnksaGlzdG9yaWNhbF9nY19wcm92ZW46JGhpc3QsbGFzdF9wbGFuOntkZWxldGVfY2FuZGlkYXRlczokY2FuZGlkYXRlcyxwcm90ZWN0ZWQ6JHByb3RlY3RlZCxrZXB0OiRrZXB0LGdmc19rZXB0OiRnZnNfa2VwdH0sbGFzdF9ydW5fZGVsZXRlZDokZGVsZXRlZCxsZWdhY3lfbmFtZXNwYWNlc19wcm90ZWN0ZWQ6WyJoYiIsInB2ZTAxIiwiY29udHJvbC1ib290c3RyYXAiXSxwcm92aWRlcl93b3JtX3Byb3ZlbjpmYWxzZX0nID4iJHRtcCIKNDI0OiAgZXhlYyA1PiIkTE9DSyI7IGZsb2NrIC1uIDUgfHwgZGllIEdDX0xPQ0tfQlVTWSA3NQo0MzM6c2NoZWR1bGVkKCl7CjQzNDogIGV4ZWMgNT4iJExPQ0siOyBmbG9jayAtbiA1IHx8IHsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9U0tJUHxyZWFzb249R0NfTE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQo0NDI6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMSIgUFJFTE9DSzsgZmkKNDQzOiAgaWYgKCggY291bnQgPT0gMCAmJiBvcGVuX3R4ID09IDAgKSk7IHRoZW4gd3JpdGVfaGVhbHRoICIkcDEiIHRydWUgMDsgY2F0ICIkcDEiOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1PS3xkZWxldGVkPTB8dHJhbnNhY3Rpb25zX3Jlc3VtZWQ9MFxuJzsgcmV0dXJuIDA7IGZpCjQ0NDogIGlmICEgYWNxdWlyZV9nY19sb2NrczsgdGhlbiB3cml0ZV9oZWFsdGggIiRwMSIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1CQUNLVVBfTE9DS19CVVNZfGNhbmRpZGF0ZXM9JXN8b3Blbl90cmFuc2FjdGlvbnM9JXNcbicgIiRjb3VudCIgIiRvcGVuX3R4IjsgcmV0dXJuIDA7IGZpCjQ0NTogIGlmIHBpbm5lZF9kZWxldGVfY29udHJhY3RfZW5hYmxlZDsgdGhlbiBwbGFuID4iJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiOyBwaW5uZWRfYXNzZXJ0X2RlbGV0ZV9zY29wZSAiJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiIExPQ0tFRF9QUkVfUkVTVU1FOyBmaQo0NDg6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMiIgTE9DS0VEX1BPU1RfUkVTVU1FOyBmaQo0NDk6ICBpZiAoKCBjb3VudCA9PSAwICkpOyB0aGVuIHdyaXRlX2hlYWx0aCAiJHAyIiB0cnVlIDA7IGNhdCAiJHAyIjsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0wfHRyYW5zYWN0aW9uc19yZXN1bWVkPSVzXG4nICIkb3Blbl90eCI7IHJldHVybiAwOyBmaQo0NTA6ICBjbXAgLXMgPChncmVwICdeREVMRVRFfCcgIiRwMSIgfCBzdGFibGVfZGVsZXRlX3NldCkgPChncmVwICdeREVMRVRFfCcgIiRwMiIgfCBzdGFibGVfZGVsZXRlX3NldCkgfHwgeyB3cml0ZV9oZWFsdGggIiRwMiIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1QTEFOX0NIQU5HRURfQUZURVJfTE9DS1xuJzsgcmV0dXJuIDA7IH0KNDU0OiAgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0lc3x0cmFuc2FjdGlvbnNfcmVzdW1lZD0lc1xuJyAiJGRlbGV0ZWQiICIkb3Blbl90eCIKNDYyOiAgc2NoZWR1bGVkKSBzY2hlZHVsZWQgOzsKNDYzOiAgKikgZGllIFVTQUdFX2NvbnRyYWN0X3BsYW5fY2FuYXJ5X2FjdGl2YXRlX3NjaGVkdWxlZCA2NCA7Ow== +PIPE_35_SCORE=3 +PIPE_35_BASENAME=homelab-mail-cloud-edge-vm-upload +PIPE_35_PATH_SHA256=9b4778c78705e274cf77e0dcd1a8c13b491bba76d6a43e57b3830b005c7c8dff +PIPE_35_FILE_SHA256=f22848d83a7ce13ca331ce9181523d0a8fadcf34f01d0c95186784c6b1f0875f +PIPE_35_SCHEDULE_TARGET_COUNT=0 +PIPE_35_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_35_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_35_VZDUMP_QEMU_COUNT=1 +PIPE_35_RCLONE_COUNT=13 +PIPE_35_CLOUD_QUORUM_COUNT=0 +PIPE_35_SEAL_WRITTEN_COUNT=0 +PIPE_35_PAYLOAD_PARTS_COUNT=0 +PIPE_35_TRANSPORT_COUNT=1 +PIPE_35_RESTORE_VALIDATION_COUNT=0 +PIPE_35_SCHEDULE_RESULT_COUNT=0 +PIPE_35_RELEVANT_LINE_COUNT=75 +PIPE_35_RELEVANT_B64=NTpMT0NLPS9ydW4vaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLmxvY2sKNjpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvbWFpbC1jbG91ZC1lZGdlLXZtLnR4dAo5OlRBUkdFVF9SRU1PVEU9cHZlMDMtbWFpbC0wMy1jcnlwdAoxMDpUQVJHRVRfQkFTRT1mdWxsL2VkZ2Utdm0tdnpkdW1wCjE4OlJFTU9URV9FTlY9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52CjE5OlJFTU9URV9TQ1JJUFQ9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoCjI1OlZNSUQ9bm9uZQoyNzpUQVJHRVRfRElSPW5vbmUKMzA6ICBwcmludGYgIlNUQVRVUz1FUlJPUiBUUz0lcyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPSVzIFJFTU9URT0lcyBERVNUPSVzIEFSQ0hJVkU9JXMgU0laRT0lcyBTSEEyNTY9JXMgVk1JRD0lcyBTRUNSRVRfUFJJTlRFRD1ubyBOT1RFUz0lc1xuIiAiJFRTIiAiJE1PREUiICIkVEFSR0VUX1JFTU9URSIgIiRUQVJHRVRfRElSIiAiJEJBU0VOQU1FIiAiJFNJWkUiICIkU0hBIiAiJFZNSUQiICIkbm90ZSIgPiAiJEhFQUxUSCIKNDI6ZXhlYyA5PiIkTE9DSyIKNDM6aWYgISBmbG9jayAtbiA5OyB0aGVuCjQ0OiAgZWNobyAiU1RBVFVTPUVSUk9SIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBSRUFTT049bG9ja19idXN5IFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPWxvY2tfYnVzeSIgPiAiJEhFQUxUSCIKNDY6ICBlY2hvICJOT1RFUz1sb2NrX2J1c3kiCjU2OlZNSUQ9JChlY2hvICIkSCIgfCBhd2sgJ3tmb3IoaT0xO2k8PU5GO2krKykgaWYoJGkgfiAvXlZNSUQ9Lyl7c3ViKC9eVk1JRD0vLCIiLCRpKTsgcHJpbnQgJGl9fScpCjU4OlRBUkdFVF9ESVI9JFRBUkdFVF9CQVNFLyRUUwo2MTpbICIkVk1JRCIgPSAiMTMwIiBdIHx8IGZhaWwgdm1pZF9ub3RfMTMwIDIKNjQ6Y2FzZSAiJFNPVVJDRSIgaW4gL21udC9zdGFnaW5nL29mZmhvc3QvZWRnZS12bS12emR1bXAtZnJvbS1wdmUwMy92emR1bXAtcWVtdS0xMzAtKi52bWEuenN0KSA7OyAqKSBmYWlsIHNvdXJjZV9wYXRoX2JhZCAyIDs7IGVzYWMKNjc6Y2F0ID4gIiRSRU1PVEVfRU5WIiA8PEVPRgo2OTpUQVJHRVRfUkVNT1RFPSRUQVJHRVRfUkVNT1RFCjcwOlRBUkdFVF9CQVNFPSRUQVJHRVRfQkFTRQo3MTpUQVJHRVRfRElSPSRUQVJHRVRfRElSCjc5OlZNSUQ9JFZNSUQKODM6Y2F0ID4gIiRSRU1PVEVfU0NSSVBUIiA8PCdSRU1PVEVfU0NSSVBUX0VPRicKODc6LiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5lbnYKOTE6V09SSz0iL21udC9zdGFnaW5nL21haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtYXV0by8kVFMiCjk2OlJFTU9URV9QQVJUUz0kVEFSR0VUX0RJUi9wYXJ0cwo5NzpSRU1PVEVfU0hBPSRUQVJHRVRfRElSLyRCQVNFTkFNRS5zaGEyNTYKOTg6UkVNT1RFX01BTklGRVNUPSRUQVJHRVRfRElSL01BTklGRVNULnR4dAo5OTpSRU1PVEVfU1VNUz0kVEFSR0VUX0RJUi9TSEEyNTZTVU1TLnR4dAoxMTE6cmNsb25lIGFib3V0ICIkVEFSR0VUX1JFTU9URToiID4gIiRXT1JLL2xvZ3MvYWJvdXQub3V0IiAyPiIkV09SSy9sb2dzL2Fib3V0LmVyciIgfHwgQUJPVVRfUkM9JD8KMTE0OkRJUlM9IiQocmNsb25lIGxzZiAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFIiAtLWRpcnMtb25seSAyPi9kZXYvbnVsbCB8IHNlZCAncyMvJCMjJyB8IHNvcnQgfHwgdHJ1ZSkiCjExNjogIGlmIHJjbG9uZSBjYXQgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRS8kRC8kQkFTRU5BTUUuc2hhMjU2IiAyPi9kZXYvbnVsbCB8IGdyZXAgLXEgIiRTSEEiOyB0aGVuCjE0NzogIGVjaG8gIlJFTU9URV9CWVRFUz1leGlzdGluZyIKMTQ4OiAgZWNobyAiUkVNT1RFX0NPVU5UPWV4aXN0aW5nIgoxNzE6Y2F0ID4gIiRXT1JLL01BTklGRVNULnR4dCIgPDxFT0YKMTcyOlAxIE1haWwgQ2xvdWQgZWRnZS12bSByZWN1cnJpbmcgY2h1bmtlZCB2emR1bXAgdXBsb2FkCjE3NDpWTUlEPSRWTUlECjE4MjpSRU1PVEU9JFRBUkdFVF9SRU1PVEUKMTgzOlJFTU9URV9ESVI9JFRBUkdFVF9ESVIKMTg4OnJjbG9uZSBta2RpciAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgPiAiJFdPUksvbG9ncy9ta2Rpci5vdXQiIDI+IiRXT1JLL2xvZ3MvbWtkaXIuZXJyIiB8fCBNS0RJUl9SQz0kPwoxOTA6cmNsb25lIGNvcHkgIiRQQVJUU19ESVIiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX1BBUlRTIiAtLXRyYW5zZmVycyAyIC0tY2hlY2tlcnMgNCAtLXJldHJpZXMgMyAtLWxvdy1sZXZlbC1yZXRyaWVzIDEwIC0tcHJvZ3Jlc3MgPiAiJFdPUksvbG9ncy91cGxvYWRfcGFydHMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9wYXJ0cy5lcnIiIHx8IFVQTE9BRF9QQVJUU19SQz0kPwoxOTI6cmNsb25lIGNvcHl0byAiJFdPUksvJEJBU0VOQU1FLnNoYTI1NiIgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfU0hBIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5vdXQiIDI+IiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5lcnIiIHx8IFVQTE9BRF9TSEFfUkM9JD8KMTkzOlVQTE9BRF9NQU5JRkVTVF9SQz0wCjE5NDpyY2xvbmUgY29weXRvICIkV09SSy9NQU5JRkVTVC50eHQiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX01BTklGRVNUIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX21hbmlmZXN0Lm91dCIgMj4iJFdPUksvbG9ncy91cGxvYWRfbWFuaWZlc3QuZXJyIiB8fCBVUExPQURfTUFOSUZFU1RfUkM9JD8KMTk2OnJjbG9uZSBjb3B5dG8gIiRXT1JLL1NIQTI1NlNVTVMudHh0IiAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9TVU1TIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3N1bXMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9zdW1zLmVyciIgfHwgVVBMT0FEX1NVTVNfUkM9JD8KMTk5OnJjbG9uZSBzaXplICIkVEFSR0VUX1JFTU9URTokVEFSR0VUX0RJUiIgLS1qc29uID4gIiRXT1JLL2xvZ3MvcmVtb3RlX3NpemUuanNvbiIgMj4iJFdPUksvbG9ncy9yZW1vdGVfc2l6ZS5lcnIiIHx8IFNJWkVfUkM9JD8KMjAxOnJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfUEFSVFMiIC0tZm9ybWF0ICJwcyIgPiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4iJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLmVyciIgfHwgTFNGX1BBUlRTX1JDPSQ/CjIwMjpSRU1PVEVfUEFSVF9DT1VOVD0iJChncmVwIC1jICJeJEJBU0VOQU1FLnBhcnQtIiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjIwMzpSRU1PVEVfQllURVM9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiYnl0ZXMiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNDpSRU1PVEVfQ09VTlQ9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiY291bnQiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNzpyY2xvbmUgY29weSAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgIiRETF9ESVIvcGFydHMiIC0tdHJhbnNmZXJzIDIgLS1jaGVja2VycyA0IC0tcmV0cmllcyAzIC0tbG93LWxldmVsLXJldHJpZXMgMTAgLS1wcm9ncmVzcyA+ICIkV09SSy9sb2dzL2Rvd25sb2FkX3BhcnRzLm91dCIgMj4iJFdPUksvbG9ncy9kb3dubG9hZF9wYXJ0cy5lcnIiIHx8IERPV05MT0FEX1BBUlRTX1JDPSQ/CjIzNDogIHJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRSIgLS1kaXJzLW9ubHkgMj4vZGV2L251bGwgfCBzZWQgInMjLyQjIyIgfCBzb3J0ID4gIiRESVJfTElTVCIgfHwgUkVURU5USU9OX1JDPSQ/CjIzOTogICAgICBbIC1uICIkT0xEIiBdICYmIHJjbG9uZSBwdXJnZSAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFLyRPTEQiID4+ICIkV09SSy9sb2dzL3JldGVudGlvbi5vdXQiIDI+PiIkV09SSy9sb2dzL3JldGVudGlvbi5lcnIiCjI0NTpmb3IgcmMgaW4gIiRTUExJVF9SQyIgIiRQQVJUX1NIQV9MSVNUX1JDIiAiJE1LRElSX1JDIiAiJFVQTE9BRF9QQVJUU19SQyIgIiRVUExPQURfU0hBX1JDIiAiJFVQTE9BRF9NQU5JRkVTVF9SQyIgIiRVUExPQURfU1VNU19SQyIgIiRTSVpFX1JDIiAiJExTRl9QQVJUU19SQyIgIiRET1dOTE9BRF9QQVJUU19SQyI7IGRvCjI0OTpbICIkUkVNT1RFX1BBUlRfQ09VTlQiID0gIiRQQVJUX0NPVU5UIiBdIHx8IFJVTl9TVEFUVVM9RVJST1IKMjY1OmVjaG8gIlVQTE9BRF9NQU5JRkVTVF9SQz0kVVBMT0FEX01BTklGRVNUX1JDIgoyNjk6ZWNobyAiUkVNT1RFX1BBUlRfQ09VTlQ9JFJFTU9URV9QQVJUX0NPVU5UIgoyNzA6ZWNobyAiUkVNT1RFX0NPVU5UPSRSRU1PVEVfQ09VTlQiCjI3MTplY2hvICJSRU1PVEVfQllURVM9JFJFTU9URV9CWVRFUyIKMjg4OlJFTU9URV9TQ1JJUFRfRU9GCjI5MDpjaG1vZCAwNzU1ICIkUkVNT1RFX1NDUklQVCIKMjkyOnNjcCAtcSAiJFJFTU9URV9FTlYiIHJvb3RAIiRQVkUwMiI6L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52ID4gL3RtcC9wMV9lZGdlX2F1dG9fc2NwX2Vudi5vdXQgMj4vdG1wL3AxX2VkZ2VfYXV0b19zY3BfZW52LmVycgoyOTQ6c2NwIC1xICIkUkVNT1RFX1NDUklQVCIgcm9vdEAiJFBWRTAyIjovdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5yZW1vdGUuc2ggPiAvdG1wL3AxX2VkZ2VfYXV0b19zY3Bfc2NyaXB0Lm91dCAyPi90bXAvcDFfZWRnZV9hdXRvX3NjcF9zY3JpcHQuZXJyCjI5ODogIGZhaWwgcmVtb3RlX3RyYW5zcG9ydF9wcmVwYXJlX2ZhaWxlZCAzCjMwMjogIHNzaCAtbyBCYXRjaE1vZGU9eWVzIC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1hY2NlcHQtbmV3IHJvb3RAIiRQVkUwMiIgImJhc2ggL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoIiB8IHNlZCAtRSAncy9bQS1aYS16MC05Ll8lKy1dK0BbQS1aYS16MC05Li1dKy88ZW1haWw+L2cnCjMwNjpzc2ggLW8gQmF0Y2hNb2RlPXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9YWNjZXB0LW5ldyByb290QCIkUFZFMDIiICJiYXNoIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLnJlbW90ZS5zaCIgPiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IDI+L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLmVycgozMDg6Y2F0IC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQKMzEwOlJFU1VMVD0kKHNlZCAtbiAncy9eUkVTVUxUPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IHRhaWwgLW4xKQozMTE6QUxSRUFEWT0kKHNlZCAtbiAncy9eQUxSRUFEWV9VUExPQURFRD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzEyOlBBUlRfQ09VTlQ9JChzZWQgLW4gJ3MvXlBBUlRfQ09VTlQ9Ly9wJyAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IHwgaGVhZCAtbjEpCjMxMzpTSEFfTUFUQ0g9JChzZWQgLW4gJ3MvXlNIQV9NQVRDSD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzE0OlJFTU9URV9CWVRFUz0kKHNlZCAtbiAncy9eUkVNT1RFX0JZVEVTPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IGhlYWQgLW4xKQozMTU6UkVNT1RFX1JFVEVOVElPTl9NT0RFPSQoc2VkIC1uICJzL15SRVRFTlRJT05fTU9ERT0vL3AiIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCB0YWlsIC1uMSkKMzE4OiAgZWNobyAiU1RBVFVTPU9LIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPXJlY3VycmluZy1jaHVua2VkIFJFUVVFU1RfTU9ERT0kTU9ERSBSRVRFTlRJT05fTU9ERT0ke1JFTU9URV9SRVRFTlRJT05fTU9ERTotdW5rbm93bn0gUkVNT1RFPSRUQVJHRVRfUkVNT1RFIERFU1Q9JFRBUkdFVF9ESVIgQVJDSElWRT0kQkFTRU5BTUUgU0laRT0kU0laRSBTSEEyNTY9JFNIQSBQQVJUX1NJWkU9JFBBUlRfU0laRSBQQVJUUz0kUEFSVF9DT1VOVCBBTFJFQURZX1VQTE9BREVEPSRBTFJFQURZIERPV05MT0FEX1ZFUklGWT0kU0hBX01BVENIIFJFVEVOVElPTl9LRUVQPSRLRUVQIFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPW5vbmUiID4gIiRIRUFMVEgiCjMyMjplY2hvICJTVEFUVVM9RVJST1IgVFM9JFRTIFRZUEU9bWFpbC1jbG91ZC1lZGdlLXZtIE1PREU9cmVjdXJyaW5nLWNodW5rZWQgUkVRVUVTVF9NT0RFPSRNT0RFIFJFVEVOVElPTl9NT0RFPSR7UkVNT1RFX1JFVEVOVElPTl9NT0RFOi11bmtub3dufSBSRU1PVEU9JFRBUkdFVF9SRU1PVEUgREVTVD0kVEFSR0VUX0RJUiBBUkNISVZFPSRCQVNFTkFNRSBTSVpFPSRTSVpFIFNIQTI1Nj0kU0hBIEFMUkVBRFlfVVBMT0FERUQ9JEFMUkVBRFkgU0VDUkVUX1BSSU5URUQ9bm8gTk9URVM9dXBsb2FkX2ZhaWxlZCIgPiAiJEhFQUxUSCI= +PIPE_36_SCORE=3 +PIPE_36_BASENAME=plan.json +PIPE_36_PATH_SHA256=e1cb88a4bdd95531e4b10c322d13461d809905dda9e1c80874691102110e0fe3 +PIPE_36_FILE_SHA256=6956807d81729b997b6f12419c0f4b2b1f9cc3608148a6d1c4143713c9724b07 +PIPE_36_SCHEDULE_TARGET_COUNT=0 +PIPE_36_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_36_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_36_VZDUMP_QEMU_COUNT=0 +PIPE_36_RCLONE_COUNT=1 +PIPE_36_CLOUD_QUORUM_COUNT=2 +PIPE_36_SEAL_WRITTEN_COUNT=0 +PIPE_36_PAYLOAD_PARTS_COUNT=0 +PIPE_36_TRANSPORT_COUNT=2 +PIPE_36_RESTORE_VALIDATION_COUNT=0 +PIPE_36_SCHEDULE_RESULT_COUNT=0 +PIPE_36_RELEVANT_LINE_COUNT=29 +PIPE_36_RELEVANT_B64=NDogICJ0aXRsZSI6ICJBZGQgY2Fub25pY2FsIGJhY2t1cCBjbG91ZC1xdW9ydW0gcGF5bG9hZCBmb3VuZGF0aW9uIiwKNzogICJzY29wZSI6ICJiYWNrdXAgdHJhbnNwb3J0IGFuZCBwZXJzaXN0ZW50IGV2aWRlbmNlIGZvdW5kYXRpb24gb25seTsgbm8gYmFja3VwIHNjaGVkdWxlIGN1dG92ZXIiLAo4OiAgInJvb3RfY2F1c2UiOiAiZnJhZ21lbnRlZCBsZWdhY3kgYmFja3VwIHRyYW5zcG9ydHMgdXNlIGluY29uc2lzdGVudCBjaHVuayBzaXplcywgY2xvdWQgb3JkZXJpbmcsIHZlcmlmaWNhdGlvbiBldmlkZW5jZSBhbmQgbG9jYWwgcmV0ZW50aW9uIiwKOTogICJpbnRlbmRlZF9zdGF0ZSI6IHsKMTE6ICAgICJhbGxfYmFja3VwX3BheWxvYWRzX2NodW5rZWQiOiB0cnVlLAoxMjogICAgImNsb3VkX2EiOiAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiLAoxMzogICAgImNsb3VkX2IiOiAicHZlMDEtbWFpbC0wMi1jcnlwdDpob21lbGFiLWJhY2t1cHMiLAoxNjogICAgICAiY2xvdWRfYV91cGxvYWQiLAoxNzogICAgICAiY2xvdWRfYV9mdWxsX3JlY29uc3RydWN0ZWRfc2hhMjU2IiwKMTg6ICAgICAgImNsb3VkX2JfdXBsb2FkIiwKMTk6ICAgICAgImNsb3VkX2JfZnVsbF9yZWNvbnN0cnVjdGVkX3NoYTI1NiIsCjIwOiAgICAgICJjbG91ZF9xdW9ydW1fMiIsCjIyOiAgICAgICJwZXJzaXN0ZW50X3NlYWxlZF9ldmlkZW5jZSIKMjQ6ICAgICJjbG91ZF9xdW9ydW1fcmVxdWlyZWQiOiAyLAoyNTogICAgImxvY2FsX2NvbXBsZXRlX3JldGVudGlvbl9hZnRlcl9zZWFsIjogMCwKMjY6ICAgICJpbW11dGFibGVfZ2VuZXJhdGlvbnMiOiB0cnVlLAoyNzogICAgInJlc3VtZV9pbmNvbXBsZXRlX2dlbmVyYXRpb24iOiB0cnVlLAozMTogICAgIm5vX3BhcmFsbGVsX2hlYXZ5X2JhY2t1cCI6IHRydWUsCjMyOiAgICAibm9fZXhpc3RpbmdfYmFja3VwX2V4ZWN1dGlvbiI6IHRydWUsCjM1OiAgICAibm9fZ2VuZXJhdGVkX2Rlc2lyZWRfc3RhdGVfZWRpdCI6IHRydWUsCjM2OiAgICAibm9fY2xvdWRfcmV0ZW50aW9uX211dGF0aW9uIjogdHJ1ZQozOTogICAgImd1ZXN0X3J1bnRpbWVfc3RhdGUiLAo0MTogICAgInZtOTEzMF9zdG9wcGVkX3N0YXRlIiwKNDM6ICAgICJyY2xvbmVfY29uZmlndXJhdGlvbiIsCjQ0OiAgICAiY2xvdWRfZXhpc3RpbmdfZ2VuZXJhdGlvbnMiLAo0NTogICAgImJhY2t1cF9tYXRyaXhfc2VtYW50aWNzIiwKNTE6ICAicGxhbm5lZF90YXNrX2lkIjogImJhY2t1cC1jbG91ZC1xdW9ydW0tZm91bmRhdGlvbi12MSIsCjUzOiAgImNsb3VkX2NoYW5nZWQiOiBmYWxzZSwKNTU6ICAiYmFja3VwX3N0YXJ0ZWQiOiBmYWxzZSw= +PIPE_37_SCORE=3 +PIPE_37_BASENAME=task.json +PIPE_37_PATH_SHA256=252e54674e80e87c1429781cce93e3a890d9219586f2cfc934bb48afbfe24fc1 +PIPE_37_FILE_SHA256=ba639c142591b39ee00c069d02f663b9d54ed722a9a5a82f09a8dd181cae9a20 +PIPE_37_SCHEDULE_TARGET_COUNT=0 +PIPE_37_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_37_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_37_VZDUMP_QEMU_COUNT=0 +PIPE_37_RCLONE_COUNT=4 +PIPE_37_CLOUD_QUORUM_COUNT=2 +PIPE_37_SEAL_WRITTEN_COUNT=0 +PIPE_37_PAYLOAD_PARTS_COUNT=0 +PIPE_37_TRANSPORT_COUNT=1 +PIPE_37_RESTORE_VALIDATION_COUNT=0 +PIPE_37_SCHEDULE_RESULT_COUNT=0 +PIPE_37_RELEVANT_LINE_COUNT=38 +PIPE_37_RELEVANT_B64=MzogICJ0YXNrX2lkIjogImJhY2t1cC1jbG91ZC1xdW9ydW0tZm91bmRhdGlvbi12MSIsCjQ6ICAidGFyZ2V0X2hvc3QiOiAicHZlMDEuZ3JhbTEucnUiLAo5OiAgICAiZGVzaXJlZF9zdGF0ZV9jbGVhbiI6IHRydWUsCjExOiAgICAiYWN0aXZlX2JhY2t1cF9yZXN0b3JlX21heCI6IDAKMTQ6ICAgICIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1yY2xvbmUtY29weS1jaHVua2VkIiwKMTU6ICAgICIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1yY2xvbmUtY29weS1mbGF0LWNodW5rZWQiLAoxNjogICAgIi9zcnYvaG9tZWxhYi1vcHMvdGFza3MvY2x1c3Rlci1jbG91ZC1xdW9ydW0tdm0xNjAtY2FuYXJ5LXYxL2Fzc2V0cy92bTE2MC1jbG91ZC1xdW9ydW0td29ya2VyLnNoIgoyMjogICAgIiRIT01FTEFCX1JVTl9ESVIvc2VhbC5qc29uIiwKMzA6ICAgICAgInZlcmlmaWNhdGlvbiI6ICJyZWNvcmRzIGlzb2xhdGVkIGZvdW5kYXRpb24gcHJlcmVxdWlzaXRlcyBhbmQgZXhhY3QgdHJhbnNwb3J0IHBvbGljeSIKMzU6ICAgICAgInZlcmlmaWNhdGlvbiI6ICJleGVjdXRlcyBhIHN5bnRoZXRpYyBmYWtlLWNsb3VkIGZpeHR1cmUgd2l0aCBNaUItYWxpZ25lZCB0ZXN0IGNodW5rcyB3aGlsZSBhc3NlcnRpbmcgcHJvZHVjdGlvbiBjaHVuayBzaXplIGlzIGV4YWN0bHkgNTEyIE1pQiIKNDM6ICAgICAgInBhdGgiOiAiJEhPTUVMQUJfUlVOX0RJUi9zZWFsLmpzb24iLAo0NDogICAgICAicHJvZHVjZXIiOiAicGhhc2VzL3NlYWwuc2giLAo0NTogICAgICAidmVyaWZpY2F0aW9uIjogInJlY29yZHMgcmVwb3NpdG9yeS1vbmx5IGZvdW5kYXRpb24gdmFsaWRhdGlvbiBzZWFsIHdpdGggcHJvZHVjdGlvbl9jaGFuZ2VkPWZhbHNlIgo1MTogICAgICAicnVudGltZSI6ICJiYXNoLGpxLHJjbG9uZSxzaGEyNTZzdW0sZGQsc3RhdCxmaW5kLHNvcnQsbWt0ZW1wLHJlYWxwYXRoLGNtcCxmbG9jayxhd2ssZ3JlcCxjYXQsY3AsZGlybmFtZSx3YyxjaG1vZCxta2RpcixtdixybSxiYXNlbmFtZSxyZWFkbGluayxoZWFkLHRhaWwsY3V0LGRhdGUsZW52IiwKNTc6ICAgICJ2ZXJpZmljYXRpb24iOiAibm8gcHJvZHVjdGlvbiwgc3lzdGVtZCwgZGVzaXJlZC1zdGF0ZSwgZ3Vlc3Qgb3IgY2xvdWQgc3RhdGUgd2FzIG11dGF0ZWQiCjYzOiAgICAiZGVzaXJlZF9zdGF0ZSIsCjY0OiAgICAicmNsb25lX2NvbmZpZ3VyYXRpb24iLAo2NTogICAgImNsb3VkX29iamVjdHMiLAo2NjogICAgImd1ZXN0X3J1bnRpbWVfc3RhdGUiLAo2ODogICAgInZtOTEzMF9zdG9wcGVkX3N0YXRlIiwKNjk6ICAgICJiYWNrdXBfbWF0cml4X3NlbWFudGljcyIsCjc3OiAgICAicG9saWN5IjogImFsbCBiYWNrdXAgcGF5bG9hZHMgYXJlIGNodW5rZWQgcmVnYXJkbGVzcyBvZiBzaXplIiwKNzk6ICAgICJjbG91ZF9hIjogInB2ZTAxLW1haWwtMDEtY3J5cHQ6aG9tZWxhYi1iYWNrdXBzIiwKODA6ICAgICJjbG91ZF9iIjogInB2ZTAxLW1haWwtMDItY3J5cHQ6aG9tZWxhYi1iYWNrdXBzIiwKODE6ICAgICJjbG91ZF9xdW9ydW1fcmVxdWlyZWQiOiAyLAo4NDogICAgICAiY2xvdWRfYV9jb21wbGV0ZV91cGxvYWQiLAo4NTogICAgICAiY2xvdWRfYV9mdWxsX3JlY29uc3RydWN0ZWRfdmVyaWZ5IiwKODY6ICAgICAgImNsb3VkX2JfY29tcGxldGVfdXBsb2FkIiwKODc6ICAgICAgImNsb3VkX2JfZnVsbF9yZWNvbnN0cnVjdGVkX3ZlcmlmeSIsCjg4OiAgICAgICJjbG91ZF9xdW9ydW1fMiIsCjkwOiAgICAgICJzZWFsZWRfZXZpZGVuY2UiCjkzOiAgICAiaW1tdXRhYmxlX2dlbmVyYXRpb25fcmVxdWlyZWQiOiB0cnVlLAo5NDogICAgInJlc3VtZV9pbmNvbXBsZXRlX2dlbmVyYXRpb25fcmVxdWlyZWQiOiB0cnVlLAo5NTogICAgImxvY2FsX2NvbXBsZXRlX3JldGVudGlvbl9hZnRlcl9zZWFsIjogMCwKOTc6ICAgICJ2bTE2MF9yZWZlcmVuY2Vfd29ya2VyX3NoYTI1NiI6ICI1N2QxYjFmYTc4OGJlODI0Yjk3MDc1ZjcyMjE0MGMyNDk4OGMxZmE5MTJhYTU5ZDA0NjQwMjdlYjQ4YzA2MjcxIgoxMDA6ICAicmVtb3RlX3NjcmlwdHMiOiBbCjEwMTogICAgImFzc2V0cy9ob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkIgoxMDc6ICAgICJzZWFsIjogInBoYXNlcy9zZWFsLnNoIg== +PIPE_38_SCORE=3 +PIPE_38_BASENAME=verify.sh +PIPE_38_PATH_SHA256=c154e206d66d725f4c2e6ed46784b38cd37ca1065ffa90bcd1a9b381bb3a02f3 +PIPE_38_FILE_SHA256=ac05964b3314d4e70f4581a9aff3d45141093820c8f8de81b748be9b325992ea +PIPE_38_SCHEDULE_TARGET_COUNT=0 +PIPE_38_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_38_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_38_VZDUMP_QEMU_COUNT=1 +PIPE_38_RCLONE_COUNT=4 +PIPE_38_CLOUD_QUORUM_COUNT=1 +PIPE_38_SEAL_WRITTEN_COUNT=0 +PIPE_38_PAYLOAD_PARTS_COUNT=0 +PIPE_38_TRANSPORT_COUNT=0 +PIPE_38_RESTORE_VALIDATION_COUNT=0 +PIPE_38_SCHEDULE_RESULT_COUNT=0 +PIPE_38_RELEVANT_LINE_COUNT=12 +PIPE_38_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKMTI6Q1VSUkVOVF9TVEFURT0iL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwLyRDVVJSRU5UX0dFTi5qc29uIgoxMzpDVVJSRU5UX1ZBTD0iL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uL3ZtMTUwLyRDVVJSRU5UX0dFTi5qc29uIgoxNjp0ZXN0ICEgLWUgIiRUQVJHRVQiCjE3OnRlc3QgLWYgL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoyMTpqcSAtZSAnLnN0YXR1cz09IlNFQUxFRCIgYW5kIC5jbG91ZF9xdW9ydW09PTIgYW5kIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZCAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQgLnBhcnRfaGFzaGVzX3ZlcmlmaWVkPT10cnVlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRDVVJSRU5UX1NUQVRFIiA+L2Rldi9udWxsCjIzOmZvciByZW1vdGUgaW4gIiRBUkNISVZFX0EiICIkQVJDSElWRV9CIjsgZG8gcmNsb25lIGNhdCAiJHJlbW90ZS9hcmNoaXZlLXNlYWwuanNvbiIgfCBqcSAtZSAtLWFyZyBoICIkQVJDSElWRV9TSEEiICcuc3RhdHVzPT0iU0VBTEVEIiBhbmQgLmFyY2hpdmVfc2hhMjU2PT0kaCBhbmQgLnJldGVudGlvbl9zY29wZT09Ik9VVFNJREVfQ0FOT05JQ0FMX0dGUyInID4vZGV2L251bGw7IHRlc3QgIiQocmNsb25lIGNhdCAiJHJlbW90ZS9hcmNoaXZlLnNoYTI1NiIgfCBhd2sgJ3twcmludCAkMX0nKSIgPSAiJEFSQ0hJVkVfU0hBIjsgZG9uZQoyNDpBX1NIQT0iJChob21lbGFiLXJjbG9uZS1jYXQtY2h1bmtlZCAiJEFSQ0hJVkVfQS8kQVJDSElWRV9OQU1FIiB8IHNoYTI1NnN1bSB8IGF3ayAne3ByaW50ICQxfScpIjsgdGVzdCAiJEFfU0hBIiA9ICIkQVJDSElWRV9TSEEiCjI1OkJfU0hBPSIkKGhvbWVsYWItcmNsb25lLWNhdC1jaHVua2VkICIkQVJDSElWRV9CLyRBUkNISVZFX05BTUUiIHwgc2hhMjU2c3VtIHwgYXdrICd7cHJpbnQgJDF9JykiOyB0ZXN0ICIkQl9TSEEiID0gIiRBUkNISVZFX1NIQSIKMjY6anEgLW4gLS1hcmcgdGFza19pZCAiJFRBU0tfSUQiIC0tYXJnIHN0YXR1cyBPSyAtLWFyZyBjdXJyZW50X2dlbmVyYXRpb24gIiRDVVJSRU5UX0dFTiIgLS1hcmcgYXJjaGl2ZV9hICIkQVJDSElWRV9BIiAtLWFyZyBhcmNoaXZlX2IgIiRBUkNISVZFX0IiIC0tYXJnIGFyY2hpdmVfc2hhMjU2ICIkQVJDSElWRV9TSEEiICd7c3RhdHVzOiRzdGF0dXMsdGFza19pZDokdGFza19pZCxsb2NhbF9yb2xsYmFja19hYnNlbnQ6dHJ1ZSx2bTE1MF9ydW5uaW5nX3NuaWtrZXQ6dHJ1ZSxjdXJyZW50X3Jlc3RvcmVfcHJvb2Zfb2s6dHJ1ZSxhcmNoaXZhbF9hOiRhcmNoaXZlX2EsYXJjaGl2YWxfYjokYXJjaGl2ZV9iLGFyY2hpdmVfc2hhMjU2OiRhcmNoaXZlX3NoYTI1NixhcmNoaXZhbF9hX3N0cmVhbV92ZXJpZmllZDp0cnVlLGFyY2hpdmFsX2Jfc3RyZWFtX3ZlcmlmaWVkOnRydWUsYXVkaXRfaGlzdG9yeV9yZXRhaW5lZDp0cnVlLHByb2R1Y3Rpb25fdmVyaWZpZWQ6dHJ1ZX0nID4gIiRIT01FTEFCX1JVTl9ESVIvdmVyaWZ5Lmpzb24iCjI3OnByaW50ZiAnVkVSSUZZX1NUQVRVUz1PS1xuTE9DQUxfUk9MTEJBQ0tfQUJTRU5UPVlFU1xuVk0xNTA9UlVOTklOR19TTklLS0VUXG5DVVJSRU5UX1JFU1RPUkVfUFJPT0Y9T0tcbkFSQ0hJVkFMX0FfU1RSRUFNX1NIQT1PS1xuQVJDSElWQUxfQl9TVFJFQU1fU0hBPU9LXG5BVURJVF9ISVNUT1JZPVJFVEFJTkVEXG4n +PIPE_39_SCORE=3 +PIPE_39_BASENAME=test_cr_2026_0099_retire_vm150_local_rollback.py +PIPE_39_PATH_SHA256=a8624c08dd88c53179d76cdc11666ba0bece36469495080f4cf88f7b237e423c +PIPE_39_FILE_SHA256=dade29e01af2d859e25b5eafc6ffa3974eaefb348545c70168533db2e0053d08 +PIPE_39_SCHEDULE_TARGET_COUNT=0 +PIPE_39_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_39_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_39_VZDUMP_QEMU_COUNT=1 +PIPE_39_RCLONE_COUNT=2 +PIPE_39_CLOUD_QUORUM_COUNT=1 +PIPE_39_SEAL_WRITTEN_COUNT=0 +PIPE_39_PAYLOAD_PARTS_COUNT=0 +PIPE_39_TRANSPORT_COUNT=0 +PIPE_39_RESTORE_VALIDATION_COUNT=0 +PIPE_39_SCHEDULE_RESULT_COUNT=0 +PIPE_39_RELEVANT_LINE_COUNT=24 +PIPE_39_RELEVANT_B64=MTA6VEFSR0VUID0gIi9tbnQvc3RhZ2luZy9ob21lbGFiLWFkbWluLXJvbGxiYWNrL3NuaWtrZXQtdm0xNTAtcmVidWlsZC12MSIKMTE6QVJDSElWRSA9ICJ2emR1bXAtcWVtdS0xNTAtMjAyNl8wOF8xNC0xNV8xN18zNi52bWEuenN0IgoyNjogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50YXNrWyJtdXRhdGVzIl0sIFtUQVJHRVRdKQoyODogICAgICAgIGZvciB0b2tlbiBpbiAoIlZNMTUwIiwgIlNuaWtrZXQiLCAiY2xvdWQiLCAic2VhbHMiLCAicnVucyIpOgozMjogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHNlbGYudGFza1sicGhhc2VzIl0pLCB7InByZWZsaWdodCIsInByZXBhcmUiLCJkcnktcnVuIiwiYXBwbHkiLCJ2ZXJpZnkiLCJyb2xsYmFjayIsInNlYWwifSkKNDQ6ICAgICAgICBmb3IgdG9rZW4gaW4gKFRBUkdFVCwgQVJDSElWRSwgIjcwMjcyMDk0MzIiLCAiOTZiNGJmMDEwNDBkYTQxMmJmM2I3ODUwNzcyY2Q3MGRmNjA1ZTk3MDQxOTI4MWYxMjdjY2RkNDEyOTgzMWVjYSIsIE9MRF9HRU4sIENVUlJFTlRfR0VOKToKNDY6ICAgICAgICBmb3IgdG9rZW4gaW4gKCJjbG91ZF9xdW9ydW0iLCAiY2xvdWRfYV92ZXJpZmllZCIsICJjbG91ZF9iX3ZlcmlmaWVkIiwgInBhcnRfaGFzaGVzX3ZlcmlmaWVkIiwgImFyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQiLCAicmVtb3RlX2FfYmFzZSIsICJyZW1vdGVfYl9iYXNlIik6CjU2OiAgICAgICAgc2VsZi5hc3NlcnRJbigncmVtb3RlLWEtc2VhbC5qc29uJywgc3JjKQo1NzogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3JlbW90ZS1iLXNlYWwuanNvbicsIHNyYykKNTg6ICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdjcCAtYSAiJFRBUkdFVCInLCBzcmMpCjYwOiAgICBkZWYgdGVzdF9hcHBseV9kZWxldGVzX29ubHlfZXhhY3RfdGFyZ2V0X2FuZF9yZXF1aXJlc19jb25maXJtYXRpb24oc2VsZik6CjYzOiAgICAgICAgc2VsZi5hc3NlcnRJbigncm0gLXJmIC0tb25lLWZpbGUtc3lzdGVtIC0tICIkVEFSR0VUIicsIHNyYykKNjY6ICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdyY2xvbmUgZGVsZXRlJywgc3JjKQo2NzogICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3JjbG9uZSBwdXJnZScsIHNyYykKNjk6ICAgIGRlZiB0ZXN0X3JvbGxiYWNrX3JlaHlkcmF0ZXNfZXhhY3Rfb2xkX2FyY2hpdmVfZnJvbV9jbG91ZF9hKHNlbGYpOgo3MTogICAgICAgIGZvciB0b2tlbiBpbiAoT0xEX0dFTiwgImhvbWVsYWItcmVoeWRyYXRlLWNodW5rZWQtZGlyIiwgImhvbWVsYWItcmVoeWRyYXRlLWZsYXQtY2h1bmtlZC1kaXIiLCAicmVtb3RlX2FfYmFzZSIsICI5NmI0YmYwMTA0MGRhNDEyYmYzYjc4NTA3NzJjZDcwZGY2MDVlOTcwNDE5MjgxZjEyN2NjZGQ0MTI5ODMxZWNhIik6CjczOiAgICAgICAgc2VsZi5hc3NlcnRJbignY3AgLWEgIiRQUkVJTUFHRS8uIiAiJFRBUkdFVC8iJywgc3JjKQo3NDogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ212ICIkUkVDT1ZFUkVEX0FSQ0hJVkUiICIkVEFSR0VULyRBUkNISVZFX05BTUUiJywgc3JjKQo3NjogICAgZGVmIHRlc3RfdmVyaWZ5X2FuZF9zZWFsX2tlZXBfc25pa2tldF9hbmRfYXVkaXRfaGlzdG9yeShzZWxmKToKNzg6ICAgICAgICBzZWxmLmFzc2VydEluKCd0ZXN0ICEgLWUgIiRUQVJHRVQiJywgdmVyaWZ5KQo3OTogICAgICAgIHNlbGYuYXNzZXJ0SW4oJy92YXIvbGliL2hvbWVsYWItYWRtaW4vc2VhbHMvc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxLmpzb24nLCB2ZXJpZnkpCjgyOiAgICAgICAgc2VhbCA9IChUQVNLIC8gInBoYXNlcy9zZWFsLnNoIikucmVhZF90ZXh0KCkKODM6ICAgICAgICBzZWxmLmFzc2VydEluKCdzdGF0dXM6IlNFQUxFRCInLCBzZWFsKQo4NDogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2xvY2FsX3JvbGxiYWNrX3JldGlyZWQ6dHJ1ZScsIHNlYWwp +PIPE_40_SCORE=3 +PIPE_40_BASENAME=homelab-backup-retention-gc +PIPE_40_PATH_SHA256=68bcf5e97e4eda63f88bfee3ece5bc50ccdcbb2a089f97923534e67daf29ee4a +PIPE_40_FILE_SHA256=a96e607107e7b4e7762f7cb7f0e91f8c3ec6b793ed4604633c125433839ac909 +PIPE_40_SCHEDULE_TARGET_COUNT=0 +PIPE_40_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_40_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_40_VZDUMP_QEMU_COUNT=0 +PIPE_40_RCLONE_COUNT=31 +PIPE_40_CLOUD_QUORUM_COUNT=1 +PIPE_40_SEAL_WRITTEN_COUNT=1 +PIPE_40_PAYLOAD_PARTS_COUNT=0 +PIPE_40_TRANSPORT_COUNT=0 +PIPE_40_RESTORE_VALIDATION_COUNT=0 +PIPE_40_SCHEDULE_RESULT_COUNT=0 +PIPE_40_RELEVANT_LINE_COUNT=188 +PIPE_40_RELEVANT_B64=NTpUQVNLX0lEPWJhY2t1cC1yZXRlbnRpb24tc2FmZS1nYy12MQo3OlNUQVRFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtCjg6UkVURU5USU9OX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MKOTpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXJldGVudGlvbi1zYWZlLWdjLmpzb24KMTA6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLmxvY2sKMTE6RElTUEFUQ0hFUl9MT0NLPS9ydW4vbG9jay9ob21lbGFiLWJhY2t1cC1kaXNwYXRjaGVyLmxvY2sKMTI6Vk1fTE9DSz0vcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jawoxMzpBUFBfTE9DSz0vcnVuL2xvY2svaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2sKMTQ6SEVBVllfTE9DSz0vcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2sKMTU6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdAoxNjpSRU1PVEVfQj1wdmUwMS1tYWlsLTAyLWNyeXB0CjE3OlJFTU9URV9ST09UPWhvbWVsYWItYmFja3VwcwoxODpSQ0xPTkVfQ09ORklHX1NPVVJDRT0iJHtSQ0xPTkVfQ09ORklHOi0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZn0iCjE5OlZNX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1mcmVzaG5lc3MtcHJvYmUKMjA6QVBQX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLWFwcC1jbG91ZC1xdW9ydW0tZnJlc2huZXNzLXByb2JlCjIxOlJFR0lTVFJZX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9UQVJHRVRfUkVHSVNUUllfSEVMUEVSOi0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5fSIKMjM6R0ZTX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZX0hFTFBFUjotL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItYmFja3VwLWdmcy1wb2xpY3l9IgoyNTpHRlNfUE9MSUNZPSIke0hPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1k6LS9ldGMvaG9tZWxhYi1iYWNrdXAvZ2ZzLXJldGVudGlvbi5qc29ufSIKMjY6Q09OVFJPTF9FVklERU5DRV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2NvbnRyb2wtcmVzdG9yZS12YWxpZGF0aW9uL2NvbnRyb2wtYm9vdHN0cmFwCjI3OltbIC14ICIkUkVHSVNUUllfSEVMUEVSIiAmJiAhIC1MICIkUkVHSVNUUllfSEVMUEVSIiBdXSB8fCB7IHByaW50ZiAnR0NfU1RBVFVTPUVSUk9SfFJPT1RfQ0FVU0U9VEFSR0VUX1JFR0lTVFJZX0hFTFBFUl9NSVNTSU5HXG4nID4mMjsgZXhpdCA2OTsgfQoyODpbWyAiJChzaGEyNTZzdW0gIiRSRUdJU1RSWV9IRUxQRVIifGF3ayAne3ByaW50ICQxfScpIiA9PSAiJFJFR0lTVFJZX0hFTFBFUl9TSEFfRVhQRUNURUQiIF1dIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1UQVJHRVRfUkVHSVNUUllfSEVMUEVSX1NIQV9EUklGVFxuJyA+JjI7IGV4aXQgNjU7IH0KMjk6IiRSRUdJU1RSWV9IRUxQRVIiIHZhbGlkYXRlID4vZGV2L251bGwgfHwgeyBwcmludGYgJ0dDX1NUQVRVUz1FUlJPUnxST09UX0NBVVNFPVRBUkdFVF9SRUdJU1RSWV9JTlZBTElEXG4nID4mMjsgZXhpdCA2NjsgfQozMjpIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiB2YWxpZGF0ZSA+L2Rldi9udWxsIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1HRlNfUE9MSUNZX0lOVkFMSURcbicgPiYyOyBleGl0IDY2OyB9CjMzOkdGU19XRUVLTFk9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgd2Vla2x5LWJ1Y2tldHMpIgozNDpHRlNfTU9OVEhMWT0iJChIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBtb250aGx5LWJ1Y2tldHMpIgozNTpHRlNfQ1JJVElDQUxfQ09VTlQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgY3JpdGljYWwtbG9naWNhbHMgfCB3YyAtbCkiCjUzOnNhZmVfZ2VuZXJhdGlvbigpewo1NDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIKNTU6ICBbWyAiJGdlbmVyYXRpb24iID1+IF4ke2xvZ2ljYWx9LXB2ZTBbMTIzXS1bMC05XXs4fVRbMC05XXs2fVokIF1dCjYwOiAgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUKNjE6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRUTVBST09UL3JjbG9uZS5jb25mIgo2MzpzdGF0ZV9maWxlcygpewo2NTogIGRpcj0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwiCjY2OiAgbm9kZV9leGVjICIkbm9kZSIgZmluZCAiJGRpciIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnQgMj4iJFRNUFJPT1Qvc3RhdGUtZmluZC5lcnIiIHx8IHsKNjk6ICAgIGRpZSAiU1RBVEVfRU5VTV9GQUlMRURfJHtsb2dpY2FsfV8ke25vZGV9IiA2OQo3MjpzdHJpY3Rfc3RhdGUoKXsKNzM6ICBsb2NhbCBqc29uPSIkMSIgbG9naWNhbD0iJDIiIGdlbmVyYXRpb249IiQzIgo3NDogIGpxIC1lIC0tYXJnIGwgIiRsb2dpY2FsIiAtLWFyZyBnICIkZ2VuZXJhdGlvbiIgJy5zY2hlbWE9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQgLmxvZ2ljYWxfaWQ9PSRsIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnNlYWxfd3JpdHRlbj09dHJ1ZSBhbmQgLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmxvY2FsX2RlbGV0ZV9hbGxvd2VkPT10cnVlIGFuZCAubG9jYWxfcGF5bG9hZF9wcmVzZW50PT1mYWxzZSBhbmQgLmxvY2FsX2NsZWFudXA9PSJPSyInIDw8PCIkanNvbiIgPi9kZXYvbnVsbAo3NjpsYXRlc3RfcmVzdG9yZV9wcm92ZW4oKXsKNzc6ICBsb2NhbCBsb2dpY2FsPSIkMSIgbm9kZSBvdXQgZGVjaXNpb24gZ2VuZXJhdGlvbiBsYXRlc3QKODM6ICAgICAgW1sgIiRkZWNpc2lvbiIgPT0gU0VBTEVEX1BST1ZFTiBdXSB8fCByZXR1cm4gMQo4ODogICAgICBbWyAiJGRlY2lzaW9uIiA9PSBTRUFMRURfUFJPVkVOIF1dIHx8IHJldHVybiAxCjkxOiAgICAgIGxhdGVzdD0iJChmaW5kICIkU1RBVEVfUk9PVC9jb250cm9sLWJvb3RzdHJhcC12MiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnRmICclZlxuJyB8IExDX0FMTD1DIHNvcnQgfCB0YWlsIC1uIDEpIgo5MjogICAgICBbWyAtbiAiJGxhdGVzdCIgXV0gfHwgcmV0dXJuIDEKOTM6ICAgICAgZ2VuZXJhdGlvbj0iJHtsYXRlc3QlLmpzb259Igo5NDogICAgICBbWyAtcyAiJENPTlRST0xfRVZJREVOQ0VfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIiAmJiAhIC1MICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IHJldHVybiAxCjk1OiAgICAgIGpxIC1lIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAnLnJlc3VsdD09Ik9LIiBhbmQgLmxvZ2ljYWxfaWQ9PSJjb250cm9sLWJvb3RzdHJhcC12MiIgYW5kIC5nZW5lcmF0aW9uPT0kZyBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUnICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iID4vZGV2L251bGwKMTAwOnJlbW90ZV9zZXQoKXsKMTAxOiAgbG9jYWwgcmVtb3RlPSIkMSIKMTAyOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiB8IGF3ayAtRi8gJ05GPT0zICYmICQxIT0iIiAmJiAkMiE9IiJ7cHJpbnQgJDEiLyIkMn0nIHwgTENfQUxMPUMgc29ydCAtdQoxMDU6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuZXJhdGlvbj0iJDIiIGYKMTA2OiAgZj0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxMDc6ICBbWyAtcyAiJGYiICYmICEgLUwgIiRmIiBdXSAmJiBqcSAtZSAnLnN0YXR1cz09IkRPTkUiIGFuZCAucmVtb3RlX2FfYWJzZW50PT10cnVlIGFuZCAucmVtb3RlX2JfYWJzZW50PT10cnVlJyAiJGYiID4vZGV2L251bGwKMTEwOiAgbG9jYWwgbG9naWNhbD0iJDEiIGdlbmVyYXRpb249IiQyIiBmCjExMTogIGY9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMTM0OiAgbG9jYWwgZj0iJHtIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEU6LX0iIGV4cGVjdGVkPSIke0hPTUVMQUJfUkVURU5USU9OX1BJTk5FRF9ERUxFVEVfU0hBMjU2Oi19IiBhY3R1YWwgbGluZSBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgY291bnQ9MAoxNDM6ICAgIGdlbmVyYXRpb249IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15nZW5lcmF0aW9uPS8pe3N1YigvXmdlbmVyYXRpb249LywiIiwkaSk7cHJpbnQgJGl9fScgPDw8IiRsaW5lIikiCjE0NTogICAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTQ2OiAgICBzdGF0ZV9zaGE9IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15zdGF0ZV9zaGEyNTY9Lyl7c3ViKC9ec3RhdGVfc2hhMjU2PS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxNDc6ICAgIFtbICIkbGluZSIgPT0gIkRFTEVURXxsb2dpY2FsPSRsb2dpY2FsfGdlbmVyYXRpb249JGdlbmVyYXRpb258b3duZXI9JG93bmVyfHN0YXRlX2ZpbGU9JHN0YXRlX2ZpbGV8c3RhdGVfc2hhMjU2PSRzdGF0ZV9zaGEiIF1dIHx8IGRpZSBQSU5ORURfREVMRVRFX0xJTkVfRk9STUFUX0lOVkFMSUQgNjYKMTQ5OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiUElOTkVEX0RFTEVURV9HRU5FUkFUSU9OX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTUwOiAgICBbWyAiJHN0YXRlX2ZpbGUiID09ICIkU1RBVEVfUk9PVC8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIiBdXSB8fCBkaWUgIlBJTk5FRF9ERUxFVEVfU1RBVEVfUEFUSF9JTlZBTElEXyR7bG9naWNhbH0iIDY2CjE1MTogICAgW1sgIiRzdGF0ZV9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUElOTkVEX0RFTEVURV9TVEFURV9TSEFfSU5WQUxJRF8ke2xvZ2ljYWx9IiA2NgoxNTg6ICBsb2NhbCBmPSIkMSIgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgZXhwZWN0ZWRfcGF0aAoxNjA6ICBqcSAtZSAtLWFyZyB0YXNrICIkVEFTS19JRCIgLS1hcmcgY2hhbmdlICIkQ0hBTkdFX0lEIiAnLnNjaGVtYT09ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIgYW5kIC50YXNrX2lkPT0kdGFzayBhbmQgLmNoYW5nZV9pZD09JGNoYW5nZSBhbmQgKC5sb2dpY2FsX2lkfHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5nZW5lcmF0aW9ufHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5zdGF0ZV9zaGEyNTZ8dHlwZSk9PSJzdHJpbmciIGFuZCAoLnN0YXR1cz09IlBMQU5ORUQiIG9yIC5zdGF0dXM9PSJCX0RFTEVURUQiIG9yIC5zdGF0dXM9PSJET05FIiknICIkZiIgPi9kZXYvbnVsbCB8fCBkaWUgIlBJTk5FRF9UWF9DT05URU5UX0lOVkFMSURfJGYiIDY2CjE2MTogIGxvZ2ljYWw9IiQoanEgLWVyICcubG9naWNhbF9pZCcgIiRmIikiOyBnZW5lcmF0aW9uPSIkKGpxIC1lciAnLmdlbmVyYXRpb24nICIkZiIpIjsgc3RhdGVfc2hhPSIkKGpxIC1lciAnLnN0YXRlX3NoYTI1NicgIiRmIikiOyBzdGF0dXM9IiQoanEgLWVyICcuc3RhdHVzJyAiJGYiKSIKMTYzOiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIlBJTk5FRF9UWF9HRU5FUkFUSU9OX1VOU0FGRV8ke2xvZ2ljYWx9IiA2NgoxNjQ6ICBbWyAiJHN0YXRlX3NoYSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQSU5ORURfVFhfU1RBVEVfU0hBX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTY1OiAgZXhwZWN0ZWRfcGF0aD0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxNjY6ICBbWyAiJGYiID09ICIkZXhwZWN0ZWRfcGF0aCIgXV0gfHwgZGllICJQSU5ORURfVFhfUEFUSF9JTlZBTElEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTY3OiAgcHJpbnRmICdERUxFVEV8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHN0YXRlX2ZpbGU9JXN8c3RhdGVfc2hhMjU2PSVzXG4nICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJG93bmVyIiAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIgIiRzdGF0ZV9zaGEiCjE3ODogIGxvY2FsIHBsYW5fZmlsZT0iJDEiIGxpbmUgbG9naWNhbCBnZW5lcmF0aW9uIHJlYXNvbiB0eGYgc3RhdHVzCjE4MTogICAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTgzOiAgICBbWyAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fUExBTk5FRCB8fCAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fQl9ERUxFVEVEIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fVU5FWFBFQ1RFRF9QUk9URUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufV8ke3JlYXNvbn0iIDY2CjE4NDogICAgdHhmPSIkUkVURU5USU9OX1JPT1QvdHJhbnNhY3Rpb25zLyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iCjE4NTogICAgW1sgLXMgIiR0eGYiICYmICEgLUwgIiR0eGYiIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9UWF9NSVNTSU5HXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTg3OiAgICBbWyAiR0NfVFJBTlNBQ1RJT05fJHN0YXR1cyIgPT0gIiRyZWFzb24iIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9TVEFUVVNfTUlTTUFUQ0hfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IiA2NgoxODg6ICAgIGdyZXAgLUZxeCAiJChwaW5uZWRfdHhfaWRlbnRpdHkgIiR0eGYiKSIgIiRIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEUiIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9OT1RfUElOTkVEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMjExOiAgcHJpbnRmICdDT05UUkFDVHx0YXNrPSVzfHBvbGljeT1PV05FUl9BV0FSRV9TQUZFX0dDX0dGU3x0YXJnZXRfcmVnaXN0cnk9Q0FOT05JQ0FMfHZtX2tlZXA9JXN8YXBwX2tlZXA9JXN8Y29udHJvbF9rZWVwPSVzfG1pbl9kZWxldGVfYWdlX3NlY29uZHM9JXN8Z2ZzX2NyaXRpY2FsPSVzfGdmc193ZWVrbHk9JXN8Z2ZzX21vbnRobHk9JXN8Z2ZzX2NvbXBsZXRlZF9wZXJpb2RzX29ubHk9WUVTfG5vbnNlYWxlZD1QUk9URUNUfHJldGlyZWRfcHJlc2VydmU9UFJPVEVDVHx1bmtub3duX25hbWVzcGFjZT1QUk9URUNUfG93bmVyX3N0YXRlX3JlcXVpcmVkPVlFU3xib3RoX2Nsb3Vkc19yZXF1aXJlZD1ZRVN8bGF0ZXN0X3Jlc3RvcmVfcHJvdmVuX3JlcXVpcmVkPVlFU3xsZWdhY3lfaGI9UFJPVEVDVHxsZWdhY3lfcHZlMDE9UFJPVEVDVHxsZWdhY3lfY29udHJvbD1QUk9URUNUXG4nICIkVEFTS19JRCIgIiRWTV9LRUVQIiAiJEFQUF9LRUVQIiAiJENPTlRST0xfS0VFUCIgIiRNSU5fREVMRVRFX0FHRV9TRUNPTkRTIiAiJEdGU19DUklUSUNBTF9DT1VOVCIgIiRHRlNfV0VFS0xZIiAiJEdGU19NT05USExZIgoyMTQ6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdCB0eCBvdXQga2luZCBidWNrZXQKMjE4OiAgaWYgISBIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBpcy1jcml0aWNhbCAiJGxvZ2ljYWwiOyB0aGVuIHJldHVybiAwOyBmaQoyMTk6ICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyMjQ6ICAgIHByaW50ZiAnJXNcdCVzXG4nICIkZ2VuIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwuZ2ZzLWVsaWdpYmxlIgoyMjY6ICBvdXQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgc2VsZWN0ICIkbG9naWNhbCIgPCIkVE1QUk9PVC8kbG9naWNhbC5nZnMtZWxpZ2libGUiKSIgfHwgZGllICJHRlNfU0VMRUNUX0ZBSUxFRF8kbG9naWNhbCIgNjYKMjM4OiAgcmVtb3RlX3NldCAiJFJFTU9URV9BIiA+IiRUTVBST09UL2Euc2V0IgoyMzk6ICByZW1vdGVfc2V0ICIkUkVNT1RFX0IiID4iJFRNUFJPT1QvYi5zZXQiCjI0MDogIGxvY2FsIG5vdyBsb2dpY2FsIG5vZGUga2VlcCBsaWZlY3ljbGUgb3Blbl9jb3VudCBmaWxlIGpzb24gc2NoZW1hIGxpZCBnZW4gc3RhdHVzIHNoYSBzZWFsZWRfYXQgZXBvY2ggYWdlIGlkeCB0eCBnZnNfYnVja2V0IGNhbmRpZGF0ZXM9MCBwcm90ZWN0ZWQ9MCBrZXB0PTAgZ2ZzX2tlcHQ9MAoyNTA6ICAgICAgW1sgIiRmaWxlIiA9PSAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvIiouanNvbiBdXSB8fCB7IHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfHJlYXNvbj1TVEFURV9QQVRIX1VOU0FGRXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI1MTogICAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG5vZGUiIGNhdCAiJGZpbGUiKSIgfHwgZGllICJTVEFURV9SRUFEX0ZBSUxFRF8ke2xvZ2ljYWx9IiA2OQoyNTQ6ICAgICAgZ2VuPSIkKGpxIC1yICcuZ2VuZXJhdGlvbi8vIiInIDw8PCIkanNvbiIpIgoyNTY6ICAgICAgaWYgW1sgIiRzY2hlbWEiICE9IGhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEgfHwgIiRsaWQiICE9ICIkbG9naWNhbCIgXV0gfHwgISBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbiI7IHRoZW4KMjU3OiAgICAgICAgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8cmVhc29uPU5PTkNBTk9OSUNBTF9TVEFURXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlCjI2MDogICAgICBpZiBbWyAiJHN0YXR1cyIgIT0gU0VBTEVEIF1dOyB0aGVuCjI2MjogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPUlOQ09NUExFVEVfJXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJHN0YXR1cyIKMjY2OiAgICAgIHN0cmljdF9zdGF0ZSAiJGpzb24iICIkbG9naWNhbCIgIiRnZW4iIHx8IHsgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249U0VBTEVEX1NUQVRFX05PVF9TVFJJQ1RcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI2NzogICAgICBzZWFsZWRfYXQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjLy8iIicgPDw8IiRqc29uIikiCjI2ODogICAgICBlcG9jaD0iJChkYXRlIC11IC1kICIkc2VhbGVkX2F0IiArJXMgMj4iJFRNUFJPT1QvZGF0ZS5lcnIiKSIgfHwgeyBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1TRUFMRURfVElNRV9JTlZBTElEXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSI7IHByb3RlY3RlZD0kKChwcm90ZWN0ZWQrMSkpOyBjb250aW51ZTsgfQoyNzA6ICAgICAgcHJpbnRmICclc1x0JXNcdCVzXHQlc1x0JXNcdCVzXG4nICIkZ2VuIiAiJGZpbGUiICIkc2hhIiAiJGFnZSIgIiRub2RlIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIKMjcxOiAgICBkb25lIDwgPChzdGF0ZV9maWxlcyAiJG5vZGUiICIkbG9naWNhbCIgfCBMQ19BTEw9QyBzb3J0KQoyNzM6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TE9HSUNBTF9IQVNfSU5DT01QTEVURVxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjc3OiAgICAgIHdoaWxlIElGUz0kJ1x0JyByZWFkIC1yIGdlbiBmaWxlIHNoYSBhZ2Ugbm9kZSBzZWFsZWRfYXQ7IGRvIHByaW50ZiAnS0VFUHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFVElSRURfUFJFU0VSVkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsga2VwdD0kKChrZXB0KzEpKTsgZG9uZSA8IDwoTENfQUxMPUMgc29ydCAtciAiJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIpCjI4MDogICAgaWYgISBsYXRlc3RfcmVzdG9yZV9wcm92ZW4gIiRsb2dpY2FsIjsgdGhlbgoyODE6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TEFURVNUX1JFU1RPUkVfTk9UX1BST1ZFTlxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjg2OiAgICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyOTA6ICAgICAgICBwcmludGYgJ1JFVElSRUR8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19BTFJFQURZX0RPTkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIgoyOTI6ICAgICAgICBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19UUkFOU0FDVElPTl8lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkdHgiOyBwcm90ZWN0ZWQ9JCgocHJvdGVjdGVkKzEpKQoyOTQ6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1QT0xJQ1lfTkVXRVNUXyVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRrZWVwIjsga2VwdD0kKChrZXB0KzEpKQoyOTY6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1NSU5fQUdFfGFnZV9zZWNvbmRzPSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRhZ2UiOyBrZXB0PSQoKGtlcHQrMSkpCjI5ODogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFTU9URV9TRVRfTUlTTUFUQ0hcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSkKMzAwOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX1dFRUtMWXxidWNrZXQ9JXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJGdmc19idWNrZXQiOyBrZXB0PSQoKGtlcHQrMSkpOyBnZnNfa2VwdD0kKChnZnNfa2VwdCsxKSkKMzAyOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX01PTlRITFl8YnVja2V0PSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRnZnNfYnVja2V0Ijsga2VwdD0kKChrZXB0KzEpKTsgZ2ZzX2tlcHQ9JCgoZ2ZzX2tlcHQrMSkpCjMwNDogICAgICAgIHByaW50ZiAnREVMRVRFfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xzdGF0ZV9maWxlPSVzfHN0YXRlX3NoYTI1Nj0lc3xhZ2Vfc2Vjb25kcz0lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkZmlsZSIgIiRzaGEiICIkYWdlIgozMTQ6cmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCgpewozMTU6ICBsb2NhbCByZW1vdGU9IiQxIiBsb2dpY2FsPSIkMiIgZ2VuZXJhdGlvbj0iJDMiIGRpcnMKMzE2OiAgZGlycz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09ULyRsb2dpY2FsIiAtLWRpcnMtb25seSAtLW1heC1kZXB0aCAxIDI+IiRUTVBST09UL2xzZi5lcnIiKSIgfHwgZGllICJSRU1PVEVfTElTVF9GQUlMRURfJHtyZW1vdGV9XyR7bG9naWNhbH0iIDY5CjMxNzogIHByaW50ZiAnJXNcbicgIiRkaXJzIiB8IHNlZCAnczovJDo6JyB8IGdyZXAgLUZxeCAiJGdlbmVyYXRpb24iCjMyMDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIgc3RhdGVfc2hhPSIkMyIgc3RhdHVzPSIkNCIgYV9hYnNlbnQ9IiQ1IiBiX2Fic2VudD0iJDYiIHBhdGggdG1wCjMyMTogIHBhdGg9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzI0OiAganEgLW4gLS1hcmcgdGFzayAiJFRBU0tfSUQiIC0tYXJnIGNoYW5nZSAiJENIQU5HRV9JRCIgLS1hcmcgbCAiJGxvZ2ljYWwiIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAtLWFyZyBzICIkc3RhdGVfc2hhIiAtLWFyZyBzdGF0dXMgIiRzdGF0dXMiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBhYSAiJGFfYWJzZW50IiAtLWFyZ2pzb24gYmEgIiRiX2Fic2VudCIgJ3tzY2hlbWE6ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIsdGFza19pZDokdGFzayxjaGFuZ2VfaWQ6JGNoYW5nZSxsb2dpY2FsX2lkOiRsLGdlbmVyYXRpb246JGcsc3RhdGVfc2hhMjU2OiRzLHN0YXR1czokc3RhdHVzLHVwZGF0ZWRfYXRfdXRjOiRhdCxyZW1vdGVfYV9hYnNlbnQ6JGFhLHJlbW90ZV9iX2Fic2VudDokYmF9JyA+IiR0bXAiCjMyOTogIGxvY2FsIGxpbmU9IiQxIiBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgYWdlIGpzb24gY3VycmVudF9zaGEKMzMxOiAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzMzOiAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM0OiAgc3RhdGVfc2hhPSIkKGF3ayAtRid8JyAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9ec3RhdGVfc2hhMjU2PS8pe3N1YigvXnN0YXRlX3NoYTI1Nj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM2OiAgW1sgIiQobm9kZV9mb3JfbG9naWNhbCAiJGxvZ2ljYWwiKSIgPT0gIiRvd25lciIgXV0gfHwgZGllICJBUFBMWV9PV05FUl9DSEFOR0VEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzM3OiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX0dFTkVSQVRJT05fVU5TQUZFXyR7bG9naWNhbH0iCjMzODogIFtbICIkc3RhdGVfZmlsZSIgPT0gIiRTVEFURV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfUEFUSF9VTlNBRkVfJHtsb2dpY2FsfSIKMzM5OiAganNvbj0iJChub2RlX2V4ZWMgIiRvd25lciIgY2F0ICIkc3RhdGVfZmlsZSIpIiB8fCBkaWUgIkFQUExZX1NUQVRFX1JFQURfJHtsb2dpY2FsfSIgNjkKMzQxOiAgW1sgIiRjdXJyZW50X3NoYSIgPT0gIiRzdGF0ZV9zaGEiIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfRFJJRlRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDI6ICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJBUFBMWV9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzQzOiAgKCggYWdlID49IE1JTl9ERUxFVEVfQUdFX1NFQ09ORFMgKSkgfHwgZGllICJBUFBMWV9BR0VfR1VBUkRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDQ6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0EiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9BX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDU6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0IiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9CX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDY6ICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIFBMQU5ORUQgZmFsc2UgZmFsc2UKMzQ3OiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQjokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM0ODogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM0OTogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgQl9ERUxFVEVEIGZhbHNlIHRydWUKMzUwOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM1MTogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM1MjogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgRE9ORSB0cnVlIHRydWUKMzUzOiAgcHJpbnRmICdHQ19ERUxFVEVfRE9ORXxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXNcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkb3duZXIiCjM1NjogIGxvY2FsIGYgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgc3RhdGVfZmlsZSBqc29uIGN1cnJlbnRfc2hhCjM2MzogICAgZ2VuZXJhdGlvbj0iJChqcSAtZXIgJy5nZW5lcmF0aW9uJyAiJGYiKSIKMzY0OiAgICBzdGF0ZV9zaGE9IiQoanEgLWVyICcuc3RhdGVfc2hhMjU2JyAiJGYiKSIKMzY2OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiVFhfR0VORVJBVElPTl9VTlNBRkVfJGxvZ2ljYWwiCjM2NzogICAgc3RhdGVfZmlsZT0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzY4OiAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG93bmVyIiBjYXQgIiRzdGF0ZV9maWxlIikiIHx8IGRpZSAiVFhfU1RBVEVfUkVBRF8ke2xvZ2ljYWx9IiA2OQozNzA6ICAgIFtbICIkY3VycmVudF9zaGEiID09ICIkc3RhdGVfc2hhIiBdXSB8fCBkaWUgIlRYX1NUQVRFX0RSSUZUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzcxOiAgICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJUWF9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzczOiAgICAgIGlmIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iOyB0aGVuIHJjbG9uZSAtLWNvbmZpZyAiJFRNUFJPT1QvcmNsb25lLmNvbmYiIHB1cmdlICIkUkVNT1RFX0I6JFJFTU9URV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uIjsgZmkKMzc0OiAgICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3NTogICAgICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIEJfREVMRVRFRCBmYWxzZSB0cnVlCjM3NzogICAgaWYgcmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCAiJFJFTU9URV9BIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiI7IHRoZW4gcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iOyBmaQozNzg6ICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3OTogICAgd3JpdGVfdHggIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkc3RhdGVfc2hhIiBET05FIHRydWUgdHJ1ZQozODA6ICAgIHByaW50ZiAnR0NfVFJBTlNBQ1RJT05fUkVTVU1FRHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8c3RhdHVzPURPTkVcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iCjM4MzphY3F1aXJlX2djX2xvY2tzKCl7CjM4NDogIGV4ZWMgNj4iJERJU1BBVENIRVJfTE9DSyI7IGZsb2NrIC1uIDYgfHwgcmV0dXJuIDEKMzg1OiAgZXhlYyA3PiIkVk1fTE9DSyI7IGZsb2NrIC1uIDcgfHwgcmV0dXJuIDEKMzg2OiAgZXhlYyA4PiIkQVBQX0xPQ0siOyBmbG9jayAtbiA4IHx8IHJldHVybiAxCjM4NzogIGV4ZWMgOT4iJEhFQVZZX0xPQ0siOyBmbG9jayAtbiA5IHx8IHJldHVybiAxCjM5MTogIGxvY2FsIGdlbmVyYXRpb24gZmlsZSBzaGEgcmVtb3RlIHJlYWRiYWNrIGRpcnMKMzkyOiAgZ2VuZXJhdGlvbj0iY3IwMDMzLSQoZGF0ZSAtdSArJVklbSVkVCVIJU0lU1opLSQkIgozOTQ6ICBwcmludGYgJ2hvbWVsYWIgcmV0ZW50aW9uIGRlc3RydWN0aXZlIGNhbmFyeSAlc1xuJyAiJGdlbmVyYXRpb24iID4iJGZpbGUiCjM5NjogIGZvciByZW1vdGUgaW4gIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiI7IGRvCjM5NzogICAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgY29weXRvICIkZmlsZSIgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgLS1pbW11dGFibGUgLS1zaXplLW9ubHkKMzk4OiAgICByZWFkYmFjaz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBjYXQgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIKMzk5OiAgICBbWyAiJHJlYWRiYWNrIiA9PSAiJHNoYSIgXV0gfHwgZGllICJDQU5BUllfUkVBREJBQ0tfJHtyZW1vdGV9Igo0MDE6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9COiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDI6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9BOiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDM6ICBmb3IgcmVtb3RlIGluICIkUkVNT1RFX0EiICIkUkVNT1RFX0IiOyBkbwo0MDQ6ICAgIGRpcnM9IiQocmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiAyPiIkVE1QUk9PVC9jYW5hcnktbHNmLmVyciIpIiB8fCBkaWUgIkNBTkFSWV9MSVNUX0ZBSUxFRF8ke3JlbW90ZX0iIDY5CjQwNTogICAgaWYgcHJpbnRmICclc1xuJyAiJGRpcnMiIHwgc2VkICdzOi8kOjonIHwgZ3JlcCAtRnF4ICJyZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIjsgdGhlbiBkaWUgIkNBTkFSWV9QVVJHRV9GQUlMRURfJHtyZW1vdGV9IjsgZmkKNDA3OiAgcHJpbnRmICdDQU5BUllfU1RBVFVTPU9LfGdlbmVyYXRpb249JXN8Y2xvdWRfd3JpdGVzPVlFU3xjbG91ZF9kZWxldGVzPVlFU1xuJyAiJGdlbmVyYXRpb24iCjQxNTogIGlmIGZpbmQgIiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMiIC10eXBlIGYgLW5hbWUgJyouanNvbicgLWV4ZWMganEgLWUgJy5zdGF0dXM9PSJET05FIiBhbmQgLnJlbW90ZV9hX2Fic2VudD09dHJ1ZSBhbmQgLnJlbW90ZV9iX2Fic2VudD09dHJ1ZScge30gXDsgLXByaW50IDI+IiRUTVBST09UL3R4LWZpbmQuZXJyIiB8IGdyZXAgLXEgLjsgdGhlbiBoaXN0PXRydWU7IGZpCjQxODogIGpxIC1uIC0tYXJnIHRhc2sgIiRUQVNLX0lEIiAtLWFyZyBjaGFuZ2UgIiRDSEFOR0VfSUQiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBjYW5hcnkgIiRjYW5hcnlfcHJvdmVuIiAtLWFyZ2pzb24gaGlzdCAiJGhpc3QiIC0tYXJnanNvbiBjYW5kaWRhdGVzICIke2NhbmRpZGF0ZXM6LTB9IiAtLWFyZ2pzb24gcHJvdGVjdGVkICIke3Byb3RlY3RlZDotMH0iIC0tYXJnanNvbiBrZXB0ICIke2tlcHQ6LTB9IiAtLWFyZ2pzb24gZ2ZzX2tlcHQgIiR7Z2ZzX2tlcHQ6LTB9IiAtLWFyZ2pzb24gZGVsZXRlZCAiJGRlbGV0ZWQiIC0tYXJnanNvbiBnZnNfY3JpdGljYWwgIiRHRlNfQ1JJVElDQUxfQ09VTlQiIC0tYXJnanNvbiBnZnNfd2Vla2x5ICIkR0ZTX1dFRUtMWSIgLS1hcmdqc29uIGdmc19tb250aGx5ICIkR0ZTX01PTlRITFkiICd7c2NoZW1hOiJob21lbGFiLWJhY2t1cC1yZXRlbnRpb24tdjEiLHN0YXR1czoiT0siLHRhc2tfaWQ6JHRhc2ssY2hhbmdlX2lkOiRjaGFuZ2UsdXBkYXRlZF9hdF91dGM6JGF0LHBvbGljeTp7dm1fa2VlcDoyLGFwcF9rZWVwOjcsY29udHJvbF9rZWVwOjQsbWluX2RlbGV0ZV9hZ2Vfc2Vjb25kczo4NjQwMCxnZnM6e2VuYWJsZWQ6dHJ1ZSxjcml0aWNhbF92bV9jb3VudDokZ2ZzX2NyaXRpY2FsLHdlZWtseV9jb21wbGV0ZWRfYnVja2V0czokZ2ZzX3dlZWtseSxtb250aGx5X2NvbXBsZXRlZF9idWNrZXRzOiRnZnNfbW9udGhseSxjb21wbGV0ZWRfcGVyaW9kc19vbmx5OnRydWV9fSxvd25lcl9hd2FyZV9nY19wcm92ZW46dHJ1ZSxkZXN0cnVjdGl2ZV9jYW5hcnlfcHJvdmVuOiRjYW5hcnksaGlzdG9yaWNhbF9nY19wcm92ZW46JGhpc3QsbGFzdF9wbGFuOntkZWxldGVfY2FuZGlkYXRlczokY2FuZGlkYXRlcyxwcm90ZWN0ZWQ6JHByb3RlY3RlZCxrZXB0OiRrZXB0LGdmc19rZXB0OiRnZnNfa2VwdH0sbGFzdF9ydW5fZGVsZXRlZDokZGVsZXRlZCxsZWdhY3lfbmFtZXNwYWNlc19wcm90ZWN0ZWQ6WyJoYiIsInB2ZTAxIiwiY29udHJvbC1ib290c3RyYXAiXSxwcm92aWRlcl93b3JtX3Byb3ZlbjpmYWxzZX0nID4iJHRtcCIKNDI0OiAgZXhlYyA1PiIkTE9DSyI7IGZsb2NrIC1uIDUgfHwgZGllIEdDX0xPQ0tfQlVTWSA3NQo0MzM6c2NoZWR1bGVkKCl7CjQzNDogIGV4ZWMgNT4iJExPQ0siOyBmbG9jayAtbiA1IHx8IHsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9U0tJUHxyZWFzb249R0NfTE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQo0NDI6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMSIgUFJFTE9DSzsgZmkKNDQzOiAgaWYgKCggY291bnQgPT0gMCAmJiBvcGVuX3R4ID09IDAgKSk7IHRoZW4gd3JpdGVfaGVhbHRoICIkcDEiIHRydWUgMDsgY2F0ICIkcDEiOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1PS3xkZWxldGVkPTB8dHJhbnNhY3Rpb25zX3Jlc3VtZWQ9MFxuJzsgcmV0dXJuIDA7IGZpCjQ0NDogIGlmICEgYWNxdWlyZV9nY19sb2NrczsgdGhlbiB3cml0ZV9oZWFsdGggIiRwMSIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1CQUNLVVBfTE9DS19CVVNZfGNhbmRpZGF0ZXM9JXN8b3Blbl90cmFuc2FjdGlvbnM9JXNcbicgIiRjb3VudCIgIiRvcGVuX3R4IjsgcmV0dXJuIDA7IGZpCjQ0NTogIGlmIHBpbm5lZF9kZWxldGVfY29udHJhY3RfZW5hYmxlZDsgdGhlbiBwbGFuID4iJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiOyBwaW5uZWRfYXNzZXJ0X2RlbGV0ZV9zY29wZSAiJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiIExPQ0tFRF9QUkVfUkVTVU1FOyBmaQo0NDg6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMiIgTE9DS0VEX1BPU1RfUkVTVU1FOyBmaQo0NDk6ICBpZiAoKCBjb3VudCA9PSAwICkpOyB0aGVuIHdyaXRlX2hlYWx0aCAiJHAyIiB0cnVlIDA7IGNhdCAiJHAyIjsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0wfHRyYW5zYWN0aW9uc19yZXN1bWVkPSVzXG4nICIkb3Blbl90eCI7IHJldHVybiAwOyBmaQo0NTA6ICBjbXAgLXMgPChncmVwICdeREVMRVRFfCcgIiRwMSIgfCBzdGFibGVfZGVsZXRlX3NldCkgPChncmVwICdeREVMRVRFfCcgIiRwMiIgfCBzdGFibGVfZGVsZXRlX3NldCkgfHwgeyB3cml0ZV9oZWFsdGggIiRwMiIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1QTEFOX0NIQU5HRURfQUZURVJfTE9DS1xuJzsgcmV0dXJuIDA7IH0KNDU0OiAgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0lc3x0cmFuc2FjdGlvbnNfcmVzdW1lZD0lc1xuJyAiJGRlbGV0ZWQiICIkb3Blbl90eCIKNDYyOiAgc2NoZWR1bGVkKSBzY2hlZHVsZWQgOzsKNDYzOiAgKikgZGllIFVTQUdFX2NvbnRyYWN0X3BsYW5fY2FuYXJ5X2FjdGl2YXRlX3NjaGVkdWxlZCA2NCA7Ow== +PIPE_41_SCORE=3 +PIPE_41_BASENAME=homelab-mail-cloud-edge-vm-upload +PIPE_41_PATH_SHA256=0c6fa7355f716e470cc4ecce8795381d116927ed145c0d3d603eb75377a2a760 +PIPE_41_FILE_SHA256=f22848d83a7ce13ca331ce9181523d0a8fadcf34f01d0c95186784c6b1f0875f +PIPE_41_SCHEDULE_TARGET_COUNT=0 +PIPE_41_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_41_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_41_VZDUMP_QEMU_COUNT=1 +PIPE_41_RCLONE_COUNT=13 +PIPE_41_CLOUD_QUORUM_COUNT=0 +PIPE_41_SEAL_WRITTEN_COUNT=0 +PIPE_41_PAYLOAD_PARTS_COUNT=0 +PIPE_41_TRANSPORT_COUNT=1 +PIPE_41_RESTORE_VALIDATION_COUNT=0 +PIPE_41_SCHEDULE_RESULT_COUNT=0 +PIPE_41_RELEVANT_LINE_COUNT=75 +PIPE_41_RELEVANT_B64=NTpMT0NLPS9ydW4vaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLmxvY2sKNjpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvbWFpbC1jbG91ZC1lZGdlLXZtLnR4dAo5OlRBUkdFVF9SRU1PVEU9cHZlMDMtbWFpbC0wMy1jcnlwdAoxMDpUQVJHRVRfQkFTRT1mdWxsL2VkZ2Utdm0tdnpkdW1wCjE4OlJFTU9URV9FTlY9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52CjE5OlJFTU9URV9TQ1JJUFQ9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoCjI1OlZNSUQ9bm9uZQoyNzpUQVJHRVRfRElSPW5vbmUKMzA6ICBwcmludGYgIlNUQVRVUz1FUlJPUiBUUz0lcyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPSVzIFJFTU9URT0lcyBERVNUPSVzIEFSQ0hJVkU9JXMgU0laRT0lcyBTSEEyNTY9JXMgVk1JRD0lcyBTRUNSRVRfUFJJTlRFRD1ubyBOT1RFUz0lc1xuIiAiJFRTIiAiJE1PREUiICIkVEFSR0VUX1JFTU9URSIgIiRUQVJHRVRfRElSIiAiJEJBU0VOQU1FIiAiJFNJWkUiICIkU0hBIiAiJFZNSUQiICIkbm90ZSIgPiAiJEhFQUxUSCIKNDI6ZXhlYyA5PiIkTE9DSyIKNDM6aWYgISBmbG9jayAtbiA5OyB0aGVuCjQ0OiAgZWNobyAiU1RBVFVTPUVSUk9SIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBSRUFTT049bG9ja19idXN5IFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPWxvY2tfYnVzeSIgPiAiJEhFQUxUSCIKNDY6ICBlY2hvICJOT1RFUz1sb2NrX2J1c3kiCjU2OlZNSUQ9JChlY2hvICIkSCIgfCBhd2sgJ3tmb3IoaT0xO2k8PU5GO2krKykgaWYoJGkgfiAvXlZNSUQ9Lyl7c3ViKC9eVk1JRD0vLCIiLCRpKTsgcHJpbnQgJGl9fScpCjU4OlRBUkdFVF9ESVI9JFRBUkdFVF9CQVNFLyRUUwo2MTpbICIkVk1JRCIgPSAiMTMwIiBdIHx8IGZhaWwgdm1pZF9ub3RfMTMwIDIKNjQ6Y2FzZSAiJFNPVVJDRSIgaW4gL21udC9zdGFnaW5nL29mZmhvc3QvZWRnZS12bS12emR1bXAtZnJvbS1wdmUwMy92emR1bXAtcWVtdS0xMzAtKi52bWEuenN0KSA7OyAqKSBmYWlsIHNvdXJjZV9wYXRoX2JhZCAyIDs7IGVzYWMKNjc6Y2F0ID4gIiRSRU1PVEVfRU5WIiA8PEVPRgo2OTpUQVJHRVRfUkVNT1RFPSRUQVJHRVRfUkVNT1RFCjcwOlRBUkdFVF9CQVNFPSRUQVJHRVRfQkFTRQo3MTpUQVJHRVRfRElSPSRUQVJHRVRfRElSCjc5OlZNSUQ9JFZNSUQKODM6Y2F0ID4gIiRSRU1PVEVfU0NSSVBUIiA8PCdSRU1PVEVfU0NSSVBUX0VPRicKODc6LiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5lbnYKOTE6V09SSz0iL21udC9zdGFnaW5nL21haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtYXV0by8kVFMiCjk2OlJFTU9URV9QQVJUUz0kVEFSR0VUX0RJUi9wYXJ0cwo5NzpSRU1PVEVfU0hBPSRUQVJHRVRfRElSLyRCQVNFTkFNRS5zaGEyNTYKOTg6UkVNT1RFX01BTklGRVNUPSRUQVJHRVRfRElSL01BTklGRVNULnR4dAo5OTpSRU1PVEVfU1VNUz0kVEFSR0VUX0RJUi9TSEEyNTZTVU1TLnR4dAoxMTE6cmNsb25lIGFib3V0ICIkVEFSR0VUX1JFTU9URToiID4gIiRXT1JLL2xvZ3MvYWJvdXQub3V0IiAyPiIkV09SSy9sb2dzL2Fib3V0LmVyciIgfHwgQUJPVVRfUkM9JD8KMTE0OkRJUlM9IiQocmNsb25lIGxzZiAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFIiAtLWRpcnMtb25seSAyPi9kZXYvbnVsbCB8IHNlZCAncyMvJCMjJyB8IHNvcnQgfHwgdHJ1ZSkiCjExNjogIGlmIHJjbG9uZSBjYXQgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRS8kRC8kQkFTRU5BTUUuc2hhMjU2IiAyPi9kZXYvbnVsbCB8IGdyZXAgLXEgIiRTSEEiOyB0aGVuCjE0NzogIGVjaG8gIlJFTU9URV9CWVRFUz1leGlzdGluZyIKMTQ4OiAgZWNobyAiUkVNT1RFX0NPVU5UPWV4aXN0aW5nIgoxNzE6Y2F0ID4gIiRXT1JLL01BTklGRVNULnR4dCIgPDxFT0YKMTcyOlAxIE1haWwgQ2xvdWQgZWRnZS12bSByZWN1cnJpbmcgY2h1bmtlZCB2emR1bXAgdXBsb2FkCjE3NDpWTUlEPSRWTUlECjE4MjpSRU1PVEU9JFRBUkdFVF9SRU1PVEUKMTgzOlJFTU9URV9ESVI9JFRBUkdFVF9ESVIKMTg4OnJjbG9uZSBta2RpciAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgPiAiJFdPUksvbG9ncy9ta2Rpci5vdXQiIDI+IiRXT1JLL2xvZ3MvbWtkaXIuZXJyIiB8fCBNS0RJUl9SQz0kPwoxOTA6cmNsb25lIGNvcHkgIiRQQVJUU19ESVIiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX1BBUlRTIiAtLXRyYW5zZmVycyAyIC0tY2hlY2tlcnMgNCAtLXJldHJpZXMgMyAtLWxvdy1sZXZlbC1yZXRyaWVzIDEwIC0tcHJvZ3Jlc3MgPiAiJFdPUksvbG9ncy91cGxvYWRfcGFydHMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9wYXJ0cy5lcnIiIHx8IFVQTE9BRF9QQVJUU19SQz0kPwoxOTI6cmNsb25lIGNvcHl0byAiJFdPUksvJEJBU0VOQU1FLnNoYTI1NiIgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfU0hBIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5vdXQiIDI+IiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5lcnIiIHx8IFVQTE9BRF9TSEFfUkM9JD8KMTkzOlVQTE9BRF9NQU5JRkVTVF9SQz0wCjE5NDpyY2xvbmUgY29weXRvICIkV09SSy9NQU5JRkVTVC50eHQiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX01BTklGRVNUIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX21hbmlmZXN0Lm91dCIgMj4iJFdPUksvbG9ncy91cGxvYWRfbWFuaWZlc3QuZXJyIiB8fCBVUExPQURfTUFOSUZFU1RfUkM9JD8KMTk2OnJjbG9uZSBjb3B5dG8gIiRXT1JLL1NIQTI1NlNVTVMudHh0IiAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9TVU1TIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3N1bXMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9zdW1zLmVyciIgfHwgVVBMT0FEX1NVTVNfUkM9JD8KMTk5OnJjbG9uZSBzaXplICIkVEFSR0VUX1JFTU9URTokVEFSR0VUX0RJUiIgLS1qc29uID4gIiRXT1JLL2xvZ3MvcmVtb3RlX3NpemUuanNvbiIgMj4iJFdPUksvbG9ncy9yZW1vdGVfc2l6ZS5lcnIiIHx8IFNJWkVfUkM9JD8KMjAxOnJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfUEFSVFMiIC0tZm9ybWF0ICJwcyIgPiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4iJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLmVyciIgfHwgTFNGX1BBUlRTX1JDPSQ/CjIwMjpSRU1PVEVfUEFSVF9DT1VOVD0iJChncmVwIC1jICJeJEJBU0VOQU1FLnBhcnQtIiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjIwMzpSRU1PVEVfQllURVM9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiYnl0ZXMiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNDpSRU1PVEVfQ09VTlQ9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiY291bnQiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNzpyY2xvbmUgY29weSAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgIiRETF9ESVIvcGFydHMiIC0tdHJhbnNmZXJzIDIgLS1jaGVja2VycyA0IC0tcmV0cmllcyAzIC0tbG93LWxldmVsLXJldHJpZXMgMTAgLS1wcm9ncmVzcyA+ICIkV09SSy9sb2dzL2Rvd25sb2FkX3BhcnRzLm91dCIgMj4iJFdPUksvbG9ncy9kb3dubG9hZF9wYXJ0cy5lcnIiIHx8IERPV05MT0FEX1BBUlRTX1JDPSQ/CjIzNDogIHJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRSIgLS1kaXJzLW9ubHkgMj4vZGV2L251bGwgfCBzZWQgInMjLyQjIyIgfCBzb3J0ID4gIiRESVJfTElTVCIgfHwgUkVURU5USU9OX1JDPSQ/CjIzOTogICAgICBbIC1uICIkT0xEIiBdICYmIHJjbG9uZSBwdXJnZSAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFLyRPTEQiID4+ICIkV09SSy9sb2dzL3JldGVudGlvbi5vdXQiIDI+PiIkV09SSy9sb2dzL3JldGVudGlvbi5lcnIiCjI0NTpmb3IgcmMgaW4gIiRTUExJVF9SQyIgIiRQQVJUX1NIQV9MSVNUX1JDIiAiJE1LRElSX1JDIiAiJFVQTE9BRF9QQVJUU19SQyIgIiRVUExPQURfU0hBX1JDIiAiJFVQTE9BRF9NQU5JRkVTVF9SQyIgIiRVUExPQURfU1VNU19SQyIgIiRTSVpFX1JDIiAiJExTRl9QQVJUU19SQyIgIiRET1dOTE9BRF9QQVJUU19SQyI7IGRvCjI0OTpbICIkUkVNT1RFX1BBUlRfQ09VTlQiID0gIiRQQVJUX0NPVU5UIiBdIHx8IFJVTl9TVEFUVVM9RVJST1IKMjY1OmVjaG8gIlVQTE9BRF9NQU5JRkVTVF9SQz0kVVBMT0FEX01BTklGRVNUX1JDIgoyNjk6ZWNobyAiUkVNT1RFX1BBUlRfQ09VTlQ9JFJFTU9URV9QQVJUX0NPVU5UIgoyNzA6ZWNobyAiUkVNT1RFX0NPVU5UPSRSRU1PVEVfQ09VTlQiCjI3MTplY2hvICJSRU1PVEVfQllURVM9JFJFTU9URV9CWVRFUyIKMjg4OlJFTU9URV9TQ1JJUFRfRU9GCjI5MDpjaG1vZCAwNzU1ICIkUkVNT1RFX1NDUklQVCIKMjkyOnNjcCAtcSAiJFJFTU9URV9FTlYiIHJvb3RAIiRQVkUwMiI6L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52ID4gL3RtcC9wMV9lZGdlX2F1dG9fc2NwX2Vudi5vdXQgMj4vdG1wL3AxX2VkZ2VfYXV0b19zY3BfZW52LmVycgoyOTQ6c2NwIC1xICIkUkVNT1RFX1NDUklQVCIgcm9vdEAiJFBWRTAyIjovdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5yZW1vdGUuc2ggPiAvdG1wL3AxX2VkZ2VfYXV0b19zY3Bfc2NyaXB0Lm91dCAyPi90bXAvcDFfZWRnZV9hdXRvX3NjcF9zY3JpcHQuZXJyCjI5ODogIGZhaWwgcmVtb3RlX3RyYW5zcG9ydF9wcmVwYXJlX2ZhaWxlZCAzCjMwMjogIHNzaCAtbyBCYXRjaE1vZGU9eWVzIC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1hY2NlcHQtbmV3IHJvb3RAIiRQVkUwMiIgImJhc2ggL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoIiB8IHNlZCAtRSAncy9bQS1aYS16MC05Ll8lKy1dK0BbQS1aYS16MC05Li1dKy88ZW1haWw+L2cnCjMwNjpzc2ggLW8gQmF0Y2hNb2RlPXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9YWNjZXB0LW5ldyByb290QCIkUFZFMDIiICJiYXNoIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLnJlbW90ZS5zaCIgPiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IDI+L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLmVycgozMDg6Y2F0IC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQKMzEwOlJFU1VMVD0kKHNlZCAtbiAncy9eUkVTVUxUPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IHRhaWwgLW4xKQozMTE6QUxSRUFEWT0kKHNlZCAtbiAncy9eQUxSRUFEWV9VUExPQURFRD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzEyOlBBUlRfQ09VTlQ9JChzZWQgLW4gJ3MvXlBBUlRfQ09VTlQ9Ly9wJyAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IHwgaGVhZCAtbjEpCjMxMzpTSEFfTUFUQ0g9JChzZWQgLW4gJ3MvXlNIQV9NQVRDSD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzE0OlJFTU9URV9CWVRFUz0kKHNlZCAtbiAncy9eUkVNT1RFX0JZVEVTPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IGhlYWQgLW4xKQozMTU6UkVNT1RFX1JFVEVOVElPTl9NT0RFPSQoc2VkIC1uICJzL15SRVRFTlRJT05fTU9ERT0vL3AiIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCB0YWlsIC1uMSkKMzE4OiAgZWNobyAiU1RBVFVTPU9LIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPXJlY3VycmluZy1jaHVua2VkIFJFUVVFU1RfTU9ERT0kTU9ERSBSRVRFTlRJT05fTU9ERT0ke1JFTU9URV9SRVRFTlRJT05fTU9ERTotdW5rbm93bn0gUkVNT1RFPSRUQVJHRVRfUkVNT1RFIERFU1Q9JFRBUkdFVF9ESVIgQVJDSElWRT0kQkFTRU5BTUUgU0laRT0kU0laRSBTSEEyNTY9JFNIQSBQQVJUX1NJWkU9JFBBUlRfU0laRSBQQVJUUz0kUEFSVF9DT1VOVCBBTFJFQURZX1VQTE9BREVEPSRBTFJFQURZIERPV05MT0FEX1ZFUklGWT0kU0hBX01BVENIIFJFVEVOVElPTl9LRUVQPSRLRUVQIFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPW5vbmUiID4gIiRIRUFMVEgiCjMyMjplY2hvICJTVEFUVVM9RVJST1IgVFM9JFRTIFRZUEU9bWFpbC1jbG91ZC1lZGdlLXZtIE1PREU9cmVjdXJyaW5nLWNodW5rZWQgUkVRVUVTVF9NT0RFPSRNT0RFIFJFVEVOVElPTl9NT0RFPSR7UkVNT1RFX1JFVEVOVElPTl9NT0RFOi11bmtub3dufSBSRU1PVEU9JFRBUkdFVF9SRU1PVEUgREVTVD0kVEFSR0VUX0RJUiBBUkNISVZFPSRCQVNFTkFNRSBTSVpFPSRTSVpFIFNIQTI1Nj0kU0hBIEFMUkVBRFlfVVBMT0FERUQ9JEFMUkVBRFkgU0VDUkVUX1BSSU5URUQ9bm8gTk9URVM9dXBsb2FkX2ZhaWxlZCIgPiAiJEhFQUxUSCI= +PIPE_42_SCORE=2 +PIPE_42_BASENAME=large264.py +PIPE_42_PATH_SHA256=763447e393c78143f6694409d88ac51ffe269e268597eda333c6d292559724ef +PIPE_42_FILE_SHA256=5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a +PIPE_42_SCHEDULE_TARGET_COUNT=0 +PIPE_42_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_42_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_42_VZDUMP_QEMU_COUNT=0 +PIPE_42_RCLONE_COUNT=2 +PIPE_42_CLOUD_QUORUM_COUNT=0 +PIPE_42_SEAL_WRITTEN_COUNT=0 +PIPE_42_PAYLOAD_PARTS_COUNT=0 +PIPE_42_TRANSPORT_COUNT=1 +PIPE_42_RESTORE_VALIDATION_COUNT=0 +PIPE_42_SCHEDULE_RESULT_COUNT=0 +PIPE_42_RELEVANT_LINE_COUNT=107 +PIPE_42_RELEVANT_B64=MToiIiIyNjRSMSBzdHJlYW1pbmcgY2xvdWQgYWRhcHRlciBhbmQgc3ludGhldGljIGJvdW5kYXJ5IHByb29mLgozOk5vIHdvcmsgb24gaW1wb3J0LiBObyBndWVzdC9iYWNrdXAgcHJvZHVjZXIgYW5kIG5vIGNsb3VkIGRlbGV0aW9uLiBFeGlzdGluZwo1OmFmdGVyIHR3byBjbG91ZCBzZWFscyBhbmQgYSBzZXBhcmF0ZWx5IGNsb3VkLWRpc2NvdmVyZWQgcmVzdG9yZSBoYXZlIGJlZW4gY2hlY2tlZC4KMTU6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE2OmltcG9ydCByZXN0b3JlMjYyIGFzIHIKMjM6ZGVmIHByb2Nlc3Nfc3RyZWFtKGFyZ3YsZW52LHNpemUsZGlnZXN0LGNvbnN1bWUsc2Vjb25kcyk6CjI1OiAgICB0Lm5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBhcmd2IGFuZCBzZWNvbmRzPjAsJ1NUUkVBTV9QUk9DRVNTX0FSR1VNRU5UUycpCjI3OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAozMTogICAgICAgIGZvciBmIGluIChwLnN0ZG91dCxwLnN0ZGVycik6b3Muc2V0X2Jsb2NraW5nKGYuZmlsZW5vKCksRmFsc2UpO3NlbC5yZWdpc3RlcihmLHNlbGVjdG9ycy5FVkVOVF9SRUFEKQo1NjpjbGFzcyBDbG91ZExhcmdlKHQuUmNsb25lSU8pOgo1OTogICAgICAgIHQubmVlZCh0eXBlKGFyZ3MpIGlzIGxpc3QgYW5kIGFyZ3MgYW5kIGFyZ3NbMF0gaW4gKCdhYm91dCcsJ2xzanNvbicsJ2NvcHl0bycsJ2NhdCcpLCdSQ0xPTkVfVkVSQl9GT1JCSURERU4nKQo2MDogICAgICAgIHQubmVlZCh0eXBlKGxpbWl0KSBpcyBpbnQgYW5kIDA8PWxpbWl0PD1jb3JlLk1BTklGRVNUX01BWF9CWVRFUysxLCdNRVRBREFUQV9CT1VORCcpCjYyOiAgICAgICAgdC5uZWVkKHNlY29uZHM+MCwnQ0xPVURfREVBRExJTkUnKTtzZWxmLmNhbGxzKz0xCjY2OiAgICBkZWYgcHV0KHNlbGYscmVtb3RlLG5hbWUscGF0aCk6CjY3OiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpCjY4OiAgICAgICAgaWYgbmFtZSBpbiAoJ21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbicpOgo2OTogICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5wdXQocmVtb3RlLG5hbWUscGF0aCkKNzA6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjcxOiAgICAgICAgdC5uZWVkKHBhcnQgaXMgbm90IE5vbmUsJ1BBUlRfTk9UX0lOX01BTklGRVNUJykKNzk6ICAgICAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9DT1BZX0ZBSUxFRCcpCjgwOiAgICBkZWYgcmVhZF9zdHJlYW0oc2VsZixyZW1vdGUsbmFtZSxzaXplLGRpZ2VzdCxjb25zdW1lKToKODE6ICAgICAgICBhZGRyZXNzPXNlbGYuYWRkcmVzcyhyZW1vdGUsbmFtZSkKODI6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjg0OiAgICAgICAgc2VsZi5jaGVjaygpO3NlY29uZHM9bWluKDM2MDAsc2VsZi5kZWFkbGluZS10aW1lLm1vbm90b25pYygpKTt0Lm5lZWQoc2Vjb25kcz4wLCdDTE9VRF9ERUFETElORScpCjkxOmNsYXNzIFJlYWRPbmx5TGFyZ2Uoci5SZWFkT25seUNsb3VkKToKOTM6ICAgIGRlZiByZWFkX3N0cmVhbShzZWxmLHJlbW90ZSxnZW5lcmF0aW9uLG5hbWUsc2l6ZSxkaWdlc3QsY29uc3VtZSk6Cjk2OiAgICAgICAgYWRkcmVzcz1zZWxmLmFkZHJlc3MocmVtb3RlLGdlbmVyYXRpb24sbmFtZSkKOTc6ICAgICAgICBzZWxmLmNoZWNrKCk7c2Vjb25kcz1taW4oMzYwMCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQoxMjA6ICAgIHJldHVybiB7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjEyNTpkZWYgdXBsb2FkKHNvdXJjZSx3b3JrLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoxMjY6ICAgICIiIlVwbG9hZCBhbmQgc2VhbDsgcmV0YWluIGFsbCBzb3VyY2UgYnl0ZXMgaGVyZS4gQ2xlYW51cCBpcyBhIGxhdGVyIGdhdGVkIG9wZXJhdGlvbi4iIiIKMTI4OiAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoxMzI6ICAgIHF1b3Rhcz17ZVsnYWNjb3VudF9pZCddOmNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKSBmb3IgZSBpbiBlbnRyaWVzfQoxMzM6ICAgIGFsbG9jYXRpb249Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxyZWNvcmRbJ3BheWxvYWRfYnl0ZXMnXSxyZXNlcnZlLGNsb2NrKCkpCjEzNDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlY29yZFsncGF5bG9hZF9ieXRlcyddLHJlY29yZFsncGF5bG9hZF9zaGEyNTYnXSxyZWNvcmRbJ3BhcnRzJ10sYWxsb2NhdGlvbikKMTM1OiAgICBtYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSk7Y2xvdWQuYmluZChtKQoxMzY6ICAgIHQuY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2NhdGlvbikpO3QuY3JlYXRlKHdvcmsvJ21hbmlmZXN0Lmpzb24nLG1iKQoxMzg6ICAgICAgICBndWFyZCgpO2Nsb3VkLmFic2VudChyZXBbJ2NyeXB0X3JlbW90ZSddKQoxNDE6ICAgICAgICBndWFyZCgpO3JlbW90ZT1yZXBbJ2NyeXB0X3JlbW90ZSddO3E9Y2xvdWQucXVvdGEocmVtb3RlKQoxNDI6ICAgICAgICB0Lm5lZWQoY29yZS5xdW90YV9yZWFzb24ocSxjbG9jaygpKSBpcyBOb25lIGFuZCBxWydmcmVlJ10+PWFsbG9jYXRpb25bJ3JlcXVpcmVkX2ZyZWVfYnl0ZXMnXSwnU0VMRUNURURfQUNDT1VOVF9DQVBBQ0lUWV9DSEFOR0VEJykKMTQ0OiAgICAgICAgZm9yIHBhcnQgaW4gbVsncGFydHMnXTpjbG91ZC5wdXQocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0ZGlyL3BhcnRbJ25hbWUnXSkKMTQ1OiAgICAgICAgY2xvdWQucHV0KHJlbW90ZSwnbWFuaWZlc3QuanNvbicsd29yay8nbWFuaWZlc3QuanNvbicpCjE0NjogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVtb3RlLCdtYW5pZmVzdC5qc29uJyxsZW4obWIpKzEpPT1tYiwnTUFOSUZFU1RfUkVBREJBQ0tfTUlTTUFUQ0gnKQoxNDk6ICAgICAgICAgICAgb2JzZXJ2ZWQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0WydzaXplJ10scGFydFsnc2hhMjU2J10sd2hvbGUudXBkYXRlKQoxNTM6ICAgIHNlYWw9eydzY2hlbWFfdmVyc2lvbic6Miwnc3RhdGUnOidTRUFMRUQnLCdnZW5lcmF0aW9uJzpnZW5lcmF0aW9uLCdsb2dpY2FsX2lkJzpsb2dpY2FsX2lkLAoxNTQ6ICAgICAgICAgICdtYW5pZmVzdF9zaGEyNTYnOm1oLCdyZXBsaWNhcyc6bVsncmVwbGljYXMnXSwncmVjZWlwdHMnOnJlY2VpcHRzLAoxNTU6ICAgICAgICAgICdhY2NlcHRhbmNlJzonSURFTlRJQ0FMX1NFQUxfUkVRVUlSRURfT05fQk9USF9OQU1FRF9BQ0NPVU5UUyd9CjE1NjogICAgc2I9Y29yZS5jYW5vbmljYWxfYnl0ZXMoc2VhbCk7dC5uZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoxNTc6ICAgIHIudmFsaWRhdGVfc2VhbChzYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk7dC5jcmVhdGUod29yay8nU0VBTEVELmpzb24nLHNiKQoxNTk6ICAgICAgICBndWFyZCgpO2Nsb3VkLnB1dChyZXBbJ2NyeXB0X3JlbW90ZSddLCdTRUFMRUQuanNvbicsd29yay8nU0VBTEVELmpzb24nKQoxNjE6ICAgICAgICB0Lm5lZWQoY2xvdWQuZ2V0KHJlcFsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTEVEX1FVT1JVTV9SRVFVSVJFRCcpCjE2MzogICAgdC5jcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnQuc2hhKHNiKX0pKQoxNjQ6ICAgIHJldHVybiB7J3NlYWxlZCc6VHJ1ZSwnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdwYXJ0c19yZWNvcmQnOnJlY29yZCwnc291cmNlJzpzdHIoc291cmNlKSwnd29yayc6c3RyKHdvcmspfQoxNjc6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9oYXNoKToKMTY4OiAgICAiIiJGaW5kIHBsYWNlbWVudCBmcm9tIGFsbCBjbG91ZCBjYXRhbG9ncywgdXNpbmcgb25seSBhbiBleHRlcm5hbCBtYW5pZmVzdCBkaWdlc3QuIiIiCjE3MTogICAgbGlzdGVkPXt9O2dlbmVyYXRpb25zPXNldCgpCjE3MzogICAgICAgIGdzPWNsb3VkLmxpc3RfZ2VuZXJhdGlvbnMoZVsnY3J5cHRfcmVtb3RlJ10pCjE3NDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1yLk1BWF9HRU5FUkFUSU9OUyBhbmQgYWxsKGNvcmUudmFsaWRfbmFtZShnKSBmb3IgZyBpbiBncyksJ0dFTkVSQVRJT05fTElTVF9JTlZBTElEJykKMTc1OiAgICAgICAgdC5uZWVkKGxlbihncyk9PWxlbihzZXQoZ3MpKSwnR0VORVJBVElPTl9MSVNUX0RVUExJQ0FURScpO2xpc3RlZFtlWydjcnlwdF9yZW1vdGUnXV09c2V0KGdzKTtnZW5lcmF0aW9ucy51cGRhdGUoZ3MpCjE3NjogICAgdC5uZWVkKGxlbihnZW5lcmF0aW9ucyk8PXIuTUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjE3ODogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxODE6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjE4MjogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjE4MzogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTg1OiAgICAgICAgICAgIHNlYWw9ci52YWxpZGF0ZV9zZWFsKGIsZW50cmllcyxnZW4sbG9naWNhbF9pZCkKMTg2OiAgICAgICAgICAgIHQubmVlZChyZW1vdGUgaW4ge3hbJ2NyeXB0X3JlbW90ZSddIGZvciB4IGluIHNlYWxbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKTtzZWVuW3JlbW90ZV09KGIsc2VhbCkKMTg4OiAgICAgICAgc2Isc2VhbD1uZXh0KGl0ZXIoc2Vlbi52YWx1ZXMoKSkpCjE4OTogICAgICAgIGlmIHNlYWxbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9oYXNoOmNvbnRpbnVlCjE5MDogICAgICAgIG5hbWVkPXt4WydjcnlwdF9yZW1vdGUnXSBmb3IgeCBpbiBzZWFsWydyZXBsaWNhcyddfQoxOTE6ICAgICAgICB0Lm5lZWQoc2V0KHNlZW4pPT1uYW1lZCBhbmQgYWxsKGI9PXNiIGZvciBiLF8gaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxOTM6ICAgICAgICBmb3IgcmVwIGluIHNlYWxbJ3JlcGxpY2FzJ106CjE5NDogICAgICAgICAgICBiPWNsb3VkLmdldChyZXBbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTk1OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfaGFzaCwnTUFOSUZFU1RfRElHRVNUX01JU01BVENIJykKMTk2OiAgICAgICAgICAgIG09ci5zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjE5NzogICAgICAgICAgICB0Lm5lZWQobVsnZ2VuZXJhdGlvbiddPT1nZW4gYW5kIG1bJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCBhbmQgbVsncmVwbGljYXMnXT09c2VhbFsncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTk4OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxzZWFsWydyZWNlaXB0cyddKTtibG9icy5hcHBlbmQoYikKMTk5OiAgICAgICAgdC5uZWVkKGxlbihibG9icyk9PTIgYW5kIGJsb2JzWzBdPT1ibG9ic1sxXSwnVFdPX01BTklGRVNUX0NPUElFU19SRVFVSVJFRCcpCjIwMDogICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKHsnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdhY2NvdW50c19zY2FubmVkJzpsZW4obGlzdGVkKX0pCjIwMTogICAgdC5uZWVkKGxlbihjYW5kaWRhdGVzKT09MSwnRVhBQ1RMWV9PTkVfQUNDRVBURURfR0VORVJBVElPTl9SRVFVSVJFRCcpCjIwNTpkZWYgZnJlc2hfc2VhbHMoY2xvdWQsZGlzY292ZXJ5KToKMjA2OiAgICBtPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pO3NiPWRpc2NvdmVyeVsnc2VhbF9ieXRlcyddCjIwODogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTF9DSEFOR0VEX0RVUklOR19SRVNUT1JFJykKMjExOmRlZiBkb3dubG9hZF9wYXJ0KGNsb3VkLHJlcCxtLHBhcnQscGF0aCx3aG9sZSk6CjIxNTogICAgICAgIGRlZiBjb25zdW1lKGJsb2NrKTp3aG9sZS51cGRhdGUoYmxvY2spO3Mud3JpdGVfYWxsKGZkLGJsb2NrKQoyMTY6ICAgICAgICByZXN1bHQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10scGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSxwYXJ0WydzaGEyNTYnXSxjb25zdW1lKQoyMjU6ZGVmIHJlc3RvcmUod29yayxjbG91ZCxkaXNjb3ZlcnkpOgoyMjc6ICAgIHdvcms9UGF0aCh3b3JrKTttPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjIzMjogICAgICAgICAgICBpZiBpPT0wOm93bmVkW3BhcnRbJ25hbWUnXV09ZG93bmxvYWRfcGFydChjbG91ZCxyZXAsbSxwYXJ0LHBhcnRkaXIvcGFydFsnbmFtZSddLHdob2xlKQoyMzQ6ICAgICAgICAgICAgICAgIGdvdD1jbG91ZC5yZWFkX3N0cmVhbShyZXBbJ2NyeXB0X3JlbW90ZSddLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddLHBhcnRbJ3NoYTI1NiddLHdob2xlLnVwZGF0ZSkKMjM4OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHJlY2VpcHRzKTtmcmVzaF9zZWFscyhjbG91ZCxkaXNjb3ZlcnkpCjI0MTogICAgcmVzdWx0PXMucmVhc3NlbWJsZShwYXJ0ZGlyLHJlYyx3b3JrLydyZXN0b3JlZC5iaW4nKQoyNDI6ICAgIGZyZXNoX3NlYWxzKGNsb3VkLGRpc2NvdmVyeSkKMjQzOiAgICB0LmNyZWF0ZSh3b3JrLydSRVNUT1JFX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksJ3ZlcmlmaWVkX3JlcGxpY2FzJzoyLAoyNDU6ICAgIHJldHVybiB7J3ZlcmlmaWVkX3JlcGxpY2FzJzoyLCdtYW5pZmVzdF9zaGEyNTYnOmNvcmUubWFuaWZlc3RfaGFzaChtKSwnZGlzY292ZXJ5JzpkaXNjb3ZlcnksCjI0OTpkZWYgY2xlYW51cCh1cGxvYWRfcmVzdWx0LHJlc3RvcmVfcmVzdWx0LGNsb3VkLGd1YXJkKToKMjUwOiAgICAiIiJObyB1bmxpbmsgdW50aWwgZXZlcnkgZXhwZWN0ZWQgZmlsZSBhbmQgYm90aCByZW1vdGUgc2VhbHMgaGF2ZSBwYXNzZWQgdmVyaWZpY2F0aW9uLiIiIgoyNTE6ICAgIHQubmVlZCh0eXBlKHVwbG9hZF9yZXN1bHQpIGlzIGRpY3QgYW5kIHVwbG9hZF9yZXN1bHQuZ2V0KCdzZWFsZWQnKSBpcyBUcnVlLCdVUExPQURfUVVPUlVNX1JFUVVJUkVEJykKMjUyOiAgICB0Lm5lZWQodHlwZShyZXN0b3JlX3Jlc3VsdCkgaXMgZGljdCBhbmQgcmVzdG9yZV9yZXN1bHQuZ2V0KCd2ZXJpZmllZF9yZXBsaWNhcycpPT0yLCdSRVNUT1JFX1JFUVVJUkVEJykKMjUzOiAgICBtPXVwbG9hZF9yZXN1bHRbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSkKMjU0OiAgICB0Lm5lZWQocmVzdG9yZV9yZXN1bHRbJ21hbmlmZXN0X3NoYTI1NiddPT1taCwnUkVTVE9SRV9HRU5FUkFUSU9OX01JU01BVENIJykKMjU1OiAgICB0Lm5lZWQoY29yZS5jYW5vbmljYWxfYnl0ZXMocmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddWydtYW5pZmVzdCddKT09Y29yZS5jYW5vbmljYWxfYnl0ZXMobSkgYW5kCjI1NjogICAgICAgICAgIHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXVsnc2VhbF9ieXRlcyddPT11cGxvYWRfcmVzdWx0WydzZWFsX2J5dGVzJ10sJ1JFU1RPUkVfUVVPUlVNX01JU01BVENIJykKMjU3OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHIuc3RyaWN0X2pzb24odXBsb2FkX3Jlc3VsdFsnc2VhbF9ieXRlcyddLGNvcmUuU0VBTF9NQVhfQllURVMpWydyZWNlaXB0cyddKQoyNTg6ICAgIGd1YXJkKCk7ZnJlc2hfc2VhbHMoY2xvdWQscmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddKQoyNjE6ICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3RvcmVfcmVzdWx0WydwYXJ0c19yZWNvcmQnXSxQYXRoKHJlc3RvcmVfcmVzdWx0Wyd3b3JrJ10pLydwYXJ0cycpKToKMjY1OiAgICBpdGVtcy5hcHBlbmQoKFBhdGgocmVzdG9yZV9yZXN1bHRbJ3dvcmsnXSkvJ3Jlc3RvcmVkLmJpbicsdHVwbGUocmVzdG9yZV9yZXN1bHRbJ3JlYXNzZW1ibGVkJ11bJ2lkZW50aXR5J10pLG1bJ3BheWxvYWRfYnl0ZXMnXSxtWydwYXlsb2FkX3NoYTI1NiddKSkKMjY5OiAgICBndWFyZCgpO2ZyZXNoX3NlYWxzKGNsb3VkLHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXSk= +PIPE_43_SCORE=2 +PIPE_43_BASENAME=restore262.py +PIPE_43_PATH_SHA256=d56e7140093641df97bc784629090b05892c866fb2134ff361e524d461438765 +PIPE_43_FILE_SHA256=56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1 +PIPE_43_SCHEDULE_TARGET_COUNT=0 +PIPE_43_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_43_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_43_VZDUMP_QEMU_COUNT=0 +PIPE_43_RCLONE_COUNT=1 +PIPE_43_CLOUD_QUORUM_COUNT=0 +PIPE_43_SEAL_WRITTEN_COUNT=0 +PIPE_43_PAYLOAD_PARTS_COUNT=0 +PIPE_43_TRANSPORT_COUNT=1 +PIPE_43_RESTORE_VALIDATION_COUNT=0 +PIPE_43_SCHEDULE_RESULT_COUNT=0 +PIPE_43_RELEVANT_LINE_COUNT=89 +PIPE_43_RELEVANT_B64=MToiIiIyNjJSMSBib3VuZGVkIGNsb3VkLWRpc2NvdmVyZWQgcmVjb3ZlcnkuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KMzpDbG91ZCBhY2Nlc3MgaXMgc3RyaWN0bHkgbHNqc29uL2NhdC4gTm8gc291cmNlLWxvY2FsIHdvcmtzcGFjZS9tYW5pZmVzdC9yZWNlaXB0CjQ6aXMgcmVhZC4gVGhlIGV4dGVybmFsIGFjY2VwdGVkIG1hbmlmZXN0IGRpZ2VzdCBpcyBhIHRydXN0IGFuY2hvciwgbm90IHBsYWNlbWVudC4KMTY6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE5OiAgICAgICAgICAgICAgICAgICAgICAgJ3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnLCdldGMvc3lzdGVtZC9zeXN0ZW0vaG9tZWxhYi1jb250cm9sLWJhY2t1cC5zZXJ2aWNlJykpCjIxOk1BWF9HRU5FUkFUSU9OUz02NAoyMjpTRUFMX0tFWVM9eydzY2hlbWFfdmVyc2lvbicsJ3N0YXRlJywnZ2VuZXJhdGlvbicsJ2xvZ2ljYWxfaWQnLCdtYW5pZmVzdF9zaGEyNTYnLCdyZXBsaWNhcycsJ3JlY2VpcHRzJywnYWNjZXB0YW5jZSd9CjM2OmNsYXNzIFJlYWRPbmx5Q2xvdWQ6CjQxOiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5ndWFyZD1ndWFyZDtzZWxmLndvcms9UGF0aCh3b3JrKQo1MDogICAgICAgIHQubmVlZCh0LnNoYSh0LnJlYWRfc2VjdXJlKHNlbGYuZXhlY3V0YWJsZSwxMjgqMTAyNCoxMDI0KVswXSk9PXNlbGYuZXhlX3NoYSwnUkNMT05FX0JJTkFSWV9DSEFOR0VEJykKNTE6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLGdlbmVyYXRpb249Tm9uZSxuYW1lPU5vbmUpOgo1MjogICAgICAgIHQubmVlZChyZW1vdGUgaW4gc2VsZi5jcnlwdCwnQ1JZUFRfUkVNT1RFX1JFUVVJUkVEJykKNTM6ICAgICAgICBwPXJlbW90ZSsnOmJhY2t1cC12Mi90YXJnZXRzLycrc2VsZi5sb2dpY2FsX2lkKycvZ2VuZXJhdGlvbnMnCjU0OiAgICAgICAgaWYgZ2VuZXJhdGlvbiBpcyBOb25lOgo1NTogICAgICAgICAgICB0Lm5lZWQobmFtZSBpcyBOb25lLCdPQkpFQ1RfV0lUSE9VVF9HRU5FUkFUSU9OJyk7cmV0dXJuIHAKNTY6ICAgICAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pLCdHRU5FUkFUSU9OX05BTUVfSU5WQUxJRCcpO3ArPScvJytnZW5lcmF0aW9uCjU4OiAgICAgICAgICAgIHQubmVlZChuYW1lIGluICgnU0VBTEVELmpzb24nLCdtYW5pZmVzdC5qc29uJykgb3IgKHR5cGUobmFtZSkgaXMgc3RyIGFuZCByZS5mdWxsbWF0Y2gocidwYXJ0LVxkezZ9XC5iaW4nLG5hbWUpKSwKNjI6ICAgICAgICB0Lm5lZWQodHlwZShhcmdzKSBpcyBsaXN0IGFuZCBhcmdzIGFuZCBhcmdzWzBdIGluICgnbHNqc29uJywnY2F0JyksJ1JFQURfT05MWV9DTE9VRF9WRVJCX1JFUVVJUkVEJykKNjM6ICAgICAgICB0Lm5lZWQodHlwZShsaW1pdCkgaXMgaW50IGFuZCAwPGxpbWl0PD10Lk1BWF9QQVlMT0FEX0JZVEVTKzEsJ0NMT1VEX1JFQURfQk9VTkQnKQo2NDogICAgICAgIHNlbGYuY2hlY2soKTtzZWNvbmRzPW1pbig5MCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQo2NTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLnNuYXBzaG90KSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsJy0tc3RhdHMnLCcwJywKNjc6ICAgICAgICBzZWxmLmNhbGxzKz0xO3JjLG91dD10LmJvdW5kZWRfcHJvY2Vzcyhhcmd2LHNlbGYuZW52LGxpbWl0LHNlY29uZHMpO3NlbGYuY2hlY2soKTtyZXR1cm4gcmMsb3V0CjY4OiAgICBkZWYgbGlzdF9nZW5lcmF0aW9ucyhzZWxmLHJlbW90ZSk6CjY5OiAgICAgICAgcmMsb3V0PXNlbGYuY2FsbChbJ2xzanNvbicsc2VsZi5hZGRyZXNzKHJlbW90ZSksJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sMTA0ODU3NikKNzE6ICAgICAgICB0Lm5lZWQocmM9PTAsJ0NMT1VEX0xJU1RfRkFJTEVEJykKNzM6ICAgICAgICB0Lm5lZWQodHlwZShyb3dzKSBpcyBsaXN0IGFuZCBsZW4ocm93cyk8PU1BWF9HRU5FUkFUSU9OUywnQ0xPVURfTElTVF9CT1VORCcpCjc2OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGl0ZW0pIGlzIGRpY3QgYW5kIGl0ZW0uZ2V0KCdJc0RpcicpIGlzIFRydWUsJ0NMT1VEX0xJU1RfU0NIRU1BJykKNzc6ICAgICAgICAgICAgbmFtZT1pdGVtLmdldCgnTmFtZScpO3QubmVlZChjb3JlLnZhbGlkX25hbWUobmFtZSkgYW5kIGl0ZW0uZ2V0KCdQYXRoJyk9PW5hbWUsJ0NMT1VEX0xJU1RfTkFNRScpCjc4OiAgICAgICAgICAgIHQubmVlZChuYW1lIG5vdCBpbiBuYW1lcywnQ0xPVURfTElTVF9EVVBMSUNBVEUnKTtuYW1lcy5hcHBlbmQobmFtZSkKODA6ICAgIGRlZiBnZXQoc2VsZixyZW1vdGUsZ2VuZXJhdGlvbixuYW1lLGxpbWl0LG1pc3Npbmdfb2s9RmFsc2UpOgo4MTogICAgICAgIHJjLG91dD1zZWxmLmNhbGwoWydjYXQnLHNlbGYuYWRkcmVzcyhyZW1vdGUsZ2VuZXJhdGlvbixuYW1lKSwnLS1jb3VudCcsc3RyKGxpbWl0KV0sbGltaXQpCjgzOiAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9SRUFEX0ZBSUxFRCcpO3JldHVybiBvdXQKODY6ZGVmIHZhbGlkYXRlX3NlYWwoYmxvYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk6Cjg3OiAgICBzPXN0cmljdF9qc29uKGJsb2IsY29yZS5TRUFMX01BWF9CWVRFUykKODg6ICAgIHQubmVlZCh0eXBlKHMpIGlzIGRpY3QgYW5kIHNldChzKT09U0VBTF9LRVlTLCdTRUFMX1NDSEVNQScpCjg5OiAgICB0Lm5lZWQodHlwZShzWydzY2hlbWFfdmVyc2lvbiddKSBpcyBpbnQgYW5kIHNbJ3NjaGVtYV92ZXJzaW9uJ109PTIgYW5kIHNbJ3N0YXRlJ109PSdTRUFMRUQnLCdTRUFMX1NUQVRFJykKOTA6ICAgIHQubmVlZChzWydnZW5lcmF0aW9uJ109PWdlbmVyYXRpb24gYW5kIHNbJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCwnU0VBTF9JREVOVElUWScpCjkxOiAgICB0Lm5lZWQoY29yZS52YWxpZF9oYXNoKHNbJ21hbmlmZXN0X3NoYTI1NiddKSwnU0VBTF9NQU5JRkVTVF9IQVNIJykKOTI6ICAgIHQubmVlZChzWydhY2NlcHRhbmNlJ109PSdJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJywnU0VBTF9BQ0NFUFRBTkNFJykKOTM6ICAgIHJlcGxpY2FzPXNbJ3JlcGxpY2FzJ107dC5uZWVkKHR5cGUocmVwbGljYXMpIGlzIGxpc3QgYW5kIGxlbihyZXBsaWNhcyk9PTIsJ1NFQUxfUVVPUlVNJykKOTQ6ICAgIGtub3duPXtlWydhY2NvdW50X2lkJ106ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc30KOTc6ICAgICAgICAgICAgICAgYW5kIGNvcmUudmFsaWRfbmFtZShyZXBbJ2NyeXB0X3JlbW90ZSddKSBhbmQga25vd24uZ2V0KHJlcFsnYWNjb3VudF9pZCddKT09cmVwWydjcnlwdF9yZW1vdGUnXSwnU0VBTF9DT05GSUdfTUFQUElORycpCjk4OiAgICB0Lm5lZWQobGVuKHtwWydhY2NvdW50X2lkJ10gZm9yIHAgaW4gcmVwbGljYXN9KT09MiBhbmQgbGVuKHtwWydjcnlwdF9yZW1vdGUnXSBmb3IgcCBpbiByZXBsaWNhc30pPT0yLCdTRUFMX0RJU1RJTkNUX0FDQ09VTlRTJykKOTk6ICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhzKT09YmxvYiwnU0VBTF9DQU5PTklDQUxfQllURVMnKQoxMDM6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9tYW5pZmVzdF9zaGEpOgoxMDQ6ICAgICIiIkVudW1lcmF0ZSBhbGwgYWNjb3VudHM7IHJlcXVpcmUgYm90aCBuYW1lZCBzZWFscywgbm90IGEgbG9jYWwgc2VhbCByZWNlaXB0LiIiIgoxMDY6ICAgIHQubmVlZChjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCkgYW5kIGNvcmUudmFsaWRfaGFzaChleHBlY3RlZF9tYW5pZmVzdF9zaGEpLCdESVNDT1ZFUllfSU5QVVQnKQoxMDc6ICAgIGxpc3RlZD17fTtnZW5lcmF0aW9ucz1zZXQoKQoxMDk6ICAgICAgICByZW1vdGU9ZVsnY3J5cHRfcmVtb3RlJ107Z3M9Y2xvdWQubGlzdF9nZW5lcmF0aW9ucyhyZW1vdGUpCjExMDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1NQVhfR0VORVJBVElPTlMgYW5kIGFsbChjb3JlLnZhbGlkX25hbWUoZykgZm9yIGcgaW4gZ3MpLCdHRU5FUkFUSU9OX0xJU1RfSU5WQUxJRCcpCjExMTogICAgICAgIHQubmVlZChsZW4oc2V0KGdzKSk9PWxlbihncyksJ0dFTkVSQVRJT05fTElTVF9EVVBMSUNBVEUnKQoxMTI6ICAgICAgICBsaXN0ZWRbcmVtb3RlXT1zZXQoZ3MpO2dlbmVyYXRpb25zLnVwZGF0ZShncykKMTEzOiAgICB0Lm5lZWQobGVuKGdlbmVyYXRpb25zKTw9TUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjExNTogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxMTg6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjExOTogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjEyMDogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTIyOiAgICAgICAgICAgIHM9dmFsaWRhdGVfc2VhbChiLGVudHJpZXMsZ2VuLGxvZ2ljYWxfaWQpCjEyMzogICAgICAgICAgICB0Lm5lZWQocmVtb3RlIGluIHtyclsnY3J5cHRfcmVtb3RlJ10gZm9yIHJyIGluIHNbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKQoxMjQ6ICAgICAgICAgICAgc2VlbltyZW1vdGVdPShiLHMpCjEyNzogICAgICAgIGlmIGZpcnN0X3NbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9tYW5pZmVzdF9zaGE6Y29udGludWUKMTI4OiAgICAgICAgbmFtZWQ9e3JyWydjcnlwdF9yZW1vdGUnXSBmb3IgcnIgaW4gZmlyc3Rfc1sncmVwbGljYXMnXX0KMTI5OiAgICAgICAgdC5uZWVkKHNldChzZWVuKT09bmFtZWQgYW5kIGFsbChiPT1maXJzdF9iIGZvciBiLHMgaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxMzA6ICAgICAgICBtYW5pZmVzdF9ibG9icz1bXQoxMzI6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocnJbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTMzOiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfbWFuaWZlc3Rfc2hhLCdNQU5JRkVTVF9ESUdFU1RfTUlTTUFUQ0gnKQoxMzQ6ICAgICAgICAgICAgbT1zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjEzNTogICAgICAgICAgICB0Lm5lZWQobVsnbG9naWNhbF9pZCddPT1sb2dpY2FsX2lkIGFuZCBtWydnZW5lcmF0aW9uJ109PWdlbiBhbmQgbVsncmVwbGljYXMnXT09Zmlyc3Rfc1sncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTM3OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxmaXJzdF9zWydyZWNlaXB0cyddKQoxMzg6ICAgICAgICAgICAgbWFuaWZlc3RfYmxvYnMuYXBwZW5kKGIpCjEzOTogICAgICAgIHQubmVlZChsZW4obWFuaWZlc3RfYmxvYnMpPT0yIGFuZCBtYW5pZmVzdF9ibG9ic1swXT09bWFuaWZlc3RfYmxvYnNbMV0sJ01BTklGRVNUX1RXT19DT1BJRVMnKQoxNDA6ICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCh7J21hbmlmZXN0JzptLCdtYW5pZmVzdF9ieXRlcyc6bWFuaWZlc3RfYmxvYnNbMF0sJ3NlYWwnOmZpcnN0X3MsJ3NlYWxfYnl0ZXMnOmZpcnN0X2IsCjE0MTogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNjb3VudHNfc2Nhbm5lZCc6bGVuKGxpc3RlZCksJ2dlbmVyYXRpb25zX2ZvdW5kJzpsZW4oZ2VuZXJhdGlvbnMpfSkKMTQyOiAgICB0Lm5lZWQobGVuKGNhbmRpZGF0ZXMpPT0xLCdFWEFDVExZX09ORV9BQ0NFUFRFRF9HRU5FUkFUSU9OX1JFUVVJUkVEJykKMTQ2OmRlZiB2ZXJpZnlfZG93bmxvYWRzKGNsb3VkLGRpc2NvdmVyeSk6CjE0NzogICAgbT1kaXNjb3ZlcnlbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKQoxNTE6ICAgICAgICByZW1vdGU9cmVwWydjcnlwdF9yZW1vdGUnXTtjaHVua3M9W107cGFydHM9W107ZnVsbD1oYXNobGliLnNoYTI1NigpO3NpemU9MAoxNTM6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocmVtb3RlLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddKzEpCjE2MDogICAgICAgIHJlY2VpcHRzLmFwcGVuZCh7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjE2MzogICAgIyBGcmVzaCBzZWFsIHJlYWRiYWNrIGFmdGVyIHRoZSBwYXlsb2FkOiBuZXZlciB0cnVzdCBvbmx5IHRoZSBpbml0aWFsIGxpc3RpbmcuCjE2NTogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oZGlzY292ZXJ5WydzZWFsX2J5dGVzJ10pKzEpPT1kaXNjb3ZlcnlbJ3NlYWxfYnl0ZXMnXSwKMTY2OiAgICAgICAgICAgICAgICdTRUFMX0NIQU5HRURfRFVSSU5HX1JFU1RPUkUnKQoyMTU6ZGVmIHJlc3RvcmVfZmlsZXMod29yayxmaWxlcyk6CjIxNjogICAgdC5uZWVkKHR5cGUoZmlsZXMpIGlzIGRpY3QgYW5kIHNldChmaWxlcyk9PUFMTF9OQU1FUyBhbmQgYWxsKHR5cGUoYikgaXMgYnl0ZXMgZm9yIGIgaW4gZmlsZXMudmFsdWVzKCkpLCdSRVNUT1JFX0ZJTEVTX1dISVRFTElTVCcpCjIxNzogICAgcm9vdD1QYXRoKHdvcmspLydyZXN0b3JlZCc7dC5tYWtlX2Rpcihyb290LGV4Y2x1c2l2ZT1UcnVlKQoyMjM6ICAgICAgICB0Lm5lZWQoZ290PT1iIGFuZCBmb3VuZD09aWRlbnRpdHksJ1JFU1RPUkVEX0ZJTEVfUkVBREJBQ0tfTUlTTUFUQ0gnKQoyMjg6ZGVmIGNsZWFudXBfcmVzdG9yZWQod29yayxyZWNvcmRzKToKMjI5OiAgICByb290PVBhdGgod29yaykvJ3Jlc3RvcmVkJwoyNDI6ICAgICAgICB0Lm5lZWQoaWRlbnRpdHk9PXJlY29yZHNbbmFtZV1bJ2lkZW50aXR5J10gYW5kIHQuc2hhKGIpPT1yZWNvcmRzW25hbWVdWydzaGEyNTYnXSwnUkVTVE9SRV9DTEVBTlVQX0lERU5USVRZJyk= +PIPE_44_SCORE=2 +PIPE_44_BASENAME=stream263.py +PIPE_44_PATH_SHA256=b23d692699b7d496f11a5e695304843aaa576cbbfecf022f6d5dc6867d67830a +PIPE_44_FILE_SHA256=a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16 +PIPE_44_SCHEDULE_TARGET_COUNT=0 +PIPE_44_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_44_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_44_VZDUMP_QEMU_COUNT=0 +PIPE_44_RCLONE_COUNT=1 +PIPE_44_CLOUD_QUORUM_COUNT=0 +PIPE_44_SEAL_WRITTEN_COUNT=0 +PIPE_44_PAYLOAD_PARTS_COUNT=0 +PIPE_44_TRANSPORT_COUNT=1 +PIPE_44_RESTORE_VALIDATION_COUNT=0 +PIPE_44_SCHEDULE_RESULT_COUNT=0 +PIPE_44_RELEVANT_LINE_COUNT=9 +PIPE_44_RELEVANT_B64=MToiIiJCYWNrdXAgVjIgYm91bmRlZC1tZW1vcnkgbG9jYWwgcGF5bG9hZCBwcmltaXRpdmVzLCBzdGFnZSAyNjNSMS4KMzpObyBleGVjdXRhYmxlIGVudHJ5IHBvaW50LCBuZXR3b3JrLCByY2xvbmUsIGJhY2t1cCBleGVjdXRpb24sIHNlYWxpbmcgb3IgZGVsZXRpb24uCjU6cGFydGlhbCBvdXRwdXQgaXMgcmV0YWluZWQuIFRoaXMgbW9kdWxlIGlzIE5PVCBhIGZ1bGwgaG9zdCBiYWNrdXAvcmVzdG9yZSBlbmdpbmUuCjEzOmltcG9ydCB0cmFuc3BvcnQyNjEgYXMgdAozMTogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQo1MDogICAgZGVmIGZlZWQoc2VsZixibG9jayk6CjUyOiAgICAgICAgbmVlZCh0eXBlKGJsb2NrKSBpcyBieXRlcyBhbmQgbGVuKGJsb2NrKTw9Q0hVTktfQllURVMsJ1NJTktfQ0hVTktfQk9VTkQnKQo1MzogICAgICAgIG5lZWQoc2VsZi5jb3VudCtsZW4oYmxvY2spPD1zZWxmLnNpemUsJ1NUUkVBTV9PVkVSU0laRScpCjU0OiAgICAgICAgc2VsZi5oLnVwZGF0ZShibG9jayk7c2VsZi5jb3VudCs9bGVuKGJsb2NrKQ== +PIPE_45_SCORE=2 +PIPE_45_BASENAME=transport261.py +PIPE_45_PATH_SHA256=ea601b982d11723f8b74940d41f5bbfd5186b09baeb79f17a0936b4212479939 +PIPE_45_FILE_SHA256=b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688 +PIPE_45_SCHEDULE_TARGET_COUNT=0 +PIPE_45_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_45_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_45_VZDUMP_QEMU_COUNT=0 +PIPE_45_RCLONE_COUNT=3 +PIPE_45_CLOUD_QUORUM_COUNT=0 +PIPE_45_SEAL_WRITTEN_COUNT=0 +PIPE_45_PAYLOAD_PARTS_COUNT=0 +PIPE_45_TRANSPORT_COUNT=1 +PIPE_45_RESTORE_VALIDATION_COUNT=0 +PIPE_45_SCHEDULE_RESULT_COUNT=0 +PIPE_45_RELEVANT_LINE_COUNT=69 +PIPE_45_RELEVANT_B64=MToiIiJCb3VuZGVkIEJhY2t1cCBWMiB0cmFuc3BvcnQgMjYxUjEuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KNDpjb250cm9sLWZpbGUgYmFja3VwLCBOT1QgYSBjb21wbGV0ZSBub2RlIGJhY2t1cCBvciBpbmRlcGVuZGVudCByZXN0b3JlIGRyaWxsLgo1NzogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQoxMDk6ICAgIHA9UGF0aChwYXRoKTtkYXRhLGZvdW5kPXJlYWRfc2VjdXJlKHAsTUFYX1BBWUxPQURfQllURVMrY29yZS5NQU5JRkVTVF9NQVhfQllURVMpCjE0NjpkZWYgYm91bmRlZF9wcm9jZXNzKGFyZ3YsZW52LGxpbWl0LHNlY29uZHMpOgoxNDg6ICAgIG5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBzZWNvbmRzPjAgYW5kIDA8PWxpbWl0PD1NQVhfUEFZTE9BRF9CWVRFUysxLCdQUk9DRVNTX0xJTUlUJykKMTQ5OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAoxNTM6ICAgICAgICBmb3IgZiBpbiAocC5zdGRvdXQscC5zdGRlcnIpOm9zLnNldF9ibG9ja2luZyhmLmZpbGVubygpLEZhbHNlKTtzZWwucmVnaXN0ZXIoZixzZWxlY3RvcnMuRVZFTlRfUkVBRCkKMTcxOmNsYXNzIFJjbG9uZUlPOgoxNzI6ICAgICIiIkNyeXB0LW9ubHkgbmFtZXNwYWNlLWNvbmZpbmVkIGFkYXB0ZXIuIFNuYXBzaG90IHRva2VuIHJlZnJlc2ggbmV2ZXIgdGFyZ2V0cyBsaXZlIGNvbmZpZy4iIiIKMTc2OiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5leHBlY3RlZF9iaW5kaW5nPWV4cGVjdGVkX2JpbmRpbmcKMTc4OiAgICAgICAgc2VsZi5jYWxscz0wO3NlbGYud3JpdGVzX2F0dGVtcHRlZD0wO3NlbGYubWFuaWZlc3Q9Tm9uZQoxODU6ICAgICAgICBuZWVkKHNoYShyZWFkX3NlY3VyZShzZWxmLmV4ZWN1dGFibGUsMTI4KjEwMjQqMTAyNClbMF0pPT1zZWxmLmV4ZV9zaGEsJ1JDTE9ORV9CSU5BUllfQ0hBTkdFRCcpCjE4NzogICAgICAgIG5lZWQoYXJnc1swXSBpbiAoJ2Fib3V0JywnbHNqc29uJywnY29weXRvJywnY2F0JyksJ1JDTE9ORV9WRVJCX0ZPUkJJRERFTicpCjE4OTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLmNvbmZpZ19wYXRoKSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsCjE5NDogICAgICAgIHJjLG91dD1ib3VuZGVkX3Byb2Nlc3MoYXJndixzZWxmLmVudixsaW1pdCxzZWNvbmRzKQoxOTc6ICAgIGRlZiBxdW90YShzZWxmLHJlbW90ZSk6CjE5ODogICAgICAgIG5lZWQocmVtb3RlIGluIHNlbGYuY3J5cHQsJ1FVT1RBX1JFTU9URV9GT1JCSURERU4nKQoxOTk6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnYWJvdXQnLHJlbW90ZSsnOicsJy0tanNvbiddLDE2Mzg0KQoyMDU6ICAgIGRlZiBiaW5kKHNlbGYsbWFuaWZlc3QpOgoyMDY6ICAgICAgICBjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG1hbmlmZXN0KQoyMDc6ICAgICAgICBrbm93bj17ZVsnYWNjb3VudF9pZCddOmVbJ2NyeXB0X3JlbW90ZSddIGZvciBlIGluIHNlbGYuZW50cmllc30KMjA4OiAgICAgICAgbmVlZChhbGwoa25vd24uZ2V0KHJbJ2FjY291bnRfaWQnXSk9PXJbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIG1hbmlmZXN0WydyZXBsaWNhcyddKSwnTUFOSUZFU1RfQ09ORklHX01JU01BVENIJykKMjA5OiAgICAgICAgc2VsZi5tYW5pZmVzdD1tYW5pZmVzdAoyMTA6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLG5hbWU9Tm9uZSk6CjIxMTogICAgICAgIG5lZWQoc2VsZi5tYW5pZmVzdCBpcyBub3QgTm9uZSwnTUFOSUZFU1RfTk9UX0JPVU5EJykKMjEyOiAgICAgICAgbmVlZChyZW1vdGUgaW4ge3JbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIHNlbGYubWFuaWZlc3RbJ3JlcGxpY2FzJ119LCdXUklURV9SRU1PVEVfRk9SQklEREVOJykKMjEzOiAgICAgICAgcHJlZml4PXJlbW90ZSsnOicrc2VsZi5tYW5pZmVzdFsnbmFtZXNwYWNlJ10KMjE1OiAgICAgICAgbmFtZXM9e3BbJ25hbWUnXSBmb3IgcCBpbiBzZWxmLm1hbmlmZXN0WydwYXJ0cyddfXx7J21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbid9CjIxODogICAgZGVmIGFic2VudChzZWxmLHJlbW90ZSk6CjIxOTogICAgICAgIHJjLF89c2VsZi5jYWxsKFsnbHNqc29uJyxzZWxmLmFkZHJlc3MocmVtb3RlKSwnLS1tYXgtZGVwdGgnLCcxJ10sNjU1MzYpCjIyMDogICAgICAgIGlmIHJjPT0wOnJhaXNlIFN0b3AoJ0dFTkVSQVRJT05fQUxSRUFEWV9FWElTVFMnKQoyMjE6ICAgICAgICBuZWVkKHJjIGluICgzLDQpLCdHRU5FUkFUSU9OX0FCU0VOQ0VfVU5QUk9WRU4nKQoyMjI6ICAgIGRlZiBwdXQoc2VsZixyZW1vdGUsbmFtZSxwYXRoKToKMjIzOiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpO3JlYWRfc2VjdXJlKHBhdGgsTUFYX1BBWUxPQURfQllURVMpCjIyODogICAgICAgIG5lZWQocmM9PTAsJ0NMT1VEX0NPUFlfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjI5OiAgICBkZWYgZ2V0KHNlbGYscmVtb3RlLG5hbWUsbGltaXQpOgoyMzE6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnY2F0JyxzZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpLCctLWNvdW50JyxzdHIobGltaXQpXSxsaW1pdCkKMjMyOiAgICAgICAgbmVlZChyYz09MCwnQ0xPVURfUkVBREJBQ0tfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjM2OmRlZiBwaXBlbGluZSh3b3JrLGZpbGVzLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoyMzc6ICAgICIiIk9uZSBib3VuZGVkIHJlYWwgYmFja3VwOyBubyBmYWxsYmFjaywgbm8gcmVzdW1lLCBubyBjbG91ZCBkZWxldGlvbiBvbiBmYWlsdXJlLiIiIgoyMzk6ICAgIG5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoyNDg6ICAgIGZvciBlIGluIGVudHJpZXM6cXVvdGFzW2VbJ2FjY291bnRfaWQnXV09Y2xvdWQucXVvdGEoZVsnY3J5cHRfcmVtb3RlJ10pCjI0OTogICAgYWxsb2M9Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxwYXlsb2FkX2xlbixyZXNlcnZlLGNsb2NrKCkpCjI1MDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHBheWxvYWRfbGVuLHBheWxvYWRfc2hhLHBhcnRzLGFsbG9jKQoyNTE6ICAgIG1iPWNvcmUuY2Fub25pY2FsX2J5dGVzKG0pO21oPWNvcmUubWFuaWZlc3RfaGFzaChtKTtjbG91ZC5iaW5kKG0pCjI1MjogICAgY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2MpKTtjcmVhdGUod29yay8nbWFuaWZlc3QuanNvbicsbWIpCjI1NDogICAgICAgIGd1YXJkKCk7Y2xvdWQuYWJzZW50KGVbJ2NyeXB0X3JlbW90ZSddKQoyNTU6ICAgICAgICBxPWNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKQoyNTY6ICAgICAgICBuZWVkKGNvcmUucXVvdGFfcmVhc29uKHEsY2xvY2soKSkgaXMgTm9uZSBhbmQgcVsnZnJlZSddPj1hbGxvY1sncmVxdWlyZWRfZnJlZV9ieXRlcyddLCdTRUxFQ1RFRF9BQ0NPVU5UX0NBUEFDSVRZX0NIQU5HRUQnKQoyNTk6ICAgICAgICByZW1vdGU9clsnY3J5cHRfcmVtb3RlJ107Z3VhcmQoKQoyNjM6ICAgICAgICAgICAgY2xvdWQucHV0KHJlbW90ZSxwYXJ0WyduYW1lJ10sd29yay9wYXJ0WyduYW1lJ10pCjI2NDogICAgICAgIGNsb3VkLnB1dChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLHdvcmsvJ21hbmlmZXN0Lmpzb24nKQoyNjU6ICAgICAgICBuZWVkKGNsb3VkLmdldChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLGxlbihtYikrMSk9PW1iLCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjI2ODogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUscGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSsxKQoyNzI6ICAgICAgICByZWNlaXB0cy5hcHBlbmQoeyoqciwnZ2VuZXJhdGlvbic6Z2VuZXJhdGlvbiwnbWFuaWZlc3Rfc2hhMjU2JzptaCwncGF5bG9hZF9zaGEyNTYnOmZ1bGwuaGV4ZGlnZXN0KCksCjI3NjogICAgc2VhbD17J3NjaGVtYV92ZXJzaW9uJzoyLCdzdGF0ZSc6J1NFQUxFRCcsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsCjI3NzogICAgICAgICAgJ21hbmlmZXN0X3NoYTI1Nic6bWgsJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddLCdyZWNlaXB0cyc6cmVjZWlwdHMsCjI3ODogICAgICAgICAgJ2FjY2VwdGFuY2UnOidJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJ30KMjc5OiAgICBzYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhzZWFsKTtuZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoyODA6ICAgIGNyZWF0ZSh3b3JrLydTRUFMRUQuanNvbicsc2IpCjI4MTogICAgc2VhbHM9W10KMjgzOiAgICAgICAgZ3VhcmQoKTtjbG91ZC5wdXQoclsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyx3b3JrLydTRUFMRUQuanNvbicpCjI4NDogICAgICAgIG9ic2VydmVkPWNsb3VkLmdldChyWydjcnlwdF9yZW1vdGUnXSwnU0VBTEVELmpzb24nLGxlbihzYikrMSkKMjg1OiAgICAgICAgbmVlZChvYnNlcnZlZD09c2IsJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKTtzZWFscy5hcHBlbmQob2JzZXJ2ZWQpCjI4NjogICAgbmVlZChsZW4oc2VhbHMpPT0yIGFuZCBhbGwoYj09c2IgZm9yIGIgaW4gc2VhbHMpLCdTRUFMRURfUVVPUlVNX1JFUVVJUkVEJykKMjkyOiAgICBjcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnNoYShzYiksJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddfSkpCjI5NTogICAgcmVzdWx0PXsnc3RhdGUnOidTRUFMRURfUVVPUlVNX1ZFUklGSUVEJywnbWFuaWZlc3QnOm0sJ3JlY2VpcHRzJzpyZWNlaXB0cywnc2VhbF9zaGEyNTYnOnNoYShzYiksCjI5NjogICAgICAgICAgICAnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnOnJlbWFpbmluZywncmVzdG9yZV9kcmlsbF9wZXJmb3JtZWQnOkZhbHNlLA== +PIPE_46_SCORE=2 +PIPE_46_BASENAME=large264.py +PIPE_46_PATH_SHA256=7cb0a3c457aeb01d333e23b009a9fc352bba1df93bddc8c660d18ede615b7ea0 +PIPE_46_FILE_SHA256=5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a +PIPE_46_SCHEDULE_TARGET_COUNT=0 +PIPE_46_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_46_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_46_VZDUMP_QEMU_COUNT=0 +PIPE_46_RCLONE_COUNT=2 +PIPE_46_CLOUD_QUORUM_COUNT=0 +PIPE_46_SEAL_WRITTEN_COUNT=0 +PIPE_46_PAYLOAD_PARTS_COUNT=0 +PIPE_46_TRANSPORT_COUNT=1 +PIPE_46_RESTORE_VALIDATION_COUNT=0 +PIPE_46_SCHEDULE_RESULT_COUNT=0 +PIPE_46_RELEVANT_LINE_COUNT=107 +PIPE_46_RELEVANT_B64=MToiIiIyNjRSMSBzdHJlYW1pbmcgY2xvdWQgYWRhcHRlciBhbmQgc3ludGhldGljIGJvdW5kYXJ5IHByb29mLgozOk5vIHdvcmsgb24gaW1wb3J0LiBObyBndWVzdC9iYWNrdXAgcHJvZHVjZXIgYW5kIG5vIGNsb3VkIGRlbGV0aW9uLiBFeGlzdGluZwo1OmFmdGVyIHR3byBjbG91ZCBzZWFscyBhbmQgYSBzZXBhcmF0ZWx5IGNsb3VkLWRpc2NvdmVyZWQgcmVzdG9yZSBoYXZlIGJlZW4gY2hlY2tlZC4KMTU6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE2OmltcG9ydCByZXN0b3JlMjYyIGFzIHIKMjM6ZGVmIHByb2Nlc3Nfc3RyZWFtKGFyZ3YsZW52LHNpemUsZGlnZXN0LGNvbnN1bWUsc2Vjb25kcyk6CjI1OiAgICB0Lm5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBhcmd2IGFuZCBzZWNvbmRzPjAsJ1NUUkVBTV9QUk9DRVNTX0FSR1VNRU5UUycpCjI3OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAozMTogICAgICAgIGZvciBmIGluIChwLnN0ZG91dCxwLnN0ZGVycik6b3Muc2V0X2Jsb2NraW5nKGYuZmlsZW5vKCksRmFsc2UpO3NlbC5yZWdpc3RlcihmLHNlbGVjdG9ycy5FVkVOVF9SRUFEKQo1NjpjbGFzcyBDbG91ZExhcmdlKHQuUmNsb25lSU8pOgo1OTogICAgICAgIHQubmVlZCh0eXBlKGFyZ3MpIGlzIGxpc3QgYW5kIGFyZ3MgYW5kIGFyZ3NbMF0gaW4gKCdhYm91dCcsJ2xzanNvbicsJ2NvcHl0bycsJ2NhdCcpLCdSQ0xPTkVfVkVSQl9GT1JCSURERU4nKQo2MDogICAgICAgIHQubmVlZCh0eXBlKGxpbWl0KSBpcyBpbnQgYW5kIDA8PWxpbWl0PD1jb3JlLk1BTklGRVNUX01BWF9CWVRFUysxLCdNRVRBREFUQV9CT1VORCcpCjYyOiAgICAgICAgdC5uZWVkKHNlY29uZHM+MCwnQ0xPVURfREVBRExJTkUnKTtzZWxmLmNhbGxzKz0xCjY2OiAgICBkZWYgcHV0KHNlbGYscmVtb3RlLG5hbWUscGF0aCk6CjY3OiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpCjY4OiAgICAgICAgaWYgbmFtZSBpbiAoJ21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbicpOgo2OTogICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5wdXQocmVtb3RlLG5hbWUscGF0aCkKNzA6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjcxOiAgICAgICAgdC5uZWVkKHBhcnQgaXMgbm90IE5vbmUsJ1BBUlRfTk9UX0lOX01BTklGRVNUJykKNzk6ICAgICAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9DT1BZX0ZBSUxFRCcpCjgwOiAgICBkZWYgcmVhZF9zdHJlYW0oc2VsZixyZW1vdGUsbmFtZSxzaXplLGRpZ2VzdCxjb25zdW1lKToKODE6ICAgICAgICBhZGRyZXNzPXNlbGYuYWRkcmVzcyhyZW1vdGUsbmFtZSkKODI6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjg0OiAgICAgICAgc2VsZi5jaGVjaygpO3NlY29uZHM9bWluKDM2MDAsc2VsZi5kZWFkbGluZS10aW1lLm1vbm90b25pYygpKTt0Lm5lZWQoc2Vjb25kcz4wLCdDTE9VRF9ERUFETElORScpCjkxOmNsYXNzIFJlYWRPbmx5TGFyZ2Uoci5SZWFkT25seUNsb3VkKToKOTM6ICAgIGRlZiByZWFkX3N0cmVhbShzZWxmLHJlbW90ZSxnZW5lcmF0aW9uLG5hbWUsc2l6ZSxkaWdlc3QsY29uc3VtZSk6Cjk2OiAgICAgICAgYWRkcmVzcz1zZWxmLmFkZHJlc3MocmVtb3RlLGdlbmVyYXRpb24sbmFtZSkKOTc6ICAgICAgICBzZWxmLmNoZWNrKCk7c2Vjb25kcz1taW4oMzYwMCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQoxMjA6ICAgIHJldHVybiB7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjEyNTpkZWYgdXBsb2FkKHNvdXJjZSx3b3JrLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoxMjY6ICAgICIiIlVwbG9hZCBhbmQgc2VhbDsgcmV0YWluIGFsbCBzb3VyY2UgYnl0ZXMgaGVyZS4gQ2xlYW51cCBpcyBhIGxhdGVyIGdhdGVkIG9wZXJhdGlvbi4iIiIKMTI4OiAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoxMzI6ICAgIHF1b3Rhcz17ZVsnYWNjb3VudF9pZCddOmNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKSBmb3IgZSBpbiBlbnRyaWVzfQoxMzM6ICAgIGFsbG9jYXRpb249Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxyZWNvcmRbJ3BheWxvYWRfYnl0ZXMnXSxyZXNlcnZlLGNsb2NrKCkpCjEzNDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlY29yZFsncGF5bG9hZF9ieXRlcyddLHJlY29yZFsncGF5bG9hZF9zaGEyNTYnXSxyZWNvcmRbJ3BhcnRzJ10sYWxsb2NhdGlvbikKMTM1OiAgICBtYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSk7Y2xvdWQuYmluZChtKQoxMzY6ICAgIHQuY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2NhdGlvbikpO3QuY3JlYXRlKHdvcmsvJ21hbmlmZXN0Lmpzb24nLG1iKQoxMzg6ICAgICAgICBndWFyZCgpO2Nsb3VkLmFic2VudChyZXBbJ2NyeXB0X3JlbW90ZSddKQoxNDE6ICAgICAgICBndWFyZCgpO3JlbW90ZT1yZXBbJ2NyeXB0X3JlbW90ZSddO3E9Y2xvdWQucXVvdGEocmVtb3RlKQoxNDI6ICAgICAgICB0Lm5lZWQoY29yZS5xdW90YV9yZWFzb24ocSxjbG9jaygpKSBpcyBOb25lIGFuZCBxWydmcmVlJ10+PWFsbG9jYXRpb25bJ3JlcXVpcmVkX2ZyZWVfYnl0ZXMnXSwnU0VMRUNURURfQUNDT1VOVF9DQVBBQ0lUWV9DSEFOR0VEJykKMTQ0OiAgICAgICAgZm9yIHBhcnQgaW4gbVsncGFydHMnXTpjbG91ZC5wdXQocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0ZGlyL3BhcnRbJ25hbWUnXSkKMTQ1OiAgICAgICAgY2xvdWQucHV0KHJlbW90ZSwnbWFuaWZlc3QuanNvbicsd29yay8nbWFuaWZlc3QuanNvbicpCjE0NjogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVtb3RlLCdtYW5pZmVzdC5qc29uJyxsZW4obWIpKzEpPT1tYiwnTUFOSUZFU1RfUkVBREJBQ0tfTUlTTUFUQ0gnKQoxNDk6ICAgICAgICAgICAgb2JzZXJ2ZWQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0WydzaXplJ10scGFydFsnc2hhMjU2J10sd2hvbGUudXBkYXRlKQoxNTM6ICAgIHNlYWw9eydzY2hlbWFfdmVyc2lvbic6Miwnc3RhdGUnOidTRUFMRUQnLCdnZW5lcmF0aW9uJzpnZW5lcmF0aW9uLCdsb2dpY2FsX2lkJzpsb2dpY2FsX2lkLAoxNTQ6ICAgICAgICAgICdtYW5pZmVzdF9zaGEyNTYnOm1oLCdyZXBsaWNhcyc6bVsncmVwbGljYXMnXSwncmVjZWlwdHMnOnJlY2VpcHRzLAoxNTU6ICAgICAgICAgICdhY2NlcHRhbmNlJzonSURFTlRJQ0FMX1NFQUxfUkVRVUlSRURfT05fQk9USF9OQU1FRF9BQ0NPVU5UUyd9CjE1NjogICAgc2I9Y29yZS5jYW5vbmljYWxfYnl0ZXMoc2VhbCk7dC5uZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoxNTc6ICAgIHIudmFsaWRhdGVfc2VhbChzYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk7dC5jcmVhdGUod29yay8nU0VBTEVELmpzb24nLHNiKQoxNTk6ICAgICAgICBndWFyZCgpO2Nsb3VkLnB1dChyZXBbJ2NyeXB0X3JlbW90ZSddLCdTRUFMRUQuanNvbicsd29yay8nU0VBTEVELmpzb24nKQoxNjE6ICAgICAgICB0Lm5lZWQoY2xvdWQuZ2V0KHJlcFsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTEVEX1FVT1JVTV9SRVFVSVJFRCcpCjE2MzogICAgdC5jcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnQuc2hhKHNiKX0pKQoxNjQ6ICAgIHJldHVybiB7J3NlYWxlZCc6VHJ1ZSwnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdwYXJ0c19yZWNvcmQnOnJlY29yZCwnc291cmNlJzpzdHIoc291cmNlKSwnd29yayc6c3RyKHdvcmspfQoxNjc6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9oYXNoKToKMTY4OiAgICAiIiJGaW5kIHBsYWNlbWVudCBmcm9tIGFsbCBjbG91ZCBjYXRhbG9ncywgdXNpbmcgb25seSBhbiBleHRlcm5hbCBtYW5pZmVzdCBkaWdlc3QuIiIiCjE3MTogICAgbGlzdGVkPXt9O2dlbmVyYXRpb25zPXNldCgpCjE3MzogICAgICAgIGdzPWNsb3VkLmxpc3RfZ2VuZXJhdGlvbnMoZVsnY3J5cHRfcmVtb3RlJ10pCjE3NDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1yLk1BWF9HRU5FUkFUSU9OUyBhbmQgYWxsKGNvcmUudmFsaWRfbmFtZShnKSBmb3IgZyBpbiBncyksJ0dFTkVSQVRJT05fTElTVF9JTlZBTElEJykKMTc1OiAgICAgICAgdC5uZWVkKGxlbihncyk9PWxlbihzZXQoZ3MpKSwnR0VORVJBVElPTl9MSVNUX0RVUExJQ0FURScpO2xpc3RlZFtlWydjcnlwdF9yZW1vdGUnXV09c2V0KGdzKTtnZW5lcmF0aW9ucy51cGRhdGUoZ3MpCjE3NjogICAgdC5uZWVkKGxlbihnZW5lcmF0aW9ucyk8PXIuTUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjE3ODogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxODE6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjE4MjogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjE4MzogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTg1OiAgICAgICAgICAgIHNlYWw9ci52YWxpZGF0ZV9zZWFsKGIsZW50cmllcyxnZW4sbG9naWNhbF9pZCkKMTg2OiAgICAgICAgICAgIHQubmVlZChyZW1vdGUgaW4ge3hbJ2NyeXB0X3JlbW90ZSddIGZvciB4IGluIHNlYWxbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKTtzZWVuW3JlbW90ZV09KGIsc2VhbCkKMTg4OiAgICAgICAgc2Isc2VhbD1uZXh0KGl0ZXIoc2Vlbi52YWx1ZXMoKSkpCjE4OTogICAgICAgIGlmIHNlYWxbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9oYXNoOmNvbnRpbnVlCjE5MDogICAgICAgIG5hbWVkPXt4WydjcnlwdF9yZW1vdGUnXSBmb3IgeCBpbiBzZWFsWydyZXBsaWNhcyddfQoxOTE6ICAgICAgICB0Lm5lZWQoc2V0KHNlZW4pPT1uYW1lZCBhbmQgYWxsKGI9PXNiIGZvciBiLF8gaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxOTM6ICAgICAgICBmb3IgcmVwIGluIHNlYWxbJ3JlcGxpY2FzJ106CjE5NDogICAgICAgICAgICBiPWNsb3VkLmdldChyZXBbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTk1OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfaGFzaCwnTUFOSUZFU1RfRElHRVNUX01JU01BVENIJykKMTk2OiAgICAgICAgICAgIG09ci5zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjE5NzogICAgICAgICAgICB0Lm5lZWQobVsnZ2VuZXJhdGlvbiddPT1nZW4gYW5kIG1bJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCBhbmQgbVsncmVwbGljYXMnXT09c2VhbFsncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTk4OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxzZWFsWydyZWNlaXB0cyddKTtibG9icy5hcHBlbmQoYikKMTk5OiAgICAgICAgdC5uZWVkKGxlbihibG9icyk9PTIgYW5kIGJsb2JzWzBdPT1ibG9ic1sxXSwnVFdPX01BTklGRVNUX0NPUElFU19SRVFVSVJFRCcpCjIwMDogICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKHsnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdhY2NvdW50c19zY2FubmVkJzpsZW4obGlzdGVkKX0pCjIwMTogICAgdC5uZWVkKGxlbihjYW5kaWRhdGVzKT09MSwnRVhBQ1RMWV9PTkVfQUNDRVBURURfR0VORVJBVElPTl9SRVFVSVJFRCcpCjIwNTpkZWYgZnJlc2hfc2VhbHMoY2xvdWQsZGlzY292ZXJ5KToKMjA2OiAgICBtPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pO3NiPWRpc2NvdmVyeVsnc2VhbF9ieXRlcyddCjIwODogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTF9DSEFOR0VEX0RVUklOR19SRVNUT1JFJykKMjExOmRlZiBkb3dubG9hZF9wYXJ0KGNsb3VkLHJlcCxtLHBhcnQscGF0aCx3aG9sZSk6CjIxNTogICAgICAgIGRlZiBjb25zdW1lKGJsb2NrKTp3aG9sZS51cGRhdGUoYmxvY2spO3Mud3JpdGVfYWxsKGZkLGJsb2NrKQoyMTY6ICAgICAgICByZXN1bHQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10scGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSxwYXJ0WydzaGEyNTYnXSxjb25zdW1lKQoyMjU6ZGVmIHJlc3RvcmUod29yayxjbG91ZCxkaXNjb3ZlcnkpOgoyMjc6ICAgIHdvcms9UGF0aCh3b3JrKTttPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjIzMjogICAgICAgICAgICBpZiBpPT0wOm93bmVkW3BhcnRbJ25hbWUnXV09ZG93bmxvYWRfcGFydChjbG91ZCxyZXAsbSxwYXJ0LHBhcnRkaXIvcGFydFsnbmFtZSddLHdob2xlKQoyMzQ6ICAgICAgICAgICAgICAgIGdvdD1jbG91ZC5yZWFkX3N0cmVhbShyZXBbJ2NyeXB0X3JlbW90ZSddLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddLHBhcnRbJ3NoYTI1NiddLHdob2xlLnVwZGF0ZSkKMjM4OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHJlY2VpcHRzKTtmcmVzaF9zZWFscyhjbG91ZCxkaXNjb3ZlcnkpCjI0MTogICAgcmVzdWx0PXMucmVhc3NlbWJsZShwYXJ0ZGlyLHJlYyx3b3JrLydyZXN0b3JlZC5iaW4nKQoyNDI6ICAgIGZyZXNoX3NlYWxzKGNsb3VkLGRpc2NvdmVyeSkKMjQzOiAgICB0LmNyZWF0ZSh3b3JrLydSRVNUT1JFX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksJ3ZlcmlmaWVkX3JlcGxpY2FzJzoyLAoyNDU6ICAgIHJldHVybiB7J3ZlcmlmaWVkX3JlcGxpY2FzJzoyLCdtYW5pZmVzdF9zaGEyNTYnOmNvcmUubWFuaWZlc3RfaGFzaChtKSwnZGlzY292ZXJ5JzpkaXNjb3ZlcnksCjI0OTpkZWYgY2xlYW51cCh1cGxvYWRfcmVzdWx0LHJlc3RvcmVfcmVzdWx0LGNsb3VkLGd1YXJkKToKMjUwOiAgICAiIiJObyB1bmxpbmsgdW50aWwgZXZlcnkgZXhwZWN0ZWQgZmlsZSBhbmQgYm90aCByZW1vdGUgc2VhbHMgaGF2ZSBwYXNzZWQgdmVyaWZpY2F0aW9uLiIiIgoyNTE6ICAgIHQubmVlZCh0eXBlKHVwbG9hZF9yZXN1bHQpIGlzIGRpY3QgYW5kIHVwbG9hZF9yZXN1bHQuZ2V0KCdzZWFsZWQnKSBpcyBUcnVlLCdVUExPQURfUVVPUlVNX1JFUVVJUkVEJykKMjUyOiAgICB0Lm5lZWQodHlwZShyZXN0b3JlX3Jlc3VsdCkgaXMgZGljdCBhbmQgcmVzdG9yZV9yZXN1bHQuZ2V0KCd2ZXJpZmllZF9yZXBsaWNhcycpPT0yLCdSRVNUT1JFX1JFUVVJUkVEJykKMjUzOiAgICBtPXVwbG9hZF9yZXN1bHRbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSkKMjU0OiAgICB0Lm5lZWQocmVzdG9yZV9yZXN1bHRbJ21hbmlmZXN0X3NoYTI1NiddPT1taCwnUkVTVE9SRV9HRU5FUkFUSU9OX01JU01BVENIJykKMjU1OiAgICB0Lm5lZWQoY29yZS5jYW5vbmljYWxfYnl0ZXMocmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddWydtYW5pZmVzdCddKT09Y29yZS5jYW5vbmljYWxfYnl0ZXMobSkgYW5kCjI1NjogICAgICAgICAgIHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXVsnc2VhbF9ieXRlcyddPT11cGxvYWRfcmVzdWx0WydzZWFsX2J5dGVzJ10sJ1JFU1RPUkVfUVVPUlVNX01JU01BVENIJykKMjU3OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHIuc3RyaWN0X2pzb24odXBsb2FkX3Jlc3VsdFsnc2VhbF9ieXRlcyddLGNvcmUuU0VBTF9NQVhfQllURVMpWydyZWNlaXB0cyddKQoyNTg6ICAgIGd1YXJkKCk7ZnJlc2hfc2VhbHMoY2xvdWQscmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddKQoyNjE6ICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3RvcmVfcmVzdWx0WydwYXJ0c19yZWNvcmQnXSxQYXRoKHJlc3RvcmVfcmVzdWx0Wyd3b3JrJ10pLydwYXJ0cycpKToKMjY1OiAgICBpdGVtcy5hcHBlbmQoKFBhdGgocmVzdG9yZV9yZXN1bHRbJ3dvcmsnXSkvJ3Jlc3RvcmVkLmJpbicsdHVwbGUocmVzdG9yZV9yZXN1bHRbJ3JlYXNzZW1ibGVkJ11bJ2lkZW50aXR5J10pLG1bJ3BheWxvYWRfYnl0ZXMnXSxtWydwYXlsb2FkX3NoYTI1NiddKSkKMjY5OiAgICBndWFyZCgpO2ZyZXNoX3NlYWxzKGNsb3VkLHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXSk= +PIPE_47_SCORE=2 +PIPE_47_BASENAME=restore262.py +PIPE_47_PATH_SHA256=aa83da10ef9735bd6aa1dbe941cf1528c8c984a2d5b3d629464a3648fd4d98df +PIPE_47_FILE_SHA256=56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1 +PIPE_47_SCHEDULE_TARGET_COUNT=0 +PIPE_47_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_47_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_47_VZDUMP_QEMU_COUNT=0 +PIPE_47_RCLONE_COUNT=1 +PIPE_47_CLOUD_QUORUM_COUNT=0 +PIPE_47_SEAL_WRITTEN_COUNT=0 +PIPE_47_PAYLOAD_PARTS_COUNT=0 +PIPE_47_TRANSPORT_COUNT=1 +PIPE_47_RESTORE_VALIDATION_COUNT=0 +PIPE_47_SCHEDULE_RESULT_COUNT=0 +PIPE_47_RELEVANT_LINE_COUNT=89 +PIPE_47_RELEVANT_B64=MToiIiIyNjJSMSBib3VuZGVkIGNsb3VkLWRpc2NvdmVyZWQgcmVjb3ZlcnkuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KMzpDbG91ZCBhY2Nlc3MgaXMgc3RyaWN0bHkgbHNqc29uL2NhdC4gTm8gc291cmNlLWxvY2FsIHdvcmtzcGFjZS9tYW5pZmVzdC9yZWNlaXB0CjQ6aXMgcmVhZC4gVGhlIGV4dGVybmFsIGFjY2VwdGVkIG1hbmlmZXN0IGRpZ2VzdCBpcyBhIHRydXN0IGFuY2hvciwgbm90IHBsYWNlbWVudC4KMTY6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE5OiAgICAgICAgICAgICAgICAgICAgICAgJ3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnLCdldGMvc3lzdGVtZC9zeXN0ZW0vaG9tZWxhYi1jb250cm9sLWJhY2t1cC5zZXJ2aWNlJykpCjIxOk1BWF9HRU5FUkFUSU9OUz02NAoyMjpTRUFMX0tFWVM9eydzY2hlbWFfdmVyc2lvbicsJ3N0YXRlJywnZ2VuZXJhdGlvbicsJ2xvZ2ljYWxfaWQnLCdtYW5pZmVzdF9zaGEyNTYnLCdyZXBsaWNhcycsJ3JlY2VpcHRzJywnYWNjZXB0YW5jZSd9CjM2OmNsYXNzIFJlYWRPbmx5Q2xvdWQ6CjQxOiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5ndWFyZD1ndWFyZDtzZWxmLndvcms9UGF0aCh3b3JrKQo1MDogICAgICAgIHQubmVlZCh0LnNoYSh0LnJlYWRfc2VjdXJlKHNlbGYuZXhlY3V0YWJsZSwxMjgqMTAyNCoxMDI0KVswXSk9PXNlbGYuZXhlX3NoYSwnUkNMT05FX0JJTkFSWV9DSEFOR0VEJykKNTE6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLGdlbmVyYXRpb249Tm9uZSxuYW1lPU5vbmUpOgo1MjogICAgICAgIHQubmVlZChyZW1vdGUgaW4gc2VsZi5jcnlwdCwnQ1JZUFRfUkVNT1RFX1JFUVVJUkVEJykKNTM6ICAgICAgICBwPXJlbW90ZSsnOmJhY2t1cC12Mi90YXJnZXRzLycrc2VsZi5sb2dpY2FsX2lkKycvZ2VuZXJhdGlvbnMnCjU0OiAgICAgICAgaWYgZ2VuZXJhdGlvbiBpcyBOb25lOgo1NTogICAgICAgICAgICB0Lm5lZWQobmFtZSBpcyBOb25lLCdPQkpFQ1RfV0lUSE9VVF9HRU5FUkFUSU9OJyk7cmV0dXJuIHAKNTY6ICAgICAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pLCdHRU5FUkFUSU9OX05BTUVfSU5WQUxJRCcpO3ArPScvJytnZW5lcmF0aW9uCjU4OiAgICAgICAgICAgIHQubmVlZChuYW1lIGluICgnU0VBTEVELmpzb24nLCdtYW5pZmVzdC5qc29uJykgb3IgKHR5cGUobmFtZSkgaXMgc3RyIGFuZCByZS5mdWxsbWF0Y2gocidwYXJ0LVxkezZ9XC5iaW4nLG5hbWUpKSwKNjI6ICAgICAgICB0Lm5lZWQodHlwZShhcmdzKSBpcyBsaXN0IGFuZCBhcmdzIGFuZCBhcmdzWzBdIGluICgnbHNqc29uJywnY2F0JyksJ1JFQURfT05MWV9DTE9VRF9WRVJCX1JFUVVJUkVEJykKNjM6ICAgICAgICB0Lm5lZWQodHlwZShsaW1pdCkgaXMgaW50IGFuZCAwPGxpbWl0PD10Lk1BWF9QQVlMT0FEX0JZVEVTKzEsJ0NMT1VEX1JFQURfQk9VTkQnKQo2NDogICAgICAgIHNlbGYuY2hlY2soKTtzZWNvbmRzPW1pbig5MCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQo2NTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLnNuYXBzaG90KSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsJy0tc3RhdHMnLCcwJywKNjc6ICAgICAgICBzZWxmLmNhbGxzKz0xO3JjLG91dD10LmJvdW5kZWRfcHJvY2Vzcyhhcmd2LHNlbGYuZW52LGxpbWl0LHNlY29uZHMpO3NlbGYuY2hlY2soKTtyZXR1cm4gcmMsb3V0CjY4OiAgICBkZWYgbGlzdF9nZW5lcmF0aW9ucyhzZWxmLHJlbW90ZSk6CjY5OiAgICAgICAgcmMsb3V0PXNlbGYuY2FsbChbJ2xzanNvbicsc2VsZi5hZGRyZXNzKHJlbW90ZSksJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sMTA0ODU3NikKNzE6ICAgICAgICB0Lm5lZWQocmM9PTAsJ0NMT1VEX0xJU1RfRkFJTEVEJykKNzM6ICAgICAgICB0Lm5lZWQodHlwZShyb3dzKSBpcyBsaXN0IGFuZCBsZW4ocm93cyk8PU1BWF9HRU5FUkFUSU9OUywnQ0xPVURfTElTVF9CT1VORCcpCjc2OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGl0ZW0pIGlzIGRpY3QgYW5kIGl0ZW0uZ2V0KCdJc0RpcicpIGlzIFRydWUsJ0NMT1VEX0xJU1RfU0NIRU1BJykKNzc6ICAgICAgICAgICAgbmFtZT1pdGVtLmdldCgnTmFtZScpO3QubmVlZChjb3JlLnZhbGlkX25hbWUobmFtZSkgYW5kIGl0ZW0uZ2V0KCdQYXRoJyk9PW5hbWUsJ0NMT1VEX0xJU1RfTkFNRScpCjc4OiAgICAgICAgICAgIHQubmVlZChuYW1lIG5vdCBpbiBuYW1lcywnQ0xPVURfTElTVF9EVVBMSUNBVEUnKTtuYW1lcy5hcHBlbmQobmFtZSkKODA6ICAgIGRlZiBnZXQoc2VsZixyZW1vdGUsZ2VuZXJhdGlvbixuYW1lLGxpbWl0LG1pc3Npbmdfb2s9RmFsc2UpOgo4MTogICAgICAgIHJjLG91dD1zZWxmLmNhbGwoWydjYXQnLHNlbGYuYWRkcmVzcyhyZW1vdGUsZ2VuZXJhdGlvbixuYW1lKSwnLS1jb3VudCcsc3RyKGxpbWl0KV0sbGltaXQpCjgzOiAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9SRUFEX0ZBSUxFRCcpO3JldHVybiBvdXQKODY6ZGVmIHZhbGlkYXRlX3NlYWwoYmxvYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk6Cjg3OiAgICBzPXN0cmljdF9qc29uKGJsb2IsY29yZS5TRUFMX01BWF9CWVRFUykKODg6ICAgIHQubmVlZCh0eXBlKHMpIGlzIGRpY3QgYW5kIHNldChzKT09U0VBTF9LRVlTLCdTRUFMX1NDSEVNQScpCjg5OiAgICB0Lm5lZWQodHlwZShzWydzY2hlbWFfdmVyc2lvbiddKSBpcyBpbnQgYW5kIHNbJ3NjaGVtYV92ZXJzaW9uJ109PTIgYW5kIHNbJ3N0YXRlJ109PSdTRUFMRUQnLCdTRUFMX1NUQVRFJykKOTA6ICAgIHQubmVlZChzWydnZW5lcmF0aW9uJ109PWdlbmVyYXRpb24gYW5kIHNbJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCwnU0VBTF9JREVOVElUWScpCjkxOiAgICB0Lm5lZWQoY29yZS52YWxpZF9oYXNoKHNbJ21hbmlmZXN0X3NoYTI1NiddKSwnU0VBTF9NQU5JRkVTVF9IQVNIJykKOTI6ICAgIHQubmVlZChzWydhY2NlcHRhbmNlJ109PSdJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJywnU0VBTF9BQ0NFUFRBTkNFJykKOTM6ICAgIHJlcGxpY2FzPXNbJ3JlcGxpY2FzJ107dC5uZWVkKHR5cGUocmVwbGljYXMpIGlzIGxpc3QgYW5kIGxlbihyZXBsaWNhcyk9PTIsJ1NFQUxfUVVPUlVNJykKOTQ6ICAgIGtub3duPXtlWydhY2NvdW50X2lkJ106ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc30KOTc6ICAgICAgICAgICAgICAgYW5kIGNvcmUudmFsaWRfbmFtZShyZXBbJ2NyeXB0X3JlbW90ZSddKSBhbmQga25vd24uZ2V0KHJlcFsnYWNjb3VudF9pZCddKT09cmVwWydjcnlwdF9yZW1vdGUnXSwnU0VBTF9DT05GSUdfTUFQUElORycpCjk4OiAgICB0Lm5lZWQobGVuKHtwWydhY2NvdW50X2lkJ10gZm9yIHAgaW4gcmVwbGljYXN9KT09MiBhbmQgbGVuKHtwWydjcnlwdF9yZW1vdGUnXSBmb3IgcCBpbiByZXBsaWNhc30pPT0yLCdTRUFMX0RJU1RJTkNUX0FDQ09VTlRTJykKOTk6ICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhzKT09YmxvYiwnU0VBTF9DQU5PTklDQUxfQllURVMnKQoxMDM6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9tYW5pZmVzdF9zaGEpOgoxMDQ6ICAgICIiIkVudW1lcmF0ZSBhbGwgYWNjb3VudHM7IHJlcXVpcmUgYm90aCBuYW1lZCBzZWFscywgbm90IGEgbG9jYWwgc2VhbCByZWNlaXB0LiIiIgoxMDY6ICAgIHQubmVlZChjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCkgYW5kIGNvcmUudmFsaWRfaGFzaChleHBlY3RlZF9tYW5pZmVzdF9zaGEpLCdESVNDT1ZFUllfSU5QVVQnKQoxMDc6ICAgIGxpc3RlZD17fTtnZW5lcmF0aW9ucz1zZXQoKQoxMDk6ICAgICAgICByZW1vdGU9ZVsnY3J5cHRfcmVtb3RlJ107Z3M9Y2xvdWQubGlzdF9nZW5lcmF0aW9ucyhyZW1vdGUpCjExMDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1NQVhfR0VORVJBVElPTlMgYW5kIGFsbChjb3JlLnZhbGlkX25hbWUoZykgZm9yIGcgaW4gZ3MpLCdHRU5FUkFUSU9OX0xJU1RfSU5WQUxJRCcpCjExMTogICAgICAgIHQubmVlZChsZW4oc2V0KGdzKSk9PWxlbihncyksJ0dFTkVSQVRJT05fTElTVF9EVVBMSUNBVEUnKQoxMTI6ICAgICAgICBsaXN0ZWRbcmVtb3RlXT1zZXQoZ3MpO2dlbmVyYXRpb25zLnVwZGF0ZShncykKMTEzOiAgICB0Lm5lZWQobGVuKGdlbmVyYXRpb25zKTw9TUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjExNTogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxMTg6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjExOTogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjEyMDogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTIyOiAgICAgICAgICAgIHM9dmFsaWRhdGVfc2VhbChiLGVudHJpZXMsZ2VuLGxvZ2ljYWxfaWQpCjEyMzogICAgICAgICAgICB0Lm5lZWQocmVtb3RlIGluIHtyclsnY3J5cHRfcmVtb3RlJ10gZm9yIHJyIGluIHNbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKQoxMjQ6ICAgICAgICAgICAgc2VlbltyZW1vdGVdPShiLHMpCjEyNzogICAgICAgIGlmIGZpcnN0X3NbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9tYW5pZmVzdF9zaGE6Y29udGludWUKMTI4OiAgICAgICAgbmFtZWQ9e3JyWydjcnlwdF9yZW1vdGUnXSBmb3IgcnIgaW4gZmlyc3Rfc1sncmVwbGljYXMnXX0KMTI5OiAgICAgICAgdC5uZWVkKHNldChzZWVuKT09bmFtZWQgYW5kIGFsbChiPT1maXJzdF9iIGZvciBiLHMgaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxMzA6ICAgICAgICBtYW5pZmVzdF9ibG9icz1bXQoxMzI6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocnJbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTMzOiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfbWFuaWZlc3Rfc2hhLCdNQU5JRkVTVF9ESUdFU1RfTUlTTUFUQ0gnKQoxMzQ6ICAgICAgICAgICAgbT1zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjEzNTogICAgICAgICAgICB0Lm5lZWQobVsnbG9naWNhbF9pZCddPT1sb2dpY2FsX2lkIGFuZCBtWydnZW5lcmF0aW9uJ109PWdlbiBhbmQgbVsncmVwbGljYXMnXT09Zmlyc3Rfc1sncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTM3OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxmaXJzdF9zWydyZWNlaXB0cyddKQoxMzg6ICAgICAgICAgICAgbWFuaWZlc3RfYmxvYnMuYXBwZW5kKGIpCjEzOTogICAgICAgIHQubmVlZChsZW4obWFuaWZlc3RfYmxvYnMpPT0yIGFuZCBtYW5pZmVzdF9ibG9ic1swXT09bWFuaWZlc3RfYmxvYnNbMV0sJ01BTklGRVNUX1RXT19DT1BJRVMnKQoxNDA6ICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCh7J21hbmlmZXN0JzptLCdtYW5pZmVzdF9ieXRlcyc6bWFuaWZlc3RfYmxvYnNbMF0sJ3NlYWwnOmZpcnN0X3MsJ3NlYWxfYnl0ZXMnOmZpcnN0X2IsCjE0MTogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNjb3VudHNfc2Nhbm5lZCc6bGVuKGxpc3RlZCksJ2dlbmVyYXRpb25zX2ZvdW5kJzpsZW4oZ2VuZXJhdGlvbnMpfSkKMTQyOiAgICB0Lm5lZWQobGVuKGNhbmRpZGF0ZXMpPT0xLCdFWEFDVExZX09ORV9BQ0NFUFRFRF9HRU5FUkFUSU9OX1JFUVVJUkVEJykKMTQ2OmRlZiB2ZXJpZnlfZG93bmxvYWRzKGNsb3VkLGRpc2NvdmVyeSk6CjE0NzogICAgbT1kaXNjb3ZlcnlbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKQoxNTE6ICAgICAgICByZW1vdGU9cmVwWydjcnlwdF9yZW1vdGUnXTtjaHVua3M9W107cGFydHM9W107ZnVsbD1oYXNobGliLnNoYTI1NigpO3NpemU9MAoxNTM6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocmVtb3RlLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddKzEpCjE2MDogICAgICAgIHJlY2VpcHRzLmFwcGVuZCh7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjE2MzogICAgIyBGcmVzaCBzZWFsIHJlYWRiYWNrIGFmdGVyIHRoZSBwYXlsb2FkOiBuZXZlciB0cnVzdCBvbmx5IHRoZSBpbml0aWFsIGxpc3RpbmcuCjE2NTogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oZGlzY292ZXJ5WydzZWFsX2J5dGVzJ10pKzEpPT1kaXNjb3ZlcnlbJ3NlYWxfYnl0ZXMnXSwKMTY2OiAgICAgICAgICAgICAgICdTRUFMX0NIQU5HRURfRFVSSU5HX1JFU1RPUkUnKQoyMTU6ZGVmIHJlc3RvcmVfZmlsZXMod29yayxmaWxlcyk6CjIxNjogICAgdC5uZWVkKHR5cGUoZmlsZXMpIGlzIGRpY3QgYW5kIHNldChmaWxlcyk9PUFMTF9OQU1FUyBhbmQgYWxsKHR5cGUoYikgaXMgYnl0ZXMgZm9yIGIgaW4gZmlsZXMudmFsdWVzKCkpLCdSRVNUT1JFX0ZJTEVTX1dISVRFTElTVCcpCjIxNzogICAgcm9vdD1QYXRoKHdvcmspLydyZXN0b3JlZCc7dC5tYWtlX2Rpcihyb290LGV4Y2x1c2l2ZT1UcnVlKQoyMjM6ICAgICAgICB0Lm5lZWQoZ290PT1iIGFuZCBmb3VuZD09aWRlbnRpdHksJ1JFU1RPUkVEX0ZJTEVfUkVBREJBQ0tfTUlTTUFUQ0gnKQoyMjg6ZGVmIGNsZWFudXBfcmVzdG9yZWQod29yayxyZWNvcmRzKToKMjI5OiAgICByb290PVBhdGgod29yaykvJ3Jlc3RvcmVkJwoyNDI6ICAgICAgICB0Lm5lZWQoaWRlbnRpdHk9PXJlY29yZHNbbmFtZV1bJ2lkZW50aXR5J10gYW5kIHQuc2hhKGIpPT1yZWNvcmRzW25hbWVdWydzaGEyNTYnXSwnUkVTVE9SRV9DTEVBTlVQX0lERU5USVRZJyk= +PIPE_48_SCORE=2 +PIPE_48_BASENAME=stream263.py +PIPE_48_PATH_SHA256=8b5aa328daf351ab439d9ad7d27b4e2d57f8ec7a9d26e0ef8b0350d698f47676 +PIPE_48_FILE_SHA256=a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16 +PIPE_48_SCHEDULE_TARGET_COUNT=0 +PIPE_48_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_48_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_48_VZDUMP_QEMU_COUNT=0 +PIPE_48_RCLONE_COUNT=1 +PIPE_48_CLOUD_QUORUM_COUNT=0 +PIPE_48_SEAL_WRITTEN_COUNT=0 +PIPE_48_PAYLOAD_PARTS_COUNT=0 +PIPE_48_TRANSPORT_COUNT=1 +PIPE_48_RESTORE_VALIDATION_COUNT=0 +PIPE_48_SCHEDULE_RESULT_COUNT=0 +PIPE_48_RELEVANT_LINE_COUNT=9 +PIPE_48_RELEVANT_B64=MToiIiJCYWNrdXAgVjIgYm91bmRlZC1tZW1vcnkgbG9jYWwgcGF5bG9hZCBwcmltaXRpdmVzLCBzdGFnZSAyNjNSMS4KMzpObyBleGVjdXRhYmxlIGVudHJ5IHBvaW50LCBuZXR3b3JrLCByY2xvbmUsIGJhY2t1cCBleGVjdXRpb24sIHNlYWxpbmcgb3IgZGVsZXRpb24uCjU6cGFydGlhbCBvdXRwdXQgaXMgcmV0YWluZWQuIFRoaXMgbW9kdWxlIGlzIE5PVCBhIGZ1bGwgaG9zdCBiYWNrdXAvcmVzdG9yZSBlbmdpbmUuCjEzOmltcG9ydCB0cmFuc3BvcnQyNjEgYXMgdAozMTogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQo1MDogICAgZGVmIGZlZWQoc2VsZixibG9jayk6CjUyOiAgICAgICAgbmVlZCh0eXBlKGJsb2NrKSBpcyBieXRlcyBhbmQgbGVuKGJsb2NrKTw9Q0hVTktfQllURVMsJ1NJTktfQ0hVTktfQk9VTkQnKQo1MzogICAgICAgIG5lZWQoc2VsZi5jb3VudCtsZW4oYmxvY2spPD1zZWxmLnNpemUsJ1NUUkVBTV9PVkVSU0laRScpCjU0OiAgICAgICAgc2VsZi5oLnVwZGF0ZShibG9jayk7c2VsZi5jb3VudCs9bGVuKGJsb2NrKQ== +PIPE_49_SCORE=2 +PIPE_49_BASENAME=transport261.py +PIPE_49_PATH_SHA256=2842a3673fd198c0bd9b72a6d04fb9dba932397d8088de0a157aa1c770878e27 +PIPE_49_FILE_SHA256=b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688 +PIPE_49_SCHEDULE_TARGET_COUNT=0 +PIPE_49_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_49_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_49_VZDUMP_QEMU_COUNT=0 +PIPE_49_RCLONE_COUNT=3 +PIPE_49_CLOUD_QUORUM_COUNT=0 +PIPE_49_SEAL_WRITTEN_COUNT=0 +PIPE_49_PAYLOAD_PARTS_COUNT=0 +PIPE_49_TRANSPORT_COUNT=1 +PIPE_49_RESTORE_VALIDATION_COUNT=0 +PIPE_49_SCHEDULE_RESULT_COUNT=0 +PIPE_49_RELEVANT_LINE_COUNT=69 +PIPE_49_RELEVANT_B64=MToiIiJCb3VuZGVkIEJhY2t1cCBWMiB0cmFuc3BvcnQgMjYxUjEuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KNDpjb250cm9sLWZpbGUgYmFja3VwLCBOT1QgYSBjb21wbGV0ZSBub2RlIGJhY2t1cCBvciBpbmRlcGVuZGVudCByZXN0b3JlIGRyaWxsLgo1NzogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQoxMDk6ICAgIHA9UGF0aChwYXRoKTtkYXRhLGZvdW5kPXJlYWRfc2VjdXJlKHAsTUFYX1BBWUxPQURfQllURVMrY29yZS5NQU5JRkVTVF9NQVhfQllURVMpCjE0NjpkZWYgYm91bmRlZF9wcm9jZXNzKGFyZ3YsZW52LGxpbWl0LHNlY29uZHMpOgoxNDg6ICAgIG5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBzZWNvbmRzPjAgYW5kIDA8PWxpbWl0PD1NQVhfUEFZTE9BRF9CWVRFUysxLCdQUk9DRVNTX0xJTUlUJykKMTQ5OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAoxNTM6ICAgICAgICBmb3IgZiBpbiAocC5zdGRvdXQscC5zdGRlcnIpOm9zLnNldF9ibG9ja2luZyhmLmZpbGVubygpLEZhbHNlKTtzZWwucmVnaXN0ZXIoZixzZWxlY3RvcnMuRVZFTlRfUkVBRCkKMTcxOmNsYXNzIFJjbG9uZUlPOgoxNzI6ICAgICIiIkNyeXB0LW9ubHkgbmFtZXNwYWNlLWNvbmZpbmVkIGFkYXB0ZXIuIFNuYXBzaG90IHRva2VuIHJlZnJlc2ggbmV2ZXIgdGFyZ2V0cyBsaXZlIGNvbmZpZy4iIiIKMTc2OiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5leHBlY3RlZF9iaW5kaW5nPWV4cGVjdGVkX2JpbmRpbmcKMTc4OiAgICAgICAgc2VsZi5jYWxscz0wO3NlbGYud3JpdGVzX2F0dGVtcHRlZD0wO3NlbGYubWFuaWZlc3Q9Tm9uZQoxODU6ICAgICAgICBuZWVkKHNoYShyZWFkX3NlY3VyZShzZWxmLmV4ZWN1dGFibGUsMTI4KjEwMjQqMTAyNClbMF0pPT1zZWxmLmV4ZV9zaGEsJ1JDTE9ORV9CSU5BUllfQ0hBTkdFRCcpCjE4NzogICAgICAgIG5lZWQoYXJnc1swXSBpbiAoJ2Fib3V0JywnbHNqc29uJywnY29weXRvJywnY2F0JyksJ1JDTE9ORV9WRVJCX0ZPUkJJRERFTicpCjE4OTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLmNvbmZpZ19wYXRoKSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsCjE5NDogICAgICAgIHJjLG91dD1ib3VuZGVkX3Byb2Nlc3MoYXJndixzZWxmLmVudixsaW1pdCxzZWNvbmRzKQoxOTc6ICAgIGRlZiBxdW90YShzZWxmLHJlbW90ZSk6CjE5ODogICAgICAgIG5lZWQocmVtb3RlIGluIHNlbGYuY3J5cHQsJ1FVT1RBX1JFTU9URV9GT1JCSURERU4nKQoxOTk6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnYWJvdXQnLHJlbW90ZSsnOicsJy0tanNvbiddLDE2Mzg0KQoyMDU6ICAgIGRlZiBiaW5kKHNlbGYsbWFuaWZlc3QpOgoyMDY6ICAgICAgICBjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG1hbmlmZXN0KQoyMDc6ICAgICAgICBrbm93bj17ZVsnYWNjb3VudF9pZCddOmVbJ2NyeXB0X3JlbW90ZSddIGZvciBlIGluIHNlbGYuZW50cmllc30KMjA4OiAgICAgICAgbmVlZChhbGwoa25vd24uZ2V0KHJbJ2FjY291bnRfaWQnXSk9PXJbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIG1hbmlmZXN0WydyZXBsaWNhcyddKSwnTUFOSUZFU1RfQ09ORklHX01JU01BVENIJykKMjA5OiAgICAgICAgc2VsZi5tYW5pZmVzdD1tYW5pZmVzdAoyMTA6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLG5hbWU9Tm9uZSk6CjIxMTogICAgICAgIG5lZWQoc2VsZi5tYW5pZmVzdCBpcyBub3QgTm9uZSwnTUFOSUZFU1RfTk9UX0JPVU5EJykKMjEyOiAgICAgICAgbmVlZChyZW1vdGUgaW4ge3JbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIHNlbGYubWFuaWZlc3RbJ3JlcGxpY2FzJ119LCdXUklURV9SRU1PVEVfRk9SQklEREVOJykKMjEzOiAgICAgICAgcHJlZml4PXJlbW90ZSsnOicrc2VsZi5tYW5pZmVzdFsnbmFtZXNwYWNlJ10KMjE1OiAgICAgICAgbmFtZXM9e3BbJ25hbWUnXSBmb3IgcCBpbiBzZWxmLm1hbmlmZXN0WydwYXJ0cyddfXx7J21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbid9CjIxODogICAgZGVmIGFic2VudChzZWxmLHJlbW90ZSk6CjIxOTogICAgICAgIHJjLF89c2VsZi5jYWxsKFsnbHNqc29uJyxzZWxmLmFkZHJlc3MocmVtb3RlKSwnLS1tYXgtZGVwdGgnLCcxJ10sNjU1MzYpCjIyMDogICAgICAgIGlmIHJjPT0wOnJhaXNlIFN0b3AoJ0dFTkVSQVRJT05fQUxSRUFEWV9FWElTVFMnKQoyMjE6ICAgICAgICBuZWVkKHJjIGluICgzLDQpLCdHRU5FUkFUSU9OX0FCU0VOQ0VfVU5QUk9WRU4nKQoyMjI6ICAgIGRlZiBwdXQoc2VsZixyZW1vdGUsbmFtZSxwYXRoKToKMjIzOiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpO3JlYWRfc2VjdXJlKHBhdGgsTUFYX1BBWUxPQURfQllURVMpCjIyODogICAgICAgIG5lZWQocmM9PTAsJ0NMT1VEX0NPUFlfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjI5OiAgICBkZWYgZ2V0KHNlbGYscmVtb3RlLG5hbWUsbGltaXQpOgoyMzE6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnY2F0JyxzZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpLCctLWNvdW50JyxzdHIobGltaXQpXSxsaW1pdCkKMjMyOiAgICAgICAgbmVlZChyYz09MCwnQ0xPVURfUkVBREJBQ0tfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjM2OmRlZiBwaXBlbGluZSh3b3JrLGZpbGVzLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoyMzc6ICAgICIiIk9uZSBib3VuZGVkIHJlYWwgYmFja3VwOyBubyBmYWxsYmFjaywgbm8gcmVzdW1lLCBubyBjbG91ZCBkZWxldGlvbiBvbiBmYWlsdXJlLiIiIgoyMzk6ICAgIG5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoyNDg6ICAgIGZvciBlIGluIGVudHJpZXM6cXVvdGFzW2VbJ2FjY291bnRfaWQnXV09Y2xvdWQucXVvdGEoZVsnY3J5cHRfcmVtb3RlJ10pCjI0OTogICAgYWxsb2M9Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxwYXlsb2FkX2xlbixyZXNlcnZlLGNsb2NrKCkpCjI1MDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHBheWxvYWRfbGVuLHBheWxvYWRfc2hhLHBhcnRzLGFsbG9jKQoyNTE6ICAgIG1iPWNvcmUuY2Fub25pY2FsX2J5dGVzKG0pO21oPWNvcmUubWFuaWZlc3RfaGFzaChtKTtjbG91ZC5iaW5kKG0pCjI1MjogICAgY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2MpKTtjcmVhdGUod29yay8nbWFuaWZlc3QuanNvbicsbWIpCjI1NDogICAgICAgIGd1YXJkKCk7Y2xvdWQuYWJzZW50KGVbJ2NyeXB0X3JlbW90ZSddKQoyNTU6ICAgICAgICBxPWNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKQoyNTY6ICAgICAgICBuZWVkKGNvcmUucXVvdGFfcmVhc29uKHEsY2xvY2soKSkgaXMgTm9uZSBhbmQgcVsnZnJlZSddPj1hbGxvY1sncmVxdWlyZWRfZnJlZV9ieXRlcyddLCdTRUxFQ1RFRF9BQ0NPVU5UX0NBUEFDSVRZX0NIQU5HRUQnKQoyNTk6ICAgICAgICByZW1vdGU9clsnY3J5cHRfcmVtb3RlJ107Z3VhcmQoKQoyNjM6ICAgICAgICAgICAgY2xvdWQucHV0KHJlbW90ZSxwYXJ0WyduYW1lJ10sd29yay9wYXJ0WyduYW1lJ10pCjI2NDogICAgICAgIGNsb3VkLnB1dChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLHdvcmsvJ21hbmlmZXN0Lmpzb24nKQoyNjU6ICAgICAgICBuZWVkKGNsb3VkLmdldChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLGxlbihtYikrMSk9PW1iLCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjI2ODogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUscGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSsxKQoyNzI6ICAgICAgICByZWNlaXB0cy5hcHBlbmQoeyoqciwnZ2VuZXJhdGlvbic6Z2VuZXJhdGlvbiwnbWFuaWZlc3Rfc2hhMjU2JzptaCwncGF5bG9hZF9zaGEyNTYnOmZ1bGwuaGV4ZGlnZXN0KCksCjI3NjogICAgc2VhbD17J3NjaGVtYV92ZXJzaW9uJzoyLCdzdGF0ZSc6J1NFQUxFRCcsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsCjI3NzogICAgICAgICAgJ21hbmlmZXN0X3NoYTI1Nic6bWgsJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddLCdyZWNlaXB0cyc6cmVjZWlwdHMsCjI3ODogICAgICAgICAgJ2FjY2VwdGFuY2UnOidJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJ30KMjc5OiAgICBzYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhzZWFsKTtuZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoyODA6ICAgIGNyZWF0ZSh3b3JrLydTRUFMRUQuanNvbicsc2IpCjI4MTogICAgc2VhbHM9W10KMjgzOiAgICAgICAgZ3VhcmQoKTtjbG91ZC5wdXQoclsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyx3b3JrLydTRUFMRUQuanNvbicpCjI4NDogICAgICAgIG9ic2VydmVkPWNsb3VkLmdldChyWydjcnlwdF9yZW1vdGUnXSwnU0VBTEVELmpzb24nLGxlbihzYikrMSkKMjg1OiAgICAgICAgbmVlZChvYnNlcnZlZD09c2IsJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKTtzZWFscy5hcHBlbmQob2JzZXJ2ZWQpCjI4NjogICAgbmVlZChsZW4oc2VhbHMpPT0yIGFuZCBhbGwoYj09c2IgZm9yIGIgaW4gc2VhbHMpLCdTRUFMRURfUVVPUlVNX1JFUVVJUkVEJykKMjkyOiAgICBjcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnNoYShzYiksJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddfSkpCjI5NTogICAgcmVzdWx0PXsnc3RhdGUnOidTRUFMRURfUVVPUlVNX1ZFUklGSUVEJywnbWFuaWZlc3QnOm0sJ3JlY2VpcHRzJzpyZWNlaXB0cywnc2VhbF9zaGEyNTYnOnNoYShzYiksCjI5NjogICAgICAgICAgICAnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnOnJlbWFpbmluZywncmVzdG9yZV9kcmlsbF9wZXJmb3JtZWQnOkZhbHNlLA== +PIPE_50_SCORE=2 +PIPE_50_BASENAME=ct112_handler.py +PIPE_50_PATH_SHA256=c2912ea3b1faaa7d9eba5ff23da881c38935d44e7144f34c9317431973c58107 +PIPE_50_FILE_SHA256=8cac6e627d5e7abe5d3163cdd24911995a1e3f45c776f9373c2aa68784f5ec6c +PIPE_50_SCHEDULE_TARGET_COUNT=0 +PIPE_50_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_50_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_50_VZDUMP_QEMU_COUNT=0 +PIPE_50_RCLONE_COUNT=19 +PIPE_50_CLOUD_QUORUM_COUNT=0 +PIPE_50_SEAL_WRITTEN_COUNT=0 +PIPE_50_PAYLOAD_PARTS_COUNT=0 +PIPE_50_TRANSPORT_COUNT=1 +PIPE_50_RESTORE_VALIDATION_COUNT=0 +PIPE_50_SCHEDULE_RESULT_COUNT=0 +PIPE_50_RELEVANT_LINE_COUNT=49 +PIPE_50_RELEVANT_B64=ODppbXBvcnQgZ3Vlc3QyNjYsbGFyZ2UyNjQgYXMgbGFyZ2UscHZlMjY1LHB2ZTI4Mix0cmFuc3BvcnQyNjEgYXMgdCx2MmNvcmUgYXMgY29yZQoxMjpSQ0xPTkU9UGF0aCgnL3Vzci9iaW4vcmNsb25lJyk7IFJDTE9ORV9TSEE9JzIwZGYzZDVlYWM1ZDRlMTg3Y2U2MzhlNDIxNjM1NGU3ZmE2Nzc4YzNjNTFmMGNhZjQ4YzQ4YWNjYTk2ODYzNTQnCjEzOlJDTE9ORV9DRkc9UGF0aCgnL3Jvb3QvLmNvbmZpZy9yY2xvbmUvcmNsb25lLmNvbmYnKQoxNTpWWkRVTVA9UGF0aCgnL3Vzci9iaW4vdnpkdW1wJyk7IFZaRFVNUF9TSEE9JzIxMzM5ZDAwOWFmZDU1Y2I3ZWM2MTNiNjRjMWY0OTNiMmE3ZGJkMThiODViNGQ3MTI5MDllZjZkNjcxMGY0ZWEnCjI1OiAgICBhcmd2PVtzdHIoUFZFU0gpLCdnZXQnLGVuZHBvaW50LCptYXAoc3RyLGFyZ3MpLCctLW91dHB1dC1mb3JtYXQnLCdqc29uJ10KMjY6ICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD00NSxjaGVjaz1GYWxzZSxlbnY9RU5WKQozODogICAgcD1QYXRoKCcvZXRjL3Z6ZHVtcC5jb25mJyk7c3Q9b3Muc3RhdChwLGZvbGxvd19zeW1saW5rcz1GYWxzZSkKMzk6ICAgIGlmIG5vdCBzdGF0LlNfSVNSRUcoc3Quc3RfbW9kZSkgb3Igc3Quc3RfdWlkIT0wIG9yIHN0LnN0X3NpemU+MTAyNCoxMDI0OnJhaXNlIFJ1bnRpbWVFcnJvcignVlpEVU1QX0RFRkFVTFRTX0ZJTEUnKQo0OTogICAgICAgIHZtaWQ9ci5nZXQoJ3ZtaWQnKQo1MDogICAgICAgIGlmIHR5cGUodm1pZCkgaXMgbm90IGludDpyYWlzZSBSdW50aW1lRXJyb3IoJ1BWRV9WTUlEX1NDSEVNQScpCjUxOiAgICAgICAgY29uZmlnc1t2bWlkXT1fanNvbl9jbWQoZiIvbm9kZXMvcHZlMDEve3JbJ3R5cGUnXX0ve3ZtaWR9L2NvbmZpZyIpCjYwOiAgICBpZiBwbGFuLmdldCgnZ2xvYmFsX2Jsb2NrZXJzJykhPVtdOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfR0xPQkFMX0JMT0NLRVJTJykKNjE6ICAgIHZtaWRzPVtqLmdldCgndm1pZCcpIGZvciBqIGluIGpvYnMgaWYgaXNpbnN0YW5jZShqLGRpY3QpXQo2MjogICAgaWYgbGVuKHZtaWRzKSE9bGVuKGpvYnMpIG9yIGxlbih2bWlkcykhPWxlbihzZXQodm1pZHMpKTpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1BMQU5fTUVNQkVSU0hJUCcpCjYzOiAgICBtYXRjaGVzPVtqIGZvciBqIGluIGpvYnMgaWYgai5nZXQoJ3ZtaWQnKT09MTEyXQo2ODogICAgaWYgam9iLmdldCgnY292ZXJhZ2VfZWxpZ2libGUnKSBpcyBub3QgVHJ1ZSBvciBqb2IuZ2V0KCdibG9ja2VycycpIT1bXTpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1BMQU5fQkxPQ0tFRCcpCjc0OmRlZiBfYXNzZXJ0X2xpdmVfc3RhdGVfdW5jaGFuZ2VkKGJlZm9yZSxhZnRlcix2bWlkKToKNzU6ICAgIGlmIHR5cGUoYmVmb3JlKSBpcyBub3QgZGljdCBvciB0eXBlKGFmdGVyKSBpcyBub3QgZGljdDpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1NUQVRFX1NDSEVNQScpCjc3OiAgICBpZiB0eXBlKG9sZCkgaXMgbm90IGxpc3Qgb3IgdHlwZShuZXcpIGlzIG5vdCBsaXN0OnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfU0NIRU1BJykKNzk6ICAgICAgICBpZiBhbnkodHlwZSh4KSBpcyBub3QgZGljdCBvciB0eXBlKHguZ2V0KCd2bWlkJykpIGlzIG5vdCBpbnQgZm9yIHggaW4gcm93cyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9TQ0hFTUEnKQo4MDogICAgICAgIHJldHVybiBzb3J0ZWQoKHhbJ3ZtaWQnXSx4LmdldCgndHlwZScpLHguZ2V0KCdub2RlJykseC5nZXQoJ3N0YXR1cycpLHguZ2V0KCd0ZW1wbGF0ZScpKSBmb3IgeCBpbiByb3dzKQo4MTogICAgaWYgbWVtYmVyc2hpcChvbGQpIT1tZW1iZXJzaGlwKG5ldyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9NRU1CRVJTSElQX0NIQU5HRUQnKQo4MjogICAgaWYgYmVmb3JlLmdldCgnZ2xvYmFsX2RlZmF1bHRzJykhPWFmdGVyLmdldCgnZ2xvYmFsX2RlZmF1bHRzJyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9ERUZBVUxUU19DSEFOR0VEJykKODM6ICAgIGE9W2ogZm9yIGogaW4gb2xkIGlmIGouZ2V0KCd2bWlkJyk9PXZtaWRdO2I9W2ogZm9yIGogaW4gbmV3IGlmIGouZ2V0KCd2bWlkJyk9PXZtaWRdCjg0OiAgICBpZiBsZW4oYSkhPTEgb3IgbGVuKGIpIT0xOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfTUVNQkVSU0hJUF9DSEFOR0VEJykKODY6ICAgICAgICBpZiBhWzBdLmdldChrZXkpIT1iWzBdLmdldChrZXkpOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfQ09ORklHX0NIQU5HRUQnKQoxMDM6ICAgIGIsaWRlbnRpdHk9dC5yZWFkX3NlY3VyZShSQ0xPTkVfQ0ZHLHQuTUFYX0NPTkZJR19CWVRFUyxwcml2YXRlPVRydWUpCjEwNTogICAgaWYgbGVuKGVudHJpZXMpIT0xMyBvciBsZW4oe3hbJ2FjY291bnRfaWQnXSBmb3IgeCBpbiBlbnRyaWVzfSkhPTEzOnJhaXNlIFJ1bnRpbWVFcnJvcignUkNMT05FX0lOVkVOVE9SWScpCjEwNjogICAgaWYgaGFzaGxpYi5zaGEyNTYoYmluZGluZy5lbmNvZGUoKSkuaGV4ZGlnZXN0KCkhPUJJTkRJTkdfRlA6cmFpc2UgUnVudGltZUVycm9yKCdSQ0xPTkVfQklORElORycpCjEyMTogICAgICAgIHNlbGYuc25hcHNob3Q9c2VsZi53b3JrLydyY2xvbmUuc25hcHNob3QnO3NlbGYuaW5uZXI9Tm9uZQoxMjU6ICAgICAgICBpZiBlIT1zZWxmLmVudHJpZXMgb3IgYmluZCE9c2VsZi5iaW5kaW5nOnJhaXNlIFJ1bnRpbWVFcnJvcignUkNMT05FX1NFTUFOVElDX0RSSUZUJykKMTI3OiAgICAgICAgc2VsZi5pbm5lcj1sYXJnZS5SZWFkT25seUxhcmdlKHN0cihSQ0xPTkUpLHNlbGYuc25hcHNob3QsZSxiaW5kLHNlbGYuZ3VhcmQsc2VsZi53b3JrLHNlbGYuZGVhZGxpbmUsc2VsZi5sb2dpY2FsX2lkKQoxMjk6ICAgIGRlZiBsaXN0X2dlbmVyYXRpb25zKHNlbGYsKmEsKiprKTpyZXR1cm4gc2VsZi5fZW5zdXJlKCkubGlzdF9nZW5lcmF0aW9ucygqYSwqKmspCjEzODogICAgZm9yIHAsaCBpbiAoKFJDTE9ORSxSQ0xPTkVfU0hBKSwoVlpEVU1QLFZaRFVNUF9TSEEpLChaU1RELFpTVERfU0hBKSk6CjE0MjpkZWYgcnVuX3RhcmdldCh0YXJnZXQsc3RhdGVfd3JpdGVyPU5vbmUpOgoxNDM6ICAgIGlmIG5vdCBpc2luc3RhbmNlKHRhcmdldCxkaWN0KSBvciB0YXJnZXQuZ2V0KCdsb2dpY2FsX2lkJykhPUNUX0lEIG9yIHRhcmdldC5nZXQoJ3ZtaWQnKSE9MTEyOnJldHVybiAoXyBmb3IgXyBpbiAoKSkudGhyb3coUnVudGltZUVycm9yKCdDVDExMl9ERVNDUklQVE9SJykpCjE0NTogICAgdG9vbHM9eyd2emR1bXAnOl90b29sKFZaRFVNUCxWWkRVTVBfU0hBKSwnenN0ZCc6X3Rvb2woWlNURCxaU1REX1NIQSl9O190b29sKFJDTE9ORSxSQ0xPTkVfU0hBKQoxNTA6ICAgICAgICBfYXNzZXJ0X2xpdmVfc3RhdGVfdW5jaGFuZ2VkKGN1cnJlbnQsZnJlc2hfcGxhbiwxMTIpCjE1NjogICAgZ2VuZXJhdGlvbj0nVjItJyt0aW1lLnN0cmZ0aW1lKCclWSVtJWRUJUglTSVTWicsdGltZS5nbXRpbWUoKSkrJy0nK3NlY3JldHMudG9rZW5faGV4KDYpCjE1NzogICAgd29yaz1TVEFHSU5HLygnYmFja3VwLXYyLScrZ2VuZXJhdGlvbik7d29yay5ta2Rpcihtb2RlPTBvNzAwLHBhcmVudHM9RmFsc2UsZXhpc3Rfb2s9RmFsc2UpCjE1OTogICAgZGVmIGNsb3VkX2d1YXJkKCk6CjE2MTogICAgICAgIGlmIGUhPWVudHJpZXMgb3IgYiE9YmluZGluZzpyYWlzZSBSdW50aW1lRXJyb3IoJ1JDTE9ORV9TRU1BTlRJQ19EUklGVCcpCjE2MjogICAgd3JpdGVyPWxhcmdlLkNsb3VkTGFyZ2Uoc3RyKFJDTE9ORSksUkNMT05FX0NGRyxlbnRyaWVzLGJpbmRpbmcsY2xvdWRfZ3VhcmQsd29yay8ndXBsb2FkJyxkZWFkbGluZSkKMTYzOiAgICByZWFkZXI9TGF6eVJlYWRlcih3b3JrLydyZXN0b3JlJyxlbnRyaWVzLGJpbmRpbmcsY2xvdWRfZ3VhcmQsZGVhZGxpbmUsQ1RfSUQpCjE2OTogICAgICAgIHI9Z3Vlc3QyNjYucnVuX2Zsb3coam9iLHdvcmssZW50cmllcyx3cml0ZXIscmVhZGVyLHByb2R1Y2UscHJvZHVjZXJfZ3VhcmQsY2xvdWRfZ3VhcmQsY29tcHJlc3Npb24sZ2VuZXJhdGlvbixsYW1iZGEgayx2Ok5vbmUpCjE3MjogICAgICAgIGlmIHIuZ2V0KCdhcmNoaXZlX2Nsb3VkX3Jlc3RvcmVfdmVyaWZpZWQnKSBpcyBub3QgVHJ1ZSBvciByLmdldCgnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnKSE9MDpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1JFU1RPUkVfQ09OVFJBQ1QnKQoxNzM6ICAgICAgICBvdXQ9eyoqciwnc3RhdHVzJzonT0snLCdjbG91ZF9vbmx5X2luZGVwZW5kZW50X3Jlc3RvcmVfdmVyaWZpZWQnOlRydWUsJ2xvY2FsX3BheWxvYWRfZmlsZXNfcmVtYWluaW5nJzowfQoxNzY6ICAgICAgICBpZiBzdGF0ZV93cml0ZXIgaXMgbm90IE5vbmU6CjE3NzogICAgICAgICAgICBzdGF0ZV93cml0ZXIoQ1RfSUQsJ1NVQ0NFU1MnLGdlbmVyYXRpb249clsnZ2VuZXJhdGlvbiddLHBheWxvYWRfc2hhMjU2PXJbJ3BheWxvYWRfc2hhMjU2J10sbWFuaWZlc3Rfc2hhMjU2PXJbJ21hbmlmZXN0X3NoYTI1NiddLHJlcGxpY2FzPXJbJ3JlcGxpY2FzJ10sZ3JlZW5fdmVyaWZpZWQ9VHJ1ZSk= +VM150_TARGET_COUNT=1 +VM150_TARGET_1_KEY_COUNT=5 +VM150_TARGET_1_ID_SHA256=9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b +VM150_TARGET_1_KIND=VM +VM150_TARGET_1_LIFECYCLE=ACTIVE +VM150_TARGET_1_LOGICAL_ID=vm150 +VM150_TARGET_1_OWNER_SHA256=1ec037ee8d7939e1aad0c2701a1c4f09849abb191ec016f69e6f8de4142276c3 +VM150_LOCAL_ARTIFACT_CANDIDATE_COUNT=234 +VM150_ART_1_AGE_HOURS=0.0 +VM150_ART_1_TYPE=dir +VM150_ART_1_BASENAME=w2-snikket-99593.pS6Nvj +VM150_ART_1_PATH_SHA256=b7280f84a78fd896bef907f4f7841d4cb272d4dff9028a0eacb2758626d8f6bb +VM150_ART_1_SIZE_BYTES=0 +VM150_ART_2_AGE_HOURS=320.61 +VM150_ART_2_TYPE=dir +VM150_ART_2_BASENAME=vm150 +VM150_ART_2_PATH_SHA256=10f622a31055c4864180c3802a96db3520bf84037d07047fe5b38045fea5e420 +VM150_ART_2_SIZE_BYTES=0 +VM150_ART_3_AGE_HOURS=320.61 +VM150_ART_3_TYPE=file +VM150_ART_3_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_3_PATH_SHA256=a8d063a7f40a4bce8f0f8bb43d29f032fb5771ef6cd54d26fcae79a47dddc704 +VM150_ART_3_SIZE_BYTES=410 +VM150_ART_4_AGE_HOURS=747.39 +VM150_ART_4_TYPE=dir +VM150_ART_4_BASENAME=vm150 +VM150_ART_4_PATH_SHA256=80eb510475716c444600d2bdeb1f7c7d2253d4d8b54371cd06ac0d764e2acbcc +VM150_ART_4_SIZE_BYTES=0 +VM150_ART_5_AGE_HOURS=747.39 +VM150_ART_5_TYPE=dir +VM150_ART_5_BASENAME=vm150 +VM150_ART_5_PATH_SHA256=bcca7344f0b103f8eaefe32d2b8e37c9652f3ee96b6417573ff297301fa5ac24 +VM150_ART_5_SIZE_BYTES=0 +VM150_ART_6_AGE_HOURS=747.39 +VM150_ART_6_TYPE=file +VM150_ART_6_BASENAME=vm150-pve01-20260904T053517Z.json +VM150_ART_6_PATH_SHA256=efad5cd2aee419fd80f4308fd06a30e54426d4bd98793b8cedea8fa9bb27ca38 +VM150_ART_6_SIZE_BYTES=1021 +VM150_ART_7_AGE_HOURS=747.4 +VM150_ART_7_TYPE=dir +VM150_ART_7_BASENAME=vm150-pve01-20260904T053517Z +VM150_ART_7_PATH_SHA256=d847210e0592385f9929e2afb29680a2bed7509e654a2bc38b554ee94a795a65 +VM150_ART_7_SIZE_BYTES=0 +VM150_ART_8_AGE_HOURS=747.4 +VM150_ART_8_TYPE=dir +VM150_ART_8_BASENAME=vm150 +VM150_ART_8_PATH_SHA256=1d0e204a3e2ac95c18ddf5206f84b9291568045c618c833f1a8b9d5ea07a7437 +VM150_ART_8_SIZE_BYTES=0 +VM150_ART_9_AGE_HOURS=747.4 +VM150_ART_9_TYPE=file +VM150_ART_9_BASENAME=vm150-pve01-20260904T053517Z.json +VM150_ART_9_PATH_SHA256=7adac9913435c445ce775f7f45aab219a1ef179461f3a46061617f6550d9f1d8 +VM150_ART_9_SIZE_BYTES=1955 +VM150_ART_10_AGE_HOURS=747.43 +VM150_ART_10_TYPE=file +VM150_ART_10_BASENAME=vzdump-qemu-150-2026_09_04-08_35_17.log +VM150_ART_10_PATH_SHA256=8b0b8e9dce88409426ab8629805e1743cf198dbc60614dff7af2ad667f4e8206 +VM150_ART_10_SIZE_BYTES=1545 +VM150_ART_11_AGE_HOURS=747.44 +VM150_ART_11_TYPE=dir +VM150_ART_11_BASENAME=vm150 +VM150_ART_11_PATH_SHA256=e77258c0b7909f071a70d77803da933aa18257170c87a18a6d01591714097c11 +VM150_ART_11_SIZE_BYTES=0 +VM150_ART_12_AGE_HOURS=752.52 +VM150_ART_12_TYPE=file +VM150_ART_12_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_12_PATH_SHA256=5c1e7747144c0b33d9a1bc8b5908c9de343759b0c91587096e06d305fc7ff138 +VM150_ART_12_SIZE_BYTES=410 +VM150_ART_13_AGE_HOURS=752.52 +VM150_ART_13_TYPE=file +VM150_ART_13_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_13_PATH_SHA256=bf3de53f843a0de30eef4838950c1def4d8d38491aae6cfa84e54eb07d028e65 +VM150_ART_13_SIZE_BYTES=410 +VM150_ART_14_AGE_HOURS=760.38 +VM150_ART_14_TYPE=file +VM150_ART_14_BASENAME=vm150-pve01-20260903T163557Z.json +VM150_ART_14_PATH_SHA256=490cb5fb334b0fe267cc10283df8b51851b37403c9da4c04068949fb8fd78d1c +VM150_ART_14_SIZE_BYTES=1021 +VM150_ART_15_AGE_HOURS=760.39 +VM150_ART_15_TYPE=dir +VM150_ART_15_BASENAME=vm150-pve01-20260903T163557Z +VM150_ART_15_PATH_SHA256=cd5630b6e2aefdb449b0ce598c5e3907c63f8a0cd8054a313a8c7db83d744758 +VM150_ART_15_SIZE_BYTES=0 +VM150_ART_16_AGE_HOURS=760.39 +VM150_ART_16_TYPE=file +VM150_ART_16_BASENAME=vm150-pve01-20260903T163557Z.json +VM150_ART_16_PATH_SHA256=69aa2c3964c59caca61cd551e3b70e00f0a633a9e1d64c94f25bb14d5ae5b32c +VM150_ART_16_SIZE_BYTES=1955 +VM150_ART_17_AGE_HOURS=760.42 +VM150_ART_17_TYPE=file +VM150_ART_17_BASENAME=vzdump-qemu-150-2026_09_03-19_35_57.log +VM150_ART_17_PATH_SHA256=994081d142140f41e10d7fd23767eb91964451d7e1cd9835843e19dbf2372b3e +VM150_ART_17_SIZE_BYTES=1642 +VM150_ART_18_AGE_HOURS=774.38 +VM150_ART_18_TYPE=file +VM150_ART_18_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_18_PATH_SHA256=e39e01b8035f5baca1c53b1080423328febdfe29bc6e5cd681aef84e400c8a8d +VM150_ART_18_SIZE_BYTES=1021 +VM150_ART_19_AGE_HOURS=774.39 +VM150_ART_19_TYPE=dir +VM150_ART_19_BASENAME=vm150-pve01-20260903T023609Z +VM150_ART_19_PATH_SHA256=2d1f7498abc5587c3472348ee1c8a60a571eddfab42fa641dedeefbc1c70db6b +VM150_ART_19_SIZE_BYTES=0 +VM150_ART_20_AGE_HOURS=774.39 +VM150_ART_20_TYPE=file +VM150_ART_20_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_20_PATH_SHA256=f62ae052c989169ee85af087628f4a00075af8872474da6db8e6f42e1cf0c35d +VM150_ART_20_SIZE_BYTES=1955 +VM150_ART_21_AGE_HOURS=774.42 +VM150_ART_21_TYPE=file +VM150_ART_21_BASENAME=vzdump-qemu-150-2026_09_03-05_36_09.log +VM150_ART_21_PATH_SHA256=2ec9232a51ca028cac0ffc94caf7c39ced6837af5aaa1c1f35e07ce150422291 +VM150_ART_21_SIZE_BYTES=1643 +VM150_ART_22_AGE_HOURS=776.45 +VM150_ART_22_TYPE=file +VM150_ART_22_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_22_PATH_SHA256=25c86372ed373aaafe0a6cfdf95e3011ad3dd464d52b57a09a9dc0d9750114f6 +VM150_ART_22_SIZE_BYTES=410 +VM150_ART_23_AGE_HOURS=787.31 +VM150_ART_23_TYPE=file +VM150_ART_23_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_23_PATH_SHA256=4e2bf58cf003f9d792ca892af124e65d08132b49a7942013a5c1ad6035178918 +VM150_ART_23_SIZE_BYTES=1021 +VM150_ART_24_AGE_HOURS=787.32 +VM150_ART_24_TYPE=dir +VM150_ART_24_BASENAME=vm150-pve01-20260902T134020Z +VM150_ART_24_PATH_SHA256=c56277d8c832aa2b8dfdec3b8107b3239ad2940c9c4ea3a3e231c7be0b663fd5 +VM150_ART_24_SIZE_BYTES=0 +VM150_ART_25_AGE_HOURS=787.32 +VM150_ART_25_TYPE=file +VM150_ART_25_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_25_PATH_SHA256=15506e5235ff1a6c4b5a9a119c89d88b801edaf45ec36dd6d34e121e0b6cffd7 +VM150_ART_25_SIZE_BYTES=1955 +VM150_ART_26_AGE_HOURS=787.35 +VM150_ART_26_TYPE=file +VM150_ART_26_BASENAME=vzdump-qemu-150-2026_09_02-16_40_21.log +VM150_ART_26_PATH_SHA256=97d587e1eb5e71a1377ceb15fbf78deccb28dc213668564c32e2b11f9ea84b82 +VM150_ART_26_SIZE_BYTES=1547 +VM150_ART_27_AGE_HOURS=800.37 +VM150_ART_27_TYPE=file +VM150_ART_27_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_27_PATH_SHA256=0eb5d296516657ca0bb484aa1a8ed0e75adf2aa7f4d9d9657e6b4f41a082ef93 +VM150_ART_27_SIZE_BYTES=1021 +VM150_ART_28_AGE_HOURS=800.38 +VM150_ART_28_TYPE=dir +VM150_ART_28_BASENAME=vm150-pve01-20260902T003622Z +VM150_ART_28_PATH_SHA256=787dee1fc3eeadf3b3b05814172941da72583d975e732b41f5acba8700004ca2 +VM150_ART_28_SIZE_BYTES=0 +VM150_ART_29_AGE_HOURS=800.38 +VM150_ART_29_TYPE=file +VM150_ART_29_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_29_PATH_SHA256=f7a84691ac78b962f81f7b6343de5279cb774788e9b959f2d8aa403374170ac3 +VM150_ART_29_SIZE_BYTES=1955 +VM150_ART_30_AGE_HOURS=800.41 +VM150_ART_30_TYPE=file +VM150_ART_30_BASENAME=vzdump-qemu-150-2026_09_02-03_36_22.log +VM150_ART_30_PATH_SHA256=d0dd004862461bce7dc5e31a659dc1beab560ff18427af4e105553c2ca33b49d +VM150_ART_30_SIZE_BYTES=1645 +VM150_ART_31_AGE_HOURS=800.59 +VM150_ART_31_TYPE=file +VM150_ART_31_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_31_PATH_SHA256=1fc33e47ebf31c5ef4bba93d332ec6e11bd3476d1baf5ed62a0cf0546e0cf6be +VM150_ART_31_SIZE_BYTES=410 +VM150_ART_32_AGE_HOURS=800.59 +VM150_ART_32_TYPE=file +VM150_ART_32_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_32_PATH_SHA256=3a99d66a1f0199429e3aa558e16916279295a99022a109b8e0bc6e2a3c67a587 +VM150_ART_32_SIZE_BYTES=410 +VM150_ART_33_AGE_HOURS=814.34 +VM150_ART_33_TYPE=file +VM150_ART_33_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_33_PATH_SHA256=53532b6be1d08637ff25a37e99b7404393e5fa1c94014c8115dc54f8bfe45fb2 +VM150_ART_33_SIZE_BYTES=1021 +VM150_ART_34_AGE_HOURS=814.35 +VM150_ART_34_TYPE=dir +VM150_ART_34_BASENAME=vm150-pve01-20260901T103753Z +VM150_ART_34_PATH_SHA256=fbd20ea7e9b92f37a1064830b2254673b4ce5295139efbf6aaca1cdf6d5d91d1 +VM150_ART_34_SIZE_BYTES=0 +VM150_ART_35_AGE_HOURS=814.35 +VM150_ART_35_TYPE=file +VM150_ART_35_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_35_PATH_SHA256=d43415b966d396f138c5bc9933f26afb464f76d70f2e0776cf8c672c459ebe0e +VM150_ART_35_SIZE_BYTES=1955 +VM150_ART_36_AGE_HOURS=814.39 +VM150_ART_36_TYPE=file +VM150_ART_36_BASENAME=vzdump-qemu-150-2026_09_01-13_37_53.log +VM150_ART_36_PATH_SHA256=b264cdd7ddb58ccc0ed25726012ff71bcba021e050f52ab4f757e4a569255cce +VM150_ART_36_SIZE_BYTES=1644 +VM150_ART_37_AGE_HOURS=827.3 +VM150_ART_37_TYPE=file +VM150_ART_37_BASENAME=vm150-pve01-20260831T214108Z.json +VM150_ART_37_PATH_SHA256=4cef09ec110b2ce4e76a9762ce254c3f6fb7a73cd33af5b89842e9e531784848 +VM150_ART_37_SIZE_BYTES=1021 +VM150_ART_38_AGE_HOURS=827.31 +VM150_ART_38_TYPE=dir +VM150_ART_38_BASENAME=vm150-pve01-20260831T214108Z +VM150_ART_38_PATH_SHA256=51ec2f3b6e43e30b8c40dc8130ff99a1b76ce52f2eeeda599d4376b3f4682a7d +VM150_ART_38_SIZE_BYTES=0 +VM150_ART_39_AGE_HOURS=827.31 +VM150_ART_39_TYPE=file +VM150_ART_39_BASENAME=vm150-pve01-20260831T214108Z.json +VM150_ART_39_PATH_SHA256=f97057f756c185bdcc95184e48810c96566547a1e90d39e8c21b5050bd1410cc +VM150_ART_39_SIZE_BYTES=1955 +VM150_ART_40_AGE_HOURS=827.34 +VM150_ART_40_TYPE=file +VM150_ART_40_BASENAME=vzdump-qemu-150-2026_09_01-00_41_09.log +VM150_ART_40_PATH_SHA256=7e00cda2831193df2b74354629767f2d6fd1853a1a23165b965d40d07e96cc43 +VM150_ART_40_SIZE_BYTES=1643 +VM150_ART_41_AGE_HOURS=839.35 +VM150_ART_41_TYPE=file +VM150_ART_41_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_41_PATH_SHA256=58a804c36501e62ca91cf1c3ab96a0c173f37c8d477f24306594be04a0678972 +VM150_ART_41_SIZE_BYTES=1021 +VM150_ART_42_AGE_HOURS=839.36 +VM150_ART_42_TYPE=dir +VM150_ART_42_BASENAME=vm150-pve01-20260831T093800Z +VM150_ART_42_PATH_SHA256=88968214c0bd695eff000462c9a300c2f4df8a56682f7340cf037b3fd63f3433 +VM150_ART_42_SIZE_BYTES=0 +VM150_ART_43_AGE_HOURS=839.36 +VM150_ART_43_TYPE=file +VM150_ART_43_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_43_PATH_SHA256=c6b572c6afa56aa407b04103f83cbe6ff191228a07f74c054f6cfb4f058d514e +VM150_ART_43_SIZE_BYTES=1955 +VM150_ART_44_AGE_HOURS=839.39 +VM150_ART_44_TYPE=file +VM150_ART_44_BASENAME=vzdump-qemu-150-2026_08_31-12_38_01.log +VM150_ART_44_PATH_SHA256=ed9f8dfb365ac0cc16d868388ba250fd4016821a6e84bc3b274fae06292a469b +VM150_ART_44_SIZE_BYTES=1642 +VM150_ART_45_AGE_HOURS=848.6 +VM150_ART_45_TYPE=file +VM150_ART_45_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_45_PATH_SHA256=5ba15904869d47a4b88484588fdf6077dae036698e5218c41a6a7efd964c60ff +VM150_ART_45_SIZE_BYTES=410 +VM150_ART_46_AGE_HOURS=848.6 +VM150_ART_46_TYPE=file +VM150_ART_46_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_46_PATH_SHA256=f3c919314a16855b1983d0e484999af252952a59d3672d848a14021972b9645f +VM150_ART_46_SIZE_BYTES=410 +VM150_ART_47_AGE_HOURS=852.37 +VM150_ART_47_TYPE=file +VM150_ART_47_BASENAME=vm150-pve01-20260830T203628Z.json +VM150_ART_47_PATH_SHA256=480382928bcffc5e2900de44b8cc219dcf8c19821dc10233c83f03a479641989 +VM150_ART_47_SIZE_BYTES=1021 +VM150_ART_48_AGE_HOURS=852.38 +VM150_ART_48_TYPE=dir +VM150_ART_48_BASENAME=vm150-pve01-20260830T203628Z +VM150_ART_48_PATH_SHA256=8f23a7b1b8903dc231ac439fe25e4e836f57ed1a9f1028c15774292133b79dcf +VM150_ART_48_SIZE_BYTES=0 +VM150_ART_49_AGE_HOURS=852.38 +VM150_ART_49_TYPE=file +VM150_ART_49_BASENAME=vm150-pve01-20260830T203628Z.json +VM150_ART_49_PATH_SHA256=8f41a984b6185ed5e4b2c2d9e65d4d1cb07e42a097bb0dd401855eac63ed43dd +VM150_ART_49_SIZE_BYTES=1955 +VM150_ART_50_AGE_HOURS=852.41 +VM150_ART_50_TYPE=file +VM150_ART_50_BASENAME=vzdump-qemu-150-2026_08_30-23_36_28.log +VM150_ART_50_PATH_SHA256=0a1ca247ee1418103ef7e7a556aff588a6a908e75aaa9e0a754042c8b786ba01 +VM150_ART_50_SIZE_BYTES=1643 +VM150_ART_51_AGE_HOURS=866.38 +VM150_ART_51_TYPE=file +VM150_ART_51_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_51_PATH_SHA256=af519b9ec9a59ef1b30417a2c789295ac48e9ce777596520cdd73cb2daadf5ba +VM150_ART_51_SIZE_BYTES=1021 +VM150_ART_52_AGE_HOURS=866.38 +VM150_ART_52_TYPE=dir +VM150_ART_52_BASENAME=vm150-pve01-20260830T063610Z +VM150_ART_52_PATH_SHA256=124e8e5d48d1098eedaf92efbbfe40255633d4e99e86d8c4ff55ddefcf6f7131 +VM150_ART_52_SIZE_BYTES=0 +VM150_ART_53_AGE_HOURS=866.38 +VM150_ART_53_TYPE=file +VM150_ART_53_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_53_PATH_SHA256=cf2ddeb0c3c83a843e0d0d2d8be69a4217fa39befd6766f182414c162fc07eaa +VM150_ART_53_SIZE_BYTES=1955 +VM150_ART_54_AGE_HOURS=866.42 +VM150_ART_54_TYPE=file +VM150_ART_54_BASENAME=vzdump-qemu-150-2026_08_30-09_36_11.log +VM150_ART_54_PATH_SHA256=79fdb681a05ae4b885f5dfd6e3b619bfbcfccd16a0cf8e80e51ebd626435fb3d +VM150_ART_54_SIZE_BYTES=1644 +VM150_ART_55_AGE_HOURS=872.43 +VM150_ART_55_TYPE=file +VM150_ART_55_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_55_PATH_SHA256=b0d935a0d5e6936f21948c040480e5ab33e2951030ac2eeed0978e48b9ec2b82 +VM150_ART_55_SIZE_BYTES=410 +VM150_ART_56_AGE_HOURS=872.43 +VM150_ART_56_TYPE=file +VM150_ART_56_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_56_PATH_SHA256=e86ea3f161f6c8035944b313e2e3875bdd0df975983850b7df72c17ed8cd82ae +VM150_ART_56_SIZE_BYTES=410 +VM150_ART_57_AGE_HOURS=879.36 +VM150_ART_57_TYPE=file +VM150_ART_57_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_57_PATH_SHA256=e24834ff71d84a2e6e03c31a533aae943d3fbf684ef8ccc464f5ca58d1a99225 +VM150_ART_57_SIZE_BYTES=1021 +VM150_ART_58_AGE_HOURS=879.37 +VM150_ART_58_TYPE=dir +VM150_ART_58_BASENAME=vm150-pve01-20260829T173717Z +VM150_ART_58_PATH_SHA256=be3711a95f945c4d5bf06cb80bed651a8bc70193b3094317044c4f1cc349c5d8 +VM150_ART_58_SIZE_BYTES=0 +VM150_ART_59_AGE_HOURS=879.37 +VM150_ART_59_TYPE=file +VM150_ART_59_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_59_PATH_SHA256=7bc4686c822227832253791b686cdffe6562e82508076b27666a81faa9f65fb7 +VM150_ART_59_SIZE_BYTES=1955 +VM150_ART_60_AGE_HOURS=879.4 +VM150_ART_60_TYPE=file +VM150_ART_60_BASENAME=vzdump-qemu-150-2026_08_29-20_37_17.log +VM150_ART_60_PATH_SHA256=e2bf2176030191b4792ea07f7de6a54234cbbbe6b571cd3b4cdfe22ff49fd4c7 +VM150_ART_60_SIZE_BYTES=1642 +VM150_ART_61_AGE_HOURS=892.38 +VM150_ART_61_TYPE=file +VM150_ART_61_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_61_PATH_SHA256=8ff2e29a41e8df7098335a02af10375308751ec56efa9d77e709f73a51cdc40a +VM150_ART_61_SIZE_BYTES=1021 +VM150_ART_62_AGE_HOURS=892.39 +VM150_ART_62_TYPE=dir +VM150_ART_62_BASENAME=vm150-pve01-20260829T043615Z +VM150_ART_62_PATH_SHA256=ae37efb87c981b235c1799818d2d4851b0bae39cd85b9ea7d42e4e3b76cafeb0 +VM150_ART_62_SIZE_BYTES=0 +VM150_ART_63_AGE_HOURS=892.39 +VM150_ART_63_TYPE=file +VM150_ART_63_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_63_PATH_SHA256=6c734d165d7eb2efc0f5643bf31cd35527f7396e62218f817079b01c624fe1e3 +VM150_ART_63_SIZE_BYTES=1955 +VM150_ART_64_AGE_HOURS=892.42 +VM150_ART_64_TYPE=file +VM150_ART_64_BASENAME=vzdump-qemu-150-2026_08_29-07_36_15.log +VM150_ART_64_PATH_SHA256=42f1db88b172a69303b933f3da36acfaa70ce90f462005d92a04175dee3785cf +VM150_ART_64_SIZE_BYTES=1643 +VM150_ART_65_AGE_HOURS=896.48 +VM150_ART_65_TYPE=file +VM150_ART_65_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_65_PATH_SHA256=9eb5a8499b5b44af8d926cd4d0d518a686744af29e39fe43d4a81b045fc6a166 +VM150_ART_65_SIZE_BYTES=410 +VM150_ART_66_AGE_HOURS=906.38 +VM150_ART_66_TYPE=file +VM150_ART_66_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_66_PATH_SHA256=e5a08de449669ce796d24efdb17319319493f99a4949987f61890a2a4ab87ebf +VM150_ART_66_SIZE_BYTES=1021 +VM150_ART_67_AGE_HOURS=906.38 +VM150_ART_67_TYPE=dir +VM150_ART_67_BASENAME=vm150-pve01-20260828T143617Z +VM150_ART_67_PATH_SHA256=c3af81ebf97c65f1c79fe86bd3e1d59c9f7eff909df8d60ae66753877220b1eb +VM150_ART_67_SIZE_BYTES=0 +VM150_ART_68_AGE_HOURS=906.38 +VM150_ART_68_TYPE=file +VM150_ART_68_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_68_PATH_SHA256=c21fadaf9b303b9b051002f9c8e9b4bb98516598e45e843824dcf3863d4bc6d1 +VM150_ART_68_SIZE_BYTES=1955 +VM150_ART_69_AGE_HOURS=906.42 +VM150_ART_69_TYPE=file +VM150_ART_69_BASENAME=vzdump-qemu-150-2026_08_28-17_36_17.log +VM150_ART_69_PATH_SHA256=99d86daa887f89f68b04edb4100943e7e20098de8d67a6ed3075caa7bdc6ba41 +VM150_ART_69_SIZE_BYTES=1645 +VM150_ART_70_AGE_HOURS=920.62 +VM150_ART_70_TYPE=file +VM150_ART_70_BASENAME=vm150-pve01-20260824T183626Z.json +VM150_ART_70_PATH_SHA256=9ee4785e981f84eb2d065d0d01a3db50151ddd2c9978a4f76d75e337913b5336 +VM150_ART_70_SIZE_BYTES=410 +VM150_ART_71_AGE_HOURS=920.62 +VM150_ART_71_TYPE=file +VM150_ART_71_BASENAME=vm150-pve01-20260825T163812Z.json +VM150_ART_71_PATH_SHA256=bf3ece0acb9b2b45906bb10d6a145efff38fc64d600c4d0247ccfae4e3c71043 +VM150_ART_71_SIZE_BYTES=410 +VM150_ART_72_AGE_HOURS=920.62 +VM150_ART_72_TYPE=file +VM150_ART_72_BASENAME=vm150-pve01-20260826T053634Z.json +VM150_ART_72_PATH_SHA256=aa4ef572cd04865cd953733618b050f8ebb56efb8fec4cce112fd14816dff938 +VM150_ART_72_SIZE_BYTES=410 +VM150_ART_73_AGE_HOURS=920.62 +VM150_ART_73_TYPE=file +VM150_ART_73_BASENAME=vm150-pve01-20260826T173850Z.json +VM150_ART_73_PATH_SHA256=c813959b901d7ce3815aa7fa76c8c2744efad70377c6d5a01a3e3e165d367206 +VM150_ART_73_SIZE_BYTES=410 +VM150_ART_74_AGE_HOURS=924.37 +VM150_ART_74_TYPE=file +VM150_ART_74_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_74_PATH_SHA256=a90c91da69e35c48b275e68c7f9a6306a4655dffe5abe126880e3f525fd7f143 +VM150_ART_74_SIZE_BYTES=1021 +VM150_ART_75_AGE_HOURS=924.38 +VM150_ART_75_TYPE=dir +VM150_ART_75_BASENAME=vm150-pve01-20260827T203624Z +VM150_ART_75_PATH_SHA256=e998823e7af004b04989bb21c681fde6e652e4aa2d0d06f009f33929756d75ee +VM150_ART_75_SIZE_BYTES=0 +VM150_ART_76_AGE_HOURS=924.38 +VM150_ART_76_TYPE=file +VM150_ART_76_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_76_PATH_SHA256=57cadaec346a23613d84121c4ac37e729ef99755d94aa3e0d4ae4a7b72c2fce2 +VM150_ART_76_SIZE_BYTES=1955 +VM150_ART_77_AGE_HOURS=924.41 +VM150_ART_77_TYPE=file +VM150_ART_77_BASENAME=vzdump-qemu-150-2026_08_27-23_36_24.log +VM150_ART_77_PATH_SHA256=40abf1cbc36ae86632073b4f0a49d4ce2e05f1b3c5bff72cf7648478c3188bcf +VM150_ART_77_SIZE_BYTES=1629 +VM150_ART_78_AGE_HOURS=938.38 +VM150_ART_78_TYPE=file +VM150_ART_78_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_78_PATH_SHA256=57ab7089265ac9c0e72161816511ffe8819a43d0462e19883a9ecf7500ba184b +VM150_ART_78_SIZE_BYTES=1021 +VM150_ART_79_AGE_HOURS=938.39 +VM150_ART_79_TYPE=dir +VM150_ART_79_BASENAME=vm150-pve01-20260827T063558Z +VM150_ART_79_PATH_SHA256=86a586c4a9f516e58397e585f90ce48e6e95f24ded5a47dfcfa99ac49e2346d4 +VM150_ART_79_SIZE_BYTES=0 +VM150_ART_80_AGE_HOURS=938.39 +VM150_ART_80_TYPE=file +VM150_ART_80_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_80_PATH_SHA256=6ded03aecd5b59760e2ccf8b601a11e5bb2c3b03bc4f838b332c8c7a617c1b76 +VM150_ART_80_SIZE_BYTES=1955 +VM150_SERVICE_CONTEXT_SHA256=85aa6eae979ffba16f23900c6190b60bc3049938183f05182826110a17a8aebe +VM150_SERVICE_CONTEXT_B64=MjAyNi0xMC0wMlQyMzoyMToyMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg0MDQ2NzQzNTksImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wMlQyMzozMjozMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMlQyMzozMjozMSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDJUMjM6MzI6MzErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDJUMjM6MzI6MzErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAyMC4yMjRzIENQVSB0aW1lLCA2LjRHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDIzOjU4OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMjM6NTg6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcwMDg0MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwMDowNjoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzAwODQxXTogU0NIRURVTEVfVEFSR0VUPXhmLW5ld2ZpCjIwMjYtMTAtMDNUMDA6MDY6MTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcwMDg0MV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMDA6MDY6MTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDAwOjA2OjE3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDAwOjA2OjE3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDFtaW4gNDIuMjk3cyBDUFUgdGltZSwgMTUyTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwMDozODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDAwOjM4OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDA6Mzg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDddOiA8cm9vdEBwYW0+IHN0YXJ0aW5nIHRhc2sgVVBJRDpwdmUwMTowMDNBOTFGMDoxMjMyQ0M2Rjo2QUMwMjQzQzp2emR1bXA6MTcxOnJvb3RAcGFtOgoyMDI2LTEwLTAzVDAwOjM4OjA0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ4XTogSU5GTzogc3RhcnRpbmcgbmV3IGJhY2t1cCBqb2I6IHZ6ZHVtcCAxNzEgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90CjIwMjYtMTAtMDNUMDA6Mzg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDhdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcxIChxZW11KQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ4XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDE3MSAoMDA6MDA6NDUpCjIwMjYtMTAtMDNUMDA6Mzg6NDkrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDhdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ3XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwM0E5MUYwOjEyMzJDQzZGOjZBQzAyNDNDOnZ6ZHVtcDoxNzE6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMDA6Mzg6NDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzODQxMV06IFNDSEVEVUxFX1RBUkdFVD12bTE3MQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MjA3MDg3MzQzNiwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAxIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTcxfQoyMDI2LTEwLTAzVDAwOjQxOjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDAwOjQxOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwMDo0MTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMDo0MTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxbWluIDUuNDI5cyBDUFUgdGltZSwgMi41RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwMToxNjowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDAxOjE2OjAyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NjE4OTJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDE6MjI6NTkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzk2MTg5Ml06IFNDSEVEVUxFX1RBUkdFVD12bTkxMzAKMjAyNi0xMC0wM1QwMToyMjo1OSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTYxODkyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjEwOTU3NTMyNDA3LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjo5MTMwfQoyMDI2LTEwLTAzVDAxOjM3OjE5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NjE4OTJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDAxOjM3OjE5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwMTozNzoxOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMTozNzoxOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzbWluIDM4LjI5MHMgQ1BVIHRpbWUsIDYuM0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMDE6NDg6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QwMTo0ODowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDY0ODAxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9UQVJHRVQ9Z3Vlc3QtcHZlMDEtbHhjLTExMgoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9SRUFTT049Q1QxMTJfUElQRUxJTkVfRkFJTEVECjIwMjYtMTAtMDNUMDE6NDg6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogTWFpbiBwcm9jZXNzIGV4aXRlZCwgY29kZT1leGl0ZWQsIHN0YXR1cz0yW1BBVEhdCjIwMjYtMTAtMDNUMDE6NDg6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRmFpbGVkIHdpdGggcmVzdWx0ICdleGl0LWNvZGUnLgoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZhaWxlZCB0byBzdGFydCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMTo0ODowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA1LjA4MHMgQ1BVIHRpbWUsIDE3Mi4xTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwNzo0NDoyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwNzo0NDoyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxLjU4MXMgQ1BVIHRpbWUsIDEzNC44TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwODoxNTozMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDA4OjE1OjMyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzExNzA4NDldOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wM1QwODoxNTozNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wM1QwODoxNTozNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDA4OjE1OjM3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMDM4cyBDUFUgdGltZSwgMTcyLjZNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDA4OjU1OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMDg6NTU6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTI5NTM0M106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMjk1MzQzXTogU0NIRURVTEVfREVDSVNJT049REVGRVJfTk9fRFVFX1RBUkdFVAoyMDI2LTEwLTAzVDA4OjU1OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyMTRtcyBDUFUgdGltZSwgMTM0LjJNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDA5OjMzOjEwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMDk6MzM6MTErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTQyNjMyMV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwOTozMzoxMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNDI2MzIxXTogU0NIRURVTEVfREVGRVJfSEVBVllfTE9DS19CVVNZCjIwMjYtMTAtMDNUMDk6MzM6MTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDA5OjMzOjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDA5OjMzOjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDIwNm1zIENQVSB0aW1lLCAxMzQuNk0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMTA6MDg6MDUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QxMDowODowNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNTQxMjU5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDEwOjA4OjE5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTAzXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAxNzg1ODE6MTI2NzAxQUU6NkFDMEE5RTM6dnpkdW1wOjExMDpyb290QHBhbToKMjAyNi0xMC0wM1QxMDowODoxOSswMzowMCBwdmUwMSB2emR1bXBbMTU0MTUwNV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTEwIC0tcHJ1bmUtYmFja3VwcyAna2VlcC1hbGw9MScgLS1sb2Nrd2FpdCAwIC0tdG1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQgLS1ub2RlIHB2ZTAxIC0tbW9kZSBzbmFwc2hvdCAtLXJlbW92ZSAwIC0tc3RkZXhjbHVkZXMgMCAtLWlvbmljZSA3IC0tenN0ZCAxIC0tYndsaW1pdCAzMjc2OAoyMDI2LTEwLTAzVDEwOjA4OjE5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTA1XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDExMCAobHhjKQoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTA1XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDExMCAoMDA6MDI6MTcpCjIwMjYtMTAtMDNUMTA6MTA6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzE1NDE1MDVdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTAzXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMTc4NTgxOjEyNjcwMUFFOjZBQzBBOUUzOnZ6ZHVtcDoxMTA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMTA6MTA6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTU0MTI1OV06IFNDSEVEVUxFX1RBUkdFVD1jdDExMAoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE1NDEyNTldOiBMWENfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo1ODIxMzgyMzksImV4Y2VwdGlvbl9jbGFzcyI6bnVsbCwiZXhjZXB0aW9uX21lc3NhZ2Vfc2hhMjU2IjpudWxsLCJleGVjdXRvciI6ImxvY2FsLXByb3Zlbi1wdmUyNzAiLCJoZWxwZXJfcmMiOjAsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJzdGRlcnJfYnl0ZXNfb2JzZXJ2ZWQiOjEzNjQsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6MTM2NCwic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiI0MDk5Y2VjNjI3MmM4Y2M1NmQ2NDM3MmE3ZDQ3OGM4MzNhNTg0YmM4MzA4MGEwZGM2ZThmYTA0ZWVkN2JhMmM5Iiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMTA6MTE6NDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTU0MTI1OV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTA6MTE6NDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDEwOjExOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDEwOjExOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDQ0Ljc0OXMgQ1BVIHRpbWUsIDVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDEwOjQyOjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTA6NDI6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxMDo0Mzo1MCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNjQzMTM4XTogU0NIRURVTEVfVEFSR0VUPWN0MTExCjIwMjYtMTAtMDNUMTA6NDM6NTArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IExYQ19FWEVDVVRJT05fRElBRz17ImV4ZWN1dG9yIjoicmVtb3RlLWJvdW5kZWQtc3NoLWN3ZC1yb290Iiwibm9kZSI6InB2ZTAyIiwicHJvZHVjZXJfcmMiOjAsInN0ZGVycl9ieXRlc19vYnNlcnZlZCI6OTk0LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjk5NCwic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiI0YjY5YjJjNWY1MDcyNDVmYjU0M2IxYjNhNGZkZDI5ZDk4MmRkM2RiYzA1OGU0OGE1OTRhZWVmNWJmNDc0MDhkIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMTA6NDQ6NDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTA6NDQ6NDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDEwOjQ0OjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDEwOjQ0OjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE0LjI1MnMgQ1BVIHRpbWUsIDkxMC43TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMToxODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDExOjE4OjAyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE3NjQ5NzBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTc2NDk3MF06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMToxODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTkybXMgQ1BVIHRpbWUsIDEzNC42TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMTo1NzoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDExOjU3OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE4ODIwNjRdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTg4MjA2NF06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMTo1NzoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTg5bXMgQ1BVIHRpbWUsIDEzNC41TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMjozNjo1MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDEyOjM2OjUyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIwMDU1NTZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjAwNTU1Nl06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMjozNjo1MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjAxbXMgQ1BVIHRpbWUsIDEzNC4xTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMzowODozMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDEzOjA4OjMyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIxMDY5MDZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjEwNjkwNl06IFNDSEVEVUxFX1RBUkdFVD14Zi1oa21vZHMKMjAyNi0xMC0wM1QxODoxNjoyMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMTA2OTA2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QxODoxNjoyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAxNy4wNDNzIENQVSB0aW1lLCAxLjVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDE4OjE2OjIwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzE0MjkyNF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfUkVTVUxUPUZBSUwKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfUkVBU09OPUNUMTEyX1BJUEVMSU5FX0ZBSUxFRAoyMDI2LTEwLTAzVDE4OjE2OjI1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IE1haW4gcHJvY2VzcyBleGl0ZWQsIGNvZGU9ZXhpdGVkLCBzdGF0dXM9MltQQVRIXQoyMDI2LTEwLTAzVDE4OjE2OjI1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IEZhaWxlZCB3aXRoIHJlc3VsdCAnZXhpdC1jb2RlJy4KMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGYWlsZWQgdG8gc3RhcnQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTg6MTY6MjUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNS4zNTRzIENQVSB0aW1lLCAxNzIuM00gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMTg6NTI6MzIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QxODo1MjozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMjY3MDAwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMyNjcwMDBdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDNUMTg6NTI6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzI2NzAwMF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTg6NTI6NTQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDMuNTM3cyBDUFUgdGltZSwgMTM0LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDE5OjMxOjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTk6MzE6MDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQwODE5Ml06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxOTozMToyMiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ1OF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzQwMjU2OjEyOUE4RTY4OjZBQzEyRERBOnZ6ZHVtcDoxMTI6cm9vdEBwYW06CjIwMjYtMTAtMDNUMTk6MzE6MjIrMDM6MDAgcHZlMDEgdnpkdW1wWzM0MDg0NzBdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDExMiAtLXBydW5lLWJhY2t1cHMgJ2tlZXAtYWxsPTEnIC0tc3RkZXhjbHVkZXMgMCAtLW1vZGUgc25hcHNob3QgLS1pb25pY2UgNyAtLWNvbXByZXNzIHpzdGQgLS1ub2RlIHB2ZTAxIC0tenN0ZCAxIC0tbG9ja3dhaXQgMCAtLXJlbW92ZSAwIC0tdG1wZGlyIFtQQVRIXSAtLWJ3bGltaXQgMzI3NjgKMjAyNi0xMC0wM1QxOTozMToyMiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ3MF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxMTIgKGx4YykKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ3MF06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxMTIgKDAwOjAwOjI0KQoyMDI2LTEwLTAzVDE5OjMxOjQ2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNDA4NDcwXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ1OF06IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDM0MDI1NjoxMjlBOEU2ODo2QUMxMkREQTp2emR1bXA6MTEyOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAzVDE5OjMxOjQ2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0MDgxOTJdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTIKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNDA4MTkyXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MjI0MTI2MDU1LCJleGNlcHRpb25fY2xhc3MiOm51bGwsImV4Y2VwdGlvbl9tZXNzYWdlX3NoYTI1NiI6bnVsbCwiZXhlY3V0b3IiOiJsb2NhbC1wcm92ZW4tcHZlMjcwIiwiaGVscGVyX3JjIjowLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjoxMzY3LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjEzNjcsInN0ZGVycl9zdHJlYW1fc2hhMjU2IjoiZGI1OGJmOTUxNjY1NDhjM2U4M2ZlOWVhZmViZDU1MzJjNjFiOTA3YmVhOWRlMmNmMTNkYTc2Y2ExOTAxZmJhMSIsInN0ZGVycl90cnVuY2F0ZWQiOmZhbHNlfQoyMDI2LTEwLTAzVDE5OjMyOjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0MDgxOTJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDE5OjMyOjIyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QxOTozMjoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QxOTozMjoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyNi4wNzlzIENQVSB0aW1lLCAxLjFHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIwOjAyOjEzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjA6MDI6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMDowMjo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0NIRURVTEVfVEFSR0VUPWN0MTEzCjIwMjYtMTAtMDNUMjA6MDI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IExYQ19FWEVDVVRJT05fRElBRz17ImV4ZWN1dG9yIjoicmVtb3RlLWJvdW5kZWQtc3NoLWN3ZC1yb290Iiwibm9kZSI6InB2ZTAyIiwicHJvZHVjZXJfcmMiOjAsInN0ZGVycl9ieXRlc19vYnNlcnZlZCI6OTk3LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjk5Nywic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiIxMjYzNTA3MzY3MDY1YzA3YmNjYzViOTM5YTU0MzEzZDg3ODE4ODBiZjZiYWY4M2E4NDU0YjE3MDdiODZiNzJmIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIwOjAzOjM2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIwOjAzOjM2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEwLjA2NHMgQ1BVIHRpbWUsIDUxNC43TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMDozMzowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIwOjMzOjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MjgwNzZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTFdOiA8cm9vdEBwYW0+IHN0YXJ0aW5nIHRhc2sgVVBJRDpwdmUwMTowMDM3NUM1MDoxMkEwMzQ1MTo2QUMxM0M1MDp2emR1bXA6MTUwOnJvb3RAcGFtOgoyMDI2LTEwLTAzVDIwOjMzOjA0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTEyXTogSU5GTzogc3RhcnRpbmcgbmV3IGJhY2t1cCBqb2I6IHZ6ZHVtcCAxNTAgLS1jb21wcmVzcyB6c3RkIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90CjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTUwIChxZW11KQoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTEyXTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDE1MCAoMDA6MDA6MTkpCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTExXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMzc1QzUwOjEyQTAzNDUxOjZBQzEzQzUwOnZ6ZHVtcDoxNTA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE1MAoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MjgwNzZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6OTI5ODM2NTA1LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNTB9CjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIwOjM0OjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIwOjM0OjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDI5LjgyNXMgQ1BVIHRpbWUsIDEuNEcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjE6MTA6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMToxMDowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzMwOTIwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtY29kZXZpcGUKMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzMwOTIwXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuNzQxcyBDUFUgdGltZSwgMTUyLjVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIxOjQyOjE4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjE6NDI6MTkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMTo0MzoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0NIRURVTEVfVEFSR0VUPXZtMTkwCjIwMjYtMTAtMDNUMjE6NDM6MTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoxNzg4MTk1Njg1LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxOTB9CjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIxOjQ2OjI3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIxOjQ2OjI3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDM4LjE0MnMgQ1BVIHRpbWUsIDIuMkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjI6MTk6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMjoxOToxNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTU1NDYwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtemFrcnV0aW0KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTU1NDYwXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuOTI4cyBDUFUgdGltZSwgMTY0LjVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIyOjUwOjA2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjI6NTA6MDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDA1NzAyNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwM0RFN0NDOjEyQUNDMEFEOjZBQzE1QzcwOnZ6ZHVtcDoyMTA6cm9vdEBwYW06CjIwMjYtMTAtMDNUMjI6NTA6MDgrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzZdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDIxMCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAyMTAgKHFlbXUpCjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzZdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMjEwICgwMDowMDoxNikKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzRdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzREU3Q0M6MTJBQ0MwQUQ6NkFDMTVDNzA6dnpkdW1wOjIxMDpyb290QHBhbTogT0sKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0NIRURVTEVfVEFSR0VUPXZtMjEwCjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDA1NzAyNl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo3MDI0NTUxMzYsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjIxMH0KMjAyNi0xMC0wM1QyMjo1MTozNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMjo1MTozNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjI6NTE6MzUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjI6NTE6MzUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjMuODM5cyBDUFUgdGltZSwgMS4yRyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMzoyNzowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIzOjI3OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQxNzA0NTNdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjM6Mjc6MzUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDE3MDQ1M106IFNDSEVEVUxFX1RBUkdFVD12bTIxMQoyMDI2LTEwLTAzVDIzOjI3OjM1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQxNzA0NTNdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6NjQ2NzIxODMxLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoyMTF9CjIwMjYtMTAtMDNUMjM6Mjg6NDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDE3MDQ1M106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjM6Mjg6NDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIzOjI4OjQ5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIzOjI4OjQ5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE3LjE3NnMgQ1BVIHRpbWUsIDEuMkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMDA6MDI6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQwMDowMjowMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMDQxNzJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMDA6MDI6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzEwNDIyMl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMDE5NzFGOjEyQjM1NjVFOjZBQzE2RDRCOnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMDA6MDI6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzEwNDIyM106IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1jb21wcmVzcyB6c3RkIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTA0VDAwOjAyOjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxMDQyMjNdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcwIChxZW11KQoyMDI2LTEwLTA0VDAwOjAzOjQ2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxMDQyMjNdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMTo0MykKMjAyNi0xMC0wNFQwMDowMzo0NiswMzowMCBwdmUwMSB2emR1bXBbMTA0MjIzXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNFQwMDowMzo0NiswMzowMCBwdmUwMSB2emR1bXBbMTA0MjIyXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMDE5NzFGOjEyQjM1NjVFOjZBQzE2RDRCOnZ6ZHVtcDoxNzA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDRUMDA6MDM6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTA0MTcyXTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDRUMDA6MDM6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTA0MTcyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg1MDE3Mjc4NjYsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMDQxNzJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDAwOjE1OjIwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDIyLjg1NHMgQ1BVIHRpbWUsIDUuN0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMDA6NDA6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQwMDo0MDowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMjM0MTJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMDA6NDA6MDgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjIzNDEyXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMjM0MTJdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDAwOjQwOjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIyMzQxMl06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMDA6NDA6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDAwOjQwOjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjIwcyBDUFUgdGltZSwgMTcyLjhNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDAxOjE5OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMDE6MTk6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ0NDg5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0NDQ4OV06IFNDSEVEVUxFX1RBUkdFVD1jb250cm9sLWJvb3RzdHJhcC12MgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0NDQ4OV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDRUMDE6MTk6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEuNTc1cyBDUFUgdGltZSwgMTM0LjNNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE1OjI4OjIyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE4M21zIENQVSB0aW1lLCAxMzUuMU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMTY6MDQ6NTMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQxNjowNDo1MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTA1NDIyXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjA1OjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODM3XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzNTdFQjk6MTMwQjgyOTk6NkFDMjRGMDQ6dnpkdW1wOjExMjpyb290QHBhbToKMjAyNi0xMC0wNFQxNjowNTowOCswMzowMCBwdmUwMSB2emR1bXBbMzUwNTg0OV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTEyIC0tbW9kZSBzbmFwc2hvdCAtLXBydW5lLWJhY2t1cHMgJ2tlZXAtYWxsPTEnIC0taW9uaWNlIDcgLS1id2xpbWl0IDMyNzY4IC0tenN0ZCAxIC0tbm9kZSBwdmUwMSAtLXRtcGRpciBbUEFUSF0gLS1zdGRleGNsdWRlcyAwIC0tcmVtb3ZlIDAgLS1sb2Nrd2FpdCAwIC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTA0VDE2OjA1OjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODQ5XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDExMiAobHhjKQoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODQ5XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDExMiAoMDA6MDA6MjMpCjIwMjYtMTAtMDRUMTY6MDU6MzErMDM6MDAgcHZlMDEgdnpkdW1wWzM1MDU4NDldOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODM3XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMzU3RUI5OjEzMEI4Mjk5OjZBQzI0RjA0OnZ6ZHVtcDoxMTI6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDRUMTY6MDU6MzErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUwNTQyMl06IFNDSEVEVUxFX1RBUkdFVD1jdDExMgoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM1MDU0MjJdOiBMWENfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoyMjQxMzkzMTYsImV4Y2VwdGlvbl9jbGFzcyI6bnVsbCwiZXhjZXB0aW9uX21lc3NhZ2Vfc2hhMjU2IjpudWxsLCJleGVjdXRvciI6ImxvY2FsLXByb3Zlbi1wdmUyNzAiLCJoZWxwZXJfcmMiOjAsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJzdGRlcnJfYnl0ZXNfb2JzZXJ2ZWQiOjEzNjcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6MTM2Nywic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiJiNjA5YmY4MWZjNDY3NGYyNjYxOTg1OTc2NmQ0MTY0MmI1MTAwNzRkNGQxMTE0YmE3MmM4ZjliOTk3ZGNmNzMxIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDRUMTY6MDY6MTErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUwNTQyMl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDRUMTY6MDY6MTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA0VDE2OjA2OjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDE2OjA2OjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDI2LjYyM3MgQ1BVIHRpbWUsIDEuMUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMTY6Mzc6NDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQxNjozNzo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjM4OjI3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MDY3MjldOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wNFQxNjozODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjY0ZWE0YTVmYWY1MmUxMGYxMmJmNzU3MmRkYWYyZjMxM2M5MmNjZDc0MjZmYzA5OGYzMzkyMWM0OTM1MTQxZWIiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMjI1cyBDUFUgdGltZSwgNTE1LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE3OjE2OjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzhFNTJBOjEzMTIxNEQ5OjZBQzI1RkQ2OnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90IC0tZHVtcGRpciBbUEFUSF0KMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMCkKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzOEU1MkE6MTMxMjE0RDk6NkFDMjVGRDY6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MzMyMzIyNTMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuNjcwcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNFQxNzo0ODoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA0VDE3OjQ4OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMTc6NDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgyOTg2Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTA0VDE3OjQ5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc4MzUwNDEyOCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC45NTdzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE4OjIxOjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTg6MjE6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzkzMDQ5N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTMwNDk3XTogU0NIRURVTEVfVEFSR0VUPXhmLWhrbW9kcwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5MzA0OTddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDE4LjQyMHMgQ1BVIHRpbWUsIDEuNUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMjM6Mjk6MjQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNzU4NDAxXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzc1ODQwMV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjAxcyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNVQwMDowODowNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA1VDAwOjA4OjA1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzg4MTQ5OF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls4ODE0OThdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbODgxNDk4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMy41MzRzIENQVSB0aW1lLCAxMzUuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDVUMDA6NDA6NTMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNVQwMDo0MDo1NCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls5ODE2MzldOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDVUMDA6NDA6NTUrMDM6MDAgcHZlMDEgdnpkdW1wWzk4MTc2OV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMEVGQzAzOjEzM0FCQjNBOjZBQzJDN0U3OnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDVUMDA6NDA6NTUrMDM6MDAgcHZlMDEgdnpkdW1wWzk4MjAxOV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tbW9kZSBzbmFwc2hvdCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXQoyMDI2LTEwLTA1VDAwOjQwOjU1KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs5ODIwMTldOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcwIChxZW11KQoyMDI2LTEwLTA1VDAwOjQzOjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFs5ODIwMTldOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMjowOCkKMjAyNi0xMC0wNVQwMDo0MzowMyswMzowMCBwdmUwMSB2emR1bXBbOTgyMDE5XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNVQwMDo0MzowMyswMzowMCBwdmUwMSB2emR1bXBbOTgxNzY5XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMEVGQzAzOjEzM0FCQjNBOjZBQzJDN0U3OnZ6ZHVtcDoxNzA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDVUMDA6NDM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbOTgxNjM5XTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDVUMDA6NDM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbOTgxNjM5XTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg1NDQwNzgyNDksImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls5ODE2MzldOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA1VDAwOjU0OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDIzLjY0NXMgQ1BVIHRpbWUsIDYuNkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDVUMDE6MTk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNVQwMToxOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMTA0OTkzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA1VDAxOjMxOjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzExMDQ5OTNdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtY29kZXZpcGUKMjAyNi0xMC0wNVQwMTozMToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMTA0OTkzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMTozMToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDVUMDE6MzE6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDVUMDE6MzE6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuNzUxcyBDUFUgdGltZSwgMTUyLjZNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAxOjUwOjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDE6NTA6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMTo1MDozMyswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMTI2QzE5OjEzNDExQjRGOjZBQzJEODM5OnZ6ZHVtcDoxNzE6cm9vdEBwYW06CjIwMjYtMTAtMDVUMDE6NTA6MzMrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjFdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MSAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wNVQwMTo1MDozMyswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMV06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzEgKHFlbXUpCjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjFdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcxICgwMDowMDo0NSkKMjAyNi0xMC0wNVQwMTo1MToxOCswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMV06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjBdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAxMjZDMTk6MTM0MTFCNEY6NkFDMkQ4Mzk6dnpkdW1wOjE3MTpyb290QHBhbTogT0sKMjAyNi0xMC0wNVQwMTo1MToxOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMjA3MzA2XTogU0NIRURVTEVfVEFSR0VUPXZtMTcxCjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoyMDczMjUzNDY4LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNzF9CjIwMjYtMTAtMDVUMDE6NTQ6MTUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDVUMDE6NTQ6MTUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA1VDAxOjU0OjE1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA1VDAxOjU0OjE1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDFtaW4gNS41NTVzIENQVSB0aW1lLCAyLjVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDI6MjI6NDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTMwNzI4MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMjoyMjo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMzA3MjgxXTogU0NIRURVTEVfREVGRVJfSEVBVllfTE9DS19CVVNZCjIwMjYtMTAtMDVUMDI6MjI6NDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE5NW1zIENQVSB0aW1lLCAxMzVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAyOjU1OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDI6NTU6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTQwNjkyNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1M= +VM150_CONTEXT_SUCCESS_COUNT=71 +VM150_CONTEXT_FAIL_COUNT=12 +VM150_CONTEXT_QEMU_DIAG_COUNT=40 +VM150_CONTEXT_RCLONE_COUNT=0 +VM150_CONTEXT_TRANSPORT_COUNT=0 +VM150_CONTEXT_SEAL_COUNT=0 +VM150_CONTEXT_CLOUD_COUNT=0 +VM150_CONTEXT_RESTORE_COUNT=0 +BACKUP_RELATED_UNIT_COUNT=10 +PIPELINE_UNIT_NAME_SHA256=b8eeae6c048d6e401ebcf7951145c024e4cebb66f701a75b6bedc0ed70326cc3 +PIPELINE_UNIT_BASENAME=homelab-app-cloud-quorum-queue.service +PIPELINE_UNIT_CAT_SHA256=def48fe13ac2c20120f6215613b1cfad3c64185fb5095c02b710c0d0af11d497 +PIPELINE_UNIT_NAME_SHA256=f7ebb46817be0d2ca602ff792db760e5100ebd17cf613fee1488b6009f534676 +PIPELINE_UNIT_BASENAME=homelab-backup-retention-gc.service +PIPELINE_UNIT_CAT_SHA256=9e49c4d868e8f86929b072504016c1f91622aa1374e11b69ff0eef3f82e136d3 +PIPELINE_UNIT_NAME_SHA256=cf2099570f34c3eec77986ea6c8f58d00adc03504be62548c99c1cad10249761 +PIPELINE_UNIT_BASENAME=homelab-backup-v2.service +PIPELINE_UNIT_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d +PIPELINE_UNIT_NAME_SHA256=e613711e04351edbd7fade15d9f0aa23080465e824ac762fbb3cc31d5ffb9176 +PIPELINE_UNIT_BASENAME=homelab-control-backup.service +PIPELINE_UNIT_CAT_SHA256=01c8bdb663674d7055ec1da4cb26f27bf475bef71edb94e2d18483077d8a4aae +PIPELINE_UNIT_NAME_SHA256=33f33cbd9e5e9a7ce7b5b8f7ad04991a8631a079cc763ea0103fde0501f6192d +PIPELINE_UNIT_BASENAME=homelab-evidence-seal.service +PIPELINE_UNIT_CAT_SHA256=c6ed66924e867ba54b7685e61b2788a63101bc76d7bb40f648c2f7149aa36aa4 +PIPELINE_UNIT_NAME_SHA256=a45f9fb9d002c20213a190104c8e9139b3dcdb7ab3eed8078244530965405ae8 +PIPELINE_UNIT_BASENAME=homelab-router-running-config-mail-cloud.service +PIPELINE_UNIT_CAT_SHA256=e2624acfa2b1757fdf6b819fafb2411cd5eeb324813ba49fbd334c3929d5d02c +PIPELINE_UNIT_NAME_SHA256=601009fd48bf10f4b424e94615e9564b320bff2999e72e990d6038e3bca4cb2e +PIPELINE_UNIT_BASENAME=homelab-vm-cloud-quorum-queue.service +PIPELINE_UNIT_CAT_SHA256=fc223bc12e20ef21b0d42cba13aa3768302ecdf5d43c343048489a7d380236d4 +PUBLIC_DNS_OK_COUNT=3 +PUBLIC_HTTPS_OK_COUNT=3 +BACKUP_PIPELINE_RCA_COMPLETE=true +DECISION=ANALYZE_EXACT_99593_PIPELINE_ENTRYPOINT +NEXT_GATE=VM150_FRESH_DUAL_CLOUD_BACKUP_AND_RESTORE +TASK_RESULT=SNIKKET_VM150_BACKUP_PIPELINE_RCA +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index d5474668..695378ab 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-261005-SNIKKET-VM150-BACKUP-FRESHNESS-RCA-99592R1", + "command_id": "SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "snikket-vm150-backup-freshness-rca", - "started_at_utc": "2026-10-05T08:56:33Z", - "finished_at_utc": "2026-10-05T08:56:37Z", + "component": "snikket-vm150-backup-pipeline-rca", + "started_at_utc": "2026-10-05T09:01:30Z", + "finished_at_utc": "2026-10-05T09:01:36Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "053df7b604913d2dc8be79cdc4b2783bbad49db347dca59aa0e31e811066871b", + "command_sha256": "fa63ff895da7ac1a4849b7dfe5ef876de998332951253b342bd18a20683391ab", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "c6780ff113f2dca2069c03a2c48882a4bdb29ffe386b9e7f558a1d420c8dc78c", - "sanitized_output_sha256": "c6780ff113f2dca2069c03a2c48882a4bdb29ffe386b9e7f558a1d420c8dc78c", - "output_truncated_in_json": false, + "raw_evidence_sha256": "dd3644f0d18f852c97cab7c2519a22789989cbe57ec7b30661b53cacb78363ac", + "sanitized_output_sha256": "bb1a4159fb966baac410cfc19986b6c53a847a83e0d9e74a555313dbe760148c", + "output_truncated_in_json": true, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "SNIKKET_VM150_BACKUP_FRESHNESS_RCA_WRAPPER=V1\nHOST_PVE01=true\nINGRESS_HOSTKEY_SELF_BOUND=true\nMODE=read-only\nNO_VM_MUTATION=true\nNO_BACKUP_MUTATION=true\nNO_REMOTE_MUTATION=true\nNO_STATE_MUTATION=true\nNO_DNS_MUTATION=true\nNO_MONITOR_MUTATION=true\nFRESHNESS_PYTHON_RC=0\nPROD_VM150_RUNNING=true\nPROD_VM150_QGA=true\nPOLICY_CANDIDATE_COUNT=1\nVM150_TARGET_COUNT=1\nVM150_TARGET_VALID=true\nROTATING_MODULE_IMPORTED=true\nEXPORT_STATE_OK=true\nEXPORT_GENERATION_PRESENT=true\nEXPORT_GENERATION=vm150-pve01-20260904T053517Z\nEXPORT_GENERATION_AGE_HOURS=747.35\nEXPORT_ARCHIVE_SIZE_BYTES=887338816\nEXPORT_PART_COUNT=2\nEXPORT_REMOTE_A_VALID=true\nEXPORT_REMOTE_A_PARTS=2\nEXPORT_REMOTE_B_VALID=true\nEXPORT_REMOTE_B_PARTS=2\nVM150_LOCAL_JSON_CANDIDATE_COUNT=116\nLOCAL_1_BASENAME=backup-audit.json\nLOCAL_1_PATH_SHA256=091a828db6ee335d0272a370019f274a88f3a0fa4c9fd92d268358a3674f0b1d\nLOCAL_1_MTIME_AGE_HOURS=0.22\nLOCAL_1_GENERATION=HASH:6880f3e6791a1f3a856ebd005cf4109bf06e96b230911a2e678c35bb24b4fcd4\nLOCAL_1_GEN_AGE_HOURS=8.44\nLOCAL_1_STATUS=GREEN\nLOCAL_2_BASENAME=backup-audit-v2.json\nLOCAL_2_PATH_SHA256=e520cdf4c0a133ac68165ccf96f4bec1031f4d7a3e7bddccf5c84aea2a26cad7\nLOCAL_2_MTIME_AGE_HOURS=0.22\nLOCAL_2_GENERATION=HASH:6880f3e6791a1f3a856ebd005cf4109bf06e96b230911a2e678c35bb24b4fcd4\nLOCAL_2_GEN_AGE_HOURS=8.44\nLOCAL_2_STATUS=GREEN\nLOCAL_3_BASENAME=targets.json\nLOCAL_3_PATH_SHA256=2f97838a94d9466163297d47d72c9c2e903a12cfb344abc58ff33fcbbae05528\nLOCAL_3_MTIME_AGE_HOURS=36.01\nLOCAL_4_BASENAME=vm150-pve01-20260903T023609Z.json\nLOCAL_4_PATH_SHA256=a8d063a7f40a4bce8f0f8bb43d29f032fb5771ef6cd54d26fcae79a47dddc704\nLOCAL_4_MTIME_AGE_HOURS=320.52\nLOCAL_4_GENERATION=vm150-pve01-20260903T023609Z\nLOCAL_4_GEN_AGE_HOURS=774.34\nLOCAL_4_STATUS=DONE\nLOCAL_5_BASENAME=vm150-pve01-20260904T053517Z.json\nLOCAL_5_PATH_SHA256=efad5cd2aee419fd80f4308fd06a30e54426d4bd98793b8cedea8fa9bb27ca38\nLOCAL_5_MTIME_AGE_HOURS=747.31\nLOCAL_5_GENERATION=vm150-pve01-20260904T053517Z\nLOCAL_5_GEN_AGE_HOURS=747.36\nLOCAL_5_RESULT=OK\nLOCAL_6_BASENAME=vm150-pve01-20260904T053517Z.json\nLOCAL_6_PATH_SHA256=7adac9913435c445ce775f7f45aab219a1ef179461f3a46061617f6550d9f1d8\nLOCAL_6_MTIME_AGE_HOURS=747.32\nLOCAL_6_GENERATION=vm150-pve01-20260904T053517Z\nLOCAL_6_GEN_AGE_HOURS=747.36\nLOCAL_6_STATUS=SEALED\nLOCAL_6_CLOUD_QUORUM=2\nLOCAL_6_CLOUD_A_VERIFIED=true\nLOCAL_6_CLOUD_B_VERIFIED=true\nLOCAL_6_PART_HASHES_VERIFIED=true\nLOCAL_6_SEAL_WRITTEN=true\nLOCAL_6_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_6_LOCAL_CLEANUP=OK\nLOCAL_6_ARCHIVE_SIZE_BYTES=887338816\nLOCAL_6_PART_COUNT=2\nLOCAL_7_BASENAME=vm150-pve01-20260902T003622Z.json\nLOCAL_7_PATH_SHA256=5c1e7747144c0b33d9a1bc8b5908c9de343759b0c91587096e06d305fc7ff138\nLOCAL_7_MTIME_AGE_HOURS=752.44\nLOCAL_7_GENERATION=vm150-pve01-20260902T003622Z\nLOCAL_7_GEN_AGE_HOURS=800.34\nLOCAL_7_STATUS=DONE\nLOCAL_8_BASENAME=vm150-pve01-20260902T134020Z.json\nLOCAL_8_PATH_SHA256=bf3de53f843a0de30eef4838950c1def4d8d38491aae6cfa84e54eb07d028e65\nLOCAL_8_MTIME_AGE_HOURS=752.44\nLOCAL_8_GENERATION=vm150-pve01-20260902T134020Z\nLOCAL_8_GEN_AGE_HOURS=787.27\nLOCAL_8_STATUS=DONE\nLOCAL_9_BASENAME=vm150-pve01-20260903T163557Z.json\nLOCAL_9_PATH_SHA256=490cb5fb334b0fe267cc10283df8b51851b37403c9da4c04068949fb8fd78d1c\nLOCAL_9_MTIME_AGE_HOURS=760.29\nLOCAL_9_GENERATION=vm150-pve01-20260903T163557Z\nLOCAL_9_GEN_AGE_HOURS=760.34\nLOCAL_9_RESULT=OK\nLOCAL_10_BASENAME=vm150-pve01-20260903T163557Z.json\nLOCAL_10_PATH_SHA256=69aa2c3964c59caca61cd551e3b70e00f0a633a9e1d64c94f25bb14d5ae5b32c\nLOCAL_10_MTIME_AGE_HOURS=760.3\nLOCAL_10_GENERATION=vm150-pve01-20260903T163557Z\nLOCAL_10_GEN_AGE_HOURS=760.34\nLOCAL_10_STATUS=SEALED\nLOCAL_10_CLOUD_QUORUM=2\nLOCAL_10_CLOUD_A_VERIFIED=true\nLOCAL_10_CLOUD_B_VERIFIED=true\nLOCAL_10_PART_HASHES_VERIFIED=true\nLOCAL_10_SEAL_WRITTEN=true\nLOCAL_10_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_10_LOCAL_CLEANUP=OK\nLOCAL_10_ARCHIVE_SIZE_BYTES=892033158\nLOCAL_10_PART_COUNT=2\nLOCAL_11_BASENAME=vm150-pve01-20260903T023609Z.json\nLOCAL_11_PATH_SHA256=e39e01b8035f5baca1c53b1080423328febdfe29bc6e5cd681aef84e400c8a8d\nLOCAL_11_MTIME_AGE_HOURS=774.29\nLOCAL_11_GENERATION=vm150-pve01-20260903T023609Z\nLOCAL_11_GEN_AGE_HOURS=774.34\nLOCAL_11_RESULT=OK\nLOCAL_12_BASENAME=vm150-pve01-20260903T023609Z.json\nLOCAL_12_PATH_SHA256=f62ae052c989169ee85af087628f4a00075af8872474da6db8e6f42e1cf0c35d\nLOCAL_12_MTIME_AGE_HOURS=774.3\nLOCAL_12_GENERATION=vm150-pve01-20260903T023609Z\nLOCAL_12_GEN_AGE_HOURS=774.34\nLOCAL_12_STATUS=SEALED\nLOCAL_12_CLOUD_QUORUM=2\nLOCAL_12_CLOUD_A_VERIFIED=true\nLOCAL_12_CLOUD_B_VERIFIED=true\nLOCAL_12_PART_HASHES_VERIFIED=true\nLOCAL_12_SEAL_WRITTEN=true\nLOCAL_12_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_12_LOCAL_CLEANUP=OK\nLOCAL_12_ARCHIVE_SIZE_BYTES=890940072\nLOCAL_12_PART_COUNT=2\nLOCAL_13_BASENAME=vm150-pve01-20260901T103753Z.json\nLOCAL_13_PATH_SHA256=25c86372ed373aaafe0a6cfdf95e3011ad3dd464d52b57a09a9dc0d9750114f6\nLOCAL_13_MTIME_AGE_HOURS=776.36\nLOCAL_13_GENERATION=vm150-pve01-20260901T103753Z\nLOCAL_13_GEN_AGE_HOURS=814.31\nLOCAL_13_STATUS=DONE\nLOCAL_14_BASENAME=vm150-pve01-20260902T134020Z.json\nLOCAL_14_PATH_SHA256=4e2bf58cf003f9d792ca892af124e65d08132b49a7942013a5c1ad6035178918\nLOCAL_14_MTIME_AGE_HOURS=787.22\nLOCAL_14_GENERATION=vm150-pve01-20260902T134020Z\nLOCAL_14_GEN_AGE_HOURS=787.27\nLOCAL_14_RESULT=OK\nLOCAL_15_BASENAME=vm150-pve01-20260902T134020Z.json\nLOCAL_15_PATH_SHA256=15506e5235ff1a6c4b5a9a119c89d88b801edaf45ec36dd6d34e121e0b6cffd7\nLOCAL_15_MTIME_AGE_HOURS=787.23\nLOCAL_15_GENERATION=vm150-pve01-20260902T134020Z\nLOCAL_15_GEN_AGE_HOURS=787.27\nLOCAL_15_STATUS=SEALED\nLOCAL_15_CLOUD_QUORUM=2\nLOCAL_15_CLOUD_A_VERIFIED=true\nLOCAL_15_CLOUD_B_VERIFIED=true\nLOCAL_15_PART_HASHES_VERIFIED=true\nLOCAL_15_SEAL_WRITTEN=true\nLOCAL_15_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_15_LOCAL_CLEANUP=OK\nLOCAL_15_ARCHIVE_SIZE_BYTES=893826325\nLOCAL_15_PART_COUNT=2\nLOCAL_16_BASENAME=vm150-pve01-20260902T003622Z.json\nLOCAL_16_PATH_SHA256=0eb5d296516657ca0bb484aa1a8ed0e75adf2aa7f4d9d9657e6b4f41a082ef93\nLOCAL_16_MTIME_AGE_HOURS=800.29\nLOCAL_16_GENERATION=vm150-pve01-20260902T003622Z\nLOCAL_16_GEN_AGE_HOURS=800.34\nLOCAL_16_RESULT=OK\nLOCAL_17_BASENAME=vm150-pve01-20260902T003622Z.json\nLOCAL_17_PATH_SHA256=f7a84691ac78b962f81f7b6343de5279cb774788e9b959f2d8aa403374170ac3\nLOCAL_17_MTIME_AGE_HOURS=800.3\nLOCAL_17_GENERATION=vm150-pve01-20260902T003622Z\nLOCAL_17_GEN_AGE_HOURS=800.34\nLOCAL_17_STATUS=SEALED\nLOCAL_17_CLOUD_QUORUM=2\nLOCAL_17_CLOUD_A_VERIFIED=true\nLOCAL_17_CLOUD_B_VERIFIED=true\nLOCAL_17_PART_HASHES_VERIFIED=true\nLOCAL_17_SEAL_WRITTEN=true\nLOCAL_17_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_17_LOCAL_CLEANUP=OK\nLOCAL_17_ARCHIVE_SIZE_BYTES=892456475\nLOCAL_17_PART_COUNT=2\nLOCAL_18_BASENAME=vm150-pve01-20260830T063610Z.json\nLOCAL_18_PATH_SHA256=1fc33e47ebf31c5ef4bba93d332ec6e11bd3476d1baf5ed62a0cf0546e0cf6be\nLOCAL_18_MTIME_AGE_HOURS=800.51\nLOCAL_18_GENERATION=vm150-pve01-20260830T063610Z\nLOCAL_18_GEN_AGE_HOURS=866.34\nLOCAL_18_STATUS=DONE\nLOCAL_19_BASENAME=vm150-pve01-20260831T093800Z.json\nLOCAL_19_PATH_SHA256=3a99d66a1f0199429e3aa558e16916279295a99022a109b8e0bc6e2a3c67a587\nLOCAL_19_MTIME_AGE_HOURS=800.51\nLOCAL_19_GENERATION=vm150-pve01-20260831T093800Z\nLOCAL_19_GEN_AGE_HOURS=839.31\nLOCAL_19_STATUS=DONE\nLOCAL_20_BASENAME=vm150-pve01-20260901T103753Z.json\nLOCAL_20_PATH_SHA256=53532b6be1d08637ff25a37e99b7404393e5fa1c94014c8115dc54f8bfe45fb2\nLOCAL_20_MTIME_AGE_HOURS=814.26\nLOCAL_20_GENERATION=vm150-pve01-20260901T103753Z\nLOCAL_20_GEN_AGE_HOURS=814.31\nLOCAL_20_RESULT=OK\nLOCAL_21_BASENAME=vm150-pve01-20260901T103753Z.json\nLOCAL_21_PATH_SHA256=d43415b966d396f138c5bc9933f26afb464f76d70f2e0776cf8c672c459ebe0e\nLOCAL_21_MTIME_AGE_HOURS=814.27\nLOCAL_21_GENERATION=vm150-pve01-20260901T103753Z\nLOCAL_21_GEN_AGE_HOURS=814.31\nLOCAL_21_STATUS=SEALED\nLOCAL_21_CLOUD_QUORUM=2\nLOCAL_21_CLOUD_A_VERIFIED=true\nLOCAL_21_CLOUD_B_VERIFIED=true\nLOCAL_21_PART_HASHES_VERIFIED=true\nLOCAL_21_SEAL_WRITTEN=true\nLOCAL_21_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_21_LOCAL_CLEANUP=OK\nLOCAL_21_ARCHIVE_SIZE_BYTES=893552455\nLOCAL_21_PART_COUNT=2\nLOCAL_22_BASENAME=vm150-pve01-20260831T214108Z.json\nLOCAL_22_PATH_SHA256=4cef09ec110b2ce4e76a9762ce254c3f6fb7a73cd33af5b89842e9e531784848\nLOCAL_22_MTIME_AGE_HOURS=827.22\nLOCAL_22_GENERATION=vm150-pve01-20260831T214108Z\nLOCAL_22_GEN_AGE_HOURS=827.26\nLOCAL_22_RESULT=OK\nLOCAL_23_BASENAME=vm150-pve01-20260831T214108Z.json\nLOCAL_23_PATH_SHA256=f97057f756c185bdcc95184e48810c96566547a1e90d39e8c21b5050bd1410cc\nLOCAL_23_MTIME_AGE_HOURS=827.23\nLOCAL_23_GENERATION=vm150-pve01-20260831T214108Z\nLOCAL_23_GEN_AGE_HOURS=827.26\nLOCAL_23_STATUS=SEALED\nLOCAL_23_CLOUD_QUORUM=2\nLOCAL_23_CLOUD_A_VERIFIED=true\nLOCAL_23_CLOUD_B_VERIFIED=true\nLOCAL_23_PART_HASHES_VERIFIED=true\nLOCAL_23_SEAL_WRITTEN=true\nLOCAL_23_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_23_LOCAL_CLEANUP=OK\nLOCAL_23_ARCHIVE_SIZE_BYTES=893057662\nLOCAL_23_PART_COUNT=2\nLOCAL_24_BASENAME=vm150-pve01-20260831T093800Z.json\nLOCAL_24_PATH_SHA256=58a804c36501e62ca91cf1c3ab96a0c173f37c8d477f24306594be04a0678972\nLOCAL_24_MTIME_AGE_HOURS=839.26\nLOCAL_24_GENERATION=vm150-pve01-20260831T093800Z\nLOCAL_24_GEN_AGE_HOURS=839.31\nLOCAL_24_RESULT=OK\nLOCAL_25_BASENAME=vm150-pve01-20260831T093800Z.json\nLOCAL_25_PATH_SHA256=c6b572c6afa56aa407b04103f83cbe6ff191228a07f74c054f6cfb4f058d514e\nLOCAL_25_MTIME_AGE_HOURS=839.27\nLOCAL_25_GENERATION=vm150-pve01-20260831T093800Z\nLOCAL_25_GEN_AGE_HOURS=839.31\nLOCAL_25_STATUS=SEALED\nLOCAL_25_CLOUD_QUORUM=2\nLOCAL_25_CLOUD_A_VERIFIED=true\nLOCAL_25_CLOUD_B_VERIFIED=true\nLOCAL_25_PART_HASHES_VERIFIED=true\nLOCAL_25_SEAL_WRITTEN=true\nLOCAL_25_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_25_LOCAL_CLEANUP=OK\nLOCAL_25_ARCHIVE_SIZE_BYTES=890298477\nLOCAL_25_PART_COUNT=2\nLOCAL_26_BASENAME=vm150-pve01-20260829T043615Z.json\nLOCAL_26_PATH_SHA256=5ba15904869d47a4b88484588fdf6077dae036698e5218c41a6a7efd964c60ff\nLOCAL_26_MTIME_AGE_HOURS=848.51\nLOCAL_26_GENERATION=vm150-pve01-20260829T043615Z\nLOCAL_26_GEN_AGE_HOURS=892.34\nLOCAL_26_STATUS=DONE\nLOCAL_27_BASENAME=vm150-pve01-20260829T173717Z.json\nLOCAL_27_PATH_SHA256=f3c919314a16855b1983d0e484999af252952a59d3672d848a14021972b9645f\nLOCAL_27_MTIME_AGE_HOURS=848.51\nLOCAL_27_GENERATION=vm150-pve01-20260829T173717Z\nLOCAL_27_GEN_AGE_HOURS=879.32\nLOCAL_27_STATUS=DONE\nLOCAL_28_BASENAME=vm150-pve01-20260830T203628Z.json\nLOCAL_28_PATH_SHA256=480382928bcffc5e2900de44b8cc219dcf8c19821dc10233c83f03a479641989\nLOCAL_28_MTIME_AGE_HOURS=852.28\nLOCAL_28_GENERATION=vm150-pve01-20260830T203628Z\nLOCAL_28_GEN_AGE_HOURS=852.34\nLOCAL_28_RESULT=OK\nLOCAL_29_BASENAME=vm150-pve01-20260830T203628Z.json\nLOCAL_29_PATH_SHA256=8f41a984b6185ed5e4b2c2d9e65d4d1cb07e42a097bb0dd401855eac63ed43dd\nLOCAL_29_MTIME_AGE_HOURS=852.29\nLOCAL_29_GENERATION=vm150-pve01-20260830T203628Z\nLOCAL_29_GEN_AGE_HOURS=852.34\nLOCAL_29_STATUS=SEALED\nLOCAL_29_CLOUD_QUORUM=2\nLOCAL_29_CLOUD_A_VERIFIED=true\nLOCAL_29_CLOUD_B_VERIFIED=true\nLOCAL_29_PART_HASHES_VERIFIED=true\nLOCAL_29_SEAL_WRITTEN=true\nLOCAL_29_LOCAL_PAYLOAD_PRESENT=false\nLOCAL_29_LOCAL_CLEANUP=OK\nLOCAL_29_ARCHIVE_SIZE_BYTES=995293934\nLOCAL_29_PART_COUNT=2\nLOCAL_30_BASENAME=vm150-pve01-20260830T063610Z.json\nLOCAL_30_PATH_SHA256=af519b9ec9a59ef1b30417a2c789295ac48e9ce777596520cdd73cb2daadf5ba\nLOCAL_30_MTIME_AGE_HOURS=866.29\nLOCAL_30_GENERATION=vm150-pve01-20260830T063610Z\nLOCAL_30_GEN_AGE_HOURS=866.34\nLOCAL_30_RESULT=OK\nVM150_JOURNAL_MATCH_LINE_COUNT=20\nVM150_JOURNAL_CONTEXT_SHA256=3f4c2363a3cd9bdde8ba251dacc3b9c48379cd3a0d16b031da0a3d61d9d7e297\nVM150_JOURNAL_CONTEXT_B64=MjAyNi0wOS0zMFQyMjozMTo1MSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTA5LTMwVDIyOjMyOjQxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzOTQ1MjFdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0wOS0zMFQyMjozMjo0MSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6ImMzNDdmNGUzNTgxYTUzMjIwYTJhMTM1ZGM3MmY5ZDhjMGQzNTI0ZWQ1NzlkMWMyYWMwMjYxNzIzY2ZiZTU3YWUiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0wOS0zMFQyMjozMzoxMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0wOS0zMFQyMjozMzoxMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMDktMzBUMjI6MzM6MTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMDktMzBUMjI6MzM6MTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuNDYycyBDUFUgdGltZSwgNTE1LjJNIG1lbW9yeSBwZWFrLgoyMDI2LTA5LTMwVDIzOjA5OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMDktMzBUMjM6MDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUwODc0MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0wOS0zMFQyMzowOToxNyswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMjY0N0U0OjExMjJGRkFCOjZBQkQ2QzZEOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMDktMzBUMjM6MDk6MTcrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0wOS0zMFQyMzowOToxNyswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoxOSkKMjAyNi0wOS0zMFQyMzowOTozNiswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyNjQ3RTQ6MTEyMkZGQUI6NkFCRDZDNkQ6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0wOS0zMFQyMzowOTozNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTA4NzQxXTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUwODc0MV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MjMxODA3MTgsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0wOS0zMFQyMzoxMTowMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTA4NzQxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0wOS0zMFQyMzoxMTowMSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMDktMzBUMjM6MTE6MDErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMDktMzBUMjM6MTE6MDErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjguNzQzcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0wOS0zMFQyMzo0NDo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTA5LTMwVDIzOjQ0OjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI2MjEwMTRdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0wOS0zMFQyMzo0NDo0NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0wOS0zMFQyMzo0NDo0NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTA5LTMwVDIzOjQ0OjQ3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjU4cyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMVQwMDoxOToyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAxVDAwOjE5OjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDFUMDA6MjA6MjIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjczMDcyN106IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTAxVDAwOjIwOjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc5NTM5ODYyMCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTAxVDAwOjIyOjUxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAxVDAwOjIyOjUxKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMVQwMDoyMjo1MSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQwMDoyMjo1MSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC41ODBzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDAwOjUxOjUyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMDA6NTE6NTIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQwMDo1MTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzNl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkIzMEM5OjExMkM2NDUwOjZBQkQ4NDc5OnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDFUMDA6NTE6NTMrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzddOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMVQwMDo1MTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzN106IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzAgKHFlbXUpCjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzddOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMTozOSkKMjAyNi0xMC0wMVQwMDo1MzozMiswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzN106IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzZdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyQjMwQzk6MTEyQzY0NTA6NkFCRDg0Nzk6dnpkdW1wOjE3MDpyb290QHBhbTogT0sKMjAyNi0xMC0wMVQwMDo1MzozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyODMwNTE3XTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo4MTc5NTU2NTAzLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNzB9CjIwMjYtMTAtMDFUMDE6MDQ6MjYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDFUMDE6MDQ6MjYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9UQVJHRVQ9Z3Vlc3QtcHZlMDEtbHhjLTExMgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9SRUFTT049Q1QxMTJfUElQRUxJTkVfRkFJTEVECjIwMjYtMTAtMDFUMTk6NDE6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogTWFpbiBwcm9jZXNzIGV4aXRlZCwgY29kZT1leGl0ZWQsIHN0YXR1cz0yW1BBVEhdCjIwMjYtMTAtMDFUMTk6NDE6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRmFpbGVkIHdpdGggcmVzdWx0ICdleGl0LWNvZGUnLgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZhaWxlZCB0byBzdGFydCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQxOTo0MTowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA1LjEzN3MgQ1BVIHRpbWUsIDE3Mk0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDFUMjA6MTk6NTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMVQyMDoxOTo1MiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNDU0ODMyXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAxVDIwOjE5OjUzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU3XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAyNTc1NEE6MTE5NzUzMzM6NkFCRTk2Mzk6dnpkdW1wOjE1MDpyb290QHBhbToKMjAyNi0xMC0wMVQyMDoxOTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1OF06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTUwIC0tZHVtcGRpciBbUEFUSF0gLS1jb21wcmVzcyB6c3RkIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTAxVDIwOjE5OjUzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU4XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE1MCAocWVtdSkKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1OF06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNTAgKDAwOjAwOjE5KQoyMDI2LTEwLTAxVDIwOjIwOjEyKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU4XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1N106IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDI1NzU0QToxMTk3NTMzMzo2QUJFOTYzOTp2emR1bXA6MTUwOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAxVDIwOjIwOjEyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI0NTQ4MzJdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xNTAKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNDU0ODMyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjkyMzEyNTI1NiwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAxIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTUwfQoyMDI2LTEwLTAxVDIwOjIxOjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI0NTQ4MzJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAxVDIwOjIxOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMVQyMDoyMTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQyMDoyMTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyOC45ODBzIENQVSB0aW1lLCAxLjRHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDIwOjM5OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMjA6Mzk6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQyMDo0MDozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTE5MDM3XTogU0NIRURVTEVfVEFSR0VUPXZtMTkwCjIwMjYtMTAtMDFUMjA6NDA6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoxODAwMzg5MTczLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxOTB9CjIwMjYtMTAtMDFUMjA6NDM6MDQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDFUMjA6NDM6MDQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAxVDIwOjQzOjA0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAxVDIwOjQzOjA0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDM4LjkwOXMgQ1BVIHRpbWUsIDIuM0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDFUMjE6MTk6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMVQyMToxOTowMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAxVDIxOjE5OjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYyXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAyODU2NkI6MTE5Q0JFMEQ6NkFCRUE0MTc6dnpkdW1wOjE3MDpyb290QHBhbToKMjAyNi0xMC0wMVQyMToxOTowMyswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2M106IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90IC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTAxVDIxOjE5OjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYzXTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE3MCAocWVtdSkKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2M106IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNzAgKDAwOjAxOjQxKQoyMDI2LTEwLTAxVDIxOjIwOjQ0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYzXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2Ml06IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDI4NTY2QjoxMTlDQkUwRDo2QUJFQTQxNzp2emR1bXA6MTcwOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAxVDIxOjIwOjQ0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI2NDM1MTNdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xNzAKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjgyOTIyNDQ2NzMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wMVQyMTozMjowOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMVQyMTozMjowOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDFUMjE6MzI6MDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDFUMjE6MzI6MDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAxNi40MjNzIENQVSB0aW1lLCA2LjhHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDIxOjU3OjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMjE6NTc6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjc3MTYyMl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQyMTo1NzowMyswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyN106IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkE0QUFDOjExQTAzOENFOjZBQkVBQ0ZGOnZ6ZHVtcDoxNzE6cm9vdEBwYW06CjIwMjYtMTAtMDFUMjE6NTc6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzI3NzE2MjhdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MSAtLWR1bXBkaXIgW1BBVEhdIC0tbW9kZSBzbmFwc2hvdCAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMVQyMTo1NzowMyswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyOF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzEgKHFlbXUpCjIwMjYtMTAtMDFUMjE6NTc6NDkrMDM6MDAgcHZlMDEgdnpkdW1wWzI3NzE2MjhdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcxICgwMDowMDo0NikKMjAyNi0xMC0wMVQyMTo1Nzo0OSswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyOF06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wMlQxOToyMjo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wMlQxOToyMjo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAyVDE5OjIyOjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjA5cyBDUFUgdGltZSwgMTcxLjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDE5OjU4OjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMTk6NTg6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjkxNjE3M106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMlQxOTo1ODowNCswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM1Nl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkM4MDA4OjEyMTkyOUY1OjZBQkZFMjlDOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDJUMTk6NTg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNjBdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMlQxOTo1ODowNCswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM2MF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNjBdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMSkKMjAyNi0xMC0wMlQxOTo1ODoyNSswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM2MF06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNTZdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyQzgwMDg6MTIxOTI5RjU6NkFCRkUyOUM6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wMlQxOTo1ODoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyOTE2MTczXTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjkxNjE3M106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5Mjg0OTMxODcsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wMlQyMDowMDoyMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyOTE2MTczXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMlQyMDowMDoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDJUMjA6MDA6MjIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDJUMjA6MDA6MjIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMzIuMTAycyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMlQyMDozNTowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAyVDIwOjM1OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDJUMjA6MzY6MDErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzAzODQ4Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTAyVDIwOjM2OjAxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc5MDIyMTQxOSwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTAyVDIwOjM4OjQ1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAyVDIwOjM4OjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMlQyMDozODo0NSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMlQyMDozODo0NSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0MS4xMzNzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDIxOjA2OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMjE6MDY6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzEzOTg2N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTM5ODY3XTogU0NIRURVTEVfVEFSR0VUPXhmLWRzbW9kcwoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMxMzk4NjddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxbWluIDMwLjg1MnMgQ1BVIHRpbWUsIDcwOC40TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0Nzg4MjhdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ3ODgyOF06IFNDSEVEVUxFX1RBUkdFVD14Zi1raW5nb2Z3b2xrCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ3ODgyOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAyVDIyOjU2OjM0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAyVDIyOjU2OjM0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEyLjAwOHMgQ1BVIHRpbWUsIDE0M00gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDJUMjM6MTk6NDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMlQyMzoxOTo0MCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAyVDIzOjE5OjQxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODYyXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzNkFCOTE6MTIyQjlGNzM6NkFDMDExREQ6dnpkdW1wOjE3MDpyb290QHBhbToKMjAyNi0xMC0wMlQyMzoxOTo0MSswMzowMCBwdmUwMSB2emR1bXBbMzU4Mjg2NV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90IC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTAyVDIzOjE5OjQxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODY1XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE3MCAocWVtdSkKMjAyNi0xMC0wMlQyMzoyMToyMyswMzowMCBwdmUwMSB2emR1bXBbMzU4Mjg2NV06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNzAgKDAwOjAxOjQyKQoyMDI2LTEwLTAyVDIzOjIxOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODY1XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wM1QyMDowMjoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIwOjAyOjU3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM1MjI3MjFdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wM1QyMDowMjo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjEyNjM1MDczNjcwNjVjMDdiY2NjNWI5MzlhNTQzMTNkODc4MTg4MGJmNmJhZjgzYTg0NTRiMTcwN2I4NmI3MmYiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wM1QyMDowMzozNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMDowMzozNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMDY0cyBDUFUgdGltZSwgNTE0LjdNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIwOjMzOjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjA6MzM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMDozMzowNCswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzc1QzUwOjEyQTAzNDUxOjZBQzEzQzUwOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wM1QyMDozMzowNCswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMl06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoxOSkKMjAyNi0xMC0wM1QyMDozMzoyMyswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMl06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzNzVDNTA6MTJBMDM0NTE6NkFDMTNDNTA6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wM1QyMDozMzoyMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjI4MDc2XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5Mjk4MzY1MDUsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wM1QyMDozNDo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjI4MDc2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMDozNDo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuODI1cyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMToxMDowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIxOjEwOjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzczMDkyMF06IFNDSEVEVUxFX1RBUkdFVD14Zi1jb2RldmlwZQoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxMy43NDFzIENQVSB0aW1lLCAxNTIuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjE6NDI6MTgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMTo0MjoxOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIxOjQzOjE3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4MzM3MjhdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xOTAKMjAyNi0xMC0wM1QyMTo0MzoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjE3ODgxOTU2ODUsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMyIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE5MH0KMjAyNi0xMC0wM1QyMTo0NjoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMTo0NjoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMzguMTQycyBDUFUgdGltZSwgMi4yRyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMjoxOToxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIyOjE5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzk1NTQ2MF06IFNDSEVEVUxFX1RBUkdFVD14Zi16YWtydXRpbQoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxMy45MjhzIENQVSB0aW1lLCAxNjQuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjI6NTA6MDYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMjo1MDowNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIyOjUwOjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM0XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzREU3Q0M6MTJBQ0MwQUQ6NkFDMTVDNzA6dnpkdW1wOjIxMDpyb290QHBhbToKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMjEwIC0tY29tcHJlc3MgenN0ZCAtLWR1bXBkaXIgW1BBVEhdIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTAzVDIyOjUwOjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM2XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDIxMCAocWVtdSkKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAyMTAgKDAwOjAwOjE2KQoyMDI2LTEwLTAzVDIyOjUwOjI0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM2XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNFQxNjozNzo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjM4OjI3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MDY3MjldOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wNFQxNjozODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjY0ZWE0YTVmYWY1MmUxMGYxMmJmNzU3MmRkYWYyZjMxM2M5MmNjZDc0MjZmYzA5OGYzMzkyMWM0OTM1MTQxZWIiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMjI1cyBDUFUgdGltZSwgNTE1LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE3OjE2OjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzhFNTJBOjEzMTIxNEQ5OjZBQzI1RkQ2OnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90IC0tZHVtcGRpciBbUEFUSF0KMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMCkKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzOEU1MkE6MTMxMjE0RDk6NkFDMjVGRDY6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MzMyMzIyNTMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuNjcwcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNFQxNzo0ODoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA0VDE3OjQ4OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMTc6NDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgyOTg2Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTA0VDE3OjQ5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc4MzUwNDEyOCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC45NTdzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE4OjIxOjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTg6MjE6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzkzMDQ5N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTMwNDk3XTogU0NIRURVTEVfVEFSR0VUPXhmLWhrbW9kcwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5MzA0OTddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDE4LjQyMHMgQ1BVIHRpbWUsIDEuNUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMjM6Mjk6MjQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNzU4NDAxXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzc1ODQwMV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjAxcyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNVQwMDowODowNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA1VDAwOjA4OjA1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzg4MTQ5OF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls4ODE0OThdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbODgxNDk4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHku\nJOURNAL_CAPTURE_COUNT=0\nJOURNAL_TRANSPORT_COUNT=0\nJOURNAL_SEALED_COUNT=0\nJOURNAL_RESTORE_VALIDATION_COUNT=0\nJOURNAL_CLOUD_COUNT=0\nJOURNAL_SCHEDULE_TARGET_COUNT=5\nJOURNAL_VZDUMP_FINISH_COUNT=5\nJOURNAL_ERROR_COUNT=0\nJOURNAL_FAIL_COUNT=16\nBACKUP_V2_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c\nBKV2_SCHEDULE_TARGET_LINE_COUNT=0\nBKV2_SEALED_LINE_COUNT=0\nBKV2_SEAL_WRITTEN_LINE_COUNT=0\nBKV2_LATEST_LINE_COUNT=0\nBKV2_RESTORE_LINE_COUNT=0\nBKV2_CLOUD_QUORUM_LINE_COUNT=0\nBKV2_LOCAL_CLEANUP_LINE_COUNT=0\nBKV2_STATE_LINE_COUNT=0\nBKV2_GENERATION_LINE_COUNT=0\nBKV2_INTERESTING_FUNC_COUNT=0\nREMOTE_A_PARENT_DERIVABLE=true\nREMOTE_A_LIST_RC=0\nREMOTE_A_VM150_GENERATION_COUNT=6\nREMOTE_A_GEN_1=vm150-pve01-20260904T053517Z\nREMOTE_A_GEN_1_AGE_HOURS=747.36\nREMOTE_A_GEN_2=vm150-pve01-20260903T163557Z\nREMOTE_A_GEN_2_AGE_HOURS=760.34\nREMOTE_A_GEN_3=vm150-pve01-20260831T214108Z\nREMOTE_A_GEN_3_AGE_HOURS=827.26\nREMOTE_A_GEN_4=vm150-pve01-20260830T203628Z\nREMOTE_A_GEN_4_AGE_HOURS=852.34\nREMOTE_A_GEN_5=vm150-pve01-20260823T203609Z\nREMOTE_A_GEN_5_AGE_HOURS=1020.34\nREMOTE_A_GEN_6=vm150-pve01-20260816T041612Z\nREMOTE_A_GEN_6_AGE_HOURS=1204.67\nREMOTE_B_PARENT_DERIVABLE=true\nREMOTE_B_LIST_RC=0\nREMOTE_B_VM150_GENERATION_COUNT=6\nREMOTE_B_GEN_1=vm150-pve01-20260904T053517Z\nREMOTE_B_GEN_1_AGE_HOURS=747.36\nREMOTE_B_GEN_2=vm150-pve01-20260903T163557Z\nREMOTE_B_GEN_2_AGE_HOURS=760.34\nREMOTE_B_GEN_3=vm150-pve01-20260831T214108Z\nREMOTE_B_GEN_3_AGE_HOURS=827.26\nREMOTE_B_GEN_4=vm150-pve01-20260830T203628Z\nREMOTE_B_GEN_4_AGE_HOURS=852.34\nREMOTE_B_GEN_5=vm150-pve01-20260823T203609Z\nREMOTE_B_GEN_5_AGE_HOURS=1020.34\nREMOTE_B_GEN_6=vm150-pve01-20260816T041612Z\nREMOTE_B_GEN_6_AGE_HOURS=1204.67\nPUBLIC_DNS_OK_COUNT=3\nPUBLIC_HTTPS_OK_COUNT=3\nBACKUP_FRESHNESS_RCA_COMPLETE=true\nDECISION=ANALYZE_EXACT_99592_FRESHNESS_CHAIN\nNEXT_GATE=VM150_FRESH_SEAL_OR_TARGETED_BACKUP_RESTORE\nTASK_RESULT=SNIKKET_VM150_BACKUP_FRESHNESS_RCA\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\nFRESHNESS_PYTHON_STDERR_BYTES=0\nCHANGES_MADE=false\nROLLBACK_STARTED=false\nROLLBACK_RESTORED=null\nMUTATION_OUTCOME=NO_MUTATION\n" + "output": "SNIKKET_VM150_BACKUP_PIPELINE_RCA=V1\nMODE=read-only\nNO_VM_MUTATION=true\nNO_BACKUP_EXECUTION=true\nNO_REMOTE_MUTATION=true\nNO_STATE_MUTATION=true\nNO_SOURCE_MUTATION=true\nNO_DNS_MUTATION=true\nHOST_PVE01=true\nINGRESS_HOSTKEY_SELF_BOUND=true\nVM150_RUNNING=true\nVM150_QGA=true\nHOMELAB_BACKUP_V2_SERVICE_PRESENT=true\nHOMELAB_BACKUP_V2_SERVICE_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d\nHOMELAB_BACKUP_V2_SERVICE_ACTIVE=inactive\nHOMELAB_BACKUP_V2_SERVICE_ENABLED=static\nHOMELAB_BACKUP_V2_TIMER_PRESENT=true\nHOMELAB_BACKUP_V2_TIMER_CAT_SHA256=11e196a0353983e6ccf0d1c683a7c581cf4eb6ed8afc778324ae9c279ba23c93\nHOMELAB_BACKUP_V2_TIMER_ACTIVE=active\nHOMELAB_BACKUP_V2_TIMER_ENABLED=enabled\nHOMELAB_BACKUP_AUDIT_SERVICE_PRESENT=true\nHOMELAB_BACKUP_AUDIT_SERVICE_CAT_SHA256=d7ca901a0238e10361a07403729e5b4768821af34f18e624032ab8ff1a6e8846\nHOMELAB_BACKUP_AUDIT_SERVICE_ACTIVE=inactive\nHOMELAB_BACKUP_AUDIT_SERVICE_ENABLED=static\nHOMELAB_BACKUP_AUDIT_TIMER_PRESENT=true\nHOMELAB_BACKUP_AUDIT_TIMER_CAT_SHA256=88e5b100a8e480dfb69141caf9776b9d9da274933ee32f464208d0aff7264d63\nHOMELAB_BACKUP_AUDIT_TIMER_ACTIVE=active\nHOMELAB_BACKUP_AUDIT_TIMER_ENABLED=enabled\nBACKUP_V2_UNIT_SHOW_SHA256=93dda19ac5b7e586443dd6505828caef8c62df1cb0b4b3eaf2eb63fa47775fc1\nBACKUP_V2_UNIT_SHOW_B64=RXhlY1N0YXJ0PXsgcGF0aD0vdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjIgOyBhcmd2W109L3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXYyIHNjaGVkdWxlZCA7IGlnbm9yZV9lcnJvcnM9bm8gOyBzdGFydF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0MDo1MiBNU0tdIDsgc3RvcF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0ODoyNyBNU0tdIDsgcGlkPTMxNTU5NjUgOyBjb2RlPWV4aXRlZCA7IHN0YXR1cz0wIH0KRW52aXJvbm1lbnQ9\nBACKUP_V2_COMMAND_PRESENT=true\nBACKUP_V2_FILETYPE_SHA256=75e59f7a9c20f8ef3feb350d7a6bae401bae921d9830a4d5907f01e23b038da5\nBACKUP_V2_SIZE_BYTES=1656\nBACKUP_V2_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c\nBKV2_TEXT_BYTES=1656\nBKV2_SHEBANG=#!/usr/bin/python3\nBKV2_SCHEDULE_TARGET_COUNT=0\nBKV2_QEMU_EXECUTION_DIAG_COUNT=0\nBKV2_SELFTEST_COUNT=0\nBKV2_VZDUMP_COUNT=0\nBKV2_RCLONE_COUNT=0\nBKV2_CLOUD_COUNT=0\nBKV2_SEAL_COUNT=0\nBKV2_TRANSPORT_COUNT=0\nBKV2_RESTORE_COUNT=0\nBKV2_PYTHON_COUNT=1\nBKV2_EXEC_COUNT=0\nBKV2_USR_LOCAL_COUNT=0\nBKV2_OPT_PATH_COUNT=1\nBKV2_RELEVANT_LINE_COUNT=5\nBKV2_RELEVANT_B64=MTojIS91c3IvYmluL3B5dGhvbjMKMjpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCjM6aW1wb3J0IGhhc2hsaWIsIGltcG9ydGxpYiwgb3MsIHBhdGhsaWIsIHN0YXQsIHN5cwo1OkVYUEVDVEVEPXsnZnJlc2hfbHhjX2hlbHBlci5weSc6ICc0ZTM5NDA0YjFkZGI5NzM5MjY0NWFkY2U2MjgwZjY5NzE4MmNjYTAzNzE0ZDNhNDYyZDM2M2VlYmNlOWIxODYwJywgJ3Byb2R1Y2VyX2V4ZWNfaGVscGVyLnB5JzogJ2IzYjk3MDk5YmNkNzEyNjY3MGY4NjZlODFmYWFlNmE0MmE5NmQ4NjlkOTk4OWU2YTY3ZjZlYTZjODcxYzkwYjMnLCAnbHhjX2FkYXB0ZXIucHknOiAnM2ZhN2QxOTQwMTBkNzZmN2M4YmM5NTAzNWFlODg3NjI2MmU5MzM3OTAzZTMxMGY0NWY0NWRmODhjMjY2ZGM4ZCcsICdxZW11X2FkYXB0ZXIucHknOiAnMTkwNmRiNDJiZDM0YmJlODVlYjQ2ZmQ5Nzk3YjM1NzJkNDZlMGE0MWMyOWQxYzI5YmU1ZjlkZjVlNDQ4ZjE1YicsICdzY2hlZHVsZXJfYWRhcHRlci5weSc6ICdhNmY2NzE1OWE2NDA2Nzc3MzMyM2YwMjgxMjZlMzEwOWUxNWNmMTdhODE0MmNlYTVlNjEyOTk3MGYxZDRkYTk2JywgJ2VudHJ5NTA0LnB5JzogJ2NhNjg3NmZhOWMzYjE0NjViMDQ1MzQ0YThhZDQ2OTYyZGUxNjk3MmM3ZGFkYzRhYzYyNTdjN2QyMjUwNDc3OTMnfQoyNDogZT1pbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnZW50cnk1MDQnKQ==\nBKV2_ABS_PATH_COUNT=1\nBKV2_PATH_1_BASENAME=backup-v2-overlay-505r1-4e39404b1ddb\nBKV2_PATH_1_SHA256=50a47e615a0781a486100f5d6723e32a263337608d003f678b4b582f74434cee\nPIPELINE_HELPER_CANDIDATE_COUNT=149\nPIPE_1_SCORE=5\nPIPE_1_BASENAME=homelab-backup-audit\nPIPE_1_PATH_SHA256=92769ab05a0e3e5bd466bc9d92157c75162ede4803289c63689289f751eebbef\nPIPE_1_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3\nPIPE_1_SCHEDULE_TARGET_COUNT=0\nPIPE_1_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_1_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_1_VZDUMP_QEMU_COUNT=0\nPIPE_1_RCLONE_COUNT=5\nPIPE_1_CLOUD_QUORUM_COUNT=2\nPIPE_1_SEAL_WRITTEN_COUNT=2\nPIPE_1_PAYLOAD_PARTS_COUNT=1\nPIPE_1_TRANSPORT_COUNT=1\nPIPE_1_RESTORE_VALIDATION_COUNT=0\nPIPE_1_SCHEDULE_RESULT_COUNT=0\nPIPE_1_RELEVANT_LINE_COUNT=114\nPIPE_1_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg==\nPIPE_2_SCORE=5\nPIPE_2_BASENAME=homelab-cloud-quorum-payload\nPIPE_2_PATH_SHA256=68de12f3737cfc95291752929a5ac96d6ab3078d9f540969437fd463cc238756\nPIPE_2_FILE_SHA256=df9e19485e5d87112bf58bf77bdddf3b9b896418dd85ff945a31cd5b6817f352\nPIPE_2_SCHEDULE_TARGET_COUNT=0\nPIPE_2_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_2_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_2_VZDUMP_QEMU_COUNT=0\nPIPE_2_RCLONE_COUNT=26\nPIPE_2_CLOUD_QUORUM_COUNT=15\nPIPE_2_SEAL_WRITTEN_COUNT=6\nPIPE_2_PAYLOAD_PARTS_COUNT=1\nPIPE_2_TRANSPORT_COUNT=1\nPIPE_2_RESTORE_VALIDATION_COUNT=0\nPIPE_2_SCHEDULE_RESULT_COUNT=0\nPIPE_2_RELEVANT_LINE_COUNT=448\nPIPE_2_RELEVANT_B64=NTpTQ0hFTUE9ImhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEiCjE5OlRNUF9CQVNFPSIke0hPTUVMQUJfUVVPUlVNX1RNUF9CQVNFOi0vbW50L3N0YWdpbmcvaG9tZWxhYi1jbG91ZC1xdW9ydW0tdG1wfSIKMjU6ICBwcmludGYgJ1JPT1RfQ0FVU0U9VU5FWFBFQ1RFRF9UUkFOU1BPUlRfRVJST1JcblJPT1RfQ0FVU0VfQ09VTlQ9MVxuREVUQUlMPWxpbmU6JXMgcmM6JXNcbicgIiR7MTotMH0iICIkcmMiID4mMgo0MTpmb3IgdG9vbCBpbiBqcSByY2xvbmUgc2hhMjU2c3VtIGRkIHN0YXQgc29ydCBta3RlbXAgZmxvY2sgYXdrIGNtcCBkYXRlOyBkbwo0Njp1c2FnZSgpewo0NzogIHByaW50ZiAndXNhZ2U6ICVzIGJhY2t1cC1kZWxldGUgTE9HSUNBTF9JRCBHRU5FUkFUSU9OIFBBWUxPQUQgUkVNT1RFX0FfUk9PVCBSRU1PVEVfQl9ST09UIFNUQVRFX1JPT1RcbicgIiQwIiA+JjIKNDg6ICBwcmludGYgJyAgICAgICAlcyB2ZXJpZnktc2VhbGVkIExPR0lDQUxfSUQgR0VORVJBVElPTiBSRU1PVEVfQV9ST09UIFJFTU9URV9CX1JPT1QgU1RBVEVfUk9PVFxuJyAiJDAiID4mMgo1MDp2YWxpZF9yZW1vdGVfcm9vdCgpeyBbWyAiJDEiID1+IF5bQS1aYS16MC05XVtBLVphLXowLTkuXy1dKjpbQS1aYS16MC05Ll8vLV0rJCBdXTsgfQo1NDogIGJhY2t1cC1kZWxldGUpCjU1OiAgICBbWyAiJCMiIC1lcSA3IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNTc6ICAgIEdFTkVSQVRJT049IiQzIgo1OTogICAgUkVNT1RFX0FfUk9PVD0iJDUiCjYwOiAgICBSRU1PVEVfQl9ST09UPSIkNiIKNjE6ICAgIFNUQVRFX1JPT1Q9IiQ3Igo2MzogIHZlcmlmeS1zZWFsZWQpCjY0OiAgICBbWyAiJCMiIC1lcSA2IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNjY6ICAgIEdFTkVSQVRJT049IiQzIgo2ODogICAgUkVNT1RFX0FfUk9PVD0iJDQiCjY5OiAgICBSRU1PVEVfQl9ST09UPSIkNSIKNzA6ICAgIFNUQVRFX1JPT1Q9IiQ2Igo3MzogICAgdXNhZ2UKNzk6dmFsaWRfdG9rZW4gIiRHRU5FUkFUSU9OIiB8fCBkaWUgIkdFTkVSQVRJT05fSU5WQUxJRCIgNjQKODA6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiB8fCBkaWUgIlJFTU9URV9BX1JPT1RfSU5WQUxJRCIgNjQKODE6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQl9ST09UIiB8fCBkaWUgIlJFTU9URV9CX1JPT1RfSU5WQUxJRCIgNjQKODI6W1sgIiRSRU1PVEVfQV9ST09UIiAhPSAiJFJFTU9URV9CX1JPT1QiIF1dIHx8IGRpZSAiUkVNT1RFX0ZBSUxVUkVfRE9NQUlOU19OT1RfRElTVElOQ1QiIDY0CjgzOltbICIkU1RBVEVfUk9PVCIgPT0gLyogXV0gfHwgZGllICJTVEFURV9ST09UX05PVF9BQlNPTFVURSIgNjQKODQ6aWYgW1sgIiRURVNUX01PREUiICE9ICIxIiAmJiAiJFNUQVRFX1JPT1QiICE9ICIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iIF1dOyB0aGVuCjg1OiAgZGllICJQUk9EVUNUSU9OX1NUQVRFX1JPT1RfSU5WQUxJRCIgNjQKODg6U1RBVEVfRElSPSIkU1RBVEVfUk9PVC8kTE9HSUNBTF9JRCIKODk6U1RBVEVfRklMRT0iJFNUQVRFX0RJUi8kR0VORVJBVElPTi5qc29uIgo5MDpSRU1PVEVfQV9CQVNFPSIke1JFTU9URV9BX1JPT1QlL30vJExPR0lDQUxfSUQvJEdFTkVSQVRJT04iCjkxOlJFTU9URV9CX0JBU0U9IiR7UkVNT1RFX0JfUk9PVCUvfS8kTE9HSUNBTF9JRC8kR0VORVJBVElPTiIKMTAyOiAgU1RBVEVfUk9PVD0iJChyZWFscGF0aCAtbSAtLSAiJFNUQVRFX1JPT1QiKSIKMTA0OiAgY2FzZSAiJFNUQVRFX1JPT1QiIGluICIkUlVOX1JFQUwiLyopIDs7ICopIGRpZSAiVEVTVF9TVEFURV9ST09UX09VVFNJREVfUlVOX0RJUiIgNjQ7OyBlc2FjCjEwNTogIFNUQVRFX0RJUj0iJFNUQVRFX1JPT1QvJExPR0lDQUxfSUQiCjEwNjogIFNUQVRFX0ZJTEU9IiRTVEFURV9ESVIvJEdFTkVSQVRJT04uanNvbiIKMTA5OltbICEgLUwgIiRTVEFURV9ST09UIiBdXSB8fCBkaWUgIlNUQVRFX1JPT1RfU1lNTElOS19GT1JCSURERU4iIDY0CjExMDppZiBbWyAtZSAiJFNUQVRFX0RJUiIgfHwgLUwgIiRTVEFURV9ESVIiIF1dOyB0aGVuIFtbIC1kICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRElSIiBdXSB8fCBkaWUgIlNUQVRFX0RJUl9VTlNBRkUiIDY0OyBmaQoxMTE6bWtkaXIgLXAgIiRTVEFURV9ESVIiCjExMjpbWyAhIC1MICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRklMRSIgXV0gfHwgZGllICJTVEFURV9QQVRIX1NZTUxJTktfRk9SQklEREVOIiA2NAoxMTM6Y2htb2QgMDcwMCAiJFNUQVRFX1JPT1QiICIkU1RBVEVfRElSIgoxMTQ6TE9DS19GSUxFPSIkU1RBVEVfRElSLy5sb2NrIgoxMTU6ZXhlYyA5PiIkTE9DS19GSUxFIgoxMTY6ZmxvY2sgLW4gOSB8fCBkaWUgIkdFTkVSQVRJT05fTE9DS19CVVNZIiA3NQoxNDM6aWYgW1sgIiRBQ1RJT04iID09ICJiYWNrdXAtZGVsZXRlIiBdXTsgdGhlbgoxNDg6IyBTRUNUSU9OX1NUQVRFX0lERU5USVRZX1YxCjE0OTpzdGF0ZV9pZGVudGl0eV9vaygpewoxNTA6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCByZXR1cm4gMQoxNTQ6ICAgIC0tYXJnIGdlbmVyYXRpb24gIiRHRU5FUkFUSU9OIiBcCjE1NTogICAgLS1hcmcgcmVtb3RlX2EgIiRSRU1PVEVfQV9ST09UIiBcCjE1NjogICAgLS1hcmcgcmVtb3RlX2IgIiRSRU1PVEVfQl9ST09UIiBcCjE2MDogICAgIC5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQKMTYxOiAgICAgLnJlbW90ZV9hX3Jvb3Q9PSRyZW1vdGVfYSBhbmQKMTYyOiAgICAgLnJlbW90ZV9iX3Jvb3Q9PSRyZW1vdGVfYiBhbmQKMTY4OiAgICAgIC5zdGF0dXM9PSJTRUFMRUQiKScgXAoxNjk6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoxNzI6c3RhdGVfc3RhdHVzKCl7CjE3MzogIGlmIFtbICEgLWUgIiRTVEFURV9GSUxFIiBdXTsgdGhlbgoxNzc6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCBkaWUgIlNUQVRFX0ZJTEVfVU5TQUZFIiA2NQoxNzg6ICBzdGF0ZV9pZGVudGl0eV9vayB8fCBkaWUgIlNUQVRFX0lERU5USVRZX01JU01BVENIIiA2NQoxNzk6ICBqcSAtciAnLnN0YXR1cycgIiRTVEFURV9GSUxFIgoxODI6IyBTRUNUSU9OX1NUQVRFX0lOSVRJQUxfVjEKMTgzOndyaXRlX2luaXRpYWxfc3RhdGUoKXsKMTg0OiAgbG9jYWwgbm93PSIkMSIgdG1wPSIke1NUQVRFX0ZJTEV9Lm5ldy4kJCIKMTkwOiAgICAtLWFyZyBnZW5lcmF0aW9uICIkR0VORVJBVElPTiIgXAoxOTU6ICAgIC0tYXJnIHJlbW90ZV9hX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiBcCjE5NjogICAgLS1hcmcgcmVtb3RlX2Jfcm9vdCAiJFJFTU9URV9CX1JPT1QiIFwKMTk3OiAgICAtLWFyZyByZW1vdGVfYV9iYXNlICIkUkVNT1RFX0FfQkFTRSIgXAoxOTg6ICAgIC0tYXJnIHJlbW90ZV9iX2Jhc2UgIiRSRU1PVEVfQl9CQVNFIiBcCjIwMjogICAgJ3tzY2hlbWE6JHNjaGVtYSxzdGF0dXM6JHN0YXR1cyxsb2dpY2FsX2lkOiRsb2dpY2FsX2lkLGdlbmVyYXRpb246JGdlbmVyYXRpb24sCjIwNzogICAgICByZW1vdGVfYV9yb290OiRyZW1vdGVfYV9yb290LHJlbW90ZV9iX3Jvb3Q6JHJlbW90ZV9iX3Jvb3QsCjIwODogICAgICByZW1vdGVfYV9iYXNlOiRyZW1vdGVfYV9iYXNlLHJlbW90ZV9iX2Jhc2U6JHJlbW90ZV9iX2Jhc2UsCjIwOTogICAgICBjbG91ZF9hX3ZlcmlmaWVkOmZhbHNlLGNsb3VkX2JfdmVyaWZpZWQ6ZmFsc2UsCjIxMDogICAgICBjbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2Om51bGwsY2xvdWRfYl9yZWNvbnN0cnVjdGVkX3NoYTI1NjpudWxsLAoyMTE6ICAgICAgY2xvdWRfYV92ZXJpZmllZF9hdF91dGM6bnVsbCxjbG91ZF9iX3ZlcmlmaWVkX2F0X3V0YzpudWxsLAoyMTI6ICAgICAgY2xvdWRfcXVvcnVtOjAscGFydF9oYXNoZXNfdmVyaWZpZWQ6ZmFsc2UscGFydHNfbWFuaWZlc3Rfc2hhMjU2Om51bGwsCjIxNTogICAgICBzZWFsX3dyaXR0ZW46ZmFsc2Usc2VhbGVkX2F0X3V0YzpudWxsfScgPiIkdG1wIgoyMjE6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgoyMjQ6c3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vaygpewoyMjk6ICAgIC0tYXJnIHJlbW90ZV9hX2Jhc2UgIiRSRU1PVEVfQV9CQVNFIiBcCjIzMDogICAtLWFyZyByZW1vdGVfYl9iYXNlICIkUkVNT1RFX0JfQkFTRSIgXAoyMzg6ICAgICAucmVtb3RlX2FfYmFzZT09JHJlbW90ZV9hX2Jhc2UgYW5kCjIzOTogICAgIC5yZW1vdGVfYl9iYXNlPT0kcmVtb3RlX2JfYmFzZScgXAoyNDA6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoyNDM6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9IRUxQRVJTX1YxCjI0NDpsb2FkX3N0YXRlX3BheWxvYWRfaWRlbnRpdHkoKXsKMjQ1OiAgUEFZTE9BRF9SRUFMPSIkKGpxIC1lciAnLnBheWxvYWRfcGF0aCB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1BBVEhfSU5WQUxJRCIgNjUKMjQ2OiAgUEFZTE9BRF9OQU1FPSIkKGpxIC1lciAnLnBheWxvYWRfbmFtZSB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX05BTUVfSU5WQUxJRCIgNjUKMjQ3OiAgUEFZTE9BRF9TSEE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYgfCBzdHJpbmdzIHwgc2VsZWN0KHRlc3QoIl5bMC05YS1mXXs2NH0kIikpJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1NIQV9JTlZBTElEIiA2NQoyNDg6ICBQQVlMT0FEX1NJWkU9IiQoanEgLWVyICcuYXJjaGl2ZV9zaXplX2J5dGVzIHwgbnVtYmVycyB8IHNlbGVjdCguPjAgYW5kIGZsb29yPT0uKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9TSVpFX0lOVkFMSUQiIDY1CjI0OTogIFBBUlRfQ09VTlQ9IiQoanEgLWVyICcucGFydF9jb3VudCB8IG51bWJlcnMgfCBzZWxlY3QoLj4wIGFuZCBmbG9vcj09LiknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBUlRfQ09VTlRfSU5WQUxJRCIgNjUKMjY1OmFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGgoKXsKMjY2OiAgbG9jYWwgaW5wdXRfcmVhbD0iJDEiIGlucHV0X25hbWU9IiQyIiBzdGF0ZV9yZWFsIHN0YXRlX25hbWUKMjY3OiAgc3RhdGVfcmVhbD0iJChqcSAtZXIgJy5wYXlsb2FkX3BhdGggfCBzdHJpbmdzIHwgc2VsZWN0KGxlbmd0aD4wKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX0lOVkFMSUQiIDY1CjI2ODogIHN0YXRlX25hbWU9IiQoanEgLWVyICcucGF5bG9hZF9uYW1lIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBWUxPQURfTkFNRV9JTlZBTElEIiA2NQoyNjk6ICBbWyAiJGlucHV0X3JlYWwiID09ICIkc3RhdGVfcmVhbCIgJiYgIiRpbnB1dF9uYW1lIiA9PSAiJHN0YXRlX25hbWUiIF1dIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX01JU01BVENIIiA2NQoyNzI6IyBTRUNUSU9OX1NUQVRFX1BIQVNFX0lOVkFSSUFOVFNfVjEKMjczOnN0YXRlX3BoYXNlX2NvcmVfaW52YXJpYW50c19vaygpewoyNzc6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzg6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzk6ICAgICAgLmNsb3VkX3F1b3J1bT09MCBhbmQKMjgzOiAgICAgIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZAoyODQ6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyODU6ICAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI4NjogICAgICAuY2xvdWRfcXVvcnVtPT0xIGFuZAoyOTA6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjI5MTogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMjkyOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAoyOTM6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI5NDogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAoyOTk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMwMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzAxOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMDI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMwMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMDg6ICAgIGVsaWYgLnN0YXR1cz09IlNFQUxFRCIgdGhlbgozMDk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMxMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzExOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMTI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMxMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMTg6ICAgICAgLnNlYWxfd3JpdHRlbj09dHJ1ZQozMjI6ICAnICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAozMjU6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9ESVNQQVRDSF9WMQozMjY6cHJlcGFyZV9iYWNrdXBfc3RhdGUoKXsKMzMwOiAgc3RhdHVzPSIkKHN0YXRlX3N0YXR1cykiCjMzNTogICAgICBhc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudAozMzY6ICAgICAgd3JpdGVfaW5pdGlhbF9zdGF0ZSAiJG5vdyIKMzM3OiAgICAgIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiSU5JVElBTF9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQozMzg6ICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozMzk6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0MjogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzQ0OiAgICAgIHN0YXRlX3BheWxvYWRfaWRlbnRpdHlfb2sgfHwgZGllICJSRVNVTUVfUEFZTE9BRF9JREVOVElUWV9NSVNNQVRDSCIgNjUKMzQ1OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJSRVNVTUVfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0ODogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzUyOiAgICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1BBWUxPQURfSURFTlRJVFlfTUlTTUFUQ0giIDY1CjM1NDogICAgICAgIGxvYWRfc3RhdGVfcGF5bG9hZF9pZGVudGl0eQozNTU6ICAgICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiREVMRVRFX0FVVEhPUklaRURfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozNTc6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX1BIQVNFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQozNTk6ICAgIFNFQUxFRCkKMzYwOiAgICAgIGFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGggIiRpbnB1dF9wYXlsb2FkX3JlYWwiICIkaW5wdXRfcGF5bG9hZF9uYW1lIgozNjE6ICAgICAgW1sgISAtZSAiJGlucHV0X3BheWxvYWRfcmVhbCIgJiYgISAtTCAiJGlucHV0X3BheWxvYWRfcmVhbCIgXV0gfHwgZGllICJTRUFMRURfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIiA2NgozNjI6ICAgICAgbG9hZF9zdGF0ZV9wYXlsb2FkX2lkZW50aXR5CjM2MzogICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiU0VBTEVEX1NUQVRFX1BBWUxPQURfSURFTlRJVFlfSU5WQUxJRCIgNjUKMzY0OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJTRUFMRURfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM2NzogICAgICBkaWUgIlNUQVRFX1NUQVRVU19VTlNVUFBPUlRFRF8ke3N0YXR1c30iIDY1CjM3MDogIEJBQ0tVUF9TVEFURV9TVEFUVVM9IiRzdGF0dXMiCjM3MjogICAgQkFDS1VQX1NUQVRFX1NUQVRVUz0iUFJFUEFSSU5HIgozNzU6IyBTRUNUSU9OX1JFTU9URV9QT0xJQ1lfVjEKMzc3OiAgW1sgIiRSRU1PVEVfQV9ST09UIiA9PSAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiIF1dIHx8IGRpZSAiUFJPRFVDVElPTl9SRU1PVEVfQV9JTlZBTElEIiA2NAozNzg6ICBbWyAiJFJFTU9URV9CX1JPT1QiID09ICJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIgXV0gfHwgZGllICJQUk9EVUNUSU9OX1JFTU9URV9CX0lOVkFMSUQiIDY0CjM3OTogIFtbIC16ICIke0hPTUVMQUJfVEVTVF9SQ0xPTkVfQklOOi19IiBdXSB8fCBkaWUgIlBST0RVQ1RJT05fUkNMT05FX09WRVJSSURFX0ZPUkJJRERFTiIgNjQKMzgwOiAgUkNMT05FX0JJTj0iJChjb21tYW5kIC12IHJjbG9uZSkiIHx8IGRpZSAiUkNMT05FX01JU1NJTkciIDY5CjM4MjogIFJDTE9ORV9CSU49IiR7SE9NRUxBQl9URVNUX1JDTE9ORV9CSU46LX0iCjM4MzogIGlmIFtbIC16ICIkUkNMT05FX0JJTiIgXV07IHRoZW4KMzg0OiAgICBSQ0xPTkVfQklOPSIkKGNvbW1hbmQgLXYgcmNsb25lKSIgfHwgZGllICJSQ0xPTkVfTUlTU0lORyIgNjkKMzg2OiAgW1sgIiRSQ0xPTkVfQklOIiA9PSAvKiAmJiAteCAiJFJDTE9ORV9CSU4iICYmICEgLUwgIiRSQ0xPTkVfQklOIiBdXSB8fCBkaWUgIlRFU1RfUkNMT05FX0JJTl9VTlNBRkUiIDY0CjM4OTpydW5fcmNsb25lKCl7CjM5MDogICIkUkNMT05FX0JJTiIgIiRAIgozOTM6IyBTRUNUSU9OX1JFTU9URV9HRU5FUkFUSU9OX0dVQVJEX1YxCjM5NDpyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSgpewozOTY6ICBbWyAiJGxhYmVsIiA9PSAiQSIgfHwgIiRsYWJlbCIgPT0gIkIiIF1dIHx8IGRpZSAiUkVNT1RFX1BST0JFX0xBQkVMX0lOVkFMSUQiIDY0CjM5NzogIHJvb3RfbGlzdGluZz0iJFdPUksvcmVtb3RlLSR7bGFiZWx9LXJvb3QubHNmIgozOTg6ICBsb2dpY2FsX2xpc3Rpbmc9IiRXT1JLL3JlbW90ZS0ke2xhYmVsfS1sb2dpY2FsLmxzZiIKNDAwOiAgaWYgISBydW5fcmNsb25lIGxzZiAiJHJvb3QiIC0tZGlycy1vbmx5IC0tbWF4LWRlcHRoIDEgPiIkcm9vdF9saXN0aW5nIjsgdGhlbgo0MDE6ICAgIGRpZSAiUkVNT1RFXyR7bGFiZWx9X1JPT1RfUFJPQkVfRkFJTEVEIiA3NAo0MDM6ICBpZiAhIGF3ayAtdiB0YXJnZXQ9IiRMT0dJQ0FMX0lELyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRyb290X2xpc3RpbmciOyB0aGVuCjQwNzogIGlmICEgcnVuX3JjbG9uZSBsc2YgIiR7cm9vdCUvfS8kTE9HSUNBTF9JRCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMSA+IiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQwODogICAgZGllICJSRU1PVEVfJHtsYWJlbH1fTE9HSUNBTF9QUk9CRV9GQUlMRUQiIDc0CjQxMDogIGlmIGF3ayAtdiB0YXJnZXQ9IiRHRU5FUkFUSU9OLyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQxNzphc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudCgpewo0MTg6ICBsb2NhbCBhX3N0YXRlIGJfc3RhdGUKNDE5OiAgYV9zdGF0ZT0iJChyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSBBICIkUkVNT1RFX0FfUk9PVCIpIgo0MjA6ICBiX3N0YXRlPSIkKHJlbW90ZV9nZW5lcmF0aW9uX3Byb2JlIEIgIiRSRU1PVEVfQl9ST09UIikiCjQyMTogIFtbICIkYV9zdGF0ZSIgPT0gIkFCU0VOVCIgXV0gfHwgZGllICJSRU1PVEVfQV9HRU5FUkFUSU9OX0FMUkVBRFlfRVhJU1RTIiA2NQo0MjI6ICBbWyAiJGJfc3RhdGUiID09ICJBQlNFTlQiIF1dIHx8IGRpZSAiUkVNT1RFX0JfR0VORVJBVElPTl9BTFJFQURZX0VYSVNUUyIgNjUKNDI1OiMgU0VDVElPTl9TVEFURV9UUkFOU0lUSU9OU19DTE9VRF9WMQo0MjY6YXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlKCl7CjQyODogIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQo0Mjk6ICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9QQVlMT0FEX0lERU5USVRZX0lOVkFMSUQiIDY1CjQzMDogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJUUkFOU0lUSU9OX1NPVVJDRV9JTlZBUklBTlRfSU5WQUxJRCIgNjUKNDMxOiAgYWN0dWFsPSIkKGpxIC1lciAnLnN0YXR1cyB8IHN0cmluZ3MnICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlRSQU5TSVRJT05fU1RBVFVTX0lOVkFMSUQiIDY1CjQzNjogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAKNDM3OiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQzODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSSU5HIgo0NDA6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NDU6ICAgIC0tYXJnIG1hbmlmZXN0X3NoYSAiJG1hbmlmZXN0X3NoYSIgXAo0NDg6ICAgICAuY2xvdWRfYV92ZXJpZmllZD10cnVlIHwKNDQ5OiAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDUwOiAgICAgLmNsb3VkX2FfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NTE6ICAgICAuY2xvdWRfcXVvcnVtPTEgfAo0NTI6ICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PSRtYW5pZmVzdF9zaGEnIFwKNDUzOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNDU1OiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNDU2OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkFfVkVSSUZJRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ2MDogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAgc2F2ZWRfbWFuaWZlc3QKNDYxOiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2MjogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiQV9WRVJJRklFRCIKNDYzOiAgc2F2ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwgc3RyaW5ncyB8IHNlbGVjdCh0ZXN0KCJeWzAtOWEtZl17NjR9JCIpKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2NDogIFtbICIkc2F2ZWRfbWFuaWZlc3QiID09ICIkbWFuaWZlc3Rfc2hhIiBdXSB8fCBkaWUgIlBBUlRTX01BTklGRVNUX1NIQV9DSEFOR0VEIiA2NQo0NjY6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NzM6ICAgICAuY2xvdWRfYl92ZXJpZmllZD10cnVlIHwKNDc0OiAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDc1OiAgICAgLmNsb3VkX2JfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NzY6ICAgICAuY2xvdWRfcXVvcnVtPTIgfAo0Nzg6ICAgICIkU1RBVEVfRklMRSIgPiIkdG1wIgo0ODA6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgo0ODE6ICBzdGF0ZV9waGFzZV9pbnZhcmlhbnRzX29rIHx8IGRpZSAiUFJFUEFSRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ4NDojIFNFQ1RJT05fU1RBVEVfVFJBTlNJVElPTlNfREVMRVRFX1YxCjQ4ODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSRUQiCjQ5MDogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUwMDogICAgIC5zZWFsX3dyaXR0ZW49ZmFsc2UnIFwKNTAxOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNTAzOiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNTA0OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1MDU6ICBqcSAtZSAnLmRlbGV0ZV9hdXRob3JpemVkX2F0X3V0YyB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwgfHwgZGllICJERUxFVEVfQVVUSE9SSVpFRF9USU1FU1RBTVBfSU5WQUxJRCIgNjUKNTEwOiAgYXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlICJERUxFVEVfQVVUSE9SSVpFRCIKNTEyOiAgaWYganEgLWUgJy5sb2NhbF9wYXlsb2FkX3ByZXNlbnQ9PWZhbHNlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRTVEFURV9GSUxFIiA+L2Rldi9udWxsOyB0aGVuCjUxNjogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUyNDogICAgIiRTVEFURV9GSUxFIiA+IiR0bXAiCjUyNjogIG12IC1mIC0tICIkdG1wIiAiJFNUQVRFX0ZJTEUiCjUyNzogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJMT0NBTF9ERUxFVEVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1Mjg6ICBqcSAtZSAnLmxvY2FsX2RlbGV0ZWRfYXRfdXRjIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbCB8fCBkaWUgIkxPQ0FMX0RFTEVURURfVElNRVNUQU1QX0lOVkFMSUQiIDY1CjUzMTojIFNFQ1RJT05fU1RBVEVfTUFOSUZFU1RfSU5WQVJJQU5UU19WMQo1MzI6c3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rKCl7CjUzNTogICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PT1udWxsCjUzOTogICAgICAgICAgLnN0YXR1cz09IlNFQUxFRCIpIHRoZW4KNTQwOiAgICAgICgucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwKNTQ2OiAgJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwKNTQ5OnN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2soKXsKNTUwOiAgc3RhdGVfcGhhc2VfY29yZV9pbnZhcmlhbnRzX29rICYmCjU1MTogICAgc3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rICYmCjU1MjogICAgc3RhdGVfc2VhbF9pbnZhcmlhbnRfb2sKNTYwOlBBUlRTX01BTklGRVNUPSIkV09SSy9QQVJUUy50c3YiCjU4OTogIGRkIGlmPSIkUEFZTE9BRF9SRUFMIiBvZj0iJFBBUlRfRklMRSIgYnM9MTA0ODU3NiBza2lwPSIkKCggaWR4ICogQ0hVTktfTUlCICkpIiBjb3VudD0iJENIVU5LX01JQiIgaWZsYWc9ZnVsbGJsb2NrIHN0YXR1cz1ub25lCjU5NzptYW5pZmVzdF9yZXNldCgpewo1OTg6ICA6ID4iJFBBUlRTX01BTklGRVNUIgo1OTk6ICBjaG1vZCAwNjAwICIkUEFSVFNfTUFOSUZFU1QiCjYwMjptYW5pZmVzdF9hcHBlbmRfY3VycmVudCgpewo2MDQ6ICBbWyAiJENVUlJFTlRfUEFSVF9OQU1FIiA9PSAiJChwYXJ0X25hbWUgIiRpZHgiKSIgXV0gfHwgZGllICJQQVJUX05BTUVfU1RBVEVfTUlTTUFUQ0giIDY1CjYwNTogIFtbICIkQ1VSUkVOVF9QQVJUX1NJWkUiID09ICIkKGV4cGVjdGVkX3BhcnRfc2l6ZSAiJGlkeCIpIiBdXSB8fCBkaWUgIlBBUlRfU0laRV9TVEFURV9NSVNNQVRDSCIgNjUKNjA2OiAgW1sgIiRDVVJSRU5UX1BBUlRfU0hBIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlBBUlRfU0hBX1NUQVRFX0lOVkFMSUQiIDY1CjYwNzogIHByaW50ZiAnJTA4ZFx0JXNcdCVzXHQlc1xuJyAiJGlkeCIgIiRDVVJSRU5UX1BBUlRfTkFNRSIgIiRDVVJSRU5UX1BBUlRfU0laRSIgIiRDVVJSRU5UX1BBUlRfU0hBIiA+PiIkUEFSVFNfTUFOSUZFU1QiCjYxMDptYW5pZmVzdF9maW5hbGl6ZSgpewo2MjE6ICAnICIkUEFSVFNfTUFOSUZFU1QiIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfSU5WQUxJRCIgNjUKNjIyOiAgUEFSVFNfTUFOSUZFU1RfU0hBPSIkKHNoYTI1NnN1bSAtLSAiJFBBUlRTX01BTklGRVNUIiB8IGF3ayAne3ByaW50ICQxfScpIgo2MjM6ICBbWyAiJFBBUlRTX01BTklGRVNUX1NIQSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQQVJUU19NQU5JRkVTVF9TSEFfSU5WQUxJRCIgNjUKNjI2OiMgU0VDVElPTl9SRU1PVEVfVVBMT0FEX1BSSU1JVElWRVNfVjEKNjI3OnJlbW90ZV9wYXJ0c19iYXNlKCl7CjYyOTogIFtbICIkYmFzZSIgPT0gIiRSRU1PVEVfQV9CQVNFIiB8fCAiJGJhc2UiID09ICIkUkVNT1RFX0JfQkFTRSIgXV0gfHwgZGllICJSRU1PVEVfQkFTRV9OT1RfQVBQUk9WRUQiIDY0CjYzMzpyZW1vdGVfbWFuaWZlc3RfcGF0aCgpewo2MzU6ICBbWyAiJGJhc2UiID09ICIkUkVNT1RFX0FfQkFTRSIgfHwgIiRiYXNlIiA9PSAiJFJFTU9URV9CX0JBU0UiIF1dIHx8IGRpZSAiUkVNT1RFX0JBU0VfTk9UX0FQUFJPVkVEIiA2NAo2NDM6ICBkZXN0aW5hdGlvbj0iJChyZW1vdGVfcGFydHNfYmFzZSAiJGJhc2UiKS8kQ1VSUkVOVF9QQVJUX05BTUUiCjY0NDogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVF9GSUxFIiAiJGRlc3RpbmF0aW9uIiAtLWltbXV0YWJsZSAtLXNpemUtb25seQo2NDc6dXBsb2FkX21hbmlmZXN0X2ltbXV0YWJsZSgpewo2NDk6ICBbWyAtcyAiJFBBUlRTX01BTklGRVNUIiAmJiAhIC1MICIkUEFSVFNfTUFOSUZFU1QiIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfTk9UX1JFQURZIiA2NQo2NTA6ICBbWyAiJHtQQVJUU19NQU5JRkVTVF9TSEE6LX0iID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfU0hBX05PVF9SRUFEWSIgNjUKNjUxOiAgZGVzdGluYXRpb249IiQocmVtb3RlX21hbmlmZXN0X3BhdGggIiRiYXNlIikiCjY1MjogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVFNfTUFOSUZFU1QiICIkZGVzdGluYXRpb24iIC0taW1tdXRhYmxlIC0tc2l6ZS1vbmx5CjY1NTojIFNFQ1RJT05fQ0xPVURfQV9VUExPQURfUEFTU19WMQ==\nPIPE_3_SCORE=5\nPIPE_3_BASENAME=vm150-runtime.py\nPIPE_3_PATH_SHA256=1f2b9620938f600855ee9172ae67b59709d740fe981c64c0d2b78b8298192b4f\nPIPE_3_FILE_SHA256=af1fcb7b519b60b203c940bfb6c6373fd012b691f1479f7e42a4c8b54bc17b2a\nPIPE_3_SCHEDULE_TARGET_COUNT=0\nPIPE_3_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_3_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_3_VZDUMP_QEMU_COUNT=1\nPIPE_3_RCLONE_COUNT=7\nPIPE_3_CLOUD_QUORUM_COUNT=2\nPIPE_3_SEAL_WRITTEN_COUNT=2\nPIPE_3_PAYLOAD_PARTS_COUNT=1\nPIPE_3_TRANSPORT_COUNT=0\nPIPE_3_RESTORE_VALIDATION_COUNT=0\nPIPE_3_SCHEDULE_RESULT_COUNT=0\nPIPE_3_RELEVANT_LINE_COUNT=175\nPIPE_3_RELEVANT_B64=MjE6Vk1JRD0xNTAKMjk6T0xEX1NUQVRFPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwJykvKE9MRF9HRU4rJy5qc29uJykKMzA6T0xEX1NUQVRFX1NIQT0nNjgwZGVjZDkwZWMwNmFmMTE5ZDRhNjUwN2RiOTRjMDA4N2E4YTIzNzM5NmFhNDhkZTBmMWFmYWM4NWJiYTY4OCcKMzE6T0xEX1JFU1RPUkU9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAnKS8oT0xEX0dFTisnLmpzb24nKQozMjpPTERfUkVTVE9SRV9TSEE9J2JiYTQ4Y2MzNWZhNjFmZjQ0MDc5ZGE5ZGZkNWI2NWI5N2U4NTZmNjM5Yjg5M2Y3ZGI4NTEwMGIyOGE1ODE2ZTAnCjM0OlNFQUw9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWFkbWluL3NlYWxzJykvKFRBU0tfSUQrJy5qc29uJykKMzU6U0VFRF9UQVJHRVQ9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi92ei90ZW1wbGF0ZS9pc28vc25pa2tldC12bTE1MC1zZWVkLmlzbycpCjUyOlFNUkVTVE9SRT0nL3Vzci9zYmluL3FtcmVzdG9yZScKNTQ6UkNMT05FPScvdXNyL2Jpbi9yY2xvbmUnCjU3OlFVRVVFPScvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUnCjU4OldPUktFUj0nL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLW5vZGUtd29ya2VyJwo2MDpCQUNLVVBfTE9DS1M9WycvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrJywnL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2snLCcvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2snXQo3NzpkZWYgcnVuKGFyZ3YsY2hlY2s9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSxlbnY9Tm9uZSk6Cjc4OiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KODg6ZGVmIHRleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6IHJldHVybiBydW4oYXJndixjaGVjaz1jaGVjayx0aW1lb3V0PXRpbWVvdXQpLnN0ZG91dC5kZWNvZGUoZXJyb3JzPSdyZXBsYWNlJykKODk6ZGVmIHJ1bl90dHkoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjkwOiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KMTY0OmRlZiB0YXJnZXRfc2hhcGUoY2ZnKToKMTgxOiAgICBpZiB0YXJnZXRfc2hhcGUoY2ZnKTogcmV0dXJuICdUQVJHRVQnCjE4NTogICAgcm93cz1beCBmb3IgeCBpbiBkYXRhIGlmIGludCh4LmdldCgndm1pZCcsLTEpKT09MTUwXQoyMDE6ZGVmIGFzc2VydF9vbGRfcmVjb3ZlcnkocmVhZF9yZW1vdGU9VHJ1ZSk6CjIwMjogICAgaWYgbm90IE9MRF9TVEFURS5pc19maWxlKCkgb3Igc2hhKE9MRF9TVEFURSkhPU9MRF9TVEFURV9TSEE6IGRpZSgnT0xEX1NUQVRFX1NIQV9NSVNNQVRDSCcsNjYpCjIwMzogICAgaWYgbm90IE9MRF9SRVNUT1JFLmlzX2ZpbGUoKSBvciBzaGEoT0xEX1JFU1RPUkUpIT1PTERfUkVTVE9SRV9TSEE6IGRpZSgnT0xEX1JFU1RPUkVfU0hBX01JU01BVENIJyw2NikKMjA0OiAgICBzdD1qc29uLmxvYWRzKE9MRF9TVEFURS5yZWFkX3RleHQoKSk7IHJ2PWpzb24ubG9hZHMoT0xEX1JFU1RPUkUucmVhZF90ZXh0KCkpCjIwNTogICAgY2hlY2tzPVtzdC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyxzdC5nZXQoJ2Nsb3VkX3F1b3J1bScpPT0yLHN0LmdldCgnY2xvdWRfYV92ZXJpZmllZCcpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9iX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3BhcnRfaGFzaGVzX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3NlYWxfd3JpdHRlbicpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9hX3NlYWxfdmVyaWZpZWQnKSBpcyBUcnVlLHN0LmdldCgnY2xvdWRfYl9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ2xvY2FsX2NsZWFudXAnKT09J09LJyxzdC5nZXQoJ2xvY2FsX3BheWxvYWRfcHJlc2VudCcpIGlzIEZhbHNlLHJ2LmdldCgncmVzdWx0Jyk9PSdPSycscnYuZ2V0KCdwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZCcpIGlzIFRydWUscnYuZ2V0KCdhcmNoaXZlX3JlY292ZXJ5X3JlYWRiYWNrX3ZlcmlmaWVkJykgaXMgVHJ1ZSxydi5nZXQoJ3Byb3htb3hfY29uZmlnX2V4dHJhY3RfdmVyaWZpZWQnKSBpcyBUcnVlXQoyMDc6ICAgIGlmIHJlYWRfcmVtb3RlOgoyMDg6ICAgICAgICBiYXNlPXN0LmdldCgncmVtb3RlX2FfYmFzZScpOyBtc2hhPXN0LmdldCgncGFydHNfbWFuaWZlc3Rfc2hhMjU2JykKMjA5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYmFzZSxzdHIpIG9yIG5vdCBiYXNlLmVuZHN3aXRoKCcvdm0xNTAvJytPTERfR0VOKTogZGllKCdPTERfUkVNT1RFX0FfQkFTRV9JTlZBTElEJyw2NikKMjEwOiAgICAgICAgc2VhbGI9cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL3NlYWwuanNvbiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTE6ICAgICAgICBtYW49cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL1BBUlRTLnRzdiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTI6ICAgICAgICB0cnk6IHJzPWpzb24ubG9hZHMoc2VhbGIpCjIxMzogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IGRpZSgnT0xEX1JFTU9URV9TRUFMX0pTT05fSU5WQUxJRCcsNjYpCjIxNDogICAgICAgIGlmIHJzLmdldCgnc3RhdHVzJykhPSdTRUFMRUQnIG9yIHJzLmdldCgnZ2VuZXJhdGlvbicpIT1PTERfR0VOIG9yIHJzLmdldCgnYXJjaGl2ZV9zaGEyNTYnKSE9c3QuZ2V0KCdhcmNoaXZlX3NoYTI1NicpOiBkaWUoJ09MRF9SRU1PVEVfU0VBTF9NSVNNQVRDSCcsNjYpCjIxNTogICAgICAgIGlmIHNoYV9ieXRlcyhtYW4pIT1tc2hhOiBkaWUoJ09MRF9SRU1PVEVfTUFOSUZFU1RfU0hBX01JU01BVENIJyw2NikKMjE4OmRlZiBiYWNrdXBfYnVzeSgpOgoyMTk6ICAgIHA9cnVuKFsnL3Vzci9iaW4vcGdyZXAnLCctYWYnLCcoXnwvKSh2emR1bXB8cW1yZXN0b3JlfHBjdHJlc3RvcmV8dm1hfHpzdGR8cmNsb25lKShbWzpzcGFjZTpdXXwkKXxob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1ub2RlLXdvcmtlciBiYWNrdXAnXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE1KQoyMzA6ICAgIGlmIG5vdCBwYXRobGliLlBhdGgoV09SS0VSKS5pc19maWxlKCkgb3Igc2hhKFdPUktFUikhPUNGR1sndm1fd29ya2VyX3NoYTI1NiddOiBkaWUoJ1ZNX1dPUktFUl9TT1VSQ0VfRFJJRlQnLDY2KQoyNTI6ICAgIGZyZWU9c2h1dGlsLmRpc2tfdXNhZ2UoJy9tbnQvc3RhZ2luZycpLmZyZWUKMjU3OiAgICBpZiBTRUFMLmV4aXN0cygpOiBkaWUoJ1RBU0tfQUxSRUFEWV9TRUFMRUQnLDY2KQoyNTk6ICAgIHN0YXRlPWNsYXNzaWZ5X3ZtKCk7IG93bmVyPWNsdXN0ZXJfb3duZXIoKQoyNjA6ICAgIGlmIHN0YXRlPT0nT0xEJzoKMjYyOiAgICBlbGlmIHN0YXRlPT0nVEFSR0VUJzoKMjYzOiAgICAgICAgaWYgb3duZXIhPSdwdmUwMScgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdWTTE1MF9UQVJHRVRfSURFTlRJVFlfSU5WQUxJRCcsNjYpCjI2NDogICAgZWxzZTogZGllKCdWTTE1MF9TVEFURV8nK3N0YXRlLDY2KQoyNjU6ICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQoyNjc6ICAgIG9iaj17J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlZmxpZ2h0LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6c3RhdGUsJ293bmVyJzpvd25lciwnb2xkX2dlbmVyYXRpb24nOk9MRF9HRU4sJ29sZF9yZWNvdmVyeSc6J1NFQUxFRF9SRVNUT1JFX1BST1ZFTicsJ2ltYWdlX3NoYTI1Nic6Q0ZHWydpbWFnZV9zaGEyNTYnXSwncXVldWVfc2hhMjU2JzpDRkdbJ3ZtX3F1ZXVlX3NoYTI1NiddLCd3b3JrZXJfc2hhMjU2JzpDRkdbJ3ZtX3dvcmtlcl9zaGEyNTYnXSwnZWRnZV9yZWFkb25seV9zaGEyNTYnOnNoYV9ieXRlcyhlZGdlLmVuY29kZSgpKSwnc291cmNlX2hlYWQnOnNvdXJjZV9oZWFkLCdzdGFnaW5nX2ZyZWVfYnl0ZXMnOmZyZWUsJ3JvbGxiYWNrX21pbl9mcmVlX2J5dGVzJzpuZWVkLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfQoyNjk6ICAgIHByaW50KGYnUFJFRkxJR0hUX1NUQVRVUz1PS3xWTTE1MD17c3RhdGV9fE9XTkVSPXtvd25lcn18T0xEX1JFQ09WRVJZPVNFQUxFRF9SRVNUT1JFX1BST1ZFTnxJTUFHRT1QSU5ORUR8U09VUkNFPXtzb3VyY2VfaGVhZH18U1RBR0lOR19ST0xMQkFDS19DQVBBQ0lUWT1PS3xFREdFX05QTVBMVVM9UkVBRF9PTkxZX09LfFBST0RVQ1RJT05fQ0hBTkdFRD1OTycpCjI3MTpkZWYgcGFyc2VfcGFydHMoc3QsbWFuaWZlc3RfYnl0ZXMpOgoyNzM6ICAgIGZvciBpLGxpbmUgaW4gZW51bWVyYXRlKG1hbmlmZXN0X2J5dGVzLmRlY29kZSgpLnNwbGl0bGluZXMoKSk6CjI3NTogICAgICAgIGlmIGxlbihmaWVsZHMpIT00OiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1JPV19JTlZBTElEJyw3MCkKMjc3OiAgICAgICAgaWYgaWR4IT1mJ3tpOjA4ZH0nIG9yIG5hbWUhPWYncGFydC17aTowOGR9LmJpbicgb3Igbm90IHNpemVfcy5pc2RpZ2l0KCkgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscHNoYSk6IGRpZSgnUk9MTEJBQ0tfTUFOSUZFU1RfUk9XX0lOVkFMSUQnLDcwKQoyODE6ICAgIGlmIGxlbihyb3dzKSE9aW50KHN0LmdldCgncGFydF9jb3VudCcsLTEpKSBvciB0b3RhbCE9aW50KHN0LmdldCgnYXJjaGl2ZV9zaXplX2J5dGVzJywtMSkpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1RPVEFMX0lOVkFMSUQnLDcwKQoyODY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsc3RyKSBvciBwYXRobGliLlBhdGgobmFtZSkubmFtZSE9bmFtZSBvciBub3QgbmFtZS5zdGFydHN3aXRoKCd2emR1bXAtcWVtdS0xNTAtJykgb3Igbm90IG5hbWUuZW5kc3dpdGgoJy52bWEuenN0Jyk6IGRpZSgnUk9MTEJBQ0tfQVJDSElWRV9OQU1FX0lOVkFMSUQnLDY2KQozMDE6ICAgIGJhc2U9c3RbJ3JlbW90ZV9hX2Jhc2UnXS5yc3RyaXAoJy8nKQozMDI6ICAgIG1hbmlmZXN0PXJ1bihbUkNMT05FLCdjYXQnLGJhc2UrJy9QQVJUUy50c3YnXSx0aW1lb3V0PTYwKS5zdGRvdXQKMzAzOiAgICBpZiBzaGFfYnl0ZXMobWFuaWZlc3QpIT1zdC5nZXQoJ3BhcnRzX21hbmlmZXN0X3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1NIQV9NSVNNQVRDSCcsNzApCjMwNDogICAgcm93cz1wYXJzZV9wYXJ0cyhzdCxtYW5pZmVzdCk7IG5hbWU9c2FmZV9hcmNoaXZlX25hbWUoc3QpCjMyODogICAgICAgICAgICBwPXN1YnByb2Nlc3MucnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZSsnL3BheWxvYWQucGFydHMvJytuYW1lX2ldLHN0ZG91dD1wZixzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTgwMCkKMzY5OiAgICAgICAgJyNjbG91ZC1jb25maWcnLCd1c2VyczonLCcgIC0gbmFtZTogZGViaWFuJywnICAgIGdlY29zOiBEZWJpYW4nLCcgICAgZ3JvdXBzOiBbc3Vkb10nLCcgICAgc3VkbzogIkFMTD0oQUxMKSBOT1BBU1NXRDpBTEwiJywnICAgIHNoZWxsOiAvYmluL2Jhc2gnLCcgICAgbG9ja19wYXNzd2Q6IHRydWUnLCcgICAgc3NoX2F1dGhvcml6ZWRfa2V5czonLCpbJyAgICAgIC0gJyt4IGZvciB4IGluIGtleXNdLAozODM6ICAgICMgUnVuIGluIHRoZSBzZWVkIGRpcmVjdG9yeSBzbyB0aGUgSVNPIGNvbnRhaW5zIHRoZSBjYW5vbmljYWwgTm9DbG91ZCBmaWxlbmFtZXMgYXQgaXRzIHJvb3QuCjQwMDogICAgaWYgeC5nZXQoJ3NjaGVtYScpIT0nc25pa2tldC12bTE1MC1zdGFnZS12Micgb3IgeC5nZXQoJ29sZF9nZW5lcmF0aW9uJykhPU9MRF9HRU4gb3IgeC5nZXQoJ29sZF9jb25maWdfc2hhMjU2JykhPU9MRF9DT05GSUdfU0hBOiBkaWUoJ1NUQUdFX01FVEFEQVRBX0lOVkFMSUQnLDY2KQo0MTM6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnVEFTS19BTFJFQURZX1NFQUxFRCcsNjYpCjQxNjogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyNjogICAgd2l0aCBleGNsdXNpdmVfbG9ja3MoQkFDS1VQX0xPQ0tTKToKNDI3OiAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyOTogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zdGFnZS12MicsJ2NvbXBsZXRlJzpUcnVlLCdjcmVhdGVkX29yX3JlZnJlc2hlZF9hdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwnb2xkX3N0YXRlX3NoYTI1Nic6T0xEX1NUQVRFX1NIQSwnb2xkX3Jlc3RvcmVfc2hhMjU2JzpPTERfUkVTVE9SRV9TSEEsJ29sZF9jb25maWdfc2hhMjU2JzpPTERfQ09ORklHX1NIQSwnaW1hZ2Vfc2hhMjU2JzpDRkdbJ2ltYWdlX3NoYTI1NiddLCdvcGVyYXRvcl9rZXlzX3NoYTI1Nic6c2hhKGtleXMpLCdzZWVkX3NoYTI1Nic6c2hhKHNlZWQpLCdyb2xsYmFja19hcmNoaXZlX25hbWUnOmFyY2hpdmUubmFtZSwncm9sbGJhY2tfYXJjaGl2ZV9ieXRlcyc6YXJjaGl2ZS5zdGF0KCkuc3Rfc2l6ZSwncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOnN0WydhcmNoaXZlX3NoYTI1NiddLCdtdXRhdGlvbl9zdGF0ZSc6J1BSRVBBUkVEJ30KNDMxOiAgICBwaGFzZV9qc29uKCdwcmVwYXJlJyx7J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlcGFyZS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnc3RhZ2UnOnN0cihTVEFHRSksJ29sZF9nZW5lcmF0aW9uJzpPTERfR0VOLCdyb2xsYmFja19hcmNoaXZlJzonTE9DQUxfUFJFU1RBR0VEX1ZFUklGSUVEJywncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOm9ialsncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnXSwnc2VlZF9zaGEyNTYnOm9ialsnc2VlZF9zaGEyNTYnXSwncHJpdmF0ZV9tYXRlcmlhbF9sb2dnZWQnOkZhbHNlLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfSkKNDMyOiAgICBwcmludChmJ1BSRVBBUkVfU1RBVFVTPU9LfE9MRF9HRU5FUkFUSU9OPXtPTERfR0VOfXxST0xMQkFDS19BUkNISVZFPUxPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRHxTRUVEPU5PX0NMT1VEX0NJREFUQXxQUklWQVRFX01BVEVSSUFMX0xPR0dFRD1OT3xQUk9EVUNUSU9OX0NIQU5HRUQ9Tk8nKQo0NjI6ZGVmIGd1ZXN0X2V4ZWMoYXJndix0aW1lb3V0PTEyMCxjaGVjaz1UcnVlLHJlcXVpcmVfcGlkPUZhbHNlKToKNDYzOiAgICBwPXJ1bihbUU0sJ2d1ZXN0JywnZXhlYycsJzE1MCcsJy0tJ10rbGlzdChhcmd2KSx0aW1lb3V0PW1pbih0aW1lb3V0LDEyMCkpCjQ4MDogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQ5MDogICAgaWYgbm90IGlkZV9jb250cmFjdCBvciBub3QgaXBjb25maWdfY29udHJhY3Q6IGRpZSgnUU1fU0VUX0NMT1VESU5JVF9DT05UUkFDVF9VTlBST1ZFTicsNjYpCjQ5NDogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1kcnktcnVuLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwncm9sbGJhY2tfYXJjaGl2ZSc6J0xPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRCcsJ3FnYV9hc3luY19jb250cmFjdCc6J1BST1ZFTl9PTl9DVVJSRU5UX1ZNMTUwJywndGFyZ2V0Jzp7J25hbWUnOidzbmlra2V0Jywndm1pZCc6MTUwLCdjb3Jlcyc6NCwnbWVtb3J5X21pYic6ODE5MiwnZGlza19naWInOjY0LCdpcCc6SVAsJ2dhdGV3YXknOkdXLCdtYWMnOk1BQywnZG5zJzpbR1csJ1tQUklWQVRFX0lQXSddfSwncHJveG1veF9zZXF1ZW5jZSc6WydzaHV0ZG93biBvbGQgVk0xNTAnLCdkZXN0cm95IGV4YWN0IG9sZCBWTTE1MCcsJ2NyZWF0ZSBWTTE1MCcsJ2ltcG9ydCBwaW5uZWQgRGViaWFuIDEzIGdlbmVyaWMgaW1hZ2UnLCdhdHRhY2grcmVzaXplIDY0RycsJ2F0dGFjaCB0YXNrLW93bmVkIE5vQ2xvdWQgY2lkYXRhIElTTycsJ3N0YXJ0IGFuZCB3YWl0IGZvciBndWVzdC1wcm92aXNpb24gdmlhIFFHQScsJ3N0b3AgYW5kIGRldGFjaCBzZWVkIElTTycsJ3Jlc3RhcnQgYW5kIHJldmVyaWZ5IGxvY2FsIFNuaWtrZXQgaGVhbHRoJywnY3JlYXRlIHJvb3Qtb25seSBhZG1pbiBpbnZpdGUnLCdjcmVhdGUgZnJlc2ggY2Fub25pY2FsIHJlc3RvcmUtcHJvdmVuIFZNMTUwIGJhY2t1cCddLCdyb2xsYmFjayc6J3ByZS1zdGFnZWQgZXhhY3Qgb2xkIGFyY2hpdmUgKyBxbXJlc3RvcmUgMTUwJywncHJvZHVjdGlvbl9jaGFuZ2VkJzpGYWxzZX0KNDk2OiAgICBwcmludCgnRFJZX1JVTl9TVEFUVVM9T0t8UFJPRFVDVElPTl9DSEFOR0VEPU5PfFJPTExCQUNLPUxPQ0FMX1BSRVNUQUdFRF9RTVJFU1RPUkV8UUdBX0FTWU5DX0NPTlRSQUNUPVBST1ZFTnxUQVJHRVQ9Vk0xNTBfU05JS0tFVCcpCjQ5OTpkZWYgZXhjbHVzaXZlX2xvY2tzKHBhdGhzKToKNTA0OiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX0VYfGZjbnRsLkxPQ0tfTkIpCjUwNTogICAgICAgICAgICBleGNlcHQgQmxvY2tpbmdJT0Vycm9yOgo1MDY6ICAgICAgICAgICAgICAgIGYuY2xvc2UoKTsgZGllKCdMT0NLX0JVU1lfJytwYXRobGliLlBhdGgocSkubmFtZSw3NSkKNTExOiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjUzMjogICAgaWYgU0VFRF9UQVJHRVQuZXhpc3RzKCk6CjUzMzogICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9QUkVFWElTVFNfRElGRkVSRU5UJyw2NikKNTM1OiAgICB0bXA9U0VFRF9UQVJHRVQud2l0aF9uYW1lKFNFRURfVEFSR0VULm5hbWUrJy5uZXcuJytzdHIob3MuZ2V0cGlkKCkpKQo1MzY6ICAgIHNodXRpbC5jb3B5ZmlsZShzcmMsdG1wKTsgb3MuY2htb2QodG1wLDBvNjAwKTsgb3MucmVwbGFjZSh0bXAsU0VFRF9UQVJHRVQpCjUzNzpkZWYgY3JlYXRlX3RhcmdldCgpOgo1NTA6ICAgIGlmIG5vdCB0YXJnZXRfc2hhcGUocW1fY29uZmlnKCkpOiBkaWUoJ1RBUkdFVF9DT05GSUdfU0hBUEVfSU5WQUxJRCcsNzApCjU3MDogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdUQVJHRVRfVk1fTk9UX1JVTk5JTkcnLDcwKQo1ODQ6ICAgICAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNTg2OiAgICAgICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9TSEFfRFJJRlQnLDcwKQo1ODc6ICAgICAgICAgICAgU0VFRF9UQVJHRVQudW5saW5rKCkKNTk0OiAgICBlbGlmIFNFRURfVEFSR0VULmV4aXN0cygpOgo1OTU6ICAgICAgICBkaWUoJ1VOUkVGRVJFTkNFRF9TRUVEX1RBUkdFVF9QUkVTRU5UJyw3MCkKNjA1OmRlZiBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik6CjYwNjogICAgc2Y9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAnKS8oZ2VuKycuanNvbicpOyByZj1wYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbi92bTE1MCcpLyhnZW4rJy5qc29uJykKNjA3OiAgICBpZiBub3Qgc2YuaXNfZmlsZSgpIG9yIG5vdCByZi5pc19maWxlKCk6IGRpZSgnTkVXX0JBQ0tVUF9FVklERU5DRV9NSVNTSU5HJyw3MCkKNjA5OiAgICBvaz1zLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBzLmdldCgnY2xvdWRfcXVvcnVtJyk9PTIgYW5kIHMuZ2V0KCdjbG91ZF9hX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2JfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCBzLmdldCgnY2xvdWRfYV9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2Jfc2VhbF92ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdwYXJ0X2hhc2hlc192ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdzZWFsX3dyaXR0ZW4nKSBpcyBUcnVlIGFuZCBzLmdldCgnbG9jYWxfcGF5bG9hZF9wcmVzZW50JykgaXMgRmFsc2UgYW5kIHMuZ2V0KCdsb2NhbF9jbGVhbnVwJyk9PSdPSycgYW5kIHIuZ2V0KCdyZXN1bHQnKT09J09LJyBhbmQgci5nZXQoJ3BheWxvYWRfc2hhMjU2X3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgci5nZXQoJ2FyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCByLmdldCgncHJveG1veF9jb25maWdfZXh0cmFjdF92ZXJpZmllZCcpIGlzIFRydWUKNjEwOiAgICBpZiBub3Qgb2s6IGRpZSgnTkVXX0JBQ0tVUF9OT1RfU1RSSUNUTFlfUFJPVkVOJyw3MCkKNjEyOmRlZiBmb3JjZV9iYWNrdXAoKToKNjEzOiAgICBlbnY9b3MuZW52aXJvbi5jb3B5KCk7IGVudlsnSE9NRUxBQl9CQUNLVVBfRElTUEFUQ0hFUiddPScxJwo2MTQ6ICAgIHA9cnVuKFtXT1JLRVIsJ2JhY2t1cCcsJzE1MCddLHRpbWVvdXQ9NTQwMCxlbnY9ZW52KQo2MTY6ICAgIG09cmUuc2VhcmNoKHInKD9tKV5HRU5FUkFUSU9OPSh2bTE1MC1wdmUwMS1bMC05VFpdKykkJyxvdXQpCjYxNzogICAgaWYgbm90IG06IGRpZSgnTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDcwKQo2MTk6ICAgIGlmIGdlbj09T0xEX0dFTjogZGllKCdORVdfQkFDS1VQX1JFVVNFRF9PTERfR0VORVJBVElPTicsNzApCjYyMDogICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjYyMzpkZWYgcmVzdG9yZV9vbGRfbG9ja2VkKCk6CjYyNjogICAgcnVuX3R0eShbUU1SRVNUT1JFLHN0cihhcmNoaXZlKSwnMTUwJywnLS1zdG9yYWdlJywnbG9jYWwtbHZtJ10sdGltZW91dD0yNDAwKQo2Mjc6ICAgIGlmIG5vdCBvbGRfY2ZnX21hdGNoKHFtX2NvbmZpZygpKTogZGllKCdST0xMQkFDS19SRVNUT1JFRF9DT05GSUdfU0hBX01JU01BVENIJyw3MCkKNjI4OiAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNjMwOiAgICAgICAgaWYgc2hhKFNFRURfVEFSR0VUKSE9c3guZ2V0KCdzZWVkX3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX1NFRURfVEFSR0VUX1NIQV9EUklGVCcsNzApCjYzMTogICAgICAgIFNFRURfVEFSR0VULnVubGluaygpCjY0MDogICAgaWYgU0VBTC5leGlzdHMoKTogZGllKCdUQVNLX0FMUkVBRFlfU0VBTEVEJyw2NikKNjQzOiAgICBzdGF0ZT1jbGFzc2lmeV92bSgpCjY0NDogICAgaWYgc3RhdGUgbm90IGluICgnT0xEJywnVEFSR0VUJyk6IGRpZSgnQVBQTFlfVk1fU1RBVEVfJytzdGF0ZSw2NikKNjQ1OiAgICBzeD1zdGFnZV9vYmooVHJ1ZSk7IG11dGF0aW9uX3N0YXRlPXN4LmdldCgnbXV0YXRpb25fc3RhdGUnKQo2NDY6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJzogZGllKCdBUFBMWV9SRUZVU0VTX0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU5fVVNFX1NFQUwnLDY2KQo2NDc6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdUQVJHRVRfQkFDS1VQX1BST1ZFTic6CjY0ODogICAgICAgIGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjQ5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cik6IGRpZSgnQVBQTFlfUkVVU0VfR0VORVJBVElPTl9NSVNTSU5HJyw2NikKNjUwOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pOyBsb2NhbF9oZWFsdGgoKQo2NTE6ICAgICAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2UsJ3JldXNlZF9wcm92ZW5fYXBwbHlfc3RhdGUnOlRydWV9KQo2NTI6ICAgICAgICBwcmludChmJ0FQUExZX1NUQVRVUz1PS3xSRVNVTFQ9UkVVU0VEX1BST1ZFTl9UQVJHRVR8Vk0xNTA9U05JS0tFVHxORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58T0xEX0dFTkVSQVRJT05fUFJFU0VSVkVEPXtPTERfR0VOfXxJTkdSRVNTX0FUVEVTVEVEPVlFU3xJTlZJVEVfTE9HR0VEPU5PJykKNjU0OiAgICBtdXRhdGlvbl9zdGFydGVkPShzdGF0ZT09J1RBUkdFVCcpOyB0YXJnZXRfZ3JlZW49bXV0YXRpb25fc3RhdGUgaW4gKCdUQVJHRVRfTE9DQUxfR1JFRU4nLCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKQo2NTU6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjY1NjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjY1ODogICAgICAgICAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjY1OTogICAgICAgICAgICAgICAgaWYgc3RhdGU9PSdPTEQnOgo2NjA6ICAgICAgICAgICAgICAgICAgICBkZXN0cm95X3ZtKCk7IG11dGF0aW9uX3N0YXJ0ZWQ9VHJ1ZTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdPTERfUkVNT1ZFRCcpCjY2MTogICAgICAgICAgICAgICAgICAgIGNyZWF0ZV90YXJnZXQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfQ1JFQVRFRCcpCjY2MzogICAgICAgICAgICAgICAgcHJvdmlzaW9uX2hhc2g9d2FpdF9ndWVzdF9wcm92aXNpb24oKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfUFJPVklTSU9ORUQnLGd1ZXN0X3Byb3Zpc2lvbl9zdGF0dXNfc2hhMjU2PXByb3Zpc2lvbl9oYXNoKQo2NjU6ICAgICAgICAgICAgICAgIHRhcmdldF9ncmVlbj1UcnVlOyB1cGRhdGVfc3RhZ2UobXV0YXRpb25fc3RhdGU9J1RBUkdFVF9MT0NBTF9HUkVFTicsbG9jYWxfaGVhbHRoX2JlZm9yZV9zZWVkX2RldGFjaF9zaGEyNTY9aGVhbHRoMSxsb2NhbF9oZWFsdGhfYWZ0ZXJfc2VlZF9kZXRhY2hfc2hhMjU2PWhlYWx0aDIpCjY2NjogICAgICAgICAgICAgICAgaW52aXRlX3N0YXRlPWdlbmVyYXRlX2ludml0ZSgpOyB1cGRhdGVfc3RhZ2UoYWRtaW5faW52aXRlPWludml0ZV9zdGF0ZSkKNjY3OiAgICAgICAgICAgICAgICBnZW4sYmhhc2g9Zm9yY2VfYmFja3VwKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nVEFSR0VUX0JBQ0tVUF9QUk9WRU4nLG5ld19nZW5lcmF0aW9uPWdlbixiYWNrdXBfb3V0cHV0X3NoYTI1Nj1iaGFzaCkKNjY5OiAgICAgICAgICAgICAgICBpZiBtdXRhdGlvbl9zdGFydGVkIGFuZCBub3QgdGFyZ2V0X2dyZWVuOgo2NzE6ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcF92bSgpOyByZXN0b3JlX29sZF9sb2NrZWQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdBVVRPX1JPTExFRF9CQUNLX09MRCcpCjY3MjogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnQVVUT19ST0xMQkFDS19TVEFUVVM9T0t8UkVTVE9SRUQ9U05JS0tFVF9CQVNFTElORV9WTTE1MCcsZmlsZT1zeXMuc3RkZXJyKQo2NzU6ICAgICAgICAgICAgICAgIGVsaWYgbXV0YXRpb25fc3RhcnRlZCBhbmQgdGFyZ2V0X2dyZWVuOgo2NzY6ICAgICAgICAgICAgICAgICAgICBwcmludCgnUkVTVU1FX1NBRkVfVEFSR0VUX1BSRVNFUlZFRD1ZRVMnLGZpbGU9c3lzLnN0ZGVycikKNjc4OiAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2V9KQo2Nzk6ICAgIHByaW50KGYnQVBQTFlfU1RBVFVTPU9LfFZNMTUwPVNOSUtLRVR8TE9DQUxfSEVBTFRIPU9LfFNFRURfREVUQUNIRUQ9WUVTfE5FV19CQUNLVVA9e2dlbn18TkVXX0JBQ0tVUF9SRVNUT1JFPVBST1ZFTnxPTERfR0VORVJBVElPTl9QUkVTRVJWRUQ9e09MRF9HRU59fElOR1JFU1NfQVRURVNURUQ9WUVTfEFETUlOX0lOVklURT1ST09UX09OTFlfRklMRXxJTlZJVEVfTE9HR0VEPU5PJykKNjk2OiAgICBpZiBjbGFzc2lmeV92bSgpIT0nVEFSR0VUJyBvciBxbV9zdGF0dXMoKSE9J3J1bm5pbmcnOiBkaWUoJ1ZFUklGWV9UQVJHRVRfVk1fSU5WQUxJRCcsNjYpCjY5NzogICAgaGVhbHRoPWxvY2FsX2hlYWx0aCgpOyBzeD1zdGFnZV9vYmooVHJ1ZSk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjk4OiAgICBpZiBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdWRVJJRllfTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDY2KQo2OTk6ICAgIHN0cmljdF9iYWNrdXBfZXZpZGVuY2UoZ2VuKQo3MTI6ICAgIHBoYXNlX2pzb24oJ3ZlcmlmeScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXZlcmlmeS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnbG9jYWxfaGVhbHRoX3NoYTI1Nic6aGVhbHRoLCdwdWJsaWNfZG5zJzpkbnMsJ2xvY2FsX3NwbGl0X2Rucyc6bG9jYWwsJ2VkZ2VfaHR0cHMnOmVkZ2VfaHR0cHMsJ3dlbGxfa25vd24nOidPSycsJ25ld19nZW5lcmF0aW9uJzpnZW4sJ25ld19iYWNrdXBfcmVzdG9yZSc6J1BST1ZFTicsJ2ZlZGVyYXRpb25fNTI2OV93YW4nOidPUEVSQVRPUl9OT19GT1JXQVJEX0FUVEVTVEFUSU9OX1JFUVVJUkVEJywnbW9iaWxlX2F2JzonT1BFUkFUT1JfRlVOQ1RJT05BTF9URVNUX1JFUVVJUkVEJywnbGltaXRlZF9yb2xlcyc6J1JFQ09NTUVOREVEX0ZPUl9GQU1JTFlfVVNFUlMnfSkKNzEzOiAgICBwcmludChmJ1ZFUklGWV9TVEFUVVM9T0t8UFVCTElDX0ROUz1PS3xMT0NBTF9TUExJVF9ETlM9RElSRUNUX1ZNMTUwfEVER0VfSFRUUFM9T0t8V0VMTF9LTk9XTj1PS3xORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58UkVRVUlSRVNfT1BFUkFUT1JfQVRURVNUQVRJT049Tk9fV0FOXzUyNjlfQU5EX01PQklMRV9BVl9BTkRfQURNSU4nKQo3MTY6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnUk9MTEJBQ0tfUkVGVVNFU19TRUFMRUQnLDY2KQo3MjE6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjcyMjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjcyMzogICAgICAgICAgICBpZiBiYWNrdXBfYnVzeSgpOiBkaWUoJ0FDVElWRV9CQUNLVVBfUkVTVE9SRV9QUkVTRU5UJyw3NSkKNzI0OiAgICAgICAgICAgIHN0b3Bfdm0oKTsgcmVzdG9yZV9vbGRfbG9ja2VkKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nUk9MTEVEX0JBQ0tfT0xEJykKNzI1OiAgICBwaGFzZV9qc29uKCdyb2xsYmFjaycseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXJvbGxiYWNrLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdyZXN1bHQnOidSRVNUT1JFRF9PTEQnLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTn0pCjcyNjogICAgcHJpbnQoZidST0xMQkFDS19TVEFUVVM9T0t8UkVTVUxUPVJFU1RPUkVEX05FWFRDTE9VRHxPTERfR0VORVJBVElPTj17T0xEX0dFTn0nKQo3Mjg6ZGVmIHNlYWwoKToKNzI5OiAgICBpZiBTRUFMLmV4aXN0cygpOgo3MzA6ICAgICAgICB4PWpzb24ubG9hZHMoU0VBTC5yZWFkX3RleHQoKSkKNzMxOiAgICAgICAgaWYgeC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgeC5nZXQoJ3Rhc2tfaWQnKT09VEFTS19JRDoKNzMyOiAgICAgICAgICAgIHBoYXNlX2pzb24oJ3NlYWwnLHgpOyBwcmludCgnU0VBTF9TVEFUVVM9T0t8UkVTVUxUPUFMUkVBRFlfU0VBTEVEJyk7IHJldHVybgo3MzM6ICAgICAgICBkaWUoJ0VYSVNUSU5HX1NFQUxfSU5WQUxJRCcsNjYpCjczNDogICAgc3g9c3RhZ2Vfb2JqKFRydWUpOyBtdXRhdGlvbl9zdGF0ZT1zeC5nZXQoJ211dGF0aW9uX3N0YXRlJyk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNzM1OiAgICBpZiBtdXRhdGlvbl9zdGF0ZSBub3QgaW4gKCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKSBvciBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdTRUFMX1RBUkdFVF9CQUNLVVBfTk9UX1BST1ZFTicsNjYpCjczNjogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdTRUFMX1RBUkdFVF9JTlZBTElEJyw2NikKNzM3OiAgICBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik7IGxvY2FsX2hlYWx0aCgpCjc0MjogICAgcHJlX2FkbWluX2dlbj1zeC5nZXQoJ3ByZV9hZG1pbl9nZW5lcmF0aW9uJykgaWYgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJyBlbHNlIGdlbgo3NDM6ICAgIGlmIG11dGF0aW9uX3N0YXRlIT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTic6Cjc0NDogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6Cjc0NTogICAgICAgICAgICB3aXRoIGV4Y2x1c2l2ZV9sb2NrcyhCQUNLVVBfTE9DS1MpOgo3NDY6ICAgICAgICAgICAgICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQo3NDc6ICAgICAgICAgICAgICAgIGZpbmFsX2dlbixmaW5hbF9oYXNoPWZvcmNlX2JhY2t1cCgpCjc0ODogICAgICAgIHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTicscHJlX2FkbWluX2dlbmVyYXRpb249cHJlX2FkbWluX2dlbixuZXdfZ2VuZXJhdGlvbj1maW5hbF9nZW4sZmluYWxfYmFja3VwX291dHB1dF9zaGEyNTY9ZmluYWxfaGFzaCkKNzUxOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjc1MjogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zZWFsLXYyJywnc3RhdHVzJzonU0VBTEVEJywndGFza19pZCc6VEFTS19JRCwnY2hhbmdlX2lkJzpDRkdbJ2NoYW5nZV9pZCddLCdzb3VyY2VfaGVhZCc6c291cmNlX2hlYWQsJ3NlYWxlZF9hdF91dGMnOm5vdygpLCd2bWlkJzoxNTAsJ2RvbWFpbic6J2NoYXQuZ3JhbTEucnUnLCdwcmVfYWRtaW5fZ2VuZXJhdGlvbic6cHJlX2FkbWluX2dlbiwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnOlRydWUsJ29sZF9nZW5lcmF0aW9uX3ByZXNlcnZlZCc6T0xEX0dFTiwnbW9iaWxlX2F2X3Rlc3QnOidQQVNTJywnd2FuXzUyNjlfZm9yd2FyZGVkJzpGYWxzZSwnYWRtaW5fYWNjb3VudF9jcmVhdGVkJzpUcnVlLCdmYW1pbHlfdXNlcl9yb2xlJzonTElNSVRFRF9SRUNPTU1FTkRFRCcsJ2ludml0ZV9sb2dnZWQnOkZhbHNlfQo3NTc6ICAgIGF0b21pY19qc29uKFNFQUwsb2JqKQo3NTg6ICAgIHBoYXNlX2pzb24oJ3NlYWwnLG9iaikKNzU5OiAgICBwcmludChmJ1NFQUxfU1RBVFVTPU9LfFRBU0s9e1RBU0tfSUR9fEZJTkFMX1BPU1RfQURNSU5fQkFDS1VQPXtnZW59fE1PQklMRV9BVj1QQVNTfFdBTl81MjY5PU5PVF9GT1JXQVJERUR8QURNSU5fQUNDT1VOVD1DUkVBVEVEfElOVklURV9MT0dHRUQ9Tk98Uk9MTEJBQ0tfU1RBR0VfUkVUQUlORUQ9WUVTJykKNzYyOiAgICBhY3Rpb249c3lzLmFyZ3ZbMV0gaWYgbGVuKHN5cy5hcmd2KT09MiBlbHNlICcnCjc2NDogICAgICAgIGFjdGlvbnM9eydwcmVmbGlnaHQnOnByZWZsaWdodCwncHJlcGFyZSc6cHJlcGFyZSwnZHJ5LXJ1bic6ZHJ5cnVuLCdhcHBseSc6YXBwbHksJ3ZlcmlmeSc6dmVyaWZ5LCdyb2xsYmFjayc6cm9sbGJhY2ssJ3NlYWwnOnNlYWx9\nPIPE_4_SCORE=5\nPIPE_4_BASENAME=homelab-backup-audit\nPIPE_4_PATH_SHA256=8625af1e2ff2eda46e03d400dced040d3506b25fd94cde5318eca74aa3a80888\nPIPE_4_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3\nPIPE_4_SCHEDULE_TARGET_COUNT=0\nPIPE_4_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_4_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_4_VZDUMP_QEMU_COUNT=0\nPIPE_4_RCLONE_COUNT=5\nPIPE_4_CLOUD_QUORUM_COUNT=2\nPIPE_4_SEAL_WRITTEN_COUNT=2\nPIPE_4_PAYLOAD_PARTS_COUNT=1\nPIPE_4_TRANSPORT_COUNT=1\nPIPE_4_RESTORE_VALIDATION_COUNT=0\nPIPE_4_SCHEDULE_RESULT_COUNT=0\nPIPE_4_RELEVANT_LINE_COUNT=114\nPIPE_4_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg==\nPIPE_5_SCORE=4\nPIPE_5_BASENAME=legacy_engine.py\nPIPE_5_PATH_SHA256=e4ceeb7671a8cdc119c5427c862109ecbbefb90b06c59ce1dcb68b03b8e96c95\nPIPE_5_FILE_SHA256=5715651655da32530df84a5a095b772d21dc0d1f92789465e9e6b5b1ff8a16e3\nPIPE_5_SCHEDULE_TARGET_COUNT=1\nPIPE_5_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_5_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_5_VZDUMP_QEMU_COUNT=0\nPIPE_5_RCLONE_COUNT=31\nPIPE_5_CLOUD_QUORUM_COUNT=0\nPIPE_5_SEAL_WRITTEN_COUNT=0\nPIPE_5_PAYLOAD_PARTS_COUNT=0\nPIPE_5_TRANSPORT_COUNT=3\nPIPE_5_RESTORE_VALIDATION_COUNT=0\nPIPE_5_SCHEDULE_RESULT_COUNT=2\nPIPE_5_RELEVANT_LINE_COUNT=350\nPIPE_5_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgaGVscGVyPVBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQvJ3B2ZTI2NV9hcmd2X2hlbHBlci5weScKNDQxOiAgICByZXE9eydqb2InOmpvYiwndnpkdW1wJzpzdHIodnpkdW1wKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpLCdub3cnOmludChub3cpfQo0NDM6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX0ZBSUxFRCcpCjQ0NDogICAgaWYgcC5zdGRlcnIgb3IgbGVuKHAuc3Rkb3V0KT42NTUzNjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0NTogICAgdHJ5OiBhcmd2PWpzb24ubG9hZHMocC5zdGRvdXQuZGVjb2RlKCd1dGYtOCcsJ3N0cmljdCcpKQo0NDY6ICAgIGV4Y2VwdCAoVW5pY29kZURlY29kZUVycm9yLGpzb24uSlNPTkRlY29kZUVycm9yKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpIGZyb20gTm9uZQo0NDc6ICAgIGlmIHR5cGUoYXJndikgaXMgbm90IGxpc3Qgb3Igbm90IGFyZ3Ygb3IgYW55KHR5cGUoeCkgaXMgbm90IHN0ciBvciBub3QgeCBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0ODogICAgcmV0dXJuIGFyZ3YKNDUzOiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1NzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1ODogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NjE6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ2MjogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NjM6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2NDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjU6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2NzogICAgYXJndj1saXN0KGFyZ3YpCjQ2ODogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2OTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ3MDogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ3MTogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ3MjogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0NzM6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDc0OiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3NTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3NjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3NzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3OTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0ODA6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ4MjogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0ODM6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4ODogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4OTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDkxOmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDkzOiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTU6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTY6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo1MDI6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwNjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwNzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTEwOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MTE6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTEzOiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTE2OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxNzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE5OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTIwOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTIzOiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTI1OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjY6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1Mjg6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTMwOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MzE6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUzMjogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUzMzogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTM1OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzY6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM4OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjU0MjogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0NDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQ1OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ4OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NTI6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2NjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1Njk6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU3MTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTc2OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTg1OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTg2OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTg3OiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg5OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU5MTogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5OTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo2MDM6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwNzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MTI6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxNzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTk6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjIxOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjIyOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYyMzogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjI0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyNTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI5OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MzA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MzE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MzI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjMzOiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjM0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzU6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2Mzc6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjYwOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjYzOiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2Njc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2ODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2OTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjcwOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjc0MzogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQ2OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDc6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDg6ICAgIHRhcmdldD1oaXRzWzBdCjc1NjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzU3OiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzYwOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzc1OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzgzOiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODc6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzkwOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc5MTogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0\nPIPE_6_SCORE=4\nPIPE_6_BASENAME=legacy_engine.py\nPIPE_6_PATH_SHA256=b08598c199b979909827472414e9d774eed12f00ff61eb1534b9cf9ff4333d05\nPIPE_6_FILE_SHA256=a5f1b1701a39eb22cf2f061d7daa7afa92789320c30b108371c3ee47d57f817c\nPIPE_6_SCHEDULE_TARGET_COUNT=1\nPIPE_6_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_6_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_6_VZDUMP_QEMU_COUNT=0\nPIPE_6_RCLONE_COUNT=31\nPIPE_6_CLOUD_QUORUM_COUNT=0\nPIPE_6_SEAL_WRITTEN_COUNT=0\nPIPE_6_PAYLOAD_PARTS_COUNT=0\nPIPE_6_TRANSPORT_COUNT=3\nPIPE_6_RESTORE_VALIDATION_COUNT=0\nPIPE_6_SCHEDULE_RESULT_COUNT=2\nPIPE_6_RELEVANT_LINE_COUNT=340\nPIPE_6_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgcmVxPXsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX1NVQlBST0NFU1NfRkFJTEVEJykKNDYyOiAgICBpZiBwLnN0ZGVyciBvciBsZW4ocC5zdGRvdXQpPjEwNDg1NzY6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NDogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fU1VCUFJPQ0VTU19PVVRQVVQnKSBmcm9tIE5vbmUKNDY1OiAgICBpZiB0eXBlKGQpIGlzIG5vdCBkaWN0IG9yIHNldChkKSE9eydhcmd2Jywnam9iJ306IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NjogICAgYXJndj1kWydhcmd2J107am9iPWRbJ2pvYiddO3ZtaWQ9aW50KHRbJ3ZtaWQnXSkKNDY3OiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2ODogICAgaWYgdHlwZShqb2IpIGlzIG5vdCBkaWN0IG9yIGpvYi5nZXQoJ3ZtaWQnKSE9dm1pZCBvciBqb2IuZ2V0KCdub2RlJykhPXN0cihub2RlKSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnIG9yIGpvYi5nZXQoJ2NvdmVyYWdlX2VsaWdpYmxlJykgaXMgbm90IFRydWUgb3Igam9iLmdldCgnYmxvY2tlcnMnKSE9W106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9KT0InKQo0Njk6ICAgIGlmIGFyZ3ZbMF0hPScvdXNyL2Jpbi92emR1bXAnIG9yIGxlbihhcmd2KTwyIG9yIGFyZ3ZbMV0hPXN0cih2bWlkKSBvciAnLS1zdGRvdXQnIG5vdCBpbiBhcmd2IG9yICctLXRtcGRpcicgbm90IGluIGFyZ3Ygb3Igc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fQVJHVicpCjQ3MDogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3MjpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzM6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3NTogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0NzY6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4MTogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4MjogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg0OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg2OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0ODg6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0ODk6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTU6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjQ5OTogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMDogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTAzOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDQ6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA2OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTA5OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMDogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTExOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEyOiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEzOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE2OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTE4OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MTk6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjE6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTIzOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MjQ6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyNTogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyNjogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTI4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1Mjk6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTMxOiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzNTogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUzNzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTM4OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQxOiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDU6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU1OTogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjI6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NDogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTY5OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTc4OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTc5OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgwOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTgyOmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NDogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1ODc6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5MjogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTY6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMDogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDU6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMDogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTI6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjEzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxNjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYxODogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjIyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MjQ6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MjU6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI2OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2Mjg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzA6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjUzOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU2OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2MTogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2MjogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjYzOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczNjogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzM5OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDA6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDE6ICAgIHRhcmdldD1oaXRzWzBdCjc0OTogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUwOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzUzOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzY4OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc2OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODA6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzgzOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NDogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5NTogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjc5NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo3OTk6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDA6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjgwMjogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo4MDM6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo4MDU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjgwODogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo4MTU6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo4MTg6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDAp\nPIPE_7_SCORE=4\nPIPE_7_BASENAME=legacy_engine.py\nPIPE_7_PATH_SHA256=d01be8c91a53c39ac6295a389b40b6b216db5f0cce27d2482e8f29523278d1d9\nPIPE_7_FILE_SHA256=ff4fbf84638ab55a8a1858558b759b3fc9d979ef5feb279132a558bcef583598\nPIPE_7_SCHEDULE_TARGET_COUNT=1\nPIPE_7_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_7_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_7_VZDUMP_QEMU_COUNT=0\nPIPE_7_RCLONE_COUNT=31\nPIPE_7_CLOUD_QUORUM_COUNT=0\nPIPE_7_SEAL_WRITTEN_COUNT=0\nPIPE_7_PAYLOAD_PARTS_COUNT=0\nPIPE_7_TRANSPORT_COUNT=3\nPIPE_7_RESTORE_VALIDATION_COUNT=0\nPIPE_7_SCHEDULE_RESULT_COUNT=2\nPIPE_7_RELEVANT_LINE_COUNT=340\nPIPE_7_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgdm1pZD1pbnQodFsndm1pZCddKQo0NjA6ICAgIHJlcT17J3ZtaWQnOnZtaWQsJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjY6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fJytjb2RlKQo0Njc6ICAgIGlmIHAuc3RkZXJyIG9yIGxlbihwLnN0ZG91dCk+MTA0ODU3NjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX09VVFBVVCcpCjQ2OTogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykgZnJvbSBOb25lCjQ3MDogICAgaWYgdHlwZShkKSBpcyBub3QgZGljdCBvciBzZXQoZCkhPXsnYXJndicsJ2pvYid9OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDcxOiAgICBhcmd2PWRbJ2FyZ3YnXTtqb2I9ZFsnam9iJ10KNDcyOiAgICBpZiB0eXBlKGpvYikgaXMgbm90IGRpY3Qgb3Igam9iLmdldCgndm1pZCcpIT12bWlkIG9yIGpvYi5nZXQoJ25vZGUnKSE9bm9kZSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDczOiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9PVVRQVVQnKQo0NzQ6ICAgIHJldHVybiBhcmd2LGpvYgo0NzY6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDc3OiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0Nzk6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDgwOiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0ODU6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0ODY6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQ4ODpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQ5MDogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDkyOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDkzOiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDk5OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo1MDM6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo1MDQ6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUwNzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNTA4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjUxMDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjUxMzogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo1MTQ6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUxNTogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNjogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNzogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjUyMDogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjUyMjogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNTIzOiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNTI1OiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjUyNzogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNTI4OiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo1Mjk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo1MzA6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjUzMjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNTMzOiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjUzNTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo1Mzk6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo1NDE6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjU0MjogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjU0NTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNTQ5OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1NjM6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTY2OmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1Njg6ICAgIGZvciB0IGluIHRhcmdldHM6CjU3MzpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjU4MjpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjU4MzogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjU4NDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjU4NjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1ODg6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTkxOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1OTY6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNjAwOiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo2MDQ6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNjA5OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo2MTQ6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNjE2OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYxNzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjYxODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjYxOTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2MjA6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYyMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MjI6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjYyNjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNjI4OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjI5OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjYzMDogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjYzMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNjMyOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjM0OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjY1NzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjY2MDogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjY0OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2NjU6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2NjY6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjY2NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo3NDA6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjc0MzogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNzQ0OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNzQ1OiAgICB0YXJnZXQ9aGl0c1swXQo3NTM6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjc1NDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjc1NzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjc3MjogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjc4MDogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzg0OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjc4NzogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3ODg6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3OTk6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo4MDE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKODAzOmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKODA0OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo4MDY6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KODA3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKODA5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo4MTI6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKODE5OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKODIyOiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQ==\nPIPE_8_SCORE=4\nPIPE_8_BASENAME=legacy_engine.py\nPIPE_8_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3\nPIPE_8_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_8_SCHEDULE_TARGET_COUNT=1\nPIPE_8_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_8_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_8_VZDUMP_QEMU_COUNT=0\nPIPE_8_RCLONE_COUNT=31\nPIPE_8_CLOUD_QUORUM_COUNT=0\nPIPE_8_SEAL_WRITTEN_COUNT=0\nPIPE_8_PAYLOAD_PARTS_COUNT=0\nPIPE_8_TRANSPORT_COUNT=3\nPIPE_8_RESTORE_VALIDATION_COUNT=0\nPIPE_8_SCHEDULE_RESULT_COUNT=2\nPIPE_8_RELEVANT_LINE_COUNT=346\nPIPE_8_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_9_SCORE=4\nPIPE_9_BASENAME=legacy_engine.py\nPIPE_9_PATH_SHA256=9a8b05902c8db1d56dc8303ffbd6fef278b3b69b41dd4eda89a767f2a3d6bd25\nPIPE_9_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_9_SCHEDULE_TARGET_COUNT=1\nPIPE_9_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_9_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_9_VZDUMP_QEMU_COUNT=0\nPIPE_9_RCLONE_COUNT=31\nPIPE_9_CLOUD_QUORUM_COUNT=0\nPIPE_9_SEAL_WRITTEN_COUNT=0\nPIPE_9_PAYLOAD_PARTS_COUNT=0\nPIPE_9_TRANSPORT_COUNT=3\nPIPE_9_RESTORE_VALIDATION_COUNT=0\nPIPE_9_SCHEDULE_RESULT_COUNT=2\nPIPE_9_RELEVANT_LINE_COUNT=346\nPIPE_9_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_10_SCORE=4\nPIPE_10_BASENAME=legacy_engine.py\nPIPE_10_PATH_SHA256=88ab68bf67a35e0d0b255725cf1d80a6bc6e1d39d0208f2cc2551fdaedd35b49\nPIPE_10_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_10_SCHEDULE_TARGET_COUNT=1\nPIPE_10_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_10_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_10_VZDUMP_QEMU_COUNT=0\nPIPE_10_RCLONE_COUNT=31\nPIPE_10_CLOUD_QUORUM_COUNT=0\nPIPE_10_SEAL_WRITTEN_COUNT=0\nPIPE_10_PAYLOAD_PARTS_COUNT=0\nPIPE_10_TRANSPORT_COUNT=3\nPIPE_10_RESTORE_VALIDATION_COUNT=0\nPIPE_10_SCHEDULE_RESULT_COUNT=2\nPIPE_10_RELEVANT_LINE_COUNT=346\nPIPE_10_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_11_SCORE=4\nPIPE_11_BASENAME=legacy_engine.py\nPIPE_11_PATH_SHA256=ed37300bf21f40701d61084225758267688ee569a15a9a8f5e7e1f2d1d95a496\nPIPE_11_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_11_SCHEDULE_TARGET_COUNT=1\nPIPE_11_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_11_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_11_VZDUMP_QEMU_COUNT=0\nPIPE_11_RCLONE_COUNT=31\nPIPE_11_CLOUD_QUORUM_COUNT=0\nPIPE_11_SEAL_WRITTEN_COUNT=0\nPIPE_11_PAYLOAD_PARTS_COUNT=0\nPIPE_11_TRANSPORT_COUNT=3\nPIPE_11_RESTORE_VALIDATION_COUNT=0\nPIPE_11_SCHEDULE_RESULT_COUNT=2\nPIPE_11_RELEVANT_LINE_COUNT=346\nPIPE_11_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld\nPIPE_12_SCORE=4\nPIPE_12_BASENAME=legacy_engine.py\nPIPE_12_PATH_SHA256=ada28322dd44b921f815bb2cdba360506c3f4e2a58c97f1eea9a2a6d4e384c9d\nPIPE_12_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7\nPIPE_12_SCHEDULE_TARGET_COUNT=1\nPIPE_12_QEMU_EXECUTION_DIAG_COUNT=0\nPIPE_12_SELFTEST_REPLACEMENT486_COUNT=0\nPIPE_12_VZDUMP_QEMU_COUNT=0\nPIPE_12_RCLONE_COUNT=31\nPIPE_12_CLOUD_QUORUM_COUNT=0\nPIPE_12_SEAL_WRITTEN_COUNT=0\nPIPE_12_PAYLOAD_PARTS_COUNT=0\nPIPE_12_TRANSPORT_COUNT=3\nPIPE_12_RESTORE_VALIDATION_COUNT=0\nPIPE_12_SCHEDULE_RESULT_COUNT=2\nPIPE_12_RELEVANT_LINE_COUNT=346\nPIPE_12_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzP" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 92341c86..a8a65028 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-261005-SNIKKET-VM150-BACKUP-FRESHNESS-RCA-99592R1 +COMMAND_ID=SUPPORT-261005-SNIKKET-VM150-BACKUP-PIPELINE-RCA-99593R1 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=snikket-vm150-backup-freshness-rca +COMPONENT=snikket-vm150-backup-pipeline-rca REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=053df7b604913d2dc8be79cdc4b2783bbad49db347dca59aa0e31e811066871b +COMMAND_SHA256=fa63ff895da7ac1a4849b7dfe5ef876de998332951253b342bd18a20683391ab DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,359 +24,1245 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=c6780ff113f2dca2069c03a2c48882a4bdb29ffe386b9e7f558a1d420c8dc78c -SANITIZED_OUTPUT_SHA256=c6780ff113f2dca2069c03a2c48882a4bdb29ffe386b9e7f558a1d420c8dc78c +RAW_EVIDENCE_SHA256=dd3644f0d18f852c97cab7c2519a22789989cbe57ec7b30661b53cacb78363ac +SANITIZED_OUTPUT_SHA256=bb1a4159fb966baac410cfc19986b6c53a847a83e0d9e74a555313dbe760148c OUTPUT_BEGIN -SNIKKET_VM150_BACKUP_FRESHNESS_RCA_WRAPPER=V1 -HOST_PVE01=true -INGRESS_HOSTKEY_SELF_BOUND=true +SNIKKET_VM150_BACKUP_PIPELINE_RCA=V1 MODE=read-only NO_VM_MUTATION=true -NO_BACKUP_MUTATION=true +NO_BACKUP_EXECUTION=true NO_REMOTE_MUTATION=true NO_STATE_MUTATION=true +NO_SOURCE_MUTATION=true NO_DNS_MUTATION=true -NO_MONITOR_MUTATION=true -FRESHNESS_PYTHON_RC=0 -PROD_VM150_RUNNING=true -PROD_VM150_QGA=true -POLICY_CANDIDATE_COUNT=1 -VM150_TARGET_COUNT=1 -VM150_TARGET_VALID=true -ROTATING_MODULE_IMPORTED=true -EXPORT_STATE_OK=true -EXPORT_GENERATION_PRESENT=true -EXPORT_GENERATION=vm150-pve01-20260904T053517Z -EXPORT_GENERATION_AGE_HOURS=747.35 -EXPORT_ARCHIVE_SIZE_BYTES=887338816 -EXPORT_PART_COUNT=2 -EXPORT_REMOTE_A_VALID=true -EXPORT_REMOTE_A_PARTS=2 -EXPORT_REMOTE_B_VALID=true -EXPORT_REMOTE_B_PARTS=2 -VM150_LOCAL_JSON_CANDIDATE_COUNT=116 -LOCAL_1_BASENAME=backup-audit.json -LOCAL_1_PATH_SHA256=091a828db6ee335d0272a370019f274a88f3a0fa4c9fd92d268358a3674f0b1d -LOCAL_1_MTIME_AGE_HOURS=0.22 -LOCAL_1_GENERATION=HASH:6880f3e6791a1f3a856ebd005cf4109bf06e96b230911a2e678c35bb24b4fcd4 -LOCAL_1_GEN_AGE_HOURS=8.44 -LOCAL_1_STATUS=GREEN -LOCAL_2_BASENAME=backup-audit-v2.json -LOCAL_2_PATH_SHA256=e520cdf4c0a133ac68165ccf96f4bec1031f4d7a3e7bddccf5c84aea2a26cad7 -LOCAL_2_MTIME_AGE_HOURS=0.22 -LOCAL_2_GENERATION=HASH:6880f3e6791a1f3a856ebd005cf4109bf06e96b230911a2e678c35bb24b4fcd4 -LOCAL_2_GEN_AGE_HOURS=8.44 -LOCAL_2_STATUS=GREEN -LOCAL_3_BASENAME=targets.json -LOCAL_3_PATH_SHA256=2f97838a94d9466163297d47d72c9c2e903a12cfb344abc58ff33fcbbae05528 -LOCAL_3_MTIME_AGE_HOURS=36.01 -LOCAL_4_BASENAME=vm150-pve01-20260903T023609Z.json -LOCAL_4_PATH_SHA256=a8d063a7f40a4bce8f0f8bb43d29f032fb5771ef6cd54d26fcae79a47dddc704 -LOCAL_4_MTIME_AGE_HOURS=320.52 -LOCAL_4_GENERATION=vm150-pve01-20260903T023609Z -LOCAL_4_GEN_AGE_HOURS=774.34 -LOCAL_4_STATUS=DONE -LOCAL_5_BASENAME=vm150-pve01-20260904T053517Z.json -LOCAL_5_PATH_SHA256=efad5cd2aee419fd80f4308fd06a30e54426d4bd98793b8cedea8fa9bb27ca38 -LOCAL_5_MTIME_AGE_HOURS=747.31 -LOCAL_5_GENERATION=vm150-pve01-20260904T053517Z -LOCAL_5_GEN_AGE_HOURS=747.36 -LOCAL_5_RESULT=OK -LOCAL_6_BASENAME=vm150-pve01-20260904T053517Z.json -LOCAL_6_PATH_SHA256=7adac9913435c445ce775f7f45aab219a1ef179461f3a46061617f6550d9f1d8 -LOCAL_6_MTIME_AGE_HOURS=747.32 -LOCAL_6_GENERATION=vm150-pve01-20260904T053517Z -LOCAL_6_GEN_AGE_HOURS=747.36 -LOCAL_6_STATUS=SEALED -LOCAL_6_CLOUD_QUORUM=2 -LOCAL_6_CLOUD_A_VERIFIED=true -LOCAL_6_CLOUD_B_VERIFIED=true -LOCAL_6_PART_HASHES_VERIFIED=true -LOCAL_6_SEAL_WRITTEN=true -LOCAL_6_LOCAL_PAYLOAD_PRESENT=false -LOCAL_6_LOCAL_CLEANUP=OK -LOCAL_6_ARCHIVE_SIZE_BYTES=887338816 -LOCAL_6_PART_COUNT=2 -LOCAL_7_BASENAME=vm150-pve01-20260902T003622Z.json -LOCAL_7_PATH_SHA256=5c1e7747144c0b33d9a1bc8b5908c9de343759b0c91587096e06d305fc7ff138 -LOCAL_7_MTIME_AGE_HOURS=752.44 -LOCAL_7_GENERATION=vm150-pve01-20260902T003622Z -LOCAL_7_GEN_AGE_HOURS=800.34 -LOCAL_7_STATUS=DONE -LOCAL_8_BASENAME=vm150-pve01-20260902T134020Z.json -LOCAL_8_PATH_SHA256=bf3de53f843a0de30eef4838950c1def4d8d38491aae6cfa84e54eb07d028e65 -LOCAL_8_MTIME_AGE_HOURS=752.44 -LOCAL_8_GENERATION=vm150-pve01-20260902T134020Z -LOCAL_8_GEN_AGE_HOURS=787.27 -LOCAL_8_STATUS=DONE -LOCAL_9_BASENAME=vm150-pve01-20260903T163557Z.json -LOCAL_9_PATH_SHA256=490cb5fb334b0fe267cc10283df8b51851b37403c9da4c04068949fb8fd78d1c -LOCAL_9_MTIME_AGE_HOURS=760.29 -LOCAL_9_GENERATION=vm150-pve01-20260903T163557Z -LOCAL_9_GEN_AGE_HOURS=760.34 -LOCAL_9_RESULT=OK -LOCAL_10_BASENAME=vm150-pve01-20260903T163557Z.json -LOCAL_10_PATH_SHA256=69aa2c3964c59caca61cd551e3b70e00f0a633a9e1d64c94f25bb14d5ae5b32c -LOCAL_10_MTIME_AGE_HOURS=760.3 -LOCAL_10_GENERATION=vm150-pve01-20260903T163557Z -LOCAL_10_GEN_AGE_HOURS=760.34 -LOCAL_10_STATUS=SEALED -LOCAL_10_CLOUD_QUORUM=2 -LOCAL_10_CLOUD_A_VERIFIED=true -LOCAL_10_CLOUD_B_VERIFIED=true -LOCAL_10_PART_HASHES_VERIFIED=true -LOCAL_10_SEAL_WRITTEN=true -LOCAL_10_LOCAL_PAYLOAD_PRESENT=false -LOCAL_10_LOCAL_CLEANUP=OK -LOCAL_10_ARCHIVE_SIZE_BYTES=892033158 -LOCAL_10_PART_COUNT=2 -LOCAL_11_BASENAME=vm150-pve01-20260903T023609Z.json -LOCAL_11_PATH_SHA256=e39e01b8035f5baca1c53b1080423328febdfe29bc6e5cd681aef84e400c8a8d -LOCAL_11_MTIME_AGE_HOURS=774.29 -LOCAL_11_GENERATION=vm150-pve01-20260903T023609Z -LOCAL_11_GEN_AGE_HOURS=774.34 -LOCAL_11_RESULT=OK -LOCAL_12_BASENAME=vm150-pve01-20260903T023609Z.json -LOCAL_12_PATH_SHA256=f62ae052c989169ee85af087628f4a00075af8872474da6db8e6f42e1cf0c35d -LOCAL_12_MTIME_AGE_HOURS=774.3 -LOCAL_12_GENERATION=vm150-pve01-20260903T023609Z -LOCAL_12_GEN_AGE_HOURS=774.34 -LOCAL_12_STATUS=SEALED -LOCAL_12_CLOUD_QUORUM=2 -LOCAL_12_CLOUD_A_VERIFIED=true -LOCAL_12_CLOUD_B_VERIFIED=true -LOCAL_12_PART_HASHES_VERIFIED=true -LOCAL_12_SEAL_WRITTEN=true -LOCAL_12_LOCAL_PAYLOAD_PRESENT=false -LOCAL_12_LOCAL_CLEANUP=OK -LOCAL_12_ARCHIVE_SIZE_BYTES=890940072 -LOCAL_12_PART_COUNT=2 -LOCAL_13_BASENAME=vm150-pve01-20260901T103753Z.json -LOCAL_13_PATH_SHA256=25c86372ed373aaafe0a6cfdf95e3011ad3dd464d52b57a09a9dc0d9750114f6 -LOCAL_13_MTIME_AGE_HOURS=776.36 -LOCAL_13_GENERATION=vm150-pve01-20260901T103753Z -LOCAL_13_GEN_AGE_HOURS=814.31 -LOCAL_13_STATUS=DONE -LOCAL_14_BASENAME=vm150-pve01-20260902T134020Z.json -LOCAL_14_PATH_SHA256=4e2bf58cf003f9d792ca892af124e65d08132b49a7942013a5c1ad6035178918 -LOCAL_14_MTIME_AGE_HOURS=787.22 -LOCAL_14_GENERATION=vm150-pve01-20260902T134020Z -LOCAL_14_GEN_AGE_HOURS=787.27 -LOCAL_14_RESULT=OK -LOCAL_15_BASENAME=vm150-pve01-20260902T134020Z.json -LOCAL_15_PATH_SHA256=15506e5235ff1a6c4b5a9a119c89d88b801edaf45ec36dd6d34e121e0b6cffd7 -LOCAL_15_MTIME_AGE_HOURS=787.23 -LOCAL_15_GENERATION=vm150-pve01-20260902T134020Z -LOCAL_15_GEN_AGE_HOURS=787.27 -LOCAL_15_STATUS=SEALED -LOCAL_15_CLOUD_QUORUM=2 -LOCAL_15_CLOUD_A_VERIFIED=true -LOCAL_15_CLOUD_B_VERIFIED=true -LOCAL_15_PART_HASHES_VERIFIED=true -LOCAL_15_SEAL_WRITTEN=true -LOCAL_15_LOCAL_PAYLOAD_PRESENT=false -LOCAL_15_LOCAL_CLEANUP=OK -LOCAL_15_ARCHIVE_SIZE_BYTES=893826325 -LOCAL_15_PART_COUNT=2 -LOCAL_16_BASENAME=vm150-pve01-20260902T003622Z.json -LOCAL_16_PATH_SHA256=0eb5d296516657ca0bb484aa1a8ed0e75adf2aa7f4d9d9657e6b4f41a082ef93 -LOCAL_16_MTIME_AGE_HOURS=800.29 -LOCAL_16_GENERATION=vm150-pve01-20260902T003622Z -LOCAL_16_GEN_AGE_HOURS=800.34 -LOCAL_16_RESULT=OK -LOCAL_17_BASENAME=vm150-pve01-20260902T003622Z.json -LOCAL_17_PATH_SHA256=f7a84691ac78b962f81f7b6343de5279cb774788e9b959f2d8aa403374170ac3 -LOCAL_17_MTIME_AGE_HOURS=800.3 -LOCAL_17_GENERATION=vm150-pve01-20260902T003622Z -LOCAL_17_GEN_AGE_HOURS=800.34 -LOCAL_17_STATUS=SEALED -LOCAL_17_CLOUD_QUORUM=2 -LOCAL_17_CLOUD_A_VERIFIED=true -LOCAL_17_CLOUD_B_VERIFIED=true -LOCAL_17_PART_HASHES_VERIFIED=true -LOCAL_17_SEAL_WRITTEN=true -LOCAL_17_LOCAL_PAYLOAD_PRESENT=false -LOCAL_17_LOCAL_CLEANUP=OK -LOCAL_17_ARCHIVE_SIZE_BYTES=892456475 -LOCAL_17_PART_COUNT=2 -LOCAL_18_BASENAME=vm150-pve01-20260830T063610Z.json -LOCAL_18_PATH_SHA256=1fc33e47ebf31c5ef4bba93d332ec6e11bd3476d1baf5ed62a0cf0546e0cf6be -LOCAL_18_MTIME_AGE_HOURS=800.51 -LOCAL_18_GENERATION=vm150-pve01-20260830T063610Z -LOCAL_18_GEN_AGE_HOURS=866.34 -LOCAL_18_STATUS=DONE -LOCAL_19_BASENAME=vm150-pve01-20260831T093800Z.json -LOCAL_19_PATH_SHA256=3a99d66a1f0199429e3aa558e16916279295a99022a109b8e0bc6e2a3c67a587 -LOCAL_19_MTIME_AGE_HOURS=800.51 -LOCAL_19_GENERATION=vm150-pve01-20260831T093800Z -LOCAL_19_GEN_AGE_HOURS=839.31 -LOCAL_19_STATUS=DONE -LOCAL_20_BASENAME=vm150-pve01-20260901T103753Z.json -LOCAL_20_PATH_SHA256=53532b6be1d08637ff25a37e99b7404393e5fa1c94014c8115dc54f8bfe45fb2 -LOCAL_20_MTIME_AGE_HOURS=814.26 -LOCAL_20_GENERATION=vm150-pve01-20260901T103753Z -LOCAL_20_GEN_AGE_HOURS=814.31 -LOCAL_20_RESULT=OK -LOCAL_21_BASENAME=vm150-pve01-20260901T103753Z.json -LOCAL_21_PATH_SHA256=d43415b966d396f138c5bc9933f26afb464f76d70f2e0776cf8c672c459ebe0e -LOCAL_21_MTIME_AGE_HOURS=814.27 -LOCAL_21_GENERATION=vm150-pve01-20260901T103753Z -LOCAL_21_GEN_AGE_HOURS=814.31 -LOCAL_21_STATUS=SEALED -LOCAL_21_CLOUD_QUORUM=2 -LOCAL_21_CLOUD_A_VERIFIED=true -LOCAL_21_CLOUD_B_VERIFIED=true -LOCAL_21_PART_HASHES_VERIFIED=true -LOCAL_21_SEAL_WRITTEN=true -LOCAL_21_LOCAL_PAYLOAD_PRESENT=false -LOCAL_21_LOCAL_CLEANUP=OK -LOCAL_21_ARCHIVE_SIZE_BYTES=893552455 -LOCAL_21_PART_COUNT=2 -LOCAL_22_BASENAME=vm150-pve01-20260831T214108Z.json -LOCAL_22_PATH_SHA256=4cef09ec110b2ce4e76a9762ce254c3f6fb7a73cd33af5b89842e9e531784848 -LOCAL_22_MTIME_AGE_HOURS=827.22 -LOCAL_22_GENERATION=vm150-pve01-20260831T214108Z -LOCAL_22_GEN_AGE_HOURS=827.26 -LOCAL_22_RESULT=OK -LOCAL_23_BASENAME=vm150-pve01-20260831T214108Z.json -LOCAL_23_PATH_SHA256=f97057f756c185bdcc95184e48810c96566547a1e90d39e8c21b5050bd1410cc -LOCAL_23_MTIME_AGE_HOURS=827.23 -LOCAL_23_GENERATION=vm150-pve01-20260831T214108Z -LOCAL_23_GEN_AGE_HOURS=827.26 -LOCAL_23_STATUS=SEALED -LOCAL_23_CLOUD_QUORUM=2 -LOCAL_23_CLOUD_A_VERIFIED=true -LOCAL_23_CLOUD_B_VERIFIED=true -LOCAL_23_PART_HASHES_VERIFIED=true -LOCAL_23_SEAL_WRITTEN=true -LOCAL_23_LOCAL_PAYLOAD_PRESENT=false -LOCAL_23_LOCAL_CLEANUP=OK -LOCAL_23_ARCHIVE_SIZE_BYTES=893057662 -LOCAL_23_PART_COUNT=2 -LOCAL_24_BASENAME=vm150-pve01-20260831T093800Z.json -LOCAL_24_PATH_SHA256=58a804c36501e62ca91cf1c3ab96a0c173f37c8d477f24306594be04a0678972 -LOCAL_24_MTIME_AGE_HOURS=839.26 -LOCAL_24_GENERATION=vm150-pve01-20260831T093800Z -LOCAL_24_GEN_AGE_HOURS=839.31 -LOCAL_24_RESULT=OK -LOCAL_25_BASENAME=vm150-pve01-20260831T093800Z.json -LOCAL_25_PATH_SHA256=c6b572c6afa56aa407b04103f83cbe6ff191228a07f74c054f6cfb4f058d514e -LOCAL_25_MTIME_AGE_HOURS=839.27 -LOCAL_25_GENERATION=vm150-pve01-20260831T093800Z -LOCAL_25_GEN_AGE_HOURS=839.31 -LOCAL_25_STATUS=SEALED -LOCAL_25_CLOUD_QUORUM=2 -LOCAL_25_CLOUD_A_VERIFIED=true -LOCAL_25_CLOUD_B_VERIFIED=true -LOCAL_25_PART_HASHES_VERIFIED=true -LOCAL_25_SEAL_WRITTEN=true -LOCAL_25_LOCAL_PAYLOAD_PRESENT=false -LOCAL_25_LOCAL_CLEANUP=OK -LOCAL_25_ARCHIVE_SIZE_BYTES=890298477 -LOCAL_25_PART_COUNT=2 -LOCAL_26_BASENAME=vm150-pve01-20260829T043615Z.json -LOCAL_26_PATH_SHA256=5ba15904869d47a4b88484588fdf6077dae036698e5218c41a6a7efd964c60ff -LOCAL_26_MTIME_AGE_HOURS=848.51 -LOCAL_26_GENERATION=vm150-pve01-20260829T043615Z -LOCAL_26_GEN_AGE_HOURS=892.34 -LOCAL_26_STATUS=DONE -LOCAL_27_BASENAME=vm150-pve01-20260829T173717Z.json -LOCAL_27_PATH_SHA256=f3c919314a16855b1983d0e484999af252952a59d3672d848a14021972b9645f -LOCAL_27_MTIME_AGE_HOURS=848.51 -LOCAL_27_GENERATION=vm150-pve01-20260829T173717Z -LOCAL_27_GEN_AGE_HOURS=879.32 -LOCAL_27_STATUS=DONE -LOCAL_28_BASENAME=vm150-pve01-20260830T203628Z.json -LOCAL_28_PATH_SHA256=480382928bcffc5e2900de44b8cc219dcf8c19821dc10233c83f03a479641989 -LOCAL_28_MTIME_AGE_HOURS=852.28 -LOCAL_28_GENERATION=vm150-pve01-20260830T203628Z -LOCAL_28_GEN_AGE_HOURS=852.34 -LOCAL_28_RESULT=OK -LOCAL_29_BASENAME=vm150-pve01-20260830T203628Z.json -LOCAL_29_PATH_SHA256=8f41a984b6185ed5e4b2c2d9e65d4d1cb07e42a097bb0dd401855eac63ed43dd -LOCAL_29_MTIME_AGE_HOURS=852.29 -LOCAL_29_GENERATION=vm150-pve01-20260830T203628Z -LOCAL_29_GEN_AGE_HOURS=852.34 -LOCAL_29_STATUS=SEALED -LOCAL_29_CLOUD_QUORUM=2 -LOCAL_29_CLOUD_A_VERIFIED=true -LOCAL_29_CLOUD_B_VERIFIED=true -LOCAL_29_PART_HASHES_VERIFIED=true -LOCAL_29_SEAL_WRITTEN=true -LOCAL_29_LOCAL_PAYLOAD_PRESENT=false -LOCAL_29_LOCAL_CLEANUP=OK -LOCAL_29_ARCHIVE_SIZE_BYTES=995293934 -LOCAL_29_PART_COUNT=2 -LOCAL_30_BASENAME=vm150-pve01-20260830T063610Z.json -LOCAL_30_PATH_SHA256=af519b9ec9a59ef1b30417a2c789295ac48e9ce777596520cdd73cb2daadf5ba -LOCAL_30_MTIME_AGE_HOURS=866.29 -LOCAL_30_GENERATION=vm150-pve01-20260830T063610Z -LOCAL_30_GEN_AGE_HOURS=866.34 -LOCAL_30_RESULT=OK -VM150_JOURNAL_MATCH_LINE_COUNT=20 -VM150_JOURNAL_CONTEXT_SHA256=3f4c2363a3cd9bdde8ba251dacc3b9c48379cd3a0d16b031da0a3d61d9d7e297 -VM150_JOURNAL_CONTEXT_B64=MjAyNi0wOS0zMFQyMjozMTo1MSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTA5LTMwVDIyOjMyOjQxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzOTQ1MjFdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0wOS0zMFQyMjozMjo0MSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6ImMzNDdmNGUzNTgxYTUzMjIwYTJhMTM1ZGM3MmY5ZDhjMGQzNTI0ZWQ1NzlkMWMyYWMwMjYxNzIzY2ZiZTU3YWUiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0wOS0zMFQyMjozMzoxMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMzk0NTIxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0wOS0zMFQyMjozMzoxMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMDktMzBUMjI6MzM6MTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMDktMzBUMjI6MzM6MTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuNDYycyBDUFUgdGltZSwgNTE1LjJNIG1lbW9yeSBwZWFrLgoyMDI2LTA5LTMwVDIzOjA5OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMDktMzBUMjM6MDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUwODc0MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0wOS0zMFQyMzowOToxNyswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMjY0N0U0OjExMjJGRkFCOjZBQkQ2QzZEOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMDktMzBUMjM6MDk6MTcrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0wOS0zMFQyMzowOToxNyswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoxOSkKMjAyNi0wOS0zMFQyMzowOTozNiswMzowMCBwdmUwMSB2emR1bXBbMjUwODc3Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzI1MDg3NzFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyNjQ3RTQ6MTEyMkZGQUI6NkFCRDZDNkQ6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0wOS0zMFQyMzowOTozNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTA4NzQxXTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMDktMzBUMjM6MDk6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUwODc0MV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MjMxODA3MTgsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0wOS0zMFQyMzoxMTowMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTA4NzQxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0wOS0zMFQyMzoxMTowMSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMDktMzBUMjM6MTE6MDErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMDktMzBUMjM6MTE6MDErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjguNzQzcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0wOS0zMFQyMzo0NDo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTA5LTMwVDIzOjQ0OjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI2MjEwMTRdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjYyMTAxNF06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0wOS0zMFQyMzo0NDo0NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0wOS0zMFQyMzo0NDo0NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMDktMzBUMjM6NDQ6NDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTA5LTMwVDIzOjQ0OjQ3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjU4cyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMVQwMDoxOToyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAxVDAwOjE5OjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDFUMDA6MjA6MjIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjczMDcyN106IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTAxVDAwOjIwOjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc5NTM5ODYyMCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTAxVDAwOjIyOjUxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI3MzA3MjddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAxVDAwOjIyOjUxKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMVQwMDoyMjo1MSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQwMDoyMjo1MSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC41ODBzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDAwOjUxOjUyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMDA6NTE6NTIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQwMDo1MTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzNl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkIzMEM5OjExMkM2NDUwOjZBQkQ4NDc5OnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDFUMDA6NTE6NTMrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzddOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMVQwMDo1MTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzN106IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzAgKHFlbXUpCjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzddOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMTozOSkKMjAyNi0xMC0wMVQwMDo1MzozMiswMzowMCBwdmUwMSB2emR1bXBbMjgzMDUzN106IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgdnpkdW1wWzI4MzA1MzZdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyQjMwQzk6MTEyQzY0NTA6NkFCRDg0Nzk6dnpkdW1wOjE3MDpyb290QHBhbTogT0sKMjAyNi0xMC0wMVQwMDo1MzozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyODMwNTE3XTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDFUMDA6NTM6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo4MTc5NTU2NTAzLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNzB9CjIwMjYtMTAtMDFUMDE6MDQ6MjYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgzMDUxN106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDFUMDE6MDQ6MjYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9UQVJHRVQ9Z3Vlc3QtcHZlMDEtbHhjLTExMgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIzMzExMDZdOiBTQ0hFRFVMRV9SRUFTT049Q1QxMTJfUElQRUxJTkVfRkFJTEVECjIwMjYtMTAtMDFUMTk6NDE6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogTWFpbiBwcm9jZXNzIGV4aXRlZCwgY29kZT1leGl0ZWQsIHN0YXR1cz0yW1BBVEhdCjIwMjYtMTAtMDFUMTk6NDE6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRmFpbGVkIHdpdGggcmVzdWx0ICdleGl0LWNvZGUnLgoyMDI2LTEwLTAxVDE5OjQxOjA3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZhaWxlZCB0byBzdGFydCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQxOTo0MTowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA1LjEzN3MgQ1BVIHRpbWUsIDE3Mk0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDFUMjA6MTk6NTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMVQyMDoxOTo1MiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNDU0ODMyXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAxVDIwOjE5OjUzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU3XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAyNTc1NEE6MTE5NzUzMzM6NkFCRTk2Mzk6dnpkdW1wOjE1MDpyb290QHBhbToKMjAyNi0xMC0wMVQyMDoxOTo1MyswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1OF06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTUwIC0tZHVtcGRpciBbUEFUSF0gLS1jb21wcmVzcyB6c3RkIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTAxVDIwOjE5OjUzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU4XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE1MCAocWVtdSkKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1OF06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNTAgKDAwOjAwOjE5KQoyMDI2LTEwLTAxVDIwOjIwOjEyKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNDU0ODU4XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSB2emR1bXBbMjQ1NDg1N106IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDI1NzU0QToxMTk3NTMzMzo2QUJFOTYzOTp2emR1bXA6MTUwOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAxVDIwOjIwOjEyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI0NTQ4MzJdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xNTAKMjAyNi0xMC0wMVQyMDoyMDoxMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNDU0ODMyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjkyMzEyNTI1NiwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAxIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTUwfQoyMDI2LTEwLTAxVDIwOjIxOjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI0NTQ4MzJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAxVDIwOjIxOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMVQyMDoyMTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMVQyMDoyMTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyOC45ODBzIENQVSB0aW1lLCAxLjRHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDIwOjM5OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMjA6Mzk6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQyMDo0MDozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNTE5MDM3XTogU0NIRURVTEVfVEFSR0VUPXZtMTkwCjIwMjYtMTAtMDFUMjA6NDA6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoxODAwMzg5MTczLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxOTB9CjIwMjYtMTAtMDFUMjA6NDM6MDQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjUxOTAzN106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDFUMjA6NDM6MDQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAxVDIwOjQzOjA0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAxVDIwOjQzOjA0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDM4LjkwOXMgQ1BVIHRpbWUsIDIuM0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDFUMjE6MTk6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMVQyMToxOTowMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAxVDIxOjE5OjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYyXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAyODU2NkI6MTE5Q0JFMEQ6NkFCRUE0MTc6dnpkdW1wOjE3MDpyb290QHBhbToKMjAyNi0xMC0wMVQyMToxOTowMyswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2M106IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90IC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTAxVDIxOjE5OjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYzXTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE3MCAocWVtdSkKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2M106IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNzAgKDAwOjAxOjQxKQoyMDI2LTEwLTAxVDIxOjIwOjQ0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsyNjQzNTYzXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSB2emR1bXBbMjY0MzU2Ml06IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDI4NTY2QjoxMTlDQkUwRDo2QUJFQTQxNzp2emR1bXA6MTcwOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAxVDIxOjIwOjQ0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzI2NDM1MTNdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xNzAKMjAyNi0xMC0wMVQyMToyMDo0NCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjgyOTIyNDQ2NzMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wMVQyMTozMjowOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyNjQzNTEzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMVQyMTozMjowOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDFUMjE6MzI6MDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDFUMjE6MzI6MDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAxNi40MjNzIENQVSB0aW1lLCA2LjhHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAxVDIxOjU3OjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDFUMjE6NTc6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjc3MTYyMl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMVQyMTo1NzowMyswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyN106IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkE0QUFDOjExQTAzOENFOjZBQkVBQ0ZGOnZ6ZHVtcDoxNzE6cm9vdEBwYW06CjIwMjYtMTAtMDFUMjE6NTc6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzI3NzE2MjhdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MSAtLWR1bXBkaXIgW1BBVEhdIC0tbW9kZSBzbmFwc2hvdCAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMVQyMTo1NzowMyswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyOF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzEgKHFlbXUpCjIwMjYtMTAtMDFUMjE6NTc6NDkrMDM6MDAgcHZlMDEgdnpkdW1wWzI3NzE2MjhdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcxICgwMDowMDo0NikKMjAyNi0xMC0wMVQyMTo1Nzo0OSswMzowMCBwdmUwMSB2emR1bXBbMjc3MTYyOF06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjgxNDExMl06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wMlQxOToyMjo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wMlQxOToyMjo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDJUMTk6MjI6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAyVDE5OjIyOjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjA5cyBDUFUgdGltZSwgMTcxLjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDE5OjU4OjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMTk6NTg6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjkxNjE3M106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMlQxOTo1ODowNCswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM1Nl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMkM4MDA4OjEyMTkyOUY1OjZBQkZFMjlDOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDJUMTk6NTg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNjBdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLW1vZGUgc25hcHNob3QgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQKMjAyNi0xMC0wMlQxOTo1ODowNCswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM2MF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNjBdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMSkKMjAyNi0xMC0wMlQxOTo1ODoyNSswMzowMCBwdmUwMSB2emR1bXBbMjkxNjM2MF06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgdnpkdW1wWzI5MTYzNTZdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAyQzgwMDg6MTIxOTI5RjU6NkFCRkUyOUM6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wMlQxOTo1ODoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyOTE2MTczXTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDJUMTk6NTg6MjUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjkxNjE3M106IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5Mjg0OTMxODcsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wMlQyMDowMDoyMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyOTE2MTczXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMlQyMDowMDoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDJUMjA6MDA6MjIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDJUMjA6MDA6MjIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMzIuMTAycyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMlQyMDozNTowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAyVDIwOjM1OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDJUMjA6MzY6MDErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzAzODQ4Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTAyVDIwOjM2OjAxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc5MDIyMTQxOSwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTAyVDIwOjM4OjQ1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMwMzg0ODZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAyVDIwOjM4OjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMlQyMDozODo0NSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMlQyMDozODo0NSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0MS4xMzNzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDIxOjA2OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMjE6MDY6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzEzOTg2N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTM5ODY3XTogU0NIRURVTEVfVEFSR0VUPXhmLWRzbW9kcwoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMxMzk4NjddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxbWluIDMwLjg1MnMgQ1BVIHRpbWUsIDcwOC40TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wMlQyMjo0NjoxMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAyVDIyOjQ2OjEzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0Nzg4MjhdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ3ODgyOF06IFNDSEVEVUxFX1RBUkdFVD14Zi1raW5nb2Z3b2xrCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ3ODgyOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDJUMjI6NTY6MzQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAyVDIyOjU2OjM0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAyVDIyOjU2OjM0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEyLjAwOHMgQ1BVIHRpbWUsIDE0M00gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDJUMjM6MTk6NDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wMlQyMzoxOTo0MCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAyVDIzOjE5OjQxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODYyXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzNkFCOTE6MTIyQjlGNzM6NkFDMDExREQ6dnpkdW1wOjE3MDpyb290QHBhbToKMjAyNi0xMC0wMlQyMzoxOTo0MSswMzowMCBwdmUwMSB2emR1bXBbMzU4Mjg2NV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90IC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTAyVDIzOjE5OjQxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODY1XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDE3MCAocWVtdSkKMjAyNi0xMC0wMlQyMzoyMToyMyswMzowMCBwdmUwMSB2emR1bXBbMzU4Mjg2NV06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxNzAgKDAwOjAxOjQyKQoyMDI2LTEwLTAyVDIzOjIxOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTgyODY1XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wM1QyMDowMjoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIwOjAyOjU3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM1MjI3MjFdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wM1QyMDowMjo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjEyNjM1MDczNjcwNjVjMDdiY2NjNWI5MzlhNTQzMTNkODc4MTg4MGJmNmJhZjgzYTg0NTRiMTcwN2I4NmI3MmYiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wM1QyMDowMzozNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMDowMzozNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMDY0cyBDUFUgdGltZSwgNTE0LjdNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIwOjMzOjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjA6MzM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMDozMzowNCswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzc1QzUwOjEyQTAzNDUxOjZBQzEzQzUwOnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wM1QyMDozMzowNCswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMl06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoxOSkKMjAyNi0xMC0wM1QyMDozMzoyMyswMzowMCBwdmUwMSB2emR1bXBbMzYyODExMl06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzNzVDNTA6MTJBMDM0NTE6NkFDMTNDNTA6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wM1QyMDozMzoyMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjI4MDc2XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5Mjk4MzY1MDUsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wM1QyMDozNDo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjI4MDc2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMDozNDo1NyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuODI1cyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMToxMDowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIxOjEwOjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzczMDkyMF06IFNDSEVEVUxFX1RBUkdFVD14Zi1jb2RldmlwZQoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxMy43NDFzIENQVSB0aW1lLCAxNTIuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjE6NDI6MTgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMTo0MjoxOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIxOjQzOjE3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4MzM3MjhdOiBTQ0hFRFVMRV9UQVJHRVQ9dm0xOTAKMjAyNi0xMC0wM1QyMTo0MzoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjE3ODgxOTU2ODUsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMyIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE5MH0KMjAyNi0xMC0wM1QyMTo0NjoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMTo0NjoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMzguMTQycyBDUFUgdGltZSwgMi4yRyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMjoxOToxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIyOjE5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzk1NTQ2MF06IFNDSEVEVUxFX1RBUkdFVD14Zi16YWtydXRpbQoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxMy45MjhzIENQVSB0aW1lLCAxNjQuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjI6NTA6MDYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMjo1MDowNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIyOjUwOjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM0XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzREU3Q0M6MTJBQ0MwQUQ6NkFDMTVDNzA6dnpkdW1wOjIxMDpyb290QHBhbToKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMjEwIC0tY29tcHJlc3MgenN0ZCAtLWR1bXBkaXIgW1BBVEhdIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTAzVDIyOjUwOjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM2XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDIxMCAocWVtdSkKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAyMTAgKDAwOjAwOjE2KQoyMDI2LTEwLTAzVDIyOjUwOjI0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs0MDU3MDM2XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNFQxNjozNzo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjM4OjI3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MDY3MjldOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wNFQxNjozODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjY0ZWE0YTVmYWY1MmUxMGYxMmJmNzU3MmRkYWYyZjMxM2M5MmNjZDc0MjZmYzA5OGYzMzkyMWM0OTM1MTQxZWIiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMjI1cyBDUFUgdGltZSwgNTE1LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE3OjE2OjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzhFNTJBOjEzMTIxNEQ5OjZBQzI1RkQ2OnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90IC0tZHVtcGRpciBbUEFUSF0KMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMCkKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzOEU1MkE6MTMxMjE0RDk6NkFDMjVGRDY6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MzMyMzIyNTMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuNjcwcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNFQxNzo0ODoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA0VDE3OjQ4OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMTc6NDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgyOTg2Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTA0VDE3OjQ5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc4MzUwNDEyOCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC45NTdzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE4OjIxOjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTg6MjE6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzkzMDQ5N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTMwNDk3XTogU0NIRURVTEVfVEFSR0VUPXhmLWhrbW9kcwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5MzA0OTddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDE4LjQyMHMgQ1BVIHRpbWUsIDEuNUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMjM6Mjk6MjQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNzU4NDAxXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzc1ODQwMV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjAxcyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNVQwMDowODowNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA1VDAwOjA4OjA1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzg4MTQ5OF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls4ODE0OThdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbODgxNDk4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHku -JOURNAL_CAPTURE_COUNT=0 -JOURNAL_TRANSPORT_COUNT=0 -JOURNAL_SEALED_COUNT=0 -JOURNAL_RESTORE_VALIDATION_COUNT=0 -JOURNAL_CLOUD_COUNT=0 -JOURNAL_SCHEDULE_TARGET_COUNT=5 -JOURNAL_VZDUMP_FINISH_COUNT=5 -JOURNAL_ERROR_COUNT=0 -JOURNAL_FAIL_COUNT=16 +HOST_PVE01=true +INGRESS_HOSTKEY_SELF_BOUND=true +VM150_RUNNING=true +VM150_QGA=true +HOMELAB_BACKUP_V2_SERVICE_PRESENT=true +HOMELAB_BACKUP_V2_SERVICE_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d +HOMELAB_BACKUP_V2_SERVICE_ACTIVE=inactive +HOMELAB_BACKUP_V2_SERVICE_ENABLED=static +HOMELAB_BACKUP_V2_TIMER_PRESENT=true +HOMELAB_BACKUP_V2_TIMER_CAT_SHA256=11e196a0353983e6ccf0d1c683a7c581cf4eb6ed8afc778324ae9c279ba23c93 +HOMELAB_BACKUP_V2_TIMER_ACTIVE=active +HOMELAB_BACKUP_V2_TIMER_ENABLED=enabled +HOMELAB_BACKUP_AUDIT_SERVICE_PRESENT=true +HOMELAB_BACKUP_AUDIT_SERVICE_CAT_SHA256=d7ca901a0238e10361a07403729e5b4768821af34f18e624032ab8ff1a6e8846 +HOMELAB_BACKUP_AUDIT_SERVICE_ACTIVE=inactive +HOMELAB_BACKUP_AUDIT_SERVICE_ENABLED=static +HOMELAB_BACKUP_AUDIT_TIMER_PRESENT=true +HOMELAB_BACKUP_AUDIT_TIMER_CAT_SHA256=88e5b100a8e480dfb69141caf9776b9d9da274933ee32f464208d0aff7264d63 +HOMELAB_BACKUP_AUDIT_TIMER_ACTIVE=active +HOMELAB_BACKUP_AUDIT_TIMER_ENABLED=enabled +BACKUP_V2_UNIT_SHOW_SHA256=93dda19ac5b7e586443dd6505828caef8c62df1cb0b4b3eaf2eb63fa47775fc1 +BACKUP_V2_UNIT_SHOW_B64=RXhlY1N0YXJ0PXsgcGF0aD0vdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjIgOyBhcmd2W109L3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXYyIHNjaGVkdWxlZCA7IGlnbm9yZV9lcnJvcnM9bm8gOyBzdGFydF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0MDo1MiBNU0tdIDsgc3RvcF90aW1lPVtNb24gMjAyNi0xMC0wNSAxMTo0ODoyNyBNU0tdIDsgcGlkPTMxNTU5NjUgOyBjb2RlPWV4aXRlZCA7IHN0YXR1cz0wIH0KRW52aXJvbm1lbnQ9 +BACKUP_V2_COMMAND_PRESENT=true +BACKUP_V2_FILETYPE_SHA256=75e59f7a9c20f8ef3feb350d7a6bae401bae921d9830a4d5907f01e23b038da5 +BACKUP_V2_SIZE_BYTES=1656 BACKUP_V2_SHA256=894f8ea346b53a3d7846dbd6eeb5b89333957eb6d7a4f2f64fd4557cae176e1c -BKV2_SCHEDULE_TARGET_LINE_COUNT=0 -BKV2_SEALED_LINE_COUNT=0 -BKV2_SEAL_WRITTEN_LINE_COUNT=0 -BKV2_LATEST_LINE_COUNT=0 -BKV2_RESTORE_LINE_COUNT=0 -BKV2_CLOUD_QUORUM_LINE_COUNT=0 -BKV2_LOCAL_CLEANUP_LINE_COUNT=0 -BKV2_STATE_LINE_COUNT=0 -BKV2_GENERATION_LINE_COUNT=0 -BKV2_INTERESTING_FUNC_COUNT=0 -REMOTE_A_PARENT_DERIVABLE=true -REMOTE_A_LIST_RC=0 -REMOTE_A_VM150_GENERATION_COUNT=6 -REMOTE_A_GEN_1=vm150-pve01-20260904T053517Z -REMOTE_A_GEN_1_AGE_HOURS=747.36 -REMOTE_A_GEN_2=vm150-pve01-20260903T163557Z -REMOTE_A_GEN_2_AGE_HOURS=760.34 -REMOTE_A_GEN_3=vm150-pve01-20260831T214108Z -REMOTE_A_GEN_3_AGE_HOURS=827.26 -REMOTE_A_GEN_4=vm150-pve01-20260830T203628Z -REMOTE_A_GEN_4_AGE_HOURS=852.34 -REMOTE_A_GEN_5=vm150-pve01-20260823T203609Z -REMOTE_A_GEN_5_AGE_HOURS=1020.34 -REMOTE_A_GEN_6=vm150-pve01-20260816T041612Z -REMOTE_A_GEN_6_AGE_HOURS=1204.67 -REMOTE_B_PARENT_DERIVABLE=true -REMOTE_B_LIST_RC=0 -REMOTE_B_VM150_GENERATION_COUNT=6 -REMOTE_B_GEN_1=vm150-pve01-20260904T053517Z -REMOTE_B_GEN_1_AGE_HOURS=747.36 -REMOTE_B_GEN_2=vm150-pve01-20260903T163557Z -REMOTE_B_GEN_2_AGE_HOURS=760.34 -REMOTE_B_GEN_3=vm150-pve01-20260831T214108Z -REMOTE_B_GEN_3_AGE_HOURS=827.26 -REMOTE_B_GEN_4=vm150-pve01-20260830T203628Z -REMOTE_B_GEN_4_AGE_HOURS=852.34 -REMOTE_B_GEN_5=vm150-pve01-20260823T203609Z -REMOTE_B_GEN_5_AGE_HOURS=1020.34 -REMOTE_B_GEN_6=vm150-pve01-20260816T041612Z -REMOTE_B_GEN_6_AGE_HOURS=1204.67 +BKV2_TEXT_BYTES=1656 +BKV2_SHEBANG=#!/usr/bin/python3 +BKV2_SCHEDULE_TARGET_COUNT=0 +BKV2_QEMU_EXECUTION_DIAG_COUNT=0 +BKV2_SELFTEST_COUNT=0 +BKV2_VZDUMP_COUNT=0 +BKV2_RCLONE_COUNT=0 +BKV2_CLOUD_COUNT=0 +BKV2_SEAL_COUNT=0 +BKV2_TRANSPORT_COUNT=0 +BKV2_RESTORE_COUNT=0 +BKV2_PYTHON_COUNT=1 +BKV2_EXEC_COUNT=0 +BKV2_USR_LOCAL_COUNT=0 +BKV2_OPT_PATH_COUNT=1 +BKV2_RELEVANT_LINE_COUNT=5 +BKV2_RELEVANT_B64=MTojIS91c3IvYmluL3B5dGhvbjMKMjpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zCjM6aW1wb3J0IGhhc2hsaWIsIGltcG9ydGxpYiwgb3MsIHBhdGhsaWIsIHN0YXQsIHN5cwo1OkVYUEVDVEVEPXsnZnJlc2hfbHhjX2hlbHBlci5weSc6ICc0ZTM5NDA0YjFkZGI5NzM5MjY0NWFkY2U2MjgwZjY5NzE4MmNjYTAzNzE0ZDNhNDYyZDM2M2VlYmNlOWIxODYwJywgJ3Byb2R1Y2VyX2V4ZWNfaGVscGVyLnB5JzogJ2IzYjk3MDk5YmNkNzEyNjY3MGY4NjZlODFmYWFlNmE0MmE5NmQ4NjlkOTk4OWU2YTY3ZjZlYTZjODcxYzkwYjMnLCAnbHhjX2FkYXB0ZXIucHknOiAnM2ZhN2QxOTQwMTBkNzZmN2M4YmM5NTAzNWFlODg3NjI2MmU5MzM3OTAzZTMxMGY0NWY0NWRmODhjMjY2ZGM4ZCcsICdxZW11X2FkYXB0ZXIucHknOiAnMTkwNmRiNDJiZDM0YmJlODVlYjQ2ZmQ5Nzk3YjM1NzJkNDZlMGE0MWMyOWQxYzI5YmU1ZjlkZjVlNDQ4ZjE1YicsICdzY2hlZHVsZXJfYWRhcHRlci5weSc6ICdhNmY2NzE1OWE2NDA2Nzc3MzMyM2YwMjgxMjZlMzEwOWUxNWNmMTdhODE0MmNlYTVlNjEyOTk3MGYxZDRkYTk2JywgJ2VudHJ5NTA0LnB5JzogJ2NhNjg3NmZhOWMzYjE0NjViMDQ1MzQ0YThhZDQ2OTYyZGUxNjk3MmM3ZGFkYzRhYzYyNTdjN2QyMjUwNDc3OTMnfQoyNDogZT1pbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnZW50cnk1MDQnKQ== +BKV2_ABS_PATH_COUNT=1 +BKV2_PATH_1_BASENAME=backup-v2-overlay-505r1-4e39404b1ddb +BKV2_PATH_1_SHA256=50a47e615a0781a486100f5d6723e32a263337608d003f678b4b582f74434cee +PIPELINE_HELPER_CANDIDATE_COUNT=149 +PIPE_1_SCORE=5 +PIPE_1_BASENAME=homelab-backup-audit +PIPE_1_PATH_SHA256=92769ab05a0e3e5bd466bc9d92157c75162ede4803289c63689289f751eebbef +PIPE_1_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3 +PIPE_1_SCHEDULE_TARGET_COUNT=0 +PIPE_1_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_1_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_1_VZDUMP_QEMU_COUNT=0 +PIPE_1_RCLONE_COUNT=5 +PIPE_1_CLOUD_QUORUM_COUNT=2 +PIPE_1_SEAL_WRITTEN_COUNT=2 +PIPE_1_PAYLOAD_PARTS_COUNT=1 +PIPE_1_TRANSPORT_COUNT=1 +PIPE_1_RESTORE_VALIDATION_COUNT=0 +PIPE_1_SCHEDULE_RESULT_COUNT=0 +PIPE_1_RELEVANT_LINE_COUNT=114 +PIPE_1_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg== +PIPE_2_SCORE=5 +PIPE_2_BASENAME=homelab-cloud-quorum-payload +PIPE_2_PATH_SHA256=68de12f3737cfc95291752929a5ac96d6ab3078d9f540969437fd463cc238756 +PIPE_2_FILE_SHA256=df9e19485e5d87112bf58bf77bdddf3b9b896418dd85ff945a31cd5b6817f352 +PIPE_2_SCHEDULE_TARGET_COUNT=0 +PIPE_2_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_2_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_2_VZDUMP_QEMU_COUNT=0 +PIPE_2_RCLONE_COUNT=26 +PIPE_2_CLOUD_QUORUM_COUNT=15 +PIPE_2_SEAL_WRITTEN_COUNT=6 +PIPE_2_PAYLOAD_PARTS_COUNT=1 +PIPE_2_TRANSPORT_COUNT=1 +PIPE_2_RESTORE_VALIDATION_COUNT=0 +PIPE_2_SCHEDULE_RESULT_COUNT=0 +PIPE_2_RELEVANT_LINE_COUNT=448 +PIPE_2_RELEVANT_B64=NTpTQ0hFTUE9ImhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEiCjE5OlRNUF9CQVNFPSIke0hPTUVMQUJfUVVPUlVNX1RNUF9CQVNFOi0vbW50L3N0YWdpbmcvaG9tZWxhYi1jbG91ZC1xdW9ydW0tdG1wfSIKMjU6ICBwcmludGYgJ1JPT1RfQ0FVU0U9VU5FWFBFQ1RFRF9UUkFOU1BPUlRfRVJST1JcblJPT1RfQ0FVU0VfQ09VTlQ9MVxuREVUQUlMPWxpbmU6JXMgcmM6JXNcbicgIiR7MTotMH0iICIkcmMiID4mMgo0MTpmb3IgdG9vbCBpbiBqcSByY2xvbmUgc2hhMjU2c3VtIGRkIHN0YXQgc29ydCBta3RlbXAgZmxvY2sgYXdrIGNtcCBkYXRlOyBkbwo0Njp1c2FnZSgpewo0NzogIHByaW50ZiAndXNhZ2U6ICVzIGJhY2t1cC1kZWxldGUgTE9HSUNBTF9JRCBHRU5FUkFUSU9OIFBBWUxPQUQgUkVNT1RFX0FfUk9PVCBSRU1PVEVfQl9ST09UIFNUQVRFX1JPT1RcbicgIiQwIiA+JjIKNDg6ICBwcmludGYgJyAgICAgICAlcyB2ZXJpZnktc2VhbGVkIExPR0lDQUxfSUQgR0VORVJBVElPTiBSRU1PVEVfQV9ST09UIFJFTU9URV9CX1JPT1QgU1RBVEVfUk9PVFxuJyAiJDAiID4mMgo1MDp2YWxpZF9yZW1vdGVfcm9vdCgpeyBbWyAiJDEiID1+IF5bQS1aYS16MC05XVtBLVphLXowLTkuXy1dKjpbQS1aYS16MC05Ll8vLV0rJCBdXTsgfQo1NDogIGJhY2t1cC1kZWxldGUpCjU1OiAgICBbWyAiJCMiIC1lcSA3IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNTc6ICAgIEdFTkVSQVRJT049IiQzIgo1OTogICAgUkVNT1RFX0FfUk9PVD0iJDUiCjYwOiAgICBSRU1PVEVfQl9ST09UPSIkNiIKNjE6ICAgIFNUQVRFX1JPT1Q9IiQ3Igo2MzogIHZlcmlmeS1zZWFsZWQpCjY0OiAgICBbWyAiJCMiIC1lcSA2IF1dIHx8IHsgdXNhZ2U7IGRpZSAiQVJHVU1FTlRfQ09VTlRfSU5WQUxJRCIgNjQ7IH0KNjY6ICAgIEdFTkVSQVRJT049IiQzIgo2ODogICAgUkVNT1RFX0FfUk9PVD0iJDQiCjY5OiAgICBSRU1PVEVfQl9ST09UPSIkNSIKNzA6ICAgIFNUQVRFX1JPT1Q9IiQ2Igo3MzogICAgdXNhZ2UKNzk6dmFsaWRfdG9rZW4gIiRHRU5FUkFUSU9OIiB8fCBkaWUgIkdFTkVSQVRJT05fSU5WQUxJRCIgNjQKODA6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiB8fCBkaWUgIlJFTU9URV9BX1JPT1RfSU5WQUxJRCIgNjQKODE6dmFsaWRfcmVtb3RlX3Jvb3QgIiRSRU1PVEVfQl9ST09UIiB8fCBkaWUgIlJFTU9URV9CX1JPT1RfSU5WQUxJRCIgNjQKODI6W1sgIiRSRU1PVEVfQV9ST09UIiAhPSAiJFJFTU9URV9CX1JPT1QiIF1dIHx8IGRpZSAiUkVNT1RFX0ZBSUxVUkVfRE9NQUlOU19OT1RfRElTVElOQ1QiIDY0CjgzOltbICIkU1RBVEVfUk9PVCIgPT0gLyogXV0gfHwgZGllICJTVEFURV9ST09UX05PVF9BQlNPTFVURSIgNjQKODQ6aWYgW1sgIiRURVNUX01PREUiICE9ICIxIiAmJiAiJFNUQVRFX1JPT1QiICE9ICIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iIF1dOyB0aGVuCjg1OiAgZGllICJQUk9EVUNUSU9OX1NUQVRFX1JPT1RfSU5WQUxJRCIgNjQKODg6U1RBVEVfRElSPSIkU1RBVEVfUk9PVC8kTE9HSUNBTF9JRCIKODk6U1RBVEVfRklMRT0iJFNUQVRFX0RJUi8kR0VORVJBVElPTi5qc29uIgo5MDpSRU1PVEVfQV9CQVNFPSIke1JFTU9URV9BX1JPT1QlL30vJExPR0lDQUxfSUQvJEdFTkVSQVRJT04iCjkxOlJFTU9URV9CX0JBU0U9IiR7UkVNT1RFX0JfUk9PVCUvfS8kTE9HSUNBTF9JRC8kR0VORVJBVElPTiIKMTAyOiAgU1RBVEVfUk9PVD0iJChyZWFscGF0aCAtbSAtLSAiJFNUQVRFX1JPT1QiKSIKMTA0OiAgY2FzZSAiJFNUQVRFX1JPT1QiIGluICIkUlVOX1JFQUwiLyopIDs7ICopIGRpZSAiVEVTVF9TVEFURV9ST09UX09VVFNJREVfUlVOX0RJUiIgNjQ7OyBlc2FjCjEwNTogIFNUQVRFX0RJUj0iJFNUQVRFX1JPT1QvJExPR0lDQUxfSUQiCjEwNjogIFNUQVRFX0ZJTEU9IiRTVEFURV9ESVIvJEdFTkVSQVRJT04uanNvbiIKMTA5OltbICEgLUwgIiRTVEFURV9ST09UIiBdXSB8fCBkaWUgIlNUQVRFX1JPT1RfU1lNTElOS19GT1JCSURERU4iIDY0CjExMDppZiBbWyAtZSAiJFNUQVRFX0RJUiIgfHwgLUwgIiRTVEFURV9ESVIiIF1dOyB0aGVuIFtbIC1kICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRElSIiBdXSB8fCBkaWUgIlNUQVRFX0RJUl9VTlNBRkUiIDY0OyBmaQoxMTE6bWtkaXIgLXAgIiRTVEFURV9ESVIiCjExMjpbWyAhIC1MICIkU1RBVEVfRElSIiAmJiAhIC1MICIkU1RBVEVfRklMRSIgXV0gfHwgZGllICJTVEFURV9QQVRIX1NZTUxJTktfRk9SQklEREVOIiA2NAoxMTM6Y2htb2QgMDcwMCAiJFNUQVRFX1JPT1QiICIkU1RBVEVfRElSIgoxMTQ6TE9DS19GSUxFPSIkU1RBVEVfRElSLy5sb2NrIgoxMTU6ZXhlYyA5PiIkTE9DS19GSUxFIgoxMTY6ZmxvY2sgLW4gOSB8fCBkaWUgIkdFTkVSQVRJT05fTE9DS19CVVNZIiA3NQoxNDM6aWYgW1sgIiRBQ1RJT04iID09ICJiYWNrdXAtZGVsZXRlIiBdXTsgdGhlbgoxNDg6IyBTRUNUSU9OX1NUQVRFX0lERU5USVRZX1YxCjE0OTpzdGF0ZV9pZGVudGl0eV9vaygpewoxNTA6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCByZXR1cm4gMQoxNTQ6ICAgIC0tYXJnIGdlbmVyYXRpb24gIiRHRU5FUkFUSU9OIiBcCjE1NTogICAgLS1hcmcgcmVtb3RlX2EgIiRSRU1PVEVfQV9ST09UIiBcCjE1NjogICAgLS1hcmcgcmVtb3RlX2IgIiRSRU1PVEVfQl9ST09UIiBcCjE2MDogICAgIC5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQKMTYxOiAgICAgLnJlbW90ZV9hX3Jvb3Q9PSRyZW1vdGVfYSBhbmQKMTYyOiAgICAgLnJlbW90ZV9iX3Jvb3Q9PSRyZW1vdGVfYiBhbmQKMTY4OiAgICAgIC5zdGF0dXM9PSJTRUFMRUQiKScgXAoxNjk6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoxNzI6c3RhdGVfc3RhdHVzKCl7CjE3MzogIGlmIFtbICEgLWUgIiRTVEFURV9GSUxFIiBdXTsgdGhlbgoxNzc6ICBbWyAtcyAiJFNUQVRFX0ZJTEUiICYmICEgLUwgIiRTVEFURV9GSUxFIiBdXSB8fCBkaWUgIlNUQVRFX0ZJTEVfVU5TQUZFIiA2NQoxNzg6ICBzdGF0ZV9pZGVudGl0eV9vayB8fCBkaWUgIlNUQVRFX0lERU5USVRZX01JU01BVENIIiA2NQoxNzk6ICBqcSAtciAnLnN0YXR1cycgIiRTVEFURV9GSUxFIgoxODI6IyBTRUNUSU9OX1NUQVRFX0lOSVRJQUxfVjEKMTgzOndyaXRlX2luaXRpYWxfc3RhdGUoKXsKMTg0OiAgbG9jYWwgbm93PSIkMSIgdG1wPSIke1NUQVRFX0ZJTEV9Lm5ldy4kJCIKMTkwOiAgICAtLWFyZyBnZW5lcmF0aW9uICIkR0VORVJBVElPTiIgXAoxOTU6ICAgIC0tYXJnIHJlbW90ZV9hX3Jvb3QgIiRSRU1PVEVfQV9ST09UIiBcCjE5NjogICAgLS1hcmcgcmVtb3RlX2Jfcm9vdCAiJFJFTU9URV9CX1JPT1QiIFwKMTk3OiAgICAtLWFyZyByZW1vdGVfYV9iYXNlICIkUkVNT1RFX0FfQkFTRSIgXAoxOTg6ICAgIC0tYXJnIHJlbW90ZV9iX2Jhc2UgIiRSRU1PVEVfQl9CQVNFIiBcCjIwMjogICAgJ3tzY2hlbWE6JHNjaGVtYSxzdGF0dXM6JHN0YXR1cyxsb2dpY2FsX2lkOiRsb2dpY2FsX2lkLGdlbmVyYXRpb246JGdlbmVyYXRpb24sCjIwNzogICAgICByZW1vdGVfYV9yb290OiRyZW1vdGVfYV9yb290LHJlbW90ZV9iX3Jvb3Q6JHJlbW90ZV9iX3Jvb3QsCjIwODogICAgICByZW1vdGVfYV9iYXNlOiRyZW1vdGVfYV9iYXNlLHJlbW90ZV9iX2Jhc2U6JHJlbW90ZV9iX2Jhc2UsCjIwOTogICAgICBjbG91ZF9hX3ZlcmlmaWVkOmZhbHNlLGNsb3VkX2JfdmVyaWZpZWQ6ZmFsc2UsCjIxMDogICAgICBjbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2Om51bGwsY2xvdWRfYl9yZWNvbnN0cnVjdGVkX3NoYTI1NjpudWxsLAoyMTE6ICAgICAgY2xvdWRfYV92ZXJpZmllZF9hdF91dGM6bnVsbCxjbG91ZF9iX3ZlcmlmaWVkX2F0X3V0YzpudWxsLAoyMTI6ICAgICAgY2xvdWRfcXVvcnVtOjAscGFydF9oYXNoZXNfdmVyaWZpZWQ6ZmFsc2UscGFydHNfbWFuaWZlc3Rfc2hhMjU2Om51bGwsCjIxNTogICAgICBzZWFsX3dyaXR0ZW46ZmFsc2Usc2VhbGVkX2F0X3V0YzpudWxsfScgPiIkdG1wIgoyMjE6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgoyMjQ6c3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vaygpewoyMjk6ICAgIC0tYXJnIHJlbW90ZV9hX2Jhc2UgIiRSRU1PVEVfQV9CQVNFIiBcCjIzMDogICAtLWFyZyByZW1vdGVfYl9iYXNlICIkUkVNT1RFX0JfQkFTRSIgXAoyMzg6ICAgICAucmVtb3RlX2FfYmFzZT09JHJlbW90ZV9hX2Jhc2UgYW5kCjIzOTogICAgIC5yZW1vdGVfYl9iYXNlPT0kcmVtb3RlX2JfYmFzZScgXAoyNDA6ICAgICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAoyNDM6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9IRUxQRVJTX1YxCjI0NDpsb2FkX3N0YXRlX3BheWxvYWRfaWRlbnRpdHkoKXsKMjQ1OiAgUEFZTE9BRF9SRUFMPSIkKGpxIC1lciAnLnBheWxvYWRfcGF0aCB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1BBVEhfSU5WQUxJRCIgNjUKMjQ2OiAgUEFZTE9BRF9OQU1FPSIkKGpxIC1lciAnLnBheWxvYWRfbmFtZSB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX05BTUVfSU5WQUxJRCIgNjUKMjQ3OiAgUEFZTE9BRF9TSEE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYgfCBzdHJpbmdzIHwgc2VsZWN0KHRlc3QoIl5bMC05YS1mXXs2NH0kIikpJyAiJFNUQVRFX0ZJTEUiKSIgfHwgZGllICJTVEFURV9QQVlMT0FEX1NIQV9JTlZBTElEIiA2NQoyNDg6ICBQQVlMT0FEX1NJWkU9IiQoanEgLWVyICcuYXJjaGl2ZV9zaXplX2J5dGVzIHwgbnVtYmVycyB8IHNlbGVjdCguPjAgYW5kIGZsb29yPT0uKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9TSVpFX0lOVkFMSUQiIDY1CjI0OTogIFBBUlRfQ09VTlQ9IiQoanEgLWVyICcucGFydF9jb3VudCB8IG51bWJlcnMgfCBzZWxlY3QoLj4wIGFuZCBmbG9vcj09LiknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBUlRfQ09VTlRfSU5WQUxJRCIgNjUKMjY1OmFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGgoKXsKMjY2OiAgbG9jYWwgaW5wdXRfcmVhbD0iJDEiIGlucHV0X25hbWU9IiQyIiBzdGF0ZV9yZWFsIHN0YXRlX25hbWUKMjY3OiAgc3RhdGVfcmVhbD0iJChqcSAtZXIgJy5wYXlsb2FkX3BhdGggfCBzdHJpbmdzIHwgc2VsZWN0KGxlbmd0aD4wKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX0lOVkFMSUQiIDY1CjI2ODogIHN0YXRlX25hbWU9IiQoanEgLWVyICcucGF5bG9hZF9uYW1lIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlNUQVRFX1BBWUxPQURfTkFNRV9JTlZBTElEIiA2NQoyNjk6ICBbWyAiJGlucHV0X3JlYWwiID09ICIkc3RhdGVfcmVhbCIgJiYgIiRpbnB1dF9uYW1lIiA9PSAiJHN0YXRlX25hbWUiIF1dIHx8IGRpZSAiU1RBVEVfUEFZTE9BRF9QQVRIX01JU01BVENIIiA2NQoyNzI6IyBTRUNUSU9OX1NUQVRFX1BIQVNFX0lOVkFSSUFOVFNfVjEKMjczOnN0YXRlX3BoYXNlX2NvcmVfaW52YXJpYW50c19vaygpewoyNzc6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzg6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyNzk6ICAgICAgLmNsb3VkX3F1b3J1bT09MCBhbmQKMjgzOiAgICAgIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZAoyODQ6ICAgICAgLmNsb3VkX2JfdmVyaWZpZWQ9PWZhbHNlIGFuZAoyODU6ICAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI4NjogICAgICAuY2xvdWRfcXVvcnVtPT0xIGFuZAoyOTA6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjI5MTogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMjkyOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAoyOTM6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjI5NDogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAoyOTk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMwMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzAxOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMDI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMwMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMDg6ICAgIGVsaWYgLnN0YXR1cz09IlNFQUxFRCIgdGhlbgozMDk6ICAgICAgLmNsb3VkX2FfdmVyaWZpZWQ9PXRydWUgYW5kCjMxMDogICAgICAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQKMzExOiAgICAgIC5jbG91ZF9hX3JlY29uc3RydWN0ZWRfc2hhMjU2PT0kc2hhIGFuZAozMTI6ICAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9PSRzaGEgYW5kCjMxMzogICAgICAuY2xvdWRfcXVvcnVtPT0yIGFuZAozMTg6ICAgICAgLnNlYWxfd3JpdHRlbj09dHJ1ZQozMjI6ICAnICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbAozMjU6IyBTRUNUSU9OX1NUQVRFX1JFU1VNRV9ESVNQQVRDSF9WMQozMjY6cHJlcGFyZV9iYWNrdXBfc3RhdGUoKXsKMzMwOiAgc3RhdHVzPSIkKHN0YXRlX3N0YXR1cykiCjMzNTogICAgICBhc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudAozMzY6ICAgICAgd3JpdGVfaW5pdGlhbF9zdGF0ZSAiJG5vdyIKMzM3OiAgICAgIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiSU5JVElBTF9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQozMzg6ICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozMzk6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIklOSVRJQUxfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0MjogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzQ0OiAgICAgIHN0YXRlX3BheWxvYWRfaWRlbnRpdHlfb2sgfHwgZGllICJSRVNVTUVfUEFZTE9BRF9JREVOVElUWV9NSVNNQVRDSCIgNjUKMzQ1OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJSRVNVTUVfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM0ODogICAgICBhc3NlcnRfaW5wdXRfbWF0Y2hlc19zdGF0ZV9wYXRoICIkaW5wdXRfcGF5bG9hZF9yZWFsIiAiJGlucHV0X3BheWxvYWRfbmFtZSIKMzUyOiAgICAgICAgc3RhdGVfcGF5bG9hZF9pZGVudGl0eV9vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1BBWUxPQURfSURFTlRJVFlfTUlTTUFUQ0giIDY1CjM1NDogICAgICAgIGxvYWRfc3RhdGVfcGF5bG9hZF9pZGVudGl0eQozNTU6ICAgICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiREVMRVRFX0FVVEhPUklaRURfU1RBVEVfUEFZTE9BRF9JREVOVElUWV9JTlZBTElEIiA2NQozNTc6ICAgICAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX1BIQVNFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQozNTk6ICAgIFNFQUxFRCkKMzYwOiAgICAgIGFzc2VydF9pbnB1dF9tYXRjaGVzX3N0YXRlX3BhdGggIiRpbnB1dF9wYXlsb2FkX3JlYWwiICIkaW5wdXRfcGF5bG9hZF9uYW1lIgozNjE6ICAgICAgW1sgISAtZSAiJGlucHV0X3BheWxvYWRfcmVhbCIgJiYgISAtTCAiJGlucHV0X3BheWxvYWRfcmVhbCIgXV0gfHwgZGllICJTRUFMRURfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIiA2NgozNjI6ICAgICAgbG9hZF9zdGF0ZV9wYXlsb2FkX2lkZW50aXR5CjM2MzogICAgICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiU0VBTEVEX1NUQVRFX1BBWUxPQURfSURFTlRJVFlfSU5WQUxJRCIgNjUKMzY0OiAgICAgIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJTRUFMRURfU1RBVEVfUEhBU0VfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjM2NzogICAgICBkaWUgIlNUQVRFX1NUQVRVU19VTlNVUFBPUlRFRF8ke3N0YXR1c30iIDY1CjM3MDogIEJBQ0tVUF9TVEFURV9TVEFUVVM9IiRzdGF0dXMiCjM3MjogICAgQkFDS1VQX1NUQVRFX1NUQVRVUz0iUFJFUEFSSU5HIgozNzU6IyBTRUNUSU9OX1JFTU9URV9QT0xJQ1lfVjEKMzc3OiAgW1sgIiRSRU1PVEVfQV9ST09UIiA9PSAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiIF1dIHx8IGRpZSAiUFJPRFVDVElPTl9SRU1PVEVfQV9JTlZBTElEIiA2NAozNzg6ICBbWyAiJFJFTU9URV9CX1JPT1QiID09ICJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIgXV0gfHwgZGllICJQUk9EVUNUSU9OX1JFTU9URV9CX0lOVkFMSUQiIDY0CjM3OTogIFtbIC16ICIke0hPTUVMQUJfVEVTVF9SQ0xPTkVfQklOOi19IiBdXSB8fCBkaWUgIlBST0RVQ1RJT05fUkNMT05FX09WRVJSSURFX0ZPUkJJRERFTiIgNjQKMzgwOiAgUkNMT05FX0JJTj0iJChjb21tYW5kIC12IHJjbG9uZSkiIHx8IGRpZSAiUkNMT05FX01JU1NJTkciIDY5CjM4MjogIFJDTE9ORV9CSU49IiR7SE9NRUxBQl9URVNUX1JDTE9ORV9CSU46LX0iCjM4MzogIGlmIFtbIC16ICIkUkNMT05FX0JJTiIgXV07IHRoZW4KMzg0OiAgICBSQ0xPTkVfQklOPSIkKGNvbW1hbmQgLXYgcmNsb25lKSIgfHwgZGllICJSQ0xPTkVfTUlTU0lORyIgNjkKMzg2OiAgW1sgIiRSQ0xPTkVfQklOIiA9PSAvKiAmJiAteCAiJFJDTE9ORV9CSU4iICYmICEgLUwgIiRSQ0xPTkVfQklOIiBdXSB8fCBkaWUgIlRFU1RfUkNMT05FX0JJTl9VTlNBRkUiIDY0CjM4OTpydW5fcmNsb25lKCl7CjM5MDogICIkUkNMT05FX0JJTiIgIiRAIgozOTM6IyBTRUNUSU9OX1JFTU9URV9HRU5FUkFUSU9OX0dVQVJEX1YxCjM5NDpyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSgpewozOTY6ICBbWyAiJGxhYmVsIiA9PSAiQSIgfHwgIiRsYWJlbCIgPT0gIkIiIF1dIHx8IGRpZSAiUkVNT1RFX1BST0JFX0xBQkVMX0lOVkFMSUQiIDY0CjM5NzogIHJvb3RfbGlzdGluZz0iJFdPUksvcmVtb3RlLSR7bGFiZWx9LXJvb3QubHNmIgozOTg6ICBsb2dpY2FsX2xpc3Rpbmc9IiRXT1JLL3JlbW90ZS0ke2xhYmVsfS1sb2dpY2FsLmxzZiIKNDAwOiAgaWYgISBydW5fcmNsb25lIGxzZiAiJHJvb3QiIC0tZGlycy1vbmx5IC0tbWF4LWRlcHRoIDEgPiIkcm9vdF9saXN0aW5nIjsgdGhlbgo0MDE6ICAgIGRpZSAiUkVNT1RFXyR7bGFiZWx9X1JPT1RfUFJPQkVfRkFJTEVEIiA3NAo0MDM6ICBpZiAhIGF3ayAtdiB0YXJnZXQ9IiRMT0dJQ0FMX0lELyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRyb290X2xpc3RpbmciOyB0aGVuCjQwNzogIGlmICEgcnVuX3JjbG9uZSBsc2YgIiR7cm9vdCUvfS8kTE9HSUNBTF9JRCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMSA+IiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQwODogICAgZGllICJSRU1PVEVfJHtsYWJlbH1fTE9HSUNBTF9QUk9CRV9GQUlMRUQiIDc0CjQxMDogIGlmIGF3ayAtdiB0YXJnZXQ9IiRHRU5FUkFUSU9OLyIgJyQwPT10YXJnZXR7Zm91bmQ9MX0gRU5Ee2V4aXQgIWZvdW5kfScgIiRsb2dpY2FsX2xpc3RpbmciOyB0aGVuCjQxNzphc3NlcnRfbmV3X3JlbW90ZV9nZW5lcmF0aW9uX2Fic2VudCgpewo0MTg6ICBsb2NhbCBhX3N0YXRlIGJfc3RhdGUKNDE5OiAgYV9zdGF0ZT0iJChyZW1vdGVfZ2VuZXJhdGlvbl9wcm9iZSBBICIkUkVNT1RFX0FfUk9PVCIpIgo0MjA6ICBiX3N0YXRlPSIkKHJlbW90ZV9nZW5lcmF0aW9uX3Byb2JlIEIgIiRSRU1PVEVfQl9ST09UIikiCjQyMTogIFtbICIkYV9zdGF0ZSIgPT0gIkFCU0VOVCIgXV0gfHwgZGllICJSRU1PVEVfQV9HRU5FUkFUSU9OX0FMUkVBRFlfRVhJU1RTIiA2NQo0MjI6ICBbWyAiJGJfc3RhdGUiID09ICJBQlNFTlQiIF1dIHx8IGRpZSAiUkVNT1RFX0JfR0VORVJBVElPTl9BTFJFQURZX0VYSVNUUyIgNjUKNDI1OiMgU0VDVElPTl9TVEFURV9UUkFOU0lUSU9OU19DTE9VRF9WMQo0MjY6YXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlKCl7CjQyODogIHN0YXRlX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9TVEFURV9JREVOVElUWV9JTlZBTElEIiA2NQo0Mjk6ICBzdGF0ZV9wYXlsb2FkX2lkZW50aXR5X29rIHx8IGRpZSAiVFJBTlNJVElPTl9QQVlMT0FEX0lERU5USVRZX0lOVkFMSUQiIDY1CjQzMDogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJUUkFOU0lUSU9OX1NPVVJDRV9JTlZBUklBTlRfSU5WQUxJRCIgNjUKNDMxOiAgYWN0dWFsPSIkKGpxIC1lciAnLnN0YXR1cyB8IHN0cmluZ3MnICIkU1RBVEVfRklMRSIpIiB8fCBkaWUgIlRSQU5TSVRJT05fU1RBVFVTX0lOVkFMSUQiIDY1CjQzNjogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAKNDM3OiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQzODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSSU5HIgo0NDA6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NDU6ICAgIC0tYXJnIG1hbmlmZXN0X3NoYSAiJG1hbmlmZXN0X3NoYSIgXAo0NDg6ICAgICAuY2xvdWRfYV92ZXJpZmllZD10cnVlIHwKNDQ5OiAgICAgLmNsb3VkX2FfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDUwOiAgICAgLmNsb3VkX2FfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NTE6ICAgICAuY2xvdWRfcXVvcnVtPTEgfAo0NTI6ICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PSRtYW5pZmVzdF9zaGEnIFwKNDUzOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNDU1OiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNDU2OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkFfVkVSSUZJRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ2MDogIGxvY2FsIG1hbmlmZXN0X3NoYT0iJDEiIG5vdyB0bXAgc2F2ZWRfbWFuaWZlc3QKNDYxOiAgW1sgIiRtYW5pZmVzdF9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2MjogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiQV9WRVJJRklFRCIKNDYzOiAgc2F2ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwgc3RyaW5ncyB8IHNlbGVjdCh0ZXN0KCJeWzAtOWEtZl17NjR9JCIpKScgIiRTVEFURV9GSUxFIikiIHx8IGRpZSAiU1RBVEVfUEFSVFNfTUFOSUZFU1RfU0hBX0lOVkFMSUQiIDY1CjQ2NDogIFtbICIkc2F2ZWRfbWFuaWZlc3QiID09ICIkbWFuaWZlc3Rfc2hhIiBdXSB8fCBkaWUgIlBBUlRTX01BTklGRVNUX1NIQV9DSEFOR0VEIiA2NQo0NjY6ICB0bXA9IiR7U1RBVEVfRklMRX0ubmV3LiQkIgo0NzM6ICAgICAuY2xvdWRfYl92ZXJpZmllZD10cnVlIHwKNDc0OiAgICAgLmNsb3VkX2JfcmVjb25zdHJ1Y3RlZF9zaGEyNTY9JGFyY2hpdmVfc2hhIHwKNDc1OiAgICAgLmNsb3VkX2JfdmVyaWZpZWRfYXRfdXRjPSRub3cgfAo0NzY6ICAgICAuY2xvdWRfcXVvcnVtPTIgfAo0Nzg6ICAgICIkU1RBVEVfRklMRSIgPiIkdG1wIgo0ODA6ICBtdiAtZiAtLSAiJHRtcCIgIiRTVEFURV9GSUxFIgo0ODE6ICBzdGF0ZV9waGFzZV9pbnZhcmlhbnRzX29rIHx8IGRpZSAiUFJFUEFSRURfU1RBVEVfSU5WQVJJQU5UX0lOVkFMSUQiIDY1CjQ4NDojIFNFQ1RJT05fU1RBVEVfVFJBTlNJVElPTlNfREVMRVRFX1YxCjQ4ODogIGFzc2VydF9zdGF0ZV90cmFuc2l0aW9uX3NvdXJjZSAiUFJFUEFSRUQiCjQ5MDogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUwMDogICAgIC5zZWFsX3dyaXR0ZW49ZmFsc2UnIFwKNTAxOiAgICAiJFNUQVRFX0ZJTEUiID4iJHRtcCIKNTAzOiAgbXYgLWYgLS0gIiR0bXAiICIkU1RBVEVfRklMRSIKNTA0OiAgc3RhdGVfcGhhc2VfaW52YXJpYW50c19vayB8fCBkaWUgIkRFTEVURV9BVVRIT1JJWkVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1MDU6ICBqcSAtZSAnLmRlbGV0ZV9hdXRob3JpemVkX2F0X3V0YyB8IHN0cmluZ3MgfCBzZWxlY3QobGVuZ3RoPjApJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwgfHwgZGllICJERUxFVEVfQVVUSE9SSVpFRF9USU1FU1RBTVBfSU5WQUxJRCIgNjUKNTEwOiAgYXNzZXJ0X3N0YXRlX3RyYW5zaXRpb25fc291cmNlICJERUxFVEVfQVVUSE9SSVpFRCIKNTEyOiAgaWYganEgLWUgJy5sb2NhbF9wYXlsb2FkX3ByZXNlbnQ9PWZhbHNlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRTVEFURV9GSUxFIiA+L2Rldi9udWxsOyB0aGVuCjUxNjogIHRtcD0iJHtTVEFURV9GSUxFfS5uZXcuJCQiCjUyNDogICAgIiRTVEFURV9GSUxFIiA+IiR0bXAiCjUyNjogIG12IC1mIC0tICIkdG1wIiAiJFNUQVRFX0ZJTEUiCjUyNzogIHN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2sgfHwgZGllICJMT0NBTF9ERUxFVEVEX1NUQVRFX0lOVkFSSUFOVF9JTlZBTElEIiA2NQo1Mjg6ICBqcSAtZSAnLmxvY2FsX2RlbGV0ZWRfYXRfdXRjIHwgc3RyaW5ncyB8IHNlbGVjdChsZW5ndGg+MCknICIkU1RBVEVfRklMRSIgPi9kZXYvbnVsbCB8fCBkaWUgIkxPQ0FMX0RFTEVURURfVElNRVNUQU1QX0lOVkFMSUQiIDY1CjUzMTojIFNFQ1RJT05fU1RBVEVfTUFOSUZFU1RfSU5WQVJJQU5UU19WMQo1MzI6c3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rKCl7CjUzNTogICAgICAucGFydHNfbWFuaWZlc3Rfc2hhMjU2PT1udWxsCjUzOTogICAgICAgICAgLnN0YXR1cz09IlNFQUxFRCIpIHRoZW4KNTQwOiAgICAgICgucGFydHNfbWFuaWZlc3Rfc2hhMjU2IHwKNTQ2OiAgJyAiJFNUQVRFX0ZJTEUiID4vZGV2L251bGwKNTQ5OnN0YXRlX3BoYXNlX2ludmFyaWFudHNfb2soKXsKNTUwOiAgc3RhdGVfcGhhc2VfY29yZV9pbnZhcmlhbnRzX29rICYmCjU1MTogICAgc3RhdGVfbWFuaWZlc3RfaW52YXJpYW50X29rICYmCjU1MjogICAgc3RhdGVfc2VhbF9pbnZhcmlhbnRfb2sKNTYwOlBBUlRTX01BTklGRVNUPSIkV09SSy9QQVJUUy50c3YiCjU4OTogIGRkIGlmPSIkUEFZTE9BRF9SRUFMIiBvZj0iJFBBUlRfRklMRSIgYnM9MTA0ODU3NiBza2lwPSIkKCggaWR4ICogQ0hVTktfTUlCICkpIiBjb3VudD0iJENIVU5LX01JQiIgaWZsYWc9ZnVsbGJsb2NrIHN0YXR1cz1ub25lCjU5NzptYW5pZmVzdF9yZXNldCgpewo1OTg6ICA6ID4iJFBBUlRTX01BTklGRVNUIgo1OTk6ICBjaG1vZCAwNjAwICIkUEFSVFNfTUFOSUZFU1QiCjYwMjptYW5pZmVzdF9hcHBlbmRfY3VycmVudCgpewo2MDQ6ICBbWyAiJENVUlJFTlRfUEFSVF9OQU1FIiA9PSAiJChwYXJ0X25hbWUgIiRpZHgiKSIgXV0gfHwgZGllICJQQVJUX05BTUVfU1RBVEVfTUlTTUFUQ0giIDY1CjYwNTogIFtbICIkQ1VSUkVOVF9QQVJUX1NJWkUiID09ICIkKGV4cGVjdGVkX3BhcnRfc2l6ZSAiJGlkeCIpIiBdXSB8fCBkaWUgIlBBUlRfU0laRV9TVEFURV9NSVNNQVRDSCIgNjUKNjA2OiAgW1sgIiRDVVJSRU5UX1BBUlRfU0hBIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlBBUlRfU0hBX1NUQVRFX0lOVkFMSUQiIDY1CjYwNzogIHByaW50ZiAnJTA4ZFx0JXNcdCVzXHQlc1xuJyAiJGlkeCIgIiRDVVJSRU5UX1BBUlRfTkFNRSIgIiRDVVJSRU5UX1BBUlRfU0laRSIgIiRDVVJSRU5UX1BBUlRfU0hBIiA+PiIkUEFSVFNfTUFOSUZFU1QiCjYxMDptYW5pZmVzdF9maW5hbGl6ZSgpewo2MjE6ICAnICIkUEFSVFNfTUFOSUZFU1QiIHx8IGRpZSAiUEFSVFNfTUFOSUZFU1RfSU5WQUxJRCIgNjUKNjIyOiAgUEFSVFNfTUFOSUZFU1RfU0hBPSIkKHNoYTI1NnN1bSAtLSAiJFBBUlRTX01BTklGRVNUIiB8IGF3ayAne3ByaW50ICQxfScpIgo2MjM6ICBbWyAiJFBBUlRTX01BTklGRVNUX1NIQSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQQVJUU19NQU5JRkVTVF9TSEFfSU5WQUxJRCIgNjUKNjI2OiMgU0VDVElPTl9SRU1PVEVfVVBMT0FEX1BSSU1JVElWRVNfVjEKNjI3OnJlbW90ZV9wYXJ0c19iYXNlKCl7CjYyOTogIFtbICIkYmFzZSIgPT0gIiRSRU1PVEVfQV9CQVNFIiB8fCAiJGJhc2UiID09ICIkUkVNT1RFX0JfQkFTRSIgXV0gfHwgZGllICJSRU1PVEVfQkFTRV9OT1RfQVBQUk9WRUQiIDY0CjYzMzpyZW1vdGVfbWFuaWZlc3RfcGF0aCgpewo2MzU6ICBbWyAiJGJhc2UiID09ICIkUkVNT1RFX0FfQkFTRSIgfHwgIiRiYXNlIiA9PSAiJFJFTU9URV9CX0JBU0UiIF1dIHx8IGRpZSAiUkVNT1RFX0JBU0VfTk9UX0FQUFJPVkVEIiA2NAo2NDM6ICBkZXN0aW5hdGlvbj0iJChyZW1vdGVfcGFydHNfYmFzZSAiJGJhc2UiKS8kQ1VSUkVOVF9QQVJUX05BTUUiCjY0NDogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVF9GSUxFIiAiJGRlc3RpbmF0aW9uIiAtLWltbXV0YWJsZSAtLXNpemUtb25seQo2NDc6dXBsb2FkX21hbmlmZXN0X2ltbXV0YWJsZSgpewo2NDk6ICBbWyAtcyAiJFBBUlRTX01BTklGRVNUIiAmJiAhIC1MICIkUEFSVFNfTUFOSUZFU1QiIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfTk9UX1JFQURZIiA2NQo2NTA6ICBbWyAiJHtQQVJUU19NQU5JRkVTVF9TSEE6LX0iID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiTE9DQUxfUEFSVFNfTUFOSUZFU1RfU0hBX05PVF9SRUFEWSIgNjUKNjUxOiAgZGVzdGluYXRpb249IiQocmVtb3RlX21hbmlmZXN0X3BhdGggIiRiYXNlIikiCjY1MjogIHJ1bl9yY2xvbmUgY29weXRvICIkUEFSVFNfTUFOSUZFU1QiICIkZGVzdGluYXRpb24iIC0taW1tdXRhYmxlIC0tc2l6ZS1vbmx5CjY1NTojIFNFQ1RJT05fQ0xPVURfQV9VUExPQURfUEFTU19WMQ== +PIPE_3_SCORE=5 +PIPE_3_BASENAME=vm150-runtime.py +PIPE_3_PATH_SHA256=1f2b9620938f600855ee9172ae67b59709d740fe981c64c0d2b78b8298192b4f +PIPE_3_FILE_SHA256=af1fcb7b519b60b203c940bfb6c6373fd012b691f1479f7e42a4c8b54bc17b2a +PIPE_3_SCHEDULE_TARGET_COUNT=0 +PIPE_3_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_3_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_3_VZDUMP_QEMU_COUNT=1 +PIPE_3_RCLONE_COUNT=7 +PIPE_3_CLOUD_QUORUM_COUNT=2 +PIPE_3_SEAL_WRITTEN_COUNT=2 +PIPE_3_PAYLOAD_PARTS_COUNT=1 +PIPE_3_TRANSPORT_COUNT=0 +PIPE_3_RESTORE_VALIDATION_COUNT=0 +PIPE_3_SCHEDULE_RESULT_COUNT=0 +PIPE_3_RELEVANT_LINE_COUNT=175 +PIPE_3_RELEVANT_B64=MjE6Vk1JRD0xNTAKMjk6T0xEX1NUQVRFPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwJykvKE9MRF9HRU4rJy5qc29uJykKMzA6T0xEX1NUQVRFX1NIQT0nNjgwZGVjZDkwZWMwNmFmMTE5ZDRhNjUwN2RiOTRjMDA4N2E4YTIzNzM5NmFhNDhkZTBmMWFmYWM4NWJiYTY4OCcKMzE6T0xEX1JFU1RPUkU9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAnKS8oT0xEX0dFTisnLmpzb24nKQozMjpPTERfUkVTVE9SRV9TSEE9J2JiYTQ4Y2MzNWZhNjFmZjQ0MDc5ZGE5ZGZkNWI2NWI5N2U4NTZmNjM5Yjg5M2Y3ZGI4NTEwMGIyOGE1ODE2ZTAnCjM0OlNFQUw9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWFkbWluL3NlYWxzJykvKFRBU0tfSUQrJy5qc29uJykKMzU6U0VFRF9UQVJHRVQ9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi92ei90ZW1wbGF0ZS9pc28vc25pa2tldC12bTE1MC1zZWVkLmlzbycpCjUyOlFNUkVTVE9SRT0nL3Vzci9zYmluL3FtcmVzdG9yZScKNTQ6UkNMT05FPScvdXNyL2Jpbi9yY2xvbmUnCjU3OlFVRVVFPScvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUnCjU4OldPUktFUj0nL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLW5vZGUtd29ya2VyJwo2MDpCQUNLVVBfTE9DS1M9WycvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrJywnL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2snLCcvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2snXQo3NzpkZWYgcnVuKGFyZ3YsY2hlY2s9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSxlbnY9Tm9uZSk6Cjc4OiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KODg6ZGVmIHRleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6IHJldHVybiBydW4oYXJndixjaGVjaz1jaGVjayx0aW1lb3V0PXRpbWVvdXQpLnN0ZG91dC5kZWNvZGUoZXJyb3JzPSdyZXBsYWNlJykKODk6ZGVmIHJ1bl90dHkoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjkwOiAgICBhcmdzPVtzdHIoeCkgZm9yIHggaW4gYXJndl0KMTY0OmRlZiB0YXJnZXRfc2hhcGUoY2ZnKToKMTgxOiAgICBpZiB0YXJnZXRfc2hhcGUoY2ZnKTogcmV0dXJuICdUQVJHRVQnCjE4NTogICAgcm93cz1beCBmb3IgeCBpbiBkYXRhIGlmIGludCh4LmdldCgndm1pZCcsLTEpKT09MTUwXQoyMDE6ZGVmIGFzc2VydF9vbGRfcmVjb3ZlcnkocmVhZF9yZW1vdGU9VHJ1ZSk6CjIwMjogICAgaWYgbm90IE9MRF9TVEFURS5pc19maWxlKCkgb3Igc2hhKE9MRF9TVEFURSkhPU9MRF9TVEFURV9TSEE6IGRpZSgnT0xEX1NUQVRFX1NIQV9NSVNNQVRDSCcsNjYpCjIwMzogICAgaWYgbm90IE9MRF9SRVNUT1JFLmlzX2ZpbGUoKSBvciBzaGEoT0xEX1JFU1RPUkUpIT1PTERfUkVTVE9SRV9TSEE6IGRpZSgnT0xEX1JFU1RPUkVfU0hBX01JU01BVENIJyw2NikKMjA0OiAgICBzdD1qc29uLmxvYWRzKE9MRF9TVEFURS5yZWFkX3RleHQoKSk7IHJ2PWpzb24ubG9hZHMoT0xEX1JFU1RPUkUucmVhZF90ZXh0KCkpCjIwNTogICAgY2hlY2tzPVtzdC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyxzdC5nZXQoJ2Nsb3VkX3F1b3J1bScpPT0yLHN0LmdldCgnY2xvdWRfYV92ZXJpZmllZCcpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9iX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3BhcnRfaGFzaGVzX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ3NlYWxfd3JpdHRlbicpIGlzIFRydWUsc3QuZ2V0KCdjbG91ZF9hX3NlYWxfdmVyaWZpZWQnKSBpcyBUcnVlLHN0LmdldCgnY2xvdWRfYl9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSxzdC5nZXQoJ2xvY2FsX2NsZWFudXAnKT09J09LJyxzdC5nZXQoJ2xvY2FsX3BheWxvYWRfcHJlc2VudCcpIGlzIEZhbHNlLHJ2LmdldCgncmVzdWx0Jyk9PSdPSycscnYuZ2V0KCdwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZCcpIGlzIFRydWUscnYuZ2V0KCdhcmNoaXZlX3JlY292ZXJ5X3JlYWRiYWNrX3ZlcmlmaWVkJykgaXMgVHJ1ZSxydi5nZXQoJ3Byb3htb3hfY29uZmlnX2V4dHJhY3RfdmVyaWZpZWQnKSBpcyBUcnVlXQoyMDc6ICAgIGlmIHJlYWRfcmVtb3RlOgoyMDg6ICAgICAgICBiYXNlPXN0LmdldCgncmVtb3RlX2FfYmFzZScpOyBtc2hhPXN0LmdldCgncGFydHNfbWFuaWZlc3Rfc2hhMjU2JykKMjA5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYmFzZSxzdHIpIG9yIG5vdCBiYXNlLmVuZHN3aXRoKCcvdm0xNTAvJytPTERfR0VOKTogZGllKCdPTERfUkVNT1RFX0FfQkFTRV9JTlZBTElEJyw2NikKMjEwOiAgICAgICAgc2VhbGI9cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL3NlYWwuanNvbiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTE6ICAgICAgICBtYW49cnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZS5yc3RyaXAoJy8nKSsnL1BBUlRTLnRzdiddLHRpbWVvdXQ9NjApLnN0ZG91dAoyMTI6ICAgICAgICB0cnk6IHJzPWpzb24ubG9hZHMoc2VhbGIpCjIxMzogICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IGRpZSgnT0xEX1JFTU9URV9TRUFMX0pTT05fSU5WQUxJRCcsNjYpCjIxNDogICAgICAgIGlmIHJzLmdldCgnc3RhdHVzJykhPSdTRUFMRUQnIG9yIHJzLmdldCgnZ2VuZXJhdGlvbicpIT1PTERfR0VOIG9yIHJzLmdldCgnYXJjaGl2ZV9zaGEyNTYnKSE9c3QuZ2V0KCdhcmNoaXZlX3NoYTI1NicpOiBkaWUoJ09MRF9SRU1PVEVfU0VBTF9NSVNNQVRDSCcsNjYpCjIxNTogICAgICAgIGlmIHNoYV9ieXRlcyhtYW4pIT1tc2hhOiBkaWUoJ09MRF9SRU1PVEVfTUFOSUZFU1RfU0hBX01JU01BVENIJyw2NikKMjE4OmRlZiBiYWNrdXBfYnVzeSgpOgoyMTk6ICAgIHA9cnVuKFsnL3Vzci9iaW4vcGdyZXAnLCctYWYnLCcoXnwvKSh2emR1bXB8cW1yZXN0b3JlfHBjdHJlc3RvcmV8dm1hfHpzdGR8cmNsb25lKShbWzpzcGFjZTpdXXwkKXxob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1ub2RlLXdvcmtlciBiYWNrdXAnXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE1KQoyMzA6ICAgIGlmIG5vdCBwYXRobGliLlBhdGgoV09SS0VSKS5pc19maWxlKCkgb3Igc2hhKFdPUktFUikhPUNGR1sndm1fd29ya2VyX3NoYTI1NiddOiBkaWUoJ1ZNX1dPUktFUl9TT1VSQ0VfRFJJRlQnLDY2KQoyNTI6ICAgIGZyZWU9c2h1dGlsLmRpc2tfdXNhZ2UoJy9tbnQvc3RhZ2luZycpLmZyZWUKMjU3OiAgICBpZiBTRUFMLmV4aXN0cygpOiBkaWUoJ1RBU0tfQUxSRUFEWV9TRUFMRUQnLDY2KQoyNTk6ICAgIHN0YXRlPWNsYXNzaWZ5X3ZtKCk7IG93bmVyPWNsdXN0ZXJfb3duZXIoKQoyNjA6ICAgIGlmIHN0YXRlPT0nT0xEJzoKMjYyOiAgICBlbGlmIHN0YXRlPT0nVEFSR0VUJzoKMjYzOiAgICAgICAgaWYgb3duZXIhPSdwdmUwMScgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdWTTE1MF9UQVJHRVRfSURFTlRJVFlfSU5WQUxJRCcsNjYpCjI2NDogICAgZWxzZTogZGllKCdWTTE1MF9TVEFURV8nK3N0YXRlLDY2KQoyNjU6ICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQoyNjc6ICAgIG9iaj17J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlZmxpZ2h0LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6c3RhdGUsJ293bmVyJzpvd25lciwnb2xkX2dlbmVyYXRpb24nOk9MRF9HRU4sJ29sZF9yZWNvdmVyeSc6J1NFQUxFRF9SRVNUT1JFX1BST1ZFTicsJ2ltYWdlX3NoYTI1Nic6Q0ZHWydpbWFnZV9zaGEyNTYnXSwncXVldWVfc2hhMjU2JzpDRkdbJ3ZtX3F1ZXVlX3NoYTI1NiddLCd3b3JrZXJfc2hhMjU2JzpDRkdbJ3ZtX3dvcmtlcl9zaGEyNTYnXSwnZWRnZV9yZWFkb25seV9zaGEyNTYnOnNoYV9ieXRlcyhlZGdlLmVuY29kZSgpKSwnc291cmNlX2hlYWQnOnNvdXJjZV9oZWFkLCdzdGFnaW5nX2ZyZWVfYnl0ZXMnOmZyZWUsJ3JvbGxiYWNrX21pbl9mcmVlX2J5dGVzJzpuZWVkLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfQoyNjk6ICAgIHByaW50KGYnUFJFRkxJR0hUX1NUQVRVUz1PS3xWTTE1MD17c3RhdGV9fE9XTkVSPXtvd25lcn18T0xEX1JFQ09WRVJZPVNFQUxFRF9SRVNUT1JFX1BST1ZFTnxJTUFHRT1QSU5ORUR8U09VUkNFPXtzb3VyY2VfaGVhZH18U1RBR0lOR19ST0xMQkFDS19DQVBBQ0lUWT1PS3xFREdFX05QTVBMVVM9UkVBRF9PTkxZX09LfFBST0RVQ1RJT05fQ0hBTkdFRD1OTycpCjI3MTpkZWYgcGFyc2VfcGFydHMoc3QsbWFuaWZlc3RfYnl0ZXMpOgoyNzM6ICAgIGZvciBpLGxpbmUgaW4gZW51bWVyYXRlKG1hbmlmZXN0X2J5dGVzLmRlY29kZSgpLnNwbGl0bGluZXMoKSk6CjI3NTogICAgICAgIGlmIGxlbihmaWVsZHMpIT00OiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1JPV19JTlZBTElEJyw3MCkKMjc3OiAgICAgICAgaWYgaWR4IT1mJ3tpOjA4ZH0nIG9yIG5hbWUhPWYncGFydC17aTowOGR9LmJpbicgb3Igbm90IHNpemVfcy5pc2RpZ2l0KCkgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscHNoYSk6IGRpZSgnUk9MTEJBQ0tfTUFOSUZFU1RfUk9XX0lOVkFMSUQnLDcwKQoyODE6ICAgIGlmIGxlbihyb3dzKSE9aW50KHN0LmdldCgncGFydF9jb3VudCcsLTEpKSBvciB0b3RhbCE9aW50KHN0LmdldCgnYXJjaGl2ZV9zaXplX2J5dGVzJywtMSkpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1RPVEFMX0lOVkFMSUQnLDcwKQoyODY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsc3RyKSBvciBwYXRobGliLlBhdGgobmFtZSkubmFtZSE9bmFtZSBvciBub3QgbmFtZS5zdGFydHN3aXRoKCd2emR1bXAtcWVtdS0xNTAtJykgb3Igbm90IG5hbWUuZW5kc3dpdGgoJy52bWEuenN0Jyk6IGRpZSgnUk9MTEJBQ0tfQVJDSElWRV9OQU1FX0lOVkFMSUQnLDY2KQozMDE6ICAgIGJhc2U9c3RbJ3JlbW90ZV9hX2Jhc2UnXS5yc3RyaXAoJy8nKQozMDI6ICAgIG1hbmlmZXN0PXJ1bihbUkNMT05FLCdjYXQnLGJhc2UrJy9QQVJUUy50c3YnXSx0aW1lb3V0PTYwKS5zdGRvdXQKMzAzOiAgICBpZiBzaGFfYnl0ZXMobWFuaWZlc3QpIT1zdC5nZXQoJ3BhcnRzX21hbmlmZXN0X3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX01BTklGRVNUX1NIQV9NSVNNQVRDSCcsNzApCjMwNDogICAgcm93cz1wYXJzZV9wYXJ0cyhzdCxtYW5pZmVzdCk7IG5hbWU9c2FmZV9hcmNoaXZlX25hbWUoc3QpCjMyODogICAgICAgICAgICBwPXN1YnByb2Nlc3MucnVuKFtSQ0xPTkUsJ2NhdCcsYmFzZSsnL3BheWxvYWQucGFydHMvJytuYW1lX2ldLHN0ZG91dD1wZixzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTgwMCkKMzY5OiAgICAgICAgJyNjbG91ZC1jb25maWcnLCd1c2VyczonLCcgIC0gbmFtZTogZGViaWFuJywnICAgIGdlY29zOiBEZWJpYW4nLCcgICAgZ3JvdXBzOiBbc3Vkb10nLCcgICAgc3VkbzogIkFMTD0oQUxMKSBOT1BBU1NXRDpBTEwiJywnICAgIHNoZWxsOiAvYmluL2Jhc2gnLCcgICAgbG9ja19wYXNzd2Q6IHRydWUnLCcgICAgc3NoX2F1dGhvcml6ZWRfa2V5czonLCpbJyAgICAgIC0gJyt4IGZvciB4IGluIGtleXNdLAozODM6ICAgICMgUnVuIGluIHRoZSBzZWVkIGRpcmVjdG9yeSBzbyB0aGUgSVNPIGNvbnRhaW5zIHRoZSBjYW5vbmljYWwgTm9DbG91ZCBmaWxlbmFtZXMgYXQgaXRzIHJvb3QuCjQwMDogICAgaWYgeC5nZXQoJ3NjaGVtYScpIT0nc25pa2tldC12bTE1MC1zdGFnZS12Micgb3IgeC5nZXQoJ29sZF9nZW5lcmF0aW9uJykhPU9MRF9HRU4gb3IgeC5nZXQoJ29sZF9jb25maWdfc2hhMjU2JykhPU9MRF9DT05GSUdfU0hBOiBkaWUoJ1NUQUdFX01FVEFEQVRBX0lOVkFMSUQnLDY2KQo0MTM6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnVEFTS19BTFJFQURZX1NFQUxFRCcsNjYpCjQxNjogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyNjogICAgd2l0aCBleGNsdXNpdmVfbG9ja3MoQkFDS1VQX0xPQ0tTKToKNDI3OiAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQyOTogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zdGFnZS12MicsJ2NvbXBsZXRlJzpUcnVlLCdjcmVhdGVkX29yX3JlZnJlc2hlZF9hdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwnb2xkX3N0YXRlX3NoYTI1Nic6T0xEX1NUQVRFX1NIQSwnb2xkX3Jlc3RvcmVfc2hhMjU2JzpPTERfUkVTVE9SRV9TSEEsJ29sZF9jb25maWdfc2hhMjU2JzpPTERfQ09ORklHX1NIQSwnaW1hZ2Vfc2hhMjU2JzpDRkdbJ2ltYWdlX3NoYTI1NiddLCdvcGVyYXRvcl9rZXlzX3NoYTI1Nic6c2hhKGtleXMpLCdzZWVkX3NoYTI1Nic6c2hhKHNlZWQpLCdyb2xsYmFja19hcmNoaXZlX25hbWUnOmFyY2hpdmUubmFtZSwncm9sbGJhY2tfYXJjaGl2ZV9ieXRlcyc6YXJjaGl2ZS5zdGF0KCkuc3Rfc2l6ZSwncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOnN0WydhcmNoaXZlX3NoYTI1NiddLCdtdXRhdGlvbl9zdGF0ZSc6J1BSRVBBUkVEJ30KNDMxOiAgICBwaGFzZV9qc29uKCdwcmVwYXJlJyx7J3NjaGVtYSc6J3NuaWtrZXQtdm0xNTAtcHJlcGFyZS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnc3RhZ2UnOnN0cihTVEFHRSksJ29sZF9nZW5lcmF0aW9uJzpPTERfR0VOLCdyb2xsYmFja19hcmNoaXZlJzonTE9DQUxfUFJFU1RBR0VEX1ZFUklGSUVEJywncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnOm9ialsncm9sbGJhY2tfYXJjaGl2ZV9zaGEyNTYnXSwnc2VlZF9zaGEyNTYnOm9ialsnc2VlZF9zaGEyNTYnXSwncHJpdmF0ZV9tYXRlcmlhbF9sb2dnZWQnOkZhbHNlLCdwcm9kdWN0aW9uX2NoYW5nZWQnOkZhbHNlfSkKNDMyOiAgICBwcmludChmJ1BSRVBBUkVfU1RBVFVTPU9LfE9MRF9HRU5FUkFUSU9OPXtPTERfR0VOfXxST0xMQkFDS19BUkNISVZFPUxPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRHxTRUVEPU5PX0NMT1VEX0NJREFUQXxQUklWQVRFX01BVEVSSUFMX0xPR0dFRD1OT3xQUk9EVUNUSU9OX0NIQU5HRUQ9Tk8nKQo0NjI6ZGVmIGd1ZXN0X2V4ZWMoYXJndix0aW1lb3V0PTEyMCxjaGVjaz1UcnVlLHJlcXVpcmVfcGlkPUZhbHNlKToKNDYzOiAgICBwPXJ1bihbUU0sJ2d1ZXN0JywnZXhlYycsJzE1MCcsJy0tJ10rbGlzdChhcmd2KSx0aW1lb3V0PW1pbih0aW1lb3V0LDEyMCkpCjQ4MDogICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjQ5MDogICAgaWYgbm90IGlkZV9jb250cmFjdCBvciBub3QgaXBjb25maWdfY29udHJhY3Q6IGRpZSgnUU1fU0VUX0NMT1VESU5JVF9DT05UUkFDVF9VTlBST1ZFTicsNjYpCjQ5NDogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1kcnktcnVuLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTiwncm9sbGJhY2tfYXJjaGl2ZSc6J0xPQ0FMX1BSRVNUQUdFRF9WRVJJRklFRCcsJ3FnYV9hc3luY19jb250cmFjdCc6J1BST1ZFTl9PTl9DVVJSRU5UX1ZNMTUwJywndGFyZ2V0Jzp7J25hbWUnOidzbmlra2V0Jywndm1pZCc6MTUwLCdjb3Jlcyc6NCwnbWVtb3J5X21pYic6ODE5MiwnZGlza19naWInOjY0LCdpcCc6SVAsJ2dhdGV3YXknOkdXLCdtYWMnOk1BQywnZG5zJzpbR1csJ1tQUklWQVRFX0lQXSddfSwncHJveG1veF9zZXF1ZW5jZSc6WydzaHV0ZG93biBvbGQgVk0xNTAnLCdkZXN0cm95IGV4YWN0IG9sZCBWTTE1MCcsJ2NyZWF0ZSBWTTE1MCcsJ2ltcG9ydCBwaW5uZWQgRGViaWFuIDEzIGdlbmVyaWMgaW1hZ2UnLCdhdHRhY2grcmVzaXplIDY0RycsJ2F0dGFjaCB0YXNrLW93bmVkIE5vQ2xvdWQgY2lkYXRhIElTTycsJ3N0YXJ0IGFuZCB3YWl0IGZvciBndWVzdC1wcm92aXNpb24gdmlhIFFHQScsJ3N0b3AgYW5kIGRldGFjaCBzZWVkIElTTycsJ3Jlc3RhcnQgYW5kIHJldmVyaWZ5IGxvY2FsIFNuaWtrZXQgaGVhbHRoJywnY3JlYXRlIHJvb3Qtb25seSBhZG1pbiBpbnZpdGUnLCdjcmVhdGUgZnJlc2ggY2Fub25pY2FsIHJlc3RvcmUtcHJvdmVuIFZNMTUwIGJhY2t1cCddLCdyb2xsYmFjayc6J3ByZS1zdGFnZWQgZXhhY3Qgb2xkIGFyY2hpdmUgKyBxbXJlc3RvcmUgMTUwJywncHJvZHVjdGlvbl9jaGFuZ2VkJzpGYWxzZX0KNDk2OiAgICBwcmludCgnRFJZX1JVTl9TVEFUVVM9T0t8UFJPRFVDVElPTl9DSEFOR0VEPU5PfFJPTExCQUNLPUxPQ0FMX1BSRVNUQUdFRF9RTVJFU1RPUkV8UUdBX0FTWU5DX0NPTlRSQUNUPVBST1ZFTnxUQVJHRVQ9Vk0xNTBfU05JS0tFVCcpCjQ5OTpkZWYgZXhjbHVzaXZlX2xvY2tzKHBhdGhzKToKNTA0OiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX0VYfGZjbnRsLkxPQ0tfTkIpCjUwNTogICAgICAgICAgICBleGNlcHQgQmxvY2tpbmdJT0Vycm9yOgo1MDY6ICAgICAgICAgICAgICAgIGYuY2xvc2UoKTsgZGllKCdMT0NLX0JVU1lfJytwYXRobGliLlBhdGgocSkubmFtZSw3NSkKNTExOiAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjUzMjogICAgaWYgU0VFRF9UQVJHRVQuZXhpc3RzKCk6CjUzMzogICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9QUkVFWElTVFNfRElGRkVSRU5UJyw2NikKNTM1OiAgICB0bXA9U0VFRF9UQVJHRVQud2l0aF9uYW1lKFNFRURfVEFSR0VULm5hbWUrJy5uZXcuJytzdHIob3MuZ2V0cGlkKCkpKQo1MzY6ICAgIHNodXRpbC5jb3B5ZmlsZShzcmMsdG1wKTsgb3MuY2htb2QodG1wLDBvNjAwKTsgb3MucmVwbGFjZSh0bXAsU0VFRF9UQVJHRVQpCjUzNzpkZWYgY3JlYXRlX3RhcmdldCgpOgo1NTA6ICAgIGlmIG5vdCB0YXJnZXRfc2hhcGUocW1fY29uZmlnKCkpOiBkaWUoJ1RBUkdFVF9DT05GSUdfU0hBUEVfSU5WQUxJRCcsNzApCjU3MDogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdUQVJHRVRfVk1fTk9UX1JVTk5JTkcnLDcwKQo1ODQ6ICAgICAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNTg2OiAgICAgICAgICAgIGlmIHNoYShTRUVEX1RBUkdFVCkhPXN4LmdldCgnc2VlZF9zaGEyNTYnKTogZGllKCdTRUVEX1RBUkdFVF9TSEFfRFJJRlQnLDcwKQo1ODc6ICAgICAgICAgICAgU0VFRF9UQVJHRVQudW5saW5rKCkKNTk0OiAgICBlbGlmIFNFRURfVEFSR0VULmV4aXN0cygpOgo1OTU6ICAgICAgICBkaWUoJ1VOUkVGRVJFTkNFRF9TRUVEX1RBUkdFVF9QUkVTRU5UJyw3MCkKNjA1OmRlZiBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik6CjYwNjogICAgc2Y9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAnKS8oZ2VuKycuanNvbicpOyByZj1wYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbi92bTE1MCcpLyhnZW4rJy5qc29uJykKNjA3OiAgICBpZiBub3Qgc2YuaXNfZmlsZSgpIG9yIG5vdCByZi5pc19maWxlKCk6IGRpZSgnTkVXX0JBQ0tVUF9FVklERU5DRV9NSVNTSU5HJyw3MCkKNjA5OiAgICBvaz1zLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBzLmdldCgnY2xvdWRfcXVvcnVtJyk9PTIgYW5kIHMuZ2V0KCdjbG91ZF9hX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2JfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCBzLmdldCgnY2xvdWRfYV9zZWFsX3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgcy5nZXQoJ2Nsb3VkX2Jfc2VhbF92ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdwYXJ0X2hhc2hlc192ZXJpZmllZCcpIGlzIFRydWUgYW5kIHMuZ2V0KCdzZWFsX3dyaXR0ZW4nKSBpcyBUcnVlIGFuZCBzLmdldCgnbG9jYWxfcGF5bG9hZF9wcmVzZW50JykgaXMgRmFsc2UgYW5kIHMuZ2V0KCdsb2NhbF9jbGVhbnVwJyk9PSdPSycgYW5kIHIuZ2V0KCdyZXN1bHQnKT09J09LJyBhbmQgci5nZXQoJ3BheWxvYWRfc2hhMjU2X3ZlcmlmaWVkJykgaXMgVHJ1ZSBhbmQgci5nZXQoJ2FyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQnKSBpcyBUcnVlIGFuZCByLmdldCgncHJveG1veF9jb25maWdfZXh0cmFjdF92ZXJpZmllZCcpIGlzIFRydWUKNjEwOiAgICBpZiBub3Qgb2s6IGRpZSgnTkVXX0JBQ0tVUF9OT1RfU1RSSUNUTFlfUFJPVkVOJyw3MCkKNjEyOmRlZiBmb3JjZV9iYWNrdXAoKToKNjEzOiAgICBlbnY9b3MuZW52aXJvbi5jb3B5KCk7IGVudlsnSE9NRUxBQl9CQUNLVVBfRElTUEFUQ0hFUiddPScxJwo2MTQ6ICAgIHA9cnVuKFtXT1JLRVIsJ2JhY2t1cCcsJzE1MCddLHRpbWVvdXQ9NTQwMCxlbnY9ZW52KQo2MTY6ICAgIG09cmUuc2VhcmNoKHInKD9tKV5HRU5FUkFUSU9OPSh2bTE1MC1wdmUwMS1bMC05VFpdKykkJyxvdXQpCjYxNzogICAgaWYgbm90IG06IGRpZSgnTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDcwKQo2MTk6ICAgIGlmIGdlbj09T0xEX0dFTjogZGllKCdORVdfQkFDS1VQX1JFVVNFRF9PTERfR0VORVJBVElPTicsNzApCjYyMDogICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjYyMzpkZWYgcmVzdG9yZV9vbGRfbG9ja2VkKCk6CjYyNjogICAgcnVuX3R0eShbUU1SRVNUT1JFLHN0cihhcmNoaXZlKSwnMTUwJywnLS1zdG9yYWdlJywnbG9jYWwtbHZtJ10sdGltZW91dD0yNDAwKQo2Mjc6ICAgIGlmIG5vdCBvbGRfY2ZnX21hdGNoKHFtX2NvbmZpZygpKTogZGllKCdST0xMQkFDS19SRVNUT1JFRF9DT05GSUdfU0hBX01JU01BVENIJyw3MCkKNjI4OiAgICBpZiBTRUVEX1RBUkdFVC5leGlzdHMoKToKNjMwOiAgICAgICAgaWYgc2hhKFNFRURfVEFSR0VUKSE9c3guZ2V0KCdzZWVkX3NoYTI1NicpOiBkaWUoJ1JPTExCQUNLX1NFRURfVEFSR0VUX1NIQV9EUklGVCcsNzApCjYzMTogICAgICAgIFNFRURfVEFSR0VULnVubGluaygpCjY0MDogICAgaWYgU0VBTC5leGlzdHMoKTogZGllKCdUQVNLX0FMUkVBRFlfU0VBTEVEJyw2NikKNjQzOiAgICBzdGF0ZT1jbGFzc2lmeV92bSgpCjY0NDogICAgaWYgc3RhdGUgbm90IGluICgnT0xEJywnVEFSR0VUJyk6IGRpZSgnQVBQTFlfVk1fU1RBVEVfJytzdGF0ZSw2NikKNjQ1OiAgICBzeD1zdGFnZV9vYmooVHJ1ZSk7IG11dGF0aW9uX3N0YXRlPXN4LmdldCgnbXV0YXRpb25fc3RhdGUnKQo2NDY6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJzogZGllKCdBUFBMWV9SRUZVU0VTX0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU5fVVNFX1NFQUwnLDY2KQo2NDc6ICAgIGlmIHN0YXRlPT0nVEFSR0VUJyBhbmQgbXV0YXRpb25fc3RhdGU9PSdUQVJHRVRfQkFDS1VQX1BST1ZFTic6CjY0ODogICAgICAgIGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjQ5OiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cik6IGRpZSgnQVBQTFlfUkVVU0VfR0VORVJBVElPTl9NSVNTSU5HJyw2NikKNjUwOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pOyBsb2NhbF9oZWFsdGgoKQo2NTE6ICAgICAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2UsJ3JldXNlZF9wcm92ZW5fYXBwbHlfc3RhdGUnOlRydWV9KQo2NTI6ICAgICAgICBwcmludChmJ0FQUExZX1NUQVRVUz1PS3xSRVNVTFQ9UkVVU0VEX1BST1ZFTl9UQVJHRVR8Vk0xNTA9U05JS0tFVHxORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58T0xEX0dFTkVSQVRJT05fUFJFU0VSVkVEPXtPTERfR0VOfXxJTkdSRVNTX0FUVEVTVEVEPVlFU3xJTlZJVEVfTE9HR0VEPU5PJykKNjU0OiAgICBtdXRhdGlvbl9zdGFydGVkPShzdGF0ZT09J1RBUkdFVCcpOyB0YXJnZXRfZ3JlZW49bXV0YXRpb25fc3RhdGUgaW4gKCdUQVJHRVRfTE9DQUxfR1JFRU4nLCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKQo2NTU6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjY1NjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjY1ODogICAgICAgICAgICAgICAgaWYgYmFja3VwX2J1c3koKTogZGllKCdBQ1RJVkVfQkFDS1VQX1JFU1RPUkVfUFJFU0VOVCcsNzUpCjY1OTogICAgICAgICAgICAgICAgaWYgc3RhdGU9PSdPTEQnOgo2NjA6ICAgICAgICAgICAgICAgICAgICBkZXN0cm95X3ZtKCk7IG11dGF0aW9uX3N0YXJ0ZWQ9VHJ1ZTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdPTERfUkVNT1ZFRCcpCjY2MTogICAgICAgICAgICAgICAgICAgIGNyZWF0ZV90YXJnZXQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfQ1JFQVRFRCcpCjY2MzogICAgICAgICAgICAgICAgcHJvdmlzaW9uX2hhc2g9d2FpdF9ndWVzdF9wcm92aXNpb24oKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdUQVJHRVRfUFJPVklTSU9ORUQnLGd1ZXN0X3Byb3Zpc2lvbl9zdGF0dXNfc2hhMjU2PXByb3Zpc2lvbl9oYXNoKQo2NjU6ICAgICAgICAgICAgICAgIHRhcmdldF9ncmVlbj1UcnVlOyB1cGRhdGVfc3RhZ2UobXV0YXRpb25fc3RhdGU9J1RBUkdFVF9MT0NBTF9HUkVFTicsbG9jYWxfaGVhbHRoX2JlZm9yZV9zZWVkX2RldGFjaF9zaGEyNTY9aGVhbHRoMSxsb2NhbF9oZWFsdGhfYWZ0ZXJfc2VlZF9kZXRhY2hfc2hhMjU2PWhlYWx0aDIpCjY2NjogICAgICAgICAgICAgICAgaW52aXRlX3N0YXRlPWdlbmVyYXRlX2ludml0ZSgpOyB1cGRhdGVfc3RhZ2UoYWRtaW5faW52aXRlPWludml0ZV9zdGF0ZSkKNjY3OiAgICAgICAgICAgICAgICBnZW4sYmhhc2g9Zm9yY2VfYmFja3VwKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nVEFSR0VUX0JBQ0tVUF9QUk9WRU4nLG5ld19nZW5lcmF0aW9uPWdlbixiYWNrdXBfb3V0cHV0X3NoYTI1Nj1iaGFzaCkKNjY5OiAgICAgICAgICAgICAgICBpZiBtdXRhdGlvbl9zdGFydGVkIGFuZCBub3QgdGFyZ2V0X2dyZWVuOgo2NzE6ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcF92bSgpOyByZXN0b3JlX29sZF9sb2NrZWQoKTsgdXBkYXRlX3N0YWdlKG11dGF0aW9uX3N0YXRlPSdBVVRPX1JPTExFRF9CQUNLX09MRCcpCjY3MjogICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnQVVUT19ST0xMQkFDS19TVEFUVVM9T0t8UkVTVE9SRUQ9U05JS0tFVF9CQVNFTElORV9WTTE1MCcsZmlsZT1zeXMuc3RkZXJyKQo2NzU6ICAgICAgICAgICAgICAgIGVsaWYgbXV0YXRpb25fc3RhcnRlZCBhbmQgdGFyZ2V0X2dyZWVuOgo2NzY6ICAgICAgICAgICAgICAgICAgICBwcmludCgnUkVTVU1FX1NBRkVfVEFSR0VUX1BSRVNFUlZFRD1ZRVMnLGZpbGU9c3lzLnN0ZGVycikKNjc4OiAgICBwaGFzZV9qc29uKCdhcHBseScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLWFwcGx5LXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCd2bV9zdGF0ZSc6J1RBUkdFVCcsJ2xvY2FsX2hlYWx0aCc6J09LJywnc2VlZF9kZXRhY2hlZCc6VHJ1ZSwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnb2xkX2dlbmVyYXRpb25fcHJlc2VydmVkJzpPTERfR0VOLCdvcGVyYXRvcl9pbmdyZXNzX3JlYWR5X2F0dGVzdGVkJzpUcnVlLCdhZG1pbl9pbnZpdGVfZmlsZSc6c3RyKElOVklURV9GSUxFKSwnYWRtaW5faW52aXRlX2xvZ2dlZCc6RmFsc2V9KQo2Nzk6ICAgIHByaW50KGYnQVBQTFlfU1RBVFVTPU9LfFZNMTUwPVNOSUtLRVR8TE9DQUxfSEVBTFRIPU9LfFNFRURfREVUQUNIRUQ9WUVTfE5FV19CQUNLVVA9e2dlbn18TkVXX0JBQ0tVUF9SRVNUT1JFPVBST1ZFTnxPTERfR0VORVJBVElPTl9QUkVTRVJWRUQ9e09MRF9HRU59fElOR1JFU1NfQVRURVNURUQ9WUVTfEFETUlOX0lOVklURT1ST09UX09OTFlfRklMRXxJTlZJVEVfTE9HR0VEPU5PJykKNjk2OiAgICBpZiBjbGFzc2lmeV92bSgpIT0nVEFSR0VUJyBvciBxbV9zdGF0dXMoKSE9J3J1bm5pbmcnOiBkaWUoJ1ZFUklGWV9UQVJHRVRfVk1fSU5WQUxJRCcsNjYpCjY5NzogICAgaGVhbHRoPWxvY2FsX2hlYWx0aCgpOyBzeD1zdGFnZV9vYmooVHJ1ZSk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNjk4OiAgICBpZiBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdWRVJJRllfTkVXX0JBQ0tVUF9HRU5FUkFUSU9OX01JU1NJTkcnLDY2KQo2OTk6ICAgIHN0cmljdF9iYWNrdXBfZXZpZGVuY2UoZ2VuKQo3MTI6ICAgIHBoYXNlX2pzb24oJ3ZlcmlmeScseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXZlcmlmeS12MicsJ3N0YXR1cyc6J09LJywnYXRfdXRjJzpub3coKSwnbG9jYWxfaGVhbHRoX3NoYTI1Nic6aGVhbHRoLCdwdWJsaWNfZG5zJzpkbnMsJ2xvY2FsX3NwbGl0X2Rucyc6bG9jYWwsJ2VkZ2VfaHR0cHMnOmVkZ2VfaHR0cHMsJ3dlbGxfa25vd24nOidPSycsJ25ld19nZW5lcmF0aW9uJzpnZW4sJ25ld19iYWNrdXBfcmVzdG9yZSc6J1BST1ZFTicsJ2ZlZGVyYXRpb25fNTI2OV93YW4nOidPUEVSQVRPUl9OT19GT1JXQVJEX0FUVEVTVEFUSU9OX1JFUVVJUkVEJywnbW9iaWxlX2F2JzonT1BFUkFUT1JfRlVOQ1RJT05BTF9URVNUX1JFUVVJUkVEJywnbGltaXRlZF9yb2xlcyc6J1JFQ09NTUVOREVEX0ZPUl9GQU1JTFlfVVNFUlMnfSkKNzEzOiAgICBwcmludChmJ1ZFUklGWV9TVEFUVVM9T0t8UFVCTElDX0ROUz1PS3xMT0NBTF9TUExJVF9ETlM9RElSRUNUX1ZNMTUwfEVER0VfSFRUUFM9T0t8V0VMTF9LTk9XTj1PS3xORVdfQkFDS1VQPXtnZW59fE5FV19CQUNLVVBfUkVTVE9SRT1QUk9WRU58UkVRVUlSRVNfT1BFUkFUT1JfQVRURVNUQVRJT049Tk9fV0FOXzUyNjlfQU5EX01PQklMRV9BVl9BTkRfQURNSU4nKQo3MTY6ICAgIGlmIFNFQUwuZXhpc3RzKCk6IGRpZSgnUk9MTEJBQ0tfUkVGVVNFU19TRUFMRUQnLDY2KQo3MjE6ICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6CjcyMjogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKEJBQ0tVUF9MT0NLUyk6CjcyMzogICAgICAgICAgICBpZiBiYWNrdXBfYnVzeSgpOiBkaWUoJ0FDVElWRV9CQUNLVVBfUkVTVE9SRV9QUkVTRU5UJyw3NSkKNzI0OiAgICAgICAgICAgIHN0b3Bfdm0oKTsgcmVzdG9yZV9vbGRfbG9ja2VkKCk7IHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nUk9MTEVEX0JBQ0tfT0xEJykKNzI1OiAgICBwaGFzZV9qc29uKCdyb2xsYmFjaycseydzY2hlbWEnOidzbmlra2V0LXZtMTUwLXJvbGxiYWNrLXYyJywnc3RhdHVzJzonT0snLCdhdF91dGMnOm5vdygpLCdyZXN1bHQnOidSRVNUT1JFRF9PTEQnLCdvbGRfZ2VuZXJhdGlvbic6T0xEX0dFTn0pCjcyNjogICAgcHJpbnQoZidST0xMQkFDS19TVEFUVVM9T0t8UkVTVUxUPVJFU1RPUkVEX05FWFRDTE9VRHxPTERfR0VORVJBVElPTj17T0xEX0dFTn0nKQo3Mjg6ZGVmIHNlYWwoKToKNzI5OiAgICBpZiBTRUFMLmV4aXN0cygpOgo3MzA6ICAgICAgICB4PWpzb24ubG9hZHMoU0VBTC5yZWFkX3RleHQoKSkKNzMxOiAgICAgICAgaWYgeC5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgeC5nZXQoJ3Rhc2tfaWQnKT09VEFTS19JRDoKNzMyOiAgICAgICAgICAgIHBoYXNlX2pzb24oJ3NlYWwnLHgpOyBwcmludCgnU0VBTF9TVEFUVVM9T0t8UkVTVUxUPUFMUkVBRFlfU0VBTEVEJyk7IHJldHVybgo3MzM6ICAgICAgICBkaWUoJ0VYSVNUSU5HX1NFQUxfSU5WQUxJRCcsNjYpCjczNDogICAgc3g9c3RhZ2Vfb2JqKFRydWUpOyBtdXRhdGlvbl9zdGF0ZT1zeC5nZXQoJ211dGF0aW9uX3N0YXRlJyk7IGdlbj1zeC5nZXQoJ25ld19nZW5lcmF0aW9uJykKNzM1OiAgICBpZiBtdXRhdGlvbl9zdGF0ZSBub3QgaW4gKCdUQVJHRVRfQkFDS1VQX1BST1ZFTicsJ0ZJTkFMX0FETUlOX0JBQ0tVUF9QUk9WRU4nKSBvciBub3QgaXNpbnN0YW5jZShnZW4sc3RyKTogZGllKCdTRUFMX1RBUkdFVF9CQUNLVVBfTk9UX1BST1ZFTicsNjYpCjczNjogICAgaWYgY2xhc3NpZnlfdm0oKSE9J1RBUkdFVCcgb3IgcW1fc3RhdHVzKCkhPSdydW5uaW5nJzogZGllKCdTRUFMX1RBUkdFVF9JTlZBTElEJyw2NikKNzM3OiAgICBzdHJpY3RfYmFja3VwX2V2aWRlbmNlKGdlbik7IGxvY2FsX2hlYWx0aCgpCjc0MjogICAgcHJlX2FkbWluX2dlbj1zeC5nZXQoJ3ByZV9hZG1pbl9nZW5lcmF0aW9uJykgaWYgbXV0YXRpb25fc3RhdGU9PSdGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOJyBlbHNlIGdlbgo3NDM6ICAgIGlmIG11dGF0aW9uX3N0YXRlIT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTic6Cjc0NDogICAgICAgIHdpdGggZXhjbHVzaXZlX2xvY2tzKFsnL3J1bi9sb2NrLycrVEFTS19JRCsnLmxvY2snXSk6Cjc0NTogICAgICAgICAgICB3aXRoIGV4Y2x1c2l2ZV9sb2NrcyhCQUNLVVBfTE9DS1MpOgo3NDY6ICAgICAgICAgICAgICAgIGlmIGJhY2t1cF9idXN5KCk6IGRpZSgnQUNUSVZFX0JBQ0tVUF9SRVNUT1JFX1BSRVNFTlQnLDc1KQo3NDc6ICAgICAgICAgICAgICAgIGZpbmFsX2dlbixmaW5hbF9oYXNoPWZvcmNlX2JhY2t1cCgpCjc0ODogICAgICAgIHVwZGF0ZV9zdGFnZShtdXRhdGlvbl9zdGF0ZT0nRklOQUxfQURNSU5fQkFDS1VQX1BST1ZFTicscHJlX2FkbWluX2dlbmVyYXRpb249cHJlX2FkbWluX2dlbixuZXdfZ2VuZXJhdGlvbj1maW5hbF9nZW4sZmluYWxfYmFja3VwX291dHB1dF9zaGEyNTY9ZmluYWxfaGFzaCkKNzUxOiAgICAgICAgc3RyaWN0X2JhY2t1cF9ldmlkZW5jZShnZW4pCjc1MjogICAgb2JqPXsnc2NoZW1hJzonc25pa2tldC12bTE1MC1zZWFsLXYyJywnc3RhdHVzJzonU0VBTEVEJywndGFza19pZCc6VEFTS19JRCwnY2hhbmdlX2lkJzpDRkdbJ2NoYW5nZV9pZCddLCdzb3VyY2VfaGVhZCc6c291cmNlX2hlYWQsJ3NlYWxlZF9hdF91dGMnOm5vdygpLCd2bWlkJzoxNTAsJ2RvbWFpbic6J2NoYXQuZ3JhbTEucnUnLCdwcmVfYWRtaW5fZ2VuZXJhdGlvbic6cHJlX2FkbWluX2dlbiwnbmV3X2dlbmVyYXRpb24nOmdlbiwnbmV3X2JhY2t1cF9yZXN0b3JlX3Byb3Zlbic6VHJ1ZSwnZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnOlRydWUsJ29sZF9nZW5lcmF0aW9uX3ByZXNlcnZlZCc6T0xEX0dFTiwnbW9iaWxlX2F2X3Rlc3QnOidQQVNTJywnd2FuXzUyNjlfZm9yd2FyZGVkJzpGYWxzZSwnYWRtaW5fYWNjb3VudF9jcmVhdGVkJzpUcnVlLCdmYW1pbHlfdXNlcl9yb2xlJzonTElNSVRFRF9SRUNPTU1FTkRFRCcsJ2ludml0ZV9sb2dnZWQnOkZhbHNlfQo3NTc6ICAgIGF0b21pY19qc29uKFNFQUwsb2JqKQo3NTg6ICAgIHBoYXNlX2pzb24oJ3NlYWwnLG9iaikKNzU5OiAgICBwcmludChmJ1NFQUxfU1RBVFVTPU9LfFRBU0s9e1RBU0tfSUR9fEZJTkFMX1BPU1RfQURNSU5fQkFDS1VQPXtnZW59fE1PQklMRV9BVj1QQVNTfFdBTl81MjY5PU5PVF9GT1JXQVJERUR8QURNSU5fQUNDT1VOVD1DUkVBVEVEfElOVklURV9MT0dHRUQ9Tk98Uk9MTEJBQ0tfU1RBR0VfUkVUQUlORUQ9WUVTJykKNzYyOiAgICBhY3Rpb249c3lzLmFyZ3ZbMV0gaWYgbGVuKHN5cy5hcmd2KT09MiBlbHNlICcnCjc2NDogICAgICAgIGFjdGlvbnM9eydwcmVmbGlnaHQnOnByZWZsaWdodCwncHJlcGFyZSc6cHJlcGFyZSwnZHJ5LXJ1bic6ZHJ5cnVuLCdhcHBseSc6YXBwbHksJ3ZlcmlmeSc6dmVyaWZ5LCdyb2xsYmFjayc6cm9sbGJhY2ssJ3NlYWwnOnNlYWx9 +PIPE_4_SCORE=5 +PIPE_4_BASENAME=homelab-backup-audit +PIPE_4_PATH_SHA256=8625af1e2ff2eda46e03d400dced040d3506b25fd94cde5318eca74aa3a80888 +PIPE_4_FILE_SHA256=1c2cd8a00859492c010ed35baf5eb67f4278544809de8c2563421a6f3e356ed3 +PIPE_4_SCHEDULE_TARGET_COUNT=0 +PIPE_4_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_4_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_4_VZDUMP_QEMU_COUNT=0 +PIPE_4_RCLONE_COUNT=5 +PIPE_4_CLOUD_QUORUM_COUNT=2 +PIPE_4_SEAL_WRITTEN_COUNT=2 +PIPE_4_PAYLOAD_PARTS_COUNT=1 +PIPE_4_TRANSPORT_COUNT=1 +PIPE_4_RESTORE_VALIDATION_COUNT=0 +PIPE_4_SCHEDULE_RESULT_COUNT=0 +PIPE_4_RELEVANT_LINE_COUNT=114 +PIPE_4_RELEVANT_B64=MzpNT0RFPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICJhbGwiCjQ6aWYgTU9ERSBub3QgaW4gKCJhbGwiLCJ3cml0ZS1oZWFsdGgiLCJzY2hlZHVsZWQiLCJjb250cmFjdCIpOgo1OiAgICBwcmludCgiQVVESVRfRVJST1I9VVNBR0VfYWxsX3dyaXRlLWhlYWx0aF9zY2hlZHVsZWRfY29udHJhY3QiLGZpbGU9c3lzLnN0ZGVycik7IHN5cy5leGl0KDY0KQo3OiAgICBwcmludCgiQVVESVRfQ09OVFJBQ1Q9djItcGx1cy1zZWFsZWQtcXVvcnVtIikKODogICAgcHJpbnQoIkFVRElUX1NDSEVNQT1ob21lbGFiLWJhY2t1cC1hdWRpdC12MyIpCjExOlJFRz1wYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMTI6U1RBVEU9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12Mi9zdGF0ZSIpCjEzOlFST09UPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtIikKMTQ6Vk1SRVNUPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uIikKMTU6QVBQUkVTVD1wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24iKQoxNjpSRUdIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5IgoxNzpBUFBRPSIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlIgoxODpHRlNIPSIvdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtZ2ZzLXBvbGljeSIKMTk6R0ZTUD0iL2V0Yy9ob21lbGFiLWJhY2t1cC9nZnMtcmV0ZW50aW9uLmpzb24iCjIwOlJFVD0iL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYyIKMjI6QlJBTkNIPSJjci0yMDI2LTEwMDUtYmFja3VwLXYyLWhlYWx0aC1hbGVydGluZy1yZW1lZGlhdGlvbiIKMjM6RFJTRUFMPXBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zaXRlLWRyLWZpbmFsLWFjY2VwdGFuY2UtdjEuanNvbiIpCjI0OkNMT1VEQl9IRUFMVEg9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yLWJhY2t1cC9yZXN0b3JlLWNoZWNrLWhlYWx0aC50eHQiKQoyNTpIRUFMVEhTPVtwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItaGVhbHRoL2JhY2t1cC1hdWRpdC12Mi5qc29uIikscGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtYXVkaXQuanNvbiIpXQo0MjogICAgZm9yIGsgaW4gKCJzZWFsZWRfZXBvY2giLCJsYXN0X3N1Y2Nlc3NfZXBvY2giLCJ1cGRhdGVkX2Vwb2NoIik6CjQ1OiAgICBmb3IgayBpbiAoInNlYWxlZF9hdF91dGMiLCJ1cGRhdGVkX2F0X3V0YyIsImNvbXBsZXRlZF9hdF91dGMiKToKNTM6ZGVmIGxhdGVzdF9sZWdhY3kobG9naWNhbCxraW5kKToKNjY6ICAgIGdlbj1vYmouZ2V0KCJnZW5lcmF0aW9uIikKNjc6ICAgIHN0cmljdD0ob2JqLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKT09MiBhbmQgb2JqLmdldCgiY2xvdWRfYV92ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoImNsb3VkX2JfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBvYmouZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIG9iai5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kIG9iai5nZXQoImxvY2FsX3BheWxvYWRfcHJlc2VudCIpIGlzIEZhbHNlIGFuZCBvYmouZ2V0KCJsb2NhbF9jbGVhbnVwIik9PSJPSyIpCjcwOiAgICByZXN0b3JlPUZhbHNlCjc0OiAgICAgICAgICAgIHJlc3RvcmU9KHJqLmdldCgicmVzdWx0Iik9PSJPSyIpCjc3OiAgICByZXR1cm4geyJnZW5lcmF0aW9uIjpnZW4sInN0cmljdCI6c3RyaWN0LCJyZXN0b3JlX29rIjpyZXN0b3JlLCJhZ2Vfc2Vjb25kcyI6YWdlLCJzdGF0ZV9maWxlIjpzdHIocCksIm9iaiI6b2JqfQo5NTppc3N1ZXM9W107IHRhcmdldHM9W107IG5vdz1pbnQodGltZS50aW1lKCkpCjExNTogICAgICAgIGZvciB4IGluIGpzb24ubG9hZHMocm91dCk6IHJlc291cmNlc1tzdHIoeC5nZXQoInZtaWQiKSldPXgKMTIzOiAgICBraW5kPXJbImtpbmQiXTsgaWRlbnQ9clsiaWQiXTsgcmVjPXsibG9naWNhbF9pZCI6bGlkLCJraW5kIjpraW5kLCJzdGF0ZSI6IlVOVkVSSUZJRUQifQoxMjg6ICAgICAgICB0cnk6IHYyPWpzb24ubG9hZHMoKFNUQVRFLyhzaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTM5OiAgICAgICAgbGVnYWN5PWxhdGVzdF9sZWdhY3kobGlkLCJWTSIpCjE0MDogICAgICAgIGxlZ2FjeV9vaz1ib29sKGxlZ2FjeSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl0gYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPHZtX3NsYSkKMTQyOiAgICAgICAgc291cmNlPSgiVjIiIGlmIHYyX29rIGVsc2UgKCJTRUFMRURfUVVPUlVNIiBpZiBsZWdhY3lfb2sgZWxzZSAiTk9ORSIpKQoxNDM6ICAgICAgICByZWMudXBkYXRlKHsic3RhdGUiOiJGUkVTSCIgaWYgZnJlc2ggZWxzZSAiU1RBTEUiLCJzb3VyY2UiOnNvdXJjZSwidjJfYWdlX3NlY29uZHMiOnYyX2FnZSwibGVnYWN5X2FnZV9zZWNvbmRzIjpsZWdhY3lbImFnZV9zZWNvbmRzIl0gaWYgbGVnYWN5IGVsc2UgTm9uZSwicmVwbGljYV9jb3VudCI6cmVwY291bnQsInN0YXRlX2lkIjpzaWQsImdlbmVyYXRpb24iOih2Mi5nZXQoImdlbmVyYXRpb24iKSBpZiB2Ml9vayBhbmQgaXNpbnN0YW5jZSh2MixkaWN0KSBlbHNlIChsZWdhY3lbImdlbmVyYXRpb24iXSBpZiBsZWdhY3kgZWxzZSBOb25lKSl9KQoxNDQ6ICAgICAgICBpZiBub3QgZnJlc2g6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiUlBPX0JSRUFDSCIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6Ik5PX0ZSRVNIX1YyX09SX1NFQUxFRF9RVU9SVU0ifSkKMTQ4OiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJMT0NBTF9QQVlMT0FEX0xFQUsiLCJsb2dpY2FsX2lkIjpsaWQsInJvb3RfY2F1c2UiOiJMQVRFU1RfU1RBVEVfTE9DQUxfUEFZTE9BRF9QUkVTRU5UIn0pCjE0OTogICAgICAgICAgICBpZiBvYmouZ2V0KCJzdGF0dXMiKSE9IlNFQUxFRCIgYW5kIGxlZ2FjeVsiYWdlX3NlY29uZHMiXSBpcyBub3QgTm9uZSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdPDE3MjgwMDoKMTUwOiAgICAgICAgICAgICAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJISUdIIiwiY29kZSI6IklOQ09NUExFVEVfR0VORVJBVElPTiIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9SRUNFTlRfU1RBVEVfTk9UX1NFQUxFRCJ9KQoxNTM6ICAgICAgICBmcmVzaD0oZGVjIGluICgiU0tJUF9GUkVTSCIsIkJBQ0tVUF9GUkVTSCIpKQoxNTQ6ICAgICAgICBsZWdhY3k9bGF0ZXN0X2xlZ2FjeShsaWQsIkFQUCIpCjE1NTogICAgICAgIGlmIGxlZ2FjeSBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08YXBwX3NsYSBhbmQgbGVnYWN5WyJzdHJpY3QiXSBhbmQgbGVnYWN5WyJyZXN0b3JlX29rIl06CjE1NzogICAgICAgIHJlYy51cGRhdGUoeyJzdGF0ZSI6IkZSRVNIIiBpZiBmcmVzaCBlbHNlICJTVEFMRSIsImRlY2lzaW9uIjpkZWMsImxlZ2FjeV9hZ2Vfc2Vjb25kcyI6bGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlmIGxlZ2FjeSBlbHNlIE5vbmUsImdlbmVyYXRpb24iOmxlZ2FjeVsiZ2VuZXJhdGlvbiJdIGlmIGxlZ2FjeSBlbHNlIE5vbmV9KQoxNjI6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxPQ0FMX1BBWUxPQURfTEVBSyIsImxvZ2ljYWxfaWQiOmxpZCwicm9vdF9jYXVzZSI6IkxBVEVTVF9TVEFURV9MT0NBTF9QQVlMT0FEX1BSRVNFTlQifSkKMTYzOiAgICAgICAgICAgIGlmIG9iai5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIiBhbmQgbGVnYWN5WyJhZ2Vfc2Vjb25kcyJdIGlzIG5vdCBOb25lIGFuZCBsZWdhY3lbImFnZV9zZWNvbmRzIl08MTcyODAwOgoxNjQ6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiSU5DT01QTEVURV9HRU5FUkFUSU9OIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiTEFURVNUX1JFQ0VOVF9TVEFURV9OT1RfU0VBTEVEIn0pCjE2NjogICAgICAgIHRyeTogb2JqPWpzb24ubG9hZHMoKFNUQVRFLyhsaWQrIi5qc29uIikpLnJlYWRfdGV4dChlbmNvZGluZz0idXRmLTgiKSkKMTcyOiAgICAgICAgcmVjLnVwZGF0ZSh7InN0YXRlIjoiRlJFU0giIGlmIGZyZXNoIGVsc2UgIlNUQUxFIiwiYWdlX3NlY29uZHMiOmFnZSwiZ2VuZXJhdGlvbiI6b2JqLmdldCgiZ2VuZXJhdGlvbiIpIGlmIGlzaW5zdGFuY2Uob2JqLGRpY3QpIGVsc2UgTm9uZX0pCjE3MzogICAgICAgIGlmIG5vdCBmcmVzaDogaXNzdWVzLmFwcGVuZCh7InNldmVyaXR5IjoiSElHSCIsImNvZGUiOiJSUE9fQlJFQUNIIiwibG9naWNhbF9pZCI6bGlkLCJyb290X2NhdXNlIjoiQ09OVFJPTF9TVEFURV9OT1RfRlJFU0gifSkKMTc0OiAgICB0YXJnZXRzLmFwcGVuZChyZWMpCjE3NjppZiBsZW4odGFyZ2V0cykhPWxlbihhY3RpdmUpOgoxNzc6ICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkxJRkVDWUNMRV9DT1ZFUkFHRV9HQVAiLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJBQ1RJVkVfVEFSR0VUX0NPVU5UX01JU01BVENIIn0pCjE4MDogICAgKCJob21lbGFiLWJhY2t1cC12Mi50aW1lciIsIlYyX1RJTUVSX0JBRCIpLAoxODE6ICAgICgiaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLnRpbWVyIiwiQVBQX1RJTUVSX0JBRCIpLAoxODI6ICAgICgiaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLnRpbWVyIiwiUkVURU5USU9OX1RJTUVSX0JBRCIpLAoxODM6ICAgICgiaG9tZWxhYi1hbGVydG1hbmFnZXItYmFja3VwLWhlYWx0aC50aW1lciIsIkFMRVJUX1RJTUVSX0JBRCIpLAoxODg6ZGVmIGV4cGVjdGVkX3YyX2hlYXZ5X2xvY2tfb3duZXIoKToKMTg5OiAgICBhcmMsYSxfPXJ1bihbInN5c3RlbWN0bCIsInNob3ciLCJob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIiwiLXAiLCJBY3RpdmVTdGF0ZSIsIi0tdmFsdWUiXSwxMCkKMTkwOiAgICBwcmMscGlkX3RleHQsXz1ydW4oWyJzeXN0ZW1jdGwiLCJzaG93IiwiaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSIsIi1wIiwiTWFpblBJRCIsIi0tdmFsdWUiXSwxMCkKMTk2OiAgICBmcmMsZm8sZmU9cnVuKFsiZnVzZXIiLCIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siXSwxMCkKMjAyOmZvciBsb2NrIGluIFsiL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwiL3J1bi9sb2NrL2hvbWVsYWItdm0tY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2siLCIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIl06CjIwMzogICAgcD1wYXRobGliLlBhdGgobG9jaykKMjA1OiAgICAgICAgbHJjLF8sXz1ydW4oWyJmbG9jayIsIi1uIixzdHIocCksIi1jIiwidHJ1ZSJdLDUpCjIwNzogICAgICAgICAgICBpZiBsb2NrPT0iL3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrIiBhbmQgZXhwZWN0ZWRfdjJfaGVhdnlfbG9ja19vd25lcigpOgoyMTA6ICAgICAgICAgICAgICAgIGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiTE9DS19CVVNZIiwibG9naWNhbF9pZCI6bG9jaywicm9vdF9jYXVzZSI6IkFDVElWRV9PUl9PUlBIQU5fTE9DSyJ9KQoyMTI6ZW52PW9zLmVudmlyb24uY29weSgpOyBlbnZbIkhPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1kiXT1HRlNQOyBlbnZbIkhPTUVMQUJfQkFDS1VQX1RBUkdFVF9SRUdJU1RSWSJdPXN0cihSRUcpCjIxODpyaHA9cGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWhlYWx0aC9iYWNrdXAtcmV0ZW50aW9uLXNhZmUtZ2MuanNvbiIpCjIyNzpjbG91ZD17fQoyMjg6Zm9yIGxhYmVsLHJlbW90ZSBpbiBbKCJBIiwicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiKSwoIkIiLCJwdmUwMS1tYWlsLTAyLWNyeXB0OmhvbWVsYWItYmFja3VwcyIpXToKMjI5OiAgICBscmMsbG8sXz1ydW4oWyJyY2xvbmUiLCJsc2YiLHJlbW90ZSwiLS1tYXgtZGVwdGgiLCIxIiwiLS1kaXJzLW9ubHkiXSw2MCkKMjMwOiAgICBhcmMsYW8sXz1ydW4oWyJyY2xvbmUiLCJhYm91dCIscmVtb3RlLCItLWpzb24iXSw2MCkKMjM3OiAgICAgICAgICAgICAgICBpZiBmcmFjPDAuMTU6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkhJR0giLCJjb2RlIjoiQ0FQQUNJVFlfTE9XIiwibG9naWNhbF9pZCI6ImNsb3VkLSIrbGFiZWwsInJvb3RfY2F1c2UiOiJGUkVFX0xUXzE1X1BFUkNFTlQifSkKMjM5OiAgICBpZiBscmMhPTA6IGlzc3Vlcy5hcHBlbmQoeyJzZXZlcml0eSI6IkNSSVRJQ0FMIiwiY29kZSI6IkNMT1VEX1VOUkVBREFCTEUiLCJsb2dpY2FsX2lkIjoiY2xvdWQtIitsYWJlbCwicm9vdF9jYXVzZSI6IlJDTE9ORV9MU0ZfRkFJTEVEIn0pCjI0MDogICAgY2xvdWRbbGFiZWxdPXJlYwoyNDI6dHJ5OiBkcj1qc29uLmxvYWRzKERSU0VBTC5yZWFkX3RleHQoZW5jb2Rpbmc9InV0Zi04IikpCjI0NDppZiBub3QgaXNpbnN0YW5jZShkcixkaWN0KSBvciBkci5nZXQoInN0YXR1cyIpIT0iU0VBTEVEIjoKMjQ1OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJEUl9TRUFMX01JU1NJTkciLCJsb2dpY2FsX2lkIjoiLSIsInJvb3RfY2F1c2UiOiJTSVRFX0RSX0ZJTkFMX1NFQUxfTk9UX1NFQUxFRCJ9KQoyNDc6Y2xvdWRiX29rPUZhbHNlCjI1MDogICAgX3N0YXRlX3Jvb3Q9X3BhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2FwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIikKMjUxOiAgICBfcmVzdG9yZV9yb290PV9wYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL2FwcC1yZXN0b3JlLXZhbGlkYXRpb24vYXBwLXNrbGFkY2hpay1yZXBvcnRzLW1vbml0b3IiKQoyNTI6ICAgIF9zdGF0ZXM9c29ydGVkKFtwIGZvciBwIGluIF9zdGF0ZV9yb290Lmdsb2IoIiouanNvbiIpIGlmIHAuaXNfZmlsZSgpIGFuZCBub3QgcC5pc19zeW1saW5rKCldLGtleT1sYW1iZGEgcDpwLnN0YXQoKS5zdF9tdGltZSxyZXZlcnNlPVRydWUpCjI1MzogICAgZm9yIF9zcCBpbiBfc3RhdGVzOgoyNTc6ICAgICAgICAgICAgX3N0LmdldCgic2NoZW1hIik9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQKMjU5OiAgICAgICAgICAgIF9zdC5nZXQoInN0YXR1cyIpPT0iU0VBTEVEIiBhbmQgX3N0LmdldCgiY2xvdWRfcXVvcnVtIik9PTIgYW5kCjI2MDogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3ZlcmlmaWVkIikgaXMgVHJ1ZSBhbmQgX3N0LmdldCgiY2xvdWRfYl92ZXJpZmllZCIpIGlzIFRydWUgYW5kCjI2MTogICAgICAgICAgICBfc3QuZ2V0KCJwYXJ0X2hhc2hlc192ZXJpZmllZCIpIGlzIFRydWUgYW5kIF9zdC5nZXQoInNlYWxfd3JpdHRlbiIpIGlzIFRydWUgYW5kCjI2MjogICAgICAgICAgICBfc3QuZ2V0KCJjbG91ZF9hX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZCBfc3QuZ2V0KCJjbG91ZF9iX3NlYWxfdmVyaWZpZWQiKSBpcyBUcnVlIGFuZAoyNjU6ICAgICAgICBfZ2VuPV9zdC5nZXQoImdlbmVyYXRpb24iKTsgX2FyY2hpdmVfc2hhPV9zdC5nZXQoImFyY2hpdmVfc2hhMjU2IikKMjY2OiAgICAgICAgX21hbmlmZXN0X3NoYT1fc3QuZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKTsgX3BhcnRfY291bnQ9X3N0LmdldCgicGFydF9jb3VudCIpCjI2NzogICAgICAgIF9hcmNoaXZlX3NpemU9X3N0LmdldCgiYXJjaGl2ZV9zaXplX2J5dGVzIik7IF9yZW1vdGVfYj1fc3QuZ2V0KCJyZW1vdGVfYl9iYXNlIikKMjY5OiAgICAgICAgICAgICAgICBpc2luc3RhbmNlKF9tYW5pZmVzdF9zaGEsc3RyKSBhbmQgbGVuKF9tYW5pZmVzdF9zaGEpPT02NCBhbmQgaXNpbnN0YW5jZShfcGFydF9jb3VudCxpbnQpIGFuZAoyNzA6ICAgICAgICAgICAgICAgIF9wYXJ0X2NvdW50PjAgYW5kIGlzaW5zdGFuY2UoX2FyY2hpdmVfc2l6ZSxpbnQpIGFuZCBfYXJjaGl2ZV9zaXplPjAgYW5kIGlzaW5zdGFuY2UoX3JlbW90ZV9iLHN0cikpOgoyNzI6ICAgICAgICBfZXZwPV9yZXN0b3JlX3Jvb3QvKF9nZW4rIi5qc29uIikKMjc2OiAgICAgICAgICAgIF9ldi5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1hcHAtcmVzdG9yZS12YWxpZGF0aW9uLXYxIiBhbmQKMjc4OiAgICAgICAgICAgIF9ldi5nZXQoImdlbmVyYXRpb24iKT09X2dlbiBhbmQgX2V2LmdldCgidHJhbnNwb3J0X3N0YXRlIik9PSJTRUFMRUQiIGFuZAoyNzk6ICAgICAgICAgICAgX2V2LmdldCgicmVzdG9yZV9zb3VyY2UiKT09IkNsb3VkIEEiIGFuZCBfZXYuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1fYXJjaGl2ZV9zaGEgYW5kCjI4MjogICAgICAgIF9tcD1fc3VicHJvY2Vzcy5ydW4oWyJyY2xvbmUiLCJjYXQiLF9yZW1vdGVfYi5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiJdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9NjApCjI4MzogICAgICAgIGlmIF9tcC5yZXR1cm5jb2RlIT0wIG9yIF9oYXNobGliLnNoYTI1NihfbXAuc3Rkb3V0KS5oZXhkaWdlc3QoKSE9X21hbmlmZXN0X3NoYTogY29udGludWUKMjk0OiAgICAgICAgICAgICAgICBfcHA9X3N1YnByb2Nlc3MucnVuKFsicmNsb25lIiwiY2F0IixfcmVtb3RlX2IucnN0cmlwKCIvIikrIi9wYXlsb2FkLnBhcnRzLyIrX25hbWVdLHN0ZG91dD1fc3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1fc3VicHJvY2Vzcy5QSVBFLHRpbWVvdXQ9MTIwKQozMDM6ICAgICAgICBjbG91ZGJfb2s9VHJ1ZQozMDY6ICAgIGNsb3VkYl9vaz1GYWxzZQozMDc6aWYgbm90IGNsb3VkYl9vazoKMzA4OiAgICBpc3N1ZXMuYXBwZW5kKHsic2V2ZXJpdHkiOiJDUklUSUNBTCIsImNvZGUiOiJDTE9VRF9CX1JFU1RPUkVfRFJJTExfQkFEIiwibG9naWNhbF9pZCI6ImFwcC1za2xhZGNoaWstcmVwb3J0cy1tb25pdG9yIiwicm9vdF9jYXVzZSI6IkNBTk9OSUNBTF9DTE9VRF9CX1BBWUxPQURfT1JfUkVTVE9SRV9FVklERU5DRV9OT1RfT0sifSkKMzEwOnNvdXJjZT17ImxvY2FsX2hlYWQiOk5vbmUsInJlbW90ZV9oZWFkIjpOb25lLCJwdXNodXJsX2Rpc2FibGVkIjpGYWxzZX0KMzEzOmZyYyxmbyxfPXJ1bihbImdpdCIsIi1DIixXVCwiY29uZmlnIiwiLS1nZXQiLCJyZW1vdGUub3JpZ2luLnVybCJdLDEwKQozMTQ6cHJjLHBvLF89cnVuKFsiZ2l0IiwiLUMiLFdULCJjb25maWciLCItLWdldCIsInJlbW90ZS5vcmlnaW4ucHVzaHVybCJdLDEwKQozMjE6ICAgIGxyYyxsbyxfPXJ1bihbImdpdCIsImxzLXJlbW90ZSIsZm8uc3RyaXAoKSwicmVmcy9oZWFkcy8iK0JSQU5DSF0sMzAsZ2VudikKMzIyOiAgICBpZiBscmM9PTAgYW5kIGxvLnN0cmlwKCk6IHNvdXJjZVsicmVtb3RlX2hlYWQiXT1sby5zcGxpdCgpWzBdCjMyMzppZiBzb3VyY2VbInJlbW90ZV9oZWFkIl0hPXNvdXJjZVsibG9jYWxfaGVhZCJdOgozMjc6Zm9yIHQgaW4gdGFyZ2V0czoKMzI4OiAgICBwcmludCgiVEFSR0VUfCIrInwiLmpvaW4oZiJ7a309e3Z9IiBmb3Igayx2IGluIHQuaXRlbXMoKSBpZiB2IGlzIG5vdCBOb25lKSkKMzMxOnByaW50KGYiU1VNTUFSWXxBVURJVF9TVEFUVVM9T0t8QkFDS1VQX1NUQVRVUz17c3RhdHVzfXxBQ1RJVkVfQ09VTlQ9e2xlbihhY3RpdmUpfXxJU1NVRV9DT1VOVD17bGVuKGlzc3Vlcyl9fENMT1VEX0E9eydPSycgaWYgY2xvdWQuZ2V0KCdBJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0I9eydPSycgaWYgY2xvdWQuZ2V0KCdCJyx7fSkuZ2V0KCdyZWFkYWJsZScpIGVsc2UgJ0JBRCd9fENMT1VEX0JfRFJJTEw9eydPSycgaWYgY2xvdWRiX29rIGVsc2UgJ0JBRCd9fERSX1BST1ZFTj17J1lFUycgaWYgaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgZWxzZSAnTk8nfXxTT1VSQ0VfT0ZGSE9TVD17J09LJyBpZiBzb3VyY2VbJ3JlbW90ZV9oZWFkJ109PXNvdXJjZVsnbG9jYWxfaGVhZCddIGVsc2UgJ1BFTkRJTkcnfSIpCjMzMjpoZWFsdGg9eyJzY2hlbWEiOiJob21lbGFiLWJhY2t1cC1hdWRpdC12MyIsInN0YXR1cyI6c3RhdHVzLCJnZW5lcmF0ZWRfYXRfZXBvY2giOm5vdywidGFyZ2V0cyI6dGFyZ2V0cywiaXNzdWVzIjppc3N1ZXMsImNsb3VkIjpjbG91ZCwic291cmNlIjpzb3VyY2UsImNsb3VkX2JfcmVzdG9yZV9kcmlsbCI6Y2xvdWRiX29rLCJkcl9wcm92ZW4iOmJvb2woaXNpbnN0YW5jZShkcixkaWN0KSBhbmQgZHIuZ2V0KCJzdGF0dXMiKT09IlNFQUxFRCIpfQozMzM6aWYgTU9ERSBpbiAoIndyaXRlLWhlYWx0aCIsInNjaGVkdWxlZCIpOg== +PIPE_5_SCORE=4 +PIPE_5_BASENAME=legacy_engine.py +PIPE_5_PATH_SHA256=e4ceeb7671a8cdc119c5427c862109ecbbefb90b06c59ce1dcb68b03b8e96c95 +PIPE_5_FILE_SHA256=5715651655da32530df84a5a095b772d21dc0d1f92789465e9e6b5b1ff8a16e3 +PIPE_5_SCHEDULE_TARGET_COUNT=1 +PIPE_5_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_5_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_5_VZDUMP_QEMU_COUNT=0 +PIPE_5_RCLONE_COUNT=31 +PIPE_5_CLOUD_QUORUM_COUNT=0 +PIPE_5_SEAL_WRITTEN_COUNT=0 +PIPE_5_PAYLOAD_PARTS_COUNT=0 +PIPE_5_TRANSPORT_COUNT=3 +PIPE_5_RESTORE_VALIDATION_COUNT=0 +PIPE_5_SCHEDULE_RESULT_COUNT=2 +PIPE_5_RELEVANT_LINE_COUNT=350 +PIPE_5_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgaGVscGVyPVBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQvJ3B2ZTI2NV9hcmd2X2hlbHBlci5weScKNDQxOiAgICByZXE9eydqb2InOmpvYiwndnpkdW1wJzpzdHIodnpkdW1wKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpLCdub3cnOmludChub3cpfQo0NDM6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX0ZBSUxFRCcpCjQ0NDogICAgaWYgcC5zdGRlcnIgb3IgbGVuKHAuc3Rkb3V0KT42NTUzNjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0NTogICAgdHJ5OiBhcmd2PWpzb24ubG9hZHMocC5zdGRvdXQuZGVjb2RlKCd1dGYtOCcsJ3N0cmljdCcpKQo0NDY6ICAgIGV4Y2VwdCAoVW5pY29kZURlY29kZUVycm9yLGpzb24uSlNPTkRlY29kZUVycm9yKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpIGZyb20gTm9uZQo0NDc6ICAgIGlmIHR5cGUoYXJndikgaXMgbm90IGxpc3Qgb3Igbm90IGFyZ3Ygb3IgYW55KHR5cGUoeCkgaXMgbm90IHN0ciBvciBub3QgeCBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9TVUJQUk9DRVNTX09VVFBVVCcpCjQ0ODogICAgcmV0dXJuIGFyZ3YKNDUzOiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1NzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1ODogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NjE6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ2MjogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NjM6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2NDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjU6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjY6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2NzogICAgYXJndj1saXN0KGFyZ3YpCjQ2ODogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2OTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ3MDogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ3MTogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ3MjogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0NzM6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDc0OiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3NTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3NjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3NzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3OTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0ODA6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ4MjogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0ODM6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4ODogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4OTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDkxOmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDkzOiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTU6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTY6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo1MDI6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwNjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwNzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTEwOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MTE6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTEzOiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTE2OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxNzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE5OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTIwOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTIzOiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTI1OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjY6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1Mjg6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTMwOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MzE6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUzMjogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUzMzogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTM1OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzY6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM4OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjU0MjogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0NDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQ1OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ4OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NTI6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2NjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1Njk6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU3MTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTc2OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTg1OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTg2OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTg3OiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg5OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU5MTogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5OTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo2MDM6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwNzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MTI6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxNzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTk6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjIxOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjIyOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYyMzogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjI0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyNTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI5OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MzA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MzE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MzI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjMzOiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjM0OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzU6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2Mzc6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjYwOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjYzOiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2Njc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2ODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2OTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjcwOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjc0MzogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQ2OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDc6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDg6ICAgIHRhcmdldD1oaXRzWzBdCjc1NjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzU3OiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzYwOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzc1OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzgzOiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODc6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzkwOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc5MTogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0 +PIPE_6_SCORE=4 +PIPE_6_BASENAME=legacy_engine.py +PIPE_6_PATH_SHA256=b08598c199b979909827472414e9d774eed12f00ff61eb1534b9cf9ff4333d05 +PIPE_6_FILE_SHA256=a5f1b1701a39eb22cf2f061d7daa7afa92789320c30b108371c3ee47d57f817c +PIPE_6_SCHEDULE_TARGET_COUNT=1 +PIPE_6_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_6_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_6_VZDUMP_QEMU_COUNT=0 +PIPE_6_RCLONE_COUNT=31 +PIPE_6_CLOUD_QUORUM_COUNT=0 +PIPE_6_SEAL_WRITTEN_COUNT=0 +PIPE_6_PAYLOAD_PARTS_COUNT=0 +PIPE_6_TRANSPORT_COUNT=3 +PIPE_6_RESTORE_VALIDATION_COUNT=0 +PIPE_6_SCHEDULE_RESULT_COUNT=2 +PIPE_6_RELEVANT_LINE_COUNT=340 +PIPE_6_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgcmVxPXsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX1NVQlBST0NFU1NfRkFJTEVEJykKNDYyOiAgICBpZiBwLnN0ZGVyciBvciBsZW4ocC5zdGRvdXQpPjEwNDg1NzY6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NDogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fU1VCUFJPQ0VTU19PVVRQVVQnKSBmcm9tIE5vbmUKNDY1OiAgICBpZiB0eXBlKGQpIGlzIG5vdCBkaWN0IG9yIHNldChkKSE9eydhcmd2Jywnam9iJ306IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2NjogICAgYXJndj1kWydhcmd2J107am9iPWRbJ2pvYiddO3ZtaWQ9aW50KHRbJ3ZtaWQnXSkKNDY3OiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9TVUJQUk9DRVNTX09VVFBVVCcpCjQ2ODogICAgaWYgdHlwZShqb2IpIGlzIG5vdCBkaWN0IG9yIGpvYi5nZXQoJ3ZtaWQnKSE9dm1pZCBvciBqb2IuZ2V0KCdub2RlJykhPXN0cihub2RlKSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnIG9yIGpvYi5nZXQoJ2NvdmVyYWdlX2VsaWdpYmxlJykgaXMgbm90IFRydWUgb3Igam9iLmdldCgnYmxvY2tlcnMnKSE9W106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9KT0InKQo0Njk6ICAgIGlmIGFyZ3ZbMF0hPScvdXNyL2Jpbi92emR1bXAnIG9yIGxlbihhcmd2KTwyIG9yIGFyZ3ZbMV0hPXN0cih2bWlkKSBvciAnLS1zdGRvdXQnIG5vdCBpbiBhcmd2IG9yICctLXRtcGRpcicgbm90IGluIGFyZ3Ygb3Igc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fQVJHVicpCjQ3MDogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3MjpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzM6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3NTogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0NzY6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4MTogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4MjogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg0OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg2OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0ODg6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0ODk6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTU6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjQ5OTogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMDogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTAzOiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDQ6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA2OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTA5OiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMDogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTExOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEyOiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTEzOiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE2OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTE4OiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MTk6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjE6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTIzOiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1MjQ6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyNTogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyNjogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTI4OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1Mjk6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTMxOiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzNTogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUzNzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTM4OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQxOiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDU6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU1OTogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjI6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NDogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTY5OmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTc4OmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTc5OiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgwOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTgyOmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NDogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1ODc6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5MjogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTY6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMDogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDU6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMDogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTI6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjEzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxNjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYxODogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjIyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2MjQ6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MjU6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI2OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2Mjg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzA6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjUzOiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU2OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjA6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2MTogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2MjogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjYzOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczNjogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzM5OiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDA6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDE6ICAgIHRhcmdldD1oaXRzWzBdCjc0OTogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUwOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzUzOiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzY4OiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc2OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODA6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzgzOiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NDogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5NTogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjc5NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo3OTk6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDA6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjgwMjogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo4MDM6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo4MDU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjgwODogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo4MTU6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo4MTg6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDAp +PIPE_7_SCORE=4 +PIPE_7_BASENAME=legacy_engine.py +PIPE_7_PATH_SHA256=d01be8c91a53c39ac6295a389b40b6b216db5f0cce27d2482e8f29523278d1d9 +PIPE_7_FILE_SHA256=ff4fbf84638ab55a8a1858558b759b3fc9d979ef5feb279132a558bcef583598 +PIPE_7_SCHEDULE_TARGET_COUNT=1 +PIPE_7_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_7_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_7_VZDUMP_QEMU_COUNT=0 +PIPE_7_RCLONE_COUNT=31 +PIPE_7_CLOUD_QUORUM_COUNT=0 +PIPE_7_SEAL_WRITTEN_COUNT=0 +PIPE_7_PAYLOAD_PARTS_COUNT=0 +PIPE_7_TRANSPORT_COUNT=3 +PIPE_7_RESTORE_VALIDATION_COUNT=0 +PIPE_7_SCHEDULE_RESULT_COUNT=2 +PIPE_7_RELEVANT_LINE_COUNT=340 +PIPE_7_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1OTogICAgdm1pZD1pbnQodFsndm1pZCddKQo0NjA6ICAgIHJlcT17J3ZtaWQnOnZtaWQsJ25vZGUnOnN0cihub2RlKSwnc2NyYXRjaCc6c3RyKHNjcmF0Y2gpfQo0NjY6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fJytjb2RlKQo0Njc6ICAgIGlmIHAuc3RkZXJyIG9yIGxlbihwLnN0ZG91dCk+MTA0ODU3NjogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRTI2NV9GUkVTSF9QTEFOX09VVFBVVCcpCjQ2OTogICAgZXhjZXB0IChVbmljb2RlRGVjb2RlRXJyb3IsanNvbi5KU09ORGVjb2RlRXJyb3IpOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykgZnJvbSBOb25lCjQ3MDogICAgaWYgdHlwZShkKSBpcyBub3QgZGljdCBvciBzZXQoZCkhPXsnYXJndicsJ2pvYid9OiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDcxOiAgICBhcmd2PWRbJ2FyZ3YnXTtqb2I9ZFsnam9iJ10KNDcyOiAgICBpZiB0eXBlKGpvYikgaXMgbm90IGRpY3Qgb3Igam9iLmdldCgndm1pZCcpIT12bWlkIG9yIGpvYi5nZXQoJ25vZGUnKSE9bm9kZSBvciBqb2IuZ2V0KCd0eXBlJykhPSdseGMnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFMjY1X0ZSRVNIX1BMQU5fT1VUUFVUJykKNDczOiAgICBpZiB0eXBlKGFyZ3YpIGlzIG5vdCBsaXN0IG9yIG5vdCBhcmd2IG9yIGFueSh0eXBlKHgpIGlzIG5vdCBzdHIgb3Igbm90IHggZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkUyNjVfRlJFU0hfUExBTl9PVVRQVVQnKQo0NzQ6ICAgIHJldHVybiBhcmd2LGpvYgo0NzY6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDc3OiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0Nzk6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDgwOiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0ODU6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0ODY6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQ4ODpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQ5MDogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDkyOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDkzOiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDk5OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo1MDM6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo1MDQ6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjUwNzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNTA4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjUxMDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjUxMzogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo1MTQ6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUxNTogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNjogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjUxNzogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjUyMDogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjUyMjogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNTIzOiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNTI1OiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjUyNzogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNTI4OiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo1Mjk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo1MzA6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjUzMjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNTMzOiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjUzNTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo1Mzk6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo1NDE6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjU0MjogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjU0NTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNTQ5OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1NjM6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTY2OmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1Njg6ICAgIGZvciB0IGluIHRhcmdldHM6CjU3MzpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjU4MjpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjU4MzogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjU4NDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjU4NjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1ODg6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTkxOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1OTY6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNjAwOiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo2MDQ6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNjA5OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo2MTQ6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNjE2OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYxNzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjYxODogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjYxOTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2MjA6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjYyMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MjI6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjYyNjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjI3OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNjI4OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjI5OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjYzMDogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjYzMTogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNjMyOiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjM0OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjY1NzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjY2MDogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjY0OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2NjU6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2NjY6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjY2NzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo3NDA6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjc0MzogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNzQ0OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNzQ1OiAgICB0YXJnZXQ9aGl0c1swXQo3NTM6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjc1NDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjc1NzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjc3MjogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjc4MDogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzg0OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjc4NzogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3ODg6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3OTk6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo4MDE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKODAzOmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKODA0OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo4MDY6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KODA3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKODA5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo4MTI6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKODE5OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKODIyOiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQ== +PIPE_8_SCORE=4 +PIPE_8_BASENAME=legacy_engine.py +PIPE_8_PATH_SHA256=be1f17db553b39644125195e460037d3e9426d0910681ba67d8e0ac2de00bea3 +PIPE_8_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_8_SCHEDULE_TARGET_COUNT=1 +PIPE_8_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_8_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_8_VZDUMP_QEMU_COUNT=0 +PIPE_8_RCLONE_COUNT=31 +PIPE_8_CLOUD_QUORUM_COUNT=0 +PIPE_8_SEAL_WRITTEN_COUNT=0 +PIPE_8_PAYLOAD_PARTS_COUNT=0 +PIPE_8_TRANSPORT_COUNT=3 +PIPE_8_RESTORE_VALIDATION_COUNT=0 +PIPE_8_SCHEDULE_RESULT_COUNT=2 +PIPE_8_RELEVANT_LINE_COUNT=346 +PIPE_8_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_9_SCORE=4 +PIPE_9_BASENAME=legacy_engine.py +PIPE_9_PATH_SHA256=9a8b05902c8db1d56dc8303ffbd6fef278b3b69b41dd4eda89a767f2a3d6bd25 +PIPE_9_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_9_SCHEDULE_TARGET_COUNT=1 +PIPE_9_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_9_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_9_VZDUMP_QEMU_COUNT=0 +PIPE_9_RCLONE_COUNT=31 +PIPE_9_CLOUD_QUORUM_COUNT=0 +PIPE_9_SEAL_WRITTEN_COUNT=0 +PIPE_9_PAYLOAD_PARTS_COUNT=0 +PIPE_9_TRANSPORT_COUNT=3 +PIPE_9_RESTORE_VALIDATION_COUNT=0 +PIPE_9_SCHEDULE_RESULT_COUNT=2 +PIPE_9_RELEVANT_LINE_COUNT=346 +PIPE_9_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_10_SCORE=4 +PIPE_10_BASENAME=legacy_engine.py +PIPE_10_PATH_SHA256=88ab68bf67a35e0d0b255725cf1d80a6bc6e1d39d0208f2cc2551fdaedd35b49 +PIPE_10_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_10_SCHEDULE_TARGET_COUNT=1 +PIPE_10_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_10_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_10_VZDUMP_QEMU_COUNT=0 +PIPE_10_RCLONE_COUNT=31 +PIPE_10_CLOUD_QUORUM_COUNT=0 +PIPE_10_SEAL_WRITTEN_COUNT=0 +PIPE_10_PAYLOAD_PARTS_COUNT=0 +PIPE_10_TRANSPORT_COUNT=3 +PIPE_10_RESTORE_VALIDATION_COUNT=0 +PIPE_10_SCHEDULE_RESULT_COUNT=2 +PIPE_10_RELEVANT_LINE_COUNT=346 +PIPE_10_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_11_SCORE=4 +PIPE_11_BASENAME=legacy_engine.py +PIPE_11_PATH_SHA256=ed37300bf21f40701d61084225758267688ee569a15a9a8f5e7e1f2d1d95a496 +PIPE_11_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_11_SCHEDULE_TARGET_COUNT=1 +PIPE_11_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_11_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_11_VZDUMP_QEMU_COUNT=0 +PIPE_11_RCLONE_COUNT=31 +PIPE_11_CLOUD_QUORUM_COUNT=0 +PIPE_11_SEAL_WRITTEN_COUNT=0 +PIPE_11_PAYLOAD_PARTS_COUNT=0 +PIPE_11_TRANSPORT_COUNT=3 +PIPE_11_RESTORE_VALIDATION_COUNT=0 +PIPE_11_SCHEDULE_RESULT_COUNT=2 +PIPE_11_RELEVANT_LINE_COUNT=346 +PIPE_11_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_12_SCORE=4 +PIPE_12_BASENAME=legacy_engine.py +PIPE_12_PATH_SHA256=ada28322dd44b921f815bb2cdba360506c3f4e2a58c97f1eea9a2a6d4e384c9d +PIPE_12_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_12_SCHEDULE_TARGET_COUNT=1 +PIPE_12_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_12_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_12_VZDUMP_QEMU_COUNT=0 +PIPE_12_RCLONE_COUNT=31 +PIPE_12_CLOUD_QUORUM_COUNT=0 +PIPE_12_SEAL_WRITTEN_COUNT=0 +PIPE_12_PAYLOAD_PARTS_COUNT=0 +PIPE_12_TRANSPORT_COUNT=3 +PIPE_12_RESTORE_VALIDATION_COUNT=0 +PIPE_12_SCHEDULE_RESULT_COUNT=2 +PIPE_12_RELEVANT_LINE_COUNT=346 +PIPE_12_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_13_SCORE=4 +PIPE_13_BASENAME=legacy_engine.py +PIPE_13_PATH_SHA256=68ed87fff22b735897acfc71beec8386ec9a7c7c5eab512d7fbb05e894955abf +PIPE_13_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_13_SCHEDULE_TARGET_COUNT=1 +PIPE_13_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_13_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_13_VZDUMP_QEMU_COUNT=0 +PIPE_13_RCLONE_COUNT=31 +PIPE_13_CLOUD_QUORUM_COUNT=0 +PIPE_13_SEAL_WRITTEN_COUNT=0 +PIPE_13_PAYLOAD_PARTS_COUNT=0 +PIPE_13_TRANSPORT_COUNT=3 +PIPE_13_RESTORE_VALIDATION_COUNT=0 +PIPE_13_SCHEDULE_RESULT_COUNT=2 +PIPE_13_RELEVANT_LINE_COUNT=346 +PIPE_13_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_14_SCORE=4 +PIPE_14_BASENAME=legacy_engine.py +PIPE_14_PATH_SHA256=d3dc1d9e6926e695d76fba16c6c5ffa20cc3f5b80a7ffc4b826ec197468a1cd7 +PIPE_14_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_14_SCHEDULE_TARGET_COUNT=1 +PIPE_14_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_14_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_14_VZDUMP_QEMU_COUNT=0 +PIPE_14_RCLONE_COUNT=31 +PIPE_14_CLOUD_QUORUM_COUNT=0 +PIPE_14_SEAL_WRITTEN_COUNT=0 +PIPE_14_PAYLOAD_PARTS_COUNT=0 +PIPE_14_TRANSPORT_COUNT=3 +PIPE_14_RESTORE_VALIDATION_COUNT=0 +PIPE_14_SCHEDULE_RESULT_COUNT=2 +PIPE_14_RELEVANT_LINE_COUNT=346 +PIPE_14_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_15_SCORE=4 +PIPE_15_BASENAME=legacy_engine.py +PIPE_15_PATH_SHA256=fa7629bf6b6d134d2701c19ee57801aca5eab13a8ed300e40fd6f4971c079350 +PIPE_15_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_15_SCHEDULE_TARGET_COUNT=1 +PIPE_15_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_15_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_15_VZDUMP_QEMU_COUNT=0 +PIPE_15_RCLONE_COUNT=31 +PIPE_15_CLOUD_QUORUM_COUNT=0 +PIPE_15_SEAL_WRITTEN_COUNT=0 +PIPE_15_PAYLOAD_PARTS_COUNT=0 +PIPE_15_TRANSPORT_COUNT=3 +PIPE_15_RESTORE_VALIDATION_COUNT=0 +PIPE_15_SCHEDULE_RESULT_COUNT=2 +PIPE_15_RELEVANT_LINE_COUNT=346 +PIPE_15_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsndnpkdW1wJyxzdHIodm1pZCksJy0tbW9kZScsJ3NuYXBzaG90JywnLS1jb21wcmVzcycsJ3pzdGQnLCctLWR1bXBkaXInLHNyY2Rpcl0sdGltZW91dD03MjAwKQo1MzI6ICAgICAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKNTM0OiAgICAgICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjUzODogICAgICAgIGlmIG5vdCBwYXRobGliLlBhdGgobG9jYWwpLmlzX2ZpbGUoKSBvciBwYXRobGliLlBhdGgobG9jYWwpLnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjU0MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNyY2Rpcl0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTQxOiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpfSx7J2tpbmQnOidwdmVfc291cmNlX2RpcicsJ25vZGUnOm5vZGUsJ3BhdGgnOnNyY2Rpcn0KNTQ0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo1NDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjU2MjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo1NjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjU2NzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNTcyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNTgxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNTgyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNTgzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNTg1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjU4NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo1OTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjU5NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo1OTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjYwMzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo2MDg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjYxMzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo2MTU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjE2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNjE3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNjE4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjYxOTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNjIwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjYyMTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNjI1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo2MjY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo2Mjc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2Mjg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNjI5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNjMwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo2MzE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo2MzM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNjU2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNjU5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo2NjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjY2NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjY2NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNjY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjczOTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNzQyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo3NDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo3NDQ6ICAgIHRhcmdldD1oaXRzWzBdCjc1MjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNzUzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNzU2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNzcxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNzc5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo3ODM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNzg2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjc4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0Cjc5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjgwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo4MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo4MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSld +PIPE_16_SCORE=4 +PIPE_16_BASENAME=engine396.py +PIPE_16_PATH_SHA256=3eb898a54af9d6804a1bbf0e8545bb6604e226a8104fc2c2054b3d86336b8bc5 +PIPE_16_FILE_SHA256=b6e79f087b9f1d21dac4f77a7b46b743299bbb85bc716e80d2ea67c2e038bcd7 +PIPE_16_SCHEDULE_TARGET_COUNT=1 +PIPE_16_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_16_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_16_VZDUMP_QEMU_COUNT=0 +PIPE_16_RCLONE_COUNT=31 +PIPE_16_CLOUD_QUORUM_COUNT=0 +PIPE_16_SEAL_WRITTEN_COUNT=0 +PIPE_16_PAYLOAD_PARTS_COUNT=0 +PIPE_16_TRANSPORT_COUNT=3 +PIPE_16_RESTORE_VALIDATION_COUNT=0 +PIPE_16_SCHEDULE_RESULT_COUNT=2 +PIPE_16_RELEVANT_LINE_COUNT=346 +PIPE_16_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jdC1iYWNrdXAtMjgycjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjMxOlAyNjU9cGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMS9wdmUyNjUucHknKQozNTogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxL3YyY29yZS5weScpLCdlMjg1YmY5YTU2NzhkMDdkY2JiOTAyNjFmOWY5M2U3ODI2ZmY1MjRlMDRjZmVjNzgwYmY1YTNjNGIwZGMyOWYyJyksCjM2OiAocGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMS90cmFuc3BvcnQyNjEucHknKSwnYjliOTJmOTU3YmY0NDFjYjVkMTcwMmY0ODgxODk3MzI4ZTZjMDMzOGY4YzNmNmQ0MWQyN2Q5YTM0OWIzNzY4OCcpLAozNzogKHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9zdHJlYW0tMjYzcjEvc3RyZWFtMjYzLnB5JyksJ2E4M2QwM2E4NmI5M2E4NTU3MTY2NTg2NTJkZDA3M2ZjYjI4MWNkMzg3ZmM2MjAwZmU0YmMyYTkyMmYzOWVhMTYnKSwKMzg6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvc3RyZWFtLTI2M3IxL25vZGVwbGFuMjYzLnB5JyksJ2RiNWMxNmVlMjRkMjVhYTE2OTQ1MzAzMzJkMzE5MGFiN2NjNWQ0ZjhlYjY5MDY3ZDAyNWUyN2FkNWM5OTUwNjAnKSwKMzk6IChwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvbGFyZ2UtY2xvdWQtMjY0cjEvbGFyZ2UyNjQucHknKSwnNWNjNDY0MWZjMzVlNGRkNTU0NDk1YTM2MTQ2ZGE3ZGJiYjdmMTQyZDE0NTBlMDRjYzVkM2M4OTY3OGI4NDk3YScpLAo0NjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL2N0LWJhY2t1cC0yODJyMScpLAo0NzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1yZXRyeS0yNzByMScpLAo0ODogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpLAo0OTogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1ydW4tMjY2cjEnKSwKNTA6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEnKSwKNTE6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9sYXJnZS1jbG91ZC0yNjRyMScpLAo1MjogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3N0cmVhbS0yNjNyMScpLAo1MzogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3RyYW5zcG9ydC0yNjFyMScpLAo1NDogcGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3Jlc3RvcmUtMjYycjEnKSwKNTU6IHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJyksCjU2OiBwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvdm0tYmFja3VwLTI4M3IxJyksCjU5Om1vZGU9c3lzLmFyZ3ZbMV0KNjU6ZWxpZiBtb2RlPT0nZHVtcF9hcmd2JzoKNjY6IHNvdXJjZT1wYXRobGliLlBhdGgoc3lzLmFyZ3ZbMl0pLnJlc29sdmUoKQo3MTogYXJndj1tb2QuZHVtcF9hcmd2KHJlcVsnam9iJ10scmVxWyd2emR1bXAnXSxwYXRobGliLlBhdGgocmVxWydzY3JhdGNoJ10pLGludChyZXFbJ25vdyddKSkKNzI6IHByaW50KGpzb24uZHVtcHMoYXJndixzZXBhcmF0b3JzPSgnLCcsJzonKSkpCjc3OlJFTU9URVM9Wwo4MjpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgoxMDU6ICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZSBhbmQgbiE9bGVuZ3RoOiByYWlzZSBCYWNrdXBFcnJvcignTE9DQUxfUEFSVF9TSE9SVF9SRUFEJykKMTA5OiAgICBpZiBub3QgaXNpbnN0YW5jZShuLGludCkgb3Igbjw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1BBWUxPQURfU0laRV9JTlZBTElEJykKMTI5OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQoxMzI6ZGVmIHJlbW90ZV9nZW5lcmF0aW9uX3BhdGgoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM0OiAgICBmb3IgeCBpbiAoc2NvcGUsbG9naWNhbF9pZCxnZW5lcmF0aW9uKToKMTM1OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjEzNjogICAgcmV0dXJuIGYnaG9tZWxhYi1iYWNrdXBzL3YyL3tzY29wZX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zL3tnZW5lcmF0aW9ufScKMTM4OmRlZiBtYWtlX21hbmlmZXN0KHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbixwYXlsb2FkX2J5dGVzLHBheWxvYWRfc2hhMjU2LHBhcnRzLHJlcGxpY2FzLHNvdXJjZV9tZXRhKToKMTM5OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQoxNDA6ICAgIGlmIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLHBheWxvYWRfc2hhMjU2KTogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBWUxPQURfU0hBX0lOVkFMSUQnKQoxNDE6ICAgIGlmIHN1bShpbnQocFsnYnl0ZXMnXSkgZm9yIHAgaW4gcGFydHMpIT1wYXlsb2FkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFSVF9UT1RBTF9NSVNNQVRDSCcpCjE0MjogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTQ5OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTUzOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjE1NDogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjE2ODogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxNjk6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTcwOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjE3MTogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjE3MjogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxNzY6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxNzk6ICAgIGZvciB0IGluIHRhcmdldHM6CjE4MjogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTg5OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTkxOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTkyOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE5MzogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTk2OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxOTk6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoyMDA6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoyMDE6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjIwMzpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoyMDY6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoyMTQ6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoyMjA6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMjIxOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMjM2OmRlZiBsb2FkX3RhcmdldHMoKToKMjM3OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoyMzg6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjIzOTogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMjQwOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoyNDE6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjQzOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyNDU6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjI1MzpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjI1NDogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjU3OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyNjA6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjYxOiAgICByZXR1cm4gW1JDTE9ORV0KMjYzOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjY0OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjY2OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyNjg6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyNzM6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyNzQ6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyNzU6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjgwOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyODE6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjgyOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI4MzogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjg3OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI4ODogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyODk6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI5OTogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQozMDc6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjMwOTpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgozMTE6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMzE0OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQozMTk6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjMyMDogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMzIzOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjMyNDogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMzI1OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMzI4OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgozMzI6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjMzNTogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMzM2OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQozMzk6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQozNDA6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjM0NTogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozNDY6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjM0NzogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozNDg6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzQ5OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzUwOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjM1MTogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzU0OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozNTU6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozNTY6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjM1ODpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozNTk6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzYzOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjM2NTogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozNzE6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzcyOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjM3MzogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzgyOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM4NDogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM4NTogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozOTQ6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgo0MDI6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjQwMzogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQo0MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQo0MTA6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgo0MTE6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjQxMjogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDE4OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQo0MjE6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjQzMTogICAgaWYgcC5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignSElTVE9SSUNBTF9HUkFQSF9JTVBPUlRfRkFJTEVEJyxmJ3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0MzM6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9KU09OJykKNDM2OiAgICAgICAgaWYgc3RyKHBhdGhsaWIuUGF0aChvdXQuZ2V0KGssJycpKS5yZXNvbHZlKCkpIT1zdHIocGF0aGxpYi5QYXRoKHYpLnJlc29sdmUoKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdISVNUT1JJQ0FMX0dSQVBIX0lNUE9SVF9QQVRIJyxrKQo0Mzk6ZGVmIF9pc29sYXRlZF9ndWVzdDI2Nl9kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxzY3JhdGNoLG5vdyk6CjQ0MDogICAgZW52PV9oaXN0b3JpY2FsX2dyYXBoX2VudigpO3JlcT17J2pvYic6am9iLCd2emR1bXAnOnN0cih2emR1bXApLCdzY3JhdGNoJzpzdHIoc2NyYXRjaCksJ25vdyc6aW50KG5vdyl9CjQ0MTogICAgcD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1CJywnLWMnLF9ISVNUT1JJQ0FMX0hFTFBFUiwnZHVtcF9hcmd2JyxzdHIoR1VFU1QyNjYpXSxpbnB1dD1jYW5vbmljYWxfanNvbihyZXEpLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSxlbnY9ZW52LGN3ZD0nLycsdGltZW91dD0zMCkKNDQyOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9TVUJQUk9DRVNTX0ZBSUxFRCcsZidyY197cC5yZXR1cm5jb2RlfV9zdGRlcnJfc2hhMjU2X3toYXNobGliLnNoYTI1NihwLnN0ZGVycikuaGV4ZGlnZXN0KCl9JykKNDQ0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignR1VFU1QyNjZfU1VCUFJPQ0VTU19KU09OJykKNDQ5OiAgICByZXR1cm4geyd2bWlkJzppbnQodFsndm1pZCddKSwnaWQnOmludCh0Wyd2bWlkJ10pLCd0eXBlJzonbHhjJywna2luZCc6J2x4YycsJ2d1ZXN0X3R5cGUnOidseGMnLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCduYW1lJzpyb3cuZ2V0KCduYW1lJywnJyksCjQ1MzogICAgICAgICAgICAnYmxvY2tlcnMnOltdLCdkaXNrcyc6W10sJ3RlbXBsYXRlJzpib29sKHJvdy5nZXQoJ3RlbXBsYXRlJywwKSksJ2hvb2tzY3JpcHRfcHJlc2VudCc6RmFsc2UsJ2xvY2tfcHJlc2VudCc6RmFsc2UsCjQ1NDogICAgICAgICAgICAnc25hcHNob3RfaGlzdG9yeV9pbmNsdWRlZCc6RmFsc2UsJ3VudXNlZF92b2x1bWVfY291bnQnOjAsJ2Nkcm9tX2NvdW50JzowLCdjZHJvbV9tZWRpYV9pbmNsdWRlZCc6RmFsc2UsJ2d1ZXN0X3Jlc3RvcmVfdmVyaWZpZWQnOkZhbHNlLAo0NTc6ZGVmIHByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCk6CjQ1ODogICAgam9iPV9seGNfam9iKHQscm93LG5vZGUpOyB2emR1bXA9c2h1dGlsLndoaWNoKCd2emR1bXAnKSBvciAnL3Vzci9iaW4vdnpkdW1wJwo0NTk6ICAgIHRyeTogYXJndj1faXNvbGF0ZWRfZ3Vlc3QyNjZfZHVtcF9hcmd2KGpvYix2emR1bXAscGF0aGxpYi5QYXRoKHNjcmF0Y2gpLGludCh0aW1lLnRpbWUoKSkpCjQ2MDogICAgZXhjZXB0IEJhY2t1cEVycm9yOiByYWlzZQo0NjE6ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQo0NjI6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3YsKGxpc3QsdHVwbGUpKSBvciBub3QgYXJndiBvciBub3QgYWxsKGlzaW5zdGFuY2UoeCxzdHIpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9TSEFQRScpCjQ2MzogICAgYXJndj1saXN0KGFyZ3YpCjQ2NDogICAgaWYgcGF0aGxpYi5QYXRoKGFyZ3ZbMF0pLm5hbWUhPSd2emR1bXAnIG9yIHN0cihpbnQodFsndm1pZCddKSkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1RBUkdFVCcpCjQ2NTogICAgaWYgJy0tZHVtcGRpcicgaW4gYXJndiBvciBhbnkoeC5zdGFydHN3aXRoKCctLWR1bXBkaXI9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX1VORVhQRUNURURfRFVNUERJUicpCjQ2NjogICAgaWYgbm90IGFueSh4PT0nLS1zdGRvdXQnIG9yIHguc3RhcnRzd2l0aCgnLS1zdGRvdXQ9JykgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NURE9VVCcpCjQ2NzogICAgaWYgc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2IGFuZCBub3QgYW55KHg9PSctLXRtcGRpcj0nK3N0cihzY3JhdGNoKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfTk9fU0NSQVRDSCcpCjQ2ODogICAgIyBBY2NlcHRlZCAyNzAvMjgyIGltcGxlbWVudGF0aW9uIHBhc3NlZCBtYXBwZWQgc2NyYXRjaCB0byB2emR1bXAgYXMgdG1wZGlyLgo0Njk6ICAgIGlmICctLXRtcGRpcicgaW4gYXJndjoKNDcwOiAgICAgICAgaT1hcmd2LmluZGV4KCctLXRtcGRpcicpCjQ3MTogICAgICAgIGlmIGkrMT49bGVuKGFyZ3YpIG9yIGFyZ3ZbaSsxXSE9c3RyKHNjcmF0Y2gpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UTVBESVJfQklORElORycpCjQ3MjogICAgZWxpZiAnLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgbm90IGluIGFyZ3Y6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1RNUERJUicpCjQ3MzogICAgcmV0dXJuIGFyZ3Ysam9iCjQ3NTpkZWYgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpOgo0NzY6ICAgIHE9c3NoX3JlbW90ZShub2RlLFsncGN0JywnY29uZmlnJyxzdHIodm1pZCldLHRpbWVvdXQ9MzApCjQ3ODogICAgaWYgJ3VucHJpdmlsZWdlZDogMScgbm90IGluIGxpbmVzOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX05PVF9VTlBSSVZJTEVHRUQnKQo0Nzk6ICAgIGlmIGFueSh4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcDonKSBvciB4LnN0YXJ0c3dpdGgoJ2x4Yy5pZG1hcCA9JykgZm9yIHggaW4gbGluZXMpOiByYWlzZSBCYWNrdXBFcnJvcignTFhDX0NVU1RPTV9JRE1BUF9VTlNVUFBPUlRFRCcpCjQ4NDogICAgcT1zc2hfcmVtb3RlKG5vZGUscG9zLHRpbWVvdXQ9MzAsY2hlY2s9RmFsc2UpCjQ4NTogICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignTUFQUEVEX1VJRF9BQ0NFU1NfUFJPQkVfRkFJTEVEJykKNDg3OmRlZiBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGRlc3QsdGltZW91dD03MjAwKToKNDg5OiAgICBpZiBub2RlPT0ncHZlMDEnOiBjbWQ9YXJndgo0OTE6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo0OTI6ICAgICAgICBjbWQ9W1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXQo0OTg6ICAgICAgICAgICAgcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9TVFJFQU1fVElNRU9VVCcpCjUwMjogICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDT01NQU5EX0ZBSUxFRCcsZid2emR1bXBfcmNfe3AucmV0dXJuY29kZX1fc3RkZXJyX3NoYTI1Nl97aGFzaGxpYi5zaGEyNTYocC5zdGRlcnIpLmhleGRpZ2VzdCgpfScpCjUwMzogICAgaWYgbm90IGRlc3QuaXNfZmlsZSgpIG9yIGRlc3Quc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKNTA2OiAgICB2bWlkPWludCh0Wyd2bWlkJ10pOyByb3dzPVtyIGZvciByIGluIGNsdXN0ZXJfaW52ZW50b3J5KCkgaWYgaW50KHIuZ2V0KCd2bWlkJywtMSkpPT12bWlkXQo1MDc6ICAgIGlmIGxlbihyb3dzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9OT1RfVU5JUVVFJykKNTA5OiAgICBpZiB0eXAhPXRbJ2d1ZXN0X3R5cGUnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9HVUVTVF9UWVBFX0RSSUZUJykKNTEyOiAgICAgICAgX2RlZmF1bHRfdW5wcml2aWxlZ2VkX2x4Yyhub2RlLHZtaWQpCjUxMzogICAgICAgIHNjcmF0Y2g9ZicvdmFyL3RtcC9ob21lbGFiLXZ6ZHVtcC12Mi17Z2VufScKNTE0OiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MTAnLCctbycsJzAnLCctZycsJzEwMDAwMCcsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE1OiAgICAgICAgcT1zc2hfcmVtb3RlKG5vZGUsWydzdGF0JywnLWMnLCclYToldTolZycsc2NyYXRjaF0sdGltZW91dD0zMCkKNTE2OiAgICAgICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9JzcxMDowOjEwMDAwMCc6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfTUFQUEVEX1NDUkFUQ0hfQUNDRVNTX0NPTlRSQUNUJykKNTE5OiAgICAgICAgICAgIGFyZ3Ysam9iPXByb3Zlbl9seGNfZHVtcF9hcmd2KHQscm93LG5vZGUsc2NyYXRjaCkKNTIxOiAgICAgICAgICAgIF9zdHJlYW1fYXJndl90b19sb2NhbChub2RlLGFyZ3YsbG9jYWwsdGltZW91dD03MjAwKQo1MjI6ICAgICAgICAgICAgaWYgbG9jYWwuc3RhdCgpLnN0X3NpemU+aW50KGpvYlsnYXJjaGl2ZV9jYXBfYnl0ZXMnXSk6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfQVJDSElWRV9DQVBfRVhDRUVERUQnKQo1MjQ6ICAgICAgICAgICAgc3NoX3JlbW90ZShub2RlLFsncm0nLCctcmYnLCctLScsc2NyYXRjaF0sdGltZW91dD02MCxjaGVjaz1GYWxzZSk7cmFpc2UKNTI2OiAgICAgICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93LmdldCgnc3RhdHVzJyksJ3Byb2R1Y2VyX2NvbnRyYWN0JzoncHJvdmVuLTI3MC0yODItc3RyZWFtJ30sY2xlYW51cAo1Mjc6ICAgICMgUUVNVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkOiBib3VuZGVkIGRlZGljYXRlZCBkdW1wZGlyIHdpdGggbGF0ZXIgY2xvdWQgcmVhZGJhY2svcmVjb25zdHJ1Y3Rpb24uCjUyODogICAgc3JjZGlyPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjUyOTogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLCc3MDAnLCctbycsJzAnLCctZycsJzAnLHNyY2Rpcl0sdGltZW91dD0zMCkKNTMxOiAgICAgICAgc3NoX3JlbW90ZShub2RlL + +===== PUBLIC OUTPUT TRUNCATED; FULL RAW LOG RETAINED LOCALLY ===== + +IkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjczOiAgYXJjaGl2ZT0iJChqcSAtciAnLmFyY2hpdmUnICIkc2VhbCIpIgoyNzQ6ICBzaXplPSIkKGpxIC1yICcuYXJjaGl2ZV9zaXplX2J5dGVzJyAiJHNlYWwiKSIKMjc1OiAgc2hhPSIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkc2VhbCIpIgoyNzY6ICByZW1vdGU9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjI3OTogIGJhc2U9IiQoYmFzZV9wYXRoICIkZ2VuZXJhdGlvbiIpIgoyODA6ICB2ZXJpZnlfcmVtb3RlICIkcmVtb3RlIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjI4MjogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZXN0b3JlLXBhcnRzLlhYWFhYWCkiCjI4NDogIHBhcnRzX2xpc3QgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAiCjI4NzogIHdoaWxlIElGUz0gcmVhZCAtciBwYXJ0OyBkbyByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9wYXJ0cy8kcGFydCIgPj4gIiRwYXJ0aWFsIjsgZG9uZSA8ICIkdG1wIgoyOTM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHJlbW90ZTokYmFzZS92emR1bXAubG9nIiAiJGRpci92emR1bXAubG9nIiA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQoyOTQ6ICBsbiAtc2ZuICIkZ2VuZXJhdGlvbiIgIiRMQVRFU1RfTElOSyIKMjk1OiAgdGVzdCAiJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiID0gIiRnZW5lcmF0aW9uIgoyOTg6ICBwcmludGYgJ1JFU1RPUkVfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5MQVRFU1RfTElOSz0lc1xuJyAiJGdlbmVyYXRpb24iICIkTEFURVNUX0xJTksiCjMwNDogICAgZm9yIHRvb2wgaW4gcmNsb25lIGpxIHNoYTI1NnN1bSB6c3RkIGRkIHN0YXQgZmluZCBhd2sgc2VkIHNvcnQgY21wIG1rZmlmbyB0ZWUgcGdyZXAgcGFzdGUgcmVhZGxpbms7IGRvIGNvbW1hbmQgLXYgIiR0b29sIiA+L2Rldi9udWxsOyBkb25lCjMwNTogICAgQUNUSVZFPSIkKHBncmVwIC1hZiAnKF58LykodnpkdW1wfHFtcmVzdG9yZXxwY3RyZXN0b3JlfHZtYXx6c3RkKShbWzpzcGFjZTpdXXwkKScgfHwgdHJ1ZSkiCjMwNzogICAgQT0iJChyZW1vdGVfYSkiOyBCPSIkKHJlbW90ZV9iKSI7IHRlc3QgIiRBIiAhPSAiJEIiCjMwOTogICAgR0VORVJBVElPTlM9IiQoZmluZCAiJFBBUkVOVCIgLW1pbmRlcHRoIDEgLW1heGRlcHRoIDEgLXR5cGUgZCAtbmFtZSAiJHtQUkVGSVh9KiIgLXByaW50ZiAnJWZcbicgfCBMQ19BTEw9QyBzb3J0IHwgcGFzdGUgLXNkLCAtKSIKMzExOiAgICB0ZXN0ICEgLUwgIiRMQVRFU1RfTElOSyIgfHwgTElOSz0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjMxMjogICAgVEFSR0VUX1dPUktFUl9TSEEyNTY9QUJTRU5UCjMxMzogICAgdGVzdCAhIC1mIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfHwgVEFSR0VUX1dPUktFUl9TSEEyNTY9IiQoc2hhMjU2c3VtIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfCBhd2sgJ3twcmludCAkMX0nKSIKMzE3OiAgICAgIE9ORV9HRU5FUkFUSU9OPSIkKGZpbmQgIiRQQVJFTlQiIC1taW5kZXB0aCAxIC1tYXhkZXB0aCAxIC10eXBlIGQgLW5hbWUgIiR7UFJFRklYfSoiIC1wcmludGYgJyVmXG4nKSIKMzE4OiAgICAgIE9ORV9BUkNISVZFPSIkKGZpbmQgIiRQQVJFTlQvJE9ORV9HRU5FUkFUSU9OIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQgLXF1aXQpIgozMjM6ICAgIHByaW50ZiAnUFZFMDNfUFJFRkxJR0hUX1NUQVRVUz1PS1xuQUNDT1VOVF9BX0ZQPSVzXG5BQ0NPVU5UX0JfRlA9JXNcblJFTU9URV9BX0ZSRUVfQllURVM9JXNcblJFTU9URV9CX0ZSRUVfQllURVM9JXNcbkxPQ0FMX0dFTkVSQVRJT05fQ09VTlQ9JXNcbkxPQ0FMX0dFTkVSQVRJT05TPSVzXG5MQVRFU1RfTElOS19UQVJHRVQ9JXNcbkFDVElWRV9CQUNLVVBfUkVTVE9SRV9DT1VOVD0wXG5UQVJHRVRfV09SS0VSX1NIQTI1Nj0lc1xuTE9DQUxfQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5MT0NBTF9BUkNISVZFX1NIQTI1Nj0lc1xuJyAiJEFDQ09VTlRfQV9GUCIgIiRBQ0NPVU5UX0JfRlAiICIkKHJlbW90ZV9mcmVlICIkQSIpIiAiJChyZW1vdGVfZnJlZSAiJEIiKSIgIiRDT1VOVCIgIiR7R0VORVJBVElPTlM6LW5vbmV9IiAiJExJTksiICIkVEFSR0VUX1dPUktFUl9TSEEyNTYiICIkQVJDSElWRV9TSVpFX0JZVEVTIiAiJEFSQ0hJVkVfU0hBMjU2IgozMjU6ICBiYWNrdXApIGJhY2t1cCAiJHsyOi19IiA7OwozMjg6ICBiYWNrdXAtZGVsZXRlKSBESVI9IiR7MjotfSI7IGJhY2t1cCAiJERJUiI7IGRlbGV0ZV9wcmVwYXJlZCAiJChiYXNlbmFtZSAiJERJUiIpIiA7OwozMjk6ICB2ZXJpZnktZ2VuZXJhdGlvbikgdmVyaWZ5X2dlbmVyYXRpb24gIiR7MjotfSIgOzsKMzMwOiAgcmVzdG9yZSkgcmVzdG9yZV9nZW5lcmF0aW9uICIkezI6LX0iIDs7CjMzMjogICopIHByaW50ZiAnVk0xNjBfQ0xPVURfUVVPUlVNX1dPUktFUl9VU0FHRV9FUlJPUlxuJyA+JjI7IGV4aXQgNjQgOzs= +PIPE_24_SCORE=4 +PIPE_24_BASENAME=vm160-cloud-quorum-worker.sh +PIPE_24_PATH_SHA256=d7e7d49cc5e8bcf74647191e68b65c9ab22a480b680a740e0af72752fa7f6ad1 +PIPE_24_FILE_SHA256=57d1b1fa788be824b97075f722140c24988c1fa912aa59d0464027eb48c06271 +PIPE_24_SCHEDULE_TARGET_COUNT=0 +PIPE_24_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_24_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_24_VZDUMP_QEMU_COUNT=2 +PIPE_24_RCLONE_COUNT=29 +PIPE_24_CLOUD_QUORUM_COUNT=11 +PIPE_24_SEAL_WRITTEN_COUNT=3 +PIPE_24_PAYLOAD_PARTS_COUNT=0 +PIPE_24_TRANSPORT_COUNT=0 +PIPE_24_RESTORE_VALIDATION_COUNT=0 +PIPE_24_SCHEDULE_RESULT_COUNT=0 +PIPE_24_RELEVANT_LINE_COUNT=169 +PIPE_24_RELEVANT_B64=NDpQQVJFTlQ9L21udC9zdGFnaW5nL3Z6ZHVtcAo2OkNPTkZJRz0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZgoxMTpSRU1PVEVfUk9PVD1oYi92bTE2MAoxNDpTVEFURV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bS92bTE2MAoxNTpMQVRFU1RfTElOSz0iJFBBUkVOVC92bTE2MC1wdmUwMi1sYXRlc3QiCjE2OnZhbGlkX2dlbmVyYXRpb24oKXsgW1sgIiR7MTotfSIgPX4gXnZtMTYwLXB2ZTAyLVswLTldezh9VFswLTldezZ9WiQgXV07IH0KMTc6dmFsaWRfZGlyKCl7IGxvY2FsIGRpcj0iJHsxOi19IiBiYXNlOyBiYXNlPSIkKGJhc2VuYW1lIC0tICIkZGlyIikiOyB2YWxpZF9nZW5lcmF0aW9uICIkYmFzZSI7IHRlc3QgIiRkaXIiID0gIiRQQVJFTlQvJGJhc2UiOyB9CjE4OnJlc29sdmVfcmVtb3RlKCl7CjI1OiAgZG9uZSA8IDwocmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsaXN0cmVtb3RlcykKMzQ6ICBiYXNlX3NwZWM9IiQoc2VjdGlvbl92YWx1ZSAiJGNyeXB0IiAnXltbOnNwYWNlOl1dKnJlbW90ZVtbOnNwYWNlOl1dKiQnKSIKNDE6cmVtb3RlX2EoKXsgbG9jYWwgcjsgcj0iJChyZXNvbHZlX3JlbW90ZSAiJFNFQ1RJT05fQV9GUCIpIjsgdGVzdCAiJChhY2NvdW50X2ZwICIkciIpIiA9ICIkQUNDT1VOVF9BX0ZQIjsgcHJpbnRmICclcycgIiRyIjsgfQo0MjpyZW1vdGVfYigpeyBsb2NhbCByOyByPSIkKHJlc29sdmVfcmVtb3RlICIkU0VDVElPTl9CX0ZQIikiOyB0ZXN0ICIkKGFjY291bnRfZnAgIiRyIikiID0gIiRBQ0NPVU5UX0JfRlAiOyBwcmludGYgJyVzJyAiJHIiOyB9CjQzOnJlbW90ZV9mcmVlKCl7IHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgYWJvdXQgIiQxOiIgLS1qc29uIHwganEgLXIgJy5mcmVlIC8vIDAnOyB9CjQ0OmJhc2VfcGF0aCgpeyBwcmludGYgJyVzLyVzJyAiJFJFTU9URV9ST09UIiAiJDEiOyB9CjQ2OiAgbG9jYWwgcmVtb3RlPSIkMSIgYmFzZT0iJDIiIG91dD0iJDMiCjQ3OiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JGJhc2UvcGFydHMiIC0tZmlsZXMtb25seSB8IExDX0FMTD1DIHNvcnQgPiAiJG91dCIKNTA6dmFsaWRhdGVfcGFydHNfbWFuaWZlc3QoKXsKNTE6ICBsb2NhbCBtYW5pZmVzdD0iJDEiIG5hbWVzPSIkMiIgZXhwZWN0ZWQgbmFtZSBleHRyYSBjb3VudD0wCjYwOiAgZG9uZSA8ICIkbWFuaWZlc3QiCjYzOnZlcmlmaWVkX3N0cmVhbV9yZW1vdGUoKXsKNjQ6ICBsb2NhbCByZW1vdGU9IiQxIiBiYXNlPSIkMiIgbWFuaWZlc3Q9IiQzIiB0bXA9IiQ0IiBleHBlY3RlZCBuYW1lIGV4dHJhIGdvdCBjaHVuaz0iJHRtcC9jaHVuayIKNjc6ICAgIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY2F0ICIkcmVtb3RlOiRiYXNlL3BhcnRzLyRuYW1lIiA+ICIkY2h1bmsiCjczOiAgZG9uZSA8ICIkbWFuaWZlc3QiCjc1OnZlcmlmeV9yZW1vdGUoKXsKNzY6ICBsb2NhbCByZW1vdGU9IiQxIiBnZW5lcmF0aW9uPSIkMiIgZXhwZWN0ZWRfc2l6ZT0iJDMiIGV4cGVjdGVkX3NoYT0iJDQiIGJhc2UgdG1wIGJ5dGVzIGdvdF9zaGEgenBpZCB6cmMKNzg6ICB2YWxpZF9nZW5lcmF0aW9uICIkZ2VuZXJhdGlvbiIKNzk6ICBiYXNlPSIkKGJhc2VfcGF0aCAiJGdlbmVyYXRpb24iKSIKODA6ICB0bXA9IiQobWt0ZW1wIC1kIC90bXAvdm0xNjAtY2xvdWQtdmVyaWZ5LlhYWFhYWCkiCjgyOiAgcGFydHNfbGlzdCAiJHJlbW90ZSIgIiRiYXNlIiAiJHRtcC9hY3R1YWwubGlzdCIKODM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9QQVJUUy5zaGEyNTYiID4gIiR0bXAvUEFSVFMuc2hhMjU2Igo4NDogIHZhbGlkYXRlX3BhcnRzX21hbmlmZXN0ICIkdG1wL1BBUlRTLnNoYTI1NiIgIiR0bXAvZXhwZWN0ZWQubGlzdCIKODY6ICBieXRlcz0iJChyY2xvbmUgLS1jb25maWcgIiRDT05GSUciIHNpemUgIiRyZW1vdGU6JGJhc2UvcGFydHMiIC0tanNvbiB8IGpxIC1yICcuYnl0ZXMgLy8gMCcpIgo5MjogIHZlcmlmaWVkX3N0cmVhbV9yZW1vdGUgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAvUEFSVFMuc2hhMjU2IiAiJHRtcCIgfCB0ZWUgIiR0bXAvenN0ZC5waXBlIiB8IHNoYTI1NnN1bSA+ICIkdG1wL2Z1bGwuc2hhMjU2IgoxMDM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9tYW5pZmVzdC5qc29uIiB8IGpxIC1lIC0tYXJnIGdlbmVyYXRpb24gIiRnZW5lcmF0aW9uIiAtLWFyZyBzaGEgIiRleHBlY3RlZF9zaGEiIC0tYXJnanNvbiBzaXplICIkZXhwZWN0ZWRfc2l6ZSIgJy5nZW5lcmF0aW9uPT0kZ2VuZXJhdGlvbiBhbmQgLmFyY2hpdmVfc2hhMjU2PT0kc2hhIGFuZCAuYXJjaGl2ZV9zaXplX2J5dGVzPT0kc2l6ZSBhbmQgLmNsb3VkX3F1b3J1bV9yZXF1aXJlZD09MiBhbmQgLnBhcnRfaGFzaGVzX3JlcXVpcmVkPT10cnVlJyA+L2Rldi9udWxsCjEwODogIGxvY2FsIHJlbW90ZT0iJDEiIGN1cnJlbnQ9IiQyIiB0bXAgY291bnQgcmVtb3ZlIG5hbWUKMTEwOiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09UIiAtLWRpcnMtb25seSB8IHNlZCAncyMvJCMjJyB8IExDX0FMTD1DIHNvcnQgPiAiJHRtcCIKMTE3OiAgICAgIHZhbGlkX2dlbmVyYXRpb24gIiRuYW1lIgoxMTg6ICAgICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBwdXJnZSAiJHJlbW90ZTokUkVNT1RFX1JPT1QvJG5hbWUiCjEyMzpyZW1vdGVfZ2VuZXJhdGlvbl9jb25mbGljdCgpewoxMjQ6ICBsb2NhbCByZW1vdGU9IiQxIiBnZW5lcmF0aW9uPSIkMiIgdG1wCjEyNTogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZW1vdGUtZGlycy5YWFhYWFgpIgoxMjY6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIG1rZGlyICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIKMTI3OiAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09UIiAtLWRpcnMtb25seSB8IHNlZCAncyMvJCMjJyA+ICIkdG1wIgoxMjg6ICBpZiBhd2sgLXYgZz0iJGdlbmVyYXRpb24iICckMD09Z3tmb3VuZD0xfSBFTkR7ZXhpdCAhZm91bmR9JyAiJHRtcCI7IHRoZW4gcm0gLWYgIiR0bXAiOyByZXR1cm4gMDsgZmkKMTMyOmJhY2t1cCgpewoxMzM6ICBsb2NhbCBkaXI9IiQxIiBnZW5lcmF0aW9uIGFyY2hpdmUgYXJjaGl2ZV9uYW1lIHNpemUgc2hhIGEgYiBiYXNlIHRtcCBjb3VudCBpbmRleCBwYXJ0X25hbWUgcGFydCBwYXJ0X3NoYSBzdGF0ZSByZW1vdGUKMTM3OiAgZ2VuZXJhdGlvbj0iJChiYXNlbmFtZSAiJGRpciIpIgoxMzg6ICBtYXBmaWxlIC10IGFyY2hpdmVzIDwgPChmaW5kICIkZGlyIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQpCjE0NjogIGE9IiQocmVtb3RlX2EpIgoxNDc6ICBiPSIkKHJlbW90ZV9iKSIKMTQ5OiAgdGVzdCAiJChyZW1vdGVfZnJlZSAiJGEiKSIgLWdlICIkc2l6ZSIKMTUwOiAgdGVzdCAiJChyZW1vdGVfZnJlZSAiJGIiKSIgLWdlICIkc2l6ZSIKMTUxOiAgYmFzZT0iJChiYXNlX3BhdGggIiRnZW5lcmF0aW9uIikiCjE1MjogIHN0YXRlPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoxNTM6ICBpZiB0ZXN0IC1zICIkc3RhdGUiOyB0aGVuCjE1NDogICAganEgLWUgLS1hcmcgZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iIC0tYXJnIHNoYSAiJHNoYSIgLS1hcmcgYSAiJGEiIC0tYXJnIGIgIiRiIiAtLWFyZ2pzb24gc2l6ZSAiJHNpemUiICcuZ2VuZXJhdGlvbj09JGdlbmVyYXRpb24gYW5kIC5hcmNoaXZlX3NoYTI1Nj09JHNoYSBhbmQgLmFyY2hpdmVfc2l6ZV9ieXRlcz09JHNpemUgYW5kIC5yZW1vdGVfYT09JGEgYW5kIC5yZW1vdGVfYj09JGIgYW5kICguc3RhdHVzPT0iUFJFUEFSRUQiIG9yIC5zdGF0dXM9PSJERUxFVEVfQVVUSE9SSVpFRCIgb3IgLnN0YXR1cz09IlNFQUxFRCIpJyAiJHN0YXRlIiA+L2Rldi9udWxsCjE1NTogICAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTU2OiAgICB2ZXJpZnlfcmVtb3RlICIkYiIgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoxNTc6ICAgIHByaW50ZiAnQkFDS1VQX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5BUkNISVZFX1NIQTI1Nj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0RFTEVURV9BTExPV0VEPVlFU1xuSURFTVBPVEVOVF9SRVVTRT1ZRVNcbicgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoxNjA6ICBpZiByZW1vdGVfZ2VuZXJhdGlvbl9jb25mbGljdCAiJGEiICIkZ2VuZXJhdGlvbiIgfHwgcmVtb3RlX2dlbmVyYXRpb25fY29uZmxpY3QgIiRiIiAiJGdlbmVyYXRpb24iOyB0aGVuCjE2MTogICAgcHJpbnRmICdST09UX0NBVVNFPVJFTU9URV9HRU5FUkFUSU9OX0NPTkZMSUNUX1dJVEhPVVRfTE9DQUxfU1RBVEVcbkdFTkVSQVRJT049JXNcbicgIiRnZW5lcmF0aW9uIiA+JjIKMTY0OiAgdG1wPSIkKG1rdGVtcCAtZCAvbW50L3N0YWdpbmcvdm0xNjAtY2xvdWQtdXBsb2FkLlhYWFhYWCkiCjE2NjogIGpxIC1uIC0tYXJnIGdlbmVyYXRpb24gIiRnZW5lcmF0aW9uIiAtLWFyZyBhcmNoaXZlICIkYXJjaGl2ZV9uYW1lIiAtLWFyZyBzaGEgIiRzaGEiIC0tYXJnIGFjY291bnRfYSAiJEFDQ09VTlRfQV9GUCIgLS1hcmcgYWNjb3VudF9iICIkQUNDT1VOVF9CX0ZQIiAtLWFyZ2pzb24gc2l6ZSAiJHNpemUiICd7c2NoZW1hOiJob21lbGFiLXZtMTYwLWNsb3VkLW1hbmlmZXN0LXYyIixnZW5lcmF0aW9uOiRnZW5lcmF0aW9uLGFyY2hpdmVfbmFtZTokYXJjaGl2ZSxhcmNoaXZlX3NpemVfYnl0ZXM6JHNpemUsYXJjaGl2ZV9zaGEyNTY6JHNoYSxjbG91ZF9xdW9ydW1fcmVxdWlyZWQ6MixhY2NvdW50X2ZhaWx1cmVfZG9tYWluczoyLHByb3ZpZGVyX2ZhaWx1cmVfZG9tYWluczoxLGFjY291bnRfYV9mcDokYWNjb3VudF9hLGFjY291bnRfYl9mcDokYWNjb3VudF9iLHBhcnRfaGFzaGVzX3JlcXVpcmVkOnRydWV9JyA+ICIkdG1wL21hbmlmZXN0Lmpzb24iCjE2ODogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgbWtkaXIgIiRhOiRiYXNlL3BhcnRzIgoxNjk6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIG1rZGlyICIkYjokYmFzZS9wYXJ0cyIKMTc1OiAgICBkZCBpZj0iJGFyY2hpdmUiIG9mPSIkcGFydCIgYnM9MU0gc2tpcD0kKChpbmRleCpQQVJUX01JQikpIGNvdW50PSIkUEFSVF9NSUIiIGlmbGFnPWZ1bGxibG9jayBzdGF0dXM9bm9uZQoxNzk6ICAgIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkcGFydCIgIiRhOiRiYXNlL3BhcnRzLyRwYXJ0X25hbWUiCjE4MDogICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiRwYXJ0IiAiJGI6JGJhc2UvcGFydHMvJHBhcnRfbmFtZSIKMTg0OiAgZm9yIHJlbW90ZSBpbiAiJGEiICIkYiI7IGRvCjE4NTogICAgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiR0bXAvbWFuaWZlc3QuanNvbiIgIiRyZW1vdGU6JGJhc2UvbWFuaWZlc3QuanNvbiIKMTg2OiAgICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHRtcC9QQVJUUy5zaGEyNTYiICIkcmVtb3RlOiRiYXNlL1BBUlRTLnNoYTI1NiIKMTg3OiAgICB0ZXN0ICEgLXMgIiRkaXIvdnpkdW1wLmxvZyIgfHwgcmNsb25lIC0tY29uZmlnICIkQ09ORklHIiBjb3B5dG8gIiRkaXIvdnpkdW1wLmxvZyIgIiRyZW1vdGU6JGJhc2UvdnpkdW1wLmxvZyIKMTg5OiAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTkwOiAgdmVyaWZ5X3JlbW90ZSAiJGIiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMTkxOiAgaW5zdGFsbCAtZCAtbSAwNzAwICIkU1RBVEVfUk9PVCIKMTkyOiAganEgLW4gLS1hcmcgZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iIC0tYXJnIGRpciAiJGRpciIgLS1hcmcgYXJjaGl2ZSAiJGFyY2hpdmVfbmFtZSIgLS1hcmcgc2hhICIkc2hhIiAtLWFyZyByZW1vdGVfYSAiJGEiIC0tYXJnIHJlbW90ZV9iICIkYiIgLS1hcmdqc29uIHNpemUgIiRzaXplIiAne3NjaGVtYToiaG9tZWxhYi12bTE2MC1jbG91ZC1xdW9ydW0tdjIiLHN0YXR1czoiUFJFUEFSRUQiLGdlbmVyYXRpb246JGdlbmVyYXRpb24sbG9jYWxfZGlyOiRkaXIsYXJjaGl2ZTokYXJjaGl2ZSxhcmNoaXZlX3NpemVfYnl0ZXM6JHNpemUsYXJjaGl2ZV9zaGEyNTY6JHNoYSxyZW1vdGVfYTokcmVtb3RlX2EscmVtb3RlX2I6JHJlbW90ZV9iLGNsb3VkX3F1b3J1bToyLGNsb3VkX2Ffcm91bmR0cmlwX3NoYTI1Njp0cnVlLGNsb3VkX2Jfcm91bmR0cmlwX3NoYTI1Njp0cnVlLHBhcnRfaGFzaGVzX3ZlcmlmaWVkOnRydWUsenN0ZF9zdHJlYW1fdmVyaWZpZWQ6dHJ1ZSxzYW1lX2dlbmVyYXRpb25faWQ6dHJ1ZSxtYW5pZmVzdF9tYXRjaDp0cnVlLHNlYWxfd3JpdHRlbjpmYWxzZSxsb2NhbF9kZWxldGVfYWxsb3dlZDp0cnVlLGxvY2FsX2JhY2t1cF9kZWxldGVkOmZhbHNlfScgPiAiJHN0YXRlIgoxOTM6ICBjaG1vZCAwNjAwICIkc3RhdGUiCjE5NDogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc3RhdGUiICIkYTokYmFzZS9xdW9ydW0tc2VhbC5qc29uIgoxOTU6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHN0YXRlIiAiJGI6JGJhc2UvcXVvcnVtLXNlYWwuanNvbiIKMTk4OiAgcHJpbnRmICdCQUNLVVBfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5BUkNISVZFX1NJWkVfQllURVM9JXNcbkFSQ0hJVkVfU0hBMjU2PSVzXG5DTE9VRF9RVU9SVU09MlxuUEFSVF9IQVNIRVNfVkVSSUZJRUQ9WUVTXG5MT0NBTF9ERUxFVEVfQUxMT1dFRD1ZRVNcbklERU1QT1RFTlRfUkVVU0U9Tk9cbicgIiRnZW5lcmF0aW9uIiAiJHNpemUiICIkc2hhIgoyMDE6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiCjIwMjogIHZhbGlkX2dlbmVyYXRpb24gIiRnZW5lcmF0aW9uIgoyMDM6ICBzZWFsPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoyMDQ6ICB0ZXN0IC1zICIkc2VhbCIKMjA1OiAganEgLWUgJy5zdGF0dXM9PSJQUkVQQVJFRCIgYW5kIC5jbG91ZF9xdW9ydW09PTIgYW5kIC5jbG91ZF9hX3JvdW5kdHJpcF9zaGEyNTY9PXRydWUgYW5kIC5jbG91ZF9iX3JvdW5kdHJpcF9zaGEyNTY9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnpzdGRfc3RyZWFtX3ZlcmlmaWVkPT10cnVlIGFuZCAuc2FtZV9nZW5lcmF0aW9uX2lkPT10cnVlIGFuZCAubWFuaWZlc3RfbWF0Y2g9PXRydWUgYW5kIC5sb2NhbF9kZWxldGVfYWxsb3dlZD09dHJ1ZSBhbmQgLmxvY2FsX2JhY2t1cF9kZWxldGVkPT1mYWxzZScgIiRzZWFsIiA+L2Rldi9udWxsCjIwNjogIGRpcj0iJChqcSAtciAnLmxvY2FsX2RpcicgIiRzZWFsIikiCjIwNzogIHNpemU9IiQoanEgLXIgJy5hcmNoaXZlX3NpemVfYnl0ZXMnICIkc2VhbCIpIgoyMDg6ICBzaGE9IiQoanEgLXIgJy5hcmNoaXZlX3NoYTI1NicgIiRzZWFsIikiCjIwOTogIGE9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjIxMDogIGI9IiQoanEgLXIgJy5yZW1vdGVfYicgIiRzZWFsIikiCjIxMzogIHZlcmlmeV9yZW1vdGUgIiRhIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjIxNDogIHZlcmlmeV9yZW1vdGUgIiRiIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjIxNTogIHByaW50ZiAnVkVSSUZZX1BSRVBBUkVEX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0dFTkVSQVRJT05fUFJFU0VOVD1ZRVNcbicgIiRnZW5lcmF0aW9uIgoyMTg6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiIGJhc2UgbGlua190YXJnZXQKMjE5OiAgdmFsaWRfZ2VuZXJhdGlvbiAiJGdlbmVyYXRpb24iCjIyMDogIHNlYWw9IiRTVEFURV9ST09ULyRnZW5lcmF0aW9uLmpzb24iCjIyMTogIHZlcmlmeV9wcmVwYXJlZCAiJGdlbmVyYXRpb24iID4vZGV2L251bGwKMjIyOiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjIzOiAgc2l6ZT0iJChqcSAtciAnLmFyY2hpdmVfc2l6ZV9ieXRlcycgIiRzZWFsIikiCjIyNDogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJHNlYWwiKSIKMjI1OiAgYT0iJChqcSAtciAnLnJlbW90ZV9hJyAiJHNlYWwiKSIKMjI2OiAgYj0iJChqcSAtciAnLnJlbW90ZV9iJyAiJHNlYWwiKSIKMjI3OiAgYmFzZT0iJChiYXNlX3BhdGggIiRnZW5lcmF0aW9uIikiCjIyODogIGpxICcuc3RhdHVzPSJERUxFVEVfQVVUSE9SSVpFRCIgfCAuc2VhbF93cml0dGVuPXRydWUgfCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9ZmFsc2UgfCAuZGVsZXRlX2F1dGhvcml6ZWRfYXQ9KG5vd3x0b2RhdGVpc284NjAxKScgIiRzZWFsIiA+ICIkc2VhbC5uZXciCjIyOTogIG12ICIkc2VhbC5uZXciICIkc2VhbCIKMjMwOiAgY2htb2QgMDYwMCAiJHNlYWwiCjIzMTogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRhOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjIzMjogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRiOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjIzMzogIGlmIHRlc3QgLUwgIiRMQVRFU1RfTElOSyI7IHRoZW4KMjM0OiAgICBsaW5rX3RhcmdldD0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjIzNTogICAgaWYgdGVzdCAiJGxpbmtfdGFyZ2V0IiA9ICIkZ2VuZXJhdGlvbiIgfHwgdGVzdCAiJGxpbmtfdGFyZ2V0IiA9ICIkZGlyIjsgdGhlbiBybSAtZiAiJExBVEVTVF9MSU5LIjsgZmkKMjM5OiAganEgJy5zdGF0dXM9IlNFQUxFRCIgfCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9dHJ1ZSB8IC5zZWFsZWRfYXQ9KG5vd3x0b2RhdGVpc284NjAxKScgIiRzZWFsIiA+ICIkc2VhbC5uZXciCjI0MDogIG12ICIkc2VhbC5uZXciICIkc2VhbCIKMjQxOiAgY2htb2QgMDYwMCAiJHNlYWwiCjI0MjogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRhOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjI0MzogIHJjbG9uZSAtLWNvbmZpZyAiJENPTkZJRyIgY29weXRvICIkc2VhbCIgIiRiOiRiYXNlL3F1b3J1bS1zZWFsLmpzb24iCjI0NDogIHJldGVudGlvbiAiJGEiICIkZ2VuZXJhdGlvbiIKMjQ1OiAgcmV0ZW50aW9uICIkYiIgIiRnZW5lcmF0aW9uIgoyNDY6ICBwcmludGYgJ0xPQ0FMX0RFTEVURV9TVEFUVVM9T0tcbkdFTkVSQVRJT049JXNcbkNMT1VEX1FVT1JVTT0yXG5ERUxFVEVfQVVUSE9SSVpBVElPTl9TRUFMPVlFU1xuRklOQUxfU0VBTD1ZRVNcbkxPQ0FMX0JBQ0tVUF9ERUxFVEVEPVlFU1xuJyAiJGdlbmVyYXRpb24iCjI0ODp2ZXJpZnlfZ2VuZXJhdGlvbigpewoyNDk6ICBsb2NhbCBnZW5lcmF0aW9uPSIkMSIgc2VhbCBkaXIgc2l6ZSBzaGEgYSBiIGxpbmtfdGFyZ2V0CjI1MDogIHZhbGlkX2dlbmVyYXRpb24gIiRnZW5lcmF0aW9uIgoyNTE6ICBzZWFsPSIkU1RBVEVfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIgoyNTI6ICB0ZXN0IC1zICIkc2VhbCIKMjUzOiAganEgLWUgJy5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuc2VhbF93cml0dGVuPT10cnVlIGFuZCAubG9jYWxfYmFja3VwX2RlbGV0ZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnpzdGRfc3RyZWFtX3ZlcmlmaWVkPT10cnVlJyAiJHNlYWwiID4vZGV2L251bGwKMjU0OiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjU1OiAgc2l6ZT0iJChqcSAtciAnLmFyY2hpdmVfc2l6ZV9ieXRlcycgIiRzZWFsIikiCjI1NjogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJHNlYWwiKSIKMjU3OiAgYT0iJChqcSAtciAnLnJlbW90ZV9hJyAiJHNlYWwiKSIKMjU4OiAgYj0iJChqcSAtciAnLnJlbW90ZV9iJyAiJHNlYWwiKSIKMjYxOiAgdmVyaWZ5X3JlbW90ZSAiJGEiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMjYyOiAgdmVyaWZ5X3JlbW90ZSAiJGIiICIkZ2VuZXJhdGlvbiIgIiRzaXplIiAiJHNoYSIKMjYzOiAgaWYgdGVzdCAtTCAiJExBVEVTVF9MSU5LIjsgdGhlbiBsaW5rX3RhcmdldD0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiOyB0ZXN0ICIkbGlua190YXJnZXQiICE9ICIkZ2VuZXJhdGlvbiI7IHRlc3QgIiRsaW5rX3RhcmdldCIgIT0gIiRkaXIiOyBmaQoyNjQ6ICBwcmludGYgJ1ZFUklGWV9HRU5FUkFUSU9OX1NUQVRVUz1PS1xuR0VORVJBVElPTj0lc1xuQ0xPVURfUVVPUlVNPTJcbkxPQ0FMX0dFTkVSQVRJT05fUFJFU0VOVD1OT1xuJyAiJGdlbmVyYXRpb24iCjI2NjpyZXN0b3JlX2dlbmVyYXRpb24oKXsKMjY3OiAgbG9jYWwgZ2VuZXJhdGlvbj0iJDEiIHNlYWwgZGlyIGFyY2hpdmUgc2l6ZSBzaGEgcmVtb3RlIGJhc2UgdG1wIHBhcnQgcGFydGlhbAoyNjg6ICB2YWxpZF9nZW5lcmF0aW9uICIkZ2VuZXJhdGlvbiIKMjY5OiAgc2VhbD0iJFNUQVRFX1JPT1QvJGdlbmVyYXRpb24uanNvbiIKMjcwOiAgdGVzdCAtcyAiJHNlYWwiCjI3MTogIGpxIC1lICcuc3RhdHVzPT0iU0VBTEVEIiBvciAuc3RhdHVzPT0iREVMRVRFX0FVVEhPUklaRUQiJyAiJHNlYWwiID4vZGV2L251bGwKMjcyOiAgZGlyPSIkKGpxIC1yICcubG9jYWxfZGlyJyAiJHNlYWwiKSIKMjczOiAgYXJjaGl2ZT0iJChqcSAtciAnLmFyY2hpdmUnICIkc2VhbCIpIgoyNzQ6ICBzaXplPSIkKGpxIC1yICcuYXJjaGl2ZV9zaXplX2J5dGVzJyAiJHNlYWwiKSIKMjc1OiAgc2hhPSIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkc2VhbCIpIgoyNzY6ICByZW1vdGU9IiQoanEgLXIgJy5yZW1vdGVfYScgIiRzZWFsIikiCjI3OTogIGJhc2U9IiQoYmFzZV9wYXRoICIkZ2VuZXJhdGlvbiIpIgoyODA6ICB2ZXJpZnlfcmVtb3RlICIkcmVtb3RlIiAiJGdlbmVyYXRpb24iICIkc2l6ZSIgIiRzaGEiCjI4MjogIHRtcD0iJChta3RlbXAgL3RtcC92bTE2MC1yZXN0b3JlLXBhcnRzLlhYWFhYWCkiCjI4NDogIHBhcnRzX2xpc3QgIiRyZW1vdGUiICIkYmFzZSIgIiR0bXAiCjI4NzogIHdoaWxlIElGUz0gcmVhZCAtciBwYXJ0OyBkbyByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNhdCAiJHJlbW90ZTokYmFzZS9wYXJ0cy8kcGFydCIgPj4gIiRwYXJ0aWFsIjsgZG9uZSA8ICIkdG1wIgoyOTM6ICByY2xvbmUgLS1jb25maWcgIiRDT05GSUciIGNvcHl0byAiJHJlbW90ZTokYmFzZS92emR1bXAubG9nIiAiJGRpci92emR1bXAubG9nIiA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQoyOTQ6ICBsbiAtc2ZuICIkZ2VuZXJhdGlvbiIgIiRMQVRFU1RfTElOSyIKMjk1OiAgdGVzdCAiJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiID0gIiRnZW5lcmF0aW9uIgoyOTg6ICBwcmludGYgJ1JFU1RPUkVfU1RBVFVTPU9LXG5HRU5FUkFUSU9OPSVzXG5MQVRFU1RfTElOSz0lc1xuJyAiJGdlbmVyYXRpb24iICIkTEFURVNUX0xJTksiCjMwNDogICAgZm9yIHRvb2wgaW4gcmNsb25lIGpxIHNoYTI1NnN1bSB6c3RkIGRkIHN0YXQgZmluZCBhd2sgc2VkIHNvcnQgY21wIG1rZmlmbyB0ZWUgcGdyZXAgcGFzdGUgcmVhZGxpbms7IGRvIGNvbW1hbmQgLXYgIiR0b29sIiA+L2Rldi9udWxsOyBkb25lCjMwNTogICAgQUNUSVZFPSIkKHBncmVwIC1hZiAnKF58LykodnpkdW1wfHFtcmVzdG9yZXxwY3RyZXN0b3JlfHZtYXx6c3RkKShbWzpzcGFjZTpdXXwkKScgfHwgdHJ1ZSkiCjMwNzogICAgQT0iJChyZW1vdGVfYSkiOyBCPSIkKHJlbW90ZV9iKSI7IHRlc3QgIiRBIiAhPSAiJEIiCjMwOTogICAgR0VORVJBVElPTlM9IiQoZmluZCAiJFBBUkVOVCIgLW1pbmRlcHRoIDEgLW1heGRlcHRoIDEgLXR5cGUgZCAtbmFtZSAiJHtQUkVGSVh9KiIgLXByaW50ZiAnJWZcbicgfCBMQ19BTEw9QyBzb3J0IHwgcGFzdGUgLXNkLCAtKSIKMzExOiAgICB0ZXN0ICEgLUwgIiRMQVRFU1RfTElOSyIgfHwgTElOSz0iJChyZWFkbGluayAiJExBVEVTVF9MSU5LIikiCjMxMjogICAgVEFSR0VUX1dPUktFUl9TSEEyNTY9QUJTRU5UCjMxMzogICAgdGVzdCAhIC1mIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfHwgVEFSR0VUX1dPUktFUl9TSEEyNTY9IiQoc2hhMjU2c3VtIC91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtMTYwLWNsb3VkLXF1b3J1bS13b3JrZXIgfCBhd2sgJ3twcmludCAkMX0nKSIKMzE3OiAgICAgIE9ORV9HRU5FUkFUSU9OPSIkKGZpbmQgIiRQQVJFTlQiIC1taW5kZXB0aCAxIC1tYXhkZXB0aCAxIC10eXBlIGQgLW5hbWUgIiR7UFJFRklYfSoiIC1wcmludGYgJyVmXG4nKSIKMzE4OiAgICAgIE9ORV9BUkNISVZFPSIkKGZpbmQgIiRQQVJFTlQvJE9ORV9HRU5FUkFUSU9OIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICd2emR1bXAtcWVtdS0xNjAtKi52bWEuenN0JyAtcHJpbnQgLXF1aXQpIgozMjM6ICAgIHByaW50ZiAnUFZFMDNfUFJFRkxJR0hUX1NUQVRVUz1PS1xuQUNDT1VOVF9BX0ZQPSVzXG5BQ0NPVU5UX0JfRlA9JXNcblJFTU9URV9BX0ZSRUVfQllURVM9JXNcblJFTU9URV9CX0ZSRUVfQllURVM9JXNcbkxPQ0FMX0dFTkVSQVRJT05fQ09VTlQ9JXNcbkxPQ0FMX0dFTkVSQVRJT05TPSVzXG5MQVRFU1RfTElOS19UQVJHRVQ9JXNcbkFDVElWRV9CQUNLVVBfUkVTVE9SRV9DT1VOVD0wXG5UQVJHRVRfV09SS0VSX1NIQTI1Nj0lc1xuTE9DQUxfQVJDSElWRV9TSVpFX0JZVEVTPSVzXG5MT0NBTF9BUkNISVZFX1NIQTI1Nj0lc1xuJyAiJEFDQ09VTlRfQV9GUCIgIiRBQ0NPVU5UX0JfRlAiICIkKHJlbW90ZV9mcmVlICIkQSIpIiAiJChyZW1vdGVfZnJlZSAiJEIiKSIgIiRDT1VOVCIgIiR7R0VORVJBVElPTlM6LW5vbmV9IiAiJExJTksiICIkVEFSR0VUX1dPUktFUl9TSEEyNTYiICIkQVJDSElWRV9TSVpFX0JZVEVTIiAiJEFSQ0hJVkVfU0hBMjU2IgozMjU6ICBiYWNrdXApIGJhY2t1cCAiJHsyOi19IiA7OwozMjg6ICBiYWNrdXAtZGVsZXRlKSBESVI9IiR7MjotfSI7IGJhY2t1cCAiJERJUiI7IGRlbGV0ZV9wcmVwYXJlZCAiJChiYXNlbmFtZSAiJERJUiIpIiA7OwozMjk6ICB2ZXJpZnktZ2VuZXJhdGlvbikgdmVyaWZ5X2dlbmVyYXRpb24gIiR7MjotfSIgOzsKMzMwOiAgcmVzdG9yZSkgcmVzdG9yZV9nZW5lcmF0aW9uICIkezI6LX0iIDs7CjMzMjogICopIHByaW50ZiAnVk0xNjBfQ0xPVURfUVVPUlVNX1dPUktFUl9VU0FHRV9FUlJPUlxuJyA+JjI7IGV4aXQgNjQgOzs= +PIPE_25_SCORE=4 +PIPE_25_BASENAME=preflight.sh +PIPE_25_PATH_SHA256=7d34c8cd06d71c28251cbf0844638f1c29566bd01d7ee7701f236f1c29e84b5c +PIPE_25_FILE_SHA256=34c070f432a061a72bca0b1b087b0604ec1eb4753df19df2e910bb7a51bce6e1 +PIPE_25_SCHEDULE_TARGET_COUNT=0 +PIPE_25_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_25_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_25_VZDUMP_QEMU_COUNT=1 +PIPE_25_RCLONE_COUNT=4 +PIPE_25_CLOUD_QUORUM_COUNT=3 +PIPE_25_SEAL_WRITTEN_COUNT=2 +PIPE_25_PAYLOAD_PARTS_COUNT=0 +PIPE_25_TRANSPORT_COUNT=0 +PIPE_25_RESTORE_VALIDATION_COUNT=0 +PIPE_25_SCHEDULE_RESULT_COUNT=0 +PIPE_25_RELEVANT_LINE_COUNT=33 +PIPE_25_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKODpBUkNISVZFPSIkVEFSR0VULyRBUkNISVZFX05BTUUiCjExOlYxX1NFQUw9L3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoxMzpPTERfU1RBVEU9Ii92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bS92bTE1MC8kT0xEX0dFTi5qc29uIgoxNTpDVVJSRU5UX1NUQVRFPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE2OkNVUlJFTlRfVkFMPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjIwOnRlc3QgLWQgIiRUQVJHRVQiCjI0OnRlc3QgIiQoanEgLXIgJy5zdGF0dXMnICIkVjFfU0VBTCIpIiA9IFNFQUxFRAoyNTp0ZXN0ICIkKGpxIC1yICcubmV3X2JhY2t1cF9yZXN0b3JlX3Byb3ZlbicgIiRWMV9TRUFMIikiID0gdHJ1ZQoyNjp0ZXN0ICIkKGpxIC1yICcuZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnICIkVjFfU0VBTCIpIiA9IHRydWUKMjc6dGVzdCAiJChqcSAtciAnLmNvbXBsZXRlJyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gdHJ1ZQoyODp0ZXN0ICIkKGpxIC1yICcubXV0YXRpb25fc3RhdGUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSBGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOCjI5OnRlc3QgIiQoanEgLXIgJy5vbGRfZ2VuZXJhdGlvbicgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkT0xEX0dFTiIKMzA6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfbmFtZScgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9OQU1FIgozMTp0ZXN0ICIkKGpxIC1yICcucm9sbGJhY2tfYXJjaGl2ZV9ieXRlcycgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9CWVRFUyIKMzI6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfc2hhMjU2JyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gIiRBUkNISVZFX1NIQSIKMzM6Zm9yIGV4cHIgaW4gJy5zdGF0dXM9PSJTRUFMRUQiJyAnLmNsb3VkX3F1b3J1bT09MicgJy5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUnICcuY2xvdWRfYV9zZWFsX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZScgJy5zZWFsX3dyaXR0ZW49PXRydWUnICcubG9jYWxfY2xlYW51cD09Ik9LIic7IGRvIGpxIC1lICIkZXhwciIgIiRDVVJSRU5UX1NUQVRFIiA+L2Rldi9udWxsOyBkb25lCjM0OnRlc3QgIiQoanEgLXIgJy5nZW5lcmF0aW9uJyAiJENVUlJFTlRfU1RBVEUiKSIgPSAiJENVUlJFTlRfR0VOIgozNTp0ZXN0ICIkKGpxIC1yICcuYXJjaGl2ZV9zaGEyNTYnICIkQ1VSUkVOVF9TVEFURSIpIiA9IDhiN2ZiYjFiN2ZkNjQ0NzNhNGIyMzIzYTIyYWIyM2IzYTcyMjg3NDZjNTI2YWM2NDA1Y2YxY2NiOWVlMWI1YWMKMzc6Zm9yIGV4cHIgaW4gJy5zdGF0dXM9PSJTRUFMRUQiJyAnLmNsb3VkX3F1b3J1bT09MicgJy5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUnICcuY2xvdWRfYV9zZWFsX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZScgJy5zZWFsX3dyaXR0ZW49PXRydWUnOyBkbyBqcSAtZSAiJGV4cHIiICIkT0xEX1NUQVRFIiA+L2Rldi9udWxsOyBkb25lCjM4OnRlc3QgIiQoanEgLXIgJy5nZW5lcmF0aW9uJyAiJE9MRF9TVEFURSIpIiA9ICIkT0xEX0dFTiIKMzk6dGVzdCAiJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJE9MRF9TVEFURSIpIiA9ICIkQVJDSElWRV9TSEEiCjQwOk9MRF9BPSIkKGpxIC1yICcucmVtb3RlX2FfYmFzZSAvLyBlbXB0eScgIiRPTERfU1RBVEUiKSIKNDE6T0xEX0I9IiQoanEgLXIgJy5yZW1vdGVfYl9iYXNlIC8vIGVtcHR5JyAiJE9MRF9TVEFURSIpIgo0MzpyY2xvbmUgY2F0ICIke09MRF9BJS99L3NlYWwuanNvbiIgPiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWEtc2VhbC5qc29uIgo0NDpyY2xvbmUgY2F0ICIke09MRF9CJS99L3NlYWwuanNvbiIgPiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWItc2VhbC5qc29uIgo0NTpmb3IgcyBpbiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWEtc2VhbC5qc29uIiAiJEhPTUVMQUJfUlVOX0RJUi9vbGQtcmVtb3RlLWItc2VhbC5qc29uIjsgZG8ganEgLWUgLS1hcmcgZyAiJE9MRF9HRU4iIC0tYXJnIGggIiRBUkNISVZFX1NIQSIgJy5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5hcmNoaXZlX3NoYTI1Nj09JGgnICIkcyIgPi9kZXYvbnVsbDsgZG9uZQo0NjpFWFBFQ1RFRF9QQVJUUz0iJChqcSAtciAnLnBhcnRzX21hbmlmZXN0X3NoYTI1NiAvLyBlbXB0eScgIiRPTERfU1RBVEUiKSIKNDg6dGVzdCAiJChyY2xvbmUgY2F0ICIke09MRF9BJS99L1BBUlRTLnRzdiIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIgPSAiJEVYUEVDVEVEX1BBUlRTIgo0OTp0ZXN0ICIkKHJjbG9uZSBjYXQgIiR7T0xEX0IlL30vUEFSVFMudHN2IiB8IHNoYTI1NnN1bSB8IGF3ayAne3ByaW50ICQxfScpIiA9ICIkRVhQRUNURURfUEFSVFMiCjUxOmpxIC1uIC0tYXJnIHRhc2tfaWQgIiRUQVNLX0lEIiAtLWFyZyBzdGF0dXMgT0sgLS1hcmcgdGFyZ2V0ICIkVEFSR0VUIiAtLWFyZyBhcmNoaXZlX3NoYTI1NiAiJEFSQ0hJVkVfU0hBIiAtLWFyZyBvbGRfZ2VuZXJhdGlvbiAiJE9MRF9HRU4iIC0tYXJnIGN1cnJlbnRfZ2VuZXJhdGlvbiAiJENVUlJFTlRfR0VOIiAne3N0YXR1czokc3RhdHVzLHRhc2tfaWQ6JHRhc2tfaWQsdGFyZ2V0OiR0YXJnZXQsYXJjaGl2ZV9zaGEyNTY6JGFyY2hpdmVfc2hhMjU2LG9sZF9nZW5lcmF0aW9uOiRvbGRfZ2VuZXJhdGlvbixjdXJyZW50X3Jlc3RvcmVfcHJvdmVuX2dlbmVyYXRpb246JGN1cnJlbnRfZ2VuZXJhdGlvbixjdXJyZW50X3NuaWtrZXRfcnVubmluZzp0cnVlLG9sZF9jbG91ZF9hX3ZlcmlmaWVkOnRydWUsb2xkX2Nsb3VkX2JfdmVyaWZpZWQ6dHJ1ZSxwcm9kdWN0aW9uX2NoYW5nZWQ6ZmFsc2V9JyA+ICIkSE9NRUxBQl9SVU5fRElSL3ByZWZsaWdodC5qc29uIgo1MjpwcmludGYgJ1BSRUZMSUdIVF9TVEFUVVM9T0tcblZNMTUwPVJVTk5JTkdfU05JS0tFVFxuTE9DQUxfQVJDSElWRT1FWEFDVFxuT0xEX0NMT1VEX1FVT1JVTT0yXG5DVVJSRU5UX1JFU1RPUkVfUFJPT0Y9T0tcblBST0RVQ1RJT05fQ0hBTkdFRD1OT1xuJw== +PIPE_26_SCORE=4 +PIPE_26_BASENAME=preflight.sh +PIPE_26_PATH_SHA256=a686a97a8cdc4f26bf4f5e26ecb15db06605be34e4f2f77a181430d1f024d4e9 +PIPE_26_FILE_SHA256=0dd1c6f9ea99d1f69b81d45fbe8aca86a4adca53b3faf85281096a365c06d53d +PIPE_26_SCHEDULE_TARGET_COUNT=0 +PIPE_26_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_26_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_26_VZDUMP_QEMU_COUNT=1 +PIPE_26_RCLONE_COUNT=5 +PIPE_26_CLOUD_QUORUM_COUNT=1 +PIPE_26_SEAL_WRITTEN_COUNT=1 +PIPE_26_PAYLOAD_PARTS_COUNT=0 +PIPE_26_TRANSPORT_COUNT=0 +PIPE_26_RESTORE_VALIDATION_COUNT=0 +PIPE_26_SCHEDULE_RESULT_COUNT=0 +PIPE_26_RELEVANT_LINE_COUNT=25 +PIPE_26_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKODpBUkNISVZFPSIkVEFSR0VULyRBUkNISVZFX05BTUUiCjExOlYxX1NFQUw9L3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoxMjpSRVRFTlRJT05fVFg9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MvdHJhbnNhY3Rpb25zL3ZtMTUwL3ZtMTUwLXB2ZTAxLTIwMjYwODE0VDEyMTczNlouanNvbgoxNDpDVVJSRU5UX1NUQVRFPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE1OkNVUlJFTlRfVkFMPSIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC92bS1yZXN0b3JlLXZhbGlkYXRpb24vdm0xNTAvJENVUlJFTlRfR0VOLmpzb24iCjE4OmZvciBjbWQgaW4gcW0ganEgcmNsb25lIHNoYTI1NnN1bSBzdGF0IGZpbmQgZnVzZXIgaG9tZWxhYi1yY2xvbmUtY29weS1jaHVua2VkIGhvbWVsYWItcmNsb25lLWNhdC1jaHVua2VkOyBkbyBjb21tYW5kIC12ICIkY21kIiA+L2Rldi9udWxsOyBkb25lCjIyOnRlc3QgLWQgIiRUQVJHRVQiCjI2OnRlc3QgIiQoanEgLXIgJy5zdGF0dXMnICIkVjFfU0VBTCIpIiA9IFNFQUxFRAoyNzp0ZXN0ICIkKGpxIC1yICcubmV3X2JhY2t1cF9yZXN0b3JlX3Byb3ZlbicgIiRWMV9TRUFMIikiID0gdHJ1ZQoyODp0ZXN0ICIkKGpxIC1yICcuZmluYWxfcG9zdF9hZG1pbl9iYWNrdXAnICIkVjFfU0VBTCIpIiA9IHRydWUKMjk6dGVzdCAiJChqcSAtciAnLmNvbXBsZXRlJyAiJFRBUkdFVC9zdGFnZS5qc29uIikiID0gdHJ1ZQozMDp0ZXN0ICIkKGpxIC1yICcubXV0YXRpb25fc3RhdGUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSBGSU5BTF9BRE1JTl9CQUNLVVBfUFJPVkVOCjMxOnRlc3QgIiQoanEgLXIgJy5yb2xsYmFja19hcmNoaXZlX25hbWUnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSAiJEFSQ0hJVkVfTkFNRSIKMzI6dGVzdCAiJChqcSAtciAnLnJvbGxiYWNrX2FyY2hpdmVfYnl0ZXMnICIkVEFSR0VUL3N0YWdlLmpzb24iKSIgPSAiJEFSQ0hJVkVfQllURVMiCjMzOnRlc3QgIiQoanEgLXIgJy5yb2xsYmFja19hcmNoaXZlX3NoYTI1NicgIiRUQVJHRVQvc3RhZ2UuanNvbiIpIiA9ICIkQVJDSElWRV9TSEEiCjM0OmpxIC1lICcuc3RhdHVzPT0iRE9ORSIgYW5kIC5nZW5lcmF0aW9uPT0idm0xNTAtcHZlMDEtMjAyNjA4MTRUMTIxNzM2WiIgYW5kIC5yZW1vdGVfYV9hYnNlbnQ9PXRydWUgYW5kIC5yZW1vdGVfYl9hYnNlbnQ9PXRydWUnICIkUkVURU5USU9OX1RYIiA+L2Rldi9udWxsCjM1OmZvciBleHByIGluICcuc3RhdHVzPT0iU0VBTEVEIicgJy5jbG91ZF9xdW9ydW09PTInICcuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZScgJy5jbG91ZF9iX3ZlcmlmaWVkPT10cnVlJyAnLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZScgJy5jbG91ZF9iX3NlYWxfdmVyaWZpZWQ9PXRydWUnICcucGFydF9oYXNoZXNfdmVyaWZpZWQ9PXRydWUnICcuc2VhbF93cml0dGVuPT10cnVlJyAnLmxvY2FsX2NsZWFudXA9PSJPSyInOyBkbyBqcSAtZSAiJGV4cHIiICIkQ1VSUkVOVF9TVEFURSIgPi9kZXYvbnVsbDsgZG9uZQozNjp0ZXN0ICIkKGpxIC1yICcuZ2VuZXJhdGlvbicgIiRDVVJSRU5UX1NUQVRFIikiID0gIiRDVVJSRU5UX0dFTiIKMzc6dGVzdCAiJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2JyAiJENVUlJFTlRfU1RBVEUiKSIgPSA4YjdmYmIxYjdmZDY0NDczYTRiMjMyM2EyMmFiMjNiM2E3MjI4NzQ2YzUyNmFjNjQwNWNmMWNjYjllZTFiNWFjCjQxOmlmIHJjbG9uZSBsc2YgIiRBUkNISVZFX0EiID4vZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICdhcmNoaXZhbC1hLWRlc3RpbmF0aW9uLWFscmVhZHktZXhpc3RzJyA+JjI7IGV4aXQgNDM7IGZpCjQyOmlmIHJjbG9uZSBsc2YgIiRBUkNISVZFX0IiID4vZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICdhcmNoaXZhbC1iLWRlc3RpbmF0aW9uLWFscmVhZHktZXhpc3RzJyA+JjI7IGV4aXQgNDQ7IGZpCjQ0OmpxIC1uIC0tYXJnIHRhc2tfaWQgIiRUQVNLX0lEIiAtLWFyZyBzdGF0dXMgT0sgLS1hcmcgdGFyZ2V0ICIkVEFSR0VUIiAtLWFyZyBhcmNoaXZlX3NoYTI1NiAiJEFSQ0hJVkVfU0hBIiAtLWFyZyBjdXJyZW50X2dlbmVyYXRpb24gIiRDVVJSRU5UX0dFTiIgLS1hcmcgYXJjaGl2ZV9hICIkQVJDSElWRV9BIiAtLWFyZyBhcmNoaXZlX2IgIiRBUkNISVZFX0IiICd7c3RhdHVzOiRzdGF0dXMsdGFza19pZDokdGFza19pZCx0YXJnZXQ6JHRhcmdldCxhcmNoaXZlX3NoYTI1NjokYXJjaGl2ZV9zaGEyNTYsY3VycmVudF9yZXN0b3JlX3Byb3Zlbl9nZW5lcmF0aW9uOiRjdXJyZW50X2dlbmVyYXRpb24sY3VycmVudF9zbmlra2V0X3J1bm5pbmc6dHJ1ZSxoaXN0b3JpY2FsX2dmc19yZXRlbnRpb25fZG9uZTp0cnVlLGhpc3RvcmljYWxfZ2ZzX3JlbW90ZV9hX2Fic2VudDp0cnVlLGhpc3RvcmljYWxfZ2ZzX3JlbW90ZV9iX2Fic2VudDp0cnVlLGFyY2hpdmFsX2E6JGFyY2hpdmVfYSxhcmNoaXZhbF9iOiRhcmNoaXZlX2IsYXJjaGl2YWxfZGVzdGluYXRpb25zX2Fic2VudDp0cnVlLHByb2R1Y3Rpb25fY2hhbmdlZDpmYWxzZX0nID4gIiRIT01FTEFCX1JVTl9ESVIvcHJlZmxpZ2h0Lmpzb24iCjQ1OnByaW50ZiAnUFJFRkxJR0hUX1NUQVRVUz1PS1xuVk0xNTA9UlVOTklOR19TTklLS0VUXG5MT0NBTF9BUkNISVZFPUVYQUNUXG5ISVNUT1JJQ0FMX0dGU19SRU1PVEVfQUJTRU5UPUErQlxuQVJDSElWQUxfREVTVElOQVRJT05TPUFCU0VOVFxuQ1VSUkVOVF9SRVNUT1JFX1BST09GPU9LXG5QUk9EVUNUSU9OX0NIQU5HRUQ9Tk9cbic= +PIPE_27_SCORE=4 +PIPE_27_BASENAME=homelab-control-backup +PIPE_27_PATH_SHA256=a43d3657289f537dc66a8bfaab1c93482aba98ebc44feee7cb048957fd6c5a01 +PIPE_27_FILE_SHA256=0b3a0f685d4e67cb86250df89a4918aff2e6c67799b7d35b0e54b1bbc016ee57 +PIPE_27_SCHEDULE_TARGET_COUNT=0 +PIPE_27_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_27_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_27_VZDUMP_QEMU_COUNT=0 +PIPE_27_RCLONE_COUNT=14 +PIPE_27_CLOUD_QUORUM_COUNT=1 +PIPE_27_SEAL_WRITTEN_COUNT=0 +PIPE_27_PAYLOAD_PARTS_COUNT=1 +PIPE_27_TRANSPORT_COUNT=11 +PIPE_27_RESTORE_VALIDATION_COUNT=0 +PIPE_27_SCHEDULE_RESULT_COUNT=0 +PIPE_27_RELEVANT_LINE_COUNT=100 +PIPE_27_RELEVANT_B64=NzpTVEFURV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2Nsb3VkLXF1b3J1bQo4OlNUQVRFX0RJUj0kU1RBVEVfUk9PVC8kTE9HSUNBTF9JRAo5OkVWSURFTkNFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY29udHJvbC1yZXN0b3JlLXZhbGlkYXRpb24vY29udHJvbC1ib290c3RyYXAKMTA6SEVBTFRIPS92YXIvbGliL2hvbWVsYWItaGVhbHRoL2NvbnRyb2wtYmFja3VwLmpzb24KMTM6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1jb250cm9sLWJhY2t1cC5sb2NrCjE0OkhFQVZZX0xPQ0s9L3J1bi9ob21lbGFiLWJhY2t1cC1oZWF2eS5sb2NrCjE1OlJDTE9ORV9DT05GSUdfU09VUkNFPSR7UkNMT05FX0NPTkZJRzotL3Jvb3QvLmNvbmZpZy9yY2xvbmUvcmNsb25lLmNvbmZ9CjE2OlRSQU5TUE9SVD0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1jbG91ZC1xdW9ydW0tcGF5bG9hZAoxNzpUUkFOU1BPUlRfU0hBPWRmOWUxOTQ4NWU1ZDg3MTEyYmY1OGJmNzdiZGRkZjNiOWI4OTY0MThkZDg1ZmY5NDVhMzFjZDViNjgxN2YzNTIKMjA6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMKMjE6UkVNT1RFX0I9cHZlMDEtbWFpbC0wMi1jcnlwdDpob21lbGFiLWJhY2t1cHMKMjI6Q0xPVURfV1JJVEVfTUFSS0VSPSR7SE9NRUxBQl9DT05UUk9MX0NMT1VEX1dSSVRFX01BUktFUjotfQoyNDpkaWUoKXsgcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9FUlJPUj0lc1xuJyAiJDEiID4mMjsgZXhpdCAiJHsyOi02NX0iOyB9CjI1OmZvciBjIGluIGpxIGRhdGUgZmluZCBzb3J0IHRhaWwgY3V0IHNoYTI1NnN1bSBzdGF0IGZsb2NrIHJjbG9uZSBta3RlbXAgY21wIGF3ayBta2RpciBybSBpbnN0YWxsIHhhcmdzIGdyZXAgY2F0IG12IGNobW9kOyBkbyBjb21tYW5kIC12ICIkYyIgPi9kZXYvbnVsbCB8fCBkaWUgIlRPT0xfTUlTU0lOR18kYyIgNjk7IGRvbmUKMjY6W1sgLXggIiRUUkFOU1BPUlQiICYmICEgLUwgIiRUUkFOU1BPUlQiIF1dIHx8IGRpZSBUUkFOU1BPUlRfVU5TQUZFIDY5CjI3OltbICIkKHNoYTI1NnN1bSAiJFRSQU5TUE9SVCJ8YXdrICd7cHJpbnQgJDF9JykiID09ICIkVFJBTlNQT1JUX1NIQSIgXV0gfHwgZGllIFRSQU5TUE9SVF9TSEFfRFJJRlQgNjUKMzE6bGF0ZXN0X3N0YXRlKCl7CjMyOiAgW1sgLWQgIiRTVEFURV9ESVIiICYmICEgLUwgIiRTVEFURV9ESVIiIF1dIHx8IHJldHVybiAwCjMzOiAgZmluZCAiJFNUQVRFX0RJUiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnY29udHJvbC1ib290c3RyYXAtdjItcHZlMDEtPz8/Pz8/Pz9UPz8/Pz8/Wi5qc29uJyAtcHJpbnQgMj4vZGV2L251bGwgfCBMQ19BTEw9QyBzb3J0IHwgdGFpbCAtMQozNTpzdGF0ZV9kZWNpc2lvbigpewozNjogIGxvY2FsIHN0YXRlPSIkMSIgbm93PSIkMiIgc3RhdHVzIGdlbiB1cGQgZXBvY2ggYWdlIGV2IHNoYQozNzogIGlmIFtbIC16ICIkc3RhdGUiIF1dOyB0aGVuIHByaW50ZiAnREVDSVNJT049QkFDS1VQX1VOVkVSSUZJRUQgUkVBU09OPU5PX1NUQVRFIEFHRV9TRUNPTkRTPS0xXG4nOyByZXR1cm4gMDsgZmkKMzg6ICBbWyAtcyAiJHN0YXRlIiAmJiAhIC1MICIkc3RhdGUiIF1dIHx8IHsgcHJpbnRmICdERUNJU0lPTj1CQUNLVVBfVU5WRVJJRklFRCBSRUFTT049U1RBVEVfVU5TQUZFIEFHRV9TRUNPTkRTPS0xXG4nOyByZXR1cm4gMDsgfQozOTogIHN0YXR1cz0iJChqcSAtciAnLnN0YXR1cyAvLyAiSU5WQUxJRCInICIkc3RhdGUiKSI7IGdlbj0iJChqcSAtciAnLmdlbmVyYXRpb24gLy8gIlVOS05PV04iJyAiJHN0YXRlIikiCjQyOiAgICAgIHByaW50ZiAnREVDSVNJT049QkFDS1VQX1JFU1VNRSBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9LTFcbicgIiRnZW4iICIkc3RhdGUiOyByZXR1cm4gMDs7CjQzOiAgICBTRUFMRUQpIDs7CjQ0OiAgICAqKSBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9VTlZFUklGSUVEIEdFTkVSQVRJT049JXMgUkVBU09OPVNUQVRFX1NUQVRVU19JTlZBTElEIEFHRV9TRUNPTkRTPS0xXG4nICIkZ2VuIjsgcmV0dXJuIDA7Owo0NjogIHNoYT0iJChqcSAtciAnLmFyY2hpdmVfc2hhMjU2IC8vICIiJyAiJHN0YXRlIikiOyB1cGQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjIC8vIC51cGRhdGVkX2F0X3V0YyAvLyAiIicgIiRzdGF0ZSIpIgo0ODogIFtbICIkZXBvY2giID1+IF5bMC05XSskICYmICIkZXBvY2giIC1sZSAiJG5vdyIgXV0gfHwgeyBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9VTlZFUklGSUVEIEdFTkVSQVRJT049JXMgUkVBU09OPVRJTUVTVEFNUF9JTlZBTElEIEFHRV9TRUNPTkRTPS0xXG4nICIkZ2VuIjsgcmV0dXJuIDA7IH0KNTA6ICBpZiBbWyAhIC1zICIkZXYiIHx8IC1MICIkZXYiIF1dIHx8ICEganEgLWUgLS1hcmcgZyAiJGdlbiIgLS1hcmcgaCAiJHNoYSIgJy5yZXN1bHQ9PSJPSyIgYW5kIC5sb2dpY2FsX2lkPT0iY29udHJvbC1ib290c3RyYXAtdjIiIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5yZXN0b3JlX3NvdXJjZT09IkNsb3VkIEEgKyBDbG91ZCBCIiBhbmQgLnBheWxvYWRfc2hhMjU2PT0kaCBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5zZWNyZXRfZXNjcm93X3NlcGFyYXRlPT10cnVlIGFuZCAuY2xlYW5fbWFjaGluZV9ib290c3RyYXBfcHJvdmVuPT1mYWxzZScgIiRldiIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCjUxOiAgICBwcmludGYgJ0RFQ0lTSU9OPUJBQ0tVUF9SRVZFUklGWSBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9LTFcbicgIiRnZW4iICIkc3RhdGUiOyByZXR1cm4gMAo1NDogIGlmICgoIGFnZSA8IERVRV9TRUNPTkRTICkpOyB0aGVuIGQ9U0tJUF9GUkVTSDsgZWxpZiAoKCBhZ2UgPCBTTEFfU0VDT05EUyApKTsgdGhlbiBkPUJBQ0tVUF9EVUU7IGVsc2UgZD1CQUNLVVBfU1RBTEU7IGZpCjU1OiAgcHJpbnRmICdERUNJU0lPTj0lcyBHRU5FUkFUSU9OPSVzIFNUQVRFX0ZJTEU9JXMgQUdFX1NFQ09ORFM9JXMgRFVFX1NFQ09ORFM9JXMgU0xBX1NFQ09ORFM9JXNcbicgIiRkIiAiJGdlbiIgIiRzdGF0ZSIgIiRhZ2UiICIkRFVFX1NFQ09ORFMiICIkU0xBX1NFQ09ORFMiCjU3OnNjYW4oKXsgbG9jYWwgbm93IHN0YXRlOyBub3c9IiQoZGF0ZSAtdSArJXMpIjsgc3RhdGU9IiQobGF0ZXN0X3N0YXRlKSI7IHN0YXRlX2RlY2lzaW9uICIkc3RhdGUiICIkbm93IjsgfQo1ODptYXJrX2Nsb3VkX3dyaXRlKCl7CjU5OiAgW1sgLXogIiRDTE9VRF9XUklURV9NQVJLRVIiIF1dICYmIHJldHVybiAwCjYwOiAgW1sgIiRDTE9VRF9XUklURV9NQVJLRVIiID09IC8qIF1dIHx8IGRpZSBDTE9VRF9XUklURV9NQVJLRVJfTk9UX0FCU09MVVRFIDY1CjYxOiAgW1sgISAtTCAiJENMT1VEX1dSSVRFX01BUktFUiIgXV0gfHwgZGllIENMT1VEX1dSSVRFX01BUktFUl9TWU1MSU5LIDY1CjYyOiAgcHJpbnRmICclc1xuJyAiJChkYXRlIC11ICslWS0lbS0lZFQlSDolTTolU1opIiA+IiRDTE9VRF9XUklURV9NQVJLRVIiCjYzOiAgY2htb2QgMDYwMCAiJENMT1VEX1dSSVRFX01BUktFUiIKNjY6cHJlcGFyZV9yY2xvbmUoKXsKNjc6ICBsb2NhbCBkc3Q9IiQxIjsgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUgNjYKNjg6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRkc3QiCjcxOiAgbG9jYWwgYmFzZT0iJDEiIG91dD0iJDIiIGNmZz0iJDMiIHN0YXRlPSIkNCIgbGFiZWw9IiQ1IiBtYW5pZmVzdCBwYXJ0IGlkeCBuYW1lIHNpemUgaGFzaCBnb3Rfc2l6ZSBnb3RfaGFzaCBleHBlY3RlZF9tYW5pZmVzdCBleHBlY3RlZF9hcmNoaXZlCjcyOiAgZXhwZWN0ZWRfbWFuaWZlc3Q9IiQoanEgLWVyICcucGFydHNfbWFuaWZlc3Rfc2hhMjU2JyAiJHN0YXRlIikiOyBleHBlY3RlZF9hcmNoaXZlPSIkKGpxIC1lciAnLmFyY2hpdmVfc2hhMjU2JyAiJHN0YXRlIikiCjczOiAgbWFuaWZlc3Q9IiR7b3V0fS5QQVJUUy50c3YiOyA6ID4iJG91dCIKNzQ6ICByY2xvbmUgLS1jb25maWcgIiRjZmciIGNhdCAiJHtiYXNlJS99L1BBUlRTLnRzdiIgPiIkbWFuaWZlc3QiIHx8IGRpZSAiUkVNT1RFXyR7bGFiZWx9X01BTklGRVNUX1JFQURfRkFJTEVEIiA3NAo3NTogIFtbICIkKHNoYTI1NnN1bSAiJG1hbmlmZXN0Inxhd2sgJ3twcmludCAkMX0nKSIgPT0gIiRleHBlY3RlZF9tYW5pZmVzdCIgXV0gfHwgZGllICJSRU1PVEVfJHtsYWJlbH1fTUFOSUZFU1RfU0hBX01JU01BVENIIiA2OAo3ODogICAgW1sgIiRyb3ciID09ICIkKHByaW50ZiAnJTA4ZCcgIiRpZHgiKSIgJiYgIiRuYW1lIiA9PSBwYXJ0LT8/Pz8/Pz8/LmJpbiAmJiAiJHNpemUiID1+IF5bMS05XVswLTldKiQgJiYgIiRoYXNoIiA9fiBeWzAtOWEtZl17NjR9JCBdXSB8fCBkaWUgIlJFTU9URV8ke2xhYmVsfV9NQU5JRkVTVF9ST1dfSU5WQUxJRCIgNjgKNzk6ICAgIHBhcnQ9IiR7b3V0fS5wYXJ0Ijsgcm0gLWYgIiRwYXJ0IjsgcmNsb25lIC0tY29uZmlnICIkY2ZnIiBjYXQgIiR7YmFzZSUvfS9wYXlsb2FkLnBhcnRzLyRuYW1lIiA+IiRwYXJ0IiB8fCBkaWUgIlJFTU9URV8ke2xhYmVsfV9QQVJUX1JFQURfRkFJTEVEIiA3NAo4MTogICAgW1sgIiRnb3Rfc2l6ZSIgPT0gIiRzaXplIiAmJiAiJGdvdF9oYXNoIiA9PSAiJGhhc2giIF1dIHx8IGRpZSAiUkVNT1RFXyR7bGFiZWx9X1BBUlRfVkVSSUZZX0ZBSUxFRCIgNjgKODM6ICBkb25lIDwiJG1hbmlmZXN0Igo4NDogIFtbICIkKHNoYTI1NnN1bSAiJG91dCJ8YXdrICd7cHJpbnQgJDF9JykiID09ICIkZXhwZWN0ZWRfYXJjaGl2ZSIgXV0gfHwgZGllICJSRU1PVEVfJHtsYWJlbH1fQVJDSElWRV9TSEFfTUlTTUFUQ0giIDY4Cjg1OiAgcm0gLWYgIiRtYW5pZmVzdCIKODc6dmVyaWZ5X2dlbmVyYXRpb24oKXsKODg6ICBsb2NhbCBnZW4gc3RhdGUgd29yayBjZmcgYmFzZV9hIGJhc2VfYiBhIGIgdmVyaWZ5X2pzb24gYXJjaGl2ZV9zaGEgdG1wIG5vdwo5MDogIHN0YXRlPSIkU1RBVEVfRElSLyRnZW4uanNvbiIKOTE6ICBbWyAtcyAiJHN0YXRlIiAmJiAhIC1MICIkc3RhdGUiIF1dIHx8IGRpZSBWRVJJRllfU1RBVEVfVU5TQUZFIDY4CjkyOiAgIiRUUkFOU1BPUlQiIHZlcmlmeS1zZWFsZWQgIiRMT0dJQ0FMX0lEIiAiJGdlbiIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIiA+L2Rldi9udWxsCjk0OiAgd29yaz0iJChta3RlbXAgLWQgIiRWRVJJRllfUk9PVC8udmVyaWZ5LlhYWFhYWCIpIjsgY2ZnPSIkd29yay9yY2xvbmUuY29uZiI7IHByZXBhcmVfcmNsb25lICIkY2ZnIgo5NjogIGJhc2VfYT0iJChqcSAtZXIgJy5yZW1vdGVfYV9iYXNlJyAiJHN0YXRlIikiOyBiYXNlX2I9IiQoanEgLWVyICcucmVtb3RlX2JfYmFzZScgIiRzdGF0ZSIpIjsgYT0iJHdvcmsvQS50YXIuZ3oiOyBiPSIkd29yay9CLnRhci5neiIKOTc6ICByZWNvbnN0cnVjdCAiJGJhc2VfYSIgIiRhIiAiJGNmZyIgIiRzdGF0ZSIgQTsgcmVjb25zdHJ1Y3QgIiRiYXNlX2IiICIkYiIgIiRjZmciICIkc3RhdGUiIEIKOTg6ICBjbXAgLXMgIiRhIiAiJGIiIHx8IGRpZSBDTE9VRF9BX0JfUEFZTE9BRF9NSVNNQVRDSCA2OAo5OTogIHZlcmlmeV9qc29uPSIkKCIkQlVJTERFUiIgdmVyaWZ5IC0tYXJjaGl2ZSAiJGEiIC0tZXhwZWN0ZWQtZ2VuZXJhdGlvbiAiJGdlbiIpIiB8fCBkaWUgQ09OVFJPTF9BUkNISVZFX1NFTUFOVElDX1ZFUklGWV9GQUlMRUQgNjgKMTAwOiAganEgLWUgJy5zdGF0dXM9PSJPSyIgYW5kIC5wYXlsb2FkX2NoZWNrc3Vtc192ZXJpZmllZD09dHJ1ZSBhbmQgLmNvbnRyb2xfbWFuaWZlc3RfdmVyaWZpZWQ9PXRydWUgYW5kIC5vcHNfZ2l0X2J1bmRsZV92ZXJpZmllZD09dHJ1ZSBhbmQgLmRlc2lyZWRfZ2l0X2J1bmRsZV92ZXJpZmllZD09dHJ1ZSBhbmQgLnNlY3JldF9lc2Nyb3dfc2VwYXJhdGU9PXRydWUgYW5kIC5jbGVhbl9tYWNoaW5lX2Jvb3RzdHJhcF9wcm92ZW49PWZhbHNlJyA8PDwiJHZlcmlmeV9qc29uIiA+L2Rldi9udWxsIHx8IGRpZSBWRVJJRllfUkVTVUxUX0lOVkFMSUQgNjgKMTAxOiAgYXJjaGl2ZV9zaGE9IiQoanEgLWVyICcuYXJjaGl2ZV9zaGEyNTYnICIkc3RhdGUiKSI7IG1rZGlyIC1wICIkRVZJREVOQ0VfUk9PVCIgL3Zhci9saWIvaG9tZWxhYi1oZWFsdGg7IGNobW9kIDA3MDAgIiRFVklERU5DRV9ST09UIgoxMDM6ICBqcSAtbiAtLWFyZyBnZW4gIiRnZW4iIC0tYXJnIHNoYSAiJGFyY2hpdmVfc2hhIiAtLWFyZyBub3cgIiRub3ciIC0tYXJnanNvbiBydW50aW1lICIkKGpxIC1yICcucnVudGltZV9hc3NldF9jb3VudCcgPDw8IiR2ZXJpZnlfanNvbiIpIiAtLWFyZ2pzb24gc3lzdGVtZCAiJChqcSAtciAnLnN5c3RlbWRfYXNzZXRfY291bnQnIDw8PCIkdmVyaWZ5X2pzb24iKSIgJ3tyZXN1bHQ6Ik9LIixsb2dpY2FsX2lkOiJjb250cm9sLWJvb3RzdHJhcC12MiIsZ2VuZXJhdGlvbjokZ2VuLHJlc3RvcmVfc291cmNlOiJDbG91ZCBBICsgQ2xvdWQgQiIscGF5bG9hZF9zaGEyNTY6JHNoYSxwYXlsb2FkX3NoYTI1Nl92ZXJpZmllZDp0cnVlLGNsb3VkX2Ffc2VtYW50aWNfcmVzdG9yZV92ZXJpZmllZDp0cnVlLGNsb3VkX2JfYnl0ZV9yZWNvbnN0cnVjdGlvbl92ZXJpZmllZDp0cnVlLGNsb3VkX2FfYl9wYXlsb2FkX2VxdWFsOnRydWUsY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZDp0cnVlLHBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkOnRydWUsb3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ6dHJ1ZSxkZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ6dHJ1ZSxydW50aW1lX2Fzc2V0X2NvdW50X3ZlcmlmaWVkOiRydW50aW1lLHN5c3RlbWRfYXNzZXRfY291bnRfdmVyaWZpZWQ6JHN5c3RlbWQsc2VjcmV0X2VzY3Jvd19zZXBhcmF0ZTp0cnVlLGNsZWFuX21hY2hpbmVfYm9vdHN0cmFwX3Byb3ZlbjpmYWxzZSxjb250cm9sX3Njb3BlOiJDT05UUk9MX1BMQU5FX1JFQ09WRVJZIix2ZXJpZmllZF9hdF91dGM6JG5vd30nID4iJHRtcCIKMTA1OiAgdG1wPSIke0hFQUxUSH0ubmV3LiQkIjsganEgLW4gLS1hcmcgZ2VuICIkZ2VuIiAtLWFyZyBzdGF0ZSAiJHN0YXRlIiAtLWFyZyBldmlkZW5jZSAiJEVWSURFTkNFX1JPT1QvJGdlbi5qc29uIiAtLWFyZyBzaGEgIiRhcmNoaXZlX3NoYSIgLS1hcmcgbm93ICIkbm93IiAne3NjaGVtYToiaG9tZWxhYi1jb250cm9sLWJhY2t1cC1oZWFsdGgtdjEiLHN0YXR1czoiT0siLGdlbmVyYXRpb246JGdlbixzdGF0ZV9maWxlOiRzdGF0ZSxyZXN0b3JlX2V2aWRlbmNlOiRldmlkZW5jZSxhcmNoaXZlX3NoYTI1Njokc2hhLGNsb3VkX3F1b3J1bToyLGNvbnRyb2xfZnJlc2huZXNzOiJGUkVTSCIsZnVsbF9zaXRlX2RyX3Byb3ZlbjpmYWxzZSx1cGRhdGVkX2F0X3V0Yzokbm93fScgPiIkdG1wIjsgY2htb2QgMDY0NCAiJHRtcCI7IG12IC1mICIkdG1wIiAiJEhFQUxUSCIKMTA3OiAgcHJpbnRmICdDT05UUk9MX1ZFUklGWT1PSyBHRU5FUkFUSU9OPSVzIEVWSURFTkNFPSVzXG4nICIkZ2VuIiAiJEVWSURFTkNFX1JPT1QvJGdlbi5qc29uIgoxMDk6cnVuX2JhY2t1cCgpewoxMTA6ICBsb2NhbCBmb3JjZT0iJHsxOi0wfSIgZGVjaXNpb24gbGluZSBzdGF0ZSBnZW4gcGF5bG9hZCBvdXRkaXIgbm93CjExMTogIG1rZGlyIC1wICIkU1RBVEVfRElSIiAiJEVWSURFTkNFX1JPT1QiICIkU1RBR0VfUk9PVCIgIiRWRVJJRllfUk9PVCIgL3J1bi9sb2NrOyBjaG1vZCAwNzAwICIkU1RBVEVfUk9PVCIgIiRTVEFURV9ESVIiICIkRVZJREVOQ0VfUk9PVCIgIiRTVEFHRV9ST09UIiAiJFZFUklGWV9ST09UIgoxMTI6ICBleGVjIDk+IiRMT0NLIjsgZmxvY2sgLW4gOSB8fCB7IHByaW50ZiAnQ09OVFJPTF9CQUNLVVBfREVGRVJSRUQ9TE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQoxMTQ6ICBpbmNvbXBsZXRlcz0iJChmaW5kICIkU1RBVEVfRElSIiAtbWF4ZGVwdGggMSAtdHlwZSBmIC1uYW1lICdjb250cm9sLWJvb3RzdHJhcC12Mi1wdmUwMS0/Pz8/Pz8/P1Q/Pz8/Pz9aLmpzb24nIC1wcmludDAgMj4vZGV2L251bGwgfCB4YXJncyAtMCAtciBqcSAtciAnc2VsZWN0KC5zdGF0dXMhPSJTRUFMRUQiKXwuZ2VuZXJhdGlvbicgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjExNTogIFtbICIkKGdyZXAgLWMgLiA8PDwiJGluY29tcGxldGVzIiB8fCB0cnVlKSIgLWxlIDEgXV0gfHwgZGllIE1VTFRJUExFX0lOQ09NUExFVEVfR0VORVJBVElPTlMgNjgKMTE3OiAgZ2VuPSIkKGF3ayAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9eR0VORVJBVElPTj0vKXtzdWIoL15HRU5FUkFUSU9OPS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxMTg6ICBpZiBbWyAiJGRlY2lzaW9uIiA9PSBTS0lQX0ZSRVNIICYmICIkZm9yY2UiICE9IDEgXV07IHRoZW4gcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9SRVNVTFQ9U0tJUF9GUkVTSCBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIjsgcmV0dXJuIDA7IGZpCjExOTogIGlmIFtbICIkZGVjaXNpb24iID09IEJBQ0tVUF9SRVZFUklGWSBdXTsgdGhlbgoxMjA6ICAgIGlmIFtbICIkZm9yY2UiICE9IDEgXV07IHRoZW4gdmVyaWZ5X2dlbmVyYXRpb24gIiRnZW4iOyByZXR1cm4gMDsgZmkKMTIxOiAgICAjIEZvcmNlZCByZWZyZXNoIGRlbGliZXJhdGVseSBjcmVhdGVzIGEgbmV3IGdlbmVyYXRpb24gaW5zdGVhZCBvZiByZXF1aXJpbmcKMTIyOiAgICAjIGEgbGVnYWN5IGdlbmVyYXRpb24gdG8gc2F0aXNmeSB0aGUgY3VycmVudCBidW5kbGUgc2NoZW1hLgoxMjM6ICAgIGRlY2lzaW9uPUJBQ0tVUF9EVUUKMTI1OiAgaWYgW1sgIiRkZWNpc2lvbiIgPT0gQkFDS1VQX1JFU1VNRSBdXTsgdGhlbgoxMjY6ICAgIHN0YXRlPSIkU1RBVEVfRElSLyRnZW4uanNvbiI7IHBheWxvYWQ9IiQoanEgLWVyICcucGF5bG9hZF9wYXRoJyAiJHN0YXRlIikiOyBbWyAtcyAiJHBheWxvYWQiICYmICEgLUwgIiRwYXlsb2FkIiBdXSB8fCBkaWUgSU5DT01QTEVURV9QQVlMT0FEX01JU1NJTkcgNjgKMTI3OiAgICAiJEJVSUxERVIiIHZlcmlmeSAtLWFyY2hpdmUgIiRwYXlsb2FkIiAtLWV4cGVjdGVkLWdlbmVyYXRpb24gIiRnZW4iID4vZGV2L251bGwgfHwgZGllIElOQ09NUExFVEVfUEFZTE9BRF9MT0NBTF9TRU1BTlRJQ19WRVJJRllfRkFJTEVEIDY4CjEyODogICAgbWFya19jbG91ZF93cml0ZQoxMjk6ICAgICIkVFJBTlNQT1JUIiBiYWNrdXAtZGVsZXRlICIkTE9HSUNBTF9JRCIgIiRnZW4iICIkcGF5bG9hZCIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIjsgdmVyaWZ5X2dlbmVyYXRpb24gIiRnZW4iOyBwcmludGYgJ0NPTlRST0xfQkFDS1VQX1JFU1VMVD1TRUFMRURfUkVTVU1FRCBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIjsgcmV0dXJuIDAKMTMxOiAgY2FzZSAiJGRlY2lzaW9uIiBpbiBCQUNLVVBfRFVFfEJBQ0tVUF9TVEFMRXxCQUNLVVBfVU5WRVJJRklFRHxTS0lQX0ZSRVNIKSA7OyAqKSBkaWUgIkRFQ0lTSU9OX0lOVkFMSURfJGRlY2lzaW9uIiA2NTs7IGVzYWMKMTMyOiAgZXhlYyA4PiIkSEVBVllfTE9DSyI7IGZsb2NrIC1uIDggfHwgeyBwcmludGYgJ0NPTlRST0xfQkFDS1VQX0RFRkVSUkVEPUhFQVZZX0xPQ0tfQlVTWVxuJzsgcmV0dXJuIDA7IH0KMTM0OiAgIiRCVUlMREVSIiBidWlsZCAtLWdlbmVyYXRpb24gIiRnZW4iIC0tb3V0cHV0LWRpciAiJG91dGRpciIgPi9kZXYvbnVsbAoxMzY6ICAiJEJVSUxERVIiIHZlcmlmeSAtLWFyY2hpdmUgIiRwYXlsb2FkIiAtLWV4cGVjdGVkLWdlbmVyYXRpb24gIiRnZW4iID4vZGV2L251bGwgfHwgZGllIEJVSUxUX1BBWUxPQURfTE9DQUxfU0VNQU5USUNfVkVSSUZZX0ZBSUxFRCA2OAoxMzg6ICBtYXJrX2Nsb3VkX3dyaXRlCjEzOTogICIkVFJBTlNQT1JUIiBiYWNrdXAtZGVsZXRlICIkTE9HSUNBTF9JRCIgIiRnZW4iICIkcGF5bG9hZCIgIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiIgIiRTVEFURV9ST09UIgoxNDE6ICB2ZXJpZnlfZ2VuZXJhdGlvbiAiJGdlbiIKMTQyOiAgcHJpbnRmICdDT05UUk9MX0JBQ0tVUF9SRVNVTFQ9U0VBTEVEX05FVyBHRU5FUkFUSU9OPSVzXG4nICIkZ2VuIgoxNDU6ICBzY2FuKSBbWyAiJCMiID09IDEgXV0gfHwgZGllIFVTQUdFIDY0OyBzY2FuOzsKMTQ2OiAgcnVuKSBbWyAiJCMiID09IDEgXV0gfHwgZGllIFVTQUdFIDY0OyBydW5fYmFja3VwIDA7OwoxNDc6ICBmb3JjZSkgW1sgIiQjIiA9PSAxIF1dIHx8IGRpZSBVU0FHRSA2NDsgcnVuX2JhY2t1cCAxOzsKMTQ4OiAgdmVyaWZ5KSBbWyAiJCMiID09IDIgXV0gfHwgZGllIFVTQUdFIDY0OyB2ZXJpZnlfZ2VuZXJhdGlvbiAiJDIiOzsKMTQ5OiAgKikgZGllIFVTQUdFX3NjYW5fcnVuX2ZvcmNlX3ZlcmlmeSA2NDs7 +PIPE_28_SCORE=4 +PIPE_28_BASENAME=homelab-rotating-boot-drill +PIPE_28_PATH_SHA256=dbc4c301ef8b70c3af642ace8d03a1442c8eed716579f99c365fd7a7258a7338 +PIPE_28_FILE_SHA256=5817d1c0ceae68df5849210f68c6d9d69a1d468d62dd8fa2cac98942bc7927d4 +PIPE_28_SCHEDULE_TARGET_COUNT=0 +PIPE_28_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_28_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_28_VZDUMP_QEMU_COUNT=1 +PIPE_28_RCLONE_COUNT=8 +PIPE_28_CLOUD_QUORUM_COUNT=1 +PIPE_28_SEAL_WRITTEN_COUNT=0 +PIPE_28_PAYLOAD_PARTS_COUNT=1 +PIPE_28_TRANSPORT_COUNT=0 +PIPE_28_RESTORE_VALIDATION_COUNT=0 +PIPE_28_SCHEDULE_RESULT_COUNT=0 +PIPE_28_RELEVANT_LINE_COUNT=208 +PIPE_28_RELEVANT_B64=MTk6UE9MSUNZX1BBVEggPSBwYXRobGliLlBhdGgob3MuZW52aXJvbi5nZXQoIkhPTUVMQUJfQk9PVF9EUklMTF9QT0xJQ1kiLCIvZXRjL2hvbWVsYWItYmFja3VwL3JvdGF0aW5nLWJvb3QtZHJpbGwuanNvbiIpKQoyMDpTVEFURV9FWFBPUlRFUiA9IHBhdGhsaWIuUGF0aChvcy5lbnZpcm9uLmdldCgiSE9NRUxBQl9CT09UX0RSSUxMX1NUQVRFX0VYUE9SVEVSIiwiL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItcm90YXRpbmctYm9vdC1kcmlsbC1zdGF0ZS1leHBvcnQiKSkKMjE6U1RBVEVfUk9PVCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1kci1yb3RhdGlvbiIpCjIyOlNUQVRFX1BBVEggPSBTVEFURV9ST09UIC8gInN0YXRlLmpzb24iCjIzOlBST09GX1BBVEggPSBTVEFURV9ST09UIC8gImVzY3Jvdy1wcm9vZi5qc29uIgoyNDpFVklERU5DRV9ESVIgPSBTVEFURV9ST09UIC8gImV2aWRlbmNlIgoyNTpIRUFMVEhfUEFUSCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLWJvb3QtZHJpbGwuanNvbiIpCjI3OlJFR0lTVFJZX1BBVEggPSBwYXRobGliLlBhdGgoIi9ldGMvaG9tZWxhYi1iYWNrdXAvdGFyZ2V0cy5qc29uIikKMjg6QVVESVRfUEFUSCA9IHBhdGhsaWIuUGF0aCgiL3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXVuaWZpZWQtYXVkaXQuanNvbiIpCjMwOlJDTE9ORSA9IHBhdGhsaWIuUGF0aCgiL3Vzci9iaW4vcmNsb25lIikKMzI6UU1SRVNUT1JFID0gcGF0aGxpYi5QYXRoKCIvdXNyL3NiaW4vcW1yZXN0b3JlIikKNDA6UUVNVV9BUkNISVZFID0gcmUuY29tcGlsZShyIl52emR1bXAtcWVtdS0oWzAtOV0rKS1bMC05XXs0fV9bMC05XXsyfV9bMC05XXsyfS1bMC05XXsyfV9bMC05XXsyfV9bMC05XXsyfVwudm1hXC56c3QkIikKNDE6TFhDX0FSQ0hJVkUgPSByZS5jb21waWxlKHIiXnZ6ZHVtcC1seGMtKFswLTldKyktWzAtOV17NH1fWzAtOV17Mn1fWzAtOV17Mn0tWzAtOV17Mn1fWzAtOV17Mn1fWzAtOV17Mn1cLnRhclwuenN0JCIpCjQyOkxPQ0tTID0gWwo0MzogICAgIi9ydW4vbG9jay9ob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwubG9jayIsCjQ0OiAgICAiL3J1bi9sb2NrL2hvbWVsYWItYmFja3VwLXJldGVudGlvbi1nYy5sb2NrIiwKNDU6ICAgICIvcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtZGlzcGF0Y2hlci5sb2NrIiwKNDY6ICAgICIvcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jayIsCjQ3OiAgICAiL3J1bi9sb2NrL2hvbWVsYWItYXBwLWNsb3VkLXF1b3J1bS1xdWV1ZS5sb2NrIiwKNDg6ICAgICIvcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2siLAo0OTogICAgIi9ydW4vbG9jay9ob21lbGFiLW1haWxydS10cmFzaC1nYy5sb2NrIiwKODQ6ICAgICAgICBwYXRoLnBhcmVudC5ta2RpcihwYXJlbnRzPVRydWUsbW9kZT0wbzcwMCBpZiBzdHIocGF0aCkuc3RhcnRzd2l0aChzdHIoU1RBVEVfUk9PVCkpIGVsc2UgMG83NTUpCjk2OmRlZiBydW4oYXJndixjaGVjaz1UcnVlLGNhcHR1cmU9VHJ1ZSxpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9Tm9uZSx1bWFza192YWx1ZT1Ob25lKToKMTA1OiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLCoqa3cpCjEwNzogICAgICAgIHJhaXNlIERyaWxsRXJyb3IoIkNPTU1BTkRfVElNRU9VVF8iK3BhdGhsaWIuUGF0aChzdHIoYXJndlswXSkpLm5hbWUudXBwZXIoKSw3MCkKMTA5OiAgICAgICAgcmFpc2UgRHJpbGxFcnJvcigiQ09NTUFORF9NSVNTSU5HXyIrcGF0aGxpYi5QYXRoKHN0cihhcmd2WzBdKSkubmFtZS51cHBlcigpLDY5KQoxMTE6ICAgICAgICBjb2RlPSJDT01NQU5EX0ZBSUxFRF8iK3BhdGhsaWIuUGF0aChzdHIoYXJndlswXSkpLm5hbWUudXBwZXIoKSsiXyIrc3RyKHAucmV0dXJuY29kZSkKMTE4OmRlZiBydW5fdHR5KGFyZ3YsY2hlY2s9VHJ1ZSxjYXB0dXJlPVRydWUsaW5wdXRfYnl0ZXM9Tm9uZSx0aW1lb3V0PU5vbmUsdW1hc2tfdmFsdWU9Tm9uZSk6CjExOTogICAgYXJncz1bc3RyKHgpIGZvciB4IGluIGFyZ3ZdCjIxMTpkZWYgcnVuX3RleHQoYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSk6CjIxMjogICAgcD1ydW4oYXJndixjaGVjaz1jaGVjayxjYXB0dXJlPVRydWUsdGltZW91dD10aW1lb3V0KQoyMTk6ICAgICAgInRhc2tfaWQiOiJiYWNrdXAtcm90YXRpbmctYm9vdC1kcmlsbC1lc2Nyb3ctZnJlc2huZXNzLXYxIiwKMjI4OiAgICAgICJjbG91ZF93cml0ZXNfYWxsb3dlZCI6RmFsc2UsCjIzMzogICAgaWYgcC5nZXQoImluaXRpYWxfcWVtdV92bWlkIikhPSIxODAiIG9yIHAuZ2V0KCJpbml0aWFsX2x4Y192bWlkIikhPSIxMTIiOiBkaWUoIlBPTElDWV9JTklUSUFMX1BBSVJfSU5WQUxJRCIsNjYpCjIzNjogICAgaWYgcC5nZXQoImNsb3VkX3BhaXJfc2VxdWVuY2UiKSE9W3sicWVtdSI6IkIiLCJseGMiOiJBIn0seyJxZW11IjoiQSIsImx4YyI6IkIifV06IGRpZSgiUE9MSUNZX0NMT1VEX1NFUVVFTkNFX0lOVkFMSUQiLDY2KQoyNDY6ICAgIHNlYWw9cGF0aGxpYi5QYXRoKHBbImVzY3Jvd19zZW1hbnRpY19wcm9vZl9zZWFsIl0pCjI0OTogICAgYXNzZXJ0X3JlZ3VsYXJfcm9vdChzZWFsKQoyNTA6ICAgIGlmIHNoYTI1Nl9maWxlKHNlYWwpIT1wWyJlc2Nyb3dfc2VtYW50aWNfcHJvb2Zfc2VhbF9zaGEyNTYiXTogZGllKCJFU0NST1dfUFJPT0ZfU0VBTF9TSEFfRFJJRlQiLDY2KQoyNTE6ICAgIHM9cmVhZF9qc29uKHNlYWwpCjI1MjogICAgaWYgbm90IChzLmdldCgic3RhdHVzIik9PSJTRUFMRUQiIGFuZCBzLmdldCgiZnVsbF9zaXRlX2RyX3Byb3ZlbiIpIGlzIFRydWUgYW5kCjI1NzogICAgICAgICAgICBzLmdldCgicWVtdV9ib290X3Jlc3RvcmVfcHJvdmVuIikgaXMgVHJ1ZSBhbmQgcy5nZXQoImN0X2Jvb3RfcmVzdG9yZV9wcm92ZW4iKSBpcyBUcnVlKToKMjU4OiAgICAgICAgZGllKCJFU0NST1dfUFJPT0ZfU0VBTF9DT05URU5UX0lOVkFMSUQiLDY2KQoyNTk6ICAgIHByb29mX2F0PXBhcnNlX3V0YyhzLmdldCgic2VhbGVkX2F0X3V0YyIpKQoyNjU6ICAgIGlmIG5vdCAoYS5nZXQoImF1ZGl0X3N0YXR1cyIpPT0iT0siIGFuZCBhLmdldCgiYmFja3VwX3N0YXR1cyIpPT0iR1JFRU4iIGFuZAoyNjc6ICAgICAgICAgICAgYS5nZXQoImVzY3Jvd19zdGF0dXMiKT09Ik9LIiBhbmQgYS5nZXQoInFlbXVfYm9vdF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUgYW5kCjI2ODogICAgICAgICAgICBhLmdldCgiY3RfYm9vdF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUgYW5kIGEuZ2V0KCJmdWxsX3NpdGVfZHJfcHJvdmVuIikgaXMgVHJ1ZSk6CjI2OTogICAgICAgIGRpZSgiQ1VSUkVOVF9CQUNLVVBfQVVESVRfTk9UX0RSX1JFQURZIiw3NSkKMjcwOiAgICByZXR1cm4geyJjaXBoZXJ0ZXh0X3NoYV92ZXJpZmllZCI6VHJ1ZSwic2VtYW50aWNfcHJvb2Zfc2VhbF9zaGFfdmVyaWZpZWQiOlRydWUsCjI3MTogICAgICAgICAgICAic2VtYW50aWNfcHJvb2ZfYXRfdXRjIjpzWyJzZWFsZWRfYXRfdXRjIl0sInNlbWFudGljX3Byb29mX2FnZV9kYXlzIjpyb3VuZChhZ2VfZGF5cyw0KSwKMjc3OiAgICBpZiByLmdldCgic2NoZW1hIikhPSJob21lbGFiLWJhY2t1cC10YXJnZXQtcmVnaXN0cnktdjEiOiBkaWUoIlJFR0lTVFJZX0lOVkFMSUQiLDY2KQoyNzk6ICAgIGZvciB4IGluIHIuZ2V0KCJ0YXJnZXRzIixbXSk6CjI4MTogICAgICAgICAgICB2bWlkPXN0cih4LmdldCgiaWQiLCIiKSkKMjgzOiAgICAgICAgICAgIGlmIG5vdCB2bWlkLmlzZGlnaXQoKSBvciBvd25lciBub3QgaW4gKCJwdmUwMSIsInB2ZTAyIiwicHZlMDMiKSBvciB2bWlkIGluIG91dDogZGllKCJSRUdJU1RSWV9WTV9JTlZBTElEIiw2NikKMjg0OiAgICAgICAgICAgIG91dFt2bWlkXT17ImxvZ2ljYWxfaWQiOnguZ2V0KCJsb2dpY2FsX2lkIiksIm93bmVyIjpvd25lcn0KMjg2OiAgICBpZiBub3QgcmVxdWlyZWQuaXNzdWJzZXQob3V0KTogZGllKCJSRUdJU1RSWV9ST1RBVElPTl9UQVJHRVRfTUlTU0lORyIsNjYpCjI5NzpkZWYgbm9kZV9ydW4ob3duZXIsYXJndixjaGVjaz1UcnVlLHRpbWVvdXQ9Tm9uZSxpbnB1dF9ieXRlcz1Ob25lKToKMjk5OiAgICAgICAgcmV0dXJuIHJ1bihhcmd2LGNoZWNrPWNoZWNrLGNhcHR1cmU9VHJ1ZSx0aW1lb3V0PXRpbWVvdXQsaW5wdXRfYnl0ZXM9aW5wdXRfYnl0ZXMpCjMwMjogICAgY21kPXNzaF9iYXNlKHdpdGhfc3RkaW49aW5wdXRfYnl0ZXMgaXMgbm90IE5vbmUpK1tob3N0XStbc3RyKHgpIGZvciB4IGluIGFyZ3ZdCjMwNTpkZWYgZXhwb3J0X3N0YXRlKHAscmVnLHZtaWQsc3RhdGVfZXhwb3J0ZXI9U1RBVEVfRVhQT1JURVIpOgozMDY6ICAgIGl0ZW09cmVnW3ZtaWRdOyBsb2dpY2FsPWl0ZW1bImxvZ2ljYWxfaWQiXTsgb3duZXI9aXRlbVsib3duZXIiXQozMDc6ICAgIGlmIGxvZ2ljYWwhPWYidm17dm1pZH0iOiBkaWUoIlJFR0lTVFJZX0xPR0lDQUxfSU5WQUxJRF8iK3ZtaWQsNjYpCjMwODogICAgYXNzZXJ0X3JlZ3VsYXJfcm9vdChwYXRobGliLlBhdGgoc3RhdGVfZXhwb3J0ZXIpKQozMTA6ICAgICAgICBwcj1ydW4oW1BZVEhPTiwiLUIiLHN0YXRlX2V4cG9ydGVyLHZtaWQsbG9naWNhbF0sdGltZW91dD0zMCkKMzEyOiAgICAgICAgZGF0YT1wYXRobGliLlBhdGgoc3RhdGVfZXhwb3J0ZXIpLnJlYWRfYnl0ZXMoKQozMTM6ICAgICAgICBwcj1ub2RlX3J1bihvd25lcixbUFlUSE9OLCItQiIsIi0iLHZtaWQsbG9naWNhbF0sdGltZW91dD0zMCxpbnB1dF9ieXRlcz1kYXRhKQozMTQ6ICAgIGlmIHByLnJldHVybmNvZGUhPTA6IGRpZSgiU1RBVEVfRVhQT1JUX0ZBSUxFRF8iK3ZtaWQsNjUpCjMxNjogICAgZXhjZXB0IEV4Y2VwdGlvbjogZGllKCJTVEFURV9FWFBPUlRfSlNPTl9JTlZBTElEXyIrdm1pZCw2NikKMzE3OiAgICBpZiBub3QgKG9iai5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi1ib290LWRyaWxsLXN0YXRlLWV4cG9ydC12MSIgYW5kIG9iai5nZXQoInZtaWQiKT09dm1pZCBhbmQKMzE4OiAgICAgICAgICAgIG9iai5nZXQoImxvZ2ljYWxfaWQiKT09bG9naWNhbCBhbmQgb2JqLmdldCgic3RyaWN0X3NlYWxlZF9yZXN0b3JlX3Byb3ZlbiIpIGlzIFRydWUpOgozMTk6ICAgICAgICBkaWUoIlNUQVRFX0VYUE9SVF9DT05URU5UX0lOVkFMSURfIit2bWlkLDY2KQozMjk6ICAgICAgICBpZiAidm1pZCIgaW4geDoKMzMwOiAgICAgICAgICAgIG91dFtzdHIoeFsidm1pZCJdKV09eAozMzM6ZGVmIHFlbXVfYWdlbnRfb2socmVnLHZtaWQpOgozMzQ6ICAgIG93bmVyPXJlZ1t2bWlkXVsib3duZXIiXQozMzU6ICAgIHM9bm9kZV9ydW4ob3duZXIsW1FNLCJzdGF0dXMiLHZtaWRdLGNoZWNrPUZhbHNlLHRpbWVvdXQ9MjApCjMzNzogICAgcD1ub2RlX3J1bihvd25lcixbUU0sImd1ZXN0IiwiY21kIix2bWlkLCJwaW5nIl0sY2hlY2s9RmFsc2UsdGltZW91dD0yMCkKMzQwOmRlZiBseGNfcnVubmluZyhyZWcsdm1pZCk6CjM0MTogICAgb3duZXI9cmVnW3ZtaWRdWyJvd25lciJdCjM0MjogICAgcD1ub2RlX3J1bihvd25lcixbUENULCJzdGF0dXMiLHZtaWRdLGNoZWNrPUZhbHNlLHRpbWVvdXQ9MjApCjM1MDpkZWYgY2hvb3NlX3BhaXIocCxyZWcsbW9kZSxzdGF0ZSk6CjM1MjogICAgICAgIHE9cFsiaW5pdGlhbF9xZW11X3ZtaWQiXTsgbD1wWyJpbml0aWFsX2x4Y192bWlkIl0KMzU4OiAgICBmb3IgeCBpbiByb3RhdGVfYWZ0ZXIocFsicWVtdV9yb3RhdGlvbiJdLHN0YXRlLmdldCgicWVtdV9jdXJzb3IiKSk6CjM2MzogICAgZm9yIHggaW4gcm90YXRlX2FmdGVyKHBbImx4Y19yb3RhdGlvbiJdLHN0YXRlLmdldCgibHhjX2N1cnNvciIpKToKMzY4OmRlZiByY2xvbmVfY2F0KHJlbW90ZSx0aW1lb3V0PTYwKToKMzY5OiAgICBwPXJ1bihbUkNMT05FLCJjYXQiLHJlbW90ZV0sY2hlY2s9RmFsc2UsY2FwdHVyZT1UcnVlLHRpbWVvdXQ9dGltZW91dCkKMzcwOiAgICBpZiBwLnJldHVybmNvZGUhPTA6IGRpZSgiUkNMT05FX0NBVF9GQUlMRUQiLDc0KQozNzM6ZGVmIHZhbGlkYXRlX3JlbW90ZV9tZXRhZGF0YShpbmZvLGNsb3VkKToKMzc0OiAgICBiYXNlPWluZm9bInJlbW90ZV9hX2Jhc2UiXSBpZiBjbG91ZD09IkEiIGVsc2UgaW5mb1sicmVtb3RlX2JfYmFzZSJdCjM3NTogICAgc2VhbF9ieXRlcz1yY2xvbmVfY2F0KGJhc2UucnN0cmlwKCIvIikrIi9zZWFsLmpzb24iLDYwKQozNzY6ICAgIG1hbmlmZXN0X2J5dGVzPXJjbG9uZV9jYXQoYmFzZS5yc3RyaXAoIi8iKSsiL1BBUlRTLnRzdiIsNjApCjM3NzogICAgdHJ5OiBzZWFsPWpzb24ubG9hZHMoc2VhbF9ieXRlcykKMzc4OiAgICBleGNlcHQgRXhjZXB0aW9uOiBkaWUoIlJFTU9URV9TRUFMX0pTT05fSU5WQUxJRF8iK2luZm9bInZtaWQiXSw2NikKMzgwOiAgICAgICJzY2hlbWEiOiJob21lbGFiLWNsb3VkLXF1b3J1bS1zZWFsLXYxIiwic3RhdHVzIjoiU0VBTEVEIiwibG9naWNhbF9pZCI6aW5mb1sibG9naWNhbF9pZCJdLAozODE6ICAgICAgImdlbmVyYXRpb24iOmluZm9bImdlbmVyYXRpb24iXSwiYXJjaGl2ZV9uYW1lIjppbmZvWyJwYXlsb2FkX25hbWUiXSwKMzgzOiAgICAgICJwYXJ0X2NvdW50IjppbmZvWyJwYXJ0X2NvdW50Il0sInBhcnRzX21hbmlmZXN0X3NoYTI1NiI6aW5mb1sicGFydHNfbWFuaWZlc3Rfc2hhMjU2Il0sCjM4NDogICAgICAiY2xvdWRfcXVvcnVtIjoyLCJsb2NhbF9jbGVhbnVwIjoiT0siLCJsb2NhbF9wYXlsb2FkX3ByZXNlbnQiOkZhbHNlCjM4NzogICAgICAgIGlmIHNlYWwuZ2V0KGspIT12OiBkaWUoIlJFTU9URV9TRUFMX01JU01BVENIXyIraW5mb1sidm1pZCJdKyJfIitrLDY2KQozODg6ICAgIGlmIGhhc2hsaWIuc2hhMjU2KG1hbmlmZXN0X2J5dGVzKS5oZXhkaWdlc3QoKSE9aW5mb1sicGFydHNfbWFuaWZlc3Rfc2hhMjU2Il06IGRpZSgiUkVNT1RFX01BTklGRVNUX1NIQV9NSVNNQVRDSF8iK2luZm9bInZtaWQiXSw2NikKMzg5OiAgICByb3dzPXBhcnNlX21hbmlmZXN0KG1hbmlmZXN0X2J5dGVzLGluZm9bInBhcnRfY291bnQiXSxpbmZvWyJhcmNoaXZlX3NpemVfYnl0ZXMiXSkKMzkwOiAgICByZXR1cm4gYmFzZSxyb3dzLG1hbmlmZXN0X2J5dGVzCjM5MjpkZWYgcGFyc2VfbWFuaWZlc3QocmF3LGV4cGVjdGVkX2NvdW50LGV4cGVjdGVkX3RvdGFsKToKMzk2OiAgICBleGNlcHQgRXhjZXB0aW9uOiBkaWUoIk1BTklGRVNUX1RFWFRfSU5WQUxJRCIsNjYpCjM5OTogICAgICAgIGlmIGxlbihmKSE9NDogZGllKCJNQU5JRkVTVF9ST1dfSU5WQUxJRCIsNjYpCjQwMjogICAgICAgIGlmIGlkeCE9ZiJ7aTowOGR9IiBvciBtIGlzIE5vbmUgb3IgbS5ncm91cCgxKSE9aWR4OiBkaWUoIk1BTklGRVNUX0lOREVYX0lOVkFMSUQiLDY2KQo0MDM6ICAgICAgICBpZiBub3Qgc2l6ZV9zLmlzZGlnaXQoKSBvciBpbnQoc2l6ZV9zKTw9MCBvciBpbnQoc2l6ZV9zKT41MzY4NzA5MTI6IGRpZSgiTUFOSUZFU1RfU0laRV9JTlZBTElEIiw2NikKNDA0OiAgICAgICAgaWYgbm90IEhFWDY0LmZ1bGxtYXRjaChwc2hhKTogZGllKCJNQU5JRkVTVF9QQVJUX1NIQV9JTlZBTElEIiw2NikKNDA2OiAgICBpZiBsZW4ocm93cykhPWV4cGVjdGVkX2NvdW50IG9yIHRvdGFsIT1leHBlY3RlZF90b3RhbDogZGllKCJNQU5JRkVTVF9UT1RBTF9JTlZBTElEIiw2NikKNDE5OiAgICBmcmVlPXNodXRpbC5kaXNrX3VzYWdlKHBbInN0YWdlX3Jvb3QiXSkuZnJlZSBpZiBwYXRobGliLlBhdGgocFsic3RhZ2Vfcm9vdCJdKS5leGlzdHMoKSBlbHNlIHNodXRpbC5kaXNrX3VzYWdlKCIvbW50L3N0YWdpbmciKS5mcmVlCjQyODpkZWYgcHJlY2hlY2socCxzdGF0ZV9leHBvcnRlcj1TVEFURV9FWFBPUlRFUixtb2RlPSJpbml0aWFsIik6CjQyOTogICAgZXNjPXZlcmlmeV9lc2Nyb3cocCk7IHJlZz1yZWdpc3RyeShwKTsgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNDMwOiAgICBxLGwsc2tpcHBlZD1jaG9vc2VfcGFpcihwLHJlZyxtb2RlLHN0YXRlKQo0MzE6ICAgIHFpPWV4cG9ydF9zdGF0ZShwLHJlZyxxLHN0YXRlX2V4cG9ydGVyKTsgbGk9ZXhwb3J0X3N0YXRlKHAscmVnLGwsc3RhdGVfZXhwb3J0ZXIpCjQzMjogICAgcGFpcj1wWyJjbG91ZF9wYWlyX3NlcXVlbmNlIl1bc3RhdGUuZ2V0KCJzZXF1ZW5jZSIsMCklbGVuKHBbImNsb3VkX3BhaXJfc2VxdWVuY2UiXSldCjQzMzogICAgcWIscXIsXz12YWxpZGF0ZV9yZW1vdGVfbWV0YWRhdGEocWkscGFpclsicWVtdSJdKQo0MzQ6ICAgIGxiLGxyLF89dmFsaWRhdGVfcmVtb3RlX21ldGFkYXRhKGxpLHBhaXJbImx4YyJdKQo0MzY6ICAgIHJldHVybiB7InFlbXVfdm1pZCI6cSwibHhjX3ZtaWQiOmwsInFlbXVfY2xvdWQiOnBhaXJbInFlbXUiXSwibHhjX2Nsb3VkIjpwYWlyWyJseGMiXSwKNDM3OiAgICAgICAgICAgICJxZW11X2dlbmVyYXRpb24iOnFpWyJnZW5lcmF0aW9uIl0sImx4Y19nZW5lcmF0aW9uIjpsaVsiZ2VuZXJhdGlvbiJdLAo0NDI6ZGVmIGxvYWRfc3RhdGVfZGVmYXVsdCgpOgo0NDM6ICAgIGlmIG5vdCBTVEFURV9QQVRILmV4aXN0cygpOgo0NDQ6ICAgICAgICByZXR1cm4geyJzY2hlbWEiOiJob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwtc3RhdGUtdjEiLCJzZXF1ZW5jZSI6MCwicWVtdV9jdXJzb3IiOk5vbmUsImx4Y19jdXJzb3IiOk5vbmUsImxhc3Rfc3VjY2Vzc191dGMiOk5vbmUsImxhc3RfZXZpZGVuY2UiOk5vbmV9CjQ0NTogICAgcz1yZWFkX2pzb24oU1RBVEVfUEFUSCkKNDQ2OiAgICBpZiBzLmdldCgic2NoZW1hIikhPSJob21lbGFiLXJvdGF0aW5nLWJvb3QtZHJpbGwtc3RhdGUtdjEiIG9yIG5vdCBpc2luc3RhbmNlKHMuZ2V0KCJzZXF1ZW5jZSIpLGludCkgb3Igc1sic2VxdWVuY2UiXTwwOgo0NDc6ICAgICAgICBkaWUoIlJPVEFUSU9OX1NUQVRFX0lOVkFMSUQiLDY2KQo0NTA6Y2xhc3MgTG9ja3M6CjQ1OTogICAgICAgICAgICAgICAgZm9yIHggaW4gTE9DS1M6CjQ2MzogICAgICAgICAgICAgICAgICAgICAgICBmY250bC5mbG9jayhmLmZpbGVubygpLGZjbnRsLkxPQ0tfRVh8ZmNudGwuTE9DS19OQikKNDY0OiAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJsb2NraW5nSU9FcnJvcjoKNDcyOiAgICAgICAgICAgICAgICAgICAgICAgIHRyeTogZmNudGwuZmxvY2soZi5maWxlbm8oKSxmY250bC5MT0NLX1VOKTsgZi5jbG9zZSgpCjQ3NDogICAgICAgICAgICBpZiB0aW1lLnRpbWUoKT49ZGVhZGxpbmU6IHJhaXNlIERyaWxsRXJyb3IoIkJBQ0tVUF9MT0NLX0JVU1kiLDc1KQo0Nzg6ICAgICAgICAgICAgdHJ5OiBmY250bC5mbG9jayhmLmZpbGVubygpLGZjbnRsLkxPQ0tfVU4pOyBmLmNsb3NlKCkKNDkxOmRlZiBjb25maWdfcGF0aChraW5kLHZtaWQpOgo0OTI6ICAgIHJldHVybiBwYXRobGliLlBhdGgoIi9ldGMvcHZlL3FlbXUtc2VydmVyIiBpZiBraW5kPT0icWVtdSIgZWxzZSAiL2V0Yy9wdmUvbHhjIikvZiJ7dm1pZH0uY29uZiIKNDk0OmRlZiBjbGVhbnVwX29uZShraW5kLHZtaWQsY3JlYXRlZF9lcG9jaCk6CjQ5NTogICAgcD1jb25maWdfcGF0aChraW5kLHZtaWQpCjQ5OTogICAgICAgIGlmIHN0LnN0X2N0aW1lKzUgPCBjcmVhdGVkX2Vwb2NoOiBkaWUoIlRFTVBfQ09ORklHX1BSRURBVEVTX0FDVElWRV9NQVJLRVJfIitzdHIodm1pZCksNjYpCjUwOTogICAgICAgIGxvY2tfbWF0Y2g9cmUuc2VhcmNoKHIiKD9tKV5sb2NrOlxzKihcUyspXHMqJCIsdHh0KQo1MTA6ICAgICAgICBpZiBsb2NrX21hdGNoOgo1MTE6ICAgICAgICAgICAgbG9ja19uYW1lPWxvY2tfbWF0Y2guZ3JvdXAoMSkKNTEyOiAgICAgICAgICAgIGlmIGxvY2tfbmFtZT09ImNyZWF0ZSI6CjUxMzogICAgICAgICAgICAgICAgdT1ydW5fdHR5KFtjbWQsInVubG9jayIsc3RyKHZtaWQpXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTMwKQo1MTU6ICAgICAgICAgICAgICAgICAgICBwcmludChmIlRFTVBfVU5MT0NLX0VSUk9SfGtpbmQ9e2tpbmR9fHZtaWQ9e3ZtaWR9fGxvY2s9Y3JlYXRlfHJjPXt1LnJldHVybmNvZGV9IixmaWxlPXN5cy5zdGRlcnIpCjUxODogICAgICAgICAgICAgICAgICAgICAgICBhZnRlcl91bmxvY2s9cC5yZWFkX3RleHQoZXJyb3JzPSJyZXBsYWNlIikKNTIwOiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyX3VubG9jaz0iIgo1MjE6ICAgICAgICAgICAgICAgICAgICBpZiByZS5zZWFyY2gociIoP20pXmxvY2s6XHMqY3JlYXRlXHMqJCIsYWZ0ZXJfdW5sb2NrKToKNTI1OiAgICAgICAgICAgICAgICBwcmludChmIlRFTVBfQ0xFQU5VUF9MT0NLX0JMT0NLRUR8a2luZD17a2luZH18dm1pZD17dm1pZH18bG9jaz17bG9ja19uYW1lfSIsZmlsZT1zeXMuc3RkZXJyKQo1Mjc6ICAgICAgICBzdGF0dXM9cnVuKFtjbWQsInN0YXR1cyIsc3RyKHZtaWQpXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTIwKQo1Mjk6ICAgICAgICAgICAgc3RvcF9hcmd2PVtjbWQsInN0b3AiLHN0cih2bWlkKV0KNTMwOiAgICAgICAgICAgIGlmIGtpbmQ9PSJxZW11Ijogc3RvcF9hcmd2Kz1bIi0tc2tpcGxvY2siLCIxIl0KNTMxOiAgICAgICAgICAgIHJ1bl90dHkoc3RvcF9hcmd2LGNoZWNrPUZhbHNlLHRpbWVvdXQ9OTApCjUzMjogICAgICAgIGRlc3Ryb3lfYXJndj1bY21kLCJkZXN0cm95IixzdHIodm1pZCksIi0tcHVyZ2UiLCIxIl0KNTMzOiAgICAgICAgaWYga2luZD09InFlbXUiOiBkZXN0cm95X2FyZ3YrPVsiLS1kZXN0cm95LXVucmVmZXJlbmNlZC1kaXNrcyIsIjEiLCItLXNraXBsb2NrIiwiMSJdCjUzNDogICAgICAgIGRlc3Ryb3llZD1ydW5fdHR5KGRlc3Ryb3lfYXJndixjaGVjaz1GYWxzZSx0aW1lb3V0PTE4MCkKNTM3OiAgICAgICAgICAgIHByaW50KGYiVEVNUF9ERVNUUk9ZX0VSUk9SfGtpbmQ9e2tpbmR9fHZtaWQ9e3ZtaWR9fHJjPXtkZXN0cm95ZWQucmV0dXJuY29kZX18ZGV0YWlsPXtkZXRhaWx9IixmaWxlPXN5cy5zdGRlcnIpCjU2MzpkZWYgZmV0Y2hfYXJjaGl2ZShpbmZvLGNsb3VkLHdvcmspOgo1NjQ6ICAgIGJhc2Uscm93cyxtYW5pZmVzdD12YWxpZGF0ZV9yZW1vdGVfbWV0YWRhdGEoaW5mbyxjbG91ZCkKNTY2OiAgICBpZiBub3QgKFFFTVVfQVJDSElWRS5mdWxsbWF0Y2gobmFtZSkgb3IgTFhDX0FSQ0hJVkUuZnVsbG1hdGNoKG5hbWUpKTogZGllKCJBUkNISVZFX05BTUVfSU5WQUxJRF8iK2luZm9bInZtaWQiXSw2NikKNTc0OiAgICAgICAgICAgICAgICAgICAgcHJvYz1zdWJwcm9jZXNzLnJ1bihbc3RyKFJDTE9ORSksImNhdCIsYmFzZS5yc3RyaXAoIi8iKSsiL3BheWxvYWQucGFydHMvIitwbmFtZV0sc3Rkb3V0PXBmLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD05MDApCjU3NjogICAgICAgICAgICAgICAgICAgIGRpZSgiUEFSVF9SRUFEX1RJTUVPVVRfIitpbmZvWyJ2bWlkIl0rIl8iK2lkeCw3NCkKNTc3OiAgICAgICAgICAgIGlmIHByb2MucmV0dXJuY29kZSE9MDogZGllKCJQQVJUX1JFQURfRkFJTEVEXyIraW5mb1sidm1pZCJdKyJfIitpZHgsNzQpCjU3ODogICAgICAgICAgICBpZiBwYXJ0LnN0YXQoKS5zdF9zaXplIT1zaXplIG9yIHNoYTI1Nl9maWxlKHBhcnQpIT1wc2hhOiBkaWUoIlBBUlRfVkVSSUZZX0ZBSUxFRF8iK2luZm9bInZtaWQiXSsiXyIraWR4LDcwKQo1ODM6ICAgIGlmIHRvdGFsIT1pbmZvWyJhcmNoaXZlX3NpemVfYnl0ZXMiXSBvciBoLmhleGRpZ2VzdCgpIT1pbmZvWyJhcmNoaXZlX3NoYTI1NiJdOiBkaWUoIkFSQ0hJVkVfVkVSSUZZX0ZBSUxFRF8iK2luZm9bInZtaWQiXSw3MCkKNTg2OiAgICAjIHN1YnNlcXVlbnQgcW1yZXN0b3JlL3BjdCByZXN0b3JlIGlzIHRoZSBhdXRob3JpdGF0aXZlIFByb3htb3ggc3RydWN0dXJhbCBwcm9vZi4KNjE5OiAgICBwcj1ydW5fdHR5KFtRTVJFU1RPUkUsYXJjaGl2ZSxzdHIodGVtcGlkKSwiLS1zdG9yYWdlIiwibG9jYWwtbHZtIiwiLS11bmlxdWUiLCIxIl0sY2hlY2s9RmFsc2UsdGltZW91dD0xODAwKQo2MjI6ICAgICAgICBwcmludChmIlFNUkVTVE9SRV9FUlJPUnx2bWlkPXt0ZW1waWR9fHJjPXtwci5yZXR1cm5jb2RlfXxzdGRlcnJfc2hhMjU2PXtoYXNobGliLnNoYTI1NihlcnIpLmhleGRpZ2VzdCgpfXxzdGRlcnJfYnl0ZXM9e2xlbihlcnIpfSIsZmlsZT1zeXMuc3RkZXJyKQo2MjM6ICAgICAgICBkaWUoIlFNUkVTVE9SRV9GQUlMRURfIitzdHIocHIucmV0dXJuY29kZSksNzApCjYzNDogICAgcHI9cnVuX3R0eShbUENULCJyZXN0b3JlIixzdHIodGVtcGlkKSxhcmNoaXZlLCItLXN0b3JhZ2UiLCJsb2NhbC1sdm0iXSxjaGVjaz1GYWxzZSx0aW1lb3V0PTE4MDAsdW1hc2tfdmFsdWU9MG8wMjIpCjYzNzogICAgICAgIHByaW50KGYiUENUX1JFU1RPUkVfRVJST1J8dm1pZD17dGVtcGlkfXxyYz17cHIucmV0dXJuY29kZX18c3RkZXJyX3NoYTI1Nj17aGFzaGxpYi5zaGEyNTYoZXJyKS5oZXhkaWdlc3QoKX18c3RkZXJyX2J5dGVzPXtsZW4oZXJyKX0iLGZpbGU9c3lzLnN0ZGVycikKNjM4OiAgICAgICAgZGllKCJQQ1RfUkVTVE9SRV9GQUlMRURfIitzdHIocHIucmV0dXJuY29kZSksNzApCjY0OTogICAgb2JqPXsic2NoZW1hIjoiaG9tZWxhYi1iYWNrdXAtYm9vdC1kcmlsbC1oZWFsdGgtdjEiLCJzdGF0dXMiOiJERUZFUlJFRCIsInJlYXNvbiI6Y29kZSwidXBkYXRlZF9hdF91dGMiOmlzb19ub3coKSwiZHJpbGxfZXhlY3V0ZWQiOkZhbHNlfQo2NTE6ICAgIHByaW50KGYiQk9PVF9EUklMTF9TQ0hFRFVMRUQ9REVGRVJSRUR8cmVhc29uPXtjb2RlfSIpCjY2ODogICAgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNjY5OiAgICB3aXRoIExvY2tzKGludChwWyJpbml0aWFsX2xvY2tfd2FpdF9zZWNvbmRzIl0pKToKNjcxOiAgICAgICAgcSxsLHNraXBwZWQ9Y2hvb3NlX3BhaXIocCxyZWcsImluaXRpYWwiLHN0YXRlKQo2NzI6ICAgICAgICBxaW5mbz1leHBvcnRfc3RhdGUocCxyZWcscSk7IGxpbmZvPWV4cG9ydF9zdGF0ZShwLHJlZyxsKQo2NzM6ICAgICAgICBwYWlyPXBbImNsb3VkX3BhaXJfc2VxdWVuY2UiXVtzdGF0ZVsic2VxdWVuY2UiXSVsZW4ocFsiY2xvdWRfcGFpcl9zZXF1ZW5jZSJdKV0KNjgxOiAgICAgICAgICAgIHByaW50KGYiQk9PVF9EUklMTF9BUkNISVZFX1BST0JFPU9LfHFlbXU9e3F9fHFlbXVfY2xvdWQ9e3BhaXJbJ3FlbXUnXX18cWVtdV9uYW1lPXtxYS5uYW1lfXxseGM9e2x9fGx4Y19jbG91ZD17cGFpclsnbHhjJ119fGx4Y19uYW1lPXtsYS5uYW1lfXxhcmNoaXZlX2ludGVncml0eT1TSEFfQU5EX1pTVERfUFJPVkVOfGNsb3VkX3dyaXRlcz1OTyIpCjY4NzogICAgc3RhdGU9bG9hZF9zdGF0ZV9kZWZhdWx0KCkKNjg4OiAgICB3YWl0PWludChwWyJpbml0aWFsX2xvY2tfd2FpdF9zZWNvbmRzIl0gaWYgbW9kZT09ImluaXRpYWwiIGVsc2UgcFsic2NoZWR1bGVkX2xvY2tfd2FpdF9zZWNvbmRzIl0pCjY5MDogICAgICAgIHdpdGggTG9ja3Mod2FpdCk6CjY5MjogICAgICAgICAgICBxLGwsc2tpcHBlZD1jaG9vc2VfcGFpcihwLHJlZyxtb2RlLHN0YXRlKQo2OTM6ICAgICAgICAgICAgcWluZm89ZXhwb3J0X3N0YXRlKHAscmVnLHEpOyBsaW5mbz1leHBvcnRfc3RhdGUocCxyZWcsbCkKNjk0OiAgICAgICAgICAgIHBhaXI9cFsiY2xvdWRfcGFpcl9zZXF1ZW5jZSJdW3N0YXRlWyJzZXF1ZW5jZSJdJWxlbihwWyJjbG91ZF9wYWlyX3NlcXVlbmNlIl0pXQo3MTY6ICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJQUk9EVUNUSU9OX0dVRVNUX1NUQVRFX0NIQU5HRURfIitzcmMsNzApCjcxOTogICAgICAgICAgICAgICAgICAic2VxdWVuY2UiOnN0YXRlWyJzZXF1ZW5jZSJdKzEsImNvbXBsZXRlZF9hdF91dGMiOmlzb19ub3coKSwKNzIxOiAgICAgICAgICAgICAgICAgICJxZW11Ijp7InNvdXJjZV92bWlkIjpxLCJvd25lciI6cmVnW3FdWyJvd25lciJdLCJnZW5lcmF0aW9uIjpxaW5mb1siZ2VuZXJhdGlvbiJdLCJhcmNoaXZlX25hbWUiOnFpbmZvWyJwYXlsb2FkX25hbWUiXSwKNzIyOiAgICAgICAgICAgICAgICAgICAgICAgICAgImFyY2hpdmVfc2hhMjU2IjpxaW5mb1siYXJjaGl2ZV9zaGEyNTYiXSwiY2xvdWRfc291cmNlIjpwYWlyWyJxZW11Il0sInRlbXBfdm1pZCI6cWlkLAo3MjQ6ICAgICAgICAgICAgICAgICAgImx4YyI6eyJzb3VyY2Vfdm1pZCI6bCwib3duZXIiOnJlZ1tsXVsib3duZXIiXSwiZ2VuZXJhdGlvbiI6bGluZm9bImdlbmVyYXRpb24iXSwiYXJjaGl2ZV9uYW1lIjpsaW5mb1sicGF5bG9hZF9uYW1lIl0sCjcyNTogICAgICAgICAgICAgICAgICAgICAgICAgImFyY2hpdmVfc2hhMjU2IjpsaW5mb1siYXJjaGl2ZV9zaGEyNTYiXSwiY2xvdWRfc291cmNlIjpwYWlyWyJseGMiXSwidGVtcF92bWlkIjpsaWQsCjcyNzogICAgICAgICAgICAgICAgICAicWVtdV9za2lwcGVkX2luZWxpZ2libGUiOnNraXBwZWQsImNsb3VkX3dyaXRlcyI6RmFsc2UsImNsb3VkX2RlbGV0ZXMiOkZhbHNlLAo3Mjg6ICAgICAgICAgICAgICAgICAgInByb2R1Y3Rpb25fZ3Vlc3Rfc3RhdGVfdW5jaGFuZ2VkIjpUcnVlLCJ0ZW1wb3JhcnlfZ3Vlc3RfcmVzaWR1ZSI6RmFsc2UKNzMzOiAgICAgICAgICAgICAgICBuZXdzdGF0ZT17InNjaGVtYSI6ImhvbWVsYWItcm90YXRpbmctYm9vdC1kcmlsbC1zdGF0ZS12MSIsInNlcXVlbmNlIjpzdGF0ZVsic2VxdWVuY2UiXSsxLAo3MzY6ICAgICAgICAgICAgICAgIGF0b21pY19qc29uKFNUQVRFX1BBVEgsbmV3c3RhdGUsMG82MDApCjczNzogICAgICAgICAgICAgICAgaGVhbHRoPXsic2NoZW1hIjoiaG9tZWxhYi1iYWNrdXAtYm9vdC1kcmlsbC1oZWFsdGgtdjEiLCJzdGF0dXMiOiJPSyIsInVwZGF0ZWRfYXRfdXRjIjpldmlkZW5jZVsiY29tcGxldGVkX2F0X3V0YyJdLAo3Mzg6ICAgICAgICAgICAgICAgICAgICAgICAgImRyaWxsX2V4ZWN1dGVkIjpUcnVlLCJzZXF1ZW5jZSI6bmV3c3RhdGVbInNlcXVlbmNlIl0sInFlbXVfdm1pZCI6cSwibHhjX3ZtaWQiOmwsCjc0MjogICAgICAgICAgICAgICAgcHJpbnQoZiJCT09UX0RSSUxMX0VYRUNVVEU9T0t8c2VxdWVuY2U9e25ld3N0YXRlWydzZXF1ZW5jZSddfXxxZW11PXtxfXxxZW11X2Nsb3VkPXtwYWlyWydxZW11J119fGx4Yz17bH18bHhjX2Nsb3VkPXtwYWlyWydseGMnXX18ZXNjcm93PUZSRVNIfHRlbXBfcmVzaWR1ZT1OT3xjbG91ZF93cml0ZXM9Tk8iKQo3NDk6ICAgICAgICBpZiBtb2RlPT0ic2NoZWR1bGVkIiBhbmQgZS5jb2RlIGluICgiQkFDS1VQX0xPQ0tfQlVTWSIsIkVTQ1JPV19TRU1BTlRJQ19QUk9PRl9TVEFMRSIsIkNVUlJFTlRfQkFDS1VQX0FVRElUX05PVF9EUl9SRUFEWSIsIk5PX1FFTVVfR1VFU1RfQUdFTlRfRUxJR0lCTEUiLCJOT19MWENfUlVOTklOR19FTElHSUJMRSIsIlNUQUdFX0NBUEFDSVRZX0lOU1VGRklDSUVOVCIsIkxPQ0FMX0xWTV9DQVBBQ0lUWV9JTlNVRkZJQ0lFTlQiKToKNzU1OiAgICBzPWxvYWRfc3RhdGVfZGVmYXVsdCgpCjc1NjogICAgaWYgcy5nZXQoInNlcXVlbmNlIiwwKTwxIG9yIG5vdCBzLmdldCgibGFzdF9ldmlkZW5jZSIpIG9yIG5vdCBIRVg2NC5mdWxsbWF0Y2goc3RyKHMuZ2V0KCJsYXN0X2V2aWRlbmNlX3NoYTI1NiIsIiIpKSk6IGRpZSgiTEFTVF9TVEFURV9JTlZBTElEIiw2NikKNzY3OiAgICAgICAgICAgIGUuZ2V0KCJjbG91ZF93cml0ZXMiKSBpcyBGYWxzZSBhbmQgZS5nZXQoImNsb3VkX2RlbGV0ZXMiKSBpcyBGYWxzZSBhbmQKNzY4OiAgICAgICAgICAgIGUuZ2V0KCJwcm9kdWN0aW9uX2d1ZXN0X3N0YXRlX3VuY2hhbmdlZCIpIGlzIFRydWUgYW5kIGUuZ2V0KCJ0ZW1wb3JhcnlfZ3Vlc3RfcmVzaWR1ZSIpIGlzIEZhbHNlKToKNzcyOiAgICBxaWQ9c3RyKGVbInFlbXUiXVsidGVtcF92bWlkIl0pOyBsaWQ9c3RyKGVbImx4YyJdWyJ0ZW1wX3ZtaWQiXSkKNzc1OiAgICBpZiBub3QgKGguZ2V0KCJzY2hlbWEiKT09ImhvbWVsYWItYmFja3VwLWJvb3QtZHJpbGwtaGVhbHRoLXYxIiBhbmQgaC5nZXQoInN0YXR1cyIpPT0iT0siIGFuZCBoLmdldCgibGFzdF9ldmlkZW5jZV9zaGEyNTYiKT09c1sibGFzdF9ldmlkZW5jZV9zaGEyNTYiXSk6Cjc4NDogICAgYWN0aW9uPXN5cy5hcmd2WzFdIGlmIGxlbihzeXMuYXJndik+MSBlbHNlICIiCjc4NzogICAgICAgIHg9cHJlY2hlY2socCxTVEFURV9FWFBPUlRFUiwiaW5pdGlhbCIpCjc4ODogICAgICAgIHByaW50KGYiQk9PVF9EUklMTF9QUkVDSEVDSz1PS3xxZW11PXt4WydxZW11X3ZtaWQnXX18cWVtdV9jbG91ZD17eFsncWVtdV9jbG91ZCddfXxseGM9e3hbJ2x4Y192bWlkJ119fGx4Y19jbG91ZD17eFsnbHhjX2Nsb3VkJ119fHFlbXVfYnl0ZXM9e3hbJ3FlbXVfYXJjaGl2ZV9ieXRlcyddfXxseGNfYnl0ZXM9e3hbJ2x4Y19hcmNoaXZlX2J5dGVzJ119fGVzY3Jvd19hZ2VfZGF5cz17eFsnZXNjcm93J11bJ3NlbWFudGljX3Byb29mX2FnZV9kYXlzJ119fGNsb3VkX3dyaXRlcz1OTyIpCjc5MzogICAgZWxpZiBhY3Rpb249PSJzY2hlZHVsZWQiOgo3OTQ6ICAgICAgICBleGVjdXRlKCJzY2hlZHVsZWQiLHApCjgwMDogICAgICAgIGRpZSgiVVNBR0UiLDY0KQ== +PIPE_29_SCORE=4 +PIPE_29_BASENAME=homelab-rotating-boot-drill-state-export +PIPE_29_PATH_SHA256=14f9bcc4ba85669ed3f1dbb536101e773c19a63dbb9552beb91a423b48ebdb6f +PIPE_29_FILE_SHA256=59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc +PIPE_29_SCHEDULE_TARGET_COUNT=0 +PIPE_29_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_29_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_29_VZDUMP_QEMU_COUNT=1 +PIPE_29_RCLONE_COUNT=0 +PIPE_29_CLOUD_QUORUM_COUNT=1 +PIPE_29_SEAL_WRITTEN_COUNT=1 +PIPE_29_PAYLOAD_PARTS_COUNT=0 +PIPE_29_TRANSPORT_COUNT=2 +PIPE_29_RESTORE_VALIDATION_COUNT=0 +PIPE_29_SCHEDULE_RESULT_COUNT=0 +PIPE_29_RELEVANT_LINE_COUNT=41 +PIPE_29_RELEVANT_B64=NzpTVEFURV9ST09UID0gcGF0aGxpYi5QYXRoKCIvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0iKQo4OkVWSURFTkNFX1JPT1QgPSBwYXRobGliLlBhdGgoIi92YXIvbGliL2hvbWVsYWItYmFja3VwL3ZtLXJlc3RvcmUtdmFsaWRhdGlvbiIpCjEzOiAgICBwcmludChmIlNUQVRFX0VYUE9SVF9FUlJPUj17Y29kZX0iLCBmaWxlPXN5cy5zdGRlcnIpCjIyOmRlZiBzdHJpY3Rfc3RhdGUodm1pZCwgbG9naWNhbCwgcCwgb2JqKToKMjM6ICAgIGlmIG9iai5nZXQoInNjaGVtYSIpICE9ICJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIjogcmV0dXJuIEZhbHNlCjI0OiAgICBpZiBvYmouZ2V0KCJsb2dpY2FsX2lkIikgIT0gbG9naWNhbCBvciBvYmouZ2V0KCJzdGF0dXMiKSAhPSAiU0VBTEVEIjogcmV0dXJuIEZhbHNlCjI1OiAgICBpZiBvYmouZ2V0KCJjbG91ZF9xdW9ydW0iKSAhPSAyOiByZXR1cm4gRmFsc2UKMjY6ICAgIGZvciBrIGluICgiY2xvdWRfYV92ZXJpZmllZCIsImNsb3VkX2JfdmVyaWZpZWQiLCJwYXJ0X2hhc2hlc192ZXJpZmllZCIsInNlYWxfd3JpdHRlbiIsImNsb3VkX2Ffc2VhbF92ZXJpZmllZCIsImNsb3VkX2Jfc2VhbF92ZXJpZmllZCIpOgoyOTogICAgZ2VuPW9iai5nZXQoImdlbmVyYXRpb24iKQozMDogICAgaWYgbm90IGlzaW5zdGFuY2UoZ2VuLHN0cikgb3Igbm90IEdFTl9SRS5mdWxsbWF0Y2goZ2VuKSBvciBub3QgZ2VuLnN0YXJ0c3dpdGgoZiJ2bXt2bWlkfS0iKTogcmV0dXJuIEZhbHNlCjM0OiAgICBpZiBub3QgaXNpbnN0YW5jZShvYmouZ2V0KCJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiKSxzdHIpIG9yIG5vdCBIRVg2NC5mdWxsbWF0Y2gob2JqWyJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiXSk6IHJldHVybiBGYWxzZQozNzogICAgaWYgbm90IChyZS5mdWxsbWF0Y2gocmYidnpkdW1wLXFlbXUte3ZtaWR9LVswLTlde3s0fX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19LVswLTlde3syfX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19XC52bWFcLnpzdCIsbmFtZSkgb3IKMzg6ICAgICAgICAgICAgcmUuZnVsbG1hdGNoKHJmInZ6ZHVtcC1seGMte3ZtaWR9LVswLTlde3s0fX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19LVswLTlde3syfX1fWzAtOV17ezJ9fV9bMC05XXt7Mn19XC50YXJcLnpzdCIsbmFtZSkpOgo0MDogICAgZXhwZWN0X2E9ZiJwdmUwMS1tYWlsLTAxLWNyeXB0OmhvbWVsYWItYmFja3Vwcy97bG9naWNhbH0ve2dlbn0iCjQxOiAgICBleHBlY3RfYj1mInB2ZTAxLW1haWwtMDItY3J5cHQ6aG9tZWxhYi1iYWNrdXBzL3tsb2dpY2FsfS97Z2VufSIKNDI6ICAgIGlmIG9iai5nZXQoInJlbW90ZV9hX2Jhc2UiKSAhPSBleHBlY3RfYSBvciBvYmouZ2V0KCJyZW1vdGVfYl9iYXNlIikgIT0gZXhwZWN0X2I6IHJldHVybiBGYWxzZQo0NTpkZWYgZXZpZGVuY2Vfb2sodm1pZCwgbG9naWNhbCwgc3RhdGVfcGF0aCwgb2JqKToKNDY6ICAgIGdlbj1vYmpbImdlbmVyYXRpb24iXQo0NzogICAgcD1FVklERU5DRV9ST09UL2Yidm17dm1pZH0iL2Yie2dlbn0uanNvbiIKNTE6ICAgICAgZS5nZXQoInNjaGVtYSIpPT0iaG9tZWxhYi12bS1yZXN0b3JlLXZhbGlkYXRpb24tdjEiIGFuZCBlLmdldCgibG9naWNhbF9pZCIpPT1sb2dpY2FsIGFuZAo1MjogICAgICBlLmdldCgiZ2VuZXJhdGlvbiIpPT1nZW4gYW5kIGUuZ2V0KCJ0cmFuc3BvcnRfc3RhdGUiKT09IlNFQUxFRCIgYW5kCjUzOiAgICAgIGUuZ2V0KCJ0cmFuc3BvcnRfc3RhdGVfZmlsZSIpPT1zdHIoc3RhdGVfcGF0aCkgYW5kIGUuZ2V0KCJyZXN0b3JlX3NvdXJjZSIpPT0iQ2xvdWQgQSIgYW5kCjU0OiAgICAgIGUuZ2V0KCJwYXJ0c19tYW5pZmVzdF92ZXJpZmllZCIpIGlzIFRydWUgYW5kIGUuZ2V0KCJwYXlsb2FkX3NoYTI1NiIpPT1vYmpbImFyY2hpdmVfc2hhMjU2Il0gYW5kCjU4OiAgICAgIGUuZ2V0KCJmdWxsX3Jlc3RvcmVfcHJvdmVuIikgaXMgRmFsc2UgYW5kIGUuZ2V0KCJyZXN1bHQiKT09Ik9LIgo2MjogICAgaWYgbGVuKHN5cy5hcmd2KSE9MzogZGllKCJVU0FHRSIsNjQpCjYzOiAgICB2bWlkPXN5cy5hcmd2WzFdCjY0OiAgICBsb2dpY2FsPXN5cy5hcmd2WzJdCjY1OiAgICBpZiBub3Qgdm1pZC5pc2RpZ2l0KCkgb3IgbG9naWNhbCAhPSBmInZte3ZtaWR9IjogZGllKCJJREVOVElUWV9JTlZBTElEIiw2NCkKNjY6ICAgIGQ9U1RBVEVfUk9PVC9sb2dpY2FsCjY3OiAgICBpZiBub3QgZC5pc19kaXIoKSBvciBkLmlzX3N5bWxpbmsoKTogZGllKCJTVEFURV9ESVJfSU5WQUxJRCIpCjcyOiAgICAgICAgaWYgc3RyaWN0X3N0YXRlKHZtaWQsbG9naWNhbCxwLG9iaikgYW5kIGV2aWRlbmNlX29rKHZtaWQsbG9naWNhbCxwLG9iaik6CjczOiAgICAgICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKChvYmpbImdlbmVyYXRpb24iXSxwLG9iaikpCjc0OiAgICBpZiBub3QgY2FuZGlkYXRlczogZGllKCJOT19TVFJJQ1RfU0VBTEVEX1JFU1RPUkVfUFJPVkVOX1NUQVRFIikKNzg6ICAgICAgInNjaGVtYSI6ImhvbWVsYWItYm9vdC1kcmlsbC1zdGF0ZS1leHBvcnQtdjEiLAo3OTogICAgICAidm1pZCI6dm1pZCwKODE6ICAgICAgImdlbmVyYXRpb24iOmdlbiwKODI6ICAgICAgInN0YXRlX2ZpbGUiOnN0cihwKSwKODY6ICAgICAgInBhcnRzX21hbmlmZXN0X3NoYTI1NiI6b2JqWyJwYXJ0c19tYW5pZmVzdF9zaGEyNTYiXSwKODg6ICAgICAgInJlbW90ZV9hX2Jhc2UiOm9ialsicmVtb3RlX2FfYmFzZSJdLAo4OTogICAgICAicmVtb3RlX2JfYmFzZSI6b2JqWyJyZW1vdGVfYl9iYXNlIl0sCjkwOiAgICAgICJzdHJpY3Rfc2VhbGVkX3Jlc3RvcmVfcHJvdmVuIjpUcnVl +PIPE_30_SCORE=3 +PIPE_30_BASENAME=engine389.py +PIPE_30_PATH_SHA256=3a8a13358314972f0ccb46d5fd21cd314cad1787869f8e94ffe414dd53ccdee8 +PIPE_30_FILE_SHA256=f1524bf68b0495cc4a1f1036adb5ce293465547738ce35437a22b700f51cdd35 +PIPE_30_SCHEDULE_TARGET_COUNT=1 +PIPE_30_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_30_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_30_VZDUMP_QEMU_COUNT=0 +PIPE_30_RCLONE_COUNT=31 +PIPE_30_CLOUD_QUORUM_COUNT=0 +PIPE_30_SEAL_WRITTEN_COUNT=0 +PIPE_30_PAYLOAD_PARTS_COUNT=0 +PIPE_30_TRANSPORT_COUNT=0 +PIPE_30_RESTORE_VALIDATION_COUNT=0 +PIPE_30_SCHEDULE_RESULT_COUNT=2 +PIPE_30_RELEVANT_LINE_COUNT=264 +PIPE_30_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjE6ICAgIHA9c3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKMjY1OiAgICAgICAgICAgIHAua2lsbCgpOyByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9USU1FT1VUJykKMjcwOiAgICBpZiByYyE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9DQVRfRkFJTEVEJyxzdHIocmMpKQoyNzE6ICAgIGlmIGV4cGVjdGVkX2J5dGVzIGlzIG5vdCBOb25lIGFuZCBuIT1leHBlY3RlZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9DQVRfU0laRV9NSVNNQVRDSCcpCjI3NDpkZWYgcmNsb25lX2NhdF9ieXRlcyhyZW1vdGVfcGF0aCxtYXhfYnl0ZXM9NCoxMDI0KjEwMjQpOgoyNzU6ICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2NhdCcscmVtb3RlX3BhdGgsJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzYwcyddLHRpbWVvdXQ9OTApCjI3NjogICAgaWYgbGVuKHAuc3Rkb3V0KT5tYXhfYnl0ZXM6IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfU01BTExfT0JKRUNUX1RPT19MQVJHRScpCjI3OTpkZWYgZ2VuZXJhdGlvbl9pZChsb2dpY2FsX2lkKToKMjgzOmRlZiB1cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkX3BhdGgsc291cmNlX21ldGEpOgoyODY6ICAgIGdlbj1zb3VyY2VfbWV0YVsnZ2VuZXJhdGlvbiddOyByZWw9cmVtb3RlX2dlbmVyYXRpb25fcGF0aCh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pCjI4NzogICAgaWYgcmVtb3RlX2V4aXN0c19hbnkodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuKTogcmFpc2UgQmFja3VwRXJyb3IoJ0dFTkVSQVRJT05fQ09MTElTSU9OJykKMjkwOiAgICBtYW5pZmVzdD1tYWtlX21hbmlmZXN0KHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbixuLHBzaGEscGFydHMscmVwcyxzb3VyY2VfbWV0YSkKMjkxOiAgICBtYj1jYW5vbmljYWxfanNvbihtYW5pZmVzdCkrYidcbic7IG1zaGE9c2hhMjU2X2J5dGVzKG1iKQoyOTY6ICAgICAgICAgICAgcmNsb25lX3JjYXQocnAsc291cmNlX3BhdGg9cGF5bG9hZF9wYXRoLG9mZnNldD1wYXJ0WydvZmZzZXQnXSxsZW5ndGg9cGFydFsnYnl0ZXMnXSkKMjk3OiAgICAgICAgICAgIGdvdCxnb3RuPXJjbG9uZV9jYXRfaGFzaChycCxwYXJ0WydieXRlcyddKQoyOTg6ICAgICAgICAgICAgaWYgZ290IT1wYXJ0WydzaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1BBUlRfUkVBREJBQ0tfU0hBX01JU01BVENIJykKMjk5OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL21hbmlmZXN0Lmpzb24nLGRhdGE9bWIpCjMwMDogICAgICAgIGlmIHJjbG9uZV9jYXRfYnl0ZXMoYmFzZSsnL21hbmlmZXN0Lmpzb24nKSE9bWI6IHJhaXNlIEJhY2t1cEVycm9yKCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjMwMTogICAgc2VhbD17J3NjaGVtYSc6MSwnZ2VuZXJhdGlvbic6Z2VuLCdsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ21hbmlmZXN0X3NoYTI1Nic6bXNoYSwncGF5bG9hZF9zaGEyNTYnOnBzaGEsJ3N0YXR1cyc6J1NFQUxFRCcsJ3NlYWxlZF9hdF91dGMnOnV0Y25vdygpfQozMDI6ICAgIHNiPWNhbm9uaWNhbF9qc29uKHNlYWwpK2InXG4nCjMwNTogICAgICAgIHJjbG9uZV9yY2F0KGJhc2UrJy9TRUFMRUQuanNvbicsZGF0YT1zYikKMzA2OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvU0VBTEVELmpzb24nKSE9c2I6IHJhaXNlIEJhY2t1cEVycm9yKCdTRUFMX1JFQURCQUNLX01JU01BVENIJykKMzA3OiAgICByZXR1cm4gbWFuaWZlc3QsbXNoYSx7J3VuaGVhbHRoeSc6YmFkLCdoZWFsdGh5JzpoZWFsdGh5fQozMDk6ZGVmIHJlY29uc3RydWN0X3JlcGxpY2EobWFuaWZlc3QscmVwLG91dF9wYXRoKToKMzEwOiAgICByZWw9cmVtb3RlX2dlbmVyYXRpb25fcGF0aChtYW5pZmVzdFsnc2NvcGUnXSxtYW5pZmVzdFsnbG9naWNhbF9pZCddLG1hbmlmZXN0WydnZW5lcmF0aW9uJ10pCjMxNDogICAgICAgIGZvciBwYXJ0IGluIG1hbmlmZXN0WydwYXJ0cyddOgozMTU6ICAgICAgICAgICAgcD1zdWJwcm9jZXNzLlBvcGVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2NhdCcsYmFzZSsnL3BhcnRzLycrcGFydFsnbmFtZSddLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKMzIyOiAgICAgICAgICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfQ0FUX0ZBSUxFRCcpCjMyMzogICAgICAgICAgICBpZiBuIT1wYXJ0WydieXRlcyddIG9yIHBoLmhleGRpZ2VzdCgpIT1wYXJ0WydzaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ1JFQ09OU1RSVUNUX1BBUlRfTUlTTUFUQ0gnKQozMjQ6ICAgIGlmIHRvdGFsIT1tYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddIG9yIGguaGV4ZGlnZXN0KCkhPW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFZTE9BRF9NSVNNQVRDSCcpCjMzMzogICAgaWYgcjEhPTAgb3IgcDIucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUl9aU1RfTElTVF9GQUlMRUQnKQozMzU6ICAgIGlmIG5vdCBuYW1lczogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUl9aU1RfRU1QVFknKQozMzY6ICAgIGlmIHJlcXVpcmVkX21lbWJlciBhbmQgcmVxdWlyZWRfbWVtYmVyIG5vdCBpbiBuYW1lczogcmFpc2UgQmFja3VwRXJyb3IoJ1JFUVVJUkVEX01FTUJFUl9NSVNTSU5HJykKMzQ1OiAgICAgICAgICAgICMgR3JlZW4gc2V0IGlzIGludGVudGlvbmFsbHkgQ1Qtb25seS4gU2NoZWR1bGVkIFFFTVUgYmFja3VwcyBzdGlsbCBnZXQgZHVhbCByZW1vdGUgYnl0ZSByZWFkYmFjay4KMzUzOiAgICAgICAgaWYgcDIucmV0dXJuY29kZSE9MCBvciBsZW4oZGF0YSk8MTI4OiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19EQl9EVU1QX0lOVkFMSUQnKQozNTQ6ICAgIGVsc2U6IHJhaXNlIEJhY2t1cEVycm9yKCdWQUxJREFUT1JfVU5LTk9XTl9UWVBFJykKMzU5OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0lOVkVOVE9SWV9KU09OJykKMzYxOmRlZiBzc2hfcmVtb3RlKG5vZGUsYXJndixpbnB1dD1Ob25lLHRpbWVvdXQ9MTgwMCxjaGVjaz1UcnVlKToKMzYyOiAgICBjbWQ9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdKQozNjM6ICAgIGlmIG5vZGU9PSdwdmUwMSc6IHJldHVybiBydW4oW3N0cih4KSBmb3IgeCBpbiBhcmd2XSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjM2NzogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KMzY4OiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjM3MDogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjM3MTogICAgc3JjZGlyPWYnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyLXNvdXJjZS97Z2VufScKMzcyOiAgICBzc2hfcmVtb3RlKG5vZGUsWydpbnN0YWxsJywnLWQnLCctbScsJzA3MDAnLHNyY2Rpcl0sdGltZW91dD0zMCkKMzc0OiAgICBzc2hfcmVtb3RlKG5vZGUsWyd2emR1bXAnLHN0cih2bWlkKSwnLS1tb2RlJywnc25hcHNob3QnLCctLWNvbXByZXNzJywnenN0ZCcsJy0tZHVtcGRpcicsc3JjZGlyXSx0aW1lb3V0PTcyMDApCjM3NTogICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjM3NzogICAgaWYgbGVuKGZpbGVzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9PVVRQVVRfTk9UX1VOSVFVRScpCjM4NDogICAgaWYgbm90IHBhdGhsaWIuUGF0aChsb2NhbCkuaXNfZmlsZSgpIG9yIHBhdGhsaWIuUGF0aChsb2NhbCkuc3RhdCgpLnN0X3NpemU8PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfUEFZTE9BRF9NSVNTSU5HJykKMzg2OiAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGxvY2FsKSx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvd3NbMF0uZ2V0KCdzdGF0dXMnKX0sY2xlYW51cAozODk6ICAgIGlmIG5vdCBPUEVSQVRPUl9LRVkuaXNfZmlsZSgpIG9yIE9QRVJBVE9SX0tFWS5pc19zeW1saW5rKCk6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfTUlTU0lORycpCjM5MzogICAgaWYgbm90IG0gb3IgbS5ncm91cCgxKSE9T1BFUkFUT1JfS0VZX0ZJTkdFUlBSSU5UOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX0ZJTkdFUlBSSU5UX01JU01BVENIJykKNDA3OiAgICBpZiBsZW4oZ29vZCkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdIT1NUS0VZX1BJTl9NSVNNQVRDSCcpCjQxMDpkZWYgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKToKNDEyOiAgICBmb3IgdCBpbiB0YXJnZXRzOgo0MTc6ZGVmIHZwc19zc2hfYXJndih0LCAqLCB1c2VfYWdlbnQ9RmFsc2UpOgo0MjY6ZGVmIHZwc19ydW4odCwgcmVtb3RlX2FyZ3YsICosIGlucHV0PU5vbmUsIHRpbWVvdXQ9MzAwLCB1c2VfYWdlbnQ9RmFsc2UsIGNoZWNrPVRydWUpOgo0Mjc6ICAgIHJlbW90ZT1zaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gcmVtb3RlX2FyZ3ZdKQo0Mjg6ICAgIHJldHVybiBydW4odnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PXVzZV9hZ2VudCkrW3JlbW90ZV0saW5wdXQ9aW5wdXQsdGltZW91dD10aW1lb3V0LGNoZWNrPWNoZWNrKQo0MzA6ZGVmIGJvb3RzdHJhcF92cHNfa2V5cyh0YXJnZXRzKToKNDMyOiAgICBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpCjQzNTogICAgZm9yIHQgaW4gdGFyZ2V0czoKNDQwOiAgICAgICAgaWYgbm90IG9zLmVudmlyb24uZ2V0KCdTU0hfQVVUSF9TT0NLJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdGT1JXQVJERURfQUdFTlRfUkVRVUlSRURfRk9SX0JPT1RTVFJBUCcpCjQ0NDogICAgICAgIGlmIHRhZyBub3QgaW4gKCdBRERFRCcsJ0FMUkVBRFknKTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZQU19BVVRIT1JJWkVEX0tFWV9CT09UU1RSQVBfUkVTVUxUJykKNDQ4OiAgICB1cz1beCBmb3IgeCBpbiB0YXJnZXRzIGlmIHhbJ3R5cGUnXT09J3Zwc191cyddWzBdCjQ1MzpkZWYgcmVtb3RlX2hhc2hzZXQodCxjb21tYW5kKToKNDU4OiAgICBmaWxlcz1bJ2V0Yy9uZXRiaXJkL2luc3RhbGwuY29uZicsJ3Zhci9saWIvbmV0YmlyZC9zdGF0ZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL3NlcnZpY2UuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9hY3RpdmVfcHJvZmlsZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2RlZmF1bHQuanNvbiddCjQ2MDogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsY21kKQo0NjE6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsnc3VkbycsJy1uJywndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLSddK2ZpbGVzKQo0NjI6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo0NjM6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTYwMCkKNDY0OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsY21kKQo0NjU6ICAgIGlmIHByZSE9cG9zdDogcmFpc2UgQmFja3VwRXJyb3IoJ01EX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNDY2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX21kJywnY29uc2lzdGVuY3knOidGSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo0NzA6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjQ3MTogICAgcmVtb3RlPXNobGV4LmpvaW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJywnZXRjL25naW54J10pCjQ3MjogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjQ3MzogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9OTAwKQo0NzQ6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo0NzU6ICAgIGlmIHByZSE9cG9zdDogcmFpc2UgQmFja3VwRXJyb3IoJ1NQQl9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjQ3NjogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19zcGInLCdjb25zaXN0ZW5jeSc6J1NUQVRJQ19DT05GSUdfRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ3Rsc19yZWNvdmVyeSc6J1JFSVNTVUVfVExTX09OX1JFU1RPUkUnLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjQ3ODpVU19SRU1PVEVfU0NSSVBUPXInJydpbXBvcnQgaW8sb3Msc3FsaXRlMyxzeXMsdGFyZmlsZSx0aW1lLGpzb24saGFzaGxpYgo1MDE6ICAgIGRzdD1zcWxpdGUzLmNvbm5lY3QoJzptZW1vcnk6Jyk7IHNyYy5iYWNrdXAoZHN0KQo1MDQ6ICAgIHRpPXRhcmZpbGUuVGFySW5mbyhuYW1lPSgnc3FsaXRlLWJhY2t1cHMvJytuYW1lKSk7IHRpLnNpemU9bGVuKGIpOyB0aS5tb2RlPTBvNjAwOyB0aS5tdGltZT1pbnQodGltZS50aW1lKCkpOyB0Zi5hZGRmaWxlKHRpLGlvLkJ5dGVzSU8oYikpCjUwODogICAgcmVtb3RlPXNobGV4LmpvaW4oWydweXRob24zJywnLUknLCctQicsJy1jJyxVU19SRU1PVEVfU0NSSVBUXSkKNTA5OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNTEwOiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD0xMjAwKQo1MTE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfdXMnLCdjb25zaXN0ZW5jeSc6J1NRTElURV9PTkxJTkVfQkFDS1VQX1BMVVNfTk9OREJfRklMRVMnLCdzcWxpdGVfY291bnQnOjR9LE5vbmUKNTMwOiAgICBpZiBub3QgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfZmlsZSgpIG9yIFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShST1VURVJfTEVHQUNZX1NDUklQVCkhPVJPVVRFUl9MRUdBQ1lfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0xFR0FDWV9TQ1JJUFRfSURFTlRJVFknKQo1MzQ6ICAgIGhpdHM9W2lwIGZvciBpcCBpbiBpcHMgaWYgc2hhMjU2X2J5dGVzKGlwLmVuY29kZSgpKT09Uk9VVEVSX1RBUkdFVF9TSEFdCjUzNTogICAgaWYgbGVuKGhpdHMpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1RBUkdFVF9QQVJTRScpCjUzNjogICAgdGFyZ2V0PWhpdHNbMF0KNTU0OiAgICBpZiBsZW4oc2FmZSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUEFTU0ZJTEVfUEFSU0UnKQo1NTU6ICAgIHJldHVybiB0YXJnZXQsc2FmZVswXQo1NTg6ICAgIHJvb3RzPVtwYXRobGliLlBhdGgoJy9ldGMnKSxwYXRobGliLlBhdGgoJy9yb290Ly5zc2gnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC12MicpXQo1NzM6ICAgIGlmIGxlbih1bmlxKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0VYQUNUX1NIQV9GSUxFX05PVF9VTklRVUUnKQo1ODE6ICAgIGlmIHNoYTI1Nl9ieXRlcyhiKSE9Uk9VVEVSX0tOT1dOX0hPU1RTX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9LTk9XTl9IT1NUU19JREVOVElUWScpCjU4NTogICAgdGFyZ2V0LHBmPXBhcnNlX3JvdXRlcl9sZWdhY3koKQo1ODY6ICAgIGFyZ3Y9W1NTSFBBU1MsJy1mJyxzdHIocGYpLFNTSCwnLXAnLCcyMjIyJywnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjU4NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0CjU5ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjYwMDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo2MDI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo2MDM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjYwNTogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo2MDY6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo2MDg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjYxMTogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo2MTg6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo2MjE6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDApCjYyMzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9KU09OJykKNjI1OiAgICBpZiBub3QgcGF0aCBvciBub3QgaXNpbnN0YW5jZShzaXplLGludCkgb3Igc2l6ZTw9MCBvciBub3QgcmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NjR9JyxleHBlY3RlZCBvciAnJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfUkVTVUxUJykKNjMyOiAgICAgICAgICAgICAgICBjb2RlPSJpbXBvcnQgYmFzZTY0LHN5czsgcD1zeXMuYXJndlsxXTsgbz1pbnQoc3lzLmFyZ3ZbMl0pOyBuPWludChzeXMuYXJndlszXSk7IGY9b3BlbihwLCdyYicpOyBmLnNlZWsobyk7IGI9Zi5yZWFkKG4pOyBmLmNsb3NlKCk7IHN5cy5zdGRvdXQud3JpdGUoYmFzZTY0LmI2NGVuY29kZShiKS5kZWNvZGUoKSkiCjYzMzogICAgICAgICAgICAgICAgYjY0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy1jJyxjb2RlLHBhdGgsc3RyKG9mZiksc3RyKHRha2UpXSxOb25lLHRpbWVvdXQ9NjApLnN0cmlwKCkKNjM1OiAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfQkFTRTY0JykKNjM2OiAgICAgICAgICAgICAgICBpZiBsZW4oYikhPXRha2U6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19MRU5HVEgnKQo2NDE6ICAgICAgICBxZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcm0nLCctZicscGF0aF0sTm9uZSx0aW1lb3V0PTMwKQo2NDM6ICAgICAgICBpZiBwcmltYXJ5IGlzIE5vbmU6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0dVRVNUX1RFTVBfQ0xFQU5VUCcpCjY0NTogICAgaWYgZ290IT1zaXplIG9yIGguaGV4ZGlnZXN0KCkhPWV4cGVjdGVkOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19TVFJFQU1fU0hBX01JU01BVENIJykKNjQ2OiAgICByZXR1cm4gbG9jYWwseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3hlbmZvcm8nLCdzaXRlJzp0WydzbHVnJ10sJ3ZtaWQnOnRbJ3ZtaWQnXSwnbm9kZSc6dFsnbm9kZSddLCdkdW1wX3N0cmF0ZWd5Jzp0WydkdW1wX3N0cmF0ZWd5J10sJ2RiX2R1bXBfYnl0ZXMnOmouZ2V0KCdkYl9ieXRlcycpfSxOb25lCjY1OTogICAgICAgIGVsc2U6IG9rPShzc2hfcmVtb3RlKG5vZGUsWyd0ZXN0JywnLWUnLCcvJytyZWxdLHRpbWVvdXQ9MjAsY2hlY2s9RmFsc2UpLnJldHVybmNvZGU9PTApCjY2MjogICAgaWYgbm90IHJlcXVpcmVkLmlzc3Vic2V0KHNldChwYXRocykpOiByYWlzZSBCYWNrdXBFcnJvcignTk9ERV9CVU5ETEVfUkVRVUlSRURfUEFUSF9NSVNTSU5HJykKNjY0OiAgICBhcmd2PVsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJ10rcGF0aHMKNjY1OiAgICBpZiBub2RlPT0ncHZlMDEnOiBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MzAwKQo2Njc6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo2Njg6ICAgICAgICBwaXBlX3RvX3pzdGQoW1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXSxwYXlsb2FkLHRpbWVvdXQ9NjAwKQo2Njk6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfbm9kZV9idW5kbGUnLCdub2RlJzpub2RlLCdyZWNvdmVyeV9wb2xpY3knOidDTEVBTl9JTlNUQUxMX0pPSU5fUkVDT05DSUxFX05PVF9CTElORF9QTVhDRlNfT1ZFUldSSVRFJywnbWVtYmVyX3Jvb3RzJzpsZW4ocGF0aHMpfSxOb25lCjY3MTpkZWYgY2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk6CjY4MDogICAgcmFpc2UgQmFja3VwRXJyb3IoJ0NBUFRVUkVfVFlQRV9VTktOT1dOJykKNjg1OiAgICAgICAgc3NoX3JlbW90ZShjbGVhbnVwWydub2RlJ10sWydybScsJy1yZicsJy0tJyxjbGVhbnVwWydwYXRoJ11dLHRpbWVvdXQ9NjApCjY4ODogICAgZW5naW5lPXBhdGhsaWIuUGF0aCgnL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnKQo2ODk6ICAgIGlmIHNoYTI1Nl9maWxlKGVuZ2luZSkhPScwYjNhMGY2ODVkNGU2N2NiODYyNTBkZjg5YTQ5MThhZmYyZTZjNjc3OTliN2QzNWIwZTU0YjFiYmMwMTZlZTU3JzogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTlRST0xfRU5HSU5FX0lERU5USVRZJykKNjkwOiAgICByb290PXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2NvbnRyb2wtYm9vdHN0cmFwLXYyJykKNjk1OiAgICAgICAgICAgIGlmIGouZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgYW5kIGouZ2V0KCdnZW5lcmF0aW9uJyk6IHJvd3MuYXBwZW5kKChwLnN0YXQoKS5zdF9tdGltZSxqWydnZW5lcmF0aW9uJ10pKQo2OTc6ICAgIGlmIG5vdCByb3dzOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9TRUFMRURfR0VORVJBVElPTl9NSVNTSU5HJykKNzAwOiAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHZlcmlmaWNhdGlvbj0nZXhpc3RpbmdfY29udHJvbF9lbmdpbmVfdmVyaWZ5JyxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzAxOiAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOjAsJ3JlcGxpY2FzJzoyfQo3MDM6ZGVmIGJhY2t1cF90YXJnZXQodCxncmVlbl92ZXJpZnk9RmFsc2UpOgo3MDU6ICAgIGdlbj1nZW5lcmF0aW9uX2lkKHRbJ2xvZ2ljYWxfaWQnXSk7IHdvcms9ZW5zdXJlX2RpcihXT1JLX1JPT1QvZ2VuLDBvNzAwKQo3MDY6ICAgIHBheWxvYWQ9Tm9uZTsgY2xlYW51cD1Ob25lOyBzZWFsZWQ9RmFsc2UKNzA4OiAgICAgICAgcGF5bG9hZCxtZXRhLGNsZWFudXA9Y2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk7IG1ldGFbJ2dlbmVyYXRpb24nXT1nZW4KNzA5OiAgICAgICAgbWFuaWZlc3QsbXNoYSxhbGxvYz11cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkLG1ldGEpOyBzZWFsZWQ9VHJ1ZQo3MTA6ICAgICAgICAjIFNFQUxFRC1maXJzdCBjbGVhbnVwIGludmFyaWFudDogb25seSBub3cgcmVtb3ZlIHNvdXJjZS9sb2NhbCBwYXlsb2FkLgo3MTY6ICAgICAgICAgICAgaGE9cmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxtYW5pZmVzdFsncmVwbGljYXMnXVswXSxhKTsgdmFsaWRhdGVfcGF5bG9hZCh0LGEpCjcxNzogICAgICAgICAgICBoYj1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzFdLGIpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYikKNzE4OiAgICAgICAgICAgIGlmIGhhIT1oYiBvciBoYSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdHUkVFTl9SRVBMSUNBX0NPTVBBUkUnKQo3MjE6ICAgICAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHBheWxvYWRfc2hhMjU2PW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddLG1hbmlmZXN0X3NoYTI1Nj1tc2hhLHJlcGxpY2FzPW1hbmlmZXN0WydyZXBsaWNhcyddLGdyZWVuX3ZlcmlmaWVkPWJvb2woZ3JlZW5fdmVyaWZ5KSxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzIyOiAgICAgICAgcmV0dXJuIHsnbG9naWNhbF9pZCc6dFsnbG9naWNhbF9pZCddLCdnZW5lcmF0aW9uJzpnZW4sJ3Jlc3VsdCc6J1NVQ0NFU1MnLCdwYXlsb2FkX2J5dGVzJzptYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddLCdyZXBsaWNhcyc6MiwnYWxsb2NhdG9yX2hlYWx0aHknOmFsbG9jWydoZWFsdGh5J119CjcyMzogICAgZXhjZXB0IEJhY2t1cEVycm9yIGFzIGU6CjcyNDogICAgICAgIHJlc3VsdD0nUEFSVElBTF9WQUxJRCcgaWYgc2VhbGVkIGVsc2UgJ0ZBSUwnCjcyNTogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSxyZXN1bHQsZ2VuZXJhdGlvbj1nZW4scmVhc29uPWUuY29kZSxzZWFsZWQ9c2VhbGVkKQo3Mjk6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IGNob3Nlbj1bdCBmb3IgdCBpbiB0YXJnZXRzIGlmIHQuZ2V0KCdncmVlbjEnKV0KNzMxOiAgICBib290cz1ib290c3RyYXBfdnBzX2tleXModGFyZ2V0cykKNzM4OiAgICAgICAgICAgIHI9YmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT0odFsndHlwZSddIT0nY29udHJvbCcpKQo3NDA6ICAgICAgICAgICAgcHJpbnQoZid7bGFiZWx9X3trZXl9X0dFTkVSQVRJT049e3JbImdlbmVyYXRpb24iXX0nKQo3NDQ6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzQ2OiAgICBwcmludChmJ3tsYWJlbH1fVEFSR0VUX0NPVU5UPXtsZW4oY2hvc2VuKX0nKQo3NDk6ICAgIHByaW50KGYne2xhYmVsfV9DTE9VRF9CQUNLVVBfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdIT0iY29udHJvbCIpfScpCjc1MDogICAgcHJpbnQoZid7bGFiZWx9X0NPTlRST0xfVkVSSUZZX1RBUkdFVF9DT1VOVD17c3VtKDEgZm9yIHQgaW4gY2hvc2VuIGlmIHRbInR5cGUiXT09ImNvbnRyb2wiKX0nKQo3NTE6ICAgIGlmIGZhaWx1cmVzOiByYWlzZSBCYWNrdXBFcnJvcihsYWJlbCsnX1RBUkdFVF9GQUlMVVJFUycsJywnLmpvaW4oeFswXSBmb3IgeCBpbiBmYWlsdXJlcykpCjc1NTpkZWYgc2NoZWR1bGVkX3J1bigpOgo3NTY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IHN0YXRlPWxvYWRfc3RhdGVfYWxsKCk7IHQ9Y2hvb3NlX2R1ZV90YXJnZXQodGFyZ2V0cyxzdGF0ZSkKNzU4OiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQnKTsgcmV0dXJuIDAKNzU5OiAgICBwcmludCgnU0NIRURVTEVfVEFSR0VUPScrdFsnbG9naWNhbF9pZCddKQo3NjA6ICAgIHRyeTogYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSkKNzYxOiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzYyOiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1GQUlMJyk7IHByaW50KCdTQ0hFRFVMRV9SRUFTT049JytlLmNvZGUpOyByZXR1cm4gMgo3NjM6ICAgIHByaW50KCdTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUycpOyByZXR1cm4gMAo3NjY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IG09e3RbJ2xvZ2ljYWxfaWQnXTp0IGZvciB0IGluIHRhcmdldHN9Cjc2NzogICAgaWYgbG9naWNhbF9pZCBub3QgaW4gbTogcmFpc2UgQmFja3VwRXJyb3IoJ0RJU0NPVkVSX1VOS05PV05fVEFSR0VUJykKNzY4OiAgICB0PW1bbG9naWNhbF9pZF07IHByZWZpeD1mJ2hvbWVsYWItYmFja3Vwcy92Mi97dFsic2NvcGUiXX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zJwo3NzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgo3NzE6ICAgICAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydsc2YnLGNyeXB0Kyc6JytwcmVmaXgsJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD02MCxjaGVjaz1GYWxzZSkKNzc2OiAgICAgICAgICAgIHNlYWw9Y3J5cHQrJzonK3ByZWZpeCsnLycrZysnL1NFQUxFRC5qc29uJwo3Nzc6ICAgICAgICAgICAgcT1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxzZWFsXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo3ODE6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKT09ZzogYnlnZW4uc2V0ZGVmYXVsdChnLHNldCgpKS5hZGQocGh5c2ljYWwpCjc4MzogICAgcHJpbnQoJ0RJU0NPVkVSX0xPR0lDQUxfSUQ9Jytsb2dpY2FsX2lkKTsgcHJpbnQoJ0RJU0NPVkVSX1RXT19QSFlTSUNBTF9TRUFMRURfQ09VTlQ9JytzdHIobGVuKGdvb2QpKSkKNzg0OiAgICBmb3IgZyBpbiBnb29kWy0yMDpdOiBwcmludCgnRElTQ09WRVJfR0VORVJBVElPTj0nK2cpCjc4OTogICAgYXNzZXJ0IGxlbihSRU1PVEVTKT09MTMgYW5kIGxlbih7cCBmb3IgXyxwIGluIFJFTU9URVN9KT09MTMKNzkwOiAgICBhc3NlcnQgbGVuKGRlZmF1bHRfdGFyZ2V0cygpKT49MjgKNzkxOiAgICBhc3NlcnQge3RbJ2xvZ2ljYWxfaWQnXSBmb3IgdCBpbiBkZWZhdWx0X3RhcmdldHMoKSBpZiB0LmdldCgnZ3JlZW4xJyl9PT17J2N0MTEyJywnbm9kZS1wdmUwMScsJ21kLXJlbGF5Jywnc3BiLWluZ3Jlc3MnLCd1cy1uZXRiaXJkJywncm91dGVyLW5ldGNyYXplJywneGYtY29kZXZpcGUnLCd4Zi16YWtydXRpbScsJ2NvbnRyb2wtYm9vdHN0cmFwLXYyJ30KNzk1OmRlZiBtYWluKGFyZ3YpOgo3OTY6ICAgIGlmIGxlbihhcmd2KTwyOiBwcmludCgnVVNBR0UnKTsgcmV0dXJuIDY0Cjc5NzogICAgY21kPWFyZ3ZbMV0= +PIPE_31_SCORE=3 +PIPE_31_BASENAME=engine391.py +PIPE_31_PATH_SHA256=80bf4cf4820d512caa587b901df2a97b93c2fda191de8fe7740cd28de7aa7888 +PIPE_31_FILE_SHA256=9f5095085be09a50e5833cae7ccfb8e70e2536dd56f352676170ec466d7019b3 +PIPE_31_SCHEDULE_TARGET_COUNT=1 +PIPE_31_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_31_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_31_VZDUMP_QEMU_COUNT=0 +PIPE_31_RCLONE_COUNT=31 +PIPE_31_CLOUD_QUORUM_COUNT=0 +PIPE_31_SEAL_WRITTEN_COUNT=0 +PIPE_31_PAYLOAD_PARTS_COUNT=0 +PIPE_31_TRANSPORT_COUNT=0 +PIPE_31_RESTORE_VALIDATION_COUNT=0 +PIPE_31_SCHEDULE_RESULT_COUNT=2 +PIPE_31_RELEVANT_LINE_COUNT=268 +PIPE_31_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjI6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjY1OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzA6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3MTogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjc0OmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI3NTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjc2OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjc5OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODM6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI4NjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjg3OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTA6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTE6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjI5NjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQoyOTc6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjI5ODogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQoyOTk6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzAwOiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzAxOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwMjogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzA1OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMDY6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMDc6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMwOTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTA6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzE0OiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMxNjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjI6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzIzOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMyNDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzMzOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjMzNTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjMzNjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNDU6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTM6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM1NDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNTk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjE6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjI6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2MzogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzY5OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzI6ICAgIHZtaWQ9aW50KHRbJ3ZtaWQnXSk7IHJvd3M9W3IgZm9yIHIgaW4gY2x1c3Rlcl9pbnZlbnRvcnkoKSBpZiBpbnQoci5nZXQoJ3ZtaWQnLC0xKSk9PXZtaWRdCjM3MzogICAgaWYgbGVuKHJvd3MpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX05PVF9VTklRVUUnKQozNzU6ICAgIGlmIHR5cCE9dFsnZ3Vlc3RfdHlwZSddOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzY6ICAgIHNyY2Rpcj1mJy9tbnQvc3RhZ2luZy9ob21lbGFiLWJhY2t1cC12Mi1zb3VyY2Uve2dlbn0nCjM3ODogICAgc3NoX3JlbW90ZShub2RlLFsnaW5zdGFsbCcsJy1kJywnLW0nLGYne21vZGU6b30nLHNyY2Rpcl0sdGltZW91dD0zMCkKMzgyOiAgICAgICAgc3NoX3JlbW90ZShub2RlLFsnY2hvd24nLGYnMDp7Z2lkfScsc3JjZGlyXSx0aW1lb3V0PTMwKQozODM6ICAgICAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3N0YXQnLCctYycsJyVhOiV1OiVnJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjM4NDogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPWYne21vZGU6b306MDp7Z2lkfSc6IHJhaXNlIEJhY2t1cEVycm9yKCdMWENfRFVNUERJUl9BQ0NFU1NfQ09OVFJBQ1QnKQozODY6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKMzg3OiAgICBwPXNzaF9yZW1vdGUobm9kZSxbJ2ZpbmQnLHNyY2RpciwnLW1heGRlcHRoJywnMScsJy10eXBlJywnZicsJy1wcmludGYnLCclcFxuJ10sdGltZW91dD0zMCkKMzg5OiAgICBpZiBsZW4oZmlsZXMpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX09VVFBVVF9OT1RfVU5JUVVFJykKMzk2OiAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQozOTg6ICAgIHJldHVybiBwYXRobGliLlBhdGgobG9jYWwpLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ25vZGUnOm5vZGUsJ3N0YXR1cyc6cm93c1swXS5nZXQoJ3N0YXR1cycpfSxjbGVhbnVwCjQwMTogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNDA1OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo0MTk6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNDIyOmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo0MjQ6ICAgIGZvciB0IGluIHRhcmdldHM6CjQyOTpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjQzODpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjQzOTogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjQ0MDogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjQ0MjpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo0NDQ6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNDQ3OiAgICBmb3IgdCBpbiB0YXJnZXRzOgo0NTI6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNDU2OiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo0NjA6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNDY1OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo0NzA6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNDcyOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjQ3MzogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjQ3NDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjQ3NTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo0NzY6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjQ3NzogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo0Nzg6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjQ4MjogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNDgzOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNDg0OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNDg1OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjQ4NjogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjQ4NzogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNDg4OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNDkwOlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjUxMzogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjUxNjogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNTIwOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo1MjE6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo1MjI6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjUyMzogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo1OTY6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjU5OTogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNjAwOiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNjAxOiAgICB0YXJnZXQ9aGl0c1swXQo2MDk6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjYxMDogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjYxMzogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjYyODogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjYzNjogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNjQwOiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjY0MTogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT15ZXMnLCctbycsJ1N0cmljdEhvc3RLZXlDaGVja2luZz15ZXMnLCctbycsJ1VzZXJLbm93bkhvc3RzRmlsZT0nK3N0cihST1VURVJfS05PV05fSE9TVFMpLCctbycsJ0Nvbm5lY3RUaW1lb3V0PTE1Jywncm91dGVyYmFja3VwQCcrdGFyZ2V0LCdzaG93IHJ1bm5pbmctY29uZmlnJ10KNjQyOiAgICBwPXJ1bihhcmd2LHRpbWVvdXQ9NjApOyByZXR1cm4gcC5zdGRvdXQKNjUzOiAgICBpZiBub3QgYSBvciBhIT1iOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1JFQURfTk9UX0JZVEVfU1RBQkxFJykKNjU1OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncm91dGVyJywnY29uZmlnX3NoYTI1Nic6c2hhMjU2X2J5dGVzKGEpLCdyZWFkX2NvdW50JzoyLCdyZWNvdmVyeV9wb2xpY3knOidJTVBPUlRfUEFDS0FHRV9PUl9TQUZFX0NMSV9OT1RfQkxJTkRfQ09ORklHX1JFUExBQ0UnfSxOb25lCjY1NzpkZWYgcWdhX2V4ZWMobm9kZSx2bWlkLGd1ZXN0X2FyZ3YsaW5wdXRfYnl0ZXM9Tm9uZSx0aW1lb3V0PTYwMCk6CjY1ODogICAgYXJncz1bJ3FtJywnZ3Vlc3QnLCdleGVjJyxzdHIodm1pZCksJy0tc3luY2hyb25vdXMnLCcxJywnLS10aW1lb3V0JyxzdHIoaW50KHRpbWVvdXQpKV0KNjYwOiAgICBhcmdzICs9IFsnLS0nXStbc3RyKHgpIGZvciB4IGluIGd1ZXN0X2FyZ3ZdCjY2MTogICAgcD1zc2hfcmVtb3RlKG5vZGUsYXJncyxpbnB1dD1pbnB1dF9ieXRlcyx0aW1lb3V0PXRpbWVvdXQrNjApCjY2MzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9KU09OJykKNjY2OiAgICBpZiByYyBub3QgaW4gKDAsTm9uZSk6IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfR1VFU1RfQ09NTUFORF9GQUlMRUQnLHN0cihyYykpCjY3MzogICAgcmV0dXJuIGYnJydpbXBvcnQgaGFzaGxpYixqc29uLG9zLHBhdGhsaWIsc2VsZWN0LHNodXRpbCxzdWJwcm9jZXNzLHRlbXBmaWxlLHRpbWVcbnJvb3Q9e3Jvb3Qhcn07IGRiPXtkYiFyfTsgc3RyYXRlZ3k9e3N0cmF0ZWd5IXJ9OyB0b2tlbj1bUkVEQUNURURdIG5vdCByb290LnN0YXJ0c3dpdGgoJy92YXIvd3d3L2ZvcnVtcy8nKSBvciBub3QgZGIuc3RhcnRzd2l0aCgneGZfJyk6IHJhaXNlIFN5c3RlbUV4aXQoMjApXG50bXA9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbik7IHRtcC5ta2Rpcihtb2RlPTBvNzAwLGV4aXN0X29rPUZhbHNlKVxuZHVtcD10bXAvJ2RiLnNxbCc7IG91dD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKycudGFyLnpzdCcpXG5sb2NrPU5vbmVcbnRyeTpcbiAgaWYgc3RyYXRlZ3k9PSdnbG9iYWxfcmVhZF9sb2NrJzpcbiAgICBsb2NrPXN1YnByb2Nlc3MuUG9wZW4oWydtYXJpYWRiJywnLS11c2VyPXJvb3QnLCctLWJhdGNoJywnLS1za2lwLWNvbHVtbi1uYW1lcycsJy0tdW5idWZmZXJlZCddLHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGV4dD1UcnVlLGJ1ZnNpemU9MSlcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJGTFVTSCBUQUJMRVMgV0lUSCBSRUFEIExPQ0s7IFNFTEVDVCAnTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdMT0NLRUQnOiByYWlzZSBSdW50aW1lRXJyb3IoJ0xPQ0tfQUNRVUlSRScpXG4gICAgZHVtcF90aW1lb3V0PTE1XG4gIGVsc2U6IGR1bXBfdGltZW91dD0xODBcbiAgd2l0aCBvcGVuKGR1bXAsJ3diJykgYXMgZjpcbiAgICBhcmd2PVsnbWFyaWFkYi1kdW1wJywnLS11c2VyPXJvb3QnLCctLXF1aWNrJywnLS1za2lwLWxvY2stdGFibGVzJywnLS1oZXgtYmxvYicsJy0tcm91dGluZXMnLCctLWV2ZW50cycsJy0tdHJpZ2dlcnMnXVxuICAgIGlmIHN0cmF0ZWd5PT0nc2luZ2xlX3RyYW5zYWN0aW9uJzogYXJndi5hcHBlbmQoJy0tc2luZ2xlLXRyYW5zYWN0aW9uJylcbiAgICBhcmd2LmFwcGVuZChkYilcbiAgICBxPXN1YnByb2Nlc3MucnVuKGFyZ3Ysc3Rkb3V0PWYsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0aW1lb3V0PWR1bXBfdGltZW91dClcbiAgICBpZiBxLnJldHVybmNvZGUhPTA6IHJhaXNlIFJ1bnRpbWVFcnJvcignRFVNUCcpXG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgbG9jay5zdGRpbi53cml0ZSgiVU5MT0NLIFRBQkxFUzsgU0VMRUNUICdVTkxPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nVU5MT0NLRUQnOiByYWlzZSBSdW50aW1lRXJyb3IoJ1VOTE9DSycpXG4gICAgbG9jay5zdGRpbi5jbG9zZSgpOyBsb2NrLndhaXQodGltZW91dD01KTsgbG9jaz1Ob25lXG4gIHJlbD1yb290LmxzdHJpcCgnLycpXG4gIHRhcj1zdWJwcm9jZXNzLlBvcGVuKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJyxyZWwsJy1DJyxzdHIodG1wKSwnZGIuc3FsJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKVxuICB6PXN1YnByb2Nlc3MuUG9wZW4oWyd6c3RkJywnLVQwJywnLTMnLCctcScsJy1vJyxzdHIob3V0KV0sc3RkaW49dGFyLnN0ZG91dCxzdGRvdXQ9c3VicHJvY2Vzcy5ERVZOVUxMLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpOyB0YXIuc3Rkb3V0LmNsb3NlKClcbiAgenI9ei53YWl0KHRpbWVvdXQ9NjAwKTsgdHI9dGFyLndhaXQodGltZW91dD02MClcbiAgaWYgenIhPTAgb3IgdHIhPTA6IHJhaXNlIFJ1bnRpbWVFcnJvcignQVJDSElWRScpXG4gIGg9aGFzaGxpYi5zaGEyNTYoKTsgbj0wXG4gIHdpdGggb3BlbihvdXQsJ3JiJykgYXMgZjpcbiAgICBmb3IgYiBpbiBpdGVyKGxhbWJkYTpmLnJlYWQoMTA0ODU3NiksYicnKTogaC51cGRhdGUoYik7IG4rPWxlbihiKVxuICBwcmludChqc29uLmR1bXBzKHt7J3BhdGgnOnN0cihvdXQpLCdieXRlcyc6biwnc2hhMjU2JzpoLmhleGRpZ2VzdCgpLCdkYl9ieXRlcyc6ZHVtcC5zdGF0KCkuc3Rfc2l6ZSwnc3RyYXRlZ3knOnN0cmF0ZWd5fX0sc29ydF9rZXlzPVRydWUsc2VwYXJhdG9ycz0oJywnLCc6JykpKVxuZmluYWxseTpcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICB0cnk6IGxvY2sua2lsbCgpOyBsb2NrLndhaXQodGltZW91dD0zKVxuICAgIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbiAgdHJ5OiBzaHV0aWwucm10cmVlKHRtcClcbiAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuJycnCjY3NjogICAgb3V0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy0nXSx4Zl9ndWVzdF9idWlsZGVyKHQsZ2VuKS5lbmNvZGUoKSx0aW1lb3V0PTkwMCkKNjc4OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19CVUlMREVSX0pTT04nKQo2ODA6ICAgIGlmIG5vdCBwYXRoIG9yIG5vdCBpc2luc3RhbmNlKHNpemUsaW50KSBvciBzaXplPD0wIG9yIG5vdCByZS5mdWxsbWF0Y2gocidbMC05YS1mXXs2NH0nLGV4cGVjdGVkIG9yICcnKTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9SRVNVTFQnKQo2ODc6ICAgICAgICAgICAgICAgIGNvZGU9ImltcG9ydCBiYXNlNjQsc3lzOyBwPXN5cy5hcmd2WzFdOyBvPWludChzeXMuYXJndlsyXSk7IG49aW50KHN5cy5hcmd2WzNdKTsgZj1vcGVuKHAsJ3JiJyk7IGYuc2VlayhvKTsgYj1mLnJlYWQobik7IGYuY2xvc2UoKTsgc3lzLnN0ZG91dC53cml0ZShiYXNlNjQuYjY0ZW5jb2RlKGIpLmRlY29kZSgpKSIKNjg4OiAgICAgICAgICAgICAgICBiNjQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLWMnLGNvZGUscGF0aCxzdHIob2ZmKSxzdHIodGFrZSldLE5vbmUsdGltZW91dD02MCkuc3RyaXAoKQo2OTA6ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19CQVNFNjQnKQo2OTE6ICAgICAgICAgICAgICAgIGlmIGxlbihiKSE9dGFrZTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fUUdBX0NIVU5LX0xFTkdUSCcpCjY5NjogICAgICAgIHFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9ybScsJy1mJyxwYXRoXSxOb25lLHRpbWVvdXQ9MzApCjY5ODogICAgICAgIGlmIHByaW1hcnkgaXMgTm9uZTogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fR1VFU1RfVEVNUF9DTEVBTlVQJykKNzAwOiAgICBpZiBnb3QhPXNpemUgb3IgaC5oZXhkaWdlc3QoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1NUUkVBTV9TSEFfTUlTTUFUQ0gnKQo3MDE6ICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoneGVuZm9ybycsJ3NpdGUnOnRbJ3NsdWcnXSwndm1pZCc6dFsndm1pZCddLCdub2RlJzp0Wydub2RlJ10sJ2R1bXBfc3RyYXRlZ3knOnRbJ2R1bXBfc3RyYXRlZ3knXSwnZGJfZHVtcF9ieXRlcyc6ai5nZXQoJ2RiX2J5dGVzJyl9LE5vbmUKNzE0OiAgICAgICAgZWxzZTogb2s9KHNzaF9yZW1vdGUobm9kZSxbJ3Rlc3QnLCctZScsJy8nK3JlbF0sdGltZW91dD0yMCxjaGVjaz1GYWxzZSkucmV0dXJuY29kZT09MCkKNzE3OiAgICBpZiBub3QgcmVxdWlyZWQuaXNzdWJzZXQoc2V0KHBhdGhzKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdOT0RFX0JVTkRMRV9SRVFVSVJFRF9QQVRIX01JU1NJTkcnKQo3MTk6ICAgIGFyZ3Y9Wyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nXStwYXRocwo3MjA6ICAgIGlmIG5vZGU9PSdwdmUwMSc6IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD0zMDApCjcyMjogICAgICAgIHJlbW90ZT0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKGFyZ3YpCjcyMzogICAgICAgIHBpcGVfdG9fenN0ZChbU1NILCctbycsJ0JhdGNoTW9kZT15ZXMnLCctbycsJ1N0cmljdEhvc3RLZXlDaGVja2luZz15ZXMnLCdyb290QCcrbm9kZSxyZW1vdGVdLHBheWxvYWQsdGltZW91dD02MDApCjcyNDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ub2RlX2J1bmRsZScsJ25vZGUnOm5vZGUsJ3JlY292ZXJ5X3BvbGljeSc6J0NMRUFOX0lOU1RBTExfSk9JTl9SRUNPTkNJTEVfTk9UX0JMSU5EX1BNWENGU19PVkVSV1JJVEUnLCdtZW1iZXJfcm9vdHMnOmxlbihwYXRocyl9LE5vbmUKNzI2OmRlZiBjYXB0dXJlX3RhcmdldCh0LGdlbix3b3JrKToKNzM1OiAgICByYWlzZSBCYWNrdXBFcnJvcignQ0FQVFVSRV9UWVBFX1VOS05PV04nKQo3NDA6ICAgICAgICBzc2hfcmVtb3RlKGNsZWFudXBbJ25vZGUnXSxbJ3JtJywnLXJmJywnLS0nLGNsZWFudXBbJ3BhdGgnXV0sdGltZW91dD02MCkKNzQzOiAgICBlbmdpbmU9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1jb250cm9sLWJhY2t1cCcpCjc0NDogICAgaWYgc2hhMjU2X2ZpbGUoZW5naW5lKSE9JzBiM2EwZjY4NWQ0ZTY3Y2I4NjI1MGRmODlhNDkxOGFmZjJlNmM2Nzc5OWI3ZDM1YjBlNTRiMWJiYzAxNmVlNTcnOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9FTkdJTkVfSURFTlRJVFknKQo3NDU6ICAgIHJvb3Q9cGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cC9jbG91ZC1xdW9ydW0vY29udHJvbC1ib290c3RyYXAtdjInKQo3NTA6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKTogcm93cy5hcHBlbmQoKHAuc3RhdCgpLnN0X210aW1lLGpbJ2dlbmVyYXRpb24nXSkpCjc1MjogICAgaWYgbm90IHJvd3M6IHJhaXNlIEJhY2t1cEVycm9yKCdDT05UUk9MX1NFQUxFRF9HRU5FUkFUSU9OX01JU1NJTkcnKQo3NTU6ICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSwnU1VDQ0VTUycsZ2VuZXJhdGlvbj1nZW4sdmVyaWZpY2F0aW9uPSdleGlzdGluZ19jb250cm9sX2VuZ2luZV92ZXJpZnknLGxhc3Rfc3VjY2Vzc19lcG9jaD1lcG9jaCgpKQo3NTY6ICAgIHJldHVybiB7J2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnZ2VuZXJhdGlvbic6Z2VuLCdyZXN1bHQnOidTVUNDRVNTJywncGF5bG9hZF9ieXRlcyc6MCwncmVwbGljYXMnOjJ9Cjc1ODpkZWYgYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSk6Cjc2MDogICAgZ2VuPWdlbmVyYXRpb25faWQodFsnbG9naWNhbF9pZCddKTsgd29yaz1lbnN1cmVfZGlyKFdPUktfUk9PVC9nZW4sMG83MDApCjc2MTogICAgcGF5bG9hZD1Ob25lOyBjbGVhbnVwPU5vbmU7IHNlYWxlZD1GYWxzZQo3NjM6ICAgICAgICBwYXlsb2FkLG1ldGEsY2xlYW51cD1jYXB0dXJlX3RhcmdldCh0LGdlbix3b3JrKTsgbWV0YVsnZ2VuZXJhdGlvbiddPWdlbgo3NjQ6ICAgICAgICBtYW5pZmVzdCxtc2hhLGFsbG9jPXVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWQsbWV0YSk7IHNlYWxlZD1UcnVlCjc2NTogICAgICAgICMgU0VBTEVELWZpcnN0IGNsZWFudXAgaW52YXJpYW50OiBvbmx5IG5vdyByZW1vdmUgc291cmNlL2xvY2FsIHBheWxvYWQuCjc3MTogICAgICAgICAgICBoYT1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzBdLGEpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYSkKNzcyOiAgICAgICAgICAgIGhiPXJlY29uc3RydWN0X3JlcGxpY2EobWFuaWZlc3QsbWFuaWZlc3RbJ3JlcGxpY2FzJ11bMV0sYik7IHZhbGlkYXRlX3BheWxvYWQodCxiKQo3NzM6ICAgICAgICAgICAgaWYgaGEhPWhiIG9yIGhhIT1tYW5pZmVzdFsncGF5bG9hZF9zaGEyNTYnXTogcmFpc2UgQmFja3VwRXJyb3IoJ0dSRUVOX1JFUExJQ0FfQ09NUEFSRScpCjc3NjogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSwnU1VDQ0VTUycsZ2VuZXJhdGlvbj1nZW4scGF5bG9hZF9zaGEyNTY9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J10sbWFuaWZlc3Rfc2hhMjU2PW1zaGEscmVwbGljYXM9bWFuaWZlc3RbJ3JlcGxpY2FzJ10sZ3JlZW5fdmVyaWZpZWQ9Ym9vbChncmVlbl92ZXJpZnkpLGxhc3Rfc3VjY2Vzc19lcG9jaD1lcG9jaCgpKQo3Nzc6ICAgICAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOm1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10sJ3JlcGxpY2FzJzoyLCdhbGxvY2F0b3JfaGVhbHRoeSc6YWxsb2NbJ2hlYWx0aHknXX0KNzc4OiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKNzc5OiAgICAgICAgcmVzdWx0PSdQQVJUSUFMX1ZBTElEJyBpZiBzZWFsZWQgZWxzZSAnRkFJTCcKNzgwOiAgICAgICAgd3JpdGVfc3RhdGUodFsnbG9naWNhbF9pZCddLHJlc3VsdCxnZW5lcmF0aW9uPWdlbixyZWFzb249ZS5jb2RlLHNlYWxlZD1zZWFsZWQpCjc4NDogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgY2hvc2VuPVt0IGZvciB0IGluIHRhcmdldHMgaWYgdC5nZXQoJ2dyZWVuMScpXQo3ODY6ICAgIGJvb3RzPWJvb3RzdHJhcF92cHNfa2V5cyh0YXJnZXRzKQo3OTM6ICAgICAgICAgICAgcj1iYWNrdXBfdGFyZ2V0KHQsZ3JlZW5fdmVyaWZ5PSh0Wyd0eXBlJ10hPSdjb250cm9sJykpCjc5NTogICAgICAgICAgICBwcmludChmJ3tsYWJlbH1fe2tleX1fR0VORVJBVElPTj17clsiZ2VuZXJhdGlvbiJdfScpCjc5OTogICAgICAgIGV4Y2VwdCBCYWNrdXBFcnJvciBhcyBlOgo4MDE6ICAgIHByaW50KGYne2xhYmVsfV9UQVJHRVRfQ09VTlQ9e2xlbihjaG9zZW4pfScpCjgwNDogICAgcHJpbnQoZid7bGFiZWx9X0NMT1VEX0JBQ0tVUF9UQVJHRVRfQ09VTlQ9e3N1bSgxIGZvciB0IGluIGNob3NlbiBpZiB0WyJ0eXBlIl0hPSJjb250cm9sIil9JykKODA1OiAgICBwcmludChmJ3tsYWJlbH1fQ09OVFJPTF9WRVJJRllfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdPT0iY29udHJvbCIpfScpCjgwNjogICAgaWYgZmFpbHVyZXM6IHJhaXNlIEJhY2t1cEVycm9yKGxhYmVsKydfVEFSR0VUX0ZBSUxVUkVTJywnLCcuam9pbih4WzBdIGZvciB4IGluIGZhaWx1cmVzKSkKODEwOmRlZiBzY2hlZHVsZWRfcnVuKCk6CjgxMTogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgc3RhdGU9bG9hZF9zdGF0ZV9hbGwoKTsgdD1jaG9vc2VfZHVlX3RhcmdldCh0YXJnZXRzLHN0YXRlKQo4MTM6ICAgICAgICBwcmludCgnU0NIRURVTEVfREVDSVNJT049REVGRVJfTk9fRFVFX1RBUkdFVCcpOyByZXR1cm4gMAo4MTQ6ICAgIHByaW50KCdTQ0hFRFVMRV9UQVJHRVQ9Jyt0Wydsb2dpY2FsX2lkJ10pCjgxNTogICAgdHJ5OiBiYWNrdXBfdGFyZ2V0KHQsZ3JlZW5fdmVyaWZ5PUZhbHNlKQo4MTY6ICAgIGV4Y2VwdCBCYWNrdXBFcnJvciBhcyBlOgo4MTc6ICAgICAgICBwcmludCgnU0NIRURVTEVfUkVTVUxUPUZBSUwnKTsgcHJpbnQoJ1NDSEVEVUxFX1JFQVNPTj0nK2UuY29kZSk7IHJldHVybiAyCjgxODogICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1TVUNDRVNTJyk7IHJldHVybiAwCjgyMTogICAgdGFyZ2V0cz1sb2FkX3RhcmdldHMoKTsgbT17dFsnbG9naWNhbF9pZCddOnQgZm9yIHQgaW4gdGFyZ2V0c30KODIyOiAgICBpZiBsb2dpY2FsX2lkIG5vdCBpbiBtOiByYWlzZSBCYWNrdXBFcnJvcignRElTQ09WRVJfVU5LTk9XTl9UQVJHRVQnKQo4MjM6ICAgIHQ9bVtsb2dpY2FsX2lkXTsgcHJlZml4PWYnaG9tZWxhYi1iYWNrdXBzL3YyL3t0WyJzY29wZSJdfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMnCjgyNTogICAgZm9yIGNyeXB0LHBoeXNpY2FsIGluIFJFTU9URVM6CjgyNjogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3ByZWZpeCwnLS1kaXJzLW9ubHknLCctLW1heC1kZXB0aCcsJzEnXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo4MzE6ICAgICAgICAgICAgc2VhbD1jcnlwdCsnOicrcHJlZml4KycvJytnKycvU0VBTEVELmpzb24nCjgzMjogICAgICAgICAgICBxPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHNlYWxdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpCjgzNjogICAgICAgICAgICBpZiBqLmdldCgnc3RhdHVzJyk9PSdTRUFMRUQnIGFuZCBqLmdldCgnZ2VuZXJhdGlvbicpPT1nOiBieWdlbi5zZXRkZWZhdWx0KGcsc2V0KCkpLmFkZChwaHlzaWNhbCkKODM4OiAgICBwcmludCgnRElTQ09WRVJfTE9HSUNBTF9JRD0nK2xvZ2ljYWxfaWQpOyBwcmludCgnRElTQ09WRVJfVFdPX1BIWVNJQ0FMX1NFQUxFRF9DT1VOVD0nK3N0cihsZW4oZ29vZCkpKQo4Mzk6ICAgIGZvciBnIGluIGdvb2RbLTIwOl06IHByaW50KCdESVNDT1ZFUl9HRU5FUkFUSU9OPScrZykKODQ0OiAgICBhc3NlcnQgbGVuKFJFTU9URVMpPT0xMyBhbmQgbGVuKHtwIGZvciBfLHAgaW4gUkVNT1RFU30pPT0xMwo4NDU6ICAgIGFzc2VydCBsZW4oZGVmYXVsdF90YXJnZXRzKCkpPj0yOA== +PIPE_32_SCORE=3 +PIPE_32_BASENAME=engine392.py +PIPE_32_PATH_SHA256=31ca7bcf1ab30815fb911a00d6f9a015e02724b232a64ead7c25e99bfec8d87e +PIPE_32_FILE_SHA256=7d96b9842de06277ea1be45e1f58e35c8a116a922425317954d339a333fe84f0 +PIPE_32_SCHEDULE_TARGET_COUNT=1 +PIPE_32_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_32_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_32_VZDUMP_QEMU_COUNT=0 +PIPE_32_RCLONE_COUNT=31 +PIPE_32_CLOUD_QUORUM_COUNT=0 +PIPE_32_SEAL_WRITTEN_COUNT=0 +PIPE_32_PAYLOAD_PARTS_COUNT=0 +PIPE_32_TRANSPORT_COUNT=0 +PIPE_32_RESTORE_VALIDATION_COUNT=0 +PIPE_32_SCHEDULE_RESULT_COUNT=2 +PIPE_32_RELEVANT_LINE_COUNT=268 +PIPE_32_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI4OlJFTU9URVM9WwozMzpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo1NjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2MDogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjgwOiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4MzpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo4NTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6Cjg2OiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjg3OiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo4OTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6CjkwOiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5MTogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjkyOiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5MzogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTAwOmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTA0OiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjEwNTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjExOTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjA6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTIxOiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyMjogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyMzogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMjc6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzA6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzMzogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQwOmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQyOiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQzOiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE0NDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTQ3OmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTA6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTE6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTI6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE1NDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTc6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNjU6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzE6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTcyOiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTg3OmRlZiBsb2FkX3RhcmdldHMoKToKMTg4OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxODk6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5MDogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTkxOiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTI6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMTk0OmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoxOTY6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIwNDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIwNTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjA4OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTE6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjEyOiAgICByZXR1cm4gW1JDTE9ORV0KMjE0OmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjE1OiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjE3OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMTk6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMjQ6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMjU6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMjY6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjMxOmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzI6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjMzOiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjIzNDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjM4OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjIzOTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDA6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1MDogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2MDpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjI6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjY1OiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzA6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3MTogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjc0OmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI3NTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjc2OiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjc5OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODM6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI4NjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjg3OiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTA6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTE6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjI5NjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQoyOTc6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjI5ODogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQoyOTk6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzAwOiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzAxOiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwMjogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzA1OiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMDY6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMDc6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMwOTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTA6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzE0OiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMxNjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjI6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzIzOiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMyNDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzMzOiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjMzNTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjMzNjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNDU6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTM6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM1NDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNTk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjE6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjI6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2MzogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzY5OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzI6ICAgIHZtaWQ9aW50KHRbJ3ZtaWQnXSk7IHJvd3M9W3IgZm9yIHIgaW4gY2x1c3Rlcl9pbnZlbnRvcnkoKSBpZiBpbnQoci5nZXQoJ3ZtaWQnLC0xKSk9PXZtaWRdCjM3MzogICAgaWYgbGVuKHJvd3MpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX05PVF9VTklRVUUnKQozNzU6ICAgIGlmIHR5cCE9dFsnZ3Vlc3RfdHlwZSddOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzk6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59JwozODE6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJyxmJ3ttb2RlOm99JywnLW8nLCcwJywnLWcnLHN0cihnaWQpLHNyY2Rpcl0sdGltZW91dD0zMCkKMzgyOiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3N0YXQnLCctYycsJyVhOiV1OiVnJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjM4MzogICAgaWYgcS5zdGRvdXQuZGVjb2RlKCkuc3RyaXAoKSE9Zid7bW9kZTpvfTowOntnaWR9JzogcmFpc2UgQmFja3VwRXJyb3IoJ1BWRV9EVU1QRElSX0FDQ0VTU19DT05UUkFDVCcpCjM4NjogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKMzg3OiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjM4OTogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQozOTY6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQozOTg6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpCjQwMTogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3dzWzBdLmdldCgnc3RhdHVzJyl9LGNsZWFudXAKNDA0OiAgICBpZiBub3QgT1BFUkFUT1JfS0VZLmlzX2ZpbGUoKSBvciBPUEVSQVRPUl9LRVkuaXNfc3ltbGluaygpOiByYWlzZSBCYWNrdXBFcnJvcignT1BFUkFUT1JfS0VZX01JU1NJTkcnKQo0MDg6ICAgIGlmIG5vdCBtIG9yIG0uZ3JvdXAoMSkhPU9QRVJBVE9SX0tFWV9GSU5HRVJQUklOVDogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9GSU5HRVJQUklOVF9NSVNNQVRDSCcpCjQyMjogICAgaWYgbGVuKGdvb2QpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignSE9TVEtFWV9QSU5fTUlTTUFUQ0gnKQo0MjU6ZGVmIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cyk6CjQyNzogICAgZm9yIHQgaW4gdGFyZ2V0czoKNDMyOmRlZiB2cHNfc3NoX2FyZ3YodCwgKiwgdXNlX2FnZW50PUZhbHNlKToKNDQxOmRlZiB2cHNfcnVuKHQsIHJlbW90ZV9hcmd2LCAqLCBpbnB1dD1Ob25lLCB0aW1lb3V0PTMwMCwgdXNlX2FnZW50PUZhbHNlLCBjaGVjaz1UcnVlKToKNDQyOiAgICByZW1vdGU9c2hsZXguam9pbihbc3RyKHgpIGZvciB4IGluIHJlbW90ZV9hcmd2XSkKNDQzOiAgICByZXR1cm4gcnVuKHZwc19zc2hfYXJndih0LHVzZV9hZ2VudD11c2VfYWdlbnQpK1tyZW1vdGVdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKNDQ1OmRlZiBib290c3RyYXBfdnBzX2tleXModGFyZ2V0cyk6CjQ0NzogICAgZW5zdXJlX3Zwc19rbm93bl9ob3N0cyh0YXJnZXRzKQo0NTA6ICAgIGZvciB0IGluIHRhcmdldHM6CjQ1NTogICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnU1NIX0FVVEhfU09DSycpOiByYWlzZSBCYWNrdXBFcnJvcignRk9SV0FSREVEX0FHRU5UX1JFUVVJUkVEX0ZPUl9CT09UU1RSQVAnKQo0NTk6ICAgICAgICBpZiB0YWcgbm90IGluICgnQURERUQnLCdBTFJFQURZJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdWUFNfQVVUSE9SSVpFRF9LRVlfQk9PVFNUUkFQX1JFU1VMVCcpCjQ2MzogICAgdXM9W3ggZm9yIHggaW4gdGFyZ2V0cyBpZiB4Wyd0eXBlJ109PSd2cHNfdXMnXVswXQo0Njg6ZGVmIHJlbW90ZV9oYXNoc2V0KHQsY29tbWFuZCk6CjQ3MzogICAgZmlsZXM9WydldGMvbmV0YmlyZC9pbnN0YWxsLmNvbmYnLCd2YXIvbGliL25ldGJpcmQvc3RhdGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9zZXJ2aWNlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvYWN0aXZlX3Byb2ZpbGUuanNvbicsJ3Zhci9saWIvbmV0YmlyZC9kZWZhdWx0Lmpzb24nXQo0NzU6ICAgIHByZT1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNDc2OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3N1ZG8nLCctbicsJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nXStmaWxlcykKNDc3OiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNDc4OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD02MDApCjQ3OTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGNtZCkKNDgwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdNRF9TT1VSQ0VfQ0hBTkdFRF9EVVJJTkdfQ0FQVFVSRScpCjQ4MTogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc19tZCcsJ2NvbnNpc3RlbmN5JzonRklMRVNFVF9QUkVfUE9TVF9IQVNIX1NUQUJJTElUWScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNDg1OiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxoY21kKQo0ODY6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsndGFyJywnLS1udW1lcmljLW93bmVyJywnLUMnLCcvJywnLWNmJywnLScsJ2V0Yy9uZ2lueCddKQo0ODc6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo0ODg6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTkwMCkKNDg5OiAgICBwb3N0PXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNDkwOiAgICBpZiBwcmUhPXBvc3Q6IHJhaXNlIEJhY2t1cEVycm9yKCdTUEJfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo0OTE6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfc3BiJywnY29uc2lzdGVuY3knOidTVEFUSUNfQ09ORklHX0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCd0bHNfcmVjb3ZlcnknOidSRUlTU1VFX1RMU19PTl9SRVNUT1JFJywnaGFzaHNldF9zaGEyNTYnOnByZX0sTm9uZQo0OTM6VVNfUkVNT1RFX1NDUklQVD1yJycnaW1wb3J0IGlvLG9zLHNxbGl0ZTMsc3lzLHRhcmZpbGUsdGltZSxqc29uLGhhc2hsaWIKNTE2OiAgICBkc3Q9c3FsaXRlMy5jb25uZWN0KCc6bWVtb3J5OicpOyBzcmMuYmFja3VwKGRzdCkKNTE5OiAgICB0aT10YXJmaWxlLlRhckluZm8obmFtZT0oJ3NxbGl0ZS1iYWNrdXBzLycrbmFtZSkpOyB0aS5zaXplPWxlbihiKTsgdGkubW9kZT0wbzYwMDsgdGkubXRpbWU9aW50KHRpbWUudGltZSgpKTsgdGYuYWRkZmlsZSh0aSxpby5CeXRlc0lPKGIpKQo1MjM6ICAgIHJlbW90ZT1zaGxleC5qb2luKFsncHl0aG9uMycsJy1JJywnLUInLCctYycsVVNfUkVNT1RFX1NDUklQVF0pCjUyNDogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjUyNTogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MTIwMCkKNTI2OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3VzJywnY29uc2lzdGVuY3knOidTUUxJVEVfT05MSU5FX0JBQ0tVUF9QTFVTX05PTkRCX0ZJTEVTJywnc3FsaXRlX2NvdW50Jzo0fSxOb25lCjU5OTogICAgaWYgbm90IFJPVVRFUl9MRUdBQ1lfU0NSSVBULmlzX2ZpbGUoKSBvciBST1VURVJfTEVHQUNZX1NDUklQVC5pc19zeW1saW5rKCkgb3Igc2hhMjU2X2ZpbGUoUk9VVEVSX0xFR0FDWV9TQ1JJUFQpIT1ST1VURVJfTEVHQUNZX1NIQTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9MRUdBQ1lfU0NSSVBUX0lERU5USVRZJykKNjAyOiAgICBoaXRzPVtpcCBmb3IgaXAgaW4gaXBzIGlmIHNoYTI1Nl9ieXRlcyhpcC5lbmNvZGUoKSk9PVJPVVRFUl9UQVJHRVRfU0hBXQo2MDM6ICAgIGlmIGxlbihoaXRzKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9UQVJHRVRfUEFSU0UnKQo2MDQ6ICAgIHRhcmdldD1oaXRzWzBdCjYxMjogICAgaWYgbGVuKHNhZmUpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX1BBU1NGSUxFX1BBUlNFJykKNjEzOiAgICByZXR1cm4gdGFyZ2V0LHNhZmVbMF0KNjE2OiAgICByb290cz1bcGF0aGxpYi5QYXRoKCcvZXRjJykscGF0aGxpYi5QYXRoKCcvcm9vdC8uc3NoJykscGF0aGxpYi5QYXRoKCcvdmFyL2xpYi9ob21lbGFiLWJhY2t1cCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKV0KNjMxOiAgICBpZiBsZW4odW5pcSkhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdFWEFDVF9TSEFfRklMRV9OT1RfVU5JUVVFJykKNjM5OiAgICBpZiBzaGEyNTZfYnl0ZXMoYikhPVJPVVRFUl9LTk9XTl9IT1NUU19TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfS05PV05fSE9TVFNfSURFTlRJVFknKQo2NDM6ICAgIHRhcmdldCxwZj1wYXJzZV9yb3V0ZXJfbGVnYWN5KCkKNjQ2OiAgICBhcmd2PVtTU0hQQVNTLCctZicsc3RyKHBmKSxTU0gsJy1wJywnMjIyMicsJy1vJywnQmF0Y2hNb2RlPW5vJywnLW8nLCdOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cz0xJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywnLW8nLCdVc2VyS25vd25Ib3N0c0ZpbGU9JytzdHIoUk9VVEVSX0tOT1dOX0hPU1RTKSwnLW8nLCdDb25uZWN0VGltZW91dD0xNScsJ3JvdXRlcmJhY2t1cEAnK3RhcmdldCwnc2hvdyBydW5uaW5nLWNvbmZpZyddCjY0NzogICAgcD1ydW4oYXJndix0aW1lb3V0PTYwKTsgcmV0dXJuIHAuc3Rkb3V0CjY1ODogICAgaWYgbm90IGEgb3IgYSE9YjogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9SRUFEX05PVF9CWVRFX1NUQUJMRScpCjY2MDogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3JvdXRlcicsJ2NvbmZpZ19zaGEyNTYnOnNoYTI1Nl9ieXRlcyhhKSwncmVhZF9jb3VudCc6MiwncmVjb3ZlcnlfcG9saWN5JzonSU1QT1JUX1BBQ0tBR0VfT1JfU0FGRV9DTElfTk9UX0JMSU5EX0NPTkZJR19SRVBMQUNFJ30sTm9uZQo2NjI6ZGVmIHFnYV9leGVjKG5vZGUsdm1pZCxndWVzdF9hcmd2LGlucHV0X2J5dGVzPU5vbmUsdGltZW91dD02MDApOgo2NjM6ICAgIGFyZ3M9WydxbScsJ2d1ZXN0JywnZXhlYycsc3RyKHZtaWQpLCctLXN5bmNocm9ub3VzJywnMScsJy0tdGltZW91dCcsc3RyKGludCh0aW1lb3V0KSldCjY2NTogICAgYXJncyArPSBbJy0tJ10rW3N0cih4KSBmb3IgeCBpbiBndWVzdF9hcmd2XQo2NjY6ICAgIHA9c3NoX3JlbW90ZShub2RlLGFyZ3MsaW5wdXQ9aW5wdXRfYnl0ZXMsdGltZW91dD10aW1lb3V0KzYwKQo2Njg6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdRR0FfSlNPTicpCjY3MTogICAgaWYgcmMgbm90IGluICgwLE5vbmUpOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0dVRVNUX0NPTU1BTkRfRkFJTEVEJyxzdHIocmMpKQo2Nzg6ICAgIHJldHVybiBmJycnaW1wb3J0IGhhc2hsaWIsanNvbixvcyxwYXRobGliLHNlbGVjdCxzaHV0aWwsc3VicHJvY2Vzcyx0ZW1wZmlsZSx0aW1lXG5yb290PXtyb290IXJ9OyBkYj17ZGIhcn07IHN0cmF0ZWd5PXtzdHJhdGVneSFyfTsgdG9rZW49W1JFREFDVEVEXSBub3Qgcm9vdC5zdGFydHN3aXRoKCcvdmFyL3d3dy9mb3J1bXMvJykgb3Igbm90IGRiLnN0YXJ0c3dpdGgoJ3hmXycpOiByYWlzZSBTeXN0ZW1FeGl0KDIwKVxudG1wPXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4pOyB0bXAubWtkaXIobW9kZT0wbzcwMCxleGlzdF9vaz1GYWxzZSlcbmR1bXA9dG1wLydkYi5zcWwnOyBvdXQ9cGF0aGxpYi5QYXRoKCcvdG1wL2hvbWVsYWItdjIteGYtJyt0b2tlbisnLnRhci56c3QnKVxubG9jaz1Ob25lXG50cnk6XG4gIGlmIHN0cmF0ZWd5PT0nZ2xvYmFsX3JlYWRfbG9jayc6XG4gICAgbG9jaz1zdWJwcm9jZXNzLlBvcGVuKFsnbWFyaWFkYicsJy0tdXNlcj1yb290JywnLS1iYXRjaCcsJy0tc2tpcC1jb2x1bW4tbmFtZXMnLCctLXVuYnVmZmVyZWQnXSxzdGRpbj1zdWJwcm9jZXNzLlBJUEUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRleHQ9VHJ1ZSxidWZzaXplPTEpXG4gICAgbG9jay5zdGRpbi53cml0ZSgiRkxVU0ggVEFCTEVTIFdJVEggUkVBRCBMT0NLOyBTRUxFQ1QgJ0xPQ0tFRCc7XFxuIik7IGxvY2suc3RkaW4uZmx1c2goKVxuICAgIHJyLF8sXz1zZWxlY3Quc2VsZWN0KFtsb2NrLnN0ZG91dF0sW10sW10sNSlcbiAgICBpZiBub3QgcnIgb3IgbG9jay5zdGRvdXQucmVhZGxpbmUoKS5zdHJpcCgpIT0nTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdMT0NLX0FDUVVJUkUnKVxuICAgIGR1bXBfdGltZW91dD0xNVxuICBlbHNlOiBkdW1wX3RpbWVvdXQ9MTgwXG4gIHdpdGggb3BlbihkdW1wLCd3YicpIGFzIGY6XG4gICAgYXJndj1bJ21hcmlhZGItZHVtcCcsJy0tdXNlcj1yb290JywnLS1xdWljaycsJy0tc2tpcC1sb2NrLXRhYmxlcycsJy0taGV4LWJsb2InLCctLXJvdXRpbmVzJywnLS1ldmVudHMnLCctLXRyaWdnZXJzJ11cbiAgICBpZiBzdHJhdGVneT09J3NpbmdsZV90cmFuc2FjdGlvbic6IGFyZ3YuYXBwZW5kKCctLXNpbmdsZS10cmFuc2FjdGlvbicpXG4gICAgYXJndi5hcHBlbmQoZGIpXG4gICAgcT1zdWJwcm9jZXNzLnJ1bihhcmd2LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsdGltZW91dD1kdW1wX3RpbWVvdXQpXG4gICAgaWYgcS5yZXR1cm5jb2RlIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0RVTVAnKVxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIGxvY2suc3RkaW4ud3JpdGUoIlVOTE9DSyBUQUJMRVM7IFNFTEVDVCAnVU5MT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J1VOTE9DS0VEJzogcmFpc2UgUnVudGltZUVycm9yKCdVTkxPQ0snKVxuICAgIGxvY2suc3RkaW4uY2xvc2UoKTsgbG9jay53YWl0KHRpbWVvdXQ9NSk7IGxvY2s9Tm9uZVxuICByZWw9cm9vdC5sc3RyaXAoJy8nKVxuICB0YXI9c3VicHJvY2Vzcy5Qb3BlbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLScscmVsLCctQycsc3RyKHRtcCksJ2RiLnNxbCddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTClcbiAgej1zdWJwcm9jZXNzLlBvcGVuKFsnenN0ZCcsJy1UMCcsJy0zJywnLXEnLCctbycsc3RyKG91dCldLHN0ZGluPXRhci5zdGRvdXQsc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCxzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKTsgdGFyLnN0ZG91dC5jbG9zZSgpXG4gIHpyPXoud2FpdCh0aW1lb3V0PTYwMCk7IHRyPXRhci53YWl0KHRpbWVvdXQ9NjApXG4gIGlmIHpyIT0wIG9yIHRyIT0wOiByYWlzZSBSdW50aW1lRXJyb3IoJ0FSQ0hJVkUnKVxuICBoPWhhc2hsaWIuc2hhMjU2KCk7IG49MFxuICB3aXRoIG9wZW4ob3V0LCdyYicpIGFzIGY6XG4gICAgZm9yIGIgaW4gaXRlcihsYW1iZGE6Zi5yZWFkKDEwNDg1NzYpLGInJyk6IGgudXBkYXRlKGIpOyBuKz1sZW4oYilcbiAgcHJpbnQoanNvbi5kdW1wcyh7eydwYXRoJzpzdHIob3V0KSwnYnl0ZXMnOm4sJ3NoYTI1Nic6aC5oZXhkaWdlc3QoKSwnZGJfYnl0ZXMnOmR1bXAuc3RhdCgpLnN0X3NpemUsJ3N0cmF0ZWd5JzpzdHJhdGVneX19LHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCcsJywnOicpKSlcbmZpbmFsbHk6XG4gIGlmIGxvY2sgaXMgbm90IE5vbmU6XG4gICAgdHJ5OiBsb2NrLmtpbGwoKTsgbG9jay53YWl0KHRpbWVvdXQ9MylcbiAgICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4gIHRyeTogc2h1dGlsLnJtdHJlZSh0bXApXG4gIGV4Y2VwdCBFeGNlcHRpb246IHBhc3NcbicnJwo2ODE6ICAgIG91dD1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctJ10seGZfZ3Vlc3RfYnVpbGRlcih0LGdlbikuZW5jb2RlKCksdGltZW91dD05MDApCjY4MzogICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fQlVJTERFUl9KU09OJykKNjg1OiAgICBpZiBub3QgcGF0aCBvciBub3QgaXNpbnN0YW5jZShzaXplLGludCkgb3Igc2l6ZTw9MCBvciBub3QgcmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NjR9JyxleHBlY3RlZCBvciAnJyk6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfUkVTVUxUJykKNjkyOiAgICAgICAgICAgICAgICBjb2RlPSJpbXBvcnQgYmFzZTY0LHN5czsgcD1zeXMuYXJndlsxXTsgbz1pbnQoc3lzLmFyZ3ZbMl0pOyBuPWludChzeXMuYXJndlszXSk7IGY9b3BlbihwLCdyYicpOyBmLnNlZWsobyk7IGI9Zi5yZWFkKG4pOyBmLmNsb3NlKCk7IHN5cy5zdGRvdXQud3JpdGUoYmFzZTY0LmI2NGVuY29kZShiKS5kZWNvZGUoKSkiCjY5MzogICAgICAgICAgICAgICAgYjY0PXFnYV9leGVjKHRbJ25vZGUnXSx0Wyd2bWlkJ10sWycvdXNyL2Jpbi9weXRob24zJywnLUknLCctQicsJy1jJyxjb2RlLHBhdGgsc3RyKG9mZiksc3RyKHRha2UpXSxOb25lLHRpbWVvdXQ9NjApLnN0cmlwKCkKNjk1OiAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfQkFTRTY0JykKNjk2OiAgICAgICAgICAgICAgICBpZiBsZW4oYikhPXRha2U6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX1FHQV9DSFVOS19MRU5HVEgnKQo3MDE6ICAgICAgICBxZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcm0nLCctZicscGF0aF0sTm9uZSx0aW1lb3V0PTMwKQo3MDM6ICAgICAgICBpZiBwcmltYXJ5IGlzIE5vbmU6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0dVRVNUX1RFTVBfQ0xFQU5VUCcpCjcwNTogICAgaWYgZ290IT1zaXplIG9yIGguaGV4ZGlnZXN0KCkhPWV4cGVjdGVkOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19TVFJFQU1fU0hBX01JU01BVENIJykKNzA2OiAgICByZXR1cm4gbG9jYWwseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3hlbmZvcm8nLCdzaXRlJzp0WydzbHVnJ10sJ3ZtaWQnOnRbJ3ZtaWQnXSwnbm9kZSc6dFsnbm9kZSddLCdkdW1wX3N0cmF0ZWd5Jzp0WydkdW1wX3N0cmF0ZWd5J10sJ2RiX2R1bXBfYnl0ZXMnOmouZ2V0KCdkYl9ieXRlcycpfSxOb25lCjcxOTogICAgICAgIGVsc2U6IG9rPShzc2hfcmVtb3RlKG5vZGUsWyd0ZXN0JywnLWUnLCcvJytyZWxdLHRpbWVvdXQ9MjAsY2hlY2s9RmFsc2UpLnJldHVybmNvZGU9PTApCjcyMjogICAgaWYgbm90IHJlcXVpcmVkLmlzc3Vic2V0KHNldChwYXRocykpOiByYWlzZSBCYWNrdXBFcnJvcignTk9ERV9CVU5ETEVfUkVRVUlSRURfUEFUSF9NSVNTSU5HJykKNzI0OiAgICBhcmd2PVsndGFyJywnLS1udW1lcmljLW93bmVyJywnLS14YXR0cnMnLCctLWFjbHMnLCctQycsJy8nLCctY2YnLCctJ10rcGF0aHMKNzI1OiAgICBpZiBub2RlPT0ncHZlMDEnOiBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9MzAwKQo3Mjc6ICAgICAgICByZW1vdGU9J1BBVEg9L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW47IGV4cG9ydCBQQVRIOyBleGVjICcrc2hsZXguam9pbihhcmd2KQo3Mjg6ICAgICAgICBwaXBlX3RvX3pzdGQoW1NTSCwnLW8nLCdCYXRjaE1vZGU9eWVzJywnLW8nLCdTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9eWVzJywncm9vdEAnK25vZGUscmVtb3RlXSxwYXlsb2FkLHRpbWVvdXQ9NjAwKQo3Mjk6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidwdmVfbm9kZV9idW5kbGUnLCdub2RlJzpub2RlLCdyZWNvdmVyeV9wb2xpY3knOidDTEVBTl9JTlNUQUxMX0pPSU5fUkVDT05DSUxFX05PVF9CTElORF9QTVhDRlNfT1ZFUldSSVRFJywnbWVtYmVyX3Jvb3RzJzpsZW4ocGF0aHMpfSxOb25lCjczMTpkZWYgY2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk6Cjc0MDogICAgcmFpc2UgQmFja3VwRXJyb3IoJ0NBUFRVUkVfVFlQRV9VTktOT1dOJykKNzQ1OiAgICAgICAgc3NoX3JlbW90ZShjbGVhbnVwWydub2RlJ10sWydybScsJy1yZicsJy0tJyxjbGVhbnVwWydwYXRoJ11dLHRpbWVvdXQ9NjApCjc0ODogICAgZW5naW5lPXBhdGhsaWIuUGF0aCgnL3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnKQo3NDk6ICAgIGlmIHNoYTI1Nl9maWxlKGVuZ2luZSkhPScwYjNhMGY2ODVkNGU2N2NiODYyNTBkZjg5YTQ5MThhZmYyZTZjNjc3OTliN2QzNWIwZTU0YjFiYmMwMTZlZTU3JzogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTlRST0xfRU5HSU5FX0lERU5USVRZJykKNzUwOiAgICByb290PXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL2NvbnRyb2wtYm9vdHN0cmFwLXYyJykKNzU1OiAgICAgICAgICAgIGlmIGouZ2V0KCdzdGF0dXMnKT09J1NFQUxFRCcgYW5kIGouZ2V0KCdnZW5lcmF0aW9uJyk6IHJvd3MuYXBwZW5kKChwLnN0YXQoKS5zdF9tdGltZSxqWydnZW5lcmF0aW9uJ10pKQo3NTc6ICAgIGlmIG5vdCByb3dzOiByYWlzZSBCYWNrdXBFcnJvcignQ09OVFJPTF9TRUFMRURfR0VORVJBVElPTl9NSVNTSU5HJykKNzYwOiAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHZlcmlmaWNhdGlvbj0nZXhpc3RpbmdfY29udHJvbF9lbmdpbmVfdmVyaWZ5JyxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzYxOiAgICByZXR1cm4geydsb2dpY2FsX2lkJzp0Wydsb2dpY2FsX2lkJ10sJ2dlbmVyYXRpb24nOmdlbiwncmVzdWx0JzonU1VDQ0VTUycsJ3BheWxvYWRfYnl0ZXMnOjAsJ3JlcGxpY2FzJzoyfQo3NjM6ZGVmIGJhY2t1cF90YXJnZXQodCxncmVlbl92ZXJpZnk9RmFsc2UpOgo3NjU6ICAgIGdlbj1nZW5lcmF0aW9uX2lkKHRbJ2xvZ2ljYWxfaWQnXSk7IHdvcms9ZW5zdXJlX2RpcihXT1JLX1JPT1QvZ2VuLDBvNzAwKQo3NjY6ICAgIHBheWxvYWQ9Tm9uZTsgY2xlYW51cD1Ob25lOyBzZWFsZWQ9RmFsc2UKNzY4OiAgICAgICAgcGF5bG9hZCxtZXRhLGNsZWFudXA9Y2FwdHVyZV90YXJnZXQodCxnZW4sd29yayk7IG1ldGFbJ2dlbmVyYXRpb24nXT1nZW4KNzY5OiAgICAgICAgbWFuaWZlc3QsbXNoYSxhbGxvYz11cGxvYWRfYW5kX3NlYWwodCxwYXlsb2FkLG1ldGEpOyBzZWFsZWQ9VHJ1ZQo3NzA6ICAgICAgICAjIFNFQUxFRC1maXJzdCBjbGVhbnVwIGludmFyaWFudDogb25seSBub3cgcmVtb3ZlIHNvdXJjZS9sb2NhbCBwYXlsb2FkLgo3NzY6ICAgICAgICAgICAgaGE9cmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxtYW5pZmVzdFsncmVwbGljYXMnXVswXSxhKTsgdmFsaWRhdGVfcGF5bG9hZCh0LGEpCjc3NzogICAgICAgICAgICBoYj1yZWNvbnN0cnVjdF9yZXBsaWNhKG1hbmlmZXN0LG1hbmlmZXN0WydyZXBsaWNhcyddWzFdLGIpOyB2YWxpZGF0ZV9wYXlsb2FkKHQsYikKNzc4OiAgICAgICAgICAgIGlmIGhhIT1oYiBvciBoYSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdHUkVFTl9SRVBMSUNBX0NPTVBBUkUnKQo3ODE6ICAgICAgICB3cml0ZV9zdGF0ZSh0Wydsb2dpY2FsX2lkJ10sJ1NVQ0NFU1MnLGdlbmVyYXRpb249Z2VuLHBheWxvYWRfc2hhMjU2PW1hbmlmZXN0WydwYXlsb2FkX3NoYTI1NiddLG1hbmlmZXN0X3NoYTI1Nj1tc2hhLHJlcGxpY2FzPW1hbmlmZXN0WydyZXBsaWNhcyddLGdyZWVuX3ZlcmlmaWVkPWJvb2woZ3JlZW5fdmVyaWZ5KSxsYXN0X3N1Y2Nlc3NfZXBvY2g9ZXBvY2goKSkKNzgyOiAgICAgICAgcmV0dXJuIHsnbG9naWNhbF9pZCc6dFsnbG9naWNhbF9pZCddLCdnZW5lcmF0aW9uJzpnZW4sJ3Jlc3VsdCc6J1NVQ0NFU1MnLCdwYXlsb2FkX2J5dGVzJzptYW5pZmVzdFsncGF5bG9hZF9ieXRlcyddLCdyZXBsaWNhcyc6MiwnYWxsb2NhdG9yX2hlYWx0aHknOmFsbG9jWydoZWFsdGh5J119Cjc4MzogICAgZXhjZXB0IEJhY2t1cEVycm9yIGFzIGU6Cjc4NDogICAgICAgIHJlc3VsdD0nUEFSVElBTF9WQUxJRCcgaWYgc2VhbGVkIGVsc2UgJ0ZBSUwnCjc4NTogICAgICAgIHdyaXRlX3N0YXRlKHRbJ2xvZ2ljYWxfaWQnXSxyZXN1bHQsZ2VuZXJhdGlvbj1nZW4scmVhc29uPWUuY29kZSxzZWFsZWQ9c2VhbGVkKQo3ODk6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IGNob3Nlbj1bdCBmb3IgdCBpbiB0YXJnZXRzIGlmIHQuZ2V0KCdncmVlbjEnKV0KNzkxOiAgICBib290cz1ib290c3RyYXBfdnBzX2tleXModGFyZ2V0cykKNzk4OiAgICAgICAgICAgIHI9YmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT0odFsndHlwZSddIT0nY29udHJvbCcpKQo4MDA6ICAgICAgICAgICAgcHJpbnQoZid7bGFiZWx9X3trZXl9X0dFTkVSQVRJT049e3JbImdlbmVyYXRpb24iXX0nKQo4MDQ6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKODA2OiAgICBwcmludChmJ3tsYWJlbH1fVEFSR0VUX0NPVU5UPXtsZW4oY2hvc2VuKX0nKQo4MDk6ICAgIHByaW50KGYne2xhYmVsfV9DTE9VRF9CQUNLVVBfVEFSR0VUX0NPVU5UPXtzdW0oMSBmb3IgdCBpbiBjaG9zZW4gaWYgdFsidHlwZSJdIT0iY29udHJvbCIpfScpCjgxMDogICAgcHJpbnQoZid7bGFiZWx9X0NPTlRST0xfVkVSSUZZX1RBUkdFVF9DT1VOVD17c3VtKDEgZm9yIHQgaW4gY2hvc2VuIGlmIHRbInR5cGUiXT09ImNvbnRyb2wiKX0nKQo4MTE6ICAgIGlmIGZhaWx1cmVzOiByYWlzZSBCYWNrdXBFcnJvcihsYWJlbCsnX1RBUkdFVF9GQUlMVVJFUycsJywnLmpvaW4oeFswXSBmb3IgeCBpbiBmYWlsdXJlcykpCjgxNTpkZWYgc2NoZWR1bGVkX3J1bigpOgo4MTY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IHN0YXRlPWxvYWRfc3RhdGVfYWxsKCk7IHQ9Y2hvb3NlX2R1ZV90YXJnZXQodGFyZ2V0cyxzdGF0ZSkKODE4OiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQnKTsgcmV0dXJuIDAKODE5OiAgICBwcmludCgnU0NIRURVTEVfVEFSR0VUPScrdFsnbG9naWNhbF9pZCddKQo4MjA6ICAgIHRyeTogYmFja3VwX3RhcmdldCh0LGdyZWVuX3ZlcmlmeT1GYWxzZSkKODIxOiAgICBleGNlcHQgQmFja3VwRXJyb3IgYXMgZToKODIyOiAgICAgICAgcHJpbnQoJ1NDSEVEVUxFX1JFU1VMVD1GQUlMJyk7IHByaW50KCdTQ0hFRFVMRV9SRUFTT049JytlLmNvZGUpOyByZXR1cm4gMgo4MjM6ICAgIHByaW50KCdTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUycpOyByZXR1cm4gMAo4MjY6ICAgIHRhcmdldHM9bG9hZF90YXJnZXRzKCk7IG09e3RbJ2xvZ2ljYWxfaWQnXTp0IGZvciB0IGluIHRhcmdldHN9CjgyNzogICAgaWYgbG9naWNhbF9pZCBub3QgaW4gbTogcmFpc2UgQmFja3VwRXJyb3IoJ0RJU0NPVkVSX1VOS05PV05fVEFSR0VUJykKODI4OiAgICB0PW1bbG9naWNhbF9pZF07IHByZWZpeD1mJ2hvbWVsYWItYmFja3Vwcy92Mi97dFsic2NvcGUiXX0ve2xvZ2ljYWxfaWR9L2dlbmVyYXRpb25zJwo4MzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgo4MzE6ICAgICAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydsc2YnLGNyeXB0Kyc6JytwcmVmaXgsJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD02MCxjaGVjaz1GYWxzZSkKODM2OiAgICAgICAgICAgIHNlYWw9Y3J5cHQrJzonK3ByZWZpeCsnLycrZysnL1NFQUxFRC5qc29uJwo4Mzc6ICAgICAgICAgICAgcT1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxzZWFsXSx0aW1lb3V0PTYwLGNoZWNrPUZhbHNlKQo4NDE6ICAgICAgICAgICAgaWYgai5nZXQoJ3N0YXR1cycpPT0nU0VBTEVEJyBhbmQgai5nZXQoJ2dlbmVyYXRpb24nKT09ZzogYnlnZW4uc2V0ZGVmYXVsdChnLHNldCgpKS5hZGQocGh5c2ljYWwpCjg0MzogICAgcHJpbnQoJ0RJU0NPVkVSX0xPR0lDQUxfSUQ9Jytsb2dpY2FsX2lkKTsgcHJpbnQoJ0RJU0NPVkVSX1RXT19QSFlTSUNBTF9TRUFMRURfQ09VTlQ9JytzdHIobGVuKGdvb2QpKSkKODQ0OiAgICBmb3IgZyBpbiBnb29kWy0yMDpdOiBwcmludCgnRElTQ09WRVJfR0VORVJBVElPTj0nK2cpCjg0OTogICAgYXNzZXJ0IGxlbihSRU1PVEVTKT09MTMgYW5kIGxlbih7cCBmb3IgXyxwIGluIFJFTU9URVN9KT09MTMKODUwOiAgICBhc3NlcnQgbGVuKGRlZmF1bHRfdGFyZ2V0cygpKT49Mjg= +PIPE_33_SCORE=3 +PIPE_33_BASENAME=engine394.py +PIPE_33_PATH_SHA256=4e2dc451f7792d52e3fec3607ed4ce812a63e37f6a4db1314e1bc31c9bb6e04c +PIPE_33_FILE_SHA256=c201145ac029a3ca43027df292fc57f91c2fa40118e2ce8225cf5c2c070a2e0d +PIPE_33_SCHEDULE_TARGET_COUNT=1 +PIPE_33_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_33_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_33_VZDUMP_QEMU_COUNT=0 +PIPE_33_RCLONE_COUNT=31 +PIPE_33_CLOUD_QUORUM_COUNT=0 +PIPE_33_SEAL_WRITTEN_COUNT=0 +PIPE_33_PAYLOAD_PARTS_COUNT=0 +PIPE_33_TRANSPORT_COUNT=0 +PIPE_33_RESTORE_VALIDATION_COUNT=0 +PIPE_33_SCHEDULE_RESULT_COUNT=2 +PIPE_33_RELEVANT_LINE_COUNT=319 +PIPE_33_RELEVANT_B64=NjpTVEFURV9ST09UPXBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAtdjInKQo3OkNPTkZJR19ST09UPXBhdGhsaWIuUGF0aCgnL2V0Yy9ob21lbGFiLWJhY2t1cC12MicpCjg6VEFSR0VUU19QQVRIPUNPTkZJR19ST09ULyd0YXJnZXRzLmpzb24nCjk6V09SS19ST09UPXBhdGhsaWIuUGF0aCgnL21udC9zdGFnaW5nL2hvbWVsYWItYmFja3VwLXYyJykKMTA6RU5HSU5FX1BBVEg9cGF0aGxpYi5QYXRoKCcvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1iYWNrdXAtdjInKQoxMTpSQ0xPTkU9c2h1dGlsLndoaWNoKCdyY2xvbmUnKSBvciAnL3Vzci9iaW4vcmNsb25lJwoxOTpST1VURVJfTEVHQUNZX1NDUklQVD1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLXJvdXRlci1ydW5uaW5nLWNvbmZpZy1tYWlsLWNsb3VkJykKMjE6Uk9VVEVSX1RBUkdFVF9TSEE9JzRmOWRhMTI4MzE2NmExZTlmNGU2YmM3ZGQyNDBjNzZhZWY4NTc3MjE3N2Y3MTdmOTJhYmI2ZThlMmJiOGRlOTAnCjI1OkdVRVNUMjY2PXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjY4cjEvZ3Vlc3QyNjYucHknKQoyNzpQMjcwPXBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9wdmUtcmV0cnktMjcwcjEvcHZlMjcwLnB5JykKMjk6UDI4Mj1wYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvY3QtYmFja3VwLTI4MnIxL3B2ZTI4Mi5weScpCjM0OlJFTU9URVM9WwozOTpjbGFzcyBCYWNrdXBFcnJvcihSdW50aW1lRXJyb3IpOgo2MjogICAgaWYgbGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBuIT1sZW5ndGg6IHJhaXNlIEJhY2t1cEVycm9yKCdMT0NBTF9QQVJUX1NIT1JUX1JFQUQnKQo2NjogICAgaWYgbm90IGlzaW5zdGFuY2UobixpbnQpIG9yIG48PTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQQVlMT0FEX1NJWkVfSU5WQUxJRCcpCjg2OiAgICBpZiBsZW4ob3V0KSE9MjogcmFpc2UgQmFja3VwRXJyb3IoJ0FMTE9DQVRPUl9UV09fRElTVElOQ1RfQUNDT1VOVFNfVU5BVkFJTEFCTEUnKQo4OTpkZWYgcmVtb3RlX2dlbmVyYXRpb25fcGF0aChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgo5MTogICAgZm9yIHggaW4gKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbik6CjkyOiAgICAgICAgaWYgbm90IHNhZmUuZnVsbG1hdGNoKHgpOiByYWlzZSBCYWNrdXBFcnJvcignVU5TQUZFX0NMT1VEX0NPTVBPTkVOVCcpCjkzOiAgICByZXR1cm4gZidob21lbGFiLWJhY2t1cHMvdjIve3Njb3BlfS97bG9naWNhbF9pZH0vZ2VuZXJhdGlvbnMve2dlbmVyYXRpb259Jwo5NTpkZWYgbWFrZV9tYW5pZmVzdChzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24scGF5bG9hZF9ieXRlcyxwYXlsb2FkX3NoYTI1NixwYXJ0cyxyZXBsaWNhcyxzb3VyY2VfbWV0YSk6Cjk2OiAgICBpZiBsZW4ocmVwbGljYXMpIT0yIG9yIGxlbih7clsncGh5c2ljYWwnXSBmb3IgciBpbiByZXBsaWNhc30pIT0yOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUkVQTElDQV9QSFlTSUNBTF9EVVBMSUNBVEUnKQo5NzogICAgaWYgbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScscGF5bG9hZF9zaGEyNTYpOiByYWlzZSBCYWNrdXBFcnJvcignTUFOSUZFU1RfUEFZTE9BRF9TSEFfSU5WQUxJRCcpCjk4OiAgICBpZiBzdW0oaW50KHBbJ2J5dGVzJ10pIGZvciBwIGluIHBhcnRzKSE9cGF5bG9hZF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1BBUlRfVE9UQUxfTUlTTUFUQ0gnKQo5OTogICAgcmV0dXJuIHsnc2NoZW1hJzoyLCdzY29wZSc6c2NvcGUsJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2NyZWF0ZWRfYXRfdXRjJzp1dGNub3coKSwKMTA2OmRlZiBkZWZhdWx0X3RhcmdldHMoKToKMTEwOiAgICBmb3Igdm1pZCx0eXAgaW4gWygxMTAsJ2x4YycpLCgxMTEsJ2x4YycpLCgxMTIsJ2x4YycpLCgxMTMsJ2x4YycpLCgxMzAsJ3FlbXUnKSwoMTUwLCdxZW11JyksKDE2MCwncWVtdScpLCgxNzAsJ3FlbXUnKSwoMTcxLCdxZW11JyksKDE5MCwncWVtdScpLCgyMTAsJ3FlbXUnKSwoMjExLCdxZW11JyksKDkxMzAsJ3FlbXUnKV06CjExMTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzooJ2N0JyBpZiB0eXA9PSdseGMnIGVsc2UgJ3ZtJykrc3RyKHZtaWQpLCdzY29wZSc6J3B2ZScsJ3R5cGUnOidwdmVfZ3Vlc3QnLCd2bWlkJzp2bWlkLCdndWVzdF90eXBlJzp0eXAsJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnZtaWQ9PTExMn0pCjEyNTogICAgICAoJ2dhbWV2aXBlJywxNjAsJ3B2ZTAyJywnL3Zhci93d3cvZm9ydW1zL2dhbWV2aXBlL3B1YmxpYycsJ3hmX2dhbWV2aXBlJywnZ2xvYmFsX3JlYWRfbG9jaycpLAoxMjY6ICAgICAgKCdoa21vZHMnLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvaGttb2RzL3B1YmxpYycsJ3hmX2hrbW9kcycsJ2dsb2JhbF9yZWFkX2xvY2snKSwKMTI3OiAgICAgICgnemFrcnV0aW0nLDE2MCwncHZlMDInLCcvdmFyL3d3dy9mb3J1bXMvemFrcnV0aW0vcHVibGljJywneGZfemFrcnV0aW0nLCdnbG9iYWxfcmVhZF9sb2NrJyldCjEyODogICAgZm9yIHNsdWcsdm1pZCxub2RlLHJvb3QsZGIsc3RyYXRlZ3kgaW4gc2l0ZXM6CjEyOTogICAgICAgIG91dC5hcHBlbmQoeydsb2dpY2FsX2lkJzoneGYtJytzbHVnLCdzY29wZSc6J3hlbmZvcm8nLCd0eXBlJzoneGVuZm9ybycsJ3NsdWcnOnNsdWcsJ3ZtaWQnOnZtaWQsJ25vZGUnOm5vZGUsJ2FwcF9yb290Jzpyb290LCdkYl9uYW1lJzpkYiwnZHVtcF9zdHJhdGVneSc6c3RyYXRlZ3ksJ2R1ZV9zZWNvbmRzJzpkLCdlbmFibGVkJzpUcnVlLCdncmVlbjEnOnNsdWcgaW4gKCdjb2RldmlwZScsJ3pha3J1dGltJyl9KQoxMzM6ZGVmIGNob29zZV9kdWVfdGFyZ2V0KHRhcmdldHMsc3RhdGUsbm93PU5vbmUpOgoxMzY6ICAgIGZvciB0IGluIHRhcmdldHM6CjEzOTogICAgICAgIGxhc3Q9aW50KHN0YXRlLmdldCh0Wydsb2dpY2FsX2lkJ10se30pLmdldCgnbGFzdF9zdWNjZXNzX2Vwb2NoJywwKSkKMTQ2OmRlZiBydW4oYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIGNoZWNrPVRydWUsIGVudj1Ob25lKToKMTQ4OiAgICAgICAgcD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSx0aW1lb3V0PXRpbWVvdXQsZW52PWVudikKMTQ5OiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfVElNRU9VVCcpCjE1MDogICAgaWYgY2hlY2sgYW5kIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ0NPTU1BTkRfRkFJTEVEJyxzdHIocC5yZXR1cm5jb2RlKSkKMTUzOmRlZiBzdHJlYW1fcHJvY2Vzc190b19maWxlKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNTY6ICAgICAgICB0cnk6cD1zdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWlucHV0LHN0ZG91dD1mLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0KQoxNTc6ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX1RJTUVPVVQnKQoxNTg6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1NUUkVBTV9DT01NQU5EX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjE2MDpkZWYgcGlwZV90b196c3RkKGFyZ3Ysb3V0X3BhdGgsdGltZW91dD0xODAwLGlucHV0PU5vbmUpOgoxNjM6ICAgICAgICBzcmM9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBpcyBub3QgTm9uZSBlbHNlIE5vbmUsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoxNzE6ICAgICAgICAgICAgc3JjLmtpbGwoKTsgc3JjLndhaXQoKTsgcmFpc2UgQmFja3VwRXJyb3IoJ1BJUEVfU09VUkNFX1RJTUVPVVQnKQoxNzc6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignUElQRV9USU1FT1VUJykKMTc4OiAgICBpZiBzcmMucmV0dXJuY29kZSE9MCBvciB6LnJldHVybmNvZGUhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdQSVBFX0ZBSUxFRCcsZid7c3JjLnJldHVybmNvZGV9X3t6LnJldHVybmNvZGV9JykKMTkzOmRlZiBsb2FkX3RhcmdldHMoKToKMTk0OiAgICBqPWpzb24ubG9hZHMoVEFSR0VUU19QQVRILnJlYWRfdGV4dCgpKQoxOTU6ICAgIGlmIGouZ2V0KCdzY2hlbWEnKSE9MSBvciBub3QgaXNpbnN0YW5jZShqLmdldCgndGFyZ2V0cycpLGxpc3QpOiByYWlzZSBCYWNrdXBFcnJvcignVEFSR0VUX01BTklGRVNUX1NDSEVNQScpCjE5NjogICAgaWRzPVt4LmdldCgnbG9naWNhbF9pZCcpIGZvciB4IGluIGpbJ3RhcmdldHMnXV0KMTk3OiAgICBpZiBsZW4oaWRzKSE9bGVuKHNldChpZHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ1RBUkdFVF9NQU5JRkVTVF9EVVBMSUNBVEUnKQoxOTg6ICAgIHJldHVybiBqWyd0YXJnZXRzJ10KMjAwOmRlZiBsb2FkX3N0YXRlX2FsbCgpOgoyMDI6ICAgIHJvb3Q9U1RBVEVfUk9PVC8nc3RhdGUnCjIxMDpkZWYgd3JpdGVfc3RhdGUobG9naWNhbF9pZCxyZXN1bHQsKiprdyk6CjIxMTogICAgaWYgcmVzdWx0IG5vdCBpbiBSRVNVTFRfQ0xBU1NFUzogcmFpc2UgQmFja3VwRXJyb3IoJ1JFU1VMVF9DTEFTU19JTlZBTElEJykKMjE0OiAgICBhdG9taWNfd3JpdGUoU1RBVEVfUk9PVC8nc3RhdGUnLyhsb2dpY2FsX2lkKycuanNvbicpLGNhbm9uaWNhbF9qc29uKGopK2InXG4nLDBvNjAwKQoyMTc6ZGVmIHJjbG9uZV9iYXNlX2FyZ3MoKToKMjE4OiAgICByZXR1cm4gW1JDTE9ORV0KMjIwOmRlZiByY2xvbmVfYWJvdXQocmVtb3RlKToKMjIxOiAgICBwPXJ1bihyY2xvbmVfYmFzZV9hcmdzKCkrWydhYm91dCcscmVtb3RlKyc6JywnLS1qc29uJywnLS1jb250aW1lb3V0JywnMTVzJywnLS10aW1lb3V0JywnNDVzJ10sdGltZW91dD02MCkKMjIzOiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0FCT1VUX0pTT04nKQoyMjU6ICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyZWUsaW50KTogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9GUkVFX1VOS05PV04nKQoyMzA6ICAgIGZvciBjcnlwdCxwaHlzaWNhbCBpbiBSRU1PVEVTOgoyMzE6ICAgICAgICB0cnk6IGZyZWU9cmNsb25lX2Fib3V0KGNyeXB0KQoyMzI6ICAgICAgICBleGNlcHQgQmFja3VwRXJyb3I6IGJhZCs9MTsgY29udGludWUKMjM3OmRlZiByZW1vdGVfZXhpc3RzX2FueShzY29wZSxsb2dpY2FsX2lkLGdlbmVyYXRpb24pOgoyMzg6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHNjb3BlLGxvZ2ljYWxfaWQsZ2VuZXJhdGlvbikKMjM5OiAgICBmb3IgY3J5cHQsX3BoeXNpY2FsIGluIFJFTU9URVM6CjI0MDogICAgICAgIHA9cnVuKHJjbG9uZV9iYXNlX2FyZ3MoKStbJ2xzZicsY3J5cHQrJzonK3JlbCwnLS1tYXgtZGVwdGgnLCcxJ10sdGltZW91dD00NSxjaGVjaz1GYWxzZSkKMjQ0OmRlZiByY2xvbmVfcmNhdChyZW1vdGVfcGF0aCwgc291cmNlX3BhdGg9Tm9uZSwgb2Zmc2V0PTAsIGxlbmd0aD1Ob25lLCBkYXRhPU5vbmUsIHRpbWVvdXQ9MzYwMCk6CjI0NTogICAgYXJndj1yY2xvbmVfYmFzZV9hcmdzKCkrWydyY2F0JyxyZW1vdGVfcGF0aCwnLS1yZXRyaWVzJywnMycsJy0tbG93LWxldmVsLXJldHJpZXMnLCc1JywnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNW0nXQoyNDY6ICAgIHA9c3VicHJvY2Vzcy5Qb3Blbihhcmd2LHN0ZGluPXN1YnByb2Nlc3MuUElQRSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCjI1NjogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBiOiByYWlzZSBCYWNrdXBFcnJvcignVVBMT0FEX0xPQ0FMX1NIT1JUX1JFQUQnKQoyNjQ6ICAgIGlmIHAucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9SQ0FUX0ZBSUxFRCcsc3RyKHAucmV0dXJuY29kZSkpCjI2NjpkZWYgcmNsb25lX2NhdF9oYXNoKHJlbW90ZV9wYXRoLCBleHBlY3RlZF9ieXRlcz1Ob25lLCB0aW1lb3V0PTM2MDApOgoyNjg6ICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihyY2xvbmVfYmFzZV9hcmdzKCkrWydjYXQnLHJlbW90ZV9wYXRoLCctLWNvbnRpbWVvdXQnLCcyMHMnLCctLXRpbWVvdXQnLCc1bSddLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkgYXMgcDoKMjcxOiAgICAgICAgICAgICAgICBwLmtpbGwoKTsgcC53YWl0KCk7IHJhaXNlIEJhY2t1cEVycm9yKCdSQ0xPTkVfQ0FUX1RJTUVPVVQnKQoyNzY6ICAgIGlmIHJjIT0wOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9GQUlMRUQnLHN0cihyYykpCjI3NzogICAgaWYgZXhwZWN0ZWRfYnl0ZXMgaXMgbm90IE5vbmUgYW5kIG4hPWV4cGVjdGVkX2J5dGVzOiByYWlzZSBCYWNrdXBFcnJvcignUkNMT05FX0NBVF9TSVpFX01JU01BVENIJykKMjgwOmRlZiByY2xvbmVfY2F0X2J5dGVzKHJlbW90ZV9wYXRoLG1heF9ieXRlcz00KjEwMjQqMTAyNCk6CjI4MTogICAgcD1ydW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxyZW1vdGVfcGF0aCwnLS1jb250aW1lb3V0JywnMjBzJywnLS10aW1lb3V0JywnNjBzJ10sdGltZW91dD05MCkKMjgyOiAgICBpZiBsZW4ocC5zdGRvdXQpPm1heF9ieXRlczogcmFpc2UgQmFja3VwRXJyb3IoJ1JDTE9ORV9TTUFMTF9PQkpFQ1RfVE9PX0xBUkdFJykKMjg1OmRlZiBnZW5lcmF0aW9uX2lkKGxvZ2ljYWxfaWQpOgoyODk6ZGVmIHVwbG9hZF9hbmRfc2VhbCh0LHBheWxvYWRfcGF0aCxzb3VyY2VfbWV0YSk6CjI5MjogICAgZ2VuPXNvdXJjZV9tZXRhWydnZW5lcmF0aW9uJ107IHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKHRbJ3Njb3BlJ10sdFsnbG9naWNhbF9pZCddLGdlbikKMjkzOiAgICBpZiByZW1vdGVfZXhpc3RzX2FueSh0WydzY29wZSddLHRbJ2xvZ2ljYWxfaWQnXSxnZW4pOiByYWlzZSBCYWNrdXBFcnJvcignR0VORVJBVElPTl9DT0xMSVNJT04nKQoyOTY6ICAgIG1hbmlmZXN0PW1ha2VfbWFuaWZlc3QodFsnc2NvcGUnXSx0Wydsb2dpY2FsX2lkJ10sZ2VuLG4scHNoYSxwYXJ0cyxyZXBzLHNvdXJjZV9tZXRhKQoyOTc6ICAgIG1iPWNhbm9uaWNhbF9qc29uKG1hbmlmZXN0KStiJ1xuJzsgbXNoYT1zaGEyNTZfYnl0ZXMobWIpCjMwMjogICAgICAgICAgICByY2xvbmVfcmNhdChycCxzb3VyY2VfcGF0aD1wYXlsb2FkX3BhdGgsb2Zmc2V0PXBhcnRbJ29mZnNldCddLGxlbmd0aD1wYXJ0WydieXRlcyddKQozMDM6ICAgICAgICAgICAgZ290LGdvdG49cmNsb25lX2NhdF9oYXNoKHJwLHBhcnRbJ2J5dGVzJ10pCjMwNDogICAgICAgICAgICBpZiBnb3QhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUEFSVF9SRUFEQkFDS19TSEFfTUlTTUFUQ0gnKQozMDU6ICAgICAgICByY2xvbmVfcmNhdChiYXNlKycvbWFuaWZlc3QuanNvbicsZGF0YT1tYikKMzA2OiAgICAgICAgaWYgcmNsb25lX2NhdF9ieXRlcyhiYXNlKycvbWFuaWZlc3QuanNvbicpIT1tYjogcmFpc2UgQmFja3VwRXJyb3IoJ01BTklGRVNUX1JFQURCQUNLX01JU01BVENIJykKMzA3OiAgICBzZWFsPXsnc2NoZW1hJzoxLCdnZW5lcmF0aW9uJzpnZW4sJ2xvZ2ljYWxfaWQnOnRbJ2xvZ2ljYWxfaWQnXSwnbWFuaWZlc3Rfc2hhMjU2Jzptc2hhLCdwYXlsb2FkX3NoYTI1Nic6cHNoYSwnc3RhdHVzJzonU0VBTEVEJywnc2VhbGVkX2F0X3V0Yyc6dXRjbm93KCl9CjMwODogICAgc2I9Y2Fub25pY2FsX2pzb24oc2VhbCkrYidcbicKMzExOiAgICAgICAgcmNsb25lX3JjYXQoYmFzZSsnL1NFQUxFRC5qc29uJyxkYXRhPXNiKQozMTI6ICAgICAgICBpZiByY2xvbmVfY2F0X2J5dGVzKGJhc2UrJy9TRUFMRUQuanNvbicpIT1zYjogcmFpc2UgQmFja3VwRXJyb3IoJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKQozMTM6ICAgIHJldHVybiBtYW5pZmVzdCxtc2hhLHsndW5oZWFsdGh5JzpiYWQsJ2hlYWx0aHknOmhlYWx0aHl9CjMxNTpkZWYgcmVjb25zdHJ1Y3RfcmVwbGljYShtYW5pZmVzdCxyZXAsb3V0X3BhdGgpOgozMTY6ICAgIHJlbD1yZW1vdGVfZ2VuZXJhdGlvbl9wYXRoKG1hbmlmZXN0WydzY29wZSddLG1hbmlmZXN0Wydsb2dpY2FsX2lkJ10sbWFuaWZlc3RbJ2dlbmVyYXRpb24nXSkKMzIwOiAgICAgICAgZm9yIHBhcnQgaW4gbWFuaWZlc3RbJ3BhcnRzJ106CjMyMjogICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4ocmNsb25lX2Jhc2VfYXJncygpK1snY2F0JyxiYXNlKycvcGFydHMvJytwYXJ0WyduYW1lJ10sJy0tY29udGltZW91dCcsJzIwcycsJy0tdGltZW91dCcsJzVtJ10sc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwOgozMjg6ICAgICAgICAgICAgaWYgcmMhPTA6IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9DQVRfRkFJTEVEJykKMzI5OiAgICAgICAgICAgIGlmIG4hPXBhcnRbJ2J5dGVzJ10gb3IgcGguaGV4ZGlnZXN0KCkhPXBhcnRbJ3NoYTI1NiddOiByYWlzZSBCYWNrdXBFcnJvcignUkVDT05TVFJVQ1RfUEFSVF9NSVNNQVRDSCcpCjMzMDogICAgaWYgdG90YWwhPW1hbmlmZXN0WydwYXlsb2FkX2J5dGVzJ10gb3IgaC5oZXhkaWdlc3QoKSE9bWFuaWZlc3RbJ3BheWxvYWRfc2hhMjU2J106IHJhaXNlIEJhY2t1cEVycm9yKCdSRUNPTlNUUlVDVF9QQVlMT0FEX01JU01BVENIJykKMzM5OiAgICBpZiByMSE9MCBvciBwMi5yZXR1cm5jb2RlIT0wOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9MSVNUX0ZBSUxFRCcpCjM0MTogICAgaWYgbm90IG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignVEFSX1pTVF9FTVBUWScpCjM0MjogICAgaWYgcmVxdWlyZWRfbWVtYmVyIGFuZCByZXF1aXJlZF9tZW1iZXIgbm90IGluIG5hbWVzOiByYWlzZSBCYWNrdXBFcnJvcignUkVRVUlSRURfTUVNQkVSX01JU1NJTkcnKQozNTE6ICAgICAgICAgICAgIyBHcmVlbiBzZXQgaXMgaW50ZW50aW9uYWxseSBDVC1vbmx5LiBTY2hlZHVsZWQgUUVNVSBiYWNrdXBzIHN0aWxsIGdldCBkdWFsIHJlbW90ZSBieXRlIHJlYWRiYWNrLgozNTk6ICAgICAgICBpZiBwMi5yZXR1cm5jb2RlIT0wIG9yIGxlbihkYXRhKTwxMjg6IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0RCX0RVTVBfSU5WQUxJRCcpCjM2MDogICAgZWxzZTogcmFpc2UgQmFja3VwRXJyb3IoJ1ZBTElEQVRPUl9VTktOT1dOX1RZUEUnKQozNjU6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfSU5WRU5UT1JZX0pTT04nKQozNjc6ZGVmIHNzaF9yZW1vdGUobm9kZSxhcmd2LGlucHV0PU5vbmUsdGltZW91dD0xODAwLGNoZWNrPVRydWUpOgozNjg6ICAgIGNtZD0nUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjsgZXhwb3J0IFBBVEg7IGV4ZWMgJytzaGxleC5qb2luKFtzdHIoeCkgZm9yIHggaW4gYXJndl0pCjM2OTogICAgaWYgbm9kZT09J3B2ZTAxJzogcmV0dXJuIHJ1bihbc3RyKHgpIGZvciB4IGluIGFyZ3ZdLGlucHV0PWlucHV0LHRpbWVvdXQ9dGltZW91dCxjaGVjaz1jaGVjaykKMzc1OiAgICByYWlzZSBCYWNrdXBFcnJvcignUFZFX0dVRVNUX1RZUEVfRFJJRlQnKQozNzg6ICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKSBvciBzaGEyNTZfZmlsZShwYXRoKSE9ZXhwZWN0ZWQ6IHJhaXNlIEJhY2t1cEVycm9yKGNvZGUpCjM4MjogICAgZm9yIGQgaW4gW0dVRVNUMjY2LnBhcmVudCxwYXRobGliLlBhdGgoJy9vcHQvaG9tZWxhYi1iYWNrdXAtdjIvcmVsZWFzZXMvcHZlLXJ1bi0yNjZyMScpLHBhdGhsaWIuUGF0aCgnL29wdC9ob21lbGFiLWJhY2t1cC12Mi9yZWxlYXNlcy9jb3JlLTI2MHIxJykscGF0aGxpYi5QYXRoKCcvb3B0L2hvbWVsYWItYmFja3VwLXYyL3JlbGVhc2VzL3B2ZS1wcm9kdWNlci0yNjVyMScpXToKMzg2OiAgICBpZiBzcGVjIGlzIE5vbmUgb3Igc3BlYy5sb2FkZXIgaXMgTm9uZTogcmFpc2UgQmFja3VwRXJyb3IoJ0dVRVNUMjY2X0lNUE9SVF9TUEVDJykKMzg5OiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9JTVBPUlRfRkFJTEVEJyx0eXBlKGUpLl9fbmFtZV9fKQozOTA6ICAgIGlmIG5vdCBjYWxsYWJsZShnZXRhdHRyKG1vZCwnZHVtcF9hcmd2JyxOb25lKSk6IHJhaXNlIEJhY2t1cEVycm9yKCdHVUVTVDI2Nl9EVU1QX0FSR1ZfTUlTU0lORycpCjM5NjogICAgcmV0dXJuIHsndm1pZCc6aW50KHRbJ3ZtaWQnXSksJ2lkJzppbnQodFsndm1pZCddKSwndHlwZSc6J2x4YycsJ2tpbmQnOidseGMnLCdndWVzdF90eXBlJzonbHhjJywnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKSwnbmFtZSc6cm93LmdldCgnbmFtZScsJycpLAo0MDA6ICAgICAgICAgICAgJ2Jsb2NrZXJzJzpbXSwnZGlza3MnOltdLCd0ZW1wbGF0ZSc6Ym9vbChyb3cuZ2V0KCd0ZW1wbGF0ZScsMCkpLCdob29rc2NyaXB0X3ByZXNlbnQnOkZhbHNlLCdsb2NrX3ByZXNlbnQnOkZhbHNlLAo0MDE6ICAgICAgICAgICAgJ3NuYXBzaG90X2hpc3RvcnlfaW5jbHVkZWQnOkZhbHNlLCd1bnVzZWRfdm9sdW1lX2NvdW50JzowLCdjZHJvbV9jb3VudCc6MCwnY2Ryb21fbWVkaWFfaW5jbHVkZWQnOkZhbHNlLCdndWVzdF9yZXN0b3JlX3ZlcmlmaWVkJzpGYWxzZSwKNDA0OmRlZiBwcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpOgo0MDU6ICAgIG9sZD1fbG9hZF9ndWVzdDI2NigpOyBqb2I9X2x4Y19qb2IodCxyb3csbm9kZSk7IHZ6ZHVtcD1zaHV0aWwud2hpY2goJ3Z6ZHVtcCcpIG9yICcvdXNyL2Jpbi92emR1bXAnCjQwNjogICAgdHJ5OiBhcmd2PW9sZC5kdW1wX2FyZ3Yoam9iLHZ6ZHVtcCxwYXRobGliLlBhdGgoc2NyYXRjaCksaW50KHRpbWUudGltZSgpKSkKNDA3OiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX0ZBSUxFRCcsdHlwZShlKS5fX25hbWVfXykKNDA4OiAgICBpZiBub3QgaXNpbnN0YW5jZShhcmd2LChsaXN0LHR1cGxlKSkgb3Igbm90IGFyZ3Ygb3Igbm90IGFsbChpc2luc3RhbmNlKHgsc3RyKSBmb3IgeCBpbiBhcmd2KTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfU0hBUEUnKQo0MDk6ICAgIGFyZ3Y9bGlzdChhcmd2KQo0MTA6ICAgIGlmIHBhdGhsaWIuUGF0aChhcmd2WzBdKS5uYW1lIT0ndnpkdW1wJyBvciBzdHIoaW50KHRbJ3ZtaWQnXSkpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9UQVJHRVQnKQo0MTE6ICAgIGlmICctLWR1bXBkaXInIGluIGFyZ3Ygb3IgYW55KHguc3RhcnRzd2l0aCgnLS1kdW1wZGlyPScpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9VTkVYUEVDVEVEX0RVTVBESVInKQo0MTI6ICAgIGlmIG5vdCBhbnkoeD09Jy0tc3Rkb3V0JyBvciB4LnN0YXJ0c3dpdGgoJy0tc3Rkb3V0PScpIGZvciB4IGluIGFyZ3YpOiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9OT19TVERPVVQnKQo0MTM6ICAgIGlmIHN0cihzY3JhdGNoKSBub3QgaW4gYXJndiBhbmQgbm90IGFueSh4PT0nLS10bXBkaXI9JytzdHIoc2NyYXRjaCkgZm9yIHggaW4gYXJndik6IHJhaXNlIEJhY2t1cEVycm9yKCdQUk9WRU5fRFVNUF9BUkdWX05PX1NDUkFUQ0gnKQo0MTQ6ICAgICMgQWNjZXB0ZWQgMjcwLzI4MiBpbXBsZW1lbnRhdGlvbiBwYXNzZWQgbWFwcGVkIHNjcmF0Y2ggdG8gdnpkdW1wIGFzIHRtcGRpci4KNDE1OiAgICBpZiAnLS10bXBkaXInIGluIGFyZ3Y6CjQxNjogICAgICAgIGk9YXJndi5pbmRleCgnLS10bXBkaXInKQo0MTc6ICAgICAgICBpZiBpKzE+PWxlbihhcmd2KSBvciBhcmd2W2krMV0hPXN0cihzY3JhdGNoKTogcmFpc2UgQmFja3VwRXJyb3IoJ1BST1ZFTl9EVU1QX0FSR1ZfVE1QRElSX0JJTkRJTkcnKQo0MTg6ICAgIGVsaWYgJy0tdG1wZGlyPScrc3RyKHNjcmF0Y2gpIG5vdCBpbiBhcmd2OiByYWlzZSBCYWNrdXBFcnJvcignUFJPVkVOX0RVTVBfQVJHVl9OT19UTVBESVInKQo0MTk6ICAgIHJldHVybiBhcmd2LGpvYgo0MjE6ZGVmIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKToKNDIyOiAgICBxPXNzaF9yZW1vdGUobm9kZSxbJ3BjdCcsJ2NvbmZpZycsc3RyKHZtaWQpXSx0aW1lb3V0PTMwKQo0MjQ6ICAgIGlmICd1bnByaXZpbGVnZWQ6IDEnIG5vdCBpbiBsaW5lczogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19OT1RfVU5QUklWSUxFR0VEJykKNDI1OiAgICBpZiBhbnkoeC5zdGFydHN3aXRoKCdseGMuaWRtYXA6Jykgb3IgeC5zdGFydHN3aXRoKCdseGMuaWRtYXAgPScpIGZvciB4IGluIGxpbmVzKTogcmFpc2UgQmFja3VwRXJyb3IoJ0xYQ19DVVNUT01fSURNQVBfVU5TVVBQT1JURUQnKQo0MzA6ICAgIHE9c3NoX3JlbW90ZShub2RlLHBvcyx0aW1lb3V0PTMwLGNoZWNrPUZhbHNlKQo0MzE6ICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgQmFja3VwRXJyb3IoJ01BUFBFRF9VSURfQUNDRVNTX1BST0JFX0ZBSUxFRCcpCjQzMzpkZWYgX3N0cmVhbV9hcmd2X3RvX2xvY2FsKG5vZGUsYXJndixkZXN0LHRpbWVvdXQ9NzIwMCk6CjQzNTogICAgaWYgbm9kZT09J3B2ZTAxJzogY21kPWFyZ3YKNDM3OiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKNDM4OiAgICAgICAgY21kPVtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0KNDQ0OiAgICAgICAgICAgIHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfU1RSRUFNX1RJTUVPVVQnKQo0NDg6ICAgICAgICByYWlzZSBCYWNrdXBFcnJvcignQ09NTUFORF9GQUlMRUQnLGYndnpkdW1wX3JjX3twLnJldHVybmNvZGV9X3N0ZGVycl9zaGEyNTZfe2hhc2hsaWIuc2hhMjU2KHAuc3RkZXJyKS5oZXhkaWdlc3QoKX0nKQo0NDk6ICAgIGlmIG5vdCBkZXN0LmlzX2ZpbGUoKSBvciBkZXN0LnN0YXQoKS5zdF9zaXplPD0wOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX1BBWUxPQURfTUlTU0lORycpCjQ1MjogICAgdm1pZD1pbnQodFsndm1pZCddKTsgcm93cz1bciBmb3IgciBpbiBjbHVzdGVyX2ludmVudG9yeSgpIGlmIGludChyLmdldCgndm1pZCcsLTEpKT09dm1pZF0KNDUzOiAgICBpZiBsZW4ocm93cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfTk9UX1VOSVFVRScpCjQ1NTogICAgaWYgdHlwIT10WydndWVzdF90eXBlJ106IHJhaXNlIEJhY2t1cEVycm9yKCdQVkVfR1VFU1RfVFlQRV9EUklGVCcpCjQ1ODogICAgICAgIF9kZWZhdWx0X3VucHJpdmlsZWdlZF9seGMobm9kZSx2bWlkKQo0NTk6ICAgICAgICBzY3JhdGNoPWYnL3Zhci90bXAvaG9tZWxhYi12emR1bXAtdjIte2dlbn0nCjQ2MDogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzEwJywnLW8nLCcwJywnLWcnLCcxMDAwMDAnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjQ2MTogICAgICAgIHE9c3NoX3JlbW90ZShub2RlLFsnc3RhdCcsJy1jJywnJWE6JXU6JWcnLHNjcmF0Y2hdLHRpbWVvdXQ9MzApCjQ2MjogICAgICAgIGlmIHEuc3Rkb3V0LmRlY29kZSgpLnN0cmlwKCkhPSc3MTA6MDoxMDAwMDAnOiByYWlzZSBCYWNrdXBFcnJvcignUFZFX01BUFBFRF9TQ1JBVENIX0FDQ0VTU19DT05UUkFDVCcpCjQ2NTogICAgICAgICAgICBhcmd2LGpvYj1wcm92ZW5fbHhjX2R1bXBfYXJndih0LHJvdyxub2RlLHNjcmF0Y2gpCjQ2NzogICAgICAgICAgICBfc3RyZWFtX2FyZ3ZfdG9fbG9jYWwobm9kZSxhcmd2LGxvY2FsLHRpbWVvdXQ9NzIwMCkKNDY4OiAgICAgICAgICAgIGlmIGxvY2FsLnN0YXQoKS5zdF9zaXplPmludChqb2JbJ2FyY2hpdmVfY2FwX2J5dGVzJ10pOiByYWlzZSBCYWNrdXBFcnJvcignVlpEVU1QX0FSQ0hJVkVfQ0FQX0VYQ0VFREVEJykKNDcwOiAgICAgICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3JtJywnLXJmJywnLS0nLHNjcmF0Y2hdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjQ3MjogICAgICAgIHJldHVybiBsb2NhbCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX2d1ZXN0Jywndm1pZCc6dm1pZCwnZ3Vlc3RfdHlwZSc6dHlwLCdub2RlJzpub2RlLCdzdGF0dXMnOnJvdy5nZXQoJ3N0YXR1cycpLCdwcm9kdWNlcl9jb250cmFjdCc6J3Byb3Zlbi0yNzAtMjgyLXN0cmVhbSd9LGNsZWFudXAKNDczOiAgICAjIFFFTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZDogYm91bmRlZCBkZWRpY2F0ZWQgZHVtcGRpciB3aXRoIGxhdGVyIGNsb3VkIHJlYWRiYWNrL3JlY29uc3RydWN0aW9uLgo0NzQ6ICAgIHNyY2Rpcj1mJy92YXIvdG1wL2hvbWVsYWItdnpkdW1wLXYyLXtnZW59Jwo0NzU6ICAgIHNzaF9yZW1vdGUobm9kZSxbJ2luc3RhbGwnLCctZCcsJy1tJywnNzAwJywnLW8nLCcwJywnLWcnLCcwJyxzcmNkaXJdLHRpbWVvdXQ9MzApCjQ3NzogICAgICAgIHNzaF9yZW1vdGUobm9kZSxbJ3Z6ZHVtcCcsc3RyKHZtaWQpLCctLW1vZGUnLCdzbmFwc2hvdCcsJy0tY29tcHJlc3MnLCd6c3RkJywnLS1kdW1wZGlyJyxzcmNkaXJdLHRpbWVvdXQ9NzIwMCkKNDc4OiAgICAgICAgcD1zc2hfcmVtb3RlKG5vZGUsWydmaW5kJyxzcmNkaXIsJy1tYXhkZXB0aCcsJzEnLCctdHlwZScsJ2YnLCctcHJpbnRmJywnJXBcbiddLHRpbWVvdXQ9MzApCjQ4MDogICAgICAgIGlmIGxlbihmaWxlcykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdWWkRVTVBfT1VUUFVUX05PVF9VTklRVUUnKQo0ODQ6ICAgICAgICBpZiBub3QgcGF0aGxpYi5QYXRoKGxvY2FsKS5pc19maWxlKCkgb3IgcGF0aGxpYi5QYXRoKGxvY2FsKS5zdGF0KCkuc3Rfc2l6ZTw9MDogcmFpc2UgQmFja3VwRXJyb3IoJ1ZaRFVNUF9QQVlMT0FEX01JU1NJTkcnKQo0ODY6ICAgICAgICBzc2hfcmVtb3RlKG5vZGUsWydybScsJy1yZicsJy0tJyxzcmNkaXJdLHRpbWVvdXQ9NjAsY2hlY2s9RmFsc2UpO3JhaXNlCjQ4NzogICAgcmV0dXJuIHBhdGhsaWIuUGF0aChsb2NhbCkseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3B2ZV9ndWVzdCcsJ3ZtaWQnOnZtaWQsJ2d1ZXN0X3R5cGUnOnR5cCwnbm9kZSc6bm9kZSwnc3RhdHVzJzpyb3cuZ2V0KCdzdGF0dXMnKX0seydraW5kJzoncHZlX3NvdXJjZV9kaXInLCdub2RlJzpub2RlLCdwYXRoJzpzcmNkaXJ9CjQ5MDogICAgaWYgbm90IE9QRVJBVE9SX0tFWS5pc19maWxlKCkgb3IgT1BFUkFUT1JfS0VZLmlzX3N5bWxpbmsoKTogcmFpc2UgQmFja3VwRXJyb3IoJ09QRVJBVE9SX0tFWV9NSVNTSU5HJykKNDk0OiAgICBpZiBub3QgbSBvciBtLmdyb3VwKDEpIT1PUEVSQVRPUl9LRVlfRklOR0VSUFJJTlQ6IHJhaXNlIEJhY2t1cEVycm9yKCdPUEVSQVRPUl9LRVlfRklOR0VSUFJJTlRfTUlTTUFUQ0gnKQo1MDg6ICAgIGlmIGxlbihnb29kKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ0hPU1RLRVlfUElOX01JU01BVENIJykKNTExOmRlZiBlbnN1cmVfdnBzX2tub3duX2hvc3RzKHRhcmdldHMpOgo1MTM6ICAgIGZvciB0IGluIHRhcmdldHM6CjUxODpkZWYgdnBzX3NzaF9hcmd2KHQsICosIHVzZV9hZ2VudD1GYWxzZSk6CjUyNzpkZWYgdnBzX3J1bih0LCByZW1vdGVfYXJndiwgKiwgaW5wdXQ9Tm9uZSwgdGltZW91dD0zMDAsIHVzZV9hZ2VudD1GYWxzZSwgY2hlY2s9VHJ1ZSk6CjUyODogICAgcmVtb3RlPXNobGV4LmpvaW4oW3N0cih4KSBmb3IgeCBpbiByZW1vdGVfYXJndl0pCjUyOTogICAgcmV0dXJuIHJ1bih2cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9dXNlX2FnZW50KStbcmVtb3RlXSxpbnB1dD1pbnB1dCx0aW1lb3V0PXRpbWVvdXQsY2hlY2s9Y2hlY2spCjUzMTpkZWYgYm9vdHN0cmFwX3Zwc19rZXlzKHRhcmdldHMpOgo1MzM6ICAgIGVuc3VyZV92cHNfa25vd25faG9zdHModGFyZ2V0cykKNTM2OiAgICBmb3IgdCBpbiB0YXJnZXRzOgo1NDE6ICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoJ1NTSF9BVVRIX1NPQ0snKTogcmFpc2UgQmFja3VwRXJyb3IoJ0ZPUldBUkRFRF9BR0VOVF9SRVFVSVJFRF9GT1JfQk9PVFNUUkFQJykKNTQ1OiAgICAgICAgaWYgdGFnIG5vdCBpbiAoJ0FEREVEJywnQUxSRUFEWScpOiByYWlzZSBCYWNrdXBFcnJvcignVlBTX0FVVEhPUklaRURfS0VZX0JPT1RTVFJBUF9SRVNVTFQnKQo1NDk6ICAgIHVzPVt4IGZvciB4IGluIHRhcmdldHMgaWYgeFsndHlwZSddPT0ndnBzX3VzJ11bMF0KNTU0OmRlZiByZW1vdGVfaGFzaHNldCh0LGNvbW1hbmQpOgo1NTk6ICAgIGZpbGVzPVsnZXRjL25ldGJpcmQvaW5zdGFsbC5jb25mJywndmFyL2xpYi9uZXRiaXJkL3N0YXRlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvc2VydmljZS5qc29uJywndmFyL2xpYi9uZXRiaXJkL2FjdGl2ZV9wcm9maWxlLmpzb24nLCd2YXIvbGliL25ldGJpcmQvZGVmYXVsdC5qc29uJ10KNTYxOiAgICBwcmU9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjU2MjogICAgcmVtb3RlPXNobGV4LmpvaW4oWydzdWRvJywnLW4nLCd0YXInLCctLW51bWVyaWMtb3duZXInLCctQycsJy8nLCctY2YnLCctJ10rZmlsZXMpCjU2MzogICAgYXJndj12cHNfc3NoX2FyZ3YodCx1c2VfYWdlbnQ9RmFsc2UpK1tyZW1vdGVdCjU2NDogICAgcGF5bG9hZD13b3JrLydwYXlsb2FkLnRhci56c3QnOyBwaXBlX3RvX3pzdGQoYXJndixwYXlsb2FkLHRpbWVvdXQ9NjAwKQo1NjU6ICAgIHBvc3Q9cmVtb3RlX2hhc2hzZXQodCxjbWQpCjU2NjogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignTURfU09VUkNFX0NIQU5HRURfRFVSSU5HX0NBUFRVUkUnKQo1Njc6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid2cHNfbWQnLCdjb25zaXN0ZW5jeSc6J0ZJTEVTRVRfUFJFX1BPU1RfSEFTSF9TVEFCSUxJVFknLCdoYXNoc2V0X3NoYTI1Nic6cHJlfSxOb25lCjU3MTogICAgcHJlPXJlbW90ZV9oYXNoc2V0KHQsaGNtZCkKNTcyOiAgICByZW1vdGU9c2hsZXguam9pbihbJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy1DJywnLycsJy1jZicsJy0nLCdldGMvbmdpbngnXSkKNTczOiAgICBhcmd2PXZwc19zc2hfYXJndih0LHVzZV9hZ2VudD1GYWxzZSkrW3JlbW90ZV0KNTc0OiAgICBwYXlsb2FkPXdvcmsvJ3BheWxvYWQudGFyLnpzdCc7IHBpcGVfdG9fenN0ZChhcmd2LHBheWxvYWQsdGltZW91dD05MDApCjU3NTogICAgcG9zdD1yZW1vdGVfaGFzaHNldCh0LGhjbWQpCjU3NjogICAgaWYgcHJlIT1wb3N0OiByYWlzZSBCYWNrdXBFcnJvcignU1BCX1NPVVJDRV9DSEFOR0VEX0RVUklOR19DQVBUVVJFJykKNTc3OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzondnBzX3NwYicsJ2NvbnNpc3RlbmN5JzonU1RBVElDX0NPTkZJR19GSUxFU0VUX1BSRV9QT1NUX0hBU0hfU1RBQklMSVRZJywndGxzX3JlY292ZXJ5JzonUkVJU1NVRV9UTFNfT05fUkVTVE9SRScsJ2hhc2hzZXRfc2hhMjU2JzpwcmV9LE5vbmUKNTc5OlVTX1JFTU9URV9TQ1JJUFQ9cicnJ2ltcG9ydCBpbyxvcyxzcWxpdGUzLHN5cyx0YXJmaWxlLHRpbWUsanNvbixoYXNobGliCjYwMjogICAgZHN0PXNxbGl0ZTMuY29ubmVjdCgnOm1lbW9yeTonKTsgc3JjLmJhY2t1cChkc3QpCjYwNTogICAgdGk9dGFyZmlsZS5UYXJJbmZvKG5hbWU9KCdzcWxpdGUtYmFja3Vwcy8nK25hbWUpKTsgdGkuc2l6ZT1sZW4oYik7IHRpLm1vZGU9MG82MDA7IHRpLm10aW1lPWludCh0aW1lLnRpbWUoKSk7IHRmLmFkZGZpbGUodGksaW8uQnl0ZXNJTyhiKSkKNjA5OiAgICByZW1vdGU9c2hsZXguam9pbihbJ3B5dGhvbjMnLCctSScsJy1CJywnLWMnLFVTX1JFTU9URV9TQ1JJUFRdKQo2MTA6ICAgIGFyZ3Y9dnBzX3NzaF9hcmd2KHQsdXNlX2FnZW50PUZhbHNlKStbcmVtb3RlXQo2MTE6ICAgIHBheWxvYWQ9d29yay8ncGF5bG9hZC50YXIuenN0JzsgcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTEyMDApCjYxMjogICAgcmV0dXJuIHBheWxvYWQseydnZW5lcmF0aW9uJzpnZW4sJ3NvdXJjZV9jbGFzcyc6J3Zwc191cycsJ2NvbnNpc3RlbmN5JzonU1FMSVRFX09OTElORV9CQUNLVVBfUExVU19OT05EQl9GSUxFUycsJ3NxbGl0ZV9jb3VudCc6NH0sTm9uZQo2ODU6ICAgIGlmIG5vdCBST1VURVJfTEVHQUNZX1NDUklQVC5pc19maWxlKCkgb3IgUk9VVEVSX0xFR0FDWV9TQ1JJUFQuaXNfc3ltbGluaygpIG9yIHNoYTI1Nl9maWxlKFJPVVRFUl9MRUdBQ1lfU0NSSVBUKSE9Uk9VVEVSX0xFR0FDWV9TSEE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfTEVHQUNZX1NDUklQVF9JREVOVElUWScpCjY4ODogICAgaGl0cz1baXAgZm9yIGlwIGluIGlwcyBpZiBzaGEyNTZfYnl0ZXMoaXAuZW5jb2RlKCkpPT1ST1VURVJfVEFSR0VUX1NIQV0KNjg5OiAgICBpZiBsZW4oaGl0cykhPTE6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfVEFSR0VUX1BBUlNFJykKNjkwOiAgICB0YXJnZXQ9aGl0c1swXQo2OTg6ICAgIGlmIGxlbihzYWZlKSE9MTogcmFpc2UgQmFja3VwRXJyb3IoJ1JPVVRFUl9QQVNTRklMRV9QQVJTRScpCjY5OTogICAgcmV0dXJuIHRhcmdldCxzYWZlWzBdCjcwMjogICAgcm9vdHM9W3BhdGhsaWIuUGF0aCgnL2V0YycpLHBhdGhsaWIuUGF0aCgnL3Jvb3QvLnNzaCcpLHBhdGhsaWIuUGF0aCgnL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAnKSxwYXRobGliLlBhdGgoJy92YXIvbGliL2hvbWVsYWItYmFja3VwLXYyJyldCjcxNzogICAgaWYgbGVuKHVuaXEpIT0xOiByYWlzZSBCYWNrdXBFcnJvcignRVhBQ1RfU0hBX0ZJTEVfTk9UX1VOSVFVRScpCjcyNTogICAgaWYgc2hhMjU2X2J5dGVzKGIpIT1ST1VURVJfS05PV05fSE9TVFNfU0hBOiByYWlzZSBCYWNrdXBFcnJvcignUk9VVEVSX0tOT1dOX0hPU1RTX0lERU5USVRZJykKNzI5OiAgICB0YXJnZXQscGY9cGFyc2Vfcm91dGVyX2xlZ2FjeSgpCjczMjogICAgYXJndj1bU1NIUEFTUywnLWYnLHN0cihwZiksU1NILCctcCcsJzIyMjInLCctbycsJ0JhdGNoTW9kZT1ubycsJy1vJywnTnVtYmVyT2ZQYXNzd29yZFByb21wdHM9MScsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJy1vJywnVXNlcktub3duSG9zdHNGaWxlPScrc3RyKFJPVVRFUl9LTk9XTl9IT1NUUyksJy1vJywnQ29ubmVjdFRpbWVvdXQ9MTUnLCdyb3V0ZXJiYWNrdXBAJyt0YXJnZXQsJ3Nob3cgcnVubmluZy1jb25maWcnXQo3MzM6ICAgIHA9cnVuKGFyZ3YsdGltZW91dD02MCk7IHJldHVybiBwLnN0ZG91dAo3NDQ6ICAgIGlmIG5vdCBhIG9yIGEhPWI6IHJhaXNlIEJhY2t1cEVycm9yKCdST1VURVJfUkVBRF9OT1RfQllURV9TVEFCTEUnKQo3NDY6ICAgIHJldHVybiBwYXlsb2FkLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOidyb3V0ZXInLCdjb25maWdfc2hhMjU2JzpzaGEyNTZfYnl0ZXMoYSksJ3JlYWRfY291bnQnOjIsJ3JlY292ZXJ5X3BvbGljeSc6J0lNUE9SVF9QQUNLQUdFX09SX1NBRkVfQ0xJX05PVF9CTElORF9DT05GSUdfUkVQTEFDRSd9LE5vbmUKNzQ4OmRlZiBxZ2FfZXhlYyhub2RlLHZtaWQsZ3Vlc3RfYXJndixpbnB1dF9ieXRlcz1Ob25lLHRpbWVvdXQ9NjAwKToKNzQ5OiAgICBhcmdzPVsncW0nLCdndWVzdCcsJ2V4ZWMnLHN0cih2bWlkKSwnLS1zeW5jaHJvbm91cycsJzEnLCctLXRpbWVvdXQnLHN0cihpbnQodGltZW91dCkpXQo3NTE6ICAgIGFyZ3MgKz0gWyctLSddK1tzdHIoeCkgZm9yIHggaW4gZ3Vlc3RfYXJndl0KNzUyOiAgICBwPXNzaF9yZW1vdGUobm9kZSxhcmdzLGlucHV0PWlucHV0X2J5dGVzLHRpbWVvdXQ9dGltZW91dCs2MCkKNzU0OiAgICBleGNlcHQgRXhjZXB0aW9uOiByYWlzZSBCYWNrdXBFcnJvcignUUdBX0pTT04nKQo3NTc6ICAgIGlmIHJjIG5vdCBpbiAoMCxOb25lKTogcmFpc2UgQmFja3VwRXJyb3IoJ1FHQV9HVUVTVF9DT01NQU5EX0ZBSUxFRCcsc3RyKHJjKSkKNzY0OiAgICByZXR1cm4gZicnJ2ltcG9ydCBoYXNobGliLGpzb24sb3MscGF0aGxpYixzZWxlY3Qsc2h1dGlsLHN1YnByb2Nlc3MsdGVtcGZpbGUsdGltZVxucm9vdD17cm9vdCFyfTsgZGI9e2RiIXJ9OyBzdHJhdGVneT17c3RyYXRlZ3khcn07IHRva2VuPVtSRURBQ1RFRF0gbm90IHJvb3Quc3RhcnRzd2l0aCgnL3Zhci93d3cvZm9ydW1zLycpIG9yIG5vdCBkYi5zdGFydHN3aXRoKCd4Zl8nKTogcmFpc2UgU3lzdGVtRXhpdCgyMClcbnRtcD1wYXRobGliLlBhdGgoJy90bXAvaG9tZWxhYi12Mi14Zi0nK3Rva2VuKTsgdG1wLm1rZGlyKG1vZGU9MG83MDAsZXhpc3Rfb2s9RmFsc2UpXG5kdW1wPXRtcC8nZGIuc3FsJzsgb3V0PXBhdGhsaWIuUGF0aCgnL3RtcC9ob21lbGFiLXYyLXhmLScrdG9rZW4rJy50YXIuenN0JylcbmxvY2s9Tm9uZVxudHJ5OlxuICBpZiBzdHJhdGVneT09J2dsb2JhbF9yZWFkX2xvY2snOlxuICAgIGxvY2s9c3VicHJvY2Vzcy5Qb3BlbihbJ21hcmlhZGInLCctLXVzZXI9cm9vdCcsJy0tYmF0Y2gnLCctLXNraXAtY29sdW1uLW5hbWVzJywnLS11bmJ1ZmZlcmVkJ10sc3RkaW49c3VicHJvY2Vzcy5QSVBFLHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCx0ZXh0PVRydWUsYnVmc2l6ZT0xKVxuICAgIGxvY2suc3RkaW4ud3JpdGUoIkZMVVNIIFRBQkxFUyBXSVRIIFJFQUQgTE9DSzsgU0VMRUNUICdMT0NLRUQnO1xcbiIpOyBsb2NrLnN0ZGluLmZsdXNoKClcbiAgICBycixfLF89c2VsZWN0LnNlbGVjdChbbG9jay5zdGRvdXRdLFtdLFtdLDUpXG4gICAgaWYgbm90IHJyIG9yIGxvY2suc3Rkb3V0LnJlYWRsaW5lKCkuc3RyaXAoKSE9J0xPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignTE9DS19BQ1FVSVJFJylcbiAgICBkdW1wX3RpbWVvdXQ9MTVcbiAgZWxzZTogZHVtcF90aW1lb3V0PTE4MFxuICB3aXRoIG9wZW4oZHVtcCwnd2InKSBhcyBmOlxuICAgIGFyZ3Y9WydtYXJpYWRiLWR1bXAnLCctLXVzZXI9cm9vdCcsJy0tcXVpY2snLCctLXNraXAtbG9jay10YWJsZXMnLCctLWhleC1ibG9iJywnLS1yb3V0aW5lcycsJy0tZXZlbnRzJywnLS10cmlnZ2VycyddXG4gICAgaWYgc3RyYXRlZ3k9PSdzaW5nbGVfdHJhbnNhY3Rpb24nOiBhcmd2LmFwcGVuZCgnLS1zaW5nbGUtdHJhbnNhY3Rpb24nKVxuICAgIGFyZ3YuYXBwZW5kKGRiKVxuICAgIHE9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9ZixzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLHRpbWVvdXQ9ZHVtcF90aW1lb3V0KVxuICAgIGlmIHEucmV0dXJuY29kZSE9MDogcmFpc2UgUnVudGltZUVycm9yKCdEVU1QJylcbiAgaWYgbG9jayBpcyBub3QgTm9uZTpcbiAgICBsb2NrLnN0ZGluLndyaXRlKCJVTkxPQ0sgVEFCTEVTOyBTRUxFQ1QgJ1VOTE9DS0VEJztcXG4iKTsgbG9jay5zdGRpbi5mbHVzaCgpXG4gICAgcnIsXyxfPXNlbGVjdC5zZWxlY3QoW2xvY2suc3Rkb3V0XSxbXSxbXSw1KVxuICAgIGlmIG5vdCByciBvciBsb2NrLnN0ZG91dC5yZWFkbGluZSgpLnN0cmlwKCkhPSdVTkxPQ0tFRCc6IHJhaXNlIFJ1bnRpbWVFcnJvcignVU5MT0NLJylcbiAgICBsb2NrLnN0ZGluLmNsb3NlKCk7IGxvY2sud2FpdCh0aW1lb3V0PTUpOyBsb2NrPU5vbmVcbiAgcmVsPXJvb3QubHN0cmlwKCcvJylcbiAgdGFyPXN1YnByb2Nlc3MuUG9wZW4oWyd0YXInLCctLW51bWVyaWMtb3duZXInLCctLXhhdHRycycsJy0tYWNscycsJy1DJywnLycsJy1jZicsJy0nLHJlbCwnLUMnLHN0cih0bXApLCdkYi5zcWwnXSxzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG4gIHo9c3VicHJvY2Vzcy5Qb3BlbihbJ3pzdGQnLCctVDAnLCctMycsJy1xJywnLW8nLHN0cihvdXQpXSxzdGRpbj10YXIuc3Rkb3V0LHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCk7IHRhci5zdGRvdXQuY2xvc2UoKVxuICB6cj16LndhaXQodGltZW91dD02MDApOyB0cj10YXIud2FpdCh0aW1lb3V0PTYwKVxuICBpZiB6ciE9MCBvciB0ciE9MDogcmFpc2UgUnVudGltZUVycm9yKCdBUkNISVZFJylcbiAgaD1oYXNobGliLnNoYTI1NigpOyBuPTBcbiAgd2l0aCBvcGVuKG91dCwncmInKSBhcyBmOlxuICAgIGZvciBiIGluIGl0ZXIobGFtYmRhOmYucmVhZCgxMDQ4NTc2KSxiJycpOiBoLnVwZGF0ZShiKTsgbis9bGVuKGIpXG4gIHByaW50KGpzb24uZHVtcHMoe3sncGF0aCc6c3RyKG91dCksJ2J5dGVzJzpuLCdzaGEyNTYnOmguaGV4ZGlnZXN0KCksJ2RiX2J5dGVzJzpkdW1wLnN0YXQoKS5zdF9zaXplLCdzdHJhdGVneSc6c3RyYXRlZ3l9fSxzb3J0X2tleXM9VHJ1ZSxzZXBhcmF0b3JzPSgnLCcsJzonKSkpXG5maW5hbGx5OlxuICBpZiBsb2NrIGlzIG5vdCBOb25lOlxuICAgIHRyeTogbG9jay5raWxsKCk7IGxvY2sud2FpdCh0aW1lb3V0PTMpXG4gICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzc1xuICB0cnk6IHNodXRpbC5ybXRyZWUodG1wKVxuICBleGNlcHQgRXhjZXB0aW9uOiBwYXNzXG4nJycKNzY3OiAgICBvdXQ9cWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3B5dGhvbjMnLCctSScsJy1CJywnLSddLHhmX2d1ZXN0X2J1aWxkZXIodCxnZW4pLmVuY29kZSgpLHRpbWVvdXQ9OTAwKQo3Njk6ICAgIGV4Y2VwdCBFeGNlcHRpb246IHJhaXNlIEJhY2t1cEVycm9yKCdYRU5GT1JPX0JVSUxERVJfSlNPTicpCjc3MTogICAgaWYgbm90IHBhdGggb3Igbm90IGlzaW5zdGFuY2Uoc2l6ZSxpbnQpIG9yIHNpemU8PTAgb3Igbm90IHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScsZXhwZWN0ZWQgb3IgJycpOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19CVUlMREVSX1JFU1VMVCcpCjc3ODogICAgICAgICAgICAgICAgY29kZT0iaW1wb3J0IGJhc2U2NCxzeXM7IHA9c3lzLmFyZ3ZbMV07IG89aW50KHN5cy5hcmd2WzJdKTsgbj1pbnQoc3lzLmFyZ3ZbM10pOyBmPW9wZW4ocCwncmInKTsgZi5zZWVrKG8pOyBiPWYucmVhZChuKTsgZi5jbG9zZSgpOyBzeXMuc3Rkb3V0LndyaXRlKGJhc2U2NC5iNjRlbmNvZGUoYikuZGVjb2RlKCkpIgo3Nzk6ICAgICAgICAgICAgICAgIGI2ND1xZ2FfZXhlYyh0Wydub2RlJ10sdFsndm1pZCddLFsnL3Vzci9iaW4vcHl0aG9uMycsJy1JJywnLUInLCctYycsY29kZSxwYXRoLHN0cihvZmYpLHN0cih0YWtlKV0sTm9uZSx0aW1lb3V0PTYwKS5zdHJpcCgpCjc4MTogICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fUUdBX0NIVU5LX0JBU0U2NCcpCjc4MjogICAgICAgICAgICAgICAgaWYgbGVuKGIpIT10YWtlOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19RR0FfQ0hVTktfTEVOR1RIJykKNzg3OiAgICAgICAgcWdhX2V4ZWModFsnbm9kZSddLHRbJ3ZtaWQnXSxbJy91c3IvYmluL3JtJywnLWYnLHBhdGhdLE5vbmUsdGltZW91dD0zMCkKNzg5OiAgICAgICAgaWYgcHJpbWFyeSBpcyBOb25lOiByYWlzZSBCYWNrdXBFcnJvcignWEVORk9ST19HVUVTVF9URU1QX0NMRUFOVVAnKQo3OTE6ICAgIGlmIGdvdCE9c2l6ZSBvciBoLmhleGRpZ2VzdCgpIT1leHBlY3RlZDogcmFpc2UgQmFja3VwRXJyb3IoJ1hFTkZPUk9fU1RSRUFNX1NIQV9NSVNNQVRDSCcpCjc5MjogICAgcmV0dXJuIGxvY2FsLHsnZ2VuZXJhdGlvbic6Z2VuLCdzb3VyY2VfY2xhc3MnOid4ZW5mb3JvJywnc2l0ZSc6dFsnc2x1ZyddLCd2bWlkJzp0Wyd2bWlkJ10sJ25vZGUnOnRbJ25vZGUnXSwnZHVtcF9zdHJhdGVneSc6dFsnZHVtcF9zdHJhdGVneSddLCdkYl9kdW1wX2J5dGVzJzpqLmdldCgnZGJfYnl0ZXMnKX0sTm9uZQo4MDU6ICAgICAgICBlbHNlOiBvaz0oc3NoX3JlbW90ZShub2RlLFsndGVzdCcsJy1lJywnLycrcmVsXSx0aW1lb3V0PTIwLGNoZWNrPUZhbHNlKS5yZXR1cm5jb2RlPT0wKQo4MDg6ICAgIGlmIG5vdCByZXF1aXJlZC5pc3N1YnNldChzZXQocGF0aHMpKTogcmFpc2UgQmFja3VwRXJyb3IoJ05PREVfQlVORExFX1JFUVVJUkVEX1BBVEhfTUlTU0lORycpCjgxMDogICAgYXJndj1bJ3RhcicsJy0tbnVtZXJpYy1vd25lcicsJy0teGF0dHJzJywnLS1hY2xzJywnLUMnLCcvJywnLWNmJywnLSddK3BhdGhzCjgxMTogICAgaWYgbm9kZT09J3B2ZTAxJzogcGlwZV90b196c3RkKGFyZ3YscGF5bG9hZCx0aW1lb3V0PTMwMCkKODEzOiAgICAgICAgcmVtb3RlPSdQQVRIPS91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOyBleHBvcnQgUEFUSDsgZXhlYyAnK3NobGV4LmpvaW4oYXJndikKODE0OiAgICAgICAgcGlwZV90b196c3RkKFtTU0gsJy1vJywnQmF0Y2hNb2RlPXllcycsJy1vJywnU3RyaWN0SG9zdEtleUNoZWNraW5nPXllcycsJ3Jvb3RAJytub2RlLHJlbW90ZV0scGF5bG9hZCx0aW1lb3V0PTYwMCkKODE1OiAgICByZXR1cm4gcGF5bG9hZCx7J2dlbmVyYXRpb24nOmdlbiwnc291cmNlX2NsYXNzJzoncHZlX25vZGVfYnVuZGxlJywnbm9kZSc6bm9kZSwncmVjb3ZlcnlfcG9saWN5JzonQ0xFQU5fSU5TVEFMTF9KT0lOX1JFQ09OQ0lMRV9OT1RfQkxJTkRfUE1YQ0ZTX09WRVJXUklURScsJ21lbWJlcl9yb290cyc6bGVuKHBhdGhzKX0sTm9uZQo4MTc6ZGVmIGNhcHR1cmVfdGFyZ2V0KHQsZ2VuLHdvcmspOgo4MjY6ICAgIHJhaXNlIEJhY2t1cEVycm9yKCdDQVBUVVJFX1RZUEVfVU5LTk9XTicpCjgzMTogICAgICAgIHNzaF9yZW1vdGUoY2xlYW51cFsnbm9kZSddLFsncm0nLCctcmYnLCctLScsY2xlYW51cFsncGF0aCddXSx0aW1lb3V0PTYwKQo4MzQ6ICAgIGVuZ2luZT1wYXRobGliLlBhdGgoJy91c3IvbG9jYWwvc2Jpbi9ob21lbGFiLWNvbnRyb2wtYmFja3VwJyk= +PIPE_34_SCORE=3 +PIPE_34_BASENAME=homelab-backup-retention-gc +PIPE_34_PATH_SHA256=84fd8be6ff7bf620fc553010a47c881e35b6a01960f5ea1bda22fe6aca8f826d +PIPE_34_FILE_SHA256=a96e607107e7b4e7762f7cb7f0e91f8c3ec6b793ed4604633c125433839ac909 +PIPE_34_SCHEDULE_TARGET_COUNT=0 +PIPE_34_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_34_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_34_VZDUMP_QEMU_COUNT=0 +PIPE_34_RCLONE_COUNT=31 +PIPE_34_CLOUD_QUORUM_COUNT=1 +PIPE_34_SEAL_WRITTEN_COUNT=1 +PIPE_34_PAYLOAD_PARTS_COUNT=0 +PIPE_34_TRANSPORT_COUNT=0 +PIPE_34_RESTORE_VALIDATION_COUNT=0 +PIPE_34_SCHEDULE_RESULT_COUNT=0 +PIPE_34_RELEVANT_LINE_COUNT=188 +PIPE_34_RELEVANT_B64=NTpUQVNLX0lEPWJhY2t1cC1yZXRlbnRpb24tc2FmZS1nYy12MQo3OlNUQVRFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtCjg6UkVURU5USU9OX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MKOTpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXJldGVudGlvbi1zYWZlLWdjLmpzb24KMTA6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLmxvY2sKMTE6RElTUEFUQ0hFUl9MT0NLPS9ydW4vbG9jay9ob21lbGFiLWJhY2t1cC1kaXNwYXRjaGVyLmxvY2sKMTI6Vk1fTE9DSz0vcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jawoxMzpBUFBfTE9DSz0vcnVuL2xvY2svaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2sKMTQ6SEVBVllfTE9DSz0vcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2sKMTU6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdAoxNjpSRU1PVEVfQj1wdmUwMS1tYWlsLTAyLWNyeXB0CjE3OlJFTU9URV9ST09UPWhvbWVsYWItYmFja3VwcwoxODpSQ0xPTkVfQ09ORklHX1NPVVJDRT0iJHtSQ0xPTkVfQ09ORklHOi0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZn0iCjE5OlZNX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1mcmVzaG5lc3MtcHJvYmUKMjA6QVBQX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLWFwcC1jbG91ZC1xdW9ydW0tZnJlc2huZXNzLXByb2JlCjIxOlJFR0lTVFJZX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9UQVJHRVRfUkVHSVNUUllfSEVMUEVSOi0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5fSIKMjM6R0ZTX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZX0hFTFBFUjotL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItYmFja3VwLWdmcy1wb2xpY3l9IgoyNTpHRlNfUE9MSUNZPSIke0hPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1k6LS9ldGMvaG9tZWxhYi1iYWNrdXAvZ2ZzLXJldGVudGlvbi5qc29ufSIKMjY6Q09OVFJPTF9FVklERU5DRV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2NvbnRyb2wtcmVzdG9yZS12YWxpZGF0aW9uL2NvbnRyb2wtYm9vdHN0cmFwCjI3OltbIC14ICIkUkVHSVNUUllfSEVMUEVSIiAmJiAhIC1MICIkUkVHSVNUUllfSEVMUEVSIiBdXSB8fCB7IHByaW50ZiAnR0NfU1RBVFVTPUVSUk9SfFJPT1RfQ0FVU0U9VEFSR0VUX1JFR0lTVFJZX0hFTFBFUl9NSVNTSU5HXG4nID4mMjsgZXhpdCA2OTsgfQoyODpbWyAiJChzaGEyNTZzdW0gIiRSRUdJU1RSWV9IRUxQRVIifGF3ayAne3ByaW50ICQxfScpIiA9PSAiJFJFR0lTVFJZX0hFTFBFUl9TSEFfRVhQRUNURUQiIF1dIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1UQVJHRVRfUkVHSVNUUllfSEVMUEVSX1NIQV9EUklGVFxuJyA+JjI7IGV4aXQgNjU7IH0KMjk6IiRSRUdJU1RSWV9IRUxQRVIiIHZhbGlkYXRlID4vZGV2L251bGwgfHwgeyBwcmludGYgJ0dDX1NUQVRVUz1FUlJPUnxST09UX0NBVVNFPVRBUkdFVF9SRUdJU1RSWV9JTlZBTElEXG4nID4mMjsgZXhpdCA2NjsgfQozMjpIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiB2YWxpZGF0ZSA+L2Rldi9udWxsIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1HRlNfUE9MSUNZX0lOVkFMSURcbicgPiYyOyBleGl0IDY2OyB9CjMzOkdGU19XRUVLTFk9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgd2Vla2x5LWJ1Y2tldHMpIgozNDpHRlNfTU9OVEhMWT0iJChIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBtb250aGx5LWJ1Y2tldHMpIgozNTpHRlNfQ1JJVElDQUxfQ09VTlQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgY3JpdGljYWwtbG9naWNhbHMgfCB3YyAtbCkiCjUzOnNhZmVfZ2VuZXJhdGlvbigpewo1NDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIKNTU6ICBbWyAiJGdlbmVyYXRpb24iID1+IF4ke2xvZ2ljYWx9LXB2ZTBbMTIzXS1bMC05XXs4fVRbMC05XXs2fVokIF1dCjYwOiAgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUKNjE6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRUTVBST09UL3JjbG9uZS5jb25mIgo2MzpzdGF0ZV9maWxlcygpewo2NTogIGRpcj0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwiCjY2OiAgbm9kZV9leGVjICIkbm9kZSIgZmluZCAiJGRpciIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnQgMj4iJFRNUFJPT1Qvc3RhdGUtZmluZC5lcnIiIHx8IHsKNjk6ICAgIGRpZSAiU1RBVEVfRU5VTV9GQUlMRURfJHtsb2dpY2FsfV8ke25vZGV9IiA2OQo3MjpzdHJpY3Rfc3RhdGUoKXsKNzM6ICBsb2NhbCBqc29uPSIkMSIgbG9naWNhbD0iJDIiIGdlbmVyYXRpb249IiQzIgo3NDogIGpxIC1lIC0tYXJnIGwgIiRsb2dpY2FsIiAtLWFyZyBnICIkZ2VuZXJhdGlvbiIgJy5zY2hlbWE9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQgLmxvZ2ljYWxfaWQ9PSRsIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnNlYWxfd3JpdHRlbj09dHJ1ZSBhbmQgLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmxvY2FsX2RlbGV0ZV9hbGxvd2VkPT10cnVlIGFuZCAubG9jYWxfcGF5bG9hZF9wcmVzZW50PT1mYWxzZSBhbmQgLmxvY2FsX2NsZWFudXA9PSJPSyInIDw8PCIkanNvbiIgPi9kZXYvbnVsbAo3NjpsYXRlc3RfcmVzdG9yZV9wcm92ZW4oKXsKNzc6ICBsb2NhbCBsb2dpY2FsPSIkMSIgbm9kZSBvdXQgZGVjaXNpb24gZ2VuZXJhdGlvbiBsYXRlc3QKODM6ICAgICAgW1sgIiRkZWNpc2lvbiIgPT0gU0VBTEVEX1BST1ZFTiBdXSB8fCByZXR1cm4gMQo4ODogICAgICBbWyAiJGRlY2lzaW9uIiA9PSBTRUFMRURfUFJPVkVOIF1dIHx8IHJldHVybiAxCjkxOiAgICAgIGxhdGVzdD0iJChmaW5kICIkU1RBVEVfUk9PVC9jb250cm9sLWJvb3RzdHJhcC12MiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnRmICclZlxuJyB8IExDX0FMTD1DIHNvcnQgfCB0YWlsIC1uIDEpIgo5MjogICAgICBbWyAtbiAiJGxhdGVzdCIgXV0gfHwgcmV0dXJuIDEKOTM6ICAgICAgZ2VuZXJhdGlvbj0iJHtsYXRlc3QlLmpzb259Igo5NDogICAgICBbWyAtcyAiJENPTlRST0xfRVZJREVOQ0VfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIiAmJiAhIC1MICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IHJldHVybiAxCjk1OiAgICAgIGpxIC1lIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAnLnJlc3VsdD09Ik9LIiBhbmQgLmxvZ2ljYWxfaWQ9PSJjb250cm9sLWJvb3RzdHJhcC12MiIgYW5kIC5nZW5lcmF0aW9uPT0kZyBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUnICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iID4vZGV2L251bGwKMTAwOnJlbW90ZV9zZXQoKXsKMTAxOiAgbG9jYWwgcmVtb3RlPSIkMSIKMTAyOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiB8IGF3ayAtRi8gJ05GPT0zICYmICQxIT0iIiAmJiAkMiE9IiJ7cHJpbnQgJDEiLyIkMn0nIHwgTENfQUxMPUMgc29ydCAtdQoxMDU6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuZXJhdGlvbj0iJDIiIGYKMTA2OiAgZj0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxMDc6ICBbWyAtcyAiJGYiICYmICEgLUwgIiRmIiBdXSAmJiBqcSAtZSAnLnN0YXR1cz09IkRPTkUiIGFuZCAucmVtb3RlX2FfYWJzZW50PT10cnVlIGFuZCAucmVtb3RlX2JfYWJzZW50PT10cnVlJyAiJGYiID4vZGV2L251bGwKMTEwOiAgbG9jYWwgbG9naWNhbD0iJDEiIGdlbmVyYXRpb249IiQyIiBmCjExMTogIGY9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMTM0OiAgbG9jYWwgZj0iJHtIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEU6LX0iIGV4cGVjdGVkPSIke0hPTUVMQUJfUkVURU5USU9OX1BJTk5FRF9ERUxFVEVfU0hBMjU2Oi19IiBhY3R1YWwgbGluZSBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgY291bnQ9MAoxNDM6ICAgIGdlbmVyYXRpb249IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15nZW5lcmF0aW9uPS8pe3N1YigvXmdlbmVyYXRpb249LywiIiwkaSk7cHJpbnQgJGl9fScgPDw8IiRsaW5lIikiCjE0NTogICAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTQ2OiAgICBzdGF0ZV9zaGE9IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15zdGF0ZV9zaGEyNTY9Lyl7c3ViKC9ec3RhdGVfc2hhMjU2PS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxNDc6ICAgIFtbICIkbGluZSIgPT0gIkRFTEVURXxsb2dpY2FsPSRsb2dpY2FsfGdlbmVyYXRpb249JGdlbmVyYXRpb258b3duZXI9JG93bmVyfHN0YXRlX2ZpbGU9JHN0YXRlX2ZpbGV8c3RhdGVfc2hhMjU2PSRzdGF0ZV9zaGEiIF1dIHx8IGRpZSBQSU5ORURfREVMRVRFX0xJTkVfRk9STUFUX0lOVkFMSUQgNjYKMTQ5OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiUElOTkVEX0RFTEVURV9HRU5FUkFUSU9OX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTUwOiAgICBbWyAiJHN0YXRlX2ZpbGUiID09ICIkU1RBVEVfUk9PVC8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIiBdXSB8fCBkaWUgIlBJTk5FRF9ERUxFVEVfU1RBVEVfUEFUSF9JTlZBTElEXyR7bG9naWNhbH0iIDY2CjE1MTogICAgW1sgIiRzdGF0ZV9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUElOTkVEX0RFTEVURV9TVEFURV9TSEFfSU5WQUxJRF8ke2xvZ2ljYWx9IiA2NgoxNTg6ICBsb2NhbCBmPSIkMSIgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgZXhwZWN0ZWRfcGF0aAoxNjA6ICBqcSAtZSAtLWFyZyB0YXNrICIkVEFTS19JRCIgLS1hcmcgY2hhbmdlICIkQ0hBTkdFX0lEIiAnLnNjaGVtYT09ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIgYW5kIC50YXNrX2lkPT0kdGFzayBhbmQgLmNoYW5nZV9pZD09JGNoYW5nZSBhbmQgKC5sb2dpY2FsX2lkfHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5nZW5lcmF0aW9ufHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5zdGF0ZV9zaGEyNTZ8dHlwZSk9PSJzdHJpbmciIGFuZCAoLnN0YXR1cz09IlBMQU5ORUQiIG9yIC5zdGF0dXM9PSJCX0RFTEVURUQiIG9yIC5zdGF0dXM9PSJET05FIiknICIkZiIgPi9kZXYvbnVsbCB8fCBkaWUgIlBJTk5FRF9UWF9DT05URU5UX0lOVkFMSURfJGYiIDY2CjE2MTogIGxvZ2ljYWw9IiQoanEgLWVyICcubG9naWNhbF9pZCcgIiRmIikiOyBnZW5lcmF0aW9uPSIkKGpxIC1lciAnLmdlbmVyYXRpb24nICIkZiIpIjsgc3RhdGVfc2hhPSIkKGpxIC1lciAnLnN0YXRlX3NoYTI1NicgIiRmIikiOyBzdGF0dXM9IiQoanEgLWVyICcuc3RhdHVzJyAiJGYiKSIKMTYzOiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIlBJTk5FRF9UWF9HRU5FUkFUSU9OX1VOU0FGRV8ke2xvZ2ljYWx9IiA2NgoxNjQ6ICBbWyAiJHN0YXRlX3NoYSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQSU5ORURfVFhfU1RBVEVfU0hBX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTY1OiAgZXhwZWN0ZWRfcGF0aD0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxNjY6ICBbWyAiJGYiID09ICIkZXhwZWN0ZWRfcGF0aCIgXV0gfHwgZGllICJQSU5ORURfVFhfUEFUSF9JTlZBTElEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTY3OiAgcHJpbnRmICdERUxFVEV8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHN0YXRlX2ZpbGU9JXN8c3RhdGVfc2hhMjU2PSVzXG4nICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJG93bmVyIiAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIgIiRzdGF0ZV9zaGEiCjE3ODogIGxvY2FsIHBsYW5fZmlsZT0iJDEiIGxpbmUgbG9naWNhbCBnZW5lcmF0aW9uIHJlYXNvbiB0eGYgc3RhdHVzCjE4MTogICAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTgzOiAgICBbWyAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fUExBTk5FRCB8fCAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fQl9ERUxFVEVEIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fVU5FWFBFQ1RFRF9QUk9URUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufV8ke3JlYXNvbn0iIDY2CjE4NDogICAgdHhmPSIkUkVURU5USU9OX1JPT1QvdHJhbnNhY3Rpb25zLyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iCjE4NTogICAgW1sgLXMgIiR0eGYiICYmICEgLUwgIiR0eGYiIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9UWF9NSVNTSU5HXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTg3OiAgICBbWyAiR0NfVFJBTlNBQ1RJT05fJHN0YXR1cyIgPT0gIiRyZWFzb24iIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9TVEFUVVNfTUlTTUFUQ0hfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IiA2NgoxODg6ICAgIGdyZXAgLUZxeCAiJChwaW5uZWRfdHhfaWRlbnRpdHkgIiR0eGYiKSIgIiRIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEUiIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9OT1RfUElOTkVEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMjExOiAgcHJpbnRmICdDT05UUkFDVHx0YXNrPSVzfHBvbGljeT1PV05FUl9BV0FSRV9TQUZFX0dDX0dGU3x0YXJnZXRfcmVnaXN0cnk9Q0FOT05JQ0FMfHZtX2tlZXA9JXN8YXBwX2tlZXA9JXN8Y29udHJvbF9rZWVwPSVzfG1pbl9kZWxldGVfYWdlX3NlY29uZHM9JXN8Z2ZzX2NyaXRpY2FsPSVzfGdmc193ZWVrbHk9JXN8Z2ZzX21vbnRobHk9JXN8Z2ZzX2NvbXBsZXRlZF9wZXJpb2RzX29ubHk9WUVTfG5vbnNlYWxlZD1QUk9URUNUfHJldGlyZWRfcHJlc2VydmU9UFJPVEVDVHx1bmtub3duX25hbWVzcGFjZT1QUk9URUNUfG93bmVyX3N0YXRlX3JlcXVpcmVkPVlFU3xib3RoX2Nsb3Vkc19yZXF1aXJlZD1ZRVN8bGF0ZXN0X3Jlc3RvcmVfcHJvdmVuX3JlcXVpcmVkPVlFU3xsZWdhY3lfaGI9UFJPVEVDVHxsZWdhY3lfcHZlMDE9UFJPVEVDVHxsZWdhY3lfY29udHJvbD1QUk9URUNUXG4nICIkVEFTS19JRCIgIiRWTV9LRUVQIiAiJEFQUF9LRUVQIiAiJENPTlRST0xfS0VFUCIgIiRNSU5fREVMRVRFX0FHRV9TRUNPTkRTIiAiJEdGU19DUklUSUNBTF9DT1VOVCIgIiRHRlNfV0VFS0xZIiAiJEdGU19NT05USExZIgoyMTQ6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdCB0eCBvdXQga2luZCBidWNrZXQKMjE4OiAgaWYgISBIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBpcy1jcml0aWNhbCAiJGxvZ2ljYWwiOyB0aGVuIHJldHVybiAwOyBmaQoyMTk6ICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyMjQ6ICAgIHByaW50ZiAnJXNcdCVzXG4nICIkZ2VuIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwuZ2ZzLWVsaWdpYmxlIgoyMjY6ICBvdXQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgc2VsZWN0ICIkbG9naWNhbCIgPCIkVE1QUk9PVC8kbG9naWNhbC5nZnMtZWxpZ2libGUiKSIgfHwgZGllICJHRlNfU0VMRUNUX0ZBSUxFRF8kbG9naWNhbCIgNjYKMjM4OiAgcmVtb3RlX3NldCAiJFJFTU9URV9BIiA+IiRUTVBST09UL2Euc2V0IgoyMzk6ICByZW1vdGVfc2V0ICIkUkVNT1RFX0IiID4iJFRNUFJPT1QvYi5zZXQiCjI0MDogIGxvY2FsIG5vdyBsb2dpY2FsIG5vZGUga2VlcCBsaWZlY3ljbGUgb3Blbl9jb3VudCBmaWxlIGpzb24gc2NoZW1hIGxpZCBnZW4gc3RhdHVzIHNoYSBzZWFsZWRfYXQgZXBvY2ggYWdlIGlkeCB0eCBnZnNfYnVja2V0IGNhbmRpZGF0ZXM9MCBwcm90ZWN0ZWQ9MCBrZXB0PTAgZ2ZzX2tlcHQ9MAoyNTA6ICAgICAgW1sgIiRmaWxlIiA9PSAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvIiouanNvbiBdXSB8fCB7IHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfHJlYXNvbj1TVEFURV9QQVRIX1VOU0FGRXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI1MTogICAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG5vZGUiIGNhdCAiJGZpbGUiKSIgfHwgZGllICJTVEFURV9SRUFEX0ZBSUxFRF8ke2xvZ2ljYWx9IiA2OQoyNTQ6ICAgICAgZ2VuPSIkKGpxIC1yICcuZ2VuZXJhdGlvbi8vIiInIDw8PCIkanNvbiIpIgoyNTY6ICAgICAgaWYgW1sgIiRzY2hlbWEiICE9IGhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEgfHwgIiRsaWQiICE9ICIkbG9naWNhbCIgXV0gfHwgISBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbiI7IHRoZW4KMjU3OiAgICAgICAgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8cmVhc29uPU5PTkNBTk9OSUNBTF9TVEFURXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlCjI2MDogICAgICBpZiBbWyAiJHN0YXR1cyIgIT0gU0VBTEVEIF1dOyB0aGVuCjI2MjogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPUlOQ09NUExFVEVfJXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJHN0YXR1cyIKMjY2OiAgICAgIHN0cmljdF9zdGF0ZSAiJGpzb24iICIkbG9naWNhbCIgIiRnZW4iIHx8IHsgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249U0VBTEVEX1NUQVRFX05PVF9TVFJJQ1RcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI2NzogICAgICBzZWFsZWRfYXQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjLy8iIicgPDw8IiRqc29uIikiCjI2ODogICAgICBlcG9jaD0iJChkYXRlIC11IC1kICIkc2VhbGVkX2F0IiArJXMgMj4iJFRNUFJPT1QvZGF0ZS5lcnIiKSIgfHwgeyBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1TRUFMRURfVElNRV9JTlZBTElEXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSI7IHByb3RlY3RlZD0kKChwcm90ZWN0ZWQrMSkpOyBjb250aW51ZTsgfQoyNzA6ICAgICAgcHJpbnRmICclc1x0JXNcdCVzXHQlc1x0JXNcdCVzXG4nICIkZ2VuIiAiJGZpbGUiICIkc2hhIiAiJGFnZSIgIiRub2RlIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIKMjcxOiAgICBkb25lIDwgPChzdGF0ZV9maWxlcyAiJG5vZGUiICIkbG9naWNhbCIgfCBMQ19BTEw9QyBzb3J0KQoyNzM6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TE9HSUNBTF9IQVNfSU5DT01QTEVURVxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjc3OiAgICAgIHdoaWxlIElGUz0kJ1x0JyByZWFkIC1yIGdlbiBmaWxlIHNoYSBhZ2Ugbm9kZSBzZWFsZWRfYXQ7IGRvIHByaW50ZiAnS0VFUHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFVElSRURfUFJFU0VSVkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsga2VwdD0kKChrZXB0KzEpKTsgZG9uZSA8IDwoTENfQUxMPUMgc29ydCAtciAiJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIpCjI4MDogICAgaWYgISBsYXRlc3RfcmVzdG9yZV9wcm92ZW4gIiRsb2dpY2FsIjsgdGhlbgoyODE6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TEFURVNUX1JFU1RPUkVfTk9UX1BST1ZFTlxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjg2OiAgICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyOTA6ICAgICAgICBwcmludGYgJ1JFVElSRUR8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19BTFJFQURZX0RPTkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIgoyOTI6ICAgICAgICBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19UUkFOU0FDVElPTl8lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkdHgiOyBwcm90ZWN0ZWQ9JCgocHJvdGVjdGVkKzEpKQoyOTQ6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1QT0xJQ1lfTkVXRVNUXyVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRrZWVwIjsga2VwdD0kKChrZXB0KzEpKQoyOTY6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1NSU5fQUdFfGFnZV9zZWNvbmRzPSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRhZ2UiOyBrZXB0PSQoKGtlcHQrMSkpCjI5ODogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFTU9URV9TRVRfTUlTTUFUQ0hcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSkKMzAwOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX1dFRUtMWXxidWNrZXQ9JXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJGdmc19idWNrZXQiOyBrZXB0PSQoKGtlcHQrMSkpOyBnZnNfa2VwdD0kKChnZnNfa2VwdCsxKSkKMzAyOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX01PTlRITFl8YnVja2V0PSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRnZnNfYnVja2V0Ijsga2VwdD0kKChrZXB0KzEpKTsgZ2ZzX2tlcHQ9JCgoZ2ZzX2tlcHQrMSkpCjMwNDogICAgICAgIHByaW50ZiAnREVMRVRFfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xzdGF0ZV9maWxlPSVzfHN0YXRlX3NoYTI1Nj0lc3xhZ2Vfc2Vjb25kcz0lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkZmlsZSIgIiRzaGEiICIkYWdlIgozMTQ6cmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCgpewozMTU6ICBsb2NhbCByZW1vdGU9IiQxIiBsb2dpY2FsPSIkMiIgZ2VuZXJhdGlvbj0iJDMiIGRpcnMKMzE2OiAgZGlycz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09ULyRsb2dpY2FsIiAtLWRpcnMtb25seSAtLW1heC1kZXB0aCAxIDI+IiRUTVBST09UL2xzZi5lcnIiKSIgfHwgZGllICJSRU1PVEVfTElTVF9GQUlMRURfJHtyZW1vdGV9XyR7bG9naWNhbH0iIDY5CjMxNzogIHByaW50ZiAnJXNcbicgIiRkaXJzIiB8IHNlZCAnczovJDo6JyB8IGdyZXAgLUZxeCAiJGdlbmVyYXRpb24iCjMyMDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIgc3RhdGVfc2hhPSIkMyIgc3RhdHVzPSIkNCIgYV9hYnNlbnQ9IiQ1IiBiX2Fic2VudD0iJDYiIHBhdGggdG1wCjMyMTogIHBhdGg9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzI0OiAganEgLW4gLS1hcmcgdGFzayAiJFRBU0tfSUQiIC0tYXJnIGNoYW5nZSAiJENIQU5HRV9JRCIgLS1hcmcgbCAiJGxvZ2ljYWwiIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAtLWFyZyBzICIkc3RhdGVfc2hhIiAtLWFyZyBzdGF0dXMgIiRzdGF0dXMiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBhYSAiJGFfYWJzZW50IiAtLWFyZ2pzb24gYmEgIiRiX2Fic2VudCIgJ3tzY2hlbWE6ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIsdGFza19pZDokdGFzayxjaGFuZ2VfaWQ6JGNoYW5nZSxsb2dpY2FsX2lkOiRsLGdlbmVyYXRpb246JGcsc3RhdGVfc2hhMjU2OiRzLHN0YXR1czokc3RhdHVzLHVwZGF0ZWRfYXRfdXRjOiRhdCxyZW1vdGVfYV9hYnNlbnQ6JGFhLHJlbW90ZV9iX2Fic2VudDokYmF9JyA+IiR0bXAiCjMyOTogIGxvY2FsIGxpbmU9IiQxIiBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgYWdlIGpzb24gY3VycmVudF9zaGEKMzMxOiAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzMzOiAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM0OiAgc3RhdGVfc2hhPSIkKGF3ayAtRid8JyAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9ec3RhdGVfc2hhMjU2PS8pe3N1YigvXnN0YXRlX3NoYTI1Nj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM2OiAgW1sgIiQobm9kZV9mb3JfbG9naWNhbCAiJGxvZ2ljYWwiKSIgPT0gIiRvd25lciIgXV0gfHwgZGllICJBUFBMWV9PV05FUl9DSEFOR0VEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzM3OiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX0dFTkVSQVRJT05fVU5TQUZFXyR7bG9naWNhbH0iCjMzODogIFtbICIkc3RhdGVfZmlsZSIgPT0gIiRTVEFURV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfUEFUSF9VTlNBRkVfJHtsb2dpY2FsfSIKMzM5OiAganNvbj0iJChub2RlX2V4ZWMgIiRvd25lciIgY2F0ICIkc3RhdGVfZmlsZSIpIiB8fCBkaWUgIkFQUExZX1NUQVRFX1JFQURfJHtsb2dpY2FsfSIgNjkKMzQxOiAgW1sgIiRjdXJyZW50X3NoYSIgPT0gIiRzdGF0ZV9zaGEiIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfRFJJRlRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDI6ICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJBUFBMWV9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzQzOiAgKCggYWdlID49IE1JTl9ERUxFVEVfQUdFX1NFQ09ORFMgKSkgfHwgZGllICJBUFBMWV9BR0VfR1VBUkRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDQ6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0EiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9BX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDU6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0IiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9CX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDY6ICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIFBMQU5ORUQgZmFsc2UgZmFsc2UKMzQ3OiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQjokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM0ODogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM0OTogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgQl9ERUxFVEVEIGZhbHNlIHRydWUKMzUwOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM1MTogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM1MjogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgRE9ORSB0cnVlIHRydWUKMzUzOiAgcHJpbnRmICdHQ19ERUxFVEVfRE9ORXxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXNcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkb3duZXIiCjM1NjogIGxvY2FsIGYgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgc3RhdGVfZmlsZSBqc29uIGN1cnJlbnRfc2hhCjM2MzogICAgZ2VuZXJhdGlvbj0iJChqcSAtZXIgJy5nZW5lcmF0aW9uJyAiJGYiKSIKMzY0OiAgICBzdGF0ZV9zaGE9IiQoanEgLWVyICcuc3RhdGVfc2hhMjU2JyAiJGYiKSIKMzY2OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiVFhfR0VORVJBVElPTl9VTlNBRkVfJGxvZ2ljYWwiCjM2NzogICAgc3RhdGVfZmlsZT0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzY4OiAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG93bmVyIiBjYXQgIiRzdGF0ZV9maWxlIikiIHx8IGRpZSAiVFhfU1RBVEVfUkVBRF8ke2xvZ2ljYWx9IiA2OQozNzA6ICAgIFtbICIkY3VycmVudF9zaGEiID09ICIkc3RhdGVfc2hhIiBdXSB8fCBkaWUgIlRYX1NUQVRFX0RSSUZUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzcxOiAgICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJUWF9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzczOiAgICAgIGlmIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iOyB0aGVuIHJjbG9uZSAtLWNvbmZpZyAiJFRNUFJPT1QvcmNsb25lLmNvbmYiIHB1cmdlICIkUkVNT1RFX0I6JFJFTU9URV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uIjsgZmkKMzc0OiAgICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3NTogICAgICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIEJfREVMRVRFRCBmYWxzZSB0cnVlCjM3NzogICAgaWYgcmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCAiJFJFTU9URV9BIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiI7IHRoZW4gcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iOyBmaQozNzg6ICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3OTogICAgd3JpdGVfdHggIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkc3RhdGVfc2hhIiBET05FIHRydWUgdHJ1ZQozODA6ICAgIHByaW50ZiAnR0NfVFJBTlNBQ1RJT05fUkVTVU1FRHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8c3RhdHVzPURPTkVcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iCjM4MzphY3F1aXJlX2djX2xvY2tzKCl7CjM4NDogIGV4ZWMgNj4iJERJU1BBVENIRVJfTE9DSyI7IGZsb2NrIC1uIDYgfHwgcmV0dXJuIDEKMzg1OiAgZXhlYyA3PiIkVk1fTE9DSyI7IGZsb2NrIC1uIDcgfHwgcmV0dXJuIDEKMzg2OiAgZXhlYyA4PiIkQVBQX0xPQ0siOyBmbG9jayAtbiA4IHx8IHJldHVybiAxCjM4NzogIGV4ZWMgOT4iJEhFQVZZX0xPQ0siOyBmbG9jayAtbiA5IHx8IHJldHVybiAxCjM5MTogIGxvY2FsIGdlbmVyYXRpb24gZmlsZSBzaGEgcmVtb3RlIHJlYWRiYWNrIGRpcnMKMzkyOiAgZ2VuZXJhdGlvbj0iY3IwMDMzLSQoZGF0ZSAtdSArJVklbSVkVCVIJU0lU1opLSQkIgozOTQ6ICBwcmludGYgJ2hvbWVsYWIgcmV0ZW50aW9uIGRlc3RydWN0aXZlIGNhbmFyeSAlc1xuJyAiJGdlbmVyYXRpb24iID4iJGZpbGUiCjM5NjogIGZvciByZW1vdGUgaW4gIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiI7IGRvCjM5NzogICAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgY29weXRvICIkZmlsZSIgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgLS1pbW11dGFibGUgLS1zaXplLW9ubHkKMzk4OiAgICByZWFkYmFjaz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBjYXQgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIKMzk5OiAgICBbWyAiJHJlYWRiYWNrIiA9PSAiJHNoYSIgXV0gfHwgZGllICJDQU5BUllfUkVBREJBQ0tfJHtyZW1vdGV9Igo0MDE6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9COiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDI6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9BOiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDM6ICBmb3IgcmVtb3RlIGluICIkUkVNT1RFX0EiICIkUkVNT1RFX0IiOyBkbwo0MDQ6ICAgIGRpcnM9IiQocmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiAyPiIkVE1QUk9PVC9jYW5hcnktbHNmLmVyciIpIiB8fCBkaWUgIkNBTkFSWV9MSVNUX0ZBSUxFRF8ke3JlbW90ZX0iIDY5CjQwNTogICAgaWYgcHJpbnRmICclc1xuJyAiJGRpcnMiIHwgc2VkICdzOi8kOjonIHwgZ3JlcCAtRnF4ICJyZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIjsgdGhlbiBkaWUgIkNBTkFSWV9QVVJHRV9GQUlMRURfJHtyZW1vdGV9IjsgZmkKNDA3OiAgcHJpbnRmICdDQU5BUllfU1RBVFVTPU9LfGdlbmVyYXRpb249JXN8Y2xvdWRfd3JpdGVzPVlFU3xjbG91ZF9kZWxldGVzPVlFU1xuJyAiJGdlbmVyYXRpb24iCjQxNTogIGlmIGZpbmQgIiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMiIC10eXBlIGYgLW5hbWUgJyouanNvbicgLWV4ZWMganEgLWUgJy5zdGF0dXM9PSJET05FIiBhbmQgLnJlbW90ZV9hX2Fic2VudD09dHJ1ZSBhbmQgLnJlbW90ZV9iX2Fic2VudD09dHJ1ZScge30gXDsgLXByaW50IDI+IiRUTVBST09UL3R4LWZpbmQuZXJyIiB8IGdyZXAgLXEgLjsgdGhlbiBoaXN0PXRydWU7IGZpCjQxODogIGpxIC1uIC0tYXJnIHRhc2sgIiRUQVNLX0lEIiAtLWFyZyBjaGFuZ2UgIiRDSEFOR0VfSUQiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBjYW5hcnkgIiRjYW5hcnlfcHJvdmVuIiAtLWFyZ2pzb24gaGlzdCAiJGhpc3QiIC0tYXJnanNvbiBjYW5kaWRhdGVzICIke2NhbmRpZGF0ZXM6LTB9IiAtLWFyZ2pzb24gcHJvdGVjdGVkICIke3Byb3RlY3RlZDotMH0iIC0tYXJnanNvbiBrZXB0ICIke2tlcHQ6LTB9IiAtLWFyZ2pzb24gZ2ZzX2tlcHQgIiR7Z2ZzX2tlcHQ6LTB9IiAtLWFyZ2pzb24gZGVsZXRlZCAiJGRlbGV0ZWQiIC0tYXJnanNvbiBnZnNfY3JpdGljYWwgIiRHRlNfQ1JJVElDQUxfQ09VTlQiIC0tYXJnanNvbiBnZnNfd2Vla2x5ICIkR0ZTX1dFRUtMWSIgLS1hcmdqc29uIGdmc19tb250aGx5ICIkR0ZTX01PTlRITFkiICd7c2NoZW1hOiJob21lbGFiLWJhY2t1cC1yZXRlbnRpb24tdjEiLHN0YXR1czoiT0siLHRhc2tfaWQ6JHRhc2ssY2hhbmdlX2lkOiRjaGFuZ2UsdXBkYXRlZF9hdF91dGM6JGF0LHBvbGljeTp7dm1fa2VlcDoyLGFwcF9rZWVwOjcsY29udHJvbF9rZWVwOjQsbWluX2RlbGV0ZV9hZ2Vfc2Vjb25kczo4NjQwMCxnZnM6e2VuYWJsZWQ6dHJ1ZSxjcml0aWNhbF92bV9jb3VudDokZ2ZzX2NyaXRpY2FsLHdlZWtseV9jb21wbGV0ZWRfYnVja2V0czokZ2ZzX3dlZWtseSxtb250aGx5X2NvbXBsZXRlZF9idWNrZXRzOiRnZnNfbW9udGhseSxjb21wbGV0ZWRfcGVyaW9kc19vbmx5OnRydWV9fSxvd25lcl9hd2FyZV9nY19wcm92ZW46dHJ1ZSxkZXN0cnVjdGl2ZV9jYW5hcnlfcHJvdmVuOiRjYW5hcnksaGlzdG9yaWNhbF9nY19wcm92ZW46JGhpc3QsbGFzdF9wbGFuOntkZWxldGVfY2FuZGlkYXRlczokY2FuZGlkYXRlcyxwcm90ZWN0ZWQ6JHByb3RlY3RlZCxrZXB0OiRrZXB0LGdmc19rZXB0OiRnZnNfa2VwdH0sbGFzdF9ydW5fZGVsZXRlZDokZGVsZXRlZCxsZWdhY3lfbmFtZXNwYWNlc19wcm90ZWN0ZWQ6WyJoYiIsInB2ZTAxIiwiY29udHJvbC1ib290c3RyYXAiXSxwcm92aWRlcl93b3JtX3Byb3ZlbjpmYWxzZX0nID4iJHRtcCIKNDI0OiAgZXhlYyA1PiIkTE9DSyI7IGZsb2NrIC1uIDUgfHwgZGllIEdDX0xPQ0tfQlVTWSA3NQo0MzM6c2NoZWR1bGVkKCl7CjQzNDogIGV4ZWMgNT4iJExPQ0siOyBmbG9jayAtbiA1IHx8IHsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9U0tJUHxyZWFzb249R0NfTE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQo0NDI6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMSIgUFJFTE9DSzsgZmkKNDQzOiAgaWYgKCggY291bnQgPT0gMCAmJiBvcGVuX3R4ID09IDAgKSk7IHRoZW4gd3JpdGVfaGVhbHRoICIkcDEiIHRydWUgMDsgY2F0ICIkcDEiOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1PS3xkZWxldGVkPTB8dHJhbnNhY3Rpb25zX3Jlc3VtZWQ9MFxuJzsgcmV0dXJuIDA7IGZpCjQ0NDogIGlmICEgYWNxdWlyZV9nY19sb2NrczsgdGhlbiB3cml0ZV9oZWFsdGggIiRwMSIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1CQUNLVVBfTE9DS19CVVNZfGNhbmRpZGF0ZXM9JXN8b3Blbl90cmFuc2FjdGlvbnM9JXNcbicgIiRjb3VudCIgIiRvcGVuX3R4IjsgcmV0dXJuIDA7IGZpCjQ0NTogIGlmIHBpbm5lZF9kZWxldGVfY29udHJhY3RfZW5hYmxlZDsgdGhlbiBwbGFuID4iJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiOyBwaW5uZWRfYXNzZXJ0X2RlbGV0ZV9zY29wZSAiJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiIExPQ0tFRF9QUkVfUkVTVU1FOyBmaQo0NDg6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMiIgTE9DS0VEX1BPU1RfUkVTVU1FOyBmaQo0NDk6ICBpZiAoKCBjb3VudCA9PSAwICkpOyB0aGVuIHdyaXRlX2hlYWx0aCAiJHAyIiB0cnVlIDA7IGNhdCAiJHAyIjsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0wfHRyYW5zYWN0aW9uc19yZXN1bWVkPSVzXG4nICIkb3Blbl90eCI7IHJldHVybiAwOyBmaQo0NTA6ICBjbXAgLXMgPChncmVwICdeREVMRVRFfCcgIiRwMSIgfCBzdGFibGVfZGVsZXRlX3NldCkgPChncmVwICdeREVMRVRFfCcgIiRwMiIgfCBzdGFibGVfZGVsZXRlX3NldCkgfHwgeyB3cml0ZV9oZWFsdGggIiRwMiIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1QTEFOX0NIQU5HRURfQUZURVJfTE9DS1xuJzsgcmV0dXJuIDA7IH0KNDU0OiAgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0lc3x0cmFuc2FjdGlvbnNfcmVzdW1lZD0lc1xuJyAiJGRlbGV0ZWQiICIkb3Blbl90eCIKNDYyOiAgc2NoZWR1bGVkKSBzY2hlZHVsZWQgOzsKNDYzOiAgKikgZGllIFVTQUdFX2NvbnRyYWN0X3BsYW5fY2FuYXJ5X2FjdGl2YXRlX3NjaGVkdWxlZCA2NCA7Ow== +PIPE_35_SCORE=3 +PIPE_35_BASENAME=homelab-mail-cloud-edge-vm-upload +PIPE_35_PATH_SHA256=9b4778c78705e274cf77e0dcd1a8c13b491bba76d6a43e57b3830b005c7c8dff +PIPE_35_FILE_SHA256=f22848d83a7ce13ca331ce9181523d0a8fadcf34f01d0c95186784c6b1f0875f +PIPE_35_SCHEDULE_TARGET_COUNT=0 +PIPE_35_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_35_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_35_VZDUMP_QEMU_COUNT=1 +PIPE_35_RCLONE_COUNT=13 +PIPE_35_CLOUD_QUORUM_COUNT=0 +PIPE_35_SEAL_WRITTEN_COUNT=0 +PIPE_35_PAYLOAD_PARTS_COUNT=0 +PIPE_35_TRANSPORT_COUNT=1 +PIPE_35_RESTORE_VALIDATION_COUNT=0 +PIPE_35_SCHEDULE_RESULT_COUNT=0 +PIPE_35_RELEVANT_LINE_COUNT=75 +PIPE_35_RELEVANT_B64=NTpMT0NLPS9ydW4vaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLmxvY2sKNjpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvbWFpbC1jbG91ZC1lZGdlLXZtLnR4dAo5OlRBUkdFVF9SRU1PVEU9cHZlMDMtbWFpbC0wMy1jcnlwdAoxMDpUQVJHRVRfQkFTRT1mdWxsL2VkZ2Utdm0tdnpkdW1wCjE4OlJFTU9URV9FTlY9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52CjE5OlJFTU9URV9TQ1JJUFQ9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoCjI1OlZNSUQ9bm9uZQoyNzpUQVJHRVRfRElSPW5vbmUKMzA6ICBwcmludGYgIlNUQVRVUz1FUlJPUiBUUz0lcyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPSVzIFJFTU9URT0lcyBERVNUPSVzIEFSQ0hJVkU9JXMgU0laRT0lcyBTSEEyNTY9JXMgVk1JRD0lcyBTRUNSRVRfUFJJTlRFRD1ubyBOT1RFUz0lc1xuIiAiJFRTIiAiJE1PREUiICIkVEFSR0VUX1JFTU9URSIgIiRUQVJHRVRfRElSIiAiJEJBU0VOQU1FIiAiJFNJWkUiICIkU0hBIiAiJFZNSUQiICIkbm90ZSIgPiAiJEhFQUxUSCIKNDI6ZXhlYyA5PiIkTE9DSyIKNDM6aWYgISBmbG9jayAtbiA5OyB0aGVuCjQ0OiAgZWNobyAiU1RBVFVTPUVSUk9SIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBSRUFTT049bG9ja19idXN5IFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPWxvY2tfYnVzeSIgPiAiJEhFQUxUSCIKNDY6ICBlY2hvICJOT1RFUz1sb2NrX2J1c3kiCjU2OlZNSUQ9JChlY2hvICIkSCIgfCBhd2sgJ3tmb3IoaT0xO2k8PU5GO2krKykgaWYoJGkgfiAvXlZNSUQ9Lyl7c3ViKC9eVk1JRD0vLCIiLCRpKTsgcHJpbnQgJGl9fScpCjU4OlRBUkdFVF9ESVI9JFRBUkdFVF9CQVNFLyRUUwo2MTpbICIkVk1JRCIgPSAiMTMwIiBdIHx8IGZhaWwgdm1pZF9ub3RfMTMwIDIKNjQ6Y2FzZSAiJFNPVVJDRSIgaW4gL21udC9zdGFnaW5nL29mZmhvc3QvZWRnZS12bS12emR1bXAtZnJvbS1wdmUwMy92emR1bXAtcWVtdS0xMzAtKi52bWEuenN0KSA7OyAqKSBmYWlsIHNvdXJjZV9wYXRoX2JhZCAyIDs7IGVzYWMKNjc6Y2F0ID4gIiRSRU1PVEVfRU5WIiA8PEVPRgo2OTpUQVJHRVRfUkVNT1RFPSRUQVJHRVRfUkVNT1RFCjcwOlRBUkdFVF9CQVNFPSRUQVJHRVRfQkFTRQo3MTpUQVJHRVRfRElSPSRUQVJHRVRfRElSCjc5OlZNSUQ9JFZNSUQKODM6Y2F0ID4gIiRSRU1PVEVfU0NSSVBUIiA8PCdSRU1PVEVfU0NSSVBUX0VPRicKODc6LiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5lbnYKOTE6V09SSz0iL21udC9zdGFnaW5nL21haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtYXV0by8kVFMiCjk2OlJFTU9URV9QQVJUUz0kVEFSR0VUX0RJUi9wYXJ0cwo5NzpSRU1PVEVfU0hBPSRUQVJHRVRfRElSLyRCQVNFTkFNRS5zaGEyNTYKOTg6UkVNT1RFX01BTklGRVNUPSRUQVJHRVRfRElSL01BTklGRVNULnR4dAo5OTpSRU1PVEVfU1VNUz0kVEFSR0VUX0RJUi9TSEEyNTZTVU1TLnR4dAoxMTE6cmNsb25lIGFib3V0ICIkVEFSR0VUX1JFTU9URToiID4gIiRXT1JLL2xvZ3MvYWJvdXQub3V0IiAyPiIkV09SSy9sb2dzL2Fib3V0LmVyciIgfHwgQUJPVVRfUkM9JD8KMTE0OkRJUlM9IiQocmNsb25lIGxzZiAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFIiAtLWRpcnMtb25seSAyPi9kZXYvbnVsbCB8IHNlZCAncyMvJCMjJyB8IHNvcnQgfHwgdHJ1ZSkiCjExNjogIGlmIHJjbG9uZSBjYXQgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRS8kRC8kQkFTRU5BTUUuc2hhMjU2IiAyPi9kZXYvbnVsbCB8IGdyZXAgLXEgIiRTSEEiOyB0aGVuCjE0NzogIGVjaG8gIlJFTU9URV9CWVRFUz1leGlzdGluZyIKMTQ4OiAgZWNobyAiUkVNT1RFX0NPVU5UPWV4aXN0aW5nIgoxNzE6Y2F0ID4gIiRXT1JLL01BTklGRVNULnR4dCIgPDxFT0YKMTcyOlAxIE1haWwgQ2xvdWQgZWRnZS12bSByZWN1cnJpbmcgY2h1bmtlZCB2emR1bXAgdXBsb2FkCjE3NDpWTUlEPSRWTUlECjE4MjpSRU1PVEU9JFRBUkdFVF9SRU1PVEUKMTgzOlJFTU9URV9ESVI9JFRBUkdFVF9ESVIKMTg4OnJjbG9uZSBta2RpciAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgPiAiJFdPUksvbG9ncy9ta2Rpci5vdXQiIDI+IiRXT1JLL2xvZ3MvbWtkaXIuZXJyIiB8fCBNS0RJUl9SQz0kPwoxOTA6cmNsb25lIGNvcHkgIiRQQVJUU19ESVIiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX1BBUlRTIiAtLXRyYW5zZmVycyAyIC0tY2hlY2tlcnMgNCAtLXJldHJpZXMgMyAtLWxvdy1sZXZlbC1yZXRyaWVzIDEwIC0tcHJvZ3Jlc3MgPiAiJFdPUksvbG9ncy91cGxvYWRfcGFydHMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9wYXJ0cy5lcnIiIHx8IFVQTE9BRF9QQVJUU19SQz0kPwoxOTI6cmNsb25lIGNvcHl0byAiJFdPUksvJEJBU0VOQU1FLnNoYTI1NiIgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfU0hBIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5vdXQiIDI+IiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5lcnIiIHx8IFVQTE9BRF9TSEFfUkM9JD8KMTkzOlVQTE9BRF9NQU5JRkVTVF9SQz0wCjE5NDpyY2xvbmUgY29weXRvICIkV09SSy9NQU5JRkVTVC50eHQiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX01BTklGRVNUIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX21hbmlmZXN0Lm91dCIgMj4iJFdPUksvbG9ncy91cGxvYWRfbWFuaWZlc3QuZXJyIiB8fCBVUExPQURfTUFOSUZFU1RfUkM9JD8KMTk2OnJjbG9uZSBjb3B5dG8gIiRXT1JLL1NIQTI1NlNVTVMudHh0IiAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9TVU1TIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3N1bXMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9zdW1zLmVyciIgfHwgVVBMT0FEX1NVTVNfUkM9JD8KMTk5OnJjbG9uZSBzaXplICIkVEFSR0VUX1JFTU9URTokVEFSR0VUX0RJUiIgLS1qc29uID4gIiRXT1JLL2xvZ3MvcmVtb3RlX3NpemUuanNvbiIgMj4iJFdPUksvbG9ncy9yZW1vdGVfc2l6ZS5lcnIiIHx8IFNJWkVfUkM9JD8KMjAxOnJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfUEFSVFMiIC0tZm9ybWF0ICJwcyIgPiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4iJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLmVyciIgfHwgTFNGX1BBUlRTX1JDPSQ/CjIwMjpSRU1PVEVfUEFSVF9DT1VOVD0iJChncmVwIC1jICJeJEJBU0VOQU1FLnBhcnQtIiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjIwMzpSRU1PVEVfQllURVM9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiYnl0ZXMiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNDpSRU1PVEVfQ09VTlQ9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiY291bnQiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNzpyY2xvbmUgY29weSAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgIiRETF9ESVIvcGFydHMiIC0tdHJhbnNmZXJzIDIgLS1jaGVja2VycyA0IC0tcmV0cmllcyAzIC0tbG93LWxldmVsLXJldHJpZXMgMTAgLS1wcm9ncmVzcyA+ICIkV09SSy9sb2dzL2Rvd25sb2FkX3BhcnRzLm91dCIgMj4iJFdPUksvbG9ncy9kb3dubG9hZF9wYXJ0cy5lcnIiIHx8IERPV05MT0FEX1BBUlRTX1JDPSQ/CjIzNDogIHJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRSIgLS1kaXJzLW9ubHkgMj4vZGV2L251bGwgfCBzZWQgInMjLyQjIyIgfCBzb3J0ID4gIiRESVJfTElTVCIgfHwgUkVURU5USU9OX1JDPSQ/CjIzOTogICAgICBbIC1uICIkT0xEIiBdICYmIHJjbG9uZSBwdXJnZSAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFLyRPTEQiID4+ICIkV09SSy9sb2dzL3JldGVudGlvbi5vdXQiIDI+PiIkV09SSy9sb2dzL3JldGVudGlvbi5lcnIiCjI0NTpmb3IgcmMgaW4gIiRTUExJVF9SQyIgIiRQQVJUX1NIQV9MSVNUX1JDIiAiJE1LRElSX1JDIiAiJFVQTE9BRF9QQVJUU19SQyIgIiRVUExPQURfU0hBX1JDIiAiJFVQTE9BRF9NQU5JRkVTVF9SQyIgIiRVUExPQURfU1VNU19SQyIgIiRTSVpFX1JDIiAiJExTRl9QQVJUU19SQyIgIiRET1dOTE9BRF9QQVJUU19SQyI7IGRvCjI0OTpbICIkUkVNT1RFX1BBUlRfQ09VTlQiID0gIiRQQVJUX0NPVU5UIiBdIHx8IFJVTl9TVEFUVVM9RVJST1IKMjY1OmVjaG8gIlVQTE9BRF9NQU5JRkVTVF9SQz0kVVBMT0FEX01BTklGRVNUX1JDIgoyNjk6ZWNobyAiUkVNT1RFX1BBUlRfQ09VTlQ9JFJFTU9URV9QQVJUX0NPVU5UIgoyNzA6ZWNobyAiUkVNT1RFX0NPVU5UPSRSRU1PVEVfQ09VTlQiCjI3MTplY2hvICJSRU1PVEVfQllURVM9JFJFTU9URV9CWVRFUyIKMjg4OlJFTU9URV9TQ1JJUFRfRU9GCjI5MDpjaG1vZCAwNzU1ICIkUkVNT1RFX1NDUklQVCIKMjkyOnNjcCAtcSAiJFJFTU9URV9FTlYiIHJvb3RAIiRQVkUwMiI6L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52ID4gL3RtcC9wMV9lZGdlX2F1dG9fc2NwX2Vudi5vdXQgMj4vdG1wL3AxX2VkZ2VfYXV0b19zY3BfZW52LmVycgoyOTQ6c2NwIC1xICIkUkVNT1RFX1NDUklQVCIgcm9vdEAiJFBWRTAyIjovdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5yZW1vdGUuc2ggPiAvdG1wL3AxX2VkZ2VfYXV0b19zY3Bfc2NyaXB0Lm91dCAyPi90bXAvcDFfZWRnZV9hdXRvX3NjcF9zY3JpcHQuZXJyCjI5ODogIGZhaWwgcmVtb3RlX3RyYW5zcG9ydF9wcmVwYXJlX2ZhaWxlZCAzCjMwMjogIHNzaCAtbyBCYXRjaE1vZGU9eWVzIC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1hY2NlcHQtbmV3IHJvb3RAIiRQVkUwMiIgImJhc2ggL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoIiB8IHNlZCAtRSAncy9bQS1aYS16MC05Ll8lKy1dK0BbQS1aYS16MC05Li1dKy88ZW1haWw+L2cnCjMwNjpzc2ggLW8gQmF0Y2hNb2RlPXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9YWNjZXB0LW5ldyByb290QCIkUFZFMDIiICJiYXNoIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLnJlbW90ZS5zaCIgPiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IDI+L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLmVycgozMDg6Y2F0IC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQKMzEwOlJFU1VMVD0kKHNlZCAtbiAncy9eUkVTVUxUPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IHRhaWwgLW4xKQozMTE6QUxSRUFEWT0kKHNlZCAtbiAncy9eQUxSRUFEWV9VUExPQURFRD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzEyOlBBUlRfQ09VTlQ9JChzZWQgLW4gJ3MvXlBBUlRfQ09VTlQ9Ly9wJyAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IHwgaGVhZCAtbjEpCjMxMzpTSEFfTUFUQ0g9JChzZWQgLW4gJ3MvXlNIQV9NQVRDSD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzE0OlJFTU9URV9CWVRFUz0kKHNlZCAtbiAncy9eUkVNT1RFX0JZVEVTPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IGhlYWQgLW4xKQozMTU6UkVNT1RFX1JFVEVOVElPTl9NT0RFPSQoc2VkIC1uICJzL15SRVRFTlRJT05fTU9ERT0vL3AiIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCB0YWlsIC1uMSkKMzE4OiAgZWNobyAiU1RBVFVTPU9LIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPXJlY3VycmluZy1jaHVua2VkIFJFUVVFU1RfTU9ERT0kTU9ERSBSRVRFTlRJT05fTU9ERT0ke1JFTU9URV9SRVRFTlRJT05fTU9ERTotdW5rbm93bn0gUkVNT1RFPSRUQVJHRVRfUkVNT1RFIERFU1Q9JFRBUkdFVF9ESVIgQVJDSElWRT0kQkFTRU5BTUUgU0laRT0kU0laRSBTSEEyNTY9JFNIQSBQQVJUX1NJWkU9JFBBUlRfU0laRSBQQVJUUz0kUEFSVF9DT1VOVCBBTFJFQURZX1VQTE9BREVEPSRBTFJFQURZIERPV05MT0FEX1ZFUklGWT0kU0hBX01BVENIIFJFVEVOVElPTl9LRUVQPSRLRUVQIFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPW5vbmUiID4gIiRIRUFMVEgiCjMyMjplY2hvICJTVEFUVVM9RVJST1IgVFM9JFRTIFRZUEU9bWFpbC1jbG91ZC1lZGdlLXZtIE1PREU9cmVjdXJyaW5nLWNodW5rZWQgUkVRVUVTVF9NT0RFPSRNT0RFIFJFVEVOVElPTl9NT0RFPSR7UkVNT1RFX1JFVEVOVElPTl9NT0RFOi11bmtub3dufSBSRU1PVEU9JFRBUkdFVF9SRU1PVEUgREVTVD0kVEFSR0VUX0RJUiBBUkNISVZFPSRCQVNFTkFNRSBTSVpFPSRTSVpFIFNIQTI1Nj0kU0hBIEFMUkVBRFlfVVBMT0FERUQ9JEFMUkVBRFkgU0VDUkVUX1BSSU5URUQ9bm8gTk9URVM9dXBsb2FkX2ZhaWxlZCIgPiAiJEhFQUxUSCI= +PIPE_36_SCORE=3 +PIPE_36_BASENAME=plan.json +PIPE_36_PATH_SHA256=e1cb88a4bdd95531e4b10c322d13461d809905dda9e1c80874691102110e0fe3 +PIPE_36_FILE_SHA256=6956807d81729b997b6f12419c0f4b2b1f9cc3608148a6d1c4143713c9724b07 +PIPE_36_SCHEDULE_TARGET_COUNT=0 +PIPE_36_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_36_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_36_VZDUMP_QEMU_COUNT=0 +PIPE_36_RCLONE_COUNT=1 +PIPE_36_CLOUD_QUORUM_COUNT=2 +PIPE_36_SEAL_WRITTEN_COUNT=0 +PIPE_36_PAYLOAD_PARTS_COUNT=0 +PIPE_36_TRANSPORT_COUNT=2 +PIPE_36_RESTORE_VALIDATION_COUNT=0 +PIPE_36_SCHEDULE_RESULT_COUNT=0 +PIPE_36_RELEVANT_LINE_COUNT=29 +PIPE_36_RELEVANT_B64=NDogICJ0aXRsZSI6ICJBZGQgY2Fub25pY2FsIGJhY2t1cCBjbG91ZC1xdW9ydW0gcGF5bG9hZCBmb3VuZGF0aW9uIiwKNzogICJzY29wZSI6ICJiYWNrdXAgdHJhbnNwb3J0IGFuZCBwZXJzaXN0ZW50IGV2aWRlbmNlIGZvdW5kYXRpb24gb25seTsgbm8gYmFja3VwIHNjaGVkdWxlIGN1dG92ZXIiLAo4OiAgInJvb3RfY2F1c2UiOiAiZnJhZ21lbnRlZCBsZWdhY3kgYmFja3VwIHRyYW5zcG9ydHMgdXNlIGluY29uc2lzdGVudCBjaHVuayBzaXplcywgY2xvdWQgb3JkZXJpbmcsIHZlcmlmaWNhdGlvbiBldmlkZW5jZSBhbmQgbG9jYWwgcmV0ZW50aW9uIiwKOTogICJpbnRlbmRlZF9zdGF0ZSI6IHsKMTE6ICAgICJhbGxfYmFja3VwX3BheWxvYWRzX2NodW5rZWQiOiB0cnVlLAoxMjogICAgImNsb3VkX2EiOiAicHZlMDEtbWFpbC0wMS1jcnlwdDpob21lbGFiLWJhY2t1cHMiLAoxMzogICAgImNsb3VkX2IiOiAicHZlMDEtbWFpbC0wMi1jcnlwdDpob21lbGFiLWJhY2t1cHMiLAoxNjogICAgICAiY2xvdWRfYV91cGxvYWQiLAoxNzogICAgICAiY2xvdWRfYV9mdWxsX3JlY29uc3RydWN0ZWRfc2hhMjU2IiwKMTg6ICAgICAgImNsb3VkX2JfdXBsb2FkIiwKMTk6ICAgICAgImNsb3VkX2JfZnVsbF9yZWNvbnN0cnVjdGVkX3NoYTI1NiIsCjIwOiAgICAgICJjbG91ZF9xdW9ydW1fMiIsCjIyOiAgICAgICJwZXJzaXN0ZW50X3NlYWxlZF9ldmlkZW5jZSIKMjQ6ICAgICJjbG91ZF9xdW9ydW1fcmVxdWlyZWQiOiAyLAoyNTogICAgImxvY2FsX2NvbXBsZXRlX3JldGVudGlvbl9hZnRlcl9zZWFsIjogMCwKMjY6ICAgICJpbW11dGFibGVfZ2VuZXJhdGlvbnMiOiB0cnVlLAoyNzogICAgInJlc3VtZV9pbmNvbXBsZXRlX2dlbmVyYXRpb24iOiB0cnVlLAozMTogICAgIm5vX3BhcmFsbGVsX2hlYXZ5X2JhY2t1cCI6IHRydWUsCjMyOiAgICAibm9fZXhpc3RpbmdfYmFja3VwX2V4ZWN1dGlvbiI6IHRydWUsCjM1OiAgICAibm9fZ2VuZXJhdGVkX2Rlc2lyZWRfc3RhdGVfZWRpdCI6IHRydWUsCjM2OiAgICAibm9fY2xvdWRfcmV0ZW50aW9uX211dGF0aW9uIjogdHJ1ZQozOTogICAgImd1ZXN0X3J1bnRpbWVfc3RhdGUiLAo0MTogICAgInZtOTEzMF9zdG9wcGVkX3N0YXRlIiwKNDM6ICAgICJyY2xvbmVfY29uZmlndXJhdGlvbiIsCjQ0OiAgICAiY2xvdWRfZXhpc3RpbmdfZ2VuZXJhdGlvbnMiLAo0NTogICAgImJhY2t1cF9tYXRyaXhfc2VtYW50aWNzIiwKNTE6ICAicGxhbm5lZF90YXNrX2lkIjogImJhY2t1cC1jbG91ZC1xdW9ydW0tZm91bmRhdGlvbi12MSIsCjUzOiAgImNsb3VkX2NoYW5nZWQiOiBmYWxzZSwKNTU6ICAiYmFja3VwX3N0YXJ0ZWQiOiBmYWxzZSw= +PIPE_37_SCORE=3 +PIPE_37_BASENAME=task.json +PIPE_37_PATH_SHA256=252e54674e80e87c1429781cce93e3a890d9219586f2cfc934bb48afbfe24fc1 +PIPE_37_FILE_SHA256=ba639c142591b39ee00c069d02f663b9d54ed722a9a5a82f09a8dd181cae9a20 +PIPE_37_SCHEDULE_TARGET_COUNT=0 +PIPE_37_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_37_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_37_VZDUMP_QEMU_COUNT=0 +PIPE_37_RCLONE_COUNT=4 +PIPE_37_CLOUD_QUORUM_COUNT=2 +PIPE_37_SEAL_WRITTEN_COUNT=0 +PIPE_37_PAYLOAD_PARTS_COUNT=0 +PIPE_37_TRANSPORT_COUNT=1 +PIPE_37_RESTORE_VALIDATION_COUNT=0 +PIPE_37_SCHEDULE_RESULT_COUNT=0 +PIPE_37_RELEVANT_LINE_COUNT=38 +PIPE_37_RELEVANT_B64=MzogICJ0YXNrX2lkIjogImJhY2t1cC1jbG91ZC1xdW9ydW0tZm91bmRhdGlvbi12MSIsCjQ6ICAidGFyZ2V0X2hvc3QiOiAicHZlMDEuZ3JhbTEucnUiLAo5OiAgICAiZGVzaXJlZF9zdGF0ZV9jbGVhbiI6IHRydWUsCjExOiAgICAiYWN0aXZlX2JhY2t1cF9yZXN0b3JlX21heCI6IDAKMTQ6ICAgICIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1yY2xvbmUtY29weS1jaHVua2VkIiwKMTU6ICAgICIvdXNyL2xvY2FsL3NiaW4vaG9tZWxhYi1yY2xvbmUtY29weS1mbGF0LWNodW5rZWQiLAoxNjogICAgIi9zcnYvaG9tZWxhYi1vcHMvdGFza3MvY2x1c3Rlci1jbG91ZC1xdW9ydW0tdm0xNjAtY2FuYXJ5LXYxL2Fzc2V0cy92bTE2MC1jbG91ZC1xdW9ydW0td29ya2VyLnNoIgoyMjogICAgIiRIT01FTEFCX1JVTl9ESVIvc2VhbC5qc29uIiwKMzA6ICAgICAgInZlcmlmaWNhdGlvbiI6ICJyZWNvcmRzIGlzb2xhdGVkIGZvdW5kYXRpb24gcHJlcmVxdWlzaXRlcyBhbmQgZXhhY3QgdHJhbnNwb3J0IHBvbGljeSIKMzU6ICAgICAgInZlcmlmaWNhdGlvbiI6ICJleGVjdXRlcyBhIHN5bnRoZXRpYyBmYWtlLWNsb3VkIGZpeHR1cmUgd2l0aCBNaUItYWxpZ25lZCB0ZXN0IGNodW5rcyB3aGlsZSBhc3NlcnRpbmcgcHJvZHVjdGlvbiBjaHVuayBzaXplIGlzIGV4YWN0bHkgNTEyIE1pQiIKNDM6ICAgICAgInBhdGgiOiAiJEhPTUVMQUJfUlVOX0RJUi9zZWFsLmpzb24iLAo0NDogICAgICAicHJvZHVjZXIiOiAicGhhc2VzL3NlYWwuc2giLAo0NTogICAgICAidmVyaWZpY2F0aW9uIjogInJlY29yZHMgcmVwb3NpdG9yeS1vbmx5IGZvdW5kYXRpb24gdmFsaWRhdGlvbiBzZWFsIHdpdGggcHJvZHVjdGlvbl9jaGFuZ2VkPWZhbHNlIgo1MTogICAgICAicnVudGltZSI6ICJiYXNoLGpxLHJjbG9uZSxzaGEyNTZzdW0sZGQsc3RhdCxmaW5kLHNvcnQsbWt0ZW1wLHJlYWxwYXRoLGNtcCxmbG9jayxhd2ssZ3JlcCxjYXQsY3AsZGlybmFtZSx3YyxjaG1vZCxta2RpcixtdixybSxiYXNlbmFtZSxyZWFkbGluayxoZWFkLHRhaWwsY3V0LGRhdGUsZW52IiwKNTc6ICAgICJ2ZXJpZmljYXRpb24iOiAibm8gcHJvZHVjdGlvbiwgc3lzdGVtZCwgZGVzaXJlZC1zdGF0ZSwgZ3Vlc3Qgb3IgY2xvdWQgc3RhdGUgd2FzIG11dGF0ZWQiCjYzOiAgICAiZGVzaXJlZF9zdGF0ZSIsCjY0OiAgICAicmNsb25lX2NvbmZpZ3VyYXRpb24iLAo2NTogICAgImNsb3VkX29iamVjdHMiLAo2NjogICAgImd1ZXN0X3J1bnRpbWVfc3RhdGUiLAo2ODogICAgInZtOTEzMF9zdG9wcGVkX3N0YXRlIiwKNjk6ICAgICJiYWNrdXBfbWF0cml4X3NlbWFudGljcyIsCjc3OiAgICAicG9saWN5IjogImFsbCBiYWNrdXAgcGF5bG9hZHMgYXJlIGNodW5rZWQgcmVnYXJkbGVzcyBvZiBzaXplIiwKNzk6ICAgICJjbG91ZF9hIjogInB2ZTAxLW1haWwtMDEtY3J5cHQ6aG9tZWxhYi1iYWNrdXBzIiwKODA6ICAgICJjbG91ZF9iIjogInB2ZTAxLW1haWwtMDItY3J5cHQ6aG9tZWxhYi1iYWNrdXBzIiwKODE6ICAgICJjbG91ZF9xdW9ydW1fcmVxdWlyZWQiOiAyLAo4NDogICAgICAiY2xvdWRfYV9jb21wbGV0ZV91cGxvYWQiLAo4NTogICAgICAiY2xvdWRfYV9mdWxsX3JlY29uc3RydWN0ZWRfdmVyaWZ5IiwKODY6ICAgICAgImNsb3VkX2JfY29tcGxldGVfdXBsb2FkIiwKODc6ICAgICAgImNsb3VkX2JfZnVsbF9yZWNvbnN0cnVjdGVkX3ZlcmlmeSIsCjg4OiAgICAgICJjbG91ZF9xdW9ydW1fMiIsCjkwOiAgICAgICJzZWFsZWRfZXZpZGVuY2UiCjkzOiAgICAiaW1tdXRhYmxlX2dlbmVyYXRpb25fcmVxdWlyZWQiOiB0cnVlLAo5NDogICAgInJlc3VtZV9pbmNvbXBsZXRlX2dlbmVyYXRpb25fcmVxdWlyZWQiOiB0cnVlLAo5NTogICAgImxvY2FsX2NvbXBsZXRlX3JldGVudGlvbl9hZnRlcl9zZWFsIjogMCwKOTc6ICAgICJ2bTE2MF9yZWZlcmVuY2Vfd29ya2VyX3NoYTI1NiI6ICI1N2QxYjFmYTc4OGJlODI0Yjk3MDc1ZjcyMjE0MGMyNDk4OGMxZmE5MTJhYTU5ZDA0NjQwMjdlYjQ4YzA2MjcxIgoxMDA6ICAicmVtb3RlX3NjcmlwdHMiOiBbCjEwMTogICAgImFzc2V0cy9ob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkIgoxMDc6ICAgICJzZWFsIjogInBoYXNlcy9zZWFsLnNoIg== +PIPE_38_SCORE=3 +PIPE_38_BASENAME=verify.sh +PIPE_38_PATH_SHA256=c154e206d66d725f4c2e6ed46784b38cd37ca1065ffa90bcd1a9b381bb3a02f3 +PIPE_38_FILE_SHA256=ac05964b3314d4e70f4581a9aff3d45141093820c8f8de81b748be9b325992ea +PIPE_38_SCHEDULE_TARGET_COUNT=0 +PIPE_38_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_38_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_38_VZDUMP_QEMU_COUNT=1 +PIPE_38_RCLONE_COUNT=4 +PIPE_38_CLOUD_QUORUM_COUNT=1 +PIPE_38_SEAL_WRITTEN_COUNT=0 +PIPE_38_PAYLOAD_PARTS_COUNT=0 +PIPE_38_TRANSPORT_COUNT=0 +PIPE_38_RESTORE_VALIDATION_COUNT=0 +PIPE_38_SCHEDULE_RESULT_COUNT=0 +PIPE_38_RELEVANT_LINE_COUNT=12 +PIPE_38_RELEVANT_B64=NjpUQVJHRVQ9L21udC9zdGFnaW5nL2hvbWVsYWItYWRtaW4tcm9sbGJhY2svc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxCjc6QVJDSElWRV9OQU1FPXZ6ZHVtcC1xZW11LTE1MC0yMDI2XzA4XzE0LTE1XzE3XzM2LnZtYS56c3QKMTI6Q1VSUkVOVF9TVEFURT0iL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtL3ZtMTUwLyRDVVJSRU5UX0dFTi5qc29uIgoxMzpDVVJSRU5UX1ZBTD0iL3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvdm0tcmVzdG9yZS12YWxpZGF0aW9uL3ZtMTUwLyRDVVJSRU5UX0dFTi5qc29uIgoxNjp0ZXN0ICEgLWUgIiRUQVJHRVQiCjE3OnRlc3QgLWYgL3Zhci9saWIvaG9tZWxhYi1hZG1pbi9zZWFscy9zbmlra2V0LXZtMTUwLXJlYnVpbGQtdjEuanNvbgoyMTpqcSAtZSAnLnN0YXR1cz09IlNFQUxFRCIgYW5kIC5jbG91ZF9xdW9ydW09PTIgYW5kIC5jbG91ZF9hX3ZlcmlmaWVkPT10cnVlIGFuZCAuY2xvdWRfYl92ZXJpZmllZD09dHJ1ZSBhbmQgLnBhcnRfaGFzaGVzX3ZlcmlmaWVkPT10cnVlIGFuZCAubG9jYWxfY2xlYW51cD09Ik9LIicgIiRDVVJSRU5UX1NUQVRFIiA+L2Rldi9udWxsCjIzOmZvciByZW1vdGUgaW4gIiRBUkNISVZFX0EiICIkQVJDSElWRV9CIjsgZG8gcmNsb25lIGNhdCAiJHJlbW90ZS9hcmNoaXZlLXNlYWwuanNvbiIgfCBqcSAtZSAtLWFyZyBoICIkQVJDSElWRV9TSEEiICcuc3RhdHVzPT0iU0VBTEVEIiBhbmQgLmFyY2hpdmVfc2hhMjU2PT0kaCBhbmQgLnJldGVudGlvbl9zY29wZT09Ik9VVFNJREVfQ0FOT05JQ0FMX0dGUyInID4vZGV2L251bGw7IHRlc3QgIiQocmNsb25lIGNhdCAiJHJlbW90ZS9hcmNoaXZlLnNoYTI1NiIgfCBhd2sgJ3twcmludCAkMX0nKSIgPSAiJEFSQ0hJVkVfU0hBIjsgZG9uZQoyNDpBX1NIQT0iJChob21lbGFiLXJjbG9uZS1jYXQtY2h1bmtlZCAiJEFSQ0hJVkVfQS8kQVJDSElWRV9OQU1FIiB8IHNoYTI1NnN1bSB8IGF3ayAne3ByaW50ICQxfScpIjsgdGVzdCAiJEFfU0hBIiA9ICIkQVJDSElWRV9TSEEiCjI1OkJfU0hBPSIkKGhvbWVsYWItcmNsb25lLWNhdC1jaHVua2VkICIkQVJDSElWRV9CLyRBUkNISVZFX05BTUUiIHwgc2hhMjU2c3VtIHwgYXdrICd7cHJpbnQgJDF9JykiOyB0ZXN0ICIkQl9TSEEiID0gIiRBUkNISVZFX1NIQSIKMjY6anEgLW4gLS1hcmcgdGFza19pZCAiJFRBU0tfSUQiIC0tYXJnIHN0YXR1cyBPSyAtLWFyZyBjdXJyZW50X2dlbmVyYXRpb24gIiRDVVJSRU5UX0dFTiIgLS1hcmcgYXJjaGl2ZV9hICIkQVJDSElWRV9BIiAtLWFyZyBhcmNoaXZlX2IgIiRBUkNISVZFX0IiIC0tYXJnIGFyY2hpdmVfc2hhMjU2ICIkQVJDSElWRV9TSEEiICd7c3RhdHVzOiRzdGF0dXMsdGFza19pZDokdGFza19pZCxsb2NhbF9yb2xsYmFja19hYnNlbnQ6dHJ1ZSx2bTE1MF9ydW5uaW5nX3NuaWtrZXQ6dHJ1ZSxjdXJyZW50X3Jlc3RvcmVfcHJvb2Zfb2s6dHJ1ZSxhcmNoaXZhbF9hOiRhcmNoaXZlX2EsYXJjaGl2YWxfYjokYXJjaGl2ZV9iLGFyY2hpdmVfc2hhMjU2OiRhcmNoaXZlX3NoYTI1NixhcmNoaXZhbF9hX3N0cmVhbV92ZXJpZmllZDp0cnVlLGFyY2hpdmFsX2Jfc3RyZWFtX3ZlcmlmaWVkOnRydWUsYXVkaXRfaGlzdG9yeV9yZXRhaW5lZDp0cnVlLHByb2R1Y3Rpb25fdmVyaWZpZWQ6dHJ1ZX0nID4gIiRIT01FTEFCX1JVTl9ESVIvdmVyaWZ5Lmpzb24iCjI3OnByaW50ZiAnVkVSSUZZX1NUQVRVUz1PS1xuTE9DQUxfUk9MTEJBQ0tfQUJTRU5UPVlFU1xuVk0xNTA9UlVOTklOR19TTklLS0VUXG5DVVJSRU5UX1JFU1RPUkVfUFJPT0Y9T0tcbkFSQ0hJVkFMX0FfU1RSRUFNX1NIQT1PS1xuQVJDSElWQUxfQl9TVFJFQU1fU0hBPU9LXG5BVURJVF9ISVNUT1JZPVJFVEFJTkVEXG4n +PIPE_39_SCORE=3 +PIPE_39_BASENAME=test_cr_2026_0099_retire_vm150_local_rollback.py +PIPE_39_PATH_SHA256=a8624c08dd88c53179d76cdc11666ba0bece36469495080f4cf88f7b237e423c +PIPE_39_FILE_SHA256=dade29e01af2d859e25b5eafc6ffa3974eaefb348545c70168533db2e0053d08 +PIPE_39_SCHEDULE_TARGET_COUNT=0 +PIPE_39_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_39_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_39_VZDUMP_QEMU_COUNT=1 +PIPE_39_RCLONE_COUNT=2 +PIPE_39_CLOUD_QUORUM_COUNT=1 +PIPE_39_SEAL_WRITTEN_COUNT=0 +PIPE_39_PAYLOAD_PARTS_COUNT=0 +PIPE_39_TRANSPORT_COUNT=0 +PIPE_39_RESTORE_VALIDATION_COUNT=0 +PIPE_39_SCHEDULE_RESULT_COUNT=0 +PIPE_39_RELEVANT_LINE_COUNT=24 +PIPE_39_RELEVANT_B64=MTA6VEFSR0VUID0gIi9tbnQvc3RhZ2luZy9ob21lbGFiLWFkbWluLXJvbGxiYWNrL3NuaWtrZXQtdm0xNTAtcmVidWlsZC12MSIKMTE6QVJDSElWRSA9ICJ2emR1bXAtcWVtdS0xNTAtMjAyNl8wOF8xNC0xNV8xN18zNi52bWEuenN0IgoyNjogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50YXNrWyJtdXRhdGVzIl0sIFtUQVJHRVRdKQoyODogICAgICAgIGZvciB0b2tlbiBpbiAoIlZNMTUwIiwgIlNuaWtrZXQiLCAiY2xvdWQiLCAic2VhbHMiLCAicnVucyIpOgozMjogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHNlbGYudGFza1sicGhhc2VzIl0pLCB7InByZWZsaWdodCIsInByZXBhcmUiLCJkcnktcnVuIiwiYXBwbHkiLCJ2ZXJpZnkiLCJyb2xsYmFjayIsInNlYWwifSkKNDQ6ICAgICAgICBmb3IgdG9rZW4gaW4gKFRBUkdFVCwgQVJDSElWRSwgIjcwMjcyMDk0MzIiLCAiOTZiNGJmMDEwNDBkYTQxMmJmM2I3ODUwNzcyY2Q3MGRmNjA1ZTk3MDQxOTI4MWYxMjdjY2RkNDEyOTgzMWVjYSIsIE9MRF9HRU4sIENVUlJFTlRfR0VOKToKNDY6ICAgICAgICBmb3IgdG9rZW4gaW4gKCJjbG91ZF9xdW9ydW0iLCAiY2xvdWRfYV92ZXJpZmllZCIsICJjbG91ZF9iX3ZlcmlmaWVkIiwgInBhcnRfaGFzaGVzX3ZlcmlmaWVkIiwgImFyY2hpdmVfcmVjb3ZlcnlfcmVhZGJhY2tfdmVyaWZpZWQiLCAicmVtb3RlX2FfYmFzZSIsICJyZW1vdGVfYl9iYXNlIik6CjU2OiAgICAgICAgc2VsZi5hc3NlcnRJbigncmVtb3RlLWEtc2VhbC5qc29uJywgc3JjKQo1NzogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3JlbW90ZS1iLXNlYWwuanNvbicsIHNyYykKNTg6ICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdjcCAtYSAiJFRBUkdFVCInLCBzcmMpCjYwOiAgICBkZWYgdGVzdF9hcHBseV9kZWxldGVzX29ubHlfZXhhY3RfdGFyZ2V0X2FuZF9yZXF1aXJlc19jb25maXJtYXRpb24oc2VsZik6CjYzOiAgICAgICAgc2VsZi5hc3NlcnRJbigncm0gLXJmIC0tb25lLWZpbGUtc3lzdGVtIC0tICIkVEFSR0VUIicsIHNyYykKNjY6ICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdyY2xvbmUgZGVsZXRlJywgc3JjKQo2NzogICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3JjbG9uZSBwdXJnZScsIHNyYykKNjk6ICAgIGRlZiB0ZXN0X3JvbGxiYWNrX3JlaHlkcmF0ZXNfZXhhY3Rfb2xkX2FyY2hpdmVfZnJvbV9jbG91ZF9hKHNlbGYpOgo3MTogICAgICAgIGZvciB0b2tlbiBpbiAoT0xEX0dFTiwgImhvbWVsYWItcmVoeWRyYXRlLWNodW5rZWQtZGlyIiwgImhvbWVsYWItcmVoeWRyYXRlLWZsYXQtY2h1bmtlZC1kaXIiLCAicmVtb3RlX2FfYmFzZSIsICI5NmI0YmYwMTA0MGRhNDEyYmYzYjc4NTA3NzJjZDcwZGY2MDVlOTcwNDE5MjgxZjEyN2NjZGQ0MTI5ODMxZWNhIik6CjczOiAgICAgICAgc2VsZi5hc3NlcnRJbignY3AgLWEgIiRQUkVJTUFHRS8uIiAiJFRBUkdFVC8iJywgc3JjKQo3NDogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ212ICIkUkVDT1ZFUkVEX0FSQ0hJVkUiICIkVEFSR0VULyRBUkNISVZFX05BTUUiJywgc3JjKQo3NjogICAgZGVmIHRlc3RfdmVyaWZ5X2FuZF9zZWFsX2tlZXBfc25pa2tldF9hbmRfYXVkaXRfaGlzdG9yeShzZWxmKToKNzg6ICAgICAgICBzZWxmLmFzc2VydEluKCd0ZXN0ICEgLWUgIiRUQVJHRVQiJywgdmVyaWZ5KQo3OTogICAgICAgIHNlbGYuYXNzZXJ0SW4oJy92YXIvbGliL2hvbWVsYWItYWRtaW4vc2VhbHMvc25pa2tldC12bTE1MC1yZWJ1aWxkLXYxLmpzb24nLCB2ZXJpZnkpCjgyOiAgICAgICAgc2VhbCA9IChUQVNLIC8gInBoYXNlcy9zZWFsLnNoIikucmVhZF90ZXh0KCkKODM6ICAgICAgICBzZWxmLmFzc2VydEluKCdzdGF0dXM6IlNFQUxFRCInLCBzZWFsKQo4NDogICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2xvY2FsX3JvbGxiYWNrX3JldGlyZWQ6dHJ1ZScsIHNlYWwp +PIPE_40_SCORE=3 +PIPE_40_BASENAME=homelab-backup-retention-gc +PIPE_40_PATH_SHA256=68bcf5e97e4eda63f88bfee3ece5bc50ccdcbb2a089f97923534e67daf29ee4a +PIPE_40_FILE_SHA256=a96e607107e7b4e7762f7cb7f0e91f8c3ec6b793ed4604633c125433839ac909 +PIPE_40_SCHEDULE_TARGET_COUNT=0 +PIPE_40_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_40_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_40_VZDUMP_QEMU_COUNT=0 +PIPE_40_RCLONE_COUNT=31 +PIPE_40_CLOUD_QUORUM_COUNT=1 +PIPE_40_SEAL_WRITTEN_COUNT=1 +PIPE_40_PAYLOAD_PARTS_COUNT=0 +PIPE_40_TRANSPORT_COUNT=0 +PIPE_40_RESTORE_VALIDATION_COUNT=0 +PIPE_40_SCHEDULE_RESULT_COUNT=0 +PIPE_40_RELEVANT_LINE_COUNT=188 +PIPE_40_RELEVANT_B64=NTpUQVNLX0lEPWJhY2t1cC1yZXRlbnRpb24tc2FmZS1nYy12MQo3OlNUQVRFX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvY2xvdWQtcXVvcnVtCjg6UkVURU5USU9OX1JPT1Q9L3Zhci9saWIvaG9tZWxhYi1iYWNrdXAvcmV0ZW50aW9uLXNhZmUtZ2MKOTpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvYmFja3VwLXJldGVudGlvbi1zYWZlLWdjLmpzb24KMTA6TE9DSz0vcnVuL2xvY2svaG9tZWxhYi1iYWNrdXAtcmV0ZW50aW9uLWdjLmxvY2sKMTE6RElTUEFUQ0hFUl9MT0NLPS9ydW4vbG9jay9ob21lbGFiLWJhY2t1cC1kaXNwYXRjaGVyLmxvY2sKMTI6Vk1fTE9DSz0vcnVuL2xvY2svaG9tZWxhYi12bS1jbG91ZC1xdW9ydW0tcXVldWUubG9jawoxMzpBUFBfTE9DSz0vcnVuL2xvY2svaG9tZWxhYi1hcHAtY2xvdWQtcXVvcnVtLXF1ZXVlLmxvY2sKMTQ6SEVBVllfTE9DSz0vcnVuL2hvbWVsYWItYmFja3VwLWhlYXZ5LmxvY2sKMTU6UkVNT1RFX0E9cHZlMDEtbWFpbC0wMS1jcnlwdAoxNjpSRU1PVEVfQj1wdmUwMS1tYWlsLTAyLWNyeXB0CjE3OlJFTU9URV9ST09UPWhvbWVsYWItYmFja3VwcwoxODpSQ0xPTkVfQ09ORklHX1NPVVJDRT0iJHtSQ0xPTkVfQ09ORklHOi0vcm9vdC8uY29uZmlnL3JjbG9uZS9yY2xvbmUuY29uZn0iCjE5OlZNX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLXZtLWNsb3VkLXF1b3J1bS1mcmVzaG5lc3MtcHJvYmUKMjA6QVBQX1BST0JFPS91c3IvbG9jYWwvbGliZXhlYy9ob21lbGFiLWFwcC1jbG91ZC1xdW9ydW0tZnJlc2huZXNzLXByb2JlCjIxOlJFR0lTVFJZX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9UQVJHRVRfUkVHSVNUUllfSEVMUEVSOi0vdXNyL2xvY2FsL2xpYmV4ZWMvaG9tZWxhYi1iYWNrdXAtdGFyZ2V0LXJlZ2lzdHJ5fSIKMjM6R0ZTX0hFTFBFUj0iJHtIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZX0hFTFBFUjotL3Vzci9sb2NhbC9saWJleGVjL2hvbWVsYWItYmFja3VwLWdmcy1wb2xpY3l9IgoyNTpHRlNfUE9MSUNZPSIke0hPTUVMQUJfQkFDS1VQX0dGU19QT0xJQ1k6LS9ldGMvaG9tZWxhYi1iYWNrdXAvZ2ZzLXJldGVudGlvbi5qc29ufSIKMjY6Q09OVFJPTF9FVklERU5DRV9ST09UPS92YXIvbGliL2hvbWVsYWItYmFja3VwL2NvbnRyb2wtcmVzdG9yZS12YWxpZGF0aW9uL2NvbnRyb2wtYm9vdHN0cmFwCjI3OltbIC14ICIkUkVHSVNUUllfSEVMUEVSIiAmJiAhIC1MICIkUkVHSVNUUllfSEVMUEVSIiBdXSB8fCB7IHByaW50ZiAnR0NfU1RBVFVTPUVSUk9SfFJPT1RfQ0FVU0U9VEFSR0VUX1JFR0lTVFJZX0hFTFBFUl9NSVNTSU5HXG4nID4mMjsgZXhpdCA2OTsgfQoyODpbWyAiJChzaGEyNTZzdW0gIiRSRUdJU1RSWV9IRUxQRVIifGF3ayAne3ByaW50ICQxfScpIiA9PSAiJFJFR0lTVFJZX0hFTFBFUl9TSEFfRVhQRUNURUQiIF1dIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1UQVJHRVRfUkVHSVNUUllfSEVMUEVSX1NIQV9EUklGVFxuJyA+JjI7IGV4aXQgNjU7IH0KMjk6IiRSRUdJU1RSWV9IRUxQRVIiIHZhbGlkYXRlID4vZGV2L251bGwgfHwgeyBwcmludGYgJ0dDX1NUQVRVUz1FUlJPUnxST09UX0NBVVNFPVRBUkdFVF9SRUdJU1RSWV9JTlZBTElEXG4nID4mMjsgZXhpdCA2NjsgfQozMjpIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiB2YWxpZGF0ZSA+L2Rldi9udWxsIHx8IHsgcHJpbnRmICdHQ19TVEFUVVM9RVJST1J8Uk9PVF9DQVVTRT1HRlNfUE9MSUNZX0lOVkFMSURcbicgPiYyOyBleGl0IDY2OyB9CjMzOkdGU19XRUVLTFk9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgd2Vla2x5LWJ1Y2tldHMpIgozNDpHRlNfTU9OVEhMWT0iJChIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBtb250aGx5LWJ1Y2tldHMpIgozNTpHRlNfQ1JJVElDQUxfQ09VTlQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgY3JpdGljYWwtbG9naWNhbHMgfCB3YyAtbCkiCjUzOnNhZmVfZ2VuZXJhdGlvbigpewo1NDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIKNTU6ICBbWyAiJGdlbmVyYXRpb24iID1+IF4ke2xvZ2ljYWx9LXB2ZTBbMTIzXS1bMC05XXs4fVRbMC05XXs2fVokIF1dCjYwOiAgW1sgLWYgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgJiYgISAtTCAiJFJDTE9ORV9DT05GSUdfU09VUkNFIiBdXSB8fCBkaWUgUkNMT05FX0NPTkZJR19VTlNBRkUKNjE6ICBpbnN0YWxsIC1tIDA2MDAgIiRSQ0xPTkVfQ09ORklHX1NPVVJDRSIgIiRUTVBST09UL3JjbG9uZS5jb25mIgo2MzpzdGF0ZV9maWxlcygpewo2NTogIGRpcj0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwiCjY2OiAgbm9kZV9leGVjICIkbm9kZSIgZmluZCAiJGRpciIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnQgMj4iJFRNUFJPT1Qvc3RhdGUtZmluZC5lcnIiIHx8IHsKNjk6ICAgIGRpZSAiU1RBVEVfRU5VTV9GQUlMRURfJHtsb2dpY2FsfV8ke25vZGV9IiA2OQo3MjpzdHJpY3Rfc3RhdGUoKXsKNzM6ICBsb2NhbCBqc29uPSIkMSIgbG9naWNhbD0iJDIiIGdlbmVyYXRpb249IiQzIgo3NDogIGpxIC1lIC0tYXJnIGwgIiRsb2dpY2FsIiAtLWFyZyBnICIkZ2VuZXJhdGlvbiIgJy5zY2hlbWE9PSJob21lbGFiLWNsb3VkLXF1b3J1bS1wYXlsb2FkLXYxIiBhbmQgLmxvZ2ljYWxfaWQ9PSRsIGFuZCAuZ2VuZXJhdGlvbj09JGcgYW5kIC5zdGF0dXM9PSJTRUFMRUQiIGFuZCAuY2xvdWRfcXVvcnVtPT0yIGFuZCAuY2xvdWRfYV92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2JfdmVyaWZpZWQ9PXRydWUgYW5kIC5wYXJ0X2hhc2hlc192ZXJpZmllZD09dHJ1ZSBhbmQgLnNlYWxfd3JpdHRlbj09dHJ1ZSBhbmQgLmNsb3VkX2Ffc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmNsb3VkX2Jfc2VhbF92ZXJpZmllZD09dHJ1ZSBhbmQgLmxvY2FsX2RlbGV0ZV9hbGxvd2VkPT10cnVlIGFuZCAubG9jYWxfcGF5bG9hZF9wcmVzZW50PT1mYWxzZSBhbmQgLmxvY2FsX2NsZWFudXA9PSJPSyInIDw8PCIkanNvbiIgPi9kZXYvbnVsbAo3NjpsYXRlc3RfcmVzdG9yZV9wcm92ZW4oKXsKNzc6ICBsb2NhbCBsb2dpY2FsPSIkMSIgbm9kZSBvdXQgZGVjaXNpb24gZ2VuZXJhdGlvbiBsYXRlc3QKODM6ICAgICAgW1sgIiRkZWNpc2lvbiIgPT0gU0VBTEVEX1BST1ZFTiBdXSB8fCByZXR1cm4gMQo4ODogICAgICBbWyAiJGRlY2lzaW9uIiA9PSBTRUFMRURfUFJPVkVOIF1dIHx8IHJldHVybiAxCjkxOiAgICAgIGxhdGVzdD0iJChmaW5kICIkU1RBVEVfUk9PVC9jb250cm9sLWJvb3RzdHJhcC12MiIgLW1heGRlcHRoIDEgLXR5cGUgZiAtbmFtZSAnKi5qc29uJyAtcHJpbnRmICclZlxuJyB8IExDX0FMTD1DIHNvcnQgfCB0YWlsIC1uIDEpIgo5MjogICAgICBbWyAtbiAiJGxhdGVzdCIgXV0gfHwgcmV0dXJuIDEKOTM6ICAgICAgZ2VuZXJhdGlvbj0iJHtsYXRlc3QlLmpzb259Igo5NDogICAgICBbWyAtcyAiJENPTlRST0xfRVZJREVOQ0VfUk9PVC8kZ2VuZXJhdGlvbi5qc29uIiAmJiAhIC1MICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IHJldHVybiAxCjk1OiAgICAgIGpxIC1lIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAnLnJlc3VsdD09Ik9LIiBhbmQgLmxvZ2ljYWxfaWQ9PSJjb250cm9sLWJvb3RzdHJhcC12MiIgYW5kIC5nZW5lcmF0aW9uPT0kZyBhbmQgLnBheWxvYWRfc2hhMjU2X3ZlcmlmaWVkPT10cnVlIGFuZCAuY29udHJvbF9tYW5pZmVzdF92ZXJpZmllZD09dHJ1ZSBhbmQgLnBheWxvYWRfY2hlY2tzdW1zX3ZlcmlmaWVkPT10cnVlIGFuZCAub3BzX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUgYW5kIC5kZXNpcmVkX2dpdF9idW5kbGVfdmVyaWZpZWQ9PXRydWUnICIkQ09OVFJPTF9FVklERU5DRV9ST09ULyRnZW5lcmF0aW9uLmpzb24iID4vZGV2L251bGwKMTAwOnJlbW90ZV9zZXQoKXsKMTAxOiAgbG9jYWwgcmVtb3RlPSIkMSIKMTAyOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiB8IGF3ayAtRi8gJ05GPT0zICYmICQxIT0iIiAmJiAkMiE9IiJ7cHJpbnQgJDEiLyIkMn0nIHwgTENfQUxMPUMgc29ydCAtdQoxMDU6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuZXJhdGlvbj0iJDIiIGYKMTA2OiAgZj0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxMDc6ICBbWyAtcyAiJGYiICYmICEgLUwgIiRmIiBdXSAmJiBqcSAtZSAnLnN0YXR1cz09IkRPTkUiIGFuZCAucmVtb3RlX2FfYWJzZW50PT10cnVlIGFuZCAucmVtb3RlX2JfYWJzZW50PT10cnVlJyAiJGYiID4vZGV2L251bGwKMTEwOiAgbG9jYWwgbG9naWNhbD0iJDEiIGdlbmVyYXRpb249IiQyIiBmCjExMTogIGY9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMTM0OiAgbG9jYWwgZj0iJHtIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEU6LX0iIGV4cGVjdGVkPSIke0hPTUVMQUJfUkVURU5USU9OX1BJTk5FRF9ERUxFVEVfU0hBMjU2Oi19IiBhY3R1YWwgbGluZSBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgY291bnQ9MAoxNDM6ICAgIGdlbmVyYXRpb249IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15nZW5lcmF0aW9uPS8pe3N1YigvXmdlbmVyYXRpb249LywiIiwkaSk7cHJpbnQgJGl9fScgPDw8IiRsaW5lIikiCjE0NTogICAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTQ2OiAgICBzdGF0ZV9zaGE9IiQoYXdrIC1GJ3wnICd7Zm9yKGk9MTtpPD1ORjtpKyspaWYoJGl+L15zdGF0ZV9zaGEyNTY9Lyl7c3ViKC9ec3RhdGVfc2hhMjU2PS8sIiIsJGkpO3ByaW50ICRpfX0nIDw8PCIkbGluZSIpIgoxNDc6ICAgIFtbICIkbGluZSIgPT0gIkRFTEVURXxsb2dpY2FsPSRsb2dpY2FsfGdlbmVyYXRpb249JGdlbmVyYXRpb258b3duZXI9JG93bmVyfHN0YXRlX2ZpbGU9JHN0YXRlX2ZpbGV8c3RhdGVfc2hhMjU2PSRzdGF0ZV9zaGEiIF1dIHx8IGRpZSBQSU5ORURfREVMRVRFX0xJTkVfRk9STUFUX0lOVkFMSUQgNjYKMTQ5OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiUElOTkVEX0RFTEVURV9HRU5FUkFUSU9OX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTUwOiAgICBbWyAiJHN0YXRlX2ZpbGUiID09ICIkU1RBVEVfUk9PVC8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIiBdXSB8fCBkaWUgIlBJTk5FRF9ERUxFVEVfU1RBVEVfUEFUSF9JTlZBTElEXyR7bG9naWNhbH0iIDY2CjE1MTogICAgW1sgIiRzdGF0ZV9zaGEiID1+IF5bMC05YS1mXXs2NH0kIF1dIHx8IGRpZSAiUElOTkVEX0RFTEVURV9TVEFURV9TSEFfSU5WQUxJRF8ke2xvZ2ljYWx9IiA2NgoxNTg6ICBsb2NhbCBmPSIkMSIgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgZXhwZWN0ZWRfcGF0aAoxNjA6ICBqcSAtZSAtLWFyZyB0YXNrICIkVEFTS19JRCIgLS1hcmcgY2hhbmdlICIkQ0hBTkdFX0lEIiAnLnNjaGVtYT09ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIgYW5kIC50YXNrX2lkPT0kdGFzayBhbmQgLmNoYW5nZV9pZD09JGNoYW5nZSBhbmQgKC5sb2dpY2FsX2lkfHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5nZW5lcmF0aW9ufHR5cGUpPT0ic3RyaW5nIiBhbmQgKC5zdGF0ZV9zaGEyNTZ8dHlwZSk9PSJzdHJpbmciIGFuZCAoLnN0YXR1cz09IlBMQU5ORUQiIG9yIC5zdGF0dXM9PSJCX0RFTEVURUQiIG9yIC5zdGF0dXM9PSJET05FIiknICIkZiIgPi9kZXYvbnVsbCB8fCBkaWUgIlBJTk5FRF9UWF9DT05URU5UX0lOVkFMSURfJGYiIDY2CjE2MTogIGxvZ2ljYWw9IiQoanEgLWVyICcubG9naWNhbF9pZCcgIiRmIikiOyBnZW5lcmF0aW9uPSIkKGpxIC1lciAnLmdlbmVyYXRpb24nICIkZiIpIjsgc3RhdGVfc2hhPSIkKGpxIC1lciAnLnN0YXRlX3NoYTI1NicgIiRmIikiOyBzdGF0dXM9IiQoanEgLWVyICcuc3RhdHVzJyAiJGYiKSIKMTYzOiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIlBJTk5FRF9UWF9HRU5FUkFUSU9OX1VOU0FGRV8ke2xvZ2ljYWx9IiA2NgoxNjQ6ICBbWyAiJHN0YXRlX3NoYSIgPX4gXlswLTlhLWZdezY0fSQgXV0gfHwgZGllICJQSU5ORURfVFhfU1RBVEVfU0hBX0lOVkFMSURfJHtsb2dpY2FsfSIgNjYKMTY1OiAgZXhwZWN0ZWRfcGF0aD0iJFJFVEVOVElPTl9ST09UL3RyYW5zYWN0aW9ucy8kbG9naWNhbC8kZ2VuZXJhdGlvbi5qc29uIgoxNjY6ICBbWyAiJGYiID09ICIkZXhwZWN0ZWRfcGF0aCIgXV0gfHwgZGllICJQSU5ORURfVFhfUEFUSF9JTlZBTElEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTY3OiAgcHJpbnRmICdERUxFVEV8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHN0YXRlX2ZpbGU9JXN8c3RhdGVfc2hhMjU2PSVzXG4nICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJG93bmVyIiAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIgIiRzdGF0ZV9zaGEiCjE3ODogIGxvY2FsIHBsYW5fZmlsZT0iJDEiIGxpbmUgbG9naWNhbCBnZW5lcmF0aW9uIHJlYXNvbiB0eGYgc3RhdHVzCjE4MTogICAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMTgzOiAgICBbWyAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fUExBTk5FRCB8fCAiJHJlYXNvbiIgPT0gR0NfVFJBTlNBQ1RJT05fQl9ERUxFVEVEIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fVU5FWFBFQ1RFRF9QUk9URUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufV8ke3JlYXNvbn0iIDY2CjE4NDogICAgdHhmPSIkUkVURU5USU9OX1JPT1QvdHJhbnNhY3Rpb25zLyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iCjE4NTogICAgW1sgLXMgIiR0eGYiICYmICEgLUwgIiR0eGYiIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9UWF9NSVNTSU5HXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMTg3OiAgICBbWyAiR0NfVFJBTlNBQ1RJT05fJHN0YXR1cyIgPT0gIiRyZWFzb24iIF1dIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9TVEFUVVNfTUlTTUFUQ0hfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IiA2NgoxODg6ICAgIGdyZXAgLUZxeCAiJChwaW5uZWRfdHhfaWRlbnRpdHkgIiR0eGYiKSIgIiRIT01FTEFCX1JFVEVOVElPTl9QSU5ORURfREVMRVRFX0ZJTEUiIHx8IGRpZSAiUElOTkVEX1BMQU5fUFJPVEVDVF9OT1RfUElOTkVEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIgNjYKMjExOiAgcHJpbnRmICdDT05UUkFDVHx0YXNrPSVzfHBvbGljeT1PV05FUl9BV0FSRV9TQUZFX0dDX0dGU3x0YXJnZXRfcmVnaXN0cnk9Q0FOT05JQ0FMfHZtX2tlZXA9JXN8YXBwX2tlZXA9JXN8Y29udHJvbF9rZWVwPSVzfG1pbl9kZWxldGVfYWdlX3NlY29uZHM9JXN8Z2ZzX2NyaXRpY2FsPSVzfGdmc193ZWVrbHk9JXN8Z2ZzX21vbnRobHk9JXN8Z2ZzX2NvbXBsZXRlZF9wZXJpb2RzX29ubHk9WUVTfG5vbnNlYWxlZD1QUk9URUNUfHJldGlyZWRfcHJlc2VydmU9UFJPVEVDVHx1bmtub3duX25hbWVzcGFjZT1QUk9URUNUfG93bmVyX3N0YXRlX3JlcXVpcmVkPVlFU3xib3RoX2Nsb3Vkc19yZXF1aXJlZD1ZRVN8bGF0ZXN0X3Jlc3RvcmVfcHJvdmVuX3JlcXVpcmVkPVlFU3xsZWdhY3lfaGI9UFJPVEVDVHxsZWdhY3lfcHZlMDE9UFJPVEVDVHxsZWdhY3lfY29udHJvbD1QUk9URUNUXG4nICIkVEFTS19JRCIgIiRWTV9LRUVQIiAiJEFQUF9LRUVQIiAiJENPTlRST0xfS0VFUCIgIiRNSU5fREVMRVRFX0FHRV9TRUNPTkRTIiAiJEdGU19DUklUSUNBTF9DT1VOVCIgIiRHRlNfV0VFS0xZIiAiJEdGU19NT05USExZIgoyMTQ6ICBsb2NhbCBsb2dpY2FsPSIkMSIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdCB0eCBvdXQga2luZCBidWNrZXQKMjE4OiAgaWYgISBIT01FTEFCX0JBQ0tVUF9HRlNfUE9MSUNZPSIkR0ZTX1BPTElDWSIgIiRHRlNfSEVMUEVSIiBpcy1jcml0aWNhbCAiJGxvZ2ljYWwiOyB0aGVuIHJldHVybiAwOyBmaQoyMTk6ICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyMjQ6ICAgIHByaW50ZiAnJXNcdCVzXG4nICIkZ2VuIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwuZ2ZzLWVsaWdpYmxlIgoyMjY6ICBvdXQ9IiQoSE9NRUxBQl9CQUNLVVBfR0ZTX1BPTElDWT0iJEdGU19QT0xJQ1kiICIkR0ZTX0hFTFBFUiIgc2VsZWN0ICIkbG9naWNhbCIgPCIkVE1QUk9PVC8kbG9naWNhbC5nZnMtZWxpZ2libGUiKSIgfHwgZGllICJHRlNfU0VMRUNUX0ZBSUxFRF8kbG9naWNhbCIgNjYKMjM4OiAgcmVtb3RlX3NldCAiJFJFTU9URV9BIiA+IiRUTVBST09UL2Euc2V0IgoyMzk6ICByZW1vdGVfc2V0ICIkUkVNT1RFX0IiID4iJFRNUFJPT1QvYi5zZXQiCjI0MDogIGxvY2FsIG5vdyBsb2dpY2FsIG5vZGUga2VlcCBsaWZlY3ljbGUgb3Blbl9jb3VudCBmaWxlIGpzb24gc2NoZW1hIGxpZCBnZW4gc3RhdHVzIHNoYSBzZWFsZWRfYXQgZXBvY2ggYWdlIGlkeCB0eCBnZnNfYnVja2V0IGNhbmRpZGF0ZXM9MCBwcm90ZWN0ZWQ9MCBrZXB0PTAgZ2ZzX2tlcHQ9MAoyNTA6ICAgICAgW1sgIiRmaWxlIiA9PSAiJFNUQVRFX1JPT1QvJGxvZ2ljYWwvIiouanNvbiBdXSB8fCB7IHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfHJlYXNvbj1TVEFURV9QQVRIX1VOU0FGRXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI1MTogICAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG5vZGUiIGNhdCAiJGZpbGUiKSIgfHwgZGllICJTVEFURV9SRUFEX0ZBSUxFRF8ke2xvZ2ljYWx9IiA2OQoyNTQ6ICAgICAgZ2VuPSIkKGpxIC1yICcuZ2VuZXJhdGlvbi8vIiInIDw8PCIkanNvbiIpIgoyNTY6ICAgICAgaWYgW1sgIiRzY2hlbWEiICE9IGhvbWVsYWItY2xvdWQtcXVvcnVtLXBheWxvYWQtdjEgfHwgIiRsaWQiICE9ICIkbG9naWNhbCIgXV0gfHwgISBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbiI7IHRoZW4KMjU3OiAgICAgICAgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8cmVhc29uPU5PTkNBTk9OSUNBTF9TVEFURXxwYXRoPSVzXG4nICIkbG9naWNhbCIgIiRmaWxlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlCjI2MDogICAgICBpZiBbWyAiJHN0YXR1cyIgIT0gU0VBTEVEIF1dOyB0aGVuCjI2MjogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPUlOQ09NUExFVEVfJXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJHN0YXR1cyIKMjY2OiAgICAgIHN0cmljdF9zdGF0ZSAiJGpzb24iICIkbG9naWNhbCIgIiRnZW4iIHx8IHsgcHJpbnRmICdQUk9URUNUfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249U0VBTEVEX1NUQVRFX05PVF9TVFJJQ1RcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSk7IGNvbnRpbnVlOyB9CjI2NzogICAgICBzZWFsZWRfYXQ9IiQoanEgLXIgJy5zZWFsZWRfYXRfdXRjLy8iIicgPDw8IiRqc29uIikiCjI2ODogICAgICBlcG9jaD0iJChkYXRlIC11IC1kICIkc2VhbGVkX2F0IiArJXMgMj4iJFRNUFJPT1QvZGF0ZS5lcnIiKSIgfHwgeyBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1TRUFMRURfVElNRV9JTlZBTElEXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSI7IHByb3RlY3RlZD0kKChwcm90ZWN0ZWQrMSkpOyBjb250aW51ZTsgfQoyNzA6ICAgICAgcHJpbnRmICclc1x0JXNcdCVzXHQlc1x0JXNcdCVzXG4nICIkZ2VuIiAiJGZpbGUiICIkc2hhIiAiJGFnZSIgIiRub2RlIiAiJHNlYWxlZF9hdCIgPj4iJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIKMjcxOiAgICBkb25lIDwgPChzdGF0ZV9maWxlcyAiJG5vZGUiICIkbG9naWNhbCIgfCBMQ19BTEw9QyBzb3J0KQoyNzM6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TE9HSUNBTF9IQVNfSU5DT01QTEVURVxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjc3OiAgICAgIHdoaWxlIElGUz0kJ1x0JyByZWFkIC1yIGdlbiBmaWxlIHNoYSBhZ2Ugbm9kZSBzZWFsZWRfYXQ7IGRvIHByaW50ZiAnS0VFUHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFVElSRURfUFJFU0VSVkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsga2VwdD0kKChrZXB0KzEpKTsgZG9uZSA8IDwoTENfQUxMPUMgc29ydCAtciAiJFRNUFJPT1QvJGxvZ2ljYWwucm93cyIpCjI4MDogICAgaWYgISBsYXRlc3RfcmVzdG9yZV9wcm92ZW4gIiRsb2dpY2FsIjsgdGhlbgoyODE6ICAgICAgd2hpbGUgSUZTPSQnXHQnIHJlYWQgLXIgZ2VuIGZpbGUgc2hhIGFnZSBub2RlIHNlYWxlZF9hdDsgZG8gcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249TEFURVNUX1JFU1RPUkVfTk9UX1BST1ZFTlxuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiOyBrZXB0PSQoKGtlcHQrMSkpOyBkb25lIDwgPChMQ19BTEw9QyBzb3J0IC1yICIkVE1QUk9PVC8kbG9naWNhbC5yb3dzIikKMjg2OiAgICB3aGlsZSBJRlM9JCdcdCcgcmVhZCAtciBnZW4gZmlsZSBzaGEgYWdlIG5vZGUgc2VhbGVkX2F0OyBkbwoyOTA6ICAgICAgICBwcmludGYgJ1JFVElSRUR8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19BTFJFQURZX0RPTkVcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIgoyOTI6ICAgICAgICBwcmludGYgJ1BST1RFQ1R8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1HQ19UUkFOU0FDVElPTl8lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkdHgiOyBwcm90ZWN0ZWQ9JCgocHJvdGVjdGVkKzEpKQoyOTQ6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1QT0xJQ1lfTkVXRVNUXyVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRrZWVwIjsga2VwdD0kKChrZXB0KzEpKQoyOTY6ICAgICAgICBwcmludGYgJ0tFRVB8bG9naWNhbD0lc3xnZW5lcmF0aW9uPSVzfG93bmVyPSVzfHJlYXNvbj1NSU5fQUdFfGFnZV9zZWNvbmRzPSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRhZ2UiOyBrZXB0PSQoKGtlcHQrMSkpCjI5ODogICAgICAgIHByaW50ZiAnUFJPVEVDVHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXN8cmVhc29uPVJFTU9URV9TRVRfTUlTTUFUQ0hcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIjsgcHJvdGVjdGVkPSQoKHByb3RlY3RlZCsxKSkKMzAwOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX1dFRUtMWXxidWNrZXQ9JXNcbicgIiRsb2dpY2FsIiAiJGdlbiIgIiRub2RlIiAiJGdmc19idWNrZXQiOyBrZXB0PSQoKGtlcHQrMSkpOyBnZnNfa2VwdD0kKChnZnNfa2VwdCsxKSkKMzAyOiAgICAgICAgcHJpbnRmICdLRUVQfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xyZWFzb249R0ZTX01PTlRITFl8YnVja2V0PSVzXG4nICIkbG9naWNhbCIgIiRnZW4iICIkbm9kZSIgIiRnZnNfYnVja2V0Ijsga2VwdD0kKChrZXB0KzEpKTsgZ2ZzX2tlcHQ9JCgoZ2ZzX2tlcHQrMSkpCjMwNDogICAgICAgIHByaW50ZiAnREVMRVRFfGxvZ2ljYWw9JXN8Z2VuZXJhdGlvbj0lc3xvd25lcj0lc3xzdGF0ZV9maWxlPSVzfHN0YXRlX3NoYTI1Nj0lc3xhZ2Vfc2Vjb25kcz0lc1xuJyAiJGxvZ2ljYWwiICIkZ2VuIiAiJG5vZGUiICIkZmlsZSIgIiRzaGEiICIkYWdlIgozMTQ6cmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCgpewozMTU6ICBsb2NhbCByZW1vdGU9IiQxIiBsb2dpY2FsPSIkMiIgZ2VuZXJhdGlvbj0iJDMiIGRpcnMKMzE2OiAgZGlycz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBsc2YgIiRyZW1vdGU6JFJFTU9URV9ST09ULyRsb2dpY2FsIiAtLWRpcnMtb25seSAtLW1heC1kZXB0aCAxIDI+IiRUTVBST09UL2xzZi5lcnIiKSIgfHwgZGllICJSRU1PVEVfTElTVF9GQUlMRURfJHtyZW1vdGV9XyR7bG9naWNhbH0iIDY5CjMxNzogIHByaW50ZiAnJXNcbicgIiRkaXJzIiB8IHNlZCAnczovJDo6JyB8IGdyZXAgLUZxeCAiJGdlbmVyYXRpb24iCjMyMDogIGxvY2FsIGxvZ2ljYWw9IiQxIiBnZW5lcmF0aW9uPSIkMiIgc3RhdGVfc2hhPSIkMyIgc3RhdHVzPSIkNCIgYV9hYnNlbnQ9IiQ1IiBiX2Fic2VudD0iJDYiIHBhdGggdG1wCjMyMTogIHBhdGg9IiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzI0OiAganEgLW4gLS1hcmcgdGFzayAiJFRBU0tfSUQiIC0tYXJnIGNoYW5nZSAiJENIQU5HRV9JRCIgLS1hcmcgbCAiJGxvZ2ljYWwiIC0tYXJnIGcgIiRnZW5lcmF0aW9uIiAtLWFyZyBzICIkc3RhdGVfc2hhIiAtLWFyZyBzdGF0dXMgIiRzdGF0dXMiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBhYSAiJGFfYWJzZW50IiAtLWFyZ2pzb24gYmEgIiRiX2Fic2VudCIgJ3tzY2hlbWE6ImhvbWVsYWItYmFja3VwLXJldGVudGlvbi10cmFuc2FjdGlvbi12MSIsdGFza19pZDokdGFzayxjaGFuZ2VfaWQ6JGNoYW5nZSxsb2dpY2FsX2lkOiRsLGdlbmVyYXRpb246JGcsc3RhdGVfc2hhMjU2OiRzLHN0YXR1czokc3RhdHVzLHVwZGF0ZWRfYXRfdXRjOiRhdCxyZW1vdGVfYV9hYnNlbnQ6JGFhLHJlbW90ZV9iX2Fic2VudDokYmF9JyA+IiR0bXAiCjMyOTogIGxvY2FsIGxpbmU9IiQxIiBsb2dpY2FsIGdlbmVyYXRpb24gb3duZXIgc3RhdGVfZmlsZSBzdGF0ZV9zaGEgYWdlIGpzb24gY3VycmVudF9zaGEKMzMxOiAgZ2VuZXJhdGlvbj0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXmdlbmVyYXRpb249Lyl7c3ViKC9eZ2VuZXJhdGlvbj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzMzOiAgc3RhdGVfZmlsZT0iJChhd2sgLUYnfCcgJ3tmb3IoaT0xO2k8PU5GO2krKylpZigkaX4vXnN0YXRlX2ZpbGU9Lyl7c3ViKC9ec3RhdGVfZmlsZT0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM0OiAgc3RhdGVfc2hhPSIkKGF3ayAtRid8JyAne2ZvcihpPTE7aTw9TkY7aSsrKWlmKCRpfi9ec3RhdGVfc2hhMjU2PS8pe3N1YigvXnN0YXRlX3NoYTI1Nj0vLCIiLCRpKTtwcmludCAkaX19JyA8PDwiJGxpbmUiKSIKMzM2OiAgW1sgIiQobm9kZV9mb3JfbG9naWNhbCAiJGxvZ2ljYWwiKSIgPT0gIiRvd25lciIgXV0gfHwgZGllICJBUFBMWV9PV05FUl9DSEFOR0VEXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzM3OiAgc2FmZV9nZW5lcmF0aW9uICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX0dFTkVSQVRJT05fVU5TQUZFXyR7bG9naWNhbH0iCjMzODogIFtbICIkc3RhdGVfZmlsZSIgPT0gIiRTVEFURV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uLmpzb24iIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfUEFUSF9VTlNBRkVfJHtsb2dpY2FsfSIKMzM5OiAganNvbj0iJChub2RlX2V4ZWMgIiRvd25lciIgY2F0ICIkc3RhdGVfZmlsZSIpIiB8fCBkaWUgIkFQUExZX1NUQVRFX1JFQURfJHtsb2dpY2FsfSIgNjkKMzQxOiAgW1sgIiRjdXJyZW50X3NoYSIgPT0gIiRzdGF0ZV9zaGEiIF1dIHx8IGRpZSAiQVBQTFlfU1RBVEVfRFJJRlRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDI6ICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJBUFBMWV9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzQzOiAgKCggYWdlID49IE1JTl9ERUxFVEVfQUdFX1NFQ09ORFMgKSkgfHwgZGllICJBUFBMWV9BR0VfR1VBUkRfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDQ6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0EiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9BX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDU6ICByZW1vdGVfZ2VuZXJhdGlvbl9wcmVzZW50ICIkUkVNT1RFX0IiICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiB8fCBkaWUgIkFQUExZX1JFTU9URV9CX01JU1NJTkdfJHtsb2dpY2FsfV8ke2dlbmVyYXRpb259IgozNDY6ICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIFBMQU5ORUQgZmFsc2UgZmFsc2UKMzQ3OiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQjokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM0ODogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM0OTogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgQl9ERUxFVEVEIGZhbHNlIHRydWUKMzUwOiAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iCjM1MTogIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiQVBQTFlfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM1MjogIHdyaXRlX3R4ICIkbG9naWNhbCIgIiRnZW5lcmF0aW9uIiAiJHN0YXRlX3NoYSIgRE9ORSB0cnVlIHRydWUKMzUzOiAgcHJpbnRmICdHQ19ERUxFVEVfRE9ORXxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8b3duZXI9JXNcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkb3duZXIiCjM1NjogIGxvY2FsIGYgbG9naWNhbCBnZW5lcmF0aW9uIHN0YXRlX3NoYSBzdGF0dXMgb3duZXIgc3RhdGVfZmlsZSBqc29uIGN1cnJlbnRfc2hhCjM2MzogICAgZ2VuZXJhdGlvbj0iJChqcSAtZXIgJy5nZW5lcmF0aW9uJyAiJGYiKSIKMzY0OiAgICBzdGF0ZV9zaGE9IiQoanEgLWVyICcuc3RhdGVfc2hhMjU2JyAiJGYiKSIKMzY2OiAgICBzYWZlX2dlbmVyYXRpb24gIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iIHx8IGRpZSAiVFhfR0VORVJBVElPTl9VTlNBRkVfJGxvZ2ljYWwiCjM2NzogICAgc3RhdGVfZmlsZT0iJFNUQVRFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24uanNvbiIKMzY4OiAgICBqc29uPSIkKG5vZGVfZXhlYyAiJG93bmVyIiBjYXQgIiRzdGF0ZV9maWxlIikiIHx8IGRpZSAiVFhfU1RBVEVfUkVBRF8ke2xvZ2ljYWx9IiA2OQozNzA6ICAgIFtbICIkY3VycmVudF9zaGEiID09ICIkc3RhdGVfc2hhIiBdXSB8fCBkaWUgIlRYX1NUQVRFX0RSSUZUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzcxOiAgICBzdHJpY3Rfc3RhdGUgIiRqc29uIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgfHwgZGllICJUWF9TVEFURV9OT1RfU1RSSUNUXyR7bG9naWNhbH1fJHtnZW5lcmF0aW9ufSIKMzczOiAgICAgIGlmIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iOyB0aGVuIHJjbG9uZSAtLWNvbmZpZyAiJFRNUFJPT1QvcmNsb25lLmNvbmYiIHB1cmdlICIkUkVNT1RFX0I6JFJFTU9URV9ST09ULyRsb2dpY2FsLyRnZW5lcmF0aW9uIjsgZmkKMzc0OiAgICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQiIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0JfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3NTogICAgICB3cml0ZV90eCAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiIgIiRzdGF0ZV9zaGEiIEJfREVMRVRFRCBmYWxzZSB0cnVlCjM3NzogICAgaWYgcmVtb3RlX2dlbmVyYXRpb25fcHJlc2VudCAiJFJFTU9URV9BIiAiJGxvZ2ljYWwiICIkZ2VuZXJhdGlvbiI7IHRoZW4gcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgcHVyZ2UgIiRSRU1PVEVfQTokUkVNT1RFX1JPT1QvJGxvZ2ljYWwvJGdlbmVyYXRpb24iOyBmaQozNzg6ICAgIHJlbW90ZV9nZW5lcmF0aW9uX3ByZXNlbnQgIiRSRU1PVEVfQSIgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICYmIGRpZSAiVFhfUkVNT1RFX0FfREVMRVRFX0ZBSUxFRF8ke2xvZ2ljYWx9XyR7Z2VuZXJhdGlvbn0iCjM3OTogICAgd3JpdGVfdHggIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iICIkc3RhdGVfc2hhIiBET05FIHRydWUgdHJ1ZQozODA6ICAgIHByaW50ZiAnR0NfVFJBTlNBQ1RJT05fUkVTVU1FRHxsb2dpY2FsPSVzfGdlbmVyYXRpb249JXN8c3RhdHVzPURPTkVcbicgIiRsb2dpY2FsIiAiJGdlbmVyYXRpb24iCjM4MzphY3F1aXJlX2djX2xvY2tzKCl7CjM4NDogIGV4ZWMgNj4iJERJU1BBVENIRVJfTE9DSyI7IGZsb2NrIC1uIDYgfHwgcmV0dXJuIDEKMzg1OiAgZXhlYyA3PiIkVk1fTE9DSyI7IGZsb2NrIC1uIDcgfHwgcmV0dXJuIDEKMzg2OiAgZXhlYyA4PiIkQVBQX0xPQ0siOyBmbG9jayAtbiA4IHx8IHJldHVybiAxCjM4NzogIGV4ZWMgOT4iJEhFQVZZX0xPQ0siOyBmbG9jayAtbiA5IHx8IHJldHVybiAxCjM5MTogIGxvY2FsIGdlbmVyYXRpb24gZmlsZSBzaGEgcmVtb3RlIHJlYWRiYWNrIGRpcnMKMzkyOiAgZ2VuZXJhdGlvbj0iY3IwMDMzLSQoZGF0ZSAtdSArJVklbSVkVCVIJU0lU1opLSQkIgozOTQ6ICBwcmludGYgJ2hvbWVsYWIgcmV0ZW50aW9uIGRlc3RydWN0aXZlIGNhbmFyeSAlc1xuJyAiJGdlbmVyYXRpb24iID4iJGZpbGUiCjM5NjogIGZvciByZW1vdGUgaW4gIiRSRU1PVEVfQSIgIiRSRU1PVEVfQiI7IGRvCjM5NzogICAgcmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgY29weXRvICIkZmlsZSIgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgLS1pbW11dGFibGUgLS1zaXplLW9ubHkKMzk4OiAgICByZWFkYmFjaz0iJChyY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBjYXQgIiRyZW1vdGU6JFJFTU9URV9ST09UL3JldGVudGlvbi1jYW5hcnkvJGdlbmVyYXRpb24vY2FuYXJ5LnR4dCIgfCBzaGEyNTZzdW0gfCBhd2sgJ3twcmludCAkMX0nKSIKMzk5OiAgICBbWyAiJHJlYWRiYWNrIiA9PSAiJHNoYSIgXV0gfHwgZGllICJDQU5BUllfUkVBREJBQ0tfJHtyZW1vdGV9Igo0MDE6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9COiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDI6ICByY2xvbmUgLS1jb25maWcgIiRUTVBST09UL3JjbG9uZS5jb25mIiBwdXJnZSAiJFJFTU9URV9BOiRSRU1PVEVfUk9PVC9yZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIgo0MDM6ICBmb3IgcmVtb3RlIGluICIkUkVNT1RFX0EiICIkUkVNT1RFX0IiOyBkbwo0MDQ6ICAgIGRpcnM9IiQocmNsb25lIC0tY29uZmlnICIkVE1QUk9PVC9yY2xvbmUuY29uZiIgbHNmICIkcmVtb3RlOiRSRU1PVEVfUk9PVCIgLS1kaXJzLW9ubHkgLS1tYXgtZGVwdGggMiAyPiIkVE1QUk9PVC9jYW5hcnktbHNmLmVyciIpIiB8fCBkaWUgIkNBTkFSWV9MSVNUX0ZBSUxFRF8ke3JlbW90ZX0iIDY5CjQwNTogICAgaWYgcHJpbnRmICclc1xuJyAiJGRpcnMiIHwgc2VkICdzOi8kOjonIHwgZ3JlcCAtRnF4ICJyZXRlbnRpb24tY2FuYXJ5LyRnZW5lcmF0aW9uIjsgdGhlbiBkaWUgIkNBTkFSWV9QVVJHRV9GQUlMRURfJHtyZW1vdGV9IjsgZmkKNDA3OiAgcHJpbnRmICdDQU5BUllfU1RBVFVTPU9LfGdlbmVyYXRpb249JXN8Y2xvdWRfd3JpdGVzPVlFU3xjbG91ZF9kZWxldGVzPVlFU1xuJyAiJGdlbmVyYXRpb24iCjQxNTogIGlmIGZpbmQgIiRSRVRFTlRJT05fUk9PVC90cmFuc2FjdGlvbnMiIC10eXBlIGYgLW5hbWUgJyouanNvbicgLWV4ZWMganEgLWUgJy5zdGF0dXM9PSJET05FIiBhbmQgLnJlbW90ZV9hX2Fic2VudD09dHJ1ZSBhbmQgLnJlbW90ZV9iX2Fic2VudD09dHJ1ZScge30gXDsgLXByaW50IDI+IiRUTVBST09UL3R4LWZpbmQuZXJyIiB8IGdyZXAgLXEgLjsgdGhlbiBoaXN0PXRydWU7IGZpCjQxODogIGpxIC1uIC0tYXJnIHRhc2sgIiRUQVNLX0lEIiAtLWFyZyBjaGFuZ2UgIiRDSEFOR0VfSUQiIC0tYXJnIGF0ICIkKGRhdGUgLXUgKyVZLSVtLSVkVCVIOiVNOiVTWikiIC0tYXJnanNvbiBjYW5hcnkgIiRjYW5hcnlfcHJvdmVuIiAtLWFyZ2pzb24gaGlzdCAiJGhpc3QiIC0tYXJnanNvbiBjYW5kaWRhdGVzICIke2NhbmRpZGF0ZXM6LTB9IiAtLWFyZ2pzb24gcHJvdGVjdGVkICIke3Byb3RlY3RlZDotMH0iIC0tYXJnanNvbiBrZXB0ICIke2tlcHQ6LTB9IiAtLWFyZ2pzb24gZ2ZzX2tlcHQgIiR7Z2ZzX2tlcHQ6LTB9IiAtLWFyZ2pzb24gZGVsZXRlZCAiJGRlbGV0ZWQiIC0tYXJnanNvbiBnZnNfY3JpdGljYWwgIiRHRlNfQ1JJVElDQUxfQ09VTlQiIC0tYXJnanNvbiBnZnNfd2Vla2x5ICIkR0ZTX1dFRUtMWSIgLS1hcmdqc29uIGdmc19tb250aGx5ICIkR0ZTX01PTlRITFkiICd7c2NoZW1hOiJob21lbGFiLWJhY2t1cC1yZXRlbnRpb24tdjEiLHN0YXR1czoiT0siLHRhc2tfaWQ6JHRhc2ssY2hhbmdlX2lkOiRjaGFuZ2UsdXBkYXRlZF9hdF91dGM6JGF0LHBvbGljeTp7dm1fa2VlcDoyLGFwcF9rZWVwOjcsY29udHJvbF9rZWVwOjQsbWluX2RlbGV0ZV9hZ2Vfc2Vjb25kczo4NjQwMCxnZnM6e2VuYWJsZWQ6dHJ1ZSxjcml0aWNhbF92bV9jb3VudDokZ2ZzX2NyaXRpY2FsLHdlZWtseV9jb21wbGV0ZWRfYnVja2V0czokZ2ZzX3dlZWtseSxtb250aGx5X2NvbXBsZXRlZF9idWNrZXRzOiRnZnNfbW9udGhseSxjb21wbGV0ZWRfcGVyaW9kc19vbmx5OnRydWV9fSxvd25lcl9hd2FyZV9nY19wcm92ZW46dHJ1ZSxkZXN0cnVjdGl2ZV9jYW5hcnlfcHJvdmVuOiRjYW5hcnksaGlzdG9yaWNhbF9nY19wcm92ZW46JGhpc3QsbGFzdF9wbGFuOntkZWxldGVfY2FuZGlkYXRlczokY2FuZGlkYXRlcyxwcm90ZWN0ZWQ6JHByb3RlY3RlZCxrZXB0OiRrZXB0LGdmc19rZXB0OiRnZnNfa2VwdH0sbGFzdF9ydW5fZGVsZXRlZDokZGVsZXRlZCxsZWdhY3lfbmFtZXNwYWNlc19wcm90ZWN0ZWQ6WyJoYiIsInB2ZTAxIiwiY29udHJvbC1ib290c3RyYXAiXSxwcm92aWRlcl93b3JtX3Byb3ZlbjpmYWxzZX0nID4iJHRtcCIKNDI0OiAgZXhlYyA1PiIkTE9DSyI7IGZsb2NrIC1uIDUgfHwgZGllIEdDX0xPQ0tfQlVTWSA3NQo0MzM6c2NoZWR1bGVkKCl7CjQzNDogIGV4ZWMgNT4iJExPQ0siOyBmbG9jayAtbiA1IHx8IHsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9U0tJUHxyZWFzb249R0NfTE9DS19CVVNZXG4nOyByZXR1cm4gMDsgfQo0NDI6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMSIgUFJFTE9DSzsgZmkKNDQzOiAgaWYgKCggY291bnQgPT0gMCAmJiBvcGVuX3R4ID09IDAgKSk7IHRoZW4gd3JpdGVfaGVhbHRoICIkcDEiIHRydWUgMDsgY2F0ICIkcDEiOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1PS3xkZWxldGVkPTB8dHJhbnNhY3Rpb25zX3Jlc3VtZWQ9MFxuJzsgcmV0dXJuIDA7IGZpCjQ0NDogIGlmICEgYWNxdWlyZV9nY19sb2NrczsgdGhlbiB3cml0ZV9oZWFsdGggIiRwMSIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1CQUNLVVBfTE9DS19CVVNZfGNhbmRpZGF0ZXM9JXN8b3Blbl90cmFuc2FjdGlvbnM9JXNcbicgIiRjb3VudCIgIiRvcGVuX3R4IjsgcmV0dXJuIDA7IGZpCjQ0NTogIGlmIHBpbm5lZF9kZWxldGVfY29udHJhY3RfZW5hYmxlZDsgdGhlbiBwbGFuID4iJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiOyBwaW5uZWRfYXNzZXJ0X2RlbGV0ZV9zY29wZSAiJFRNUFJPT1QvcGlubmVkLXByZS1yZXN1bWUtcGxhbi50eHQiIExPQ0tFRF9QUkVfUkVTVU1FOyBmaQo0NDg6ICBpZiBwaW5uZWRfZGVsZXRlX2NvbnRyYWN0X2VuYWJsZWQ7IHRoZW4gcGlubmVkX2Fzc2VydF9kZWxldGVfc2NvcGUgIiRwMiIgTE9DS0VEX1BPU1RfUkVTVU1FOyBmaQo0NDk6ICBpZiAoKCBjb3VudCA9PSAwICkpOyB0aGVuIHdyaXRlX2hlYWx0aCAiJHAyIiB0cnVlIDA7IGNhdCAiJHAyIjsgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0wfHRyYW5zYWN0aW9uc19yZXN1bWVkPSVzXG4nICIkb3Blbl90eCI7IHJldHVybiAwOyBmaQo0NTA6ICBjbXAgLXMgPChncmVwICdeREVMRVRFfCcgIiRwMSIgfCBzdGFibGVfZGVsZXRlX3NldCkgPChncmVwICdeREVMRVRFfCcgIiRwMiIgfCBzdGFibGVfZGVsZXRlX3NldCkgfHwgeyB3cml0ZV9oZWFsdGggIiRwMiIgdHJ1ZSAwOyBwcmludGYgJ0dDX1NDSEVEVUxFRD1TS0lQfHJlYXNvbj1QTEFOX0NIQU5HRURfQUZURVJfTE9DS1xuJzsgcmV0dXJuIDA7IH0KNDU0OiAgcHJpbnRmICdHQ19TQ0hFRFVMRUQ9T0t8ZGVsZXRlZD0lc3x0cmFuc2FjdGlvbnNfcmVzdW1lZD0lc1xuJyAiJGRlbGV0ZWQiICIkb3Blbl90eCIKNDYyOiAgc2NoZWR1bGVkKSBzY2hlZHVsZWQgOzsKNDYzOiAgKikgZGllIFVTQUdFX2NvbnRyYWN0X3BsYW5fY2FuYXJ5X2FjdGl2YXRlX3NjaGVkdWxlZCA2NCA7Ow== +PIPE_41_SCORE=3 +PIPE_41_BASENAME=homelab-mail-cloud-edge-vm-upload +PIPE_41_PATH_SHA256=0c6fa7355f716e470cc4ecce8795381d116927ed145c0d3d603eb75377a2a760 +PIPE_41_FILE_SHA256=f22848d83a7ce13ca331ce9181523d0a8fadcf34f01d0c95186784c6b1f0875f +PIPE_41_SCHEDULE_TARGET_COUNT=0 +PIPE_41_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_41_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_41_VZDUMP_QEMU_COUNT=1 +PIPE_41_RCLONE_COUNT=13 +PIPE_41_CLOUD_QUORUM_COUNT=0 +PIPE_41_SEAL_WRITTEN_COUNT=0 +PIPE_41_PAYLOAD_PARTS_COUNT=0 +PIPE_41_TRANSPORT_COUNT=1 +PIPE_41_RESTORE_VALIDATION_COUNT=0 +PIPE_41_SCHEDULE_RESULT_COUNT=0 +PIPE_41_RELEVANT_LINE_COUNT=75 +PIPE_41_RELEVANT_B64=NTpMT0NLPS9ydW4vaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLmxvY2sKNjpIRUFMVEg9L3Zhci9saWIvaG9tZWxhYi1oZWFsdGgvbWFpbC1jbG91ZC1lZGdlLXZtLnR4dAo5OlRBUkdFVF9SRU1PVEU9cHZlMDMtbWFpbC0wMy1jcnlwdAoxMDpUQVJHRVRfQkFTRT1mdWxsL2VkZ2Utdm0tdnpkdW1wCjE4OlJFTU9URV9FTlY9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52CjE5OlJFTU9URV9TQ1JJUFQ9L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoCjI1OlZNSUQ9bm9uZQoyNzpUQVJHRVRfRElSPW5vbmUKMzA6ICBwcmludGYgIlNUQVRVUz1FUlJPUiBUUz0lcyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPSVzIFJFTU9URT0lcyBERVNUPSVzIEFSQ0hJVkU9JXMgU0laRT0lcyBTSEEyNTY9JXMgVk1JRD0lcyBTRUNSRVRfUFJJTlRFRD1ubyBOT1RFUz0lc1xuIiAiJFRTIiAiJE1PREUiICIkVEFSR0VUX1JFTU9URSIgIiRUQVJHRVRfRElSIiAiJEJBU0VOQU1FIiAiJFNJWkUiICIkU0hBIiAiJFZNSUQiICIkbm90ZSIgPiAiJEhFQUxUSCIKNDI6ZXhlYyA5PiIkTE9DSyIKNDM6aWYgISBmbG9jayAtbiA5OyB0aGVuCjQ0OiAgZWNobyAiU1RBVFVTPUVSUk9SIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBSRUFTT049bG9ja19idXN5IFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPWxvY2tfYnVzeSIgPiAiJEhFQUxUSCIKNDY6ICBlY2hvICJOT1RFUz1sb2NrX2J1c3kiCjU2OlZNSUQ9JChlY2hvICIkSCIgfCBhd2sgJ3tmb3IoaT0xO2k8PU5GO2krKykgaWYoJGkgfiAvXlZNSUQ9Lyl7c3ViKC9eVk1JRD0vLCIiLCRpKTsgcHJpbnQgJGl9fScpCjU4OlRBUkdFVF9ESVI9JFRBUkdFVF9CQVNFLyRUUwo2MTpbICIkVk1JRCIgPSAiMTMwIiBdIHx8IGZhaWwgdm1pZF9ub3RfMTMwIDIKNjQ6Y2FzZSAiJFNPVVJDRSIgaW4gL21udC9zdGFnaW5nL29mZmhvc3QvZWRnZS12bS12emR1bXAtZnJvbS1wdmUwMy92emR1bXAtcWVtdS0xMzAtKi52bWEuenN0KSA7OyAqKSBmYWlsIHNvdXJjZV9wYXRoX2JhZCAyIDs7IGVzYWMKNjc6Y2F0ID4gIiRSRU1PVEVfRU5WIiA8PEVPRgo2OTpUQVJHRVRfUkVNT1RFPSRUQVJHRVRfUkVNT1RFCjcwOlRBUkdFVF9CQVNFPSRUQVJHRVRfQkFTRQo3MTpUQVJHRVRfRElSPSRUQVJHRVRfRElSCjc5OlZNSUQ9JFZNSUQKODM6Y2F0ID4gIiRSRU1PVEVfU0NSSVBUIiA8PCdSRU1PVEVfU0NSSVBUX0VPRicKODc6LiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5lbnYKOTE6V09SSz0iL21udC9zdGFnaW5nL21haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtYXV0by8kVFMiCjk2OlJFTU9URV9QQVJUUz0kVEFSR0VUX0RJUi9wYXJ0cwo5NzpSRU1PVEVfU0hBPSRUQVJHRVRfRElSLyRCQVNFTkFNRS5zaGEyNTYKOTg6UkVNT1RFX01BTklGRVNUPSRUQVJHRVRfRElSL01BTklGRVNULnR4dAo5OTpSRU1PVEVfU1VNUz0kVEFSR0VUX0RJUi9TSEEyNTZTVU1TLnR4dAoxMTE6cmNsb25lIGFib3V0ICIkVEFSR0VUX1JFTU9URToiID4gIiRXT1JLL2xvZ3MvYWJvdXQub3V0IiAyPiIkV09SSy9sb2dzL2Fib3V0LmVyciIgfHwgQUJPVVRfUkM9JD8KMTE0OkRJUlM9IiQocmNsb25lIGxzZiAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFIiAtLWRpcnMtb25seSAyPi9kZXYvbnVsbCB8IHNlZCAncyMvJCMjJyB8IHNvcnQgfHwgdHJ1ZSkiCjExNjogIGlmIHJjbG9uZSBjYXQgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRS8kRC8kQkFTRU5BTUUuc2hhMjU2IiAyPi9kZXYvbnVsbCB8IGdyZXAgLXEgIiRTSEEiOyB0aGVuCjE0NzogIGVjaG8gIlJFTU9URV9CWVRFUz1leGlzdGluZyIKMTQ4OiAgZWNobyAiUkVNT1RFX0NPVU5UPWV4aXN0aW5nIgoxNzE6Y2F0ID4gIiRXT1JLL01BTklGRVNULnR4dCIgPDxFT0YKMTcyOlAxIE1haWwgQ2xvdWQgZWRnZS12bSByZWN1cnJpbmcgY2h1bmtlZCB2emR1bXAgdXBsb2FkCjE3NDpWTUlEPSRWTUlECjE4MjpSRU1PVEU9JFRBUkdFVF9SRU1PVEUKMTgzOlJFTU9URV9ESVI9JFRBUkdFVF9ESVIKMTg4OnJjbG9uZSBta2RpciAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgPiAiJFdPUksvbG9ncy9ta2Rpci5vdXQiIDI+IiRXT1JLL2xvZ3MvbWtkaXIuZXJyIiB8fCBNS0RJUl9SQz0kPwoxOTA6cmNsb25lIGNvcHkgIiRQQVJUU19ESVIiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX1BBUlRTIiAtLXRyYW5zZmVycyAyIC0tY2hlY2tlcnMgNCAtLXJldHJpZXMgMyAtLWxvdy1sZXZlbC1yZXRyaWVzIDEwIC0tcHJvZ3Jlc3MgPiAiJFdPUksvbG9ncy91cGxvYWRfcGFydHMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9wYXJ0cy5lcnIiIHx8IFVQTE9BRF9QQVJUU19SQz0kPwoxOTI6cmNsb25lIGNvcHl0byAiJFdPUksvJEJBU0VOQU1FLnNoYTI1NiIgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfU0hBIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5vdXQiIDI+IiRXT1JLL2xvZ3MvdXBsb2FkX3NoYS5lcnIiIHx8IFVQTE9BRF9TSEFfUkM9JD8KMTkzOlVQTE9BRF9NQU5JRkVTVF9SQz0wCjE5NDpyY2xvbmUgY29weXRvICIkV09SSy9NQU5JRkVTVC50eHQiICIkVEFSR0VUX1JFTU9URTokUkVNT1RFX01BTklGRVNUIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX21hbmlmZXN0Lm91dCIgMj4iJFdPUksvbG9ncy91cGxvYWRfbWFuaWZlc3QuZXJyIiB8fCBVUExPQURfTUFOSUZFU1RfUkM9JD8KMTk2OnJjbG9uZSBjb3B5dG8gIiRXT1JLL1NIQTI1NlNVTVMudHh0IiAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9TVU1TIiAtLWNoZWNrc3VtID4gIiRXT1JLL2xvZ3MvdXBsb2FkX3N1bXMub3V0IiAyPiIkV09SSy9sb2dzL3VwbG9hZF9zdW1zLmVyciIgfHwgVVBMT0FEX1NVTVNfUkM9JD8KMTk5OnJjbG9uZSBzaXplICIkVEFSR0VUX1JFTU9URTokVEFSR0VUX0RJUiIgLS1qc29uID4gIiRXT1JLL2xvZ3MvcmVtb3RlX3NpemUuanNvbiIgMj4iJFdPUksvbG9ncy9yZW1vdGVfc2l6ZS5lcnIiIHx8IFNJWkVfUkM9JD8KMjAxOnJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRSRU1PVEVfUEFSVFMiIC0tZm9ybWF0ICJwcyIgPiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4iJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLmVyciIgfHwgTFNGX1BBUlRTX1JDPSQ/CjIwMjpSRU1PVEVfUEFSVF9DT1VOVD0iJChncmVwIC1jICJeJEJBU0VOQU1FLnBhcnQtIiAiJFdPUksvbG9ncy9yZW1vdGVfbHNmX3BhcnRzLnR4dCIgMj4vZGV2L251bGwgfHwgdHJ1ZSkiCjIwMzpSRU1PVEVfQllURVM9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiYnl0ZXMiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNDpSRU1PVEVfQ09VTlQ9IiQocHl0aG9uMyAtYyAnaW1wb3J0IGpzb247IHByaW50KGpzb24ubG9hZChvcGVuKCInIiRXT1JLIicvbG9ncy9yZW1vdGVfc2l6ZS5qc29uIikpLmdldCgiY291bnQiLCIiKSknIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bikiCjIwNzpyY2xvbmUgY29weSAiJFRBUkdFVF9SRU1PVEU6JFJFTU9URV9QQVJUUyIgIiRETF9ESVIvcGFydHMiIC0tdHJhbnNmZXJzIDIgLS1jaGVja2VycyA0IC0tcmV0cmllcyAzIC0tbG93LWxldmVsLXJldHJpZXMgMTAgLS1wcm9ncmVzcyA+ICIkV09SSy9sb2dzL2Rvd25sb2FkX3BhcnRzLm91dCIgMj4iJFdPUksvbG9ncy9kb3dubG9hZF9wYXJ0cy5lcnIiIHx8IERPV05MT0FEX1BBUlRTX1JDPSQ/CjIzNDogIHJjbG9uZSBsc2YgIiRUQVJHRVRfUkVNT1RFOiRUQVJHRVRfQkFTRSIgLS1kaXJzLW9ubHkgMj4vZGV2L251bGwgfCBzZWQgInMjLyQjIyIgfCBzb3J0ID4gIiRESVJfTElTVCIgfHwgUkVURU5USU9OX1JDPSQ/CjIzOTogICAgICBbIC1uICIkT0xEIiBdICYmIHJjbG9uZSBwdXJnZSAiJFRBUkdFVF9SRU1PVEU6JFRBUkdFVF9CQVNFLyRPTEQiID4+ICIkV09SSy9sb2dzL3JldGVudGlvbi5vdXQiIDI+PiIkV09SSy9sb2dzL3JldGVudGlvbi5lcnIiCjI0NTpmb3IgcmMgaW4gIiRTUExJVF9SQyIgIiRQQVJUX1NIQV9MSVNUX1JDIiAiJE1LRElSX1JDIiAiJFVQTE9BRF9QQVJUU19SQyIgIiRVUExPQURfU0hBX1JDIiAiJFVQTE9BRF9NQU5JRkVTVF9SQyIgIiRVUExPQURfU1VNU19SQyIgIiRTSVpFX1JDIiAiJExTRl9QQVJUU19SQyIgIiRET1dOTE9BRF9QQVJUU19SQyI7IGRvCjI0OTpbICIkUkVNT1RFX1BBUlRfQ09VTlQiID0gIiRQQVJUX0NPVU5UIiBdIHx8IFJVTl9TVEFUVVM9RVJST1IKMjY1OmVjaG8gIlVQTE9BRF9NQU5JRkVTVF9SQz0kVVBMT0FEX01BTklGRVNUX1JDIgoyNjk6ZWNobyAiUkVNT1RFX1BBUlRfQ09VTlQ9JFJFTU9URV9QQVJUX0NPVU5UIgoyNzA6ZWNobyAiUkVNT1RFX0NPVU5UPSRSRU1PVEVfQ09VTlQiCjI3MTplY2hvICJSRU1PVEVfQllURVM9JFJFTU9URV9CWVRFUyIKMjg4OlJFTU9URV9TQ1JJUFRfRU9GCjI5MDpjaG1vZCAwNzU1ICIkUkVNT1RFX1NDUklQVCIKMjkyOnNjcCAtcSAiJFJFTU9URV9FTlYiIHJvb3RAIiRQVkUwMiI6L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQuZW52ID4gL3RtcC9wMV9lZGdlX2F1dG9fc2NwX2Vudi5vdXQgMj4vdG1wL3AxX2VkZ2VfYXV0b19zY3BfZW52LmVycgoyOTQ6c2NwIC1xICIkUkVNT1RFX1NDUklQVCIgcm9vdEAiJFBWRTAyIjovdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC5yZW1vdGUuc2ggPiAvdG1wL3AxX2VkZ2VfYXV0b19zY3Bfc2NyaXB0Lm91dCAyPi90bXAvcDFfZWRnZV9hdXRvX3NjcF9zY3JpcHQuZXJyCjI5ODogIGZhaWwgcmVtb3RlX3RyYW5zcG9ydF9wcmVwYXJlX2ZhaWxlZCAzCjMwMjogIHNzaCAtbyBCYXRjaE1vZGU9eWVzIC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1hY2NlcHQtbmV3IHJvb3RAIiRQVkUwMiIgImJhc2ggL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQucmVtb3RlLnNoIiB8IHNlZCAtRSAncy9bQS1aYS16MC05Ll8lKy1dK0BbQS1aYS16MC05Li1dKy88ZW1haWw+L2cnCjMwNjpzc2ggLW8gQmF0Y2hNb2RlPXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9YWNjZXB0LW5ldyByb290QCIkUFZFMDIiICJiYXNoIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLnJlbW90ZS5zaCIgPiAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IDI+L3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLmVycgozMDg6Y2F0IC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQKMzEwOlJFU1VMVD0kKHNlZCAtbiAncy9eUkVTVUxUPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IHRhaWwgLW4xKQozMTE6QUxSRUFEWT0kKHNlZCAtbiAncy9eQUxSRUFEWV9VUExPQURFRD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzEyOlBBUlRfQ09VTlQ9JChzZWQgLW4gJ3MvXlBBUlRfQ09VTlQ9Ly9wJyAvdG1wL2hvbWVsYWItbWFpbC1jbG91ZC1lZGdlLXZtLXVwbG9hZC1ydW4ub3V0IHwgaGVhZCAtbjEpCjMxMzpTSEFfTUFUQ0g9JChzZWQgLW4gJ3MvXlNIQV9NQVRDSD0vL3AnIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCBoZWFkIC1uMSkKMzE0OlJFTU9URV9CWVRFUz0kKHNlZCAtbiAncy9eUkVNT1RFX0JZVEVTPS8vcCcgL3RtcC9ob21lbGFiLW1haWwtY2xvdWQtZWRnZS12bS11cGxvYWQtcnVuLm91dCB8IGhlYWQgLW4xKQozMTU6UkVNT1RFX1JFVEVOVElPTl9NT0RFPSQoc2VkIC1uICJzL15SRVRFTlRJT05fTU9ERT0vL3AiIC90bXAvaG9tZWxhYi1tYWlsLWNsb3VkLWVkZ2Utdm0tdXBsb2FkLXJ1bi5vdXQgfCB0YWlsIC1uMSkKMzE4OiAgZWNobyAiU1RBVFVTPU9LIFRTPSRUUyBUWVBFPW1haWwtY2xvdWQtZWRnZS12bSBNT0RFPXJlY3VycmluZy1jaHVua2VkIFJFUVVFU1RfTU9ERT0kTU9ERSBSRVRFTlRJT05fTU9ERT0ke1JFTU9URV9SRVRFTlRJT05fTU9ERTotdW5rbm93bn0gUkVNT1RFPSRUQVJHRVRfUkVNT1RFIERFU1Q9JFRBUkdFVF9ESVIgQVJDSElWRT0kQkFTRU5BTUUgU0laRT0kU0laRSBTSEEyNTY9JFNIQSBQQVJUX1NJWkU9JFBBUlRfU0laRSBQQVJUUz0kUEFSVF9DT1VOVCBBTFJFQURZX1VQTE9BREVEPSRBTFJFQURZIERPV05MT0FEX1ZFUklGWT0kU0hBX01BVENIIFJFVEVOVElPTl9LRUVQPSRLRUVQIFNFQ1JFVF9QUklOVEVEPW5vIE5PVEVTPW5vbmUiID4gIiRIRUFMVEgiCjMyMjplY2hvICJTVEFUVVM9RVJST1IgVFM9JFRTIFRZUEU9bWFpbC1jbG91ZC1lZGdlLXZtIE1PREU9cmVjdXJyaW5nLWNodW5rZWQgUkVRVUVTVF9NT0RFPSRNT0RFIFJFVEVOVElPTl9NT0RFPSR7UkVNT1RFX1JFVEVOVElPTl9NT0RFOi11bmtub3dufSBSRU1PVEU9JFRBUkdFVF9SRU1PVEUgREVTVD0kVEFSR0VUX0RJUiBBUkNISVZFPSRCQVNFTkFNRSBTSVpFPSRTSVpFIFNIQTI1Nj0kU0hBIEFMUkVBRFlfVVBMT0FERUQ9JEFMUkVBRFkgU0VDUkVUX1BSSU5URUQ9bm8gTk9URVM9dXBsb2FkX2ZhaWxlZCIgPiAiJEhFQUxUSCI= +PIPE_42_SCORE=2 +PIPE_42_BASENAME=large264.py +PIPE_42_PATH_SHA256=763447e393c78143f6694409d88ac51ffe269e268597eda333c6d292559724ef +PIPE_42_FILE_SHA256=5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a +PIPE_42_SCHEDULE_TARGET_COUNT=0 +PIPE_42_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_42_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_42_VZDUMP_QEMU_COUNT=0 +PIPE_42_RCLONE_COUNT=2 +PIPE_42_CLOUD_QUORUM_COUNT=0 +PIPE_42_SEAL_WRITTEN_COUNT=0 +PIPE_42_PAYLOAD_PARTS_COUNT=0 +PIPE_42_TRANSPORT_COUNT=1 +PIPE_42_RESTORE_VALIDATION_COUNT=0 +PIPE_42_SCHEDULE_RESULT_COUNT=0 +PIPE_42_RELEVANT_LINE_COUNT=107 +PIPE_42_RELEVANT_B64=MToiIiIyNjRSMSBzdHJlYW1pbmcgY2xvdWQgYWRhcHRlciBhbmQgc3ludGhldGljIGJvdW5kYXJ5IHByb29mLgozOk5vIHdvcmsgb24gaW1wb3J0LiBObyBndWVzdC9iYWNrdXAgcHJvZHVjZXIgYW5kIG5vIGNsb3VkIGRlbGV0aW9uLiBFeGlzdGluZwo1OmFmdGVyIHR3byBjbG91ZCBzZWFscyBhbmQgYSBzZXBhcmF0ZWx5IGNsb3VkLWRpc2NvdmVyZWQgcmVzdG9yZSBoYXZlIGJlZW4gY2hlY2tlZC4KMTU6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE2OmltcG9ydCByZXN0b3JlMjYyIGFzIHIKMjM6ZGVmIHByb2Nlc3Nfc3RyZWFtKGFyZ3YsZW52LHNpemUsZGlnZXN0LGNvbnN1bWUsc2Vjb25kcyk6CjI1OiAgICB0Lm5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBhcmd2IGFuZCBzZWNvbmRzPjAsJ1NUUkVBTV9QUk9DRVNTX0FSR1VNRU5UUycpCjI3OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAozMTogICAgICAgIGZvciBmIGluIChwLnN0ZG91dCxwLnN0ZGVycik6b3Muc2V0X2Jsb2NraW5nKGYuZmlsZW5vKCksRmFsc2UpO3NlbC5yZWdpc3RlcihmLHNlbGVjdG9ycy5FVkVOVF9SRUFEKQo1NjpjbGFzcyBDbG91ZExhcmdlKHQuUmNsb25lSU8pOgo1OTogICAgICAgIHQubmVlZCh0eXBlKGFyZ3MpIGlzIGxpc3QgYW5kIGFyZ3MgYW5kIGFyZ3NbMF0gaW4gKCdhYm91dCcsJ2xzanNvbicsJ2NvcHl0bycsJ2NhdCcpLCdSQ0xPTkVfVkVSQl9GT1JCSURERU4nKQo2MDogICAgICAgIHQubmVlZCh0eXBlKGxpbWl0KSBpcyBpbnQgYW5kIDA8PWxpbWl0PD1jb3JlLk1BTklGRVNUX01BWF9CWVRFUysxLCdNRVRBREFUQV9CT1VORCcpCjYyOiAgICAgICAgdC5uZWVkKHNlY29uZHM+MCwnQ0xPVURfREVBRExJTkUnKTtzZWxmLmNhbGxzKz0xCjY2OiAgICBkZWYgcHV0KHNlbGYscmVtb3RlLG5hbWUscGF0aCk6CjY3OiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpCjY4OiAgICAgICAgaWYgbmFtZSBpbiAoJ21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbicpOgo2OTogICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5wdXQocmVtb3RlLG5hbWUscGF0aCkKNzA6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjcxOiAgICAgICAgdC5uZWVkKHBhcnQgaXMgbm90IE5vbmUsJ1BBUlRfTk9UX0lOX01BTklGRVNUJykKNzk6ICAgICAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9DT1BZX0ZBSUxFRCcpCjgwOiAgICBkZWYgcmVhZF9zdHJlYW0oc2VsZixyZW1vdGUsbmFtZSxzaXplLGRpZ2VzdCxjb25zdW1lKToKODE6ICAgICAgICBhZGRyZXNzPXNlbGYuYWRkcmVzcyhyZW1vdGUsbmFtZSkKODI6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjg0OiAgICAgICAgc2VsZi5jaGVjaygpO3NlY29uZHM9bWluKDM2MDAsc2VsZi5kZWFkbGluZS10aW1lLm1vbm90b25pYygpKTt0Lm5lZWQoc2Vjb25kcz4wLCdDTE9VRF9ERUFETElORScpCjkxOmNsYXNzIFJlYWRPbmx5TGFyZ2Uoci5SZWFkT25seUNsb3VkKToKOTM6ICAgIGRlZiByZWFkX3N0cmVhbShzZWxmLHJlbW90ZSxnZW5lcmF0aW9uLG5hbWUsc2l6ZSxkaWdlc3QsY29uc3VtZSk6Cjk2OiAgICAgICAgYWRkcmVzcz1zZWxmLmFkZHJlc3MocmVtb3RlLGdlbmVyYXRpb24sbmFtZSkKOTc6ICAgICAgICBzZWxmLmNoZWNrKCk7c2Vjb25kcz1taW4oMzYwMCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQoxMjA6ICAgIHJldHVybiB7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjEyNTpkZWYgdXBsb2FkKHNvdXJjZSx3b3JrLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoxMjY6ICAgICIiIlVwbG9hZCBhbmQgc2VhbDsgcmV0YWluIGFsbCBzb3VyY2UgYnl0ZXMgaGVyZS4gQ2xlYW51cCBpcyBhIGxhdGVyIGdhdGVkIG9wZXJhdGlvbi4iIiIKMTI4OiAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoxMzI6ICAgIHF1b3Rhcz17ZVsnYWNjb3VudF9pZCddOmNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKSBmb3IgZSBpbiBlbnRyaWVzfQoxMzM6ICAgIGFsbG9jYXRpb249Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxyZWNvcmRbJ3BheWxvYWRfYnl0ZXMnXSxyZXNlcnZlLGNsb2NrKCkpCjEzNDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlY29yZFsncGF5bG9hZF9ieXRlcyddLHJlY29yZFsncGF5bG9hZF9zaGEyNTYnXSxyZWNvcmRbJ3BhcnRzJ10sYWxsb2NhdGlvbikKMTM1OiAgICBtYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSk7Y2xvdWQuYmluZChtKQoxMzY6ICAgIHQuY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2NhdGlvbikpO3QuY3JlYXRlKHdvcmsvJ21hbmlmZXN0Lmpzb24nLG1iKQoxMzg6ICAgICAgICBndWFyZCgpO2Nsb3VkLmFic2VudChyZXBbJ2NyeXB0X3JlbW90ZSddKQoxNDE6ICAgICAgICBndWFyZCgpO3JlbW90ZT1yZXBbJ2NyeXB0X3JlbW90ZSddO3E9Y2xvdWQucXVvdGEocmVtb3RlKQoxNDI6ICAgICAgICB0Lm5lZWQoY29yZS5xdW90YV9yZWFzb24ocSxjbG9jaygpKSBpcyBOb25lIGFuZCBxWydmcmVlJ10+PWFsbG9jYXRpb25bJ3JlcXVpcmVkX2ZyZWVfYnl0ZXMnXSwnU0VMRUNURURfQUNDT1VOVF9DQVBBQ0lUWV9DSEFOR0VEJykKMTQ0OiAgICAgICAgZm9yIHBhcnQgaW4gbVsncGFydHMnXTpjbG91ZC5wdXQocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0ZGlyL3BhcnRbJ25hbWUnXSkKMTQ1OiAgICAgICAgY2xvdWQucHV0KHJlbW90ZSwnbWFuaWZlc3QuanNvbicsd29yay8nbWFuaWZlc3QuanNvbicpCjE0NjogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVtb3RlLCdtYW5pZmVzdC5qc29uJyxsZW4obWIpKzEpPT1tYiwnTUFOSUZFU1RfUkVBREJBQ0tfTUlTTUFUQ0gnKQoxNDk6ICAgICAgICAgICAgb2JzZXJ2ZWQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0WydzaXplJ10scGFydFsnc2hhMjU2J10sd2hvbGUudXBkYXRlKQoxNTM6ICAgIHNlYWw9eydzY2hlbWFfdmVyc2lvbic6Miwnc3RhdGUnOidTRUFMRUQnLCdnZW5lcmF0aW9uJzpnZW5lcmF0aW9uLCdsb2dpY2FsX2lkJzpsb2dpY2FsX2lkLAoxNTQ6ICAgICAgICAgICdtYW5pZmVzdF9zaGEyNTYnOm1oLCdyZXBsaWNhcyc6bVsncmVwbGljYXMnXSwncmVjZWlwdHMnOnJlY2VpcHRzLAoxNTU6ICAgICAgICAgICdhY2NlcHRhbmNlJzonSURFTlRJQ0FMX1NFQUxfUkVRVUlSRURfT05fQk9USF9OQU1FRF9BQ0NPVU5UUyd9CjE1NjogICAgc2I9Y29yZS5jYW5vbmljYWxfYnl0ZXMoc2VhbCk7dC5uZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoxNTc6ICAgIHIudmFsaWRhdGVfc2VhbChzYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk7dC5jcmVhdGUod29yay8nU0VBTEVELmpzb24nLHNiKQoxNTk6ICAgICAgICBndWFyZCgpO2Nsb3VkLnB1dChyZXBbJ2NyeXB0X3JlbW90ZSddLCdTRUFMRUQuanNvbicsd29yay8nU0VBTEVELmpzb24nKQoxNjE6ICAgICAgICB0Lm5lZWQoY2xvdWQuZ2V0KHJlcFsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTEVEX1FVT1JVTV9SRVFVSVJFRCcpCjE2MzogICAgdC5jcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnQuc2hhKHNiKX0pKQoxNjQ6ICAgIHJldHVybiB7J3NlYWxlZCc6VHJ1ZSwnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdwYXJ0c19yZWNvcmQnOnJlY29yZCwnc291cmNlJzpzdHIoc291cmNlKSwnd29yayc6c3RyKHdvcmspfQoxNjc6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9oYXNoKToKMTY4OiAgICAiIiJGaW5kIHBsYWNlbWVudCBmcm9tIGFsbCBjbG91ZCBjYXRhbG9ncywgdXNpbmcgb25seSBhbiBleHRlcm5hbCBtYW5pZmVzdCBkaWdlc3QuIiIiCjE3MTogICAgbGlzdGVkPXt9O2dlbmVyYXRpb25zPXNldCgpCjE3MzogICAgICAgIGdzPWNsb3VkLmxpc3RfZ2VuZXJhdGlvbnMoZVsnY3J5cHRfcmVtb3RlJ10pCjE3NDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1yLk1BWF9HRU5FUkFUSU9OUyBhbmQgYWxsKGNvcmUudmFsaWRfbmFtZShnKSBmb3IgZyBpbiBncyksJ0dFTkVSQVRJT05fTElTVF9JTlZBTElEJykKMTc1OiAgICAgICAgdC5uZWVkKGxlbihncyk9PWxlbihzZXQoZ3MpKSwnR0VORVJBVElPTl9MSVNUX0RVUExJQ0FURScpO2xpc3RlZFtlWydjcnlwdF9yZW1vdGUnXV09c2V0KGdzKTtnZW5lcmF0aW9ucy51cGRhdGUoZ3MpCjE3NjogICAgdC5uZWVkKGxlbihnZW5lcmF0aW9ucyk8PXIuTUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjE3ODogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxODE6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjE4MjogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjE4MzogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTg1OiAgICAgICAgICAgIHNlYWw9ci52YWxpZGF0ZV9zZWFsKGIsZW50cmllcyxnZW4sbG9naWNhbF9pZCkKMTg2OiAgICAgICAgICAgIHQubmVlZChyZW1vdGUgaW4ge3hbJ2NyeXB0X3JlbW90ZSddIGZvciB4IGluIHNlYWxbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKTtzZWVuW3JlbW90ZV09KGIsc2VhbCkKMTg4OiAgICAgICAgc2Isc2VhbD1uZXh0KGl0ZXIoc2Vlbi52YWx1ZXMoKSkpCjE4OTogICAgICAgIGlmIHNlYWxbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9oYXNoOmNvbnRpbnVlCjE5MDogICAgICAgIG5hbWVkPXt4WydjcnlwdF9yZW1vdGUnXSBmb3IgeCBpbiBzZWFsWydyZXBsaWNhcyddfQoxOTE6ICAgICAgICB0Lm5lZWQoc2V0KHNlZW4pPT1uYW1lZCBhbmQgYWxsKGI9PXNiIGZvciBiLF8gaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxOTM6ICAgICAgICBmb3IgcmVwIGluIHNlYWxbJ3JlcGxpY2FzJ106CjE5NDogICAgICAgICAgICBiPWNsb3VkLmdldChyZXBbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTk1OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfaGFzaCwnTUFOSUZFU1RfRElHRVNUX01JU01BVENIJykKMTk2OiAgICAgICAgICAgIG09ci5zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjE5NzogICAgICAgICAgICB0Lm5lZWQobVsnZ2VuZXJhdGlvbiddPT1nZW4gYW5kIG1bJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCBhbmQgbVsncmVwbGljYXMnXT09c2VhbFsncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTk4OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxzZWFsWydyZWNlaXB0cyddKTtibG9icy5hcHBlbmQoYikKMTk5OiAgICAgICAgdC5uZWVkKGxlbihibG9icyk9PTIgYW5kIGJsb2JzWzBdPT1ibG9ic1sxXSwnVFdPX01BTklGRVNUX0NPUElFU19SRVFVSVJFRCcpCjIwMDogICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKHsnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdhY2NvdW50c19zY2FubmVkJzpsZW4obGlzdGVkKX0pCjIwMTogICAgdC5uZWVkKGxlbihjYW5kaWRhdGVzKT09MSwnRVhBQ1RMWV9PTkVfQUNDRVBURURfR0VORVJBVElPTl9SRVFVSVJFRCcpCjIwNTpkZWYgZnJlc2hfc2VhbHMoY2xvdWQsZGlzY292ZXJ5KToKMjA2OiAgICBtPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pO3NiPWRpc2NvdmVyeVsnc2VhbF9ieXRlcyddCjIwODogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTF9DSEFOR0VEX0RVUklOR19SRVNUT1JFJykKMjExOmRlZiBkb3dubG9hZF9wYXJ0KGNsb3VkLHJlcCxtLHBhcnQscGF0aCx3aG9sZSk6CjIxNTogICAgICAgIGRlZiBjb25zdW1lKGJsb2NrKTp3aG9sZS51cGRhdGUoYmxvY2spO3Mud3JpdGVfYWxsKGZkLGJsb2NrKQoyMTY6ICAgICAgICByZXN1bHQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10scGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSxwYXJ0WydzaGEyNTYnXSxjb25zdW1lKQoyMjU6ZGVmIHJlc3RvcmUod29yayxjbG91ZCxkaXNjb3ZlcnkpOgoyMjc6ICAgIHdvcms9UGF0aCh3b3JrKTttPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjIzMjogICAgICAgICAgICBpZiBpPT0wOm93bmVkW3BhcnRbJ25hbWUnXV09ZG93bmxvYWRfcGFydChjbG91ZCxyZXAsbSxwYXJ0LHBhcnRkaXIvcGFydFsnbmFtZSddLHdob2xlKQoyMzQ6ICAgICAgICAgICAgICAgIGdvdD1jbG91ZC5yZWFkX3N0cmVhbShyZXBbJ2NyeXB0X3JlbW90ZSddLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddLHBhcnRbJ3NoYTI1NiddLHdob2xlLnVwZGF0ZSkKMjM4OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHJlY2VpcHRzKTtmcmVzaF9zZWFscyhjbG91ZCxkaXNjb3ZlcnkpCjI0MTogICAgcmVzdWx0PXMucmVhc3NlbWJsZShwYXJ0ZGlyLHJlYyx3b3JrLydyZXN0b3JlZC5iaW4nKQoyNDI6ICAgIGZyZXNoX3NlYWxzKGNsb3VkLGRpc2NvdmVyeSkKMjQzOiAgICB0LmNyZWF0ZSh3b3JrLydSRVNUT1JFX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksJ3ZlcmlmaWVkX3JlcGxpY2FzJzoyLAoyNDU6ICAgIHJldHVybiB7J3ZlcmlmaWVkX3JlcGxpY2FzJzoyLCdtYW5pZmVzdF9zaGEyNTYnOmNvcmUubWFuaWZlc3RfaGFzaChtKSwnZGlzY292ZXJ5JzpkaXNjb3ZlcnksCjI0OTpkZWYgY2xlYW51cCh1cGxvYWRfcmVzdWx0LHJlc3RvcmVfcmVzdWx0LGNsb3VkLGd1YXJkKToKMjUwOiAgICAiIiJObyB1bmxpbmsgdW50aWwgZXZlcnkgZXhwZWN0ZWQgZmlsZSBhbmQgYm90aCByZW1vdGUgc2VhbHMgaGF2ZSBwYXNzZWQgdmVyaWZpY2F0aW9uLiIiIgoyNTE6ICAgIHQubmVlZCh0eXBlKHVwbG9hZF9yZXN1bHQpIGlzIGRpY3QgYW5kIHVwbG9hZF9yZXN1bHQuZ2V0KCdzZWFsZWQnKSBpcyBUcnVlLCdVUExPQURfUVVPUlVNX1JFUVVJUkVEJykKMjUyOiAgICB0Lm5lZWQodHlwZShyZXN0b3JlX3Jlc3VsdCkgaXMgZGljdCBhbmQgcmVzdG9yZV9yZXN1bHQuZ2V0KCd2ZXJpZmllZF9yZXBsaWNhcycpPT0yLCdSRVNUT1JFX1JFUVVJUkVEJykKMjUzOiAgICBtPXVwbG9hZF9yZXN1bHRbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSkKMjU0OiAgICB0Lm5lZWQocmVzdG9yZV9yZXN1bHRbJ21hbmlmZXN0X3NoYTI1NiddPT1taCwnUkVTVE9SRV9HRU5FUkFUSU9OX01JU01BVENIJykKMjU1OiAgICB0Lm5lZWQoY29yZS5jYW5vbmljYWxfYnl0ZXMocmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddWydtYW5pZmVzdCddKT09Y29yZS5jYW5vbmljYWxfYnl0ZXMobSkgYW5kCjI1NjogICAgICAgICAgIHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXVsnc2VhbF9ieXRlcyddPT11cGxvYWRfcmVzdWx0WydzZWFsX2J5dGVzJ10sJ1JFU1RPUkVfUVVPUlVNX01JU01BVENIJykKMjU3OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHIuc3RyaWN0X2pzb24odXBsb2FkX3Jlc3VsdFsnc2VhbF9ieXRlcyddLGNvcmUuU0VBTF9NQVhfQllURVMpWydyZWNlaXB0cyddKQoyNTg6ICAgIGd1YXJkKCk7ZnJlc2hfc2VhbHMoY2xvdWQscmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddKQoyNjE6ICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3RvcmVfcmVzdWx0WydwYXJ0c19yZWNvcmQnXSxQYXRoKHJlc3RvcmVfcmVzdWx0Wyd3b3JrJ10pLydwYXJ0cycpKToKMjY1OiAgICBpdGVtcy5hcHBlbmQoKFBhdGgocmVzdG9yZV9yZXN1bHRbJ3dvcmsnXSkvJ3Jlc3RvcmVkLmJpbicsdHVwbGUocmVzdG9yZV9yZXN1bHRbJ3JlYXNzZW1ibGVkJ11bJ2lkZW50aXR5J10pLG1bJ3BheWxvYWRfYnl0ZXMnXSxtWydwYXlsb2FkX3NoYTI1NiddKSkKMjY5OiAgICBndWFyZCgpO2ZyZXNoX3NlYWxzKGNsb3VkLHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXSk= +PIPE_43_SCORE=2 +PIPE_43_BASENAME=restore262.py +PIPE_43_PATH_SHA256=d56e7140093641df97bc784629090b05892c866fb2134ff361e524d461438765 +PIPE_43_FILE_SHA256=56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1 +PIPE_43_SCHEDULE_TARGET_COUNT=0 +PIPE_43_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_43_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_43_VZDUMP_QEMU_COUNT=0 +PIPE_43_RCLONE_COUNT=1 +PIPE_43_CLOUD_QUORUM_COUNT=0 +PIPE_43_SEAL_WRITTEN_COUNT=0 +PIPE_43_PAYLOAD_PARTS_COUNT=0 +PIPE_43_TRANSPORT_COUNT=1 +PIPE_43_RESTORE_VALIDATION_COUNT=0 +PIPE_43_SCHEDULE_RESULT_COUNT=0 +PIPE_43_RELEVANT_LINE_COUNT=89 +PIPE_43_RELEVANT_B64=MToiIiIyNjJSMSBib3VuZGVkIGNsb3VkLWRpc2NvdmVyZWQgcmVjb3ZlcnkuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KMzpDbG91ZCBhY2Nlc3MgaXMgc3RyaWN0bHkgbHNqc29uL2NhdC4gTm8gc291cmNlLWxvY2FsIHdvcmtzcGFjZS9tYW5pZmVzdC9yZWNlaXB0CjQ6aXMgcmVhZC4gVGhlIGV4dGVybmFsIGFjY2VwdGVkIG1hbmlmZXN0IGRpZ2VzdCBpcyBhIHRydXN0IGFuY2hvciwgbm90IHBsYWNlbWVudC4KMTY6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE5OiAgICAgICAgICAgICAgICAgICAgICAgJ3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnLCdldGMvc3lzdGVtZC9zeXN0ZW0vaG9tZWxhYi1jb250cm9sLWJhY2t1cC5zZXJ2aWNlJykpCjIxOk1BWF9HRU5FUkFUSU9OUz02NAoyMjpTRUFMX0tFWVM9eydzY2hlbWFfdmVyc2lvbicsJ3N0YXRlJywnZ2VuZXJhdGlvbicsJ2xvZ2ljYWxfaWQnLCdtYW5pZmVzdF9zaGEyNTYnLCdyZXBsaWNhcycsJ3JlY2VpcHRzJywnYWNjZXB0YW5jZSd9CjM2OmNsYXNzIFJlYWRPbmx5Q2xvdWQ6CjQxOiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5ndWFyZD1ndWFyZDtzZWxmLndvcms9UGF0aCh3b3JrKQo1MDogICAgICAgIHQubmVlZCh0LnNoYSh0LnJlYWRfc2VjdXJlKHNlbGYuZXhlY3V0YWJsZSwxMjgqMTAyNCoxMDI0KVswXSk9PXNlbGYuZXhlX3NoYSwnUkNMT05FX0JJTkFSWV9DSEFOR0VEJykKNTE6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLGdlbmVyYXRpb249Tm9uZSxuYW1lPU5vbmUpOgo1MjogICAgICAgIHQubmVlZChyZW1vdGUgaW4gc2VsZi5jcnlwdCwnQ1JZUFRfUkVNT1RFX1JFUVVJUkVEJykKNTM6ICAgICAgICBwPXJlbW90ZSsnOmJhY2t1cC12Mi90YXJnZXRzLycrc2VsZi5sb2dpY2FsX2lkKycvZ2VuZXJhdGlvbnMnCjU0OiAgICAgICAgaWYgZ2VuZXJhdGlvbiBpcyBOb25lOgo1NTogICAgICAgICAgICB0Lm5lZWQobmFtZSBpcyBOb25lLCdPQkpFQ1RfV0lUSE9VVF9HRU5FUkFUSU9OJyk7cmV0dXJuIHAKNTY6ICAgICAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pLCdHRU5FUkFUSU9OX05BTUVfSU5WQUxJRCcpO3ArPScvJytnZW5lcmF0aW9uCjU4OiAgICAgICAgICAgIHQubmVlZChuYW1lIGluICgnU0VBTEVELmpzb24nLCdtYW5pZmVzdC5qc29uJykgb3IgKHR5cGUobmFtZSkgaXMgc3RyIGFuZCByZS5mdWxsbWF0Y2gocidwYXJ0LVxkezZ9XC5iaW4nLG5hbWUpKSwKNjI6ICAgICAgICB0Lm5lZWQodHlwZShhcmdzKSBpcyBsaXN0IGFuZCBhcmdzIGFuZCBhcmdzWzBdIGluICgnbHNqc29uJywnY2F0JyksJ1JFQURfT05MWV9DTE9VRF9WRVJCX1JFUVVJUkVEJykKNjM6ICAgICAgICB0Lm5lZWQodHlwZShsaW1pdCkgaXMgaW50IGFuZCAwPGxpbWl0PD10Lk1BWF9QQVlMT0FEX0JZVEVTKzEsJ0NMT1VEX1JFQURfQk9VTkQnKQo2NDogICAgICAgIHNlbGYuY2hlY2soKTtzZWNvbmRzPW1pbig5MCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQo2NTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLnNuYXBzaG90KSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsJy0tc3RhdHMnLCcwJywKNjc6ICAgICAgICBzZWxmLmNhbGxzKz0xO3JjLG91dD10LmJvdW5kZWRfcHJvY2Vzcyhhcmd2LHNlbGYuZW52LGxpbWl0LHNlY29uZHMpO3NlbGYuY2hlY2soKTtyZXR1cm4gcmMsb3V0CjY4OiAgICBkZWYgbGlzdF9nZW5lcmF0aW9ucyhzZWxmLHJlbW90ZSk6CjY5OiAgICAgICAgcmMsb3V0PXNlbGYuY2FsbChbJ2xzanNvbicsc2VsZi5hZGRyZXNzKHJlbW90ZSksJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sMTA0ODU3NikKNzE6ICAgICAgICB0Lm5lZWQocmM9PTAsJ0NMT1VEX0xJU1RfRkFJTEVEJykKNzM6ICAgICAgICB0Lm5lZWQodHlwZShyb3dzKSBpcyBsaXN0IGFuZCBsZW4ocm93cyk8PU1BWF9HRU5FUkFUSU9OUywnQ0xPVURfTElTVF9CT1VORCcpCjc2OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGl0ZW0pIGlzIGRpY3QgYW5kIGl0ZW0uZ2V0KCdJc0RpcicpIGlzIFRydWUsJ0NMT1VEX0xJU1RfU0NIRU1BJykKNzc6ICAgICAgICAgICAgbmFtZT1pdGVtLmdldCgnTmFtZScpO3QubmVlZChjb3JlLnZhbGlkX25hbWUobmFtZSkgYW5kIGl0ZW0uZ2V0KCdQYXRoJyk9PW5hbWUsJ0NMT1VEX0xJU1RfTkFNRScpCjc4OiAgICAgICAgICAgIHQubmVlZChuYW1lIG5vdCBpbiBuYW1lcywnQ0xPVURfTElTVF9EVVBMSUNBVEUnKTtuYW1lcy5hcHBlbmQobmFtZSkKODA6ICAgIGRlZiBnZXQoc2VsZixyZW1vdGUsZ2VuZXJhdGlvbixuYW1lLGxpbWl0LG1pc3Npbmdfb2s9RmFsc2UpOgo4MTogICAgICAgIHJjLG91dD1zZWxmLmNhbGwoWydjYXQnLHNlbGYuYWRkcmVzcyhyZW1vdGUsZ2VuZXJhdGlvbixuYW1lKSwnLS1jb3VudCcsc3RyKGxpbWl0KV0sbGltaXQpCjgzOiAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9SRUFEX0ZBSUxFRCcpO3JldHVybiBvdXQKODY6ZGVmIHZhbGlkYXRlX3NlYWwoYmxvYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk6Cjg3OiAgICBzPXN0cmljdF9qc29uKGJsb2IsY29yZS5TRUFMX01BWF9CWVRFUykKODg6ICAgIHQubmVlZCh0eXBlKHMpIGlzIGRpY3QgYW5kIHNldChzKT09U0VBTF9LRVlTLCdTRUFMX1NDSEVNQScpCjg5OiAgICB0Lm5lZWQodHlwZShzWydzY2hlbWFfdmVyc2lvbiddKSBpcyBpbnQgYW5kIHNbJ3NjaGVtYV92ZXJzaW9uJ109PTIgYW5kIHNbJ3N0YXRlJ109PSdTRUFMRUQnLCdTRUFMX1NUQVRFJykKOTA6ICAgIHQubmVlZChzWydnZW5lcmF0aW9uJ109PWdlbmVyYXRpb24gYW5kIHNbJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCwnU0VBTF9JREVOVElUWScpCjkxOiAgICB0Lm5lZWQoY29yZS52YWxpZF9oYXNoKHNbJ21hbmlmZXN0X3NoYTI1NiddKSwnU0VBTF9NQU5JRkVTVF9IQVNIJykKOTI6ICAgIHQubmVlZChzWydhY2NlcHRhbmNlJ109PSdJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJywnU0VBTF9BQ0NFUFRBTkNFJykKOTM6ICAgIHJlcGxpY2FzPXNbJ3JlcGxpY2FzJ107dC5uZWVkKHR5cGUocmVwbGljYXMpIGlzIGxpc3QgYW5kIGxlbihyZXBsaWNhcyk9PTIsJ1NFQUxfUVVPUlVNJykKOTQ6ICAgIGtub3duPXtlWydhY2NvdW50X2lkJ106ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc30KOTc6ICAgICAgICAgICAgICAgYW5kIGNvcmUudmFsaWRfbmFtZShyZXBbJ2NyeXB0X3JlbW90ZSddKSBhbmQga25vd24uZ2V0KHJlcFsnYWNjb3VudF9pZCddKT09cmVwWydjcnlwdF9yZW1vdGUnXSwnU0VBTF9DT05GSUdfTUFQUElORycpCjk4OiAgICB0Lm5lZWQobGVuKHtwWydhY2NvdW50X2lkJ10gZm9yIHAgaW4gcmVwbGljYXN9KT09MiBhbmQgbGVuKHtwWydjcnlwdF9yZW1vdGUnXSBmb3IgcCBpbiByZXBsaWNhc30pPT0yLCdTRUFMX0RJU1RJTkNUX0FDQ09VTlRTJykKOTk6ICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhzKT09YmxvYiwnU0VBTF9DQU5PTklDQUxfQllURVMnKQoxMDM6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9tYW5pZmVzdF9zaGEpOgoxMDQ6ICAgICIiIkVudW1lcmF0ZSBhbGwgYWNjb3VudHM7IHJlcXVpcmUgYm90aCBuYW1lZCBzZWFscywgbm90IGEgbG9jYWwgc2VhbCByZWNlaXB0LiIiIgoxMDY6ICAgIHQubmVlZChjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCkgYW5kIGNvcmUudmFsaWRfaGFzaChleHBlY3RlZF9tYW5pZmVzdF9zaGEpLCdESVNDT1ZFUllfSU5QVVQnKQoxMDc6ICAgIGxpc3RlZD17fTtnZW5lcmF0aW9ucz1zZXQoKQoxMDk6ICAgICAgICByZW1vdGU9ZVsnY3J5cHRfcmVtb3RlJ107Z3M9Y2xvdWQubGlzdF9nZW5lcmF0aW9ucyhyZW1vdGUpCjExMDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1NQVhfR0VORVJBVElPTlMgYW5kIGFsbChjb3JlLnZhbGlkX25hbWUoZykgZm9yIGcgaW4gZ3MpLCdHRU5FUkFUSU9OX0xJU1RfSU5WQUxJRCcpCjExMTogICAgICAgIHQubmVlZChsZW4oc2V0KGdzKSk9PWxlbihncyksJ0dFTkVSQVRJT05fTElTVF9EVVBMSUNBVEUnKQoxMTI6ICAgICAgICBsaXN0ZWRbcmVtb3RlXT1zZXQoZ3MpO2dlbmVyYXRpb25zLnVwZGF0ZShncykKMTEzOiAgICB0Lm5lZWQobGVuKGdlbmVyYXRpb25zKTw9TUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjExNTogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxMTg6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjExOTogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjEyMDogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTIyOiAgICAgICAgICAgIHM9dmFsaWRhdGVfc2VhbChiLGVudHJpZXMsZ2VuLGxvZ2ljYWxfaWQpCjEyMzogICAgICAgICAgICB0Lm5lZWQocmVtb3RlIGluIHtyclsnY3J5cHRfcmVtb3RlJ10gZm9yIHJyIGluIHNbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKQoxMjQ6ICAgICAgICAgICAgc2VlbltyZW1vdGVdPShiLHMpCjEyNzogICAgICAgIGlmIGZpcnN0X3NbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9tYW5pZmVzdF9zaGE6Y29udGludWUKMTI4OiAgICAgICAgbmFtZWQ9e3JyWydjcnlwdF9yZW1vdGUnXSBmb3IgcnIgaW4gZmlyc3Rfc1sncmVwbGljYXMnXX0KMTI5OiAgICAgICAgdC5uZWVkKHNldChzZWVuKT09bmFtZWQgYW5kIGFsbChiPT1maXJzdF9iIGZvciBiLHMgaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxMzA6ICAgICAgICBtYW5pZmVzdF9ibG9icz1bXQoxMzI6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocnJbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTMzOiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfbWFuaWZlc3Rfc2hhLCdNQU5JRkVTVF9ESUdFU1RfTUlTTUFUQ0gnKQoxMzQ6ICAgICAgICAgICAgbT1zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjEzNTogICAgICAgICAgICB0Lm5lZWQobVsnbG9naWNhbF9pZCddPT1sb2dpY2FsX2lkIGFuZCBtWydnZW5lcmF0aW9uJ109PWdlbiBhbmQgbVsncmVwbGljYXMnXT09Zmlyc3Rfc1sncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTM3OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxmaXJzdF9zWydyZWNlaXB0cyddKQoxMzg6ICAgICAgICAgICAgbWFuaWZlc3RfYmxvYnMuYXBwZW5kKGIpCjEzOTogICAgICAgIHQubmVlZChsZW4obWFuaWZlc3RfYmxvYnMpPT0yIGFuZCBtYW5pZmVzdF9ibG9ic1swXT09bWFuaWZlc3RfYmxvYnNbMV0sJ01BTklGRVNUX1RXT19DT1BJRVMnKQoxNDA6ICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCh7J21hbmlmZXN0JzptLCdtYW5pZmVzdF9ieXRlcyc6bWFuaWZlc3RfYmxvYnNbMF0sJ3NlYWwnOmZpcnN0X3MsJ3NlYWxfYnl0ZXMnOmZpcnN0X2IsCjE0MTogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNjb3VudHNfc2Nhbm5lZCc6bGVuKGxpc3RlZCksJ2dlbmVyYXRpb25zX2ZvdW5kJzpsZW4oZ2VuZXJhdGlvbnMpfSkKMTQyOiAgICB0Lm5lZWQobGVuKGNhbmRpZGF0ZXMpPT0xLCdFWEFDVExZX09ORV9BQ0NFUFRFRF9HRU5FUkFUSU9OX1JFUVVJUkVEJykKMTQ2OmRlZiB2ZXJpZnlfZG93bmxvYWRzKGNsb3VkLGRpc2NvdmVyeSk6CjE0NzogICAgbT1kaXNjb3ZlcnlbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKQoxNTE6ICAgICAgICByZW1vdGU9cmVwWydjcnlwdF9yZW1vdGUnXTtjaHVua3M9W107cGFydHM9W107ZnVsbD1oYXNobGliLnNoYTI1NigpO3NpemU9MAoxNTM6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocmVtb3RlLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddKzEpCjE2MDogICAgICAgIHJlY2VpcHRzLmFwcGVuZCh7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjE2MzogICAgIyBGcmVzaCBzZWFsIHJlYWRiYWNrIGFmdGVyIHRoZSBwYXlsb2FkOiBuZXZlciB0cnVzdCBvbmx5IHRoZSBpbml0aWFsIGxpc3RpbmcuCjE2NTogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oZGlzY292ZXJ5WydzZWFsX2J5dGVzJ10pKzEpPT1kaXNjb3ZlcnlbJ3NlYWxfYnl0ZXMnXSwKMTY2OiAgICAgICAgICAgICAgICdTRUFMX0NIQU5HRURfRFVSSU5HX1JFU1RPUkUnKQoyMTU6ZGVmIHJlc3RvcmVfZmlsZXMod29yayxmaWxlcyk6CjIxNjogICAgdC5uZWVkKHR5cGUoZmlsZXMpIGlzIGRpY3QgYW5kIHNldChmaWxlcyk9PUFMTF9OQU1FUyBhbmQgYWxsKHR5cGUoYikgaXMgYnl0ZXMgZm9yIGIgaW4gZmlsZXMudmFsdWVzKCkpLCdSRVNUT1JFX0ZJTEVTX1dISVRFTElTVCcpCjIxNzogICAgcm9vdD1QYXRoKHdvcmspLydyZXN0b3JlZCc7dC5tYWtlX2Rpcihyb290LGV4Y2x1c2l2ZT1UcnVlKQoyMjM6ICAgICAgICB0Lm5lZWQoZ290PT1iIGFuZCBmb3VuZD09aWRlbnRpdHksJ1JFU1RPUkVEX0ZJTEVfUkVBREJBQ0tfTUlTTUFUQ0gnKQoyMjg6ZGVmIGNsZWFudXBfcmVzdG9yZWQod29yayxyZWNvcmRzKToKMjI5OiAgICByb290PVBhdGgod29yaykvJ3Jlc3RvcmVkJwoyNDI6ICAgICAgICB0Lm5lZWQoaWRlbnRpdHk9PXJlY29yZHNbbmFtZV1bJ2lkZW50aXR5J10gYW5kIHQuc2hhKGIpPT1yZWNvcmRzW25hbWVdWydzaGEyNTYnXSwnUkVTVE9SRV9DTEVBTlVQX0lERU5USVRZJyk= +PIPE_44_SCORE=2 +PIPE_44_BASENAME=stream263.py +PIPE_44_PATH_SHA256=b23d692699b7d496f11a5e695304843aaa576cbbfecf022f6d5dc6867d67830a +PIPE_44_FILE_SHA256=a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16 +PIPE_44_SCHEDULE_TARGET_COUNT=0 +PIPE_44_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_44_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_44_VZDUMP_QEMU_COUNT=0 +PIPE_44_RCLONE_COUNT=1 +PIPE_44_CLOUD_QUORUM_COUNT=0 +PIPE_44_SEAL_WRITTEN_COUNT=0 +PIPE_44_PAYLOAD_PARTS_COUNT=0 +PIPE_44_TRANSPORT_COUNT=1 +PIPE_44_RESTORE_VALIDATION_COUNT=0 +PIPE_44_SCHEDULE_RESULT_COUNT=0 +PIPE_44_RELEVANT_LINE_COUNT=9 +PIPE_44_RELEVANT_B64=MToiIiJCYWNrdXAgVjIgYm91bmRlZC1tZW1vcnkgbG9jYWwgcGF5bG9hZCBwcmltaXRpdmVzLCBzdGFnZSAyNjNSMS4KMzpObyBleGVjdXRhYmxlIGVudHJ5IHBvaW50LCBuZXR3b3JrLCByY2xvbmUsIGJhY2t1cCBleGVjdXRpb24sIHNlYWxpbmcgb3IgZGVsZXRpb24uCjU6cGFydGlhbCBvdXRwdXQgaXMgcmV0YWluZWQuIFRoaXMgbW9kdWxlIGlzIE5PVCBhIGZ1bGwgaG9zdCBiYWNrdXAvcmVzdG9yZSBlbmdpbmUuCjEzOmltcG9ydCB0cmFuc3BvcnQyNjEgYXMgdAozMTogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQo1MDogICAgZGVmIGZlZWQoc2VsZixibG9jayk6CjUyOiAgICAgICAgbmVlZCh0eXBlKGJsb2NrKSBpcyBieXRlcyBhbmQgbGVuKGJsb2NrKTw9Q0hVTktfQllURVMsJ1NJTktfQ0hVTktfQk9VTkQnKQo1MzogICAgICAgIG5lZWQoc2VsZi5jb3VudCtsZW4oYmxvY2spPD1zZWxmLnNpemUsJ1NUUkVBTV9PVkVSU0laRScpCjU0OiAgICAgICAgc2VsZi5oLnVwZGF0ZShibG9jayk7c2VsZi5jb3VudCs9bGVuKGJsb2NrKQ== +PIPE_45_SCORE=2 +PIPE_45_BASENAME=transport261.py +PIPE_45_PATH_SHA256=ea601b982d11723f8b74940d41f5bbfd5186b09baeb79f17a0936b4212479939 +PIPE_45_FILE_SHA256=b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688 +PIPE_45_SCHEDULE_TARGET_COUNT=0 +PIPE_45_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_45_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_45_VZDUMP_QEMU_COUNT=0 +PIPE_45_RCLONE_COUNT=3 +PIPE_45_CLOUD_QUORUM_COUNT=0 +PIPE_45_SEAL_WRITTEN_COUNT=0 +PIPE_45_PAYLOAD_PARTS_COUNT=0 +PIPE_45_TRANSPORT_COUNT=1 +PIPE_45_RESTORE_VALIDATION_COUNT=0 +PIPE_45_SCHEDULE_RESULT_COUNT=0 +PIPE_45_RELEVANT_LINE_COUNT=69 +PIPE_45_RELEVANT_B64=MToiIiJCb3VuZGVkIEJhY2t1cCBWMiB0cmFuc3BvcnQgMjYxUjEuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KNDpjb250cm9sLWZpbGUgYmFja3VwLCBOT1QgYSBjb21wbGV0ZSBub2RlIGJhY2t1cCBvciBpbmRlcGVuZGVudCByZXN0b3JlIGRyaWxsLgo1NzogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQoxMDk6ICAgIHA9UGF0aChwYXRoKTtkYXRhLGZvdW5kPXJlYWRfc2VjdXJlKHAsTUFYX1BBWUxPQURfQllURVMrY29yZS5NQU5JRkVTVF9NQVhfQllURVMpCjE0NjpkZWYgYm91bmRlZF9wcm9jZXNzKGFyZ3YsZW52LGxpbWl0LHNlY29uZHMpOgoxNDg6ICAgIG5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBzZWNvbmRzPjAgYW5kIDA8PWxpbWl0PD1NQVhfUEFZTE9BRF9CWVRFUysxLCdQUk9DRVNTX0xJTUlUJykKMTQ5OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAoxNTM6ICAgICAgICBmb3IgZiBpbiAocC5zdGRvdXQscC5zdGRlcnIpOm9zLnNldF9ibG9ja2luZyhmLmZpbGVubygpLEZhbHNlKTtzZWwucmVnaXN0ZXIoZixzZWxlY3RvcnMuRVZFTlRfUkVBRCkKMTcxOmNsYXNzIFJjbG9uZUlPOgoxNzI6ICAgICIiIkNyeXB0LW9ubHkgbmFtZXNwYWNlLWNvbmZpbmVkIGFkYXB0ZXIuIFNuYXBzaG90IHRva2VuIHJlZnJlc2ggbmV2ZXIgdGFyZ2V0cyBsaXZlIGNvbmZpZy4iIiIKMTc2OiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5leHBlY3RlZF9iaW5kaW5nPWV4cGVjdGVkX2JpbmRpbmcKMTc4OiAgICAgICAgc2VsZi5jYWxscz0wO3NlbGYud3JpdGVzX2F0dGVtcHRlZD0wO3NlbGYubWFuaWZlc3Q9Tm9uZQoxODU6ICAgICAgICBuZWVkKHNoYShyZWFkX3NlY3VyZShzZWxmLmV4ZWN1dGFibGUsMTI4KjEwMjQqMTAyNClbMF0pPT1zZWxmLmV4ZV9zaGEsJ1JDTE9ORV9CSU5BUllfQ0hBTkdFRCcpCjE4NzogICAgICAgIG5lZWQoYXJnc1swXSBpbiAoJ2Fib3V0JywnbHNqc29uJywnY29weXRvJywnY2F0JyksJ1JDTE9ORV9WRVJCX0ZPUkJJRERFTicpCjE4OTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLmNvbmZpZ19wYXRoKSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsCjE5NDogICAgICAgIHJjLG91dD1ib3VuZGVkX3Byb2Nlc3MoYXJndixzZWxmLmVudixsaW1pdCxzZWNvbmRzKQoxOTc6ICAgIGRlZiBxdW90YShzZWxmLHJlbW90ZSk6CjE5ODogICAgICAgIG5lZWQocmVtb3RlIGluIHNlbGYuY3J5cHQsJ1FVT1RBX1JFTU9URV9GT1JCSURERU4nKQoxOTk6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnYWJvdXQnLHJlbW90ZSsnOicsJy0tanNvbiddLDE2Mzg0KQoyMDU6ICAgIGRlZiBiaW5kKHNlbGYsbWFuaWZlc3QpOgoyMDY6ICAgICAgICBjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG1hbmlmZXN0KQoyMDc6ICAgICAgICBrbm93bj17ZVsnYWNjb3VudF9pZCddOmVbJ2NyeXB0X3JlbW90ZSddIGZvciBlIGluIHNlbGYuZW50cmllc30KMjA4OiAgICAgICAgbmVlZChhbGwoa25vd24uZ2V0KHJbJ2FjY291bnRfaWQnXSk9PXJbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIG1hbmlmZXN0WydyZXBsaWNhcyddKSwnTUFOSUZFU1RfQ09ORklHX01JU01BVENIJykKMjA5OiAgICAgICAgc2VsZi5tYW5pZmVzdD1tYW5pZmVzdAoyMTA6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLG5hbWU9Tm9uZSk6CjIxMTogICAgICAgIG5lZWQoc2VsZi5tYW5pZmVzdCBpcyBub3QgTm9uZSwnTUFOSUZFU1RfTk9UX0JPVU5EJykKMjEyOiAgICAgICAgbmVlZChyZW1vdGUgaW4ge3JbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIHNlbGYubWFuaWZlc3RbJ3JlcGxpY2FzJ119LCdXUklURV9SRU1PVEVfRk9SQklEREVOJykKMjEzOiAgICAgICAgcHJlZml4PXJlbW90ZSsnOicrc2VsZi5tYW5pZmVzdFsnbmFtZXNwYWNlJ10KMjE1OiAgICAgICAgbmFtZXM9e3BbJ25hbWUnXSBmb3IgcCBpbiBzZWxmLm1hbmlmZXN0WydwYXJ0cyddfXx7J21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbid9CjIxODogICAgZGVmIGFic2VudChzZWxmLHJlbW90ZSk6CjIxOTogICAgICAgIHJjLF89c2VsZi5jYWxsKFsnbHNqc29uJyxzZWxmLmFkZHJlc3MocmVtb3RlKSwnLS1tYXgtZGVwdGgnLCcxJ10sNjU1MzYpCjIyMDogICAgICAgIGlmIHJjPT0wOnJhaXNlIFN0b3AoJ0dFTkVSQVRJT05fQUxSRUFEWV9FWElTVFMnKQoyMjE6ICAgICAgICBuZWVkKHJjIGluICgzLDQpLCdHRU5FUkFUSU9OX0FCU0VOQ0VfVU5QUk9WRU4nKQoyMjI6ICAgIGRlZiBwdXQoc2VsZixyZW1vdGUsbmFtZSxwYXRoKToKMjIzOiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpO3JlYWRfc2VjdXJlKHBhdGgsTUFYX1BBWUxPQURfQllURVMpCjIyODogICAgICAgIG5lZWQocmM9PTAsJ0NMT1VEX0NPUFlfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjI5OiAgICBkZWYgZ2V0KHNlbGYscmVtb3RlLG5hbWUsbGltaXQpOgoyMzE6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnY2F0JyxzZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpLCctLWNvdW50JyxzdHIobGltaXQpXSxsaW1pdCkKMjMyOiAgICAgICAgbmVlZChyYz09MCwnQ0xPVURfUkVBREJBQ0tfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjM2OmRlZiBwaXBlbGluZSh3b3JrLGZpbGVzLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoyMzc6ICAgICIiIk9uZSBib3VuZGVkIHJlYWwgYmFja3VwOyBubyBmYWxsYmFjaywgbm8gcmVzdW1lLCBubyBjbG91ZCBkZWxldGlvbiBvbiBmYWlsdXJlLiIiIgoyMzk6ICAgIG5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoyNDg6ICAgIGZvciBlIGluIGVudHJpZXM6cXVvdGFzW2VbJ2FjY291bnRfaWQnXV09Y2xvdWQucXVvdGEoZVsnY3J5cHRfcmVtb3RlJ10pCjI0OTogICAgYWxsb2M9Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxwYXlsb2FkX2xlbixyZXNlcnZlLGNsb2NrKCkpCjI1MDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHBheWxvYWRfbGVuLHBheWxvYWRfc2hhLHBhcnRzLGFsbG9jKQoyNTE6ICAgIG1iPWNvcmUuY2Fub25pY2FsX2J5dGVzKG0pO21oPWNvcmUubWFuaWZlc3RfaGFzaChtKTtjbG91ZC5iaW5kKG0pCjI1MjogICAgY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2MpKTtjcmVhdGUod29yay8nbWFuaWZlc3QuanNvbicsbWIpCjI1NDogICAgICAgIGd1YXJkKCk7Y2xvdWQuYWJzZW50KGVbJ2NyeXB0X3JlbW90ZSddKQoyNTU6ICAgICAgICBxPWNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKQoyNTY6ICAgICAgICBuZWVkKGNvcmUucXVvdGFfcmVhc29uKHEsY2xvY2soKSkgaXMgTm9uZSBhbmQgcVsnZnJlZSddPj1hbGxvY1sncmVxdWlyZWRfZnJlZV9ieXRlcyddLCdTRUxFQ1RFRF9BQ0NPVU5UX0NBUEFDSVRZX0NIQU5HRUQnKQoyNTk6ICAgICAgICByZW1vdGU9clsnY3J5cHRfcmVtb3RlJ107Z3VhcmQoKQoyNjM6ICAgICAgICAgICAgY2xvdWQucHV0KHJlbW90ZSxwYXJ0WyduYW1lJ10sd29yay9wYXJ0WyduYW1lJ10pCjI2NDogICAgICAgIGNsb3VkLnB1dChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLHdvcmsvJ21hbmlmZXN0Lmpzb24nKQoyNjU6ICAgICAgICBuZWVkKGNsb3VkLmdldChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLGxlbihtYikrMSk9PW1iLCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjI2ODogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUscGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSsxKQoyNzI6ICAgICAgICByZWNlaXB0cy5hcHBlbmQoeyoqciwnZ2VuZXJhdGlvbic6Z2VuZXJhdGlvbiwnbWFuaWZlc3Rfc2hhMjU2JzptaCwncGF5bG9hZF9zaGEyNTYnOmZ1bGwuaGV4ZGlnZXN0KCksCjI3NjogICAgc2VhbD17J3NjaGVtYV92ZXJzaW9uJzoyLCdzdGF0ZSc6J1NFQUxFRCcsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsCjI3NzogICAgICAgICAgJ21hbmlmZXN0X3NoYTI1Nic6bWgsJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddLCdyZWNlaXB0cyc6cmVjZWlwdHMsCjI3ODogICAgICAgICAgJ2FjY2VwdGFuY2UnOidJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJ30KMjc5OiAgICBzYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhzZWFsKTtuZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoyODA6ICAgIGNyZWF0ZSh3b3JrLydTRUFMRUQuanNvbicsc2IpCjI4MTogICAgc2VhbHM9W10KMjgzOiAgICAgICAgZ3VhcmQoKTtjbG91ZC5wdXQoclsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyx3b3JrLydTRUFMRUQuanNvbicpCjI4NDogICAgICAgIG9ic2VydmVkPWNsb3VkLmdldChyWydjcnlwdF9yZW1vdGUnXSwnU0VBTEVELmpzb24nLGxlbihzYikrMSkKMjg1OiAgICAgICAgbmVlZChvYnNlcnZlZD09c2IsJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKTtzZWFscy5hcHBlbmQob2JzZXJ2ZWQpCjI4NjogICAgbmVlZChsZW4oc2VhbHMpPT0yIGFuZCBhbGwoYj09c2IgZm9yIGIgaW4gc2VhbHMpLCdTRUFMRURfUVVPUlVNX1JFUVVJUkVEJykKMjkyOiAgICBjcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnNoYShzYiksJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddfSkpCjI5NTogICAgcmVzdWx0PXsnc3RhdGUnOidTRUFMRURfUVVPUlVNX1ZFUklGSUVEJywnbWFuaWZlc3QnOm0sJ3JlY2VpcHRzJzpyZWNlaXB0cywnc2VhbF9zaGEyNTYnOnNoYShzYiksCjI5NjogICAgICAgICAgICAnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnOnJlbWFpbmluZywncmVzdG9yZV9kcmlsbF9wZXJmb3JtZWQnOkZhbHNlLA== +PIPE_46_SCORE=2 +PIPE_46_BASENAME=large264.py +PIPE_46_PATH_SHA256=7cb0a3c457aeb01d333e23b009a9fc352bba1df93bddc8c660d18ede615b7ea0 +PIPE_46_FILE_SHA256=5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a +PIPE_46_SCHEDULE_TARGET_COUNT=0 +PIPE_46_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_46_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_46_VZDUMP_QEMU_COUNT=0 +PIPE_46_RCLONE_COUNT=2 +PIPE_46_CLOUD_QUORUM_COUNT=0 +PIPE_46_SEAL_WRITTEN_COUNT=0 +PIPE_46_PAYLOAD_PARTS_COUNT=0 +PIPE_46_TRANSPORT_COUNT=1 +PIPE_46_RESTORE_VALIDATION_COUNT=0 +PIPE_46_SCHEDULE_RESULT_COUNT=0 +PIPE_46_RELEVANT_LINE_COUNT=107 +PIPE_46_RELEVANT_B64=MToiIiIyNjRSMSBzdHJlYW1pbmcgY2xvdWQgYWRhcHRlciBhbmQgc3ludGhldGljIGJvdW5kYXJ5IHByb29mLgozOk5vIHdvcmsgb24gaW1wb3J0LiBObyBndWVzdC9iYWNrdXAgcHJvZHVjZXIgYW5kIG5vIGNsb3VkIGRlbGV0aW9uLiBFeGlzdGluZwo1OmFmdGVyIHR3byBjbG91ZCBzZWFscyBhbmQgYSBzZXBhcmF0ZWx5IGNsb3VkLWRpc2NvdmVyZWQgcmVzdG9yZSBoYXZlIGJlZW4gY2hlY2tlZC4KMTU6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE2OmltcG9ydCByZXN0b3JlMjYyIGFzIHIKMjM6ZGVmIHByb2Nlc3Nfc3RyZWFtKGFyZ3YsZW52LHNpemUsZGlnZXN0LGNvbnN1bWUsc2Vjb25kcyk6CjI1OiAgICB0Lm5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBhcmd2IGFuZCBzZWNvbmRzPjAsJ1NUUkVBTV9QUk9DRVNTX0FSR1VNRU5UUycpCjI3OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAozMTogICAgICAgIGZvciBmIGluIChwLnN0ZG91dCxwLnN0ZGVycik6b3Muc2V0X2Jsb2NraW5nKGYuZmlsZW5vKCksRmFsc2UpO3NlbC5yZWdpc3RlcihmLHNlbGVjdG9ycy5FVkVOVF9SRUFEKQo1NjpjbGFzcyBDbG91ZExhcmdlKHQuUmNsb25lSU8pOgo1OTogICAgICAgIHQubmVlZCh0eXBlKGFyZ3MpIGlzIGxpc3QgYW5kIGFyZ3MgYW5kIGFyZ3NbMF0gaW4gKCdhYm91dCcsJ2xzanNvbicsJ2NvcHl0bycsJ2NhdCcpLCdSQ0xPTkVfVkVSQl9GT1JCSURERU4nKQo2MDogICAgICAgIHQubmVlZCh0eXBlKGxpbWl0KSBpcyBpbnQgYW5kIDA8PWxpbWl0PD1jb3JlLk1BTklGRVNUX01BWF9CWVRFUysxLCdNRVRBREFUQV9CT1VORCcpCjYyOiAgICAgICAgdC5uZWVkKHNlY29uZHM+MCwnQ0xPVURfREVBRExJTkUnKTtzZWxmLmNhbGxzKz0xCjY2OiAgICBkZWYgcHV0KHNlbGYscmVtb3RlLG5hbWUscGF0aCk6CjY3OiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpCjY4OiAgICAgICAgaWYgbmFtZSBpbiAoJ21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbicpOgo2OTogICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5wdXQocmVtb3RlLG5hbWUscGF0aCkKNzA6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjcxOiAgICAgICAgdC5uZWVkKHBhcnQgaXMgbm90IE5vbmUsJ1BBUlRfTk9UX0lOX01BTklGRVNUJykKNzk6ICAgICAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9DT1BZX0ZBSUxFRCcpCjgwOiAgICBkZWYgcmVhZF9zdHJlYW0oc2VsZixyZW1vdGUsbmFtZSxzaXplLGRpZ2VzdCxjb25zdW1lKToKODE6ICAgICAgICBhZGRyZXNzPXNlbGYuYWRkcmVzcyhyZW1vdGUsbmFtZSkKODI6ICAgICAgICBwYXJ0PW5leHQoKHAgZm9yIHAgaW4gc2VsZi5tYW5pZmVzdFsncGFydHMnXSBpZiBwWyduYW1lJ109PW5hbWUpLE5vbmUpCjg0OiAgICAgICAgc2VsZi5jaGVjaygpO3NlY29uZHM9bWluKDM2MDAsc2VsZi5kZWFkbGluZS10aW1lLm1vbm90b25pYygpKTt0Lm5lZWQoc2Vjb25kcz4wLCdDTE9VRF9ERUFETElORScpCjkxOmNsYXNzIFJlYWRPbmx5TGFyZ2Uoci5SZWFkT25seUNsb3VkKToKOTM6ICAgIGRlZiByZWFkX3N0cmVhbShzZWxmLHJlbW90ZSxnZW5lcmF0aW9uLG5hbWUsc2l6ZSxkaWdlc3QsY29uc3VtZSk6Cjk2OiAgICAgICAgYWRkcmVzcz1zZWxmLmFkZHJlc3MocmVtb3RlLGdlbmVyYXRpb24sbmFtZSkKOTc6ICAgICAgICBzZWxmLmNoZWNrKCk7c2Vjb25kcz1taW4oMzYwMCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQoxMjA6ICAgIHJldHVybiB7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjEyNTpkZWYgdXBsb2FkKHNvdXJjZSx3b3JrLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoxMjY6ICAgICIiIlVwbG9hZCBhbmQgc2VhbDsgcmV0YWluIGFsbCBzb3VyY2UgYnl0ZXMgaGVyZS4gQ2xlYW51cCBpcyBhIGxhdGVyIGdhdGVkIG9wZXJhdGlvbi4iIiIKMTI4OiAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoxMzI6ICAgIHF1b3Rhcz17ZVsnYWNjb3VudF9pZCddOmNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKSBmb3IgZSBpbiBlbnRyaWVzfQoxMzM6ICAgIGFsbG9jYXRpb249Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxyZWNvcmRbJ3BheWxvYWRfYnl0ZXMnXSxyZXNlcnZlLGNsb2NrKCkpCjEzNDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlY29yZFsncGF5bG9hZF9ieXRlcyddLHJlY29yZFsncGF5bG9hZF9zaGEyNTYnXSxyZWNvcmRbJ3BhcnRzJ10sYWxsb2NhdGlvbikKMTM1OiAgICBtYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSk7Y2xvdWQuYmluZChtKQoxMzY6ICAgIHQuY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2NhdGlvbikpO3QuY3JlYXRlKHdvcmsvJ21hbmlmZXN0Lmpzb24nLG1iKQoxMzg6ICAgICAgICBndWFyZCgpO2Nsb3VkLmFic2VudChyZXBbJ2NyeXB0X3JlbW90ZSddKQoxNDE6ICAgICAgICBndWFyZCgpO3JlbW90ZT1yZXBbJ2NyeXB0X3JlbW90ZSddO3E9Y2xvdWQucXVvdGEocmVtb3RlKQoxNDI6ICAgICAgICB0Lm5lZWQoY29yZS5xdW90YV9yZWFzb24ocSxjbG9jaygpKSBpcyBOb25lIGFuZCBxWydmcmVlJ10+PWFsbG9jYXRpb25bJ3JlcXVpcmVkX2ZyZWVfYnl0ZXMnXSwnU0VMRUNURURfQUNDT1VOVF9DQVBBQ0lUWV9DSEFOR0VEJykKMTQ0OiAgICAgICAgZm9yIHBhcnQgaW4gbVsncGFydHMnXTpjbG91ZC5wdXQocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0ZGlyL3BhcnRbJ25hbWUnXSkKMTQ1OiAgICAgICAgY2xvdWQucHV0KHJlbW90ZSwnbWFuaWZlc3QuanNvbicsd29yay8nbWFuaWZlc3QuanNvbicpCjE0NjogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVtb3RlLCdtYW5pZmVzdC5qc29uJyxsZW4obWIpKzEpPT1tYiwnTUFOSUZFU1RfUkVBREJBQ0tfTUlTTUFUQ0gnKQoxNDk6ICAgICAgICAgICAgb2JzZXJ2ZWQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVtb3RlLHBhcnRbJ25hbWUnXSxwYXJ0WydzaXplJ10scGFydFsnc2hhMjU2J10sd2hvbGUudXBkYXRlKQoxNTM6ICAgIHNlYWw9eydzY2hlbWFfdmVyc2lvbic6Miwnc3RhdGUnOidTRUFMRUQnLCdnZW5lcmF0aW9uJzpnZW5lcmF0aW9uLCdsb2dpY2FsX2lkJzpsb2dpY2FsX2lkLAoxNTQ6ICAgICAgICAgICdtYW5pZmVzdF9zaGEyNTYnOm1oLCdyZXBsaWNhcyc6bVsncmVwbGljYXMnXSwncmVjZWlwdHMnOnJlY2VpcHRzLAoxNTU6ICAgICAgICAgICdhY2NlcHRhbmNlJzonSURFTlRJQ0FMX1NFQUxfUkVRVUlSRURfT05fQk9USF9OQU1FRF9BQ0NPVU5UUyd9CjE1NjogICAgc2I9Y29yZS5jYW5vbmljYWxfYnl0ZXMoc2VhbCk7dC5uZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoxNTc6ICAgIHIudmFsaWRhdGVfc2VhbChzYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk7dC5jcmVhdGUod29yay8nU0VBTEVELmpzb24nLHNiKQoxNTk6ICAgICAgICBndWFyZCgpO2Nsb3VkLnB1dChyZXBbJ2NyeXB0X3JlbW90ZSddLCdTRUFMRUQuanNvbicsd29yay8nU0VBTEVELmpzb24nKQoxNjE6ICAgICAgICB0Lm5lZWQoY2xvdWQuZ2V0KHJlcFsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTEVEX1FVT1JVTV9SRVFVSVJFRCcpCjE2MzogICAgdC5jcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnQuc2hhKHNiKX0pKQoxNjQ6ICAgIHJldHVybiB7J3NlYWxlZCc6VHJ1ZSwnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdwYXJ0c19yZWNvcmQnOnJlY29yZCwnc291cmNlJzpzdHIoc291cmNlKSwnd29yayc6c3RyKHdvcmspfQoxNjc6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9oYXNoKToKMTY4OiAgICAiIiJGaW5kIHBsYWNlbWVudCBmcm9tIGFsbCBjbG91ZCBjYXRhbG9ncywgdXNpbmcgb25seSBhbiBleHRlcm5hbCBtYW5pZmVzdCBkaWdlc3QuIiIiCjE3MTogICAgbGlzdGVkPXt9O2dlbmVyYXRpb25zPXNldCgpCjE3MzogICAgICAgIGdzPWNsb3VkLmxpc3RfZ2VuZXJhdGlvbnMoZVsnY3J5cHRfcmVtb3RlJ10pCjE3NDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1yLk1BWF9HRU5FUkFUSU9OUyBhbmQgYWxsKGNvcmUudmFsaWRfbmFtZShnKSBmb3IgZyBpbiBncyksJ0dFTkVSQVRJT05fTElTVF9JTlZBTElEJykKMTc1OiAgICAgICAgdC5uZWVkKGxlbihncyk9PWxlbihzZXQoZ3MpKSwnR0VORVJBVElPTl9MSVNUX0RVUExJQ0FURScpO2xpc3RlZFtlWydjcnlwdF9yZW1vdGUnXV09c2V0KGdzKTtnZW5lcmF0aW9ucy51cGRhdGUoZ3MpCjE3NjogICAgdC5uZWVkKGxlbihnZW5lcmF0aW9ucyk8PXIuTUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjE3ODogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxODE6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjE4MjogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjE4MzogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTg1OiAgICAgICAgICAgIHNlYWw9ci52YWxpZGF0ZV9zZWFsKGIsZW50cmllcyxnZW4sbG9naWNhbF9pZCkKMTg2OiAgICAgICAgICAgIHQubmVlZChyZW1vdGUgaW4ge3hbJ2NyeXB0X3JlbW90ZSddIGZvciB4IGluIHNlYWxbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKTtzZWVuW3JlbW90ZV09KGIsc2VhbCkKMTg4OiAgICAgICAgc2Isc2VhbD1uZXh0KGl0ZXIoc2Vlbi52YWx1ZXMoKSkpCjE4OTogICAgICAgIGlmIHNlYWxbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9oYXNoOmNvbnRpbnVlCjE5MDogICAgICAgIG5hbWVkPXt4WydjcnlwdF9yZW1vdGUnXSBmb3IgeCBpbiBzZWFsWydyZXBsaWNhcyddfQoxOTE6ICAgICAgICB0Lm5lZWQoc2V0KHNlZW4pPT1uYW1lZCBhbmQgYWxsKGI9PXNiIGZvciBiLF8gaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxOTM6ICAgICAgICBmb3IgcmVwIGluIHNlYWxbJ3JlcGxpY2FzJ106CjE5NDogICAgICAgICAgICBiPWNsb3VkLmdldChyZXBbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTk1OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfaGFzaCwnTUFOSUZFU1RfRElHRVNUX01JU01BVENIJykKMTk2OiAgICAgICAgICAgIG09ci5zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjE5NzogICAgICAgICAgICB0Lm5lZWQobVsnZ2VuZXJhdGlvbiddPT1nZW4gYW5kIG1bJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCBhbmQgbVsncmVwbGljYXMnXT09c2VhbFsncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTk4OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxzZWFsWydyZWNlaXB0cyddKTtibG9icy5hcHBlbmQoYikKMTk5OiAgICAgICAgdC5uZWVkKGxlbihibG9icyk9PTIgYW5kIGJsb2JzWzBdPT1ibG9ic1sxXSwnVFdPX01BTklGRVNUX0NPUElFU19SRVFVSVJFRCcpCjIwMDogICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKHsnbWFuaWZlc3QnOm0sJ3NlYWxfYnl0ZXMnOnNiLCdhY2NvdW50c19zY2FubmVkJzpsZW4obGlzdGVkKX0pCjIwMTogICAgdC5uZWVkKGxlbihjYW5kaWRhdGVzKT09MSwnRVhBQ1RMWV9PTkVfQUNDRVBURURfR0VORVJBVElPTl9SRVFVSVJFRCcpCjIwNTpkZWYgZnJlc2hfc2VhbHMoY2xvdWQsZGlzY292ZXJ5KToKMjA2OiAgICBtPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pO3NiPWRpc2NvdmVyeVsnc2VhbF9ieXRlcyddCjIwODogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oc2IpKzEpPT1zYiwnU0VBTF9DSEFOR0VEX0RVUklOR19SRVNUT1JFJykKMjExOmRlZiBkb3dubG9hZF9wYXJ0KGNsb3VkLHJlcCxtLHBhcnQscGF0aCx3aG9sZSk6CjIxNTogICAgICAgIGRlZiBjb25zdW1lKGJsb2NrKTp3aG9sZS51cGRhdGUoYmxvY2spO3Mud3JpdGVfYWxsKGZkLGJsb2NrKQoyMTY6ICAgICAgICByZXN1bHQ9Y2xvdWQucmVhZF9zdHJlYW0ocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10scGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSxwYXJ0WydzaGEyNTYnXSxjb25zdW1lKQoyMjU6ZGVmIHJlc3RvcmUod29yayxjbG91ZCxkaXNjb3ZlcnkpOgoyMjc6ICAgIHdvcms9UGF0aCh3b3JrKTttPWRpc2NvdmVyeVsnbWFuaWZlc3QnXTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjIzMjogICAgICAgICAgICBpZiBpPT0wOm93bmVkW3BhcnRbJ25hbWUnXV09ZG93bmxvYWRfcGFydChjbG91ZCxyZXAsbSxwYXJ0LHBhcnRkaXIvcGFydFsnbmFtZSddLHdob2xlKQoyMzQ6ICAgICAgICAgICAgICAgIGdvdD1jbG91ZC5yZWFkX3N0cmVhbShyZXBbJ2NyeXB0X3JlbW90ZSddLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddLHBhcnRbJ3NoYTI1NiddLHdob2xlLnVwZGF0ZSkKMjM4OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHJlY2VpcHRzKTtmcmVzaF9zZWFscyhjbG91ZCxkaXNjb3ZlcnkpCjI0MTogICAgcmVzdWx0PXMucmVhc3NlbWJsZShwYXJ0ZGlyLHJlYyx3b3JrLydyZXN0b3JlZC5iaW4nKQoyNDI6ICAgIGZyZXNoX3NlYWxzKGNsb3VkLGRpc2NvdmVyeSkKMjQzOiAgICB0LmNyZWF0ZSh3b3JrLydSRVNUT1JFX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksJ3ZlcmlmaWVkX3JlcGxpY2FzJzoyLAoyNDU6ICAgIHJldHVybiB7J3ZlcmlmaWVkX3JlcGxpY2FzJzoyLCdtYW5pZmVzdF9zaGEyNTYnOmNvcmUubWFuaWZlc3RfaGFzaChtKSwnZGlzY292ZXJ5JzpkaXNjb3ZlcnksCjI0OTpkZWYgY2xlYW51cCh1cGxvYWRfcmVzdWx0LHJlc3RvcmVfcmVzdWx0LGNsb3VkLGd1YXJkKToKMjUwOiAgICAiIiJObyB1bmxpbmsgdW50aWwgZXZlcnkgZXhwZWN0ZWQgZmlsZSBhbmQgYm90aCByZW1vdGUgc2VhbHMgaGF2ZSBwYXNzZWQgdmVyaWZpY2F0aW9uLiIiIgoyNTE6ICAgIHQubmVlZCh0eXBlKHVwbG9hZF9yZXN1bHQpIGlzIGRpY3QgYW5kIHVwbG9hZF9yZXN1bHQuZ2V0KCdzZWFsZWQnKSBpcyBUcnVlLCdVUExPQURfUVVPUlVNX1JFUVVJUkVEJykKMjUyOiAgICB0Lm5lZWQodHlwZShyZXN0b3JlX3Jlc3VsdCkgaXMgZGljdCBhbmQgcmVzdG9yZV9yZXN1bHQuZ2V0KCd2ZXJpZmllZF9yZXBsaWNhcycpPT0yLCdSRVNUT1JFX1JFUVVJUkVEJykKMjUzOiAgICBtPXVwbG9hZF9yZXN1bHRbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKTttaD1jb3JlLm1hbmlmZXN0X2hhc2gobSkKMjU0OiAgICB0Lm5lZWQocmVzdG9yZV9yZXN1bHRbJ21hbmlmZXN0X3NoYTI1NiddPT1taCwnUkVTVE9SRV9HRU5FUkFUSU9OX01JU01BVENIJykKMjU1OiAgICB0Lm5lZWQoY29yZS5jYW5vbmljYWxfYnl0ZXMocmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddWydtYW5pZmVzdCddKT09Y29yZS5jYW5vbmljYWxfYnl0ZXMobSkgYW5kCjI1NjogICAgICAgICAgIHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXVsnc2VhbF9ieXRlcyddPT11cGxvYWRfcmVzdWx0WydzZWFsX2J5dGVzJ10sJ1JFU1RPUkVfUVVPUlVNX01JU01BVENIJykKMjU3OiAgICBjb3JlLnZlcmlmeV9yZWNlaXB0cyhtLHIuc3RyaWN0X2pzb24odXBsb2FkX3Jlc3VsdFsnc2VhbF9ieXRlcyddLGNvcmUuU0VBTF9NQVhfQllURVMpWydyZWNlaXB0cyddKQoyNTg6ICAgIGd1YXJkKCk7ZnJlc2hfc2VhbHMoY2xvdWQscmVzdG9yZV9yZXN1bHRbJ2Rpc2NvdmVyeSddKQoyNjE6ICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3RvcmVfcmVzdWx0WydwYXJ0c19yZWNvcmQnXSxQYXRoKHJlc3RvcmVfcmVzdWx0Wyd3b3JrJ10pLydwYXJ0cycpKToKMjY1OiAgICBpdGVtcy5hcHBlbmQoKFBhdGgocmVzdG9yZV9yZXN1bHRbJ3dvcmsnXSkvJ3Jlc3RvcmVkLmJpbicsdHVwbGUocmVzdG9yZV9yZXN1bHRbJ3JlYXNzZW1ibGVkJ11bJ2lkZW50aXR5J10pLG1bJ3BheWxvYWRfYnl0ZXMnXSxtWydwYXlsb2FkX3NoYTI1NiddKSkKMjY5OiAgICBndWFyZCgpO2ZyZXNoX3NlYWxzKGNsb3VkLHJlc3RvcmVfcmVzdWx0WydkaXNjb3ZlcnknXSk= +PIPE_47_SCORE=2 +PIPE_47_BASENAME=restore262.py +PIPE_47_PATH_SHA256=aa83da10ef9735bd6aa1dbe941cf1528c8c984a2d5b3d629464a3648fd4d98df +PIPE_47_FILE_SHA256=56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1 +PIPE_47_SCHEDULE_TARGET_COUNT=0 +PIPE_47_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_47_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_47_VZDUMP_QEMU_COUNT=0 +PIPE_47_RCLONE_COUNT=1 +PIPE_47_CLOUD_QUORUM_COUNT=0 +PIPE_47_SEAL_WRITTEN_COUNT=0 +PIPE_47_PAYLOAD_PARTS_COUNT=0 +PIPE_47_TRANSPORT_COUNT=1 +PIPE_47_RESTORE_VALIDATION_COUNT=0 +PIPE_47_SCHEDULE_RESULT_COUNT=0 +PIPE_47_RELEVANT_LINE_COUNT=89 +PIPE_47_RELEVANT_B64=MToiIiIyNjJSMSBib3VuZGVkIGNsb3VkLWRpc2NvdmVyZWQgcmVjb3ZlcnkuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KMzpDbG91ZCBhY2Nlc3MgaXMgc3RyaWN0bHkgbHNqc29uL2NhdC4gTm8gc291cmNlLWxvY2FsIHdvcmtzcGFjZS9tYW5pZmVzdC9yZWNlaXB0CjQ6aXMgcmVhZC4gVGhlIGV4dGVybmFsIGFjY2VwdGVkIG1hbmlmZXN0IGRpZ2VzdCBpcyBhIHRydXN0IGFuY2hvciwgbm90IHBsYWNlbWVudC4KMTY6aW1wb3J0IHRyYW5zcG9ydDI2MSBhcyB0CjE5OiAgICAgICAgICAgICAgICAgICAgICAgJ3Vzci9sb2NhbC9zYmluL2hvbWVsYWItY29udHJvbC1iYWNrdXAnLCdldGMvc3lzdGVtZC9zeXN0ZW0vaG9tZWxhYi1jb250cm9sLWJhY2t1cC5zZXJ2aWNlJykpCjIxOk1BWF9HRU5FUkFUSU9OUz02NAoyMjpTRUFMX0tFWVM9eydzY2hlbWFfdmVyc2lvbicsJ3N0YXRlJywnZ2VuZXJhdGlvbicsJ2xvZ2ljYWxfaWQnLCdtYW5pZmVzdF9zaGEyNTYnLCdyZXBsaWNhcycsJ3JlY2VpcHRzJywnYWNjZXB0YW5jZSd9CjM2OmNsYXNzIFJlYWRPbmx5Q2xvdWQ6CjQxOiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5ndWFyZD1ndWFyZDtzZWxmLndvcms9UGF0aCh3b3JrKQo1MDogICAgICAgIHQubmVlZCh0LnNoYSh0LnJlYWRfc2VjdXJlKHNlbGYuZXhlY3V0YWJsZSwxMjgqMTAyNCoxMDI0KVswXSk9PXNlbGYuZXhlX3NoYSwnUkNMT05FX0JJTkFSWV9DSEFOR0VEJykKNTE6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLGdlbmVyYXRpb249Tm9uZSxuYW1lPU5vbmUpOgo1MjogICAgICAgIHQubmVlZChyZW1vdGUgaW4gc2VsZi5jcnlwdCwnQ1JZUFRfUkVNT1RFX1JFUVVJUkVEJykKNTM6ICAgICAgICBwPXJlbW90ZSsnOmJhY2t1cC12Mi90YXJnZXRzLycrc2VsZi5sb2dpY2FsX2lkKycvZ2VuZXJhdGlvbnMnCjU0OiAgICAgICAgaWYgZ2VuZXJhdGlvbiBpcyBOb25lOgo1NTogICAgICAgICAgICB0Lm5lZWQobmFtZSBpcyBOb25lLCdPQkpFQ1RfV0lUSE9VVF9HRU5FUkFUSU9OJyk7cmV0dXJuIHAKNTY6ICAgICAgICB0Lm5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pLCdHRU5FUkFUSU9OX05BTUVfSU5WQUxJRCcpO3ArPScvJytnZW5lcmF0aW9uCjU4OiAgICAgICAgICAgIHQubmVlZChuYW1lIGluICgnU0VBTEVELmpzb24nLCdtYW5pZmVzdC5qc29uJykgb3IgKHR5cGUobmFtZSkgaXMgc3RyIGFuZCByZS5mdWxsbWF0Y2gocidwYXJ0LVxkezZ9XC5iaW4nLG5hbWUpKSwKNjI6ICAgICAgICB0Lm5lZWQodHlwZShhcmdzKSBpcyBsaXN0IGFuZCBhcmdzIGFuZCBhcmdzWzBdIGluICgnbHNqc29uJywnY2F0JyksJ1JFQURfT05MWV9DTE9VRF9WRVJCX1JFUVVJUkVEJykKNjM6ICAgICAgICB0Lm5lZWQodHlwZShsaW1pdCkgaXMgaW50IGFuZCAwPGxpbWl0PD10Lk1BWF9QQVlMT0FEX0JZVEVTKzEsJ0NMT1VEX1JFQURfQk9VTkQnKQo2NDogICAgICAgIHNlbGYuY2hlY2soKTtzZWNvbmRzPW1pbig5MCxzZWxmLmRlYWRsaW5lLXRpbWUubW9ub3RvbmljKCkpO3QubmVlZChzZWNvbmRzPjAsJ1JFU1RPUkVfREVBRExJTkUnKQo2NTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLnNuYXBzaG90KSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsJy0tc3RhdHMnLCcwJywKNjc6ICAgICAgICBzZWxmLmNhbGxzKz0xO3JjLG91dD10LmJvdW5kZWRfcHJvY2Vzcyhhcmd2LHNlbGYuZW52LGxpbWl0LHNlY29uZHMpO3NlbGYuY2hlY2soKTtyZXR1cm4gcmMsb3V0CjY4OiAgICBkZWYgbGlzdF9nZW5lcmF0aW9ucyhzZWxmLHJlbW90ZSk6CjY5OiAgICAgICAgcmMsb3V0PXNlbGYuY2FsbChbJ2xzanNvbicsc2VsZi5hZGRyZXNzKHJlbW90ZSksJy0tZGlycy1vbmx5JywnLS1tYXgtZGVwdGgnLCcxJ10sMTA0ODU3NikKNzE6ICAgICAgICB0Lm5lZWQocmM9PTAsJ0NMT1VEX0xJU1RfRkFJTEVEJykKNzM6ICAgICAgICB0Lm5lZWQodHlwZShyb3dzKSBpcyBsaXN0IGFuZCBsZW4ocm93cyk8PU1BWF9HRU5FUkFUSU9OUywnQ0xPVURfTElTVF9CT1VORCcpCjc2OiAgICAgICAgICAgIHQubmVlZCh0eXBlKGl0ZW0pIGlzIGRpY3QgYW5kIGl0ZW0uZ2V0KCdJc0RpcicpIGlzIFRydWUsJ0NMT1VEX0xJU1RfU0NIRU1BJykKNzc6ICAgICAgICAgICAgbmFtZT1pdGVtLmdldCgnTmFtZScpO3QubmVlZChjb3JlLnZhbGlkX25hbWUobmFtZSkgYW5kIGl0ZW0uZ2V0KCdQYXRoJyk9PW5hbWUsJ0NMT1VEX0xJU1RfTkFNRScpCjc4OiAgICAgICAgICAgIHQubmVlZChuYW1lIG5vdCBpbiBuYW1lcywnQ0xPVURfTElTVF9EVVBMSUNBVEUnKTtuYW1lcy5hcHBlbmQobmFtZSkKODA6ICAgIGRlZiBnZXQoc2VsZixyZW1vdGUsZ2VuZXJhdGlvbixuYW1lLGxpbWl0LG1pc3Npbmdfb2s9RmFsc2UpOgo4MTogICAgICAgIHJjLG91dD1zZWxmLmNhbGwoWydjYXQnLHNlbGYuYWRkcmVzcyhyZW1vdGUsZ2VuZXJhdGlvbixuYW1lKSwnLS1jb3VudCcsc3RyKGxpbWl0KV0sbGltaXQpCjgzOiAgICAgICAgdC5uZWVkKHJjPT0wLCdDTE9VRF9SRUFEX0ZBSUxFRCcpO3JldHVybiBvdXQKODY6ZGVmIHZhbGlkYXRlX3NlYWwoYmxvYixlbnRyaWVzLGdlbmVyYXRpb24sbG9naWNhbF9pZCk6Cjg3OiAgICBzPXN0cmljdF9qc29uKGJsb2IsY29yZS5TRUFMX01BWF9CWVRFUykKODg6ICAgIHQubmVlZCh0eXBlKHMpIGlzIGRpY3QgYW5kIHNldChzKT09U0VBTF9LRVlTLCdTRUFMX1NDSEVNQScpCjg5OiAgICB0Lm5lZWQodHlwZShzWydzY2hlbWFfdmVyc2lvbiddKSBpcyBpbnQgYW5kIHNbJ3NjaGVtYV92ZXJzaW9uJ109PTIgYW5kIHNbJ3N0YXRlJ109PSdTRUFMRUQnLCdTRUFMX1NUQVRFJykKOTA6ICAgIHQubmVlZChzWydnZW5lcmF0aW9uJ109PWdlbmVyYXRpb24gYW5kIHNbJ2xvZ2ljYWxfaWQnXT09bG9naWNhbF9pZCwnU0VBTF9JREVOVElUWScpCjkxOiAgICB0Lm5lZWQoY29yZS52YWxpZF9oYXNoKHNbJ21hbmlmZXN0X3NoYTI1NiddKSwnU0VBTF9NQU5JRkVTVF9IQVNIJykKOTI6ICAgIHQubmVlZChzWydhY2NlcHRhbmNlJ109PSdJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJywnU0VBTF9BQ0NFUFRBTkNFJykKOTM6ICAgIHJlcGxpY2FzPXNbJ3JlcGxpY2FzJ107dC5uZWVkKHR5cGUocmVwbGljYXMpIGlzIGxpc3QgYW5kIGxlbihyZXBsaWNhcyk9PTIsJ1NFQUxfUVVPUlVNJykKOTQ6ICAgIGtub3duPXtlWydhY2NvdW50X2lkJ106ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc30KOTc6ICAgICAgICAgICAgICAgYW5kIGNvcmUudmFsaWRfbmFtZShyZXBbJ2NyeXB0X3JlbW90ZSddKSBhbmQga25vd24uZ2V0KHJlcFsnYWNjb3VudF9pZCddKT09cmVwWydjcnlwdF9yZW1vdGUnXSwnU0VBTF9DT05GSUdfTUFQUElORycpCjk4OiAgICB0Lm5lZWQobGVuKHtwWydhY2NvdW50X2lkJ10gZm9yIHAgaW4gcmVwbGljYXN9KT09MiBhbmQgbGVuKHtwWydjcnlwdF9yZW1vdGUnXSBmb3IgcCBpbiByZXBsaWNhc30pPT0yLCdTRUFMX0RJU1RJTkNUX0FDQ09VTlRTJykKOTk6ICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhzKT09YmxvYiwnU0VBTF9DQU5PTklDQUxfQllURVMnKQoxMDM6ZGVmIGRpc2NvdmVyKGNsb3VkLGVudHJpZXMsbG9naWNhbF9pZCxleHBlY3RlZF9tYW5pZmVzdF9zaGEpOgoxMDQ6ICAgICIiIkVudW1lcmF0ZSBhbGwgYWNjb3VudHM7IHJlcXVpcmUgYm90aCBuYW1lZCBzZWFscywgbm90IGEgbG9jYWwgc2VhbCByZWNlaXB0LiIiIgoxMDY6ICAgIHQubmVlZChjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCkgYW5kIGNvcmUudmFsaWRfaGFzaChleHBlY3RlZF9tYW5pZmVzdF9zaGEpLCdESVNDT1ZFUllfSU5QVVQnKQoxMDc6ICAgIGxpc3RlZD17fTtnZW5lcmF0aW9ucz1zZXQoKQoxMDk6ICAgICAgICByZW1vdGU9ZVsnY3J5cHRfcmVtb3RlJ107Z3M9Y2xvdWQubGlzdF9nZW5lcmF0aW9ucyhyZW1vdGUpCjExMDogICAgICAgIHQubmVlZCh0eXBlKGdzKSBpcyBsaXN0IGFuZCBsZW4oZ3MpPD1NQVhfR0VORVJBVElPTlMgYW5kIGFsbChjb3JlLnZhbGlkX25hbWUoZykgZm9yIGcgaW4gZ3MpLCdHRU5FUkFUSU9OX0xJU1RfSU5WQUxJRCcpCjExMTogICAgICAgIHQubmVlZChsZW4oc2V0KGdzKSk9PWxlbihncyksJ0dFTkVSQVRJT05fTElTVF9EVVBMSUNBVEUnKQoxMTI6ICAgICAgICBsaXN0ZWRbcmVtb3RlXT1zZXQoZ3MpO2dlbmVyYXRpb25zLnVwZGF0ZShncykKMTEzOiAgICB0Lm5lZWQobGVuKGdlbmVyYXRpb25zKTw9TUFYX0dFTkVSQVRJT05TLCdUT1RBTF9HRU5FUkFUSU9OU19CT1VORCcpCjExNTogICAgZm9yIGdlbiBpbiBzb3J0ZWQoZ2VuZXJhdGlvbnMpOgoxMTg6ICAgICAgICAgICAgcmVtb3RlPWVbJ2NyeXB0X3JlbW90ZSddCjExOTogICAgICAgICAgICBpZiBnZW4gbm90IGluIGxpc3RlZFtyZW1vdGVdOmNvbnRpbnVlCjEyMDogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUsZ2VuLCdTRUFMRUQuanNvbicsY29yZS5TRUFMX01BWF9CWVRFUysxLG1pc3Npbmdfb2s9VHJ1ZSkKMTIyOiAgICAgICAgICAgIHM9dmFsaWRhdGVfc2VhbChiLGVudHJpZXMsZ2VuLGxvZ2ljYWxfaWQpCjEyMzogICAgICAgICAgICB0Lm5lZWQocmVtb3RlIGluIHtyclsnY3J5cHRfcmVtb3RlJ10gZm9yIHJyIGluIHNbJ3JlcGxpY2FzJ119LCdVTk5BTUVEX1NFQUxfTE9DQVRJT04nKQoxMjQ6ICAgICAgICAgICAgc2VlbltyZW1vdGVdPShiLHMpCjEyNzogICAgICAgIGlmIGZpcnN0X3NbJ21hbmlmZXN0X3NoYTI1NiddIT1leHBlY3RlZF9tYW5pZmVzdF9zaGE6Y29udGludWUKMTI4OiAgICAgICAgbmFtZWQ9e3JyWydjcnlwdF9yZW1vdGUnXSBmb3IgcnIgaW4gZmlyc3Rfc1sncmVwbGljYXMnXX0KMTI5OiAgICAgICAgdC5uZWVkKHNldChzZWVuKT09bmFtZWQgYW5kIGFsbChiPT1maXJzdF9iIGZvciBiLHMgaW4gc2Vlbi52YWx1ZXMoKSksJ0lERU5USUNBTF9UV09fU0VBTFNfUkVRVUlSRUQnKQoxMzA6ICAgICAgICBtYW5pZmVzdF9ibG9icz1bXQoxMzI6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocnJbJ2NyeXB0X3JlbW90ZSddLGdlbiwnbWFuaWZlc3QuanNvbicsY29yZS5NQU5JRkVTVF9NQVhfQllURVMrMSkKMTMzOiAgICAgICAgICAgIHQubmVlZCh0eXBlKGIpIGlzIGJ5dGVzIGFuZCB0LnNoYShiKT09ZXhwZWN0ZWRfbWFuaWZlc3Rfc2hhLCdNQU5JRkVTVF9ESUdFU1RfTUlTTUFUQ0gnKQoxMzQ6ICAgICAgICAgICAgbT1zdHJpY3RfanNvbihiLGNvcmUuTUFOSUZFU1RfTUFYX0JZVEVTKTtjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG0pCjEzNTogICAgICAgICAgICB0Lm5lZWQobVsnbG9naWNhbF9pZCddPT1sb2dpY2FsX2lkIGFuZCBtWydnZW5lcmF0aW9uJ109PWdlbiBhbmQgbVsncmVwbGljYXMnXT09Zmlyc3Rfc1sncmVwbGljYXMnXSwnTUFOSUZFU1RfUExBQ0VNRU5UJykKMTM3OiAgICAgICAgICAgIHQubmVlZChjb3JlLmNhbm9uaWNhbF9ieXRlcyhtKT09YiwnTUFOSUZFU1RfQ0FOT05JQ0FMX0JZVEVTJyk7Y29yZS52ZXJpZnlfcmVjZWlwdHMobSxmaXJzdF9zWydyZWNlaXB0cyddKQoxMzg6ICAgICAgICAgICAgbWFuaWZlc3RfYmxvYnMuYXBwZW5kKGIpCjEzOTogICAgICAgIHQubmVlZChsZW4obWFuaWZlc3RfYmxvYnMpPT0yIGFuZCBtYW5pZmVzdF9ibG9ic1swXT09bWFuaWZlc3RfYmxvYnNbMV0sJ01BTklGRVNUX1RXT19DT1BJRVMnKQoxNDA6ICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCh7J21hbmlmZXN0JzptLCdtYW5pZmVzdF9ieXRlcyc6bWFuaWZlc3RfYmxvYnNbMF0sJ3NlYWwnOmZpcnN0X3MsJ3NlYWxfYnl0ZXMnOmZpcnN0X2IsCjE0MTogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNjb3VudHNfc2Nhbm5lZCc6bGVuKGxpc3RlZCksJ2dlbmVyYXRpb25zX2ZvdW5kJzpsZW4oZ2VuZXJhdGlvbnMpfSkKMTQyOiAgICB0Lm5lZWQobGVuKGNhbmRpZGF0ZXMpPT0xLCdFWEFDVExZX09ORV9BQ0NFUFRFRF9HRU5FUkFUSU9OX1JFUVVJUkVEJykKMTQ2OmRlZiB2ZXJpZnlfZG93bmxvYWRzKGNsb3VkLGRpc2NvdmVyeSk6CjE0NzogICAgbT1kaXNjb3ZlcnlbJ21hbmlmZXN0J107Y29yZS52YWxpZGF0ZV9tYW5pZmVzdChtKQoxNTE6ICAgICAgICByZW1vdGU9cmVwWydjcnlwdF9yZW1vdGUnXTtjaHVua3M9W107cGFydHM9W107ZnVsbD1oYXNobGliLnNoYTI1NigpO3NpemU9MAoxNTM6ICAgICAgICAgICAgYj1jbG91ZC5nZXQocmVtb3RlLG1bJ2dlbmVyYXRpb24nXSxwYXJ0WyduYW1lJ10scGFydFsnc2l6ZSddKzEpCjE2MDogICAgICAgIHJlY2VpcHRzLmFwcGVuZCh7KipyZXAsJ2dlbmVyYXRpb24nOm1bJ2dlbmVyYXRpb24nXSwnbWFuaWZlc3Rfc2hhMjU2Jzpjb3JlLm1hbmlmZXN0X2hhc2gobSksCjE2MzogICAgIyBGcmVzaCBzZWFsIHJlYWRiYWNrIGFmdGVyIHRoZSBwYXlsb2FkOiBuZXZlciB0cnVzdCBvbmx5IHRoZSBpbml0aWFsIGxpc3RpbmcuCjE2NTogICAgICAgIHQubmVlZChjbG91ZC5nZXQocmVwWydjcnlwdF9yZW1vdGUnXSxtWydnZW5lcmF0aW9uJ10sJ1NFQUxFRC5qc29uJyxsZW4oZGlzY292ZXJ5WydzZWFsX2J5dGVzJ10pKzEpPT1kaXNjb3ZlcnlbJ3NlYWxfYnl0ZXMnXSwKMTY2OiAgICAgICAgICAgICAgICdTRUFMX0NIQU5HRURfRFVSSU5HX1JFU1RPUkUnKQoyMTU6ZGVmIHJlc3RvcmVfZmlsZXMod29yayxmaWxlcyk6CjIxNjogICAgdC5uZWVkKHR5cGUoZmlsZXMpIGlzIGRpY3QgYW5kIHNldChmaWxlcyk9PUFMTF9OQU1FUyBhbmQgYWxsKHR5cGUoYikgaXMgYnl0ZXMgZm9yIGIgaW4gZmlsZXMudmFsdWVzKCkpLCdSRVNUT1JFX0ZJTEVTX1dISVRFTElTVCcpCjIxNzogICAgcm9vdD1QYXRoKHdvcmspLydyZXN0b3JlZCc7dC5tYWtlX2Rpcihyb290LGV4Y2x1c2l2ZT1UcnVlKQoyMjM6ICAgICAgICB0Lm5lZWQoZ290PT1iIGFuZCBmb3VuZD09aWRlbnRpdHksJ1JFU1RPUkVEX0ZJTEVfUkVBREJBQ0tfTUlTTUFUQ0gnKQoyMjg6ZGVmIGNsZWFudXBfcmVzdG9yZWQod29yayxyZWNvcmRzKToKMjI5OiAgICByb290PVBhdGgod29yaykvJ3Jlc3RvcmVkJwoyNDI6ICAgICAgICB0Lm5lZWQoaWRlbnRpdHk9PXJlY29yZHNbbmFtZV1bJ2lkZW50aXR5J10gYW5kIHQuc2hhKGIpPT1yZWNvcmRzW25hbWVdWydzaGEyNTYnXSwnUkVTVE9SRV9DTEVBTlVQX0lERU5USVRZJyk= +PIPE_48_SCORE=2 +PIPE_48_BASENAME=stream263.py +PIPE_48_PATH_SHA256=8b5aa328daf351ab439d9ad7d27b4e2d57f8ec7a9d26e0ef8b0350d698f47676 +PIPE_48_FILE_SHA256=a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16 +PIPE_48_SCHEDULE_TARGET_COUNT=0 +PIPE_48_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_48_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_48_VZDUMP_QEMU_COUNT=0 +PIPE_48_RCLONE_COUNT=1 +PIPE_48_CLOUD_QUORUM_COUNT=0 +PIPE_48_SEAL_WRITTEN_COUNT=0 +PIPE_48_PAYLOAD_PARTS_COUNT=0 +PIPE_48_TRANSPORT_COUNT=1 +PIPE_48_RESTORE_VALIDATION_COUNT=0 +PIPE_48_SCHEDULE_RESULT_COUNT=0 +PIPE_48_RELEVANT_LINE_COUNT=9 +PIPE_48_RELEVANT_B64=MToiIiJCYWNrdXAgVjIgYm91bmRlZC1tZW1vcnkgbG9jYWwgcGF5bG9hZCBwcmltaXRpdmVzLCBzdGFnZSAyNjNSMS4KMzpObyBleGVjdXRhYmxlIGVudHJ5IHBvaW50LCBuZXR3b3JrLCByY2xvbmUsIGJhY2t1cCBleGVjdXRpb24sIHNlYWxpbmcgb3IgZGVsZXRpb24uCjU6cGFydGlhbCBvdXRwdXQgaXMgcmV0YWluZWQuIFRoaXMgbW9kdWxlIGlzIE5PVCBhIGZ1bGwgaG9zdCBiYWNrdXAvcmVzdG9yZSBlbmdpbmUuCjEzOmltcG9ydCB0cmFuc3BvcnQyNjEgYXMgdAozMTogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQo1MDogICAgZGVmIGZlZWQoc2VsZixibG9jayk6CjUyOiAgICAgICAgbmVlZCh0eXBlKGJsb2NrKSBpcyBieXRlcyBhbmQgbGVuKGJsb2NrKTw9Q0hVTktfQllURVMsJ1NJTktfQ0hVTktfQk9VTkQnKQo1MzogICAgICAgIG5lZWQoc2VsZi5jb3VudCtsZW4oYmxvY2spPD1zZWxmLnNpemUsJ1NUUkVBTV9PVkVSU0laRScpCjU0OiAgICAgICAgc2VsZi5oLnVwZGF0ZShibG9jayk7c2VsZi5jb3VudCs9bGVuKGJsb2NrKQ== +PIPE_49_SCORE=2 +PIPE_49_BASENAME=transport261.py +PIPE_49_PATH_SHA256=2842a3673fd198c0bd9b72a6d04fb9dba932397d8088de0a157aa1c770878e27 +PIPE_49_FILE_SHA256=b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688 +PIPE_49_SCHEDULE_TARGET_COUNT=0 +PIPE_49_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_49_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_49_VZDUMP_QEMU_COUNT=0 +PIPE_49_RCLONE_COUNT=3 +PIPE_49_CLOUD_QUORUM_COUNT=0 +PIPE_49_SEAL_WRITTEN_COUNT=0 +PIPE_49_PAYLOAD_PARTS_COUNT=0 +PIPE_49_TRANSPORT_COUNT=1 +PIPE_49_RESTORE_VALIDATION_COUNT=0 +PIPE_49_SCHEDULE_RESULT_COUNT=0 +PIPE_49_RELEVANT_LINE_COUNT=69 +PIPE_49_RELEVANT_B64=MToiIiJCb3VuZGVkIEJhY2t1cCBWMiB0cmFuc3BvcnQgMjYxUjEuIE5vIGxpdmUgYWN0aW9uIG9uIGltcG9ydC4KNDpjb250cm9sLWZpbGUgYmFja3VwLCBOT1QgYSBjb21wbGV0ZSBub2RlIGJhY2t1cCBvciBpbmRlcGVuZGVudCByZXN0b3JlIGRyaWxsLgo1NzogICAgICAgIGZkPW9zLm9wZW4ocC5uYW1lLG9zLk9fUkRPTkxZfG9zLk9fTk9GT0xMT1d8b3MuT19OT05CTE9DSyxkaXJfZmQ9cGFyZW50KQoxMDk6ICAgIHA9UGF0aChwYXRoKTtkYXRhLGZvdW5kPXJlYWRfc2VjdXJlKHAsTUFYX1BBWUxPQURfQllURVMrY29yZS5NQU5JRkVTVF9NQVhfQllURVMpCjE0NjpkZWYgYm91bmRlZF9wcm9jZXNzKGFyZ3YsZW52LGxpbWl0LHNlY29uZHMpOgoxNDg6ICAgIG5lZWQodHlwZShhcmd2KSBpcyBsaXN0IGFuZCBzZWNvbmRzPjAgYW5kIDA8PWxpbWl0PD1NQVhfUEFZTE9BRF9CWVRFUysxLCdQUk9DRVNTX0xJTUlUJykKMTQ5OiAgICBwPXN1YnByb2Nlc3MuUG9wZW4oYXJndixzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSxzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAoxNTM6ICAgICAgICBmb3IgZiBpbiAocC5zdGRvdXQscC5zdGRlcnIpOm9zLnNldF9ibG9ja2luZyhmLmZpbGVubygpLEZhbHNlKTtzZWwucmVnaXN0ZXIoZixzZWxlY3RvcnMuRVZFTlRfUkVBRCkKMTcxOmNsYXNzIFJjbG9uZUlPOgoxNzI6ICAgICIiIkNyeXB0LW9ubHkgbmFtZXNwYWNlLWNvbmZpbmVkIGFkYXB0ZXIuIFNuYXBzaG90IHRva2VuIHJlZnJlc2ggbmV2ZXIgdGFyZ2V0cyBsaXZlIGNvbmZpZy4iIiIKMTc2OiAgICAgICAgc2VsZi5jcnlwdD17ZVsnY3J5cHRfcmVtb3RlJ10gZm9yIGUgaW4gZW50cmllc307c2VsZi5leHBlY3RlZF9iaW5kaW5nPWV4cGVjdGVkX2JpbmRpbmcKMTc4OiAgICAgICAgc2VsZi5jYWxscz0wO3NlbGYud3JpdGVzX2F0dGVtcHRlZD0wO3NlbGYubWFuaWZlc3Q9Tm9uZQoxODU6ICAgICAgICBuZWVkKHNoYShyZWFkX3NlY3VyZShzZWxmLmV4ZWN1dGFibGUsMTI4KjEwMjQqMTAyNClbMF0pPT1zZWxmLmV4ZV9zaGEsJ1JDTE9ORV9CSU5BUllfQ0hBTkdFRCcpCjE4NzogICAgICAgIG5lZWQoYXJnc1swXSBpbiAoJ2Fib3V0JywnbHNqc29uJywnY29weXRvJywnY2F0JyksJ1JDTE9ORV9WRVJCX0ZPUkJJRERFTicpCjE4OTogICAgICAgIGFyZ3Y9W3NlbGYuZXhlY3V0YWJsZSwnLS1jb25maWcnLHN0cihzZWxmLmNvbmZpZ19wYXRoKSwnLS1hc2stcGFzc3dvcmQ9W1JFREFDVEVEXSwnLS1sb2ctbGV2ZWwnLCdFUlJPUicsCjE5NDogICAgICAgIHJjLG91dD1ib3VuZGVkX3Byb2Nlc3MoYXJndixzZWxmLmVudixsaW1pdCxzZWNvbmRzKQoxOTc6ICAgIGRlZiBxdW90YShzZWxmLHJlbW90ZSk6CjE5ODogICAgICAgIG5lZWQocmVtb3RlIGluIHNlbGYuY3J5cHQsJ1FVT1RBX1JFTU9URV9GT1JCSURERU4nKQoxOTk6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnYWJvdXQnLHJlbW90ZSsnOicsJy0tanNvbiddLDE2Mzg0KQoyMDU6ICAgIGRlZiBiaW5kKHNlbGYsbWFuaWZlc3QpOgoyMDY6ICAgICAgICBjb3JlLnZhbGlkYXRlX21hbmlmZXN0KG1hbmlmZXN0KQoyMDc6ICAgICAgICBrbm93bj17ZVsnYWNjb3VudF9pZCddOmVbJ2NyeXB0X3JlbW90ZSddIGZvciBlIGluIHNlbGYuZW50cmllc30KMjA4OiAgICAgICAgbmVlZChhbGwoa25vd24uZ2V0KHJbJ2FjY291bnRfaWQnXSk9PXJbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIG1hbmlmZXN0WydyZXBsaWNhcyddKSwnTUFOSUZFU1RfQ09ORklHX01JU01BVENIJykKMjA5OiAgICAgICAgc2VsZi5tYW5pZmVzdD1tYW5pZmVzdAoyMTA6ICAgIGRlZiBhZGRyZXNzKHNlbGYscmVtb3RlLG5hbWU9Tm9uZSk6CjIxMTogICAgICAgIG5lZWQoc2VsZi5tYW5pZmVzdCBpcyBub3QgTm9uZSwnTUFOSUZFU1RfTk9UX0JPVU5EJykKMjEyOiAgICAgICAgbmVlZChyZW1vdGUgaW4ge3JbJ2NyeXB0X3JlbW90ZSddIGZvciByIGluIHNlbGYubWFuaWZlc3RbJ3JlcGxpY2FzJ119LCdXUklURV9SRU1PVEVfRk9SQklEREVOJykKMjEzOiAgICAgICAgcHJlZml4PXJlbW90ZSsnOicrc2VsZi5tYW5pZmVzdFsnbmFtZXNwYWNlJ10KMjE1OiAgICAgICAgbmFtZXM9e3BbJ25hbWUnXSBmb3IgcCBpbiBzZWxmLm1hbmlmZXN0WydwYXJ0cyddfXx7J21hbmlmZXN0Lmpzb24nLCdTRUFMRUQuanNvbid9CjIxODogICAgZGVmIGFic2VudChzZWxmLHJlbW90ZSk6CjIxOTogICAgICAgIHJjLF89c2VsZi5jYWxsKFsnbHNqc29uJyxzZWxmLmFkZHJlc3MocmVtb3RlKSwnLS1tYXgtZGVwdGgnLCcxJ10sNjU1MzYpCjIyMDogICAgICAgIGlmIHJjPT0wOnJhaXNlIFN0b3AoJ0dFTkVSQVRJT05fQUxSRUFEWV9FWElTVFMnKQoyMjE6ICAgICAgICBuZWVkKHJjIGluICgzLDQpLCdHRU5FUkFUSU9OX0FCU0VOQ0VfVU5QUk9WRU4nKQoyMjI6ICAgIGRlZiBwdXQoc2VsZixyZW1vdGUsbmFtZSxwYXRoKToKMjIzOiAgICAgICAgZGVzdD1zZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpO3JlYWRfc2VjdXJlKHBhdGgsTUFYX1BBWUxPQURfQllURVMpCjIyODogICAgICAgIG5lZWQocmM9PTAsJ0NMT1VEX0NPUFlfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjI5OiAgICBkZWYgZ2V0KHNlbGYscmVtb3RlLG5hbWUsbGltaXQpOgoyMzE6ICAgICAgICByYyxvdXQ9c2VsZi5jYWxsKFsnY2F0JyxzZWxmLmFkZHJlc3MocmVtb3RlLG5hbWUpLCctLWNvdW50JyxzdHIobGltaXQpXSxsaW1pdCkKMjMyOiAgICAgICAgbmVlZChyYz09MCwnQ0xPVURfUkVBREJBQ0tfRkFJTEVEX1JDXycrc3RyKHJjKSkKMjM2OmRlZiBwaXBlbGluZSh3b3JrLGZpbGVzLGVudHJpZXMsY2xvdWQsZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHJlc2VydmUsZ3VhcmQsY2xvY2s9bGFtYmRhOmludCh0aW1lLnRpbWUoKSkpOgoyMzc6ICAgICIiIk9uZSBib3VuZGVkIHJlYWwgYmFja3VwOyBubyBmYWxsYmFjaywgbm8gcmVzdW1lLCBubyBjbG91ZCBkZWxldGlvbiBvbiBmYWlsdXJlLiIiIgoyMzk6ICAgIG5lZWQoY29yZS52YWxpZF9uYW1lKGdlbmVyYXRpb24pIGFuZCBjb3JlLnZhbGlkX25hbWUobG9naWNhbF9pZCksJ0dFTkVSQVRJT05fSUQnKQoyNDg6ICAgIGZvciBlIGluIGVudHJpZXM6cXVvdGFzW2VbJ2FjY291bnRfaWQnXV09Y2xvdWQucXVvdGEoZVsnY3J5cHRfcmVtb3RlJ10pCjI0OTogICAgYWxsb2M9Y29yZS5hbGxvY2F0ZShlbnRyaWVzLHF1b3RhcyxwYXlsb2FkX2xlbixyZXNlcnZlLGNsb2NrKCkpCjI1MDogICAgbT1jb3JlLm1ha2VfbWFuaWZlc3QoZ2VuZXJhdGlvbixsb2dpY2FsX2lkLHBheWxvYWRfbGVuLHBheWxvYWRfc2hhLHBhcnRzLGFsbG9jKQoyNTE6ICAgIG1iPWNvcmUuY2Fub25pY2FsX2J5dGVzKG0pO21oPWNvcmUubWFuaWZlc3RfaGFzaChtKTtjbG91ZC5iaW5kKG0pCjI1MjogICAgY3JlYXRlKHdvcmsvJ2FsbG9jYXRpb24uanNvbicsY29yZS5jYW5vbmljYWxfYnl0ZXMoYWxsb2MpKTtjcmVhdGUod29yay8nbWFuaWZlc3QuanNvbicsbWIpCjI1NDogICAgICAgIGd1YXJkKCk7Y2xvdWQuYWJzZW50KGVbJ2NyeXB0X3JlbW90ZSddKQoyNTU6ICAgICAgICBxPWNsb3VkLnF1b3RhKGVbJ2NyeXB0X3JlbW90ZSddKQoyNTY6ICAgICAgICBuZWVkKGNvcmUucXVvdGFfcmVhc29uKHEsY2xvY2soKSkgaXMgTm9uZSBhbmQgcVsnZnJlZSddPj1hbGxvY1sncmVxdWlyZWRfZnJlZV9ieXRlcyddLCdTRUxFQ1RFRF9BQ0NPVU5UX0NBUEFDSVRZX0NIQU5HRUQnKQoyNTk6ICAgICAgICByZW1vdGU9clsnY3J5cHRfcmVtb3RlJ107Z3VhcmQoKQoyNjM6ICAgICAgICAgICAgY2xvdWQucHV0KHJlbW90ZSxwYXJ0WyduYW1lJ10sd29yay9wYXJ0WyduYW1lJ10pCjI2NDogICAgICAgIGNsb3VkLnB1dChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLHdvcmsvJ21hbmlmZXN0Lmpzb24nKQoyNjU6ICAgICAgICBuZWVkKGNsb3VkLmdldChyZW1vdGUsJ21hbmlmZXN0Lmpzb24nLGxlbihtYikrMSk9PW1iLCdNQU5JRkVTVF9SRUFEQkFDS19NSVNNQVRDSCcpCjI2ODogICAgICAgICAgICBiPWNsb3VkLmdldChyZW1vdGUscGFydFsnbmFtZSddLHBhcnRbJ3NpemUnXSsxKQoyNzI6ICAgICAgICByZWNlaXB0cy5hcHBlbmQoeyoqciwnZ2VuZXJhdGlvbic6Z2VuZXJhdGlvbiwnbWFuaWZlc3Rfc2hhMjU2JzptaCwncGF5bG9hZF9zaGEyNTYnOmZ1bGwuaGV4ZGlnZXN0KCksCjI3NjogICAgc2VhbD17J3NjaGVtYV92ZXJzaW9uJzoyLCdzdGF0ZSc6J1NFQUxFRCcsJ2dlbmVyYXRpb24nOmdlbmVyYXRpb24sJ2xvZ2ljYWxfaWQnOmxvZ2ljYWxfaWQsCjI3NzogICAgICAgICAgJ21hbmlmZXN0X3NoYTI1Nic6bWgsJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddLCdyZWNlaXB0cyc6cmVjZWlwdHMsCjI3ODogICAgICAgICAgJ2FjY2VwdGFuY2UnOidJREVOVElDQUxfU0VBTF9SRVFVSVJFRF9PTl9CT1RIX05BTUVEX0FDQ09VTlRTJ30KMjc5OiAgICBzYj1jb3JlLmNhbm9uaWNhbF9ieXRlcyhzZWFsKTtuZWVkKGxlbihzYik8PWNvcmUuU0VBTF9NQVhfQllURVMsJ1NFQUxfQk9VTkQnKQoyODA6ICAgIGNyZWF0ZSh3b3JrLydTRUFMRUQuanNvbicsc2IpCjI4MTogICAgc2VhbHM9W10KMjgzOiAgICAgICAgZ3VhcmQoKTtjbG91ZC5wdXQoclsnY3J5cHRfcmVtb3RlJ10sJ1NFQUxFRC5qc29uJyx3b3JrLydTRUFMRUQuanNvbicpCjI4NDogICAgICAgIG9ic2VydmVkPWNsb3VkLmdldChyWydjcnlwdF9yZW1vdGUnXSwnU0VBTEVELmpzb24nLGxlbihzYikrMSkKMjg1OiAgICAgICAgbmVlZChvYnNlcnZlZD09c2IsJ1NFQUxfUkVBREJBQ0tfTUlTTUFUQ0gnKTtzZWFscy5hcHBlbmQob2JzZXJ2ZWQpCjI4NjogICAgbmVlZChsZW4oc2VhbHMpPT0yIGFuZCBhbGwoYj09c2IgZm9yIGIgaW4gc2VhbHMpLCdTRUFMRURfUVVPUlVNX1JFUVVJUkVEJykKMjkyOiAgICBjcmVhdGUod29yay8nUVVPUlVNX1ZFUklGSUVELmpzb24nLGNvcmUuY2Fub25pY2FsX2J5dGVzKHsnbWFuaWZlc3Rfc2hhMjU2JzptaCwnc2VhbF9zaGEyNTYnOnNoYShzYiksJ3JlcGxpY2FzJzptWydyZXBsaWNhcyddfSkpCjI5NTogICAgcmVzdWx0PXsnc3RhdGUnOidTRUFMRURfUVVPUlVNX1ZFUklGSUVEJywnbWFuaWZlc3QnOm0sJ3JlY2VpcHRzJzpyZWNlaXB0cywnc2VhbF9zaGEyNTYnOnNoYShzYiksCjI5NjogICAgICAgICAgICAnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnOnJlbWFpbmluZywncmVzdG9yZV9kcmlsbF9wZXJmb3JtZWQnOkZhbHNlLA== +PIPE_50_SCORE=2 +PIPE_50_BASENAME=ct112_handler.py +PIPE_50_PATH_SHA256=c2912ea3b1faaa7d9eba5ff23da881c38935d44e7144f34c9317431973c58107 +PIPE_50_FILE_SHA256=8cac6e627d5e7abe5d3163cdd24911995a1e3f45c776f9373c2aa68784f5ec6c +PIPE_50_SCHEDULE_TARGET_COUNT=0 +PIPE_50_QEMU_EXECUTION_DIAG_COUNT=0 +PIPE_50_SELFTEST_REPLACEMENT486_COUNT=0 +PIPE_50_VZDUMP_QEMU_COUNT=0 +PIPE_50_RCLONE_COUNT=19 +PIPE_50_CLOUD_QUORUM_COUNT=0 +PIPE_50_SEAL_WRITTEN_COUNT=0 +PIPE_50_PAYLOAD_PARTS_COUNT=0 +PIPE_50_TRANSPORT_COUNT=1 +PIPE_50_RESTORE_VALIDATION_COUNT=0 +PIPE_50_SCHEDULE_RESULT_COUNT=0 +PIPE_50_RELEVANT_LINE_COUNT=49 +PIPE_50_RELEVANT_B64=ODppbXBvcnQgZ3Vlc3QyNjYsbGFyZ2UyNjQgYXMgbGFyZ2UscHZlMjY1LHB2ZTI4Mix0cmFuc3BvcnQyNjEgYXMgdCx2MmNvcmUgYXMgY29yZQoxMjpSQ0xPTkU9UGF0aCgnL3Vzci9iaW4vcmNsb25lJyk7IFJDTE9ORV9TSEE9JzIwZGYzZDVlYWM1ZDRlMTg3Y2U2MzhlNDIxNjM1NGU3ZmE2Nzc4YzNjNTFmMGNhZjQ4YzQ4YWNjYTk2ODYzNTQnCjEzOlJDTE9ORV9DRkc9UGF0aCgnL3Jvb3QvLmNvbmZpZy9yY2xvbmUvcmNsb25lLmNvbmYnKQoxNTpWWkRVTVA9UGF0aCgnL3Vzci9iaW4vdnpkdW1wJyk7IFZaRFVNUF9TSEE9JzIxMzM5ZDAwOWFmZDU1Y2I3ZWM2MTNiNjRjMWY0OTNiMmE3ZGJkMThiODViNGQ3MTI5MDllZjZkNjcxMGY0ZWEnCjI1OiAgICBhcmd2PVtzdHIoUFZFU0gpLCdnZXQnLGVuZHBvaW50LCptYXAoc3RyLGFyZ3MpLCctLW91dHB1dC1mb3JtYXQnLCdqc29uJ10KMjY6ICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD00NSxjaGVjaz1GYWxzZSxlbnY9RU5WKQozODogICAgcD1QYXRoKCcvZXRjL3Z6ZHVtcC5jb25mJyk7c3Q9b3Muc3RhdChwLGZvbGxvd19zeW1saW5rcz1GYWxzZSkKMzk6ICAgIGlmIG5vdCBzdGF0LlNfSVNSRUcoc3Quc3RfbW9kZSkgb3Igc3Quc3RfdWlkIT0wIG9yIHN0LnN0X3NpemU+MTAyNCoxMDI0OnJhaXNlIFJ1bnRpbWVFcnJvcignVlpEVU1QX0RFRkFVTFRTX0ZJTEUnKQo0OTogICAgICAgIHZtaWQ9ci5nZXQoJ3ZtaWQnKQo1MDogICAgICAgIGlmIHR5cGUodm1pZCkgaXMgbm90IGludDpyYWlzZSBSdW50aW1lRXJyb3IoJ1BWRV9WTUlEX1NDSEVNQScpCjUxOiAgICAgICAgY29uZmlnc1t2bWlkXT1fanNvbl9jbWQoZiIvbm9kZXMvcHZlMDEve3JbJ3R5cGUnXX0ve3ZtaWR9L2NvbmZpZyIpCjYwOiAgICBpZiBwbGFuLmdldCgnZ2xvYmFsX2Jsb2NrZXJzJykhPVtdOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfR0xPQkFMX0JMT0NLRVJTJykKNjE6ICAgIHZtaWRzPVtqLmdldCgndm1pZCcpIGZvciBqIGluIGpvYnMgaWYgaXNpbnN0YW5jZShqLGRpY3QpXQo2MjogICAgaWYgbGVuKHZtaWRzKSE9bGVuKGpvYnMpIG9yIGxlbih2bWlkcykhPWxlbihzZXQodm1pZHMpKTpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1BMQU5fTUVNQkVSU0hJUCcpCjYzOiAgICBtYXRjaGVzPVtqIGZvciBqIGluIGpvYnMgaWYgai5nZXQoJ3ZtaWQnKT09MTEyXQo2ODogICAgaWYgam9iLmdldCgnY292ZXJhZ2VfZWxpZ2libGUnKSBpcyBub3QgVHJ1ZSBvciBqb2IuZ2V0KCdibG9ja2VycycpIT1bXTpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1BMQU5fQkxPQ0tFRCcpCjc0OmRlZiBfYXNzZXJ0X2xpdmVfc3RhdGVfdW5jaGFuZ2VkKGJlZm9yZSxhZnRlcix2bWlkKToKNzU6ICAgIGlmIHR5cGUoYmVmb3JlKSBpcyBub3QgZGljdCBvciB0eXBlKGFmdGVyKSBpcyBub3QgZGljdDpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1NUQVRFX1NDSEVNQScpCjc3OiAgICBpZiB0eXBlKG9sZCkgaXMgbm90IGxpc3Qgb3IgdHlwZShuZXcpIGlzIG5vdCBsaXN0OnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfU0NIRU1BJykKNzk6ICAgICAgICBpZiBhbnkodHlwZSh4KSBpcyBub3QgZGljdCBvciB0eXBlKHguZ2V0KCd2bWlkJykpIGlzIG5vdCBpbnQgZm9yIHggaW4gcm93cyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9TQ0hFTUEnKQo4MDogICAgICAgIHJldHVybiBzb3J0ZWQoKHhbJ3ZtaWQnXSx4LmdldCgndHlwZScpLHguZ2V0KCdub2RlJykseC5nZXQoJ3N0YXR1cycpLHguZ2V0KCd0ZW1wbGF0ZScpKSBmb3IgeCBpbiByb3dzKQo4MTogICAgaWYgbWVtYmVyc2hpcChvbGQpIT1tZW1iZXJzaGlwKG5ldyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9NRU1CRVJTSElQX0NIQU5HRUQnKQo4MjogICAgaWYgYmVmb3JlLmdldCgnZ2xvYmFsX2RlZmF1bHRzJykhPWFmdGVyLmdldCgnZ2xvYmFsX2RlZmF1bHRzJyk6cmFpc2UgUnVudGltZUVycm9yKCdDVDExMl9TVEFURV9ERUZBVUxUU19DSEFOR0VEJykKODM6ICAgIGE9W2ogZm9yIGogaW4gb2xkIGlmIGouZ2V0KCd2bWlkJyk9PXZtaWRdO2I9W2ogZm9yIGogaW4gbmV3IGlmIGouZ2V0KCd2bWlkJyk9PXZtaWRdCjg0OiAgICBpZiBsZW4oYSkhPTEgb3IgbGVuKGIpIT0xOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfTUVNQkVSU0hJUF9DSEFOR0VEJykKODY6ICAgICAgICBpZiBhWzBdLmdldChrZXkpIT1iWzBdLmdldChrZXkpOnJhaXNlIFJ1bnRpbWVFcnJvcignQ1QxMTJfU1RBVEVfQ09ORklHX0NIQU5HRUQnKQoxMDM6ICAgIGIsaWRlbnRpdHk9dC5yZWFkX3NlY3VyZShSQ0xPTkVfQ0ZHLHQuTUFYX0NPTkZJR19CWVRFUyxwcml2YXRlPVRydWUpCjEwNTogICAgaWYgbGVuKGVudHJpZXMpIT0xMyBvciBsZW4oe3hbJ2FjY291bnRfaWQnXSBmb3IgeCBpbiBlbnRyaWVzfSkhPTEzOnJhaXNlIFJ1bnRpbWVFcnJvcignUkNMT05FX0lOVkVOVE9SWScpCjEwNjogICAgaWYgaGFzaGxpYi5zaGEyNTYoYmluZGluZy5lbmNvZGUoKSkuaGV4ZGlnZXN0KCkhPUJJTkRJTkdfRlA6cmFpc2UgUnVudGltZUVycm9yKCdSQ0xPTkVfQklORElORycpCjEyMTogICAgICAgIHNlbGYuc25hcHNob3Q9c2VsZi53b3JrLydyY2xvbmUuc25hcHNob3QnO3NlbGYuaW5uZXI9Tm9uZQoxMjU6ICAgICAgICBpZiBlIT1zZWxmLmVudHJpZXMgb3IgYmluZCE9c2VsZi5iaW5kaW5nOnJhaXNlIFJ1bnRpbWVFcnJvcignUkNMT05FX1NFTUFOVElDX0RSSUZUJykKMTI3OiAgICAgICAgc2VsZi5pbm5lcj1sYXJnZS5SZWFkT25seUxhcmdlKHN0cihSQ0xPTkUpLHNlbGYuc25hcHNob3QsZSxiaW5kLHNlbGYuZ3VhcmQsc2VsZi53b3JrLHNlbGYuZGVhZGxpbmUsc2VsZi5sb2dpY2FsX2lkKQoxMjk6ICAgIGRlZiBsaXN0X2dlbmVyYXRpb25zKHNlbGYsKmEsKiprKTpyZXR1cm4gc2VsZi5fZW5zdXJlKCkubGlzdF9nZW5lcmF0aW9ucygqYSwqKmspCjEzODogICAgZm9yIHAsaCBpbiAoKFJDTE9ORSxSQ0xPTkVfU0hBKSwoVlpEVU1QLFZaRFVNUF9TSEEpLChaU1RELFpTVERfU0hBKSk6CjE0MjpkZWYgcnVuX3RhcmdldCh0YXJnZXQsc3RhdGVfd3JpdGVyPU5vbmUpOgoxNDM6ICAgIGlmIG5vdCBpc2luc3RhbmNlKHRhcmdldCxkaWN0KSBvciB0YXJnZXQuZ2V0KCdsb2dpY2FsX2lkJykhPUNUX0lEIG9yIHRhcmdldC5nZXQoJ3ZtaWQnKSE9MTEyOnJldHVybiAoXyBmb3IgXyBpbiAoKSkudGhyb3coUnVudGltZUVycm9yKCdDVDExMl9ERVNDUklQVE9SJykpCjE0NTogICAgdG9vbHM9eyd2emR1bXAnOl90b29sKFZaRFVNUCxWWkRVTVBfU0hBKSwnenN0ZCc6X3Rvb2woWlNURCxaU1REX1NIQSl9O190b29sKFJDTE9ORSxSQ0xPTkVfU0hBKQoxNTA6ICAgICAgICBfYXNzZXJ0X2xpdmVfc3RhdGVfdW5jaGFuZ2VkKGN1cnJlbnQsZnJlc2hfcGxhbiwxMTIpCjE1NjogICAgZ2VuZXJhdGlvbj0nVjItJyt0aW1lLnN0cmZ0aW1lKCclWSVtJWRUJUglTSVTWicsdGltZS5nbXRpbWUoKSkrJy0nK3NlY3JldHMudG9rZW5faGV4KDYpCjE1NzogICAgd29yaz1TVEFHSU5HLygnYmFja3VwLXYyLScrZ2VuZXJhdGlvbik7d29yay5ta2Rpcihtb2RlPTBvNzAwLHBhcmVudHM9RmFsc2UsZXhpc3Rfb2s9RmFsc2UpCjE1OTogICAgZGVmIGNsb3VkX2d1YXJkKCk6CjE2MTogICAgICAgIGlmIGUhPWVudHJpZXMgb3IgYiE9YmluZGluZzpyYWlzZSBSdW50aW1lRXJyb3IoJ1JDTE9ORV9TRU1BTlRJQ19EUklGVCcpCjE2MjogICAgd3JpdGVyPWxhcmdlLkNsb3VkTGFyZ2Uoc3RyKFJDTE9ORSksUkNMT05FX0NGRyxlbnRyaWVzLGJpbmRpbmcsY2xvdWRfZ3VhcmQsd29yay8ndXBsb2FkJyxkZWFkbGluZSkKMTYzOiAgICByZWFkZXI9TGF6eVJlYWRlcih3b3JrLydyZXN0b3JlJyxlbnRyaWVzLGJpbmRpbmcsY2xvdWRfZ3VhcmQsZGVhZGxpbmUsQ1RfSUQpCjE2OTogICAgICAgIHI9Z3Vlc3QyNjYucnVuX2Zsb3coam9iLHdvcmssZW50cmllcyx3cml0ZXIscmVhZGVyLHByb2R1Y2UscHJvZHVjZXJfZ3VhcmQsY2xvdWRfZ3VhcmQsY29tcHJlc3Npb24sZ2VuZXJhdGlvbixsYW1iZGEgayx2Ok5vbmUpCjE3MjogICAgICAgIGlmIHIuZ2V0KCdhcmNoaXZlX2Nsb3VkX3Jlc3RvcmVfdmVyaWZpZWQnKSBpcyBub3QgVHJ1ZSBvciByLmdldCgnbG9jYWxfcGF5bG9hZF9maWxlc19yZW1haW5pbmcnKSE9MDpyYWlzZSBSdW50aW1lRXJyb3IoJ0NUMTEyX1JFU1RPUkVfQ09OVFJBQ1QnKQoxNzM6ICAgICAgICBvdXQ9eyoqciwnc3RhdHVzJzonT0snLCdjbG91ZF9vbmx5X2luZGVwZW5kZW50X3Jlc3RvcmVfdmVyaWZpZWQnOlRydWUsJ2xvY2FsX3BheWxvYWRfZmlsZXNfcmVtYWluaW5nJzowfQoxNzY6ICAgICAgICBpZiBzdGF0ZV93cml0ZXIgaXMgbm90IE5vbmU6CjE3NzogICAgICAgICAgICBzdGF0ZV93cml0ZXIoQ1RfSUQsJ1NVQ0NFU1MnLGdlbmVyYXRpb249clsnZ2VuZXJhdGlvbiddLHBheWxvYWRfc2hhMjU2PXJbJ3BheWxvYWRfc2hhMjU2J10sbWFuaWZlc3Rfc2hhMjU2PXJbJ21hbmlmZXN0X3NoYTI1NiddLHJlcGxpY2FzPXJbJ3JlcGxpY2FzJ10sZ3JlZW5fdmVyaWZpZWQ9VHJ1ZSk= +VM150_TARGET_COUNT=1 +VM150_TARGET_1_KEY_COUNT=5 +VM150_TARGET_1_ID_SHA256=9ae2bdd7beedc2e766c6b76585530e16925115707dc7a06ab5ee4aa2776b2c7b +VM150_TARGET_1_KIND=VM +VM150_TARGET_1_LIFECYCLE=ACTIVE +VM150_TARGET_1_LOGICAL_ID=vm150 +VM150_TARGET_1_OWNER_SHA256=1ec037ee8d7939e1aad0c2701a1c4f09849abb191ec016f69e6f8de4142276c3 +VM150_LOCAL_ARTIFACT_CANDIDATE_COUNT=234 +VM150_ART_1_AGE_HOURS=0.0 +VM150_ART_1_TYPE=dir +VM150_ART_1_BASENAME=w2-snikket-99593.pS6Nvj +VM150_ART_1_PATH_SHA256=b7280f84a78fd896bef907f4f7841d4cb272d4dff9028a0eacb2758626d8f6bb +VM150_ART_1_SIZE_BYTES=0 +VM150_ART_2_AGE_HOURS=320.61 +VM150_ART_2_TYPE=dir +VM150_ART_2_BASENAME=vm150 +VM150_ART_2_PATH_SHA256=10f622a31055c4864180c3802a96db3520bf84037d07047fe5b38045fea5e420 +VM150_ART_2_SIZE_BYTES=0 +VM150_ART_3_AGE_HOURS=320.61 +VM150_ART_3_TYPE=file +VM150_ART_3_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_3_PATH_SHA256=a8d063a7f40a4bce8f0f8bb43d29f032fb5771ef6cd54d26fcae79a47dddc704 +VM150_ART_3_SIZE_BYTES=410 +VM150_ART_4_AGE_HOURS=747.39 +VM150_ART_4_TYPE=dir +VM150_ART_4_BASENAME=vm150 +VM150_ART_4_PATH_SHA256=80eb510475716c444600d2bdeb1f7c7d2253d4d8b54371cd06ac0d764e2acbcc +VM150_ART_4_SIZE_BYTES=0 +VM150_ART_5_AGE_HOURS=747.39 +VM150_ART_5_TYPE=dir +VM150_ART_5_BASENAME=vm150 +VM150_ART_5_PATH_SHA256=bcca7344f0b103f8eaefe32d2b8e37c9652f3ee96b6417573ff297301fa5ac24 +VM150_ART_5_SIZE_BYTES=0 +VM150_ART_6_AGE_HOURS=747.39 +VM150_ART_6_TYPE=file +VM150_ART_6_BASENAME=vm150-pve01-20260904T053517Z.json +VM150_ART_6_PATH_SHA256=efad5cd2aee419fd80f4308fd06a30e54426d4bd98793b8cedea8fa9bb27ca38 +VM150_ART_6_SIZE_BYTES=1021 +VM150_ART_7_AGE_HOURS=747.4 +VM150_ART_7_TYPE=dir +VM150_ART_7_BASENAME=vm150-pve01-20260904T053517Z +VM150_ART_7_PATH_SHA256=d847210e0592385f9929e2afb29680a2bed7509e654a2bc38b554ee94a795a65 +VM150_ART_7_SIZE_BYTES=0 +VM150_ART_8_AGE_HOURS=747.4 +VM150_ART_8_TYPE=dir +VM150_ART_8_BASENAME=vm150 +VM150_ART_8_PATH_SHA256=1d0e204a3e2ac95c18ddf5206f84b9291568045c618c833f1a8b9d5ea07a7437 +VM150_ART_8_SIZE_BYTES=0 +VM150_ART_9_AGE_HOURS=747.4 +VM150_ART_9_TYPE=file +VM150_ART_9_BASENAME=vm150-pve01-20260904T053517Z.json +VM150_ART_9_PATH_SHA256=7adac9913435c445ce775f7f45aab219a1ef179461f3a46061617f6550d9f1d8 +VM150_ART_9_SIZE_BYTES=1955 +VM150_ART_10_AGE_HOURS=747.43 +VM150_ART_10_TYPE=file +VM150_ART_10_BASENAME=vzdump-qemu-150-2026_09_04-08_35_17.log +VM150_ART_10_PATH_SHA256=8b0b8e9dce88409426ab8629805e1743cf198dbc60614dff7af2ad667f4e8206 +VM150_ART_10_SIZE_BYTES=1545 +VM150_ART_11_AGE_HOURS=747.44 +VM150_ART_11_TYPE=dir +VM150_ART_11_BASENAME=vm150 +VM150_ART_11_PATH_SHA256=e77258c0b7909f071a70d77803da933aa18257170c87a18a6d01591714097c11 +VM150_ART_11_SIZE_BYTES=0 +VM150_ART_12_AGE_HOURS=752.52 +VM150_ART_12_TYPE=file +VM150_ART_12_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_12_PATH_SHA256=5c1e7747144c0b33d9a1bc8b5908c9de343759b0c91587096e06d305fc7ff138 +VM150_ART_12_SIZE_BYTES=410 +VM150_ART_13_AGE_HOURS=752.52 +VM150_ART_13_TYPE=file +VM150_ART_13_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_13_PATH_SHA256=bf3de53f843a0de30eef4838950c1def4d8d38491aae6cfa84e54eb07d028e65 +VM150_ART_13_SIZE_BYTES=410 +VM150_ART_14_AGE_HOURS=760.38 +VM150_ART_14_TYPE=file +VM150_ART_14_BASENAME=vm150-pve01-20260903T163557Z.json +VM150_ART_14_PATH_SHA256=490cb5fb334b0fe267cc10283df8b51851b37403c9da4c04068949fb8fd78d1c +VM150_ART_14_SIZE_BYTES=1021 +VM150_ART_15_AGE_HOURS=760.39 +VM150_ART_15_TYPE=dir +VM150_ART_15_BASENAME=vm150-pve01-20260903T163557Z +VM150_ART_15_PATH_SHA256=cd5630b6e2aefdb449b0ce598c5e3907c63f8a0cd8054a313a8c7db83d744758 +VM150_ART_15_SIZE_BYTES=0 +VM150_ART_16_AGE_HOURS=760.39 +VM150_ART_16_TYPE=file +VM150_ART_16_BASENAME=vm150-pve01-20260903T163557Z.json +VM150_ART_16_PATH_SHA256=69aa2c3964c59caca61cd551e3b70e00f0a633a9e1d64c94f25bb14d5ae5b32c +VM150_ART_16_SIZE_BYTES=1955 +VM150_ART_17_AGE_HOURS=760.42 +VM150_ART_17_TYPE=file +VM150_ART_17_BASENAME=vzdump-qemu-150-2026_09_03-19_35_57.log +VM150_ART_17_PATH_SHA256=994081d142140f41e10d7fd23767eb91964451d7e1cd9835843e19dbf2372b3e +VM150_ART_17_SIZE_BYTES=1642 +VM150_ART_18_AGE_HOURS=774.38 +VM150_ART_18_TYPE=file +VM150_ART_18_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_18_PATH_SHA256=e39e01b8035f5baca1c53b1080423328febdfe29bc6e5cd681aef84e400c8a8d +VM150_ART_18_SIZE_BYTES=1021 +VM150_ART_19_AGE_HOURS=774.39 +VM150_ART_19_TYPE=dir +VM150_ART_19_BASENAME=vm150-pve01-20260903T023609Z +VM150_ART_19_PATH_SHA256=2d1f7498abc5587c3472348ee1c8a60a571eddfab42fa641dedeefbc1c70db6b +VM150_ART_19_SIZE_BYTES=0 +VM150_ART_20_AGE_HOURS=774.39 +VM150_ART_20_TYPE=file +VM150_ART_20_BASENAME=vm150-pve01-20260903T023609Z.json +VM150_ART_20_PATH_SHA256=f62ae052c989169ee85af087628f4a00075af8872474da6db8e6f42e1cf0c35d +VM150_ART_20_SIZE_BYTES=1955 +VM150_ART_21_AGE_HOURS=774.42 +VM150_ART_21_TYPE=file +VM150_ART_21_BASENAME=vzdump-qemu-150-2026_09_03-05_36_09.log +VM150_ART_21_PATH_SHA256=2ec9232a51ca028cac0ffc94caf7c39ced6837af5aaa1c1f35e07ce150422291 +VM150_ART_21_SIZE_BYTES=1643 +VM150_ART_22_AGE_HOURS=776.45 +VM150_ART_22_TYPE=file +VM150_ART_22_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_22_PATH_SHA256=25c86372ed373aaafe0a6cfdf95e3011ad3dd464d52b57a09a9dc0d9750114f6 +VM150_ART_22_SIZE_BYTES=410 +VM150_ART_23_AGE_HOURS=787.31 +VM150_ART_23_TYPE=file +VM150_ART_23_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_23_PATH_SHA256=4e2bf58cf003f9d792ca892af124e65d08132b49a7942013a5c1ad6035178918 +VM150_ART_23_SIZE_BYTES=1021 +VM150_ART_24_AGE_HOURS=787.32 +VM150_ART_24_TYPE=dir +VM150_ART_24_BASENAME=vm150-pve01-20260902T134020Z +VM150_ART_24_PATH_SHA256=c56277d8c832aa2b8dfdec3b8107b3239ad2940c9c4ea3a3e231c7be0b663fd5 +VM150_ART_24_SIZE_BYTES=0 +VM150_ART_25_AGE_HOURS=787.32 +VM150_ART_25_TYPE=file +VM150_ART_25_BASENAME=vm150-pve01-20260902T134020Z.json +VM150_ART_25_PATH_SHA256=15506e5235ff1a6c4b5a9a119c89d88b801edaf45ec36dd6d34e121e0b6cffd7 +VM150_ART_25_SIZE_BYTES=1955 +VM150_ART_26_AGE_HOURS=787.35 +VM150_ART_26_TYPE=file +VM150_ART_26_BASENAME=vzdump-qemu-150-2026_09_02-16_40_21.log +VM150_ART_26_PATH_SHA256=97d587e1eb5e71a1377ceb15fbf78deccb28dc213668564c32e2b11f9ea84b82 +VM150_ART_26_SIZE_BYTES=1547 +VM150_ART_27_AGE_HOURS=800.37 +VM150_ART_27_TYPE=file +VM150_ART_27_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_27_PATH_SHA256=0eb5d296516657ca0bb484aa1a8ed0e75adf2aa7f4d9d9657e6b4f41a082ef93 +VM150_ART_27_SIZE_BYTES=1021 +VM150_ART_28_AGE_HOURS=800.38 +VM150_ART_28_TYPE=dir +VM150_ART_28_BASENAME=vm150-pve01-20260902T003622Z +VM150_ART_28_PATH_SHA256=787dee1fc3eeadf3b3b05814172941da72583d975e732b41f5acba8700004ca2 +VM150_ART_28_SIZE_BYTES=0 +VM150_ART_29_AGE_HOURS=800.38 +VM150_ART_29_TYPE=file +VM150_ART_29_BASENAME=vm150-pve01-20260902T003622Z.json +VM150_ART_29_PATH_SHA256=f7a84691ac78b962f81f7b6343de5279cb774788e9b959f2d8aa403374170ac3 +VM150_ART_29_SIZE_BYTES=1955 +VM150_ART_30_AGE_HOURS=800.41 +VM150_ART_30_TYPE=file +VM150_ART_30_BASENAME=vzdump-qemu-150-2026_09_02-03_36_22.log +VM150_ART_30_PATH_SHA256=d0dd004862461bce7dc5e31a659dc1beab560ff18427af4e105553c2ca33b49d +VM150_ART_30_SIZE_BYTES=1645 +VM150_ART_31_AGE_HOURS=800.59 +VM150_ART_31_TYPE=file +VM150_ART_31_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_31_PATH_SHA256=1fc33e47ebf31c5ef4bba93d332ec6e11bd3476d1baf5ed62a0cf0546e0cf6be +VM150_ART_31_SIZE_BYTES=410 +VM150_ART_32_AGE_HOURS=800.59 +VM150_ART_32_TYPE=file +VM150_ART_32_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_32_PATH_SHA256=3a99d66a1f0199429e3aa558e16916279295a99022a109b8e0bc6e2a3c67a587 +VM150_ART_32_SIZE_BYTES=410 +VM150_ART_33_AGE_HOURS=814.34 +VM150_ART_33_TYPE=file +VM150_ART_33_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_33_PATH_SHA256=53532b6be1d08637ff25a37e99b7404393e5fa1c94014c8115dc54f8bfe45fb2 +VM150_ART_33_SIZE_BYTES=1021 +VM150_ART_34_AGE_HOURS=814.35 +VM150_ART_34_TYPE=dir +VM150_ART_34_BASENAME=vm150-pve01-20260901T103753Z +VM150_ART_34_PATH_SHA256=fbd20ea7e9b92f37a1064830b2254673b4ce5295139efbf6aaca1cdf6d5d91d1 +VM150_ART_34_SIZE_BYTES=0 +VM150_ART_35_AGE_HOURS=814.35 +VM150_ART_35_TYPE=file +VM150_ART_35_BASENAME=vm150-pve01-20260901T103753Z.json +VM150_ART_35_PATH_SHA256=d43415b966d396f138c5bc9933f26afb464f76d70f2e0776cf8c672c459ebe0e +VM150_ART_35_SIZE_BYTES=1955 +VM150_ART_36_AGE_HOURS=814.39 +VM150_ART_36_TYPE=file +VM150_ART_36_BASENAME=vzdump-qemu-150-2026_09_01-13_37_53.log +VM150_ART_36_PATH_SHA256=b264cdd7ddb58ccc0ed25726012ff71bcba021e050f52ab4f757e4a569255cce +VM150_ART_36_SIZE_BYTES=1644 +VM150_ART_37_AGE_HOURS=827.3 +VM150_ART_37_TYPE=file +VM150_ART_37_BASENAME=vm150-pve01-20260831T214108Z.json +VM150_ART_37_PATH_SHA256=4cef09ec110b2ce4e76a9762ce254c3f6fb7a73cd33af5b89842e9e531784848 +VM150_ART_37_SIZE_BYTES=1021 +VM150_ART_38_AGE_HOURS=827.31 +VM150_ART_38_TYPE=dir +VM150_ART_38_BASENAME=vm150-pve01-20260831T214108Z +VM150_ART_38_PATH_SHA256=51ec2f3b6e43e30b8c40dc8130ff99a1b76ce52f2eeeda599d4376b3f4682a7d +VM150_ART_38_SIZE_BYTES=0 +VM150_ART_39_AGE_HOURS=827.31 +VM150_ART_39_TYPE=file +VM150_ART_39_BASENAME=vm150-pve01-20260831T214108Z.json +VM150_ART_39_PATH_SHA256=f97057f756c185bdcc95184e48810c96566547a1e90d39e8c21b5050bd1410cc +VM150_ART_39_SIZE_BYTES=1955 +VM150_ART_40_AGE_HOURS=827.34 +VM150_ART_40_TYPE=file +VM150_ART_40_BASENAME=vzdump-qemu-150-2026_09_01-00_41_09.log +VM150_ART_40_PATH_SHA256=7e00cda2831193df2b74354629767f2d6fd1853a1a23165b965d40d07e96cc43 +VM150_ART_40_SIZE_BYTES=1643 +VM150_ART_41_AGE_HOURS=839.35 +VM150_ART_41_TYPE=file +VM150_ART_41_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_41_PATH_SHA256=58a804c36501e62ca91cf1c3ab96a0c173f37c8d477f24306594be04a0678972 +VM150_ART_41_SIZE_BYTES=1021 +VM150_ART_42_AGE_HOURS=839.36 +VM150_ART_42_TYPE=dir +VM150_ART_42_BASENAME=vm150-pve01-20260831T093800Z +VM150_ART_42_PATH_SHA256=88968214c0bd695eff000462c9a300c2f4df8a56682f7340cf037b3fd63f3433 +VM150_ART_42_SIZE_BYTES=0 +VM150_ART_43_AGE_HOURS=839.36 +VM150_ART_43_TYPE=file +VM150_ART_43_BASENAME=vm150-pve01-20260831T093800Z.json +VM150_ART_43_PATH_SHA256=c6b572c6afa56aa407b04103f83cbe6ff191228a07f74c054f6cfb4f058d514e +VM150_ART_43_SIZE_BYTES=1955 +VM150_ART_44_AGE_HOURS=839.39 +VM150_ART_44_TYPE=file +VM150_ART_44_BASENAME=vzdump-qemu-150-2026_08_31-12_38_01.log +VM150_ART_44_PATH_SHA256=ed9f8dfb365ac0cc16d868388ba250fd4016821a6e84bc3b274fae06292a469b +VM150_ART_44_SIZE_BYTES=1642 +VM150_ART_45_AGE_HOURS=848.6 +VM150_ART_45_TYPE=file +VM150_ART_45_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_45_PATH_SHA256=5ba15904869d47a4b88484588fdf6077dae036698e5218c41a6a7efd964c60ff +VM150_ART_45_SIZE_BYTES=410 +VM150_ART_46_AGE_HOURS=848.6 +VM150_ART_46_TYPE=file +VM150_ART_46_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_46_PATH_SHA256=f3c919314a16855b1983d0e484999af252952a59d3672d848a14021972b9645f +VM150_ART_46_SIZE_BYTES=410 +VM150_ART_47_AGE_HOURS=852.37 +VM150_ART_47_TYPE=file +VM150_ART_47_BASENAME=vm150-pve01-20260830T203628Z.json +VM150_ART_47_PATH_SHA256=480382928bcffc5e2900de44b8cc219dcf8c19821dc10233c83f03a479641989 +VM150_ART_47_SIZE_BYTES=1021 +VM150_ART_48_AGE_HOURS=852.38 +VM150_ART_48_TYPE=dir +VM150_ART_48_BASENAME=vm150-pve01-20260830T203628Z +VM150_ART_48_PATH_SHA256=8f23a7b1b8903dc231ac439fe25e4e836f57ed1a9f1028c15774292133b79dcf +VM150_ART_48_SIZE_BYTES=0 +VM150_ART_49_AGE_HOURS=852.38 +VM150_ART_49_TYPE=file +VM150_ART_49_BASENAME=vm150-pve01-20260830T203628Z.json +VM150_ART_49_PATH_SHA256=8f41a984b6185ed5e4b2c2d9e65d4d1cb07e42a097bb0dd401855eac63ed43dd +VM150_ART_49_SIZE_BYTES=1955 +VM150_ART_50_AGE_HOURS=852.41 +VM150_ART_50_TYPE=file +VM150_ART_50_BASENAME=vzdump-qemu-150-2026_08_30-23_36_28.log +VM150_ART_50_PATH_SHA256=0a1ca247ee1418103ef7e7a556aff588a6a908e75aaa9e0a754042c8b786ba01 +VM150_ART_50_SIZE_BYTES=1643 +VM150_ART_51_AGE_HOURS=866.38 +VM150_ART_51_TYPE=file +VM150_ART_51_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_51_PATH_SHA256=af519b9ec9a59ef1b30417a2c789295ac48e9ce777596520cdd73cb2daadf5ba +VM150_ART_51_SIZE_BYTES=1021 +VM150_ART_52_AGE_HOURS=866.38 +VM150_ART_52_TYPE=dir +VM150_ART_52_BASENAME=vm150-pve01-20260830T063610Z +VM150_ART_52_PATH_SHA256=124e8e5d48d1098eedaf92efbbfe40255633d4e99e86d8c4ff55ddefcf6f7131 +VM150_ART_52_SIZE_BYTES=0 +VM150_ART_53_AGE_HOURS=866.38 +VM150_ART_53_TYPE=file +VM150_ART_53_BASENAME=vm150-pve01-20260830T063610Z.json +VM150_ART_53_PATH_SHA256=cf2ddeb0c3c83a843e0d0d2d8be69a4217fa39befd6766f182414c162fc07eaa +VM150_ART_53_SIZE_BYTES=1955 +VM150_ART_54_AGE_HOURS=866.42 +VM150_ART_54_TYPE=file +VM150_ART_54_BASENAME=vzdump-qemu-150-2026_08_30-09_36_11.log +VM150_ART_54_PATH_SHA256=79fdb681a05ae4b885f5dfd6e3b619bfbcfccd16a0cf8e80e51ebd626435fb3d +VM150_ART_54_SIZE_BYTES=1644 +VM150_ART_55_AGE_HOURS=872.43 +VM150_ART_55_TYPE=file +VM150_ART_55_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_55_PATH_SHA256=b0d935a0d5e6936f21948c040480e5ab33e2951030ac2eeed0978e48b9ec2b82 +VM150_ART_55_SIZE_BYTES=410 +VM150_ART_56_AGE_HOURS=872.43 +VM150_ART_56_TYPE=file +VM150_ART_56_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_56_PATH_SHA256=e86ea3f161f6c8035944b313e2e3875bdd0df975983850b7df72c17ed8cd82ae +VM150_ART_56_SIZE_BYTES=410 +VM150_ART_57_AGE_HOURS=879.36 +VM150_ART_57_TYPE=file +VM150_ART_57_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_57_PATH_SHA256=e24834ff71d84a2e6e03c31a533aae943d3fbf684ef8ccc464f5ca58d1a99225 +VM150_ART_57_SIZE_BYTES=1021 +VM150_ART_58_AGE_HOURS=879.37 +VM150_ART_58_TYPE=dir +VM150_ART_58_BASENAME=vm150-pve01-20260829T173717Z +VM150_ART_58_PATH_SHA256=be3711a95f945c4d5bf06cb80bed651a8bc70193b3094317044c4f1cc349c5d8 +VM150_ART_58_SIZE_BYTES=0 +VM150_ART_59_AGE_HOURS=879.37 +VM150_ART_59_TYPE=file +VM150_ART_59_BASENAME=vm150-pve01-20260829T173717Z.json +VM150_ART_59_PATH_SHA256=7bc4686c822227832253791b686cdffe6562e82508076b27666a81faa9f65fb7 +VM150_ART_59_SIZE_BYTES=1955 +VM150_ART_60_AGE_HOURS=879.4 +VM150_ART_60_TYPE=file +VM150_ART_60_BASENAME=vzdump-qemu-150-2026_08_29-20_37_17.log +VM150_ART_60_PATH_SHA256=e2bf2176030191b4792ea07f7de6a54234cbbbe6b571cd3b4cdfe22ff49fd4c7 +VM150_ART_60_SIZE_BYTES=1642 +VM150_ART_61_AGE_HOURS=892.38 +VM150_ART_61_TYPE=file +VM150_ART_61_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_61_PATH_SHA256=8ff2e29a41e8df7098335a02af10375308751ec56efa9d77e709f73a51cdc40a +VM150_ART_61_SIZE_BYTES=1021 +VM150_ART_62_AGE_HOURS=892.39 +VM150_ART_62_TYPE=dir +VM150_ART_62_BASENAME=vm150-pve01-20260829T043615Z +VM150_ART_62_PATH_SHA256=ae37efb87c981b235c1799818d2d4851b0bae39cd85b9ea7d42e4e3b76cafeb0 +VM150_ART_62_SIZE_BYTES=0 +VM150_ART_63_AGE_HOURS=892.39 +VM150_ART_63_TYPE=file +VM150_ART_63_BASENAME=vm150-pve01-20260829T043615Z.json +VM150_ART_63_PATH_SHA256=6c734d165d7eb2efc0f5643bf31cd35527f7396e62218f817079b01c624fe1e3 +VM150_ART_63_SIZE_BYTES=1955 +VM150_ART_64_AGE_HOURS=892.42 +VM150_ART_64_TYPE=file +VM150_ART_64_BASENAME=vzdump-qemu-150-2026_08_29-07_36_15.log +VM150_ART_64_PATH_SHA256=42f1db88b172a69303b933f3da36acfaa70ce90f462005d92a04175dee3785cf +VM150_ART_64_SIZE_BYTES=1643 +VM150_ART_65_AGE_HOURS=896.48 +VM150_ART_65_TYPE=file +VM150_ART_65_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_65_PATH_SHA256=9eb5a8499b5b44af8d926cd4d0d518a686744af29e39fe43d4a81b045fc6a166 +VM150_ART_65_SIZE_BYTES=410 +VM150_ART_66_AGE_HOURS=906.38 +VM150_ART_66_TYPE=file +VM150_ART_66_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_66_PATH_SHA256=e5a08de449669ce796d24efdb17319319493f99a4949987f61890a2a4ab87ebf +VM150_ART_66_SIZE_BYTES=1021 +VM150_ART_67_AGE_HOURS=906.38 +VM150_ART_67_TYPE=dir +VM150_ART_67_BASENAME=vm150-pve01-20260828T143617Z +VM150_ART_67_PATH_SHA256=c3af81ebf97c65f1c79fe86bd3e1d59c9f7eff909df8d60ae66753877220b1eb +VM150_ART_67_SIZE_BYTES=0 +VM150_ART_68_AGE_HOURS=906.38 +VM150_ART_68_TYPE=file +VM150_ART_68_BASENAME=vm150-pve01-20260828T143617Z.json +VM150_ART_68_PATH_SHA256=c21fadaf9b303b9b051002f9c8e9b4bb98516598e45e843824dcf3863d4bc6d1 +VM150_ART_68_SIZE_BYTES=1955 +VM150_ART_69_AGE_HOURS=906.42 +VM150_ART_69_TYPE=file +VM150_ART_69_BASENAME=vzdump-qemu-150-2026_08_28-17_36_17.log +VM150_ART_69_PATH_SHA256=99d86daa887f89f68b04edb4100943e7e20098de8d67a6ed3075caa7bdc6ba41 +VM150_ART_69_SIZE_BYTES=1645 +VM150_ART_70_AGE_HOURS=920.62 +VM150_ART_70_TYPE=file +VM150_ART_70_BASENAME=vm150-pve01-20260824T183626Z.json +VM150_ART_70_PATH_SHA256=9ee4785e981f84eb2d065d0d01a3db50151ddd2c9978a4f76d75e337913b5336 +VM150_ART_70_SIZE_BYTES=410 +VM150_ART_71_AGE_HOURS=920.62 +VM150_ART_71_TYPE=file +VM150_ART_71_BASENAME=vm150-pve01-20260825T163812Z.json +VM150_ART_71_PATH_SHA256=bf3ece0acb9b2b45906bb10d6a145efff38fc64d600c4d0247ccfae4e3c71043 +VM150_ART_71_SIZE_BYTES=410 +VM150_ART_72_AGE_HOURS=920.62 +VM150_ART_72_TYPE=file +VM150_ART_72_BASENAME=vm150-pve01-20260826T053634Z.json +VM150_ART_72_PATH_SHA256=aa4ef572cd04865cd953733618b050f8ebb56efb8fec4cce112fd14816dff938 +VM150_ART_72_SIZE_BYTES=410 +VM150_ART_73_AGE_HOURS=920.62 +VM150_ART_73_TYPE=file +VM150_ART_73_BASENAME=vm150-pve01-20260826T173850Z.json +VM150_ART_73_PATH_SHA256=c813959b901d7ce3815aa7fa76c8c2744efad70377c6d5a01a3e3e165d367206 +VM150_ART_73_SIZE_BYTES=410 +VM150_ART_74_AGE_HOURS=924.37 +VM150_ART_74_TYPE=file +VM150_ART_74_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_74_PATH_SHA256=a90c91da69e35c48b275e68c7f9a6306a4655dffe5abe126880e3f525fd7f143 +VM150_ART_74_SIZE_BYTES=1021 +VM150_ART_75_AGE_HOURS=924.38 +VM150_ART_75_TYPE=dir +VM150_ART_75_BASENAME=vm150-pve01-20260827T203624Z +VM150_ART_75_PATH_SHA256=e998823e7af004b04989bb21c681fde6e652e4aa2d0d06f009f33929756d75ee +VM150_ART_75_SIZE_BYTES=0 +VM150_ART_76_AGE_HOURS=924.38 +VM150_ART_76_TYPE=file +VM150_ART_76_BASENAME=vm150-pve01-20260827T203624Z.json +VM150_ART_76_PATH_SHA256=57cadaec346a23613d84121c4ac37e729ef99755d94aa3e0d4ae4a7b72c2fce2 +VM150_ART_76_SIZE_BYTES=1955 +VM150_ART_77_AGE_HOURS=924.41 +VM150_ART_77_TYPE=file +VM150_ART_77_BASENAME=vzdump-qemu-150-2026_08_27-23_36_24.log +VM150_ART_77_PATH_SHA256=40abf1cbc36ae86632073b4f0a49d4ce2e05f1b3c5bff72cf7648478c3188bcf +VM150_ART_77_SIZE_BYTES=1629 +VM150_ART_78_AGE_HOURS=938.38 +VM150_ART_78_TYPE=file +VM150_ART_78_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_78_PATH_SHA256=57ab7089265ac9c0e72161816511ffe8819a43d0462e19883a9ecf7500ba184b +VM150_ART_78_SIZE_BYTES=1021 +VM150_ART_79_AGE_HOURS=938.39 +VM150_ART_79_TYPE=dir +VM150_ART_79_BASENAME=vm150-pve01-20260827T063558Z +VM150_ART_79_PATH_SHA256=86a586c4a9f516e58397e585f90ce48e6e95f24ded5a47dfcfa99ac49e2346d4 +VM150_ART_79_SIZE_BYTES=0 +VM150_ART_80_AGE_HOURS=938.39 +VM150_ART_80_TYPE=file +VM150_ART_80_BASENAME=vm150-pve01-20260827T063558Z.json +VM150_ART_80_PATH_SHA256=6ded03aecd5b59760e2ccf8b601a11e5bb2c3b03bc4f838b332c8c7a617c1b76 +VM150_ART_80_SIZE_BYTES=1955 +VM150_SERVICE_CONTEXT_SHA256=85aa6eae979ffba16f23900c6190b60bc3049938183f05182826110a17a8aebe +VM150_SERVICE_CONTEXT_B64=MjAyNi0xMC0wMlQyMzoyMToyMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg0MDQ2NzQzNTksImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wMlQyMzozMjozMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTgyODUzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wMlQyMzozMjozMSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDJUMjM6MzI6MzErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDJUMjM6MzI6MzErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAyMC4yMjRzIENQVSB0aW1lLCA2LjRHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAyVDIzOjU4OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDJUMjM6NTg6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcwMDg0MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwMDowNjoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzAwODQxXTogU0NIRURVTEVfVEFSR0VUPXhmLW5ld2ZpCjIwMjYtMTAtMDNUMDA6MDY6MTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcwMDg0MV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMDA6MDY6MTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDAwOjA2OjE3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDAwOjA2OjE3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDFtaW4gNDIuMjk3cyBDUFUgdGltZSwgMTUyTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwMDozODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDAwOjM4OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDA6Mzg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDddOiA8cm9vdEBwYW0+IHN0YXJ0aW5nIHRhc2sgVVBJRDpwdmUwMTowMDNBOTFGMDoxMjMyQ0M2Rjo2QUMwMjQzQzp2emR1bXA6MTcxOnJvb3RAcGFtOgoyMDI2LTEwLTAzVDAwOjM4OjA0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ4XTogSU5GTzogc3RhcnRpbmcgbmV3IGJhY2t1cCBqb2I6IHZ6ZHVtcCAxNzEgLS1kdW1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90CjIwMjYtMTAtMDNUMDA6Mzg6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDhdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcxIChxZW11KQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ4XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDE3MSAoMDA6MDA6NDUpCjIwMjYtMTAtMDNUMDA6Mzg6NDkrMDM6MDAgcHZlMDEgdnpkdW1wWzM4Mzg0NDhdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszODM4NDQ3XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwM0E5MUYwOjEyMzJDQzZGOjZBQzAyNDNDOnZ6ZHVtcDoxNzE6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMDA6Mzg6NDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzODQxMV06IFNDSEVEVUxFX1RBUkdFVD12bTE3MQoyMDI2LTEwLTAzVDAwOjM4OjQ5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MjA3MDg3MzQzNiwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAxIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTcxfQoyMDI2LTEwLTAzVDAwOjQxOjQyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mzg0MTFdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDAwOjQxOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwMDo0MTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMDo0MTo0MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxbWluIDUuNDI5cyBDUFUgdGltZSwgMi41RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwMToxNjowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDAxOjE2OjAyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NjE4OTJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDE6MjI6NTkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzk2MTg5Ml06IFNDSEVEVUxFX1RBUkdFVD12bTkxMzAKMjAyNi0xMC0wM1QwMToyMjo1OSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTYxODkyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjEwOTU3NTMyNDA3LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjo5MTMwfQoyMDI2LTEwLTAzVDAxOjM3OjE5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NjE4OTJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDAxOjM3OjE5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwMTozNzoxOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMTozNzoxOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzbWluIDM4LjI5MHMgQ1BVIHRpbWUsIDYuM0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMDE6NDg6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QwMTo0ODowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDY0ODAxXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9UQVJHRVQ9Z3Vlc3QtcHZlMDEtbHhjLTExMgoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQwNjQ4MDFdOiBTQ0hFRFVMRV9SRUFTT049Q1QxMTJfUElQRUxJTkVfRkFJTEVECjIwMjYtMTAtMDNUMDE6NDg6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogTWFpbiBwcm9jZXNzIGV4aXRlZCwgY29kZT1leGl0ZWQsIHN0YXR1cz0yW1BBVEhdCjIwMjYtMTAtMDNUMDE6NDg6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRmFpbGVkIHdpdGggcmVzdWx0ICdleGl0LWNvZGUnLgoyMDI2LTEwLTAzVDAxOjQ4OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZhaWxlZCB0byBzdGFydCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwMTo0ODowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA1LjA4MHMgQ1BVIHRpbWUsIDE3Mi4xTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwNzo0NDoyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwNzo0NDoyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAxLjU4MXMgQ1BVIHRpbWUsIDEzNC44TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QwODoxNTozMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDA4OjE1OjMyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzExNzA4NDldOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1RBUkdFVD1ndWVzdC1wdmUwMS1seGMtMTEyCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1JFU1VMVD1GQUlMCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTE3MDg0OV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wM1QwODoxNTozNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wM1QwODoxNTozNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDNUMDg6MTU6MzcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDA4OjE1OjM3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMDM4cyBDUFUgdGltZSwgMTcyLjZNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDA4OjU1OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMDg6NTU6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTI5NTM0M106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMjk1MzQzXTogU0NIRURVTEVfREVDSVNJT049REVGRVJfTk9fRFVFX1RBUkdFVAoyMDI2LTEwLTAzVDA4OjU1OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QwODo1NTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyMTRtcyBDUFUgdGltZSwgMTM0LjJNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDA5OjMzOjEwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMDk6MzM6MTErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTQyNjMyMV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QwOTozMzoxMSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNDI2MzIxXTogU0NIRURVTEVfREVGRVJfSEVBVllfTE9DS19CVVNZCjIwMjYtMTAtMDNUMDk6MzM6MTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDA5OjMzOjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDA5OjMzOjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDIwNm1zIENQVSB0aW1lLCAxMzQuNk0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMTA6MDg6MDUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QxMDowODowNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNTQxMjU5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDEwOjA4OjE5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTAzXTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAxNzg1ODE6MTI2NzAxQUU6NkFDMEE5RTM6dnpkdW1wOjExMDpyb290QHBhbToKMjAyNi0xMC0wM1QxMDowODoxOSswMzowMCBwdmUwMSB2emR1bXBbMTU0MTUwNV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTEwIC0tcHJ1bmUtYmFja3VwcyAna2VlcC1hbGw9MScgLS1sb2Nrd2FpdCAwIC0tdG1wZGlyIFtQQVRIXSAtLWNvbXByZXNzIHpzdGQgLS1ub2RlIHB2ZTAxIC0tbW9kZSBzbmFwc2hvdCAtLXJlbW92ZSAwIC0tc3RkZXhjbHVkZXMgMCAtLWlvbmljZSA3IC0tenN0ZCAxIC0tYndsaW1pdCAzMjc2OAoyMDI2LTEwLTAzVDEwOjA4OjE5KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTA1XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDExMCAobHhjKQoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTA1XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDExMCAoMDA6MDI6MTcpCjIwMjYtMTAtMDNUMTA6MTA6MzYrMDM6MDAgcHZlMDEgdnpkdW1wWzE1NDE1MDVdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxNTQxNTAzXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMTc4NTgxOjEyNjcwMUFFOjZBQzBBOUUzOnZ6ZHVtcDoxMTA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMTA6MTA6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTU0MTI1OV06IFNDSEVEVUxFX1RBUkdFVD1jdDExMAoyMDI2LTEwLTAzVDEwOjEwOjM2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE1NDEyNTldOiBMWENfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo1ODIxMzgyMzksImV4Y2VwdGlvbl9jbGFzcyI6bnVsbCwiZXhjZXB0aW9uX21lc3NhZ2Vfc2hhMjU2IjpudWxsLCJleGVjdXRvciI6ImxvY2FsLXByb3Zlbi1wdmUyNzAiLCJoZWxwZXJfcmMiOjAsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJzdGRlcnJfYnl0ZXNfb2JzZXJ2ZWQiOjEzNjQsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6MTM2NCwic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiI0MDk5Y2VjNjI3MmM4Y2M1NmQ2NDM3MmE3ZDQ3OGM4MzNhNTg0YmM4MzA4MGEwZGM2ZThmYTA0ZWVkN2JhMmM5Iiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMTA6MTE6NDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTU0MTI1OV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTA6MTE6NDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDEwOjExOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDEwOjExOjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDQ0Ljc0OXMgQ1BVIHRpbWUsIDVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDEwOjQyOjAyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTA6NDI6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxMDo0Mzo1MCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxNjQzMTM4XTogU0NIRURVTEVfVEFSR0VUPWN0MTExCjIwMjYtMTAtMDNUMTA6NDM6NTArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IExYQ19FWEVDVVRJT05fRElBRz17ImV4ZWN1dG9yIjoicmVtb3RlLWJvdW5kZWQtc3NoLWN3ZC1yb290Iiwibm9kZSI6InB2ZTAyIiwicHJvZHVjZXJfcmMiOjAsInN0ZGVycl9ieXRlc19vYnNlcnZlZCI6OTk0LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjk5NCwic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiI0YjY5YjJjNWY1MDcyNDVmYjU0M2IxYjNhNGZkZDI5ZDk4MmRkM2RiYzA1OGU0OGE1OTRhZWVmNWJmNDc0MDhkIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMTA6NDQ6NDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTY0MzEzOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTA6NDQ6NDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDEwOjQ0OjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDEwOjQ0OjQyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE0LjI1MnMgQ1BVIHRpbWUsIDkxMC43TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMToxODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDExOjE4OjAyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE3NjQ5NzBdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTc2NDk3MF06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMToxODowMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTE6MTg6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTkybXMgQ1BVIHRpbWUsIDEzNC42TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMTo1NzoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDExOjU3OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzE4ODIwNjRdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTg4MjA2NF06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMTo1NzoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTE6NTc6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTg5bXMgQ1BVIHRpbWUsIDEzNC41TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMjozNjo1MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDEyOjM2OjUyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIwMDU1NTZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjAwNTU1Nl06IFNDSEVEVUxFX0RFQ0lTSU9OPURFRkVSX05PX0RVRV9UQVJHRVQKMjAyNi0xMC0wM1QxMjozNjo1MiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTI6MzY6NTIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjAxbXMgQ1BVIHRpbWUsIDEzNC4xTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QxMzowODozMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDEzOjA4OjMyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIxMDY5MDZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjEwNjkwNl06IFNDSEVEVUxFX1RBUkdFVD14Zi1oa21vZHMKMjAyNi0xMC0wM1QxODoxNjoyMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMTA2OTA2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QxODoxNjoyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNG1pbiAxNy4wNDNzIENQVSB0aW1lLCAxLjVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDE4OjE2OjIwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTg6MTY6MjArMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzE0MjkyNF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfUkVTVUxUPUZBSUwKMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMTQyOTI0XTogU0NIRURVTEVfUkVBU09OPUNUMTEyX1BJUEVMSU5FX0ZBSUxFRAoyMDI2LTEwLTAzVDE4OjE2OjI1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IE1haW4gcHJvY2VzcyBleGl0ZWQsIGNvZGU9ZXhpdGVkLCBzdGF0dXM9MltQQVRIXQoyMDI2LTEwLTAzVDE4OjE2OjI1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IEZhaWxlZCB3aXRoIHJlc3VsdCAnZXhpdC1jb2RlJy4KMjAyNi0xMC0wM1QxODoxNjoyNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGYWlsZWQgdG8gc3RhcnQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMTg6MTY6MjUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgNS4zNTRzIENQVSB0aW1lLCAxNzIuM00gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMTg6NTI6MzIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QxODo1MjozMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszMjY3MDAwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzMyNjcwMDBdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDNUMTg6NTI6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzI2NzAwMF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMTg6NTI6NTQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDE4OjUyOjU0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDMuNTM3cyBDUFUgdGltZSwgMTM0LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDE5OjMxOjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMTk6MzE6MDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQwODE5Ml06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QxOTozMToyMiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ1OF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzQwMjU2OjEyOUE4RTY4OjZBQzEyRERBOnZ6ZHVtcDoxMTI6cm9vdEBwYW06CjIwMjYtMTAtMDNUMTk6MzE6MjIrMDM6MDAgcHZlMDEgdnpkdW1wWzM0MDg0NzBdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDExMiAtLXBydW5lLWJhY2t1cHMgJ2tlZXAtYWxsPTEnIC0tc3RkZXhjbHVkZXMgMCAtLW1vZGUgc25hcHNob3QgLS1pb25pY2UgNyAtLWNvbXByZXNzIHpzdGQgLS1ub2RlIHB2ZTAxIC0tenN0ZCAxIC0tbG9ja3dhaXQgMCAtLXJlbW92ZSAwIC0tdG1wZGlyIFtQQVRIXSAtLWJ3bGltaXQgMzI3NjgKMjAyNi0xMC0wM1QxOTozMToyMiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ3MF06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxMTIgKGx4YykKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ3MF06IElORk86IEZpbmlzaGVkIEJhY2t1cCBvZiBWTSAxMTIgKDAwOjAwOjI0KQoyMDI2LTEwLTAzVDE5OjMxOjQ2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNDA4NDcwXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSB2emR1bXBbMzQwODQ1OF06IDxyb290QHBhbT4gZW5kIHRhc2sgVVBJRDpwdmUwMTowMDM0MDI1NjoxMjlBOEU2ODo2QUMxMkREQTp2emR1bXA6MTEyOnJvb3RAcGFtOiBPSwoyMDI2LTEwLTAzVDE5OjMxOjQ2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0MDgxOTJdOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTIKMjAyNi0xMC0wM1QxOTozMTo0NiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNDA4MTkyXTogTFhDX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MjI0MTI2MDU1LCJleGNlcHRpb25fY2xhc3MiOm51bGwsImV4Y2VwdGlvbl9tZXNzYWdlX3NoYTI1NiI6bnVsbCwiZXhlY3V0b3IiOiJsb2NhbC1wcm92ZW4tcHZlMjcwIiwiaGVscGVyX3JjIjowLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjoxMzY3LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjEzNjcsInN0ZGVycl9zdHJlYW1fc2hhMjU2IjoiZGI1OGJmOTUxNjY1NDhjM2U4M2ZlOWVhZmViZDU1MzJjNjFiOTA3YmVhOWRlMmNmMTNkYTc2Y2ExOTAxZmJhMSIsInN0ZGVycl90cnVuY2F0ZWQiOmZhbHNlfQoyMDI2LTEwLTAzVDE5OjMyOjIyKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0MDgxOTJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTAzVDE5OjMyOjIyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wM1QxOTozMjoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wM1QxOTozMjoyMiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAyNi4wNzlzIENQVSB0aW1lLCAxLjFHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIwOjAyOjEzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjA6MDI6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMDowMjo1NyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTIyNzIxXTogU0NIRURVTEVfVEFSR0VUPWN0MTEzCjIwMjYtMTAtMDNUMjA6MDI6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IExYQ19FWEVDVVRJT05fRElBRz17ImV4ZWN1dG9yIjoicmVtb3RlLWJvdW5kZWQtc3NoLWN3ZC1yb290Iiwibm9kZSI6InB2ZTAyIiwicHJvZHVjZXJfcmMiOjAsInN0ZGVycl9ieXRlc19vYnNlcnZlZCI6OTk3LCJzdGRlcnJfYnl0ZXNfcmV0YWluZWQiOjk5Nywic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiIxMjYzNTA3MzY3MDY1YzA3YmNjYzViOTM5YTU0MzEzZDg3ODE4ODBiZjZiYWY4M2E4NDU0YjE3MDdiODZiNzJmIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUyMjcyMV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjA6MDM6MzYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIwOjAzOjM2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIwOjAzOjM2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEwLjA2NHMgQ1BVIHRpbWUsIDUxNC43TSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMDozMzowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIwOjMzOjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MjgwNzZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTFdOiA8cm9vdEBwYW0+IHN0YXJ0aW5nIHRhc2sgVVBJRDpwdmUwMTowMDM3NUM1MDoxMkEwMzQ1MTo2QUMxM0M1MDp2emR1bXA6MTUwOnJvb3RAcGFtOgoyMDI2LTEwLTAzVDIwOjMzOjA0KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTEyXTogSU5GTzogc3RhcnRpbmcgbmV3IGJhY2t1cCBqb2I6IHZ6ZHVtcCAxNTAgLS1jb21wcmVzcyB6c3RkIC0tZHVtcGRpciBbUEFUSF0gLS1tb2RlIHNuYXBzaG90CjIwMjYtMTAtMDNUMjA6MzM6MDQrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTUwIChxZW11KQoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTEyXTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDE1MCAoMDA6MDA6MTkpCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgdnpkdW1wWzM2MjgxMTJdOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNjI4MTExXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMzc1QzUwOjEyQTAzNDUxOjZBQzEzQzUwOnZ6ZHVtcDoxNTA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDNUMjA6MzM6MjMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE1MAoyMDI2LTEwLTAzVDIwOjMzOjIzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MjgwNzZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6OTI5ODM2NTA1LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNTB9CjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzYyODA3Nl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjA6MzQ6NTcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIwOjM0OjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIwOjM0OjU3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDI5LjgyNXMgQ1BVIHRpbWUsIDEuNEcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjE6MTA6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMToxMDowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzMwOTIwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIxOjIyOjI4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM3MzA5MjBdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtY29kZXZpcGUKMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzMwOTIwXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMToyMjoyOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjE6MjI6MjgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuNzQxcyBDUFUgdGltZSwgMTUyLjVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIxOjQyOjE4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjE6NDI6MTkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMTo0MzoxNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszODMzNzI4XTogU0NIRURVTEVfVEFSR0VUPXZtMTkwCjIwMjYtMTAtMDNUMjE6NDM6MTcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoxNzg4MTk1Njg1LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxOTB9CjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgzMzcyOF06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjE6NDY6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIxOjQ2OjI3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIxOjQ2OjI3KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDM4LjE0MnMgQ1BVIHRpbWUsIDIuMkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDNUMjI6MTk6MTYrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wM1QyMjoxOToxNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTU1NDYwXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTAzVDIyOjMzOjA3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5NTU0NjBdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtemFrcnV0aW0KMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTU1NDYwXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMjozMzowNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjI6MzM6MDcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuOTI4cyBDUFUgdGltZSwgMTY0LjVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTAzVDIyOjUwOjA2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDNUMjI6NTA6MDcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDA1NzAyNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwM0RFN0NDOjEyQUNDMEFEOjZBQzE1QzcwOnZ6ZHVtcDoyMTA6cm9vdEBwYW06CjIwMjYtMTAtMDNUMjI6NTA6MDgrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzZdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDIxMCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wM1QyMjo1MDowOCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAyMTAgKHFlbXUpCjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzZdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMjEwICgwMDowMDoxNikKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSB2emR1bXBbNDA1NzAzNl06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgdnpkdW1wWzQwNTcwMzRdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzREU3Q0M6MTJBQ0MwQUQ6NkFDMTVDNzA6dnpkdW1wOjIxMDpyb290QHBhbTogT0sKMjAyNi0xMC0wM1QyMjo1MDoyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0NIRURVTEVfVEFSR0VUPXZtMjEwCjIwMjYtMTAtMDNUMjI6NTA6MjQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDA1NzAyNl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo3MDI0NTUxMzYsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjIxMH0KMjAyNi0xMC0wM1QyMjo1MTozNSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls0MDU3MDI2XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wM1QyMjo1MTozNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDNUMjI6NTE6MzUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDNUMjI6NTE6MzUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjMuODM5cyBDUFUgdGltZSwgMS4yRyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wM1QyMzoyNzowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTAzVDIzOjI3OjAzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQxNzA0NTNdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDNUMjM6Mjc6MzUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDE3MDQ1M106IFNDSEVEVUxFX1RBUkdFVD12bTIxMQoyMDI2LTEwLTAzVDIzOjI3OjM1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzQxNzA0NTNdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6NjQ2NzIxODMxLCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDMiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoyMTF9CjIwMjYtMTAtMDNUMjM6Mjg6NDkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNDE3MDQ1M106IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDNUMjM6Mjg6NDkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTAzVDIzOjI4OjQ5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTAzVDIzOjI4OjQ5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE3LjE3NnMgQ1BVIHRpbWUsIDEuMkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMDA6MDI6MDIrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQwMDowMjowMiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMDQxNzJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMDA6MDI6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzEwNDIyMl06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMDE5NzFGOjEyQjM1NjVFOjZBQzE2RDRCOnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMDA6MDI6MDMrMDM6MDAgcHZlMDEgdnpkdW1wWzEwNDIyM106IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tZHVtcGRpciBbUEFUSF0gLS1jb21wcmVzcyB6c3RkIC0tbW9kZSBzbmFwc2hvdAoyMDI2LTEwLTA0VDAwOjAyOjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxMDQyMjNdOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcwIChxZW11KQoyMDI2LTEwLTA0VDAwOjAzOjQ2KzAzOjAwIHB2ZTAxIHZ6ZHVtcFsxMDQyMjNdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMTo0MykKMjAyNi0xMC0wNFQwMDowMzo0NiswMzowMCBwdmUwMSB2emR1bXBbMTA0MjIzXTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNFQwMDowMzo0NiswMzowMCBwdmUwMSB2emR1bXBbMTA0MjIyXTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMDE5NzFGOjEyQjM1NjVFOjZBQzE2RDRCOnZ6ZHVtcDoxNzA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDRUMDA6MDM6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTA0MTcyXTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDRUMDA6MDM6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTA0MTcyXTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg1MDE3Mjc4NjYsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMDQxNzJdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDAwOjE1OjIwKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQwMDoxNToyMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDIyLjg1NHMgQ1BVIHRpbWUsIDUuN0cgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMDA6NDA6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQwMDo0MDowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMjM0MTJdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMDA6NDA6MDgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMjIzNDEyXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsyMjM0MTJdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDAwOjQwOjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzIyMzQxMl06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQwMDo0MDowOCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMDA6NDA6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDAwOjQwOjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjIwcyBDUFUgdGltZSwgMTcyLjhNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDAxOjE5OjAzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMDE6MTk6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzQ0NDg5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0NDQ4OV06IFNDSEVEVUxFX1RBUkdFVD1jb250cm9sLWJvb3RzdHJhcC12MgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM0NDQ4OV06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDRUMDE6MTk6MDgrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDAxOjE5OjA4KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDEuNTc1cyBDUFUgdGltZSwgMTM0LjNNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE1OjI4OjIyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE4M21zIENQVSB0aW1lLCAxMzUuMU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMTY6MDQ6NTMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQxNjowNDo1MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNTA1NDIyXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjA1OjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODM3XTogPHJvb3RAcGFtPiBzdGFydGluZyB0YXNrIFVQSUQ6cHZlMDE6MDAzNTdFQjk6MTMwQjgyOTk6NkFDMjRGMDQ6dnpkdW1wOjExMjpyb290QHBhbToKMjAyNi0xMC0wNFQxNjowNTowOCswMzowMCBwdmUwMSB2emR1bXBbMzUwNTg0OV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTEyIC0tbW9kZSBzbmFwc2hvdCAtLXBydW5lLWJhY2t1cHMgJ2tlZXAtYWxsPTEnIC0taW9uaWNlIDcgLS1id2xpbWl0IDMyNzY4IC0tenN0ZCAxIC0tbm9kZSBwdmUwMSAtLXRtcGRpciBbUEFUSF0gLS1zdGRleGNsdWRlcyAwIC0tcmVtb3ZlIDAgLS1sb2Nrd2FpdCAwIC0tY29tcHJlc3MgenN0ZAoyMDI2LTEwLTA0VDE2OjA1OjA4KzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODQ5XTogSU5GTzogU3RhcnRpbmcgQmFja3VwIG9mIFZNIDExMiAobHhjKQoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODQ5XTogSU5GTzogRmluaXNoZWQgQmFja3VwIG9mIFZNIDExMiAoMDA6MDA6MjMpCjIwMjYtMTAtMDRUMTY6MDU6MzErMDM6MDAgcHZlMDEgdnpkdW1wWzM1MDU4NDldOiBJTkZPOiBCYWNrdXAgam9iIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseQoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIHZ6ZHVtcFszNTA1ODM3XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMzU3RUI5OjEzMEI4Mjk5OjZBQzI0RjA0OnZ6ZHVtcDoxMTI6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDRUMTY6MDU6MzErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUwNTQyMl06IFNDSEVEVUxFX1RBUkdFVD1jdDExMgoyMDI2LTEwLTA0VDE2OjA1OjMxKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM1MDU0MjJdOiBMWENfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoyMjQxMzkzMTYsImV4Y2VwdGlvbl9jbGFzcyI6bnVsbCwiZXhjZXB0aW9uX21lc3NhZ2Vfc2hhMjU2IjpudWxsLCJleGVjdXRvciI6ImxvY2FsLXByb3Zlbi1wdmUyNzAiLCJoZWxwZXJfcmMiOjAsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJzdGRlcnJfYnl0ZXNfb2JzZXJ2ZWQiOjEzNjcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6MTM2Nywic3RkZXJyX3N0cmVhbV9zaGEyNTYiOiJiNjA5YmY4MWZjNDY3NGYyNjYxOTg1OTc2NmQ0MTY0MmI1MTAwNzRkNGQxMTE0YmE3MmM4ZjliOTk3ZGNmNzMxIiwic3RkZXJyX3RydW5jYXRlZCI6ZmFsc2V9CjIwMjYtMTAtMDRUMTY6MDY6MTErMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzUwNTQyMl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDRUMTY6MDY6MTErMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA0VDE2OjA2OjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDE2OjA2OjExKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDI2LjYyM3MgQ1BVIHRpbWUsIDEuMUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMTY6Mzc6NDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQxNjozNzo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA0VDE2OjM4OjI3KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM2MDY3MjldOiBTQ0hFRFVMRV9UQVJHRVQ9Y3QxMTMKMjAyNi0xMC0wNFQxNjozODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogTFhDX0VYRUNVVElPTl9ESUFHPXsiZXhlY3V0b3IiOiJyZW1vdGUtYm91bmRlZC1zc2gtY3dkLXJvb3QiLCJub2RlIjoicHZlMDIiLCJwcm9kdWNlcl9yYyI6MCwic3RkZXJyX2J5dGVzX29ic2VydmVkIjo5OTcsInN0ZGVycl9ieXRlc19yZXRhaW5lZCI6OTk3LCJzdGRlcnJfc3RyZWFtX3NoYTI1NiI6IjY0ZWE0YTVmYWY1MmUxMGYxMmJmNzU3MmRkYWYyZjMxM2M5MmNjZDc0MjZmYzA5OGYzMzkyMWM0OTM1MTQxZWIiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZX0KMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNjA2NzI5XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNjozOTowMyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTY6Mzk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTAuMjI1cyBDUFUgdGltZSwgNTE1LjlNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE3OjE2OjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4MV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMzhFNTJBOjEzMTIxNEQ5OjZBQzI1RkQ2OnZ6ZHVtcDoxNTA6cm9vdEBwYW06CjIwMjYtMTAtMDRUMTc6MTY6NTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE1MCAtLWNvbXByZXNzIHpzdGQgLS1tb2RlIHNuYXBzaG90IC0tZHVtcGRpciBbUEFUSF0KMjAyNi0xMC0wNFQxNzoxNjo1NCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNTAgKHFlbXUpCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODJdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTUwICgwMDowMDoyMCkKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSB2emR1bXBbMzcyODY4Ml06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgdnpkdW1wWzM3Mjg2ODFdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAzOEU1MkE6MTMxMjE0RDk6NkFDMjVGRDY6dnpkdW1wOjE1MDpyb290QHBhbTogT0sKMjAyNi0xMC0wNFQxNzoxNzoxNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfVEFSR0VUPXZtMTUwCjIwMjYtMTAtMDRUMTc6MTc6MTQrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzcyODY3NV06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjo5MzMyMzIyNTMsImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE1MH0KMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszNzI4Njc1XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNFQxNzoxOTowMCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDRUMTc6MTk6MDArMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMjkuNjcwcyBDUFUgdGltZSwgMS40RyBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNFQxNzo0ODoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA0VDE3OjQ4OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMTc6NDk6MTYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzgyOTg2Nl06IFNDSEVEVUxFX1RBUkdFVD12bTE5MAoyMDI2LTEwLTA0VDE3OjQ5OjE2KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBRRU1VX0VYRUNVVElPTl9ESUFHPXsiYXJjaGl2ZV9ieXRlcyI6MTc4MzUwNDEyOCwiYXJjaGl2ZV9zZWxlY3RlZCI6dHJ1ZSwibm9kZSI6InB2ZTAzIiwicHJvZHVjZXJfcmMiOjAsInJlZ3VsYXJfZmlsZV9jb3VudCI6Miwic2lkZWNhcl9jb3VudCI6MSwidm1pZCI6MTkwfQoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM4Mjk4NjZdOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDE3OjUxOjUzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQxNzo1MTo1MyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCAzOC45NTdzIENQVSB0aW1lLCAyLjJHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA0VDE4OjIxOjQ1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDRUMTg6MjE6NDYrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMzkzMDQ5N106IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlszOTMwNDk3XTogU0NIRURVTEVfVEFSR0VUPXhmLWhrbW9kcwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzM5MzA0OTddOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA0VDIzOjI5OjI0KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDE4LjQyMHMgQ1BVIHRpbWUsIDEuNUcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDRUMjM6Mjk6MjQrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNFQyMzoyOToyNCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbNzU4NDAxXTogU0NIRURVTEVfVEFSR0VUPWd1ZXN0LXB2ZTAxLWx4Yy0xMTIKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls3NTg0MDFdOiBTQ0hFRFVMRV9SRVNVTFQ9RkFJTAoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzc1ODQwMV06IFNDSEVEVUxFX1JFQVNPTj1DVDExMl9QSVBFTElORV9GQUlMRUQKMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBNYWluIHByb2Nlc3MgZXhpdGVkLCBjb2RlPWV4aXRlZCwgc3RhdHVzPTJbUEFUSF0KMjAyNi0xMC0wNFQyMzoyOToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBGYWlsZWQgd2l0aCByZXN1bHQgJ2V4aXQtY29kZScuCjIwMjYtMTAtMDRUMjM6Mjk6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmFpbGVkIHRvIHN0YXJ0IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA0VDIzOjI5OjI5KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDUuMjAxcyBDUFUgdGltZSwgMTczTSBtZW1vcnkgcGVhay4KMjAyNi0xMC0wNVQwMDowODowNSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBTdGFydGluZyBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4uLgoyMDI2LTEwLTA1VDAwOjA4OjA1KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzg4MTQ5OF06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls4ODE0OThdOiBTQ0hFRFVMRV9UQVJHRVQ9cm91dGVyLW5ldGNyYXplCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbODgxNDk4XTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMDowODoyNyswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDVUMDA6MDg6MjcrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMy41MzRzIENQVSB0aW1lLCAxMzUuNU0gbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDVUMDA6NDA6NTMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNVQwMDo0MDo1NCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls5ODE2MzldOiBTRUxGVEVTVF9SRVBMQUNFTUVOVDQ4Nj1QQVNTCjIwMjYtMTAtMDVUMDA6NDA6NTUrMDM6MDAgcHZlMDEgdnpkdW1wWzk4MTc2OV06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMEVGQzAzOjEzM0FCQjNBOjZBQzJDN0U3OnZ6ZHVtcDoxNzA6cm9vdEBwYW06CjIwMjYtMTAtMDVUMDA6NDA6NTUrMDM6MDAgcHZlMDEgdnpkdW1wWzk4MjAxOV06IElORk86IHN0YXJ0aW5nIG5ldyBiYWNrdXAgam9iOiB2emR1bXAgMTcwIC0tbW9kZSBzbmFwc2hvdCAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXQoyMDI2LTEwLTA1VDAwOjQwOjU1KzAzOjAwIHB2ZTAxIHZ6ZHVtcFs5ODIwMTldOiBJTkZPOiBTdGFydGluZyBCYWNrdXAgb2YgVk0gMTcwIChxZW11KQoyMDI2LTEwLTA1VDAwOjQzOjAzKzAzOjAwIHB2ZTAxIHZ6ZHVtcFs5ODIwMTldOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcwICgwMDowMjowOCkKMjAyNi0xMC0wNVQwMDo0MzowMyswMzowMCBwdmUwMSB2emR1bXBbOTgyMDE5XTogSU5GTzogQmFja3VwIGpvYiBmaW5pc2hlZCBzdWNjZXNzZnVsbHkKMjAyNi0xMC0wNVQwMDo0MzowMyswMzowMCBwdmUwMSB2emR1bXBbOTgxNzY5XTogPHJvb3RAcGFtPiBlbmQgdGFzayBVUElEOnB2ZTAxOjAwMEVGQzAzOjEzM0FCQjNBOjZBQzJDN0U3OnZ6ZHVtcDoxNzA6cm9vdEBwYW06IE9LCjIwMjYtMTAtMDVUMDA6NDM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbOTgxNjM5XTogU0NIRURVTEVfVEFSR0VUPXZtMTcwCjIwMjYtMTAtMDVUMDA6NDM6MDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbOTgxNjM5XTogUUVNVV9FWEVDVVRJT05fRElBRz17ImFyY2hpdmVfYnl0ZXMiOjg1NDQwNzgyNDksImFyY2hpdmVfc2VsZWN0ZWQiOnRydWUsIm5vZGUiOiJwdmUwMSIsInByb2R1Y2VyX3JjIjowLCJyZWd1bGFyX2ZpbGVfY291bnQiOjIsInNpZGVjYXJfY291bnQiOjEsInZtaWQiOjE3MH0KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12Mls5ODE2MzldOiBTQ0hFRFVMRV9SRVNVTFQ9U1VDQ0VTUwoyMDI2LTEwLTA1VDAwOjU0OjE2KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlIC0gSG9tZWxhYiBCYWNrdXAgVjIgbWFuaWZlc3QtZHJpdmVuIHNjaGVkdWxlci4KMjAyNi0xMC0wNVQwMDo1NDoxNiswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBDb25zdW1lZCA0bWluIDIzLjY0NXMgQ1BVIHRpbWUsIDYuNkcgbWVtb3J5IHBlYWsuCjIwMjYtMTAtMDVUMDE6MTk6MDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogU3RhcnRpbmcgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuLi4KMjAyNi0xMC0wNVQwMToxOTowMyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMTA0OTkzXTogU0VMRlRFU1RfUkVQTEFDRU1FTlQ0ODY9UEFTUwoyMDI2LTEwLTA1VDAxOjMxOjI5KzAzOjAwIHB2ZTAxIGhvbWVsYWItYmFja3VwLXYyWzExMDQ5OTNdOiBTQ0hFRFVMRV9UQVJHRVQ9eGYtY29kZXZpcGUKMjAyNi0xMC0wNVQwMTozMToyOSswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMTA0OTkzXTogU0NIRURVTEVfUkVTVUxUPVNVQ0NFU1MKMjAyNi0xMC0wNVQwMTozMToyOSswMzowMCBwdmUwMSBzeXN0ZW1kWzFdOiBob21lbGFiLWJhY2t1cC12Mi5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuCjIwMjYtMTAtMDVUMDE6MzE6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogRmluaXNoZWQgaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZSAtIEhvbWVsYWIgQmFja3VwIFYyIG1hbmlmZXN0LWRyaXZlbiBzY2hlZHVsZXIuCjIwMjYtMTAtMDVUMDE6MzE6MjkrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogQ29uc3VtZWQgMTMuNzUxcyBDUFUgdGltZSwgMTUyLjZNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAxOjUwOjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDE6NTA6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMTo1MDozMyswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMF06IDxyb290QHBhbT4gc3RhcnRpbmcgdGFzayBVUElEOnB2ZTAxOjAwMTI2QzE5OjEzNDExQjRGOjZBQzJEODM5OnZ6ZHVtcDoxNzE6cm9vdEBwYW06CjIwMjYtMTAtMDVUMDE6NTA6MzMrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjFdOiBJTkZPOiBzdGFydGluZyBuZXcgYmFja3VwIGpvYjogdnpkdW1wIDE3MSAtLWNvbXByZXNzIHpzdGQgLS1kdW1wZGlyIFtQQVRIXSAtLW1vZGUgc25hcHNob3QKMjAyNi0xMC0wNVQwMTo1MDozMyswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMV06IElORk86IFN0YXJ0aW5nIEJhY2t1cCBvZiBWTSAxNzEgKHFlbXUpCjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjFdOiBJTkZPOiBGaW5pc2hlZCBCYWNrdXAgb2YgVk0gMTcxICgwMDowMDo0NSkKMjAyNi0xMC0wNVQwMTo1MToxOCswMzowMCBwdmUwMSB2emR1bXBbMTIwNzMyMV06IElORk86IEJhY2t1cCBqb2IgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5CjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgdnpkdW1wWzEyMDczMjBdOiA8cm9vdEBwYW0+IGVuZCB0YXNrIFVQSUQ6cHZlMDE6MDAxMjZDMTk6MTM0MTFCNEY6NkFDMkQ4Mzk6dnpkdW1wOjE3MTpyb290QHBhbTogT0sKMjAyNi0xMC0wNVQwMTo1MToxOCswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMjA3MzA2XTogU0NIRURVTEVfVEFSR0VUPXZtMTcxCjIwMjYtMTAtMDVUMDE6NTE6MTgrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFFFTVVfRVhFQ1VUSU9OX0RJQUc9eyJhcmNoaXZlX2J5dGVzIjoyMDczMjUzNDY4LCJhcmNoaXZlX3NlbGVjdGVkIjp0cnVlLCJub2RlIjoicHZlMDEiLCJwcm9kdWNlcl9yYyI6MCwicmVndWxhcl9maWxlX2NvdW50IjoyLCJzaWRlY2FyX2NvdW50IjoxLCJ2bWlkIjoxNzF9CjIwMjYtMTAtMDVUMDE6NTQ6MTUrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTIwNzMwNl06IFNDSEVEVUxFX1JFU1VMVD1TVUNDRVNTCjIwMjYtMTAtMDVUMDE6NTQ6MTUrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA1VDAxOjU0OjE1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA1VDAxOjU0OjE1KzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDFtaW4gNS41NTVzIENQVSB0aW1lLCAyLjVHIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDI6MjI6NDMrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTMwNzI4MV06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1MKMjAyNi0xMC0wNVQwMjoyMjo0MyswMzowMCBwdmUwMSBob21lbGFiLWJhY2t1cC12MlsxMzA3MjgxXTogU0NIRURVTEVfREVGRVJfSEVBVllfTE9DS19CVVNZCjIwMjYtMTAtMDVUMDI6MjI6NDMrMDM6MDAgcHZlMDEgc3lzdGVtZFsxXTogaG9tZWxhYi1iYWNrdXAtdjIuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IEZpbmlzaGVkIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLgoyMDI2LTEwLTA1VDAyOjIyOjQzKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2U6IENvbnN1bWVkIDE5NW1zIENQVSB0aW1lLCAxMzVNIG1lbW9yeSBwZWFrLgoyMDI2LTEwLTA1VDAyOjU1OjMyKzAzOjAwIHB2ZTAxIHN5c3RlbWRbMV06IFN0YXJ0aW5nIGhvbWVsYWItYmFja3VwLXYyLnNlcnZpY2UgLSBIb21lbGFiIEJhY2t1cCBWMiBtYW5pZmVzdC1kcml2ZW4gc2NoZWR1bGVyLi4uCjIwMjYtMTAtMDVUMDI6NTU6MzIrMDM6MDAgcHZlMDEgaG9tZWxhYi1iYWNrdXAtdjJbMTQwNjkyNl06IFNFTEZURVNUX1JFUExBQ0VNRU5UNDg2PVBBU1M= +VM150_CONTEXT_SUCCESS_COUNT=71 +VM150_CONTEXT_FAIL_COUNT=12 +VM150_CONTEXT_QEMU_DIAG_COUNT=40 +VM150_CONTEXT_RCLONE_COUNT=0 +VM150_CONTEXT_TRANSPORT_COUNT=0 +VM150_CONTEXT_SEAL_COUNT=0 +VM150_CONTEXT_CLOUD_COUNT=0 +VM150_CONTEXT_RESTORE_COUNT=0 +BACKUP_RELATED_UNIT_COUNT=10 +PIPELINE_UNIT_NAME_SHA256=b8eeae6c048d6e401ebcf7951145c024e4cebb66f701a75b6bedc0ed70326cc3 +PIPELINE_UNIT_BASENAME=homelab-app-cloud-quorum-queue.service +PIPELINE_UNIT_CAT_SHA256=def48fe13ac2c20120f6215613b1cfad3c64185fb5095c02b710c0d0af11d497 +PIPELINE_UNIT_NAME_SHA256=f7ebb46817be0d2ca602ff792db760e5100ebd17cf613fee1488b6009f534676 +PIPELINE_UNIT_BASENAME=homelab-backup-retention-gc.service +PIPELINE_UNIT_CAT_SHA256=9e49c4d868e8f86929b072504016c1f91622aa1374e11b69ff0eef3f82e136d3 +PIPELINE_UNIT_NAME_SHA256=cf2099570f34c3eec77986ea6c8f58d00adc03504be62548c99c1cad10249761 +PIPELINE_UNIT_BASENAME=homelab-backup-v2.service +PIPELINE_UNIT_CAT_SHA256=6f88c0f9382c6f7ab8cc58211d06858059d915a72eb8be4e28d7bef78c9eae4d +PIPELINE_UNIT_NAME_SHA256=e613711e04351edbd7fade15d9f0aa23080465e824ac762fbb3cc31d5ffb9176 +PIPELINE_UNIT_BASENAME=homelab-control-backup.service +PIPELINE_UNIT_CAT_SHA256=01c8bdb663674d7055ec1da4cb26f27bf475bef71edb94e2d18483077d8a4aae +PIPELINE_UNIT_NAME_SHA256=33f33cbd9e5e9a7ce7b5b8f7ad04991a8631a079cc763ea0103fde0501f6192d +PIPELINE_UNIT_BASENAME=homelab-evidence-seal.service +PIPELINE_UNIT_CAT_SHA256=c6ed66924e867ba54b7685e61b2788a63101bc76d7bb40f648c2f7149aa36aa4 +PIPELINE_UNIT_NAME_SHA256=a45f9fb9d002c20213a190104c8e9139b3dcdb7ab3eed8078244530965405ae8 +PIPELINE_UNIT_BASENAME=homelab-router-running-config-mail-cloud.service +PIPELINE_UNIT_CAT_SHA256=e2624acfa2b1757fdf6b819fafb2411cd5eeb324813ba49fbd334c3929d5d02c +PIPELINE_UNIT_NAME_SHA256=601009fd48bf10f4b424e94615e9564b320bff2999e72e990d6038e3bca4cb2e +PIPELINE_UNIT_BASENAME=homelab-vm-cloud-quorum-queue.service +PIPELINE_UNIT_CAT_SHA256=fc223bc12e20ef21b0d42cba13aa3768302ecdf5d43c343048489a7d380236d4 PUBLIC_DNS_OK_COUNT=3 PUBLIC_HTTPS_OK_COUNT=3 -BACKUP_FRESHNESS_RCA_COMPLETE=true -DECISION=ANALYZE_EXACT_99592_FRESHNESS_CHAIN -NEXT_GATE=VM150_FRESH_SEAL_OR_TARGETED_BACKUP_RESTORE -TASK_RESULT=SNIKKET_VM150_BACKUP_FRESHNESS_RCA -CHANGES_MADE=false -ROLLBACK_STARTED=false -ROLLBACK_RESTORED=null -MUTATION_OUTCOME=NO_MUTATION -FRESHNESS_PYTHON_STDERR_BYTES=0 +BACKUP_PIPELINE_RCA_COMPLETE=true +DECISION=ANALYZE_EXACT_99593_PIPELINE_ENTRYPOINT +NEXT_GATE=VM150_FRESH_DUAL_CLOUD_BACKUP_AND_RESTORE +TASK_RESULT=SNIKKET_VM150_BACKUP_PIPELINE_RCA CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null