From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH 02/55] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Wed, 24 Jun 2015 13:18:48 +0100 Message-ID: <558AA028.4090908@Intel.com> References: <1432917856-12261-3-git-send-email-John.C.Harrison@Intel.com> <1434731652-15672-1-git-send-email-John.C.Harrison@Intel.com> <20150622201233.GK25769@phenom.ffwll.local> <55894519.5010906@Intel.com> <20150623132406.GA25769@phenom.ffwll.local> <55897E9C.2060604@Intel.com> <20150623200015.GJ25769@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 143F489736 for ; Wed, 24 Jun 2015 05:18:51 -0700 (PDT) In-Reply-To: <20150623200015.GJ25769@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMjMvMDYvMjAxNSAyMTowMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUdWUsIEp1biAy MywgMjAxNSBhdCAwNDo0MzoyNFBNICswMTAwLCBKb2huIEhhcnJpc29uIHdyb3RlOgo+PiBPbiAy My8wNi8yMDE1IDE0OjI0LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gVHVlLCBKdW4gMjMs IDIwMTUgYXQgMTI6Mzg6MDFQTSArMDEwMCwgSm9obiBIYXJyaXNvbiB3cm90ZToKPj4+PiBPbiAy Mi8wNi8yMDE1IDIxOjEyLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+PiBPbiBGcmksIEp1biAx OSwgMjAxNSBhdCAwNTozNDoxMlBNICswMTAwLCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdy b3RlOgo+Pj4+Pj4gRnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNv bT4KPj4+Pj4+Cj4+Pj4+PiBJdCBpcyBhIGJhZCBpZGVhIGZvciBpOTE1X2FkZF9yZXF1ZXN0KCkg dG8gZmFpbC4gVGhlIHdvcmsgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbgo+Pj4+Pj4gc2VuZCB0byB0 aGUgcmluZyBhbmQgd2lsbCBiZSBwcm9jZXNzZWQsIGJ1dCB0aGVyZSB3aWxsIG5vdCBiZSBhbnkg dHJhY2tpbmcgb3IKPj4+Pj4+IG1hbmFnZW1lbnQgb2YgdGhhdCB3b3JrLgo+Pj4+Pj4KPj4+Pj4+ IFRoZSBvbmx5IHdheSB0aGUgYWRkIHJlcXVlc3QgY2FsbCBjYW4gZmFpbCBpcyBpZiBpdCBjYW4n dCB3cml0ZSBpdHMgZXBpbG9ndWUKPj4+Pj4+IGNvbW1hbmRzIHRvIHRoZSByaW5nIChjYWNoZSBm bHVzaGluZywgc2Vxbm8gdXBkYXRlcywgaW50ZXJydXB0IHNpZ25hbGxpbmcpLiBUaGUKPj4+Pj4+ IHJlYXNvbnMgZm9yIHRoYXQgYXJlIG1vc3RseSBkb3duIHRvIHJ1bm5pbmcgb3V0IG9mIHJpbmcg YnVmZmVyIHNwYWNlIGFuZCB0aGUKPj4+Pj4+IHByb2JsZW1zIGFzc29jaWF0ZWQgd2l0aCB0cnlp bmcgdG8gZ2V0IHNvbWUgbW9yZS4gVGhpcyBwYXRjaCBwcmV2ZW50cyB0aGF0Cj4+Pj4+PiBzaXR1 YXRpb24gZnJvbSBoYXBwZW5pbmcgaW4gdGhlIGZpcnN0IHBsYWNlLgo+Pj4+Pj4KPj4+Pj4+IFdo ZW4gYSByZXF1ZXN0IGlzIGNyZWF0ZWQsIGl0IG1hcmtzIHN1ZmZpY2llbnQgc3BhY2UgYXMgcmVz ZXJ2ZWQgZm9yIHRoZQo+Pj4+Pj4gZXBpbG9ndWUgY29tbWFuZHMuIFRodXMgZ3VhcmFudGVlaW5n IHRoYXQgYnkgdGhlIHRpbWUgdGhlIGVwaWxvZ3VlIGlzIHdyaXR0ZW4sCj4+Pj4+PiB0aGVyZSB3 aWxsIGJlIHBsZW50eSBvZiBzcGFjZSBmb3IgaXQuIE5vdGUgdGhhdCBhIHJpbmdfYmVnaW4oKSBj YWxsIGlzIHJlcXVpcmVkCj4+Pj4+PiB0byBhY3R1YWxseSByZXNlcnZlIHRoZSBzcGFjZSAoYW5k IGRvIGFueSBwb3RlbnRpYWwgd2FpdGluZykuIEhvd2V2ZXIsIHRoYXQgaXMKPj4+Pj4+IG5vdCBj dXJyZW50bHkgZG9uZSBhdCByZXF1ZXN0IGNyZWF0aW9uIHRpbWUuIFRoaXMgaXMgYmVjYXVzZSB0 aGUgcmluZ19iZWdpbigpCj4+Pj4+PiBjb2RlIGNhbiBhbGxvY2F0ZSBhIHJlcXVlc3QuIEhlbmNl IGNhbGxpbmcgYmVnaW4oKSBmcm9tIHRoZSByZXF1ZXN0IGFsbG9jYXRpb24KPj4+Pj4+IGNvZGUg d291bGQgbGVhZCB0byBpbmZpbml0ZSByZWN1cnNpb24hIExhdGVyIHBhdGNoZXMgaW4gdGhpcyBz ZXJpZXMgcmVtb3ZlIHRoZQo+Pj4+Pj4gbmVlZCBmb3IgYmVnaW4oKSB0byBkbyB0aGUgYWxsb2Nh dGUuIEF0IHRoYXQgcG9pbnQsIGl0IGJlY29tZXMgc2FmZSBmb3IgdGhlCj4+Pj4+PiBhbGxvY2F0 ZSB0byBjYWxsIGJlZ2luKCkgYW5kIHJlYWxseSByZXNlcnZlIHRoZSBzcGFjZS4KPj4+Pj4+Cj4+ Pj4+PiBVbnRpbCB0aGVuLCB0aGVyZSBpcyBhIHBvdGVudGlhbCBmb3IgaW5zdWZmaWNpZW50IHNw YWNlIHRvIGJlIGF2YWlsYWJsZSBhdCB0aGUKPj4+Pj4+IHBvaW50IG9mIGNhbGxpbmcgaTkxNV9h ZGRfcmVxdWVzdCgpLiBIb3dldmVyLCB0aGF0IHdvdWxkIG9ubHkgYmUgaW4gdGhlIGNhc2UKPj4+ Pj4+IHdoZXJlIHRoZSByZXF1ZXN0IHdhcyBjcmVhdGVkIGFuZCBpbW1lZGlhdGVseSBzdWJtaXR0 ZWQgd2l0aG91dCBldmVyIGNhbGxpbmcKPj4+Pj4+IHJpbmdfYmVnaW4oKSBhbmQgYWRkaW5nIGFu eSB3b3JrIHRvIHRoYXQgcmVxdWVzdC4gV2hpY2ggc2hvdWxkIG5ldmVyIGhhcHBlbi4gQW5kCj4+ Pj4+PiBldmVuIGlmIGl0IGRvZXMsIGFuZCBpZiB0aGF0IHJlcXVlc3QgaGFwcGVucyB0byBmYWxs IGRvd24gdGhlIHRpbnkgd2luZG93IG9mCj4+Pj4+PiBvcHBvcnR1bml0eSBmb3IgZmFpbGluZyBk dWUgdG8gYmVpbmcgb3V0IG9mIHJpbmcgc3BhY2UgdGhlbiBkb2VzIGl0IHJlYWxseQo+Pj4+Pj4g bWF0dGVyIGJlY2F1c2UgdGhlIHJlcXVlc3Qgd2Fzbid0IGRvaW5nIGFueXRoaW5nIGluIHRoZSBm aXJzdCBwbGFjZT8KPj4+Pj4+Cj4+Pj4+PiB2MjogVXBkYXRlZCB0aGUgJ3Jlc2VydmVkIHNwYWNl IHRvbyBzbWFsbCcgd2FybmluZyB0byBpbmNsdWRlIHRoZSBvZmZlbmRpbmcKPj4+Pj4+IHNpemVz LiBBZGRlZCBhICdjYW5jZWwnIG9wZXJhdGlvbiB0byBjbGVhbiB1cCB3aGVuIGEgcmVxdWVzdCBp cyBhYmFuZG9uZWQuIEFkZGVkCj4+Pj4+PiByZS1pbml0aWFsaXNhdGlvbiBvZiB0cmFja2luZyBz dGF0ZSBhZnRlciBhIGJ1ZmZlciB3cmFwIHRvIGtlZXAgdGhlIHNhbml0eQo+Pj4+Pj4gY2hlY2tz IGFjY3VyYXRlLgo+Pj4+Pj4KPj4+Pj4+IHYzOiBJbmNyZW1lbnRlZCB0aGUgcmVzZXJ2ZWQgc2l6 ZSB0byBhY2NvbW1vZGF0ZSBJcm9ubGFrZSAoYWZ0ZXIgZmluYWxseQo+Pj4+Pj4gbWFuYWdpbmcg dG8gcnVuIG9uIGFuIElMSyBzeXN0ZW0pLiBBbHNvIGZpeGVkIG1pc3Npbmcgd3JhcCBjb2RlIGlu IExSQyBtb2RlLgo+Pj4+Pj4KPj4+Pj4+IHY0OiBBZGRlZCBleHRyYSBjb21tZW50IGFuZCByZW1v dmVkIGR1cGxpY2F0ZSBXQVJOIChmZWVkYmFjayBmcm9tIFRvbWFzKS4KPj4+Pj4+Cj4+Pj4+PiB2 NTogUmUtd3JpdGUgb2Ygd3JhcCBoYW5kbGluZyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IGVhcmx5 IHdyYXBzIChmZWVkYmFjayBmcm9tCj4+Pj4+PiBEYW5pZWwgVmV0dGVyKS4KPj4+Pj4gVGhpcyBk aWRuJ3QgYWN0dWFsbHkgaW1wbGVtZW50IHdoYXQgSSBzdWdnZXN0ZWQgKHdyYXBwaW5nIGlzIHRo ZSB3b3JzdAo+Pj4+PiBjYXNlLCBoZW5jZSBza2lwcGluZyB0aGUgY2hlY2sgZm9yIHRoYXQgaXMg YnJlYWtpbmcgdGhlIHNhbml0eSBjaGVjaykgYW5kCj4+Pj4+IHNvIGNoYW5nZWQgdGhlIHBhdGNo IGZyb20gImNvcnJlY3QsIGJ1dCBhIGJpdCBmcmFnaWxlIiB0byBicm9rZW4uIEkndmUKPj4+Pj4g bWVyZ2VkIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGluc3RlYWQuCj4+Pj4+IC1EYW5pZWwKPj4+PiBJ J20gY29uZnVzZWQuIEkgdGhvdWdodCB5b3VyIG1haW4gaXNzdWUgd2FzIHRoZSBlYXJseSB3cmFw cGluZyBub3QgdGhlCj4+Pj4gc2FuaXR5IGNoZWNrLiBUaGUgY2hlY2sgaXMgdG8gZW5zdXJlIHRo YXQgdGhlIHJlc2VydmF0aW9uIGlzIGxhcmdlIGVub3VnaCB0bwo+Pj4+IGNvdmVyIGFsbCB0aGUg Y29tbWFuZHMgd3JpdHRlbiBkdXJpbmcgcmVxdWVzdCBzdWJtaXNzaW9uLiBUaGF0IHNob3VsZCBu b3QgYmUKPj4+PiBhZmZlY3RlZCBieSB3aGV0aGVyIGEgd3JhcCBvY2N1cnMgb3Igbm90LiBXcmFw cGluZyBkb2VzIG5vdCBtYWdpY2FsbHkgYWRkIGFuCj4+Pj4gZXh0cmEgYnVuY2ggb2YgZHdvcmRz IHRvIHRoZSBlbWl0X3JlcXVlc3QoKSBjYWxsLiBXaGVyZWFzIG1ha2luZyB0aGUgY2hlY2sKPj4+ PiB3b3JrIHdpdGggdGhlIHdyYXAgY29uZGl0aW9uIHJlcXVpcmVzIGFkZGluZyBpbiBleHRyYSB0 cmFja2luZyBzdGF0ZSBvZgo+Pj4+IGV4YWN0bHkgd2hlcmUgdGhlIHdyYXAgb2NjdXJyZWQuIFRo YXQgaXMgZXh0cmEgY29kZSB0aGF0IG9ubHkgZXhpc3RzIHRvCj4+Pj4gY2F0Y2ggc29tZXRoaW5n IGluIHRoZSB2ZXJ5IHJhcmUgY2FzZSB3aGljaCBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gY2F1 Z2h0Cj4+Pj4gaW4gdGhlIHZlcnkgY29tbW9uIGNhc2UuIEkuZS4gaWYgeW91ciByZXNlcnZlZCBz aXplIGlzIHRvbyBzbWFsbCB0aGVuIHlvdQo+Pj4+IHdpbGwgaGl0IHRoZSB3YXJuaW5nIG9uIGV2 ZXJ5IGJhdGNoIGJ1ZmZlciBzdWJtaXNzaW9uLgo+Pj4gVGhlIHByb2JsZW0gaXMgdGhhdCBpZiB5 b3UgYWxsb3cgYSB3cmFwIGluIHRoZSByZXNlcnZlIHNpemUgdGhlbiB0aGUKPj4+IHJpbmdzcGFj ZSByZXF1aXJlbWVudHMgYXJlIGJpZ2dlciB0aGFuIGlmIHlvdSBkb24ndCB3cmFwLiBBbmQgc2lu Y2UgdGhlCj4+PiBhZGQgcmVxdWVzdCBpcyBzcGxpdCB1cCBpbnRvIG1hbnkgaW50ZWxfcmluZ19i ZWdpbiB0aGF0J3MgcG9zc2libGUuIEhlbmNlCj4+PiBpZiB5b3UgYWxsb3cgd3JhcHBpbmcgaW4g dGhlIHJlc2VydmVkIHNwYWNlLCB0aGVuIHRoZSBtb3N0IGltcG9ydGFudCBjYXNlCj4+PiBmb3Ig dGhlIGRlYnVnIGNoZWNrIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IGl0IGNhdGNoZXMgYW55IGtpbmQg b2YKPj4+IHJlc2VydmF0aW9uIG92ZXJmbG93IHdoaWxlIHdyYXBwaW5nLiBUaGUgbm90LXdyYXBw ZWQgY2FzZSBpcyBwcm9iYWJseSB0aGUKPj4+IGJvcmluZyBvbmUuCj4+Pgo+Pj4gQW5kIGluZGVl ZCBldmVudHVhbGx5IHdlIHNob3VsZCBvdmVyZmxvdyBzaW5jZSBhY2NvcmRpbmcgdG8geW91ciBj b21tZW50Cj4+PiB0aGUgd29yc3QgY2FzZSBhZGQgcmVxdWVzdCBvbiBpbGsgaXMgMTM2IGR3b3Jk cy4gQW5kIHRoZSBsYXJnZXN0Cj4+PiBpbnRlbF9yaW5nX2JlZ2luIGluIHRoZXJlIGlzIDMyIGR3 b3Jkcywgd2hpY2ggbWVhbnMgYXQgbW9zdCB3ZSdsbCB0aHJvdwo+Pj4gYXdheSAzMSBkd29yZHMg d2hlbiB3cmFwcGluZy4gV2hpY2ggbWVhbnMgdGhlIDE2MCBkd29yZHMgb2YgcmVzZXJ2YXRpb24K Pj4+IGFyZSBub3QgZW5vdWdoIHNpbmNlIHdlJ2QgbmVlZCAxNjcgZHdvcmRzIG9mIHNwYWNlIGZv ciB0aGUgd29yc3QgY2FzZS4gQnV0Cj4+PiBzaW5jZSB0aGUgc3BhY2VfZW5kIGRlYnVnIGNoZWNr IHdhcyBhIG5vLW9wIGZvciB0aGUgd3JhcHBlZCBjYXNlIHlvdSB3b24ndAo+Pj4gY2F0Y2ggdGhp cyBvbmUuCj4+IFRoZSBtaW5pbXVtIHJlc2VydmF0aW9uIHNpemUgaW4gdGhpcyBjYXNlIGlzIHN0 aWxsIG9ubHkgMTM2LiBUaGUgcHJlcGFyZQo+PiBjb2RlIGNoZWNrcyBmb3IgdGhlIDMyIHdvcmRz IGFjdHVhbGx5IHJlcXVlc3RlZCBhbmQgd3JhcHMgaWYgbmVjZXNzYXJ5LiBJdAo+PiB0aGVuIGNo ZWNrcyBmb3IgMTM2KzMyIHdvcmRzIG9mIHNwYWNlLiBJZiB0aGF0IHdvdWxkIGNhdXNlIGEgd3Jh cCBpdCB3aWxsCj4+IHRoZW4gYWRkIG9uIHRoZSBhbW91bnQgb2Ygc3BhY2UgYWN0dWFsbHkgbGVm dCBpbiB0aGUgcmluZyBhbmQgd2FpdCBmb3IgdGhhdAo+PiBiaWdnZXIgdG90YWwuIFRoYXQgZ3Vh cmFudGVlcyB0aGF0IGl0IGhhcyB3YWl0ZWQgZm9yIHRoZSAxMzYgYXQgdGhlIHN0YXJ0IG9mCj4+ IHRoZSByaW5nLiBUaGUgY2FsbGVyIGlzIHRoZW4gZnJlZSB0byBmaWxsIGluIHRoZSAzMiB3b3Jk cyBhbmQgdGhlcmUgaXMgc3RpbGwKPj4gZ3VhcmFudGVlZCB0byBiZSBhIG1pbmltdW0gb2YgMTM2 IHdvcmRzIGF2YWlsYWJsZSAod2l0aCBvciB3aXRob3V0IHdyYXBwaW5nKQo+PiBiZWZvcmUgYW55 IGZ1cnRoZXIgd2FpdCBmb3Igc3BhY2UgaXMgbmVjZXNzYXJ5LiBUaHVzIHRoZSBhZGRfcmVxdWVz dCgpIGNvZGUKPj4gaXMgc2FmZSBmcm9tIGZlYXIgb2YgZmFpbHVyZSBpcnJlc3BlY3RpdmUgb2Yg d2hlcmUgYW55IHdyYXAgbWlnaHQgb2NjdXIuCj4+Cj4+Cj4+PiBXcnQga2VlcGluZyB0cmFjayBv ZiB3cmFwcGluZyB3aGlsZSB0aGUgcmVzZXJ2YXRpb24gaXMgaW4gdXNlLCB0aGUKPj4+IGZvbGxv d2luZyBzaG91bGQgZG8gdGhhdCB3aXRob3V0IGFueSBuZWVkIG9mIGFkZGl0aW9uYWwgdHJhY2tp bmc6Cj4+Pgo+Pj4KPj4+IAlpbnQgdXNlZF9zaXplID0gcmluZ2J1Zi0+dGFpbCAtIHJpbmdidWYt PnJlc2VydmVkX3RhaWw7Cj4+Pgo+Pj4gCWlmICh1c2VkX3NpemUgPCAwKQo+Pj4gCQl1c2VkX3Np emUgKz0gcmluZ2J1Zi0+c2l6ZTsKPj4+Cj4+PiAJV0FSTih1c2VkX3NpemUgPCByaW5nYnVmLT5y ZXNlcnZlZF9zaXplLAo+Pj4gCSAgICAgInJlcXVlc3QgcmVzZXJ2ZWQgc2l6ZSB0b28gc21hbGw6 ICVkIHZzICVkIVxuIiwKPj4+IAkgICAgIHVzZWRfc2l6ZSwgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZSk7Cj4+Pgo+Pj4gSSB3YXMgbWlzdGFrZW4gdGhhdCB5b3UgY2FuIHJldXNlIF9faW50ZWxfcmlu Z19zcGFjZSAoc2luY2UgdGhhdCBoYXMKPj4+IHNsaWdodGx5IGRpZmZlcmVudCByZXF1aXJlbWVu dHMpLCBidXQgdGhpcyBnaXZlcyB5b3UgYSBuaWNlbHkgbG9jYWxpemVkCj4+PiBjaGVjayBmb3Ig cmVzZXJ2YXRpb24gb3ZlcmZsb3cgd2hpY2ggd29ya3MgZXZlbiB3aGVuIHlvdSB3cmFwLiBPZmMg aXQKPj4+IHdvbid0IHdvcmsgaWYgYW4gYWRkX3JlcXVlc3QgaXMgYmlnZ2VyIHRoYW4gdGhlIGVu dGlyZSByaW5nLCBidXQgdGhhdCdzCj4+PiBpbXBvc3NpYmxlIGFueXdheSBzaW5jZSB3ZSBjYW4g YXQgbW9zdCByZXNlcnZlIHJpbmdidWYtPnNpemUgLQo+Pj4gSTkxNV9SSU5HX0ZSRUVfU1BBQ0Uu Cj4+IFRoZSBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIGNhbGN1bGF0aW9uIGlzIHRoYXQgaXQgaW5j bHVkZXMgdGhlIHdhc3RlZCBzcGFjZQo+PiBhdCB0aGUgZW5kIG9mIHRoZSByaW5nLiBUaHVzIGl0 IHdpbGwgY29tcGxhaW4gdGhlIHJlc2VydmVkIHNpemUgd2FzIHRvbwo+PiBzbWFsbCB3aGVuIGlu IGZhY3QgaXQgd2FzIGp1c3QgZmluZS4KPiBPayBJIGFnYWluIG1pc3VuZGVyc3Rvb2QgeW91ciBw YXRjaCBhIGJpdCBzaW5jZSBpdCBkaWRuJ3QgcXVpdGUgZG8gd2hhdCBJCj4gZXhwZWN0LCBhbmQg SSBzdGFuZCBjb3JyZWN0ZWQgdGhhdCB2NSB3b3JrcyB0b28uIEJ1dCBJIHN0aWxsIHNlZW0gdG8g ZmFpbAo+IHRvIGdldCBteSBtYWluIGNvbmNlcm4gYWNyb3NzLiBJJ2xsIHNlZSB3aGV0aGVyIEkg Y2FuIHdoaXAgdXAgYSBwYXRjaCBhcyBhCj4gc2hvcnQgZGVtb25zdHJhdGlvbiwgbWF5YmUgdGhh dCBoZWxwcyB0byB1bmNvbmZ1c2UgdGhpcyBkaWN1c3Npb24uCj4KPiBGb3Igbm93IEkgdGhpbmsg d2UncmUgY292ZXJlZCB3aXRoIGVpdGhlciB2NCBvciB2NSBzbyBzdGlja2luZyB3aXRoIGVpdGhl cgo+IGlzIG9rIHdpdGggbWUuCj4gLURhbmllbAoKSSB0aGluayB2NSBpcyBtdWNoIGJldHRlci4g SXQgcmVkdWNlcyB0aGUgcmluZyBzcGFjZSB3YXN0YWdlIHdoaWNoIEkgCnRob3VnaHQgd2FzIHlv dXIgbWFpbiBjb25jZXJuLgoKVGhlIHByb2JsZW0gd2l0aCBhIG1vcmUgc2ltcGxpc3RpYyBhcHBy b2FjaCB0aGF0IGp1c3QgZG91YmxlcyB0aGUgCm1pbmltdW0gcmVzZXJ2ZSBzaXplIHRvIGVuc3Vy ZSB0aGF0IGl0IHdpbGwgZml0IGJlZm9yZSBvciBhZnRlciBhIHdyYXAgCmlzIHRoYXQgeW91IGFy ZSBkb3VibGluZyB0aGUgcmVzZXJ2ZSBzaXplLiBUaGF0IHRvbyBpcyByYXRoZXIgd2FzdGVmdWwg Cm9mIHJpbmcgc3BhY2UuIEl0IGFsc28gbWVhbnMgdGhhdCB5b3Ugb25seSBmaW5kIG91dCB3aGVu IHRoZSByZXNlcnZlIApzaXplIGlzIHRvbyBzbWFsbCB3aGVuIHlvdSBoaXQgdGhlIG1heGltdW0g dXNhZ2UgY29pbmNpZGVudCB3aXRoIGEgd29yc3QgCmNhc2Ugd3JhcCBwb2ludC4gV2hlcmVhcyB0 aGUgdjUgbWV0aG9kIG1lYW5zIHRoYXQgeW91IG5vdGljZSBhIHRvbyBzbWFsbCAKcmVzZXJ2ZSB3 aGV0aGVyIHdyYXBwaW5nIG9yIG5vdC4KCkpvaG4uCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=