From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7] xSplice v1 design and implementation. Date: Sun, 10 Apr 2016 17:14:32 -0400 Message-ID: <1460322896-1115-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apMhR-00084u-0C for xen-devel@lists.xenproject.org; Sun, 10 Apr 2016 21:15:17 +0000 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, konrad@kernel.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de List-Id: xen-devel@lists.xenproject.org SGV5IQoKQ2hhbmdlbG9nOgp2NjogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94 ZW4tZGV2ZWwvMjAxNi0wNC9tc2cwMDg3MS5odG1sCiAtIEFjdGVkIG9uIGFsbCBjb21tZW50cyBm cm9tIEFuZHJldywgSnVsaWVuLCBhbmQgSmFuLgogLSBHb3QgaGVscCBmcm9tIEFuZHJldyBvbiBv bmUgb2YgdGhlbSBvdmVyIHRoZSB3ZWVrZW5kLgogLSBGaW5hbGx5IGdvdCBteSBFRkkgYm94IHdv cmtpbmcgKHRlc3RzIHBhc3NlZCkuCnY1OiBodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9o dG1sL3hlbi1kZXZlbC8yMDE2LTAzL21zZzAzMjg2Lmh0bWwKIC0gQWN0ZWQgYXQgYWxsIGNvbW1l bnRzIGZyb20gSmFuLgp2NDogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxNi0wMy9tc2cwMTc3Ni5odG1sCiAtIExvdHMgb2YgcmV2aWV3LiBMb3RzIG9mIHJl d29yay4gU29tZSBwYXRjaGVzIGNoZWNrZWQgaW4uCnYzOiBodHRwOi8vd3d3Lmdvc3NhbWVyLXRo cmVhZHMuY29tL2xpc3RzL3hlbi9kZXZlbC80MTgyNjIKICAgIGFuZCAKICAgIGh0dHA6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE2LTAyL21zZzA0MTA2 Lmh0bWwKIC0gQWN0IG9uIGFsbCByZXZpZXdzLgogLSBSZWRvIHRoZSBmbG93IG9mIHBhdGNoZXMK djI6IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYtMDEv bXNnMDE1OTcuaHRtbAogLSBVcGRhdGVkIGNvZGUvZG9jcy9kZXNpZ24gd2l0aCByZXZpZXcgY29t bWVudHMuCiAtIE1ha2UgeGVuIGFsc28gaGF2ZSBhbiBQVF9OT1RFCiAtIEFkZGVkIG1vcmUgb2Yg Um9zcydzIHBhdGNoZXMKIC0gQ29tYmluZWQgYnVpbGQtaWQgcGF0Y2hzZXQgd2l0aCB0aGlzLgoo c2luY2UgdGhlIFJGQyBhbmQgdGhlIFNlYXR0bGUgWGVuIHByZXNlbnRhdGlvbikKIC0gRmluaXNo ZWQgb2ZmIHNvbWUgb2YgdGhlIHdvcmsgYXJvdW5kIHRoZSBidWlsZC1pZC4KIC0gU2V0dGxlZCBv biB0aGUgcHJlZW1wdGlvbiBtZWNoYW5pc20uCiAtIENsZWFuZWQgdGhlIHBhdGNoZXMgYSBsb3Qg dXAsIGJyb2tlIHRoZW0gdXAgdG8gZWFzeQogICByZXZpZXcgZm9yIG1haW50YWluZXJzLgp2MTog aHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTUt MDkvbXNnMDIxMTYuaHRtbAogIC0gUHV0IGFsbCB0aGUgZGVzaWduIGNvbW1lbnRzIGluIHRoZSBj b2RlClByb3RvdHlwZTogaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwv eGVuLWRldmVsLzIwMTUtMTAvbXNnMDI1OTUuaHRtbApbUG9zdGluZyBieSBSb3NzXQogLSBUb29r IGFsbCByZXZpZXdzIGludG8gYWNjb3VudC4KIC0gUmVkaWQgdGhlIHBhdGNoZXMKCgoqVG9vbHMg TWFpbnRhaW5lcnMqCgpBbGwgcGF0Y2hlcyBhY2tlZC4gVGhlIHBhdGNoICMzOiAibGlieGM6IElt cGxlbWVudGF0aW9uIG9mIFhFTl9YU1BMSUNFX29wIGluIGxpYnhjIgpoYXMgZXJybm89LUVJTlZB TCBzcHJpbmtsZWQgb24gc29tZSByZXR1cm4gcGF0aHMuCgoqSHlwZXJ2aXNvciBNYWludGFpbmVy cyoKCkphbiwgdGhlIGh5cGVydmlzb3IgcGF0Y2hlcyAjMiwgIzUtIzE3LCAjMjEtIzIzIG5lZWQg eW91ciBBY2suCgpBbGwgaHlwZXJ2aXNvciBwYXRjaGVzIGhhdmUgYmVlbiBSZXZpZXdlZCBieSBB bmRyZXcuCgpUaGVyZSBpcyBhIG5ldyBwYXRjaCB0aGFua3MgdG8gQW5kcmV3J3MgaGVscCBvdmVy IHRoZSB3ZWVrZW5kIQoKIFtQQVRDSCB2NyAwNy8yNF0geDg2L21tOiBJbnRyb2R1Y2UgbW9kaWZ5 X3hlbl9tYXBwaW5ncygpCgpBbGwgdGhlIFhTTSBwYXJ0cyBoYXZlIGJlZW4gQWNrZWQuCgpUaGUg cGF0Y2ggcmVsYXRlZCB0byBWRVJTSU9OX2J1aWxkX2lkIGhhcyBiZWVuIEFja2VkOgogSFlQRVJD QUxMX3ZlcnNpb25fb3A6IEFkZCBWRVJTSU9OX2J1aWxkX2lkIHRvIHJldHJpZXZlIGJ1aWxkLWlk LgoKUGF0Y2hzZXQgaGFzIGJlZW4gdGVzdGVkIG9uIEFSTSAodHdlYWtpbmcgdGhlIEtjb25maWcg dG8gYnVpbGQgeFNwbGljZSBhbmQgdGhlbgpib290aW5nIGFuZCB1c2luZyBpdCB1bmRlciBBUk0g Q3ViaWVUcnVjayAtIGdyYW50ZWQgdGhlcmUgaXMgbm8gcGF0Y2hpbmcKYnV0IHRoZSBoeXBlcmNh bGxzIHdvcmspLCBBUk02NCAob25seSBidWlsdCBpdCksIGFuZCB4ODYgKGxlZ2FjeSBhbmQgRUZJ KQoKKkFyZSB0aGVyZSBhbnkgVE9ET3MgbGVmdCBmcm9tIHY1IG9yIHY2IHJldmlld3M/KgoKT25l IEkgaG9wZSBjYW4gYmUgZGVmZXJyZWQgLSB0aGF0IGlzIHhlbnN5bXNfcmVhZCB3aGljaCB3ZSB1 c2UgaW4KICJbUEFUQ0ggdjcgMTIvMjRdIHhzcGxpY2Usc3ltYm9sczogSW1wbGVtZW50IHN5bWJv bCBuYW1lIHJlc29sdXRpb24gb24KIGFkZHJlc3MuIiBpcyBub3QgdGhlIGZhc3Rlc3QuIEl0IHdp bGwgbmVlZCBzb21lIHR3ZWFraW5nIChvciBhIG5ldwpmdW5jdGlvbiB3aWxsIGhhdmUgdG8gYmUg d3JpdHRlbikgYW5kIEkgaG9wZSB0aGF0IHRoaXMgY2FuIGJlIGRvbmUgaW4gdjQuOC4KClRoZSBv dGhlciBpcyB0byB0ZXN0IHRoaXMgb24gYSA4IHNvY2tldCBtYWNoaW5lIHdpdGggdG9ucyBvZiBD UFVzLgpTb21lYm9keSBlbHNlIGlzIHVzaW5nIHRoaXMgYmVhc3QgcmlnaHQgbm93LiBUaGUgaW1w YWN0IGlzIHdoZXRoZXIgdGhlIGRlZmF1bHQKdGltZW91dCBvZiAzMG1zIHRvIHF1aXNjZSB0aGUg Q1BVcyBzaG91bGQgYmUgaW5jcmVhc2VkIG9uIHRob3NlIGJlYXN0cy4KCipXaGF0IGlzIHhTcGxp Y2U/KgoKQSBtZWNoYW5pc20gdG8gYmluYXJpbHkgcGF0Y2ggdGhlIHJ1bm5pbmcgaHlwZXJ2aXNv ciB3aXRoIG5ldwpvcGNvZGVzIHRoYXQgaGF2ZSBjb21lIGFib3V0IGR1ZSB0byBwcmltYXJpbHkg c2VjdXJpdHkgdXBkYXRlcy4KCipXaGF0IHdpbGwgdGhpcyBwYXRjaHNldCBkbyBvbmNlIEkndmUg aXQqCgpQYXRjaCB0aGUgaHlwZXJ2aXNvci4KCipXaHkgYXJlIHlvdSBlbWFpbGluZyBtZT8qCgpQ bGVhc2UgcGxlYXNlIHJldmlldyBhcyBtYW55IHBhdGNoZXMgYXMgcG9zc2libGUuCgoqT0ssIHdo YXQgZG8geW91IGhhdmU/KgoKVGhleSBhcmUgbG9jYXRlZCBhdCBhIGdpdCB0cmVlOgogIGdpdDov L3hlbmJpdHMueGVuLm9yZy9wZW9wbGUva29ucmFkd2lsay94ZW4uZ2l0IHhzcGxpY2UudjcKCihD b3B5aW5nIGZyb20gUm9zcydzIGVtYWlsKToKCk11Y2ggb2YgdGhlIHdvcmsgaXMgaW1wbGVtZW50 aW5nIGEgYmFzaWMgdmVyc2lvbiBvZiB0aGUgTGludXgga2VybmVsIG1vZHVsZQpsb2FkZXIuIFRo ZSBjb2RlOgoqIExvYWRpbmcgb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMuCiogQ29weWluZyBhbGxv Y2F0ZWQgc2VjdGlvbnMgaW50byBhIG5ldyBleGVjdXRhYmxlIHJlZ2lvbiBvZiBtZW1vcnkuCiog UmVzb2x2aW5nIHN5bWJvbHMuCiogQXBwbHlpbmcgcmVsb2NhdGlvbnMuCiogUGF0Y2hpbmcgb2Yg YWx0aW5zdHJ1Y3Rpb25zLgoqIFNwZWNpYWwgaGFuZGxpbmcgb2YgYnVnIGZyYW1lcyBhbmQgZXhj ZXB0aW9uIHRhYmxlcy4KKiBVbmxvYWRpbmcgb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMuCiogQ29t cGlsaW5nIGEgc2FtcGxlIHhTcGxpY2UgRUxGIHBheWxvYWQKKiBSZXNvbHZpbmcgc3ltYm9scwoq IFVzaW5nIGJ1aWxkLWlkIGRlcGVuZGVuY2llcwoqIFN1cHBvcnQgZm9yIHNoYWRvdyB2YXJpYWJs ZSBmcmFtZXdvcmsKKiBTdXBwb3J0IGZvciBleGVjdXRpbmcgRUxGIHBheWxvYWQgZnVuY3Rpb25z IG9uIGxvYWQvdW5sb2FkLgoKVGhlIG90aGVyIG1haW4gYml0IG9mIHRoaXMgd29yayBpcyBhcHBs eWluZyBhbmQgcmV2ZXJ0aW5nIHRoZSBwYXRjaGVzIHNhZmVseS4KQXMgaW1wbGVtZW50ZWQsIHRo ZSBjb2RlIGlzIHBhdGNoZWQgd2l0aCBlYWNoIENQVSB3YWl0aW5nIGluIHRoZQpyZXR1cm4tdG8t Z3Vlc3QgcGF0aCAoaS5lLiB3aXRoIG5vIHN0YWNrKSBvciBvbiB0aGUgY3B1LWlkbGUgcGF0aAp3 aGljaCBhcHBlYXJzIHRvIGJlIHRoZSBzYWZlc3Qgd2F5IG9mIHBhdGNoaW5nLiBXaGlsZSBpdCBp cyBzYWZlIHdlIHNob3VsZApzdGlsbCAoaW4gdGhlIG5leHQgd2F2ZSBvZiBwYXRjaGVzKSB0byB2 ZXJpZnkgdG8gbm90IHBhdGNoIGNldGFpbiBjcml0aWNhbApzZWN0aW9ucyAoc2F5IHRoZSBjb2Rl IGRvaW5nIHRoZSBwYXRjaGluZykKCkFsbCBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCB3b3JrOgoq IEFwcGx5aW5nIHBhdGNoZXMgc2FmZWx5LgoqIFJldmVydGluZyBwYXRjaGVzIHNhZmVseS4KKiBS ZXBsYWNpbmcgcGF0Y2hlcyBzYWZlbHkgKGUuZy4gcmV2ZXJ0aW5nIGFueSBhcHBsaWVkIHBhdGNo ZXMgYW5kIGFwcGx5aW5nCiAgIGEgbmV3IHBhdGNoKS4KKiBCdWcgZnJhbWVzIGFzIHBhcnQgb2Yg bW9kdWxlcy4gVGhpcyBtZWFucyBhZGRpbmcgb3IKICBjaGFuZ2luZyBXQVJOLCBBU1NFUlQsIEJV RywgYW5kIHJ1bl9pbl9leGNlcHRpb25faGFuZGxlciB3b3JrcyBjb3JyZWN0bHkuCiAgTGluZSBu dW1iZXIgb25seSBjaGFuZ2VzIF9hcmUgaWdub3JlZF8uCiogRXhjZXB0aW9uIHRhYmxlcyBhcyBw YXJ0IG9mIG1vZHVsZXMuIEUuZy4gd3Jtc3Jfc2FmZSBhbmQgY29weV90b191c2VyIHdvcmsKICBj b3JyZWN0bHkgd2hlbiB1c2VkIGluIGEgcGF0Y2ggbW9kdWxlLgoqIFN0YWNraW5nIG9mIHBhdGNo ZXMgb24gdG9wIG9mIGVhY2ggb3RoZXIKKiBSZXNvbHZpbmcgc3ltYm9scyAoZXZlbiBvZiBwYXRj aGVzKQoKKkxpbWl0YXRpb25zKgoKVGhlIGFib3ZlIGlzIGVub3VnaCB0byBmdWxseSBpbXBsZW1l bnQgYW4gdXBkYXRlIHN5c3RlbSB3aGVyZSBtdWx0aXBsZSBzb3VyY2UKcGF0Y2hlcyBhcmUgY29t YmluZWQgKHVzaW5nIGNvbWJpbmVkaWZmKSBhbmQgYnVpbHQgaW50byBhIHNpbmdsZSBiaW5hcnkK d2hpY2ggdGhlbiBhdG9taWNhbGx5IHJlcGxhY2VzIGFueSBleGlzdGluZyBsb2FkZWQgcGF0Y2hl cwoodGhpcyBpcyB3aHkgUm9zcyBhZGRlZCBhIFJFUExBQ0Ugb3BlcmF0aW9uKS4gVGhpcyBpcyB0 aGUgYXBwcm9hY2ggdXNlZApieSBrUGF0Y2ggYW5kIGtHcmFmdC4KCk11bHRpcGxlIGNvbXBsZXRl bHkgaW5kZXBlbmRlbnQgcGF0Y2hlcyBjYW4gYWxzbyBiZSBsb2FkZWQgYnV0IHVuZXhwZWN0ZWQK aW50ZXJhY3Rpb25zIG1heSBvY2N1ci4KCkFzIGl0IHN0YW5kcywgdGhlIHBhdGNoZXMgYXJlIHN0 YXRpY2FsbHkgbGlua2VkIHdoaWNoIG1lYW5zIHRoYXQgaW5kZXBlbmRlbnQKcGF0Y2hlcyBjYW5u b3QgYmUgbGlua2VkIGFnYWluc3Qgb25lIGFub3RoZXIgKGUuZy4gaWYgb25lIGludHJvZHVjZXMg YQpuZXcgc3ltYm9sKS4gVXNpbmcgdGhlIGNvbWJpbmVkaWZmIGFwcHJvYWNoIGFib3ZlIGZpeGVz IHRoaXMuCgpCYWNrdHJhY2VzIGNvbnRhaW5pbmcgZnVuY3Rpb25zIGZyb20gYSBwYXRjaCBtb2R1 bGUgZG8gbm90IHNob3cgdGhlIHN5bWJvbCBuYW1lLgoKVGhlcmUgaXMgbm8gY2hlY2tpbmcgdGhh dCBhIHBhdGNoIHdoaWNoIGlzIGxvYWRlZCBpcyBidWlsdCBmb3IgdGhlCmNvcnJlY3QgaHlwZXJ2 aXNvciAobmVlZCB0byB1c2UgYnVpbGQtaWQpLgoKQmluYXJ5IHBhdGNoaW5nIHdvcmtzIGF0IHRo ZSBmdW5jdGlvbiBsZXZlbC4KCipUZXN0aW5nKgoKWW91IGNhbiB1c2UgdGhlIGV4YW1wbGUgY29k ZSBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoc2V0OgoKIyB4bCBpbmZvIHwgZ3JlcCBleHRyYQp4ZW5f ZXh0cmEgICAgICAgICAgICAgIDogLXVuc3RhYmxlCiMgeGVuLXhzcGxpY2UgbG9hZCAvdXNyL2xp Yi9kZWJ1Zy94ZW5faGVsbG9fd29ybGQueHNwbGljZQpVcGxvYWRpbmcgL3Vzci9saWIvZGVidWcv eGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UgKDIwNzEgYnl0ZXMpClBlcmZvcm1pbmcgY2hlY2s6IGNv bXBsZXRlZApQZXJmb3JtaW5nIGFwcGx5Oi4gY29tcGxldGVkCiMgeGwgaW5mbyB8IGdyZXAgZXh0 cmEKeGVuX2V4dHJhICAgICAgICAgICAgICA6IEhlbGxvIFdvcmxkCiMgeGVuLXhzcGxpY2UgcmV2 ZXJ0IHhlbl9oZWxsb193b3JsZApQZXJmb3JtaW5nIHJldmVydDouIGNvbXBsZXRlZAojIHhlbi14 c3BsaWNlIHVubG9hZCB4ZW5faGVsbG9fd29ybGQKUGVyZm9ybWluZyB1bmxvYWQ6IGNvbXBsZXRl ZAojIHhsIGluZm8gfCBncmVwIGV4dHJhCnhlbl9leHRyYSAgICAgICAgICAgICAgOiAtdW5zdGFi bGUKCk9yIHlvdSBjYW4gdXNlIGdpdDovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUva29ucmFkd2ls ay94c3BsaWNlLWJ1aWxkLXRvb2xzLmdpdAp3aGljaCBnZW5lcmF0ZXMgdGhlIEVMRiBwYXlsb2Fk cy4KClRoaXMgbGluayBoYXMgYSBuaWNlIGRlc2NyaXB0aW9uIG9mIGhvdyB0byB1c2UgdGhlIHRv b2w6Cmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8y MDE1LTEwL21zZzAyNTk1Lmh0bWwKCkFuZHJldyBDb29wZXIgKDEpOgogICAgICB4ODYvbW06IElu dHJvZHVjZSBtb2RpZnlfeGVuX21hcHBpbmdzKCkKCktvbnJhZCBSemVzenV0ZWsgV2lsayAoMTQp OgogICAgICB4c3BsaWNlOiBEZXNpZ24gZG9jdW1lbnQKICAgICAgeGVuL3hzcGxpY2U6IEh5cGVy dmlzb3IgaW1wbGVtZW50YXRpb24gb2YgWEVOX1hTUExJQ0Vfb3AKICAgICAgbGlieGM6IEltcGxl bWVudGF0aW9uIG9mIFhFTl9YU1BMSUNFX29wIGluIGxpYnhjCiAgICAgIHhlbi14c3BsaWNlOiBU b29sIHRvIG1hbmlwdWxhdGUgeHNwbGljZSBwYXlsb2FkcwogICAgICBhcm0veDg2OiBVc2Ugc3Ry dWN0IHZpcnR1YWxfcmVnaW9uIHRvIGRvIGJ1Zywgc3ltYm9sLCBhbmQgKHg4NikgZXhjZXB0aW9u IHRhYmxlcyBsb29rdXAuCiAgICAgIGFybS94ODYvdm1hcDogQWRkIHZtYWxsb2NfeGVuLCB2ZnJl ZV94ZW4gYW5kIHZtX2luaXRfdHlwZQogICAgICB4ODYveGVuX2hlbGxvX3dvcmxkLnhzcGxpY2U6 IFRlc3QgcGF5bG9hZCBmb3IgcGF0Y2hpbmcgJ3hlbl9leHRyYV92ZXJzaW9uJy4KICAgICAgYnVp bGRfaWQ6IFByb3ZpZGUgbGQtZW1iZWRkZWQgYnVpbGQtaWRzCiAgICAgIEhZUEVSQ0FMTF92ZXJz aW9uX29wOiBBZGQgVkVSU0lPTl9idWlsZF9pZCB0byByZXRyaWV2ZSBidWlsZC1pZC4KICAgICAg bGlieGw6IGluZm86IERpc3BsYXkgYnVpbGRfaWQgb2YgdGhlIGh5cGVydmlzb3IgdXNpbmcgWEVO X1ZFUlNJT05fYnVpbGRfaWQKICAgICAgeHNwbGljZTogUHJpbnQgYnVpbGRfaWQgaW4ga2V5aGFu ZGxlciBhbmQgb24gYm9vdHVwLgogICAgICB4c3BsaWNlOiBTdGFja2luZyBidWlsZC1pZCBkZXBl bmRlbmN5IGNoZWNraW5nLgogICAgICB4c3BsaWNlL3hlbl9yZXBsYWNlX3dvcmxkOiBUZXN0LWNh c2UgZm9yIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0UKICAgICAgTUFJTlRBSU5FUlMveHNwbGljZTog QWRkIG15c2VsZiBhbmQgUm9zcyBhcyB0aGUgbWFpbnRhaW5lcnMuCgpSb3NzIExhZ2Vyd2FsbCAo OSk6CiAgICAgIHhzcGxpY2U6IEFkZCBoZWxwZXIgZWxmIHJvdXRpbmVzCiAgICAgIHhzcGxpY2U6 IEltcGxlbWVudCBwYXlsb2FkIGxvYWRpbmcKICAgICAgeHNwbGljZTogSW1wbGVtZW50IHN1cHBv cnQgZm9yIGFwcGx5aW5nL3JldmVydGluZy9yZXBsYWNpbmcgcGF0Y2hlcy4KICAgICAgeHNwbGlj ZSxzeW1ib2xzOiBJbXBsZW1lbnQgc3ltYm9sIG5hbWUgcmVzb2x1dGlvbiBvbiBhZGRyZXNzLgog ICAgICB4ODYsIHhzcGxpY2U6IFByaW50IHBheWxvYWQncyBzeW1ib2wgbmFtZSBhbmQgcGF5bG9h ZCBuYW1lIGluIGJhY2t0cmFjZXMKICAgICAgeHNwbGljZTogQWRkIHN1cHBvcnQgZm9yIGJ1ZyBm cmFtZXMuCiAgICAgIHhzcGxpY2U6IEFkZCBzdXBwb3J0IGZvciBleGNlcHRpb24gdGFibGVzLgog ICAgICB4c3BsaWNlOiBBZGQgc3VwcG9ydCBmb3IgYWx0ZXJuYXRpdmVzCiAgICAgIHhzcGxpY2U6 IFByZXZlbnQgZHVwbGljYXRlIHBheWxvYWRzIGZyb20gYmVpbmcgbG9hZGVkLgoKIC5naXRpZ25v cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBDb25maWcubWsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKwogTUFJTlRBSU5FUlMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIGRvY3MvbWlzYy94c3Bs aWNlLm1hcmtkb3duICAgICAgICAgICAgICAgICAgIHwgMTExMCArKysrKysrKysrKysrKysrKysr CiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZSB8ICAgIDIgKwog dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgICAgICAgICAgfCAgIDYyICsrCiB0 b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNTUgKysrKysr CiB0b29scy9saWJ4bC9saWJ4bC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKy0K IHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiB0 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogdG9v bHMvbGlieGwveGxfY21kaW1wbC5jICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHRvb2xz L21pc2MvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiB0b29scy9t aXNjL3hlbi14c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgICB8ICA0NjMgKysrKysrKysKIHhl bi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogeGVu L2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiB4ZW4v YXJjaC9hcm0va2VybmVsLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIHhlbi9h cmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogeGVuL2Fy Y2gvYXJtL3NldHVwLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIHhlbi9hcmNo L2FybS90cmFwcy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOSArLQogeGVuL2FyY2gv YXJtL3hlbi5sZHMuUyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCiB4ZW4vYXJjaC9h cm0veHNwbGljZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgODcgKysKIHhlbi9hcmNoL3g4 Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NSArLQogeGVuL2FyY2gveDg2 L2FsdGVybmF0aXZlLmMgICAgICAgICAgICAgICAgICAgfCAgIDQyICstCiB4ZW4vYXJjaC94ODYv Ym9vdC9ta2VsZjMyLmMgICAgICAgICAgICAgICAgICB8ICAxMjkgKystCiB4ZW4vYXJjaC94ODYv ZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogeGVuL2FyY2gveDg2L2V4 dGFibGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQxICstCiB4ZW4vYXJjaC94ODYvbW0u YyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzEgKy0KIHhlbi9hcmNoL3g4Ni9zZXR1 cC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArLQogeGVuL2FyY2gveDg2L3Rlc3Qv TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDg1ICsrCiB4ZW4vYXJjaC94ODYvdGVzdC94 ZW5fYnllX3dvcmxkLmMgICAgICAgICAgICB8ICAgMzQgKwogeGVuL2FyY2gveDg2L3Rlc3QveGVu X2J5ZV93b3JsZF9mdW5jLmMgICAgICAgfCAgIDI0ICsKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9o ZWxsb193b3JsZC5jICAgICAgICAgIHwgICAzMyArCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVs bG9fd29ybGRfZnVuYy5jICAgICB8ICAgMzggKwogeGVuL2FyY2gveDg2L3Rlc3QveGVuX3JlcGxh Y2Vfd29ybGQuYyAgICAgICAgfCAgIDM0ICsKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9yZXBsYWNl X3dvcmxkX2Z1bmMuYyAgIHwgICAyNCArCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNDUgKy0KIHhlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyOCArCiB4ZW4vYXJjaC94ODYveHNwbGljZS5jICAgICAgICAgICAg ICAgICAgICAgICB8ICAyNjQgKysrKysKIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxNiArCiB4ZW4vY29tbW9uL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDMgKwogeGVuL2NvbW1vbi9rZXJuZWwuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICA0ICsKIHhlbi9jb21tb24vc3ltYm9scy5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0NSArLQogeGVuL2NvbW1vbi9zeXNjdGwuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICA2ICsKIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA3MCArKwogeGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jICAgICAgICAgICAgICAg ICAgfCAgMTQ4ICsrKwogeGVuL2NvbW1vbi92bWFwLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjAyICsrLS0KIHhlbi9jb21tb24vdnNwcmludGYuYyAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxOSArLQogeGVuL2NvbW1vbi94c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxNTI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vY29tbW9uL3hzcGxpY2Vf ZWxmLmMgICAgICAgICAgICAgICAgICAgICB8ICA0OTUgKysrKysrKysrCiB4ZW4vZHJpdmVycy9h Y3BpL29zbC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvYWx0ZXJuYXRpdmUuaCAgICAgICAgICAgIHwgICAgNCArCiB4ZW4vaW5jbHVkZS9hc20t eDg2L2N1cnJlbnQuaCAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIHhlbi9pbmNsdWRlL2FzbS14 ODYvdWFjY2Vzcy5oICAgICAgICAgICAgICAgIHwgICAgMiArCiB4ZW4vaW5jbHVkZS9wdWJsaWMv c3lzY3RsLmggICAgICAgICAgICAgICAgICB8ICAxODQgKysrKwogeGVuL2luY2x1ZGUvcHVibGlj L3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIHhlbi9pbmNsdWRlL3hlbi9lbGZz dHJ1Y3RzLmggICAgICAgICAgICAgICAgIHwgICAgNyArCiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogeGVuL2luY2x1ZGUveGVuL3N5bWJvbHMu aCAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIHhlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgg ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiB4ZW4vaW5jbHVkZS94ZW4vdmlydHVhbF9yZWdp b24uaCAgICAgICAgICAgICB8ICAgNDcgKwogeGVuL2luY2x1ZGUveGVuL3ZtYXAuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIxICstCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oICAgICAg ICAgICAgICAgICAgICB8ICAxNTcgKysrCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZV9lbGYuaCAg ICAgICAgICAgICAgICB8ICAgNTggKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA3ICsKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3Jz ICAgICAgICAgIHwgICAgNCArCiA2NSBmaWxlcyBjaGFuZ2VkLCA2MDM5IGluc2VydGlvbnMoKyks IDIwNSBkZWxldGlvbnMoLSkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==