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.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 4C393C433E2 for ; Fri, 26 Mar 2021 15:36:30 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 BFF6961A1E for ; Fri, 26 Mar 2021 15:36:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BFF6961A1E 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=RUUdDyOJuxToIsknRdnUZJfuV/k+QEcqpXwi6n+ONBk=; b=npRA/jfLWYBZakJM1GQN5Hx+g BD3gti5XiKZeFVJCTTL+JfwULgw486c9Y6jp7elwoc8WtFZkf9r9YlARg5WMwzNB6PTzJ6QiUF59i IvHeeIhd2vi/zmOhwyTjITc6oDTNETb58nnoXRDboJNcP3Tc2Xjwjzrwig3BVD2ZcMdRTyx5d0rUR dQreDXBKdSpcP1VEWzplkPJFhQ7wcu9nWHT5eXxExL53ZuHZZU/f/h4IoPlZ6gXYbzCMuu/iWtgfZ 6esBCYnyl+9ossSn5y9MFG2Pk/BXlx4+CbP87j/PkbFMErm2IHlf3FuzifXeNRO8q7Z4iOXoHoxR4 j1aUhK9HQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lPoU9-003thi-Jx; Fri, 26 Mar 2021 15:34:53 +0000 Received: from mail.kernel.org ([198.145.29.99]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lPoU4-003thH-R0 for linux-arm-kernel@lists.infradead.org; Fri, 26 Mar 2021 15:34:51 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 151DB619FC; Fri, 26 Mar 2021 15:34:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1616772887; bh=mVf/Y9grvuij0pYC1c/t4rakt4mmSPGNv+fH3PoHblI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LKRMOcLr/jWF3fA77tNtyqDS7KpUz39l9kXdaOeyM26YPymsL4EhdK/AS21hgSBbK ZO52LwxKQCJhDl2mOuM74yPKP/AnvQMW8nhT7OfdIOXakHMg9s3Sk20kNo0f/wwWIq Eto+Uh4R5sKO419s7/bikCUsQSlFFnAOm4+zF2PJeeUw8DF7VoEsmtPMMF2N7p1n6h PWVZXloyyhlFLNUuUMP1ulmO8O8FEb6AKoWnHN5Q//hDaRkXpEgsh8LE9FTV3kVzET T+6cLVwpNTP9NrnHMS6neqJLjKZCkN+bXmNCKzoqSOmxvEiQYObChLgzG9MfHT1Z6w gpGlyILctFzHg== Received: by pali.im (Postfix) id 783A9842; Fri, 26 Mar 2021 16:34:44 +0100 (CET) Date: Fri, 26 Mar 2021 16:34:44 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= Cc: vtolkm@gmail.com, Bjorn Helgaas , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rob Herring , Ilias Apalodimas , Marek =?utf-8?B?QmVow7pu?= , Thomas Petazzoni Subject: Re: PCI trouble on mvebu (Turris Omnia) Message-ID: <20210326153444.cdccc3e2axqxzejy@pali> References: <87zh42lfv6.fsf@toke.dk> <20201102152403.4jlmcaqkqeivuypm@pali> <877dr3lpok.fsf@toke.dk> <20210315195806.iqdt5wvvkvpmnep7@pali> <20210316092534.czuondwbg3tqjs6w@pali> <87h7l8axqp.fsf@toke.dk> <20210318231629.vhix2cqpt25bgrne@pali> <20210326125028.tyqkcc5fvaqbwqkn@pali> <874kgyc4yg.fsf@toke.dk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <874kgyc4yg.fsf@toke.dk> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210326_153449_227036_D889D166 X-CRM114-Status: GOOD ( 52.12 ) 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-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 T24gRnJpZGF5IDI2IE1hcmNoIDIwMjEgMTY6MjU6MjcgVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu IHdyb3RlOgo+IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+IHdyaXRlczoKPiAKPiA+IE9u IEZyaWRheSAxOSBNYXJjaCAyMDIxIDAwOjE2OjI5IFBhbGkgUm9ow6FyIHdyb3RlOgo+ID4+IE9u IFRodXJzZGF5IDE4IE1hcmNoIDIwMjEgMjM6NDM6NTggVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu IHdyb3RlOgo+ID4+ID4gUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4gd3JpdGVzOgo+ID4+ ID4gCj4gPj4gPiA+IE9uIE1vbmRheSAxNSBNYXJjaCAyMDIxIDIwOjU4OjA2IFBhbGkgUm9ow6Fy IHdyb3RlOgo+ID4+ID4gPj4gT24gTW9uZGF5IDAyIE5vdmVtYmVyIDIwMjAgMTY6NTQ6MzUgVG9r ZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIHdyb3RlOgo+ID4+ID4gPj4gPiBQYWxpIFJvaMOhciA8cGFs aUBrZXJuZWwub3JnPiB3cml0ZXM6Cj4gPj4gPiA+PiA+IAo+ID4+ID4gPj4gPiA+IE9uIFNhdHVy ZGF5IDMxIE9jdG9iZXIgMjAyMCAxMzo0OTo0OSBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gd3Jv dGU6Cj4gPj4gPiA+PiA+ID4+ICLihKLWn+KYu9KHzK0g0bwg0okgwq4iIDx2dG9sa21AZ29vZ2xl bWFpbC5jb20+IHdyaXRlczoKPiA+PiA+ID4+ID4gPj4gCj4gPj4gPiA+PiA+ID4+ID4gT24gMzAv MTAvMjAyMCAxNToyMywgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gPj4gPiA+PiA+ID4+ID4+IE9uIEZy aWRheSAzMCBPY3RvYmVyIDIwMjAgMTQ6MDI6MjIgVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIHdy b3RlOgo+ID4+ID4gPj4gPiA+PiA+Pj4gUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4gd3Jp dGVzOgo+ID4+ID4gPj4gPiA+PiA+Pj4+IE15IGV4cGVyaWVuY2Ugd2l0aCB0aGF0IFdMRTkwMFZY IGNhcmQsIGFhcmR2YXJrIGRyaXZlciBhbmQgYXNwbSBjb2RlOgo+ID4+ID4gPj4gPiA+PiA+Pj4+ Cj4gPj4gPiA+PiA+ID4+ID4+Pj4gTGluayB0cmFpbmluZyBpbiBHRU4yIG1vZGUgZm9yIHRoaXMg Y2FyZCBzdWNjZWVkIG9ubHkgb25jZSBhZnRlciByZXNldC4KPiA+PiA+ID4+ID4gPj4gPj4+PiBS ZXBlYXRlZCBsaW5rIHJldHJhaW5pbmcgZmFpbHMgYW5kIGl0IGZhaWxzIGV2ZW4gd2hlbiBhYXJk dmFyayBpcwo+ID4+ID4gPj4gPiA+PiA+Pj4+IHJlY29uZmlndXJlZCB0byBHRU4xIG1vZGUuIFJl c2V0IHZpYSBQRVJTVCMgc2lnbmFsIGlzIHJlcXVpcmVkIHRvIGhhdmUKPiA+PiA+ID4+ID4gPj4g Pj4+PiB3b3JraW5nIGxpbmsgdHJhaW5pbmcuCj4gPj4gPiA+PiA+ID4+ID4+Pj4KPiA+PiA+ID4+ ID4gPj4gPj4+PiBXaGF0IEkgZGlkIGluIGFhcmR2YXJrIGRyaXZlcjogU2V0IG1vZGUgdG8gR0VO MiwgZG8gbGluayB0cmFpbmluZy4gSWYKPiA+PiA+ID4+ID4gPj4gPj4+PiBzdWNjZXNzIHJlYWQg Im5lZ290aWF0ZWQgbGluayBzcGVlZCIgZnJvbSAiTGluayBDb250cm9sIFN0YXR1cyBSZWdpc3Rl ciIKPiA+PiA+ID4+ID4gPj4gPj4+PiAoZm9yIFdMRTkwMFZYIGl0IGlzIDB4MSAtIEdFTjEpIGFu ZCBzZXQgaXQgaW50byBhYXJkdmFyay4gQW5kIHRoZW4KPiA+PiA+ID4+ID4gPj4gPj4+PiByZXRy YWluIGxpbmsgYWdhaW4gKGZvciBXTEU5MDBWWCBub3cgaXQgd291bGQgYmUgYXQgR0VOMSkuIEFm dGVyIHRoYXQKPiA+PiA+ID4+ID4gPj4gPj4+PiBjYXJkIGlzIHN0YWJsZSBhbmQgYWxsIGZ1dHVy ZSByZXRyYWluaW5nIChlLmcuIGZyb20gYXNwbS5jKSBhbHNvIHBhc3Nlcy4KPiA+PiA+ID4+ID4g Pj4gPj4+Pgo+ID4+ID4gPj4gPiA+PiA+Pj4+IElmIEkgZG8gbm90IGNoYW5nZSBhYXJkdmFyayBt b2RlIGZyb20gR0VOMiB0byBHRU4xIHRoZSBzZWNvbmQgbGluawo+ID4+ID4gPj4gPiA+PiA+Pj4+ IHRyYWluaW5nIGZhaWxzLiBBbmQgaWYgSSBjaGFuZ2UgbW9kZSB0byBHRU4xIGFmdGVyIHRoaXMg ZmFpbGVkIGxpbmsKPiA+PiA+ID4+ID4gPj4gPj4+PiB0cmFpbmluZyB0aGVuIG5vdGhpbmcgaGFw cGVuLCBsaW5rIHRyYWluaW5nIGRvIG5vdCBzdWNjZXNzLgo+ID4+ID4gPj4gPiA+PiA+Pj4+Cj4g Pj4gPiA+PiA+ID4+ID4+Pj4gU28ganVzdCBzcGVjdWxhdGlvbiBub3cuLi4gSW4gY3VycmVudCBz ZXR1cCBpbml0aWFsaXphdGlvbiBvZiBjYXJkIGRvZXMKPiA+PiA+ID4+ID4gPj4gPj4+PiBvbmUg bGluayB0cmFpbmluZyBhdCBHRU4yLiBUaGVuIGFzcG0uYyBpcyBjYWxsZWQgd2hpY2ggaXMgZG9p bmcgc2Vjb25kCj4gPj4gPiA+PiA+ID4+ID4+Pj4gbGluayByZXRyYWluaW5nIGF0IEdFTjIuIEFu ZCBpZiBpdCBmYWlscyB0aGVuIGJlbG93IHBhdGNoIGlzc3VlIHRoaXJkCj4gPj4gPiA+PiA+ID4+ ID4+Pj4gbGluayByZXRyYWluaW5nIGF0IEdFTjEuIElmIEEzOHgvcGNpLW12ZWJ1IGhhcyBzYW1l IHByb2JsZW0gYXMgYWFyZHZhcmsKPiA+PiA+ID4+ID4gPj4gPj4+PiB0aGVuIHNlY29uZCBsaW5r IHJldHJhaW5pbmcgbXVzdCBiZSBhdCBHRU4xIChub3QgR0VOMikgdG8gd29ya2Fyb3VuZAo+ID4+ ID4gPj4gPiA+PiA+Pj4+IHRoaXMgaXNzdWUuCj4gPj4gPiA+PiA+ID4+ID4+Pj4KPiA+PiA+ID4+ ID4gPj4gPj4+PiBCam9ybiwgVG9rZTogd2hhdCBhYm91dCB0cnlpbmcgdG8gaGFjayBhc3BtLmMg Y29kZSB0byBuZXZlciBkbyBsaW5rCj4gPj4gPiA+PiA+ID4+ID4+Pj4gcmV0cmFpbmluZyBhdCBH RU4yIHNwZWVkPyBBbmQgYWx3YXlzIGZvcmNlIEdFTjEgc3BlZWQgcHJpb3IgbGluawo+ID4+ID4g Pj4gPiA+PiA+Pj4+IHRyYWluaW5nPwo+ID4+ID4gPj4gPiA+PiA+Pj4gU291bmRzIGxpa2UgYSBw bGFuLiBJIHBva2VkIGFyb3VuZCBpbiBhc3BtLmMgYW5kIG11c3QgY29uZmVzcyB0byBiZWluZyBh Cj4gPj4gPiA+PiA+ID4+ID4+PiBiaXQgbG9zdCBpbiB0aGUgc291cCBvZiByZWdpc3RlcnMgOykK PiA+PiA+ID4+ID4gPj4gPj4+Cj4gPj4gPiA+PiA+ID4+ID4+PiBTbyBpZiBvbmUgb2YgeW91IGNh biBjb29rIHVwIGEgcGF0Y2gsIHRoYXQgd291bGQgYmUgbW9zdCBoZWxwZnVsIQo+ID4+ID4gPj4g PiA+PiA+PiBJIG1vZGlmaWVkIEJqb3JuJ3MgcGF0Y2gsIGV4cGxpY2l0bHkgc2V0IHRscyB0byAx IGFuZCBhZGRlZCBkZWJ1ZyBpbmZvCj4gPj4gPiA+PiA+ID4+ID4+IGFib3V0IGNscyAoY3VycmVu dCBsaW5rIHNwZWVkLCB0aGF0IHdoYXQgaXMgdXNlZCBieSBhYXJkdmFyaykuIEl0IGlzCj4gPj4g PiA+PiA+ID4+ID4+IHVudGVzdGVkLCBJIGp1c3QgdHJpZWQgdG8gY29tcGlsZSBpdC4KPiA+PiA+ ID4+ID4gPj4gPj4KPiA+PiA+ID4+ID4gPj4gPj4gQ2FuIHRyeSBpdD8KPiA+PiA+ID4+ID4gPj4g Pj4KPiA+PiA+ID4+ID4gPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaWUvYXNwbS5j IGIvZHJpdmVycy9wY2kvcGNpZS9hc3BtLmMKPiA+PiA+ID4+ID4gPj4gPj4gaW5kZXggMjUzYzMw Y2MxOTY3Li5mOTM0YzBiNTJmNDEgMTAwNjQ0Cj4gPj4gPiA+PiA+ID4+ID4+IC0tLSBhL2RyaXZl cnMvcGNpL3BjaWUvYXNwbS5jCj4gPj4gPiA+PiA+ID4+ID4+ICsrKyBiL2RyaXZlcnMvcGNpL3Bj aWUvYXNwbS5jCj4gPj4gPiA+PiA+ID4+ID4+IEBAIC0yMDYsNiArMjA2LDI3IEBAIHN0YXRpYyBi b29sIHBjaWVfcmV0cmFpbl9saW5rKHN0cnVjdCBwY2llX2xpbmtfc3RhdGUgKmxpbmspCj4gPj4g PiA+PiA+ID4+ID4+ICAgCXVuc2lnbmVkIGxvbmcgZW5kX2ppZmZpZXM7Cj4gPj4gPiA+PiA+ID4+ ID4+ICAgCXUxNiByZWcxNjsKPiA+PiA+ID4+ID4gPj4gPj4gICAKPiA+PiA+ID4+ID4gPj4gPj4g Kwl1MzIgbG5rY2FwMjsKPiA+PiA+ID4+ID4gPj4gPj4gKwl1MTYgbG5rc3RhLCBsbmtjdGwyLCBj bHMsIHRsczsKPiA+PiA+ID4+ID4gPj4gPj4gKwo+ID4+ID4gPj4gPiA+PiA+PiArCXBjaWVfY2Fw YWJpbGl0eV9yZWFkX2R3b3JkKHBhcmVudCwgUENJX0VYUF9MTktDQVAyLCAmbG5rY2FwMik7Cj4g Pj4gPiA+PiA+ID4+ID4+ICsJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChwYXJlbnQsIFBDSV9F WFBfTE5LU1RBLCAmbG5rc3RhKTsKPiA+PiA+ID4+ID4gPj4gPj4gKwlwY2llX2NhcGFiaWxpdHlf cmVhZF93b3JkKHBhcmVudCwgUENJX0VYUF9MTktDVEwyLCAmbG5rY3RsMik7Cj4gPj4gPiA+PiA+ ID4+ID4+ICsJY2xzID0gbG5rc3RhICYgUENJX0VYUF9MTktTVEFfQ0xTOwo+ID4+ID4gPj4gPiA+ PiA+PiArCXRscyA9IGxua2N0bDIgJiBQQ0lfRVhQX0xOS0NUTDJfVExTOwo+ID4+ID4gPj4gPiA+ PiA+PiArCj4gPj4gPiA+PiA+ID4+ID4+ICsJcGNpX2luZm8ocGFyZW50LCAibG5rY2FwMiAlIzAx MHggc2xzICUjMDR4IGxua3N0YSAlIzA2eCBjbHMgJSMwM3ggbG5rY3RsMiAlIzA2eCB0bHMgJSMw M3hcbiIsCj4gPj4gPiA+PiA+ID4+ID4+ICsJCWxua2NhcDIsIChsbmtjYXAyICYgMHgzRikgPj4g MSwKPiA+PiA+ID4+ID4gPj4gPj4gKwkJbG5rc3RhLCBjbHMsCj4gPj4gPiA+PiA+ID4+ID4+ICsJ CWxua2N0bDIsIHRscyk7Cj4gPj4gPiA+PiA+ID4+ID4+ICsKPiA+PiA+ID4+ID4gPj4gPj4gKwl0 bHMgPSAxOwo+ID4+ID4gPj4gPiA+PiA+PiArCXBjaWVfY2FwYWJpbGl0eV9jbGVhcl9hbmRfc2V0 X3dvcmQocGFyZW50LCBQQ0lfRVhQX0xOS0NUTDIsCj4gPj4gPiA+PiA+ID4+ID4+ICsJCQkJCVBD SV9FWFBfTE5LQ1RMMl9UTFMsIHRscyk7Cj4gPj4gPiA+PiA+ID4+ID4+ICsJcGNpZV9jYXBhYmls aXR5X3JlYWRfd29yZChwYXJlbnQsIFBDSV9FWFBfTE5LQ1RMMiwgJmxua2N0bDIpOwo+ID4+ID4g Pj4gPiA+PiA+PiArCXBjaV9pbmZvKHBhcmVudCwgImxua2N0bDIgJSMwMTB4IG5ldyB0bHMgJSMw M3hcbiIsCj4gPj4gPiA+PiA+ID4+ID4+ICsJCWxua2N0bDIsIHRscyk7Cj4gPj4gPiA+PiA+ID4+ ID4+ICsKPiA+PiA+ID4+ID4gPj4gPj4gICAJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChwYXJl bnQsIFBDSV9FWFBfTE5LQ1RMLCAmcmVnMTYpOwo+ID4+ID4gPj4gPiA+PiA+PiAgIAlyZWcxNiB8 PSBQQ0lfRVhQX0xOS0NUTF9STDsKPiA+PiA+ID4+ID4gPj4gPj4gICAJcGNpZV9jYXBhYmlsaXR5 X3dyaXRlX3dvcmQocGFyZW50LCBQQ0lfRVhQX0xOS0NUTCwgcmVnMTYpOwo+ID4+ID4gPj4gPiA+ PiA+PiBAQCAtMjI3LDYgKzI0OCw4IEBAIHN0YXRpYyBib29sIHBjaWVfcmV0cmFpbl9saW5rKHN0 cnVjdCBwY2llX2xpbmtfc3RhdGUgKmxpbmspCj4gPj4gPiA+PiA+ID4+ID4+ICAgCQkJYnJlYWs7 Cj4gPj4gPiA+PiA+ID4+ID4+ICAgCQltc2xlZXAoMSk7Cj4gPj4gPiA+PiA+ID4+ID4+ICAgCX0g d2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGVuZF9qaWZmaWVzKSk7Cj4gPj4gPiA+PiA+ID4+ ID4+ICsJcGNpX2luZm8ocGFyZW50LCAibG5rc3RhICUjMDZ4IG5ldyBjbHMgJSMwM3hcbiIsCj4g Pj4gPiA+PiA+ID4+ID4+ICsJCWxua3N0YSwgKGNscyAmIFBDSV9FWFBfTE5LU1RBX0NMUykpOwo+ ID4+ID4gPj4gPiA+PiA+PiAgIAlyZXR1cm4gIShyZWcxNiAmIFBDSV9FWFBfTE5LU1RBX0xUKTsK PiA+PiA+ID4+ID4gPj4gPj4gICB9Cj4gPj4gPiA+PiA+ID4+ID4+ICAgCj4gPj4gPiA+PiA+ID4+ ID4KPiA+PiA+ID4+ID4gPj4gPiBTdGlsbCBleGhpYml0aW5nIHRoZSBCQVIgdXBkYXRlIGVycm9y LCBydW4gdGVzdGVkIHdpdGggbmV4dC0tMjAyMDEwMzAKPiA+PiA+ID4+ID4gPj4gCj4gPj4gPiA+ PiA+ID4+IFl1cCwgc2FtZSBmb3IgbWUgOigKPiA+PiA+ID4+IAo+ID4+ID4gPj4gSSdtIGFuc3dl cmluZyBteSBvd24gcXVlc3Rpb24uIFRoaXMgY29kZSBkb2VzIG5vdCB3b3JrIG9uIE9tbmlhIGJl Y2F1c2UKPiA+PiA+ID4+IEEzOHggcGNpLW12ZWJ1LmMgZHJpdmVyIGlzIHVzaW5nIGVtdWxhdG9y IGZvciBQQ0llIHJvb3QgYnJpZGdlIGFuZCBpdAo+ID4+ID4gPj4gZG9lcyBub3QgaW1wbGVtZW50 IFBDSV9FWFBfTE5LQ1RMMiBhbmQgUENJX0VYUF9MTktDVEwyIHJlZ2lzdGVycy4gU28KPiA+PiA+ ID4+IGNvZGUgZm9yIGZvcmNpbmcgbGluayBzcGVlZCBoYXMgbm8gZWZmZWN0IG9uIE9tbmlhLi4u Cj4gPj4gPiA+Cj4gPj4gPiA+IFRva2UsIG9uIEEzOHggUENJZSBjb250cm9sbGVyIGl0IGlzIHBv c3NpYmxlIHRvIGFjY2VzcyBQQ0lfRVhQX0xOS0NUTDIKPiA+PiA+ID4gcmVnaXN0ZXIuIEp1c3Qg YWNjZXNzIGlzIG5vdCBleHBvcnRlZCB2aWEgZW11bGF0ZWQgcm9vdCBicmlkZ2UuCj4gPj4gPiA+ Cj4gPj4gPiA+IERvY3VtZW50YXRpb24gZm9yIHRoaXMgUENJZSBjb250cm9sbGVyIGlzIHB1Ymxp Yywgc28gYW55Ym9keSBjYW4gbG9vayBhdAo+ID4+ID4gPiByZWdpc3RlciBkZXNjcmlwdGlvbi4g U2VlIHBhZ2UgNTcxLCBBLjcgUENJIEV4cHJlc3MgMi4wIFBvcnQgMCBSZWdpc3RlcnMKPiA+PiA+ ID4KPiA+PiA+ID4gaHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAyMDA0MjAxOTE5MjcvaHR0 cHM6Ly93d3cubWFydmVsbC5jb20vY29udGVudC9kYW0vbWFydmVsbC9lbi9wdWJsaWMtY29sbGF0 ZXJhbC9lbWJlZGRlZC1wcm9jZXNzb3JzL21hcnZlbGwtZW1iZWRkZWQtcHJvY2Vzc29ycy1hcm1h ZGEtMzh4LWZ1bmN0aW9uYWwtc3BlY2lmaWNhdGlvbnMtMjAxNS0xMS5wZGYKPiA+PiA+ID4KPiA+ PiA+ID4gSW4gZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyB5b3UgY2FuIHNldCBh IG5ldyB2YWx1ZSBmb3IgdGhpcwo+ID4+ID4gPiByZWdpc3RlciB2aWEgZnVuY3Rpb24gY2FsbDoK PiA+PiA+ID4KPiA+PiA+ID4gICAgIG12ZWJ1X3dyaXRlbChwb3J0LCB2YWwsIFBDSUVfQ0FQX1BD SUVYUCArIFBDSV9FWFBfTE5LQ1RMMik7Cj4gPj4gPiA+Cj4gPj4gPiA+IFNvLCBjb3VsZCB5b3Ug dHJ5IHRvIHNldCBQQ0lfRVhQX0xOS0NUTDJfVExTIGJpdHMgdG8gZ2VuMSBpbiBzb21lIGh3Cj4g Pj4gPiA+IGluaXQgZnVuY3Rpb24sIGUuZy4gbXZlYnVfcGNpZV9zZXR1cF9odygpPwo+ID4+ID4g Pgo+ID4+ID4gPiAgICAgdTMyIHZhbCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfQ0FQX1BDSUVY UCArIFBDSV9FWFBfTE5LQ1RMMik7Cj4gPj4gPiA+ICAgICB2YWwgJj0gflBDSV9FWFBfTE5LQ1RM Ml9UTFM7Cj4gPj4gPiA+ICAgICB2YWwgfD0gUENJX0VYUF9MTktDVEwyX1RMU18yXzVHVDsKPiA+ PiA+ID4gICAgIG12ZWJ1X3dyaXRlbChwb3J0LCB2YWwsIFBDSUVfQ0FQX1BDSUVYUCArIFBDSV9F WFBfTE5LQ1RMMik7Cj4gPj4gPiAKPiA+PiA+IEkgcGFzdGVkIHRoaXMgaW50byB0aGUgdG9wIG9m IG12ZWJ1X3BjaWVfc2V0dXBfaHcoKSwgYW5kIHRoYXQgaW5kZWVkCj4gPj4gPiBzZWVtcyB0byBm aXggdGhpbmdzIHNvIHRoYXQgYWxsIHRocmVlIFBDSUUgZGV2aWNlcyB3b3JrIGV2ZW4gd2l0aCBB U1BNCj4gPj4gPiB0dXJuZWQgb24hIDopCj4gPj4gCj4gPj4gUGVyZmVjdCEgTm93IEknbSBzdXJl IHRoYXQgaXQgaXMgc2FtZSBpc3N1ZSBhcyBpbiBhYXJkdmFyayBkcml2ZXIuCj4gPj4gCj4gPj4g SSB3aWxsIHByZXBhcmUgcGF0Y2hlcyBmb3IgYm90aCBwY2ktYWFyZHZhcmsuYyBhbmQgcGNpLW12 ZWJ1LmMgdG8gZXhwb3J0Cj4gPj4gUENJX0VYUF9MTktDVEwyIHJlZ2lzdGVyIHZpYSBlbXVsYXRl ZCBicmlkZ2UuIEFuZCBzbyBhc3BtLmMgY29kZSB3b3VsZAo+ID4+IGJlIGFibGUgdG8gdXNlIEJq b3JuIG9yIG15IHBhdGNoIHdoaWNoIEkgaGF2ZSBzZW50IGxhc3QgeWVhci4KPiA+PiAKPiA+PiBR dWVzdGlvbiByZW1pbmRzLCBpZiB0aGlzIGlzIGlzc3VlIHdpdGggUUNBIHdpZmkgY2hpcCBvbiB0 aGF0IENvbXBleAo+ID4+IGNhcmQgb3IgaXQgaXMgaXNzdWUgd2l0aCBQQ0llIGNvbnRyb2xsZXJz LCBub3cgb24gQTM4eCBhbmQgQTM3MjAgU29DLgo+ID4+IE5vdGUgdGhhdCBib3RoIEEzOHggYW5k IEEzNzIwIHBsYXRmb3JtcyBhcmUgZnJvbSBNYXJ2ZWxsLCBidXQgdGhleSBoYXZlCj4gPj4gZGlm ZmVyZW50IFBDSWUgY29udHJvbGxlcnMgKHNvIGl0IGRvZXMgbm90IG1lYW4gdGhhdCBib3RoIG11 c3QgaGF2ZSBzYW1lCj4gPj4gaHcgYnVncykuCj4gPgo+ID4gU2VlbXMgdGhhdCB0aGlzIGlzIHJl YWxseSBpc3N1ZSBpbiBRQ0E5OHh4IGNoaXBzLiBJIGhhdmUgc2VuZCBwYXRjaAo+ID4gd2hpY2gg YWRkcyBxdWlyayBmb3IgdGhlc2Ugd2lmaSBjaGlwczoKPiA+Cj4gPiBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9saW51eC1wY2kvMjAyMTAzMjYxMjQzMjYuMjExNjMtMS1wYWxpQGtlcm5lbC5vcmcv Cj4gCj4gSSB0cmllZCBhcHBseWluZyB0aGF0LCBhbmQgd2hpbGUgaXQgZG9lcyBmaXggdGhlIGF0 aDEwayBjYXJkLCBpdCBzZWVtcwo+IHRvIGJyZWFrIHRoZSBhdGg5ayBjYXJkIGluIHRoZSBzbG90 IG5leHQgdG8gaXQuCgpFaG0sIHdoYXQ/IFBhdGNoIHdoaWNoIEkgaGF2ZSBzZW50IHRvZGF5IHRv IG1haWxpbmcgbGlzdCBjYWxscyBxdWlyawpjb2RlIG9ubHkgZm9yIFBDSSBkZXZpY2UgaWQgdXNl ZCBieSBRQ0E5OHh4IGNhcmRzLiBGb3IgYWxsIG90aGVyIGNhcmRzCml0IGlzIG5vb3AuCgpDYW4g eW91IHNlbmQgUENJIGRldmljZSBpZCBvZiB5b3VyIGF0aDlrIGNhcmQgKGxzcGNpIC1ubik/IEJl Y2F1c2UgYWxsCm15IHRlc3RlZCBhdGg5ayBjYXJkcyBoYXZlIGRpZmZlcmVudCBQQ0kgZGV2aWNl IGlkLgoKPiBXaGVuIGJvb3Rpbmcgd2l0aCB0aGUKPiBwYXRjaCBhcHBsaWVkLCBJIGdldCB0aGlz IGluIGRtZXNnOgo+IAo+IFsgICAgMy41NTY1OTldIGF0aDogcGh5MDogTWFjIENoaXAgUmV2IDB4 ZmZmYzAuZiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgZHJpdmVyCgpDYW4geW91IHNlbmQgd2hv bGUgZG1lc2cgbG9nPyBTbyBJIGNhbiBzZWUgd2hpY2ggbmV3IGVyci9pbmZvIGxpbmVzIGFyZQpw cmludGVkLgoKPiBDb3VsZCB0aGVyZSBiZSBzb21lIGtpbmQgb2YgZGF0YSBjb3JydXB0aW9uIGlu IHBsYXkgaGVyZSBtYWtpbmcgdGhlCj4gZHJpdmVyIHRoaW5rIHRoZSBjaGlwIHJldmlzaW9uIGlz IHdyb25nLCBvciBzb21ldGhpbmcgbGlrZSB0aGF0PyBJZiBJCj4gYm9vdCB0aGUgc2FtZSBrZXJu ZWwgd2l0aG91dCB0aGUgcGF0Y2ggYXBwbGllZCwgdGhlIGF0aDlrIGluaXRpYWxpc2F0aW9uCj4g d29ya3MgZmluZSwgYnV0IG9idmlvdXNseSB0aGUgYXRoMTBrIGlzIHRoZW4gc3RpbGwgYnJva2Vu Li4uCgpUaGVyZSBpcyBzb21ldGhpbmcgcmVhbGx5IHN0cmFuZ2UuCgpDYW4geW91IGFkZCBkZWJ1 ZyBsb2cgaW50byBwY2llX2NoYW5nZV90bHNfdG9fZ2VuMSgpIGZ1bmN0aW9uIHRvIGNoZWNrCmZv ciB3aGljaCBjYXJkIGlzIHRoaXMgZnVuY3Rpb24gY2FsbGVkPwoKQXJlIHlvdSB0ZXN0aW5nIHRo aXMgbmV3IHBhdGNoIHdpdGggb3Igd2l0aG91dCBjaGFuZ2VzIHRvCm12ZWJ1X3BjaWVfc2V0dXBf aHcoKSBmdW5jdGlvbj8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK