LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIudWkuaW50ZXJuYWwuYWN0aW9uczsKCmltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS5hY3Rpb24uSUFjdGlvbjsKCmltcG9ydCBvcmcuZWNsaXBzZS53c3Quc2VydmVyLnVpLmludGVybmFsLndpemFyZC5DbG9zYWJsZVdpemFyZERpYWxvZzsKaW1wb3J0IG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIudWkuaW50ZXJuYWwud2l6YXJkLk5ld1NlcnZlcldpemFyZDsKLyoqCiAqIEFjdGlvbiB0byBjcmVhdGUgYSBuZXcgc2VydmVyLgogKi8KcHVibGljIGNsYXNzIE5ld1NlcnZlckFjdGlvbiBleHRlbmRzIE5ld1dpemFyZEFjdGlvbiB7CgkvKioKCSAqIE5ld1NlcnZlckFjdGlvbiBjb25zdHJ1Y3RvciBjb21tZW50LgoJICovCglwdWJsaWMgTmV3U2VydmVyQWN0aW9uKCkgewoJCXN1cGVyKCk7Cgl9CgoJLyoqCgkgKiBQZXJmb3JtcyB0aGlzIGFjdGlvbi4KCSAqIDxwPgoJICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGRlbGVnYXRpbmcgYWN0aW9uIGhhcyBiZWVuIHRyaWdnZXJlZC4KCSAqIEltcGxlbWVudCB0aGlzIG1ldGhvZCB0byBkbyB0aGUgYWN0dWFsIHdvcmsuCgkgKiA8L3A+CgkgKgoJICogQHBhcmFtIGFjdGlvbiB0aGUgYWN0aW9uIHByb3h5IHRoYXQgaGFuZGxlcyB0aGUgcHJlc2VudGF0aW9uIHBvcnRpb24gb2YgdGhlCgkgKiAgIGFjdGlvbgoJICovCglwdWJsaWMgdm9pZCBydW4oSUFjdGlvbiBhY3Rpb24pIHsKCQlOZXdTZXJ2ZXJXaXphcmQgd2l6YXJkID0gbmV3IE5ld1NlcnZlcldpemFyZCgpOwoJCXdpemFyZC5pbml0KHdvcmtiZW5jaCwgc2VsZWN0aW9uKTsKCQlDbG9zYWJsZVdpemFyZERpYWxvZyBkaWFsb2cgPSBuZXcgQ2xvc2FibGVXaXphcmREaWFsb2cod29ya2JlbmNoLmdldEFjdGl2ZVdvcmtiZW5jaFdpbmRvdygpLmdldFNoZWxsKCksIHdpemFyZCk7CgkJZGlhbG9nLm9wZW4oKTsKCX0KfQ==