{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsKaW1wb3J0IFNlbGVjdGlvbnNHcm91cCBmcm9tICIuL1NlbGVjdGlvbnNHcm91cCI7CmltcG9ydCBUcmVlQ29udHJvbHMgZnJvbSAiLi9UcmVlQ29udHJvbHMiOwppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7CmltcG9ydCBTdmdMZWdlbmRzIGZyb20gIi4vbGVnZW5kcy9TdmdMZWdlbmRzIjsKaW1wb3J0IHsKICBCdXR0b24sCiAgQ29sLAogIExvYWRpbmcsCiAgUmFkaW8sCiAgUmFkaW9Hcm91cCwKICBSb3cKfSBmcm9tICJlbGVtZW50LXVpIjsKaW1wb3J0IGxhbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlL2xhbmcvZW4iOwppbXBvcnQgbG9jYWxlIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZSI7CmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsKaW1wb3J0IHtGbGF0bWFwUXVlcmllcywgZmluZFRheG9ub215TGFiZWx9IGZyb20gIi4uL3NlcnZpY2VzL2ZsYXRtYXBRdWVyaWVzLmpzIjsKCmxvY2FsZS51c2UobGFuZyk7ClZ1ZS51c2UoQnV0dG9uKTsKVnVlLnVzZShDb2wpOwpWdWUudXNlKExvYWRpbmcuZGlyZWN0aXZlKTsKVnVlLnVzZShSYWRpbyk7ClZ1ZS51c2UoUmFkaW9Hcm91cCk7ClZ1ZS51c2UoUm93KTsKY29uc3QgUmVzaXplU2Vuc29yID0gcmVxdWlyZSgiY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yIik7Cgpjb25zdCBwcm9jZXNzVGF4b24gPSAoZmxhdG1hcEFQSSwgdGF4b25JZGVudGlmaWVycykgPT4gewogIGxldCBwcm9jZXNzZWQgPSBbXTsKICB0YXhvbklkZW50aWZpZXJzLmZvckVhY2godGF4b24gPT4gewogICAgZmluZFRheG9ub215TGFiZWwoZmxhdG1hcEFQSSwgdGF4b24pLnRoZW4odmFsdWUgPT4gewogICAgICBjb25zdCBpdGVtID0geyB0YXhvbiwgbGFiZWw6IHZhbHVlfTsKICAgICAgcHJvY2Vzc2VkLnB1c2goaXRlbSk7CiAgICB9KTsKICB9KTsKCiAgcmV0dXJuIHByb2Nlc3NlZDsKfQoKY29uc3QgcHJvY2Vzc0ZUVXMgPSAocGFyZW50LCBrZXkpID0+IHsKICBjb25zdCBmdHVzID0gW107CiAgbGV0IGl0ZW1zID0gcGFyZW50Lm9yZ2FucyA/IHBhcmVudC5vcmdhbnMgOiBwYXJlbnQuZnR1czsKICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1zID8gaXRlbXMuZmlsdGVyKAogICAgKG9iaiwgaW5kZXgpID0+CiAgICAgIGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gb2JqLmxhYmVsKSA9PT0gaW5kZXgKICAgICkgOiB1bmRlZmluZWQKICBpZiAoY2hpbGRyZW4pIHsKICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gewogICAgICBjb25zdCBkYXRhID0gewogICAgICAgIGxhYmVsOiBjaGlsZC5sYWJlbCwKICAgICAgICBtb2RlbHM6IGNoaWxkLm1vZGVscywKICAgICAgICBrZXk6IGAke2tleX0uJHtjaGlsZC5sYWJlbH1gLAogICAgICB9OwogICAgICBjb25zdCBncmFuZENoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoY2hpbGQsIGRhdGEua2V5KTsKICAgICAgaWYgKGdyYW5kQ2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGRhdGEuY2hpbGRyZW4gPSBncmFuZENoaWxkcmVuOwogICAgICB9CiAgICAgIGZ0dXMucHVzaChkYXRhKTsKICAgIH0pCiAgfQogIHJldHVybiBmdHVzOwp9Cgpjb25zdCBwcm9jZXNzU3lzdGVtcyA9IHN5c3RlbXMgPT4gewogIGNvbnN0IGFsbFN5c3RlbXMgPSBbXTsKICBpZiAoc3lzdGVtcyAmJiBzeXN0ZW1zLmxlbmd0aCA+IDApIHsKICAgIGNvbnN0IGRhdGEgPSB7IGxhYmVsOiAiQWxsIiwga2V5OiAiQWxsIiwgY2hpbGRyZW46IFtdIH07CiAgICBzeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsKICAgICAgY29uc3QgY2hpbGQgPSB7CiAgICAgICAgY29sb3VyOiBzeXN0ZW0uY29sb3VyLAogICAgICAgIGVuYWJsZWQ6IHN5c3RlbS5lbmFibGVkLAogICAgICAgIGxhYmVsOiBzeXN0ZW0uaWQsCiAgICAgICAga2V5OiBzeXN0ZW0uaWQsCiAgICAgIH07CiAgICAgIGNvbnN0IGNoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoc3lzdGVtLCBjaGlsZC5rZXkpOwogICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkKICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgICBkYXRhLmNoaWxkcmVuLnB1c2goY2hpbGQpOwogICAgfSk7CgogICAgYWxsU3lzdGVtcy5wdXNoKGRhdGEpOwogIH0KICAKICByZXR1cm4gYWxsU3lzdGVtczsKfQoKY29uc3QgY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSA9IGZ1bmN0aW9uICgpewogIHJldHVybiB7CiAgICBkZXN0aW5hdGlvbnM6IFtdLAogICAgb3JpZ2luczogW10sCiAgICBjb21wb25lbnRzOiBbXSwKICAgIGRlc3RpbmF0aW9uc1dpdGhEYXRhc2V0czogW10sCiAgICBvcmlnaW5zV2l0aERhdGFzZXRzOiBbXSwKICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLAogICAgcmVzb3VyY2U6IHVuZGVmaW5lZAogIH0KfQoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJGbGF0bWFwVnVlciIsCiAgY29tcG9uZW50czogewogICAgTWFwU3ZnSWNvbiwKICAgIE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgVG9vbHRpcCwKICAgIFRyZWVDb250cm9scywKICAgIFNlbGVjdGlvbnNHcm91cCwKICAgIFN2Z0xlZ2VuZHMKICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSB1bmRlZmluZWQ7CiAgICB0aGlzLm1hcEltcCA9IHVuZGVmaW5lZDsKICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUKICAgIC8vY3JlYXRlZCBjYXVzaW5nIGlzc3VlLCBUaGlzIGZsYWcgd2lsbAogICAgLy9yZXNvbHZlIHRoaXMgaXNzdWUuCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uKCkgewogICAgICBsZXQgYmlvbG9naWNhbFNleCA9IHRoaXMuYmlvbG9naWNhbFNleCA/IHRoaXMuYmlvbG9naWNhbFNleCA6IHVuZGVmaW5lZDsKICAgICAgLy9IdW1hbiByZXF1aXJlcyBzcGVjaWFsIGhhbmRsaW5nCiAgICAgIGlmICh0aGlzLmVudHJ5ID09PSAiTkNCSVRheG9uOjk2MDYiKSB7CiAgICAgICAgYmlvbG9naWNhbFNleCA9ICJQQVRPOjAwMDAzODQiOwogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgIGJpb2xvZ2ljYWxTZXgsCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgfTsKICAgICAgdGhpcy4kZW1pdCgidmlldy1sYXRlc3QtbWFwIiwgc3RhdGUpOwogICAgfSwKICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24oY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRDb2xvdXIodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVEcmF3ZXI6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLmRyYXdlck9wZW4gPSAhdGhpcy5kcmF3ZXJPcGVuOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIGNvbG91ci9ncmV5c2NhbGUgb2Ygb3JnYW5zLgogICAgICovCiAgICBzZXRDb2xvdXI6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5jb2xvdXJSYWRpbyA9IGZsYWc7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogZmxhZywgb3V0bGluZTogdGhpcy5vdXRsaW5lc1JhZGlvIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb3V0bGluZXMgZiBvcmdhbnMuCiAgICAgKi8KICAgIHNldE91dGxpbmVzOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIHRoaXMub3V0bGluZVJhZGlvID0gZmxhZzsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsgY29sb3VyOiB0aGlzLmNvbG91clJhZGlvLCBvdXRsaW5lOiBmbGFnIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgcGF0aHMgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKi8KICAgIHJlc2V0VmlldzogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnJlc2V0TWFwKCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5zeXN0ZW1zU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIGluLgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuem9vbUluKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbU91dDogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnpvb21PdXQoKTsKICAgICAgfQogICAgfSwKICAgIGNlbnRyZUxpbmVzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMocGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBzY2thblNlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVNja2FuUGF0aChwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbFNDS0FOOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBzeXN0ZW1TZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMuc3lzdGVtc1swXS5jaGlsZHJlbi5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0oa2V5LmxhYmVsLCBmbGFnKSk7CiAgICAgIH0KICAgIH0sCiAgICBmdHVTZWxlY3RlZDogZnVuY3Rpb24obW9kZWxzKSB7CiAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChtb2RlbHMsIHRydWUpOwogICAgfSwKICAgIGxheWVyc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrQWxsTGF5ZXJzOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIHRheG9uc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxUYXhvbnM6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBwYXRod2F5c1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlUGF0aChrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIGVuYWJsZVBhblpvb21FdmVudHM6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsKICAgIH0sCiAgICBldmVudENhbGxiYWNrOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIChldmVudFR5cGUsIGRhdGEsIC4uLmFyZ3MpID0+IHsKICAgICAgICBpZiAoZXZlbnRUeXBlICE9PSAicGFuLXpvb20iKSB7CiAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGEubGFiZWw7CiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107CiAgICAgICAgICBjb25zdCB0YXhvbm9teSA9IHRoaXMuZW50cnk7CiAgICAgICAgICBjb25zdCBiaW9sb2dpY2FsU2V4ID0gdGhpcy5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHsKICAgICAgICAgICAgZGF0YXNldDogZGF0YS5kYXRhc2V0LAogICAgICAgICAgICBiaW9sb2dpY2FsU2V4OiBiaW9sb2dpY2FsU2V4LAogICAgICAgICAgICB0YXhvbm9teTogdGF4b25vbXksCiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZSwKICAgICAgICAgICAgbGFiZWw6IGxhYmVsLAogICAgICAgICAgICBmZWF0dXJlOiBkYXRhLAogICAgICAgICAgICB1c2VyRGF0YTogYXJncywKICAgICAgICAgICAgZXZlbnRUeXBlOiBldmVudFR5cGUsCiAgICAgICAgICAgIHByb3ZlbmFuY2VUYXhvbm9teTogZGF0YS50YXhvbnMgPyBKU09OLnBhcnNlKGRhdGEudGF4b25zKSA6IHVuZGVmaW5lZAogICAgICAgICAgfTsKICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICJjbGljayIpIHsKICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOwogICAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICJtb3VzZWVudGVyIikgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3ZlciA9IGRhdGEubW9kZWxzID8gZGF0YS5tb2RlbHMgOiAiIjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEudHlwZSAhPT0gIm1hcmtlciIgJiYgZXZlbnRUeXBlID09PSAiY2xpY2siKXsKICAgICAgICAgICAgdGhpcy5jaGVja0FuZENyZWF0ZVBvcHVwcyhwYXlsb2FkKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kZW1pdCgicGFuLXpvb20tY2FsbGJhY2siLCBkYXRhKTsKICAgICAgICB9CiAgICAgIH07CiAgICB9LAogICAgLy8gY2hlY2tOZXVyb25DbGlja2VkIHNob3dzIGEgbmV1cm9uIHBhdGggcG9wIHVwIGlmIGEgcGF0aCB3YXMgcmVjZW50bHkgY2xpY2tlZAogICAgY2hlY2tBbmRDcmVhdGVQb3B1cHM6ICBhc3luYyBmdW5jdGlvbihkYXRhKSB7CiAgICAgIC8vIENhbGwgZmxhdG1hcCBkYXRhYmFzZSB0byBnZXQgdGhlIGNvbm5lY3Rpb24gZGF0YQogICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IHRoaXMuZmxhdG1hcFF1ZXJpZXMucmV0cmlldmVGbGF0bWFwS25vd2xlZGdlRm9yRXZlbnQoZGF0YSkKICAgICAgLy8gVGhlIGxpbmUgYmVsb3cgb25seSBjcmVhdGVzIHRoZSB0b29sdGlwIGlmIHNvbWUgZGF0YSB3YXMgZm91bmQgb24gdGhlIHBhdGggCiAgICAgIC8vIHJlc3VsdCAwIGlzIHRoZSBjb25uZWN0aW9uLCByZXN1bHQgMSBpcyB0aGUgcHVibWVkIHJlc3VsdHMgZnJvbSBmbGF0bWFwCiAgICAgIGlmKHJlc3VsdHNbMF0gfHwgcmVzdWx0c1sxXSB8fCggZGF0YS5mZWF0dXJlLmh5cGVybGlua3MgJiYgZGF0YS5mZWF0dXJlLmh5cGVybGlua3MubGVuZ3RoID4gMCkpewogICAgICAgIHRoaXMucmVzb3VyY2VGb3JUb29sdGlwID0gIGRhdGEucmVzb3VyY2VbMF07CiAgICAgICAgdGhpcy5jcmVhdGVUb29sdGlwRnJvbU5ldXJvbkN1cmF0aW9uKGRhdGEpOwogICAgICB9IAogICAgfSwKICAgIHBvcFVwQ3NzSGFja3M6IGZ1bmN0aW9uKCkgewogICAgICAvLyBCZWxvdyBpcyBhIGhhY2sgdG8gcmVtb3ZlIGZsYXRtYXAgdG9vbHRpcHMgd2hpbGUgcG9wdXAgaXMgb3BlbgogICAgICBsZXQgZnRvb2x0aXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIik7CiAgICAgIGlmIChmdG9vbHRpcCkgZnRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikuc3R5bGUuZGlzcGxheSA9CiAgICAgICAgImJsb2NrIjsKICAgICAgdGhpcy4kcmVmcy50b29sdGlwLiRlbC5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5vbmNsaWNrID0gKCkgPT4gewogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKS5zdHlsZS5kaXNwbGF5ID0KICAgICAgICAgICJibG9jayI7CiAgICAgIH07CiAgICB9LAogICAgY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbjogYXN5bmMgZnVuY3Rpb24oZGF0YSkgewogICAgICB0aGlzLnRvb2x0aXBFbnRyeSA9IGF3YWl0IHRoaXMuZmxhdG1hcFF1ZXJpZXMuY3JlYXRlVG9vbHRpcERhdGEoZGF0YSk7CiAgICAgIHRoaXMuZGlzcGxheVRvb2x0aXAoKTsKICAgIH0sCiAgICAvLyBLZWVwaW5nIHRoaXMgYXMgYW4gQVBJCiAgICBzaG93UG9wdXA6IGZ1bmN0aW9uKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgewogICAgICBsZXQgbXlPcHRpb25zID0gb3B0aW9uczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgaWYgKG15T3B0aW9ucykgewogICAgICAgICAgaWYgKCFteU9wdGlvbnMuY2xhc3NOYW1lKSBteU9wdGlvbnMuY2xhc3NOYW1lID0gImN1c3RvbS1wb3B1cCI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG15T3B0aW9ucyA9IHsgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwgcG9zaXRpb25BdExhc3RDbGljazogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoZmVhdHVyZUlkLCBub2RlLCBteU9wdGlvbnMpOwogICAgICB9CiAgICB9LAogICAgc2hvd01hcmtlclBvcHVwOiBmdW5jdGlvbihmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd01hcmtlclBvcHVwKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgIH0sCiAgICBjbG9zZU1pbmltYXA6IGZ1bmN0aW9uKCl7CiAgICAgIGxldCBtaW5pbWFwRWwgPSB0aGlzLiRyZWZzLmZsYXRtYXBDb250YWluZXIucXVlcnlTZWxlY3RvcignLm1hcGxpYnJlZ2wtY3RybC1taW5pbWFwJyk7IC8vIGZpbmQgbWluaW1hcAogICAgICBpZiAodGhpcy5taW5pbWFwU21hbGwpIHsgLy9zd2l0Y2ggdGhlIGNsYXNzZXMgb24gdGhlIG1pbmltYXAKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnZW5sYXJnZScpOwogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdzaHJpbmsnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnc2hyaW5rJyk7CiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2VubGFyZ2UnKTsKICAgICAgfQogICAgICB0aGlzLm1pbmltYXBTbWFsbCA9ICF0aGlzLm1pbmltYXBTbWFsbDsKICAgIH0sCiAgICBhZGRSZXNpemVCdXR0b25Ub01pbmltYXA6IGZ1bmN0aW9uKCl7CiAgICAgIGxldCBtaW5pbWFwRWwgPSB0aGlzLiRyZWZzLmZsYXRtYXBDb250YWluZXIucXVlcnlTZWxlY3RvcignLm1hcGxpYnJlZ2wtY3RybC1taW5pbWFwJyk7CiAgICAgIGlmIChtaW5pbWFwRWwpewogICAgICAgIHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7CiAgICAgICAgbWluaW1hcEVsLmFwcGVuZENoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7CiAgICAgICAgdGhpcy5taW5pbWFwUmVzaXplU2hvdyA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICBzZXRIZWxwTW9kZTogZnVuY3Rpb24oaGVscE1vZGUpIHsKICAgICAgaWYgKGhlbHBNb2RlKSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSB0cnVlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIGl0ZW0udmFsdWUgPSB0cnVlOwogICAgICAgIH0pOwogICAgICAgIHRoaXMub3BlbkZsYXRtYXBIZWxwUG9wdXAoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIGl0ZW0udmFsdWUgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLmNsb3NlRmxhdG1hcEhlbHBQb3B1cCgpOwogICAgICB9CiAgICB9LAogICAgc2hvd1Rvb2xpdGlwOiBmdW5jdGlvbih0b29sdGlwTnVtYmVyKSB7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSk7CiAgICAgICAgdGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIGhpZGVUb29saXRpcDogZnVuY3Rpb24odG9vbHRpcE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOwogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXNbdG9vbHRpcE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICB9LCA1MDApOwogICAgICB9CiAgICB9LAogICAgZGlzcGxheVRvb2x0aXA6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoCiAgICAgICAgdGhpcy5tYXBJbXAubW9kZWxGZWF0dXJlSWRzKHRoaXMucmVzb3VyY2VGb3JUb29sdGlwKVswXSwKICAgICAgICB0aGlzLiRyZWZzLnRvb2x0aXAuJGVsLAogICAgICAgIHsgY2xhc3NOYW1lOiAiZmxhdG1hcHZ1ZXItcG9wb3ZlciIsIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUgfQogICAgICApOwogICAgICB0aGlzLnBvcFVwQ3NzSGFja3MoKTsKICAgIH0sCiAgICBvcGVuRmxhdG1hcEhlbHBQb3B1cDogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGxldCBoZWFydElkID0gdGhpcy5tYXBJbXAuZmVhdHVyZUlkc0Zvck1vZGVsKCJVQkVST046MDAwMDk0OCIpWzBdOwogICAgICAgIGNvbnN0IGVsbSA9ICJDbGljayBmb3IgbW9yZSBpbmZvcm1hdGlvbiI7CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGhlYXJ0SWQsIGVsbSwgewogICAgICAgICAgYW5jaG9yOiAidG9wIiwKICAgICAgICAgIGNsYXNzTmFtZTogImZsYXRtYXAtcG9wdXAtcG9wcGVyIgogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgY2xvc2VGbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy4kZWwKICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikKICAgICAgICAuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIGl0ZW0uY2xpY2soKTsKICAgICAgICB9KTsKICAgIH0sCiAgICBnZXRMYWJlbHM6IGZ1bmN0aW9uKCkgewogICAgICBsZXQgbGFiZWxzID0gW107CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGxldCBhbm5vdGF0aW9ucyA9IHRoaXMubWFwSW1wLmFubm90YXRpb25zOwogICAgICAgIGZvciAobGV0IHZhbHVlIG9mIGFubm90YXRpb25zLnZhbHVlcygpKSB7CiAgICAgICAgICBpZiAodmFsdWUubGFiZWwpIGxhYmVscy5wdXNoKHZhbHVlLmxhYmVsKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChsYWJlbHMpKTsKICAgICAgfQogICAgfSwKICAgIGdldFN0YXRlOiBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgbGV0IHN0YXRlID0gewogICAgICAgICAgZW50cnk6IHRoaXMuZW50cnksCiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQogICAgICAgIH07CiAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IHRoaXMubWFwSW1wLmdldElkZW50aWZpZXIoKTsKICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KQogICAgICAgICAgc3RhdGVbJ2Jpb2xvZ2ljYWxTZXgnXSA9IHRoaXMuYmlvbG9naWNhbFNleDsKICAgICAgICBlbHNlIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCkKICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgaWYgKGlkZW50aWZpZXIgJiYgaWRlbnRpZmllci51dWlkKQogICAgICAgICAgc3RhdGVbJ3V1aWQnXSA9IGlkZW50aWZpZXIudXVpZDsKICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICBzZXRTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmIAogICAgICAgICAgKHN0YXRlLmVudHJ5ICYmICh0aGlzLmVudHJ5ID09IHN0YXRlLmVudHJ5KSkgJiYKICAgICAgICAgICghc3RhdGUuYmlvbG9naWNhbFNleCB8fCAoc3RhdGUuYmlvbG9naWNhbFNleCA9PT0gdGhpcy5iaW9sb2dpY2FsU2V4KSkpIAogICAgICAgIHsKICAgICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkgewogICAgICAgICAgICB0aGlzLm1hcEltcC5zZXRTdGF0ZShzdGF0ZS52aWV3cG9ydCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY3JlYXRlRmxhdG1hcChzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IGZhbHNlOwogICAgICB9CiAgICB9LAogICAgcmVzdG9yZU1hcFN0YXRlOiBmdW5jdGlvbihzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpCiAgICAgICAgICB0aGlzLm1hcEltcC5zZXRTdGF0ZShzdGF0ZS52aWV3cG9ydCk7CiAgICAgICAgaWYgKHN0YXRlLnNlYXJjaFRlcm0pCiAgICAgICAgICB0aGlzLnNlYXJjaEFuZFNob3dSZXN1bHQoc3RhdGUuc2VhcmNoVGVybSwgdHJ1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjcmVhdGVGbGF0bWFwOiBmdW5jdGlvbihzdGF0ZSkgewogICAgICBpZiAoIXRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpIHsKICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgIGxldCBtaW5pbWFwID0gZmFsc2U7CiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1pbmltYXApIHsKICAgICAgICAgIG1pbmltYXAgPSB7IHBvc2l0aW9uOiAidG9wLXJpZ2h0IiB9OwogICAgICAgIH0KCiAgICAgICAgLy9BcyBmb3IgZmxhdG1hcC12aWV3ZXJAMi4yLjcsIHNlZSBiZWxvdyBmb3IgdGhlIGRvY3VtZW50YXRpb24gCiAgICAgICAgLy9mb3IgdGhlIGlkZW50aWZpZXI6CgogICAgICAgIC8vQGFyZyBpZGVudGlmaWVyIHtzdHJpbmd8T2JqZWN0fQogICAgICAgIC8vIEEgc3RyaW5nIG9yIG9iamVjdCBpZGVudGlmeWluZyB0aGUgbWFwIHRvIGxvYWQuIElmIGEgc3RyaW5nIGl0cwogICAgICAgIC8vIHZhbHVlIGNhbiBiZSBlaXRoZXIgdGhlIG1hcCdzIGBgdXVpZGBgLCBhc3NpZ25lZCBhdCBnZW5lcmF0aW9uIHRpbWUsCiAgICAgICAgLy8gb3IgdGF4b24gYW5kIGJpb2xvZ2ljYWwgc2V4IGlkZW50aWZpZXJzIG9mIHRoZSBzcGVjaWVzIHRoYXQgdGhlIG1hcAogICAgICAgIC8vIHJlcHJlc2VudHMuIFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBhIG1hcCBpcyBsb2FkZWQgdW5sZXNzIGl0IGhhcyBiZWVuCiAgICAgICAgLy8gaWRlbnRpZmllZCB1c2luZyBhIGBgdXVpZGBgIChzZWUgYmVsb3cpLgogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci50YXhvbiB7c3RyaW5nfSBUaGUgdGF4b24gaWRlbnRpZmllciBvZiB0aGUgc3BlY2llcyAKICAgICAgICAvLyAgcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGEgaW4gdGhlIG1hcCdzIHNvdXJjZSBmaWxlLgogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4IHtzdHJpbmd9IFRoZSBiaW9sb2dpY2FsIHNleCBvZiB0aGUgc3BlY2llcwogICAgICAgIC8vIHJlcHJlc2VudGVkIGJ5IHRoZSBtYXAuIFRoaXMgaXMgc3BlY2lmaWVkIGFzIG1ldGFkYXRhaW4gdGhlIG1hcCdzIHNvdXJjZSBmaWxlLgogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci51dWlkIHtzdHJpbmd9IFRoZSB1bmlxdWUgdXVpZCB0aGUgZmxhdG1hcC4gSWYgZ2l2ZW4gdGhlbiB0aGlzIGV4YWN0IG1hcCB3aWxsCiAgICAgICAgLy8gIGJlIGxvYWRlZCwgb3ZlcnJpZGluZyBgYHRheG9uYGAgYW5kIGBgYmlvbG9naWNhbFNleGBgLgoKICAgICAgICBsZXQgaWRlbnRpZmllciA9IHsgdGF4b246IHRoaXMuZW50cnkgfTsKICAgICAgICAvL1RoaXMgbm93IGhhbmRsZSB0aGUgdXNlcyBvZiB1dWlkIHdoZW4gcmVzdW1pbmcgc3RhdGVzCiAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICBpZiAoc3RhdGUudXVpZCkgewogICAgICAgICAgICBpZGVudGlmaWVyID0geyB1dWlkOiBzdGF0ZS51dWlkIH07CiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmVudHJ5KSB7CiAgICAgICAgICAgIGlkZW50aWZpZXIudGF4b24gPSBzdGF0ZS5lbnRyeTsKICAgICAgICAgICAgaWYgKHN0YXRlLmJpb2xvZ2ljYWxTZXgpIHsKICAgICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSBzdGF0ZS5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgICB9IGVsc2UgaWYgKGlkZW50aWZpZXIudGF4b24gPT09ICJOQ0JJVGF4b246OTYwNiIpIHsKICAgICAgICAgICAgICAvL0ZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0iUEFUTzowMDAwMzg0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyBTZXQgdGhlIGJpb2xvaWNhbFNleCBub3cgaWYgbWFwIGlzIG5vdCByZXN1bWVkIGZyb20KICAgICAgICAgIC8vIGEgc2F2ZWQgc3RhdGUKICAgICAgICAgIGlmICh0aGlzLmJpb2xvZ2ljYWxTZXgpIHsKICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gdGhpcy5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbGV0IHByb21pc2UxID0gdGhpcy5tYXBNYW5hZ2VyLmxvYWRNYXAoCiAgICAgICAgICBpZGVudGlmaWVyLAogICAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LAogICAgICAgICAgdGhpcy5ldmVudENhbGxiYWNrKCksCiAgICAgICAgICB7CiAgICAgICAgICAgIC8vZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLAogICAgICAgICAgICAvL2Fubm90YXRhYmxlOiBmYWxzZSwKICAgICAgICAgICAgLy9kZWJ1ZzogdHJ1ZSwKICAgICAgICAgICAgZmVhdHVyZUluZm86IHRoaXMuZmVhdHVyZUluZm8sCiAgICAgICAgICAgICJtaW4tem9vbSI6IHRoaXMubWluWm9vbSwKICAgICAgICAgICAgbGF5ZXJDb250cm9sOiB0cnVlLAogICAgICAgICAgICBwYXRoQ29udHJvbHM6IHRydWUsCiAgICAgICAgICAgIHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSwKICAgICAgICAgICAgdG9vbHRpcHM6IHRoaXMudG9vbHRpcHMsCiAgICAgICAgICAgIG1pbmltYXA6IG1pbmltYXAKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHByb21pc2UxLnRoZW4ocmV0dXJuZWRPYmplY3QgPT4gewogICAgICAgICAgdGhpcy5tYXBJbXAgPSByZXR1cm5lZE9iamVjdDsKICAgICAgICAgIHRoaXMub25GbGF0bWFwUmVhZHkoKTsKICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZVRvQmVTZXQpCiAgICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy5yZXN0b3JlTWFwU3RhdGUoc3RhdGUpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHN0YXRlKSB7CiAgICAgICAgdGhpcy5fc3RhdGVUb0JlU2V0ID0geyB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0gfTsKICAgICAgICBpZiAodGhpcy5tYXBJbXAgJiYgIXRoaXMubG9hZGluZykKICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7CiAgICAgIH0KICAgIH0sCiAgICBjb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpIHsKICAgICAgY29uc3QgZWxlbSA9IHRoaXMuJHJlZnMuZGlzcGxheTsKICAgICAgaWYgKGVsZW0pIHsKICAgICAgICBjb25zdCBjb21wdXRlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbSk7CiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdUb3ApICsgcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ0JvdHRvbSk7CiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbS5jbGllbnRIZWlnaHQgLSBwYWRkaW5nOwogICAgICAgIHRoaXMucGF0aHdheXNNYXhIZWlnaHQgPSBoZWlnaHQgLSAxNzA7CiAgICAgIH0KICAgIH0sCiAgICBtYXBSZXNpemU6IGZ1bmN0aW9uKCkgewogICAgICB0cnkgewogICAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsKICAgICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICAgIHRoaXMubWFwSW1wLnJlc2l6ZSgpOwogICAgICAgICAgdGhpcy5zaG93TWluaW1hcCh0aGlzLmRpc3BsYXlNaW5pbWFwKTsKICAgICAgICAgIGlmICh0aGlzLm1hcEltcC5fbWluaW1hcCkgewogICAgICAgICAgICAgIHRoaXMubWFwSW1wLl9taW5pbWFwLnJlc2l6ZSgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCB7CiAgICAgICAgY29uc29sZS5lcnJvcigiTWFwIHJlc2l6ZSBlcnJvciIpOwogICAgICB9CiAgICB9LAogICAgb25GbGF0bWFwUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgIC8vIG9uRmxhdG1hcFJlYWR5IGlzIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gcnVuIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBmbGF0bWFwIGlzIGxvYWRlZAogICAgICB0aGlzLnNlbnNvciA9IG5ldyBSZXNpemVTZW5zb3IoCiAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LAogICAgICAgIHRoaXMubWFwUmVzaXplCiAgICAgICk7CiAgICAgIGlmICh0aGlzLm1hcEltcC5vcHRpb25zICYmIHRoaXMubWFwSW1wLm9wdGlvbnMuc3R5bGUgPT09ICJmdW5jdGlvbmFsIikgewogICAgICAgIHRoaXMuaXNGQyA9IHRydWU7CiAgICAgIH0KICAgICAgdGhpcy5tYXBJbXAuc2V0QmFja2dyb3VuZE9wYWNpdHkoMSk7CiAgICAgIHRoaXMuYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKHRoaXMuY3VycmVudEJhY2tncm91bmQpOwogICAgICB0aGlzLnBhdGh3YXlzID0gdGhpcy5tYXBJbXAucGF0aFR5cGVzKCk7CiAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNlbnRyZWxpbmVzKGZhbHNlKTsKICAgICAgLy9EaXNhYmxlIGxheWVycyBmb3Igbm93CiAgICAgIC8vdGhpcy5sYXllcnMgPSB0aGlzLm1hcEltcC5nZXRMYXllcnMoKTsKICAgICAgdGhpcy5zeXN0ZW1zID0gcHJvY2Vzc1N5c3RlbXModGhpcy5tYXBJbXAuZ2V0U3lzdGVtcygpKTsKICAgICAgdGhpcy50YXhvbkNvbm5lY3Rpdml0eSA9IHByb2Nlc3NUYXhvbih0aGlzLmZsYXRtYXBBUEksIHRoaXMubWFwSW1wLnRheG9uSWRlbnRpZmllcnMpOwogICAgICB0aGlzLmFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcCgpOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5jb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpOwogICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlOwogICAgICB0aGlzLm1hcFJlc2l6ZSgpOwogICAgICB0aGlzLiRlbWl0KCJyZWFkeSIsIHRoaXMpOwogICAgfSwKICAgIHNob3dNaW5pbWFwOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkKICAgICAgICB0aGlzLm1hcEltcC5zaG93TWluaW1hcChmbGFnKTsKICAgIH0sCiAgICBzaG93UGF0aHdheXNEcmF3ZXI6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIGRpc3BsYXkgZmVhdHVyZXMgd2l0aCBhbm5vdGF0aW9uIG1hdGNoaW5nIHRoZSBwcm92aWRlZCB0ZXJtLAogICAgICogd2l0aCB0aGUgb3B0aW9uIHRvIGRpc3BsYXkgdGhlIGxhYmVsIHVzaW5nIGRpc3BsYXlMYWJlbCBmbGFnLiAKICAgICAqLwogICAgc2VhcmNoQW5kU2hvd1Jlc3VsdDogZnVuY3Rpb24odGVybSwgZGlzcGxheUxhYmVsKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGlmICh0ZXJtID09PSB1bmRlZmluZWQgfHwgdGVybSA9PT0gIiIpIHsKICAgICAgICAgIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHMgJiYKICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1NlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7CiAgICAgICAgICAgIGlmIChkaXNwbGF5TGFiZWwgJiYgCiAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCAmJiAKICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0udGV4dCkgewogICAgICAgICAgICAgIGNvbnN0IGFubm90YXRpb24gPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uKHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQpOwogICAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cCgKICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQsCiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uLmxhYmVsLAogICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICJjdXN0b20tcG9wdXAiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiBmYWxzZSwgcHJlc2VydmVTZWxlY3Rpb246IHRydWUgfQogICAgICAgICAgICAgICkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5tYXBJbXAuY2xlYXJTZWFyY2hSZXN1bHRzKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIEdldCB0aGUgbGlzdCBvZiBzdWdnZXN0ZWQgdGVybXMKICAgICAqLwogICAgc2VhcmNoU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uKHRlcm0pIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKQogICAgICAgIHJldHVybiB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgIHJldHVybiBbXTsKICAgIH0sCiAgfSwKICBwcm9wczogewogICAgZW50cnk6IFN0cmluZywKICAgIGJpb2xvZ2ljYWxTZXg6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIGZlYXR1cmVJbmZvOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbWluWm9vbTogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDQKICAgIH0sCiAgICBwYXRoQ29udHJvbHM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBzZWFyY2hhYmxlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbGF5ZXJDb250cm9sOiB7CiAgICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHRvb2x0aXBzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICBoZWxwTW9kZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHJlbmRlckF0TW91bnRlZDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgZGlzcGxheU1pbmltYXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBkaXNwbGF5V2FybmluZzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQogICAgICogcHJlc2VudGVkIG9yIG5vdC4KICAgICAqLwogICAgZW5hYmxlT3Blbk1hcFVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlLAogICAgfSwKICAgIG9wZW5NYXBPcHRpb25zOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwKICAgICAgICAgICAga2V5OiAiQUMiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBkaXNwbGF5OiAiT3BlbiBGQyBNYXAiLAogICAgICAgICAgICBrZXk6ICJGQyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIDNEIEh1bWFuIE1hcCIsCiAgICAgICAgICAgIGtleTogIjNEIgogICAgICAgICAgfSwKICAgICAgICBdCiAgICAgIH0sCiAgICB9LAogICAgaXNMZWdhY3k6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBkaXNwbGF5TGF0ZXN0Q2hhbmdlczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICInT2JzZXJ2ZWQgSW4nIGNvbnRyb2xzIGFuZCBpbmZvcm1hdGlvbiBhcmUgbm93IGluY2x1ZGVkIGluIEFDIG1hcHMuIFN5c3RlbSBjb250cm9sIHdpdGggRlRVIGluZm9ybWF0aW9uIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBGQyBtYXAuIiwKICAgIH0sCiAgICAvKioKICAgICAqIFN0YXRlIGNvbnRhaW5pbmcgc3RhdGUgb2YgdGhlIGZsYXRtYXAuCiAgICAgKi8KICAgIHN0YXRlOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogdW5kZWZpbmVkCiAgICB9LAogICAgLyoqCiAgICAgKiBTcGVjaWZ5IHRoZSBlbmRwb2ludCBvZiB0aGUgZmxhdG1hcCBzZXJ2ZXIuCiAgICAgKi8KICAgIGZsYXRtYXBBUEk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9tYXBjb3JlLWRlbW8ub3JnL2N1cnJlbnQvZmxhdG1hcC92My8iCiAgICB9LAogICAgc3BhcmNBUEk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9hcGkuc3BhcmMuc2NpZW5jZS8iCiAgICB9LAogIH0sCiAgcHJvdmlkZSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNwYXJjQVBJOiB0aGlzLnNwYXJjQVBJLAogICAgICBmbGF0bWFwQVBJOiB0aGlzLmZsYXRtYXBBUEkKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHsKICAgICAgbGF5ZXJzOiBbXSwKICAgICAgcGF0aHdheXM6IFtdLAogICAgICBzY2thbkRpc3BsYXk6IFsKICAgICAgICB7CiAgICAgICAgICBsYWJlbDogIkRpc3BsYXkgUGF0aCB3aXRoIFNDS0FOIiwKICAgICAgICAgIGtleTogIlZBTElEIiwKICAgICAgICB9LAogICAgICBdLAogICAgICBjZW50cmVMaW5lczogWwogICAgICAgIHsKICAgICAgICAgIGxhYmVsOiAiRGlzcGxheSBOZXJ2ZXMiLAogICAgICAgICAga2V5OiAiY2VudHJlbGluZXMiLAogICAgICAgICAgZW5hYmxlZDogZmFsc2UKICAgICAgICB9CiAgICAgIF0sCiAgICAgIHN5c3RlbXM6IFtdLAogICAgICB0YXhvbkNvbm5lY3Rpdml0eTogW10sCiAgICAgIHBhdGh3YXlzTWF4SGVpZ2h0OiAxMDAwLAogICAgICBob3ZlclZpc2liaWxpdGllczogWwogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICBdLAogICAgICBpc0ZDOiBmYWxzZSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgY3VycmVudEJhY2tncm91bmQ6ICJ3aGl0ZSIsCiAgICAgIGF2YWlsYWJsZUJhY2tncm91bmQ6IFsid2hpdGUiLCAibGlnaHRza3libHVlIiwgImJsYWNrIl0sCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBmbGF0bWFwTWFya2VyOiBmbGF0bWFwTWFya2VyLAogICAgICB0b29sdGlwRW50cnk6IGNyZWF0ZVVuZmlsbGVkVG9vbHRpcERhdGEoKSwKICAgICAgY29ubmVjdGl2aXR5VG9vbHRpcFZpc2libGU6IGZhbHNlLAogICAgICByZXNvdXJjZUZvclRvb2x0aXA6IHVuZGVmaW5lZCwKICAgICAgZHJhd2VyT3BlbjogZmFsc2UsCiAgICAgIGNvbG91clJhZGlvOiB0cnVlLAogICAgICBvdXRsaW5lc1JhZGlvOiB0cnVlLAogICAgICBtaW5pbWFwUmVzaXplU2hvdzogZmFsc2UsCiAgICAgIG1pbmltYXBTbWFsbDogZmFsc2UsCiAgICAgIGN1cnJlbnRBY3RpdmU6ICIiLAogICAgICBjdXJyZW50SG92ZXI6ICIiLAogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBlbnRyeTogZnVuY3Rpb24oKSB7CiAgICAgIGlmICghdGhpcy5zdGF0ZSkgdGhpcy5jcmVhdGVGbGF0bWFwKCk7CiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgICBpZiAodGhpcy5tYXBNYW5hZ2VyKSB7CiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy90aGlzIGNvbXBvbmVudCBoYXMgbm90IGJlZW4gbW91bnRlZCB5ZXQKICAgICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uKCkgewogICAgY29uc3QgZmxhdG1hcCA9IHJlcXVpcmUoIkBhYmktc29mdHdhcmUvZmxhdG1hcC12aWV3ZXIiKTsKICAgIHRoaXMudG9vbHRpcFdhaXQgPSBbXTsKICAgIHRoaXMudG9vbHRpcFdhaXQubGVuZ3RoID0gdGhpcy5ob3ZlclZpc2liaWxpdGllcy5sZW5ndGg7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSBuZXcgZmxhdG1hcC5NYXBNYW5hZ2VyKHRoaXMuZmxhdG1hcEFQSSk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzID0gbmV3IEZsYXRtYXBRdWVyaWVzKCk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzLmluaXRpYWxpc2UodGhpcy5mbGF0bWFwQVBJKTsKICAgIGlmICh0aGlzLnN0YXRlKSB7CiAgICAgIC8vU3RhdGUgaXMgc2V0IGFuZCByZXF1aXJlIHRvIHNldCB0aGUgc3RhdGUKICAgICAgaWYgKHRoaXMuc2V0U3RhdGVSZXF1aXJlZCkgewogICAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5zdGF0ZSk7CiAgICAgIH0KICAgIH0gZWxzZSBpZih0aGlzLnJlbmRlckF0TW91bnRlZCkgewogICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoKTsKICAgIH0KICB9Cn07Cg=="},{"version":3,"sources":["FlatmapVuer.vue"],"names":[],"mappings":";AA0WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\n\n\n\n\n\n\n"]}]}