From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v2 2/2] kms_content_protection: Add Content Protection test Date: Sat, 6 Jan 2018 18:40:42 +0530 Message-ID: <2249c04e-2724-7b92-a6c1-941d6f66ade9@intel.com> References: <20171207001737.48696-1-seanpaul@chromium.org> <20171207001737.48696-2-seanpaul@chromium.org> <624536d3-463f-3eca-bbb9-9adf68047954@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B2CC56E4C0 for ; Sat, 6 Jan 2018 13:14:38 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org CgpPbiBTYXR1cmRheSAwNiBKYW51YXJ5IDIwMTggMDY6MzAgUE0sIFNlYW4gUGF1bCB3cm90ZToK PiBPbiBTYXQsIEphbiA2LCAyMDE4IGF0IDU6NDQgQU0sIFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4gd3JvdGU6Cj4+IE9uIFNhdHVyZGF5IDA2IEphbnVhcnkgMjAxOCAxMjo1 OSBBTSwgU2VhbiBQYXVsIHdyb3RlOgo+Pj4gT24gVHVlLCBEZWMgMTksIDIwMTcgYXQgOToyOCBB TSwgUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+Pj4gd3JvdGU6Cj4+Pj4g QWRkaW5nIGZldyBtb3JlIGZpbmRpbmdzIGZyb20gdGhlIElHVCB1c2FnZSB3aXRoIGtlcm5lbCBz b2x1dGlvbnMuCj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gT24gV2VkbmVzZGF5IDEzIERlY2VtYmVyIDIw MTcgMDQ6MDcgUE0sIFJhbWFsaW5nYW0gQyB3cm90ZToKPj4+Pj4gU2VhbiwKPj4+Pj4KPj4+Pj4g QWRkaW5nIGZldyBtb3JlIG9ic2VydmF0aW9ucy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gT24gVGh1cnNk YXkgMDcgRGVjZW1iZXIgMjAxNyAwNTo0NyBBTSwgU2VhbiBQYXVsIHdyb3RlOgo+Pj4+Pj4gUHJl dHR5IHNpbXBsZSB0ZXN0Ogo+Pj4+Pj4gLSBpbml0aWFsaXplcyB0aGUgb3V0cHV0Cj4+Pj4+PiAt IGNsZWFycyB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5Cj4+Pj4+PiAtIHZlcmlmaWVz IHRoYXQgaXQgY2xlYXJzCj4+Pj4+PiAtIHNldHMgdGhlIGNvbnRlbnQgcHJvdGVjdGlvbiBwcm9w ZXJ0eSB0byBkZXNpcmVkCj4+Pj4+PiAtIHZlcmlmaWVzIHRoYXQgaXQgdHJhbnNpdGlvbnMgdG8g ZW5hYmxlZAo+Pj4+Pj4KPj4+Pj4+IERvZXMgdGhpcyBmb3IgYm90aCBsZWdhY3kgYW5kIGF0b21p Yy4KPj4+Pj4+Cj4+Pj4+PiBDaGFuZ2VzIGluIHYyOgo+Pj4+Pj4gLSBEb24ndCBjaGVjayBmb3Ig aTkxNSBnZW4KPj4+Pj4+IC0gU2tpcCB0ZXN0IGlmIENvbnRlbnQgUHJvdGVjdGlvbiBwcm9wZXJ0 eSBpcyBhYnNlbnQKPj4+Pj4+Cj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5w YXVsQGNocm9taXVtLm9yZz4KPj4+Pj4+IC0tLQo+Pj4+Pj4gICAgIGxpYi9pZ3Rfa21zLmMgICAg ICAgICAgICAgICAgICB8ICAgMyArLQo+Pj4+Pj4gICAgIGxpYi9pZ3Rfa21zLmggICAgICAgICAg ICAgICAgICB8ICAgMSArCj4+Pj4+PiAgICAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAgICAg IHwgICAxICsKPj4+Pj4+ICAgICB0ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9uLmMgfCAxMjkK Pj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4+PiAg ICAgdGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKPj4+Pj4+ICAgICA1IGZp bGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+PiAgICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwo+Pj4+Pj4K Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwo+Pj4+Pj4g aW5kZXggMTI1ZWNiMTkuLjkwN2RiNjk0IDEwMDY0NAo+Pj4+Pj4gLS0tIGEvbGliL2lndF9rbXMu Ywo+Pj4+Pj4gKysrIGIvbGliL2lndF9rbXMuYwo+Pj4+Pj4gQEAgLTE5MCw3ICsxOTAsOCBAQCBj b25zdCBjaGFyCj4+Pj4+PiAqaWd0X2Nvbm5lY3Rvcl9wcm9wX25hbWVzW0lHVF9OVU1fQ09OTkVD VE9SX1BST1BTXSA9IHsKPj4+Pj4+ICAgICAgICAgInNjYWxpbmcgbW9kZSIsCj4+Pj4+PiAgICAg ICAgICJDUlRDX0lEIiwKPj4+Pj4+ICAgICAgICAgIkRQTVMiLAo+Pj4+Pj4gLSAgICAiQnJvYWRj YXN0IFJHQiIKPj4+Pj4+ICsgICAgIkJyb2FkY2FzdCBSR0IiLAo+Pj4+Pj4gKyAgICAiQ29udGVu dCBQcm90ZWN0aW9uIgo+Pj4+Pj4gICAgIH07Cj4+Pj4+PiAgICAgICAvKgo+Pj4+Pj4gZGlmZiAt LWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCj4+Pj4+PiBpbmRleCAyYTQ4MGJm My4uOTNlNTlkYzcgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9saWIvaWd0X2ttcy5oCj4+Pj4+PiArKysg Yi9saWIvaWd0X2ttcy5oCj4+Pj4+PiBAQCAtMTE4LDYgKzExOCw3IEBAIGVudW0gaWd0X2F0b21p Y19jb25uZWN0b3JfcHJvcGVydGllcyB7Cj4+Pj4+PiAgICAgICAgICAgIElHVF9DT05ORUNUT1Jf Q1JUQ19JRCwKPj4+Pj4+ICAgICAgICAgICAgSUdUX0NPTk5FQ1RPUl9EUE1TLAo+Pj4+Pj4gICAg ICAgICAgICBJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9SR0IsCj4+Pj4+PiArICAgICAgIElHVF9D T05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLAo+Pj4+Pj4gICAgICAgICAgICBJR1RfTlVNX0NP Tk5FQ1RPUl9QUk9QUwo+Pj4+Pj4gICAgIH07Cj4+Pj4+PiAgICAgZGlmZiAtLWdpdCBhL3Rlc3Rz L01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4+Pj4+PiBpbmRleCAz NGNhNzFhMC4uZTA0NjY0MTEgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCj4+Pj4+PiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4+Pj4+PiBAQCAtMTc5LDYg KzE3OSw3IEBAIFRFU1RTX3Byb2dzID0gXAo+Pj4+Pj4gICAgICAgICBrbXNfY2h2X2N1cnNvcl9m YWlsIFwKPj4+Pj4+ICAgICAgICAga21zX2NvbG9yIFwKPj4+Pj4+ICAgICAgICAga21zX2NvbmN1 cnJlbnQgXAo+Pj4+Pj4gKyAgICBrbXNfY29udGVudF9wcm90ZWN0aW9uXAo+Pj4+Pj4gICAgICAg ICBrbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yIFwKPj4+Pj4+ICAgICAgICAga21zX2N1cnNvcl9j cmMgXAo+Pj4+Pj4gICAgICAgICBrbXNfY3Vyc29yX2xlZ2FjeSBcCj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCj4+Pj4+PiBiL3Rlc3RzL2ttc19jb250 ZW50X3Byb3RlY3Rpb24uYwo+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+Pj4+IGluZGV4 IDAwMDAwMDAwLi41ZDYxYjI1Nwo+Pj4+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+Pj4gKysrIGIvdGVz dHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCj4+Pj4+PiBAQCAtMCwwICsxLDEyOSBAQAo+Pj4+ Pj4gKy8qCj4+Pj4+PiArICogQ29weXJpZ2h0IMKpIDIwMTcgR29vZ2xlLCBJbmMuCj4+Pj4+PiAr ICoKPj4+Pj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbgo+Pj4+Pj4gb2J0YWluaW5nCj4+Pj4+PiBhCj4+Pj4+PiArICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZQo+Pj4+Pj4gIlNvZnR3YXJlIiksCj4+Pj4+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPj4+Pj4+IGxpbWl0YXRpb24K Pj4+Pj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwKPj4+Pj4+IHN1YmxpY2Vuc2UsCj4+Pj4+PiArICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20KPj4+ Pj4+IHRoZQo+Pj4+Pj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nCj4+Pj4+PiBjb25kaXRpb25zOgo+Pj4+Pj4gKyAqCj4+Pj4+PiAr ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZwo+Pj4+Pj4gdGhlCj4+Pj4+PiBuZXh0Cj4+Pj4+PiArICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCj4+ Pj4+PiBvZgo+Pj4+Pj4gdGhlCj4+Pj4+PiArICogU29mdHdhcmUuCj4+Pj4+PiArICoKPj4+Pj4+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwKPj4+Pj4+IEVYUFJFU1MgT1IKPj4+Pj4+ICsgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCj4+Pj4+PiBNRVJDSEFOVEFC SUxJVFksCj4+Pj4+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UCj4+Pj4+PiBTSEFMTAo+Pj4+Pj4gKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTCj4+Pj4+PiBPUgo+Pj4+Pj4gT1RIRVIKPj4+Pj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPj4+Pj4+IEFSSVNJ TkcKPj4+Pj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4+Pj4+PiBERUFMSU5HUwo+Pj4+Pj4gKyAqIElOIFRI RSBTT0ZUV0FSRS4KPj4+Pj4+ICsgKgo+Pj4+Pj4gKyAqLwo+Pj4+Pj4gKwo+Pj4+Pj4gKyNpbmNs dWRlICJpZ3QuaCIKPj4+Pj4+ICsKPj4+Pj4+ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBj b250ZW50IHByb3RlY3Rpb24gKEhEQ1ApIik7Cj4+Pj4+PiArCj4+Pj4+PiArdHlwZWRlZiBzdHJ1 Y3Qgewo+Pj4+Pj4gKyAgICBpbnQgZHJtX2ZkOwo+Pj4+Pj4gKyAgICBpZ3RfZGlzcGxheV90IGRp c3BsYXk7Cj4+Pj4+PiArfSBkYXRhX3Q7Cj4+Pj4+PiArCj4+Pj4+PiArc3RhdGljIGJvb2wKPj4+ Pj4+ICt3YWl0X2Zvcl9wcm9wX3ZhbHVlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBl eHBlY3RlZCkKPj4+Pj4+ICt7Cj4+Pj4+PiArICAgIHVpbnQ2NF90IHZhbDsKPj4+Pj4+ICsgICAg aW50IGk7Cj4+Pj4+PiArCj4+Pj4+PiArICAgIGZvciAoaSA9IDA7IGkgPCAyMDAwOyBpKyspIHsK Pj4+Pj4gd2UgbmVlZCA1K1NlYyB0byBjb21wbGV0ZSB0aGUgU2Vjb25kIHBhcnQgb2YgYXV0aGVu dGljYXRpb24sIGluIGNhc2Ugb2YKPj4+Pj4gcmVwZWF0ZXIgd2l0aCBtYXggZG93bnN0cmVhbSB0 b3BvbG9neS4KPj4+Pj4gU28gd2UgbWlnaHQgbmVlZCB0byB3YWl0IGZvciA2MDAwKDZTZWMpIGxv b3BzIT8KPj4+Pj4+ICsgICAgICAgIHZhbCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LAo+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVD VElPTik7Cj4+Pj4+PiArICAgICAgICBpZiAodmFsID09IGV4cGVjdGVkKQo+Pj4+Pj4gKyAgICAg ICAgICAgIHJldHVybiB0cnVlOwo+Pj4+Pj4gKyAgICAgICAgdXNsZWVwKDEwMDApOwo+Pj4+Pj4g KyAgICB9Cj4+Pj4+PiArICAgIGlndF9pbmZvKCJwcm9wX3ZhbHVlIG1pc21hdGNoICVsZCAhPSAl bGRcbiIsIHZhbCwgZXhwZWN0ZWQpOwo+Pj4+Pj4gKyAgICByZXR1cm4gZmFsc2U7Cj4+Pj4+PiAr fQo+Pj4+Pj4gKwo+Pj4+Pj4gK3N0YXRpYyB2b2lkCj4+Pj4+PiArdGVzdF9waXBlX291dHB1dChp Z3RfZGlzcGxheV90ICpkaXNwbGF5LCBjb25zdCBlbnVtIHBpcGUgcGlwZSwKPj4+Pj4+ICsgICAg ICAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMpCj4+Pj4+ PiArewo+Pj4+Pj4gKyAgICBkcm1Nb2RlTW9kZUluZm8gbW9kZTsKPj4+Pj4+ICsgICAgaWd0X3Bs YW5lX3QgKnByaW1hcnk7Cj4+Pj4+PiArICAgIHN0cnVjdCBpZ3RfZmIgcmVkOwo+Pj4+Pj4gKyAg ICBib29sIHJldDsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWd0X2Fzc2VydChrbXN0ZXN0X2dldF9j b25uZWN0b3JfZGVmYXVsdF9tb2RlKAo+Pj4+Pj4gKyAgICAgICAgICAgIGRpc3BsYXktPmRybV9m ZCwgb3V0cHV0LT5jb25maWcuY29ubmVjdG9yLCAmbW9kZSkpOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAg ICBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUob3V0cHV0LCAmbW9kZSk7Cj4+Pj4+PiArICAgIGln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWd0 X2NyZWF0ZV9jb2xvcl9mYihkaXNwbGF5LT5kcm1fZmQsIG1vZGUuaGRpc3BsYXksIG1vZGUudmRp c3BsYXksCj4+Pj4+PiArICAgICAgICAgICAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIExPQ0FM X0RSTV9GT1JNQVRfTU9EX05PTkUsCj4+Pj4+PiArICAgICAgICAgICAgICAgIDEuZiwgMC5mLCAw LmYsICZyZWQpOwo+Pj4+Pj4gKyAgICBwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShvdXRwdXQsCj4+Pj4+PiBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPj4+Pj4+ICsgICAgaWd0 X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmcmVkKTsKPj4+Pj4+ICsgICAgaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBzKTsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWd0X291dHB1dF9zZXRfcHJv cF92YWx1ZShvdXRwdXQsCj4+Pj4+PiBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwK Pj4+Pj4+IDApOwo+Pj4+Pj4gKyAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOwo+ Pj4+Pj4gKwo+Pj4+Pj4gKyAgICByZXQgPSB3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgMCk7 Cj4+Pj4+PiArICAgIGlndF9yZXF1aXJlX2YocmV0LCAiQ29udGVudCBQcm90ZWN0aW9uIG5vdCBj bGVhcmVkXG4iKTsKPj4+Pj4gV2hlbiBleHBlY3RlZCBwcm9wZXJ0eSBzdGF0ZSBpcyBub3QgbWV0 LCB5b3UgbWlnaHQgd2FudCB0byB1c2UKPj4+Pj4gaWd0X2Fzc2VydF9mIHRvIGZhaWwgdGhlIHN1 YnRlc3QuIEhlcmUgeW91IGFyZSBqdXN0IHNraXBwaW5nIHRoZQo+Pj4+PiBzdWJ0ZXN0Lgo+Pj4+ Pj4gKwo+Pj4+Pj4gKyAgICBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKG91dHB1dCwKPj4+Pj4+ IElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLAo+Pj4+Pj4gMSk7Cj4+Pj4+PiArICAg IGlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgcyk7Cj4+Pj4+PiArCj4+Pj4+PiArICAgIHJl dCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0cHV0LCAyKTsKPj4+Pgo+Pj4+IEFzIHRoZXJlIGFy ZSByYW5nZSBvZiBIRENQIHNpbmtzIHdoaWNoIG1pZ2h0IGZhaWwgdG8gcHJvdmlkZSB0aGUgUjAg aW4KPj4+PiAxMDBtU2VjIGluIHRoZSBmaXJzdCBhdHRlbXB0LiBCdXQgcGFzc2VzIHRoZSBjb25k aXRpb24gaW4gbmV4dCBhdHRlbXB0Lgo+Pj4+IEluIHRoZSB0ZXN0aW5nIGl0IGlzIG9ic2VydmVk IHRoYXQgbWFueSBwYW5lbCdzIHdpZGVseSB1c2VkIHNob3djYXNlCj4+Pj4gYWJvdmUKPj4+PiBt ZW50aW9uZWQgYmVoYXZpb3IuCj4+Pj4KPj4+PiBTbyB3ZSBuZWVkIHRvIHJldHJ5IG9uIEhEQ1Ag ZW5hYmxlIGJlZm9yZSBkZWNsYXJpbmcgdGhlIEhEQ1AgZmFpbHVyZS4KPj4+Pgo+Pj4gSW5zdGVh ZCBvZiByZXRyeWluZyB0aGUgd2hvbGUgdGhpbmcsIHdoeSBub3QganVzdCBtYWtlIHRoZSAxMDBt cwo+Pj4gdGltZW91dCBiaWdnZXI/IFdoYXQgdmFsdWVzID4xMDBtcyBoYXZlIHlvdSBvYnNlcnZl ZD8KPj4gSSBkb250IHRoaW5rIHdlIGNhbiBpbmNyZWFzZSB0aGUgdGltZW91dCBiZXlvbmQgbWVu dGlvbmVkIDEwMG1TZWMuIElmIHdlIGRvCj4+IHNvIGl0IHdpbGwgYmUgbm9uIGNvbXBsaWFuY2Ug d2l0aCBIRENQIHNwZWMgaGVuY2UgQ1RTIHdpbGwgZmFpbC4KPiBXaGF0J3MgdGhlIGRpZmZlcmVu Y2UgdG8gdXNlcnNwYWNlPyBJc24ndCBzdHJpbmdpbmcgdG9nZXRoZXIgbXVsdGlwbGUKPiAxMDBt cyB0aW1lb3V0cyBlcXVpdmFsZW50IGFzIG9uZSBsb25nZXIgdGltZW91dD8KTW9yZSBpbmp1c3Rp Y2UgdG8gdXNlcnNwYWNlLCBhcyBhdCBrZXJuZWwgYXV0aCB3aWxsIGZhaWwgaW4gMTAwbVNlYyBk dWUgCnRvIFIwIGlzIG5vdCBhdmFpbGFibGUgZnJvbSBwYW5lbCBpbiB0aW1lLgpCdXQgdGhlcmUg aXMgbm8gd2F5IHVzZXJzcGFjZSB0byBkZXRlY3QgdGhlIGZhaWx1cmUgaW1tZWRpYXRlbHkuClNv IHVzZXJzcGFjZSBoYXMgdG8gcG9sbCBwcm9wZXJ0eSB0aWxsIHRoZSBtYXggdGltZSBhbGxvd2Vk ICg1LjFTZWMpZm9yIAphdXRoZW50aWNhdGlvbiB0byBkZXRlY3QgdGhlIGZhaWx1cmUsCm9ubHkg dGhlbiBpdCBjYW4gcmVxdWVzdCBmb3IgcmUtYXV0aGVudGljYXRpb24uCj4KPgo+PiBJTU8gUmV0 cnlpbmcgd2lsbCBiZSB0aGUgYmVzdCBvcHRpb24gbGVmdC4KPj4KPj4+Pj4+ICsgICAgaWd0X3Jl cXVpcmVfZihyZXQsICJDb250ZW50IFByb3RlY3Rpb24gbm90IGVuYWJsZWRcbiIpOwo+Pj4+PiBz YW1lIGFzIGFib3ZlLiBpZ3RfYXNzZXJ0X2YgbmVlZGVkPwo+Pj4+Pgo+Pj4+PiBBbmQgd2hlbiB5 b3UgYXJlIGRvbmUgd2l0aCBhIGNvbm5lY3RvcihvdXRwdXQpLCB3ZSBjYW50IGxlYXZlIHRoZQo+ Pj4+PiBjb250ZW50Cj4+Pj4+IHByb3RlY3Rpb24gaW4gZGVzaXJlZCBzdGF0ZS4KPj4+Pj4gRWxz ZSB3aGVuIHdlIGVuYWJsZSB0aGUgY29ubmVjdG9yIGZvciBzb21lIG90aGVyIElHVCwgY29udGVu dCBwcm90ZWN0aW9uCj4+Pj4+IGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgYXR0ZW1wdGVkIGJ5IGtl cm5lbC4KPj4+Pj4gU28gd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGEgY29ubmVjdG9yLCB3ZSBuZWVk IHRvIGNsZWFyIHRoZSBjb250ZW50Cj4+Pj4+IHByb3RlY3Rpb24gc3RhdGUoc2V0IHRvIE9GRikg b2YgdGhlIGNvbm5lY3Rvci4KPj4+Pj4KPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWd0X3BsYW5lX3Nl dF9mYihwcmltYXJ5LCBOVUxMKTsKPj4+Pj4+ICsgICAgaWd0X291dHB1dF9zZXRfcGlwZShvdXRw dXQsIFBJUEVfTk9ORSk7Cj4+Pj4+PiArfQo+Pj4+Pj4gKwo+Pj4+Pj4gK3N0YXRpYyB2b2lkCj4+ Pj4+PiArdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51 bSBpZ3RfY29tbWl0X3N0eWxlCj4+Pj4+PiBzKQo+Pj4+Pj4gK3sKPj4+Pj4+ICsgICAgaWd0X291 dHB1dF90ICpvdXRwdXQ7Cj4+Pj4+PiArICAgIGVudW0gcGlwZSBwaXBlOwo+Pj4+Pj4gKyAgICBp bnQgdmFsaWRfdGVzdHMgPSAwOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICBmb3JfZWFjaF9waXBlX3dp dGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgewo+Pj4+ICAgRnJvbSB0aGUg dGVzdGluZyBvZiB0aGlzIElHVCB3aXRoIGtlcm5lbCBjaGFuZ2VzLCBvYnNlcnZlZCBhIG5lZWQg b2YKPj4+PiByZWxvb2tpbmcgYXQgSERDUCBzdWJ0ZXN0cyBkZWZpbml0aW9uLiBSZWFzb25pbmcg aXMgYXMgZm9sbG93cy4KPj4+Pgo+Pj4+IEFuZCBoZXJlIHdlIGFyZSB0YWtpbmcgZWFjaCBwaXBl IGFuZCB0aGVpciBjb21wYXRpYmxlIG91dHB1dHMoY29ubmVjdG9ycykKPj4+PiBmb3IgaGRjcCB0 ZXN0LiBMaWtlIFBJUEVBICsgSERNSS1BLTEsIFBJUEVCK0hETUktQS0xIGV0Yy4KPj4+PiBCdXQg YXMgSERDUCBpcyBhc3NvY2lhdGVkIHRvIGNvbm5lY3RvcnMsIHdlIG5lZWQgdG8gaXRlcmF0ZSBv biBoZGNwCj4+Pj4gY2FwYWJsZQo+Pj4+IGNvbm5lY3RvciBhbmQgY2hvb3NlIHRoZSBjb21wYXRp YmxlIHBpcGUuCj4+Pj4gSW4gdGhhdCB3YXksIHdlIHdpbGwgYmUgYWJsZSB0ZXN0IHRoZSBIRENQ IG9uIGFsbCBoZGNwIGNhcGFibGUKPj4+PiBjb25uZWN0b3JzLgo+Pj4+Cj4+PiBJJ20gY29uZnVz ZWQuIFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGlzIGxvb3Agc2F5cyBpdCB0cmllcyBldmVyeQo+ Pj4gY29tYmluYXRpb24gb2YgY29ubmVjdG9yK3BpcGUgZm9yIGV2ZXJ5IGNvbm5lY3RlZCBjb25u ZWN0b3IuIENhbiB5b3UKPj4+IGV4cGxhaW4gd2hhdCBJJ20gbWlzc2luZz8KPj4+Cj4+PiBTZWFu Cj4+IFllcy4gTWFjcm8gdGFrZXMgZWFjaCBwaXBlIGFuZCB0ZXN0cyBhZ2FpbnN0IGFsbCBpbnRl cmZhY2UgYWJsZSBvdXRwdXRzLiBJCj4+IG1pc3NlZCB0aGF0IHBvaW50Lgo+PiBTdGlsbCBpdCB3 aWxsIGJlIGVmZmljaWVudCB0byB0ZXN0IGhkY3Agb24gZWFjaCBvdXRwdXQgd2l0aCBvbmx5IG9u ZQo+PiBjb21wYXRpYmxlIHBpcGUuCj4+IHRlc3Rpbmcgd2l0aCBvdGhlciBjb21wYXRpYmxlIHBp cGVzIG9mIHRoZSBjb25uZWN0b3IgaGFzIG5vIFJPSSB3LnIudCBoZGNwCj4+IHRlc3RpbmcuCj4+ Cj4+IENvbnNpZGVyaW5nIHRoYXQgbWFjcm8gcHJvdmlkZXMgc3VwZXIgc2V0IG9mIHJlcSBwaXBl K291dHB1dCBjb21iaW5hdGlvbiwgbm8KPj4gdXJnZW5jeSB0byBtb2RpZnkgaW1tZWRpYXRlbHku Cj4+Cj4gT2ssIGdyZWF0ISBJJ20gcmVsaWV2ZWQgSSB3YXMgbm90IGdvaW5nIGNyYXp5IDopCj4K PiBTZWFuCj4KPgo+Pj4+IEFuZCBzaW5jZSBpcnJlc3BlY3RpdmUgb2YgdGhlIGhkY3Agc3RhdHVz IChwYXNzL2ZhaWwpIG9uIGEgY29ubmVjdG9yLCB3ZQo+Pj4+IG5lZWQgdG8gdGVzdCBoZGNwIG9u IG90aGVyIGNvbm5lY3RvcnMgb25lIGFmdGVyIGFub3RoZXIuCj4+Pj4gU28gdGhpcyBjYW4gYmUg YWNoaWV2ZWQgaWYgdGhlIHRlc3Qgb2YgSERDUCBvbiBlYWNoIGNvbm5lY3RvciBpcwo+Pj4+IGlt cGxlbWVudGVkCj4+Pj4gYXMgZGlmZmVyZW50IElHVCBzdWJ0ZXN0cy4KPj4+Pgo+Pj4+Pj4gKyAg ICAgICAgaWYgKCFvdXRwdXQtPnByb3BzW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9O XSkKPj4+Pj4+ICsgICAgICAgICAgICBjb250aW51ZTsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgICAg IHRlc3RfcGlwZV9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0LCBzKTsKPj4+Pj4+ICsgICAg ICAgIHZhbGlkX3Rlc3RzKys7Cj4+Pj4+PiArICAgIH0KPj4+Pj4+ICsgICAgaWd0X3JlcXVpcmVf Zih2YWxpZF90ZXN0cywgIm5vIHN1cHBvcnQgZm9yIGNvbnRlbnQgcHJvdGVjaXRvbgo+Pj4+Pj4g Zm91bmRcbiIpOwo+Pj4+Pj4gK30KPj4+Pj4+ICsKPj4+Pj4+ICtpZ3RfbWFpbgo+Pj4+Pj4gK3sK Pj4+Pj4+ICsgICAgZGF0YV90IGRhdGEgPSB7fTsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWd0X2Zp eHR1cmUgewo+Pj4+Pj4gKyAgICAgICAgaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+Pj4+Pj4g Kwo+Pj4+Pj4gKyAgICAgICAgZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0FO WSk7Cj4+Pj4+IFlvdSBuZWVkIE1hc3RlciBwcml2aWxlZ2UgaGVyZS4gSGVuY2UgbWlnaHQgd2Fu dCB0byB1c2UKPj4+Pj4gZHJtX29wZW5fZHJpdmVyX21hc3RlcigpIGluc3RlYWQuCj4+Pj4+Cj4+ Pj4+IC1SYW0KPj4+Pj4+ICsKPj4+Pj4+ICsgICAgICAgIGlndF9kaXNwbGF5X2luaXQoJmRhdGEu ZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+PiArCj4+ Pj4+PiArICAgIGlndF9zdWJ0ZXN0KCJsZWdhY3kiKQo+Pj4+Pj4gKyAgICAgICAgdGVzdF9jb250 ZW50X3Byb3RlY3Rpb24oJmRhdGEuZGlzcGxheSwgQ09NTUlUX0xFR0FDWSk7Cj4+Pj4gQXMgZGlz Y3Vzc2VkIGFib3ZlLCB3ZSBuZWVkIHRvIGNvbnNpZGVyIGNvbm5lY3Rvci14LWxlZ2FjeSBhcyBh IHN1YnRlc3QuCj4+Pj4+PiArCj4+Pj4+PiArICAgIGlndF9zdWJ0ZXN0KCJhdG9taWMiKSB7Cj4+ Pj4+PiArICAgICAgICBpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKPj4+Pj4+ ICsgICAgICAgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9B VE9NSUMpOwo+Pj4+IEFzIGRpc2N1c3NlZCBhYm92ZSwgd2UgbmVlZCB0byBjb25zaWRlciBjb25u ZWN0b3IteC1hdG9taWMgYXMgYSBzdWJ0ZXN0Lgo+PiBGb3IgaW50ZXJuYWwgdGVzdGluZyBJIGhh dmUgc3ViIHRlc3RzIGRlZmluZWQgYXMgYmVsb3cuIFBsZWFzZSBzZWUgaWYgaXQKPj4gaGVscHMu Cj4+IE1pZ2h0IG5lZWQgc29tZSB0dW5pbmcgdGhvdWdoLgo+Pgo+PiAgIGlndF9tYWluCj4+ICAg ewo+PiAgICAgICAgICBkYXRhX3QgZGF0YSA9IHt9Owo+PiArICAgICAgIGlndF9vdXRwdXRfdCAq b3V0cHV0Owo+PiArICAgICAgIGVudW0gcGlwZSBwaXBlOwo+PiArICAgICAgIGNoYXIgdGVzdF9u YW1lWzUwXTsKPj4gKyAgICAgICBpbnQgaTsKPj4KPj4gICAgICAgICAgaWd0X2ZpeHR1cmUgewo+ PiAgICAgICAgICAgICAgICAgIGlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPj4gQEAgLTEyMiwx MyArMTA5LDQ0IEBAIGlndF9tYWluCj4+ICAgICAgICAgICAgICAgICAgaWd0X2Rpc3BsYXlfaW5p dCgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7Cj4+ICAgICAgICAgIH0KPj4KPj4gKyAgICAg ICAvKgo+PiArICAgICAgICAqIE5vdCB1c2luZyB0aGUgZm9yX2VhY2hfY29ubmVjdGVkX291dHB1 dCBhcyB0aGF0IG1hbmRhdGVzCj4+ICsgICAgICAgICogaWd0X2Nhbl9mYWlsKCkuCj4+ICsgICAg ICAgICovCj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGRhdGEuZGlzcGxheS5uX291dHB1dHM7 IGkrKykKPj4gKyAgICAgICBmb3JfZWFjaF9pZigob3V0cHV0ID0gJihkYXRhLmRpc3BsYXkub3V0 cHV0c1tpXSksCj4+ICsgaWd0X291dHB1dF9pc19jb25uZWN0ZWQob3V0cHV0KSkpIHsKPj4gKyAg ICAgICAgICAgICAgIGlmICghb3V0cHV0LT5wcm9wc1tJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJP VEVDVElPTl0pCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pgo+PiAtICAg ICAgIGlndF9zdWJ0ZXN0KCJsZWdhY3kiKQo+PiAtICAgICAgICAgICAgICAgdGVzdF9jb250ZW50 X3Byb3RlY3Rpb24oJmRhdGEuZGlzcGxheSwgQ09NTUlUX0xFR0FDWSk7Cj4+IC0KPj4gLSAgICAg ICBpZ3Rfc3VidGVzdCgiYXRvbWljIikgewo+PiAtICAgICAgICAgICAgICAgaWd0X3JlcXVpcmUo ZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7Cj4+IC0gICAgICAgICAgICAgICB0ZXN0X2NvbnRlbnRf cHJvdGVjdGlvbigmZGF0YS5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKPj4gKyAgICAgICAgICAg ICAgIGZvcl9lYWNoX3BpcGVfc3RhdGljKHBpcGUpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCFpZ3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gKwo+PiArICAgICAgICAgICAg ICAgICAgICAgICBzcHJpbnRmKHRlc3RfbmFtZSwgIkhEQ1BfJXNfUElQRS0lc19sZWdhY3kiLAo+ PiArIG91dHB1dC0+bmFtZSwKPj4gKyBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSk7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGlndF9zdWJ0ZXN0KHRlc3RfbmFtZSkKPj4gKyB0ZXN0X2NvbnRl bnRfcHJvdGVjdGlvbigmZGF0YS5kaXNwbGF5LCBwaXBlLAo+PiArIG91dHB1dCwgQ09NTUlUX0xF R0FDWSk7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhLmRpc3BsYXku aXNfYXRvbWljKQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiAr Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYodGVzdF9uYW1lLCAiSERDUF8lc19Q SVBFLSVzX2F0b21pYyIsCj4+ICsgb3V0cHV0LT5uYW1lLAo+PiArIGttc3Rlc3RfcGlwZV9uYW1l KHBpcGUpKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X3N1YnRlc3QodGVzdF9uYW1l KQo+PiArIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIHBpcGUsCj4+ICsg b3V0cHV0LCBDT01NSVRfQVRPTUlDKTsKPj4gKwo+PiArICAgICAgICAgICAgICAgICAgICAgICAv Kgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgKiBUZXN0aW5nIGEgb3V0cHV0IHdpdGggYSBw aXBlIGlzIGVub3VnaCBmb3IgSERDUAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgKiB0ZXN0 aW5nLiBObyBST0kgaW4gdGVzdGluZyB0aGUgY29ubmVjdG9yIHdpdGgKPj4gb3RoZXIKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICogcGlwZXMuIFNvIEJyZWFrIHRoZSBsb29wIG9uIHBpcGUu Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAqLwo+PiArICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgfQo+Pgo+PiAgICAgICAg ICBpZ3RfZml4dHVyZQo+Pgo+Pgo+Pgo+Pj4+IC1SYW0KPj4+Pgo+Pj4+Pj4gKyAgICB9Cj4+Pj4+ PiArCj4+Pj4+PiArICAgIGlndF9maXh0dXJlCj4+Pj4+PiArICAgICAgICBpZ3RfZGlzcGxheV9m aW5pKCZkYXRhLmRpc3BsYXkpOwo+Pj4+Pj4gK30KPj4+Pj4+IGRpZmYgLS1naXQgYS90ZXN0cy9t ZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCj4+Pj4+PiBpbmRleCA1OWNjZDlhNi4uYjEy YzM1YzAgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZAo+Pj4+Pj4gKysrIGIv dGVzdHMvbWVzb24uYnVpbGQKPj4+Pj4+IEBAIC0xNTcsNiArMTU3LDcgQEAgdGVzdF9wcm9ncyA9 IFsKPj4+Pj4+ICAgICAgICAgJ2ttc19jaHZfY3Vyc29yX2ZhaWwnLAo+Pj4+Pj4gICAgICAgICAn a21zX2NvbG9yJywKPj4+Pj4+ICAgICAgICAgJ2ttc19jb25jdXJyZW50JywKPj4+Pj4+ICsgICAg J2ttc19jb250ZW50X3Byb3RlY3Rpb24nLAo+Pj4+Pj4gICAgICAgICAna21zX2NydGNfYmFja2dy b3VuZF9jb2xvcicsCj4+Pj4+PiAgICAgICAgICdrbXNfY3Vyc29yX2NyYycsCj4+Pj4+PiAgICAg ICAgICdrbXNfY3Vyc29yX2xlZ2FjeScsCj4+Pj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK