From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH 9] xSplice v1 design and implementation. Date: Mon, 25 Apr 2016 11:34:47 -0400 Message-ID: <1461598514-5440-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 1auiYQ-0003zL-HZ for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:06 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de List-Id: xen-devel@lists.xenproject.org SGV5IQoKQ2hhbmdlbG9nOgp2OC4xOiBodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1s L3hlbi1kZXZlbC8yMDE2LTA0L21zZzAxOTAzLmh0bWwKIC0gV29ya2VkIG9uIEphbidzIGNvbW1l bnRzLgp2ODogc2luY2UgaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2 ZWwvMjAxNi0wNC9tc2cwMTg3My5odG1sCiAtIFBvc3RpbmcgdGhlIF9SSUdIVF8gc2V0IG9mIHBh dGNoZXMuCgp2NzogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwv MjAxNi0wNC9tc2cwMTQ3Ni5odG1sCiAtIEluZ2VzdGVkIG5ld2VyIHZlcnNpb24gb2YgeDg2L21t OiBJbnRyb2R1Y2UgbW9kaWZ5X3hlbl9tYXBwaW5ncygpCiAtIEltcGxlbWVudGVkIGZhc3RlciBz eW1ib2wgdGFibGUgbG9va3VwIChORVcpCiAtIENhcnJpZWQgb3V0IHRlc3RzIG9uIGxhcmdlIENQ VSBtYWNoaW5lICgyNDBDUFVzKQogLSBNYWRlIHRoZSBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5j IHdvcmsgb24gQVJNMzIgYW5kIGNoYW5nZWQgaXRzIHNpemUKICAgKDY0Yml0IGl0IGlzIDY0Ynl0 ZXMsIDMyYml0IGlzIDUyIGJ5dGVzIC0gYW5kIHRoZSBvZmZzZXQgaXMgZGlmZmVyZW50IHRvbykK IC0gQ2hhbmdlZCBhIGJ1bmNoIG9mIHByaW50ayB0byBkcHJpbnRrLCBhZGp1c3RlZCBYRU5MT0df IGxldmVscy4KIC0gUmVzdXJyZWN0ZWQgdGhlIFhFTlZFUl9idWlsZF9pZC4KIC0gUmV2ZXJ0ZWQg VkVSU0lPTl9vcC4KdjY6IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl dmVsLzIwMTYtMDQvbXNnMDA4NzEuaHRtbAogLSBBY3RlZCBvbiBhbGwgY29tbWVudHMgZnJvbSBB bmRyZXcsIEp1bGllbiwgYW5kIEphbi4KIC0gR290IGhlbHAgZnJvbSBBbmRyZXcgb24gb25lIG9m IHRoZW0gb3ZlciB0aGUgd2Vla2VuZC4KIC0gRHJvcHBlZDogeHNwbGljZTogQWRkIC54c3BsaWNl Lmhvb2tzIGZ1bmN0aW9ucyBhbmQgdGVzdC1jYXNlLAogICB4c3BsaWNlOiBBZGQgc3VwcG9ydCBm b3Igc2hhZG93IHZhcmlhYmxlcy4KdjU6IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0 bWwveGVuLWRldmVsLzIwMTYtMDMvbXNnMDMyODYuaHRtbAogLSBBY3RlZCBhdCBhbGwgY29tbWVu dHMgZnJvbSBKYW4uCnY0OiBodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1k ZXZlbC8yMDE2LTAzL21zZzAxNzc2Lmh0bWwKIC0gTG90cyBvZiByZXZpZXcuIExvdHMgb2YgcmV3 b3JrLiBTb21lIHBhdGNoZXMgY2hlY2tlZCBpbi4KdjM6IGh0dHA6Ly93d3cuZ29zc2FtZXItdGhy ZWFkcy5jb20vbGlzdHMveGVuL2RldmVsLzQxODI2MgogICAgYW5kIAogICAgaHR0cDovL2xpc3Rz LnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYtMDIvbXNnMDQxMDYu aHRtbAogLSBBY3Qgb24gYWxsIHJldmlld3MuCiAtIFJlZG8gdGhlIGZsb3cgb2YgcGF0Y2hlcwp2 MjogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNi0wMS9t c2cwMTU5Ny5odG1sCiAtIFVwZGF0ZWQgY29kZS9kb2NzL2Rlc2lnbiB3aXRoIHJldmlldyBjb21t ZW50cy4KIC0gTWFrZSB4ZW4gYWxzbyBoYXZlIGFuIFBUX05PVEUKIC0gQWRkZWQgbW9yZSBvZiBS b3NzJ3MgcGF0Y2hlcwogLSBDb21iaW5lZCBidWlsZC1pZCBwYXRjaHNldCB3aXRoIHRoaXMuCihz aW5jZSB0aGUgUkZDIGFuZCB0aGUgU2VhdHRsZSBYZW4gcHJlc2VudGF0aW9uKQogLSBGaW5pc2hl ZCBvZmYgc29tZSBvZiB0aGUgd29yayBhcm91bmQgdGhlIGJ1aWxkLWlkLgogLSBTZXR0bGVkIG9u IHRoZSBwcmVlbXB0aW9uIG1lY2hhbmlzbS4KIC0gQ2xlYW5lZCB0aGUgcGF0Y2hlcyBhIGxvdCB1 cCwgYnJva2UgdGhlbSB1cCB0byBlYXN5CiAgIHJldmlldyBmb3IgbWFpbnRhaW5lcnMuCnYxOiBo dHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNS0w OS9tc2cwMjExNi5odG1sCiAgLSBQdXQgYWxsIHRoZSBkZXNpZ24gY29tbWVudHMgaW4gdGhlIGNv ZGUKUHJvdG90eXBlOiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94 ZW4tZGV2ZWwvMjAxNS0xMC9tc2cwMjU5NS5odG1sCltQb3N0aW5nIGJ5IFJvc3NdCiAtIFRvb2sg YWxsIHJldmlld3MgaW50byBhY2NvdW50LgogLSBSZWRpZCB0aGUgcGF0Y2hlcwoKCipNYWludGFp bmVycyoKClNpbmNlIHY4LjEsIGFsbCBwYXRjaGVzIGV4Y2VwdDoKIHhzcGxpY2UsIHN5bWJvbHM6 IEltcGxlbWVudCBmYXN0IHN5bWJvbCBuYW1lcyAtPiB2aXJ0dWFsIGFkZHJlc3NlcyBsb29rdXAK CmhhdmUgcmV2aWV3ZWQtYnkuCgoqTWFpbnRhaW5lcnMqCgpMZWdlbmQ6CiAqICAgIC0gU2VlIGJl bG93CiBSICAgIC0gUmV2aWV3ZWQgCiBSKyAgIC0gUmV2aWV3ZWQgYnkgdHdvIGZvbGtzCiBBICAg IC0gQWNrZWQgYnkgbWFpbnRhaW5lciBvZiB0aGUgYXJlYSAoaHlwZXJ2aXNvciBvciB0b29sc3Rh Y2spCgogICAgICBSZXZlcnQgImxpYnhjL2xpYnhsL3B5dGhvbi94ZW5zdGF0L29jYW1sOiBVc2Ug bmV3CiAgQSAgIFJldmVydCAiSFlQRVJDQUxMX3ZlcnNpb25fb3AuIE5ldyBoeXBlcmNhbGwgbWly cm9yaW5nCiAgQSAgIHhzcGxpY2U6IERlc2lnbiBkb2N1bWVudAogICBSICB4ZW4veHNwbGljZTog SHlwZXJ2aXNvciBpbXBsZW1lbnRhdGlvbiBvZiBYRU5fWFNQTElDRV9vcAogIEFSICBsaWJ4Yzog SW1wbGVtZW50YXRpb24gb2YgWEVOX1hTUExJQ0Vfb3AgaW4gbGlieGMKICBBICAgeGVuLXhzcGxp Y2U6IFRvb2wgdG8gbWFuaXB1bGF0ZSB4c3BsaWNlIHBheWxvYWRzCiAgQVIgIGFybS94ODY6IFVz ZSBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gdG8gZG8gYnVnLCBzeW1ib2wsIGFuZCAoeDg2KSBleGNl cHRpb24gdGFibGVzIGxvb2t1cC4KICAgICAgICBbSnVsaWVuIEFja2VkIHRoZSBBUk0gcGFydF0K ICBBUiAgYXJtL3g4Ni92bWFwOiBBZGQgdlt6fG1dYWxsb2NfeGVuLCB2ZnJlZV94ZW4gYW5kIHZt X2luaXRfdHlwZQogICAgICAgIFtKdWxpZW4gQWNrZWQgdGhlIEFSTSBwYXJ0XQogICBSKyAgeDg2 L21tOiBJbnRyb2R1Y2UgbW9kaWZ5X3hlbl9tYXBwaW5ncygpCiAgIFIgIHhzcGxpY2U6IEFkZCBo ZWxwZXIgZWxmIHJvdXRpbmVzCiAgIFIgIHhzcGxpY2U6IEltcGxlbWVudCBwYXlsb2FkIGxvYWRp bmcKICAgUiAgeHNwbGljZTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIGFwcGx5aW5nL3JldmVydGlu Zy9yZXBsYWNpbmcgcGF0Y2hlcy4KICAgUiAgeDg2L3hlbl9oZWxsb193b3JsZC54c3BsaWNlOiBU ZXN0IHBheWxvYWQgZm9yIHBhdGNoaW5nICd4ZW5fZXh0cmFfdmVyc2lvbicuCiAgIFIgIHhzcGxp Y2Usc3ltYm9sczogSW1wbGVtZW50IHN5bWJvbCBuYW1lIHJlc29sdXRpb24gb24gYWRkcmVzcy4K KiAgICAgeHNwbGljZSwgc3ltYm9sczogSW1wbGVtZW50IGZhc3Qgc3ltYm9sIG5hbWVzIC0+IHZp cnR1YWwgYWRkcmVzc2VzIGxvb2t1cAogICBSICB4ODYsIHhzcGxpY2U6IFByaW50IHBheWxvYWQn cyBzeW1ib2wgbmFtZSBhbmQgcGF5bG9hZCBuYW1lIGluIGJhY2t0cmFjZXMKICAgUiAgeHNwbGlj ZTogQWRkIHN1cHBvcnQgZm9yIGJ1ZyBmcmFtZXMuCiAgIFIgIHhzcGxpY2U6IEFkZCBzdXBwb3J0 IGZvciBleGNlcHRpb24gdGFibGVzLgogICBSICB4c3BsaWNlOiBBZGQgc3VwcG9ydCBmb3IgYWx0 ZXJuYXRpdmVzCiAgQVIgIGJ1aWxkX2lkOiBQcm92aWRlIGxkLWVtYmVkZGVkIGJ1aWxkLWlkcwog IEFSICB4c3BsaWNlOiBQcmludCBidWlsZF9pZCBpbiBrZXloYW5kbGVyIGFuZCBvbiBib290dXAu CiAgQSAgIFhFTlZFUl9idWlsZF9pZC9saWJ4YzogUHJvdmlkZSBsZC1lbWJlZGRlZCBidWlsZC1p ZAogIEEgICBsaWJ4bDogaW5mbzogRGlzcGxheSBidWlsZF9pZCBvZiB0aGUgaHlwZXJ2aXNvci4K ICAgUiAgeHNwbGljZTogU3RhY2tpbmcgYnVpbGQtaWQgZGVwZW5kZW5jeSBjaGVja2luZy4KICAg UiAgeHNwbGljZS94ZW5fcmVwbGFjZV93b3JsZDogVGVzdC1jYXNlIGZvciBYU1BMSUNFX0FDVElP Tl9SRVBMQUNFCiAgIFIgIHhzcGxpY2U6IFByZXZlbnQgZHVwbGljYXRlIHBheWxvYWRzIGZyb20g YmVpbmcgbG9hZGVkLgogICBSICBNQUlOVEFJTkVSUy94c3BsaWNlOiBBZGQgbXlzZWxmIGFuZCBS b3NzIGFzIHRoZSBtYWludGFpbmVycy4KCgoqQXJlIHRoZXJlIGFueSBUT0RPcyBsZWZ0IGZyb20g djUsdjYsdjcsdjguMSByZXZpZXdzPyoKCk5vbmUuCgoqV2hhdCBpcyB4U3BsaWNlPyoKCkEgbWVj aGFuaXNtIHRvIGJpbmFyaWx5IHBhdGNoIHRoZSBydW5uaW5nIGh5cGVydmlzb3Igd2l0aCBuZXcK b3Bjb2RlcyB0aGF0IGhhdmUgY29tZSBhYm91dCBkdWUgdG8gcHJpbWFyaWx5IHNlY3VyaXR5IHVw ZGF0ZXMuCgoqV2hhdCB3aWxsIHRoaXMgcGF0Y2hzZXQgZG8gb25jZSBJJ3ZlIGl0KgoKUGF0Y2gg dGhlIGh5cGVydmlzb3IuCgoqV2h5IGFyZSB5b3UgZW1haWxpbmcgbWU/KgoKUGxlYXNlIHBsZWFz ZSByZXZpZXcgYXMgbWFueSBwYXRjaGVzIGFzIHBvc3NpYmxlLgoKKk9LLCB3aGF0IGRvIHlvdSBo YXZlPyoKClRoZXkgYXJlIGxvY2F0ZWQgYXQgYSBnaXQgdHJlZToKICBnaXQ6Ly94ZW5iaXRzLnhl bi5vcmcvcGVvcGxlL2tvbnJhZHdpbGsveGVuLmdpdCAgIHhzcGxpY2UudjkKCihDb3B5aW5nIGZy b20gUm9zcydzIGVtYWlsKToKCk11Y2ggb2YgdGhlIHdvcmsgaXMgaW1wbGVtZW50aW5nIGEgYmFz aWMgdmVyc2lvbiBvZiB0aGUgTGludXgga2VybmVsIG1vZHVsZQpsb2FkZXIuIFRoZSBjb2RlOgoq IExvYWRpbmcgb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMuCiogQ29weWluZyBhbGxvY2F0ZWQgc2Vj dGlvbnMgaW50byBhIG5ldyBleGVjdXRhYmxlIHJlZ2lvbiBvZiBtZW1vcnkuCiogUmVzb2x2aW5n IHN5bWJvbHMuCiogQXBwbHlpbmcgcmVsb2NhdGlvbnMuCiogUGF0Y2hpbmcgb2YgYWx0aW5zdHJ1 Y3Rpb25zLgoqIFNwZWNpYWwgaGFuZGxpbmcgb2YgYnVnIGZyYW1lcyBhbmQgZXhjZXB0aW9uIHRh Ymxlcy4KKiBVbmxvYWRpbmcgb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMuCiogQ29tcGlsaW5nIGEg c2FtcGxlIHhTcGxpY2UgRUxGIHBheWxvYWQKKiBSZXNvbHZpbmcgc3ltYm9scwoqIFVzaW5nIGJ1 aWxkLWlkIGRlcGVuZGVuY2llcwoqIFN1cHBvcnQgZm9yIHNoYWRvdyB2YXJpYWJsZSBmcmFtZXdv cmsKKiBTdXBwb3J0IGZvciBleGVjdXRpbmcgRUxGIHBheWxvYWQgZnVuY3Rpb25zIG9uIGxvYWQv dW5sb2FkLgoKVGhlIG90aGVyIG1haW4gYml0IG9mIHRoaXMgd29yayBpcyBhcHBseWluZyBhbmQg cmV2ZXJ0aW5nIHRoZSBwYXRjaGVzIHNhZmVseS4KQXMgaW1wbGVtZW50ZWQsIHRoZSBjb2RlIGlz IHBhdGNoZWQgd2l0aCBlYWNoIENQVSB3YWl0aW5nIGluIHRoZQpyZXR1cm4tdG8tZ3Vlc3QgcGF0 aCAoaS5lLiB3aXRoIG5vIHN0YWNrKSBvciBvbiB0aGUgY3B1LWlkbGUgcGF0aAp3aGljaCBhcHBl YXJzIHRvIGJlIHRoZSBzYWZlc3Qgd2F5IG9mIHBhdGNoaW5nLiBXaGlsZSBpdCBpcyBzYWZlIHdl IHNob3VsZApzdGlsbCAoaW4gdGhlIG5leHQgd2F2ZSBvZiBwYXRjaGVzKSB0byB2ZXJpZnkgdG8g bm90IHBhdGNoIGNldGFpbiBjcml0aWNhbApzZWN0aW9ucyAoc2F5IHRoZSBjb2RlIGRvaW5nIHRo ZSBwYXRjaGluZykKCkFsbCBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCB3b3JrOgoqIEFwcGx5aW5n IHBhdGNoZXMgc2FmZWx5LgoqIFJldmVydGluZyBwYXRjaGVzIHNhZmVseS4KKiBSZXBsYWNpbmcg cGF0Y2hlcyBzYWZlbHkgKGUuZy4gcmV2ZXJ0aW5nIGFueSBhcHBsaWVkIHBhdGNoZXMgYW5kIGFw cGx5aW5nCiAgIGEgbmV3IHBhdGNoKS4KKiBCdWcgZnJhbWVzIGFzIHBhcnQgb2YgbW9kdWxlcy4g VGhpcyBtZWFucyBhZGRpbmcgb3IKICBjaGFuZ2luZyBXQVJOLCBBU1NFUlQsIEJVRywgYW5kIHJ1 bl9pbl9leGNlcHRpb25faGFuZGxlciB3b3JrcyBjb3JyZWN0bHkuCiAgTGluZSBudW1iZXIgb25s eSBjaGFuZ2VzIF9hcmUgaWdub3JlZF8uCiogRXhjZXB0aW9uIHRhYmxlcyBhcyBwYXJ0IG9mIG1v ZHVsZXMuIEUuZy4gd3Jtc3Jfc2FmZSBhbmQgY29weV90b191c2VyIHdvcmsKICBjb3JyZWN0bHkg d2hlbiB1c2VkIGluIGEgcGF0Y2ggbW9kdWxlLgoqIFN0YWNraW5nIG9mIHBhdGNoZXMgb24gdG9w IG9mIGVhY2ggb3RoZXIKKiBSZXNvbHZpbmcgc3ltYm9scyAoZXZlbiBvZiBwYXRjaGVzKQoKKkxp bWl0YXRpb25zKgoKVGhlIGFib3ZlIGlzIGVub3VnaCB0byBmdWxseSBpbXBsZW1lbnQgYW4gdXBk YXRlIHN5c3RlbSB3aGVyZSBtdWx0aXBsZSBzb3VyY2UKcGF0Y2hlcyBhcmUgY29tYmluZWQgKHVz aW5nIGNvbWJpbmVkaWZmKSBhbmQgYnVpbHQgaW50byBhIHNpbmdsZSBiaW5hcnkKd2hpY2ggdGhl biBhdG9taWNhbGx5IHJlcGxhY2VzIGFueSBleGlzdGluZyBsb2FkZWQgcGF0Y2hlcwoodGhpcyBp cyB3aHkgUm9zcyBhZGRlZCBhIFJFUExBQ0Ugb3BlcmF0aW9uKS4gVGhpcyBpcyB0aGUgYXBwcm9h Y2ggdXNlZApieSBrUGF0Y2ggYW5kIGtHcmFmdC4KCk11bHRpcGxlIGNvbXBsZXRlbHkgaW5kZXBl bmRlbnQgcGF0Y2hlcyBjYW4gYWxzbyBiZSBsb2FkZWQgYnV0IHVuZXhwZWN0ZWQKaW50ZXJhY3Rp b25zIG1heSBvY2N1ci4KCkFzIGl0IHN0YW5kcywgdGhlIHBhdGNoZXMgYXJlIHN0YXRpY2FsbHkg bGlua2VkIHdoaWNoIG1lYW5zIHRoYXQgaW5kZXBlbmRlbnQKcGF0Y2hlcyBjYW5ub3QgYmUgbGlu a2VkIGFnYWluc3Qgb25lIGFub3RoZXIgKGUuZy4gaWYgb25lIGludHJvZHVjZXMgYQpuZXcgc3lt Ym9sKS4gVXNpbmcgdGhlIGNvbWJpbmVkaWZmIGFwcHJvYWNoIGFib3ZlIGZpeGVzIHRoaXMuCgpC YWNrdHJhY2VzIGNvbnRhaW5pbmcgZnVuY3Rpb25zIGZyb20gYSBwYXRjaCBtb2R1bGUgZG8gbm90 IHNob3cgdGhlIHN5bWJvbCBuYW1lLgoKVGhlcmUgaXMgbm8gY2hlY2tpbmcgdGhhdCBhIHBhdGNo IHdoaWNoIGlzIGxvYWRlZCBpcyBidWlsdCBmb3IgdGhlCmNvcnJlY3QgaHlwZXJ2aXNvciAobmVl ZCB0byB1c2UgYnVpbGQtaWQpLgoKQmluYXJ5IHBhdGNoaW5nIHdvcmtzIGF0IHRoZSBmdW5jdGlv biBsZXZlbC4KCipUZXN0aW5nKgoKWW91IGNhbiB1c2UgdGhlIGV4YW1wbGUgY29kZSBpbmNsdWRl ZCBpbiB0aGlzIHBhdGNoc2V0OgoKIyB4bCBpbmZvIHwgZ3JlcCBleHRyYQp4ZW5fZXh0cmEgICAg ICAgICAgICAgIDogLXVuc3RhYmxlCiMgeGVuLXhzcGxpY2UgbG9hZCAvdXNyL2xpYi9kZWJ1Zy94 ZW5faGVsbG9fd29ybGQueHNwbGljZQpVcGxvYWRpbmcgL3Vzci9saWIvZGVidWcveGVuX2hlbGxv X3dvcmxkLnhzcGxpY2UgKDIwNzEgYnl0ZXMpClBlcmZvcm1pbmcgY2hlY2s6IGNvbXBsZXRlZApQ ZXJmb3JtaW5nIGFwcGx5Oi4gY29tcGxldGVkCiMgeGwgaW5mbyB8IGdyZXAgZXh0cmEKeGVuX2V4 dHJhICAgICAgICAgICAgICA6IEhlbGxvIFdvcmxkCiMgeGVuLXhzcGxpY2UgcmV2ZXJ0IHhlbl9o ZWxsb193b3JsZApQZXJmb3JtaW5nIHJldmVydDouIGNvbXBsZXRlZAojIHhlbi14c3BsaWNlIHVu bG9hZCB4ZW5faGVsbG9fd29ybGQKUGVyZm9ybWluZyB1bmxvYWQ6IGNvbXBsZXRlZAojIHhsIGlu Zm8gfCBncmVwIGV4dHJhCnhlbl9leHRyYSAgICAgICAgICAgICAgOiAtdW5zdGFibGUKCk9yIHlv dSBjYW4gdXNlIGdpdDovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUva29ucmFkd2lsay94c3BsaWNl LWJ1aWxkLXRvb2xzLmdpdAp3aGljaCBnZW5lcmF0ZXMgdGhlIEVMRiBwYXlsb2Fkcy4KClRoaXMg bGluayBoYXMgYSBuaWNlIGRlc2NyaXB0aW9uIG9mIGhvdyB0byB1c2UgdGhlIHRvb2w6Cmh0dHA6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE1LTEwL21z ZzAyNTk1Lmh0bWwKIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgNSArCiBDb25maWcubWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMTIgKwogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEwICsKIGRvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duICAgICAgICAgICAgICAgICAgIHwgMTEx MyArKysrKysrKysrKysrKysrKysKIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94 ZW4veGVuLnRlIHwgICAgOSArLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAg ICAgICAgICAgfCAgIDk0ICstCiB0b29scy9saWJ4Yy94Y19jb3JlLmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMzUgKy0KIHRvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMgICAgICAgICAgICAg ICAgICAgIHwgICAxMiArLQogdG9vbHMvbGlieGMveGNfZG9tYWluLmMgICAgICAgICAgICAgICAg ICAgICAgfCAgICAzICstCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzNTUgKysrKysrCiB0b29scy9saWJ4Yy94Y19wcml2YXRlLmMgICAgICAgICAgICAg ICAgICAgICB8ICAgNjAgKy0KIHRvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxOCArLQogdG9vbHMvbGlieGMveGNfcmVzdW1lLmMgICAgICAgICAgICAgICAg ICAgICAgfCAgICAzICstCiB0b29scy9saWJ4Yy94Y19zcl9zYXZlLmMgICAgICAgICAgICAgICAg ICAgICB8ICAgIDkgKy0KIHRvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oICAgICAgICAgICAg ICAgIHwgICAgNiArLQogdG9vbHMvbGlieGwvbGlieGwuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTA3ICstCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDYgKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgICAgICAgICAgICAgICAg fCAgICAxICsKIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyAgICAgICAgICAgICAgICAgICAgIHwg ICAgMSArCiB0b29scy9taXNjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDQgKwogdG9vbHMvbWlzYy94ZW4teHNwbGljZS5jICAgICAgICAgICAgICAgICAgICAgfCAgNDYz ICsrKysrKysrCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyAgICAgICAgICB8 ICAgMzkgKy0KIHRvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyAgICAgICAgICAgIHwg ICAzMCArLQogdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMgICAgICAgfCAg IDEyICstCiB0b29scy94ZW50cmFjZS94ZW5jdHguYyAgICAgICAgICAgICAgICAgICAgICB8ICAg IDMgKy0KIHhlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg OCArLQogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2 ICstCiB4ZW4vYXJjaC9hcm0va2VybmVsLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIg Ky0KIHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAr LQogeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsK IHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MCArLQog eGVuL2FyY2gvYXJtL3hlbi5sZHMuUyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCiB4 ZW4vYXJjaC9hcm0veHNwbGljZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzggKysKIHhl bi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1OCArLQogeGVu L2FyY2gveDg2L2FsdGVybmF0aXZlLmMgICAgICAgICAgICAgICAgICAgfCAgIDQ2ICstCiB4ZW4v YXJjaC94ODYvYm9vdC9ta2VsZjMyLmMgICAgICAgICAgICAgICAgICB8ICAxNDIgKystCiB4ZW4v YXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogeGVuL2Fy Y2gveDg2L2V4dGFibGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQxICstCiB4ZW4vYXJj aC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQogeGVuL2FyY2gv eDg2L21tLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDc3ICstCiB4ZW4vYXJjaC94 ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMgICAgICAgICAgICB8ICAgIDUgKy0KIHhlbi9hcmNoL3g4 Ni9zZXR1cC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArLQogeGVuL2FyY2gveDg2 L3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDg4ICsrCiB4ZW4vYXJjaC94ODYv dGVzdC94ZW5fYnllX3dvcmxkLmMgICAgICAgICAgICB8ICAgMzQgKwogeGVuL2FyY2gveDg2L3Rl c3QveGVuX2J5ZV93b3JsZF9mdW5jLmMgICAgICAgfCAgIDIyICsKIHhlbi9hcmNoL3g4Ni90ZXN0 L3hlbl9oZWxsb193b3JsZC5jICAgICAgICAgIHwgICAzMyArCiB4ZW4vYXJjaC94ODYvdGVzdC94 ZW5faGVsbG9fd29ybGRfZnVuYy5jICAgICB8ICAgMzkgKwogeGVuL2FyY2gveDg2L3Rlc3QveGVu X3JlcGxhY2Vfd29ybGQuYyAgICAgICAgfCAgIDMyICsKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9y ZXBsYWNlX3dvcmxkX2Z1bmMuYyAgIHwgICAyMiArCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNDUgKy0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0 L2VudHJ5LlMgICAgICAgICAgIHwgICAgMiAtCiB4ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMg ICAgICAgICAgICAgICAgICB8ICAgIDIgLQogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDMwICstCiB4ZW4vYXJjaC94ODYveHNwbGljZS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICAyNDEgKysrKwogeGVuL2NvbW1vbi9LY29uZmlnICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDI4ICsKIHhlbi9jb21tb24vTWFrZWZpbGUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgMyArCiB4ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYyAgICAgICAg ICAgICAgICAgICB8ICAgIDIgLQogeGVuL2NvbW1vbi9rZXJuZWwuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMjI2ICstLS0KIHhlbi9jb21tb24vc3ltYm9scy1kdW1teS5jICAgICAgICAg ICAgICAgICAgIHwgICAgNSArCiB4ZW4vY29tbW9uL3N5bWJvbHMuYyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNzUgKy0KIHhlbi9jb21tb24vc3lzY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgNyArCiB4ZW4vY29tbW9uL3ZlcnNpb24uYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNzUgKysKIHhlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYyAgICAgICAgICAgICAg ICAgIHwgIDE0NyArKysKIHhlbi9jb21tb24vdm1hcC5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIwNSArKy0tCiB4ZW4vY29tbW9uL3ZzcHJpbnRmLmMgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMTIgKwogeGVuL2NvbW1vbi94c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxNTY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vY29tbW9uL3hzcGxpY2Vf ZWxmLmMgICAgICAgICAgICAgICAgICAgICB8ICA0OTUgKysrKysrKysKIHhlbi9kcml2ZXJzL2Fj cGkvb3NsLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRlcm5hdGl2ZS5oICAgICAgICAgICAgfCAgICA0ICsKIHhlbi9pbmNsdWRlL2FzbS14 ODYvY3VycmVudC5oICAgICAgICAgICAgICAgIHwgICAxMCArLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni91YWNjZXNzLmggICAgICAgICAgICAgICAgfCAgICAyICsKIHhlbi9pbmNsdWRlL3B1YmxpYy9h cmNoLWFybS5oICAgICAgICAgICAgICAgIHwgICAgMiAtCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lz Y3RsLmggICAgICAgICAgICAgICAgICB8ICAxODYgKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvdmVy c2lvbi5oICAgICAgICAgICAgICAgICB8ICAgODIgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4u aCAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAtCiB4ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0 cy5oICAgICAgICAgICAgICAgICB8ICAgIDggKwogeGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5o ICAgICAgICAgICAgICAgICAgfCAgICA0IC0KIHhlbi9pbmNsdWRlL3hlbi9tbS5oICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMiArCiB4ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oICAgICAg ICAgICAgICAgICAgICB8ICAgMjEgKy0KIHhlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmggICAgICAg ICAgICAgICAgICAgIHwgICAgMSArCiB4ZW4vaW5jbHVkZS94ZW4vdmlydHVhbF9yZWdpb24uaCAg ICAgICAgICAgICB8ICAgNDcgKwogeGVuL2luY2x1ZGUveGVuL3ZtYXAuaCAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIyICstCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oICAgICAgICAgICAg ICAgICAgICB8ICAxMTkgKysKIHhlbi9pbmNsdWRlL3hlbi94c3BsaWNlX2VsZi5oICAgICAgICAg ICAgICAgIHwgICA1OCArCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICAgICAg ICAgICB8ICAgMjEgLQogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICA2IC0KIHhlbi90b29scy9zeW1ib2xzLmMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA1MCArLQogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAxIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA0MCArLQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgICAgICAgICAgfCAg IDI1ICstCiA5MCBmaWxlcyBjaGFuZ2VkLCA2Mzk5IGluc2VydGlvbnMoKyksIDcxOCBkZWxldGlv bnMoLSkKCgpBbmRyZXcgQ29vcGVyICgxKToKICAgICAgeDg2L21tOiBJbnRyb2R1Y2UgbW9kaWZ5 X3hlbl9tYXBwaW5ncygpCgpLb25yYWQgUnplc3p1dGVrIFdpbGsgKDE3KToKICAgICAgUmV2ZXJ0 ICJsaWJ4Yy9saWJ4bC9weXRob24veGVuc3RhdC9vY2FtbDogVXNlIG5ldyBYRU5fVkVSU0lPTiBo eXBlcmNhbGwiCiAgICAgIFJldmVydCAiSFlQRVJDQUxMX3ZlcnNpb25fb3AuIE5ldyBoeXBlcmNh bGwgbWlycm9yaW5nIFhFTlZFUl8gYnV0IHNhbmUuIgogICAgICB4c3BsaWNlOiBEZXNpZ24gZG9j dW1lbnQKICAgICAgeGVuL3hzcGxpY2U6IEh5cGVydmlzb3IgaW1wbGVtZW50YXRpb24gb2YgWEVO X1hTUExJQ0Vfb3AKICAgICAgbGlieGM6IEltcGxlbWVudGF0aW9uIG9mIFhFTl9YU1BMSUNFX29w IGluIGxpYnhjCiAgICAgIHhlbi14c3BsaWNlOiBUb29sIHRvIG1hbmlwdWxhdGUgeHNwbGljZSBw YXlsb2FkcwogICAgICBhcm0veDg2OiBVc2Ugc3RydWN0IHZpcnR1YWxfcmVnaW9uIHRvIGRvIGJ1 Zywgc3ltYm9sLCBhbmQgKHg4NikgZXhjZXB0aW9uIHRhYmxlcyBsb29rdXAuCiAgICAgIGFybS94 ODYvdm1hcDogQWRkIHZbenxtXWFsbG9jX3hlbiBhbmQgdm1faW5pdF90eXBlCiAgICAgIHg4Ni94 ZW5faGVsbG9fd29ybGQueHNwbGljZTogVGVzdCBwYXlsb2FkIGZvciBwYXRjaGluZyAneGVuX2V4 dHJhX3ZlcnNpb24nLgogICAgICB4c3BsaWNlLCBzeW1ib2xzOiBJbXBsZW1lbnQgZmFzdCBzeW1i b2wgbmFtZXMgLT4gdmlydHVhbCBhZGRyZXNzZXMgbG9va3VwCiAgICAgIGJ1aWxkX2lkOiBQcm92 aWRlIGxkLWVtYmVkZGVkIGJ1aWxkLWlkcwogICAgICB4c3BsaWNlOiBQcmludCBidWlsZF9pZCBp biBrZXloYW5kbGVyIGFuZCBvbiBib290dXAuCiAgICAgIFhFTlZFUl9idWlsZF9pZC9saWJ4Yzog UHJvdmlkZSBsZC1lbWJlZGRlZCBidWlsZC1pZAogICAgICBsaWJ4bDogaW5mbzogRGlzcGxheSBi dWlsZF9pZCBvZiB0aGUgaHlwZXJ2aXNvci4KICAgICAgeHNwbGljZTogU3RhY2tpbmcgYnVpbGQt aWQgZGVwZW5kZW5jeSBjaGVja2luZy4KICAgICAgeHNwbGljZS94ZW5fcmVwbGFjZV93b3JsZDog VGVzdC1jYXNlIGZvciBYU1BMSUNFX0FDVElPTl9SRVBMQUNFCiAgICAgIE1BSU5UQUlORVJTL3hz cGxpY2U6IEFkZCBteXNlbGYgYW5kIFJvc3MgYXMgdGhlIG1haW50YWluZXJzLgoKUm9zcyBMYWdl cndhbGwgKDkpOgogICAgICB4c3BsaWNlOiBBZGQgaGVscGVyIGVsZiByb3V0aW5lcwogICAgICB4 c3BsaWNlOiBJbXBsZW1lbnQgcGF5bG9hZCBsb2FkaW5nCiAgICAgIHhzcGxpY2U6IEltcGxlbWVu dCBzdXBwb3J0IGZvciBhcHBseWluZy9yZXZlcnRpbmcvcmVwbGFjaW5nIHBhdGNoZXMuCiAgICAg IHhzcGxpY2Usc3ltYm9sczogSW1wbGVtZW50IHN5bWJvbCBuYW1lIHJlc29sdXRpb24gb24gYWRk cmVzcy4KICAgICAgeDg2LCB4c3BsaWNlOiBQcmludCBwYXlsb2FkJ3Mgc3ltYm9sIG5hbWUgYW5k IHBheWxvYWQgbmFtZSBpbiBiYWNrdHJhY2VzCiAgICAgIHhzcGxpY2U6IEFkZCBzdXBwb3J0IGZv ciBidWcgZnJhbWVzLgogICAgICB4c3BsaWNlOiBBZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9uIHRh Ymxlcy4KICAgICAgeHNwbGljZTogQWRkIHN1cHBvcnQgZm9yIGFsdGVybmF0aXZlcwogICAgICB4 c3BsaWNlOiBQcmV2ZW50IGR1cGxpY2F0ZSBwYXlsb2FkcyBmcm9tIGJlaW5nIGxvYWRlZC4KCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=