{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\EquipmentManage.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\EquipmentManage.vue","mtime":1731062408628},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnDQppbXBvcnQgeyBUYWJsZU1peGluIH0gZnJvbSAnQC9taXhpbnMvdGFibGVNaXhpbicNCmltcG9ydCBFcXVpcG1lbnRNYW5hZ2VEaWFsb2cgZnJvbSAnQC92aWV3cy9EZXZpY2UvZGV2aWNlTWFuYWdlL2NvbXBvbmVudHMvRXF1aXBtZW50TWFuYWdlRGlhbG9nJw0KaW1wb3J0IEVxdWlwbWVudEV4dGVuZERpYWxvZyBmcm9tICdAL3ZpZXdzL0RldmljZS9kZXZpY2VNYW5hZ2UvY29tcG9uZW50cy9FcXVpcG1lbnRFeHRlbmREaWFsb2cnDQppbXBvcnQgcmVzb3VyY2VNYW5hZ2UgZnJvbSAnQC9hcGkvZGV2aWNlL3Jlc291cmNlTWFuYWdlLmpzJw0KaW1wb3J0IHVzZXJNYW5hZ2UgZnJvbSAnQC9hcGkvZGV2aWNlL3VzZXJNYW5hZ2UuanMnDQppbXBvcnQgZXF1aXBtZW50TWFuYWdlIGZyb20gJ0AvYXBpL2RldmljZS9lcXVpcG1lbnRNYW5hZ2UuanMnDQppbXBvcnQgZGljdFV0aWxzIGZyb20gJ0AvY29tcG9uZW50cy9kaWN0L0RpY3RTZWxlY3RVdGlscy5qcycNCmltcG9ydCB1dGlscyBmcm9tICdAL3V0aWxzLmpzJw0KaW1wb3J0IHV0aWxzSFQgZnJvbSAnQC9ob3RlbnQtdWktdXRpbC5qcycNCg0KZXhwb3J0IGRlZmF1bHQgew0KICAgIG5hbWU6ICdFcXVpcG1lbnRNYW5hZ2UnLA0KICAgIGNvbXBvbmVudHM6IHsNCiAgICAgICAgRXF1aXBtZW50TWFuYWdlRGlhbG9nLA0KICAgICAgICBFcXVpcG1lbnRFeHRlbmREaWFsb2csDQogICAgfSwNCiAgICBtaXhpbnM6IFtUYWJsZU1peGluXSwNCiAgICBkYXRhKCkgew0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgaW1wb3J0VmlzaWJsZTogZmFsc2UsDQogICAgICAgICAgICB1cGxvYWRpbmc6IGZhbHNlLA0KICAgICAgICAgICAgcmV2aXNlRGF0OiAnJywNCiAgICAgICAgICAgIHJldmlzZVZpc2libGU6IGZhbHNlLA0KICAgICAgICAgICAgcmV2aXNlU3RhcnQ6ICcnLA0KICAgICAgICAgICAgZXhwb3J0UGFyYW06IHt9LA0KICAgICAgICAgICAgLy/mkLrluKblj4LmlbANCiAgICAgICAgICAgIHVwbG9hZERhdGE6IHsNCiAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6ICcnLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVybDogew0KICAgICAgICAgICAgICAgIGRlbGV0ZTogJy9kZXZpY2UvaW5mby8nLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHRyZWVEYXRhOiBbXSwNCiAgICAgICAgICAgIHByb2R1Y3RWYWx1ZTogW10sDQogICAgICAgICAgICByZWdpb25WYWx1ZTogW10sDQogICAgICAgICAgICBzaG93TW9yZTogZmFsc2UsDQogICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwNCiAgICAgICAgICAgIHNob3dFeHRlbmQ6IGZhbHNlLA0KICAgICAgICAgICAgcGFyYW1zOiB7DQogICAgICAgICAgICAgICAgbmFtZTogJycsDQogICAgICAgICAgICAgICAgcHJvZHVjdElkOiAnJywgLy/kuqflk4ENCiAgICAgICAgICAgICAgICBzdGF0dXM6ICcnLCAvL+eKtuaAgQ0KICAgICAgICAgICAgICAgIGltcG9ydGFudDogJycsIC8v6YeN54K56K6+5aSHDQogICAgICAgICAgICAgICAgYXJlYUlkOiAnJywgLy/ljLrln58NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBxdWVyeXM6IFsNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGdyb3VwOiAnbWFpbicsDQogICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0xJS0UnLA0KICAgICAgICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnZC5uYW1lXycsDQogICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uOiAnQU5EJywNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBncm91cDogJ21haW4nLA0KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwOiAnJywNCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9kdWN0X2lkXycsDQogICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uOiAnQU5EJywNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBncm91cDogJ21haW4nLA0KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwOiAnJywNCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdzdGF0dXMnLA0KICAgICAgICAgICAgICAgICAgICByZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICdtYWluJywNCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLA0KICAgICAgICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnZC5jb2RlXycsDQogICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uOiAnQU5EJywNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBncm91cDogJ21haW4nLA0KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwOiAnJywNCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdpbXBvcnRhbnQnLA0KICAgICAgICAgICAgICAgICAgICByZWxhdGlvbjogJ0FORCcsDQogICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICdtYWluJywNCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLA0KICAgICAgICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsDQogICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJlYUlkJywNCiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLA0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJycsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIF0sDQogICAgICAgICAgICBkZXZpY2VTdGF0dXM6IFtdLCAvLyDorr7lpIfnirbmgIENCiAgICAgICAgICAgIHByb2R1Y3REYXRhOiBbXSwgLy8g5Lqn5ZOB5pWw5o2uDQogICAgICAgICAgICBmbGFnTGlzdDogW10sIC8v56aB55So5qCH6K+G5a2X5q615YiX6KGoDQogICAgICAgICAgICBhZGRyZXNzVHlwZUxpc3Q6IFtdLCAvL+WuieijheWcsOeCueexu+Wei+Wtl+auteWIl+ihqA0KICAgICAgICAgICAgcHJvZHVjdElkSW5mbzogJycsDQogICAgICAgICAgICBkZXZpY2VJbmZvOiB7DQogICAgICAgICAgICAgICAgMDogJycsDQogICAgICAgICAgICAgICAgMTogJycsDQogICAgICAgICAgICAgICAgMjogJycsDQogICAgICAgICAgICAgICAgMzogJycsDQogICAgICAgICAgICAgICAgOTogJycsDQogICAgICAgICAgICAgICAgMTA6ICcnLA0KICAgICAgICAgICAgfSwgLy/orr7lpIfnirbmgIHmlbDph48NCiAgICAgICAgfQ0KICAgIH0sDQogICAgLy/ojrflj5Z0b2tlbg0KICAgIGNvbXB1dGVkOiBtYXBTdGF0ZSh7DQogICAgICAgIGhlYWRlcjogKHN0YXRlKSA9PiB7DQogICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtzdGF0ZS5sb2dpbi5jdXJyZW50VXNlci50b2tlbn1gLA0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgIH0pLA0KICAgIGNyZWF0ZWQoKSB7DQogICAgICAgIC8v5ZyoY3JlYXRlZOmHjOmdouWMuuiOt+WPlmFjdGlvblVybA0KICAgICAgICAvLyDkv53nlZnmn6Xor6Llj4LmlbANCiAgICAgICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5ICYmIHRoaXMuJHJvdXRlLnF1ZXJ5LnNlYXJjaFBhcmFtcykgew0KICAgICAgICAgICAgbGV0IHRlbXBQYXJhbXMgPSB0aGlzLiRyb3V0ZS5xdWVyeS5zZWFyY2hQYXJhbXMNCiAgICAgICAgICAgIGxldCBwYXJhbXMgPSBKU09OLnBhcnNlKHRlbXBQYXJhbXMpDQogICAgICAgICAgICBwYXJhbXMucmVnaW9uVmFsdWUgPyAodGhpcy5yZWdpb25WYWx1ZSA9IHBhcmFtcy5yZWdpb25WYWx1ZSkgOiBudWxsDQogICAgICAgICAgICBwYXJhbXMucHJvZHVjdFZhbHVlDQogICAgICAgICAgICAgICAgPyAodGhpcy5wcm9kdWN0VmFsdWUgPSBwYXJhbXMucHJvZHVjdFZhbHVlKQ0KICAgICAgICAgICAgICAgIDogbnVsbA0KDQogICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHV0aWxzSFQuZGVlcENsb25lKHBhcmFtcykNCiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtcy5yZWdpb25WYWx1ZQ0KICAgICAgICAgICAgZGVsZXRlIHRoaXMucGFyYW1zLnByb2R1Y3RWYWx1ZQ0KICAgICAgICAgICAgdXRpbHMucmVtb3ZlVXJsUGFyYW1zKCdzZWFyY2hQYXJhbXMnKQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8g5YiG57G76K6+5aSH57u05oqk5L2/55So5ZCM5LiA57uE5Lu26aG16Z2i77yM6buY6K6k5bim5Y+C5pWw5p+l6K+i6K+l57G75Z6L5LiL6K6+5aSHDQogICAgICAgIGlmICh0aGlzLiRyb3V0ZS5uYW1lID09PSAnZGFuZ2Vyb3VzRGV2aWNlTWFpbnRlbmFuY2UnKSB7DQogICAgICAgICAgICAvLyDljbHpmanmupDorr7lpIcNCiAgICAgICAgICAgIHRoaXMucHJvZHVjdFZhbHVlID0gWw0KICAgICAgICAgICAgICAgICcxNTUyOTExNDc4MzAxMDAzNzc2JywNCiAgICAgICAgICAgICAgICAnMTY1MTgzNzc1OTEyNTQ2MzA0MCcsDQogICAgICAgICAgICAgICAgJzE2NTE4Mzg1NDgwOTA4MjI2NTYnLA0KICAgICAgICAgICAgXQ0KICAgICAgICAgICAgdGhpcy51cGxvYWREYXRhLnByb2R1Y3RJZCA9ICcxNjUxODM4NTQ4MDkwODIyNjU2Jw0KICAgICAgICB9IGVsc2UgaWYgKHRoaXMuJHJvdXRlLm5hbWUgPT09ICdoeWRyb3BzRGV2aWNlTWFpbnRlbmFuY2UnKSB7DQogICAgICAgICAgICAvLyDnp6/msLTorr7lpIcNCiAgICAgICAgICAgIHRoaXMucHJvZHVjdFZhbHVlID0gWw0KICAgICAgICAgICAgICAgICcxNTUyOTExNDc4MzAxMDAzNzc2JywNCiAgICAgICAgICAgICAgICAnMTY1MTgzNzc1OTEyNTQ2MzA0MCcsDQogICAgICAgICAgICAgICAgJzE2NTE4MzgyOTM3NTI0MjI0MDAnLA0KICAgICAgICAgICAgXQ0KICAgICAgICAgICAgdGhpcy51cGxvYWREYXRhLnByb2R1Y3RJZCA9ICcxNjUxODM4MjkzNzUyNDIyNDAwJw0KICAgICAgICB9IGVsc2UgaWYgKHRoaXMuJHJvdXRlLm5hbWUgPT09ICdzaWduYm9hcmREZXZpY2VNYWludGVuYW5jZScpIHsNCiAgICAgICAgICAgIC8vIOagh+ivhueJjOiuvuWkhw0KICAgICAgICAgICAgdGhpcy5wcm9kdWN0VmFsdWUgPSBbDQogICAgICAgICAgICAgICAgJzE1NTI5MTE0NzgzMDEwMDM3NzYnLA0KICAgICAgICAgICAgICAgICcxNjUxODM3NzU5MTI1NDYzMDQwJywNCiAgICAgICAgICAgICAgICAnMTY1MTgzODY3NzcyODM3MDY4OCcsDQogICAgICAgICAgICBdDQogICAgICAgICAgICB0aGlzLnVwbG9hZERhdGEucHJvZHVjdElkID0gJzE2NTE4Mzg2Nzc3MjgzNzA2ODgnDQogICAgICAgIH0gZWxzZSBpZiAodGhpcy4kcm91dGUubmFtZSA9PT0gJ3Jpb3RCYXJyaWNhZGVNYWludGVuYW5jZScpIHsNCiAgICAgICAgICAgIC8vIOmYsueIhui3r+manA0KICAgICAgICAgICAgdGhpcy5wcm9kdWN0VmFsdWUgPSBbDQogICAgICAgICAgICAgICAgJzE1NTI5MTE0NzgzMDEwMDM3NzYnLA0KICAgICAgICAgICAgICAgICcxNjUxODM3NzU5MTI1NDYzMDQwJywNCiAgICAgICAgICAgICAgICAnMTY1MTgzODc3OTg5NzQyMTgyNCcsDQogICAgICAgICAgICBdDQogICAgICAgICAgICB0aGlzLnVwbG9hZERhdGEucHJvZHVjdElkID0gJzE2NTE4Mzg3Nzk4OTc0MjE4MjQnDQogICAgICAgIH0NCiAgICAgICAgdGhpcy5hY3Rpb25VcmwgPSB3aW5kb3cuY29udGV4dC5wb3J0YWwNCiAgICAgICAgdGhpcy5sb2FkUHJvZHVjdCgpDQogICAgICAgIHRoaXMuZ2V0QXJlYVRyZWUoKQ0KICAgIH0sDQogICAgbW91bnRlZCgpIHsNCiAgICAgICAgdGhpcy5kZXZpY2VTdGF0dXMgPSBkaWN0VXRpbHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCdzYnp0JykNCiAgICAgICAgdGhpcy5mbGFnTGlzdCA9IGRpY3RVdGlscy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ2p5YnMnKQ0KICAgICAgICB0aGlzLmFkZHJlc3NUeXBlTGlzdCA9IGRpY3RVdGlscy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ2F6ZGRseCcpDQogICAgfSwNCiAgICBtZXRob2RzOiB7DQogICAgICAgIG9wZW5VcGxvYWQoKSB7DQogICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0VmFsdWUubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgIGxldCBhcnIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvZHVjdFZhbHVlKSkNCiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZERhdGEucHJvZHVjdElkID0gYXJyLnBvcCgpDQogICAgICAgICAgICB9DQogICAgICAgICAgICB0aGlzLmltcG9ydFZpc2libGUgPSB0cnVlDQogICAgICAgIH0sDQogICAgICAgIGRlbFJlZ2lvbigpIHsNCiAgICAgICAgICAgIGlmICh0aGlzLnJlZ2lvblZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgdGhpcy5wYXJhbXMuYXJlYUlkID0gJycNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgZGVsUHJvZHVjdCgpIHsNCiAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3RWYWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLnByb2R1Y3RJZCA9ICcnDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGxldCBhcnIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvZHVjdFZhbHVlKSkNCiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZERhdGEucHJvZHVjdElkID0gYXJyLnBvcCgpDQogICAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgIG9wZW5Nb3JlKCkgew0KICAgICAgICAgICAgdGhpcy5zaG93TW9yZSA9ICF0aGlzLnNob3dNb3JlDQogICAgICAgIH0sDQogICAgICAgIHJldmlzZSh2YWwpIHsNCiAgICAgICAgICAgIHRoaXMucmV2aXNlVmlzaWJsZSA9IHRydWUNCiAgICAgICAgICAgIHRoaXMucmV2aXNlU3RhcnQgPSB2YWwuc3RhdHVzDQogICAgICAgICAgICB0aGlzLnJldmlzZURhdCA9IHZhbA0KICAgICAgICB9LA0KICAgICAgICByZXZpc2VCdG4oKSB7DQogICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJldmlzZURhdCkNCiAgICAgICAgICAgIGVxdWlwbWVudE1hbmFnZS51cGRhdGVTdGF0dXMoDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5yZXZpc2VEYXQuaWQsDQogICAgICAgICAgICAgICAgICAgIHByb2R1Y3RDb2RlOiB0aGlzLnJldmlzZURhdC5wcm9kdWN0Q29kZSwNCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnJldmlzZVN0YXJ0LA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgKHJlcykgPT4gew0KICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMpDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREYXRhKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2aXNlVmlzaWJsZSA9IGZhbHNlDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICApDQogICAgICAgIH0sDQogICAgICAgIGdldEFyZWFUcmVlKCkgew0KICAgICAgICAgICAgZXF1aXBtZW50TWFuYWdlLmxvYWRBcmVhVHJlZSgNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlkOiAnMCcsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZURhdGEgPSByZXMudmFsdWUgLy8gdGhpcy5mb3JtYXREYXRhKHJlcy5yb3dzKQ0KICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50cmVlRGF0YSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICApDQogICAgICAgIH0sDQogICAgICAgIGVxdWlwbWVudCh2YWwpIHsNCiAgICAgICAgICAgIGxldCBpbXBvcnRhbnREYXRhID0gJzAnDQogICAgICAgICAgICBpZiAodmFsLmltcG9ydGFudCA9PSAnMScgJiYgdmFsLmltcG9ydGFudCkgew0KICAgICAgICAgICAgICAgIGltcG9ydGFudERhdGEgPSAwDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGltcG9ydGFudERhdGEgPSAxDQogICAgICAgICAgICB9DQogICAgICAgICAgICBsZXQgbXNnID0gaW1wb3J0YW50RGF0YSA+IDAgPyAn6YeN54K56K6+5aSHJyA6ICfkuIDoiKzorr7lpIcnDQogICAgICAgICAgICB0aGlzLiRjb25maXJtKGDmraTmk43kvZzlsIborr7lpIcke3ZhbC5uYW1lfeiuvuS4uiR7bXNnfT9gLCAn5o+Q56S6Jywgew0KICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywNCiAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywNCiAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBlcXVpcG1lbnRNYW5hZ2UudXBkYXRlSW1wb3J0YW50KA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB2YWwuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW50OiBpbXBvcnRhbnREYXRhLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIChyZXMpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREYXRhKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5yZXZpc2VWaXNpYmxlID0gZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICB9LA0KICAgICAgICAvLw0KICAgICAgICBoYW5kbGVDbG9zZSgpIHsNCiAgICAgICAgICAgIHRoaXMuaW1wb3J0VmlzaWJsZSA9IGZhbHNlDQogICAgICAgICAgICB0aGlzLnJldmlzZVZpc2libGUgPSBmYWxzZQ0KICAgICAgICB9LA0KICAgICAgICAvL+WvvOWFpQ0KICAgICAgICBpbXBvcnRLUEwoKSB7IH0sDQogICAgICAgIC8v5LiL6L295qih54mIDQogICAgICAgIGRvd25sb2FkKCkgew0KICAgICAgICAgICAgbGV0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykNCiAgICAgICAgICAgIGEuaHJlZiA9IGAvZGV2aWNlRGF0YS54bHN4YA0KICAgICAgICAgICAgYS5kb3dubG9hZCA9ICforr7lpIfooajmoLwueGxzeCcNCiAgICAgICAgICAgIGEuY2xpY2soKQ0KICAgICAgICB9LA0KICAgICAgICAvL+WvvOWHug0KICAgICAgICBleHBvcnRLUEwoKSB7DQogICAgICAgICAgICB0aGlzLmV4cG9ydFBhcmFtID0gew0KICAgICAgICAgICAgICAgIC4uLnRoaXMucXVlcnlQYXJhbSwNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRoaXMuZXhwb3J0UGFyYW0ucGFnZUJlYW4gPSB7DQogICAgICAgICAgICAgICAgcGFnZTogMSwNCiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogLTEsDQogICAgICAgICAgICB9DQogICAgICAgICAgICAvL+WvvOWHuuebtOaOpeiwg+eUqOaOpeWPow0KICAgICAgICAgICAgcmVzb3VyY2VNYW5hZ2UuaW5mb0V4cG9ydEV4Y2VsKHRoaXMuZXhwb3J0UGFyYW0sIChyZXMpID0+IHsgfSkNCiAgICAgICAgfSwNCiAgICAgICAgaGFuZGxlQXZhdGFyUHJvZ3Jlc3MoKSB7DQogICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWUNCiAgICAgICAgfSwNCiAgICAgICAgLy/kuIrkvKDmiJDlip8NCiAgICAgICAgaGFuZGxlQXZhdGFyU3VjY2VzcyhyZXMsIGZpbGUpIHsNCiAgICAgICAgICAgIC8v5o+Q56S6DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WvvOWFpeaIkOWKnycpDQoNCiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2UNCiAgICAgICAgICAgIHRoaXMubG9hZERhdGEoMSkgLy/osIPnlKjnlKjpobXpnaLmn6Xor6LmjqXlj6PvvIzliLfmlrDmlbDmja4NCiAgICAgICAgfSwNCiAgICAgICAgLy/kuIrkvKDlpLHotKUNCiAgICAgICAgaGFuZGxlQXZhdGFyRXJyb3IoZXJyLCBmaWxlLCBmaWxlTGlzdCkgew0KICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGVyci5tZXNzYWdlKQ0KICAgICAgICAgICAgbGV0IG1zZyA9IGRhdGEubWVzc2FnZSA/IGRhdGEubWVzc2FnZSA6ICflr7zlhaXlpLHotKXvvIEnDQogICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlDQogICAgICAgICAgICB0aGlzLmxvYWREYXRhKDEpIC8v6LCD55So55So6aG16Z2i5p+l6K+i5o6l5Y+j77yM5Yi35paw5pWw5o2uDQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKG1zZykNCiAgICAgICAgfSwNCiAgICAgICAgdG9FcXVpcG1lbnREZXRhaWxzKHZhbCkgew0KICAgICAgICAgICAgbGV0IHBhdGggPSB0aGlzLiRyb3V0ZS5wYXRoDQogICAgICAgICAgICBsZXQgdGVtcFBhcmFtcyA9IHV0aWxzSFQuZGVlcENsb25lKHRoaXMucGFyYW1zKSAvL3JlZ2lvblZhbHVlDQogICAgICAgICAgICB0ZW1wUGFyYW1zLnJlZ2lvblZhbHVlID0gdGhpcy5yZWdpb25WYWx1ZQ0KICAgICAgICAgICAgdGVtcFBhcmFtcy5wcm9kdWN0VmFsdWUgPSB0aGlzLnByb2R1Y3RWYWx1ZQ0KICAgICAgICAgICAgY29uc29sZS5sb2codGVtcFBhcmFtcyk7DQoNCiAgICAgICAgICAgIGlmIChwYXRoLmluZGV4T2YoJ2Zyb250UGxhdCcpICE9PSAtMSkgew0KICAgICAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0VxdWlwbWVudERldGFpbHMnLA0KICAgICAgICAgICAgICAgICAgICBxdWVyeTogew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHZhbC5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbC5uYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogdmFsLmNvZGUsDQogICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHZhbC5wcm9kdWN0SWQsDQogICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hQYXJhbXM6IEpTT04uc3RyaW5naWZ5KHRlbXBQYXJhbXMpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0VxdWlwbWVudERldGFpbHNMaW5rJywNCiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB2YWwuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YWwubmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IHZhbC5jb2RlLA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkOiB2YWwucHJvZHVjdElkLA0KICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiBKU09OLnN0cmluZ2lmeSh0ZW1wUGFyYW1zKSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICBsb2FkUHJvZHVjdCgpIHsNCiAgICAgICAgICAgIHJlc291cmNlTWFuYWdlLmdldFByb2R1Y3RUcmVlKHt9LCAocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgew0KICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3REYXRhID0gcmVzLnZhbHVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSkNCiAgICAgICAgfSwNCiAgICAgICAgY2xlYXJRdWVyeXMoKSB7DQogICAgICAgICAgICB0aGlzLnF1ZXJ5cy5mb3JFYWNoKChpdGVtKSA9PiB7DQogICAgICAgICAgICAgICAgaXRlbS52YWx1ZSA9ICcnDQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgdGhpcy5wYXJhbXMgPSB7DQogICAgICAgICAgICAgICAgbmFtZTogJycsDQogICAgICAgICAgICAgICAgcHJvZHVjdElkOiAnJywgLy/kuqflk4ENCiAgICAgICAgICAgICAgICBzdGF0dXM6ICcnLCAvL+eKtuaAgQ0KICAgICAgICAgICAgICAgIGltcG9ydGFudDogJycsIC8v6YeN54K56K6+5aSHDQogICAgICAgICAgICAgICAgYXJlYUlkOiAnJywgLy/ljLrln58NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRoaXMucHJvZHVjdFZhbHVlID0gW10NCiAgICAgICAgICAgIHRoaXMucmVnaW9uVmFsdWUgPSBbXQ0KICAgICAgICB9LA0KICAgICAgICByZWxvYWQoKSB7DQogICAgICAgICAgICB0aGlzLmxvYWREYXRhKCkNCiAgICAgICAgfSwNCiAgICAgICAgLy8g54K55Ye75Yi35paw6K6+5aSH5pWw6YePDQogICAgICAgIHJlZnJlc2hJbmZvKCkgew0KICAgICAgICAgICAgdGhpcy5nZXREZXZpY2VJbmZvKCkNCiAgICAgICAgfSwNCiAgICAgICAgLy8g6YCJ5oup5Lqn5ZOB5pCc57Si5a+55bqU6K6+5aSHDQogICAgICAgIGhhbmRsZUNoYW5nZSh2YWwpIHsNCiAgICAgICAgICAgIHRoaXMucHJvZHVjdElkSW5mbyA9IHZhbA0KICAgICAgICAgICAgdGhpcy51cGxvYWREYXRhLnByb2R1Y3RfaWRfID0gdmFsDQogICAgICAgICAgICB0aGlzLmxvYWREYXRhKCkNCiAgICAgICAgfSwNCiAgICAgICAgLy8g5qC55o2u5Lqn5ZOBaWTojrflj5borr7lpIfmlbDph48NCiAgICAgICAgZ2V0RGV2aWNlSW5mbygpIHsNCiAgICAgICAgICAgIGxldCBkYXRhID0gew0KICAgICAgICAgICAgICAgIHByb2R1Y3RJZDogJycsDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0VmFsdWUubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgIGxldCBhcnIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvZHVjdFZhbHVlKSkNCiAgICAgICAgICAgICAgICBkYXRhLnByb2R1Y3RJZCA9IGFyci5wb3AoKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZXF1aXBtZW50TWFuYWdlLmdldERldmljZUluZm8odGhpcy5xcy5zdHJpbmdpZnkoZGF0YSksIChyZXMpID0+IHsNCiAgICAgICAgICAgICAgICB0aGlzLmRldmljZUluZm8gPSByZXMudmFsdWUNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0sDQogICAgICAgIGxvYWREYXRhKHBhZ2UpIHsNCiAgICAgICAgICAgIHRoaXMubG9hZFByb2R1Y3QoKQ0KICAgICAgICAgICAgaWYgKHBhZ2UpIHsNCiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW0ucGFnZUJlYW4ucGFnZSA9IHBhZ2UNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWUNCiAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3RWYWx1ZS5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgbGV0IGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9kdWN0VmFsdWUpKQ0KICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLnByb2R1Y3RJZCA9IGFyci5wb3AoKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHRoaXMucmVnaW9uVmFsdWUubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgIGxldCBhcnIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucmVnaW9uVmFsdWUpKQ0KICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLmFyZWFJZCA9IGFyci5wb3AoKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtLnBhcmFtcyA9IHRoaXMucGFyYW1zDQogICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdDQogICAgICAgICAgICAvLyB0aGlzLnF1ZXJ5UGFyYW0ucXVlcnlzID0gW10NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1swXS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1swXSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1sxXS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1sxXSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1syXS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1syXSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1szXS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1szXSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1s0XS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1s0XSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIC8vIGlmICh0aGlzLnF1ZXJ5c1s1XS52YWx1ZSkgew0KICAgICAgICAgICAgLy8gCXRoaXMucXVlcnlQYXJhbS5xdWVyeXMucHVzaCh0aGlzLnF1ZXJ5c1s1XSkNCiAgICAgICAgICAgIC8vIH0NCiAgICAgICAgICAgIHJlc291cmNlTWFuYWdlLmxvYWREZXZpY2UodGhpcy5xdWVyeVBhcmFtLCAocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgdGhpcy50b3RhbCA9IHJlcy50b3RhbA0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLnJvd3MNCiAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50YWJsZURhdGEpDQogICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2UNCiAgICAgICAgICAgICAgICB0aGlzLmdldERldmljZUluZm8oKQ0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW0pID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXZpY2VTdGF0dXMuZm9yRWFjaCgodmFsKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5zdGF0dXMgPT0gdmFsLnZhbHVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVsnc3RhdHVzTmFtZSddID0gdmFsLm5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzVHlwZUxpc3QuZm9yRWFjaCgodmFsKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5hZGRyZXNzVHlwZSA9PSB2YWwudmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtWydhZGRyZXNzVHlwZU5hbWUnXSA9IHZhbC5uYW1lDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBpZiAodGhpcy5xdWVyeXNbMV0udmFsdWUgPT0gJycpIHsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgLy8g6K6+5aSH6LW356aB55SoDQogICAgICAgIGhhbmRsZUZsYWcodmFsKSB7DQogICAgICAgICAgICBsZXQgdGl0bGUNCiAgICAgICAgICAgIHRpdGxlID0gdmFsLmZsYWcgPT0gMSA/ICflkK/nlKgnIDogJ+emgeeUqCcNCiAgICAgICAgICAgIGxldCBkYXRhID0gew0KICAgICAgICAgICAgICAgIGlkOiB2YWwuaWQsDQogICAgICAgICAgICB9DQogICAgICAgICAgICBlcXVpcG1lbnRNYW5hZ2UuZGV2aWNlZmxhZyhkYXRhLCAocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgew0KICAgICAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRpdGxlICsgJ+aIkOWKnycsDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubG9hZERhdGEoKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pDQogICAgICAgIH0sDQogICAgICAgIGhhbmRsZUV4dGVuZChyb3cpIHsNCiAgICAgICAgICAgIHRoaXMuc2hvd0V4dGVuZCA9IHRydWUNCiAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycyA9IHJvdw0KICAgICAgICB9LA0KICAgICAgICBjbG9zZUV4dGVuZCgpIHsNCiAgICAgICAgICAgIHRoaXMuc2hvd0V4dGVuZCA9IGZhbHNlDQogICAgICAgIH0sDQogICAgfSwNCn0NCg=="},null]}