From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 52DD94CBA6 for <ffmpegdev@gitmailbox.com>; Fri, 11 Apr 2025 17:09:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6CF1B68B4D4; Fri, 11 Apr 2025 20:09:17 +0300 (EEST) Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98BED687DBC for <ffmpeg-devel@ffmpeg.org>; Fri, 11 Apr 2025 20:09:10 +0300 (EEST) X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org ) Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 53BH99gf027287 for <ffmpeg-devel@ffmpeg.org>; Fri, 11 Apr 2025 19:09:10 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id CC8412EFD9; Fri, 11 Apr 2025 19:09:09 +0200 (CEST) Date: Fri, 11 Apr 2025 19:09:09 +0200 From: Nicolas George <george@nsup.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <Z_lMtbm3nhpzqAuI@phare.normalesup.org> References: <DM8P223MB0365AB64AECCC838CF7CB41DBADE2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <Z92viSTlKU0La9Ua@mariano> <DM8P223MB036550001F5BE5292F899C3FBADB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <Z+SFLmfGERrM6a70@mariano> <Z-WmsURm8nm7qBbK@phare.normalesup.org> <20250328234746.GN4991@pb2> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250328234746.GN4991@pb2> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Fri, 11 Apr 2025 19:09:10 +0200 (CEST) Subject: Re: [FFmpeg-devel] [RFC] FFmpeg Execution Graph Visualization X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/Z_lMtbm3nhpzqAuI@phare.normalesup.org/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> TWljaGFlbCBOaWVkZXJtYXllciAoSEUxMjAyNS0wMy0yOSk6Cj4gY2FuIHlvdSByZXBvc3QgdGhl IEFWV3JpdGVyIHBhdGNoZXMgPwoKU3VyZSwgYnV0IEkgbmVlZCB0byBmaW5kIHRoZSBsYXRlc3Qg YnJhbmNoLCBhbmQgaXQgaXMgcHJvdmluZyBhIGNhdXNlIG9mCnByb2NyYXN0aW5hdGlvbiBmb3Ig bWUuIEluIHRoZSBtZWFudGltZSwgbGV0IG1lIGV4cGxhaW4gYW5ldyB0aGUKcHJpbmNpcGxlcyBi ZWhpbmQgaXQsIGFmdGVyIGEgZmV3IHllYXJzIEkgbWlnaHQgYmUgYWJsZSB0byBleHByZXNzIHRo ZW0KYmV0dGVyLgoKKEkgaG9wZSBpdCBtZWFucyB5b3UgYXJlIGNvbnNpZGVyaW5nIHJlLWFzc2Vy dGluZyB5b3VyIGF1dGhvcml0eSB0bwphcHByb3ZlIGl0IG9uIHByaW5jaXBsZSBwZW5kaW5nIHJl dmlldyBvZiB0aGUgY29kZS4gSSB3aWxsIG5vdCBpbnZlc3QKbW9yZSBjb2RpbmcgaW50byBpdCB1 bmxlc3MgSSBrbm93IG5vYm9keSBoYXMgdGhlIGF1dGhvcml0eSB0byBwdXQgaXQgdG8Kd2FzdGUg d2l0aCDigJxpdCBkb2VzIG5vdCBiZWxvbmfigJ0uKQoKCjEuIFdoeSB3ZSBuZWVkIGl0CgpXZSB1 c2UgYSBsb3Qgb2YgdGV4dCBmb3Igc21hbGwgdGhpbmdzLiBBcyBhIGNvbW1hbmQtbGluZSB0b29s LCB3ZSB1c2UKdGV4dCB0byBjb21tdW5pY2F0ZSB3aXRoIHVzZXJzLiBFdmVuIGFzIGEgbGlicmFy eSwgd2hlbiBHVUlzIGRvIG5vdCBoYXZlCnRoZSBwcm9wZXIgd2lkZ2V0IHRoZXkgd2lsbCB1c2Ug dGV4dCwgYW5kIHdlIG5lZWQgdG8gcHJvdmlkZSB0aGUKbmVjZXNzYXJ5IHN1cHBvcnQgZnVuY3Rp b25zLgoKV2Ugc2hvdWxkIGhhdmUgYSBydWxlIHRoYXQgZm9yIGV2ZXJ5IHR5cGUgd2UgYWRkLCB3 ZSBtdXN0IGhhdmUgYQpjb3JyZXNwb25kaW5nIHRvLXRleHQgQVBJIGZ1bmN0aW9uLiBGdXJ0aGVy bW9yZSwgdGhlc2UgZnVuY3Rpb25zIHNob3VsZAphbGwgaGF2ZSB0aGUgc2FtZSB0eXBlICh1cCB0 byB0aGUgdHlwZSBvZiB0aGUgb3BhcXVlIHBvaW50ZXIpLCBzbyB0aGF0CndlIGNhbiBzdG9yZSB0 aGVtIGluIGEgc3RydWN0dXJlIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIGFsb25nIHdpdGgKb3Ro ZXIgaW5mb3JtYXRpb24gKGZyb20gc3RyaW5nLCByZWYvdW5yZWYsIGV0Yy4pLgoKV2UgYWxzbyBu ZWVkIHRleHQgZm9yIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbiwgbGlrZSBleHBvcnRpbmcK c3RhdGlzdGljcyBmcm9tIGZpbHRlcnMuCgpTb21lIG9mIHRoZXNlIHRvLXRleHQgY29udmVyc2lv bnMgaGFwcGVuIG9uY2UgcGVyIGZyYW1lLiBUaGF0IG1lYW5zIHRoZXkKc2hvdWxkIGhhcHBlbiB3 aXRob3V0IGR5bmFtaWMgYWxsb2NhdGlvbi4gUXVpdGUgY29tcGxleCBjb2RlIGlzCndhcnJhbnRl ZCB0byBwcmV2ZW50IGR5bmFtaWMgYWxsb2NhdGlvbnMgb25jZSBwZXIgZnJhbWU6IHNlZSB0aGUg ZnJhbWUKYW5kIGJ1ZmZlciBwb29scyB0b28uIEJ1dCBzb21lIG9mIHRoZXNlIHRvLXRleHQgY29u dmVyc2lvbiBoYXZlIGFuCnVuYm91bmRlZCBvdXRwdXQuIFRoYXQgbWVhbnMgdGhlIEFQSSBuZWVk cyB0byBiZSBhYmxlIHRvIGhhbmRsZSBsb25nCm91dHB1dC4KCkJQcmludCBtZWV0cyB0aGUgY3Jp dGVyaWE6IEJQcmludCBpcyBhcyBmYXN0IGFzIGEgYnVmZmVyIG9uIHRoZSBzdGFjawpidXQgY2Fu IGhhbmRsZSBzdHJpbmdzIG9mIGFyYml0cmFyeSBsZW5ndGguCgpVbmZvcnR1bmF0ZWx5LCBCUHJp bnQgaXMgdWdseS4gVGhlIG5hbWUgaXMgdWdseSwgYW5kIG1vcmUgaW1wb3J0YW50bHksCml0IGlz IGluZmxleGlibGUsIGl0IHdvcmtzIG9ubHkgd2l0aCBmbGF0IGJ1ZmZlcnMgaW4gbWVtb3J5LgoK CjIuIEhvdyBBVldyaXRlciBkb2VzIGl0CgpBVldyaXRlciBpcyBhbiBhdHRlbXB0IOKAlCBzdWNj ZXNzZnVsLCBpbiBteSBvcGluaW9uIOKAlCBhdCBrZWVwaW5nIHdoYXQgaXMKZ29vZCBpbiBCUHJp bnQgYW5kIGZpeGluZyB3aGF0IGlzIHVnbHksIGluIHBhcnRpY3VsYXIgYnkgZ2l2aW5nIGl0CmZl YXR1cmVzIHNpbWlsYXIgdG8gQVZJTy4KClRoZSBkZXNpZ24gcHJpbmNpcGxlIGlzIHRoZSBzYW1l IGFzIEFWSU86IGEgc3RydWN0dXJlIHdpdGggY2FsbGJhY2tzCnRoYXQgcGVyZm9ybSB0aGUgbG93 LWxldmVsIG9wZXJhdGlvbnMuCgpUaGUgZGlmZmVyZW5jZSB3aXRoIEFWSU8gaXMgdGhhdCBlZmZv cnQgd2VyZSBtYWRlIHRvIGtlZXAgdGhlIHN0cnVjdHVyZXMKc21hbGwgYW5kIGFsbG9jYXRhYmxl IGJ5IHRoZSBjYWxsZXIuCgpBbHNvLCB0aGUgYmFjay1lbmQgaXMgYWxsb3dlZCB0byBwcm92aWRl IG9ubHkgYSBmZXcgbWV0aG9kczogcHJpbnRmLWxpa2UKb3Igd3JpdGUtbGlrZSBvciBnZXRfYnVm ZmVyLWxpa2UsIGFuZCB0aGUgZnJhbWV3b3JrIHdpbGwgbWFrZSBzdXJlIHRvCnVzZSBvbmUgdGhh dCBpcyBhdmFpbGFibGUuIFRoYXQgbWVhbnMgcXVpdGUgYSBiaXQgb2YgY29kZSB0byBoYW5kbGUK ZG9pbmcgYSBwcmludGYoKSBvbiBhIGJhY2stZW5kIHRoYXQgb25seSBoYXMgZ2V0X2J1ZmZlciwg YnV0IGl0IGlzIGNvZGUKaXNvbGF0ZWQgd2l0aGluIGEgc2luZ2xlIGZpbGUgYW5kIHdpdGggYW1w bGUgRkFURSBjb3ZlcmFnZS4KCk9uZSBvZiB0aGUgdHJpY2tzIEkgdXNlZCB0byBhdm9pZCBkeW5h bWljIGFsbG9jYXRpb25zIGlzIHRvIHN0b3JlIHRoZQpzdHJ1Y3R1cmUgb2YgbWV0aG9kcyBhbmQg dGhlIHN0cnVjdHVyZSB3aXRoIGFuIGluc3RhbmNlIGFzIGEgc3RydWN0dXJlCndpdGggdHdvIHBv aW50ZXIgZWxlbWVudHMgcGFzc2VkIGJ5IHZhbHVlLgoKQW5vdGhlciB0cmljayBJIHVzZWQgdG8g YXZvaWQgZHluYW1pYyBhbGxvY2F0aW9ucyBpcyB0byBzdG9yZSB0aGUgc2l6ZQpvZiBhIHN0cnVj dHVyZSBpbiBpdC4gVGhhdCB3YXksIGlmIGEgY2FsbGVyIGlzIGNvbXBpbGVkIHdpdGggYW4gb2xk CnZlcnNpb24gb2YgdGhlIGxpYnJhcnksIGl0IHN0b3JlcyBhIHNtYWxsZXIgc2l6ZSB0aGFuIHRo ZSBjdXJyZW50IG9uZSwKYW5kIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBjYW4gdGVz dCBhbmQgYXZvaWQgYWNjZXNzaW5nIHRoZSBuZXcKZmllbGRzLiBUaGF0IGxldHMgdGhlIGNhbGxl ciBhbGxvY2F0ZSB0aGUgc3RydWN0dXJlIHdoaWxlIGtlZXBpbmcgdGhlCmFiaWxpdHkgdG8gYWRk IGZpZWxkcyB0byB0aGUgc3RydWN0dXJlLgoKQXBhcnQgZnJvbSB0aGF0LCBpcyBpcyByYXRoZXIg c3RyYWlnaHRmb3J3YXJkLiBUaGUgZGVmYXVsdCBBVldyaXRlciBpcyBhCnNpbXBsZSB3cmFwcGVy IGFyb3VuZCBCUHJpbnQsIGJ1dCB0aGVyZSBhcmUgYWxzbyBxdWl0ZSBhIGZldyBvdGhlcgpidWls dC1pbiBvbmVzOiB3cmFwcGVyIGFyb3VuZCBzdGRpbyBhbmQgYXZfbG9nICh3aXRob3V0IHN0b3Jp bmcgdGhlCndob2xlIHN0cmluZyksIHdyYXBwZXIgYXJvdW5kIGEgZml4ZWQtc2l6ZSBidWZmZXIu IEFWd3JpdGVyIGNhbiBhbHNvIGFjdAphcyBhIGZpbHRlcjogZ2V0IGFuIEFWV3JpdGVyLCB5b3Ug Y2FuIGNyZWF0ZSBhIG5ldyBvbmUgdGhhdCB3aWxsIGVuY29kZQp0byBiYXNlNjQgb3IgSFRNTCBl bnRpdGllcyBvbiB0aGUgZmx5LgoKCjMuIFdoZXJlIGl0IHdpbGwgZ28KClRoZSB0cmljayBwYXNz aW5nIGEgc3RydWN0IG9mIG1ldGhvZHMgYW5kIHRoZSBvYmplY3QgYXMgYSBzdHJ1Y3R1cmUgd2l0 aAp0d28gbWVtYmVycyBwYXNzZWQgYnkgdmFsdWUgaXMgbWVhbnQgdG8gYmVjb21lIGEgdmVyeSBs aWdodC13ZWlnaHQKb2JqZWN0IHN5c3RlbS4gVGh1cyBpZiBjdHggaXMgYSBwb2ludGVyIHRvIGEg c3RydWN0dXJlIG9mIHR5cGUgVCwgd2UgY2FuCmRlZmluZSBzZXJpYWxpemVfdCBhcyBhIHN0cnVj dHVyZSB3aXRoIGZ1bmN0aW9ucyBhbmQgY29uc2lkZXIKeyBzZXJpYWxpemVfdCwgY3R4IH0gYXMg YW4gb2JqZWN0IG9mIHRoZSBjbGFzcyDigJxzZXJpYWxpemFibGXigJ0uIEJ1dCB3ZQpjYW4gYWxz byBtYWtlIGl0IGFuIG9iamVjdCBvZiB0aGUgY2xhc3Mg4oCccmVmY291bnRlZOKAnSBieSBwYWly aW5nIGl0IHdpdGgKYW5vdGhlciBzdHJ1Y3R1cmUuCgpUaGUgb2JqZWN0IHN5c3RlbSwgaW5jbHVk aW5nIGNhc3RzIGZyb20gb25lIGNsYXNzIHRvIGFub3RoZXIsIGNhbiBiZQpkZS1jZW50cmFsaXpl ZCwgbmV3IGNsYXNzZXMgY2EgYmUgZGVmaW5lZCBhbnl3aGVyZSBpbiB0aGUgY29kZSB3aXRob3V0 IGEKY2VudHJhbCByZWdpc3RyeS4gVGhhdCB3aWxsIGJlIHVzZWZ1bCB0byBlbmhhbmNlIHNldmVy YWwgcGFydHMgb2Ygb3VyCmNvZGU6CgotIFNpZGUgZGF0YSB3b3VsZCBub3QgbmVlZCB0byBiZSBh ZGRlZCBpbiBsaWJhdnV0aWwuIEEgcGFpciBvZgogIGRlbXV4ZXItbXV4ZXIgaW4gbGliYXZmb3Jt YXQgY2FuIGRlZmluZSBhIG5ldyB0eXBlIG9mIHNpZGUgZGF0YSBieQogIGRlZmluaW5nIHRoZSBt ZXRob2RzIHRvIGhhbmRsZSBpdC4KCi0gRmlsdGVycyB3aXRoIHVudXN1YWwgcGFyc2luZyBuZWVk cyBjYW4gZGVmaW5lIGEgbmV3IHR5cGUgb2Ygb3B0aW9uIGFuZAogIHBsdWcgaXQgaW50byB0aGUg c3RhbmRhcmQgb3B0aW9ucyBwYXJzaW5nIHN5c3RlbS4gSXQgaXMgZXh0cmVtZWx5CiAgdXNlZnVs IGlmIHRoZSBuZWVkcyBvZiB0aGUgZmlsdGVyIGFyZSB0b28gc3BlY2lmaWMgdG8gYWRkIGEgdHlw ZSBpbgogIGxpYmF2dXRpbCBidXQgdG9vIGZhciBmcm9tIHNvbWV0aGluZyBleGlzdGluZyB0byBi ZSBhYmxlIHRvIHVzZSBpdAogIGNvbnZlbmllbnRseS4KCi0gUGx1Z2luZyBuZXcgdHlwZXMgaW50 byB0aGUgb3B0aW9ucyBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGZpeCBvdXIKICDigJxlc2Nh cGluZyBoZWxs4oCdIGlzc3VlIHdoZXJlIHVzZXJzIHNvbWV0aW1lcyBuZWVkIDQyIGxldmVscyBv ZiBcIGluCiAgZnJvbnQgb2YgYSA6IHRvIGFjaGlldmUgdGhlaXIgZ29hbHMuCgotIFdlIGNhbiBp bXBsZW1lbnQgYSBmdWxsLWZlYXR1cmVkIGF2X3ByaW50ZigpIGZ1bmN0aW9uIHRoYXQgc2VyaWFs aXplcwogIG9uIHRoZSBmbHk6CgogIGF2X3ByaW50ZihvdXQsICJTdHJlYW0gJWQgYXQgJWQgSHos ICVAIHdpdGggbGF5b3V0ICVAXG4iLAogICAgICBzdC0+aWQsIHN0LT5zYW1wbGVfcmF0ZSwKICAg ICAgYXZhbnlfc2FtcGxlX2ZtdChzdC0+c2FtcGxlX2ZtdCksCiAgICAgIGF2YW55X2xheW91dChz dC0+Y2hhbm5lbF9sYXlvdXQpKTsKCldpdGggdGhpcywgaXQgYmVjb21lcyBwb3NzaWJsZSB0byBp bXBsZW1lbnQgbmV3IGZlYXR1cmVzIHRoYXQgcmVseSBhIGxvdApvbiB0ZXh0LiBUaGF0IGluY2x1 ZGVzOgoKLSBCZXR0ZXIgZXJyb3IgcmVwb3J0aW5nLiBJbnN0ZWFkIHRoZSBlcnJvciBtZXNzYWdl IGdvaW5nIHRvIHRoZSBsb2csCiAgd2hlcmUgbm9ib2R5IHdpbGwgc2VlIGl0IGlmIGl0IGlzIGEg R1VJLCBpbnN0ZWFkIG9mIHRoZSBhcHBsaWNhdGlvbgogIGhhdmluZyB0byBpbnN0YWxsIGEgbG9n IGhhbmRsZXIsIHdpdGggdGhlIHJlc3BvbnNpYmlsaXR5IHRvIGFzc2VtYmxlCiAgbGluZXMgdG9n ZXRoZXIgYW5kIGZpbHRlciBvdXQgdW5yZWxhdGVkIG1lc3NhZ2VzIHRoYXQganVzdCBoYXBwZW5l ZCB0bwogIGFycml2ZSBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBzdG9y ZWQgaW4gdGhlIHJlbGV2YW50CiAgY29udGV4dCBhbmQgY2FuIGJlIHJldHJpZXZlZCBjbGVhbmx5 IGxhdGVyLgoKLSBCdWlsdC1pbiBjb21wcmVoZW5zaXZlIGRvY3VtZW50YXRpb24uIFlvdSBjYW4g ZG8KICBhdl9nZXRfZG9jdW1lbnRhdGlvbihjdHgsIOKApikgYW5kIGdldCBleHBsYW5hdGlvbnMg b24gaG93IHRvIHVzZSBpdC4KICBEZXBlbmRpbmcgb24gdGhlIGZsYWdzIGdpdmVuLCB0aGUgcmV0 dXJuZWQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgdGVyc2UKICBhbmQgc3VpdGFibGUgZm9yIGEgdG9v bHRpcCBvciBjb21wcmVoZW5zaXZlIGluY2x1ZGluZyBoeXBlcmxpbmtzIGFuZAogIHJlZmVyZW5j ZSBmb3IgdGhlIHN5bnRheCBvZiB0aGUgb3B0aW9ucy4KCi0gU2VyaWFsaXphdGlvbiBvZiBoaWdo LWxldmVsIGRhdGEgc3RydWN0dXJlcyBpbnRvIHZhcmlvdXMgc3RhbmRhcmQKICBmb3JtYXRzOiBK U09OLCBYTUwsIGV0Yy4sIHByZWNpc2VseSB3aGF0IHN0YXJ0ZWQgdGhpcyB0aHJlYWQuIFRoYXQK ICBhbGxvd3MgdG8gZmFjdG9yIHRoZSB3cml0ZXJzIGluIGZmcHJvYmUgYW5kIHRoYXQgZ2l2ZXMg dXMgbWVhbnMgdG8KICBleGZpbHRyYXRlIHN0YXRpc3RpY3MgZnJvbSBmaWx0ZXJzLgoKCjQuIFdo eSBpdCBtdXN0IGJlIGluIEZGbXBlZwoKSSBhY2tub3dsZWRnZSB0aGF0IG5vdGhpbmcgSSBkZXNj cmliZWQgaXMgZXZlbiByZW1vdGVseSBzcGVjaWZpYyB0bwpGRm1wZWcuIEkgY291bGQgYmUgYXJn dWluZyBmb3IgQVZXcml0ZXIsIGEgbGlnaHQtd2VpZ2h0IG9iamVjdCBzeXN0ZW0sCmJ1aWx0LWlu IGRvY3VtZW50YXRpb24sIGV0Yy4sIGluIGEgcHJvamVjdCB0aGF0IGRvZXMgc29tZXRoaW5nIGVu dGlyZWx5CmVsc2UuCgpUaGF0IG1lYW5zIGluIHByaW5jaXBsZSBhbGwgdGhpcyBjb3VsZCBnbyBp bnRvIGEgc2VwYXJhdGUgbGlicmFyeSwgYW5kCnNvbWUgcGVvcGxlIGhhdmUgYXJndWVkIGZvciBp dC4gSW4gcHJpbmNpcGxlIGl0IGNvdWxkLCBidXQgaW4gcHJhY3RpY2UKaXQgZG9lcyBub3QgbWFr ZSBzZW5zZSBmb3IgbXVsdGlwbGUgcmVhc29ucywgYnV0IHRoZSBtYWluIHJlYXNvbiBpcwp0aGlz OgoKQXMgYSBtYXR0ZXIgb2YgcHJpbmNpcGxlLCB3ZSBkbyBub3QgZGVtYW5kIHRoYXQgdXNlcnMg aW5zdGFsbAp0aGlyZC1wYXJ0aWVzIGxpYnJhcmllcyBpbiBvcmRlciB0byBidWlsZCBGRm1wZWcu IFdlIHJlbHkgb24gc3lzdGVtCmxpYnJhcmllcywgYW5kIHdlIGNhbiByZWx5IG9uIGV4dGVybmFs IGxpYnJhcmllcyBmb3Igb3B0aW9uYWwgZmVhdHVyZXMsCmV2ZW4gdmVyeSBpbXBvcnRhbnQgb25l cyAoeDI2NOKApiksIGJ1dCBpZiBzb21ldGhpbmcgaXMgbmVlZGVkIHRvIHJ1bgpGRm1wZWcgYXQg YWxsIHRoZW4gaXQgbXVzdCBiZSBpbiBvdXIgb3duIGNvZGUgYmFzZSBzbyB0aGF0IGJ1aWxkaW5n IGZyb20Kc291cmNlcyB3aWxsIGp1c3Qgd29yay4gU3RyaW5ncyBhbmQgZXJyb3IgcmVwb3J0aW5n IGNhbm5vdCBiZSBvcHRpb25hbCwKdGhleSBtdXN0IGJlIGluIEZGbXBlZy4KCgpJIHdpbGwgY29t ZSBiYWNrIGxhdGVyIHdpdGggdGhlIGNvZGUgYXMgaXQgd2FzIGxhc3QgdGltZS4KClJlZ2FyZHMs CgotLSAKICBOaWNvbGFzIEdlb3JnZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoK VG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==