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 AA2CCC433F5 for ; Wed, 6 Apr 2022 01:45:16 +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=76u90YXDIYOSN2FWn6ATQu9XfR5c/4pKKu+Bi8X2U+o=; b=ecm3/Qt/LMaMKm RNZLNEMYc2MhTASbrG7Ojg19OnzDt8+j/x5dtBHbMvB1qJ666daLrdD5T27enh29J1zkoZ3GNqP1F fxNZ6tM+C/OQ4Bkw8oUnFoAjx5tyFCxJRTB1RQ6YUv3rWAa/73LGE/iORdZ9lesKXQ4ZXdU/+upnF Yd6xoNKyh7JO5zuTng60kO3oxFphpBfkt8albKSTjMeNH6HxC9wagxzNS9g9khRHBhoTylE09Trva C1V2iS+p7I8Y+NC3WKZe07h19OMtZTIpQA79ZvyoQDkOdryZ3iJhdsIZtbEdjzAAK34hIrkC3Zqh6 W7UiQchiTehyYGEV03Mg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbuiJ-003Fta-QK; Wed, 06 Apr 2022 01:44:03 +0000 Received: from mail-m17637.qiye.163.com ([59.111.176.37]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbuiF-003FsB-2I; Wed, 06 Apr 2022 01:44:02 +0000 Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m17637.qiye.163.com (Hmail) with ESMTPA id 881C3980594; Wed, 6 Apr 2022 09:43:50 +0800 (CST) Message-ID: <93001a4c-b009-202f-7b04-34e1a9e617ec@rock-chips.com> Date: Wed, 6 Apr 2022 09:43:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH v9 20/23] drm/rockchip: Make VOP driver optional Content-Language: en-US To: Sascha Hauer Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, kernel@pengutronix.de, Benjamin Gaignard , Michael Riesch , Sandy Huang , =?UTF-8?Q?Heiko_St=c3=bcbner?= , Peter Geis , Kever Yang References: <20220328151116.2034635-21-s.hauer@pengutronix.de> <274a12a9-61f1-7d6a-e89c-52237621930b@rock-chips.com> <20220330063913.GW12181@pengutronix.de> <9619ce71-db59-d6cd-c254-2b67122fa245@rock-chips.com> <20220331070614.GD4012@pengutronix.de> <20220331081815.GF4012@pengutronix.de> <8aa9da47-d7ed-41bf-384c-103757c19fe2@rock-chips.com> <20220401125527.GM4012@pengutronix.de> <7b2630d8-0575-5d65-dd81-3ef336ad5ba7@rock-chips.com> <20220405090509.GP4012@pengutronix.de> From: Andy Yan In-Reply-To: <20220405090509.GP4012@pengutronix.de> X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgPGg8OCBgUHx5ZQUlOS1dZCBgUCR5ZQVlLVUtZV1 kWDxoPAgseWUFZKDYvK1lXWShZQUlKS0tKN1dZLVlBSVdZDwkaFQgSH1lBWUNPH0xWSk1OHR0eSU 8ZTR1JVRMBExYaEhckFA4PWVdZFhoPEhUdFFlBWU9LSFVKSktISkNVS1kG X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6MVE6Cgw*Hj5OHUsKMRYvCFYu MClPFBpVSlVKTU9CSUtCT0hKSkJJVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBSktJTEw3Bg++ X-HM-Tid: 0a7ffc8ad35ad992kuws881c3980594 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220405_184359_459004_3C4C808A X-CRM114-Status: GOOD ( 47.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: 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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU2FjaGE6CgpPbiA0LzUvMjIgMTc6MDUsIFNhc2NoYSBIYXVlciB3cm90ZToKPiBPbiBTYXQs IEFwciAwMiwgMjAyMiBhdCAwOToyNTozM0FNICswODAwLCBBbmR5IFlhbiB3cm90ZToKPj4gSGkg U2FzY2hhOgo+Pgo+PiBPbiA0LzEvMjIgMjA6NTUsIFNhc2NoYSBIYXVlciB3cm90ZToKPj4+IE9u IFRodSwgTWFyIDMxLCAyMDIyIGF0IDA3OjAwOjM0UE0gKzA4MDAsIEFuZHkgWWFuIHdyb3RlOgo+ Pj4+IEhpOgo+Pj4+Cj4+Pj4gT24gMy8zMS8yMiAxNjoxOCwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+ Pj4+PiBPbiBUaHUsIE1hciAzMSwgMjAyMiBhdCAwMzoyMDozN1BNICswODAwLCBBbmR5IFlhbiB3 cm90ZToKPj4+Pj4+IEhpIFNhc2NoYToKPj4+Pj4+Cj4+Pj4+PiBPbiAzLzMxLzIyIDE1OjA2LCBT YXNjaGEgSGF1ZXIgd3JvdGU6Cj4+Pj4+Pj4gT24gV2VkLCBNYXIgMzAsIDIwMjIgYXQgMDg6NTA6 MDlQTSArMDgwMCwgQW5keSBZYW4gd3JvdGU6Cj4+Pj4+Pj4+IEhpIFNhc2NoYToKPj4+Pj4+Pj4K Pj4+Pj4+Pj4gT24gMy8zMC8yMiAxNDozOSwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+Pj4+Pj4+Pj4g SGkgQW5keSwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBPbiBUdWUsIE1hciAyOSwgMjAyMiBhdCAwNzo1 NjoyN1BNICswODAwLCBBbmR5IFlhbiB3cm90ZToKPj4+Pj4+Pj4+PiBIaSBTYXNjaGE6Cj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+PiBPbiAzLzI4LzIyIDIzOjExLCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4+ Pj4+Pj4+Pj4+IFdpdGggdXBjb21pbmcgVk9QMiBzdXBwb3J0IFZPUCB3b24ndCBiZSB0aGUgb25s eSBjaG9pY2UgYW55bW9yZSwgc28gbWFrZQo+Pj4+Pj4+Pj4+PiB0aGUgVk9QIGRyaXZlciBvcHRp b25hbC4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVy IDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgo+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4gICAg ICAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnICAgICAgICAgICAgfCA4ICsrKysr KysrCj4+Pj4+Pj4+Pj4+ICAgICAgICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvTWFrZWZpbGUg ICAgICAgICAgIHwgMyArKy0KPj4+Pj4+Pj4+Pj4gICAgICAgIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMgfCAyICstCj4+Pj4+Pj4+Pj4+ICAgICAgICAzIGZpbGVz IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnCj4+Pj4+Pj4+Pj4+IGluZGV4IGZhNWNm ZGE0ZTkwZTMuLjdkMjJlMjk5N2E1NzEgMTAwNjQ0Cj4+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9LY29uZmlnCj4+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9LY29uZmlnCj4+Pj4+Pj4+Pj4+IEBAIC0yMyw4ICsyMywxNiBAQCBjb25maWcg RFJNX1JPQ0tDSElQCj4+Pj4+Pj4+Pj4+ICAgICAgICBpZiBEUk1fUk9DS0NISVAKPj4+Pj4+Pj4+ Pj4gK2NvbmZpZyBST0NLQ0hJUF9WT1AKPj4+Pj4+Pj4+Pj4gKwlib29sICJSb2NrY2hpcCBWT1Ag ZHJpdmVyIgo+Pj4+Pj4+Pj4+PiArCWRlZmF1bHQgeQo+Pj4+Pj4+Pj4+PiArCWhlbHAKPj4+Pj4+ Pj4+Pj4gKwkgIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciB0aGUgVk9QIGRyaXZlci4gWW91IHNo b3VsZCBlbmFibGUgaXQKPj4+Pj4+Pj4+Pj4gKwkgIG9uIGFsbCBvbGRlciBTb0NzIHVwIHRvIFJL MzM5OS4KPj4+Pj4+Pj4+IFRoYXQgcmVtaW5kcyBtZSB0aGF0IEkgd2FudGVkIHRvIHJlcGhyYXNl IHRoaXMuIFdpbGwgY2hhbmdlIGluIG5leHQKPj4+Pj4+Pj4+IHJvdW5kLgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+PiAgICAgICAgY29uZmlnIFJPQ0tDSElQX0FOQUxPR0lYX0RQ Cj4+Pj4+Pj4+Pj4+ICAgICAgICAJYm9vbCAiUm9ja2NoaXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBm b3IgQW5hbG9naXggRFAgZHJpdmVyIgo+Pj4+Pj4+Pj4+PiArCWRlcGVuZHMgb24gUk9DS0NISVBf Vk9QCj4+Pj4+Pj4+Pj4gQWFubG9naXggZHAgaXMgYWxzbyBvbiB2b3AyIGJhc2Ugc29jIHN1Y2gg YXPCoCByazM1NnggYW5kIHJrMzU4OC4KPj4+Pj4+PiBCVFcgSSBqdXN0IGxvb2tlZCBhdCB0aGUg ZG93bnN0cmVhbSBkcml2ZXIuIEhlcmUgd2UgaGF2ZSB0aGUgc2FtZQo+Pj4+Pj4+IHNpdHVhdGlv biB0aGF0IHRoZSBhbmFsb2dpeCBkcCBkcml2ZXIgY2FsbHMgcm9ja2NoaXBfZHJtX3dhaXRfdmFj dF9lbmQoKQo+Pj4+Pj4+IHdoaWNoIGlzIGltcGxlbWVudGVkIGluIHRoZSBWT1AgZHJpdmVyLCBz byB3aGVuIHRoZSBhbmFsb2dpeCBkcCBkcml2ZXIKPj4+Pj4+PiBpcyBhY3R1YWxseSB1c2VkIG9u IGEgVk9QMiBTb0MgdGhlbiBpdCBpcyBlaXRoZXIgdXNlZCBpbiBhIHdheSB0aGF0Cj4+Pj4+Pj4g cm9ja2NoaXBfZHJtX3dhaXRfdmFjdF9lbmQoKSB3aWxsIG5ldmVyIGJlIGNhbGxlZCBvciBpdCBl eHBsb2RlcyBpbiBhbGwKPj4+Pj4+PiBjb2xvdXJzLgo+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJIGFkZGVk IHRoZSBkZXBlbmRlbmN5IGJlY2F1c2UgYW5hbG9naXhfZHAtcm9ja2NoaXAuYyBjYWxscwo+Pj4+ Pj4+Pj4gcm9ja2NoaXBfZHJtX3dhaXRfdmFjdF9lbmQoKSB3aGljaCBpcyBpbXBsZW1lbnRlZCBp biB0aGUgVk9QIGRyaXZlciwKPj4+Pj4+Pj4+IHNvIHRoaXMgZHJpdmVyIGN1cnJlbnR5IGNhbid0 IHdvcmsgd2l0aCB0aGUgVk9QMiBkcml2ZXIgYW5kIGNhbid0Cj4+Pj4+Pj4+PiBiZSBsaW5rZWQg d2l0aG91dCB0aGUgVk9QIGRyaXZlciBiZWluZyBwcmVzZW50Lgo+Pj4+Pj4+Pj4gSSdsbCBhZGQg YSBmZXcgd29yZHMgdG8gdGhlIGNvbW1pdCBtZXNzYWdlLgo+Pj4+Pj4+PiBNYXliZSBhIGJldHRl ciBkaXJlY3Rpb24gaXMgbW92ZSByb2NrY2hpcF9kcm1fd2FpdF92YWN0X2VuZCBmcm9tIHRoZSBW T1AKPj4+Pj4+Pj4gZHJpdmVyIHRvIHJvY2tjaGlwX2RybV9kcnYuYwo+Pj4+Pj4+IEkgYW0gbm90 IHN1cmUgaWYgdGhhdCdzIHJlYWxseSB3b3J0aCBpdC4gWWVzLCB0aGUgZGlyZWN0aW9uIG1pZ2h0 IGJlIHRoZQo+Pj4+Pj4+IHJpZ2h0IG9uZSwgYnV0IEkgd291bGQgcmVhbGx5IHByZWZlciB3aGVu IHNvbWVib2R5IGRvZXMgdGhlIGNoYW5nZSB3aG8KPj4+Pj4+PiBjYW4gdGVzdCBhbmQgY29uZmly bSB0aGF0IHRoZSBhbmFsb2dpeCBkcCByZWFsbHkgd29ya3Mgd2l0aCBWT1AyIGluIHRoZQo+Pj4+ Pj4+IGVuZC4KPj4+Pj4+IElmIGZvbGxvdyB0aGlzIHBvaW50LCB0aGUgY3VycmVudCBEV19NSVBJ IGFsc28gaGFzIG5vdCBiZWVuIHRlc3RlZCBmb3IKPj4+Pj4+IGNvbmZpcm0gdGhhdCBpdAo+Pj4+ Pj4KPj4+Pj4+IGNhbiByZWFsbHkgd29yayB3aXRoIFZPUDIsIHNvIHlvdSBzaG91bGQgYWxzbyBt YWtlIGl0IGRlcGVuZHMgb24KPj4+Pj4+IFJPQ0tDSElQX1ZPUC4KPiBIZXJlIHlvdSBhcmUgc3Vn Z2VzdGluZyB0byBhZGQgZXZlbiBtb3JlIEtjb25maWcgZGVwZW5kZW5jaWVzLgo+Cj4+Pj4+IFdl bGwgYXQgbGVhc3QgSSBoYXZlIHBhdGNoZXMgaGVyZSB3aGljaCBtYWtlIERXX01JUEkgd29yayB3 aXRoIFZPUDIgOykKPj4+PiBCdXQgeW91IERXX01JUEkgcGF0Y2hlcyBmb3IgcmszNTZ4IGRpZG4n dCBjb21lLiBTbyB0aGlzIGlzIG5vdCBrZWVwCj4+Pj4gY29uc2lzdGVuY3kgd2l0aCB0aGlzIHBv aW50Lgo+Pj4+Cj4+Pj4+IFdoYXQgYWJvdXQgdGhlIG90aGVycywgbGlrZSBMVkRTIGFuZCBSR0I/ Cj4+Pj4gWWVzLCB3ZSBhbHNvIGhhdmUgb3RoZXIgaW50ZXJmYWNlICwgUkszNTZYIGhhcyBMVkRT L1JHQi9CVDExMjAvQlQ2NTYsIFJLMzU4OAo+Pj4+IGhhcyBCVDExMjAvQlQ2NTYsIG5vIExWRFMg b3IgUkdCLgo+Pj4+Cj4+Pj4+PiBJIHRoaW5rIHRoZSBjdXJyZW50IHNvbHV0aW9uIGlzIGp1c3Qg YSB3b3JrYXJvdW5kIHRvIG1ha2UgeW91ciBwYXRjaCBwYXNzCj4+Pj4+PiB0aGUga2VybmVsIGNv bXBpbGUKPj4+Pj4gSW5kZWVkLgo+Pj4+Pgo+Pj4+PiBJIGFncmVlIHRoYXQgaXQgd291bGQgYmUg Z29vZCB0byBhZGQgYSBub3RlIHNvbWV3aGVyZSB3aGljaCBvdXRwdXRzCj4+Pj4+IHdvcmsgd2l0 aCB0aGUgVk9QMiBkcml2ZXIgKGN1cnJlbnRseSBvbmx5IEhETUkpLCBidXQgSSB3b25kZXIgaWYg S2NvbmZpZwo+Pj4+PiBkZXBlbmRlbmNpZXMgaXMgdGhlIHJpZ2h0IHBsYWNlIGZvciBpdCwgYmVj YXVzZSBvbmx5IHBlb3BsZSB3aG8gZGVsaWJlcmF0ZWx5Cj4+Pj4+IGRpc2FibGUgVk9QIHN1cHBv cnQgd2lsbCBzZWUgdGhpcyBpbmZvcm1hdGlvbi4KPj4+Pj4gTWF5YmUgd2Ugc2hvdWxkIHJhdGhl ciBhZGQgaXQgdG8gdGhlIEtjb25maWcgaGVscCB0ZXh0Pwo+Pj4+IElmIGEgZGV2aWNlIGlzIHN1 cHBvcnRlZCBmb3IgdGhpcyBzb2MsIHdlIHdpbGwgYWRkIGR0IG5vZGUgYXQgdGhlIGR0c2kgZmls ZS4KPj4+Pgo+Pj4+IEEgS2NvbmZpZyBkZXBlbmRlbmNpZXMgZG9uJ3Qgc2VlbXMgYSBnb29kIGlk ZWEuCj4gSGVyZSB5b3Ugc2F5IEtjb25maWcgZGVwZW5kZW5jaWVzIGFyZSBubyBnb29kIGlkZWEu CgoKWWVzLiBJdCdzIG5vdCBhIGdvb2QgaWRlYS4gU28gSSBkb24ndCB3YW50IHRvIHNlZSB5b3Ug dXNlIGEgS2NvZmlnIApkZXBlbmRlbmNlCgp0byBkaXNhYmxlIGEgbW9kdWxlIHRvIGF2b2lkIGNv bXBpbGUgd2hpY2ggaW50cm9kdWNlZCBieSB5b3VyIHBhdGNoLgoKPgo+Pj4gT2ssIHRoaXMgbWVh bnMgd2UgY2FuIGtlZXAgbXkgY3VycmVudCBhcHByb2FjaCB3aXRoIGp1c3QgbGV0dGluZwo+Pj4g Uk9DS0NISVBfQU5BTE9HSVhfRFAgZGVwZW5kIG9uIFJPQ0tDSElQX1ZPUCB0byBhdm9pZCBoYXZp bmcgYSBub24KPj4gRXhjdXNlIG1lPyBIb3cgZG8geW91IGdldCB0aGlzIGNvbmNsdXNpb24gPwo+ IEdpdmVuIHRoYXQgeW91IHNheSB0aGF0IHlvdSB3YW50IHRvIGhhdmUgYm90aCBtb3JlIGFuZCBs ZXNzIEtjb25maWcKPiBkZXBlbmRlbmNpZXMgSSBjYW1lIHRvIHRoZSBjb25jbHVzaW9uIHRoYXQg SSBvbmx5IGFkZCBvbmUgd2hlcmUgaXQncwo+IG5lY2Vzc2FyeSB0byBjb21waWxlIHRoZSBkcml2 ZXIuCj4KPj4gSSBzYWlkIGJlZm9yZSzCoCB2b3AgYW5kIHZvcDIgYmFzZWQgcGxhdGZvcm1zIGJv dGggaGF2ZSBST0NLQ0hJUF9BTkFMT0dJWF9EUC4KPiBNYXliZSwgYnV0IHZvcDIgd2l0aCBST0NL Q0hJUF9BTkFMT0dJWF9EUCBkb2Vzbid0IGV2ZW4gd29yayBpbiB0aGUKPiBSb2NrY2hpcCBkb3du c3RyZWFtIGtlcm5lbCwgc28gSSB3b25kZXIgaG93IHJlbGV2YW50IHRoaXMgdXNlY2FzZSByZWFs bHkKPiBpcy4KCgpObywgdGhpcyBpcyBub3QgdGhlIHRydXRoLiBSb2NrY2hpcF9BTkFMT0dJWF9E UCBvZiBjb3Vyc2Ugd29yayB3aXRoIHRoZQoKdmVuZG9yIGtlcm5lbC4gV2UgaGF2ZSBtYW55IHJr MzU2eCBiYXNlZCBwcm9kdWN0cyBzaGlwcGVkIHdpdGggZWRwLgoKRXZlbiB0aGUgVkdBIG91dHB1 dCBpbnRlcmZhY2Ugb24gUkszNTY4X0VWQjEgaXMgZHJpdmVkIGJ5CgpST0NLQ0hJUF9BTkFMT0dJ WF9EUCB3aXRoIGEgUlREMjE2NiBlRFAgdG8gVkdBIGNvbnZlcnQKCmNoaXAuCgoKU28gaG93IGRv IHlvdSBnZXQgY29uY2x1c2lvbiB0aGF0IFJPQ0tDSElQX0FOQUxPR0lYX0RQIGNhbid0IHdvcmsg d2l0aAoKdGhlIFJvY2tjaGlwIGRvd25zdHJlYW0ga2VybmVsPyBJcyBpdCBiZWNhdXNlIHlvdSBj YW4ndCBtYWtlIHRoZSBEUCB3b3JrIG9uCgp5b3VyIGJvYXJkPyBJZiBpdCBpcywgcGxlYXNlIGNv bnRhY3QgdGhlIHN1cHBsaWVyIHdobyBnYXZlIHlvdSB0aGUgYm9hcmQuCgoKRG8geW91IGhhdmUg YSBSSzM1NjhfRVZCMSB0aGF0IGhhcyBhIFZHQSBvdXRwdXQgaW50ZXJmYWNlIG9uIGJvYXJkPwoK SWYgeW91IGhhdmUgaXQsIEkgY2FuIG9mZmVyIHlvdSBpbWFnZSB0byB2ZXJpZnkgdGhlIERQLgoK Cj4+IElmIHRoaXMgcGF0Y2ggd2lsbCBjYXVzZSB0aGUgY29tcGlsZSBlcnJvciwgcGxlYXNlIGRv IGEgcmVhbCBmaXgsIG5vdCBhCj4gSSBjYW4ndCwgYmVjYXVzZSBJIGRvbid0IGhhdmUgYW55IGhh cmR3YXJlIHRvIHRlc3QgdGhlIEFuYWxvZ2l4IERQIG9uIGEKPiBWT1AgaGFyZHdhcmUsIGFuZCBn aXZlbiB0aGF0IEFuYWxvZ2l4IERQIGluIGNvbmp1bmN0aW9uIHdpdGggVk9QMiBoYXJkd2FyZSBp cwo+IG5vdCBldmVuIHN1cHBvcnRlZCBpbiB0aGUgZG93bnN0cmVhbSBLZXJuZWwgSSBhbSBub3Qg c3VyZSBpZiBpdCdzIHJlYWxseQo+IHdvcnRoIGRvaW5nIHRoYXQuCgoKQWdhaW4sIHRoaXMgaXMg bm90IHRoZSB0cnV0aCwgc2VlIGFib3ZlLgoKSSBhbSBub3QgYXNrIHlvdSBzdXBwb3J0IHRoZSBS T0NLQ0hJUF9BTkFMT0dJWF9EUCBvbiB1cHN0cmVhbSwgSSBqdXN0Cgp3YW50IHlvdSBjYW4gZ2l2 ZSBhIGJldHRlciBzb2x1dGlvbiB3aGVuIHlvdSBwYXRjaCBjYXVzZSB0aGUgY29tcGlsZSBlcnJv ci4KCkRpc2FibGUgYSBtb2R1bGUgd2hlbiBpdCBjb25mbGljdCB3aXRoIHlvdXIgcGF0Y2ggaXMg dG9vIHJvdWdoLgoKPgo+IE1vdmluZyByb2NrY2hpcF9kcm1fd2FpdF92YWN0X2VuZCgpIHRvIHJv Y2tjaGlwX2RybV9kcnYuYyBkb2Vzbid0IHdvcmsKPiB3aXRoIG1haW5saW5lIGN1cnJlbnRseSwg d2UgZmlyc3Qgd291bGQgaGF2ZSB0byBhZGQgYSBzdHJ1Y3QgY3J0Y19mdW5jcwo+IHRvIHN0cnVj dCByb2NrY2hpcF9kcm1fcHJpdmF0ZS4gWWVzLCB0aGF0IGNvdWxkIGJlIGRvbmUuCj4KPj4gd29y a2Fyb3VuZCB0aGF0IG1heSBkZWxpdmVyIG1pc2xlYWRpbmcgaW5mb3JtYXRpb24uCj4gVGhlIEtj b25maWcgZGVwZW5kZW5jeSBxdWl0ZSBjbGVhcmx5IHNheXMgdGhhdCB0aGUgQW5hbG9naXggRFAg Y3VycmVudGx5Cj4gZG9lc24ndCB3b3JrIHdpdGggdGhlIFZPUDIuIEFueW9uZSB3aG8gd2FudHMg dG8gY2hhbmdlIHRoYXQgY2FuIHVzZSB0aGF0Cj4gaW5mb3JtYXRpb24gYXMgYSBzdGFydGluZyBw b2ludCBhbmQgaW1wbGVtZW50IHdoYXRldmVyIGlzIG5lY2Vzc2FyeSBhbmQKPiBsaWtlbHkgaGFz IHRoZSBoYXJkd2FyZSB0byB2ZXJpZnkgdGhlIHdvcmsuIEkgZG9uJ3Qgd2FudCB0byBzb2x2ZQo+ IHByb2JsZW1zIHRoYXQgKm1pZ2h0KiBhcmlzZSBpbiB0aGUgZnV0dXJlLCBhbmQgaW4gdGhpcyBj YXNlIGl0J3Mgbm90IGEKPiBkaXJlY3Rpb24gZGVjaXNpb24gdGhhdCB3ZSBtaWdodCByZWdyZXQg aW4gdGhlIGZ1dHVyZS4KPgo+IFNhc2NoYQo+Cj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=