From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 00/15] Batch submission via GuC Date: Wed, 24 Jun 2015 14:16:05 +0200 Message-ID: <20150624121605.GF25769@phenom.ffwll.local> References: <1434393394-21002-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 8142F6E604 for ; Wed, 24 Jun 2015 05:13:19 -0700 (PDT) Received: by wiwl6 with SMTP id l6so93471368wiw.0 for ; Wed, 24 Jun 2015 05:13:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434393394-21002-1-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: Vinit Azad , intel-gfx@lists.freedesktop.org, Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKT2sgdG9wIHBvc3Qgb24gdGhpcyBmaXJtd2FyZSBsb2FkaW5nIHByb2JsZW0uIEZp cnN0IHRvIG5vdGUgaW1vIGlzIHRoYXQKb2ZmIHRoZSBvdmVyIDgwIHJlcXVlc3RfZmlybXdhcmUg Y2FsbHMgaW4gZHJtIGRyaXZlcnMgb25seSBvbmUgKG91dHNpZGUgb2YKaTkxNSkgdXNlcyByZXF1 ZXN0X2Zpcm13YXJlX25vd2FpdC4gQW5kIG5vbmUgb2YgdGhlIG90aGVyIGhhdmUgYXN5bmMKZmly bXdhcmUgbG9hZGluZyBpbXBsZW1lbnRlZCB3aXRoIHRoZWlyIG93biBkcml2ZXIuIFRoYXQgd2Fz IGtpbmRhIG15CmJhY2tncm91bmQgZm9yIGFsbCB0aGlzIGFuZCB3aHkgSSBtaXNzZWQgdGhlIGVu dGlyZSBkZXNpZ24gaW1wbGljYXRpb25zIC0KSSBleHBlY3RlZCB0aGF0IHRoZSBlbnRpcmV0eSBv ZiB0aGUgZmlybXdhcmUgbG9hZGluZyBwcm9ibGVtIHdvdWxkIGJvaWwKZG93biB0byBvbmUgcmVx dWVzdF9maXJtd2FyZSgpIGNhbGwgYW5kIHRoYXQncyBpdC4KCk9idmlvdXNseSB0aGluZ3MgYXJl IG5vdCBxdWl0ZSBhcyBzaW1wbGUsIHNvIEkgc3RhcnRlZCB0byBkaWcgYXJvdW5kLgoKTG9va2lu ZyBhdCB0aGUgYmlnIGRyaXZlcnMgKG5vdXZlYXUgYW5kIHJhZGVvbi9hbWRncHUpIHRoZXkgb25s eSBldmVyIHRyeQp0byBsb2FkIHRoZSBmaXJtd2FyZSBvbmNlIGFuZCBpZiBpdCdzIG5vdCB0aGVy ZSB0aGV5IGVpdGhlciBmYWlsIGRyaXZlcgppbml0IG91dHJpZ2h0IChhbWQpIG9yIGRpc2FibGUg cGFydHMgb2YgaXQgKG5vdXZlYXUgY2FuIGUuZy4gZGlzYWJsZQphY2NlbGFyYXRpb24pLiBOb25l IG9mIHRoZW0gZXZlciBib3RoZXJzIHdpdGggYSAybmQgYXR0ZW1wdCBhdCBmaXJtd2FyZQpsb2Fk aW5nLgoKSSBjb25maXJtZWQgd2l0aCBzeXN0ZW1kL3VkZXYgZGV2ZWxvcGVycyB0aGF0IHN5bmNo cm9ub3VzIGZpcm13YXJlIGxvYWRpbmcKaXMgaW5kZWVkIGhvdyBtb2Rlcm4gc3lzdGVtcyBhcmUg ZXhwZWN0ZWQgdG8gd29yay4gV2hpY2ggYWxzbyBpbXBsaWVzIHRoYXQKaWYgeW91IHdhbnQgdG8g bG9hZCBhIGRyaXZlciBmcm9tIHRoZSBpbml0cmQsIHRoZW4gdGhlIGZpcm13YXJlIG11c3QgYmUg aW4KdGhlIGluaXRyZCAod2hpY2ggbW9kZXJuIGxpbnV4IGRpc3Ryb3MgZW5zdXJlKS4gQW5kIGlm IHlvdSBidWlsZCB0aGUKZHJpdmVyIGludG8gdGhlIGtlcm5lbCB0aGVuIHRoZSBmaXJtd2FyZSBh bHNvIG11c3QgYmUgYnVpbHQtaW4uIERlbGF5ZWQKbG9hZGluZyBvZiBmaXJtd2FyZSBpcyBjb25z aWRlcmVkIGJyb2tlbiB1c2Vyc3BhY2UuCgpUaGUgcmVhc29uIGZvciB0aGlzIGRlc2lnbiBzd2l0 Y2ggaXMgdGhhdCB3aXRoIHRoZSBkZWxheWVkIGxvYWRpbmcgZG9uZQp5ZWFycyBhZ28gcmFuZG9t IHRpbWVvdXRzIHdoZW4gdGhlIGZpcm13YXJlIHdvdWxkIG5ldmVyIHNob3cgdXAgcm91dGluZWx5 CnNob3dlZCB1cCB3aGVuIGJvb3RpbmcuIEFuZCBvbiBhIGdlbmVyYWwtcHVycG9zZSBkaXN0cm8g dGhlcmUncyBubyB3YXkgdG8Ka25vdyB3aGV0aGVyIHRoZSBmaXJtd2FyZSBpc24ndCBsb2FkZWQg eWV0IGJlY2F1c2UgdXNlcnNwYWNlIGlzbid0IHJlYWR5Cm9yIGJlY2F1c2UgaXQncyBzaW1wbHkg bm90IHRoZXJlLiBIZW5jZSB0aGUgc3dpdGNoIG92ZXIgdG8gaW1tZWRpYXRlCmZhaWx1cmUgYW5k IHJlcXVpcmluZyB0aGUgZmlybXdhcmUgdG8gYmUgcHJlc2VudCB3aGVuIHRoZSBkcml2ZXIgaXMK aW5pdGlhbGl6aW5nLgoKU28gZnJvbSB0aGF0IHBvdiB0aGUgb25seSAoYW5kIHJlYWxseSB0aGUg b25seSB0aGluZykgd2UgbmVlZCBmb3IgZW5hYmxpbmcKZmlybXdhcmUgbG9hZGluZyBvbiBhIG5v cm1hbCBsaW51eCBkaXN0cm8gaXMgYSBzeW5jaHJvbm91cwpyZXF1ZXN0X2Zpcm13YXJlIGNhbGwg aW4gdGhlIGRyaXZlciBsb2FkIGZ1bmN0aW9uIHNvbWV3aGVyZS4gVGhpcyBtaWdodApuZWVkIHNv bWUgYWRqdXN0ZW1lbnRzIHRvIHRoZSBpbml0cmQgYnVpbGRlcnMgaW4gdXNlcnNwYWNlLCBidXQg dGhhdCdzIGFsbAp3ZSBuZWVkIGluIHRoZSBrZXJuZWwuCgpUaGlzIGlzIGFsc28gYWxsIHdlIG5l ZWQgdG8gZW5hYmxlIGludGVybmFsIHRlc3RpbmcsIHNpbmNlIGFzIGxvbmcgYXMgeW91CmRvbid0 IHNoaXAgdGhlIHJlc3VsdGluZyBpbWFnZSBhbnl3aGVyZSB5b3UgY2FuIGFsd2F5cyBidWlsdC1p biB0aGUKZmlybXdhcmUsIHdoaWNoIGFsc28gcmVzb2x2ZXMgYW55ICJmaXJtd2FyZSBpc24ndCB0 aGVyZSB5ZXQiIGJ1Z3MuCgpOb3cgaWYgeW91IHdhbnQgZGVsYXllZCBmaXJtd2FyZSBsb2FkaW5n IHRoZXJlJ3Mgc3RpbGwgc3VwcG9ydCBmb3IgdGhhdCwKaGlkZGVuIGJlaGluZCB0aGUgRldfTE9B REVSX1VTRVJfSEVMUEVSX0ZBTExCQUNLIGtlcm5lbCBjb25maWcuIFdoaWNoCmJlY2F1c2Ugb2Yg dGhlIHVuZml4YWJsZSB0aW1lb3V0cyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBhbmQgYWxzbyBu bwpsb25nZXIgc3VwcG9ydGVkIG9uIHRoZSB1c2Vyc3BhY2Ugc2lkZSBpbiBtb2Rlcm4gZGlzdHJv cy4gQnV0IHRoZSB1ZXZlbnQKaGFuZGxlciBpcyBvbmx5IDMgbGluZXMgb2YgYmFzaCwgc28gbm90 IGEgYmlnIGRlYWwgdG8gd2lyZSB1cC4KCkV4Y2VwdCB0aGF0IGZvciBoeXN0ZXJpY2FsIHJhaXNp bnMgKG9uZSBzcGVjaWFsIHNub3dmbGFrZSBkcml2ZXIgbmVlZHMgaXQKbGlrZSB0aGF0LCBhbmQg dGhlIHBhdGNoIGF1dGhvciBkZWNpZGVkIGl0J3MgZWFzaWVyIHRvIGhhdmUgYW4gaW5jb25zaXN0 ZW4KaW50ZXJmYWNlIHRoYW4gZml4IHVwIHRoYXQgZHJpdmVyKSB0aGlzIHVzZXJzcGFjZSBmYWxs YmFjayBzdHVmZiBvbmx5CndvcmtzIHdpdGggdGhlIHJlcXVlc3RfZmlybXdhcmUgaW50ZXJmYWNl LCBhbmQgX25vdF8gd2l0aApyZXF1ZXN0X2Zpcm13YXJlX25vd2FpdC4gRGVzcGl0ZSB0aGF0IGJv dGggcnVuIGVzc2VudGlhbGx5IHRoZSBzYW1lIGNvZGUsCl9ub3dhaXQgc2ltcGx5IHdyYXBzIGl0 IHVwIGluIGFuIGFzeW5jIHdvcmsgZm9yIGNvbnZlbmllbmNlLgoKVGhhdCBtZWFucyB0byBiZSBh YmxlIHRvIHVzZSB0aGlzIHdlIG5lZWQgb3VyIG93biBhc3luYyB3b3JrIGl0ZW0gYW5kIHVzZQpy ZXF1ZXN0X2Zpcm13YXJlIGluIHRoZXJlLiBDb252ZXJ0aW5nIHRoZSBpbXBsaWNpdCBhc3luYyB3 b3JrIHRvIGFuCmV4cGxpY2l0IG9uZSBpcyBiZXR0ZXIgYW55d2F5IHNpbmNlIGl0IG1ha2VzIGl0 IG1vcmUgbGlrZWx5IHRoYXQgcGF0Y2gKYXV0aG9ycyBhbmQgcmV2aWV3ZXJzIGRvbid0IGZvcmdl dCB0byBjb3JyZWN0bHkgc3luY2hyb25pemUvZmx1c2ggd2l0aAp0aGF0IGFzeW5jIHdvcmsuIERN QyBsb2FkZXIgaXMgYSBwZXJmZWN0IGV4YW1wbGUgb2Ygd2h5IGltcGxpY2l0IGFzeW5jCmNhbGxi YWNrcyBhcmUgZXZpbCBpbiBrZXJuZWwgY29kZS4KClRoZSBwcm9ibGVtIG5vdyBpcyB0aGF0IGRv aW5nIHBhcnRzIG9mIGdlbSBpbml0IGFzeW5jaHJvbm91c2x5IGlzIHJlYWxseQpzY2FyeSwgYW5k IHdlIG5ldmVyIGhhZCBhIHByb3BlciBkZXNpZ24gZGlzY3Vzc2lvbiBhYm91dCB0aGF0LiBBbmQK dW5zdXJwcmlzaW5nbHkgYSBsb3Qgb2YgdGhlIHJldmlldyBjb21tZW50cyBjZW50ZXIgYXJvdW5k IHRoYXQuIE90b2ggd2UKZG9uJ3Qgd2FudCB0byBibG9jayBtZXJnaW5nIGd1Yy1iYXNlZCBjbWQg c3VibWlzc2lvbiBqdXN0IG9uIHRoYXQuClRoZXJlZm9yZSBteSBwcm9wb3NhbCBpcyB0byByaXAg b3V0IHRoZSBjdXJyZW50IGZpcm13YXJlbG9hZGVyIGFuZAphc3luYyByZXNwZWN0aXZlbHkgcmUt bG9hZGluZyBjb2RlIHdpdGggYWxsIGl0J3MgY29tcGxpY2F0aW9ucyBmcm9tbSB0aGUKY3VycmVu dCBwYXRjaCBzZXJpZXMsIGFuZCByZXBsYWNlIGl0IHdpdGggYSBzaW1wbGUmc3luY2hyb25vdXMK cmVxdWVzdF9maXJtd2FyZS4gQWxzbyBubyBmYWxsYmFja3MgdG8ga2VlcCBldmVyeXRoaW5nIHNp bXBsZS4gVGhlIGFjdHVhbApndWMgZW5hYmxpbmcgaXRzZWxmIHNob3VsZCBjYXJyeSBvdmVyIHVu Y2hhbmdlZC4KCldpdGggdGhhdCB3ZSBjYW4gdW5ibG9jayBldmVyeW9uZSAoYXQgbGVhc3QgaW50 ZXJuYWxseSkgYW5kIGZpZ3VyZSBvdXQgYQpwcm9wZXIgc29sdXRpb25zIGZvciBhc3luYyBnZW0g aW5pdC4gVG8ga2lja3N0YXJ0IHRoZSBkZXNpZ24gZGlzY3Vzc2lvbgpmb3IgdGhhdCBhIGZldyBn ZW5lcmFsIGFuZCBnZW0tc3BlY2lmaWMgdGhpbmdzIEkgdGhpbmsgYXJlIGltcG9ydGFudDoKCi0g TG9ja2luZywgYXN5bmMgd29yayBhbmQgY29vcmRpbmF0aW9uIHNob3VsZCBpbW8gYWxsIGJlIGRv bmUgZXhwbGljaXRseQogIGluIHRoZSBjb2RlIGJ5IGRlZmF1bHQuIE90aGVyd2lzZSBjaGFuY2Vz IGFyZSB3YXkgdG8gaGlnaCB0aGF0IGNyaXRpY2FsCiAgaXNzdWVzIGdldCBvdmVybG9va2VkIGlu IHRoZSBkZXRhaWxlZCBjb2RlIHJldmlldy4gVGhhdCBtZWFucyBhbgogIGV4cGxpY2l0IHNjaGVk dWxlX3dvcmsgYW5kIGZvciBzeW5jaHJvbml6YXRpb24gZXhwbGljaXQgZmx1c2hfd29yay4gTm8K ICBoaWRpbmcgdGhlbSBpbiBmcmFtZXdvcmtzIGFuZCBoZWxwZXIgbGlicmFyaWVzLgoKLSBkZXYt PnN0cnVjdF9tdXRleCBpcyBzY2FyeSBhbmQgc2hvdWxkbid0IGV2ZXIgYmUgZXh0ZW5kZWQuIE5l dyBzdHVmZgogIG5lZWRzIG5ldyBsb2NraW5nLiBNaWdodCBub3QgYXBwbHkgaGVyZSBmb3IgZ3Vj IHNwZWNpZmljYWxseSwgYnV0IGp1c3QgYQogIGdlbmVyYWwgcHJpbmNpcGxlLgoKLSBJJ20gYWJz b2x1dGVseSBzY2FyZWQgb2ZmIHBsYXRmb3JtL2ZlYXR1cmUgZGlmZmVyZW5jZXMgaW4gaG93IHRo ZQogIG92ZXJhbGwgZHJpdmVyIGxvYWQgc2VxdWVuY2Ugd29ya3MuIFdoaWNoIG1lYW5zIGlmIHdl IG5lZWQgYXN5bmMgZ2VtCiAgaW5pdCBmb3IgZ3VjLCB0aGVuIHdlIHdpbGwgZG8gYXN5bmMgZ2Vt IGluaXQgZm9yIGV2ZXJ5b25lLiBUaGF0IG1lYW5zCiAgaW1wcm92ZWQgdGVzdCBjb3ZlcmFnZSBm b3IgY29ybmVyLWNhc2VzIGFuZCBsZWFzcyBoZWFkYWNoZXMgdG8ga2VlcCB0aGUKICB1bmlmaWVk IGRyaXZlciBhZmxvYXQgc2luY2UgdGhlcmUncyBvbmx5IG9uZSB3YXkgdG8gZG8gdGhpbmdzLiBP ZiBjb3Vyc2UKICB0aGlzIG9ubHkgYXBwbGllcyB0byBodyBmZWF0dXJlcyBhY3R1YWxseSBzaGFy ZWQgYmV0d2VlbiBwbGF0Zm9ybXMsIGUuZy4KICBpZiB3ZSBkbyBhc3luYyBkbWMgbG9hZGluZyB0 aGF0IGRvZXNuJ3QgbWVhbiB3ZSBuZWVkIHRvIGRvIGFzeW5jIGxvYWRpbmcKICBvZiBzb21lIG90 aGVyIHVucmVsYXRlZCBkaXNwbGF5IGZlYXR1cmUuIEd1QyBpcyBzcGVjaWFsIGhlcmUgYmVjYXVz ZQogIGNtZCBzdWJtaXNzaW9uIGlzIHRoZSBlbnRpcmUgcG9pbnQgb2YgZ2VtIGFuZCBoZW5jZSBo YXMgYSBiaWcgaW1wYWN0LgoKLSBJZiB3ZSBkbyBhc3luYyBpbml0IGF0IGRyaXZlciBsb2FkIHRp bWUsIHRoZW4gd2UnbGwgYWxzbyBkbyB0aGUgc2FtZSBvbgogIHJlc3VtZSBhbmQgZ3B1IHJlc2V0 LCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyB0aGUgY3Jvc3MtcGxhdGZvcm0KICBjb25zaXN0ZW5j eS4gRm9yIEd1QyBhc3luYyBnZW0gaW5pdCBvbiBncHUgcmVzZXQgbWlnaHQgbm90IG1ha2UgdGhh dAogIG11Y2ggc2Vuc2UsIHNpbmNlIGdwdSByZXNldCBpcyBwcmV0dHkgbXVjaCBqdXN0IGdlbSAo cmUpIGluaXQgYW5kIGl0J3MKICBhbHJlYWR5IGFuIGFzeW5jIHdvcmtlci4gQnV0IGFzeW5jIGdl bSBpbml0IG9uIHJlc3VtZSBkZWZpbml0ZWx5IG1ha2VzCiAgc2Vuc2UuCgotIEEgY29tbW9uIGNv bmZ1c2lvbiBJIHNlZSB3aXRoIGNvbmN1cnJlbnQgY29kZSBpcyBtaXhpbmcgdXAgZGF0YQogIGNv bnNpc3RlbmN5IChyZXNvbHZlZCB3aXRoIGxvY2tpbmcpIGFuZCBoYW5kbGluZyBzeW5jaHJvbml6 YXRpb24gYW5kCiAgbGlmZXRpbWVzIChyZXNvbHZlZCB3aXRoIHJlZmNvdW50aW5nLCBjb21wbGV0 aW9ucyBhbmQgb3RoZXIKICBzeW5jaHJvbml6YXRpb24gZGVzaWduIHBhdHRlcm5zKS4gVGhlcmUn cyBncmV5IGFyZWFzIGFuZCBleGNlcHRpb25zLCBidXQKICBJJ20gZmFpcmx5IHBpY2t5IG9uIHRo aXMgdG9waWMuIEFsc28gYSBiaWcgbm8tZ28gaXMgcm9sbGluZyB5b3VyIG93bgogIHN5bmNocm9u aXphdGlvbiAtIHdlIGhhdmUgdHdvIG9mIHRoZXNlIGluIGk5MTUgKHBhZ2VmbGlwIGNvbXBsZXRp b24gYW5kCiAgcmVzZXQgaGFuZGxpbmcpIGFuZCBib3RoIGFyZSBzdGlsbCBzdXNwZWN0IG9yIG91 dHJpZ2h0IGJyb2tlbiBhZnRlcgogIHllYXJzIG9mIGJhbmdpbmcgaGVhZHMgYWdhaW5zdCB0aGVz ZSB3YWxscy4KCi0gRm9yIGFzeW5jIGdlbSBpbml0IGl0J3MgdGVtcHRpbmcgdG8gcmVwdXJwb3Nl IHRoZSBncHUgcmVzZXQgY29kZSB3aXRoCiAgYWxsIHRoZSBleGlzdGluZyBzeW5jaHJvbml6YXRp b246IFdlJ2Qgb25seSBuZWVkIHRvIHNldCB0aGUKICBSRVNFVF9JTl9QUk9HUkVTUyBmbGFnIHN5 bmNocm9ub3VzbHkgYW5kIHRoZW4gcnVuIGEgZ3B1IHJlc2V0IGFmdGVyIHRoZQogIGZpcm13YXJl IGlzIGxvYWRlZCwgYWxsIGZyb20gdGhlIGFzeW5jIHdvcmtlci4gVGhlIHByb2JsZW0gd2l0aCB0 aGF0IGlzCiAgdGhhdCB3ZSBzdGlsbCBoYXZlIGlzc3VlcyB3aXRoIHJvZ3VlIC1FSU8gZXNjYXBp bmcgaW50byB0aGUgbW9kZXNldCBjb2RlCiAgd2hpbGUgYSByZXNldCBpcyBwZW5kaW5nLCBhbmQg dGhhdCB3b3VsZCBub3QgYmUgZ29vZCBzaW5jZSB3ZSB3YW50CiAgbW9kZXNldHMgdG8gd29yayBy aWdodCBhd2F5IG9mYy4gQWxzbyBtb3N0IG1vZGVzZXQgcGF0aHMgbmVlZCB0byBzdGFsbAogIGZv ciBncHUgcmVzZXRzIHN5bmNocm9ub3VzbHksIHdoaWNoIGFnYWluIGlzbid0IHdoYXQgd2Ugd2Fu dC4KCi0gV2Ugc2hvdWxkIGJlIGFibGUgdG8gcmV1c2UgYXQgbGVhc3QgdGhlIGxvY2tpbmcgc2No ZW1lIGdwdSByZXNldCByZWxpZXMKICBvbi4gQW5kIHNpbmNlIGdwdSByZXNldHMgcnVuIGdlbV9p bml0X2h3IHdlIHNob3VsZCBiZSBhYmxlIHRvIHJ1biB0aGF0CiAgYXN5bmNocm9ub3VzbHksIHdp dGggc29tZSBjYXJlLgoKLSBCZXNpZGUgc3luY2hyb25pemluZyBhdCBvcGVuIHRpbWUgbGlrZSB5 b3UncmUgZG9pbmcgbm93LCBvciBpbiB0aGUgZ3V0cwogIG9mIHRoZSBscmMgY3R4IHN1bWJpc3Np b24gY29kZSBsaWtlIENocmlzIHN1Z2dlc3RlZHMgdGhlIG5vdyBtZXJnZWQKICBhbnRpLW9sciBh bHNvIGdpdmVzIHVzIHRoZSBwb3NzaWJpbGl0eSB0byBzeW5jIGF0IHJlcXVlc3QgY3JlYXRpb24u IFRoZQogIHByb2JsZW1zIEkgc2VlIHdpdGggdGhhdCBpcyBsb2NraW5nIGludmVyc2lvbnMgYmV0 d2VlbiBmbHVzaF93b3JrIGFuZAogIGRldi0+c3RydWN0X211dGV4LiBCdXQgd2UgY291bGQgZml4 IHRoYXQgd2l0aCB0aGUgaW9jdGwgcmVzdGFydCBoYW5kbGluZwogIHdlIGFscmVhZHkgaGF2ZS4g QnV0IHRoYXQgaGFzIHRoZSBzYW1lIGNhdmVhdHMgYXMgdGhlIC1FSU8gaGFuZGxpbmcgLQogIG91 ciBtb2Rlc2V0IGNvZGUgZG9lc24ndCBjb3BlIHdlbGwgd2l0aCAtRUFHQUlOLgoKICBGb3IgbWUg dGhlIGV4YWN0IHN5bmNocm9uaXphdGlvbiBwb2ludCB3aXRoIHRoZSBhc3luYyBnZW0gaW5pdCB3 b3JrIGlzCiAgdGhlIHJlYWxseSBiaWcgb3BlbiBoZXJlLgoKQW55d2F5IHRoYXQncyBteSB0aG91 Z2h0cyBvbiBmaXJtd2FyZSBsb2FkaW5nIGFuZCBhbGwgdGhhdCwgSSBob3BlIHRoaXMgaXMKdXNl ZnVsIGFzIGEgYmFzaXMgdG8gZ2V0IHRoaXMgbWVyZ2VkIGluIGFuIGVmZmljaWVudCB3YXkuCgpZ b3VycywgRGFuaWVsCgpPbiBNb24sIEp1biAxNSwgMjAxNSBhdCAwNzozNjoxOFBNICswMTAwLCBE YXZlIEdvcmRvbiB3cm90ZToKPiBUaGlzIHBhdGNoIHNlcmllcyBlbmFibGVzIGNvbW1hbmQgc3Vi bWlzc2lvbiB2aWEgdGhlIEd1Qy4gSW4gdGhpcyBtb2RlLAo+IGluc3RlYWQgb2YgdGhlIGhvc3Qg Q1BVIGRyaXZpbmcgdGhlIGV4ZWNsaXN0IHBvcnQgZGlyZWN0bHksIGl0IGhhbmRzCj4gb3ZlciB3 b3JrIGl0ZW1zIHRvIHRoZSBHdUMsIHVzaW5nIGEgZG9vcmJlbGwgbWVjaGFuaXNtIHRvIHRlbGwg dGhlIEd1Qwo+IHRoYXQgbmV3IGl0ZW1zIGhhdmUgYmVlbiBhZGRlZCB0byBpdHMgd29yayBxdWV1 ZS4gVGhlIEd1QyB0aGVuIGRpc3BhdGNoZXMKPiBjb250ZXh0cyB0byB0aGUgdmFyaW91cyBHUFUg ZW5naW5lcywgYW5kIG1hbmFnZXMgdGhlIHJlc3VsdGluZyBjb250ZXh0LQo+IHN3aXRjaCBpbnRl cnJ1cHRzLiBDb21wbGV0aW9uIG9mIGEgYmF0Y2ggaXMgaG93ZXZlciBzdGlsbCBzaWduYWxsZWQg dG8KPiB0aGUgQ1BVOyB0aGUgR3VDIGlzIG5vdCBpbnZvbHZlZCBpbiBoYW5kbGluZyB1c2VyIGlu dGVycnVwdHMuCj4gCj4gVGhlcmUgYXJlIHRocmVlIHN1YnNlcXVlbmNlcyB3aXRoaW4gdGhlIHBh dGNoIHNlcmllczoKPiAKPiAgIGRybS9pOTE1OiBBZGQgaTkxNV9nZW1fb2JqZWN0X3dyaXRlKCkg dG8gaTkxNV9nZW0uYwo+ICAgZHJtL2k5MTU6IEVtYmVkZGVkIG1pY3JvY29udHJvbGxlciAodUMp IGZpcm13YXJlIGxvYWRpbmcgc3VwcG9ydAo+IAo+IFRoZXNlIGZpcnN0IHR3byBwYXRjaGVzIHBy b3ZpZGUgYSBnZW5lcmljIGZyYW1ld29yayBmb3IgZmV0Y2hpbmcgdGhlCj4gZmlybXdhcmUgdGhh dCBtYXkgYmUgcmVxdWlyZWQgYnkgYW55IGVtYmVkZGVkIG1pY3JvY29udHJvbGxlciBmcm9tIGEK PiBmaWxlLCB1c2luZyBhbiBhc3luY2hyb25vdXMgdGhyZWFkIHNvIHRoYXQgZHJpdmVyIGluaXRp YWxpc2F0aW9uIGNhbgo+IGNvbnRpbnVlIHdoaWxlIHRoZSBmaXJtd2FyZSBpcyBiZWluZyBmZXRj aGVkLiBJdCBpcyBob3BlZCB0aGF0IHRoaXMKPiBmcmFtZXdvcmsgaXMgc3VmZmljaWVudGx5IGdl bmVyYWwgdGhhdCBpdCBjYW4gYmUgdXNlZCBmb3IgYWxsIGN1cmVudAo+IGFuZCBmdXR1cmUgbWlj cm9jb250cm9sbGVycy4KPiAKPiAgIGRybS9pOTE1OiBBZGQgR3VDLXJlbGF0ZWQgbW9kdWxlIHBh cmFtZXRlcnMKPiAgIGRybS9pOTE1OiBBZGQgR3VDLXJlbGF0ZWQgaGVhZGVyIGZpbGVzCj4gICBk cm0vaTkxNTogR3VDLXNwZWNpZmljIGZpcm13YXJlIGxvYWRlcgo+ICAgZHJtL2k5MTU6IERlYnVn ZnMgaW50ZXJmYWNlIHRvIHJlYWQgR3VDIGxvYWQgc3RhdHVzCj4gCj4gVGhlc2UgZm91ciBwYXRj aGVzIGNvbXBsZXRlIHRoZSBHdUMgbG9hZGVyLiBBdCB0aGlzIHBvaW50IGluIHRoZSBzZXF1ZW5j ZQo+IHdlIGNhbiBsb2FkIGFuZCBhY3RpdmF0ZSB0aGUgR3VDIGZpcm13YXJlLCBidXQgbm90IHN1 Ym1pdCBhbnkgYmF0Y2hlcwo+IHRocm91Z2ggaXQuIChUaGlzIGlzIG5vbmV0aGVsZXNzIGEgcG90 ZW50aWFsbHkgdXNlZnVsIHN0YXRlLCBhcyB0aGUgR3VDCj4gY2FuIGRvIG90aGVyIHVzZWZ1bCB3 b3JrIGV2ZW4gd2hlbiBub3QgaGFuZGxpbmcgYmF0Y2ggc3VibWlzc2lvbnMpLgo+IAo+ICAgZHJt L2k5MTU6IERlZmVyIGRlZmF1bHQgaGFyZHdhcmUgY29udGV4dCBpbml0aWFsaXNhdGlvbiB1bnRp bCBmaXJzdAo+ICAgZHJtL2k5MTU6IE1vdmUgZXhlY2xpc3RzIGRlZmluZXMgZnJvbSAuYyB0byAu aAo+ICAgZHJtL2k5MTU6IEd1QyBzdWJtaXNzaW9uIHNldHVwLCBwaGFzZSAxCj4gICBkcm0vaTkx NTogRW5hYmxlIEd1QyBmaXJtd2FyZSBsb2cKPiAgIGRybS9pOTE1OiBJbXBsZW1lbnRhdGlvbiBv ZiBHdUMgY2xpZW50Cj4gICBkcm0vaTkxNTogSW50ZXJydXB0IHJvdXRpbmcgZm9yIEd1QyBzdWJt aXNzaW9uCj4gICBkcm0vaTkxNTogSW50ZWdyYXRlIEd1Qy1iYXNlZCBjb21tYW5kIHN1Ym1pc3Np b24KPiAgIGRybS9pOTE1OiBEZWJ1Z2ZzIGludGVyZmFjZSBmb3IgR3VDIHN1Ym1pc3Npb24gc3Rh dGlzdGljcwo+ICAgRG9jdW1lbnRhdGlvbi9kcm06IGtlcm5lbGRvYyBmb3IgR3VDCj4gICBkcm0v aTkxNTogRW5hYmxlIEd1QyBzdWJtaXNzaW9uLCB3aGVyZSBzdXBwb3J0ZWQKPiAKPiBJbiB0aGUg ZmluYWwgc2VjdGlvbiwgd2UgaW1wbGVtZW50IHRoZSBHdUMgc3VibWlzc2lvbiBtZWNoYW5pc20s IGxpbmsKPiBpdCBpbnRvIHRoZSAoZXhlY2xpc3QtYmFzZWQpIHN1Ym1pc3Npb24gcGF0aCwgYW5k IGZpbmFsbHkgZW5hYmxlIGl0Cj4gKG9uIHN1cHBvcnRlZCBwbGF0Zm9ybXMpLiBPbiBwbGF0Zm9y bXMgd2hlcmUgdGhlcmUgaXMgbm8gR3VDLCBvciBpZgo+IHRoZSBHdUMgZmlybXdhcmUgY2Fubm90 IGJlIGZvdW5kIG9yIGlzIGludmFsaWQsIGJhdGNoIHN1Ym1pc3Npb24gd2lsbAo+IHJldmVydCB0 byB1c2luZyB0aGUgZXhlY2xpc3QgbWVjaGFuaXNtIGRpcmVjdGx5Lgo+IAo+IFRoZSBHdUMgZmly bXdhcmUgaXRzZWxmIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoc2V0OyBpdCBpcyBvciB3 aWxsCj4gYmUgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBmcm9tIGh0dHBzOi8vMDEub3JnL2xpbnV4 Z3JhcGhpY3MvZG93bmxvYWRzLwo+IFRoaXMgZHJpdmVyIHdvcmtzIHdpdGggYW5kIHJlcXVpcmVz IEd1QyBmaXJtd2FyZSByZXZpc2lvbiAzLnguIEl0IHdpbGwKPiBub3Qgd29yayB3aXRoIGFueSBm aXJtd2FyZSB2ZXJzaW9uIDEueCwgYXMgdGhlIEd1QyBwcm90b2NvbCBpbiB0aG9zZQo+IHJldmlz aW9ucyB3YXMgaW5jb21wYXRpYmxlIGFuZCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgo+IAo+IFBy ZXJlcXVpc2l0ZXM6IEd1QyBzdWJtaXNzaW9uIHdpbGwgZXhwb3NlIGV4aXN0aW5nIGluYWRlcXVh Y2llcyBpbgo+IHNvbWUgb2YgdGhlIGV4aXN0aW5nIGNvZGVwYXRocyB1bmxlc3MgY2VydGFpbiBv dGhlciBwYXRjaGVzIGFyZSBhcHBsaWVkLgo+IEluIHBhcnRpY3VsYXIgd2Ugd2lsbCByZXF1aXJl IHNvbWUgdmVyc2lvbiBvZiBNaWNoZWwgVGhpZXJyeSdzIHBhdGNoCj4gICBkcm0vaTkxNS9scmM6 IFVwZGF0ZSBQRFB4IHJlZ2lzdGVycyB3aXRoIGxyaSBjb21tYW5kcwo+IChiZWNhdXNlIHRoZSBH dUMgc3VwcG9ydCBsaWdodC1yZXN0b3JlLCB3aGljaCBleGVjbGlzdCBtb2RlIGRvZXNuJ3QpLAo+ IGFuZCBteSBvd24gCj4gICBkcm0vaTkxNTogQWxsb2NhdGUgT0xSIG1vcmUgc2FmZWx5ICh3b3Jr YXJvdW5kIHVudGlsIE9MUiBnb2VzIGF3YXkpCj4gYmVjYXVzZSBvdGhlcndpc2UgdGhlIGNoYW5n ZWQgdGltaW5nIG1lYW5zIHRoYXQgdGhlcmUgaXMgYW4gaW5jcmVhc2VkCj4gcmlzayBvZiB3cml0 aW5nIHRvIGEgcmluZ2J1ZmZlciB0aGF0IGlzIG5vdCBjdXJyZW50bHkgcGlubmVkICYgbWFwcGVk LAo+IGNhdXNpbmcgYSBrZXJuZWwgT09QUy4KPiAKPiBBbGV4IERhaSAoMTApOgo+ICAgZHJtL2k5 MTU6IEFkZCBpOTE1X2dlbV9vYmplY3Rfd3JpdGUoKSB0byBpOTE1X2dlbS5jCj4gICBkcm0vaTkx NTogQWRkIEd1Qy1yZWxhdGVkIG1vZHVsZSBwYXJhbWV0ZXJzCj4gICBkcm0vaTkxNTogQWRkIEd1 Qy1yZWxhdGVkIGhlYWRlciBmaWxlcwo+ICAgZHJtL2k5MTU6IEd1Qy1zcGVjaWZpYyBmaXJtd2Fy ZSBsb2FkZXIKPiAgIGRybS9pOTE1OiBEZWJ1Z2ZzIGludGVyZmFjZSB0byByZWFkIEd1QyBsb2Fk IHN0YXR1cwo+ICAgZHJtL2k5MTU6IEd1QyBzdWJtaXNzaW9uIHNldHVwLCBwaGFzZSAxCj4gICBk cm0vaTkxNTogRW5hYmxlIEd1QyBmaXJtd2FyZSBsb2cKPiAgIGRybS9pOTE1OiBJbXBsZW1lbnRh dGlvbiBvZiBHdUMgY2xpZW50Cj4gICBkcm0vaTkxNTogSW50ZWdyYXRlIEd1Qy1iYXNlZCBjb21t YW5kIHN1Ym1pc3Npb24KPiAgIERvY3VtZW50YXRpb24vZHJtOiBrZXJuZWxkb2MgZm9yIEd1Qwo+ IAo+IERhdmUgR29yZG9uICg1KToKPiAgIGRybS9pOTE1OiBFbWJlZGRlZCBtaWNyb2NvbnRyb2xs ZXIgKHVDKSBmaXJtd2FyZSBsb2FkaW5nIHN1cHBvcnQKPiAgIGRybS9pOTE1OiBEZWZlciBkZWZh dWx0IGhhcmR3YXJlIGNvbnRleHQgaW5pdGlhbGlzYXRpb24gdW50aWwgZmlyc3QKPiAgIGRybS9p OTE1OiBJbnRlcnJ1cHQgcm91dGluZyBmb3IgR3VDIHN1Ym1pc3Npb24KPiAgIGRybS9pOTE1OiBE ZWJ1Z2ZzIGludGVyZmFjZSBmb3IgR3VDIHN1Ym1pc3Npb24gc3RhdGlzdGljcwo+ICAgZHJtL2k5 MTU6IEVuYWJsZSBHdUMgc3VibWlzc2lvbiwgd2hlcmUgc3VwcG9ydGVkCj4gCj4gTWljaGFlbCBI LiBOZ3V5ZW4gKDEpOgo+ICAgZHJtL2k5MTU6IE1vdmUgZXhlY2xpc3RzIGRlZmluZXMgZnJvbSAu YyB0byAuaAo+IAo+IEJlbiBXaWRhd3NreQo+IFZpbml0IEF6YWQKPiAgIGNyZWF0ZWQgdGhlIG9y aWdpbmFsIHZlcnNpb25zIG9uIHdoaWNoIHNvbWUgb2YgdGhlc2UgcGF0Y2hlcyBhcmUgYmFzZWQu Cj4gCj4gIERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAgICAgICAgICAgICB8ICAgMTkg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgICA3ICsK PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDEwOSArKyst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICAgICB8ICAgIDQgKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgIDE3ICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICAzOSArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgIDUyICstCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICA4NzMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAg ICAgICAgICAgfCAgIDQ4ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMg ICAgICAgICB8ICAgIDkgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAg ICAgICAgfCAgIDkyICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAg ICAgICAgfCAgMTg0ICsrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfYXBp LmggICAgICAgfCAgMjI3ICsrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19sb2FkZXIuYyAgICB8ICA0OTggKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgMTI4ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmggICAgICAgICAgIHwgICAgOCArCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3VjX2xvYWRlci5jICAgICB8ICAzMTIgKysrKysrKysrKwo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF91Y19sb2FkZXIuaCAgICAgfCAgIDgyICsrKwo+ICAxOCBmaWxlcyBj aGFuZ2VkLCAyNjA3IGluc2VydGlvbnMoKyksIDEwMSBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19hcGkuaAo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19sb2Fk ZXIuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWNf bG9hZGVyLmgKPiAKPiAtLSAKPiAxLjcuOS41Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=