{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataServices\\dataServiceAPI\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataServices\\dataServiceAPI\\index.vue","mtime":1737140141475},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC1pbmRleC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IEFQSSBmcm9tICdAL2FwaS9idXNpbmVzcy9kYXRhU2VydmljZUFQSSc7CmltcG9ydCBTZXJ2aWNlRGlhbG9nIGZyb20gJy4uL2RhdGFTZXJ2aWNlQVBJL1NlcnZpY2VEaWFsb2cudnVlJzsKaW1wb3J0IERldGFpbERpYWxvZyBmcm9tICcuL0RldGFpbERpYWxvZy52dWUnOwppbXBvcnQgQWRkRGlhbG9nIGZyb20gJ0Avdmlld3MvZGF0YVJlc291cmNlL2RhdGFTZXJ2aWNlcy9kYXRhU2VydmljZUFQSS9BZGREaWFsb2cudnVlJzsKaW1wb3J0IHRhYmxlTWl4aW4gZnJvbSAnQC9taXhpbnMvdGFibGUuanMnOyAvLyDliJfooahtaXhpbnMKaW1wb3J0IFNob3dEaWFsb2cgZnJvbSAnQC92aWV3cy9kYXRhUmVzb3VyY2UvZGF0YVNlcnZpY2VzL2RhdGFTZXJ2aWNlQVBJL1Nob3dEaWFsb2cudnVlJzsKZXhwb3J0IGRlZmF1bHQgewogIGNvbXBvbmVudHM6IHsKICAgIERldGFpbERpYWxvZzogRGV0YWlsRGlhbG9nLAogICAgU2VydmljZURpYWxvZzogU2VydmljZURpYWxvZywKICAgIFNob3dEaWFsb2c6IFNob3dEaWFsb2csCiAgICBBZGREaWFsb2c6IEFkZERpYWxvZwogIH0sCiAgbWl4aW5zOiBbdGFibGVNaXhpbl0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAvLyDmoJEKICAgIHZhciBUUkVFX0NPTkZJRyA9IHsKICAgICAgbmFtZTogJycsCiAgICAgIHRyZWVJZDogJycsCiAgICAgIHRyZWVQcm9wczogewogICAgICAgIHZhbHVlOiAnaWQnLAogICAgICAgIGxhYmVsOiAnbmFtZScKICAgICAgfSwKICAgICAgZXhwYW5kQWxsOiBmYWxzZSwKICAgICAgZGVmYXVsdEV4cGFuZGVkS2V5czogWycwJ10sCiAgICAgIC8vIOatpOWkhGZpZWxkc+WGhemFjee9ruWvueixoeWxnuaAp+WMheaLrDogbGFiZWwvcHJvcC9ydWxlcy90eXBlKOaemuS4vjpzd2l0Y2gvbnVtYmVyL2lucHV0KOm7mOiupCkpL3NwYW4vCiAgICAgIHRyZWVGaWVsZHM6IFt7CiAgICAgICAgbGFiZWw6ICfmjqXlj6Pnm67lvZXlkI3np7AnLAogICAgICAgIHByb3A6ICduYW1lJywKICAgICAgICBsYWJlbFdpZHRoOiAnMTIwJywKICAgICAgICBydWxlczogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aOpeWPo+ebruW9leWQjeensOS4jeiDveS4uuepuicKICAgICAgICB9XQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfmjqXlj6Pnm67lvZXnvJbnoIEnLAogICAgICAgIHByb3A6ICdjb2RlJywKICAgICAgICBsYWJlbFdpZHRoOiAnMTIwJywKICAgICAgICBydWxlczogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aOpeWPo+ebruW9lee8lueggeS4jeiDveS4uuepuicKICAgICAgICB9XQogICAgICB9XSwKICAgICAgY3VyTm9kZToge30gLy8g5b2T5YmN6YCJ5oup6IqC54K5CiAgICB9OwogICAgLy8gdGFibGXliJfooagKICAgIHZhciBUQUJMRV9DT05GSUcgPSB7CiAgICAgIC8vIGZpbHRlcnM6IHsKICAgICAgLy8gICBhcGlNb2RlOiAxLCAvLyDor7fmsYLmlrnlvI/pu5jorqTkuLpHRVQKICAgICAgLy8gfSwKICAgICAgY3JlYXRlZExpc3Q6IFt7CiAgICAgICAgbGFiZWw6ICdHRVQnLAogICAgICAgIHZhbHVlOiAnMScKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAnUE9TVCcsCiAgICAgICAgdmFsdWU6ICcwJwogICAgICB9XSwKICAgICAgLy8g5YiX6KGo6KGo5aS0CiAgICAgIGNvbHVtbnM6IFt7CiAgICAgICAgbGFiZWw6ICfmjqXlj6PlkI3np7AnLAogICAgICAgIHByb3A6ICdhcGlOYW1lJywKICAgICAgICB3aWR0aDogJzIwMHB4JywKICAgICAgICBhbGlnbjogJ2NlbnRlcicKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5o6l5Y+j5o+P6L+wJywKICAgICAgICBwcm9wOiAnYXBpRGVzYycsCiAgICAgICAgd2lkdGg6ICcyMDBweCcsCiAgICAgICAgYWxpZ246ICdjZW50ZXInCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+aOpeWPo+WcsOWdgCcsCiAgICAgICAgcHJvcDogJ2FwaVVybCcsCiAgICAgICAgd2lkdGg6ICczMDBweCcsCiAgICAgICAgYWxpZ246ICdjZW50ZXInCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+aVsOaNruW6k+ihqOWQjScsCiAgICAgICAgcHJvcDogJ2RiQWxpYXMnLAogICAgICAgIHdpZHRoOiAnMTAwcHgnLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfor7fmsYLmlrnlvI8nLAogICAgICAgIHByb3A6ICdhcGlNb2RlJywKICAgICAgICBkYXRhVHlwZTogJ3Nsb3QnLAogICAgICAgIHNsb3Q6ICdhcGlNb2RlJywKICAgICAgICB3aWR0aDogJzEwMHB4JywKICAgICAgICBhbGlnbjogJ2NlbnRlcicKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5o6l5Y+j54q25oCBJywKICAgICAgICBwcm9wOiAnc3RhdHVzJywKICAgICAgICB3aWR0aDogJzE1MCcsCiAgICAgICAgYWxpZ246ICdjZW50ZXInLAogICAgICAgIGRhdGFUeXBlOiAnc2xvdCcsCiAgICAgICAgLy8g5L2/55So5o+S5qe9CiAgICAgICAgc2xvdDogJ3N0YXR1cycKICAgICAgfSwgewogICAgICAgIGRhdGFUeXBlOiAnb3B0aW9uJywKICAgICAgICBsYWJlbDogJ+aTjeS9nCcsCiAgICAgICAgZml4ZWQ6ICdyaWdodCcsCiAgICAgICAgb3BlcmF0aW9uOiBbewogICAgICAgICAgbmFtZTogJ+a1i+ivlScsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi1zLXVuZm9sZCcsCiAgICAgICAgICBjb2xvcjogJyM0MDllZmYnLAogICAgICAgICAgY2xpY2tGdW46IGZ1bmN0aW9uIGNsaWNrRnVuKHJvdykgewogICAgICAgICAgICBfdGhpcy5zaG93RHJhd2VyKHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+afpeeci+aXpeW/lycsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi1kb2N1bWVudCcsCiAgICAgICAgICBjbGlja0Z1bjogZnVuY3Rpb24gY2xpY2tGdW4ocm93KSB7CiAgICAgICAgICAgIF90aGlzLnNlcnZpY2VzaG93KHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+aOpeWPo+aWh+aho+afpeeciycsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi10aWNrZXRzJywKICAgICAgICAgIGNvbG9yOiAnIzQwN2NmZicsCiAgICAgICAgICBjbGlja0Z1bjogZnVuY3Rpb24gY2xpY2tGdW4ocm93KSB7CiAgICAgICAgICAgIF90aGlzLmRldGFpbHNzaG93KHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+WPkeW4gycsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi1zLXByb21vdGlvbicsCiAgICAgICAgICBjb2xvcjogJyNmYTkxMmEnLAogICAgICAgICAgc2hvd0hpZGU6IGZ1bmN0aW9uIHNob3dIaWRlKHJvdykgewogICAgICAgICAgICByZXR1cm4gcm93LnN0YXR1cyAhPT0gMTsKICAgICAgICAgIH0sCiAgICAgICAgICBjbGlja0Z1bjogZnVuY3Rpb24gY2xpY2tGdW4ocm93KSB7CiAgICAgICAgICAgIF90aGlzLnB1Ymxpc2hUYWJsZShyb3cpOwogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIG5hbWU6ICfliKDpmaQnLAogICAgICAgICAgaWNvbjogJ2VsLWljb24tZGVsZXRlJywKICAgICAgICAgIGNvbG9yOiAncmVkJywKICAgICAgICAgIGNsaWNrRnVuOiBmdW5jdGlvbiBjbGlja0Z1bihyb3cpIHsKICAgICAgICAgICAgX3RoaXMuZGVsQXBpKHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfV0sCiAgICAgIGRlZmF1bHRGaWx0ZXI6IFt7CiAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLAogICAgICAgIHByb3BlcnR5OiAnY2F0YWxvZ0lkJywKICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgdmFsdWU6ICcnCiAgICAgIH1dCiAgICB9OwogICAgLy8gZGlhbG9n5by55Ye6CiAgICB2YXIgRElBTE9HX0NPTkZJRyA9IHsKICAgICAgZGV0YWlsVmlzaWJsZTogZmFsc2UsCiAgICAgIGFkZFZpc2libGU6IGZhbHNlLAogICAgICBkaWFsb2dTZXJ2aWNlOiBmYWxzZSwKICAgICAgZGlhbG9nRGV0YWlsczogZmFsc2UsCiAgICAgIGRyYXdlclZpc2libGU6IGZhbHNlLAogICAgICAvLyDmjqfliLbmir3lsYnmmL7npLrlkozpmpDol4/nmoTlj5jph48KICAgICAgZGV0YWlsVGl0bGU6ICfnvJbovpEnLAogICAgICBhZGRUaXRsZTogJ+aWsOWinicsCiAgICAgIGRpYWxvZ1NlcnZpY2VUaXRsZTogJ+afpeeci+aXpeW/lycsCiAgICAgIGRpYWxvZ0RldGFpbHNUaXRsZTogJ+aOpeWPo+ivpuaDhScsCiAgICAgIGRpYWxvZ2REYXRhOiB7fQogICAgfTsKICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBUUkVFX0NPTkZJRyksIFRBQkxFX0NPTkZJRyksIERJQUxPR19DT05GSUcpLCB7fSwgewogICAgICAvLyDkuLvliJfooahkaWFsb2fnm7jlhbMKICAgICAgLy8gc3RhdHVzOiAnJywgLy8g5Yid5aeL5YyW5o6l5Y+j54q25oCB5Li656m6CiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIC8vIOWIneWni+WMluWIl+ihqOS4uuepuuaVsOe7hAogICAgICB2YWx1ZTogJycsCiAgICAgIHJlcXVlc3RVcmw6ICcnLAogICAgICByZXF1ZXN0TWV0aG9kOiAnR0VUJywKICAgICAgcmVzcG9uc2VEYXRhOiBudWxsCiAgICB9KTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICAvLyDphY3nva7liJfooajmjqXlj6Pmlrnms5XvvJvlj6rmnInphY3nva7kuobor6XorqHnrpflsZ7mgKfmiY3kvJrmiafooYx0YWJsZSBtaXhpbnPkuK3nmoRnZXREYXRh5pa55rOVCiAgICBkYXRhTWV0aG9kOiBmdW5jdGlvbiBkYXRhTWV0aG9kKCkgewogICAgICByZXR1cm4gQVBJLnRyZWVxdWVyeVRhYmxlOwogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgLy8gYXBpTW9kZeagh+etvuminOiJsgogICAgZGV0ZXJtaW5lVGFnVHlwZTogZnVuY3Rpb24gZGV0ZXJtaW5lVGFnVHlwZShhcGlNb2RlKSB7CiAgICAgIHJldHVybiBhcGlNb2RlID09PSAnR0VUJyA/ICcnIDogJ3dhcm5pbmcnOwogICAgfSwKICAgIC8vIOagkQogICAgZ2V0VHJlZU5vZGVzOiBmdW5jdGlvbiBnZXRUcmVlTm9kZXMoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRBUEkkdHJlZUFjdGlvbiwgX3lpZWxkJEFQSSR0cmVlQWN0aW9uMiwgdmFsdWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS50cmVlQWN0aW9uKCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkQVBJJHRyZWVBY3Rpb24gPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRBUEkkdHJlZUFjdGlvbjIgPSBfeWllbGQkQVBJJHRyZWVBY3Rpb24udmFsdWU7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkQVBJJHRyZWVBY3Rpb24yID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRBUEkkdHJlZUFjdGlvbjI7CiAgICAgICAgICAgICAgX3RoaXMyLmRlZmF1bHRFeHBhbmRlZEtleXMgPSBbKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZVswXS5pZCkgfHwgJyddOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoInJldHVybiIsIHsKICAgICAgICAgICAgICAgIGRhdGE6IHZhbHVlIHx8IFtdCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICByZWxvYWRUcmVlOiBmdW5jdGlvbiByZWxvYWRUcmVlKCkgewogICAgICB0aGlzLiRyZWZzLmFwcEFzeW5jVHJlZS5nZXRUcmVlRGF0YSgpOwogICAgfSwKICAgIC8qKg0KICAgICAqIEBkZXNjcmlwdGlvbjogdHJlZUFjdGlvbnPmlK/mjIHlh73mlbDkuZ/mlK/mjIHmlbDnu4TvvIznlLHkuo7lrp7pmYXlnLrmma/lvZPkuK0g5Y+v6IO95Lya5Yqo5oCB6K6+572u5oyJ6ZKu77yM5pWF5Lul5Ye95pWw56S65L6L5p2l5bGV56S6DQogICAgICogQHBhcmFtIHsqfSBkYXRhIOW9k+WJjeeCueWHu+iKgueCueaVsOaNrg0KICAgICAqIEByZXR1cm4geyp9IOW9k+WJjeiKgueCueWxleekuueahOaTjeS9nOmhueaVsOe7hA0KICAgICAqLwogICAgdHJlZUFjdGlvbnM6IGZ1bmN0aW9uIHRyZWVBY3Rpb25zKGRhdGEpIHsKICAgICAgLy8g5qC56IqC54K55Yik5pat5pa55byP5Lul5Lia5Yqh5Li65YeG77yM5q2k5aSE5LuF5Li656S65L6LCiAgICAgIHJldHVybiBbewogICAgICAgIGxhYmVsOiAn5re75YqgJywKICAgICAgICB0eXBlOiAnYWRkJywKICAgICAgICBtZXRob2Q6IHRoaXMuYWRkTm9kZQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfnvJbovpEnLAogICAgICAgIHR5cGU6ICdlZGl0JywKICAgICAgICBtZXRob2Q6IHRoaXMuZWRpdE5vZGUKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5Yig6ZmkJywKICAgICAgICB0eXBlOiAnZGVsZXRlJywKICAgICAgICBtZXRob2Q6IHRoaXMuZGVsTm9kZQogICAgICB9XTsKICAgIH0sCiAgICBvblRyZWVOb2RlQ2xpY2s6IGZ1bmN0aW9uIG9uVHJlZU5vZGVDbGljayhub2RlKSB7CiAgICAgIHZhciBfdGhpcyRjdXJOb2RlOwogICAgICB0aGlzLnRyZWVJZCA9IG5vZGUuaWQ7CiAgICAgIC8vIOaehOW7uuafpeivouWPguaVsOWvueixoe+8jOaMieeFp+S9oOaPkOS+m+eahOagvOW8j+ekuuS+iwogICAgICB2YXIgcXVlcnlQYXJhbXMgPSB7CiAgICAgICAgZ3JvdXBSZWxhdGlvbjogJ0FORCcsCiAgICAgICAgZ3JvdXBUcmVlOiB7fSwKICAgICAgICBwYXJhbXM6IHt9LAogICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgIGdyb3VwOiAnbWFpbicsCiAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsCiAgICAgICAgICBwYXJlbnRHcm91cDogJycsCiAgICAgICAgICBwcm9wZXJ0eTogJycsCiAgICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgICB2YWx1ZToge30KICAgICAgICB9LCB7CiAgICAgICAgICBncm91cDogJ21haW4nLAogICAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLAogICAgICAgICAgcGFyZW50R3JvdXA6ICcnLAogICAgICAgICAgcHJvcGVydHk6ICdjYXRhbG9nSWQnLAogICAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgICAgdmFsdWU6IHRoaXMudHJlZUlkCiAgICAgICAgfV0sCiAgICAgICAgc29ydGVyOiBbewogICAgICAgICAgZGlyZWN0aW9uOiAnQVNDJywKICAgICAgICAgIHByb3BlcnR5OiAnJwogICAgICAgIH1dCiAgICAgIH07CiAgICAgIGlmIChub2RlLmlkID09PSAoKF90aGlzJGN1ck5vZGUgPSB0aGlzLmN1ck5vZGUpID09PSBudWxsIHx8IF90aGlzJGN1ck5vZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJGN1ck5vZGUuaWQpKSByZXR1cm47CiAgICAgIHRoaXMuZGVwdE5hbWUgPSBub2RlLmxhYmVsOwogICAgICB0aGlzLmN1ck5vZGUgPSBfb2JqZWN0U3ByZWFkKHt9LCBub2RlKTsKICAgICAgdGhpcy5mb3JtID0gdGhpcy4kb3B0aW9ucy5kYXRhKCkuZm9ybTsKICAgICAgdGhpcy5nZXREYXRhKHF1ZXJ5UGFyYW1zKTsKICAgIH0sCiAgICAvLyDnm67lvZXmlrDlop4KICAgIGFkZE5vZGU6IGZ1bmN0aW9uIGFkZE5vZGUocGFyYW1zLCBub2RlKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBjb2RlLCBuYW1lLCBpZCwgbmV3Tm9kZSwgX3lpZWxkJEFQSSRhZGRBUElUcmVlLCBzdGF0ZSwgbWVzc2FnZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgY29kZSA9IHBhcmFtcy5jb2RlLCBuYW1lID0gcGFyYW1zLm5hbWU7CiAgICAgICAgICAgICAgaWQgPSBub2RlLmlkOwogICAgICAgICAgICAgIG5ld05vZGUgPSB7CiAgICAgICAgICAgICAgICBjb2RlOiBjb2RlLAogICAgICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudElkOiBpZAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAzOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gNjsKICAgICAgICAgICAgICByZXR1cm4gQVBJLmFkZEFQSVRyZWUobmV3Tm9kZSk7CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgICBfeWllbGQkQVBJJGFkZEFQSVRyZWUgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCRBUEkkYWRkQVBJVHJlZS5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJEFQSSRhZGRBUElUcmVlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICBfdGhpczMucmVsb2FkVHJlZSgpOwogICAgICAgICAgICAgICAgX3RoaXMzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+a3u+WKoOi1hOa6kOebruW9leaIkOWKn++8gScpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uud2FybmluZyhtZXNzYWdlIHx8ICfmt7vliqDmjqXlj6Pnm67lvZXlpLHotKXvvIEnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDEyOwogICAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MlsiY2F0Y2giXSgzKTsKICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uud2FybmluZyhfY29udGV4dDIudDAgfHwgJ+a3u+WKoOaOpeWPo+ebruW9leWksei0pe+8gScpOwogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzMsIDEyXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDnm67lvZXnvJbovpEKICAgIGVkaXROb2RlOiBmdW5jdGlvbiBlZGl0Tm9kZShwYXJhbXMpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIGNvZGUsIG5hbWUsIHBhcmVudElkLCBpZCwgbmV3Tm9kZSwgX3lpZWxkJEFQSSRlZGl0QVBJVHJlLCBzdGF0ZSwgbWVzc2FnZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgY29kZSA9IHBhcmFtcy5jb2RlLCBuYW1lID0gcGFyYW1zLm5hbWUsIHBhcmVudElkID0gcGFyYW1zLnBhcmVudElkLCBpZCA9IHBhcmFtcy5pZDsKICAgICAgICAgICAgICBuZXdOb2RlID0gewogICAgICAgICAgICAgICAgY29kZTogY29kZSwKICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMjsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDU7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5lZGl0QVBJVHJlZShuZXdOb2RlKTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF95aWVsZCRBUEkkZWRpdEFQSVRyZSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRlZGl0QVBJVHJlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkQVBJJGVkaXRBUElUcmUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNC5yZWxvYWRUcmVlKCk7CiAgICAgICAgICAgICAgICBfdGhpczQuJG1lc3NhZ2Uuc3VjY2Vzcygn57yW6L6R6LWE5rqQ55uu5b2V5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS53YXJuaW5nKG1lc3NhZ2UgfHwgJ+e8lui+keaOpeWPo+ebruW9leWksei0pe+8gScpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDE0OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTE7CiAgICAgICAgICAgICAgX2NvbnRleHQzLnQwID0gX2NvbnRleHQzWyJjYXRjaCJdKDIpOwogICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS53YXJuaW5nKF9jb250ZXh0My50MCB8fCAn57yW6L6R5o6l5Y+j55uu5b2V5aSx6LSl77yBJyk7CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMsIG51bGwsIFtbMiwgMTFdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOebruW9leWIoOmZpAogICAgZGVsTm9kZTogZnVuY3Rpb24gZGVsTm9kZShwYXJhbXMsIG5vZGUpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIF95aWVsZCRBUEkkcmVtb3ZlQVBJVCwgc3RhdGUsIG1lc3NhZ2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMDsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5yZW1vdmVBUElUcmVlKG5vZGUuaWQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJEFQSSRyZW1vdmVBUElUID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkQVBJJHJlbW92ZUFQSVQuc3RhdGU7CiAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRBUEkkcmVtb3ZlQVBJVC5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXM1LnJlbG9hZFRyZWUoKTsKICAgICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTotYTmupDnm67lvZXmiJDlip/vvIEnKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcobWVzc2FnZSB8fCAn5Yig6Zmk5o6l5Y+j55uu5b2V5aSx6LSl77yBJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMTI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBfY29udGV4dDQucHJldiA9IDk7CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnQwID0gX2NvbnRleHQ0WyJjYXRjaCJdKDApOwogICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZS53YXJuaW5nKF9jb250ZXh0NC50MCB8fCAn5Yig6Zmk6LWE5o6l5Y+j55uu5b2V5aSx6LSl77yBJyk7CiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTQsIG51bGwsIFtbMCwgOV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8gdGFibGXliJfooajmlrDlop4KICAgIGFkZERhdGE6IGZ1bmN0aW9uIGFkZERhdGEoKSB7CiAgICAgIHRoaXMuYWRkVGl0bGUgPSAn5paw5aKeQVBJ5o6l5Y+jJzsKICAgICAgdGhpcy5kaWFsb2dkRGF0YSA9IHsKICAgICAgICBjYXRhbG9nSWQ6IHRoaXMuY3VyTm9kZS5pZAogICAgICB9OwogICAgICB0aGlzLmFkZFZpc2libGUgPSB0cnVlOwogICAgfSwKICAgIC8vIHRhYmxl5YiX6KGo57yW6L6RCiAgICBlZGl0RGF0YTogZnVuY3Rpb24gZWRpdERhdGEocm93KSB7CiAgICAgIHRoaXMuZGV0YWlsVGl0bGUgPSAiXHU3RjE2XHU4RjkxIC0gIi5jb25jYXQocm93LmFwaU5hbWUpOwogICAgICB0aGlzLmRpYWxvZ2REYXRhID0gcm93OwogICAgICB0aGlzLmRldGFpbFZpc2libGUgPSB0cnVlOwogICAgfSwKICAgIC8vIHRhYmxl5YiX6KGo5Yig6ZmkCiAgICBkZWxBcGk6IGZ1bmN0aW9uIGRlbEFwaShyb3cpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oIlx1NkI2NFx1NjRDRFx1NEY1Q1x1NUMwNlx1NkMzOFx1NEU0NVx1NTIyMFx1OTY2NFx1OEJFNVx1NjNBNVx1NTNFM1x1OTg3OVx1RkYwOCIuY29uY2F0KHJvdy5hcGlOYW1lLCAiXHVGRjA5LCBcdTY2MkZcdTU0MjZcdTdFRTdcdTdFRUQ/IiksICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7CiAgICAgICAgdmFyIGluZGV4OwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNSQoX2NvbnRleHQ1KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5kZWxBcGlEYXRhKHJvdy5pZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczYuZ2V0RGF0YSgpOwogICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTmiJDlip8nKTsKICAgICAgICAgICAgICAvLyDmib7liLDopoHliKDpmaTnmoTmlbDmja7lnKh0YWJsZURhdGHkuK3nmoTntKLlvJUKICAgICAgICAgICAgICBpbmRleCA9IF90aGlzNi50YWJsZURhdGEuZmluZEluZGV4KGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gcm93LmlkOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIC8vIOS7jnRhYmxlRGF0YeaVsOe7hOS4reWIoOmZpOWvueW6lOeahOaVsOaNrgogICAgICAgICAgICAgICAgX3RoaXM2LnRhYmxlRGF0YS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCfliKDpmaTmlbDmja7lpLHotKU6JywgZXJyb3IpOwogICAgICB9KTsKICAgIH0sCiAgICBvbkJlZm9yZUdldERhdGE6IGZ1bmN0aW9uIG9uQmVmb3JlR2V0RGF0YShxdWVyeVBhcmFtcywgZm9ybURhdGEpIHsKICAgICAgdGhpcy5zZXRGaWx0ZXJWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLCB0aGlzLmRlZmF1bHRGaWx0ZXIsICdjYXRhbG9nSWQnLCB0aGlzLmN1ck5vZGUuaWQpOwogICAgfSwKICAgIC8vIOaWsOWinuehruWumuaMiemSrgogICAgb25Db25maXJtOiBmdW5jdGlvbiBvbkNvbmZpcm0oZGF0YSwgcERhdGEpIHsKICAgICAgdGhpcy5nZXREYXRhKCk7CiAgICB9LAogICAgLy8g5p+l55yL5pel5b+X5oyJ6ZKuCiAgICBzZXJ2aWNlc2hvdzogZnVuY3Rpb24gc2VydmljZXNob3cocm93KSB7CiAgICAgIHRoaXMuZGlhbG9nU2VydmljZVRpdGxlID0gIlx1NjdFNVx1NzcwQlx1NjVFNVx1NUZENy0gIi5jb25jYXQocm93LmFwaU5hbWUpOwogICAgICB0aGlzLmN1cnJlbnRSb3cgPSByb3c7CiAgICAgIHZhciByb3dJZCA9IHJvdy5pZDsgLy8g6I635Y+W5b2T5YmN6KGM55qEaWQKICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlID0gdHJ1ZTsKICAgICAgdGhpcy4kcmVmcy5TZXJ2aWNlRGlhbG9nLmluaXREYXRhKHsKICAgICAgICBpZDogcm93SWQKICAgICAgfSk7IC8vIOWwhmlk5Lyg6YCS57uZU2VydmljZURpYWxvZ+e7hOS7tgogICAgfSwKICAgIC8vIOaOpeWPo+aWh+aho+afpeeciwogICAgZGV0YWlsc3Nob3c6IGZ1bmN0aW9uIGRldGFpbHNzaG93KHJvdykgewogICAgICB0aGlzLmRpYWxvZ0RldGFpbHNUaXRsZSA9ICJcdTYzQTVcdTUzRTNcdThCRTZcdTYwQzUtICIuY29uY2F0KHJvdy5hcGlOYW1lKTsKICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICB0aGlzLmRpYWxvZ0RldGFpbHMgPSB0cnVlOwogICAgfSwKICAgIC8vIOa1i+ivleaMiemSrgogICAgc2hvd0RyYXdlcjogZnVuY3Rpb24gc2hvd0RyYXdlcigpIHsKICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDlj5HluIMKICAgIHB1Ymxpc2hUYWJsZTogZnVuY3Rpb24gcHVibGlzaFRhYmxlKGRhdGEpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU3JChfY29udGV4dDcpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ny5wcmV2ID0gX2NvbnRleHQ3Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNy4kY29uZmlybSgiXHU2QjY0XHU2NENEXHU0RjVDXHU1QzA2XHU1M0QxXHU1RTAzXHVGRjA4Ii5jb25jYXQoZGF0YS5hcGlOYW1lLCAiXHVGRjA5LCBcdTY2MkZcdTU0MjZcdTdFRTdcdTdFRUQ/IiksICfmj5DnpLonLCB7CiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgICAgIH0pLnRoZW4oLyojX19QVVJFX18qL19hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNigpIHsKICAgICAgICAgICAgICAgIHZhciBfeWllbGQkQVBJJHVwZGF0ZUFjdGksIHN0YXRlLCBtZXNzYWdlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHsKICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2LnByZXYgPSBfY29udGV4dDYubmV4dCkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc3RhdHVzID0gJzEnOwogICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ2LnByZXYgPSAxOwogICAgICAgICAgICAgICAgICAgICAgX3RoaXM3LnRhYmxlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDU7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVBJLnVwZGF0ZUFjdGlvbihkYXRhKTsKICAgICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgICBfeWllbGQkQVBJJHVwZGF0ZUFjdGkgPSBfY29udGV4dDYuc2VudDsKICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSR1cGRhdGVBY3RpLnN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRBUEkkdXBkYXRlQWN0aS5tZXNzYWdlOwogICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNy5nZXREYXRhKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCfmjqXlj6Plj5HluIPmiJDlip/vvIEnKTsKICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNy50YWJsZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLndhcm5pbmcobWVzc2FnZSB8fCAn5o6l5Y+j5Y+R5biD5aSx6LSl77yBJyk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDE0OwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0Ni5wcmV2ID0gMTE7CiAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDYudDAgPSBfY29udGV4dDZbImNhdGNoIl0oMSk7CiAgICAgICAgICAgICAgICAgICAgICBfdGhpczcuJG1lc3NhZ2Uud2FybmluZyhfY29udGV4dDYudDAgfHwgJ+aOpeWPo+WPkeW4g+Wksei0pe+8gScpOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBfY2FsbGVlNiwgbnVsbCwgW1sxLCAxMV1dKTsKICAgICAgICAgICAgICB9KSkpLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU3KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8gY+a1i+ivleaMiemSruWPkemAgQogICAgc2VuZFJlcXVlc3Q6IGZ1bmN0aW9uIHNlbmRSZXF1ZXN0KCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlOCgpIHsKICAgICAgICB2YXIgb3B0aW9ucywgcmVzcG9uc2UsIHJlc3VsdDsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTgkKF9jb250ZXh0OCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ4LnByZXYgPSBfY29udGV4dDgubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ4LnByZXYgPSAwOwogICAgICAgICAgICAgIG9wdGlvbnMgPSB7CiAgICAgICAgICAgICAgICBtZXRob2Q6IF90aGlzOC5yZXF1ZXN0TWV0aG9kCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBpZiAoX3RoaXM4LnJlcXVlc3RNZXRob2QgPT09ICdQT1NUJykgewogICAgICAgICAgICAgICAgLy8g566A5Y2V56S65L6L77yM5a6e6ZmF5Lit5Y+v5qC55o2u5o6l5Y+j6ZyA5rGC5a6M5ZaE6K+35rGC5L2T562J5YaF5a65CiAgICAgICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeSh7fSk7CiAgICAgICAgICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSB7CiAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0OC5uZXh0ID0gNTsKICAgICAgICAgICAgICByZXR1cm4gZmV0Y2goX3RoaXM4LnJlcXVlc3RVcmwsIG9wdGlvbnMpOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgcmVzcG9uc2UgPSBfY29udGV4dDguc2VudDsKICAgICAgICAgICAgICBfY29udGV4dDgubmV4dCA9IDg7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIHJlc3VsdCA9IF9jb250ZXh0OC5zZW50OwogICAgICAgICAgICAgIF90aGlzOC5yZXNwb25zZURhdGEgPSBKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsIDIpOwogICAgICAgICAgICAgIF9jb250ZXh0OC5uZXh0ID0gMTU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgICAgX2NvbnRleHQ4LnByZXYgPSAxMjsKICAgICAgICAgICAgICBfY29udGV4dDgudDAgPSBfY29udGV4dDhbImNhdGNoIl0oMCk7CiAgICAgICAgICAgICAgX3RoaXM4LnJlc3BvbnNlRGF0YSA9ICJcdThCRjdcdTZDNDJcdTUxRkFcdTk1MTk6ICIuY29uY2F0KF9jb250ZXh0OC50MC5tZXNzYWdlKTsKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ4LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlOCwgbnVsbCwgW1swLCAxMl1dKTsKICAgICAgfSkpKCk7CiAgICB9CiAgfQp9Ow=="},null]}