From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73] helo=mx1.redhat.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fx0Od-0006Vm-3B for kexec@lists.infradead.org; Tue, 04 Sep 2018 01:44:49 +0000 Subject: Re: [PATCH 2/5 V6] x86/ioremap: strengthen the logic in early_memremap_pgprot_adjust() to adjust encryption mask References: <20180831081930.31561-1-lijiang@redhat.com> <20180831081930.31561-3-lijiang@redhat.com> <20180903024512.GA2568@dhcp-128-65.nay.redhat.com> <20180904004417.GA9842@dhcp-128-65.nay.redhat.com> From: lijiang Message-ID: Date: Tue, 4 Sep 2018 09:44:18 +0800 MIME-Version: 1.0 In-Reply-To: <20180904004417.GA9842@dhcp-128-65.nay.redhat.com> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Dave Young Cc: thomas.lendacky@amd.com, bhe@redhat.com, joro@8bytes.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, mingo@redhat.com, ebiederm@xmission.com, hpa@zytor.com, tglx@linutronix.de 5ZyoIDIwMTjlubQwOeaciDA05pelIDA4OjQ0LCBEYXZlIFlvdW5nIOWGmemBkzoKPiBPbiAwOS8w My8xOCBhdCAxMDowNnBtLCBsaWppYW5nIHdyb3RlOgo+PiDlnKggMjAxOOW5tDA55pyIMDPml6Ug MTA6NDUsIERhdmUgWW91bmcg5YaZ6YGTOgo+Pj4gT24gMDgvMzEvMTggYXQgMDQ6MTlwbSwgTGlh bmJvIEppYW5nIHdyb3RlOgo+Pj4+IEZvciBrZHVtcCBrZXJuZWwsIHdoZW4gU01FIGlzIGVuYWJs ZWQsIHRoZSBhY3BpIHRhYmxlIGFuZCBkbWkgdGFibGUgd2lsbCBuZWVkCj4+Pj4gdG8gYmUgcmVt YXBwZWQgd2l0aG91dCB0aGUgbWVtb3J5IGVuY3J5cHRpb24gbWFzay4gU28gd2UgaGF2ZSB0byBz dHJlbmd0aGVuCj4+Pj4gdGhlIGxvZ2ljIGluIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3Qo KSwgd2hpY2ggbWFrZXMgdXMgaGF2ZSBhbiBvcHBvcnR1bml0eQo+Pj4+IHRvIGFkanVzdCB0aGUg bWVtb3J5IGVuY3J5cHRpb24gbWFzay4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IExpYW5ibyBK aWFuZyA8bGlqaWFuZ0ByZWRoYXQuY29tPgo+Pj4+IC0tLQo+Pj4+ICBhcmNoL3g4Ni9tbS9pb3Jl bWFwLmMgfCA5ICsrKysrKysrLQo+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vaW9yZW1h cC5jIGIvYXJjaC94ODYvbW0vaW9yZW1hcC5jCj4+Pj4gaW5kZXggZTAxZTZjNjk1YWRkLi5mOWQ5 YTM5OTU1ZjMgMTAwNjQ0Cj4+Pj4gLS0tIGEvYXJjaC94ODYvbW0vaW9yZW1hcC5jCj4+Pj4gKysr IGIvYXJjaC94ODYvbW0vaW9yZW1hcC5jCj4+Pj4gQEAgLTY4OSw4ICs2ODksMTUgQEAgcGdwcm90 X3QgX19pbml0IGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBo eXNfYWRkciwKPj4+PiAgCWVuY3J5cHRlZF9wcm90ID0gdHJ1ZTsKPj4+PiAgCj4+Pj4gIAlpZiAo c21lX2FjdGl2ZSgpKSB7Cj4+Pj4gKyAgICAgICAgICAgICAgICAvKgo+Pj4+ICsgICAgICAgICAg ICAgICAgICogSW4ga2R1bXAga2VybmVsLCB0aGUgYWNwaSB0YWJsZSBhbmQgZG1pIHRhYmxlIHdp bGwgbmVlZAo+Pj4+ICsgICAgICAgICAgICAgICAgICogdG8gYmUgcmVtYXBwZWQgd2l0aG91dCB0 aGUgbWVtb3J5IGVuY3J5cHRpb24gbWFzay4gSGVyZQo+Pj4+ICsgICAgICAgICAgICAgICAgICog d2UgaGF2ZSB0byBzdHJlbmd0aGVuIHRoZSBsb2dpYyB0byBhZGp1c3QgdGhlIG1lbW9yeQo+Pj4+ ICsgICAgICAgICAgICAgICAgICogZW5jcnlwdGlvbiBtYXNrLgo+Pj4KPj4+IEFzc3VtZSB0aGUg YWNwaS9kbWkgdGFibGVzIGFyZSBpZGVudGljYWwgZm9yIGJvdGggMXN0IGtlcm5lbCBhbmQga2R1 bXAKPj4+IGtlcm5lbCwgSSdtIG5vdCBzdXJlIHdoYXQgaXMgdGhlIGRpZmZlcmVuY2UsIHdoeSBu ZWVkIHNwZWNpYWwgaGFuZGxpbmcKPj4+IGZvciBrZHVtcC4gQ2FuIHlvdSBhZGQgbW9yZSBleHBs YW5hdGlvbnM/Cj4+Pgo+Pgo+PiBPaywgaSB3aWxsIHVzZSBhIGRtaSBleGFtcGxlIHRvIGV4cGxh aW4gdGhpcyBpc3N1ZS4KPj4KPj4gVGhlcmUgYXJlIHNpZ25pZmljYW50IGRpZmZlcmVuY2VzIGFi b3V0IEU4MjAgYmV0d2VlbiB0aGUgMXN0IGtlcm5lbCBhbmQga2R1bXAga2VybmVsLiBJIHBhc3Rl ZCB0aGVtIGF0IGJvdHRvbS4KPj4KPj4gRmlyc3RseSwgd2UgbmVlZCB0byBrbm93IGhvdyB0aGV5 IGFyZSBjYWxsZWQuCj4+IF9fYWNwaV9tYXBfdGFibGUoKVwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gZWFybHlfbWVtcmVtYXBfaXNfc2V0 dXBfZGF0YSgpCj4+ICAgICAgICAgICAgICAgICAgICB8LT4gZWFybHlfbWVtcmVtYXAoKS0+IGVh cmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QoKS0+IHwgbWVtcmVtYXBfaXNfZWZpX2RhdGEoKQo+ PiAgZG1pX2Vhcmx5X3JlbWFwKCkvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcIG1lbXJlbWFwX3Nob3VsZF9tYXBfZGVjcnlwdGVkKCktPiBl ODIwX19nZXRfZW50cnlfdHlwZSgpCj4+Cj4+IFNlY29uZGx5LCB3ZSBhbHNvIG5lZWQgdG8gdW5k ZXJzdGFuZCB0aGUgbWVtcmVtYXBfc2hvdWxkX21hcF9kZWNyeXB0ZWQoKSwgd2hpY2ggaXMgaWxs dXN0cmF0ZWQgYnkgdGhlIGZha2UgY29kZS4KPj4gc3RhdGljIGJvb2wgbWVtcmVtYXBfc2hvdWxk X21hcF9kZWNyeXB0ZWQocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplKQo+PiB7Cj4+ Cj4+ICAgICAvKiBjb2RlIC4uLiAqLwo+Pgo+PiAgICAgc3dpdGNoIChlODIwX19nZXRfZW50cnlf dHlwZShwaHlzX2FkZHIsIHBoeXNfYWRkciArIHNpemUgLSAxKSkgewo+PiAgICAgICAgIGNhc2Ug RTgyMF9UWVBFX1JFU0VSVkVEOgo+PiAgICAgICAgIGNhc2UgRTgyMF9UWVBFX0FDUEk6Cj4+ICAg ICAgICAgY2FzZSBFODIwX1RZUEVfTlZTOgo+PiAgICAgICAgIGNhc2UgRTgyMF9UWVBFX1VOVVNB QkxFOgo+PiAgICAgICAgICAgICAgICAgLyogRm9yIFNFViwgdGhlc2UgYXJlYXMgYXJlIGVuY3J5 cHRlZCAqLwo+PiAgICAgICAgICAgICAgICAgaWYgKHNldl9hY3RpdmUoKSkKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICAgICAgICAgICAgICAgICAvKiBGYWxsdGhyb3VnaCAq Lwo+Pgo+PiAgICAgICAgIGNhc2UgRTgyMF9UWVBFX1BSQU06Cj4+ICAgICAgICAgICAgICAgICAv KiBGb3IgU01FLCB0aGVzZSBhcmVhcyBhcmUgZGVjcnlwdGVkICovCj4+ICAgICAgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKPj4gICAgICAgICBkZWZhdWx0Ogo+PiAgICAgICAgICAgICAgICAgLyog dGhlc2UgYXJlYXMgYXJlIGVuY3J5cHRlZCBieSBkZWZhdWx0Ki8KPj4gICAgICAgICAgICAgICAg IGJyZWFrOwo+PiAgICAgfQo+Pgo+PiAgICAgcmV0dXJuIGZhbHNlOwo+PiB9Cj4+Cj4+IEZvciB0 aGUgZG1pIGNhc2UsIHRoZSBkbWkgYmFzZSBhZGRyZXNzIGlzIDB4NjI4NmIwMDAgaW4gbXkgdGVz dCBtYWNoaW5lLgo+Pgo+PiBJbiB0aGUgMXN0IGtlcm5lbCwgdGhlIGU4MjBfX2dldF9lbnRyeV90 eXBlKCkgY2FuIGdldCBhIHZhbGlkIGVudHJ5IGFuZCB0eXBlIGJ5IHRoZSBkbWkgYWRkcmVzcywg YW5kIHdlIGNhbiBhbHNvIGZpbmQgdGhlIGRtaSBiYXNlIGFkZHJlc3MgZnJvbSBlODIwLgo+PiAo c2VlIHRoZSAxc3Qga2VybmVsIGxvZykKPj4gMHg2Mjg2YjAwMCDiiIggW21lbSAweDAwMDAwMDAw NjI4NmIwMDAtMHgwMDAwMDAwMDYyODZlZmZmXQo+PiBTbywgdGhlc2UgYXJlYXMgYXJlIGRlY3J5 cHRlZCBhY2NvcmRpbmcgdG8gdGhlIG1lbXJlbWFwX3Nob3VsZF9tYXBfZGVjcnlwdGVkKCkuCj4+ Cj4+IEluIGtkdW1wIGtlcm5lbCwgdGhlIGRtaSBiYXNlIGFkZHJlc3MgaXMgc3RpbGwgMHg2Mjg2 YjAwMCwgYnV0IHdlIGNhbiBub3QgZmluZCB0aGUgZG1pIGJhc2UgYWRkcmVzcyBmcm9tIGU4MjAg YW55IG1vcmUuIFRoZSBlODIwX19nZXRfZW50cnlfdHlwZSgpIGNhbgo+PiBub3QgZ2V0IGEgdmFs aWQgZW50cnkgYW5kIHR5cGUgYnkgdGhlIGRtaSBiYXNlIGFkZHJlc3MsIGl0IHdpbGwgZ28gaW50 byB0aGUgZGVmYXVsdCBicmFuY2guIFRoYXQgaXMgdG8gc2F5LCB0aGVzZSBhcmVhcyBiZWNvbWUg ZW5jcnlwdGVkLiBJbiBmYWN0LCB0aGVzZQo+PiBhcmVhcyBhcmUgYWxzbyBkZWNyeXB0ZWQsIHNv IHdlIGhhdmUgdG8gc3RyZW5ndGhlbiB0aGUgbG9naWMgb2YgYWRqdXN0aW5nIHRoZSBtZW1vcnkg ZW5jcnlwdGlvbiBtYXNrLgo+Pgo+Pgo+PiBUaGUgMXN0IGtlcm5lbCBsb2c6Cj4+Cj4+IFsgICAg MC4wMDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKPj4gWyAgICAwLjAwMDAw MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOGJmZmZd IHVzYWJsZQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDhj MDAwLTB4MDAwMDAwMDAwMDA5ZmZmZl0gcmVzZXJ2ZWQKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1l ODIwOiBbbWVtIDB4MDAwMDAwMDAwMDBlMDAwMC0weDAwMDAwMDAwMDAwZmZmZmZdIHJlc2VydmVk Cj4+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgw MDAwMDAwMDI5OTIwZmZmXSB1c2FibGUKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVt IDB4MDAwMDAwMDAyOTkyMTAwMC0weDAwMDAwMDAwMjk5MjFmZmZdIHJlc2VydmVkCj4+IFsgICAg MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMjk5MjIwMDAtMHgwMDAwMDAwMDYy MjU2ZmZmXSB1c2FibGUKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAw MDA2MjI1NzAwMC0weDAwMDAwMDAwNjIzNTZmZmZdIHJlc2VydmVkCj4+IFsgICAgMC4wMDAwMDBd IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjIzNTcwMDAtMHgwMDAwMDAwMDYyMzVjZmZmXSBB Q1BJIGRhdGEKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjM1 ZDAwMC0weDAwMDAwMDAwNjIzZGJmZmZdIHVzYWJsZQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4 MjA6IFttZW0gMHgwMDAwMDAwMDYyM2RjMDAwLTB4MDAwMDAwMDA2MjYxYmZmZl0gcmVzZXJ2ZWQK Pj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjYxYzAwMC0weDAw MDAwMDAwNjI2M2RmZmZdIHVzYWJsZQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g MHgwMDAwMDAwMDYyNjNlMDAwLTB4MDAwMDAwMDA2MjY5ZGZmZl0gcmVzZXJ2ZWQKPj4gWyAgICAw LjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjY5ZTAwMC0weDAwMDAwMDAwNjI3 ZDZmZmZdIHVzYWJsZQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw MDYyN2Q3MDAwLTB4MDAwMDAwMDA2MjdlM2ZmZl0gQUNQSSBkYXRhCj4+IFsgICAgMC4wMDAwMDBd IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjI3ZTQwMDAtMHgwMDAwMDAwMDYyN2U0ZmZmXSBB Q1BJIE5WUwo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDYyN2U1 MDAwLTB4MDAwMDAwMDA2MjdlOGZmZl0gQUNQSSBkYXRhCj4+IFsgICAgMC4wMDAwMDBdIEJJT1Mt ZTgyMDogW21lbSAweDAwMDAwMDAwNjI3ZTkwMDAtMHgwMDAwMDAwMDYyN2VhZmZmXSB1c2FibGUK Pj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjdlYjAwMC0weDAw MDAwMDAwNjI3ZWJmZmZdIEFDUEkgZGF0YQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt ZW0gMHgwMDAwMDAwMDYyN2VjMDAwLTB4MDAwMDAwMDA2Mjg2YWZmZl0gdXNhYmxlCj4+IFsgICAg MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjI4NmIwMDAtMHgwMDAwMDAwMDYy ODZlZmZmXSByZXNlcnZlZAo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAw MDAwMDYyODZmMDAwLTB4MDAwMDAwMDA2ODJmOGZmZl0gdXNhYmxlCj4+IFsgICAgMC4wMDAwMDBd IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjgyZjkwMDAtMHgwMDAwMDAwMDY4YjA1ZmZmXSBy ZXNlcnZlZAo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDY4YjA2 MDAwLTB4MDAwMDAwMDA2OGIwOWZmZl0gQUNQSSBOVlMKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1l ODIwOiBbbWVtIDB4MDAwMDAwMDA2OGIwYTAwMC0weDAwMDAwMDAwNjhiMWFmZmZdIHJlc2VydmVk Cj4+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjhiMWIwMDAtMHgw MDAwMDAwMDY4YjFkZmZmXSBBQ1BJIE5WUwo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt ZW0gMHgwMDAwMDAwMDY4YjFlMDAwLTB4MDAwMDAwMDA3MWQxZGZmZl0gdXNhYmxlCj4+IFsgICAg MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNzFkMWUwMDAtMHgwMDAwMDAwMDcx ZDJkZmZmXSByZXNlcnZlZAo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAw MDAwMDcxZDJlMDAwLTB4MDAwMDAwMDA3MWQzZGZmZl0gQUNQSSBOVlMKPj4gWyAgICAwLjAwMDAw MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA3MWQzZTAwMC0weDAwMDAwMDAwNzFkNGRmZmZd IEFDUEkgZGF0YQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDcx ZDRlMDAwLTB4MDAwMDAwMDA3N2ZmZmZmZl0gdXNhYmxlCj4+IFsgICAgMC4wMDAwMDBdIEJJT1Mt ZTgyMDogW21lbSAweDAwMDAwMDAwNzgwMDAwMDAtMHgwMDAwMDAwMDhmZmZmZmZmXSByZXNlcnZl ZAo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZlZDgwMDAwLTB4 MDAwMDAwMDBmZWQ4MGZmZl0gcmVzZXJ2ZWQKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBb bWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4N2VmZmZmZmZdIHVzYWJsZQo+PiBbICAg IDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwODdmMDAwMDAwLTB4MDAwMDAwMDg3 ZmZmZmZmZl0gcmVzZXJ2ZWQKPj4KPj4gVGhlIGtkdW1wIGtlcm5lbCBsb2c6Cj4+Cj4+IFsgICAg MC4wMDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKPj4gWyAgICAwLjAwMDAw MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMTAwMC0weDAwMDAwMDAwMDAwOGJmZmZd IHVzYWJsZQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDUyMDAw MDAwLTB4MDAwMDAwMDA2MWZmZmZmZl0gdXNhYmxlCj4+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgy MDogW21lbSAweDAwMDAwMDAwNjIyZWUwMDAtMHgwMDAwMDAwMDYyMzAwZmZmXSBBQ1BJIGRhdGEK Pj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjMwMTAwMC0weDAw MDAwMDAwNjIzMDFmZmZdIEFDUEkgTlZTCj4+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21l bSAweDAwMDAwMDAwNjI3MDMwMDAtMHgwMDAwMDAwMDYyNzAzZmZmXSBBQ1BJIGRhdGEKPj4gWyAg ICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA2MjczNTAwMC0weDAwMDAwMDAw NjI3MzdmZmZdIEFDUEkgZGF0YQo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgw MDAwMDAwMDYyNzNhMDAwLTB4MDAwMDAwMDA2MjczYWZmZl0gQUNQSSBkYXRhCj4+IFsgICAgMC4w MDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNjhiMDYwMDAtMHgwMDAwMDAwMDY4YjA5 ZmZmXSBBQ1BJIE5WUwo+PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw MDY4YjFiMDAwLTB4MDAwMDAwMDA2OGIxZGZmZl0gQUNQSSBOVlMKPj4gWyAgICAwLjAwMDAwMF0g QklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA3MWQyZTAwMC0weDAwMDAwMDAwNzFkM2RmZmZdIEFD UEkgTlZTCj4+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNzFkM2Uw MDAtMHgwMDAwMDAwMDcxZDRkZmZmXSBBQ1BJIGRhdGEKPj4gWyAgICAwLjAwMDAwMF0gQklPUy1l ODIwOiBbbWVtIDB4MDAwMDAwMDdmZTAwMDAwMC0weDAwMDAwMDA4N2RmNzBmZmZdIHVzYWJsZQo+ Pgo+IAo+IENhbiB5b3UgcHJvdmlkZSB0aGUgZWZpIG1lbW1hcCBkbWVzZz8gIGJvb3Qgd2l0aCBl Zmk9ZGVidWc/Cj4gCgpTb3JyeSwgdGhpcyBtYWNoaW5lIGlzIFByb0xpYW50IERMMzg1R2VuMTAs IHdoaWNoIGlzIG5vdCBFRkkgYm9vdC4KSSBtaWdodCBub3QgYmUgYWJsZSB0byBwcm92aWRlIHRo ZSBFRkkgaW5mb3JtYXRpb24uCgo+Pj4+ICsgICAgICAgICAgICAgICAgICovCj4+Pj4gIAkJaWYg KGVhcmx5X21lbXJlbWFwX2lzX3NldHVwX2RhdGEocGh5c19hZGRyLCBzaXplKSB8fAo+Pj4+IC0J CSAgICBtZW1yZW1hcF9pc19lZmlfZGF0YShwaHlzX2FkZHIsIHNpemUpKQo+Pj4+ICsJCSAgICBt ZW1yZW1hcF9pc19lZmlfZGF0YShwaHlzX2FkZHIsIHNpemUpIHx8Cj4+Pj4gKwkJICAgIGlzX2tk dW1wX2tlcm5lbCgpKQo+Pj4+ICAJCQllbmNyeXB0ZWRfcHJvdCA9IGZhbHNlOwo+Pj4+ICAJfQo+ Pj4+ICAKPj4+PiAtLSAKPj4+PiAyLjE3LjEKPj4+Pgo+Pj4KPj4+IFRoYW5rcwo+Pj4gRGF2ZQo+ Pj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVj IG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK