From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B2B4BA0559; Mon, 16 Mar 2020 06:12:05 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 77DD91BE51; Mon, 16 Mar 2020 06:12:05 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 064D42BF9 for ; Mon, 16 Mar 2020 06:12:03 +0100 (CET) IronPort-SDR: 8voGNBnrIucWfUu+FhTfCQCJW9TIO36sOYy+AHMAEsFhW7iQv8RZet01o1lResjqYsSff3fjhY W4TFDrDVFh+A== X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2020 22:12:02 -0700 IronPort-SDR: mFwd47nWg8PphbzS6/Jbi8CW1EBrMTPw/Mu4hgIKmjVZg2r9Gz5eCFsWZH/EGfQY/B1Xzj/GVY s7kaPpOEa28Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,559,1574150400"; d="log'?scan'208";a="445003969" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga006.fm.intel.com with ESMTP; 15 Mar 2020 22:12:02 -0700 Received: from shsmsx605.ccr.corp.intel.com (10.109.6.215) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 15 Mar 2020 22:12:02 -0700 Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by SHSMSX605.ccr.corp.intel.com (10.109.6.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 16 Mar 2020 13:12:00 +0800 Received: from shsmsx602.ccr.corp.intel.com ([10.109.6.142]) by SHSMSX602.ccr.corp.intel.com ([10.109.6.142]) with mapi id 15.01.1713.004; Mon, 16 Mar 2020 13:12:00 +0800 From: "Chen, BoX C" To: "Ma, LihongX" , "dts@dpdk.org" CC: "Ma, LihongX" Thread-Topic: [dts] [PATCH V1] framework/crb: fix issue of rm file Thread-Index: AQHV+1C8PltrK5imn0Clh+NgaCQcd6hKqvhQ Date: Mon, 16 Mar 2020 05:11:59 +0000 Message-ID: <3e18752c735a44779cc42e6917469f2b@intel.com> References: <1584308189-7809-1-git-send-email-lihongx.ma@intel.com> In-Reply-To: <1584308189-7809-1-git-send-email-lihongx.ma@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] Content-Type: multipart/mixed; boundary="_002_3e18752c735a44779cc42e6917469f2bintelcom_" MIME-Version: 1.0 Subject: Re: [dts] [PATCH V1] framework/crb: fix issue of rm file X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" --_002_3e18752c735a44779cc42e6917469f2bintelcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Tested-by: Chen, BoX C Regards, Chen Bo > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of lihong > Sent: March 16, 2020 5:36 > To: dts@dpdk.org > Cc: Ma, LihongX > Subject: [dts] [PATCH V1] framework/crb: fix issue of rm file >=20 > Signed-off-by: lihong > --- > framework/crb.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/framework/crb.py b/framework/crb.py index 538aa6c..cf0493f > 100644 > --- a/framework/crb.py > +++ b/framework/crb.py > @@ -530,7 +530,7 @@ class Crb(object): > # delete hugepage on mnt path > if getattr(self, 'hugepage_path', None): > for file_prefix in prefix_list: > - cmd =3D 'rm %s/%s*' % (self.hugepage_path, file_prefix) > + cmd =3D 'rm -rf %s/%s*' % (self.hugepage_path, > + file_prefix) > self.send_expect(cmd, '# ', 20, alt_session) >=20 > def kill_all(self, alt_session=3DTrue): > -- > 2.7.4 --_002_3e18752c735a44779cc42e6917469f2bintelcom_ Content-Type: application/octet-stream; name="TestUnitTestsLoopback.log" Content-Description: TestUnitTestsLoopback.log Content-Disposition: attachment; filename="TestUnitTestsLoopback.log"; size=41762; creation-date="Mon, 16 Mar 2020 05:09:45 GMT"; modification-date="Mon, 16 Mar 2020 05:09:45 GMT" Content-Transfer-Encoding: base64 MTYvMDMvMjAyMCAxMToyMzozNSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdHM6IApURVNU IFNVSVRFIDogVGVzdFVuaXRUZXN0c0xvb3BiYWNrCjE2LzAzLzIwMjAgMTE6MjM6MzUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZHRzOiBOSUMgOiAgICAgICAgZm9ydHZpbGxlXzI1ZwoxNi8w My8yMDIwIDExOjIzOjM1ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogCjE2LzAzLzIw MjAgMTE6MjM6MzUgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVyOiAKMTYvMDMvMjAyMCAx MToyMzozNSAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IGNhdCBhcHAvdGVzdC90ZXN0 X3BtZF9wZXJmLmMKMTYvMDMvMjAyMCAxMToyMzozNSAgICAgICAgICAgICAgZHV0LjEwLjIzOC41 NC4yMTY6IC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCiAqIENvcHly aWdodChjKSAyMDEwLTIwMTQgSW50ZWwgQ29ycG9yYXRpb24NCiAqLw0KDQoNCiNpbmNsdWRlIDxz dGRpby5oPg0KI2luY2x1ZGUgPGludHR5cGVzLmg+DQojaW5jbHVkZSA8c2lnbmFsLmg+DQojaW5j bHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8cnRlX2N5Y2xlcy5oPg0KI2luY2x1ZGUgPHJ0ZV9l dGhkZXYuaD4NCiNpbmNsdWRlIDxydGVfYnl0ZW9yZGVyLmg+DQojaW5jbHVkZSA8cnRlX2F0b21p Yy5oPg0KI2luY2x1ZGUgPHJ0ZV9tYWxsb2MuaD4NCiNpbmNsdWRlICJwYWNrZXRfYnVyc3RfZ2Vu ZXJhdG9yLmgiDQojaW5jbHVkZSAidGVzdC5oIg0KDQojZGVmaW5lIE5CX0VUSFBPUlRTX1VTRUQg ICAgICAgICAgICAgICAgKDEpDQojZGVmaW5lIE5CX1NPQ0tFVFMgICAgICAgICAgICAgICAgICAg ICAgKDIpDQojZGVmaW5lIE1FTVBPT0xfQ0FDSEVfU0laRSAyNTANCiNkZWZpbmUgTUFYX1BLVF9C VVJTVCAgICAgICAgICAgICAgICAgICAoMzIpDQojZGVmaW5lIFJURV9URVNUX1JYX0RFU0NfREVG QVVMVCAgICAgICAgKDEwMjQpDQojZGVmaW5lIFJURV9URVNUX1RYX0RFU0NfREVGQVVMVCAgICAg ICAgKDEwMjQpDQojZGVmaW5lIFJURV9QT1JUX0FMTCAgICAgICAgICAgICh+KHVpbnQxNl90KTB4 MCkNCg0KLyogaG93IGxvbmcgdGVzdCB3b3VsZCB0YWtlIGF0IGZ1bGwgbGluZSByYXRlICovDQoj ZGVmaW5lIFJURV9URVNUX0RVUkFUSU9OICAgICAgICAgICAgICAgICgyKQ0KDQovKg0KICogUlgg YW5kIFRYIFByZWZldGNoLCBIb3N0LCBhbmQgV3JpdGUtYmFjayB0aHJlc2hvbGQgdmFsdWVzIHNo b3VsZCBiZQ0KICogY2FyZWZ1bGx5IHNldCBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZS4gQ29uc3Vs dCB0aGUgbmV0d29yaw0KICogY29udHJvbGxlcidzIGRhdGFzaGVldCBhbmQgc3VwcG9ydGluZyBE UERLIGRvY3VtZW50YXRpb24gZm9yIGd1aWRhbmNlDQogKiBvbiBob3cgdGhlc2UgcGFyYW1ldGVy cyBzaG91bGQgYmUgc2V0Lg0KICovDQojZGVmaW5lIFJYX1BUSFJFU0ggOCAvKio8IERlZmF1bHQg dmFsdWVzIG9mIFJYIHByZWZldGNoIHRocmVzaG9sZCByZWcuICovDQojZGVmaW5lIFJYX0hUSFJF U0ggOCAvKio8IERlZmF1bHQgdmFsdWVzIG9mIFJYIGhvc3QgdGhyZXNob2xkIHJlZy4gKi8NCiNk ZWZpbmUgUlhfV1RIUkVTSCAwIC8qKjwgRGVmYXVsdCB2YWx1ZXMgb2YgUlggd3JpdGUtYmFjayB0 aHJlc2hvbGQgcmVnLiAqLw0KDQovKg0KICogVGhlc2UgZGVmYXVsdCB2YWx1ZXMgYXJlIG9wdGlt aXplZCBmb3IgdXNlIHdpdGggdGhlIEludGVsKFIpIDgyNTk5IDEwIEdiRQ0KICogQ29udHJvbGxl ciBhbmQgdGhlIERQREsgaXhnYmUgUE1ELiBDb25zaWRlciB1c2luZyBvdGhlciB2YWx1ZXMgZm9y IG90aGVyDQogKiBuZXR3b3JrIGNvbnRyb2xsZXJzIGFuZC9vciBuZXR3b3JrIGRyaXZlcnMuDQog Ki8NCiNkZWZpbmUgVFhfUFRIUkVTSCAzMiAvKio8IERlZmF1bHQgdmFsdWVzIG9mIFRYIHByZWZl dGNoIHRocmVzaG9sZCByZWcuICovDQojZGVmaW5lIFRYX0hUSFJFU0ggMCAgLyoqPCBEZWZhdWx0 IHZhbHVlcyBvZiBUWCBob3N0IHRocmVzaG9sZCByZWcuICovDQojZGVmaW5lIFRYX1dUSFJFU0gg MCAgLyoqPCBEZWZhdWx0IHZhbHVlcyBvZiBUWCB3cml0ZS1iYWNrIHRocmVzaG9sZCByZWcuICov DQoNCiNkZWZpbmUgTUFYX1RSQUZGSUNfQlVSU1QgICAgICAgICAgICAgIDIwNDgNCg0KI2RlZmlu ZSBOQl9NQlVGIFJURV9NQVgoCQkJCQkJXA0KCQkodW5zaWduZWQpKG5iX3BvcnRzKm5iX3J4X3F1 ZXVlKm5iX3J4ZCArCQlcDQoJCQkgICBuYl9wb3J0cypuYl9sY29yZXMqTUFYX1BLVF9CVVJTVCAr CQlcDQoJCQkgICBuYl9wb3J0cypuYl90eF9xdWV1ZSpuYl90eGQgKwkJXA0KCQkJICAgbmJfbGNv cmVzKk1FTVBPT0xfQ0FDSEVfU0laRSArCQlcDQoJCQkgICBuYl9wb3J0cypNQVhfVFJBRkZJQ19C VVJTVCksCQkJXA0KCQkJKHVuc2lnbmVkKTgxOTIpDQoNCg0Kc3RhdGljIHN0cnVjdCBydGVfbWVt cG9vbCAqbWJ1ZnBvb2xbTkJfU09DS0VUU107DQovKiBldGhlcm5ldCBhZGRyZXNzZXMgb2YgcG9y dHMgKi8NCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgcG9ydHNfZXRoX2FkZHJbUlRFX01B WF9FVEhQT1JUU107DQoNCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsN Cgkucnhtb2RlID0gew0KCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLA0KCQkubWF4X3J4X3Br dF9sZW4gPSBSVEVfRVRIRVJfTUFYX0xFTiwNCgkJLnNwbGl0X2hkcl9zaXplID0gMCwNCgl9LA0K CS50eG1vZGUgPSB7DQoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsDQoJfSwNCgkubHBia19t b2RlID0gMSwgIC8qIGVuYWJsZSBsb29wYmFjayAqLw0KfTsNCg0Kc3RhdGljIHN0cnVjdCBydGVf ZXRoX3J4Y29uZiByeF9jb25mID0gew0KCS5yeF90aHJlc2ggPSB7DQoJCS5wdGhyZXNoID0gUlhf UFRIUkVTSCwNCgkJLmh0aHJlc2ggPSBSWF9IVEhSRVNILA0KCQkud3RocmVzaCA9IFJYX1dUSFJF U0gsDQoJfSwNCgkucnhfZnJlZV90aHJlc2ggPSAzMiwNCn07DQoNCnN0YXRpYyBzdHJ1Y3QgcnRl X2V0aF90eGNvbmYgdHhfY29uZiA9IHsNCgkudHhfdGhyZXNoID0gew0KCQkucHRocmVzaCA9IFRY X1BUSFJFU0gsDQoJCS5odGhyZXNoID0gVFhfSFRIUkVTSCwNCgkJLnd0aHJlc2ggPSBUWF9XVEhS RVNILA0KCX0sDQoJLnR4X2ZyZWVfdGhyZXNoID0gMzIsIC8qIFVzZSBQTUQgZGVmYXVsdCB2YWx1 ZXMgKi8NCgkudHhfcnNfdGhyZXNoID0gMzIsIC8qIFVzZSBQTUQgZGVmYXVsdCB2YWx1ZXMgKi8N Cn07DQoNCmVudW0gew0KCUxDT1JFX0lOVkFMSUQgPSAwLA0KCUxDT1JFX0FWQUlMLA0KCUxDT1JF X1VTRUQsDQp9Ow0KDQpzdHJ1Y3QgbGNvcmVfY29uZiB7DQoJdWludDhfdCBzdGF0dXM7DQoJdWlu dDhfdCBzb2NrZXRpZDsNCgl1aW50MTZfdCBuYl9wb3J0czsNCgl1aW50MTZfdCBwb3J0bGlzdFtS VEVfTUFYX0VUSFBPUlRTXTsNCn0gX19ydGVfY2FjaGVfYWxpZ25lZDsNCg0Kc3RydWN0IGxjb3Jl X2NvbmYgbGNvcmVfY29uZltSVEVfTUFYX0xDT1JFXTsNCg0Kc3RhdGljIHVpbnQ2NF90IGxpbmtf bWJwczsNCg0KZW51bSB7DQoJU0NfQ09OVElOVU9VUyA9IDAsDQoJU0NfQlVSU1RfUE9MTF9GSVJT VCwNCglTQ19CVVJTVF9YTUlUX0ZJUlNULA0KfTsNCg0Kc3RhdGljIHVpbnQzMl90IHNjX2ZsYWc7 DQoNCi8qIENoZWNrIHRoZSBsaW5rIHN0YXR1cyBvZiBhbGwgcG9ydHMgaW4gdXAgdG8gM3MsIGFu ZCBwcmludCB0aGVtIGZpbmFsbHkgKi8NCnN0YXRpYyB2b2lkDQpjaGVja19hbGxfcG9ydHNfbGlu a19zdGF0dXModWludDE2X3QgcG9ydF9udW0sIHVpbnQzMl90IHBvcnRfbWFzaykNCnsNCiNkZWZp bmUgQ0hFQ0tfSU5URVJWQUwgMTAwIC8qIDEwMG1zICovDQojZGVmaW5lIE1BWF9DSEVDS19USU1F IDMwIC8qIDNzICgzMCAqIDEwMG1zKSBpbiB0b3RhbCAqLw0KCXVpbnQxNl90IHBvcnRpZDsNCgl1 aW50OF90IGNvdW50LCBhbGxfcG9ydHNfdXAsIHByaW50X2ZsYWcgPSAwOw0KCXN0cnVjdCBydGVf ZXRoX2xpbmsgbGluazsNCglpbnQgcmV0Ow0KDQoJcHJpbnRmKCJDaGVja2luZyBsaW5rIHN0YXR1 c2VzLi4uXG4iKTsNCglmZmx1c2goc3Rkb3V0KTsNCglmb3IgKGNvdW50ID0gMDsgY291bnQgPD0g TUFYX0NIRUNLX1RJTUU7IGNvdW50KyspIHsNCgkJYWxsX3BvcnRzX3VwID0gMTsNCgkJZm9yIChw b3J0aWQgPSAwOyBwb3J0aWQgPCBwb3J0X251bTsgcG9ydGlkKyspIHsNCgkJCWlmICgocG9ydF9t YXNrICYgKDEgPDwgcG9ydGlkKSkgPT0gMCkNCgkJCQljb250aW51ZTsNCgkJCW1lbXNldCgmbGlu aywgMCwgc2l6ZW9mKGxpbmspKTsNCgkJCXJldCA9IHJ0ZV9ldGhfbGlua19nZXRfbm93YWl0KHBv cnRpZCwgJmxpbmspOw0KCQkJaWYgKHJldCA8IDApIHsNCgkJCQlhbGxfcG9ydHNfdXAgPSAwOw0K CQkJCWlmIChwcmludF9mbGFnID09IDEpDQoJCQkJCXByaW50ZigiUG9ydCAldSBsaW5rIGdldCBm YWlsZWQ6ICVzXG4iLA0KCQkJCQkJcG9ydGlkLCBydGVfc3RyZXJyb3IoLXJldCkpOw0KCQkJCWNv bnRpbnVlOw0KCQkJfQ0KDQoJCQkvKiBwcmludCBsaW5rIHN0YXR1cyBpZiBmbGFnIHNldCAqLw0K CQkJaWYgKHByaW50X2ZsYWcgPT0gMSkgew0KCQkJCWlmIChsaW5rLmxpbmtfc3RhdHVzKSB7DQoJ CQkJCXByaW50ZigNCgkJCQkJIlBvcnQlZCBMaW5rIFVwLiBTcGVlZCAldSBNYnBzIC0gJXNcbiIs DQoJCQkJCQlwb3J0aWQsIGxpbmsubGlua19zcGVlZCwNCgkJCQkobGluay5saW5rX2R1cGxleCA9 PSBFVEhfTElOS19GVUxMX0RVUExFWCkgPw0KCQkJCQkoImZ1bGwtZHVwbGV4IikgOiAoImhhbGYt ZHVwbGV4XG4iKSk7DQoJCQkJCWlmIChsaW5rX21icHMgPT0gMCkNCgkJCQkJCWxpbmtfbWJwcyA9 IGxpbmsubGlua19zcGVlZDsNCgkJCQl9IGVsc2UNCgkJCQkJcHJpbnRmKCJQb3J0ICVkIExpbmsg RG93blxuIiwgcG9ydGlkKTsNCgkJCQljb250aW51ZTsNCgkJCX0NCgkJCS8qIGNsZWFyIGFsbF9w b3J0c191cCBmbGFnIGlmIGFueSBsaW5rIGRvd24gKi8NCgkJCWlmIChsaW5rLmxpbmtfc3RhdHVz ID09IEVUSF9MSU5LX0RPV04pIHsNCgkJCQlhbGxfcG9ydHNfdXAgPSAwOw0KCQkJCWJyZWFrOw0K CQkJfQ0KCQl9DQoJCS8qIGFmdGVyIGZpbmFsbHkgcHJpbnRpbmcgYWxsIGxpbmsgc3RhdHVzLCBn ZXQgb3V0ICovDQoJCWlmIChwcmludF9mbGFnID09IDEpDQoJCQlicmVhazsNCg0KCQlpZiAoYWxs X3BvcnRzX3VwID09IDApIHsNCgkJCWZmbHVzaChzdGRvdXQpOw0KCQkJcnRlX2RlbGF5X21zKENI RUNLX0lOVEVSVkFMKTsNCgkJfQ0KDQoJCS8qIHNldCB0aGUgcHJpbnRfZmxhZyBpZiBhbGwgcG9y dHMgdXAgb3IgdGltZW91dCAqLw0KCQlpZiAoYWxsX3BvcnRzX3VwID09IDEgfHwgY291bnQgPT0g KE1BWF9DSEVDS19USU1FIC0gMSkpDQoJCQlwcmludF9mbGFnID0gMTsNCgl9DQp9DQoNCnN0YXRp YyB2b2lkDQpwcmludF9ldGhhZGRyKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBydGVf ZXRoZXJfYWRkciAqZXRoX2FkZHIpDQp7DQoJY2hhciBidWZbUlRFX0VUSEVSX0FERFJfRk1UX1NJ WkVdOw0KCXJ0ZV9ldGhlcl9mb3JtYXRfYWRkcihidWYsIFJURV9FVEhFUl9BRERSX0ZNVF9TSVpF LCBldGhfYWRkcik7DQoJcHJpbnRmKCIlcyVzIiwgbmFtZSwgYnVmKTsNCn0NCg0Kc3RhdGljIGlu dA0KaW5pdF90cmFmZmljKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsDQoJICAgICBzdHJ1Y3QgcnRl X21idWYgKipwa3RzX2J1cnN0LCB1aW50MzJfdCBidXJzdF9zaXplKQ0Kew0KCXN0cnVjdCBydGVf ZXRoZXJfaGRyIHBrdF9ldGhfaGRyOw0KCXN0cnVjdCBydGVfaXB2NF9oZHIgcGt0X2lwdjRfaGRy Ow0KCXN0cnVjdCBydGVfdWRwX2hkciBwa3RfdWRwX2hkcjsNCgl1aW50MzJfdCBwa3RsZW47DQoJ c3RhdGljIHVpbnQ4X3Qgc3JjX21hY1tdID0geyAweDAwLCAweEZGLCAweEFBLCAweEZGLCAweEFB LCAweEZGIH07DQoJc3RhdGljIHVpbnQ4X3QgZHN0X21hY1tdID0geyAweDAwLCAweEFBLCAweEZG LCAweEFBLCAweEZGLCAweEFBIH07DQoNCg0KCWluaXRpYWxpemVfZXRoX2hlYWRlcigmcGt0X2V0 aF9oZHIsDQoJCShzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKilzcmNfbWFjLA0KCQkoc3RydWN0IHJ0 ZV9ldGhlcl9hZGRyICopZHN0X21hYywgUlRFX0VUSEVSX1RZUEVfSVBWNCwgMCwgMCk7DQoNCglw a3RsZW4gPSBpbml0aWFsaXplX2lwdjRfaGVhZGVyKCZwa3RfaXB2NF9oZHIsDQoJCQkJCUlQVjRf QUREUigxMCwgMCwgMCwgMSksDQoJCQkJCUlQVjRfQUREUigxMCwgMCwgMCwgMiksIDI2KTsNCglw cmludGYoIklQdjQgcGt0bGVuICV1XG4iLCBwa3RsZW4pOw0KDQoJcGt0bGVuID0gaW5pdGlhbGl6 ZV91ZHBfaGVhZGVyKCZwa3RfdWRwX2hkciwgMCwgMCwgMTgpOw0KDQoJcHJpbnRmKCJVRFAgcGt0 bGVuICV1XG4iLCBwa3RsZW4pOw0KDQoJcmV0dXJuIGdlbmVyYXRlX3BhY2tldF9idXJzdChtcCwg cGt0c19idXJzdCwgJnBrdF9ldGhfaGRyLA0KCQkJCSAgICAgMCwgJnBrdF9pcHY0X2hkciwgMSwN CgkJCQkgICAgICZwa3RfdWRwX2hkciwgYnVyc3Rfc2l6ZSwNCgkJCQkgICAgIFBBQ0tFVF9CVVJT VF9HRU5fUEtUX0xFTiwgMSk7DQp9DQoNCnN0YXRpYyBpbnQNCmluaXRfbGNvcmVzKHZvaWQpDQp7 DQoJdW5zaWduZWQgbGNvcmVfaWQ7DQoNCglmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBS VEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKSB7DQoJCWxjb3JlX2NvbmZbbGNvcmVfaWRdLnNvY2tl dGlkID0NCgkJCXJ0ZV9sY29yZV90b19zb2NrZXRfaWQobGNvcmVfaWQpOw0KCQlpZiAocnRlX2xj b3JlX2lzX2VuYWJsZWQobGNvcmVfaWQpID09IDApIHsNCgkJCWxjb3JlX2NvbmZbbGNvcmVfaWRd LnN0YXR1cyA9IExDT1JFX0lOVkFMSUQ7DQoJCQljb250aW51ZTsNCgkJfSBlbHNlDQoJCQlsY29y ZV9jb25mW2xjb3JlX2lkXS5zdGF0dXMgPSBMQ09SRV9BVkFJTDsNCgl9DQoJcmV0dXJuIDA7DQp9 DQoNCnN0YXRpYyBpbnQNCmluaXRfbWJ1ZnBvb2wodW5zaWduZWQgbmJfbWJ1ZikNCnsNCglpbnQg c29ja2V0aWQ7DQoJdW5zaWduZWQgbGNvcmVfaWQ7DQoJY2hhciBzWzY0XTsNCg0KCWZvciAobGNv cmVfaWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspIHsNCgkJaWYg KHJ0ZV9sY29yZV9pc19lbmFibGVkKGxjb3JlX2lkKSA9PSAwKQ0KCQkJY29udGludWU7DQoNCgkJ c29ja2V0aWQgPSBydGVfbGNvcmVfdG9fc29ja2V0X2lkKGxjb3JlX2lkKTsNCgkJaWYgKHNvY2tl dGlkID49IE5CX1NPQ0tFVFMpIHsNCgkJCXJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwNCgkJCQkiU29j a2V0ICVkIG9mIGxjb3JlICV1IGlzIG91dCBvZiByYW5nZSAlZFxuIiwNCgkJCQlzb2NrZXRpZCwg bGNvcmVfaWQsIE5CX1NPQ0tFVFMpOw0KCQl9DQoJCWlmIChtYnVmcG9vbFtzb2NrZXRpZF0gPT0g TlVMTCkgew0KCQkJc25wcmludGYocywgc2l6ZW9mKHMpLCAibWJ1Zl9wb29sXyVkIiwgc29ja2V0 aWQpOw0KCQkJbWJ1ZnBvb2xbc29ja2V0aWRdID0NCgkJCQlydGVfcGt0bWJ1Zl9wb29sX2NyZWF0 ZShzLCBuYl9tYnVmLA0KCQkJCQlNRU1QT09MX0NBQ0hFX1NJWkUsIDAsDQoJCQkJCVJURV9NQlVG X0RFRkFVTFRfQlVGX1NJWkUsIHNvY2tldGlkKTsNCgkJCWlmIChtYnVmcG9vbFtzb2NrZXRpZF0g PT0gTlVMTCkNCgkJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsDQoJCQkJCSJDYW5ub3QgaW5pdCBt YnVmIHBvb2wgb24gc29ja2V0ICVkXG4iLA0KCQkJCQlzb2NrZXRpZCk7DQoJCQllbHNlDQoJCQkJ cHJpbnRmKCJBbGxvY2F0ZWQgbWJ1ZiBwb29sIG9uIHNvY2tldCAlZFxuIiwNCgkJCQkJc29ja2V0 aWQpOw0KCQl9DQoJfQ0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgdWludDE2X3QNCmFsbG9jX2xj b3JlKHVpbnQxNl90IHNvY2tldGlkKQ0Kew0KCXVuc2lnbmVkIGxjb3JlX2lkOw0KDQoJZm9yIChs Y29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0KCQlp ZiAoTENPUkVfQVZBSUwgIT0gbGNvcmVfY29uZltsY29yZV9pZF0uc3RhdHVzIHx8DQoJCSAgICBs Y29yZV9jb25mW2xjb3JlX2lkXS5zb2NrZXRpZCAhPSBzb2NrZXRpZCB8fA0KCQkgICAgbGNvcmVf aWQgPT0gcnRlX2dldF9tYXN0ZXJfbGNvcmUoKSkNCgkJCWNvbnRpbnVlOw0KCQlsY29yZV9jb25m W2xjb3JlX2lkXS5zdGF0dXMgPSBMQ09SRV9VU0VEOw0KCQlsY29yZV9jb25mW2xjb3JlX2lkXS5u Yl9wb3J0cyA9IDA7DQoJCXJldHVybiBsY29yZV9pZDsNCgl9DQoNCglyZXR1cm4gKHVpbnQxNl90 KS0xOw0KfQ0KDQpzdGF0aWMgdm9sYXRpbGUgdWludDY0X3Qgc3RvcDsNCnN0YXRpYyB1aW50NjRf dCBjb3VudDsNCnN0YXRpYyB1aW50NjRfdCBkcm9wOw0Kc3RhdGljIHVpbnQ2NF90IGlkbGU7DQoN CnN0YXRpYyB2b2lkDQpyZXNldF9jb3VudCh2b2lkKQ0Kew0KCWNvdW50ID0gMDsNCglkcm9wID0g MDsNCglpZGxlID0gMDsNCn0NCg0Kc3RhdGljIHZvaWQNCnN0YXRzX2Rpc3BsYXkodWludDE2X3Qg cG9ydF9pZCkNCnsNCglzdHJ1Y3QgcnRlX2V0aF9zdGF0cyBzdGF0czsNCglydGVfZXRoX3N0YXRz X2dldChwb3J0X2lkLCAmc3RhdHMpOw0KDQoJcHJpbnRmKCIgIFJYLXBhY2tldHM6ICUtMTAiUFJJ dTY0IiBSWC1taXNzZWQ6ICUtMTAiUFJJdTY0IiBSWC1ieXRlczogICINCgkgICAgICAgIiUtIlBS SXU2NCJcbiIsDQoJICAgICAgIHN0YXRzLmlwYWNrZXRzLCBzdGF0cy5pbWlzc2VkLCBzdGF0cy5p Ynl0ZXMpOw0KCXByaW50ZigiICBSWC1lcnJvcnM6ICUtMTAiUFJJdTY0IiBSWC1ub21idWY6ICAl LTEwIlBSSXU2NCJcbiIsDQoJICAgICAgIHN0YXRzLmllcnJvcnMsIHN0YXRzLnJ4X25vbWJ1Zik7 DQoJcHJpbnRmKCIgIFRYLXBhY2tldHM6ICUtMTAiUFJJdTY0IiBUWC1lcnJvcnM6ICUtMTAiUFJJ dTY0IiBUWC1ieXRlczogICINCgkgICAgICAgIiUtIlBSSXU2NCJcbiIsDQoJICAgICAgIHN0YXRz Lm9wYWNrZXRzLCBzdGF0cy5vZXJyb3JzLCBzdGF0cy5vYnl0ZXMpOw0KfQ0KDQpzdGF0aWMgdm9p ZA0Kc2lnbmFsX2hhbmRsZXIoaW50IHNpZ251bSkNCnsNCgkvKiAgVVNSMSBzaWduYWwsIHN0b3Ag dGVzdGluZyAqLw0KCWlmIChzaWdudW0gPT0gU0lHVVNSMSkgew0KCQlwcmludGYoIkZvcmNlIFN0 b3AhXG4iKTsNCgkJc3RvcCA9IDE7DQoJfQ0KDQoJLyogIFVTUjIgc2lnbmFsLCBwcmludCBzdGF0 cyAqLw0KCWlmIChzaWdudW0gPT0gU0lHVVNSMikNCgkJc3RhdHNfZGlzcGxheSgwKTsNCn0NCg0K c3RydWN0IHJ0ZV9tYnVmICoqdHhfYnVyc3Q7DQoNCnVpbnQ2NF90ICgqZG9fbWVhc3VyZSkoc3Ry dWN0IGxjb3JlX2NvbmYgKmNvbmYsDQoJCSAgICAgICBzdHJ1Y3QgcnRlX21idWYgKnBrdHNfYnVy c3RbXSwNCgkJICAgICAgIHVpbnQ2NF90IHRvdGFsX3BrdHMpOw0KDQpzdGF0aWMgdWludDY0X3QN Cm1lYXN1cmVfcnh0eChzdHJ1Y3QgbGNvcmVfY29uZiAqY29uZiwNCgkgICAgIHN0cnVjdCBydGVf bWJ1ZiAqcGt0c19idXJzdFtdLA0KCSAgICAgdWludDY0X3QgdG90YWxfcGt0cykNCnsNCgl1bnNp Z25lZCBpLCBwb3J0aWQsIG5iX3J4LCBuYl90eDsNCgl1aW50NjRfdCBwcmV2X3RzYywgY3VyX3Rz YzsNCg0KCXByZXZfdHNjID0gcnRlX3JkdHNjKCk7DQoNCgl3aGlsZSAobGlrZWx5KCFzdG9wKSkg ew0KCQlmb3IgKGkgPSAwOyBpIDwgY29uZi0+bmJfcG9ydHM7IGkrKykgew0KCQkJcG9ydGlkID0g Y29uZi0+cG9ydGxpc3RbaV07DQoJCQluYl9yeCA9IHJ0ZV9ldGhfcnhfYnVyc3QocG9ydGlkLCAw LA0KCQkJCQkJIHBrdHNfYnVyc3QsIE1BWF9QS1RfQlVSU1QpOw0KCQkJaWYgKHVubGlrZWx5KG5i X3J4ID09IDApKSB7DQoJCQkJaWRsZSsrOw0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQljb3Vu dCArPSBuYl9yeDsNCgkJCW5iX3R4ID0gcnRlX2V0aF90eF9idXJzdChwb3J0aWQsIDAsIHBrdHNf YnVyc3QsIG5iX3J4KTsNCgkJCWlmICh1bmxpa2VseShuYl90eCA8IG5iX3J4KSkgew0KCQkJCWRy b3AgKz0gKG5iX3J4IC0gbmJfdHgpOw0KCQkJCWRvIHsNCgkJCQkJcnRlX3BrdG1idWZfZnJlZShw a3RzX2J1cnN0W25iX3R4XSk7DQoJCQkJfSB3aGlsZSAoKytuYl90eCA8IG5iX3J4KTsNCgkJCX0N CgkJfQ0KCQlpZiAodW5saWtlbHkoY291bnQgPj0gdG90YWxfcGt0cykpDQoJCQlicmVhazsNCgl9 DQoNCgljdXJfdHNjID0gcnRlX3JkdHNjKCk7DQoNCglyZXR1cm4gY3VyX3RzYyAtIHByZXZfdHNj Ow0KfQ0KDQpzdGF0aWMgdWludDY0X3QNCm1lYXN1cmVfcnhvbmx5KHN0cnVjdCBsY29yZV9jb25m ICpjb25mLA0KCSAgICAgICBzdHJ1Y3QgcnRlX21idWYgKnBrdHNfYnVyc3RbXSwNCgkgICAgICAg dWludDY0X3QgdG90YWxfcGt0cykNCnsNCgl1bnNpZ25lZCBpLCBwb3J0aWQsIG5iX3J4LCBuYl90 eDsNCgl1aW50NjRfdCBkaWZmX3RzYywgY3VyX3RzYzsNCg0KCWRpZmZfdHNjID0gMDsNCgl3aGls ZSAobGlrZWx5KCFzdG9wKSkgew0KCQlmb3IgKGkgPSAwOyBpIDwgY29uZi0+bmJfcG9ydHM7IGkr Kykgew0KCQkJcG9ydGlkID0gY29uZi0+cG9ydGxpc3RbaV07DQoNCgkJCWN1cl90c2MgPSBydGVf cmR0c2MoKTsNCgkJCW5iX3J4ID0gcnRlX2V0aF9yeF9idXJzdChwb3J0aWQsIDAsDQoJCQkJCQkg cGt0c19idXJzdCwgTUFYX1BLVF9CVVJTVCk7DQoJCQlpZiAodW5saWtlbHkobmJfcnggPT0gMCkp IHsNCgkJCQlpZGxlKys7DQoJCQkJY29udGludWU7DQoJCQl9DQoJCQlkaWZmX3RzYyArPSBydGVf cmR0c2MoKSAtIGN1cl90c2M7DQoNCgkJCWNvdW50ICs9IG5iX3J4Ow0KCQkJbmJfdHggPSBydGVf ZXRoX3R4X2J1cnN0KHBvcnRpZCwgMCwgcGt0c19idXJzdCwgbmJfcngpOw0KCQkJaWYgKHVubGlr ZWx5KG5iX3R4IDwgbmJfcngpKSB7DQoJCQkJZHJvcCArPSAobmJfcnggLSBuYl90eCk7DQoJCQkJ ZG8gew0KCQkJCQlydGVfcGt0bWJ1Zl9mcmVlKHBrdHNfYnVyc3RbbmJfdHhdKTsNCgkJCQl9IHdo aWxlICgrK25iX3R4IDwgbmJfcngpOw0KCQkJfQ0KCQl9DQoJCWlmICh1bmxpa2VseShjb3VudCA+ PSB0b3RhbF9wa3RzKSkNCgkJCWJyZWFrOw0KCX0NCg0KCXJldHVybiBkaWZmX3RzYzsNCn0NCg0K c3RhdGljIHVpbnQ2NF90DQptZWFzdXJlX3R4b25seShzdHJ1Y3QgbGNvcmVfY29uZiAqY29uZiwN CgkgICAgICAgc3RydWN0IHJ0ZV9tYnVmICpwa3RzX2J1cnN0W10sDQoJICAgICAgIHVpbnQ2NF90 IHRvdGFsX3BrdHMpDQp7DQoJdW5zaWduZWQgaSwgcG9ydGlkLCBuYl9yeCwgbmJfdHg7DQoJdWlu dDY0X3QgZGlmZl90c2MsIGN1cl90c2M7DQoNCglwcmludGYoImRvIHR4IG1lYXN1cmVcbiIpOw0K CWRpZmZfdHNjID0gMDsNCgl3aGlsZSAobGlrZWx5KCFzdG9wKSkgew0KCQlmb3IgKGkgPSAwOyBp IDwgY29uZi0+bmJfcG9ydHM7IGkrKykgew0KCQkJcG9ydGlkID0gY29uZi0+cG9ydGxpc3RbaV07 DQoJCQluYl9yeCA9IHJ0ZV9ldGhfcnhfYnVyc3QocG9ydGlkLCAwLA0KCQkJCQkJIHBrdHNfYnVy c3QsIE1BWF9QS1RfQlVSU1QpOw0KCQkJaWYgKHVubGlrZWx5KG5iX3J4ID09IDApKSB7DQoJCQkJ aWRsZSsrOw0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQljb3VudCArPSBuYl9yeDsNCg0KCQkJ Y3VyX3RzYyA9IHJ0ZV9yZHRzYygpOw0KCQkJbmJfdHggPSBydGVfZXRoX3R4X2J1cnN0KHBvcnRp ZCwgMCwgcGt0c19idXJzdCwgbmJfcngpOw0KCQkJaWYgKHVubGlrZWx5KG5iX3R4IDwgbmJfcngp KSB7DQoJCQkJZHJvcCArPSAobmJfcnggLSBuYl90eCk7DQoJCQkJZG8gew0KCQkJCQlydGVfcGt0 bWJ1Zl9mcmVlKHBrdHNfYnVyc3RbbmJfdHhdKTsNCgkJCQl9IHdoaWxlICgrK25iX3R4IDwgbmJf cngpOw0KCQkJfQ0KCQkJZGlmZl90c2MgKz0gcnRlX3JkdHNjKCkgLSBjdXJfdHNjOw0KCQl9DQoJ CWlmICh1bmxpa2VseShjb3VudCA+PSB0b3RhbF9wa3RzKSkNCgkJCWJyZWFrOw0KCX0NCg0KCXJl dHVybiBkaWZmX3RzYzsNCn0NCg0KLyogbWFpbiBwcm9jZXNzaW5nIGxvb3AgKi8NCnN0YXRpYyBp bnQNCm1haW5fbG9vcChfX3J0ZV91bnVzZWQgdm9pZCAqYXJncykNCnsNCiNkZWZpbmUgUEFDS0VU X1NJWkUgNjQNCiNkZWZpbmUgRlJBTUVfR0FQIDEyDQojZGVmaW5lIE1BQ19QUkVBTUJMRSA4DQoJ c3RydWN0IHJ0ZV9tYnVmICpwa3RzX2J1cnN0W01BWF9QS1RfQlVSU1RdOw0KCXVuc2lnbmVkIGxj b3JlX2lkOw0KCXVuc2lnbmVkIGksIHBvcnRpZCwgbmJfcnggPSAwLCBuYl90eCA9IDA7DQoJc3Ry dWN0IGxjb3JlX2NvbmYgKmNvbmY7DQoJaW50IHBrdF9wZXJfcG9ydDsNCgl1aW50NjRfdCBkaWZm X3RzYzsNCgl1aW50NjRfdCBwYWNrZXRzX3Blcl9zZWNvbmQsIHRvdGFsX3BhY2tldHM7DQoNCgls Y29yZV9pZCA9IHJ0ZV9sY29yZV9pZCgpOw0KCWNvbmYgPSAmbGNvcmVfY29uZltsY29yZV9pZF07 DQoJaWYgKGNvbmYtPnN0YXR1cyAhPSBMQ09SRV9VU0VEKQ0KCQlyZXR1cm4gMDsNCg0KCXBrdF9w ZXJfcG9ydCA9IE1BWF9UUkFGRklDX0JVUlNUOw0KDQoJaW50IGlkeCA9IDA7DQoJZm9yIChpID0g MDsgaSA8IGNvbmYtPm5iX3BvcnRzOyBpKyspIHsNCgkJaW50IG51bSA9IHBrdF9wZXJfcG9ydDsN CgkJcG9ydGlkID0gY29uZi0+cG9ydGxpc3RbaV07DQoJCXByaW50ZigiaW5qZWN0ICVkIHBhY2tl dCB0byBwb3J0ICVkXG4iLCBudW0sIHBvcnRpZCk7DQoJCXdoaWxlIChudW0pIHsNCgkJCW5iX3R4 ID0gUlRFX01JTihNQVhfUEtUX0JVUlNULCBudW0pOw0KCQkJbmJfdHggPSBydGVfZXRoX3R4X2J1 cnN0KHBvcnRpZCwgMCwNCgkJCQkJCSZ0eF9idXJzdFtpZHhdLCBuYl90eCk7DQoJCQludW0gLT0g bmJfdHg7DQoJCQlpZHggKz0gbmJfdHg7DQoJCX0NCgl9DQoJcHJpbnRmKCJUb3RhbCBwYWNrZXRz IGluamVjdCB0byBwcmltZSBwb3J0cyA9ICV1XG4iLCBpZHgpOw0KDQoJcGFja2V0c19wZXJfc2Vj b25kID0gKGxpbmtfbWJwcyAqIDEwMDAgKiAxMDAwKSAvDQoJCSgoUEFDS0VUX1NJWkUgKyBGUkFN RV9HQVAgKyBNQUNfUFJFQU1CTEUpICogQ0hBUl9CSVQpOw0KCXByaW50ZigiRWFjaCBwb3J0IHdp bGwgZG8gJSJQUkl1NjQiIHBhY2tldHMgcGVyIHNlY29uZFxuIiwNCgkgICAgICAgcGFja2V0c19w ZXJfc2Vjb25kKTsNCg0KCXRvdGFsX3BhY2tldHMgPSBSVEVfVEVTVF9EVVJBVElPTiAqIGNvbmYt Pm5iX3BvcnRzICogcGFja2V0c19wZXJfc2Vjb25kOw0KCXByaW50ZigiVGVzdCB3aWxsIHN0b3Ag YWZ0ZXIgYXQgbGVhc3QgJSJQUkl1NjQiIHBhY2tldHMgcmVjZWl2ZWRcbiIsDQoJCSsgdG90YWxf cGFja2V0cyk7DQoNCglkaWZmX3RzYyA9IGRvX21lYXN1cmUoY29uZiwgcGt0c19idXJzdCwgdG90 YWxfcGFja2V0cyk7DQoNCglmb3IgKGkgPSAwOyBpIDwgY29uZi0+bmJfcG9ydHM7IGkrKykgew0K CQlwb3J0aWQgPSBjb25mLT5wb3J0bGlzdFtpXTsNCgkJaW50IG5iX2ZyZWUgPSAwOw0KCQl1aW50 NjRfdCB0aW1lb3V0ID0gMTAwMDA7DQoJCWRvIHsgLyogZHJ5IG91dCAqLw0KCQkJbmJfcnggPSBy dGVfZXRoX3J4X2J1cnN0KHBvcnRpZCwgMCwNCgkJCQkJCSBwa3RzX2J1cnN0LCBNQVhfUEtUX0JV UlNUKTsNCgkJCW5iX3R4ID0gMDsNCgkJCXdoaWxlIChuYl90eCA8IG5iX3J4KQ0KCQkJCXJ0ZV9w a3RtYnVmX2ZyZWUocGt0c19idXJzdFtuYl90eCsrXSk7DQoJCQluYl9mcmVlICs9IG5iX3J4Ow0K DQoJCQlpZiAodW5saWtlbHkobmJfcnggPT0gMCkpDQoJCQkJdGltZW91dC0tOw0KCQl9IHdoaWxl IChuYl9mcmVlICE9IHBrdF9wZXJfcG9ydCAmJiB0aW1lb3V0ICE9IDApOw0KCQlwcmludGYoImZy ZWUgJWQgKGV4cGVjdGVkICVkKSBtYnVmIGxlZnQgaW4gcG9ydCAldVxuIiwgbmJfZnJlZSwNCgkJ ICAgICAgIHBrdF9wZXJfcG9ydCwgcG9ydGlkKTsNCgl9DQoNCglpZiAoY291bnQgPT0gMCkNCgkJ cmV0dXJuIC0xOw0KDQoJcHJpbnRmKCIlIlBSSXU2NCIgcGFja2V0LCAlIlBSSXU2NCIgZHJvcCwg JSJQUkl1NjQiIGlkbGVcbiIsDQoJICAgICAgIGNvdW50LCBkcm9wLCBpZGxlKTsNCglwcmludGYo IlJlc3VsdDogJSJQUkl1NjQiIGN5Y2xlcyBwZXIgcGFja2V0XG4iLCBkaWZmX3RzYyAvIGNvdW50 KTsNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgcnRlX2F0b21pYzY0X3Qgc3RhcnQ7DQoNCnN0 YXRpYyBpbmxpbmUgaW50DQpwb2xsX2J1cnN0KHZvaWQgKmFyZ3MpDQp7DQojZGVmaW5lIE1BWF9J RExFICAgICAgICAgICAoMTAwMDApDQoJdW5zaWduZWQgbGNvcmVfaWQ7DQoJc3RydWN0IHJ0ZV9t YnVmICoqcGt0c19idXJzdDsNCgl1aW50NjRfdCBkaWZmX3RzYywgY3VyX3RzYzsNCgl1aW50MTZf dCBuZXh0W1JURV9NQVhfRVRIUE9SVFNdOw0KCXN0cnVjdCBsY29yZV9jb25mICpjb25mOw0KCXVp bnQzMl90IHBrdF9wZXJfcG9ydCA9ICooKHVpbnQzMl90ICopYXJncyk7DQoJdW5zaWduZWQgaSwg cG9ydGlkLCBuYl9yeCA9IDA7DQoJdWludDY0X3QgdG90YWw7DQoJdWludDY0X3QgdGltZW91dCA9 IE1BWF9JRExFOw0KCWludCBudW1bUlRFX01BWF9FVEhQT1JUU107DQoNCglsY29yZV9pZCA9IHJ0 ZV9sY29yZV9pZCgpOw0KCWNvbmYgPSAmbGNvcmVfY29uZltsY29yZV9pZF07DQoJaWYgKGNvbmYt PnN0YXR1cyAhPSBMQ09SRV9VU0VEKQ0KCQlyZXR1cm4gMDsNCg0KCXRvdGFsID0gcGt0X3Blcl9w b3J0ICogY29uZi0+bmJfcG9ydHM7DQoJcHJpbnRmKCJzdGFydCB0byByZWNlaXZlIHRvdGFsIGV4 cGVjdCAlIlBSSXU2NCJcbiIsIHRvdGFsKTsNCg0KCXBrdHNfYnVyc3QgPSAoc3RydWN0IHJ0ZV9t YnVmICoqKQ0KCQlydGVfY2FsbG9jX3NvY2tldCgicG9sbF9idXJzdCIsDQoJCQkJICB0b3RhbCwg c2l6ZW9mKHZvaWQgKiksDQoJCQkJICBSVEVfQ0FDSEVfTElORV9TSVpFLCBjb25mLT5zb2NrZXRp ZCk7DQoJaWYgKCFwa3RzX2J1cnN0KQ0KCQlyZXR1cm4gLTE7DQoNCglmb3IgKGkgPSAwOyBpIDwg Y29uZi0+bmJfcG9ydHM7IGkrKykgew0KCQlwb3J0aWQgPSBjb25mLT5wb3J0bGlzdFtpXTsNCgkJ bmV4dFtwb3J0aWRdID0gaSAqIHBrdF9wZXJfcG9ydDsNCgkJbnVtW3BvcnRpZF0gPSBwa3RfcGVy X3BvcnQ7DQoJfQ0KDQoJd2hpbGUgKCFydGVfYXRvbWljNjRfcmVhZCgmc3RhcnQpKQ0KCQk7DQoN CgljdXJfdHNjID0gcnRlX3JkdHNjKCk7DQoJd2hpbGUgKHRvdGFsKSB7DQoJCWZvciAoaSA9IDA7 IGkgPCBjb25mLT5uYl9wb3J0czsgaSsrKSB7DQoJCQlwb3J0aWQgPSBjb25mLT5wb3J0bGlzdFtp XTsNCgkJCW5iX3J4ID0gcnRlX2V0aF9yeF9idXJzdChwb3J0aWQsIDAsDQoJCQkJCSZwa3RzX2J1 cnN0W25leHRbcG9ydGlkXV0sDQoJCQkJCVJURV9NSU4oTUFYX1BLVF9CVVJTVCwgbnVtW3BvcnRp ZF0pKTsNCgkJCWlmICh1bmxpa2VseShuYl9yeCA9PSAwKSkgew0KCQkJCXRpbWVvdXQtLTsNCgkJ CQlpZiAodW5saWtlbHkodGltZW91dCA9PSAwKSkNCgkJCQkJZ290byB0aW1lb3V0Ow0KCQkJCWNv bnRpbnVlOw0KCQkJfQ0KCQkJbmV4dFtwb3J0aWRdICs9IG5iX3J4Ow0KCQkJbnVtW3BvcnRpZF0g LT0gbmJfcng7DQoJCQl0b3RhbCAtPSBuYl9yeDsNCgkJfQ0KCX0NCnRpbWVvdXQ6DQoJZGlmZl90 c2MgPSBydGVfcmR0c2MoKSAtIGN1cl90c2M7DQoNCglwcmludGYoIiUiUFJJdTY0IiBwYWNrZXRz IGxvc3QsIElETEUgJSJQUkl1NjQiIHRpbWVzXG4iLA0KCSAgICAgICB0b3RhbCwgTUFYX0lETEUg LSB0aW1lb3V0KTsNCgkvKiBjbGVhbiB1cCAqLw0KCXRvdGFsID0gcGt0X3Blcl9wb3J0ICogY29u Zi0+bmJfcG9ydHMgLSB0b3RhbDsNCglmb3IgKGkgPSAwOyBpIDwgdG90YWw7IGkrKykNCgkJcnRl X3BrdG1idWZfZnJlZShwa3RzX2J1cnN0W2ldKTsNCg0KCXJ0ZV9mcmVlKHBrdHNfYnVyc3QpOw0K DQoJaWYgKHRvdGFsID4gMCkNCgkJcmV0dXJuIGRpZmZfdHNjIC8gdG90YWw7DQoJZWxzZQ0KCQly ZXR1cm4gLTE7DQp9DQoNCnN0YXRpYyBpbnQNCmV4ZWNfYnVyc3QodWludDMyX3QgZmxhZ3MsIGlu dCBsY29yZSkNCnsNCgl1bnNpZ25lZCBpLCBwb3J0aWQsIG5iX3R4ID0gMDsNCglzdHJ1Y3QgbGNv cmVfY29uZiAqY29uZjsNCgl1aW50MzJfdCBwa3RfcGVyX3BvcnQ7DQoJaW50IG51bSwgaWR4ID0g MDsNCglpbnQgZGlmZl90c2M7DQoNCgljb25mID0gJmxjb3JlX2NvbmZbbGNvcmVdOw0KDQoJcGt0 X3Blcl9wb3J0ID0gTUFYX1RSQUZGSUNfQlVSU1Q7DQoJbnVtID0gcGt0X3Blcl9wb3J0ICogY29u Zi0+bmJfcG9ydHM7DQoNCglydGVfYXRvbWljNjRfaW5pdCgmc3RhcnQpOw0KDQoJLyogc3RhcnQg cG9sbGluZyB0aHJlYWQsIGJ1dCBub3QgYWN0dWFsbHkgcG9sbCB5ZXQgKi8NCglydGVfZWFsX3Jl bW90ZV9sYXVuY2gocG9sbF9idXJzdCwNCgkJCSAgICAgICh2b2lkICopJnBrdF9wZXJfcG9ydCwg bGNvcmUpOw0KDQoJLyogT25seSB3aGVuIHBvbGxpbmcgZmlyc3QgKi8NCglpZiAoZmxhZ3MgPT0g U0NfQlVSU1RfUE9MTF9GSVJTVCkNCgkJcnRlX2F0b21pYzY0X3NldCgmc3RhcnQsIDEpOw0KDQoJ Lyogc3RhcnQgeG1pdCAqLw0KCXdoaWxlIChudW0pIHsNCgkJbmJfdHggPSBSVEVfTUlOKE1BWF9Q S1RfQlVSU1QsIG51bSk7DQoJCWZvciAoaSA9IDA7IGkgPCBjb25mLT5uYl9wb3J0czsgaSsrKSB7 DQoJCQlwb3J0aWQgPSBjb25mLT5wb3J0bGlzdFtpXTsNCgkJCW5iX3R4ID0gcnRlX2V0aF90eF9i dXJzdChwb3J0aWQsIDAsDQoJCQkJCSAmdHhfYnVyc3RbaWR4XSwgbmJfdHgpOw0KCQkJaWR4ICs9 IG5iX3R4Ow0KCQkJbnVtIC09IG5iX3R4Ow0KCQl9DQoNCgl9DQoNCglzbGVlcCg1KTsNCg0KCS8q IG9ubHkgd2hlbiBwb2xsaW5nIHNlY29uZCAgKi8NCglpZiAoZmxhZ3MgPT0gU0NfQlVSU1RfWE1J VF9GSVJTVCkNCgkJcnRlX2F0b21pYzY0X3NldCgmc3RhcnQsIDEpOw0KDQoJLyogd2FpdCBmb3Ig cG9sbGluZyBmaW5pc2hlZCAqLw0KCWRpZmZfdHNjID0gcnRlX2VhbF93YWl0X2xjb3JlKGxjb3Jl KTsNCglpZiAoZGlmZl90c2MgPCAwKSB7DQoJCXByaW50ZigiZXhlY19idXJzdDogRmFpbGVkIHRv IG1lYXN1cmUgY3ljbGVzIHBlciBwYWNrZXRcbiIpOw0KCQlyZXR1cm4gLTE7DQoJfQ0KDQoJcHJp bnRmKCJSZXN1bHQ6ICVkIGN5Y2xlcyBwZXIgcGFja2V0XG4iLCBkaWZmX3RzYyk7DQoNCglyZXR1 cm4gMDsNCn0NCg0Kc3RhdGljIGludA0KdGVzdF9wbWRfcGVyZih2b2lkKQ0Kew0KCXVpbnQxNl90 IG5iX3BvcnRzLCBudW0sIG5iX2xjb3Jlcywgc2xhdmVfaWQgPSAodWludDE2X3QpLTE7DQoJdWlu dDE2X3QgbmJfcnhkID0gTUFYX1RSQUZGSUNfQlVSU1Q7DQoJdWludDE2X3QgbmJfdHhkID0gTUFY X1RSQUZGSUNfQlVSU1Q7DQoJdWludDE2X3QgcG9ydGlkOw0KCXVpbnQxNl90IG5iX3J4X3F1ZXVl ID0gMSwgbmJfdHhfcXVldWUgPSAxOw0KCWludCBzb2NrZXRpZCA9IC0xOw0KCWludCByZXQ7DQoN CglwcmludGYoIlN0YXJ0IFBNRCBSWFRYIGN5Y2xlcyBjb3N0IHRlc3QuXG4iKTsNCg0KCXNpZ25h bChTSUdVU1IxLCBzaWduYWxfaGFuZGxlcik7DQoJc2lnbmFsKFNJR1VTUjIsIHNpZ25hbF9oYW5k bGVyKTsNCg0KCW5iX3BvcnRzID0gcnRlX2V0aF9kZXZfY291bnRfYXZhaWwoKTsNCglpZiAobmJf cG9ydHMgPCBOQl9FVEhQT1JUU19VU0VEKSB7DQoJCXByaW50ZigiQXQgbGVhc3QgJXUgcG9ydChz KSB1c2VkIGZvciBwZXJmLiB0ZXN0XG4iLA0KCQkgICAgICAgTkJfRVRIUE9SVFNfVVNFRCk7DQoJ CXJldHVybiAtMTsNCgl9DQoNCgluYl9sY29yZXMgPSBydGVfbGNvcmVfY291bnQoKTsNCg0KCW1l bXNldChsY29yZV9jb25mLCAwLCBzaXplb2YobGNvcmVfY29uZikpOw0KCWluaXRfbGNvcmVzKCk7 DQoNCglpbml0X21idWZwb29sKE5CX01CVUYpOw0KDQoJaWYgKHNjX2ZsYWcgPT0gU0NfQ09OVElO VU9VUykgew0KCQluYl9yeGQgPSBSVEVfVEVTVF9SWF9ERVNDX0RFRkFVTFQ7DQoJCW5iX3R4ZCA9 IFJURV9URVNUX1RYX0RFU0NfREVGQVVMVDsNCgl9DQoJcHJpbnRmKCJDT05GSUcgUlhEPSVkIFRY RD0lZFxuIiwgbmJfcnhkLCBuYl90eGQpOw0KDQoJcmVzZXRfY291bnQoKTsNCgludW0gPSAwOw0K CVJURV9FVEhfRk9SRUFDSF9ERVYocG9ydGlkKSB7DQoJCWlmIChzb2NrZXRpZCA9PSAtMSkgew0K CQkJc29ja2V0aWQgPSBydGVfZXRoX2Rldl9zb2NrZXRfaWQocG9ydGlkKTsNCgkJCXNsYXZlX2lk ID0gYWxsb2NfbGNvcmUoc29ja2V0aWQpOw0KCQkJaWYgKHNsYXZlX2lkID09ICh1aW50MTZfdCkt MSkgew0KCQkJCXByaW50ZigiTm8gYXZhaWwgbGNvcmUgdG8gcnVuIHRlc3RcbiIpOw0KCQkJCXJl dHVybiAtMTsNCgkJCX0NCgkJCXByaW50ZigiUGVyZm9ybWFuY2UgdGVzdCBydW5zIG9uIGxjb3Jl ICV1IHNvY2tldCAldVxuIiwNCgkJCSAgICAgICBzbGF2ZV9pZCwgc29ja2V0aWQpOw0KCQl9DQoN CgkJaWYgKHNvY2tldGlkICE9IHJ0ZV9ldGhfZGV2X3NvY2tldF9pZChwb3J0aWQpKSB7DQoJCQlw cmludGYoIlNraXAgcG9ydCAlZFxuIiwgcG9ydGlkKTsNCgkJCWNvbnRpbnVlOw0KCQl9DQoNCgkJ LyogcG9ydCBjb25maWd1cmUgKi8NCgkJcmV0ID0gcnRlX2V0aF9kZXZfY29uZmlndXJlKHBvcnRp ZCwgbmJfcnhfcXVldWUsDQoJCQkJCSAgICBuYl90eF9xdWV1ZSwgJnBvcnRfY29uZik7DQoJCWlm IChyZXQgPCAwKQ0KCQkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLA0KCQkJCSJDYW5ub3QgY29uZmln dXJlIGRldmljZTogZXJyPSVkLCBwb3J0PSVkXG4iLA0KCQkJCSByZXQsIHBvcnRpZCk7DQoNCgkJ cmV0ID0gcnRlX2V0aF9tYWNhZGRyX2dldChwb3J0aWQsICZwb3J0c19ldGhfYWRkcltwb3J0aWRd KTsNCgkJaWYgKHJldCA8IDApDQoJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsDQoJCQkJIkNhbm5v dCBnZXQgbWFjIGFkZHJlc3M6IGVycj0lZCwgcG9ydD0lZFxuIiwNCgkJCQkgcmV0LCBwb3J0aWQp Ow0KDQoJCXByaW50ZigiUG9ydCAldSAiLCBwb3J0aWQpOw0KCQlwcmludF9ldGhhZGRyKCJBZGRy ZXNzOiIsICZwb3J0c19ldGhfYWRkcltwb3J0aWRdKTsNCgkJcHJpbnRmKCJcbiIpOw0KDQoJCS8q IHR4IHF1ZXVlIHNldHVwICovDQoJCXJldCA9IHJ0ZV9ldGhfdHhfcXVldWVfc2V0dXAocG9ydGlk LCAwLCBuYl90eGQsDQoJCQkJCSAgICAgc29ja2V0aWQsICZ0eF9jb25mKTsNCgkJaWYgKHJldCA8 IDApDQoJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsDQoJCQkJInJ0ZV9ldGhfdHhfcXVldWVfc2V0 dXA6IGVycj0lZCwgIg0KCQkJCSJwb3J0PSVkXG4iLCByZXQsIHBvcnRpZCk7DQoNCgkJLyogcngg cXVldWUgc3RldXAgKi8NCgkJcmV0ID0gcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cChwb3J0aWQsIDAs IG5iX3J4ZCwNCgkJCQkJCXNvY2tldGlkLCAmcnhfY29uZiwNCgkJCQkJCW1idWZwb29sW3NvY2tl dGlkXSk7DQoJCWlmIChyZXQgPCAwKQ0KCQkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAicnRlX2V0 aF9yeF9xdWV1ZV9zZXR1cDogZXJyPSVkLCINCgkJCQkgInBvcnQ9JWRcbiIsIHJldCwgcG9ydGlk KTsNCg0KCQkvKiBTdGFydCBkZXZpY2UgKi8NCgkJc3RvcCA9IDA7DQoJCXJldCA9IHJ0ZV9ldGhf ZGV2X3N0YXJ0KHBvcnRpZCk7DQoJCWlmIChyZXQgPCAwKQ0KCQkJcnRlX2V4aXQoRVhJVF9GQUlM VVJFLA0KCQkJCSJydGVfZXRoX2Rldl9zdGFydDogZXJyPSVkLCBwb3J0PSVkXG4iLA0KCQkJCXJl dCwgcG9ydGlkKTsNCg0KCQkvKiBhbHdheXMgZWFuYmxlIHByb21pc2N1b3VzICovDQoJCXJldCA9 IHJ0ZV9ldGhfcHJvbWlzY3VvdXNfZW5hYmxlKHBvcnRpZCk7DQoJCWlmIChyZXQgIT0gMCkNCgkJ CXJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwNCgkJCQkgInJ0ZV9ldGhfcHJvbWlzY3VvdXNfZW5hYmxl OiBlcnI9JXMsIHBvcnQ9JWRcbiIsDQoJCQkJIHJ0ZV9zdHJlcnJvcigtcmV0KSwgcG9ydGlkKTsN Cg0KCQlsY29yZV9jb25mW3NsYXZlX2lkXS5wb3J0bGlzdFtudW0rK10gPSBwb3J0aWQ7DQoJCWxj b3JlX2NvbmZbc2xhdmVfaWRdLm5iX3BvcnRzKys7DQoJfQ0KCWNoZWNrX2FsbF9wb3J0c19saW5r X3N0YXR1cyhuYl9wb3J0cywgUlRFX1BPUlRfQUxMKTsNCg0KCWlmICh0eF9idXJzdCA9PSBOVUxM KSB7DQoJCXR4X2J1cnN0ID0gKHN0cnVjdCBydGVfbWJ1ZiAqKikNCgkJCXJ0ZV9jYWxsb2Nfc29j a2V0KCJ0eF9idWZmIiwNCgkJCQkJICBNQVhfVFJBRkZJQ19CVVJTVCAqIG5iX3BvcnRzLA0KCQkJ CQkgIHNpemVvZih2b2lkICopLA0KCQkJCQkgIFJURV9DQUNIRV9MSU5FX1NJWkUsIHNvY2tldGlk KTsNCgkJaWYgKCF0eF9idXJzdCkNCgkJCXJldHVybiAtMTsNCgl9DQoNCglpbml0X3RyYWZmaWMo bWJ1ZnBvb2xbc29ja2V0aWRdLA0KCQkgICAgIHR4X2J1cnN0LCBNQVhfVFJBRkZJQ19CVVJTVCAq IG5iX3BvcnRzKTsNCg0KCXByaW50ZigiR2VuZXJhdGUgJWQgcGFja2V0cyBAc29ja2V0ICVkXG4i LA0KCSAgICAgICBNQVhfVFJBRkZJQ19CVVJTVCAqIG5iX3BvcnRzLCBzb2NrZXRpZCk7DQoNCglp ZiAoc2NfZmxhZyA9PSBTQ19DT05USU5VT1VTKSB7DQoJCS8qIGRvIGJvdGggcnh0eCBieSBkZWZh dWx0ICovDQoJCWlmIChOVUxMID09IGRvX21lYXN1cmUpDQoJCQlkb19tZWFzdXJlID0gbWVhc3Vy ZV9yeHR4Ow0KDQoJCXJ0ZV9lYWxfcmVtb3RlX2xhdW5jaChtYWluX2xvb3AsIE5VTEwsIHNsYXZl X2lkKTsNCg0KCQlpZiAocnRlX2VhbF93YWl0X2xjb3JlKHNsYXZlX2lkKSA8IDApDQoJCQlyZXR1 cm4gLTE7DQoJfSBlbHNlIGlmIChzY19mbGFnID09IFNDX0JVUlNUX1BPTExfRklSU1QgfHwNCgkJ ICAgc2NfZmxhZyA9PSBTQ19CVVJTVF9YTUlUX0ZJUlNUKQ0KCQlpZiAoZXhlY19idXJzdChzY19m bGFnLCBzbGF2ZV9pZCkgPCAwKQ0KCQkJcmV0dXJuIC0xOw0KDQoJLyogcG9ydCB0ZWFyIGRvd24g Ki8NCglSVEVfRVRIX0ZPUkVBQ0hfREVWKHBvcnRpZCkgew0KCQlpZiAoc29ja2V0aWQgIT0gcnRl X2V0aF9kZXZfc29ja2V0X2lkKHBvcnRpZCkpDQoJCQljb250aW51ZTsNCg0KCQlydGVfZXRoX2Rl dl9zdG9wKHBvcnRpZCk7DQoJfQ0KDQoJcmV0dXJuIDA7DQp9DQoNCmludA0KdGVzdF9zZXRfcnh0 eF9jb25mKGNtZGxpbmVfZml4ZWRfc3RyaW5nX3QgbW9kZSkNCnsNCglwcmludGYoIm1vZGUgc3dp dGNoIHRvICVzXG4iLCBtb2RlKTsNCg0KCWlmICghc3RyY21wKG1vZGUsICJ2ZWN0b3IiKSkgew0K CQkvKiB2ZWN0b3IgcngsIHR4ICovDQoJCXR4X2NvbmYudHhfcnNfdGhyZXNoID0gMzI7DQoJCXR4 X2NvbmYudHhfZnJlZV90aHJlc2ggPSAzMjsNCgkJcmV0dXJuIDA7DQoJfSBlbHNlIGlmICghc3Ry Y21wKG1vZGUsICJzY2FsYXIiKSkgew0KCQkvKiBidWxrIGFsbG9jIHJ4LCBmdWxsLWZlYXR1cmVk IHR4ICovDQoJCXR4X2NvbmYudHhfcnNfdGhyZXNoID0gMzI7DQoJCXR4X2NvbmYudHhfZnJlZV90 aHJlc2ggPSAzMjsNCgkJcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9B RF9DSEVDS1NVTTsNCgkJcmV0dXJuIDA7DQoJfSBlbHNlIGlmICghc3RyY21wKG1vZGUsICJoeWJy aWQiKSkgew0KCQkvKiBidWxrIGFsbG9jIHJ4LCB2ZWN0b3IgdHgNCgkJICogd2hlbiB2ZWMgbWFj cm8gbm90IGRlZmluZSwNCgkJICogdXNpbmcgdGhlIHNhbWUgcngvdHggYXMgc2NhbGFyDQoJCSAq Lw0KCQl0eF9jb25mLnR4X3JzX3RocmVzaCA9IDMyOw0KCQl0eF9jb25mLnR4X2ZyZWVfdGhyZXNo ID0gMzI7DQoJCXBvcnRfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfQ0hF Q0tTVU07DQoJCXJldHVybiAwOw0KCX0gZWxzZSBpZiAoIXN0cmNtcChtb2RlLCAiZnVsbCIpKSB7 DQoJCS8qIGZ1bGwgZmVhdHVyZSByeCx0eCBwYWlyICovDQoJCXR4X2NvbmYudHhfcnNfdGhyZXNo ID0gMzI7DQoJCXR4X2NvbmYudHhfZnJlZV90aHJlc2ggPSAzMjsNCgkJcG9ydF9jb25mLnJ4bW9k ZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOw0KCQlyZXR1cm4gMDsNCgl9DQoN CglyZXR1cm4gLTE7DQp9DQoNCmludA0KdGVzdF9zZXRfcnh0eF9hbmNob3IoY21kbGluZV9maXhl ZF9zdHJpbmdfdCB0eXBlKQ0Kew0KCXByaW50ZigidHlwZSBzd2l0Y2ggdG8gJXNcbiIsIHR5cGUp Ow0KDQoJaWYgKCFzdHJjbXAodHlwZSwgInJ4dHgiKSkgew0KCQlkb19tZWFzdXJlID0gbWVhc3Vy ZV9yeHR4Ow0KCQlyZXR1cm4gMDsNCgl9IGVsc2UgaWYgKCFzdHJjbXAodHlwZSwgInJ4b25seSIp KSB7DQoJCWRvX21lYXN1cmUgPSBtZWFzdXJlX3J4b25seTsNCgkJcmV0dXJuIDA7DQoJfSBlbHNl IGlmICghc3RyY21wKHR5cGUsICJ0eG9ubHkiKSkgew0KCQlkb19tZWFzdXJlID0gbWVhc3VyZV90 eG9ubHk7DQoJCXJldHVybiAwOw0KCX0NCg0KCXJldHVybiAtMTsNCn0NCg0KaW50DQp0ZXN0X3Nl dF9yeHR4X3NjKGNtZGxpbmVfZml4ZWRfc3RyaW5nX3QgdHlwZSkNCnsNCglwcmludGYoInN0cmVh bSBjb250cm9sIHN3aXRjaCB0byAlc1xuIiwgdHlwZSk7DQoNCglpZiAoIXN0cmNtcCh0eXBlLCAi Y29udGludW91cyIpKSB7DQoJCXNjX2ZsYWcgPSBTQ19DT05USU5VT1VTOw0KCQlyZXR1cm4gMDsN Cgl9IGVsc2UgaWYgKCFzdHJjbXAodHlwZSwgInBvbGxfYmVmb3JlX3htaXQiKSkgew0KCQlzY19m bGFnID0gU0NfQlVSU1RfUE9MTF9GSVJTVDsNCgkJcmV0dXJuIDA7DQoJfSBlbHNlIGlmICghc3Ry Y21wKHR5cGUsICJwb2xsX2FmdGVyX3htaXQiKSkgew0KCQlzY19mbGFnID0gU0NfQlVSU1RfWE1J VF9GSVJTVDsNCgkJcmV0dXJuIDA7DQoJfQ0KDQoJcmV0dXJuIC0xOw0KfQ0KDQpSRUdJU1RFUl9U RVNUX0NPTU1BTkQocG1kX3BlcmZfYXV0b3Rlc3QsIHRlc3RfcG1kX3BlcmYpOwoxNi8wMy8yMDIw IDExOjIzOjM1ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogc2VkIC1pIC1lICdzLyNk ZWZpbmUgTUFYX1RSQUZGSUNfQlVSU1QgICAgICAgICAgICAgIDIwNDgvI2RlZmluZSBNQVhfVFJB RkZJQ19CVVJTVCAgICAgICAgICAgICAgMzIvJyBhcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMKMTYv MDMvMjAyMCAxMToyMzozNSAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8y MDIwIDExOjIzOjM1ICAgICAgICAgIFRlc3RVbml0VGVzdHNMb29wYmFjazogVGVzdCBDYXNlIHRl c3RfbGlua19tb2RlIEJlZ2luCjE2LzAzLzIwMjAgMTE6MjM6MzYgICAgICAgICAgICAgIGR1dC4x MC4yMzguNTQuMjE2OiAKMTYvMDMvMjAyMCAxMToyMzozNiAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0ZXI6IAoxNi8wMy8yMDIwIDExOjIzOjM2ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0 LjIxNjogc2VkIC1pIC1lICdzL2xwYmtfbW9kZSA9IDEvbHBia19tb2RlID0gMC8nIGFwcC90ZXN0 L3Rlc3RfcG1kX3BlcmYuYwoxNi8wMy8yMDIwIDExOjIzOjM2ICAgICAgICAgICAgICBkdXQuMTAu MjM4LjU0LjIxNjogCjE2LzAzLzIwMjAgMTE6MjM6MzYgICAgICAgICAgICAgIGR1dC4xMC4yMzgu NTQuMjE2OiBybSAtcmYgLi9hcHAvdGVzdC90ZXN0X3Jlc291cmNlX2MucmVzLm8KMTYvMDMvMjAy MCAxMToyMzozNiAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8yMDIwIDEx OjIzOjM2ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogcm0gLXJmIC4vYXBwL3Rlc3Qv dGVzdF9yZXNvdXJjZV90YXIucmVzLm8KMTYvMDMvMjAyMCAxMToyMzozNiAgICAgICAgICAgICAg ZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8yMDIwIDExOjIzOjM2ICAgICAgICAgICAgICBkdXQu MTAuMjM4LjU0LjIxNjogcm0gLXJmIC4vYXBwL3Rlc3QvdGVzdF9wY2lfc3lzZnMucmVzLm8KMTYv MDMvMjAyMCAxMToyMzozNiAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8y MDIwIDExOjIzOjM2ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogbWFrZSAtaiAzMCAt QyBhcHAvdGVzdCAKMTYvMDMvMjAyMCAxMToyNDowMCAgICAgICAgICAgICAgZHV0LjEwLjIzOC41 NC4yMTY6IG1ha2U6IEVudGVyaW5nIGRpcmVjdG9yeSBgL3Jvb3QvZHBkay9hcHAvdGVzdCcNCiAg Q0MgY29tbWFuZHMubw0KICBDQyB0ZXN0Lm8NCiAgQ0MgcmVzb3VyY2Uubw0KICBDQyB0ZXN0X3Jl c291cmNlLm8NCiAgQ0MgdGVzdF9wcmVmZXRjaC5vDQogIENDIHRlc3RfYnl0ZW9yZGVyLm8NCiAg Q0MgdGVzdF9wZXJfbGNvcmUubw0KICBDQyB0ZXN0X2F0b21pYy5vDQogIENDIHRlc3RfYmFycmll ci5vDQogIENDIHRlc3RfbWFsbG9jLm8NCiAgQ0MgdGVzdF9jeWNsZXMubw0KICBDQyB0ZXN0X21j c2xvY2subw0KICBDQyB0ZXN0X3NwaW5sb2NrLm8NCiAgQ0MgdGVzdF90aWNrZXRsb2NrLm8NCiAg Q0MgdGVzdF9tZW1vcnkubw0KICBDQyB0ZXN0X21lbXpvbmUubw0KICBDQyB0ZXN0X2JpdG1hcC5v DQogIENDIHRlc3RfcmVjaXByb2NhbF9kaXZpc2lvbi5vDQogIENDIHRlc3RfcmVjaXByb2NhbF9k aXZpc2lvbl9wZXJmLm8NCiAgQ0MgdGVzdF9mYmFycmF5Lm8NCiAgQ0MgdGVzdF9leHRlcm5hbF9t ZW0ubw0KICBDQyB0ZXN0X3JhbmRfcGVyZi5vDQogIENDIHRlc3RfcmluZy5vDQogIENDIHRlc3Rf cmluZ19wZXJmLm8NCiAgQ0MgdGVzdF9wbWRfcGVyZi5vDQogIENDIHRlc3RfdGFibGUubw0KICBD QyB0ZXN0X3RhYmxlX3BpcGVsaW5lLm8NCiAgQ0MgdGVzdF90YWJsZV90YWJsZXMubw0KICBDQyB0 ZXN0X3RhYmxlX3BvcnRzLm8NCiAgQ0MgdGVzdF90YWJsZV9jb21iaW5lZC5vDQogIENDIHRlc3Rf dGFibGVfYWNsLm8NCiAgQ0MgdGVzdF9mbG93X2NsYXNzaWZ5Lm8NCiAgQ0MgdGVzdF9yd2xvY2su bw0KICBDQyB0ZXN0X3N0YWNrLm8NCiAgQ0MgdGVzdF9zdGFja19wZXJmLm8NCiAgQ0MgdGVzdF90 aW1lci5vDQogIENDIHRlc3RfdGltZXJfcGVyZi5vDQogIENDIHRlc3RfdGltZXJfcmFjZWNvbmQu bw0KICBDQyB0ZXN0X3RpbWVyX3NlY29uZGFyeS5vDQogIENDIHRlc3RfbWVtcG9vbC5vDQogIEND IHRlc3RfbWVtcG9vbF9wZXJmLm8NCiAgQ0MgdGVzdF9tYnVmLm8NCiAgQ0MgdGVzdF9sb2dzLm8N CiAgQ0MgdGVzdF9tZW1jcHkubw0KICBDQyB0ZXN0X21lbWNweV9wZXJmLm8NCiAgQ0MgdGVzdF9t ZW1iZXIubw0KICBDQyB0ZXN0X21lbWJlcl9wZXJmLm8NCiAgQ0MgdGVzdF9lZmQubw0KICBDQyB0 ZXN0X2VmZF9wZXJmLm8NCiAgQ0MgdGVzdF9oYXNoLm8NCiAgQ0MgdGVzdF9oYXNoX3BlcmYubw0K ICBDQyB0ZXN0X2hhc2hfZnVuY3Rpb25zLm8NCiAgQ0MgdGVzdF90aGFzaC5vDQogIENDIHRlc3Rf aGFzaF9tdWx0aXdyaXRlci5vDQogIENDIHRlc3RfaGFzaF9yZWFkd3JpdGUubw0KICBDQyB0ZXN0 X2hhc2hfcmVhZHdyaXRlX2xmX3BlcmYubw0KICBDQyB0ZXN0X3JpYi5vDQogIENDIHRlc3Rfcmli Ni5vDQogIENDIHRlc3RfZmliLm8NCiAgQ0MgdGVzdF9maWI2Lm8NCiAgQ0MgdGVzdF9maWJfcGVy Zi5vDQogIENDIHRlc3RfZmliNl9wZXJmLm8NCiAgQ0MgdGVzdF9scG0ubw0KICBDQyB0ZXN0X2xw bV9wZXJmLm8NCiAgQ0MgdGVzdF9scG02Lm8NCiAgQ0MgdGVzdF9scG02X3BlcmYubw0KICBDQyB0 ZXN0X2RlYnVnLm8NCiAgQ0MgdGVzdF9lcnJuby5vDQogIENDIHRlc3RfdGFpbHEubw0KICBDQyB0 ZXN0X3N0cmluZ19mbnMubw0KICBDQyB0ZXN0X2NwdWZsYWdzLm8NCiAgQ0MgdGVzdF9tcF9zZWNv bmRhcnkubw0KICBDQyB0ZXN0X2VhbF9mbGFncy5vDQogIENDIHRlc3RfZWFsX2ZzLm8NCiAgQ0Mg dGVzdF9hbGFybS5vDQogIENDIHRlc3RfaW50ZXJydXB0cy5vDQogIENDIHRlc3RfdmVyc2lvbi5v DQogIENDIHRlc3RfZnVuY19yZWVudHJhbmN5Lm8NCiAgQ0MgdGVzdF9zZXJ2aWNlX2NvcmVzLm8N CiAgQ0Mgc2FtcGxlX3BhY2tldF9mb3J3YXJkLm8NCiAgQ0MgdGVzdF9iaXRyYXRlc3RhdHMubw0K ICBDQyB0ZXN0X2xhdGVuY3lzdGF0cy5vDQogIENDIHRlc3RfcGR1bXAubw0KICBDQyB0ZXN0X2Nt ZGxpbmUubw0KICBDQyB0ZXN0X2NtZGxpbmVfbnVtLm8NCiAgQ0MgdGVzdF9jbWRsaW5lX2V0aGVy YWRkci5vDQogIENDIHRlc3RfY21kbGluZV9wb3J0bGlzdC5vDQogIENDIHRlc3RfY21kbGluZV9p cGFkZHIubw0KICBDQyB0ZXN0X2NtZGxpbmVfY2lyYnVmLm8NCiAgQ0MgdGVzdF9jbWRsaW5lX3N0 cmluZy5vDQogIENDIHRlc3RfY21kbGluZV9saWIubw0KICBDQyB0ZXN0X2NyYy5vDQogIENDIHRl c3RfcmVkLm8NCiAgQ0MgdGVzdF9zY2hlZC5vDQogIENDIHRlc3RfbWV0ZXIubw0KICBDQyB0ZXN0 X2tuaS5vDQogIENDIHRlc3RfcG93ZXIubw0KICBDQyB0ZXN0X3Bvd2VyX2NwdWZyZXEubw0KICBD QyB0ZXN0X3Bvd2VyX2t2bV92bS5vDQogIENDIHRlc3RfY29tbW9uLm8NCiAgQ0MgdGVzdF9kaXN0 cmlidXRvci5vDQogIENDIHRlc3RfZGlzdHJpYnV0b3JfcGVyZi5vDQogIENDIHRlc3RfcmVvcmRl ci5vDQogIENDIHZpcnR1YWxfcG1kLm8NCiAgQ0MgcGFja2V0X2J1cnN0X2dlbmVyYXRvci5vDQog IENDIHRlc3RfYWNsLm8NCiAgQ0MgdGVzdF9saW5rX2JvbmRpbmcubw0KICBDQyB0ZXN0X2xpbmtf Ym9uZGluZ19tb2RlNC5vDQogIENDIHRlc3RfbGlua19ib25kaW5nX3Jzc2NvbmYubw0KICBDQyB0 ZXN0X3BtZF9yaW5nLm8NCiAgQ0MgdGVzdF9wbWRfcmluZ19wZXJmLm8NCiAgQ0MgdGVzdF9jcnlw dG9kZXZfYmxvY2tjaXBoZXIubw0KICBDQyB0ZXN0X2NyeXB0b2Rldi5vDQogIENDIHRlc3RfY3J5 cHRvZGV2X2FzeW0ubw0KICBDQyB0ZXN0X2NyeXB0b2Rldl9zZWN1cml0eV9wZGNwLm8NCiAgQ0Mg dGVzdF9tZXRyaWNzLm8NCiAgQ0MgdGVzdF9ldmVudGRldi5vDQogIENDIHRlc3RfZXZlbnRfcmlu Zy5vDQogIENDIHRlc3RfZXZlbnRfZXRoX3J4X2FkYXB0ZXIubw0KICBDQyB0ZXN0X2V2ZW50X2V0 aF90eF9hZGFwdGVyLm8NCiAgQ0MgdGVzdF9ldmVudF90aW1lcl9hZGFwdGVyLm8NCiAgQ0MgdGVz dF9ldmVudF9jcnlwdG9fYWRhcHRlci5vDQogIENDIHRlc3RfcmF3ZGV2Lm8NCiAgQ0MgdGVzdF9r dmFyZ3Mubw0KICBDQyB0ZXN0X2JwZi5vDQogIENDIHRlc3RfcmN1X3FzYnIubw0KICBDQyB0ZXN0 X3JjdV9xc2JyX3BlcmYubw0KICBDQyB0ZXN0X2lwc2VjLm8NCiAgQ0MgdGVzdF9pcHNlY19zYWQu bw0KICBNS1JFUyB0ZXN0X3Jlc291cmNlX2MucmVzLm8NCiAgTEQgdGVzdA0KICBJTlNUQUxMLUFQ UCB0ZXN0DQogIElOU1RBTEwtTUFQIHRlc3QubWFwDQptYWtlOiBMZWF2aW5nIGRpcmVjdG9yeSBg L3Jvb3QvZHBkay9hcHAvdGVzdCcKMTYvMDMvMjAyMCAxMToyNDowMCAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0ZXI6IHJtIC1yZiAuL2dldFBhY2thZ2VCeVRjcGR1bXAuY2FwCjE2LzAzLzIw MjAgMTE6MjQ6MDAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVyOiAKMTYvMDMvMjAyMCAx MToyNDowMCAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ZXI6IHRjcGR1bXAgLWkgZW5zMTAg LXcgLi9nZXRQYWNrYWdlQnlUY3BkdW1wLmNhcCAyPiAvZGV2L251bGwmIAoxNi8wMy8yMDIwIDEx OjI0OjAwICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RlcjogWzFdIDExMjY2CjE2LzAzLzIw MjAgMTE6MjQ6MDAgICAgICAgICAgICAgIGR1dC4xMC4yMzguNTQuMjE2OiAuL2FwcC90ZXN0L3Rl c3QgLWwgMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTcsMTgsMTksMjAsMjEs MjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEgLW4gNCAgIC0tZmlsZS1wcmVmaXg9ZHBka18x MTExMF8yMDIwMDMxNjExMjMxOCAgCjE2LzAzLzIwMjAgMTE6MjQ6MDEgICAgICAgICAgICAgIGR1 dC4xMC4yMzguNTQuMjE2OiBFQUw6IERldGVjdGVkIDMyIGxjb3JlKHMpDQpFQUw6IERldGVjdGVk IDIgTlVNQSBub2Rlcw0KRUFMOiBNdWx0aS1wcm9jZXNzIHNvY2tldCAvdmFyL3J1bi9kcGRrL2Rw ZGtfMTExMTBfMjAyMDAzMTYxMTIzMTgvbXBfc29ja2V0DQpFQUw6IFNlbGVjdGVkIElPVkEgbW9k ZSAnUEEnDQpFQUw6IFByb2JpbmcgVkZJTyBzdXBwb3J0Li4uDQpFQUw6IFBDSSBkZXZpY2UgMDAw MDowNTowMC4wIG9uIE5VTUEgc29ja2V0IDANCkVBTDogICBwcm9iZSBkcml2ZXI6IDgwODY6MTUy MSBuZXRfZTEwMDBfaWdiDQpFQUw6IFBDSSBkZXZpY2UgMDAwMDowNTowMC4xIG9uIE5VTUEgc29j a2V0IDANCkVBTDogICBwcm9iZSBkcml2ZXI6IDgwODY6MTUyMSBuZXRfZTEwMDBfaWdiDQpFQUw6 IFBDSSBkZXZpY2UgMDAwMDo4NDowMC4wIG9uIE5VTUEgc29ja2V0IDENCkVBTDogICBwcm9iZSBk cml2ZXI6IDgwODY6MTU4YiBuZXRfaTQwZQ0KaTQwZV9HTFFGX3JlZ19pbml0KCk6IGk0MGUgZGV2 aWNlIDAwMDA6ODQ6MDAuMCBjaGFuZ2VkIGdsb2JhbCByZWdpc3RlciBbMHgwMDI2ODlhMF0uIG9y aWdpbmFsOiAweDAwMDAwMDAwLCBuZXc6IDB4MDAwMDAwMjkgDQppNDBlX0dMUUZfcmVnX2luaXQo KTogaTQwZSBkZXZpY2UgMDAwMDo4NDowMC4wIGNoYW5nZWQgZ2xvYmFsIHJlZ2lzdGVyIFsweDAw MjY4Y2E0XS4gb3JpZ2luYWw6IDB4MDAwMDE4NDAsIG5ldzogMHgwMDAwOTQyMCANCmk0MGVfYXFf ZGVidWdfd3JpdGVfZ2xvYmFsX3JlZ2lzdGVyKCk6IGk0MGUgZGV2aWNlIDAwMDA6ODQ6MDAuMCBj aGFuZ2VkIGdsb2JhbCByZWdpc3RlciBbMHgwMDI2YzdhMF0uIG9yaWdpbmFsOiAweGE4LCBhZnRl cjogMHgyOA0KaTQwZV9kY2JfaW5pdF9jb25maWd1cmUoKTogRENCIGluaXRpYWxpemF0aW9uIGlu IEZXIGZhaWxzLCBlcnIgPSAtNjMsIGFxX2VyciA9IDAuDQpFQUw6IFBDSSBkZXZpY2UgMDAwMDo4 NDowMC4xIG9uIE5VTUEgc29ja2V0IDENCkVBTDogICBwcm9iZSBkcml2ZXI6IDgwODY6MTU4YiBu ZXRfaTQwZQ0KaTQwZV9kY2JfaW5pdF9jb25maWd1cmUoKTogRENCIGluaXRpYWxpemF0aW9uIGlu IEZXIGZhaWxzLCBlcnIgPSAtNjMsIGFxX2VyciA9IDAuDQpFQUw6IFBDSSBkZXZpY2UgMDAwMDo4 NjowMC4wIG9uIE5VTUEgc29ja2V0IDENCkVBTDogICBwcm9iZSBkcml2ZXI6IDgwODY6MTBmYiBu ZXRfaXhnYmUNCkVBTDogUENJIGRldmljZSAwMDAwOjg2OjAwLjEgb24gTlVNQSBzb2NrZXQgMQ0K RUFMOiAgIHByb2JlIGRyaXZlcjogODA4NjoxMGZiIG5ldF9peGdiZQ0KQVBQOiBIUEVUIGlzIG5v dCBlbmFibGVkLCB1c2luZyBUU0MgYXMgZGVmYXVsdCB0aW1lcgoxNi8wMy8yMDIwIDExOjI0OjAx ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogcG1kX3BlcmZfYXV0b3Rlc3QKMTYvMDMv MjAyMCAxMToyNDozMSAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IHBtZF9wZXJmX2F1 dG90ZXN0DQ0KU3RhcnQgUE1EIFJYVFggY3ljbGVzIGNvc3QgdGVzdC4NCkFsbG9jYXRlZCBtYnVm IHBvb2wgb24gc29ja2V0IDANCkFsbG9jYXRlZCBtYnVmIHBvb2wgb24gc29ja2V0IDENCkNPTkZJ RyBSWEQ9MTAyNCBUWEQ9MTAyNA0KUGVyZm9ybWFuY2UgdGVzdCBydW5zIG9uIGxjb3JlIDggc29j a2V0IDENClBvcnQgMCBBZGRyZXNzOjNDOkZEOkZFOkNGOjMzOkYwDQpQb3J0IDEgQWRkcmVzczoz QzpGRDpGRTpDRjozMzpGMQ0KQ2hlY2tpbmcgbGluayBzdGF0dXNlcy4uLg0KUG9ydDAgTGluayBV cC4gU3BlZWQgMTAwMDAgTWJwcyAtIGZ1bGwtZHVwbGV4DQpQb3J0MSBMaW5rIFVwLiBTcGVlZCAx MDAwMCBNYnBzIC0gZnVsbC1kdXBsZXgNCklQdjQgcGt0bGVuIDQ2DQpVRFAgcGt0bGVuIDI2DQpH ZW5lcmF0ZSA2NCBwYWNrZXRzIEBzb2NrZXQgMQ0KaW5qZWN0IDMyIHBhY2tldCB0byBwb3J0IDAN CmluamVjdCAzMiBwYWNrZXQgdG8gcG9ydCAxDQpUb3RhbCBwYWNrZXRzIGluamVjdCB0byBwcmlt ZSBwb3J0cyA9IDY0DQpFYWNoIHBvcnQgd2lsbCBkbyAxNDg4MDk1MiBwYWNrZXRzIHBlciBzZWNv bmQNClRlc3Qgd2lsbCBzdG9wIGFmdGVyIGF0IGxlYXN0IDU5NTIzODA4IHBhY2tldHMgcmVjZWl2 ZWQNCgoxNi8wMy8yMDIwIDExOjI0OjMxICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjog a2lsbF9hbGw6IGNhbGxlZCBieSBkdXQgYW5kIHByZWZpeCBsaXN0IGhhcyB2YWx1ZS4KMTYvMDMv MjAyMCAxMToyNDozMyAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IEtpbGxlZA0KW1BF WFBFQ1RdIyAKMTYvMDMvMjAyMCAxMToyNDozMyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 ZXI6IGtpbGxhbGwgdGNwZHVtcAoxNi8wMy8yMDIwIDExOjI0OjMzICAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RlcjogCjE2LzAzLzIwMjAgMTE6MjQ6MzMgICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdGVyOiB0Y3BkdW1wIC1ubiAtZSAtdiAtciAuL2dldFBhY2thZ2VCeVRjcGR1bXAuY2Fw CjE2LzAzLzIwMjAgMTE6MjQ6MzMgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVyOiByZWFk aW5nIGZyb20gZmlsZSAuL2dldFBhY2thZ2VCeVRjcGR1bXAuY2FwLCBsaW5rLXR5cGUgRU4xME1C IChFdGhlcm5ldCkNCmRyb3BwZWQgcHJpdnMgdG8gdGNwZHVtcA0KMTE6MjQ6MDEuNDM3MDIzIDAw OmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4 MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBb bm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAu MC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzcwNjkgMDA6ZmY6YWE6ZmY6YWE6ZmYg PiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDog KHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQ ICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5n dGggMTgNCjExOjI0OjAxLjQzNzA4MiAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZm OmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0 LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2 KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEu NDM3MDk1IDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJ UHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAw LCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEu MCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzcxMTQgMDA6ZmY6YWE6 ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxl bmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwg cHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDog VURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzEzMSAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFh OmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4 MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwg bGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0K MTE6MjQ6MDEuNDM3MTUwIDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0 aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAs IG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAg MTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzcxNzAg MDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4 MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdz IFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAu MC4wLjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzE4NiAwMDpmZjphYTpmZjphYTpm ZiA+IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYw OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBV RFAgKDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxl bmd0aCAxOA0KMTE6MjQ6MDEuNDM3MjAxIDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6 ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwg NjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGgg NDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDow MS40MzcyMDkgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBl IElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0 IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAu MS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzIxOCAwMDpmZjph YTpmZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwg bGVuZ3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVd LCBwcm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4w OiBVRFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEuNDM3MjM4IDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6 YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3Mg MHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcp LCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4 DQoxMToyNDowMS40MzcyNDcgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwg ZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQg MCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAg ICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzI1 NSAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAo MHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxh Z3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAx MC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEuNDM3MjYzIDAwOmZmOmFhOmZmOmFh OmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGgg NjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3Rv IFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwg bGVuZ3RoIDE4DQoxMToyNDowMS40MzcyNzEgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjph YTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0 bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0 aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0 OjAxLjQzNzI4MCAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5 cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZz ZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAu MC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEuNDM3Mjg4IDAwOmZm OmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDAp LCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9u ZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4y LjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzcyOTYgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAw MDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRv cyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgx NyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGgg MTgNCjExOjI0OjAxLjQzNzMwNCAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZmOmFh LCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0LCBp ZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2KQ0K ICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEuNDM3 MzEyIDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0 ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBm bGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+ IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzczMjAgMDA6ZmY6YWE6ZmY6 YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0 aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJv dG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQ LCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzMyOCAwMDpmZjphYTpmZjphYTpmZiA+IDAwOmFhOmZm OmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAodG9zIDB4MCwg dHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAgKDE3KSwgbGVu Z3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0aCAxOA0KMTE6 MjQ6MDEuNDM3MzM2IDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6YWEsIGV0aGVy dHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDAsIG9m ZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYpDQogICAgMTAu MC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40MzczNDUgMDA6 ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgw MCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAsIGZsYWdzIFtu b25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4wID4gMTAuMC4w LjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzM1MyAwMDpmZjphYTpmZjphYTpmZiA+ IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDYwOiAo dG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBVRFAg KDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBVRFAsIGxlbmd0 aCAxOA0KMTE6MjQ6MDEuNDM3MzYxIDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6ZmY6YWE6ZmY6 YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgwLCB0dGwgNjQs IGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBsZW5ndGggNDYp DQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQoxMToyNDowMS40 MzczNjkgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRoZXJ0eXBlIElQ djQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwgb2Zmc2V0IDAs IGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAxMC4wLjAuMS4w ID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGggMTgNCjExOjI0OjAxLjQzNzM3NyAwMDpmZjphYTpm ZjphYTpmZiA+IDAwOmFhOmZmOmFhOmZmOmFhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVu Z3RoIDYwOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAwLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBw cm90byBVRFAgKDE3KSwgbGVuZ3RoIDQ2KQ0KICAgIDEwLjAuMC4xLjAgPiAxMC4wLjAuMi4wOiBV RFAsIGxlbmd0aCAxOA0KMTE6MjQ6MDEuNDM3Mzg1IDAwOmZmOmFhOmZmOmFhOmZmID4gMDA6YWE6 ZmY6YWE6ZmY6YWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNjA6ICh0b3MgMHgw LCB0dGwgNjQsIGlkIDAsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFVEUCAoMTcpLCBs ZW5ndGggNDYpDQogICAgMTAuMC4wLjEuMCA+IDEwLjAuMC4yLjA6IFVEUCwgbGVuZ3RoIDE4DQox MToyNDowMS40MzczOTMgMDA6ZmY6YWE6ZmY6YWE6ZmYgPiAwMDphYTpmZjphYTpmZjphYSwgZXRo ZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA2MDogKHRvcyAweDAsIHR0bCA2NCwgaWQgMCwg b2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVURQICgxNyksIGxlbmd0aCA0NikNCiAgICAx MC4wLjAuMS4wID4gMTAuMC4wLjIuMDogVURQLCBsZW5ndGggMTgNClsxXSsgIERvbmUgICAgICAg ICAgICAgICAgICAgIHRjcGR1bXAgLWkgZW5zMTAgLXcgLi9nZXRQYWNrYWdlQnlUY3BkdW1wLmNh cCAyPiAvZGV2L251bGwKMTYvMDMvMjAyMCAxMToyNDozMyAgICAgICAgICBUZXN0VW5pdFRlc3Rz TG9vcGJhY2s6IFRlc3QgQ2FzZSB0ZXN0X2xpbmtfbW9kZSBSZXN1bHQgUEFTU0VEOgoxNi8wMy8y MDIwIDExOjI0OjMzICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjoga2lsbF9hbGw6IGNh bGxlZCBieSBkdXQgYW5kIGhhcyBubyBwcmVmaXggbGlzdC4KMTYvMDMvMjAyMCAxMToyNDozNCAg ICAgICAgICBUZXN0VW5pdFRlc3RzTG9vcGJhY2s6IFRlc3QgQ2FzZSB0ZXN0X2xvb3BiYWNrX21v ZGUgQmVnaW4KMTYvMDMvMjAyMCAxMToyNDozNCAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4y MTY6IAoxNi8wMy8yMDIwIDExOjI0OjM0ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rlcjog IAoxNi8wMy8yMDIwIDExOjI0OjM0ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogc2Vk IC1pIC1lICdzL2xwYmtfbW9kZSA9IDAvbHBia19tb2RlID0gMS8nIGFwcC90ZXN0L3Rlc3RfcG1k X3BlcmYuYwoxNi8wMy8yMDIwIDExOjI0OjM0ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIx NjogCjE2LzAzLzIwMjAgMTE6MjQ6MzQgICAgICAgICAgICAgIGR1dC4xMC4yMzguNTQuMjE2OiBy bSAtcmYgLi9hcHAvdGVzdC90ZXN0X3Jlc291cmNlX2MucmVzLm8KMTYvMDMvMjAyMCAxMToyNDoz NCAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8yMDIwIDExOjI0OjM0ICAg ICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogcm0gLXJmIC4vYXBwL3Rlc3QvdGVzdF9yZXNv dXJjZV90YXIucmVzLm8KMTYvMDMvMjAyMCAxMToyNDozNCAgICAgICAgICAgICAgZHV0LjEwLjIz OC41NC4yMTY6IAoxNi8wMy8yMDIwIDExOjI0OjM0ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0 LjIxNjogcm0gLXJmIC4vYXBwL3Rlc3QvdGVzdF9wY2lfc3lzZnMucmVzLm8KMTYvMDMvMjAyMCAx MToyNDozNCAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IAoxNi8wMy8yMDIwIDExOjI0 OjM0ICAgICAgICAgICAgICBkdXQuMTAuMjM4LjU0LjIxNjogbWFrZSAtaiAzMCAtQyBhcHAvdGVz dCAKMTYvMDMvMjAyMCAxMToyNDozNiAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IG1h a2U6IEVudGVyaW5nIGRpcmVjdG9yeSBgL3Jvb3QvZHBkay9hcHAvdGVzdCcNCiAgTUtSRVMgdGVz dF9yZXNvdXJjZV9jLnJlcy5vDQogIENDIHRlc3RfcG1kX3BlcmYubw0KICBMRCB0ZXN0DQogIElO U1RBTEwtQVBQIHRlc3QNCiAgSU5TVEFMTC1NQVAgdGVzdC5tYXANCm1ha2U6IExlYXZpbmcgZGly ZWN0b3J5IGAvcm9vdC9kcGRrL2FwcC90ZXN0JwoxNi8wMy8yMDIwIDExOjI0OjM2ICAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3Rlcjogcm0gLXJmIC4vZ2V0UGFja2FnZUJ5VGNwZHVtcC5jYXAK MTYvMDMvMjAyMCAxMToyNDozNyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ZXI6IAoxNi8w My8yMDIwIDExOjI0OjM3ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RlcjogdGNwZHVtcCAt aSBlbnMxMCAtdyAuL2dldFBhY2thZ2VCeVRjcGR1bXAuY2FwIDI+IC9kZXYvbnVsbCYgCjE2LzAz LzIwMjAgMTE6MjQ6MzcgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVyOiBbMV0gMTEyNzEK MTYvMDMvMjAyMCAxMToyNDozNyAgICAgICAgICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IC4vYXBw L3Rlc3QvdGVzdCAtbCAxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNywxOCwx OSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSAtbiA0ICAgLS1maWxlLXByZWZp eD1kcGRrXzExMTEwXzIwMjAwMzE2MTEyMzE4ICAKMTYvMDMvMjAyMCAxMToyNDozNyAgICAgICAg ICAgICAgZHV0LjEwLjIzOC41NC4yMTY6IEVBTDogRGV0ZWN0ZWQgMzIgbGNvcmUocykNCkVBTDog RGV0ZWN0ZWQgMiBOVU1BIG5vZGVzDQpFQUw6IE11bHRpLXByb2Nlc3Mgc29ja2V0IC92YXIvcnVu L2RwZGsvZHBka18xMTExMF8yMDIwMDMxNjExMjMxOC9tcF9zb2NrZXQNCkVBTDogU2VsZWN0ZWQg SU9WQSBtb2RlICdQQScNCkVBTDogUHJvYmluZyBWRklPIHN1cHBvcnQuLi4NCkVBTDogUENJIGRl dmljZSAwMDAwOjA1OjAwLjAgb24gTlVNQSBzb2NrZXQgMA0KRUFMOiAgIHByb2JlIGRyaXZlcjog ODA4NjoxNTIxIG5ldF9lMTAwMF9pZ2INCkVBTDogUENJIGRldmljZSAwMDAwOjA1OjAwLjEgb24g TlVNQSBzb2NrZXQgMA0KRUFMOiAgIHByb2JlIGRyaXZlcjogODA4NjoxNTIxIG5ldF9lMTAwMF9p Z2INCkVBTDogUENJIGRldmljZSAwMDAwOjg0OjAwLjAgb24gTlVNQSBzb2NrZXQgMQ0KRUFMOiAg IHByb2JlIGRyaXZlcjogODA4NjoxNThiIG5ldF9pNDBlDQppNDBlX2RjYl9pbml0X2NvbmZpZ3Vy ZSgpOiBEQ0IgaW5pdGlhbGl6YXRpb24gaW4gRlcgZmFpbHMsIGVyciA9IC02MywgYXFfZXJyID0g MC4NCkVBTDogUENJIGRldmljZSAwMDAwOjg0OjAwLjEgb24gTlVNQSBzb2NrZXQgMQ0KRUFMOiAg IHByb2JlIGRyaXZlcjogODA4NjoxNThiIG5ldF9pNDBlDQppNDBlX2RjYl9pbml0X2NvbmZpZ3Vy ZSgpOiBEQ0IgaW5pdGlhbGl6YXRpb24gaW4gRlcgZmFpbHMsIGVyciA9IC02MywgYXFfZXJyID0g MC4NCkVBTDogUENJIGRldmljZSAwMDAwOjg2OjAwLjAgb24gTlVNQSBzb2NrZXQgMQ0KRUFMOiAg IHByb2JlIGRyaXZlcjogODA4NjoxMGZiIG5ldF9peGdiZQ0KRUFMOiBQQ0kgZGV2aWNlIDAwMDA6 ODY6MDAuMSBvbiBOVU1BIHNvY2tldCAxDQpFQUw6ICAgcHJvYmUgZHJpdmVyOiA4MDg2OjEwZmIg bmV0X2l4Z2JlDQpBUFA6IEhQRVQgaXMgbm90IGVuYWJsZWQsIHVzaW5nIFRTQyBhcyBkZWZhdWx0 IHRpbWVyCjE2LzAzLzIwMjAgMTE6MjQ6MzcgICAgICAgICAgICAgIGR1dC4xMC4yMzguNTQuMjE2 OiBwbWRfcGVyZl9hdXRvdGVzdAoxNi8wMy8yMDIwIDExOjI0OjQzICAgICAgICAgICAgICBkdXQu MTAuMjM4LjU0LjIxNjogcG1kX3BlcmZfYXV0b3Rlc3QNDQpTdGFydCBQTUQgUlhUWCBjeWNsZXMg Y29zdCB0ZXN0Lg0KQWxsb2NhdGVkIG1idWYgcG9vbCBvbiBzb2NrZXQgMA0KQWxsb2NhdGVkIG1i dWYgcG9vbCBvbiBzb2NrZXQgMQ0KQ09ORklHIFJYRD0xMDI0IFRYRD0xMDI0DQpQZXJmb3JtYW5j ZSB0ZXN0IHJ1bnMgb24gbGNvcmUgOCBzb2NrZXQgMQ0KUG9ydCAwIEFkZHJlc3M6M0M6RkQ6RkU6 Q0Y6MzM6RjANClBvcnQgMSBBZGRyZXNzOjNDOkZEOkZFOkNGOjMzOkYxDQpDaGVja2luZyBsaW5r IHN0YXR1c2VzLi4uDQpQb3J0MCBMaW5rIFVwLiBTcGVlZCAxMDAwMCBNYnBzIC0gZnVsbC1kdXBs ZXgNClBvcnQxIExpbmsgVXAuIFNwZWVkIDEwMDAwIE1icHMgLSBmdWxsLWR1cGxleA0KSVB2NCBw a3RsZW4gNDYNClVEUCBwa3RsZW4gMjYNCkdlbmVyYXRlIDY0IHBhY2tldHMgQHNvY2tldCAxDQpp bmplY3QgMzIgcGFja2V0IHRvIHBvcnQgMA0KaW5qZWN0IDMyIHBhY2tldCB0byBwb3J0IDENClRv dGFsIHBhY2tldHMgaW5qZWN0IHRvIHByaW1lIHBvcnRzID0gNjQNCkVhY2ggcG9ydCB3aWxsIGRv IDE0ODgwOTUyIHBhY2tldHMgcGVyIHNlY29uZA0KVGVzdCB3aWxsIHN0b3AgYWZ0ZXIgYXQgbGVh c3QgNTk1MjM4MDggcGFja2V0cyByZWNlaXZlZA0KZnJlZSAzMiAoZXhwZWN0ZWQgMzIpIG1idWYg bGVmdCBpbiBwb3J0IDANCmZyZWUgMzIgKGV4cGVjdGVkIDMyKSBtYnVmIGxlZnQgaW4gcG9ydCAx DQo1OTUyMzgwOCBwYWNrZXQsIDAgZHJvcCwgMjMwMzA4NTkyIGlkbGUNClJlc3VsdDogMjI5IGN5 Y2xlcyBwZXIgcGFja2V0DQpUZXN0IE9LCjE2LzAzLzIwMjAgMTE6MjQ6NDMgICAgICAgICAgICAg IGR1dC4xMC4yMzguNTQuMjE2OiBxdWl0CjE2LzAzLzIwMjAgMTE6MjQ6NDMgICAgICAgICAgICAg IGR1dC4xMC4yMzguNTQuMjE2OiBxdWl0DQoxNi8wMy8yMDIwIDExOjI0OjQzICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3Rlcjoga2lsbGFsbCB0Y3BkdW1wCjE2LzAzLzIwMjAgMTE6MjQ6NDMg ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGVyOiAKMTYvMDMvMjAyMCAxMToyNDo0MyAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0ZXI6IHRjcGR1bXAgLW5uIC1lIC12IC1yIC4vZ2V0UGFj a2FnZUJ5VGNwZHVtcC5jYXAKMTYvMDMvMjAyMCAxMToyNDo0MyAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0ZXI6IHJlYWRpbmcgZnJvbSBmaWxlIC4vZ2V0UGFja2FnZUJ5VGNwZHVtcC5jYXAs IGxpbmstdHlwZSBFTjEwTUIgKEV0aGVybmV0KQ0KZHJvcHBlZCBwcml2cyB0byB0Y3BkdW1wDQpb MV0rICBEb25lICAgICAgICAgICAgICAgICAgICB0Y3BkdW1wIC1pIGVuczEwIC13IC4vZ2V0UGFj a2FnZUJ5VGNwZHVtcC5jYXAgMj4gL2Rldi9udWxsCjE2LzAzLzIwMjAgMTE6MjQ6NDMgICAgICAg ICAgVGVzdFVuaXRUZXN0c0xvb3BiYWNrOiBUZXN0IENhc2UgdGVzdF9sb29wYmFja19tb2RlIFJl c3VsdCBQQVNTRUQ6CjE2LzAzLzIwMjAgMTE6MjQ6NDMgICAgICAgICAgICAgIGR1dC4xMC4yMzgu NTQuMjE2OiBraWxsX2FsbDogY2FsbGVkIGJ5IGR1dCBhbmQgcHJlZml4IGxpc3QgaGFzIHZhbHVl LgoxNi8wMy8yMDIwIDExOjI0OjQzICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0czogClRF U1QgU1VJVEUgRU5ERUQ6IFRlc3RVbml0VGVzdHNMb29wYmFjawo= --_002_3e18752c735a44779cc42e6917469f2bintelcom_--