From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [RFC v2]Proposal to allow setting up shared memory areas between VMs from xl config file Date: Wed, 21 Jun 2017 01:18:38 +0800 Message-ID: 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 1dNMnZ-0002A6-4Q for xen-devel@lists.xenproject.org; Tue, 20 Jun 2017 17:18:41 +0000 Received: by mail-lf0-f43.google.com with SMTP id l13so19466800lfl.1 for ; Tue, 20 Jun 2017 10:18:39 -0700 (PDT) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: "Edgar E. Iglesias" , Stefano Stabellini , Wei Liu , Ian Jackson , edgari@xilinx.com, Julien Grall , Jarvis Roach List-Id: xen-devel@lists.xenproject.org PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBN b3RpdmF0aW9uIGFuZCBEZXNjcmlwdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClZpcnR1YWwgbWFjaGluZXMgdXNlIGdyYW50IHRhYmxlIGh5 cGVyY2FsbHMgdG8gc2V0dXAgYSBzaGFyZSBwYWdlIGZvcgppbnRlci1WTXMgY29tbXVuaWNhdGlv bnMuIFRoZXNlIGh5cGVyY2FsbHMgYXJlIHVzZWQgYnkgYWxsIFBWCnByb3RvY29scyB0b2RheS4g SG93ZXZlciwgdmVyeSBzaW1wbGUgZ3Vlc3RzLCBzdWNoIGFzIGJhcmVtZXRhbAphcHBsaWNhdGlv bnMsIG1pZ2h0IG5vdCBoYXZlIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBoYW5kbGUgdGhlIGdyYW50 IHRhYmxlLgpUaGlzIHByb2plY3QgaXMgYWJvdXQgc2V0dGluZyB1cCBzZXZlcmFsIHNoYXJlZCBt ZW1vcnkgYXJlYXMgZm9yIGludGVyLVZNcwpjb21tdW5pY2F0aW9ucyBkaXJlY3RseSBmcm9tIHRo ZSBWTSBjb25maWcgZmlsZS4KU28gdGhhdCB0aGUgZ3Vlc3Qga2VybmVsIGRvZXNuJ3QgaGF2ZSB0 byBoYXZlIGdyYW50IHRhYmxlIHN1cHBvcnQgKGluIHRoZQplbWJlZGRlZCBzcGFjZSwgdGhpcyBp cyBub3QgdW51c3VhbCkgdG8gYmUgYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoCm90aGVyIGd1ZXN0 cy4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Mi4gSW1wbGVtZW50YXRpb24gUGxhbjoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KMi4xIEludHJvZHVjZSBhIG5ldyBWTSBjb25maWcgb3B0aW9uIGluIHhsOgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgc2hhcmVkIGFyZWFzIHNob3VsZCBiZSBz aGFyZWFibGUgYW1vbmcgc2V2ZXJhbCAoPj0yKSBWTXMsIHNvCmV2ZXJ5IHNoYXJlZCBwaHlzaWNh bCBtZW1vcnkgYXJlYSBpcyBhc3NpZ25lZCB0byBhIHNldCBvZiBWTXMuClRoZXJlZm9yZSwgYSDi gJx0b2tlbuKAnSBvciDigJxpZGVudGlmaWVy4oCdIHNob3VsZCBiZSB1c2VkIGhlcmUgdG8gdW5p cXVlbHkKaWRlbnRpZnkgYSBiYWNraW5nIG1lbW9yeSBhcmVhLgoKVGhlIGJhY2tpbmcgYXJlYSB3 b3VsZCBiZSB0YWtlbiBmcm9tIG9uZSBkb21haW4sIHdoaWNoIHdlIHdpbGwgcmVnYXJkCmFzIHRo ZSAibWFzdGVyIGRvbWFpbiIsIGFuZCB0aGlzIGRvbWFpbiBzaG91bGQgYmUgY3JlYXRlZCBwcmlv ciB0byBhbnkKb3RoZXIgInNsYXZlIGRvbWFpbiJzLiBBZ2Fpbiwgd2UgaGF2ZSB0byB1c2Ugc29t ZSBraW5kIG9mIHRhZyB0byB0ZWxsIHdobwppcyB0aGUgIm1hc3RlciBkb21haW4iLgoKQW5kIHRo ZSBhYmlsaXR5IHRvIHNwZWNpZnkgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHBhZ2VzIChzYXksIFdP L1JPL1gpCnRvIGJlIHNoYXJlZCBzaG91bGQgYmUgYWxzbyBnaXZlbiB0byB0aGUgdXNlci4gRm9y IHRoZSBtYXN0ZXIgZG9tYWluLAp0aGVzZSBhdHRyaWJ1dGVzIG9mdGVuIGRlc2NyaWJlcyB0aGUg bWF4aW11bSBwZXJtaXNzaW9uIGFsbG93ZWQgZm9yIHRoZQpzaGFyZWQgcGFnZXMsIGFuZCBmb3Ig dGhlIHNsYXZlIGRvbWFpbnMsIHRoZXNlIGF0dHJpYnV0ZXMgYXJlIG9mdGVuIHVzZWQKdG8gZGVz Y3JpYmUgd2l0aCB3aGF0IHBlcm1pc3Npb25zIHRoaXMgYXJlYSB3aWxsIGJlIG1hcHBlZC4KVGhp cyBpbmZvcm1hdGlvbiBzaG91bGQgYWxzbyBiZSBzcGVjaWZpZWQgaW4gdGhlIHhsIGNvbmZpZyBl bnRyeS4KClRvIGhhbmRsZSBhbGwgdGhlc2UsIEkgd291bGQgc3VnZ2VzdCB1c2luZyBhbiB1bnNp Z25lZCBpbnRlZ2VyIHRvIHNlcnZlIGFzIHRoZQppZGVudGlmaWVyLCBhbmQgdXNpbmcgYSAibWFz dGVyIiB0YWcgaW4gdGhlIG1hc3RlciBkb21haW4ncyB4bCBjb25maWcgZW50cnkKdG8gYW5ub3Vu Y2UgdGhhdCBzaGUgd2lsbCBwcm92aWRlIHRoZSBiYWNraW5nIG1lbW9yeSBwYWdlcy4gQSBzZXBh cmF0ZQplbnRyeSB3b3VsZCBiZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBhdHRyaWJ1dGVzIG9mIHRo ZSBzaGFyZWQgbWVtb3J5IGFyZWEsIG9mCnRoZSBmb3JtICJwcm90PVJXIi4KRm9yIGV4YW1wbGU6 CgpJbiB4bCBjb25maWcgZmlsZSBvZiB2bTE6CgogICAgc3RhdGljX3NoYXJlZF9tZW0gPSBbImlk ID0gSUQxLCBiZWdpbiA9IGdtZm4xLCBlbmQgPSBnbWZuMiwKICAgICAgICAgICAgICAgICAgICAg ICAgICBncmFudWxhcml0eSA9IDRrLCBwcm90ID0gUk8sIG1hc3RlcuKAnSwKICAgICAgICAgICAg ICAgICAgICAgICAgICJpZCA9IElEMiwgYmVnaW4gPSBnbWZuMywgZW5kID0gZ21mbjQsCiBncmFu dWxhcml0eSA9IDRrLCBwcm90ID0gUlcsIG1hc3RlcuKAnV0KCkluIHhsIGNvbmZpZyBmaWxlIG9m IHZtMjoKCiAgICBzdGF0aWNfc2hhcmVkX21lbSA9IFsiaWQgPSBJRDEsIGJlZ2luID0gZ21mbjUs IGVuZCA9IGdtZm42LAogICAgICAgICAgICAgICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0gNGss IHByb3QgPSBST+KAnV0KCkluIHhsIGNvbmZpZyBmaWxlIG9mIHZtMzoKCiAgICBzdGF0aWNfc2hh cmVkX21lbSA9IFsiaWQgPSBJRDIsIGJlZ2luID0gZ21mbjcsIGVuZCA9IGdtZm44LAogICAgICAg ICAgICAgICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0gNGssIHByb3QgPSBSV+KAnV0KCmdtZm4n cyBhYm92ZSBhcmUgYWxsIGhleCBvZiB0aGUgZm9ybSAiMHgyMDAwMCIuCgpJbiB0aGUgZXhhbXBs ZSBhYm92ZS4gQSBtZW1vcnkgYXJlYSBJRDEgd2lsbCBiZSBzaGFyZWQgYmV0d2VlbiB2bTEgYW5k IHZtMi4KVGhpcyBhcmVhIHdpbGwgYmUgdGFrZW4gZnJvbSB2bTEgYW5kIG1hcHBlZCBpbnRvIHZt MidzIHN0YWdlLTIgcGFnZSB0YWJsZS4KVGhlIHBhcmFtZXRlciAicHJvdD1STyIgbWVhbnMgdGhh dCB0aGlzIG1lbW9yeSBhcmVhIGFyZSBvZmZlcmVkIHdpdGggcmVhZC1vbmx5CnBlcm1pc3Npb24u IHZtMSBjYW4gYWNjZXNzIHRoaXMgYXJlYSB1c2luZyBnbWZuMX5nbWZuMiwgYW5kIHZtMiB1c2lu ZwpnbWZuNX5nbWZuNi4KTGlrZXdpc2UsIGEgbWVtb3J5IGFyZWEgSUQgd2lsbCBiZSBzaGFyZWQg YmV0d2VlbiB2bTEgYW5kIHZtMyB3aXRoIHJlYWQgYW5kCndyaXRlIHBlcm1pc3Npb25zLiB2bTEg aXMgdGhlIG1hc3RlciBhbmQgdm0yIHRoZSBzbGF2ZS4gdm0xIGNhbiBhY2Nlc3MgdGhlCmFyZWEg dXNpbmcgZ21mbjN+Z21mbjQgYW5kIHZtMyB1c2luZyBnbWZuN35nbWZuOC4KClRoZSAiZ3JhbnVs YXJpdHkiIGlzIG9wdGlvbmFsIGluIHRoZSBzbGF2ZXMnIGNvbmZpZyBlbnRyaWVzLiBCdXQgaWYg aXQncwpwcmVzZW50ZWQgaW4gdGhlIHNsYXZlcycgY29uZmlnIGVudHJ5LCBpdCBoYXMgdG8gYmUg dGhlIHNhbWUgd2l0aCBpdHMgbWFzdGVyJ3MuCkJlc2lkZXMsIHRoZSBzaXplIG9mIHRoZSBnbWZu IHJhbmdlIG11c3QgYWxzbyBtYXRjaC4gQW5kIG92ZXJsYXBwaW5nIGJhY2tpbmcKbWVtb3J5IGFy ZWFzIGFyZSB3ZWxsIGRlZmluZWQuCgpOb3RlIHRoYXQgdGhlICJtYXN0ZXIiIHRhZyBpbiB2bTEg Zm9yIGJvdGggSUQxIGFuZCBJRDIgaW5kaWNhdGVzIHRoYXQgdm0xCnNob3VsZCBiZSBjcmVhdGVk IHByaW9yIHRvIGJvdGggdm0yIGFuZCB2bTMsIGZvciB0aGV5IGJvdGggcmVseSBvbiB0aGUgcGFn ZXMKYmFja2VkIGJ5IHZtMS4gSWYgb25lIHRyaWVzIHRvIGNyZWF0ZSB2bTIgb3Igdm0zIHByaW9y IHRvIHZtMSwgc2hlIHdpbGwgZ2V0CmFuIGVycm9yLiBBbmQgaW4gdm0xJ3MgY29uZmlnIGZpbGUs IHRoZSAicHJvdD1STyIgcGFyYW1ldGVyIG9mIElEMSBpbmRpY2F0ZXMKdGhhdCBpZiBvbmUgdHJp ZXMgdG8gc2hhcmUgdGhpcyBwYWdlIHdpdGggdm0xIHdpdGgsIHNheSwgIldSIiBwZXJtaXNzaW9u LApzaGUgd2lsbCBnZXQgYW4gZXJyb3IsIHRvby4KCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CjIuMiBTdG9yZSB0aGUgbWVtLXNoYXJpbmcgaW5mb3JtYXRpb24gaW4geGVu c3RvcmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRm9yIHdlIGRvbid0 IGhhdmUgc29tZSBwZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIHhsIHRvIHN0b3JlIHRoZSBpbmZvcm1h dGlvbgpvZiB0aGUgc2hhcmVkIG1lbW9yeSBhcmVhcywgd2UgaGF2ZSB0byBmaW5kIHNvbWUgd2F5 IHRvIGtlZXAgaXQgYmV0d2VlbiB4bApsYXVuY2hlcy4gQW5kIHhlbnN0b3JlIGlzIGEgZ29vZCBw bGFjZSB0byBkbyB0aGlzLiBUaGUgaW5mb3JtYXRpb24gZm9yIG9uZQpzaGFyZWQgYXJlYSBzaG91 bGQgaW5jbHVkZSB0aGUgSUQsIG1hc3RlciBkb21pZCBhbmQgZ21mbiByYW5nZXMgYW5kCm1lbW9y eSBhdHRyaWJ1dGVzIGluIG1hc3RlciBhbmQgc2xhdmUgZG9tYWlucyBvZiB0aGlzIGFyZWEuCkEg Y3VycmVudCBwbGFuIGlzIHRvIHBsYWNlIHRoZSBpbmZvcm1hdGlvbiB1bmRlciAvbG9jYWwvc2hh cmVkX21lbS9JRC4KU3RpbGwgdGFrZSB0aGUgYWJvdmUgY29uZmlnIGZpbGVzIGFzIGFuIGV4YW1w bGU6CgpJZiB3ZSBpbnN0YW50aWF0ZSB2bTEsIHZtMiBhbmQgdm0zLCBvbmUgYWZ0ZXIgYW5vdGhl ciwK4oCceGVuc3RvcmUgbHMgLWbigJ0gc2hvdWxkIG91dHB1dCBzb21ldGhpbmcgbGlrZSB0aGlz OgoKQWZ0ZXIgVk0xIHdhcyBpbnN0YW50aWF0ZWQsIHRoZSBvdXRwdXQgb2Yg4oCceGVuc3RvcmUg bHMgLWbigJ0Kd2lsbCBiZSBzb21ldGhpbmcgbGlrZSB0aGlzOgoKICAgIC9sb2NhbC9zaGFyZWRf bWVtL0lEMS9tYXN0ZXIgPSBkb21pZF9vZl92bTEKICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9n bWZuX2JlZ2luID0gZ21mbjEKICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9nbWZuX2VuZCA9IGdt Zm4yCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDEvZ3JhbnVsYXJpdHkgPSAiNGsiCiAgICAvbG9j YWwvc2hhcmVkX21lbS9JRDEvcGVybWlzc2lvbnMgPSAiUk8iCiAgICAvbG9jYWwvc2hhcmVkX21l bS9JRDEvc2xhdmVzID0gIiIKCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvbWFzdGVyID0gZG9t aWRfb2Zfdm0xCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvZ21mbl9iZWdpbiA9IGdtZm4zCiAg ICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvZ21mbl9lbmQgPSBnbWY0CiAgICAvbG9jYWwvc2hhcmVk X21lbS9JRDEvZ3JhbnVsYXJpdHkgPSAiNGsiCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvcGVy bWlzc2lvbnMgPSAiUlciCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvc2xhdmVzID0gIiIKCkFm dGVyIFZNMiB3YXMgaW5zdGFudGlhdGVkLCB0aGUgZm9sbG93aW5nIG5ldyBsaW5lcyB3aWxsIGFw cGVhcjoKCiAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDEvc2xhdmVzL2RvbWlkX29mX3ZtMi9nbWZu X2JlZ2luID0gZ21mbjUKICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2ZXMvZG9taWRfb2Zf dm0yL2dtZm5fZW5kID0gZ21mbjYKICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2ZXMvZG9t aWRfb2Zfdm0yL3Blcm1pc3Npb25zID0gIlJPIgoKQWZ0ZXIgVk0yIHdhcyBpbnN0YW50aWF0ZWQs IHRoZSBmb2xsb3dpbmcgbmV3IGxpbmVzIHdpbGwgYXBwZWFyOgoKICAgIC9sb2NhbC9zaGFyZWRf bWVtL0lEMi9zbGF2ZXMvZG9taWRfb2Zfdm0zL2dtZm5fYmVnaW4gPSBnbWZuNwogICAgL2xvY2Fs L3NoYXJlZF9tZW0vSUQyL3NsYXZlcy9kb21pZF9vZl92bTMvZ21mbl9lbmQgPSBnbWZuOAogICAg L2xvY2FsL3NoYXJlZF9tZW0vSUQyL3NsYXZlcy9kb21pZF9vZl92bTMvcGVybWlzc2lvbnMgPSAi UlciCgoKV2hlbiB3ZSBlbmNvdW50ZXIgYW4gaWQgSUR4IGR1cmluZyAieGwgY3JlYXRlIjoKCiAg KyBJZiBpdOKAmXMgbm90IHVuZGVyIC9sb2NhbC9zaGFyZWRfbWVtOgogICAgKyBJZiB0aGUgY29y cmVzcG9uZGluZyBlbnRyeSBoYXMgYSAibWFzdGVyIiB0YWcsIGNyZWF0ZSB0aGUKICAgICAgY29y cmVzcG9uZGluZyBlbnRyaWVzIGZvciBJRHggaW4geGVuc3RvcmUKICAgICsgSWYgdGhlcmUgaXNu J3QgYSAibWFzdGVyIiB0YWcsIHNheSBlcnJvci4KCiAgKyBJZiBpdOKAmXMgZm91bmQgdW5kZXIg L2xvY2FsL3NoYXJlZF9tZW06CiAgICArIElmIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IGhhcyBh ICJtYXN0ZXIiIHRhZywgc2F5IGVycm9yCiAgICArIElmIHRoZXJlIGlzbid0IGEgIm1hc3RlciIg dGFnLCBtYXAgdGhlIHBhZ2VzIHRvIHRoZSBuZXdseQogICAgICBjcmVhdGVkIGRvbWFpbiwgYW5k IGFkZCB0aGUgY3VycmVudCBkb21haW4gYW5kIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbgogICAgICB1 bmRlciAvbG9jYWwvc2hhcmVkX21lbS9JRHgvc2xhdmVzLgoKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KMi4zIG1hcHBpbmcgdGhlIG1lbW9yeSBhcmVhcwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpIYW5kbGUgdGhlIG5ld2x5IGFkZGVkIGNvbmZp ZyBvcHRpb24gaW4gdG9vbHMve3hsLCBsaWJ4bH0gYW5kIHV0aWxpemUKdG9vcy9saWJ4YyB0byBk byB0aGUgYWN0dWFsIG1lbW9yeSBtYXBwaW5nLiBTcGVjaWZpY2FsbHksIHdlIHdpbGwgdXNlCmEg d3JhcHBlciB0byBYRU5NTUVfYWRkX3RvX3BoeXNtYXBfYmF0Y2ggd2l0aCBYRU5NQVBTUEFDRV9n bWZuX2ZvcmVpZ24gdG8KZG8gdGhlIGFjdHVhbCBtYXBwaW5nLiBCdXQgc2luY2UgdGhlcmUgaXNu J3Qgc3VjaCBhIHdyYXBwZXIgaW4gbGlieGMsIHdlJ2xsCmhhdmUgdG8gYWRkIGEgbmV3IHdyYXBw ZXIsIHhjX2RvbWFpbl9hZGRfdG9fcGh5c21hcF9iYXRjaCBpbiBsaWJ4Yy94Y19kb21haW4uYwoK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi40IGVycm9yIGhhbmRsaW5n Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkFkZCBjb2RlIHRvIGhhbmRs ZSB2YXJpb3VzIGVycm9yczogSW52YWxpZCBhZGRyZXNzLCBpbnZhbGlkIHBlcm1pc3Npb25zLCB3 cm9uZwpvcmRlciBvZiB2bSBjcmVhdGlvbiwgbWlzbWF0Y2hlZCBncmFudWxhaXJ0eSBvZiBsZW5n dGggb2YgbWVtb3J5IGFyZWEgZXRjLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQozLiBFeHBlY3RlZCBPdXRjb21lcy9Hb2FsczoKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpBIG5ldyBWTSBjb25m aWcgb3B0aW9uIGluIHhsIHdpbGwgYmUgaW50cm9kdWNlZCwgYWxsb3dpbmcgdXNlcnMgdG8gc2V0 dXAKc2V2ZXJhbCBzaGFyZWQgbWVtb3J5IGFyZWFzIGZvciBpbnRlci1WTXMgY29tbXVuaWNhdGlv bnMuClRoaXMgc2hvdWxkIHdvcmsgb24gYm90aCB4ODYgYW5kIEFSTS4KCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gRnV0dXJlIERpcmVjdGlv bnM6Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K VGhlcmUgY291bGQgYWxzbyBiZSBvdGhlciBub24tcGVybWlzc2lvbiBtZW1vcnkgYXR0cmlidXRl cyBsaWtlIGNhY2hlYWJpbGl0eQphbmQgc2hhcmVhYmlsaXR5LgoKSW5kaWNhdGlvbnMgb2Ygd2hl cmUgaW4gdGhlIGhvc3QgcGh5c2ljYWwgbWVtb3J5IHNob3VsZCB3ZSBnZXQgdGhlIGJhY2tpbmcK bWVtb3J5IGZyb20uCgpTZXQgdXAgYSBub3RpZmljYXRpb24gY2hhbm5lbCBiZXR3ZWVuIGRvbWFp bnMgd2hvIGFyZSBjb21tdW5pY2F0aW5nIHRocm91Z2gKc2hhcmVkIG1lbW9yeSByZWdpb25zLCB0 aGlzIGFsbG93cyBvbmUgdm0gdG8gc2lnbmFsIGhlciBmcmllbmRzIHdoZW4gZGF0YSBpcwphdmFp bGFibGUgaW4gdGhlIHNoYXJlZCBtZW1vcnkgb3Igd2hlbiB0aGUgZGF0YSBpbiB0aGUgc2hhcmVk IG1lbW9yeSBpcwpjb25zdW1lZC4gVGhlIGNoYW5uZWwgY291bGQgYmUgYnVpbHQgdXBvbiBQUEkg b3IgU0dJLgoKCltTZWUgYWxzbzoKaHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvT3V0 cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyNTaGFyZV9hX3BhZ2VfaW5fbWVtb3J5X2Zyb21fdGhlX1ZN X2NvbmZpZ19maWxlXQoKCkNoZWVycywKClpob25nemUgTGl1CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK