LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgZnRjb25maWcuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qICAgIEFtaWdhLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZSAoc3BlY2lmaWNhdGlvbiBvbmx5KS4gICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogIENvcHlyaWdodCAyMDA1LTIwMTUgYnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qICBXZXJuZXIgTGVtYmVyZyBhbmQgRGV0bGVmIFf8cmtuZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgICAgICAgKi8NCi8qICBtb2RpZmllZCwgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRnJlZVR5cGUgcHJvamVjdCAgICAgICovDQovKiAgbGljZW5zZSwgTElDRU5TRS5UWFQuICBCeSBjb250aW51aW5nIHRvIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlICAgICAqLw0KLyogIHRoaXMgZmlsZSB5b3UgaW5kaWNhdGUgdGhhdCB5b3UgaGF2ZSByZWFkIHRoZSBsaWNlbnNlIGFuZCAgICAgICAgICAgICAgKi8NCi8qICB1bmRlcnN0YW5kIGFuZCBhY2NlcHQgaXQgZnVsbHkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KLyoNCiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBob3cgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgRnJlZVR5cGUyIGhlYWRlciBmaWxlcw0KICogd2l0aCBBbWlnYS1zcGVjaWZpYyBjaGFuZ2VzLiBXaGVuIHRoZSBjb21waWxlciBzZWFyY2hlcyB0aGlzIGRpcmVjdG9yeQ0KICogYmVmb3JlIHRoZSBkZWZhdWx0IGRpcmVjdG9yeSwgd2UgY2FuIGRvIHNvbWUgbW9kaWZpY2F0aW9ucy4NCiAqDQogKiBIZXJlIHdlIG11c3QgY2hhbmdlIEZUX0VYUE9SVF9ERUYgc28gdGhhdCBTQVMvQyBkb2VzDQogKiBnZW5lcmF0ZSB0aGUgbmVlZGVkIFhERUZzLg0KICovDQoNCiNpZiAwDQojZGVmaW5lIEZUX0VYUE9SVF9ERUYoIHggKSAgZXh0ZXJuICB4DQojZW5kaWYNCg0KI3VuZGVmIEZUX0VYUE9SVF9ERUYNCiNkZWZpbmUgRlRfRVhQT1JUX0RFRiggeCApICB4DQoNCi8qIE5vdyBpbmNsdWRlIHRoZSBvcmlnaW5hbCBmaWxlICovDQojaWZuZGVmIF9fTU9SUEhPU19fDQojaWZkZWYgX19TQVNDDQojaW5jbHVkZSAiRlQ6aW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRjb25maWcuaCINCiNlbHNlDQojaW5jbHVkZSAiL0ZUL2luY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0Y29uZmlnLmgiDQojZW5kaWYNCiNlbHNlDQovKiBXZSBtdXN0IGRlZmluZSB0aGF0LCBpdCBzZWVtcyB0aGF0DQogKiBsaWIvZ2NjLWxpYi9wcGMtbW9ycGhvcy8yLjk1LjMvaW5jbHVkZS9zeXNsaW1pdHMuaCBpcyBtaXNzaW5nIGluDQogKiBwcGMtbW9ycGhvcy1nY2MtMi45NS4zLWJpbi50Z3ogKGdjYyBmb3IgNjhrIHByb2R1Y2luZyBNb3JwaE9TIFBQQyBlbGYNCiAqIGJpbmFyaWVzIGZyb20gaHR0cDovL3d3dy5tb3JwaG9zLmRlKQ0KICovDQojZGVmaW5lIF9MSUJDX0xJTUlUU19IXw0KI2luY2x1ZGUgIi9GVC9pbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdGNvbmZpZy5oIg0KI2VuZGlmDQoNCi8qDQpMb2NhbCBWYXJpYWJsZXM6DQpjb2Rpbmc6IGxhdGluLTENCkVuZDoNCiovDQo=