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 7CCE447741 for ; Thu, 21 Sep 2023 10:40:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D8B6B68C8C1; Thu, 21 Sep 2023 13:40:08 +0300 (EEST) Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com [209.85.217.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A54668C870 for ; Thu, 21 Sep 2023 13:40:03 +0300 (EEST) Received: by mail-vs1-f54.google.com with SMTP id ada2fe7eead31-4526ae5b0b3so407100137.2 for ; Thu, 21 Sep 2023 03:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695292801; x=1695897601; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VpmnsLbG0mctsw/f2oLvosZkoWj8TnHMtp4T4IT2mb8=; b=a4zuGzzCT8CetEN0cqjfyvB4fyEqUBb7o6ufOpJnoRrVriqFzo353RcnlW5JJgZqhT qqBPHqPa39nZWoRJ0aYpTwSEeIsryfsOFmjz7P3unCqjqlCBkoxgCms7KxBl9zui19Ma Q7KYXzsvzCKu0fm2XuHie83BEWFpTgZS2xh3jxC3UMIuZiMmueHW5Zf9NpiaTAjKusZL 0B1+relnu7GrL5Cq5QJx9BxkNhegIAhBxC8GbS8RWonwFHr4LFfGOx/6RhZc3oV8xkYE a3EqiiQeTSrOrgQX+j1rkT6XfPoAyLrpZTVS3AYRdneVV+T7sl++M/Q99fvbCwVX+wN5 7Eqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695292801; x=1695897601; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VpmnsLbG0mctsw/f2oLvosZkoWj8TnHMtp4T4IT2mb8=; b=tXLtdSX0NpEPGo/EZuKCnyBlTKnZ4ikTzIfX27Mc8cjcL0BbCIIpFblH1Gh+/qGTsZ tkseu/LkR5vr73WEVexkMoBrVVMMS9/uHvVU1TJMwm7eVloSqu+5NogJi4W1g5H0MqSg 4I9u6CtMjp6g4FLxF1BscO5GAo23n8Dglo2i260JTuQQ7DHK1mw5RPea4hGkcohKIB2e AHfvHPft6whTcrAtEOrULoZKruU7A0ogHeew8ISXhaLczsvI2mEokajXFGu7xOUTPuo6 g3fdf/8yo4LpATqGGlP3BMFSP5A3HOJGP2JJinuAUxN0TiNuUE7bY7J2QcnNPqNQmPeE EEMw== X-Gm-Message-State: AOJu0Yx7LYBDnCj/sB3kYfdq6Dv3z8h7/TEIe6MaL7PqfmVpiVZonch1 TcsZ/64ZLmMpBkDVV3UOjW6k5orRR6gXzTyqKKGn1S0Xskk= X-Google-Smtp-Source: AGHT+IFpO6zZbKnKCsjhcIDCmfQZ+ZJMkl5xRv7etPNbegQ9Om5LHa5nxL0zWZ68rfmad2QDPD0JpsqAxecMF2Sc2ek= X-Received: by 2002:a67:e994:0:b0:451:73bb:9fa0 with SMTP id b20-20020a67e994000000b0045173bb9fa0mr5721659vso.34.1695292800983; Thu, 21 Sep 2023 03:40:00 -0700 (PDT) MIME-Version: 1.0 References: <20230920184058.1263793-1-abhishek.ojha@savoirfairelinux.com> In-Reply-To: <20230920184058.1263793-1-abhishek.ojha@savoirfairelinux.com> From: Paul B Mahol Date: Thu, 21 Sep 2023 12:39:45 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [RFC PATCH 1/2] libavdevice/pipewiregrab: add pipewire based grab 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: Abhishek Ojha 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: T24gV2VkLCBTZXAgMjAsIDIwMjMgYXQgODo0MeKAr1BNIEFiaGlzaGVrIE9qaGEgPAphYmhpc2hl ay5vamhhQHNhdm9pcmZhaXJlbGludXguY29tPiB3cm90ZToKCj4gVGhpcyBpcyBhbiBwcm9vZiBv ZiBjb25jZXB0IGZvciBwaXBld2lyZSBncmFiIHRvIGVuYWJsZSBzY3JlZW4gY2FwdHVyZQo+IG9u IHdheWxhbmQuIEFkZCBhIG5ldyBMaW51eCBjYXB0dXJlIGJhc2VkIG9uIFsxXSBQaXBlV2lyZSBh bmQgdGhlCj4gWzJdIERlc2t0b3AgcG9ydGFsLgo+IFRoaXMgbmV3IGNhcHR1cmUgc3RhcnRzIGJ5 IGFza2luZyB0aGUgRGVza3RvcCBwb3J0YWwgZm9yIGEgc2NyZWVuY2FwdHVyZQo+IHNlc3Npb24u VGhlcmUgYXJlIHF1aXRlIGEgZmV3IEQtQnVzIGNhbGxzIGludm9sdmVkIGluIHRoaXMsIGJ1dCB0 aGUga2V5Cj4gcG9pbnRzIGFyZToKPgo+IDEuIEEgY29ubmVjdGlvbiB0byBvcmcuZnJlZWRlc2t0 b3AucG9ydGFsLlNjcmVlbkNhc3QgaXMgZXN0YWJpbGlzaGVkLAo+ICAgIGFuZCB0aGUgYXZhaWxh YmxlIGN1cnNvciBtb2RlcyBhcmUgdXBkYXRlZC4gQ3VycmVudGx5IG9ubHkgZW1iZWRkZWQKPiAg ICBhbmQgaGlkZGVuIGN1cnJzb3IgbW9kZSBlbmFibGVkLgo+Cj4gMi4gQ2FsbCBDcmVhdGVTZXNz aW9uIHZpYSBkYnVzIGNhbGwuIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlCj4gICAgY29t bXVuaWNhdGlvbi4gUmVzcG9uc2UgY2FsbGJhY2sgcmV0dXJuIHRoZSBzdGF0dXMgb2YgY3JlYXRl ZAo+ICAgIHNlc3Npb24uCj4KPiAzLiBDYWxsIFNlbGVjdFNvdXJjZXMgLiBUaGlzIGlzIHdoZW4g YSBzeXN0ZW0gZGlhbG9nIHBvcHMgdXAgYXNraW5nCj4gICAgdGhlIHVzZXIgdG8gZWl0aGVyIHNl bGVjdCBhIG1vbml0b3IgKGRlc2t0b3AgY2FwdHVyZSkuT25seSBtb25pdG9yCj4gICAgY2FwdHVy ZSBpcyBlbmFibGVkIGluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uCj4KPiA0LiBDYWxsIFN0YXJ0 IC4gVGhpcyBzaWduYWxzIHRoZSBjb21wb3NpdG9yIHRoYXQgaXQgY2FuIHNldHVwIGEgUGlwZVdp cmUKPiAgICBzdHJlYW0sIGFuZCBzdGFydCBzZW5kaW5nIGJ1ZmZlcnMuCj4KPiBBYm92ZSBmbG93 IGlzIGltcGxlbWVudGVkIGFzIHBlciB0aGUgWzJdIHhkZy1kZXNrdG9wLXBvcnRhbC4gT25jZSBm bG93Cj4gaXMgY29tcGxldGVkLCBwaXBld2lyZSBmZCBpcyByZWNlaXZlZCBhbmQgdXNpbmcgdGhp cyBwaXBld2lyZSBzdHJlYW0gaXMKPiBjcmVhdGVkIGFuZCByZWNlaXZlIGJ1ZmZlciBmcm9tIHRo ZSBjcmVhdGVkIHN0cmVhbS4KPgo+IEZvciBjdXJzb3IgaW1wbGVtZW50YXRpb24sIGVtYmVkZGVk IGN1cnNvciBtb2RlIGlzIGVuYWJsZWQgdGhhdCBtZWFucwo+IGN1cnNvciBtZXRhZGF0YSBpcyBu b3QgaGFuZGxlZCBpbiBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFuZCBoYXMgbm8KPiBjb250cm9s IG92ZXIgdGhlIGN1cnNvciBiaXRtYXAuCj4KPiBnZGJ1cy9waXBld2lyZSBsb2dpYywgdGhpcyBp cyBiYXNlZCBvbiBvYnMteGRnLCBnc3RwaXBld2lyZSBhbmQKPiBwaXBld2lyZSBleGFtcGxlcywg YW5kIGluaXRpYWwgcGlwZXdpcmUgZ3JhYiBsb2dpYywgdGhpcyBpcyBiYXNlZCBvbgo+IGxpYmF2 ZGV2aWNlL3hjYmdyYWIgYW5kIGxpYmF2ZGV2aWNlL3Y0bDIKPgo+IFRoaXMgaW1wbGVtZW50YXRp b24gc2hvd3MgdGhlIHNrZWxldG9uIGltcGxlbWVudGF0aW9uIGFuZCBlbmFibGVzIGJhc2ljCj4g ZnVuY3Rpb25hbGl0eS4gSSdkIGxpa2UgdG8gaGVhciBvcGluaW9ucyBhbmQgc3VnZ2VzdGlvbnMg dG8gaW1wcm92ZSBhbmQKPiBwcm9wZXJseSB1c2UgdGhpcy4KPgo+IFsxXSBodHRwczovL3BpcGV3 aXJlLm9yZy8KPiBbMl0gaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRwYWsveGRnLWRlc2t0b3AtcG9y dGFsLwo+Cj4gQmVsb3cgYXJlIHRoZSBhcmd1bWVudHMgZm9yIHBpcGV3aXJlZ3JhYi4KPiBmZnBs YXkgLWYgcGlwZXdpcmVncmFiIC1kcmF3X21vdXNlIDEgLWkgOjAuMAo+Cj4gU2lnbmVkLW9mZi1i eTogQWJoaXNoZWsgT2poYSA8YWJoaXNoZWsub2poYUBzYXZvaXJmYWlyZWxpbnV4LmNvbT4KPiAt LS0KPiAgY29uZmlndXJlICAgICAgICAgICAgICAgICAgfCAgICA5ICsKPiAgbGliYXZkZXZpY2Uv TWFrZWZpbGUgICAgICAgfCAgICAxICsKPiAgbGliYXZkZXZpY2UvYWxsZGV2aWNlcy5jICAgfCAg ICAxICsKPiAgbGliYXZkZXZpY2UvcGlwZXdpcmVncmFiLmMgfCAxODM2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDE4NDcgaW5zZXJ0aW9u cygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZkZXZpY2UvcGlwZXdpcmVncmFiLmMKPgo+ IGRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKPiBpbmRleCBlNDBkY2NlMDllLi4z MjViMTA0ODRmIDEwMDc1NQo+IC0tLSBhL2NvbmZpZ3VyZQo+ICsrKyBiL2NvbmZpZ3VyZQo+IEBA IC0yOTksNiArMjk5LDcgQEAgRXh0ZXJuYWwgbGlicmFyeSBzdXBwb3J0Ogo+ICAgIC0tZW5hYmxl LWxpYnhjYi1zaG0gICAgICBlbmFibGUgWDExIGdyYWJiaW5nIHNobSBjb21tdW5pY2F0aW9uCj4g W2F1dG9kZXRlY3RdCj4gICAgLS1lbmFibGUtbGlieGNiLXhmaXhlcyAgIGVuYWJsZSBYMTEgZ3Jh YmJpbmcgbW91c2UgcmVuZGVyaW5nCj4gW2F1dG9kZXRlY3RdCj4gICAgLS1lbmFibGUtbGlieGNi LXNoYXBlICAgIGVuYWJsZSBYMTEgZ3JhYmJpbmcgc2hhcGUgcmVuZGVyaW5nCj4gW2F1dG9kZXRl Y3RdCj4gKyAgLS1lbmFibGUtbGlicGlwZXdpcmUgICAgIGVuYWJsZSBzY3JlZW4gZ3JhYmJpbmcg dXNpbmcgcGlwZXdpcmUKPiBbYXV0b2RldGVjdF0KPiAgICAtLWVuYWJsZS1saWJ4dmlkICAgICAg ICAgZW5hYmxlIFh2aWQgZW5jb2RpbmcgdmlhIHh2aWRjb3JlLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYXRpdmUgTVBFRy00L1h2aWQgZW5jb2RlciBleGlzdHMgW25vXQo+ICAgIC0t ZW5hYmxlLWxpYnhtbDIgICAgICAgICBlbmFibGUgWE1MIHBhcnNpbmcgdXNpbmcgdGhlIEMgbGli cmFyeQo+IGxpYnhtbDIsIG5lZWRlZAo+IEBAIC0xNzg4LDYgKzE3ODksOCBAQCBFWFRFUk5BTF9B VVRPREVURUNUX0xJQlJBUllfTElTVD0iCj4gICAgICBsaWJ4Y2Jfc2htCj4gICAgICBsaWJ4Y2Jf c2hhcGUKPiAgICAgIGxpYnhjYl94Zml4ZXMKPiArICAgIGxpYnBpcGV3aXJlCj4gKyAgICBsaWJn aW9fdW5peAo+ICAgICAgbHptYQo+ICAgICAgbWVkaWFmb3VuZGF0aW9uCj4gICAgICBtZXRhbAo+ IEBAIC0zNjIxLDYgKzM2MjQsNyBAQCB2NGwyX291dGRldl9zdWdnZXN0PSJsaWJ2NGwyIgo+ICB2 ZndjYXBfaW5kZXZfZGVwcz0idmZ3MzIgdmZ3Y2FwX2RlZmluZXMiCj4gIHhjYmdyYWJfaW5kZXZf ZGVwcz0ibGlieGNiIgo+ICB4Y2JncmFiX2luZGV2X3N1Z2dlc3Q9ImxpYnhjYl9zaG0gbGlieGNi X3NoYXBlIGxpYnhjYl94Zml4ZXMiCj4gK3BpcGV3aXJlZ3JhYl9pbmRldl9kZXBzPSJsaWJwaXBl d2lyZSBsaWJnaW9fdW5peCBwdGhyZWFkcyIKPiAgeHZfb3V0ZGV2X2RlcHM9InhsaWJfeHYgeGxp Yl94MTEgeGxpYl94ZXh0Igo+Cj4gICMgcHJvdG9jb2xzCj4gQEAgLTcwNDEsNiArNzA0NSwxMSBA QCBpZiBlbmFibGVkIGxpYnhjYjsgdGhlbgo+ICAgICAgZW5hYmxlZCBsaWJ4Y2JfeGZpeGVzICYm IGNoZWNrX3BrZ19jb25maWcgbGlieGNiX3hmaXhlcyB4Y2IteGZpeGVzCj4geGNiL3hmaXhlcy5o IHhjYl94Zml4ZXNfZ2V0X2N1cnNvcl9pbWFnZQo+ICBmaQo+Cj4gK2VuYWJsZWQgbGlicGlwZXdp cmUgJiYgY2hlY2tfcGtnX2NvbmZpZyBsaWJwaXBld2lyZSAibGlicGlwZXdpcmUtMC4zID49Cj4g MC4zLjQwIiBwaXBld2lyZS9waXBld2lyZS5oIHB3X2luaXQKPiAraWYgZW5hYmxlZCBsaWJwaXBl d2lyZTsgdGhlbgo+ICsgICAgZW5hYmxlZCBsaWJnaW9fdW5peCAmJiBjaGVja19wa2dfY29uZmln IGxpYmdpb191bml4IGdpby11bml4LTIuMAo+IGdpby9naW8uaCBnX21haW5fbG9vcF9uZXcKPiAr ZmkKPiArCj4gIGNoZWNrX2Z1bmNfaGVhZGVycyAid2luZG93cy5oIiBDcmVhdGVESUJTZWN0aW9u ICIkZ2RpZ3JhYl9pbmRldl9leHRyYWxpYnMiCj4KPiAgIyBkM2QxMXZhIHJlcXVpcmVzIGxpbmtp bmcgZGlyZWN0bHkgdG8gZHhnaSBhbmQgZDNkMTEgaWYgbm90IGJ1aWxkaW5nIGZvcgo+IGRpZmYg LS1naXQgYS9saWJhdmRldmljZS9NYWtlZmlsZSBiL2xpYmF2ZGV2aWNlL01ha2VmaWxlCj4gaW5k ZXggYzMwNDQ5MjAxZC4uZjAyOTYwNzgyZCAxMDA2NDQKPiAtLS0gYS9saWJhdmRldmljZS9NYWtl ZmlsZQo+ICsrKyBiL2xpYmF2ZGV2aWNlL01ha2VmaWxlCj4gQEAgLTQ5LDYgKzQ5LDcgQEAgT0JK Uy0kKENPTkZJR19WNEwyX0lOREVWKSAgICAgICAgICAgICAgICArPSB2NGwyLm8KPiB2NGwyLWNv bW1vbi5vIHRpbWVmaWx0ZXIubwo+ICBPQkpTLSQoQ09ORklHX1Y0TDJfT1VUREVWKSAgICAgICAg ICAgICAgICs9IHY0bDJlbmMubyB2NGwyLWNvbW1vbi5vCj4gIE9CSlMtJChDT05GSUdfVkZXQ0FQ X0lOREVWKSAgICAgICAgICAgICAgKz0gdmZ3Y2FwLm8KPiAgT0JKUy0kKENPTkZJR19YQ0JHUkFC X0lOREVWKSAgICAgICAgICAgICArPSB4Y2JncmFiLm8KPiArT0JKUy0kKENPTkZJR19QSVBFV0lS RUdSQUJfSU5ERVYpICAgICAgICArPSBwaXBld2lyZWdyYWIubwo+ICBPQkpTLSQoQ09ORklHX1hW X09VVERFVikgICAgICAgICAgICAgICAgICs9IHh2Lm8KPgo+ICAjIGV4dGVybmFsIGxpYnJhcmll cwo+IGRpZmYgLS1naXQgYS9saWJhdmRldmljZS9hbGxkZXZpY2VzLmMgYi9saWJhdmRldmljZS9h bGxkZXZpY2VzLmMKPiBpbmRleCA4YTkwZmNiNWQ3Li4xZmE4NTYzZGY0IDEwMDY0NAo+IC0tLSBh L2xpYmF2ZGV2aWNlL2FsbGRldmljZXMuYwo+ICsrKyBiL2xpYmF2ZGV2aWNlL2FsbGRldmljZXMu Ywo+IEBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92NGwy X2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBGRk91dHB1dEZvcm1hdCBmZl92NGwyX211eGVyOwo+ ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfdmZ3Y2FwX2RlbXV4ZXI7Cj4gIGV4dGVy biBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl94Y2JncmFiX2RlbXV4ZXI7Cj4gK2V4dGVybiBjb25z dCBBVklucHV0Rm9ybWF0ICBmZl9waXBld2lyZWdyYWJfZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0 IEZGT3V0cHV0Rm9ybWF0IGZmX3h2X211eGVyOwo+Cj4gIC8qIGV4dGVybmFsIGxpYnJhcmllcyAq Lwo+IGRpZmYgLS1naXQgYS9saWJhdmRldmljZS9waXBld2lyZWdyYWIuYyBiL2xpYmF2ZGV2aWNl L3BpcGV3aXJlZ3JhYi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAw Li41Yjk2ZDQzODYzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYmF2ZGV2aWNlL3BpcGV3aXJl Z3JhYi5jCj4gQEAgLTAsMCArMSwxODM2IEBACj4gKy8qCj4gKyAqIFBpcGVXaXJlIGlucHV0IGdy YWJiZXIgKFNjcmVlbkNhc3QpCj4gKyAqIENvcHlyaWdodCAoQykgMjAyMyBTYXZvaXItZmFpcmUg TGludXgsIEluYy4KPiArICoKPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ICsg Kgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsgKiBGRm1w ZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiAr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFs b25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4gKyAq IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKPiAwMjExMC0xMzAxIFVTQQo+ICsgKi8KPiArCj4gKy8qKgo+ICsgKiBAZmlsZQo+ICsg KiBQaXBld2lyZSBHcmFiIGRlbXV4ZXIKPiArICogQGF1dGhvciBBYmhpc2hlayBPamhhIDxhYmhp c2hlay5vamhhQHNhdm9pcmZhaXJlbGludXguY29tPgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJj b25maWcuaCIKPiArCj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ICsjaW5jbHVkZSA8bGludXgvZG1h LWJ1Zi5oPgo+ICsjaW5jbHVkZSA8bWF0aC5oPgo+ICsjaW5jbHVkZSA8cHRocmVhZC5oPgo+ICsj aW5jbHVkZSA8c3RkYXRvbWljLmg+Cj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiArI2luY2x1ZGUg PHN0cmluZy5oPgo+ICsjaW5jbHVkZSA8c3lzL21tYW4uaD4KPiArI2luY2x1ZGUgPHN5cy9xdWV1 ZS5oPgo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5oIgo+ICsjaW5jbHVkZSAi bGliYXZ1dGlsL21hdGhlbWF0aWNzLmgiCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvb3B0LmgiCj4g KyNpbmNsdWRlICJsaWJhdnV0aWwvcGFyc2V1dGlscy5oIgo+ICsjaW5jbHVkZSAibGliYXZ1dGls L3RpbWUuaCIKPiArCj4gKyNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmZvcm1hdC5oIgo+ICsjaW5j bHVkZSAibGliYXZmb3JtYXQvaW50ZXJuYWwuaCIKPiArCj4gKyNpbmNsdWRlIDxwaXBld2lyZS9w aXBld2lyZS5oPgo+ICsjaW5jbHVkZSA8cGlwZXdpcmUvdGhyZWFkLWxvb3AuaD4KPiArI2luY2x1 ZGUgPHNwYS9kZWJ1Zy90eXBlcy5oPgo+ICsjaW5jbHVkZSA8c3BhL3BhcmFtL3ZpZGVvL2Zvcm1h dC11dGlscy5oPgo+ICsjaW5jbHVkZSA8c3BhL3BhcmFtL3ZpZGVvL3R5cGUtaW5mby5oPgo+ICsK PiArI2luY2x1ZGUgPGdpby9naW8uaD4KPiArI2luY2x1ZGUgPGdpby9ndW5peGZkbGlzdC5oPgo+ ICsKPiArI2lmbmRlZiBfX1VTRV9YT1BFTjJLOAo+ICsjZGVmaW5lIEZfRFVQRkRfQ0xPRVhFQwo+ ICAgICAgIFwKPiArICAgIDEwMzAgLyogRHVwbGljYXRlIGZpbGUgZGVzY3JpcHRvciB3aXRoIGNs b3NlLW9uLWV4aXQgc2V0LiAgKi8KPiArI2VuZGlmCj4gKwo+ICsjZGVmaW5lIEJZVEVTX1BFUl9Q SVhFTCA0IC8qIGN1cnJlbnRseSBhbGwgZm9ybWF0cyBhc3N1bWUgNCBieXRlcyBwZXIKPiBwaXhl bCAqLwo+ICsjZGVmaW5lIFJFUVVFU1RfUEFUSCAiL29yZy9mcmVlZGVza3RvcC9wb3J0YWwvZGVz a3RvcC9yZXF1ZXN0LyVzL29icyV1Igo+ICsjZGVmaW5lIFNFU1NJT05fUEFUSCAiL29yZy9mcmVl ZGVza3RvcC9wb3J0YWwvZGVza3RvcC9zZXNzaW9uLyVzL29icyV1Igo+ICsjZGVmaW5lIE1BWF9T UEFfUEFSQU0gNCAvKiBtYXggbnVtYmVyIG9mIHBhcmFtcyBmb3Igc3BhIHBvZCAqLwo+ICsKPiAr I2RlZmluZSBDVVJTT1JfTUVUQV9TSVpFKHdpZHRoLCBoZWlnaHQpCj4gICAgICAgXAo+ICsgICAg KHNpemVvZihzdHJ1Y3Qgc3BhX21ldGFfY3Vyc29yKSArIHNpemVvZihzdHJ1Y3Qgc3BhX21ldGFf Yml0bWFwKSArCj4gICAgICBcCj4gKyAgICAgd2lkdGggKiBoZWlnaHQgKiA0KQo+ICsKPiArLyoq Cj4gKyAqIFBpcGV3aXJlIGNhcHR1cmUgdHlwZXMKPiArICovCj4gK3R5cGVkZWYgZW51bSB7Cj4g KyAgICBERVNLVE9QX0NBUFRVUkUgPSAxLAo+ICsgICAgV0lORE9XX0NBUFRVUkUgPSAyLAo+ICt9 IHB3X2NhcHR1cmVfdHlwZTsKPiArCj4gKy8qKgo+ICsgKiBQaXBld2lyZSB2ZXJzaW9uIHN0cnVj dHVyZQo+ICsgKi8KPiArc3RydWN0IEZGbXBlZ1B3VmVyc2lvbiB7Cj4gKyAgICBpbnQgbWFqb3I7 Cj4gKyAgICBpbnQgbWlub3I7Cj4gKyAgICBpbnQgbWljcm87Cj4gK307Cj4gKwo+ICsvKioKPiAr ICogUGlwZXdpcmUgc3RydWN0dXJlIGZvciBmcmFtZSBwcm9jZXNzaW5nCj4gKyAqLwo+ICtzdHJ1 Y3QgUHdTdHJlYW1BbmRCdWZmZXIgewo+ICsgICAgQVZGb3JtYXRDb250ZXh0ICpjdHg7Cj4gKyAg ICBzdHJ1Y3QgcHdfc3RyZWFtICpwd19zdHJlYW07Cj4gKyAgICBzdHJ1Y3QgcHdfYnVmZmVyICpw d19idWY7Cj4gK307Cj4gKwo+ICsvKioKPiArICogUGlwZXdpcmUgc3VwcG9ydGVkIGN1cnNvciBt b2Rlcwo+ICsgKi8KPiArZW51bSBQb3J0YWxDdXJzb3JNb2RlIHsKPiArICAgIFBPUlRBTF9DVVJT T1JfTU9ERV9ISURERU4gPSAxIDw8IDAsCj4gKyAgICBQT1JUQUxfQ1VSU09SX01PREVfRU1CRURE RUQgPSAxIDw8IDEsCj4gKyAgICBQT1JUQUxfQ1VSU09SX01PREVfTUVUQURBVEEgPSAxIDw8IDIs Cj4gK307Cj4gKwo+ICsvKioKPiArICogUGlwZVdpcmUgR3JhYiBtYWluIHN0cnVjdHVyZQo+ICsg KiBDb250YWlucyBhbGwgbmVjZXNzYXJ5IGRhdGEgdGhhdCBob2xkIGN1cnJlbnQgc3RhdGUKPiAr ICogSW5pdGlhbCBzdGF0ZSBvZiB0aGlzIHN0cnVjdCBpcyBhbGxvY2F0ZWQgYnkgbGliYXZkZXZp Y2UKPiArICogbG9naWMgd2hlbiBkZWNsYXJpbmcgdGhlIEFWSW5wdXRGb3JtYXQgZmZfcGlwZXdp cmVncmFiX2RlbXV4ZXIuCj4gKyAqIFRoaXMgc3RydWN0dXJlIGlzIHByaXZfZGF0YSBvZiBBVkZv cm1hdENvbnRleHQgaW5zdGFuY2UuCj4gKyAqLwo+ICt0eXBlZGVmIHN0cnVjdCBQaXBld2lyZUdy YWJDb250ZXh0IHsKPiArICAgIC8qKiB0aHJlYWQgdXNlZCB0byBpbnRpYWxpemUvc3RhcnQgcGlw ZXdpcmUgbG9naWMgKi8KPiArICAgIHB0aHJlYWRfdCBwaXBld2lyZV9wdGhyZWFkOwo+ICsKPiAr ICAgIC8qKiBjb25kaXRpb25hbCBzeW5jaHJvbml6YXRpb24gbG9naWMgZWxlY21lbnRzIGJldHdl ZW4gcGlwZXdpcmUKPiArICAgICAqIHRocmVhZCBhbmQgbGliYXZkZXZpY2UgdGhyZWFkLgo+ICsg ICAgICovCj4gKyAgICBwdGhyZWFkX2NvbmRfdCBhdnN0cmVhbV9jb2RlY19jb25kX3ZhcjsKPiAr ICAgIHB0aHJlYWRfbXV0ZXhfdCBhdnN0cmVhbV9jb2RlY19tdXRleDsKPiArICAgIGF0b21pY19p bnQgYXZzdHJlYW1fY29kZWNfZmxhZzsKPiArCj4gKyAgICBwdGhyZWFkX211dGV4X3QgY3VycmVu dF9wa3RfbXV0ZXg7Cj4gKyAgICBBVlBhY2tldCogY3VycmVudF9wa3Q7Cj4gKwo+ICsgICAgR0RC dXNDb25uZWN0aW9uICpjb25uZWN0aW9uOwo+ICsgICAgR0RCdXNQcm94eSAqcHJveHk7Cj4gKyAg ICBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlOwo+ICsKPiArICAgIGNoYXIgKnNlbmRlcl9uYW1l Owo+ICsgICAgY2hhciAqc2Vzc2lvbl9oYW5kbGU7Cj4gKwo+ICsgICAgdWludDMyX3QgcGlwZXdp cmVfbm9kZTsKPiArICAgIGludCBwaXBld2lyZV9mZDsKPiArCj4gKyAgICB1aW50MzJfdCBhdmFp bGFibGVfY3Vyc29yX21vZGVzOwo+ICsKPiArICAgIEdNYWluTG9vcCAqZ2xpYl9tYWluX2xvb3A7 Cj4gKyAgICBzdHJ1Y3QgcHdfdGhyZWFkX2xvb3AgKnRocmVhZF9sb29wOwo+ICsgICAgc3RydWN0 IHB3X2NvbnRleHQgKmNvbnRleHQ7Cj4gKwo+ICsgICAgc3RydWN0IHB3X2NvcmUgKmNvcmU7Cj4g KyAgICBzdHJ1Y3Qgc3BhX2hvb2sgY29yZV9saXN0ZW5lcjsKPiArCj4gKyAgICBzdHJ1Y3QgcHdf c3RyZWFtICpzdHJlYW07Cj4gKyAgICBzdHJ1Y3Qgc3BhX2hvb2sgc3RyZWFtX2xpc3RlbmVyOwo+ ICsgICAgc3RydWN0IHNwYV92aWRlb19pbmZvIGZvcm1hdDsKPiArCj4gKyAgICBwd19jYXB0dXJl X3R5cGUgY2FwdHVyZV90eXBlOwo+ICsgICAgYm9vbCBuZWdvdGlhdGVkOwo+ICsKPiArICAgIC8q KjwgZHJhd19tb3VzZSBpcyB0byBjb250cm9sIHRoZSBlbmFibGUvZGlzYWJsZSBtb3VzZSBjdXJz b3IgKi8KPiArICAgIGludCBkcmF3X21vdXNlOwo+ICsKPiArICAgIC8qKiBjdXJzb3IgbWV0YWRh dGEgKi8KPiArICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgYm9vbCB2aXNpYmxlOwo+ICsgICAgICAg IGJvb2wgdmFsaWQ7Cj4gKyAgICAgICAgaW50IHgsIHk7Cj4gKyAgICAgICAgaW50IGhvdHNwb3Rf eCwgaG90c3BvdF95Owo+ICsgICAgICAgIGludCB3aWR0aCwgaGVpZ2h0Owo+ICsgICAgfSBjdXJz b3I7Cj4gKwo+ICsgICAgLyoqPCBXaWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBncmFiIGZyYW1lIChw cml2YXRlIG9wdGlvbikgKi8KPiArICAgIHVpbnQzMl90IHdpZHRoLCBoZWlnaHQ7Cj4gKwo+ICsg ICAgLyoqPCBTaXplIGluIGJ5dGVzIG9mIHRoZSBmcmFtZSBwaXhlbCBkYXRhICovCj4gKyAgICB1 aW50MzJfdCBmcmFtZV9zaXplOwo+ICsgICAgdWludDhfdCBCcHA7Cj4gKyAgICBlbnVtIEFWUGl4 ZWxGb3JtYXQgYXZfcHhsX2Zvcm1hdDsKPiArICAgIEFWUmF0aW9uYWwgdXNlcl9mcmFtZV9yYXRl Owo+ICsKPiArICAgIGludDY0X3QgdGltZV9mcmFtZTsKPiArICAgIEFWUmF0aW9uYWwgdGltZV9i YXNlOwo+ICsgICAgaW50NjRfdCBmcmFtZV9kdXJhdGlvbjsKPiArCj4gKyAgICBjb25zdCBBVkNs YXNzICpjbGFzczsKPiArCj4gKyAgICBjb25zdCBjaGFyICpmcmFtZXJhdGU7Cj4gKyAgICBzdHJ1 Y3QgRkZtcGVnUHdWZXJzaW9uIHNlcnZlcl92ZXJzaW9uOwo+ICsgICAgaW50IHNlcnZlcl92ZXJz aW9uX3N5bmM7Cj4gK30gUGlwZXdpcmVHcmFiQ29udGV4dDsKPiArCj4gKy8qKgo+ICsgKiBkYnVz J3MgbWV0aG9kL2V2ZW50IG1hcnNoYWxsaW5nIHN0cnVjdHVyZQo+ICsgKi8KPiArc3RydWN0IERi dXNDYWxsRGF0YSB7Cj4gKyAgICBBVkZvcm1hdENvbnRleHQgKmN0eDsKPiArICAgIGNoYXIgKnJl cXVlc3RfcGF0aDsKPiArICAgIGd1aW50IHNpZ25hbF9pZDsKPiArICAgIGd1bG9uZyBjYW5jZWxs ZWRfaWQ7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIEZPTExPV19DRU5URVIgLTEKPiArCj4gKyNkZWZp bmUgT0ZGU0VUKHgpIG9mZnNldG9mKFBpcGV3aXJlR3JhYkNvbnRleHQsIHgpCj4gKyNkZWZpbmUg RCBBVl9PUFRfRkxBR19ERUNPRElOR19QQVJBTQo+ICtzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0 aW9uc1tdID0gewo+ICsgICAgeyAiZnJhbWVyYXRlIiwKPiArICAgICAgIiIsCj4gKyAgICAgIE9G RlNFVChmcmFtZXJhdGUpLAo+ICsgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsCj4gKyAgICAgIHsg LnN0ciA9ICJudHNjIiB9LAo+ICsgICAgICAwLAo+ICsgICAgICAwLAo+ICsgICAgICBEIH0sCj4g KyAgICB7ICJkcmF3X21vdXNlIiwKPiArICAgICAgIkRyYXcgdGhlIG1vdXNlIHBvaW50ZXIuIiwK PiArICAgICAgT0ZGU0VUKGRyYXdfbW91c2UpLAo+ICsgICAgICBBVl9PUFRfVFlQRV9JTlQsCj4g KyAgICAgIHsgLmk2NCA9IDAgfSwKPiArICAgICAgMCwKPiArICAgICAgMSwKPiArICAgICAgRCB9 LAo+ICsgICAgeyBOVUxMIH0sCj4gK307Cj4gKwo+ICsvKioKPiArICogRnVuY3Rpb24gcGFyc2Ug dGhlIHBpcGV3aXJlIHZlcnNpb24KPiArICogQHBhcmFtIGRzdCBGbXBlZ1B3VmVyc2lvbiB0aGF0 IGNvbnRhaW5zIFBpcGVXaXJlIHZlcnNpb24gaW5mbwo+ICsgKiBAcGFyYW0gdmVyc2lvbiBwaXBl d2lyZSB2ZXJzaW9uCj4gKyAqLwo+ICtzdGF0aWMgYm9vbCBwYXJzZV9wd192ZXJzaW9uKHN0cnVj dCBGRm1wZWdQd1ZlcnNpb24gKmRzdCwgY29uc3QgY2hhcgo+ICp2ZXJzaW9uKQo+ICt7Cj4gKyAg ICBpbnQgbl9tYXRjaGVzID0gc3NjYW5mKHZlcnNpb24sICIlZC4lZC4lZCIsICZkc3QtPm1ham9y LCAmZHN0LT5taW5vciwKPiArICAgICAgICAgICAgICAgICAgICZkc3QtPm1pY3JvKTsKPiArICAg IHJldHVybiBuX21hdGNoZXMgPT0gMzsKPiArfQo+ICsKPiArLyoqCj4gKyAqIEZ1bmN0aW9uIHVw ZGF0ZSB0aGUgcGlwZXdpcmUgdmVyc2lvbiBpbiBwcml2YXRlIGRhdGEKPiArICogcGFyYW1zLCB0 aGVuIHNpZ25hbCB0aGUgYmxvY2tlZCBAcmVmIHBpcGV3aXJlZ3JhYl9yZWFkX2hlYWRlcgo+ICsg Kgo+ICsgKiBAcGFyYW0gY3R4IEFWRm9ybWF0Q29udGV4dCB0aGF0IGNvbnRhaW5zIFBpcGVXaXJl IEdyYWIgbWFpbiBzdHJ1Y3R1cmUKPiArICogQHBhcmFtIHZlcnNpb24gcGlwZXdpcmUgdmVyc2lv bgo+ICsgKi8KPiArc3RhdGljIHZvaWQgdXBkYXRlX3B3X3ZlcnNpb25zKEFWRm9ybWF0Q29udGV4 dCAqY3R4LCBjb25zdCBjaGFyICp2ZXJzaW9uKQo+ICt7Cj4gKyAgICBQaXBld2lyZUdyYWJDb250 ZXh0ICpwd19jdHggPSBjdHgtPnByaXZfZGF0YTsKPiArICAgIGF2X2xvZyhjdHgsIEFWX0xPR19E RUJVRywgIltwaXBld2lyZWdyYWJdIFNlcnZlciB2ZXJzaW9uOiAlc1xuIiwKPiB2ZXJzaW9uKTsK PgoKQWxsIGxvZ3MgYXBwZWFyIHRvIGhhdmUgdGhpcyBbcGlwZXdpcmVncmFiXSBwYXJ0LCBidXQg dGhpcyBsb29rcyB1bm5lZWRlZAphcyBsb2dzIG5vcm1hbGx5IHdyaXRlIG1vZHVsZSBuYW1lIG91 dC4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVn LWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBl Zy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNp dCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=