a49983e3daac007963046b36bb5abc14.json 34 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\\CashierShop\\CashierShop.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\CashierShop\\CashierShop.vue","mtime":1661913677501},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgS2V5Ym9hcmQgZnJvbSAiLi9jb21wb25lbnQvS2V5Ym9hcmQiOwppbXBvcnQgV3JpdGVPZmZJbmZvIGZyb20gIi4vY29tcG9uZW50L1dyaXRlT2ZmSW5mbyI7CmltcG9ydCBXcml0ZU9mZk9yZGVyIGZyb20gIi4vY29tcG9uZW50L1dyaXRlT2ZmT3JkZXIiOwppbXBvcnQgR29vZHMgZnJvbSAiQC92aWV3cy9DYXNoaWVyU2hvcC9jb21wb25lbnQvR29vZHMiOwppbXBvcnQgVmlwIGZyb20gIi4vY29tcG9uZW50L1ZpcCI7CmltcG9ydCBDYXNoaWVySGVhZGVyIGZyb20gIi4vQ2FzaGllckhlYWRlci52dWUiOwppbXBvcnQgVmlwQWN0aXZpdHkgZnJvbSAiLi9jb21wb25lbnQvVmlwQWN0aXZpdHkiOwppbXBvcnQgRW50cnkgZnJvbSAiLi9jb21wb25lbnQvRW50cnkiOwppbXBvcnQgQWNjb3VudFByaWNlIGZyb20gIi4vY29tcG9uZW50L0FjY291bnRQcmljZSI7CmltcG9ydCBTaG9wR3VpZGUgZnJvbSAiLi9jb21wb25lbnQvc2hvcEd1aWRlIjsKaW1wb3J0IHsgbWFwQWN0aW9ucyB9IGZyb20gInZ1ZXgiOwppbXBvcnQgeyBhY3Rpdml0eUFsbCwgc2F2ZUVudHJ5RGF0YSwgbG9nZ2VyQ29ubmVjdCwgZ2V0U2V0dGluZ3MsIHNlYXJjaEN1c3RvbWVyRGV0YWlscywgZ2V0Q2FydEJ5VXNlciwgdXBkYXRlQnV5TnVtQ2FzaGllciwgZGVsQ2FydENhc2hpZXIsIGNsZWFyQ2FydENhc2hpZXIsIEdvb2RzQnlDYXRlZ29yeSwgY2hhbmdlUHJpY2UgfSBmcm9tICJAL2FwaS9DYXNoaWVyIjsKaW1wb3J0IHsgZ2V0QWxsT3JkZXJPcmRlciwgZ2V0T3JkZXJJbmZvQnlJZCwgT3JkZXJWZXJpZmljYXRpb24sIGdldE9yZGVyQnlWZXJpZnlDb2RlLCBjYXNoaWVyT3JkZXIgfSBmcm9tICJAL2FwaS9PcmRlciI7CmltcG9ydCB7IGdldEFsbFN0YWZmU3RhZmYgfSBmcm9tICJAL2FwaS9EZXBhcnRtZW50IjsKaW1wb3J0IHsgZ2V0QWxsU2hvcCB9IGZyb20gIkAvYXBpL1Nob3AiOwppbXBvcnQgeyB0b1ByaW50IH0gZnJvbSAiQC9hcGkvY29tbW9uIjsKaW1wb3J0IHsgYWRkUmVjZWl2ZWQgfSBmcm9tICJAL2FwaS9GaW5hbmNlIjsKaW1wb3J0IEFjY291bnRUeXBlIGZyb20gIi4uL0ZpbmFuY2UvQWNjb3VudFR5cGUiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkNhc2hpZXJTaG9wIiwKICBjb21wb25lbnRzOiB7CiAgICBDYXNoaWVySGVhZGVyLAogICAgQWNjb3VudFR5cGUsCiAgICBLZXlib2FyZCwKICAgIFdyaXRlT2ZmSW5mbywKICAgIFdyaXRlT2ZmT3JkZXIsCiAgICBHb29kcywKICAgIFZpcCwKICAgIFZpcEFjdGl2aXR5LAogICAgRW50cnksCiAgICBBY2NvdW50UHJpY2UsCiAgICBTaG9wR3VpZGUKICB9LAoKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaW5wdXRfa2V5X251bTogMCwKICAgICAgLy8g6ZSu55uY5by556qX5pWw5a2XCiAgICAgIGNnX2luZGV4OiAwLAogICAgICAvLyDotK3nianovabllYblk4HpgInmi6nkuIvmoIcKICAgICAga2V5Ym9hcmRfbnVtYmVyOiBmYWxzZSwKICAgICAgLy8g6ZSu55uY5by556qXCiAgICAgIGFjdGl2ZU5hbWU6ICJmaXJzdCIsCiAgICAgIGFjY291bnRfc2hvdzogZmFsc2UsCiAgICAgIC8vIOmAieaLqee7k+eul+i0puaItwogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgc2hvcEd1aWRlOiBmYWxzZSwKICAgICAgc2hvcF9ndWlkZTogW10sCiAgICAgIC8vIOWvvOi0reWRmOWIl+ihqAogICAgICBndWlkZV9uYW1lOiAiIiwKICAgICAgLy8g5a+86LSt5ZGY5ZCN56ewCiAgICAgIGd1aWRlOiBbXSwKICAgICAgY29sbGVjdGlvbjogZmFsc2UsCiAgICAgIHRvdGFsOiAwLAogICAgICBwYWdlOiAxLAogICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIHRleHRhcmVhOiAiIiwKICAgICAgc2hvcDogIiIsCiAgICAgIG51bV9saXN0OiBbXSwKICAgICAgdGFyZ2V0X251bTogIiIsCiAgICAgIGlucHV0OiAiIiwKICAgICAga2V5Ym9hcmRfa2V5OiAiIiwKICAgICAgLy8g5qC46ZSA56CBCiAgICAgIGlucHV0X3R3bzogIiIsCiAgICAgIHRpcF9udW06IDEsCiAgICAgIC8vIOW3puS+p+WvvOiIqgogICAgICBudW0xOiAxLAogICAgICBvcmRlcl9udW06ICIiLAogICAgICBudW0yOiAiMSIsCiAgICAgIGxpc3RfanVkZ2U6IGZhbHNlLAogICAgICBsaXN0OiAiIiwKICAgICAgbm9fdGltZTogIiIsCiAgICAgIHByaWNlX251bTogIiIsCiAgICAgIHByaWNlX2NoYW5nZTogZmFsc2UsCiAgICAgIG9yZGVyX2xpc3Q6IFtdLAogICAgICAvLyDorqLljZXliJfooagKICAgICAgb3JkZXJfbm9fa2V5OiAiIiwKICAgICAgLy8g6K6i5Y2V6L6T5YWl5qGG5pCc57Si5YWz6ZSu5a2XCiAgICAgIHdyaXRlb2ZmX2xpc3Q6IHt9LAogICAgICBhbGxfc2hvcDogdHJ1ZSwKICAgICAgc2hvcF9jb206IGZhbHNlLAogICAgICBjb21fcmVjb3JkOiBmYWxzZSwKICAgICAgc3BlY19pZF9ncm91cDogW10sCiAgICAgIG5vd19za3VfZGF0YToge30sCiAgICAgIHNob3Bfc3BlYzogewogICAgICAgIHN1YlByaWNlOiAwLAogICAgICAgIHJlbV9tb25leTogMCwKICAgICAgICBnb29kc0RhdGE6IFtdCiAgICAgIH0sCiAgICAgIHNob3Bfc2VsZWN0OiBbXSwKICAgICAgdmlwX2luZm86IHsKICAgICAgICBjcmVhdGVUaW1lOiAiIiwKICAgICAgICBiaXJ0aGRheTogIiIsCiAgICAgICAgcHJpY2U6ICIiLAogICAgICAgIGludGVncmFsOiAiIiwKICAgICAgICByZW1hcmtzOiAiIiwKICAgICAgICBkZWZhdWx0QWRkcmVzczogewogICAgICAgICAgYXJlYTogewogICAgICAgICAgICBwcm92aW5jZU5hbWU6ICIiLAogICAgICAgICAgICBjaXR5TmFtZTogIiIsCiAgICAgICAgICAgIGRpc3RyaWN0TmFtZTogIiIsCiAgICAgICAgICAgIGFkZHJlc3M6ICIiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICByZW1hcms6ICIiCiAgICAgIH0sCiAgICAgIHZpcF9oYW5kbGU6IGZhbHNlLAogICAgICByZV9jaGFyZ2U6IGZhbHNlLAogICAgICBpbnRlZ3JhbDogZmFsc2UsCiAgICAgIGRldGFpbGVkOiBmYWxzZSwKICAgICAgdmlwX2xvZ2luOiBmYWxzZSwKICAgICAgY29uZmlybV92aXA6IGZhbHNlLAogICAgICByZUNoYXJnZTogZmFsc2UsCiAgICAgIHZpcF9saXN0OiBbewogICAgICAgIHByaWNlOiAxMCwKICAgICAgICBwcmljZV9udW06IDAuMAogICAgICB9LCB7CiAgICAgICAgcHJpY2U6IDMwMCwKICAgICAgICBwcmljZV9udW06IDAuMAogICAgICB9LCB7CiAgICAgICAgcHJpY2U6IDE1LAogICAgICAgIHByaWNlX251bTogMC4wCiAgICAgIH0sIHsKICAgICAgICBwcmljZTogMTIxLAogICAgICAgIHByaWNlX251bTogMC4wCiAgICAgIH1dLAogICAgICBydWxlczogewogICAgICAgIHByaWNlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+35aGr5YaZ6YeR6aKdIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIGludGVncmFsOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+35aGr5YaZ56ev5YiGIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJlbWFya3M6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7floavlhpnlpIfms6giLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgc2hvcF92aXNpYmxlOiBmYWxzZSwKICAgICAgLy8g6YCJ5oup5bqX6ZO65by556qXCiAgICAgIG5vd19zaG9wOiB7fSwKICAgICAgLy8g5b2T5YmN5bqX6ZO65L+h5oGvCiAgICAgIG5vd19zZWxfc2hvcDoge30sCiAgICAgIC8vIOW9k+WJjemAieS4reW6l+mTuuS/oeaBrwogICAgICBjbGFzc2lmeV9saXN0OiBbXSwKICAgICAgLy8g5YiG57G75YiX6KGoCiAgICAgIGdvb2RzSWQ6ICIiLAogICAgICB1c2VyQ2VudGVySWQ6ICIiLAogICAgICBnb29kc0Jhc2ljSWQ6ICIiLAogICAgICBvcmRlcl9kZXRhaWw6IHt9LAogICAgICAvLyDorqLljZXor6bmg4UKICAgICAgb19wYWdlU2l6ZTogMTAsCiAgICAgIG9fdG90YWw6IDAsCiAgICAgIG9fcGFnZTogMSwKICAgICAgY2FzaGllcl9zdGFmZjoge30sCiAgICAgIC8vIOaUtumTtuWRmOaVsOaNrgogICAgICBjYXJ0X3ByaW1hcnk6IHt9LAogICAgICBjdXN0b21lcklkOiAiIiwKICAgICAgY3VzdG9tZXJOYW1lOiAiIiwKICAgICAgY3VzdG9tZXJUeXBlOiAiIiwKICAgICAgcGF5bWVudDogZmFsc2UsCiAgICAgIGNhc2hpZXJfc2V0OiB7CiAgICAgICAgemVyb19zZXQ6IHt9LAogICAgICAgIHBheV9zZXQ6IHt9CiAgICAgIH0sCiAgICAgIC8vIOaUtumTtuWPsOiuvue9rgogICAgICBwYXlfdHlwZTogNiwKICAgICAgLy8g5pS25qy+5pa55byPCiAgICAgIGRpc2NvdW50X2xpc3Q6IFtdLAogICAgICAvLyDkvJjmg6DmtLvliqgKICAgICAgcGF5X2FjY291bnRfbnVtOiAiIiwKICAgICAgLy8g5pS25qy+57uT566X6LSm5oi3CiAgICAgIHBheV9hY2NvdW50X2lkOiAiIiwKICAgICAgLy8g5pS25qy+57uT566X6LSm5oi3aWQKICAgICAgcGF5X2FjY291bnRfbmFtZTogIiIsCiAgICAgIC8vIOaUtuasvue7k+eul+i0puaIt25hbWUKICAgICAgYWNjb3VudF9udW06ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLcKICAgICAgYWNjb3VudE5hbWU6ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLduYW1lCiAgICAgIGFjY291bnRfaWQ6ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLdpZAogICAgICBub3dfb3JkZXJfaWQ6ICIiLAogICAgICAvLyDmlLbmrL7miJDlip/lkI7lrZjlgqjlvZPliY3orqLljZVpZAogICAgICB1c2VyQ291cG9uSWQ6IDAsCiAgICAgIC8vIOWLvumAieS8mOaDoOWIuGlkCiAgICAgIHdlaWdodF92aXNpYmxlOiBmYWxzZSwKICAgICAgZ29vZHNfd2VpZ2h0OiAwLAogICAgICAvLyDllYblk4HmiYvliqjovpPlhaXph43ph48KICAgICAgcmVzdF9lbnRyeTogZmFsc2UgLy8g5o6n5Yi25Yi35paw5Y+W5Y2V5YiX6KGoCgogICAgfTsKICB9LAoKICBhc3luYyBjcmVhdGVkKCkgewogICAgLy8g6I635Y+W5pS26ZO25Y+w6K6+572uCiAgICBhd2FpdCB0aGlzLmdldFNldHRpbmdzKCk7CiAgICB0aGlzLm5vX3RpbWUgPSB0aGlzLiRfY29tbW9uLmZvcm1hdERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkpOwoKICAgIGlmICh0aGlzLiRzdG9yZS5nZXR0ZXJzWyJNVXNlci9jYXNoaWVyU2hvcCJdLmlkKSB7CiAgICAgIHRoaXMubm93X3NlbF9zaG9wID0gdGhpcy4kc3RvcmUuZ2V0dGVyc1siTVVzZXIvY2FzaGllclNob3AiXTsgLy8g6K+35rGC5LiO6K+l5bqX6ZO655u45YWz5pWw5o2uCgogICAgICB0aGlzLmxvZ2dlckNvbm5lY3QoKTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIOiOt+WPluWVhumTuuWIl+ihqAogICAgICBhd2FpdCB0aGlzLmdldEFsbFNob3AoKTsKICAgIH0KICB9LAoKICBtZXRob2RzOiB7IC4uLm1hcEFjdGlvbnMoewogICAgICBjaGFuZ2VDYXNoaWVyU2hvcDogIk1Vc2VyL2NoYW5nZUNhc2hpZXJTaG9wIgogICAgfSksCgogICAgZ29vZHNJZEZuKGdvb2RzSWQpIHsKICAgICAgdGhpcy5nb29kc0lkID0gZ29vZHNJZDsKICAgIH0sCgogICAgaW5wdXRLZXkoaW5wdXRfa2V5X251bSkgewogICAgICB0aGlzLmlucHV0X2tleV9udW0gPSBpbnB1dF9rZXlfbnVtOwogICAgICBjb25zb2xlLmxvZyhpbnB1dF9rZXlfbnVtKTsKICAgIH0sCgogICAgdmlwSW5mbyh2aXBfaW5mbykgewogICAgICB0aGlzLnZpcF9pbmZvID0gdmlwX2luZm87CiAgICAgIHRoaXMudXNlckNlbnRlcklkID0gdmlwX2luZm8udXNlckNlbnRlcklkOwogICAgfSwKCiAgICBhY3RpdmVuYW1lKGFjdGl2ZU5hbWUpIHsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gYWN0aXZlTmFtZTsKICAgIH0sCgogICAgc2hvcEd1aWRlRm4oZ3VpZGUpIHsKICAgICAgdGhpcy5ndWlkZSA9IGd1aWRlOwogICAgfSwKCiAgICAvLyDliIfmjaLllYbpk7rlkI7or7fmsYLkuI7or6Xlupfpk7rnm7jlhbPmlbDmja4KICAgIGFzeW5jIHNob3BDaGFuZ2UoKSB7CiAgICAgIC8vIOWVhuWTgeWIl+ihqAogICAgICBhd2FpdCB0aGlzLkdvb2RzQnlDYXRlZ29yeSgpOyAvLyDotK3nianovabor6bmg4UKCiAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgfSwKCiAgICAvLyDojrflj5bmlLbpk7blj7Dorr7nva4KICAgIGFzeW5jIGdldFNldHRpbmdzKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0U2V0dGluZ3MoKTsKCiAgICAgIGlmIChkYXRhLmFkZF9mb3JtKSB7CiAgICAgICAgdGhpcy5jYXNoaWVyX3NldCA9IGRhdGEuYWRkX2Zvcm07CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgR29vZHNCeUNhdGVnb3J5KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgR29vZHNCeUNhdGVnb3J5KHsKICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsCiAgICAgICAgY2F0ZWdvcnlJZDogdGhpcy5jYXRlX2lkLAogICAgICAgIGtleXdvcmQ6IHRoaXMuc2hvcCwKICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgIHNob3BJZDogdGhpcy5ub3dfc2VsX3Nob3AuaWQKICAgICAgfSk7CiAgICAgIHRoaXMuc2hvcF9zaG9wID0gZGF0YS5kYXRhOwogICAgICB0aGlzLnRvdGFsID0gZGF0YS5wYWdlVG90YWw7CiAgICB9LAoKICAgIC8vIOaUtumTtuWPs+i+uXRhYuWIh+aNogogICAgaGFuZGxlQ2xpY2sodGFiLCBldmVudCkgewogICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlTmFtZSkgewogICAgICAgIC8vIOWVhuWTgQogICAgICAgIGNhc2UgImZpcnN0IjoKICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIOS8muWRmAoKICAgICAgICBjYXNlICJzZWNvbmQiOgogICAgICAgICAgLy8g6I635Y+W5a6i5oi357G75Z6LCiAgICAgICAgICBicmVhazsKICAgICAgICAvLyDkvJjmg6DmtLvliqgKCiAgICAgICAgY2FzZSAidGhpcmQiOgogICAgICAgICAgLy8gdGhpcy5hY3Rpdml0eUFsbCgpCiAgICAgICAgICBicmVhazsKICAgICAgICAvLyDlj5bljZUKCiAgICAgICAgY2FzZSAiZm91cnRoIjoKICAgICAgICAgIC8vIOaMguWNleWIl+ihqAogICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8g55u05o6l5pS25qy+CgogICAgICAgIGNhc2UgImZpdmVyIjoKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9LAoKICAgIC8vIOS/ruaUuei0reeJqei9puaVsOmHjwogICAgaGFuZGxlQ2hhbmdlKHZhbHVlLCBjYXJ0SWQpIHsKICAgICAgdGhpcy51cGRhdGVCdXlOdW1DYXNoaWVyKHZhbHVlLCBjYXJ0SWQpOwogICAgICBjb25zb2xlLmxvZyhjYXJ0SWQpOwogICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7CiAgICB9LAoKICAgIC8vIOaJk+W8gOmUruebmAogICAgb3BlbktleWJvYXJkKGluZGV4KSB7CiAgICAgIHRoaXMua2V5Ym9hcmRfbnVtYmVyID0gdHJ1ZTsKICAgICAgdGhpcy5jZ19pbmRleCA9IGluZGV4OwogICAgfSwKCiAgICBrZXlib2FyZENvbmZpcm0oZSwgbnVtKSB7CiAgICAgIGlmIChudW0gPT09ICJ4IikgewogICAgICAgIHRoaXMuaW5wdXRfa2V5X251bSA9IHRoaXMuaW5wdXRfa2V5X251bS5zdWJzdHJpbmcoMCwgdGhpcy5pbnB1dF9rZXlfbnVtLmxlbmd0aCAtIDEpOwogICAgICB9IGVsc2UgaWYgKG51bSA9PT0gIua4hemZpCIpIHsKICAgICAgICB0aGlzLmlucHV0X2tleV9udW0gPSAiIjsKICAgICAgfSBlbHNlIGlmIChudW0gPT09ICLnoa7lrpoiKSB7CiAgICAgICAgaWYgKHRoaXMuY2dfaW5kZXggPj0gMCkgewogICAgICAgICAgbGV0IGdvb2RzID0gdGhpcy5zaG9wX3NwZWMuZ29vZHNEYXRhWzBdLnNob3BHb29kc0RhdGFbdGhpcy5jZ19pbmRleF07CgogICAgICAgICAgaWYgKE51bWJlcih0aGlzLmlucHV0X2tleV9udW0pID4gTnVtYmVyKGdvb2RzLmludmVudG9yeU51bSkpIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLlupPlrZjkuI3otrMiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGdvb2RzLmJ1eU51bSA9IE51bWJlcih0aGlzLmlucHV0X2tleV9udW0pOwogICAgICAgICAgdGhpcy51cGRhdGVCdXlOdW1DYXNoaWVyKE51bWJlcih0aGlzLmlucHV0X2tleV9udW0pLCBnb29kcy5jYXJ0SWQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLm51bTIgPSBOdW1iZXIodGhpcy5pbnB1dF9rZXlfbnVtKTsKICAgICAgICAgIHRoaXMuYWRkQ2FydCgpOwogICAgICAgIH0KCiAgICAgICAgdGhpcy5rZXlib2FyZF9udW1iZXIgPSBmYWxzZTsKICAgICAgICB0aGlzLmlucHV0X2tleV9udW0gPSAwOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaW5wdXRfa2V5X251bSArPSBudW07CiAgICAgIH0KICAgIH0sCgogICAgLy8g5L+u5pS56LSt54mp6L2m5pWw6YePCiAgICBhc3luYyB1cGRhdGVCdXlOdW1DYXNoaWVyKHZhbHVlLCBjYXJ0SWQpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZUJ1eU51bUNhc2hpZXIoY2FydElkLCB7CiAgICAgICAgdXNlckNlbnRlcklkOiB0aGlzLnVzZXJDZW50ZXJJZCwKICAgICAgICBidXlOdW06IHZhbHVlCiAgICAgIH0pOwogICAgICB0aGlzLmdldENhcnRCeVVzZXIoKTsKICAgIH0sCgogICAgLy8g5p+l6K+i5Lya5ZGY5L+h5oGvCiAgICBhc3luYyBzZWFyY2hDdXN0b21lckRldGFpbHMoKSB7CiAgICAgIGlmICghdGhpcy5pbnB1dCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl5Lya5ZGY5omL5py65Y+3Iik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCByZSA9IC9eMVszNDU2Nzg5XVxkezl9JC87IC8vIOato+WImeihqOi+vuW8jwoKICAgICAgaWYgKCFyZS50ZXN0KHRoaXMuaW5wdXQpKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLmiYvmnLrlj7fmoLzlvI/mnInor6/vvIzor7fph43mlrDovpPlhaUhIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBkYXRhID0gYXdhaXQgc2VhcmNoQ3VzdG9tZXJEZXRhaWxzKHsKICAgICAgICBtb2JpbGU6IHRoaXMuaW5wdXQKICAgICAgfSk7CgogICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YS5kYXRhKSA9PT0gInt9IikgewogICAgICAgIC8vIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+acquafpeaJvuWIsOS8muWRmOS/oeaBrycpCiAgICAgICAgdGhpcy52aXBfaGFuZGxlID0gZmFsc2U7CiAgICAgICAgdGhpcy52aXBfbG9naW4gPSB0cnVlOwogICAgICAgIHRoaXMudXNlckNlbnRlcklkID0gIiI7CiAgICAgICAgdGhpcy5jdXN0b21lcklkID0gIiI7CiAgICAgICAgdGhpcy5jdXN0b21lck5hbWUgPSAiIjsKICAgICAgICB0aGlzLmN1c3RvbWVyVHlwZSA9ICIiOwogICAgICAgIHRoaXMudmlwX2luZm8gPSB7fTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnZpcF9oYW5kbGUgPSB0cnVlOwogICAgICAgIHRoaXMudmlwX2xvZ2luID0gdHJ1ZTsKICAgICAgICB0aGlzLnZpcF9pbmZvID0gZGF0YS5kYXRhOwogICAgICAgIHRoaXMudXNlckNlbnRlcklkID0gZGF0YS5kYXRhLnVzZXJDZW50ZXJJZDsKICAgICAgICB0aGlzLmN1c3RvbWVySWQgPSBkYXRhLmRhdGEuY3VzdG9tZXJJZDsKICAgICAgICB0aGlzLmN1c3RvbWVyTmFtZSA9IGRhdGEuZGF0YS5uYW1lOwogICAgICAgIHRoaXMuY3VzdG9tZXJUeXBlID0gZGF0YS5kYXRhLmN1c3RvbWVyVHlwZTsKICAgICAgICB0aGlzLmdldENhcnRCeVVzZXIoKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDliKDpmaTotK3nianovaYKICAgIGRlbGVjdFNob3AoY2FydElkKSB7CiAgICAgIC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0LmNhcnRJZCkKICAgICAgdGhpcy4kY29uZmlybSgi5oKo56Gu6K6k5Yig6Zmk6L+Z5Liq6K6i5Y2V5ZCX77yfIiwgIuaPkOekuiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBkZWxDYXJ0Q2FzaGllcih7CiAgICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgICAgY2FydElkOiBjYXJ0SWQKICAgICAgICB9KTsKICAgICAgICB0aGlzLnNob3Bfc3BlYy5nb29kc0RhdGFbMF0uc2hvcEdvb2RzRGF0YS5zcGxpY2UoY2FydElkLCAxKTsKICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaTjeS9nOaIkOWKnyIpOwogICAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAiaW5mbyIsCiAgICAgICAgICBtZXNzYWdlOiAi5bey5Y+W5raI5pON5L2cIgogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCgogICAgYXN5bmMgZ2V0Q2FydEJ5VXNlcih1c2VyQ2VudGVySWQpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldENhcnRCeVVzZXIoewogICAgICAgIHVzZXJDZW50ZXJJZDogdXNlckNlbnRlcklkIHx8IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgIHVzZXJDb3Vwb25JZDogdGhpcy51c2VyQ291cG9uSWQKICAgICAgfSk7CgogICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhLmRhdGEpKSB7CiAgICAgICAgdGhpcy5zaG9wX3NwZWMgPSB7CiAgICAgICAgICBzdWJQcmljZTogMCwKICAgICAgICAgIHJlbV9tb25leTogMCwKICAgICAgICAgIGdvb2RzRGF0YTogW10KICAgICAgICB9OwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgdGhpcy5zaG9wX3NwZWMgPSBkYXRhLmRhdGE7CgogICAgICBpZiAoZGF0YS5kYXRhLmNvdXBvbikgewogICAgICAgIGRhdGEuZGF0YS5jb3Vwb24uZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIGlmIChkYXRhLmRhdGEudXNlQ291cG9uLmlkKSB7CiAgICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGl0ZW0uaWQgPT09IGRhdGEuZGF0YS51c2VDb3Vwb24uaWQ7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLmRpc2NvdW50X2xpc3QgPSBkYXRhLmRhdGEuY291cG9uOwogICAgICB9CiAgICB9LAoKICAgIC8vIOa4heepuui0reeJqei9pgogICAgYXN5bmMgY2xlYXJDYXJ0KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgY2xlYXJDYXJ0Q2FzaGllcih7CiAgICAgICAgdXNlckNlbnRlcklkOiB0aGlzLnVzZXJDZW50ZXJJZAogICAgICB9KTsKICAgICAgdGhpcy5zaG9wX3NwZWMuZ29vZHNEYXRhWzBdLnNob3BHb29kc0RhdGEgPSBbXTsKICAgICAgdGhpcy5nZXRDYXJ0QnlVc2VyKCk7CiAgICB9LAoKICAgIC8vIOaguOmUgOeggei+k+WFpemUruebmAogICAgYXN5bmMgbnVtRm5PbmUoZSwgbnVtKSB7CiAgICAgIGlmICghWyJ4IiwgIua4hemZpCIsICLnoa7lrpoiXS5pbmNsdWRlcyhudW0pKSB7CiAgICAgICAgdGhpcy5udW1fbGlzdC5wdXNoKG51bSk7CiAgICAgIH0KCiAgICAgIGlmIChudW0gPT09ICJ4IikgewogICAgICAgIHRoaXMua2V5Ym9hcmRfa2V5ID0gdGhpcy5rZXlib2FyZF9rZXkuc3Vic3RyaW5nKDAsIHRoaXMua2V5Ym9hcmRfa2V5Lmxlbmd0aCAtIDEpOwogICAgICB9IGVsc2UgaWYgKG51bSA9PT0gIua4hemZpCIpIHsKICAgICAgICB0aGlzLmtleWJvYXJkX2tleSA9ICIiOwogICAgICAgIHRoaXMubnVtX2xpc3QgPSBbXTsKICAgICAgfSBlbHNlIGlmIChudW0gPT09ICLnoa7lrpoiKSB7CiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldE9yZGVyQnlWZXJpZnlDb2RlKHsKICAgICAgICAgIHZlcmlmeUNvZGU6IHRoaXMua2V5Ym9hcmRfa2V5CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy53cml0ZW9mZl9saXN0ID0gZGF0YS5kYXRhOwogICAgICAgIHRoaXMua2V5Ym9hcmRfa2V5ID0gIiI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5rZXlib2FyZF9rZXkgKz0gbnVtOwogICAgICB9CiAgICB9LAoKICAgIC8vIOeOsOmHkeaUr+S7mOi+k+WFpemUruebmAogICAgcGF5Q2FsY3VsYXRvcihlKSB7CiAgICAgIGNvbnN0IHRhcmdldE51bSA9IGUudGFyZ2V0LnRleHRDb250ZW50OwogICAgICBsZXQgbnVtID0gdGhpcy5zaG9wX3NwZWMudG90YWxNb25leS50b1N0cmluZygpOwoKICAgICAgaWYgKHRhcmdldE51bSA9PT0gIua4hemZpCIpIHsKICAgICAgICBudW0gPSAwOwogICAgICB9IGVsc2UgaWYgKHRhcmdldE51bSA9PT0gIuehruWumiIpIHsKICAgICAgICB0aGlzLnBheW1lbnRGbigpOwogICAgICB9IGVsc2UgaWYgKHRhcmdldE51bSA9PT0gIngiKSB7CiAgICAgICAgbnVtID0gbnVtLnN1YnN0cmluZygwLCBudW0ubGVuZ3RoIC0gMSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbnVtICs9IHRhcmdldE51bTsKICAgICAgfQoKICAgICAgdGhpcy5zaG9wX3NwZWMudG90YWxNb25leSA9IG51bTsKICAgIH0sCgogICAgLy8g6K6i5Y2V54K55Ye75LqL5Lu2CiAgICBvcmRlckV2ZW50KGl0ZW0pIHsKICAgICAgdGhpcy5nZXRPcmRlckluZm9CeUlkKGl0ZW0udXNlckNlbnRlcklkLCBpdGVtLmlkKTsKICAgIH0sCgogICAgZGlhTG9nKCkgewogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgfSwKCiAgICBkZWxldGVGbigpIHsKICAgICAgdGhpcy5wcmljZV9jaGFuZ2UgPSBmYWxzZTsKICAgIH0sCgogICAgbGlzdEZuKCkgewogICAgICB0aGlzLnRpcF9udW0gPSAzOwogICAgICB0aGlzLmdldEFsbE9yZGVyT3JkZXIoKTsKICAgIH0sCgogICAgLy8g6K6i5Y2V5YiX6KGo5YiG6aG15YiH5o2iCiAgICBvUGFnZUNoYW5nZShwYWdlKSB7CiAgICAgIHRoaXMub19wYWdlID0gcGFnZTsKICAgICAgdGhpcy5nZXRBbGxPcmRlck9yZGVyKCk7CiAgICB9LAoKICAgIC8vIOiuouWNleaQnOe0ogogICAgc2VyY2hPcmRlcigpIHsKICAgICAgdGhpcy5vUGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgLy8g6K6i5Y2V5YiX6KGoCiAgICBhc3luYyBnZXRBbGxPcmRlck9yZGVyKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsT3JkZXJPcmRlcih7CiAgICAgICAgcGFnZTogdGhpcy5vX3BhZ2UsCiAgICAgICAgcGFnZVNpemU6IHRoaXMub19wYWdlU2l6ZSwKICAgICAgICBzZWFyY2g6IHsKICAgICAgICAgIG9yZGVyVHlwZTogMjQsCiAgICAgICAgICBzaG9wSWQ6IHRoaXMubm93X3NlbF9zaG9wLmlkLAogICAgICAgICAgbm86IHRoaXMub3JkZXJfbm9fa2V5CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5vcmRlcl9saXN0ID0gZGF0YS5kYXRhOwogICAgICB0aGlzLm9fdG90YWwgPSBkYXRhLnBhZ2VUb3RhbDsKICAgIH0sCgogICAgLy8g5Yib5bu66K6i5Y2VCiAgICBvcmRlckNhc2hpZXIoKSB7CiAgICAgIGlmICghdGhpcy51c2VyQ2VudGVySWQpIHsKICAgICAgICB0aGlzLiRjb25maXJtKCLorqLljZXmnKrnu5HlrprkvJrlkZjvvIzmmK/lkKbpnIDopoHnu5HlrprkvJrlkZjov5vooYznu5Pnrpc/IiwgIuaPkOekuiIsIHsKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi5Lya5ZGY55m75b2VIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLot7Pov4ciLAogICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAic2Vjb25kIjsKICAgICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSB0cnVlOwogICAgICAgICAgdGhpcy5yZV9jaGFyZ2UgPSBmYWxzZTsKICAgICAgICAgIHRoaXMucHJpY2VfY2hhbmdlID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gdHJ1ZTsKICAgICAgICB0aGlzLnJlX2NoYXJnZSA9IGZhbHNlOwogICAgICAgIHRoaXMucHJpY2VfY2hhbmdlID0gZmFsc2U7CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgcGF5bWVudEZuKCkgewogICAgICBpZiAoWzUsIDZdLmluY2x1ZGVzKHRoaXMucGF5X3R5cGUpKSB7CiAgICAgICAgaWYgKCF0aGlzLnBheV9hY2NvdW50X251bSkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nnu5PnrpfotKbmiLciKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGNvbnN0IGd1aWRlVWlkcyA9IHRoaXMuZ3VpZGUubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLnVzZXJDZW50ZXJJZDsKICAgICAgfSkuam9pbigiLCIpOwogICAgICBjb25zdCBhY2NvdW50TGlzdCA9IFt7CiAgICAgICAgYWNjb3VudElkOiB0aGlzLnBheV9hY2NvdW50X2lkLAogICAgICAgIGFjY291bnROdW1iZXI6IHRoaXMucGF5X2FjY291bnRfbnVtLAogICAgICAgIGFjY291bnROYW1lOiB0aGlzLnBheV9hY2NvdW50X25hbWUsCiAgICAgICAgbW9uZXk6IHRoaXMuc2hvcF9zcGVjLnRvdGFsTW9uZXksCiAgICAgICAgZGlzY291bnRNb25leTogdGhpcy4kTlAucGx1cyh0aGlzLnNob3Bfc3BlYy5wcmVmZXJlbnRpYWwgfHwgMCwgdGhpcy5zaG9wX3NwZWMuc3ViUHJpY2UgfHwgMCksCiAgICAgICAgZmluYWxNb25leTogdGhpcy5zaG9wX3NwZWMucGF5TW9uZXksCiAgICAgICAgcGF5V2F5OiA0LAogICAgICAgIHJlbWFyazogIiIKICAgICAgfV07CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjYXNoaWVyT3JkZXIoewogICAgICAgIGFjY291bnRMaXN0OiBhY2NvdW50TGlzdCwKICAgICAgICBjdXJyZW50QWNjb3VudE5hbWU6IHRoaXMucGF5X2FjY291bnRfbmFtZSwKICAgICAgICBwYXlUeXBlOiB0aGlzLnBheV90eXBlLAogICAgICAgIHRvdGFsTW9uZXk6IHRoaXMuc2hvcF9zcGVjLnRvdGFsTW9uZXksCiAgICAgICAgZ3VpZGVVaWRzOiBndWlkZVVpZHMsCiAgICAgICAgcGF5QW1vdW50OiB0aGlzLnNob3Bfc3BlYy5wYXlNb25leSwKICAgICAgICBjdXN0b21lcklkOiB0aGlzLmN1c3RvbWVySWQsCiAgICAgICAgdXNlckNlbnRlcklkOiB0aGlzLnVzZXJDZW50ZXJJZCwKICAgICAgICBjdXN0b21lck5hbWU6IHRoaXMuY3VzdG9tZXJOYW1lLAogICAgICAgIGN1c3RvbWVyVHlwZTogdGhpcy5jdXN0b21lclR5cGUsCiAgICAgICAgc291cmNlOiA0LAogICAgICAgIGRlbGl2ZXJ5VHlwZTogMiwKICAgICAgICBpc0VuYWJsZVByaW50OiA0LAogICAgICAgIG9yZGVyUmVtYXJrOiB0aGlzLnRleHRhcmVhLAogICAgICAgIGdvb2RzRGF0YTogdGhpcy5zaG9wX3NwZWMsCiAgICAgICAgb3BlcmF0b3JOYW1lOiB0aGlzLnVzZXJOYW1lCiAgICAgIH0pOwogICAgICB0aGlzLm5vd19vcmRlcl9pZCA9IGRhdGEuZGF0YTsKICAgICAgdGhpcy5wYXltZW50ID0gdHJ1ZTsKICAgICAgdGhpcy5jb2xsZWN0aW9uID0gZmFsc2U7CiAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwoKICAgICAgaWYgKHRoaXMuaW5wdXQpIHsKICAgICAgICB0aGlzLnNlYXJjaEN1c3RvbWVyRGV0YWlscygpOwogICAgICB9CiAgICB9LAoKICAgIC8vIOaUueS7twogICAgYXN5bmMgZ2V0Q2FydChpdGVtUCkgewogICAgICB0aGlzLmNvbGxlY3Rpb24gPSBmYWxzZTsKICAgICAgdGhpcy5wcmljZV9jaGFuZ2UgPSB0cnVlOwogICAgICB0aGlzLnJlX2NoYXJnZSA9IGZhbHNlOwogICAgICB0aGlzLmRldGFpbGVkID0gZmFsc2U7CiAgICAgIHRoaXMuY2FydF9wcmltYXJ5ID0gaXRlbVA7CiAgICB9LAoKICAgIGFzeW5jIHByaW1hcnlDYXJ0KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgY2hhbmdlUHJpY2UoewogICAgICAgIHVzZXJDZW50ZXJJZDogdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgZ29vZHNJZDogdGhpcy5jYXJ0X3ByaW1hcnkuZ29vZHNJZCwKICAgICAgICBza3VJZDogdGhpcy5jYXJ0X3ByaW1hcnkuc2t1SWQsCiAgICAgICAgY2hhbmdlUHJpY2U6IHRoaXMucHJpY2VfbnVtCiAgICAgIH0pOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaTjeS9nOaIkOWKnyIpOwogICAgICB0aGlzLmdldENhcnRCeVVzZXIoKTsKICAgIH0sCgogICAgLy8g5by556qX5YWz6ZetCiAgICBjbG9zZSgpIHsKICAgICAgdGhpcy5yZUNoYXJnZSA9IGZhbHNlOwogICAgICB0aGlzLmludGVncmFsID0gZmFsc2U7CiAgICAgIHRoaXMuc2hvcEd1aWRlID0gZmFsc2U7CiAgICB9LAoKICAgIC8vIOWFheWAvAogICAgcmVDaGFyZ2VGbigpIHsKICAgICAgdGhpcy5yZUNoYXJnZSA9IGZhbHNlOwogICAgICB0aGlzLnJlX2NoYXJnZSA9IHRydWU7CiAgICB9LAoKICAgIC8vIOW6l+mTuuWIl+ihqAogICAgYXN5bmMgZ2V0QWxsU2hvcCgpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldEFsbFNob3AoewogICAgICAgIHBhZ2U6IHRoaXMucGFnZSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZQogICAgICB9KTsKICAgICAgdGhpcy5zaG9wX3NlbGVjdCA9IGRhdGEuZGF0YTsKICAgICAgdGhpcy5zaG9wX3Zpc2libGUgPSB0cnVlOwogICAgfSwKCiAgICAvLyDmlLbpk7blj7DnmbvlvZUg5Lqk5o6l55m76ZmG6K6w5b2VCiAgICBhc3luYyBsb2dnZXJDb25uZWN0KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgbG9nZ2VyQ29ubmVjdCh7CiAgICAgICAgc2hvcElkOiB0aGlzLm5vd19zZWxfc2hvcC5pZAogICAgICB9KTsKICAgICAgdGhpcy5jYXNoaWVyX3N0YWZmID0gZGF0YS5kYXRhOwogICAgICB0aGlzLnNob3BDaGFuZ2UoKTsKICAgIH0sCgogICAgLy8g5qC46ZSA6K6i5Y2VCiAgICBhc3luYyBwcmltYXJ5T3JkZXIoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBPcmRlclZlcmlmaWNhdGlvbih0aGlzLndyaXRlb2ZmX2xpc3QuaWQpOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaguOmUgOaIkOWKnyIpOwogICAgfSwKCiAgICAvLyDpgInmi6nlupfpk7oKICAgIHNlbFNob3Aocm93KSB7CiAgICAgIHRoaXMubm93X3Nob3AgPSByb3c7CiAgICB9LAoKICAgIC8vIOmAieaLqeW6l+mTuiDnoa7orqQKICAgIHNob3BDb25maXJtKCkgewogICAgICB0aGlzLm5vd19zZWxfc2hvcCA9IHRoaXMubm93X3Nob3A7CiAgICAgIHRoaXMuc2hvcF92aXNpYmxlID0gZmFsc2U7IC8vIOS6pOaOpeeZu+mZhuiusOW9lQoKICAgICAgdGhpcy5sb2dnZXJDb25uZWN0KCk7CiAgICAgIHRoaXMuY2hhbmdlQ2FzaGllclNob3AodGhpcy5ub3dfc2VsX3Nob3ApOwogICAgfSwKCiAgICAvLyDojrflj5borqLljZXor6bmg4UKICAgIGFzeW5jIGdldE9yZGVySW5mb0J5SWQodXNlckNlbnRlcklkLCBpZCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0T3JkZXJJbmZvQnlJZCh1c2VyQ2VudGVySWQsIHsKICAgICAgICBvcmRlcklkOiBpZAogICAgICB9KTsKICAgICAgdGhpcy5vcmRlcl9kZXRhaWwgPSBkYXRhOwogICAgICB0aGlzLm5vd19vcmRlcl9pZCA9IGlkOwogICAgfSwKCiAgICAvLyDmjILljZUKICAgIGFzeW5jIHNhdmVFbnRyeURhdGEoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzYXZlRW50cnlEYXRhKHsKICAgICAgICBzaG9wSWQ6IHRoaXMubm93X3NlbF9zaG9wLmlkLAogICAgICAgIGVudHJ5RGF0YTogdGhpcy5zaG9wX3NwZWMuZ29vZHNEYXRhCiAgICAgIH0pOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaTjeS9nOaIkOWKnyIpOyAvLyDmiafooYzmjILljZXlkI7vvIzmuIXnqbrlvZPliY3otK3nianovaYKCiAgICAgIHRoaXMuY2xlYXJDYXJ0KCk7CiAgICAgIHRoaXMucmVzdF9lbnRyeSA9ICF0aGlzLnJlc3RfZW50cnk7CiAgICB9LAoKICAgIC8vIOaKuembtgogICAgYXN5bmMgZGVsWnJlbygpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldENhcnRCeVVzZXIoewogICAgICAgIHVzZXJDZW50ZXJJZDogdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgaXNaZXJvOiBOdW1iZXIodGhpcy5zaG9wX3NwZWMucmVtX21vbmV5KSAhPT0gMCA/IDQgOiA1CiAgICAgIH0pOwogICAgICB0aGlzLnNob3Bfc3BlYyA9IGRhdGEuZGF0YTsKICAgIH0sCgogICAgLy8g5LyY5oOg5rS75YqoCiAgICBhc3luYyBhY3Rpdml0eUFsbCgpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFjdGl2aXR5QWxsKHsKICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgcGFnZVNpemU6IDMwLAogICAgICAgIHNob3BJZDogdGhpcy5ub3dfc2VsX3Nob3AuaWQKICAgICAgfSk7CiAgICAgIHRoaXMuZGlzY291bnRfbGlzdCA9IGRhdGEuZGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlCiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOaJk+W8gOe7k+eul+i0puaItwogICAgb3BlbkFjY291bnRNb2RlbCh0eXBlKSB7CiAgICAgIHRoaXMucGF5X2FjY291bnRfdHlwZSA9IHR5cGU7CiAgICAgIHRoaXMuYWNjb3VudF9zaG93ID0gdHJ1ZTsKICAgIH0sCgogICAgLy8g6YCJ5oup57uT566X6LSm5oi3CiAgICBhY2NvdW50c2VsKHZhbCkgewogICAgICBpZiAodGhpcy5wYXlfYWNjb3VudF90eXBlKSB7CiAgICAgICAgdGhpcy5wYXlfYWNjb3VudF9pZCA9IHZhbFswXS5pZDsKICAgICAgICB0aGlzLnBheV9hY2NvdW50X251bSA9IHZhbFswXS5hY2NvdW50TnVtYmVyOwogICAgICAgIHRoaXMucGF5X2FjY291bnRfbmFtZSA9IHZhbFswXS5uYW1lOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuYWNjb3VudF9pZCA9IHZhbFswXS5pZDsKICAgICAgICB0aGlzLmFjY291bnRfbnVtID0gdmFsWzBdLmFjY291bnROdW1iZXI7CiAgICAgICAgdGhpcy5hY2NvdW50TmFtZSA9IHZhbFswXS5uYW1lOwogICAgICB9CiAgICB9LAoKICAgIC8vIOebtOaOpeaUtuasvgogICAgYWRkUmVjZWl2ZWQoKSB7CiAgICAgIGlmICghdGhpcy5hY2NvdW50X2lkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nnu5PnrpfotKbmiLciKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICghdGhpcy51c2VyQ2VudGVySWQpIHsKICAgICAgICB0aGlzLiRjb25maXJtKCLorqLljZXmnKrnu5HlrprkvJrlkZjvvIzmmK/lkKbpnIDopoHnu5HlrprkvJrlkZjov5vooYznu5Pnrpc/IiwgIuaPkOekuiIsIHsKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi5Lya5ZGY55m75b2VIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLot7Pov4ciLAogICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAic2Vjb25kIjsKICAgICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgICB0aGlzLmFkZFJlY2VpdmVkVHdvKCk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5hZGRSZWNlaXZlZFR3bygpOwogICAgICB9CiAgICB9LAoKICAgIGFzeW5jIGFkZFJlY2VpdmVkVHdvKCkgewogICAgICBjb25zdCBhY2NvdW50TGlzdCA9IFt7CiAgICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnRfaWQsCiAgICAgICAgYWNjb3VudE51bWJlcjogdGhpcy5hY2NvdW50X251bSwKICAgICAgICBhY2NvdW50TmFtZTogdGhpcy5hY2NvdW50TmFtZSwKICAgICAgICBtb25leTogdGhpcy5pbnB1dF90d28sCiAgICAgICAgZGlzY291bnRNb25leTogMCwKICAgICAgICBmaW5hbE1vbmV5OiB0aGlzLmlucHV0X3R3bywKICAgICAgICBwYXlXYXk6IDQsCiAgICAgICAgcmVtYXJrOiAiIgogICAgICB9XTsKICAgICAgY29uc3QgcGFyYW1zID0gewogICAgICAgIGN1c3RvbWVySWQ6IHRoaXMuY3VzdG9tZXJJZCwKICAgICAgICBjdXN0b21lck5hbWU6IHRoaXMuY3VzdG9tZXJOYW1lLAogICAgICAgIHNvdXJjZU5vOiAiIiwKICAgICAgICBzb3VyY2VOb01vbmV5OiAiIiwKICAgICAgICBjdXJyZW50QWNjb3VudE5hbWU6IHRoaXMudXNlck5hbWUsCiAgICAgICAgZmluYW5jZVR5cGU6ICLplIDllK7mlLbmrL4iLAogICAgICAgIGZpbmFuY2VUeXBlSWQ6IDIsCiAgICAgICAgc2hvcElkOiB0aGlzLm5vd19zZWxfc2hvcC5pZCwKICAgICAgICBtb25leTogdGhpcy52aXBfaW5mby5tb25leSwKICAgICAgICBzaG9wTmFtZTogdGhpcy5ub3dfc2VsX3Nob3AubmFtZSwKICAgICAgICByZWNlaXB0VGltZTogcGFyc2VJbnQobmV3IERhdGUoKSAvIDEwMDApLAogICAgICAgIGNyZWF0ZVRpbWU6ICIiLAogICAgICAgIGFjY291bnRMaXN0OiBhY2NvdW50TGlzdAogICAgICB9OwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWRkUmVjZWl2ZWQocGFyYW1zKTsKICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCLmlLbmrL7miJDlip8iKTsKCiAgICAgIGlmICh0aGlzLmlucHV0KSB7CiAgICAgICAgdGhpcy5zZWFyY2hDdXN0b21lckRldGFpbHMoKTsKICAgICAgfQoKICAgICAgdGhpcy5pbnB1dF90d28gPSAiIjsKICAgIH0sCgogICAgLy8g5YiH5o2i5Lya5ZGYCiAgICBjaGFuZ2VVc2VyKCkgewogICAgICB0aGlzLmNvbGxlY3Rpb24gPSBmYWxzZTsKICAgICAgdGhpcy5yZV9jaGFyZ2UgPSBmYWxzZTsKICAgICAgdGhpcy52aXBfbG9naW4gPSBmYWxzZTsKICAgICAgdGhpcy52aXBfaGFuZGxlID0gZmFsc2U7CiAgICAgIHRoaXMudXNlckNlbnRlcklkID0gIiI7CiAgICAgIHRoaXMuY3VzdG9tZXJJZCA9ICIiOwogICAgICB0aGlzLmN1c3RvbWVyTmFtZSA9ICIiOwogICAgICB0aGlzLmN1c3RvbWVyVHlwZSA9ICIiOwogICAgICB0aGlzLnZpcF9pbmZvID0gewogICAgICAgIGNyZWF0ZVRpbWU6ICIiLAogICAgICAgIGJpcnRoZGF5OiAiIiwKICAgICAgICBwcmljZTogIiIsCiAgICAgICAgaW50ZWdyYWw6ICIiLAogICAgICAgIHJlbWFya3M6ICIiLAogICAgICAgIGRlZmF1bHRBZGRyZXNzOiB7CiAgICAgICAgICBhcmVhOiB7CiAgICAgICAgICAgIHByb3ZpbmNlTmFtZTogIiIsCiAgICAgICAgICAgIGNpdHlOYW1lOiAiIiwKICAgICAgICAgICAgZGlzdHJpY3ROYW1lOiAiIiwKICAgICAgICAgICAgYWRkcmVzczogIiIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHJlbWFyazogIiIKICAgICAgfTsKICAgIH0sCgogICAgLy8g5Y2V5o2u5bCP56Wo5omT5Y2wCiAgICBhc3luYyB0b1ByaW50KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgdG9QcmludCh7CiAgICAgICAgb2JqZWN0SWQ6IHRoaXMubm93X29yZGVyX2lkLAogICAgICAgIG9iamVjdFR5cGU6IDEgLy8g6ZSA5ZSu5Y2VCgogICAgICB9KTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLmk43kvZzmiJDlip8iCiAgICAgIH0pOwogICAgfSwKCiAgICAvLyDkvJjmg6DliLgg5Yu+6YCJCiAgICBjb3Vwb25DaGFuZ2UodmFsLCByb3cpIHsKICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy5kaXNjb3VudF9saXN0KTsKICAgICAgdGFyZ2V0LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7CiAgICAgICAgaWYgKHZhbCkgewogICAgICAgICAgaXRlbS5jaGVja2VkID0gaXRlbS5pZCA9PT0gcm93LmlkOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLmRpc2NvdW50X2xpc3QgPSB0YXJnZXQ7CiAgICAgIHRoaXMudXNlckNvdXBvbklkID0gdmFsID8gcm93LmlkIDogIiI7CiAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgfQoKICB9Cn07"},null]}