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 X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 704F7C433E1 for ; Fri, 17 Jul 2020 11:04:08 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F22D20768 for ; Fri, 17 Jul 2020 11:04:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="UGCNaKCA"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="dqzm/OI6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F22D20768 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Subject:To:From: Message-ID:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6Izn/B1tVCAOTJzCqibx2YFQvYFDEgHahZ/IpHicAFc=; b=UGCNaKCAXGKQ3FEsIH2zSWIdJ /uOmayGVlXT2cuDuva1+wk4YHzIS41nvbtQmNUDf8MiE62jKjXjHCgxPIMKNF1stXGPnPAcRdDW/5 eDAilj97TiCcVylEfkOLw8FZFgPRZXbWL5GaZCC0LXDbojf3ByzhD2krlgUh+oM9ZCiprZKc8M8WS qaqWNAQlx/K29l7+alatVtJZVv+hLX6AeOYFE8Eq6P7MA4iWQjnVRoEKTDxltXXBtzicr+iJ4l76z +IGt546UJQTBnLsXcGYnK1Fp7Q4axmNjdxC12HQRy43F3uhHENwPSKuFGKkPK0TSzEBIit0jNlUj9 rwbRG3+GA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jwO8a-00063X-LU; Fri, 17 Jul 2020 11:02:44 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jwO8X-000636-PS for linux-arm-kernel@lists.infradead.org; Fri, 17 Jul 2020 11:02:42 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CF84D20717; Fri, 17 Jul 2020 11:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594983761; bh=bbLMObkNrniR80ZdzHzteBsWJ5zcpRCBrOI2j6GQ4W0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=dqzm/OI6mZOxyuUKPJ7jFTK+TsDEjToHh/tLOy9xUBQ0ukZBFD8kQt8fFOxEk03fW BwU1AfbENm2NKpfpqLKq+ks8pBss9yT0+cwgjABMePaatnRza0S8ZMUDZPZknMAAlL 3TXECbw7eZtO0cuZCTRvKCVwNpJnABIlFHvSRfbE= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jwO8V-00CbW3-DI; Fri, 17 Jul 2020 12:02:39 +0100 Date: Fri, 17 Jul 2020 12:02:38 +0100 Message-ID: <87imemxv3l.wl-maz@kernel.org> From: Marc Zyngier To: Suman Anna Subject: Re: [PATCHv3 3/6] irqchip/irq-pruss-intc: Add support for shared and invalid interrupts In-Reply-To: <3a73bb14-9f7b-970d-fbae-f9c7bb7bdf1e@ti.com> References: <1593699479-1445-1-git-send-email-grzegorz.jaszczyk@linaro.org> <1593699479-1445-4-git-send-email-grzegorz.jaszczyk@linaro.org> <2a6b0391f1395eb0aa15ffee6769184e@kernel.org> <3a73bb14-9f7b-970d-fbae-f9c7bb7bdf1e@ti.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/26.3 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: s-anna@ti.com, grzegorz.jaszczyk@linaro.org, tglx@linutronix.de, jason@lakedaemon.net, robh+dt@kernel.org, lee.jones@linaro.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, david@lechnology.com, wmills@ti.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200717_070241_965110_36BB4B1F X-CRM114-Status: GOOD ( 40.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Grzegorz Jaszczyk , jason@lakedaemon.net, linux-kernel@vger.kernel.org, robh+dt@kernel.org, tglx@linutronix.de, linux-omap@vger.kernel.org, lee.jones@linaro.org, wmills@ti.com, linux-arm-kernel@lists.infradead.org, david@lechnology.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCAxMCBKdWwgMjAyMCAyMTo1OToxNyArMDEwMCwKU3VtYW4gQW5uYSA8cy1hbm5hQHRp LmNvbT4gd3JvdGU6CgpIaSBTdW1hbiwKClsuLi5dCgo+Cj4gSGkgTWFyYywKPiAKPiBPbiA3LzIv MjAgMTI6NDQgUE0sIE1hcmMgWnluZ2llciB3cm90ZToKPiA+IE9uIDIwMjAtMDctMDIgMTU6MTcs IEdyemVnb3J6IEphc3pjenlrIHdyb3RlOgo+ID4+IEZyb206IFN1bWFuIEFubmEgPHMtYW5uYUB0 aS5jb20+Cj4gPj4gCj4gPj4gVGhlIFBSVVNTIElOVEMgaGFzIGEgZml4ZWQgbnVtYmVyIG9mIG91 dHB1dCBpbnRlcnJ1cHQgbGluZXMgdGhhdCBhcmUKPiA+PiBjb25uZWN0ZWQgdG8gYSBudW1iZXIg b2YgcHJvY2Vzc29ycyBvciBvdGhlciBQUlVTUyBpbnN0YW5jZXMgb3Igb3RoZXIKPiA+PiBkZXZp Y2VzIChsaWtlIERNQSkgb24gdGhlIFNvQy4gVGhlIG91dHB1dCBpbnRlcnJ1cHQgbGluZXMgMiB0 aHJvdWdoIDkKPiA+PiBhcmUgdXN1YWxseSBjb25uZWN0ZWQgdG8gdGhlIG1haW4gQXJtIGhvc3Qg cHJvY2Vzc29yIGFuZCBhcmUgcmVmZXJyZWQKPiA+PiB0byBhcyBob3N0IGludGVycnVwdHMgMCB0 aHJvdWdoIDcgZnJvbSBBUk0vTVBVIHBlcnNwZWN0aXZlLgo+ID4+IAo+ID4+IEFsbCBvZiB0aGVz ZSA4IGhvc3QgaW50ZXJydXB0cyBhcmUgbm90IGFsd2F5cyBleGNsdXNpdmVseSBjb25uZWN0ZWQK PiA+PiB0byB0aGUgQXJtIGludGVycnVwdCBjb250cm9sbGVyLiBTb21lIFNvQ3MgaGF2ZSBzb21l IGludGVycnVwdCBsaW5lcwo+ID4+IG5vdCBjb25uZWN0ZWQgdG8gdGhlIEFybSBpbnRlcnJ1cHQg Y29udHJvbGxlciBhdCBhbGwsIHdoaWxlIGEgZmV3IG90aGVycwo+ID4+IGhhdmUgdGhlIGludGVy cnVwdCBsaW5lcyBjb25uZWN0ZWQgdG8gbXVsdGlwbGUgcHJvY2Vzc29ycyBpbiB3aGljaCB0aGV5 Cj4gPj4gbmVlZCB0byBiZSBwYXJ0aXRpb25lZCBhcyBwZXIgU29DIGludGVncmF0aW9uIG5lZWRz LiBGb3IgZXhhbXBsZSwgQU00Mzd4Cj4gPj4gYW5kIDY2QUsyRyBTb0NzIGhhdmUgMiBQUlVTUyBp bnN0YW5jZXMgZWFjaCBhbmQgaGF2ZSB0aGUgaG9zdCBpbnRlcnJ1cHQgNQo+ID4+IGNvbm5lY3Rl ZCB0byB0aGUgb3RoZXIgUFJVU1MsIHdoaWxlIEFNMzM1eCBoYXMgaG9zdCBpbnRlcnJ1cHQgMCBz aGFyZWQKPiA+PiBiZXR3ZWVuIE1QVSBhbmQgVFNDX0FEQyBhbmQgaG9zdCBpbnRlcnJ1cHRzIDYg JiA3IHNoYXJlZCBiZXR3ZWVuIE1QVSBhbmQKPiA+PiBhIERNQSBjb250cm9sbGVyLgo+ID4+IAo+ ID4+IEFkZCBzdXBwb3J0IHRvIHRoZSBQUlVTUyBJTlRDIGRyaXZlciB0byBhbGxvdyBib3RoIHRo ZXNlIHNoYXJlZCBhbmQKPiA+PiBpbnZhbGlkIGludGVycnVwdHMgYnkgbm90IHJldHVybmluZyBh IGZhaWx1cmUgaWYgYW55IG9mIHRoZXNlIGludGVycnVwdHMKPiA+PiBhcmUgc2tpcHBlZCBmcm9t IHRoZSBjb3JyZXNwb25kaW5nIElOVEMgRFQgbm9kZS4KPiA+IAo+ID4gVGhhdCdzIG5vdCBleGFj dGx5ICJhZGRpbmcgc3VwcG9ydCIsIGlzIGl0PyBJdCByZWFsbHkgaXMgImlnbm9yZSB0aGVzZQo+ ID4gaW50ZXJydXB0cyBiZWNhdXNlIHRoZXkgYXJlIHVzZWxlc3MgZnJvbSB0aGUgbWFpbiBDUFUn cyBwZXJzcGVjdGl2ZSIsCj4gPiByaWdodD8KPiAKPiBDb3JyZWN0LiBXZSBjYW4gcmVwaHJhc2Ug dGhpcyB0byBzb21ldGhpbmcgbGlrZQo+ICJBZGQgbG9naWMgdG8gdGhlIFBSVVNTIElOVEMgZHJp dmVyIHRvIGlnbm9yZS4uIgo+IAo+ID4gCj4gPj4gCj4gPj4gU2lnbmVkLW9mZi1ieTogU3VtYW4g QW5uYSA8cy1hbm5hQHRpLmNvbT4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBKYXN6Y3p5 ayA8Z3J6ZWdvcnouamFzemN6eWtAbGluYXJvLm9yZz4KPiA+PiAtLS0KPiA+PiB2Mi0+djM6Cj4g Pj4gLSBFeHRyYSBjaGVja3MgZm9yIChpbnRjLT5pcnFzW2ldKSBpbiBlcnJvci9yZW1vdmUgcGF0 aCB3YXMgbW92ZWQgZnJvbQo+ID4+IMKgICJpcnFjaGlwL2lycS1wcnVzcy1pbnRjOiBBZGQgYSBQ UlVTUyBpcnFjaGlwIGRyaXZlciBmb3IgUFJVU1MKPiA+PiDCoCBpbnRlcnJ1cHRzIiB0byB0aGlz IHBhdGNoCj4gPj4gdjEtPnYyOgo+ID4+IC0gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9w YXRjaC8xMTA2OTc1Ny8KPiA+PiAtLS0KPiA+PiDCoGRyaXZlcnMvaXJxY2hpcC9pcnEtcHJ1c3Mt aW50Yy5jIHwgNzMKPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t Cj4gPj4gwqAxIGZpbGUgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK PiA+PiAKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFjaGlwL2lycS1wcnVzcy1pbnRjLmMK PiA+PiBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtcHJ1c3MtaW50Yy5jCj4gPj4gaW5kZXggZmIzZGRh My4uNDljOTM2ZiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvaXJxLXBydXNzLWlu dGMuYwo+ID4+ICsrKyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtcHJ1c3MtaW50Yy5jCj4gPj4gQEAg LTY1LDExICs2NSwxNSBAQAo+ID4+IMKgICogQGlycXM6IGtlcm5lbCBpcnEgbnVtYmVycyBjb3Jy ZXNwb25kaW5nIHRvIFBSVVNTIGhvc3QgaW50ZXJydXB0cwo+ID4+IMKgICogQGJhc2U6IGJhc2Ug dmlydHVhbCBhZGRyZXNzIG9mIElOVEMgcmVnaXN0ZXIgc3BhY2UKPiA+PiDCoCAqIEBkb21haW46 IGlycSBkb21haW4gZm9yIHRoaXMgaW50ZXJydXB0IGNvbnRyb2xsZXIKPiA+PiArICogQHNoYXJl ZF9pbnRyOiBiaXQtbWFwIGRlbm90aW5nIGlmIHRoZSBNUFUgaG9zdCBpbnRlcnJ1cHQgaXMgc2hh cmVkCj4gPiAKPiA+IG5pdDogYml0bWFwCj4gCj4gb2sKPiAKPiA+IAo+ID4+ICsgKiBAaW52YWxp ZF9pbnRyOiBiaXQtbWFwIGRlbm90aW5nIGlmIGhvc3QgaW50ZXJydXB0IGlzIG5vdAo+ID4+IGNv bm5lY3RlZCB0byBNUFUKPiA+PiDCoCAqLwo+ID4+IMKgc3RydWN0IHBydXNzX2ludGMgewo+ID4+ IMKgwqDCoMKgIHVuc2lnbmVkIGludCBpcnFzW01BWF9OVU1fSE9TVF9JUlFTXTsKPiA+PiDCoMKg wqDCoCB2b2lkIF9faW9tZW0gKmJhc2U7Cj4gPj4gwqDCoMKgwqAgc3RydWN0IGlycV9kb21haW4g KmRvbWFpbjsKPiA+PiArwqDCoMKgIHUxNiBzaGFyZWRfaW50cjsKPiA+PiArwqDCoMKgIHUxNiBp bnZhbGlkX2ludHI7Cj4gPiAKPiA+IFBsZWFzZSByZXByZXNlbnQgYml0bWFwcyBhcyBhbiB1bnNp Z25lZCBsb25nLgo+IAo+IG9rLiBXZSBoYXZlIGF0bW9zdCA4IGludGVycnVwdHMgY29taW5nIGlu LCBidXQgYWdyZWUgb24gdGhlIGNoYW5nZQo+IHNpbmNlIHdlIGFyZSB1c2luZyB0aGUgQklUKCkg bWFjcm8gYmVsb3cuCj4gCj4gPiAKPiA+PiDCoH07Cj4gPj4gCj4gPj4gwqBzdGF0aWMgaW5saW5l IHUzMiBwcnVzc19pbnRjX3JlYWRfcmVnKHN0cnVjdCBwcnVzc19pbnRjICppbnRjLAo+ID4+IHVu c2lnbmVkIGludCByZWcpCj4gPj4gQEAgLTIyMiw3ICsyMjYsOCBAQCBzdGF0aWMgaW50IHBydXNz X2ludGNfcHJvYmUoc3RydWN0Cj4gPj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+IMKgwqDC oMKgwqDCoMKgwqAgImhvc3RfaW50cjQiLCAiaG9zdF9pbnRyNSIsICJob3N0X2ludHI2IiwgImhv c3RfaW50cjciLCB9Owo+ID4+IMKgwqDCoMKgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5k ZXY7Cj4gPj4gwqDCoMKgwqAgc3RydWN0IHBydXNzX2ludGMgKmludGM7Cj4gPj4gLcKgwqDCoCBp bnQgaSwgaXJxOwo+ID4+ICvCoMKgwqAgaW50IGksIGlycSwgY291bnQ7Cj4gPj4gK8KgwqDCoCB1 OCB0ZW1wX2ludHJbTUFYX05VTV9IT1NUX0lSUVNdID0geyAwIH07Cj4gPj4gCj4gPj4gwqDCoMKg wqAgaW50YyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqaW50YyksIEdGUF9LRVJORUwpOwo+ ID4+IMKgwqDCoMKgIGlmICghaW50YykKPiA+PiBAQCAtMjM1LDYgKzI0MCw1MiBAQCBzdGF0aWMg aW50IHBydXNzX2ludGNfcHJvYmUoc3RydWN0Cj4gPj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ID4+IMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIFBUUl9FUlIoaW50Yy0+YmFzZSk7Cj4gPj4gwqDC oMKgwqAgfQo+ID4+IAo+ID4+ICvCoMKgwqAgY291bnQgPSBvZl9wcm9wZXJ0eV9yZWFkX3Zhcmlh YmxlX3U4X2FycmF5KGRldi0+b2Zfbm9kZSwKPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAidGksaXJxcy1yZXNlcnZlZCIsCj4gPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVtcF9p bnRyLCAwLAo+ID4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIE1BWF9OVU1fSE9TVF9JUlFTKTsKPiA+PiArwqDCoMKgIC8qCj4gPj4gK8KgwqDC oMKgICogVGhlIGlycXMtcmVzZXJ2ZWQgaXMgdXNlZCBvbmx5IGZvciBzb21lIFNvQydzIHRoZXJl Zm9yZSBub3QKPiA+PiBoYXZpbmcKPiA+PiArwqDCoMKgwqAgKiB0aGlzIHByb3BlcnR5IGlzIHN0 aWxsIHZhbGlkCj4gPj4gK8KgwqDCoMKgICovCj4gPj4gK8KgwqDCoCBpZiAoY291bnQgPT0gLUVJ TlZBTCkKPiA+PiArwqDCoMKgwqDCoMKgwqAgY291bnQgPSAwOwo+ID4+ICvCoMKgwqAgaWYgKGNv dW50IDwgMCkKPiA+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGNvdW50Owo+ID4+ICsKPiA+PiAr wqDCoMKgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4gPj4gK8KgwqDCoMKgwqDCoMKg IGlmICh0ZW1wX2ludHJbaV0gPj0gTUFYX05VTV9IT1NUX0lSUVMpIHsKPiA+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBkZXZfd2FybihkZXYsICJpZ25vcmluZyBpbnZhbGlkIHJlc2VydmVkIGly cSAlZFxuIiwKPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVtcF9pbnRy W2ldKTsKPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPiA+PiArwqDCoMKg wqDCoMKgwqAgfQo+ID4+ICsKPiA+PiArwqDCoMKgwqDCoMKgwqAgaW50Yy0+aW52YWxpZF9pbnRy IHw9IEJJVCh0ZW1wX2ludHJbaV0pOwo+ID4+ICvCoMKgwqAgfQo+ID4+ICsKPiA+PiArwqDCoMKg IGNvdW50ID0gb2ZfcHJvcGVydHlfcmVhZF92YXJpYWJsZV91OF9hcnJheShkZXYtPm9mX25vZGUs Cj4gPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgInRpLGlycXMtc2hhcmVkIiwKPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0ZW1wX2ludHIsIDAsCj4gPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTUFYX05VTV9IT1NUX0lSUVMp Owo+ID4+ICvCoMKgwqAgLyoKPiA+PiArwqDCoMKgwqAgKiBUaGUgaXJxcy1zaGFyZWQgaXMgdXNl ZCBvbmx5IGZvciBzb21lIFNvQydzIHRoZXJlZm9yZSBub3QgaGF2aW5nCj4gPj4gK8KgwqDCoMKg ICogdGhpcyBwcm9wZXJ0eSBpcyBzdGlsbCB2YWxpZAo+ID4+ICvCoMKgwqDCoCAqLwo+ID4+ICvC oMKgwqAgaWYgKGNvdW50ID09IC1FSU5WQUwpCj4gPj4gK8KgwqDCoMKgwqDCoMKgIGNvdW50ID0g MDsKPiA+PiArwqDCoMKgIGlmIChjb3VudCA8IDApCj4gPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVy biBjb3VudDsKPiA+PiArCj4gPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykg ewo+ID4+ICvCoMKgwqDCoMKgwqDCoCBpZiAodGVtcF9pbnRyW2ldID49IE1BWF9OVU1fSE9TVF9J UlFTKSB7Cj4gPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X3dhcm4oZGV2LCAiaWdub3Jp bmcgaW52YWxpZCBzaGFyZWQgaXJxICVkXG4iLAo+ID4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB0ZW1wX2ludHJbaV0pOwo+ID4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv bnRpbnVlOwo+ID4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gPj4gKwo+ID4+ICvCoMKgwqDCoMKgwqDC oCBpbnRjLT5zaGFyZWRfaW50ciB8PSBCSVQodGVtcF9pbnRyW2ldKTsKPiA+PiArwqDCoMKgIH0K PiA+PiArCj4gPiAKPiA+IFlvdSBwcm9iYWJseSB3YW50IHRvIG1vdmUgdGhpcyBpbiBhIHNlcGFy YXRlIGZ1bmN0aW9uLCBzaW5jZSB5b3UgcG9wdWxhdGUgYQo+ID4gY29tbW9uIHN0cnVjdHVyZS4K PiA+IAo+ID4+IMKgwqDCoMKgIHBydXNzX2ludGNfaW5pdChpbnRjKTsKPiA+PiAKPiA+PiDCoMKg wqDCoCAvKiBhbHdheXMgNjQgZXZlbnRzICovCj4gPj4gQEAgLTI0NCw4ICsyOTUsMTQgQEAgc3Rh dGljIGludCBwcnVzc19pbnRjX3Byb2JlKHN0cnVjdAo+ID4+IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiA+PiDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+ID4+IAo+ID4+IMKgwqDC oMKgIGZvciAoaSA9IDA7IGkgPCBNQVhfTlVNX0hPU1RfSVJRUzsgaSsrKSB7Cj4gPj4gK8KgwqDC oMKgwqDCoMKgIGlmIChpbnRjLT5pbnZhbGlkX2ludHIgJiBCSVQoaSkpCj4gPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgY29udGludWU7Cj4gPj4gKwo+ID4+IMKgwqDCoMKgwqDCoMKgwqAgaXJx ID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgaXJxX25hbWVzW2ldKTsKPiA+PiDCoMKg wqDCoMKgwqDCoMKgIGlmIChpcnEgPD0gMCkgewo+ID4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmIChpbnRjLT5zaGFyZWRfaW50ciAmIEJJVChpKSkKPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+ID4gCj4gPiBJIGRvbid0IHJlYWxseSB1bmRlcnN0YW5k IHdoeSB5b3UgYXJlIHRyZWF0aW5nIHRoZXNlICJzaGFyZWQiIGludGVycnVwdHMKPiA+IGRpZmZl cmVudGx5IGZyb20gdGhlIGludmFsaWQgb25lcy4gSW4gYWxsIGNhc2VzLCB0aGV5IHNob3VsZG4n dCBiZSB1c2VkLgo+IAo+IFRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBpbiBob3cgd2UgaGFuZGxl IGl0LCBidXQgdGhlIGRpZmZlcmVuY2UgaXMKPiB0aGF0IGFuICJpbnZhbGlkIiBvbmUgaXMgbmV2 ZXIgZXZlbiBjb25uZWN0ZWQgdG8gdGhlIEFSTSBpbnRlcnJ1cHQKPiBjb250cm9sbGVyLCB3aGls ZSB0aGUgInNoYXJlZCIgb25lIGlzIGEgY2hvaWNlLiBTbywgdW5sZXNzIHRoaXMKPiBpbnRlcnJ1 cHQgaXMgYmVpbmcgdXNlZC9oYW5kbGVkIGJ5IGEgZGlmZmVyZW50IHByb2Nlc3Nvci9lbnRpdHks IHlvdQo+IHdvdWxkIG5vdCBzZWUgdGhpcyBza2lwcGVkIGZyb20gdGhlIGR0cyBub2RlLgoKQW5k IEknbSBzYXlpbmcgdGhhdCBhbGwgdGhhdCBtYXR0ZXJzIGlzIHRoYXQgeW91IGFyZSBkaXNjYXJk aW5nIHRoZXNlCmludGVycnVwdHMuIFdoZXRoZXIgdGhleSBhcmUgZmxhZ2dlZCBpbnZhbGlkIG9y IHNoYXJlZCwgdGhleSBhcmUgbm90CmF2YWlsYWJsZSB0byBMaW51eC4gU28gdGhlIGRpZmZlcmVu Y2UgaW4gaGFuZGxpbmcgaXMgcG9pbnRsZXNzIGFuZApvbmx5IG1ha2VzIGl0IGhhcmRlciB0byB1 bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBkb2luZy4KClRoYW5rcywKCglNLgoKLS0gCldpdGhvdXQg ZGV2aWF0aW9uIGZyb20gdGhlIG5vcm0sIHByb2dyZXNzIGlzIG5vdCBwb3NzaWJsZS4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK