From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: Re: [PATCH] docs/qemu-deprivilege: Revise and update with status and future plans Date: Tue, 27 Mar 2018 14:33:11 +0100 Message-ID: <23226.18455.602635.161530@mariner.uk.xensource.com> References: <20180322182437.936-1-george.dunlap@citrix.com> <23225.8997.574938.415857@mariner.uk.xensource.com> <87f60317-7913-a3ad-58eb-59928b8d7d61@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1f0ojq-0006ER-Lk for xen-devel@lists.xenproject.org; Tue, 27 Mar 2018 13:34:10 +0000 In-Reply-To: <87f60317-7913-a3ad-58eb-59928b8d7d61@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: George Dunlap Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Tim Deegan , Ross Lagerwall , Julien Grall , Jan Beulich , Anthony Perard , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org R2VvcmdlIER1bmxhcCB3cml0ZXMgKCJSZTogW1BBVENIXSBkb2NzL3FlbXUtZGVwcml2aWxlZ2U6 IFJldmlzZSBhbmQgdXBkYXRlIHdpdGggc3RhdHVzIGFuZCBmdXR1cmUgcGxhbnMiKToKPiBBY3R1 YWxseSBJIHRoaW5rIG1vc3Qgb2YgdGhlIHVzZXItZmFjaW5nIHN0dWZmIGFscmVhZHkgaW4geGwu Y2ZnIGlzCj4gaW5hcHByb3ByaWF0ZSBmb3IgdGhhdCBtYW4gcGFnZS4gIEl0IG1pZ2h0IG1ha2Ug c2Vuc2UgdG8gaGF2ZSBhIHNlcGFyYXRlCj4gbWFuIHBhZ2UgZm9yIGl0LgoKSSB3b3VsZG4ndCBv YmplY3QgdG8gdGhhdC4KCj4gT24gMDMvMjYvMjAxOCAwNTo0MyBQTSwgSWFuIEphY2tzb24gd3Jv dGU6Cj4gPiBOby4gIEZpcnN0bHksIGluIGVhY2ggY2FzZSwgYWxsIHJlbGV2YW50IGRlc2NyaXB0 b3JzIGFyZSByZXN0cmljdGVkLgo+ID4gVGhpcyBpcyB0aGUgcHVycG9zZSBvZiB0aGUgeGVudG9v bGNvcmVfX3Jlc3RyaWN0Xyogc3R1ZmYuICBTZWNvbmRseSwKPiA+IHhlbnN0b3JlICppcyogY292 ZXJlZCAtIGJ1dCB0aGUgeHMgZmQgaXMgc3F1YXNoZWQgc28gYXMgdG8gYmUgdG90YWxseQo+ID4g dW51c2VhYmxlOiB4cy5jIHVzZXMgeGVudG9vbGNvcmVfX3Jlc3RyaWN0X2J5X2R1cDJfbnVsbC4K PiAKPiBSb3NzIGFscmVhZHkgZ2F2ZSBtZSBzb21lIGNvcnJlY3Rpb25zIG9uIHRoaXM7IGhlcmUg aXMgd2hhdCBJIGhhdmU6Cj4gCj4gODwtLS0KPiAnJydEZXNjcmlwdGlvbicnJzogQ2xvc2UgYW5k IHJlc3RyaWN0IFhlbi1yZWxhdGVkIGZpbGUgZGVzY3JpcHRvcnMuCj4gU3BlY2lmaWNhbGx5Ogo+ ICAqIENsb3NlIGFsbCB4ZW5zdG9yZS1yZWxhdGVkIGZpbGUgZGVzY3JpcHRvcnMKPiAgKiBNYWtl IHN1cmUgdGhhdCBleHRyYW5lb3VzIGBwcml2Y21kYCBhbmQgYGV2dGNobmAgaW5zdGFuY2VzIGFy ZQo+IGNsb3NlZAo+ICAqIE1ha2Ugc3VyZSB0aGF0IGFsbCBvcGVuIGluc3RhbmNlcyBvZiBgcHJp dmNtZGAgYW5kIGBldnRjaG5gIGZpbGUKPiBkZXNjcmlwdG9ycyBoYXZlIGhhZCBJT0NUTF9QUklW Q01EX1JFU1RSSUNUIGFuZAo+IElPQ1RMX0VWVENITl9SRVNUUklDVF9ET01JRCBpb2N0bHMgY2Fs bGVkIG9uIHRoZW0sIHJlc3BlY3RpdmVseS4KPiAtLS0+OAo+IAo+IEl0IHNvdW5kcyBsaWtlIHRo ZSBsYXN0IG1heSBiZSBpbmFjY3VyYXRlIGZvciBsaWJ4bD8KCkkgZG9uJ3QgdGhpbmsgYW55dGhp bmcgY2xvc2VzIGFueSBleHRyYW5lb3VzIGZkcy4gIE15IGFwcHJvYWNoIGluCnRoZSBsaWJ4YyBs YXllciB3YXMgdG8gcmVnaXN0ZXIgYWxsIGZkcyBhbmQgaGF2ZSB0aGUgcmVzdHJpY3QgY2FsbApp dGVyYXRlIG92ZXIgYWxsIG9mIHRoZW0uICBTbywgSSBndWVzcywgZHJvcCB5b3VyIDJuZCBidWxs ZXQuCgpBbGwgb2YgdGhpcyBpcyBkb25lIGJ5IHFlbXUgY2FsbGluZyB4ZW50b29sY29yZV9yZXN0 cmljdF9hbGwsIG5vdCBieQpsaWJ4bC4KCk1heWJlIHRoZSAiZXh0cmFuZW91cyBwcml2Y21kIGFu ZCBldnRjaG4gZmRzIiBSb3NzIG1lYW5zIGFyZSBvbmVzCmluaGVyaXRlZCBieSBxZW11IGZyb20g dGhlIHRvb2xzdGFjay4gIEhybS4gIE5vdyBJIHdhbnQgdG8gdHJ5IHRvIG1ha2UKYW4gYXJndW1l bnQgdGhhdCBubyBzdWNoIGZkcyBhcmUgbGVha2VkIGludG8gcWVtdSBzdWJwcm9jZXNzZXMgYnkK bGlieGwgYnV0IEkgZG9uJ3QgdGhpbmsgaXQncyB0cml2aWFsIHRvIGRvIHNvLiAgSXQgbWF5IG5v dCBiZSB0cnVlCmV2ZW4gaW4gdGhlIHVzdWFsIGNhc2UgYnV0IEkgYWxzbyB3b3JyeSBhYm91dCBy YWNlcyBpbiBoaWdoZXIgbGF5ZXJzCnRoYXQgY2FsbCBsaWJ4bCBpbiBtdWx0aXBsZSB0aHJlYWRz IHdpdGggbXVsdGlwbGUgY3R4J3MgY29uY3VycmVudGx5CmFuZCB3aGljaCBtaWdodCB0aGVyZWZv cmUgZW5kIHVwIGZvcmtpbmcgZm9yIGEgcWVtdSB3aGlsZSBhbm90aGVyCnRocmVhZCBpcyBvcGVu aW5nIHByaXZjbWQuCgpTb3J0aW5nIHRoaXMgb3V0IG5lZWRzIHRvIGdvIG9uIHlvdXIgdG9kbyBs aXN0IDotLy4KCj4gPj4gKyMjIyBOYW1lc3BhY2VzIGZvciB1bnVzZWQgZnVuY3Rpb25hbGl0eQou Li4KPiA+PiArICAgIHVuc2hhcmUoQ0xPTkVfTkVXTlMgfCBDTE9ORV9ORVdJUEMpCj4gPiAKPiA+ IFRoaXMgd291bGQgbWVhbiB3ZSB3b3VsZCBoYXZlIHRvIHBhc3MgcWVtdSBmZHMgZm9yIGJvdGgg dGhlIG5ldHdvcmsKPiA+IHRhcCBkZXZpY2VzIGFuZCBhbnkgdm5jIGNvbnNvbGVzLiAgVGhhdCBt YWtlcyBsaWZlIGNvbnNpZGVyYWJseSBtb3JlCj4gPiBjb21wbGljYXRlZC4gIEkgdGhpbmsgd2Ug c2hvdWxkIHBlcmhhcHMgcmV2aXNpdCB0aGlzIHVwc3RyZWFtLgo+IAo+IFlvdSBoYXZlbid0IHJl YWQgdGhpcyB2ZXJ5IGNhcmVmdWxseSAobm9yIGRvIHlvdSBzZWVtIHRvIGhhdmUgcmVhZCB0aGUK PiBkaXNjdXNzaW9uIHdpdGggUm9zcyBiZWZvcmUgcmVzcG9uZGluZykuICBJIHNwbGl0IHRoZSAi TmFtZXNwYWNlcyIKPiByZXN0cmljdGlvbiBSb3NzIHN1Z2dlc3RlZCBpbnRlcm5hbGx5IHRvIHVz IGludG8gdHdvIHBhcnRzOgo+ICAtIE5hbWVzcGFjZSByZXN0cmljdGlvbnMgZm9yIHVudXNlZCBm dW5jdGlvbmFsaXR5Cj4gIC0gTmV0d29yayBuYW1lc3BhY2luZwoKT2gsIHNvcnJ5LiAgWWVzLgoK PiBJbiBmYWN0LCBJIHdhcyB3b25kZXJpbmcgaWYgaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBkbyAq YWxsKiB0aGUKPiBkZXByaXZpbGVnaW5nIGluIGEgc2VwYXJhdGUgcHJvY2VzcyBiZWZvcmUgc3Rh cnRpbmcgcWVtdS4gIFRoYXQgd291bGQKPiBtYWtlIGl0IHNpbXBsZSwgZm9yIGV4YW1wbGUsIHRv IHdyaXRlIGEgdGVzdCBwcm9ncmFtIHdoaWNoIHdvdWxkIHRyeSB0bwo+IGJyZWFrIG91dCBvZiB0 aGUgImphaWwiIHdlJ2QgcHV0IGl0IGluLgoKSSB0aGluayB0aGlzIHdvdWxkIGJlIGEgbG90IG9m IHRyb3VibGUgYmVjYXVzZSB3ZSdkIGhhdmUgdG8gcGFzcwpwcmUtcmVzdHJpY3RlZCBwcml2Y21k IGZkcyBpbnRvIHFlbXUgYW5kIHN0dWZmIHRoZW0gaW50byBsaWJ4YyBldCBhbC4KSXQgd291bGQg bWVhbiBmaXhpbmcgYSBsb3Qgb2YgcmVkdW5kYW50IGhhbmRsZSBvcGVuaW5nIHdoaWNoIGlzCmN1 cnJlbnRseSBoYXJtbGVzcy4KCj4gPj4gK090aGVyIHRoaW5ncyB0aGF0IHdvdWxkIHRha2Ugc29t ZSBjbGV2ZXJuZXNzIC8gY2hhbmdlcyB0byBRRU1VIHRvCj4gPj4gK3V0aWxpemUgZHVlIHRvIG9y ZGVyaW5nIGNvbnN0cmFudHM6Cj4gPj4gKyAtIFJMSU1JVF9OUFJPQyAoYWZ0ZXIgdWlkIGNoYW5n ZXMgdG8gYSB1bmlxdWUgdWlkKQo+ID4+ICsgLSBSTElNSVRfTk9GSUxFUyAoYWZ0ZXIgYWxsIG5l Y2Vzc2FyeSBmaWxlcyBhcmUgb3BlbmVkKQo+ID4gCj4gPiBJIHRoaW5rIHRoZXJlIGlzIGxpdHRs ZSBkaWZmaWN1bHR5IHdpdGggUkxJTUlUX05QUk9DIHNpbmNlIG91ciBxZW11Cj4gPiBkb2VzIG5v dCBmb3JrLiAgSSB0aGluayB3ZSBjYW4gc2V0IGl0IHRvIGEgdmFsdWUgd2hpY2ggaXMgY3VycmVu dGx5Cj4gPiB2aW9sYXRlZCBmb3IgdGhlIGN1cnJlbnQgdWlkID8KPiAKPiBXZWxsIEFGQUlDVCBj bGFzc2ljIFBPU0lYIGFsbG93cyB5b3UgdG8gc2V0IHJsaW1pdHMgb24geW91cnNlbGYsIGJ1dCBu b3QKPiBvbiBhbm90aGVyIHByb2Nlc3MuICBTaW5jZSB0aGlzIGlzIG9uIHRoZSAqdXNlciBpZCog cmF0aGVyIHRoYW4gdGhlCj4gKnByb2Nlc3MqLCBJIGRpZG4ndCB0aGluayAic2V0cmxpbWl0IFth cyByb290XSAtPiBleGVjIC0+IHNldHVpZCIgd291bGQKPiB3b3JrIGNvcnJlY3RseTsgSSBhc3N1 bWVkIHlvdSdkIGhhdmUgdG8gaGF2ZSAiZXhlYyAtPiBzZXR1aWQgLT4KPiBzZXRybGltaXQiLCB3 aGljaCB3b3VsZCByZXF1aXJlIGZ1cnRoZXIgY2hhbmdlcyB0byBRRU1VLgoKcmxpbWl0cyBhcmUg YSBwcm9jZXNzIHByb3BlcnR5LgoKSSdtIHF1aXRlIGFsYXJtZWQgYnkgdGhlIHBhdGNoIGJ5IE5l aWwgQnJvd24gaW4geW91ciBmaXJzdCBsaW5rIHRoYXQKc2V0dWlkIHNob3VsZCBmYWlsIGlmIGl0 IHdvdWxkIGNhdXNlIFJMSU1JVF9OUFJPQyB0byBiZSB2aW9sYXRlZCBmb3IKdGhpcyBwcm9jZXNz IGluIHRoZSBjb250ZXh0IG9mIHRoZSBuZXcgdWlkICEgIFRoZSBkaWZmaWN1bHRpZXMKZGlzY3Vz c2VkIG9uIHlvdXIgMm5kIGxpbmsgd2VyZSBpbW1lZGlhdGVseSBvYnZpb3VzIHRvIG1lIG9uIHJl YWRpbmcKdGhlIGZpcnN0IG9uZS4KCkFGQUlDVCBmcm9tIHRoZSBhcnRpY2xlIExpbnV4IG5vdyBk b2VzIG5vdCBjaGVjayBSTElNSVRfTlBST0MgZHVyaW5nCnNldHVpZCwgbm9yIGR1cmluZyBleGVj dmUuICBJIHRoaW5rIHRoYXQgaXMgY29ycmVjdCBiZWhhdmlvdXIuCgo+IEkgbm93IHJlYWxpemUg dGhhdCBpdCBtaWdodCBiZSB0aGF0IHRoZSBsaW1pdCB3aWxsIGZvbGxvdyB0aGUgY3VycmVudAo+ IHVpZCBvZiB0aGUgcHJvY2VzcywgaW4gd2hpY2ggY2FzZSAic2V0cmxpbWl0IC0+IHNldHVpZCIg bWlnaHQgaGF2ZSB0aGUKPiBleHBlY3RlZCBiZWhhdmlvci4gIEJ1dCBhIHF1aWNrIEdvb2dsZSBz ZWFyY2ggc2hvd3MgdGhhdCB0aGUgaW50ZXJhY3Rpb24KPiBvZiBSTElNSVRfTlBST0MgYW5kIHNl dHVpZCgpIGlzIHRyaWNreVsxXVsyXSwgYW5kIG1heSB2YXJ5IGZyb20KPiBpbXBsZW1lbnRhdGlv biB0byBpbXBsZW1lbnRhdGlvbjsgcmVseWluZyBvbiB0aGUgaW50ZXJhY3Rpb24gdG8gYmUKPiBj b3JyZWN0IChhbmQgc3RheSBjb3JyZWN0KSBzZWVtcyBzb21ld2hhdCByaXNreSAodW5sZXNzIFBP U0lYIGhhcwo+IGV4cGxpY2l0bHkgZG9jdW1lbnRlZCB3aGF0IHNob3VsZCBoYXBwZW4gaW4gdGhh dCBjYXNlLCB3aGljaCBhZ2FpbiBhCj4gcXVpY2sgR29vZ2xlIHNlYXJjaCBoYXNuJ3QgdHVybmVk IHVwKS4KClJMSU1JVF9OUFJPQyBpcyBub3QgaW4gU3VTOgogaHR0cDovL3B1YnMub3Blbmdyb3Vw Lm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvZnVuY3Rpb25zL3NldHJsaW1pdC5odG1sCgpGcmVl QlNEIGRvZXMgbm90IGhhdmUgYW55IG9mIHRoaXMgbWFkbmVzczoKIGh0dHBzOi8vd3d3LnVuaXgu Y29tL21hbi1wYWdlL2ZyZWVic2QvMi9zZXR1aWQvCgpBbnl3YXkgSU1PIHdlIHNob3VsZCBzZXQg UkxJTUlUX05QUk9DIGFmdGVyIGZvcmsgYW5kIGJlZm9yZSBleGVjdmUuCklmIHRoaXMgY2F1c2Vz IHNldHVpZCB0byBmYWlsIGluIHFlbXUsIHFlbXUgd2lsbCBjcmFzaC4gIEJ1dCB0aGlzCmNvdWxk IG9ubHkgYmUgdGhlIGNhc2UgaWYgdGhlIG5ldyB1aWQgYWxyZWFkeSBoYXMgb3RoZXIgcHJvY2Vz c2VzLAp3aGljaCBpdCBzaG91bGRuJ3QgZG8uICAoSWYgaXQgZG9lcywgdGhlIG5ldyB1aWQgaXMg cHJvYmFibHkKY29udGFtaW5hdGVkIGJ5IGEgcHJldmlvdXMgZG9tYWluIHdpdGggdGhlIHNhbWUg ZG9taWQuKQoKSWYgdGhlIGtlcm5lbCBpcyBhIHZlcnNpb24gb2YgTGludXggd2l0aCB0aGUgZXhl Y3ZlIFJMSU1JVF9OUFJPQwpjaGVjaywgdGhlbiBleGVjdmUgd2lsbCBmYWlsIGJlY2F1c2UgdGhl cmUgd2lsbCBiZSBtYW55IG1vcmUgcHJvY2Vzc2VzCnRoYW4gcm9vdCdzIFJMSU1JVF9OUFJPQy4g IEkgcHJvcG9zZSB0byB0cmVhdCB0aGF0IGFzIGEgYnVnIGluIExpbnV4LgoKPiBMaW51eCBkb2Vz IHNlZW0gdG8gaGF2ZSBhICJzZXQgcmxpbWl0IG9uIGFub3RoZXIgcHJvY2VzcyIgc3lzdGVtIGNh bGwKPiAocHJsaW1pdCkuICBCdXQgdGhhdCB3b3VsZCBzdGlsbCByZXF1aXJlIGF0IGxlYXN0IGEg bGl0dGxlIGJpdCBvZiBjYXJlLAo+IGFzIHRoZW4gd2UnZCBuZWVkIHRvIHNldCB0aGUgbGltaXQg YWZ0ZXIgdGhlIHNldHVpZCBidXQgYmVmb3JlIHRoZSBndWVzdAo+IHN0YXJ0ZWQgcnVubmluZy4g IEFuZCBpbiBhbnkgY2FzZSBJIGNvdWxkbid0IChhZ2FpbiBpbiBhIHF1aWNrIHNlYXJjaCkKPiBk aXNjb3ZlciB0aGF0IEZyZWVCU0QgaGFzIHN1Y2ggYSBzeXN0ZW0gY2FsbCAoYW5kIHdvcmtpbmcg Y29ycmVjdGx5IG9uCj4gRnJlZUJTRCBzZWVtcyB0byBiZSBhIGRlc2lnbiBnb2FsKS4KClllcy4K Cj4gPj4gKyMjIyBsaWJ4bCBVSUQgY2xlYW51cAo+ID4gLi4uCj4gPj4gK2tpbGwoLTEsc2lnKSBz ZW5kcyBhIHNpZ25hbCB0byAiZXZlcnkgcHJvY2VzcyB0byB3aGljaCB0aGUgY2FsbGluZwo+ID4+ ICtwcm9jZXNzIGhhcyBwZXJtaXNzaW9uIHRvIHNlbmQgYSBzaWduYWwiLiAgU28gaW4gdGhlb3J5 Ogo+ID4+ICsgIHNldHVpZChYKQo+ID4+ICsgIGtpbGwoLTEsS0lMTCkKPiA+PiArc2hvdWxkIGRv IHRoZSB0cmljay4KPiA+IAo+ID4gV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIGEgbWFsaWNpb3Vz IHFlbXUgcHJvY2VzcyBjb3VsZCBraWxsIHRoaXMKPiA+IG9uZS4KPiAKPiBIbW0sIGluIHRoZW9y eSBpdCBwcm9iYWJseSBjb3VsZC4KCkkgY291bGQgZmluZCBub3RoaW5nIGluIFN1UyBleHBsYWlu aW5nIHdoZW4gcHJvY2VzcyBBIG1heSBzZW5kIHNpZ25hbHMKdG8gcHJvY2VzcyBCLiAgU28gSSBy ZXNvcnRlZCB0byB0aGUgQlNEIG1hbnBhZ2VzOgoKICBodHRwczovL3d3dy51bml4LmNvbS9tYW4t cGFnZS9mcmVlYnNkLzIva2lsbC8KCiAgRm9yIGEgcHJvY2VzcyB0byBoYXZlIHBlcm1pc3Npb24g dG8gc2VuZCBhIHNpZ25hbCB0byBhIHByb2Nlc3MKICBkZXNpZ25hdGVkIGJ5IHBpZCwgdGhlIHVz ZXIgbXVzdCBiZSB0aGUgc3VwZXItdXNlciwgb3IgdGhlIHJlYWwgb3IKICBzYXZlZCB1c2VyIElE IG9mIHRoZSByZWNlaXZpbmcgcHJvY2VzcyBtdXN0IG1hdGNoIHRoZSByZWFsIG9yCiAgZWZmZWN0 aXZlIHVzZXIgSUQgb2YgdGhlIHNlbmRpbmcgcHJvY2Vzcy4KCkFsc28ga2lsbCgtMSwpIGRvZXMg bm90IHNpZ25hbCB0aGUgc2VuZGVyLgoKSSBkaWQgc29tZSB3ZWIgc2VhcmNoZXMgaG9waW5nIHRv IGZpbmQgc29tZW9uZSBoYWQgYWxyZWFkeSBzb2x2ZWQKdGhpcy4gIFRoZSBiZXN0IGRpc2N1c3Np b24gaXMgaGVyZQogIGh0dHBzOi8vd3d3LnVuaXguY29tL3VuaXgtZm9yLWFkdmFuY2VkLWFuZC1l eHBlcnQtdXNlcnMvMTY4MzY0LWtpbGwtYWxsLXByb2Nlc3MtdWlkLmh0bWwKYnV0IHRoZSBwcm9w b3NlZCBhbnN3ZXIgZG9lc24ndCB3b3JrIGJlY2F1c2UgdGhlIGtpbGwgd291bGQga2lsbCBsb3Rz Cm9mIHJvb3QgcHJvY2Vzc2VzLgoKTXkgYW5hbHlzaXM6CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBldWlkICAgcnVpZCAgIHN1aWQKCiAgY29tcGFyZWQgZm9yIHJl Y2VpdmluZyBwcm9jZXNzICAgICAgICAgICAgICAgICA9PT09ICAgPT09PQogIGNvbXBhcmVkIGZv ciBzZW5kaW5nIHByb2Nlc3MgICAgICAgICAgICA9PT09ICAgPT09PQoKICBwb3NzaWJsZSByb2d1 ZSBwcm9jZXNzZXMgICAgICAgICAgICAgICAgcWlkICAgIHFpZCAgICBxaWQKCiAgdW5yZWxhdGVk IHJvb3Rpc2ggcHJvY2Vzc2VzICAgICAgICAgICAgIDAgICAgICBhbnkgICAgYW55CiAgICAgb3Ig ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueSAgICAwICAgICAgYW55CiAgICAg b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueSAgICBhbnkgICAgMAoKICBr aWxsZXIgKG91ciBwZXQgaXNzdWluZyBraWxsKQogICAgIHNvIHJvZ3VlcyBjYW4ndCBraWxsIGtp bGxlciAgICAgICAgICAgICAgICAgIT1xaWQgICE9cWlkCiAgICAgc28gaXQgZG9lc24ndCBraWxs IHJhbmRvbWx5ICAgICAgICAgICE9MCAgICAhPTAKICAgICB0aGVyZWZvcmU6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgcWlkICAgIHBldCAgICAwCgpXZSB3aWxsIGhhdmUgdG8gcmVzZXJ2ZSBv bmUgdWlkIGBwZXQnIHNwZWNpYWxseSBmb3IgdGhpcyBub25zZW5zZS4gIFdlCmNhbGwgc2V0cmVz dWlkKDIpIHRvIHN3aXRjaCB1aWRzLCBhbmQgdGhlbiBraWxsKC0xLDkpIGFuZCBfZXhpdCgwKS4K VGhlIGtpbGwoKSBjYWxsIHdpbGwga2lsbCBvdGhlciBwcm9jZXNzZXMgd2l0aCB1aWQgYHBldCcu ICBTbyB3ZSB0YWtlCmEgZ2xvYmFsIGxvY2sgd2hpbGUgd2UgZG8gdGhpcy4KCmBwZXQnIGNvdWxk IGJlIGEgdWlkIGFzc29jaWF0ZWQgd2l0aCBhIHJlc2VydmVkIGRvbWlkLCBlZyBkb20wLgoKSWFu LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==