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 B7C2242287 for ; Fri, 17 Dec 2021 01:32:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 95D9D68AE57; Fri, 17 Dec 2021 03:32:27 +0200 (EET) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C7CF568ACE5 for ; Fri, 17 Dec 2021 03:32:20 +0200 (EET) Received: by mail-wm1-f52.google.com with SMTP id y83-20020a1c7d56000000b003456dfe7c5cso2065124wmc.1 for ; Thu, 16 Dec 2021 17:32:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pxwaS61YChEwNv5FFqbh016qqTuSL+e7D9eZkMcD8bw=; b=XUKCUAqXARxm+54a7po6PGhsa0vQ+RMCeriNioko3aPUwLXgW0PVR0YJwwby0epVBu 2Ediaz4PwD6QWvNeWQOZWx/CGD2d+cdVntLilFicKA3/23gpYO3JcRkenBEuGi3PjH98 x/a2Bqgv4JH6O5AnL890uKha5UOQ1Q//jatGc6uLnY0kMIJaKmBAja8iFBS8BPOLVM0t fBlu2CpO/N1rhJuEz9vB1/oO0n+ekHT+mCEHXHqq+rdzNCGuCqganMaV8jggQ9LIaBUy /8ICXqjM5nP0LCayHG8o6mu/qQlNR6GaTDDsf866md2CmJqWBFOjgzB9MclFkAIohIfO +Xfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pxwaS61YChEwNv5FFqbh016qqTuSL+e7D9eZkMcD8bw=; b=rLWk9pTDu+6xeZcE9L5jPqJ7J0DeXlg6zxaPM5rX73MQjrE2+QQ0Jt8O1SyzwG/4sN V94PN8Ss3g11nIvo9w8fgXWPFrH23iTML/ZUHEJevCQFLIQlcpFCUE7IEkuTh6tJS9A8 tk1Ey4TeMUqZsnZExqI9MT/f262Ao/z0JEVVA+zxemDkFkgkwjnWeH0rWENwacPxO4m+ +Jp2SEjVW/EGlMSXHkfD/k/c9JCTaV+y06vbQrvKRXRPAYEEjQe0aKv1+w9OzNsjlBab w83kRdBQsfiC5qiSbGE6ROT68/6gtFHE04ia0DvRypyt25Txdcf2yEteTBTp65/iSuVe 0ezw== X-Gm-Message-State: AOAM532tVfo9tQjNXlapB9m2UchIK0fmbcbQkv/isKCO/aXDb8VYgjqa mlvZYKOiFIyqfBzK/buyn/g= X-Google-Smtp-Source: ABdhPJysIiUJYLvR4sq1uxCKl02IJdLU0ntnQze/jewRhnspx+3Fdy9YYO+fVKxtBaVKxtLEfUXLzg== X-Received: by 2002:a05:600c:3554:: with SMTP id i20mr499197wmq.124.1639704740048; Thu, 16 Dec 2021 17:32:20 -0800 (PST) Received: from [10.10.10.172] (84-112-75-55.cable.dynamic.surfer.at. [84.112.75.55]) by smtp.gmail.com with ESMTPSA id d9sm5819998wre.52.2021.12.16.17.32.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Dec 2021 17:32:19 -0800 (PST) From: "Marvin Scholz" To: "Aman Karmani" Date: Fri, 17 Dec 2021 02:32:18 +0100 X-Mailer: MailMate (1.13.2r5673) Message-ID: <79F25DD5-D416-458A-9392-10B6E22F31F7@gmail.com> In-Reply-To: References: <20211216202858.77643-1-ffmpeg@tmm1.net> <20211216202858.77643-4-ffmpeg@tmm1.net> <795C47EE-2EB2-4D66-88B3-26D3B55B6D3F@gmail.com> <6043C5D9-8BA5-4EFA-BD67-04A64AF348AE@gmail.com> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v3 4/5] avfilter: add metal utilities 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 Cc: Richard Kern , FFmpeg development discussions and patches , philipl@overt.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: CgpPbiAxNyBEZWMgMjAyMSwgYXQgMjoxNCwgQW1hbiBLYXJtYW5pIHdyb3RlOgoKPiBPbiBUaHUs IERlYyAxNiwgMjAyMSBhdCAzOjEzIFBNIE1hcnZpbiBTY2hvbHogPGVwaXJhdDA3QGdtYWlsLmNv bT4gd3JvdGU6Cj4KPj4KPj4KPj4gT24gMTYgRGVjIDIwMjEsIGF0IDIzOjUzLCBBbWFuIEthcm1h bmkgd3JvdGU6Cj4+Cj4+PiBPbiBUaHUsIERlYyAxNiwgMjAyMSBhdCAyOjQ1IFBNIE1hcnZpbiBT Y2hvbHogPGVwaXJhdDA3QGdtYWlsLmNvbT4KPj4+IHdyb3RlOgo+Pj4KPj4+PiBPbiAxNiBEZWMg MjAyMSwgYXQgMjE6MjgsIEFtYW4gS2FybWFuaSB3cm90ZToKPj4+Pgo+Pj4+PiBGcm9tOiBBbWFu IEthcm1hbmkgPGFtYW5AdG1tMS5uZXQ+Cj4+Pj4+Cj4+Pj4KPj4+PiBUaGFua3MgZm9yIHlvdXIg d29yayBvbiB0aGlzISBTb21lIGNvbW1lbnRzIGlubGluZToKPj4+Pgo+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBBbWFuIEthcm1hbmkgPGFtYW5AdG1tMS5uZXQ+Cj4+Pj4+IC0tLQo+Pj4+PiAgbGliYXZm aWx0ZXIvbWV0YWwvdXRpbHMuaCB8IDM1ICsrKysrKysrKysrKysrKysrKysKPj4+Pj4gIGxpYmF2 ZmlsdGVyL21ldGFsL3V0aWxzLm0gfCA3Mwo+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKykK Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci9tZXRhbC91dGlscy5oCj4+Pj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvbWV0YWwvdXRpbHMubQo+Pj4+Pgo+Pj4+ PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvbWV0YWwvdXRpbHMuaCBiL2xpYmF2ZmlsdGVyL21l dGFsL3V0aWxzLmgKPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+Pj4gaW5kZXggMDAwMDAw MDAwMC4uYmQwMzE5ZjYzYwo+Pj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4+ICsrKyBiL2xpYmF2Zmls dGVyL21ldGFsL3V0aWxzLmgKPj4+Pj4gQEAgLTAsMCArMSwzNSBAQAo+Pj4+PiArLyoKPj4+Pj4g KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4+Pj4gKyAqCj4+Pj4+ICsgKiBGRm1w ZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+Pj4+ ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCj4+Pj4+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKPj4+Pj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgo+Pj4+PiB2ZXJzaW9uLgo+Pj4+PiArICoK Pj4+Pj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAo+Pj4+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+Pj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4+Pj4gR05VCj4+Pj4+ ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+Pj4+ PiArICoKPj4+Pj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+Pj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1w ZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4+Pj4gKyAqIEZvdW5kYXRp b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKPj4+ Pj4gMDIxMTAtMTMwMSBVU0EKPj4+Pj4gKyAqLwo+Pj4+PiArCj4+Pj4+ICsjaWZuZGVmIEFWRklM VEVSX01FVEFMX1VUSUxTX0gKPj4+Pj4gKyNkZWZpbmUgQVZGSUxURVJfTUVUQUxfVVRJTFNfSAo+ Pj4+PiArCj4+Pj4+ICsjaW5jbHVkZSA8TWV0YWwvTWV0YWwuaD4KPj4+Pj4gKyNpbmNsdWRlIDxD b3JlVmlkZW8vQ29yZVZpZGVvLmg+Cj4+Pj4+ICsKPj4+Pj4gK3ZvaWQgZmZfbWV0YWxfY29tcHV0 ZV9lbmNvZGVyX2Rpc3BhdGNoKGlkPE1UTERldmljZT4gZGV2aWNlLAo+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+ Cj4+Pj4+IHBpcGVsaW5lLAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQ8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPgo+Pj4+PiBlbmNvZGVyLAo+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNVSW50ZWdlciB3aWR0aCwg TlNVSW50ZWdlcgo+Pj4+PiBoZWlnaHQpOwo+Pj4+PiArCj4+Pj4+ICtDVk1ldGFsVGV4dHVyZVJl ZiBmZl9tZXRhbF90ZXh0dXJlX2Zyb21fcGl4YnVmKHZvaWQgKmF2Y2xhc3MsCj4+Pj4+ICsKPj4+ Pj4gQ1ZNZXRhbFRleHR1cmVDYWNoZVJlZgo+Pj4+PiB0ZXh0dXJlQ2FjaGUsCj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWUGl4ZWxCdWZmZXJS ZWYKPj4+Pj4gcGl4YnVmLAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgcGxhbmUsCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1UTFBpeGVsRm9ybWF0Cj4+Pj4+IGZvcm1hdCk7Cj4+Pj4+ ICsjZW5kaWYgLyogQVZGSUxURVJfTUVUQUxfVVRJTFNfSCAqLwo+Pj4+PiBkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvbWV0YWwvdXRpbHMubSBiL2xpYmF2ZmlsdGVyL21ldGFsL3V0aWxzLm0KPj4+ Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+Pj4gaW5kZXggMDAwMDAwMDAwMC4uNWRmMGVkNjAw ZQo+Pj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4+ICsrKyBiL2xpYmF2ZmlsdGVyL21ldGFsL3V0aWxz Lm0KPj4+Pj4gQEAgLTAsMCArMSw3MyBAQAo+Pj4+PiArLyoKPj4+Pj4gKyAqIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEZGbXBlZy4KPj4+Pj4gKyAqCj4+Pj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+Pj4+ICsgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+Pj4+ICsg KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKPj4+Pj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlcgo+Pj4+PiB2ZXJzaW9uLgo+Pj4+PiArICoKPj4+Pj4gKyAqIEZGbXBl ZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4+ PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKPj4+Pj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4+Pj4gR05VCj4+Pj4+ICsgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+Pj4+PiArICoKPj4+Pj4gKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKPj4+Pj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4+Pj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKPj4+Pj4gMDIxMTAtMTMwMSBV U0EKPj4+Pj4gKyAqLwo+Pj4+PiArCj4+Pj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2xvZy5oIgo+ Pj4+PiArI2luY2x1ZGUgPGxpYmF2ZmlsdGVyL21ldGFsL3V0aWxzLmg+Cj4+Pj4+ICsKPj4+Pj4g K3ZvaWQgZmZfbWV0YWxfY29tcHV0ZV9lbmNvZGVyX2Rpc3BhdGNoKGlkPE1UTERldmljZT4gZGV2 aWNlLAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ8TVRM Q29tcHV0ZVBpcGVsaW5lU3RhdGU+Cj4+Pj4+IHBpcGVsaW5lLAo+Pj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ8TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPgo+ Pj4+PiBlbmNvZGVyLAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlNVSW50ZWdlciB3aWR0aCwgTlNVSW50ZWdlcgo+Pj4+PiBoZWlnaHQpCj4+Pj4+ICt7Cj4+ Pj4+ICsgICAgW2VuY29kZXIgc2V0Q29tcHV0ZVBpcGVsaW5lU3RhdGU6cGlwZWxpbmVdOwo+Pj4+ PiArICAgIE5TVUludGVnZXIgdyA9IHBpcGVsaW5lLnRocmVhZEV4ZWN1dGlvbldpZHRoOwo+Pj4+ PiArICAgIE5TVUludGVnZXIgaCA9IHBpcGVsaW5lLm1heFRvdGFsVGhyZWFkc1BlclRocmVhZGdy b3VwIC8gdzsKPj4+Pj4gKyAgICBNVExTaXplIHRocmVhZHNQZXJUaHJlYWRncm91cCA9IE1UTFNp emVNYWtlKHcsIGgsIDEpOwo+Pj4+PiArICAgIEJPT0wgZmFsbGJhY2sgPSBZRVM7Cj4+Pj4+ICsg ICAgaWYgKEBhdmFpbGFibGUobWFjT1MgMTAuMTUsIGlPUyAxMSwgdHZPUyAxNC41LCAqKSkgewo+ Pj4+PiArICAgICAgICBpZiAoW2RldmljZSBzdXBwb3J0c0ZhbWlseTpNVExHUFVGYW1pbHlDb21t b24zXSkgewo+Pj4+PiArICAgICAgICAgICAgTVRMU2l6ZSB0aHJlYWRzUGVyR3JpZCA9IE1UTFNp emVNYWtlKHdpZHRoLCBoZWlnaHQsIDEpOwo+Pj4+PiArICAgICAgICAgICAgW2VuY29kZXIgZGlz cGF0Y2hUaHJlYWRzOnRocmVhZHNQZXJHcmlkCj4+Pj4+IHRocmVhZHNQZXJUaHJlYWRncm91cDp0 aHJlYWRzUGVyVGhyZWFkZ3JvdXBdOwo+Pj4+PiArICAgICAgICAgICAgZmFsbGJhY2sgPSBOTzsK Pj4+Pj4gKyAgICAgICAgfQo+Pj4+PiArICAgIH0KPj4+Pgo+Pj4+IFdoeSBub3QganVzdCBkbyBh biBlbHNlIGhlcmUgaW5zdGVhZCBvZiB0aGUgZmFsbGJhY2sgdmFyaWFibGU/Cj4+Pj4KPj4+Cj4+ PiBXZWxsIHRoZXJlJ3MgdHdvIGlmIHN0YXRlbWVudHMsIGFuZCB3ZSBuZWVkIHRvIHJ1biB0aGUg ZmFsbGJhY2sgb25seQo+Pj4gd2hlbgo+Pj4gYm90aCBmYWlsLiBTbyB3aGVyZSB3b3VsZCB0aGUg ZWxzZSBnbz8gSSB3b3VsZCBuZWVkIHRvIGR1cGxpY2F0ZSBpdAo+Pj4gdHdpY2UuCj4+Pgo+Pgo+ PiBPaCwgaXMgaXQgbm90IHBvc3NpYmxlIHRvIGp1c3QgYWRkIHRoZSBbZGV2aWNlCj4+IHN1cHBv cnRzRmFtaWx5Ok1UTEdQVUZhbWlseUNvbW1vbjNdCj4+IGFmdGVyIHRoZSBAYXZhaWxhYmxlIGNo ZWNrPyBPciBkb2VzIHRoYXQgbm90IHdvcmssIGp1c3QgbGlrZSBpdHMgaXMgbm90Cj4+IHBvc3Np YmxlIHRvCj4+IG5lZ2F0ZSBhIEBhdmFpbGFibGUgZm9yIHNvbWUgcmVhc29uPwo+Pgo+Cj4gSW5k ZWVkLCBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIG9ubHkgd2F5IHRvIHVzZSBpdCBpcyB3 aXRob3V0IGFueQo+IG5lZ2F0aW9uIG9yIG90aGVyIGNvbmRpdGlvbmFscy4KPgo+IEhlcmUncyB3 aGF0IHRoZSBjb21waWxlciBzYXlzIHdoZW4gSSB0cnkgd2hhdCB5b3Ugc3VnZ2VzdGVkOgo+Cj4g T0JKQ0MgbGliYXZmaWx0ZXIvbWV0YWwvdXRpbHMubwo+IGxpYmF2ZmlsdGVyL21ldGFsL3V0aWxz Lm06MzE6OTogd2FybmluZzogQGF2YWlsYWJsZSBkb2VzIG5vdCBndWFyZAo+IGF2YWlsYWJpbGl0 eSBoZXJlOyB1c2UgaWYgKEBhdmFpbGFibGUpIGluc3RlYWQKPiBbLVd1bnN1cHBvcnRlZC1hdmFp bGFiaWxpdHktZ3VhcmRdCj4gICAgIGlmIChAYXZhaWxhYmxlKG1hY09TIDEwLjE1LCBpT1MgMTEs IHR2T1MgMTQuNSwgKikgJiYgW2RldmljZQo+IHN1cHBvcnRzRmFtaWx5Ok1UTEdQVUZhbWlseUNv bW1vbjNdKSB7Cj4gICAgICAgICAgXgo+IDEgd2FybmluZyBnZW5lcmF0ZWQuCj4KCkFoLCB1bmZv cnR1bmF0ZeKApiBOZXZlcm1pbmQgdGhlbi4KCj4KPj4+Cj4+Pj4KPj4+Pj4gKyAgICBpZiAoZmFs bGJhY2spIHsKPj4+Pj4gKyAgICAgICAgTVRMU2l6ZSB0aHJlYWRncm91cHMgPSBNVExTaXplTWFr ZSgod2lkdGggKyB3IC0gMSkgLyB3LAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChoZWlnaHQgKyBoIC0gMSkgLyBoLAo+Pj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpOwo+Pj4+PiArICAgICAgICBbZW5jb2Rl ciBkaXNwYXRjaFRocmVhZGdyb3Vwczp0aHJlYWRncm91cHMKPj4+Pj4gdGhyZWFkc1BlclRocmVh ZGdyb3VwOnRocmVhZHNQZXJUaHJlYWRncm91cF07Cj4+Pj4+ICsgICAgfQo+Pj4+PiArfQo+Pj4+ PiArCj4+Pj4+ICtDVk1ldGFsVGV4dHVyZVJlZiBmZl9tZXRhbF90ZXh0dXJlX2Zyb21fcGl4YnVm KHZvaWQgKmN0eCwKPj4+Pj4gKwo+Pj4+PiBDVk1ldGFsVGV4dHVyZUNhY2hlUmVmCj4+Pj4+IHRl eHR1cmVDYWNoZSwKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZgo+Pj4+PiBwaXhidWYsCj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwbGFuZSwKPj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRMUGl4ZWxGb3Jt YXQKPj4+Pj4gZm9ybWF0KQo+Pj4+PiArewo+Pj4+PiArICAgIENWTWV0YWxUZXh0dXJlUmVmIHRl eCA9IE5VTEw7Cj4+Pj4+ICsgICAgQ1ZSZXR1cm4gcmV0Owo+Pj4+PiArCj4+Pj4+ICsgICAgcmV0 ID0gQ1ZNZXRhbFRleHR1cmVDYWNoZUNyZWF0ZVRleHR1cmVGcm9tSW1hZ2UoCj4+Pj4+ICsgICAg ICAgIE5VTEwsCj4+Pj4+ICsgICAgICAgIHRleHR1cmVDYWNoZSwKPj4+Pj4gKyAgICAgICAgcGl4 YnVmLAo+Pj4+PiArICAgICAgICBOVUxMLAo+Pj4+PiArICAgICAgICBmb3JtYXQsCj4+Pj4+ICsg ICAgICAgIENWUGl4ZWxCdWZmZXJHZXRXaWR0aE9mUGxhbmUocGl4YnVmLCBwbGFuZSksCj4+Pj4+ ICsgICAgICAgIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHRPZlBsYW5lKHBpeGJ1ZiwgcGxhbmUpLAo+ Pj4+PiArICAgICAgICBwbGFuZSwKPj4+Pj4gKyAgICAgICAgJnRleAo+Pj4+PiArICAgICk7Cj4+ Pj4+ICsgICAgaWYgKHJldCAhPSBrQ1ZSZXR1cm5TdWNjZXNzKSB7Cj4+Pj4+ICsgICAgICAgIGF2 X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBjcmVhdGUgQ1ZNZXRhbFRleHR1cmUK Pj4+Pj4gZnJvbSBpbWFnZTogJWRcbiIsIHJldCk7Cj4+Pj4+ICsgICAgICAgIHJldHVybiBOVUxM Owo+Pj4+PiArICAgIH0KPj4+Pj4gKwo+Pj4+PiArICAgIHJldHVybiB0ZXg7Cj4+Pj4+ICt9Cj4+ Pj4+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo+Pj4+Cj4+Pj4gTWlzc2luZyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCj4+Pj4KPj4+Cj4+PiBGaXhlZCBsb2NhbGx5LCB0aGFua3MuCj4+Pgo+ Pj4KPj4+Pgo+Pj4+PiAtLQo+Pj4+PiAyLjMzLjAKPj4+Pj4KPj4+Pj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4gZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdAo+Pj4+PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+Pj4+PiBodHRwczovL2ZmbXBl Zy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPj4+Pj4KPj4+Pj4gVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+Pj4+IGZmbXBlZy1kZXZlbC1yZXF1 ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4+Pj4KPj4KPj4KPj4K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWct ZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVn Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0 IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0 aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==