From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC XEN PATCH v3 00/39] Add vNVDIMM support to HVM domains Date: Mon, 11 Sep 2017 12:37:41 +0800 Message-ID: <20170911043820.14617-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Haozhong Zhang , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Jan Beulich , Chao Peng , Dan Williams List-Id: xen-devel@lists.xenproject.org T3ZlcnZpZXcKPT09PT09PT09PT09PT09PT09CgooUkZDIHYyIGNhbiBiZSBmb3VuZCBhdCBodHRw czovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNy0wMy9tc2cwMjQw MS5odG1sKQoKV2VsbCwgdGhpcyBSRkMgdjMgY2hhbmdlcyBhbmQgaW5mbGF0ZXMgYSBsb3QgZnJv bSBwcmV2aW91cyB2ZXJzaW9ucy4KVGhlIHByaW1hcnkgY2hhbmdlcyBhcmUgbGlzdGVkIGJlbG93 LCBtb3N0IG9mIHdoaWNoIGFyZSB0byBzaW1wbGlmeQp0aGUgZmlyc3QgaW1wbGVtZW50YXRpb24g YW5kIGF2b2lkIGFkZGl0aW9uYWwgaW5mbGF0aW9uLgoKMS4gRHJvcCB0aGUgc3VwcG9ydCB0byBt YWludGFpbiB0aGUgZnJhbWV0YWJsZSBhbmQgTTJQIHRhYmxlIG9mIFBNRU0KICAgaW4gUkFNLiBJ biB0aGUgZnV0dXJlLCB3ZSBtYXkgYWRkIHRoaXMgc3VwcG9ydCBiYWNrLgoKMi4gSGlkZSBob3N0 IE5GSVQgYW5kIGRlbnkgYWNjZXNzIHRvIGhvc3QgUE1FTSBmcm9tIERvbTAuIEluIG90aGVyCiAg IHdvcmRzLCB0aGUga2VybmVsIE5WRElNTSBkcml2ZXIgaXMgbG9hZGVkIGluIERvbSAwIGFuZCBl eGlzdGluZwogICBtYW5hZ2VtZW50IHV0aWxpdGllcyAoZS5nLiBuZGN0bCkgZG8gbm90IHdvcmsg aW4gRG9tMCBhbnltb3JlLiBUaGlzCiAgIGlzIHRvIHdvcmthcm91bmQgdGhlIGluZmVyZW5jZXMg b2YgUE1FTSBhY2Nlc3MgYmV0d2VlbiBEb20wIGFuZCBYZW4KICAgaHlwZXJ2aXNvci4gSW4gdGhl IGZ1dHVyZSwgd2UgbWF5IGFkZCBhIHN0dWIgZHJpdmVyIGluIERvbTAgd2hpY2gKICAgd2lsbCBo b2xkIHRoZSBQTUVNIHBhZ2VzIGJlaW5nIHVzZWQgYnkgWGVuIGh5cGVydmlzb3IgYW5kL29yIG90 aGVyCiAgIGRvbWFpbnMuCgozLiBBcyB0aGVyZSBpcyBubyBOVkRJTU0gZHJpdmVyIGFuZCBtYW5h Z2VtZW50IHV0aWxpdGllcyBpbiBEb20wIG5vdywKICAgd2UgY2Fubm90IGVhc2lseSBzcGVjaWZ5 IGFuIGFyZWEgb2YgaG9zdCBOVkRJTU0gKGUuZy4sIGJ5IC9kZXYvcG1lbTApCiAgIGFuZCBtYW5h Z2UgTlZESU1NIGluIERvbTAgKGUuZy4sIGNyZWF0aW5nIGxhYmVscykuICBJbnN0ZWFkLCB3ZQog ICBoYXZlIHRvIHNwZWNpZnkgdGhlIGV4YWN0IE1GTnMgb2YgaG9zdCBQTUVNIHBhZ2VzIGluIHhs IGRvbWFpbgogICBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCB0aGUgbmV3bHkgYWRkZWQgWGVuIE5W RElNTSBtYW5hZ2VtZW50CiAgIHV0aWxpdHkgeGVuLW5kY3RsLgoKICAgSWYgdGhlcmUgYXJlIGlu ZGVlZCBzb21lIHRhc2tzIHRoYXQgaGF2ZSB0byBiZSBoYW5kbGVkIGJ5IGV4aXN0aW5nCiAgIGRy aXZlciBhbmQgbWFuYWdlbWVudCB1dGlsaXRpZXMsIHN1Y2ggYXMgcmVjb3ZlcnkgZnJvbSBoYXJk d2FyZQogICBmYWlsdXJlcywgdGhleSBoYXZlIHRvIGJlIGFjY29tcGxpc2hlZCBvdXQgb2YgWGVu IGVudmlyb25tZW50LgoKICAgQWZ0ZXIgMi4gaXMgc29sdmVkIGluIHRoZSBmdXR1cmUsIHdlIHdv dWxkIGJlIGFibGUgdG8gbWFrZSBleGlzdGluZwogICBkcml2ZXIgYW5kIG1hbmFnZW1lbnQgdXRp bGl0aWVzIHdvcmsgaW4gRG9tMCBhZ2Fpbi4KCkFsbCBwYXRjaGVzIGNhbiBiZSBmb3VuZCBhdAog IFhlbjogIGh0dHBzOi8vZ2l0aHViLmNvbS9oenpoYW45L3hlbi5naXQgbnZkaW1tLXJmYy12Mwog IFFFTVU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oenpoYW45L3FlbXUuZ2l0IHhlbi1udmRpbW0tcmZj LXYzCgoKSG93IHRvIFRlc3QKPT09PT09PT09PT09PT09PT09CgoxLiBCdWlsZCBhbmQgaW5zdGFs bCB0aGlzIHBhdGNoc2V0IHdpdGggdGhlIGFzc29jaWF0ZWQgUUVNVSBwYXRjaGVzLgoKMi4gVXNl IHhlbi1uZGN0bCB0byBnZXQgYSBsaXN0IG9mIFBNRU0gcmVnaW9ucyBkZXRlY3RlZCBieSBYZW4K ICAgaHlwZXJ2aXNvciwgZS5nLgogICAgICAgCiAgICAgIyB4ZW4tbmRjdGwgbGlzdCAtLXJhdwog ICAgIFJhdyBQTUVNIHJlZ2lvbnM6CiAgICAgIDA6IE1GTiAweDQ4MDAwMCAtIDB4ODgwMDAwLCBQ WE0gMwoKICAgd2hpY2ggaW5kaWNhdGVzIGEgUE1FTSByZWdpb24gaXMgcHJlc2VudCBhdCBNRk4g MHg0ODAwMDAgLSAweDg4MDAwMC4KCjMuIFNldHVwIGEgbWFuYWdlbWVudCBhcmVhIHRvIG1hbmFn ZSB0aGUgZ3Vlc3QgZGF0YSBhcmVhcy4KCiAgICAgIyB4ZW4tbmRjdGwgc2V0dXAtbWdtdCAweDQ4 MDAwMCAweDRjMDAwMAogICAgICMgeGVuLW5kY3RsIGxpc3QgLS1tZ210CiAgICAgTWFuYWdlbWVu dCBQTUVNIHJlZ2lvbnM6CiAgICAgIDA6IE1GTiAweDQ4MDAwMCAtIDB4NGMwMDAwLCB1c2VkIDB4 YzAwCiAKICAgVGhlIGZpcnN0IGNvbW1hbmQgc2V0dXAgdGhlIFBNRU0gYXJlYSBpbiBNRk4gMHg0 ODAwMDAgLSAweDRjMDAwMAogICAoMUdCKSBhcyBhIG1hbmFnZW1lbnQgYXJlYSwgd2hpY2ggaXMg YWxzbyB1c2VkIHRvIG1hbmFnZSBpdHNlbGYuCiAgIFRoZSBzZWNvbmQgY29tbWFuZCBsaXN0IGFs bCBtYW5hZ2VtZW50IGFyZWFzLCBhbmQgJ3VzZWQnIGZpZWxkCiAgIHNob3dzIHRoZSBudW1iZXIg b2YgcGFnZXMgaGFzIGJlZW4gdXNlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhhdAogICBhcmVh LgoKICAgVGhlIHNpemUgcmF0aW8gYmV0d2VlbiBhIG1hbmFnZW1lbnQgYXJlYSBhbmQgYXJlYXMg dGhhdCBpdCBtYW5hZ2VzCiAgIChpbmNsdWRpbmcgaXRzZWxmKSBzaG91bGQgYmUgYXQgbGVhc3Qg MSA6IDEwMCAoaS5lLiwgMzIgYnl0ZXMgZm9yCiAgIGZyYW1ldGFibGUgYW5kIDggYnl0ZXMgZm9y IE0yUCB0YWJsZSBwZXIgcGFnZSkuCgogICBUaGUgc2l6ZSBvZiBhIG1hbmFnZW1lbnQgYXJlYSBh cyB3ZWxsIGFzIGEgZGF0YSBhcmVhIGJlbG93IGlzCiAgIGN1cnJlbnRseSByZXN0cmljdGVkIHRv IDI1NiBNYnl0ZXMgb3IgbXVsdGlwbGVzLiBUaGUgYWxpZ25tZW50IGlzCiAgIHJlc3RyaWN0ZWQg dG8gMiBNYnl0ZXMgb3IgbXVsdGlwbGVzLgoKNC4gU2V0dXAgYSBkYXRhIGFyZWEgdGhhdCBjYW4g YmUgdXNlZCBieSBndWVzdC4KCiAgICAgIyB4ZW4tbmRjdGwgc2V0dXAtZGF0YSAweDRjMDAwMCAw eDg4MDAwMCAweDQ4MGMwMCAweDRjMDAwMAogICAgICMgeGVuLW5kY3RsIGxpc3QgLS1kYXRhCiAg ICAgRGF0YSBQTUVNIHJlZ2lvbnM6CiAgICAgIDA6IE1GTiAweDRjMDAwMCAtIDB4ODgwMDAwLCBN R01UIE1GTiAweDQ4MGMwMCAtIDB4NDhiMDAwCgogICBUaGUgZmlyc3QgY29tbWFuZCBzZXR1cCB0 aGUgcmVtYWluaW5nIFBNRU0gcGFnZXMgZnJvbSBNRk4gMHg0YzAwMDAKICAgdG8gMHg4ODAwMDAg YXMgYSBkYXRhIGFyZWEuIFRoZSBtYW5hZ2VtZW50IGFyZWEgTUZOIGZyb20gMHg0ODBjMDAKICAg dG8gMHg0YzAwMDAgaXMgc3BlY2lmaWVkIHRvIG1hbmFnZSB0aGlzIGRhdGEgYXJlYS4gVGhlIGFj dHVhbCB1c2VkCiAgIG1hbmFnZW1lbnQgcGFnZXMgY2FuIGJlIGZvdW5kIGJ5IHRoZSBzZWNvbmQg Y29tbWFuZC4KCjUuIEFzc2lnbiBhIGRhdGEgcGFnZXMgdG8gYSBIVk0gZG9tYWluIGJ5IGFkZGlu ZyB0aGUgZm9sbG93aW5nIGxpbmUgaW4KICAgdGhlIGRvbWFpbiBjb25maWd1cmF0aW9uLgoKICAg ICB2bnZkaW1tcyA9IFsgJ3R5cGU9bWZuLCBiYWNrZW5kPTB4NGMwMDAwLCBucl9wYWdlcz0weDEw MDAwMCcgXQoKICAgd2hpY2ggYXNzaWducyA0IEdieXRlcyBQTUVNIHN0YXJ0aW5nIGZyb20gTUZO IDB4NGMwMDAwIHRvIHRoYXQKICAgZG9tYWluLiBBIDQgR2J5dGVzIFBNRU0gc2hvdWxkIGJlIHBy ZXNlbnQgaW4gZ3Vlc3QgKGUuZy4sIGFzCiAgIC9kZXYvcG1lbTApIGFmdGVyIGFib3ZlIHN0ZXBz IG9mIHNldHVwLgoKICAgVGhlcmUgY2FuIGJlIG9uZSBvciBtdWx0aXBsZSBlbnRyaWVzIGluIHZu dmRpbW1zLCB3aGljaCBkbyBub3QKICAgb3ZlcmxhcCB3aXRoIGVhY2ggb3RoZXIuIFNoYXJpbmcg dGhlIFBNRU0gcGFnZXMgYmV0d2VlbiBkb21haW5zIGFyZQogICBub3Qgc3VwcG9ydGVkLCBzbyBQ TUVNIHBhZ2VzIGFzc2lnbmVkIHRvIGVhY2ggZG9tYWluIHNob3VsZCBub3QKICAgb3ZlcmxhcCB3 aXRoIGVhY2ggb3RoZXIuCgoKUGF0Y2ggT3JnYW5pemF0aW9uCj09PT09PT09PT09PT09PT09PQoK VGhpcyBSRkMgdjMgaXMgY29tcG9zZWQgb2YgZm9sbG93aW5nIDYgcGFydHMgcGVyIHRoZSB0YXNr IHRoZXkgYXJlCmdvaW5nIHRvIHNvbHZlLiBUaGUgdG9vbCBzdGFjayBwYXRjaGVzIGFyZSBjb2xs ZWN0ZWQgYW5kIHNlcGFyYXRlZAppbnRvIGVhY2ggcGFydC4KCi0gUGFydCAwLiBCdWcgZml4IGFu ZCBjb2RlIGNsZWFudXAKICAgIFswMS8zOV0geDg2XzY0L21tOiBmaXggdGhlIFBEWCBncm91cCBj aGVjayBpbiBtZW1faG90YWRkX2NoZWNrKCkKICAgIFswMi8zOV0geDg2XzY0L21tOiBkcm9wIHJl ZHVuZGFudCBNRk4gdG8gcGFnZSBjb252ZW50aW9ucyBpbiBjbGVhbnVwX2ZyYW1lX3RhYmxlKCkK ICAgIFswMy8zOV0geDg2XzY0L21tOiBhdm9pZCBjbGVhbmluZyB0aGUgdW5tYXBwZWQgZnJhbWUg dGFibGUKCi0gUGFydCAxLiBEZXRlY3QgaG9zdCBQTUVNCiAgRGV0ZWN0IGhvc3QgUE1FTSB2aWEg TkZJVC4gTm8gZnJhbWV0YWJsZSBhbmQgTTJQIHRhYmxlIGZvciB0aGVtIGFyZQogIGNyZWF0ZWQg aW4gdGhpcyBwYXJ0LgoKICAgIFswNC8zOV0geGVuL2NvbW1vbjogYWRkIEtjb25maWcgaXRlbSBm b3IgcG1lbSBzdXBwb3J0CiAgICBbMDUvMzldIHg4Ni9tbTogZXhjbHVkZSBQTUVNIHJlZ2lvbnMg ZnJvbSBpbml0aWFsIGZyYW1ldGFibGUKICAgIFswNi8zOV0gYWNwaTogcHJvYmUgdmFsaWQgUE1F TSByZWdpb25zIHZpYSBORklUCiAgICBbMDcvMzldIHhlbi9wbWVtOiByZWdpc3RlciB2YWxpZCBQ TUVNIHJlZ2lvbnMgdG8gWGVuIGh5cGVydmlzb3IKICAgIFswOC8zOV0geGVuL3BtZW06IGhpZGUg TkZJVCBhbmQgZGVueSBhY2Nlc3MgdG8gUE1FTSBmcm9tIERvbTAKICAgIFswOS8zOV0geGVuL3Bt ZW06IGFkZCBmcmFtZXdvcmsgZm9yIGh5cGVyY2FsbCBYRU5fU1lTQ1RMX252ZGltbV9vcAogICAg WzEwLzM5XSB4ZW4vcG1lbTogYWRkIFhFTl9TWVNDVExfbnZkaW1tX3BtZW1fZ2V0X3JnaW9uc19u cgogICAgWzExLzM5XSB4ZW4vcG1lbTogYWRkIFhFTl9TWVNDVExfbnZkaW1tX3BtZW1fZ2V0X3Jl Z2lvbnMKICAgIFsxMi8zOV0gdG9vbHMveGVuLW5kY3RsOiBhZGQgTlZESU1NIG1hbmFnZW1lbnQg dXRpbCAneGVuLW5kY3RsJwogICAgWzEzLzM5XSB0b29scy94ZW4tbmRjdGw6IGFkZCBjb21tYW5k ICdsaXN0JwoKLSBQYXJ0IDIuIFNldHVwIGhvc3QgUE1FTSBmb3IgbWFuYWdlbWVudCBhbmQgZ3Vl c3QgZGF0YSB1c2FnZQogIEFsbG93IHVzZXJzIG9yIGFkbWlucyBpbiBEb20wIHRvIHNldHVwIGhv c3QgUE1FTSBwYWdlcyBmb3IKICBtYW5hZ2VtZW50IGFuZCBndWVzdCBkYXRhIHVzYWdlcy4KICAg KiBNYW5hZ2VtZW50IFBNRU0gcGFnZXMgYXJlIHVzZWQgdG8gc3RvcmUgdGhlIGZyYW1ldGFibGUg YW5kIE0yUCBvZgogICAgIFBNRU0gcGFnZXMgKGluY2x1ZGluZyB0aGVtc2VsdmVzKSwgYW5kIG5l dmVyIG1hcHBlZCB0byBndWVzdC4KICAgKiBHdWVzdCBkYXRhIFBNRU0gcGFnZXMgY2FuIGJlIG1h cHBlZCB0byBndWVzdCBhbmQgdXNlZCBhcyB0aGUKICAgICBiYWNrZW5kIHN0b3JhZ2Ugb2Ygdmly dHVhbCBOVkRJTU0gZGV2aWNlcy4KCiAgICBbMTQvMzldIHg4Nl82NC9tbTogcmVmYWN0b3IgbWVt b3J5X2FkZCgpCiAgICBbMTUvMzldIHg4Nl82NC9tbTogYWxsb3cgY3VzdG9taXplZCBsb2NhdGlv biBvZiBleHRlbmRlZCBmcmFtZXRhYmxlIGFuZCBNMlAgdGFibGUKICAgIFsxNi8zOV0geGVuL3Bt ZW06IGFkZCBYRU5fU1lTQ1RMX252ZGltbV9wbWVtX3NldHVwIHRvIHNldHVwIG1hbmFnZW1lbnQg UE1FTSByZWdpb24KICAgIFsxNy8zOV0gdG9vbHMveGVuLW5kY3RsOiBhZGQgY29tbWFuZCAnc2V0 dXAtbWdtdCcKICAgIFsxOC8zOV0geGVuL3BtZW06IHN1cHBvcnQgUE1FTV9SRUdJT05fVFlQRV9N R01UIGZvciBYRU5fU1lTQ1RMX252ZGltbV9wbWVtX2dldF9yZWdpb25zX25yCiAgICBbMTkvMzld IHhlbi9wbWVtOiBzdXBwb3J0IFBNRU1fUkVHSU9OX1RZUEVfTUdNVCBmb3IgWEVOX1NZU0NUTF9u dmRpbW1fcG1lbV9nZXRfcmVnaW9ucwogICAgWzIwLzM5XSB0b29scy94ZW4tbmRjdGw6IGFkZCBv cHRpb24gJy0tbWdtdCcgdG8gY29tbWFuZCAnbGlzdCcKICAgIFsyMS8zOV0geGVuL3BtZW06IHN1 cHBvcnQgc2V0dXAgUE1FTSByZWdpb24gZm9yIGd1ZXN0IGRhdGEgdXNhZ2UKICAgIFsyMi8zOV0g dG9vbHMveGVuLW5kY3RsOiBhZGQgY29tbWFuZCAnc2V0dXAtZGF0YScKICAgIFsyMy8zOV0geGVu L3BtZW06IHN1cHBvcnQgUE1FTV9SRUdJT05fVFlQRV9EQVRBIGZvciBYRU5fU1lTQ1RMX252ZGlt bV9wbWVtX2dldF9yZWdpb25zX25yCiAgICBbMjQvMzldIHhlbi9wbWVtOiBzdXBwb3J0IFBNRU1f UkVHSU9OX1RZUEVfREFUQSBmb3IgWEVOX1NZU0NUTF9udmRpbW1fcG1lbV9nZXRfcmVnaW9ucwog ICAgWzI1LzM5XSB0b29scy94ZW4tbmRjdGw6IGFkZCBvcHRpb24gJy0tZGF0YScgdG8gY29tbWFu ZCAnbGlzdCcKCi0gUGFydCAzLiBIeXBlcnZpc29yIHN1cHBvcnQgdG8gbWFwIGhvc3QgUE1FTSBw YWdlcyB0byBIVk0gZG9tYWluCiAgICBbMjYvMzldIHhlbi9wbWVtOiBhZGQgZnVuY3Rpb24gdG8g bWFwIFBNRU0gcGFnZXMgdG8gSFZNIGRvbWFpbgogICAgWzI3LzM5XSB4ZW4vcG1lbTogcmVsZWFz ZSBQTUVNIHBhZ2VzIG9uIEhWTSBkb21haW4gZGVzdHJ1Y3Rpb24KICAgIFsyOC8zOV0geGVuOiBh ZGQgaHlwZXJjYWxsIFhFTk1FTV9wb3B1bGF0ZV9wbWVtX21hcAoKLSBQYXJ0IDQuIFBhc3MgQUNQ SSBmcm9tIFFFTVUgdG8gWGVuCiAgR3Vlc3QgTkZJVCBhbmQgTlZESU1NIG5hbWVzcGFjZSBkZXZp Y2VzIGFyZSBidWlsdCBieSBRRU1VLiBUaGlzIHBhcnQKICBpbXBsZW1lbnRzIHRoZSBpbnRlcmZh Y2UgZm9yIHRoZSBkZXZpY2UgbW9kZWwgdG8gcGFzcyBpdHMgQUNQSSAoRE0KICBBQ1BJKSB0byBY ZW4sIGFuZCBsb2FkcyBETSBBQ1BJLiBBIHNpbXBsZSBibGFja2xpc3QgbWVjaGFuaXNtIGlzCiAg YWRkZWQgdG8gcmVqZWN0IERNIEFDUEkgdGFibGVzIGFuZCBuYW1lc3BhY2UgZGV2aWNlcyB0aGF0 IG1heQogIGNvbmZsaWN0IHdpdGggdGhvc2UgYnVpbHQgYnkgWGVuIGl0c2VsZi4KCiAgICBbMjkv MzldIHRvb2xzOiByZXNlcnZlIGd1ZXN0IG1lbW9yeSBmb3IgQUNQSSBmcm9tIGRldmljZSBtb2Rl bAogICAgWzMwLzM5XSB0b29scy9saWJhY3BpOiBleHBvc2UgdGhlIG1pbmltdW0gYWxpZ25tZW50 IHVzZWQgYnkgbWVtX29wcy5hbGxvYwogICAgWzMxLzM5XSB0b29scy9saWJhY3BpOiBhZGQgY2Fs bGJhY2sgdG8gdHJhbnNsYXRlIEdQQSB0byBHVkEKICAgIFszMi8zOV0gdG9vbHMvbGliYWNwaTog YWRkIGNhbGxiYWNrcyB0byBhY2Nlc3MgWGVuU3RvcmUKICAgIFszMy8zOV0gdG9vbHMvbGliYWNw aTogYWRkIGEgc2ltcGxlIEFNTCBidWlsZGVyCiAgICBbMzQvMzldIHRvb2xzL2xpYmFjcGk6IGFk ZCBETSBBQ1BJIGJsYWNrbGlzdHMKICAgIFszNS8zOV0gdG9vbHMvbGliYWNwaTogbG9hZCBBQ1BJ IGJ1aWx0IGJ5IHRoZSBkZXZpY2UgbW9kZWwKCi0gUGFydCA1LiBSZW1haW5pbmcgdG9vbCBzdGFj ayBjaGFuZ2VzCiAgQWRkIHhsIGRvbWFpbiBjb25maWd1cmF0aW9uIGFuZCBnZW5lcmF0ZSBuZXcg UUVNVSBvcHRpb25zIGZvciB2TlZESU1NLgoKICAgIFszNi8zOV0gdG9vbHMveGw6IGFkZCB4bCBk b21haW4gY29uZmlndXJhdGlvbiBmb3IgdmlydHVhbCBOVkRJTU0gZGV2aWNlcwogICAgWzM3LzM5 XSB0b29scy9saWJ4bDogYWxsb3cgYWJvcnRpbmcgZG9tYWluIGNyZWF0aW9uIG9uIGZhdGFsIFFN UCBpbml0IGVycm9ycwogICAgWzM4LzM5XSB0b29scy9saWJ4bDogaW5pdGlhdGUgUE1FTSBtYXBw aW5nIHZpYSBRTVAgY2FsbGJhY2sKICAgIFszOS8zOV0gdG9vbHMvbGlieGw6IGJ1aWxkIHFlbXUg b3B0aW9ucyBmcm9tIHhsIHZOVkRJTU0gY29uZmlncwoKCiAuZ2l0aWdub3JlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAgICAg ICAgICAgICAgIHwgIDMzICsrCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvTWFrZWZpbGUgICAg ICAgfCAgIDMgKy0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMgICAgICAgICB8ICA3 NSArKysrCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5oICAgICAgICAgfCAgMTAgKwog dG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3hlbmJ1cy5jICAgICAgIHwgIDQ0ICstCiB0b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlICAgICAgfCAgIDIgKy0KIHRvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL3hlbi5pZiAgICAgICB8ICAgMiArLQogdG9vbHMvbGliYWNwaS9hY3BpMl8w LmggICAgICAgICAgICAgICAgIHwgICAyICsKIHRvb2xzL2xpYmFjcGkvYW1sX2J1aWxkLmMgICAg ICAgICAgICAgICB8IDMyNiArKysrKysrKysrKysrKwogdG9vbHMvbGliYWNwaS9hbWxfYnVpbGQu aCAgICAgICAgICAgICAgIHwgMTE2ICsrKysrCiB0b29scy9saWJhY3BpL2J1aWxkLmMgICAgICAg ICAgICAgICAgICAgfCAzMzAgKysrKysrKysrKysrKysKIHRvb2xzL2xpYmFjcGkvbGliYWNwaS5o ICAgICAgICAgICAgICAgICB8ICAyMyArCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oICAg ICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgICAg IHwgIDg4ICsrKysKIHRvb2xzL2xpYnhjL3hjX2RvbV94ODYuYyAgICAgICAgICAgICAgICB8ICAx MyArCiB0b29scy9saWJ4Yy94Y19kb21haW4uYyAgICAgICAgICAgICAgICAgfCAgMTUgKwogdG9v bHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgICAgIHwgMTU3ICsrKysrKysKIHRvb2xz L2xpYnhsL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogdG9vbHMvbGlieGwv bGlieGwuaCAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHRvb2xzL2xpYnhsL2xpYnhsX2Ny ZWF0ZS5jICAgICAgICAgICAgICB8ICAgNCArLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAg ICAgICAgICAgICAgIHwgIDgxICsrKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgICAg ICAgICAgICB8ICAyNSArKwogdG9vbHMvbGlieGwvbGlieGxfcW1wLmMgICAgICAgICAgICAgICAg IHwgMTM5ICsrKysrLQogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgICAgICAgICAgIHwg IDE2ICsKIHRvb2xzL2xpYnhsL2xpYnhsX3ZudmRpbW0uYyAgICAgICAgICAgICB8ICA3OSArKysr CiB0b29scy9saWJ4bC9saWJ4bF92bnZkaW1tLmggICAgICAgICAgICAgfCAgMzAgKysKIHRvb2xz L2xpYnhsL2xpYnhsX3g4Nl9hY3BpLmMgICAgICAgICAgICB8ICAzNiArKwogdG9vbHMvbWlzYy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHRvb2xzL21pc2MveGVuLW5kY3Rs LmMgICAgICAgICAgICAgICAgICB8IDM5OSArKysrKysrKysrKysrKysrKwogdG9vbHMveGwveGxf cGFyc2UuYyAgICAgICAgICAgICAgICAgICAgIHwgMTI1ICsrKysrLQogdG9vbHMveGwveGxfdm1j b250cm9sLmMgICAgICAgICAgICAgICAgIHwgIDE1ICstCiB4ZW4vYXJjaC94ODYvYWNwaS9ib290 LmMgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYyAgICAg ICAgICAgICAgIHwgICA3ICsKIHhlbi9hcmNoL3g4Ni9kb20wX2J1aWxkLmMgICAgICAgICAgICAg ICB8ICAgNSArCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAgICAgfCAgMzIg Ky0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICB8IDEyMyArKysrLQog eGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHhlbi9hcmNo L3g4Ni9zaHV0ZG93bi5jICAgICAgICAgICAgICAgICB8ICAgMyArCiB4ZW4vYXJjaC94ODYvdGJv b3QuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5j ICAgICAgICAgICAgICAgIHwgMzA5ICsrKysrKysrKy0tLS0KIHhlbi9jb21tb24vS2NvbmZpZyAg ICAgICAgICAgICAgICAgICAgICB8ICAgOCArCiB4ZW4vY29tbW9uL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogeGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMgICAgICAgICAg ICAgIHwgICAxICsKIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICB8ICAg MyArCiB4ZW4vY29tbW9uL2tleGVjLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogeGVu L2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ0ICsrCiB4ZW4vY29tbW9u L3BtZW0uYyAgICAgICAgICAgICAgICAgICAgICAgfCA3NjkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIHhlbi9jb21tb24vc3lzY3RsLmMgICAgICAgICAgICAgICAgICAgICB8ICAg OSArCiB4ZW4vZHJpdmVycy9hY3BpL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKwogeGVu L2RyaXZlcnMvYWNwaS9uZml0LmMgICAgICAgICAgICAgICAgIHwgMjk4ICsrKysrKysrKysrKysK IHhlbi9pbmNsdWRlL2FjcGkvYWN0YmwxLmggICAgICAgICAgICAgICB8ICA2OSArKysKIHhlbi9p bmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAgICAgICAgICB8ICAgMSArCiB4ZW4vaW5jbHVkZS9h c20teDg2L21tLmggICAgICAgICAgICAgICAgfCAgMTAgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9o dm0vaHZtX3hzX3N0cmluZ3MuaCB8ICAgOCArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5Lmgg ICAgICAgICAgICAgfCAgMTQgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCAgICAgICAg ICAgICB8IDEwMCArKysrLQogeGVuL2luY2x1ZGUveGVuL2FjcGkuaCAgICAgICAgICAgICAgICAg IHwgIDEwICsKIHhlbi9pbmNsdWRlL3hlbi9wbWVtLmggICAgICAgICAgICAgICAgICB8ICA3NiAr KysrCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogeGVu L2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgICAgIHwgIDExICsKIHhlbi9pbmNsdWRl L3hzbS94c20uaCAgICAgICAgICAgICAgICAgICB8ICAxMiArCiB4ZW4veHNtL2R1bW15LmMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAg ICAgICAgICAgICAgIHwgIDE3ICsKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3Jz ICAgICB8ICAgNCArCiA2NSBmaWxlcyBjaGFuZ2VkLCA0MDQ0IGluc2VydGlvbnMoKyksIDEyOCBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJhY3BpL2FtbF9idWlsZC5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGliYWNwaS9hbWxfYnVpbGQuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsX3ZudmRpbW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL2xpYnhsL2xpYnhsX3ZudmRpbW0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL21p c2MveGVuLW5kY3RsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vY29tbW9uL3BtZW0uYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL2FjcGkvbmZpdC5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgeGVuL2luY2x1ZGUveGVuL3BtZW0uaAoKLS0gCjIuMTQuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=