LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAqIENvcHlyaWdodCAoYykgMjAyMSBBdmFsb3EuDQogKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlDQogKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMA0KICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvDQogKg0KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjANCiAqDQogKiBDb250cmlidXRvcnM6DQogKiAgUnVi6W4gUG9ycmFzIENhbXBvIChBdmFsb3EpIC0gQnVnIDU3NjQyNSAtIFN1cHBvcnQgUmVtb3RlIEZpbGVzDQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCnBhY2thZ2Ugb3JnLmVjbGlwc2UubHNwNGUudGVzdDsNCg0KaW1wb3J0IGphdmEubmV0LlVSSTsNCg0KaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuZmlsZXN5c3RlbS5JRmlsZVN0b3JlOw0KaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuZmlsZXN5c3RlbS5wcm92aWRlci5GaWxlU3lzdGVtOw0KDQovKioNCiAqIEEgZmlsZSBzeXN0ZW0gdG8gdGVzdCBjdXN0b20gZmlsZXN5c3RlbXMNCiAqDQogKi8NCnB1YmxpYyBjbGFzcyBPdGhlckZpbGVTeXN0ZW0gZXh0ZW5kcyBGaWxlU3lzdGVtIHsNCg0KCUBPdmVycmlkZQ0KCXB1YmxpYyBJRmlsZVN0b3JlIGdldFN0b3JlKFVSSSB1cmkpIHsNCgkJcmV0dXJuIG5ldyBPdGhlckZpbGVTdG9yZSh1cmkpOw0KCX0NCg0KfQ0K