{"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\\components\\modle\\EquipFunctionDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\EquipFunctionDialog.vue","mtime":1731062408816},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgUGh5c2ljYWxNb2RlbCBmcm9tICdAL2FwaS9kZXZpY2UvUGh5c2ljYWxNb2RlbC5qcycNCmltcG9ydCBkaWN0VXRpbHMgZnJvbSAnQC9jb21wb25lbnRzL2RpY3QvRGljdFNlbGVjdFV0aWxzLmpzJw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnRnVuY3Rpb25EaWFsb2cnLA0KICBwcm9wczogew0KICAgIHBJZDogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogJycNCiAgICB9LA0KICAgIHBhcmFtZXRlcklEOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuDQogICAgICB9DQogICAgfQ0KICB9LA0KICBjb21wb25lbnRzOiB7fSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAganNvbnM6IHRydWUsDQogICAgICBkdHlwZTogdHJ1ZSwNCiAgICAgIGpzb25zMjogdHJ1ZSwNCiAgICAgIGR0eXBlMjogdHJ1ZSwNCiAgICAgIC8vIOi+k+WHuuaYvuekug0KICAgICAgdGltZTogJ+aXtumXtCcsIC8v5pe26Ze0JuaXpeacn+eahGxhYmxlDQogICAgICBzaG93Rm9ybURhdGE6ICcnLCAvL+eUqOS6juWIpOaWreexu+Wei+aYvuekuuS4jeWQjOi+k+WHug0KICAgICAgZGF0YXRpbWVzOiBbXSwgLy8g55So5LqO5Yqo5oCB57uR5a6a5pe26Ze0L+aXpeacn+eahOS4i+aLieahhg0KICAgICAgbGFibGVOYW1lOiAnJywgLy/luIPlsJQm5p6a5Li+bGFibGUNCiAgICAgIGJvb2xTaG93OiBmYWxzZSwgLy/npoHnlKjluIPlsJTliY3pnaLnmoRrZXkNCiAgICAgIGRpYWxvZ0RhdGE6IFt7fV0sIC8v5biD5bCUJuaemuS4vuWtmOWCqOaVsOaNrg0KDQogICAgICAvLyDlrZflhbgNCiAgICAgIGRhdGVGb3JtYXJ0czogW10sDQogICAgICBkYXRlVGltZUZvcm1hcnRzOiBbXSwNCiAgICAgIGRhdGFUeXBlczogW10sDQogICAgICBkYXRhVW5pdHM6IFtdLA0KICAgICAgYWN0aXZlQ29sbGFwc2U6ICcxJywNCiAgICAgIHRpdGxlOiAn5paw5aKeJywNCiAgICAgIHNob3dGb3JtRGlhOiBmYWxzZSwNCiAgICAgIHBhcmFtZXRlcnM6IHsNCiAgICAgICAgY29kZTogJycsDQogICAgICAgIGlzQXN5bjogMCwNCiAgICAgICAgbWVtbzogJycsDQogICAgICAgIG5hbWU6ICcnLA0KICAgICAgICBvdXREYXRhRm9ybWFydDogJycsDQogICAgICAgIG91dERhdGFUeXBlOiAnJywNCiAgICAgICAgb3V0RGF0YVVuaXQ6ICcnLA0KICAgICAgICBwYXJhbXM6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICBwYXJhbUNvZGU6ICcnLA0KICAgICAgICAgICAgcGFyYW1EYXRhRm9ybWFydDogJycsDQogICAgICAgICAgICBwYXJhbURhdGFUeXBlOiAnJywNCiAgICAgICAgICAgIHBhcmFtTmFtZTogJycsDQogICAgICAgICAgICAvLyDovpPlhaXmmL7npLoNCiAgICAgICAgICAgIHNob3dJbnB1dERhdGE6ICcnLA0KICAgICAgICAgICAgdGltZTI6ICfml7bpl7QnLCAvL+aXtumXtCbml6XmnJ/nmoRsYWJsZQ0KICAgICAgICAgICAgZGF0YXRpbWVzMjogW10sIC8vIOeUqOS6juWKqOaAgee7keWumuaXtumXtC/ml6XmnJ/nmoTkuIvmi4nmoYYNCiAgICAgICAgICAgIGxhYmxlTmFtZTI6ICcnLCAvL+W4g+WwlCbmnprkuL5sYWJsZQ0KICAgICAgICAgICAgYm9vbFNob3cyOiBmYWxzZSwgLy/npoHnlKjluIPlsJTliY3pnaLnmoRrZXkNCiAgICAgICAgICAgIGRpYWxvZ0RhdGEyOiBbe31dIC8v5biD5bCUJuaemuS4vuWtmOWCqOaVsOaNrg0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgcHJvZHVjdElkOiAnJywNCiAgICAgICAgc246IDANCiAgICAgIH0sDQogICAgICBydWxlczogew0KICAgICAgICBuYW1lOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Yqf6IO95ZCN56ewJywNCiAgICAgICAgICAgIHRyaWdnZXI6ICdibHVyJw0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgY29kZTogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWKn+iDveagh+ivhicsDQogICAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicNCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgIGlzQXN5bjogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaYr+WQpuW8guatpScsDQogICAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicNCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgIG91dERhdGFUeXBlOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6L6T5Ye65Y+C5pWw57G75Z6LJywNCiAgICAgICAgICAgIHRyaWdnZXI6ICdibHVyJw0KICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgYXN5bmMgY3JlYXRlZCgpIHsNCiAgICAvLyDmlbDmja7ljZXkvY0NCiAgICB0aGlzLmRhdGFVbml0cyA9IGRpY3RVdGlscy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ3NqZHcnKQ0KICAgIC8vIOWxnuaAp+exu+Weiw0KICAgIHRoaXMuZGF0YVR5cGVzID0gZGljdFV0aWxzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnc3hseCcpDQogICAgLy8g5pe26Ze05qC85byPDQogICAgdGhpcy5kYXRlVGltZUZvcm1hcnRzID0gZGljdFV0aWxzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnc2pncycpDQogICAgLy8g5pel5pyf5qC85byPDQogICAgdGhpcy5kYXRlRm9ybWFydHMgPSBkaWN0VXRpbHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCdycWdzJykNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOWKqOaAgea4suafk+aVsOaNruWNleS9jSzmoLzlvI8gPT09PiDovpPlh7rmmL7npLoNCiAgICBjaGFuZ2VEYXRhVHlwZShpdGVtKSB7DQogICAgICBpZiAoaXRlbSA9PSAnJykgew0KICAgICAgICB0aGlzLnNob3dGb3JtRGF0YSA9IGl0ZW0NCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdzdHJpbmcnKSB7DQogICAgICAgIHRoaXMuc2hvd0Zvcm1EYXRhID0gaXRlbQ0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YUZvcm1hcnQgPSAnbnVsbCcNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdpbnQnKSB7DQogICAgICAgIHRoaXMuc2hvd0Zvcm1EYXRhID0gaXRlbQ0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YUZvcm1hcnQgPSAnbnVsbCcNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdmbG9hdCcpIHsNCiAgICAgICAgdGhpcy5zaG93Rm9ybURhdGEgPSBpdGVtDQogICAgICAgIHRoaXMucGFyYW1ldGVycy5vdXREYXRhRm9ybWFydCA9IDANCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdib29sJykgew0KICAgICAgICB0aGlzLnNob3dGb3JtRGF0YSA9IGl0ZW0NCiAgICAgICAgdGhpcy5sYWJsZU5hbWUgPSAn5biD5bCU5YC8OicNCiAgICAgICAgdGhpcy5ib29sU2hvdyA9IHRydWUNCiAgICAgICAgdGhpcy5kaWFsb2dEYXRhID0gW3t9LCB7fV0NCiAgICAgICAgdGhpcy5kaWFsb2dEYXRhWzBdLmxhYmVsID0gJ+aYrycNCiAgICAgICAgdGhpcy5kaWFsb2dEYXRhWzFdLmxhYmVsID0gJ+WQpicNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdkYXRlJykgew0KICAgICAgICB0aGlzLnNob3dGb3JtRGF0YSA9IGl0ZW0NCiAgICAgICAgdGhpcy50aW1lID0gJ+aXpeacnycNCiAgICAgICAgdGhpcy5kYXRhdGltZXMgPSB0aGlzLmRhdGVGb3JtYXJ0cw0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YUZvcm1hcnQgPSAneXl5eS1NTS1kZCcNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtID09ICdkYXRlVGltZScpIHsNCiAgICAgICAgdGhpcy5zaG93Rm9ybURhdGEgPSBpdGVtDQogICAgICAgIHRoaXMudGltZSA9ICfml7bpl7QnDQogICAgICAgIHRoaXMuZGF0YXRpbWVzID0gdGhpcy5kYXRlVGltZUZvcm1hcnRzDQogICAgICAgIHRoaXMucGFyYW1ldGVycy5vdXREYXRhRm9ybWFydCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJw0KICAgICAgfQ0KICAgICAgaWYgKGl0ZW0gPT0gJ2VudW0nKSB7DQogICAgICAgIHRoaXMuc2hvd0Zvcm1EYXRhID0gaXRlbQ0KICAgICAgICB0aGlzLmxhYmxlTmFtZSA9ICfmnprkuL7pobk6Jw0KICAgICAgICB0aGlzLmJvb2xTaG93ID0gZmFsc2UNCiAgICAgICAgdGhpcy5kaWFsb2dEYXRhID0gW3t9XQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5Yqo5oCB5riy5p+T5pWw5o2u5Y2V5L2NLOagvOW8jyA9PT0+IOi+k+WFpeaYvuekug0KICAgIGNoYW5nZUlucHV0VHlwZShpdGVtKSB7DQogICAgICBpZiAoaXRlbS5wYXJhbURhdGFUeXBlID09ICcnKSB7DQogICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgfQ0KICAgICAgaWYgKGl0ZW0ucGFyYW1EYXRhVHlwZSA9PSAnc3RyaW5nJykgew0KICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgICAgaXRlbS5wYXJhbURhdGFGb3JtYXJ0ID0gJ251bGwnDQogICAgICB9DQogICAgICBpZiAoaXRlbS5wYXJhbURhdGFUeXBlID09ICdpbnQnKSB7DQogICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgICBpdGVtLnBhcmFtRGF0YUZvcm1hcnQgPSAnbnVsbCcNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtLnBhcmFtRGF0YVR5cGUgPT0gJ2Zsb2F0Jykgew0KICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtLnBhcmFtRGF0YVR5cGUgPT0gJ2RhdGUnKSB7DQogICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgICBpdGVtLnRpbWUyID0gJ+aXpeacnycNCiAgICAgICAgaXRlbS5kYXRhdGltZXMyID0gdGhpcy5kYXRlRm9ybWFydHMNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtLnBhcmFtRGF0YVR5cGUgPT0gJ2RhdGVUaW1lJykgew0KICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgICAgaXRlbS50aW1lMiA9ICfml7bpl7QnDQogICAgICAgIGl0ZW0uZGF0YXRpbWVzMiA9IHRoaXMuZGF0ZVRpbWVGb3JtYXJ0cw0KICAgICAgfQ0KICAgICAgaWYgKGl0ZW0ucGFyYW1EYXRhVHlwZSA9PSAnYm9vbCcpIHsNCiAgICAgICAgaXRlbS5zaG93SW5wdXREYXRhID0gaXRlbS5wYXJhbURhdGFUeXBlDQogICAgICAgIGl0ZW0ubGFibGVOYW1lMiA9ICfluIPlsJTlgLw6Jw0KICAgICAgICBpdGVtLmJvb2xTaG93MiA9IHRydWUNCiAgICAgICAgaXRlbS5kaWFsb2dEYXRhMiA9IFt7fSwge31dDQogICAgICAgIGl0ZW0uZGlhbG9nRGF0YTJbMF0ubGFiZWwgPSAn5pivJw0KICAgICAgICBpdGVtLmRpYWxvZ0RhdGEyWzFdLmxhYmVsID0gJ+WQpicNCiAgICAgIH0NCiAgICAgIGlmIChpdGVtLnBhcmFtRGF0YVR5cGUgPT0gJ2VudW0nKSB7DQogICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgICBpdGVtLmxhYmxlTmFtZTIgPSAn5p6a5Li+6aG5OicNCiAgICAgICAgaXRlbS5ib29sU2hvdzIgPSBmYWxzZQ0KICAgICAgICBpdGVtLmRpYWxvZ0RhdGEyID0gW3t9XQ0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICog6L6T5Ye6DQogICAgICogKi8NCiAgICAvLyDluIPlsJQm5p6a5Li+5re75YqgDQogICAgYWRkVGFibGUoKSB7DQogICAgICB0aGlzLmRpYWxvZ0RhdGEucHVzaCh7fSkNCiAgICB9LA0KICAgIC8vIOW4g+WwlCbmnprkuL7liKDpmaQNCiAgICByZW1vdmVUYWJsZShpbmRleCkgew0KICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5sZW5ndGggPT0gMSkgew0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YUZvcm1hcnQgPSAnJw0KICAgICAgICB0aGlzLmRpYWxvZ0RhdGEgPSBbe31dDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuc3BsaWNlKGluZGV4LCAxKQ0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICog6L6T5YWlDQogICAgICogKi8NCiAgICAvLyDluIPlsJQm5p6a5Li+5re75YqgDQogICAgYWRkVGFibGUyKGl0ZW0pIHsNCiAgICAgIGl0ZW0uZGlhbG9nRGF0YTIucHVzaCh7fSkNCiAgICB9LA0KICAgIC8vIOW4g+WwlCbmnprkuL7liKDpmaQNCiAgICByZW1vdmVUYWJsZTIoaXRlbSwgaW5kZXgpIHsNCiAgICAgIGlmIChpdGVtLmRpYWxvZ0RhdGEyLmxlbmd0aCA9PSAxKSB7DQogICAgICAgIGl0ZW0ucGFyYW1EYXRhRm9ybWFydCA9ICcnDQogICAgICAgIGl0ZW0uZGlhbG9nRGF0YTIgPSBbe31dDQogICAgICB9IGVsc2Ugew0KICAgICAgICBpdGVtLmRpYWxvZ0RhdGEyLnNwbGljZShpbmRleCwgMSkNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIOi+k+WFpea3u+WKoOmhuQ0KICAgICAqICAqLw0KDQogICAgLy/ovpPlhaXlj4LmlbDphY3nva7mt7vliqANCiAgICBhZGRJdGVtKCkgew0KICAgICAgdGhpcy5wYXJhbWV0ZXJzLnBhcmFtcy5wdXNoKHsNCiAgICAgICAgcGFyYW1Db2RlOiBudWxsLA0KICAgICAgICBwYXJhbURhdGFGb3JtYXJ0OiBudWxsLA0KICAgICAgICBwYXJhbURhdGFUeXBlOiBudWxsLA0KICAgICAgICBwYXJhbU5hbWU6IG51bGwNCiAgICAgIH0pDQogICAgfSwNCiAgICAvL+i+k+WFpeWPguaVsOmFjee9ruWIoOmZpA0KICAgIHJlbW92ZUl0ZW0odmFsKSB7DQogICAgICAvLyBjb25zb2xlLmxvZyh2YWwpDQogICAgICBpZiAodGhpcy5wYXJhbWV0ZXJzLnBhcmFtcy5sZW5ndGggPT0gMSkgew0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMucGFyYW1zID0gWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHBhcmFtQ29kZTogbnVsbCwNCiAgICAgICAgICAgIHBhcmFtRGF0YUZvcm1hcnQ6IG51bGwsDQogICAgICAgICAgICBwYXJhbURhdGFUeXBlOiBudWxsLA0KICAgICAgICAgICAgcGFyYW1OYW1lOiBudWxsDQogICAgICAgICAgfQ0KICAgICAgICBdDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLnBhcmFtZXRlcnMucGFyYW1zLnNwbGljZSh2YWwsIDEpDQogICAgICB9DQogICAgfSwNCiAgICBhZGQoKSB7DQogICAgICB0aGlzLnNob3dGb3JtRGlhID0gdHJ1ZQ0KICAgIH0sDQogICAgaGFuZGxlQ2xvc2UoKSB7DQogICAgICB0aGlzLnBhcmFtZXRlcnMgPSB7DQogICAgICAgIGNvZGU6ICcnLA0KICAgICAgICBpc0FzeW46IDAsDQogICAgICAgIG1lbW86ICcnLA0KICAgICAgICBuYW1lOiAnJywNCiAgICAgICAgb3V0RGF0YUZvcm1hcnQ6ICcnLA0KICAgICAgICBvdXREYXRhVHlwZTogJycsDQogICAgICAgIG91dERhdGFVbml0OiAnJywNCiAgICAgICAgcGFyYW1zOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgZnVuY3Rpb25JZDogJycsDQogICAgICAgICAgICBtZW1vOiAnJywNCiAgICAgICAgICAgIHBhcmFtQ29kZTogJycsDQogICAgICAgICAgICBwYXJhbURhdGFGb3JtYXJ0OiAnJywNCiAgICAgICAgICAgIHBhcmFtRGF0YVR5cGU6ICcnLA0KICAgICAgICAgICAgcGFyYW1OYW1lOiAnJywNCiAgICAgICAgICAgIC8vIOi+k+WFpeaYvuekug0KICAgICAgICAgICAgc2hvd0lucHV0RGF0YTogJycsDQogICAgICAgICAgICB0aW1lMjogJ+aXtumXtCcsIC8v5pe26Ze0JuaXpeacn+eahGxhYmxlDQogICAgICAgICAgICBkYXRhdGltZXMyOiBbXSwgLy8g55So5LqO5Yqo5oCB57uR5a6a5pe26Ze0L+aXpeacn+eahOS4i+aLieahhg0KICAgICAgICAgICAgbGFibGVOYW1lMjogJycsIC8v5biD5bCUJuaemuS4vmxhYmxlDQogICAgICAgICAgICBib29sU2hvdzI6IGZhbHNlLCAvL+emgeeUqOW4g+WwlOWJjemdoueahGtleQ0KICAgICAgICAgICAgZGlhbG9nRGF0YTI6IFt7fV0gLy/luIPlsJQm5p6a5Li+5a2Y5YKo5pWw5o2uDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICBwcm9kdWN0SWQ6ICcnDQogICAgICB9DQogICAgICB0aGlzLnRpdGxlID0gJ+aWsOWinicNCiAgICAgIHRoaXMuc2hvd0Zvcm1EaWEgPSBmYWxzZQ0KICAgICAgLy8g6L6T5Ye6DQogICAgICB0aGlzLnNob3dGb3JtRGF0YSA9ICcnDQogICAgICB0aGlzLmJvb2xTaG93ID0gZmFsc2UNCiAgICAgIHRoaXMuZGF0YXRpbWVzID0gW10NCiAgICAgIHRoaXMuZGlhbG9nRGF0YSA9IFt7fV0NCiAgICB9LA0KICAgIGhhbmRsZVNhdmUoKSB7DQogICAgICAvLyDnlKjkuo7moKHpqozluIPlsJQm5p6a5Li+5pWw5o2uID09PT4g6L6T5Ye6DQogICAgICBpZiAodGhpcy5zaG93Rm9ybURhdGEgPT0gJ2Jvb2wnIHx8IHRoaXMuc2hvd0Zvcm1EYXRhID09ICdlbnVtJykgew0KICAgICAgICAvLyDmib7liLDlr7zoh7Tph43lpI3nmoTlhYPntKDvvIxJRA0KICAgICAgICAvLyDlsIbmiYDmnInlr7nosaHnmoRJROmHjeaWsOe7hOaIkOaVsOe7hA0KICAgICAgICBpZiAodGhpcy5kaWFsb2dEYXRhWzBdLmxhYmVsIHx8IHRoaXMuZGlhbG9nRGF0YVswXS52YWx1ZSkgew0KICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5kaWFsb2dEYXRhLm1hcChlID0+IHsNCiAgICAgICAgICAgIGlmIChlLmxhYmVsID09ICcnIHx8IHR5cGVvZiBlLmxhYmVsID09ICd1bmRlZmluZWQnKSB7DQogICAgICAgICAgICAgIHRoaXMuZHR5cGUgPSBmYWxzZQ0KICAgICAgICAgICAgICB0aGlzLmpzb25zID0gZmFsc2UNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICAgICAgbWVzc2FnZTogJ+WQjeensOS4jeiDveS4uuepuu+8iOi+k+WHuu+8iScsDQogICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnDQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICByZXR1cm4gZS5sYWJlbA0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pDQogICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRpYWxvZ0RhdGEubWFwKHYgPT4gew0KICAgICAgICAgICAgaWYgKHYudmFsdWUgPT0gJycgfHwgdHlwZW9mIHYudmFsdWUgPT0gJ3VuZGVmaW5lZCcpIHsNCiAgICAgICAgICAgICAgdGhpcy5kdHlwZSA9IGZhbHNlDQogICAgICAgICAgICAgIHRoaXMuanNvbnMgPSBmYWxzZQ0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5YC85LiN6IO95Li656m6KOi+k+WHuiknLA0KICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHYudmFsdWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KQ0KICAgICAgICAgIGlmICh0aGlzLmR0eXBlKSB7DQogICAgICAgICAgICAvLyDpgJrov4dTZXTljrvpmaTmlbDnu4Tph43lpI3pobkNCiAgICAgICAgICAgIGNvbnN0IGxhYmVsU2V0ID0gbmV3IFNldChsYWJlbCkNCiAgICAgICAgICAgIGNvbnN0IHZhbHVlU2V0ID0gbmV3IFNldCh2YWx1ZSkNCiAgICAgICAgICAgIC8vIOavlOi+g+S4pOS4quaVsOe7hOeahOmVv+W6puadpeWIpOaWreaYr+WQpuWtmOWcqOmHjeWkjemhuQ0KICAgICAgICAgICAgaWYgKFsuLi5sYWJlbFNldF0ubGVuZ3RoICE9IGxhYmVsLmxlbmd0aCkgew0KICAgICAgICAgICAgICB0aGlzLmpzb25zID0gZmFsc2UNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICAgICAgbWVzc2FnZTogJ+WtmOWcqOebuOWQjOWQjeensO+8iOi+k+WHuu+8iScsDQogICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnDQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9IGVsc2UgaWYgKFsuLi52YWx1ZVNldF0ubGVuZ3RoICE9IHZhbHVlLmxlbmd0aCkgew0KICAgICAgICAgICAgICB0aGlzLmpzb25zID0gZmFsc2UNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICAgICAgbWVzc2FnZTogJ+WtmOWcqOebuOWQjOWAvO+8iOi+k+WHuu+8iScsDQogICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnDQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICB9IGVsc2UgaWYgKA0KICAgICAgICAgICAgICBbLi4ubGFiZWxTZXRdLmxlbmd0aCA9PT0gbGFiZWwubGVuZ3RoICYmDQogICAgICAgICAgICAgIFsuLi52YWx1ZVNldF0ubGVuZ3RoID09PSB2YWx1ZS5sZW5ndGgNCiAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YUZvcm1hcnQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmRpYWxvZ0RhdGEpDQogICAgICAgICAgICAgIHRoaXMuanNvbnMgPSB0cnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5wYXJhbWV0ZXJzLnBhcmFtcy5sZW5ndGg7IGluZGV4KyspIHsNCiAgICAgICAgY29uc3QgQkV2YWx1ZSA9IHRoaXMucGFyYW1ldGVycy5wYXJhbXNbaW5kZXhdDQogICAgICAgIGNvbnNvbGUubG9nKEJFdmFsdWUpDQogICAgICAgIGRlbGV0ZSBCRXZhbHVlLnNob3dJbnB1dERhdGENCiAgICAgICAgZGVsZXRlIEJFdmFsdWUuZGF0YXRpbWVzMg0KICAgICAgICBkZWxldGUgQkV2YWx1ZS5sYWJsZU5hbWUyDQogICAgICAgIGRlbGV0ZSBCRXZhbHVlLmJvb2xTaG93Mg0KICAgICAgICBkZWxldGUgQkV2YWx1ZS50aW1lMg0KICAgICAgICBpZiAoDQogICAgICAgICAgQkV2YWx1ZS5wYXJhbURhdGFUeXBlID09ICdzdHJpbmcnIHx8DQogICAgICAgICAgQkV2YWx1ZS5wYXJhbURhdGFUeXBlID09ICdpbnQnIHx8DQogICAgICAgICAgQkV2YWx1ZS5wYXJhbURhdGFUeXBlID09ICdmbG9hdCcNCiAgICAgICAgKSB7DQogICAgICAgICAgZGVsZXRlIEJFdmFsdWUuZGlhbG9nRGF0YTINCiAgICAgICAgfQ0KICAgICAgICAvLyDnlKjkuo7moKHpqozluIPlsJQm5p6a5Li+5pWw5o2uID09PT4g6L6T5YWlDQogICAgICAgIGlmICgNCiAgICAgICAgICBCRXZhbHVlLnBhcmFtRGF0YVR5cGUgPT0gJ2Jvb2wnIHx8DQogICAgICAgICAgQkV2YWx1ZS5wYXJhbURhdGFUeXBlID09ICdlbnVtJw0KICAgICAgICApIHsNCiAgICAgICAgICBpZiAoQkV2YWx1ZS5kaWFsb2dEYXRhMlswXS5sYWJlbCB8fCBCRXZhbHVlLmRpYWxvZ0RhdGEyWzBdLnZhbHVlKSB7DQogICAgICAgICAgICBjb25zdCBsYWJlbCA9IEJFdmFsdWUuZGlhbG9nRGF0YTIubWFwKGUgPT4gew0KICAgICAgICAgICAgICBpZiAoZS5sYWJlbCA9PSAnJyB8fCB0eXBlb2YgZS5sYWJlbCA9PSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIHRoaXMuZHR5cGUyID0gZmFsc2UNCiAgICAgICAgICAgICAgICB0aGlzLmpzb25zMiA9IGZhbHNlDQogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5ZCN56ew5LiN6IO95Li656m677yI6L6T5YWl77yJJywNCiAgICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUubGFiZWwNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gQkV2YWx1ZS5kaWFsb2dEYXRhMi5tYXAodiA9PiB7DQogICAgICAgICAgICAgIGlmICh2LnZhbHVlID09ICcnIHx8IHR5cGVvZiB2LnZhbHVlID09ICd1bmRlZmluZWQnKSB7DQogICAgICAgICAgICAgICAgdGhpcy5kdHlwZTIgPSBmYWxzZQ0KICAgICAgICAgICAgICAgIHRoaXMuanNvbnMyID0gZmFsc2UNCiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICflgLzkuI3og73kuLrnqbrvvIjovpPlhaXvvIknLA0KICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdi52YWx1ZQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgaWYgKHRoaXMuZHR5cGUyKSB7DQogICAgICAgICAgICAgIC8vIOmAmui/h1NldOWOu+mZpOaVsOe7hOmHjeWkjemhuQ0KICAgICAgICAgICAgICBjb25zdCBsYWJlbFNldCA9IG5ldyBTZXQobGFiZWwpDQogICAgICAgICAgICAgIGNvbnN0IHZhbHVlU2V0ID0gbmV3IFNldCh2YWx1ZSkNCiAgICAgICAgICAgICAgLy8g5q+U6L6D5Lik5Liq5pWw57uE55qE6ZW/5bqm5p2l5Yik5pat5piv5ZCm5a2Y5Zyo6YeN5aSN6aG5DQogICAgICAgICAgICAgIGlmIChbLi4ubGFiZWxTZXRdLmxlbmd0aCAhPSBsYWJlbC5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmpzb25zMiA9IGZhbHNlDQogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5a2Y5Zyo55u45ZCM5ZCN56ew77yI6L6T5YWl77yJJywNCiAgICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJw0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgIH0gZWxzZSBpZiAoWy4uLnZhbHVlU2V0XS5sZW5ndGggIT0gdmFsdWUubGVuZ3RoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5qc29uczIgPSBmYWxzZQ0KICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+WtmOWcqOebuOWQjOWAvO+8iOi+k+WFpe+8iScsDQogICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICB9IGVsc2UgaWYgKA0KICAgICAgICAgICAgICAgIFsuLi5sYWJlbFNldF0ubGVuZ3RoID09PSBsYWJlbC5sZW5ndGggJiYNCiAgICAgICAgICAgICAgICBbLi4udmFsdWVTZXRdLmxlbmd0aCA9PT0gdmFsdWUubGVuZ3RoDQogICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEJFdmFsdWUuZGlhbG9nRGF0YTIpDQogICAgICAgICAgICAgICAgQkV2YWx1ZS5wYXJhbURhdGFGb3JtYXJ0ID0gSlNPTi5zdHJpbmdpZnkoQkV2YWx1ZS5kaWFsb2dEYXRhMikNCiAgICAgICAgICAgICAgICB0aGlzLmpzb25zMiA9IHRydWUNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhCRXZhbHVlLCAndmFsdWUnKQ0KICAgICAgfQ0KDQogICAgICB0aGlzLnBhcmFtZXRlcnMucHJvZHVjdElkID0gdGhpcy5wYXJhbWV0ZXJJRC5pZA0KICAgICAgdGhpcy4kcmVmcy5mb3JtSW5mby52YWxpZGF0ZSh2YWxpZCA9PiB7DQogICAgICAgIGlmICh2YWxpZCkgew0KICAgICAgICAgIGxldCBtZXRob2QNCiAgICAgICAgICBpZiAodGhpcy5qc29uczIgJiYgdGhpcy5qc29ucykgew0KICAgICAgICAgICAgaWYgKCF0aGlzLnBhcmFtZXRlcnMuaWQpIHsNCiAgICAgICAgICAgICAgLy8g5paw5aKeDQogICAgICAgICAgICAgIG1ldGhvZCA9IFBoeXNpY2FsTW9kZWwuQWRkRnVuY3Rpb24NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghIXRoaXMucGFyYW1ldGVycy5pZCkgew0KICAgICAgICAgICAgICAvLyDkv67mlLkNCiAgICAgICAgICAgICAgbWV0aG9kID0gUGh5c2ljYWxNb2RlbC5tb2RpZnlGdW5jdGlvbg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbWV0aG9kKHRoaXMucGFyYW1ldGVycywgcmVzID0+IHsNCiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgew0KICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7DQogICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRpdGxlICsgJ+aIkOWKnycsDQogICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMA0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSgpDQogICAgICAgICAgICAgICAgdGhpcy4kZW1pdCgnbG9hZERhdGEnKQ0KICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZyhyZXNwb25zZS5tZXNzYWdlKQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIFVwZGF0ZShyb3cpIHsNCiAgICAgIC8vIGNvbnNvbGUubG9nKHJvdykNCiAgICAgIHRoaXMudGl0bGUgPSAn5L+u5pS5Jw0KICAgICAgLyoqDQogICAgICAgKiDlm57mmL7otYvlgLwNCiAgICAgICAqICovDQogICAgICB0aGlzLnBhcmFtZXRlcnMuY29kZSA9IHJvdy5jb2RlDQogICAgICB0aGlzLnBhcmFtZXRlcnMubmFtZSA9IHJvdy5uYW1lDQogICAgICB0aGlzLnBhcmFtZXRlcnMub3V0RGF0YVR5cGUgPSByb3cub3V0RGF0YVR5cGUNCiAgICAgIHRoaXMucGFyYW1ldGVycy5vdXREYXRhRm9ybWFydCA9IHJvdy5vdXREYXRhRm9ybWFydA0KICAgICAgdGhpcy5wYXJhbWV0ZXJzLm91dERhdGFVbml0ID0gcm93Lm91dERhdGFVbml0DQogICAgICB0aGlzLnBhcmFtZXRlcnMubWVtbyA9IHJvdy5tZW1vDQogICAgICB0aGlzLnBhcmFtZXRlcnMuY29kZSA9IHJvdy5jb2RlDQogICAgICB0aGlzLnBhcmFtZXRlcnMuaXNBc3luID0gTnVtYmVyKHJvdy5pc0FzeW4pDQogICAgICB0aGlzLnBhcmFtZXRlcnMuaWQgPSByb3cuaWQNCiAgICAgIHRoaXMucGFyYW1ldGVycy5zbiA9IHJvdy5zbg0KICAgICAgLy8g6I635Y+W6L6T5YWl6YWN572u5pWw5o2uDQogICAgICBQaHlzaWNhbE1vZGVsLkZ1bmN0aW9uRGV0YWlscyhyb3cuaWQsIHJlcyA9PiB7DQogICAgICAgIHRoaXMucGFyYW1ldGVycy5wYXJhbXMgPSByZXMucGFyYW1zDQogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnBhcmFtZXRlcnMucGFyYW1zLmxlbmd0aDsgaW5kZXgrKykgew0KICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5wYXJhbWV0ZXJzLnBhcmFtc1tpbmRleF0NCiAgICAgICAgICBpZiAoaXRlbS5wYXJhbURhdGFUeXBlID09ICdib29sJykgew0KICAgICAgICAgICAgaXRlbS5sYWJsZU5hbWUyID0gJ+W4g+WwlOWAvDonDQogICAgICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgICAgICAgIGl0ZW0uYm9vbFNob3cyID0gdHJ1ZQ0KICAgICAgICAgICAgaXRlbS5kaWFsb2dEYXRhMiA9IEpTT04ucGFyc2UoaXRlbS5wYXJhbURhdGFGb3JtYXJ0KQ0KICAgICAgICAgICAgaXRlbS5wYXJhbURhdGFGb3JtYXJ0ID0gbnVsbA0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoaXRlbS5wYXJhbURhdGFUeXBlID09ICdlbnVtJykgew0KICAgICAgICAgICAgaXRlbS5sYWJsZU5hbWUyID0gJ+aemuS4vumhuTonDQogICAgICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgICAgICAgIGl0ZW0uYm9vbFNob3cyID0gZmFsc2UNCiAgICAgICAgICAgIGl0ZW0uZGlhbG9nRGF0YTIgPSBKU09OLnBhcnNlKGl0ZW0ucGFyYW1EYXRhRm9ybWFydCkNCiAgICAgICAgICAgIGl0ZW0ucGFyYW1EYXRhRm9ybWFydCA9IG51bGwNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGl0ZW0ucGFyYW1EYXRhVHlwZSA9PSAnZmxvYXQnKSB7DQogICAgICAgICAgICBpdGVtLnNob3dJbnB1dERhdGEgPSBpdGVtLnBhcmFtRGF0YVR5cGUNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGl0ZW0ucGFyYW1EYXRhVHlwZSA9PSAnZGF0ZScpIHsNCiAgICAgICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgICAgICAgaXRlbS50aW1lMiA9ICfml6XmnJ8nDQogICAgICAgICAgICBpdGVtLmRhdGF0aW1lczIgPSB0aGlzLmRhdGVGb3JtYXJ0cw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoaXRlbS5wYXJhbURhdGFUeXBlID09ICdkYXRlVGltZScpIHsNCiAgICAgICAgICAgIGl0ZW0uc2hvd0lucHV0RGF0YSA9IGl0ZW0ucGFyYW1EYXRhVHlwZQ0KICAgICAgICAgICAgaXRlbS50aW1lMiA9ICfml7bpl7QnDQogICAgICAgICAgICBpdGVtLmRhdGF0aW1lczIgPSB0aGlzLmRhdGVUaW1lRm9ybWFydHMNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2codGhpcy5wYXJhbWV0ZXJzKQ0KICAgICAgfSkNCiAgICAgIHRoaXMuc2hvd0Zvcm1EaWEgPSB0cnVlDQogICAgICAvKioqDQogICAgICAgKiDovpPlh7rlm57mmL4NCiAgICAgICAqICovDQogICAgICB0aGlzLnNob3dGb3JtRGF0YSA9IHJvdy5vdXREYXRhVHlwZQ0KICAgICAgLy8g5biD5bCU5YC85Zue5pi+DQogICAgICBpZiAocm93Lm91dERhdGFUeXBlID09ICdib29sJykgew0KICAgICAgICB0aGlzLmxhYmxlTmFtZSA9ICfluIPlsJTlgLw6Jw0KICAgICAgICB0aGlzLmJvb2xTaG93ID0gdHJ1ZQ0KICAgICAgICB0aGlzLmRpYWxvZ0RhdGEgPSBKU09OLnBhcnNlKHJvdy5vdXREYXRhRm9ybWFydCkNCiAgICAgIH0NCiAgICAgIC8vIOaemuS4vumhueWbnuaYvg0KICAgICAgaWYgKHJvdy5vdXREYXRhVHlwZSA9PSAnZW51bScpIHsNCiAgICAgICAgdGhpcy5sYWJsZU5hbWUgPSAn5p6a5Li+6aG5OicNCiAgICAgICAgdGhpcy5ib29sU2hvdyA9IGZhbHNlDQogICAgICAgIHRoaXMuZGlhbG9nRGF0YSA9IEpTT04ucGFyc2Uocm93Lm91dERhdGFGb3JtYXJ0KQ0KICAgICAgfQ0KICAgICAgaWYgKHJvdy5vdXREYXRhVHlwZSA9PSAnZGF0ZScpIHsNCiAgICAgICAgdGhpcy50aW1lID0gJ+aXpeacnycNCiAgICAgICAgdGhpcy5kYXRhdGltZXMgPSB0aGlzLmRhdGVGb3JtYXJ0cw0KICAgICAgfQ0KICAgICAgaWYgKHJvdy5vdXREYXRhVHlwZSA9PSAnZGF0ZVRpbWUnKSB7DQogICAgICAgIHRoaXMudGltZSA9ICfml7bpl7QnDQogICAgICAgIHRoaXMuZGF0YXRpbWVzID0gdGhpcy5kYXRlVGltZUZvcm1hcnRzDQogICAgICB9DQogICAgfQ0KICB9DQp9DQo="},null]}