{"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/thread-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:DQovKiBlc2xpbnQtZGlzYWJsZSBuby1hbGVydCwgbm8tY29uc29sZSAqLw0KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOw0KaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsNCmltcG9ydCBTZWxlY3Rpb25zR3JvdXAgZnJvbSAiLi9TZWxlY3Rpb25zR3JvdXAiOw0KaW1wb3J0IFRyZWVDb250cm9scyBmcm9tICIuL1RyZWVDb250cm9scyI7DQppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7DQppbXBvcnQgU3ZnTGVnZW5kcyBmcm9tICIuL2xlZ2VuZHMvU3ZnTGVnZW5kcyI7DQppbXBvcnQgew0KICBCdXR0b24sDQogIENvbCwNCiAgTG9hZGluZywNCiAgUmFkaW8sDQogIFJhZGlvR3JvdXAsDQogIFJvdw0KfSBmcm9tICJlbGVtZW50LXVpIjsNCmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsNCmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsNCmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsNCmltcG9ydCB7RmxhdG1hcFF1ZXJpZXMsIGZpbmRUYXhvbm9teUxhYmVsfSBmcm9tICIuLi9zZXJ2aWNlcy9mbGF0bWFwUXVlcmllcy5qcyI7DQoNCmxvY2FsZS51c2UobGFuZyk7DQpWdWUudXNlKEJ1dHRvbik7DQpWdWUudXNlKENvbCk7DQpWdWUudXNlKExvYWRpbmcuZGlyZWN0aXZlKTsNClZ1ZS51c2UoUmFkaW8pOw0KVnVlLnVzZShSYWRpb0dyb3VwKTsNClZ1ZS51c2UoUm93KTsNCmNvbnN0IFJlc2l6ZVNlbnNvciA9IHJlcXVpcmUoImNzcy1lbGVtZW50LXF1ZXJpZXMvc3JjL1Jlc2l6ZVNlbnNvciIpOw0KDQpjb25zdCBwcm9jZXNzVGF4b24gPSAoZmxhdG1hcEFQSSwgdGF4b25JZGVudGlmaWVycykgPT4gew0KICBsZXQgcHJvY2Vzc2VkID0gW107DQogIHRheG9uSWRlbnRpZmllcnMuZm9yRWFjaCh0YXhvbiA9PiB7DQogICAgZmluZFRheG9ub215TGFiZWwoZmxhdG1hcEFQSSwgdGF4b24pLnRoZW4odmFsdWUgPT4gew0KICAgICAgY29uc3QgaXRlbSA9IHsgdGF4b24sIGxhYmVsOiB2YWx1ZX07DQogICAgICBwcm9jZXNzZWQucHVzaChpdGVtKTsNCiAgICB9KTsNCiAgfSk7DQoNCiAgcmV0dXJuIHByb2Nlc3NlZDsNCn0NCg0KY29uc3QgcHJvY2Vzc0ZUVXMgPSAocGFyZW50LCBrZXkpID0+IHsNCiAgY29uc3QgZnR1cyA9IFtdOw0KICBsZXQgaXRlbXMgPSBwYXJlbnQub3JnYW5zID8gcGFyZW50Lm9yZ2FucyA6IHBhcmVudC5mdHVzOw0KICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1zID8gaXRlbXMuZmlsdGVyKA0KICAgIChvYmosIGluZGV4KSA9Pg0KICAgICAgaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmxhYmVsID09PSBvYmoubGFiZWwpID09PSBpbmRleA0KICAgICkgOiB1bmRlZmluZWQNCiAgaWYgKGNoaWxkcmVuKSB7DQogICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7DQogICAgICBjb25zdCBkYXRhID0gew0KICAgICAgICBsYWJlbDogY2hpbGQubGFiZWwsDQogICAgICAgIG1vZGVsczogY2hpbGQubW9kZWxzLA0KICAgICAgICBrZXk6IGAke2tleX0uJHtjaGlsZC5sYWJlbH1gLA0KICAgICAgfTsNCiAgICAgIGNvbnN0IGdyYW5kQ2hpbGRyZW4gPSBwcm9jZXNzRlRVcyhjaGlsZCwgZGF0YS5rZXkpOw0KICAgICAgaWYgKGdyYW5kQ2hpbGRyZW4ubGVuZ3RoID4gMCkgew0KICAgICAgICBkYXRhLmNoaWxkcmVuID0gZ3JhbmRDaGlsZHJlbjsNCiAgICAgIH0NCiAgICAgIGZ0dXMucHVzaChkYXRhKTsNCiAgICB9KQ0KICB9DQogIHJldHVybiBmdHVzOw0KfQ0KDQpjb25zdCBwcm9jZXNzU3lzdGVtcyA9IHN5c3RlbXMgPT4gew0KICBjb25zdCBhbGxTeXN0ZW1zID0gW107DQogIGlmIChzeXN0ZW1zICYmIHN5c3RlbXMubGVuZ3RoID4gMCkgew0KICAgIGNvbnN0IGRhdGEgPSB7IGxhYmVsOiAiQWxsIiwga2V5OiAiQWxsIiwgY2hpbGRyZW46IFtdIH07DQogICAgc3lzdGVtcy5mb3JFYWNoKHN5c3RlbSA9PiB7DQogICAgICBjb25zdCBjaGlsZCA9IHsNCiAgICAgICAgY29sb3VyOiBzeXN0ZW0uY29sb3VyLA0KICAgICAgICBlbmFibGVkOiBzeXN0ZW0uZW5hYmxlZCwNCiAgICAgICAgbGFiZWw6IHN5c3RlbS5pZCwNCiAgICAgICAga2V5OiBzeXN0ZW0uaWQsDQogICAgICB9Ow0KICAgICAgY29uc3QgY2hpbGRyZW4gPSBwcm9jZXNzRlRVcyhzeXN0ZW0sIGNoaWxkLmtleSk7DQogICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkNCiAgICAgICAgY2hpbGQuY2hpbGRyZW4gPSBjaGlsZHJlbjsNCiAgICAgIGRhdGEuY2hpbGRyZW4ucHVzaChjaGlsZCk7DQogICAgfSk7DQoNCiAgICBhbGxTeXN0ZW1zLnB1c2goZGF0YSk7DQogIH0NCiAgDQogIHJldHVybiBhbGxTeXN0ZW1zOw0KfQ0KDQpjb25zdCBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhID0gZnVuY3Rpb24gKCl7DQogIHJldHVybiB7DQogICAgZGVzdGluYXRpb25zOiBbXSwNCiAgICBvcmlnaW5zOiBbXSwNCiAgICBjb21wb25lbnRzOiBbXSwNCiAgICBkZXN0aW5hdGlvbnNXaXRoRGF0YXNldHM6IFtdLA0KICAgIG9yaWdpbnNXaXRoRGF0YXNldHM6IFtdLA0KICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLA0KICAgIHJlc291cmNlOiB1bmRlZmluZWQNCiAgfQ0KfQ0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJGbGF0bWFwVnVlciIsDQogIGNvbXBvbmVudHM6IHsNCiAgICBNYXBTdmdJY29uLA0KICAgIE1hcFN2Z1Nwcml0ZUNvbG9yLA0KICAgIFRvb2x0aXAsDQogICAgVHJlZUNvbnRyb2xzLA0KICAgIFNlbGVjdGlvbnNHcm91cCwNCiAgICBTdmdMZWdlbmRzDQogIH0sDQogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24oKSB7DQogICAgdGhpcy5tYXBNYW5hZ2VyID0gdW5kZWZpbmVkOw0KICAgIHRoaXMubWFwSW1wID0gdW5kZWZpbmVkOw0KICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUNCiAgICAvL2NyZWF0ZWQgY2F1c2luZyBpc3N1ZSwgVGhpcyBmbGFnIHdpbGwNCiAgICAvL3Jlc29sdmUgdGhpcyBpc3N1ZS4NCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uKCkgew0KICAgICAgbGV0IGJpb2xvZ2ljYWxTZXggPSB0aGlzLmJpb2xvZ2ljYWxTZXggPyB0aGlzLmJpb2xvZ2ljYWxTZXggOiB1bmRlZmluZWQ7DQogICAgICAvL0h1bWFuIHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcNCiAgICAgIGlmICh0aGlzLmVudHJ5ID09PSAiTkNCSVRheG9uOjk2MDYiKSB7DQogICAgICAgIGJpb2xvZ2ljYWxTZXggPSAiUEFUTzowMDAwMzg0IjsNCiAgICAgIH0NCiAgICAgIGNvbnN0IHN0YXRlID0gew0KICAgICAgICBlbnRyeTogdGhpcy5lbnRyeSwNCiAgICAgICAgYmlvbG9naWNhbFNleCwNCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkNCiAgICAgIH07DQogICAgICB0aGlzLiRlbWl0KCJ2aWV3LWxhdGVzdC1tYXAiLCBzdGF0ZSk7DQogICAgfSwNCiAgICBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uKGNvbG91cikgew0KICAgICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9IGNvbG91cjsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5zZXRCYWNrZ3JvdW5kQ29sb3VyKHRoaXMuY3VycmVudEJhY2tncm91bmQsIDEpOw0KICAgICAgfQ0KICAgIH0sDQogICAgdG9nZ2xlRHJhd2VyOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9ICF0aGlzLmRyYXdlck9wZW47DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgY29sb3VyL2dyZXlzY2FsZSBvZiBvcmdhbnMuDQogICAgICovDQogICAgc2V0Q29sb3VyOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICB0aGlzLmNvbG91clJhZGlvID0gZmxhZzsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5zZXRDb2xvdXIoeyBjb2xvdXI6IGZsYWcsIG91dGxpbmU6IHRoaXMub3V0bGluZXNSYWRpbyB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBvdXRsaW5lcyBmIG9yZ2Fucy4NCiAgICAgKi8NCiAgICBzZXRPdXRsaW5lczogZnVuY3Rpb24oZmxhZykgew0KICAgICAgdGhpcy5vdXRsaW5lUmFkaW8gPSBmbGFnOw0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogdGhpcy5jb2xvdXJSYWRpbywgb3V0bGluZTogZmxhZyB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBwYXRocyB0byBkZWZhdWx0Lg0KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuDQogICAgICovDQogICAgcmVzZXRWaWV3OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5yZXNldE1hcCgpOw0KICAgICAgICBpZiAodGhpcy4kcmVmcy5jZW50cmVsaW5lc1NlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy4kcmVmcy5za2NhblNlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy4kcmVmcy5sYXllcnNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLiRyZWZzLnN5c3RlbXNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKi8NCiAgICB6b29tSW46IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnpvb21JbigpOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gem9vbSBvdXQuDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKi8NCiAgICB6b29tT3V0OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC56b29tT3V0KCk7DQogICAgICB9DQogICAgfSwNCiAgICBjZW50cmVMaW5lc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMocGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBzY2thblNlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlU2NrYW5QYXRoKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNoZWNrQWxsU0NLQU46IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlU2NrYW5QYXRoKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgc3lzdGVtU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5zeXN0ZW1zWzBdLmNoaWxkcmVuLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZVN5c3RlbShrZXkubGFiZWwsIGZsYWcpKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGZ0dVNlbGVjdGVkOiBmdW5jdGlvbihtb2RlbHMpIHsNCiAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChtb2RlbHMsIHRydWUpOw0KICAgIH0sDQogICAgbGF5ZXJzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVMYXllcihwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbExheWVyczogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHRheG9uc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ29ubmVjdGl2aXR5QnlUYXhvbklkcyhwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbFRheG9uczogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVDb25uZWN0aXZpdHlCeVRheG9uSWRzKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgcGF0aHdheXNTZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVQYXRoKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZW5hYmxlUGFuWm9vbUV2ZW50czogZnVuY3Rpb24oZmxhZykgew0KICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsNCiAgICB9LA0KICAgIGV2ZW50Q2FsbGJhY2s6IGZ1bmN0aW9uKCkgew0KICAgICAgcmV0dXJuIChldmVudFR5cGUsIGRhdGEsIC4uLmFyZ3MpID0+IHsNCiAgICAgICAgaWYgKGV2ZW50VHlwZSAhPT0gInBhbi16b29tIikgew0KICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YS5sYWJlbDsNCiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107DQogICAgICAgICAgY29uc3QgdGF4b25vbXkgPSB0aGlzLmVudHJ5Ow0KICAgICAgICAgIGNvbnN0IGJpb2xvZ2ljYWxTZXggPSB0aGlzLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHsNCiAgICAgICAgICAgIGRhdGFzZXQ6IGRhdGEuZGF0YXNldCwNCiAgICAgICAgICAgIGJpb2xvZ2ljYWxTZXg6IGJpb2xvZ2ljYWxTZXgsDQogICAgICAgICAgICB0YXhvbm9teTogdGF4b25vbXksDQogICAgICAgICAgICByZXNvdXJjZTogcmVzb3VyY2UsDQogICAgICAgICAgICBsYWJlbDogbGFiZWwsDQogICAgICAgICAgICBmZWF0dXJlOiBkYXRhLA0KICAgICAgICAgICAgdXNlckRhdGE6IGFyZ3MsDQogICAgICAgICAgICBldmVudFR5cGU6IGV2ZW50VHlwZSwNCiAgICAgICAgICAgIHByb3ZlbmFuY2VUYXhvbm9teTogZGF0YS50YXhvbnMgPyBKU09OLnBhcnNlKGRhdGEudGF4b25zKSA6IHVuZGVmaW5lZA0KICAgICAgICAgIH07DQogICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PT0gImNsaWNrIikgew0KICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOw0KICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAibW91c2VlbnRlciIpIHsNCiAgICAgICAgICAgIHRoaXMuY3VycmVudEhvdmVyID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnR5cGUgIT09ICJtYXJrZXIiICYmIGV2ZW50VHlwZSA9PT0gImNsaWNrIil7DQogICAgICAgICAgICB0aGlzLmNoZWNrQW5kQ3JlYXRlUG9wdXBzKHBheWxvYWQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICB0aGlzLiRlbWl0KCJyZXNvdXJjZS1zZWxlY3RlZCIsIHBheWxvYWQpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJGVtaXQoInBhbi16b29tLWNhbGxiYWNrIiwgZGF0YSk7DQogICAgICAgIH0NCiAgICAgIH07DQogICAgfSwNCiAgICAvLyBjaGVja05ldXJvbkNsaWNrZWQgc2hvd3MgYSBuZXVyb24gcGF0aCBwb3AgdXAgaWYgYSBwYXRoIHdhcyByZWNlbnRseSBjbGlja2VkDQogICAgY2hlY2tBbmRDcmVhdGVQb3B1cHM6ICBhc3luYyBmdW5jdGlvbihkYXRhKSB7DQogICAgICAvLyBDYWxsIGZsYXRtYXAgZGF0YWJhc2UgdG8gZ2V0IHRoZSBjb25uZWN0aW9uIGRhdGENCiAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgdGhpcy5mbGF0bWFwUXVlcmllcy5yZXRyaWV2ZUZsYXRtYXBLbm93bGVkZ2VGb3JFdmVudChkYXRhKQ0KICAgICAgLy8gVGhlIGxpbmUgYmVsb3cgb25seSBjcmVhdGVzIHRoZSB0b29sdGlwIGlmIHNvbWUgZGF0YSB3YXMgZm91bmQgb24gdGhlIHBhdGggDQogICAgICAvLyByZXN1bHQgMCBpcyB0aGUgY29ubmVjdGlvbiwgcmVzdWx0IDEgaXMgdGhlIHB1Ym1lZCByZXN1bHRzIGZyb20gZmxhdG1hcA0KICAgICAgaWYocmVzdWx0c1swXSB8fCByZXN1bHRzWzFdIHx8KCBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcyAmJiBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcy5sZW5ndGggPiAwKSl7DQogICAgICAgIHRoaXMucmVzb3VyY2VGb3JUb29sdGlwID0gIGRhdGEucmVzb3VyY2VbMF07DQogICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKTsNCiAgICAgIH0gDQogICAgfSwNCiAgICBwb3BVcENzc0hhY2tzOiBmdW5jdGlvbigpIHsNCiAgICAgIC8vIEJlbG93IGlzIGEgaGFjayB0byByZW1vdmUgZmxhdG1hcCB0b29sdGlwcyB3aGlsZSBwb3B1cCBpcyBvcGVuDQogICAgICBsZXQgZnRvb2x0aXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIik7DQogICAgICBpZiAoZnRvb2x0aXApIGZ0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5zdHlsZS5kaXNwbGF5ID0NCiAgICAgICAgImJsb2NrIjsNCiAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsNCiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLm9uY2xpY2sgPSAoKSA9PiB7DQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKS5zdHlsZS5kaXNwbGF5ID0NCiAgICAgICAgICAiYmxvY2siOw0KICAgICAgfTsNCiAgICB9LA0KICAgIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb246IGFzeW5jIGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgIHRoaXMudG9vbHRpcEVudHJ5ID0gYXdhaXQgdGhpcy5mbGF0bWFwUXVlcmllcy5jcmVhdGVUb29sdGlwRGF0YShkYXRhKTsNCiAgICAgIHRoaXMuZGlzcGxheVRvb2x0aXAoKTsNCiAgICB9LA0KICAgIC8vIEtlZXBpbmcgdGhpcyBhcyBhbiBBUEkNCiAgICBzaG93UG9wdXA6IGZ1bmN0aW9uKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgew0KICAgICAgbGV0IG15T3B0aW9ucyA9IG9wdGlvbnM7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgaWYgKG15T3B0aW9ucykgew0KICAgICAgICAgIGlmICghbXlPcHRpb25zLmNsYXNzTmFtZSkgbXlPcHRpb25zLmNsYXNzTmFtZSA9ICJjdXN0b20tcG9wdXAiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIG15T3B0aW9ucyA9IHsgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwgcG9zaXRpb25BdExhc3RDbGljazogdHJ1ZSB9Ow0KICAgICAgICB9DQogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG15T3B0aW9ucyk7DQogICAgICB9DQogICAgfSwNCiAgICBzaG93TWFya2VyUG9wdXA6IGZ1bmN0aW9uKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNob3dNYXJrZXJQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2xvc2VNaW5pbWFwOiBmdW5jdGlvbigpew0KICAgICAgbGV0IG1pbmltYXBFbCA9IHRoaXMuJHJlZnMuZmxhdG1hcENvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcubWFwbGlicmVnbC1jdHJsLW1pbmltYXAnKTsgLy8gZmluZCBtaW5pbWFwDQogICAgICBpZiAodGhpcy5taW5pbWFwU21hbGwpIHsgLy9zd2l0Y2ggdGhlIGNsYXNzZXMgb24gdGhlIG1pbmltYXANCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ2VubGFyZ2UnKTsNCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5yZW1vdmUoJ3NocmluaycpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ3NocmluaycpOw0KICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnZW5sYXJnZScpOw0KICAgICAgfQ0KICAgICAgdGhpcy5taW5pbWFwU21hbGwgPSAhdGhpcy5taW5pbWFwU21hbGw7DQogICAgfSwNCiAgICBhZGRSZXNpemVCdXR0b25Ub01pbmltYXA6IGZ1bmN0aW9uKCl7DQogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOw0KICAgICAgaWYgKG1pbmltYXBFbCl7DQogICAgICAgIHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7DQogICAgICAgIG1pbmltYXBFbC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOw0KICAgICAgICB0aGlzLm1pbmltYXBSZXNpemVTaG93ID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbihoZWxwTW9kZSkgew0KICAgICAgaWYgKGhlbHBNb2RlKSB7DQogICAgICAgIHRoaXMuaW5IZWxwID0gdHJ1ZTsNCiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgIGl0ZW0udmFsdWUgPSB0cnVlOw0KICAgICAgICB9KTsNCiAgICAgICAgdGhpcy5vcGVuRmxhdG1hcEhlbHBQb3B1cCgpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy5pbkhlbHAgPSBmYWxzZTsNCiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgIGl0ZW0udmFsdWUgPSBmYWxzZTsNCiAgICAgICAgfSk7DQogICAgICAgIHRoaXMuY2xvc2VGbGF0bWFwSGVscFBvcHVwKCk7DQogICAgICB9DQogICAgfSwNCiAgICBzaG93VG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsNCiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsNCiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOw0KICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IHRydWU7DQogICAgICAgIH0sIDUwMCk7DQogICAgICB9DQogICAgfSwNCiAgICBoaWRlVG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsNCiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsNCiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOw0KICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IGZhbHNlOw0KICAgICAgICB9LCA1MDApOw0KICAgICAgfQ0KICAgIH0sDQogICAgZGlzcGxheVRvb2x0aXA6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKA0KICAgICAgICB0aGlzLm1hcEltcC5tb2RlbEZlYXR1cmVJZHModGhpcy5yZXNvdXJjZUZvclRvb2x0aXApWzBdLA0KICAgICAgICB0aGlzLiRyZWZzLnRvb2x0aXAuJGVsLA0KICAgICAgICB7IGNsYXNzTmFtZTogImZsYXRtYXB2dWVyLXBvcG92ZXIiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlIH0NCiAgICAgICk7DQogICAgICB0aGlzLnBvcFVwQ3NzSGFja3MoKTsNCiAgICB9LA0KICAgIG9wZW5GbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBsZXQgaGVhcnRJZCA9IHRoaXMubWFwSW1wLmZlYXR1cmVJZHNGb3JNb2RlbCgiVUJFUk9OOjAwMDA5NDgiKVswXTsNCiAgICAgICAgY29uc3QgZWxtID0gIkNsaWNrIGZvciBtb3JlIGluZm9ybWF0aW9uIjsNCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGhlYXJ0SWQsIGVsbSwgew0KICAgICAgICAgIGFuY2hvcjogInRvcCIsDQogICAgICAgICAgY2xhc3NOYW1lOiAiZmxhdG1hcC1wb3B1cC1wb3BwZXIiDQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2xvc2VGbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuJGVsDQogICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKQ0KICAgICAgICAuZm9yRWFjaChpdGVtID0+IHsNCiAgICAgICAgICBpdGVtLmNsaWNrKCk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgZ2V0TGFiZWxzOiBmdW5jdGlvbigpIHsNCiAgICAgIGxldCBsYWJlbHMgPSBbXTsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBsZXQgYW5ub3RhdGlvbnMgPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uczsNCiAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgYW5ub3RhdGlvbnMudmFsdWVzKCkpIHsNCiAgICAgICAgICBpZiAodmFsdWUubGFiZWwpIGxhYmVscy5wdXNoKHZhbHVlLmxhYmVsKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGxhYmVscykpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZ2V0U3RhdGU6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIGxldCBzdGF0ZSA9IHsNCiAgICAgICAgICBlbnRyeTogdGhpcy5lbnRyeSwNCiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQ0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy5tYXBJbXAuZ2V0SWRlbnRpZmllcigpOw0KICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KQ0KICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgIGVsc2UgaWYgKGlkZW50aWZpZXIgJiYgaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4KQ0KICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIudXVpZCkNCiAgICAgICAgICBzdGF0ZVsndXVpZCddID0gaWRlbnRpZmllci51dWlkOw0KICAgICAgICByZXR1cm4gc3RhdGU7DQogICAgICB9DQogICAgICByZXR1cm4gdW5kZWZpbmVkOw0KICAgIH0sDQogICAgc2V0U3RhdGU6IGZ1bmN0aW9uKHN0YXRlKSB7DQogICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmIA0KICAgICAgICAgIChzdGF0ZS5lbnRyeSAmJiAodGhpcy5lbnRyeSA9PSBzdGF0ZS5lbnRyeSkpICYmDQogICAgICAgICAgKCFzdGF0ZS5iaW9sb2dpY2FsU2V4IHx8IChzdGF0ZS5iaW9sb2dpY2FsU2V4ID09PSB0aGlzLmJpb2xvZ2ljYWxTZXgpKSkgDQogICAgICAgIHsNCiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHsNCiAgICAgICAgICAgIHRoaXMubWFwSW1wLnNldFN0YXRlKHN0YXRlLnZpZXdwb3J0KTsNCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKHN0YXRlKTsNCiAgICAgICAgfQ0KICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHJlc3RvcmVNYXBTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsNCiAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpDQogICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOw0KICAgICAgICBpZiAoc3RhdGUuc2VhcmNoVGVybSkNCiAgICAgICAgICB0aGlzLnNlYXJjaEFuZFNob3dSZXN1bHQoc3RhdGUuc2VhcmNoVGVybSwgdHJ1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjcmVhdGVGbGF0bWFwOiBmdW5jdGlvbihzdGF0ZSkgew0KICAgICAgaWYgKCF0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB7DQogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICAgIGxldCBtaW5pbWFwID0gZmFsc2U7DQogICAgICAgIGlmICh0aGlzLmRpc3BsYXlNaW5pbWFwKSB7DQogICAgICAgICAgbWluaW1hcCA9IHsgcG9zaXRpb246ICJ0b3AtcmlnaHQiIH07DQogICAgICAgIH0NCg0KICAgICAgICAvL0FzIGZvciBmbGF0bWFwLXZpZXdlckAyLjIuNywgc2VlIGJlbG93IGZvciB0aGUgZG9jdW1lbnRhdGlvbiANCiAgICAgICAgLy9mb3IgdGhlIGlkZW50aWZpZXI6DQoNCiAgICAgICAgLy9AYXJnIGlkZW50aWZpZXIge3N0cmluZ3xPYmplY3R9DQogICAgICAgIC8vIEEgc3RyaW5nIG9yIG9iamVjdCBpZGVudGlmeWluZyB0aGUgbWFwIHRvIGxvYWQuIElmIGEgc3RyaW5nIGl0cw0KICAgICAgICAvLyB2YWx1ZSBjYW4gYmUgZWl0aGVyIHRoZSBtYXAncyBgYHV1aWRgYCwgYXNzaWduZWQgYXQgZ2VuZXJhdGlvbiB0aW1lLA0KICAgICAgICAvLyBvciB0YXhvbiBhbmQgYmlvbG9naWNhbCBzZXggaWRlbnRpZmllcnMgb2YgdGhlIHNwZWNpZXMgdGhhdCB0aGUgbWFwDQogICAgICAgIC8vIHJlcHJlc2VudHMuIFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBhIG1hcCBpcyBsb2FkZWQgdW5sZXNzIGl0IGhhcyBiZWVuDQogICAgICAgIC8vIGlkZW50aWZpZWQgdXNpbmcgYSBgYHV1aWRgYCAoc2VlIGJlbG93KS4NCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLnRheG9uIHtzdHJpbmd9IFRoZSB0YXhvbiBpZGVudGlmaWVyIG9mIHRoZSBzcGVjaWVzIA0KICAgICAgICAvLyAgcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGEgaW4gdGhlIG1hcCdzIHNvdXJjZSBmaWxlLg0KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCB7c3RyaW5nfSBUaGUgYmlvbG9naWNhbCBzZXggb2YgdGhlIHNwZWNpZXMNCiAgICAgICAgLy8gcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGFpbiB0aGUgbWFwJ3Mgc291cmNlIGZpbGUuDQogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci51dWlkIHtzdHJpbmd9IFRoZSB1bmlxdWUgdXVpZCB0aGUgZmxhdG1hcC4gSWYgZ2l2ZW4gdGhlbiB0aGlzIGV4YWN0IG1hcCB3aWxsDQogICAgICAgIC8vICBiZSBsb2FkZWQsIG92ZXJyaWRpbmcgYGB0YXhvbmBgIGFuZCBgYGJpb2xvZ2ljYWxTZXhgYC4NCg0KICAgICAgICBsZXQgaWRlbnRpZmllciA9IHsgdGF4b246IHRoaXMuZW50cnkgfTsNCiAgICAgICAgaWYgKHRoaXMudXVpZCkgew0KICAgICAgICAgIGlkZW50aWZpZXIudXVpZCA9IHRoaXMudXVpZDsNCiAgICAgICAgfQ0KICAgICAgICAvL1RoaXMgbm93IGhhbmRsZSB0aGUgdXNlcyBvZiB1dWlkIHdoZW4gcmVzdW1pbmcgc3RhdGVzDQogICAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICAgIGlmIChzdGF0ZS51dWlkKSB7DQogICAgICAgICAgICBpZGVudGlmaWVyID0geyB1dWlkOiBzdGF0ZS51dWlkIH07DQogICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5lbnRyeSkgew0KICAgICAgICAgICAgaWRlbnRpZmllci50YXhvbiA9IHN0YXRlLmVudHJ5Ow0KICAgICAgICAgICAgaWYgKHN0YXRlLmJpb2xvZ2ljYWxTZXgpIHsNCiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gc3RhdGUuYmlvbG9naWNhbFNleDsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWRlbnRpZmllci50YXhvbiA9PT0gIk5DQklUYXhvbjo5NjA2Iikgew0KICAgICAgICAgICAgICAvL0ZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5DQogICAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IlBBVE86MDAwMDM4NCI7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIC8vIFNldCB0aGUgYmlvbG9pY2FsU2V4IG5vdyBpZiBtYXAgaXMgbm90IHJlc3VtZWQgZnJvbQ0KICAgICAgICAgIC8vIGEgc2F2ZWQgc3RhdGUNCiAgICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KSB7DQogICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IHByb21pc2UxID0gdGhpcy5tYXBNYW5hZ2VyLmxvYWRNYXAoDQogICAgICAgICAgaWRlbnRpZmllciwNCiAgICAgICAgICB0aGlzLiRyZWZzLmRpc3BsYXksDQogICAgICAgICAgdGhpcy5ldmVudENhbGxiYWNrKCksDQogICAgICAgICAgew0KICAgICAgICAgICAgLy9mdWxsc2NyZWVuQ29udHJvbDogZmFsc2UsDQogICAgICAgICAgICAvL2Fubm90YXRhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIC8vZGVidWc6IHRydWUsDQogICAgICAgICAgICBmZWF0dXJlSW5mbzogdGhpcy5mZWF0dXJlSW5mbywNCiAgICAgICAgICAgICJtaW4tem9vbSI6IHRoaXMubWluWm9vbSwNCiAgICAgICAgICAgIGxheWVyQ29udHJvbDogdHJ1ZSwNCiAgICAgICAgICAgIHBhdGhDb250cm9sczogdHJ1ZSwNCiAgICAgICAgICAgIHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSwNCiAgICAgICAgICAgIHRvb2x0aXBzOiB0aGlzLnRvb2x0aXBzLA0KICAgICAgICAgICAgbWluaW1hcDogbWluaW1hcA0KICAgICAgICAgIH0NCiAgICAgICAgKTsNCiAgICAgICAgcHJvbWlzZTEudGhlbihyZXR1cm5lZE9iamVjdCA9PiB7DQogICAgICAgICAgdGhpcy5tYXBJbXAgPSByZXR1cm5lZE9iamVjdDsNCiAgICAgICAgICB0aGlzLm9uRmxhdG1hcFJlYWR5KCk7DQogICAgICAgICAgaWYgKHRoaXMuX3N0YXRlVG9CZVNldCkNCiAgICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7DQogICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0aGlzLnJlc3RvcmVNYXBTdGF0ZShzdGF0ZSk7DQogICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgIH0gZWxzZSBpZiAoc3RhdGUpIHsNCiAgICAgICAgdGhpcy5fc3RhdGVUb0JlU2V0ID0geyB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0gfTsNCiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpDQogICAgICAgICAgdGhpcy5yZXN0b3JlTWFwU3RhdGUodGhpcy5fc3RhdGVUb0JlU2V0KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCkgew0KICAgICAgY29uc3QgZWxlbSA9IHRoaXMuJHJlZnMuZGlzcGxheTsNCiAgICAgIGlmIChlbGVtKSB7DQogICAgICAgIGNvbnN0IGNvbXB1dGVkID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKTsNCiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdUb3ApICsgcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ0JvdHRvbSk7DQogICAgICAgIGNvbnN0IGhlaWdodCA9IGVsZW0uY2xpZW50SGVpZ2h0IC0gcGFkZGluZzsNCiAgICAgICAgdGhpcy5wYXRod2F5c01heEhlaWdodCA9IGhlaWdodCAtIDE3MDsNCiAgICAgIH0NCiAgICB9LA0KICAgIG1hcFJlc2l6ZTogZnVuY3Rpb24oKSB7DQogICAgICB0cnkgew0KICAgICAgICB0aGlzLmNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCk7DQogICAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICAgIHRoaXMubWFwSW1wLnJlc2l6ZSgpOw0KICAgICAgICAgIHRoaXMuc2hvd01pbmltYXAodGhpcy5kaXNwbGF5TWluaW1hcCk7DQogICAgICAgICAgaWYgKHRoaXMubWFwSW1wLl9taW5pbWFwKSB7DQogICAgICAgICAgICAgIHRoaXMubWFwSW1wLl9taW5pbWFwLnJlc2l6ZSgpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfSBjYXRjaCB7DQogICAgICAgIGNvbnNvbGUuZXJyb3IoIk1hcCByZXNpemUgZXJyb3IiKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIG9uRmxhdG1hcFJlYWR5OiBmdW5jdGlvbigpew0KICAgICAgLy8gb25GbGF0bWFwUmVhZHkgaXMgdXNlZCBmb3IgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBydW4gaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGZsYXRtYXAgaXMgbG9hZGVkDQogICAgICB0aGlzLnNlbnNvciA9IG5ldyBSZXNpemVTZW5zb3IoDQogICAgICAgIHRoaXMuJHJlZnMuZGlzcGxheSwNCiAgICAgICAgdGhpcy5tYXBSZXNpemUNCiAgICAgICk7DQogICAgICBpZiAodGhpcy5tYXBJbXAub3B0aW9ucyAmJiB0aGlzLm1hcEltcC5vcHRpb25zLnN0eWxlID09PSAiZnVuY3Rpb25hbCIpIHsNCiAgICAgICAgdGhpcy5pc0ZDID0gdHJ1ZTsNCiAgICAgIH0NCiAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRPcGFjaXR5KDEpOw0KICAgICAgdGhpcy5iYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2sodGhpcy5jdXJyZW50QmFja2dyb3VuZCk7DQogICAgICB0aGlzLnBhdGh3YXlzID0gdGhpcy5tYXBJbXAucGF0aFR5cGVzKCk7DQogICAgICB0aGlzLm1hcEltcC5lbmFibGVDZW50cmVsaW5lcyhmYWxzZSk7DQogICAgICAvL0Rpc2FibGUgbGF5ZXJzIGZvciBub3cNCiAgICAgIC8vdGhpcy5sYXllcnMgPSB0aGlzLm1hcEltcC5nZXRMYXllcnMoKTsNCiAgICAgIHRoaXMuc3lzdGVtcyA9IHByb2Nlc3NTeXN0ZW1zKHRoaXMubWFwSW1wLmdldFN5c3RlbXMoKSk7DQogICAgICB0aGlzLnRheG9uQ29ubmVjdGl2aXR5ID0gcHJvY2Vzc1RheG9uKHRoaXMuZmxhdG1hcEFQSSwgdGhpcy5tYXBJbXAudGF4b25JZGVudGlmaWVycyk7DQogICAgICB0aGlzLmFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcCgpOw0KICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICB0aGlzLmNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCk7DQogICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlOw0KICAgICAgdGhpcy5tYXBSZXNpemUoKTsNCiAgICAgIHRoaXMuJGVtaXQoInJlYWR5IiwgdGhpcyk7DQogICAgfSwNCiAgICBzaG93TWluaW1hcDogZnVuY3Rpb24oZmxhZykgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKQ0KICAgICAgICB0aGlzLm1hcEltcC5zaG93TWluaW1hcChmbGFnKTsNCiAgICB9LA0KICAgIHNob3dQYXRod2F5c0RyYXdlcjogZnVuY3Rpb24oZmxhZykgew0KICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIGRpc3BsYXkgZmVhdHVyZXMgd2l0aCBhbm5vdGF0aW9uIG1hdGNoaW5nIHRoZSBwcm92aWRlZCB0ZXJtLA0KICAgICAqIHdpdGggdGhlIG9wdGlvbiB0byBkaXNwbGF5IHRoZSBsYWJlbCB1c2luZyBkaXNwbGF5TGFiZWwgZmxhZy4gDQogICAgICovDQogICAgc2VhcmNoQW5kU2hvd1Jlc3VsdDogZnVuY3Rpb24odGVybSwgZGlzcGxheUxhYmVsKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgaWYgKHRlcm0gPT09IHVuZGVmaW5lZCB8fCB0ZXJtID09PSAiIikgew0KICAgICAgICAgIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOw0KICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7DQogICAgICAgICAgaWYgKHNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5yZXN1bHRzICYmDQogICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1NlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7DQogICAgICAgICAgICBpZiAoZGlzcGxheUxhYmVsICYmIA0KICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkICYmIA0KICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0udGV4dCkgew0KICAgICAgICAgICAgICBjb25zdCBhbm5vdGF0aW9uID0gdGhpcy5tYXBJbXAuYW5ub3RhdGlvbihzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkKTsNCiAgICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKA0KICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQsDQogICAgICAgICAgICAgICAgYW5ub3RhdGlvbi5sYWJlbCwNCiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogImN1c3RvbS1wb3B1cCIsIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IGZhbHNlLCBwcmVzZXJ2ZVNlbGVjdGlvbjogdHJ1ZSB9DQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICB0aGlzLm1hcEltcC5jbGVhclNlYXJjaFJlc3VsdHMoKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0sDQogICAgLyoqDQogICAgICogR2V0IHRoZSBsaXN0IG9mIHN1Z2dlc3RlZCB0ZXJtcw0KICAgICAqLw0KICAgIHNlYXJjaFN1Z2dlc3Rpb25zOiBmdW5jdGlvbih0ZXJtKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApDQogICAgICAgIHJldHVybiB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7DQogICAgICByZXR1cm4gW107DQogICAgfSwNCiAgfSwNCiAgcHJvcHM6IHsNCiAgICBlbnRyeTogU3RyaW5nLA0KICAgIHV1aWQ6IFN0cmluZywNCiAgICBiaW9sb2dpY2FsU2V4OiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiIg0KICAgIH0sDQogICAgZmVhdHVyZUluZm86IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgbWluWm9vbTogew0KICAgICAgdHlwZTogTnVtYmVyLA0KICAgICAgZGVmYXVsdDogNA0KICAgIH0sDQogICAgcGF0aENvbnRyb2xzOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIHNlYXJjaGFibGU6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgbGF5ZXJDb250cm9sOiB7DQogICAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICB0b29sdGlwczogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IHRydWUNCiAgICB9LA0KICAgIGhlbHBNb2RlOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIHJlbmRlckF0TW91bnRlZDogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IHRydWUNCiAgICB9LA0KICAgIGRpc3BsYXlNaW5pbWFwOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIGRpc3BsYXlXYXJuaW5nOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZsYWcgdG8gZGV0ZXJtaW5lIHJhdGhlciBvcGVuIG1hcCBVSSBzaG91bGQgYmUNCiAgICAgKiBwcmVzZW50ZWQgb3Igbm90Lg0KICAgICAqLw0KICAgIGVuYWJsZU9wZW5NYXBVSTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlLA0KICAgIH0sDQogICAgb3Blbk1hcE9wdGlvbnM6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogZnVuY3Rpb24gKCkgew0KICAgICAgICByZXR1cm4gWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEFDIE1hcCIsDQogICAgICAgICAgICBrZXk6ICJBQyINCiAgICAgICAgICB9LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEZDIE1hcCIsDQogICAgICAgICAgICBrZXk6ICJGQyINCiAgICAgICAgICB9LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIDNEIEh1bWFuIE1hcCIsDQogICAgICAgICAgICBrZXk6ICIzRCINCiAgICAgICAgICB9LA0KICAgICAgICBdDQogICAgICB9LA0KICAgIH0sDQogICAgaXNMZWdhY3k6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgZGlzcGxheUxhdGVzdENoYW5nZXM6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZSwNCiAgICB9LA0KICAgIGxhdGVzdENoYW5nZXNNZXNzYWdlOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiJ09ic2VydmVkIEluJyBjb250cm9scyBhbmQgaW5mb3JtYXRpb24gYXJlIG5vdyBpbmNsdWRlZCBpbiBBQyBtYXBzLiBTeXN0ZW0gY29udHJvbCB3aXRoIEZUVSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRkMgbWFwLiIsDQogICAgfSwNCiAgICAvKioNCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBmbGF0bWFwLg0KICAgICAqLw0KICAgIHN0YXRlOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiB1bmRlZmluZWQNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIFNwZWNpZnkgdGhlIGVuZHBvaW50IG9mIHRoZSBmbGF0bWFwIHNlcnZlci4NCiAgICAgKi8NCiAgICBmbGF0bWFwQVBJOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9tYXBjb3JlLWRlbW8ub3JnL2N1cnJlbnQvZmxhdG1hcC92My8iDQogICAgfSwNCiAgICBzcGFyY0FQSTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogImh0dHBzOi8vYXBpLnNwYXJjLnNjaWVuY2UvIg0KICAgIH0sDQogIH0sDQogIHByb3ZpZGUoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHNwYXJjQVBJOiB0aGlzLnNwYXJjQVBJLA0KICAgICAgZmxhdG1hcEFQSTogdGhpcy5mbGF0bWFwQVBJDQogICAgfQ0KICB9LA0KICBkYXRhOiBmdW5jdGlvbigpIHsNCiAgICByZXR1cm4gew0KICAgICAgbGF5ZXJzOiBbXSwNCiAgICAgIHBhdGh3YXlzOiBbXSwNCiAgICAgIHNja2FuRGlzcGxheTogWw0KICAgICAgICB7DQogICAgICAgICAgbGFiZWw6ICJEaXNwbGF5IFBhdGggd2l0aCBTQ0tBTiIsDQogICAgICAgICAga2V5OiAiVkFMSUQiLA0KICAgICAgICB9LA0KICAgICAgXSwNCiAgICAgIGNlbnRyZUxpbmVzOiBbDQogICAgICAgIHsNCiAgICAgICAgICBsYWJlbDogIkRpc3BsYXkgTmVydmVzIiwNCiAgICAgICAgICBrZXk6ICJjZW50cmVsaW5lcyIsDQogICAgICAgICAgZW5hYmxlZDogZmFsc2UNCiAgICAgICAgfQ0KICAgICAgXSwNCiAgICAgIHN5c3RlbXM6IFtdLA0KICAgICAgdGF4b25Db25uZWN0aXZpdHk6IFtdLA0KICAgICAgcGF0aHdheXNNYXhIZWlnaHQ6IDEwMDAsDQogICAgICBob3ZlclZpc2liaWxpdGllczogWw0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgXSwNCiAgICAgIGlzRkM6IGZhbHNlLA0KICAgICAgaW5IZWxwOiBmYWxzZSwNCiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kOiAid2hpdGUiLA0KICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgZmxhdG1hcE1hcmtlcjogZmxhdG1hcE1hcmtlciwNCiAgICAgIHRvb2x0aXBFbnRyeTogY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSgpLA0KICAgICAgY29ubmVjdGl2aXR5VG9vbHRpcFZpc2libGU6IGZhbHNlLA0KICAgICAgcmVzb3VyY2VGb3JUb29sdGlwOiB1bmRlZmluZWQsDQogICAgICBkcmF3ZXJPcGVuOiBmYWxzZSwNCiAgICAgIGNvbG91clJhZGlvOiB0cnVlLA0KICAgICAgb3V0bGluZXNSYWRpbzogdHJ1ZSwNCiAgICAgIG1pbmltYXBSZXNpemVTaG93OiBmYWxzZSwNCiAgICAgIG1pbmltYXBTbWFsbDogZmFsc2UsDQogICAgICBjdXJyZW50QWN0aXZlOiAiIiwNCiAgICAgIGN1cnJlbnRIb3ZlcjogIiIsDQogICAgfTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBlbnRyeTogZnVuY3Rpb24oKSB7DQogICAgICBpZiAoIXRoaXMuc3RhdGUpIHRoaXMuY3JlYXRlRmxhdG1hcCgpOw0KICAgIH0sDQogICAgaGVscE1vZGU6IGZ1bmN0aW9uKHZhbCkgew0KICAgICAgdGhpcy5zZXRIZWxwTW9kZSh2YWwpOw0KICAgIH0sDQogICAgc3RhdGU6IHsNCiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKHN0YXRlKSB7DQogICAgICAgIGlmICh0aGlzLm1hcE1hbmFnZXIpIHsNCiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAvL3RoaXMgY29tcG9uZW50IGhhcyBub3QgYmVlbiBtb3VudGVkIHlldA0KICAgICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IHRydWU7DQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICBpbW1lZGlhdGU6IHRydWUsDQogICAgICBkZWVwOiB0cnVlDQogICAgfQ0KICB9LA0KICBtb3VudGVkOiBmdW5jdGlvbigpIHsNCiAgICBjb25zdCBmbGF0bWFwID0gcmVxdWlyZSgiQGFiaS1zb2Z0d2FyZS9mbGF0bWFwLXZpZXdlciIpOw0KICAgIHRoaXMudG9vbHRpcFdhaXQgPSBbXTsNCiAgICB0aGlzLnRvb2x0aXBXYWl0Lmxlbmd0aCA9IHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMubGVuZ3RoOw0KICAgIHRoaXMubWFwTWFuYWdlciA9IG5ldyBmbGF0bWFwLk1hcE1hbmFnZXIodGhpcy5mbGF0bWFwQVBJKTsNCiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzID0gbmV3IEZsYXRtYXBRdWVyaWVzKCk7DQogICAgdGhpcy5mbGF0bWFwUXVlcmllcy5pbml0aWFsaXNlKHRoaXMuZmxhdG1hcEFQSSk7DQogICAgaWYgKHRoaXMuc3RhdGUpIHsNCiAgICAgIC8vU3RhdGUgaXMgc2V0IGFuZCByZXF1aXJlIHRvIHNldCB0aGUgc3RhdGUNCiAgICAgIGlmICh0aGlzLnNldFN0YXRlUmVxdWlyZWQpIHsNCiAgICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTsNCiAgICAgIH0NCiAgICB9IGVsc2UgaWYodGhpcy5yZW5kZXJBdE1vdW50ZWQpIHsNCiAgICAgIHRoaXMuY3JlYXRlRmxhdG1hcCgpOw0KICAgIH0NCiAgfQ0KfTsNCg=="},{"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;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;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","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]}]}