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 B655E48428 for ; Thu, 2 May 2024 13:27:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6E69E68D7E4; Thu, 2 May 2024 16:27:41 +0300 (EEST) Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 52D9668D6CA for ; Thu, 2 May 2024 16:27:34 +0300 (EEST) Received: from 3.4.3.5.7.1.0.f.c.9.9.9.9.3.2.a.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:a239:999c:f017:5343] helo=andrews-2024-laptop.sayers) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s2WTF-009YhT-1F for ffmpeg-devel@ffmpeg.org; Thu, 02 May 2024 14:27:33 +0100 Date: Thu, 2 May 2024 14:27:26 +0100 From: Andrew Sayers To: FFmpeg development discussions and patches Message-ID: References: <20240422155836.385333-1-ffmpeg-devel@pileofstuff.org> <20240422155836.385333-2-ffmpeg-devel@pileofstuff.org> <20240429092407.2267590-1-ffmpeg-devel@pileofstuff.org> <20240429092407.2267590-3-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH v4 3/4] all: Link to "context" from all contexts with documentation 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: T24gVGh1LCBNYXkgMDIsIDIwMjQgYXQgMDk6MDA6NDJQTSArMDgwMCwgWmhhbyBaaGlsaSB3cm90 ZToKPiAKPiAKPiA+IE9uIE1heSAyLCAyMDI0LCBhdCAxOTowMSwgTHlubmUgPGRldkBseW5uZS5l ZT4gd3JvdGU6Cj4gPiAKPiA+IEFwciAyOSwgMjAyNCwgMTE6MjQgYnkgZmZtcGVnLWRldmVsQHBp bGVvZnN0dWZmLm9yZzoKPiA+IAo+ID4+IFNvbWUgaGVhZGluZ3MgbmVlZGVkIHRvIGJlIHJld3Jp dHRlbiB0byBhY2NvbW9kYXRlIHRoZSB0ZXh0LAo+ID4+IChob3BlZnVsbHkpIHdpdGhvdXQgY2hh bmdpbmcgdGhlIG1lYW5pbmcuCj4gPj4gLS0tCj4gPj4gbGliYXZjb2RlYy9hYWMvYWFjZGVjLmgg ICAgICAgICAgICB8ICAyICstCj4gPj4gbGliYXZjb2RlYy9hYWNlbmMuaCAgICAgICAgICAgICAg ICB8ICAyICstCj4gPj4gbGliYXZjb2RlYy9hYzNlbmMuaCAgICAgICAgICAgICAgICB8ICAyICst Cj4gPj4gbGliYXZjb2RlYy9hbWZlbmMuaCAgICAgICAgICAgICAgICB8ICAyICstCj4gPj4gbGli YXZjb2RlYy9hdHJhYy5oICAgICAgICAgICAgICAgICB8ICAyICstCj4gPj4gbGliYXZjb2RlYy9h dmNvZGVjLmggICAgICAgICAgICAgICB8ICAzICsrLQo+ID4+IGxpYmF2Y29kZWMvYnNmLmggICAg ICAgICAgICAgICAgICAgfCAgMiArLQo+ID4+IGxpYmF2Y29kZWMvY2JzLmggICAgICAgICAgICAg ICAgICAgfCAgMiArLQo+ID4+IGxpYmF2Y29kZWMvZDNkMTF2YS5oICAgICAgICAgICAgICAgfCAg MyArLS0KPiA+PiBsaWJhdmNvZGVjL2gyNjRkc3AuaCAgICAgICAgICAgICAgIHwgIDIgKy0KPiA+ PiBsaWJhdmNvZGVjL2gyNjRwcmVkLmggICAgICAgICAgICAgIHwgIDIgKy0KPiA+PiBsaWJhdmNv ZGVjL21lZGlhY29kZWMuaCAgICAgICAgICAgIHwgIDIgKy0KPiA+PiBsaWJhdmNvZGVjL21wZWdh dWRpb2RlY190ZW1wbGF0ZS5jIHwgIDIgKy0KPiA+PiBsaWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUu YyAgICAgICAgIHwgIDQgKystLQo+ID4+IGxpYmF2Y29kZWMvcXN2LmggICAgICAgICAgICAgICAg ICAgfCAgNiArKysrLS0KPiA+PiBsaWJhdmNvZGVjL3Nici5oICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KPiA+PiBsaWJhdmNvZGVjL3NtYWNrZXIuYyAgICAgICAgICAgICAgIHwgIDIgKy0KPiA+ PiBsaWJhdmNvZGVjL3ZkcGF1LmggICAgICAgICAgICAgICAgIHwgIDMgKystCj4gPj4gbGliYXZj b2RlYy92aWRlb3Rvb2xib3guaCAgICAgICAgICB8ICA1ICsrKy0tCj4gPj4gbGliYXZmaWx0ZXIv YXZmaWx0ZXIuaCAgICAgICAgICAgICB8ICAyICstCj4gPj4gbGliYXZmb3JtYXQvYXZmb3JtYXQu aCAgICAgICAgICAgICB8ICAzICsrLQo+ID4+IGxpYmF2Zm9ybWF0L2F2aW8uaCAgICAgICAgICAg ICAgICAgfCAgMyArKy0KPiA+PiBsaWJhdnV0aWwvYXVkaW9fZmlmby5oICAgICAgICAgICAgIHwg IDIgKy0KPiA+PiBsaWJhdnV0aWwvaHdjb250ZXh0LmggICAgICAgICAgICAgIHwgMjEgKysrKysr KysrKysrLS0tLS0tLS0tCj4gPj4gbGliYXZ1dGlsL2h3Y29udGV4dF9jdWRhLmggICAgICAgICB8 ICAyICstCj4gPj4gbGliYXZ1dGlsL2h3Y29udGV4dF9kM2QxMXZhLmggICAgICB8ICA0ICsrLS0K PiA+PiBsaWJhdnV0aWwvaHdjb250ZXh0X2QzZDEydmEuaCAgICAgIHwgIDYgKysrLS0tCj4gPj4g bGliYXZ1dGlsL2h3Y29udGV4dF9kcm0uaCAgICAgICAgICB8ICAyICstCj4gPj4gbGliYXZ1dGls L2h3Y29udGV4dF9keHZhMi5oICAgICAgICB8ICA0ICsrLS0KPiA+PiBsaWJhdnV0aWwvaHdjb250 ZXh0X21lZGlhY29kZWMuaCAgIHwgIDIgKy0KPiA+PiBsaWJhdnV0aWwvaHdjb250ZXh0X29wZW5j bC5oICAgICAgIHwgIDQgKystLQo+ID4+IGxpYmF2dXRpbC9od2NvbnRleHRfcXN2LmggICAgICAg ICAgfCAgNCArKy0tCj4gPj4gbGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5oICAgICAgICB8ICA2 ICsrKy0tLQo+ID4+IGxpYmF2dXRpbC9od2NvbnRleHRfdmRwYXUuaCAgICAgICAgfCAgMiArLQo+ ID4+IGxpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmggICAgICAgfCAgNCArKy0tCj4gPj4gbGli YXZ1dGlsL2xmZy5oICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gPj4gMzYgZmlsZXMgY2hh bmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCj4gPj4gCj4gPj4gZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvYWFjL2FhY2RlYy5oIGIvbGliYXZjb2RlYy9hYWMvYWFjZGVjLmgK PiA+PiBpbmRleCA0Y2Y3NjRlMmU5Li43MWQ2MTgxM2Y0IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2 Y29kZWMvYWFjL2FhY2RlYy5oCj4gPj4gKysrIGIvbGliYXZjb2RlYy9hYWMvYWFjZGVjLmgKPiA+ PiBAQCAtMjQ4LDcgKzI0OCw3IEBAIHR5cGVkZWYgc3RydWN0IEFBQ0RlY0RTUCB7Cj4gPj4gfSBB QUNEZWNEU1A7Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIG1haW4gQUFDIGRlY29kaW5nIGNvbnRl eHQKPiA+PiArICogbWFpbiBBQUMgZGVjb2RpbmcgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRl eHQiCj4gPj4gKi8KPiA+PiBzdHJ1Y3QgQUFDRGVjQ29udGV4dCB7Cj4gPj4gY29uc3Qgc3RydWN0 IEFWQ2xhc3MgICpjbGFzczsKPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYWNlbmMuaCBi L2xpYmF2Y29kZWMvYWFjZW5jLmgKPiA+PiBpbmRleCBkMDc5NjA2MjBlLi4xYTY0NWY0NzE5IDEw MDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvYWFjZW5jLmgKPiA+PiArKysgYi9saWJhdmNvZGVj L2FhY2VuYy5oCj4gPj4gQEAgLTIwNyw3ICsyMDcsNyBAQCB0eXBlZGVmIHN0cnVjdCBBQUNQQ0VJ bmZvIHsKPiA+PiB9IEFBQ1BDRUluZm87Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIEFBQyBlbmNv ZGVyIGNvbnRleHQKPiA+PiArICogQUFDIGVuY29kZXIgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNv bnRleHQiCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBBQUNFbmNDb250ZXh0IHsKPiA+PiBB VkNsYXNzICphdl9jbGFzczsKPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYzNlbmMuaCBi L2xpYmF2Y29kZWMvYWMzZW5jLmgKPiA+PiBpbmRleCAzMDgxMjYxN2NjLi5jNzI1MDA3MDc3IDEw MDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvYWMzZW5jLmgKPiA+PiArKysgYi9saWJhdmNvZGVj L2FjM2VuYy5oCj4gPj4gQEAgLTE1Miw3ICsxNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBBQzNCbG9j ayB7Cj4gPj4gfSBBQzNCbG9jazsKPiA+PiAKPiA+PiAvKioKPiA+PiAtICogQUMtMyBlbmNvZGVy IHByaXZhdGUgY29udGV4dC4KPiA+PiArICogQUMtMyBlbmNvZGVyIHByaXZhdGUgQHJlZiBtZF9k b2NfMmNvbnRleHQgImNvbnRleHQiCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBBQzNFbmNv ZGVDb250ZXh0IHsKPiA+PiBBVkNsYXNzICphdl9jbGFzczsgICAgICAgICAgICAgICAgICAgICAg Ly8vPCBBVkNsYXNzIHVzZWQgZm9yIEFWT3B0aW9uCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvYW1mZW5jLmggYi9saWJhdmNvZGVjL2FtZmVuYy5oCj4gPj4gaW5kZXggMmRiZDM3OGVmOC4u ZjE0MmVkZTYzYSAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdmNvZGVjL2FtZmVuYy5oCj4gPj4gKysr IGIvbGliYXZjb2RlYy9hbWZlbmMuaAo+ID4+IEBAIC00Myw3ICs0Myw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFtZlRyYWNlV3JpdGVyIHsKPiA+PiB9IEFtZlRyYWNlV3JpdGVyOwo+ID4+IAo+ID4+IC8q Kgo+ID4+IC0qIEFNRiBlbmNvZGVyIGNvbnRleHQKPiA+PiArKiBBTUYgZW5jb2RlciBAcmVmIG1k X2RvY18yY29udGV4dCAiY29udGV4dCIKPiA+PiAqLwo+ID4+IAo+ID4+IHR5cGVkZWYgc3RydWN0 IEFtZkNvbnRleHQgewo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F0cmFjLmggYi9saWJh dmNvZGVjL2F0cmFjLmgKPiA+PiBpbmRleCAwNTIwOGJiZWU2Li4xNTI3ZTM3NmE5IDEwMDY0NAo+ ID4+IC0tLSBhL2xpYmF2Y29kZWMvYXRyYWMuaAo+ID4+ICsrKyBiL2xpYmF2Y29kZWMvYXRyYWMu aAo+ID4+IEBAIC0zOSw3ICszOSw3IEBAIHR5cGVkZWYgc3RydWN0IEF0cmFjR2FpbkluZm8gewo+ ID4+IH0gQXRyYWNHYWluSW5mbzsKPiA+PiAKPiA+PiAvKioKPiA+PiAtICogIEdhaW4gY29tcGVu c2F0aW9uIGNvbnRleHQgc3RydWN0dXJlLgo+ID4+ICsgKiAgR2FpbiBjb21wZW5zYXRpb24gQHJl ZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBB dHJhY0dDQ29udGV4dCB7Cj4gPj4gZmxvYXQgICBnYWluX3RhYjFbMTZdOyAgLy8vPCBnYWluIGNv bXBlbnNhdGlvbiBsZXZlbCB0YWJsZQo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2Y29k ZWMuaCBiL2xpYmF2Y29kZWMvYXZjb2RlYy5oCj4gPj4gaW5kZXggOTY4MDA5YTE5Mi4uOTE4MGZl ZGNhNyAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdmNvZGVjL2F2Y29kZWMuaAo+ID4+ICsrKyBiL2xp YmF2Y29kZWMvYXZjb2RlYy5oCj4gPj4gQEAgLTQzMCw3ICs0MzAsOCBAQCB0eXBlZGVmIHN0cnVj dCBSY092ZXJyaWRlewo+ID4+ICNkZWZpbmUgQVZfR0VUX0VOQ09ERV9CVUZGRVJfRkxBR19SRUYg KDEgPDwgMCkKPiA+PiAKPiA+PiAvKioKPiA+PiAtICogbWFpbiBleHRlcm5hbCBBUEkgc3RydWN0 dXJlLgo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIgZm9yIGFuIGVuY29k ZSBvciBkZWNvZGUgc2Vzc2lvbgo+ID4+ICsgKgo+ID4+ICogTmV3IGZpZWxkcyBjYW4gYmUgYWRk ZWQgdG8gdGhlIGVuZCB3aXRoIG1pbm9yIHZlcnNpb24gYnVtcHMuCj4gPj4gKiBSZW1vdmFsLCBy ZW9yZGVyaW5nIGFuZCBjaGFuZ2VzIHRvIGV4aXN0aW5nIGZpZWxkcyByZXF1aXJlIGEgbWFqb3IK PiA+PiAqIHZlcnNpb24gYnVtcC4KPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9ic2YuaCBi L2xpYmF2Y29kZWMvYnNmLmgKPiA+PiBpbmRleCBhMDljNjlmMjQyLi5iZjc5YWZhN2NjIDEwMDY0 NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvYnNmLmgKPiA+PiArKysgYi9saWJhdmNvZGVjL2JzZi5o Cj4gPj4gQEAgLTU2LDcgKzU2LDcgQEAKPiA+PiAqLwo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBU aGUgYml0c3RyZWFtIGZpbHRlciBzdGF0ZS4KPiA+PiArICogQml0c3RyZWFtIGZpbHRlciBAcmVm IG1kX2RvY18yY29udGV4dCAiY29udGV4dCIKPiA+PiAqCj4gPj4gKiBUaGlzIHN0cnVjdCBtdXN0 IGJlIGFsbG9jYXRlZCB3aXRoIGF2X2JzZl9hbGxvYygpIGFuZCBmcmVlZCB3aXRoCj4gPj4gKiBh dl9ic2ZfZnJlZSgpLgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Nicy5oIGIvbGliYXZj b2RlYy9jYnMuaAo+ID4+IGluZGV4IGQ0NzliMWFjMmQuLjBmZjY0ZDJmZWYgMTAwNjQ0Cj4gPj4g LS0tIGEvbGliYXZjb2RlYy9jYnMuaAo+ID4+ICsrKyBiL2xpYmF2Y29kZWMvY2JzLmgKPiA+PiBA QCAtMjE0LDcgKzIxNCw3IEBAIHR5cGVkZWYgdm9pZCAoKkNCU1RyYWNlV3JpdGVDYWxsYmFjayko dm9pZCAqdHJhY2VfY29udGV4dCwKPiA+PiBpbnQ2NF90IHZhbHVlKTsKPiA+PiAKPiA+PiAvKioK PiA+PiAtICogQ29udGV4dCBzdHJ1Y3R1cmUgZm9yIGNvZGVkIGJpdHN0cmVhbSBvcGVyYXRpb25z Lgo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIgc3RydWN0dXJlIGZvciBj b2RlZCBiaXRzdHJlYW0gb3BlcmF0aW9ucy4KPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IENv ZGVkQml0c3RyZWFtQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvZDNkMTF2YS5oIGIvbGliYXZjb2RlYy9kM2QxMXZhLmgKPiA+PiBpbmRleCAyN2Y0MGU1NTE5 Li5lYzBjNDcyYWI5IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvZDNkMTF2YS5oCj4gPj4g KysrIGIvbGliYXZjb2RlYy9kM2QxMXZhLmgKPiA+PiBAQCAtNDYsOCArNDYsNyBAQAo+ID4+ICov Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIFRoaXMgc3RydWN0dXJlIGlzIHVzZWQgdG8gcHJvdmlk ZXMgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucyBhbmQgZGF0YQo+ID4+IC0gKiB0byB0aGUg RGlyZWN0M0QxMSBGRm1wZWcgSFdBY2NlbCBpbXBsZW1lbnRhdGlvbi4KPiA+PiArICogQHJlZiBt ZF9kb2NfMmNvbnRleHQgIkNvbnRleHQiIGZvciB0aGUgRGlyZWN0M0QxMSBGRm1wZWcgSFdBY2Nl bCBpbXBsZW1lbnRhdGlvbgo+ID4+ICoKPiA+PiAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IG1ha2Ug aXQgYXZhaWxhYmxlIGFzIEFWQ29kZWNDb250ZXh0Lmh3YWNjZWxfY29udGV4dC4KPiA+PiAqCj4g Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2NGRzcC5oIGIvbGliYXZjb2RlYy9oMjY0ZHNw LmgKPiA+PiBpbmRleCBlMDg4MGM0ZDg4Li4yNzI1NmM1NjA1IDEwMDY0NAo+ID4+IC0tLSBhL2xp YmF2Y29kZWMvaDI2NGRzcC5oCj4gPj4gKysrIGIvbGliYXZjb2RlYy9oMjY0ZHNwLmgKPiA+PiBA QCAtMzcsNyArMzcsNyBAQCB0eXBlZGVmIHZvaWQgKCpoMjY0X2Jpd2VpZ2h0X2Z1bmMpKHVpbnQ4 X3QgKmRzdCwgdWludDhfdCAqc3JjLAo+ID4+IGludCB3ZWlnaHRkLCBpbnQgd2VpZ2h0cywgaW50 IG9mZnNldCk7Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIENvbnRleHQgZm9yIHN0b3JpbmcgSC4y NjQgRFNQIGZ1bmN0aW9ucwo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIg Zm9yIHN0b3JpbmcgSC4yNjQgRFNQIGZ1bmN0aW9ucwo+ID4+ICovCj4gPj4gdHlwZWRlZiBzdHJ1 Y3QgSDI2NERTUENvbnRleHQgewo+ID4+IC8qIHdlaWdodGVkIE1DICovCj4gPj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvaDI2NHByZWQuaCBiL2xpYmF2Y29kZWMvaDI2NHByZWQuaAo+ID4+IGlu ZGV4IGNiMDA4NTQ4ZmMuLjJiMDc2Zjg4NDYgMTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZjb2RlYy9o MjY0cHJlZC5oCj4gPj4gKysrIGIvbGliYXZjb2RlYy9oMjY0cHJlZC5oCj4gPj4gQEAgLTg5LDcg Kzg5LDcgQEAKPiA+PiAjZGVmaW5lIFBBUlRfTk9UX0FWQUlMQUJMRSAtMgo+ID4+IAo+ID4+IC8q Kgo+ID4+IC0gKiBDb250ZXh0IGZvciBzdG9yaW5nIEguMjY0IHByZWRpY3Rpb24gZnVuY3Rpb25z Cj4gPj4gKyAqIEByZWYgbWRfZG9jXzJjb250ZXh0ICJDb250ZXh0IiBmb3Igc3RvcmluZyBILjI2 NCBwcmVkaWN0aW9uIGZ1bmN0aW9ucwo+ID4+ICovCj4gPj4gdHlwZWRlZiBzdHJ1Y3QgSDI2NFBy ZWRDb250ZXh0IHsKPiA+PiB2b2lkKCpwcmVkNHg0WzkgKyAzICsgM10pKHVpbnQ4X3QgKnNyYywg Y29uc3QgdWludDhfdCAqdG9wcmlnaHQsCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbWVk aWFjb2RlYy5oIGIvbGliYXZjb2RlYy9tZWRpYWNvZGVjLmgKPiA+PiBpbmRleCA0ZTliNTZhNjE4 Li45OTY3YTdjZmIzIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvbWVkaWFjb2RlYy5oCj4g Pj4gKysrIGIvbGliYXZjb2RlYy9tZWRpYWNvZGVjLmgKPiA+PiBAQCAtMjYsNyArMjYsNyBAQAo+ ID4+ICNpbmNsdWRlICJsaWJhdmNvZGVjL2F2Y29kZWMuaCIKPiA+PiAKPiA+PiAvKioKPiA+PiAt ICogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMgYSByZWZlcmVuY2UgdG8gYSBhbmRyb2lkL3ZpZXcvU3Vy ZmFjZSBvYmplY3QgdGhhdCB3aWxsCj4gPj4gKyAqIEByZWYgbWRfZG9jXzJjb250ZXh0ICJDb250 ZXh0IiBmb3IgdGhlIGFuZHJvaWQvdmlldy9TdXJmYWNlIG9iamVjdCB0aGF0IHdpbGwKPiA+PiAq IGJlIHVzZWQgYXMgb3V0cHV0IGJ5IHRoZSBkZWNvZGVyLgo+ID4+ICoKPiA+PiAqLwo+ID4+IGRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWdhdWRpb2RlY190ZW1wbGF0ZS5jIGIvbGliYXZjb2Rl Yy9tcGVnYXVkaW9kZWNfdGVtcGxhdGUuYwo+ID4+IGluZGV4IGM3M2IxZTAwNTQuLjE1ZDYzMjE1 ZDEgMTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZjb2RlYy9tcGVnYXVkaW9kZWNfdGVtcGxhdGUuYwo+ ID4+ICsrKyBiL2xpYmF2Y29kZWMvbXBlZ2F1ZGlvZGVjX3RlbXBsYXRlLmMKPiA+PiBAQCAtMTY5 MSw3ICsxNjkxLDcgQEAgc3RhdGljIGludCBkZWNvZGVfZnJhbWVfYWR1KEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCj4gPj4gI2lmIENPTkZJR19NUDNPTjRfREVDT0RFUiB8 fCBDT05GSUdfTVAzT040RkxPQVRfREVDT0RFUgo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBDb250 ZXh0IGZvciBNUDNPbjQgZGVjb2Rlcgo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29u dGV4dCIgZm9yIE1QM09uNCBkZWNvZGVyCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBNUDNP bjREZWNvZGVDb250ZXh0IHsKPiA+PiBpbnQgZnJhbWVzOyAgICAgICAgICAgICAgICAgICAgIC8v LzwgbnVtYmVyIG9mIG1wMyBmcmFtZXMgcGVyIGJsb2NrIChudW1iZXIgb2YgbXAzIGRlY29kZXIg aW5zdGFuY2VzKQo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYyBi L2xpYmF2Y29kZWMvcHRocmVhZF9mcmFtZS5jCj4gPj4gaW5kZXggNjdmMDljMWY0OC4uNzRmMDVl ZWRjZiAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdmNvZGVjL3B0aHJlYWRfZnJhbWUuYwo+ID4+ICsr KyBiL2xpYmF2Y29kZWMvcHRocmVhZF9mcmFtZS5jCj4gPj4gQEAgLTcxLDcgKzcxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgVGhyZWFkRnJhbWVQcm9ncmVzcyB7Cj4gPj4gfSBUaHJlYWRGcmFtZVByb2dy ZXNzOwo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBDb250ZXh0IHVzZWQgYnkgY29kZWMgdGhyZWFk cyBhbmQgc3RvcmVkIGluIHRoZWlyIEFWQ29kZWNJbnRlcm5hbCB0aHJlYWRfY3R4Lgo+ID4+ICsg KiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIgdXNlZCBieSBjb2RlYyB0aHJlYWRzIGFu ZCBzdG9yZWQgaW4gdGhlaXIgQVZDb2RlY0ludGVybmFsIHRocmVhZF9jdHguCj4gPj4gKi8KPiA+ PiB0eXBlZGVmIHN0cnVjdCBQZXJUaHJlYWRDb250ZXh0IHsKPiA+PiBzdHJ1Y3QgRnJhbWVUaHJl YWRDb250ZXh0ICpwYXJlbnQ7Cj4gPj4gQEAgLTExMSw3ICsxMTEsNyBAQCB0eXBlZGVmIHN0cnVj dCBQZXJUaHJlYWRDb250ZXh0IHsKPiA+PiB9IFBlclRocmVhZENvbnRleHQ7Cj4gPj4gCj4gPj4g LyoqCj4gPj4gLSAqIENvbnRleHQgc3RvcmVkIGluIHRoZSBjbGllbnQgQVZDb2RlY0ludGVybmFs IHRocmVhZF9jdHguCj4gPj4gKyAqIEByZWYgbWRfZG9jXzJjb250ZXh0ICJDb250ZXh0IiBzdG9y ZWQgaW4gdGhlIGNsaWVudCBBVkNvZGVjSW50ZXJuYWwgdGhyZWFkX2N0eC4KPiA+PiAqLwo+ID4+ IHR5cGVkZWYgc3RydWN0IEZyYW1lVGhyZWFkQ29udGV4dCB7Cj4gPj4gUGVyVGhyZWFkQ29udGV4 dCAqdGhyZWFkczsgICAgIC8vLzwgVGhlIGNvbnRleHRzIGZvciBlYWNoIHRocmVhZC4KPiA+PiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9xc3YuaCBiL2xpYmF2Y29kZWMvcXN2LmgKPiA+PiBpbmRl eCBjMTU2YjA4ZDA3Li44YjgxNjBhNGIxIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvcXN2 LmgKPiA+PiArKysgYi9saWJhdmNvZGVjL3Fzdi5oCj4gPj4gQEAgLTI2LDggKzI2LDEwIEBACj4g Pj4gI2luY2x1ZGUgImxpYmF2dXRpbC9idWZmZXIuaCIKPiA+PiAKPiA+PiAvKioKPiA+PiAtICog VGhpcyBzdHJ1Y3QgaXMgdXNlZCBmb3IgY29tbXVuaWNhdGluZyBRU1YgcGFyYW1ldGVycyBiZXR3 ZWVuIGxpYmF2Y29kZWMgYW5kCj4gPj4gLSAqIHRoZSBjYWxsZXIuIEl0IGlzIG1hbmFnZWQgYnkg dGhlIGNhbGxlciBhbmQgbXVzdCBiZSBhc3NpZ25lZCB0bwo+ID4+ICsgKiBAcmVmIG1kX2RvY18y Y29udGV4dCAiQ29udGV4dCIgZm9yIGNvbW11bmljYXRpbmcgUVNWIHBhcmFtZXRlcnMgYmV0d2Vl biBsaWJhdmNvZGVjCj4gPj4gKyAqIGFuZCB0aGUgY2FsbGVyLgo+ID4+ICsgKgo+ID4+ICsgKiBJ dCBpcyBtYW5hZ2VkIGJ5IHRoZSBjYWxsZXIgYW5kIG11c3QgYmUgYXNzaWduZWQgdG8KPiA+PiAq IEFWQ29kZWNDb250ZXh0Lmh3YWNjZWxfY29udGV4dC4KPiA+PiAqIC0gZGVjb2Rpbmc6IGh3YWNj ZWxfY29udGV4dCBtdXN0IGJlIHNldCBvbiByZXR1cm4gZnJvbSB0aGUgZ2V0X2Zvcm1hdCgpCj4g Pj4gKiAgICAgICAgICAgICBjYWxsYmFjawo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Ni ci5oIGIvbGliYXZjb2RlYy9zYnIuaAo+ID4+IGluZGV4IGZlM2EzOTYwM2EuLjk4YWQ5MDI0YTkg MTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZjb2RlYy9zYnIuaAo+ID4+ICsrKyBiL2xpYmF2Y29kZWMv c2JyLmgKPiA+PiBAQCAtMTE2LDcgKzExNiw3IEBAIHR5cGVkZWYgc3RydWN0IFNCUkRhdGEgewo+ ID4+IHR5cGVkZWYgc3RydWN0IFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uIFNwZWN0cmFsQmFuZFJl cGxpY2F0aW9uOwo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBhYWNzYnIgZnVuY3Rpb25zIHBvaW50 ZXJzCj4gPj4gKyAqIGFhY3NiciBmdW5jdGlvbnMgcG9pbnRlciBAcmVmIG1kX2RvY18yY29udGV4 dCAiY29udGV4dCIKPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFBQ1NCUkNvbnRleHQgewo+ ID4+IGludCAoKnNicl9sZl9nZW4pKFNwZWN0cmFsQmFuZFJlcGxpY2F0aW9uICpzYnIsCj4gPj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvc21hY2tlci5jIGIvbGliYXZjb2RlYy9zbWFja2VyLmMK PiA+PiBpbmRleCA4ZjE5OGQ2OTU3Li4xY2EzOWE3NGEwIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2 Y29kZWMvc21hY2tlci5jCj4gPj4gKysrIGIvbGliYXZjb2RlYy9zbWFja2VyLmMKPiA+PiBAQCAt NjgsNyArNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBIdWZmRW50cnkgewo+ID4+IH0gSHVmZkVudHJ5 Owo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBDb250ZXh0IHVzZWQgZm9yIGNvZGUgcmVjb25zdHJ1 Y3RpbmcKPiA+PiArICogQHJlZiBtZF9kb2NfMmNvbnRleHQgIkNvbnRleHQiIHVzZWQgZm9yIGNv ZGUgcmVjb25zdHJ1Y3RpbmcKPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEh1ZmZDb250ZXh0 IHsKPiA+PiBpbnQgY3VycmVudDsKPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92ZHBhdS5o IGIvbGliYXZjb2RlYy92ZHBhdS5oCj4gPj4gaW5kZXggODAyMWMyNTc2MS4uMjI3Yjg1NzI3ZCAx MDA2NDQKPiA+PiAtLS0gYS9saWJhdmNvZGVjL3ZkcGF1LmgKPiA+PiArKysgYi9saWJhdmNvZGVj L3ZkcGF1LmgKPiA+PiBAQCAtNjQsOCArNjQsOSBAQCB0eXBlZGVmIGludCAoKkFWVkRQQVVfUmVu ZGVyMikoc3RydWN0IEFWQ29kZWNDb250ZXh0ICosIHN0cnVjdCBBVkZyYW1lICosCj4gPj4gY29u c3QgVmRwQml0c3RyZWFtQnVmZmVyICopOwo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBUaGlzIHN0 cnVjdHVyZSBpcyB1c2VkIHRvIHNoYXJlIGRhdGEgYmV0d2VlbiB0aGUgbGliYXZjb2RlYyBsaWJy YXJ5IGFuZAo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIgdG8gc2hhcmUg ZGF0YSBiZXR3ZWVuIHRoZSBsaWJhdmNvZGVjIGxpYnJhcnkgYW5kCj4gPj4gKiB0aGUgY2xpZW50 IHZpZGVvIGFwcGxpY2F0aW9uLgo+ID4+ICsgKgo+ID4+ICogVGhpcyBzdHJ1Y3R1cmUgd2lsbCBi ZSBhbGxvY2F0ZWQgYW5kIHN0b3JlZCBpbiBBVkNvZGVjQ29udGV4dC5od2FjY2VsX2NvbnRleHQK PiA+PiAqIGJ5IGF2X3ZkcGF1X2JpbmRfY29udGV4dCgpLiBNZW1iZXJzIGNhbiBiZSBzZXQgYnkg dGhlIHVzZXIgb25jZQo+ID4+ICogZHVyaW5nIGluaXRpYWxpemF0aW9uIG9yIHRocm91Z2ggZWFj aCBBVkNvZGVjQ29udGV4dC5nZXRfYnVmZmVyKCkKPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy92aWRlb3Rvb2xib3guaCBiL2xpYmF2Y29kZWMvdmlkZW90b29sYm94LmgKPiA+PiBpbmRleCBk NjhkNzZlNDAwLi5mMTVlNzlmMzI1IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvdmlkZW90 b29sYm94LmgKPiA+PiArKysgYi9saWJhdmNvZGVjL3ZpZGVvdG9vbGJveC5oCj4gPj4gQEAgLTQ5 LDggKzQ5LDkgQEAKPiA+PiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKPiA+PiAK PiA+PiAvKioKPiA+PiAtICogVGhpcyBzdHJ1Y3QgaG9sZHMgYWxsIHRoZSBpbmZvcm1hdGlvbiB0 aGF0IG5lZWRzIHRvIGJlIHBhc3NlZAo+ID4+IC0gKiBiZXR3ZWVuIHRoZSBjYWxsZXIgYW5kIGxp YmF2Y29kZWMgZm9yIGluaXRpYWxpemluZyBWaWRlb3Rvb2xib3ggZGVjb2RpbmcuCj4gPj4gKyAq IEByZWYgbWRfZG9jXzJjb250ZXh0ICJDb250ZXh0IiBmb3IgaW5mb3JtYXRpb24gcGFzc2VkIGJl dHdlZW4gdGhlIGNhbGxlciBhbmQgbGliYXZjb2RlYwo+ID4+ICsgKiBmb3IgaW5pdGlhbGl6aW5n IFZpZGVvdG9vbGJveCBkZWNvZGluZy4KPiA+PiArICoKPiA+PiAqIEl0cyBzaXplIGlzIG5vdCBh IHBhcnQgb2YgdGhlIHB1YmxpYyBBQkksIGl0IG11c3QgYmUgYWxsb2NhdGVkIHdpdGgKPiA+PiAq IGF2X3ZpZGVvdG9vbGJveF9hbGxvY19jb250ZXh0KCkgYW5kIGZyZWVkIHdpdGggYXZfZnJlZSgp Lgo+ID4+ICovCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmggYi9saWJh dmZpbHRlci9hdmZpbHRlci5oCj4gPj4gaW5kZXggYTM0ZTYxZjIzYy4uNTRiNWY5ZGM0MyAxMDA2 NDQKPiA+PiAtLS0gYS9saWJhdmZpbHRlci9hdmZpbHRlci5oCj4gPj4gKysrIGIvbGliYXZmaWx0 ZXIvYXZmaWx0ZXIuaAo+ID4+IEBAIC00MDMsNyArNDAzLDcgQEAgdW5zaWduZWQgYXZmaWx0ZXJf ZmlsdGVyX3BhZF9jb3VudChjb25zdCBBVkZpbHRlciAqZmlsdGVyLCBpbnQgaXNfb3V0cHV0KTsK PiA+PiAqLwo+ID4+ICNkZWZpbmUgQVZGSUxURVJfVEhSRUFEX1NMSUNFICgxIDw8IDApCj4gPj4g Cj4gPj4gLS8qKiBBbiBpbnN0YW5jZSBvZiBhIGZpbHRlciAqLwo+ID4+ICsvKiogQHJlZiBtZF9k b2NfMmNvbnRleHQgIkNvbnRleHQiIGZvciBhIGZpbHRlciAqLwo+ID4+IHN0cnVjdCBBVkZpbHRl ckNvbnRleHQgewo+ID4+IGNvbnN0IEFWQ2xhc3MgKmF2X2NsYXNzOyAgICAgICAgLy8vPCBuZWVk ZWQgZm9yIGF2X2xvZygpIGFuZCBmaWx0ZXJzIGNvbW1vbiBvcHRpb25zCj4gPj4gCj4gPj4gZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2F2Zm9ybWF0LmggYi9saWJhdmZvcm1hdC9hdmZvcm1hdC5o Cj4gPj4gaW5kZXggOGFmZGNkOWZkMC4uMjgyNDNjMDZjNCAxMDA2NDQKPiA+PiAtLS0gYS9saWJh dmZvcm1hdC9hdmZvcm1hdC5oCj4gPj4gKysrIGIvbGliYXZmb3JtYXQvYXZmb3JtYXQuaAo+ID4+ IEBAIC0xMjQxLDcgKzEyNDEsOCBAQCBlbnVtIEFWRHVyYXRpb25Fc3RpbWF0aW9uTWV0aG9kIHsK PiA+PiB9Owo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBGb3JtYXQgSS9PIGNvbnRleHQuCj4gPj4g KyAqIEZvcm1hdCBJL08gQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiCj4gPj4gKyAqCj4g Pj4gKiBOZXcgZmllbGRzIGNhbiBiZSBhZGRlZCB0byB0aGUgZW5kIHdpdGggbWlub3IgdmVyc2lv biBidW1wcy4KPiA+PiAqIFJlbW92YWwsIHJlb3JkZXJpbmcgYW5kIGNoYW5nZXMgdG8gZXhpc3Rp bmcgZmllbGRzIHJlcXVpcmUgYSBtYWpvcgo+ID4+ICogdmVyc2lvbiBidW1wLgo+ID4+IGRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9hdmlvLmggYi9saWJhdmZvcm1hdC9hdmlvLmgKPiA+PiBpbmRl eCBlYmY2MTExODdkLi5iNTI1YzkzMTk0IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Zm9ybWF0L2F2 aW8uaAo+ID4+ICsrKyBiL2xpYmF2Zm9ybWF0L2F2aW8uaAo+ID4+IEBAIC0xNDYsNyArMTQ2LDgg QEAgZW51bSBBVklPRGF0YU1hcmtlclR5cGUgewo+ID4+IH07Cj4gPj4gCj4gPj4gLyoqCj4gPj4g LSAqIEJ5dGVzdHJlYW0gSU8gQ29udGV4dC4KPiA+PiArICogQnl0ZXN0cmVhbSBJL08gQHJlZiBt ZF9kb2NfMmNvbnRleHQgImNvbnRleHQiCj4gPj4gKyAqCj4gPj4gKiBOZXcgcHVibGljIGZpZWxk cyBjYW4gYmUgYWRkZWQgd2l0aCBtaW5vciB2ZXJzaW9uIGJ1bXBzLgo+ID4+ICogUmVtb3ZhbCwg cmVvcmRlcmluZyBhbmQgY2hhbmdlcyB0byBleGlzdGluZyBwdWJsaWMgZmllbGRzIHJlcXVpcmUK PiA+PiAqIGEgbWFqb3IgdmVyc2lvbiBidW1wLgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwv YXVkaW9fZmlmby5oIGIvbGliYXZ1dGlsL2F1ZGlvX2ZpZm8uaAo+ID4+IGluZGV4IGZhNWY1OWEy YmUuLmRlMjk3MTU0NjIgMTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZ1dGlsL2F1ZGlvX2ZpZm8uaAo+ ID4+ICsrKyBiL2xpYmF2dXRpbC9hdWRpb19maWZvLmgKPiA+PiBAQCAtMzksNyArMzksNyBAQAo+ ID4+ICovCj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIENvbnRleHQgZm9yIGFuIEF1ZGlvIEZJRk8g QnVmZmVyLgo+ID4+ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiQ29udGV4dCIgZm9yIGFuIEF1 ZGlvIEZJRk8gQnVmZmVyLgo+ID4+ICoKPiA+PiAqIC0gT3BlcmF0ZXMgYXQgdGhlIHNhbXBsZSBs ZXZlbCByYXRoZXIgdGhhbiB0aGUgYnl0ZSBsZXZlbC4KPiA+PiAqIC0gU3VwcG9ydHMgbXVsdGlw bGUgY2hhbm5lbHMgd2l0aCBlaXRoZXIgcGxhbmFyIG9yIHBhY2tlZCBzYW1wbGUgZm9ybWF0Lgo+ ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0LmggYi9saWJhdnV0aWwvaHdjb250 ZXh0LmgKPiA+PiBpbmRleCBiYWMzMGRlYmFlLi42MDA2NGNmMDhiIDEwMDY0NAo+ID4+IC0tLSBh L2xpYmF2dXRpbC9od2NvbnRleHQuaAo+ID4+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHQuaAo+ ID4+IEBAIC00MSwxMiArNDEsMTMgQEAgZW51bSBBVkhXRGV2aWNlVHlwZSB7Cj4gPj4gfTsKPiA+ PiAKPiA+PiAvKioKPiA+PiAtICogVGhpcyBzdHJ1Y3QgYWdncmVnYXRlcyBhbGwgdGhlIChoYXJk d2FyZS92ZW5kb3Itc3BlY2lmaWMpICJoaWdoLWxldmVsIiBzdGF0ZSwKPiA+PiAtICogaS5lLiBz dGF0ZSB0aGF0IGlzIG5vdCB0aWVkIHRvIGEgY29uY3JldGUgcHJvY2Vzc2luZyBjb25maWd1cmF0 aW9uLgo+ID4+IC0gKiBFLmcuLCBpbiBhbiBBUEkgdGhhdCBzdXBwb3J0cyBoYXJkd2FyZS1hY2Nl bGVyYXRlZCBlbmNvZGluZyBhbmQgZGVjb2RpbmcsCj4gPj4gLSAqIHRoaXMgc3RydWN0IHdpbGwg KGlmIHBvc3NpYmxlKSB3cmFwIHRoZSBzdGF0ZSB0aGF0IGlzIGNvbW1vbiB0byBib3RoIGVuY29k aW5nCj4gPj4gLSAqIGFuZCBkZWNvZGluZyBhbmQgZnJvbSB3aGljaCBzcGVjaWZpYyBpbnN0YW5j ZXMgb2YgZW5jb2RlcnMgb3IgZGVjb2RlcnMgY2FuIGJlCj4gPj4gLSAqIGRlcml2ZWQuCj4gPj4g KyAqIEByZWYgbWRfZG9jXzJjb250ZXh0ICJDb250ZXh0IiBmb3IgKGhhcmR3YXJlL3ZlbmRvci1z cGVjaWZpYykgImhpZ2gtbGV2ZWwiIHN0YXRlLgo+ID4+ICsgKgo+ID4+ICsgKiAiSGlnaC1sZXZl bCBzdGF0ZSIgaXMgYW55dGhpbmcgdGhhdCBpcyBub3QgdGllZCB0byBhIGNvbmNyZXRlIHByb2Nl c3NpbmcKPiA+PiArICogY29uZmlndXJhdGlvbi4gRS5nLiwgaW4gYW4gQVBJIHRoYXQgc3VwcG9y dHMgaGFyZHdhcmUtYWNjZWxlcmF0ZWQgZW5jb2RpbmcKPiA+PiArICogYW5kIGRlY29kaW5nLCB0 aGlzIHN0cnVjdCB3aWxsIChpZiBwb3NzaWJsZSkgd3JhcCB0aGUgc3RhdGUgdGhhdCBpcyBjb21t b24KPiA+PiArICogdG8gYm90aCBlbmNvZGluZyBhbmQgZGVjb2RpbmcgYW5kIGZyb20gd2hpY2gg c3BlY2lmaWMgaW5zdGFuY2VzIG9mIGVuY29kZXJzCj4gPj4gKyAqIG9yIGRlY29kZXJzIGNhbiBi ZSBkZXJpdmVkLgo+ID4+ICoKPiA+PiAqIFRoaXMgc3RydWN0IGlzIHJlZmVyZW5jZS1jb3VudGVk IHdpdGggdGhlIEFWQnVmZmVyIG1lY2hhbmlzbS4gVGhlCj4gPj4gKiBhdl9od2RldmljZV9jdHhf YWxsb2MoKSBjb25zdHJ1Y3RvciB5aWVsZHMgYSByZWZlcmVuY2UsIHdob3NlIGRhdGEgZmllbGQK PiA+PiBAQCAtMTAzLDkgKzEwNCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBBVkhXRGV2aWNlQ29udGV4 dCB7Cj4gPj4gfSBBVkhXRGV2aWNlQ29udGV4dDsKPiA+PiAKPiA+PiAvKioKPiA+PiAtICogVGhp cyBzdHJ1Y3QgZGVzY3JpYmVzIGEgc2V0IG9yIHBvb2wgb2YgImhhcmR3YXJlIiBmcmFtZXMgKGku ZS4gdGhvc2Ugd2l0aAo+ID4+IC0gKiBkYXRhIG5vdCBsb2NhdGVkIGluIG5vcm1hbCBzeXN0ZW0g bWVtb3J5KS4gQWxsIHRoZSBmcmFtZXMgaW4gdGhlIHBvb2wgYXJlCj4gPj4gLSAqIGFzc3VtZWQg dG8gYmUgYWxsb2NhdGVkIGluIHRoZSBzYW1lIHdheSBhbmQgaW50ZXJjaGFuZ2VhYmxlLgo+ID4+ ICsgKiBAcmVmIG1kX2RvY18yY29udGV4dCAiY29udGV4dCIgZm9yIGEgcG9vbCBvZiAiaGFyZHdh cmUiIGZyYW1lcyAodGhvc2Ugd2l0aAo+ID4+ICsgKiBkYXRhIG5vdCBsb2NhdGVkIGluIG5vcm1h bCBzeXN0ZW0gbWVtb3J5KQo+ID4+ICsgKgo+ID4+ICsgKiBBbGwgdGhlIGZyYW1lcyBpbiB0aGUg cG9vbCBhcmUgYXNzdW1lZCB0byBiZSBhbGxvY2F0ZWQgaW4gdGhlIHNhbWUgd2F5IGFuZAo+ID4+ ICsgKiBpbnRlcmNoYW5nZWFibGUuCj4gPj4gKgo+ID4+ICogVGhpcyBzdHJ1Y3QgaXMgcmVmZXJl bmNlLWNvdW50ZWQgd2l0aCB0aGUgQVZCdWZmZXIgbWVjaGFuaXNtIGFuZCB0aWVkIHRvIGEKPiA+ PiAqIGdpdmVuIEFWSFdEZXZpY2VDb250ZXh0IGluc3RhbmNlLiBUaGUgYXZfaHdmcmFtZV9jdHhf YWxsb2MoKSBjb25zdHJ1Y3Rvcgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0 X2N1ZGEuaCBiL2xpYmF2dXRpbC9od2NvbnRleHRfY3VkYS5oCj4gPj4gaW5kZXggY2JhZDQzNGZl YS4uZTI1OTg5MjY4OCAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X2N1ZGEu aAo+ID4+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfY3VkYS5oCj4gPj4gQEAgLTM3LDcgKzM3 LDcgQEAKPiA+PiB0eXBlZGVmIHN0cnVjdCBBVkNVREFEZXZpY2VDb250ZXh0SW50ZXJuYWwgQVZD VURBRGV2aWNlQ29udGV4dEludGVybmFsOwo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBUaGlzIHN0 cnVjdCBpcyBhbGxvY2F0ZWQgYXMgQVZIV0RldmljZUNvbnRleHQuaHdjdHgKPiA+PiArICogVGhp cyBAcmVmIG1kX2RvY18yY29udGV4dCAiY29udGV4dCIgaXMgYWxsb2NhdGVkIGFzIEFWSFdEZXZp Y2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBBVkNVREFEZXZpY2VD b250ZXh0IHsKPiA+PiBDVWNvbnRleHQgY3VkYV9jdHg7Cj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2 dXRpbC9od2NvbnRleHRfZDNkMTF2YS5oIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9kM2QxMXZhLmgK PiA+PiBpbmRleCA3N2QyZDcyZjFiLi4xMDFkMWNiNmY4IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2 dXRpbC9od2NvbnRleHRfZDNkMTF2YS5oCj4gPj4gKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9k M2QxMXZhLmgKPiA+PiBAQCAtNDAsNyArNDAsNyBAQAo+ID4+ICNpbmNsdWRlIDxzdGRpbnQuaD4K PiA+PiAKPiA+PiAvKioKPiA+PiAtICogVGhpcyBzdHJ1Y3QgaXMgYWxsb2NhdGVkIGFzIEFWSFdE ZXZpY2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAqIFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNv bnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4dC5od2N0eAo+ID4+ICovCj4g Pj4gdHlwZWRlZiBzdHJ1Y3QgQVZEM0QxMVZBRGV2aWNlQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4g QEAgLTEyNiw3ICsxMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBBVkQzRDExRnJhbWVEZXNjcmlwdG9y IHsKPiA+PiB9IEFWRDNEMTFGcmFtZURlc2NyaXB0b3I7Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAq IFRoaXMgc3RydWN0IGlzIGFsbG9jYXRlZCBhcyBBVkhXRnJhbWVzQ29udGV4dC5od2N0eAo+ID4+ ICsgKiBUaGlzIEByZWYgbWRfZG9jXzJjb250ZXh0ICJjb250ZXh0IiBpcyBhbGxvY2F0ZWQgYXMg QVZIV0ZyYW1lc0NvbnRleHQuaHdjdHgKPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWRDNE MTFWQUZyYW1lc0NvbnRleHQgewo+ID4+IC8qKgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwv aHdjb250ZXh0X2QzZDEydmEuaCBiL2xpYmF2dXRpbC9od2NvbnRleHRfZDNkMTJ2YS5oCj4gPj4g aW5kZXggZmYwNmU2ZjJlZi4uYzYyMzkxNGMyYiAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdnV0aWwv aHdjb250ZXh0X2QzZDEydmEuaAo+ID4+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfZDNkMTJ2 YS5oCj4gPj4gQEAgLTM3LDcgKzM3LDcgQEAKPiA+PiAjaW5jbHVkZSA8ZDNkMTJ2aWRlby5oPgo+ ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBAYnJpZWYgVGhpcyBzdHJ1Y3QgaXMgYWxsb2NhdGVkIGFz IEFWSFdEZXZpY2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAqIEBicmllZiBUaGlzIEByZWYgbWRfZG9j XzJjb250ZXh0ICJjb250ZXh0IiBpcyBhbGxvY2F0ZWQgYXMgQVZIV0RldmljZUNvbnRleHQuaHdj dHgKPiA+PiAqCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBBVkQzRDEyVkFEZXZpY2VDb250 ZXh0IHsKPiA+PiBAQCAtNzgsNyArNzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBBVkQzRDEyVkFEZXZp Y2VDb250ZXh0IHsKPiA+PiB9IEFWRDNEMTJWQURldmljZUNvbnRleHQ7Cj4gPj4gCj4gPj4gLyoq Cj4gPj4gLSAqIEBicmllZiBUaGlzIHN0cnVjdCBpcyB1c2VkIHRvIHN5bmMgZDNkMTIgZXhlY3V0 aW9uCj4gPj4gKyAqIEBicmllZiBUaGlzIEByZWYgbWRfZG9jXzJjb250ZXh0ICJjb250ZXh0IiBp cyB1c2VkIHRvIHN5bmMgZDNkMTIgZXhlY3V0aW9uCj4gPj4gKgo+ID4+ICovCj4gPj4gdHlwZWRl ZiBzdHJ1Y3QgQVZEM0QxMlZBU3luY0NvbnRleHQgewo+ID4+IEBAIC0xMjAsNyArMTIwLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgQVZEM0QxMlZBRnJhbWUgewo+ID4+IH0gQVZEM0QxMlZBRnJhbWU7Cj4g Pj4gCj4gPj4gLyoqCj4gPj4gLSAqIEBicmllZiBUaGlzIHN0cnVjdCBpcyBhbGxvY2F0ZWQgYXMg QVZIV0ZyYW1lc0NvbnRleHQuaHdjdHgKPiA+PiArICogQGJyaWVmIFRoaXMgQHJlZiBtZF9kb2Nf MmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRnJhbWVzQ29udGV4dC5od2N0 eAo+ID4+ICoKPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWRDNEMTJWQUZyYW1lc0NvbnRl eHQgewo+ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X2RybS5oIGIvbGliYXZ1 dGlsL2h3Y29udGV4dF9kcm0uaAo+ID4+IGluZGV4IDQyNzA5ZjIxNWUuLjgzMjllNjk5NjYgMTAw NjQ0Cj4gPj4gLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF9kcm0uaAo+ID4+ICsrKyBiL2xpYmF2 dXRpbC9od2NvbnRleHRfZHJtLmgKPiA+PiBAQCAtMTUyLDcgKzE1Miw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFWRFJNRnJhbWVEZXNjcmlwdG9yIHsKPiA+PiAvKioKPiA+PiAqIERSTSBkZXZpY2UuCj4g Pj4gKgo+ID4+IC0gKiBBbGxvY2F0ZWQgYXMgQVZIV0RldmljZUNvbnRleHQuaHdjdHguCj4gPj4g KyAqIFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBB VkhXRGV2aWNlQ29udGV4dC5od2N0eC4KPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWRFJN RGV2aWNlQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9od2Nv bnRleHRfZHh2YTIuaCBiL2xpYmF2dXRpbC9od2NvbnRleHRfZHh2YTIuaAo+ID4+IGluZGV4IGUx Yjc5YmMwZGUuLmM2NzljMTZhZjAgMTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4 dF9keHZhMi5oCj4gPj4gKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9keHZhMi5oCj4gPj4gQEAg LTM0LDE0ICszNCwxNCBAQAo+ID4+ICNpbmNsdWRlIDxkeHZhMmFwaS5oPgo+ID4+IAo+ID4+IC8q Kgo+ID4+IC0gKiBUaGlzIHN0cnVjdCBpcyBhbGxvY2F0ZWQgYXMgQVZIV0RldmljZUNvbnRleHQu aHdjdHgKPiA+PiArICogVGhpcyBAcmVmIG1kX2RvY18yY29udGV4dCAiY29udGV4dCIgaXMgYWxs b2NhdGVkIGFzIEFWSFdEZXZpY2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0 cnVjdCBBVkRYVkEyRGV2aWNlQ29udGV4dCB7Cj4gPj4gSURpcmVjdDNERGV2aWNlTWFuYWdlcjkg KmRldm1ncjsKPiA+PiB9IEFWRFhWQTJEZXZpY2VDb250ZXh0Owo+ID4+IAo+ID4+IC8qKgo+ID4+ IC0gKiBUaGlzIHN0cnVjdCBpcyBhbGxvY2F0ZWQgYXMgQVZIV0ZyYW1lc0NvbnRleHQuaHdjdHgK PiA+PiArICogVGhpcyBAcmVmIG1kX2RvY18yY29udGV4dCAiY29udGV4dCIgaXMgYWxsb2NhdGVk IGFzIEFWSFdGcmFtZXNDb250ZXh0Lmh3Y3R4Cj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0cnVjdCBB VkRYVkEyRnJhbWVzQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRp bC9od2NvbnRleHRfbWVkaWFjb2RlYy5oIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9tZWRpYWNvZGVj LmgKPiA+PiBpbmRleCBmYzAyNjNjYWJjLi5lODExOTMyNDdiIDEwMDY0NAo+ID4+IC0tLSBhL2xp YmF2dXRpbC9od2NvbnRleHRfbWVkaWFjb2RlYy5oCj4gPj4gKysrIGIvbGliYXZ1dGlsL2h3Y29u dGV4dF9tZWRpYWNvZGVjLmgKPiA+PiBAQCAtMjIsNyArMjIsNyBAQAo+ID4+IC8qKgo+ID4+ICog TWVkaWFDb2RlYyBkZXRhaWxzLgo+ID4+ICoKPiA+PiAtICogQWxsb2NhdGVkIGFzIEFWSFdEZXZp Y2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAqIFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRl eHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4dC5od2N0eAo+ID4+ICovCj4gPj4g dHlwZWRlZiBzdHJ1Y3QgQVZNZWRpYUNvZGVjRGV2aWNlQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4g ZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfb3BlbmNsLmggYi9saWJhdnV0aWwvaHdj b250ZXh0X29wZW5jbC5oCj4gPj4gaW5kZXggZWY1NDQ4NmM5NS4uN2FiZDk3ZGIyYiAxMDA2NDQK PiA+PiAtLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5oCj4gPj4gKysrIGIvbGliYXZ1 dGlsL2h3Y29udGV4dF9vcGVuY2wuaAo+ID4+IEBAIC01OCw3ICs1OCw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFWT3BlbkNMRnJhbWVEZXNjcmlwdG9yIHsKPiA+PiAvKioKPiA+PiAqIE9wZW5DTCBkZXZp Y2UgZGV0YWlscy4KPiA+PiAqCj4gPj4gLSAqIEFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4 dC5od2N0eAo+ID4+ICsgKiBUaGlzIEByZWYgbWRfZG9jXzJjb250ZXh0ICJjb250ZXh0IiBpcyBh bGxvY2F0ZWQgYXMgQVZIV0RldmljZUNvbnRleHQuaHdjdHgKPiA+PiAqLwo+ID4+IHR5cGVkZWYg c3RydWN0IEFWT3BlbkNMRGV2aWNlQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gQEAgLTg0LDcgKzg0 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQVZPcGVuQ0xEZXZpY2VDb250ZXh0IHsKPiA+PiAvKioKPiA+ PiAqIE9wZW5DTC1zcGVjaWZpYyBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGZyYW1lIHBvb2wuCj4g Pj4gKgo+ID4+IC0gKiBBbGxvY2F0ZWQgYXMgQVZIV0ZyYW1lc0NvbnRleHQuaHdjdHguCj4gPj4g KyAqIFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBB VkhXRnJhbWVzQ29udGV4dC5od2N0eC4KPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWT3Bl bkNMRnJhbWVzQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9o d2NvbnRleHRfcXN2LmggYi9saWJhdnV0aWwvaHdjb250ZXh0X3Fzdi5oCj4gPj4gaW5kZXggZTJk YmE4YWQ4My4uYjYzZWJkZGFlZiAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0 X3Fzdi5oCj4gPj4gKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9xc3YuaAo+ID4+IEBAIC0zMCw3 ICszMCw3IEBACj4gPj4gKi8KPiA+PiAKPiA+PiAvKioKPiA+PiAtICogVGhpcyBzdHJ1Y3QgaXMg YWxsb2NhdGVkIGFzIEFWSFdEZXZpY2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAqIFRoaXMgQHJlZiBt ZF9kb2NfMmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4 dC5od2N0eAo+ID4+ICovCj4gPj4gdHlwZWRlZiBzdHJ1Y3QgQVZRU1ZEZXZpY2VDb250ZXh0IHsK PiA+PiBtZnhTZXNzaW9uIHNlc3Npb247Cj4gPj4gQEAgLTQ4LDcgKzQ4LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQVZRU1ZEZXZpY2VDb250ZXh0IHsKPiA+PiB9IEFWUVNWRGV2aWNlQ29udGV4dDsKPiA+ PiAKPiA+PiAvKioKPiA+PiAtICogVGhpcyBzdHJ1Y3QgaXMgYWxsb2NhdGVkIGFzIEFWSFdGcmFt ZXNDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAqIFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRl eHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRnJhbWVzQ29udGV4dC5od2N0eAo+ID4+ICovCj4gPj4g dHlwZWRlZiBzdHJ1Y3QgQVZRU1ZGcmFtZXNDb250ZXh0IHsKPiA+PiBtZnhGcmFtZVN1cmZhY2Ux ICpzdXJmYWNlczsKPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5o IGIvbGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5oCj4gPj4gaW5kZXggMGIyZTA3MWNiMy4uNGE4 OTdlYjg1MSAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmgKPiA+ PiArKysgYi9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmgKPiA+PiBAQCAtNjMsNyArNjMsNyBA QCBlbnVtIHsKPiA+PiAvKioKPiA+PiAqIFZBQVBJIGNvbm5lY3Rpb24gZGV0YWlscy4KPiA+PiAq Cj4gPj4gLSAqIEFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4dC5od2N0eAo+ID4+ICsgKiBU aGlzIEByZWYgbWRfZG9jXzJjb250ZXh0ICJjb250ZXh0IiBpcyBhbGxvY2F0ZWQgYXMgQVZIV0Rl dmljZUNvbnRleHQuaHdjdHgKPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWVkFBUElEZXZp Y2VDb250ZXh0IHsKPiA+PiAvKioKPiA+PiBAQCAtODMsNyArODMsNyBAQCB0eXBlZGVmIHN0cnVj dCBBVlZBQVBJRGV2aWNlQ29udGV4dCB7Cj4gPj4gLyoqCj4gPj4gKiBWQUFQSS1zcGVjaWZpYyBk YXRhIGFzc29jaWF0ZWQgd2l0aCBhIGZyYW1lIHBvb2wuCj4gPj4gKgo+ID4+IC0gKiBBbGxvY2F0 ZWQgYXMgQVZIV0ZyYW1lc0NvbnRleHQuaHdjdHguCj4gPj4gKyAqIFRoaXMgQHJlZiBtZF9kb2Nf MmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRnJhbWVzQ29udGV4dC5od2N0 eC4KPiA+PiAqLwo+ID4+IHR5cGVkZWYgc3RydWN0IEFWVkFBUElGcmFtZXNDb250ZXh0IHsKPiA+ PiAvKioKPiA+PiBAQCAtMTA1LDcgKzEwNSw3IEBAIHR5cGVkZWYgc3RydWN0IEFWVkFBUElGcmFt ZXNDb250ZXh0IHsKPiA+PiAvKioKPiA+PiAqIFZBQVBJIGhhcmR3YXJlIHBpcGVsaW5lIGNvbmZp Z3VyYXRpb24gZGV0YWlscy4KPiA+PiAqCj4gPj4gLSAqIEFsbG9jYXRlZCB3aXRoIGF2X2h3ZGV2 aWNlX2h3Y29uZmlnX2FsbG9jKCkuCj4gPj4gKyAqIFRoaXMgc3RydWN0IGlzIGFsbG9jYXRlZCB3 aXRoIGF2X2h3ZGV2aWNlX2h3Y29uZmlnX2FsbG9jKCkuCj4gPj4gKi8KPiA+PiB0eXBlZGVmIHN0 cnVjdCBBVlZBQVBJSFdDb25maWcgewo+ID4+IC8qKgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0 aWwvaHdjb250ZXh0X3ZkcGF1LmggYi9saWJhdnV0aWwvaHdjb250ZXh0X3ZkcGF1LmgKPiA+PiBp bmRleCAxYjdlYTFlNDQzLi5lMzA1Y2FhNTk1IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2dXRpbC9o d2NvbnRleHRfdmRwYXUuaAo+ID4+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdmRwYXUuaAo+ ID4+IEBAIC0zMCw3ICszMCw3IEBACj4gPj4gKi8KPiA+PiAKPiA+PiAvKioKPiA+PiAtICogVGhp cyBzdHJ1Y3QgaXMgYWxsb2NhdGVkIGFzIEFWSFdEZXZpY2VDb250ZXh0Lmh3Y3R4Cj4gPj4gKyAq IFRoaXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhX RGV2aWNlQ29udGV4dC5od2N0eAo+ID4+ICovCj4gPj4gdHlwZWRlZiBzdHJ1Y3QgQVZWRFBBVURl dmljZUNvbnRleHQgewo+ID4+IFZkcERldmljZSAgICAgICAgICBkZXZpY2U7Cj4gPj4gZGlmZiAt LWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmggYi9saWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5oCj4gPj4gaW5kZXggY2JiZDIzOTBjMS4uMTg2OTg3MDAzMiAxMDA2NDQKPiA+PiAt LS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5oCj4gPj4gKysrIGIvbGliYXZ1dGlsL2h3 Y29udGV4dF92dWxrYW4uaAo+ID4+IEBAIC0zOSw3ICszOSw3IEBAIHR5cGVkZWYgc3RydWN0IEFW VmtGcmFtZSBBVlZrRnJhbWU7Cj4gPj4gKi8KPiA+PiAKPiA+PiAvKioKPiA+PiAtICogTWFpbiBW dWxrYW4gY29udGV4dCwgYWxsb2NhdGVkIGFzIEFWSFdEZXZpY2VDb250ZXh0Lmh3Y3R4Lgo+ID4+ ICsgKiBNYWluIFZ1bGthbiBAcmVmIG1kX2RvY18yY29udGV4dCAiY29udGV4dCIsIGFsbG9jYXRl ZCBhcyBBVkhXRGV2aWNlQ29udGV4dC5od2N0eC4KPiA+PiAqIEFsbCBvZiB0aGVzZSBjYW4gYmUg c2V0IGJlZm9yZSBpbml0IHRvIGNoYW5nZSB3aGF0IHRoZSBjb250ZXh0IHVzZXMKPiA+PiAqLwo+ ID4+IHR5cGVkZWYgc3RydWN0IEFWVnVsa2FuRGV2aWNlQ29udGV4dCB7Cj4gPj4gQEAgLTE3Miw3 ICsxNzIsNyBAQCB0eXBlZGVmIGVudW0gQVZWa0ZyYW1lRmxhZ3Mgewo+ID4+IH0gQVZWa0ZyYW1l RmxhZ3M7Cj4gPj4gCj4gPj4gLyoqCj4gPj4gLSAqIEFsbG9jYXRlZCBhcyBBVkhXRnJhbWVzQ29u dGV4dC5od2N0eCwgdXNlZCB0byBzZXQgcG9vbC1zcGVjaWZpYyBvcHRpb25zCj4gPj4gKyAqIFRo aXMgQHJlZiBtZF9kb2NfMmNvbnRleHQgImNvbnRleHQiIGlzIGFsbG9jYXRlZCBhcyBBVkhXRnJh bWVzQ29udGV4dC5od2N0eCwgdXNlZCB0byBzZXQgcG9vbC1zcGVjaWZpYyBvcHRpb25zCj4gPj4g Ki8KPiA+PiB0eXBlZGVmIHN0cnVjdCBBVlZ1bGthbkZyYW1lc0NvbnRleHQgewo+ID4+IC8qKgo+ ID4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvbGZnLmggYi9saWJhdnV0aWwvbGZnLmgKPiA+PiBp bmRleCBlNzVhOTg2ZjEyLi43ZjRmZjViNjJmIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2dXRpbC9s ZmcuaAo+ID4+ICsrKyBiL2xpYmF2dXRpbC9sZmcuaAo+ID4+IEBAIC0yNSw3ICsyNSw3IEBACj4g Pj4gI2luY2x1ZGUgPHN0ZGludC5oPgo+ID4+IAo+ID4+IC8qKgo+ID4+IC0gKiBDb250ZXh0IHN0 cnVjdHVyZSBmb3IgdGhlIExhZ2dlZCBGaWJvbmFjY2kgUFJORy4KPiA+PiArICogQHJlZiBtZF9k b2NfMmNvbnRleHQgIkNvbnRleHQiIHN0cnVjdHVyZSBmb3IgdGhlIExhZ2dlZCBGaWJvbmFjY2kg UFJORy4KPiA+PiAqIFRoZSBleGFjdCBsYXlvdXQsIHR5cGVzIGFuZCBjb250ZW50IG9mIHRoaXMg c3RydWN0IG1heSBjaGFuZ2UgYW5kIHNob3VsZAo+ID4+ICogbm90IGJlIGFjY2Vzc2VkIGRpcmVj dGx5LiBPbmx5IGl0cyBgc2l6ZW9mKClgIGlzIGd1YXJhbnRlZWQgdG8gc3RheSB0aGUgc2FtZQo+ ID4+ICogdG8gYWxsb3cgZWFzeSBpbnN0YW5jaWF0aW9uLgo+ID4+IAo+ID4gCj4gPiBDb3VsZCB5 b3UgYXQgbGVhc3Qgbm90IHB1dCAiY29udGV4dCIgaW4gcXVvdGF0aW9uIG1hcmtzPwo+ID4gVG8g YmUgaG9uZXN0LCBJJ20gbm90IHN1cmUgdGhpcyBtYWtlcyBkb2N1bWVudGF0aW9uIGFueSBiZXR0 ZXIuCj4gPiBBIGNvbnRleHQgaXMgYW4gZXNzZW50aWFsIHRlcm0gd2UgdXNlIGluIG91ciBjb2Rl YmFzZSB0aGF0J3MgcHJldHR5Cj4gPiB1bml2ZXJzYWwuIEV4cGxhaW5pbmcgYWdhaW4gYW5kIGFn YWluIGF0IGV2ZXJ5IG1lbnRpb24gaXMgYW5ub3lpbmcuCj4gCj4gKzEuIEkgZG9u4oCZdCB0aGlu ayDigJxjb250ZXh0IiBpcyBzcGVjaWZpYyB0byBGRm1wZWcsIGl04oCZcyBsaWtlIGNvbW1vbiBu YW1pbmcgY29udmVudGlvbnMuCgpPb2gsIEkgZG9uJ3Qgc3VwcG9zZSB5b3UndmUgZ290IHNvbWUg ZXhhbXBsZXM/ICBJIGtub3cgc29tZSBvdGhlciBDCnByb2plY3RzIHVzZSBzaW1pbGFyIGNvbmNl cHRzLCBidXQgYSBjb21wYXRpYmxlIHVzZSBvZiB0aGUgd29yZAoiY29udGV4dCIgd291bGQgcmVh bGx5IGhlbHAgZXhwbGFpbiB0aGluZ3MgdG8gbmV3Ymllcy4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9m Zm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApm Zm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUi Lgo=