From mboxrd@z Thu Jan 1 00:00:00 1970 From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman) Subject: Re: [PATCH 1/4] proc.5: Document /proc/[pid]/uid_map and /proc/[pid]/gid_map Date: Fri, 28 Dec 2012 13:20:32 -0800 Message-ID: <87vcbldgbj.fsf@xmission.com> References: <87a9u4rmz0.fsf@xmission.com> <874nkbrhyv.fsf@xmission.com> <87obhfxwhb.fsf@xmission.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: (Michael Kerrisk's message of "Fri, 28 Dec 2012 20:20:15 +0100") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Linux API , Linux Containers List-Id: containers.vger.kernel.org Ik1pY2hhZWwgS2VycmlzayAobWFuLXBhZ2VzKSIgPG10ay5tYW5wYWdlc0BnbWFpbC5jb20+IHdy aXRlczoKCj4gSGkgRXJpYywKPgo+IE9uIFRodSwgRGVjIDI3LCAyMDEyIGF0IDU6NTggUE0sIEVy aWMgVy4gQmllZGVybWFuCj4gPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4gd3JvdGU6Cj4+ICJNaWNo YWVsIEtlcnJpc2sgKG1hbi1wYWdlcykiIDxtdGsubWFucGFnZXNAZ21haWwuY29tPiB3cml0ZXM6 Cj4+Cj4+PiBIaSBFcmljLAo+Pj4KPj4+IFRoYW5rcyBmb3IgdGhpcyBwYXRjaC4gSSBoYXZlIG9u ZSBxdWVzdGlvbiBhbmQgYSByZXZpc2VkIHZlcnNpb24gZiB0aGUKPj4+IHRleHQgdGhhdCBJJ2Qg bGlrZSB5b3UgdG8gcmV2aWV3Lgo+Pj4KPj4+IE9uIFR1ZSwgTm92IDI3LCAyMDEyIGF0IDE6NDYg QU0sIEVyaWMgVy4gQmllZGVybWFuCj4+PiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPiB3cm90ZToK Pj4+Pgo+Pj4+IERvY3VtZW50IHRoZSB1c2VyIG5hbWVzcGFjZSBmaWxlcyB0aGF0IHJlcG9ydCB0 aGUgbWFwcGluZyBvZiB1aWRzCj4+Pj4gYW5kIGdpZHMgYmV0d2VlbiB1c2VyIG5hbWVzcGFjZXMu Cj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4 bWlzc2lvbi5jb20+Cj4+Pj4gLS0tCj4+Pj4gIG1hbjUvcHJvYy41IHwgICA1MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4+ICAxIGZpbGVzIGNo YW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0t Z2l0IGEvbWFuNS9wcm9jLjUgYi9tYW41L3Byb2MuNQo+Pj4+IGluZGV4IGZiNzBkMmIuLjg0MDQ4 MGQgMTAwNjQ0Cj4+Pj4gLS0tIGEvbWFuNS9wcm9jLjUKPj4+PiArKysgYi9tYW41L3Byb2MuNQo+ Pj4+IEBAIC0zMTcsNiArMzE3LDMxIEBAIFRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSBhcmUg cmVhZGFibGUgb25seSBieSB0aGUgb3duZXIgb2YgdGhlIHByb2Nlc3MuCj4+Pj4gIC5cIiAuVFAK Pj4+PiAgLlwiIC5JUiAvcHJvYy9bcGlkXS9pbyAiIChzaW5jZSBrZXJuZWwgMi42LjIwKSIKPj4+ PiAgLlRQCj4+Pj4gKy5JUiAvcHJvYy9bcGlkXS9naWRfbWFwICIgKHNpbmNlIGtlcm5lbCAzLjYp Igo+Pj4+ICtUaGlzIGZpbGUgcmVwb3J0cyB0aGUgbWFwcGluZyBvZiBnaWRzIGZyb20gdGhlIHVz ZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHNwZWNpZmllZCBieQo+Pj4+ICsuSVIgcGlkCj4+ Pj4gK3RvIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgcHJvY2VzcyB0aGF0IG9wZW5lZAo+Pj4+ ICsuSVIgL3Byb2MvW3BpZF0vZ2lkX21hcCAuCj4+Pj4gKwo+Pj4+ICtFYWNoIGxpbmUgc3BlY2lm aWVzIGEgMSB0byAxIG1hcHBpbmcgb2YgYSByYW5nZSBvZiBjb250aWd1b3VzIGdpZHMgZnJvbQo+ Pj4+ICt0aGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIHByb2Nlc3Mgc3BlY2lmaWVkIGJ5Cj4+Pj4g Ky5JUiBwaWQKPj4+PiArdG8gdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHRoYXQg b3BlbmVkCj4+Pj4gKy5JUiAvcHJvYy9bcGlkXS9naWRfbWFwLgo+Pj4KPj4+IEkgd2FudCB0byBj aGVjayB0aGUgYWJvdmUgcG9pbnQuIFdoYXQgZG8geW91IG1lYW4gYnkgInRoZSBwcm9jZXNzIHRo YXQKPj4+IG9wZW5lZCB1aWRfbWFwIj8gRG9lcyB0aGF0IG1lYW4gdGhlIHByb2Nlc3MgdGhhdCBv cGVuZWQgdWlkX21hcCB0byBkbwo+Pj4gdGhlIG9uZS10aW1lIHdyaXRlIG9mIHRoZSBVSUQgbWFw PyBJIGhhZCBhc3N1bWVkIHRoYXQgdWlkX21hcCBhY3R1YWxseQo+Pj4gcHJvdmlkZWQgYSBtYXBw aW5nIGJldHdlZW4gdGhlIG5hbWVzcGFjZSBvZiAncGlkJyBhbmQgdGhlICdwYXJlbnQnCj4+PiBu YW1lc3BhY2UsIHdoZXJlIHRoZSBwYXJlbnQgbmFtZXNwYWNlIGlzIHRoZSBuYW1lc3BhY2Ugb2Yg dGhlIHByb2Nlc3MKPj4+IHRoYXQgY3JlYXRlZCB0aGlzIG5hbWVzcGFjZSB2aWEgY2xvbmUoQ0xP TkVfTkVXVVNFUikuCj4+Cj4+IEkgbWVhbiB0aGUgcHJvY2VzcyB0aGF0IG9wZW5zIHVpZF9tYXAg Zm9yIHJlYWQgb3Igd3JpdGUuCj4KPiBUaGFua3MgZm9yIHRoZSBjb25maXJtYXRpb24uCj4KPj4g Rm9yIHdyaXRpbmcgeW91IGFyZSBjb3JyZWN0IGFib3V0IHRoZSBtYXBwaW5nIHRvIHRoZSBwYXJl bnQgKGJ1dCB0aGF0IGlzCj4+IG5vdCBhbiBleGNlcHRpb24gdGhhdCBpcyBhIHJlc3RyaWN0aW9u IG9uIHdobyBjYW4gd3JpdGUgdG8gdGhlIGZpbGUpLgo+Cj4gU28sIGJ5IHRoZSB3YXksIEkgYWRk ZWQgdGhpcyBzZW50ZW5jZSB0byB0aGUgcGFnZToKPgo+ICAgICAgICAgICAgICAgSW4gICBvcmRl ciAgIHRvICAgd3JpdGUgICB0byAgIHRoZSAgIC9wcm9jL1twaWRdL3VpZF9tYXAKPiAgICAgICAg ICAgICAgICgvcHJvYy9bcGlkXS9naWRfbWFwKSBmaWxlLCAgYSAgcHJvY2VzcyAgbXVzdCAgaGF2 ZSAgdGhlCj4gICAgICAgICAgICAgICBDQVBfU0VUVUlEIChDQVBfU0VUR0lEKSBjYXBhYmlsaXR5 IGluIHRoZSB1c2VyIG5hbWVzcGFjZQo+ICAgICAgICAgICAgICAgb2YgdGhlIHByb2Nlc3MgcGlk Lgo+Cj4gSXMgdGhhdCBjb3JyZWN0PwoKWWVzLgoKPiBCdXQsIHRoZXJlIGFwcGVhciB0byBiZSBt b3JlIHJ1bGVzIHRoYW4gdGhpcyBnb3Zlcm5pbmcgd2hldGhlciBhCj4gcHJvY2VzcyBjYW4gd3Jp dGUgdG8gdGhlIGZpbGUgKGkuZS4sIHZhcmlvdXMgb3RoZXIgLUVQRVJNIGNhc2VzKS4gV2hhdAo+ IGFyZSB0aGUgcnVsZXM/CgpJbiBnZW5lcmFsIHlvdSBtdXN0IGFsc28gaGF2ZSBDQVBfU0VUVUlE IChDQVBfU0VUR0lEKSBpbiB0aGUgcGFyZW50IHVzZXIKbmFtZXNwYWNlIGFzIHdlbGwuICBUaGUg b25lIGV4Y2VwdGlvbiB0byB0aGF0IGlzIGlmIHlvdSBhcmUgbWFwcGluZwp5b3VyIGN1cnJlbnQg dWlkIGFuZCBnaWQuICAgIEEgcm9zZSBieSBhbnkgb3RoZXIgbmFtZSB3aWxsIHNtZWxsIGFzCnN3 ZWV0LiAgSW4gcHJhY3RpY2UgdGhpcyBtZWFucyB5b3UgbXVzdCBiZSByb290IHRvIG1hcCB0byB1 aWQgb3IgZ2lkcwpvdGhlciB0aGFuIHlvdXIgb3duLCB3aGljaCBwcmVzZXJ2ZXMgdGhlIGN1cnJl bnQgbGltaXRzIG9uIHNldHVpZCBhbmQKc2V0Z2lkLgoKQWRkaXRpb25hbGx5IHRoZSB3cml0ZXIg bXVzdCBzZWUgdGhlIG1hcCBmaWxlIHdpdGggdGhlIGxvd2VyIHVzZXIKbmFtZXNwYWNlIGJlaW5n IHRoZSBwYXJlbnQgdXNlciBuYW1lc3BhY2UuICBXaGljaCBtZWFucyB5b3UgbXVzdCBiZQppbnNp ZGUgdGhlIHVzZXIgbmFtZXNwYWNlIGl0c2VsZiBvciBpbiB0aGUgcGFyZW50IHVzZXIgbmFtZXNw YWNlIHRvCndyaXRlIHRvIHRoZSB1c2VyIG5hbWVzcGFjZXMgbWFwcGluZyBmaWxlLgoKRm9yIC9w cm9jL1twaWRdL3Byb2ppZF9tYXAgd2hpY2ggd2lsbCBiZSBpbnRlcmVzdGluZyBvbmNlIHhmcwpo YXMga3VpZC9rZ2lkIHN1cHBvcnQgdGhlcmUgYXJlIG5vIGNhcGFiaWxpdHkgY2hlY2tzIGJlY2F1 c2UgeGZzIGxldCdzCmFueW9uZSBoYXZlIGFueSBwcm9qaWQuCgpUaGlzIGlzIG9uZSBvZiB0aGUg ZmV3IGNhc2VzIHdoZXJlIGl0IGFsbW9zdCBtYXR0ZXJzIHRvIHVuZGVyc3RhbmQKaG93IG5zX2Nh cGFibGUgd29ya3Mgd2hlbiB5b3UgYXJlIG5vdCBpbiB0aGUgdXNlciBuYW1lc3BhY2UgaW4gcXVl c3Rpb24sCmFuZCB0aGF0IGdvZXMgdG8gd2hhdCBpcyBhIHBhcmVudCB1c2VyIG5hbWVzcGFjZS4g IElmIHlvdSB3b3VsZCBsaWtlCnNvbWUgbW9yZSBkZXRhaWwgb24gdGhhdCBwbGVhc2UgYXNrLgoK Pj4gVGhlIGNvbXBsZXRlIHJ1bGUgaXMgZm9yIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgc2Vj b25kIHZhbHVlIGlzOgo+Pgo+PiAtIElmIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgb3BlbmVy IG9mIHRoZSBmaWxlIGFuZCB0aGUgdXNlciBuYW1lc3BhY2UKPj4gICBvZiB0aGUgcHJvY2VzcyBk byBub3QgbWF0Y2guICBUaGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIG9wZW5lciBvZiB0aGUKPj4g ICBmaWxlIGlzIHVzZWQuCj4+Cj4+IC0gSWYgdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBvcGVu ZXIgb2YgdGhlIGZpbGUgYW5kIHRoZSB1c2VyIG5hbWVzcGFjZQo+PiAgIG9mIHRoZSBwcm9jZXNz IGFyZSB0aGUgc2FtZS4gIFRoZSBwYXJlbnQgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIHByb2Nlc3MK Pj4gICBpcyB1c2VkIGZvciB0aGUgc2Vjb25kIHZhbHVlLgo+Cj4gQ291bGQgeW91IGdpdmUgYW4g ZXhhbXBsZSBvZiB0aGUgbGFzdCBjYXNlPyAoV2hhdCBJJ20gcmVhbGx5IHNlZWtpbmcsCj4gSSB0 aGluaywgaXMgY2xhcmlmaWNhdGlvbiBvZiAicGFyZW50IHVzZXIgbmFtZXNwYWNlIi4gRG9lcyB0 aGF0IG1lYW4KPiAidXNlciBuYW1lc3BhY2Ugb2YgdGhlIHByb2Nlc3MgdGhhdCBjcmVhdGVkIHRo ZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGlzCj4gcHJvY2VzcyI/KQoKVXNlciBuYW1lc3BhY2VzIGZv cm0gYSB0cmVlLiAgV2hhdCB5b3UgY2FuIGRvIGluIG9uZSB1c2VyIG5hbWVzcGFjZSBpcyBhCnN1 YnNldCBvZiB3aGF0IHlvdSBjYW4gZG8gaW4gdGhlIHBhcmVudCB1c2VyIG5hbWVzcGFjZS4KClRo ZSBwYXJlbnQgdXNlciBuYW1lc3BhY2UgaXMgdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9j ZXNzIHRoYXQKY2FsbHMgdW5zaGFyZSBvciBjbG9uZSB3aXRoIENMT05FX05FV1VTRVIuCgoKVGhl IGxhc3QgY2FzZSBpcyB0aGUgY29tbW9uIGNhc2Ugb2YgL3Byb2Mvc2VsZi91aWRfbWFwLiAgQW5k IHlvdSBzZWUgaG93CnlvdXIgdWlkcyBtYXAgaW50byB0aGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhl IGNyZWF0b3Igb2YgeW91ciB1c2VyCm5hbWVzcGFjZS4KCldpdGggdGhlIGRlZmF1bHQgYmVpbmcg anVzdDogICAgICAgICAwICAgICAgICAgIDAgNDI5NDk2NzI5NQoKPj4gV2hpbGUgdmVyeSB3b3Jk eSBJIHRoaW5rIHRoZSBydWxlIG1ha2VzIGEgbG90IG9mIGludHVpdGl2ZSBhbmQgcHJhY3RpY2Fs Cj4+IHNlbnNlLiAgRXNwZWNpYWxseSBzaW5jZSBpdCBpcyBub24tdHJpdmlhbCB0byBjb21lIHVw IHdpdGggdGhlIGNoYWluIG9mCj4+IHVzZXIgbmFtZXNwYWNlcyBhIHByb2Nlc3MgaXMgaW4uCj4+ Cj4+Pj4gK0VhY2ggbGluZSBjb250YWlucyB0aHJlZSBudW1iZXJzLiAgVGhlIHN0YXJ0IG9mIHRo ZSByYW5nZSBvZiBnaWRzIGluCj4+Pj4gK3RoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgcHJvY2Vz cyBzcGVjaWZlZCBieQo+Pj4+ICsuSVIgcGlkLgo+Pj4+ICtUaGUgc3RhcnQgb2YgdGhlIHJhbmdl IG9mIGdpZHMgaW4gdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHRoYXQKPj4+PiAr b3BlbmVkCj4+Pj4gKy5JUiAvcHJvYy9bcGlkXS9naWRfbWFwLgo+Pj4+ICtUaGUgbnVtYmVyIG9m IGdpZHMgaW4gdGhlIHJhbmdlIG9mIG51bWJlcnMgdGhhdCBpcyBtYXBwZWQgYmV0d2VlbiB0byB0 d28KPj4+PiArdXNlciBuYW1lc3BhY2VzLgo+Pj4+ICsKPj4+PiArQWZ0ZXIgdGhlIGNyZWF0aW9u IG9mIGEgbmV3IHVzZXIgbmFtZXNwYWNlIHRoaXMgZmlsZSBtYXkgYmUgd3JpdHRlbiB0bwo+Pj4+ ICtleGFjdGx5IG9uY2UgdG8gc3BlY2lmeSB0aGUgbWFwcGluZyBvZiBnaWRzIGluIHRoZSBuZXcg dXNlciBuYW1lc3BhY2UuCj4+Pj4gKwo+Pj4+ICsuVFAKPj4+PiAgLklSIC9wcm9jL1twaWRdL2xp bWl0cyAiIChzaW5jZSBrZXJuZWwgMi42LjI0KSIKPj4+PiAgVGhpcyBmaWxlIGRpc3BsYXlzIHRo ZSBzb2Z0IGxpbWl0LCBoYXJkIGxpbWl0LCBhbmQgdW5pdHMgb2YgbWVhc3VyZW1lbnQKPj4+PiAg Zm9yIGVhY2ggb2YgdGhlIHByb2Nlc3MncyByZXNvdXJjZSBsaW1pdHMgKHNlZQo+Pj4+IEBAIC0x MTY5LDYgKzExOTQsMzEgQEAgZGlyZWN0b3J5IGFyZSBub3QgYXZhaWxhYmxlIGlmIHRoZSBtYWlu IHRocmVhZCBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkCj4+Pj4gICh0eXBpY2FsbHkgYnkgY2FsbGlu Zwo+Pj4+ICAuQlIgcHRocmVhZF9leGl0ICgzKSkuCj4+Pj4gIC5UUAo+Pj4+ICsuSVIgL3Byb2Mv W3BpZF0vdWlkX21hcCAiIChzaW5jZSBrZXJuZWwgMy42KSIKPj4+PiArVGhpcyBmaWxlIHJlcG9y dHMgdGhlIG1hcHBpbmcgb2YgdWlkcyBmcm9tIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgcHJv Y2VzcyBzcGVjaWZpZWQgYnkKPj4+PiArLklSIHBpZAo+Pj4+ICt0byB0aGUgdXNlciBuYW1lc3Bh Y2Ugb2YgdGhlIHByb2Nlc3MgdGhhdCBvcGVuZWQKPj4+PiArLklSIC9wcm9jL1twaWRdL3VpZF9t YXAgLgo+Pj4+ICsKPj4+PiArRWFjaCBsaW5lIHNwZWNpZmllcyBhIDEgdG8gMSBtYXBwaW5nIG9m IGEgcmFuZ2Ugb2YgY29udGlndW91cyB1aWRzIGZyb20KPj4+PiArdGhlIHVzZXIgbmFtZXNwYWNl IG9mIHRoZSBwcm9jZXNzIHNwZWNpZmllZCBieQo+Pj4+ICsuSVIgcGlkCj4+Pj4gK3RvIHRoZSB1 c2VyIG5hbWVzcGFjZSBvZiB0aGUgcHJvY2VzcyB0aGF0IG9wZW5lZAo+Pj4+ICsuSVIgL3Byb2Mv W3BpZF0vdWlkX21hcC4KPj4+PiArCj4+Pj4gK0VhY2ggbGluZSBjb250YWlucyB0aHJlZSBudW1i ZXJzLiAgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB1aWRzIGluCj4+Pj4gK3RoZSB1c2VyIG5h bWVzcGFjZSBvZiB0aGUgcHJvY2VzcyBzcGVjaWZlZCBieQo+Pj4+ICsuSVIgcGlkLgo+Pj4+ICtU aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHVpZHMgaW4gdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRo ZSBwcm9jZXNzIHRoYXQKPj4+PiArb3BlbmVkCj4+Pj4gKy5JUiAvcHJvYy9bcGlkXS91aWRfbWFw Lgo+Pj4+ICtUaGUgbnVtYmVyIG9mIHVpZHMgaW4gdGhlIHJhbmdlIG9mIG51bWJlcnMgdGhhdCBp cyBtYXBwZWQgYmV0d2VlbiB0byB0d28KPj4+PiArdXNlciBuYW1lc3BhY2VzLgo+Pj4+ICsKPj4+ PiArQWZ0ZXIgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHVzZXIgbmFtZXNwYWNlIHRoaXMgZmlsZSBt YXkgYmUgd3JpdHRlbiB0bwo+Pj4+ICtleGFjdGx5IG9uY2UgdG8gc3BlY2lmeSB0aGUgbWFwcGlu ZyBvZiB1aWRzIGluIHRoZSBuZXcgdXNlciBuYW1lc3BhY2UuCj4+Pj4gKwo+Pj4+ICsuVFAKPj4+ PiAgLkkgL3Byb2MvYXBtCj4+Pj4gIEFkdmFuY2VkIHBvd2VyIG1hbmFnZW1lbnQgdmVyc2lvbiBh bmQgYmF0dGVyeSBpbmZvcm1hdGlvbiB3aGVuCj4+Pj4gIC5CIENPTkZJR19BUE0KPj4+Cj4+PiBJ IHJldmlzZWQgeW91ciB0ZXh0IHF1aXRlIGEgYml0LCBhbmQgYWRkZWQgYSBwaWVjZSBvbiB0aGUg Zm9ybWF0IG9kCj4+PiB0aGUgdWlkX21hcCBmaWxlcy4gQ291bGQgeW91IHBsZWFzZSByZWFkIHRo ZSBmb2xsb3dpbmcgYW5kIGxldCBtZSBrbm93Cj4+PiBvZiBlcnJvcnM6Cj4+Pgo+Pj4gW1sKPj4+ ICAgICAgICAvcHJvYy9bcGlkXS91aWRfbWFwLCAvcHJvYy9bcGlkXS9naWRfbWFwIChzaW5jZSBM aW51eCAzLjYpCj4+PiAgICAgICAgICAgICAgIFRoZXNlICBmaWxlcyAgZXhwb3NlIHRoZSBtYXBw aW5ncyBmb3IgdXNlciBhbmQgZ3JvdXAgSURzCj4+PiAgICAgICAgICAgICAgIGluc2lkZSB0aGUg dXNlciBuYW1lc3BhY2UgIGZvciAgdGhlICBwcm9jZXNzICBwaWQuICAgVGhlCj4+PiAgICAgICAg ICAgICAgIGRlc2NyaXB0aW9uICBoZXJlICBleHBsYWlucyAgdGhlICBkZXRhaWxzICBmb3IgIHVp ZF9tYXA7Cj4+PiAgICAgICAgICAgICAgIGdpZF9tYXAgaXMgZXhhY3RseSB0aGUgc2FtZSwgYnV0 IGVhY2ggaW5zdGFuY2Ugb2YgICJ1c2VyCj4+PiAgICAgICAgICAgICAgIElEIiBpcyByZXBsYWNl ZCBieSAiZ3JvdXAgSUQiLgo+Pj4KPj4+ICAgICAgICAgICAgICAgVGhlICB1aWRfbWFwICBmaWxl ICBleHBvc2VzIHRoZSBtYXBwaW5nIG9mIHVzZXIgSURzIGZyb20KPj4+ICAgICAgICAgICAgICAg dGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHBpZCB0byB0aGUgdXNlciBuYW1lc+KA kAo+Pj4gICAgICAgICAgICAgICBwYWNlIG9mIHRoZSBwcm9jZXNzIHRoYXQgb3BlbmVkIHVpZF9t YXAuCj4+Pgo+Pj4gICAgICAgICAgICAgICBFYWNoICBsaW5lICBpbiAgdGhlIGZpbGUgc3BlY2lm aWVzIGEgMS10by0xIG1hcHBpbmcgb2YgYQo+Pj4gICAgICAgICAgICAgICByYW5nZSBvZiBjb250 aWd1b3VzIHVzZXIgSURzIGZyb20gdGhlIHVzZXIgbmFtZXNwYWNlICBvZgo+Pj4gICAgICAgICAg ICAgICB0aGUgIHByb2Nlc3MgIHBpZCAgdG8gIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgcHJv Y2Vzcwo+Pj4gICAgICAgICAgICAgICB0aGF0IG9wZW5lZCB1aWRfbWFwLgo+Pj4KPj4+ICAgICAg ICAgICAgICAgRWFjaCBsaW5lIGNvbnRhaW5zICB0aHJlZSAgbnVtYmVycyAgZGVsaW1pdGVkICBi eSAgd2hpdGUKPj4+ICAgICAgICAgICAgICAgc3BhY2U6Cj4+Pgo+Pj4gICAgICAgICAgICAgICAo MSkgVGhlICBzdGFydCAgb2YgIHRoZSAgcmFuZ2UgIG9mICB1c2VyIElEcyBpbiB0aGUgdXNlcgo+ Pj4gICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHBpZC4KPj4+Cj4+ PiAgICAgICAgICAgICAgICgyKSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlICBvZiAgdXNlciAgSURz ICBpbiAgdGhlICB1c2VyCj4+PiAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2Ugb2YgdGhlIHBy b2Nlc3MgdGhhdCBvcGVuZWQgdWlkX21hcC4KPj4+Cj4+PiAgICAgICAgICAgICAgICgzKSBUaGUg IGxlbmd0aCAgb2YgdGhlIHJhbmdlIG9mIHVzZXIgSURzIHRoYXQgaXMgbWFwcGVkCj4+PiAgICAg ICAgICAgICAgICAgICBiZXR3ZWVuIHRoZSB0d28gdXNlciBuYW1lc3BhY2VzLgo+Pj4KPj4+ICAg ICAgICAgICAgICAgQWZ0ZXIgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHVzZXIgIG5hbWVzcGFjZSwg IHRoaXMgIGZpbGUKPj4+ICAgICAgICAgICAgICAgbWF5IGJlIHdyaXR0ZW4gdG8gZXhhY3RseSBv bmNlIHRvIHNwZWNpZnkgdGhlIG1hcHBpbmcgb2YKPj4+ICAgICAgICAgICAgICAgdXNlciBJRHMg aW4gdGhlIG5ldyAgdXNlciAgbmFtZXNwYWNlLiAgIChBbiAgYXR0ZW1wdCAgdG8KPj4+ICAgICAg ICAgICAgICAgd3JpdGUgIG1vcmUgIHRoYW4gIG9uY2UgdG8gdGhlIGZpbGUgZmFpbHMgd2l0aCB0 aGUgZXJyb3IKPj4+ICAgICAgICAgICAgICAgRVBFUk0uKQo+Pj4KPj4+ICAgICAgICAgICAgICAg VGhlIGxpbmVzIHdyaXR0ZW4gdG8gdWlkX21hcCBtdXN0IGNvbmZvcm0gdG8gdGhlIGZvbGxvd+KA kAo+Pj4gICAgICAgICAgICAgICBpbmcgcnVsZXM6Cj4+Pgo+Pj4gICAgICAgICAgICAgICAqICBU aGUgIHRocmVlIGZpZWxkcyBtdXN0IGJlIHZhbGlkIG51bWJlcnMsIGFuZCB0aGUgbGFzdAo+Pj4g ICAgICAgICAgICAgICAgICBmaWVsZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLgo+Pj4KPj4+ICAg ICAgICAgICAgICAgKiAgTGluZXMgYXJlIHRlcm1pbmF0ZWQgYnkgbmV3bGluZSBjaGFyYWN0ZXJz Lgo+Pj4KPj4+ICAgICAgICAgICAgICAgKiAgVGhlIGZpbGUgY2FuIGNvbnRhaW4gYSBtYXhpbXVt IG9mIGZpdmUgbGluZXMuCj4+Cj4+IEEgbWF4aW11bSBvZiA1IGxpbmVzIGlzIGltcG9ydGFudCB0 byBEb2N1bWVudCBidXQgaXQgaXMgYSBjdXJyZW50Cj4+IGFyYml0cmFyeSBsaW1pdCB0aGF0IG1h eSBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUuICBSaWdodCBub3cgNSBleHRlbnRzCj4+IGFyZSBt b3JlIHRoYW4gZW5vdWdoIGZvciBhbnkgY29uY2VpdmFibGUgdXNlIGNhc2UsIGFuZCBmaXQgbmlj ZWx5IHdpdGhpbgo+PiBhIHNpbmdsZSBjYWNoZSBsaW5lLgo+Pgo+PiBJdCBpcyBwcm9iYWJseSBi ZXR0ZXIgdG8gc2F5IHdyaXRlcyB0aGF0IGV4Y2VlZCBhbiBhcmJpdHJhcnkgbWF4aW11bQo+PiBs ZW5ndGggZmFpbCB3aXRoIC1FSU5WQUwuICBDdXJyZW50bHkgdGhlIGFyYml0cmFyeSBtYXhpbXVt IGxlbmd0aCBpcwo+PiBmaXZlIGxpbmVzLgo+Cj4gT2theSAtLSByZXdvcmRlZC4KPgo+Pgo+Pj4g ICAgICAgICAgICAgICAqICBUaGUgdmFsdWVzIGluIGJvdGggZmllbGQgMSBhbmQgZmllbGQgMiBv ZiAgZWFjaCAgbGluZQo+Pj4gICAgICAgICAgICAgICAgICBtdXN0IGJlIGluIGFzY2VuZGluZyBu dW1lcmljYWwgb3JkZXIuCj4+Cj4+IFRoZSBydWxlIGlzIHRoYXQgdGhlIGV4dGVudHMgbmVlZCB0 byBiZSBub24tb3ZlcmxhcHBpbmcuICBBc2NlbmRpbmcKPj4gbnVtZXJpY2FsIG9yZGVyIGlzIGhv dyB0aGF0IGlzIGltcGxlbWVudGVkIGJ1dCB0aGF0IGlzIGEgbWlzZmVhdHVyZSwKPj4gYW5kIHRo ZXJlIGhhcyBhbHJlYWR5IGJlZW4gb25lIHJlcXVlc3QgdG8gZml4IHRoYXQuICBSZW1vdmluZyB0 aGUKPj4gYXNjZW5kaW5nIG51bWVyaWNhbCBvcmRlciBsaW1pdGF0aW9uIGlzIG9uIG15IHRvZG8g bGlzdC4KPgo+IE9rYXkgLS0gSSd2ZSByZXdvcmRlZCBzb21lIHRleHQgaGVyZS4KClRoYW5rIHlv dSB2ZXJ5IG11Y2ggZm9yIHlvdXIgdGltZSBhbmQgcGF0aWVuY2UgaW4gZ2V0dGluZyBhIGdvb2QK ZGVzY3JpcHRpb24gb2YgdGhlIHVzZXIgbmFtZXNwYWNlLgoKRXJpYwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQ29udGFpbmVycyBtYWlsaW5nIGxpc3QK Q29udGFpbmVyc0BsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4 Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb250YWluZXJz