From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id C64C31B980 for ; Thu, 10 May 2018 10:04:19 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2018 01:04:14 -0700 Message-Id: <0590c7$1k59lh@orsmga001.jf.intel.com> Date: 10 May 2018 01:04:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,384,1520924400"; d="scan'208";a="54699713" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 10 May 2018 01:04:12 -0700 Content-Type: multipart/alternative; boundary="===============3286804877020476311==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com, peipeix.lu@intel.com Subject: [dpdk-test-report] |FAILURE| pw36586[dpdk-dev] ethdev: replace bus specific struct with generic dev X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 08:04:21 -0000 --===============3286804877020476311== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM2NTg2CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBGZXJydWgg WWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+CkRhdGU6IDIwMTgtMDMtMjcgMTc6NDA6NTIK RFBESyBnaXQgYmFzZWxpbmU6CglSZXBvOmRwZGstbWFzdGVyLCBDb21taXRJRDogOGVhNDE0Mzg4 MzJhMzYwYWVkMmI3YmE0OWZiNzVlMzEwYTJmZjFkYwoJUmVwbzpkcGRrLW5leHQtZXZlbnRkZXYs IENvbW1pdElEOiA2NDBiMGQxZTUxMGUxMTE2OTRjMjUxNDU0NjZmMzc4Njc0NTM4MzdmCglSZXBv OmRwZGstbmV4dC1uZXQsIENvbW1pdElEOiA3NzRjMTg5MmM0MzRkYmEwOTk5OGNjYzc2Yjk1NmZl YjcyMjI0NTcxCglSZXBvOmRwZGstbmV4dC1jcnlwdG8sIENvbW1pdElEOiA3MjhjYTliMGQ1YWJl YTgyY2QwMWRlZTY2NDU0NTZhOWQ1NjIxNWY3CglSZXBvOmRwZGstbmV4dC12aXJ0aW8sIENvbW1p dElEOiAwMzdjMDk5NmJjOTI3MzQyZjE1NzQyNjczOWUwY2I2M2YyZGI4Njg5CgoqUmVwbzogZHBk ay1tYXN0ZXIKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMgaW50CnBvcnRfcmVnX29mZl9pc19pbnZhbGlkKHBv cnRpZF90IHBvcnRfaWQsIHVpbnQzMl90IHJlZ19vZmYpCnsKCXVpbnQ2NF90IHBjaV9sZW47CgoJ aWYgKHJlZ19vZmYgJiAweDMpIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9j b25maWcuYzo3NTQKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaC4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKc3RhdGljIGlubGluZSB1aW50MzJfdApwb3J0X3BjaV9yZWdfcmVh ZChzdHJ1Y3QgcnRlX3BvcnQgKnBvcnQsIHVpbnQzMl90IHJlZ19vZmYpCnsKCXZvaWQgKnJlZ19h ZGRyOwoJdWludDMyX3QgcmVnX3Y7Ci0tCgkJCXJlZ19vZmYpOwoJcmVnX3YgPSAqKCh2b2xhdGls ZSB1aW50MzJfdCAqKXJlZ19hZGRyKTsKCXJldHVybiBydGVfbGVfdG9fY3B1XzMyKHJlZ192KTsK fQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaDo1MDAKZXJyb3I6 IGFwcC90ZXN0LXBtZC90ZXN0cG1kLmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2FmX3BhY2tldC9ydGVfZXRoX2FmX3BhY2tldC5jLi4uCkh1bmsgIzEg c3VjY2VlZGVkIGF0IDI5OSAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9hcmsvYXJrX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJ RVRIX0xJTktfU1BFRURfNDBHIHwKCQkJCUVUSF9MSU5LX1NQRUVEXzUwRyB8CgkJCQlFVEhfTElO S19TUEVFRF8xMDBHKTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRl dik7Cn0KCnN0YXRpYyBpbnQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2Fyay9h cmtfZXRoZGV2LmM6NzcxCmVycm9yOiBkcml2ZXJzL25ldC9hcmsvYXJrX2V0aGRldi5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9hdmYvYXZmX2V0aGRl di5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGF2Zl9pbmZvICp2ZiA9 IEFWRl9ERVZfUFJJVkFURV9UT19WRihkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCgltZW1zZXQo ZGV2X2luZm8sIDAsIHNpemVvZigqZGV2X2luZm8pKTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRF X0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IHZmLT52c2lf cmVzLT5udW1fcXVldWVfcGFpcnM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IHZmLT52c2lf cmVzLT5udW1fcXVldWVfcGFpcnM7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSBBVkZfQlVG X1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXZmL2F2Zl9ldGhk ZXYuYzo1MDcKZXJyb3I6IGRyaXZlcnMvbmV0L2F2Zi9hdmZfZXRoZGV2LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F2cC9hdnBfZXRoZGV2LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCXN0cnVjdCBhdnBfZGV2ICphdnAgPSBBVlBf REVWX1BSSVZBVEVfVE9fSFcoZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCWRldl9pbmZv LT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGV0aF9kZXYpOwoJZGV2X2luZm8tPm1heF9y eF9xdWV1ZXMgPSBhdnAtPm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9 IGF2cC0+bWF4X3R4X3F1ZXVlczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEFWUF9NSU5f UlhfQlVGU0laRTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2F2cC9hdnBfZXRo ZGV2LmM6MjIwNgplcnJvcjogZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CmJueDJ4X2Rldl9pbmZvc19nZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICpkZXZfaW5mbykK ewoJc3RydWN0IGJueDJ4X3NvZnRjICpzYyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CglkZXZf aW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJZGV2X2luZm8tPm1heF9y eF9xdWV1ZXMgID0gc2MtPm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyAg PSBzYy0+bWF4X3R4X3F1ZXVlczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEJOWDJYX01J Tl9SWF9CVUZfU0laRTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueDJ4L2Ju eDJ4X2V0aGRldi5jOjQ0NwplcnJvcjogZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54 dF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQxNl90IG1heF92 bmljcywgaSwgaiwgdnBvb2wsIHZyeHE7Cgl1bnNpZ25lZCBpbnQgbWF4X3J4X3JpbmdzOwoKCWRl dl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGV0aF9kZXYpOwoKCS8qIE1BQyBT cGVjaWZpY3MgKi8KCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gYnAtPm1heF9sMl9jdHg7Cgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmM6NDA3CmVy cm9yOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0aGRldi5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCS5uYl9hbGlnbiA9IDEsCgl9OwoKCWRldmljZV9pbmZv LT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGV0aF9kZXYpOwoKCWRldmljZV9pbmZvLT5t aW5fcnhfYnVmc2l6ZSA9IENYR0JFX01JTl9SWF9CVUZTSVpFOwoJZGV2aWNlX2luZm8tPm1heF9y eF9wa3RsZW4gPSBDWEdCRV9NQVhfUlhfUEtUTEVOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvY3hnYmUvY3hnYmVfZXRoZGV2LmM6MTQ4CmVycm9yOiBkcml2ZXJzL25ldC9jeGdi ZS9jeGdiZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDMxMiAo b2Zmc2V0IDY3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJf ZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTk1IChvZmZzZXQgMzIgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKewoJc3RydWN0IGUxMDAwX2h3ICpodyA9IEUxMDAwX0RFVl9QUklW QVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0g UlRFX0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAyNTY7 IC8qIFNlZSBCU0laRSBmaWVsZCBvZiBSQ1RMIHJlZ2lzdGVyLiAqLwoJZGV2X2luZm8tPm1heF9y eF9wa3RsZW4gPSBlbV9nZXRfbWF4X3BrdGxlbihodyk7CglkZXZfaW5mby0+bWF4X21hY19hZGRy cyA9IGh3LT5tYWMucmFyX2VudHJ5X2NvdW50OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvZTEwMDAvZW1fZXRoZGV2LmM6MTA0OAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvZW1f ZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2UxMDAwL2lnYl9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJc3Ry dWN0IGUxMDAwX2h3ICpodyA9IEUxMDAwX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGUpOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7 CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAyNTY7IC8qIFNlZSBCU0laRSBmaWVsZCBvZiBS Q1RMIHJlZ2lzdGVyLiAqLwoJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gID0gMHgzRkZGOyAvKiBT ZWUgUkxQTUwgcmVnaXN0ZXIuICovCglkZXZfaW5mby0+bWF4X21hY19hZGRycyA9IGh3LT5tYWMu cmFyX2VudHJ5X2NvdW50OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAv aWdiX2V0aGRldi5jOjIxNDQKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5hL2VuYV9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWVuYV9kZXYgPSAmYWRhcHRl ci0+ZW5hX2RldjsKCWVuYV9hc3NlcnRfbXNnKGVuYV9kZXYgIT0gTlVMTCwgIlVuaW5pdGlhbGl6 ZWQgZGV2aWNlIik7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2 KTsKCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9CgkJCUVUSF9MSU5LX1NQRUVEXzFHICAgfAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuYzoxNTI3CmVycm9y OiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9lbmljL2VuaWNfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgZW5pYyAqZW5pYyA9IHBtZF9wcml2KGV0aF9kZXYpOwoK CUVOSUNQTURfRlVOQ19UUkFDRSgpOwoJZGV2aWNlX2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RF Vl9UT19QQ0koZXRoX2Rldik7CgkvKiBTY2F0dGVyZWQgUnggdXNlcyB0d28gcmVjZWl2ZSBxdWV1 ZXMgcGVyIHJ4IHF1ZXVlIGV4cG9zZWQgdG8gZHBkayAqLwoJZGV2aWNlX2luZm8tPm1heF9yeF9x dWV1ZXMgPSBlbmljLT5jb25mX3JxX2NvdW50IC8gMjsKCWRldmljZV9pbmZvLT5tYXhfdHhfcXVl dWVzID0gZW5pYy0+Y29uZl93cV9jb3VudDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2VuaWMvZW5pY19ldGhkZXYuYzo0NzEKZXJyb3I6IGRyaXZlcnMvbmV0L2VuaWMvZW5pY19l dGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv Zm0xMGsvZm0xMGtfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJUE1E X0lOSVRfRlVOQ19UUkFDRSgpOwoKCWRldl9pbmZvLT5wY2lfZGV2ICAgICAgICAgICAgPSBwZGV2 OwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplICAgICA9IEZNMTBLX01JTl9SWF9CVUZfU0laRTsK CWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuICAgICAgPSBGTTEwS19NQVhfUEtUX1NJWkU7CglkZXZf aW5mby0+bWF4X3J4X3F1ZXVlcyAgICAgID0gaHctPm1hYy5tYXhfcXVldWVzOwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfZXRoZGV2LmM6MTM3NQplcnJvcjog ZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBpNDBlX3ZzaSAqdnNpID0gcGYtPm1haW5fdnNpOwoJ c3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7 CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBwY2lfZGV2OwoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMg PSB2c2ktPm5iX3FwczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gdnNpLT5uYl9xcHM7Cglk ZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSBJNDBFX0JVRl9TSVpFX01JTjsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzozMjAwCmVycm9yOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXZfdmYuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBpNDBlX3ZmICp2ZiA9IEk0MEVWRl9ERVZfUFJJVkFURV9U T19WRihkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCgltZW1zZXQoZGV2X2luZm8sIDAsIHNpemVv ZigqZGV2X2luZm8pKTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRl dik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IHZmLT52c2lfcmVzLT5udW1fcXVldWVfcGFp cnM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IHZmLT52c2lfcmVzLT5udW1fcXVldWVfcGFp cnM7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSBJNDBFX0JVRl9TSVpFX01JTjsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXZfdmYuYzoyMTY1CmVy cm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2X3ZmLmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGl4Z2JlX2h3ICpodyA9IElYR0JFX0RF Vl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoJc3RydWN0IHJ0ZV9ldGhf Y29uZiAqZGV2X2NvbmYgPSAmZGV2LT5kYXRhLT5kZXZfY29uZjsKCglkZXZfaW5mby0+cGNpX2Rl diA9IHBjaV9kZXY7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9ICh1aW50MTZfdClody0+bWFj Lm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9ICh1aW50MTZfdClody0+ bWFjLm1heF90eF9xdWV1ZXM7CglpZiAoUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5hY3RpdmUgPT0g MCkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2 LmM6MzU3MgplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tuaS5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMg PSBLTklfTUFYX1FVRVVFX1BFUl9QT1JUOwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBLTklf TUFYX1FVRVVFX1BFUl9QT1JUOwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gMDsKCWRldl9p bmZvLT5wY2lfZGV2ID0gTlVMTDsKfQoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmM6MjAxCmVycm9yOiBkcml2ZXJzL25ldC9rbmkv cnRlX2V0aF9rbmkuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJc3RydWN0IGxpb19kZXZpY2UgKmxpb19kZXYgPSBMSU9fREVWKGV0aF9kZXYpOwoJc3RydWN0 IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGV0aF9kZXYpOwoK CWRldmluZm8tPnBjaV9kZXYgPSBwY2lfZGV2OwoKCXN3aXRjaCAocGNpX2Rldi0+aWQuc3Vic3lz dGVtX2RldmljZV9pZCkgewoJLyogQ04yM3h4IDEwRyBjYXJkcyAqLwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jOjM3MwplcnJvcjogZHJpdmVy cy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6Cgl1bnNpZ25lZCBpbnQgbWF4OwoJY2hhciBpZm5hbWVbSUZfTkFNRVNJWkVd OwoKCWluZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCS8qIEZJWE1FOiB3 ZSBzaG91bGQgYXNrIHRoZSBkZXZpY2UgZm9yIHRoZXNlIHZhbHVlcy4gKi8KCWluZm8tPm1pbl9y eF9idWZzaXplID0gMzI7CglpbmZvLT5tYXhfcnhfcGt0bGVuID0gNjU1MzY7CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZXRoZGV2LmM6NTU1CmVycm9yOiBkcml2 ZXJzL25ldC9tbHg0L21seDRfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCXVuc2lnbmVkIGludCBtYXg7CgljaGFyIGlmbmFtZVtJRl9OQU1FU0laRV07 CgoJaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJLyogRklYTUU6IHdl IHNob3VsZCBhc2sgdGhlIGRldmljZSBmb3IgdGhlc2UgdmFsdWVzLiAqLwoJaW5mby0+bWluX3J4 X2J1ZnNpemUgPSAzMjsKCWluZm8tPm1heF9yeF9wa3RsZW4gPSA2NTUzNjsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9ldGhkZXYuYzo0MDMKZXJyb3I6IGRyaXZl cnMvbmV0L21seDUvbWx4NV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbXJ2bC9tcnZsX2V0aGRldi5jLi4uCmVycm9yOiBkcml2ZXJzL25l dC9tcnZsL21ydmxfZXRoZGV2LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9uZXQuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCglodyA9IE5GUF9ORVRfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJp dmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRl dl9pbmZvLT5tYXhfcnhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYXhfcnhfcXVldWVzOwoJZGV2 X2luZm8tPm1heF90eF9xdWV1ZXMgPSAodWludDE2X3QpaHctPm1heF90eF9xdWV1ZXM7CglkZXZf aW5mby0+bWluX3J4X2J1ZnNpemUgPSBFVEhFUl9NSU5fTVRVOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvbmZwL25mcF9uZXQuYzoxMTU5CmVycm9yOiBkcml2ZXJzL25ldC9uZnAv bmZwX25ldC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9udWxsL3J0ZV9ldGhfbnVsbC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDI5OCAob2Zmc2V0 IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldl9pbmZvLT5tYXhfcnhf cXVldWVzID0gMTsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gUEtPX01BWF9OVU1fRFE7Cglk ZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAwOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBOVUxMOwoK CWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCQku cnhfZnJlZV90aHJlc2ggPSAwLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvb2N0 ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmM6NjExCmVycm9yOiBkcml2ZXJzL25ldC9vY3Rlb250eC9v Y3Rlb250eF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvcGNhcC9ydGVfZXRoX3BjYXAuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1MzIg KG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0 aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCVBNRF9JTklUX0ZVTkNfVFJB Q0UoZWRldik7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rl dik7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAodWludDMyX3QpUUVERV9NSU5fUlhfQlVG Rl9TSVpFOwoJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gPSAodWludDMyX3QpRVRIX1RYX01BWF9O T05fTFNPX1BLVF9MRU47CglkZXZfaW5mby0+cnhfZGVzY19saW0gPSBxZWRlX3J4X2Rlc2NfbGlt OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjE1 MTUKZXJyb3I6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcmluZy9ydGVfZXRoX3JpbmcuYy4uLgpI dW5rICMxIHN1Y2NlZWRlZCBhdCAxNTkgKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvc2ZjL3NmY19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCglzZmNfbG9nX2luaXQoc2EsICJlbnRyeSIpOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRF X0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9IEVGWF9NQUNf UERVX01BWDsKCgkvKiBBdXRvbmVnb3RpYXRpb24gbWF5IGJlIGRpc2FibGVkICovCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2V0aGRldi5jOjg5CmVycm9yOiBkcml2 ZXJzL25ldC9zZmMvc2ZjX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQp7 CglzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWxzID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5m by0+aWZfaW5kZXggPSAwOwoJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSAxOwoJZGV2X2luZm8t Pm1heF9yeF9wa3RsZW4gPSAodWludDMyX3QpLTE7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmM6MTAzMQplcnJvcjogZHJpdmVycy9u ZXQvc3plZGF0YTIvcnRlX2V0aF9zemVkYXRhMi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gUlRFX1BNRF9UQVBfTUFY X1FVRVVFUzsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gUlRFX1BNRF9UQVBfTUFYX1FVRVVF UzsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDA7CglkZXZfaW5mby0+cGNpX2RldiA9IE5V TEw7CglkZXZfaW5mby0+c3BlZWRfY2FwYSA9IHRhcF9kZXZfc3BlZWRfY2FwYSgpOwoJZGV2X2lu Zm8tPnJ4X29mZmxvYWRfY2FwYSA9IHRhcF9yeF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsKCWRl dl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSB0YXBfdHhfb2ZmbG9hZF9nZXRfcG9ydF9jYXBhKCk7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYzo2ODgK ZXJyb3I6IGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglQTURfSU5JVF9GVU5DX1RSQUNFKCk7CgoJZGV2 X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCgkvKiBBdXRvbmVnb3Rp YXRpb24gbWF5IGJlIGRpc2FibGVkICovCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5L X1NQRUVEX0ZJWEVEOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdGh1bmRlcngv bmljdmZfZXRoZGV2LmM6MTQwMAplcnJvcjogZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRo ZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJZGV2 X2luZm8tPnNwZWVkX2NhcGEgPSBFVEhfTElOS19TUEVFRF8xMEc7IC8qIGZha2UgdmFsdWUgKi8K CglkZXZfaW5mby0+cGNpX2RldiA9IGRldi0+ZGV2aWNlID8gUlRFX0VUSF9ERVZfVE9fUENJKGRl dikgOiBOVUxMOwoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPQoJCVJURV9NSU4oaHctPm1heF9x dWV1ZV9wYWlycywgVklSVElPX01BWF9SWF9RVUVVRVMpOwoJZGV2X2luZm8tPm1heF90eF9xdWV1 ZXMgPQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhk ZXYuYzoyMDU3CmVycm9yOiBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5l dDNfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnZteG5ldDNfZGV2X2lu Zm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAoJCSAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2 X2luZm8gKmRldl9pbmZvKQp7CglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BD SShkZXYpOwoKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gVk1YTkVUM19NQVhfUlhfUVVFVUVT OwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBWTVhORVQzX01BWF9UWF9RVUVVRVM7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmM6MTAy NQplcnJvcjogZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ldGh0b29sL2xpYi9ydGVfZXRodG9v bC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgcnRlX2V0aF9kZXZf aW5mbyBkZXZfaW5mbzsKCXN0cnVjdCBydGVfZGV2X3JlZ19pbmZvIHJlZ19pbmZvOwoJaW50IG47 CglpbnQgcmV0OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2V0aHRvb2wvbGliL3J0 ZV9ldGh0b29sLmM6MjIKZXJyb3I6IGV4YW1wbGVzL2V0aHRvb2wvbGliL3J0ZV9ldGh0b29sLmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lwX3BpcGVsaW5l L2luaXQuYy4uLgplcnJvcjogZXhhbXBsZXMvaXBfcGlwZWxpbmUvaW5pdC5jOiBObyBzdWNoIGZp bGUgb3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2tuaS9tYWluLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGkgPT0gMCkgewoJCQlzdHJ1Y3QgcnRlX2tu aV9vcHMgb3BzOwoJCQlzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyBkZXZfaW5mbzsKCgkJCW1lbXNl dCgmZGV2X2luZm8sIDAsIHNpemVvZihkZXZfaW5mbykpOwotLQoJCQkJY29uZi5pZCA9IGRldl9p bmZvLnBjaV9kZXYtPmlkOwoJCQl9CgkJCS8qIEdldCB0aGUgaW50ZXJmYWNlIGRlZmF1bHQgbWFj IGFkZHJlc3MgKi8KCQkJcnRlX2V0aF9tYWNhZGRyX2dldChwb3J0X2lkLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZXhhbXBsZXMva25pL21haW4uYzo4MzQKZXJyb3I6IGV4YW1wbGVzL2tuaS9tYWlu LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIv cnRlX2V0aGRldi5oLi4uCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCB0ZXN0L3Rlc3QvdGVzdF9rbmku Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBydGVfa25pX2NvbmYgY29u ZjsKCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGluZm87CglzdHJ1Y3QgcnRlX2tuaV9vcHMgb3Bz OwoKCWlmICghbXApCgkJcmV0dXJuIC0xOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogdGVzdC90ZXN0 L3Rlc3Rfa25pLmM6MzU3CmVycm9yOiB0ZXN0L3Rlc3QvdGVzdF9rbmkuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKKlJlcG86IGRwZGstbmV4dC1ldmVudGRldgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBpbnQK cG9ydF9yZWdfb2ZmX2lzX2ludmFsaWQocG9ydGlkX3QgcG9ydF9pZCwgdWludDMyX3QgcmVnX29m ZikKewoJdWludDY0X3QgcGNpX2xlbjsKCglpZiAocmVnX29mZiAmIDB4MykgewoKZXJyb3I6IHBh dGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjc1NAplcnJvcjogYXBwL3Rlc3QtcG1k L2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1w bWQvdGVzdHBtZC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMgaW5saW5l IHVpbnQzMl90CnBvcnRfcGNpX3JlZ19yZWFkKHN0cnVjdCBydGVfcG9ydCAqcG9ydCwgdWludDMy X3QgcmVnX29mZikKewoJdm9pZCAqcmVnX2FkZHI7Cgl1aW50MzJfdCByZWdfdjsKLS0KCQkJcmVn X29mZik7CglyZWdfdiA9ICooKHZvbGF0aWxlIHVpbnQzMl90ICopcmVnX2FkZHIpOwoJcmV0dXJu IHJ0ZV9sZV90b19jcHVfMzIocmVnX3YpOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVz dC1wbWQvdGVzdHBtZC5oOjUwMAplcnJvcjogYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaDogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYWZfcGFja2V0L3J0ZV9l dGhfYWZfcGFja2V0LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk5IChvZmZzZXQgNiBsaW5l cykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Fyay9hcmtfZXRoZGV2LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQlFVEhfTElOS19TUEVFRF80MEcgfAoJCQkJRVRIX0xJ TktfU1BFRURfNTBHIHwKCQkJCUVUSF9MSU5LX1NQRUVEXzEwMEcpOwoJZGV2X2luZm8tPnBjaV9k ZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKfQoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvYXJrL2Fya19ldGhkZXYuYzo3NzEKZXJyb3I6IGRyaXZlcnMv bmV0L2Fyay9hcmtfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2F2Zi9hdmZfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CglzdHJ1Y3QgYXZmX2luZm8gKnZmID0gQVZGX0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ZGF0 YS0+ZGV2X3ByaXZhdGUpOwoKCW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5mbykp OwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZv LT5tYXhfcnhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZv LT5tYXhfdHhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZv LT5taW5fcnhfYnVmc2l6ZSA9IEFWRl9CVUZfU0laRV9NSU47CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9hdmYvYXZmX2V0aGRldi5jOjUwNwplcnJvcjogZHJpdmVycy9uZXQvYXZm L2F2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvYXZwL2F2cF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJ c3RydWN0IGF2cF9kZXYgKmF2cCA9IEFWUF9ERVZfUFJJVkFURV9UT19IVyhldGhfZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0ko ZXRoX2Rldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGF2cC0+bWF4X3J4X3F1ZXVlczsK CWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gYXZwLT5tYXhfdHhfcXVldWVzOwoJZGV2X2luZm8t Pm1pbl9yeF9idWZzaXplID0gQVZQX01JTl9SWF9CVUZTSVpFOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYzoyMjA2CmVycm9yOiBkcml2ZXJzL25ldC9h dnAvYXZwX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKYm54MnhfZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0 ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQp7CglzdHJ1Y3QgYm54Mnhfc29mdGMgKnNjID0gZGV2 LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9f UENJKGRldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyAgPSBzYy0+bWF4X3J4X3F1ZXVlczsK CWRldl9pbmZvLT5tYXhfdHhfcXVldWVzICA9IHNjLT5tYXhfdHhfcXVldWVzOwoJZGV2X2luZm8t Pm1pbl9yeF9idWZzaXplID0gQk5YMlhfTUlOX1JYX0JVRl9TSVpFOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmM6NDQ3CmVycm9yOiBkcml2ZXJz L25ldC9ibngyeC9ibngyeF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJdWludDE2X3QgbWF4X3ZuaWNzLCBpLCBqLCB2cG9vbCwgdnJ4cTsKCXVuc2ln bmVkIGludCBtYXhfcnhfcmluZ3M7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9U T19QQ0koZXRoX2Rldik7CgoJLyogTUFDIFNwZWNpZmljcyAqLwoJZGV2X2luZm8tPm1heF9tYWNf YWRkcnMgPSBicC0+bWF4X2wyX2N0eDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L2JueHQvYm54dF9ldGhkZXYuYzo0MDcKZXJyb3I6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhk ZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY3hn YmUvY3hnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLm5iX2Fs aWduID0gMSwKCX07CgoJZGV2aWNlX2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0ko ZXRoX2Rldik7CgoJZGV2aWNlX2luZm8tPm1pbl9yeF9idWZzaXplID0gQ1hHQkVfTUlOX1JYX0JV RlNJWkU7CglkZXZpY2VfaW5mby0+bWF4X3J4X3BrdGxlbiA9IENYR0JFX01BWF9SWF9QS1RMRU47 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYzox NDgKZXJyb3I6IGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMuLi4K SHVuayAjMSBzdWNjZWVkZWQgYXQgMzEyIChvZmZzZXQgNjcgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBh dCAxOTUgKG9mZnNldCAzMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAw L2VtX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgZTEw MDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9p bmZvLT5taW5fcnhfYnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJTSVpFIGZpZWxkIG9mIFJDVEwgcmVn aXN0ZXIuICovCglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9IGVtX2dldF9tYXhfcGt0bGVuKGh3 KTsKCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50cnlfY291bnQ7Cgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYzoxMDQ4CmVy cm9yOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BS SVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYg PSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDI1 NjsgLyogU2VlIEJTSVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0ZXIuICovCglkZXZfaW5mby0+bWF4 X3J4X3BrdGxlbiAgPSAweDNGRkY7IC8qIFNlZSBSTFBNTCByZWdpc3Rlci4gKi8KCWRldl9pbmZv LT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50cnlfY291bnQ7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmM6MjE0NAplcnJvcjogZHJpdmVy cy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJZW5hX2RldiA9ICZhZGFwdGVyLT5lbmFfZGV2OwoJZW5hX2Fzc2VydF9tc2coZW5h X2RldiAhPSBOVUxMLCAiVW5pbml0aWFsaXplZCBkZXZpY2UiKTsKCglkZXZfaW5mby0+cGNpX2Rl diA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoKCWRldl9pbmZvLT5zcGVlZF9jYXBhID0KCQkJ RVRIX0xJTktfU1BFRURfMUcgICB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9l bmEvZW5hX2V0aGRldi5jOjE1MjcKZXJyb3I6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5p Y19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBlbmljICpl bmljID0gcG1kX3ByaXYoZXRoX2Rldik7CgoJRU5JQ1BNRF9GVU5DX1RSQUNFKCk7CglkZXZpY2Vf aW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsKCS8qIFNjYXR0ZXJl ZCBSeCB1c2VzIHR3byByZWNlaXZlIHF1ZXVlcyBwZXIgcnggcXVldWUgZXhwb3NlZCB0byBkcGRr ICovCglkZXZpY2VfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGVuaWMtPmNvbmZfcnFfY291bnQgLyAy OwoJZGV2aWNlX2luZm8tPm1heF90eF9xdWV1ZXMgPSBlbmljLT5jb25mX3dxX2NvdW50OwoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jOjQ3MQplcnJv cjogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCglQTURfSU5JVF9GVU5DX1RSQUNFKCk7CgoJZGV2X2luZm8t PnBjaV9kZXYgICAgICAgICAgICA9IHBkZXY7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgICAg ID0gRk0xMEtfTUlOX1JYX0JVRl9TSVpFOwoJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gICAgICA9 IEZNMTBLX01BWF9QS1RfU0laRTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzICAgICAgPSBody0+ bWFjLm1heF9xdWV1ZXM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9mbTEway9m bTEwa19ldGhkZXYuYzoxMzc1CmVycm9yOiBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGk0MGVf dnNpICp2c2kgPSBwZi0+bWFpbl92c2k7CglzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYg PSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCglkZXZfaW5mby0+cGNpX2RldiA9IHBjaV9kZXY7 CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IHZzaS0+bmJfcXBzOwoJZGV2X2luZm8tPm1heF90 eF9xdWV1ZXMgPSB2c2ktPm5iX3FwczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEk0MEVf QlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjMyMDAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldl92Zi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGk0MGVfdmYg KnZmID0gSTQwRVZGX0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoK CW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5mbykpOwoJZGV2X2luZm8tPnBjaV9k ZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0g dmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0g dmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9 IEk0MEVfQlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldl92Zi5jOjIxNjUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXZfdmYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aXhnYmUvaXhnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1 Y3QgaXhnYmVfaHcgKmh3ID0gSVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZSk7CglzdHJ1Y3QgcnRlX2V0aF9jb25mICpkZXZfY29uZiA9ICZkZXYtPmRhdGEtPmRl dl9jb25mOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gcGNpX2RldjsKCWRldl9pbmZvLT5tYXhfcnhf cXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhf dHhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3R4X3F1ZXVlczsKCWlmIChSVEVfRVRI X0RFVl9TUklPVihkZXYpLmFjdGl2ZSA9PSAwKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzozNTcyCmVycm9yOiBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVSX1BPUlQ7CglkZXZf aW5mby0+bWF4X3R4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVSX1BPUlQ7CglkZXZfaW5mby0+ bWluX3J4X2J1ZnNpemUgPSAwOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBOVUxMOwp9CgpzdGF0aWMg aW50CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYzoy MDEKZXJyb3I6IGRyaXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tuaS5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgbGlvX2RldmljZSAqbGlvX2RldiA9 IExJT19ERVYoZXRoX2Rldik7CglzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYgPSBSVEVf RVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJZGV2aW5mby0+cGNpX2RldiA9IHBjaV9kZXY7CgoJ c3dpdGNoIChwY2lfZGV2LT5pZC5zdWJzeXN0ZW1fZGV2aWNlX2lkKSB7CgkvKiBDTjIzeHggMTBH IGNhcmRzICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9saXF1aWRpby9saW9f ZXRoZGV2LmM6MzczCmVycm9yOiBkcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVuc2lnbmVkIGludCBtYXg7 CgljaGFyIGlmbmFtZVtJRl9OQU1FU0laRV07CgoJaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVW X1RPX1BDSShkZXYpOwoJLyogRklYTUU6IHdlIHNob3VsZCBhc2sgdGhlIGRldmljZSBmb3IgdGhl c2UgdmFsdWVzLiAqLwoJaW5mby0+bWluX3J4X2J1ZnNpemUgPSAzMjsKCWluZm8tPm1heF9yeF9w a3RsZW4gPSA2NTUzNjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4 NF9ldGhkZXYuYzo1NTUKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0 aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdW5zaWduZWQgaW50IG1heDsK CWNoYXIgaWZuYW1lW0lGX05BTUVTSVpFXTsKCglpbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZf VE9fUENJKGRldik7CgkvKiBGSVhNRTogd2Ugc2hvdWxkIGFzayB0aGUgZGV2aWNlIGZvciB0aGVz ZSB2YWx1ZXMuICovCglpbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDMyOwoJaW5mby0+bWF4X3J4X3Br dGxlbiA9IDY1NTM2OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1 X2V0aGRldi5jOjQwMwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tcnZsL21ydmxfZXRo ZGV2LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L21ydmwvbXJ2bF9ldGhkZXYuYzogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX25ldC5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCWh3ID0gTkZQX05FVF9ERVZfUFJJVkFU RV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJU RV9FVEhfREVWX1RPX1BDSShkZXYpOwoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAodWludDE2 X3QpaHctPm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9ICh1aW50MTZf dClody0+bWF4X3R4X3F1ZXVlczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEVUSEVSX01J Tl9NVFU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX25ldC5jOjEx NTkKZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfbmV0LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMuLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgMjk4IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAxOwoJZGV2X2luZm8tPm1heF90eF9x dWV1ZXMgPSBQS09fTUFYX05VTV9EUTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDA7Cglk ZXZfaW5mby0+cGNpX2RldiA9IE5VTEw7CgoJZGV2X2luZm8tPmRlZmF1bHRfcnhjb25mID0gKHN0 cnVjdCBydGVfZXRoX3J4Y29uZikgewoJCS5yeF9mcmVlX3RocmVzaCA9IDAsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYzo2MTEKZXJy b3I6IGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jLi4u Ckh1bmsgIzEgc3VjY2VlZGVkIGF0IDUzMiAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgoJUE1EX0lOSVRfRlVOQ19UUkFDRShlZGV2KTsKCglkZXZfaW5mby0+cGNpX2RldiA9 IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9 ICh1aW50MzJfdClRRURFX01JTl9SWF9CVUZGX1NJWkU7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxl biA9ICh1aW50MzJfdClFVEhfVFhfTUFYX05PTl9MU09fUEtUX0xFTjsKCWRldl9pbmZvLT5yeF9k ZXNjX2xpbSA9IHFlZGVfcnhfZGVzY19saW07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTUxNQplcnJvcjogZHJpdmVycy9uZXQvcWVkZS9xZWRl X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9yaW5nL3J0ZV9ldGhfcmluZy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE1OSAob2Zmc2V0 IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2V0aGRldi5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXNmY19sb2dfaW5pdChzYSwgImVudHJ5Iik7 CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZv LT5tYXhfcnhfcGt0bGVuID0gRUZYX01BQ19QRFVfTUFYOwoKCS8qIEF1dG9uZWdvdGlhdGlvbiBt YXkgYmUgZGlzYWJsZWQgKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9z ZmNfZXRoZGV2LmM6ODkKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9l dGhfc3plZGF0YTIuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlzdHJ1Y3QgcnRl X2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsKCXN0cnVjdCBwbWRfaW50ZXJuYWxzICppbnRlcm5h bHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRI X0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5pZl9pbmRleCA9IDA7CglkZXZfaW5mby0+bWF4 X21hY19hZGRycyA9IDE7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9ICh1aW50MzJfdCktMTsK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhfc3plZGF0 YTIuYzoxMDMxCmVycm9yOiBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC9ydGVf ZXRoX3RhcC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1heF9y eF9xdWV1ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8tPm1heF90eF9xdWV1 ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0g MDsKCWRldl9pbmZvLT5wY2lfZGV2ID0gTlVMTDsKCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gdGFw X2Rldl9zcGVlZF9jYXBhKCk7CglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gdGFwX3J4X29m ZmxvYWRfZ2V0X3BvcnRfY2FwYSgpOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9IHRhcF90 eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L3RhcC9ydGVfZXRoX3RhcC5jOjY4OAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhf dGFwLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3Ro dW5kZXJ4L25pY3ZmX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCVBN RF9JTklUX0ZVTkNfVFJBQ0UoKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RP X1BDSShkZXYpOwoKCS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJsZWQgKi8KCWRldl9p bmZvLT5zcGVlZF9jYXBhID0gRVRIX0xJTktfU1BFRURfRklYRUQ7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzoxNDAwCmVycm9yOiBkcml2 ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQ RUVEXzEwRzsgLyogZmFrZSB2YWx1ZSAqLwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gZGV2LT5kZXZp Y2UgPyBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KSA6IE5VTEw7CglkZXZfaW5mby0+bWF4X3J4X3F1 ZXVlcyA9CgkJUlRFX01JTihody0+bWF4X3F1ZXVlX3BhaXJzLCBWSVJUSU9fTUFYX1JYX1FVRVVF Uyk7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jOjIwNTcKZXJyb3I6IGRyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKdm14bmV0M19kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs CgkJICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsKCWRldl9pbmZvLT5w Y2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CgoJZGV2X2luZm8tPm1heF9yeF9xdWV1 ZXMgPSBWTVhORVQzX01BWF9SWF9RVUVVRVM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IFZN WE5FVDNfTUFYX1RYX1FVRVVFUzsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3Zt eG5ldDMvdm14bmV0M19ldGhkZXYuYzoxMDI1CmVycm9yOiBkcml2ZXJzL25ldC92bXhuZXQzL3Zt eG5ldDNfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGV4YW1w bGVzL2V0aHRvb2wvbGliL3J0ZV9ldGh0b29sLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CnsKCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOwoJc3RydWN0IHJ0ZV9kZXZf cmVnX2luZm8gcmVnX2luZm87CglpbnQgbjsKCWludCByZXQ7CgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzoyMgplcnJvcjogZXhhbXBsZXMv ZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZXhhbXBsZXMvaXBfcGlwZWxpbmUvaW5pdC5jLi4uCmVycm9yOiBleGFtcGxlcy9pcF9w aXBlbGluZS9pbml0LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hlY2tpbmcgcGF0Y2gg ZXhhbXBsZXMva25pL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlpZiAo aSA9PSAwKSB7CgkJCXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgkJCXN0cnVjdCBydGVfZXRoX2Rl dl9pbmZvIGRldl9pbmZvOwoKCQkJbWVtc2V0KCZkZXZfaW5mbywgMCwgc2l6ZW9mKGRldl9pbmZv KSk7Ci0tCgkJCQljb25mLmlkID0gZGV2X2luZm8ucGNpX2Rldi0+aWQ7CgkJCX0KCQkJLyogR2V0 IHRoZSBpbnRlcmZhY2UgZGVmYXVsdCBtYWMgYWRkcmVzcyAqLwoJCQlydGVfZXRoX21hY2FkZHJf Z2V0KHBvcnRfaWQsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9rbmkvbWFpbi5jOjgz NAplcnJvcjogZXhhbXBsZXMva25pL21haW4uYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmguLi4KZXJyb3I6IGxpYi9saWJy dGVfZXRoZXIvcnRlX2V0aGRldi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CkNoZWNraW5n IHBhdGNoIHRlc3QvdGVzdC90ZXN0X2tuaS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJc3RydWN0IHJ0ZV9rbmlfY29uZiBjb25mOwoJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gaW5m bzsKCXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgoJaWYgKCFtcCkKCQlyZXR1cm4gLTE7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiB0ZXN0L3Rlc3QvdGVzdF9rbmkuYzozNTcKZXJyb3I6IHRlc3QvdGVz dC90ZXN0X2tuaS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQoqUmVwbzogZHBkay1uZXh0LW5ldApD aGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CnN0YXRpYyBpbnQKcG9ydF9yZWdfb2ZmX2lzX2ludmFsaWQocG9ydGlkX3QgcG9y dF9pZCwgdWludDMyX3QgcmVnX29mZikKewoJdWludDY0X3QgcGNpX2xlbjsKCglpZiAocmVnX29m ZiAmIDB4MykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjc1 NAplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgpzdGF0aWMgaW5saW5lIHVpbnQzMl90CnBvcnRfcGNpX3JlZ19yZWFkKHN0cnVjdCBy dGVfcG9ydCAqcG9ydCwgdWludDMyX3QgcmVnX29mZikKewoJdm9pZCAqcmVnX2FkZHI7Cgl1aW50 MzJfdCByZWdfdjsKLS0KCQkJcmVnX29mZik7CglyZWdfdiA9ICooKHZvbGF0aWxlIHVpbnQzMl90 ICopcmVnX2FkZHIpOwoJcmV0dXJuIHJ0ZV9sZV90b19jcHVfMzIocmVnX3YpOwp9CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oOjUwMAplcnJvcjogYXBwL3Rlc3Qt cG1kL3Rlc3RwbWQuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvYWZfcGFja2V0L3J0ZV9ldGhfYWZfcGFja2V0LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgMjk5IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Fyay9h cmtfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQlFVEhfTElOS19T UEVFRF80MEcgfAoJCQkJRVRIX0xJTktfU1BFRURfNTBHIHwKCQkJCUVUSF9MSU5LX1NQRUVEXzEw MEcpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKfQoKc3Rh dGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXJrL2Fya19ldGhkZXYu Yzo3NzEKZXJyb3I6IGRyaXZlcnMvbmV0L2Fyay9hcmtfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F2Zi9hdmZfZXRoZGV2LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgYXZmX2luZm8gKnZmID0gQVZGX0RFVl9Q UklWQVRFX1RPX1ZGKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCW1lbXNldChkZXZfaW5mbywg MCwgc2l6ZW9mKCpkZXZfaW5mbykpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9U T19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9x dWV1ZV9wYWlyczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9x dWV1ZV9wYWlyczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEFWRl9CVUZfU0laRV9NSU47 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9hdmYvYXZmX2V0aGRldi5jOjUwNwpl cnJvcjogZHJpdmVycy9uZXQvYXZmL2F2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKewoJc3RydWN0IGF2cF9kZXYgKmF2cCA9IEFWUF9ERVZfUFJJVkFU RV9UT19IVyhldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYg PSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9 IGF2cC0+bWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gYXZwLT5tYXhf dHhfcXVldWVzOwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gQVZQX01JTl9SWF9CVUZTSVpF OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYzoyMjA2 CmVycm9yOiBkcml2ZXJzL25ldC9hdnAvYXZwX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKYm54MnhfZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQp7CglzdHJ1Y3Qg Ym54Mnhfc29mdGMgKnNjID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCWRldl9pbmZvLT5wY2lf ZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyAg PSBzYy0+bWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzICA9IHNjLT5tYXhf dHhfcXVldWVzOwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gQk5YMlhfTUlOX1JYX0JVRl9T SVpFOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2 LmM6NDQ3CmVycm9yOiBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0aGRldi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdWludDE2X3QgbWF4X3ZuaWNzLCBpLCBq LCB2cG9vbCwgdnJ4cTsKCXVuc2lnbmVkIGludCBtYXhfcnhfcmluZ3M7CgoJZGV2X2luZm8tPnBj aV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJLyogTUFDIFNwZWNpZmljcyAq LwoJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBicC0+bWF4X2wyX2N0eDsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzo0MDcKZXJyb3I6IGRyaXZl cnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvY3hnYmUvY3hnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJLm5iX2FsaWduID0gMSwKCX07CgoJZGV2aWNlX2luZm8tPnBjaV9kZXYg PSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJZGV2aWNlX2luZm8tPm1pbl9yeF9idWZz aXplID0gQ1hHQkVfTUlOX1JYX0JVRlNJWkU7CglkZXZpY2VfaW5mby0+bWF4X3J4X3BrdGxlbiA9 IENYR0JFX01BWF9SWF9QS1RMRU47CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9j eGdiZS9jeGdiZV9ldGhkZXYuYzoxNDgKZXJyb3I6IGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0 aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9k cGFhL2RwYWFfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk3IChvZmZzZXQgNTIg bGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYy4u LgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxOTUgKG9mZnNldCAzMiBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2UxMDAwL2VtX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFco ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RF Vl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJT SVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0ZXIuICovCglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9 IGVtX2dldF9tYXhfcGt0bGVuKGh3KTsKCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gaHctPm1h Yy5yYXJfZW50cnlfY291bnQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAw MC9lbV9ldGhkZXYuYzoxMDQ4CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdi X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBf aHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7 CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZv LT5taW5fcnhfYnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJTSVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0 ZXIuICovCglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiAgPSAweDNGRkY7IC8qIFNlZSBSTFBNTCBy ZWdpc3Rlci4gKi8KCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50cnlf Y291bnQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2 LmM6MjE0NAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW5hX2RldiA9ICZhZGFwdGVyLT5lbmFfZGV2 OwoJZW5hX2Fzc2VydF9tc2coZW5hX2RldiAhPSBOVUxMLCAiVW5pbml0aWFsaXplZCBkZXZpY2Ui KTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoKCWRldl9p bmZvLT5zcGVlZF9jYXBhID0KCQkJRVRIX0xJTktfU1BFRURfMUcgICB8CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOjE1MjcKZXJyb3I6IGRyaXZlcnMv bmV0L2VuYS9lbmFfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCXN0cnVjdCBlbmljICplbmljID0gcG1kX3ByaXYoZXRoX2Rldik7CgoJRU5JQ1BNRF9G VU5DX1RSQUNFKCk7CglkZXZpY2VfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShl dGhfZGV2KTsKCS8qIFNjYXR0ZXJlZCBSeCB1c2VzIHR3byByZWNlaXZlIHF1ZXVlcyBwZXIgcngg cXVldWUgZXhwb3NlZCB0byBkcGRrICovCglkZXZpY2VfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGVu aWMtPmNvbmZfcnFfY291bnQgLyAyOwoJZGV2aWNlX2luZm8tPm1heF90eF9xdWV1ZXMgPSBlbmlj LT5jb25mX3dxX2NvdW50OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5pYy9l bmljX2V0aGRldi5jOjQ3MQplcnJvcjogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEw a19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglQTURfSU5JVF9GVU5D X1RSQUNFKCk7CgoJZGV2X2luZm8tPnBjaV9kZXYgICAgICAgICAgICA9IHBkZXY7CglkZXZfaW5m by0+bWluX3J4X2J1ZnNpemUgICAgID0gRk0xMEtfTUlOX1JYX0JVRl9TSVpFOwoJZGV2X2luZm8t Pm1heF9yeF9wa3RsZW4gICAgICA9IEZNMTBLX01BWF9QS1RfU0laRTsKCWRldl9pbmZvLT5tYXhf cnhfcXVldWVzICAgICAgPSBody0+bWFjLm1heF9xdWV1ZXM7CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYzoxMzc1CmVycm9yOiBkcml2ZXJzL25l dC9mbTEway9mbTEwa19ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJc3RydWN0IGk0MGVfdnNpICp2c2kgPSBwZi0+bWFpbl92c2k7CglzdHJ1Y3QgcnRl X3BjaV9kZXZpY2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCglkZXZfaW5m by0+cGNpX2RldiA9IHBjaV9kZXY7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IHZzaS0+bmJf cXBzOwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSB2c2ktPm5iX3FwczsKCWRldl9pbmZvLT5t aW5fcnhfYnVmc2l6ZSA9IEk0MEVfQlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjMyMDAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldl92Zi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJc3RydWN0IGk0MGVfdmYgKnZmID0gSTQwRVZGX0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5m bykpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9p bmZvLT5tYXhfcnhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9p bmZvLT5tYXhfdHhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9p bmZvLT5taW5fcnhfYnVmc2l6ZSA9IEk0MEVfQlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldl92Zi5jOjIxNjUKZXJyb3I6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXZfdmYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gSVhHQkVfREVWX1BSSVZBVEVf VE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CglzdHJ1Y3QgcnRlX2V0aF9jb25mICpkZXZf Y29uZiA9ICZkZXYtPmRhdGEtPmRldl9jb25mOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gcGNpX2Rl djsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3J4X3F1 ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3R4 X3F1ZXVlczsKCWlmIChSVEVfRVRIX0RFVl9TUklPVihkZXYpLmFjdGl2ZSA9PSAwKSB7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzozNTcyCmVy cm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IEtOSV9NQVhf UVVFVUVfUEVSX1BPUlQ7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVf UEVSX1BPUlQ7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAwOwoJZGV2X2luZm8tPnBjaV9k ZXYgPSBOVUxMOwp9CgpzdGF0aWMgaW50CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9rbmkvcnRlX2V0aF9rbmkuYzoyMDEKZXJyb3I6IGRyaXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tu aS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9saXF1 aWRpby9saW9fZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3Qg bGlvX2RldmljZSAqbGlvX2RldiA9IExJT19ERVYoZXRoX2Rldik7CglzdHJ1Y3QgcnRlX3BjaV9k ZXZpY2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJZGV2aW5mby0+ cGNpX2RldiA9IHBjaV9kZXY7CgoJc3dpdGNoIChwY2lfZGV2LT5pZC5zdWJzeXN0ZW1fZGV2aWNl X2lkKSB7CgkvKiBDTjIzeHggMTBHIGNhcmRzICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmM6MzczCmVycm9yOiBkcml2ZXJzL25ldC9saXF1 aWRpby9saW9fZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCXVuc2lnbmVkIGludCBtYXg7CgljaGFyIGlmbmFtZVtJRl9OQU1FU0laRV07CgoJaW5mby0+ cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJLyogRklYTUU6IHdlIHNob3VsZCBh c2sgdGhlIGRldmljZSBmb3IgdGhlc2UgdmFsdWVzLiAqLwoJaW5mby0+bWluX3J4X2J1ZnNpemUg PSAzMjsKCWluZm8tPm1heF9yeF9wa3RsZW4gPSA2NTUzNjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYzo1NTUKZXJyb3I6IGRyaXZlcnMvbmV0L21s eDQvbWx4NF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJdW5zaWduZWQgaW50IG1heDsKCWNoYXIgaWZuYW1lW0lGX05BTUVTSVpFXTsKCglpbmZvLT5w Y2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CgkvKiBGSVhNRTogd2Ugc2hvdWxkIGFz ayB0aGUgZGV2aWNlIGZvciB0aGVzZSB2YWx1ZXMuICovCglpbmZvLT5taW5fcnhfYnVmc2l6ZSA9 IDMyOwoJaW5mby0+bWF4X3J4X3BrdGxlbiA9IDY1NTM2OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jOjQwMwplcnJvcjogZHJpdmVycy9uZXQvbWx4 NS9tbHg1X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9tcnZsL21ydmxfZXRoZGV2LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L21ydmwvbXJ2 bF9ldGhkZXYuYzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9uZnAvbmZwX25ldC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCWh3 ID0gTkZQX05FVF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCglk ZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJZGV2X2luZm8tPm1h eF9yeF9xdWV1ZXMgPSAodWludDE2X3QpaHctPm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4 X3R4X3F1ZXVlcyA9ICh1aW50MTZfdClody0+bWF4X3R4X3F1ZXVlczsKCWRldl9pbmZvLT5taW5f cnhfYnVmc2l6ZSA9IEVUSEVSX01JTl9NVFU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9uZnAvbmZwX25ldC5jOjExNTkKZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfbmV0LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L251bGwvcnRl X2V0aF9udWxsLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk4IChvZmZzZXQgNiBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAx OwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBQS09fTUFYX05VTV9EUTsKCWRldl9pbmZvLT5t aW5fcnhfYnVmc2l6ZSA9IDA7CglkZXZfaW5mby0+cGNpX2RldiA9IE5VTEw7CgoJZGV2X2luZm8t PmRlZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4Y29uZikgewoJCS5yeF9mcmVlX3Ro cmVzaCA9IDAsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rl b250eF9ldGhkZXYuYzo2MTEKZXJyb3I6IGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0 aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9w Y2FwL3J0ZV9ldGhfcGNhcC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDUzMiAob2Zmc2V0IDYg bGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJUE1EX0lOSVRfRlVOQ19UUkFDRShlZGV2KTsK CglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsKCWRldl9p bmZvLT5taW5fcnhfYnVmc2l6ZSA9ICh1aW50MzJfdClRRURFX01JTl9SWF9CVUZGX1NJWkU7Cglk ZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9ICh1aW50MzJfdClFVEhfVFhfTUFYX05PTl9MU09fUEtU X0xFTjsKCWRldl9pbmZvLT5yeF9kZXNjX2xpbSA9IHFlZGVfcnhfZGVzY19saW07CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTUxNQplcnJvcjog ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9yaW5nL3J0ZV9ldGhfcmluZy5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDE1OSAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9zZmMvc2ZjX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXNmY19s b2dfaW5pdChzYSwgImVudHJ5Iik7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9U T19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gRUZYX01BQ19QRFVfTUFYOwoK CS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJsZWQgKi8KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmM6ODkKZXJyb3I6IGRyaXZlcnMvbmV0L3Nm Yy9zZmNfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhfc3plZGF0YTIuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQlzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsKCXN0cnVjdCBw bWRfaW50ZXJuYWxzICppbnRlcm5hbHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwoJZGV2X2lu Zm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5pZl9pbmRl eCA9IDA7CglkZXZfaW5mby0+bWF4X21hY19hZGRycyA9IDE7CglkZXZfaW5mby0+bWF4X3J4X3Br dGxlbiA9ICh1aW50MzJfdCktMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3N6 ZWRhdGEyL3J0ZV9ldGhfc3plZGF0YTIuYzoxMDMxCmVycm9yOiBkcml2ZXJzL25ldC9zemVkYXRh Mi9ydGVfZXRoX3N6ZWRhdGEyLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJ ZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2lu Zm8tPm1pbl9yeF9idWZzaXplID0gMDsKCWRldl9pbmZvLT5wY2lfZGV2ID0gTlVMTDsKCWRldl9p bmZvLT5zcGVlZF9jYXBhID0gdGFwX2Rldl9zcGVlZF9jYXBhKCk7CglkZXZfaW5mby0+cnhfb2Zm bG9hZF9jYXBhID0gdGFwX3J4X29mZmxvYWRfZ2V0X3BvcnRfY2FwYSgpOwoJZGV2X2luZm8tPnR4 X29mZmxvYWRfY2FwYSA9IHRhcF90eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jOjY4OAplcnJvcjogZHJp dmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoKCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsKCglkZXZfaW5mby0+cGNp X2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoKCS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkg YmUgZGlzYWJsZWQgKi8KCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gRVRIX0xJTktfU1BFRURfRklY RUQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhk ZXYuYzoxNDAwCmVycm9yOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglkZXZfaW5mby0+c3Bl ZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRzsgLyogZmFrZSB2YWx1ZSAqLwoKCWRldl9pbmZv LT5wY2lfZGV2ID0gZGV2LT5kZXZpY2UgPyBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KSA6IE5VTEw7 CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9CgkJUlRFX01JTihody0+bWF4X3F1ZXVlX3BhaXJz LCBWSVJUSU9fTUFYX1JYX1FVRVVFUyk7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jOjIwNTcK ZXJyb3I6IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKdm14bmV0M19kZXZfaW5mb19nZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCgkJICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2 X2luZm8pCnsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CgoJ ZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSBWTVhORVQzX01BWF9SWF9RVUVVRVM7CglkZXZfaW5m by0+bWF4X3R4X3F1ZXVlcyA9IFZNWE5FVDNfTUFYX1RYX1FVRVVFUzsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYzoxMDI1CmVycm9yOiBk cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2V0aHRvb2wvbGliL3J0ZV9ldGh0b29sLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9p bmZvOwoJc3RydWN0IHJ0ZV9kZXZfcmVnX2luZm8gcmVnX2luZm87CglpbnQgbjsKCWludCByZXQ7 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wu YzoyMgplcnJvcjogZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBfcGlwZWxpbmUvaW5pdC5jLi4u CmVycm9yOiBleGFtcGxlcy9pcF9waXBlbGluZS9pbml0LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMva25pL21haW4uYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQlpZiAoaSA9PSAwKSB7CgkJCXN0cnVjdCBydGVfa25pX29wcyBvcHM7 CgkJCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOwoKCQkJbWVtc2V0KCZkZXZfaW5m bywgMCwgc2l6ZW9mKGRldl9pbmZvKSk7Ci0tCgkJCQljb25mLmlkID0gZGV2X2luZm8ucGNpX2Rl di0+aWQ7CgkJCX0KCQkJLyogR2V0IHRoZSBpbnRlcmZhY2UgZGVmYXVsdCBtYWMgYWRkcmVzcyAq LwoJCQlydGVfZXRoX21hY2FkZHJfZ2V0KHBvcnRfaWQsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBl eGFtcGxlcy9rbmkvbWFpbi5jOjgzNAplcnJvcjogZXhhbXBsZXMva25pL21haW4uYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2 LmguLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIHRlc3QvdGVzdC90ZXN0X2tuaS5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJ0ZV9rbmlfY29uZiBjb25mOwoJc3RydWN0 IHJ0ZV9ldGhfZGV2X2luZm8gaW5mbzsKCXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgoJaWYgKCFt cCkKCQlyZXR1cm4gLTE7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiB0ZXN0L3Rlc3QvdGVzdF9rbmku YzozNTcKZXJyb3I6IHRlc3QvdGVzdC90ZXN0X2tuaS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQoq UmVwbzogZHBkay1uZXh0LWNyeXB0bwpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmln LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBpbnQKcG9ydF9yZWdfb2Zm X2lzX2ludmFsaWQocG9ydGlkX3QgcG9ydF9pZCwgdWludDMyX3QgcmVnX29mZikKewoJdWludDY0 X3QgcGNpX2xlbjsKCglpZiAocmVnX29mZiAmIDB4MykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjc1NAplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvdGVzdHBtZC5o Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMgaW5saW5lIHVpbnQzMl90CnBv cnRfcGNpX3JlZ19yZWFkKHN0cnVjdCBydGVfcG9ydCAqcG9ydCwgdWludDMyX3QgcmVnX29mZikK ewoJdm9pZCAqcmVnX2FkZHI7Cgl1aW50MzJfdCByZWdfdjsKLS0KCQkJcmVnX29mZik7CglyZWdf diA9ICooKHZvbGF0aWxlIHVpbnQzMl90ICopcmVnX2FkZHIpOwoJcmV0dXJuIHJ0ZV9sZV90b19j cHVfMzIocmVnX3YpOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvdGVzdHBt ZC5oOjUwMAplcnJvcjogYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaDogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYWZfcGFja2V0L3J0ZV9ldGhfYWZfcGFja2V0 LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk5IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2Fyay9hcmtfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJCQlFVEhfTElOS19TUEVFRF80MEcgfAoJCQkJRVRIX0xJTktfU1BFRURfNTBH IHwKCQkJCUVUSF9MSU5LX1NQRUVEXzEwMEcpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRI X0RFVl9UT19QQ0koZGV2KTsKfQoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvYXJrL2Fya19ldGhkZXYuYzo3NzEKZXJyb3I6IGRyaXZlcnMvbmV0L2Fyay9hcmtf ZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2F2Zi9hdmZfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3Qg YXZmX2luZm8gKnZmID0gQVZGX0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ZGF0YS0+ZGV2X3ByaXZh dGUpOwoKCW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5mbykpOwoJZGV2X2luZm8t PnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcXVl dWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5tYXhfdHhfcXVl dWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5taW5fcnhfYnVm c2l6ZSA9IEFWRl9CVUZfU0laRV9NSU47CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9hdmYvYXZmX2V0aGRldi5jOjUwNwplcnJvcjogZHJpdmVycy9uZXQvYXZmL2F2Zl9ldGhkZXYu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXZwL2F2 cF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJc3RydWN0IGF2cF9k ZXYgKmF2cCA9IEFWUF9ERVZfUFJJVkFURV9UT19IVyhldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7Cglk ZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGF2cC0+bWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5t YXhfdHhfcXVldWVzID0gYXZwLT5tYXhfdHhfcXVldWVzOwoJZGV2X2luZm8tPm1pbl9yeF9idWZz aXplID0gQVZQX01JTl9SWF9CVUZTSVpFOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvYXZwL2F2cF9ldGhkZXYuYzoyMjA2CmVycm9yOiBkcml2ZXJzL25ldC9hdnAvYXZwX2V0aGRl di5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibngy eC9ibngyeF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKYm54MnhfZGV2 X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2lu Zm8gKmRldl9pbmZvKQp7CglzdHJ1Y3QgYm54Mnhfc29mdGMgKnNjID0gZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7Cglk ZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyAgPSBzYy0+bWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5t YXhfdHhfcXVldWVzICA9IHNjLT5tYXhfdHhfcXVldWVzOwoJZGV2X2luZm8tPm1pbl9yeF9idWZz aXplID0gQk5YMlhfTUlOX1JYX0JVRl9TSVpFOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmM6NDQ3CmVycm9yOiBkcml2ZXJzL25ldC9ibngyeC9i bngyeF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvYm54dC9ibnh0X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ dWludDE2X3QgbWF4X3ZuaWNzLCBpLCBqLCB2cG9vbCwgdnJ4cTsKCXVuc2lnbmVkIGludCBtYXhf cnhfcmluZ3M7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rl dik7CgoJLyogTUFDIFNwZWNpZmljcyAqLwoJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBicC0+ bWF4X2wyX2N0eDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9l dGhkZXYuYzo0MDcKZXJyb3I6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY3hnYmUvY3hnYmVfZXRo ZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLm5iX2FsaWduID0gMSwKCX07 CgoJZGV2aWNlX2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJ ZGV2aWNlX2luZm8tPm1pbl9yeF9idWZzaXplID0gQ1hHQkVfTUlOX1JYX0JVRlNJWkU7CglkZXZp Y2VfaW5mby0+bWF4X3J4X3BrdGxlbiA9IENYR0JFX01BWF9SWF9QS1RMRU47CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYzoxNDgKZXJyb3I6IGRy aXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNj ZWVkZWQgYXQgMzEyIChvZmZzZXQgNjcgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9kcGFhMi9kcGFhMl9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxOTUgKG9mZnNl dCAzMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2VtX2V0aGRldi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0g RTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2lu Zm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5taW5fcnhf YnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJTSVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0ZXIuICovCglk ZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9IGVtX2dldF9tYXhfcGt0bGVuKGh3KTsKCWRldl9pbmZv LT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50cnlfY291bnQ7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYzoxMDQ4CmVycm9yOiBkcml2ZXJz L25ldC9lMTAwMC9lbV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFco ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RF Vl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJT SVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0ZXIuICovCglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiAg PSAweDNGRkY7IC8qIFNlZSBSTFBNTCByZWdpc3Rlci4gKi8KCWRldl9pbmZvLT5tYXhfbWFjX2Fk ZHJzID0gaHctPm1hYy5yYXJfZW50cnlfY291bnQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmM6MjE0NAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAv aWdiX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9lbmEvZW5hX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW5h X2RldiA9ICZhZGFwdGVyLT5lbmFfZGV2OwoJZW5hX2Fzc2VydF9tc2coZW5hX2RldiAhPSBOVUxM LCAiVW5pbml0aWFsaXplZCBkZXZpY2UiKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhf REVWX1RPX1BDSShkZXYpOwoKCWRldl9pbmZvLT5zcGVlZF9jYXBhID0KCQkJRVRIX0xJTktfU1BF RURfMUcgICB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRl di5jOjE1MjcKZXJyb3I6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBlbmljICplbmljID0gcG1kX3By aXYoZXRoX2Rldik7CgoJRU5JQ1BNRF9GVU5DX1RSQUNFKCk7CglkZXZpY2VfaW5mby0+cGNpX2Rl diA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsKCS8qIFNjYXR0ZXJlZCBSeCB1c2VzIHR3 byByZWNlaXZlIHF1ZXVlcyBwZXIgcnggcXVldWUgZXhwb3NlZCB0byBkcGRrICovCglkZXZpY2Vf aW5mby0+bWF4X3J4X3F1ZXVlcyA9IGVuaWMtPmNvbmZfcnFfY291bnQgLyAyOwoJZGV2aWNlX2lu Zm8tPm1heF90eF9xdWV1ZXMgPSBlbmljLT5jb25mX3dxX2NvdW50OwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jOjQ3MQplcnJvcjogZHJpdmVycy9u ZXQvZW5pYy9lbmljX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCglQTURfSU5JVF9GVU5DX1RSQUNFKCk7CgoJZGV2X2luZm8tPnBjaV9kZXYgICAg ICAgICAgICA9IHBkZXY7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgICAgID0gRk0xMEtfTUlO X1JYX0JVRl9TSVpFOwoJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gICAgICA9IEZNMTBLX01BWF9Q S1RfU0laRTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzICAgICAgPSBody0+bWFjLm1heF9xdWV1 ZXM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYu YzoxMzc1CmVycm9yOiBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGk0MGVfdnNpICp2c2kgPSBw Zi0+bWFpbl92c2k7CglzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RF Vl9UT19QQ0koZGV2KTsKCglkZXZfaW5mby0+cGNpX2RldiA9IHBjaV9kZXY7CglkZXZfaW5mby0+ bWF4X3J4X3F1ZXVlcyA9IHZzaS0+bmJfcXBzOwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSB2 c2ktPm5iX3FwczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEk0MEVfQlVGX1NJWkVfTUlO OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjMy MDAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldl92Zi5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IGk0MGVfdmYgKnZmID0gSTQwRVZG X0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCW1lbXNldChkZXZf aW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5mbykpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRI X0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gdmYtPnZzaV9yZXMt Pm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gdmYtPnZzaV9yZXMt Pm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEk0MEVfQlVGX1NJ WkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl dl92Zi5jOjIxNjUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXZfdmYuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgaXhnYmVfaHcg Kmh3ID0gSVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7Cglz dHJ1Y3QgcnRlX2V0aF9jb25mICpkZXZfY29uZiA9ICZkZXYtPmRhdGEtPmRldl9jb25mOwoKCWRl dl9pbmZvLT5wY2lfZGV2ID0gcGNpX2RldjsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gKHVp bnQxNl90KWh3LT5tYWMubWF4X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0g KHVpbnQxNl90KWh3LT5tYWMubWF4X3R4X3F1ZXVlczsKCWlmIChSVEVfRVRIX0RFVl9TUklPVihk ZXYpLmFjdGl2ZSA9PSAwKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9ldGhkZXYuYzozNTcyCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhk ZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQva25p L3J0ZV9ldGhfa25pLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+ bWF4X3J4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVSX1BPUlQ7CglkZXZfaW5mby0+bWF4X3R4 X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVSX1BPUlQ7CglkZXZfaW5mby0+bWluX3J4X2J1ZnNp emUgPSAwOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBOVUxMOwp9CgpzdGF0aWMgaW50CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYzoyMDEKZXJyb3I6IGRy aXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tuaS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgbGlvX2RldmljZSAqbGlvX2RldiA9IExJT19ERVYoZXRo X2Rldik7CglzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19Q Q0koZXRoX2Rldik7CgoJZGV2aW5mby0+cGNpX2RldiA9IHBjaV9kZXY7CgoJc3dpdGNoIChwY2lf ZGV2LT5pZC5zdWJzeXN0ZW1fZGV2aWNlX2lkKSB7CgkvKiBDTjIzeHggMTBHIGNhcmRzICovCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmM6Mzcz CmVycm9yOiBkcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVuc2lnbmVkIGludCBtYXg7CgljaGFyIGlmbmFt ZVtJRl9OQU1FU0laRV07CgoJaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYp OwoJLyogRklYTUU6IHdlIHNob3VsZCBhc2sgdGhlIGRldmljZSBmb3IgdGhlc2UgdmFsdWVzLiAq LwoJaW5mby0+bWluX3J4X2J1ZnNpemUgPSAzMjsKCWluZm8tPm1heF9yeF9wa3RsZW4gPSA2NTUz NjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYzo1 NTUKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdW5zaWduZWQgaW50IG1heDsKCWNoYXIgaWZuYW1l W0lGX05BTUVTSVpFXTsKCglpbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7 CgkvKiBGSVhNRTogd2Ugc2hvdWxkIGFzayB0aGUgZGV2aWNlIGZvciB0aGVzZSB2YWx1ZXMuICov CglpbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDMyOwoJaW5mby0+bWF4X3J4X3BrdGxlbiA9IDY1NTM2 OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jOjQw MwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tcnZsL21ydmxfZXRoZGV2LmMuLi4KZXJy b3I6IGRyaXZlcnMvbmV0L21ydmwvbXJ2bF9ldGhkZXYuYzogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX25ldC5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoKCWh3ID0gTkZQX05FVF9ERVZfUFJJVkFURV9UT19IVyhkZXYt PmRhdGEtPmRldl9wcml2YXRlKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RP X1BDSShkZXYpOwoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAodWludDE2X3QpaHctPm1heF9y eF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9ICh1aW50MTZfdClody0+bWF4X3R4 X3F1ZXVlczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEVUSEVSX01JTl9NVFU7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX25ldC5jOjExNTkKZXJyb3I6IGRy aXZlcnMvbmV0L25mcC9uZnBfbmV0LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgMjk4IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVv bnR4L29jdGVvbnR4X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2 X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAxOwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBQS09f TUFYX05VTV9EUTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDA7CglkZXZfaW5mby0+cGNp X2RldiA9IE5VTEw7CgoJZGV2X2luZm8tPmRlZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRo X3J4Y29uZikgewoJCS5yeF9mcmVlX3RocmVzaCA9IDAsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYzo2MTEKZXJyb3I6IGRyaXZlcnMv bmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDUzMiAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9xZWRlL3FlZGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJUE1E X0lOSVRfRlVOQ19UUkFDRShlZGV2KTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVW X1RPX1BDSShldGhfZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9ICh1aW50MzJfdClR RURFX01JTl9SWF9CVUZGX1NJWkU7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9ICh1aW50MzJf dClFVEhfVFhfTUFYX05PTl9MU09fUEtUX0xFTjsKCWRldl9pbmZvLT5yeF9kZXNjX2xpbSA9IHFl ZGVfcnhfZGVzY19saW07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9xZWRlL3Fl ZGVfZXRoZGV2LmM6MTUxNQplcnJvcjogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9yaW5nL3J0ZV9l dGhfcmluZy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE1OSAob2Zmc2V0IDYgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2V0aGRldi5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoKCXNmY19sb2dfaW5pdChzYSwgImVudHJ5Iik7CgoJZGV2X2luZm8t PnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhfcnhfcGt0 bGVuID0gRUZYX01BQ19QRFVfTUFYOwoKCS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJs ZWQgKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmM6 ODkKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhfc3plZGF0YTIu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5m byAqZGV2X2luZm8pCnsKCXN0cnVjdCBwbWRfaW50ZXJuYWxzICppbnRlcm5hbHMgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0ko ZGV2KTsKCWRldl9pbmZvLT5pZl9pbmRleCA9IDA7CglkZXZfaW5mby0+bWF4X21hY19hZGRycyA9 IDE7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9ICh1aW50MzJfdCktMTsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhfc3plZGF0YTIuYzoxMDMxCmVy cm9yOiBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSBS VEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8tPm1heF90eF9xdWV1ZXMgPSBSVEVfUE1E X1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gMDsKCWRldl9pbmZv LT5wY2lfZGV2ID0gTlVMTDsKCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gdGFwX2Rldl9zcGVlZF9j YXBhKCk7CglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gdGFwX3J4X29mZmxvYWRfZ2V0X3Bv cnRfY2FwYSgpOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9IHRhcF90eF9vZmZsb2FkX2dl dF9wb3J0X2NhcGEoKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC9ydGVf ZXRoX3RhcC5jOjY4OAplcnJvcjogZHJpdmVycy9uZXQvdGFwL3J0ZV9ldGhfdGFwLmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3Zm X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCVBNRF9JTklUX0ZVTkNf VFJBQ0UoKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoK CS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJsZWQgKi8KCWRldl9pbmZvLT5zcGVlZF9j YXBhID0gRVRIX0xJTktfU1BFRURfRklYRUQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzoxNDAwCmVycm9yOiBkcml2ZXJzL25ldC90aHVu ZGVyeC9uaWN2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRzsgLyog ZmFrZSB2YWx1ZSAqLwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gZGV2LT5kZXZpY2UgPyBSVEVfRVRI X0RFVl9UT19QQ0koZGV2KSA6IE5VTEw7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9CgkJUlRF X01JTihody0+bWF4X3F1ZXVlX3BhaXJzLCBWSVJUSU9fTUFYX1JYX1FVRVVFUyk7CglkZXZfaW5m by0+bWF4X3R4X3F1ZXVlcyA9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX2V0aGRldi5jOjIwNTcKZXJyb3I6IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f ZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK dm14bmV0M19kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCgkJICAgICBzdHJ1 Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRF X0VUSF9ERVZfVE9fUENJKGRldik7CgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSBWTVhORVQz X01BWF9SWF9RVUVVRVM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IFZNWE5FVDNfTUFYX1RY X1FVRVVFUzsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0 M19ldGhkZXYuYzoxMDI1CmVycm9yOiBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2V0aHRvb2wv bGliL3J0ZV9ldGh0b29sLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCXN0cnVj dCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOwoJc3RydWN0IHJ0ZV9kZXZfcmVnX2luZm8gcmVn X2luZm87CglpbnQgbjsKCWludCByZXQ7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMv ZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzoyMgplcnJvcjogZXhhbXBsZXMvZXRodG9vbC9saWIv cnRlX2V0aHRvb2wuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBs ZXMvaXBfcGlwZWxpbmUvaW5pdC5jLi4uCmVycm9yOiBleGFtcGxlcy9pcF9waXBlbGluZS9pbml0 LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMva25p L21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlpZiAoaSA9PSAwKSB7CgkJ CXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgkJCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9p bmZvOwoKCQkJbWVtc2V0KCZkZXZfaW5mbywgMCwgc2l6ZW9mKGRldl9pbmZvKSk7Ci0tCgkJCQlj b25mLmlkID0gZGV2X2luZm8ucGNpX2Rldi0+aWQ7CgkJCX0KCQkJLyogR2V0IHRoZSBpbnRlcmZh Y2UgZGVmYXVsdCBtYWMgYWRkcmVzcyAqLwoJCQlydGVfZXRoX21hY2FkZHJfZ2V0KHBvcnRfaWQs CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9rbmkvbWFpbi5jOjgzNAplcnJvcjogZXhh bXBsZXMva25pL21haW4uYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGli L2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmguLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRl X2V0aGRldi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIHRlc3Qv dGVzdC90ZXN0X2tuaS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJ0 ZV9rbmlfY29uZiBjb25mOwoJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gaW5mbzsKCXN0cnVjdCBy dGVfa25pX29wcyBvcHM7CgoJaWYgKCFtcCkKCQlyZXR1cm4gLTE7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiB0ZXN0L3Rlc3QvdGVzdF9rbmkuYzozNTcKZXJyb3I6IHRlc3QvdGVzdC90ZXN0X2tuaS5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQoqUmVwbzogZHBkay1uZXh0LXZpcnRpbwpDaGVja2luZyBw YXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CnN0YXRpYyBpbnQKcG9ydF9yZWdfb2ZmX2lzX2ludmFsaWQocG9ydGlkX3QgcG9ydF9pZCwgdWlu dDMyX3QgcmVnX29mZikKewoJdWludDY0X3QgcGNpX2xlbjsKCglpZiAocmVnX29mZiAmIDB4Mykg ewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjc1NAplcnJvcjog YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpz dGF0aWMgaW5saW5lIHVpbnQzMl90CnBvcnRfcGNpX3JlZ19yZWFkKHN0cnVjdCBydGVfcG9ydCAq cG9ydCwgdWludDMyX3QgcmVnX29mZikKewoJdm9pZCAqcmVnX2FkZHI7Cgl1aW50MzJfdCByZWdf djsKLS0KCQkJcmVnX29mZik7CglyZWdfdiA9ICooKHZvbGF0aWxlIHVpbnQzMl90ICopcmVnX2Fk ZHIpOwoJcmV0dXJuIHJ0ZV9sZV90b19jcHVfMzIocmVnX3YpOwp9CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oOjUwMAplcnJvcjogYXBwL3Rlc3QtcG1kL3Rlc3Rw bWQuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYWZf cGFja2V0L3J0ZV9ldGhfYWZfcGFja2V0LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk5IChv ZmZzZXQgNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Fyay9hcmtfZXRoZGV2 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQlFVEhfTElOS19TUEVFRF80MEcg fAoJCQkJRVRIX0xJTktfU1BFRURfNTBHIHwKCQkJCUVUSF9MSU5LX1NQRUVEXzEwMEcpOwoJZGV2 X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKfQoKc3RhdGljIGludAoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXJrL2Fya19ldGhkZXYuYzo3NzEKZXJy b3I6IGRyaXZlcnMvbmV0L2Fyay9hcmtfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F2Zi9hdmZfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgYXZmX2luZm8gKnZmID0gQVZGX0RFVl9QUklWQVRFX1RP X1ZGKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9m KCpkZXZfaW5mbykpOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2 KTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWly czsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWly czsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IEFWRl9CVUZfU0laRV9NSU47CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9hdmYvYXZmX2V0aGRldi5jOjUwNwplcnJvcjogZHJp dmVycy9uZXQvYXZmL2F2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKewoJc3RydWN0IGF2cF9kZXYgKmF2cCA9IEFWUF9ERVZfUFJJVkFURV9UT19IVyhl dGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRI X0RFVl9UT19QQ0koZXRoX2Rldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGF2cC0+bWF4 X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gYXZwLT5tYXhfdHhfcXVldWVz OwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gQVZQX01JTl9SWF9CVUZTSVpFOwoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYzoyMjA2CmVycm9yOiBk cml2ZXJzL25ldC9hdnAvYXZwX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKYm54MnhfZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQp7CglzdHJ1Y3QgYm54Mnhfc29m dGMgKnNjID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCWRldl9pbmZvLT5wY2lfZGV2ID0gUlRF X0VUSF9ERVZfVE9fUENJKGRldik7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyAgPSBzYy0+bWF4 X3J4X3F1ZXVlczsKCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzICA9IHNjLT5tYXhfdHhfcXVldWVz OwoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gQk5YMlhfTUlOX1JYX0JVRl9TSVpFOwoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmM6NDQ3CmVy cm9yOiBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0aGRldi5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdWludDE2X3QgbWF4X3ZuaWNzLCBpLCBqLCB2cG9vbCwg dnJ4cTsKCXVuc2lnbmVkIGludCBtYXhfcnhfcmluZ3M7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBS VEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJLyogTUFDIFNwZWNpZmljcyAqLwoJZGV2X2lu Zm8tPm1heF9tYWNfYWRkcnMgPSBicC0+bWF4X2wyX2N0eDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYzo0MDcKZXJyb3I6IGRyaXZlcnMvbmV0L2Ju eHQvYm54dF9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvY3hnYmUvY3hnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkJLm5iX2FsaWduID0gMSwKCX07CgoJZGV2aWNlX2luZm8tPnBjaV9kZXYgPSBSVEVfRVRI X0RFVl9UT19QQ0koZXRoX2Rldik7CgoJZGV2aWNlX2luZm8tPm1pbl9yeF9idWZzaXplID0gQ1hH QkVfTUlOX1JYX0JVRlNJWkU7CglkZXZpY2VfaW5mby0+bWF4X3J4X3BrdGxlbiA9IENYR0JFX01B WF9SWF9QS1RMRU47CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jeGdiZS9jeGdi ZV9ldGhkZXYuYzoxNDgKZXJyb3I6IGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0aGRldi5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFf ZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMzEyIChvZmZzZXQgNjcgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYy4uLgpIdW5rICMx IHN1Y2NlZWRlZCBhdCAxOTUgKG9mZnNldCAzMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2UxMDAwL2VtX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7 CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0ko ZGV2KTsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJTSVpFIGZpZWxk IG9mIFJDVEwgcmVnaXN0ZXIuICovCglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9IGVtX2dldF9t YXhfcGt0bGVuKGh3KTsKCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50 cnlfY291bnQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhk ZXYuYzoxMDQ4CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0g RTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJZGV2X2lu Zm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5taW5fcnhf YnVmc2l6ZSA9IDI1NjsgLyogU2VlIEJTSVpFIGZpZWxkIG9mIFJDVEwgcmVnaXN0ZXIuICovCglk ZXZfaW5mby0+bWF4X3J4X3BrdGxlbiAgPSAweDNGRkY7IC8qIFNlZSBSTFBNTCByZWdpc3Rlci4g Ki8KCWRldl9pbmZvLT5tYXhfbWFjX2FkZHJzID0gaHctPm1hYy5yYXJfZW50cnlfY291bnQ7Cgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmM6MjE0NApl cnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJZW5hX2RldiA9ICZhZGFwdGVyLT5lbmFfZGV2OwoJZW5hX2Fz c2VydF9tc2coZW5hX2RldiAhPSBOVUxMLCAiVW5pbml0aWFsaXplZCBkZXZpY2UiKTsKCglkZXZf aW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoKCWRldl9pbmZvLT5zcGVl ZF9jYXBhID0KCQkJRVRIX0xJTktfU1BFRURfMUcgICB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOjE1MjcKZXJyb3I6IGRyaXZlcnMvbmV0L2VuYS9l bmFfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2VuaWMvZW5pY19ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0 cnVjdCBlbmljICplbmljID0gcG1kX3ByaXYoZXRoX2Rldik7CgoJRU5JQ1BNRF9GVU5DX1RSQUNF KCk7CglkZXZpY2VfaW5mby0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsK CS8qIFNjYXR0ZXJlZCBSeCB1c2VzIHR3byByZWNlaXZlIHF1ZXVlcyBwZXIgcnggcXVldWUgZXhw b3NlZCB0byBkcGRrICovCglkZXZpY2VfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IGVuaWMtPmNvbmZf cnFfY291bnQgLyAyOwoJZGV2aWNlX2luZm8tPm1heF90eF9xdWV1ZXMgPSBlbmljLT5jb25mX3dx X2NvdW50OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRl di5jOjQ3MQplcnJvcjogZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglQTURfSU5JVF9GVU5DX1RSQUNFKCk7 CgoJZGV2X2luZm8tPnBjaV9kZXYgICAgICAgICAgICA9IHBkZXY7CglkZXZfaW5mby0+bWluX3J4 X2J1ZnNpemUgICAgID0gRk0xMEtfTUlOX1JYX0JVRl9TSVpFOwoJZGV2X2luZm8tPm1heF9yeF9w a3RsZW4gICAgICA9IEZNMTBLX01BWF9QS1RfU0laRTsKCWRldl9pbmZvLT5tYXhfcnhfcXVldWVz ICAgICAgPSBody0+bWFjLm1heF9xdWV1ZXM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9mbTEway9mbTEwa19ldGhkZXYuYzoxMzc1CmVycm9yOiBkcml2ZXJzL25ldC9mbTEway9m bTEwa19ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ c3RydWN0IGk0MGVfdnNpICp2c2kgPSBwZi0+bWFpbl92c2k7CglzdHJ1Y3QgcnRlX3BjaV9kZXZp Y2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCglkZXZfaW5mby0+cGNpX2Rl diA9IHBjaV9kZXY7CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IHZzaS0+bmJfcXBzOwoJZGV2 X2luZm8tPm1heF90eF9xdWV1ZXMgPSB2c2ktPm5iX3FwczsKCWRldl9pbmZvLT5taW5fcnhfYnVm c2l6ZSA9IEk0MEVfQlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjMyMDAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldl92Zi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3Ry dWN0IGk0MGVfdmYgKnZmID0gSTQwRVZGX0RFVl9QUklWQVRFX1RPX1ZGKGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGUpOwoKCW1lbXNldChkZXZfaW5mbywgMCwgc2l6ZW9mKCpkZXZfaW5mbykpOwoJZGV2 X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5tYXhf cnhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5tYXhf dHhfcXVldWVzID0gdmYtPnZzaV9yZXMtPm51bV9xdWV1ZV9wYWlyczsKCWRldl9pbmZvLT5taW5f cnhfYnVmc2l6ZSA9IEk0MEVfQlVGX1NJWkVfTUlOOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldl92Zi5jOjIxNjUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXZfdmYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gSVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2 LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CglzdHJ1Y3QgcnRlX2V0aF9jb25mICpkZXZfY29uZiA9ICZk ZXYtPmRhdGEtPmRldl9jb25mOwoKCWRldl9pbmZvLT5wY2lfZGV2ID0gcGNpX2RldjsKCWRldl9p bmZvLT5tYXhfcnhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3J4X3F1ZXVlczsKCWRl dl9pbmZvLT5tYXhfdHhfcXVldWVzID0gKHVpbnQxNl90KWh3LT5tYWMubWF4X3R4X3F1ZXVlczsK CWlmIChSVEVfRVRIX0RFVl9TUklPVihkZXYpLmFjdGl2ZSA9PSAwKSB7CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzozNTcyCmVycm9yOiBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWF4X3J4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVS X1BPUlQ7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IEtOSV9NQVhfUVVFVUVfUEVSX1BPUlQ7 CglkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAwOwoJZGV2X2luZm8tPnBjaV9kZXYgPSBOVUxM Owp9CgpzdGF0aWMgaW50CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9rbmkvcnRl X2V0aF9rbmkuYzoyMDEKZXJyb3I6IGRyaXZlcnMvbmV0L2tuaS9ydGVfZXRoX2tuaS5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9saXF1aWRpby9saW9f ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgbGlvX2Rldmlj ZSAqbGlvX2RldiA9IExJT19ERVYoZXRoX2Rldik7CglzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBj aV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7CgoJZGV2aW5mby0+cGNpX2RldiA9 IHBjaV9kZXY7CgoJc3dpdGNoIChwY2lfZGV2LT5pZC5zdWJzeXN0ZW1fZGV2aWNlX2lkKSB7Cgkv KiBDTjIzeHggMTBHIGNhcmRzICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9s aXF1aWRpby9saW9fZXRoZGV2LmM6MzczCmVycm9yOiBkcml2ZXJzL25ldC9saXF1aWRpby9saW9f ZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L21seDQvbWx4NF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVuc2ln bmVkIGludCBtYXg7CgljaGFyIGlmbmFtZVtJRl9OQU1FU0laRV07CgoJaW5mby0+cGNpX2RldiA9 IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJLyogRklYTUU6IHdlIHNob3VsZCBhc2sgdGhlIGRl dmljZSBmb3IgdGhlc2UgdmFsdWVzLiAqLwoJaW5mby0+bWluX3J4X2J1ZnNpemUgPSAzMjsKCWlu Zm8tPm1heF9yeF9wa3RsZW4gPSA2NTUzNjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L21seDQvbWx4NF9ldGhkZXYuYzo1NTUKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9l dGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdW5zaWdu ZWQgaW50IG1heDsKCWNoYXIgaWZuYW1lW0lGX05BTUVTSVpFXTsKCglpbmZvLT5wY2lfZGV2ID0g UlRFX0VUSF9ERVZfVE9fUENJKGRldik7CgkvKiBGSVhNRTogd2Ugc2hvdWxkIGFzayB0aGUgZGV2 aWNlIGZvciB0aGVzZSB2YWx1ZXMuICovCglpbmZvLT5taW5fcnhfYnVmc2l6ZSA9IDMyOwoJaW5m by0+bWF4X3J4X3BrdGxlbiA9IDY1NTM2OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2V0aGRldi5jOjQwMwplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0 aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9t cnZsL21ydmxfZXRoZGV2LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L21ydmwvbXJ2bF9ldGhkZXYu YzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9u ZnAvbmZwX25ldC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCWh3ID0gTkZQX05F VF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCglkZXZfaW5mby0+ cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShkZXYpOwoJZGV2X2luZm8tPm1heF9yeF9xdWV1 ZXMgPSAodWludDE2X3QpaHctPm1heF9yeF9xdWV1ZXM7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVl cyA9ICh1aW50MTZfdClody0+bWF4X3R4X3F1ZXVlczsKCWRldl9pbmZvLT5taW5fcnhfYnVmc2l6 ZSA9IEVUSEVSX01JTl9NVFU7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAv bmZwX25ldC5jOjExNTkKZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfbmV0LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxs LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjk4IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1heF9yeF9xdWV1ZXMgPSAxOwoJZGV2X2lu Zm8tPm1heF90eF9xdWV1ZXMgPSBQS09fTUFYX05VTV9EUTsKCWRldl9pbmZvLT5taW5fcnhfYnVm c2l6ZSA9IDA7CglkZXZfaW5mby0+cGNpX2RldiA9IE5VTEw7CgoJZGV2X2luZm8tPmRlZmF1bHRf cnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4Y29uZikgewoJCS5yeF9mcmVlX3RocmVzaCA9IDAs CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhk ZXYuYzo2MTEKZXJyb3I6IGRyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9wY2FwL3J0ZV9l dGhfcGNhcC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDUzMiAob2Zmc2V0IDYgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgoJUE1EX0lOSVRfRlVOQ19UUkFDRShlZGV2KTsKCglkZXZfaW5m by0+cGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2KTsKCWRldl9pbmZvLT5taW5f cnhfYnVmc2l6ZSA9ICh1aW50MzJfdClRRURFX01JTl9SWF9CVUZGX1NJWkU7CglkZXZfaW5mby0+ bWF4X3J4X3BrdGxlbiA9ICh1aW50MzJfdClFVEhfVFhfTUFYX05PTl9MU09fUEtUX0xFTjsKCWRl dl9pbmZvLT5yeF9kZXNjX2xpbSA9IHFlZGVfcnhfZGVzY19saW07CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTUxNQplcnJvcjogZHJpdmVycy9u ZXQvcWVkZS9xZWRlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9yaW5nL3J0ZV9ldGhfcmluZy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0 IDE1OSAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2Zj X2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXNmY19sb2dfaW5pdChz YSwgImVudHJ5Iik7CgoJZGV2X2luZm8tPnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2 KTsKCWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gRUZYX01BQ19QRFVfTUFYOwoKCS8qIEF1dG9u ZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJsZWQgKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L3NmYy9zZmNfZXRoZGV2LmM6ODkKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZXRo ZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3N6 ZWRhdGEyL3J0ZV9ldGhfc3plZGF0YTIuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CQlzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsKCXN0cnVjdCBwbWRfaW50ZXJu YWxzICppbnRlcm5hbHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwoJZGV2X2luZm8tPnBjaV9k ZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsKCWRldl9pbmZvLT5pZl9pbmRleCA9IDA7Cglk ZXZfaW5mby0+bWF4X21hY19hZGRycyA9IDE7CglkZXZfaW5mby0+bWF4X3J4X3BrdGxlbiA9ICh1 aW50MzJfdCktMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0 ZV9ldGhfc3plZGF0YTIuYzoxMDMxCmVycm9yOiBkcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRo X3N6ZWRhdGEyLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3RhcC9ydGVfZXRoX3RhcC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2 X2luZm8tPm1heF9yeF9xdWV1ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8t Pm1heF90eF9xdWV1ZXMgPSBSVEVfUE1EX1RBUF9NQVhfUVVFVUVTOwoJZGV2X2luZm8tPm1pbl9y eF9idWZzaXplID0gMDsKCWRldl9pbmZvLT5wY2lfZGV2ID0gTlVMTDsKCWRldl9pbmZvLT5zcGVl ZF9jYXBhID0gdGFwX2Rldl9zcGVlZF9jYXBhKCk7CglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBh ID0gdGFwX3J4X29mZmxvYWRfZ2V0X3BvcnRfY2FwYSgpOwoJZGV2X2luZm8tPnR4X29mZmxvYWRf Y2FwYSA9IHRhcF90eF9vZmZsb2FkX2dldF9wb3J0X2NhcGEoKTsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jOjY4OAplcnJvcjogZHJpdmVycy9uZXQv dGFwL3J0ZV9ldGhfdGFwLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoKCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsKCglkZXZfaW5mby0+cGNpX2RldiA9IFJU RV9FVEhfREVWX1RPX1BDSShkZXYpOwoKCS8qIEF1dG9uZWdvdGlhdGlvbiBtYXkgYmUgZGlzYWJs ZWQgKi8KCWRldl9pbmZvLT5zcGVlZF9jYXBhID0gRVRIX0xJTktfU1BFRURfRklYRUQ7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzoxNDAw CmVycm9yOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglkZXZfaW5mby0+c3BlZWRfY2FwYSA9 IEVUSF9MSU5LX1NQRUVEXzEwRzsgLyogZmFrZSB2YWx1ZSAqLwoKCWRldl9pbmZvLT5wY2lfZGV2 ID0gZGV2LT5kZXZpY2UgPyBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KSA6IE5VTEw7CglkZXZfaW5m by0+bWF4X3J4X3F1ZXVlcyA9CgkJUlRFX01JTihody0+bWF4X3F1ZXVlX3BhaXJzLCBWSVJUSU9f TUFYX1JYX1FVRVVFUyk7CglkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jOjIwNTcKZXJyb3I6IGRy aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKdm14bmV0M19kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsCgkJICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCnsK CWRldl9pbmZvLT5wY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7CgoJZGV2X2luZm8t Pm1heF9yeF9xdWV1ZXMgPSBWTVhORVQzX01BWF9SWF9RVUVVRVM7CglkZXZfaW5mby0+bWF4X3R4 X3F1ZXVlcyA9IFZNWE5FVDNfTUFYX1RYX1FVRVVFUzsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYzoxMDI1CmVycm9yOiBkcml2ZXJzL25l dC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL2V0aHRvb2wvbGliL3J0ZV9ldGh0b29sLmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CnsKCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOwoJc3Ry dWN0IHJ0ZV9kZXZfcmVnX2luZm8gcmVnX2luZm87CglpbnQgbjsKCWludCByZXQ7CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzoyMgplcnJv cjogZXhhbXBsZXMvZXRodG9vbC9saWIvcnRlX2V0aHRvb2wuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBfcGlwZWxpbmUvaW5pdC5jLi4uCmVycm9yOiBl eGFtcGxlcy9pcF9waXBlbGluZS9pbml0LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hl Y2tpbmcgcGF0Y2ggZXhhbXBsZXMva25pL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQlpZiAoaSA9PSAwKSB7CgkJCXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgkJCXN0cnVj dCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZvOwoKCQkJbWVtc2V0KCZkZXZfaW5mbywgMCwgc2l6 ZW9mKGRldl9pbmZvKSk7Ci0tCgkJCQljb25mLmlkID0gZGV2X2luZm8ucGNpX2Rldi0+aWQ7CgkJ CX0KCQkJLyogR2V0IHRoZSBpbnRlcmZhY2UgZGVmYXVsdCBtYWMgYWRkcmVzcyAqLwoJCQlydGVf ZXRoX21hY2FkZHJfZ2V0KHBvcnRfaWQsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9r bmkvbWFpbi5jOjgzNAplcnJvcjogZXhhbXBsZXMva25pL21haW4uYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmguLi4KZXJy b3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CkNoZWNraW5nIHBhdGNoIHRlc3QvdGVzdC90ZXN0X2tuaS5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJ0ZV9rbmlfY29uZiBjb25mOwoJc3RydWN0IHJ0ZV9ldGhf ZGV2X2luZm8gaW5mbzsKCXN0cnVjdCBydGVfa25pX29wcyBvcHM7CgoJaWYgKCFtcCkKCQlyZXR1 cm4gLTE7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiB0ZXN0L3Rlc3QvdGVzdF9rbmkuYzozNTcKZXJy b3I6IHRlc3QvdGVzdC90ZXN0X2tuaS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQoKRFBESyBTVFYg dGVhbQ== --===============3286804877020476311==--