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 0A2F747230 for ; Tue, 31 Oct 2023 03:16:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D5D5468CCEF; Tue, 31 Oct 2023 05:16:13 +0200 (EET) Received: from out162-62-57-137.mail.qq.com (out162-62-57-137.mail.qq.com [162.62.57.137]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F087A68CCD2 for ; Tue, 31 Oct 2023 05:15:57 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1698722148; bh=eO3xuqfj/VNGcvHZD3fPlTRSsXLGVi4IldN2hH4IaMI=; h=From:Subject:Date:In-Reply-To:Cc:To:References; b=lCw3yY1qo+1f+3DhYkAPm30+byWplUpUmjOYZ2Qv5OkKxkFo5+AO0pTXJPed8ocTu XB0tQfiRcYGJyqWvibw9JgoajckBy336rctlaI0sGEVFACOkVHdoJH+ca4yPjZSgrf 8+f/2kDJcWWn9/1aGGOLghQuzJSf7tRgS98ph0ro= Received: from smtpclient.apple ([113.108.77.62]) by newxmesmtplogicsvrszc2-1.qq.com (NewEsmtp) with SMTP id 3EF1F6C9; Tue, 31 Oct 2023 11:15:47 +0800 X-QQ-mid: xmsmtpt1698722147tk8v7h76h Message-ID: X-QQ-XMAILINFO: NkHKfw09D6j8Mr3e6EuYzquyGjr/YCzO0yr/R5BANYqvNwTGaVd2O0bt+qFEww xfwMOxexO/xnQhOJOqlAO9xINnTIx5i/nd3PkMdnCKxUbyP8OrsaqKOLsH3i0OxQLOyJZ9jEd2EO feiFVf6AlYUnCx3UCFYY/LeE9KrKpxaExRRN+KBRJemHXI1oVXoWM2HM5Qaq89O3XU2c36c7F9/5 iBn4ZQU3UYKpECv/gLyi3i70PowyzlFr5LZVoA3S2+9HmEVaTjKf+D4TBoPNFV9zdXxze2tJKQ8e U7cIoUVYTmQ+l5jHlIaYXwIV21Qg47ciFrYzPtzv8FOjzfl/EhjqMQvbdDmy7CcAyMwVOk0/BL1f /U3rZYEzVQhEjb45nZD0sKXw/LQQVuXuyuu9ewdGKAVfhWL5E3Qlu9eJXlM/xTNiActvg1lZyuLQ XS+xOEKWndf45jQyNKGBSusOdrwLZJjxC4XyIO7MdKdF5CqdaeGZZisUYxfxQMoJm3Pr6wdiDbZQ 9mHtc8JEWmM/gR6l4/4uu6zmYGYKER3YOh1r6u1iVHYDvuTMQvcKiSnYF24ZzF+NgXfZst/R89ah 9a1rnzBqp4rbTk+DEr0J9s7inxeb6B4SV8UoB7NVEC8THf1nkYPqfp3+tNdMiresSfbl787lb/pU QOszvH9jkYFXrgqJaZN8IxeDMk05nLcI7mRAsuNeUgd8W/9NEefuGjIoFBGKOrqOqlGSGPxFGkC9 iv+/XyrR2D7rHa0FmtQRgUAJAq8NH9dKwzvO/fOU5+hgiMZER0Hpt70WtgvbKM4k8ftwSqC6nZMa KQ4ALRJckeCkwd9TZ7MJEJ4491Z1FWoCWRGzRJUnjp+pG5A7FPJGFdDG+XteQ22fIvccSIC702po C6m63V2DPKPD8gn4fAUgcWKBQGV/I/UrmyeaIVugJLpjDic46iqX6q8ogJn33kWcjlm2YUMj7l6R 8uhPVEwQtPtFpK5Ed96ilKTF9ZSfqAEtpl9Z0a2TmVWn50OrDU89ZkYSVLw1VZY7TkJTm3TSg= X-QQ-XMRINFO: M/715EihBoGSf6IYSX1iLFg= From: Zhao Zhili X-OQ-MSGID: <904641D5-8B3C-4C17-B8AD-867ACDB75074@foxmail.com> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.100.2.1.4\)) Date: Tue, 31 Oct 2023 11:15:36 +0800 In-Reply-To: To: FFmpeg development discussions and patches References: <20230224122523.143571-1-quinkblack@foxmail.com> X-Mailer: Apple Mail (2.3774.100.2.1.4) X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 4/6] avformat/mov: parse ISO-14496-12 ChannelLayout 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: jeebjp@gmail.com 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: Cgo+IE9uIEZlYiAyNCwgMjAyMywgYXQgMjE6NDksIEphbiBFa3N0csO2bSA8amVlYmpwQGdtYWls LmNvbT4gd3JvdGU6Cj4gCj4gT24gRnJpLCBGZWIgMjQsIDIwMjMgYXQgNjoyNSBBTSBaaGFvIFpo aWxpIDxxdWlua2JsYWNrQGZveG1haWwuY29tIDxtYWlsdG86cXVpbmtibGFja0Bmb3htYWlsLmNv bT4+IHdyb3RlOgo+PiAKPj4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29t IDxtYWlsdG86emhpbGl6aGFvQHRlbmNlbnQuY29tPj4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IFpo YW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbSA8bWFpbHRvOnpoaWxpemhhb0B0ZW5jZW50 LmNvbT4+Cj4gCj4gSGFoLCBJIGFjdHVhbGx5IGhhcHBlbmVkIHRvIHJlY2VudGx5IHN0YXJ0IGNv ZGluZyB1bmNvbXByZXNzZWQgYXVkaW8KPiBzdXBwb3J0IGluIG1wNCBteXNlbGYsIGJ1dCB3aGF0 IHRoaXMgY29tbWl0IGlzIGhhbmRsaW5nIGlzIHdoYXQKPiBiYXNpY2FsbHkga2lsbGVkIG15IHZl cnNpb24gb2ZmIHNpbmNlIHRoZSBjaGFubmVsIGxheW91dCBib3ggaXMKPiByZXF1aXJlZC4KPiAK PiBJZiB5b3UncmUgaW50ZXJlc3RlZCB5b3UgY2FuIGNoZWNrIG15IHRha2Ugb3ZlciBhdAo+IGh0 dHBzOi8vZ2l0aHViLmNvbS9qZWViL2ZmbXBlZy9jb21taXRzL3BjbWNfcGFyc2luZ19pbXByb3Zl bWVudHMgLgo+IAo+IFdpbGwgY29tbWVudCBvbiBzb21lIHRoaW5ncy4KCkkgb25seSBoYXZlIGFu IG9sZCBjb3B5IG9mIHRoZSBzcGVjLCBhbmQgSSBtYXkgaGF2ZSBtaXNzZWQgc29tZSBjb21tZW50 cwphbmQgbWFkZSBzb21lIG1pc3Rha2VzLiBQbGVhc2Ugbm90aWZ5IG1lIGluIG1haWxpbmcgbGlz dCBvciBwZXJzb25hbCBlbWFpbAoodGhpcyBvbmUpIGlmIEkgZGlkbuKAmXQgc29tZXRoaW5nIHdy b25nLgoKSSBoYXZlIG5ldHdvcmsgaXNzdWUgd2l0aCBJUkMsIGNhbiBvbmx5IHJlYWQgdGhlIGFy Y2hpdmVzIGlmIEkgZ2V0IHRoZSB0aW1lLgpJIGRvbuKAmXQgd29yayBvbiBvcGVuIHNvdXJjZSBm b3IgZGFpbHkgam9icy4KCj4gCj4+IC0tLQo+PiBsaWJhdmZvcm1hdC9tb3YuYyAgICAgIHwgIDc5 ICsrKysrKysrKysrLQo+PiBsaWJhdmZvcm1hdC9tb3ZfY2hhbi5jIHwgMjY1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+IGxpYmF2Zm9ybWF0L21vdl9jaGFuLmgg fCAgMjYgKysrKwo+PiAzIGZpbGVzIGNoYW5nZWQsIDM2OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92LmMgYi9saWJhdmZvcm1h dC9tb3YuYwo+PiBpbmRleCBiMTI1MzQzZjg0Li4xZGI4NjlhYTJlIDEwMDY0NAo+PiAtLS0gYS9s aWJhdmZvcm1hdC9tb3YuYwo+PiArKysgYi9saWJhdmZvcm1hdC9tb3YuYwo+PiBAQCAtOTQwLDYg Kzk0MCw4MiBAQCBzdGF0aWMgaW50IG1vdl9yZWFkX2NoYW4oTU9WQ29udGV4dCAqYywgQVZJT0Nv bnRleHQgKnBiLCBNT1ZBdG9tIGF0b20pCj4+ICAgICByZXR1cm4gMDsKPj4gfQo+PiAKPj4gK3N0 YXRpYyBpbnQgbW92X3JlYWRfY2hubChNT1ZDb250ZXh0ICpjLCBBVklPQ29udGV4dCAqcGIsIE1P VkF0b20gYXRvbSkKPj4gK3sKPj4gKyAgICBpbnQ2NF90IGVuZCA9IGF2X3NhdF9hZGQ2NChhdmlv X3RlbGwocGIpLCBhdG9tLnNpemUpOwo+PiArICAgIGludCBzdHJlYW1fc3RydWN0dXJlOwo+PiAr ICAgIGludCByZXQgPSAwOwo+PiArICAgIEFWU3RyZWFtICpzdDsKPj4gKwo+PiArICAgIGlmIChj LT5mYy0+bmJfc3RyZWFtcyA8IDEpCj4+ICsgICAgICAgIHJldHVybiAwOwo+PiArICAgIHN0ID0g Yy0+ZmMtPnN0cmVhbXNbYy0+ZmMtPm5iX3N0cmVhbXMtMV07Cj4+ICsKPj4gKyAgICAvKiBza2lw IHZlcnNpb24gYW5kIGZsYWdzICovCj4+ICsgICAgYXZpb19za2lwKHBiLCA0KTsKPiAKPiBXZSBz aG91bGQgcmVhbGx5IG5vdCBkbyB0aGlzIGFueSBtb3JlLiBWYXJpb3VzIEZ1bGxCb3hlcyBoYXZl IG11bHRpcGxlCj4gdmVyc2lvbnMgb3IgZGVwZW5kIG9uIHRoZSBmbGFncy4gU2VlIGhvdyBJIGhh dmUgYWRkZWQgRnVsbEJveCB0aGluZ3MKPiByZWNlbnRseSwgYWx0aG91Z2ggSSB3b3VsZCBwcmVm ZXIgdXMgdG8gaGF2ZSBhIGdlbmVyaWMgbWFjcm8vZnVuY3Rpb24KPiBzZXR1cCBmb3IgdGhpcyB3 aGVyZSB5b3UgdGhlbiBnZXQgdGhlIHZlcnNpb24gYW5kIGZsYWdzIGFzIGFyZ3VtZW50cwo+IG9y IHdoYXRldmVyIGluIHRoZSBmdXR1cmUuCj4gCj4gRm9yIHRoaXMgc3BlY2lmaWMgYm94LCB0aGVy ZSBhcmUgbm93IHZlcnNpb25zIDAgYW5kIDEgZGVmaW5lZCBzaW5jZQo+IGNpcmNhIDIwMTgtMjAx OSBvciBzbyAodmlzaWJsZSBhdCBsZWFzdCBpbiAxNDQ5Ni0xMiAyMDIyKQo+IAo+IFNpbmNlIElT Ty9JRUMgaGFzIGNoYW5nZWQgdGhlIHJ1bGVzIGZvciBmcmVlIHNwZWNpZmljYXRpb25zIChhZ2Fp bnN0Cj4gdGhlIHdpc2hlcyBvZiB2YXJpb3VzIHNwZWMgYXV0aG9ycykgYW5kIGFsbCB0aGF0IGph enosIHRoaXMgaXMgaG93Cj4gaXQncyBkZWZpbmVkIGluIHdoYXQgSSBoYXZlIG9uIGhhbmQ6Cj4g Cj4gMTIuMi40ICBDaGFubmVsIGxheW91dAo+IAo+IDEyLjIuNC4xICBEZWZpbml0aW9uCj4gCj4g Qm94IFR5cGVzOiAgJ2NobmwnCj4gQ29udGFpbmVyOiBBdWRpbyBzYW1wbGUgZW50cnkKPiBNYW5k YXRvcnk6IE5vCj4gUXVhbnRpdHk6IFplcm8gb3Igb25lCj4gCj4gVGhpcyBib3ggbWF5IGFwcGVh ciBpbiBhbiBhdWRpbyBzYW1wbGUgZW50cnkgdG8gZG9jdW1lbnQgdGhlCj4gYXNzaWdubWVudCBv ZiBjaGFubmVscyBpbiB0aGUgYXVkaW8KPiBzdHJlYW0uIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVz ZSB0aGlzIGJveCB0byBjb252ZXkgdGhlIGJhc2UgY2hhbm5lbAo+IGNvdW50IGZvciB0aGUgRG93 bk1peEluc3RydWN0aW9ucwo+IGJveCBhbmQgb3RoZXIgRFJDLXJlbGF0ZWQgYm94ZXMgc3BlY2lm aWVkIGluIElTTy9JRUMgMjMwMDMtNC4KPiBUaGUgY2hhbm5lbCBsYXlvdXQgY2FuIGJlIGFsbCBv ciBwYXJ0IG9mIGEgc3RhbmRhcmQgbGF5b3V0IChmcm9tIGFuCj4gZW51bWVyYXRlZCBsaXN0KSwg b3IgYSBjdXN0b20gbGF5b3V0Cj4gKHdoaWNoIGFsc28gYWxsb3dzIGEgdHJhY2sgdG8gY29udHJp YnV0ZSBwYXJ0IG9mIGFuIG92ZXJhbGwgbGF5b3V0KS4KPiBBIHN0cmVhbSBtYXkgY29udGFpbiBj aGFubmVscywgb2JqZWN0cywgbmVpdGhlciwgb3IgYm90aC4gQSBzdHJlYW0KPiB0aGF0IGlzIG5l aXRoZXIgY2hhbm5lbCBub3Igb2JqZWN0Cj4gc3RydWN0dXJlZCBjYW4gaW1wbGljaXRseSBiZSBy ZW5kZXJlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KPiAKPiAxMi4yLjQuMiAgU3ludGF4Cj4gCj4g YWxpZ25lZCg4KSBjbGFzcyBDaGFubmVsTGF5b3V0IGV4dGVuZHMgRnVsbEJveCgnY2hubCcsIHZl cnNpb24sIGZsYWdzPTApIHsKPiAgIGlmICh2ZXJzaW9uPT0wKSB7Cj4gICAgICB1bnNpZ25lZCBp bnQoOCkgc3RyZWFtX3N0cnVjdHVyZTsKPiAgICAgIGlmIChzdHJlYW1fc3RydWN0dXJlICYgY2hh bm5lbFN0cnVjdHVyZWQpIHsKPiAgICAgICAgIHVuc2lnbmVkIGludCg4KSBkZWZpbmVkTGF5b3V0 Owo+ICAgICAgICAgIGlmIChkZWZpbmVkTGF5b3V0PT0wKSB7Cj4gICAgICAgICAgICBmb3IgKGkg PSAxIDsgaSA8PSBsYXlvdXRfY2hhbm5lbF9jb3VudCA7IGkrKykgewo+ICAgICAgICAgICAgICAg Ly8gIGxheW91dF9jaGFubmVsX2NvdW50IGNvbWVzIGZyb20gdGhlIHNhbXBsZSBlbnRyeQo+ICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50KDgpIHNwZWFrZXJfcG9zaXRpb247Cj4gICAgICAgICAg ICAgICBpZiAoc3BlYWtlcl9wb3NpdGlvbiA9PSAxMjYpIHsgICAvLyBleHBsaWNpdCBwb3NpdGlv bgo+ICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAoMTYpIGF6aW11dGg7Cj4gICAgICAgICAg ICAgICAgICBzaWduZWQgaW50ICg4KSAgZWxldmF0aW9uOwo+ICAgICAgICAgICAgICAgfQo+ICAg ICAgICAgICAgfQo+ICAgICAgICAgfSBlbHNlIHsKPiAgICAgICAgICAgIHVuc2lnbmVkIGludCg2 NCkgICBvbWl0dGVkQ2hhbm5lbHNNYXA7Cj4gICAgICAgICAgICAgICAgICAvLyBhIOKAmDHigJkg Yml0IGluZGljYXRlcyDigJhub3QgaW4gdGhpcyB0cmFja+KAmQo+ICAgICAgICAgfQo+ICAgICAg fQo+ICAgICAgaWYgKHN0cmVhbV9zdHJ1Y3R1cmUgJiBvYmplY3RTdHJ1Y3R1cmVkKSB7Cj4gICAg ICAgICB1bnNpZ25lZCBpbnQoOCkgb2JqZWN0X2NvdW50Owo+ICAgICAgfQo+ICAgfSBlbHNlIHsK PiAgICAgIHVuc2lnbmVkIGludCg0KSBzdHJlYW1fc3RydWN0dXJlOwo+ICAgICAgdW5zaWduZWQg aW50KDQpIGZvcm1hdF9vcmRlcmluZzsKPiAgICAgIHVuc2lnbmVkIGludCg4KSBiYXNlQ2hhbm5l bENvdW50Owo+ICAgICAgaWYgKHN0cmVhbV9zdHJ1Y3R1cmUgJiBjaGFubmVsU3RydWN0dXJlZCkg ewo+ICAgICAgICAgdW5zaWduZWQgaW50KDgpIGRlZmluZWRMYXlvdXQ7Cj4gICAgICAgICBpZiAo ZGVmaW5lZExheW91dD09MCkgewo+ICAgICAgICAgICAgdW5zaWduZWQgaW50KDgpIGxheW91dF9j aGFubmVsX2NvdW50Owo+ICAgICAgICAgICAgZm9yIChpID0gMSA7IGkgPD0gbGF5b3V0X2NoYW5u ZWxfY291bnQgOyBpKyspIHsKPiAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCg4KSBzcGVha2Vy X3Bvc2l0aW9uOwo+ICAgICAgICAgICAgICAgaWYgKHNwZWFrZXJfcG9zaXRpb24gPT0gMTI2KSB7 ICAgLy8gZXhwbGljaXQgcG9zaXRpb24KPiAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKDE2 KSBhemltdXRoOwo+ICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAoOCkgIGVsZXZhdGlvbjsK PiAgICAgICAgICAgICAgIH0KPiAgICAgICAgICAgIH0KPiAgICAgICAgIH0gZWxzZSB7Cj4gICAg ICAgICAgICBpbnQoNCkgcmVzZXJ2ZWQgPSAwOwo+ICAgICAgICAgICAgdW5zaWduZWQgaW50KDMp IGNoYW5uZWxfb3JkZXJfZGVmaW5pdGlvbjsKPiAgICAgICAgICAgIHVuc2lnbmVkIGludCgxKSBv bWl0dGVkX2NoYW5uZWxzX3ByZXNlbnQ7Cj4gICAgICAgICAgICBpZiAob21pdHRlZF9jaGFubmVs c19wcmVzZW50ID09IDEpIHsKPiAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCg2NCkgICBvbWl0 dGVkQ2hhbm5lbHNNYXA7Cj4gICAgICAgICAgICAgICAgICAgICAvLyBhIOKAmDHigJkgYml0IGlu ZGljYXRlcyDigJhub3QgaW4gdGhpcyB0cmFja+KAmQo+ICAgICAgICAgICAgfQo+ICAgICAgICAg fQo+ICAgICAgfQo+ICAgICAgaWYgKHN0cmVhbV9zdHJ1Y3R1cmUgJiBvYmplY3RTdHJ1Y3R1cmVk KSB7Cj4gICAgICAgICAgICAgICAgICAgICAvLyBvYmplY3RfY291bnQgaXMgZGVyaXZlZCBmcm9t IGJhc2VDaGFubmVsQ291bnQKPiAgICAgIH0KPiAgIH0KPiB9Cj4gCj4gMTIuMi40LjMgIFNlbWFu dGljcwo+IAo+IHZlcnNpb24gaXMgYW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgdmVyc2lv biBvZiB0aGlzIGJveCAoMCBvciAxKS4KPiBXaGVuIGF1dGhvcmluZywgdmVyc2lvbiAxIHNob3Vs ZCBiZQo+ICAgICAgICBwcmVmZXJyZWQgb3ZlciB2ZXJzaW9uIDAuIFZlcnNpb24gMSBjb252ZXlz IHRoZSBjaGFubmVsCj4gb3JkZXJpbmcsIHdoaWNoIGlzIG5vdCBhbHdheXMgdGhlIGNhc2UgZm9y Cj4gICAgICAgIHZlcnNpb24gMC4gVmVyc2lvbiAxIHNob3VsZCBiZSB1c2VkIHRvIGNvbnZleSB0 aGUgYmFzZSBjaGFubmVsCj4gY291bnQgZm9yIERSQy4KPiAKPiBzdHJlYW1fc3RydWN0dXJlIGlz IGEgZmllbGQgb2YgZmxhZ3MgdGhhdCBkZWZpbmUgd2hldGhlciB0aGUgc3RyZWFtCj4gaGFzIGNo YW5uZWwgb3Igb2JqZWN0IHN0cnVjdHVyZSAob3IKPiAgICAgICAgICAgICAgICAgYm90aCwgb3Ig bmVpdGhlcik7IHRoZSBmb2xsb3dpbmcgZmxhZ3MgYXJlIGRlZmluZWQsCj4gYWxsIG90aGVyIHZh bHVlcyBhcmUgcmVzZXJ2ZWQ6Cj4gICAxICB0aGUgc3RyZWFtIGNhcnJpZXMgY2hhbm5lbHMKPiAg IDIgIHRoZSBzdHJlYW0gY2FycmllcyBvYmplY3RzCj4gCj4gZm9ybWF0X29yZGVyaW5nIGluZGlj YXRlcyB0aGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgc3RyZWFtIHN0YXJ0aW5nCj4gZnJvbSB0 aGUgbG93ZXN0IGNoYW5uZWwgaW5kZXgKPiAgICAgICAgICAgICAgICAoc2VlIFRhYmxlKS4gRWFj aCBmb3JtYXQgc2hhbGwgb25seSB1c2UgY29udGlndW91cwo+IGNoYW5uZWwgaW5kaWNlcy4KPiAg IGZvcm1hdF9vcmRlcmluZyBPcmRlcgo+ICAgMCAgICAgICAgICAgICAgIHVua25vd24KPiAgIDEg ICAgICAgICAgICAgICBDaGFubmVscywgcG9zc2libHkgZm9sbG93ZWQgYnkgT2JqZWN0cwo+ICAg MiAgICAgICAgICAgICAgIE9iamVjdHMsIHBvc3NpYmx5IGZvbGxvd2VkIGJ5IENoYW5uZWxzCj4g ICBSZW1haW5pbmcgdmFsdWVzIGFyZSByZXNlcnZlZAo+IAo+IGRlZmluZWRMYXlvdXQgaXMgYSBD aGFubmVsQ29uZmlndXJhdGlvbiBmcm9tIElTTy9JRUMgMjMwOTEtMy4KPiAKPiBzcGVha2VyX3Bv c2l0aW9uIGlzIGFuIE91dHB1dENoYW5uZWxQb3NpdGlvbiBmcm9tIElTTy9JRUMgMjMwOTEtMy4g SWYKPiBhbiBleHBsaWNpdCBwb3NpdGlvbiBpcyB1c2VkLAo+ICAgICAgICAgICAgICAgICB0aGVu IHRoZSBhemltdXRoIGFuZCBlbGV2YXRpb24gYXJlIGFzIGRlZmluZWQgYXMgZm9yCj4gc3BlYWtl cnMgaW4gSVNPL0lFQyAyMzA5MS0zLiBUaGUgY2hhbm5lbAo+ICAgICAgICAgICAgICAgICBvcmRl ciBjb3JyZXNwb25kcyB0byB0aGUgb3JkZXIgb2Ygc3BlYWtlciBwb3NpdGlvbnMuCj4gCj4gYXpp bXV0aCBpcyBhIHNpZ25lZCB2YWx1ZSBpbiBkZWdyZWVzLCBhcyBkZWZpbmVkIGZvcgo+IExvdWRz cGVha2VyQXppbXV0aCBpbiBJU08vSUVDIDIzMDkxLTMuCj4gCj4gZWxldmF0aW9uIGlzIGEgc2ln bmVkIHZhbHVlLCBpbiBkZWdyZWVzLCBhcyBkZWZpbmVkIGZvcgo+IExvdWRzcGVha2VyRWxldmF0 aW9uIGluIElTTy9JRUMgMjMwOTEtMy4KPiAKPiBjaGFubmVsX29yZGVyX2RlZmluaXRpb24gaW5k aWNhdGVzIHdoZXJlIHRoZSBvcmRlcmluZyBvZiB0aGUgYXVkaW8KPiBjaGFubmVscyBmb3IgdGhl IGRlZmluZWRMYXlvdXQKPiAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgc3BlY2lmaWVkIChz ZWUgVGFibGUpLgo+IAo+ICAgY2hhbm5lbF9vcmRlcl9kZWZpbml0aW9uIENoYW5uZWwgb3JkZXIg c3BlY2lmaWNhdGlvbgo+ICAgMCAgICAgICAgICAgICAgICAgICAgICAgIGFzIGxpc3RlZCBmb3Ig dGhlIENoYW5uZWxDb25maWd1cmF0aW9ucyBpbgo+IElTTy9JRUMgMjMwOTEtMwo+ICAgMSAgICAg ICAgICAgICAgICAgICAgICAgIERlZmF1bHQgb3JkZXIgb2YgYXVkaW8gY29kZWMgc3BlY2lmaWNh dGlvbgo+ICAgMiAgICAgICAgICAgICAgICAgICAgICAgIENoYW5uZWwgb3JkZXJpbmcgIzIgb2Yg YXVkaW8gY29kZWMgc3BlY2lmaWNhdGlvbgo+ICAgMyAgICAgICAgICAgICAgICAgICAgICAgIENo YW5uZWwgb3JkZXJpbmcgIzMgb2YgYXVkaW8gY29kZWMgc3BlY2lmaWNhdGlvbgo+ICAgNCAgICAg ICAgICAgICAgICAgICAgICAgIENoYW5uZWwgb3JkZXJpbmcgIzQgb2YgYXVkaW8gY29kZWMgc3Bl Y2lmaWNhdGlvbgo+ICAgUmVtYWluaW5nIHZhbHVlcyBhcmUgcmVzZXJ2ZWQKPiAKPiBvbWl0dGVk X2NoYW5uZWxzX3ByZXNlbnQgaXMgYSBmbGFnIHRoYXQgaW5kaWNhdGVzIGlmIGl0IGlzIHNldCB0 byAxCj4gdGhhdCB0aGUgb21pdHRlZENoYW5uZWxzTWFwIGlzIHByZXNlbnQuCj4gCj4gb21pdHRl ZENoYW5uZWxzTWFwIGlzIGEgYml0LW1hcCBvZiBvbWl0dGVkIGNoYW5uZWxzOyB0aGUgYml0cyBp biB0aGUKPiBjaGFubmVsIG1hcCBhcmUgbnVtYmVyZWQgZnJvbQo+ICAgICAgICAgICAgICAgICAg IGxlYXN0LXNpZ25pZmljYW50IHRvIG1vc3Qtc2lnbmlmaWNhbnQsIGFuZAo+IGNvcnJlc3BvbmQg aW4gdGhhdCBvcmRlcmluZyB3aXRoIHRoZSBvcmRlciBvZiB0aGUgY2hhbm5lbHMKPiAgICAgICAg ICAgICAgICAgICBmb3IgIHRoZSAgY29uZmlndXJhdGlvbiAgYXMgIGRvY3VtZW50ZWQgIGluCj4g SVNPL0lFQyAgMjMwOTEtMyAgQ2hhbm5lbENvbmZpZ3VyYXRpb24uICAxLWJpdHMgIGluICB0aGUK PiAgICAgICAgICAgICAgICAgICBjaGFubmVsIG1hcCBtZWFuIHRoYXQgYSBjaGFubmVsIGlzIGFi c2VudC4gQSB6ZXJvCj4gdmFsdWUgb2YgdGhlIG1hcCB0aGVyZWZvcmUgYWx3YXlzIG1lYW5zIHRo YXQKPiAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gc3RhbmRhcmQgbGF5b3V0IGlzIGZ1bGx5 IHByZXNlbnQuIFRoZQo+IGRlZmF1bHQgdmFsdWUgaXMgMC4KPiAKPiBsYXlvdXRfY2hhbm5lbF9j b3VudCBpcyB0aGUgY291bnQgb2YgY2hhbm5lbHMgZm9yIHRoZSBjaGFubmVsIGxheW91dC4KPiBU aGUgZGVmYXVsdCB2YWx1ZSBpcyAwIGlmIHN0cmVhbV8KPiAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdHVyZSBpbmRpY2F0ZXMgdGhhdCBubyBjaGFubmVsIHN0cnVjdHVyZSBpcwo+IHByZXNlbnQu IE90aGVyd2lzZSwgdGhlIHZhbHVlIGlzIHRoZSBudW1iZXIgb2YKPiAgICAgICAgICAgICAgICAg ICAgIGNoYW5uZWxzIG9mIHRoZSBkZWZpbmVkIGxheW91dCwgaWYgcHJlc2VudCwKPiBvdGhlcndp c2UgaXQgaXMgdGhlIHZhbHVlIGZyb20gdGhlIHNhbXBsZSBlbnRyeS4KPiBvYmplY3RfY291bnQg aXMgdGhlIGNvdW50IG9mIGNoYW5uZWxzIHRoYXQgY29udGFpbiBhdWRpbyBvYmplY3RzLiBUaGUK PiBkZWZhdWx0IHZhbHVlIGlzIDAuIEZvciB2ZXJzaW9uCj4gICAgICAgICAgICAgMSBhbmQgaWYg dGhlIG9iamVjdFN0cnVjdHVyZWQgZmxhZyBpcyBzZXQsIHRoZSB2YWx1ZSBpcwo+IGNvbXB1dGVk IGFzIGJhc2VDaGFubmVsQ291bnQgIG1pbnVzIHRoZQo+ICAgICAgICAgICAgIGNoYW5uZWwgY291 bnQgb2YgdGhlIGNoYW5uZWwgc3RydWN0dXJlLgo+IAo+IGJhc2VDaGFubmVsQ291bnQgcmVwcmVz ZW50cyB0aGUgY29tYmluZWQgY2hhbm5lbCBjb3VudCBvZiB0aGUgY2hhbm5lbAo+IGxheW91dCBh bmQgdGhlIG9iamVjdCBjb3VudC4KPiAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIG11c3QgbWF0 Y2ggdGhlIGJhc2UgY2hhbm5lbCBjb3VudCBmb3IgRFJDCj4gKHNlZSBJU08vSUVDIDIzMDAzLTQp Lgo+IAo+IAo+PiArCj4+ICsgICAgc3RyZWFtX3N0cnVjdHVyZSA9IGF2aW9fcjgocGIpOwo+PiAr Cj4+ICsgICAgLy8gc3RyZWFtIGNhcnJpZXMgY2hhbm5lbHMKPj4gKyAgICBpZiAoc3RyZWFtX3N0 cnVjdHVyZSAmIDEpIHsKPj4gKyAgICAgICAgaW50IGxheW91dCA9IGF2aW9fcjgocGIpOwo+PiAr Cj4+ICsgICAgICAgIGF2X2xvZyhjLT5mYywgQVZfTE9HX1RSQUNFLCAiJ2NobmwnIGxheW91dCAl ZFxuIiwgbGF5b3V0KTsKPj4gKyAgICAgICAgaWYgKCFsYXlvdXQpIHsKPj4gKyAgICAgICAgICAg IHVpbnQ4X3QgcG9zaXRpb25zWzY0XSA9IHt9Owo+PiArICAgICAgICAgICAgaW50IGVuYWJsZSA9 IDE7Cj4+ICsKPj4gKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3QtPmNvZGVjcGFy LT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7IGkrKykgewo+PiArICAgICAgICAgICAgICAgIGludCBz cGVha2VyX3BvcyA9IGF2aW9fcjgocGIpOwo+PiArCj4+ICsgICAgICAgICAgICAgICAgYXZfbG9n KGMtPmZjLCBBVl9MT0dfVFJBQ0UsICJzcGVha2VyX3Bvc2l0aW9uICVkXG4iLCBzcGVha2VyX3Bv cyk7Cj4+ICsgICAgICAgICAgICAgICAgaWYgKHNwZWFrZXJfcG9zID09IDEyNikgeyAvLyBleHBs aWNpdCBwb3NpdGlvbgo+PiArICAgICAgICAgICAgICAgICAgICBpbnQxNl90IGF6aW11dGggPSBh dmlvX3JiMTYocGIpOwo+PiArICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgZWxldmF0aW9uID0g YXZpb19yOChwYik7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGMtPmZjLCBB Vl9MT0dfVFJBQ0UsICJhemltdXRoICVkLCBlbGV2YXRpb24gJWRcbiIsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBhemltdXRoLCBlbGV2YXRpb24pOwo+PiArICAgICAgICAgICAgICAg ICAgICAvLyBEb24ndCBzdXBwb3J0IGV4cGxpY2l0IHBvc2l0aW9uCj4+ICsgICAgICAgICAgICAg ICAgICAgIGVuYWJsZSA9IDA7Cj4+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgRkZf QVJSQVlfRUxFTVMocG9zaXRpb25zKSkgewo+PiArICAgICAgICAgICAgICAgICAgICBwb3NpdGlv bnNbaV0gPSBzcGVha2VyX3BvczsKPj4gKyAgICAgICAgICAgICAgICB9IGVsc2Ugewo+PiArICAg ICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhbm5lbCBvdXQgb2Ygb3VyIHN1cHBvcnRl ZCByYW5nZQo+PiArICAgICAgICAgICAgICAgICAgICBlbmFibGUgPSAwOwo+PiArICAgICAgICAg ICAgICAgIH0KPj4gKyAgICAgICAgICAgIH0KPj4gKwo+PiArICAgICAgICAgICAgaWYgKGVuYWJs ZSkgewo+PiArICAgICAgICAgICAgICAgIHJldCA9IGZmX21vdl9nZXRfbGF5b3V0X2Zyb21fY2hh bm5lbF9wb3NpdGlvbnMocG9zaXRpb25zLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgc3Qt PmNvZGVjcGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAmc3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQpOwo+PiArICAgICAgICAgICAgICAgIGlmIChy ZXQpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGMtPmZjLCBBVl9MT0dfV0FSTklO RywgInVuc3VwcG9ydGVkIHNwZWFrZXIgcG9zaXRpb25zXG4iKTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgcmV0ID0gMDsKPj4gKyAgICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICB9Cj4+ ICsgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAgICB1aW50NjRfdCBvbWl0dGVkX2NoYW5u ZWxfbWFwID0gYXZpb19yYjY0KHBiKTsKPj4gKwo+PiArICAgICAgICAgICAgaWYgKG9taXR0ZWRf Y2hhbm5lbF9tYXApIHsKPj4gKyAgICAgICAgICAgICAgICBhdnByaXZfcmVxdWVzdF9zYW1wbGUo Yy0+ZmMsICJvbWl0dGVkX2NoYW5uZWxfbWFwIDB4JSIgUFJJeDY0ICIgIT0gMCIsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9taXR0ZWRfY2hhbm5lbF9tYXApOwo+ PiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKPj4gKyAgICAg ICAgICAgIH0KPj4gKyAgICAgICAgICAgIGZmX21vdl9nZXRfY2hhbm5lbF9sYXlvdXRfZnJvbV9j b25maWcobGF5b3V0LCAmc3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQpOwo+PiArICAgICAgICB9Cj4+ ICsgICAgfQo+PiArCj4+ICsgICAgLy8gc3RyZWFtIGNhcnJpZXMgb2JqZWN0cwo+PiArICAgIGlm IChzdHJlYW1fc3RydWN0dXJlICYgMikgewo+PiArICAgICAgICBpbnQgb2JqX2NvdW50ID0gYXZp b19yOChwYik7Cj4+ICsgICAgICAgIGF2X2xvZyhjLT5mYywgQVZfTE9HX1RSQUNFLCAiJ2Nobmwn IHdpdGggb2JqZWN0X2NvdW50ICVkXG4iLCBvYmpfY291bnQpOwo+PiArICAgIH0KPj4gKwo+PiAr ICAgIGF2aW9fc2VlayhwYiwgZW5kLCBTRUVLX1NFVCk7Cj4+ICsgICAgcmV0dXJuIHJldDsKPj4g K30KPj4gKwo+PiBzdGF0aWMgaW50IG1vdl9yZWFkX3dmZXgoTU9WQ29udGV4dCAqYywgQVZJT0Nv bnRleHQgKnBiLCBNT1ZBdG9tIGF0b20pCj4+IHsKPj4gICAgIEFWU3RyZWFtICpzdDsKPj4gQEAg LTc3ODQsNyArNzg2MCw4IEBAIHN0YXRpYyBjb25zdCBNT1ZQYXJzZVRhYmxlRW50cnkgbW92X2Rl ZmF1bHRfcGFyc2VfdGFibGVbXSA9IHsKPj4geyBNS1RBRygndycsJ2knLCdkJywnZScpLCBtb3Zf cmVhZF93aWRlIH0sIC8qIHBsYWNlIGhvbGRlciAqLwo+PiB7IE1LVEFHKCd3JywnZicsJ2UnLCd4 JyksIG1vdl9yZWFkX3dmZXggfSwKPj4geyBNS1RBRygnYycsJ20nLCdvJywndicpLCBtb3ZfcmVh ZF9jbW92IH0sCj4+IC17IE1LVEFHKCdjJywnaCcsJ2EnLCduJyksIG1vdl9yZWFkX2NoYW4gfSwg LyogY2hhbm5lbCBsYXlvdXQgKi8KPj4gK3sgTUtUQUcoJ2MnLCdoJywnYScsJ24nKSwgbW92X3Jl YWRfY2hhbiB9LCAvKiBjaGFubmVsIGxheW91dCBmcm9tIHF1aWNrdGltZSAqLwo+PiAreyBNS1RB RygnYycsJ2gnLCduJywnbCcpLCBtb3ZfcmVhZF9jaG5sIH0sIC8qIGNoYW5uZWwgbGF5b3V0IGZy b20gSVNPLTE0NDk2LTEyICovCj4+IHsgTUtUQUcoJ2QnLCd2JywnYycsJzEnKSwgbW92X3JlYWRf ZHZjMSB9LAo+PiB7IE1LVEFHKCdzJywnZycsJ3AnLCdkJyksIG1vdl9yZWFkX3NncGQgfSwKPj4g eyBNS1RBRygncycsJ2InLCdnJywncCcpLCBtb3ZfcmVhZF9zYmdwIH0sCj4+IGRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC9tb3ZfY2hhbi5jIGIvbGliYXZmb3JtYXQvbW92X2NoYW4uYwo+PiBpbmRl eCBmNjZiZjBkZjdmLi4xMGViY2RjMDhmIDEwMDY0NAo+PiAtLS0gYS9saWJhdmZvcm1hdC9tb3Zf Y2hhbi5jCj4+ICsrKyBiL2xpYmF2Zm9ybWF0L21vdl9jaGFuLmMKPj4gQEAgLTU1MSwzICs1NTEs MjY4IEBAIGludCBmZl9tb3ZfcmVhZF9jaGFuKEFWRm9ybWF0Q29udGV4dCAqcywgQVZJT0NvbnRl eHQgKnBiLCBBVlN0cmVhbSAqc3QsCj4+IAo+PiAgICAgcmV0dXJuIDA7Cj4+IH0KPj4gKwo+PiAr LyogSVNPL0lFQyAyMzAwMS04LCA4LjIgKi8KPj4gK3N0YXRpYyBjb25zdCBBVkNoYW5uZWxMYXlv dXQgaXNvX2NoYW5uZWxfY29uZmlndXJhdGlvbltdID0gewo+PiArICAgIC8vIDA6IGFueSBzZXR1 cAo+PiArICAgIHt9LAo+PiArCj4gCj4gSSB0aGluayB0aGUgYmV0dGVyIG5hbWluZyBmb3IgdGhp cyB3b3VsZCBiZSBDSUNQIGNoYW5uZWwgY29uZmlndXJhdGlvbgo+IHNpbmNlIHRoZSBzcGVjaWZp Y2F0aW9uIGlzIGNhbGxlZCAiY29tbW9uIGluZGVwZW5kZW50IGNvZGluZyBwb2ludHMiCj4gKGZv ciB2aWRlbyB0aGlzIGlzIHNoYXJlZCB3aXRoIElUVS1UIEguMjczIHdoaWNoIGlzIGZyZWUpLgo+ IAo+IEFsc28gZG8gbm90ZSB0aGF0IGEgd2hvbGUgYnVuY2ggb2YgdGhlc2UgYXJlIG5vdCBpbiB0 aGUgY2hhbm5lbCBvcmRlcgo+IHRoYXQgRkZtcGVnIHdhbnRzIGFmdGVyIHN0ZXJlbyA6PAo+IAo+ IFRoYW5rZnVsbHkgd2l0aCBtYW51YWwgbWFwcGluZyBGRm1wZWcgbmF0aXZlIGNoYW5uZWwgbGF5 b3V0cycgY2hhbm5lbAo+IG9yZGVyIHNob3VsZCBiZSB3cml0YWJsZSBhbmQgcmVhZGFibGUuCj4g Cj4gVGhlIGNoYW5uZWwgb3JkZXJzIGZvciB2YXJpb3VzIENJQ1AgbGF5b3V0cyBjYW4gYmUgZm91 bmQgYm90aCBpbiB0aGUKPiByZWZlcmVuY2VkIHNwZWNpZmljYXRpb25zLCBhcyB3ZWxsIGFzIGlu IHRoZSBjb21tZW50cyBmcm9tIEFwcGxlJ3MKPiBoZWFkZXJzIGZvciBleGFtcGxlCj4gCj4gLy8g SVNPL0lFQyAyMzA5MS0zLCBjaGFubmVscyB3L29yZGVyaW5ncwo+IGtBdWRpb0NoYW5uZWxMYXlv dXRUYWdfQ0lDUF8xICAgICAgICAgICAgICAgICAgID0KPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFn X01QRUdfMV8wLCAgICAgIC8vLzwgQwo+IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF8yICAg ICAgICAgICAgICAgICAgID0KPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX01QRUdfMl8wLCAgICAg IC8vLzwgTCBSCj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzMgICAgICAgICAgICAgICAg ICAgPQo+IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfTVBFR18zXzBfQSwgICAgLy8vPCBMIFIgQwo+ IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF80ICAgICAgICAgICAgICAgICAgID0KPiBrQXVk aW9DaGFubmVsTGF5b3V0VGFnX01QRUdfNF8wX0EsICAgIC8vLzwgTCBSIEMgQ3MKPiBrQXVkaW9D aGFubmVsTGF5b3V0VGFnX0NJQ1BfNSAgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hhbm5l bExheW91dFRhZ19NUEVHXzVfMF9BLCAgICAvLy88IEwgUiBDIExzIFJzCj4ga0F1ZGlvQ2hhbm5l bExheW91dFRhZ19DSUNQXzYgICAgICAgICAgICAgICAgICAgPQo+IGtBdWRpb0NoYW5uZWxMYXlv dXRUYWdfTVBFR181XzFfQSwgICAgLy8vPCBMIFIgQyBMRkUgTHMgUnMKPiBrQXVkaW9DaGFubmVs TGF5b3V0VGFnX0NJQ1BfNyAgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hhbm5lbExheW91 dFRhZ19NUEVHXzdfMV9CLCAgICAvLy88IEwgUiBDIExGRSBMcyBScyBMYyBSYwo+IAo+IGtBdWRp b0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF85ICAgICAgICAgICAgICAgICAgID0KPiBrQXVkaW9DaGFu bmVsTGF5b3V0VGFnX0lUVV8yXzEsICAgICAgIC8vLzwgTCBSIENzCj4ga0F1ZGlvQ2hhbm5lbExh eW91dFRhZ19DSUNQXzEwICAgICAgICAgICAgICAgICAgPQo+IGtBdWRpb0NoYW5uZWxMYXlvdXRU YWdfSVRVXzJfMiwgICAgICAgLy8vPCBMIFIgTHMgUnMKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFn X0NJQ1BfMTEgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19NUEVH XzZfMV9BLCAgICAvLy88IEwgUiBDIExGRSBMcyBScyBDcwo+IGtBdWRpb0NoYW5uZWxMYXlvdXRU YWdfQ0lDUF8xMiAgICAgICAgICAgICAgICAgID0KPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX01Q RUdfN18xX0MsICAgIC8vLzwgTCBSIEMgTEZFIExzIFJzIFJscyBScnMKPiBrQXVkaW9DaGFubmVs TGF5b3V0VGFnX0NJQ1BfMTMgICAgICAgICAgICAgICAgICA9ICgyMDRVPDwxNikgfCAyNCwKPiAg ICAgICAgICAgICAgICAgICAvLy88IExjIFJjIEMgTEZFMiBSbHMgUnJzIEwgUiBDcyBMRkUzIExz cyBSc3MgVmhsCj4gVmhyIFZoYyBUcyBMdHIgUnRyIEx0bSBSdG0gQ3RyIENiIExiIFJiCj4gCj4g a0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzE0ICAgICAgICAgICAgICAgICAgPSAoMjA1VTw8 MTYpIHwgOCwKPiAgICAgICAgICAgICAgIC8vLzwgTCBSIEMgTEZFIExzIFJzIFZobCBWaHIKPiBr QXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfMTUgICAgICAgICAgICAgICAgICA9ICgyMDZVPDwx NikgfCAxMiwKPiAgICAgICAgICAgICAgICAgICAvLy88IEwgUiBDIExGRTIgUmxzIFJycyBMRkUz IExzcyBSc3MgVmhsIFZociBDdHIKPiAKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfMTYg ICAgICAgICAgICAgICAgICA9ICgyMDdVPDwxNikgfCAxMCwKPiAgICAgICAgICAgICAgICAgICAv Ly88IEwgUiBDIExGRSBMcyBScyBWaGwgVmhyIEx0cyBSdHMKPiBrQXVkaW9DaGFubmVsTGF5b3V0 VGFnX0NJQ1BfMTcgICAgICAgICAgICAgICAgICA9ICgyMDhVPDwxNikgfCAxMiwKPiAgICAgICAg ICAgICAgICAgICAvLy88IEwgUiBDIExGRSBMcyBScyBWaGwgVmhyIFZoYyBMdHMgUnRzIFRzCj4g a0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzE4ICAgICAgICAgICAgICAgICAgPSAoMjA5VTw8 MTYpIHwgMTQsCj4gICAgICAgICAgICAgICAgICAgLy8vPCBMIFIgQyBMRkUgTHMgUnMgTGJzIFJi cyBWaGwgVmhyIFZoYyBMdHMgUnRzIFRzCj4gCj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQ XzE5ICAgICAgICAgICAgICAgICAgPSAoMjEwVTw8MTYpIHwgMTIsCj4gICAgICAgICAgICAgICAg ICAgLy8vPCBMIFIgQyBMRkUgUmxzIFJycyBMc3MgUnNzIFZobCBWaHIgTHRyIFJ0cgo+IGtBdWRp b0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF8yMCAgICAgICAgICAgICAgICAgID0gKDIxMVU8PDE2KSB8 IDE0LAo+ICAgICAgICAgICAgICAgICAgIC8vLzwgTCBSIEMgTEZFIFJscyBScnMgTHNzIFJzcyBW aGwgVmhyIEx0ciBSdHIgTGVvcwo+IFJlb3MKPiAKPiBCZXN0IHJlZ2FyZHMsCj4gSmFuCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2 ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcgPG1haWx0bzpmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZz4KPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9m Zm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1h aWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIDxtYWlsdG86ZmZtcGVnLWRldmVs LXJlcXVlc3RAZmZtcGVnLm9yZz4gd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCg==