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 8584A4AA2E for ; Fri, 7 Jun 2024 02:32:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 21DBD68D72C; Fri, 7 Jun 2024 05:32:52 +0300 (EEST) Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 23A5A68D60B for ; Fri, 7 Jun 2024 05:32:43 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1717727554; bh=JZcfhOcN5ugRkBM+mLwY2m3e6V4ruAJgCfpuxO4LqTc=; h=Subject:From:In-Reply-To:Date:Cc:References:To; b=DS6h8kCkzIBkPT5J3rGc4qua4stwUDcft5Wocc81uVVG3T94K6V4hpNI1XDU8ifb4 l5jLhutlPyadHMc+YZy+Ulv6HYatltWyP9KGGydQCatv2zWzL9xQjw8gZqqL/BiEoL SChFa9cb6ryR0x2XfNqdRNEKJfEFUByg2q/KTNbQ= Received: from smtpclient.apple ([113.108.77.73]) by newxmesmtplogicsvrszc5-2.qq.com (NewEsmtp) with SMTP id 8211CC38; Fri, 07 Jun 2024 10:32:33 +0800 X-QQ-mid: xmsmtpt1717727553tpcwizzfq Message-ID: X-QQ-XMAILINFO: MFWpArBVhhGTqqfs6f8uIUSYJlCcD6AIh8oeKp6jq4a8SPI2qDNnfGiTNCiz8Q cMv7EDTIKTg0hEC36f4axZKFDFtvHfDNg60A4RJ//+cQ5AzgRkO+l0iavaLLfSrtieNr7x1czXpr Ubo6en+/8uulYQkegAAy3ihv3RZL3FA/W8jc2ekeSI8WIrttl3feUI82lyyjF3eWrch1BFoev1pB pdVw2E0O8Lcx1eP1Kg1QWHeOoKW1k03W09oZUElUta0ZO+1fAONnObQmn9dLfKMQdUBd1bg3ME4p znzxz5qrUYejb4J8Z+Qh/20tlNu7DHc4UpTrfddtwr8i7bjTiXnxLc4Rnfr1qczGq7wH2C5SjmlT DNqfJYr49Mm9LVXTdmBR+mvfHkZQdU+S6TuaJcRgUWhHD2+MqdNHImYAUj76sIX+ALUzfHu7OpwY /Qb9diTXysF5dIbg8h55BbZhSJEbTLRQY90Fh6DMK8fMcEoaAK4/jFHtTVVADc1a6aEHGTKYf3fb i4EaaEKkOb6yTorhIFAUbLy5LMgKP06d2F2ekOFSwrA/xWv1v7Dt0txFhqsXIS0WqCFNcy8DKVuE MpoDJX/1YrXVMaCyTQ76HAcCGy+u0beyyY6WIwiwV7eEed8HibVjPubMBp3b4kWLGhSsJ74uEXBc ZQSQvIwsmsB2www+cHGXy9GEAqYwW+xFDJ3qOwhc4xVHw92yI+zuQrgE05ACvFMh5V7zfPMURbHh ucdWtYrkUWpJST7Bj/o4A2utFrcNFON7MUrQrMBn/Cj7zLhy+axUcdI9bkHV6gRivs6UlPKYaG6Y Uumc/d2whFp9KOQNCaI0YDCdnyOxAkEgsuLJ+g8W0upaF/ENE8id9IWrvVYotzCag9bDHl5NanFJ PO2edhqQNWmCjDLF83GtY8tvtfrcwVqHzEPcUKnIInrt7bFdCIQ1eDNs4kATc32YXHOowhKwenKM OGi57/SmR4tg5SbO4x20/vV1DIO8I860f5Zm0ANyWxpIwS1CYcESFetRz5BAyl X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\)) From: Zhao Zhili In-Reply-To: Date: Fri, 7 Jun 2024 10:32:22 +0800 X-OQ-MSGID: <3F31A4CE-D8C3-416D-B1E2-C6190E3554CD@foxmail.com> References: <20240606115100.44233-1-hiccupzhu@gmail.com> To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3774.500.171.1.1) Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add sdlvsink for video display 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: Shiqi Zhu 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: Cgo+IE9uIEp1biA3LCAyMDI0LCBhdCAxMDoxMiwgSGljY3VwIFpodSA8aGljY3Vwemh1QGdtYWls LmNvbT4gd3JvdGU6Cj4gCj4gT24gVGh1LCA2IEp1biAyMDI0IGF0IDIwOjIwLCBaaGFvIFpoaWxp IDxxdWlua2JsYWNrQGZveG1haWwuY29tPiB3cm90ZToKPj4gCj4+IAo+PiBPbiBKdW4gNiwgMjAy NCwgYXQgMTk6NTEsIFNoaXFpIFpodSA8aGljY3Vwemh1QGdtYWlsLmNvbT4gd3JvdGU6Cj4+IAo+ PiAKPj4gSeKAmW0gYWZyYWlkIHRoaXMgaGFzIHRoZSBzYW1lIGlzc3VlIGFzIGxpYmF2ZGV2aWNl L3NkbFsxXS4KPj4gCj4+IFsxXSBodHRwczovL3BhdGNod29yay5mZm1wZWcub3JnL3Byb2plY3Qv ZmZtcGVnL3BhdGNoLzIwMjMwOTE4MDYzNzI4LjE5ODM3Ny0xLWhhaWhhby54aWFuZ0BpbnRlbC5j b20vCj4+IAo+IAo+IFRoYW5rIHlvdSBmb3IgdGhlIHJlbWluZGVyLiBUaGlzIHBhdGNoIGRvZXMg bm90IGhhdmUgdGhhdCBpc3N1ZS4gQWxsCj4gU0RMIGluaXRpYWxpemF0aW9uIGlzIHdpdGhpbiB0 aGUgZmlsdGVyX2ZyYW1lKCkgZnVuY3Rpb24sIHNvIHRoZXJlJ3MKPiBubyBwcm9ibGVtIHdpdGgg ZGlmZmVyZW50IHRocmVhZHMgYmVpbmcgY3JlYXRlZC4KCkluaXRpYWxpemF0aW9uIGFuZCByZW5k ZXIgaW4gdGhlIHNhbWUgdGhyZWFkIGlzIG9uZSBvZiB0aGUgaXNzdWVzLiBBbm90aGVyCmlzc3Vl IGlzIFNETCByZW5kZXIgc2hvdWxkIGJlIHJ1biBpbiBtYWluIHRocmVhZC4gTWF5YmUgaXTigJlz IG5vdCB0aGUKZHV0eSBvZiB0aGlzIGZpbHRlciB0byBjb250cm9sIHdoaWNoIHRocmVhZCB0byBi ZSBjYWxsZWQsIGJ1dCB0aGlzIHdvdWxkbuKAmXQKd29yayB3aXRoIGZmbXBlZyBjbWQuCgo+IAo+ IEZ1cnRoZXJtb3JlLCBteSBleHBlcnRpc2UgbGllcyBwcmltYXJpbHkgaW4gbXVsdGltZWRpYSBm cmFtZXdvcmsKPiBkZXZlbG9wbWVudC4gSSd2ZSBub3RpY2VkIHRoYXQgdGhlIGxpYmF2ZmlsdGVy IG5vdyBvZmZlcnMgYQo+IGNvbXByZWhlbnNpdmUgYmFzaWMgZnJhbWV3b3JrLCBwcm92aWRpbmcg dmFyaW91cyB0eXBlcyBvZiBmaWx0ZXJzIHN1Y2gKPiBhcyBzcmMsIHRyYW5zLCBhbmQgc2luayB3 aXRoaW4gdGhlIGZpbHRlci1ncmFwaC4KCmxpYmF2ZGV2aWNlL3NkbCBzaG91bGQgd29yayBmb3Ig dGhpcyBjYXNlLCBhbHRob3VnaCBpdOKAmXMgZGVwcmVjYXRlZCwKYW5kIGl0IHN1cHBvcnQgbW9y ZSBwaXhlbCBmb3JtYXRzIHRoYW4gY3VycmVudCBwYXRjaC4KClRCSCwgYSB2aWRlb3NpbmsgaW4g bGliYXZmaWx0ZXIgbWFrZSBzZW5zZSB0aGFuIGxpYmF2ZGV2aWNlLiBCdXQgd2l0aAp0aGUgcmVh c29ucyBtZW50aW9uZWQgZWFybGllciwgSSBkb27igJl0IGtub3cgaG93IHRvIG1ha2UgcHJvZ3Jl c3MuCgo+IAo+IFRoZXJlIGFyZSBhbHJlYWR5IG1hbnkgc3JjIGFuZCB0cmFucyB0eXBlIGZpbHRl cnMgaW4gdGhlIGV4aXN0aW5nCj4gY29kZWJhc2UsIHdpdGggcmljaCBmdW5jdGlvbmFsaXRpZXMu IEhvd2V2ZXIsIHRoZXJlIGFyZSBvbmx5IHR3byBzaW5rCj4gZmlsdGVyczogYnVmZmVyc2luayBh bmQgbnVsbHNpbmssIHdoaWNoIGlzIG5vdCBxdWl0ZSBzdWZmaWNpZW50IGZvcgo+IHRoZSBkZXZl bG9wbWVudCBvZiBmaWx0ZXItZ3JhcGhzLgo+IAo+IFRodXMsIEkgc3VibWl0dGVkIHRoaXMgcGF0 Y2ggd2l0aCB0aGUgaW50ZW50aW9uIG9mIGVucmljaGluZyB0aGUgdHlwZXMKPiBvZiBzaW5rIGZp bHRlcnMgYXZhaWxhYmxlLgo+IAo+IE1hbnkgdGhhbmtzIGZvciB5b3VyIHZhbHVhYmxlIGNvbW1l bnRzLgo+IAo+PiAKPj4gU2lnbmVkLW9mZi1ieTogU2hpcWkgWmh1IDxoaWNjdXB6aHVAZ21haWwu Y29tPgo+PiAtLS0KPj4gY29uZmlndXJlICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4+IGxp YmF2ZmlsdGVyL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwo+PiBsaWJhdmZpbHRlci9hbGxmaWx0 ZXJzLmMgICAgIHwgICAxICsKPj4gbGliYXZmaWx0ZXIvdnNpbmtfc2RsdnNpbmsuYyB8IDE0MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiA0IGZpbGVzIGNoYW5nZWQsIDE0 NSBpbnNlcnRpb25zKCspCj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci92c2lua19z ZGx2c2luay5jCj4+IAo+PiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4+IGlu ZGV4IDZjNWI4YWFiOWEuLjk2OGI1Yzg5MTIgMTAwNzU1Cj4+IC0tLSBhL2NvbmZpZ3VyZQo+PiAr KysgYi9jb25maWd1cmUKPj4gQEAgLTM5NzcsNiArMzk3Nyw3IEBAIHhzdGFja19xc3ZfZmlsdGVy X2RlcHM9ImxpYm1meCIKPj4geHN0YWNrX3Fzdl9maWx0ZXJfc2VsZWN0PSJxc3Z2cHAiCj4+IHBh ZF92YWFwaV9maWx0ZXJfZGVwcz0idmFhcGlfMSIKPj4gZHJhd2JveF92YWFwaV9maWx0ZXJfZGVw cz0idmFhcGlfMSIKPj4gK3NkbHZzaW5rX2ZpbHRlcl9kZXBzPSJzZGwyIgo+PiAKPj4gIyBleGFt cGxlcwo+PiBhdmlvX2h0dHBfc2VydmVfZmlsZXNfZGVwcz0iYXZmb3JtYXQgYXZ1dGlsIGZvcmsi Cj4+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9NYWtlZmlsZSBiL2xpYmF2ZmlsdGVyL01ha2Vm aWxlCj4+IGluZGV4IDU5OTJmZDE2MWYuLmZlYWM2YjQ2NGQgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2 ZmlsdGVyL01ha2VmaWxlCj4+ICsrKyBiL2xpYmF2ZmlsdGVyL01ha2VmaWxlCj4+IEBAIC02MTYs NiArNjE2LDcgQEAgT0JKUy0kKENPTkZJR19ZVVZURVNUU1JDX0ZJTFRFUikgICAgICAgICAgICAg Kz0gdnNyY190ZXN0c3JjLm8KPj4gT0JKUy0kKENPTkZJR19aT05FUExBVEVfRklMVEVSKSAgICAg ICAgICAgICAgKz0gdnNyY190ZXN0c3JjLm8KPj4gCj4+IE9CSlMtJChDT05GSUdfTlVMTFNJTktf RklMVEVSKSAgICAgICAgICAgICAgICs9IHZzaW5rX251bGxzaW5rLm8KPj4gK09CSlMtJChDT05G SUdfU0RMVlNJTktfRklMVEVSKSAgICAgICAgICAgICAgICs9IHZzaW5rX3NkbHZzaW5rLm8KPj4g Cj4+ICMgbXVsdGltZWRpYSBmaWx0ZXJzCj4+IE9CSlMtJChDT05GSUdfQTNEU0NPUEVfRklMVEVS KSAgICAgICAgICAgICAgICs9IGF2Zl9hM2RzY29wZS5vCj4+IGRpZmYgLS1naXQgYS9saWJhdmZp bHRlci9hbGxmaWx0ZXJzLmMgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKPj4gaW5kZXggYzUz MjY4MmZjMi4uZDVmOTQyZmZiNSAxMDA2NDQKPj4gLS0tIGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVy cy5jCj4+ICsrKyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYwo+PiBAQCAtNTc5LDYgKzU3OSw3 IEBAIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92c3JjX3l1dnRlc3RzcmM7Cj4+IGV4dGVybiBj b25zdCBBVkZpbHRlciBmZl92c3JjX3pvbmVwbGF0ZTsKPj4gCj4+IGV4dGVybiBjb25zdCBBVkZp bHRlciBmZl92c2lua19udWxsc2luazsKPj4gK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92c2lu a19zZGx2c2luazsKPj4gCj4+IC8qIG11bHRpbWVkaWEgZmlsdGVycyAqLwo+PiBleHRlcm4gY29u c3QgQVZGaWx0ZXIgZmZfYXZmX2EzZHNjb3BlOwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIv dnNpbmtfc2RsdnNpbmsuYyBiL2xpYmF2ZmlsdGVyL3ZzaW5rX3NkbHZzaW5rLmMKPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMC4uNjMwZjcxOWM3ZQo+PiAtLS0gL2Rl di9udWxsCj4+ICsrKyBiL2xpYmF2ZmlsdGVyL3ZzaW5rX3NkbHZzaW5rLmMKPj4gQEAgLTAsMCAr MSwxNDIgQEAKPj4gKy8qCj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4+ICsg Kgo+PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgo+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsg KiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+PiArICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsg KiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlCj4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo IEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1 ZGUgImF2ZmlsdGVyLmgiCj4+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPj4gKyNpbmNsdWRlICJs aWJhdnV0aWwvaW50ZXJuYWwuaCIKPj4gKyNpbmNsdWRlIDxTREwyL1NETC5oPgo+PiArI2luY2x1 ZGUgPHVuaXN0ZC5oPgo+PiArCj4+ICt0eXBlZGVmIHN0cnVjdCB7Cj4+ICsgICAgU0RMX1dpbmRv dyAgICp3aW5kb3c7Cj4+ICsgICAgU0RMX1JlbmRlcmVyICpyZW5kZXI7Cj4+ICsgICAgU0RMX1Rl eHR1cmUgICp0ZXh0dXJlOwo+PiArfSBTRExWaWRlb0NvbnRleHQ7Cj4+ICsKPj4gK3N0YXRpYyBp bnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKPj4gK3sKPj4gKyAgICBpZiAoU0RMX0luaXQo U0RMX0lOSVRfVklERU8pIDwgMCkKPj4gKyAgICB7Cj4+ICsgICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19FUlJPUiwgIlNETDIgY291bGQgbm90IGluaXRpYWxpemUhICVzXG4iLCBTRExfR2V0RXJy b3IoKSk7Cj4+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArICAgIH0KPj4gKwo+PiArICAg IFNETF9Qb2xsRXZlbnQoTlVMTCk7Cj4+ICsgICAgU0RMX1NldEhpbnQoU0RMX0hJTlRfVklERU9f WDExX05FVF9XTV9CWVBBU1NfQ09NUE9TSVRPUiwgIjAiKTsKPj4gKwo+PiArICAgIHJldHVybiAw Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCB1bmluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgp Cj4+ICt7Cj4+ICsgICAgU0RMVmlkZW9Db250ZXh0ICpzaW5rID0gY3R4LT5wcml2Owo+PiArCj4+ ICsgICAgaWYgKHNpbmstPnRleHR1cmUpIHsKPj4gKyAgICAgICAgU0RMX0Rlc3Ryb3lUZXh0dXJl KHNpbmstPnRleHR1cmUpOwo+PiArICAgICAgICBzaW5rLT50ZXh0dXJlID0gTlVMTDsKPj4gKyAg ICB9Cj4+ICsKPj4gKyAgICBpZiAoc2luay0+cmVuZGVyKSB7Cj4+ICsgICAgICAgIFNETF9EZXN0 cm95UmVuZGVyZXIoc2luay0+cmVuZGVyKTsKPj4gKyAgICAgICAgc2luay0+cmVuZGVyID0gTlVM TDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBpZiAoc2luay0+d2luZG93KSB7Cj4+ICsgICAgICAg IFNETF9EZXN0cm95V2luZG93KHNpbmstPndpbmRvdyk7Cj4+ICsgICAgICAgIHNpbmstPndpbmRv dyA9IE5VTEw7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgU0RMX1F1aXQoKTsKPj4gK30KPj4gKwo+ PiArc3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpm cmFtZSkKPj4gK3sKPj4gKyAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IGxpbmstPmRzdDsKPj4g KyAgICBTRExWaWRlb0NvbnRleHQgKnNpbmsgPSBjdHgtPnByaXY7Cj4+ICsgICAgU0RMX1JlbmRl cmVySW5mbyByZW5kZXJlcl9pbmZvOwo+PiArCj4+ICsgICAgaWYgKCFzaW5rLT53aW5kb3cpIHsK Pj4gKyAgICAgICAgc2luay0+d2luZG93ID0gU0RMX0NyZWF0ZVdpbmRvdygiWVVWIFBsYXllciIs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNETF9XSU5ET1dQ T1NfVU5ERUZJTkVELCBTRExfV0lORE9XUE9TX1VOREVGSU5FRCwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPndpZHRoLCBmcmFtZS0+aGVpZ2h0LCBT RExfV0lORE9XX1NIT1dOIHwgU0RMX1dJTkRPV19SRVNJWkFCTEUpOwo+PiArICAgICAgICBpZiAo IXNpbmstPndpbmRvdykgewo+PiArICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9S LCAiU0RMMiBjb3VsZCBub3QgY3JlYXRlIHdpbmRvdyAlc1xuIiwgU0RMX0dldEVycm9yKCkpOwo+ PiArICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICsgICAgICAgIH0KPj4gKyAgICB9Cj4+ ICsKPj4gKyAgICBpZiAoIXNpbmstPnJlbmRlcikgewo+PiArICAgICAgICBzaW5rLT5yZW5kZXIg PSBTRExfQ3JlYXRlUmVuZGVyZXIoc2luay0+d2luZG93LCAtMSwgMCk7Cj4+ICsgICAgICAgIGlm ICghc2luay0+cmVuZGVyKSB7Cj4+ICsgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJS T1IsICJTREwyIGNvdWxkIG5vdCBjcmVhdGUgcmVuZGVyICVzXG4iLCBTRExfR2V0RXJyb3IoKSk7 Cj4+ICsgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gKyAgICAgICAgfQo+PiArICAgICAg ICBTRExfU2V0SGludChTRExfSElOVF9SRU5ERVJfU0NBTEVfUVVBTElUWSwgImxpbmVhciIpOwo+ PiArCj4+ICsgICAgICAgIFNETF9HZXRSZW5kZXJlckluZm8oc2luay0+cmVuZGVyLCAmcmVuZGVy ZXJfaW5mbyk7Cj4+ICsgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAic2RsMiByZW5k ZXJlciBuYW1lOiVzXG4iLCByZW5kZXJlcl9pbmZvLm5hbWUpOwo+PiArICAgIH0KPj4gKwo+PiAr ICAgIGlmICghc2luay0+dGV4dHVyZSkgewo+PiArICAgICAgICBzaW5rLT50ZXh0dXJlID0gU0RM X0NyZWF0ZVRleHR1cmUoc2luay0+cmVuZGVyLCBTRExfUElYRUxGT1JNQVRfSVlVViwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRExfVEVYVFVSRUFDQ0VT U19TVFJFQU1JTkcsIGZyYW1lLT53aWR0aCwgZnJhbWUtPmhlaWdodCk7Cj4+ICsgICAgICAgIGlm ICghc2luay0+dGV4dHVyZSkgewo+PiArICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VS Uk9SLCAiY3JlYXRlIHRleHR1cmUgZmFpbGVkICVzXG4iLCBTRExfR2V0RXJyb3IoKSk7Cj4+ICsg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+ PiArICAgIFNETF9VcGRhdGVZVVZUZXh0dXJlKHNpbmstPnRleHR1cmUsIE5VTEwsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRhdGFbMF0sIGZyYW1lLT5saW5lc2l6ZVswXSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZGF0YVsxXSwgZnJhbWUtPmxpbmVz aXplWzFdLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kYXRhWzJdLCBmcmFt ZS0+bGluZXNpemVbMl0pOwo+PiArCj4+ICsgICAgU0RMX1JlbmRlckNsZWFyKHNpbmstPnJlbmRl cik7Cj4+ICsKPj4gKyAgICBTRExfUmVuZGVyQ29weShzaW5rLT5yZW5kZXIsIHNpbmstPnRleHR1 cmUsIE5VTEwsIE5VTEwpOwo+PiArICAgIFNETF9SZW5kZXJQcmVzZW50KHNpbmstPnJlbmRlcik7 Cj4+ICsKPj4gKyAgICBhdl9mcmFtZV9mcmVlKCZmcmFtZSk7Cj4+ICsKPj4gKyAgICByZXR1cm4g MDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGF2ZmlsdGVyX3ZzaW5r X3NkbHZzaW5rX2lucHV0c1tdID0gewo+PiArICAgIHsKPj4gKyAgICAgICAgLm5hbWUgICAgICAg ID0gImRlZmF1bHQiLAo+PiArICAgICAgICAudHlwZSAgICAgICAgPSBBVk1FRElBX1RZUEVfVklE RU8sCj4+ICsgICAgICAgIC5maWx0ZXJfZnJhbWUgPSBmaWx0ZXJfZnJhbWUsCj4+ICsgICAgfSwK Pj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBBVkZpbHRlclBhZCBhdmZpbHRlcl92c2lua19z ZGx2c2lua19vdXRwdXRzW10gPSB7Cj4+ICsgICAgewo+PiArICAgICAgICAubmFtZSA9IE5VTEws Cj4+ICsgICAgICAgIC50eXBlID0gQVZNRURJQV9UWVBFX1ZJREVPLAo+PiArICAgIH0sCj4+ICt9 Owo+PiArCj4+ICtjb25zdCBBVkZpbHRlciBmZl92c2lua19zZGx2c2luayA9IHsKPj4gKyAgICAu bmFtZSAgICAgICAgPSAic2RsdnNpbmsiLAo+PiArICAgIC5kZXNjcmlwdGlvbiA9IE5VTExfSUZf Q09ORklHX1NNQUxMKCJEbyBhYnNvbHV0ZWx5IG5vdGhpbmcgd2l0aCB0aGUgaW5wdXQgdmlkZW8u IiksCj4+ICsgICAgLnByaXZfc2l6ZSAgID0gc2l6ZW9mKFNETFZpZGVvQ29udGV4dCksCj4+ICsg ICAgLmluaXQgICAgICAgID0gaW5pdCwKPj4gKyAgICAudW5pbml0ICAgICAgPSB1bmluaXQsCj4+ ICsgICAgRklMVEVSX0lOUFVUUyhhdmZpbHRlcl92c2lua19zZGx2c2lua19pbnB1dHMpLAo+PiAr ICAgIEZJTFRFUl9PVVRQVVRTKGF2ZmlsdGVyX3ZzaW5rX3NkbHZzaW5rX291dHB1dHMpLAo+PiAr fTsKPj4gLS0KPj4gMi4zNC4xCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnCj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAo+PiAKPj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVt YWlsCj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1 YnNjcmliZSIuCj4+IAo+PiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K