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 21:22:52 +0530 Message-ID: <7d612115-dd03-a17b-85d5-65a6b9e03b5a@intel.com> References: <20171207001737.48696-1-seanpaul@chromium.org> <20171207001737.48696-2-seanpaul@chromium.org> <624536d3-463f-3eca-bbb9-9adf68047954@intel.com> <2249c04e-2724-7b92-a6c1-941d6f66ade9@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 225C96E246 for ; Sat, 6 Jan 2018 15:56:46 +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 CgpPbiBTYXR1cmRheSAwNiBKYW51YXJ5IDIwMTggMDg6MzQgUE0sIFNlYW4gUGF1bCB3cm90ZToK PiBPbiBTYXQsIEphbiA2LCAyMDE4IGF0IDg6MTAgQU0sIFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4gd3JvdGU6Cj4+Cj4+IE9uIFNhdHVyZGF5IDA2IEphbnVhcnkgMjAxOCAw NjozMCBQTSwgU2VhbiBQYXVsIHdyb3RlOgo+Pj4gT24gU2F0LCBKYW4gNiwgMjAxOCBhdCA1OjQ0 IEFNLCBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4+PiB3cm90ZToKPj4+ PiBPbiBTYXR1cmRheSAwNiBKYW51YXJ5IDIwMTggMTI6NTkgQU0sIFNlYW4gUGF1bCB3cm90ZToK Pj4+Pj4gT24gVHVlLCBEZWMgMTksIDIwMTcgYXQgOToyOCBBTSwgUmFtYWxpbmdhbSBDIDxyYW1h bGluZ2FtLmNAaW50ZWwuY29tPgo+Pj4+PiB3cm90ZToKPj4+Pj4+IEFkZGluZyBmZXcgbW9yZSBm aW5kaW5ncyBmcm9tIHRoZSBJR1QgdXNhZ2Ugd2l0aCBrZXJuZWwgc29sdXRpb25zLgo+Pj4+Pj4K Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT24gV2VkbmVzZGF5IDEzIERlY2VtYmVyIDIwMTcgMDQ6MDcg UE0sIFJhbWFsaW5nYW0gQyB3cm90ZToKPj4+Pj4+PiBTZWFuLAo+Pj4+Pj4+Cj4+Pj4+Pj4gQWRk aW5nIGZldyBtb3JlIG9ic2VydmF0aW9ucy4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gVGh1 cnNkYXkgMDcgRGVjZW1iZXIgMjAxNyAwNTo0NyBBTSwgU2VhbiBQYXVsIHdyb3RlOgo+Pj4+Pj4+ PiBQcmV0dHkgc2ltcGxlIHRlc3Q6Cj4+Pj4+Pj4+IC0gaW5pdGlhbGl6ZXMgdGhlIG91dHB1dAo+ Pj4+Pj4+PiAtIGNsZWFycyB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5Cj4+Pj4+Pj4+ IC0gdmVyaWZpZXMgdGhhdCBpdCBjbGVhcnMKPj4+Pj4+Pj4gLSBzZXRzIHRoZSBjb250ZW50IHBy b3RlY3Rpb24gcHJvcGVydHkgdG8gZGVzaXJlZAo+Pj4+Pj4+PiAtIHZlcmlmaWVzIHRoYXQgaXQg dHJhbnNpdGlvbnMgdG8gZW5hYmxlZAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBEb2VzIHRoaXMgZm9yIGJv dGggbGVnYWN5IGFuZCBhdG9taWMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IENoYW5nZXMgaW4gdjI6Cj4+ Pj4+Pj4+IC0gRG9uJ3QgY2hlY2sgZm9yIGk5MTUgZ2VuCj4+Pj4+Pj4+IC0gU2tpcCB0ZXN0IGlm IENvbnRlbnQgUHJvdGVjdGlvbiBwcm9wZXJ0eSBpcyBhYnNlbnQKPj4+Pj4+Pj4KPj4+Pj4+Pj4g U2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+Pj4+Pj4+ IC0tLQo+Pj4+Pj4+PiAgICAgIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICAgICB8ICAgMyAr LQo+Pj4+Pj4+PiAgICAgIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICAgICB8ICAgMSArCj4+ Pj4+Pj4+ICAgICAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAgICAgIHwgICAxICsKPj4+Pj4+ Pj4gICAgICB0ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9uLmMgfCAxMjkKPj4+Pj4+Pj4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+Pj4+Pj4gICAgICB0ZXN0 cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDEgKwo+Pj4+Pj4+PiAgICAgIDUgZmlsZXMg Y2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4+Pj4+Pj4gICAgICBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwo+Pj4+ Pj4+PiBpbmRleCAxMjVlY2IxOS4uOTA3ZGI2OTQgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2xpYi9p Z3Rfa21zLmMKPj4+Pj4+Pj4gKysrIGIvbGliL2lndF9rbXMuYwo+Pj4+Pj4+PiBAQCAtMTkwLDcg KzE5MCw4IEBAIGNvbnN0IGNoYXIKPj4+Pj4+Pj4gKmlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJ R1RfTlVNX0NPTk5FQ1RPUl9QUk9QU10gPSB7Cj4+Pj4+Pj4+ICAgICAgICAgICJzY2FsaW5nIG1v ZGUiLAo+Pj4+Pj4+PiAgICAgICAgICAiQ1JUQ19JRCIsCj4+Pj4+Pj4+ICAgICAgICAgICJEUE1T IiwKPj4+Pj4+Pj4gLSAgICAiQnJvYWRjYXN0IFJHQiIKPj4+Pj4+Pj4gKyAgICAiQnJvYWRjYXN0 IFJHQiIsCj4+Pj4+Pj4+ICsgICAgIkNvbnRlbnQgUHJvdGVjdGlvbiIKPj4+Pj4+Pj4gICAgICB9 Owo+Pj4+Pj4+PiAgICAgICAgLyoKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmgg Yi9saWIvaWd0X2ttcy5oCj4+Pj4+Pj4+IGluZGV4IDJhNDgwYmYzLi45M2U1OWRjNyAxMDA2NDQK Pj4+Pj4+Pj4gLS0tIGEvbGliL2lndF9rbXMuaAo+Pj4+Pj4+PiArKysgYi9saWIvaWd0X2ttcy5o Cj4+Pj4+Pj4+IEBAIC0xMTgsNiArMTE4LDcgQEAgZW51bSBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9w cm9wZXJ0aWVzIHsKPj4+Pj4+Pj4gICAgICAgICAgICAgSUdUX0NPTk5FQ1RPUl9DUlRDX0lELAo+ Pj4+Pj4+PiAgICAgICAgICAgICBJR1RfQ09OTkVDVE9SX0RQTVMsCj4+Pj4+Pj4+ICAgICAgICAg ICAgIElHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQiwKPj4+Pj4+Pj4gKyAgICAgICBJR1RfQ09O TkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwKPj4+Pj4+Pj4gICAgICAgICAgICAgSUdUX05VTV9D T05ORUNUT1JfUFJPUFMKPj4+Pj4+Pj4gICAgICB9Owo+Pj4+Pj4+PiAgICAgIGRpZmYgLS1naXQg YS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+Pj4+Pj4+ PiBpbmRleCAzNGNhNzFhMC4uZTA0NjY0MTEgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKPj4+Pj4+Pj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+Pj4+ Pj4+PiBAQCAtMTc5LDYgKzE3OSw3IEBAIFRFU1RTX3Byb2dzID0gXAo+Pj4+Pj4+PiAgICAgICAg ICBrbXNfY2h2X2N1cnNvcl9mYWlsIFwKPj4+Pj4+Pj4gICAgICAgICAga21zX2NvbG9yIFwKPj4+ Pj4+Pj4gICAgICAgICAga21zX2NvbmN1cnJlbnQgXAo+Pj4+Pj4+PiArICAgIGttc19jb250ZW50 X3Byb3RlY3Rpb25cCj4+Pj4+Pj4+ICAgICAgICAgIGttc19jcnRjX2JhY2tncm91bmRfY29sb3Ig XAo+Pj4+Pj4+PiAgICAgICAgICBrbXNfY3Vyc29yX2NyYyBcCj4+Pj4+Pj4+ICAgICAgICAgIGtt c19jdXJzb3JfbGVnYWN5IFwKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb250ZW50 X3Byb3RlY3Rpb24uYwo+Pj4+Pj4+PiBiL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwo+ Pj4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4+Pj4+PiBpbmRleCAwMDAwMDAwMC4uNWQ2 MWIyNTcKPj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+Pj4+PiArKysgYi90ZXN0cy9rbXNfY29u dGVudF9wcm90ZWN0aW9uLmMKPj4+Pj4+Pj4gQEAgLTAsMCArMSwxMjkgQEAKPj4+Pj4+Pj4gKy8q Cj4+Pj4+Pj4+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNyBHb29nbGUsIEluYy4KPj4+Pj4+Pj4gKyAq Cj4+Pj4+Pj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbgo+Pj4+Pj4+PiBvYnRhaW5pbmcKPj4+Pj4+Pj4gYQo+Pj4+Pj4+PiAr ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZQo+Pj4+Pj4+PiAiU29mdHdhcmUiKSwKPj4+Pj4+Pj4gKyAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cj4+Pj4+Pj4+ IGxpbWl0YXRpb24KPj4+Pj4+Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLAo+Pj4+Pj4+PiBzdWJsaWNlbnNlLAo+Pj4+Pj4+ PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20KPj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+ICsgKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZwo+Pj4+Pj4+PiBjb25kaXRp b25zOgo+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcKPj4+Pj4+Pj4gdGhlCj4+Pj4+ Pj4+IG5leHQKPj4+Pj4+Pj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbAo+Pj4+Pj4+PiBwb3J0aW9ucwo+Pj4+Pj4+PiBvZgo+Pj4+ Pj4+PiB0aGUKPj4+Pj4+Pj4gKyAqIFNvZnR3YXJlLgo+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4gKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELAo+Pj4+Pj4+PiBFWFBSRVNTIE9SCj4+Pj4+Pj4+ICsgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCj4+Pj4+Pj4+IE1FUkNIQU5U QUJJTElUWSwKPj4+Pj4+Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTwo+Pj4+Pj4+PiBFVkVOVAo+Pj4+Pj4+PiBTSEFMTAo+ Pj4+Pj4+PiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMKPj4+Pj4+Pj4gT1IKPj4+Pj4+Pj4gT1RIRVIKPj4+Pj4+Pj4g KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLAo+Pj4+Pj4+PiBBUklTSU5HCj4+Pj4+Pj4+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4+Pj4+Pj4+IE9U SEVSCj4+Pj4+Pj4+IERFQUxJTkdTCj4+Pj4+Pj4+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4+Pj4+ Pj4+ICsgKgo+Pj4+Pj4+PiArICovCj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKyNpbmNsdWRlICJpZ3Qu aCIKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgY29udGVu dCBwcm90ZWN0aW9uIChIRENQKSIpOwo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICt0eXBlZGVmIHN0cnVj dCB7Cj4+Pj4+Pj4+ICsgICAgaW50IGRybV9mZDsKPj4+Pj4+Pj4gKyAgICBpZ3RfZGlzcGxheV90 IGRpc3BsYXk7Cj4+Pj4+Pj4+ICt9IGRhdGFfdDsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArc3RhdGlj IGJvb2wKPj4+Pj4+Pj4gK3dhaXRfZm9yX3Byb3BfdmFsdWUoaWd0X291dHB1dF90ICpvdXRwdXQs IHVpbnQ2NF90IGV4cGVjdGVkKQo+Pj4+Pj4+PiArewo+Pj4+Pj4+PiArICAgIHVpbnQ2NF90IHZh bDsKPj4+Pj4+Pj4gKyAgICBpbnQgaTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgIGZvciAoaSA9 IDA7IGkgPCAyMDAwOyBpKyspIHsKPj4+Pj4+PiB3ZSBuZWVkIDUrU2VjIHRvIGNvbXBsZXRlIHRo ZSBTZWNvbmQgcGFydCBvZiBhdXRoZW50aWNhdGlvbiwgaW4gY2FzZQo+Pj4+Pj4+IG9mCj4+Pj4+ Pj4gcmVwZWF0ZXIgd2l0aCBtYXggZG93bnN0cmVhbSB0b3BvbG9neS4KPj4+Pj4+PiBTbyB3ZSBt aWdodCBuZWVkIHRvIHdhaXQgZm9yIDYwMDAoNlNlYykgbG9vcHMhPwo+Pj4+Pj4+PiArICAgICAg ICB2YWwgPSBpZ3Rfb3V0cHV0X2dldF9wcm9wKG91dHB1dCwKPj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTik7Cj4+Pj4+Pj4+ICsg ICAgICAgIGlmICh2YWwgPT0gZXhwZWN0ZWQpCj4+Pj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKPj4+Pj4+Pj4gKyAgICAgICAgdXNsZWVwKDEwMDApOwo+Pj4+Pj4+PiArICAgIH0KPj4+ Pj4+Pj4gKyAgICBpZ3RfaW5mbygicHJvcF92YWx1ZSBtaXNtYXRjaCAlbGQgIT0gJWxkXG4iLCB2 YWwsIGV4cGVjdGVkKTsKPj4+Pj4+Pj4gKyAgICByZXR1cm4gZmFsc2U7Cj4+Pj4+Pj4+ICt9Cj4+ Pj4+Pj4+ICsKPj4+Pj4+Pj4gK3N0YXRpYyB2b2lkCj4+Pj4+Pj4+ICt0ZXN0X3BpcGVfb3V0cHV0 KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGNvbnN0IGVudW0gcGlwZSBwaXBlLAo+Pj4+Pj4+PiAr ICAgICAgICAgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQo+ Pj4+Pj4+PiArewo+Pj4+Pj4+PiArICAgIGRybU1vZGVNb2RlSW5mbyBtb2RlOwo+Pj4+Pj4+PiAr ICAgIGlndF9wbGFuZV90ICpwcmltYXJ5Owo+Pj4+Pj4+PiArICAgIHN0cnVjdCBpZ3RfZmIgcmVk Owo+Pj4+Pj4+PiArICAgIGJvb2wgcmV0Owo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgaWd0X2Fz c2VydChrbXN0ZXN0X2dldF9jb25uZWN0b3JfZGVmYXVsdF9tb2RlKAo+Pj4+Pj4+PiArICAgICAg ICAgICAgZGlzcGxheS0+ZHJtX2ZkLCBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3IsICZtb2RlKSk7 Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKyAgICBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUob3V0cHV0 LCAmbW9kZSk7Cj4+Pj4+Pj4+ICsgICAgaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUp Owo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgaWd0X2NyZWF0ZV9jb2xvcl9mYihkaXNwbGF5LT5k cm1fZmQsIG1vZGUuaGRpc3BsYXksCj4+Pj4+Pj4+IG1vZGUudmRpc3BsYXksCj4+Pj4+Pj4+ICsg ICAgICAgICAgICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0Rf Tk9ORSwKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAxLmYsIDAuZiwgMC5mLCAmcmVkKTsKPj4+ Pj4+Pj4gKyAgICBwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsCj4+ Pj4+Pj4+IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+Pj4+Pj4+PiArICAgIGlndF9wbGFuZV9z ZXRfZmIocHJpbWFyeSwgJnJlZCk7Cj4+Pj4+Pj4+ICsgICAgaWd0X2Rpc3BsYXlfY29tbWl0Mihk aXNwbGF5LCBzKTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgIGlndF9vdXRwdXRfc2V0X3Byb3Bf dmFsdWUob3V0cHV0LAo+Pj4+Pj4+PiBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwK Pj4+Pj4+Pj4gMCk7Cj4+Pj4+Pj4+ICsgICAgaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBz KTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgIHJldCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0 cHV0LCAwKTsKPj4+Pj4+Pj4gKyAgICBpZ3RfcmVxdWlyZV9mKHJldCwgIkNvbnRlbnQgUHJvdGVj dGlvbiBub3QgY2xlYXJlZFxuIik7Cj4+Pj4+Pj4gV2hlbiBleHBlY3RlZCBwcm9wZXJ0eSBzdGF0 ZSBpcyBub3QgbWV0LCB5b3UgbWlnaHQgd2FudCB0byB1c2UKPj4+Pj4+PiBpZ3RfYXNzZXJ0X2Yg dG8gZmFpbCB0aGUgc3VidGVzdC4gSGVyZSB5b3UgYXJlIGp1c3Qgc2tpcHBpbmcgdGhlCj4+Pj4+ Pj4gc3VidGVzdC4KPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgIGlndF9vdXRwdXRfc2V0X3Byb3Bf dmFsdWUob3V0cHV0LAo+Pj4+Pj4+PiBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwK Pj4+Pj4+Pj4gMSk7Cj4+Pj4+Pj4+ICsgICAgaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBz KTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgIHJldCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0 cHV0LCAyKTsKPj4+Pj4+Cj4+Pj4+PiBBcyB0aGVyZSBhcmUgcmFuZ2Ugb2YgSERDUCBzaW5rcyB3 aGljaCBtaWdodCBmYWlsIHRvIHByb3ZpZGUgdGhlIFIwIGluCj4+Pj4+PiAxMDBtU2VjIGluIHRo ZSBmaXJzdCBhdHRlbXB0LiBCdXQgcGFzc2VzIHRoZSBjb25kaXRpb24gaW4gbmV4dCBhdHRlbXB0 Lgo+Pj4+Pj4gSW4gdGhlIHRlc3RpbmcgaXQgaXMgb2JzZXJ2ZWQgdGhhdCBtYW55IHBhbmVsJ3Mg d2lkZWx5IHVzZWQgc2hvd2Nhc2UKPj4+Pj4+IGFib3ZlCj4+Pj4+PiBtZW50aW9uZWQgYmVoYXZp b3IuCj4+Pj4+Pgo+Pj4+Pj4gU28gd2UgbmVlZCB0byByZXRyeSBvbiBIRENQIGVuYWJsZSBiZWZv cmUgZGVjbGFyaW5nIHRoZSBIRENQIGZhaWx1cmUuCj4+Pj4+Pgo+Pj4+PiBJbnN0ZWFkIG9mIHJl dHJ5aW5nIHRoZSB3aG9sZSB0aGluZywgd2h5IG5vdCBqdXN0IG1ha2UgdGhlIDEwMG1zCj4+Pj4+ IHRpbWVvdXQgYmlnZ2VyPyBXaGF0IHZhbHVlcyA+MTAwbXMgaGF2ZSB5b3Ugb2JzZXJ2ZWQ/Cj4+ Pj4gSSBkb250IHRoaW5rIHdlIGNhbiBpbmNyZWFzZSB0aGUgdGltZW91dCBiZXlvbmQgbWVudGlv bmVkIDEwMG1TZWMuIElmIHdlCj4+Pj4gZG8KPj4+PiBzbyBpdCB3aWxsIGJlIG5vbiBjb21wbGlh bmNlIHdpdGggSERDUCBzcGVjIGhlbmNlIENUUyB3aWxsIGZhaWwuCj4+PiBXaGF0J3MgdGhlIGRp ZmZlcmVuY2UgdG8gdXNlcnNwYWNlPyBJc24ndCBzdHJpbmdpbmcgdG9nZXRoZXIgbXVsdGlwbGUK Pj4+IDEwMG1zIHRpbWVvdXRzIGVxdWl2YWxlbnQgYXMgb25lIGxvbmdlciB0aW1lb3V0Pwo+PiBN b3JlIGluanVzdGljZSB0byB1c2Vyc3BhY2UsIGFzIGF0IGtlcm5lbCBhdXRoIHdpbGwgZmFpbCBp biAxMDBtU2VjIGR1ZSB0bwo+PiBSMCBpcyBub3QgYXZhaWxhYmxlIGZyb20gcGFuZWwgaW4gdGlt ZS4KPj4gQnV0IHRoZXJlIGlzIG5vIHdheSB1c2Vyc3BhY2UgdG8gZGV0ZWN0IHRoZSBmYWlsdXJl IGltbWVkaWF0ZWx5Lgo+PiBTbyB1c2Vyc3BhY2UgaGFzIHRvIHBvbGwgcHJvcGVydHkgdGlsbCB0 aGUgbWF4IHRpbWUgYWxsb3dlZCAoNS4xU2VjKWZvcgo+PiBhdXRoZW50aWNhdGlvbiB0byBkZXRl Y3QgdGhlIGZhaWx1cmUsCj4+IG9ubHkgdGhlbiBpdCBjYW4gcmVxdWVzdCBmb3IgcmUtYXV0aGVu dGljYXRpb24uCj4+Cj4gSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kLiBXaGVyZSBkbyB5b3Ugd2Fu dCB0aGUgcmV0cnkgbG9jYXRlZD8gSW4KPiB1c2Vyc3BhY2Ugb3Iga2VybmVsPyBJZiBpdCdzIGlu IGtlcm5lbCwgdGhlcmUncyBubyBkaWZmZXJlbmNlIHRvCj4gdXNlcnNwYWNlIGJldHdlZW4gcmV0 cnlpbmcgbXVsdGlwbGUgdGltZXMgb3IganVzdCBpbmNyZWFzaW5nIHRoZQo+IHRpbWVvdXQuIElm IHlvdSdyZSBhcmd1aW5nIGZvciBhIHVzZXJzcGFjZSByZXRyeSwgdGhhdCdzIG5vdCByZWFsbHkK PiByZWxldmFudCBoZXJlIChzaW5jZSB3ZSBzaG91bGRuJ3QgYmUgdXNpbmcgbm9uLWNvbXBsaWFu dCBzaW5rcyBmb3IKPiBpZ3QpLgpJTU8gcmV0cnkgaXMgbmVlZGVkIGluIGtlcm5lbCBzcGFjZSBh bmQgYWxzbyBpbiB1c2VyIHNwYWNlLgoKQXMgcGVyIG15IHVuZGVyc3RhbmRpbmcsIHRoaXMgaGRj cCBpZ3Qgd2lsbCBiZSBleGVjdXRlZCBvbiBhbGwgQ0kgc2V0dXBzIApnb2luZyBmb3J3YXJkLgoK Q29uc2lkZXJpbmcgdGhhdCBJIGhhdmUgc2VlbiBtYW55IGhkY3AgY2FwYWJsZSBwYW5lbHMgaW4g dXNlIHNob3dzIHN1Y2ggCmZhaWx1cmVzLAppIGFtIG5vdCBzdXJlIG9uIHByYWN0aWNhbGl0eSBv ZiBlbnN1cmluZyBvbmx5IEhEQ1AgY29tcGxpYW50IEhETUkgYW5kIApEUCBwYW5lbHMgb25seSB1 c2VkIG9uIGFsbCBDSSBzZXR1cHMuClNvIHNpbmNlIGl0IGlzIHBvc3NpYmxlLCBpIHdvdWxkIHBy ZWZlciB0byBhdm9pZCBzdWNoIGhkY3AgZmFpbHVyZSAKcmVwb3J0cyB3aXRoIGEgcmV0cnkgZnJv bSBJR1QuCgpJIGxlYXZlIHRoZSBmaW5hbCBkZWNpc2lvbnMgdG8geW91KG1haW50YWluZXJzKS4g QlRXIGp1c3Qgc3VnZ2VzdGluZyBmZXcgCnBvaW50cywgbm90IGludGVuZGVkIHRvIGFyZ3VlIDop CgotUmFtCgo+Cj4gU2Vhbgo+Cj4KPj4+Cj4+Pj4gSU1PIFJldHJ5aW5nIHdpbGwgYmUgdGhlIGJl c3Qgb3B0aW9uIGxlZnQuCj4+Pj4KPj4+Pj4+Pj4gKyAgICBpZ3RfcmVxdWlyZV9mKHJldCwgIkNv bnRlbnQgUHJvdGVjdGlvbiBub3QgZW5hYmxlZFxuIik7Cj4+Pj4+Pj4gc2FtZSBhcyBhYm92ZS4g aWd0X2Fzc2VydF9mIG5lZWRlZD8KPj4+Pj4+Pgo+Pj4+Pj4+IEFuZCB3aGVuIHlvdSBhcmUgZG9u ZSB3aXRoIGEgY29ubmVjdG9yKG91dHB1dCksIHdlIGNhbnQgbGVhdmUgdGhlCj4+Pj4+Pj4gY29u dGVudAo+Pj4+Pj4+IHByb3RlY3Rpb24gaW4gZGVzaXJlZCBzdGF0ZS4KPj4+Pj4+PiBFbHNlIHdo ZW4gd2UgZW5hYmxlIHRoZSBjb25uZWN0b3IgZm9yIHNvbWUgb3RoZXIgSUdULCBjb250ZW50Cj4+ Pj4+Pj4gcHJvdGVjdGlvbgo+Pj4+Pj4+IGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgYXR0ZW1wdGVk IGJ5IGtlcm5lbC4KPj4+Pj4+PiBTbyB3aGVuIHdlIGFyZSBkb25lIHdpdGggYSBjb25uZWN0b3Is IHdlIG5lZWQgdG8gY2xlYXIgdGhlIGNvbnRlbnQKPj4+Pj4+PiBwcm90ZWN0aW9uIHN0YXRlKHNl dCB0byBPRkYpIG9mIHRoZSBjb25uZWN0b3IuCj4+Pj4+Pj4KPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiAr ICAgIGlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4+Pj4+Pj4+ICsgICAgaWd0X291 dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7Cj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+ICsK Pj4+Pj4+Pj4gK3N0YXRpYyB2b2lkCj4+Pj4+Pj4+ICt0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihp Z3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtCj4+Pj4+Pj4+IGlndF9jb21taXRfc3R5bGUKPj4+ Pj4+Pj4gcykKPj4+Pj4+Pj4gK3sKPj4+Pj4+Pj4gKyAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsK Pj4+Pj4+Pj4gKyAgICBlbnVtIHBpcGUgcGlwZTsKPj4+Pj4+Pj4gKyAgICBpbnQgdmFsaWRfdGVz dHMgPSAwOwo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlk X291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPj4+Pj4+ICAgIEZyb20gdGhlIHRlc3Rp bmcgb2YgdGhpcyBJR1Qgd2l0aCBrZXJuZWwgY2hhbmdlcywgb2JzZXJ2ZWQgYSBuZWVkIG9mCj4+ Pj4+PiByZWxvb2tpbmcgYXQgSERDUCBzdWJ0ZXN0cyBkZWZpbml0aW9uLiBSZWFzb25pbmcgaXMg YXMgZm9sbG93cy4KPj4+Pj4+Cj4+Pj4+PiBBbmQgaGVyZSB3ZSBhcmUgdGFraW5nIGVhY2ggcGlw ZSBhbmQgdGhlaXIgY29tcGF0aWJsZQo+Pj4+Pj4gb3V0cHV0cyhjb25uZWN0b3JzKQo+Pj4+Pj4g Zm9yIGhkY3AgdGVzdC4gTGlrZSBQSVBFQSArIEhETUktQS0xLCBQSVBFQitIRE1JLUEtMSBldGMu Cj4+Pj4+PiBCdXQgYXMgSERDUCBpcyBhc3NvY2lhdGVkIHRvIGNvbm5lY3RvcnMsIHdlIG5lZWQg dG8gaXRlcmF0ZSBvbiBoZGNwCj4+Pj4+PiBjYXBhYmxlCj4+Pj4+PiBjb25uZWN0b3IgYW5kIGNo b29zZSB0aGUgY29tcGF0aWJsZSBwaXBlLgo+Pj4+Pj4gSW4gdGhhdCB3YXksIHdlIHdpbGwgYmUg YWJsZSB0ZXN0IHRoZSBIRENQIG9uIGFsbCBoZGNwIGNhcGFibGUKPj4+Pj4+IGNvbm5lY3RvcnMu Cj4+Pj4+Pgo+Pj4+PiBJJ20gY29uZnVzZWQuIFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGlzIGxv b3Agc2F5cyBpdCB0cmllcyBldmVyeQo+Pj4+PiBjb21iaW5hdGlvbiBvZiBjb25uZWN0b3IrcGlw ZSBmb3IgZXZlcnkgY29ubmVjdGVkIGNvbm5lY3Rvci4gQ2FuIHlvdQo+Pj4+PiBleHBsYWluIHdo YXQgSSdtIG1pc3Npbmc/Cj4+Pj4+Cj4+Pj4+IFNlYW4KPj4+PiBZZXMuIE1hY3JvIHRha2VzIGVh Y2ggcGlwZSBhbmQgdGVzdHMgYWdhaW5zdCBhbGwgaW50ZXJmYWNlIGFibGUgb3V0cHV0cy4KPj4+ PiBJCj4+Pj4gbWlzc2VkIHRoYXQgcG9pbnQuCj4+Pj4gU3RpbGwgaXQgd2lsbCBiZSBlZmZpY2ll bnQgdG8gdGVzdCBoZGNwIG9uIGVhY2ggb3V0cHV0IHdpdGggb25seSBvbmUKPj4+PiBjb21wYXRp YmxlIHBpcGUuCj4+Pj4gdGVzdGluZyB3aXRoIG90aGVyIGNvbXBhdGlibGUgcGlwZXMgb2YgdGhl IGNvbm5lY3RvciBoYXMgbm8gUk9JIHcuci50Cj4+Pj4gaGRjcAo+Pj4+IHRlc3RpbmcuCj4+Pj4K Pj4+PiBDb25zaWRlcmluZyB0aGF0IG1hY3JvIHByb3ZpZGVzIHN1cGVyIHNldCBvZiByZXEgcGlw ZStvdXRwdXQgY29tYmluYXRpb24sCj4+Pj4gbm8KPj4+PiB1cmdlbmN5IHRvIG1vZGlmeSBpbW1l ZGlhdGVseS4KPj4+Pgo+Pj4gT2ssIGdyZWF0ISBJJ20gcmVsaWV2ZWQgSSB3YXMgbm90IGdvaW5n IGNyYXp5IDopCj4+Pgo+Pj4gU2Vhbgo+Pj4KPj4+Cj4+Pj4+PiBBbmQgc2luY2UgaXJyZXNwZWN0 aXZlIG9mIHRoZSBoZGNwIHN0YXR1cyAocGFzcy9mYWlsKSBvbiBhIGNvbm5lY3RvciwKPj4+Pj4+ IHdlCj4+Pj4+PiBuZWVkIHRvIHRlc3QgaGRjcCBvbiBvdGhlciBjb25uZWN0b3JzIG9uZSBhZnRl ciBhbm90aGVyLgo+Pj4+Pj4gU28gdGhpcyBjYW4gYmUgYWNoaWV2ZWQgaWYgdGhlIHRlc3Qgb2Yg SERDUCBvbiBlYWNoIGNvbm5lY3RvciBpcwo+Pj4+Pj4gaW1wbGVtZW50ZWQKPj4+Pj4+IGFzIGRp ZmZlcmVudCBJR1Qgc3VidGVzdHMuCj4+Pj4+Pgo+Pj4+Pj4+PiArICAgICAgICBpZiAoIW91dHB1 dC0+cHJvcHNbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05dKQo+Pj4+Pj4+PiArICAg ICAgICAgICAgY29udGludWU7Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKyAgICAgICAgdGVzdF9waXBl X291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIHMpOwo+Pj4+Pj4+PiArICAgICAgICB2YWxp ZF90ZXN0cysrOwo+Pj4+Pj4+PiArICAgIH0KPj4+Pj4+Pj4gKyAgICBpZ3RfcmVxdWlyZV9mKHZh bGlkX3Rlc3RzLCAibm8gc3VwcG9ydCBmb3IgY29udGVudCBwcm90ZWNpdG9uCj4+Pj4+Pj4+IGZv dW5kXG4iKTsKPj4+Pj4+Pj4gK30KPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiAraWd0X21haW4KPj4+Pj4+ Pj4gK3sKPj4+Pj4+Pj4gKyAgICBkYXRhX3QgZGF0YSA9IHt9Owo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ ICsgICAgaWd0X2ZpeHR1cmUgewo+Pj4+Pj4+PiArICAgICAgICBpZ3Rfc2tpcF9vbl9zaW11bGF0 aW9uKCk7Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKyAgICAgICAgZGF0YS5kcm1fZmQgPSBkcm1fb3Bl bl9kcml2ZXIoRFJJVkVSX0FOWSk7Cj4+Pj4+Pj4gWW91IG5lZWQgTWFzdGVyIHByaXZpbGVnZSBo ZXJlLiBIZW5jZSBtaWdodCB3YW50IHRvIHVzZQo+Pj4+Pj4+IGRybV9vcGVuX2RyaXZlcl9tYXN0 ZXIoKSBpbnN0ZWFkLgo+Pj4+Pj4+Cj4+Pj4+Pj4gLVJhbQo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsg ICAgICAgIGlndF9kaXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+Pj4+ Pj4+PiArICAgIH0KPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgaWd0X3N1YnRl c3QoImxlZ2FjeSIpCj4+Pj4+Pj4+ICsgICAgICAgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZk YXRhLmRpc3BsYXksIENPTU1JVF9MRUdBQ1kpOwo+Pj4+Pj4gQXMgZGlzY3Vzc2VkIGFib3ZlLCB3 ZSBuZWVkIHRvIGNvbnNpZGVyIGNvbm5lY3Rvci14LWxlZ2FjeSBhcyBhCj4+Pj4+PiBzdWJ0ZXN0 Lgo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgaWd0X3N1YnRlc3QoImF0b21pYyIpIHsKPj4+Pj4+ Pj4gKyAgICAgICAgaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7Cj4+Pj4+Pj4+ ICsgICAgICAgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9B VE9NSUMpOwo+Pj4+Pj4gQXMgZGlzY3Vzc2VkIGFib3ZlLCB3ZSBuZWVkIHRvIGNvbnNpZGVyIGNv bm5lY3Rvci14LWF0b21pYyBhcyBhCj4+Pj4+PiBzdWJ0ZXN0Lgo+Pj4+IEZvciBpbnRlcm5hbCB0 ZXN0aW5nIEkgaGF2ZSBzdWIgdGVzdHMgZGVmaW5lZCBhcyBiZWxvdy4gUGxlYXNlIHNlZSBpZiBp dAo+Pj4+IGhlbHBzLgo+Pj4+IE1pZ2h0IG5lZWQgc29tZSB0dW5pbmcgdGhvdWdoLgo+Pj4+Cj4+ Pj4gICAgaWd0X21haW4KPj4+PiAgICB7Cj4+Pj4gICAgICAgICAgIGRhdGFfdCBkYXRhID0ge307 Cj4+Pj4gKyAgICAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPj4+PiArICAgICAgIGVudW0gcGlw ZSBwaXBlOwo+Pj4+ICsgICAgICAgY2hhciB0ZXN0X25hbWVbNTBdOwo+Pj4+ICsgICAgICAgaW50 IGk7Cj4+Pj4KPj4+PiAgICAgICAgICAgaWd0X2ZpeHR1cmUgewo+Pj4+ICAgICAgICAgICAgICAg ICAgIGlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPj4+PiBAQCAtMTIyLDEzICsxMDksNDQgQEAg aWd0X21haW4KPj4+PiAgICAgICAgICAgICAgICAgICBpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRp c3BsYXksIGRhdGEuZHJtX2ZkKTsKPj4+PiAgICAgICAgICAgfQo+Pj4+Cj4+Pj4gKyAgICAgICAv Kgo+Pj4+ICsgICAgICAgICogTm90IHVzaW5nIHRoZSBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0 IGFzIHRoYXQgbWFuZGF0ZXMKPj4+PiArICAgICAgICAqIGlndF9jYW5fZmFpbCgpLgo+Pj4+ICsg ICAgICAgICovCj4+Pj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YS5kaXNwbGF5Lm5fb3V0 cHV0czsgaSsrKQo+Pj4+ICsgICAgICAgZm9yX2VhY2hfaWYoKG91dHB1dCA9ICYoZGF0YS5kaXNw bGF5Lm91dHB1dHNbaV0pLAo+Pj4+ICsgaWd0X291dHB1dF9pc19jb25uZWN0ZWQob3V0cHV0KSkp IHsKPj4+PiArICAgICAgICAgICAgICAgaWYgKCFvdXRwdXQtPnByb3BzW0lHVF9DT05ORUNUT1Jf Q09OVEVOVF9QUk9URUNUSU9OXSkKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKPj4+Pgo+Pj4+IC0gICAgICAgaWd0X3N1YnRlc3QoImxlZ2FjeSIpCj4+Pj4gLSAgICAgICAg ICAgICAgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9MRUdB Q1kpOwo+Pj4+IC0KPj4+PiAtICAgICAgIGlndF9zdWJ0ZXN0KCJhdG9taWMiKSB7Cj4+Pj4gLSAg ICAgICAgICAgICAgIGlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwo+Pj4+IC0g ICAgICAgICAgICAgICB0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbigmZGF0YS5kaXNwbGF5LCBDT01N SVRfQVRPTUlDKTsKPj4+PiArICAgICAgICAgICAgICAgZm9yX2VhY2hfcGlwZV9zdGF0aWMocGlw ZSkgewo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghaWd0X3BpcGVfY29ubmVjdG9y X3ZhbGlkKHBpcGUsIG91dHB1dCkpCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKPj4+PiArCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50Zih0 ZXN0X25hbWUsICJIRENQXyVzX1BJUEUtJXNfbGVnYWN5IiwKPj4+PiArIG91dHB1dC0+bmFtZSwK Pj4+PiArIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKPj4+PiArICAgICAgICAgICAgICAgICAg ICAgICBpZ3Rfc3VidGVzdCh0ZXN0X25hbWUpCj4+Pj4gKyB0ZXN0X2NvbnRlbnRfcHJvdGVjdGlv bigmZGF0YS5kaXNwbGF5LCBwaXBlLAo+Pj4+ICsgb3V0cHV0LCBDT01NSVRfTEVHQUNZKTsKPj4+ PiArCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhLmRpc3BsYXkuaXNfYXRv bWljKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKwo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYodGVzdF9uYW1lLCAiSERDUF8lc19Q SVBFLSVzX2F0b21pYyIsCj4+Pj4gKyBvdXRwdXQtPm5hbWUsCj4+Pj4gKyBrbXN0ZXN0X3BpcGVf bmFtZShwaXBlKSk7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X3N1YnRlc3QodGVz dF9uYW1lKQo+Pj4+ICsgdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oJmRhdGEuZGlzcGxheSwgcGlw ZSwKPj4+PiArIG91dHB1dCwgQ09NTUlUX0FUT01JQyk7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIC8qCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogVGVzdGluZyBh IG91dHB1dCB3aXRoIGEgcGlwZSBpcyBlbm91Z2ggZm9yCj4+Pj4gSERDUAo+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAqIHRlc3RpbmcuIE5vIFJPSSBpbiB0ZXN0aW5nIHRoZSBjb25uZWN0 b3Igd2l0aAo+Pj4+IG90aGVyCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogcGlwZXMu IFNvIEJyZWFrIHRoZSBsb29wIG9uIHBpcGUuCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICovCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKyAgICAgICAgICAg ICAgIH0KPj4+PiAgICAgICAgICAgfQo+Pj4+Cj4+Pj4gICAgICAgICAgIGlndF9maXh0dXJlCj4+ Pj4KPj4+Pgo+Pj4+Cj4+Pj4+PiAtUmFtCj4+Pj4+Pgo+Pj4+Pj4+PiArICAgIH0KPj4+Pj4+Pj4g Kwo+Pj4+Pj4+PiArICAgIGlndF9maXh0dXJlCj4+Pj4+Pj4+ICsgICAgICAgIGlndF9kaXNwbGF5 X2ZpbmkoJmRhdGEuZGlzcGxheSk7Cj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS90 ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCj4+Pj4+Pj4+IGluZGV4IDU5Y2Nk OWE2Li5iMTJjMzVjMCAxMDA2NDQKPj4+Pj4+Pj4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKPj4+ Pj4+Pj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPj4+Pj4+Pj4gQEAgLTE1Nyw2ICsxNTcsNyBA QCB0ZXN0X3Byb2dzID0gWwo+Pj4+Pj4+PiAgICAgICAgICAna21zX2Nodl9jdXJzb3JfZmFpbCcs Cj4+Pj4+Pj4+ICAgICAgICAgICdrbXNfY29sb3InLAo+Pj4+Pj4+PiAgICAgICAgICAna21zX2Nv bmN1cnJlbnQnLAo+Pj4+Pj4+PiArICAgICdrbXNfY29udGVudF9wcm90ZWN0aW9uJywKPj4+Pj4+ Pj4gICAgICAgICAgJ2ttc19jcnRjX2JhY2tncm91bmRfY29sb3InLAo+Pj4+Pj4+PiAgICAgICAg ICAna21zX2N1cnNvcl9jcmMnLAo+Pj4+Pj4+PiAgICAgICAgICAna21zX2N1cnNvcl9sZWdhY3kn LAo+Pj4+Pj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK