LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzIElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWw7CgppbXBvcnQgamF2YS51dGlsLkxpc3Q7CgppbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLkNvcmVFeGNlcHRpb247CmltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsKaW1wb3J0IG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIuY29yZS5JU2VydmVyOwppbXBvcnQgb3JnLmVjbGlwc2Uud3N0LnNlcnZlci5jb3JlLklTZXJ2ZXJDb25maWd1cmF0aW9uOwovKioKICogQSBtb2R1bGUgdGFzay4KICogCiAqIDxwPlRoaXMgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIGEgbW9kdWxlVGFzayBleHRlbnNpb24gcG9pbnQuPC9wPgogKi8KcHVibGljIGludGVyZmFjZSBJTW9kdWxlVGFza0RlbGVnYXRlIHsKCXB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBUQVNLX1VOTkVDRVNTQVJZID0gMDsKCXB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBUQVNLX0NPTVBMRVRFRCA9IDE7CglwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgVEFTS19SRUFEWSA9IDI7CglwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgVEFTS19QUkVGRVJSRUQgPSAzOwoJcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFRBU0tfTUFOREFUT1JZID0gNDsKCQoJLyoqCgkgKiBMZXRzIHRoZSB0YXNrIGtub3cgdGhhdCBpdCBpcyBhYm91dCB0byBiZSB1c2VkLiBUaGlzIG1ldGhvZCBzaG91bGQKCSAqIGJlIHVzZWQgdG8gY2xlYW4gb3V0IGFueSBwcmV2aW91c2x5IGNhY2hlZCBpbmZvcm1hdGlvbiwgb3Igc3RhcnQgdG8KCSAqIGNyZWF0ZSBhIG5ldyBjYWNoZS4KCSAqIAoJICogQHBhcmFtIHNlcnZlciBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWwuSVNlcnZlcgoJICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gb3JnLmVjbGlwc2Uud3N0LnNlcnZlci5jb3JlLm1vZGVsLklTZXJ2ZXJDb25maWd1cmF0aW9uCgkgKiBAcGFyYW0gcGFyZW50cyBqYXZhLnV0aWwuTGlzdAoJICogQHBhcmFtIG1vZHVsZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWwuSU1vZHVsZQoJICovCglwdWJsaWMgdm9pZCBpbml0KElTZXJ2ZXIgc2VydmVyLCBJU2VydmVyQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBMaXN0IHBhcmVudHMsIElNb2R1bGUgbW9kdWxlKTsKCgkvKioKCSAqIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGlzIHRhc2suCgkgKiAKCSAqIEByZXR1cm4gYnl0ZQoJICovCglwdWJsaWMgYnl0ZSBnZXRUYXNrU3RhdHVzKCk7CgoJLyoqCgkgKiBQZXJmb3JtIHRoZSB0YXNrLgoJICoKCSAqIEByZXR1cm4gb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklTdGF0dXMKCSAqLwoJcHVibGljIHZvaWQgZXhlY3V0ZShJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpIHRocm93cyBDb3JlRXhjZXB0aW9uOwp9Cg==