From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id B29824E1F6 for ; Wed, 14 Jan 2026 19:11:53 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'gZWdn4gEQu+qiBkAMeZCuSZJ34awVUd2Lkl4GOuE6PQ=', expected b'0i+iFdRj1/GnhYPGmWzH9KZE20V4qfRedITeGNbnUp4=')) header.d=artisan-build.20230601.gappssmtp.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768417887; h=mime-version : references : in-reply-to : date : message-id : to : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=gZWdn4gEQu+qiBkAMeZCuSZJ34awVUd2Lkl4GOuE6PQ=; b=u16ptpvPHXun3kcBzNyuszsJRQ8uT6FvP7rhrLwkes7Vus8hf7UlqlV2hCnGjRKr/m06E qauyE8Siw94smAdptmqYRQtxNpZLY2XREvdMFYTykMcECWr0ZFcD3l2qN35WYMA9am0phaj T2caHrUtCzgH6SmhT7JyO/xkNuUuqeLVxPvfTBZxyeGNTMxAMqF+ZzpfwsR8AGaFRha7wj9 2O8wvx6yJsGtJ0xPGIUxY5yVG4h7JPqZTGxtVXVfUf+Bv+odaUuBgQZi65wv3gfWf7oaSL3 3NDLItA9jMGazft9l1YzZjmQFfnbAC3YPRcOJffOLY2sPmLdYNpmnhMRONPA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 99BDA690E0B; Wed, 14 Jan 2026 21:11:27 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1768417869; b=p7tE51v42oMXSJHTNFO23kX1CpnyABRjGU5tGQePx3s1L0zAPdm1EoTnQlj1QGsL5oOHc GTqxlyqg5LP1oUPUYEVnFZuDidrn1rjZ76Mn3TWttTRgMYpqrevmK0pDGVwB5T8AR+DLGzA RRIxT9UTyy+ihLditD2QkJ/gKvui5zbcYgDuHYhli1tq1sVm2XVp9s8GXLbJBt9XQ0S4hjO YHWG5noa3rD3q9SsVrWZ0MLqsUZvYRDlSPDy8K+SckQ1WOb8Ec9Dvr1ZfWNO7EknxUWC87w pwUHe+S+tBey3D+y40+CPT7HwBJPDjmfjacwYn8b8pycFyvOG5eTlb593APQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1768417869; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=gZWdn4gEQu+qiBkAMeZCuSZJ34awVUd2Lkl4GOuE6PQ=; b=t1gK7dy6YSCH2EOWlTaKfpaZl7Qm8aeWW3JFsYupdNAbpChoaNKqQg+LxfQgWr3Mo77z+ +PZqrjv7sCZ3RE64Qes734VokxCYFNdSXtXlr2I/r45tZKrIcJfie9Makx2sFeCIwZH9Xfn QtViI/yNxFhStMeetV0XRTbqXwBBbheO72f1Y3CMPJ+p0NCBTA5fx+rNIu33/VnOriqD/AH cV5Ki7xmQEfbaLAOo5jVCaj1Lb/XfgXAX/qIYFfTVS63vF6DUDPatuwq8xmHYAhncSRoyQJ 6xjmESC1wJzijw88kkFGQ1MGjO8iI4PSU0fv+UwOp+PcQtUO3dj7EYbHlxdg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=artisan-build.20230601.gappssmtp.com; arc=none; dmarc=fail header.from=artisan.build policy.dmarc=none Authentication-Results: ffmpeg.org; dkim=pass header.d=artisan-build.20230601.gappssmtp.com; arc=none (Message is not ARC signed); dmarc=fail (Used From Domain Record) header.from=artisan.build policy.dmarc=none Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com [209.85.217.51]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 1423668EC69 for ; Wed, 14 Jan 2026 21:10:55 +0200 (EET) Received: by mail-vs1-f51.google.com with SMTP id ada2fe7eead31-5efa33b2639so45368137.2 for ; Wed, 14 Jan 2026 11:10:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=artisan-build.20230601.gappssmtp.com; s=20230601; t=1768417853; x=1769022653; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=0i+iFdRj1/GnhYPGmWzH9KZE20V4qfRedITeGNbnUp4=; b=PX+QlkohRkrIluPg52chPNaPqomZBcnAe7Q0o8/U7Ddn6O1+vtLL3c+HVA4WuDOAji +wQcGexTEylK6xOABzrwKR4aeQFJ/3Apt8yL+L6YgSGTSdkp3bJyXpkqf98Yn08Ll+CY oZ4p10boM6WVA75tJswsUqAdAJ5yvS9HW8U0qCP4KG3qurGrs4qiYZVsn8bbPnc8FSYr 5WILj/oU4WMyFmaXY2hjFFPISKsz0VwePgPgQ4iC6S77jpFR7qf6VoavPl3tRnewMxzZ dSVtnedmFbHUXNdnsLMnKEz/G4UPMyf2+sp83bm+ejn71vggabZiuCwgT7zpyOnlkDcR HH1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768417853; x=1769022653; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0i+iFdRj1/GnhYPGmWzH9KZE20V4qfRedITeGNbnUp4=; b=bJDHiq6gQ+z0iT8IaFJ+Cgn24PFb6aLiAhv6fIoI/eIpgH1caUd6lGgQeoHuY+dOG0 /HpZmPnAlyR5gI/O9gEpV+hYwLHFXcV42XjlEA8wAnkC2SBmf9DcHyv6xpoTqoHi+b7f 30Vk96UnOdzFRmsT/tFvIQREoeaeJ8lujDCHmbfguKvFNdDr3e28f5EKhfP7bmvW708v d8ZF6AvN2V0zh4CxUIGBMbkKd2slGhcedz8LOyxEzNOenOk516F2q9Y4+nyBPHEBJLrI i36VfApC5iO647ZrgO/Pu3dCCDvcoMUJvHeQb1JgqOqtKRSGy0shk9CXcLyybwME7bpm +BVA== X-Gm-Message-State: AOJu0YybZwz1/wquQMTdRvJGIQ2rvjKnN5/gU9b9T2rred55dh/KxBcb om6EUv7HYpm9cYehnTGKgNrr6lX64xaVMZe95jlBVrs/4ecZ+X9mv3z8UDqzS2BHXb/nPLL9ggT 5eR9PXULby1Mlao+UewDSxxNY0f9U3G0C74w9UyIQ5pTxMfZpNN0Zen1vdA== X-Gm-Gg: AY/fxX4fq8Uq9AeCe0WWTGMLvNUwW17XlofO3EKC6yuolSjuXPWZ5cC/D6oxenXDJAz qxs70XNwrUdEaZwo0HPn0uSJ2DKvhhZ73COyRq3XbeJMWpB5ClPxIPxKI/lEGzSmIXJiQ06R788 BjfbrwIgtOjeyh7VJ2rw/kTYK4jBrqxxf01RcAnlij89Xwxl3GCdWHGR/Dt/ihVbd651Hpvfdnc 4CkuhWhC0MJeDMxO8updYNs94sChXWBnHQv5YI/xxHsq4NBKKRjt827zD4b4A9Crwxg2/ArQ99D ZcVSnsbDzo0t2lb588QiDkNWyWCW0g== X-Received: by 2002:a05:6102:3f52:b0:5ee:9f76:1ab with SMTP id ada2fe7eead31-5f17f3f9f10mr1719155137.5.1768417852824; Wed, 14 Jan 2026 11:10:52 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: Date: Wed, 14 Jan 2026 11:10:41 -0800 X-Gm-Features: AZwV_QigAGJ8TRtKL0koPlDxMhMBgWh1vxoglBrtpl8upUpnM7QSowzdu04tJSA Message-ID: To: ffmpeg-devel@ffmpeg.org Message-ID-Hash: 5RKL3URMQSBLEFAFRL62AF7JDTAYRXV4 X-Message-ID-Hash: 5RKL3URMQSBLEFAFRL62AF7JDTAYRXV4 X-MailFrom: SRS0=Z0Y4=7T=artisan.build=len@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] Re: [PATCH RFC] libavfilter: expose expression variable metadata via AVFilter struct List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Len Woodward via ffmpeg-devel Cc: Len Woodward Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: ICBOaWNvbGFzLA0KDQogIFRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLiBUbyBjbGFyaWZ5IG15IHVu ZGVyc3RhbmRpbmc6DQoNCiAgMS4gRGVmaW5lIEFWRXhwclZhciBpbiBsaWJhdnV0aWwvZXZhbC5o IHNvIG5vbi1maWx0ZXIgY29kZSBjYW4gdXNlIGl0DQogIDIuIEFkZCBhY2Nlc3NvciBmdW5jdGlv bnMgaW5zdGVhZCBvZiBkaXJlY3Qgc3RydWN0IGl0ZXJhdGlvbg0KICAzLiBBZGQgdGhlIGZpZWxk IHRvIEFWRmlsdGVyIChvciBBVkZpbHRlckNvbnRleHQpDQoNCiAgT24gcG9pbnQgMyDigJQgaXMg eW91ciB0aGlua2luZyB0aGF0IEFWRmlsdGVyQ29udGV4dCB3b3VsZCBhbGxvdyB2YXJpYWJsZXMN CnRvIGRlcGVuZCBvbiBydW50aW1lIHN0YXRlIChlLmcuLCBjb25maWd1cmVkIGlucHV0IGRpbWVu c2lvbnMpPyBGb3IgbW9zdA0KZmlsdGVycyB0aGUgdmFyaWFibGVzIGFyZSBzdGF0aWMsIGJ1dCBJ IGNhbiBzZWUgY2FzZXMgd2hlcmUgdGhhdCBtYXR0ZXJzLg0KDQogIE9uIHRoZSBhY2Nlc3NvciBh cHByb2FjaCwgc29tZXRoaW5nIGxpa2U6DQoNCiAgLy8gbGliYXZ1dGlsL2V2YWwuaA0KICB0eXBl ZGVmIHN0cnVjdCBBVkV4cHJWYXIgew0KICAgICAgY29uc3QgY2hhciAqbmFtZTsNCiAgICAgIGNv bnN0IGNoYXIgKmhlbHA7DQogIH0gQVZFeHByVmFyOw0KDQogIC8vIGxpYmF2ZmlsdGVyL2F2Zmls dGVyLmgNCiAgaW50IGF2ZmlsdGVyX2dldF9uYl9leHByX3ZhcnMoY29uc3QgQVZGaWx0ZXIgKmYp Ow0KICBjb25zdCBBVkV4cHJWYXIgKmF2ZmlsdGVyX2dldF9leHByX3Zhcihjb25zdCBBVkZpbHRl ciAqZiwgaW50IGluZGV4KTsNCg0KICBPciBpZiB3ZSBnbyB3aXRoIEFWRmlsdGVyQ29udGV4dDoN Cg0KICBpbnQgYXZmaWx0ZXJfY3R4X2dldF9uYl9leHByX3ZhcnMoY29uc3QgQVZGaWx0ZXJDb250 ZXh0ICpjdHgpOw0KICBjb25zdCBBVkV4cHJWYXIgKmF2ZmlsdGVyX2N0eF9nZXRfZXhwcl92YXIo Y29uc3QgQVZGaWx0ZXJDb250ZXh0ICpjdHgsDQppbnQgaW5kZXgpOw0KDQogIFdoaWNoIGRvIHlv dSB0aGluayBmaXRzIGJldHRlcj8gSSdtIGxlYW5pbmcgdG93YXJkIEFWRmlsdGVyIHNpbmNlIHRo ZQ0KdmFyaWFibGVzIGFyZSBjb21waWxlLXRpbWUgY29uc3RhbnRzIGZvciBhbGwgdGhlIGZpbHRl cnMgSSd2ZSBsb29rZWQgYXQuDQoNCiAgTGVuDQoNCk9uIFNhdCwgSmFuIDEwLCAyMDI2IGF0IDEy OjAz4oCvUE0gTmljb2xhcyBHZW9yZ2UgPGdlb3JnZUBuc3VwLm9yZz4gd3JvdGU6DQoNCj4gTGVu IFdvb2R3YXJkIHZpYSBmZm1wZWctZGV2ZWwgKEhFMTIwMjYtMDEtMDkpOg0KPiA+ICMjIFByaW9y IERpc2N1c3Npb24NCj4gPg0KPiA+IEEgc2VhcmNoIG9mIHRoZSBtYWlsaW5nIGxpc3QgYXJjaGl2 ZXMgZm91bmQgbm8gcHJpb3IgcHJvcG9zYWxzIGZvciB0aGlzDQo+ID4gc3BlY2lmaWMgZmVhdHVy ZS4gVGhlIGNsb3Nlc3QgcmVsYXRlZCBkaXNjdXNzaW9uIGlzIHRoZSBbMjAxMyBTY3JpcHRpbmcN Cj4gPiBSRkNdKGh0dHBzOi8vZmZtcGVnLm9yZy9waXBlcm1haWwvZmZtcGVnLWRldmVsLzIwMTMt Tm92ZW1iZXIvMTUxMDY5Lmh0bWwNCj4gKSwNCj4gPiB3aGljaCByYWlzZWQgdGhlIGJyb2FkZXIg Y2hhbGxlbmdlIG9mIGJpbmRpbmcgdGhlIGxhdmZpIEFQSSB0byBvdGhlcg0KPiA+IGxhbmd1YWdl cy4gVGhpcyBwcm9wb3NhbCBhZGRyZXNzZXMgb25lIG5hcnJvdyBhc3BlY3Qgb2YgdGhhdDogbWFr aW5nDQo+IGZpbHRlcg0KPiA+IGV4cHJlc3Npb24gdmFyaWFibGVzIGRpc2NvdmVyYWJsZS4NCj4g Pg0KPiA+ICMjIFByb2JsZW0NCj4gPg0KPiA+IEZpbHRlcnMgbGlrZSBgZHJhd3RleHRgLCBgZ2Vx YCwgYW5kIGBvdmVybGF5YCBhY2NlcHQgZXhwcmVzc2lvbnMNCj4gPiByZWZlcmVuY2luZyB2YXJp YWJsZXMgc3VjaCBhcyBgd2AsIGBoYCwgYHRgLCBgbmAsIGV0Yy4gVGhlc2UgdmFyaWFibGVzDQo+ IGFyZQ0KPiA+IGRvY3VtZW50ZWQgaW4gRkZtcGVnJ3Mgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiBh bmQgdXNlZCBpbiBjb3VudGxlc3MNCj4gZmlsdGVyDQo+ID4gc3RyaW5ncyB3b3JsZHdpZGXigJRi dXQgdGhleSdyZSBub3QgcHJvZ3JhbW1hdGljYWxseSBkaXNjb3ZlcmFibGUuDQo+ID4NCj4gPiBB cHBsaWNhdGlvbnMgYnVpbGRpbmcgZmlsdGVyIGdyYXBocyBwcm9ncmFtbWF0aWNhbGx5IChHVUlz LCBsYW5ndWFnZQ0KPiA+IGJpbmRpbmdzLCB2aWRlbyBlZGl0b3JzKSBjdXJyZW50bHkgbXVzdCBk dXBsaWNhdGUgRkZtcGVnJ3MgaW50ZXJuYWwNCj4gPiBgdmFyX25hbWVzYCBhcnJheXMgYW5kIG1h bnVhbGx5IGtlZXAgdGhlbSBpbiBzeW5jLiBUaGlzIGlzIGZyYWdpbGUgYW5kDQo+ID4gY3JlYXRl cyBtYWludGVuYW5jZSBidXJkZW4gYWNyb3NzIHRoZSBlY29zeXN0ZW0uDQo+ID4NCj4gPiAjIyBX aHkgVGhlc2UgQXJlIEFscmVhZHkgU3RhYmxlIEFQSQ0KPiA+DQo+ID4gVGhlc2UgdmFyaWFibGVz IGFyZSBkb2N1bWVudGVkLCB1c2VyLWZhY2luZywgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkDQo+IHdp dGhvdXQNCj4gPiBicmVha2luZyBleGlzdGluZyBmaWx0ZXIgc3RyaW5ncy4gVGhlIHN0YWJpbGl0 eSBjb250cmFjdCBhbHJlYWR5DQo+ID4gZXhpc3Rz4oCUdGhpcyBwcm9wb3NhbCBzaW1wbHkgZXh0 ZW5kcyBwcm9ncmFtbWF0aWMgYWNjZXNzIHRvIG1hdGNoIHdoYXQNCj4gPiBzdHJpbmctYmFzZWQg dXNlcnMgYWxyZWFkeSBoYXZlLg0KPiA+DQo+ID4gIyMgUHJvcG9zZWQgU29sdXRpb24NCj4gPg0K PiA+IEFkZCBhbiBgZXhwcmVzc2lvbl92YXJzYCBmaWVsZCB0byB0aGUgYEFWRmlsdGVyYCBzdHJ1 Y3QsIGZvbGxvd2luZyB0aGUNCj4gPiBwYXR0ZXJuIGVzdGFibGlzaGVkIGJ5IGBBVk9wdGlvbmAg Zm9yIGZpbHRlciBvcHRpb25zLg0KPg0KPiBIaS4gSSB0aGluayBpdCBpcyBhbiBleGNlbGxlbnQg aWRlYS4gU2VlIGNvbW1lbnRzIGJlbG93Lg0KPg0KPiA+DQo+ID4gKipQdWJsaWMgQVBJIGFkZGl0 aW9uIChhdmZpbHRlci5oKToqKg0KPiA+DQo+ID4gYGBgYw0KPiA+IHR5cGVkZWYgc3RydWN0IEFW RmlsdGVyRXhwclZhciB7DQo+ID4gICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAgIC8qIFZhcmlhYmxl IG5hbWUgKGUuZy4sICJ0ZXh0X3ciKSAqLw0KPiA+ICAgICBjb25zdCBjaGFyICpoZWxwOyAgICAv KiBEZXNjcmlwdGlvbiAoZS5nLiwgIldpZHRoIG9mIHJlbmRlcmVkIHRleHQiKQ0KPiAqLw0KPiA+ IH0gQVZGaWx0ZXJFeHByVmFyOw0KPg0KPiBGaWx0ZXJzIGFyZSB0aGUgbWFpbiB1c2VycyBvZiBl eHByZXNzaW9ucyBhbmQgdmFyaWFibGVzLCBidXQgdGhleSBhcmUNCj4gbm90IHRoZSBvbmx5IG9u ZXMuIFRoZXJlZm9yZSwgSSB0aGluayB0aGlzIEFQSSBzaG91bGQgZXhpc3QgaW4NCj4gbGliYXZ1 dGlsLCBub3QgbGliYXZmaWx0ZXIuDQo+DQo+ID4NCj4gPiB0eXBlZGVmIHN0cnVjdCBBVkZpbHRl ciB7DQo+ID4gICAgIC8vIC4uLiBleGlzdGluZyBmaWVsZHMgLi4uDQo+ID4NCj4gPiAgICAgLyoq DQo+ID4gICAgICAqIE5VTEwtdGVybWluYXRlZCBhcnJheSBvZiBleHByZXNzaW9uIHZhcmlhYmxl cyBhY2NlcHRlZCBieSB0aGlzDQo+ID4gZmlsdGVyLA0KPiA+ICAgICAgKiBvciBOVUxMIGlmIHRo ZSBmaWx0ZXIgZG9lcyBub3QgdXNlIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4NCj4gPiAgICAgICov DQo+ID4gICAgIGNvbnN0IEFWRmlsdGVyRXhwclZhciAqZXhwcmVzc2lvbl92YXJzOw0KPiA+IH0g QVZGaWx0ZXI7DQo+ID4gYGBgDQo+ID4NCj4gPiAqKkZpbHRlciBpbXBsZW1lbnRhdGlvbiAoZS5n LiwgdmZfZHJhd3RleHQuYyk6KioNCj4gPg0KPiA+IGBgYGMNCj4gPiAvLyBFeGlzdGluZyBhcnJh eSAtIHVuY2hhbmdlZCwgdXNlZCBpbnRlcm5hbGx5IGJ5IGF2X2V4cHJfcGFyc2UoKSwNCj4gPiAv LyBmZl9wcmludF9ldmFsX2V4cHIoKSwgYW5kIG90aGVyIGludGVybmFsIGZ1bmN0aW9ucw0KPiA+ IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsNCj4gPiAgICAgImRhciIs ICJoIiwgInciLCAibiIsICJ0IiwgInRleHRfaCIsICJ0ZXh0X3ciLA0KPiA+ICAgICAvLyAuLi4N Cj4gPiAgICAgTlVMTA0KPiA+IH07DQo+ID4NCj4gPiAvLyBOZXcgYXJyYXkgLSBwdWJsaWMgbWV0 YWRhdGEgd2l0aCBkb2N1bWVudGF0aW9uDQo+ID4gc3RhdGljIGNvbnN0IEFWRmlsdGVyRXhwclZh ciBkcmF3dGV4dF9leHByX3ZhcnNbXSA9IHsNCj4gPiAgICAgeyAiZGFyIiwgICAgIkRpc3BsYXkg YXNwZWN0IHJhdGlvIiB9LA0KPiA+ICAgICB7ICJoIiwgICAgICAiVmlkZW8gaGVpZ2h0IiB9LA0K PiA+ICAgICB7ICJ3IiwgICAgICAiVmlkZW8gd2lkdGgiIH0sDQo+ID4gICAgIHsgIm4iLCAgICAg ICJGcmFtZSBudW1iZXIgKHN0YXJ0aW5nIGF0IDApIiB9LA0KPiA+ICAgICB7ICJ0IiwgICAgICAi VGltZXN0YW1wIGluIHNlY29uZHMiIH0sDQo+ID4gICAgIHsgInRleHRfaCIsICJIZWlnaHQgb2Yg cmVuZGVyZWQgdGV4dCIgfSwNCj4gPiAgICAgeyAidGV4dF93IiwgIldpZHRoIG9mIHJlbmRlcmVk IHRleHQiIH0sDQo+ID4gICAgIC8vIC4uLg0KPiA+ICAgICB7IE5VTEwgfQ0KPiA+IH07DQo+ID4N Cj4gPiBjb25zdCBBVkZpbHRlciBmZl92Zl9kcmF3dGV4dCA9IHsNCj4gPiAgICAgLm5hbWUgICAg ICAgICAgICA9ICJkcmF3dGV4dCIsDQo+ID4gICAgIC8vIC4uLiBleGlzdGluZyBmaWVsZHMgLi4u DQo+ID4gICAgIC5leHByZXNzaW9uX3ZhcnMgPSBkcmF3dGV4dF9leHByX3ZhcnMsDQo+ID4gfTsN Cj4gPiBgYGANCj4gPg0KPiA+ICoqQXBwbGljYXRpb24gdXNhZ2U6KioNCj4gPg0KPiA+IGBgYGMN Cj4gPiBjb25zdCBBVkZpbHRlciAqZiA9IGF2ZmlsdGVyX2dldF9ieV9uYW1lKCJkcmF3dGV4dCIp Ow0KPiA+IGlmIChmLT5leHByZXNzaW9uX3ZhcnMpIHsNCj4gPiAgICAgZm9yIChjb25zdCBBVkZp bHRlckV4cHJWYXIgKnYgPSBmLT5leHByZXNzaW9uX3ZhcnM7IHYtPm5hbWU7IHYrKykNCj4gPiAg ICAgICAgIHByaW50ZigiICAlcyAtICVzXG4iLCB2LT5uYW1lLCB2LT5oZWxwKTsNCj4gPiB9DQo+ ID4gYGBgDQo+ID4NCj4gPiAjIyBXaHkgVGhpcyBBcHByb2FjaA0KPiA+DQo+ID4gMS4gKipGb2xs b3dzIGVzdGFibGlzaGVkIHByZWNlZGVudCoqOiBNaXJyb3JzIGhvdyBgQVZPcHRpb25gIGV4cG9z ZXMNCj4gZmlsdGVyDQo+ID4gb3B0aW9ucy4gRGV2ZWxvcGVycyBhbHJlYWR5IHVuZGVyc3RhbmQg dGhpcyBwYXR0ZXJuLg0KPiA+IDIuICoqRGlzY292ZXJhYmxlKio6IEdpdmVuIGFueSBgQVZGaWx0 ZXIqYCwgY2hlY2sgaWYgaXQgaGFzIGV4cHJlc3Npb24NCj4gPiB2YXJpYWJsZXMuIE5vIG5lZWQg Zm9yIHBlci1maWx0ZXIgc3ltYm9sIGtub3dsZWRnZS4NCj4gPiAzLiAqKlNlbGYtZG9jdW1lbnRp bmcqKjogSGVscCB0ZXh0IChhbHJlYWR5IHdyaXR0ZW4gaW4gYC50ZXhpYCBmaWxlcykNCj4gPiBi ZWNvbWVzIG1hY2hpbmUtcmVhZGFibGUuDQo+ID4gNC4gKipQdXJlbHkgYWRkaXRpdmUqKjogRXhp c3RpbmcgaW50ZXJuYWwgZnVuY3Rpb25zIChgYXZfZXhwcl9wYXJzZSgpYCwNCj4gPiBgZmZfcHJp bnRfZXZhbF9leHByKClgLCBgZmZfcHJpbnRfZm9ybWF0dGVkX2V2YWxfZXhwcigpYCwgZXRjLikg Y29udGludWUNCj4gPiB1c2luZyBgdmFyX25hbWVzYCB1bmNoYW5nZWQuIE5vIHNpZ25hdHVyZSBj aGFuZ2VzLCBubyByaXNrIHRvIGV4aXN0aW5nDQo+IGNvZGUNCj4gPiBwYXRocy4NCj4gPiA1LiAq Kk1pbm9yIHJlbGVhc2UgY29tcGF0aWJsZSoqOiBUaGlzIGNhbiBsYW5kIGluIGEgbWlub3IgcmVs ZWFzZSBzaW5jZQ0KPiBpdA0KPiA+IGFkZHMgZnVuY3Rpb25hbGl0eSB3aXRob3V0IG1vZGlmeWlu ZyBleGlzdGluZyBiZWhhdmlvci4NCj4NCj4gPiA2LiAqKkV4dGVuc2libGUqKjogVGhlIHN0cnVj dCBjYW4gbGF0ZXIgZ2FpbiBmaWVsZHMgKHR5cGUgaGludHMsIGZsYWdzKQ0KPiA+IHdpdGhvdXQg YnJlYWtpbmcgdXNlcnMuDQo+DQo+IFlvdSBhcmUgbWlzdGFrZW4gb24gdGhpcyBwb2ludDogYWRk aW5nIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlIHdvdWxkIGJlDQo+IGNvbXBhdGlibGUgYXQgdGhl IEFQSSBsZXZlbCBidXQgYXQgdGhlIEFCSSBsZXZlbCBpdCB3b3VsZCBpbnZhbGlkYXRlIHRoZQ0K PiDigJx2KyvigJ0gaW4gdGhlIGxvb3AgaW4g4oCcYXBwbGljYXRpb24gdXNhZ2XigJ0gYWJvdmUu DQo+DQo+IFRoYXQgY2FuIGJlIGZpeGVkIGJ5IHVzaW5nIGEgZnVuY3Rpb24gdG8gYWNjZXNzIGVh Y2ggZWxlbWVudCwgc29tZXRoaW5nDQo+IGxpa2Ug4oCcYXZfZXhwcl9nZXRfdmFyaWFibGUoZXhw cmN0eCwgaW5kZXgp4oCdLiBTaW5jZSB3ZSBhcmUgaW4gdGhlDQo+IHByb3hpbWl0eSBvZiBwYXJz aW5nIGFuZCBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24sIHRoZSBvdmVyaGVhZCBpcyBub3QgYQ0K PiBjb25jZXJuLg0KPg0KPiA+DQo+ID4gIyMgT24gQXJyYXkgRHVwbGljYXRpb24NCj4gPg0KPiA+ IFllcywgdGhpcyBtZWFucyBmaWx0ZXJzIGhhdmUgdHdvIGFycmF5cyB3aXRoIG92ZXJsYXBwaW5n IGNvbnRlbnQuIFRoaXMgaXMNCj4gPiBpbnRlbnRpb25hbDoNCj4gPg0KPiA+IC0gQm90aCBhcnJh eXMgbGl2ZSBpbiB0aGUgc2FtZSBmaWxlLCBhZGphY2VudCB0byBlYWNoIG90aGVy4oCUZHJpZnQg aXMgZWFzeQ0KPiA+IHRvIHNwb3QgZHVyaW5nIHJldmlldw0KPiA+IC0gVGhlIGV4aXN0aW5nIGB2 YXJfbmFtZXNgIGFycmF5IGlzIHVzZWQgYnkgbXVsdGlwbGUgaW50ZXJuYWwgZnVuY3Rpb25zOw0K PiA+IGNoYW5naW5nIGFsbCBvZiB0aGVtIGlzIGEgbGFyZ2VyIHVuZGVydGFraW5nIGJldHRlciBz dWl0ZWQgZm9yIGEgbWFqb3INCj4gPiByZWxlYXNlDQo+ID4gLSBUaGUgY29zdCBpcyBhIGZldyBo dW5kcmVkIGJ5dGVzIG9mIHN0YXRpYyBzdG9yYWdlIHBlciBmaWx0ZXINCj4gPg0KPiA+IElmIHNv dXJjZS1sZXZlbCBkdXBsaWNhdGlvbiBpcyBhIGNvbmNlcm4sIGFuIFgtbWFjcm8gY2FuIGdlbmVy YXRlIGJvdGgNCj4gPiBhcnJheXMgZnJvbSBhIHNpbmdsZSBkZWZpbml0aW9uOg0KPiA+DQo+ID4g YGBgYw0KPiA+ICNkZWZpbmUgRFJBV1RFWFRfRVhQUl9WQVJTIFwNCj4gPiAgICAgWCgiZGFyIiwg ICAgIkRpc3BsYXkgYXNwZWN0IHJhdGlvIikgXA0KPiA+ICAgICBYKCJoIiwgICAgICAiVmlkZW8g aGVpZ2h0IikgXA0KPiA+ICAgICBYKCJ3IiwgICAgICAiVmlkZW8gd2lkdGgiKQ0KPiA+ICAgICAv LyAuLi4NCj4gPg0KPiA+ICNkZWZpbmUgWChuYW1lLCBoZWxwKSBuYW1lLA0KPiA+IHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsgRFJBV1RFWFRfRVhQUl9WQVJTIE5VTEwg fTsNCj4gPiAjdW5kZWYgWA0KPiA+DQo+ID4gI2RlZmluZSBYKG5hbWUsIGhlbHApIHsgbmFtZSwg aGVscCB9LA0KPiA+IHN0YXRpYyBjb25zdCBBVkZpbHRlckV4cHJWYXIgZHJhd3RleHRfZXhwcl92 YXJzW10gPSB7IERSQVdURVhUX0VYUFJfVkFSUw0KPiB7DQo+ID4gTlVMTCB9IH07DQo+ID4gI3Vu ZGVmIFgNCj4gPiBgYGANCj4gPg0KPiA+IFRoaXMgZWxpbWluYXRlcyBhbnkgcG9zc2liaWxpdHkg b2YgZHJpZnQgYmV0d2VlbiBhcnJheXMuIEVpdGhlciBhcHByb2FjaA0KPiA+IHdvcmtz4oCUbWFp bnRhaW5lciBwcmVmZXJlbmNlLg0KPiA+DQo+DQo+ID4gQSBmdXR1cmUgbWFqb3IgcmVsZWFzZSBj b3VsZCBjb25zb2xpZGF0ZSB0byBhIHNpbmdsZSBhcnJheSBieSB1cGRhdGluZw0KPiA+IGludGVy bmFsIGZ1bmN0aW9ucyB0byBhY2NlcHQgYEFWRmlsdGVyRXhwclZhcipgLCBidXQgdGhhdCdzIGEg c2VwYXJhdGUsDQo+ID4gbGFyZ2VyIGVmZm9ydC4gVGhpcyBwcm9wb3NhbCBkZWxpdmVycyB2YWx1 ZSBub3cgd2l0aG91dCB0aGF0IHNjb3BlLg0KPg0KPiBJIGFncmVlLCB0aGUgQVZFeHByIEFQSSBu ZWVkcyB0byBiZSBjbGVhbmVkIHVwIGFuZCBpdCB3b3VsZCB0YWtlIGNhcmUgb2YNCj4gdGhlIGR1 cGxpY2F0aW9uIGlzc3VlLg0KPg0KPiA+DQo+ID4gIyMgU2ltcGxlciBBbHRlcm5hdGl2ZXMNCj4g Pg0KPiA+IElmIGV4dGVuZGluZyBgQVZGaWx0ZXJgIGlzIHVuZGVzaXJhYmxlLCB0aGVzZSBhbHRl cm5hdGl2ZXMgYWxzbyBzb2x2ZSB0aGUNCj4gPiBpbW1lZGlhdGUgcHJvYmxlbToNCj4gPg0KPiA+ ICoqRXhwb3J0IGV4aXN0aW5nIHN5bWJvbHM6KioNCj4gPiBgYGBkaWZmDQo+ID4gLXN0YXRpYyBj b25zdCBjaGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsNCj4gPiArY29uc3QgY2hhciAqY29uc3Qg ZmZfZHJhd3RleHRfdmFyX25hbWVzW10gPSB7DQo+ID4gYGBgDQo+ID4NCj4gPiAqKlBlci1maWx0 ZXIgYWNjZXNzb3I6KioNCj4gPiBgYGBjDQo+ID4gY29uc3QgY2hhciAqY29uc3QgKmF2ZmlsdGVy X2RyYXd0ZXh0X2dldF92YXJfbmFtZXModm9pZCk7DQo+ID4gYGBgDQo+ID4NCj4gPiBCb3RoIHdv cmssIGJ1dCBsYWNrIGRpc2NvdmVyYWJpbGl0eSBhbmQgbWV0YWRhdGEuIElmIGNvbW1pdHRpbmcg dG8gQVBJDQo+ID4gc3RhYmlsaXR5IGZvciBleHByZXNzaW9uIHZhcmlhYmxlcywgdGhlIGBBVkZp bHRlcmAgc3RydWN0IGFwcHJvYWNoDQo+IHByb3ZpZGVzDQo+ID4gYmV0dGVyIGxvbmctdGVybSB2 YWx1ZS4NCj4NCj4gSSB0aGluayB0aGUgYWRkIHRvIEFWRmlsdGVyIGlzIHByZWZlcmFibGUuIE9y IG1heWJlIEFWRmlsdGVyQ29udGV4dCwNCj4gZGVwZW5kaW5nIG9uIHRoZSBkZXRhaWxzIG9mIGhv dyB3ZSB3YW50IHRvIGRlc2lnbiBpdC4NCj4NCj4gPiAjIyBTY29wZQ0KPiA+DQo+ID4gSSdtIHBy ZXBhcmVkIHRvIHN1Ym1pdCBwYXRjaGVzIGZvcjoNCj4gPg0KPiA+IDEuIGBBVkZpbHRlckV4cHJW YXJgIHN0cnVjdCBhbmQgYEFWRmlsdGVyYCBmaWVsZCBhZGRpdGlvbg0KPiA+IDIuIE1pZ3JhdGlv biBvZiBgZHJhd3RleHRgIGFzIHByb29mIG9mIGNvbmNlcHQNCj4gPiAzLiBNaWdyYXRpb24gb2Yg b3RoZXIgZXhwcmVzc2lvbi1lbmFibGVkIGZpbHRlcnMgaWYgZGVzaXJlZA0KPiA+IDQuIERvY3Vt ZW50YXRpb24gdXBkYXRlcw0KPiA+DQo+ID4gSGFwcHkgdG8gc3RhcnQgd2l0aCBgZHJhd3RleHRg IG9ubHksIG9yIGNvdmVyIGFsbCBmaWx0ZXJz4oCUd2hpY2hldmVyDQo+ID4gbWFpbnRhaW5lcnMg cHJlZmVyLg0KPg0KPiBUaGFua3MuDQo+DQo+IFJlZ2FyZHMsDQo+DQo+IC0tDQo+ICAgTmljb2xh cyBHZW9yZ2UNCj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QgLS0gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK VG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBmZm1wZWctZGV2ZWwtbGVhdmVAZmZtcGVn Lm9yZwo=