project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
37 KiB

{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\index.vue","mtime":1638958179919},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkY6L3dvcmtzcGFjZS9nY3kvUkstaHRtbC9SSy1wcm9qZWN0L3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbGlzdEluZm8sIGdldEluZm8sIGRlbEluZm8sIGFkZEluZm8sIHVwZGF0ZUluZm8sIGV4cG9ydEluZm8sIGltcG9ydFRlbXBsYXRlIGFzIF9pbXBvcnRUZW1wbGF0ZSB9IGZyb20gIkAvYXBpL3Byb2plY3QvaW5mbzIiOwppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gIkAvdXRpbHMvYXV0aCI7CmltcG9ydCBCTFlpVHVvQ2hhcnQgZnJvbSAiLi9kYXNoYm9hcmQvQkxZaVR1b0NoYXJ0IjsKaW1wb3J0IEJhckNoYXJ0MyBmcm9tICIuL2Rhc2hib2FyZC9CYXJDaGFydDMiOwppbXBvcnQgQmFyTGluZUNoYXJ0IGZyb20gIi4vZGFzaGJvYXJkL0JhckxpbmVDaGFydCI7CmltcG9ydCB7IHRvdGFsQnVnZXREYXRhLCBsZWZ0MURhdGEsIGxlZnQ3RGF0YSwgY2VudGVyOERhdGEsIGxlZnQ3RGF0YTIsIHN0YXRpc3RpY3MgfSBmcm9tICJAL2FwaS9wcm9qZWN0L2luZm8zIjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJJbmZvIiwKICBjb21wb25lbnRzOiB7CiAgICBCTFlpVHVvQ2hhcnQ6IEJMWWlUdW9DaGFydCwKICAgIEJhckNoYXJ0MzogQmFyQ2hhcnQzLAogICAgQmFyTGluZUNoYXJ0OiBCYXJMaW5lQ2hhcnQKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB6amY6IDAsCiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWRQcm9qZWN0OiB7CiAgICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGC77yI55So5oi35a+85YWl77yJCiAgICAgICAgb3BlbjogZmFsc2UsCiAgICAgICAgLy8g5by55Ye65bGC5qCH6aKY77yI55So5oi35a+85YWl77yJCiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDmmK/lkKbmm7TmlrDlt7Lnu4/lrZjlnKjnmoTnlKjmiLfmlbDmja4KICAgICAgICB1cGRhdGVTdXBwb3J0OiAwLAogICAgICAgIC8vIOiuvue9ruS4iuS8oOeahOivt+axguWktOmDqAogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgIEF1dGhvcml6YXRpb246ICJCZWFyZXIgIiArIGdldFRva2VuKCkKICAgICAgICB9LAogICAgICAgIC8vIOS4iuS8oOeahOWcsOWdgAogICAgICAgIHVybDogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICIvc3lzdGVtL2luZm8vaW1wb3J0RGF0YSIKICAgICAgfSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZDogewogICAgICAgIHRpdGxlOiAiIiwKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDmmK/lkKbnpoHnlKjkuIrkvKAKICAgICAgICBpc1VwbG9hZGluZzogZmFsc2UsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9wcm9qZWN0L2luZm8vY29tbW9uL3VwbG9hZCIsCiAgICAgICAgLy8g5LiK5Lyg55qE5paH5Lu25YiX6KGoCiAgICAgICAgZmlsZUxpc3Q6IFtdCiAgICAgIH0sCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyDjgJDor7floavlhpnlip/og73lkI3np7DjgJHooajmoLzmlbDmja4KICAgICAgaW5mb0xpc3Q6IFtdLAogICAgICAvLyDlvLnlh7rlsYLmoIfpopgKICAgICAgdGl0bGU6ICIiLAogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYIKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIG5hbWVUdU9wZW46IGZhbHNlLAogICAgICB1c2VyTmFtZVR1T3BlbjogZmFsc2UsCiAgICAgIHRvdGFsQnVnZXQ6IG51bGwsCiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSwKICAgICAgc3RhdHVzT3B0aW9uczogW10sCiAgICAgIHR5cGVPcHRpb25zOiBbXSwKICAgICAgc2VjcmV0T3B0aW9uczogW10sCiAgICAgIHNvdXJjZU9wdGlvbnM6IFtdLAogICAgICBjYXRlZ29yeU9wdGlvbnM6IFtdLAogICAgICB5ZXNOb09wdGlvbnM6IFtdLAogICAgICB5ZWFyT3B0aW9uczogW10sCiAgICAgIHhBeGlzQ2VudGVyODogW10sCiAgICAgIHNlcmllc0NlbnRlcjg6IFtdLAogICAgICB4QXhpc0NlbnRlcjc6IFtdLAogICAgICBzZXJpZXNDZW50ZXI3OiBbXSwKICAgICAgYmxYOiBbXSwKICAgICAgYmxMZzogW10sCiAgICAgIGJsU2VyOiBbXSwKICAgICAgb3RUaXRsZTogIiIsCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIGNhdGVnb3J5OiBudWxsLAogICAgICAgIGNvZGU6IG51bGwsCiAgICAgICAgbmFtZTogbnVsbCwKICAgICAgICB1c2VyTmFtZTogbnVsbCwKICAgICAgICB0eXBlOiBudWxsLAogICAgICAgIGRlcGFydG1lbnRJZDogbnVsbCwKICAgICAgICB1c2VySWQ6IG51bGwsCiAgICAgICAgZGVhZGxpbmU6IG51bGwsCiAgICAgICAgdG90YWxPdXRsYXk6IG51bGwsCiAgICAgICAgZmlyc3RPdXRsYXk6IG51bGwsCiAgICAgICAgc2Vjb25kT3V0bGF5OiBudWxsLAogICAgICAgIHN0YXR1czogbnVsbCwKICAgICAgICBiZWdpbkRhdGU6IG51bGwsCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLAogICAgICAgIGJlZ2luRGF0ZUxYOiBudWxsLAogICAgICAgIGNvbXBsZXRlRGF0ZUxYOiBudWxsLAogICAgICAgIGVuZERhdGU6IG51bGwsCiAgICAgICAgYXBwcm92YWxEYXRlOiBudWxsLAogICAgICAgIGlzU2VjcmVjeTogbnVsbCwKICAgICAgICBzZWNyZWN5TGV2ZWw6IG51bGwsCiAgICAgICAgc2VjcmVjeVRlcm06IG51bGwsCiAgICAgICAgaXNUb3BpYzogbnVsbCwKICAgICAgICB0YXNrVGFyZ2V0OiBudWxsLAogICAgICAgIHJlc3VsdFRhcmdldDogbnVsbCwKICAgICAgICBtZXRob2RSb3V0ZTogbnVsbCwKICAgICAgICBwbGFuOiBudWxsLAogICAgICAgIHNwZW5kRXhwbGFpbjogbnVsbCwKICAgICAgICByZWx5SWQ6IG51bGwsCiAgICAgICAgbGFzdERhdGU6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWGI6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzQ3c6IG51bGwsCiAgICAgICAgdG90YWxCdWRnZXQ6IG51bGwsCiAgICAgICAgZmlyc3RCdWRnZXQ6IG51bGwsCiAgICAgICAgc2Vjb25kQnVkZ2V0OiBudWxsLAogICAgICAgIGFwcGx5SWQ6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZTogbnVsbCwKICAgICAgICBwcm9qZWN0U291cmNlQ29tcGFueTogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNad2g6IG51bGwsCiAgICAgICAgaXNBZ3JlZW1lbnQ6IG51bGwsCiAgICAgICAgcmVseVVuaXRIZWFkOiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZHRvY3c6IG51bGwsCiAgICAgICAgdGFza1BlcmlvZDogbnVsbCwKICAgICAgICBvdGhlcnBsYW46IG51bGwsCiAgICAgICAgcG9pbnQ6IG51bGwsCiAgICAgICAgcmVzdWx0OiBudWxsLAogICAgICAgIGludHJvZHVjdGlvbjogbnVsbCwKICAgICAgICBwcm9wcm90aW9uOiBudWxsLAogICAgICAgIHRlcm06IG51bGwsCiAgICAgICAgcGlzaGlTdGF0dXM6IG51bGwsCiAgICAgICAgeWVhclJhZGlvMjogbnVsbCwKICAgICAgICBwcm9QZW9wTmFtZTogbnVsbCwKICAgICAgICB5aXR1b0FyZWE6IG51bGwsCiAgICAgICAgaXNSZXN1bHQ6IG51bGwsCiAgICAgICAgaW1wb3J0YW50S2V5OiBudWxsLAogICAgICAgIHNlYXJjaFZhbHVlOiBudWxsCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgIHJ1bGVzOiB7fSwKICAgICAgZm9ybUNvdW50ZW46IHsKICAgICAgICBuYW1lOiAnJywKICAgICAgICByZWdpb246ICcnLAogICAgICAgIGRhdGUxOiAnJywKICAgICAgICBkYXRlMjogJycsCiAgICAgICAgZGVsaXZlcnk6IGZhbHNlLAogICAgICAgIHR5cGU6IFtdLAogICAgICAgIHJlc291cmNlOiAnJywKICAgICAgICBkZXNjOiAnJwogICAgICB9LAogICAgICBmb3JtTGFiZWxXaWR0aDogJzEyMHB4JwogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS55ZWFyUmFkaW8yKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhclJhZGlvMiA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnllYXJSYWRpbzI7CiAgICB9IGVsc2UgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPSAiMCI7CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LnNlY3JlY3lMZXZlbCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNlY3JlY3lMZXZlbCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnNlY3JlY3lMZXZlbDsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuc2VjcmVjeUxldmVsID0gIjAiOwogICAgfQoKICAgIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS50eXBlKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnR5cGU7CiAgICB9IGVsc2UgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnR5cGUgPSAiMCI7CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LmRlcGFydG1lbnRJZCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlcGFydG1lbnRJZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmRlcGFydG1lbnRJZDsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwYXJ0bWVudElkID0gIjAiOwogICAgfQoKICAgIHRoaXMucXVlcnlQYXJhbXMueWl0dW9Vbml0ID0gdGhpcy4kcm91dGUucXVlcnkueWl0dW9Vbml0OwogICAgdGhpcy5xdWVyeVBhcmFtcy51c2VyTmFtZSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnVzZXJOYW1lOwogICAgdGhpcy5xdWVyeVBhcmFtcy5pbXBvcnRhbnRLZXkgPSB0aGlzLiRyb3V0ZS5xdWVyeS5pbXBvcnRhbnRLZXk7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnlpdHVvQXJlYSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnlpdHVvQXJlYTsgLy8gdGhpcy5xdWVyeVBhcmFtcy55ZWFyUmFkaW8gPSB0aGlzLiRyb3V0ZS5xdWVyeS55ZWFyUmFkaW87CiAgICAvLwogICAgLy8gdGhpcy5xdWVyeVBhcmFtcy5pc1Jlc3VsdCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlzUmVzdWx0OwogICAgLy8gdGhpcy5xdWVyeVBhcmFtcy5zdGF0dXMgPSB0aGlzLiRyb3V0ZS5xdWVyeS5zdGF0dXM7CiAgICAvLwogICAgLy8KCiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAgICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKICAgIGNvbnNvbGUubG9nKHllYXIsIHllYXIgLSAxLCB5ZWFyIC0gMik7CiAgICB0aGlzLnllYXJPcHRpb25zWzBdID0geWVhcjsKICAgIHRoaXMueWVhck9wdGlvbnNbMV0gPSB5ZWFyIC0gMTsKICAgIHRoaXMueWVhck9wdGlvbnNbMl0gPSB5ZWFyIC0gMjsKICAgIHRoaXMueWVhck9wdGlvbnNbM10gPSB5ZWFyIC0gMzsKICAgIHRoaXMueWVhck9wdGlvbnNbNF0gPSB5ZWFyIC0gNDsKICAgIHRoaXMueWVhck9wdGlvbnNbNV0gPSB5ZWFyIC0gNTsKICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgdGhpcy5nZXREaWN0cygicHJvX3R5cGUiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy50eXBlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zZWNyZXRfbGV2ZWwiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zZWNyZXRPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NvdXJjZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNvdXJjZU9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fY2F0ZWdvcnkiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5jYXRlZ29yeU9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fc3RhdHVzIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMuc3RhdHVzT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInN5c195ZXNfbm8iKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy55ZXNOb09wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBzb3J0Q2hhbmdlOiBmdW5jdGlvbiBzb3J0Q2hhbmdlKGNvbHVtbiwgcHJvcCwgb3JkZXIpIHsKICAgICAgLy8gY29uc29sZS5sb2coY29sdW1uLnByb3ApOyAvL3Byb3DmoIfnrb4gPT4gbmlja25hbWUKICAgICAgLy8gY29uc29sZS5sb2coY29sdW1uLm9yZGVyKTsvL2Rlc2NlbmRpbmfpmY3luo/jgIFhc2NlbmRpbmfljYfluo8KICAgICAgaWYgKGNvbHVtbi5wcm9wID09ICJjYXRlZ29yeSIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5T3JkZXIgPSAiMSI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jb2RlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm5hbWVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucHJvcCA9PSAiY29kZSIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNvZGVPcmRlciA9ICIxIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm5hbWVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucHJvcCA9PSAibmFtZSIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNvZGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMubmFtZU9yZGVyID0gIjEiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucHJvcCA9PSAidHlwZSIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNvZGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMubmFtZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlT3JkZXIgPSAiMSI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucHJvcCA9PSAiZGVhZGxpbmUiKSB7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jYXRlZ29yeU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jb2RlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm5hbWVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIjEiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudG90YWxPdXRsYXlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMucHJvamVjdFNvdXJjZU9yZGVyID0gIiI7CiAgICAgIH0gZWxzZSBpZiAoY29sdW1uLnByb3AgPT0gInRvdGFsT3V0bGF5IikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY29kZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5uYW1lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnR5cGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVhZGxpbmVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudG90YWxPdXRsYXlPcmRlciA9ICIxIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3RTb3VyY2VPcmRlciA9ICIiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5wcm9wID09ICJwcm9qZWN0U291cmNlIikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY29kZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5uYW1lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnR5cGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVhZGxpbmVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudG90YWxPdXRsYXlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMucHJvamVjdFNvdXJjZU9yZGVyID0gIjEiOwogICAgICB9CgogICAgICBpZiAoY29sdW1uLm9yZGVyID09ICJhc2NlbmRpbmciKSB7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5vcmRlclNvcnQgPSAiYXNjIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ub3JkZXIgPT0gImRlc2NlbmRpbmciKSB7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5vcmRlclNvcnQgPSAiZGVzYyI7CiAgICAgIH0KCiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIGlzVG9waWNGb3JtYXQ6IGZ1bmN0aW9uIGlzVG9waWNGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMueWVzTm9PcHRpb25zLCByb3cuaXNUb3BpYyk7CiAgICB9LAogICAgaXNTZWNyZWN5Rm9ybWF0OiBmdW5jdGlvbiBpc1NlY3JlY3lGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMueWVzTm9PcHRpb25zLCByb3cuaXNTZWNyZWN5KTsKICAgIH0sCiAgICB0eXBlRm9ybWF0OiBmdW5jdGlvbiB0eXBlRm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnR5cGVPcHRpb25zLCByb3cudHlwZSk7CiAgICB9LAogICAgc2VjcmV0Rm9ybWF0OiBmdW5jdGlvbiBzZWNyZXRGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMuc2VjcmV0T3B0aW9ucywgcm93LnNlY3JlY3lMZXZlbCk7CiAgICB9LAogICAgY2F0ZWdvcnlGb3JtYXQ6IGZ1bmN0aW9uIGNhdGVnb3J5Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLmNhdGVnb3J5T3B0aW9ucywgcm93LmNhdGVnb3J5KTsKICAgIH0sCiAgICBzdGF0dXNGb3JtYXQ6IGZ1bmN0aW9uIHN0YXR1c0Zvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zdGF0dXNPcHRpb25zLCByb3cuc3RhdHVzKTsKICAgIH0sCiAgICBzb3VyY2VGb3JtYXQ6IGZ1bmN0aW9uIHNvdXJjZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zb3VyY2VPcHRpb25zLCByb3cucHJvamVjdFNvdXJjZSk7CiAgICB9LAogICAgZ2V0U3RhdGlzdGljczogZnVuY3Rpb24gZ2V0U3RhdGlzdGljcyhxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIHN0YXRpc3RpY3MocXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBfdGhpczIuempmID0gcmVzcC5kYXRhLnpqZjsKICAgICAgICBjb25zb2xlLmxvZyhyZXNwKTsKICAgICAgICBjb25zb2xlLmxvZyhfdGhpczIuempmKTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDlr7zlhaXmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUltcG9ydDogZnVuY3Rpb24gaGFuZGxlSW1wb3J0KCkgewogICAgICB0aGlzLnVwbG9hZFByb2plY3QudGl0bGUgPSAi6aG555uu5a+85YWlIjsKICAgICAgdGhpcy51cGxvYWRQcm9qZWN0Lm9wZW4gPSB0cnVlOwogICAgfSwKCiAgICAvKiog5p+l6K+i44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR5YiX6KGoICovCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMucXVlcnlQYXJhbXMuc2VjcmVjeUxldmVsLCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CiAgICAgIGxpc3RJbmZvKHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMzLmluZm9MaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICBfdGhpczMudG90YWwgPSByZXNwb25zZS50b3RhbDsKICAgICAgICBfdGhpczMubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgICAgdGhpcy5nZXRTdGF0aXN0aWNzKHRoaXMucXVlcnlQYXJhbXMpOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0KCk7CiAgICB9LAogICAgLy8g6KGo5Y2V6YeN572uCiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHRoaXMuZm9ybSA9IHsKICAgICAgICBpZDogbnVsbCwKICAgICAgICBjYXRlZ29yeTogbnVsbCwKICAgICAgICBjb2RlOiBudWxsLAogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICBkZXBhcnRtZW50SWQ6IG51bGwsCiAgICAgICAgdXNlcklkOiBudWxsLAogICAgICAgIGRlYWRsaW5lOiBudWxsLAogICAgICAgIHRvdGFsT3V0bGF5OiBudWxsLAogICAgICAgIGZpcnN0T3V0bGF5OiBudWxsLAogICAgICAgIHNlY29uZE91dGxheTogbnVsbCwKICAgICAgICBzdGF0dXM6IDAsCiAgICAgICAgYmVnaW5EYXRlOiBudWxsLAogICAgICAgIGNvbXBsZXRlRGF0ZTogbnVsbCwKICAgICAgICBlbmREYXRlOiBudWxsLAogICAgICAgIGFwcHJvdmFsRGF0ZTogbnVsbCwKICAgICAgICBpc1NlY3JlY3k6IG51bGwsCiAgICAgICAgc2VjcmVjeUxldmVsOiBudWxsLAogICAgICAgIHNlY3JlY3lUZXJtOiBudWxsLAogICAgICAgIGlzVG9waWM6IG51bGwsCiAgICAgICAgdGFza1RhcmdldDogbnVsbCwKICAgICAgICByZXN1bHRUYXJnZXQ6IG51bGwsCiAgICAgICAgbWV0aG9kUm91dGU6IG51bGwsCiAgICAgICAgcGxhbjogbnVsbCwKICAgICAgICBzcGVuZEV4cGxhaW46IG51bGwsCiAgICAgICAgcmVseUlkOiBudWxsLAogICAgICAgIGxhc3REYXRlOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1hiOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c0N3OiBudWxsLAogICAgICAgIHRvdGFsQnVkZ2V0OiBudWxsLAogICAgICAgIGZpcnN0QnVkZ2V0OiBudWxsLAogICAgICAgIHNlY29uZEJ1ZGdldDogbnVsbCwKICAgICAgICBhcHBseUlkOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2U6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZUNvbXBhbnk6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWndoOiBudWxsLAogICAgICAgIGlzQWdyZWVtZW50OiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWR0b2N3OiBudWxsLAogICAgICAgIHRhc2tQZXJpb2Q6IG51bGwsCiAgICAgICAgb3RoZXJwbGFuOiBudWxsLAogICAgICAgIHBvaW50OiBudWxsLAogICAgICAgIHJlc3VsdDogbnVsbCwKICAgICAgICBpbnRyb2R1Y3Rpb246IG51bGwsCiAgICAgICAgcHJvcHJvdGlvbjogbnVsbCwKICAgICAgICB0ZXJtOiBudWxsLAogICAgICAgIGNyZWF0ZUJ5OiBudWxsLAogICAgICAgIGNyZWF0ZVRpbWU6IG51bGwsCiAgICAgICAgdXBkYXRlQnk6IG51bGwsCiAgICAgICAgdXBkYXRlVGltZTogbnVsbCwKICAgICAgICBkZWxGbGFnOiBudWxsCiAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAogICAgbG9nb3V0OiBmdW5jdGlvbiBsb2dvdXQoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBfdGhpczQuJGNvbmZpcm0oJ+ehruWumuazqOmUgOW5tumAgOWHuuezu+e7n+WQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNC4kc3RvcmUuZGlzcGF0Y2goJ0xvZ091dCcpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSAnL2luZGV4JzsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKCiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVRdWVyeTogZnVuY3Rpb24gaGFuZGxlUXVlcnkoKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldExlZnQ3KHRoaXMucXVlcnlQYXJhbXMpOwogICAgICB0aGlzLmdldENlbnRlcjgodGhpcy5xdWVyeVBhcmFtcyk7CiAgICAgIHRoaXMuZ2V0TGVmdDEodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgaGFuZGxlTmFtZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVOYW1lUXVlcnkoKSB7CiAgICAgIHRoaXMubmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldExlZnQ3KHRoaXMucXVlcnlQYXJhbXMpOwogICAgICB0aGlzLmdldENlbnRlcjgodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgaGFuZGxlVXNlck5hbWVRdWVyeTogZnVuY3Rpb24gaGFuZGxlVXNlck5hbWVRdWVyeSgpIHsKICAgICAgdGhpcy51c2VyTmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldFRvdGFsQnVnZXQodGhpcy5xdWVyeVBhcmFtcyk7CiAgICAgIHRoaXMuZ2V0TGVmdDEodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgZ2V0VG90YWxCdWdldDogZnVuY3Rpb24gZ2V0VG90YWxCdWdldChxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIHRvdGFsQnVnZXREYXRhKHF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzcC5kYXRhLnRvdGFsQnVkZ2V0KQogICAgICAgIF90aGlzNS50b3RhbEJ1Z2V0ID0gcmVzcC5kYXRhLnRvdGFsQnVkZ2V0OwogICAgICB9KTsKICAgIH0sCiAgICBnZXRMZWZ0MTogZnVuY3Rpb24gZ2V0TGVmdDEocXVlcnlQYXJhbXMpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CgogICAgICBsZWZ0MURhdGEocXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBpZiAocXVlcnlQYXJhbXMueWVhclJhZGlvMiA9PSAnMCcpIHsKICAgICAgICAgIF90aGlzNi5vdFRpdGxlID0gJzIwMTYt5LuKJzsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczYub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM2Lm90VGl0bGUgPSAiMjAxNi3ku4oiOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM2LmJsTGcgPSBbJ+mhueebruaVsCcsICfnu4/otLnmlbAnXTsKICAgICAgICBfdGhpczYuYmxYID0gcmVzcC5kYXRhLnllYXJBcnJheTsKICAgICAgICB2YXIgdGVtcCA9IFtdOwogICAgICAgIHZhciBpdGVtID0ge307CiAgICAgICAgaXRlbS5uYW1lID0gJ+mhueebruaVsCc7CiAgICAgICAgaXRlbS50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbS5kYXRhID0gcmVzcC5kYXRhLm51bUFycmF5OwogICAgICAgIHRlbXAucHVzaChpdGVtKTsKICAgICAgICB2YXIgaXRlbTEgPSB7fTsKICAgICAgICBpdGVtMS5uYW1lID0gJ+e7j+i0ueaVsCc7CiAgICAgICAgaXRlbTEudHlwZSA9ICdsaW5lJzsKICAgICAgICBpdGVtMS55QXhpc0luZGV4ID0gMTsKICAgICAgICBpdGVtMS5kYXRhID0gcmVzcC5kYXRhLmJ1Z2V0QXJyYXk7CiAgICAgICAgdGVtcC5wdXNoKGl0ZW0xKTsKICAgICAgICBfdGhpczYuYmxTZXIgPSB0ZW1wOyAvLyBjb25zb2xlLmxvZyh0aGlzLnNlcmllc0NlbnRlcjUpCiAgICAgIH0pOwogICAgfSwKICAgIGdldExlZnQ3OiBmdW5jdGlvbiBnZXRMZWZ0NyhxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIGxlZnQ3RGF0YShxdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgIGlmIChxdWVyeVBhcmFtcy55ZWFyUmFkaW8yID09ICcwJykgewogICAgICAgICAgX3RoaXM3Lm90VGl0bGUgPSAi6Iez5LuKIjsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczcub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzk5OScpIHsKICAgICAgICAgIF90aGlzNy5vdFRpdGxlID0gIjIwMTYt5LuKIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM3Lm90VGl0bGUgPSBxdWVyeVBhcmFtcy55ZWFyUmFkaW8yICsgIuW5tCI7CiAgICAgICAgfQoKICAgICAgICB2YXIgdGVtcCA9IFtdOwogICAgICAgIHZhciBpdGVtID0ge307CiAgICAgICAgaXRlbS5uYW1lID0gJ+e7j+i0ueaVsCc7CiAgICAgICAgaXRlbS50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbS5iYXJHYXAgPSAiLTEwMCUiOwogICAgICAgIGl0ZW0uZGF0YSA9IHJlc3AuZGF0YS55amZBcnJheTsKICAgICAgICB0ZW1wLnB1c2goaXRlbSk7CiAgICAgICAgdmFyIGl0ZW0xID0ge307CiAgICAgICAgaXRlbTEubmFtZSA9ICflrp7pmYXnu4/otLknOwogICAgICAgIGl0ZW0xLnR5cGUgPSAnYmFyJzsKICAgICAgICBpdGVtMS55QXhpc0luZGV4ID0gMTsKICAgICAgICBpdGVtMS5iYXJHYXAgPSAiLTEwMCUiOwogICAgICAgIGl0ZW0xLmRhdGEgPSByZXNwLmRhdGEueVNqamZBcnJheTsKICAgICAgICB0ZW1wLnB1c2goaXRlbTEpOwogICAgICAgIHZhciBpdGVtMiA9IHt9OwogICAgICAgIGl0ZW0yLm5hbWUgPSAn6aG555uu5pWwJzsKICAgICAgICBpdGVtMi50eXBlID0gJ2xpbmUnOwogICAgICAgIGl0ZW0yLnlBeGlzSW5kZXggPSAyOwogICAgICAgIGl0ZW0yLmRhdGEgPSByZXNwLmRhdGEueU51bUFycmF5OwogICAgICAgIHRlbXAucHVzaChpdGVtMik7CiAgICAgICAgX3RoaXM3LnNlcmllc0NlbnRlcjcgPSB0ZW1wOwogICAgICAgIF90aGlzNy54QXhpc0NlbnRlcjcgPSByZXNwLmRhdGEueEF4aXNBcnJheTsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0Q2VudGVyODogZnVuY3Rpb24gZ2V0Q2VudGVyOChxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIGNlbnRlcjhEYXRhKHF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzAnKSB7CiAgICAgICAgICBfdGhpczgub3RUaXRsZSA9ICLoh7Pku4oiOwogICAgICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMueWVhclJhZGlvMiA9PSAnMjAxNScpIHsKICAgICAgICAgIF90aGlzOC5vdFRpdGxlID0gIjIwMTblubTku6XliY0iOwogICAgICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMueWVhclJhZGlvMiA9PSAnOTk5JykgewogICAgICAgICAgX3RoaXM4Lm90VGl0bGUgPSAiMjAxNi3ku4oiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczgub3RUaXRsZSA9IHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgKyAi5bm0IjsKICAgICAgICB9CgogICAgICAgIF90aGlzOC5zZXJpZXNDZW50ZXI4ID0gcmVzcC5kYXRhLnhBeGlzQXJyYXk7CiAgICAgICAgX3RoaXM4LnhBeGlzQ2VudGVyOCA9IHJlc3AuZGF0YS55QXhpc0FycmF5OwogICAgICB9KTsKICAgIH0sCiAgICB0b1llYXJQYWdlOiBmdW5jdGlvbiB0b1llYXJQYWdlKHllYXIpIHsvLyB0aGlzLiRyb3V0ZXIucHVzaCh7cGF0aDoiL3Byb2plY3QvaW5mb1Nob3cvcXVlcnkiLHF1ZXJ5Ont5ZWFyUmFkaW8yOnllYXJ9fSApOwogICAgfSwKICAgIHRveWl0dW9Vbml0UGFnZTogZnVuY3Rpb24gdG95aXR1b1VuaXRQYWdlKHVuaXQpIHsvLyBsZXQgeWVhclJhZGlvID0gdGhpcy55ZWFyUmFkaW8yOwogICAgICAvLyB0aGlzLiRyb3V0ZXIucHVzaCh7cGF0aDoiL3Byb2plY3QvaW5mb1Nob3cvcXVlcnkiLHF1ZXJ5Ont5aXR1b1VuaXQ6dW5pdCx5ZWFyUmFkaW8yOnllYXJSYWRpb319ICk7CiAgICB9LAogICAgdG9Vc2VyTmFtZVBhZ2U6IGZ1bmN0aW9uIHRvVXNlck5hbWVQYWdlKHVzZXJOYW1lKSB7Ly8gbGV0IHllYXJSYWRpbyA9IHRoaXMueWVhclJhZGlvMjsKICAgICAgLy8gdGhpcy4kcm91dGVyLnB1c2goe3BhdGg6Ii9wcm9qZWN0L2luZm9TaG93L3F1ZXJ5IixxdWVyeTp7dXNlck5hbWU6dXNlck5hbWUseWVhclJhZGlvMjp5ZWFyUmFkaW99fSApOwogICAgfSwKCiAgICAvKiog6YeN572u5oyJ6ZKu5pON5L2cICovCiAgICByZXNldFF1ZXJ5OiBmdW5jdGlvbiByZXNldFF1ZXJ5KCkgewogICAgICB0aGlzLnJlc2V0Rm9ybSgicXVlcnlGb3JtIik7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhclJhZGlvMiA9ICIwIjsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5zZWNyZWN5TGV2ZWwgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZSA9ICIwIjsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZXBhcnRtZW50SWQgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuc2VhcmNoVmFsdWUgPSBudWxsOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMgPSBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgIH0pOwogICAgICB0aGlzLnNpbmdsZSA9IHNlbGVjdGlvbi5sZW5ndGggIT09IDE7CiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aDsKICAgIH0sCgogICAgLyoqIOaWsOWinuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlQWRkOiBmdW5jdGlvbiBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5vcGVuID0gdHJ1ZTsKICAgICAgdGhpcy50aXRsZSA9ICLmt7vliqDjgJDor7floavlhpnlip/og73lkI3np7DjgJEiOwogICAgfSwKCiAgICAvKiog5L+u5pS55oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVVcGRhdGU6IGZ1bmN0aW9uIGhhbmRsZVVwZGF0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CgogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHZhciBpZCA9IHJvdy5pZCB8fCB0aGlzLmlkczsKICAgICAgZ2V0SW5mbyhpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczkuZm9ybSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgX3RoaXM5Lm9wZW4gPSB0cnVlOwogICAgICAgIF90aGlzOS50aXRsZSA9ICLkv67mlLnjgJDor7floavlhpnlip/og73lkI3np7DjgJEiOwogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOaPkOS6pOaMiemSriAqLwogICAgc3VibWl0Rm9ybTogZnVuY3Rpb24gc3VibWl0Rm9ybSgpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzMTAuZm9ybS5pZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHVwZGF0ZUluZm8oX3RoaXMxMC5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICAgIF90aGlzMTAubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXMxMC5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgICAgX3RoaXMxMC5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFkZEluZm8oX3RoaXMxMC5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICAgIF90aGlzMTAubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXMxMC5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgICAgX3RoaXMxMC5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzMTEgPSB0aGlzOwoKICAgICAgdmFyIGlkcyA9IHJvdy5pZDsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6Zmk6aG555uu57yW5Y+35Li6IicgKyByb3cuY29kZSArICci55qE5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZGVsSW5mbyhpZHMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczExLmdldExpc3QoKTsKCiAgICAgICAgX3RoaXMxMS5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKCiAgICAvKiog5a+85Ye65oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwoKICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gdGhpcy5xdWVyeVBhcmFtczsKICAgICAgdGhpcy4kY29uZmlybSgi5piv5ZCm56Gu6K6k5a+85Ye65omA5pyJ44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR5pWw5o2u6aG5PyIsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZXhwb3J0SW5mbyhxdWVyeVBhcmFtcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMxMi5kb3dubG9hZChyZXNwb25zZS5tc2cpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5Lit5aSE55CGCiAgICBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzKGV2ZW50LCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZFByb2plY3QuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGJlZm9yZVByb2plY3RGaWxlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVQcm9qZWN0RmlsZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBpc0x0MjAwTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMzAwOwoKICAgICAgaWYgKCFpc0x0MjAwTSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuS4iuS8oOWkp+Wwj+S4jeiDvei2hei/hyAyMDBNQiEiKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzTHQyMDBNOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOaIkOWKn+WkhOeQhgogICAgaGFuZGxlUHJvamVjdEZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVN1Y2Nlc3MocmVzcG9uc2UsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5pc1VwbG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRyZWZzLnVwbG9hZFByb2plY3QuY2xlYXJGaWxlcygpOwogICAgICB0aGlzLiRhbGVydChyZXNwb25zZS5tc2csICLlr7zlhaXnu5PmnpwiLCB7CiAgICAgICAgZGFuZ2Vyb3VzbHlVc2VIVE1MU3RyaW5nOiB0cnVlCiAgICAgIH0pOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmj5DkuqTkuIrkvKDmlofku7YKICAgIHN1Ym1pdEZpbGVGb3JtOiBmdW5jdGlvbiBzdWJtaXRGaWxlRm9ybSgpIHsKICAgICAgdGhpcy4kcmVmcy51cGxvYWRQcm9qZWN0LnN1Ym1pdCgpOwogICAgfSwKICAgIGltcG9ydFRlbXBsYXRlOiBmdW5jdGlvbiBpbXBvcnRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzMTMgPSB0aGlzOwoKICAgICAgX2ltcG9ydFRlbXBsYXRlKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczEzLmRvd25sb2FkKHJlc3BvbnNlLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIHZpZXdBbm5leEJvb2tGaWxlOiBmdW5jdGlvbiB2aWV3QW5uZXhCb29rRmlsZShyb3cpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leChyb3cucmVzdWx0RmlsZSwgcm93LnJlc3VsdEZpbGVQYXRoKTsKICAgICAgdGhpcy51cGxvYWQub3BlbiA9IHRydWU7CiAgICB9LAogICAgLy/moLzlvI/ljJbkuIrkvKDpmYTku7YKICAgIGZvcm1hdFVwbG9hZEFubmV4OiBmdW5jdGlvbiBmb3JtYXRVcGxvYWRBbm5leChhbm5leE5hbWUsIGFubmV4UGF0aCkgewogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwoKICAgICAgaWYgKGFubmV4UGF0aCAhPSBudWxsICYmIGFubmV4UGF0aCAhPT0gJycpIHsKICAgICAgICB2YXIgYSA9IFtdLAogICAgICAgICAgICBiID0gW107CgogICAgICAgIHRyeSB7CiAgICAgICAgICBhID0gSlNPTi5wYXJzZShhbm5leE5hbWUpOwogICAgICAgICAgYiA9IEpTT04ucGFyc2UoYW5uZXhQYXRoKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBhID0gW107CiAgICAgICAgICBiID0gW107CiAgICAgICAgfQoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0LnB1c2goewogICAgICAgICAgICAnbmFtZSc6IGFbaV0sCiAgICAgICAgICAgICd1cmwnOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgYltpXQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3OiBmdW5jdGlvbiBoYW5kbGVQcmV2aWV3KGZpbGUpIHsKICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgIHZhciBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpOwogICAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lOwogICAgICBhLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICBhLmhyZWYgPSBmaWxlLnVybDsKICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgY29uc29sZS5sb2coZmlsZS5uYW1lKTsKICAgIH0KICB9Cn07"},null]}