3901f5fc5516acb2c822abf9fc0c3ec6.json 31 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Marketing\\MarketingList\\AddCoupon.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Marketing\\MarketingList\\AddCoupon.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IEdvb2RzQ2hvb3NlU2hvcCBmcm9tICIuLi8uLi8uLi9jb21wb25lbnQvZ29vZHMvR29vZHNDaG9vc2VTaG9wIjsKaW1wb3J0IEdvb2RzQ2F0ZWdvcnkgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL0dvb2RzQ2F0ZWdvcnkudnVlIjsKaW1wb3J0IEJyYW5kU2VsTW9kZWwgZnJvbSAiQC9jb21wb25lbnQvZ29vZHMvQnJhbmRTZWxNb2RlbC52dWUiOwppbXBvcnQgQ2xpZW50TGlzdE1vZGFsIGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9DbGllbnRMaXN0TW9kYWwiOwppbXBvcnQgU2FsZUdvb2RzTGlzdCBmcm9tICJAL2NvbXBvbmVudC9nb29kcy9TYWxlR29vZHNMaXN0IjsKaW1wb3J0IHsgYWRkQ3VzdG9tZXJTb3VyY2UsIGVkaXRDdXN0b21lclNvdXJjZSwgZ2V0QWxsQ3VzdG9tZXJTb3VyY2UgfSBmcm9tICJAL2FwaS9TeXN0ZW0iOwppbXBvcnQgeyBhZGRQYXVzZVNhdmUsIGRlbFBhdXNlU2F2ZSwgZ2V0UGF1c2VTYXZlIH0gZnJvbSAiQC9hcGkvY29tbW9uIjsKaW1wb3J0IHsgZWRpdE1hcmtldCwgYWRkTWFya2V0LCBnZXRJbmZvIH0gZnJvbSAiQC9hcGkvTWFya2V0IjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJBZGRDb3Vwb24iLAogIGNvbXBvbmVudHM6IHsKICAgIEdvb2RzQ2hvb3NlU2hvcCwKICAgIEdvb2RzQ2F0ZWdvcnksCiAgICBDbGllbnRMaXN0TW9kYWwsCiAgICBCcmFuZFNlbE1vZGVsLAogICAgU2FsZUdvb2RzTGlzdAogIH0sCgogIGRhdGEoKSB7CiAgICBjb25zdCBhcHBseVJhbmdlVmFsaSA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsKICAgICAgaWYgKHZhbHVlID09PSAyMCAmJiAhdGhpcy5hZGRfZm9ybS5jYXRlZ29yeUNvbGxlY3QubGVuZ3RoKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fpgInmi6nmjIflrprliIbnsbsiKSk7CiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IDMwICYmICF0aGlzLmFkZF9mb3JtLmJyYW5kQ29sbGVjdC5sZW5ndGgpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeaMh+WumuWTgeeJjCIpKTsKICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gNDAgJiYgIXRoaXMuZ29vZHNfbGlzdC5sZW5ndGgpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeaMh+WumuWVhuWTgSIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IHVzZXJUeXBlSWRWYWxpID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAodmFsdWUgPT09IDIgJiYgdGhpcy5hZGRfZm9ybS5taW5QcmljZSA8PSAwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXmraPnoa7nmoTpl6jmp5vph5Hpop0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICBjb25zdCBtdXN0Q29uZGl0aW9uVmFsaSA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsKICAgICAgaWYgKHRoaXMuYWRkX2Zvcm0uZ3JhbnRUeXBlID09PSA0MCAmJiB2YWx1ZSA8PSAwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXmraPnoa7nmoTmu6Hlh4/ph5Hpop0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICBjb25zdCBncmFudEVuZFRpbWVWYWxpID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAodGhpcy5hZGRfZm9ybS5jb3Vwb25UeXBlICE9PSAyMCAmJiAhdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeWPkeaUvuaXtumXtCIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IGN1c3RvbWVyU291cmNlSWRWYWxpID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAodGhpcy5jdXN0b21lclJhbmdlID09PSA0ICYmIHBhcnNlSW50KHRoaXMuYWRkX2Zvcm0uZ3JhbnRUeXBlKSAhPT0gMjAgJiYgcGFyc2VJbnQodGhpcy5hZGRfZm9ybS5jb3Vwb25UeXBlKSAhPT0gMjAgJiYgIXZhbHVlLmxlbmd0aCkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup6aKG5Y+W6IyD5Zu0IikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgY29uc3QgY3VzdG9tZXJJZHNWYWxpID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAodGhpcy5hZGRfZm9ybS5ncmFudFR5cGUgPT09IDIwICYmICF2YWx1ZS5sZW5ndGgpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqemAieaLqeWuouaItyIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IGVuZFRpbWVWYWxpID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAodGhpcy5hZGRfZm9ybS5jb3Vwb25UeXBlICE9PSAyMCAmJiB0aGlzLmFkZF9mb3JtLmdyYW50VHlwZSAhPT0gMTAgJiYgIXZhbHVlKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fpgInmi6nmnInmlYjml7bpl7QiKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICByZXR1cm4gewogICAgICBnb29kc19saXN0OiBbXSwKICAgICAgLy8g5ZWG5ZOB6IyD5Zu077yM5oyH5a6a5ZWG5ZOBCiAgICAgIGdvb2RzX3Nob3c6IGZhbHNlLAogICAgICAvLyDllYblk4HojIPlm7TvvIzpgInmi6nmjIflrprllYblk4HlvLnnqpcKICAgICAgc2hvd19tb2RlbDogZmFsc2UsCiAgICAgIC8vIOWuouaIt+exu+WeiwogICAgICAvLyDmlrDlop7lrqLmiLfnsbvlnovmlbDmja4KICAgICAgYWRkX2N1c3Rvcm06IHsKICAgICAgICBuYW1lOiAiIiwKICAgICAgICBkZWZhdWx0U3RhdHVzOiA0LAogICAgICAgIGVuYWJsZVN0YXR1czogNQogICAgICB9LAogICAgICAvLyDmlrDlop7lrqLmiLfnsbvlnovnmoTpqozor4EKICAgICAgcnVsZXM6IHsKICAgICAgICBuYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5a6i5oi357G75Z6LIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBjYXRlZ29yeUNvbGxlY3Q6IFtdLAogICAgICBtYXJrZXRJZDogIiIsCiAgICAgIHNob3dfc2hvcDogZmFsc2UsCiAgICAgIGN1c3RvbWVyX3Nob3c6IGZhbHNlLAogICAgICBkaXN0cmlidXRpb25NZXRob2RMaXN0OiBbewogICAgICAgIGRpc3RyaWJ1dGlvbk1ldGhvZDogMTAsCiAgICAgICAgdGl0bGU6ICLkuLvliqjpooblj5YiCiAgICAgIH0sIHsKICAgICAgICBkaXN0cmlidXRpb25NZXRob2Q6IDIwLAogICAgICAgIHRpdGxlOiAi5a6a5ZCR5Y+R5pS+IgogICAgICB9LCB7CiAgICAgICAgZGlzdHJpYnV0aW9uTWV0aG9kOiAzMCwKICAgICAgICB0aXRsZTogIuazqOWGjOmihuWPliIKICAgICAgfSwgewogICAgICAgIGRpc3RyaWJ1dGlvbk1ldGhvZDogNDAsCiAgICAgICAgdGl0bGU6ICLlnKjnur/mlK/ku5jpooblj5YiCiAgICAgIH1dLAogICAgICAvLyDlvZPpgInmi6nkvJrlkZjljaHkvJjmg6DliLgKICAgICAgdmlwTGlzdDogW3sKICAgICAgICBkaXN0cmlidXRpb25NZXRob2Q6IDEwLAogICAgICAgIHRpdGxlOiAi5Li75Yqo6aKG5Y+WIgogICAgICB9LCB7CiAgICAgICAgZGlzdHJpYnV0aW9uTWV0aG9kOiA1MCwKICAgICAgICB0aXRsZTogIuW8gOWNoei1oOmAgSIKICAgICAgfV0sCiAgICAgIHByb2R1Y3RSYW5nZTogW3sKICAgICAgICBwcm9kdWN0UmFuZ2VJZDogMTAsCiAgICAgICAgdGl0bGU6ICLlhajpg6jllYblk4EiCiAgICAgIH0sIHsKICAgICAgICBwcm9kdWN0UmFuZ2VJZDogNDAsCiAgICAgICAgdGl0bGU6ICLmjIflrprllYblk4EiCiAgICAgIH0sIHsKICAgICAgICBwcm9kdWN0UmFuZ2VJZDogMjAsCiAgICAgICAgdGl0bGU6ICLmjIflrprliIbnsbsiCiAgICAgIH0sIHsKICAgICAgICBwcm9kdWN0UmFuZ2VJZDogMzAsCiAgICAgICAgdGl0bGU6ICLmjIflrprlk4HniYwiCiAgICAgIH1dLAogICAgICBjb3Vwb25MaXN0OiBbewogICAgICAgIGlkOiAxMCwKICAgICAgICB0aXRsZTogIuaZrumAmuS8mOaDoOWIuCIKICAgICAgfSwgewogICAgICAgIGlkOiAyMCwKICAgICAgICB0aXRsZTogIuS8muWRmOWNoeS8mOaDoOWIuCIKICAgICAgfV0sCiAgICAgIHVzZXJUeXBlOiBbewogICAgICAgIHVzZXJUeXBlSWQ6IC0xLAogICAgICAgIHRpdGxlOiAi5LiN6ZmQ55SoIgogICAgICB9LCB7CiAgICAgICAgdXNlclR5cGVJZDogMiwKICAgICAgICB0aXRsZTogIua7oSIKICAgICAgfV0sCiAgICAgIGFkZF9ydWxlczogewogICAgICAgIG5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXkvJjmg6DliLjlkI3np7AiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcmVkdWNlUHJpY2U6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXkvJjmg6DliLjlgLwiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgZW5kVGltZTogW3sKICAgICAgICAgIHZhbGlkYXRvcjogZW5kVGltZVZhbGksCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIGdyYW50RW5kVGltZTogW3sKICAgICAgICAgIHZhbGlkYXRvcjogZ3JhbnRFbmRUaW1lVmFsaSwKICAgICAgICAgIHRyaWdnZXI6ICJjaGFuZ2UiCiAgICAgICAgfV0sCiAgICAgICAgdXNlclR5cGVJZDogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdXNlclR5cGVJZFZhbGksCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIGdyYW50VHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeWPkeaUvuaWueW8jyIsCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIHRvdGFsTnVtOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5oC75Y+R5pS+5pWwIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHVzZXJEZXRhaWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXmr4/kurrlj5HmlL7mlbAiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgdXNlU2hvcDogW3sKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nkvb/nlKjojIPlm7QiLAogICAgICAgICAgdHJpZ2dlcjogImNoYW5nZSIKICAgICAgICB9XSwKICAgICAgICBjdXN0b21lclNvdXJjZUlkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IGN1c3RvbWVyU291cmNlSWRWYWxpLAogICAgICAgICAgdHJpZ2dlcjogImNoYW5nZSIKICAgICAgICB9XSwKICAgICAgICBjdXN0b21lcklkczogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiBjdXN0b21lcklkc1ZhbGksCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIGFwcGx5UmFuZ2U6IFt7CiAgICAgICAgICB2YWxpZGF0b3I6IGFwcGx5UmFuZ2VWYWxpLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgYWxsb3dOdW06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXmr4/kurrpooblj5bmlbAiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgbXVzdENvbmRpdGlvbjogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiBtdXN0Q29uZGl0aW9uVmFsaSwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHRpbWU6IFtdLAogICAgICBncmFudFRpbWU6IFtdLAogICAgICBicmFuZE5hbWVBcnI6IFtdLAogICAgICBhZGRyZXNzX2xpc3Q6IFtdLAogICAgICBjdXN0b21lclR5cGU6IFtdLAogICAgICB1c2VTaG9wTmFtZUFycjogW10sCiAgICAgIGNob29zZUN1c3RvbWVyOiBbXSwKICAgICAgLy8g6YCJ5oup5a6i5oi3CiAgICAgIHNlbF9icmFuZDogZmFsc2UsCiAgICAgIGFkZF9mb3JtOiB7CiAgICAgICAgbmFtZTogIiIsCiAgICAgICAgc3RhcnRUaW1lOiAiIiwKICAgICAgICBlbmRUaW1lOiAiIiwKICAgICAgICByZWR1Y2VQcmljZTogIiIsCiAgICAgICAgY291cG9uVHlwZTogMTAsCiAgICAgICAgLy8g5LyY5oOg5Yi457G75Z6LCiAgICAgICAgcmVtYXJrOiAiIiwKICAgICAgICBtaW5QcmljZTogIiIsCiAgICAgICAgLy8g5L2/55So6Zeo5qebKC0x5LiN6ZmQ55SoKQogICAgICAgIHVzZXJUeXBlSWQ6IC0xLAogICAgICAgIGdyYW50VHlwZTogMTAsCiAgICAgICAgLy8g5Y+R5pS+5pa55byPCiAgICAgICAgdG90YWxOdW06ICIiLAogICAgICAgIGFsbG93TnVtOiAiIiwKICAgICAgICBtdXN0Q29uZGl0aW9uOiAiIiwKICAgICAgICAvLyDmu6Hlh4/otaDpgIEKICAgICAgICBjdXN0b21lclNvdXJjZUlkOiBbXSwKICAgICAgICB1c2VTaG9wOiBbXSwKICAgICAgICAvLyDkvb/nlKjojIPlm7QKICAgICAgICBjdXN0b21lcklkczogW10sCiAgICAgICAgLy8g6YCJ5oup5a6i5oi3CiAgICAgICAgZ3JhbnRTdGFydFRpbWU6ICIiLAogICAgICAgIGdyYW50RW5kVGltZTogIiIsCiAgICAgICAgYXBwbHlSYW5nZTogMTAsCiAgICAgICAgaXNNdXRleDogNCwKICAgICAgICAvLyDmmK/lkKbkuI7lhbbku5bmtLvliqjkupLmlqUKICAgICAgICBjYXRlZ29yeUNvbGxlY3Q6IFtdLAogICAgICAgIGJyYW5kQ29sbGVjdDogW10sCiAgICAgICAgZ29vZHNDb2xsZWN0OiBbXSAvLyDllYblk4FpZOmbhuWQiAoKICAgICAgfSwKICAgICAgdXNlcl9jZW50ZXJfaWQ6IDAsCiAgICAgIHBhZ2VOYW1lOiAiIiwKICAgICAgLy8gIOS/ruaUueWuouaIt+exu+Wei+mAieaLqeaWueW8jwogICAgICBjdXN0b21lclJhbmdlOiA1LAogICAgICBpc0luZGV0ZXJtaW5hdGU6IGZhbHNlLAogICAgICBjaGVja0FsbDogZmFsc2UKICAgIH07CiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMucGFnZU5hbWUgPSB0aGlzLiRyb3V0ZS5uYW1lOwogICAgdGhpcy5tYXJrZXRJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZDsKCiAgICBpZiAodGhpcy5tYXJrZXRJZCkgewogICAgICB0aGlzLmdldEluZm8oKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZ2V0UGF1c2VTYXZlKCk7CiAgICB9CgogICAgdGhpcy5nZXRBbGxDdXN0b21lclNvdXJjZSgpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIENoZWNrQWxsQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLmFkZF9mb3JtLmN1c3RvbWVyU291cmNlSWQgPSB2YWwgPyB0aGlzLmN1c3RvbWVyVHlwZS5tYXAoaXRlbSA9PiBpdGVtLmlkKSA6IFtdOwogICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlOwogICAgfSwKCiAgICBjdXN0b21lclR5cGVDaGFuZ2UodmFsdWUpIHsKICAgICAgbGV0IGNoZWNrZWRDb3VudCA9IHZhbHVlLmxlbmd0aDsKICAgICAgdGhpcy5jaGVja0FsbCA9IGNoZWNrZWRDb3VudCA9PT0gdGhpcy5jdXN0b21lclR5cGUubGVuZ3RoOwogICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IGNoZWNrZWRDb3VudCA+IDAgJiYgY2hlY2tlZENvdW50IDwgdGhpcy5jdXN0b21lclR5cGUubGVuZ3RoOwogICAgfSwKCiAgICAvLyDlhbPpl63lvLnnqpcKICAgIGhhbmRsZUNsb3NlKCkgewogICAgICB0aGlzLmFkZF9jdXN0b3JtID0gewogICAgICAgIG5hbWU6ICIiLAogICAgICAgIGRlZmF1bHRTdGF0dXM6IDQsCiAgICAgICAgZW5hYmxlU3RhdHVzOiA1CiAgICAgIH07CiAgICAgIHRoaXMuc2hvd19tb2RlbCA9IGZhbHNlOwogICAgfSwKCiAgICAvLyDmlrDlop7lrqLmiLfnsbvlnosKICAgIGFzeW5jIGFkZERhdGEoKSB7CiAgICAgIHRoaXMuJHJlZnMuYWRkX2Zvcm0udmFsaWRhdGUoYXN5bmMgdmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgbGV0IHRhcmdldCA9IHt9OwoKICAgICAgICAgIGlmICghdGhpcy5pc19lZGl0KSB7CiAgICAgICAgICAgIHRhcmdldCA9IGF3YWl0IGFkZEN1c3RvbWVyU291cmNlKHsgLi4udGhpcy5hZGRfY3VzdG9ybQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRhcmdldCA9IGF3YWl0IGVkaXRDdXN0b21lclNvdXJjZSh0aGlzLnR5cGVfaWQsIHsgLi4udGhpcy5hZGRfY3VzdG9ybQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KCiAgICAgICAgICBjb25zdCBkYXRhID0gdGFyZ2V0OwogICAgICAgICAgdGhpcy4kbWVzc2FnZSgi5a6i5oi357G75Z6L5Yib5bu65oiQ5YqfIik7CiAgICAgICAgICB0aGlzLnNob3dfbW9kZWwgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvLyDmmoLlrZgKICAgIGFzeW5jIGFkZFBhdXNlU2F2ZSgpIHsKICAgICAgY29uc3QgdXNlU2hvcCA9IHRoaXMuYWRkX2Zvcm0udXNlU2hvcC5sZW5ndGggPiAwID8gdGhpcy5hZGRfZm9ybS51c2VTaG9wLmpvaW4oIiwiKSA6IDA7CiAgICAgIGNvbnN0IG1pblByaWNlID0gdGhpcy5hZGRfZm9ybS51c2VyVHlwZUlkID09PSAtMSA/IDAgOiB0aGlzLmFkZF9mb3JtLm1pblByaWNlOwogICAgICBjb25zdCBjdXN0b21lclNvdXJjZUlkID0gdGhpcy5hZGRfZm9ybS5jdXN0b21lclNvdXJjZUlkLmxlbmd0aCA+IDAgPyB0aGlzLmFkZF9mb3JtLmN1c3RvbWVyU291cmNlSWQuam9pbigiLCIpIDogMDsKICAgICAgY29uc3QgY3VzdG9tZXJJZHMgPSB0aGlzLmFkZF9mb3JtLmN1c3RvbWVySWRzLmxlbmd0aCA+IDAgPyB0aGlzLmFkZF9mb3JtLmN1c3RvbWVySWRzLmpvaW4oIiwiKSA6IDA7CiAgICAgIGNvbnN0IGZvcm0gPSB7CiAgICAgICAgbmFtZTogdGhpcy5hZGRfZm9ybS5uYW1lLAogICAgICAgIHN0YXJ0VGltZTogdGhpcy5hZGRfZm9ybS5zdGFydFRpbWUsCiAgICAgICAgZW5kVGltZTogdGhpcy5hZGRfZm9ybS5lbmRUaW1lLAogICAgICAgIHJlZHVjZVByaWNlOiB0aGlzLmFkZF9mb3JtLnJlZHVjZVByaWNlLAogICAgICAgIHJlbWFyazogdGhpcy5hZGRfZm9ybS5yZW1hcmssCiAgICAgICAgLy8gJ3VzZXJUeXBlSWQnOiB0aGlzLmFkZF9mb3JtLnVzZXJUeXBlSWQsCiAgICAgICAgbWluUHJpY2U6IG1pblByaWNlLAogICAgICAgIC8vIOS9v+eUqOmXqOanmygtMeS4jemZkOeUqCkKICAgICAgICBncmFudFR5cGU6IHRoaXMuYWRkX2Zvcm0uZ3JhbnRUeXBlLAogICAgICAgIC8vIOWPkeaUvuaWueW8jwogICAgICAgIGNvdXBvblR5cGU6IHRoaXMuYWRkX2Zvcm0uY291cG9uVHlwZSwKICAgICAgICAvLyDkvJjmg6DliLjnsbvlnosKICAgICAgICB0b3RhbE51bTogdGhpcy5hZGRfZm9ybS50b3RhbE51bSwKICAgICAgICBhbGxvd051bTogdGhpcy5hZGRfZm9ybS5hbGxvd051bSwKICAgICAgICBtdXN0Q29uZGl0aW9uOiB0aGlzLmFkZF9mb3JtLm11c3RDb25kaXRpb24sCiAgICAgICAgLy8g5ruh5YeP6LWg6YCBCiAgICAgICAgaXNNdXRleDogdGhpcy5hZGRfZm9ybS5pc011dGV4LAogICAgICAgIC8vIOaYr+WQpuS4juWFtuS7lua0u+WKqOS6kuaWpQogICAgICAgIGN1c3RvbWVyU291cmNlSWQ6IGN1c3RvbWVyU291cmNlSWQsCiAgICAgICAgdXNlU2hvcDogdXNlU2hvcCwKICAgICAgICAvLyDkvb/nlKjojIPlm7QKICAgICAgICB1c2VTaG9wTmFtZTogdGhpcy51c2VTaG9wTmFtZSwKICAgICAgICBicmFuZE5hbWVBcnI6IHRoaXMuYnJhbmROYW1lQXJyLAogICAgICAgIGN1c3RvbWVySWRzOiBjdXN0b21lcklkcywKICAgICAgICAvLyDpgInmi6nlrqLmiLcKICAgICAgICBjdXN0b21lck5hbWVzOiB0aGlzLmNob29zZUN1c3RvbWVyLAogICAgICAgIGdyYW50U3RhcnRUaW1lOiB0aGlzLmFkZF9mb3JtLmdyYW50U3RhcnRUaW1lLAogICAgICAgIGdyYW50RW5kVGltZTogdGhpcy5hZGRfZm9ybS5ncmFudEVuZFRpbWUsCiAgICAgICAgYXBwbHlSYW5nZTogdGhpcy5hZGRfZm9ybS5hcHBseVJhbmdlLAogICAgICAgIGNhdGVnb3J5Q29sbGVjdDogdGhpcy5hZGRfZm9ybS5jYXRlZ29yeUNvbGxlY3Quam9pbigiLCIpLAogICAgICAgIGJyYW5kQ29sbGVjdDogdGhpcy5hZGRfZm9ybS5icmFuZENvbGxlY3Quam9pbigiLCIpCiAgICAgIH07CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhZGRQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5wYWdlTmFtZSwKICAgICAgICBkYXRhOiBmb3JtCiAgICAgIH0pOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLmmoLlrZjmiJDlip8hIgogICAgICB9KTsKICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvTWFya2V0aW5nL01hcmtldGluZ0xpc3QvQ291cG9uIik7CiAgICB9LAoKICAgIC8vIOa4hemZpOaaguWtmAogICAgYXN5bmMgZGVsUGF1c2VTYXZlKHR5cGUpIHsKICAgICAgY29uc3QgZGF0YSA9IGRlbFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLnBhZ2VOYW1lCiAgICAgIH0pOwoKICAgICAgaWYgKHR5cGUpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgIG1lc3NhZ2U6ICLmuIXpmaTmmoLlrZjmiJDlip8iCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvTWFya2V0aW5nL01hcmtldGluZ0xpc3QvQWRkQ291cG9uIik7CiAgICAgIH0KICAgIH0sCgogICAgLy8g6I635Y+W5pqC5a2Y5L+h5oGvCiAgICBhc3luYyBnZXRQYXVzZVNhdmUoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5wYWdlTmFtZQogICAgICB9KTsKICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGEpID09PSAie30iKSByZXR1cm47CiAgICAgIHRoaXMuYWRkX2Zvcm0gPSB7IC4uLmRhdGEsCiAgICAgICAgdXNlU2hvcDogZGF0YS51c2VTaG9wID8gZGF0YS51c2VTaG9wLnNwbGl0KCIsIikgOiBbXSwKICAgICAgICBicmFuZENvbGxlY3Q6IGRhdGEuYnJhbmRDb2xsZWN0ID8gZGF0YS5icmFuZENvbGxlY3Quc3BsaXQoIiwiKSA6IFtdLAogICAgICAgIGNhdGVnb3J5Q29sbGVjdDogZGF0YS5jYXRlZ29yeUNvbGxlY3QgPyBkYXRhLmNhdGVnb3J5Q29sbGVjdC5zcGxpdCgiLCIpLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgICB9KSA6IFtdLAogICAgICAgIGN1c3RvbWVyU291cmNlSWQ6IGRhdGEuY3VzdG9tZXJTb3VyY2VJZCA/IGRhdGEuY3VzdG9tZXJTb3VyY2VJZC5zcGxpdCgiLCIpLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgICB9KSA6IFtdLAogICAgICAgIHVzZXJUeXBlSWQ6IGRhdGEubWluUHJpY2UgPiAwID8gMiA6IC0xCiAgICAgIH07CiAgICAgIHRoaXMudXNlU2hvcE5hbWVBcnIgPSBkYXRhLnVzZVNob3BOYW1lID8gZGF0YS51c2VTaG9wTmFtZS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIG5hbWU6IGl0ZW0sCiAgICAgICAgICBpZDogcGFyc2VJbnQodGhpcy5hZGRfZm9ybS51c2VTaG9wW2luZGV4XSkKICAgICAgICB9OwogICAgICB9KSA6IFtdOwogICAgICB0aGlzLmNob29zZUN1c3RvbWVyID0gZGF0YS5jdXN0b21lck5hbWVzID8gZGF0YS5jdXN0b21lck5hbWVzLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgbmFtZTogaXRlbS5uYW1lLAogICAgICAgICAgaWQ6IHBhcnNlSW50KHRoaXMuYWRkX2Zvcm0udXNlU2hvcFtpbmRleF0pCiAgICAgICAgfTsKICAgICAgfSkgOiBbXTsKICAgICAgdGhpcy5icmFuZE5hbWVBcnIgPSBkYXRhLmJyYW5kTmFtZUFyciA/IGRhdGEuYnJhbmROYW1lQXJyLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsCiAgICAgICAgICBpZDogcGFyc2VJbnQodGhpcy5hZGRfZm9ybS5icmFuZENvbGxlY3RbaW5kZXhdKQogICAgICAgIH07CiAgICAgIH0pIDogW107CgogICAgICBpZiAoZGF0YS5zdGFydFRpbWUgIT09ICIiICYmIGRhdGEuZW5kVGltZSAhPT0gIiIpIHsKICAgICAgICB0aGlzLnRpbWUgPSBbZGF0YS5zdGFydFRpbWUgKiAxMDAwLCBkYXRhLmVuZFRpbWUgKiAxMDAwXTsKICAgICAgfQoKICAgICAgaWYgKGRhdGEuZ3JhbnRTdGFydFRpbWUgIT09ICIiICYmIGRhdGEuZ3JhbnRFbmRUaW1lICE9PSAiIikgewogICAgICAgIHRoaXMuZ3JhbnRUaW1lID0gW2RhdGEuZ3JhbnRTdGFydFRpbWUgKiAxMDAwLCBkYXRhLmdyYW50RW5kVGltZSAqIDEwMDBdOwogICAgICB9CiAgICB9LAoKICAgIC8vICDpgInmi6nllYbpk7oKICAgIHNlbFNob3Aocm93KSB7CiAgICAgIGlmICh0aGlzLnVzZVNob3BOYW1lQXJyLmxlbmd0aCkgewogICAgICAgIHRoaXMudXNlU2hvcE5hbWVBcnIgPSB0aGlzLiRfY29tbW9uLnVuaXF1ZSh0aGlzLnVzZVNob3BOYW1lQXJyLmNvbmNhdChyb3cpLCBbImlkIl0pOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXNlU2hvcE5hbWVBcnIgPSByb3c7CiAgICAgIH0KCiAgICAgIHRoaXMuYWRkX2Zvcm0udXNlU2hvcCA9IHRoaXMudXNlU2hvcE5hbWVBcnIubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgICAgdGhpcy51c2VTaG9wTmFtZSA9IHRoaXMudXNlU2hvcE5hbWVBcnIubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLm5hbWU7CiAgICAgIH0pOwogICAgfSwKCiAgICAvLyAg6YCJ5oup5ZOB54mMCiAgICBicmFuZENvbmZpcm0ocm93KSB7CiAgICAgIGlmICh0aGlzLmJyYW5kTmFtZUFyci5sZW5ndGgpIHsKICAgICAgICB0aGlzLmJyYW5kTmFtZUFyciA9IHRoaXMuJF9jb21tb24udW5pcXVlKHRoaXMuYnJhbmROYW1lQXJyLmNvbmNhdChyb3cpLCBbImlkIl0pOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuYnJhbmROYW1lQXJyID0gcm93OwogICAgICB9CgogICAgICB0aGlzLmFkZF9mb3JtLmJyYW5kQ29sbGVjdCA9IHRoaXMuYnJhbmROYW1lQXJyLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOmAieaLqeWuouaItwogICAgY3VzdG9tZXJTZWwocm93KSB7CiAgICAgIGlmICh0aGlzLmNob29zZUN1c3RvbWVyLmxlbmd0aCkgewogICAgICAgIHRoaXMuY2hvb3NlQ3VzdG9tZXIgPSB0aGlzLiRfY29tbW9uLnVuaXF1ZSh0aGlzLmNob29zZUN1c3RvbWVyLmNvbmNhdChyb3cpLCBbImlkIl0pOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuY2hvb3NlQ3VzdG9tZXIgPSByb3c7CiAgICAgIH0KCiAgICAgIHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJJZHMgPSB0aGlzLmNob29zZUN1c3RvbWVyLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOmAieaLqeWVhuWTgeiMg+WbtOWIhuexuyDmjIflrprliIbnsbsKICAgIGNhdGVDaGFuZ2Uobm93RGF0YSwgY2hlY2tlZEtleXNPYmopIHsKICAgICAgY29uc3QgewogICAgICAgIGNoZWNrZWRLZXlzLAogICAgICAgIGNoZWNrZWROb2RlcwogICAgICB9ID0gY2hlY2tlZEtleXNPYmo7CiAgICAgIHRoaXMuYWRkX2Zvcm0uY2F0ZWdvcnlDb2xsZWN0ID0gY2hlY2tlZEtleXM7CiAgICB9LAoKICAgIC8vICDpgInmi6nnmoTlrqLmiLfnsbvlnosKICAgIGFzeW5jIGdldEFsbEN1c3RvbWVyU291cmNlKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsQ3VzdG9tZXJTb3VyY2UoewogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgcGFnZVNpemU6IDk5OQogICAgICB9KTsKICAgICAgdGhpcy5jdXN0b21lclR5cGUgPSBkYXRhLmRhdGE7CgogICAgICBpZiAoIXRoaXMubWFya2V0SWQpIHsKICAgICAgICB0aGlzLmN1c3RvbWVyUmFuZ2UgPSA1OwogICAgICAgIC8qIHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZCA9IGRhdGEuZGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZAogICAgICAgIH0pICovCiAgICAgIH0KICAgIH0sCgogICAgZ2V0QWxsU2hvcChsaXN0KSB7CiAgICAgIGlmICghdGhpcy5tYXJrZXRJZCkgewogICAgICAgIHRoaXMudXNlU2hvcE5hbWVBcnIgPSBsaXN0OwogICAgICAgIHRoaXMuYWRkX2Zvcm0udXNlU2hvcCA9IHRoaXMudXNlU2hvcE5hbWVBcnIubWFwKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy51c2VTaG9wTmFtZSA9IHRoaXMudXNlU2hvcE5hbWVBcnIubWFwKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKCiAgICAvLyDmnInmlYjml7bpl7QKICAgIExvY2F0aW9uRnJvbSh2YWwpIHsKICAgICAgaWYgKHZhbCAmJiB2YWwubGVuZ3RoKSB7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5zdGFydFRpbWUgPSB2YWxbMF0gLyAxMDAwOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uZW5kVGltZSA9IHRoaXMuJE5QLnBsdXModmFsWzFdIC8gMTAwMCwgODYzOTkpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuYWRkX2Zvcm0uc3RhcnRUaW1lID0gIiI7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5lbmRUaW1lID0gIiI7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5Y+R5pS+5pe26Ze0CiAgICBncmFudFRpbWVDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh2YWwgJiYgdmFsLmxlbmd0aCkgewogICAgICAgIHRoaXMuYWRkX2Zvcm0uZ3JhbnRTdGFydFRpbWUgPSB2YWxbMF0gLyAxMDAwOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uZ3JhbnRFbmRUaW1lID0gdGhpcy4kTlAucGx1cyh2YWxbMV0gLyAxMDAwLCA4NjM5OSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5ncmFudFN0YXJ0VGltZSA9ICIiOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uZ3JhbnRFbmRUaW1lID0gIiI7CiAgICAgIH0KICAgIH0sCgogICAgLy8gIOWFs+mXreagh+etvgogICAgY2xvc2VUYWcobmFtZSwgaW5kZXgpIHsKICAgICAgaWYgKG5hbWUgPT09ICJ1c2Vyc2hvcCIpIHsKICAgICAgICB0aGlzLnVzZVNob3BOYW1lQXJyLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgdGhpcy5hZGRfZm9ybS51c2VTaG9wID0gdGhpcy51c2VTaG9wTmFtZUFyci5tYXAoaXRlbSA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAiY3VzdG9tZXIiKSB7CiAgICAgICAgdGhpcy5jaG9vc2VDdXN0b21lci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJJZHMgPSB0aGlzLmNob29zZUN1c3RvbWVyLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICJicmFuZCIpIHsKICAgICAgICB0aGlzLmJyYW5kTmFtZUFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uYnJhbmRDb2xsZWN0ID0gdGhpcy5icmFuZE5hbWVBcnIubWFwKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCgogICAgLy8gICAg5o+Q5Lqk5L+d5a2YCiAgICBhc3luYyBzdWJEYXRhKCkgewogICAgICB0aGlzLiRyZWZzLmFkZF9mb3JtLnZhbGlkYXRlKGFzeW5jIHZhbGlkID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGlmICghKHBhcnNlSW50KHRoaXMuYWRkX2Zvcm0uZ3JhbnRUeXBlKSAhPT0gMjAgJiYgcGFyc2VJbnQodGhpcy5hZGRfZm9ybS5jb3Vwb25UeXBlKSAhPT0gMjApKSB7CiAgICAgICAgICAgIHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZCA9ICIiOwogICAgICAgICAgfQoKICAgICAgICAgIGlmICh0aGlzLmFkZF9mb3JtLmdyYW50VHlwZSAhPT0gMjApIHsKICAgICAgICAgICAgdGhpcy5hZGRfZm9ybS5jdXN0b21lcklkcyA9ICIiOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IHVzZVNob3AgPSB0aGlzLmFkZF9mb3JtLnVzZVNob3AubGVuZ3RoID4gMCA/IHRoaXMuYWRkX2Zvcm0udXNlU2hvcC5qb2luKCIsIikgOiAiIjsKICAgICAgICAgIGNvbnN0IG1pblByaWNlID0gdGhpcy5hZGRfZm9ybS51c2VyVHlwZUlkID09PSAtMSA/IDAgOiB0aGlzLmFkZF9mb3JtLm1pblByaWNlOwogICAgICAgICAgY29uc3QgY3VzdG9tZXJTb3VyY2VJZCA9IHRoaXMuY3VzdG9tZXJSYW5nZSA9PT0gNSA/IDAgOiB0aGlzLmFkZF9mb3JtLmN1c3RvbWVyU291cmNlSWQubGVuZ3RoID4gMCA/IHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZC5qb2luKCIsIikgOiAiIjsKICAgICAgICAgIGNvbnN0IGN1c3RvbWVySWRzID0gdGhpcy5hZGRfZm9ybS5jdXN0b21lcklkcy5sZW5ndGggPiAwID8gdGhpcy5hZGRfZm9ybS5jdXN0b21lcklkcy5qb2luKCIsIikgOiAiIjsKICAgICAgICAgIGNvbnN0IGdvb2RzQ29sbGVjdCA9IHRoaXMuZ29vZHNfbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgICAgfSkuam9pbigiLCIpOwogICAgICAgICAgY29uc3QgZm9ybSA9IHsKICAgICAgICAgICAgbmFtZTogdGhpcy5hZGRfZm9ybS5uYW1lLAogICAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuYWRkX2Zvcm0uc3RhcnRUaW1lLAogICAgICAgICAgICBlbmRUaW1lOiB0aGlzLmFkZF9mb3JtLmVuZFRpbWUsCiAgICAgICAgICAgIHJlZHVjZVByaWNlOiB0aGlzLmFkZF9mb3JtLnJlZHVjZVByaWNlLAogICAgICAgICAgICByZW1hcms6IHRoaXMuYWRkX2Zvcm0ucmVtYXJrLAogICAgICAgICAgICAvLyAndXNlclR5cGVJZCc6IHRoaXMuYWRkX2Zvcm0udXNlclR5cGVJZCwKICAgICAgICAgICAgbWluUHJpY2U6IG1pblByaWNlLAogICAgICAgICAgICAvLyDkvb/nlKjpl6jmp5soLTHkuI3pmZDnlKgpCiAgICAgICAgICAgIGdyYW50VHlwZTogdGhpcy5hZGRfZm9ybS5ncmFudFR5cGUsCiAgICAgICAgICAgIC8vIOWPkeaUvuaWueW8jwogICAgICAgICAgICBjb3Vwb25UeXBlOiB0aGlzLmFkZF9mb3JtLmNvdXBvblR5cGUsCiAgICAgICAgICAgIC8vIOS8mOaDoOWIuOexu+WeiwogICAgICAgICAgICB0b3RhbE51bTogdGhpcy5hZGRfZm9ybS50b3RhbE51bSwKICAgICAgICAgICAgYWxsb3dOdW06IHRoaXMuYWRkX2Zvcm0uYWxsb3dOdW0sCiAgICAgICAgICAgIG11c3RDb25kaXRpb246IHRoaXMuYWRkX2Zvcm0ubXVzdENvbmRpdGlvbiwKICAgICAgICAgICAgLy8g5ruh5YeP6LWg6YCBCiAgICAgICAgICAgIGlzTXV0ZXg6IHRoaXMuYWRkX2Zvcm0uaXNNdXRleCwKICAgICAgICAgICAgLy8g5piv5ZCm5LiO5YW25LuW5rS75Yqo5LqS5palCiAgICAgICAgICAgIGN1c3RvbWVyU291cmNlSWQ6IGN1c3RvbWVyU291cmNlSWQsCiAgICAgICAgICAgIHVzZVNob3A6IHVzZVNob3AsCiAgICAgICAgICAgIC8vIOS9v+eUqOiMg+WbtAogICAgICAgICAgICBjdXN0b21lcklkczogY3VzdG9tZXJJZHMsCiAgICAgICAgICAgIC8vIOmAieaLqeWuouaItwogICAgICAgICAgICBncmFudFN0YXJ0VGltZTogdGhpcy5hZGRfZm9ybS5ncmFudFN0YXJ0VGltZSwKICAgICAgICAgICAgZ3JhbnRFbmRUaW1lOiB0aGlzLmFkZF9mb3JtLmdyYW50RW5kVGltZSwKICAgICAgICAgICAgYXBwbHlSYW5nZTogdGhpcy5hZGRfZm9ybS5hcHBseVJhbmdlLAogICAgICAgICAgICBjYXRlZ29yeUNvbGxlY3Q6IHRoaXMuYWRkX2Zvcm0uY2F0ZWdvcnlDb2xsZWN0LmpvaW4oIiwiKSwKICAgICAgICAgICAgYnJhbmRDb2xsZWN0OiB0aGlzLmFkZF9mb3JtLmJyYW5kQ29sbGVjdC5qb2luKCIsIiksCiAgICAgICAgICAgIGdvb2RzQ29sbGVjdDogZ29vZHNDb2xsZWN0CiAgICAgICAgICB9OwogICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgIGxldCB0YXJnZXQgPSB7fTsKCiAgICAgICAgICBpZiAodGhpcy5tYXJrZXRJZCkgewogICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBlZGl0TWFya2V0KHRoaXMubWFya2V0SWQsIGZvcm0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGFyZ2V0ID0gYXdhaXQgYWRkTWFya2V0KGZvcm0pOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IGRhdGEgPSB0YXJnZXQ7CiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICAgIG1lc3NhZ2U6ICLmj5DkuqTmiJDlip8hIgogICAgICAgICAgfSk7CiAgICAgICAgICB0aGlzLmRlbFBhdXNlU2F2ZSgpOwogICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvTWFya2V0aW5nL01hcmtldGluZ0xpc3QvQ291cG9uIik7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCgogICAgLy8gIOiOt+WPluivpuaDhQogICAgYXN5bmMgZ2V0SW5mbygpIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldEluZm8odGhpcy5tYXJrZXRJZCk7CiAgICAgIHRoaXMuYWRkX2Zvcm0gPSB7IC4uLmRhdGEsCiAgICAgICAgY3VzdG9tZXJJZHM6IGRhdGEuY3VzdG9tZXJJZHMuc3BsaXQoIiwiKS5maWx0ZXIoaXRlbSA9PiBpdGVtID4gMCksCiAgICAgICAgdXNlU2hvcDogZGF0YS51c2VTaG9wLnNwbGl0KCIsIiksCiAgICAgICAgYnJhbmRDb2xsZWN0OiBkYXRhLmJyYW5kQ29sbGVjdC5zcGxpdCgiLCIpLAogICAgICAgIGNhdGVnb3J5Q29sbGVjdDogZGF0YS5jYXRlZ29yeUNvbGxlY3QgPyBkYXRhLmNhdGVnb3J5Q29sbGVjdC5zcGxpdCgiLCIpLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgICB9KSA6IFtdLAogICAgICAgIGN1c3RvbWVyU291cmNlSWQ6IGRhdGEuY3VzdG9tZXJTb3VyY2VJZCA/IGRhdGEuY3VzdG9tZXJTb3VyY2VJZC5zcGxpdCgiLCIpLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiBpdGVtID4gMCkgOiBbXSwKICAgICAgICB1c2VyVHlwZUlkOiBkYXRhLm1pblByaWNlID4gMCA/IDIgOiAtMQogICAgICB9OwoKICAgICAgaWYgKHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZC5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLmN1c3RvbWVyUmFuZ2UgPSA1OwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuY3VzdG9tZXJSYW5nZSA9IDQ7CiAgICAgIH0KCiAgICAgIHRoaXMudXNlU2hvcE5hbWVBcnIgPSBkYXRhLnVzZVNob3BOYW1lLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgbmFtZTogaXRlbSwKICAgICAgICAgIGlkOiBwYXJzZUludCh0aGlzLmFkZF9mb3JtLnVzZVNob3BbaW5kZXhdKQogICAgICAgIH07CiAgICAgIH0pOwogICAgICB0aGlzLmNob29zZUN1c3RvbWVyID0gZGF0YS5jdXN0b21lck5hbWVzID8gZGF0YS5jdXN0b21lck5hbWVzLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgbmFtZTogaXRlbSwKICAgICAgICAgIGlkOiBwYXJzZUludCh0aGlzLmFkZF9mb3JtLmN1c3RvbWVySWRzW2luZGV4XSkKICAgICAgICB9OwogICAgICB9KSA6IFtdOwogICAgICB0aGlzLmJyYW5kTmFtZUFyciA9IGRhdGEuYnJhbmRDb2xsZWN0TmFtZSA/IGRhdGEuYnJhbmRDb2xsZWN0TmFtZS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHRpdGxlOiBpdGVtLAogICAgICAgICAgaWQ6IHBhcnNlSW50KHRoaXMuYWRkX2Zvcm0uYnJhbmRDb2xsZWN0W2luZGV4XSkKICAgICAgICB9OwogICAgICB9KSA6IFtdOwogICAgICB0aGlzLnRpbWUgPSBbZGF0YS5zdGFydFRpbWUgKiAxMDAwLCBkYXRhLmVuZFRpbWUgKiAxMDAwXTsKICAgICAgdGhpcy5ncmFudFRpbWUgPSBbZGF0YS5ncmFudFN0YXJ0VGltZSAqIDEwMDAsIGRhdGEuZ3JhbnRFbmRUaW1lICogMTAwMF07CiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGRhdGEuZ29vZHNDb2xsZWN0TGlzdCB8fCBbXTsKICAgIH0sCgogICAgLy8g5ZWG5ZOB6IyD5Zu0IOWIoOmZpOaMh+WumuWVhuWTgQogICAgZGVsR29vZHMoaW5kZXgpIHsKICAgICAgdGhpcy5nb29kc19saXN0LnNwbGljZShpbmRleCwgMSk7CiAgICB9LAoKICAgIC8vIOWVhuWTgeiMg+WbtCDpgInmi6nmjIflrprllYblk4EKICAgIHNlbEdvb2RzKGdvb2RzKSB7CiAgICAgIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoKSB7CiAgICAgICAgdGhpcy5nb29kc19saXN0ID0gdGhpcy4kX2NvbW1vbi51bmlxdWUodGhpcy5nb29kc19saXN0LmNvbmNhdChnb29kcyksIFsiaWQiXSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5nb29kc19saXN0ID0gZ29vZHM7CiAgICAgIH0KICAgIH0KCiAgfQp9Ow=="},null]}