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 5DBA2458F4 for ; Sat, 25 Feb 2023 04:31:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8FC9868BDD2; Sat, 25 Feb 2023 06:31:35 +0200 (EET) Received: from out203-205-221-192.mail.qq.com (out203-205-221-192.mail.qq.com [203.205.221.192]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 29FEA68C0DB for ; Sat, 25 Feb 2023 06:31:27 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1677299478; bh=IgEI13ujVZkqXvSoN9VgePGiUQhTvv5DNSaw+Z0pOeM=; h=Subject:From:To:Date:In-Reply-To:References; b=vZsRsRRnmDxVKzrNOGVBqiDKKtaBZwrebaXXrJqVQz09dP1XHVxKA7/EkBMI51tK3 LCdrdDRJT46vpOmxXJdYNP3ybOqgEOZsoDcvtN1Nzr8jOX32uDz6KC0hXbFt7EPfQe Q1xrFH4feyWENvyhyPrhqjfr8AOTEsu13FUv96gI= Received: from [127.0.0.1] ([113.118.101.228]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 7D19CCE5; Sat, 25 Feb 2023 12:31:17 +0800 X-QQ-mid: xmsmtpt1677299477tjp7xcao6 Message-ID: X-QQ-XMAILINFO: N7h1OCCDntujoF1dmMf5RH5VRsGmqa0WJqmCc/O/PjeZNJf29vsLwEnigkq+OS s89Y1PBcqs8PyxrEcsu4DzT/43hrtnL1xK+kTrivZXAaFvCEtg3gRyQAb9gZRy+AdvE+xtniPiL3 qKq31CK6JLtgZ4J2eDNVA/GdvQF+WJGfrrQvnAJVDquSaegwfFdS1HN12aKgG+lmZPwID7T5XXGF DoJLX2nkOnw3tUDOSBCY2MzCv6Ch2tvT3cNv8urocjmz/Qaw0NS+UgV9tfWCFAfGL/1ltJPW/P8X Ca+qxcXeDkRcsjksATDQM+YyWK5vKKeVq81mkGs8+/AH59cEXjCUQLtHq/W8NEawBM/HLb4YB1ji qknuBTZI6POA0sCM/nXHIjm+PQCo+ejOK7ajc7/L+Vg4bszycOOKpet7ME0xUfv3NLqRNfb4S02Z zJDyUVSktDiH1kuEuHK3T6SFoku+KKbdIFx7lFiKbl8ZQnjeGZO42iEmdYefZ12iTqP4YBfdI1Ti YzDZ7Tc6f2K+uuhppM1sp3kOtwdChTi5zHktshEbPWkwyEr2pel/Kv68ppg0K7XWH//C4JZrjQKQ 7m7Ur6YczTjQEKkLBELRzvSKzdiXVJ2VtNnY1Pky4u6FznDp9h6AAcn+d53XdiKHsmiLmICgC13r Z/MCePShNh5TWs3dT4t349Ut/pmuhu6rwb2XM6Si0xDdI0A8Nc8TNzmOTk3VCOx6PWmd4g5vEatb HbHwvVPyguVWvZeJme49Fpy+PS25HfbmZ4OLKfop2e0qX4XAPcKpfFGpLHoylUgcEftbRRxIu+9O 7pz/5Sb1nBkJODzMvx1lKbhe3Vz1Ed3fY9SNK8sQBSwEursM1ffM8PIc7lv6+4bAyBxB/TRcij5/ oOllUTq1eu8Ius53vU7M7oV1fKluST4Z+bV0Jp0k1nfUtta18jF3gM5B8pnqt8/4GytQQGe2P5n5 xdXKRFdJBU48odGBFCX7fk3R2wiWVnEqo9jj4ZMgo= X-OQ-MSGID: <2e05ebaa60ace53674b098cdfa301cbe8c463bb9.camel@foxmail.com> From: Zhao Zhili To: Jan =?ISO-8859-1?Q?Ekstr=F6m?= , FFmpeg development discussions and patches Date: Sat, 25 Feb 2023 12:31:17 +0800 In-Reply-To: References: <20230224122523.143571-1-quinkblack@foxmail.com> User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 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 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: T24gRnJpLCAyMDIzLTAyLTI0IGF0IDE1OjQ5ICswMjAwLCBKYW4gRWtzdHLDtm0gd3JvdGU6Cj4g T24gRnJpLCBGZWIgMjQsIDIwMjMgYXQgNjoyNSBBTSBaaGFvIFpoaWxpIDxxdWlua2JsYWNrQGZv eG1haWwuY29tPiB3cm90ZToKPiA+IAo+ID4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRl bmNlbnQuY29tPgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9A dGVuY2VudC5jb20+Cj4gCj4gSGFoLCBJIGFjdHVhbGx5IGhhcHBlbmVkIHRvIHJlY2VudGx5IHN0 YXJ0IGNvZGluZyB1bmNvbXByZXNzZWQgYXVkaW8KPiBzdXBwb3J0IGluIG1wNCBteXNlbGYsIGJ1 dCB3aGF0IHRoaXMgY29tbWl0IGlzIGhhbmRsaW5nIGlzIHdoYXQKPiBiYXNpY2FsbHkga2lsbGVk IG15IHZlcnNpb24gb2ZmIHNpbmNlIHRoZSBjaGFubmVsIGxheW91dCBib3ggaXMKPiByZXF1aXJl ZC4KPiAKPiBJZiB5b3UncmUgaW50ZXJlc3RlZCB5b3UgY2FuIGNoZWNrIG15IHRha2Ugb3ZlciBh dAo+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZWViL2ZmbXBlZy9jb21taXRzL3BjbWNfcGFyc2luZ19p bXByb3ZlbWVudHMgLgoKU29ycnkgSSBkaWRuJ3Qgbm90aWNlIHlvdXIgd29yayBvbiB0aGlzIGlz c3VlLiBJIGhhdmUgY2hlcnJ5LXBpY2tlZAp0aGUgZmlyc3QgdHdvIHBhdGNoZXMgZnJvbSB5b3Vy IGJyYW5jaCBpbiB2Mi4gSXMgaXQgT0sgZm9yIHlvdT8KCkl0J3MgdGVkaW91c0ZvciB0aGUgY2hh bm5lbCBsYXlvdXQgc3VwcG9ydHMuIFNvbWUgb2YgdGhlIGxheW91dHMgYXJlbid0CnN1cHBvcnRl ZCB5ZXQsIGFuZCBzb21lIG9mIHRoZSBkZXRhaWxzIGFyZSB1bmNsZWFyLiBQbGVhc2UgaGVscCBy ZXZpZXcKYW5kIGltcHJvdmUgdGhpcyBwYXJ0LgogCj4gCj4gV2lsbCBjb21tZW50IG9uIHNvbWUg dGhpbmdzLgo+IAo+ID4gLS0tCj4gPiAgbGliYXZmb3JtYXQvbW92LmMgICAgICB8ICA3OSArKysr KysrKysrKy0KPiA+ICBsaWJhdmZvcm1hdC9tb3ZfY2hhbi5jIHwgMjY1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgbGliYXZmb3JtYXQvbW92X2NoYW4uaCB8 ICAyNiArKysrCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAzNjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92LmMgYi9saWJhdmZv cm1hdC9tb3YuYwo+ID4gaW5kZXggYjEyNTM0M2Y4NC4uMWRiODY5YWEyZSAxMDA2NDQKPiA+IC0t LSBhL2xpYmF2Zm9ybWF0L21vdi5jCj4gPiArKysgYi9saWJhdmZvcm1hdC9tb3YuYwo+ID4gQEAg LTk0MCw2ICs5NDAsODIgQEAgc3RhdGljIGludCBtb3ZfcmVhZF9jaGFuKE1PVkNvbnRleHQgKmMs IEFWSU9Db250ZXh0ICpwYiwgTU9WQXRvbSBhdG9tKQo+ID4gICAgICByZXR1cm4gMDsKPiA+ICB9 Cj4gPiAKPiA+ICtzdGF0aWMgaW50IG1vdl9yZWFkX2NobmwoTU9WQ29udGV4dCAqYywgQVZJT0Nv bnRleHQgKnBiLCBNT1ZBdG9tIGF0b20pCj4gPiArewo+ID4gKyAgICBpbnQ2NF90IGVuZCA9IGF2 X3NhdF9hZGQ2NChhdmlvX3RlbGwocGIpLCBhdG9tLnNpemUpOwo+ID4gKyAgICBpbnQgc3RyZWFt X3N0cnVjdHVyZTsKPiA+ICsgICAgaW50IHJldCA9IDA7Cj4gPiArICAgIEFWU3RyZWFtICpzdDsK PiA+ICsKPiA+ICsgICAgaWYgKGMtPmZjLT5uYl9zdHJlYW1zIDwgMSkKPiA+ICsgICAgICAgIHJl dHVybiAwOwo+ID4gKyAgICBzdCA9IGMtPmZjLT5zdHJlYW1zW2MtPmZjLT5uYl9zdHJlYW1zLTFd Owo+ID4gKwo+ID4gKyAgICAvKiBza2lwIHZlcnNpb24gYW5kIGZsYWdzICovCj4gPiArICAgIGF2 aW9fc2tpcChwYiwgNCk7Cj4gCj4gV2Ugc2hvdWxkIHJlYWxseSBub3QgZG8gdGhpcyBhbnkgbW9y ZS4gVmFyaW91cyBGdWxsQm94ZXMgaGF2ZSBtdWx0aXBsZQo+IHZlcnNpb25zIG9yIGRlcGVuZCBv biB0aGUgZmxhZ3MuIFNlZSBob3cgSSBoYXZlIGFkZGVkIEZ1bGxCb3ggdGhpbmdzCj4gcmVjZW50 bHksIGFsdGhvdWdoIEkgd291bGQgcHJlZmVyIHVzIHRvIGhhdmUgYSBnZW5lcmljIG1hY3JvL2Z1 bmN0aW9uCj4gc2V0dXAgZm9yIHRoaXMgd2hlcmUgeW91IHRoZW4gZ2V0IHRoZSB2ZXJzaW9uIGFu ZCBmbGFncyBhcyBhcmd1bWVudHMKPiBvciB3aGF0ZXZlciBpbiB0aGUgZnV0dXJlLgoKSSBoYXZl IGFkZGVkIHZlcnNpb24gYW5kIGZsYWdzIGNoZWNrLCBhbmQgb25seSBzdXBwb3J0cyB2ZXJzaW9u IDAgd2l0aApwYXRjaCB2Mi4gV2VsY29tZSB0byBhZGQgdmVyc2lvbiAxIHN1cHBvcnRzIDopCgpJ IGFncmVlIHdpdGggdGhlIGlkZWEgdG8gY2xlYW51cCB0aGUgaGFuZGxpbmcgb2YgdmVyc2lvbiBh bmQgZmxhZ3MgZm9yCmZ1dHVyZSBwcm9vZi4KCj4gCj4gRm9yIHRoaXMgc3BlY2lmaWMgYm94LCB0 aGVyZSBhcmUgbm93IHZlcnNpb25zIDAgYW5kIDEgZGVmaW5lZCBzaW5jZQo+IGNpcmNhIDIwMTgt MjAxOSBvciBzbyAodmlzaWJsZSBhdCBsZWFzdCBpbiAxNDQ5Ni0xMiAyMDIyKQo+IAo+IFNpbmNl IElTTy9JRUMgaGFzIGNoYW5nZWQgdGhlIHJ1bGVzIGZvciBmcmVlIHNwZWNpZmljYXRpb25zIChh Z2FpbnN0Cj4gdGhlIHdpc2hlcyBvZiB2YXJpb3VzIHNwZWMgYXV0aG9ycykgYW5kIGFsbCB0aGF0 IGphenosIHRoaXMgaXMgaG93Cj4gaXQncyBkZWZpbmVkIGluIHdoYXQgSSBoYXZlIG9uIGhhbmQ6 Cj4gCj4gMTIuMi40ICBDaGFubmVsIGxheW91dAo+IAo+IDEyLjIuNC4xICBEZWZpbml0aW9uCj4g Cj4gQm94IFR5cGVzOiAgJ2NobmwnCj4gQ29udGFpbmVyOiBBdWRpbyBzYW1wbGUgZW50cnkKPiBN YW5kYXRvcnk6IE5vCj4gUXVhbnRpdHk6IFplcm8gb3Igb25lCj4gCj4gVGhpcyBib3ggbWF5IGFw cGVhciBpbiBhbiBhdWRpbyBzYW1wbGUgZW50cnkgdG8gZG9jdW1lbnQgdGhlCj4gYXNzaWdubWVu dCBvZiBjaGFubmVscyBpbiB0aGUgYXVkaW8KPiBzdHJlYW0uIEl0IGlzIHJlY29tbWVuZGVkIHRv IHVzZSB0aGlzIGJveCB0byBjb252ZXkgdGhlIGJhc2UgY2hhbm5lbAo+IGNvdW50IGZvciB0aGUg RG93bk1peEluc3RydWN0aW9ucwo+IGJveCBhbmQgb3RoZXIgRFJDLXJlbGF0ZWQgYm94ZXMgc3Bl Y2lmaWVkIGluIElTTy9JRUMgMjMwMDMtNC4KPiBUaGUgY2hhbm5lbCBsYXlvdXQgY2FuIGJlIGFs bCBvciBwYXJ0IG9mIGEgc3RhbmRhcmQgbGF5b3V0IChmcm9tIGFuCj4gZW51bWVyYXRlZCBsaXN0 KSwgb3IgYSBjdXN0b20gbGF5b3V0Cj4gKHdoaWNoIGFsc28gYWxsb3dzIGEgdHJhY2sgdG8gY29u dHJpYnV0ZSBwYXJ0IG9mIGFuIG92ZXJhbGwgbGF5b3V0KS4KPiBBIHN0cmVhbSBtYXkgY29udGFp biBjaGFubmVscywgb2JqZWN0cywgbmVpdGhlciwgb3IgYm90aC4gQSBzdHJlYW0KPiB0aGF0IGlz IG5laXRoZXIgY2hhbm5lbCBub3Igb2JqZWN0Cj4gc3RydWN0dXJlZCBjYW4gaW1wbGljaXRseSBi ZSByZW5kZXJlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KPiAKPiAxMi4yLjQuMiAgU3ludGF4Cj4g Cj4gYWxpZ25lZCg4KSBjbGFzcyBDaGFubmVsTGF5b3V0IGV4dGVuZHMgRnVsbEJveCgnY2hubCcs IHZlcnNpb24sIGZsYWdzPTApIHsKPiAgICBpZiAodmVyc2lvbj09MCkgewo+ICAgICAgIHVuc2ln bmVkIGludCg4KSBzdHJlYW1fc3RydWN0dXJlOwo+ICAgICAgIGlmIChzdHJlYW1fc3RydWN0dXJl ICYgY2hhbm5lbFN0cnVjdHVyZWQpIHsKPiAgICAgICAgICB1bnNpZ25lZCBpbnQoOCkgZGVmaW5l ZExheW91dDsKPiAgICAgICAgICAgaWYgKGRlZmluZWRMYXlvdXQ9PTApIHsKPiAgICAgICAgICAg ICBmb3IgKGkgPSAxIDsgaSA8PSBsYXlvdXRfY2hhbm5lbF9jb3VudCA7IGkrKykgewo+ICAgICAg ICAgICAgICAgIC8vICBsYXlvdXRfY2hhbm5lbF9jb3VudCBjb21lcyBmcm9tIHRoZSBzYW1wbGUg ZW50cnkKPiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQoOCkgc3BlYWtlcl9wb3NpdGlvbjsK PiAgICAgICAgICAgICAgICBpZiAoc3BlYWtlcl9wb3NpdGlvbiA9PSAxMjYpIHsgICAvLyBleHBs aWNpdCBwb3NpdGlvbgo+ICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKDE2KSBhemltdXRo Owo+ICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKDgpICBlbGV2YXRpb247Cj4gICAgICAg ICAgICAgICAgfQo+ICAgICAgICAgICAgIH0KPiAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAg ICAgIHVuc2lnbmVkIGludCg2NCkgICBvbWl0dGVkQ2hhbm5lbHNNYXA7Cj4gICAgICAgICAgICAg ICAgICAgLy8gYSDigJgx4oCZIGJpdCBpbmRpY2F0ZXMg4oCYbm90IGluIHRoaXMgdHJhY2vigJkK PiAgICAgICAgICB9Cj4gICAgICAgfQo+ICAgICAgIGlmIChzdHJlYW1fc3RydWN0dXJlICYgb2Jq ZWN0U3RydWN0dXJlZCkgewo+ICAgICAgICAgIHVuc2lnbmVkIGludCg4KSBvYmplY3RfY291bnQ7 Cj4gICAgICAgfQo+ICAgIH0gZWxzZSB7Cj4gICAgICAgdW5zaWduZWQgaW50KDQpIHN0cmVhbV9z dHJ1Y3R1cmU7Cj4gICAgICAgdW5zaWduZWQgaW50KDQpIGZvcm1hdF9vcmRlcmluZzsKPiAgICAg ICB1bnNpZ25lZCBpbnQoOCkgYmFzZUNoYW5uZWxDb3VudDsKPiAgICAgICBpZiAoc3RyZWFtX3N0 cnVjdHVyZSAmIGNoYW5uZWxTdHJ1Y3R1cmVkKSB7Cj4gICAgICAgICAgdW5zaWduZWQgaW50KDgp IGRlZmluZWRMYXlvdXQ7Cj4gICAgICAgICAgaWYgKGRlZmluZWRMYXlvdXQ9PTApIHsKPiAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQoOCkgbGF5b3V0X2NoYW5uZWxfY291bnQ7Cj4gICAgICAgICAg ICAgZm9yIChpID0gMSA7IGkgPD0gbGF5b3V0X2NoYW5uZWxfY291bnQgOyBpKyspIHsKPiAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQoOCkgc3BlYWtlcl9wb3NpdGlvbjsKPiAgICAgICAgICAg ICAgICBpZiAoc3BlYWtlcl9wb3NpdGlvbiA9PSAxMjYpIHsgICAvLyBleHBsaWNpdCBwb3NpdGlv bgo+ICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKDE2KSBhemltdXRoOwo+ICAgICAgICAg ICAgICAgICAgIHNpZ25lZCBpbnQgKDgpICBlbGV2YXRpb247Cj4gICAgICAgICAgICAgICAgfQo+ ICAgICAgICAgICAgIH0KPiAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgIGludCg0KSBy ZXNlcnZlZCA9IDA7Cj4gICAgICAgICAgICAgdW5zaWduZWQgaW50KDMpIGNoYW5uZWxfb3JkZXJf ZGVmaW5pdGlvbjsKPiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQoMSkgb21pdHRlZF9jaGFubmVs c19wcmVzZW50Owo+ICAgICAgICAgICAgIGlmIChvbWl0dGVkX2NoYW5uZWxzX3ByZXNlbnQgPT0g MSkgewo+ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCg2NCkgICBvbWl0dGVkQ2hhbm5lbHNN YXA7Cj4gICAgICAgICAgICAgICAgICAgICAgLy8gYSDigJgx4oCZIGJpdCBpbmRpY2F0ZXMg4oCY bm90IGluIHRoaXMgdHJhY2vigJkKPiAgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+ICAgICAg IH0KPiAgICAgICBpZiAoc3RyZWFtX3N0cnVjdHVyZSAmIG9iamVjdFN0cnVjdHVyZWQpIHsKPiAg ICAgICAgICAgICAgICAgICAgICAvLyBvYmplY3RfY291bnQgaXMgZGVyaXZlZCBmcm9tIGJhc2VD aGFubmVsQ291bnQKPiAgICAgICB9Cj4gICAgfQo+IH0KPiAKPiAxMi4yLjQuMyAgU2VtYW50aWNz Cj4gCj4gdmVyc2lvbiBpcyBhbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSB2ZXJzaW9uIG9m IHRoaXMgYm94ICgwIG9yIDEpLgo+IFdoZW4gYXV0aG9yaW5nLCB2ZXJzaW9uIDEgc2hvdWxkIGJl Cj4gICAgICAgICBwcmVmZXJyZWQgb3ZlciB2ZXJzaW9uIDAuIFZlcnNpb24gMSBjb252ZXlzIHRo ZSBjaGFubmVsCj4gb3JkZXJpbmcsIHdoaWNoIGlzIG5vdCBhbHdheXMgdGhlIGNhc2UgZm9yCj4g ICAgICAgICB2ZXJzaW9uIDAuIFZlcnNpb24gMSBzaG91bGQgYmUgdXNlZCB0byBjb252ZXkgdGhl IGJhc2UgY2hhbm5lbAo+IGNvdW50IGZvciBEUkMuCj4gCj4gc3RyZWFtX3N0cnVjdHVyZSBpcyBh IGZpZWxkIG9mIGZsYWdzIHRoYXQgZGVmaW5lIHdoZXRoZXIgdGhlIHN0cmVhbQo+IGhhcyBjaGFu bmVsIG9yIG9iamVjdCBzdHJ1Y3R1cmUgKG9yCj4gICAgICAgICAgICAgICAgICBib3RoLCBvciBu ZWl0aGVyKTsgdGhlIGZvbGxvd2luZyBmbGFncyBhcmUgZGVmaW5lZCwKPiBhbGwgb3RoZXIgdmFs dWVzIGFyZSByZXNlcnZlZDoKPiAgICAxICB0aGUgc3RyZWFtIGNhcnJpZXMgY2hhbm5lbHMKPiAg ICAyICB0aGUgc3RyZWFtIGNhcnJpZXMgb2JqZWN0cwo+IAo+IGZvcm1hdF9vcmRlcmluZyBpbmRp Y2F0ZXMgdGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHN0cmVhbSBzdGFydGluZwo+IGZyb20g dGhlIGxvd2VzdCBjaGFubmVsIGluZGV4Cj4gICAgICAgICAgICAgICAgIChzZWUgVGFibGUpLiBF YWNoIGZvcm1hdCBzaGFsbCBvbmx5IHVzZSBjb250aWd1b3VzCj4gY2hhbm5lbCBpbmRpY2VzLgo+ ICAgIGZvcm1hdF9vcmRlcmluZyBPcmRlcgo+ICAgIDAgICAgICAgICAgICAgICB1bmtub3duCj4g ICAgMSAgICAgICAgICAgICAgIENoYW5uZWxzLCBwb3NzaWJseSBmb2xsb3dlZCBieSBPYmplY3Rz Cj4gICAgMiAgICAgICAgICAgICAgIE9iamVjdHMsIHBvc3NpYmx5IGZvbGxvd2VkIGJ5IENoYW5u ZWxzCj4gICAgUmVtYWluaW5nIHZhbHVlcyBhcmUgcmVzZXJ2ZWQKPiAKPiBkZWZpbmVkTGF5b3V0 IGlzIGEgQ2hhbm5lbENvbmZpZ3VyYXRpb24gZnJvbSBJU08vSUVDIDIzMDkxLTMuCj4gCj4gc3Bl YWtlcl9wb3NpdGlvbiBpcyBhbiBPdXRwdXRDaGFubmVsUG9zaXRpb24gZnJvbSBJU08vSUVDIDIz MDkxLTMuIElmCj4gYW4gZXhwbGljaXQgcG9zaXRpb24gaXMgdXNlZCwKPiAgICAgICAgICAgICAg ICAgIHRoZW4gdGhlIGF6aW11dGggYW5kIGVsZXZhdGlvbiBhcmUgYXMgZGVmaW5lZCBhcyBmb3IK PiBzcGVha2VycyBpbiBJU08vSUVDIDIzMDkxLTMuIFRoZSBjaGFubmVsCj4gICAgICAgICAgICAg ICAgICBvcmRlciBjb3JyZXNwb25kcyB0byB0aGUgb3JkZXIgb2Ygc3BlYWtlciBwb3NpdGlvbnMu Cj4gCj4gYXppbXV0aCBpcyBhIHNpZ25lZCB2YWx1ZSBpbiBkZWdyZWVzLCBhcyBkZWZpbmVkIGZv cgo+IExvdWRzcGVha2VyQXppbXV0aCBpbiBJU08vSUVDIDIzMDkxLTMuCj4gCj4gZWxldmF0aW9u IGlzIGEgc2lnbmVkIHZhbHVlLCBpbiBkZWdyZWVzLCBhcyBkZWZpbmVkIGZvcgo+IExvdWRzcGVh a2VyRWxldmF0aW9uIGluIElTTy9JRUMgMjMwOTEtMy4KPiAKPiBjaGFubmVsX29yZGVyX2RlZmlu aXRpb24gaW5kaWNhdGVzIHdoZXJlIHRoZSBvcmRlcmluZyBvZiB0aGUgYXVkaW8KPiBjaGFubmVs cyBmb3IgdGhlIGRlZmluZWRMYXlvdXQKPiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHNw ZWNpZmllZCAoc2VlIFRhYmxlKS4KPiAKPiAgICBjaGFubmVsX29yZGVyX2RlZmluaXRpb24gQ2hh bm5lbCBvcmRlciBzcGVjaWZpY2F0aW9uCj4gICAgMCAgICAgICAgICAgICAgICAgICAgICAgIGFz IGxpc3RlZCBmb3IgdGhlIENoYW5uZWxDb25maWd1cmF0aW9ucyBpbgo+IElTTy9JRUMgMjMwOTEt Mwo+ICAgIDEgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IG9yZGVyIG9mIGF1ZGlvIGNv ZGVjIHNwZWNpZmljYXRpb24KPiAgICAyICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbm5lbCBv cmRlcmluZyAjMiBvZiBhdWRpbyBjb2RlYyBzcGVjaWZpY2F0aW9uCj4gICAgMyAgICAgICAgICAg ICAgICAgICAgICAgIENoYW5uZWwgb3JkZXJpbmcgIzMgb2YgYXVkaW8gY29kZWMgc3BlY2lmaWNh dGlvbgo+ICAgIDQgICAgICAgICAgICAgICAgICAgICAgICBDaGFubmVsIG9yZGVyaW5nICM0IG9m IGF1ZGlvIGNvZGVjIHNwZWNpZmljYXRpb24KPiAgICBSZW1haW5pbmcgdmFsdWVzIGFyZSByZXNl cnZlZAo+IAo+IG9taXR0ZWRfY2hhbm5lbHNfcHJlc2VudCBpcyBhIGZsYWcgdGhhdCBpbmRpY2F0 ZXMgaWYgaXQgaXMgc2V0IHRvIDEKPiB0aGF0IHRoZSBvbWl0dGVkQ2hhbm5lbHNNYXAgaXMgcHJl c2VudC4KPiAKPiBvbWl0dGVkQ2hhbm5lbHNNYXAgaXMgYSBiaXQtbWFwIG9mIG9taXR0ZWQgY2hh bm5lbHM7IHRoZSBiaXRzIGluIHRoZQo+IGNoYW5uZWwgbWFwIGFyZSBudW1iZXJlZCBmcm9tCj4g ICAgICAgICAgICAgICAgICAgIGxlYXN0LXNpZ25pZmljYW50IHRvIG1vc3Qtc2lnbmlmaWNhbnQs IGFuZAo+IGNvcnJlc3BvbmQgaW4gdGhhdCBvcmRlcmluZyB3aXRoIHRoZSBvcmRlciBvZiB0aGUg Y2hhbm5lbHMKPiAgICAgICAgICAgICAgICAgICAgZm9yICB0aGUgIGNvbmZpZ3VyYXRpb24gIGFz ICBkb2N1bWVudGVkICBpbgo+IElTTy9JRUMgIDIzMDkxLTMgIENoYW5uZWxDb25maWd1cmF0aW9u LiAgMS1iaXRzICBpbiAgdGhlCj4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWwgbWFwIG1lYW4g dGhhdCBhIGNoYW5uZWwgaXMgYWJzZW50LiBBIHplcm8KPiB2YWx1ZSBvZiB0aGUgbWFwIHRoZXJl Zm9yZSBhbHdheXMgbWVhbnMgdGhhdAo+ICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gc3Rh bmRhcmQgbGF5b3V0IGlzIGZ1bGx5IHByZXNlbnQuIFRoZQo+IGRlZmF1bHQgdmFsdWUgaXMgMC4K PiAKPiBsYXlvdXRfY2hhbm5lbF9jb3VudCBpcyB0aGUgY291bnQgb2YgY2hhbm5lbHMgZm9yIHRo ZSBjaGFubmVsIGxheW91dC4KPiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwIGlmIHN0cmVhbV8KPiAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgaW5kaWNhdGVzIHRoYXQgbm8gY2hhbm5lbCBz dHJ1Y3R1cmUgaXMKPiBwcmVzZW50LiBPdGhlcndpc2UsIHRoZSB2YWx1ZSBpcyB0aGUgbnVtYmVy IG9mCj4gICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbHMgb2YgdGhlIGRlZmluZWQgbGF5b3V0 LCBpZiBwcmVzZW50LAo+IG90aGVyd2lzZSBpdCBpcyB0aGUgdmFsdWUgZnJvbSB0aGUgc2FtcGxl IGVudHJ5Lgo+IG9iamVjdF9jb3VudCBpcyB0aGUgY291bnQgb2YgY2hhbm5lbHMgdGhhdCBjb250 YWluIGF1ZGlvIG9iamVjdHMuIFRoZQo+IGRlZmF1bHQgdmFsdWUgaXMgMC4gRm9yIHZlcnNpb24K PiAgICAgICAgICAgICAgMSBhbmQgaWYgdGhlIG9iamVjdFN0cnVjdHVyZWQgZmxhZyBpcyBzZXQs IHRoZSB2YWx1ZSBpcwo+IGNvbXB1dGVkIGFzIGJhc2VDaGFubmVsQ291bnQgIG1pbnVzIHRoZQo+ ICAgICAgICAgICAgICBjaGFubmVsIGNvdW50IG9mIHRoZSBjaGFubmVsIHN0cnVjdHVyZS4KPiAK PiBiYXNlQ2hhbm5lbENvdW50IHJlcHJlc2VudHMgdGhlIGNvbWJpbmVkIGNoYW5uZWwgY291bnQg b2YgdGhlIGNoYW5uZWwKPiBsYXlvdXQgYW5kIHRoZSBvYmplY3QgY291bnQuCj4gICAgICAgICAg ICAgICAgICBUaGUgdmFsdWUgbXVzdCBtYXRjaCB0aGUgYmFzZSBjaGFubmVsIGNvdW50IGZvciBE UkMKPiAoc2VlIElTTy9JRUMgMjMwMDMtNCkuCj4gCj4gCj4gPiArCj4gPiArICAgIHN0cmVhbV9z dHJ1Y3R1cmUgPSBhdmlvX3I4KHBiKTsKPiA+ICsKPiA+ICsgICAgLy8gc3RyZWFtIGNhcnJpZXMg Y2hhbm5lbHMKPiA+ICsgICAgaWYgKHN0cmVhbV9zdHJ1Y3R1cmUgJiAxKSB7Cj4gPiArICAgICAg ICBpbnQgbGF5b3V0ID0gYXZpb19yOChwYik7Cj4gPiArCj4gPiArICAgICAgICBhdl9sb2coYy0+ ZmMsIEFWX0xPR19UUkFDRSwgIidjaG5sJyBsYXlvdXQgJWRcbiIsIGxheW91dCk7Cj4gPiArICAg ICAgICBpZiAoIWxheW91dCkgewo+ID4gKyAgICAgICAgICAgIHVpbnQ4X3QgcG9zaXRpb25zWzY0 XSA9IHt9Owo+ID4gKyAgICAgICAgICAgIGludCBlbmFibGUgPSAxOwo+ID4gKwo+ID4gKyAgICAg ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQubmJfY2hh bm5lbHM7IGkrKykgewo+ID4gKyAgICAgICAgICAgICAgICBpbnQgc3BlYWtlcl9wb3MgPSBhdmlv X3I4KHBiKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGMtPmZjLCBBVl9MT0df VFJBQ0UsICJzcGVha2VyX3Bvc2l0aW9uICVkXG4iLCBzcGVha2VyX3Bvcyk7Cj4gPiArICAgICAg ICAgICAgICAgIGlmIChzcGVha2VyX3BvcyA9PSAxMjYpIHsgLy8gZXhwbGljaXQgcG9zaXRpb24K PiA+ICsgICAgICAgICAgICAgICAgICAgIGludDE2X3QgYXppbXV0aCA9IGF2aW9fcmIxNihwYik7 Cj4gPiArICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgZWxldmF0aW9uID0gYXZpb19yOChwYik7 Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICBhdl9sb2coYy0+ZmMsIEFWX0xPR19UUkFD RSwgImF6aW11dGggJWQsIGVsZXZhdGlvbiAlZFxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICBhemltdXRoLCBlbGV2YXRpb24pOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgLy8g RG9uJ3Qgc3VwcG9ydCBleHBsaWNpdCBwb3NpdGlvbgo+ID4gKyAgICAgICAgICAgICAgICAgICAg ZW5hYmxlID0gMDsKPiA+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgRkZfQVJSQVlf RUxFTVMocG9zaXRpb25zKSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25zW2ld ID0gc3BlYWtlcl9wb3M7Cj4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAg ICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhbm5lbCBvdXQgb2Ygb3VyIHN1cHBvcnRlZCBy YW5nZQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZW5hYmxlID0gMDsKPiA+ICsgICAgICAgICAg ICAgICAgfQo+ID4gKyAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICBpZiAoZW5h YmxlKSB7Cj4gPiArICAgICAgICAgICAgICAgIHJldCA9IGZmX21vdl9nZXRfbGF5b3V0X2Zyb21f Y2hhbm5lbF9wb3NpdGlvbnMocG9zaXRpb25zLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IHN0LT5jb2RlY3Bhci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICZzdC0+Y29kZWNwYXItPmNoX2xheW91dCk7Cj4gPiArICAgICAgICAgICAgICAg IGlmIChyZXQpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhjLT5mYywgQVZfTE9H X1dBUk5JTkcsICJ1bnN1cHBvcnRlZCBzcGVha2VyIHBvc2l0aW9uc1xuIik7Cj4gPiArICAgICAg ICAgICAgICAgICAgICByZXQgPSAwOwo+ID4gKyAgICAgICAgICAgICAgICB9Cj4gPiArICAgICAg ICAgICAgfQo+ID4gKyAgICAgICAgfSBlbHNlIHsKPiA+ICsgICAgICAgICAgICB1aW50NjRfdCBv bWl0dGVkX2NoYW5uZWxfbWFwID0gYXZpb19yYjY0KHBiKTsKPiA+ICsKPiA+ICsgICAgICAgICAg ICBpZiAob21pdHRlZF9jaGFubmVsX21hcCkgewo+ID4gKyAgICAgICAgICAgICAgICBhdnByaXZf cmVxdWVzdF9zYW1wbGUoYy0+ZmMsICJvbWl0dGVkX2NoYW5uZWxfbWFwIDB4JSIgUFJJeDY0ICIg IT0gMCIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbWl0dGVk X2NoYW5uZWxfbWFwKTsKPiA+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hX RUxDT01FOwo+ID4gKyAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICBmZl9tb3ZfZ2V0X2No YW5uZWxfbGF5b3V0X2Zyb21fY29uZmlnKGxheW91dCwgJnN0LT5jb2RlY3Bhci0+Y2hfbGF5b3V0 KTsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICAvLyBzdHJlYW0gY2Fy cmllcyBvYmplY3RzCj4gPiArICAgIGlmIChzdHJlYW1fc3RydWN0dXJlICYgMikgewo+ID4gKyAg ICAgICAgaW50IG9ial9jb3VudCA9IGF2aW9fcjgocGIpOwo+ID4gKyAgICAgICAgYXZfbG9nKGMt PmZjLCBBVl9MT0dfVFJBQ0UsICInY2hubCcgd2l0aCBvYmplY3RfY291bnQgJWRcbiIsIG9ial9j b3VudCk7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgYXZpb19zZWVrKHBiLCBlbmQsIFNFRUtf U0VUKTsKPiA+ICsgICAgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBt b3ZfcmVhZF93ZmV4KE1PVkNvbnRleHQgKmMsIEFWSU9Db250ZXh0ICpwYiwgTU9WQXRvbSBhdG9t KQo+ID4gIHsKPiA+ICAgICAgQVZTdHJlYW0gKnN0Owo+ID4gQEAgLTc3ODQsNyArNzg2MCw4IEBA IHN0YXRpYyBjb25zdCBNT1ZQYXJzZVRhYmxlRW50cnkgbW92X2RlZmF1bHRfcGFyc2VfdGFibGVb XSA9IHsKPiA+ICB7IE1LVEFHKCd3JywnaScsJ2QnLCdlJyksIG1vdl9yZWFkX3dpZGUgfSwgLyog cGxhY2UgaG9sZGVyICovCj4gPiAgeyBNS1RBRygndycsJ2YnLCdlJywneCcpLCBtb3ZfcmVhZF93 ZmV4IH0sCj4gPiAgeyBNS1RBRygnYycsJ20nLCdvJywndicpLCBtb3ZfcmVhZF9jbW92IH0sCj4g PiAteyBNS1RBRygnYycsJ2gnLCdhJywnbicpLCBtb3ZfcmVhZF9jaGFuIH0sIC8qIGNoYW5uZWwg bGF5b3V0ICovCj4gPiAreyBNS1RBRygnYycsJ2gnLCdhJywnbicpLCBtb3ZfcmVhZF9jaGFuIH0s IC8qIGNoYW5uZWwgbGF5b3V0IGZyb20gcXVpY2t0aW1lICovCj4gPiAreyBNS1RBRygnYycsJ2gn LCduJywnbCcpLCBtb3ZfcmVhZF9jaG5sIH0sIC8qIGNoYW5uZWwgbGF5b3V0IGZyb20gSVNPLTE0 NDk2LTEyICovCj4gPiAgeyBNS1RBRygnZCcsJ3YnLCdjJywnMScpLCBtb3ZfcmVhZF9kdmMxIH0s Cj4gPiAgeyBNS1RBRygncycsJ2cnLCdwJywnZCcpLCBtb3ZfcmVhZF9zZ3BkIH0sCj4gPiAgeyBN S1RBRygncycsJ2InLCdnJywncCcpLCBtb3ZfcmVhZF9zYmdwIH0sCj4gPiBkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvbW92X2NoYW4uYyBiL2xpYmF2Zm9ybWF0L21vdl9jaGFuLmMKPiA+IGluZGV4 IGY2NmJmMGRmN2YuLjEwZWJjZGMwOGYgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmZvcm1hdC9tb3Zf Y2hhbi5jCj4gPiArKysgYi9saWJhdmZvcm1hdC9tb3ZfY2hhbi5jCj4gPiBAQCAtNTUxLDMgKzU1 MSwyNjggQEAgaW50IGZmX21vdl9yZWFkX2NoYW4oQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29u dGV4dCAqcGIsIEFWU3RyZWFtICpzdCwKPiA+IAo+ID4gICAgICByZXR1cm4gMDsKPiA+ICB9Cj4g PiArCj4gPiArLyogSVNPL0lFQyAyMzAwMS04LCA4LjIgKi8KPiA+ICtzdGF0aWMgY29uc3QgQVZD aGFubmVsTGF5b3V0IGlzb19jaGFubmVsX2NvbmZpZ3VyYXRpb25bXSA9IHsKPiA+ICsgICAgLy8g MDogYW55IHNldHVwCj4gPiArICAgIHt9LAo+ID4gKwo+IAo+IEkgdGhpbmsgdGhlIGJldHRlciBu YW1pbmcgZm9yIHRoaXMgd291bGQgYmUgQ0lDUCBjaGFubmVsIGNvbmZpZ3VyYXRpb24KPiBzaW5j ZSB0aGUgc3BlY2lmaWNhdGlvbiBpcyBjYWxsZWQgImNvbW1vbiBpbmRlcGVuZGVudCBjb2Rpbmcg cG9pbnRzIgo+IChmb3IgdmlkZW8gdGhpcyBpcyBzaGFyZWQgd2l0aCBJVFUtVCBILjI3MyB3aGlj aCBpcyBmcmVlKS4KPiAKPiBBbHNvIGRvIG5vdGUgdGhhdCBhIHdob2xlIGJ1bmNoIG9mIHRoZXNl IGFyZSBub3QgaW4gdGhlIGNoYW5uZWwgb3JkZXIKPiB0aGF0IEZGbXBlZyB3YW50cyBhZnRlciBz dGVyZW8gOjwKPiAKPiBUaGFua2Z1bGx5IHdpdGggbWFudWFsIG1hcHBpbmcgRkZtcGVnIG5hdGl2 ZSBjaGFubmVsIGxheW91dHMnIGNoYW5uZWwKPiBvcmRlciBzaG91bGQgYmUgd3JpdGFibGUgYW5k IHJlYWRhYmxlLgo+IAo+IFRoZSBjaGFubmVsIG9yZGVycyBmb3IgdmFyaW91cyBDSUNQIGxheW91 dHMgY2FuIGJlIGZvdW5kIGJvdGggaW4gdGhlCj4gcmVmZXJlbmNlZCBzcGVjaWZpY2F0aW9ucywg YXMgd2VsbCBhcyBpbiB0aGUgY29tbWVudHMgZnJvbSBBcHBsZSdzCj4gaGVhZGVycyBmb3IgZXhh bXBsZQo+IAo+IC8vIElTTy9JRUMgMjMwOTEtMywgY2hhbm5lbHMgdy9vcmRlcmluZ3MKPiBrQXVk aW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfMSAgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hh bm5lbExheW91dFRhZ19NUEVHXzFfMCwgICAgICAvLy88IEMKPiBrQXVkaW9DaGFubmVsTGF5b3V0 VGFnX0NJQ1BfMiAgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19N UEVHXzJfMCwgICAgICAvLy88IEwgUgo+IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF8zICAg ICAgICAgICAgICAgICAgID0KPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX01QRUdfM18wX0EsICAg IC8vLzwgTCBSIEMKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfNCAgICAgICAgICAgICAg ICAgICA9Cj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19NUEVHXzRfMF9BLCAgICAvLy88IEwgUiBD IENzCj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzUgICAgICAgICAgICAgICAgICAgPQo+ IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfTVBFR181XzBfQSwgICAgLy8vPCBMIFIgQyBMcyBScwo+ IGtBdWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF82ICAgICAgICAgICAgICAgICAgID0KPiBrQXVk aW9DaGFubmVsTGF5b3V0VGFnX01QRUdfNV8xX0EsICAgIC8vLzwgTCBSIEMgTEZFIExzIFJzCj4g a0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzcgICAgICAgICAgICAgICAgICAgPQo+IGtBdWRp b0NoYW5uZWxMYXlvdXRUYWdfTVBFR183XzFfQiwgICAgLy8vPCBMIFIgQyBMRkUgTHMgUnMgTGMg UmMKPiAKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfOSAgICAgICAgICAgICAgICAgICA9 Cj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19JVFVfMl8xLCAgICAgICAvLy88IEwgUiBDcwo+IGtB dWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF8xMCAgICAgICAgICAgICAgICAgID0KPiBrQXVkaW9D aGFubmVsTGF5b3V0VGFnX0lUVV8yXzIsICAgICAgIC8vLzwgTCBSIExzIFJzCj4ga0F1ZGlvQ2hh bm5lbExheW91dFRhZ19DSUNQXzExICAgICAgICAgICAgICAgICAgPQo+IGtBdWRpb0NoYW5uZWxM YXlvdXRUYWdfTVBFR182XzFfQSwgICAgLy8vPCBMIFIgQyBMRkUgTHMgUnMgQ3MKPiBrQXVkaW9D aGFubmVsTGF5b3V0VGFnX0NJQ1BfMTIgICAgICAgICAgICAgICAgICA9Cj4ga0F1ZGlvQ2hhbm5l bExheW91dFRhZ19NUEVHXzdfMV9DLCAgICAvLy88IEwgUiBDIExGRSBMcyBScyBSbHMgUnJzCj4g a0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzEzICAgICAgICAgICAgICAgICAgPSAoMjA0VTw8 MTYpIHwgMjQsCj4gICAgICAgICAgICAgICAgICAgIC8vLzwgTGMgUmMgQyBMRkUyIFJscyBScnMg TCBSIENzIExGRTMgTHNzIFJzcyBWaGwKPiBWaHIgVmhjIFRzIEx0ciBSdHIgTHRtIFJ0bSBDdHIg Q2IgTGIgUmIKPiAKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfMTQgICAgICAgICAgICAg ICAgICA9ICgyMDVVPDwxNikgfCA4LAo+ICAgICAgICAgICAgICAgIC8vLzwgTCBSIEMgTEZFIExz IFJzIFZobCBWaHIKPiBrQXVkaW9DaGFubmVsTGF5b3V0VGFnX0NJQ1BfMTUgICAgICAgICAgICAg ICAgICA9ICgyMDZVPDwxNikgfCAxMiwKPiAgICAgICAgICAgICAgICAgICAgLy8vPCBMIFIgQyBM RkUyIFJscyBScnMgTEZFMyBMc3MgUnNzIFZobCBWaHIgQ3RyCj4gCj4ga0F1ZGlvQ2hhbm5lbExh eW91dFRhZ19DSUNQXzE2ICAgICAgICAgICAgICAgICAgPSAoMjA3VTw8MTYpIHwgMTAsCj4gICAg ICAgICAgICAgICAgICAgIC8vLzwgTCBSIEMgTEZFIExzIFJzIFZobCBWaHIgTHRzIFJ0cwo+IGtB dWRpb0NoYW5uZWxMYXlvdXRUYWdfQ0lDUF8xNyAgICAgICAgICAgICAgICAgID0gKDIwOFU8PDE2 KSB8IDEyLAo+ICAgICAgICAgICAgICAgICAgICAvLy88IEwgUiBDIExGRSBMcyBScyBWaGwgVmhy IFZoYyBMdHMgUnRzIFRzCj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzE4ICAgICAgICAg ICAgICAgICAgPSAoMjA5VTw8MTYpIHwgMTQsCj4gICAgICAgICAgICAgICAgICAgIC8vLzwgTCBS IEMgTEZFIExzIFJzIExicyBSYnMgVmhsIFZociBWaGMgTHRzIFJ0cyBUcwo+IAo+IGtBdWRpb0No YW5uZWxMYXlvdXRUYWdfQ0lDUF8xOSAgICAgICAgICAgICAgICAgID0gKDIxMFU8PDE2KSB8IDEy LAo+ICAgICAgICAgICAgICAgICAgICAvLy88IEwgUiBDIExGRSBSbHMgUnJzIExzcyBSc3MgVmhs IFZociBMdHIgUnRyCj4ga0F1ZGlvQ2hhbm5lbExheW91dFRhZ19DSUNQXzIwICAgICAgICAgICAg ICAgICAgPSAoMjExVTw8MTYpIHwgMTQsCj4gICAgICAgICAgICAgICAgICAgIC8vLzwgTCBSIEMg TEZFIFJscyBScnMgTHNzIFJzcyBWaGwgVmhyIEx0ciBSdHIgTGVvcwo+IFJlb3MKPiAKPiBCZXN0 IHJlZ2FyZHMsCj4gSmFuCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK PiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=