From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [RFC v2 3/6] xen/arm: Allow platform_hvc to handle guest SMC calls Date: Thu, 9 Feb 2017 10:27:50 +0100 Message-ID: <20170209092750.GM12995@toto> References: <1cb1253c-c378-4598-f421-1b9fb2466672@arm.com> <20170208172913.GR9606@toto> <20170208194011.GS9606@toto> <20170209091240.GT9606@toto> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170209091240.GT9606@toto> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Edgar E. Iglesias" Cc: Volodymyr Babchuk , Tamas K Lengyel , Julien Grall , Stefano Stabellini , Xen-devel List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBGZWIgMDksIDIwMTcgYXQgMTA6MTI6NDFBTSArMDEwMCwgRWRnYXIgRS4gSWdsZXNp YXMgd3JvdGU6Cj4gT24gV2VkLCBGZWIgMDgsIDIwMTcgYXQgMDU6MjA6NDRQTSAtMDgwMCwgU3Rl ZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+ID4gT24gVGh1LCA5IEZlYiAyMDE3LCBKdWxpZW4gR3Jh bGwgd3JvdGU6Cj4gPiA+IE9uIDA4LzAyLzIwMTcgMjM6MjgsIFRhbWFzIEsgTGVuZ3llbCB3cm90 ZToKPiA+ID4gPiBPbiBXZWQsIEZlYiA4LCAyMDE3IGF0IDM6MDQgUE0sIEp1bGllbiBHcmFsbCA8 anVsaWVuLmdyYWxsQGFybS5jb20+IHdyb3RlOgo+ID4gPiA+ID4gSGkgVGFtYXMsCj4gPiA+ID4g PiAKPiA+ID4gPiA+IENhbiB5b3UgcGxlYXNlIHRyeSB0byBjb25maWd1cmUgeW91ciBlLW1haWwg Y2xpZW50IHRvIHVzZSAnPicgcmF0aGVyIHRoYW4KPiA+ID4gPiA+ICcKPiA+ID4gPiA+ICc/IEl0 IG1ha2VzIHF1aXRlIGhhcmQgdG8gcmVhZCB0aGUgZS1tYWlsLgo+ID4gPiA+IAo+ID4gPiA+IEht LCBub3Qgc3VyZSB3aHkgaXQgc3dpdGNoZWQgYnV0IHNob3VsZCBiZSBmaW5lIG5vdy4KPiA+ID4g PiAKPiA+ID4gPiA+IE9uIDA4LzAyLzIwMTcgMjA6MTUsIFRhbWFzIEsgTGVuZ3llbCB3cm90ZToK PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gT24gV2Vk LCBGZWIgOCwgMjAxNyBhdCAxMjo0MCBQTSwgRWRnYXIgRS4gSWdsZXNpYXMKPiA+ID4gPiA+ID4g PGVkZ2FyLmlnbGVzaWFzQGdtYWlsLmNvbSA8bWFpbHRvOmVkZ2FyLmlnbGVzaWFzQGdtYWlsLmNv bT4+IHdyb3RlOgo+ID4gPiA+ID4gPiAgICAgT24gV2VkLCBGZWIgMDgsIDIwMTcgYXQgMDY6Mjk6 MTNQTSArMDEwMCwgRWRnYXIgRS4gSWdsZXNpYXMgd3JvdGU6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiAgICAgSWYgcGxhdGZvcm1faHZjKCkgY29uc3VtZXMgYW4gU01DLCBpdCdz IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgWGVuCj4gPiA+ID4gPiA+IEFQSS4KPiA+ID4gPiA+ID4g ICAgIFZpc2libGUgYnV0IG5vdCBmaWx0ZXJhYmxlIGJ5IGEgbW9uaXRvci4KPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAgICAgUGxhdGZvcm1zIGNhbiB0aGVuIGRpY3RhdGUg d2hpY2ggU01DIGNhbGxzIGFyZSBiZXR0ZXIgaGFuZGxlZCB3aXRoaW4KPiA+ID4gPiA+ID4gICAg IFhlbiBhbmQKPiA+ID4gPiA+ID4gICAgIHdoaWNoIG9uZXMgY2FuIGJlIGV4cG9zZWQgdG8gZG9t MCB1c2VyLXNwYWNlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAgIEluIGFkZGl0aW9uLCB0 aGVyZSBjb3VsZCBiZSBhIGh5cGVyY2FsbCB0byBkaXNhYmxlIHBsYXRmb3JtIHNwZWNpZmljCj4g PiA+ID4gPiA+ICAgICBoYW5kbGluZwo+ID4gPiA+ID4gPiAgICAgaW4gWGVuIGFsbHRvZ2V0aGVy IGZvciBhIGdpdmVuIGd1ZXN0LiBUaGVuIGV2ZXJ5dGhpbmcgZ29lcyB0byBkb20wCj4gPiA+ID4g PiA+ICAgICB1c2VyLXNwYWNlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAgIEl0J3MgYSBs aXR0bGUgbWVzc3kuLi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gVGhhdCBpcyBtZXNzeSBhbmQgSSB3b3VsZCBub3Qgd2FudCBhbnkgU01DcyByZWFj aGluZyB0aGUgZmlybXdhcmUgd2hlbgo+ID4gPiA+ID4gPiB0aGUgbW9uaXRvciBhcHBsaWNhdGlv biBpcyBpbiB1c2UuIFRoZSBtb25pdG9yIGludGVyZmFjZSBpcyBkaXNhYmxlZCBieQo+ID4gPiA+ ID4gPiBkZWZhdWx0IGFuZCB0aGVyZSBhcmVuJ3QgYW55IGtub3duIHVzZWNhc2VzIHdoZXJlIHRo ZSBTTUMgaGFzIHRvIHJlYWNoCj4gPiA+ID4gPiA+IGJvdGggdGhlIGZpcm13YXJlIGFuZCB0aGUg bW9uaXRvciBhcHBsaWNhdGlvbiBhcyB3ZWxsLiBTbyBJIHRoaW5rIGl0IGlzCj4gPiA+ID4gPiA+ IHNhZmUgdG8ganVzdCBtYWtlIHRoZSB0d28gdGhpbmdzIG11dHVhbGx5IGV4Y2x1c2l2ZS4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJZiB5b3UgbG9vayBhdCB0aGUgU01DIENhbGxp bmcgQ29udmVudGlvbiBbMV0gYm90aCBIVkMgYW5kIFNNQyBhcmUKPiA+ID4gPiA+IGNvbnNpZGVy ZWQgYSBjb25kdWl0IGZvciBzZXJ2aWNlIGNhbGwgdG8gdGhlIHNlY3VyZSBmaXJtd2FyZSBvcgo+ ID4gPiA+ID4gaHlwZXJ2aXNvci4KPiA+ID4gPiA+IEl0IHdvdWxkIGJlIHVwIHRvIHRoZSBoeXBl cnZpc29yIGRlY2lkaW5nIHdoYXQgdG8gZG8uCj4gPiA+ID4gPiAKPiA+ID4gPiA+IExldHMgaW1h Z2luZSB0aGUgZ3Vlc3QgaXMgZGVjaWRpbmcgdG8gdXNlIEhWQyB0byBhY2Nlc3MgdGhlIHNlY3Vy ZQo+ID4gPiA+ID4gZmlybXdhcmUKPiA+ID4gPiA+IChBRkFJVSB0aGlzIHBhdGNoIHNlcmllcyBp cyBhZGRpbmcgdGhhdCksIGFyZSB5b3UgZ29pbmcgdG8gbW9uaXRvciBhbGwgdGhlCj4gPiA+ID4g PiBIVkNzIChpbmNsdWRpbmcgaHlwZXJjYWxsKT8KPiA+ID4gPiAKPiA+ID4gPiBUaGVyZSBhcmUg c29tZSBmdW5kYW1lbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIEhWQyBhbmQgU01DIGNhbGxzCj4g PiA+ID4gdGhvdWdoLiBBbiBIVkMgY2FuIG9ubHkgbGFuZCBpbiB0aGUgaHlwZXJ2aXNvciwgc28g YXMgYSBoeXBlcmNhbGwsIEkKPiA+ID4gPiB3b3VsZCBleHBlY3QgaXQgdG8gYmUgc29tZXRoaW5n IEkgY2FuIGRlbnkgdmlhIFhTTS4gVGhhdCBpcyBhCj4gPiA+ID4gc3VmZmljaWVudCBvcHRpb24g Zm9yIG5vdyB0byBibG9jayB0aGUgcGF0aCB0byB0aGUgZmlybXdhcmUuIElmIHdlIGVuZAo+ID4g PiA+IHVwIG5lZWRpbmcgdG8gc3VwcG9ydCBhbiBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgdGhhdCBo eXBlcmNhbGwgZm9yCj4gPiA+ID4gc29tZXRoaW5nIGNyaXRpY2FsLCB0aGVuIHllcywgaXQgd291 bGQgYWxzbyBuZWVkIHRvIGJlIGhvb2tlZCBpbnRvIHRoZQo+ID4gPiA+IG1vbml0b3Igc3lzdGVt LiBBdCB0aGUgbW9tZW50IHRoaXMgaXMgbm90IG5lY2Vzc2FyeS4KPiA+ID4gCj4gPiA+IE15IHBv aW50IGlzIG5vdCBhYm91dCB3aGF0IGlzIG5lY2Vzc2FyeSBhdCB0aGUgbW9tZW50LiBCdXQgd2hh dCBpcyByaWdodAo+ID4gPiB0aGluZ3MgdG8gZG8uIElmIHlvdSBsb29rIGF0IHRoZSBzcGVjLCBI VkMgYXJlIG5vdCBvbmx5IGZvciBoeXBlcmNhbGwsIGJ1dCBhbnkKPiA+ID4gb3RoZXIga2luZCBv ZiBzZXJ2aWNlcy4gV2h5IHdvdWxkIHlvdSBkZW55IHNvbWV0aGluZyB0aGF0IGlzIHZhbGlkIGZy b20gdGhlCj4gPiA+IHNwZWNpZmljYXRpb24gKHNlZSA1LjIuMSk/Cj4gPiA+IAo+ID4gPiAiVGhl IFNNQyBjYWxsaW5nIGNvbnZlbnRpb24sIGhvd2V2ZXIsIGRvZXMgbm90IHNwZWNpZnkgd2hpY2gg aW5zdHJ1Y3Rpb24KPiA+ID4gKGVpdGhlciBTTUMgb3IgSFZDKSB0byB1c2UgdG8gaW52b2tlIGEK PiA+ID4gcGFydGljdWxhciBzZXJ2aWNlLiIKPiA+IAo+ID4gVG8gaGF2ZSBhIGdlbmVyaWMgc29s dXRpb24sIHdlIG5lZWQgYSB3YXkgdG8gc3BlY2lmeSBhIHNldCBvZiBIVkMvU01DCj4gPiBjYWxs cyB0aGF0IGdldCBtb25pdG9yZWQgYW5kIGEgc2V0IHRoYXQgZ2V0IGhhbmRsZWQgaW4gWGVuIChw bGF0Zm9ybQo+ID4gc3BlY2lmaWMgb3Igb3RoZXJ3aXNlKS4gSSB0aGluayBpdCBpcyBPSyBub3Qg dG8gZG8gYm90aCwgYXQgbGVhc3QgYXQgdGhlCj4gPiBiZWdpbm5pbmcsIGJ1dCB3ZSBtaWdodCB3 YW50IHRvIGFkZCB0aGF0IGZlYXR1cmUgaW4gdGhlIGZ1dHVyZS4KPiA+IAo+ID4gQXMgbXVjaCBh cyBJIHdvdWxkIGxpa2UgdG8gc2VlIHRoYXQsIGluIHJlc3BlY3QgdG8gdGhpcyBzZXJpZXMsIEkg ZG9uJ3QKPiA+IHRoaW5rIHdlIHNob3VsZCBhc2sgRWRnYXIgdG8gaW50cm9kdWNlIHN1Y2ggYSBt ZWNoYW5pc20uIEhvd2V2ZXIsIHdlIGRvCj4gPiBuZWVkIHRvIGRlY2lkZSB3aGF0IFhlbiBzaG91 bGQgZG8gd2hlbiBwbGF0Zm9ybV9odmMgaXMgaW1wbGVtZW50ZWQgYW5kCj4gPiBtb25pdG9yIGlz IGFsc28gZW5hYmxlZC4KPiA+IAo+ID4gSSB0aGluayB0aGUgZGVmYXVsdCBzaG91bGQgYmUgdG8g b25seSBjYWxsIHBsYXRmb3JtX2h2YywgYmVjYXVzZSB0aGVyZQo+ID4gYXJlIG1hbnkgdmFsaWQg bW9uaXRvcmluZyB1c2UtY2FzZXMgd2hpY2ggZG9uJ3QgcmVxdWlyZSB0aG9zZSBmZXcKPiA+IHBs YXRmb3JtIHNwZWNpZmljIFNNQy9IVkMgY2FsbHMgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBtb25p dG9yLgo+ID4gCj4gPiBIb3dldmVyLCBpZiB3ZSBkaWQgdGhhdCwgd2Ugd291bGQgYnJlYWsgVGFt YXMnIHNjZW5hcmlvLiBUaHVzLCBJIHN1Z2dlc3QKPiA+IHdlIGFsc28gaW50cm9kdWNlIGEgc2lt cGxlIGNvbXBpbGUgdGltZSBvcHRpb24gb3IgWGVuIGNvbW1hbmQgbGluZQo+ID4gb3B0aW9uIHRv IGZvcndhcmQgYWxsIHBsYXRmb3JtX2h2YyBjYWxscyB0byB0aGUgbW9uaXRvciBpbnN0ZWFkIG9m Cj4gPiBpbXBsZW1lbnRpbmcgdGhlbSBpbiBYZW4uIFNvbWV0aGluZyBsaWtlICJNT05JVE9SX09W RVJSSURFIi4gSW4gdGhlCj4gPiBmdXR1cmUsIHdlIGNhbiByZXBsYWNlIGl0IHdpdGggYSBtb3Jl IGdlbmVyaWMgZnJhbWV3b3JrIHRvIGR5bmFtaWNhbGx5Cj4gPiBjb25maWd1cmUgYXQgcnVudGlt ZSB3aGljaCBTTUMvSFZDIGNhbGxzIGdldCBmb3J3YXJkZWQuCj4gPiAKPiA+IFdoYXQgZG8geW91 IHRoaW5rPwo+IAo+IFRoaXMgY291bGQgd29yayBpbiBzb21lIHNjZW5hcmlvcywgYnV0IGZvciBl eGFtcGxlIG9uIHRoZSBaeW5xTVAsCj4gZG9tMCBuZWVkcyBhY2Nlc3MgdG8gRmlybXdhcmUgYXMg aXQgYm9vdHMsIG90aGVyd2lzZSBhIGxvdCBvZiBJL08KPiB3aWxsIGVuZCB1cCBub24tZnVuY3Rp b25hbCAod2l0aCByZWNlbnQga2VybmVscykuIEFueXdheSwgSSB0aGluayBpdAo+IHdvdWxkIGdp dmUgdXMgYSBwYXRoIGZvcndhcmQuIEZ1dHVyZSBwYXRjaGVzIGNvdWxkIGVpdGhlciBpbXBsZW1l bnQKPiBmaW5lciBjb250cm9sIG9yIHNvbWV0aGluZyBlbHNlLgoKQWN0dWFsbHksIE1PTklUT1Jf T1ZFUlJJREUgY291bGQgYWxsb3cgZG9tMCBmdWxsIGFjY2VzcyB0byB0aGUgRmlybXdhcmUKYW5k IG9ubHkgYmxvY2sgZ3Vlc3RzLiBUaGF0IHdvdWxkIHdvcmsgYmV0dGVyIG9uIHRoZSBaeW5xTVAu IEkgcHJvYmFibHkKb3Zlcmxvb2tlZCB0aGlzIGluIHlvdXIgc3VnZ2VzdGlvbi4KCkNoZWVycywK RWRnYXIKCgo+IAo+IFBlcmhhcHMgYSBoeXBlcmNhbGwgdG8gYWxsb3cgZG9tMCB0byB0dXJuIG9m ZiBhbnkgcGxhdGZvcm1faHZjIGhhbmRsaW5nIGZvcgo+IGEgZ2l2ZW4gZ3Vlc3Qgd291bGQgaGVs cC4gSWYgdGhhdCBtb2RlIGlzIGVuYWJsZWQsIFhlbiBpcyBoYW5kcyBvZmYgb24KPiBhbnkgcGxh dGZvcm0gc3BlY2lmaWMgSFZDL1NNQy4gSXQgc3RpbGwgbGVhdmVzIHRoZSBwcm9ibGVtIG9wZW4g Zm9yCj4gb3RoZXIgY2FsbHMgYnV0IEkgbXVzdCBzYXkgSSBmaW5kIGl0IHN0cmFuZ2UgdG8gZW11 bGF0ZSB0aGUgWGVuIEh5cGVyY2FsbHMKPiBpbiBkb20wIHVzZXItc3BhY2UuCj4gCj4gQUZBSUss IHRoZSBtb25pdG9yIGlzIG5vdCBsb29raW5nIGF0IEhWQyB0b2RheS4gU28gaXQgaXMgYWxsb3dp bmcgUFNDSQo+IGZpcm13YXJlIGNhbGxzIHRocm91Z2ggWGVuJ3MgUFNDSSBtZWRpYXRvci9lbXVs YXRvci4gU29tZSBvZiB0aGVzZSBjYWxscwo+IG1heSBzb21ldGltZXMgaGl0IGZpcm13YXJlLCBz byB0aGUgcG9pbnQgb2YgaXNvbGF0aW5nIGEgZ3Vlc3QgY29tcGxldGVseQo+IGZyb20gRmlybXdh cmUgYWNjZXNzIGlzIG5vdCB2YWxpZCB0b2RheS4KPiAKPiBDaGVlcnMsCj4gRWRnYXIKPiAKPiAK PiA+ID4gPiBTbyBpZiB3ZSBhcmUgbGFuZGluZyBpbiBkb190cmFwX3NtYyBmcm9tIGFuIEhWQyBj YWxsLCBJIHRoaW5rIGl0IHdvdWxkCj4gPiA+ID4gYmUgYmV0dGVyIHRvIGludHJvZHVjZSBhIHNl cGFyYXRlIGZ1bmN0aW9uIGZvciBpdCByYXRoZXIgdGhlbiBqdXN0Cj4gPiA+ID4gYnVuY2hpbmcg dGhlIHR3byB0b2dldGhlciBoZXJlLgo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBTaW1p bGFybHksIG5vbi1tb2RpZmllZCBiYXJlbWV0YWwgYXBwIGNvdWxkIHVzZSBTTUMgdG8gcG93ZXIg b24vb2ZmIHRoZQo+ID4gPiA+ID4gdkNQVQo+ID4gPiA+ID4gKHNlZSBQU0NJIHNwZWMpLiBXaWxs IHlvdSBlbXVsYXRlIHRoYXQgaW4gdGhlIG1vbml0b3IgYXBwPwo+ID4gPiA+IAo+ID4gPiA+IFll cywgdGhlIHVuZGVybHlpbmcgc2V0dXAgcmVxdWlyZXMgdGhhdCBldmVyeXRoaW5nIHRoYXQgaXMg ZXhwZWN0ZWQKPiA+ID4gPiBmcm9tIHRoZSBmaXJtd2FyZSB0byBiZSBwZXJmb3JtZWQgZWl0aGVy IGJ5IHRoZSBtb25pdG9yIGFwcCwgb3IgaGF2ZQo+ID4gPiA+IHRoZSBtb25pdG9yIGFwcCBmdXJ0 aGVyIGRlbGVnYXRlIGl0IHNvbWV3aGVyZSB0aGF0IGNhbiBwZXJmb3JtIHRoZQo+ID4gPiA+IHRh c2suIFRoYXQgY2FuIGJlIGVpdGhlciB0aGUgZmlybXdhcmUgaXRzZWxmIChpZiBpdHMgc2FmZSks IG9yIGFuCj4gPiA+ID4gaXNvbGF0ZWQgVk0gaWYgaXQgaXMgcG9zc2libGUgdG8gcGVyZm9ybSB0 aGUgdGFzayB0aGVyZS4gSSB3b3VsZG4ndAo+ID4gPiA+IGNhbGwgdGhpcyBlbXVsYXRpb24gbmVj ZXNzYXJpbHkgYnR3Lgo+ID4gPiAKPiA+ID4gWW91IGhhdmVuJ3QgdW5kZXJzdG9vZCBteSBwb2lu dC4gWGVuIGlzIGN1cnJlbnRseSBlbXVsYXRpbmcgUFNDSSBjYWxsIGZvciB0aGUKPiA+ID4gZ3Vl c3QgdG8gYWxsb3cgcG93ZXJpbmcgdXAgYW5kIGRvd24gdGhlIENQVXMgYW5kIG90aGVyIHN0dWZm LiBJZiB5b3UgZGVjaWRlIHRvCj4gPiA+IHRyYXAgYWxsIHRoZSBTTUNzLCB5b3Ugd291bGQgaGF2 ZSB0byBoYW5kbGUgdGhlbS4KPiA+ID4gCj4gPiA+IEFuZCB5ZXMgaXQgaXMgZW11bGF0aW9uIGFz IHlvdSBkb24ndCBzZWVtIHRvIGJlIHdpbGxpbmcgcGFzc2luZyB0aG9zZSBTTUMgdG8KPiA+ID4g dGhlIGZpcm13YXJlIG9yIGV2ZW4gYmFjayB0byBYZW4uIElmIHdlIGV4cGVjdCBhIFZNIHRvIGVt dWxhdGUgYSB0cnVzdGVkCj4gPiA+IGZpcm13YXJlLCB0aGVuIHlvdSBoYXZlIGEgc2VjdXJpdHkg cHJvYmxlbS4gU29tZSBoYXJkd2FyZSBtYXkgYmUgb25seQo+ID4gPiBhY2Nlc3NpYmxlIHRocm91 Z2ggdGhlIHNlY3VyZSB3b3JsZCBhbmQgSSBkb3VidCBzb21lIHRydXN0ZWQgYXBwIHZlbmRvciB3 aWxsCj4gPiA+IGJlIHdpbGxpbmcgdG8gbW92ZSBjcnlwdG9ncmFwaHkgc3R1ZmYgaW4gbm9uIHNl Y3VyZSB3b3JsZC4gSSB3b3VsZCBoaWdobHkKPiA+ID4gcmVjb21tZW5kIHRvIHNraW0gdGhyb3Vn aCB0aGUgT1AtVEVFIHRocmVhZCwgaXQgd2lsbCBwcm92aWRlIHlvdSBzb21lIGluc2lnaHRzCj4g PiA+IG9mIHRoZSBjb25zdHJhaW50cy4KPiA+IAo+ID4gRWFjaCBwbGF0Zm9ybSBpcyBkaWZmZXJl bnQuIEl0IHNlZW1zIHVubGlrZWx5IHRvIG1lIHRvbywgYW5kIGl0IG1pZ2h0Cj4gPiBhbHdheXMg cmVtYWluIGEgbmljaGUgdXNlLWNhc2UsIGJ1dCBpdCBpcyBzdGlsbCBhIHZhbGlkIHNjZW5hcmlv IHRvCj4gPiBjb25zaWRlci4KPiAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=