{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueRegistration\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueRegistration\\components\\EditAddPage\\index.vue","mtime":1748243177851},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgUHViU3ViIGZyb20gJ3B1YnN1Yi1qcycNCmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50Jw0KaW1wb3J0IHtyZWZpbmVSZXF1ZXN0Qm9keX0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnDQppbXBvcnQgew0KICBhcHBvaW50LA0KICB0YWJsZUFkZCwNCiAgdGFibGVEZXRhaWwsDQogIHRhYmxlRWRpdA0KfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvb2JzdGFjbGVDbGVhcmluZ1Jlc2N1ZS9yZXNjdWVSZWdpc3RyYXRpb24nDQppbXBvcnQge2dldERpY3Rpb25hcnlCeUNvZGV9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeScNCmltcG9ydCB7dGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yb2FkU2VjdGlvbkluZm8nDQppbXBvcnQge3RhYmxlRGF0YSBhcyB0ZWFtRGF0YX0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVGVhbXNNZ210Jw0KaW1wb3J0IHt0YWJsZURhdGEgYXMgYWxvbmdSb3V0ZUluZm9JbnRlcn0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYWxvbmdSb3V0ZUluZm8nDQoNCmltcG9ydCBVc2VyQ2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9BcHBvaW50RGlhbG9nL2NvbXBvbmVudHMvVXNlckNob2ljZURpYWxvZy9pbmRleC52dWUnDQppbXBvcnQgRXZlbnRDaG9pY2VEaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL0FwcG9pbnREaWFsb2cvY29tcG9uZW50cy9FdmVudENob2ljZURpYWxvZy9pbmRleC52dWUnDQppbXBvcnQgQ2FyQ2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9BcHBvaW50RGlhbG9nL2NvbXBvbmVudHMvQ2FyQ2hvaWNlRGlhbG9nL2luZGV4LnZ1ZScNCmltcG9ydCB7cGVyc29uQW5kQ2FySW5mb30gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9ldmVudFJlZ2lzdHJhdGlvbicNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnRWRpdEFkZFBhZ2UnLA0KICBjb21wb25lbnRzOiB7Q2FyQ2hvaWNlRGlhbG9nLCBFdmVudENob2ljZURpYWxvZywgVXNlckNob2ljZURpYWxvZ30sDQogIHByb3BzOiB7DQogICAgY29tcG9uZW50TmFtZTogew0KICAgICAgZGVmYXVsdDogJ0VkaXRBZGRQYWdlJywNCiAgICAgIHR5cGU6IFN0cmluZw0KICAgIH0NCiAgfSwNCiAgZGF0YSgpIHsNCiAgICBjb25zdCB2YWxpZGF0ZVN0YXRpb24gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7DQogICAgICBpZiAodGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPT09ICcnIHx8IHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPT09IG51bGwpIHsNCiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlvIDlp4vngrnkvY3moanlj7flhajlgLwnKSkNCiAgICAgIH0gZWxzZSBpZiAodGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPT09ICcnIHx8IHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPT09IG51bGwpIHsNCiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlvIDlp4vngrnkvY3moanlj7flhajlgLwhJykpDQogICAgICB9IGVsc2Ugew0KICAgICAgICBjYWxsYmFjaygpDQogICAgICB9DQogICAgfQ0KICAgIHJldHVybiB7DQogICAgICBwdWJTdWI6IG51bGwsDQogICAgICBmb3JtTG9hZGluZzogdHJ1ZSwNCiAgICAgIGFkZEVkaXRGb3JtOiB7DQogICAgICAgIHJvYWRJZDogJycsDQogICAgICAgIG9jY3VweTogWycwJ10sDQogICAgICAgIHJlc2N1ZVR5cGU6IDEsDQogICAgICAgIGNhckNsYXNzOiAxLA0KICAgICAgICBkaXJlY3Rpb246ICcxJywNCiAgICAgICAgY2FyVHlwZTogMSwNCiAgICAgICAgcmVzY3VlVGltZTogbmV3IERhdGUoKSwNCiAgICAgICAgY2FyOiB7fSwNCiAgICAgICAgcGVyc29uOiAnJywNCiAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiAnJywNCiAgICAgICAgaXNEZWxlZ2F0ZXM6IGZhbHNlDQogICAgICB9LA0KICAgICAgYWRkRWRpdFJ1bGVzOiB7DQogICAgICAgIHJlc2N1ZVRlbDogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+aKpeahiOeUteivneS4jeiDveS4uuepuicsDQogICAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10NCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgIHJlc2N1ZVRpbWU6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmiqXmoYjml7bpl7TkuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICBldmVudFR5cGU6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuovku7bnsbvlnosnLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQ0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgcmVzY3VlVHlwZTogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+aVkeaPtOexu+Wei+S4jeiDveS4uuepuicsDQogICAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICByb2FkSWQ6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfot6/mrrXkv6Hmga/kuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQ0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgdGVhbUlkOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICBtZXNzYWdlOiAn5rS+6YGj6Zif5LyN5LiN6IO95Li656m6JywNCiAgICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10NCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgIGV2ZW50VGltZTogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+S6i+S7tuWPkeeUn+aXtumXtOS4jeiDveS4uuepuicsDQogICAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICAvLyBjYXJVc2VyVGVsOiBbDQogICAgICAgIC8vICAgew0KICAgICAgICAvLyAgICAgcGF0dGVybjogL14xKDNbMC05XXw0WzU3XXw1WzAtMzUtOV18N1swNjc4XXw4WzAtOV0pXGR7OH0kLywNCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfovabkuLvnlLXor53ovpPlhaXmnInor68nLA0KICAgICAgICAvLyAgICAgdHJpZ2dlcjogJ2JsdXInDQogICAgICAgIC8vICAgfQ0KICAgICAgICAvLyBdLA0KICAgICAgICBwZXJzb246IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmtL7pgaPkurrlkZjkuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICBkaXNwYXRjaENhckNvZGU6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmtL7pgaPovabovobkuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICByZXNjdWVTdGF0dXM6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlZHmj7TnirbmgIEnLA0KICAgICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQ0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgc3RhcnRQZWc6IFsNCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIHZhbGlkYXRvcjogdmFsaWRhdGVTdGF0aW9uLCB0cmlnZ2VyOiAnYmx1cid9DQogICAgICAgIF0NCiAgICAgIH0sDQogICAgICBzYXZlTG9hZGluZzogZmFsc2UsIC8vIOS4iuS8oGxvYWRpbmcNCiAgICAgIGlkOiAnJywgLy8gaWTmoIfor4bnrKYNCiAgICAgIHJvYWRPcHRpb25zOiBbXSwNCiAgICAgIGFsb25nUm91dGVJbmZvRGF0YTogW10sDQogICAgICB0ZWFtT3B0aW9uczogW10sDQogICAgICBjYXJEYXRhOiBbXSwNCiAgICAgIGNhckNob2ljZURpYWxvZzogZmFsc2UsDQogICAgICB1c2VyQ2hvaWNlRGlhbG9nOiBmYWxzZSwNCiAgICAgIHBlcnNvbk9wdGlvbnM6IFtdLA0KICAgICAgZXZlbnRDaG9pY2VEaWFsb2c6IGZhbHNlLA0KICAgICAgdGVhbURhdGFMaXN0OiBbXSwNCiAgICAgIGRpc3BhdGNoZXM6IFtdLA0KICAgICAgcm9hZFNob3c6IGZhbHNlDQogICAgfQ0KICB9LA0KICB3YXRjaDogew0KICAgIGNvbXBvbmVudE5hbWU6IHsNCiAgICAgIGhhbmRsZXIobmV3VmFsKSB7DQogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgew0KICAgICAgICAgIHRoaXMub3BlblBhZ2UoKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCkNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgfSwNCiAgbW91bnRlZCgpIHsNCiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ0VkaXRBZGRQYWdlJywgKF8sIGRhdGEpID0+IHsNCiAgICAgIGlmIChkYXRhLnJvYWRJZC5sZW5ndGggPT09IDEpIHsNCiAgICAgICAgdGhpcy5yb2FkU2hvdyA9IHRydWUNCiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5yb2FkSWQgPSBkYXRhLnJvYWRJZFswXQ0KICAgICAgfQ0KICAgICAgaWYgKGRhdGEuaWQpIHsNCiAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQNCiAgICAgICAgdGhpcy5nZXREZXRhaWwoZGF0YS5pZCkNCiAgICAgIH0NCiAgICAgIHRoaXMuZ2V0Um9hZERhdGEoKQ0KICAgIH0pDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlLA0KICAgIC8vIOWNoOWIsOaDheWGteemgeeUqA0KICAgIGNoZWNrRGlzYWJsZWQoKSB7DQogICAgICByZXR1cm4gdGhpcy5hZGRFZGl0Rm9ybS5vY2N1cHkuaW5jbHVkZXMoJzAnKQ0KICAgIH0sDQogICAgY2hhZWNrQ2hhbmdlKGUpIHsNCiAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLm9jY3VweS5pbmNsdWRlcygnMCcpKSB7DQogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ub2NjdXB5ID0gWycwJ10NCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOW3oeafpeaVkeaPtOeCueWHu+S6i+S7tg0KICAgIHRlYW1JZENoYW5nZSh2YWx1ZSkgew0KICAgICAgdGhpcy5nZXRQZXJzb25BbmRDYXJJbmZvKHZhbHVlKQ0KICAgICAgbGV0IHRlYW1JbmZvID0gdGhpcy50ZWFtT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSB2YWx1ZSkNCiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbU5hbWUgPSB0ZWFtSW5mby5uYW1lDQogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3BlcnNvbicsICcnKQ0KICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdkaXNwYXRjaENhckNvZGUnLCAnJykNCiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udXNlciA9IFtdDQogICAgICB0aGlzLmRpc3BhdGNoZXMgPSBbXQ0KICAgIH0sDQogICAgLy8g5qC55o2u6Zif5LyNaWTmn6Xor6LkurrlkZjkv6Hmga/lj4rovabovobkv6Hmga8NCiAgICBnZXRQZXJzb25BbmRDYXJJbmZvKGlkKSB7DQogICAgICBwZXJzb25BbmRDYXJJbmZvKGlkKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgY29uc3Qge21lbWJlcnMgPSBbXSwgY2FycyA9IFtdfSA9IHJlcy52YWx1ZQ0KICAgICAgICB0aGlzLnBlcnNvbk9wdGlvbnMgPSBtZW1iZXJzLm1hcCgocGVyc29uKSA9PiB7DQogICAgICAgICAgcGVyc29uLmxhYmVsID0gcGVyc29uLnRlbCArICcgJyArIHBlcnNvbi5uYW1lDQogICAgICAgICAgcmV0dXJuIHBlcnNvbg0KICAgICAgICB9KQ0KICAgICAgICB0aGlzLmNhckRhdGEgPSBjYXJzDQogICAgICB9KQ0KICAgIH0sDQogICAgaGFuZGxlRXZlbnRTZWxlY3Qoe2lkLCBldmVudFRlbCwgZXZlbnROb30pIHsNCiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZXZlbnRJZCA9IGlkDQogICAgICB0aGlzLmFkZEVkaXRGb3JtLmV2ZW50Tm8gPSBldmVudE5vDQogICAgfSwNCiAgICBoYW5kbGVDYXJTZWxlY3Qoe2Nhck51bWJlciwgY2FyQ2xhc3N9KSB7DQogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ2Rpc3BhdGNoQ2FyQ29kZScsIGNhck51bWJlcikNCiAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnZGlzcGF0Y2hDYXJUeXBlJywgY2FyQ2xhc3MpDQogICAgICB0aGlzLmRpc3BhdGNoZXMuZm9yRWFjaCgoaXRlbSkgPT4gew0KICAgICAgICBpdGVtLmRpc3BhdGNoQ2FyQ29kZSA9IGNhck51bWJlcg0KICAgICAgICBpdGVtLmRpc3BhdGNoQ2FyVHlwZSA9IGNhckNsYXNzDQogICAgICB9KQ0KICAgIH0sDQogICAgaGFuZGxlVXNlclNlbGVjdCh1c2VyKSB7DQogICAgICBjb25zdCB7ZGlzcGF0Y2hDYXJDb2RlID0gJycsIGRpc3BhdGNoQ2FyVHlwZSA9ICcnfSA9IHRoaXMuYWRkRWRpdEZvcm0NCiAgICAgIGlmICh1c2VyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS51c2VyID0gdXNlcg0KICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnBlcnNvbiA9IHVzZXIubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpLmpvaW4oJywnKQ0KICAgICAgICB0aGlzLmRpc3BhdGNoZXMgPSB1c2VyLm1hcCgoaXRlbSkgPT4gew0KICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBkaXNwYXRjaENhckNvZGUsDQogICAgICAgICAgICBkaXNwYXRjaENhclR5cGUsDQogICAgICAgICAgICBkaXNwYXRjaFVzZXJJZDogaXRlbS5pZCwNCiAgICAgICAgICAgIGRpc3BhdGNoVXNlck5hbWU6IGl0ZW0ubmFtZSwNCiAgICAgICAgICAgIGRpc3BhdGNoVXNlclRlbDogaXRlbS50ZWwNCiAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICB9DQogICAgICAvLyB0aGlzLmFkZEVkaXRGb3JtLnBlcnNvbiA9IHVzZXIubmFtZQ0KICAgICAgLy8gdGhpcy5kaXNwYXRjaGVzID0gWw0KICAgICAgLy8gICB7DQogICAgICAvLyAgICAgZGlzcGF0Y2hDYXJDb2RlLA0KICAgICAgLy8gICAgIGRpc3BhdGNoQ2FyVHlwZSwNCiAgICAgIC8vICAgICBkaXNwYXRjaFVzZXJJZDogdXNlci5pZCwNCiAgICAgIC8vICAgICBkaXNwYXRjaFVzZXJOYW1lOiB1c2VyLm5hbWUsDQogICAgICAvLyAgICAgZGlzcGF0Y2hVc2VyVGVsOiB1c2VyLnRlbCwNCiAgICAgIC8vICAgfQ0KICAgICAgLy8gXQ0KICAgIH0sDQogICAgc2l0ZUNoYW5nZShlLCB0eXBlKSB7DQogICAgICBsZXQgc2l0ZUluZm8gPSB0aGlzLmFsb25nUm91dGVJbmZvRGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBlKQ0KICAgICAgdGhpcy5hZGRFZGl0Rm9ybVtgJHt0eXBlfU5hbWVgXSA9IHNpdGVJbmZvLm5hbWUNCiAgICB9LA0KICAgIGNsZWFyQ2FyVHlwZSgpIHsNCiAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnY2FyVHlwZScsICcnKQ0KICAgIH0sDQogICAgZ2V0Q2FyQ2xhc3NpZnkodmFsdWUpIHsNCiAgICAgIGNvbnN0IGRpY3RfYXJyID0gZ2V0RGljdGlvbmFyeUJ5Q29kZSgnZ3pjbCcpDQogICAgICBjb25zdCBkaWN0ID0gZGljdF9hcnIuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZhbHVlID09IHZhbHVlKQ0KICAgICAgcmV0dXJuIGRpY3QubGVuZ3RoID8gZGljdFswXT8ubG93ZXJEaWNbJ2d6Y3gnXSA6IFtdDQogICAgfSwNCiAgICBoYW5kbGVBcHBvaW50KCkgew0KICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZShhc3luYyAodmFsaWQsIG9iamVjdCkgPT4gew0KICAgICAgICBpZiAoIXZhbGlkKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKA0KICAgICAgICAgICAgYOaciSR7DQogICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoDQogICAgICAgICAgICB95Liq5a2X5q615pyq6YCa6L+H5qCh6aqM77yM6K+35q2j56Gu5aGr5YaZ6KGo5Y2V5YaF5a6544CCYA0KICAgICAgICAgICkNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLnNhdmVMb2FkaW5nID0gdHJ1ZQ0KICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmFkZEVkaXRGb3JtKSkNCiAgICAgICAgICBkYXRhLm9jY3VweSA9IGRhdGEub2NjdXB5LmpvaW4oJywnKQ0KICAgICAgICAgIGlmIChkYXRhLnN0YXJ0UGVnICYmIGRhdGEuc3RhcnRQZWdBZGQpIHsNCiAgICAgICAgICAgIGRhdGEucGVnVmFsID0NCiAgICAgICAgICAgICAgJ2snICsgKGRhdGEuc3RhcnRQZWcgfHwgJycpICsgJysnICsgKGRhdGEuc3RhcnRQZWdBZGQgfHwgJycpDQogICAgICAgICAgfQ0KICAgICAgICAgIGRhdGEucmVzY3VlVGltZSA9IG1vbWVudChkYXRhLnJlc2N1ZVRpbWUpLmZvcm1hdCgNCiAgICAgICAgICAgICdZWVlZLU1NLUREIEhIOm1tOnNzJw0KICAgICAgICAgICkNCiAgICAgICAgICBsZXQgcm9hZEluZm8gPSB0aGlzLnJvYWRPcHRpb25zLmZpbmQoDQogICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pZCA9PT0gZGF0YS5yb2FkSWQNCiAgICAgICAgICApDQogICAgICAgICAgZGF0YS5yb2FkTmFtZSA9IHJvYWRJbmZvLm5hbWUNCiAgICAgICAgICBkYXRhLnJvYWRDb2RlID0gcm9hZEluZm8uY29kZQ0KICAgICAgICAgIGRhdGEuY2FyID0gew0KICAgICAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiBkYXRhLmRpc3BhdGNoQ2FyQ29kZSB8fCAnJywNCiAgICAgICAgICAgIGRpc3BhdGNoQ2FyVHlwZTogZGF0YS5kaXNwYXRjaENhclR5cGUNCiAgICAgICAgICB9DQogICAgICAgICAgZGF0YS5kaXNwYXRjaGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BhdGNoZXMpKQ0KICAgICAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruiupOWnlOa0vuaVkeaPtOWNleWQl++8nycsICfmj5DnpLonLCB7DQogICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruiupCcsDQogICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywNCiAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgICAgIH0pLnRoZW4oYXN5bmMgKCkgPT4gew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgbGV0IHtzdGF0ZSwgbWVzc2FnZSwgdmFsdWV9ID0gYXdhaXQgYXBwb2ludCh7Li4uZGF0YX0pDQogICAgICAgICAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcyhg5aeU5rS+5oiQ5YqfYCkNCiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsICdlZGl0JykNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgdGhpcy5zYXZlTG9hZGluZyA9IGZhbHNlDQogICAgICAgICAgICB9DQogICAgICAgICAgfSkNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8v6I635Y+W5omA5Zyo6Lev5q615YiX6KGo5pWw5o2uDQogICAgYXN5bmMgZ2V0Um9hZERhdGEoKSB7DQogICAgICBjb25zdCB7cm93cyA9IFtdfSA9IGF3YWl0IHJvYWRTZWN0aW9uSW5mb0ludGVyKHtwYWdlQmVhbjoge3BhZ2VTaXplOiAtMX19KQ0KICAgICAgdGhpcy5yb2FkT3B0aW9ucyA9IHJvd3MubWFwKChpdGVtKSA9PiB7DQogICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGUNCiAgICAgICAgcmV0dXJuIGl0ZW0NCiAgICAgIH0pDQogICAgICBpZiAoIXRoaXMuaWQpIHsNCiAgICAgICAgaWYgKHRoaXMucm9hZFNob3cpIHsNCiAgICAgICAgICB0aGlzLnJvYWRDaGFuZ2UodGhpcy5hZGRFZGl0Rm9ybS5yb2FkSWQpDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdyb2FkSWQnLCB0aGlzLnJvYWRPcHRpb25zWzBdLmlkKQ0KICAgICAgICAgIHRoaXMucm9hZENoYW5nZSh0aGlzLnJvYWRPcHRpb25zWzBdLmlkKQ0KICAgICAgICB9DQogICAgICB9DQogICAgfSwNCg0KICAgIHJvYWRDaGFuZ2UodmFsdWUpIHsNCiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbUlkID0gJycNCiAgICAgIHRoaXMuZ2V0VGVhbURhdGEodmFsdWUpDQogICAgICAvLyDpgJrov4fot6/mrrXkv6Hmga/ojrflj5bmsr/nur/orr7lpIfkv6Hmga8NCiAgICAgIHRoaXMuZ2V0QWxvbmdSb3V0ZUluZm8odmFsdWUsIChkYXRhKSA9PiB7DQogICAgICAgIGNvbnN0IHtzdGFydFBhdHJvbElkLCBlbmRQYXRyb2xJZH0gPSB0aGlzLmFkZEVkaXRGb3JtDQoNCiAgICAgICAgLyoNCiAgICAgICAgICog5beh5qOA5byA5aeL77yM57uT5p2f56uZDQogICAgICAgICAqICovDQogICAgICAgIGlmIChzdGFydFBhdHJvbElkKSB7DQogICAgICAgICAgaWYgKCFkYXRhLnNvbWUoKGkpID0+IGkuaWQgPT09IHN0YXJ0UGF0cm9sSWQpKSB7DQogICAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGF0cm9sSWQgPSAnJw0KICAgICAgICAgICAgc2V0VGltZW91dCgoXykgPT4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fph43mlrDpgInmi6nlvIDlp4vnq5kuLicpKQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChlbmRQYXRyb2xJZCkgew0KICAgICAgICAgIGlmICghZGF0YS5zb21lKChpKSA9PiBpLmlkID09PSBlbmRQYXRyb2xJZCkpIHsNCiAgICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGF0cm9sSWQgPSAnJw0KICAgICAgICAgICAgc2V0VGltZW91dCgoXykgPT4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fph43mlrDpgInmi6nnu5PmnZ/nq5kuLicpKQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluW3oeafpeaVkeaPtOmYn+S8jeS/oeaBrw0KICAgIGFzeW5jIGdldFRlYW1EYXRhKHZhbHVlKSB7DQogICAgICBjb25zdCB7cm93cyA9IFtdfSA9IGF3YWl0IHRlYW1EYXRhKA0KICAgICAgICByZWZpbmVSZXF1ZXN0Qm9keSh7DQogICAgICAgICAgcXVlcnlzOiBbe29wZXJhdGlvbjogJ0lOJywgcHJvcGVydHk6ICdyLmlkXycsIHZhbHVlfV0NCiAgICAgICAgfSksDQogICAgICAgICdhZGRFZGl0Jw0KICAgICAgKQ0KICAgICAgdGhpcy50ZWFtT3B0aW9ucyA9IHJvd3MNCiAgICAgIHRoaXMudGVhbURhdGFMaXN0ID0gcm93cy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udHlwZSA9PT0gJzInKQ0KICAgICAgaWYgKHRoaXMudGVhbURhdGFMaXN0Lmxlbmd0aCA+IDApIHsNCiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS50ZWFtSWQgPSB0aGlzLnRlYW1EYXRhTGlzdFswXS5pZA0KICAgICAgICB0aGlzLnRlYW1JZENoYW5nZSh0aGlzLnRlYW1EYXRhTGlzdFswXS5pZCkNCiAgICAgIH0NCiAgICB9LA0KDQogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5rK/57q/6K6+5aSH5L+h5oGvDQogICAgYXN5bmMgZ2V0QWxvbmdSb3V0ZUluZm8odmFsdWUsIGNhbGxiYWNrKSB7DQogICAgICBjb25zdCBfd2lwZURhdGEgPSAoKSA9PiB7DQogICAgICAgIHRoaXMuYWxvbmdSb3V0ZUluZm9EYXRhID0gW10NCiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sodGhpcy5hbG9uZ1JvdXRlSW5mb0RhdGEpDQogICAgICB9DQoNCiAgICAgIHRyeSB7DQogICAgICAgIC8vIOiOt+WPluayv+e6v+iuvuaWvQ0KICAgICAgICBjb25zdCB7cm93cyA9IFtdfSA9IGF3YWl0IGFsb25nUm91dGVJbmZvSW50ZXIoDQogICAgICAgICAgcmVmaW5lUmVxdWVzdEJvZHkoew0KICAgICAgICAgICAgcXVlcnlzOiBbe29wZXJhdGlvbjogJ0lOJywgcHJvcGVydHk6ICdyb2FkX3NlZ21lbnRfaWRfJywgdmFsdWV9XQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgICdhZGRFZGl0Jw0KICAgICAgICApDQoNCiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socm93cykNCiAgICAgICAgdGhpcy5hbG9uZ1JvdXRlSW5mb0RhdGEgPSByb3dzDQogICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAvLyDkuI3kuLror7fmsYLov4flv6vnu5PmnZ/nmoTmg4XlhrXkuIvvvIzph43nva4NCiAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UgIT09ICdjYW5jZWxlZCcpIF93aXBlRGF0YSgpDQogICAgICB9DQogICAgfSwNCg0KICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjA0KICAgIG9wZW5QYWdlKCkgew0KICAgIH0sDQogICAgLy8g5bGV56S65by55bGCDQogICAgc2hvd0RpYWxvZyhkaWFsb2dOYW1lKSB7DQogICAgICBpZiAoIWRpYWxvZ05hbWUpIHJldHVybg0KICAgICAgaWYgKGRpYWxvZ05hbWUgPT09ICd1c2VyQ2hvaWNlJykgew0KICAgICAgICBpZiAoIXRoaXMuYWRkRWRpdEZvcm0udGVhbUlkKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign6K+35YWI6YCJ5oup5pWR5o+05rS+6YGj6Zif5LyNJykNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzW2RpYWxvZ05hbWUgKyAnRGlhbG9nJ10gPSB0cnVlDQogICAgICAgIH0NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWUNCiAgICAgIH0NCiAgICB9LA0KDQogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMDQogICAgY2xvc2VQYWdlKCkgew0KICAgICAgY29uc3Qge3B1YlN1YiwgYWRkRWRpdFJ1bGVzLCByb2FkT3B0aW9uc30gPSB0aGlzDQogICAgICAvLyDph43nva7nu4Tku7bmlbDmja4NCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsNCiAgICAgICAgcHViU3ViLA0KICAgICAgICBhZGRFZGl0UnVsZXMsDQogICAgICAgIHJvYWRPcHRpb25zDQogICAgICB9KQ0KICAgICAgdGhpcy4kbmV4dFRpY2soKF8pID0+IHsNCiAgICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS4kZWwuc2Nyb2xsVG9wID0gMA0KICAgICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8vIOiOt+WPluivpuaDhQ0KICAgIGFzeW5jIGdldERldGFpbChpZCkgew0KICAgICAgdHJ5IHsNCiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybSA9IGF3YWl0IHRhYmxlRGV0YWlsKGlkKQ0KICAgICAgICBjb25zdCB7cm9hZElkID0gJycsIHBlZ1ZhbCA9ICcnLCBvY2N1cHkgPSAnJ30gPSB0aGlzLmFkZEVkaXRGb3JtDQogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ub2NjdXB5ID0gb2NjdXB5LnNwbGl0KCcsJykNCiAgICAgICAgaWYgKHBlZ1ZhbCkgew0KICAgICAgICAgIGxldCBzdGFydFBlZ0FyciA9IHBlZ1ZhbC5zcGxpdCgnKycpDQogICAgICAgICAgLy8gdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZyA9IHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpDQogICAgICAgICAgLy8gdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9IHN0YXJ0UGVnQXJyWzFdDQogICAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKQ0KICAgICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSkNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgJycpDQogICAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsICcnKQ0KICAgICAgICB9DQogICAgICAgIHRoaXMucm9hZENoYW5nZShyb2FkSWQpDQogICAgICB9IGZpbmFsbHkgew0KICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2UNCiAgICAgIH0NCiAgICB9LA0KDQogICAgLy8g5L+d5a2YDQogICAgaGFuZGxlU2F2ZSgpIHsNCiAgICAgIHRoaXMuJHJlZnMuYWRkRWRpdEZvcm0udmFsaWRhdGUoYXN5bmMgKHZhbGlkLCBvYmplY3QpID0+IHsNCiAgICAgICAgaWYgKCF2YWxpZCkgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygNCiAgICAgICAgICAgIGDmnIkkew0KICAgICAgICAgICAgICBPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aA0KICAgICAgICAgICAgfeS4quWtl+auteacqumAmui/h+agoemqjO+8jOivt+ato+ehruWhq+WGmeihqOWNleWGheWuueOAgmANCiAgICAgICAgICApDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5zYXZlTG9hZGluZyA9IHRydWUNCiAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5hZGRFZGl0Rm9ybSkpDQogICAgICAgICAgZGF0YS5vY2N1cHkgPSBkYXRhLm9jY3VweS5qb2luKCcsJykNCiAgICAgICAgICBpZiAoZGF0YS5zdGFydFBlZyAmJiBkYXRhLnN0YXJ0UGVnQWRkKSB7DQogICAgICAgICAgICBkYXRhLnBlZ1ZhbCA9DQogICAgICAgICAgICAgICdrJyArIChkYXRhLnN0YXJ0UGVnIHx8ICcnKSArICcrJyArIChkYXRhLnN0YXJ0UGVnQWRkIHx8ICcnKQ0KICAgICAgICAgIH0NCiAgICAgICAgICBkYXRhLnJlc2N1ZVRpbWUgPSBtb21lbnQoZGF0YS5yZXNjdWVUaW1lKS5mb3JtYXQoDQogICAgICAgICAgICAnWVlZWS1NTS1ERCBISDptbTpzcycNCiAgICAgICAgICApDQogICAgICAgICAgbGV0IHJvYWRJbmZvID0gdGhpcy5yb2FkT3B0aW9ucy5maW5kKA0KICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGRhdGEucm9hZElkDQogICAgICAgICAgKQ0KICAgICAgICAgIGRhdGEucm9hZE5hbWUgPSByb2FkSW5mby5uYW1lDQogICAgICAgICAgZGF0YS5yb2FkQ29kZSA9IHJvYWRJbmZvLmNvZGUNCiAgICAgICAgICBkYXRhLmNhciA9IHsNCiAgICAgICAgICAgIGRpc3BhdGNoQ2FyQ29kZTogZGF0YS5kaXNwYXRjaENhckNvZGUgfHwgJycsDQogICAgICAgICAgICBkaXNwYXRjaENhclR5cGU6IGRhdGEuZGlzcGF0Y2hDYXJUeXBlDQogICAgICAgICAgfQ0KICAgICAgICAgIGNvbnN0IG15SW50ZXJGYWNlID0gdGhpcy5pZCA/IHRhYmxlRWRpdCA6IHRhYmxlQWRkDQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGxldCB7c3RhdGUsIG1lc3NhZ2UsIHZhbHVlfSA9IGF3YWl0IG15SW50ZXJGYWNlKHsuLi5kYXRhfSkNCiAgICAgICAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoYOS/neWtmOaIkOWKn2ApDQogICAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZSgnVGFibGVQYWdlJywgdGhpcy5pZCA/ICdlZGl0JyA6ICdhZGQnKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICB0aGlzLnNhdmVMb2FkaW5nID0gZmFsc2UNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCg0KICAgIC8vIOaUueWPmOmhtemdog0KICAgIGNoYW5nZVBhZ2UocGFnZU5hbWUgPSAnJywgdHlwZSA9ICcnKSB7DQogICAgICBpZiAoIXBhZ2VOYW1lKSByZXR1cm4NCiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZVBhZ2UnLCBwYWdlTmFtZSwgKF8pID0+IHsNCiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHt0eXBlfSkNCiAgICAgIH0pDQogICAgfQ0KICB9LA0KICBiZWZvcmVEZXN0cm95KCkgew0KICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8NCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpDQogIH0NCn0NCg=="},null]}