From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Brian K. White" Subject: Re: [PATCH] new cgroup controller "fork" Date: Fri, 04 Nov 2011 12:43:38 -0400 Message-ID: <4EB4163A.3060305@aljex.com> References: <20111103162238.27609.11515.stgit@rabbit.intern.cm-ag> <4EB2C4A5.6000406@parallels.com> <20111103165903.GA4755@Debian-60-squeeze-64-minimal> <20111103182101.5037c1e5@lxorguk.ukuu.org.uk> <20111103185108.GA5153@Debian-60-squeeze-64-minimal> <20111103190330.02590426@lxorguk.ukuu.org.uk> <20111103192039.GA5300@Debian-60-squeeze-64-minimal> <4EB2EA93.2050206@parallels.com> <4EB2F5CF.5010604@aljex.com> <4EB30DAF.4090704@parallels.com> <4EB3560D.7000002@cn.fujitsu.com> <4EB3E47E.2080003@parallels.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <4EB3E47E.2080003-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org> 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: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: containers.vger.kernel.org T24gMTEvNC8yMDExIDk6MTEgQU0sIEdsYXViZXIgQ29zdGEgd3JvdGU6Cj4gT24gMTEvMDQvMjAx MSAwMTowMyBBTSwgTGkgWmVmYW4gd3JvdGU6Cj4+IOS6jiAyMDEx5bm0MTHmnIgwNOaXpSAwNTo1 NCwgR2xhdWJlciBDb3N0YSDlhpnpgZM6Cj4+PiBPbiAxMS8wMy8yMDExIDA2OjEzIFBNLCBCcmlh biBLLiBXaGl0ZSB3cm90ZToKPj4+PiBPbiAxMS8zLzIwMTEgMzoyNSBQTSwgR2xhdWJlciBDb3N0 YSB3cm90ZToKPj4+Pj4gT24gMTEvMDMvMjAxMSAwNToyMCBQTSwgTWF4IEtlbGxlcm1hbm4gd3Jv dGU6Cj4+Pj4+PiBPbiAyMDExLzExLzAzIDIwOjAzLCBBbGFuIENveDxhbGFuQGx4b3JndWsudWt1 dS5vcmcudWs+IHdyb3RlOgo+Pj4+Pj4+IFN1cmUgLSBJJ20ganVzdCBub3Qgc2VlaW5nIHRoYXQg YSB3aG9sZSBzZXBhcmF0ZSBjZ3JvdXAgZm9yIGl0IGlzCj4+Pj4+Pj4gYXBwcm9wcmlhdGUgb3Ig YSBnb29kIHBsYW4uIEFueW9uZSBkb2luZyByZWFsIHJlc291cmNlIG1hbmFnZW1lbnQKPj4+Pj4+ PiBuZWVkcwo+Pj4+Pj4+IHRoZSByZXN0IG9mIHRoZSBzdHVmZiBhbnl3YXkuCj4+Pj4+Pgo+Pj4+ Pj4gUmlnaHQuIFdoZW4gSSBzYXcgRnJlZGVyaWMncyBjb250cm9sbGVyIHRvZGF5LCBteSBmaXJz dCB0aG91Z2h0IHdhcwo+Pj4+Pj4gdGhhdCBvbmUgY291bGQgbW92ZSB0aGUgZm9yayBsaW1pdCBj b2RlIG92ZXIgaW50byB0aGF0IGNvbnRyb2xsZXIuIElmCj4+Pj4+PiB3ZSByZWFjaCBhIGNvbnNl bnN1cyB0aGF0IHRoaXMgd291bGQgYmUgYSBnb29kIGlkZWEsIGFuZCB3b3VsZCBoYXZlCj4+Pj4+ PiBjaGFuY2VzIHRvIGdldCBtZXJnZWQsIEkgY291bGQgcHJvYmFibHkgdGFrZSBzb21lIHRpbWUg dG8gcmVmYWN0b3IgbXkKPj4+Pj4+IGNvZGUuCj4+Pj4+Pgo+Pj4+Pj4gTWF4Cj4+Pj4+IEknZCBh ZHZpc2UgeW91IHRvIHRha2UgYSBzdGVwIGJhY2sgYW5kIHRoaW5rIGlmIHRoaXMgaXMgcmVhbGx5 IG5lZWRlZC4KPj4+Pj4gQXMgQWxhbiBwb2ludGVkIG91dCwgdGhlIHJlYWxseSBleHBlbnNpdmUg cmVzb3VyY2UgaGVyZSBpcyBhbHJlYWR5Cj4+Pj4+IGJlaW5nCj4+Pj4+IGNvbnN0cmFpbmVkIGJ5 IEZyZWRlcmljJ3MgY29udHJvbGxlci4KPj4+Pgo+Pj4+IEkgdGhpbmsgdGhpcyByZWFsbHkgaXMg YSBkaWZmZXJlbnQga25vYiB0aGF0IGlzIG5pY2UgdG8gaGF2ZSBhcyBsb25nIGFzCj4+Pj4gaXQg ZG9lc24ndCBjb3N0IG11Y2guIEl0J3MgYSB3YXkgdG8gc2V0IGEgbWF4IGxpZmVzcGFuIGluIGEg d2F5IHRoYXQKPj4+PiBpc24ndCByZWFsbHkgYWRkcmVzc2VkIGJ5IHRoZSBvdGhlciBjb250cm9s cy4gKEkgY291bGQgYWJzb2x1dGVseSBiZQo+Pj4+IG1pc3Npbmcgc29tZXRoaW5nLikKPj4+Pgo+ Pj4+IEkgdGhpbmsgTWF4IGV4cGxhaW5lZCB0aGUgaXNzdWUgY2xlYXJseSBlbm91Z2guCj4+Pgo+ Pj4gSGUgZGlkLCBpbmRlZWQuCj4+Pgo+Pj4+IEl0IGRvZXNuJ3QgbWF0dGVyIHRoYXQgdGhlIGZv cmsgaXRzZWxmIGlzIHN1cHBvc2VkbHkgc28gY2hlYXAuCj4+Pj4KPj4+PiBJdCdzIHN0aWxsIG5p Y2UgdG8gaGF2ZSBhIHdheSB0byBzYXksIHlvdSBtYXkgbm90Cj4+Pj4gZm9yay9kaWUvZm9yay9k aWUvZm9yawo+Pj4+IGluIGEgcmFjZS4KPj4+Pgo+Pj4+IFdoYXQncyBzbyB1bmltYWdpbmFibGUg YWJvdXQgaGF2aW5nIGEgcHJvY2VzcyB0aGF0IHlvdSBrbm93IG5lZWRzIGEgbG90Cj4+Pj4gb2Yg Y3B1IGFuZCByYW0gb3Igb3RoZXIgcmVzb3VyY2VzIHRvIGRvIGl0J3Mgam9iLCBhbmQgeW91IGV4 cHJlc3NseQo+Pj4+IHdhbnQKPj4+PiB0byBhbGxvdyBpdCB0byB0YWtlIGFzIG11Y2ggb2YgdGhv c2UgcmVzb3VyY2VzIGFzIGl0IGNhbiwgYnV0IHlvdSBrbm93Cj4+Pj4gaXQgaGFzIG5vIG5lZWQg dG8gZm9yaywgc28gaWYgaXQgZm9ya3MsIF90aGF0XyBpcyB0aGUgb25seQo+Pj4+IGluZGljYXRp b24gb2YKPj4+PiBhIHByb2JsZW0sIHNvIHlvdSBtYXkgb25seSB3YW50IHRvIGJsb2NrIGl0IGJh c2VkIG9uIHRoYXQuCj4+Pj4KPj4+PiBTdXJlIG1hbnkgb3RoZXIgcHJvY2Vzc2VzIHdvdWxkIGxl Z2l0aW1hdGVseSBmb3JrL2RpZS9mb3JrL2RpZSBhIGxvdAo+Pj4+IHdoaWxlIG5ldmVyIGV4Y2Vl ZGluZyBhIGZldyB0b3RhbCBjb25jdXJyZW50IHRhc2tzLCBhbmQgZm9yIHRoZW0geW91Cj4+Pj4g d291bGQgbm90IHdhbnQgdG8gc2V0IGFueSBzdWNoIGZvcmsgbGltaXQuIFNvIHdoYXQ/Cj4+Pj4K Pj4+IEFzIEkgc2FpZCBwcmV2aW91c2x5LCBoZSBrbm93cyBoaXMgdXNlIGNhc2VzIGJldHRlciB0 aGFuIGFueW9uZSBlbHNlLgo+Pj4gSWYgYSB1c2UgY2FzZSBjYW4gYmUgZm91bmQgaW4gd2hpY2gg dGhlIHN1bW1hdGlvbiBvZiBjcHUrdGFzawo+Pj4gY29udHJvbGxlcnMgaXMgbm90IGVub3VnaCwg YW5kIGlmIHRoaXMgaXMgaW1wbGVtZW50ZWQgYXMgYW4gb3B0aW9uIHRvCj4+PiB0aGUgdGFzayBj b250cm9sbGVyLCBhbmQgZG9lcyBub3QgbWFrZSBpdDoKPj4+IDEpIGNvbmZ1c2luZywKPj4+IDIp IG1vcmUgZXhwZW5zaXZlLAo+Pj4KPj4+IHRoZW4gSSBkb24ndCBzZWUgd2h5IG5vdCB3ZSBzaG91 bGRuJ3QgdGFrZSBpdC4KPj4KPj4gUXVvdGVkIGZyb20gTGVubmFydCdzIHJlcGx5IGluIGFub3Ro ZXIgbWFpbCB0aHJlYWQ6Cj4+Cj4+ICJHaXZlbiB0aGF0IHNodXR0aW5nIGRvd24gc29tZSBzZXJ2 aWNlcyBtaWdodCBpbnZvbHZlIGZvcmtpbmcgb2ZmIGEgZmV3Cj4+IHRoaW5ncyAodGhpbms6IGEg c2hlbGwgc2NyaXB0IGhhbmRsaW5nIHNodXRkb3duIHdoaWNoIGZvcmtzIG9mZiBhIGNvdXBsZQo+ PiBvZiBzaGVsbCB1dGlsaXRpZXMpIHdlJ2Qgd2FudCBzb21ldGhpbmcgdGhhdCBpcyBiZXR3ZWVu ICJmcm9tIG5vdyBvbiBubwo+PiBmb3JraW5nIGF0IGFsbCIgYW5kICJ1bmxpbWl0ZWQgZm9ya2lu ZyIuIFRoaXMgY291bGQgYmUgZG9uZSBpbiBtYW55Cj4+IGRpZmZlcmVudCB3YXlzOiB3ZSdkIGJl IGhhcHB5IGlmIHdlIGNvdWxkIGRvIHRpbWUtYmFzZWQgcmF0ZSBsaW1pdGluZywKPj4gYnV0IHdl J2QgYWxzbyBiZSBmaW5lIHdpdGggZGVmaW5pbmcgYSBjZXJ0YWluIGJ1ZGdldCBvZiBhZGRpdGlv bmFsIGZvcmtzCj4+IGEgY2dyb3VwIGNhbiBkbyAoaS5lLiAiZnJvbSBub3cgb24geW91IGNhbiBk byA1MCBtb3JlIGZvcmtzLCB0aGVuIHlvdSdsbAo+PiBnZXQgRVBFUk0pLiIKPj4KPj4gKGh0dHA6 Ly9sa21sLm9yZy9sa21sLzIwMTEvMTAvMTkvNDY4KQo+Pgo+PiBUaGUgbGFzdCBzZW50ZW5jZSBz dWdnZXN0cyBoZSBtaWdodCBsaWtlIHRoaXMgZm9yayBjb250cm9sbGVyLgo+Cj4gV2VsbCwgSWYg SSB1bmRlcnN0YW5kIEZyZWRlcmljJ3Mgd29yayB3ZWxsIGVub3VnaCwgdGhpcyBjYW4gYmUgYWNo aWV2ZWQKPiBieSBzZXR0aW5nIHRoZSB0YXNrIGxpbWl0IHRvIDAgaW4gaGlzIGNvbnRyb2xsZXIu IE5vPwoKTm90IHRoYXQgSSBjYW4gc2VlLiBOb3Qgd2l0aG91dCBjaGFuZ2VzLgoKCj4gQmVjYXVz ZSBiZWluZyBsb3dlciB0aGFuIHlvdXIgbGltaXQgd29uJ3Qga2ljayB0YXNrcyBvdXQsIHRoZSBw cmFjdGljYWwKPiBlZmZlY3QgaXMgdGhhdCBubyBmb3JrcyB3aWxsIGJlIGFsbG93ZWQgaW4gdGhl IGdyb3VwIHdpdGggdGhpcyBzZXR0aW5nLgoKU2V0dGluZyB0YXNrIGxpbWl0IHRvIDAgKG1vcmUg cHJvcGVybHkgbmFtZWQgIm5ldy9hZGRpdGlvbmFsIHRhc2sgbGltaXQiIAppZiBpdCB3b3JrcyB0 aGUgd2F5IHlvdSBzYXkpIHdpbGwgZG8gb25seSBvbmUgcGFydCBvZiB0aGUgZm9yayBsaW1pdGVy LiAKVGhlIHBhcnQgdGhhdCBwcmV2ZW50cyBuZXcgdGFza3MgZnJvbSBzcGF3bmluZy4gQnV0IHRo YXQgaXMgb25seSAKc3VwcG9zZWQgdG8gaGFwcGVuIGFmdGVyIGEgY291bnRlciBoYXMgcmVhY2hl ZCBhIHRhcmdldCB2YWx1ZSwgYW5kIG5vIApzdWNoIGNvdW50ZXIgY3VycmVudGx5IGV4aXN0cy4g VGhlIHRhc2sgY291bnRlciBkb2VzIG5vdCBjb3VudCBmb3Jrcy4gSXQgCmNvdWxkLCBidXQgaXQg Y3VycmVudGx5IGRvZXNuJ3QuCgpUYXNrcyBvbmx5IGFjY291bnQgZm9yIGEgc3Vic2V0IG9mIGZv cmtzLgoKPiBTbyBmb3IgdGltZS1iYXNlZCByYXRlIGxpbWl0aW5nLCBpdCBpcyB0cml2aWFsIHRv IGp1c3Qgc2V0IGl0IHRvIDAgYWZ0ZXIKPiB4IHNlY29uZHMuCgpXaGF0PyBubyBubyBubywgbWF5 YmUgdGhlcmUgYXJlIHVzZXMgZm9yIHRoYXQgdG9vIGJ1dCBwcm9iYWJseSBldmVuIGxlc3MgCmNv bW1vbiB0aGFuIHRoZSBwcm9wb3NlZCBmb3JrIGNvdW50ZXIvZGVjcmltZW50ZXIuIE1vc3Qgb2Yg dW5peCAKZXhwbGljaXRseSBhdm9pZHMgZXZlciBwcm9taXNpbmcgdG8gcGVyZm9ybSB0YXNrcyB3 aXRoaW4gYW55IGFyYml0cmFyeSAKdGltZSB3aWRvd3MuIFRoZSBzeXN0ZW0gaXMgbW9zdGx5IGFz eW5jaHJvbm91cyBieSBkZXNpZ24sIGFuZCBvcGVyYXRpb25zIApibG9jaywgYnVmZmVyLCBzcG9v bCwgd2FpdCwgYW5kIGV2ZW50dWFsbHkgcmVzdW1lIGFuZCBzdWNjZWVkLCBieSAKZGVzaWduLCBp bnN0ZWFkIG9mIGZhaWxpbmcgYWZ0ZXIgYXJiaXRyYXJ5IHRpbWUgbGltaXRzLgpJdCdzIG5vdCB0 aGF0IGEgZm9ya3MtcGVyLXRpbWUtdW5pdCB3b3VsZCBuZXZlciBiZSB1c2VmdWwsIGJ1dCBJIHRo aW5rIApsZXNzIG9mdGVuLCBsZXNzIGdlbmVyaWNhbGx5LiBJdCB3b3VsZCBiZSBhIG5pY2Ugb3B0 aW9uIGZvciB0aG9zZSAKdW5rbm93biwgdW5rbm93YWJsZSwgc2l0dWF0aW9ucyB3aGVyZSBzb21l b25lIG1pZ2h0IGtub3cgdGhhdCB0aGV5IGRvIAp3YW50IHRoYXQuCgo+IEZvciBvdGhlciB1c2Vz LCB3ZSBjYW4gd2F0Y2ggdGhlIHRhc2sgY291bnRlciBpbmNyZWFzZSB1bnRpbCBhIGNlcnRhaW4K PiB2YWx1ZSwgYW5kIHRoZW4gc2V0IHRoZSBsaW1pdCB0byAwLgoKV2hhdD8gYWdhaW46Cgp0aW1l ICBhY3Rpb24gIGZvcmtzICB0YXNrcwowMDAwICBpbml0ICAgIDAgICAgICAxCjAwMDEgIGZvcmsg ICAgMSAgICAgIDIKMDAwMiAgZGllICAgICAxICAgICAgMQowMDAzICBmb3JrICAgIDIgICAgICAy CjAwMDQgIGRpZSAgICAgMiAgICAgIDEKMDAwNSAgZm9yayAgICAzICAgICAgMgowMDA2ICBkaWUg ICAgIDMgICAgICAxCjAwMDcgIGZvcmsgICAgNCAgICAgIDIKMDAwOCAgZGllICAgICA0ICAgICAg MQowMDA5ICBmb3JrICAgIDUgICAgICAyCjAwMTAgIGRpZSAgICAgNSAgICAgIDEKMDAxMSAgZm9y ayAgICA2ICAgICAgMgowMDEyICBkaWUgICAgIDYgICAgICAxCgpUYXNrcyBuZXZlciBleGNlZWRz IDIKRm9ya3MgbWF5IGNsaW1iIHRvIGluZmluaXRlLgoKWW91IGNhbid0IHNheSB0aGF0IGNwdSBv ciByYW0gb3IgYW55IG90aGVyIHJlc291cmNlIGNhbiBzb2x2ZSB0aGUgc2FtZSAKcHJvYmxlbSBi ZWNhdXNlIHRoZSB1bHRpbWF0ZSBwdXJwb3NlIG9mIGNwdSBhbmQgcmFtIGFuZCB0aGUgb3RoZXIg CnJlc291cmNlcyBpcyB0byBiZSB1c2VkLCB0byBkbyBqb2JzLCBub3QgcHJlc2VydmUgaWRsZSBj cHUgdGltZS4gWW91IG1heSAKZXhwcmVzc2x5IHdhbnQgdGhlIHRhc2sgdG8gY29uc3VtZSBhbGwg YXZhaWxhYmxlIGNwdSwgcmFtLCBkaXNrIGkvbywgbmV0IAppL28sIGV0YywgaXQgZGVwZW5kcyBv biB0aGUgam9iLgoKTGlrZXdpc2UgdGhlIHRpbWUgb24gdGhlIHdhbGwgbWVhbnMgbm90aGluZyBl aXRoZXIsIG9yIGF0IGxlYXN0LCB5b3UgCmNhbid0IHNheSB0aGF0IGl0J3MgdXNlZnVsIGdlbmVy aWNhbGx5LiBNYXliZSBpbiBzb21lIG9kZCBjYXNlcyBzb21lb25lIAptYXkga25vdyB0aGF0IGZv ciB0aGVpciBqb2IsIGFueXRoaW5nIG92ZXIgWCBzZWNvbmRzIGlzIHdyb25nLCBidXQgSSAKY2Fu J3Qgc2F5IHRoYXQgYWJvdXQgYWxtb3N0IGFueXRoaW5nLCBzaW5jZSB1bml4IGlzIGFuIGFzeW5j aHJvbm91cyAKc3lzdGVtIHRoYXQgc3BlY2lmaWNhbGx5IGV4cGxpY2l0bHkgYXZvaWRzIG1ha2lu ZyBhbnkgcHJvbWlzZXMgYWJvdXQgCnRpbWluZyBpbiBtb3N0IG9wZXJhdGlvbnMuIEFsbW9zdCBh bnkgb3BlcmF0aW9uIG1heSB0YWtlIGFsbW9zdCBhbnkgCmFtb3VudCBvZiB0aW1lIGRlcGVuZGlu ZyBvbiBjb3VudGxlc3Mgb3RoZXIgdHJhbnNpZW50IGZhY3RvcnMsIGFuZCBtb3N0IAp0aGluZ3Mg YmxvY2ssIGJ1ZmZlciwgc3Bvb2wsIHdhaXQsIGFuZCBldmVudHVhbGx5IHJlc3VtZSBhbmQgc3Vj Y2VlZCAKaW5zdGVhZCBvZiBmYWlsaW5nIGFmdGVyIGFyYml0cmFyeSB0aW1lIGxpbWl0cy4KClRo ZSB0YXNrIGNvdW50ZXIgb25seSBjb3ZlcnMgc29tZSBjYXNlcy4KCkFzIGZvciByYXRlIGxpbWl0 aW5nLCB0aGF0J3MgYSBuaWNlIGFkZGl0aW9uYWwgZmVhdHVyZSBhbmQgdGhlcmUgYXJlIGEgCmZl dyB3YXlzIHRvIGhhbmRsZSB0aGF0LiBPbmUgY3J1ZGUgd2F5IG1pZ2h0IGJlIGEgY3JvbiBqb2Ig dGhhdCAKcGVyaW9kaWNhbGx5IHJlc2V0cyBhIGxvbmctcnVubmluZyB0YXNrcyByZW1haW5pbmct Zm9ya3MtbGltaXQuIFRoYXQgCndvdWxkIGFsbG93IHNheSBYIGZvcmtzIHBlciBtaW51dGUsIGFu ZCBhbGxvdyBub3JtYWwgb3BzIHRvIHdvcmssIHdoaWxlIApibG9ja2luZyBhIHJ1bmF3YXkuIEJ1 dCBtb3N0IGxvbmctcnVubmluZyB0YXNrcyBvbiBteSBib3ggaGF2ZSBubyBzdWNoIAppbnRyaW5z aWMgc2FuZS1tYXgtZm9ya3MsIG9yIG1heC1mb3Jrcy1wZXItdGltZS11bml0IGxpbWl0IG9uIG15 IGJveGVzLiAKV2hlbiBhbGwgbXkgdXNlcnMgdHJ5IHRvIGxvZyBpbiBhdCBvbmNlIGFmdGVyIGEg bmV0d29yayBibGlwIGFuZCB0aGUgYm94IApnZXRzIDMwMCBuZXcgc3NoIGNvbm5lY3Rpb25zIGF0 IG9uY2UgZnJvbSBhYm91dCAxMCBkaWZmZXJlbnQgaXAncyBzbyAKaXQncyBhIGxvdCBwZXIgaXAg ZXZlbiwgKGJ1aWxkaW5ncyBmdWxsIG9mIGVuZCB1c2VycyBiZWhpbmQgb25lIGlwKSBJIApzcGVj aWZpY2FsbHkgbmVlZCB0byBhY2NlcHQgYW5kIGhhbmRsZSB0aGF0IHN1cmdlIHRvIHRoZSBsaW1p dCBvZiB0aGUgCmhhcmR3YXJlJ3MgYWJpbGl0eSB0byBkbyBpdCwgZXZlbiB0aG91Z2ggbm9ybWFs bHkgdGhlIHJhdGUgb2YgbmV3IHNzaCAKY29ubmVjdGlvbnMgaXMgYSB0aW55IGZyYWN0aW9uIG9m IHRoYXQuIFNhbWUgZ29lcyBmb3IgcHJhY3RpY2FsbHkgZXZlcnkgCnNlcnZpY2UuCgpCdXQgSSB0 aGluayBNYXggd2FzIG1vcmUgdGFsa2luZyBhYm91dCBkaXNjcmVldCBqb2JzIHRoYW4gbG9uZy1y dW5uaW5nIAp0YXNrcywgd2hlcmUgdGhlIGVudGlyZSBzdGFydC13b3JrLWV4aXQgbGlmZSBjeWNs ZSBvZiB0aGUgam9iIGlzIHdlbGwgCmtub3duLCBzbyB5b3UgY291bGQgc2V0IHRoZSBrbm93biBm b3JrIGxpbWl0IGZvciBpdCBhbmQgdW5kZXIgbm9ybWFsIApjaXJjdW1zdGFuY2VzIGl0IGNhbiBk byBpdCdzIGVudGlyZSBub3JtYWwgam9iIHdpdGhpbiB0aGF0IGxpbWl0LCBhbmQgCmhhcyBubyBl eGN1c2UgZm9yIGV4Y2VlZGluZyB0aGF0IGxpbWl0LCBhbmQgc28gaXQncyBhIGdvb2Qgc2FmZXR5 IHRvIHNldCAKYW5kIGVuZm9yY2UgdGhhdCBsaW1pdCwgYW5kIGluIGRvaW5nIHNvIHlvdSBjYW4g cHJldmVudCB0aGluZ3MgeW91IG1pZ2h0IApub3QgYmUgYWJsZSB0byBwcmV2ZW50IGFueSBvdGhl ciB3YXksIGF0IGxlYXN0IG5vdCByZWxpYWJseSBhbmQvb3IgCndpdGhvdXQgZG9pbmcgbW9yZSBo YXJtIHRoYW4gZ29vZCBieSBicmVha2luZyB0aGluZ3MgeW91IGRvbid0IHdhbnQgdG8gCmJyZWFr LgoKSWYgc29tZW9uZSBnZXRzIGEgY2dpIHByb2Nlc3MgdG8gc3RhcnQgZGljdGlvbmFyeSBhdHRh Y2tpbmcgdGhlIGxvY2FsIApib3ggb3Igc29tZSBvdGhlciBib3gsIGl0IHdpbGwgZm9yay1sb2dp bi1hdHRlbXB0LWZhaWwgcmVwZWF0ZWRseSBhbmQgCnVzZSB1cCB0aGUgZm9yayBidWRnZXQgaW1t ZWRpYXRlbHkuIEJ1dCBpdCB3b3VsZG4ndCBuZWNlc3NhcmlseSBoYXZlIAp0b3VjaGVkIGFueSBy ZWFzb25hYmxlIHR5cGljYWwgdGFzayBsaW1pdCBvciBjcHUgb3IgcmFtIG9yIG5ldHdvcmsgb3Ig CmRpc2sgaS9vLgoKSSB0aGluayBjZ2kgaXMganVzdCBhbiBleGFtcGxlIGFuZCBieSBubyBtZWFu cyBhIHNwZWNpYWwgY2FzZS4gSXQgc291bmRzIApsaWtlIGdlbmVyaWNhbGx5IHVzZWZ1bCBjb250 cm9sIHRvIG1lIGxpa2UgYW55IG9mIHRoZSBvdGhlciBjb250cm9scy4gCk1heWJlIG9ubHkgbmVl ZGVkIGluIHJlbGF0aXZlbHkgZmV3IHNpdHVhdGlvbnMsIGJ1dCBub3QgcHJlZGljdGFibGUgb3Ig CmxpbWl0ZWQgdG8gYW55IHBhcnRpY3VsYXIgc2l0dWF0aW9ucy4gTGlrZSBjZ3JvdXBzIGl0c2Vs ZiBvciBhbnkgb3RoZXIgCmNvbnRyb2xzLCBpdCBtaWdodCBiZSB1c2VkIGFueXdoZXJlIGZvciBh bnl0aGluZywgYW5kIG1hbnkgaW1wb3J0YW50IAp1c2VzIG1heSBvbmx5IG9jY3VyIHRvIHBlb3Bs ZSBhZnRlciB0aGUgZmFjaWxpdHkgZXhpc3RzIGFuZCBpcyAKY29uc2lkZXJlZCBmb3IgYSB3aGls ZSwgYW5kIHRoZW4gbWF5IGV2ZW4gYmUgc2VlbiBhcyBpbmRpc3BlbnNhYmxlLgoKQW0gSSBtaXNz aW5nIHNvbWV0aGluZz8gSG93IGRvZXMgdGhlIHRhc2sgY291bnRlciBwcm92aWRlIHRoaXMga2lu ZCBvZiAKYm94aW5nLWluIHdpdGhvdXQgYWN0dWFsbHkgY291bnRpbmcgZm9ya3MgYWxvbmcgdGhl IHdheSwgZGlzdGluY3RseSBmcm9tIAp0YXNrcz8KCi0tIApia3cKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQ29udGFpbmVycyBtYWlsaW5nIGxpc3QKQ29u dGFpbmVyc0BsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91 bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb250YWluZXJz