From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 2/2] drm/i915: Pass in intel_gt at some for_each_engine sites Date: Thu, 17 Oct 2019 10:45:00 +0100 Message-ID: <20191017094500.21831-2-tvrtko.ursulin@linux.intel.com> References: <20191017094500.21831-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 232F86EA31 for ; Thu, 17 Oct 2019 09:45:07 +0000 (UTC) In-Reply-To: <20191017094500.21831-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldoZXJlIHRo ZSBmdW5jdGlvbiwgb3IgY29kZSBzZWdtZW50LCBvcGVyYXRlcyBvbiBpbnRlbF9ndCwgd2UgbmVl ZCB0bwpzdGFydCBwYXNzaW5nIGl0IGluc3RlYWQgb2YgaTkxNSB0byBmb3JfZWFjaF9lbmdpbmUo X21hc2tlZCkuCgpUaGlzIGlzIGFub3RoZXIgcGFydGlhbCBzdGVwIGluIG1pZ3JhdGlvbiBvZiBp OTE1LT5lbmdpbmVzW10gdG8KZ3QtPmVuZ2luZXNbXS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYyAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Qu YyAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3Bt LmMgICAgICAgICB8ICA4ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3Jl cXVlc3RzLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hl Y2suYyAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyAg ICAgICAgIHwgMTggKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9j b250ZXh0LmMgICAgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2Vu Z2luZV9wbS5jICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5n Y2hlY2suYyAgfCAyMCArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF9scmMuYyAgICAgICAgfCAzOCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYyAgIHwgIDggKystLQogLi4uL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jICAgIHwgMTAgKystLS0KIC4uLi9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jICAgIHwgIDQgKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDY3 IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX2NzLmMKaW5kZXggZTkzYjVjNjc5YzRmLi42NWFiNDk5MDYwNGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0xMTIxLDcgKzExMjEs NyBAQCBib29sIGludGVsX2VuZ2luZXNfYXJlX2lkbGUoc3RydWN0IGludGVsX2d0ICpndCkKIAlp ZiAoIVJFQURfT05DRShndC0+YXdha2UpKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0 LCBpZCkgewogCQlpZiAoIWludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCiAJCQlyZXR1cm4g ZmFsc2U7CiAJfQpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVzX3Jlc2V0 X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dCwgaWQpCiAJCWVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbihlbmdpbmUpOwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYwppbmRleCBjOTliNmIyZjM4YzIuLjFjNGI2Yzk2NDJh ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jCkBAIC0xOTcsNyArMTk3LDcgQEAgc3Rh dGljIHZvaWQgZ2VuNl9jaGVja19mYXVsdHMoc3RydWN0IGludGVsX2d0ICpndCkKIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKIAl1MzIgZmF1bHQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJ ZmF1bHQgPSBHRU42X1JJTkdfRkFVTFRfUkVHX1JFQUQoZW5naW5lKTsKIAkJaWYgKGZhdWx0ICYg UklOR19GQVVMVF9WQUxJRCkgewogCQkJRFJNX0RFQlVHX0RSSVZFUigiVW5leHBlY3RlZCBmYXVs dFxuIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMKaW5kZXggYmQxYmQzZTAwYTk0 Li5iODY2ZDViMWVlZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2d0X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYwpAQCAt MTM2LDE2ICsxMzYsMTYgQEAgdm9pZCBpbnRlbF9ndF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0LCBib29sIGZvcmNlKQogCiAJaW50ZWxfdWNfc2FuaXRpemUoJmd0LT51Yyk7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZ3QsIGlkKQogCQlpZiAoZW5naW5lLT5yZXNldC5wcmVwYXJlKQogCQkJZW5naW5lLT5yZXNl dC5wcmVwYXJlKGVuZ2luZSk7CiAKIAlpZiAocmVzZXRfZW5naW5lcyhndCkgfHwgZm9yY2UpIHsK LQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCQlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBndCwgaWQpCiAJCQlfX2ludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIGZhbHNl KTsKIAl9CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKQogCQlpZiAoZW5naW5lLT5yZXNldC5maW5pc2gpCiAJ CQllbmdpbmUtPnJlc2V0LmZpbmlzaChlbmdpbmUpOwogfQpAQCAtMTc3LDcgKzE3Nyw3IEBAIGlu dCBpbnRlbF9ndF9yZXN1bWUoc3RydWN0IGludGVsX2d0ICpndCkKIAlpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX2dldChndC0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAlpbnRlbF9yYzZfc2FuaXRp emUoJmd0LT5yYzYpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7 CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZTsKIAogCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9yZXF1ZXN0cy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcmVxdWVzdHMuYwppbmRleCBjYmI0MDY5YjExZTEuLmI3MzIy OWE4NGQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcmVx dWVzdHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9yZXF1ZXN0cy5j CkBAIC0yNSw3ICsyNSw3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX3N1Ym1pc3Npb24oc3RydWN0IGlu dGVsX2d0ICpndCkKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQp CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKQogCQlpbnRlbF9lbmdpbmVfZmx1c2hf c3VibWlzc2lvbihlbmdpbmUpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hh bmdjaGVjay5jCmluZGV4IGIyYWY3Mzk4NGY5My4uMGZkZWYwMGFmOWU0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYwpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRp YyB2b2lkIGhhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkgKi8K IAlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihndC0+dW5jb3JlKTsK IAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaGFuZ2NoZWNrIGhjOwogCiAJCWludGVs X2VuZ2luZV9icmVhZGNydW1ic19pcnEoZW5naW5lKTsKQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0 aWMgdm9pZCBoYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYg KEdFTV9TSE9XX0RFQlVHKCkgJiYgKGh1bmcgfCBzdHVjaykpIHsKIAkJc3RydWN0IGRybV9wcmlu dGVyIHAgPSBkcm1fZGVidWdfcHJpbnRlcigiaGFuZ2NoZWNrIik7CiAKLQkJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0 LCBpZCkgewogCQkJaWYgKGludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCiAJCQkJY29udGlu dWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4IGIxOTFiMDc0NTcw My4uYmY4ZDFlZDRiMWQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yZXNldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKQEAg LTY4Miw3ICs2ODIsNyBAQCBzdGF0aWMgaW50ZWxfZW5naW5lX21hc2tfdCByZXNldF9wcmVwYXJl KHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJaW50ZWxfZW5naW5lX21hc2tfdCBhd2FrZSA9IDA7CiAJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+ aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJaWYgKGlu dGVsX2VuZ2luZV9wbV9nZXRfaWZfYXdha2UoZW5naW5lKSkKIAkJCWF3YWtlIHw9IGVuZ2luZS0+ bWFzazsKIAkJcmVzZXRfcHJlcGFyZV9lbmdpbmUoZW5naW5lKTsKQEAgLTcxMiw3ICs3MTIsNyBA QCBzdGF0aWMgaW50IGd0X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGludGVsX2VuZ2luZV9t YXNrX3Qgc3RhbGxlZF9tYXNrKQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg Z3QsIGlkKQogCQlfX2ludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIHN0YWxsZWRfbWFzayAmIGVu Z2luZS0+bWFzayk7CiAKIAlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhndC0+Z2d0dCk7CkBAIC03 MzMsNyArNzMzLDcgQEAgc3RhdGljIHZvaWQgcmVzZXRfZmluaXNoKHN0cnVjdCBpbnRlbF9ndCAq Z3QsIGludGVsX2VuZ2luZV9tYXNrX3QgYXdha2UpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7 CiAJCXJlc2V0X2ZpbmlzaF9lbmdpbmUoZW5naW5lKTsKIAkJaWYgKGF3YWtlICYgZW5naW5lLT5t YXNrKQogCQkJaW50ZWxfZW5naW5lX3BtX3B1dChlbmdpbmUpOwpAQCAtNzY5LDcgKzc2OSw3IEBA IHN0YXRpYyB2b2lkIF9faW50ZWxfZ3Rfc2V0X3dlZGdlZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQog CWlmIChHRU1fU0hPV19ERUJVRygpICYmICFpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKGd0KSkgewog CQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKF9fZnVuY19fKTsKIAot CQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGd0LCBpZCkKIAkJCWludGVsX2VuZ2luZV9kdW1wKGVuZ2luZSwgJnAsICIlc1xu IiwgZW5naW5lLT5uYW1lKTsKIAl9CiAKQEAgLTc4Niw3ICs3ODYsNyBAQCBzdGF0aWMgdm9pZCBf X2ludGVsX2d0X3NldF93ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCkKIAlpZiAoIUlOVEVMX0lO Rk8oZ3QtPmk5MTUpLT5ncHVfcmVzZXRfY2xvYmJlcnNfZGlzcGxheSkKIAkJX19pbnRlbF9ndF9y ZXNldChndCwgQUxMX0VOR0lORVMpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5 MTUsIGlkKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkKIAkJZW5naW5lLT5zdWJt aXRfcmVxdWVzdCA9IG5vcF9zdWJtaXRfcmVxdWVzdDsKIAogCS8qCkBAIC03OTgsNyArNzk4LDcg QEAgc3RhdGljIHZvaWQgX19pbnRlbF9ndF9zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3Qp CiAJc2V0X2JpdChJOTE1X1dFREdFRCwgJmd0LT5yZXNldC5mbGFncyk7CiAKIAkvKiBNYXJrIGFs bCBleGVjdXRpbmcgcmVxdWVzdHMgYXMgc2tpcHBlZCAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LT5pOTE1LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWVu Z2luZS0+Y2FuY2VsX3JlcXVlc3RzKGVuZ2luZSk7CiAKIAlyZXNldF9maW5pc2goZ3QsIGF3YWtl KTsKQEAgLTkzNCw3ICs5MzQsNyBAQCBzdGF0aWMgaW50IHJlc3VtZShzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0KQogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCWludCByZXQ7CiAKLQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dCwgaWQpIHsKIAkJcmV0ID0gZW5naW5lLT5yZXN1bWUoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJ CXJldHVybiByZXQ7CkBAIC0xMjM0LDcgKzEyMzQsNyBAQCB2b2lkIGludGVsX2d0X2hhbmRsZV9l cnJvcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCXN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQoKTsK IAogCS8qIFByZXZlbnQgYW55IG90aGVyIHJlc2V0LWVuZ2luZSBhdHRlbXB0LiAqLwotCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCB0bXApIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBndCwgdG1wKSB7CiAJCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfRU5H SU5FICsgZW5naW5lLT5pZCwKIAkJCQkJJmd0LT5yZXNldC5mbGFncykpCiAJCQl3YWl0X29uX2Jp dCgmZ3QtPnJlc2V0LmZsYWdzLApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgdm9pZCBpbnRlbF9ndF9o YW5kbGVfZXJyb3Ioc3RydWN0IGludGVsX2d0ICpndCwKIAogCWludGVsX2d0X3Jlc2V0X2dsb2Jh bChndCwgZW5naW5lX21hc2ssIG1zZyk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+ aTkxNSwgdG1wKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCB0bXApCiAJCWNsZWFyX2Jp dF91bmxvY2soSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAogCQkJCSAmZ3QtPnJlc2V0 LmZsYWdzKTsKIAljbGVhcl9iaXRfdW5sb2NrKEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNl dC5mbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9j b250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9jb250ZXh0LmMKaW5k ZXggN2M4MzhhNTdlMTc0Li5mNjNhMjZhM2U2MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9jb250ZXh0LmMKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW50IGxpdmVf Y29udGV4dF9zaXplKHZvaWQgKmFyZykKIAlpZiAoSVNfRVJSKGZpeG1lKSkKIAkJcmV0dXJuIFBU Ul9FUlIoZml4bWUpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7 CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXN0cnVjdCB7CiAJCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7CiAJCQl2b2lkICpwaW5uZWQ7CkBAIC0zMDUs NyArMzA1LDcgQEAgc3RhdGljIGludCBsaXZlX2FjdGl2ZV9jb250ZXh0KHZvaWQgKmFyZykKIAkJ Z290byBvdXRfZmlsZTsKIAl9CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwg aWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJZXJyID0gX19saXZl X2FjdGl2ZV9jb250ZXh0KGVuZ2luZSwgZml4bWUpOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CkBA IC00MTUsNyArNDE1LDcgQEAgc3RhdGljIGludCBsaXZlX3JlbW90ZV9jb250ZXh0KHZvaWQgKmFy ZykKIAkJZ290byBvdXRfZmlsZTsKIAl9CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+ aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJZXJyID0g X19saXZlX3JlbW90ZV9jb250ZXh0KGVuZ2luZSwgZml4bWUpOwogCQlpZiAoZXJyKQogCQkJYnJl YWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2VuZ2luZV9wbS5jCmluZGV4 IDNhMTQxOTM3NjkxMi4uMjBiOWM4M2Y0M2FkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9lbmdpbmVfcG0uYwpAQCAtMjUsNyArMjUsNyBAQCBzdGF0aWMgaW50IGxpdmVf ZW5naW5lX3BtKHZvaWQgKmFyZykKIAl9CiAKIAlHRU1fQlVHX09OKGludGVsX2d0X3BtX2lzX2F3 YWtlKGd0KSk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWNvbnN0IHR5cGVvZigqaWd0X2F0b21p Y19waGFzZXMpICpwOwogCiAJCWZvciAocCA9IGlndF9hdG9taWNfcGhhc2VzOyBwLT5uYW1lOyBw KyspIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdj aGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKaW5k ZXggNTY5YTQxMDVkNDllLi44ZTAwMTY0NjQzMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGludCBp Z3RfaGFuZ19zYW5pdHljaGVjayh2b2lkICphcmcpCiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsK IAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaW50ZWxfd2VkZ2VfbWUgdzsKIAkJbG9u ZyB0aW1lb3V0OwogCkBAIC00MDAsNyArNDAwLDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfbm9w KHZvaWQgKmFyZykKIAlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoZ2xvYmFsKTsKIAlj b3VudCA9IDA7CiAJZG8gewotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQp IHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCQlpbnQgaTsKIAogCQkJ Zm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKQEAgLTQ3MSw3ICs0NzEsNyBAQCBzdGF0aWMgaW50 IGlndF9yZXNldF9ub3BfZW5naW5lKHZvaWQgKmFyZykKIAl9CiAKIAlpOTE1X2dlbV9jb250ZXh0 X2NsZWFyX2Jhbm5hYmxlKGN0eCk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUs IGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXVuc2lnbmVkIGlu dCByZXNldF9jb3VudCwgcmVzZXRfZW5naW5lX2NvdW50OwogCQl1bnNpZ25lZCBpbnQgY291bnQ7 CiAJCUlHVF9USU1FT1VUKGVuZF90aW1lKTsKQEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgaW50 IF9faWd0X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBib29sIGFjdGl2ZSkKIAkJ CXJldHVybiBlcnI7CiAJfQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlk KSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXVuc2lnbmVkIGludCBy ZXNldF9jb3VudCwgcmVzZXRfZW5naW5lX2NvdW50OwogCQlJR1RfVElNRU9VVChlbmRfdGltZSk7 CiAKQEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3Ry dWN0IGludGVsX2d0ICpndCwKIAkJCWguY3R4LT5zY2hlZC5wcmlvcml0eSA9IDEwMjQ7CiAJfQog Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXN0cnVjdCBhY3RpdmVfZW5naW5lIHRocmVhZHNbSTkx NV9OVU1fRU5HSU5FU10gPSB7fTsKIAkJdW5zaWduZWQgbG9uZyBkZXZpY2UgPSBpOTE1X3Jlc2V0 X2NvdW50KGdsb2JhbCk7CiAJCXVuc2lnbmVkIGxvbmcgY291bnQgPSAwLCByZXBvcnRlZDsKQEAg LTgwMCw3ICs4MDAsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGlu dGVsX2d0ICpndCwKIAkJfQogCiAJCW1lbXNldCh0aHJlYWRzLCAwLCBzaXplb2YodGhyZWFkcykp OwotCQlmb3JfZWFjaF9lbmdpbmUob3RoZXIsIGd0LT5pOTE1LCB0bXApIHsKKwkJZm9yX2VhY2hf ZW5naW5lKG90aGVyLCBndCwgdG1wKSB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsKIAog CQkJdGhyZWFkc1t0bXBdLnJlc2V0cyA9CkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIGludCBf X2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCX0KIAogdW53aW5kOgot CQlmb3JfZWFjaF9lbmdpbmUob3RoZXIsIGd0LT5pOTE1LCB0bXApIHsKKwkJZm9yX2VhY2hfZW5n aW5lKG90aGVyLCBndCwgdG1wKSB7CiAJCQlpbnQgcmV0OwogCiAJCQlpZiAoIXRocmVhZHNbdG1w XS50YXNrKQpAQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RhdGljIGludCB3YWl0X2Zvcl9vdGhlcnMo c3RydWN0IGludGVsX2d0ICpndCwKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+ aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJaWYgKGVu Z2luZSA9PSBleGNsdWRlKQogCQkJY29udGludWU7CiAKQEAgLTEzNjMsNyArMTM2Myw3IEBAIHN0 YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKIAlpZiAoZXJyKQogCQlnb3RvIHVu bG9jazsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2 OwogCQlJR1RfVElNRU9VVChlbmRfdGltZSk7CiAJCXVuc2lnbmVkIGludCBjb3VudDsKQEAgLTE2 NTEsNyArMTY1MSw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X2VuZ2luZXNfYXRvbWljKHZvaWQg KmFyZykKIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCQllbnVtIGludGVsX2Vu Z2luZV9pZCBpZDsKIAotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsK KwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCQllcnIgPSBpZ3RfYXRvbWlj X3Jlc2V0X2VuZ2luZShlbmdpbmUsIHApOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKaW5kZXggMjg2ODM3MWM2MDllLi4wMDdk NjIwM2ZlMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xy Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCkBAIC0xMjMs NyArMTIzLDcgQEAgc3RhdGljIGludCBsaXZlX3VubGl0ZV9yZXN0b3JlKHN0cnVjdCBpbnRlbF9n dCAqZ3QsIGludCBwcmlvKQogCQlnb3RvIGVycl9zcGluOwogCiAJZXJyID0gMDsKLQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBndCwgaWQpIHsKIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlWzJdID0ge307CiAJCXN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxWzJdOwogCQlzdHJ1Y3QgaWd0X2xpdmVfdGVzdCB0OwpAQCAtMzg0 LDcgKzM4NCw3IEBAIHNsaWNlX3NlbWFwaG9yZV9xdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpvdXRlciwKIAkJcmV0dXJuIFBUUl9FUlIoaGVhZCk7CiAKIAlpOTE1X3JlcXVlc3RfZ2V0KGhl YWQpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIG91dGVyLT5pOTE1LCBpZCkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIG91dGVyLT5ndCwgaWQpIHsKIAkJZm9yIChpID0gMDsgaSA8IGNv dW50OyBpKyspIHsKIAkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCkBAIC00NTYsNyArNDU2 LDcgQEAgc3RhdGljIGludCBsaXZlX3RpbWVzbGljZV9wcmVlbXB0KHZvaWQgKmFyZykKIAkJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsK IAotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwkJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCQlpZiAoIWludGVsX2VuZ2luZV9oYXNfcHJlZW1w dGlvbihlbmdpbmUpKQogCQkJCWNvbnRpbnVlOwogCkBAIC01MzIsNyArNTMyLDcgQEAgc3RhdGlj IGludCBsaXZlX2J1c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogCWlmIChlcnIpCiAJCWdvdG8g ZXJyX21hcDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICps bywgKmhpOwogCQlzdHJ1Y3QgaWd0X2xpdmVfdGVzdCB0OwogCQl1MzIgKmNzOwpAQCAtNzA4LDcg KzcwOCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAljdHhfbG8tPnNj aGVkLnByaW9yaXR5ID0KIAkJSTkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfQ09OVEVYVF9NSU5fVVNF Ul9QUklPUklUWSk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsK Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJc3RydWN0IGlndF9saXZlX3Rl c3QgdDsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKQEAgLTgwNCw3ICs4MDQsNyBAQCBz dGF0aWMgaW50IGxpdmVfbGF0ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAkvKiBNYWtlIHN1cmUgY3R4 X2xvIHN0YXlzIGJlZm9yZSBjdHhfaGkgdW50aWwgd2UgdHJpZ2dlciBwcmVlbXB0aW9uLiAqLwog CWN0eF9sby0+c2NoZWQucHJpb3JpdHkgPSBJOTE1X1VTRVJfUFJJT1JJVFkoMSk7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBndCwgaWQpIHsKIAkJc3RydWN0IGlndF9saXZlX3Rlc3QgdDsKIAkJc3RydWN0IGk5MTVf cmVxdWVzdCAqcnE7CiAKQEAgLTkyOSw3ICs5MjksNyBAQCBzdGF0aWMgaW50IGxpdmVfbm9wcmVl bXB0KHZvaWQgKmFyZykKIAkJZ290byBlcnJfY2xpZW50X2E7CiAJYi5jdHgtPnNjaGVkLnByaW9y aXR5ID0gSTkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfUFJJT1JJVFlfTUFYKTsKIAotCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewogCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycV9hLCAqcnFfYjsKIAogCQlpZiAo IWludGVsX2VuZ2luZV9oYXNfcHJlZW1wdGlvbihlbmdpbmUpKQpAQCAtMTA0MCw3ICsxMDQwLDcg QEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCiAJaWYg KHByZWVtcHRfY2xpZW50X2luaXQoZ3QsICZiKSkKIAkJZ290byBlcnJfY2xpZW50X2E7CiAKLQlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUo ZW5naW5lLCBndCwgaWQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnFfYSwgKnJxX2I7CiAJ CWludCBkZXB0aDsKIApAQCAtMTIwNyw3ICsxMjA3LDcgQEAgc3RhdGljIGludCBsaXZlX3N1cHBy ZXNzX3dhaXRfcHJlZW1wdCh2b2lkICphcmcpCiAJaWYgKHByZWVtcHRfY2xpZW50X2luaXQoZ3Qs ICZjbGllbnRbM10pKSAvKiBieXN0YW5kZXIgKi8KIAkJZ290byBlcnJfY2xpZW50XzI7CiAKLQlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUo ZW5naW5lLCBndCwgaWQpIHsKIAkJaW50IGRlcHRoOwogCiAJCWlmICghaW50ZWxfZW5naW5lX2hh c19wcmVlbXB0aW9uKGVuZ2luZSkpCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdGF0aWMgaW50IGxp dmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiAJaWYgKHByZWVtcHRfY2xpZW50X2luaXQoZ3Qs ICZsbykpCiAJCWdvdG8gZXJyX2NsaWVudF9oaTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlz dHJ1Y3QgaTkxNV9zY2hlZF9hdHRyIGF0dHIgPSB7CiAJCQkucHJpb3JpdHkgPSBJOTE1X1VTRVJf UFJJT1JJVFkoSTkxNV9QUklPUklUWV9NQVgpLAogCQl9OwpAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAg c3RhdGljIGludCBsaXZlX3ByZWVtcHRfaGFuZyh2b2lkICphcmcpCiAJY3R4X2xvLT5zY2hlZC5w cmlvcml0eSA9CiAJCUk5MTVfVVNFUl9QUklPUklUWShJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJ T1JJVFkpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OwogCiAJCWlmICghaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCkBAIC0xNjU2 LDcgKzE2NTYsNyBAQCBzdGF0aWMgaW50IHNtb2tlX2NyZXNjZW5kbyhzdHJ1Y3QgcHJlZW1wdF9z bW9rZSAqc21va2UsIHVuc2lnbmVkIGludCBmbGFncykKIAl1bnNpZ25lZCBsb25nIGNvdW50Owog CWludCBlcnIgPSAwOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgc21va2UtPmd0LT5pOTE1 LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIHNtb2tlLT5ndCwgaWQpIHsKIAkJYXJn W2lkXSA9ICpzbW9rZTsKIAkJYXJnW2lkXS5lbmdpbmUgPSBlbmdpbmU7CiAJCWlmICghKGZsYWdz ICYgQkFUQ0gpKQpAQCAtMTY3Myw3ICsxNjczLDcgQEAgc3RhdGljIGludCBzbW9rZV9jcmVzY2Vu ZG8oc3RydWN0IHByZWVtcHRfc21va2UgKnNtb2tlLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJfQog CiAJY291bnQgPSAwOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIHNtb2tlLT5ndC0+aTkxNSwg aWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBzbW9rZS0+Z3QsIGlkKSB7CiAJCWludCBz dGF0dXM7CiAKIAkJaWYgKElTX0VSUl9PUl9OVUxMKHRza1tpZF0pKQpAQCAtMTcwMiw3ICsxNzAy LDcgQEAgc3RhdGljIGludCBzbW9rZV9yYW5kb20oc3RydWN0IHByZWVtcHRfc21va2UgKnNtb2tl LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAKIAljb3VudCA9IDA7CiAJZG8gewotCQlmb3JfZWFjaF9l bmdpbmUoc21va2UtPmVuZ2luZSwgc21va2UtPmd0LT5pOTE1LCBpZCkgeworCQlmb3JfZWFjaF9l bmdpbmUoc21va2UtPmVuZ2luZSwgc21va2UtPmd0LCBpZCkgewogCQkJc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCA9IHNtb2tlX2NvbnRleHQoc21va2UpOwogCQkJaW50IGVycjsKIApAQCAt MTkzNyw3ICsxOTM3LDcgQEAgc3RhdGljIGludCBsaXZlX3ZpcnR1YWxfZW5naW5lKHZvaWQgKmFy ZykKIAlpZiAoVVNFU19HVUNfU1VCTUlTU0lPTihndC0+aTkxNSkpCiAJCXJldHVybiAwOwogCi0J Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWVyciA9IG5vcF92aXJ0dWFsX2VuZ2luZShndCwgJmVuZ2lu ZSwgMSwgMSwgMCk7CiAJCWlmIChlcnIpIHsKIAkJCXByX2VycigiRmFpbGVkIHRvIHdyYXAgZW5n aW5lICVzOiBlcnI9JWRcbiIsCkBAIC0yMjcwLDcgKzIyNzAsNyBAQCBzdGF0aWMgaW50IGJvbmRf dmlydHVhbF9lbmdpbmUoc3RydWN0IGludGVsX2d0ICpndCwKIAogCWVyciA9IDA7CiAJcnFbMF0g PSBFUlJfUFRSKC1FTk9NRU0pOwotCWZvcl9lYWNoX2VuZ2luZShtYXN0ZXIsIGd0LT5pOTE1LCBp ZCkgeworCWZvcl9lYWNoX2VuZ2luZShtYXN0ZXIsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaTkxNV9z d19mZW5jZSBmZW5jZSA9IHt9OwogCiAJCWlmIChtYXN0ZXItPmNsYXNzID09IGNsYXNzKQpAQCAt MjUwOCw3ICsyNTA4LDcgQEAgc3RhdGljIGludCBsaXZlX2xyY19sYXlvdXQodm9pZCAqYXJnKQog CQlyZXR1cm4gLUVOT01FTTsKIAogCWVyciA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg Z3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXUz MiAqaHcsICpscmM7CiAJCWludCBkdzsKIApAQCAtMjcwMSw3ICsyNzAxLDcgQEAgc3RhdGljIGlu dCBsaXZlX2xyY19zdGF0ZSh2b2lkICphcmcpCiAJCWdvdG8gb3V0X2Nsb3NlOwogCX0KIAotCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGd0LCBpZCkgewogCQllcnIgPSBfX2xpdmVfbHJjX3N0YXRlKGZpeG1lLCBlbmdpbmUs IHNjcmF0Y2gpOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CkBAIC0yODQ0LDcgKzI4NDQsNyBAQCBz dGF0aWMgaW50IGxpdmVfZ3ByX2NsZWFyKHZvaWQgKmFyZykKIAkJZ290byBvdXRfY2xvc2U7CiAJ fQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWVyciA9IF9fbGl2ZV9ncHJfY2xlYXIoZml4bWUs IGVuZ2luZSwgc2NyYXRjaCk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCmluZGV4IDQxOWIzOGZhNzgyOC4uNmVmYjkyMjFiN2Zh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMKQEAgLTEyNSw3ICsx MjUsNyBAQCBzdGF0aWMgaW50IGlndF9hdG9taWNfZW5naW5lX3Jlc2V0KHZvaWQgKmFyZykKIAlp ZiAoIWlndF9mb3JjZV9yZXNldChndCkpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewogCQl0YXNrbGV0X2Rpc2FibGVfbm9zeW5jKCZlbmdpbmUtPmV4ZWNsaXN0cy50 YXNrbGV0KTsKIAkJaW50ZWxfZW5naW5lX3BtX2dldChlbmdpbmUpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYwppbmRleCA0NzNhNTZiMGFlNDYuLmRhYzg2 ZjY5OWE0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfdGlt ZWxpbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5j CkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIGludCBsaXZlX2h3c3BfZW5naW5lKHZvaWQgKmFy ZykKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAljb3VudCA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7 CiAJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQogCQkJY29udGlu dWU7CiAKQEAgLTU5NCw3ICs1OTQsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF9hbHRlcm5hdGUo dm9pZCAqYXJnKQogCiAJY291bnQgPSAwOwogCWZvciAobiA9IDA7IG4gPCBOVU1fVElNRUxJTkVT OyBuKyspIHsKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQkJc3RydWN0IGludGVsX3RpbWVsaW5l ICp0bDsKIAkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCkBAIC02NjYsNyArNjY2LDcgQEAg c3RhdGljIGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCiAJaWYgKGVycikKIAkJZ290byBv dXRfZnJlZTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQljb25zdCB1MzIgKmh3c3Bfc2Vxbm9b Ml07CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCQl1MzIgc2Vxbm9bMl07CkBAIC03NjYs NyArNzY2LDcgQEAgc3RhdGljIGludCBsaXZlX2h3c3BfcmVjeWNsZSh2b2lkICphcmcpCiAJICov CiAKIAljb3VudCA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7 CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCUlHVF9USU1FT1VUKGVuZF90 aW1lKTsKIAogCQlpZiAoIWludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCmluZGV4IDg4 NTZjNmM0NmNjNC4uZWYwMjkyMGNlYzI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKQEAgLTY5LDcgKzY5LDcgQEAgcmVmZXJlbmNlX2xpc3Rz X2luaXQoc3RydWN0IGludGVsX2d0ICpndCwgc3RydWN0IHdhX2xpc3RzICpsaXN0cykKIAlndF9p bml0X3dvcmthcm91bmRzKGd0LT5pOTE1LCAmbGlzdHMtPmd0X3dhX2xpc3QpOwogCXdhX2luaXRf ZmluaXNoKCZsaXN0cy0+Z3Rfd2FfbGlzdCk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJc3Ry dWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmxpc3RzLT5lbmdpbmVbaWRdLndhX2xpc3Q7CiAKIAkJ d2FfaW5pdF9zdGFydCh3YWwsICJSRUYiLCBlbmdpbmUtPm5hbWUpOwpAQCAtODgsNyArODgsNyBA QCByZWZlcmVuY2VfbGlzdHNfZmluaShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3Qgd2FfbGlz dHMgKmxpc3RzKQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVs X2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkK Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWludGVsX3dhX2xpc3RfZnJlZSgm bGlzdHMtPmVuZ2luZVtpZF0ud2FfbGlzdCk7CiAKIAlpbnRlbF93YV9saXN0X2ZyZWUoJmxpc3Rz LT5ndF93YV9saXN0KTsKQEAgLTcyNiw3ICs3MjYsNyBAQCBzdGF0aWMgaW50IGxpdmVfZGlydHlf d2hpdGVsaXN0KHZvaWQgKmFyZykKIAkJZ290byBvdXRfZmlsZTsKIAl9CiAKLQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dCwgaWQpIHsKIAkJaWYgKGVuZ2luZS0+d2hpdGVsaXN0LmNvdW50ID09IDApCiAJCQljb250aW51 ZTsKIApAQCAtNzUwLDcgKzc1MCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9yZXNldF93aGl0ZWxpc3Qo dm9pZCAqYXJnKQogCS8qIElmIHdlIHJlc2V0IHRoZSBncHUsIHdlIHNob3VsZCBub3QgbG9zZSB0 aGUgUklOR19OT05QUklWICovCiAJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsKIAotCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LCBpZCkgewogCQlpZiAoZW5naW5lLT53aGl0ZWxpc3QuY291bnQgPT0gMCkKIAkJCWNv bnRpbnVlOwogCkBAIC0xMDQ4LDcgKzEwNDgsNyBAQCBzdGF0aWMgaW50IGxpdmVfaXNvbGF0ZWRf d2hpdGVsaXN0KHZvaWQgKmFyZykKIAkJaTkxNV92bV9wdXQodm0pOwogCX0KIAotCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewogCQlpZiAoIWVuZ2luZS0+a2VybmVsX2NvbnRleHQtPnZtKQogCQkJY29udGlu dWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19z dWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlz c2lvbi5jCmluZGV4IGYzMjVkM2RkNTY0Zi4uZTk3MTNhMjE3NzllIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKQEAgLTEwMTQsNyAr MTAxNCw3IEBAIHN0YXRpYyB2b2lkIGd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoc3RydWN0IGludGVs X2d0ICpndCkKIAkgKiB0byBHdUMKIAkgKi8KIAlpcnFzID0gX01BU0tFRF9CSVRfRU5BQkxFKEdG WF9JTlRFUlJVUFRfU1RFRVJJTkcpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1 LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCUVOR0lORV9XUklURShl bmdpbmUsIFJJTkdfTU9ERV9HRU43LCBpcnFzKTsKIAogCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBU IHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VDLiAqLwpAQCAtMTA2Miw3ICsxMDYy LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0KQogCSAqLwogCWlycXMgPSBfTUFTS0VEX0ZJRUxEKEdGWF9GT1JXQVJEX1ZCTEFOS19NQVNL LCBHRlhfRk9SV0FSRF9WQkxBTktfTkVWRVIpOwogCWlycXMgfD0gX01BU0tFRF9CSVRfRElTQUJM RShHRlhfSU5URVJSVVBUX1NURUVSSU5HKTsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+ aTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKQogCQlFTkdJTkVfV1JJ VEUoZW5naW5lLCBSSU5HX01PREVfR0VONywgaXJxcyk7CiAKIAkvKiByb3V0ZSBhbGwgR1QgaW50 ZXJydXB0cyB0byB0aGUgaG9zdCAqLwpAQCAtMTE0NSw3ICsxMTQ1LDcgQEAgaW50IGludGVsX2d1 Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJLyogVGFrZSBvdmVy IGZyb20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwogCWd1Y19pbnRlcnJ1 cHRzX2NhcHR1cmUoZ3QpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlk KSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWVuZ2luZS0+c2V0X2Rl ZmF1bHRfc3VibWlzc2lvbiA9IGd1Y19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uOwogCQllbmdpbmUt PnNldF9kZWZhdWx0X3N1Ym1pc3Npb24oZW5naW5lKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmMKaW5kZXggN2VjOGY4YjA0OWM2Li45Zjg1OTBiODY4YTkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmMKQEAgLTIyLDcg KzIyLDcgQEAgdm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soc3RydWN0IGludGVsX2d0ICpndCkK IAkJd2FpdF9ldmVudChndC0+cmVzZXQucXVldWUsCiAJCQkgICAhdGVzdF9iaXQoSTkxNV9SRVNF VF9CQUNLT0ZGLCAmZ3QtPnJlc2V0LmZsYWdzKSk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJ d2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBpZCwKIAkJCQkJJmd0 LT5yZXNldC5mbGFncykpCiAJCQl3YWl0X29uX2JpdCgmZ3QtPnJlc2V0LmZsYWdzLCBJOTE1X1JF U0VUX0VOR0lORSArIGlkLApAQCAtMzUsNyArMzUsNyBAQCB2b2lkIGlndF9nbG9iYWxfcmVzZXRf dW5sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZ3QtPmk5MTUsIGlkKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkKIAkJY2xl YXJfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZndC0+cmVzZXQuZmxhZ3MpOwogCiAJY2xl YXJfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmd0LT5yZXNldC5mbGFncyk7Ci0tIAoyLjIwLjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==