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 3EDF3492A0 for ; Sun, 7 Apr 2024 14:46:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6E12568D1FB; Sun, 7 Apr 2024 17:46:46 +0300 (EEST) Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2BF768D0BD for ; Sun, 7 Apr 2024 17:46:39 +0300 (EEST) Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-2a2f2cd61cdso902915a91.1 for ; Sun, 07 Apr 2024 07:46:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712501197; x=1713105997; 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=e6l1N9V2CVqAOY8ZDtyGItLONS29tUNvWY3FXZEOMuU=; b=Ltw0enPPOVhPK9mAQTiGuQoUKC07rj5YsufLINbOKl++SZbZhFqmyI99BbegRrhDhy 9t/ZrTa3o18LGdjg4Sjl2/1mZEUpcFhQzk7lPPLIt/s9y4M9Udn/tkYjyqEX8+vVICpk Pqvk4KP8BoN1jj+KZk48GHJpsLOVokcWF0cevgGFh+rPJMmYaey/ZtCwABu1bmrugVKo LHHfkaJhQfYAoXmn1v73wJ1wzHLN8klRIb0i9pmF428N88xemcIQpf8Cio004Wcb1DxI GDTGXptE6s7JvdYKbD4iXbzopN+R42nScNsL+/8QEjZQhcrXYI/BK8nuC/y8ljLam/LO pnEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712501197; x=1713105997; h=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=e6l1N9V2CVqAOY8ZDtyGItLONS29tUNvWY3FXZEOMuU=; b=HcUHhqz1+0uP8P4wPZWFRQQjsIs1BkI8bpjKZnhA34jOCsekR/+Tdqf/IyrhuOxD5V WsfRwDhVYjYqd1i49wJ7Orqs26tUiF3DhnHHRn8XYawmq4n6kzB+7hIAB6z+Z+Zp+5w+ PrRnGOpQQh6+hjLIVdw5affUwFvqTo148gTAFzICDuZwC99j468bs1y2i8ug7WPU4MgY UAjuivZ70q8CDmtf6sTaXfCj7f5Is8MexbeP273WKqe0ZTDz8NkoNtFtGJwXKMyl1XSd SPj9/DtMchrsS8JwUZIhEUTVte4zs0Ylvz/jysEcNf/+LRIcZWJ85TZKo9DYygHRJfTE viOw== X-Gm-Message-State: AOJu0YzxAbG9WOqUyBJ+dhqnfqWj+OPjVb+poitRIMCSWGO7q3eckrn4 52cL5Dy3q0RSgVvo1AKCl4nN5b2upvrsP8cnqvugzw7LIvh8zDB8GUWOv0qWm4pSyhJOhmP37cg /OHn1xqO9qOca3RjIAxQq8hXsvVLJap9Gz5w= X-Google-Smtp-Source: AGHT+IEu2cAOPsRX/1lGM+l/btmu/ZN6HC7wHrfsImMF6YEr056vcz8dXS7ns1YjPUARw8E6JUGz/15W2p+Zuwl7CHE= X-Received: by 2002:a17:90a:8988:b0:29c:7697:d2dc with SMTP id v8-20020a17090a898800b0029c7697d2dcmr6033658pjn.4.1712501196838; Sun, 07 Apr 2024 07:46:36 -0700 (PDT) MIME-Version: 1.0 References: <20240326005639.27000-1-toots@rastageeks.org> In-Reply-To: From: Romain Beauxis Date: Sun, 7 Apr 2024 09:46:25 -0500 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 1/2] libavformat/hls.c: support in-stream ID3 metadata update. 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 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: TGUgZGltLiA3IGF2ci4gMjAyNCDDoCAwNTo0NCwgU3RldmVuIExpdSA8bGluZ2ppdWppYW5rZUBn bWFpbC5jb20+IGEgw6ljcml0IDoKCj4gUm9tYWluIEJlYXV4aXMgPHRvb3RzQHJhc3RhZ2Vla3Mu b3JnPiDkuo4yMDI05bm0M+aciDI25pel5ZGo5LqMIDA4OjU45YaZ6YGT77yaCj4gPgo+ID4gVGhp cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHVwZGF0aW5nIEhMUyBtZXRhZGF0YSBwYXNzZWQgYXMg SUQzIGZyYW1lcy4KPiA+Cj4gPiBUaGlzIHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHQtZm9y d2FyZCBpbXByb3ZlbWVudC4gVXBkYXRpbmcgdGhlCj4gPiBtZXRhZGFhdGEgb2YgdGhlIGZpcnN0 IHN0cmVhbSBzZWVtcyB0byBiZSB0aGUgbWVjaGFuaXNtIGlzIG90aGVyIHBsYWNlcwo+ID4gaW4g dGhlIGNvZGUgYW5kIHdvcmtzIGFzIGV4cGVjdGVkLgo+ID4KPiA+IC0tLQo+ID4gIGxpYmF2Zm9y bWF0L2hscy5jIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25z KC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2hscy5jIGIvbGliYXZmb3JtYXQv aGxzLmMKPiA+IGluZGV4IGY2YjQ0YzJlMzUuLmJhNjYzNGQ1N2EgMTAwNjQ0Cj4gPiAtLS0gYS9s aWJhdmZvcm1hdC9obHMuYwo+ID4gKysrIGIvbGliYXZmb3JtYXQvaGxzLmMKPiA+IEBAIC05Myw2 ICs5MywxMiBAQCBlbnVtIFBsYXlsaXN0VHlwZSB7Cj4gPiAgICAgIFBMU19UWVBFX1ZPRAo+ID4g IH07Cj4gPgo+ID4gKyNkZWZpbmUgSUQzX1BSSVZfT1dORVJfVFMgImNvbS5hcHBsZS5zdHJlYW1p bmcudHJhbnNwb3J0U3RyZWFtVGltZXN0YW1wIgo+ID4gKyNkZWZpbmUgSUQzX1BSSVZfT1dORVJf QVVESU9fU0VUVVAKPiAiY29tLmFwcGxlLnN0cmVhbWluZy5hdWRpb0Rlc2NyaXB0aW9uIgo+ID4g Kwo+ID4gKyNkZWZpbmUgSUQzdjJfUFJJVl9PV05FUl9UUyBJRDN2Ml9QUklWX01FVEFEQVRBX1BS RUZJWCBJRDNfUFJJVl9PV05FUl9UUwo+ID4gKyNkZWZpbmUgSUQzdjJfUFJJVl9PV05FUl9BVURJ T19TRVRVUCBJRDN2Ml9QUklWX01FVEFEQVRBX1BSRUZJWAo+IElEM19QUklWX09XTkVSX0FVRElP X1NFVFVQCj4gPiArCj4gPiAgLyoKPiA+ICAgKiBFYWNoIHBsYXlsaXN0IGhhcyBpdHMgb3duIGRl bXV4ZXIuIElmIGl0IGN1cnJlbnRseSBpcyBhY3RpdmUsCj4gPiAgICogaXQgaGFzIGFuIG9wZW4g QVZJT0NvbnRleHQgdG9vLCBhbmQgcG90ZW50aWFsbHkgYW4gQVZQYWNrZXQKPiA+IEBAIC0xNTAs OSArMTU2LDcgQEAgc3RydWN0IHBsYXlsaXN0IHsKPiA+ICAgICAgaW50NjRfdCBpZDNfb2Zmc2V0 OyAvKiBpbiBzdHJlYW0gb3JpZ2luYWwgdGIgKi8KPiA+ICAgICAgdWludDhfdCogaWQzX2J1Zjsg LyogdGVtcCBidWZmZXIgZm9yIGlkMyBwYXJzaW5nICovCj4gPiAgICAgIHVuc2lnbmVkIGludCBp ZDNfYnVmX3NpemU7Cj4gPiAtICAgIEFWRGljdGlvbmFyeSAqaWQzX2luaXRpYWw7IC8qIGRhdGEg ZnJvbSBmaXJzdCBpZDMgdGFnICovCj4gPiAtICAgIGludCBpZDNfZm91bmQ7IC8qIElEMyB0YWcg Zm91bmQgYXQgc29tZSBwb2ludCAqLwo+ID4gLSAgICBpbnQgaWQzX2NoYW5nZWQ7IC8qIElEMyB0 YWcgZGF0YSBoYXMgY2hhbmdlZCBhdCBzb21lIHBvaW50ICovCj4gPiArICAgIEFWRGljdGlvbmFy eSAqbGFzdF9pZDM7IC8qIGRhdGEgZnJvbSB0aGUgbGFzdCBpZDMgdGFnICovCj4gPiAgICAgIElE M3YyRXh0cmFNZXRhICppZDNfZGVmZXJyZWRfZXh0cmE7IC8qIHN0b3JlZCBoZXJlIHVudGlsIHN1 YmRlbXV4ZXIKPiBpcyBvcGVuZWQgKi8KPiA+Cj4gPiAgICAgIEhMU0F1ZGlvU2V0dXBJbmZvIGF1 ZGlvX3NldHVwX2luZm87Cj4gPiBAQCAtMjcwLDcgKzI3NCw3IEBAIHN0YXRpYyB2b2lkIGZyZWVf cGxheWxpc3RfbGlzdChITFNDb250ZXh0ICpjKQo+ID4gICAgICAgICAgYXZfZnJlZXAoJnBscy0+ bWFpbl9zdHJlYW1zKTsKPiA+ICAgICAgICAgIGF2X2ZyZWVwKCZwbHMtPnJlbmRpdGlvbnMpOwo+ ID4gICAgICAgICAgYXZfZnJlZXAoJnBscy0+aWQzX2J1Zik7Cj4gPiAtICAgICAgICBhdl9kaWN0 X2ZyZWUoJnBscy0+aWQzX2luaXRpYWwpOwo+ID4gKyAgICAgICAgYXZfZGljdF9mcmVlKCZwbHMt Pmxhc3RfaWQzKTsKPiA+ICAgICAgICAgIGZmX2lkM3YyX2ZyZWVfZXh0cmFfbWV0YSgmcGxzLT5p ZDNfZGVmZXJyZWRfZXh0cmEpOwo+ID4gICAgICAgICAgYXZfZnJlZXAoJnBscy0+aW5pdF9zZWNf YnVmKTsKPiA+ICAgICAgICAgIGF2X3BhY2tldF9mcmVlKCZwbHMtPnBrdCk7Cj4gPiBAQCAtMTA4 MywxNSArMTA4NywxMyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9pZDMoQVZGb3JtYXRDb250ZXh0ICpz LAo+IEFWSU9Db250ZXh0ICpwYiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgQVZEaWN0aW9u YXJ5ICoqbWV0YWRhdGEsIGludDY0X3QgKmR0cywKPiBITFNBdWRpb1NldHVwSW5mbyAqYXVkaW9f c2V0dXBfaW5mbywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgSUQzdjJFeHRyYU1ldGFBUElD ICoqYXBpYywgSUQzdjJFeHRyYU1ldGEKPiAqKmV4dHJhX21ldGEpCj4gPiAgewo+ID4gLSAgICBz dGF0aWMgY29uc3QgY2hhciBpZDNfcHJpdl9vd25lcl90c1tdID0KPiAiY29tLmFwcGxlLnN0cmVh bWluZy50cmFuc3BvcnRTdHJlYW1UaW1lc3RhbXAiOwo+ID4gLSAgICBzdGF0aWMgY29uc3QgY2hh ciBpZDNfcHJpdl9vd25lcl9hdWRpb19zZXR1cFtdID0KPiAiY29tLmFwcGxlLnN0cmVhbWluZy5h dWRpb0Rlc2NyaXB0aW9uIjsKPiA+ICAgICAgSUQzdjJFeHRyYU1ldGEgKm1ldGE7Cj4gPgo+ID4g ICAgICBmZl9pZDN2Ml9yZWFkX2RpY3QocGIsIG1ldGFkYXRhLCBJRDN2Ml9ERUZBVUxUX01BR0lD LCBleHRyYV9tZXRhKTsKPiA+ICAgICAgZm9yIChtZXRhID0gKmV4dHJhX21ldGE7IG1ldGE7IG1l dGEgPSBtZXRhLT5uZXh0KSB7Cj4gPiAgICAgICAgICBpZiAoIXN0cmNtcChtZXRhLT50YWcsICJQ UklWIikpIHsKPiA+ICAgICAgICAgICAgICBJRDN2MkV4dHJhTWV0YVBSSVYgKnByaXYgPSAmbWV0 YS0+ZGF0YS5wcml2Owo+ID4gLSAgICAgICAgICAgIGlmIChwcml2LT5kYXRhc2l6ZSA9PSA4ICYm ICFhdl9zdHJuY2FzZWNtcChwcml2LT5vd25lciwKPiBpZDNfcHJpdl9vd25lcl90cywgNDQpKSB7 Cj4gPiArICAgICAgICAgICAgaWYgKHByaXYtPmRhdGFzaXplID09IDggJiYgIWF2X3N0cm5jYXNl Y21wKHByaXYtPm93bmVyLAo+IElEM19QUklWX09XTkVSX1RTLCBzdHJsZW4oSUQzX1BSSVZfT1dO RVJfVFMpKSkgewo+ID4gICAgICAgICAgICAgICAgICAvKiAzMy1iaXQgTVBFRyB0aW1lc3RhbXAg Ki8KPiA+ICAgICAgICAgICAgICAgICAgaW50NjRfdCB0cyA9IEFWX1JCNjQocHJpdi0+ZGF0YSk7 Cj4gPiAgICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfREVCVUcsICJITFMgSUQzIGF1 ZGlvIHRpbWVzdGFtcAo+ICUiUFJJZDY0IlxuIiwgdHMpOwo+ID4gQEAgLTEwOTksNyArMTEwMSw5 IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2lkMyhBVkZvcm1hdENvbnRleHQgKnMsCj4gQVZJT0NvbnRl eHQgKnBiLAo+ID4gICAgICAgICAgICAgICAgICAgICAgKmR0cyA9IHRzOwo+ID4gICAgICAgICAg ICAgICAgICBlbHNlCj4gPiAgICAgICAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VS Uk9SLCAiSW52YWxpZCBITFMgSUQzIGF1ZGlvCj4gdGltZXN0YW1wICUiUFJJZDY0IlxuIiwgdHMp Owo+ID4gLSAgICAgICAgICAgIH0gZWxzZSBpZiAocHJpdi0+ZGF0YXNpemUgPj0gOCAmJgo+ICFh dl9zdHJuY2FzZWNtcChwcml2LT5vd25lciwgaWQzX3ByaXZfb3duZXJfYXVkaW9fc2V0dXAsIDM2 KSkgewo+ID4gKyAgICAgICAgICAgIH0gZWxzZSBpZiAocHJpdi0+ZGF0YXNpemUgPj0gOCAmJgo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIWF2X3N0cm5jYXNlY21wKHByaXYtPm93bmVyLAo+ IElEM19QUklWX09XTkVSX0FVRElPX1NFVFVQLCAzNikgJiYKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGF1ZGlvX3NldHVwX2luZm8pIHsKPiA+ICAgICAgICAgICAgICAgICAgZmZfaGxzX3Nl bmNfcmVhZF9hdWRpb19zZXR1cF9pbmZvKGF1ZGlvX3NldHVwX2luZm8sCj4gcHJpdi0+ZGF0YSwg cHJpdi0+ZGF0YXNpemUpOwo+ID4gICAgICAgICAgICAgIH0KPiA+ICAgICAgICAgIH0gZWxzZSBp ZiAoIXN0cmNtcChtZXRhLT50YWcsICJBUElDIikgJiYgYXBpYykKPiA+IEBAIC0xMTEzLDkgKzEx MTcsMTAgQEAgc3RhdGljIGludCBpZDNfaGFzX2NoYW5nZWRfdmFsdWVzKHN0cnVjdCBwbGF5bGlz dAo+ICpwbHMsIEFWRGljdGlvbmFyeSAqbWV0YWRhdGEsCj4gPiAgewo+ID4gICAgICBjb25zdCBB VkRpY3Rpb25hcnlFbnRyeSAqZW50cnkgPSBOVUxMOwo+ID4gICAgICBjb25zdCBBVkRpY3Rpb25h cnlFbnRyeSAqb2xkZW50cnk7Cj4gPiArCj4gPiAgICAgIC8qIGNoZWNrIHRoYXQgbm8ga2V5cyBo YXZlIGNoYW5nZWQgdmFsdWVzICovCj4gPiAgICAgIHdoaWxlICgoZW50cnkgPSBhdl9kaWN0X2l0 ZXJhdGUobWV0YWRhdGEsIGVudHJ5KSkpIHsKPiA+IC0gICAgICAgIG9sZGVudHJ5ID0gYXZfZGlj dF9nZXQocGxzLT5pZDNfaW5pdGlhbCwgZW50cnktPmtleSwgTlVMTCwKPiBBVl9ESUNUX01BVENI X0NBU0UpOwo+ID4gKyAgICAgICAgb2xkZW50cnkgPSBhdl9kaWN0X2dldChwbHMtPmxhc3RfaWQz LCBlbnRyeS0+a2V5LCBOVUxMLAo+IEFWX0RJQ1RfTUFUQ0hfQ0FTRSk7Cj4gPiAgICAgICAgICBp ZiAoIW9sZGVudHJ5IHx8IHN0cmNtcChvbGRlbnRyeS0+dmFsdWUsIGVudHJ5LT52YWx1ZSkgIT0g MCkKPiA+ICAgICAgICAgICAgICByZXR1cm4gMTsKPiA+ICAgICAgfQo+ID4gQEAgLTExNDMsMzUg KzExNDgsNDAgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2lkMyhBVklPQ29udGV4dCAqcGIsIHN0cnVj dAo+IHBsYXlsaXN0ICpwbHMpCj4gPiAgICAgIElEM3YyRXh0cmFNZXRhQVBJQyAqYXBpYyA9IE5V TEw7Cj4gPiAgICAgIElEM3YyRXh0cmFNZXRhICpleHRyYV9tZXRhID0gTlVMTDsKPiA+ICAgICAg aW50NjRfdCB0aW1lc3RhbXAgPSBBVl9OT1BUU19WQUxVRTsKPiA+ICsgICAgLy8gT25seSBzZXQg YXVkaW9fc2V0dXBfaW5mbyBvbiBmaXJzdCBpZDMgY2h1bmsuCj4gPiArICAgIEhMU0F1ZGlvU2V0 dXBJbmZvICphdWRpb19zZXR1cF9pbmZvID0gcGxzLT5sYXN0X2lkMyA/IE5VTEwgOgo+ICZwbHMt PmF1ZGlvX3NldHVwX2luZm87Cj4gPgo+ID4gLSAgICBwYXJzZV9pZDMocGxzLT5jdHgsIHBiLCAm bWV0YWRhdGEsICZ0aW1lc3RhbXAsCj4gJnBscy0+YXVkaW9fc2V0dXBfaW5mbywgJmFwaWMsICZl eHRyYV9tZXRhKTsKPiA+ICsgICAgcGFyc2VfaWQzKHBscy0+Y3R4LCBwYiwgJm1ldGFkYXRhLCAm dGltZXN0YW1wLCBhdWRpb19zZXR1cF9pbmZvLAo+ICZhcGljLCAmZXh0cmFfbWV0YSk7Cj4gPgo+ ID4gLSAgICBpZiAodGltZXN0YW1wICE9IEFWX05PUFRTX1ZBTFVFKSB7Cj4gPiArICAgIGlmIChw bHMtPmlkM19tcGVndHNfdGltZXN0YW1wID09IEFWX05PUFRTX1ZBTFVFICYmIHRpbWVzdGFtcCAh PQo+IEFWX05PUFRTX1ZBTFVFKSB7Cj4gPiAgICAgICAgICBwbHMtPmlkM19tcGVndHNfdGltZXN0 YW1wID0gdGltZXN0YW1wOwo+ID4gICAgICAgICAgcGxzLT5pZDNfb2Zmc2V0ID0gMDsKPiA+ICAg ICAgfQo+ID4KPiA+IC0gICAgaWYgKCFwbHMtPmlkM19mb3VuZCkgewo+ID4gLSAgICAgICAgLyog aW5pdGlhbCBJRDMgdGFncyAqLwo+ID4gLSAgICAgICAgYXZfYXNzZXJ0MCghcGxzLT5pZDNfZGVm ZXJyZWRfZXh0cmEpOwo+ID4gLSAgICAgICAgcGxzLT5pZDNfZm91bmQgPSAxOwo+ID4gLQo+ID4g KyAgICBpZiAoaWQzX2hhc19jaGFuZ2VkX3ZhbHVlcyhwbHMsIG1ldGFkYXRhLCBhcGljKSkgewo+ ID4gICAgICAgICAgLyogZ2V0IHBpY3R1cmUgYXR0YWNobWVudCBhbmQgc2V0IHRleHQgbWV0YWRh dGEgKi8KPiA+ICAgICAgICAgIGlmIChwbHMtPmN0eC0+bmJfc3RyZWFtcykKPiA+ICAgICAgICAg ICAgICBmZl9pZDN2Ml9wYXJzZV9hcGljKHBscy0+Y3R4LCBleHRyYV9tZXRhKTsKPiA+IC0gICAg ICAgIGVsc2UKPiA+ICsgICAgICAgIGVsc2Ugewo+ID4gKyAgICAgICAgICAgIGF2X2Fzc2VydDAo IXBscy0+aWQzX2RlZmVycmVkX2V4dHJhKTsKPiA+ICAgICAgICAgICAgICAvKiBkZW11eGVyIG5v dCB5ZXQgb3BlbmVkLCBkZWZlciBwaWN0dXJlIGF0dGFjaG1lbnQgKi8KPiA+ICAgICAgICAgICAg ICBwbHMtPmlkM19kZWZlcnJlZF9leHRyYSA9IGV4dHJhX21ldGE7Cj4gPiArICAgICAgICB9Cj4g Pgo+ID4gICAgICAgICAgZmZfaWQzdjJfcGFyc2VfcHJpdl9kaWN0KCZtZXRhZGF0YSwgZXh0cmFf bWV0YSk7Cj4gPiArCj4gPiArICAgICAgICBhdl9kaWN0X3NldCgmbWV0YWRhdGEsIElEM3YyX1BS SVZfT1dORVJfVFMsIE5VTEwsIDApOwo+ID4gKyAgICAgICAgYXZfZGljdF9zZXQoJm1ldGFkYXRh LCBJRDN2Ml9QUklWX09XTkVSX0FVRElPX1NFVFVQLCBOVUxMLCAwKTsKPiA+ICsKPiA+ICsgICAg ICAgIGF2X2RpY3RfZnJlZSgmcGxzLT5jdHgtPm1ldGFkYXRhKTsKPiA+ICAgICAgICAgIGF2X2Rp Y3RfY29weSgmcGxzLT5jdHgtPm1ldGFkYXRhLCBtZXRhZGF0YSwgMCk7Cj4gPiAtICAgICAgICBw bHMtPmlkM19pbml0aWFsID0gbWV0YWRhdGE7Cj4gPgo+ID4gKyAgICAgICAgaWYgKHBscy0+bl9t YWluX3N0cmVhbXMpCj4gPiArICAgICAgICAgICAgYXZfZGljdF9jb3B5KCZwbHMtPm1haW5fc3Ry ZWFtc1swXS0+bWV0YWRhdGEsIG1ldGFkYXRhLCAwKTsKPiA+ICsKPiA+ICsgICAgICAgIGlmIChw bHMtPmxhc3RfaWQzKSBhdl9kaWN0X2ZyZWUoJnBscy0+bGFzdF9pZDMpOwo+ID4gKyAgICAgICAg cGxzLT5sYXN0X2lkMyA9IG1ldGFkYXRhOwo+ID4gICAgICB9IGVsc2Ugewo+ID4gLSAgICAgICAg aWYgKCFwbHMtPmlkM19jaGFuZ2VkICYmIGlkM19oYXNfY2hhbmdlZF92YWx1ZXMocGxzLCBtZXRh ZGF0YSwKPiBhcGljKSkgewo+ID4gLSAgICAgICAgICAgIGF2cHJpdl9yZXBvcnRfbWlzc2luZ19m ZWF0dXJlKHBscy0+cGFyZW50LCAiQ2hhbmdpbmcgSUQzCj4gbWV0YWRhdGEgaW4gSExTIGF1ZGlv IGVsZW1lbnRhcnkgc3RyZWFtIik7Cj4gPiAtICAgICAgICAgICAgcGxzLT5pZDNfY2hhbmdlZCA9 IDE7Cj4gPiAtICAgICAgICB9Cj4gPiAgICAgICAgICBhdl9kaWN0X2ZyZWUoJm1ldGFkYXRhKTsK PiA+ICAgICAgfQo+ID4KPiA+IC0tCj4gPiAyLjM5LjMgKEFwcGxlIEdpdC0xNDUpCj4gPgo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gPiBodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiA+Cj4gPiBUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiA+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4KPiBJIGxvb2sg YXQgdGhlIHNlY29uZCBwYXRjaCByZXN1bHQ6Cj4KPiBtYWtlOiAqKiogW2ZhdGUtaGxzLWFkdHMt bWV0YS1kZW11eF0gRXJyb3IgMQo+IGNwdV9mbGFncyhyYXcpID0gMHgwMDA4MTNEQgo+IGNwdV9m bGFnc19zdHIocmF3KSA9IG1teCBtbXhleHQgc3NlIHNzZTIgc3NlMyBzc3NlMyBzc2U0LjEgc3Nl NC4yIGNtb3YKPiBhZXNuaQo+IGNwdV9mbGFncyhlZmZlY3RpdmUpID0gMHgwMDA4MTNEQgo+IGNw dV9mbGFnc19zdHIoZWZmZWN0aXZlKSA9IG1teCBtbXhleHQgc3NlIHNzZTIgc3NlMyBzc3NlMyBz c2U0LjEKPiBzc2U0LjIgY21vdiBhZXNuaQo+IHRocmVhZHMgPSAxIChjcHVfY291bnQgPSA1KQo+ IG1ha2U6IFRhcmdldCAnZmF0ZScgbm90IHJlbWFkZSBiZWNhdXNlIG9mIGVycm9ycy4KPgo+Cj4K Pgo+IGh0dHBzOi8vcGF0Y2h3b3JrLmZmbXBlZy5vcmcvcHJvamVjdC9mZm1wZWcvcGF0Y2gvMjAy NDAzMjYwMDU2MzkuMjcwMDAtMi10b290c0ByYXN0YWdlZWtzLm9yZy8KPgo+Ck9rLiBUaGUgc2Ft cGxlcyBhcmUgaGVyZToKaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZvLzF4NzR6dG9hNnlv OXE0OWlnbmZudC9oP3Jsa2V5PXh2ZzVuaGdqcjUxNWdtNmIzNzVldm04bjQmZGw9MAoKSWYgeW91 IHBsYWNlIHRoZW0gdW5kZXIgJEZBVEVfU0FNUExFUy9obHMtYWR0cy1tZXRhIHRoZSB0ZXN0IHN1 aXRlIHNob3VsZApwYXNzLgoKQXJlIHlvdSB0aGUgcmlnaHQgcGVyc29uIHRvIGFsc28gdXBsb2Fk IHRoZSBzYW1wbGVzPwoKVGhhbmtzIGZvciB5b3VyIHRpbWUgb24gdGhpcyEKCgo+Cj4gVGhhbmtz Cj4gU3RldmVuCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo=