Date: Mon, 21 Jun 2010 22:18:50 +0530 From: "Jayachandran C." <c.jayachandran@gmail.com> To: Randall Stewart <rrs@lakerest.net>, Juli Mallett <jmallett@freebsd.org>, "M. Warner Losh" <imp@bsdimp.com>, freebsd-mips@freebsd.org Subject: Re: Merging 64 bit changes to -HEAD - part 3 Message-ID: <AANLkTim5aGluEVgYQQxgBDn2aJIuUIIMszmk7D3lVEGi@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--00c09f88cf8c433dfa04898d149b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Jun 15, 2010 at 7:06 PM, Jayachandran C. <c.jayachandran@gmail.com> wrote: > I have volunteered to merge Juli's 64-bit work into HEAD, =A0and > hopefully get it to work on XLR too. The tree > (http://svn.freebsd.org/base/user/jmallett/octeon) has quite a bit of > changes, so I would like to do this over multiple changesets and > without breaking the current o32 code. And here's the third batch for the merge, two patches here: n64-n32-compile.patch: Main changes are: - Support for n64 and n32 kernel compilation - casts between registers and ptr/int updated to work on 64bit - 64-bit address space defines - syscall, exception and trap support for n32/n64 I have made some minor changes from the Juli's version to reduce the number of #ifdefs, but mostly the code is equivalent. n32-kernel.patch: - Support to build n32 kernel for XLR, sample conf file and ldscript With these two patches the kernel comes up in n32 single user mode. Please let me know your comments. The next set should cover the full n64 support. Thanks, JC. --00c09f88cf8c433dfa04898d149b Content-Type: text/x-patch; charset=US-ASCII; name="n64-n32-compile.patch" Content-Disposition: attachment; filename="n64-n32-compile.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gapjcqjh4 SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvc2V0am1wLmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMv aW5jbHVkZS9zZXRqbXAuaAkocmV2aXNpb24gMjA5MzY3KQorKysgc3lzL21pcHMvaW5jbHVkZS9z ZXRqbXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogCiAjaW5jbHVkZSA8c3lz L2NkZWZzLmg+CiAKLSNkZWZpbmUJX0pCTEVOCTk1CQkvKiBzaXplLCBpbiBsb25ncywgb2YgYSBq bXBfYnVmICovCisjZGVmaW5lCV9KQkxFTgk5NQkJLyogc2l6ZSwgaW4gbG9uZ3MgKG9yIGxvbmcg bG9uZ3MpLCBvZiBhIGptcF9idWYgKi8KIAogLyoKICAqIGptcF9idWYgYW5kIHNpZ2ptcF9idWYg YXJlIGVuY2Fwc3VsYXRlZCBpbiBkaWZmZXJlbnQgc3RydWN0cyB0byBmb3JjZQpAQCAtNDksMTAg KzQ5LDE4IEBACiAjaWZuZGVmIF9MT0NPUkUKICNpZm5kZWYgX19BU1NFTUJMRVJfXwogI2lmIF9f QlNEX1ZJU0lCTEUgfHwgX19QT1NJWF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUKKyNpZmRlZiBf X21pcHNfbjMyCit0eXBlZGVmIHN0cnVjdCBfc2lnam1wX2J1ZiB7IGxvbmcgbG9uZyBfc2piW19K QkxFTiArIDFdOyB9IHNpZ2ptcF9idWZbMV07CisjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX3NpZ2pt cF9idWYgeyBsb25nIF9zamJbX0pCTEVOICsgMV07IH0gc2lnam1wX2J1ZlsxXTsKICNlbmRpZgor I2VuZGlmCiAKKyNpZmRlZiBfX21pcHNfbjMyCit0eXBlZGVmIHN0cnVjdCBfam1wX2J1ZiB7IGxv bmcgbG9uZyBfamJbX0pCTEVOICsgMV07IH0gam1wX2J1ZlsxXTsKKyNlbHNlCiB0eXBlZGVmIHN0 cnVjdCBfam1wX2J1ZiB7IGxvbmcgX2piW19KQkxFTiArIDFdOyB9IGptcF9idWZbMV07CisjZW5k aWYKICNlbmRpZiAvKiBfX0FTU0VNQkxFUl9fICovCiAjZW5kaWYgLyogX0xPQ09SRSAqLwogCklu ZGV4OiBzeXMvbWlwcy9pbmNsdWRlL2NwdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2luY2x1 ZGUvY3B1LmgJKHJldmlzaW9uIDIwOTM2NykKKysrIHN5cy9taXBzL2luY2x1ZGUvY3B1LmgJKHdv cmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAKIAogI2luY2x1ZGUgPG1hY2hpbmUvZW5kaWFu Lmg+CiAKLSNkZWZpbmUgTUlQU19LU0VHMF9MQVJHRVNUX1BIWVMgICAgICAgICAweDIwMDAwMDAw CisjZGVmaW5lCU1JUFNfS1NFRzBfTEFSR0VTVF9QSFlTICAgICAgICAgKDB4MjAwMDAwMDApCiAj ZGVmaW5lCU1JUFNfUEhZU19NQVNLCQkJKDB4MWZmZmZmZmYpCiAKICNkZWZpbmUJTUlQU19QSFlT X1RPX0tTRUcwKHgpCQkoKHVpbnRwdHJfdCkoeCkgfCBNSVBTX0tTRUcwX1NUQVJUKQpAQCAtMTYy LDExICsxNjIsMTEgQEAKIC8qCiAgKiBMb2NhdGlvbiBvZiBleGNlcHRpb24gdmVjdG9ycy4KICAq LwotI2RlZmluZQlSRVNFVF9FWENfVkVDCQkweGJmYzAwMDAwCi0jZGVmaW5lCVRMQl9NSVNTX0VY Q19WRUMJMHg4MDAwMDAwMAotI2RlZmluZQlYVExCX01JU1NfRVhDX1ZFQwkweDgwMDAwMDgwCi0j ZGVmaW5lCUNBQ0hFX0VSUl9FWENfVkVDCTB4ODAwMDAxMDAKLSNkZWZpbmUJR0VOX0VYQ19WRUMJ CTB4ODAwMDAxODAKKyNkZWZpbmUJUkVTRVRfRVhDX1ZFQwkJKChpbnRwdHJfdCkoaW50MzJfdCkw eGJmYzAwMDAwKQorI2RlZmluZQlUTEJfTUlTU19FWENfVkVDCSgoaW50cHRyX3QpKGludDMyX3Qp MHg4MDAwMDAwMCkKKyNkZWZpbmUJWFRMQl9NSVNTX0VYQ19WRUMJKChpbnRwdHJfdCkoaW50MzJf dCkweDgwMDAwMDgwKQorI2RlZmluZQlDQUNIRV9FUlJfRVhDX1ZFQwkoKGludHB0cl90KShpbnQz Ml90KTB4ODAwMDAxMDApCisjZGVmaW5lCUdFTl9FWENfVkVDCQkoKGludHB0cl90KShpbnQzMl90 KTB4ODAwMDAxODApCiAKIC8qCiAgKiBDb3Byb2Nlc3NvciAwIHJlZ2lzdGVyczoKSW5kZXg6IHN5 cy9taXBzL2luY2x1ZGUvdm1wYXJhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2luY2x1ZGUv dm1wYXJhbS5oCShyZXZpc2lvbiAyMDkzNjcpCisrKyBzeXMvbWlwcy9pbmNsdWRlL3ZtcGFyYW0u aAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDExICsxMDAsMTcgQEAKICNkZWZpbmUJVk1fTUFYX0FE RFJFU1MJCSgodm1fb2Zmc2V0X3QpKGludHB0cl90KShpbnQzMl90KTB4ZmZmZmZmZmYpCiAKICNk ZWZpbmUJVk1fTUlOVVNFUl9BRERSRVNTCSgodm1fb2Zmc2V0X3QpMHgwMDAwMDAwMCkKLSNkZWZp bmUJVk1fTUFYVVNFUl9BRERSRVNTCSgodm1fb2Zmc2V0X3QpMHg4MDAwMDAwMCkKICNkZWZpbmUJ Vk1fTUFYX01NQVBfQUREUglWTV9NQVhVU0VSX0FERFJFU1MKIAotI2RlZmluZQlWTV9NSU5fS0VS TkVMX0FERFJFU1MJCSgodm1fb2Zmc2V0X3QpMHhDMDAwMDAwMCkKLSNkZWZpbmUJVk1fTUFYX0tF Uk5FTF9BRERSRVNTCQkoKHZtX29mZnNldF90KTB4RkZGRkMwMDApCisjaWYgZGVmaW5lZChfX21p cHNfbjY0KQorI2RlZmluZQlWTV9NQVhVU0VSX0FERFJFU1MJKFZNX01JTlVTRVJfQUREUkVTUyAr IChOUERFUEcgKiBOUFRFUEcgKiBQQUdFX1NJWkUpKQorI2RlZmluZQlWTV9NSU5fS0VSTkVMX0FE RFJFU1MJKCh2bV9vZmZzZXRfdCkweGMwMDAwMDAwMDAwMDAwMDApCisjZGVmaW5lCVZNX01BWF9L RVJORUxfQUREUkVTUwkoVk1fTUlOX0tFUk5FTF9BRERSRVNTICsgKE5QREVQRyAqIE5QVEVQRyAq IFBBR0VfU0laRSkpCisjZWxzZQorI2RlZmluZQlWTV9NQVhVU0VSX0FERFJFU1MJKCh2bV9vZmZz ZXRfdCkweDgwMDAwMDAwKQorI2RlZmluZQlWTV9NSU5fS0VSTkVMX0FERFJFU1MJKCh2bV9vZmZz ZXRfdCkweEMwMDAwMDAwKQorI2RlZmluZQlWTV9NQVhfS0VSTkVMX0FERFJFU1MJKCh2bV9vZmZz ZXRfdCkweEZGRkZDMDAwKQorI2VuZGlmCiAjaWYgMAogI2RlZmluZQlLRVJOQkFTRQkJKFZNX01J Tl9LRVJORUxfQUREUkVTUykKICNlbHNlCkluZGV4OiBzeXMvbWlwcy9taXBzL3ZtX21hY2hkZXAu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL3ZtX21hY2hkZXAuYwkocmV2aXNpb24gMjA5 MzY3KQorKysgc3lzL21pcHMvbWlwcy92bV9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTE0 MSwxMyArMTQxLDEzIEBACiAJaWYgKHRkMSA9PSBQQ1BVX0dFVChmcGN1cnRocmVhZCkpCiAJCU1p cHNTYXZlQ3VyRlBTdGF0ZSh0ZDEpOwogCi0JcGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19SQV0g PSAocmVnaXN0ZXJfdClmb3JrX3RyYW1wb2xpbmU7CisJcGNiMi0+cGNiX2NvbnRleHRbUENCX1JF R19SQV0gPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpZm9ya190cmFtcG9saW5lOwogCS8qIE1ha2Ug c3AgNjQtYml0IGFsaWduZWQgKi8KIAlwY2IyLT5wY2JfY29udGV4dFtQQ0JfUkVHX1NQXSA9IChy ZWdpc3Rlcl90KSgoKHZtX29mZnNldF90KXRkMi0+dGRfcGNiICYKIAkgICAgfihzaXplb2YoX19p bnQ2NF90KSAtIDEpKSAtIENBTExGUkFNRV9TSVopOwotCXBjYjItPnBjYl9jb250ZXh0W1BDQl9S RUdfUzBdID0gKHJlZ2lzdGVyX3QpZm9ya19yZXR1cm47Ci0JcGNiMi0+cGNiX2NvbnRleHRbUENC X1JFR19TMV0gPSAocmVnaXN0ZXJfdCl0ZDI7Ci0JcGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19T Ml0gPSAocmVnaXN0ZXJfdCl0ZDItPnRkX2ZyYW1lOworCXBjYjItPnBjYl9jb250ZXh0W1BDQl9S RUdfUzBdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KWZvcmtfcmV0dXJuOworCXBjYjItPnBjYl9j b250ZXh0W1BDQl9SRUdfUzFdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KXRkMjsKKwlwY2IyLT5w Y2JfY29udGV4dFtQQ0JfUkVHX1MyXSA9IChyZWdpc3Rlcl90KShpbnRwdHJfdCl0ZDItPnRkX2Zy YW1lOwogCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfU1JdID0gU1JfSU5UX01BU0sgJiBtaXBz X3JkX3N0YXR1cygpOwogCS8qCiAJICogRlJFRUJTRF9ERVZFTE9QRVJTX0ZJWE1FOgpAQCAtMTc4 LDggKzE3OCw4IEBACiAJICogTm90ZSB0aGF0IHRoZSB0cmFwIGZyYW1lIGZvbGxvd3MgdGhlIGFy Z3MsIHNvIHRoZSBmdW5jdGlvbgogCSAqIGlzIHJlYWxseSBjYWxsZWQgbGlrZSB0aGlzOglmdW5j KGFyZywgZnJhbWUpOwogCSAqLwotCXRkLT50ZF9wY2ItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzBd ID0gKHJlZ2lzdGVyX3QpIGZ1bmM7Ci0JdGQtPnRkX3BjYi0+cGNiX2NvbnRleHRbUENCX1JFR19T MV0gPSAocmVnaXN0ZXJfdCkgYXJnOworCXRkLT50ZF9wY2ItPnBjYl9jb250ZXh0W1BDQl9SRUdf UzBdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KWZ1bmM7CisJdGQtPnRkX3BjYi0+cGNiX2NvbnRl eHRbUENCX1JFR19TMV0gPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpYXJnOwogfQogCiB2b2lkCkBA IC0yNTQsMTEgKzI1NCwxOCBAQAogCiAJY29kZSA9IGxvY3IwLT52MDsKIAlxdWFkX3N5c2NhbGwg PSAwOworI2lmIGRlZmluZWQoX19taXBzX28zMikKKwlpZiAoY29kZSA9PSBTWVNfX19zeXNjYWxs KQorCQlxdWFkX3N5c2NhbGwgPSAxOworI2VuZGlmCisKIAlpZiAoY29kZSA9PSBTWVNfc3lzY2Fs bCkKIAkJY29kZSA9IGxvY3IwLT5hMDsKIAllbHNlIGlmIChjb2RlID09IFNZU19fX3N5c2NhbGwp IHsKLQkJY29kZSA9IF9RVUFEX0xPV1dPUkQgPyBsb2NyMC0+YTEgOiBsb2NyMC0+YTA7Ci0JCXF1 YWRfc3lzY2FsbCA9IDE7CisJCWlmIChxdWFkX3N5c2NhbGwpCisJCQljb2RlID0gX1FVQURfTE9X V09SRCA/IGxvY3IwLT5hMSA6IGxvY3IwLT5hMDsKKwkJZWxzZQorCQkJY29kZSA9IGxvY3IwLT5h MDsKIAl9CiAKIAlzd2l0Y2ggKGVycm9yKSB7CkBAIC0zMzYsMTMgKzM0MywxMyBAQAogCSAqIFNl dCByZWdpc3RlcnMgZm9yIHRyYW1wb2xpbmUgdG8gdXNlciBtb2RlLgogCSAqLwogCi0JcGNiMi0+ cGNiX2NvbnRleHRbUENCX1JFR19SQV0gPSAocmVnaXN0ZXJfdClmb3JrX3RyYW1wb2xpbmU7CisJ cGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19SQV0gPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpZm9y a190cmFtcG9saW5lOwogCS8qIE1ha2Ugc3AgNjQtYml0IGFsaWduZWQgKi8KIAlwY2IyLT5wY2Jf Y29udGV4dFtQQ0JfUkVHX1NQXSA9IChyZWdpc3Rlcl90KSgoKHZtX29mZnNldF90KXRkLT50ZF9w Y2IgJgogCSAgICB+KHNpemVvZihfX2ludDY0X3QpIC0gMSkpIC0gQ0FMTEZSQU1FX1NJWik7Ci0J cGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19TMF0gPSAocmVnaXN0ZXJfdClmb3JrX3JldHVybjsK LQlwY2IyLT5wY2JfY29udGV4dFtQQ0JfUkVHX1MxXSA9IChyZWdpc3Rlcl90KXRkOwotCXBjYjIt PnBjYl9jb250ZXh0W1BDQl9SRUdfUzJdID0gKHJlZ2lzdGVyX3QpdGQtPnRkX2ZyYW1lOworCXBj YjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzBdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KWZvcmtf cmV0dXJuOworCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzFdID0gKHJlZ2lzdGVyX3QpKGlu dHB0cl90KXRkOworCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzJdID0gKHJlZ2lzdGVyX3Qp KGludHB0cl90KXRkLT50ZF9mcmFtZTsKIAkvKiBEb250IHNldCBJRSBiaXQgaW4gU1IuIHNjaGVk IGxvY2sgcmVsZWFzZSB3aWxsIHRha2UgY2FyZSBvZiBpdCAqLwogCXBjYjItPnBjYl9jb250ZXh0 W1BDQl9SRUdfU1JdID0gU1JfSU5UX01BU0sgJiBtaXBzX3JkX3N0YXR1cygpOwogCkBAIC0zODUs NyArMzkyLDcgQEAKIAkqIGJ5dGUgYWxpZ25lZFtmb3IgY29tcGF0aWJpbGl0eSB3aXRoIDY0LWJp dCBDUFVzXQogCSogaW4gYGBTZWUgTUlQUyBSdW4nJyBieSBELiBTd2VldG1hbiwgcC4gMjY5CiAJ KiBhbGlnbiBzdGFjayAqLwotCXNwID0gKChyZWdpc3Rlcl90KShzdGFjay0+c3Nfc3AgKyBzdGFj ay0+c3Nfc2l6ZSkgJiB+MHg3KSAtCisJc3AgPSAoKHJlZ2lzdGVyX3QpKGludHB0cl90KShzdGFj ay0+c3Nfc3AgKyBzdGFjay0+c3Nfc2l6ZSkgJiB+MHg3KSAtCiAJICAgIENBTExGUkFNRV9TSVo7 CiAKIAkvKgpAQCAtMzk0LDE0ICs0MDEsMTQgQEAKIAkgKi8KIAl0ZiA9IHRkLT50ZF9mcmFtZTsK IAliemVybyh0Ziwgc2l6ZW9mKHN0cnVjdCB0cmFwZnJhbWUpKTsKLQl0Zi0+c3AgPSAocmVnaXN0 ZXJfdClzcDsKLQl0Zi0+cGMgPSAocmVnaXN0ZXJfdCllbnRyeTsKKwl0Zi0+c3AgPSBzcDsKKwl0 Zi0+cGMgPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpZW50cnk7CiAJLyogCiAJICogTUlQUyBBQkkg cmVxdWlyZXMgVDkgdG8gYmUgdGhlIHNhbWUgYXMgUEMgCiAJICogaW4gc3Vicm91dGluZSBlbnRy eSBwb2ludAogCSAqLwotCXRmLT50OSA9IChyZWdpc3Rlcl90KWVudHJ5OyAKLQl0Zi0+YTAgPSAo cmVnaXN0ZXJfdClhcmc7CisJdGYtPnQ5ID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KWVudHJ5OyAK Kwl0Zi0+YTAgPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpYXJnOwogCiAJLyoKIAkgKiBLZWVwIGlu dGVycnVwdCBtYXNrCkBAIC00MDksNyArNDE2LDcgQEAKIAl0Zi0+c3IgPSBTUl9LU1VfVVNFUiB8 IFNSX0VYTCB8IChTUl9JTlRfTUFTSyAmIG1pcHNfcmRfc3RhdHVzKCkpIHwKIAkgICAgTUlQU19T Ul9JTlRfSUU7CiAjaWZkZWYgVEFSR0VUX09DVEVPTgotCXRmLT5zciB8PSAgTUlQU19TUl9JTlRf SUUgfCBNSVBTX1NSX0NPUF8wX0JJVCB8IE1JUFNfU1JfVVggfAorCXRmLT5zciB8PSAgTUlQU19T Ul9JTlRfSUUgfCBNSVBTX1NSX0NPUF8wX0JJVCB8IE1JUFMzMl9TUl9QWCB8IE1JUFNfU1JfVVgg fAogCSAgTUlQU19TUl9LWDsKICNlbmRpZgogLyoJdGYtPnNyIHw9IChBTExfSU5UX01BU0sgJiBp ZGxlX21hc2spIHwgU1JfSU5UX0VOQUI7ICovCkBAIC00MzEsNyArNDM4LDcgQEAKIAl2YSA9IHBt YXBfa2V4dHJhY3QoKHZtX29mZnNldF90KWFkZHIpOwogCWlmICh2YSA9PSAwKQogCQlwYW5pYygi a3Z0b3A6IHplcm8gcGFnZSBmcmFtZSIpOwotCXJldHVybigoaW50KXZhKTsKKwlyZXR1cm4oKGlu dHB0cl90KXZhKTsKIH0KIAogLyoKQEAgLTU0NywxMCArNTU0LDEwIEBACiAjaW5jbHVkZSA8ZGRi L2RkYi5oPgogCiAjZGVmaW5lIERCX1BSSU5UX1JFRyhwdHIsIHJlZ25hbWUpCQkJXAotCWRiX3By aW50ZigiICAlLTEycyAweCVseFxuIiwgI3JlZ25hbWUsIChsb25nKSgocHRyKS0+cmVnbmFtZSkp CisJZGJfcHJpbnRmKCIgICUtMTJzICVwXG4iLCAjcmVnbmFtZSwgKHZvaWQgKikoaW50cHRyX3Qp KChwdHIpLT5yZWduYW1lKSkKIAogI2RlZmluZSBEQl9QUklOVF9SRUdfQVJSQVkocHRyLCBhcnJu YW1lLCByZWduYW1lKQlcCi0JZGJfcHJpbnRmKCIgICUtMTJzIDB4JWx4XG4iLCAjcmVnbmFtZSwg KGxvbmcpKChwdHIpLT5hcnJuYW1lW3JlZ25hbWVdKSkKKwlkYl9wcmludGYoIiAgJS0xMnMgJXBc biIsICNyZWduYW1lLCAodm9pZCAqKShpbnRwdHJfdCkoKHB0ciktPmFycm5hbWVbcmVnbmFtZV0p KQogCiBzdGF0aWMgdm9pZAogZHVtcF90cmFwZnJhbWUoc3RydWN0IHRyYXBmcmFtZSAqdHJhcGZy YW1lKQpJbmRleDogc3lzL21pcHMvbWlwcy9leGNlcHRpb24uUwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMv bWlwcy9taXBzL2V4Y2VwdGlvbi5TCShyZXZpc2lvbiAyMDkzNjcpCisrKyBzeXMvbWlwcy9taXBz L2V4Y2VwdGlvbi5TCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSwxNSBAQAogI2RlZmluZQlJ VExCTk9QRklYCW5vcDtub3A7bm9wO25vcDtub3A7bm9wO25vcDtub3A7bm9wO25vcDsKICNkZWZp bmUJSEFaQVJEX0RFTEFZCW5vcDtub3A7bm9wO25vcDtub3A7CiAKKy8qIFBvaW50ZXIgc2l6ZSBh bmQgbWFzayBmb3IgbjY0ICovCisjaWYgZGVmaW5lZChfX21pcHNfbjY0KQorI2RlZmluZQlQVFJT SElGVAkzCisjZGVmaW5lCVBUUk1BU0sJCTB4ZmY4CisjZWxzZQorI2RlZmluZQlQVFJTSElGVAky CisjZGVmaW5lCVBUUk1BU0sJCTB4ZmZjCisjZW5kaWYKKwogLyoKICAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoKQEAgLTEyNiwxMiArMTM1LDEyIEBACiAJLnNldCBub2F0CiBNaXBzRG9UTEJNaXNz OgogCWJsdHoJCWswLCAxZgkJCQkjMDI6IGswPDAgLT4gMWYgKGtlcm5lbCBmYXVsdCkKLQlQVFJf U1JMCQlrMCwgazAsIFNFR1NISUZUIC0gMgkJIzAzOiBrMD1zZWcgb2Zmc2V0IChhbG1vc3QpCisJ UFRSX1NSTAkJazAsIGswLCBTRUdTSElGVCAtIFBUUlNISUZUCSMwMzogazA9c2VnIG9mZnNldCAo YWxtb3N0KQogCiAJR0VUX0NQVV9QQ1BVKGsxKQogCVBUUl9MCQlrMSwgUENfU0VHQkFTRShrMSkK IAliZXF6CQlrMSwgMmYJCQkJIzA1OiBtYWtlIHN1cmUgc2VnYmFzZSBpcyBub3QgbnVsbAotCWFu ZGkJCWswLCBrMCwgMHhmZmMJCQkjMDY6IGswPXNlZyBvZmZzZXQgKG1hc2sgMHgzKQorCWFuZGkJ CWswLCBrMCwgUFRSTUFTSwkJCSMwNjogazA9c2VnIG9mZnNldAogCVBUUl9BRERVCWsxLCBrMCwg azEJCQkjMDc6IGsxPXNlZyBlbnRyeSBhZGRyZXNzCiAKIAlQVFJfTAkJazEsIDAoazEpCQkJIzA4 OiBrMT1zZWcgZW50cnkKQEAgLTE3NSw2ICsxODQsOSBAQAogCXNsbAlrMCwgazAsIDMJCQkjIHNo aWZ0IHVzZXIgYml0IGZvciBjYXVzZSBpbmRleAogCWFuZAlrMSwgazEsIENSX0VYQ19DT0RFCQkj IE1hc2sgb3V0IHRoZSBjYXVzZSBiaXRzLgogCW9yCWsxLCBrMSwgazAJCQkjIGNoYW5nZSBpbmRl eCB0byB1c2VyIHRhYmxlCisjaWYgZGVmaW5lZChfX21pcHNfbjY0KQorCVBUUl9TTEwJazEsIGsx LCAxCQkJIyBzaGlmdCB0byBnZXQgOC1ieXRlIG9mZnNldAorI2VuZGlmCiAxOgogCVBUUl9MQQlr MCwgX0NfTEFCRUwobWFjaEV4Y2VwdGlvblRhYmxlKSAgIyBnZXQgYmFzZSBvZiB0aGUganVtcCB0 YWJsZQogCVBUUl9BRERVIGswLCBrMCwgazEJCQkjIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUKQEAg LTc5OCw5ICs4MTAsOSBAQAogCWJlcXoJCWsxLCAzZgogCW5vcAogCi0JUFRSX1NSTAkJazAsIFNF R1NISUZUIC0gMgkJIyBrMD1zZWcgb2Zmc2V0IChhbG1vc3QpCisJUFRSX1NSTAkJazAsIFNFR1NI SUZUIC0gUFRSU0hJRlQJCSMgazA9c2VnIG9mZnNldCAoYWxtb3N0KQogCWJlcQkJazEsIHplcm8s IE1pcHNLZXJuR2VuRXhjZXB0aW9uCSMgPT0wIC0tIG5vIHNlZyB0YWIKLQlhbmRpCQlrMCwgazAs IDB4ZmZjCQkJIyBrMD1zZWcgb2Zmc2V0IChtYXNrIDB4MykKKwlhbmRpCQlrMCwgazAsIFBUUk1B U0sJCQkjIGswPXNlZyBvZmZzZXQKIAlQVFJfQUREVQlrMSwgazAsIGsxCQkJIyBrMT1zZWcgZW50 cnkgYWRkcmVzcwogCVBUUl9MCQlrMSwgMChrMSkJCQkjIGsxPXNlZyBlbnRyeQogCkBAIC05NjAs MTAgKzk3MiwxMCBAQAogCXNsdHUJCWsxLCBrMSwgazAJCQkjIHVwcGVyIGJvdW5kIG9mIGtlcm5l bF9zZWdtYXAKIAlibmV6CQlrMSwgTWlwc0tlcm5HZW5FeGNlcHRpb24JIyBvdXQgb2YgYm91bmQK IAlsdWkJCWsxLCAlaGkoa2VybmVsX3NlZ21hcCkJCSMgazE9aGkgb2Ygc2VnYmFzZQotCVBUUl9T UkwJCWswLCBTRUdTSElGVCAtIDIJCSMgazA9c2VnIG9mZnNldCAoYWxtb3N0KQorCVBUUl9TUkwJ CWswLCBTRUdTSElGVCAtIFBUUlNISUZUCQkjIGswPXNlZyBvZmZzZXQgKGFsbW9zdCkKIAlQVFJf TAkJazEsICVsbyhrZXJuZWxfc2VnbWFwKShrMSkJIyBrMT1zZWdtZW50IHRhYiBiYXNlCiAJYmVx CQlrMSwgemVybywgTWlwc0tlcm5HZW5FeGNlcHRpb24JIyA9PTAgLS0gbm8gc2VnIHRhYgotCWFu ZGkJCWswLCBrMCwgMHhmZmMJCQkjIGswPXNlZyBvZmZzZXQgKG1hc2sgMHgzKQorCWFuZGkJCWsw LCBrMCwgUFRSTUFTSwkJCSMgazA9c2VnIG9mZnNldAogCVBUUl9BRERVCWsxLCBrMCwgazEJCQkj IGsxPXNlZyBlbnRyeSBhZGRyZXNzCiAJUFRSX0wJCWsxLCAwKGsxKQkJCSMgazE9c2VnIGVudHJ5 CiAJTUZDMAkJazAsIENPUF8wX0JBRF9WQUREUgkJIyBrMD1iYWQgYWRkcmVzcyAoYWdhaW4pCklu ZGV4OiBzeXMvbWlwcy9taXBzL3N0YWNrX21hY2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlw cy9taXBzL3N0YWNrX21hY2hkZXAuYwkocmV2aXNpb24gMjA5MzY3KQorKysgc3lzL21pcHMvbWlw cy9zdGFja19tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIHN0YWNr X3JlZ2lzdGVyX2ZldGNoKHVfcmVnaXN0ZXJfdCBzcCwgdV9yZWdpc3Rlcl90IHN0YWNrX3BvcykK IHsKIAl1X3JlZ2lzdGVyX3QgKiBzdGFjayA9IAotCSAgICAoKHVfcmVnaXN0ZXJfdCAqKXNwICsg c3RhY2tfcG9zL3NpemVvZih1X3JlZ2lzdGVyX3QpKTsKKwkgICAgKCh1X3JlZ2lzdGVyX3QgKiko aW50cHRyX3Qpc3AgKyAoc2l6ZV90KXN0YWNrX3Bvcy9zaXplb2YodV9yZWdpc3Rlcl90KSk7CiAK IAlyZXR1cm4gKnN0YWNrOwogfQpAQCAtNTksMTkgKzU5LDIyIEBACiAKIAlmb3IgKDs7KSB7CiAJ CXN0YWNrc2l6ZSA9IDA7Ci0JCWlmIChwYyA8PSAodV9yZWdpc3Rlcl90KWJ0ZXh0KQorCQlpZiAo cGMgPD0gKHVfcmVnaXN0ZXJfdCkoaW50cHRyX3QpYnRleHQpCiAJCQlicmVhazsKLQkJZm9yIChp ID0gcGM7IGkgPj0gKHVfcmVnaXN0ZXJfdClidGV4dDsgaSAtPSBzaXplb2YgKGluc24pKSB7Ci0J CQliY29weSgodm9pZCAqKWksICZpbnNuLCBzaXplb2YgaW5zbik7CisJCWZvciAoaSA9IHBjOyBp ID49ICh1X3JlZ2lzdGVyX3QpKGludHB0cl90KWJ0ZXh0OyBpIC09IHNpemVvZiAoaW5zbikpIHsK KwkJCWJjb3B5KCh2b2lkICopKGludHB0cl90KWksICZpbnNuLCBzaXplb2YgaW5zbik7CiAJCQlz d2l0Y2ggKGluc24uSVR5cGUub3ApIHsKIAkJCWNhc2UgT1BfQURESToKIAkJCWNhc2UgT1BfQURE SVU6CisJCQljYXNlIE9QX0RBRERJOgorCQkJY2FzZSBPUF9EQURESVU6CiAJCQkJaWYgKGluc24u SVR5cGUucnMgIT0gU1AgfHwgaW5zbi5JVHlwZS5ydCAhPSBTUCkKIAkJCQkJYnJlYWs7CiAJCQkJ c3RhY2tzaXplID0gLShzaG9ydClpbnNuLklUeXBlLmltbTsKIAkJCQlicmVhazsKIAogCQkJY2Fz ZSBPUF9TVzoKKwkJCWNhc2UgT1BfU0Q6CiAJCQkJaWYgKGluc24uSVR5cGUucnMgIT0gU1AgfHwg aW5zbi5JVHlwZS5ydCAhPSBSQSkKIAkJCQkJYnJlYWs7CiAJCQkJcmFfc3RhY2tfcG9zID0gKHNo b3J0KWluc24uSVR5cGUuaW1tOwpAQCAtODgsMTMgKzkxLDEzIEBACiAJCQlicmVhazsKIAogCQlm b3IgKGkgPSBwYzsgIXJhOyBpICs9IHNpemVvZiAoaW5zbikpIHsKLQkJCWJjb3B5KCh2b2lkICop aSwgJmluc24sIHNpemVvZiBpbnNuKTsKKwkJCWJjb3B5KCh2b2lkICopKGludHB0cl90KWksICZp bnNuLCBzaXplb2YgaW5zbik7CiAKIAkJCXN3aXRjaCAoaW5zbi5JVHlwZS5vcCkgewogCQkJY2Fz ZSBPUF9TUEVDSUFMOgogCQkJCWlmKChpbnNuLlJUeXBlLmZ1bmMgPT0gT1BfSlIpKQogCQkJCXsK LQkJCQkJaWYgKHJhID49ICh1X3JlZ2lzdGVyX3QpYnRleHQpCisJCQkJCWlmIChyYSA+PSAodV9y ZWdpc3Rlcl90KShpbnRwdHJfdClidGV4dCkKIAkJCQkJCWJyZWFrOwogCQkJCQlpZiAoaW5zbi5S VHlwZS5ycyAhPSBSQSkKIAkJCQkJCWJyZWFrOwpJbmRleDogc3lzL21pcHMvbWlwcy90cmFwLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gc3lzL21pcHMvbWlwcy90cmFwLmMJKHJldmlzaW9uIDIwOTM2NykKKysr IHN5cy9taXBzL21pcHMvdHJhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC02MjUsNiArNjI1LDE1IEBA CiAJCQljb2RlID0gbG9jcjAtPnYwOwogCiAJCQlzd2l0Y2ggKGNvZGUpIHsKKyNpZiBkZWZpbmVk KF9fbWlwc19uMzIpIHx8IGRlZmluZWQoX19taXBzX242NCkKKwkJCWNhc2UgU1lTX19fc3lzY2Fs bDoKKwkJCQkvKgorCQkJCSAqIFF1YWRzIGZpdCBpbiBhIHNpbmdsZSByZWdpc3RlciBpbgorCQkJ CSAqIG5ldyBBQklzLgorCQkJCSAqCisJCQkJICogWFhYIG82ND8KKwkJCQkgKi8KKyNlbmRpZgog CQkJY2FzZSBTWVNfc3lzY2FsbDoKIAkJCQkvKgogCQkJCSAqIENvZGUgaXMgZmlyc3QgYXJndW1l bnQsIGZvbGxvd2VkIGJ5CkBAIC02MzUsOCArNjQ0LDE2IEBACiAJCQkJYXJnc1sxXSA9IGxvY3Iw LT5hMjsKIAkJCQlhcmdzWzJdID0gbG9jcjAtPmEzOwogCQkJCW5zYXZlZCA9IDM7CisjaWYgZGVm aW5lZChfX21pcHNfbjMyKSB8fCBkZWZpbmVkKF9fbWlwc19uNjQpCisJCQkJYXJnc1szXSA9IGxv Y3IwLT50NDsKKwkJCQlhcmdzWzRdID0gbG9jcjAtPnQ1OworCQkJCWFyZ3NbNV0gPSBsb2NyMC0+ dDY7CisJCQkJYXJnc1s2XSA9IGxvY3IwLT50NzsKKwkJCQluc2F2ZWQgKz0gNDsKKyNlbmRpZgog CQkJCWJyZWFrOwogCisjaWYgZGVmaW5lZChfX21pcHNfbzMyKQogCQkJY2FzZSBTWVNfX19zeXNj YWxsOgogCQkJCS8qCiAJCQkJICogTGlrZSBzeXNjYWxsLCBidXQgY29kZSBpcyBhIHF1YWQsIHNv IGFzCkBAIC02NTIsNiArNjY5LDcgQEAKIAkJCQlhcmdzWzFdID0gbG9jcjAtPmEzOwogCQkJCW5z YXZlZCA9IDI7CiAJCQkJYnJlYWs7CisjZW5kaWYKIAogCQkJZGVmYXVsdDoKIAkJCQlhcmdzWzBd ID0gbG9jcjAtPmEwOwpAQCAtNjU5LDYgKzY3NywxMyBAQAogCQkJCWFyZ3NbMl0gPSBsb2NyMC0+ YTI7CiAJCQkJYXJnc1szXSA9IGxvY3IwLT5hMzsKIAkJCQluc2F2ZWQgPSA0OworI2lmIGRlZmlu ZWQgKF9fbWlwc19uMzIpIHx8IGRlZmluZWQoX19taXBzX242NCkKKwkJCQlhcmdzWzRdID0gbG9j cjAtPnQ0OworCQkJCWFyZ3NbNV0gPSBsb2NyMC0+dDU7CisJCQkJYXJnc1s2XSA9IGxvY3IwLT50 NjsKKwkJCQlhcmdzWzddID0gbG9jcjAtPnQ3OworCQkJCW5zYXZlZCArPSA0OworI2VuZGlmCiAJ CQl9CiAjaWZkZWYgVFJBUF9ERUJVRwogCQkJcHJpbnRmKCJTWVNDQUxMICMlZCBwaWQ6JXVcbiIs IGNvZGUsIHAtPnBfcGlkKTsKQEAgLTY3NSw2ICs3MDAsMTUgQEAKIAkJCW5hcmdzID0gY2FsbHAt PnN5X25hcmc7CiAKIAkJCWlmIChuYXJncyA+IG5zYXZlZCkgeworI2lmIGRlZmluZWQoX19taXBz X24zMikgfHwgZGVmaW5lZChfX21pcHNfbjY0KQorCQkJCS8qCisJCQkJICogWFhYCisJCQkJICog SXMgdGhpcyByaWdodCBmb3IgbmV3IEFCSXM/ICBJIHRoaW5rIHRoZSA0IHRoZXJlCisJCQkJICog c2hvdWxkIGJlIDgsIHNpemUgdGhlcmUgYXJlIDggcmVnaXN0ZXJzIHRvIHNraXAsCisJCQkJICog bm90IDQsIGJ1dCBJJ20gbm90IGNlcnRhaW4uCisJCQkJICovCisJCQkJcHJpbnRmKCJTWVNDQUxM ICMldSBwaWQ6JXUsIG5hcmdzID4gbnNhdmVkLlxuIiwgY29kZSwgcC0+cF9waWQpOworI2VuZGlm CiAJCQkJaSA9IGNvcHlpbigoY2FkZHJfdCkoaW50cHRyX3QpKGxvY3IwLT5zcCArCiAJCQkJICAg IDQgKiBzaXplb2YocmVnaXN0ZXJfdCkpLCAoY2FkZHJfdCkmYXJnc1tuc2F2ZWRdLAogCQkJCSAg ICAodV9pbnQpKG5hcmdzIC0gbnNhdmVkKSAqIHNpemVvZihyZWdpc3Rlcl90KSk7CkBAIC02ODgs NiArNzIyLDE4IEBACiAJCQkJCWdvdG8gZG9uZTsKIAkJCQl9CiAJCQl9CisjaWZkZWYgVFJBUF9E RUJVRworCQkJZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspIHsKKwkJCQlwcmludGYoImFyZ3Nb JWRdID0gJSNqeFxuIiwgaSwgKGludG1heF90KWFyZ3NbaV0pOworCQkJfQorI2VuZGlmCisjaWZk ZWYgU1lTQ0FMTF9UUkFDSU5HCisJCQlwcmludGYoIiVzKCIsIHN5c2NhbGxuYW1lc1tjb2RlXSk7 CisJCQlmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykgeworCQkJCXByaW50ZigiJXMlI2p4Iiwg aSA9PSAwID8gIiIgOiAiLCAiLCAoaW50bWF4X3QpYXJnc1tpXSk7CisJCQl9CisJCQlwcmludGYo IilcbiIpOworI2VuZGlmCiAjaWZkZWYgS1RSQUNFCiAJCQlpZiAoS1RSUE9JTlQodGQsIEtUUl9T WVNDQUxMKSkKIAkJCQlrdHJzeXNjYWxsKGNvZGUsIG5hcmdzLCBhcmdzKTsKSW5kZXg6IHN5cy9t aXBzL21pcHMvcG1fbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL21pcHMvcG1fbWFj aGRlcC5jCShyZXZpc2lvbiAyMDkzNjcpCisrKyBzeXMvbWlwcy9taXBzL3BtX21hY2hkZXAuYwko d29ya2luZyBjb3B5KQpAQCAtMTQwLDE2ICsxNDAsMTYgQEAKIAogCS8qIEJ1aWxkIHRoZSBhcmd1 bWVudCBsaXN0IGZvciB0aGUgc2lnbmFsIGhhbmRsZXIuICovCiAJcmVncy0+YTAgPSBzaWc7Ci0J cmVncy0+YTIgPSAocmVnaXN0ZXJfdCkmc2ZwLT5zZl91YzsKKwlyZWdzLT5hMiA9IChyZWdpc3Rl cl90KShpbnRwdHJfdCkmc2ZwLT5zZl91YzsKIAlpZiAoU0lHSVNNRU1CRVIocHNwLT5wc19zaWdp bmZvLCBzaWcpKSB7CiAJCS8qIFNpZ25hbCBoYW5kbGVyIGluc3RhbGxlZCB3aXRoIFNBX1NJR0lO Rk8uICovCi0JCXJlZ3MtPmExID0gKHJlZ2lzdGVyX3QpJnNmcC0+c2Zfc2k7CisJCXJlZ3MtPmEx ID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KSZzZnAtPnNmX3NpOwogCQkvKiBzZi5zZl9haHUuc2Zf YWN0aW9uID0gKF9fc2lnaW5mb2hhbmRsZXJfdCAqKWNhdGNoZXI7ICovCiAKIAkJLyogZmlsbCBz aWdpbmZvIHN0cnVjdHVyZSAqLwogCQlzZi5zZl9zaS5zaV9zaWdubyA9IHNpZzsKIAkJc2Yuc2Zf c2kuc2lfY29kZSA9IGtzaS0+a3NpX2NvZGU7Ci0JCXNmLnNmX3NpLnNpX2FkZHIgPSAodm9pZCop cmVncy0+YmFkdmFkZHI7CisJCXNmLnNmX3NpLnNpX2FkZHIgPSAodm9pZCopKGludHB0cl90KXJl Z3MtPmJhZHZhZGRyOwogCX0gZWxzZSB7CiAJCS8qIE9sZCBGcmVlQlNELXN0eWxlIGFyZ3VtZW50 cy4gKi8KIAkJcmVncy0+YTEgPSBrc2ktPmtzaV9jb2RlOwpAQCAtMTcyLDEzICsxNzIsMTMgQEAK IAkJc2lnZXhpdCh0ZCwgU0lHSUxMKTsKIAl9CiAKLQlyZWdzLT5wYyA9IChyZWdpc3Rlcl90KSBj YXRjaGVyOwotCXJlZ3MtPnQ5ID0gKHJlZ2lzdGVyX3QpIGNhdGNoZXI7Ci0JcmVncy0+c3AgPSAo cmVnaXN0ZXJfdCkgc2ZwOworCXJlZ3MtPnBjID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KWNhdGNo ZXI7CisJcmVncy0+dDkgPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpY2F0Y2hlcjsKKwlyZWdzLT5z cCA9IChyZWdpc3Rlcl90KShpbnRwdHJfdClzZnA7CiAJLyoKIAkgKiBTaWduYWwgdHJhbXBvbGlu ZSBjb2RlIGlzIGF0IGJhc2Ugb2YgdXNlciBzdGFjay4KIAkgKi8KLQlyZWdzLT5yYSA9IChyZWdp c3Rlcl90KSBQU19TVFJJTkdTIC0gKihwLT5wX3N5c2VudC0+c3Zfc3pzaWdjb2RlKTsKKwlyZWdz LT5yYSA9IChyZWdpc3Rlcl90KShpbnRwdHJfdClQU19TVFJJTkdTIC0gKihwLT5wX3N5c2VudC0+ c3Zfc3pzaWdjb2RlKTsKIAlQUk9DX0xPQ0socCk7CiAJbXR4X2xvY2soJnBzcC0+cHNfbXR4KTsK IH0KQEAgLTIzMSwxMiArMjMxLDEyIEBACiAJaWYgKHVjcC0+dWNfbWNvbnRleHQubWNfcmVnc1ta RVJPXSAhPSBVQ09OVEVYVF9NQUdJQykgewogCQlwcmludGYoInNpZ3JldHVybjogcGlkICVkLCB1 Y3AgJXBcbiIsIHRkLT50ZF9wcm9jLT5wX3BpZCwgdWNwKTsKIAkJcHJpbnRmKCIgIG9sZCBzcCAl cCByYSAlcCBwYyAlcFxuIiwKLQkJICAgICh2b2lkICopcmVncy0+c3AsICh2b2lkICopcmVncy0+ cmEsICh2b2lkICopcmVncy0+cGMpOworCQkgICAgKHZvaWQgKikoaW50cHRyX3QpcmVncy0+c3As ICh2b2lkICopKGludHB0cl90KXJlZ3MtPnJhLCAodm9pZCAqKShpbnRwdHJfdClyZWdzLT5wYyk7 CiAJCXByaW50ZigiICBuZXcgc3AgJXAgcmEgJXAgcGMgJXAgeiAlcFxuIiwKLQkJICAgICh2b2lk ICopdWNwLT51Y19tY29udGV4dC5tY19yZWdzW1NQXSwKLQkJICAgICh2b2lkICopdWNwLT51Y19t Y29udGV4dC5tY19yZWdzW1JBXSwKLQkJICAgICh2b2lkICopdWNwLT51Y19tY29udGV4dC5tY19y ZWdzW1BDXSwKLQkJICAgICh2b2lkICopdWNwLT51Y19tY29udGV4dC5tY19yZWdzW1pFUk9dKTsK KwkJICAgICh2b2lkICopKGludHB0cl90KXVjcC0+dWNfbWNvbnRleHQubWNfcmVnc1tTUF0sCisJ CSAgICAodm9pZCAqKShpbnRwdHJfdCl1Y3AtPnVjX21jb250ZXh0Lm1jX3JlZ3NbUkFdLAorCQkg ICAgKHZvaWQgKikoaW50cHRyX3QpdWNwLT51Y19tY29udGV4dC5tY19yZWdzW1BDXSwKKwkJICAg ICh2b2lkICopKGludHB0cl90KXVjcC0+dWNfbWNvbnRleHQubWNfcmVnc1taRVJPXSk7CiAJCXJl dHVybiBFSU5WQUw7CiAJfQogLyogI2VuZGlmICovCkBAIC00ODMsMTIgKzQ4MywxMCBAQAogCXRk LT50ZF9mcmFtZS0+c3AgPSAoKHJlZ2lzdGVyX3QpIHN0YWNrKSAmIH4oc2l6ZW9mKF9faW50NjRf dCkgLSAxKTsKIAl0ZC0+dGRfZnJhbWUtPnBjID0gaW1ncC0+ZW50cnlfYWRkciAmIH4zOwogCXRk LT50ZF9mcmFtZS0+dDkgPSBpbWdwLT5lbnRyeV9hZGRyICYgfjM7IC8qIGFiaWNhbGwgcmVxICov Ci0jaWYgMAotLy8JdGQtPnRkX2ZyYW1lLT5zciA9IFNSX0tTVV9VU0VSIHwgU1JfRVhMIHwgU1Jf SU5UX0VOQUI7Ci0vLz8JdGQtPnRkX2ZyYW1lLT5zciB8PSAgaWRsZV9tYXNrICYgQUxMX0lOVF9N QVNLOwotI2Vsc2UKIAl0ZC0+dGRfZnJhbWUtPnNyID0gU1JfS1NVX1VTRVIgfCBTUl9FWEwgfCBT Ul9JTlRfRU5BQiB8CiAJICAgIChtaXBzX3JkX3N0YXR1cygpICYgQUxMX0lOVF9NQVNLKTsKKyNp ZiBkZWZpbmVkKF9fbWlwc19uMzIpIHx8IGRlZmluZWQoX19taXBzX242NCkKKwl0ZC0+dGRfZnJh bWUtPnNyIHw9IFNSX1BYOwogI2VuZGlmCiAjaWZkZWYgVEFSR0VUX09DVEVPTgogCXRkLT50ZF9m cmFtZS0+c3IgfD0gTUlQU19TUl9DT1BfMl9CSVQgfCBNSVBTMzJfU1JfUFggfCBNSVBTX1NSX1VY IHwK --00c09f88cf8c433dfa04898d149b Content-Type: text/x-patch; charset=US-ASCII; name="n32-kernel.patch" Content-Disposition: attachment; filename="n32-kernel.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gapjcvjn5 SW5kZXg6IHN5cy9jb25mL2xkc2NyaXB0Lm1pcHMubjMyCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9jb25m L2xkc2NyaXB0Lm1pcHMubjMyCShyZXZpc2lvbiAwKQorKysgc3lzL2NvbmYvbGRzY3JpcHQubWlw cy5uMzIJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAzIEBACisvKi0KKyAqIENvcHlyaWdodCAo YykgMjAwMSwgMjAwNCwgMjAwOCwgSnVuaXBlciBOZXR3b3JrcywgSW5jLgorICogQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0 aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEp1bmlw ZXIgTmV0d29ya3MsIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqICAgIGNvbnRyaWJ1dG9y cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t CisgKiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgSlVOSVBFUiBORVRX T1JLUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBK VU5JUEVSIE5FVFdPUktTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElS RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENB VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs IFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBE QU1BR0UuCisgKgorICoJSk5QUjogbGRzY3JpcHQubWlwcyx2IDEuMyAyMDA2LzEwLzExIDA2OjEy OjA0CisgKiAkRnJlZUJTRCQKKyAqLworCitPVVRQVVRfRk9STUFUKCJlbGYzMi1udHJhZGJpZ21p cHMiLCAiZWxmMzItbnRyYWRiaWdtaXBzIiwgCisJCSJlbGYzMi1udHJhZGxpdHRsZW1pcHMiKQor CitPVVRQVVRfQVJDSChtaXBzKQorRU5UUlkoX3N0YXJ0KQorU0VBUkNIX0RJUigvdXNyL2xpYik7 CisvKiBEbyB3ZSBuZWVkIGFueSBvZiB0aGVzZSBmb3IgZWxmPworICAgX19EWU5BTUlDID0gMDsK K1BST1ZJREUgKF9EWU5BTUlDID0gMCk7CisqLworU0VDVElPTlMKK3sKKyAgLyogUmVhZC1vbmx5 IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCisgIC4gPSBLRVJOTE9BREFE RFIgKyBTSVpFT0ZfSEVBREVSUzsKKyAgLnRleHQgICAgICA6CisgIHsKKyAgICAqKC50cmFwKQor ICAgICooLnRleHQpCisgICAgKigudGV4dC4qKQorICAgICooLnN0dWIpCisgICAgLyogLmdudS53 YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCisg ICAgKiguZ251Lndhcm5pbmcpCisgICAgKiguZ251LmxpbmtvbmNlLnQuKikKKyAgfSA9MHgxMDAw MDAwCisgIC5maW5pICAgICAgOgorICB7CisgICAgS0VFUCAoKiguZmluaSkpCisgIH0gPTB4MTAw MDAwMAorICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CisgIFBST1ZJREUgKF9ldGV4dCA9IC4pOwor ICBQUk9WSURFIChldGV4dCA9IC4pOworICAucm9kYXRhICAgOiB7ICooLnJvZGF0YSkgKigucm9k YXRhLiopICooLmdudS5saW5rb25jZS5yLiopIH0KKyAgLnJvZGF0YTEgICA6IHsgKigucm9kYXRh MSkgfQorICAuaW50ZXJwICAgICA6IHsgKiguaW50ZXJwKSAJfQorICAuaGFzaCAgICAgICAgICA6 IHsgKiguaGFzaCkJCX0KKyAgLmR5bnN5bSAgICAgICAgOiB7ICooLmR5bnN5bSkJCX0KKyAgLmR5 bnN0ciAgICAgICAgOiB7ICooLmR5bnN0cikJCX0KKyAgLmdudS52ZXJzaW9uICAgOiB7ICooLmdu dS52ZXJzaW9uKQl9CisgIC5nbnUudmVyc2lvbl9kICAgOiB7ICooLmdudS52ZXJzaW9uX2QpCX0K KyAgLmdudS52ZXJzaW9uX3IgICA6IHsgKiguZ251LnZlcnNpb25fcikJfQorICAucmVsLmluaXQg ICAgICA6IHsgKigucmVsLmluaXQpCX0KKyAgLnJlbGEuaW5pdCAgICAgOiB7ICooLnJlbGEuaW5p dCkJfQorICAucmVsLnRleHQgICAgICA6CisgICAgeworICAgICAgKigucmVsLnRleHQpCisgICAg ICAqKC5yZWwudGV4dC4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS50LiopCisgICAgfQor ICAucmVsYS50ZXh0ICAgICA6CisgICAgeworICAgICAgKigucmVsYS50ZXh0KQorICAgICAgKigu cmVsYS50ZXh0LiopCisgICAgICAqKC5yZWxhLmdudS5saW5rb25jZS50LiopCisgICAgfQorICAu cmVsLmZpbmkgICAgICA6IHsgKigucmVsLmZpbmkpCX0KKyAgLnJlbGEuZmluaSAgICAgOiB7ICoo LnJlbGEuZmluaSkJfQorICAucmVsLnJvZGF0YSAgICA6CisgICAgeworICAgICAgKigucmVsLnJv ZGF0YSkKKyAgICAgICooLnJlbC5yb2RhdGEuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2Uu ci4qKQorICAgIH0KKyAgLnJlbGEucm9kYXRhICAgOgorICAgIHsKKyAgICAgICooLnJlbGEucm9k YXRhKQorICAgICAgKigucmVsYS5yb2RhdGEuKikKKyAgICAgICooLnJlbGEuZ251LmxpbmtvbmNl LnIuKikKKyAgICB9CisgIC5yZWwuZGF0YSAgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWwuZGF0 YSkKKyAgICAgICooLnJlbC5kYXRhLiopCisgICAgICAqKC5yZWwuZ251LmxpbmtvbmNlLmQuKikK KyAgICB9CisgIC5yZWxhLmRhdGEgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWxhLmRhdGEpCisg ICAgICAqKC5yZWxhLmRhdGEuKikKKyAgICAgICooLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKKyAg ICB9CisgIC5yZWwuY3RvcnMgICAgIDogeyAqKC5yZWwuY3RvcnMpCX0KKyAgLnJlbGEuY3RvcnMg ICAgOiB7ICooLnJlbGEuY3RvcnMpCX0KKyAgLnJlbC5kdG9ycyAgICAgOiB7ICooLnJlbC5kdG9y cykJfQorICAucmVsYS5kdG9ycyAgICA6IHsgKigucmVsYS5kdG9ycykJfQorICAucmVsLmdvdCAg ICAgICA6IHsgKigucmVsLmdvdCkJCX0KKyAgLnJlbGEuZ290ICAgICAgOiB7ICooLnJlbGEuZ290 KQkJfQorICAucmVsLnNkYXRhICAgICA6CisgICAgeworICAgICAgKigucmVsLnNkYXRhKQorICAg ICAgKigucmVsLnNkYXRhLiopCisgICAgICAqKC5yZWwuZ251LmxpbmtvbmNlLnMuKikKKyAgICB9 CisgIC5yZWxhLnNkYXRhICAgICA6CisgICAgeworICAgICAgKigucmVsYS5zZGF0YSkKKyAgICAg ICooLnJlbGEuc2RhdGEuKikKKyAgICAgICooLnJlbGEuZ251LmxpbmtvbmNlLnMuKikKKyAgICB9 CisgIC5yZWwuc2JzcyAgICAgIDoKKyAgICB7IAorICAgICAgKigucmVsLnNic3MpCisgICAgICAq KC5yZWwuc2Jzcy4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS5zYi4qKQorICAgIH0KKyAg LnJlbGEuc2JzcyAgICAgOgorICAgIHsKKyAgICAgICooLnJlbGEuc2JzcykKKyAgICAgICooLnJl bGEuc2Jzcy4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS5zYi4qKQorICAgIH0KKyAgLnJl bC5zZGF0YTIgICAgOiAKKyAgICB7IAorICAgICAgKigucmVsLnNkYXRhMikKKyAgICAgICooLnJl bC5zZGF0YTIuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2UuczIuKikKKyAgICB9CisgIC5y ZWxhLnNkYXRhMiAgIDogCisgICAgeworICAgICAgKigucmVsYS5zZGF0YTIpCisgICAgICAqKC5y ZWxhLnNkYXRhMi4qKQorICAgICAgKigucmVsYS5nbnUubGlua29uY2UuczIuKikKKyAgICB9Cisg IC5yZWwuc2JzczIgICAgIDogCisgICAgeyAKKyAgICAgICooLnJlbC5zYnNzMikJCisgICAgICAq KC5yZWwuc2JzczIuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2Uuc2IyLiopCisgICAgfQor ICAucmVsYS5zYnNzMiAgICA6IAorICAgIHsgCisgICAgICAqKC5yZWxhLnNic3MyKQkKKyAgICAg ICooLnJlbGEuc2JzczIuKikKKyAgICAgICooLnJlbGEuZ251LmxpbmtvbmNlLnNiMi4qKQorICAg IH0KKyAgLnJlbC5ic3MgICAgICAgOiAKKyAgICB7IAorICAgICAgKigucmVsLmJzcykKKyAgICAg ICooLnJlbC5ic3MuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2UuYi4qKQorICAgIH0KKyAg LnJlbGEuYnNzICAgICAgOiAKKyAgICB7IAorICAgICAgKigucmVsYS5ic3MpCisgICAgICAqKC5y ZWxhLmJzcy4qKQorICAgICAgKigucmVsYS5nbnUubGlua29uY2UuYi4qKQorICAgIH0KKyAgLnJl bC5wbHQgICAgICAgOiB7ICooLnJlbC5wbHQpCQl9CisgIC5yZWxhLnBsdCAgICAgIDogeyAqKC5y ZWxhLnBsdCkJCX0KKyAgLmluaXQgICAgICAgICAgOiAKKyAgeyAKKyAgICBLRUVQICgqKC5pbml0 KSkKKyAgfSA9MHgxMDAwMDAwCisgIC5yZWdpbmZvIDogeyAqKC5yZWdpbmZvKSB9CisgIC5zZGF0 YTIgICA6IHsgKiguc2RhdGEyKSAqKC5zZGF0YTIuKikgKiguZ251LmxpbmtvbmNlLnMyLiopIH0K KyAgLnNic3MyICAgOiB7ICooLnNic3MyKSAqKC5zYnNzMi4qKSAqKC5nbnUubGlua29uY2Uuc2Iy LiopIH0KKyAgLiA9IEFMSUdOKDB4MjAwMCkgKyAoLiAmICgweDIwMDAgLSAxKSk7CisgIC5kYXRh ICAgIDoKKyAgeworICAgICooLmRhdGEpCisgICAgKiguZGF0YS4qKQorICAgICooLmdudS5saW5r b25jZS5kLiopCisgICAgU09SVChDT05TVFJVQ1RPUlMpCisgIH0KKyAgLmRhdGExICAgOiB7ICoo LmRhdGExKSB9CisgIC5laF9mcmFtZSA6IHsgS0VFUCAoKiguZWhfZnJhbWUpKSB9CisgIC5nY2Nf ZXhjZXB0X3RhYmxlIDogeyAqKC5nY2NfZXhjZXB0X3RhYmxlKSB9CisgIC5jdG9ycyAgIDogCisg IHsKKyAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCisgICAg ICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCisgICAgICAgZmlyc3Qu ICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKKyAgICAgICBkb2Vzbid0IG1hdHRlciBp ZiB0aGUgdXNlciBkb2VzIG5vdAorICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdp bi5vOyB0aGUKKyAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEK KyAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKKyAgICAg ICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubworICAgICAgIGlzIGlu LiAgKi8KKyAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQorICAgIC8qIFdlIGRvbid0IHdh bnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCisgICAgICAgZnJvbSB0aGUgY3J0 ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgorICAgICAgIFRoZSAuY3Rv ciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQorICAgICAgIGVuZCBv ZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLworICAgIEtFRVAgKCooRVhDTFVE RV9GSUxFICgqY3J0ZW5kLm8gKSAuY3RvcnMpKQorICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikp KQorICAgIEtFRVAgKCooLmN0b3JzKSkKKyAgfQorICAgLmR0b3JzICAgICAgICAgOgorICB7Cisg ICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKKyAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAo KmNydGVuZC5vICkgLmR0b3JzKSkKKyAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKKyAgICBL RUVQICgqKC5kdG9ycykpCisgIH0KKyAgLnBsdCAgICAgIDogeyAqKC5wbHQpCX0KKyAgX2dwID0g QUxJR04oMTYpICsgMHg3ZmYwOworICAuZ290CQkgIDogeyAqKC5nb3QucGx0KSAqKC5nb3QpIH0K KyAgLmR5bmFtaWMgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KKyAgLyogV2Ugd2FudCB0aGUgc21h bGwgZGF0YSBzZWN0aW9ucyB0b2dldGhlciwgc28gc2luZ2xlLWluc3RydWN0aW9uIG9mZnNldHMK KyAgICAgY2FuIGFjY2VzcyB0aGVtIGFsbCwgYW5kIGluaXRpYWxpemVkIGRhdGEgYWxsIGJlZm9y ZSB1bmluaXRpYWxpemVkLCBzbworICAgICB3ZSBjYW4gc2hvcnRlbiB0aGUgb24tZGlzayBzZWdt ZW50IHNpemUuICAqLworICAuc2RhdGEgICAgIDogCisgIHsKKyAgICAqKC5zZGF0YSkgCisgICAg Kiguc2RhdGEuKikKKyAgICAqKC5nbnUubGlua29uY2Uucy4qKQorICB9CisgIF9lZGF0YSA9IC47 CisgIFBST1ZJREUgKGVkYXRhID0gLik7CisgIF9fYnNzX3N0YXJ0ID0gLjsKKyAgLnNic3MgICAg ICA6CisgIHsKKyAgICBQUk9WSURFIChfX3Nic3Nfc3RhcnQgPSAuKTsKKyAgICBQUk9WSURFIChf X19zYnNzX3N0YXJ0ID0gLik7CisgICAgKiguZHluc2JzcykKKyAgICAqKC5zYnNzKQorICAgICoo LnNic3MuKikKKyAgICAqKC5nbnUubGlua29uY2Uuc2IuKikKKyAgICAqKC5zY29tbW9uKQorICAg IFBST1ZJREUgKF9fc2Jzc19lbmQgPSAuKTsKKyAgICBQUk9WSURFIChfX19zYnNzX2VuZCA9IC4p OworICB9CisgIC5ic3MgICAgICAgOgorICB7CisgICAqKC5keW5ic3MpCisgICAqKC5ic3MpCisg ICAqKC5ic3MuKikKKyAgICooLmdudS5saW5rb25jZS5iLiopCisgICAqKENPTU1PTikKKyAgIC8q IEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFj ZSB1cCB0bworICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3Qg YWxpZ25tZW50IGV2ZW4gaWYgdGhlCisgICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNh dXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4gICovCisgICAuID0gQUxJR04oNjQgLyA4 KTsKKyAgfQorICAuID0gQUxJR04oNjQgLyA4KTsKKyAgX2VuZCA9IC47CisgIFBST1ZJREUgKGVu ZCA9IC4pOworICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLworICAuc3RhYiAwIDog eyAqKC5zdGFiKSB9CisgIC5zdGFic3RyIDAgOiB7ICooLnN0YWJzdHIpIH0KKyAgLnN0YWIuZXhj bCAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KKyAgLnN0YWIuZXhjbHN0ciAwIDogeyAqKC5zdGFiLmV4 Y2xzdHIpIH0KKyAgLnN0YWIuaW5kZXggMCA6IHsgKiguc3RhYi5pbmRleCkgfQorICAuc3RhYi5p bmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CisgIC5jb21tZW50IDAgOiB7ICooLmNv bW1lbnQpIH0KKyAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCisgICAgIFN5bWJvbHMgaW4gdGhl IERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwor ICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLworICAvKiBEV0FS RiAxICovCisgIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQorICAubGluZSAgICAg ICAgICAgMCA6IHsgKigubGluZSkgfQorICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCisg IC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CisgIC5kZWJ1Z19zZm5h bWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CisgIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYg MiAqLworICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQorICAuZGVi dWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KKyAgLyogRFdBUkYgMiAqLwor ICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgKiguZ251LmxpbmtvbmNlLndp LiopIH0KKyAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQorICAuZGVi dWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSkgfQorICAuZGVidWdfZnJhbWUgICAgMCA6 IHsgKiguZGVidWdfZnJhbWUpIH0KKyAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0 cikgfQorICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CisgIC5kZWJ1Z19t YWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CisgIC8qIFNHSS9NSVBTIERXQVJGIDIg ZXh0ZW5zaW9ucyAqLworICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1l cykgfQorICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQorICAu ZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQorICAuZGVidWdfdmFy bmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CisgIC8qIFRoZXNlIG11c3QgYXBwZWFy IHJlZ2FyZGxlc3Mgb2YgIC4gICovCit9CkluZGV4OiBzeXMvbWlwcy9jb25mL1hMUk4zMgo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBzeXMvbWlwcy9jb25mL1hMUk4zMgkocmV2aXNpb24gMCkKKysrIHN5cy9taXBz L2NvbmYvWExSTjMyCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2MyBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjUk1JX0JTRCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDkgUk1JIENvcnBvcmF0aW9uCisjIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisjIAorIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0 aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIFJNSSBDb3Jwb3Jh dGlvbiwgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzLAorIyAgICBtYXkgYmUgdXNl ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdh cmUKKyMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjIAor IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9S UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorIyBB UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVU T1JTIEJFIExJQUJMRQorIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworIyBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO VEVSUlVQVElPTikKKyMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyMgTElBQklMSVRZLCBPUiBUT1JUIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorIyBP VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP U1NJQklMSVRZIE9GCisjIFNVQ0ggREFNQUdFLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjUk1JX0JTRCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgWExS IC0tIEdlbmVyaWMga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgRnJlZUJTRC9taXBzCisj CisjIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZmlsZSwgcGxlYXNlIHJlYWQgdGhlIGhh bmRib29rIHNlY3Rpb24gb24KKyMgS2VybmVsIENvbmZpZ3VyYXRpb24gRmlsZXM6CisjCisjICAg IGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4NTktMS9ib29rcy9oYW5kYm9v ay9rZXJuZWxjb25maWctY29uZmlnLmh0bWwKKyMKKyMgVGhlIGhhbmRib29rIGlzIGFsc28gYXZh aWxhYmxlIGxvY2FsbHkgaW4gL3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sKKyMgaWYgeW91J3ZlIGlu c3RhbGxlZCB0aGUgZG9jIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIGFsd2F5cyBzZWUgdGhlCisj IEZyZWVCU0QgV29ybGQgV2lkZSBXZWIgc2VydmVyIChodHRwOi8vd3d3LkZyZWVCU0Qub3JnLykg Zm9yIHRoZQorIyBsYXRlc3QgaW5mb3JtYXRpb24uCisjCisjIEFuIGV4aGF1c3RpdmUgbGlzdCBv ZiBvcHRpb25zIGFuZCBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9ucyBvZiB0aGUKKyMgZGV2aWNl IGxpbmVzIGlzIGFsc28gcHJlc2VudCBpbiB0aGUgLi4vLi4vY29uZi9OT1RFUyBhbmQgTk9URVMg ZmlsZXMuIAorIyBJZiB5b3UgYXJlIGluIGRvdWJ0IGFzIHRvIHRoZSBwdXJwb3NlIG9yIG5lY2Vz c2l0eSBvZiBhIGxpbmUsIGNoZWNrIGZpcnN0IAorIyBpbiBOT1RFUy4KKyMKKyMgJEZyZWVCU0Q6 IGhlYWQvc3lzL21pcHMvY29uZi9YTFIgMjA4MTY1IDIwMTAtMDUtMTYgMTk6NDM6NDhaIHJycyAk CisKK21hY2hpbmUgCW1pcHMKK2NwdSAJCUNQVV9NSVBTNEtDCitpZGVudCAJCVhMUgorCittYWtl b3B0aW9ucwlNT0RVTEVTX09WRVJSSURFPSIiCittYWtlb3B0aW9ucyAgICAgVEFSR0VUX0JJR19F TkRJQU4KKyMKKworaW5jbHVkZQkJIi4uL3JtaS9zdGQueGxyIgorCisKK21ha2VvcHRpb25zCURF QlVHPS1nCQkjIEJ1aWxkIGtlcm5lbCB3aXRoIGdkYigxKSBkZWJ1ZyBzeW1ib2xzCittYWtlb3B0 aW9ucwlBUkNIX0ZMQUdTPSItbWFyY2g9bWlwczY0IC1tYWJpPW4zMiIKK21ha2VvcHRpb25zCUxE U0NSSVBUX05BTUU9bGRzY3JpcHQubWlwcy5uMzIKKworI3Byb2ZpbGUJCTIKKworb3B0aW9ucyAJ U0NIRURfVUxFCQkjIFVMRSBzY2hlZHVsZXIKKyNvcHRpb25zCQlWRVJCT1NFX1NZU0lOSVQKKyNv cHRpb25zIAlTQ0hFRF80QlNECQkjIDRCU0Qgc2NoZWR1bGVyCitvcHRpb25zICAgICAgICAgU01Q CitvcHRpb25zIAlQUkVFTVBUSU9OCQkjIEVuYWJsZSBrZXJuZWwgdGhyZWFkIHByZWVtcHRpb24K KyNvcHRpb25zIAlGVUxMX1BSRUVNUFRJT04JCSMgRW5hYmxlIGtlcm5lbCB0aHJlYWQgcHJlZW1w dGlvbgorb3B0aW9ucyAJSU5FVAkJCSMgSW50ZXJORVR3b3JraW5nCitvcHRpb25zIAlJTkVUNgkJ CSMgSVB2NiBjb21tdW5pY2F0aW9ucyBwcm90b2NvbHMKK29wdGlvbnMgCUZGUwkJCSMgQmVya2Vs ZXkgRmFzdCBGaWxlc3lzdGVtCisjb3B0aW9ucyAJU09GVFVQREFURVMJCSMgRW5hYmxlIEZGUyBz b2Z0IHVwZGF0ZXMgc3VwcG9ydAorb3B0aW9ucyAJVUZTX0FDTAkJCSMgU3VwcG9ydCBmb3IgYWNj ZXNzIGNvbnRyb2wgbGlzdHMKK29wdGlvbnMgCVVGU19ESVJIQVNICQkjIEltcHJvdmUgcGVyZm9y bWFuY2Ugb24gYmlnIGRpcmVjdG9yaWVzCitvcHRpb25zCQlORlNDTElFTlQKK29wdGlvbnMJCU5G U19ST09UCisjCitvcHRpb25zICAgICAgICAgQk9PVFAKK29wdGlvbnMgICAgICAgICBCT09UUF9O RlNST09UCitvcHRpb25zICAgICAgICAgQk9PVFBfTkZTVjMKK29wdGlvbnMgICAgICAgICBCT09U UF9XSVJFRF9UTz1yZ2UwCitvcHRpb25zICAgICAgICAgQk9PVFBfQ09NUEFUCitvcHRpb25zCQlS T09UREVWTkFNRT1cIm5mczoxMC4xLjEuODovdXNyL2V4dHJhL25mc3Jvb3RcIgorIworI29wdGlv bnMgCU1EX1JPT1QJCQkjIE1EIGlzIGEgcG90ZW50aWFsIHJvb3QgZGV2aWNlCisjb3B0aW9ucwkJ TURfUk9PVF9TSVpFPTI3MDAwCisjb3B0aW9ucwkJTURfUk9PVF9TSVpFPTUxMjAKKyNvcHRpb25z CQlST09UREVWTkFNRT1cInVmczptZDBcIgorb3B0aW9ucyAJX0tQT1NJWF9QUklPUklUWV9TQ0hF RFVMSU5HICMgUE9TSVggUDEwMDNfMUIgcmVhbC10aW1lIGV4dGVuc2lvbnMKK29wdGlvbnMgCUha PTEwMDAJCitvcHRpb25zIAlOT19TV0FQUElORworCisjRGVidWdnaW5nIG9wdGlvbnMKK29wdGlv bnMgCUtUUkFDRQkJCSMga3RyYWNlKDEpIHN1cHBvcnQKK29wdGlvbnMgCUREQgorb3B0aW9ucyAJ S0RCCitvcHRpb25zIAlHREIKK29wdGlvbnMgCUFMVF9CUkVBS19UT19ERUJVR0dFUgorI29wdGlv bnMgCURFQURMS1JFUwkJI0VuYWJsZSB0aGUgZGVhZGxvY2sgcmVzb2x2ZXIKK29wdGlvbnMgCUlO VkFSSUFOVFMJCSNFbmFibGUgY2FsbHMgb2YgZXh0cmEgc2FuaXR5IGNoZWNraW5nCitvcHRpb25z IAlJTlZBUklBTlRfU1VQUE9SVAkjRXh0cmEgc2FuaXR5IGNoZWNrcyBvZiBpbnRlcm5hbCBzdHJ1 Y3R1cmVzLCByZXF1aXJlZCBieSBJTlZBUklBTlRTCisjb3B0aW9ucyAJV0lUTkVTUwkJCSNFbmFi bGUgY2hlY2tzIHRvIGRldGVjdCBkZWFkbG9ja3MgYW5kIGN5Y2xlcworI29wdGlvbnMgCVdJVE5F U1NfU0tJUFNQSU4JI0Rvbid0IHJ1biB3aXRuZXNzIG9uIHNwaW5sb2NrcyBmb3Igc3BlZWQKKyNv cHRpb25zIAlLVFIJCQkjIGt0cig0KSBhbmQga3RyZHVtcCg4KSBzdXBwb3J0Cisjb3B0aW9ucyAJ S1RSX0NPTVBJTEU9KEtUUl9MT0NLfEtUUl9QUk9DfEtUUl9JTlRSfEtUUl9DQUxMT1VUfEtUUl9V TUF8S1RSX1NZU0N8S1RSX0NSSVRJQ0FMKQorI29wdGlvbnMgCUtUUl9FTlRSSUVTPTEzMTA3Mgor I29wdGlvbnMgCU1VVEVYX0RFQlVHCisjb3B0aW9ucyAJTVVURVhfUFJPRklMSU5HCisKK2Rldmlj ZQkJcGNpCisjZGV2aWNlCQlhdGEKKyNkZXZpY2UJCWF0YWRpc2sKKyNvcHRpb25zIAlYTFJfUEVS Rk1PTgkJIyBFbmFibGUgWExSIHByb2Nlc3NvciBhY3Rpdml0eSBtb25pdG9yaW5nCitvcHRpb25z ICAJQlJFQUtfVE9fREVCVUdHRVIKKyNkZXZpY2UgCQlnZW5jbG9jaworZGV2aWNlIAkJdWFydAor IyBQc2V1ZG8KK2RldmljZSAJCWxvb3AKK2RldmljZSAJCXJhbmRvbQorZGV2aWNlIAkJbWQKK2Rl dmljZSAJCW1lbQorZGV2aWNlIAkJcHR5CitkZXZpY2UJCWJwZgorCisjIE5ldHdvcmsKK2Rldmlj ZQkJbWlpYnVzCitkZXZpY2UJCXJnZQorZGV2aWNlIAkJZXRoZXIKK2RldmljZQkJcmUKK2Rldmlj ZQkJbXNrCisKK2RldmljZSAgICAgICAgICBkYQorZGV2aWNlICAgICAgICAgIHNjYnVzCisjZGV2 aWNlICAgICAgICAgIG9oY2kgICAgICAgICAgICAjIE9IQ0kgUENJLT5VU0IgaW50ZXJmYWNlCitk ZXZpY2UgICAgICAgICAgZWhjaSAgICAgICAgICAgICMgRUhDSSBQQ0ktPlVTQiBpbnRlcmZhY2Ug KFVTQiAyLjApCitkZXZpY2UgICAgICAgICAgdXNiICAgICAgICAgICAgICMgVVNCIEJ1cyAocmVx dWlyZWQpCitvcHRpb25zIAlVU0JfREVCVUcJIyBlbmFibGUgZGVidWcgbXNncworI2RldmljZSAg ICAgICAgIHVkYnAgICAgICAgICAgICAjIFVTQiBEb3VibGUgQnVsayBQaXBlIGRldmljZXMKKyNk ZXZpY2UgICAgICAgICAgdWdlbiAgICAgICAgICAgICMgR2VuZXJpYworI2RldmljZSAgICAgICAg ICB1aGlkICAgICAgICAgICAgIyAiSHVtYW4gSW50ZXJmYWNlIERldmljZXMiCitkZXZpY2UgICAg ICAgICAgdW1hc3MgICAgICAgICAgICMgRGlza3MvTWFzcyBzdG9yYWdlIC0gUmVxdWlyZXMgc2Ni dXMgYW5kIGRhCisKKyNkZXZpY2UJCWNmaQorCisjaTJjCisjIE5vdCB5ZXQKKyNkZXZpY2UgICAg ICBpYworI2RldmljZSAgICAgIGlpYworI2RldmljZSAgICAgIGlpY2JiCisjZGV2aWNlICAgICAg aWljYnVzCisjZGV2aWNlICAgICAgeGxyX3J0YworI2RldmljZSAgICAgIHhscl90ZW1wZXJhdHVy ZQorI2RldmljZSAgICAgIHhscl9lZXByb20KKworI2NyeXB0bworIyBOb3QgeWV0CisjZGV2aWNl IGNyeXB0b2RldgorI2RldmljZSBjcnlwdG8KKyNkZXZpY2Ugcm1pc2VjCitvcHRpb25zCQlJU0Ff TUlQUzY0CittYWtlb3B0aW9ucwlLRVJOTE9BREFERFI9MHg4MDEwMDAwMAo= --00c09f88cf8c433dfa04898d149b--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTim5aGluEVgYQQxgBDn2aJIuUIIMszmk7D3lVEGi>