From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH RFC 01/12] x86/paging: introduce paging_set_allocation Date: Wed, 3 Aug 2016 16:59:52 +0100 Message-ID: References: <1469809747-11176-1-git-send-email-roger.pau@citrix.com> <1469809747-11176-2-git-send-email-roger.pau@citrix.com> <909c0b68-f63f-0dde-bbd6-c37b4bfcc587@citrix.com> <20160802094722.2umis4u5tpua567z@mac> <20160802154937.sf5lufgpbmuxtkpj@mac> <57A0E27B0200007800101E90@prv-mh.provo.novell.com> <57A229200200007800102581@prv-mh.provo.novell.com> <8ee96cc2-f914-692e-ac5e-a5d6e387e5bb@citrix.com> <57A22BE502000078001025B0@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bV57d-0002iF-Jn for xen-devel@lists.xenproject.org; Wed, 03 Aug 2016 22:58:45 +0000 In-Reply-To: <57A22BE502000078001025B0@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Andrew Cooper , Roger Pau Monne , TimDeegan , xen-devel List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBdWcgMywgMjAxNiBhdCA0OjM3IFBNLCBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3Vz ZS5jb20+IHdyb3RlOgo+Pj4+IE9uIDAzLjA4LjE2IGF0IDE3OjI4LCA8Z2VvcmdlLmR1bmxhcEBj aXRyaXguY29tPiB3cm90ZToKPj4gT24gMDMvMDgvMTYgMTY6MjUsIEphbiBCZXVsaWNoIHdyb3Rl Ogo+Pj4+Pj4gT24gMDMuMDguMTYgYXQgMTc6MTEsIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5j b20+IHdyb3RlOgo+Pj4+IE9uIFR1ZSwgQXVnIDIsIDIwMTYgYXQgNToxMiBQTSwgSmFuIEJldWxp Y2ggPEpCZXVsaWNoQHN1c2UuY29tPiB3cm90ZToKPj4+Pj4+Pj4gT24gMDIuMDguMTYgYXQgMTc6 NDksIDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6Cj4+Pj4+PiBPbiBUdWUsIEF1ZyAwMiwg MjAxNiBhdCAxMTo0NzoyMkFNICswMjAwLCBSb2dlciBQYXUgTW9ubmUgd3JvdGU6Cj4+Pj4+Pj4g T24gRnJpLCBKdWwgMjksIDIwMTYgYXQgMDU6NDc6MjRQTSArMDEwMCwgQW5kcmV3IENvb3BlciB3 cm90ZToKPj4+Pj4+Pj4gQXMgdGhpcyBpcyBmb3IgdGhlIGNvbnN0cnVjdGlvbiBvZiBkb20wLCBp dCB3b3VsZCBiZSBiZXR0ZXIgdG8gdGFrZSBhCj4+Pj4+Pj4+IHByZWVtcHRpYmxlIHBvaW50ZXIs IGxvb3AgaW4gY29uc3RydWN0X2RvbTAoKSwgd2l0aCBhCj4+Pj4+Pj4+IHByb2Nlc3NfcGVuZGlu Z19zb2Z0aXJxcygpIGNhbGwgaW4gYmV0d2Vlbi4KPj4+Pj4+Pgo+Pj4+Pj4+IE5vdyBmaXhlZC4K Pj4+Pj4+Cj4+Pj4+PiBIbSwgSSBoYXZlIHRvIHN0YW5kIGNvcnJlY3RlZCwgdXNpbmcgaHlwZXJj YWxsX3ByZWVtcHRfY2hlY2sgKGFzCj4+Pj4+PiBhbnkgb2YgdGhlICpfc2V0X2FsbG9jYXRpb24g ZnVuY3Rpb24gdXNlKSwgaXMgbm90IHNhZmUgYXQgdGhpcyBwb2ludDoKPj4+Pj4+Cj4+Pj4+PiAo WEVOKSAtLS0tWyBYZW4tNC44LXVuc3RhYmxlICB4ODZfNjQgIGRlYnVnPXkgIFRhaW50ZWQ6ICAg IEMgIF0tLS0tCj4+Pj4+PiAoWEVOKSBDUFU6ICAgIDAKPj4+Pj4+IChYRU4pIFJJUDogICAgZTAw ODpbPGZmZmY4MmQwODAyMmZkNDc+XQo+Pj4+IGhhcC5jI2xvY2FsX2V2ZW50c19uZWVkX2RlbGl2 ZXJ5KzB4MjcvMHg0MAo+Pj4+Pj4gKFhFTikgUkZMQUdTOiAwMDAwMDAwMDAwMDEwMjQ2ICAgQ09O VEVYVDogaHlwZXJ2aXNvcgo+Pj4+Pj4gKFhFTikgcmF4OiAwMDAwMDAwMDAwMDAwMDAwICAgcmJ4 OiBmZmZmODMwMjNmNWE1MDAwICAgcmN4OiBmZmZmODJkMDgwMzEyOTAwCj4+Pj4+PiAoWEVOKSBy ZHg6IDAwMDAwMDAwMDAwMDAwMDEgICByc2k6IGZmZmY4MzAyM2Y1YTU2YzggICByZGk6IGZmZmY4 MzAwYjIxM2QwMDAKPj4+Pj4+IChYRU4pIHJicDogZmZmZjgyZDA4MDMwN2NjOCAgIHJzcDogZmZm ZjgyZDA4MDMwN2NjOCAgIHI4OiAgMDE4MDAwMDAwMDAwMDAwMAo+Pj4+Pj4gKFhFTikgcjk6ICAw MDAwMDAwMDAwMDAwMDAwICAgcjEwOiAwMDAwMDAwMDAwMjQ3MDAwICAgcjExOiBmZmZmODJkMDgw MjlhNWIwCj4+Pj4+PiAoWEVOKSByMTI6IDAwMDAwMDAwMDAwMDAwMTEgICByMTM6IDAwMDAwMDAw MDAwMDIzYWMgICByMTQ6IGZmZmY4MmQwODAzMDdkNGMKPj4+Pj4+IChYRU4pIHIxNTogZmZmZjgz MDIzZjVhNTZjOCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAwMDAwMDAwMDE1MjZl MAo+Pj4+Pj4gKFhFTikgY3IzOiAwMDAwMDAwMGIyMGZjMDAwICAgY3IyOiAwMDAwMDAwMDAwMDAw MDAwCj4+Pj4+PiAoWEVOKSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczogMDAw MCAgIHNzOiAwMDAwICAgY3M6IGUwMDgKPj4+Pj4+IChYRU4pIFhlbiBjb2RlIGFyb3VuZCA8ZmZm ZjgyZDA4MDIyZmQ0Nz4KPj4+PiAoaGFwLmMjbG9jYWxfZXZlbnRzX25lZWRfZGVsaXZlcnkrMHgy Ny8weDQwKToKPj4+Pj4+IChYRU4pICAwZCBhZCBmYSBmZiA0OCA4YiA0NyAwOCA8ODA+IDM4IDAw IDc0IDA5IDgwIDc4IDAxIDAwIDBmIDk0IGMwIGViIDAyIDMxCj4+Pj4gYzAKPj4+Pj4+IChYRU4p IFhlbiBzdGFjayB0cmFjZSBmcm9tIHJzcD1mZmZmODJkMDgwMzA3Y2M4Ogo+Pj4+Pj4gKFhFTikg ICAgZmZmZjgyZDA4MDMwN2QwOCBmZmZmODJkMDgwMjJmYzQ3IDAwMDAwMDAwMDAwMDAwMDAgZmZm ZjgzMDIzZjVhNTAwMAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgzMDIzZjVhNTY0OCAwMDAwMDAwMDAw MDAwMDAwIGZmZmY4MmQwODAzMDdkNGMgMDAwMDAwMDAwMDAwMjQwMAo+Pj4+Pj4gKFhFTikgICAg ZmZmZjgyZDA4MDMwN2QzOCBmZmZmODJkMDgwMjAwMDhjIDAwMDAwMDAwMDAwZmZmZmQgZmZmZjgz MDBiMWVmZDAwMAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgzMDIzZjVhNTAwMCBmZmZmODJkMDgwMzA3 ZDRjIGZmZmY4MmQwODAzMDdkNzggZmZmZjgyZDA4MDJjYWQzMAo+Pj4+Pj4gKFhFTikgICAgMDAw MDAwMDAwMDIwMzAwMCBmZmZmODMwMjNmNWE1MDAwIGZmZmY4MmQwODAyYmY4NjAgMDAwMDAwMDAw MDAwMDAwMAo+Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDAwMDAwMDAwMSBmZmZmODMwMDAwMDhiZWYw IGZmZmY4MmQwODAzMDdkZTggZmZmZjgyZDA4MDJjOTFlMAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgy ZDA4MDMwN2RlOCBmZmZmODJkMDgwMTQzOTAwIGZmZmY4MmQwODAzMDdkZTggMDAwMDAwMDAwMDAw MDAwMAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgzMDAwMDA4YmYwMCBmZmZmODJkMDgwMmViNDgwIGZm ZmY4MmQwODAzMDdkYzQgZmZmZjgyZDA4MDI4YjFjZAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgzMDAw MDA4YmYwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgZmZmZjgzMDIzZjVhNTAw MAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgyZDA4MDMwN2YwOCBmZmZmODJkMDgwMmJmMGM5IDAwMDAw MDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAo+Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDAwMDAw MDAwMCBmZmZmODJkMDgwMzA3ZjE4IGZmZmY4MzAwMDAwOGJlZTAgMDAwMDAwMDAwMDAwMDAwMQo+ Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDAwMDAwMDAwMSAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAw MDAwMDAwMDAgMDAwMDAwMDAwMDEwMDAwMAo+Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDAwMDAwMDAw MSAwMDAwMDAwMDAwMjQ3MDAwIGZmZmY4MzAwMDAwOGJlZjQgMDAwMDAwMDAwMDEwMDAwMAo+Pj4+ Pj4gKFhFTikgICAgZmZmZjgzMDEwMDAwMDAwMCAwMDAwMDAwMDAwMjQ3MDAxIDAwMDAwMDAwMDAw MDAwMTQgMDAwMDAwMDEwMDAwMDAwMAo+Pj4+Pj4gKFhFTikgICAgZmZmZjgzMDBmZmZmZmZlYyBm ZmZmODMwMDAwMDhiZWYwIGZmZmY4MmQwODAyZTA2NDAgZmZmZjgzMDAwMDA4YmZiMAo+Pj4+Pj4g KFhFTikgICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAx MTEgMDAwMDAwMDgwMDAwMDAwMAo+Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDEwMDAwMDA2ZSAwMDAw MDAwMDAwMDAwMDAzIDAwMDAwMDAwMDAwMDAyZjggMDAwMDAwMDAwMDAwMDAwMAo+Pj4+Pj4gKFhF TikgICAgMDAwMDAwMDBhZDVjMGJkMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEg MDAwMDAwMDAwMDAwMDAwOAo+Pj4+Pj4gKFhFTikgICAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODJk MDgwMTAwMDczIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAo+Pj4+Pj4gKFhFTikg ICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAw MDAwMDAwMDAwMDAwMAo+Pj4+Pj4gKFhFTikgWGVuIGNhbGwgdHJhY2U6Cj4+Pj4+PiAoWEVOKSAg ICBbPGZmZmY4MmQwODAyMmZkNDc+XSBoYXAuYyNsb2NhbF9ldmVudHNfbmVlZF9kZWxpdmVyeSsw eDI3LzB4NDAKPj4+Pj4+IChYRU4pICAgIFs8ZmZmZjgyZDA4MDIyZmM0Nz5dIGhhcF9zZXRfYWxs b2NhdGlvbisweDEwNy8weDEzMAo+Pj4+Pj4gKFhFTikgICAgWzxmZmZmODJkMDgwMjAwMDhjPl0g cGFnaW5nX3NldF9hbGxvY2F0aW9uKzB4NGMvMHg4MAo+Pj4+Pj4gKFhFTikgICAgWzxmZmZmODJk MDgwMmNhZDMwPl0gZG9tYWluX2J1aWxkLmMjaHZtX3NldHVwX3AybSsweDcwLzB4MWEwCj4+Pj4+ PiAoWEVOKSAgICBbPGZmZmY4MmQwODAyYzkxZTA+XSBkb21haW5fYnVpbGQuYyNjb25zdHJ1Y3Rf ZG9tMF9odm0rMHg2MC8weDEyMAo+Pj4+Pj4gKFhFTikgICAgWzxmZmZmODJkMDgwMmJmMGM5Pl0g X19zdGFydF94ZW4rMHgxZWE5LzB4MjNhMAo+Pj4+Pj4gKFhFTikgICAgWzxmZmZmODJkMDgwMTAw MDczPl0gX19oaWdoX3N0YXJ0KzB4NTMvMHg2MAo+Pj4+Pj4gKFhFTikKPj4+Pj4+IChYRU4pIFBh Z2V0YWJsZSB3YWxrIGZyb20gMDAwMDAwMDAwMDAwMDAwMDoKPj4+Pj4KPj4+Pj4gU2FkbHkgeW91 IGRvbid0IG1ha2UgY2xlYXIgd2hhdCBwb2ludGVyIGl0IGlzIHRoYXQgaXMgTlVMTCBhdCB0aGF0 IHBvaW50Lgo+Pj4+Cj4+Pj4gSXQgc291bmRzIGZyb20gd2hhdCBoZSBzYXlzIGluIHRoZSBmb2xs b3dpbmcgcGFyYWdyYXBoIGxpa2UgY3VycmVudCBpcyBOVUxMLgo+Pj4KPj4+IEkgZG9uJ3QgcmVj YWxsIHVzIHJlLXNldHRpbmcgY3VycmVudCB0byB0aGlzIGxhdGUgaW4gdGhlIGJvb3QgcHJvY2Vz cy4KPj4+IEV2ZW4gZHVyaW5nIGVhcmx5IGJvb3Qgd2Ugc2V0IGl0IHRvIGEgYm9ndXMgbm9uLU5V TEwgdmFsdWUgcmF0aGVyCj4+PiB0aGFuIE5VTEwuCj4+Pgo+Pj4+Pj4gSSd2ZSB0cmllZCBzZXR0 aW5nIGN1cnJlbnQgdG8gZC0+dmNwdVswXSwgYnV0IHRoYXQganVzdCBtYWtlcyB0aGUgY2FsbCB0 bwo+Pj4+Pj4gaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2sgY3Jhc2ggaW4gc29tZSBzY2hlZHVsZXIg YXNzZXJ0LiBJbiBhbnkgY2FzZSwgSSd2ZQo+Pj4+Pj4gYWRkZWQgdGhlIHByZWVtcHQgcGFyYW1l dGVyIHRvIHRoZSBwYWdpbmdfc2V0X2FsbG9jYXRpb24gZnVuY3Rpb24sIGJ1dCBJCj4+Pj4+PiBk b24ndCBwbGFuIHRvIHVzZSBpdCBpbiB0aGUgZG9tYWluIGJ1aWxkZXIgZm9yIHRoZSB0aW1lIGJl aW5nLiBEb2VzIHRoYXQKPj4+Pj4+IHNvdW5kIHJpZ2h0Pwo+Pj4+Pgo+Pj4+PiBOb3QgcmVhbGx5 LCBuZXcgaHVnZSBsYXRlbmN5IGlzc3VlcyBsaWtlIHRoaXMgc2hvdWxkbid0IGJlIHJlaW50cm9k dWNlZDsKPj4+Pj4gd2UndmUgYmVlbiBmaWdodGluZyBoYXJkIHRvIGdldCByaWQgb2YgdGhvc2Ug KGFuZCB3ZSBzdGlsbCBvY2Nhc2lvbmFsbHkKPj4+Pj4gZmluZCBzb21lIG5vLW9uZSBoYWQgbm90 aWNlZCBiZWZvcmUpLgo+Pj4+Cj4+Pj4gWW91IG1lYW4gbGF0ZW5jeSBpbiBwcm9jZXNzaW5nIHNv ZnRpcnFzPwo+Pj4+Cj4+Pj4gTWF5YmUgd2hhdCB3ZSBuZWVkIHRvIGRvIGlzIHRvIG1ha2UgbG9j YWxfZXZlbnRzX25lZWRfZGVsaXZlcnkoKSBzYWZlCj4+Pj4gdG8gY2FsbCBhdCB0aGlzIHBvaW50 IGJ5IGhhdmluZyBpdCByZXR1cm4gMCBpZiBjdXJyZW50IGlzIE5VTEwgcmF0aGVyCj4+Pj4gdGhh biBjcmFzaGluZz8KPj4+Cj4+PiBUaGF0IHdvdWxkIGhhdmUgdGhlIHNhbWUgZWZmZWN0IC0gbm8g c29mdGlycSBwcm9jZXNzaW5nLCBhbmQgaGVuY2UKPj4+IHBvc3NpYmxlIHRpbWUgaXNzdWVzIG9u IGh1Z2Ugc3lzdGVtcy4KPj4KPj4gTm8sIGxvY2FsX2V2ZW50c19kZWxpdmVyeSgpIG9ubHkgY2hl Y2tzIHRvIHNlZSBpZiB0aGUgY3VycmVudCB2Y3B1IGhhcwo+PiBvdXRzdGFuZGluZyB2aXJ0dWFs IGludGVycnVwdHMuICBUaGUgb3RoZXIgaGFsZiBvZgo+PiBoeXBlcmNhbGxfcHJlZW1wdF9jaGVj aygpIGNoZWNrcyBmb3Igc29mdGlycXMsIHdoaWNoIGRvZXNuJ3QgYXBwZWFyIHRvCj4+IHJlbHkg b24gaGF2aW5nIGN1cnJlbnQgYXZhaWxhYmxlLgo+Cj4gR29vZCBwb2ludCwgYnV0Cj4gLSBjdXJy ZW50IHNob3VsZCBuZXZlcnRoZWxlc3Mgbm90IGJlIE5VTEwgKGFmYWljdCBhdCBsZWFzdCksCgpX ZWxsIHRoZW4gaXQncyBsaWtlbHkgdG8gYmUgb25lIG9mIHRoZSB2Y3B1IGZpZWxkcyB0aGF0IHRo ZSBpZGxlCmRvbWFpbiBkb2Vzbid0IGhhdmUuICBJJ2QgYmUgd2lsbGluZyB0byBiZXQgdGhhdCB2 LT52Y3B1X2luZm8gaXMgTlVMTApmb3IgdGhlIGlkbGUgZG9tYWluLgoKPiAtIGh5cGVyY2FsbF9w cmVlbXB0X2NoZWNrKCkgaXMgcHJvYmFibHkgdGhlIHdyb25nIGNvbnN0cnVjdCwKPiAgIGFzIHdl J3JlIG5vIGluIGEgaHlwZXJjYWxsLgo+IFRoZSBsYXR0ZXIgb2YgY291cnNlIGNvdWxkIGJlIGFk ZHJlc3NlZCBieSwgYXMgeW91IGRpZCBzdWdnZXN0LAo+IHNvbWUgcmVmaW5lbWVudCB0byBvbmUg b2YgdGhlIHBpZWNlcyBpdCdzIGJlaW5nIG1hZGUgdXAgZnJvbSwKPiBidXQgSSdtIG5vdCBzdXJl IHRoYXQgd291bGQgYmUgYmV0dGVyIHRoYW4gcGVyaGFwcyBtYWtpbmcgaXRzCj4gaW52b2NhdGlv biBjb25kaXRpb25hbCAod2l0aCBzb21lIGJldHRlciBhbHRlcm5hdGl2ZSBpbiB0aGUgImVsc2Ui Cj4gY2FzZSkgaW4gaGFwX3NldF9hbGxvY2F0aW9uKCkuIE5vdCB0aGUgbGVhc3QgYmVjYXVzZSBh bnkKPiBhZGp1c3RtZW50IHRvIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgaXRzZWxmIHdvdWxk IGFmZmVjdCBhbGwKPiBvdGhlciBvZiBpdHMgdXNlcnMuCgpXZWxsIGF0IHRoZSBtb21lbnQgYW55 IHVzZXIgdGhhdCBjYWxscyBpdCB3aXRoIGN1cnJlbnQgPT0gTlVMTCAob3IKcGVyaGFwcyBpc19p ZGxlX3ZjcHUoY3VycmVudCkpIHdpbGwgY3Jhc2guICBTbyB0aGUgb25seSBjb3N0IHdpbGwgYmUK YW4gZXh0cmEgY2hlY2sgZm9yIGFsbCB0aGUgb3RoZXIgY2FsbGVycy4KClRoZSBvbmx5IG90aGVy IG9wdGlvbiB3b3VsZCBiZSB0byBtYWtlIHtoYXAsc2h9X3NldF9hbGxvY2F0aW9uKCkgY2hlY2sK dG8gc2VlIGlmIGlzX2lkbGVfdmNwdShjdXJyZW50KSwgYW5kIGlmIHNvIGp1c3QgY2FsbApzb2Z0 aXJxX3BlbmRpbmcoc21wX3Byb2Nlc3Nvcl9pZCgpKSBpbnN0ZWFkLiAgT3IgbWFrZSAqYW5vdGhl ciogbWFjcm8sCmJvb3Rfc29mdGlycV9jaGVja19vcl9oeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygp LCB3aGljaCB3aWxsIGRvIHRoZQpjaGVjay4gIEJ1dCBib3RoIHNlZW0gYSBiaXQgZXhjZXNzaXZl IGNvbXBhcmVkIHRvIGp1c3QgbW9kaWZ5aW5nCmh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgdG8g aGFuZGxlIGJlaW5nIGNhbGxlZCBkdXJpbmcgYm9vdC4KCiAtR2VvcmdlCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK