From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 3F5EA42C6C for ; Mon, 2 May 2022 23:57:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13CFA68B22C; Tue, 3 May 2022 02:57:12 +0300 (EEST) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 37DB868B072 for ; Tue, 3 May 2022 02:57:05 +0300 (EEST) Received: by mail-wr1-f50.google.com with SMTP id e24so21330120wrc.9 for ; Mon, 02 May 2022 16:57:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=Ol0BY0KwdoeBW2GE1HGtEzrBEwBTomco/NR+Ui8L/sg=; b=398Ea2CBW0S4gR+Fuj8bPpxJi2shc8TuJecG1gJ2Oh443CZAXFUQVJ2oOmhdwGdr0c b0JsMzk2bNGkxb2oiZJtK9vBtR3kp0IMy02MC16qfHyG2ktEfkexFuYnbeqbCUOT2h5C 7O2GxlKAeLaAC5sRyS5oqS+oPQYhst81Mfah+oFww9tUd+3cptD/EOs8P490saW4evW1 uHoNM2gdQkjHWH9wrNi0MvKPzX7/TZgxLhTeHt15OJ/CA+e4v1caVIoKgsmAXzZ+ofhQ oyd22BoBStTHzuTgQ7xzCBJvkiFLL4pzUXWngJboHQj7DZ0fLhmz24SkhXvI7kq5I+49 3meA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=Ol0BY0KwdoeBW2GE1HGtEzrBEwBTomco/NR+Ui8L/sg=; b=q6qumIlpwaj/9te5REyDRlz/kG5HAzBZnfAHCtAOKBsxPu883WsAcCC8hGJVxzae38 g55IYh9Sez12oCn/IC+RDrynkblSrRz4nuGma59aN6vM1mBNTJ5vD5W5ux+hifZB5QNT a/D+cR72AFc0OBap0SaRKJglZktLCPYc85GX4GA63DKUhF+u/I4aPspv/NLf4nzwnMQF gSPWEEC5Fr0yorHH9U5TJ+ePB8PVOTxZfGCt0qLvWd+UI5nFfiUw2BFx2W3XxB+WEuMd grLY02u1oUkwL33ywqeYg7Ug3SaUxVyljQfn8RKfjdVGXKHf42VdBafi4Nbpjq6rO8bi di7w== X-Gm-Message-State: AOAM533BVqHwopSgkFEx98TkjYVAE7iTBN5mPZeBwmUFXSQjLvuIXjKG icP04aTqqmb7qxNp/7Q0CuK8qp4ZTeqM9EqM X-Google-Smtp-Source: ABdhPJyVWQtujQTEU65/g1Pvx6A2rD561B0oBXFT73TYiArIHAC3/O58MMYMixkjktjGkFMPjp8EOg== X-Received: by 2002:adf:e253:0:b0:20a:f176:d928 with SMTP id bl19-20020adfe253000000b0020af176d928mr10616214wrb.505.1651535824409; Mon, 02 May 2022 16:57:04 -0700 (PDT) Received: from [192.168.0.14] (cpc91222-cmbg18-2-0-cust46.5-4.cable.virginm.net. [81.106.30.47]) by smtp.gmail.com with ESMTPSA id q29-20020adfb19d000000b0020c5253d8e9sm7862906wra.53.2022.05.02.16.57.03 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 May 2022 16:57:03 -0700 (PDT) Message-ID: <99c7fc4a-dcc3-91f7-615e-36218564a65b@jkqxz.net> Date: Tue, 3 May 2022 00:57:08 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <85ff784b6ff80d4f2e0f724d0b93472e50d2c256.1651349262.git.ffmpegagent@gmail.com> <994ee7a9-ab91-4d13-9538-ed4502c73bd6@jkqxz.net> <33e93072-cde1-437b-bf60-e78250f26692@jkqxz.net> From: Mark Thompson In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH 1/3] avutils/hwcontext: add derive-device function which searches for existing devices in both directions X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMDIvMDUvMjAyMiAyMzo1OSwgU29mdCBXb3JrcyB3cm90ZToKPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPj4gRnJvbTogZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0Bm Zm1wZWcub3JnPiBPbiBCZWhhbGYgT2YgTWFyawo+PiBUaG9tcHNvbgo+PiBTZW50OiBUdWVzZGF5 LCBNYXkgMywgMjAyMiAxMjoxMiBBTQo+PiBUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4g U3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRDSCAxLzNdIGF2dXRpbHMvaHdjb250ZXh0 OiBhZGQgZGVyaXZlLQo+PiBkZXZpY2UgZnVuY3Rpb24gd2hpY2ggc2VhcmNoZXMgZm9yIGV4aXN0 aW5nIGRldmljZXMgaW4gYm90aCBkaXJlY3Rpb25zCj4+Cj4+IE9uIDAyLzA1LzIwMjIgMDk6MTQs IFNvZnQgV29ya3Mgd3JvdGU6Cj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+PiBG cm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJl aGFsZiBPZgo+PiBNYXJrCj4+Pj4gVGhvbXBzb24KPj4+PiBTZW50OiBNb25kYXksIE1heSAyLCAy MDIyIDEyOjAxIEFNCj4+Pj4gVG86IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4+Pj4gU3ViamVj dDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRDSCAxLzNdIGF2dXRpbHMvaHdjb250ZXh0OiBhZGQK Pj4gZGVyaXZlLQo+Pj4+IGRldmljZSBmdW5jdGlvbiB3aGljaCBzZWFyY2hlcyBmb3IgZXhpc3Rp bmcgZGV2aWNlcyBpbiBib3RoCj4+IGRpcmVjdGlvbnMKPj4+Cj4+PiBbLi5dCj4+Pgo+Pj4+Pj4g KiBUaGUgdGhyZWFkLXNhZmV0eSBwcm9wZXJ0aWVzIG9mIHRoZSBod2NvbnRleHQgQVBJIGhhdmUg YmVlbgo+PiBsb3N0Cj4+Pj4gLQo+Pj4+Pj4geW91IGNhbiBubyBsb25nZXIgb3BlcmF0ZSBvbiBk ZXZpY2VzIGluZGVwZW5kZW50bHkgYWNyb3NzIHRocmVhZHMKPj4+Pj4+IChpbnNvZmFyIGFzIHRo ZSB1bmRlcmx5aW5nIEFQSSBhbGxvd3MgdGhhdCkuCj4+Pj4+PiAgICAgICBNYXliZSB0aGVyZSBp cyBhbiBhcmd1bWVudCB0aGF0IGRlcml2YXRpb24gaXMgc29tZXRoaW5nCj4+IHdoaWNoCj4+Pj4+ PiBzaG91bGQgaGFwcGVuIGVhcmx5IG9uIGFuZCB0aGVyZWZvcmUgZG9jdW1lbnRpbmcgaXQgYXMg dGhyZWFkLQo+Pj4+IHVuc2FmZQo+Pj4+Pj4gaXMgb2ssIGJ1dCB3aGVuIGh3dXBsb2FkL2h3bWFw IGNhbiB1c2UgaXQgaW5zaWRlIGZpbHRlcmdyYXBocwo+PiB0aGF0Cj4+Pj4+PiBqdXN0IGlzbid0 IGdvaW5nIHRvIGhhcHBlbiAoYW5kIHdpbGwgYmUgdmlvbGF0ZWQgaW4gdGhlIEZGbXBlZwo+Pj4+ IHV0aWxpdHkKPj4+Pj4+IGlmIGZpbHRlcnMgZ2V0IHRocmVhZGVkLCBhcyBpcyBiZWluZyB3b3Jr ZWQgb24pLgo+Pj4+Pgo+Pj4+PiAgICBGcm9tIG15IHVuZGVyc3RhbmRpbmcgdGhlcmUgd2lsbCBi ZSBhIHNpbmdsZSBzZXBhcmF0ZSB0aHJlYWQKPj4gd2hpY2gKPj4+Pj4gaGFuZGxlcyBhbGwgZmls dGVyZ3JhcGggb3BlcmF0aW9ucy4KPj4+Pj4gSSBkb24ndCB0aGluayBpdCB3b3VsZCBldmVuIGJl IHBvc3NpYmxlICh3aXRob3V0IG1hc3NpdmUgY2hhbmdlcykKPj4+Pj4gdG8gYXJiaXRyYXRlIGZp bHRlciBwcm9jZXNzaW5nIGluIHBhcmFsbGVsLgo+Pj4+PiBCdXQgZXZlbiBpZiB0aGlzIHdvdWxk IGJlIGltcGxlbWVudGVkOiB0aGUgZmlsdGVyZ3JhcGggc2V0dXAKPj4gKGluaXQsCj4+Pj4+IHVu aW5pdCwgcXVlcnlfZm9ybWF0cywgZXRjLikgd291bGQgc3VyZWx5IGhhcHBlbiBvbiBhIHNpbmds ZQo+PiB0aHJlYWQuCj4+Pj4KPj4+PiBUaGUgZmZtcGVnIHV0aWxpdHkgY3JlYXRlcyBmaWx0ZXJn cmFwaHMgZHluYW1pY2FsbHkgd2hlbiB0aGUgZmlyc3QKPj4+PiBmcmFtZSBpcyBhdmFpbGFibGUg ZnJvbSB0aGVpciBpbnB1dHMsIHNvIEkgZG9uJ3Qgc2VlIHdoeSB5b3UKPj4gd291bGRuJ3QKPj4+ PiBhbGxvdyBtdWx0aXBsZSBvZiB0aGVtIHRvIGJlIGNyZWF0ZWQgaW4gcGFyYWxsZWwgaW4gdGhh dCBjYXNlLgo+Pj4+Cj4+Pj4gSWYgeW91IGNyZWF0ZSBhbGwgZGV2aWNlcyBhdCB0aGUgYmVnaW5u aW5nIGFuZCB0aGVuIGdpdmUgcmVmZXJlbmNlcwo+PiB0bwo+Pj4+IHRoZW0gdG8gdGhlIHZhcmlv dXMgZmlsdGVycyB3aGljaCBuZWVkIHRoZW0gKHNvIG5ldmVyIG1hbmlwdWxhdGUKPj4+PiBkZXZp Y2VzIGR5bmFtaWNhbGx5IHdpdGhpbiB0aGUgZ3JhcGgpIHRoZW4gaXQgd291bGQgYmUgb2ssIGJ1 dCBJCj4+IHRoaW5rCj4+Pj4geW91J3ZlIGFscmVhZHkgcmVqZWN0ZWQgdGhhdCBhcHByb2FjaC4K Pj4+Cj4+PiBQbGVhc2UgbGV0J3Mgbm90IGJyZWFrIG91dCBvZiB0aGUgc2NvcGUgb2YgdGhpcyBw YXRjaHNldC4KPj4+IFRoaXMgcGF0Y2hzZXQgaXMgbm90IGFib3V0IHJlLWRvaW5nIGRldmljZSBk ZXJpdmF0aW9uLiBUaGUgb25seQo+Pj4gc21hbGwgY2hhbmdlIHRoYXQgaXQgZG9lcyBpcyB0aGF0 IGl0IHJldHVybnMgYW4gZXhpc3RpbmcgZGV2aWNlCj4+PiBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEg bmV3IG9uZSB3aGVuIHN1Y2ggZGV2aWNlIGFscmVhZHkgZXhpc3RzCj4+PiBpbiB0aGUgc2FtZSgh KSBjaGFpbi4KPj4+Cj4+PiBUaGUgY2hhbmdlIGl0IG1ha2VzIGhhcyByZWFsbHkgbm90aGluZyB0 byBkbyB3aXRoIHRocmVhZGluZyBvcgo+Pj4gYW55dGhpbmcgYXJvdW5kIGl0Lgo+Pgo+PiBUaGUg Y2hhbmdlIG1ha2VzIGV4aXN0aW5nIHRocmVhZC1zYWZlIGh3Y29udGV4dCBBUElzIHVuc2FmZS4g IFRoYXQgaXMKPj4gZGVmaW5pdGVseSBub3QgIm5vdGhpbmcgdG8gZG8gd2l0aCB0aHJlYWRpbmci LCBhbmQgaGFzIHRvIGJlIHJlc29sdmVkCj4+IHNpbmNlIHRoZXkgY2FuIGN1cnJlbnRseSBiZSBj YWxsZWQgZnJvbSBjb250ZXh0cyB3aGljaCBleHBlY3QgdGhyZWFkLQo+PiBzYWZldHkgKHN1Y2gg YXMgbWFraW5nIGZpbHRlcmdyYXBocykuCj4gCj4gQXMgSSBzYWlkLCBJJ20gbm90IGF3YXJlIHRo YXQgZmlsdGVyZ3JhcGggY3JlYXRpb24gd291bGQgYmUgYSBjb250ZXh0Cj4gd2hpY2ggcmVxdWly ZXMgdGhyZWFkLXNhZmV0eSwgZXZlbiB3aGVuIGNvbnNpZGVyaW5nIGZyYW1lcyB3aGljaCBnZXQK PiBwdXNoZWQgaW50byBhIGZpbHRlcmdyYXBoIChsaWtlIGZyb20gYSBkZWNvZGVyKS4KClVzZXIg cHJvZ3JhbXMgY2FuIGRvIHdoYXRldmVyIHRoZXkgbGlrZSB3aXRoaW4gdGhlIEFQSSBjb25zdHJh aW50cy4KCj4gQ291bGQgeW91IHBsZWFzZSBzaG93IGEgY29tbWFuZCBsaW5lIHdoaWNoIGNhdXNl cyBhIHNpdHVhdGlvbiB3aGVyZQo+IGRldmljZV9kZXJpdmUgaXMgYmVpbmcgY2FsbGVkIGZyb20g bXVsdGlwbGUgdGhyZWFkcz8KCkdpdmVuIHRoYXQgdGhlIGZmbXBlZyB1dGlsaXR5IGlzIGN1cnJl bnRseSBlbnRpcmVseSBzaW5nbGUtdGhyZWFkZWQsIHRoaXMgd2lsbCBvbmx5IGhhcHBlbiBvbmNl IHRoZSBpbnRlbmRlZCBwbGFucyBmb3IgYWRkaW5nIHRocmVhZGluZyB0byBpdCBhcmUgY29tcGxl dGUuCgpXaXRoIHRoYXQsIGl0IHdpbGwgYmUgdHJ1ZSBmb3Igc29tZXRoaW5nIHdoaWNoIG1ha2Vz IHR3byBmaWx0ZXJncmFwaHMgYW5kIHVzZXMgZGVyaXZhdGlvbiBpbiBib3RoIG9mIHRoZW0uICBG b3IgZXhhbXBsZTosIHRoaXMgY3VycmVudGx5IG1ha2VzIHR3byBpbmRlcGVuZGVudCBWQUFQSSBk ZXZpY2VzLCBidXQgZXF1YWxseSBjb3VsZCByZXVzZSB0aGUgc2FtZSBkZXZpY2U6CgojIGZmbXBl ZyAteSAtZiBrbXNncmFiIC1pIC9kZXYvZHJpL2NhcmQwIC12ZiBod21hcD1kZXJpdmVfZGV2aWNl PXZhYXBpLHNjYWxlX3ZhYXBpPWZvcm1hdD1udjEyIC1jOnYgaDI2NF92YWFwaSBvdXQxLm1wNCAt dmYgaHdtYXA9ZGVyaXZlX2RldmljZT12YWFwaSxzY2FsZV92YWFwaT13PTEyODA6aD03MjA6Zm9y bWF0PW52MTIgLWM6diBoMjY0X3ZhYXBpIG91dDIubXA0Cgo+Pj4+Pj4gKiBJJ20gbm90IHN1cmUg dGhhdCBpdCBpcyByZWFzb25hYmxlIHRvIGlnbm9yZSBvcHRpb25zLiAgSWYgYW4KPj4+Pj4+IHVu cmVsYXRlZCBjb21wb25lbnQgZGVyaXZlZCBhIGRldmljZSBiZWZvcmUgeW91IHdpdGggc3BlY2lh bAo+Pj4+IG9wdGlvbnMsCj4+Pj4+PiB5b3UgbWlnaHQgZ2V0IHRoYXQgZGV2aWNlIGV2ZW4gaWYg eW91IGhhdmUgaW5jb21wYXRpYmxlIGRpZmZlcmVudAo+Pj4+Pj4gb3B0aW9ucy4KPj4+Pj4KPj4+ Pj4gSSB1bmRlcnN0YW5kIHdoYXQgeW91IG1lYW4sIGJ1dCB0aGlzIGlzIG91dHNpZGUgdGhlIHNj b3BlIG9mCj4+Pj4+IHRoaXMgcGF0Y2hzZXQsIGJlY2F1c2Ugd2hlbiB5b3Ugd291bGQgd2FudCB0 byBkbyB0aGlzLCBpdAo+Pj4+PiB3b3VsZCBuZWVkIHRvIGJlIGltcGxlbWVudGVkIGZvciBkZXJp dmF0aW9uIGluIGdlbmVyYWwsIG5vdAo+Pj4+PiBpbiB0aGlzIHBhdGNoc2V0IHdoaWNoIG9ubHkg YWRkcyByZXZlcnNlLXNlYXJjaCB0byB0aGUKPj4+Pj4gZXhpc3RpbmcgZGVyaXZhdGlvbiBmdW5j dGlvbmFsaXR5Lgo+Pj4+Cj4+Pj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgdGhhdD8g IFRoZSBmZWF0dXJlIGFscmVhZHkgZXhpc3RzOwo+PiBoZXJlCj4+Pj4gaXMgYSBjb25jcmV0ZSBl eGFtcGxlIG9mIHdoZXJlIHlvdSB3b3VsZCBnZXQgdGhlIHdyb25nIHJlc3VsdDoKPj4+Pgo+Pj4+ IFN0YXJ0IHdpdGggVkFBUEkgZGV2aWNlIEEuCj4+Pj4KPj4+PiBDb21wb25lbnQgUCBkZXJpdmVz IFZ1bGthbiBkZXZpY2UgQiB3aXRoIHNvbWUgZXh0ZW5zaW9uIG9wdGlvbnMgWC4KPj4+Pgo+Pj4+ IENvbXBvbmVudCBRIHdhbnRzIHRoZSBzYW1lIGRldmljZSBhcyBQLCBzbyBpdCBkZXJpdmVzIGFn YWluIHdpdGgKPj4+PiBleHRlbnNpb24gb3B0aW9ucyBYIGFuZCBnZXRzIEIuCj4+Pj4KPj4+PiBF dmVyeXRoaW5nIHdvcmtzIGZpbmUgZm9yIGEgd2hpbGUuCj4+Pj4KPj4+PiBMYXRlciwgdW5yZWxh dGVkIGNvbXBvbmVudCBSIGlzIGluc2VydGVkIGJlZm9yZSBQIGFuZCBRLiAgSXQgd2FudHMKPj4g YQo+Pj4+IFZ1bGthbiBkZXZpY2UgQyB3aXRoIGV4dGVuc2lvbiBvcHRpb25zIFksIHNvIGl0IGRl cml2ZXMgdGhhdC4KPj4+Pgo+Pj4+IE5vdyBjb21wb25lbnQgUSBpcyBicm9rZW4gYmVjYXVzZSBp dCBnZXRzIEMgaW5zdGVhZCBvZiBCIGFuZCBoYXMKPj4gdGhlCj4+Pj4gd3JvbmcgZXh0ZW5zaW9u cyBlbmFibGVkLgo+Pj4KPj4+IEFzIHBlciB5b3VyIHJlcXVlc3QsIHRoaXMgcGF0Y2hzZXQncyBj aGFuZ2VzIGFyZSBub3cgbGltaXRlZCB0bwo+Pj4gdXNlIGZmbXBlZyBjbGkuIEFuZCB0aGVyZSBp cyBjdXJyZW50bHkgbm8gc3VwcG9ydCBmb3IgImV4dGVuc2lvbgo+Pj4gb3B0aW9ucyIgd2hlbiBk ZXJpdmluZyBhIGRldmljZS4KPj4KPj4gWWVzIHRoZXJlIGlzIC0gc2VlIHRoZSAiaW5zdGFuY2Vf ZXh0ZW5zaW9ucyIgYW5kICJkZXZpY2VfZXh0ZW5zaW9ucyIKPj4gb3B0aW9ucyB0byBWdWxrYW4g ZGV2aWNlIGRlcml2YXRpb24uICAoSGVuY2UgdGhlIFZBQVBJK1Z1bGthbgo+PiBleGFtcGxlLikK PiAKPiBPSywgYnV0IHdoZW4gZGVyaXZpbmcgYSBkZXZpY2UgdmlhIGNvbW1hbmQgbGluZSwgaXQg ZG9lc24ndCBjb25zaWRlcgo+IHN1Y2ggcGFyYW1ldGVycyBpbiB0aGUgY3VycmVudCBkZXZpY2Vf ZGVyaXZlIGZ1bmN0aW9uLCBhbmQgaGVuY2UgaXQncwo+IG5vdCBzb21ldGhpbmcgdGhhdCBjYW4g YmUgYnVyZGVuZWQgb250byB0aGlzIHBhdGNoc2V0LgoKVGhlbiBpdCBzb3VuZHMgbGlrZSB5b3Ug d2FudCB0aGlzIGZ1bmN0aW9uIHRvIGJlIHBhcnQgb2YgdGhlIGZmbXBlZyB1dGlsaXR5LCBub3Qg aW5zaWRlIG9uZSBvZiB0aGUgbGlicmFyaWVzIHdoaWNoIGhhdmUgb3RoZXIgdXNlcnMuCgo+Pj4g V2hhdCBJIG1lYW50IGFib3ZlIGlzIHRoaXM6Cj4+Pgo+Pj4gQXNzdW1lIHRoaXMgcGF0Y2hzZXQg d291bGRuJ3QgYmUgYXBwbGllZCwgYnV0IGEgcGF0Y2hzZXQgd291bGQKPj4+IGJlIGFwcGxpZWQg dGhhdCBhbGxvd3MgdG8gc3BlY2lmeSAiZXh0ZW5zaW9uIG9wdGlvbnMiLgo+Pj4gVGhlbiwgZXZl biB3aXRob3V0IHRoaXMgcGF0Y2hzZXQsIEkgY291bGQgY29uc3RydWN0IGEgc2ltaWxhcgo+Pj4g ZXhhbXBsZSwgd2hlcmUgeW91IHdvdWxkIGdldCB0aGUgc2FtZSBkZXZpY2Ugd2hlbiBkZXJpdmlu Zwo+Pj4gdHdvIHRpbWVzIGZyb20gdGhlIHNhbWUgZGV2aWNlIGJ1dCB3aXRoIGRpZmZlcmVudCBl eHRlbnNpb24KPj4+IG9wdGlvbnMuCj4+Cj4+IEhvdz8KPiAKPiBWQUFQSSA+PiBRU1YoUGFyYW0x KSA+PiBPcGVuQ0wKPiAKPiBOb3csIGZyb20gT3BlbkNMLCB5b3Ugd2FudCB0byBkZXJpdmUgUVNW IGJ1dCB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzCj4gKFBhcmFtMikuIFlvdSB3b24ndCBnZXQg YSBuZXcgZGV2aWNlLCB5b3UgZ2V0IHRoZSBleGlzdGluZyBRU1YgZGV2aWNlLgoKVGhpcyBkb2Vz bid0IG1ha2Ugc2Vuc2UgLSByZW1lbWJlciB0aGF0IGRldmljZSBkZXJpdmF0aW9uIGlzIHVuaWRp cmVjdGlvbmFsLCBhbmQgT3BlbkNMIGlzIGEgbGVhZiBBUEkgd2hpY2ggY2FuIG9ubHkgZGVyaXZl IGZyb20gb3RoZXIgdGhpbmdzLiAgVGhlICJkZXJpdmUiIG9wZXJhdGlvbiB0aGVyZSBoYXMgdG8g YmUgaW50ZXJwcmV0ZWQgYXMgInJldHVybiB0aGUgZGV2aWNlIHRoaXMgd2FzIGRlcml2ZWQgZnJv bSIsIGluIHdoaWNoIGNhc2Ugb3B0aW9ucyBkb24ndCBtYWtlIHNlbnNlLgoKKEluZGVlZCwgaXQg c2VlbXMgbGlrZSBhIGdvb2QgaWRlYSB0byBkaXNhbGxvdyBvcHRpb25zIGluIHRoYXQgY2FzZS4g IEkgd2lsbCBwcmVwYXJlIGEgcGF0Y2ggdG8gdGhhdCBlZmZlY3QuKQoKPj4gVGhlIGV4aXN0aW5n IGRlcml2YXRpb24gc2V0dXAgYWx3YXlzIG1ha2VzIGEgbmV3IGRldmljZSwgc28geW91IGNhbid0 Cj4+IGFjY2lkZW50YWxseSBnZXQgYW4gb2xkIG9uZS4KPiAKPiBObywgbm90IGFsd2F5cywgc2Vl IGFib3ZlLgo+IAo+PiBUaGUgZXhpc3Rpbmcgd2F5IG9mIHJldXNpbmcgZGV2aWNlcyBpcyB0byBr ZWVwIHRoZSByZWZlcmVuY2UgYW5kIHJldXNlCj4+IGl0IGRpcmVjdGx5LCB3aGljaCBtZWFucyB5 b3UgbmVlZCB0byBwYXNzIHRoZSByZWZlcmVuY2UgYXJvdW5kCj4+IGV4cGxpY2l0bHkgYW5kIHRo ZXJlIGlzIG5vIHByb2JsZW0uCj4gCj4gWW91IGNhbiBkbyB0aGlzIGFzIEFQSSB1c2VyLCBidXQg dGhpcyBwYXRjaCBpcyBhYm91dCBmZm1wZWcgY2xpIGFuZCBhcwo+IHBlciB5b3VyIHJlcXVlc3Qg bGltaXRlZCB0byBmZm1wZWcgY2xpIHVzYWdlLgo+IAo+IAo+Pj4+IENhbiB5b3UgZXhwbGFpbiB5 b3VyIGV4YW1wbGUgZnVydGhlcj8KPj4+Cj4+PiBNYXliZSB3ZSBzaG91bGQgZ2V0IGNsZWFyIGFi b3V0IHdoYXQgdGhpcyBwYXRjaHNldCBkb2VzIGV4YWN0bHkuCj4+PiBMZXQncyBsb29rIGF0IHRo ZSBmb2xsb3dpbmcgZGVyaXZhdGlvbiBjaGFpbiBvZiBkZXZpY2VzOgo+Pj4KPj4+IEEKPj4+IOKU nOKUgCBYCj4+PiDilIIgIOKUlOKUgCBZCj4+PiDilJzilIAgQgo+Pj4g4pSCICDilJTilIAgQwo+ Pj4g4pSU4pSAIFYKPj4+ICAgICAg4pSU4pSAIFcKPj4+Cj4+PiBUaGUgbWVhbmluZyBpczoKPj4+ Cj4+PiAtIFkgaXMgZGVyaXZlZCBmcm9tIFgsIFggaXMgZGVyaXZlZCBmcm9tIEEKPj4+IC0gQyBp cyBkZXJpdmVkIGZyb20gQiwgQiBpcyBkZXJpdmVkIGZyb20gQQo+Pj4gLSBXIGlzIGRlcml2ZWQg ZnJvbSBWLCBWIGlzIGRlcml2ZWQgZnJvbSBBCj4+Pgo+Pj4gSW4gdGhlIGV4aXN0aW5nIGltcGxl bWVudGF0aW9uLCBlYWNoIGRldmljZSAia25vd3MiIGl0cyBwYXJlbnQKPj4+ICh2aWEgdGhlICdz b3VyY2VfZGV2aWNlJyBmaWVsZCkuCj4+Pgo+Pj4gV2hlbiB5b3UgY2FsbCBhdl9od2RldmljZV9j dHhfY3JlYXRlX2Rlcml2ZWQoKSBhbmQgc3BlY2lmeSAiQyIKPj4+IGFzIHRoZSBzb3VyY2UgZGV2 aWNlLCB0aGVuIGl0IHdpbGwgaXRlcmF0ZSB0aGUgdHJlZSB1cHdhcmRzLAo+Pj4gc28gd2hlbiBC IGlzIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSwgaXQgd2lsbCByZXR1cm4gQiBvciBpZgo+Pj4gQSBp cyBvZiB0aGUgcmVxdWVzdGVkIHR5cGUsIGl0IHdpbGwgcmV0dXJuIEEuCj4+PiBPdGhlcndpc2Us IGl0IHdpbGwgY3JlYXRlIGEgbmV3IGRldmljZSBvZiB0aGUgcmVxdWVzdGVkIHR5cGUKPj4+IGFu ZCBzZXRzIEMgYXMgaXRzIHBhcmVudC4KPj4+Cj4+PiBCdXQgaXQgZG9lc24ndCByZXR1cm4gWCwg WSwgViBvciBXICh3aGVuIGFueSB3b3VsZCBtYXRjaCB0aGUKPj4+IHJlcXVlc3RlZCB0eXBlKS4K Pj4+Cj4+PiBUaGlzIGlzIHRoZSBjdXJyZW50IGJlaGF2aW9yLgo+Pj4KPj4+Cj4+PiBXaGF0IHRo aXMgcGF0Y2hzZXQgZG9lcyBpcyB0aGF0IHdlIGFsc28gc3RvcmUgdGhlIGRlcml2ZWQKPj4+IGNo aWxkcmVuIGZvciBlYWNoIGRldmljZSAoZGVyaXZlZF9kZXZpY2VzIGFycmF5KS4KPj4+Cj4+PiBJ biB0aGUgZXhhbXBsZSBhYm92ZSwgaXQgbWVhbnMgaGF0IEEgaGFzIHJlZmVyZW5jZXMgdG8KPj4+ IFgsIEIgYW5kIFYuIFggdG8gWSwgQiB0byBDIGFuZCBWIHRvIFcuCj4+Pgo+Pj4gVGhlIGJlaGF2 aW9yIG9mIHRoZSBuZXcgZnVuY3Rpb24gaXMgYXMgZm9sbG93czoKPj4+Cj4+PiBXaGVuIHlvdSBj YWxsIGF2X2h3ZGV2aWNlX2N0eF9nZXRfb3JfY3JlYXRlX2Rlcml2ZWQoKSBhbmQgc3BlY2lmeQo+ PiAiQyIKPj4+IGFzIHRoZSBzb3VyY2UgZGV2aWNlLCB0aGVuIGl0IHdpbGwgaXRlcmF0ZSB0aGUg dHJlZSB1cHdhcmRzLAo+Pj4gc28gd2hlbiBCIGlzIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSwgaXQg d2lsbCByZXR1cm4gQiBvciBpZgo+Pj4gQSBpcyBvZiB0aGUgcmVxdWVzdGVkIHR5cGUsIGl0IHdp bGwgcmV0dXJuIEEgKGxpa2UgYmVmb3JlKS4KPj4+Cj4+PiBBZGRpdGlvbmFsbHksIGl0IHdpbGwg YWxzbyBpdGVyYXRlIGFsbCB0aHJvdWdoIG90aGVyIGNoaWxkcmVuCj4+PiBvZiBCIGFuZCBvdGhl ciBjaGlsZHJlbiBvZiBBLiBXaGljaCBtZWFucyB0aGF0IGlmIFgsIFksIFYgb3IgVwo+Pj4gbWF0 Y2hlcyB0aGUgcmVxdWVzdGVkIHR5cGUsIGl0IHdvdWxkIHJldHVybiBpdC4KPj4KPj4gTm8gaXQg ZG9lc24ndD8gIFlvdXIgbmV3IGZ1bmN0aW9uIGZpbmRfZGVyaXZlZF9od2RldmljZV9jdHgoKSBp cwo+PiBjYWxsZWQgb25seSBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSBkZXZpY2UsIGFuZCByZWN1 cnNlcyBpbnRvIGl0cwo+PiAodHJhbnNpdGl2ZSkgY2hpbGRyZW4uICBJdCBjYW4ndCByZXR1cm4g YW55IG9mIFgsIFksIFYgb3IgVyB3aGVuCj4+IHN0YXJ0aW5nIGZyb20gQy4KPiAKPiBPSywgdGhh dCdzIG15IG1pc3Rha2UuIEl0J3MgYmVlbiBhIHdoaWxlLi4uCj4gV2hhdCBJIGRlc2NyaWJlZCBp cyB0aGUgb3JpZ2luYWwgYmVoYXZpb3IuIFRoZXJlIHdlcmUgcmVhc29ucwo+IHRvIGxpbWl0IGl0 IHRoaXMgd2F5LgoKV2VsbCwgd2hpY2ggb25lIGlzIGlzIGFjdHVhbGx5IGludGVuZGVkIHRoZW4/ CgotIE1hcmsKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=