From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 1/2] drm/amd/powerplay: mark symbols static where possible Date: Fri, 30 Sep 2016 13:31:31 -0400 Message-ID: References: <1475229522-21804-1-git-send-email-baoyou.xie@linaro.org> <1475229522-21804-2-git-send-email-baoyou.xie@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x242.google.com (mail-yw0-x242.google.com [IPv6:2607:f8b0:4002:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67E256EAAC for ; Fri, 30 Sep 2016 17:31:33 +0000 (UTC) Received: by mail-yw0-x242.google.com with SMTP id r132so679720ywg.3 for ; Fri, 30 Sep 2016 10:31:33 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: "Zhou, Jammy" , Maling list - DRI developers , Arindam Nath , Huang Rui , Eric Huang , Flora Cui , Tom St Denis , Baoyou Xie , tang.qiang007@zte.com.cn, "Min, Frank" , Dan Carpenter , Arnd Bergmann , xie.baoyou@zte.com.cn, han.fei@zte.com.cn, "monk.liu" , Eric Yang , =?UTF-8?Q?Nils_Wallm=C3=A9nius?= , Rex Zhu , LKML , yanyang1 , "Deucher, Alexander" , Ken Wang , funfunctor@folklore1984.net List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMzAsIDIwMTYgYXQgODoxNiBBTSwgQ2hyaXN0aWFuIEvDtm5pZwo8ZGVhdGhz aW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+IEJvdGggcGF0Y2hlcyBhcmUgQWNrZWQtYnk6IENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4uCgpBcHBsaWVkIHBhdGNo IDEuICBJJ2QgbGlrZSB0byBnZXQgUmV4J3MgYWNrIG9uIHBhdGNoIDIgYmVmb3JlIGFwcGx5aW5n IGl0LgoKQWxleAoKPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+Cj4KPiBBbSAzMC4wOS4yMDE2 IHVtIDExOjU4IHNjaHJpZWIgQmFveW91IFhpZToKPj4KPj4gV2UgZ2V0IGEgZmV3IHdhcm5pbmdz IHdoZW4gYnVpbGRpbmcga2VybmVsIHdpdGggVz0xOgo+PiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS8uLi9wb3dlcnBsYXkvc211bWdyL2Zpamlfc211bWdyLmM6MTYyOjU6Cj4+IHdhcm5pbmc6 IG5vIHByZXZpb3VzIHByb3RvdHlwZSBmb3IgJ2Zpamlfc2V0dXBfcHdyX3ZpcnVzJwo+PiBbLVdt aXNzaW5nLXByb3RvdHlwZXNdCj4+IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2Vy cGxheS9zbXVtZ3IvZmlqaV9zbWMuYzoyMDUyOjU6IHdhcm5pbmc6Cj4+IG5vIHByZXZpb3VzIHBy b3RvdHlwZSBmb3IgJ2ZpamlfcHJvZ3JhbV9tZW1fdGltaW5nX3BhcmFtZXRlcnMnCj4+IFstV21p c3NpbmctcHJvdG90eXBlc10KPj4gZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJw bGF5L3NtdW1nci9wb2xhcmlzMTBfc211bWdyLmM6MTc1OjU6Cj4+IHdhcm5pbmc6IG5vIHByZXZp b3VzIHByb3RvdHlwZSBmb3IgJ3BvbGFyaXMxMF9hdmZzX2V2ZW50X21ncicKPj4gWy1XbWlzc2lu Zy1wcm90b3R5cGVzXQo+PiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9wb3dlcnBsYXkv aHdtZ3IvY3pfaHdtZ3IuYzo2OToxMDogd2FybmluZzoKPj4gbm8gcHJldmlvdXMgcHJvdG90eXBl IGZvciAnY3pfZ2V0X2VjbGtfbGV2ZWwnIFstV21pc3NpbmctcHJvdG90eXBlc10KPj4gZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYzo5Mjoy Njogd2FybmluZzoKPj4gbm8gcHJldmlvdXMgcHJvdG90eXBlIGZvciAnY2FzdF9waHdfc211N19w b3dlcl9zdGF0ZScgWy1XbWlzc2luZy1wcm90b3R5cGVzXQo+PiAuLi4uCj4+Cj4+IEluIGZhY3Qs IHRoZXNlIGZ1bmN0aW9ucyBhcmUgb25seSB1c2VkIGluIHRoZSBmaWxlIGluIHdoaWNoIHRoZXkg YXJlCj4+IGRlY2xhcmVkIGFuZCBkb24ndCBuZWVkIGEgZGVjbGFyYXRpb24sIGJ1dCBjYW4gYmUg bWFkZSBzdGF0aWMuCj4+IFNvIHRoaXMgcGF0Y2ggbWFya3MgdGhlc2UgZnVuY3Rpb25zIHdpdGgg J3N0YXRpYycuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJhb3lvdSBYaWUgPGJhb3lvdS54aWVAbGlu YXJvLm9yZz4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bv d2VycGxheS5jICAgICAgfCAgNSArKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9od21nci9jel9od21nci5jICAgICB8IDEyICsrKy0tLQo+PiAgIC4uLi9hbWQvcG93ZXJwbGF5 L2h3bWdyL3Byb2Nlc3NfcHB0YWJsZXNfdjFfMC5jICAgIHwgIDYgKy0tCj4+ICAgLi4uL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci9wcm9jZXNzcHB0YWJsZXMuYyAgfCAgNCArLQo+PiAgIC4u Li9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfY2xvY2twb3dlcmdhdGluZy5jICAgIHwgMTAgKyst LS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMg ICB8IDQ1Cj4+ICsrKysrKysrKysrKy0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbWMuYyAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc211bWdyLmMgfCAxMiArKystLS0KPj4gICAu Li4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVtZ3IuYyAgICB8ICA1ICsr LQo+PiAgIDkgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93 ZXJwbGF5LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5 LmMKPj4gaW5kZXggNzE3NGY3YS4uYmI4YTM0NSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYwo+PiBAQCAtNDM2LDcgKzQzNiw4IEBAIHN0 YXRpYyBlbnVtIFBQX1N0YXRlVUlMYWJlbCBwb3dlcl9zdGF0ZV9jb252ZXJ0KGVudW0KPj4gYW1k X3BtX3N0YXRlX3R5cGUgIHN0YXRlKQo+PiAgICAgICAgIH0KPj4gICB9Cj4+ICAgLWludCBwcF9k cG1fZGlzcGF0Y2hfdGFza3Modm9pZCAqaGFuZGxlLCBlbnVtIGFtZF9wcF9ldmVudCBldmVudF9p ZCwKPj4gdm9pZCAqaW5wdXQsIHZvaWQgKm91dHB1dCkKPj4gK3N0YXRpYyBpbnQgcHBfZHBtX2Rp c3BhdGNoX3Rhc2tzKHZvaWQgKmhhbmRsZSwgZW51bSBhbWRfcHBfZXZlbnQKPj4gZXZlbnRfaWQs Cj4+ICsgICAgICAgICAgICAgICB2b2lkICppbnB1dCwgdm9pZCAqb3V0cHV0KQo+PiAgIHsKPj4g ICAgICAgICBpbnQgcmV0ID0gMDsKPj4gICAgICAgICBzdHJ1Y3QgcHBfaW5zdGFuY2UgKnBwX2hh bmRsZTsKPj4gQEAgLTQ3NSw3ICs0NzYsNyBAQCBpbnQgcHBfZHBtX2Rpc3BhdGNoX3Rhc2tzKHZv aWQgKmhhbmRsZSwgZW51bQo+PiBhbWRfcHBfZXZlbnQgZXZlbnRfaWQsIHZvaWQgKmlucHV0LAo+ PiAgICAgICAgIHJldHVybiByZXQ7Cj4+ICAgfQo+PiAgIC1lbnVtIGFtZF9wbV9zdGF0ZV90eXBl IHBwX2RwbV9nZXRfY3VycmVudF9wb3dlcl9zdGF0ZSh2b2lkICpoYW5kbGUpCj4+ICtzdGF0aWMg ZW51bSBhbWRfcG1fc3RhdGVfdHlwZSBwcF9kcG1fZ2V0X2N1cnJlbnRfcG93ZXJfc3RhdGUodm9p ZAo+PiAqaGFuZGxlKQo+PiAgIHsKPj4gICAgICAgICBzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyOwo+ PiAgICAgICAgIHN0cnVjdCBwcF9wb3dlcl9zdGF0ZSAqc3RhdGU7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9jel9od21nci5jCj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3IuYwo+PiBpbmRleCA3ZTRmY2Ji Li5iNDhkMDBmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci9jel9od21nci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3 bWdyL2N6X2h3bWdyLmMKPj4gQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBj el9wb3dlcl9zdGF0ZQo+PiAqY2FzdF9jb25zdF9QaHdDelBvd2VyU3RhdGUoCj4+ICAgICAgICAg cmV0dXJuIChzdHJ1Y3QgY3pfcG93ZXJfc3RhdGUgKilod19wczsKPj4gICB9Cj4+ICAgLXVpbnQz Ml90IGN6X2dldF9lY2xrX2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCj4+ICtzdGF0aWMg dWludDMyX3QgY3pfZ2V0X2VjbGtfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNsb2NrLCB1aW50 MzJfdCBtc2cpCj4+ICAgewo+PiAgICAgICAgIGludCBpID0gMDsKPj4gQEAgLTEwMTcsNyArMTAx Nyw3IEBAIHN0YXRpYyBpbnQgY3pfdGZfcHJvZ3JhbV9ib290dXBfc3RhdGUoc3RydWN0Cj4+IHBw X2h3bWdyICpod21nciwgdm9pZCAqaW5wdXQsCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+ PiAgIC1pbnQgY3pfdGZfcmVzZXRfYWNwX2Jvb3RfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21n ciwgdm9pZCAqaW5wdXQsCj4+ICtzdGF0aWMgaW50IGN6X3RmX3Jlc2V0X2FjcF9ib290X2xldmVs KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIHZvaWQKPj4gKmlucHV0LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKm91dHB1dCwgdm9pZCAqc3RvcmFnZSwgaW50IHJlc3Vs dCkKPj4gICB7Cj4+ICAgICAgICAgc3RydWN0IGN6X2h3bWdyICpjel9od21nciA9IChzdHJ1Y3Qg Y3pfaHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOwo+PiBAQCAtMTIyNSw3ICsxMjI1LDcgQEAgc3Rh dGljIGludCBjel9od21ncl9iYWNrZW5kX2Zpbmkoc3RydWN0IHBwX2h3bWdyCj4+ICpod21ncikK Pj4gICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgLWludCBjel9waG1fZm9yY2VfZHBtX2hp Z2hlc3Qoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQgY3pfcGhtX2ZvcmNl X2RwbV9oaWdoZXN0KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIHN0 cnVjdCBjel9od21nciAqY3pfaHdtZ3IgPSAoc3RydWN0IGN6X2h3bWdyICopKGh3bWdyLT5iYWNr ZW5kKTsKPj4gICBAQCAtMTIzOSw3ICsxMjM5LDcgQEAgaW50IGN6X3BobV9mb3JjZV9kcG1faGln aGVzdChzdHJ1Y3QgcHBfaHdtZ3IKPj4gKmh3bWdyKQo+PiAgICAgICAgIHJldHVybiAwOwo+PiAg IH0KPj4gICAtaW50IGN6X3BobV91bmZvcmNlX2RwbV9sZXZlbHMoc3RydWN0IHBwX2h3bWdyICpo d21ncikKPj4gK3N0YXRpYyBpbnQgY3pfcGhtX3VuZm9yY2VfZHBtX2xldmVscyhzdHJ1Y3QgcHBf aHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAgICBzdHJ1Y3QgY3pfaHdtZ3IgKmN6X2h3bWdy ID0gKHN0cnVjdCBjel9od21nciAqKShod21nci0+YmFja2VuZCk7Cj4+ICAgICAgICAgc3RydWN0 IHBobV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfdGFibGUgKnRhYmxlID0KPj4gQEAgLTEyNzcs NyArMTI3Nyw3IEBAIGludCBjel9waG1fdW5mb3JjZV9kcG1fbGV2ZWxzKHN0cnVjdCBwcF9od21n cgo+PiAqaHdtZ3IpCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIC1pbnQgY3pfcGht X2ZvcmNlX2RwbV9sb3dlc3Qoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQg Y3pfcGhtX2ZvcmNlX2RwbV9sb3dlc3Qoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ ICAgICAgICAgc3RydWN0IGN6X2h3bWdyICpjel9od21nciA9IChzdHJ1Y3QgY3pfaHdtZ3IgKiko aHdtZ3ItPmJhY2tlbmQpOwo+PiAgIEBAIC0xNTMzLDcgKzE1MzMsNyBAQCBzdGF0aWMgaW50IGN6 X2RwbV9nZXRfcHBfdGFibGVfZW50cnkoc3RydWN0Cj4+IHBwX2h3bWdyICpod21nciwKPj4gICAg ICAgICByZXR1cm4gcmVzdWx0Owo+PiAgIH0KPj4gICAtaW50IGN6X2dldF9wb3dlcl9zdGF0ZV9z aXplKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IGN6X2dldF9wb3dlcl9z dGF0ZV9zaXplKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIHJldHVy biBzaXplb2Yoc3RydWN0IGN6X3Bvd2VyX3N0YXRlKTsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9wcm9jZXNzX3BwdGFibGVzX3YxXzAu Ywo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Byb2Nlc3NfcHB0YWJs ZXNfdjFfMC5jCj4+IGluZGV4IDdkZTcwMWQuLjE1NWNkMGQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Byb2Nlc3NfcHB0YWJsZXNfdjFfMC5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Byb2Nlc3NfcHB0YWJs ZXNfdjFfMC5jCj4+IEBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIGludCBzZXRfcGxhdGZvcm1f Y2FwcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAo+PiB1aW50MzJfdCBwb3dlcnBsYXlfY2FwcykK Pj4gICAvKioKPj4gICAgKiBQcml2YXRlIEZ1bmN0aW9uIHRvIGdldCB0aGUgUG93ZXJQbGF5IFRh YmxlIEFkZHJlc3MuCj4+ICAgICovCj4+IC1jb25zdCB2b2lkICpnZXRfcG93ZXJwbGF5X3RhYmxl KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgY29uc3Qgdm9pZCAqZ2V0X3Bvd2Vy cGxheV90YWJsZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAgICBpbnQg aW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJUYWJsZShEQVRBLCBQb3dlclBsYXlJbmZvKTsKPj4g ICBAQCAtMTA0OSw3ICsxMDQ5LDcgQEAgc3RhdGljIGludCBjaGVja19wb3dlcnBsYXlfdGFibGVz KAo+PiAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4gICAtaW50IHBwX3RhYmxlc192MV8wX2lu aXRpYWxpemUoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQgcHBfdGFibGVz X3YxXzBfaW5pdGlhbGl6ZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAg ICBpbnQgcmVzdWx0ID0gMDsKPj4gICAgICAgICBjb25zdCBBVE9NX1RvbmdhX1BPV0VSUExBWVRB QkxFICpwb3dlcnBsYXlfdGFibGU7Cj4+IEBAIC0xMTAwLDcgKzExMDAsNyBAQCBpbnQgcHBfdGFi bGVzX3YxXzBfaW5pdGlhbGl6ZShzdHJ1Y3QgcHBfaHdtZ3IKPj4gKmh3bWdyKQo+PiAgICAgICAg IHJldHVybiByZXN1bHQ7Cj4+ICAgfQo+PiAgIC1pbnQgcHBfdGFibGVzX3YxXzBfdW5pbml0aWFs aXplKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHBwX3RhYmxlc192MV8w X3VuaW5pdGlhbGl6ZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAgICBz dHJ1Y3QgcGhtX3BwdF92MV9pbmZvcm1hdGlvbiAqcHBfdGFibGVfaW5mb3JtYXRpb24gPQo+PiAg ICAgICAgICAgICAgICAgKHN0cnVjdCBwaG1fcHB0X3YxX2luZm9ybWF0aW9uICopKGh3bWdyLT5w cHRhYmxlKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3 bWdyL3Byb2Nlc3NwcHRhYmxlcy5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv aHdtZ3IvcHJvY2Vzc3BwdGFibGVzLmMKPj4gaW5kZXggY2NmN2ViZS4uYmQxZjE5MCAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHJvY2Vzc3BwdGFi bGVzLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHJvY2Vz c3BwdGFibGVzLmMKPj4gQEAgLTE1MDcsNyArMTUwNyw3IEBAIHN0YXRpYyBpbnQgaW5pdF9waGFz ZV9zaGVkZGluZ190YWJsZShzdHJ1Y3QgcHBfaHdtZ3IKPj4gKmh3bWdyLAo+PiAgICAgICAgIHJl dHVybiAwOwo+PiAgIH0KPj4gICAtaW50IGdldF9udW1iZXJfb2ZfdmNlX3N0YXRlX3RhYmxlX2Vu dHJpZXMoCj4+ICtzdGF0aWMgaW50IGdldF9udW1iZXJfb2ZfdmNlX3N0YXRlX3RhYmxlX2VudHJp ZXMoCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAgY29uc3QgQVRPTV9QUExJ Ql9QT1dFUlBMQVlUQUJMRSAqdGFibGUgPQo+PiBAQCAtMTUyMSw3ICsxNTIxLDcgQEAgaW50IGdl dF9udW1iZXJfb2ZfdmNlX3N0YXRlX3RhYmxlX2VudHJpZXMoCj4+ICAgICAgICAgcmV0dXJuIDA7 Cj4+ICAgfQo+PiAgIC1pbnQgZ2V0X3ZjZV9zdGF0ZV90YWJsZV9lbnRyeShzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyLAo+PiArc3RhdGljIGludCBnZXRfdmNlX3N0YXRlX3RhYmxlX2VudHJ5KHN0cnVj dCBwcF9od21nciAqaHdtZ3IsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpLAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdAo+PiBwcF92Y2Vf c3RhdGUgKnZjZV9zdGF0ZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2b2lkICoqY2xvY2tfaW5mbywKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfY2xvY2twb3dlcmdhdGluZy5j Cj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19jbG9ja3Bvd2Vy Z2F0aW5nLmMKPj4gaW5kZXggNmViNmRiMS4uZjVhNThkNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19jbG9ja3Bvd2VyZ2F0aW5nLmMKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19jbG9ja3Bvd2Vy Z2F0aW5nLmMKPj4gQEAgLTc1LDcgKzc1LDcgQEAgaW50IHNtdTdfcG93ZXJkb3duX3V2ZChzdHJ1 Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4gICAtaW50 IHNtdTdfcG93ZXJ1cF91dmQoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQg c211N19wb3dlcnVwX3V2ZChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAg ICBpZiAocGhtX2NmX3dhbnRfdXZkX3Bvd2VyX2dhdGluZyhod21ncikpIHsKPj4gICAgICAgICAg ICAgICAgIGlmCj4+IChwaG1fY2FwX2VuYWJsZWQoaHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3Iu cGxhdGZvcm1DYXBzLAo+PiBAQCAtOTEsNyArOTEsNyBAQCBpbnQgc211N19wb3dlcnVwX3V2ZChz dHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4gICAt aW50IHNtdTdfcG93ZXJkb3duX3ZjZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiArc3RhdGlj IGludCBzbXU3X3Bvd2VyZG93bl92Y2Uoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ ICAgICAgICAgaWYgKHBobV9jZl93YW50X3ZjZV9wb3dlcl9nYXRpbmcoaHdtZ3IpKQo+PiAgICAg ICAgICAgICAgICAgcmV0dXJuIHNtdW1fc2VuZF9tc2dfdG9fc21jKGh3bWdyLT5zbXVtZ3IsCj4+ IEBAIC05OSw3ICs5OSw3IEBAIGludCBzbXU3X3Bvd2VyZG93bl92Y2Uoc3RydWN0IHBwX2h3bWdy ICpod21ncikKPj4gICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgLWludCBzbXU3X3Bvd2Vy dXBfdmNlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfcG93ZXJ1 cF92Y2Uoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAgaWYgKHBobV9j Zl93YW50X3ZjZV9wb3dlcl9nYXRpbmcoaHdtZ3IpKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJu IHNtdW1fc2VuZF9tc2dfdG9fc21jKGh3bWdyLT5zbXVtZ3IsCj4+IEBAIC0xMDcsNyArMTA3LDcg QEAgaW50IHNtdTdfcG93ZXJ1cF92Y2Uoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICAgICAg ICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgLWludCBzbXU3X3Bvd2VyZG93bl9zYW11KHN0cnVjdCBw cF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfcG93ZXJkb3duX3NhbXUoc3RydWN0 IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAgaWYgKHBobV9jYXBfZW5hYmxlZCho d21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNhcHMsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgIFBITV9QbGF0Zm9ybUNhcHNfU2FtdVBvd2VyR2F0aW5nKSkKPj4gQEAgLTExNiw3 ICsxMTYsNyBAQCBpbnQgc211N19wb3dlcmRvd25fc2FtdShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdy KQo+PiAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4gICAtaW50IHNtdTdfcG93ZXJ1cF9zYW11 KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfcG93ZXJ1cF9zYW11 KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIGlmIChwaG1fY2FwX2Vu YWJsZWQoaHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3IucGxhdGZvcm1DYXBzLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICBQSE1fUGxhdGZvcm1DYXBzX1NhbXVQb3dlckdhdGluZykpCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdy LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMK Pj4gaW5kZXggYTM4MzJmMi4uNjQ5ZmRkMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYwo+PiBAQCAtODksNyArODksNyBAQCBl bnVtIERQTV9FVkVOVF9TUkMgewo+PiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgUGh3 VklzbGFuZHNfTWFnaWMgPSAodW5zaWduZWQKPj4gbG9uZykoUEhNX1ZJc2xhbmRzX01hZ2ljKTsK Pj4gICAtc3RydWN0IHNtdTdfcG93ZXJfc3RhdGUgKmNhc3RfcGh3X3NtdTdfcG93ZXJfc3RhdGUo Cj4+ICtzdGF0aWMgc3RydWN0IHNtdTdfcG93ZXJfc3RhdGUgKmNhc3RfcGh3X3NtdTdfcG93ZXJf c3RhdGUoCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHBfaHdf cG93ZXJfc3RhdGUgKmh3X3BzKQo+PiAgIHsKPj4gICAgICAgICBQUF9BU1NFUlRfV0lUSF9DT0RF KChQaHdWSXNsYW5kc19NYWdpYyA9PSBod19wcy0+bWFnaWMpLAo+PiBAQCAtOTksNyArOTksNyBA QCBzdHJ1Y3Qgc211N19wb3dlcl9zdGF0ZSAqY2FzdF9waHdfc211N19wb3dlcl9zdGF0ZSgKPj4g ICAgICAgICByZXR1cm4gKHN0cnVjdCBzbXU3X3Bvd2VyX3N0YXRlICopaHdfcHM7Cj4+ICAgfQo+ PiAgIC1jb25zdCBzdHJ1Y3Qgc211N19wb3dlcl9zdGF0ZSAqY2FzdF9jb25zdF9waHdfc211N19w b3dlcl9zdGF0ZSgKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc211N19wb3dlcl9zdGF0ZSAqY2Fz dF9jb25zdF9waHdfc211N19wb3dlcl9zdGF0ZSgKPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHBwX2h3X3Bvd2VyX3N0YXRlICpod19wcykKPj4gICB7Cj4+ ICAgICAgICAgUFBfQVNTRVJUX1dJVEhfQ09ERSgoUGh3VklzbGFuZHNfTWFnaWMgPT0gaHdfcHMt Pm1hZ2ljKSwKPj4gQEAgLTExNSw3ICsxMTUsNyBAQCBjb25zdCBzdHJ1Y3Qgc211N19wb3dlcl9z dGF0ZQo+PiAqY2FzdF9jb25zdF9waHdfc211N19wb3dlcl9zdGF0ZSgKPj4gICAgKiBAcGFyYW0g ICAgaHdtZ3IgIHRoZSBhZGRyZXNzIG9mIHRoZSBwb3dlcnBsYXkgaGFyZHdhcmUgbWFuYWdlci4K Pj4gICAgKiBAcmV0dXJuICAgYWx3YXlzIDAKPj4gICAgKi8KPj4gLWludCBzbXU3X2dldF9tY19t aWNyb2NvZGVfdmVyc2lvbiAoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQg c211N19nZXRfbWNfbWljcm9jb2RlX3ZlcnNpb24oc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4g ICB7Cj4+ICAgICAgICAgY2dzX3dyaXRlX3JlZ2lzdGVyKGh3bWdyLT5kZXZpY2UsIG1tTUNfU0VR X0lPX0RFQlVHX0lOREVYLCAweDlGKTsKPj4gICBAQCAtMTI0LDcgKzEyNCw3IEBAIGludCBzbXU3 X2dldF9tY19taWNyb2NvZGVfdmVyc2lvbiAoc3RydWN0IHBwX2h3bWdyCj4+ICpod21ncikKPj4g ICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgLXVpbnQxNl90IHNtdTdfZ2V0X2N1cnJlbnRf cGNpZV9zcGVlZChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiArc3RhdGljIHVpbnQxNl90IHNt dTdfZ2V0X2N1cnJlbnRfcGNpZV9zcGVlZChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsK Pj4gICAgICAgICB1aW50MzJfdCBzcGVlZENudGwgPSAwOwo+PiAgIEBAIC0xMzUsNyArMTM1LDcg QEAgdWludDE2X3Qgc211N19nZXRfY3VycmVudF9wY2llX3NwZWVkKHN0cnVjdCBwcF9od21ncgo+ PiAqaHdtZ3IpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSUVfTENfU1BFRURfQ05UTCwg TENfQ1VSUkVOVF9EQVRBX1JBVEUpKTsKPj4gICB9Cj4+ICAgLWludCBzbXU3X2dldF9jdXJyZW50 X3BjaWVfbGFuZV9udW1iZXIoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQg c211N19nZXRfY3VycmVudF9wY2llX2xhbmVfbnVtYmVyKHN0cnVjdCBwcF9od21nciAqaHdtZ3Ip Cj4+ICAgewo+PiAgICAgICAgIHVpbnQzMl90IGxpbmtfd2lkdGg7Cj4+ICAgQEAgLTE1NSw3ICsx NTUsNyBAQCBpbnQgc211N19nZXRfY3VycmVudF9wY2llX2xhbmVfbnVtYmVyKHN0cnVjdAo+PiBw cF9od21nciAqaHdtZ3IpCj4+ICAgKiBAcGFyYW0gICAgcEh3TWdyICB0aGUgYWRkcmVzcyBvZiB0 aGUgcG93ZXJwbGF5IGhhcmR3YXJlIG1hbmFnZXIuCj4+ICAgKiBAcmV0dXJuICAgYWx3YXlzIFBQ X1Jlc3VsdF9PSwo+PiAgICovCj4+IC1pbnQgc211N19lbmFibGVfc21jX3ZvbHRhZ2VfY29udHJv bGxlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiArc3RhdGljIGludCBzbXU3X2VuYWJsZV9z bWNfdm9sdGFnZV9jb250cm9sbGVyKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgewo+PiAg ICAgICAgIGlmIChod21nci0+ZmVhdHVyZV9tYXNrICYgUFBfU01DX1ZPTFRBR0VfQ09OVFJPTF9N QVNLKQo+PiAgICAgICAgICAgICAgICAgc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3ItPnNtdW1n ciwKPj4gUFBTTUNfTVNHX1ZvbHRhZ2VfQ250bF9FbmFibGUpOwo+PiBAQCAtODAyLDcgKzgwMiw3 IEBAIHN0YXRpYyBpbnQgc211N19zZXR1cF9kcG1fdGFibGVzX3YxKHN0cnVjdCBwcF9od21ncgo+ PiAqaHdtZ3IpCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19zZXR1 cF9kZWZhdWx0X2RwbV90YWJsZXMoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBp bnQgc211N19zZXR1cF9kZWZhdWx0X2RwbV90YWJsZXMoc3RydWN0IHBwX2h3bWdyICpod21ncikK Pj4gICB7Cj4+ICAgICAgICAgc3RydWN0IHNtdTdfaHdtZ3IgKmRhdGEgPSAoc3RydWN0IHNtdTdf aHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOwo+PiAgIEBAIC0xMTUxLDcgKzExNTEsNyBAQCBzdGF0 aWMgaW50Cj4+IHNtdTdfZGlzYWJsZV90aGVybWFsX2F1dG9fdGhyb3R0bGUoc3RydWN0IHBwX2h3 bWdyICpod21ncikKPj4gICAgICAgICByZXR1cm4gc211N19kaXNhYmxlX2F1dG9fdGhyb3R0bGVf c291cmNlKGh3bWdyLAo+PiBQSE1fQXV0b1Rocm90dGxlU291cmNlX1RoZXJtYWwpOwo+PiAgIH0K Pj4gICAtaW50IHNtdTdfcGNpZV9wZXJmb3JtYW5jZV9yZXF1ZXN0KHN0cnVjdCBwcF9od21nciAq aHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfcGNpZV9wZXJmb3JtYW5jZV9yZXF1ZXN0KHN0cnVj dCBwcF9od21nciAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIHN0cnVjdCBzbXU3X2h3bWdyICpk YXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyICopKGh3bWdyLT5iYWNrZW5kKTsKPj4gICAgICAgICBk YXRhLT5wY2llX3BlcmZvcm1hbmNlX3JlcXVlc3QgPSB0cnVlOwo+PiBAQCAtMTE1OSw3ICsxMTU5 LDcgQEAgaW50IHNtdTdfcGNpZV9wZXJmb3JtYW5jZV9yZXF1ZXN0KHN0cnVjdCBwcF9od21ncgo+ PiAqaHdtZ3IpCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19lbmFi bGVfZHBtX3Rhc2tzKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdf ZW5hYmxlX2RwbV90YXNrcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAg ICBpbnQgdG1wX3Jlc3VsdCA9IDA7Cj4+ICAgICAgICAgaW50IHJlc3VsdCA9IDA7Cj4+IEBAIC0x ODU0LDcgKzE4NTQsNyBAQCBzdGF0aWMgaW50Cj4+IHNtdTdfc2V0X3ByaXZhdGVfZGF0YV9iYXNl ZF9vbl9wcHRhYmxlX3YxKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgICAgICAgcmV0dXJu IDA7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19wYXRjaF92b2x0YWdlX3dvcmthcm91bmQoc3RydWN0 IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQgc211N19wYXRjaF92b2x0YWdlX3dvcmth cm91bmQoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAgc3RydWN0IHBo bV9wcHRfdjFfaW5mb3JtYXRpb24gKnRhYmxlX2luZm8gPQo+PiAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJ1Y3QgcGhtX3BwdF92MV9pbmZvcm1hdGlvbiAqKShod21nci0+cHB0YWJsZSk7Cj4+ IEBAIC0yMjQzLDcgKzIyNDMsNyBAQCBzdGF0aWMgaW50Cj4+IHNtdTdfc2V0X3ByaXZhdGVfZGF0 YV9iYXNlZF9vbl9wcHRhYmxlX3YwKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgICAgICAg cmV0dXJuIDA7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19od21ncl9iYWNrZW5kX2luaXQoc3RydWN0 IHBwX2h3bWdyICpod21ncikKPj4gK3N0YXRpYyBpbnQgc211N19od21ncl9iYWNrZW5kX2luaXQo c3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAgc3RydWN0IHNtdTdfaHdt Z3IgKmRhdGE7Cj4+ICAgICAgICAgaW50IHJlc3VsdDsKPj4gQEAgLTM2NjIsMTQgKzM2NjIsMTYg QEAgc3RhdGljIGludCBzbXU3X3NldF9tYXhfZmFuX3B3bV9vdXRwdXQoc3RydWN0Cj4+IHBwX2h3 bWdyICpod21nciwgdWludDE2X3QgdXNfbWF4X2YKPj4gICAgICAgICAgICAgICAgICAgICAgICAg UFBTTUNfTVNHX1NldEZhblB3bU1heCwgdXNfbWF4X2Zhbl9wd20pOwo+PiAgIH0KPj4gICAtaW50 IHNtdTdfbm90aWZ5X3NtY19kaXNwbGF5X2NoYW5nZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBi b29sCj4+IGhhc19kaXNwbGF5KQo+PiArc3RhdGljIGludAo+PiArc211N19ub3RpZnlfc21jX2Rp c3BsYXlfY2hhbmdlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGJvb2wgaGFzX2Rpc3BsYXkpCj4+ ICAgewo+PiAgICAgICAgIFBQU01DX01zZyBtc2cgPSBoYXNfZGlzcGxheSA/IChQUFNNQ19Nc2cp UFBTTUNfSGFzRGlzcGxheSA6Cj4+IChQUFNNQ19Nc2cpUFBTTUNfTm9EaXNwbGF5Owo+PiAgICAg ICAgIHJldHVybiAoc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3ItPnNtdW1nciwgbXNnKSA9PSAw KSA/ICAwIDogLTE7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19ub3RpZnlfc21jX2Rpc3BsYXlfY29u ZmlnX2FmdGVyX3BzX2FkanVzdG1lbnQoc3RydWN0IHBwX2h3bWdyCj4+ICpod21ncikKPj4gK3N0 YXRpYyBpbnQKPj4gK3NtdTdfbm90aWZ5X3NtY19kaXNwbGF5X2NvbmZpZ19hZnRlcl9wc19hZGp1 c3RtZW50KHN0cnVjdCBwcF9od21ncgo+PiAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIHVpbnQz Ml90IG51bV9hY3RpdmVfZGlzcGxheXMgPSAwOwo+PiAgICAgICAgIHN0cnVjdCBjZ3NfZGlzcGxh eV9pbmZvIGluZm8gPSB7MH07Cj4+IEBAIC0zNjkxLDcgKzM2OTMsNyBAQCBpbnQKPj4gc211N19u b3RpZnlfc21jX2Rpc3BsYXlfY29uZmlnX2FmdGVyX3BzX2FkanVzdG1lbnQoc3RydWN0IHBwX2h3 bWdyICpod21ncikKPj4gICAqIEBwYXJhbSAgICBod21nciAgdGhlIGFkZHJlc3Mgb2YgdGhlIHBv d2VycGxheSBoYXJkd2FyZSBtYW5hZ2VyLgo+PiAgICogQHJldHVybiAgIGFsd2F5cyBPSwo+PiAg ICovCj4+IC1pbnQgc211N19wcm9ncmFtX2Rpc3BsYXlfZ2FwKHN0cnVjdCBwcF9od21nciAqaHdt Z3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfcHJvZ3JhbV9kaXNwbGF5X2dhcChzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAgICBzdHJ1Y3Qgc211N19od21nciAqZGF0YSA9IChz dHJ1Y3Qgc211N19od21nciAqKShod21nci0+YmFja2VuZCk7Cj4+ICAgICAgICAgdWludDMyX3Qg bnVtX2FjdGl2ZV9kaXNwbGF5cyA9IDA7Cj4+IEBAIC0zNzQxLDcgKzM3NDMsNyBAQCBpbnQgc211 N19wcm9ncmFtX2Rpc3BsYXlfZ2FwKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICAgICAgICAg cmV0dXJuIDA7Cj4+ICAgfQo+PiAgIC1pbnQgc211N19kaXNwbGF5X2NvbmZpZ3VyYXRpb25fY2hh bmdlZF90YXNrKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfZGlz cGxheV9jb25maWd1cmF0aW9uX2NoYW5nZWRfdGFzayhzdHJ1Y3QgcHBfaHdtZ3IKPj4gKmh3bWdy KQo+PiAgIHsKPj4gICAgICAgICByZXR1cm4gc211N19wcm9ncmFtX2Rpc3BsYXlfZ2FwKGh3bWdy KTsKPj4gICB9Cj4+IEBAIC0zNzY1LDEzICszNzY3LDE0IEBAIHN0YXRpYyBpbnQgc211N19zZXRf bWF4X2Zhbl9ycG1fb3V0cHV0KHN0cnVjdAo+PiBwcF9od21nciAqaHdtZ3IsIHVpbnQxNl90IHVz X21heF9mCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIFBQU01DX01TR19TZXRGYW5ScG1NYXgs IHVzX21heF9mYW5fcnBtKTsKPj4gICB9Cj4+ICAgLWludCBzbXU3X3JlZ2lzdGVyX2ludGVybmFs X3RoZXJtYWxfaW50ZXJydXB0KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCj4+ICtzdGF0aWMgaW50 IHNtdTdfcmVnaXN0ZXJfaW50ZXJuYWxfdGhlcm1hbF9pbnRlcnJ1cHQoc3RydWN0IHBwX2h3bWdy Cj4+ICpod21nciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHZvaWQKPj4gKnRoZXJtYWxfaW50ZXJydXB0X2luZm8pCj4+ICAgewo+PiAgICAgICAgIHJl dHVybiAwOwo+PiAgIH0KPj4gICAtYm9vbCBzbXU3X2NoZWNrX3NtY191cGRhdGVfcmVxdWlyZWRf Zm9yX2Rpc3BsYXlfY29uZmlndXJhdGlvbihzdHJ1Y3QKPj4gcHBfaHdtZ3IgKmh3bWdyKQo+PiAr c3RhdGljIGJvb2wKPj4gK3NtdTdfY2hlY2tfc21jX3VwZGF0ZV9yZXF1aXJlZF9mb3JfZGlzcGxh eV9jb25maWd1cmF0aW9uKHN0cnVjdCBwcF9od21ncgo+PiAqaHdtZ3IpCj4+ICAgewo+PiAgICAg ICAgIHN0cnVjdCBzbXU3X2h3bWdyICpkYXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyICopKGh3bWdy LT5iYWNrZW5kKTsKPj4gICAgICAgICBib29sIGlzX3VwZGF0ZV9yZXF1aXJlZCA9IGZhbHNlOwo+ PiBAQCAtMzgwMCw3ICszODAzLDkgQEAgc3RhdGljIGlubGluZSBib29sIHNtdTdfYXJlX3Bvd2Vy X2xldmVsc19lcXVhbChjb25zdAo+PiBzdHJ1Y3Qgc211N19wZXJmb3JtYW5jZV9sZXYKPj4gICAg ICAgICAgICAgICAgICAgKHBsMS0+cGNpZV9sYW5lID09IHBsMi0+cGNpZV9sYW5lKSk7Cj4+ICAg fQo+PiAgIC1pbnQgc211N19jaGVja19zdGF0ZXNfZXF1YWwoc3RydWN0IHBwX2h3bWdyICpod21n ciwgY29uc3Qgc3RydWN0Cj4+IHBwX2h3X3Bvd2VyX3N0YXRlICpwc3RhdGUxLCBjb25zdCBzdHJ1 Y3QgcHBfaHdfcG93ZXJfc3RhdGUgKnBzdGF0ZTIsIGJvb2wKPj4gKmVxdWFsKQo+PiArc3RhdGlj IGludCBzbXU3X2NoZWNrX3N0YXRlc19lcXVhbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAo+PiAr ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBwX2h3X3Bvd2VyX3N0YXRlICpwc3RhdGUxLAo+ PiArICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBwX2h3X3Bvd2VyX3N0YXRlICpwc3RhdGUy LCBib29sICplcXVhbCkKPj4gICB7Cj4+ICAgICAgICAgY29uc3Qgc3RydWN0IHNtdTdfcG93ZXJf c3RhdGUgKnBzYSA9Cj4+IGNhc3RfY29uc3RfcGh3X3NtdTdfcG93ZXJfc3RhdGUocHN0YXRlMSk7 Cj4+ICAgICAgICAgY29uc3Qgc3RydWN0IHNtdTdfcG93ZXJfc3RhdGUgKnBzYiA9Cj4+IGNhc3Rf Y29uc3RfcGh3X3NtdTdfcG93ZXJfc3RhdGUocHN0YXRlMik7Cj4+IEBAIC0zODMxLDcgKzM4MzYs NyBAQCBpbnQgc211N19jaGVja19zdGF0ZXNfZXF1YWwoc3RydWN0IHBwX2h3bWdyICpod21nciwK Pj4gY29uc3Qgc3RydWN0IHBwX2h3X3Bvd2VyX3N0YQo+PiAgICAgICAgIHJldHVybiAwOwo+PiAg IH0KPj4gICAtaW50IHNtdTdfdXBsb2FkX21jX2Zpcm13YXJlKHN0cnVjdCBwcF9od21nciAqaHdt Z3IpCj4+ICtzdGF0aWMgaW50IHNtdTdfdXBsb2FkX21jX2Zpcm13YXJlKHN0cnVjdCBwcF9od21n ciAqaHdtZ3IpCj4+ICAgewo+PiAgICAgICAgIHN0cnVjdCBzbXU3X2h3bWdyICpkYXRhID0gKHN0 cnVjdCBzbXU3X2h3bWdyICopKGh3bWdyLT5iYWNrZW5kKTsKPj4gICBAQCAtMzk2MCw3ICszOTY1 LDcgQEAgc3RhdGljIGludCBzbXU3X2luaXRfc2Nsa190aHJlc2hvbGQoc3RydWN0Cj4+IHBwX2h3 bWdyICpod21ncikKPj4gICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgLWludCBzbXU3X3Nl dHVwX2FzaWNfdGFzayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiArc3RhdGljIGludCBzbXU3 X3NldHVwX2FzaWNfdGFzayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+PiAgIHsKPj4gICAgICAg ICBpbnQgdG1wX3Jlc3VsdCwgcmVzdWx0ID0gMDsKPj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc21jLmMKPj4gYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbWMuYwo+PiBpbmRleCA3NjMxMGFjLi5lN2U4 OTQ0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Iv ZmlqaV9zbWMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Iv ZmlqaV9zbWMuYwo+PiBAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgaW50IGZpamlfdGhlcm1hbF9zZXR1 cF9mYW5fdGFibGUoc3RydWN0IHBwX2h3bWdyCj4+ICpod21ncikKPj4gICAgICAgICByZXR1cm4g MDsKPj4gICB9Cj4+ICAgLWludCBmaWppX3Byb2dyYW1fbWVtX3RpbWluZ19wYXJhbWV0ZXJzKHN0 cnVjdCBwcF9od21nciAqaHdtZ3IpCj4+ICtzdGF0aWMgaW50IGZpamlfcHJvZ3JhbV9tZW1fdGlt aW5nX3BhcmFtZXRlcnMoc3RydWN0IHBwX2h3bWdyICpod21ncikKPj4gICB7Cj4+ICAgICAgICAg c3RydWN0IHNtdTdfaHdtZ3IgKmRhdGEgPSAoc3RydWN0IHNtdTdfaHdtZ3IgKikoaHdtZ3ItPmJh Y2tlbmQpOwo+PiAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9z bXVtZ3IvZmlqaV9zbXVtZ3IuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3Nt dW1nci9maWppX3NtdW1nci5jCj4+IGluZGV4IDAyZmUxZGYuLmI4NmU0OGYgMTAwNzU1Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9maWppX3NtdW1nci5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9maWppX3NtdW1nci5j Cj4+IEBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIGludAo+PiBmaWppX3N0YXJ0X3NtdV9pbl9u b25fcHJvdGVjdGlvbl9tb2RlKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gICAgICAgICBy ZXR1cm4gcmVzdWx0Owo+PiAgIH0KPj4gICAtaW50IGZpamlfc2V0dXBfcHdyX3ZpcnVzKHN0cnVj dCBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gK3N0YXRpYyBpbnQgZmlqaV9zZXR1cF9wd3JfdmlydXMo c3RydWN0IHBwX3NtdW1nciAqc211bWdyKQo+PiAgIHsKPj4gICAgICAgICBpbnQgaSwgcmVzdWx0 ID0gLTE7Cj4+ICAgICAgICAgdWludDMyX3QgcmVnLCBkYXRhOwo+PiBAQCAtMjI0LDcgKzIyNCw3 IEBAIHN0YXRpYyBpbnQgZmlqaV9zdGFydF9hdmZzX2J0YyhzdHJ1Y3QgcHBfc211bWdyCj4+ICpz bXVtZ3IpCj4+ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKPj4gICB9Cj4+ICAgLWludCBmaWppX3Nl dHVwX3BtX2Z1c2VfZm9yX2F2ZnMoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQo+PiArc3RhdGlj IGludCBmaWppX3NldHVwX3BtX2Z1c2VfZm9yX2F2ZnMoc3RydWN0IHBwX3NtdW1nciAqc211bWdy KQo+PiAgIHsKPj4gICAgICAgICBpbnQgcmVzdWx0ID0gMDsKPj4gICAgICAgICB1aW50MzJfdCB0 YWJsZV9zdGFydDsKPj4gQEAgLTI2MCw3ICsyNjAsNyBAQCBpbnQgZmlqaV9zZXR1cF9wbV9mdXNl X2Zvcl9hdmZzKHN0cnVjdCBwcF9zbXVtZ3IKPj4gKnNtdW1ncikKPj4gICAgICAgICByZXR1cm4g cmVzdWx0Owo+PiAgIH0KPj4gICAtaW50IGZpamlfc2V0dXBfZ3JhcGhpY3NfbGV2ZWxfc3RydWN0 dXJlKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gK3N0YXRpYyBpbnQgZmlqaV9zZXR1cF9n cmFwaGljc19sZXZlbF9zdHJ1Y3R1cmUoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQo+PiAgIHsK Pj4gICAgICAgICBpbnQzMl90IHZyX2NvbmZpZzsKPj4gICAgICAgICB1aW50MzJfdCB0YWJsZV9z dGFydDsKPj4gQEAgLTI5OSw3ICsyOTksNyBAQCBpbnQgZmlqaV9zZXR1cF9ncmFwaGljc19sZXZl bF9zdHJ1Y3R1cmUoc3RydWN0Cj4+IHBwX3NtdW1nciAqc211bWdyKQo+PiAgIH0KPj4gICAgIC8q IFdvcmsgaW4gUHJvZ3Jlc3MgKi8KPj4gLWludCBmaWppX3Jlc3RvcmVfdmZ0X3RhYmxlKHN0cnVj dCBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gK3N0YXRpYyBpbnQgZmlqaV9yZXN0b3JlX3ZmdF90YWJs ZShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCj4+ICAgewo+PiAgICAgICAgIHN0cnVjdCBmaWpp X3NtdW1nciAqcHJpdiA9IChzdHJ1Y3QgZmlqaV9zbXVtZ3IKPj4gKikoc211bWdyLT5iYWNrZW5k KTsKPj4gICBAQCAtMzExLDcgKzMxMSw3IEBAIGludCBmaWppX3Jlc3RvcmVfdmZ0X3RhYmxlKHN0 cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gICB9Cj4+ICAgICAvKiBXb3JrIGluIFByb2dyZXNz ICovCj4+IC1pbnQgZmlqaV9zYXZlX3ZmdF90YWJsZShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3Ip Cj4+ICtzdGF0aWMgaW50IGZpamlfc2F2ZV92ZnRfdGFibGUoc3RydWN0IHBwX3NtdW1nciAqc211 bWdyKQo+PiAgIHsKPj4gICAgICAgICBzdHJ1Y3QgZmlqaV9zbXVtZ3IgKnByaXYgPSAoc3RydWN0 IGZpamlfc211bWdyCj4+ICopKHNtdW1nci0+YmFja2VuZCk7Cj4+ICAgQEAgLTMyMiw3ICszMjIs NyBAQCBpbnQgZmlqaV9zYXZlX3ZmdF90YWJsZShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCj4+ ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gICB9Cj4+ICAgLWludCBmaWppX2F2 ZnNfZXZlbnRfbWdyKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwgYm9vbCBzbXVfc3RhcnRlZCkK Pj4gK3N0YXRpYyBpbnQgZmlqaV9hdmZzX2V2ZW50X21ncihzdHJ1Y3QgcHBfc211bWdyICpzbXVt Z3IsIGJvb2wKPj4gc211X3N0YXJ0ZWQpCj4+ICAgewo+PiAgICAgICAgIHN0cnVjdCBmaWppX3Nt dW1nciAqcHJpdiA9IChzdHJ1Y3QgZmlqaV9zbXVtZ3IKPj4gKikoc211bWdyLT5iYWNrZW5kKTsK Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3Bv bGFyaXMxMF9zbXVtZ3IuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1n ci9wb2xhcmlzMTBfc211bWdyLmMKPj4gaW5kZXggNWMzNTk4YS4uZjM4YTY4NyAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVt Z3IuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvcG9sYXJp czEwX3NtdW1nci5jCj4+IEBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGludCBwb2xhcmlzMTBf cGVyZm9ybV9idGMoc3RydWN0IHBwX3NtdW1ncgo+PiAqc211bWdyKQo+PiAgIH0KPj4gICAgIC1p bnQgcG9sYXJpczEwX3NldHVwX2dyYXBoaWNzX2xldmVsX3N0cnVjdHVyZShzdHJ1Y3QgcHBfc211 bWdyCj4+ICpzbXVtZ3IpCj4+ICtzdGF0aWMgaW50IHBvbGFyaXMxMF9zZXR1cF9ncmFwaGljc19s ZXZlbF9zdHJ1Y3R1cmUoc3RydWN0IHBwX3NtdW1ncgo+PiAqc211bWdyKQo+PiAgIHsKPj4gICAg ICAgICB1aW50MzJfdCB2cl9jb25maWc7Cj4+ICAgICAgICAgdWludDMyX3QgZHBtX3RhYmxlX3N0 YXJ0Owo+PiBAQCAtMTcyLDcgKzE3Miw4IEBAIGludCBwb2xhcmlzMTBfc2V0dXBfZ3JhcGhpY3Nf bGV2ZWxfc3RydWN0dXJlKHN0cnVjdAo+PiBwcF9zbXVtZ3IgKnNtdW1ncikKPj4gICAgICAgICBy ZXR1cm4gMDsKPj4gICB9Cj4+ICAgLWludCBwb2xhcmlzMTBfYXZmc19ldmVudF9tZ3Ioc3RydWN0 IHBwX3NtdW1nciAqc211bWdyLCBib29sCj4+IFNNVV9WRlRfSU5UQUNUKQo+PiArc3RhdGljIGlu dAo+PiArcG9sYXJpczEwX2F2ZnNfZXZlbnRfbWdyKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwg Ym9vbCBTTVVfVkZUX0lOVEFDVCkKPj4gICB7Cj4+ICAgICAgICAgc3RydWN0IHBvbGFyaXMxMF9z bXVtZ3IgKnNtdV9kYXRhID0gKHN0cnVjdCBwb2xhcmlzMTBfc211bWdyCj4+ICopKHNtdW1nci0+ YmFja2VuZCk7Cj4+Cj4KPgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=