From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [RFC] dma-buf: Rename struct fence to dma_fence Date: Wed, 13 Jul 2016 17:55:08 +0200 Message-ID: <5786645C.9030302@amd.com> References: <1468419045-21030-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0065.outbound.protection.outlook.com [104.47.34.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id E53536E78C for ; Wed, 13 Jul 2016 15:55:25 +0000 (UTC) In-Reply-To: <1468419045-21030-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMTMuMDcuMjAxNiB1bSAxNjoxMCBzY2hyaWViIENocmlzIFdpbHNvbjoKPiBJIHBsYW4gdG8g dXN1cnAgdGhlIHNob3J0IG5hbWUgb2Ygc3RydWN0IGZlbmNlIGZvciBhIGNvcmUga2VybmVsIHN0 cnVjdCwKPiBhbmQgc28gSSBuZWVkIHRvIHJlbmFtZSB0aGUgc3BlY2lhbGlzZWQgZmVuY2UvdGlt ZWxpbmUgZm9yIERNQQo+IG9wZXJhdGlvbnMgdG8gbWFrZSByb29tLgo+Cj4gQXMgYW4gaW5kaWNh dGlvbiBvZiB0aGUgc2NhbGUgb2YgdGhlIGZsYWcgZGF5Ogo+Cj4gICA5MSBmaWxlcyBjaGFuZ2Vk LCA5MDQgaW5zZXJ0aW9ucygrKSwgODgwIGRlbGV0aW9ucygtKQo+Cj4gd2l0aCB0aGUgZ3JlYXRl c3QgdmljdGltIGJlaW5nIGFtZGdwdS4KPgo+IEp1c3QgdGhlIGhpZ2hsaWdodHMgc2hvd24gYmVs b3cuCgpPaCwgeWVzIHBsZWFzZS4KCllvdSB3b24ndCBiZWxpZXZlIGhvdyBvZnRlbiBJIGhhZCB0 byBleHBsYWluIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyAKZmVuY2UgaW5mcmFzdHJ1Y3R1 cmUgYW5kIGFuIGFjdHVhbCBoYXJkd2FyZSBmZW5jZSAoZS5nLiB0aGUgaGFyZHdhcmUgCmNvbW1h bmQpIGJlY2F1c2UgcGVvcGxlIGNvbmZ1c2VkIG9uZSB3aXRoIHRoZSBvdGhlci4KCkNocmlzdGlh bi4KCj4gLUNocmlzCj4KPiAtLS0KPiAgIGRyaXZlcnMvYmFzZS9LY29uZmlnICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYu YyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjggKy0KPiAgIGRyaXZlcnMvZG1hLWJ1Zi9kbWEt ZmVuY2UuYyAgICAgICAgICAgICAgICAgICAgIHwgNTM1ICsrKysrKysrKysrKysrKysrKysrKysr Kwo+ICAgZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCA1 MzIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlv bi5jICAgICAgICAgICAgICAgICAgIHwgIDkwICsrLS0KPiAgIGRyaXZlcnMvZG1hLWJ1Zi9zZXFu by1mZW5jZS5jICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCj4gICBkcml2ZXJzL2RtYS1idWYv c3dfc3luYy5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0NCArLQo+ICAgZHJpdmVycy9kbWEt YnVmL3N5bmNfZGVidWcuYyAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KPiAgIGRyaXZlcnMv ZG1hLWJ1Zi9zeW5jX2RlYnVnLmggICAgICAgICAgICAgICAgICAgIHwgIDEzICstCj4gICBkcml2 ZXJzL2RtYS1idWYvc3luY19maWxlLmMgICAgICAgICAgICAgICAgICAgICB8ICAzMCArLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAgICAgICAgfCAgNTYgKy0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYmVuY2htYXJrLmMgICB8ICAg OCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgICAgICAgICAg fCAgMTggKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYyAgICAg ICAgIHwgIDIyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rp c3BsYXkuYyAgICAgfCAgMTYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9mZW5jZS5jICAgICAgIHwgIDUwICstLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2liLmMgICAgICAgICAgfCAgMTAgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9qb2IuYyAgICAgICAgIHwgIDE4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oICAgICAgfCAgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zYS5jICAgICAgICAgIHwgIDI0ICstCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jICAgICAgICB8ICA1NiArLS0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgICAgICAgIHwgIDEyICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHJhY2UuaCAgICAgICB8ICAgNCAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgICAgICAgfCAg IDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAgICAgICAg IHwgIDE4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmggICAg ICAgICB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5j ICAgICAgICAgfCAgMjIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 Y2UuaCAgICAgICAgIHwgICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm0uYyAgICAgICAgICB8ICA1NiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2Npa19zZG1hLmMgICAgICAgICAgIHwgICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjdfMC5jICAgICAgICAgICB8ICAgOCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4X3Y4XzAuYyAgICAgICAgICAgfCAgMTYgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jICAgICAgICAgIHwgICA4ICstCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYyAgICAgICAgICB8ICAgOCArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuYyAgICAgICAgICAgfCAgIDYgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NV8wLmMgICAgICAgICAgIHwgICA2ICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5jICAgICAgICAgICB8ICAgNiAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkX3RyYWNlLmggfCAg IDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYyAg IHwgIDQyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVy LmggICB8ICAyNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvc2NoZWRfZmVu Y2UuYyAgICAgfCAgMjIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j ICAgICAgICAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2dlbS5jICAgICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9ncHUuYyAgICAgICAgICAgfCAgNDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2 L2V0bmF2aXZfZ3B1LmggICAgICAgICAgIHwgICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaW14 L2lwdXYzLWNydGMuYyAgICAgICAgICAgICAgICB8ICAxMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZHJ2LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2ZlbmNlLmMgICAgICAgICAgICAgICAgIHwgIDMwICstCj4gICBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oICAgICAgICAgICAgICAgICAgIHwgICAyICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMgICAgICAgICAgICB8ICAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYyAgICAgICAg ICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMg ICAgICAgICB8ICA2OCArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVu Y2UuaCAgICAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2dlbS5jICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYw NF9mZW5jZS5jICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L252MTBfZmVuY2UuYyAgICAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udjE3X2ZlbmNlLmMgICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbnY1MF9mZW5jZS5jICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L252ODRfZmVuY2UuYyAgICAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJz L2dwdS9kcm0vcXhsL3F4bF9kcnYuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICAgZHJp dmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jICAgICAgICAgICAgICAgfCAgMjcgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAgICAgICAgICAgIHwgIDEwICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyAgICAgICAgICB8ICAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jICAgICAgICAg fCAgIDggKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgICAgICAg ICAgIHwgIDUwICstLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc3luYy5jICAg ICAgICAgICAgfCAgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5j ICAgICAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAg ICAgICAgICAgICAgICAgICB8ICAyNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9f dXRpbC5jICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2V4ZWNidWZfdXRpbC5jICAgICAgICAgIHwgICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vdmly dGlvL3ZpcnRncHVfZGlzcGxheS5jICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X2Rydi5oICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jICAgICAgICAgIHwgIDIyICstCj4gICBkcml2ZXJz L2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYyAgICAgICAgICB8ICAxMiArLQo+ICAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyAgICAgICAgICAgfCAgNDAgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmggICAgICAgICAgIHwgICA4ICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jICAgICAgICB8ICAg MiArLQo+ICAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDQgKy0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAg ICAgIHwgICAyICstCj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oICAgICAg ICAgICAgICB8ICAgMiArLQo+ICAgaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLmggICAgICAg ICAgICAgICAgICAgICAgIHwgMzkyICsrKysrKysrKysrKysrKysrCj4gICBpbmNsdWRlL2xpbnV4 L2ZlbmNlLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM3OSAtLS0tLS0tLS0tLS0tLS0t LQo+ICAgaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oICAgICAgICAgICAgICAgICAgICAgfCAg MjggKy0KPiAgIGluY2x1ZGUvbGludXgvc2Vxbm8tZmVuY2UuaCAgICAgICAgICAgICAgICAgICAg IHwgIDE2ICstCj4gICBpbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oICAgICAgICAgICAgICAgICAg ICAgICB8ICAgOCArLQo+ICAgaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hLWZlbmNlLmggICAgICAg ICAgICAgICAgfCAxMjggKysrKysrCj4gICBpbmNsdWRlL3RyYWNlL2V2ZW50cy9mZW5jZS5oICAg ICAgICAgICAgICAgICAgICB8IDEyOCAtLS0tLS0KPiAgIDk0IGZpbGVzIGNoYW5nZWQsIDE3MTkg aW5zZXJ0aW9ucygrKSwgMTY5NSBkZWxldGlvbnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2RtYS1idWYvZmVuY2UuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvZG1h LWZlbmNlLmgKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L2ZlbmNlLmgKPiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kbWEtZmVuY2UuaAo+ICAg ZGVsZXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdHJhY2UvZXZlbnRzL2ZlbmNlLmgKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2Jhc2UvS2NvbmZpZyBiL2RyaXZlcnMvYmFzZS9LY29uZmlnCj4gaW5k ZXggOTg1MDRlYzk5YzdkLi4yZjcxNmMzNzQ2MTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9iYXNl L0tjb25maWcKPiArKysgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwo+IEBAIC0yMzgsMTEgKzIzOCwx MSBAQCBjb25maWcgRE1BX1NIQVJFRF9CVUZGRVIKPiAgIAkgIEFQSXMgZXh0ZW5zaW9uOyB0aGUg ZmlsZSdzIGRlc2NyaXB0b3IgY2FuIHRoZW4gYmUgcGFzc2VkIG9uIHRvIG90aGVyCj4gICAJICBk cml2ZXIuCj4gICAKPiAtY29uZmlnIEZFTkNFX1RSQUNFCj4gLQlib29sICJFbmFibGUgdmVyYm9z ZSBGRU5DRV9UUkFDRSBtZXNzYWdlcyIKPiArY29uZmlnIERNQV9GRU5DRV9UUkFDRQo+ICsJYm9v bCAiRW5hYmxlIHZlcmJvc2UgRE1BX0ZFTkNFX1RSQUNFIG1lc3NhZ2VzIgo+ICAgCWRlcGVuZHMg b24gRE1BX1NIQVJFRF9CVUZGRVIKPiAgIAloZWxwCj4gLQkgIEVuYWJsZSB0aGUgRkVOQ0VfVFJB Q0UgcHJpbnRrcy4gVGhpcyB3aWxsIGFkZCBleHRyYQo+ICsJICBFbmFibGUgdGhlIERNQV9GRU5D RV9UUkFDRSBwcmludGtzLiBUaGlzIHdpbGwgYWRkIGV4dHJhCj4gICAJICBzcGFtIHRvIHRoZSBj b25zb2xlIGxvZywgYnV0IHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gZGlhZ25vc2UKPiAgIAkgIGxv Y2t1cCByZWxhdGVkIHByb2JsZW1zIGZvciBkbWEtYnVmZmVycyBzaGFyZWQgYWNyb3NzIG11bHRp cGxlCj4gICAJICBkZXZpY2VzLgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o IGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IGluZGV4IGQxNTU5Y2QwNGUzZC4uOGE1YTZkYzkx N2Y2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fY3J0Yy5oCj4gQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IGRybV9vYmplY3RfcHJv cGVydGllczsKPiAgIHN0cnVjdCBkcm1fZmlsZTsKPiAgIHN0cnVjdCBkcm1fY2xpcF9yZWN0Owo+ ICAgc3RydWN0IGRldmljZV9ub2RlOwo+IC1zdHJ1Y3QgZmVuY2U7Cj4gK3N0cnVjdCBkbWFfZmVu Y2U7Cj4gICAKPiAgIHN0cnVjdCBkcm1fbW9kZV9vYmplY3Qgewo+ICAgCXVpbnQzMl90IGlkOwo+ IEBAIC0xMjcwLDcgKzEyNzAsNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKPiAgIAo+ICAg CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsgICAvKiBkbyBub3Qgd3JpdGUgZGlyZWN0bHksIHVzZSBk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZSgpICovCj4gICAJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmI7ICAvKiBkbyBub3Qgd3JpdGUgZGlyZWN0bHksIHVzZSBkcm1fYXRvbWljX3NldF9m Yl9mb3JfcGxhbmUoKSAqLwo+IC0Jc3RydWN0IGZlbmNlICpmZW5jZTsKPiArCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlOwo+ICAgCj4gICAJLyogU2lnbmVkIGRlc3QgbG9jYXRpb24gYWxsb3dzIGl0 IHRvIGJlIHBhcnRpYWxseSBvZmYgc2NyZWVuICovCj4gICAJaW50MzJfdCBjcnRjX3gsIGNydGNf eTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPiBpbmRleCA1MTNmN2Y5NmI4MGEuLjMyNTc3NmEw MDkwNyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4gKysr IGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+IEBAIC0xMDIzLDcgKzEwMjMsNyBA QCBleHRlcm4gdm9pZCB0dG1fYm9fZnJlZV9vbGRfbm9kZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvKTsKPiAgICAqLwo+ICAgCj4gICBleHRlcm4gaW50IHR0bV9ib19tb3ZlX2FjY2VsX2Ns ZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkJCSAgICAgc3RydWN0IGZl bmNlICpmZW5jZSwKPiArCQkJCSAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gICAJCQkJ ICAgICBib29sIGV2aWN0LCBib29sIG5vX3dhaXRfZ3B1LAo+ICAgCQkJCSAgICAgc3RydWN0IHR0 bV9tZW1fcmVnICpuZXdfbWVtKTsKPiAgIC8qKgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90 dG0vdHRtX2V4ZWNidWZfdXRpbC5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwu aAo+IGluZGV4IGI2MjBjMzE3Yzc3Mi4uNDdmMzViOGU2ZDA5IDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmgKPiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRt X2V4ZWNidWZfdXRpbC5oCj4gQEAgLTExNCw2ICsxMTQsNiBAQCBleHRlcm4gaW50IHR0bV9ldV9y ZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCj4gICAKPiAgIGV4 dGVybiB2b2lkIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9j dHggKnRpY2tldCwKPiAgIAkJCQkJc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKPiAtCQkJCQlzdHJ1 Y3QgZmVuY2UgKmZlbmNlKTsKPiArCQkJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4gICAK PiAgICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaCBiL2luY2x1 ZGUvbGludXgvZG1hLWJ1Zi5oCj4gaW5kZXggNDU1MWM2ZjJhNmM0Li5hMjI1NTA3OTVhYzcgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4 L2RtYS1idWYuaAo+IEBAIC0zMCw3ICszMCw3IEBACj4gICAjaW5jbHVkZSA8bGludXgvbGlzdC5o Pgo+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4gICAjaW5jbHVkZSA8bGludXgv ZnMuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEt ZmVuY2UuaD4KPiAgICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+Cj4gICAKPiAgIHN0cnVjdCBkZXZp Y2U7Cj4gQEAgLTE0Myw3ICsxNDMsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiB7Cj4gICAJd2FpdF9xdWV1 ZV9oZWFkX3QgcG9sbDsKPiAgIAo+ICAgCXN0cnVjdCBkbWFfYnVmX3BvbGxfY2JfdCB7Cj4gLQkJ c3RydWN0IGZlbmNlX2NiIGNiOwo+ICsJCXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7Cj4gICAJCXdh aXRfcXVldWVfaGVhZF90ICpwb2xsOwo+ICAgCj4gICAJCXVuc2lnbmVkIGxvbmcgYWN0aXZlOwo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9k bWEtZmVuY2UuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5h NTQzYTg3ZmQwZWQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtZmVu Y2UuaAo+IEBAIC0wLDAgKzEsMzkyIEBACj4gKy8qCj4gKyAqIEZlbmNlIG1lY2hhbmlzbSBmb3Ig ZG1hLWJ1ZiB0byBhbGxvdyBmb3IgYXN5bmNocm9ub3VzIGRtYSBhY2Nlc3MKPiArICoKPiArICog Q29weXJpZ2h0IChDKSAyMDEyIENhbm9uaWNhbCBMdGQKPiArICogQ29weXJpZ2h0IChDKSAyMDEy IFRleGFzIEluc3RydW1lbnRzCj4gKyAqCj4gKyAqIEF1dGhvcnM6Cj4gKyAqIFJvYiBDbGFyayA8 cm9iZGNsYXJrQGdtYWlsLmNvbT4KPiArICogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGNhbm9uaWNhbC5jb20+Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4gKyAqIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAy IGFzIHB1Ymxpc2hlZCBieQo+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsg Kgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiArICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCj4gKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IKPiArICogbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19M SU5VWF9ETUFfRkVOQ0VfSAo+ICsjZGVmaW5lIF9fTElOVVhfRE1BX0ZFTkNFX0gKPiArCj4gKyNp bmNsdWRlIDxsaW51eC9lcnIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L2xpc3QuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgo+ICsjaW5jbHVk ZSA8bGludXgva3JlZi5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KPiArI2luY2x1ZGUg PGxpbnV4L3ByaW50ay5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KPiArCj4gK3N0 cnVjdCBkbWFfZmVuY2U7Cj4gK3N0cnVjdCBkbWFfZmVuY2Vfb3BzOwo+ICtzdHJ1Y3QgZG1hX2Zl bmNlX2NiOwo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkbWFfZmVuY2UgLSBzb2Z0d2FyZSBzeW5j aHJvbml6YXRpb24gcHJpbWl0aXZlCj4gKyAqIEByZWZjb3VudDogcmVmY291bnQgZm9yIHRoaXMg ZmVuY2UKPiArICogQG9wczogZG1hX2ZlbmNlX29wcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBmZW5j ZQo+ICsgKiBAcmN1OiB1c2VkIGZvciByZWxlYXNpbmcgZmVuY2Ugd2l0aCBrZnJlZV9yY3UKPiAr ICogQGNiX2xpc3Q6IGxpc3Qgb2YgYWxsIGNhbGxiYWNrcyB0byBjYWxsCj4gKyAqIEBsb2NrOiBz cGluX2xvY2tfaXJxc2F2ZSB1c2VkIGZvciBsb2NraW5nCj4gKyAqIEBjb250ZXh0OiBleGVjdXRp b24gY29udGV4dCB0aGlzIGZlbmNlIGJlbG9uZ3MgdG8sIHJldHVybmVkIGJ5Cj4gKyAqICAgICAg ICAgICBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygpCj4gKyAqIEBzZXFubzogdGhlIHNlcXVlbmNl IG51bWJlciBvZiB0aGlzIGZlbmNlIGluc2lkZSB0aGUgZXhlY3V0aW9uIGNvbnRleHQsCj4gKyAq IGNhbiBiZSBjb21wYXJlZCB0byBkZWNpZGUgd2hpY2ggZmVuY2Ugd291bGQgYmUgc2lnbmFsZWQg bGF0ZXIuCj4gKyAqIEBmbGFnczogQSBtYXNrIG9mIERNQV9GRU5DRV9GTEFHXyogZGVmaW5lZCBi ZWxvdwo+ICsgKiBAdGltZXN0YW1wOiBUaW1lc3RhbXAgd2hlbiB0aGUgZmVuY2Ugd2FzIHNpZ25h bGVkLgo+ICsgKiBAc3RhdHVzOiBPcHRpb25hbCwgb25seSB2YWxpZCBpZiA8IDAsIG11c3QgYmUg c2V0IGJlZm9yZSBjYWxsaW5nCj4gKyAqIGRtYV9mZW5jZV9zaWduYWwsIGluZGljYXRlcyB0aGF0 IHRoZSBmZW5jZSBoYXMgY29tcGxldGVkIHdpdGggYW4gZXJyb3IuCj4gKyAqIEBjaGlsZF9saXN0 OiBsaXN0IG9mIGNoaWxkcmVuIGZlbmNlcwo+ICsgKiBAYWN0aXZlX2xpc3Q6IGxpc3Qgb2YgYWN0 aXZlIGZlbmNlcwo+ICsgKgo+ICsgKiB0aGUgZmxhZ3MgbWVtYmVyIG11c3QgYmUgbWFuaXB1bGF0 ZWQgYW5kIHJlYWQgdXNpbmcgdGhlIGFwcHJvcHJpYXRlCj4gKyAqIGF0b21pYyBvcHMgKGJpdF8q KSwgc28gdGFraW5nIHRoZSBzcGlubG9jayB3aWxsIG5vdCBiZSBuZWVkZWQgbW9zdAo+ICsgKiBv ZiB0aGUgdGltZS4KPiArICoKPiArICogRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIC0gZmVu Y2UgaXMgYWxyZWFkeSBzaWduYWxlZAo+ICsgKiBETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFM X0JJVCAtIGVuYWJsZV9zaWduYWxpbmcgbWlnaHQgaGF2ZSBiZWVuIGNhbGxlZAo+ICsgKiBETUFf RkVOQ0VfRkxBR19VU0VSX0JJVFMgLSBzdGFydCBvZiB0aGUgdW51c2VkIGJpdHMsIGNhbiBiZSB1 c2VkIGJ5IHRoZQo+ICsgKiBpbXBsZW1lbnRlciBvZiB0aGUgZmVuY2UgZm9yIGl0cyBvd24gcHVy cG9zZXMuIENhbiBiZSB1c2VkIGluIGRpZmZlcmVudAo+ICsgKiB3YXlzIGJ5IGRpZmZlcmVudCBm ZW5jZSBpbXBsZW1lbnRlcnMsIHNvIGRvIG5vdCByZWx5IG9uIHRoaXMuCj4gKyAqCj4gKyAqICop IFNpbmNlIGF0b21pYyBiaXRvcHMgYXJlIHVzZWQsIHRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8g YmUgdGhlIGNhc2UuCj4gKyAqIFBhcnRpY3VsYXJseSwgaWYgdGhlIGJpdCB3YXMgc2V0LCBidXQg ZG1hX2ZlbmNlX3NpZ25hbCB3YXMgY2FsbGVkIHJpZ2h0Cj4gKyAqIGJlZm9yZSB0aGlzIGJpdCB3 YXMgc2V0LCBpdCB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBzZXQgdGhlCj4gKyAqIERNQV9GRU5D RV9GTEFHX1NJR05BTEVEX0JJVCwgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgd2FzIGNhbGxlZC4K PiArICogQWRkaW5nIGEgY2hlY2sgZm9yIERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBhZnRl ciBzZXR0aW5nCj4gKyAqIERNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklUIGNsb3NlcyB0 aGlzIHJhY2UsIGFuZCBtYWtlcyBzdXJlIHRoYXQKPiArICogYWZ0ZXIgZG1hX2ZlbmNlX3NpZ25h bCB3YXMgY2FsbGVkLCBhbnkgZW5hYmxlX3NpZ25hbGluZyBjYWxsIHdpbGwgaGF2ZSBlaXRoZXIK PiArICogYmVlbiBjb21wbGV0ZWQsIG9yIG5ldmVyIGNhbGxlZCBhdCBhbGwuCj4gKyAqLwo+ICtz dHJ1Y3QgZG1hX2ZlbmNlIHsKPiArCXN0cnVjdCBrcmVmIHJlZmNvdW50Owo+ICsJY29uc3Qgc3Ry dWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKPiArCXN0cnVjdCByY3VfaGVhZCByY3U7Cj4gKwlzdHJ1 Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7Cj4gKwlzcGlubG9ja190ICpsb2NrOwo+ICsJdW5zaWduZWQg Y29udGV4dCwgc2Vxbm87Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJa3RpbWVfdCB0aW1l c3RhbXA7Cj4gKwlpbnQgc3RhdHVzOwo+ICt9Owo+ICsKPiArZW51bSBkbWFfZmVuY2VfZmxhZ19i aXRzIHsKPiArCURNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwKPiArCURNQV9GRU5DRV9GTEFH X0VOQUJMRV9TSUdOQUxfQklULAo+ICsJRE1BX0ZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAvKiBtdXN0 IGFsd2F5cyBiZSBsYXN0IG1lbWJlciAqLwo+ICt9Owo+ICsKPiArdHlwZWRlZiB2b2lkICgqZG1h X2ZlbmNlX2Z1bmNfdCkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gKwkJCQkgc3RydWN0IGRt YV9mZW5jZV9jYiAqY2IpOwo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkbWFfZmVuY2VfY2IgLSBj YWxsYmFjayBmb3IgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjawo+ICsgKiBAbm9kZTogdXNlZCBieSBk bWFfZmVuY2VfYWRkX2NhbGxiYWNrIHRvIGFwcGVuZCB0aGlzIHN0cnVjdCB0byBmZW5jZTo6Y2Jf bGlzdAo+ICsgKiBAZnVuYzogZG1hX2ZlbmNlX2Z1bmNfdCB0byBjYWxsCj4gKyAqCj4gKyAqIFRo aXMgc3RydWN0IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYnkgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywg YWRkaXRpb25hbAo+ICsgKiBkYXRhIGNhbiBiZSBwYXNzZWQgYWxvbmcgYnkgZW1iZWRkaW5nIGRt YV9mZW5jZV9jYiBpbiBhbm90aGVyIHN0cnVjdC4KPiArICovCj4gK3N0cnVjdCBkbWFfZmVuY2Vf Y2Igewo+ICsJc3RydWN0IGxpc3RfaGVhZCBub2RlOwo+ICsJZG1hX2ZlbmNlX2Z1bmNfdCBmdW5j Owo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkbWFfZmVuY2Vfb3BzIC0gb3BlcmF0aW9u cyBpbXBsZW1lbnRlZCBmb3IgZmVuY2UKPiArICogQGdldF9kcml2ZXJfbmFtZTogcmV0dXJucyB0 aGUgZHJpdmVyIG5hbWUuCj4gKyAqIEBnZXRfdGltZWxpbmVfbmFtZTogcmV0dXJuIHRoZSBuYW1l IG9mIHRoZSBjb250ZXh0IHRoaXMgZmVuY2UgYmVsb25ncyB0by4KPiArICogQGVuYWJsZV9zaWdu YWxpbmc6IGVuYWJsZSBzb2Z0d2FyZSBzaWduYWxpbmcgb2YgZmVuY2UuCj4gKyAqIEBzaWduYWxl ZDogW29wdGlvbmFsXSBwZWVrIHdoZXRoZXIgdGhlIGZlbmNlIGlzIHNpZ25hbGVkLCBjYW4gYmUg bnVsbC4KPiArICogQHdhaXQ6IGN1c3RvbSB3YWl0IGltcGxlbWVudGF0aW9uLCBvciBkbWFfZmVu Y2VfZGVmYXVsdF93YWl0Lgo+ICsgKiBAcmVsZWFzZTogW29wdGlvbmFsXSBjYWxsZWQgb24gZGVz dHJ1Y3Rpb24gb2YgZmVuY2UsIGNhbiBiZSBudWxsCj4gKyAqIEBmaWxsX2RyaXZlcl9kYXRhOiBb b3B0aW9uYWxdIGNhbGxiYWNrIHRvIGZpbGwgaW4gZnJlZS1mb3JtIGRlYnVnIGluZm8KPiArICog UmV0dXJucyBhbW91bnQgb2YgYnl0ZXMgZmlsbGVkLCBvciAtZXJybm8uCj4gKyAqIEBmZW5jZV92 YWx1ZV9zdHI6IFtvcHRpb25hbF0gZmlsbHMgaW4gdGhlIHZhbHVlIG9mIHRoZSBmZW5jZSBhcyBh IHN0cmluZwo+ICsgKiBAdGltZWxpbmVfdmFsdWVfc3RyOiBbb3B0aW9uYWxdIGZpbGxzIGluIHRo ZSBjdXJyZW50IHZhbHVlIG9mIHRoZSB0aW1lbGluZQo+ICsgKiBhcyBhIHN0cmluZwo+ICsgKgo+ ICsgKiBOb3RlcyBvbiBlbmFibGVfc2lnbmFsaW5nOgo+ICsgKiBGb3IgZmVuY2UgaW1wbGVtZW50 YXRpb25zIHRoYXQgaGF2ZSB0aGUgY2FwYWJpbGl0eSBmb3IgaHctPmh3Cj4gKyAqIHNpZ25hbGlu ZywgdGhleSBjYW4gaW1wbGVtZW50IHRoaXMgb3AgdG8gZW5hYmxlIHRoZSBuZWNlc3NhcnkKPiAr ICogaXJxcywgb3IgaW5zZXJ0IGNvbW1hbmRzIGludG8gY21kc3RyZWFtLCBldGMuICBUaGlzIGlz IGNhbGxlZAo+ICsgKiBpbiB0aGUgZmlyc3Qgd2FpdCgpIG9yIGFkZF9jYWxsYmFjaygpIHBhdGgg dG8gbGV0IHRoZSBmZW5jZQo+ICsgKiBpbXBsZW1lbnRhdGlvbiBrbm93IHRoYXQgdGhlcmUgaXMg YW5vdGhlciBkcml2ZXIgd2FpdGluZyBvbgo+ICsgKiB0aGUgc2lnbmFsIChpZS4gaHctPnN3IGNh c2UpLgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgY2FsbGVkIGZyb20g YXRvbWljIGNvbnRleHQsIGJ1dCBub3QKPiArICogZnJvbSBpcnEgY29udGV4dCwgc28gbm9ybWFs IHNwaW5sb2NrcyBjYW4gYmUgdXNlZC4KPiArICoKPiArICogQSByZXR1cm4gdmFsdWUgb2YgZmFs c2UgaW5kaWNhdGVzIHRoZSBmZW5jZSBhbHJlYWR5IHBhc3NlZCwKPiArICogb3Igc29tZSBmYWls dXJlIG9jY3VycmVkIHRoYXQgbWFkZSBpdCBpbXBvc3NpYmxlIHRvIGVuYWJsZQo+ICsgKiBzaWdu YWxpbmcuIFRydWUgaW5kaWNhdGVzIHN1Y2Nlc3NmdWwgZW5hYmxpbmcuCj4gKyAqCj4gKyAqIGZl bmNlLT5zdGF0dXMgbWF5IGJlIHNldCBpbiBlbmFibGVfc2lnbmFsaW5nLCBidXQgb25seSB3aGVu IGZhbHNlIGlzCj4gKyAqIHJldHVybmVkLgo+ICsgKgo+ICsgKiBDYWxsaW5nIGRtYV9mZW5jZV9z aWduYWwgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgaXMgY2FsbGVkIGFsbG93cwo+ICsgKiBmb3Ig YSB0aW55IHJhY2Ugd2luZG93IGluIHdoaWNoIGVuYWJsZV9zaWduYWxpbmcgaXMgY2FsbGVkIGR1 cmluZywKPiArICogYmVmb3JlLCBvciBhZnRlciBkbWFfZmVuY2Vfc2lnbmFsLiBUbyBmaWdodCB0 aGlzLCBpdCBpcyByZWNvbW1lbmRlZAo+ICsgKiB0aGF0IGJlZm9yZSBlbmFibGVfc2lnbmFsaW5n IHJldHVybnMgdHJ1ZSBhbiBleHRyYSByZWZlcmVuY2UgaXMKPiArICogdGFrZW4gb24gdGhlIGZl bmNlLCB0byBiZSByZWxlYXNlZCB3aGVuIHRoZSBmZW5jZSBpcyBzaWduYWxlZC4KPiArICogVGhp cyB3aWxsIG1lYW4gZG1hX2ZlbmNlX3NpZ25hbCB3aWxsIHN0aWxsIGJlIGNhbGxlZCB0d2ljZSwg YnV0Cj4gKyAqIHRoZSBzZWNvbmQgdGltZSB3aWxsIGJlIGEgbm9vcCBzaW5jZSBpdCB3YXMgYWxy ZWFkeSBzaWduYWxlZC4KPiArICoKPiArICogTm90ZXMgb24gc2lnbmFsZWQ6Cj4gKyAqIE1heSBz ZXQgZmVuY2UtPnN0YXR1cyBpZiByZXR1cm5pbmcgdHJ1ZS4KPiArICoKPiArICogTm90ZXMgb24g d2FpdDoKPiArICogTXVzdCBub3QgYmUgTlVMTCwgc2V0IHRvIGRtYV9mZW5jZV9kZWZhdWx0X3dh aXQgZm9yIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCj4gKyAqIHRoZSBkbWFfZmVuY2VfZGVmYXVs dF93YWl0IGltcGxlbWVudGF0aW9uIHNob3VsZCB3b3JrIGZvciBhbnkgZmVuY2UsIGFzIGxvbmcK PiArICogYXMgZW5hYmxlX3NpZ25hbGluZyB3b3JrcyBjb3JyZWN0bHkuCj4gKyAqCj4gKyAqIE11 c3QgcmV0dXJuIC1FUkVTVEFSVFNZUyBpZiB0aGUgd2FpdCBpcyBpbnRyID0gdHJ1ZSBhbmQgdGhl IHdhaXQgd2FzCj4gKyAqIGludGVycnVwdGVkLCBhbmQgcmVtYWluaW5nIGppZmZpZXMgaWYgZmVu Y2UgaGFzIHNpZ25hbGVkLCBvciAwIGlmIHdhaXQKPiArICogdGltZWQgb3V0LiBDYW4gYWxzbyBy ZXR1cm4gb3RoZXIgZXJyb3IgdmFsdWVzIG9uIGN1c3RvbSBpbXBsZW1lbnRhdGlvbnMsCj4gKyAq IHdoaWNoIHNob3VsZCBiZSB0cmVhdGVkIGFzIGlmIHRoZSBmZW5jZSBpcyBzaWduYWxlZC4gRm9y IGV4YW1wbGUgYSBoYXJkd2FyZQo+ICsgKiBsb2NrdXAgY291bGQgYmUgcmVwb3J0ZWQgbGlrZSB0 aGF0Lgo+ICsgKgo+ICsgKiBOb3RlcyBvbiByZWxlYXNlOgo+ICsgKiBDYW4gYmUgTlVMTCwgdGhp cyBmdW5jdGlvbiBhbGxvd3MgYWRkaXRpb25hbCBjb21tYW5kcyB0byBydW4gb24KPiArICogZGVz dHJ1Y3Rpb24gb2YgdGhlIGZlbmNlLiBDYW4gYmUgY2FsbGVkIGZyb20gaXJxIGNvbnRleHQuCj4g KyAqIElmIHBvaW50ZXIgaXMgc2V0IHRvIE5VTEwsIGtmcmVlIHdpbGwgZ2V0IGNhbGxlZCBpbnN0 ZWFkLgo+ICsgKi8KPiArCj4gK3N0cnVjdCBkbWFfZmVuY2Vfb3BzIHsKPiArCWNvbnN0IGNoYXIg KiAoKmdldF9kcml2ZXJfbmFtZSkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwo+ICsJY29uc3Qg Y2hhciAqICgqZ2V0X3RpbWVsaW5lX25hbWUpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPiAr CWJvb2wgKCplbmFibGVfc2lnbmFsaW5nKShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4gKwli b29sICgqc2lnbmFsZWQpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPiArCXNpZ25lZCBsb25n ICgqd2FpdCkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gKwkJCSAgICBib29sIGludHIsIHNp Z25lZCBsb25nIHRpbWVvdXQpOwo+ICsJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKTsKPiArCj4gKwlpbnQgKCpmaWxsX2RyaXZlcl9kYXRhKShzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSwgdm9pZCAqZGF0YSwgaW50IHNpemUpOwo+ICsJdm9pZCAoKmZlbmNlX3ZhbHVlX3N0 cikoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpOwo+ICsJdm9p ZCAoKnRpbWVsaW5lX3ZhbHVlX3N0cikoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gKwkJCQkg ICBjaGFyICpzdHIsIGludCBzaXplKTsKPiArfTsKPiArCj4gK3ZvaWQgZG1hX2ZlbmNlX2luaXQo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCj4gKwkJICAgIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzICpvcHMsCj4gKwkJICAgIHNwaW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGNvbnRleHQsIHVu c2lnbmVkIHNlcW5vKTsKPiArCj4gK3ZvaWQgZG1hX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGtyZWYg KmtyZWYpOwo+ICt2b2lkIGRtYV9mZW5jZV9mcmVlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsK PiArCj4gKy8qKgo+ICsgKiBkbWFfZmVuY2VfZ2V0IC0gaW5jcmVhc2VzIHJlZmNvdW50IG9mIHRo ZSBmZW5jZQo+ICsgKiBAZmVuY2U6CVtpbl0JZmVuY2UgdG8gaW5jcmVhc2UgcmVmY291bnQgb2YK PiArICoKPiArICogUmV0dXJucyB0aGUgc2FtZSBmZW5jZSwgd2l0aCByZWZjb3VudCBpbmNyZWFz ZWQgYnkgMS4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2Zl bmNlX2dldChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKPiArewo+ICsJaWYgKGZlbmNlKQo+ICsJ CWtyZWZfZ2V0KCZmZW5jZS0+cmVmY291bnQpOwo+ICsJcmV0dXJuIGZlbmNlOwo+ICt9Cj4gKwo+ ICsvKioKPiArICogZG1hX2ZlbmNlX2dldF9yY3UgLSBnZXQgYSBmZW5jZSBmcm9tIGEgcmVzZXJ2 YXRpb25fb2JqZWN0X2xpc3Qgd2l0aAo+ICsgKiAgICAgICAgICAgICAgICAgICAgIHJjdSByZWFk IGxvY2sKPiArICogQGZlbmNlOglbaW5dCWZlbmNlIHRvIGluY3JlYXNlIHJlZmNvdW50IG9mCj4g KyAqCj4gKyAqIEZ1bmN0aW9uIHJldHVybnMgTlVMTCBpZiBubyByZWZjb3VudCBjb3VsZCBiZSBv YnRhaW5lZCwgb3IgdGhlIGZlbmNlLgo+ICsgKi8KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1h X2ZlbmNlICpkbWFfZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKPiArewo+ ICsJaWYgKGtyZWZfZ2V0X3VubGVzc196ZXJvKCZmZW5jZS0+cmVmY291bnQpKQo+ICsJCXJldHVy biBmZW5jZTsKPiArCWVsc2UKPiArCQlyZXR1cm4gTlVMTDsKPiArfQo+ICsKPiArLyoqCj4gKyAq IGRtYV9mZW5jZV9wdXQgLSBkZWNyZWFzZXMgcmVmY291bnQgb2YgdGhlIGZlbmNlCj4gKyAqIEBm ZW5jZToJW2luXQlmZW5jZSB0byByZWR1Y2UgcmVmY291bnQgb2YKPiArICovCj4gK3N0YXRpYyBp bmxpbmUgdm9pZCBkbWFfZmVuY2VfcHV0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ICt7Cj4g KwlpZiAoZmVuY2UpCj4gKwkJa3JlZl9wdXQoJmZlbmNlLT5yZWZjb3VudCwgZG1hX2ZlbmNlX3Jl bGVhc2UpOwo+ICt9Cj4gKwo+ICtpbnQgZG1hX2ZlbmNlX3NpZ25hbChzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSk7Cj4gK2ludCBkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSk7Cj4gK3NpZ25lZCBsb25nIGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UsCj4gKwkJCQkgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQp Owo+ICtpbnQgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwK PiArCQkJICAgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IsCj4gKwkJCSAgIGRtYV9mZW5jZV9mdW5j X3QgZnVuYyk7Cj4gK2Jvb2wgZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayhzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSwKPiArCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKTsKPiArdm9p ZCBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7 Cj4gKwo+ICsvKioKPiArICogZG1hX2ZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZCAtIFJldHVybiBh biBpbmRpY2F0aW9uIGlmIHRoZSBmZW5jZQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXMgc2lnbmFsZWQgeWV0Lgo+ICsgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIGNo ZWNrCj4gKyAqCj4gKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZmVuY2Ugd2FzIGFscmVhZHkgc2ln bmFsZWQsIGZhbHNlIGlmIG5vdC4gU2luY2UgdGhpcwo+ICsgKiBmdW5jdGlvbiBkb2Vzbid0IGVu YWJsZSBzaWduYWxpbmcsIGl0IGlzIG5vdCBndWFyYW50ZWVkIHRvIGV2ZXIgcmV0dXJuCj4gKyAq IHRydWUgaWYgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywgZG1hX2ZlbmNlX3dhaXQgb3IKPiArICog ZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcgaGF2ZW4ndCBiZWVuIGNhbGxlZCBiZWZvcmUu Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZmVuY2UtPmxvY2sgdG8gYmUgaGVs ZC4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtkbWFfZmVuY2VfaXNfc2lnbmFsZWRf bG9ja2VkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ICt7Cj4gKwlpZiAodGVzdF9iaXQoRE1B X0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKPiArCQlyZXR1cm4gdHJ1 ZTsKPiArCj4gKwlpZiAoZmVuY2UtPm9wcy0+c2lnbmFsZWQgJiYgZmVuY2UtPm9wcy0+c2lnbmFs ZWQoZmVuY2UpKSB7Cj4gKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoZmVuY2UpOwo+ICsJCXJl dHVybiB0cnVlOwo+ICsJfQo+ICsKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ICsKPiArLyoqCj4g KyAqIGRtYV9mZW5jZV9pc19zaWduYWxlZCAtIFJldHVybiBhbiBpbmRpY2F0aW9uIGlmIHRoZSBm ZW5jZSBpcyBzaWduYWxlZCB5ZXQuCj4gKyAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gY2hl Y2sKPiArICoKPiArICogUmV0dXJucyB0cnVlIGlmIHRoZSBmZW5jZSB3YXMgYWxyZWFkeSBzaWdu YWxlZCwgZmFsc2UgaWYgbm90LiBTaW5jZSB0aGlzCj4gKyAqIGZ1bmN0aW9uIGRvZXNuJ3QgZW5h YmxlIHNpZ25hbGluZywgaXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gZXZlciByZXR1cm4KPiArICog dHJ1ZSBpZiBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrLCBkbWFfZmVuY2Vfd2FpdCBvcgo+ICsgKiBk bWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyBoYXZlbid0IGJlZW4gY2FsbGVkIGJlZm9yZS4K PiArICoKPiArICogSXQncyByZWNvbW1lbmRlZCBmb3Igc2Vxbm8gZmVuY2VzIHRvIGNhbGwgZG1h X2ZlbmNlX3NpZ25hbCB3aGVuIHRoZQo+ICsgKiBvcGVyYXRpb24gaXMgY29tcGxldGUsIGl0IG1h a2VzIGl0IHBvc3NpYmxlIHRvIHByZXZlbnQgaXNzdWVzIGZyb20KPiArICogd3JhcGFyb3VuZCBi ZXR3ZWVuIHRpbWUgb2YgaXNzdWUgYW5kIHRpbWUgb2YgdXNlIGJ5IGNoZWNraW5nIHRoZSByZXR1 cm4KPiArICogdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBiZWZvcmUgY2FsbGluZyBoYXJkd2FyZS1z cGVjaWZpYyB3YWl0IGluc3RydWN0aW9ucy4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ ICtkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4gK3sKPiAr CWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3Mp KQo+ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCWlmIChmZW5jZS0+b3BzLT5zaWduYWxlZCAmJiBm ZW5jZS0+b3BzLT5zaWduYWxlZChmZW5jZSkpIHsKPiArCQlkbWFfZmVuY2Vfc2lnbmFsKGZlbmNl KTsKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiAr Cj4gKy8qKgo+ICsgKiBkbWFfZmVuY2VfaXNfbGF0ZXIgLSByZXR1cm4gaWYgZjEgaXMgY2hyb25v bG9naWNhbGx5IGxhdGVyIHRoYW4gZjIKPiArICogQGYxOglbaW5dCXRoZSBmaXJzdCBmZW5jZSBm cm9tIHRoZSBzYW1lIGNvbnRleHQKPiArICogQGYyOglbaW5dCXRoZSBzZWNvbmQgZmVuY2UgZnJv bSB0aGUgc2FtZSBjb250ZXh0Cj4gKyAqCj4gKyAqIFJldHVybnMgdHJ1ZSBpZiBmMSBpcyBjaHJv bm9sb2dpY2FsbHkgbGF0ZXIgdGhhbiBmMi4gQm90aCBmZW5jZXMgbXVzdCBiZQo+ICsgKiBmcm9t IHRoZSBzYW1lIGNvbnRleHQsIHNpbmNlIGEgc2Vxbm8gaXMgbm90IHJlLXVzZWQgYWNyb3NzIGNv bnRleHRzLgo+ICsgKi8KPiArc3RhdGljIGlubGluZSBib29sIGRtYV9mZW5jZV9pc19sYXRlcihz dHJ1Y3QgZG1hX2ZlbmNlICpmMSwKPiArCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmYyKQo+ ICt7Cj4gKwlpZiAoV0FSTl9PTihmMS0+Y29udGV4dCAhPSBmMi0+Y29udGV4dCkpCj4gKwkJcmV0 dXJuIGZhbHNlOwo+ICsKPiArCXJldHVybiAoaW50KShmMS0+c2Vxbm8gLSBmMi0+c2Vxbm8pID4g MDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRtYV9mZW5jZV9sYXRlciAtIHJldHVybiB0aGUgY2hy b25vbG9naWNhbGx5IGxhdGVyIGZlbmNlCj4gKyAqIEBmMToJW2luXQl0aGUgZmlyc3QgZmVuY2Ug ZnJvbSB0aGUgc2FtZSBjb250ZXh0Cj4gKyAqIEBmMjoJW2luXQl0aGUgc2Vjb25kIGZlbmNlIGZy b20gdGhlIHNhbWUgY29udGV4dAo+ICsgKgo+ICsgKiBSZXR1cm5zIE5VTEwgaWYgYm90aCBmZW5j ZXMgYXJlIHNpZ25hbGVkLCBvdGhlcndpc2UgdGhlIGZlbmNlIHRoYXQgd291bGQgYmUKPiArICog c2lnbmFsZWQgbGFzdC4gQm90aCBmZW5jZXMgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQs IHNpbmNlIGEgc2Vxbm8gaXMKPiArICogbm90IHJlLXVzZWQgYWNyb3NzIGNvbnRleHRzLgo+ICsg Ki8KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICpkbWFfZmVuY2VfbGF0ZXIoc3Ry dWN0IGRtYV9mZW5jZSAqZjEsCj4gKwkJCQkJICAgICAgIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmMikK PiArewo+ICsJaWYgKFdBUk5fT04oZjEtPmNvbnRleHQgIT0gZjItPmNvbnRleHQpKQo+ICsJCXJl dHVybiBOVUxMOwo+ICsKPiArCS8qCj4gKwkgKiBDYW4ndCBjaGVjayBqdXN0IERNQV9GRU5DRV9G TEFHX1NJR05BTEVEX0JJVCBoZXJlLCBpdCBtYXkgbmV2ZXIKPiArCSAqIGhhdmUgYmVlbiBzZXQg aWYgZW5hYmxlX3NpZ25hbGluZyB3YXNuJ3QgY2FsbGVkLCBhbmQgZW5hYmxpbmcgdGhhdAo+ICsJ ICogaGVyZSBpcyBvdmVya2lsbC4KPiArCSAqLwo+ICsJaWYgKGRtYV9mZW5jZV9pc19sYXRlcihm MSwgZjIpKQo+ICsJCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZjEpID8gTlVMTCA6IGYx Owo+ICsJZWxzZQo+ICsJCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZjIpID8gTlVMTCA6 IGYyOwo+ICt9Cj4gKwo+ICtzaWduZWQgbG9uZyBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVj dCBkbWFfZmVuY2UgKiwKPiArCQkJCSAgIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7 Cj4gK3NpZ25lZCBsb25nIGRtYV9mZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBkbWFfZmVu Y2UgKipmZW5jZXMsCj4gKwkJCQkgICAgICAgdWludDMyX3QgY291bnQsCj4gKwkJCQkgICAgICAg Ym9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KTsKPiArCj4gKy8qKgo+ICsgKiBkbWFfZmVu Y2Vfd2FpdCAtIHNsZWVwIHVudGlsIHRoZSBmZW5jZSBnZXRzIHNpZ25hbGVkCj4gKyAqIEBmZW5j ZToJW2luXQl0aGUgZmVuY2UgdG8gd2FpdCBvbgo+ICsgKiBAaW50cjoJW2luXQlpZiB0cnVlLCBk byBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiB3aWxsIHJl dHVybiAtRVJFU1RBUlRTWVMgaWYgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwsCj4gKyAqIG9yIDAg aWYgdGhlIGZlbmNlIHdhcyBzaWduYWxlZC4gT3RoZXIgZXJyb3IgdmFsdWVzIG1heSBiZQo+ICsg KiByZXR1cm5lZCBvbiBjdXN0b20gaW1wbGVtZW50YXRpb25zLgo+ICsgKgo+ICsgKiBQZXJmb3Jt cyBhIHN5bmNocm9ub3VzIHdhaXQgb24gdGhpcyBmZW5jZS4gSXQgaXMgYXNzdW1lZCB0aGUgY2Fs bGVyCj4gKyAqIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhl IGZlbmNlLCBvdGhlcndpc2UgdGhlCj4gKyAqIGZlbmNlIG1pZ2h0IGJlIGZyZWVkIGJlZm9yZSBy ZXR1cm4sIHJlc3VsdGluZyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCj4gKyAqLwo+ICtzdGF0aWMg aW5saW5lIHNpZ25lZCBsb25nIGRtYV9mZW5jZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl LCBib29sIGludHIpCj4gK3sKPiArCXNpZ25lZCBsb25nIHJldDsKPiArCj4gKwkvKiBTaW5jZSBk bWFfZmVuY2Vfd2FpdF90aW1lb3V0IGNhbm5vdCB0aW1lb3V0IHdpdGgKPiArCSAqIE1BWF9TQ0hF RFVMRV9USU1FT1VULCBvbmx5IHZhbGlkIHJldHVybiB2YWx1ZXMgYXJlCj4gKwkgKiAtRVJFU1RB UlRTWVMgYW5kIE1BWF9TQ0hFRFVMRV9USU1FT1VULgo+ICsJICovCj4gKwlyZXQgPSBkbWFfZmVu Y2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBpbnRyLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gKwo+ ICsJcmV0dXJuIHJldCA8IDAgPyByZXQgOiAwOwo+ICt9Cj4gKwo+ICt1bnNpZ25lZCBkbWFfZmVu Y2VfY29udGV4dF9hbGxvYyh1bnNpZ25lZCBudW0pOwo+ICsKPiArI2RlZmluZSBETUFfRkVOQ0Vf VFJBQ0UoZiwgZm10LCBhcmdzLi4uKSBcCj4gKwlkbyB7CQkJCQkJCQlcCj4gKwkJc3RydWN0IGRt YV9mZW5jZSAqX19mZiA9IChmKTsJCQkJXAo+ICsJCWlmIChjb25maWdfZW5hYmxlZChDT05GSUdf RE1BX0ZFTkNFX1RSQUNFKSkJCVwKPiArCQkJcHJfaW5mbygiZiAldSMldTogIiBmbXQsCQkJXAo+ ICsJCQkJX19mZi0+Y29udGV4dCwgX19mZi0+c2Vxbm8sICMjYXJncyk7CVwKPiArCX0gd2hpbGUg KDApCj4gKwo+ICsjZGVmaW5lIERNQV9GRU5DRV9XQVJOKGYsIGZtdCwgYXJncy4uLikgXAo+ICsJ ZG8gewkJCQkJCQkJXAo+ICsJCXN0cnVjdCBkbWFfZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKPiAr CQlwcl93YXJuKCJmICV1IyV1OiAiIGZtdCwgX19mZi0+Y29udGV4dCwgX19mZi0+c2Vxbm8sCVwK PiArCQkJICMjYXJncyk7CQkJCQlcCj4gKwl9IHdoaWxlICgwKQo+ICsKPiArI2RlZmluZSBETUFf RkVOQ0VfRVJSKGYsIGZtdCwgYXJncy4uLikgXAo+ICsJZG8gewkJCQkJCQkJXAo+ICsJCXN0cnVj dCBkbWFfZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKPiArCQlwcl9lcnIoImYgJXUjJXU6ICIgZm10 LCBfX2ZmLT5jb250ZXh0LCBfX2ZmLT5zZXFubywJXAo+ICsJCQkjI2FyZ3MpOwkJCQkJXAo+ICsJ fSB3aGlsZSAoMCkKPiArCj4gKyNlbmRpZiAvKiBfX0xJTlVYX0RNQV9GRU5DRV9IICovCj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaCBiL2luY2x1ZGUvbGludXgvcmVz ZXJ2YXRpb24uaAo+IGluZGV4IGIwZjMwNWU3N2I3Zi4uMmUzMTNjY2EwOGYwIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvcmVz ZXJ2YXRpb24uaAo+IEBAIC00MCw3ICs0MCw3IEBACj4gICAjZGVmaW5lIF9MSU5VWF9SRVNFUlZB VElPTl9ICj4gICAKPiAgICNpbmNsdWRlIDxsaW51eC93d19tdXRleC5oPgo+IC0jaW5jbHVkZSA8 bGludXgvZmVuY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgo+ICAgI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+Cj4gICAjaW5j bHVkZSA8bGludXgvcmN1cGRhdGUuaD4KPiBAQCAtNTksNyArNTksNyBAQCBleHRlcm4gY29uc3Qg Y2hhciByZXNlcnZhdGlvbl9zZXFjb3VudF9zdHJpbmdbXTsKPiAgIHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3RfbGlzdCB7Cj4gICAJc3RydWN0IHJjdV9oZWFkIHJjdTsKPiAgIAl1MzIgc2hhcmVk X2NvdW50LCBzaGFyZWRfbWF4Owo+IC0Jc3RydWN0IGZlbmNlIF9fcmN1ICpzaGFyZWRbXTsKPiAr CXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtdOwo+ICAgfTsKPiAgIAo+ICAgLyoqCj4g QEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCB7Cj4gICAJc3RydWN0 IHd3X211dGV4IGxvY2s7Cj4gICAJc2VxY291bnRfdCBzZXE7Cj4gICAKPiAtCXN0cnVjdCBmZW5j ZSBfX3JjdSAqZmVuY2VfZXhjbDsKPiArCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4 Y2w7Cj4gICAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKPiAg IAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKnN0YWdlZDsKPiAgIH07Cj4gQEAgLTEw Nyw3ICsxMDcsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfZmluaShzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0ICpvYmopCj4gICB7Cj4gICAJaW50IGk7Cj4gICAJc3RydWN0IHJlc2VydmF0aW9uX29i amVjdF9saXN0ICpmb2JqOwo+IC0Jc3RydWN0IGZlbmNlICpleGNsOwo+ICsJc3RydWN0IGRtYV9m ZW5jZSAqZXhjbDsKPiAgIAo+ICAgCS8qCj4gICAJICogVGhpcyBvYmplY3Qgc2hvdWxkIGJlIGRl YWQgYW5kIGFsbCByZWZlcmVuY2VzIG11c3QgaGF2ZQo+IEBAIC0xMTUsMTIgKzExNSwxMiBAQCBy ZXNlcnZhdGlvbl9vYmplY3RfZmluaShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCj4g ICAJICovCj4gICAJZXhjbCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2JqLT5mZW5jZV9l eGNsLCAxKTsKPiAgIAlpZiAoZXhjbCkKPiAtCQlmZW5jZV9wdXQoZXhjbCk7Cj4gKwkJZG1hX2Zl bmNlX3B1dChleGNsKTsKPiAgIAo+ICAgCWZvYmogPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KG9iai0+ZmVuY2UsIDEpOwo+ICAgCWlmIChmb2JqKSB7Cj4gICAJCWZvciAoaSA9IDA7IGkgPCBm b2JqLT5zaGFyZWRfY291bnQ7ICsraSkKPiAtCQkJZmVuY2VfcHV0KHJjdV9kZXJlZmVyZW5jZV9w cm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLCAxKSk7Cj4gKwkJCWRtYV9mZW5jZV9wdXQocmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sIDEpKTsKPiAgIAo+ICAgCQlrZnJl ZShmb2JqKTsKPiAgIAl9Cj4gQEAgLTE1NSw3ICsxNTUsNyBAQCByZXNlcnZhdGlvbl9vYmplY3Rf Z2V0X2xpc3Qoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQo+ICAgICogUkVUVVJOUwo+ ICAgICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMCj4gICAgKi8KPiAtc3RhdGljIGlubGlu ZSBzdHJ1Y3QgZmVuY2UgKgo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKgo+ICAg cmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9i aikKPiAgIHsKPiAgIAlyZXR1cm4gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmotPmZlbmNl X2V4Y2wsCj4gQEAgLTE3MywxMCArMTczLDEwIEBAIHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhj bChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCj4gICAgKiBSRVRVUk5TCj4gICAgKiBU aGUgZXhjbHVzaXZlIGZlbmNlIG9yIE5VTEwgaWYgbm9uZQo+ICAgICovCj4gLXN0YXRpYyBpbmxp bmUgc3RydWN0IGZlbmNlICoKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKPiAg IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0IGZlbmNlICpmZW5jZTsKPiArCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwo+ICAgCXVuc2lnbmVkIHNlcTsKPiAgIHJldHJ5Ogo+ICAgCXNlcSA9IHJlYWRf c2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKPiBAQCAtMTg2LDIyICsxODYsMjIgQEAgcmV0cnk6 Cj4gICAJCXJjdV9yZWFkX3VubG9jaygpOwo+ICAgCQlnb3RvIHJldHJ5Owo+ICAgCX0KPiAtCWZl bmNlID0gZmVuY2VfZ2V0KGZlbmNlKTsKPiArCWZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7 Cj4gICAJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gICAJcmV0dXJuIGZlbmNlOwo+ICAgfQo+ICAgCj4g ICBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaik7Cj4gICB2b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2Zl bmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKPiAtCQkJCQkgc3RydWN0IGZlbmNl ICpmZW5jZSk7Cj4gKwkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPiAgIAo+ICAgdm9p ZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29i amVjdCAqb2JqLAo+IC0JCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpOwo+ICsJCQkJICAg ICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPiAgIAo+ICAgaW50IHJlc2VydmF0aW9uX29i amVjdF9nZXRfZmVuY2VzX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4gLQkJ CQkgICAgICBzdHJ1Y3QgZmVuY2UgKipwZmVuY2VfZXhjbCwKPiArCQkJCSAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKipwZmVuY2VfZXhjbCwKPiAgIAkJCQkgICAgICB1bnNpZ25lZCAqcHNoYXJlZF9j b3VudCwKPiAtCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKipwc2hhcmVkKTsKPiArCQkJCSAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCk7Cj4gICAKPiAgIGxvbmcgcmVzZXJ2YXRpb25f b2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAo+ ICAgCQkJCQkgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3NlcW5vLWZlbmNlLmggYi9pbmNsdWRlL2xpbnV4L3NlcW5vLWZlbmNlLmgKPiBpbmRl eCBhMWJhNmE1Y2NkZDYuLmExZjJkYmViMWJhNiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4 L3NlcW5vLWZlbmNlLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3NlcW5vLWZlbmNlLmgKPiBAQCAt MjAsNyArMjAsNyBAQAo+ICAgI2lmbmRlZiBfX0xJTlVYX1NFUU5PX0ZFTkNFX0gKPiAgICNkZWZp bmUgX19MSU5VWF9TRVFOT19GRU5DRV9ICj4gICAKPiAtI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+ Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9kbWEt YnVmLmg+Cj4gICAKPiAgIGVudW0gc2Vxbm9fZmVuY2VfY29uZGl0aW9uIHsKPiBAQCAtMjksMTUg KzI5LDE1IEBAIGVudW0gc2Vxbm9fZmVuY2VfY29uZGl0aW9uIHsKPiAgIH07Cj4gICAKPiAgIHN0 cnVjdCBzZXFub19mZW5jZSB7Cj4gLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKPiArCXN0cnVjdCBkbWFf ZmVuY2UgYmFzZTsKPiAgIAo+IC0JY29uc3Qgc3RydWN0IGZlbmNlX29wcyAqb3BzOwo+ICsJY29u c3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKPiAgIAlzdHJ1Y3QgZG1hX2J1ZiAqc3luY19i dWY7Cj4gICAJdWludDMyX3Qgc2Vxbm9fb2ZzOwo+ICAgCWVudW0gc2Vxbm9fZmVuY2VfY29uZGl0 aW9uIGNvbmRpdGlvbjsKPiAgIH07Cj4gICAKPiAtZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9v cHMgc2Vxbm9fZmVuY2Vfb3BzOwo+ICtleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMg c2Vxbm9fZmVuY2Vfb3BzOwo+ICAgCj4gICAvKioKPiAgICAqIHRvX3NlcW5vX2ZlbmNlIC0gY2Fz dCBhIGZlbmNlIHRvIGEgc2Vxbm9fZmVuY2UKPiBAQCAtNDcsNyArNDcsNyBAQCBleHRlcm4gY29u c3Qgc3RydWN0IGZlbmNlX29wcyBzZXFub19mZW5jZV9vcHM7Cj4gICAgKiBvciB0aGUgc2Vxbm9f ZmVuY2Ugb3RoZXJ3aXNlLgo+ICAgICovCj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBzZXFub19m ZW5jZSAqCj4gLXRvX3NlcW5vX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3RvX3NlcW5v X2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ICAgewo+ICAgCWlmIChmZW5jZS0+b3Bz ICE9ICZzZXFub19mZW5jZV9vcHMpCj4gICAJCXJldHVybiBOVUxMOwo+IEBAIC05NiwxOCArOTYs MTggQEAgc2Vxbm9fZmVuY2VfaW5pdChzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKmZlbmNlLCBzcGlubG9j a190ICpsb2NrLAo+ICAgCQkgc3RydWN0IGRtYV9idWYgKnN5bmNfYnVmLCAgdWludDMyX3QgY29u dGV4dCwKPiAgIAkJIHVpbnQzMl90IHNlcW5vX29mcywgdWludDMyX3Qgc2Vxbm8sCj4gICAJCSBl bnVtIHNlcW5vX2ZlbmNlX2NvbmRpdGlvbiBjb25kLAo+IC0JCSBjb25zdCBzdHJ1Y3QgZmVuY2Vf b3BzICpvcHMpCj4gKwkJIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpvcHMpCj4gICB7Cj4g ICAJQlVHX09OKCFmZW5jZSB8fCAhc3luY19idWYgfHwgIW9wcyk7Cj4gICAJQlVHX09OKCFvcHMt PndhaXQgfHwgIW9wcy0+ZW5hYmxlX3NpZ25hbGluZyB8fAo+ICAgCSAgICAgICAhb3BzLT5nZXRf ZHJpdmVyX25hbWUgfHwgIW9wcy0+Z2V0X3RpbWVsaW5lX25hbWUpOwo+ICAgCj4gICAJLyoKPiAt CSAqIG9wcyBpcyB1c2VkIGluIGZlbmNlX2luaXQgZm9yIGdldF9kcml2ZXJfbmFtZSwgc28gbmVl ZHMgdG8gYmUKPiArCSAqIG9wcyBpcyB1c2VkIGluIGRtYV9mZW5jZV9pbml0IGZvciBnZXRfZHJp dmVyX25hbWUsIHNvIG5lZWRzIHRvIGJlCj4gICAJICogaW5pdGlhbGl6ZWQgZmlyc3QKPiAgIAkg Ki8KPiAgIAlmZW5jZS0+b3BzID0gb3BzOwo+IC0JZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZz ZXFub19mZW5jZV9vcHMsIGxvY2ssIGNvbnRleHQsIHNlcW5vKTsKPiArCWRtYV9mZW5jZV9pbml0 KCZmZW5jZS0+YmFzZSwgJnNlcW5vX2ZlbmNlX29wcywgbG9jaywgY29udGV4dCwgc2Vxbm8pOwo+ ICAgCWdldF9kbWFfYnVmKHN5bmNfYnVmKTsKPiAgIAlmZW5jZS0+c3luY19idWYgPSBzeW5jX2J1 ZjsKPiAgIAlmZW5jZS0+c2Vxbm9fb2ZzID0gc2Vxbm9fb2ZzOwo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3N5bmNfZmlsZS5oIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaAo+IGluZGV4 IGM2ZmZlOGIwNzI1Yy4uNmFhZTI0MmIyNmRlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgv c3luY19maWxlLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oCj4gQEAgLTE4LDEx ICsxOCwxMSBAQAo+ICAgI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+Cj4gICAjaW5jbHVkZSA8bGlu dXgvbGlzdC5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Cj4gLSNpbmNsdWRlIDxs aW51eC9mZW5jZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+Cj4gICAKPiAgIHN0 cnVjdCBzeW5jX2ZpbGVfY2Igewo+IC0Jc3RydWN0IGZlbmNlX2NiIGNiOwo+IC0Jc3RydWN0IGZl bmNlICpmZW5jZTsKPiArCXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7Cj4gKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKPiAgIAlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7Cj4gICB9Owo+ICAg Cj4gQEAgLTUyLDYgKzUyLDYgQEAgc3RydWN0IHN5bmNfZmlsZSB7Cj4gICAJc3RydWN0IHN5bmNf ZmlsZV9jYgljYnNbXTsKPiAgIH07Cj4gICAKPiAtc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxl X2NyZWF0ZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKPiArc3RydWN0IHN5bmNfZmlsZSAqc3luY19m aWxlX2NyZWF0ZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4gICAKPiAgICNlbmRpZiAvKiBf TElOVVhfU1lOQ19IICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYS1m ZW5jZS5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hLWZlbmNlLmgKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uOWQ2ZTk0MzRlNTNjCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYS1mZW5jZS5oCj4gQEAgLTAsMCArMSwx MjggQEAKPiArI3VuZGVmIFRSQUNFX1NZU1RFTQo+ICsjZGVmaW5lIFRSQUNFX1NZU1RFTSBkbWEt ZmVuY2UKPiArCj4gKyNpZiAhZGVmaW5lZChfVFJBQ0VfRkVOQ0VfSCkgfHwgZGVmaW5lZChUUkFD RV9IRUFERVJfTVVMVElfUkVBRCkKPiArI2RlZmluZSBfVFJBQ0VfRE1BX0ZFTkNFX0gKPiArCj4g KyNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50Lmg+Cj4gKwo+ICtzdHJ1Y3QgZG1hX2ZlbmNlOwo+ ICsKPiArVFJBQ0VfRVZFTlQoZG1hX2ZlbmNlX2Fubm90YXRlX3dhaXRfb24sCj4gKwo+ICsJLyog ZmVuY2U6IHRoZSBmZW5jZSB3YWl0aW5nIG9uIGYxLCBmMTogdGhlIGZlbmNlIHRvIGJlIHdhaXRl ZCBvbi4gKi8KPiArCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1h X2ZlbmNlICpmMSksCj4gKwo+ICsJVFBfQVJHUyhmZW5jZSwgZjEpLAo+ICsKPiArCVRQX1NUUlVD VF9fZW50cnkoCj4gKwkJX19zdHJpbmcoZHJpdmVyLCBmZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25h bWUoZmVuY2UpKQo+ICsJCV9fc3RyaW5nKHRpbWVsaW5lLCBmZW5jZS0+b3BzLT5nZXRfdGltZWxp bmVfbmFtZShmZW5jZSkpCj4gKwkJX19maWVsZCh1bnNpZ25lZCBpbnQsIGNvbnRleHQpCj4gKwkJ X19maWVsZCh1bnNpZ25lZCBpbnQsIHNlcW5vKQo+ICsKPiArCQlfX3N0cmluZyh3YWl0aW5nX2Ry aXZlciwgZjEtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGYxKSkKPiArCQlfX3N0cmluZyh3YWl0aW5n X3RpbWVsaW5lLCBmMS0+b3BzLT5nZXRfdGltZWxpbmVfbmFtZShmMSkpCj4gKwkJX19maWVsZCh1 bnNpZ25lZCBpbnQsIHdhaXRpbmdfY29udGV4dCkKPiArCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwg d2FpdGluZ19zZXFubykKPiArCSksCj4gKwo+ICsJVFBfZmFzdF9hc3NpZ24oCj4gKwkJX19hc3Np Z25fc3RyKGRyaXZlciwgZmVuY2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKSkKPiArCQlf X2Fzc2lnbl9zdHIodGltZWxpbmUsIGZlbmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGZlbmNl KSkKPiArCQlfX2VudHJ5LT5jb250ZXh0ID0gZmVuY2UtPmNvbnRleHQ7Cj4gKwkJX19lbnRyeS0+ c2Vxbm8gPSBmZW5jZS0+c2Vxbm87Cj4gKwo+ICsJCV9fYXNzaWduX3N0cih3YWl0aW5nX2RyaXZl ciwgZjEtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGYxKSkKPiArCQlfX2Fzc2lnbl9zdHIod2FpdGlu Z190aW1lbGluZSwgZjEtPm9wcy0+Z2V0X3RpbWVsaW5lX25hbWUoZjEpKQo+ICsJCV9fZW50cnkt PndhaXRpbmdfY29udGV4dCA9IGYxLT5jb250ZXh0Owo+ICsJCV9fZW50cnktPndhaXRpbmdfc2Vx bm8gPSBmMS0+c2Vxbm87Cj4gKwo+ICsJKSwKPiArCj4gKwlUUF9wcmludGsoImRyaXZlcj0lcyB0 aW1lbGluZT0lcyBjb250ZXh0PSV1IHNlcW5vPSV1ICIJXAo+ICsJCSAgIndhaXRzIG9uIGRyaXZl cj0lcyB0aW1lbGluZT0lcyBjb250ZXh0PSV1IHNlcW5vPSV1IiwKPiArCQkgIF9fZ2V0X3N0cihk cml2ZXIpLCBfX2dldF9zdHIodGltZWxpbmUpLCBfX2VudHJ5LT5jb250ZXh0LAo+ICsJCSAgX19l bnRyeS0+c2Vxbm8sCj4gKwkJICBfX2dldF9zdHIod2FpdGluZ19kcml2ZXIpLCBfX2dldF9zdHIo d2FpdGluZ190aW1lbGluZSksCj4gKwkJICBfX2VudHJ5LT53YWl0aW5nX2NvbnRleHQsIF9fZW50 cnktPndhaXRpbmdfc2Vxbm8pCj4gKyk7Cj4gKwo+ICtERUNMQVJFX0VWRU5UX0NMQVNTKGRtYV9m ZW5jZSwKPiArCj4gKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCj4gKwo+ICsJ VFBfQVJHUyhmZW5jZSksCj4gKwo+ICsJVFBfU1RSVUNUX19lbnRyeSgKPiArCQlfX3N0cmluZyhk cml2ZXIsIGZlbmNlLT5vcHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSkpCj4gKwkJX19zdHJpbmco dGltZWxpbmUsIGZlbmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGZlbmNlKSkKPiArCQlfX2Zp ZWxkKHVuc2lnbmVkIGludCwgY29udGV4dCkKPiArCQlfX2ZpZWxkKHVuc2lnbmVkIGludCwgc2Vx bm8pCj4gKwkpLAo+ICsKPiArCVRQX2Zhc3RfYXNzaWduKAo+ICsJCV9fYXNzaWduX3N0cihkcml2 ZXIsIGZlbmNlLT5vcHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSkpCj4gKwkJX19hc3NpZ25fc3Ry KHRpbWVsaW5lLCBmZW5jZS0+b3BzLT5nZXRfdGltZWxpbmVfbmFtZShmZW5jZSkpCj4gKwkJX19l bnRyeS0+Y29udGV4dCA9IGZlbmNlLT5jb250ZXh0Owo+ICsJCV9fZW50cnktPnNlcW5vID0gZmVu Y2UtPnNlcW5vOwo+ICsJKSwKPiArCj4gKwlUUF9wcmludGsoImRyaXZlcj0lcyB0aW1lbGluZT0l cyBjb250ZXh0PSV1IHNlcW5vPSV1IiwKPiArCQkgIF9fZ2V0X3N0cihkcml2ZXIpLCBfX2dldF9z dHIodGltZWxpbmUpLCBfX2VudHJ5LT5jb250ZXh0LAo+ICsJCSAgX19lbnRyeS0+c2Vxbm8pCj4g Kyk7Cj4gKwo+ICtERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2VfZW1pdCwKPiArCj4g KwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCj4gKwo+ICsJVFBfQVJHUyhmZW5j ZSkKPiArKTsKPiArCj4gK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV9pbml0LAo+ ICsKPiArCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKPiArCj4gKwlUUF9BUkdT KGZlbmNlKQo+ICspOwo+ICsKPiArREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNlX2Rl c3Ryb3ksCj4gKwo+ICsJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAo+ICsKPiAr CVRQX0FSR1MoZmVuY2UpCj4gKyk7Cj4gKwo+ICtERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFf ZmVuY2VfZW5hYmxlX3NpZ25hbCwKPiArCj4gKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSksCj4gKwo+ICsJVFBfQVJHUyhmZW5jZSkKPiArKTsKPiArCj4gK0RFRklORV9FVkVOVChk bWFfZmVuY2UsIGRtYV9mZW5jZV9zaWduYWxlZCwKPiArCj4gKwlUUF9QUk9UTyhzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSksCj4gKwo+ICsJVFBfQVJHUyhmZW5jZSkKPiArKTsKPiArCj4gK0RFRklO RV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV93YWl0X3N0YXJ0LAo+ICsKPiArCVRQX1BST1RP KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKPiArCj4gKwlUUF9BUkdTKGZlbmNlKQo+ICspOwo+ ICsKPiArREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNlX3dhaXRfZW5kLAo+ICsKPiAr CVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKPiArCj4gKwlUUF9BUkdTKGZlbmNl KQo+ICspOwo+ICsKPiArI2VuZGlmIC8qICBfVFJBQ0VfRE1BX0ZFTkNFX0ggKi8KPiArCj4gKy8q IFRoaXMgcGFydCBtdXN0IGJlIG91dHNpZGUgcHJvdGVjdGlvbiAqLwo+ICsjaW5jbHVkZSA8dHJh Y2UvZGVmaW5lX3RyYWNlLmg+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK