LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgICAgICAgICAKICogRmlsZW5hbWU6ICAgICAgaXJpYXBfZXZlbnQuaAogKiBWZXJzaW9uOiAgICAgICAKICogRGVzY3JpcHRpb246ICAgCiAqIFN0YXR1czogICAgICAgIEV4cGVyaW1lbnRhbC4KICogQXV0aG9yOiAgICAgICAgRGFnIEJyYXR0bGkgPGRhZ2JAY3MudWl0Lm5vPgogKiBDcmVhdGVkIGF0OiAgICBNb24gQXVnICA0IDIwOjQwOjUzIDE5OTcKICogTW9kaWZpZWQgYXQ6ICAgU3VuIE9jdCAzMSAyMjowMjo1NCAxOTk5CiAqIE1vZGlmaWVkIGJ5OiAgIERhZyBCcmF0dGxpIDxkYWdiQGNzLnVpdC5ubz4KICogCiAqICAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMTk5OSBEYWcgQnJhdHRsaSA8ZGFnYkBjcy51aXQubm8+LCBBbGwgUmlnaHRzIFJlc2VydmVkLgogKiAgICAgCiAqICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIAogKiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgCiAqICAgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiAKICogICAgIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiAgICAgTmVpdGhlciBEYWcgQnJhdHRsaSBub3IgVW5pdmVyc2l0eSBvZiBUcm9tc/ggYWRtaXQgbGlhYmlsaXR5IG5vcgogKiAgICAgcHJvdmlkZSB3YXJyYW50eSBmb3IgYW55IG9mIHRoaXMgc29mdHdhcmUuIFRoaXMgbWF0ZXJpYWwgaXMgCiAqICAgICBwcm92aWRlZCAiQVMtSVMiIGFuZCBhdCBubyBjaGFyZ2UuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpZm5kZWYgSVJJQVBfRlNNX0gKI2RlZmluZSBJUklBUF9GU01fSAoKLyogRm9yd2FyZCBiZWNhdXNlIG9mIGNpcmN1bGFyIGluY2x1ZGUgZGVwZW5kZWNpZXMgKi8Kc3RydWN0IGlyaWFwX2NiOwoKLyogSXJJQVAgc3RhdGVzICovCnR5cGVkZWYgZW51bSB7CgkvKiBDbGllbnQgKi8KCVNfRElTQ09OTkVDVCwKCVNfQ09OTkVDVElORywKCVNfQ0FMTCwKCgkvKiBTLUNhbGwgKi8KCVNfTUFLRV9DQUxMLAoJU19DQUxMSU5HLAoJU19PVVRTVEFORElORywKCVNfUkVQTFlJTkcsCglTX1dBSVRfRk9SX0NBTEwsCglTX1dBSVRfQUNUSVZFLAoKCS8qIFNlcnZlciAqLwoJUl9ESVNDT05ORUNULAoJUl9DQUxMLAoJCgkvKiBSLUNvbm5lY3QgKi8KCVJfV0FJVElORywKCVJfV0FJVF9BQ1RJVkUsCglSX1JFQ0VJVklORywKCVJfRVhFQ1VURSwKCVJfUkVUVVJOSU5HLAp9IElSSUFQX1NUQVRFOwoKdHlwZWRlZiBlbnVtIHsKCUlBUF9DQUxMX1JFUVVFU1QsCglJQVBfQ0FMTF9SRVFVRVNUX0dWQkMsCglJQVBfQ0FMTF9SRVNQT05TRSwKCUlBUF9SRUNWX0ZfTFNULAoJSUFQX0xNX0RJU0NPTk5FQ1RfSU5ESUNBVElPTiwKCUlBUF9MTV9DT05ORUNUX0lORElDQVRJT04sCglJQVBfTE1fQ09OTkVDVF9DT05GSVJNLAp9IElSSUFQX0VWRU5UOwoKdm9pZCBpcmlhcF9uZXh0X2NsaWVudF9zdGF0ZSAgIChzdHJ1Y3QgaXJpYXBfY2IgKnNlbGYsIElSSUFQX1NUQVRFIHN0YXRlKTsKdm9pZCBpcmlhcF9uZXh0X2NhbGxfc3RhdGUgICAgIChzdHJ1Y3QgaXJpYXBfY2IgKnNlbGYsIElSSUFQX1NUQVRFIHN0YXRlKTsKdm9pZCBpcmlhcF9uZXh0X3NlcnZlcl9zdGF0ZSAgIChzdHJ1Y3QgaXJpYXBfY2IgKnNlbGYsIElSSUFQX1NUQVRFIHN0YXRlKTsKdm9pZCBpcmlhcF9uZXh0X3JfY29ubmVjdF9zdGF0ZShzdHJ1Y3QgaXJpYXBfY2IgKnNlbGYsIElSSUFQX1NUQVRFIHN0YXRlKTsKCgp2b2lkIGlyaWFwX2RvX2NsaWVudF9ldmVudChzdHJ1Y3QgaXJpYXBfY2IgKnNlbGYsIElSSUFQX0VWRU5UIGV2ZW50LCAKCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7CnZvaWQgaXJpYXBfZG9fY2FsbF9ldmVudCAgKHN0cnVjdCBpcmlhcF9jYiAqc2VsZiwgSVJJQVBfRVZFTlQgZXZlbnQsIAoJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKCnZvaWQgaXJpYXBfZG9fc2VydmVyX2V2ZW50ICAgKHN0cnVjdCBpcmlhcF9jYiAqc2VsZiwgSVJJQVBfRVZFTlQgZXZlbnQsIAoJCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKdm9pZCBpcmlhcF9kb19yX2Nvbm5lY3RfZXZlbnQoc3RydWN0IGlyaWFwX2NiICpzZWxmLCBJUklBUF9FVkVOVCBldmVudCwgCgkJCSAgICAgIHN0cnVjdCBza19idWZmICpza2IpOwoKI2VuZGlmIC8qIElSSUFQX0ZTTV9IICovCgo=