From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH 1/5] docs/qemu-deprivilege: Revise and update with status and future plans Date: Fri, 5 Oct 2018 17:56:57 +0100 Message-ID: <20181005165701.28030-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g8TPY-0001KG-ON for xen-devel@lists.xenproject.org; Fri, 05 Oct 2018 16:57:08 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Wilk , Andrew Cooper , Tim Deegan , George Dunlap , Ross Lagerwall , Julien Grall , Jan Beulich , Anthony Perard , Ian Jackson List-Id: xen-devel@lists.xenproject.org ZG9jcy9xZW11LWRlcHJpdmlsZWdlLnR4dCBoYWQgc29tZSBiYXNpYyBpbnN0cnVjdGlvbnMgZm9y IHVzaW5nCmRtX3Jlc3RyaWN0LCBidXQgaXQgd2FzIGluY29tcGxldGUsIG1pc2xlYWRpbmcsIGFu ZCBzdGFsZS4KClVwZGF0ZSB0aGUgZG9jcyBpbiBhIG51bWJlciBvZiB3YXlzLgoKRmlyc3QsIHNl cGFyYXRlIHVzZXItZmFjaW5nIGRvY3VtZW50YXRpb24gYW5kIHRlY2huaWNhbCBkZXNjcmlwdGlv bgppbnRvIGRvY3MvZmVhdHVyZXMgYW5kIGRvY3MvZGVzaWduLCByZXNwZWN0aXZlbHkuCgpJbiB0 aGUgZmVhdHVyZSBkb2M6CgoqIEludHJvZHVjZSBhIHNlY3Rpb24gbWVudGlvbmluZyBtaW5pbWlt IHZlcnNpb25zIG9mIExpbnV4LCBYZW4sIGFuZApxZW11IHJlcXVpcmVkIChUQkQpCgoqIEZpeCB0 aGUgZGlzY3Vzc2lvbiBvZiBxZW11IHVzZXJpZC4gIE1lbnRpb24geGVuLXFlbXV1c2VyLXJhbmdl LWJhc2UsCmFuZCBwcm92aWRlIGV4YW1wbGUgc2hlbGwgY29kZSB0aGF0IGFjdHVhbGx5IGhhcyBz b21lIGhvcGUgb2Ygd29ya2luZwooaW5zdGVhZCBvZiBmYWlsaW5nIG91dCBhZnRlciBjcmVhdGlu ZyA5MDAgdXNlcmlkcykuCgoqIERlc2NyaWJlIGhvdyB0byBlbmFibGUgcmVzdHJpY3Rpb25zLCBh cyB3ZWxsIGFzIGZlYXR1cmVzIHdoaWNoCnByb2JhYmx5IGRvbid0IG9yIGRlZmluaXRlbHkgZG9u J3Qgd29yay4KCkluIHRoZSBkZXNpZ24gZG9jLCBpbnRyb2R1Y2UgYSAiVGVjaG5pY2FsIERldGFp bHMiIHNlY3Rpb24gd2hpY2gKZGVzY3JpYmVzIHNwZWNpZmljYWxseSB3aGF0IHJlc3RyaWN0aW9u cyBhcmUgY3VycmVudGx5IGRvbmUsIGFuZCBhbHNvCndoYXQgcmVzdHJpY3Rpb25zIHdlIGFyZSBs b29raW5nIGF0IGRvaW5nIGluIHRoZSBmdXR1cmUuCgpUaGUgaWRlYSBoZXJlIGlzIHRoYXQgYXMg d2UgaW1wbGVtZW50IHRoZSB2YXJpb3VzIGl0ZW1zIGZvciB0aGUKZnV0dXJlLCB3ZSBtb3ZlIHRo ZW0gZnJvbSAiUmVzdHJpY3Rpb25zIHN0aWxsIHRvIGRvIiB0byAiUmVzdHJpY3Rpb25zCmRvbmUi LiAgVGhpcyBjYW4gYWxzbyBhY3QgYXMgYSBkZXNpZ24gZG9jdW1lbnQgLS0gYSBwbGFjZSBmb3Ig cHVibGljCmRpc2N1c3Npb24gb2Ygd2hhdCBjYW4gb3Igc2hvdWxkIGJlIGRvbmUgYW5kIGhvdy4K CkFsc28gYWRkIGFuIGVudHJ5IHRvIFNVUFBPUlQubWQuCgpTaWduZWQtb2ZmLWJ5OiBHZW9yZ2Ug RHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNlIHYyOgot IEV4dHJhbmVvdXMgcHJpdmNtZCAvIGV2dGNobiBpbnN0YW5jZXMgYXJlbid0IGNsb3NlZAotIEV4 cGFuZCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gdGVzdCBmZCBkZXByaXZpbGVnaW5nCi0gUmV3b3Jr IGFuZCBjbGFyaWZ5IHR3byBuYW1lc3BhY2Ugc2VjdGlvbnMsIGdpdmUgcmVmZXJlbmNlIGZvciBR RU1VIE5BSwotIEFkZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG1pZ3JhdGlvbiB0ZWNobmljYWwg Y2hhbGxlbmdlcwotIEluIFVJRCBzZWN0aW9uLCBtZW50aW9uIHBvc3NpYmlsaXR5IG9mIGNvbnRh aW5lciBJRCBjb2xsaXNpb25zLgotIEZpeCBuYW1lIG9mIGRlc2lnbiBkb2N1bWVudC4KLSBBZGQg U1VQUE9SVC5tZCBzdGF0ZW1lbnQuICBTcGVjaWZ5IExpbnV4LCB0byBtYWtlIHN1cmUgdGhhdCBG cmVlQlNEIGlzCiAgZXZhbHVhdGVkIHNlcGFyYXRlbHkuCi0gTWVudGlvbiB0aGF0IGAtc2FuZGJv eGAgaXMgYSBibGFja2xpc3QgYW5kIHdoeQoKQ2hhbmdlcyBzaW5jZSB2MToKLSBCcmVhayBpbnRv IHR3bywgYW5kIG1vdmUgaW50byBhcHByb3ByaWF0ZSBkaXJlY3RvcmllcyAocmF0aGVyIHRoYW4g J21pc2MnKQotIFVwZGF0ZWQgdmVyc2lvbiByZXF1aXJlbWVudHMKLSBEaXN0aW5ndWlzaCBiZXR3 ZWVuIGZlYXR1cmVzIHdoaWNoICJkb24ndCB5ZXQgd29yayIgYW5kIGZlYXR1cmVzIHdoaWNoIHdl IG5ldmVyIGV4cGVjdCB0byB3b3JrCi0gVXBkYXRlIGRlc2NyaXB0aW9uIG9mIHhlbi1yZXN0cmlj dCBmdW5jdGlvbmFsaXR5Ci0gUmVvcmRlciBhbmQgZXhwYW5kIGZ1cnRoZXIgcmVzdHJpY3Rpb25z Ci0gTWFrZSBpdCBtb3JlIGNsZWFyIHdoaWNoIHJlc3RyaWN0aW9ucyBhcmUgYXZhaWxhYmxlIG9u IExpbnV4IG9ubHkKLSBJbmNsdWRlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGhvdyB0byBraWxs IGEgcHJvY2VzcwotIEFkZCBSTElNSVRfTlBST0MgYXMgc29tZXRoaW5nIHdlIGNhbiBkbyB3aXRo b3V0IGZ1cnRoZXIgY2hhbmdlcyB0byBxZW11Ci0gRG9jdW1lbnQgdGhlIG5lZWQgdG8gY2hlY2sg Zm9yIHRoZSBzYW5kYm94IGZlYXR1cmUgYmVmb3JlIHVzaW5nIGl0CgpUaGFuayB5b3UgdG8gUm9z cyBMYWdlcndhbGwsIHdob3NlIGRlc2NyaXB0aW9uIG9mIHdoYXQgWGVuU2VydmVyIGlzCmRvaW5n IGZvcm1lZCBtdWNoIG9mIHRoZSBiYXNpcyBmb3IgdGhlIHRleHQgaGVyZS4KCkNDOiBJYW4gSmFj a3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJp eC5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDQzog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5v cmc+CkNDOiBLb25yYWQgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ0M6IFN0ZWZhbm8g U3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVs aWVuLmdyYWxsQGFybS5jb20+CkNDOiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0 cml4LmNvbT4KQ0M6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgot LS0KIFNVUFBPUlQubWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysKIGRvY3Mv ZGVzaWducy9xZW11LWRlcHJpdmlsZWdlLm1kICAgICAgfCAzMjIgKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRvY3MvZmVhdHVyZXMvcWVtdS1kZXByaXZpbGVnZS5wYW5kb2MgfCAgOTQgKysr KysrKysKIGRvY3MvbWlzYy9xZW11LWRlcHJpdmlsZWdlLnR4dCAgICAgICAgfCAgMzYgLS0tCiA0 IGZpbGVzIGNoYW5nZWQsIDQzNiBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2NzL2Rlc2lnbnMvcWVtdS1kZXByaXZpbGVnZS5tZAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRvY3MvZmVhdHVyZXMvcWVtdS1kZXByaXZpbGVnZS5wYW5kb2MKIGRlbGV0ZSBt b2RlIDEwMDY0NCBkb2NzL21pc2MvcWVtdS1kZXByaXZpbGVnZS50eHQKCmRpZmYgLS1naXQgYS9T VVBQT1JULm1kIGIvU1VQUE9SVC5tZAppbmRleCAzNzI3NDQ2YjgzLi5iNWU3ZTQ0ZmIzIDEwMDY0 NAotLS0gYS9TVVBQT1JULm1kCisrKyBiL1NVUFBPUlQubWQKQEAgLTUyNSw2ICs1MjUsMjYgQEAg VnVsbmVyYWJpbGl0aWVzIG9mIGEgZGV2aWNlIG1vZGVsIHN0dWIgZG9tYWluCiB0byBhIGhvc3Rp bGUgZHJpdmVyIGRvbWFpbiAoZWl0aGVyIGNvbXByb21pc2VkIG9yIHVudHJ1c3RlZCkKIGFyZSBl eGNsdWRlZCBmcm9tIHNlY3VyaXR5IHN1cHBvcnQuCiAKKyMjIyBEZXZpY2UgTW9kZWwgRGVwcml2 aWxlZ2luZworCisgICAgU3RhdHVzLCBMaW51eDogVGVjaCBQcmV2aWV3LCB3aXRoIGxpbWl0ZWQg c3VwcG9ydAorCitUaGlzIG1lYW5zIGFkZGluZyBleHRyYSByZXN0cmljdGlvbnMgdG8gYSBkZXZp Y2UgbW9kZWwgcnVubmluZyBpbgorZG9tYWluIDAgaW4gb3JkZXIgdG8gcHJldmVudCBhIGNvbXBy b21pc2VkIGRldmljZSBtb2RlbCB0byBhdHRhY2sgdGhlCityZXN0IG9mIHRoZSBzeXN0ZW0uCisK KyJUZWNoIHByZXZpZXcgd2l0aCBsaW1pdGVkIHN1cHBvcnQiIG1lYW5zIHdlIHdpbGwgbm90IGlz c3VlIFhTQXMgZm9yCit0aGUgX2FkZGl0aW9uYWxfIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkg dGhlIGZlYXR1cmU7IGJ1dCB3ZSB3aWxsCitpc3N1ZSBYU0FzIGluIHRoZSBldmVudCB0aGF0IGVu YWJsaW5nIHRoaXMgZmVhdHVyZSBvcGVucyB1cCBhIHNlY3VyaXR5Citob2xlIHRoYXQgd291bGQg bm90IGJlIHByZXNlbnQgd2l0aG91dCB0aGUgZmVhdHVyZSBkaXNhYmxlZC4KKworRm9yIGV4YW1w bGUsIHdoaWxlIHRoaXMgaXMgY2xhc3NpZmllZCBhcyB0ZWNoIHByZXZpZXcsIGEgYnVnIGluIGxp YnhsCit3aGljaCBmYWlsZWQgdG8gY2hhbmdlIHRoZSB1c2VyIElEIG9mIFFFTVUgd291bGQgbm90 IHJlY2VpdmUgYW4gWFNBLAorc2luY2Ugd2l0aG91dCB0aGlzIGZlYXR1cmUgdGhlIHVzZXIgSUQg d291bGRuJ3QgYmUgY2hhbmdlZC4gQnV0IGEKK2NoYW5nZSB3aGljaCBtYWRlIGl0IHBvc3NpYmxl IGZvciBhIGNvbXByb21pc2VkIGd1ZXN0IHRvIHJlYWQKK2FyYml0cmFyeSBmaWxlcyBvbiB0aGUg aG9zdCBmaWxlc3lzdGVtIHdpdGhvdXQgY29tcHJvbWlzaW5nIFFFTVUgd291bGQKK2JlIGlzc3Vl ZCBhbiBYU0EsIHNpbmNlIHRoYXQgZG9lcyB3ZWFrZW4gc2VjdXJpdHkuCisKICMjIyBLQ09ORklH IEV4cGVydAogCiAgICAgU3RhdHVzOiBFeHBlcmltZW50YWwKZGlmZiAtLWdpdCBhL2RvY3MvZGVz aWducy9xZW11LWRlcHJpdmlsZWdlLm1kIGIvZG9jcy9kZXNpZ25zL3FlbXUtZGVwcml2aWxlZ2Uu bWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDNjNjQ5NTAzMAotLS0g L2Rldi9udWxsCisrKyBiL2RvY3MvZGVzaWducy9xZW11LWRlcHJpdmlsZWdlLm1kCkBAIC0wLDAg KzEsMzIyIEBACisjIEludHJvZHVjdGlvbgorCitUaGUgZ29hbCBvZiBkZXByaWx2aWxlZ2luZyBx ZW11IGlzIHRoaXM6IEV2ZW4gaWYgdGhlcmUgaXMgYSBidWcgKGZvcgorZXhhbXBsZSBpbiBxZW11 KSB3aGljaCBwZXJtaXRzIGEgZG9tYWluIHRvIGdhaW4gY29udHJvbCBvZiB0aGUgZGV2aWNlCitt b2RlbCwgdGhlIGNvbXByb21pc2VkIGRldmljZSBtb2RlbCBwcm9jZXNzIGlzIHByZXZlbnRlZCBm cm9tCit2aW9sYXRpbmcgdGhlIHN5c3RlbSdzIG92ZXJhbGwgc2VjdXJpdHkgcHJvcGVydGllcy4g IEllLCBhIGd1ZXN0CitjYW5ub3QgImVzY2FwZSIgZnJvbSB0aGUgdmlydHVhbGlzYXRpb24gYnkg dXNpbmcgYSBxZW11IGJ1Zy4KKworVGhpcyBkb2N1bWVudCBsaXN0cyB0aGUgdmFyaW91cyB0ZWNo bmljYWwgbWVhc3VyZXMgd2hpY2ggd2UgZWl0aGVyCitoYXZlIHRha2VuLCBvciBwbGFuIHRvIHRh a2UgdG8gZWZmZWN0IHRoaXMgZ29hbC4gIFNvbWUgb2YgdGhlbSBhcmUKK3JlcXVpcmVkIHRvIGJl IGNvbnNpZGVyZWQgc2VjdXJlICh0aGF0IGlzLCB0aGVyZSBhcmUga25vd24gYXR0YWNrCit2ZWN0 b3JzIHdoaWNoIHRoZXkgY2xvc2UpOyBvdGhlcnMgYXJlICJqdXN0IGluIGNhc2UiICh0aGF0IGlz LCB0aGVyZQorYXJlIG5vIGtub3duIGF0dGFjayB2ZWN0b3JzLCBidXQgd2UgcGVyZm9ybSB0aGUg cmVzdHJpY3Rpb25zIHRvIHJlZHVjZQordGhlIHBvc3NpYmlsaXR5IG9mIHVua25vd24gYXR0YWNr IHZlY3RvcnMpLgorCisjIFJlc3RyaWN0aW9ucyBkb25lCisKK1RoZSBmb2xsb3dpbmcgcmVzdHJp Y3Rpb25zIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQuCisKKyMjIEhhdmluZyBxZW11IHN3aXRj aCB1c2VyCisKKycnJ0Rlc2NyaXB0aW9uJycnOiBBcyBtZW50aW9uZWQgYWJvdmUsIGhhdmluZyBR RU1VIHN3aXRjaCB0byBhCitub24tcm9vdCB1c2VyLCBvbmUgcGVyIGRvbWFpbiBpZC4gIE5vdCBi ZWluZyB0aGUgcm9vdCB1c2VyIGxpbWl0cyB3aGF0CithIGNvbXByb21pc2VkIFFFTVUgcHJvY2Vz cyBjYW4gZG8gdG8gdGhlIHN5c3RlbSwgYW5kIGhhdmluZyBvbmUgdXNlcgorcGVyIGRvbWFpbiBp ZCBsaW1pdHMgd2hhdCBhIGNvbXByaW1pc2VkIFFFTVUgcHJvY2VzcyBjYW4gZG8gdG8gdGhlCitR RU1VIHByb2Nlc3NlcyBvZiBvdGhlciBWTXMuCisKKycnJ0ltcGxlbWVudGF0aW9uJycnOiBUaGUg dG9vbHN0YWNrIGFkZHMgdGhlIGZvbGxvd2luZyB0byB0aGUgcWVtdSBjb21tYW5kLWxpbmU6CisK KyAgICAtcnVuYXMgPHVpZD46PGdpZD4KKworJycnSG93IHRvIHRlc3QnJyc6CisKKyAgICBncmVw IC9wcm9jLzxxcGlkPi9zdGF0dXMgW1VHXWlkCisKKycnJ1Rlc3RpbmcgU3RhdHVzJycnOiBOb3Qg dGVzdGVkCisKKyMjIFhlbiBsaWJyYXJ5IC8gZmlsZS1kZXNjcmlwdG9yIHJlc3RyaWN0aW9ucwor CisnJydEZXNjcmlwdGlvbicnJzogQ2xvc2UgYW5kIHJlc3RyaWN0IFhlbi1yZWxhdGVkIGZpbGUg ZGVzY3JpcHRvcnMuCitTcGVjaWZpY2FsbHk6CisgKiBDbG9zZSBhbGwgeGVuc3RvcmUtcmVsYXRl ZCBmaWxlIGRlc2NyaXB0b3JzCisgKiBNYWtlIHN1cmUgdGhhdCBhbGwgb3BlbiBpbnN0YW5jZXMg b2YgYHByaXZjbWRgIGFuZCBgZXZ0Y2huYCBmaWxlCitkZXNjcmlwdG9ycyBoYXZlIGhhZCBgSU9D VExfUFJJVkNNRF9SRVNUUklDVGAgYW5kCitgSU9DVExfRVZUQ0hOX1JFU1RSSUNUX0RPTUlEYCBp b2N0bHMgY2FsbGVkIG9uIHRoZW0sIHJlc3BlY3RpdmVseS4KKworRklYTUU6IERvdWJsZS1jaGVj ayB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIGFib3ZlCisKKycnJ0ltcGxlbWVudGF0aW9uJycnOiBU b29sc3RhY2sgYWRkcyB0aGUgZm9sbG93aW5nIHRvIHRoZSBxZW11IGNvbW1hbmQtbGluZToKKwor ICAgIC14ZW4tZG9taWQtcmVzdHJpY3QKKworJycnSG93IHRvIHRlc3QnJyc6CisKK1VzZSBgZmlz aGRlc2NyaXB0b3JgIHRvIHB1bGwgYSBmaWxlIGRlc2NyaXB0b3IgZnJvbSBhIHJ1bm5pbmcgUUVN VSwKK3RoZW4gdXNlIGBkZXByaXYtZmQtY2hlY2tlcmAgdG8gY2hlY2sgdGhhdCBpdCBoYXMgdGhl IGRlc2lyZWQKK3Byb3BlcnRpZXMsIGFuZCB0aGF0IGh5cGVyY2FsbHMgd2hpY2ggYXJlIG1lYW50 IHRvIGZhaWwgZG8gZmFpbC4gIChJbgorRGViaWFuIGBmaXNoZGVzY3JpcHRvcmAgY2FuIGJlIGZv dW5kIGluIHRoZSBiaW5hcnkgcGFja2FnZQorYGNoaWFyay1zY3JpcHRzYDsgdGhlIGBkZXByaXYt ZmQtY2hlY2tlcmAgaXMgaW5jbHVkZWQgaW4gdGhlIFhlbgorc291cmNlIHRyZWUuKQorCisnJydU ZXN0aW5nIHN0YXR1cycnJzogVGVzdGVkCisKKyMgUmVzdHJpY3Rpb25zIC8gaW1wcm92ZW1lbnRz IHN0aWxsIHRvIGRvCisKK1RoaXMgbGlzdHMgcG90ZW50aWFsIHJlc3RyaWN0aW9ucyBzdGlsbCB0 byBkby4gIEl0IGlzIG1lYW50IHRvIGJlCitsaXN0ZWQgaW4gb3JkZXIgb2YgZWFzZSBvZiBpbXBs ZW1lbnRhdGlvbiwgd2l0aCBsb3ctaGFuZ2luZyBmcnVpdAorZmlyc3QuCisKKyMjIENocm9vdAor CisnJydEZXNjcmlwdGlvbicnJzogUWVtdSBydW5zIGluIGl0cyBvd24gY2hyb290LCBzdWNoIHRo YXQgZXZlbiBpZiBpdAorY291bGQgY2FsbCBhbiAnb3BlbicgY29tbWFuZCBvZiBzb21lIHNvcnQs IHRoZXJlIHdvdWxkIGJlIG5vdGhpbmcgZm9yCitpdCB0byBzZWUuCisKKycnJ0ltcGxlbWVudGF0 aW9uJycnOiBUaGUgdG9vbHN0YWNrIGNyZWF0ZXMgYSBkaXJlY3RvcnkgaW4gdGhlIGxpYnhsICJy dW4tZGlyIjsgZS5nLgorYC92YXIvcnVuL3hlbi9xZW11LXJvb3QtPGRvbWlkPmAKKworVGhlbiBh ZGRzIHRoZSBmb2xsb3dpbmcgdG8gdGhlIHFlbXUgY29tbWFuZC1saW5lOgorCisgICAgLWNocm9v dCAvdmFyL3J1bi94ZW4vcWVtdS1yb290LTxkb21pZD4KKwkKKycnJ0hvdyB0byB0ZXN0JycnOiAg Q2hlY2sgYC9wcm9jLzxxcGlkPi9yb290YAorCQorJycnVGVzdGVkJycnOiBOb3QgdGVzdGVkCisK KyMjIE5hbWVzcGFjZXMgZm9yIHVudXNlZCBmdW5jdGlvbmFsaXR5IChMaW51eCBvbmx5KQorCisn JydEZXNjcmlwdGlvbicnJzogUUVNVSBkb2Vzbid0IHVzZSB0aGUgZnVuY3Rpb25hbGl0eSBhc3Nv Y2lhdGVkIHdpdGgKK21vdW50IGFuZCBJUEMgbmFtZXNwYWNlcy4gKElQQyBuYW1lc3BhY2VzIGNv bnRvbCBub24tZmlsZS1iYXNlZCBJUEMKK21lY2hhbmlzbXMgd2l0aGluIHRoZSBrZXJuZWw7IHVu aXggYW5kIG5ldHdvcmsgc29ja2V0cyBhcmUgbm90CithZmZlY3RlZCBieSB0aGlzLikgIE1ha2lu ZyBzZXBhcmF0ZSBuYW1lc3BhY2VzIGZvciB0aGVzZSBmb3IgUUVNVQord29uJ3QgYWZmZWN0IG5v cm1hbCBvcGVyYXRpb24sIGJ1dCBpdCBkb2VzIG1lYW4gdGhhdCBldmVuIGlmIG90aGVyCityZXN0 cmljdGlvbnMgZmFpbCwgdGhlIHByb2Nlc3Mgd29uJ3QgYmUgYWJsZSB0byBldmVuIG5hbWUgc3lz dGVtIG1vdW50Citwb2ludHMgb3IgZXhzdGluZyBub24tZmlsZS1iYXNlZCBJUEMgZGVzY3JpcHRv cnMgdG8gYXR0ZW1wdCB0byBhdHRhY2sKK3RoZW0uCisKKycnJ0ltcGxlbWVudGF0aW9uJycnOgor CitJbiB0aGVvcnkgdGhpcyBjb3VsZCBiZSBkb25lIGluIFFFTVUgKHNpbWlsYXIgdG8gLXNhbmRi b3gsIC1ydW5hcywKKy1jaHJvb3QsIGFuZCBzbyBvbiksIGJ1dCBhIHBhdGNoIGRvaW5nIHRoaXMg aW4gUUVNVSB3YXMgTkFLZWQgdXBzdHJlYW0KKyhzZWUgW3FlbXUtbmFtZXNwYWNlc10pLiBUaGV5 IHByZWZlcnJlZCB0aGF0IHRoaXMgd2FzIGRvbmUgYXMgYSBzZXR1cCBzdGVwIGJ5Cit3aGF0ZXZl ciBleGVjdXRlcyBRRU1VOyBpLmUuLCBoYXZlIHRoZSBwcm9jZXNzIHdoaWNoIGV4ZWMncyBRRU1V IGZpcnN0CitjYWxsOgorCisgICAgdW5zaGFyZShDTE9ORV9ORVdOUyB8IENMT05FX05FV0lQQykK KwkKKycnJ0hvdyB0byB0ZXN0JycnOiAgQ2hlY2sgYC9wcm9jLzxxcGlkPi9ucy9baXBjLG1udF1g CisKKycnJ1Rlc3RlZCcnJzogTm90IHRlc3RlZAorCitbcWVtdS1uYW1lc3BhY2VzXTogaHR0cHM6 Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LWRldmVsLzIwMTctMTAvbXNnMDQ3MjMu aHRtbAorCisjIyMgQmFzaWMgUkxJTUlUcworCisnJydEZXNjcmlwdGlvbicnJzogQSBudW1iZXIg b2YgbGltaXRzIG9uIHRoZSByZXNvdXJjZXMgdGhhdCBhIGdpdmVuCitwcm9jZXNzIC8gdXNlcmlk IGlzIGFsbG93ZWQgdG8gY29uc3VtZS4gIFRoZXNlIGNhbiBsaW1pdCB0aGUgYWJpbGl0eQorb2Yg YSBjb21wcm9taXNlZCBRRU1VIHByb2Nlc3MgdG8gRG9TIGRvbWFpbiAwIGJ5IGV4aGF1c3Rpbmcg dmFyaW91cworcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBpdC4KKworJycnSW1wbGVtZW50YXRpb24n JycKKworTGltaXRzIHRoYXQgY2FuIGJlIGltcGxlbWVudGVkIGltbWVkaWF0ZWx5IHdpdGhvdXQg bXVjaCBlZmZvcnQ6CisgLSBSTElNSVRfRlNJWkVgIChmaWxlIHNpemUpIHRvIDI1NktpQi4KKyAt IFJMSU1JVF9OUFJPQyAoYWZ0ZXIgdWlkIGNoYW5nZXMgdG8gYSB1bmlxdWUgdWlkKQorCitQcm9i YWJseSBub3QgbmVjZXNzYXJ5IGJ1dCB3aHkgbm90OgorIC0gUkxJTUlUX0NPUkU6IDAKKyAtIFJM SU1JVF9NU0dRVUVVRTogMAorIC0gUkxJTUlUX0xPQ0tTOiAwCisgLSBSTElNSVRfTUVNTE9DSzog MAorIAorTm90ZTogbWxvY2soKSBpcyB1c2VkIGJ5IFFFTVUgb25seSB3aGVuIGJvdGggInJlYWx0 aW1lIiBhbmQgIm1sb2NrIgorYXJlIHNwZWNpZmllZDsgdGhpcyBkb2VzIG5vdCBhcHBseSB0byBR RU1VIHJ1bm5pbmcgYXMgYSBYZW4gRE0uCisgICAKKycnJ0hvdyB0byB0ZXN0JycnOiBDaGVjayBg L3Byb2MvPHFwaWQ+L2xpbWl0c2AKKworJycnVGVzdGVkJycnOiBOb3QgdGVzdGVkCisKKyMjIyBG dXJ0aGVyIFJMSU1JVHMKKworUkxJTUlUX0FTIGxpbWl0cyB0aGUgdG90YWwgYW1vdW50IG9mIG1l bW9yeTsgYnV0IHRoaXMgaW5jbHVkZXMgdGhlCit2aXJ0dWFsIG1lbW9yeSB3aGljaCBRRU1VIHVz ZXMgYXMgYSBtYXBjYWNoZS4gIHhlbi1tYXBjYWNoZS5jIGFscmVhZHkKK2ZpZGRsZXMgd2l0aCB0 aGlzOyBpdCB3b3VsZCBiZSBzdHJhaWdodGZvcndhcmQgdG8gbWFrZSBpdCAqc2V0KiB0aGUKK3Js aW1pdCB0byB3aGF0IGl0IHRoaW5rcyBhIHNlbnNpYmxlIGxpbWl0IGlzLgorCitPdGhlciB0aGlu Z3MgdGhhdCB3b3VsZCB0YWtlIHNvbWUgY2xldmVybmVzcyAvIGNoYW5nZXMgdG8gUUVNVSB0bwor dXRpbGl6ZSBkdWUgdG8gb3JkZXJpbmcgY29uc3RyYW50czoKKyAtIFJMSU1JVF9OT0ZJTEVTIChh ZnRlciBhbGwgbmVjZXNzYXJ5IGZpbGVzIGFyZSBvcGVuZWQpCisKKyMjIyBsaWJ4bCBVSUQgY2xl YW51cAorCisnJydEZXNjcmlwdGlvbicnJzogRG9tYWluIElEcyBhcmUgcmV1c2VkLCBhbmQgdGh1 cyByZXN0cmljdGVkIFVJRHMgYXJlCityZXVzZWQuICBJZiBhIGNvbXByb21pc2VkIFFFTVUgY2Fu IGZvcmsgKGR1ZSB0byBzZWNjb21wIG9yCitSTElNSVRfTlBST0MgbGltaXRzIGJlaW5nIGluZWZm ZWN0aXZlIGZvciBzb21lIHJlYXNvbiksIGl0IG1heSBhdm9pZAorYmVpbmcga2lsbGVkIHdoZW4g aXRzIGRvbWFpbiBkaWVzLCB0aGVuIHdhaXQgdW50aWwgdGhlIGRvbWFpbiBJRCBpcworcmV1c2Vk IGFnYWluLCBhdCB3aGljaCBwb2ludCBpdCB3aWxsIGhhdmUgY29udHJvbCBvdmVyIHRoZSBkb21h aW4gaW4KK3F1ZXN0aW9uICh3aGljaCBwcm9iYWJseSBiZWxvbmdzIHRvIHNvbWVvbmUgZWxzZSku CisKK2xpYnhsIHNob3VsZCBraWxsIGFsbCBVSURzIGFzc29jaWF0ZWQgd2l0aCBhIGRvbWFpbiBi b3RoIHdoZW4gdGhlIFZNCitpcyBkZXN0cm95ZWQsIGFuZCBiZWZvcmUgc3RhcnRpbmcgYSBWTSB3 aXRoIHRoZSBzYW1lIFVJRC4KKworJycnSW1wbGVtZW50YXRpb24nJyc6IFRoaXMgaXMgdW5uZWNl c3NhcmlseSB0cmlja3kuCisKK1RoZSBraWxsKCkgc3lzdGVtIGNhbGwgY2FuIGhhdmUgdGhyZWUg a2luZHMgb2YgdGFyZ2V0czoKKyAtIEEgc2luZ2xlIHBpZAorIC0gQSBwcm9jZXNzIGdyb3VwCisg LSAiRXZlcnkgcHJvY2VzcyBleGNlcHQgbWUgdG8gd2hpY2ggSSBhbSBhbGxvd2VkIHRvIHNlbmQg YSBzaWduYWwiICgtMSkKKworVGFyZ2V0aW5nIGEgc2luZ2xlIHBpZCBpcyByYWN5IGFuZCBsaWtl bHkgdG8gYmUgYmVhdGVuIGJ5IHRoZQorZm9sbG93aW5nIGxvb3A6CisKKyAgICB3aGlsZSgxKSB7 CisgICAgICAgIGlmKGZvcmsoKSkKKwkgICAgX2V4aXQoMCk7CisgICAgfQkgIAorCitUaGF0IGlz LCBieSB0aGUgdGltZSB5b3UndmUgcmVhZCB0aGUgcHJvY2VzcyBsaXN0IGFuZCBmb3VuZCB0aGUK K3Byb2Nlc3MgaWQgeW91IHdhbnQgdG8ga2lsbCwgdGhhdCBwcm9jZXNzIGhhcyBleGl0ZWQgYW5k IHRoZXJlIGlzIGEKK25ldyBwcm9jZXNzIHdob3NlIHBpZCB5b3UgZG9uJ3Qga25vdyBhYm91dC4K KworVGFyZ2V0aW5nIGEgcHJvY2VzcyBncm91cCB3aWxsIGJlIGluZWZmZWN0aXZlLCBhcyB1bnBy aXZpbGVnZWQKK3Byb2Nlc3NlcyBhcmUgYWxsb3dlZCB0byBtYWtlIHRoZWlyIG93biBwcm9jZXNz IGdyb3Vwcy4KKwora2lsbCgtMSkgY2FuIGJlIHVzZWQgYnV0IG11c3QgYmUgZG9uZSB3aXRoIGNh cmUuICBDb25zaWRlciB0aGUKK2ZvbGxvd2luZyBjb2RlLCBmb3IgZXhhbXBsZToKKworICAgIHNl dHVpZCh0YXJnZXRfdWlkKTsKKyAgICBraWxsKC0xLCA5KTsKKworVGhpcyBsb29rcyBsaWtlIGl0 IHdpbGwgZG8gdGhlIHRyaWNrOyBidXQgYnkgc2V0dGluZyBhbGwgb2YgdGhlIHVzZXIKK2lkcyAo ZWZmZWN0aXZlLCByZWFsLCBhbmQgc2F2ZWQpLCBpdCBvcGVucyB0aGUgJ2tpbGxpbmcnIHByb2Nl c3MgdXAgdG8KK2JlaW5nIGtpbGxlZCBieSB0aGUgdGFyZ2V0IHByb2Nlc3M6CisKKyAgICB3aGls ZSgxKSB7CisgICAgICAgIGlmKGZvcmsoKSkKKyAgICAgICAgICAgIF9leGl0KDApOworICAgICAg ICBlbHNlCisgICAgICAgICAgICBraWxsKC0xLCA5KTsKKyAgICB9CisKK0ZvcnR1bmF0ZWx5IHRo ZXJlIGlzIGFuIGFzc3ltZXRyeSB3ZSBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YuICBGcm9tIHRoZQor UE9TSVggc3BlYzoKKworPiBGb3IgYSBwcm9jZXNzIHRvIGhhdmUgcGVybWlzc2lvbiB0byBzZW5k IGEgc2lnbmFsIHRvIGEgcHJvY2VzcworPiBkZXNpZ25hdGVkIGJ5IHBpZCwgdW5sZXNzIHRoZSBz ZW5kaW5nIHByb2Nlc3MgaGFzIGFwcHJvcHJpYXRlCis+IHByaXZpbGVnZXMsIHRoZSByZWFsIG9y IGVmZmVjdGl2ZSB1c2VyIElEIG9mIHRoZSBzZW5kaW5nIHByb2Nlc3Mgc2hhbGwKKz4gbWF0Y2gg dGhlIHJlYWwgb3Igc2F2ZWQgc2V0LXVzZXItSUQgb2YgdGhlIHJlY2VpdmluZyBwcm9jZXNzLgor CitUaGUgc29sdXRpb24gaXMgdG8gYWxsb2NhdGUgYSBzZWNvbmQgInJlYXBlciIgdWlkIHRoYXQg aXMgb25seSB1c2VkIHRvIGtpbGwKK3RhcmdldCBwcm9jZXNzZXMuICBXZSBzZXQgdGhlIGV1aWQg b2YgdGhlIGtpbGxpbmcgcHJvY2VzcyB0byB0aGUgYHRhcmdldF91aWRgLAorYnV0IHRoZSBydWlk IG9mIHRoZSBraWxsaW5nIHByb2Nlc3MgdG8gYHJlYXBlcl91aWRgLCBsZWF2aW5nIHRoZSBzdWlk IG9mIHRoZQora2lsbGluZyBwcm9jZXNzIGFzIDA6CisKKyAgICBzZXRyZXN1aWQocmVhcGVyX3Vp ZCwgdGFyZ2V0X3VpZCwgMCk7CisgICAga2lsbCgtMSwgOSk7CisKK05PVEU6IFdlIGNhbm5vdCB1 c2UgYHNldHJldWlkKHJlYXBlcl91aWQsIHRhcmdldF91aWQpYCBoZXJlLCBhcyB0aGF0Cit3aWxs IHNldCAqYm90aCogZXVpZCAqYW5kKiBzdWlkIHRvIGB0YXJnZXRfdWlkYCwgbWFraW5nIHRoZSBr aWxsaW5nCitwcm9jZXNzIHZ1bG5lcmFibGUgdG8gdGhlIHRhcmdldCBwcm9jZXNzIGFnYWluLgor CitTaW5jZSB0aGlzIHdpbGwga2lsbCBhbGwgb3RoZXIgYHJlYXBlcl91aWRgIHByb2Nlc3NlcyBh cyB3ZWxsLCB3ZSBtdXN0CitlaXRoZXIgYWxsb2NhdGUgYSBzZXBhcmF0ZSBgcmVhcGVyX3VpZGAg cGVyIGRvbWFpbiwgb3IgdXNlIGxvY2tpbmcgdG8KK2Vuc3VyZSB0aGF0IG9ubHkgb25lIGtpbGxp bmcgcHJvY2VzcyBpcyBhY3RpdmUgYXQgYSB0aW1lLgorCisjIyBsaWJ4bDogVHJlYXQgUU1QIGNv bm5lY3Rpb24gYXMgdW50cnVzdGVkCisKKycnJ0Rlc2NyaXB0aW9uJycnOiBDdXJyZW50bHkgbGli eGwgdGFsa3Mgd2l0aCBRRU1VIHZpYSBRTVA7IGJ1dCBpdHMKK2ludGVyYWN0aW9ucyBoYXZlIG5v dCBoaXN0b3JpY2FsbHkgY29uc2lkZXJlZCBmcm9tIGEgc2VjdXJpdHkgcG9pbnQgb2YKK3ZpZXcu ICBGb3IgZXhhbXBsZSwgcW1wX3N5bmNocm9ub3VzX3NlbmQoKSB3YWl0cyBmb3IgYSByZXNwb25z ZSBmcm9tCitRRU1VLCB3aGljaCBhIGNvbXByb21pc2VkIFFFTVUgY291bGQgc2ltcGx5IG5vdCBz ZW5kICh0aHVzIHByZXZlbnRpbmcKK3RoZSB0b29sc3RhY2sgZnJvbSBtYWtpbmcgZm9yd2FyZCBw cm9ncmVzcykuCisKKycnJ0ltcGxlbWVudGF0aW9uJycnOiBBdWRpdCB0b29sc3RhY2sgaW50ZXJh Y3Rpb25zIHdpdGggUUVNVSB3aGljaAoraGFwcGVuIGFmdGVyIHRoZSBndWVzdCBoYXMgc3RhcnRl ZCBydW5uaW5nLCBhbmQgYXNzdW1lIFFFTVUgaGFzIGJlZW4KK2NvbXByb21pc2VkLgorCisjIyMg c2VjY29tcCBmaWx0ZXJpbmcgKExpbnV4IG9ubHkpCisKKycnJ0Rlc2NyaXB0aW9uJycnOiBUdXJu IG9uIHNlY2NvbXAgZmlsdGVyaW5nIHRvIGRpc2FibGUgc3lzY2FsbHMgd2hpY2gKK1FFTVUgZG9l c24ndCBuZWVkLiAKKworJycnSW1wbGVtZW50YXRpb24nJyc6IEVuYWJsZSBmcm9tIHRoZSBjb21t YW5kLWxpbmU6CisKKyAgICAtc2FuZGJveCBvbixvYnNvbGV0ZT1kZW55LGVsZXZhdGVwcml2aWxl Z2VzPWFsbG93LHNwYXduPWRlbnkscmVzb3VyY2Vjb250cm9sPWRlbnkKKworYGVsZXZhdGVwcml2 aWxlZ2VzYCBpcyBjdXJyZW50bHkgcmVxdWlyZWQgdG8gYWxsb3cgYC1ydW5hc2AgdG8gd29yay4K K1JlbW92aW5nIHRoaXMgcmVxdWlyZW1lbnQgd291bGQgbWVhbiBtYWtpbmcgc3VyZSB0aGF0IHRo ZSB1aWQgY2hhbmdlCitoYXBwZW5lZCBiZWZvcmUgdGhlIHNlY2NvbXAyIGNhbGwsIHBlcmhhcHMg YnkgY2hhbmdpbmcgdGhlIHVpZCBiZWZvcmUKK2V4ZWN1dGluZyBRRU1VLiAgKEJ1dCB0aGlzIHdv dWxkIHRoZW4gcmVxdWlyZSBvdGhlciBjaGFuZ2VzIHRvIGNyZWF0ZQordGhlIFFNUCBzb2NrZXQs IFZOQyBzb2NrZXQsIGFuZCBzbyBvbikuCisKK0l0IHNob3VsZCBiZSBub3RlZCB0aGF0IGAtc2Fu ZGJveGAgaXMgaW1wbGVtZW50ZWQgYXMgYSBibGFja2xpc3QsIG5vdAorYSB3aGl0ZWxpc3Q7IHRo YXQgaXMsIGl0IGRpc2FibGVzIGtub3duLXVuc2VkIGZ1bmN0aW9uYWxpdHkgd2hpY2ggbWF5Citi ZSBoYXJtZnVsLCByYXRoZXIgdGhhbiBkaXNhYmxpbmcgYWxsIGZ1bmN0aW9uYWxpdHkgZXhjZXB0 IHRoYXQga25vd24KK3RvIGJlIHNhZmUgYW5kIG5lZWRlZC4gIFRoaXMgaXMgdW5mb3J0dW5hdGVs eSBuZWNlc3Nhcnkgc2luY2UgcWVtdQorZG9lc24ndCBrbm93IHdoYXQgc3lzdGVtIGNhbGxzIGxp YnJhcmllcyBtaWdodCBlbmQgdXAgbWFraW5nLiAgKFNlZQorW2x3bi1zZWNjb21wXSBmb3IgYSBt b3JlIGNvbXBsZXRlIGRpc2N1c3Npb24uKQorCitUaGlzIGZlYXR1cmUgaXMgbm90IG9uIGJ5IGRl ZmF1bHQgYW5kIG1heSBub3QgYmUgYXZhaWxhYmxlIGluIGFsbAorZW52aXJvbm1lbnRzLiAgV2Ug dGhlcmVmb3JlIG5lZWQgdG8gZWl0aGVyOgorIDEuIFJlcXVpcmUgdGhhdCB0aGlzIGZlYXR1cmUg YmUgZW5hYmxlZCB0byBidWlsZCBxZW11CisgMi4gQ2hlY2sgZm9yIGAtc2FuZGJveGAgc3VwcG9y dCBhdCBydW50aW1lIGJlZm9yZSAKKworW2x3bi1zZWNjb21wXTogaHR0cHM6Ly9sd24ubmV0L0Fy dGljbGVzLzczODY5NC8KKworIyMjIERpc2tzCisKK1RoZSBjaHJvb3QgKGFuZCBzZWNjb21wPykg aGFwcGVucyBsYXRlIGVub3VnaCBzdWNoIHRoYXQgUUVNVSBjYW4KK2luaXRpYWxpemUgaXRzZWxm IGFuZCBvcGVuIGl0cyBkaXNrcy4gSWYgeW91IHdhbnQgdG8gYWRkIGEgZGlzayBhdCBydW4KK3Rp bWUgdmlhIG9yIGluc2VydCBhIENELCB5b3UgY2FuJ3QgcGFzcyBhIHBhdGggYmVjYXVzZSBRRU1V IGlzCitjaHJvb3RlZC4gSW5zdGVhZCB1c2UgdGhlIGFkZC1mZCBRTVAgY29tbWFuZCBhbmQgdXNl CisvZGV2L2Zkc2V0LzxmZHNldC1pZD4gYXMgdGhlIHBhdGguCisKK0EgZnVydGhlciBsYXllciBv ZiByZXN0cmljdGlvbiBjb3VsZCBiZSB0byBzZXQgUkxJTUlUX05PRklMRVMgdG8gJzAnLAorYW5k IGhhbmQgYWxsIGRpc2tzIG92ZXIgUU1QLgorCisjIyBNaWdyYXRpb24KKworV2hlbiBjYWxsaW5n IHhlbi1zYXZlLWRldmljZXMtc3RhdGUsIHNpbmNlIFFFTVUgaXMgcnVubmluZyBpbiBhIGNocm9v dAoraXQgaXMgbm90IHVzZWZ1bCB0byBwYXNzIGEgZmlsZW5hbWUgKGl0IGRvZXNuJ3QgZXZlbiBo YXZlIHdyaXRlIGFjY2VzcworaW5zaWRlIHRoZSBjaHJvb3QpLiBJbnN0ZWFkLCBnaXZlIGl0IGFu IG9wZW4gZmQgdXNpbmcgdGhlIGFkZC1mZAorbWVjaGFuaXNtLgorCitBZGRpdGlvbmFsbHksIGFs bCB0aGUgcmVzdHJpY3Rpb25zIG5lZWQgdG8gYmUgYXBwbGllZCB0byB0aGUgcWVtdQorc3RhcnRl ZCB1cCBvbiB0aGUgcG9zdC1taWdyYXRpb24gc2lkZS4gIE9uZSBpc3N1ZSB0aGF0IG5lZWRzIHRv IGJlCitzb2x2ZWQgaXMgaG93IHRvIHNpZ25hbCB0aGUgdG9vbHN0YWNrIG9uIHJlc3RvcmUgdGhh dCBxZW11IGlzIHJlYWR5Citmb3IgdGhlIGRvbWFpbiB0byBiZSBzdGFydGVkIChzaW5jZSB0aGlz IGlzIG5vcm1hbGx5IGRvbmUgdmlhCit4ZW5zdG9yZSwgYW5kIGF0IHRoaXMgcG9pbnQgdGhlIHhl bnN0b3JlIGNvbm5lY3Rpb25zIHdpbGwgaGF2ZSBiZWVuCitjbG9zZWQpLgorCisjIyMgTmV0d29y ayBuYW1lc3BhY2luZyAoTGludXggb25seSkKKworRW50ZXIgUUVNVSBpbnRvIGl0cyBvd24gbmV0 d29yayBuYW1lc3BhY2UgKGluIGFkZGl0aW9uIHRvIG1vdW50ICYgSVBDCituYW1lc3BhY2VzKToK KworICAgIHVuc2hhcmUoQ0xPTkVfTkVXTkVUKTsKKworUUVNVSBkb2VzIGFjdHVhbGx5IHVzZSB0 aGUgbmV0d29yayBuYW1lc3BhY2UgYXMgYSBYZW4gRE0gZm9yIHR3bworcHVycG9zZXM6IDEpIFRv IHNldCB1cCBuZXR3b3JrIHRhcCBkZXZpY2VzIDIpIFRvIG9wZW4gdm5jIGNvbm5lY3Rpb25zLgor CisjIyMjIE5ldHdvcmsKKworSWYgUUVNVSBydW5zIGluIGl0cyBvd24gbmV0d29yayBuYW1lc3Bh Y2UsIGl0IGNhbid0IG9wZW4gdGhlIHRhcAorZGV2aWNlIGl0c2VsZiBiZWNhdXNlIHRoZSBpbnRl cmZhY2Ugd29uJ3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIGl0cworb3duIG5hbWVzcGFjZS4gU28g aW5zdGVhZCwgaGF2ZSB0aGUgdG9vbHN0YWNrIG9wZW4gdGhlIGRldmljZSBhbmQgcGFzcworaXQg YXMgYW4gZmQgb24gdGhlIGNvbW1hbmQtbGluZToKKworICAgIC1kZXZpY2UgcnRsODEzOSxuZXRk ZXY9dGFwbmV0MCxtYWM9Li4uIC1uZXRkZXYgdGFwLGlkPXRhcG5ldDAsZmQ9PHRhcGZkPgorCisj IyMjIFZOQworCitJZiBRRU1VIHJ1bnMgaW4gaXRzIG93biBuZXR3b3JrIG5hbWVzcGFjZSwgaXQg aXMgbm90IHN0cmFpZ2h0Zm9yd2FyZAordG8gbGlzdGVuIG9uIGEgVENQIHNvY2tldCBvdXRzaWRl IG9mIGl0cyBvd24gbmV0d29yayBuYW1lc3BhY2UuIE9uZQorb3B0aW9uIHdvdWxkIGJlIHRvIHVz ZSBWTkMgb3ZlciBhIFVOSVggc29ja2V0OgorCisgICAgLXZuYyB1bml4Oi92YXIvcnVuL3hlbi92 bmMtPGRvbWlkPgorCitIb3dldmVyLCB0aGlzIHdvdWxkIGJyZWFrIGZ1bmN0aW9uYWxpdHkgaW4g dGhlIGdlbmVyYWwgY2FzZTsgSSB0aGluaword2UgbmVlZCB0byBoYXZlIHRoZSB0b29sc3RhY2sg b3BlbiBhIHNvY2tldCBhbmQgcGFzcyB0aGUgZmQgdG8gUUVNVQorKHdoaWNoIHJlcXVpcmVzIGNo YW5nZXMgdG8gUUVNVSkuCisKZGlmZiAtLWdpdCBhL2RvY3MvZmVhdHVyZXMvcWVtdS1kZXByaXZp bGVnZS5wYW5kb2MgYi9kb2NzL2ZlYXR1cmVzL3FlbXUtZGVwcml2aWxlZ2UucGFuZG9jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjZmYjQ4ZjNlNDAKLS0tIC9kZXYvbnVs bAorKysgYi9kb2NzL2ZlYXR1cmVzL3FlbXUtZGVwcml2aWxlZ2UucGFuZG9jCkBAIC0wLDAgKzEs OTQgQEAKKyUgUUVNVSBEZXByaXZpbGVnaW5nIC8gZG1fcmVzdHJpY3QKKyUgUmV2aXNpb24gMQor CitcY2xlYXJwYWdlCisKKyMgQmFzaWNzCisKKy0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgU3RhdHVz OiAqKlRlY2ggUHJldmlldyoqCisKK0FyY2hpdGVjdHVyZShzKTogeDg2CisKKyAgIENvbXBvbmVu dChzKTogdG9vbHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIE92ZXJ2aWV3CisKK0J5IGRlZmF1 bHQsIHRoZSBRRU1VIGRldmljZSBtb2RlbCBpcyBydW4gaW4gZG9tYWluIDAuICBJZiBhbiBhdHRh Y2tlcgorY2FuIGdhaW4gY29udHJvbCBvZiBhIFFFTVUgcHJvY2VzcywgaXQgY291bGQgZWFzaWx5 IHRha2UgY29udHJvbCBvZiBhCitzeXN0ZW0uCisKK2RtX3Jlc3RyaWN0IGlzIGEgc2V0IG9mIG9w ZXJhdGlvbnMgdG8gcmVzdHJpY3QgUUVNVSBydW5uaW5nIGluIGRvbWFpbgorMC4gIEl0IGNvbnNp c3RzIG9mIHR3byBoYWx2ZXM6CisKKyAxLiBNZWNoYW5pc21zIHRvIHJlc3RyaWN0IFFFTVUgdG8g b25seSBiZWluZyBhYmxlIHRvIGFmZmVjdCBpdHMgb3duCitkb21haW4KKyAyLiBNZWNoYW5pc21z IHRvIHJlc3RydWN0IFFFTVUncyBhYmlsaXR5IHRvIGludGVyYWN0IHdpdGggZG9tYWluIDAuCisK KyMgVXNlciBkZXRhaWxzCisKKyMjIEdldHRpbmcgdGhlIHJpZ2h0IHZlcnNpb25zIG9mIHNvZnR3 YXJlCisKK0xpbnV4OiA0LjExKworCitRZW11OiAzLjArIChPciB0aGUgdmVyc2lvbiB0aGF0IGNv bWVzIHdpdGggWGVuIDQuMTIrKQorCisjIyBTZXR0aW5nIHVwIGEgdXNlcmlkIHJhbmdlCisKK0Zv ciBtYXhpbXVtIHNlY3VyaXR5LCBsaWJ4bCBuZWVkcyB0byBydW4gdGhlIGRldmljZW1vZGVsIGZv ciBlYWNoCitkb21haW4gdW5kZXIgYSB1c2VyIGlkIChVSUQpIGNvcnJlc3BvbmRpbmcgdG8gaXRz IGRvbWFpbiBpZC4gIFRoZXJlCithcmUgMzI3NTIgcG9zc2libGUgZG9tYWluIElEcywgYW5kIHNv IGxpYnhsIG5lZWRzIDMyNzUyIHVzZXIgaWRzIHNldAorYXNpZGUgZm9yIGl0LgorCitUaGUgc2lt cGxlc3QgYW5kIG1vc3QgZWZmZWN0aXZlIHdheSB0byBkbyB0aGlzIGlzIHRvIGFsbG9jYXRlIGEK K2NvbnRpZ3VvdXMgYmxvY2sgb2YgVUlEcywgYW5kIGNyZWF0ZSBhIHNpbmdsZSB1c2VyIG5hbWVk CitgeGVuLXFlbXV1c2VyLXJhbmdlLWJhc2VgIHdpdGggdGhlIGZpcnN0IFVJRC4gIEZvciBleGFt cGxlLCB1bmRlciBEZWJpYW46CisKKyAgICBhZGR1c2VyIC0tbm8tY3JlYXRlLWhvbWUgLS11aWQg NjU1MzYgLS1zeXN0ZW0geGVuLXFlbXV1c2VyLXJhbmdlLWJhc2UKKworTk9URTogTW9zdCBtb2Rl cm4gc3lzdGVtcyBoYXZlIDMyLWJpdCBVSURzLCBhbmQgc28gY2FuIGluIHRoZW9yeSBnbyB1cAor dG8gMl4zMSAob3IgMl4zMiBpZiB1aWRzIGFyZSB1bnNpZ25lZCkuICBQT1NJWCBvbmx5IGd1YXJh bnRlZXMgMTYtYml0CitVSURzIGhvd2V2ZXI7IFVJRCA2NTUzNSBpcyByZXNlcnZlZCBmb3IgYW4g aW52YWxpZCB2YWx1ZSwgYW5kIDY1NTM0IGlzCitub3JtYWxseSBhbGxvY2F0ZWQgdG8gIm5vYm9k eSIuICBBZGRpdGlvbmFsbHksIHNvbWUgY29udGFpbmVyIHN5c3RlbXMKK2hhdmUgcHJvcG9zZWQg dXNpbmcgdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHVpZCBmb3IgYSBjb250YWluZXIgSUQuCisK K0Fub3RoZXIsIGxlc3Mtc2VjdXJlIHdheSBpcyB0byBydW4gYWxsIFFFTVVzIGFzIHRoZSBzYW1l IFVJRC4gIFRvIGRvCit0aGlzLCBjcmVhdGUgYSB1c2VyIG5hbWVkIGB4ZW4tcWVtdXVzZXItc2hh cmVkYDsgZm9yIGV4YW1wbGU6CisKKyAgICBhZGR1c2VyIC0tbm8tY3JlYXRlLWhvbWUgLS1zeXN0 ZW0geGVuLXFlbXV1c2VyLXNoYXJlZAorCisjIyBEb21haW4gY29uZmlnIGNoYW5nZXMKKworVGhl IGNvcmUgZG9tYWluIGNvbmZpZyBjaGFuZ2UgaXMgdG8gYWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0 byB0aGUKK2RvbWFpbiBjb25maWd1cmF0aW9uOgorCisgICAgZG1fcmVzdHJpY3Q9MQorCitUaGlz IHdpbGwgcGVyZm9ybSBhIG51bWJlciBvZiByZXN0cmljdGlvbnMsIG91dGxpbmVkIGJlbG93IGlu IHRoZQorJ1RlY2huaWNhbCBkZXRhaWxzJyBzZWN0aW9uLgorCisjIFRlY2huaWNhbCBkZXRhaWxz CisKK1NlZSBkb2NzL2Rlc2lnbi9xZW11LWRlcHJpdmlsZWdlLm1kIGZvciB0ZWNobmljYWwgZGV0 YWlscy4KKworIyBMaW1pdGF0aW9ucworCitUaGUgZm9sbG93aW5nIGZlYXR1cmVzIHN0aWxsIG5l ZWQgdG8gYmUgaW1wbGVtZW50ZWQ6CisgKiBJbnNlcnRpbmcgYSBuZXcgY2Ryb20gd2hpbGUgdGhl IGd1ZXN0IGlzIHJ1bm5pbmcgKHhsIGNkcm9tLWluc2VydCkKKyAqIE1pZ3JhdGlvbiAvIHNhdmUg LyByZXN0b3JlCisKK0FkZGl0aW9uYWxseSwgZ2V0dGluZyBQQ0kgcGFzc3Rocm91Z2ggdG8gd29y ayBzZWN1cmVseSB3b3VsZCByZXF1aXJlIGEKK3NpZ25pZmljYW50IHJld29yayBvZiBob3cgcGFz c3Rocm91Z2ggd29ya3MgYXQgdGhlIG1vbWVudC4gIEl0IG1heSBiZQoraW1wbGVtZW50ZWQgYXQg c29tZSBwb2ludCBidXQgaXMgbm90IGEgbmVhci10ZXJtIHByaW9yaXR5LgorCitTZWUgU1VQUE9S VC5tZCBmb3Igc2VjdXJpdHkgc3VwcG9ydCBzdGF0dXMuCisKKyMgSGlzdG9yeQorCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KK0RhdGUgICAgICAgUmV2aXNpb24gVmVyc2lvbiAgTm90ZXMKKy0tLS0tLS0tLS0g LS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorMjAxOC0wOS0xNCAxICAgICAgICBYZW4gNC4xMiBJbXBvcnRlZCBmcm9tIGRvY3MvbWlz YworLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9kb2NzL21pc2MvcWVtdS1kZXByaXZpbGVn ZS50eHQgYi9kb2NzL21pc2MvcWVtdS1kZXByaXZpbGVnZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDU4Yjg2YTM5MDguLjAwMDAwMDAwMDAKLS0tIGEvZG9jcy9taXNjL3FlbXUt ZGVwcml2aWxlZ2UudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRm9yIHNlY3Vy aXR5IHJlYXNvbnMsIGxpYnhsIHRyaWVzIHRvIHBhc3MgYSBub24tcm9vdCB1c2VybmFtZSB0byBR RU1VIGFzCi1hcmd1bWVudC4gRHVyaW5nIGluaXRpYWxpemF0aW9uIFFFTVUgY2FsbHMgc2V0dWlk IGFuZCBzZXRnaWQgd2l0aCB0aGUKLXVzZXIgSUQgYW5kIHRoZSBncm91cCBJRCBvZiB0aGUgdXNl ciBwYXNzZWQgYXMgYXJndW1lbnQuCi1MaWJ4bCBsb29rcyBmb3IgdGhlIGZvbGxvd2luZyB1c2Vy cyBpbiB0aGlzIG9yZGVyOgotCi0xKSBhIHVzZXIgbmFtZWQgInhlbi1xZW11dXNlci1kb21pZCRk b21pZCIsCi1XaGVyZSAkZG9taWQgaXMgdGhlIGRvbWlkIG9mIHRoZSBkb21haW4gYmVpbmcgY3Jl YXRlZC4KLVRoaXMgcmVxdWlyZXMgdGhlIHJlc2VydmF0aW9uIG9mIDY1NTM1IHVpZHMgZnJvbSB4 ZW4tcWVtdXVzZXItZG9taWQxCi10byB4ZW4tcWVtdXVzZXItZG9taWQ2NTUzNS4gVG8gdXNlIHRo aXMgbWVjaGFuaXNtLCB5b3UgbWlnaHQgd2FudCB0bwotY3JlYXRlIGEgbGFyZ2UgbnVtYmVyIG9m IHVzZXJzIGF0IGluc3RhbGxhdGlvbiB0aW1lLiBGb3IgZXhhbXBsZToKLQotZm9yICgoaT0xOyBp PDY1NTM2OyBpKyspKQotZG8KLSAgICBhZGR1c2VyIC0tbm8tY3JlYXRlLWhvbWUgLS1zeXN0ZW0g eGVuLXFlbXV1c2VyLWRvbWlkJGkKLWRvbmUKLQotWW91IG1pZ2h0IHdhbnQgdG8gY29uc2lkZXIg cGFzc2luZyAtLWdyb3VwIHRvIGFkZHVzZXIgdG8gY3JlYXRlIGEgbmV3Ci1ncm91cCBmb3IgZWFj aCBuZXcgdXNlci4KLQotCi0yKSBhIHVzZXIgbmFtZWQgInhlbi1xZW11dXNlci1zaGFyZWQiCi1B cyBhIGZhbGwgYmFjayBpZiBib3RoIDEpIGZhaWxzLCBsaWJ4bCB3aWxsIHVzZSBhIHNpbmdsZSB1 c2VyIGZvcgotYWxsIFFFTVUgaW5zdGFuY2VzLiBUaGUgdXNlciBpcyBuYW1lZCB4ZW4tcWVtdXVz ZXItc2hhcmVkLiBUaGlzIGlzCi1sZXNzIHNlY3VyZSBidXQgc3RpbGwgYmV0dGVyIHRoYW4gcnVu bmluZyBRRU1VIGFzIHJvb3QuIFVzaW5nIHRoaXMgaXMgYXMKLXNpbXBsZSBhcyBjcmVhdGluZyBq dXN0IG9uZSBtb3JlIHVzZXIgb24geW91ciBob3N0OgotCi1hZGR1c2VyIC0tbm8tY3JlYXRlLWhv bWUgLS1zeXN0ZW0geGVuLXFlbXV1c2VyLXNoYXJlZAotCi0KLTMpIHJvb3QKLUFzIGEgbGFzdCBy ZXNvcnQsIGxpYnhsIHdpbGwgc3RhcnQgUUVNVSBhcyByb290LgotCi0KLVBsZWFzZSBub3RlIHRo YXQgcnVubmluZyBRRU1VIGFzIG5vbi1yb290IGNhdXNlcyBzZXZlcmFsIGZlYXR1cmVzIGxpa2UK LW1pZ3JhdGlvbiBhbmQgUENJIHBhc3N0aHJvdWdoIHRvIG5vdCB3b3JrIHByb3Blcmx5IGFuZCBt YXkgcHJldmVudCB0aGUgZ3Vlc3QKLWZyb20gYm9vdGluZy4KLS0gCjIuMTkuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=