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 A412943188 for ; Sat, 22 Oct 2022 03:38:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3B1368BECA; Sat, 22 Oct 2022 06:38:02 +0300 (EEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 33A2568BE81 for ; Sat, 22 Oct 2022 06:37:55 +0300 (EEST) Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4MvRln6blWzpVjJ for ; Sat, 22 Oct 2022 11:34:29 +0800 (CST) Received: from kwepemm000018.china.huawei.com (7.193.23.4) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sat, 22 Oct 2022 11:37:51 +0800 Received: from kwepemi500014.china.huawei.com (7.221.188.232) by kwepemm000018.china.huawei.com (7.193.23.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sat, 22 Oct 2022 11:37:50 +0800 Received: from kwepemi500014.china.huawei.com ([7.221.188.232]) by kwepemi500014.china.huawei.com ([7.221.188.232]) with mapi id 15.01.2375.031; Sat, 22 Oct 2022 11:37:50 +0800 From: "Wujian(Chin)" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] RTP: get the buffer information of the RTP extension header. Thread-Index: AdjMJT2evvtgn09+Q4W4Ym2kTC+DEQZofFng Date: Sat, 22 Oct 2022 03:37:50 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.136.102.143] MIME-Version: 1.0 X-CFilter-Loop: Reflected Subject: [FFmpeg-devel] =?gb2312?b?tPC4tDogIFtQQVRDSF0gUlRQOiBnZXQgdGhl?= =?gb2312?b?IGJ1ZmZlciBpbmZvcm1hdGlvbiBvZiB0aGUgUlRQIGV4dGVuc2lvbiBoZWFk?= =?gb2312?b?ZXIu?= 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: "yangzhiyong \(F\)" Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RG8gZXhwZXJ0cyBoYXZlIGFueSBnb29kIGlkZWFzIG9uIHRoaXMgZnVjdGlvbj8NCg0KLS0tLS3T yrz+1K28/i0tLS0tDQq3orz+yMs6IFd1amlhbihDaGluKSANCreiy83KsbzkOiAyMDIyxOo51MIy NsjVIDE0OjQ4DQrK1bz+yMs6IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQqzrcvNOiB5YW5nemhp eW9uZyAoRikgPHlhbmd6aGl5b25nOEBodWF3ZWkuY29tPg0K1vfM4jogUmU6IFtGRm1wZWctZGV2 ZWxdIFtQQVRDSF0gUlRQOiBnZXQgdGhlIGJ1ZmZlciBpbmZvcm1hdGlvbiBvZiB0aGUgUlRQIGV4 dGVuc2lvbiBoZWFkZXIuDQoNCkFuZHJlYXOjug0KPld1amlhbihDaGluKToNCj4+IFNpZ25lZC1v ZmYtYnk6IHd1amlhbl9uYW5qaW5nIDx3dWppYW4yQGh1YXdlaS5jb20+DQo+PiAtLS0NCj4+ICBs aWJhdmNvZGVjL2F2cGFja2V0LmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPj4gIGxpYmF2Y29kZWMvcGFja2V0LmggICB8IDE3ICsrKysrKysrKysr KysrKysrDQo+PiAgbGliYXZmb3JtYXQvZGVtdXguYyAgIHwgIDcgKysrKysrKw0KPj4gIGxpYmF2 Zm9ybWF0L3J0cGRlYy5jICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0NCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p DQo+PiANCj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2cGFja2V0LmMgYi9saWJhdmNvZGVj L2F2cGFja2V0LmMgaW5kZXggDQo+PiBiY2JjNDE2Li40NWMxMzFhIDEwMDY0NA0KPj4gLS0tIGEv bGliYXZjb2RlYy9hdnBhY2tldC5jDQo+PiArKysgYi9saWJhdmNvZGVjL2F2cGFja2V0LmMNCj4+ IEBAIC00Niw2ICs0Niw4IEBAIHZvaWQgYXZfaW5pdF9wYWNrZXQoQVZQYWNrZXQgKnBrdCkNCj4+ ICAgICAgcGt0LT5vcGFxdWUgICAgICAgICAgICAgICA9IE5VTEw7DQo+PiAgICAgIHBrdC0+b3Bh cXVlX3JlZiAgICAgICAgICAgPSBOVUxMOw0KPj4gICAgICBwa3QtPnRpbWVfYmFzZSAgICAgICAg ICAgID0gYXZfbWFrZV9xKDAsIDEpOw0KPj4gKyAgICBwa3QtPmV4dCAgICAgICAgICAgICAgICAg ID0gTlVMTDsNCj4+ICsgICAgcGt0LT5leHRsZW4gICAgICAgICAgICAgICA9IDA7DQo+PiAgfQ0K Pj4gICNlbmRpZg0KPj4gIA0KPj4gQEAgLTEwOSw2ICsxMTEsNDYgQEAgaW50IGF2X25ld19wYWNr ZXQoQVZQYWNrZXQgKnBrdCwgaW50IHNpemUpDQo+PiAgICAgIHJldHVybiAwOw0KPj4gIH0NCj4+ ICANCj4+ICtzdGF0aWMgdm9pZCBhdl9wYWNrZXRfZnJlZV9leHQoQVZQYWNrZXQgKnBrdCkgew0K Pj4gKyAgICBpZiAoIXBrdCkNCj4+ICsgICAgICAgIHJldHVybjsNCj4+ICsNCj4+ICsgICAgaWYg KHBrdC0+ZXh0KSB7DQo+ID4rICAgICAgICBhdl9mcmVlKHBrdC0+ZXh0KTsNCj4gPisgICAgICAg IHBrdC0+ZXh0ID0gTlVMTDsNCj4gPisgICAgfQ0KPj4gKw0KPj4gKyAgICBwa3QtPmV4dGxlbiA9 IDA7DQo+PiArfQ0KPiA+Kw0KPiA+K2ludCBhdl9zZXRfcGFja2V0X2V4dChBVlBhY2tldCAqcGt0 LCB1aW50OF90ICpidWYsIGludCBsZW4pIHsNCj4gPisgICAgaWYgKCFidWYgfHwgKGxlbiA8PSAw KSkNCj4gPisgICAgICAgIHJldHVybiAwOw0KPiA+Kw0KPj4gKyAgICBpZiAocGt0LT5leHQgPT0g YnVmKSB7DQo+PiArICAgICAgICBwa3QtPmV4dGxlbiA9IGxlbjsNCj4+ICsgICAgICAgIHJldHVy biAwOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHBrdC0+ZXh0ID0gYXZfbWFsbG9jKGxlbik7 DQo+PiArICAgIHBrdC0+ZXh0bGVuID0gbGVuOw0KPj4gKyAgICAodm9pZCltZW1jcHkocGt0LT5l eHQsIGJ1ZiwgbGVuKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4g K3N0YXRpYyBpbnQgYXZfY29weV9wYWNrZXRfZXh0KEFWUGFja2V0ICpwa3QsIGNvbnN0IEFWUGFj a2V0ICpzcmMpIHsNCj4+ICsgICAgcGt0LT5leHQgPSBOVUxMOw0KPj4gKyAgICBwa3QtPmV4dGxl biA9IDA7DQo+PiArDQo+PiArICAgIGF2X3NldF9wYWNrZXRfZXh0KHBrdCwgc3JjLT5leHQsIHNy Yy0+ZXh0bGVuKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gIHZv aWQgYXZfc2hyaW5rX3BhY2tldChBVlBhY2tldCAqcGt0LCBpbnQgc2l6ZSkgIHsNCj4+ICAgICAg aWYgKHBrdC0+c2l6ZSA8PSBzaXplKQ0KPj4gQEAgLTQyMiw2ICs0NjQsNyBAQCBpbnQgYXZfcGFj a2V0X2NvcHlfcHJvcHMoQVZQYWNrZXQgKmRzdCwgY29uc3QgDQo+PiBBVlBhY2tldCAqc3JjKSAg dm9pZCBhdl9wYWNrZXRfdW5yZWYoQVZQYWNrZXQgKnBrdCkgIHsNCj4+ICAgICAgYXZfcGFja2V0 X2ZyZWVfc2lkZV9kYXRhKHBrdCk7DQo+PiArICAgIGF2X3BhY2tldF9mcmVlX2V4dChwa3QpOw0K Pj4gICAgICBhdl9idWZmZXJfdW5yZWYoJnBrdC0+b3BhcXVlX3JlZik7DQo+PiAgICAgIGF2X2J1 ZmZlcl91bnJlZigmcGt0LT5idWYpOw0KPj4gICAgICBnZXRfcGFja2V0X2RlZmF1bHRzKHBrdCk7 DQo+PiBAQCAtNDU2LDYgKzQ5OSw3IEBAIGludCBhdl9wYWNrZXRfcmVmKEFWUGFja2V0ICpkc3Qs IGNvbnN0IEFWUGFja2V0ICpzcmMpDQo+PiAgICAgIH0NCj4+ICANCj4+ICAgICAgZHN0LT5zaXpl ID0gc3JjLT5zaXplOw0KPj4gKyAgICBhdl9jb3B5X3BhY2tldF9leHQoZHN0LCBzcmMpOw0KPj4g IA0KPj4gICAgICByZXR1cm4gMDsNCj4+ICBmYWlsOg0KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvcGFja2V0LmggYi9saWJhdmNvZGVjL3BhY2tldC5oIGluZGV4IA0KPj4gNDA0ZDUyMC4uMTM3 ZDFmYSAxMDA2NDQNCj4+IC0tLSBhL2xpYmF2Y29kZWMvcGFja2V0LmgNCj4+ICsrKyBiL2xpYmF2 Y29kZWMvcGFja2V0LmgNCj4+IEBAIC0zNzQsNiArMzc0LDEzIEBAIHR5cGVkZWYgc3RydWN0IEFW UGFja2V0IHsNCj4+ICAgICAgdWludDhfdCAqZGF0YTsNCj4+ICAgICAgaW50ICAgc2l6ZTsNCj4+ ICAgICAgaW50ICAgc3RyZWFtX2luZGV4Ow0KPj4gKw0KPj4gKyAgICAvKioNCj4+ICsgICAgICog RXh0ZW5zaW9uIGhlYWRlciBkYXRhIGFuZCBzaXplDQo+PiArICAgICAqLw0KPj4gKyAgICB1aW50 OF90ICpleHQ7DQo+PiArICAgIHVpbnQzMl90IGV4dGxlbjsNCj4+ICsNCj4+ICAgICAgLyoqDQo+ PiAgICAgICAqIEEgY29tYmluYXRpb24gb2YgQVZfUEtUX0ZMQUcgdmFsdWVzDQo+PiAgICAgICAq Lw0KPj4gQEAgLTUyMyw2ICs1MzAsMTYgQEAgdm9pZCBhdl9pbml0X3BhY2tldChBVlBhY2tldCAq cGt0KTsgIGludCANCj4+IGF2X25ld19wYWNrZXQoQVZQYWNrZXQgKnBrdCwgaW50IHNpemUpOw0K Pj4gIA0KPj4gIC8qKg0KPj4gKyAqIEFsbG9jYXRlIHRoZSBleHQgZGF0YSBmcm9tIGJ1ZiB3aXRo IGxlbiBsZW5naHQuDQo+PiArICogTWFrZSBzdXJlIHBrdC0+ZXh0IGlzIG51bGwsIG90aGVyd2lz ZSBjYXVzZSBtZW1vcnkgbGVhay4NCj4+ICsgKg0KPj4gKyAqIEBwYXJhbSBwa3QgcGFja2V0DQo+ PiArICogQHBhcmFtIGJ1ZiBidWZmZXIgd2l0aCBleHQgZGF0YQ0KPj4gKyAqIEBwYXJhbSBsZW4g YnVmZmVyIHNpemUNCj4+ICsgKi8NCj4+ICtpbnQgYXZfc2V0X3BhY2tldF9leHQoQVZQYWNrZXQg KnBrdCwgdWludDhfdCAqYnVmLCBpbnQgbGVuKTsNCj4+ICsNCj4+ICsvKioNCj4+ICAgKiBSZWR1 Y2UgcGFja2V0IHNpemUsIGNvcnJlY3RseSB6ZXJvaW5nIHBhZGRpbmcNCj4+ICAgKg0KPj4gICAq IEBwYXJhbSBwa3QgcGFja2V0DQo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZGVtdXguYyBi L2xpYmF2Zm9ybWF0L2RlbXV4LmMgaW5kZXgNCj4+IDE2MjA3MTYuLjJhOGIyMDEgMTAwNjQ0DQo+ PiAtLS0gYS9saWJhdmZvcm1hdC9kZW11eC5jDQo+PiArKysgYi9saWJhdmZvcm1hdC9kZW11eC5j DQo+PiBAQCAtMTE3NSw2ICsxMTc1LDEzIEBAIHN0YXRpYyBpbnQgcGFyc2VfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCwNCj4+ICAgICAgICAgICAgICBwa3QtPnNpZGVf ZGF0YV9lbGVtcyAgICA9IDA7DQo+PiAgICAgICAgICB9DQo+PiAgDQo+PiArICAgICAgICBpZiAo cGt0LT5leHRsZW4gPiAwKSB7DQo+PiArICAgICAgICAgICAgb3V0X3BrdC0+ZXh0bGVuID0gcGt0 LT5leHRsZW47DQo+PiArICAgICAgICAgICAgb3V0X3BrdC0+ZXh0ID0gcGt0LT5leHQ7DQo+PiAr ICAgICAgICAgICAgcGt0LT5leHRsZW4gPSAwOw0KPj4gKyAgICAgICAgICAgIHBrdC0+ZXh0ID0g TlVMTDsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICAgICAgICAgIC8qIHNldCB0aGUgZHVyYXRp b24gKi8NCj4+ICAgICAgICAgIG91dF9wa3QtPmR1cmF0aW9uID0gKHN0aS0+cGFyc2VyLT5mbGFn cyAmIFBBUlNFUl9GTEFHX0NPTVBMRVRFX0ZSQU1FUykgPyBwa3QtPmR1cmF0aW9uIDogMDsNCj4+ ICAgICAgICAgIGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FV RElPKSB7IGRpZmYgDQo+PiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3J0cGRlYy5jIGIvbGliYXZmb3Jt YXQvcnRwZGVjLmMgaW5kZXgNCj4+IGZhNzU0NGMuLjJhNTM5ZTAgMTAwNjQ0DQo+PiAtLS0gYS9s aWJhdmZvcm1hdC9ydHBkZWMuYw0KPj4gKysrIGIvbGliYXZmb3JtYXQvcnRwZGVjLmMNCj4+IEBA IC02OTksMTMgKzY5OSwxNCBAQCBzdGF0aWMgaW50DQo+PiBydHBfcGFyc2VfcGFja2V0X2ludGVy bmFsKFJUUERlbXV4Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCwgIHsNCj4+ICAgICAgdW5zaWdu ZWQgaW50IHNzcmM7DQo+PiAgICAgIGludCBwYXlsb2FkX3R5cGUsIHNlcSwgZmxhZ3MgPSAwOw0K Pj4gLSAgICBpbnQgZXh0LCBjc3JjOw0KPj4gKyAgICBpbnQgaGFzX2V4dCwgY3NyYywgZXh0bGVu Ow0KPj4gKyAgICB1aW50OF90ICpleHRidWY7DQo+PiAgICAgIEFWU3RyZWFtICpzdDsNCj4+ICAg ICAgdWludDMyX3QgdGltZXN0YW1wOw0KPj4gICAgICBpbnQgcnYgPSAwOw0KPj4gIA0KPj4gICAg ICBjc3JjICAgICAgICAgPSBidWZbMF0gJiAweDBmOw0KPj4gLSAgICBleHQgICAgICAgICAgPSBi dWZbMF0gJiAweDEwOw0KPj4gKyAgICBoYXNfZXh0ICAgICAgPSBidWZbMF0gJiAweDEwOw0KPj4g ICAgICBwYXlsb2FkX3R5cGUgPSBidWZbMV0gJiAweDdmOw0KPj4gICAgICBpZiAoYnVmWzFdICYg MHg4MCkNCj4+ICAgICAgICAgIGZsYWdzIHw9IFJUUF9GTEFHX01BUktFUjsNCj4+IEBAIC03NDQs MTggKzc0NSwyNSBAQCBzdGF0aWMgaW50IHJ0cF9wYXJzZV9wYWNrZXRfaW50ZXJuYWwoUlRQRGVt dXhDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0LA0KPj4gICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7DQo+PiAgDQo+PiAgICAgIC8qIFJGQyAzNTUwIFNlY3Rpb24gNS4zLjEgUlRQ IEhlYWRlciBFeHRlbnNpb24gaGFuZGxpbmcgKi8NCj4+IC0gICAgaWYgKGV4dCkgew0KPj4gKyAg ICBpZiAoaGFzX2V4dCkgew0KPj4gICAgICAgICAgaWYgKGxlbiA8IDQpDQo+PiAgICAgICAgICAg ICAgcmV0dXJuIC0xOw0KPj4gICAgICAgICAgLyogY2FsY3VsYXRlIHRoZSBoZWFkZXIgZXh0ZW5z aW9uIGxlbmd0aCAoc3RvcmVkIGFzIG51bWJlcg0KPj4gICAgICAgICAgICogb2YgMzItYml0IHdv cmRzKSAqLw0KPj4gLSAgICAgICAgZXh0ID0gKEFWX1JCMTYoYnVmICsgMikgKyAxKSA8PCAyOw0K Pj4gKyAgICAgICAgZXh0bGVuID0gKEFWX1JCMTYoYnVmICsgMikgKyAxKSA8PCAyOw0KPj4gIA0K Pj4gLSAgICAgICAgaWYgKGxlbiA8IGV4dCkNCj4+ICsgICAgICAgIGlmIChsZW4gPCBleHRsZW4p DQo+PiAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPj4gLSAgICAgICAgLy8gc2tpcCBwYXN0IFJU UCBoZWFkZXIgZXh0ZW5zaW9uDQo+PiAtICAgICAgICBsZW4gLT0gZXh0Ow0KPj4gLSAgICAgICAg YnVmICs9IGV4dDsNCj4+ICsNCj4+ICsgICAgICAgICAvLyBTYXZlIFJUUCBoZWFkZXIgZXh0ZW5z aW9uIGRhdGENCj4+ICsgICAgICAgIGlmIChleHRsZW4gPj4gMCkgew0KPj4gKyAgICAgICAgICAg IGV4dGJ1ZiA9IGF2X21hbGxvYyhleHRsZW4pOw0KPj4gKyAgICAgICAgICAgIGlmIChleHRidWYp DQo+PiArICAgICAgICAgICAgICAgICh2b2lkKW1lbWNweShleHRidWYsIGJ1ZiwgZXh0bGVuKTsN Cj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIGxlbiAtPSBleHRsZW47DQo+PiArICAg ICAgICBidWYgKz0gZXh0bGVuOw0KPj4gICAgICB9DQo+PiAgDQo+PiAgICAgIGlmIChzLT4+aGFu ZGxlciAmJiBzLT4+aGFuZGxlci0+PnBhcnNlX3BhY2tldCkgeyBAQCAtNzYzLDE0IA0KPj4gKzc3 MSwyNSBAQCBzdGF0aWMgaW50IHJ0cF9wYXJzZV9wYWNrZXRfaW50ZXJuYWwoUlRQRGVtdXhDb250 ZXh0ICpzLCBBVlBhY2tldCAqcGt0LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcy0+PnN0LCBwa3QsICZ0aW1lc3RhbXAsIGJ1ZiwgbGVuLCBzZXEsDQo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyk7DQo+PiAgICAgIH0gZWxz ZSBpZiAoc3QpIHsNCj4+IC0gICAgICAgIGlmICgocnYgPSBhdl9uZXdfcGFja2V0KHBrdCwgbGVu KSkgPCAwKQ0KPj4gKyAgICAgICAgaWYgKChydiA9IGF2X25ld19wYWNrZXQocGt0LCBsZW4pKSA8 IDApIHsNCj4+ICsgICAgICAgICAgICBpZiAoKGV4dGxlbiA+PiAwKSAmJiBleHRidWYpDQo+PiAr ICAgICAgICAgICAgICAgIGF2X2ZyZWUoZXh0YnVmKTsNCj4+ICAgICAgICAgICAgICByZXR1cm4g cnY7DQo+PiArICAgICAgICB9DQo+PiAgICAgICAgICBtZW1jcHkocGt0LT4+ZGF0YSwgYnVmLCBs ZW4pOw0KPj4gICAgICAgICAgcGt0LT4+c3RyZWFtX2luZGV4ID0gc3QtPj5pbmRleDsNCj4+ICAg ICAgfSBlbHNlIHsNCj4+ICsgICAgICAgIGlmICgoZXh0bGVuID4+IDApICYmIGV4dGJ1ZikNCj4+ ICsgICAgICAgICAgICBhdl9mcmVlKGV4dGJ1Zik7DQo+PiAgICAgICAgICByZXR1cm4gQVZFUlJP UihFSU5WQUwpOw0KPj4gICAgICB9DQo+PiAgDQo+PiArICAgIC8vIGF0dGFjaCBleHQgZGF0YQ0K Pj4gKyAgICBpZiAoKGV4dGxlbiA+PiAwKSAmJiBleHRidWYpIHsNCj4+ICsgICAgICAgIGF2X3Nl dF9wYWNrZXRfZXh0KHBrdCwgZXh0YnVmLCBleHRsZW4pOw0KPj4gKyAgICAgICAgYXZfZnJlZShl eHRidWYpOw0KPj4gKyAgICB9DQo+PiArDQo+PiAgICAgIC8vIG5vdyBwZXJmb3JtIHRpbWVzdGFt cCB0aGluZ3MuLi4uDQo+PiAgICAgIGZpbmFsaXplX3BhY2tldChzLCBwa3QsIHRpbWVzdGFtcCk7 DQo+PiAgDQoNCj4xLiBBZGRpbmcgc29tZXRoaW5nIGluIHRoZSBtaWRkbGUgb2YgYSBwdWJsaWMg c3RydWN0IGlzIGFuIEFCSSBicmVhay4NCj4yLiBDdXJyZW50bHkgc2l6ZW9mKEFWUGFja2V0KSBp cyBzdGlsbCBwYXJ0IG9mIHRoZSBwdWJsaWMgQUJJLCBzbyBvbmUgY2FuJ3QgZXZlbiBhZGQgc29t ZXRoaW5nIGFkZCB0aGUgZW5kIG9mIEFWUGFja2V0Lg0KPjMuIEJ1dCBpdCBkb2Vzbid0IG1hdHRl ciwgYmVjYXVzZSBzdWNoIHN0dWZmIGJlbG9uZ3MgaW50byBwYWNrZXQgc2lkZSBkYXRhLg0KPjQu IFRoZSBhbGxvY2F0aW9uIGluIGF2X3NldF9wYWNrZXRfZXh0KCkgaXMgdW5jaGVja2VkLg0KPjUu IERvbid0IGNhc3QgdGhlIHJldHVybiB2YWx1ZSBvZiBtZW1jcHkoKSB0byB2b2lkLg0KPjYuIFRo ZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHBhcnNlX3BhY2tldCgpOiBJbiBjYXNlIHRoZSBwYXJzZXIg YWRkcyBkZWxheSwgdGhlIHNpZGUgZGF0YSBhbmQgKGlmIHRoaXMgcGF0Y2ggd2VyZSBtZXJnZWQg YXMtaXMpIGFsc28geW91ciBleHRlbnNpb24gaGVhZGVyIGRhdGEgd2lsbCBlbmQgdXAgd2l0aCB0 aGUgd3JvbmcgcGFja2V0IChpZiB5b3VyIHBhcnNlciBhZGRzIGEgb25lLXBhY2tldCBkZWxheSwg dGhlbiBwYWNrZXQgbiB3aWxsIGVuZCB1cCB3aXRoIHRoZSBzaWRlIGRhdGEgZm9yIHBhY2tldCBu ICsgMSkuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB0aGUgcGFyc2luZyBBUEkgaXMgYW5j aWVudCBhbmQgZGlyZWN0bHkgd29ya3Mgd2l0aCBidWZmZXJzIGFuZCBub3Qgd2l0aCBBVlBhY2tl dHMuDQoNCj4tIEFuZHJlYXMNCjEuIEFkZGluZyBzb21ldGhpbmcgaW4gdGhlIG1pZGRsZSBvZiBh IHB1YmxpYyBzdHJ1Y3QgaXMgYW4gQUJJIGJyZWFrLg0KICAtLURvIHlvdSBoYXZlIGFueSBnb29k IGFkdmljZT8NCg0KNi4gVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggcGFyc2VfcGFja2V0KCk6IElu IGNhc2UgdGhlIHBhcnNlciBhZGRzIGRlbGF5LCB0aGUgc2lkZSBkYXRhIGFuZCAoaWYgdGhpcyBw YXRjaCB3ZXJlIG1lcmdlZCBhcy1pcykgYWxzbyB5b3VyIGV4dGVuc2lvbiBoZWFkZXIgZGF0YSB3 aWxsIGVuZCB1cCB3aXRoIHRoZSB3cm9uZyBwYWNrZXQgKGlmIHlvdXIgcGFyc2VyIGFkZHMgYSBv bmUtcGFja2V0IGRlbGF5LCB0aGVuIHBhY2tldCBuIHdpbGwgZW5kIHVwIHdpdGggdGhlIHNpZGUg ZGF0YSBmb3IgcGFja2V0IG4gKyAxKS4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHRoZSBw YXJzaW5nIEFQSSBpcyBhbmNpZW50IGFuZCBkaXJlY3RseSB3b3JrcyB3aXRoIGJ1ZmZlcnMgYW5k IG5vdCB3aXRoIEFWUGFja2V0cy4NCiAgLS1Pbmx5IHBhcnNlcyBhbmQgb2J0YWlucyB0aGUgYnVm ZmVyLiBUaGUgY2FsbGVyIGRldGVybWluZXMgd2hldGhlciB0aGUgYnVmZmVyIGlzIGNvcnJlY3Qu DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0DQpmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsDQoNClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbCBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLg0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1w ZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=