From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A5229C4332F for ; Thu, 9 Nov 2023 10:10:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=49bvm3occGKB2dfcjoy5eCH5OxHbFH5QcRoZdoGzgNw=; b=nLSMKex4SZwOd2 6SjWf+i30cRYCBq0bNjES/4VjVHZuhgEjuraqpMvTXZs0HvaLSIvMFThCA4AZh5fIJoW7l7zvJk1u V565YESWKkZIDfRb6GfHmPy9zOVx7hR9GDghDt4WIZqe6Xzb15My6rqCAVoILoRw/MGUudJ9AggDw 1kUS4PUW/1OCDcYSp8+60uAG0YlpBG5kJnJcHj0N7VfyPon1PWTYXsfnG/ijTlwOIsY7Y4v/t2qPI 3aeIQ0VBtwxncic5qFvl+qWwaBS+kfXufu2IDhVrXBRg9zbU93RNe7XV4Rqyy4aUKyKne/RpdIrtg KJe1BJIkvwRTykZKx3ow==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r11zs-005t2H-3D; Thu, 09 Nov 2023 10:10:49 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r11zo-005t09-2B; Thu, 09 Nov 2023 10:10:47 +0000 Received: from [100.98.136.55] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id D1F786607435; Thu, 9 Nov 2023 10:10:39 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1699524640; bh=Zu2bl0WWxtNinhS+u0UFdi/xw93970tvIfrWqFgwsOY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=gDUWusStn2D/GdLhGH7t1vKFpynMIC3x0tuQFGaP+pWtV6ADtegXLDcmZwfUbRaiu d6rqniNFpdP6xZOr2KCDRtBRPsMffKi1AflA+do2iKN/f1+2lXY1YQL3mFXCYcH4u1 fpj2JR17T4jyp511r94EKYGz1k1JNqyxhmYfbS36VyUHizwBPxZrdKRay/uU5RrIUo tdDrThhxVTTSlsJhu6SQYd80VYwnQCfygM6MF8RYPdsqOpcXwptYlUW8t2eOK8ONdY WWtRlPST/xFu+zYzvooAkPsgsv4A8UXUUmRS5+JpMQFufKPozEtyTNJxbvmV9bI9xx WoPBcY1QHx9bQ== Message-ID: <18ee19cc-e97b-4a5a-af7d-1e1bf7c91bc0@collabora.com> Date: Thu, 9 Nov 2023 11:10:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v14 54/56] media: v4l2: Add DELETE_BUFS ioctl Content-Language: en-US To: Tomasz Figa Cc: mchehab@kernel.org, m.szyprowski@samsung.com, ming.qian@nxp.com, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, hverkuil-cisco@xs4all.nl, nicolas.dufresne@collabora.com, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, kernel@collabora.com References: <20231031163104.112469-1-benjamin.gaignard@collabora.com> <20231031163104.112469-55-benjamin.gaignard@collabora.com> <20231109093045.ucitckitlgjj3kyw@chromium.org> From: Benjamin Gaignard In-Reply-To: <20231109093045.ucitckitlgjj3kyw@chromium.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231109_021044_977623_E907BFA6 X-CRM114-Status: GOOD ( 34.58 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDA5LzExLzIwMjMgw6AgMTA6MzAsIFRvbWFzeiBGaWdhIGEgw6ljcml0wqA6Cj4gT24gVHVl LCBPY3QgMzEsIDIwMjMgYXQgMDU6MzE6MDJQTSArMDEwMCwgQmVuamFtaW4gR2FpZ25hcmQgd3Jv dGU6Cj4+IFZJRElPQ19ERUxFVEVfQlVGUyBpb2N0bCBhbGxvd3MgdG8gZGVsZXRlIGJ1ZmZlcnMg ZnJvbSBhIHF1ZXVlLgo+PiBUaGUgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gZGVsZXRlIGluIGdpdmVu IGJ5IGNvdW50IGZpZWxkIG9mCj4+IHN0cnVjdCB2NGwyX2RlbGV0ZV9idWZmZXJzIGFuZCB0aGUg cmFuZ2Ugc3RhcnQgYXQgdGhlIGluZGV4Cj4+IHNwZWNpZmllZCBpbiB0aGUgc2FtZSBzdHJ1Y3R1 cmUuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWln bmFyZEBjb2xsYWJvcmEuY29tPgo+PiAtLS0KPj4gICAuLi4vdXNlcnNwYWNlLWFwaS9tZWRpYS92 NGwvdXNlci1mdW5jLnJzdCAgICAgfCAgMSArCj4+ICAgLi4uL21lZGlhL3Y0bC92aWRpb2MtZGVs ZXRlLWJ1ZnMucnN0ICAgICAgICAgIHwgODAgKysrKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9t ZWRpYS92NGwvdmlkaW9jLXJlcWJ1ZnMucnN0ICAgICAgICAgICAgICB8ICAxICsKPj4gICAuLi4v bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jICAgfCAzMCArKysrKysrCj4+ ICAgLi4uL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLXY0bDIuYyAgIHwgMjAgKysr KysKPj4gICBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWRldi5jICAgICAgICAgICAgfCAg MSArCj4+ICAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1pb2N0bC5jICAgICAgICAgIHwg MTcgKysrKwo+PiAgIGluY2x1ZGUvbWVkaWEvdjRsMi1pb2N0bC5oICAgICAgICAgICAgICAgICAg ICB8ICA0ICsKPj4gICBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmggICAgICAgICAgICAg ICAgfCAxMiArKysKPj4gICBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmggICAgICAgICAg ICAgICAgfCAxMyArKysKPj4gICBpbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmggICAgICAg ICAgICAgICAgfCAxNyArKysrCj4+ICAgMTEgZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMo KykKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21l ZGlhL3Y0bC92aWRpb2MtZGVsZXRlLWJ1ZnMucnN0Cj4+Cj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QgYi9Eb2N1bWVudGF0 aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4gaW5kZXggMTVmZjBi ZjdiYmU2Li4zZmQ1Njc2OTU0NzcgMTAwNjQ0Cj4+IC0tLSBhL0RvY3VtZW50YXRpb24vdXNlcnNw YWNlLWFwaS9tZWRpYS92NGwvdXNlci1mdW5jLnJzdAo+PiArKysgYi9Eb2N1bWVudGF0aW9uL3Vz ZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4gQEAgLTE3LDYgKzE3LDcgQEAg RnVuY3Rpb24gUmVmZXJlbmNlCj4+ICAgICAgIHZpZGlvYy1kYmctZy1jaGlwLWluZm8KPj4gICAg ICAgdmlkaW9jLWRiZy1nLXJlZ2lzdGVyCj4+ICAgICAgIHZpZGlvYy1kZWNvZGVyLWNtZAo+PiAr ICAgIHZpZGlvYy1kZWxldGUtYnVmcwo+PiAgICAgICB2aWRpb2MtZHFldmVudAo+PiAgICAgICB2 aWRpb2MtZHYtdGltaW5ncy1jYXAKPj4gICAgICAgdmlkaW9jLWVuY29kZXItY21kCj4+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1kZWxl dGUtYnVmcy5yc3QgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlv Yy1kZWxldGUtYnVmcy5yc3QKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAw MDAwMDAwLi40NzkxZGYxMzk1ZDYKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9Eb2N1bWVudGF0 aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1kZWxldGUtYnVmcy5yc3QKPj4gQEAg LTAsMCArMSw4MCBAQAo+PiArLi4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdGREwtMS4xLW5v LWludmFyaWFudHMtb3ItbGF0ZXIKPj4gKy4uIGM6bmFtZXNwYWNlOjogVjRMCj4+ICsKPj4gKy4u IF9WSURJT0NfREVMRVRFX0JVRlM6Cj4+ICsKPj4gKyoqKioqKioqKioqKioqKioqKioqKioqKgo+ PiAraW9jdGwgVklESU9DX0RFTEVURV9CVUZTCj4+ICsqKioqKioqKioqKioqKioqKioqKioqKioK Pj4gKwo+PiArTmFtZQo+PiArPT09PQo+PiArCj4+ICtWSURJT0NfREVMRVRFX0JVRlMgLSBEZWxl dGVzIGJ1ZmZlcnMgZnJvbSBhIHF1ZXVlCj4+ICtEcml2ZXJzIHVzaW5nIHRoaXMgZmVhdHVyZSBt dXN0IGV4cG9zZSB0aGUgYGBWNEwyX0JVRl9DQVBfU1VQUE9SVFNfREVMRVRFX0JVRlNgYAo+PiAr Y2FwYWJpbGl0eSBvbiB0aGUgcXVldWUgOmM6ZnVuYzpgVklESU9DX1JFUUJVRlNgIG9yIDpjOmZ1 bmM6YFZJRElPQ19DUkVBVEVfQlVGU2AKPj4gK2FyZSBpbnZva2VkLgo+PiArCj4+ICtTeW5vcHNp cwo+PiArPT09PT09PT0KPj4gKwo+PiArLi4gYzptYWNybzo6IFZJRElPQ19ERUxFVEVfQlVGcwo+ PiArCj4+ICtgYGludCBpb2N0bChpbnQgZmQsIFZJRElPQ19ERUxFVEVfQlVGcywgc3RydWN0IHY0 bDJfZGVsZXRlX2J1ZmZlcnMgKmFyZ3ApYGAKPj4gKwo+PiArQXJndW1lbnRzCj4+ICs9PT09PT09 PT0KPj4gKwo+PiArYGBmZGBgCj4+ICsgICAgRmlsZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IDpj OmZ1bmM6YG9wZW4oKWAuCj4+ICsKPj4gK2BgYXJncGBgCj4+ICsgICAgUG9pbnRlciB0byBzdHJ1 Y3QgOmM6dHlwZTpgdjRsMl9kZWxldGVfYnVmZmVyc2AuCj4+ICsKPj4gK0Rlc2NyaXB0aW9uCj4+ ICs9PT09PT09PT09PQo+PiArCj4+ICtBcHBsaWNhdGlvbnMgY2FuIG9wdGlvbmFsbHkgY2FsbCB0 aGUgOnJlZjpgVklESU9DX0RFTEVURV9CVUZTYCBpb2N0bCB0bwo+PiArZGVsZXRlIGJ1ZmZlcnMg ZnJvbSBhIHF1ZXVlLgo+PiArCj4+ICsuLiBjOnR5cGU6OiB2NGwyX2RlbGV0ZV9idWZmZXJzCj4+ ICsKPj4gKy4uIHRhYnVsYXJjb2x1bW5zOjogfHB7NC40Y219fHB7NC40Y219fHB7OC41Y219fAo+ PiArCj4+ICsuLiBmbGF0LXRhYmxlOjogc3RydWN0IHY0bDJfZGVsZXRlX2J1ZmZlcnMKPj4gKyAg ICA6aGVhZGVyLXJvd3M6ICAwCj4+ICsgICAgOnN0dWItY29sdW1uczogMAo+PiArICAgIDp3aWR0 aHM6ICAgICAgIDEgMSAyCj4+ICsKPj4gKyAgICAqIC0gX191MzIKPj4gKyAgICAgIC0gYGBpbmRl eGBgCj4+ICsgICAgICAtIFRoZSBzdGFydGluZyBidWZmZXIgaW5kZXggdG8gZGVsZXRlLgo+PiAr ICAgICogLSBfX3UzMgo+PiArICAgICAgLSBgYGNvdW50YGAKPj4gKyAgICAgIC0gVGhlIG51bWJl ciBvZiBidWZmZXJzIHRvIGJlIGRlbGV0ZWQgd2l0aCBpbmRpY2VzICdpbmRleCcgdW50aWwgJ2lu ZGV4ICsgY291bnQgLSAxJy4KPj4gKyAgICAgICAgQWxsIGJ1ZmZlcnMgaW4gdGhpcyByYW5nZSBt dXN0IGJlIHZhbGlkIGFuZCBpbiBERVFVRVVFRCBzdGF0ZS4KPiBJIHdvbmRlciBpZiB0aGlzIHdv dWxkbid0IGJlIGFuIGluY29udmVuaWVuY2UgZm9yIHRoZSB1c2Vyc3BhY2UuIFdvdWxkCj4gdGhl cmUgYmUgYW55dGhpbmcgd3Jvbmcgd2l0aCBhbGxvd2luZyByYW5nZXMgd2l0aCBob2xlcz8KPiAo QWdyZWVkIGFib3V0IHRoZSBERVFVRVVFRCBwYXJ0IG9mIGNvdXJzZS4pCgpGb3IgbWUgYSByYW5n ZSBhcyB0byBiZSB2YWxpZCBidXQgdGhlIG1hdHRlciBvZiB0YXN0ZS4KCj4KPj4gKyAgICAgICAg SW4gZXJyb3IgY2FzZSBlcnJubyBpcyBzZXQgdG8gYGBFSU5WQUxgYCBlcnJvciBjb2RlIGFuZCBp bmRleCByZXR1cm5zIHRoZSBpbmRleCBvZgo+PiArICAgICAgICB0aGUgaW52YWxpZCBidWZmZXIu Cj4+ICsgICAgICAgIElmIGNvdW50IGFuZCBpbmRleCBhcmUgc2V0IHRvIDAgOnJlZjpgVklESU9D X0RFTEVURV9CVUZTYCB3aWxsIHJldHVybiAwLgo+IEhtbSwgZG8gd2UgY2FyZSBhYm91dCBpbmRl eCBpZiBjb3VudCBpcyB6ZXJvPwoKTm8gd2UgZG9uJ3QgSSB3aWxsIGNoYW5nZSB0aGF0LgoKPgo+ PiArICAgICogLSBfX3UzMgo+PiArICAgICAgLSBgYHR5cGVgYAo+PiArICAgICAgLSBUeXBlIG9m IHRoZSBzdHJlYW0gb3IgYnVmZmVycywgdGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgc3RydWN0Cj4+ ICsJOmM6dHlwZTpgdjRsMl9mb3JtYXRgIGBgdHlwZWBgIGZpZWxkLiBTZWUKPj4gKwk6Yzp0eXBl OmB2NGwyX2J1Zl90eXBlYCBmb3IgdmFsaWQgdmFsdWVzLgo+PiArICAgICogLSBfX3UzMgo+PiAr ICAgICAgLSBgYHJlc2VydmVkYGBcIFsxM10KPj4gKyAgICAgIC0gQSBwbGFjZSBob2xkZXIgZm9y IGZ1dHVyZSBleHRlbnNpb25zLiBEcml2ZXJzIGFuZCBhcHBsaWNhdGlvbnMKPj4gKwltdXN0IHNl dCB0aGUgYXJyYXkgdG8gemVyby4KPj4gKwo+PiArUmV0dXJuIFZhbHVlCj4+ICs9PT09PT09PT09 PT0KPj4gKwo+PiArT24gc3VjY2VzcyAwIGlzIHJldHVybmVkLCBvbiBlcnJvciAtMSBhbmQgdGhl IGBgZXJybm9gYCB2YXJpYWJsZSBpcyBzZXQKPj4gK2FwcHJvcHJpYXRlbHkuIFRoZSBnZW5lcmlj IGVycm9yIGNvZGVzIGFyZSBkZXNjcmliZWQgYXQgdGhlCj4+ICs6cmVmOmBHZW5lcmljIEVycm9y IENvZGVzIDxnZW4tZXJyb3JzPmAgY2hhcHRlci4KPj4gKwo+PiArRUJVU1kKPj4gKyAgICBGaWxl IEkvTyBpcyBpbiBwcm9ncmVzcy4KPj4gKwo+PiArRUlOVkFMCj4+ICsgICAgVGhlIGJ1ZmZlciBg YGluZGV4YGAgZG9lc24ndCBleGlzdCBpbiB0aGUgcXVldWUuCj4+IGRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1yZXFidWZzLnJzdCBiL0Rv Y3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9jLXJlcWJ1ZnMucnN0Cj4+ IGluZGV4IDBiM2E0MWE0NWQwNS4uMTRkNGE0OWMyOTQ1IDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1yZXFidWZzLnJzdAo+PiArKysg Yi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1yZXFidWZzLnJz dAo+PiBAQCAtMTIxLDYgKzEyMSw3IEBAIGFib3J0aW5nIG9yIGZpbmlzaGluZyBhbnkgRE1BIGlu IHByb2dyZXNzLCBhbiBpbXBsaWNpdAo+PiAgIC4uIF9WNEwyLUJVRi1DQVAtU1VQUE9SVFMtTTJN LUhPTEQtQ0FQVFVSRS1CVUY6Cj4+ICAgLi4gX1Y0TDItQlVGLUNBUC1TVVBQT1JUUy1NTUFQLUNB Q0hFLUhJTlRTOgo+PiAgIC4uIF9WNEwyLUJVRi1DQVAtU1VQUE9SVFMtTUFYLU5VTS1CVUZGRVJT Ogo+PiArLi4gX1Y0TDItQlVGLUNBUC1TVVBQT1JUUy1ERUxFVEUtQlVGUzoKPj4gICAKPj4gICAu LiByYXc6OiBsYXRleAo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24v dmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1 ZjIvdmlkZW9idWYyLWNvcmUuYwo+PiBpbmRleCAwMTBhOGJjYTAyNDAuLjcwNjg5MzBhMGJhNiAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1j b3JlLmMKPj4gKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1j b3JlLmMKPj4gQEAgLTE2NjUsNiArMTY2NSwzNiBAQCBpbnQgdmIyX2NvcmVfcHJlcGFyZV9idWYo c3RydWN0IHZiMl9xdWV1ZSAqcSwgc3RydWN0IHZiMl9idWZmZXIgKnZiLCB2b2lkICpwYikKPj4g ICB9Cj4+ICAgRVhQT1JUX1NZTUJPTF9HUEwodmIyX2NvcmVfcHJlcGFyZV9idWYpOwo+PiAgIAo+ PiAraW50IHZiMl9jb3JlX2RlbGV0ZV9idWZzKHN0cnVjdCB2YjJfcXVldWUgKnEsIHVuc2lnbmVk IGludCBzdGFydCwgdW5zaWduZWQgaW50IGNvdW50KQo+PiArewo+PiArCXVuc2lnbmVkIGludCBp LCByZXQgPSAwOwo+PiArCj4+ICsJaWYgKHN0YXJ0ID09IDAgJiYgY291bnQgPT0gMCkKPiBJIGd1 ZXNzIHJlbGF0ZWQgdG8gdGhlIGVhcmxpZXIgY29tbWVudCwgYnV0IHdoeSBkbyB3ZSBjYXJlIGFi b3V0IHN0YXJ0Cj4gYmVpbmcgemVybz8KPgo+PiArCQlyZXR1cm4gMDsKPj4gKwo+PiArCW11dGV4 X2xvY2soJnEtPm1tYXBfbG9jayk7Cj4+ICsKPj4gKwlmb3IgKGkgPSBzdGFydDsgaSA8IHN0YXJ0 ICsgY291bnQgJiYgaSA8IHEtPm1heF9udW1fYnVmZmVyczsgaSsrKSB7Cj4+ICsJCXN0cnVjdCB2 YjJfYnVmZmVyICp2YiA9IHZiMl9nZXRfYnVmZmVyKHEsIGkpOwo+PiArCj4+ICsJCWlmICghdmIp IHsKPj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4+ICsJCQlnb3RvIHVubG9jazsKPj4gKwkJfQo+PiAr CQlpZiAodmItPnN0YXRlICE9IFZCMl9CVUZfU1RBVEVfREVRVUVVRUQpIHsKPj4gKwkJCXJldCA9 IC1FSU5WQUw7Cj4+ICsJCQlnb3RvIHVubG9jazsKPj4gKwkJfQo+PiArCX0KPj4gKwlfX3ZiMl9x dWV1ZV9mcmVlKHEsIHN0YXJ0LCBjb3VudCk7Cj4+ICsJZHByaW50ayhxLCAyLCAiYnVmZmVycyBk ZWxldGVkXG4iKTsKPj4gKwo+PiArdW5sb2NrOgo+PiArCW11dGV4X3VubG9jaygmcS0+bW1hcF9s b2NrKTsKPj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArRVhQT1JUX1NZTUJPTF9HUEwodmIyX2Nv cmVfZGVsZXRlX2J1ZnMpOwo+PiArCj4+ICAgLyoKPj4gICAgKiB2YjJfc3RhcnRfc3RyZWFtaW5n KCkgLSBBdHRlbXB0IHRvIHN0YXJ0IHN0cmVhbWluZy4KPj4gICAgKiBAcToJCXZpZGVvYnVmMiBx dWV1ZQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVv YnVmMi12NGwyLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLXY0 bDIuYwo+PiBpbmRleCA1NmRhZjNiNWIyYmEuLmYwMDM2MThlZmJjMSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMKPj4gKysrIGIv ZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMKPj4gQEAgLTY5 NCw2ICs2OTQsOCBAQCBzdGF0aWMgdm9pZCBmaWxsX2J1Zl9jYXBzKHN0cnVjdCB2YjJfcXVldWUg KnEsIHUzMiAqY2FwcykKPj4gICAJaWYgKHEtPnN1cHBvcnRzX3JlcXVlc3RzKQo+PiAgIAkJKmNh cHMgfD0gVjRMMl9CVUZfQ0FQX1NVUFBPUlRTX1JFUVVFU1RTOwo+PiAgICNlbmRpZgo+PiArCWlm IChxLT5zdXBwb3J0c19kZWxldGVfYnVmcykKPj4gKwkJKmNhcHMgfD0gVjRMMl9CVUZfQ0FQX1NV UFBPUlRTX0RFTEVURV9CVUZTOwo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgdm9pZCB2YWxpZGF0 ZV9tZW1vcnlfZmxhZ3Moc3RydWN0IHZiMl9xdWV1ZSAqcSwKPj4gQEAgLTc1MSw2ICs3NTMsMTIg QEAgaW50IHZiMl9wcmVwYXJlX2J1ZihzdHJ1Y3QgdmIyX3F1ZXVlICpxLCBzdHJ1Y3QgbWVkaWFf ZGV2aWNlICptZGV2LAo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTCh2YjJfcHJlcGFyZV9i dWYpOwo+PiAgIAo+PiAraW50IHZiMl9kZWxldGVfYnVmcyhzdHJ1Y3QgdmIyX3F1ZXVlICpxLCBz dHJ1Y3QgdjRsMl9kZWxldGVfYnVmZmVycyAqZCkKPj4gK3sKPj4gKwlyZXR1cm4gdmIyX2NvcmVf ZGVsZXRlX2J1ZnMocSwgZC0+aW5kZXgsIGQtPmNvdW50KTsKPj4gK30KPj4gK0VYUE9SVF9TWU1C T0xfR1BMKHZiMl9kZWxldGVfYnVmcyk7Cj4+ICsKPj4gICBpbnQgdmIyX2NyZWF0ZV9idWZzKHN0 cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzICpjcmVhdGUpCj4+ ICAgewo+PiAgIAl1bnNpZ25lZCByZXF1ZXN0ZWRfcGxhbmVzID0gMTsKPj4gQEAgLTEwMTIsNiAr MTAyMCwxOCBAQCBFWFBPUlRfU1lNQk9MX0dQTCh2YjJfcG9sbCk7Cj4+ICAgCj4+ICAgLyogdmIy IGlvY3RsIGhlbHBlcnMgKi8KPj4gICAKPj4gK2ludCB2YjJfaW9jdGxfZGVsZXRlX2J1ZnMoc3Ry dWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCj4+ICsJCQkgIHN0cnVjdCB2NGwyX2RlbGV0ZV9i dWZmZXJzICpwKQo+PiArewo+PiArCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPSB2aWRlb19k ZXZkYXRhKGZpbGUpOwo+PiArCj4+ICsJaWYgKHZiMl9xdWV1ZV9pc19idXN5KHZkZXYtPnF1ZXVl LCBmaWxlKSkKPj4gKwkJcmV0dXJuIC1FQlVTWTsKPj4gKwo+PiArCXJldHVybiB2YjJfZGVsZXRl X2J1ZnModmRldi0+cXVldWUsIHApOwo+PiArfQo+PiArRVhQT1JUX1NZTUJPTF9HUEwodmIyX2lv Y3RsX2RlbGV0ZV9idWZzKTsKPj4gKwo+PiAgIGludCB2YjJfaW9jdGxfcmVxYnVmcyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKPj4gICAJCQkgIHN0cnVjdCB2NGwyX3JlcXVlc3RidWZm ZXJzICpwKQo+PiAgIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItZGV2LmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWRldi5jCj4+IGluZGV4IGY4 MTI3OTQ5MjY4Mi4uMjE1NjU0ZmQ2NTgxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0 bDItY29yZS92NGwyLWRldi5jCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDIt ZGV2LmMKPj4gQEAgLTcyMCw2ICs3MjAsNyBAQCBzdGF0aWMgdm9pZCBkZXRlcm1pbmVfdmFsaWRf aW9jdGxzKHN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYpCj4+ICAgCQlTRVRfVkFMSURfSU9DVEwo b3BzLCBWSURJT0NfUFJFUEFSRV9CVUYsIHZpZGlvY19wcmVwYXJlX2J1Zik7Cj4+ICAgCQlTRVRf VkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT04sIHZpZGlvY19zdHJlYW1vbik7Cj4+ICAg CQlTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT0ZGLCB2aWRpb2Nfc3RyZWFtb2Zm KTsKPj4gKwkJU0VUX1ZBTElEX0lPQ1RMKG9wcywgVklESU9DX0RFTEVURV9CVUZTLCB2aWRpb2Nf ZGVsZXRlX2J1ZnMpOwo+PiAgIAl9Cj4+ICAgCj4+ICAgCWlmIChpc192aWQgfHwgaXNfdmJpIHx8 IGlzX21ldGEpIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDIt aW9jdGwuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+PiBpbmRleCA0 ZDkwNDI0Y2JmYzQuLmU5ZGNmNDM5ZjlmMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1pb2N0bC5jCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItaW9jdGwuYwo+PiBAQCAtNDg5LDYgKzQ4OSwxMyBAQCBzdGF0aWMgdm9pZCB2NGxfcHJpbnRf Y3JlYXRlX2J1ZmZlcnMoY29uc3Qgdm9pZCAqYXJnLCBib29sIHdyaXRlX29ubHkpCj4+ICAgCXY0 bF9wcmludF9mb3JtYXQoJnAtPmZvcm1hdCwgd3JpdGVfb25seSk7Cj4+ICAgfQo+PiAgIAo+PiAr c3RhdGljIHZvaWQgdjRsX3ByaW50X2RlbGV0ZV9idWZmZXJzKGNvbnN0IHZvaWQgKmFyZywgYm9v bCB3cml0ZV9vbmx5KQo+PiArewo+PiArCWNvbnN0IHN0cnVjdCB2NGwyX2RlbGV0ZV9idWZmZXJz ICpwID0gYXJnOwo+PiArCj4+ICsJcHJfY29udCgiaW5kZXg9JXUsIGNvdW50PSV1XG4iLCBwLT5p bmRleCwgcC0+Y291bnQpOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHZvaWQgdjRsX3ByaW50X3N0 cmVhbXBhcm0oY29uc3Qgdm9pZCAqYXJnLCBib29sIHdyaXRlX29ubHkpCj4+ICAgewo+PiAgIAlj b25zdCBzdHJ1Y3QgdjRsMl9zdHJlYW1wYXJtICpwID0gYXJnOwo+PiBAQCAtMjE2MSw2ICsyMTY4 LDE1IEBAIHN0YXRpYyBpbnQgdjRsX3ByZXBhcmVfYnVmKGNvbnN0IHN0cnVjdCB2NGwyX2lvY3Rs X29wcyAqb3BzLAo+PiAgIAlyZXR1cm4gcmV0ID8gcmV0IDogb3BzLT52aWRpb2NfcHJlcGFyZV9i dWYoZmlsZSwgZmgsIGIpOwo+PiAgIH0KPj4gICAKPj4gK3N0YXRpYyBpbnQgdjRsX2RlbGV0ZV9i dWZzKGNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX29wcyAqb3BzLAo+PiArCQkJICAgc3RydWN0IGZp bGUgKmZpbGUsIHZvaWQgKmZoLCB2b2lkICphcmcpCj4+ICt7Cj4+ICsJc3RydWN0IHY0bDJfZGVs ZXRlX2J1ZmZlcnMgKmRlbGV0ZSA9IGFyZzsKPj4gKwlpbnQgcmV0ID0gY2hlY2tfZm10KGZpbGUs IGRlbGV0ZS0+dHlwZSk7Cj4gU2hvdWxkIHdlIGFsc28gaGF2ZQo+Cj4gCW1lbXNldF9hZnRlcihk ZWxldGUsIDAsIHR5cGUpOwo+Cj4gaGVyZSBzaW1pbGFyIHRvIGhvdyBvdGhlciBpb2N0bCBoYW5k bGVycyBjbGVhciB0aGUgcmVzZXJ2ZWQgZmllbGRzPwoKSSB3aWxsIGFkZCBpdC4KCj4KPj4gKwo+ PiArCXJldHVybiByZXQgPyByZXQgOiBvcHMtPnZpZGlvY19kZWxldGVfYnVmcyhmaWxlLCBmaCwg ZGVsZXRlKTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBpbnQgdjRsX2dfcGFybShjb25zdCBzdHJ1 Y3QgdjRsMl9pb2N0bF9vcHMgKm9wcywKPj4gICAJCQkJc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQg KmZoLCB2b2lkICphcmcpCj4+ICAgewo+PiBAQCAtMjkxMCw2ICsyOTI2LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB2NGwyX2lvY3RsX2luZm8gdjRsMl9pb2N0bHNbXSA9IHsKPj4gICAJSU9DVExf SU5GTyhWSURJT0NfRU5VTV9GUkVRX0JBTkRTLCB2NGxfZW51bV9mcmVxX2JhbmRzLCB2NGxfcHJp bnRfZnJlcV9iYW5kLCAwKSwKPj4gICAJSU9DVExfSU5GTyhWSURJT0NfREJHX0dfQ0hJUF9JTkZP LCB2NGxfZGJnX2dfY2hpcF9pbmZvLCB2NGxfcHJpbnRfZGJnX2NoaXBfaW5mbywgSU5GT19GTF9D TEVBUih2NGwyX2RiZ19jaGlwX2luZm8sIG1hdGNoKSksCj4+ICAgCUlPQ1RMX0lORk8oVklESU9D X1FVRVJZX0VYVF9DVFJMLCB2NGxfcXVlcnlfZXh0X2N0cmwsIHY0bF9wcmludF9xdWVyeV9leHRf Y3RybCwgSU5GT19GTF9DVFJMIHwgSU5GT19GTF9DTEVBUih2NGwyX3F1ZXJ5X2V4dF9jdHJsLCBp ZCkpLAo+PiArCUlPQ1RMX0lORk8oVklESU9DX0RFTEVURV9CVUZTLCB2NGxfZGVsZXRlX2J1ZnMs IHY0bF9wcmludF9kZWxldGVfYnVmZmVycywgSU5GT19GTF9QUklPIHwgSU5GT19GTF9RVUVVRSB8 IElORk9fRkxfQ0xFQVIodjRsMl9kZWxldGVfYnVmZmVycywgdHlwZSkpLAo+PiAgIH07Cj4+ICAg I2RlZmluZSBWNEwyX0lPQ1RMUyBBUlJBWV9TSVpFKHY0bDJfaW9jdGxzKQo+PiAgIAo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmggYi9pbmNsdWRlL21lZGlhL3Y0bDIt aW9jdGwuaAo+PiBpbmRleCBlZGI3MzNmMjE2MDQuLjU1YWZiZGU1NDIxMSAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmgKPj4gKysrIGIvaW5jbHVkZS9tZWRpYS92NGwy LWlvY3RsLmgKPj4gQEAgLTE2Myw2ICsxNjMsOCBAQCBzdHJ1Y3QgdjRsMl9maDsKPj4gICAgKgk6 cmVmOmBWSURJT0NfQ1JFQVRFX0JVRlMgPHZpZGlvY19jcmVhdGVfYnVmcz5gIGlvY3RsCj4+ICAg ICogQHZpZGlvY19wcmVwYXJlX2J1ZjogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBpbXBs ZW1lbnRzCj4+ICAgICoJOnJlZjpgVklESU9DX1BSRVBBUkVfQlVGIDx2aWRpb2NfcHJlcGFyZV9i dWY+YCBpb2N0bAo+PiArICogQHZpZGlvY19kZWxldGVfYnVmczogcG9pbnRlciB0byB0aGUgZnVu Y3Rpb24gdGhhdCBpbXBsZW1lbnRzCj4+ICsgKgk6cmVmOmBWSURJT0NfREVMRVRFX0JVRlMgPHZp ZGlvY19kZWxldGVfYnVmcz5gIGlvY3RsCj4+ICAgICogQHZpZGlvY19vdmVybGF5OiBwb2ludGVy IHRvIHRoZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMKPj4gICAgKgk6cmVmOmBWSURJT0NfT1ZF UkxBWSA8dmlkaW9jX292ZXJsYXk+YCBpb2N0bAo+PiAgICAqIEB2aWRpb2NfZ19mYnVmOiBwb2lu dGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMKPj4gQEAgLTQyMiw2ICs0MjQsOCBA QCBzdHJ1Y3QgdjRsMl9pb2N0bF9vcHMgewo+PiAgIAkJCQkgIHN0cnVjdCB2NGwyX2NyZWF0ZV9i dWZmZXJzICpiKTsKPj4gICAJaW50ICgqdmlkaW9jX3ByZXBhcmVfYnVmKShzdHJ1Y3QgZmlsZSAq ZmlsZSwgdm9pZCAqZmgsCj4+ICAgCQkJCSAgc3RydWN0IHY0bDJfYnVmZmVyICpiKTsKPj4gKwlp bnQgKCp2aWRpb2NfZGVsZXRlX2J1ZnMpKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwKPj4g KwkJCQkgIHN0cnVjdCB2NGwyX2RlbGV0ZV9idWZmZXJzICpkKTsKPj4gICAKPj4gICAJaW50ICgq dmlkaW9jX292ZXJsYXkpKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwgdW5zaWduZWQgaW50 IGkpOwo+PiAgIAlpbnQgKCp2aWRpb2NfZ19mYnVmKShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAq ZmgsCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmggYi9pbmNs dWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmgKPj4gaW5kZXggMjg4NDc3MDc1YTBlLi5kYjNiZDk4 NjYyNGUgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaAo+PiAr KysgYi9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmgKPj4gQEAgLTUwNyw2ICs1MDcsNyBA QCBzdHJ1Y3QgdmIyX2J1Zl9vcHMgewo+PiAgICAqIEBzdXBwb3J0c19yZXF1ZXN0czogdGhpcyBx dWV1ZSBzdXBwb3J0cyB0aGUgUmVxdWVzdCBBUEkuCj4+ICAgICogQHJlcXVpcmVzX3JlcXVlc3Rz OiB0aGlzIHF1ZXVlIHJlcXVpcmVzIHRoZSBSZXF1ZXN0IEFQSS4gSWYgdGhpcyBpcyBzZXQgdG8g MSwKPj4gICAgKgkJdGhlbiBzdXBwb3J0c19yZXF1ZXN0cyBtdXN0IGJlIHNldCB0byAxIGFzIHdl bGwuCj4+ICsgKiBAc3VwcG9ydHNfZGVsZXRlX2J1ZnM6IHRoaXMgcXVldWUgc3VwcG9ydHMgREVM RVRFX0JVRlMgaW9jdGwuCj4+ICAgICogQHVzZXNfcWJ1ZjoJcWJ1ZiB3YXMgdXNlZCBkaXJlY3Rs eSBmb3IgdGhpcyBxdWV1ZS4gU2V0IHRvIDEgdGhlIGZpcnN0Cj4+ICAgICoJCXRpbWUgdGhpcyBp cyBjYWxsZWQuIFNldCB0byAwIHdoZW4gdGhlIHF1ZXVlIGlzIGNhbmNlbGVkLgo+PiAgICAqCQlJ ZiB0aGlzIGlzIDEsIHRoZW4geW91IGNhbm5vdCBxdWV1ZSBidWZmZXJzIGZyb20gYSByZXF1ZXN0 Lgo+PiBAQCAtNTk1LDYgKzU5Niw3IEBAIHN0cnVjdCB2YjJfcXVldWUgewo+PiAgIAl1bnNpZ25l ZCBpbnQJCSAgIHF1aXJrX3BvbGxfbXVzdF9jaGVja193YWl0aW5nX2Zvcl9idWZmZXJzOjE7Cj4+ ICAgCXVuc2lnbmVkIGludAkJCXN1cHBvcnRzX3JlcXVlc3RzOjE7Cj4+ICAgCXVuc2lnbmVkIGlu dAkJCXJlcXVpcmVzX3JlcXVlc3RzOjE7Cj4+ICsJdW5zaWduZWQgaW50CQkJc3VwcG9ydHNfZGVs ZXRlX2J1ZnM6MTsKPj4gICAJdW5zaWduZWQgaW50CQkJdXNlc19xYnVmOjE7Cj4+ICAgCXVuc2ln bmVkIGludAkJCXVzZXNfcmVxdWVzdHM6MTsKPj4gICAJdW5zaWduZWQgaW50CQkJYWxsb3dfY2Fj aGVfaGludHM6MTsKPj4gQEAgLTg0Niw2ICs4NDgsMTYgQEAgaW50IHZiMl9jb3JlX2NyZWF0ZV9i dWZzKHN0cnVjdCB2YjJfcXVldWUgKnEsIGVudW0gdmIyX21lbW9yeSBtZW1vcnksCj4+ICAgICov Cj4+ICAgaW50IHZiMl9jb3JlX3ByZXBhcmVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVj dCB2YjJfYnVmZmVyICp2Yiwgdm9pZCAqcGIpOwo+PiAgIAo+PiArLyoqCj4+ICsgKiB2YjJfY29y ZV9kZWxldGVfYnVmcygpIC0KPj4gKyAqIEBxOgkJcG9pbnRlciB0byAmc3RydWN0IHZiMl9xdWV1 ZSB3aXRoIHZpZGVvYnVmMiBxdWV1ZS4KPj4gKyAqIEBzdGFydDoJZmlyc3QgaW5kZXggb2YgdGhl IHJhbmdlIG9mIGJ1ZmZlcnMgdG8gZGVsZXRlLgo+PiArICogQGNvdW50OgludW1iZXIgb2YgYnVm ZmVycyB0byBkZWxldGUuCj4+ICsgKgo+PiArICogIFJldHVybjogcmV0dXJucyB6ZXJvIG9uIHN1 Y2Nlc3M7IGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgo+PiArICovCj4+ICtpbnQgdmIyX2NvcmVf ZGVsZXRlX2J1ZnMoc3RydWN0IHZiMl9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IHN0YXJ0LCB1bnNp Z25lZCBpbnQgY291bnQpOwo+PiArCj4+ICAgLyoqCj4+ICAgICogdmIyX2NvcmVfcWJ1ZigpIC0g UXVldWUgYSBidWZmZXIgZnJvbSB1c2Vyc3BhY2UKPj4gICAgKgo+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9tZWRpYS92aWRlb2J1ZjItdjRsMi5oIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItdjRs Mi5oCj4+IGluZGV4IDVhODQ1ODg3ODUwYi4uNzljZWE4NDU5ZjUyIDEwMDY0NAo+PiAtLS0gYS9p bmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmgKPj4gKysrIGIvaW5jbHVkZS9tZWRpYS92aWRl b2J1ZjItdjRsMi5oCj4+IEBAIC0xMTgsNiArMTE4LDE3IEBAIGludCB2YjJfY3JlYXRlX2J1ZnMo c3RydWN0IHZiMl9xdWV1ZSAqcSwgc3RydWN0IHY0bDJfY3JlYXRlX2J1ZmZlcnMgKmNyZWF0ZSk7 Cj4+ICAgICovCj4+ICAgaW50IHZiMl9wcmVwYXJlX2J1ZihzdHJ1Y3QgdmIyX3F1ZXVlICpxLCBz dHJ1Y3QgbWVkaWFfZGV2aWNlICptZGV2LAo+PiAgIAkJICAgIHN0cnVjdCB2NGwyX2J1ZmZlciAq Yik7Cj4+ICsvKioKPj4gKyAqIHZiMl9kZWxldGVfYnVmcygpIC0gRGVsZXRlIGJ1ZmZlcnMgZnJv bSB0aGUgcXVldWUKPj4gKyAqCj4+ICsgKiBAcToJCXBvaW50ZXIgdG8gJnN0cnVjdCB2YjJfcXVl dWUgd2l0aCB2aWRlb2J1ZjIgcXVldWUuCj4+ICsgKiBAZDoJCWRlbGV0ZSBwYXJhbWV0ZXIsIHBh c3NlZCBmcm9tIHVzZXJzcGFjZSB0bwo+PiArICoJCSZ2NGwyX2lvY3RsX29wcy0+dmlkaW9jX2Rl bGV0ZV9idWZzIGhhbmRsZXIgaW4gZHJpdmVyCj4+ICsgKgo+PiArICogVGhlIHJldHVybiB2YWx1 ZXMgZnJvbSB0aGlzIGZ1bmN0aW9uIGFyZSBpbnRlbmRlZCB0byBiZSBkaXJlY3RseSByZXR1cm5l ZAo+PiArICogZnJvbSAmdjRsMl9pb2N0bF9vcHMtPnZpZGlvY19kZWxldGVfYnVmcyBoYW5kbGVy IGluIGRyaXZlci4KPj4gKyAqLwo+PiAraW50IHZiMl9kZWxldGVfYnVmcyhzdHJ1Y3QgdmIyX3F1 ZXVlICpxLCBzdHJ1Y3QgdjRsMl9kZWxldGVfYnVmZmVycyAqZCk7Cj4+ICAgCj4+ICAgLyoqCj4+ ICAgICogdmIyX3FidWYoKSAtIFF1ZXVlIGEgYnVmZmVyIGZyb20gdXNlcnNwYWNlCj4+IEBAIC0z MzQsNiArMzQ1LDggQEAgaW50IHZiMl9pb2N0bF9zdHJlYW1vbihzdHJ1Y3QgZmlsZSAqZmlsZSwg dm9pZCAqcHJpdiwgZW51bSB2NGwyX2J1Zl90eXBlIGkpOwo+PiAgIGludCB2YjJfaW9jdGxfc3Ry ZWFtb2ZmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LCBlbnVtIHY0bDJfYnVmX3R5cGUg aSk7Cj4+ICAgaW50IHZiMl9pb2N0bF9leHBidWYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnBy aXYsCj4+ICAgCXN0cnVjdCB2NGwyX2V4cG9ydGJ1ZmZlciAqcCk7Cj4+ICtpbnQgdmIyX2lvY3Rs X2RlbGV0ZV9idWZzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAo+PiArCQkJICBzdHJ1 Y3QgdjRsMl9kZWxldGVfYnVmZmVycyAqcCk7Cj4+ICAgCj4+ICAgLyogc3RydWN0IHY0bDJfZmls ZV9vcGVyYXRpb25zIGhlbHBlcnMgKi8KPj4gICAKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC92aWRlb2RldjIuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+PiBp bmRleCAxM2RkYjVhYmY1ODQuLjk2ZTEwNTE0OTkwNiAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2Rl djIuaAo+PiBAQCAtMTAzNiw2ICsxMDM2LDcgQEAgc3RydWN0IHY0bDJfcmVxdWVzdGJ1ZmZlcnMg ewo+PiAgICNkZWZpbmUgVjRMMl9CVUZfQ0FQX1NVUFBPUlRTX00yTV9IT0xEX0NBUFRVUkVfQlVG CSgxIDw8IDUpCj4+ICAgI2RlZmluZSBWNEwyX0JVRl9DQVBfU1VQUE9SVFNfTU1BUF9DQUNIRV9I SU5UUwkJKDEgPDwgNikKPj4gICAjZGVmaW5lIFY0TDJfQlVGX0NBUF9TVVBQT1JUU19NQVhfTlVN X0JVRkZFUlMJCSgxIDw8IDcpCj4+ICsjZGVmaW5lIFY0TDJfQlVGX0NBUF9TVVBQT1JUU19ERUxF VEVfQlVGUwkJKDEgPDwgOCkKPj4gICAKPj4gICAvKioKPj4gICAgKiBzdHJ1Y3QgdjRsMl9wbGFu ZSAtIHBsYW5lIGluZm8gZm9yIG11bHRpLXBsYW5hciBidWZmZXJzCj4+IEBAIC0yNjIyLDYgKzI2 MjMsMjAgQEAgc3RydWN0IHY0bDJfY3JlYXRlX2J1ZmZlcnMgewo+PiAgIAlfX3UzMgkJCXJlc2Vy dmVkWzVdOwo+PiAgIH07Cj4+ICAgCj4+ICsvKioKPj4gKyAqIHN0cnVjdCB2NGwyX2RlbGV0ZV9i dWZmZXJzIC0gVklESU9DX0RFTEVURV9CVUZTIGFyZ3VtZW50Cj4+ICsgKiBAaW5kZXg6CXRoZSBm aXJzdCBidWZmZXIgdG8gYmUgZGVsZXRlZAo+PiArICogQGNvdW50OgludW1iZXIgb2YgYnVmZmVy cyB0byBkZWxldGUKPj4gKyAqIEB0eXBlOgllbnVtIHY0bDJfYnVmX3R5cGUKPj4gKyAqIEByZXNl cnZlZDoJZnV0dXJlIGV4dGVuc2lvbnMKPj4gKyAqLwo+PiArc3RydWN0IHY0bDJfZGVsZXRlX2J1 ZmZlcnMgewo+PiArCV9fdTMyCQkJaW5kZXg7Cj4+ICsJX191MzIJCQljb3VudDsKPj4gKwlfX3Uz MgkJCXR5cGU7Cj4+ICsJX191MzIJCQlyZXNlcnZlZFsxM107Cj4+ICt9Owo+PiArCj4+ICAgLyoK Pj4gICAgKglJIE8gQyBUIEwgICBDIE8gRCBFIFMgICBGIE8gUiAgIFYgSSBEIEUgTyAgIEQgRSBW IEkgQyBFIFMKPj4gICAgKgo+PiBAQCAtMjcyMSw2ICsyNzM2LDggQEAgc3RydWN0IHY0bDJfY3Jl YXRlX2J1ZmZlcnMgewo+PiAgICNkZWZpbmUgVklESU9DX0RCR19HX0NISVBfSU5GTyAgX0lPV1Io J1YnLCAxMDIsIHN0cnVjdCB2NGwyX2RiZ19jaGlwX2luZm8pCj4+ICAgCj4+ICAgI2RlZmluZSBW SURJT0NfUVVFUllfRVhUX0NUUkwJX0lPV1IoJ1YnLCAxMDMsIHN0cnVjdCB2NGwyX3F1ZXJ5X2V4 dF9jdHJsKQo+PiArI2RlZmluZSBWSURJT0NfREVMRVRFX0JVRlMJX0lPV1IoJ1YnLCAxMDQsIHN0 cnVjdCB2NGwyX2RlbGV0ZV9idWZmZXJzKQo+PiArCj4+ICAgCj4+ICAgLyogUmVtaW5kZXI6IHdo ZW4gYWRkaW5nIG5ldyBpb2N0bHMgcGxlYXNlIGFkZCBzdXBwb3J0IGZvciB0aGVtIHRvCj4+ICAg ICAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jb21wYXQtaW9jdGwzMi5jIGFzIHdlbGwh ICovCj4gRG8gd2UgYWxzbyBuZWVkIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGlvY3RsIGlu IHRoZXJlPwoKSXQgb25seSB1c2UgX3UzMiwgaXMgYWxpZ25lZCBvbiBjYWNoZSBib3VuZGFyeSBh bmQgZG9lc24ndCB1c2UgcG9pbnRlci4KRm9yIG1lIDMyIGFuZCA2NCBiaXRzIHN0cnVjdHVyZXMg YXJlIGlkZW50aWNhbCBzbyBpdCBkb2Vzbid0IG5lZWQgdG8gYmUgY29udmVydC4KTWF5YmUgSSdt IHdyb25nIHdoZW4gdGVzdGluZyBpdCB3aXRoIHBhaG9sZSA/Cgo+Cj4gQmVzdCByZWdhcmRzLAo+ IFRvbWFzego+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gS2VybmVsIG1haWxpbmcgbGlzdCAtLSBrZXJuZWxAbWFpbG1hbi5jb2xsYWJvcmEuY29tCj4g VG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBrZXJuZWwtbGVhdmVAbWFpbG1hbi5jb2xs YWJvcmEuY29tCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJvY2tjaGlwCg==