Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3214036pxb; Fri, 12 Feb 2021 12:10:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJzXAhaqUMPxzOHEdNEVnY8/eyCVpih42/r3nXz9QcboQU9TpU3YipF935d8HQbzCAsqvr82 X-Received: by 2002:a17:907:20f2:: with SMTP id rh18mr4717272ejb.350.1613160611061; Fri, 12 Feb 2021 12:10:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613160611; cv=none; d=google.com; s=arc-20160816; b=EjIBfQw6wemn+Dx4H5HNV1iPmsctfy490so8b5FeS7RMBek8NfJbfsOoUKJVZBiPpu 0bijA+VnMqYnCdBvaw7mqEBTg+WkRs5HbbWhO02g6HJ1sG/tzT1uzRySYzCXY5pp28uQ 0i/uc6xovC62CJHABrHd59fHPTZdvh0BQ/dU5qJf+WrzY3mdVmZjjzMe8cu+0edSTYL7 SX8NbLDcY+p4tp9Y3hBbBXlB0mjtrZBNtjc9rpwZPUpiFHJOtOF4JCCyt8y3MSMBSOUJ 4tyC8lSFwsY3D0JWeH7X4SHxqLXkW+cqvHmJA0W0oueHsmlxHus3PQcz/DMBdmeB8JXf EtMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=xfI5NK2tPLJI+hxYrizoHIYEfHS7mniXsC6+CZS67YE=; b=nwLwmU6UURh5ST8TKtjqEIiHxm+9ehyq9viuVbekkwTYPvsVchZ19C0wriI2ItYbY1 jSP/kPWL5vE8pVpQJHeOGdwqqILIerDASNPkmdWYWHa8bUO1Nrow12lYKn1RpCrzoCCq R0MeVCGJX6xlB1JC/fK4BYf4ptG+MOjYPpomJRbQ9/Y7IBVpc5Bs3oo0mbOQQ+OXfV5l TS/ZlbGq/xmxJxBJtwAGl/MPOYzsswp8oIPxRDdSStih+aHplpTcGBXm9RrqJOLCMJ+a lHKoFfyyHYY7Qu9C2fO6AjpS7F1fRU8SHirOZKHaZq8im4LUSIMmC+ime+UzggVUNiFs tG6Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f5si6359031ejd.104.2021.02.12.12.09.47; Fri, 12 Feb 2021 12:10:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229923AbhBLUG5 (ORCPT + 99 others); Fri, 12 Feb 2021 15:06:57 -0500 Received: from szxga02-in.huawei.com ([45.249.212.188]:3023 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229796AbhBLUG4 (ORCPT ); Fri, 12 Feb 2021 15:06:56 -0500 Received: from DGGEMM403-HUB.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4DckxK41KVzRBrW; Sat, 13 Feb 2021 04:04:53 +0800 (CST) Received: from dggemi760-chm.china.huawei.com (10.1.198.146) by DGGEMM403-HUB.china.huawei.com (10.3.20.211) with Microsoft SMTP Server (TLS) id 14.3.498.0; Sat, 13 Feb 2021 04:06:11 +0800 Received: from dggemi761-chm.china.huawei.com (10.1.198.147) by dggemi760-chm.china.huawei.com (10.1.198.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2106.2; Sat, 13 Feb 2021 04:06:11 +0800 Received: from dggemi761-chm.china.huawei.com ([10.9.49.202]) by dggemi761-chm.china.huawei.com ([10.9.49.202]) with mapi id 15.01.2106.006; Sat, 13 Feb 2021 04:06:11 +0800 From: "Song Bao Hua (Barry Song)" To: Grygorii Strashko , Andy Shevchenko CC: Arnd Bergmann , luojiaxing , Linus Walleij , Santosh Shilimkar , Kevin Hilman , "open list:GPIO SUBSYSTEM" , "linux-kernel@vger.kernel.org" , "linuxarm@openeuler.org" Subject: RE: [Linuxarm] Re: [PATCH for next v1 1/2] gpio: omap: Replace raw_spin_lock_irqsave with raw_spin_lock in omap_gpio_irq_handler() Thread-Topic: [Linuxarm] Re: [PATCH for next v1 1/2] gpio: omap: Replace raw_spin_lock_irqsave with raw_spin_lock in omap_gpio_irq_handler() Thread-Index: AQHXASPSlQt84o9SE0i+o14ylEf4e6pTywWAgACGpJD//4GQAIAAiAmg//+HpICAAJikgP//jTIAABypsIA= Date: Fri, 12 Feb 2021 20:06:11 +0000 Message-ID: <8ca9814a674f4d3ab8bd74698ef9e693@hisilicon.com> References: <1612774577-55943-1-git-send-email-luojiaxing@huawei.com> <1612774577-55943-2-git-send-email-luojiaxing@huawei.com> <2a12cf7a21f74a0c9e2552a467b77fae@hisilicon.com> <33720e72-a438-8ffe-1b5f-38756738ad9b@ti.com> <014b2e0d2b134bfdbe629ab6146c6bb4@hisilicon.com> <92f75957-4f04-e62e-1a3e-09933a8881b5@ti.com> In-Reply-To: <92f75957-4f04-e62e-1a3e-09933a8881b5@ti.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.201.105] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR3J5Z29yaWkgU3RyYXNo a28gW21haWx0bzpncnlnb3JpaS5zdHJhc2hrb0B0aS5jb21dDQo+IFNlbnQ6IFNhdHVyZGF5LCBG ZWJydWFyeSAxMywgMjAyMSAzOjA5IEFNDQo+IFRvOiBTb25nIEJhbyBIdWEgKEJhcnJ5IFNvbmcp IDxzb25nLmJhby5odWFAaGlzaWxpY29uLmNvbT47IEFuZHkgU2hldmNoZW5rbw0KPiA8YW5keS5z aGV2Y2hlbmtvQGdtYWlsLmNvbT4NCj4gQ2M6IEFybmQgQmVyZ21hbm4gPGFybmRAa2VybmVsLm9y Zz47IGx1b2ppYXhpbmcgPGx1b2ppYXhpbmdAaHVhd2VpLmNvbT47IExpbnVzDQo+IFdhbGxlaWog PGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz47IFNhbnRvc2ggU2hpbGlta2FyIDxzc2FudG9zaEBr ZXJuZWwub3JnPjsNCj4gS2V2aW4gSGlsbWFuIDxraGlsbWFuQGtlcm5lbC5vcmc+OyBvcGVuIGxp c3Q6R1BJTyBTVUJTWVNURU0NCj4gPGxpbnV4LWdwaW9Admdlci5rZXJuZWwub3JnPjsgbGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4gbGludXhhcm1Ab3BlbmV1bGVyLm9yZw0KPiBTdWJq ZWN0OiBSZTogW0xpbnV4YXJtXSBSZTogW1BBVENIIGZvciBuZXh0IHYxIDEvMl0gZ3Bpbzogb21h cDogUmVwbGFjZQ0KPiByYXdfc3Bpbl9sb2NrX2lycXNhdmUgd2l0aCByYXdfc3Bpbl9sb2NrIGlu IG9tYXBfZ3Bpb19pcnFfaGFuZGxlcigpDQo+IA0KPiANCj4gDQo+IE9uIDEyLzAyLzIwMjEgMTU6 MTIsIFNvbmcgQmFvIEh1YSAoQmFycnkgU29uZykgd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBHcnlnb3JpaSBTdHJhc2hrbyBbbWFp bHRvOmdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbV0NCj4gPj4gU2VudDogU2F0dXJkYXksIEZlYnJ1 YXJ5IDEzLCAyMDIxIDEyOjUzIEFNDQo+ID4+IFRvOiBTb25nIEJhbyBIdWEgKEJhcnJ5IFNvbmcp IDxzb25nLmJhby5odWFAaGlzaWxpY29uLmNvbT47IEFuZHkgU2hldmNoZW5rbw0KPiA+PiA8YW5k eS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4NCj4gPj4gQ2M6IEFybmQgQmVyZ21hbm4gPGFybmRAa2Vy bmVsLm9yZz47IGx1b2ppYXhpbmcgPGx1b2ppYXhpbmdAaHVhd2VpLmNvbT47DQo+IExpbnVzDQo+ ID4+IFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz47IFNhbnRvc2ggU2hpbGlta2Fy DQo+IDxzc2FudG9zaEBrZXJuZWwub3JnPjsNCj4gPj4gS2V2aW4gSGlsbWFuIDxraGlsbWFuQGtl cm5lbC5vcmc+OyBvcGVuIGxpc3Q6R1BJTyBTVUJTWVNURU0NCj4gPj4gPGxpbnV4LWdwaW9Admdl ci5rZXJuZWwub3JnPjsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4gPj4gbGludXhh cm1Ab3BlbmV1bGVyLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW0xpbnV4YXJtXSBSZTogW1BBVENI IGZvciBuZXh0IHYxIDEvMl0gZ3Bpbzogb21hcDogUmVwbGFjZQ0KPiA+PiByYXdfc3Bpbl9sb2Nr X2lycXNhdmUgd2l0aCByYXdfc3Bpbl9sb2NrIGluIG9tYXBfZ3Bpb19pcnFfaGFuZGxlcigpDQo+ ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEyLzAyLzIwMjEgMTM6MjksIFNvbmcgQmFvIEh1YSAo QmFycnkgU29uZykgd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IEFuZHkgU2hldmNoZW5rbyBbbWFpbHRvOmFuZHkuc2hl dmNoZW5rb0BnbWFpbC5jb21dDQo+ID4+Pj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMiwgMjAy MSAxMTo1NyBQTQ0KPiA+Pj4+IFRvOiBTb25nIEJhbyBIdWEgKEJhcnJ5IFNvbmcpIDxzb25nLmJh by5odWFAaGlzaWxpY29uLmNvbT4NCj4gPj4+PiBDYzogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdv cmlpLnN0cmFzaGtvQHRpLmNvbT47IEFybmQgQmVyZ21hbm4NCj4gPj4+PiA8YXJuZEBrZXJuZWwu b3JnPjsgbHVvamlheGluZyA8bHVvamlheGluZ0BodWF3ZWkuY29tPjsgTGludXMgV2FsbGVpag0K PiA+Pj4+IDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+OyBTYW50b3NoIFNoaWxpbWthciA8c3Nh bnRvc2hAa2VybmVsLm9yZz47DQo+IEtldmluDQo+ID4+Pj4gSGlsbWFuIDxraGlsbWFuQGtlcm5l bC5vcmc+OyBvcGVuIGxpc3Q6R1BJTyBTVUJTWVNURU0NCj4gPj4+PiA8bGludXgtZ3Bpb0B2Z2Vy Lmtlcm5lbC5vcmc+OyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiA+Pj4+IGxpbnV4 YXJtQG9wZW5ldWxlci5vcmcNCj4gPj4+PiBTdWJqZWN0OiBSZTogW0xpbnV4YXJtXSBSZTogW1BB VENIIGZvciBuZXh0IHYxIDEvMl0gZ3Bpbzogb21hcDogUmVwbGFjZQ0KPiA+Pj4+IHJhd19zcGlu X2xvY2tfaXJxc2F2ZSB3aXRoIHJhd19zcGluX2xvY2sgaW4gb21hcF9ncGlvX2lycV9oYW5kbGVy KCkNCj4gPj4+Pg0KPiA+Pj4+IE9uIEZyaSwgRmViIDEyLCAyMDIxIGF0IDEwOjQyOjE5QU0gKzAw MDAsIFNvbmcgQmFvIEh1YSAoQmFycnkgU29uZykgd3JvdGU6DQo+ID4+Pj4+PiBGcm9tOiBHcnln b3JpaSBTdHJhc2hrbyBbbWFpbHRvOmdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbV0NCj4gPj4+Pj4+ IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMTIsIDIwMjEgMTE6MjggUE0NCj4gPj4+Pj4+IE9uIDEy LzAyLzIwMjEgMTE6NDUsIEFybmQgQmVyZ21hbm4gd3JvdGU6DQo+ID4+Pj4+Pj4gT24gRnJpLCBG ZWIgMTIsIDIwMjEgYXQgNjowNSBBTSBTb25nIEJhbyBIdWEgKEJhcnJ5IFNvbmcpDQo+ID4+Pj4+ Pj4gPHNvbmcuYmFvLmh1YUBoaXNpbGljb24uY29tPiB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+Pj4+ Pj4gTm90ZS4gdGhlcmUgaXMgYWxzbyBnZW5lcmljX2hhbmRsZV9pcnEoKSBjYWxsIGluc2lkZS4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU28gZ2VuZXJpY19oYW5kbGVfaXJxKCkgaXMgbm90IHNh ZmUgdG8gcnVuIGluIHRocmVhZCB0aHVzIHJlcXVpcmVzDQo+ID4+Pj4+Pj4+IGFuIGludGVycnVw dC1kaXNhYmxlZCBlbnZpcm9ubWVudCB0byBydW4/IElmIHNvLCBJJ2QgcmF0aGVyIHRoaXMNCj4g Pj4+Pj4+Pj4gaXJxc2F2ZSBtb3ZlZCBpbnRvIGdlbmVyaWNfaGFuZGxlX2lycSgpIHJhdGhlciB0 aGFuIGFza2luZyBldmVyeW9uZQ0KPiA+Pj4+Pj4+PiBjYWxsaW5nIGl0IHRvIGRvIGlycXNhdmUu DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJbiBhIHByZWVtcHQtcnQga2VybmVsLCBpbnRlcnJ1cHRz IGFyZSBydW4gaW4gdGFzayBjb250ZXh0LCBzbyB0aGV5DQo+IGNsZWFybHkNCj4gPj4+Pj4+PiBz aG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQsIHRoYXQgd291bGQg ZGVmZWF0IHRoZQ0KPiA+Pj4+Pj4+IHB1cnBvc2Ugb2YgbWFraW5nIHRoZW0gcHJlZW1wdGlibGUu DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBnZW5lcmljX2hhbmRsZV9pcnEoKSBkb2VzIG5lZWQgdG8g cnVuIHdpdGggaW5faXJxKCk9PXRydWUgdGhvdWdoLA0KPiA+Pj4+Pj4+IGJ1dCB0aGlzIHNob3Vs ZCBiZSBzZXQgYnkgdGhlIGNhbGxlciBvZiB0aGUgZ3Bpb2NoaXAncyBoYW5kbGVyLCBhbmQNCj4g Pj4+Pj4+PiBpdCBpcyBub3Qgc2V0IGJ5IHJhd19zcGluX2xvY2tfaXJxc2F2ZSgpLg0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+IEl0IHdpbGwgcHJvZHVjZSB3YXJuaW5nIGZyb20gX19oYW5kbGVfaXJxX2V2 ZW50X3BlcmNwdSgpLCBhcyB0aGlzIGlzDQo+IElSUQ0KPiA+Pj4+Pj4gZGlzcGF0Y2hlcg0KPiA+ Pj4+Pj4gYW5kIGdlbmVyaWNfaGFuZGxlX2lycSgpIHdpbGwgY2FsbCBvbmUgb2YgaGFuZGxlX2xl dmVsX2lycSBvcg0KPiA+Pj4+IGhhbmRsZV9lZGdlX2lycS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBU aGUgaGlzdG9yeSBiZWhpbmQgdGhpcyBpcyBjb21taXQgNDUwZmE1NGNmZDY2ICgiZ3Bpbzogb21h cDogY29udmVydA0KPiB0bw0KPiA+Pj4+IHVzZQ0KPiA+Pj4+Pj4gZ2VuZXJpYyBpcnEgaGFuZGxl ciIpLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoZSByZXNlbnQgcmVsYXRlZCBkaXNjdXNzaW9uOg0K PiA+Pj4+Pj4gaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjAvMTIvNS8yMDgNCj4gPj4+Pj4NCj4g Pj4+Pj4gT2ssIHNlY29uZCB0aG91Z2h0LiBpcnFzYXZlIGJlZm9yZSBnZW5lcmljX2hhbmRsZV9p cnEoKSB3b24ndCBkZWZlYXQNCj4gPj4+Pj4gdGhlIHB1cnBvc2Ugb2YgcHJlZW1wdGlvbiB0b28g bXVjaCBhcyB0aGUgZGlzcGF0Y2hlZCBpcnEgaGFuZGxlcnMgYnkNCj4gPj4+Pj4gZ3Bpb2NoaXAg d2lsbCBydW4gaW4gdGhlaXIgb3duIHRocmVhZHMgYnV0IG5vdCBpbiB0aGUgdGhyZWFkIG9mDQo+ ID4+Pj4+IGdwaW9jaGlwJ3MgaGFuZGxlci4NCj4gPj4+Pj4NCj4gPj4+Pj4gc28gbG9va3MgbGlr ZSB0aGlzIHBhdGNoIGNhbiBpbXByb3ZlIGJ5Og0KPiA+Pj4+PiAqIG1vdmUgb3RoZXIgcmF3X3Nw aW5fbG9ja19pcnFzYXZlIHRvIHJhd19zcGluX2xvY2s7DQo+ID4+Pj4+ICoga2VlcCB0aGUgcmF3 X3NwaW5fbG9ja19pcnFzYXZlIGJlZm9yZSBnZW5lcmljX2hhbmRsZV9pcnEoKSB0byBtdXRlDQo+ ID4+Pj4+IHRoZSB3YXJuaW5nIGluIGdlbmlycS4NCj4gPj4+Pg0KPiA+Pj4+IElzbid0IHRoZSBp ZGVhIG9mIGlycXNhdmUgaXMgdG8gcHJldmVudCBkZWFkIGxvY2sgZnJvbSB0aGUgcHJvY2VzcyBj b250ZXh0DQo+ID4+IHdoZW4NCj4gPj4+PiB3ZSBnZXQgaW50ZXJydXB0IG9uIHRoZSAqc2FtZSog Q1BVPw0KPiA+Pj4NCj4gPj4+IEFueXdheSwgZ3Bpb2NoaXAgaXMgbW9yZSB0cmlja3kgYXMgaXQg aXMgYWxzbyBhIGlycSBkaXNwYXRjaGVyLiBNb3ZpbmcNCj4gPj4+IHNwaW5fbG9ja19pcnEgdG8g c3Bpbl9sb2NrIGluIHRoZSBpcnEgaGFuZGxlciBvZiBub24taXJxIGRpc3BhdGNoZXINCj4gPj4+ IGRyaXZlciBpcyBhbG1vc3QgYWx3YXlzIGNvcnJlY3QuDQo+ID4+Pg0KPiA+Pj4gQnV0IGZvciBn cGlvY2hpcCwgd291bGQgdGhlIGJlbG93IGJlIHRydWUgdGhvdWdoIGl0IGlzIGFsbW9zdCBhbHdh eSB0cnVlDQo+ID4+PiBmb3Igbm9uLWlycSBkaXNwYXRjaGVyPw0KPiA+Pj4NCj4gPj4+IDEuIFdo aWxlIGdwaW9jaGlwJ3MgaGFuZGxlciBydW5zIGluIGhhcmRJUlEsIGludGVycnVwdHMgYXJlIGRp c2FibGVkLCBzbw0KPiBubw0KPiA+PiBtb3JlDQo+ID4+PiBpbnRlcnJ1cHQgb24gdGhlIHNhbWUg Y3B1IC0+IE5vIGRlYWRsZWFrLg0KPiA+Pj4NCj4gPj4+IDIuIFdoaWxlIGdwaW9jaGlwJ3MgaGFu ZGxlciBydW5zIGluIHRocmVhZHMNCj4gPj4+ICogb3RoZXIgbm9uLXRocmVhZGVkIGludGVycnVw dHMgc3VjaCBhcyB0aW1lciB0aWNrIG1pZ2h0IGNvbWUgb24gc2FtZSBjcHUsDQo+ID4+PiBidXQg dGhleSBhcmUgYW4gaXJyZWxldmFudCBkcml2ZXIgYW5kIHRodXMgdGhleSBhcmUgbm90IGdvaW5n IHRvIGdldCB0aGUNCj4gPj4+IGxvY2sgZ3Bpb2NoaXAncyBoYW5kbGVyIGhhcyBoZWxkLiAtPiBu byBkZWFkbG9jay4NCj4gPj4+ICogb3RoZXIgZGV2aWNlcyBhdHRhY2hlZCB0byB0aGlzIGdwaW9j aGlwIG1pZ2h0IGdldCBpbnRlcnJ1cHRzLCBzaW5jZQ0KPiA+Pj4gZ3Bpb2NoaXAncyBoYW5kbGVy IGlzIHJ1bm5pbmcgaW4gdGhyZWFkcywgcmF3X3NwaW5fbG9jayBjYW4gaGVscCBhdm9pZA0KPiA+ Pj4gbWVzc2luZyB1cCB0aGUgY3JpdGljYWwgZGF0YSBieSB0d28gdGhyZWFkcyAtPiBzdGlsbCBu byBkZWFkbG9jay4NCj4gPj4NCj4gPj4gVGhlIHdvcnN0IFJUIGNhc2UgSSBjYW4gaW1hZ2luZSBp cyB3aGVuIGdwaW8gQVBJIGlzIHN0aWxsIGNhbGxlZCBmcm9tIGhhcmQNCj4gSVJRDQo+ID4+IGNv bnRleHQgYnkgc29tZQ0KPiA+PiBvdGhlciBkZXZpY2UgZHJpdmVyIC0gc29tZSB0b2dnbGluZyBm b3IgZXhhbXBsZS4NCj4gPj4gTm90ZS4gUlQgb3IgInRocmVhZGlycXMiIGRvZXMgbm90IG1lYW4g Z3Bpb2NoaXAgYmVjb21lIHNsZWVwYWJsZS4NCj4gPj4NCj4gPj4gSW4gdGhpcyBjYXNlOg0KPiA+ PiAgICB0aHJlYWRlZCBoYW5kbGVyDQo+ID4+ICAgICAgcmF3X3NwaW5fbG9jaw0KPiA+PiAJSVJR IGZyb20gb3RoZXIgZGV2aWNlDQo+ID4+ICAgICAgICAgICAgIGhhcmRfaXJxIGhhbmRsZXINCj4g Pj4gICAgICAgICAgICAgICBncGlvZF94KCkNCj4gPj4gCQlyYXdfc3Bpbl9sb2NrX2lycXNhdmUo KSAtLSBvb3BzDQo+ID4NCj4gPiBBY3R1YWxseSBubyBvb3BzIGhlcmUuIG90aGVyIGRyaXZlcnMg ZG9uJ3QgaG9sZCB0aGUgc2FtZQ0KPiA+IHNwaW5sb2NrIG9mIHRoaXMgZHJpdmVyLg0KPiANCj4g aHVoLg0KPiBkcml2ZXIvbW9kdWxlIEEgcmVxdWVzdHMgZ3BpbyBhbmQgdXNlcyBpdCBpbiBpdHMg aGFyZF9pcnEgaGFuZGxlciBieSBjYWxsaW5nDQo+IEdQSU8gQVBJDQo+IChMaWtlIGdwaW9kX3Nl dF92YWx1ZSgpKSwgdGhvc2Ugd2lsbCBnbyB0byB0aGlzIGRyaXZlciBhbmQgZW5kIHVwIGluDQo+ IG9tYXBfZ3Bpb19zZXQoKS4NCg0KWWVzLCB0aGlzIGNvdWxkIGJlIGEgY29ybmVyIHRob3VnaCBp dCBkb2Vzbid0IG1ha2UgYW55IHNlbnNlDQp0byB1c2UgSVJRRl9OT19USFJFQUQgZm9yIHRoaXMg a2luZCBvZiBkcml2ZXIvbW9kdWxlIEEgb24gcnQNCmFzIHRoaXMgd2lsbCBkZWZlYXQgdGhlIHB1 cnBvc2Ugb2YgcHJlZW1wdGlvbiBieSBhZGRpbmcgYSBsb25nDQppcnFzb2ZmIHNlY3Rpb24uDQoN ClNpbmNlIGl0IGNhbm5vdCBjb21wbGV0ZWx5IGF2b2lkIHRoaXMgbG9ja2RlcCBpc3N1ZSwgSSB0 aGluaw0KdGhhdCBpdCBpcyBwb2ludGxlc3MgdG8gY29udGludWUgc3RydWdnbGluZyB3aXRoIHRo aXMgcGF0Y2gNCndoaWNoIGlzIGNoYW5naW5nIGFuIGlycSBkaXNwYXRjaGVyIGRyaXZlciBhbnkg bW9yZS4gDQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4gQnV0IGluIGdlbmVyYWwsIHdoYXQgYXJlIHRo ZSBiZW5lZml0IG9mIHN1Y2ggY2hhbmdlcyBhdCBhbGwsIGV4Y2VwdCBiZXR0ZXINCj4gbWFya2lu Zw0KPiA+PiBjYWxsIGNvbnRleHQgYW5ub3RhdGlvbiwNCj4gPj4gc28gd2UgYXJlIHNwZW5kaW5n IHNvIG11Y2ggdGltZSBvbiBpdD8NCj4gPg0KPiA+IFRCSCwgdGhlIGJlbmVmaXQgaXMgcmVhbGx5 IHRpbnkgZXhjZXB0IGNvZGUgY2xlYW51cC4ganVzdCBjdXJpb3VzIGhvdyB0aGluZ3MNCj4gY291 bGQNCj4gPiBiZSBkaWZmZXJlbnQgd2hpbGUgaXQgaGFwcGVucyBpbiBhbiBpcnEgZGlzcGF0Y2hl cidzIGhhbmRsZXIuDQo+IA0KPiANCj4gLS0NCj4gQmVzdCByZWdhcmRzLA0KPiBHcnlnb3JpaQ0K DQpUaGFua3MNCkJhcnJ5DQoNCg==