{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\DetailPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\DetailPage\\index.vue","mtime":1750736011921},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQge3JlZmluZVJlcXVlc3RCb2R5fSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycycNCmltcG9ydCB7ZGljdGlvbmFyeUVzY2FwZSwgZ2V0RGljdGlvbmFyeUJ5Q29kZX0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5Jw0KaW1wb3J0IHsNCiAgZGVyZWd1bGF0aW9uLA0KICBldmVudENvbXBsZXRlZCwNCiAgdGFibGVEZXRhaWwsDQogIHRhYmxlRWRpdA0KfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvY29tbWFuZERpc3BhdGNoL2V2ZW50TWFuYWdlbWVudCcNCmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJw0KaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnDQppbXBvcnQgQmFzaWNzSW5mbyBmcm9tICcuLi9CYXNpY3NJbmZvJw0KaW1wb3J0IHt0YWJsZURhdGEgYXMgcm9hZFNlY3Rpb25JbmZvSW50ZXJ9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3JvYWRTZWN0aW9uSW5mbycNCmltcG9ydCB7dGFibGVEYXRhIGFzIGFsb25nUm91dGVJbmZvSW50ZXJ9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL2Fsb25nUm91dGVJbmZvJw0KaW1wb3J0IHt0YWJsZURhdGEgYXMgdGVhbURhdGF9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3BhdHJvbEFuZFJlc2N1ZVRlYW1zTWdtdCcNCmltcG9ydCBBcHBvaW50RGlhbG9nIGZyb20gJy4uL0FwcG9pbnREaWFsb2cnDQppbXBvcnQgZGlzcG9zYWxQcm9jZXNzIGZyb20gJy4uL0Rpc3Bvc2FsUHJvY2VzcycNCmltcG9ydCB7DQogIGNvbXBlbnNhdGlvbkFkZCwNCiAgY29tcGVuc2F0aW9uRGVsZXRlLA0KICBjb21wZW5zYXRpb25FZGl0LA0KICByZXNjdWVGZWVEZWxldGUsDQogIHRyYWZmaWNDb250cm9sRGVsZXRlLA0KICB0cmFmZmljSmFtRGVsZXRlLA0KICB0cmFmZmljSmFtRWRpdA0KfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvY29tbWFuZERpc3BhdGNoL2V2ZW50TWFuYWdlbWVudC9ldmVudEVkaXQnDQoNCmltcG9ydCBEZXRhaWxlZExpc3RHaWFsb2cNCiAgZnJvbSAnQC92aWV3cy9wYXRyb2xBbmRSZXNjdWUvcm9hZERhbWFnZUNvbXAvUm9hZERhbWFnZVJlZ2lzdGVyL2NvbXBvbmVudHMvRWRpdEFkZFBhZ2UvY29tcG9uZW50cy9EZXRhaWxlZExpc3RHaWFsb2cnIC8vIOi1lOWBv+a4heWNleW8ueeqlw0KaW1wb3J0IHJlc2N1ZUNvc3REaWFsb2cgZnJvbSAnLi9yZXNjdWVDb3N0RGlhbG9nL2luZGV4LnZ1ZScgLy8g5pWR5o+06LS555So5L+h5oGv5by556qXDQppbXBvcnQgdHJhZmZpY0NvbnRyb2xEaWFsb2cgZnJvbSAnLi90cmFmZmljQ29udHJvbERpYWxvZy9pbmRleC52dWUnIC8vIOaLpeWgteWIl+ihqOW8ueeqlw0KaW1wb3J0IFRyYWZmaWNKYW1EaWFsb2cgZnJvbSAnLi90cmFmZmljSmFtRGlhbG9nL2luZGV4LnZ1ZScNCmltcG9ydCBTYXZlRGV0YWlsRGlhbG9nDQogIGZyb20gJ0Avdmlld3MvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9FdmVudElucXVpcnkvY29tcG9uZW50cy9TYXZlRGV0YWlsRGlhbG9nL2luZGV4LnZ1ZScgLy8g5oul5aC15YiX6KGo5by556qXDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdEZXRhaWxQYWdlJywNCiAgcHJvcHM6IHsNCiAgICBjb21wb25lbnROYW1lOiB7DQogICAgICBkZWZhdWx0OiAnVGFibGVQYWdlJywNCiAgICAgIHR5cGU6IFN0cmluZw0KICAgIH0NCiAgfSwNCiAgY29tcG9uZW50czogew0KICAgIFNhdmVEZXRhaWxEaWFsb2csDQogICAgQmFzaWNzSW5mbywNCiAgICBBcHBvaW50RGlhbG9nLA0KICAgIGRpc3Bvc2FsUHJvY2VzcywNCiAgICBEZXRhaWxlZExpc3RHaWFsb2csDQogICAgcmVzY3VlQ29zdERpYWxvZywNCiAgICBUcmFmZmljSmFtRGlhbG9nLA0KICAgIHRyYWZmaWNDb250cm9sRGlhbG9nDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGFwcG9pbnREaWFsb2c6IGZhbHNlLA0KICAgICAgZWRpdFNhdmVMb2FkaW5nOiBmYWxzZSwNCiAgICAgIHBhZ2VUeXBlOiAnZWRpdCcsDQogICAgICBkZXRhaWxGb3JtOiB7fSwNCiAgICAgIHB1YlN1YjogbnVsbCwNCiAgICAgIGV2ZW50U3RhdHVzOiAwLA0KICAgICAgY29uZmlybUxvYWRpbmc6IGZhbHNlLA0KICAgICAgcmV2ZXJzZTogdHJ1ZSwNCiAgICAgIG1hcDogbnVsbCwNCiAgICAgIG1hcExvYWRpbmc6IHRydWUsDQogICAgICBtYXBEZWZhdWx0T3B0aW9uczogew0KICAgICAgICBjZW50ZXI6IFsxMDYuNTUwNywgMjkuNTY0N10gLyrlnLDlm77kuK3lv4PngrkqLywNCiAgICAgICAgem9vbTogOSAvKuWcsOWbvum7mOiupOe8qeaUvuetiee6pyovDQogICAgICB9LA0KICAgICAgZXZlbnRHcmFkZU9wdGlvbnM6IFsNCiAgICAgICAgLy/kuovku7bnrYnnuqcNCiAgICAgICAge2xhYmVsOiAnMee6pycsIHZhbHVlOiAxfSwNCiAgICAgICAge2xhYmVsOiAnMue6pycsIHZhbHVlOiAyfSwNCiAgICAgICAge2xhYmVsOiAnM+e6pycsIHZhbHVlOiAzfSwNCiAgICAgICAge2xhYmVsOiAnNOe6pycsIHZhbHVlOiA0fQ0KICAgICAgXSwNCiAgICAgIG1hcmtlcnM6IFtdLA0KICAgICAgcm9hZE9wdGlvbnM6IFtdLA0KICAgICAgYWxvbmdSb3V0ZUluZm9EYXRhOiBbXSwNCiAgICAgIHRlYW1PcHRpb25zOiBbXSwNCiAgICAgIGVkaXREaWFsb2c6IGZhbHNlLA0KICAgICAgZXZlbnRUeXBlOiAnJywNCiAgICAgIGJhc2VJbmZvOiB7fSwNCiAgICAgIGRpc3Bvc2FsUHJvY2VzczogZmFsc2UsDQogICAgICBjb21wZW5zYXRlRGlhbG9nOiBmYWxzZSwgLy8g6LWU5YG/5riF5Y2V5by556qXDQogICAgICBjb21wZW5zYXRlRGlhbG9nRGV0YWlsOiB7fSwNCiAgICAgIHJlc2N1ZURpYWxvZzogZmFsc2UsIC8vIOaVkeaPtOi0ueeUqOS/oeaBr+W8ueeqlw0KICAgICAgcmVzY3VlRGlhbG9nRGV0YWlsOiB7fSwNCiAgICAgIGNvbnRyb2xEaWFsb2c6IGZhbHNlLCAvLyDnrqHliLbliJfooajlvLnnqpcNCiAgICAgIGNvbnRyb2xEaWFsb2dEZXRhaWw6IHt9LA0KICAgICAgdHJhZmZpY0phbURpYWxvZzogZmFsc2UsIC8vIOaLpeWgteWIl+ihqOW8ueeqlw0KICAgICAgdHJhZmZpY0phbURpYWxvZ0RldGFpbDoge30sDQogICAgICByZWxlYXNlVGltZTogbmV3IERhdGUoKSwNCiAgICAgIGppZWNodVRpbWU6IG5ldyBEYXRlKCksDQogICAgICBTYXZlRGV0YWlsRGlhbG9nOiBmYWxzZSwNCiAgICAgIHNhdmVEZXRhaWxGb3JtOiB7fSwNCiAgICAgIGluc3BlY3RPcHRpb25zOiBbXQ0KICAgIH0NCiAgfSwNCiAgY29tcHV0ZWQ6IHt9LA0KICB3YXRjaDogew0KICAgIGNvbXBvbmVudE5hbWU6IHsNCiAgICAgIGhhbmRsZXIobmV3VmFsKSB7DQogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgew0KICAgICAgICAgIHRoaXMub3BlblBhZ2UoKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCkNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgbW91bnRlZCgpIHsNCiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ0RldGFpbFBhZ2UnLCAoXywgZGF0YSkgPT4gew0KICAgICAgaWYgKGRhdGEuaWQpIHsNCiAgICAgICAgdGhpcy5ldmVudFN0YXR1cyA9IGRhdGEuc3RhdHVzDQogICAgICAgIHRoaXMuZ2V0RGV0YWlsKGRhdGEuaWQpDQogICAgICB9DQogICAgICB0aGlzLmdldFJvYWRPcHRpb25zKCkNCiAgICB9KQ0KICB9LA0KICBtZXRob2RzOiB7DQogICAgcmVzY3VlSW5jaWRlbnRzKHJvdykgew0KICAgICAgdGhpcy5TYXZlRGV0YWlsRGlhbG9nID0gdHJ1ZQ0KICAgICAgdGhpcy5zYXZlRGV0YWlsRm9ybSA9IHJvdw0KICAgIH0sDQogICAgaGFuZGxlQWRkKHR5cGUpIHsNCiAgICAgIGlmICh0aGlzLnBhZ2VUeXBlID09PSAnZWRpdCcpIHsNCiAgICAgICAgaWYgKHR5cGUgPT09ICdjb21wZW5zYXRlRGlhbG9nJyAmJiB0aGlzLmRldGFpbEZvcm0uY29tcGVuc2F0aW9uSW5mbykgew0KICAgICAgICAgIHRoaXNbdHlwZV0gPSB0cnVlDQogICAgICAgICAgdGhpc1t0eXBlICsgJ0RldGFpbCddID0gew0KICAgICAgICAgICAgZXZlbnRJZDogdGhpcy5kZXRhaWxGb3JtLmlkLA0KICAgICAgICAgICAgcm9hZElkOiB0aGlzLmRldGFpbEZvcm0ucm9hZElkDQogICAgICAgICAgfQ0KICAgICAgICB9IGVsc2UgaWYgKA0KICAgICAgICAgIHR5cGUgPT09ICdjb21wZW5zYXRlRGlhbG9nJyAmJg0KICAgICAgICAgICF0aGlzLmRldGFpbEZvcm0uY29tcGVuc2F0aW9uSW5mbw0KICAgICAgICApIHsNCiAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7DQogICAgICAgICAgICBuYW1lOiAncm9hZERhbWFnZVJlZ2lzdGVyJw0KICAgICAgICAgIH0pDQogICAgICAgIH0NCiAgICAgICAgaWYgKHR5cGUgIT09ICdjb21wZW5zYXRlRGlhbG9nJykgew0KICAgICAgICAgIHRoaXNbdHlwZV0gPSB0cnVlDQogICAgICAgICAgdGhpc1t0eXBlICsgJ0RldGFpbCddID0gew0KICAgICAgICAgICAgZXZlbnRJZDogdGhpcy5kZXRhaWxGb3JtLmlkLA0KICAgICAgICAgICAgcm9hZElkOiB0aGlzLmRldGFpbEZvcm0ucm9hZElkDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOS/neWtmOW9k+WJjee8lui+keeahOS6i+S7tuWfuuehgOS/oeaBrycpDQogICAgICB9DQogICAgfSwNCiAgICBhc3luYyBzYXZlQ29tcGVuc2F0aW9uKGRhdGEpIHsNCiAgICAgIHRoaXMuY29tcGVuc2F0ZURpYWxvZ0RldGFpbCA9IGRhdGENCiAgICAgIHRoaXMuY29tcGVuc2F0ZURpYWxvZyA9IGZhbHNlDQogICAgICBjb25zdCB7DQogICAgICAgIGlkLA0KICAgICAgICB1bml0LA0KICAgICAgICBwcmljZSwNCiAgICAgICAgcHJvcGVydHlTdWJqZWN0SWQsDQogICAgICAgIHByb3BlcnR5U3ViamVjdE5hbWUsDQogICAgICAgIHByb3BlcnR5U3ViamVjdFR5cGUsDQogICAgICAgIHByb3BlcnR5VHlwZUlkLA0KICAgICAgICB0b3RsZSwNCiAgICAgICAgbnVtLA0KICAgICAgICBtZW1vLA0KICAgICAgICBtb2RsZSwNCiAgICAgICAgY29tcGVuc2F0aW9uSWQNCiAgICAgIH0gPSB0aGlzLmNvbXBlbnNhdGVEaWFsb2dEZXRhaWwNCiAgICAgIGNvbnN0IHBhcmFtcyA9IHsNCiAgICAgICAgaWQsDQogICAgICAgIHVuaXQsDQogICAgICAgIHByaWNlLA0KICAgICAgICBwcm9wZXJ0eVN1YmplY3RJZCwNCiAgICAgICAgcHJvcGVydHlTdWJqZWN0TmFtZSwNCiAgICAgICAgcHJvcGVydHlTdWJqZWN0VHlwZSwNCiAgICAgICAgcHJvcGVydHlUeXBlSWQsDQogICAgICAgIHRvdGxlLA0KICAgICAgICBudW0sDQogICAgICAgIG1lbW8sDQogICAgICAgIG1vZGxlLA0KICAgICAgICBldmVudElkOiB0aGlzLmRldGFpbEZvcm0uaWQsDQogICAgICAgIGNvbXBlbnNhdGlvbklkOiB0aGlzLmRldGFpbEZvcm0uY29tcGVuc2F0aW9uSW5mby5pZA0KICAgICAgfQ0KICAgICAgdHJ5IHsNCiAgICAgICAgY29uc3QgQVBJID0gZGF0YS5pZCA/IGNvbXBlbnNhdGlvbkVkaXQgOiBjb21wZW5zYXRpb25BZGQNCiAgICAgICAgY29uc3QgdHlwZSA9IGRhdGEuaWQgPyAn57yW6L6RJyA6ICfmlrDlop4nDQogICAgICAgIGNvbnN0IHtzdGF0ZSwgbWVzc2FnZX0gPSBhd2FpdCBBUEkocGFyYW1zKQ0KICAgICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgICB0aGlzLnJlbG9hZCgpDQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCfot6/kuqfotZTlgb/muIXljZUnICsgdHlwZSArICfmiJDlip/vvIEnKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IobWVzc2FnZSB8fCAn6Lev5Lqn6LWU5YG/5riF5Y2VJyArIHR5cGUgKyAn5aSx6LSl77yBJykNCiAgICAgICAgfQ0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlcnJvciB8fCAn6Lev5Lqn6LWU5YG/5riF5Y2V5L+d5a2Y5aSx6LSl77yBJykNCiAgICAgIH0NCiAgICB9LA0KICAgIGhhbmRsZUVkaXQocm93LCB0eXBlKSB7DQogICAgICB0aGlzW3R5cGUgKyAnRGV0YWlsJ10gPSByb3cNCiAgICAgIHRoaXNbdHlwZV0gPSB0cnVlDQogICAgfSwNCiAgICAvLyDmi6XloLXop6PpmaQNCiAgICBhc3luYyBoYW5kbGVSZWxlYXNlKHJvdykgew0KICAgICAgaWYgKHRoaXMucmVsZWFzZVRpbWUpIHsNCiAgICAgICAgcm93LmVuZFRpbWUgPSBtb21lbnQodGhpcy5yZWxlYXNlVGltZSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJykNCiAgICAgICAgY29uc3Qge3N0YXRlLCB2YWx1ZSwgbWVzc2FnZX0gPSBhd2FpdCB0cmFmZmljSmFtRWRpdChyb3cpDQogICAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5oul5aC16Kej6Zmk5oiQ5YqfJykNCiAgICAgICAgICB0aGlzLnJlbG9hZCgpDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihtZXNzYWdlIHx8ICfmi6XloLXop6PpmaTlpLHotKUnKQ0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeino+mZpOaXtumXtCcpDQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVEZWxldGUoZGF0YSwgdHlwZSkgew0KICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm5Yig6Zmk6K+l5pWw5o2u77yfJywgJ+aPkOekuicsIHsNCiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLA0KICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywNCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnDQogICAgICB9KS50aGVuKGFzeW5jICgpID0+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICBsZXQgQVBJDQogICAgICAgICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgICAgICBjYXNlICdjb21wZW5zYXRlRGlhbG9nJzoNCiAgICAgICAgICAgICAgQVBJID0gY29tcGVuc2F0aW9uRGVsZXRlDQogICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgICBjYXNlICd0cmFmZmljSmFtRGlhbG9nJzoNCiAgICAgICAgICAgICAgQVBJID0gdHJhZmZpY0phbURlbGV0ZQ0KICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgY2FzZSAnY29udHJvbERpYWxvZyc6DQogICAgICAgICAgICAgIEFQSSA9IHRyYWZmaWNDb250cm9sRGVsZXRlDQogICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgICBjYXNlICdyZXNjdWVEaWFsb2cnOg0KICAgICAgICAgICAgICBBUEkgPSByZXNjdWVGZWVEZWxldGUNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbGV0IHtzdGF0ZX0gPSBhd2FpdCBBUEkoZGF0YS5pZCkNCiAgICAgICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5oiQ5YqfJykNCiAgICAgICAgICAgIHRoaXMucmVsb2FkKCkNCiAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlcnJvciB8fCAn5Yig6Zmk5aSx6LSl77yBJykNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIHJlbG9hZCgpIHsNCiAgICAgIHRoaXMuZ2V0RGV0YWlsKHRoaXMuZGV0YWlsRm9ybS5pZCkNCiAgICB9LA0KICAgIGdldERpY3Rpb25hcnlCeUNvZGUsDQogICAgZGljdGlvbmFyeUVzY2FwZSwNCiAgICBzaG93QXBwb2ludERpYWxvZygpIHsNCiAgICAgIC8vIHRoaXMuYmFzZUluZm8gPSB0aGlzLiRyZWZzLmJhc2ljc0NvbnRlbnQuc2VuZEJhc2VEYXRhKCkNCiAgICAgIC8vIHRoaXMuJHJlZnMuYWRkRWRpdEZvcm0udmFsaWRhdGUoYXN5bmMgKHZhbGlkLCBvYmplY3QpID0+IHsNCiAgICAgIC8vICAgaWYgKCF2YWxpZCkgew0KICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygNCiAgICAgIC8vICAgICAgIGDmnIkke09iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoICsgKGJhc2ljZURhdGEuZmllbGROdW0gfHwgMCkNCiAgICAgIC8vICAgICAgIH3kuKrlrZfmrrXmnKrpgJrov4fmoKHpqozvvIzor7fmraPnoa7loavlhpnooajljZXlhoXlrrnjgIJgDQogICAgICAvLyAgICAgKQ0KICAgICAgLy8gICB9IGVsc2Ugew0KDQogICAgICAvLyAgIH0NCiAgICAgIC8vIH0pDQogICAgICB0aGlzLmFwcG9pbnREaWFsb2cgPSB0cnVlDQogICAgfSwNCiAgICBoYW5kbGVVcGRhdGFIYW5kbGVzKCkgew0KICAgICAgY29uc29sZS5sb2coJ+abtOaWsOa1geeoi+iusOW9lScpDQogICAgICB0aGlzLmdldERldGFpbCh0aGlzLmRldGFpbEZvcm0uaWQpDQogICAgfSwNCiAgICAvLyDmt7vliqDlpITnva7njq/oioINCiAgICBoYW5kbGVBZGREaXNwb3NhbCgpIHsNCiAgICAgIHRoaXMuZGlzcG9zYWxQcm9jZXNzID0gdHJ1ZQ0KICAgIH0sDQogICAgY2xpY2tFZGl0KCkgew0KICAgICAgdGhpcy5wYWdlVHlwZSA9IHRoaXMucGFnZVR5cGUgPT09ICdlZGl0JyA/ICdkZXRhaWwnIDogJ2VkaXQnDQogICAgICBpZiAodGhpcy5wYWdlVHlwZSAhPT0gJ2VkaXQnKSB7DQogICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgICB0aGlzLiRyZWZzLmJhc2ljc0NvbnRlbnQuZ2V0RGV0YWlsKHRoaXMuZGV0YWlsRm9ybSkNCiAgICAgICAgfSkNCiAgICAgIH0NCiAgICB9LA0KICAgIGFzeW5jIGNsaWNrU2F2ZSgpIHsNCiAgICAgIGxldCBkYXRhID0gdGhpcy4kcmVmcy5iYXNpY3NDb250ZW50LnNlbmRCYXNlRGF0YSgpDQogICAgICBpZiAoZGF0YS5maWVsZE51bSkgew0KICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoDQogICAgICAgICAgYOaciSR7ZGF0YS5maWVsZE51bX3kuKrlrZfmrrXmnKrpgJrov4fmoKHpqozvvIzor7fmraPnoa7loavlhpnooajljZXlhoXlrrnjgIJgDQogICAgICAgICkNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGNvbnN0IHF1ZXJ5ID0gey4uLmRhdGF9DQogICAgICAgIGRlbGV0ZSBxdWVyeS5oYW5kbGVzDQogICAgICAgIGRlbGV0ZSBxdWVyeS5jb21wZW5zYXRpb25JbmZvDQogICAgICAgIGRlbGV0ZSBxdWVyeS50cmFmZmljQ29uZ2VzdGlvbnMNCiAgICAgICAgZGVsZXRlIHF1ZXJ5LnRyYWZmaWNDb250cm9scw0KICAgICAgICBxdWVyeS5ldmVudFR5cGUgPSBKU09OLnN0cmluZ2lmeShxdWVyeS5ldmVudFR5cGUpDQogICAgICAgIHRyeSB7DQogICAgICAgICAgdGhpcy5lZGl0U2F2ZUxvYWRpbmcgPSB0cnVlDQogICAgICAgICAgbGV0IHtzdGF0ZSwgbWVzc2FnZSwgdmFsdWV9ID0gYXdhaXQgdGFibGVFZGl0KHF1ZXJ5KQ0KICAgICAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKGDnvJbovpHkv53lrZjmiJDlip9gKQ0KICAgICAgICAgICAgdGhpcy5wYWdlVHlwZSA9ICdlZGl0Jw0KICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtID0gey4uLnRoaXMuZGV0YWlsRm9ybSwgLi4uZGF0YX0NCiAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5jb21wZW5zYXRpb25EZXRhaWxzID0NCiAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtPy5jb21wZW5zYXRpb25JbmZvPy5jb21wZW5zYXRpb25EZXRhaWxzIHx8IFtdDQogICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0uZXZlbnRUeXBlID0gSlNPTi5wYXJzZShkYXRhLmV2ZW50VHlwZSkNCiAgICAgICAgICB9DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgdGhpcy5lZGl0U2F2ZUxvYWRpbmcgPSBmYWxzZQ0KICAgICAgICB9DQogICAgICB9DQogICAgfSwNCiAgICAvLyDkuovku7blroznu5MNCiAgICBoYW5kbGVFdmVudENvbXBsZXRlZCgpIHsNCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuS6i+S7tuW3suWujOe7k+WQl++8nycsICfmj5DnpLonLCB7DQogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywNCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsDQogICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7DQogICAgICAgIGxldCBkYXRhID0gew0KICAgICAgICAgIGV2ZW50SWQ6IHRoaXMuZGV0YWlsRm9ybS5pZCwNCiAgICAgICAgICBldmVudE5vZGU6IDkNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCB7c3RhdGV9ID0gYXdhaXQgZXZlbnRDb21wbGV0ZWQoZGF0YSkNCiAgICAgICAgaWYgKHN0YXRlKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCfkuovku7blroznu5PmiJDlip/vvIEnKQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQoNCiAgICAvLyDot6/mrrXmlbDmja7mn6Xor6INCiAgICBhc3luYyBnZXRSb2FkT3B0aW9ucygpIHsNCiAgICAgIGNvbnN0IHtyb3dzID0gW119ID0gYXdhaXQgcm9hZFNlY3Rpb25JbmZvSW50ZXIoe3BhZ2VCZWFuOiB7cGFnZVNpemU6IC0xfX0pDQogICAgICB0aGlzLnJvYWRPcHRpb25zID0gcm93cy5tYXAoaXRlbSA9PiB7DQogICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGUNCiAgICAgICAgcmV0dXJuIGl0ZW0NCiAgICAgIH0pDQogICAgICAvLyBpZighdGhpcy5pZCkgew0KICAgICAgLy8gICB0aGlzLiRzZXQodGhpcy5kZXRhaWxGb3JtLCAncm9hZElkJywgdGhpcy5yb2FkT3B0aW9uc1swXS5pZCkNCiAgICAgIC8vICAgdGhpcy5yb2FkQ2hhbmdlKHRoaXMucm9hZE9wdGlvbnNbMF0uaWQpDQogICAgICAvLyB9DQogICAgfSwNCiAgICAvLyDot6/mrrXpgInmi6nlj5jljJYNCiAgICBhc3luYyByb2FkQ2hhbmdlKHZhbHVlKSB7DQogICAgICB0aGlzLmdldFRlYW1EYXRhKHZhbHVlKQ0KICAgICAgdGhpcy5nZXRJbnNwZWN0RGF0YSh2YWx1ZSkNCiAgICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluayv+e6v+iuvuWkh+S/oeaBrw0KICAgICAgdGhpcy5nZXRBbG9uZ1JvdXRlSW5mbyh2YWx1ZSwgZGF0YSA9PiB7DQogICAgICAgIGNvbnN0IHtzdGFydFBhdHJvbElkLCBlbmRQYXRyb2xJZH0gPSB0aGlzLmRldGFpbEZvcm0NCg0KICAgICAgICAvKg0KICAgICAgICAgKiDlt6Hmo4DlvIDlp4vvvIznu5PmnZ/nq5kNCiAgICAgICAgICogKi8NCiAgICAgICAgaWYgKHN0YXJ0UGF0cm9sSWQpIHsNCiAgICAgICAgICBpZiAoIWRhdGEuc29tZShpID0+IGkuaWQgPT09IHN0YXJ0UGF0cm9sSWQpKSB7DQogICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0uc3RhcnRQYXRyb2xJZCA9ICcnDQogICAgICAgICAgICBzZXRUaW1lb3V0KF8gPT4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fph43mlrDpgInmi6nlt6Hmo4DlvIDlp4vnq5kuLicpKQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChlbmRQYXRyb2xJZCkgew0KICAgICAgICAgIGlmICghZGF0YS5zb21lKGkgPT4gaS5pZCA9PT0gZW5kUGF0cm9sSWQpKSB7DQogICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0uZW5kUGF0cm9sSWQgPSAnJw0KICAgICAgICAgICAgc2V0VGltZW91dChfID0+IHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YeN5paw6YCJ5oup5beh5qOA57uT5p2f56uZLi4nKSkNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICAvLyDpgJrov4fot6/mrrXkv6Hmga/ojrflj5bmsr/nur/orr7lpIfkv6Hmga8NCiAgICBhc3luYyBnZXRBbG9uZ1JvdXRlSW5mbyh2YWx1ZSwgY2FsbGJhY2spIHsNCiAgICAgIGNvbnN0IF93aXBlRGF0YSA9ICgpID0+IHsNCiAgICAgICAgdGhpcy5hbG9uZ1JvdXRlSW5mb0RhdGEgPSBbXQ0KICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayh0aGlzLmFsb25nUm91dGVJbmZvRGF0YSkNCiAgICAgIH0NCg0KICAgICAgdHJ5IHsNCiAgICAgICAgLy8g6I635Y+W5rK/57q/6K6+5pa9DQogICAgICAgIGNvbnN0IHtyb3dzID0gW119ID0gYXdhaXQgYWxvbmdSb3V0ZUluZm9JbnRlcigNCiAgICAgICAgICByZWZpbmVSZXF1ZXN0Qm9keSh7DQogICAgICAgICAgICBxdWVyeXM6IFt7b3BlcmF0aW9uOiAnSU4nLCBwcm9wZXJ0eTogJ3JvYWRfc2VnbWVudF9pZF8nLCB2YWx1ZX1dDQogICAgICAgICAgfSksDQogICAgICAgICAgJ2FkZEVkaXQnDQogICAgICAgICkNCg0KICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyb3dzKQ0KICAgICAgICB0aGlzLmFsb25nUm91dGVJbmZvRGF0YSA9IHJvd3MNCiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIC8vIOS4jeS4uuivt+axgui/h+W/q+e7k+adn+eahOaDheWGteS4i++8jOmHjee9rg0KICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSAhPT0gJ2NhbmNlbGVkJykgX3dpcGVEYXRhKCkNCiAgICAgIH0NCiAgICB9LA0KDQogICAgc2l0ZUNoYW5nZShlLCB0eXBlKSB7DQogICAgICBsZXQgc2l0ZUluZm8gPSB0aGlzLmFsb25nUm91dGVJbmZvRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZSkNCiAgICAgIHRoaXMuZGV0YWlsRm9ybVtgJHt0eXBlfU5hbWVgXSA9IHNpdGVJbmZvLm5hbWUNCiAgICB9LA0KDQogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvDQogICAgYXN5bmMgZ2V0VGVhbURhdGEodmFsdWUpIHsNCiAgICAgIGNvbnN0IHtyb3dzID0gW119ID0gYXdhaXQgdGVhbURhdGEoDQogICAgICAgIHJlZmluZVJlcXVlc3RCb2R5KHsNCiAgICAgICAgICBxdWVyeXM6IFsNCiAgICAgICAgICAgIHtvcGVyYXRpb246ICdJTicsIHByb3BlcnR5OiAnci5pZF8nLCB2YWx1ZX0sDQogICAgICAgICAgICB7b3BlcmF0aW9uOiAnRVFVQUwnLCBwcm9wZXJ0eTogJ3QudHlwZV8nLCB2YWx1ZTogJzInfQ0KICAgICAgICAgIF0NCiAgICAgICAgfSksDQogICAgICAgICdhZGRFZGl0Jw0KICAgICAgKQ0KICAgICAgdGhpcy50ZWFtT3B0aW9ucyA9IHJvd3MNCiAgICB9LA0KDQogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvDQogICAgYXN5bmMgZ2V0SW5zcGVjdERhdGEodmFsdWUpIHsNCiAgICAgIGNvbnN0IHtyb3dzID0gW119ID0gYXdhaXQgdGVhbURhdGEoDQogICAgICAgIHJlZmluZVJlcXVlc3RCb2R5KHsNCiAgICAgICAgICBxdWVyeXM6IFsNCiAgICAgICAgICAgIHtvcGVyYXRpb246ICdJTicsIHByb3BlcnR5OiAnci5pZF8nLCB2YWx1ZX0sDQogICAgICAgICAgICB7b3BlcmF0aW9uOiAnRVFVQUwnLCBwcm9wZXJ0eTogJ3QudHlwZV8nLCB2YWx1ZTogJzEnfQ0KICAgICAgICAgIF0NCiAgICAgICAgfSksDQogICAgICAgICdhZGRFZGl0Jw0KICAgICAgKQ0KICAgICAgdGhpcy5pbnNwZWN0T3B0aW9ucyA9IHJvd3MNCiAgICB9LA0KDQogICAgLy8g6ZmE5Lu26aKE6KeIbGlzdA0KICAgIGdldEZpbGVQcmV2aWV3VXJsTGlzdChmaWxlcykgew0KICAgICAgbGV0IHNyY0xpc3QgPSBmaWxlcy5tYXAoaXRlbSA9PiB7DQogICAgICAgIHJldHVybiBpdGVtLmZpbGVQcmV2aWV3VXJsDQogICAgICB9KQ0KICAgICAgcmV0dXJuIHNyY0xpc3QNCiAgICB9LA0KICAgIGV2ZW50Q29uZmlybSgpIHsNCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuS6i+S7tuaguOWunuehruiupOWQl++8nycsICfmj5DnpLonLCB7DQogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywNCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsDQogICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7DQogICAgICAgIHRoaXMuY29uZmlybUxvYWRpbmcgPSB0cnVlDQogICAgICAgIGNvbnN0IHtzdGF0ZX0gPSBhd2FpdCBldmVudENvbmZpcm0odGhpcy5kZXRhaWxGb3JtLmlkKQ0KICAgICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoYOS6i+S7tuehruiupOaIkOWKn2ApDQogICAgICAgICAgdGhpcy5jb25maXJtTG9hZGluZyA9IGZhbHNlDQogICAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCAnYWRkJykNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjA0KICAgIG9wZW5QYWdlKCkgew0KICAgICAgLy8gdGhpcy4kcmVmcy5taW5lTWFwPy5tYXA/LnJlc2l6ZSgpDQogICAgfSwNCiAgICBjaGFuZ2VQYWdlKHBhZ2VOYW1lID0gJycsIHR5cGUgPSAnJykgew0KICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuDQogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIF8gPT4gew0KICAgICAgICBQdWJTdWIucHVibGlzaChwYWdlTmFtZSwge3R5cGV9KQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8vIOWFs+mXremhtemdouaJp+ihjA0KICAgIGNsb3NlUGFnZSgpIHsNCiAgICAgIGNvbnN0IHtwdWJTdWIsIGFkZEVkaXRSdWxlcywgcm9hZE9wdGlvbnN9ID0gdGhpcw0KICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uDQogICAgICBPYmplY3QuYXNzaWduKHRoaXMuJGRhdGEsIHRoaXMuJG9wdGlvbnMuZGF0YS5jYWxsKHRoaXMpLCB7DQogICAgICAgIHB1YlN1YiwNCiAgICAgICAgcm9hZE9wdGlvbnMNCiAgICAgIH0pDQogICAgICAvLyB0aGlzLiRyZWZzLm1pbmVNYXA/LnJlc2V0TWFwKF8gPT4gdGhpcy5tYXBMb2FkaW5nID0gZmFsc2UpIC8vIOmHjee9ruWcsOWbvg0KICAgICAgdGhpcy4kbmV4dFRpY2soXyA9PiB7DQogICAgICAgIHRoaXMuJHJlZnMuZm9ybUluZm8uJGVsLnNjcm9sbFRvcCA9IDANCiAgICAgIH0pDQogICAgfSwNCiAgICBtYXBMb2FkKCkgew0KICAgICAgdGhpcy5tYXBMb2FkaW5nID0gZmFsc2UNCiAgICB9LA0KICAgIC8vIOiHquWumuS5ieagh+iusOeCuQ0KICAgIGN1c3RvbVRhZ1BvaW50cyhsbmdsYXQgPSBbXSkgew0KICAgICAgdGhpcy5tYXJrZXJzW3RoaXMubWFya2Vycy5sZW5ndGggLSAxXT8ucmVtb3ZlKCkNCiAgICAgIC8vIOiHquWumuS5ieeCueagh+iusOeahOWGhemDqERPTeWFg+e0oA0KICAgICAgbGV0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykNCiAgICAgIGVsLmNsYXNzTmFtZSA9ICdtYXJrZXItdGlwJw0KICAgICAgLy8gTWFya2Vy5p6E6YCg5Ye95pWw5o6l5pS25Lik5Liq5Y+C5pWw77yM5LiA5Liq5Li66Ieq5a6a5LmJ55qERE9N5YWD57Sg77yM5LiA5Liq5pivT2JqZWN05Y+C5pWw77yM5YW25Lit5YyF5ous5YGP56e76YeP562JDQogICAgICBsZXQgbWFya2VyID0gbmV3IHRoaXMuJHJlZnMubWluZU1hcC5taW5lTWFwLk1hcmtlcihlbCwgew0KICAgICAgICBhbmNob3I6ICdjZW50ZXInLA0KICAgICAgICBvZmZzZXQ6IFswLCAwXSAvLyBvZmZzZXTlj4LmlbDkuLrmoIfms6jngrnnm7jlr7nkuo7lhbblt6bkuIrop5LlgY/np7vlg4/ntKDlpKflsI8NCiAgICAgIH0pDQogICAgICAgIC8vIOiwg+eUqHNldExuZ0xhdOaWueazleaMh+Wumk1hcmtlcueahOWdkOagh+S9jee9rg0KICAgICAgICAuc2V0TG5nTGF0KGxuZ2xhdCkNCiAgICAgICAgLmFkZFRvKHRoaXMuJHJlZnMubWluZU1hcC5tYXApDQogICAgICB0aGlzLm1hcmtlcnMucHVzaChtYXJrZXIpDQogICAgfSwNCg0KICAgIC8vIOiOt+WPluivpuaDhQ0KICAgIGFzeW5jIGdldERldGFpbChpZCkgew0KICAgICAgdGhpcy5kZXRhaWxGb3JtID0gYXdhaXQgdGFibGVEZXRhaWwoaWQpDQogICAgICBjb25zdCB7cGVnU1ZhbCA9ICcnLCBwZWdFVmFsID0gJyd9ID0gdGhpcy5kZXRhaWxGb3JtDQogICAgICBpZiAocGVnU1ZhbCkgew0KICAgICAgICBsZXQgc3RhcnRQZWdBcnIgPSBwZWdTVmFsLnNwbGl0KCcrJykNCiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnN0YXJ0UGVnID0gc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkNCiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnN0YXJ0UGVnQWRkID0gc3RhcnRQZWdBcnJbMV0NCiAgICAgIH0NCiAgICAgIGlmIChwZWdFVmFsKSB7DQogICAgICAgIGxldCBlbmRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJykNCiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmVuZFBlZyA9IGVuZFBlZ0FyclswXS5zbGljZSgxKQ0KICAgICAgICB0aGlzLmRldGFpbEZvcm0uZW5kUGVnQWRkID0gZW5kUGVnQXJyWzFdDQogICAgICB9DQogICAgICB0aGlzLmRldGFpbEZvcm0uY29tcGVuc2F0aW9uRGV0YWlscyA9DQogICAgICAgIHRoaXMuZGV0YWlsRm9ybT8uY29tcGVuc2F0aW9uSW5mbz8uY29tcGVuc2F0aW9uRGV0YWlscyB8fCBbXQ0KICAgICAgdGhpcy5kZXRhaWxGb3JtLmV2ZW50VHlwZSA9IEpTT04ucGFyc2UodGhpcy5kZXRhaWxGb3JtLmV2ZW50VHlwZSkNCiAgICAgIHRoaXMucm9hZENoYW5nZSh0aGlzLmRldGFpbEZvcm0ucm9hZElkKQ0KICAgICAgY29uc29sZS5sb2codGhpcy5kZXRhaWxGb3JtLCAn6K+m5oOF5pWw5o2uLy8vLy8nKQ0KICAgIH0sDQoNCiAgICBnZXRFdmVudFR5cGUoKSB7DQogICAgICBjb25zdCB7ZXZlbnRUeXBlfSA9IHRoaXMuZGV0YWlsRm9ybQ0KICAgICAgaWYgKGV2ZW50VHlwZSkgew0KICAgICAgICBpZiAoZXZlbnRUeXBlLmxlbmd0aCA+IDEpIHsNCiAgICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5RXNjYXBlKCdseF9zamx4eHEnLCBldmVudFR5cGVbMV0gKyAnJykNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICByZXR1cm4gJy0nDQogICAgICAgIH0NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHJldHVybiAnLScNCiAgICAgIH0NCiAgICB9LA0KDQogICAgYXN5bmMgaGFuZGxlUmVsaWV2ZShyb3csIGluZGV4KSB7DQogICAgICBpZiAodGhpcy5qaWVjaHVUaW1lKSB7DQogICAgICAgIHJvdy5lbmRUaW1lID0gbW9tZW50KHRoaXMuamllY2h1VGltZSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJykNCiAgICAgICAgcm93LnN0YXR1cyA9IDINCiAgICAgICAgY29uc3Qge3N0YXRlLCB2YWx1ZSwgbWVzc2FnZX0gPSBhd2FpdCBkZXJlZ3VsYXRpb24ocm93KQ0KICAgICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+ino+mZpOeuoeWItuaIkOWKnycpDQogICAgICAgICAgdGhpcy5yZWxvYWQoKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IobWVzc2FnZSB8fCAn6Kej6Zmk566h5Yi25aSx6LSlJykNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fpgInmi6nop6PpmaTml7bpl7QnKQ0KICAgICAgfQ0KDQoNCiAgICAgIC8vIHRoaXMuJGNvbmZpcm0oJ+ehruiupOino+mZpOeuoeWItuWQlz8nLCAn5o+Q56S6Jywgew0KICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsDQogICAgICAvLyAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLA0KICAgICAgLy8gICB0eXBlOiAnd2FybmluZycNCiAgICAgIC8vIH0pLnRoZW4oKCkgPT4gew0KICAgICAgLy8gICBjb25zb2xlLmxvZyhyb3cpDQogICAgICAvLw0KICAgICAgLy8gICByb3cuc3RhdHVzID0gMg0KICAgICAgLy8gICBkZXJlZ3VsYXRpb24ocm93KS50aGVuKHJlcyA9PiB7DQogICAgICAvLyAgICAgaWYgKHJlcy5zdGF0ZSkgew0KICAgICAgLy8gICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCfop6PpmaTnrqHliLbmiJDlip/vvIEnKQ0KICAgICAgLy8gICAgICAgdGhpcy5yZWxvYWQoKQ0KICAgICAgLy8gICAgIH0NCiAgICAgIC8vICAgfSkNCiAgICAgIC8vIH0pDQogICAgfQ0KICB9LA0KICBiZWZvcmVEZXN0cm95KCkgew0KICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8NCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpDQogIH0NCn0NCg=="},null]}