From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH for-4.12 v2 17/17] xen/arm: Track page accessed between batch of Set/Way operations Date: Fri, 7 Dec 2018 13:43:55 -0800 (PST) Message-ID: References: <20181204202651.8836-1-julien.grall@arm.com> <20181204202651.8836-18-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gVNuh-0004iY-Su for xen-devel@lists.xenproject.org; Fri, 07 Dec 2018 21:43:59 +0000 In-Reply-To: <20181204202651.8836-18-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall Cc: sstabellini@kernel.org, Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org T24gVHVlLCA0IERlYyAyMDE4LCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gQXQgdGhlIG1vbWVudCwg dGhlIGltcGxlbWVudGF0aW9uIG9mIFNldC9XYXkgb3BlcmF0aW9ucyB3aWxsIGdvIHRocm91Z2gK PiBhbGwgdGhlIGVudHJpZXMgb2YgdGhlIGd1ZXN0IFAyTSBhbmQgZmx1c2ggdGhlbS4gSG93ZXZl ciwgdGhpcyBpcyB2ZXJ5Cj4gZXhwZW5zaXZlIGFuZCBtYXkgcmVuZGVyIHVudXNhYmxlIGEgZ3Vl c3QgT1MgdXNpbmcgdGhlbS4KPiAKPiBGb3IgaW5zdGFuY2UsIExpbnV4IDMyLWJpdCB3aWxsIHVz ZSBTZXQvV2F5IG9wZXJhdGlvbnMgZHVyaW5nIHNlY29uZGFyeQo+IENQVSBicmluZy11cC4gQXMg dGhlIGltcGxlbWVudGF0aW9uIGlzIHJlYWxseSBleHBlbnNpdmUsIGl0IG1heSBiZSBwb3NzaWJs ZQo+IHRvIGhpdCB0aGUgQ1BVIGJyaW5nLXVwIHRpbWVvdXQuCj4gCj4gVG8gbGltaXQgdGhlIFNl dC9XYXkgaW1wYWN0LCB3ZSB0cmFjayB3aGF0IHBhZ2VzIGhhcyBiZWVuIG9mIHRoZSBndWVzdAo+ IGhhcyBiZWVuIGFjY2Vzc2VkIGJldHdlZW4gYmF0Y2ggb2YgU2V0L1dheSBvcGVyYXRpb25zLiBU aGlzIGlzIGRvbmUKPiB1c2luZyBiaXRbMF0gKGFrYSB2YWxpZCBiaXQpIG9mIHRoZSBQMk0gZW50 cnkuCj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IHBlci1hcmNoIGhlbHBlciBpcyBpbnRyb2R1 Y2VkIHRvIHBlcmZvcm0gYWN0aW9ucyBqdXN0Cj4gYmVmb3JlIHRoZSBndWVzdCBpcyBmaXJzdCB1 bnBhdXNlZC4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gaW52YWxpZGF0ZSB0aGUKPiBQMk0gdG8gdHJh Y2sgYWNjZXNzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBndWVzdC4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgo+IAo+IC0tLQo+IAo+IFdoaWxl IHdlIGNhbiBzcHJlYWQgZC0+Y3JlYXRpb25fZmluaXNoZWQgYWxsIG92ZXIgdGhlIGNvZGUsIHRo ZSBwZXItYXJjaAo+IGhlbHBlciB0byBwZXJmb3JtIGFjdGlvbnMganVzdCBiZWZvcmUgdGhlIGd1 ZXN0IGlzIGZpcnN0IHVucGF1c2VkIGNhbgo+IGJyaW5nIGEgbG90IG9mIGJlbmVmaXQgZm9yIGJv dGggYXJjaGl0ZWN0dXJlLiBGb3IgaW5zdGFuY2UsIG9uIEFybSwgdGhlCj4gZmx1c2ggdG8gdGhl IGluc3RydWN0aW9uIGNhY2hlIGNvdWxkIGJlIGRlbGF5ZWQgdW50aWwgdGhlIGRvbWFpbiBpcwo+ IGZpcnN0IHJ1bi4gVGhpcyB3b3VsZCBpbXByb3ZlIGdyZWF0bHkgdGhlIHBlcmZvcm1hbmNlIG9m IGNyZWF0aW5nIGd1ZXN0Lgo+IAo+IEkgYW0gc3RpbGwgZG9pbmcgdGhlIGJlbmNobWFyayB3aGV0 aGVyIGhhdmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24gaXMKPiB3b3J0aCBpdC4gSSB3aWxsIHBy b3ZpZGUgbnVtYmVycyBhcyBzb29uIGFzIEkgaGF2ZSB0aGVtLgo+IAo+IENjOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4gQ2M6IEp1bGllbiBHcmFsbCA8anVs aWVuLmdyYWxsQGFybS5jb20+Cj4gQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+Cj4gQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNv bT4KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxr IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgo+IENjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4K PiBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KPiAtLS0KPiAgeGVuL2FyY2gvYXJt L2RvbWFpbi5jICAgICB8IDE0ICsrKysrKysrKysrKysrCj4gIHhlbi9hcmNoL2FybS9wMm0uYyAg ICAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiAgeGVuL2FyY2gveDg2 L2RvbWFpbi5jICAgICB8ICA0ICsrKysKPiAgeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICB8ICA1 ICsrKystCj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggfCAgMiArKwo+ICB4ZW4vaW5jbHVk ZS94ZW4vZG9tYWluLmggIHwgIDIgKysKPiAgNiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWlu LmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPiBpbmRleCAxZDkyNmRjYjI5Li40MWYxMDE3NDZl IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYwo+ICsrKyBiL3hlbi9hcmNoL2Fy bS9kb21haW4uYwo+IEBAIC03NjcsNiArNzY3LDIwIEBAIGludCBhcmNoX2RvbWFpbl9zb2Z0X3Jl c2V0KHN0cnVjdCBkb21haW4gKmQpCj4gICAgICByZXR1cm4gLUVOT1NZUzsKPiAgfQo+ICAKPiAr dm9pZCBhcmNoX2RvbWFpbl9jcmVhdGlvbl9maW5pc2hlZChzdHJ1Y3QgZG9tYWluICpkKQo+ICt7 Cj4gKyAgICAvKgo+ICsgICAgICogVG8gYXZvaWQgZmx1c2hpbmcgdGhlIHdob2xlIGd1ZXN0IFJB TSBvbiB0aGUgZmlyc3QgU2V0L1dheSwgd2UKPiArICAgICAqIGludmFsaWRhdGUgdGhlIFAyTSB0 byB0cmFjayB3aGF0IGhhcyBiZWVuIGFjY2Vzc2VkLgo+ICsgICAgICoKPiArICAgICAqIFRoaXMg aXMgb25seSB0dXJuZWQgd2hlbiBJT01NVSBpcyBub3QgdXNlZCBvciB0aGUgcGFnZS10YWJsZSBh cmUKPiArICAgICAqIG5vdCBzaGFyZWQgYmVjYXVzZSBiaXRbMF0gKGUuZyB2YWxpZCBiaXQpIHVu c2V0IHdpbGwgcmVzdWx0Cj4gKyAgICAgKiBJT01NVSBmYXVsdCB0aGF0IGNvdWxkIGJlIG5vdCBm aXhlZC11cC4KPiArICAgICAqLwo+ICsgICAgaWYgKCAhaW9tbXVfdXNlX2hhcF9wdChkKSApCj4g KyAgICAgICAgcDJtX2ludmFsaWRhdGVfcm9vdChwMm1fZ2V0X2hvc3RwMm0oZCkpOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgaW50IGlzX2d1ZXN0X3B2MzJfcHNyKHVpbnQzMl90IHBzcikKPiAgewo+ICAg ICAgc3dpdGNoIChwc3IgJiBQU1JfTU9ERV9NQVNLKQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKPiBpbmRleCA4ZWU2ZmY3YmQ3Li40NGVhMzU4 MGNmIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9wMm0uYwo+ICsrKyBiL3hlbi9hcmNoL2Fy bS9wMm0uYwo+IEBAIC0xMDc5LDYgKzEwNzksMjIgQEAgc3RhdGljIHZvaWQgcDJtX2ludmFsaWRh dGVfdGFibGUoc3RydWN0IHAybV9kb21haW4gKnAybSwgbWZuX3QgbWZuKQo+ICB9Cj4gIAo+ICAv Kgo+ICsgKiBJbnZhbGlkYXRlIGFsbCBlbnRyaWVzIGluIHRoZSByb290IHBhZ2UtdGFibGVzLiBU aGlzIGlzCj4gKyAqIHVzZWZ1bCB0byBnZXQgZmF1bHQgb24gZW50cnkgYW5kIGRvIGFuIGFjdGlv bi4KPiArICovCj4gK3ZvaWQgcDJtX2ludmFsaWRhdGVfcm9vdChzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtKQo+ICt7Cj4gKyAgICB1bnNpZ25lZCBpbnQgaTsKPiArCj4gKyAgICBwMm1fd3JpdGVfbG9j ayhwMm0pOwo+ICsKPiArICAgIGZvciAoIGkgPSAwOyBpIDwgUDJNX1JPT1RfTEVWRUw7IGkrKyAp Cj4gKyAgICAgICAgcDJtX2ludmFsaWRhdGVfdGFibGUocDJtLCBwYWdlX3RvX21mbihwMm0tPnJv b3QgKyBpKSk7Cj4gKwo+ICsgICAgcDJtX3dyaXRlX3VubG9jayhwMm0pOwo+ICt9Cj4gKwo+ICsv Kgo+ICAgKiBSZXNvbHZlIGFueSB0cmFuc2xhdGlvbiBmYXVsdCBkdWUgdG8gY2hhbmdlIGluIHRo ZSBwMm0uIFRoaXMKPiAgICogaW5jbHVkZXMgYnJlYWstYmVmb3JlLW1ha2UgYW5kIHZhbGlkIGJp dCBjbGVhcmVkLgo+ICAgKi8KPiBAQCAtMTU4NywxNSArMTYwMywxOCBAQCBpbnQgcDJtX2NhY2hl X2ZsdXNoX3JhbmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90ICpwc3RhcnQsIGdmbl90IGVuZCkK PiAgICAgICAgICAgKi8KPiAgICAgICAgICBpZiAoIGdmbl9lcShzdGFydCwgbmV4dF9ibG9ja19n Zm4pICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIG1mbiA9IHAybV9nZXRfZW50cnkocDJt LCBzdGFydCwgJnQsIE5VTEwsICZvcmRlciwgTlVMTCk7Cj4gKyAgICAgICAgICAgIGJvb2wgdmFs aWQ7Cj4gKwo+ICsgICAgICAgICAgICBtZm4gPSBwMm1fZ2V0X2VudHJ5KHAybSwgc3RhcnQsICZ0 LCBOVUxMLCAmb3JkZXIsICZ2YWxpZCk7Cj4gICAgICAgICAgICAgIG5leHRfYmxvY2tfZ2ZuID0g Z2ZuX25leHRfYm91bmRhcnkoc3RhcnQsIG9yZGVyKTsKPiAgCj4gICAgICAgICAgICAgIC8qCj4g ICAgICAgICAgICAgICAqIFRoZSBmb2xsb3dpbmcgcmVnaW9ucyBjYW4gYmUgc2tpcHBlZDoKPiAg ICAgICAgICAgICAgICogICAgICAtIEhvbGUKPiAgICAgICAgICAgICAgICogICAgICAtIG5vbi1S QU0KPiArICAgICAgICAgICAgICogICAgICAtIGJsb2NrIHdpdGggdmFsaWQgYml0IChiaXRbMF0p IHVuc2V0Cj4gICAgICAgICAgICAgICAqLwo+IC0gICAgICAgICAgICBpZiAoIG1mbl9lcShtZm4s IElOVkFMSURfTUZOKSB8fCAhcDJtX2lzX2FueV9yYW0odCkgKQo+ICsgICAgICAgICAgICBpZiAo IG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSB8fCAhcDJtX2lzX2FueV9yYW0odCkgfHwgIXZhbGlk ICkKPiAgICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgY291bnQrKzsKPiAgICAgICAg ICAgICAgICAgIHN0YXJ0ID0gbmV4dF9ibG9ja19nZm47Cj4gQEAgLTE2MjksNiArMTY0OCw3IEBA IGludCBwMm1fY2FjaGVfZmx1c2hfcmFuZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgKnBzdGFy dCwgZ2ZuX3QgZW5kKQo+ICAgKi8KPiAgdm9pZCBwMm1fZmx1c2hfdm0oc3RydWN0IHZjcHUgKnYp Cj4gIHsKPiArICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0odi0+ ZG9tYWluKTsKPiAgICAgIGludCByYzsKPiAgICAgIGdmbl90IHN0YXJ0ID0gX2dmbigwKTsKPiAg Cj4gQEAgLTE2NDgsNiArMTY2OCwxMiBAQCB2b2lkIHAybV9mbHVzaF92bShzdHJ1Y3QgdmNwdSAq dikKPiAgICAgICAgICAgICAgICAgICJQMk0gaGFzIG5vdCBiZWVuIGNvcnJlY3RseSBjbGVhbmVk IChyYyA9ICVkKVxuIiwKPiAgICAgICAgICAgICAgICAgIHJjKTsKPiAgCj4gKyAgICAvKgo+ICsg ICAgICogSW52YWxpZGF0ZSB0aGUgcDJtIHRvIHRyYWNrIHdoaWNoIHBhZ2Ugd2FzIG1vZGlmaWVk IGJ5IHRoZSBndWVzdAo+ICsgICAgICogYmV0d2VlbiBjYWxsIG9mIHAybV9mbHVzaF92bSgpLgo+ ICsgICAgICovCj4gKyAgICBwMm1faW52YWxpZGF0ZV9yb290KHAybSk7CgpEb2VzIHRoaXMgbWVh biB0aGF0IHdlIGFyZSBpbnZhbGlkYXRpbmcgdGhlIHAybSBvbmNlIG1vcmUgdGhhbgpuZWNlc3Nh cnksIHdoZW4gdGhlIGNhY2hlcyBhcmUgZmluYWxseSBlbmFibGVkIGluIExpbnV4PyBDb3VsZCB0 aGF0IGJlCmF2b2lkZWQgYnkgcGFzc2luZyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHAybV9m bHVzaF92bT8KSXMgdGhpcyBvcHRpbWl6YXRpb24gSSBhbSBzdWdnZXN0aW5nIHVuaW1wb3J0YW50 PwoKCj4gICAgICB2LT5hcmNoLm5lZWRfZmx1c2hfdG9fcmFtID0gZmFsc2U7Cj4gIH0KPiAgCj4g ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4u Ywo+IGluZGV4IGI0ZDU5NDg3YWQuLmQyOGUzZjliMTUgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv eDg2L2RvbWFpbi5jCj4gKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCj4gQEAgLTc2Miw2ICs3 NjIsMTAgQEAgaW50IGFyY2hfZG9tYWluX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKPiAg ICAgIHJldHVybiByZXQ7Cj4gIH0KPiAgCj4gK3ZvaWQgYXJjaF9kb21haW5fY3JlYXRpb25fZmlu aXNoZWQoc3RydWN0IGRvbWFpbiAqZCkKPiArewo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBUaGVzZSBh cmUgdGhlIG1hc2tzIG9mIENSNCBiaXRzIChzdWJqZWN0IHRvIGhhcmR3YXJlIGF2YWlsYWJpbGl0 eSkgd2hpY2ggYQo+ICAgKiBQViBndWVzdCBtYXkgbm90IGxlZ2l0aW1pYXRlbHkgYXR0ZW1wdCB0 byBtb2RpZnkuCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9u L2RvbWFpbi5jCj4gaW5kZXggNzhjYzUyNDllOC4uYzYyM2RhZWM1NiAxMDA2NDQKPiAtLS0gYS94 ZW4vY29tbW9uL2RvbWFpbi5jCj4gKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwo+IEBAIC0xMTE2 LDggKzExMTYsMTEgQEAgaW50IGRvbWFpbl91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoc3Ry dWN0IGRvbWFpbiAqZCkKPiAgICAgICAqIENyZWF0aW9uIGlzIGNvbnNpZGVyZWQgZmluaXNoZWQg d2hlbiB0aGUgY29udHJvbGxlciByZWZlcmVuY2UgY291bnQKPiAgICAgICAqIGZpcnN0IGRyb3Bz IHRvIDAuCj4gICAgICAgKi8KPiAtICAgIGlmICggbmV3ID09IDAgKQo+ICsgICAgaWYgKCBuZXcg PT0gMCAmJiAhZC0+Y3JlYXRpb25fZmluaXNoZWQgKQo+ICsgICAgewo+ICAgICAgICAgIGQtPmNy ZWF0aW9uX2ZpbmlzaGVkID0gdHJ1ZTsKPiArICAgICAgICBhcmNoX2RvbWFpbl9jcmVhdGlvbl9m aW5pc2hlZChkKTsKPiArICAgIH0KPiAgCj4gICAgICBkb21haW5fdW5wYXVzZShkKTsKPiAgCj4g ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20t YXJtL3AybS5oCj4gaW5kZXggNzlhYmNiNWE2My4uMDFjZDNlZTRiNSAxMDA2NDQKPiAtLS0gYS94 ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0u aAo+IEBAIC0yMzEsNiArMjMxLDggQEAgaW50IHAybV9zZXRfZW50cnkoc3RydWN0IHAybV9kb21h aW4gKnAybSwKPiAgCj4gIGJvb2wgcDJtX3Jlc29sdmVfdHJhbnNsYXRpb25fZmF1bHQoc3RydWN0 IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuKTsKPiAgCj4gK3ZvaWQgcDJtX2ludmFsaWRhdGVfcm9vdChz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtKTsKPiArCj4gIC8qCj4gICAqIENsZWFuICYgaW52YWxpZGF0 ZSBjYWNoZXMgY29ycmVzcG9uZGluZyB0byBhIHJlZ2lvbiBbc3RhcnQsZW5kKSBvZiBndWVzdAo+ ICAgKiBhZGRyZXNzIHNwYWNlLgo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZG9tYWlu LmggYi94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmgKPiBpbmRleCAzM2U0MTQ4NmNiLi5kMWJmYzgy ZjU3IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9kb21haW4uaAo+ICsrKyBiL3hlbi9p bmNsdWRlL3hlbi9kb21haW4uaAo+IEBAIC03MCw2ICs3MCw4IEBAIHZvaWQgYXJjaF9kb21haW5f dW5wYXVzZShzdHJ1Y3QgZG9tYWluICpkKTsKPiAgCj4gIGludCBhcmNoX2RvbWFpbl9zb2Z0X3Jl c2V0KHN0cnVjdCBkb21haW4gKmQpOwo+ICAKPiArdm9pZCBhcmNoX2RvbWFpbl9jcmVhdGlvbl9m aW5pc2hlZChzdHJ1Y3QgZG9tYWluICpkKTsKPiArCj4gIHZvaWQgYXJjaF9wMm1fc2V0X2FjY2Vz c19yZXF1aXJlZChzdHJ1Y3QgZG9tYWluICpkLCBib29sIGFjY2Vzc19yZXF1aXJlZCk7Cj4gIAo+ ICBpbnQgYXJjaF9zZXRfaW5mb19ndWVzdChzdHJ1Y3QgdmNwdSAqLCB2Y3B1X2d1ZXN0X2NvbnRl eHRfdSk7Cj4gLS0gCj4gMi4xMS4wCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs