ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lyZGEvaXJsbXBfZXZlbnQuaCBiL2luY2x1ZGUvbmV0L2lyZGEvaXJsbXBfZXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2M2ZjgxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZXQvaXJkYS9pcmxtcF9ldmVudC5oCkBAIC0wLDAgKzEsOTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgIAorICogRmlsZW5hbWU6ICAgICAgaXJsbXBfZXZlbnQuaAorICogVmVyc2lvbjogICAgICAgMC4xCisgKiBEZXNjcmlwdGlvbjogICBJckRBLUxNUCBldmVudCBoYW5kbGluZworICogU3RhdHVzOiAgICAgICAgRXhwZXJpbWVudGFsLgorICogQXV0aG9yOiAgICAgICAgRGFnIEJyYXR0bGkgPGRhZ2JAY3MudWl0Lm5vPgorICogQ3JlYXRlZCBhdDogICAgTW9uIEF1ZyAgNCAyMDo0MDo1MyAxOTk3CisgKiBNb2RpZmllZCBhdDogICBUaHUgSnVsICA4IDEyOjE4OjU0IDE5OTkKKyAqIE1vZGlmaWVkIGJ5OiAgIERhZyBCcmF0dGxpIDxkYWdiQGNzLnVpdC5ubz4KKyAqIAorICogICAgIENvcHlyaWdodCAoYykgMTk5NywgMTk5OSBEYWcgQnJhdHRsaSA8ZGFnYkBjcy51aXQubm8+LCAKKyAqICAgICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogICAgIENvcHlyaWdodCAoYykgMjAwMC0yMDAyIEplYW4gVG91cnJpbGhlcyA8anRAaHBsLmhwLmNvbT4KKyAqICAgICAKKyAqICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIAorICogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIAorICogICAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIAorICogICAgIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgICBOZWl0aGVyIERhZyBCcmF0dGxpIG5vciBVbml2ZXJzaXR5IG9mIFRyb21z+CBhZG1pdCBsaWFiaWxpdHkgbm9yCisgKiAgICAgcHJvdmlkZSB3YXJyYW50eSBmb3IgYW55IG9mIHRoaXMgc29mdHdhcmUuIFRoaXMgbWF0ZXJpYWwgaXMgCisgKiAgICAgcHJvdmlkZWQgIkFTLUlTIiBhbmQgYXQgbm8gY2hhcmdlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBJUkxNUF9FVkVOVF9ICisjZGVmaW5lIElSTE1QX0VWRU5UX0gKKworLyogQSBmZXcgZm9yd2FyZCBkZWNsYXJhdGlvbnMgKHRvIG1ha2UgY29tcGlsZXIgaGFwcHkpICovCitzdHJ1Y3QgaXJsbXBfY2I7CitzdHJ1Y3QgbHNhcF9jYjsKK3N0cnVjdCBsYXBfY2I7CitzdHJ1Y3QgZGlzY292ZXJ5X3Q7CisKKy8qIExBUCBzdGF0ZXMgKi8KK3R5cGVkZWYgZW51bSB7CisJLyogSXJMQVAgY29ubmVjdGlvbiBjb250cm9sIHN0YXRlcyAqLworCUxBUF9TVEFOREJZLCAgICAgICAgICAgICAvKiBObyBMQVAgY29ubmVjdGlvbiAqLworCUxBUF9VX0NPTk5FQ1QsICAgICAgICAgICAvKiBTdGFydGluZyBMQVAgY29ubmVjdGlvbiAqLworCUxBUF9BQ1RJVkUsICAgICAgICAgICAgICAvKiBMQVAgY29ubmVjdGlvbiBpcyBhY3RpdmUgKi8KK30gSVJMTVBfU1RBVEU7CisKKy8qIExTQVAgY29ubmVjdGlvbiBjb250cm9sIHN0YXRlcyAqLwordHlwZWRlZiBlbnVtIHsKKwlMU0FQX0RJU0NPTk5FQ1RFRCwgICAgICAgIC8qIE5vIExTQVAgY29ubmVjdGlvbiAqLworCUxTQVBfQ09OTkVDVCwgICAgICAgICAgICAgLyogQ29ubmVjdCBpbmRpY2F0aW9uIGZyb20gcGVlciAqLworCUxTQVBfQ09OTkVDVF9QRU5ELCAgICAgICAgLyogQ29ubmVjdCByZXF1ZXN0IGZyb20gc2VydmljZSB1c2VyICovCisJTFNBUF9EQVRBX1RSQU5TRkVSX1JFQURZLCAvKiBMU0FQIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgKi8gICAgICAgICAgCisJTFNBUF9TRVRVUCwgICAgICAgICAgICAgICAvKiBUcnlpbmcgdG8gc2V0IHVwIExTQVAgY29ubmVjdGlvbiAqLworCUxTQVBfU0VUVVBfUEVORCwgICAgICAgICAgLyogUmVxdWVzdCB0byBzdGFydCBMQVAgY29ubmVjdGlvbiAqLworfSBMU0FQX1NUQVRFOworCit0eXBlZGVmIGVudW0geworCS8qIExTQVAgZXZlbnRzICovCisgCUxNX0NPTk5FQ1RfUkVRVUVTVCwKKyAJTE1fQ09OTkVDVF9DT05GSVJNLAorCUxNX0NPTk5FQ1RfUkVTUE9OU0UsCisgCUxNX0NPTk5FQ1RfSU5ESUNBVElPTiwgCQorCQorCUxNX0RJU0NPTk5FQ1RfSU5ESUNBVElPTiwKKwlMTV9ESVNDT05ORUNUX1JFUVVFU1QsCisKKyAJTE1fREFUQV9SRVFVRVNULAorCUxNX1VEQVRBX1JFUVVFU1QsCisgCUxNX0RBVEFfSU5ESUNBVElPTiwKKwlMTV9VREFUQV9JTkRJQ0FUSU9OLAorCisJTE1fV0FUQ0hET0dfVElNRU9VVCwKKworCS8qIElyTEFQIGV2ZW50cyAqLworCUxNX0xBUF9DT05ORUNUX1JFUVVFU1QsCisgCUxNX0xBUF9DT05ORUNUX0lORElDQVRJT04sIAorIAlMTV9MQVBfQ09OTkVDVF9DT05GSVJNLAorIAlMTV9MQVBfRElTQ09OTkVDVF9JTkRJQ0FUSU9OLCAKKwlMTV9MQVBfRElTQ09OTkVDVF9SRVFVRVNULAorCUxNX0xBUF9ESVNDT1ZFUllfUkVRVUVTVCwKKyAJTE1fTEFQX0RJU0NPVkVSWV9DT05GSVJNLAorCUxNX0xBUF9JRExFX1RJTUVPVVQsCit9IElSTE1QX0VWRU5UOworCitleHRlcm4gY29uc3QgY2hhciAqaXJsbXBfc3RhdGVbXTsKK2V4dGVybiBjb25zdCBjaGFyICppcmxzYXBfc3RhdGVbXTsKKwordm9pZCBpcmxtcF93YXRjaGRvZ190aW1lcl9leHBpcmVkKHZvaWQgKmRhdGEpOwordm9pZCBpcmxtcF9kaXNjb3ZlcnlfdGltZXJfZXhwaXJlZCh2b2lkICpkYXRhKTsKK3ZvaWQgaXJsbXBfaWRsZV90aW1lcl9leHBpcmVkKHZvaWQgKmRhdGEpOworCit2b2lkIGlybG1wX2RvX2xhcF9ldmVudChzdHJ1Y3QgbGFwX2NiICpzZWxmLCBJUkxNUF9FVkVOVCBldmVudCwgCisJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKK2ludCBpcmxtcF9kb19sc2FwX2V2ZW50KHN0cnVjdCBsc2FwX2NiICpzZWxmLCBJUkxNUF9FVkVOVCBldmVudCwgCisJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKKworI2VuZGlmIC8qIElSTE1QX0VWRU5UX0ggKi8KKworCisKKwo=