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 F16D6C433EF for ; Wed, 25 May 2022 16:31:54 +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:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wKDJSB+d9aemUnZF61ERaCVopcPBn/slR2v+Z7pCX5s=; b=25j76SNarM4ENRF4bel/gK+QKw 2bV6e39zt2tkVyvq9H2zs6nhQuPVBtVIPX8Ooeq7jLsK00lI4HDzzWU/PsqC85HjUo75TztW82zPv XfBVzLOIAHupIpu3IMcGDiABiGElijPqOXLf4RFb69qgKqYHwOeFsI6SMydAl0eYyHlY247nWCK/J wkF/bG76p1baIgE1fxeamCLZwwE9PEEriHUqCUnpgMcMpfPBTZvl88OLy77Z7QFqtqw1E4/sU5gA/ r9kysp17DRE0N9jzj1bZMvS0qTLrKdbR3rG7Z/0PvtZzqgF+3oK3RghucagSALxkF9uDh9EeHhtLX gZagJW9A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntttk-00BpVp-Ht; Wed, 25 May 2022 16:30:12 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntttf-00BpUw-Q6 for linux-arm-kernel@lists.infradead.org; Wed, 25 May 2022 16:30:10 +0000 Received: by mail-lf1-x134.google.com with SMTP id j10so13366216lfe.12 for ; Wed, 25 May 2022 09:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=+i+Dct5KOGPoWYK+pPUyiAaWMirerzarztidBbbxZ50=; b=ZIDsYUSjntwVSYs3vZQiv9wBkNSJozZuXgBa82+HoJAikAvCUlWvwBZNMfLB8/l1Tm 0g8Ybm/2mCAzS/JaKwQQ5C+kFvbo63EBpqb16lOVY7GjHFiZSlpxQ8/fTC7SqBl9J81l 0Mn0B4qqJFUyvMmFoq1MFCJllsjSVlPVbwaC+n8wEZ94iMJ5/NcLE6Of3GvQsVKWP61a 0rTaKU/Zkoecq05tbn/hqd+yYZTJQ4yWzUX8Uv6y906biVx6pDeW+5bPszd36lDbjem0 lfVpRgdweA45U4nONp+eJEabdVTwV7SQg4QVujaFP7nMdse/KWFd1zvtLl6x0jT7ddlS sc3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=+i+Dct5KOGPoWYK+pPUyiAaWMirerzarztidBbbxZ50=; b=8QC/3jcajcmkXfSU58EuGBI5eKohq8gbawg8/UQqGDgGVvZ7ILR5cacw/XA0cofsZH iRAYDONoWCZXkM+eJiTJVqSQYTehrMvZH2omQLSSZQjamKxzBPid92iY21yI0oAqP0Ma XvnYcKQUhCeqEHsbM7EsDot6h1tAqPmZxXGY8kohhDM9WWNTJEvK9HxSUmFae4mV6qyg vXbSIKtrU1ayddoN6aPOM4E9Dkr0WFBBJV6jDPXv1Q0u8FZ16sz/sTYxW836CCSAc5fV sSxM8tMZlehCpobNqH5EhNXaa+2h2MiK+qLxWy6uoWZFMyJs9mQbrXFWygbvWlO/2mSP o2+Q== X-Gm-Message-State: AOAM533HxZ/I+5k8QckPZOMq6iqrb5Mh+N4BV3X1MTQSnp0o6lDHCUcL yE1JDBUyKCpnt00+vMVFhfc= X-Google-Smtp-Source: ABdhPJyRJqRI3QzG8Wbqpo4lLfYsbAk6Wd5A09iq3QQCnhw2JyTAn6EmWhKwHvIjEqXcFQbDcFfXTA== X-Received: by 2002:a05:6512:1051:b0:478:8351:6665 with SMTP id c17-20020a056512105100b0047883516665mr7696489lfb.390.1653496204674; Wed, 25 May 2022 09:30:04 -0700 (PDT) Received: from [192.168.1.7] ([212.22.223.21]) by smtp.gmail.com with ESMTPSA id u11-20020ac25bcb000000b0047889d37464sm1095708lfn.196.2022.05.25.09.30.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 May 2022 09:30:04 -0700 (PDT) Subject: Re: [PATCH V2 5/7] dt-bindings: Add xen,dev-domid property description for xen-grant DMA ops To: Saravana Kannan , Rob Herring , Stefano Stabellini Cc: xen-devel , "open list:DRM DRIVER FOR QEMU'S CIRRUS DEVICE" , DTML , Linux Kernel Mailing List , Linux ARM , Arnd Bergmann , Oleksandr Tyshchenko , Jason Wang , Krzysztof Kozlowski , Julien Grall , Juergen Gross , "Michael S. Tsirkin" , Christoph Hellwig , Jean-Philippe Brucker References: <1651947548-4055-1-git-send-email-olekstysh@gmail.com> <1651947548-4055-6-git-send-email-olekstysh@gmail.com> <56e8c32d-6771-7179-005f-26ca58555659@gmail.com> <460a746c-6b61-214b-4653-44a1430e314d@gmail.com> <6f469e9c-c26e-f4be-9a85-710afb0d77eb@gmail.com> <390ba7bb-ee9e-b7b7-5f08-71a7245fa4ec@gmail.com> <20220524160134.GE3730540-robh@kernel.org> From: Oleksandr Message-ID: Date: Wed, 25 May 2022 19:30:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220525_093007_920780_7F8DA7E1 X-CRM114-Status: GOOD ( 51.14 ) 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 Ck9uIDI0LjA1LjIyIDIxOjM0LCBTYXJhdmFuYSBLYW5uYW4gd3JvdGU6CgpIZWxsbyBhbGwKCj4g Igo+Cj4gT24gVHVlLCBNYXkgMjQsIDIwMjIgYXQgOTowMSBBTSBSb2IgSGVycmluZyA8cm9iaEBr ZXJuZWwub3JnPiB3cm90ZToKPj4gK1NhcmF2YW5hCj4+Cj4+IE9uIE1vbiwgTWF5IDIzLCAyMDIy IGF0IDA2OjU4OjEzUE0gLTA3MDAsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToKPj4+IE9uIE1v biwgMjMgTWF5IDIwMjIsIE9sZWtzYW5kciB3cm90ZToKPj4+Pj4+IE9uIFRodSwgMTkgTWF5IDIw MjIsIE9sZWtzYW5kciB3cm90ZToKPj4+Pj4+Pj4gT24gV2VkLCBNYXkgMTgsIDIwMjIgYXQgNTow NiBQTSBPbGVrc2FuZHIgPG9sZWtzdHlzaEBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4gT24g MTguMDUuMjIgMTc6MzIsIEFybmQgQmVyZ21hbm4gd3JvdGU6Cj4+Pj4+Pj4+Pj4gT24gU2F0LCBN YXkgNywgMjAyMiBhdCA3OjE5IFBNIE9sZWtzYW5kciBUeXNoY2hlbmtvCj4+Pj4+Pj4+Pj4gPG9s ZWtzdHlzaEBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+ICAgICAgVGhpcyB3b3VsZCBtZWFu IGhhdmluZyBhIGRldmljZQo+Pj4+Pj4+Pj4+IG5vZGUgZm9yIHRoZSBncmFudC10YWJsZSBtZWNo YW5pc20gdGhhdCBjYW4gYmUgcmVmZXJyZWQgdG8gdXNpbmcKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+ Pj4+PiAnaW9tbXVzJwo+Pj4+Pj4+Pj4+IHBoYW5kbGUgcHJvcGVydHksIHdpdGggdGhlIGRvbWlk IGFzIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQuCj4+Pj4+Pj4+PiBJIGFzc3VtZSwgeW91IGFyZSBz cGVha2luZyBhYm91dCBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nPwo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+PiB4ZW5fZHVtbXlfaW9tbXUgewo+Pj4+Pj4+Pj4gICAgICAgIGNvbXBh dGlibGUgPSAieGVuLGR1bW15LWlvbW11IjsKPj4+Pj4+Pj4+ICAgICAgICAjaW9tbXUtY2VsbHMg PSA8MT47Cj4+Pj4+Pj4+PiB9Owo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IHZpcnRpb0AzMDAwIHsKPj4+ Pj4+Pj4+ICAgICAgICBjb21wYXRpYmxlID0gInZpcnRpbyxtbWlvIjsKPj4+Pj4+Pj4+ICAgICAg ICByZWcgPSA8MHgzMDAwIDB4MTAwPjsKPj4+Pj4+Pj4+ICAgICAgICBpbnRlcnJ1cHRzID0gPDQx PjsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgICAgICAgLyogVGhlIGRldmljZSBpcyBsb2NhdGVkIGlu IFhlbiBkb21haW4gd2l0aCBJRCAxICovCj4+Pj4+Pj4+PiAgICAgICAgaW9tbXVzID0gPCZ4ZW5f ZHVtbXlfaW9tbXUgMT47Cj4+Pj4+Pj4+PiB9Owo+Pj4+Pj4+PiBSaWdodCwgdGhhdCdzIHRoYXQn cyB0aGUgaWRlYSwKPj4+Pj4+PiB0aGFuayB5b3UgZm9yIHRoZSBjb25maXJtYXRpb24KPj4+Pj4+ Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIGV4Y2VwdCBJIHdvdWxkIG5vdCBjYWxsIGl0 IGEgJ2R1bW15Jy4KPj4+Pj4+Pj4gICAgRnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIERULCB0 aGlzIGJlaGF2ZXMganVzdCBsaWtlIGFuIElPTU1VLAo+Pj4+Pj4+PiBldmVuIGlmIHRoZSBleGFj dCBtZWNoYW5pc20gaXMgZGlmZmVyZW50IGZyb20gbW9zdCBoYXJkd2FyZSBJT01NVQo+Pj4+Pj4+ PiBpbXBsZW1lbnRhdGlvbnMuCj4+Pj4+Pj4gd2VsbCwgYWdyZWUKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gSXQgZG9lcyBub3QgcXVpdGUgZml0IHRoZSBtb2RlbCB0aGF0IExpbnV4IGN1cnJl bnRseSB1c2VzIGZvcgo+Pj4+Pj4+Pj4+IGlvbW11cywKPj4+Pj4+Pj4+PiBhcyB0aGF0IGhhcyBh biBhbGxvY2F0b3IgZm9yIGRtYV9hZGRyX3Qgc3BhY2UKPj4+Pj4+Pj4+IHllcyAoIyAzLzcgYWRk cyBncmFudC10YWJsZSBiYXNlZCBhbGxvY2F0b3IpCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+PiAsIGJ1dCBpdCB3b3VsZCB0aGluayBpdCdzCj4+Pj4+Pj4+Pj4gY29uY2VwdHVhbGx5IGNs b3NlIGVub3VnaCB0aGF0IGl0IG1ha2VzIHNlbnNlIGZvciB0aGUgYmluZGluZy4KPj4+Pj4+Pj4+ IEludGVyZXN0aW5nIGlkZWEuIEkgYW0gd29uZGVyaW5nLCBkbyB3ZSBuZWVkIGFuIGV4dHJhIGFj dGlvbnMgZm9yCj4+Pj4+Pj4+PiB0aGlzCj4+Pj4+Pj4+PiB0byB3b3JrIGluIExpbnV4IGd1ZXN0 IChkdW1teSBJT01NVSBkcml2ZXIsIGV0Yyk/Cj4+Pj4+Pj4+IEl0IGRlcGVuZHMgb24gaG93IGNs b3NlbHkgdGhlIGd1ZXN0IGltcGxlbWVudGF0aW9uIGNhbiBiZSBtYWRlIHRvCj4+Pj4+Pj4+IHJl c2VtYmxlIGEgbm9ybWFsIGlvbW11LiBJZiB5b3UgZG8gYWxsb2NhdGUgZG1hX2FkZHJfdCBhZGRy ZXNzZXMsCj4+Pj4+Pj4+IGl0IG1heSBhY3R1YWxseSBiZSBjbG9zZSBlbm91Z2ggdGhhdCB5b3Ug Y2FuIGp1c3QgdHVybiB0aGUgZ3JhbnQtdGFibGUKPj4+Pj4+Pj4gY29kZSBpbnRvIGEgbm9ybWFs IGlvbW11IGRyaXZlciBhbmQgY2hhbmdlIG5vdGhpbmcgZWxzZS4KPj4+Pj4+PiBVbmZvcnR1bmF0 ZWx5LCBJIGZhaWxlZCB0byBmaW5kIGEgd2F5IGhvdyB1c2UgZ3JhbnQgcmVmZXJlbmNlcyBhdCB0 aGUKPj4+Pj4+PiBpb21tdV9vcHMgbGV2ZWwgKEkgbWVhbiB0byBmdWxseSBwcmV0ZW5kIHRoYXQg d2UgYXJlIGFuIElPTU1VIGRyaXZlcikuIEkKPj4+Pj4+PiBhbQo+Pj4+Pj4+IG5vdCB0b28gZmFt aWxpYXIgd2l0aCB0aGF0LCBzbyB3aGF0IGlzIHdyaXR0ZW4gYmVsb3cgbWlnaHQgYmUgd3Jvbmcg b3IKPj4+Pj4+PiBhdAo+Pj4+Pj4+IGxlYXN0IG5vdCBwcmVjaXNlLgo+Pj4+Pj4+Cj4+Pj4+Pj4g VGhlIG5vcm1hbCBJT01NVSBkcml2ZXIgaW4gTGludXggZG9lc27igJl0IGFsbG9jYXRlIERNQSBh ZGRyZXNzZXMgYnkKPj4+Pj4+PiBpdHNlbGYsIGl0Cj4+Pj4+Pj4ganVzdCBtYXBzIChJT1ZBLVBB KSB3aGF0IHdhcyByZXF1ZXN0ZWQgdG8gYmUgbWFwcGVkIGJ5IHRoZSB1cHBlciBsYXllci4KPj4+ Pj4+PiBUaGUKPj4+Pj4+PiBETUEgYWRkcmVzcyBhbGxvY2F0aW9uIGlzIGRvbmUgYnkgdGhlIHVw cGVyIGxheWVyIChETUEtSU9NTVUgd2hpY2ggaXMKPj4+Pj4+PiB0aGUgZ2x1ZQo+Pj4+Pj4+IGxh eWVyIGJldHdlZW4gRE1BIEFQSSBhbmQgSU9NTVUgQVBJIGFsbG9jYXRlcyBJT1ZBIGZvciBQQT8p LiBCdXQsIGFsbAo+Pj4+Pj4+IHdoYXQgd2UKPj4+Pj4+PiBuZWVkIGhlcmUgaXMganVzdCB0byBh bGxvY2F0ZSBvdXIgc3BlY2lmaWMgZ3JhbnQtdGFibGUgYmFzZWQgRE1BCj4+Pj4+Pj4gYWRkcmVz c2VzCj4+Pj4+Pj4gKERNQSBhZGRyZXNzID0gZ3JhbnQgcmVmZXJlbmNlICsgb2Zmc2V0IGluIHRo ZSBwYWdlKSwgc28gbGV04oCZcyBzYXkgd2UKPj4+Pj4+PiBuZWVkIGFuCj4+Pj4+Pj4gZW50aXR5 IHRvIHRha2UgYSBwaHlzaWNhbCBhZGRyZXNzIGFzIHBhcmFtZXRlciBhbmQgcmV0dXJuIGEgRE1B IGFkZHJlc3MKPj4+Pj4+PiAod2hhdAo+Pj4+Pj4+IGFjdHVhbGx5IGNvbW1pdCAjMy83IGlzIGRv aW5nKSwgYW5kIHRoYXTigJlzIGFsbC4gU28gd29ya2luZyBhdCB0aGUKPj4+Pj4+PiBkbWFfb3Bz Cj4+Pj4+Pj4gbGF5ZXIgd2UgZ2V0IGV4YWN0bHkgd2hhdCB3ZSBuZWVkLCB3aXRoIHRoZSBtaW5p bWFsIGNoYW5nZXMgdG8gZ3Vlc3QKPj4+Pj4+PiBpbmZyYXN0cnVjdHVyZS4gSW4gb3VyIGNhc2Ug dGhlIFhlbiBpdHNlbGYgYWN0cyBhcyBhbiBJT01NVS4KPj4+Pj4+Pgo+Pj4+Pj4+IEFzc3VtaW5n IHRoYXQgd2Ugd2FudCB0byByZXVzZSB0aGUgSU9NTVUgaW5mcmFzdHJ1Y3R1cmUgc29tZWhvdyBm b3Igb3VyCj4+Pj4+Pj4gbmVlZHMuCj4+Pj4+Pj4gSSB0aGluaywgaW4gdGhhdCBjYXNlIHdlIHdp bGwgbGlrZWx5IG5lZWQgdG8gaW50cm9kdWNlIGEgbmV3IHNwZWNpZmljCj4+Pj4+Pj4gSU9WQQo+ Pj4+Pj4+IGFsbG9jYXRvciAoYWxvbmdzaWRlIHdpdGggYSBnZW5lcmljIG9uZSkgdG8gYmUgaG9v a2VkIHVwIGJ5IHRoZQo+Pj4+Pj4+IERNQS1JT01NVQo+Pj4+Pj4+IGxheWVyIGlmIHdlIHJ1biBv biB0b3Agb2YgWGVuLiBCdXQsIGV2ZW4gaGF2aW5nIHRoZSBzcGVjaWZpYyBJT1ZBCj4+Pj4+Pj4g YWxsb2NhdG9yIHRvCj4+Pj4+Pj4gcmV0dXJuIHdoYXQgd2UgaW5kZWVkIG5lZWQgKERNQSBhZGRy ZXNzID0gZ3JhbnQgcmVmZXJlbmNlICsgb2Zmc2V0IGluCj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4gcGFn ZSkgd2Ugd2lsbCBzdGlsbCBuZWVkIHRoZSBzcGVjaWZpYyBtaW5pbWFsIHJlcXVpcmVkIElPTU1V IGRyaXZlciB0bwo+Pj4+Pj4+IGJlCj4+Pj4+Pj4gcHJlc2VudCBpbiB0aGUgc3lzdGVtIGFueXdh eSBpbiBvcmRlciB0byB0cmFjayB0aGUgbWFwcGluZ3MoPykgYW5kIGRvCj4+Pj4+Pj4gbm90aGlu Zwo+Pj4+Pj4+IHdpdGggdGhlbSwgcmV0dXJuaW5nIGEgc3VjY2VzcyAodGhpcyBzcGVjaWZpYyBJ T01NVSBkcml2ZXIgc2hvdWxkIGhhdmUKPj4+Pj4+PiBhbGwKPj4+Pj4+PiBtYW5kYXRvcnkgY2Fs bGJhY2tzIGltcGxlbWVudGVkKS4KPj4+Pj4+Pgo+Pj4+Pj4+IEkgY29tcGxldGVseSBhZ3JlZSwg aXQgd291bGQgYmUgcmVhbGx5IG5pY2UgdG8gcmV1c2UgZ2VuZXJpYyBJT01NVQo+Pj4+Pj4+IGJp bmRpbmdzCj4+Pj4+Pj4gcmF0aGVyIHRoYW4gaW50cm9kdWNpbmcgWGVuIHNwZWNpZmljIHByb3Bl cnR5IGlmIHdoYXQgd2UgYXJlIHRyeWluZyB0bwo+Pj4+Pj4+IGltcGxlbWVudCBpbiBjdXJyZW50 IHBhdGNoIHNlcmllcyBmaXRzIGluIHRoZSB1c2FnZSBvZiAiaW9tbXVzIiBpbiBMaW51eAo+Pj4+ Pj4+IG1vcmUtbGVzcy4gQnV0LCBpZiB3ZSB3aWxsIGhhdmUgdG8gYWRkIG1vcmUgY29tcGxleGl0 eS9tb3JlIGNvbXBvbmVudHMKPj4+Pj4+PiB0byB0aGUKPj4+Pj4+PiBjb2RlIGZvciB0aGUgc2Fr ZSBvZiByZXVzaW5nIGRldmljZSB0cmVlIGJpbmRpbmcsIHRoaXMgcmFpc2VzIGEgcXVlc3Rpb24K Pj4+Pj4+PiB3aGV0aGVyIHRoYXTigJlzIHdvcnRod2hpbGUuCj4+Pj4+Pj4KPj4+Pj4+PiBPciBJ IHJlYWxseSBtaXNzZWQgc29tZXRoaW5nPwo+Pj4+Pj4gSSB0aGluayBBcm5kIHdhcyBwcmltYXJp bHkgc3VnZ2VzdGluZyB0byByZXVzZSB0aGUgSU9NTVUgRGV2aWNlIFRyZWUKPj4+Pj4+IGJpbmRp bmdzLCBub3QgbmVjZXNzYXJpbHkgdGhlIElPTU1VIGRyaXZlcnMgZnJhbWV3b3JrIGluIExpbnV4 IChhbHRob3VnaAo+Pj4+Pj4gdGhhdCB3b3VsZCBiZSBhbiBhZGRlZCBib251cy4pCj4+Pj4+Pgo+ Pj4+Pj4gSSBrbm93IGZyb20gcHJldmlvdXMgZGlzY3Vzc2lvbnMgd2l0aCB5b3UgdGhhdCBtYWtp bmcgdGhlIGdyYW50IHRhYmxlCj4+Pj4+PiBmaXQgaW4gdGhlIGV4aXN0aW5nIElPTU1VIGRyaXZl cnMgbW9kZWwgaXMgZGlmZmljdWx0LCBidXQganVzdCByZXVzaW5nCj4+Pj4+PiB0aGUgRGV2aWNl IFRyZWUgYmluZGluZ3Mgc2VlbXMgZmVhc2libGU/Cj4+Pj4+IEkgc3RhcnRlZCBleHBlcmltZW50 aW5nIHdpdGggdGhhdC4gQXMgd3JvdGUgaW4gYSBzZXBhcmF0ZSBlbWFpbCwgSSBnb3QgYQo+Pj4+ PiBkZWZlcnJlZCBwcm9iZSB0aW1lb3V0LAo+Pj4+Pgo+Pj4+PiBhZnRlciBpbnNlcnRpbmcgcmVx dWlyZWQgbm9kZXMgaW50byBndWVzdCBkZXZpY2UgdHJlZSwgd2hpY2ggc2VlbXMgdG8gYmUgYQo+ Pj4+PiBjb25zZXF1ZW5jZSBvZiB0aGUgdW5hdmFpbGFiaWxpdHkgb2YgSU9NTVUsIEkgd2lsbCBj b250aW51ZSB0byBpbnZlc3RpZ2F0ZQo+Pj4+PiB0aGlzIHF1ZXN0aW9uLgo+Pj4+Cj4+Pj4gSSBo YXZlIGV4cGVyaW1lbnRlZCB3aXRoIHRoYXQuIFllcywganVzdCByZXVzaW5nIHRoZSBEZXZpY2Ug VHJlZSBiaW5kaW5ncyBpcwo+Pj4+IHRlY2huaWNhbGx5IGZlYXNpYmxlIChhbmQgd2UgYXJlIGFi bGUgdG8gZG8gdGhpcyBieSBvbmx5IHRvdWNoaW5nCj4+Pj4gZ3JhbnQtZG1hLW9wcy5jKSwgYWx0 aG91Z2ggZGVmZXJyZWQgcHJvYmUgdGltZW91dCBzdGlsbCBzdGFuZHMgKGFzIHRoZXJlIGlzIG5v Cj4+Pj4gSU9NTVUgZHJpdmVyIGJlaW5nIHByZXNlbnQgYWN0dWFsbHkpLgo+Pj4+Cj4+Pj4gWyAg ICAwLjU4Mzc3MV0gdmlydGlvLW1taW8gMjAwMDAwMC52aXJ0aW86IGRlZmVycmVkIHByb2JlIHRp bWVvdXQsIGlnbm9yaW5nCj4+Pj4gZGVwZW5kZW5jeQo+Pj4+IFsgICAgMC42MTU1NTZdIHZpcnRp b19ibGsgdmlydGlvMDogW3ZkYV0gNDA5NjAwMCA1MTItYnl0ZSBsb2dpY2FsIGJsb2NrcyAoMi4x MAo+Pj4+IEdCLzEuOTUgR2lCKQo+Pj4+Cj4+Pj4KPj4+PiBCZWxvdyB0aGUgd29ya2luZyBkaWZm IChvbiB0b3Agb2YgY3VycmVudCBzZXJpZXMpOgo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMveGVuL2dyYW50LWRtYS1vcHMuYyBiL2RyaXZlcnMveGVuL2dyYW50LWRtYS1vcHMuYwo+Pj4+ IGluZGV4IGRhOWM3ZmYuLjY1ODYxNTIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy94ZW4vZ3Jh bnQtZG1hLW9wcy5jCj4+Pj4gKysrIGIvZHJpdmVycy94ZW4vZ3JhbnQtZG1hLW9wcy5jCj4+Pj4g QEAgLTI3MiwxNyArMjcyLDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgeGVu X2dyYW50X2RtYV9vcHMgPSB7Cj4+Pj4KPj4+PiAgIGJvb2wgeGVuX2lzX2dyYW50X2RtYV9kZXZp Y2Uoc3RydWN0IGRldmljZSAqZGV2KQo+Pj4+ICAgewo+Pj4+ICsgICAgICAgc3RydWN0IGRldmlj ZV9ub2RlICppb21tdV9ucDsKPj4+PiArICAgICAgIGJvb2wgaGFzX2lvbW11Owo+Pj4+ICsKPj4+ PiAgICAgICAgICAvKiBYWFggSGFuZGxlIG9ubHkgRFQgZGV2aWNlcyBmb3Igbm93ICovCj4+Pj4g ICAgICAgICAgaWYgKCFkZXYtPm9mX25vZGUpCj4+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Cj4+Pj4KPj4+PiAtICAgICAgIHJldHVybiBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZGV2 LT5vZl9ub2RlLCAieGVuLGJhY2tlbmQtZG9taWQiKTsKPj4+PiArICAgICAgIGlvbW11X25wID0g b2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJpb21tdXMiLCAwKTsKPj4+PiArICAgICAg IGhhc19pb21tdSA9IGlvbW11X25wICYmIG9mX2RldmljZV9pc19jb21wYXRpYmxlKGlvbW11X25w LAo+Pj4+ICJ4ZW4sZ3JhbnQtZG1hIik7Cj4+Pj4gKyAgICAgICBvZl9ub2RlX3B1dChpb21tdV9u cCk7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgcmV0dXJuIGhhc19pb21tdTsKPj4+PiAgIH0KPj4+Pgo+ Pj4+ICAgdm9pZCB4ZW5fZ3JhbnRfc2V0dXBfZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ Pj4gICB7Cj4+Pj4gICAgICAgICAgc3RydWN0IHhlbl9ncmFudF9kbWFfZGF0YSAqZGF0YTsKPj4+ PiAtICAgICAgIHVpbnQzMl90IGRvbWlkOwo+Pj4+ICsgICAgICAgc3RydWN0IG9mX3BoYW5kbGVf YXJncyBpb21tdV9zcGVjOwo+Pj4+Cj4+Pj4gICAgICAgICAgZGF0YSA9IGZpbmRfeGVuX2dyYW50 X2RtYV9kYXRhKGRldik7Cj4+Pj4gICAgICAgICAgaWYgKGRhdGEpIHsKPj4+PiBAQCAtMjk0LDE2 ICszMDEsMzAgQEAgdm9pZCB4ZW5fZ3JhbnRfc2V0dXBfZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4+Pj4gICAgICAgICAgaWYgKCFkZXYtPm9mX25vZGUpCj4+Pj4gICAgICAgICAgICAgICAg ICBnb3RvIGVycjsKPj4+Pgo+Pj4+IC0gICAgICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRl di0+b2Zfbm9kZSwgInhlbixiYWNrZW5kLWRvbWlkIiwgJmRvbWlkKSkgewo+Pj4+IC0gICAgICAg ICAgICAgICBkZXZfZXJyKGRldiwgInhlbixiYWNrZW5kLWRvbWlkIHByb3BlcnR5IGlzIG5vdCBw cmVzZW50XG4iKTsKPj4+PiArICAgICAgIGlmIChvZl9wYXJzZV9waGFuZGxlX3dpdGhfYXJncyhk ZXYtPm9mX25vZGUsICJpb21tdXMiLCAiI2lvbW11LWNlbGxzIiwKPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAwLCAmaW9tbXVfc3BlYykpIHsKPj4+PiArICAgICAgICAgICAgICAgZGV2X2Vy cihkZXYsICJDYW5ub3QgcGFyc2UgaW9tbXVzIHByb3BlcnR5XG4iKTsKPj4+PiArICAgICAgICAg ICAgICAgZ290byBlcnI7Cj4+Pj4gKyAgICAgICB9Cj4+Pj4gKwo+Pj4+ICsgICAgICAgaWYgKCFv Zl9kZXZpY2VfaXNfY29tcGF0aWJsZShpb21tdV9zcGVjLm5wLCAieGVuLGdyYW50LWRtYSIpIHx8 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVfc3BlYy5hcmdzX2NvdW50ICE9IDEp IHsKPj4+PiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJJbmNvbXBhdGlibGUgSU9NTVUg bm9kZVxuIik7Cj4+Pj4gKyAgICAgICAgICAgICAgIG9mX25vZGVfcHV0KGlvbW11X3NwZWMubnAp Owo+Pj4+ICAgICAgICAgICAgICAgICAgZ290byBlcnI7Cj4+Pj4gICAgICAgICAgfQo+Pj4+Cj4+ Pj4gKyAgICAgICBvZl9ub2RlX3B1dChpb21tdV9zcGVjLm5wKTsKPj4+PiArCj4+Pj4gICAgICAg ICAgZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOwo+ Pj4+ICAgICAgICAgIGlmICghZGF0YSkKPj4+PiAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ Pj4+Cj4+Pj4gLSAgICAgICBkYXRhLT5iYWNrZW5kX2RvbWlkID0gZG9taWQ7Cj4+Pj4gKyAgICAg ICAvKgo+Pj4+ICsgICAgICAgICogVGhlIGVuZHBvaW50IElEIGhlcmUgbWVhbnMgdGhlIElEIG9m IHRoZSBkb21haW4gd2hlcmUgdGhlCj4+Pj4gY29ycmVzcG9uZGluZwo+Pj4+ICsgICAgICAgICog YmFja2VuZCBpcyBydW5uaW5nCj4+Pj4gKyAgICAgICAgKi8KPj4+PiArICAgICAgIGRhdGEtPmJh Y2tlbmRfZG9taWQgPSBpb21tdV9zcGVjLmFyZ3NbMF07Cj4+Pj4KPj4+PiAgICAgICAgICBpZiAo eGFfZXJyKHhhX3N0b3JlKCZ4ZW5fZ3JhbnRfZG1hX2RldmljZXMsICh1bnNpZ25lZCBsb25nKWRl diwgZGF0YSwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCkpKSB7Cj4+ Pj4gKEVORCkKPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiBCZWxvdywgdGhlIG5vZGVzIGdlbmVyYXRlZCBi eSBYZW4gdG9vbHN0YWNrOgo+Pj4+Cj4+Pj4gICAgICAgICAgeGVuX2dyYW50X2RtYSB7Cj4+IE5p dDogaW9tbXUgewo+Pgo+Pj4+ICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJ4ZW4sZ3Jh bnQtZG1hIjsKPj4+PiAgICAgICAgICAgICAgICAgICNpb21tdS1jZWxscyA9IDwweDAxPjsKPj4+ PiAgICAgICAgICAgICAgICAgIHBoYW5kbGUgPSA8MHhmZGU5PjsKPj4+PiAgICAgICAgICB9Owo+ Pj4+Cj4+Pj4gICAgICAgICAgdmlydGlvQDIwMDAwMDAgewo+Pj4+ICAgICAgICAgICAgICAgICAg Y29tcGF0aWJsZSA9ICJ2aXJ0aW8sbW1pbyI7Cj4+Pj4gICAgICAgICAgICAgICAgICByZWcgPSA8 MHgwMCAweDIwMDAwMDAgMHgwMCAweDIwMD47Cj4+Pj4gICAgICAgICAgICAgICAgICBpbnRlcnJ1 cHRzID0gPDB4MDAgMHgwMSAweGYwMT47Cj4+Pj4gICAgICAgICAgICAgICAgICBpbnRlcnJ1cHQt cGFyZW50ID0gPDB4ZmRlOD47Cj4+Pj4gICAgICAgICAgICAgICAgICBkbWEtY29oZXJlbnQ7Cj4+ Pj4gICAgICAgICAgICAgICAgICBpb21tdXMgPSA8MHhmZGU5IDB4MDE+Owo+Pj4+ICAgICAgICAg IH07Cj4+PiBOb3QgYmFkISBJIGxpa2UgaXQuCj4+Pgo+Pj4KPj4+PiBJIGFtIHdvbmRlcmluZywg d291bGQgYmUgdGhlIHByb3BlciBzb2x1dGlvbiB0byBlbGltaW5hdGUgZGVmZXJyZWQgcHJvYmUK Pj4+PiB0aW1lb3V0IGlzc3VlIGluIG91ciBwYXJ0aWN1bGFyIGNhc2UgKHdpdGhvdXQgaW50cm9k dWNpbmcgYW4gZXh0cmEgSU9NTVUKPj4+PiBkcml2ZXIpPwo+Pj4gSW4gcmVhbGl0eSBJIGRvbid0 IHRoaW5rIHRoZXJlIGlzIGEgd2F5IHRvIGRvIHRoYXQuIEkgd291bGQgY3JlYXRlIGFuCj4+PiBl bXB0eSBza2VsZXRob24gSU9NTVUgZHJpdmVyIGZvciB4ZW4sZ3JhbnQtZG1hLgo+PiBEb2VzIGl0 IGhhdmUgdG8gYmUgYW4gZW1wdHkgZHJpdmVyPyBPcmlnaW5hbGx5LCBJT01NVSAnZHJpdmVycycg d2VyZSBub3QKPj4gZHJpdmVycywgYnV0IHRoZXkndmUgYmVlbiBnZXR0aW5nIGNvbnZlcnRlZC4g Q2FuIHRoYXQgYmUgZG9uZSBoZXJlPwo+Pgo+PiBTaG9ydCBvZiB0aGF0LCBJIHRoaW5rIHdlIGNv dWxkIGhhdmUgc29tZSBzb3J0IG9mIHNraXAgcHJvYmUgbGlzdCBmb3IKPj4gZGVmZXJyZWQgcHJv YmUuIE5vdCBzdXJlIGlmIHRoYXQgd291bGQgYmUgZWFzaWVzdCBhcyBJT01NVSBzcGVjaWZpYyBv cgo+PiBnbG9iYWwuCj4gSGkgT2xla3NhbmRyLAo+Cj4gSWYgeW91IGRvIGZ3X2Rldmxpbmsuc3Ry aWN0PTEsIHlvdSdsbCBub3RpY2UgdGhhdCB0aGUgY29uc3VtZXJzIG9mCj4gdGhpcyAiaW9tbXUi IHdvbid0IHByb2JlIGF0IGFsbCBvciB3aWxsIGRlbGF5IHRoZSBib290IGJ5IHNvbWUgbnVtYmVy Cj4gb2Ygc2Vjb25kcy4gVGhlIGV2ZW50dWFsIGdvYWwgaXMgdG8gZ28gdG93YXJkcyBmd19kZXZs aW5rLnN0cmljdD0xCj4gYmVpbmcgdGhlIGRlZmF1bHQuCgpvaywgSSBnb3QgaXQuCgpMZXQncyBt ZSBwbGVhc2UgZXhwbGFpbiBvdXIgcGFydGljdWxhciBjYXNlIGluIGRldGFpbHMsIHNvcnJ5IEkg bWF5IApyZXBlYXQgc29tZSBpbmZvcm1hdGlvbiB3aGljaCBJIGhhdmUgYWxyZWFkeSBtZW50aW9u ZWQgZWxzZXdoZXJlLCBidXQgaXQgCm1heWJlIGJldHRlciB0byBrZWVwIHRoZSB3aG9sZSBjb250 ZXh0IGhlcmUuCgpXZSBoYXZlIFhlbiBncmFudCBETUEtbWFwcGluZyBsYXllciBhZGRlZCBieSBw cmV2aW91cyBjb21taXQgWzFdLiBGb3IgaXQgCnRvIG9wZXJhdGUgcHJvcGVybHkgd2UgbmVlZCBh IHdheSB0byBjb21tdW5pY2F0ZSBzb21lIHBlci1kZXZpY2UgCmluZm9ybWF0aW9uIHVzaW5nIGRl dmljZS10cmVlLAphbmQgdGhpcyBpbmZvcm1hdGlvbiBpcyBYZW4gc3BlY2lmaWMuIFRoaXMgaXMg d2hhdCB0aGUgY3VycmVudCBjb21taXQgaXMgCmRvaW5nIGJ5IGludHJvZHVjaW5nIG5ldyBiaW5k aW5nIHRvIGRlc2NyaWJlIHRoYXQuIFRoZSBuZXh0IGNvbW1pdCBbMl0gCndpbGwgdXNlIHRoYXQg bmV3IGJpbmRpbmcgdG8gcmV0cmlldmUgcmVxdWlyZWQgaW5mb3JtYXRpb24uIFRoZXJlIHdhcyBh IApzdWdnZXN0aW9uIHRvIGNvbnNpZGVyIHJldXNpbmcgZ2VuZXJpYyBkZXZpY2UtdHJlZSBJT01N VSBiaW5kaW5ncyB0byAKY29tbXVuaWNhdGUgdGhpcyBzcGVjaWZpYyBpbmZvcm1hdGlvbiBpbnN0 ZWFkIG9mIGludHJvZHVjaW5nIGEgY3VzdG9tIApwcm9wZXJ0eS4KCkFsdGhvdWdoIGl0IHJlcXVp cmVzIG1vcmUgZWZmb3J0IGZvciB0aGUgWGVuIHRvb2xzdGFjayAoaW5zdGVhZCBvZiAKYWRkaW5n IGEgY29kZSB0byBpbnNlcnQgYSBzaW5nbGUgInhlbixiYWNrZW5kLWRvbWlkIiBwcm9wZXJ0eSwg d2UgbmVlZCAKdG8gZ2VuZXJhdGUgZmFrZSBJT01NVSBub2RlLCByZXNlcnZlIHBoYW5kbGUgZm9y IGl0LCBldGMpLCBmcm9tIHRoZSAKZGV2aWNlIHRyZWUgUG9WIGl0IGxvb2tzIGluZGVlZCBnb29k ICh3ZSByZXVzZSBlbmRwb2ludCBJRCB0byBwYXNzIHRoZSAKSUQgb2YgdGhlIGRvbWFpbiB3aGVy ZSB0aGUgY29ycmVzcG9uZGluZyBiYWNrZW5kIGlzIHJ1bm5pbmcpLCBhbmQgCnJlc3VsdGluZyBj b2RlIHRvIHJldHJpZXZlIHRoaXMgaW5mb3JtYXRpb24gaW4gb3VyIERNQS1tYXBwaW5nIGxheWVy IAphbHNvIGxvb2tzIHNpbXBsZSBlbm91Z2ggWzNdLgoKVXNpbmcgZ2VuZXJpYyBkZXZpY2UtdHJl ZSBJT01NVSBiaW5kaW5nczoKCiDCoMKgwqDCoMKgwqDCoMKgIGlvbW11IHsKIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAieGVuLGdyYW50LWRtYSI7CiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjaW9tbXUtY2VsbHMgPSA8MHgwMT47CiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFuZGxlID0gPDB4ZmRlOT47CiDCoMKgwqDC oMKgwqDCoMKgIH07CiDCoMKgwqDCoMKgwqDCoMKgIHZpcnRpb0AyMDAwMDAwIHsKIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAidmlydGlvLG1taW8iOwogwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDB4MDAgMHgyMDAwMDAwIDB4MDAg MHgyMDA+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJydXB0cyA9IDww eDAwIDB4MDEgMHhmMDE+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJy dXB0LXBhcmVudCA9IDwweGZkZTg+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ZG1hLWNvaGVyZW50OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW9tbXVzID0g PDB4ZmRlOSAweDAxPjsKIMKgwqDCoMKgwqDCoMKgwqAgfTsKClVzaW5nIFhlbiBzcGVjaWZpYyBw cm9wZXJ0eToKCiDCoMKgwqDCoMKgwqDCoMKgIHZpcnRpb0AyMDAwMDAwIHsKIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbXBhdGlibGUgPSAidmlydGlvLG1taW8iOwogwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDB4MDAgMHgyMDAwMDAwIDB4MDAgMHgy MDA+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJydXB0cyA9IDwweDAw IDB4MDEgMHhmMDE+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJydXB0 LXBhcmVudCA9IDwweGZkZTg+OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG1h LWNvaGVyZW50OwogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeGVuLGJhY2tlbmQt ZG9taWQgPSA8MHgwMT47CiDCoMKgwqDCoMKgwqDCoMKgIH07CgoKVGhlIG1haW4gcHJvYmxlbSBp cyB0aGF0IGlkZWEgZG9lc24ndCBxdWl0ZSBmaXQgaW50byBob3cgTGludXggY3VycmVudGx5IApi ZWhhdmVzIGZvciB0aGUgImlvbW11cyIgcHJvcGVydHkuIE9mIGNvdXJzZSwganVzdCByZXVzaW5n IElPTU1VIApiaW5kaW5ncyAod2l0aG91dCBoYXZpbmcgYSBjb3JyZXNwb25kaW5nIGRyaXZlcikg bGVhZHMgdG8gdGhlIGRlZmVycmVkIApwcm9iZSB0aW1lb3V0IGlzc3VlIGFmdGVyd2FyZHMsIGJl Y2F1c2UgdGhlIElPTU1VIGRldmljZSBuZXZlciBiZWNvbWVzIAphdmFpbGFibGUuIEZyb20gbXkg dW5kZXJzdGFuZGluZywgb3VyIERNQS1tYXBwaW5nIGxheWVyIHdlIGFyZSBjb25zaWRlciAKdG8g cmV1c2UgSU9NTVUgYmluZGluZ3MgZm9yLCAqY2Fubm90KiBiZSBjb252ZXJ0ZWQgaW50byB0aGUg cHJvcGVyIElPTU1VIApkcml2ZXIuCgpTdXJlLCB3ZSB3aWxsIG5lZWQgdG8gZmluZCBhIHdheSBo b3cgdG8gZGVhbCB3aXRoIGl0LCBpZiB3ZSByZWFsbHkgd2FudCAKdG8gcmV1c2UgdGhlIElPTU1V IGJpbmRpbmdzLiBBbmQgeWVzLCBvbmUgaWRlYSB3YXMgdG8ganVzdCBpbXBsZW1lbnQgCnN0dWIg SU9NTVUgZHJpdmVyIGZvciB0aGF0IHB1cnBvc2UsIEkgaGF2ZSByZWNoZWNrZWQsIGl0IHdvcmtz IGZpbmUgd2l0aCAKdGhhdCBzdHViIGRyaXZlciBbNF0uCgo+Cj4gIEZyb20gYSBmd19kZXZsaWsg cGVyc3BlY3RpdmUsIHBsZWFzZSBpbXBsZW1lbnQgYSBkcml2ZXIuIElkZWFsbHkgYQo+IHJlYWwg b25lLCBidXQgYXQgbGVhc3QgYW4gZW1wdHkgb25lLiBUaGUgZW1wdHkgb25lIGRvZXNuJ3QgbmVl ZCB0byBiZQo+IGFuIElPTU1VIGRyaXZlciwgYnV0IGF0IGxlYXN0IGp1c3QgZG8gYSByZXR1cm4g MCBpbiB0aGUgcHJvYmUKPiBmdW5jdGlvbi4KCgpJZiBJIGdvdCB0aGluZ3MgcmlnaHQsIEkgYW0g YWZyYWlkLCBmb3IgdGhlICJvZl9pb21tdSIgY2FzZSB0aGUgZW1wdHkgCmRyaXZlciBpcyBub3Qg ZW5vdWdoLiBUaGUgZHJpdmVyIHNob3VsZCBhdCBsZWFzdCByZWdpc3RlciBpb21tdV9vcHMsIGJ1 dCAKdGhlICJvZl94bGF0ZSIgY2FsbGJhY2sgc2hvdWxkIGJlICpub3QqIGltcGxlbWVudGVkLgpJ biB0aGF0IGNhc2UsIHdlIHdpbGwgZ2V0IE5PX0lPTU1VICg+MCA6IHRoZXJlIGlzIG5vIElPTU1V LCBvciBvbmUgd2FzIAp1bmF2YWlsYWJsZSBmb3Igbm9uLWZhdGFsIHJlYXNvbnMpIHdoaWNoIGlz IGFsc28gYSBzdWNjZXNzIGNvbmRpdGlvbiwgc28gCi1FUFJPQkVfREVGRVIgd29uJ3QgYmUgcmV0 dXJuZWQuCgpodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NS4xOC9zb3VyY2UvZHJp dmVycy9pb21tdS9vZl9pb21tdS5jI0wzMgoKT3RoZXJ3aXNlLCBvZl9pb21tdV94bGF0ZSgpIHdp bGwgY2FsbCBkcml2ZXJfZGVmZXJyZWRfcHJvYmVfY2hlY2tfc3RhdGUoKS4KCmh0dHBzOi8vZWxp eGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y1LjE4L3NvdXJjZS9kcml2ZXJzL2lvbW11L29mX2lvbW11 LmMjTDQzCgo+ICAgQWxzbywgaWYgaXQncyBub3QgYSBkZXZpY2UsIHdoeSBldmVuIGhhdmUgYSAi Y29tcGF0aWJsZSIKPiBwcm9wZXJ0eSAocmVtb3ZpbmcgaXQgd29uJ3QgbmVjZXNzYXJpbHkgcmVt b3ZlIHRoZSBkZWZlcnJlZCBwcm9iZQo+IHRpbWVvdXQgaXNzdWUgeW91IHNlZSk/IFdpbGwgYW55 IGNvZGUgYmUgdXNpbmcgInhlbixncmFudC1kbWEiIHRvIGxvb2sKPiB1cCB0aGUgbm9kZT8KClll cwoKCj4gICBJZiBzbywgdGhhdCBkcml2ZXIgY291bGQgYmUgdGhlIG9uZSB0aGF0IHByb2JlcyB0 aGlzCj4gZGV2aWNlLiBBdCBsZWFzdCBmcm9tIGEgZndfZGV2bGluayBwZXJzcGVjdGl2ZSwgaXQg anVzdCBuZWVkcyB0byBoYXZlCj4gYSBkcml2ZXIgdGhhdCBiaW5kcyB0byB0aGlzIGRldmljZS4K CkFncmVlCgoKPgo+IEFsc28sIGlmIHdlIGFyZW4ndCBnb2luZyB0byBpbXBsZW1lbnQgYSBkcml2 ZXIgYW5kIGhhdmUgdGhlIHN1cHBsaWVyCj4gKCJ4ZW4sZ3JhbnQtZG1hIikgYmVoYXZlIGxpa2Ug YSBkZXZpY2UgKGFzIGluLCBoYXZlIGEgZHJpdmVyIHRoYXQKPiBwcm9iZXMpLCBJJ2QgcmF0aGVy IHRoYXQgdGhlIGlvbW11IGJpbmRpbmcgbm90IGJlIHVzZWQgYXQgYWxsIGFzIHRoaXMKPiB3b3Vs ZCBiZSBhbiBleGNlcHRpb24gdG8gaG93IGV2ZXJ5IG90aGVyIGlvbW11IGRldmljZSBiZWhhdmVz LgoKQWdyZWUKCgpTYXJhdmFuYSwgdGhhbmsgeW91IGZvciB0aGUgZXhwbGFuYXRpb24uCgoKVG8g c3VtbWFyaXplLCBhcyBJIHVuZGVyc3RhbmQsIHdlIGhhdmUgdGhyZWUgb3B0aW9ucyAodGhlIGZp cnN0IHR3byBhcmUgCmNsZWFyIGVub3VnaCwgdGhlIHRoaXJkIGlzIHVuY2xlYXIgeWV0KToKCjEu IERvIG5vdCB0cnkgdG8gcmV1c2UgSU9NTVUgYmluZGluZ3MgZm9yIGN1cnJlbnQgeGVuLXZpcnRp byBlbmFibGluZyAKd29yaywgdXNlICJ4ZW4sYmFja2VuZC1kb21pZCIgcHJvcGVydHkuCjIuIFJl dXNlIElPTU1VIGJpbmRpbmdzLCBmb3IgdGhhdCBwdXJwb3NlIGludHJvZHVjZSBzdHViIElPTU1V IGRyaXZlci4gCkl0IGlzIGEgc3RhbmRhbG9uZSBlbnRpdHkgaW4gbXkgZXhhbXBsZSwgYnV0IGl0 IGNhbiBiZSBhIHBhcnQgb2YgCmdyYW50LWRtYS1vcHMuYyB3aGljaAphY3R1YWxseSB1c2VzICJ4 ZW4sZ3JhbnQtZG1hIiBjb21wYXRpYmxlIHRvIGxvb2sgdXAgYSBub2RlLgozLiBUcnkgdG8gZmlu ZCBvdGhlciBvcHRpb25zIGhvdyB0byByZXVzZSBJT01NVSBiaW5kaW5ncyBidXQgKndpdGhvdXQq IAppbnRyb2R1Y2luZyBzdHViIElPTU1VIGRyaXZlciwgc3VjaCBhcyBza2lwIGxpc3QgZm9yIGRl ZmVycmVkIHByb2JlLCBldGMuCgoKV2hhdCBkbyB0aGUgbWFpbnRhaW5lcnMgdGhpbmsgcmVnYXJk aW5nIHRoZSBvcHRpb24gdG8gZ28gZm9yd2FyZD8KCgpbMV0gCmh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL3hlbi1kZXZlbC8xNjUxOTQ3NTQ4LTQwNTUtNC1naXQtc2VuZC1lbWFpbC1vbGVrc3R5c2hA Z21haWwuY29tLwoKWzJdIApodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMTY1MTk0 NzU0OC00MDU1LTctZ2l0LXNlbmQtZW1haWwtb2xla3N0eXNoQGdtYWlsLmNvbS8KClszXSAKaHR0 cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzM5MGJhN2JiLWVlOWUtYjdiNy01ZjA4LTcx YTcyNDVmYTRlY0BnbWFpbC5jb20vCgpbNF0gCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k ZXZlbC82MDZkZmRjYy1lYzEwLTBjNGEtMDRlOS03MmNkNzNlZTY2NzZAZ21haWwuY29tLwoKPgo+ IC1TYXJhdmFuYQoKLS0gClJlZ2FyZHMsCgpPbGVrc2FuZHIgVHlzaGNoZW5rbwoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK