From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1AE336E7C5 for ; Mon, 13 May 2019 17:56:18 +0000 (UTC) From: Andi Shyti Date: Mon, 13 May 2019 20:55:59 +0300 Message-Id: <20190513175613.2507-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v24 00/14] new engine discovery interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: IGT dev Cc: Andi Shyti List-ID: SGksCgpJbiB0aGlzIHBhdGNoc2V0IEkgcHJvcG9zZSBhbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZW5n aW5lIGRpc2NvdmVyeQp0aGFua3MgdG8gdGhlIG5ldyBpbnRlcmZhY2VzIGRldmVsb3BlZCBieSBU dnJ0a28gYW5kIENocmlzWzRdLgoKVGhhbmtzIFR2cnRrbywgQ2hyaXMsIEFudG9uaW8gYW5kIFBl dHJpIGZvciB5b3VyIGNvbW1lbnRzIGluIHRoZQpwcmV2aW91cyBSRkNzLgoKQW5kaQoKdjIyIC0t PiB2MjQKPT09PT09PT09PT0KZml4ZXQgdGhlIHJldmlld3MgZnJvbSBUdnJ0a28gYW5kIENocmlz ICh0aGFuayB5b3UsIGd1eXMpOgoKLSBwZXJmX3BtdTogcmVzdG9yZWQgdGhlICdjb25zdCcgYW5k IGNvbnRleHQgY3JlYXRpb24gaW4KICBjcHUtaG90cGx1ZywgZnJlcXVlbmN5IGFuZCBpbnRlcnJ1 cHRzKiBzdWJ0ZXN0cy4KLSBnZW1fZXhlY19wYXJhbGxlbDogdXNlZCBfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZSBhbHNvIGluCiAgYWxsKCkgdGhhdCBJIGZvcmdvdCBpbiB0aGUgcHJldmlvdXMg dmVyc2lvbi4KLSBhZGRlZCBUdnJ0a28ncyByZXZpZXdlZC1ieSAodGhhbmtzIGEgbG90IFR2cnRr byEpCi0gZmV3IG90aGVyIGNoYW5nZXMgd2l0aCBsaXR0bGUgcmVsZXZhbmNlLgoKdjIyIC0tPiB2 MjMKPT09PT09PT09PT0KdXBkYXRlZCB0aGUgZm9sbG93aW5nIHRlc3RzIHRvIHRoZSBuZXcgQVBJ czoKCmdlbV9idXN5CmdlbV9jc190bGIKZ2VtX2N0eF9leGVjCmdlbV9leGVjX2Jhc2ljCmdlbV9l eGVjX3BhcmFsbGVsCmdlbV9leGVjX3N0b3JlCmdlbV93YWl0Cmk5MTVfaGFuZ21hbgoKdjIxIC0t PiB2MjIKPT09PT09PT09PT0KIC0ganVzdCByZW1vdmVkIGNvbnRleHQgY3JlYXRpb24gYW5kIGRl bGV0aW9uIGZyb20KICAgZW5naW5lX3RvcG9sb2d5IGFuZCBmaXhlZCBwZXJmX3BtdSBhY2NvcmRp bmdseS4KCnYyMCAtLT4gdjIxCj09PT09PT09PT09CiAtIHJlbW92ZWQgVHZydGtvJ3MgZGVidWcg bWVzc2FnZXMKIC0gZmV3IGZpeGVzIGZyb20gQ2hyaXMgbGFzdCByZXZpZXcKCnYxOSAtLT4gdjIw Cj09PT09PT09PT09CiAtIGFkZGVkIHNvbWUgZGVidWdzIGZyb20gVHZydGtvIHRvIGdldCBtb3Jl IGluZm8gYWJvdXQgZ2VtX3dhaXQKICAgZmFpbHVyZS4KIC0gZmV3IGZpeGVzIGluIGdlbV9lbmdp bmVfdG9wb2xvZ3kuYyBmcm9tIFR2cnRrbydzIGNvbW1lbnRzLAogICBpbmNsdWRpbmcgYSBiaWdn ZXIgZml4IGFib3V0IGFuIHVuY29udHJvbGxlZCB2YXJpYWJsZQogICBpbmNyZW1lbnQgaW4gdGhl IF9uZXh0IGZ1bmN0aW9uCgp2MTggLS0+IHYxOQo9PT09PT09PT09PQogLSBpbnRlZ3JhdGVkIFR2 cnRrbydzIGZpeHVwIHBhdGNoIFsxN10uIEZyb20gdGhpcyBwYXRjaCBzb21lCiAgIGNoYW5nZXMg aGF2ZSBiZWVuIG1vdmVkIHRvIGdlbV9lbmdpbmVfdG9wb2xvZ3kgYXMgYSBuZXcgaGVscGVyCiAg IGZvciBnZXR0aW5nIHRoZSBlbmdpbmUncyBwcm9wZXJ0aWVzLgoKdjE3IC0tPiB2MTgKPT09PT09 PT09PT0KIC0gdGhyZWUgcGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZCAodGhlIG9uZXMgdGhhdCBh ZGQKICAgZ2VtX2NvbnRleHRfaGFzX2VuZ2luZSgpIGZ1bmN0aW9uKQogLSBmZXcgY29zbWV0aWMg Zml4ZXMKIC0gYW5kIHNvbWUgY2hhbmdlcyBjb21pbmcgZnJvbSBUdnJ0a28ncyByZXZpZXcgb24g djE3Cgp2MTYgLS0+IHYxNwo9PT09PT09PT09PQphbW9uZ3N0IG1hbnkgbGl0dGxlIHRoaW5ncywg dGhyZWUgbWFpbiBjaGFuZ2VzOgogLSBpbXByb3ZlZCBwZXJmX3BtdSBhZGFwdGF0aW9uIHRvIGdl bV9lbmdpbmVfdG9wb2xvZ3kKIC0gcmVtb3ZlZCB0aGUgZXhlYy1jdHggdGVzdCwgcGVyZl9wbXUg d2lsbCBiZSB0aGUgZmxhZyB0ZXN0CiAtIHdoZW4gY3JlYXRpbmcgdGhlIGVuZ2luZSBsaXN0LCBu b3cgdGhlCiAgIGZvcl9lYWNoX2VuZ2luZV9waHlzaWNhbCBjYW4gYmUgZXhlY3V0ZWQgc2FmZWx5 IGR1cmluZyBzdWJ0ZXN0CiAgIGxpc3RpbmcKCnYxNSAtLT4gdjE2Cj09PT09PT09PT09CiAtIGZl dyBjaGFuZ2VzIHRvIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IHN0dWZmCiAtIGFkZGVkIHVuZSBt b3JlIGR1bW15IHRlc3Qgd2hpY2ggbG9vcHMgdGhyb3VnaCB0aGUgcGh5c2ljYWwKICAgZW5naW5l cywgYXMgd2VsbC4KIC0gY2hhbmdlcyB0byB0ZXN0L3BlcmZfcG11IHJlcXVpcmVkIHNvbWUgbW9y ZSBjaGFuZ2VzIHRoYW4KICAgZXhwZWN0ZWQgKHRoZSAzIGxhc3QgcGF0Y2hlcykKCnYxNCAtLT4g djE1Cj09PT09PT09PT09ClBBVENIIHYxNDogWzE2XQoKIC0gdmlydHVhbCBlbmdpbmVzIHdpbGwg YmUgY2FsbGVkICJ2aXJ0dWFsIiBsaWtlIHVucmVjb2duaXNlZAogICBlbmdpbmVzIHdpbGwgYmUg Y2FsbGVkICJ1bmtub3duIgoKIC0gcmVuYW1lZCB0aGUgZm9yX2VhY2ggbG9vcHMgdG8gbW9yZSBt ZWFuaW5nZnVsIG5hbWVzCiAgIChfX2Zvcl9lYWNoX3N0YXRpY19lbmdpbmUgYW5kIGZvcl9lYWNo X2NvbnRleHRfZW5naW5lKSBhbmQKICAgbW92ZWQgaW50byBnZW1fZW5naW5lX3RvcG9sb2d5LmgK CiAtIG1pbm9yIGNoYW5nZXMgYWJvdXQgZGF0YSB0eXBlcy4KCnYxMyAtLT4gdjE0Cj09PT09PT09 PT09ClBBVENIIHYxMzogWzE1XQptaW5vciBjaGFuZ2VzIHRoaXMgdGltZToKIC0gc3F1YXNoZWQg cGF0Y2ggMiBhbmQgMyAoZnJvbSB2MTMpIHdpdGggYSBsaXR0bGUgcmVuYW1lIGFuZAogICBhZGRl ZCBDaHJpcyByLWIKCiAtIGZpeGVkIHNvbWUgaW5kZXggaXNzdWVzIGFuZCBzdHJpbmcgYXNzaWdu ZW1lbnQgbGVha3MKCiAtIHNxdWFzaGVkIHBhdGNoZXMgNSwgNiwgNyBhbmQgOCBmcm9tIHYxMwoK djEyIC0tPiB2MTMKPT09PT09PT09PT0KUEFUQ0ggdjEyOiBbMTRdClRoaXMgcGF0Y2ggaXMgYWxz byB2ZXJ5IGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyBvdGhlciB0aGFuCnNvbWUgcmVvcmdh bml6YXRpb24gb2YgdGhlIGNvZGUgdGhlc2UgYXJlIHRoZSBtYWluIGNoYW5nZXM6CgogLSB0aGUg cHJldmlvdXMgdmVyc2lvbiBsYWNrZWQgdGhlIGNhc2Ugd2hlbiB0aGUgY29udGV4dCBoYWQgaXRz CiAgIGVuZ2luZXMgbWFwcGVkLiBjaGVja3MgaW4gdGhlIGZvbGxvd2luZyBvcmRlcgoKIGlmIHRo ZSBkcml2ZXIgZG9lc24ndCBoYXZlIHRoZSBuZXcgQVBJCiAgLT4gZ2V0IHRoZSBlbmdpbmVzIGZy b20gdGhlIHN0YXRpYyBsaXN0CiBpZiB0aGUgZHJpdmVyIGhhcyB0aGUgQVBJIGJ1dCB0aGUgY29u dGV4dCBoYXMgbm90aGluZyBtYXBwZWQKICAtPiBnZXQgdGhlIGVuZ2luZXMgZnJvbSAicXVlcnki IGFuZCBtYXAgdGhlbQogaWYgdGhlIGRyaXZlciBoYXMgdGhlIEFQSSBhbmQgdGhlIGNvbnRleHQg aGFzIGVuZ2luZXMgbWFwcGVkCiAgLT4gZ2V0IHRoZSBlbmdpbmVzIGZyb20gdGhlIGNvbnRleHQK CiAtIHRoZSBoZWxwZXIgZnVuY3Rpb25zIGhhdmUgYmVlbiByZW1vdmVkIGFzIHRoZXkgd2VyZSBv ZiBubyB1c2UuCgp2MTEgLS0+IHYxMgo9PT09PT09PT09PQpQQVRDSCB2MTE6IFsxM10KVGhpcyAx MnRoIHZlcnNpb24gc3RhcnRzIGZyb20gYSBjb21wbGV0ZWx5IGRpZmZlcmVudCB0aG91Z2h0LgpI ZXJlJ3MgdGhlIG1haW4gZGlmZmVyZW5jZXM6CgogLSBUaGUgbGlzdCBvZiBlbmdpbmVzIGlzIHBy b3ZpZGVkIGluIGFuIGVuZ2luZV9kYXRhIHN0cnVjdHVyZQogICB3aGljaCBjb250YWlucyBhbiBp bmRleCAodXNlZnVsIGZvciBsb29waW5nIHRocm91Z2ggYW5kIGZvcgogICBlbmdpbmUvY29udGV4 dCBpbmRleCBtYXBwaW5nKSBpbnN0ZWFkIG9mIGFuIGFycmF5IG9mIGVuZ2luZXMuCgogLSBUaGUg bGlzdCBvZiBlbmdpbmVzIGlzIGdlbmVyYXRlZCBldmVyeSB0aW1lIHRoZSBpbml0IGZ1bmN0aW9u CiAgIGlzIGNhbGxlZCBhbmQgbm90aGluZyBpcyBhbGxvY2F0ZWQgaW4gaGVhcCBtZW1vcnkuCgog LSBUaGUgaW9jdGwgY2hlY2sgaXMgZG9uZSBhbHJlYWR5IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRp b24gcGFydAogICBhbmQgaWYgdGhlIG5ldyBpb2N0bHMgYXJlIG5vdCBpbXBsZW1lbnRlZCwgdGhl biB0aGUgaW5pdAogICBmdW5jdGlvbiBzdGlsbCBzdG9yZXMgb25seSB0aG9zZSBwcmVzZW50IGlu IHRoZSBHUFUuCgogLSBUaGUgZm9yX2VhY2ggbG9vcCBpcyBpbXBsZW1lbnRlZCBieSByZS11c2lu ZyB0aGUgcHJldmlvdXMKICAgJ2Zvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZSgpJyBpbXBs ZW1lbnRlZCBieSBUdnJ0a28uCgogLSBUaGUgZ2VtX3RvcG9sb2d5IGxpYnJhcnkgb2ZmZXJzIGZl dyBoZWxwZXIgZnVuY3Rpb25zIGZvcgogICBjaGVja2luZyB0aGUgZW5naW5lIHByZXNlbmNlLCBj aGVja2luZyB0aGUgaW1wbGVtZW50YXRpb24gb2YKICAgdGhlIGlvY3RscyBhbmQgZXhlY3V0aW5n IHRoZSBidWZmZXIsIGluIG9yZGVyIHRvIGJlIGNvbXBsZXRlbHkKICAgdW5hd2FyZSBvZiB0aGUg ZHJpdmVyIGltcGxlbWVudGF0aW9uLgoKVGhhbmtzIFR2cnRrbyBmb3IgYWxsIHlvdXIgaW5wdXRz LgoKdjEwIC0tPiB2MTEKPT09PT09PT09PT0KUkZDIHYxMDogWzEyXQpmZXcgY29zbWV0aWMgY2hh bmdlcyBpbiB2MTEgYW5kIG1pbm9yIGFyY2hpdGVjdHVyYWwgZGV0YWlscy4KVGhhbmtzIFR2cnRr by4KCi0gdGhlICdxdWVyeV9lbmdpbmVzKCknIGZ1bmN0aW9ucyBhcmUgc3RhdGljIGFzIG5vIG9u ZSBpcyB1c2luZwogIHRoZW0geWV0LgoKLSByZW1vdmVkIHRoZSAnZ2VtX2hhc19lbmdpbmVfdG9w b2xvZ3koKScgZnVuY3Rpb24gYmVjYXVzZSBpdCdzCiAgdmVyeSBsaXR0bGUgdXNlZCwgJ2dldF9h Y3RpdmVfZW5naW5lcygpJyBjYW4gYmUgdXNlZCBpbnN0ZWFkLgoKLSBhIG1pbm9yIHJpbmcgLT4g ZW5naW5lIHJlbmFtaW5nIGNvbWluZyBmcm9tIENocmlzLiAKCnY5IC0tPiB2MTAKPT09PT09PT09 PQpSRkMgdjk6IFsxMV0KYWxzbyB0aGlzIHRpbWUgcXVpdGUgbWFueSBjaGFuZ2VzLCB0aGFua3Mg Q2hyaXMgZm9yIHRoZSByZXZpZXdzLApoZXJlIHRoZSBtb3N0IHJlbGV2YW50IG9mIHRoZW0uCgot IGdlbV9xdWVyeS5bY2hdIGhhdmUgYmVlbiByZW5hbWVkIHRvIGdlbV9lbmdpbmVfdG9wb2xvZ3ku W2NoXQogIGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBlbmRlZCB1cCB0aGVyZSBhcyB0aGV5IGFyZSBy ZWZlcnJpbmcgdG8KICB0aGUgdG9wb2xvZ3kgb2YgdGhlIGVuZ2luZXMuCgotIHRoZSBmdW5jdGlv bnMgJ2dldF9hY3RpdmVfZW5naW5lcygpJywKICAnZ2VtX3NldF9jb250ZXh0X2dldF9lbmdpbmVz KCknIGFuZAogICdpZ3RfcmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoKScgd2lsbCBiZSB0aGUgbWFp biBpbnRlcmZhY2UgdG8KICB0aGUgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5LCByZWZlciB0 byBwYXRjaCAyIGZvciBkZXRhaWxzLgoKLSB0aGUgZGVmaW5lICdmb3JfZWFjaF9lbmdpbmUyKCkn IGRvZXNuJ3QgZXhwb3NlIGFueW1vcmUgdGhlCiAgaXRlcmF0b3IuCgotICdnZW1fY29udGV4dF9o YXNfZW5naW5lKCknIGhhcyBiZWVuIG1vdmVkIGZyb20gaW9jdGxfd3JhcHBlcnMuYwogIHRvIGdl bV9jb250ZXh0LmMuCgotIHRoZSBnZW1fZXhlY19iYXNpYyBleGVjLWN0eCBzdWJ0ZXN0IGRvZXMg bm90IGFib3J0IGlmIHRoZSBuZXcKICBnZXRwYXJhbS9zZXRwYXJhbSBhbmQgcXVlcnkgYXBpcyBh cmUgbm90IGltcGxlbWVudGVkIGFzIGl0IGNhbgogIHdvcmsgd2l0aCBib3RoIChhcyBpdCB3YXMg ZG9uZSBhdCB0aGUgYmVnaW5uaW5nKS4KCnY4IC0tPiB2OQo9PT09PT09PT0KUkZDIHY4OiBbMTBd CnF1aXRlIG1hbnkgY2hhbmdlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSByZXZpZXcgaW4gWzEwXS4g VGhhbmtzCkNocmlzIGZvciB0aGUgcmV2aWV3LiBUaGVzZSBhcmUgdGhlIG1vc3QgcmVsZXZhbnQ6 CgotIGFsbCB0aGUgYWxsb2NhdGlvbiBpbiBnZW1fcXVlcnkgaGF2ZSBiZWVuIG1hZGUgaW4gc3Rh Y2ssIG5vdAogIGFueW1vcmUgYWxsb2NhdGVkIGR5bmFtaWNhbGx5LgoKLSByZW1vdmVkIGdldC9z ZXRfY29udGV4dCBhcyBpdCB3YXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBhbmQgSQogIGRpZG4ndCBr bm93LgoKLSByZW5hbWVkIHNvbWUgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgdG8gaG9wZWZ1bGx5 IG1vcmUKICBtZWFuaW5nZnVsIG5hbWVzLgoKVjcgLS0+IHY4Cj09PT09PT09PQpSRkMgdjc6IFs5 XQoKLSBhbGwgZnVuY3Rpb25zIGhhdmUgYmVlbiBtb3ZlZCBmcm9tIGxpYi9pZ3RfZ3Que2MsaH0g YW5kCiAgbGliL2lvY3RsX3dyYXBwZXJzLntjLGh9IHRvIGxpYi9pOTE2L2dlbV9xdWVyeS57Yyxo fS4gKHRoYW5rcwogIENocmlzKQoKLSAnZm9yX2VhY2hfZW5naW5lX2N0eCcgaGFzIGJlZW4gcmVu YW1lZCB0byAnZm9yX2VhY2hfZW5naW5lMicgdG8KICBiZSBjb25zaXN0ZW50IHdpdGggdGhlICcy JyB0aGF0IGluZGljYXRlcyB0aGUgbmV3ICdzdHJ1Y3QKICBpbnRlbF9leGVjdXRpb25fZW5naW5l MicgZGF0YSBzdHJ1Y3R1cmUuCgpWNiAtLT4gVjcKPT09PT09PT09ClJGQyB2NjogWzhdCgotIGEg bmV3IHBhdGNoIGhhcyBiZWVuIGFkZGVkIChwYXRjaCAzKSB3aGljaCBhZGRzIGEgbmV3CiAgcmVx dWlyZW1lbnQgY2hlY2sgdGhyb3VnaCB0aGUgaWd0X3JlcXVpcmVfZ2VtX2VuZ2luZV9saXN0KCkK ICBmdW5jdGlvbi4gKHRoYW5rcyBDaHJpcykgVGhpcyBmdW5jdGlvbiB3aWxsIGluaXRpYWxpemUg dGhlCiAgZW5naW5lIGxpc3QgaW5zdGVhZCBvZiB0aGUgaW5zdGVhZCBvZiBpZ3RfcmVxdWlyZV9n ZW0oKSBhcyBpdAogIHdhcyBpbiB2NgoKLSBhbGwgdGhlIGlvY3RscyBoYXZlIGJlZW4gd3JhcHBl ZCAodGhhbmtzIENocmlzIGFuZCBBbnRvbmlvKSBhbmQKICBuZXcgbGlicmFyeSBmdW5jdGlvbnMg aGF2ZSBiZWVuIGFkZGVkIGFuZCBhc3NlcnQgdGhlIGlvY3RscwoKLSBnZW1faW5pdF9lbmdpbmVf bGlzdCgpIGZ1bmN0aW9uIHJldHVybnMgdGhlIGVycm5vIGZyb20gdGhlCiAgR0VUUEFSQU0gaW9j dGwgaW4gb3JkZXIgdG8gYmUgdXNlZCBhcyBhIHJlcXVpcmVtZW50LiAodGhhbmtzCiAgQ2hyaXMp CgotIGZpeGVkIGZldyByZXF1aXJlcy9hc3NlcnRzCgotIFRoZSBlbmdpbmUgbGlzdCAiaW50ZWxf YWN0aXZlX2VuZ2luZXMyIiBpcyBhbGxvY2F0ZWQgb2YgdGhlCiAgbnVtYmVyIG9mIGVuZ2luZXMg aW5zdGVhZCBvZiBhIHBvbGl0aWNhbCA2NCAodGhhbmtzIEFudG9uaW8pLgoKLSBzb21lIHBhcmFt ZXRlciByZW5hbWluZyBpbiBnZW1faGFzX3JpbmdfYnlfaWR4KCkuICh0aGFua3MKICBDaHJpcyku CgotIHRoZSBvcmlnaW5hbCAiaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXMyIiBoYXMgbm90IGJlZW4g cmVuYW1lZCwKICBiZWNhdXNlIGl0IGlzIHVzZWQgdG8gY3JlYXRlIHN1YnRlc3RzIGJlZm9yZSBl dmVuIGV4ZWN1dGluZyBhbnkKICB0ZXN0L2lvY3RsLiBCeSByZW5hbWluZyBpdCwgc29tZSBzdWJ0 ZXN0IGdlbmVyYXRpb25zIGZhaWxlZC4KICAodGhhbmtzIFBldHJpKQoKVjUgLS0+IFY2Cj09PT09 PT09PQpSRkMgdjU6IFs3XQotIENocmlzIGltcGxlbWVudGVkIHRoZSBnZXRwYXJhbSBpb2N0bCB3 aGljaCBhbGxvd3MgdG8gdGhlIHRlc3QKICB0byBmaWd1cmUgb3R1IHdoZXRoZXIgdGhlIG5ldyBp bnRlcmZhY2UgaGFzIGJlZW4gaW1wbGVtZW50ZWQuCiAgVGhpcyB3YXkgdGhlIGZvcl9lYWNoX2Vu Z2luZV9jdHgoKSBpcyBhYmxlIHRvIHdvcmsgd2l0aCBuZXcgYW5kCiAgb2xkIGtlcm5lbCB1YXBp ICh0aGFua3MgQ2hyaXMpCgpWNCAtLT4gVjUKPT09PT09PT09ClJGQyB2NDogWzZdCgotIHRoZSBl bmdpbmUgbGlzdCBpcyBub3cgYnVpbHQgaW4gJ2lndF9yZXF1aXJlX2dlbSgpJyBpbnN0ZWFkIG9m CiAgJ19fb3Blbl9kcml2ZXIoKScgc28gdGhhdCB3ZSBrZWVwIHRoaXMgZGlzY292ZXJ5IG1ldGhv ZAogIHNwZWNpZmljIHRvIHRoZSBpOTE1IGRyaXZlciAodGhhbmtzIENocmlzKS4KCi0gQWxsIHRo ZSBxdWVyeS9zZXRwYXJhbSBzdHJ1Y3R1cmVzIGR5bmFtaWMgYWxsb2NhdGlvbiBiYXNlZCBvbgog IHRoZSBudW1iZXIgb2YgZW5naW5lcywgbm93IGFyZSBwb2xpdGljYWxseSBhbGxvY2F0ZWQgNjQg dGltZXMsCiAgdG8gYXZvaWQgZXh0cmEgaW9jdGwgY2FsbHMgdGhhdCByZXRyaWV2ZSB0aGUgZW5n aW5lIG51bWJlcgogICh0aGFua3MgQ2hyaXMpCgotIHVzZSBpZ3RfaW9jdGwgaW5zdGVhZCBvZiBp b2N0bCAodGhhbmtzIENocmlzKQoKLSBhbGxvY2F0ZSBpbnRlbF9leGVjdXRpb25fZW5naW5lczIg ZHluYW1pY2FsbHkgaW5zdGVhZCBvZgogIHN0YXRpY2FsbHkgKHRoYW5rcyBUdnJ0a28pCgotIHNp bXBsaWZ5IHRoZSB0ZXN0IGluICdnZW1fZXhlY19iYXNpYygpJyBzbyB0aGF0IHNpbXBseSBjaGVj a3MKICB0aGUgcHJlc2VuY2Ugb2YgdGhlIGVuZ2luZSBpbnN0ZWFkIG9mIGV4ZWN1dGluZyBhIGJ1 ZmZlcgogICh0aGFuayBDaHJpcykKCi0gYSBuZXcgcGF0Y2ggaGFzIGJlZW4gYWRkZWQgKHBhdGNo IDMpIHRoYXQgZXh0ZW5kcyB0aGUKICAnZ2VtX2hhc19yaW5nKCknIGJvb2xlYW4gZnVuY3Rpb24u IFRoZSBuZXcgdmVyc2lvbiBzZXRzIHRoZQogIGluZGV4IGFzIGl0J3MgbWFwcGVkIGluIHRoZSBr ZXJuZWwuVGhlIHByZXZpb3VzIGZ1bmN0aW9uIGlzIG5vdwogIGEgd3JhcHBlciB0byB0aGUgbmV3 IGZ1bmN0aW9uLgoKVjMgLS0+IFY0Cj09PT09PT09PQpQQVRDSCB2MzogWzNdCgotIHJlLWFyY2hp dGVjdHVyZWQgdGhlIGRpc2NvdmVyeSBtZWNoYW5pc20gYmFzZWQgb24gVHZydGtvJ3MKICBzdWdl c3Rpb24gYW5kIHJldmlld3MuLiBJbiB0aGlzIHZlcnNpb24gdGhlIGRpc2NvdmVyeSBpcyBkb25l CiAgZHVyaW5nIHRoZSBkZXZpY2Ugb3BlbmluZyBhbmQgc3RvcmVkIGluIGEgTlVMTCB0ZXJtaW5h dGVkCiAgYXJyYXksIHdoaWNoIHJlcGxhY2VzIHRoZSBleGlzdGluZyBpbnRlbF9leGVjdXRpb25f ZW5naW5lczIKICB0aGF0IGlzIG1haW5seSB1c2VkIGFzIGEgcmVmZXJlbmNlLgoKVjIgLS0+IFYz Cj09PT09PT09PQpSRkMgdjI6IFsyXQoKLSByZW1vdmVkIGEgc3RhbmRhbG9uZSBnZW1fcXVlcnlf ZW5naW5lc19kZW1vIHRlc3QgYW5kIGFkZGVkIHRoZQogIGV4ZWMtY3R4IHN1YnRlc3QgaW5zaWRl IGdlbV9leGVjX2Jhc2ljICh0aGFua3MgVHZydGtvKS4KCi0gZml4ZWQgbW9zdCBvZiBUdnJ0a28n cyBjb21tZW50cyBpbiBbNV0sIHdoaWNoIGNvbnNpc3QgaW4KICBwdXR0aW5nIHRoZSBtYWxsb2Nz IGlndF9hc3NlcnQgYW5kIGljdGxzIGluIGlndF9yZXF1aXJlIGFuZCBmZXcKICByZWZhY3Rvcmlu ZyAodGhhbmtzIFR2cnRrbykuCgpWMSAtLT4gVjIKPT09PT09PT09ClJGQyB2MTogWzFdCgotIGFk ZGVkIGEgZGVtbyB0ZXN0IHRoYXQgc2ltcGx5IHF1ZXJpZXMgdGhlIGRyaXZlciBhYm91dCB0aGUK ICBlbmdpbmVzIGFuZCBleGVjdXRlcyBhIGJ1ZmZlciAodGhhbmtzIFR2cnRrbykKCi0gcmVmYWN0 b3JlZCB0aGUgZm9yX2VhY2hfZW5naW5lX2N0eCgpIG1hY3JvIHNvIHRoYXQgd2hhdCBpbiB0aGUK ICBwcmV2aW91cyB2ZXJzaW9uIHdhcyBkb25lIGJ5IHRoZSAiYmluZCIgZnVuY3Rpb24sIG5vdyBp dCdzIGRvbmUKICBpbiB0aGUgZmlyc3QgaXRlcmF0aW9uLiAoVGhhbmtzIENyaGlzKQoKLSByZW1v dmVkIHRoZSAiZ2VtX2hhc19yaW5nX2N0eCgpIiBiZWNhdXNlIGl0IHdhcyBvdXQgb2YgdGhlCiAg c2NvcGUuCgotIHJlbmFtZSBmdW5jdGlvbnMgdG8gbW9yZSBtZWFuaW5nZnVsIG5hbWVzCgpbMV0g UkZDIHYxOiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIw MTgtTm92ZW1iZXIvMDA3MDI1Lmh0bWwKWzJdIFJGQyB2MjogaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE4LU5vdmVtYmVyLzAwNzA3OS5odG1sClszXSBQ QVRDSCB2MzogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8y MDE4LU5vdmVtYmVyLzAwNzE0OC5odG1sCls0XSBodHRwczovL2NnaXQuZnJlZWRlc2t0b3Aub3Jn L350dXJzdWxpbi9kcm0taW50ZWwvbG9nLz9oPW1lZGlhCls1XSBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTgtTm92ZW1iZXIvMDA3MTAwLmh0bWwKWzZd IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1KYW51 YXJ5LzAwODAyOS5odG1sCls3XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZl cy9pZ3QtZGV2LzIwMTktSmFudWFyeS8wMDgxNjUuaHRtbApbOF0gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LUZlYnJ1YXJ5LzAwODkwMi5odG1sCls5 XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktRmVi cnVhcnkvMDA5MTg1Lmh0bWwKWzEwXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9pZ3QtZGV2LzIwMTktRmVicnVhcnkvMDA5MjA1Lmh0bWwKWzExXSBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktRmVicnVhcnkvMDA5Mjc3Lmh0 bWwKWzEyXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIw MTktTWFyY2gvMDEwMTk3Lmh0bWwKWzEzXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9h cmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwNDY3Lmh0bWwKWzE0XSBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwNzc2Lmh0bWwK WzE1XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTkt TWFyY2gvMDEwODI3Lmh0bWwKWzE2XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9pZ3QtZGV2LzIwMTktTWFyY2gvMDEwOTE2Lmh0bWwKWzE3XSBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTktQXByaWwvMDExODIxLmh0bWwKCkFu ZGkgU2h5dGkgKDE0KToKICBpbmNsdWRlL2RybS11YXBpOiBpbXBvcnQgaTkxNV9kcm0uaCBoZWFk ZXIgZmlsZQogIGxpYi9pOTE1OiBhZGQgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5IGFuZCBm b3JfZWFjaCBsb29wIGRlZmluaXRpb24KICBsaWI6IGlndF9ndDogYWRkIGV4ZWN1dGlvbiBidWZm ZXIgZmxhZ3MgdG8gY2xhc3MgaGVscGVyCiAgbGliOiBpZ3RfZ3Q6IG1ha2UgZ2VtX2VuZ2luZV9j YW5fc3RvcmVfZHdvcmQoKSBjaGVjayBlbmdpbmUgY2xhc3MKICBsaWI6IGlndF9kdW1teWxvYWQ6 IHVzZSBmb3JfZWFjaF9jb250ZXh0X2VuZ2luZSgpCiAgdGVzdDogcGVyZl9wbXU6IHVzZSB0aGUg Z2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5CiAgdGVzdC9pOTE1OiBnZW1fYnVzeTogdXNlIHRo ZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkKICB0ZXN0L2k5MTU6IGdlbV9jc190bGI6IHVz ZSB0aGUgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5CiAgdGVzdC9pOTE1OiBnZW1fY3R4X2V4 ZWM6IHVzZSB0aGUgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5CiAgdGVzdC9pOTE1OiBnZW1f ZXhlY19iYXNpYzogdXNlIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkKICB0ZXN0L2k5 MTU6IGdlbV9leGVjX3BhcmFsbGVsOiB1c2UgdGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFy eQogIHRlc3QvaTkxNTogZ2VtX2V4ZWNfc3RvcmU6IHVzZSB0aGUgZ2VtX2VuZ2luZV90b3BvbG9n eSBsaWJyYXJ5CiAgdGVzdC9pOTE1OiBnZW1fd2FpdDogdXNlIHRoZSBnZW1fZW5naW5lX3RvcG9s b2d5IGxpYnJhcnkKICB0ZXN0L2k5MTU6IGk5MTVfaGFuZ21hbjogdXNlIHRoZSBnZW1fZW5naW5l X3RvcG9sb2d5IGxpYnJhcnkKCiBpbmNsdWRlL2RybS11YXBpL2k5MTVfZHJtLmggICAgfCAyMDkg KysrKysrKysrKysrKysrKysrKysrKystCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAgICAgICAg fCAgIDIgKwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jIHwgMjgyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIHwg IDc5ICsrKysrKysrKwogbGliL2lndC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGxp Yi9pZ3RfZHVtbXlsb2FkLmMgICAgICAgICAgICB8ICAyOSArKy0tCiBsaWIvaWd0X2d0LmMgICAg ICAgICAgICAgICAgICAgfCAgMzAgKysrLQogbGliL2lndF9ndC5oICAgICAgICAgICAgICAgICAg IHwgIDEyICstCiBsaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMv aTkxNS9nZW1fYnVzeS5jICAgICAgICAgIHwgMTI4ICsrKysrKy0tLS0tLS0tLQogdGVzdHMvaTkx NS9nZW1fY3NfdGxiLmMgICAgICAgIHwgICA4ICstCiB0ZXN0cy9pOTE1L2dlbV9jdHhfZXhlYy5j ICAgICAgfCAgMTYgKy0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFzaWMuYyAgICB8ICAyOCArKy0t CiB0ZXN0cy9pOTE1L2dlbV9leGVjX3BhcmFsbGVsLmMgfCAgMjYgKy0tCiB0ZXN0cy9pOTE1L2dl bV9leGVjX3N0b3JlLmMgICAgfCAgMzYgKystLS0KIHRlc3RzL2k5MTUvZ2VtX3dhaXQuYyAgICAg ICAgICB8ICAyNCArLS0KIHRlc3RzL2k5MTUvaTkxNV9oYW5nbWFuLmMgICAgICB8ICAxNSArLQog dGVzdHMvcGVyZl9wbXUuYyAgICAgICAgICAgICAgIHwgMTAyICsrKysrKy0tLS0tLQogMTggZmls ZXMgY2hhbmdlZCwgODAwIGluc2VydGlvbnMoKyksIDIyOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKCi0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==