this patch + fixes for features/fcntl.c rolled in for the next alpha

On Fri, 19 Jul 2013 20:49:54 +0200 Irek Szczesniak wrote:
> --001a11c28aa2dd24c204e1e1caeb
> Content-Type: text/plain; charset=ISO-8859-1

> On Fri, Jul 19, 2013 at 1:54 PM, Philippe Bergheaud
> <[email protected]> wrote:
> > On the following platform:
> > Linux version 2.6.32-5-686 (Debian 2.6.32-46)
> > gcc version 4.3.5 (Debian 4.3.5-4)
> >
> > ksh93 compiles, but fails to initialize:
> > $ strace ~/ast-base.2013-06-28/arch/linux.i386/bin/ksh
> > [...]
> > openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECT) = -1 EINVAL (Invalid
> > argument)
> > write(2, "ksh: Can't obtain directory fd. "..., 51ksh: Can't obtain
> > directory fd. [Invalid argument]) = 51
> > --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> > +++ killed by SIGSEGV +++
> > Memory fault
> >
> > the cause for EINVAL is the flag displayed by strace as O_DIRECT
> > it happens that O_DIRECT and O_SEARCH collide: both of them are 040000
> > nullifying O_SEARCH with #define O_SEARCH 0 is a possible workaround
> > (but probably not a fix)

> Roland Mainz send a large patch cluster to
> [email protected] to address these problems. I've
> attached the patches for you.

> Irek

> --001a11c28aa2dd24c204e1e1caeb
> Content-Type: text/plain; charset=US-ASCII; 
> name="astksh20130628_solaris_fixes005.diff.txt"
> Content-Disposition: attachment; 
>       filename="astksh20130628_solaris_fixes005.diff.txt"
> Content-Transfer-Encoding: base64
> X-Attachment-Id: f_hjbqrri40

> ZGlmZiAtciAtdSBidWlsZF9pMzg2XzY0Yml0X2RlYnVnL3NyYy9jbWQva3NoOTMvYmx0aW5zL2Nk
> X3B3ZC5jIGJ1aWxkX2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvY21kL2tzaDkzL2JsdGlu
> cy9jZF9wd2QuYwotLS0gc3JjL2NtZC9rc2g5My9ibHRpbnMvY2RfcHdkLmMJMjAxMy0wNi0yNiAy
> MjoxMjoyOC4wMDAwMDAwMDAgKzAyMDAKKysrIHNyYy9jbWQva3NoOTMvYmx0aW5zL2NkX3B3ZC5j
> CTIwMTMtMDctMDggMTQ6MzM6MjYuMDM2ODA3NTc5ICswMjAwCkBAIC01NSw5ICs1NSwxNyBAQAog
> ICovCiBpbnQgc2hfZGlyb3BlbmF0KFNoZWxsX3QgKnNocCwgaW50IGRpciwgY29uc3QgY2hhciAq
> cGF0aCwgYm9vbCB4YXR0cikKIHsKKyNpZmRlZiBPX0RJUkVDVE9SWQorI2RlZmluZSBPX2RpcmVj
> dG9yeSAoT19ESVJFQ1RPUlkpCisjZWxzZQorI2RlZmluZSBPX2RpcmVjdG9yeSAoMCkKKyNlbmRp
> ZgorCiAJaW50IGZkLHNoZmQ7Ci0JaW50IHNhdmVkZXJybm89ZXJybm87CisJaW50IHNhdmVkZXJy
> bm87CisjaWZuZGVmIE9fRElSRUNUT1JZCiAJc3RydWN0IHN0YXQgZnM7CisjZW5kaWYKICNpZm5k
> ZWYgT19YQVRUUgogCU5PVF9VU0VEKHhhdHRyKTsKICNlbmRpZgpAQCAtNzAsMjQgKzc4LDU5IEBA
> CiAJCWlmKChhcGZkID0gb3BlbmF0KGRpciwgcGF0aCwgT19SRE9OTFl8T19OT05CTE9DS3xPX2Ns
> b2V4ZWMpKT49MCkKIAkJewogCQkJZmQgPSBvcGVuYXQoYXBmZCwgZV9kb3QsIE9fWEFUVFJ8T19j
> bG9leGVjKTsKKwkJCXNhdmVkZXJybm89ZXJybm87CiAJCQljbG9zZShhcGZkKTsKKwkJCWVycm5v
> PXNhdmVkZXJybm87CisJCX0KKwkJZWxzZQorCQl7CisJCQlyZXR1cm4gLTE7CiAJCX0KIAl9CiAJ
> ZWxzZQogI2VuZGlmCi0JCWZkID0gb3BlbmF0KGRpciwgcGF0aCwgT19TRUFSQ0h8T19OT05CTE9D
> S3xPX2Nsb2V4ZWMpOworCXsKKwkJLyoKKwkJICogT3BlbiBkaXJlY3RvcnkuIEZpcnN0IHdlIHRy
> eSB3aXRob3V0IHxPX1NFQVJDSHwgYW5kCisJCSAqIGlmIHRoaXMgZmFpbHMgd2l0aCBFQUNDRVNT
> IHdlIHRyeSB3aXRoIHxPX1NFQVJDSHwKKwkJICogYWdhaW4uCisJCSAqIFRoaXMgaXMgcmVxdWly
> ZWQgLi4uCisJCSAqIC0gLi4uIGJlY2F1c2Ugc29tZSBwbGF0Zm9ybXMgbWF5IHJlcXVpcmUgdGhh
> dCBpdCBjYW4KKwkJICogb25seSBiZSB1c2VkIGZvciBkaXJlY3RvcmllcyB3aGlsZSBzb21lIGZp
> bGVzeXN0ZW1zCisJCSAqIChlLmcuIFJlaXNlcjQgb3IgSFNNIHN5c3RlbXMpIGFsbG93IGEgfGZj
> aGRpcigpfCBpbnRvCisJCSAqIGZpbGVzLCB0b28pCisJCSAqIC0gLi4uIHRvIHByZXNlcnZlIHRo
> ZSBzZW1hbnRpY3Mgb2YgImNkIiwgZS5nLgorCQkgKiBvdGhlcndpc2UgImNkIiB3b3VsZCByZXR1
> cm4gW05vIGFjY2Vzc10gaW5zdGVhZCBvZgorCQkgKiBbTm90IGEgZGlyZWN0b3J5XSBmb3IgZmls
> ZXMgb24gZmlsZXN5c3RlbXMgd2hpY2ggZG8KKwkJICogbm90IGFsbG93IGEgImNkIiBpbnRvIGZp
> bGVzLgorCQkgKiAtIC4uLiB0byBhbGxvdyB0aGF0IGEKKwkJICogJCByZWRpcmVjdCB7bn08L2V0
> YyA7IGNkIC9kZXYvZmQvJG4gIyB3b3JrcyBvbiBtb3N0CisJCSAqIHBsYXRmb3Jtcy4KKwkJICov
> CisKKwkJZmQgPSBvcGVuYXQoZGlyLCBwYXRoLCBPX2RpcmVjdG9yeXxPX05PTkJMT0NLfE9fY2xv
> ZXhlYyk7CisJCWlmICgoZmQgPCAwKSAmJiAoZXJybm8gPT0gRUFDQ0VTKSkKKwkJeworCQkJZmQg
> PSBvcGVuYXQoZGlyLCBwYXRoLCBPX1NFQVJDSHxPX2RpcmVjdG9yeXxPX05PTkJMT0NLfE9fY2xv
> ZXhlYyk7CisJCX0KKwl9CiAKIAlpZihmZCA8IDApCisJewogCQlyZXR1cm4gZmQ7CisJfQorCisj
> aWZuZGVmIE9fRElSRUNUT1JZCiAJaWYgKCFmc3RhdChmZCwgJmZzKSAmJiAhU19JU0RJUihmcy5z
> dF9tb2RlKSkKIAl7CiAJCWNsb3NlKGZkKTsKIAkJZXJybm8gPSBFTk9URElSOwogCQlyZXR1cm4g
> LTE7CiAJfQorI2VuZGlmCiAKIAkvKiBNb3ZlIGZkIHRvIGEgbnVtYmVyID4gMTAgYW5kIHJlZ2lz
> dGVyIHRoZSBmZCBudW1iZXIgd2l0aCB0aGUgc2hlbGwgKi8KLQlzaGZkID0gZmNudGwoZmQsIEZf
> ZHVwZmRfY2xvZXhlYywgMTApOworCXNoZmQgPSBzaF9mY250bChmZCwgRl9kdXBmZF9jbG9leGVj
> LCAxMCk7CiAJc2F2ZWRlcnJubz1lcnJubzsKIAljbG9zZShmZCk7CiAJZXJybm89c2F2ZWRlcnJu
> bzsKQEAgLTE0OSw3ICsxOTIsNyBAQAogCXJlZ2lzdGVyIFNoZWxsX3QgKnNocCA9IGNvbnRleHQt
> PnNocDsKIAlpbnQgc2F2ZXJybm89MDsKIAlpbnQgcnZhbDsKLQlib29sIGZsYWc9ZmFsc2UseGF0
> dHI9ZmFsc2UsIHVzZV9kZXZmZD1mYWxzZTsKKwlib29sIHBmbGFnPWZhbHNlLHhhdHRyPWZhbHNl
> LCB1c2VfZGV2ZmQ9ZmFsc2U7CiAJY2hhciAqb2xkcHdkLCpjcDsKIAlzdHJ1Y3Qgc3RhdCBzdGF0
> YjsKIAlpbnQgZGlyZmQgPSBzaHAtPnB3ZGZkOwpAQCAtMTY0LDEwICsyMDcsMTAgQEAKIAkJCWRp
> cmZkID0gb3B0X2luZm8ubnVtOwogCQkJYnJlYWs7CiAJCWNhc2UgJ0wnOgotCQkJZmxhZyA9IGZh
> bHNlOworCQkJcGZsYWcgPSBmYWxzZTsKIAkJCWJyZWFrOwogCQljYXNlICdQJzoKLQkJCWZsYWcg
> PSB0cnVlOworCQkJcGZsYWcgPSB0cnVlOwogCQkJYnJlYWs7CiAjaWZkZWYgT19YQVRUUgogCQlj
> YXNlICdAJzoKQEAgLTI4Myw3ICszMjYsNyBAQAogCQkJc3Rha3B1dHMobGFzdCtQQVRIX09GRlNF
> VCk7CiAJCQlzdGFrcHV0YygwKTsKIAkJfQotCQlpZighZmxhZykKKwkJaWYoIXBmbGFnKQogCQl7
> CiAJCQlyZWdpc3RlciBjaGFyICpjcDsKIAkJCXN0YWtzZWVrKFBBVEhfTUFYK1BBVEhfT0ZGU0VU
> KTsKQEAgLTMyOSwxMSArMzcyLDcgQEAKIAkJCQlpZihzaHAtPnB3ZGZkID49IDApCiAJCQkJewog
> CQkJCQlzaF9jbG9zZShzaHAtPnB3ZGZkKTsKLSNpZmRlZiBBVF9GRENXRAogCQkJCQlzaHAtPnB3
> ZGZkID0gQVRfRkRDV0Q7Ci0jZWxzZQotCQkJCQlzaHAtPnB3ZGZkID0gLTE7Ci0jZW5kaWYKIAkJ
> CQl9CiAJCQl9CiAJCX0KQEAgLTM5OSw3ICs0MzgsNyBAQAogIyAgIGVuZGlmCiAjZW5kaWYKIAl9
> Ci0JZWxzZSBpZihmbGFnKQorCWVsc2UgaWYocGZsYWcpCiAJewogCQlkaXIgPSBzdGFrcHRyKFBB
> VEhfT0ZGU0VUKTsKIAkJaWYgKCEoZGlyPXBhdGhjYW5vbihkaXIsUEFUSF9NQVgsUEFUSF9QSFlT
> SUNBTCkpKQpAQCAtNDE1LDEwICs0NTQsMTAgQEAKIAlpZigqZGlyICE9ICcvJykKIAkJcmV0dXJu
> KDApOwogCW52X3B1dHZhbChvcHdkbm9kLG9sZHB3ZCxOVl9SRE9OTFkpOwotCWZsYWcgPSAoc3Ry
> bGVuKGRpcik+MCk/dHJ1ZTpmYWxzZTsKKwlwZmxhZyA9IChzdHJsZW4oZGlyKT4wKT90cnVlOmZh
> bHNlOwogCS8qIGRlbGV0ZSB0cmFpbGluZyAnLycgKi8KLQl3aGlsZSgtLWZsYWc+MCAmJiBkaXJb
> ZmxhZ109PScvJykKLQkJZGlyW2ZsYWddID0gMDsKKwl3aGlsZSgtLXBmbGFnPjAgJiYgZGlyWyhp
> bnQpcGZsYWddPT0nLycpCisJCWRpclsoaW50KXBmbGFnXSA9IDA7CiAJbnZfcHV0dmFsKHB3ZG5v
> ZCxkaXIsTlZfUkRPTkxZKTsKIAludl9vbmF0dHIocHdkbm9kLE5WX05PRlJFRXxOVl9FWFBPUlQp
> OwogCXNocC0+cHdkID0gcHdkbm9kLT5udmFsdWUuY3A7CmRpZmYgLXIgLXUgYnVpbGRfaTM4Nl82
> NGJpdF9kZWJ1Zy9zcmMvY21kL2tzaDkzL2JsdGlucy9oaXN0LmMgYnVpbGRfaTM4Nl82NGJpdF9k
> ZWJ1Z19wYXRjaGVkL3NyYy9jbWQva3NoOTMvYmx0aW5zL2hpc3QuYwotLS0gc3JjL2NtZC9rc2g5
> My9ibHRpbnMvaGlzdC5jCTIwMTItMDgtMjggMTU6NTk6MzcuMDAwMDAwMDAwICswMjAwCisrKyBz
> cmMvY21kL2tzaDkzL2JsdGlucy9oaXN0LmMJMjAxMy0wNy0wNyAwNToxOToxNy4wNTk2OTQwNDgg
> KzAyMDAKQEAgLTE5MCw3ICsxOTAsNyBAQAogCXsKIAkJaWYoIShmbmFtZT1wYXRodG1wKE5JTChj
> aGFyKiksMCwwLE5JTChpbnQqKSkpKQogCQkJZXJyb3Jtc2coU0hfRElDVCxFUlJPUl9leGl0KDEp
> LGVfY3JlYXRlLCIiKTsKLQkJaWYoKGZkbz1vcGVuKGZuYW1lLE9fQ1JFQVR8T19SRFdSLFNfSVJV
> U1J8U19JV1VTUnxPX2Nsb2V4ZWMpKSA8IDApCisJCWlmKChmZG89b3BlbmF0KHNocC0+cHdkZmQs
> Zm5hbWUsT19DUkVBVHxPX1JEV1IsU19JUlVTUnxTX0lXVVNSfE9fY2xvZXhlYykpIDwgMCkKIAkJ
> CWVycm9ybXNnKFNIX0RJQ1QsRVJST1Jfc3lzdGVtKDEpLGVfY3JlYXRlLGZuYW1lKTsKIAkJb3V0
> ZmlsZT0gc2ZuZXcoTklMKFNmaW9fdCopLHNocC0+b3V0YnVmZixJT0JTSVpFLGZkbyxTRl9XUklU
> RSk7CiAJCWFyZyA9ICJcbiI7CmRpZmYgLXIgLXUgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Zy9zcmMv
> Y21kL2tzaDkzL2JsdGlucy90ZXN0LmMgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Z19wYXRjaGVkL3Ny
> Yy9jbWQva3NoOTMvYmx0aW5zL3Rlc3QuYwotLS0gc3JjL2NtZC9rc2g5My9ibHRpbnMvdGVzdC5j
> CTIwMTMtMDYtMjUgMjI6NDY6MTMuMDAwMDAwMDAwICswMjAwCisrKyBzcmMvY21kL2tzaDkzL2Js
> dGlucy90ZXN0LmMJMjAxMy0wNy0wNyAwNTo1MTo0Ny42NzM3NTMyNjUgKzAyMDAKQEAgLTMyNyw3
> ICszMjcsNyBAQAogI2lmIFNIT1BUX0ZTXzNECiAJICAgIHsKIAkJcmVnaXN0ZXIgaW50IG9mZnNl
> dCA9IHN0a3RlbGwoc2hwLT5zdGspOwotCQlpZihzdGF0KGFyZywmc3RhdGIpPDAgfHwgIVNfSVNS
> RUcoc3RhdGIuc3RfbW9kZSkpCisJCWlmKGZzdGF0YXQoc2hwLT5wd2RmZCxhcmcsJnN0YXRiLDAp
> PDAgfHwgIVNfSVNSRUcoc3RhdGIuc3RfbW9kZSkpCiAJCQlyZXR1cm4oMCk7CiAJCS8qIGFkZCB0
> cmFpbGluZyAvICovCiAJCXNmcHV0cihzaHAtPnN0ayxhcmcsJy8nKTsKQEAgLTM2Miw3ICszNjIs
> NyBAQAogI2VuZGlmCiAJICAgIGNhc2UgJ0wnOgogCSAgICBjYXNlICdoJzogLyogdW5kb2N1bWVu
> dGVkLCBhbmQgaG9wZWZ1bGx5IHdpbGwgZGlzYXBwZWFyICovCi0JCWlmKCphcmc9PTAgfHwgYXJn
> W3N0cmxlbihhcmcpLTFdPT0nLycgfHwgbHN0YXQoYXJnLCZzdGF0Yik8MCkKKwkJaWYoKmFyZz09
> MCB8fCBhcmdbc3RybGVuKGFyZyktMV09PScvJyB8fCBmc3RhdGF0KHNocC0+cHdkZmQsYXJnLCZz
> dGF0YixBVF9TWU1MSU5LX05PRk9MTE9XKTwwKQogCQkJcmV0dXJuKDApOwogCQlyZXR1cm4oU19J
> U0xOSyhzdGF0Yi5zdF9tb2RlKSk7CiAKQEAgLTY2NSw1ICs2NjUsNSBAQAogCWlmKHNoX2lzZGV2
> ZmQobmFtZSkpCiAJCXJldHVybihmc3RhdCgoaW50KXN0cnRvbChuYW1lKzgsIChjaGFyKiopMCwg
> MTApLGJ1ZmYpKTsKIAllbHNlCi0JCXJldHVybihzdGF0KG5hbWUsYnVmZikpOworCQlyZXR1cm4o
> ZnN0YXRhdChzaC5wd2RmZCxuYW1lLGJ1ZmYsMCkpOwogfQpkaWZmIC1yIC11IGJ1aWxkX2kzODZf
> NjRiaXRfZGVidWcvc3JjL2NtZC9rc2g5My9lZGl0L2hpc3RvcnkuYyBidWlsZF9pMzg2XzY0Yml0
> X2RlYnVnX3BhdGNoZWQvc3JjL2NtZC9rc2g5My9lZGl0L2hpc3RvcnkuYwotLS0gc3JjL2NtZC9r
> c2g5My9lZGl0L2hpc3RvcnkuYwkyMDEyLTA5LTE4IDE3OjIwOjAyLjAwMDAwMDAwMCArMDIwMAor
> Kysgc3JjL2NtZC9rc2g5My9lZGl0L2hpc3RvcnkuYwkyMDEzLTA3LTA3IDA1OjE5OjE3LjA2MDY5
> NDAzOCArMDIwMApAQCAtMTc5LDcgKzE3OSw4IEBACiB7CiAJY2hhcgkqY3AsICpsYXN0OwogCWlu
> dAlpZDEsIGlkMiwgcj0wLCBuLCBmZDsKLQlpZigoZmQ9b3BlbihuYW1lLCBPX1JET05MWSxPX2Ns
> b2V4ZWMpKSA8IDApCisJU2hlbGxfdCAqc2hwID0gaHAtPmhpc3RzaGVsbDsKKwlpZigoZmQ9b3Bl
> bmF0KHNocC0+cHdkZmQsIG5hbWUsIE9fUkRPTkxZLE9fY2xvZXhlYykpIDwgMCkKIAkJcmV0dXJu
> KDApOwogCWlmKChuID0gcmVhZChmZCwgbG9nYnVmLGxlbi0xKSkgPCAwKQogCQlnb3RvIGRvbmU7
> CkBAIC0yNjIsNyArMjYzLDcgQEAKIAljcCA9IHBhdGhfcmVsYXRpdmUoc2hwLGhpc3RuYW1lKTsK
> IAlpZighaGlzdGluaXQpCiAJCWhpc3Rtb2RlID0gU19JUlVTUnxTX0lXVVNSOwotCWlmKChmZD1v
> cGVuKGNwLE9fQklOQVJZfE9fQVBQRU5EfE9fUkRXUnxPX0NSRUFUfE9fY2xvZXhlYyxoaXN0bW9k
> ZSkpPj0wKQorCWlmKChmZD1vcGVuYXQoc2hwLT5wd2RmZCxjcCxPX0JJTkFSWXxPX0FQUEVORHxP
> X1JEV1J8T19DUkVBVHxPX2Nsb2V4ZWMsaGlzdG1vZGUpKT49MCkKIAl7CiAJCWhzaXplPWxzZWVr
> KGZkLChvZmZfdCkwLFNFRUtfRU5EKTsKIAl9CkBAIC0yOTMsNyArMjk0LDcgQEAKIAkJewogCQkJ
> aWYoIShmbmFtZSA9IHBhdGh0bXAoTklMKGNoYXIqKSwwLDAsTklMKGludCopKSkpCiAJCQkJcmV0
> dXJuKDApOwotCQkJZmQgPSBvcGVuKGZuYW1lLE9fQklOQVJZfE9fQVBQRU5EfE9fQ1JFQVR8T19S
> RFdSLFNfSVJVU1J8U19JV1VTUnxPX2Nsb2V4ZWMpOworCQkJZmQgPSBvcGVuYXQoc2hwLT5wd2Rm
> ZCxmbmFtZSxPX0JJTkFSWXxPX0FQUEVORHxPX0NSRUFUfE9fUkRXUixTX0lSVVNSfFNfSVdVU1J8
> T19jbG9leGVjKTsKIAkJfQogCX0KIAlpZihmZDwwKQpAQCAtNDU3LDYgKzQ1OCw3IEBACiAKIHN0
> YXRpYyBIaXN0b3J5X3QqIGhpc3RfdHJpbShIaXN0b3J5X3QgKmhwLCBpbnQgbikKIHsKKwlTaGVs
> bF90ICpzaHAgPSBocC0+aGlzdHNoZWxsOwogCXJlZ2lzdGVyIGNoYXIgKmNwOwogCXJlZ2lzdGVy
> IGludCBpbmNtZD0xLCBjPTA7CiAJcmVnaXN0ZXIgSGlzdG9yeV90ICpoaXN0X25ldywgKmhpc3Rf
> b2xkID0gaHA7CkBAIC00ODQsNyArNDg2LDcgQEAKIAkJCWZyZWUodG1wbmFtZSk7CiAJCQl0bXBu
> YW1lID0gbmFtZTsKIAkJfQotCQlmZCA9IG9wZW4odG1wbmFtZSxPX1JET05MWXxPX2Nsb2V4ZWMp
> OworCQlmZCA9IG9wZW5hdChzaHAtPnB3ZGZkLHRtcG5hbWUsT19SRE9OTFl8T19jbG9leGVjKTsK
> IAkJc2ZzZXRmZChoaXN0X29sZC0+aGlzdGZwLGZkKTsKIAkJaWYodG1wbmFtZT09bmFtZSkKIAkJ
> CXRtcG5hbWUgPSAwOwpAQCAtNjIzLDYgKzYyNSw3IEBACiAKIHZvaWQgaGlzdF9lb2YocmVnaXN0
> ZXIgSGlzdG9yeV90ICpocCkKIHsKKwlTaGVsbF90ICpzaHAgPSBocC0+aGlzdHNoZWxsOwogCXJl
> Z2lzdGVyIGNoYXIgKmNwLCpmaXJzdCwqZW5kYnVmZjsKIAlyZWdpc3RlciBpbnQgaW5jbWQgPSAw
> OwogCXJlZ2lzdGVyIG9mZl90IGNvdW50ID0gaHAtPmhpc3RjbnQ7CkBAIC03MjksNyArNzMyLDcg
> QEAKIAkJaWYobGFzdDwwKQogCQl7CiAJCQljaGFyCWJ1ZmZbSElTVF9NQVJLU1pdOwotCQkJaW50
> CWZkID0gb3BlbihocC0+aGlzdG5hbWUsT19SRFdSfE9fY2xvZXhlYyk7CisJCQlpbnQJZmQgPSBv
> cGVuYXQoc2hwLT5wd2RmZCxocC0+aGlzdG5hbWUsT19SRFdSfE9fY2xvZXhlYyk7CiAJCQlpZihm
> ZD49MCkKIAkJCXsKIAkJCQloaXN0X21hcmtlcihidWZmLGhwLT5oaXN0aW5kKTsKQEAgLTExODYs
> MTMgKzExODksMTQgQEAKIHsKIAlyZWdpc3RlciBpbnQgbmV3ZmQsb2xkZmQ7CiAJSGlzdG9yeV90
> ICpocCA9IChIaXN0b3J5X3QqKWhhbmRsZTsKKwlTaGVsbF90ICpzaHAgPSBocC0+aGlzdHNoZWxs
> OwogCWlmKHR5cGU9PVNGX1dSSVRFKQogCXsKIAkJaWYoZXJybm89PUVOT1NQQyB8fCBocC0+aGlz
> dHdmYWlsKysgPj0gMTApCiAJCQlyZXR1cm4oMCk7CiAJCS8qIHdyaXRlIGZhaWx1cmUgY291bGQg
> YmUgTkZTIHByb2JsZW0sIHRyeSB0byByZS1vcGVuICovCiAJCXNoX2Nsb3NlKG9sZGZkPXNmZmls
> ZW5vKGZwKSk7Ci0JCWlmKChuZXdmZD1vcGVuKGhwLT5oaXN0bmFtZSxPX0JJTkFSWXxPX0FQUEVO
> RHxPX0NSRUFUfE9fUkRXUnxPX2Nsb2V4ZWMsU19JUlVTUnxTX0lXVVNSKSkgPj0gMCkKKwkJaWYo
> KG5ld2ZkPW9wZW5hdChzaHAtPnB3ZGZkLGhwLT5oaXN0bmFtZSxPX0JJTkFSWXxPX0FQUEVORHxP
> X0NSRUFUfE9fUkRXUnxPX2Nsb2V4ZWMsU19JUlVTUnxTX0lXVVNSKSkgPj0gMCkKIAkJewogCQkJ
> aWYoc2hfZmNudGwobmV3ZmQsIEZfZHVwZmRfY2xvZXhlYywgb2xkZmQpICE9b2xkZmQpCiAJCQkJ
> cmV0dXJuKC0xKTsKZGlmZiAtciAtdSBidWlsZF9pMzg2XzY0Yml0X2RlYnVnL3NyYy9jbWQva3No
> OTMvaW5jbHVkZS9zaGVsbC5oIGJ1aWxkX2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvY21k
> L2tzaDkzL2luY2x1ZGUvc2hlbGwuaAotLS0gc3JjL2NtZC9rc2g5My9pbmNsdWRlL3NoZWxsLmgJ
> MjAxMy0wNi0yNyAyMzo0MzowNi4wMDAwMDAwMDAgKzAyMDAKKysrIHNyYy9jbWQva3NoOTMvaW5j
> bHVkZS9zaGVsbC5oCTIwMTMtMDctMDggMTQ6Mjg6MDkuNzMwNTEyMjAwICswMjAwCkBAIC0xNTUs
> NyArMTU1LDcgQEAKIAljaGFyCQlzaGNvbXA7CQkvKiBzZXQgd2hlbiBydW5pbmcgc2hjb21wICov
> CiAJc2hvcnQJCXN1YnNoZWxsOwkvKiBzZXQgZm9yIHZpcnR1YWwgc3Vic2hlbGwgKi8KIAlTdGtf
> dAkJKnN0azsJCS8qIHN0YWNrIHBvaXRlciAqLwotCWludAkJcHdkZmQ7CQkvKiBmaWxlIGRlc2Ny
> aXB0b3IgZm9yIHB3ZCAqLworCWludAkJcHdkZmQ7CQkvKiBmaWxlIGRlc2NyaXB0b3IgZm9yIHB3
> ZCAobXVzdCBiZSBmcm9tIHNoX2Rpcm9wZW5hdCgpL3NoX2ZjbnRsKCkhKSAqLwogI2lmZGVmIF9T
> SF9QUklWQVRFCiAJX1NIX1BSSVZBVEUKICNlbmRpZiAvKiBfU0hfUFJJVkFURSAqLwpkaWZmIC1y
> IC11IGJ1aWxkX2kzODZfNjRiaXRfZGVidWcvc3JjL2NtZC9rc2g5My9zaC9mYXVsdC5jIGJ1aWxk
> X2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvY21kL2tzaDkzL3NoL2ZhdWx0LmMKLS0tIHNy
> Yy9jbWQva3NoOTMvc2gvZmF1bHQuYwkyMDEzLTA2LTE0IDIxOjQ3OjMzLjAwMDAwMDAwMCArMDIw
> MAorKysgc3JjL2NtZC9rc2g5My9zaC9mYXVsdC5jCTIwMTMtMDctMDggMTU6MDE6MTcuNDg3NTk0
> MzI4ICswMjAwCkBAIC03MDEsNiArNzAxLDggQEAKIAlpZihzaF9pc29wdGlvbihzaHAsU0hfTk9F
> WEVDKSkKIAkJa2lhY2xvc2UoKExleF90KilzaHAtPmxleF9jb250ZXh0KTsKICNlbmRpZiAvKiBT
> SE9QVF9LSUEgKi8KKwlpZiAoc2hwLT5wd2RmZCA+PSAwKQorCQlzaF9jbG9zZShzaHAtPnB3ZGZk
> KTsKIAlleGl0KHNhdnhpdCZTSF9FWElUTUFTSyk7CiB9CiAKZGlmZiAtciAtdSBidWlsZF9pMzg2
> XzY0Yml0X2RlYnVnL3NyYy9jbWQva3NoOTMvc2gvaW5pdC5jIGJ1aWxkX2kzODZfNjRiaXRfZGVi
> dWdfcGF0Y2hlZC9zcmMvY21kL2tzaDkzL3NoL2luaXQuYwotLS0gc3JjL2NtZC9rc2g5My9zaC9p
> bml0LmMJMjAxMy0wNi0yNyAxNjo1NjoxNC4wMDAwMDAwMDAgKzAyMDAKKysrIHNyYy9jbWQva3No
> OTMvc2gvaW5pdC5jCTIwMTMtMDctMDcgMDY6MDU6MDguMjUzMjI4NzkxICswMjAwCkBAIC0xNTUw
> LDE2ICsxNTUwLDExIEBACiAJCX0KIAl9CiAJc2hfaW9pbml0KHNocCk7Ci0jaWZkZWYgQVRfRkRD
> V0QKLSAgICAgICBzaHAtPnB3ZGZkID0gc2hfZGlyb3BlbmF0KHNocCwgQVRfRkRDV0QsIGVfZG90
> LCBmYWxzZSk7Ci0jZWxzZQotICAgICAgIC8qIFN5c3RlbXMgd2l0aG91dCBBVF9GRENXRC9vcGVu
> YXQoKSBkbyBub3QgdXNlIHRoZSB8ZGlyfCBhcmd1bWVudCAqLwotICAgICAgIHNocC0+cHdkZmQg
> PSBzaF9kaXJvcGVuYXQoc2hwLCAtMSwgZV9kb3QsIGZhbHNlKTsKLSNlbmRpZgorCXNocC0+cHdk
> ZmQgPSBzaF9kaXJvcGVuYXQoc2hwLCBBVF9GRENXRCwgZV9kb3QsIGZhbHNlKTsKICNpZmRlZiBP
> X1NFQVJDSAotICAgICAgIC8qIFRoaXMgc2hvdWxkIF9uZXZlcl8gaGFwcGVuLCBndXJhbnRlZWQg
> YnkgZGVzaWduIGFuZCBnb2F0IHNhY3JpZmljZSAqLwotICAgICAgIGlmKHNocC0+cHdkZmQgPCAw
> KQotICAgICAgICAgICAgICAgZXJyb3Jtc2coU0hfRElDVCxFUlJPUl9zeXN0ZW0oMSksICJDYW4n
> dCBvYnRhaW4gZGlyZWN0b3J5IGZkLiIpOworCS8qIFRoaXMgc2hvdWxkIF9uZXZlcl8gaGFwcGVu
> LCBndXJhbnRlZWQgYnkgZGVzaWduIGFuZCBnb2F0IHNhY3JpZmljZSAqLworCWlmKHNocC0+cHdk
> ZmQgPCAwKQorCQllcnJvcm1zZyhTSF9ESUNULEVSUk9SX3N5c3RlbSgxKSwgIkNhbid0IG9idGFp
> biBkaXJlY3RvcnkgZmQuIik7CiAjZW5kaWYKIAogCS8qIGluaXRpYWxpemUgc2lnbmFsIGhhbmRs
> aW5nICovCkBAIC0xNTkxLDE3ICsxNTg2LDkgQEAKIAkJY2hhciAqY3A9bnZfZ2V0dmFsKExfQVJH
> Tk9EKTsKIAkJY2hhciBidWZmW1BBVEhfTUFYKzFdOwogCQlzaHAtPmdkLT5zaHBhdGggPSAwOwot
> I2lmIF9BU1RfVkVSU0lPTiA+PSAyMDA5MDIwMkwKKwogCQlpZigobiA9IHBhdGhwcm9nKE5pTCwg
> YnVmZiwgc2l6ZW9mKGJ1ZmYpKSkgPiAwICYmIG4gPD0gc2l6ZW9mKGJ1ZmYpKQogCQkJc2hwLT5n
> ZC0+c2hwYXRoID0gc3RyZHVwKGJ1ZmYpOwotI2Vsc2UKLQkJc2ZwcmludGYoc2hwLT5zdHJidWYs
> Ii9wcm9jLyVkL2V4ZSIsZ2V0cGlkKCkpOwotCQlpZigobj1yZWFkbGluayhzZnN0cnVzZShzaHAt
> PnN0cmJ1ZiksYnVmZixzaXplb2YoYnVmZiktMSkpPjApCi0JCXsKLQkJCWJ1ZmZbbl0gPSAwOwot
> CQkJc2hwLT5nZC0+c2hwYXRoID0gc3RyZHVwKGJ1ZmYpOwotCQl9Ci0jZW5kaWYKIAkJZWxzZSBp
> ZigoY3AgJiYgKHNoX3R5cGUoY3ApJlNIX1RZUEVfU0gpKSB8fCAoYXJnYz4wICYmIHN0cmNocihj
> cD0gKmFyZ3YsJy8nKSkpCiAJCXsKIAkJCWlmKCpjcD09Jy8nKQpkaWZmIC1yIC11IGJ1aWxkX2kz
> ODZfNjRiaXRfZGVidWcvc3JjL2NtZC9rc2g5My9zaC9pby5jIGJ1aWxkX2kzODZfNjRiaXRfZGVi
> dWdfcGF0Y2hlZC9zcmMvY21kL2tzaDkzL3NoL2lvLmMKLS0tIHNyYy9jbWQva3NoOTMvc2gvaW8u
> YwkyMDEzLTA2LTI3IDE2OjI0OjA5LjAwMDAwMDAwMCArMDIwMAorKysgc3JjL2NtZC9rc2g5My9z
> aC9pby5jCTIwMTMtMDctMDcgMDY6MTk6MjguMDkwNzQ3MTM3ICswMjAwCkBAIC04MzEsMTUgKzgz
> MSwxNSBAQAogCQlpZiAoZmxhZ3MgJiBPX0NSRUFUKQogCQl7CiAJCQlzdHJ1Y3Qgc3RhdCBzdDsK
> LQkJCWlmIChzdGF0KHBhdGgsJnN0KSA+PTApCisJCQlpZiAoZnN0YXRhdChzaHAtPnB3ZGZkLHBh
> dGgsJnN0LCAwKSA+PTApCiAJCQl7Ci0JCQkJd2hpbGUoKG5mZCA9IG9wZW4ocGF0aCxmbGFncyxz
> dC5zdF9tb2RlKSk8MCAmJiBlcnJubz09RUlOVFIpCisJCQkJd2hpbGUoKG5mZCA9IG9wZW5hdChz
> aHAtPnB3ZGZkLHBhdGgsZmxhZ3Msc3Quc3RfbW9kZSkpPDAgJiYgZXJybm89PUVJTlRSKQogCQkJ
> CQllcnJubyA9IGVycjsKIAkJCX0KIAkJfQogCQllbHNlCiAJCXsKLQkJCXdoaWxlKChuZmQgPSBv
> cGVuKHBhdGgsZmxhZ3MpKTwwICYmIGVycm5vPT1FSU5UUikKKwkJCXdoaWxlKChuZmQgPSBvcGVu
> YXQoc2hwLT5wd2RmZCxwYXRoLGZsYWdzKSk8MCAmJiBlcnJubz09RUlOVFIpCiAJCQkJZXJybm8g
> PSBlcnI7CiAJCX0KIAkJaWYobmZkPj0wKQpAQCAtODY3LDcgKzg2Nyw3IEBACiAJCQlwYXRoID0g
> YnVmOwogCQl9CiAjZW5kaWYKLQkJd2hpbGUoKGZkID0gb3BlbihwYXRoLCBmbGFncywgbW9kZSkp
> IDwgMCkKKwkJd2hpbGUoKGZkID0gb3BlbmF0KHNocC0+cHdkZmQsIHBhdGgsIGZsYWdzLCBtb2Rl
> KSkgPCAwKQogCQkJaWYoZXJybm8hPUVJTlRSIHx8IHNocC0+dHJhcG5vdGUpCiAJCQkJcmV0dXJu
> KC0xKTsKICAJfQpAQCAtMTE2Niw3ICsxMTY2LDcgQEAKIAkJZWxzZSBpZihmZCA8IDAgICYmIGVy
> cm5vIT1FTk9FTlQpCiAJCQlyZXR1cm4oMCk7CiAJfQotCXdoaWxlKChmZD1yZWFkbGluayhuYW1l
> LCBwYXRoLCBQQVRIX01BWCkpID4wKQorCXdoaWxlKChmZD1yZWFkbGlua2F0KHNocC0+cHdkZmQs
> IG5hbWUsIHBhdGgsIFBBVEhfTUFYKSkgPjApCiAJewogCQluYW1lPXBhdGg7CiAJCW5hbWVbZmRd
> ID0gMDsKQEAgLTE2MTYsNyArMTYxNiw3IEBACiAJCQkJCWVsc2UgaWYoc2hfaXNvcHRpb24oc2hw
> LFNIX05PQ0xPQkJFUikpCiAJCQkJCXsKIAkJCQkJCXN0cnVjdCBzdGF0IHNiOwotCQkJCQkJaWYo
> c3RhdChmbmFtZSwmc2IpPj0wKQorCQkJCQkJaWYoZnN0YXRhdChzaHAtPnB3ZGZkLGZuYW1lLCZz
> YiwwKT49MCkKIAkJCQkJCXsKICNpZiBTSE9QVF9GU18zRAogCQkJCQkJCWlmKFNfSVNSRUcoc2Iu
> c3RfbW9kZSkmJgpAQCAtMjA2Myw3ICsyMDYzLDcgQEAKIAkJaWYoc2F2ZWZkIDwwICYmIChzcD1z
> aHAtPnNmdGFibGVbb3JpZ2ZkXSkgJiYgKHNmc2V0KHNwLDAsMCkmU0ZfU1RSSU5HKSkgCiAJCXsK
> IAkJCXNhdmVzdHIgPSAxOwotCQkJaWYoKGZkID0gb3BlbigiL2Rldi9udWxsIixPX1JET05MWXxP
> X2Nsb2V4ZWMpKSA8IDEwKQorCQkJaWYoKGZkID0gb3BlbmF0KHNocC0+cHdkZmQsICIvZGV2L251
> bGwiLE9fUkRPTkxZfE9fY2xvZXhlYykpIDwgMTApCiAJCQl7CiAJCQkJc2F2ZWZkID0gc2hfZmNu
> dGwoZmQsIEZfZHVwZmRfY2xvZXhlYywgMTApOwogCQkJCWNsb3NlKGZkKTsKQEAgLTMxNjIsNyAr
> MzE2Miw3IEBACiBpbnQgc2hfc3RhdChjb25zdCBjaGFyKiBwYXRoLHN0cnVjdCBzdGF0ICpzdGF0
> YikKIHsKIAlpbnQgcixlcnI9ZXJybm87Ci0Jd2hpbGUoKHI9c3RhdChwYXRoLHN0YXRiKSk8MCAm
> JiBlcnJubz09RUlOVFIpCisJd2hpbGUoKHI9ZnN0YXRhdChzaC5wd2RmZCxwYXRoLHN0YXRiLDAp
> KTwwICYmIGVycm5vPT1FSU5UUikKIAkJZXJybm8gPSBlcnI7CiAJcmV0dXJuKHIpOwogfQpkaWZm
> IC1yIC11IGJ1aWxkX2kzODZfNjRiaXRfZGVidWcvc3JjL2NtZC9rc2g5My9zaC9wYXRoLmMgYnVp
> bGRfaTM4Nl82NGJpdF9kZWJ1Z19wYXRjaGVkL3NyYy9jbWQva3NoOTMvc2gvcGF0aC5jCi0tLSBz
> cmMvY21kL2tzaDkzL3NoL3BhdGguYwkyMDEzLTA2LTI3IDA5OjIwOjU3LjAwMDAwMDAwMCArMDIw
> MAorKysgc3JjL2NtZC9rc2g5My9zaC9wYXRoLmMJMjAxMy0wNy0wNyAwNTo1Njo1OC44OTU5MzY3
> OTIgKzAyMDAKQEAgLTM5Myw3ICszOTMsNyBAQAogCXN0cnVjdCBzdGF0IAkJc3RhdGI7CiAJaW50
> CQkJZmQgPSAtMTsKICNpZiBTSE9QVF9BVEZVTgotCWlmKChmZD1vcGVuKG5hbWUsT19zZWFyY2h8
> T19jbG9leGVjKSk8MCB8fCBmc3RhdChmZCwmc3RhdGIpPDAgfHwgICFTX0lTRElSKHN0YXRiLnN0
> X21vZGUpKQorCWlmKChmZD1vcGVuYXQoc2hwLT5wd2RmZCwgbmFtZSxPX3NlYXJjaHxPX2Nsb2V4
> ZWMpKTwwIHx8IGZzdGF0KGZkLCZzdGF0Yik8MCB8fCAgIVNfSVNESVIoc3RhdGIuc3RfbW9kZSkp
> CiAJCiAjZWxzZQogCWlmKHN0YXQobmFtZSwmc3RhdGIpPDAgfHwgIVNfSVNESVIoc3RhdGIuc3Rf
> bW9kZSkpCkBAIC05NTEsNyArOTUxLDcgQEAKIAlwYXRoID0gcGF0aF9yZWxhdGl2ZShzaHAscGF0
> aCk7CiAJaWYoaXNmdW4pCiAJewotCQlpZigoZmQ9b3BlbihwYXRoLE9fUkRPTkxZfE9fY2xvZXhl
> YywwKSk8MCB8fCBmc3RhdChmZCwmc3RhdGIpPDApCisJCWlmKChmZD1vcGVuYXQoc2hwLT5wd2Rm
> ZCxwYXRoLE9fUkRPTkxZfE9fY2xvZXhlYywwKSk8MCB8fCBmc3RhdChmZCwmc3RhdGIpPDApCiAJ
> CQlnb3RvIGVycjsKIAl9CiAJZWxzZSBpZihzdGF0KHBhdGgsJnN0YXRiKSA8IDApCkBAIC0xMTM3
> LDcgKzExMzcsNyBAQAogCQlzdGtzZWVrKHNocC0+c3RrLFBBVEhfT0ZGU0VUKTsKIAkJc2ZwdXRy
> KHNocC0+c3RrLG9wYXRoLC0xKTsKIAkJcGF0aCA9IHN0a3B0cihzaHAtPnN0ayxQQVRIX09GRlNF
> VCk7Ci0JCXdoaWxlKChuPXJlYWRsaW5rKHBhdGgsYnVmZixQQVRIX01BWCkpPjApCisJCXdoaWxl
> KChuPXJlYWRsaW5rYXQoc2hwLT5wd2RmZCxwYXRoLGJ1ZmYsUEFUSF9NQVgpKT4wKQogCQl7CiAJ
> CQlidWZmW25dID0gMDsKIAkJCW4gPSBQQVRIX09GRlNFVDsKQEAgLTEzNTEsNyArMTM1MSw3IEBA
> CiAJCWNoYXIgKnNhdmV0PTA7CiAJCXN0cnVjdCBzdGF0IHN0YXRiOwogCQlpbnQgZXJyPTA7Ci0J
> CWlmKChuPW9wZW4ocGF0aCxPX1JET05MWXxPX2Nsb2V4ZWMsMCkpID49IDApCisJCWlmKChuPW9w
> ZW5hdChzaHAtPnB3ZGZkLHBhdGgsT19SRE9OTFl8T19jbG9leGVjLDApKSA+PSAwKQogCQl7CiAJ
> CQkvKiBtb3ZlIDxuPiBpZiBuPTAsMSwyICovCiAJCQluID0gc2hfaW9tb3ZlZmQoc2hwLG4pOwpA
> QCAtMTM2NSw3ICsxMzY1LDcgQEAKIAkJewogCQkJc3RybmNweShuYW1lKzksZm10YmFzZSgobG9u
> ZylnZXRwaWQoKSwxMCwwKSxzaXplb2YobmFtZSktMTApOwogCQkJLyogY3JlYXRlIGEgc3VpZCBv
> cGVuIGZpbGUgd2l0aCBvd25lciBlcXVhbCBlZmZlY3RpdmUgdWlkICovCi0JCQlpZigobj1vcGVu
> KG5hbWUsT19DUkVBVHxPX1RSVU5DfE9fV1JPTkxZfE9fY2xvZXhlYyxTX0lTVUlEfFNfSVhVU1Ip
> KSA8IDApCisJCQlpZigobj1vcGVuYXQoc2hwLT5wd2RmZCxuYW1lLE9fQ1JFQVR8T19UUlVOQ3xP
> X1dST05MWXxPX2Nsb2V4ZWMsU19JU1VJRHxTX0lYVVNSKSkgPCAwKQogCQkJCWdvdG8gZmFpbDsK
> IAkJCXVubGluayhuYW1lKTsKIAkJCS8qIG1ha2Ugc3VyZSB0aGF0IGZpbGUgaGFzIHJpZ2h0IG93
> bmVyICovCkBAIC0xMzkxLDcgKzEzOTEsNyBAQAogCQkvKgogCQkgKiAgVGhlIGZvbGxvd2luZyBj
> b2RlIGlzIGp1c3QgZm9yIGNvbXBhdGliaWxpdHkKIAkJICovCi0JCWlmKChuPW9wZW4ocGF0aCxP
> X1JET05MWXxPX2Nsb2V4ZWMsMCkpIDwgMCkKKwkJaWYoKG49b3BlbmF0KHNocC0+cHdkZmQscGF0
> aCxPX1JET05MWXxPX2Nsb2V4ZWMsMCkpIDwgMCkKIAkJCWVycm9ybXNnKFNIX0RJQ1QsRVJST1Jf
> c3lzdGVtKEVSUk9SX05PRVhFQyksZV9leGVjLHBhdGgpOwogCQlpZihzYXZldCkKIAkJCSphcmd2
> KysgPSBzYXZldDsKQEAgLTE0ODAsNyArMTQ4MCw3IEBACiAJCXNhYnVmLmFjX3V0aW1lID0gY29t
> cHJlc3MoYnVmZmVyLnRtc191dGltZSArIGJ1ZmZlci50bXNfY3V0aW1lKTsKIAkJc2FidWYuYWNf
> c3RpbWUgPSBjb21wcmVzcyhidWZmZXIudG1zX3N0aW1lICsgYnVmZmVyLnRtc19jc3RpbWUpOwog
> CQlzYWJ1Zi5hY19ldGltZSA9IGNvbXByZXNzKCAodGltZV90KShhZnRlci1iZWZvcmUpKTsKLQkJ
> ZmQgPSBvcGVuKCBTSEFDQ1QgLCBPX1dST05MWSB8IE9fQVBQRU5EIHwgT19DUkVBVHxPX2Nsb2V4
> ZWMsUldfQUxMKTsKKwkJZmQgPSBvcGVuYXQoc2gucHdkZmQsIFNIQUNDVCAsIE9fV1JPTkxZIHwg
> T19BUFBFTkQgfCBPX0NSRUFUfE9fY2xvZXhlYyxSV19BTEwpOwogCQl3cml0ZShmZCwgKGNvbnN0
> IGNoYXIqKSZzYWJ1Ziwgc2l6ZW9mKCBzYWJ1ZiApKTsKIAkJc2hfY2xvc2UoIGZkKTsKIAl9CkBA
> IC0xNTk4LDcgKzE1OTgsNyBAQAogCWlmKHBwLT5sZW49PTEgJiYgKnN0a3B0cihzaHAtPnN0ayxv
> ZmZzZXQpPT0nLycpCiAJCXN0a3NlZWsoc2hwLT5zdGssb2Zmc2V0KTsKIAlzZnB1dHIoc2hwLT5z
> dGssIi8ucGF0aHMiLC0xKTsKLQlpZigoZmQ9b3BlbihzdGtwdHIoc2hwLT5zdGssb2Zmc2V0KSxP
> X1JET05MWXxPX2Nsb2V4ZWMpKT49MCkKKwlpZigoZmQ9b3BlbmF0KHNocC0+cHdkZmQsc3RrcHRy
> KHNocC0+c3RrLG9mZnNldCksT19SRE9OTFl8T19jbG9leGVjKSk+PTApCiAJewogCQlmc3RhdChm
> ZCwmc3RhdGIpOwogCQluID0gc3RhdGIuc3Rfc2l6ZTsKZGlmZiAtciAtdSBidWlsZF9pMzg2XzY0
> Yml0X2RlYnVnL3NyYy9jbWQva3NoOTMvc2gveGVjLmMgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Z19w
> YXRjaGVkL3NyYy9jbWQva3NoOTMvc2gveGVjLmMKLS0tIHNyYy9jbWQva3NoOTMvc2gveGVjLmMJ
> MjAxMy0wNi0xNCAxODoxNjowOC4wMDAwMDAwMDAgKzAyMDAKKysrIHNyYy9jbWQva3NoOTMvc2gv
> eGVjLmMJMjAxMy0wNy0wNyAwNToxOToxNy4wNjI2OTQwMTIgKzAyMDAKQEAgLTg2Miw3ICs4NjIs
> NyBAQAogCXNwID0gc2ZuZXcoTlVMTCxOVUxMLFNGX1VOQk9VTkQsZmQsU0ZfUkVBRCk7CiAJd2hp
> bGUoY2xvc2UoMCk8MCAmJiBlcnJubz09RUlOVFIpCiAJCWVycm5vID0gZXJyOwotCW9wZW4oZV9k
> ZXZudWxsLE9fUkRPTkxZfE9fY2xvZXhlYyk7CisJb3BlbmF0KHNocC0+cHdkZmQsIGVfZGV2bnVs
> bCxPX1JET05MWXxPX2Nsb2V4ZWMpOwogCXNocC0+b2Zmc2V0c1swXSA9IC0xOwogCXNocC0+b2Zm
> c2V0c1sxXSA9IDA7CiAJKnNhdmUgPSBzYXZlaW47CmRpZmYgLXIgLXUgYnVpbGRfaTM4Nl82NGJp
> dF9kZWJ1Zy9zcmMvbGliL2xpYmFzdC9jb21wL2F0LmMgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Z19w
> YXRjaGVkL3NyYy9saWIvbGliYXN0L2NvbXAvYXQuYwotLS0gc3JjL2xpYi9saWJhc3QvY29tcC9h
> dC5jCTIwMTMtMDYtMjcgMDQ6MzU6NDEuMDAwMDAwMDAwICswMjAwCisrKyBzcmMvbGliL2xpYmFz
> dC9jb21wL2F0LmMJMjAxMy0wNy0wNyAwNToxOToxNy4wNjM2OTQwMDQgKzAyMDAKQEAgLTQ1LDEz
> ICs0NSwxMyBAQAogI2RlZmluZSBBVEJFRyhjd2QscGF0aCkgXAogCXsgXAogCQljaGFyCV9hdF8j
> I3BhdGhbUEFUSF9NQVhdOyBcCi0JCWlmIChjd2QgPj0gMCkgXAorCQlpZiAoY3dkICE9IEFUX0ZE
> Q1dEICYmIHBhdGhbMF0hPScvJykgXAogCQkJc2ZzcHJpbnRmKF9hdF8jI3BhdGgsIHNpemVvZihf
> YXRfIyNwYXRoKSwgX2ZkX3NlbGZfZGlyX2ZtdCwgY3dkLCAiLyIsIHBhdGgpOwogCiAjZGVmaW5l
> IEFUQkVHTChsd2QsbGluaykgXAogCXsgXAogCQljaGFyCV9hdF8jI2xpbmtbUEFUSF9NQVhdOyBc
> Ci0JCWlmIChsd2QgPj0gMCkgXAorCQlpZiAobHdkICE9IEFUX0ZEQ1dEICYmIGxpbmtbMF0hPScv
> JykgXAogCQkJc2ZzcHJpbnRmKF9hdF8jI2xpbmssIHNpemVvZihfYXRfIyNsaW5rKSwgX2ZkX3Nl
> bGZfZGlyX2ZtdCwgbHdkLCAiLyIsIGxpbmspOwogCiAjZWxzZQpAQCAtNTksMTkgKzU5LDE5IEBA
> CiAjZGVmaW5lIEFUQkVHKGN3ZCxwYXRoKSBcCiAJeyBcCiAJCWNoYXIJX2F0XyMjcGF0aFtQQVRI
> X01BWF07IFwKLQkJaWYgKGN3ZCA+PSAwKSBcCisJCWlmIChjd2QgIT0gQVRfRkRDV0QgJiYgcGF0
> aFswXSE9Jy8nKSBcCiAJCQlzZnNwcmludGYoX2F0XyMjcGF0aCwgc2l6ZW9mKF9hdF8jI3BhdGgp
> LCBfZmRfcGlkX2Rpcl9mbXQsIGdldHBpZCgpLCBjd2QsICIvIiwgcGF0aCk7CiAKICNkZWZpbmUg
> QVRCRUdMKGx3ZCxwYXRoKSBcCiAJeyBcCiAJCWNoYXIJX2F0XyMjbGlua1tQQVRIX01BWF07IFwK
> LQkJaWYgKGx3ZCA+PSAwKSBcCisJCWlmIChsd2QgIT0gQVRfRkRDV0QgJiYgbGlua1swXSE9Jy8n
> KSBcCiAJCQlzZnNwcmludGYoX2F0XyMjbGluaywgc2l6ZW9mKF9hdF8jI2xpbmspLCBfZmRfcGlk
> X2Rpcl9mbXQsIGdldHBpZCgpLCBsd2QsICIvIiwgbGluayk7CiAKICNlbmRpZgogCiAjZGVmaW5l
> IEFUUEFUSChjd2QscGF0aCkgXAotCQkoKGN3ZD49MCk/KGNvbnN0IGNoYXIqKV9hdF8jI3BhdGg6
> cGF0aCkKKwkJKChjd2QgIT0gQVRfRkRDV0QgJiYgcGF0aFswXSE9Jy8nKT8oY29uc3QgY2hhciop
> X2F0XyMjcGF0aDpwYXRoKQogCiAjZGVmaW5lIEFURU5EKCkgXAogCX0KQEAgLTg4LDcgKzg4LDcg
> QEAKIAkJaW50CQlfYXRfZG90ID0gLTE7IFwKIAkJaW50CQlfYXRfcmV0OyBcCiAJCXVuc2lnbmVk
> IGludAlfYXRfdGlkOyBcCi0JCWlmIChjd2QgPj0gMCkgXAorCQlpZiAoY3dkICE9IEFUX0ZEQ1dE
> ICYmIHBhdGhbMF0hPScvJykgXAogCQl7IFwKIAkJCXNpZ2NyaXQoU0lHX1JFR19BTEwpOyBcCiAJ
> CQlfYXRfdGlkID0gYXNvdGhyZWFkaWQoKTsgXApAQCAtMjA0LDcgKzIwNCw3IEBACiAJaW50CXI7
> CiAKIAlBVEJFRyhjd2QsIHBhdGgpOwotCXIgPSAoZmxhZ3MgJiBBVF9TWU1MSU5LX05PRk9MTE9X
> KSA/IGxzdGF0KEFUUEFUSChjd2QsIHBhdGgpLCBzdCwgZmxhZ3MpIDogc3RhdChBVFBBVEgoY3dk
> LCBwYXRoKSwgc3QsIGZsYWdzKTsKKwlyID0gKGZsYWdzICYgQVRfU1lNTElOS19OT0ZPTExPVykg
> PyBsc3RhdChBVFBBVEgoY3dkLCBwYXRoKSwgc3QpIDogc3RhdChBVFBBVEgoY3dkLCBwYXRoKSwg
> c3QpOwogCUFURU5EKCk7CiAJcmV0dXJuIHI7CiB9CkBAIC0yMjAsOSArMjIwLDkgQEAKIHsKIAlp
> bnQJcjsKIAotCWlmIChwd2QgPCAwIHx8ICpwYXRoID09ICcvJykKKwlpZiAocHdkID09IEFUX0ZE
> Q1dEIHx8ICpwYXRoID09ICcvJykKIAl7Ci0JCWlmIChsd2QgPCAwIHx8ICpsaW5rcGF0aCA9PSAn
> LycpCisJCWlmIChsd2QgPT0gQVRfRkRDV0QgfHwgKmxpbmtwYXRoID09ICcvJykKIAkJCXIgPSBs
> aW5rKHBhdGgsIGxpbmtwYXRoKTsKIAkJZWxzZQogCQl7CkBAIC0yMzEsNyArMjMxLDcgQEAKIAkJ
> CUFURU5EKCk7CiAJCX0KIAl9Ci0JZWxzZSBpZiAobHdkIDwgMCB8fCAqbGlua3BhdGggPT0gJy8n
> KQorCWVsc2UgaWYgKGx3ZCA9PSBBVF9GRENXRCB8fCAqbGlua3BhdGggPT0gJy8nKQogCXsKIAkJ
> QVRCRUcocHdkLCBwYXRoKTsKIAkJciA9IGxpbmsoQVRQQVRIKHB3ZCwgcGF0aCksIGxpbmtwYXRo
> KTsKQEAgLTMzMyw3ICszMzMsNyBAQAogI3VuZGVmCVNUVUIKIAogc3NpemVfdAotcmVhZGxpbmth
> dChpbnQgY3dkLCBjb25zdCBjaGFyKiBwYXRoLCB2b2lkKiBidWYsIHNpemVfdCBzaXplKQorcmVh
> ZGxpbmthdChpbnQgY3dkLCBjb25zdCBjaGFyKiBwYXRoLCBjaGFyKiBidWYsIHNpemVfdCBzaXpl
> KQogewogCXNzaXplX3QJcjsKIApAQCAtMzcyLDEyICszNzIsNDEgQEAKIAlpbnQJcjsKIAogCUFU
> QkVHKGN3ZCwgcGF0aCk7Ci0JciA9IHVubGluayhBVFBBVEgoY3dkLCBwYXRoKSwgZmxhZ3MpOwor
> CWlmIChmbGFncyAmIEFUX1JFTU9WRURJUikKKwkJciA9IHJtZGlyKEFUUEFUSChjd2QsIHBhdGgp
> KTsKKwllbHNlCisJCXIgPSB1bmxpbmsoQVRQQVRIKGN3ZCwgcGF0aCkpOwogCUFURU5EKCk7CiAJ
> cmV0dXJuIHI7CiB9CiAKICNlbmRpZgorCisjaWYgIV9saWJfcmVuYW1lYXQKKworI3VuZGVmCVNU
> VUIKKworaW50CityZW5hbWVhdChpbnQgZnJvbWZkLCBjb25zdCBjaGFyICpvbGQsIGludCB0b2Zk
> LCBjb25zdCBjaGFyICpuZXcpCit7CisJY2hhciBvbGRwYXRoYnVmW1BBVEhfTUFYXTsKKwljaGFy
> IG5ld3BhdGhidWZbUEFUSF9NQVhdOworCisJaWYgKGZyb21mZCAhPSBBVF9GRENXRCAmJiBvbGRb
> MF0gIT0gJy8nKQorCXsKKwkJc25wcmludGYob2xkcGF0aGJ1Ziwgc2l6ZW9mKG9sZHBhdGhidWYp
> LCBfZmRfcGlkX2Rpcl9mbXQsIGdldHBpZCgpLCBmcm9tZmQsICIvIiwgb2xkKTsKKwkJb2xkID0g
> b2xkcGF0aGJ1ZjsKKwl9CisJaWYgKHRvZmQgIT0gQVRfRkRDV0QgJiYgbmV3WzBdICE9ICcvJykK
> Kwl7CisJCXNucHJpbnRmKG5ld3BhdGhidWYsIHNpemVvZihuZXdwYXRoYnVmKSwgX2ZkX3BpZF9k
> aXJfZm10LCBnZXRwaWQoKSwgdG9mZCwgIi8iLCBuZXcpOworCQluZXcgPSBuZXdwYXRoYnVmOwor
> CX0KKworCXJldHVybiByZW5hbWUob2xkLCBuZXcpOworfQorCisjZW5kaWYKIAogI2lmIFNUVUIK
> IApkaWZmIC1yIC11IGJ1aWxkX2kzODZfNjRiaXRfZGVidWcvc3JjL2xpYi9saWJhc3QvZmVhdHVy
> ZXMvZWFjY2VzcyBidWlsZF9pMzg2XzY0Yml0X2RlYnVnX3BhdGNoZWQvc3JjL2xpYi9saWJhc3Qv
> ZmVhdHVyZXMvZWFjY2VzcwotLS0gc3JjL2xpYi9saWJhc3QvZmVhdHVyZXMvZWFjY2VzcwkyMDA0
> LTA3LTIzIDA4OjAyOjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3JjL2xpYi9saWJhc3QvZmVhdHVy
> ZXMvZWFjY2VzcwkyMDEzLTA3LTA3IDA1OjE5OjE3LjA2MzY5NDAwNCArMDIwMApAQCAtMSw0ICsx
> LDQgQEAKLWxpYgllYWNjZXNzLGV1aWRhY2Nlc3MKK2xpYgllYWNjZXNzLGV1aWRhY2Nlc3MgLWxn
> ZW4KIG1hY3JvewogCSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAkjaW5jbHVkZSA8dW5pc3RkLmg+
> CmRpZmYgLXIgLXUgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Zy9zcmMvbGliL2xpYmFzdC9mZWF0dXJl
> cy9mY250bC5jIGJ1aWxkX2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvbGliL2xpYmFzdC9m
> ZWF0dXJlcy9mY250bC5jCi0tLSBzcmMvbGliL2xpYmFzdC9mZWF0dXJlcy9mY250bC5jCTIwMTMt
> MDYtMjcgMDg6Mzk6MTEuMDAwMDAwMDAwICswMjAwCisrKyBzcmMvbGliL2xpYmFzdC9mZWF0dXJl
> cy9mY250bC5jCTIwMTMtMDctMDcgMDU6MTk6MTcuMDY0NjkzOTkzICswMjAwCkBAIC0yNywxMCAr
> MjcsMzAgQEAKICAqIGdlbmVyYXRlIFBPU0lYIGZjbnRsLmgKICAqLwogCisvKgorICogV2UgdXNl
> IHRoaXMgdG8gZm9yY2UgTGludXggYW5kIHNvbWUgKkJTRCB2ZXJzaW9ucyB0byB0ZWxsIHVzIGFs
> bAorICogdGhlaXIgZmxhZ3MKKyAqLworI2RlZmluZSBfR05VX1NPVVJDRSAxCisjZGVmaW5lIF9f
> VVNFX0dOVSAxIC8qIHdoeSBpcyB0aGlzIG5lY2Nlc2FyeSBvbiBMaW51eCA/ICovCisKICNpbmNs
> dWRlIDxzeXMvdHlwZXMuaD4KIAogI2luY2x1ZGUgIkZFQVRVUkUvbGliIgogCisvKgorICogTWFr
> ZSBzdXJlIF9HTlVfU09VUkNFIGlzIGFjdGl2ZSBvbiBMaW51eC4gU29tZSB2ZXJzaW9ucworICog
> Z2l2ZSB1cyBzZXJpb3VzIHRyb3VibGUgaW4gdGhpcyBjYXNlIHNvIHdlIGhhdmUgdGhpcworICog
> YXNzZXJ0IHRvICphYm9ydCogZWFybHkgaW5zdGVhZCBvZiBsZXQgdXMgaHVudCBmb3IgImdob3N0
> CisgKiBidWdzIgorICovCisjaWZkZWYgX19saW51eF9fCisjaWZuZGVmIF9fVVNFX0dOVQorI2Vy
> cm9yICJBU1NFUlQ6IF9fVVNFX0dOVSBzaG91bGQgYmUgZGVmaW5lZCBieSBub3ciCisjZW5kaWYK
> KyNlbmRpZgorCisKICNkZWZpbmUgZ2V0ZHRhYmxlc2l6ZQlfX19fX19nZXRkdGFibGVzaXplCiAj
> ZGVmaW5lIGdldHBhZ2VzaXplCV9fX19fX2dldHBhZ2VzaXplCiAjZGVmaW5lIGlvY3RsCQlfX19f
> X19pb2N0bApAQCAtMTg2LDYgKzIwNiwxNSBAQAogI2lmZGVmCUZfU0hMQ0sKIAlpZiAoRl9TSExD
> SyA+IGZfbG9jYWwpIGZfbG9jYWwgPSBGX1NITENLOwogI2VuZGlmCisjaWZkZWYJRl9TSEFSRQor
> CWlmIChGX1NIQVJFID4gZl9sb2NhbCkgZl9sb2NhbCA9IEZfU0hBUkU7CisjZW5kaWYKKyNpZmRl
> ZglGX1VOU0hBUkUKKwlpZiAoRl9VTlNIQVJFID4gZl9sb2NhbCkgZl9sb2NhbCA9IEZfVU5TSEFS
> RTsKKyNlbmRpZgorI2lmZGVmCUZfQkFERkQgLyogQ3JlYXRlIFBvaXNvbiBGRCAqLworCWlmIChG
> X0JBREZEID4gZl9sb2NhbCkgZl9sb2NhbCA9IEZfQkFERkQ7CisjZW5kaWYKIAogI2lmCU5FRURf
> RgogI2lmCV9saWJfZmNudGwKQEAgLTI0MCwxMiArMjY5LDEyIEBACiAjZGVmaW5lIE5FRURfTwkx
> CiAjZW5kaWYKIAotI2lmZGVmIE9fRFNZTkMKLQlpZiAoT19EU1lOQyA+IG9fbG9jYWwpIG9fbG9j
> YWwgPSBPX0RTWU5DOwotI2VuZGlmCiAjaWZkZWYgT19MQVJHRUZJTEUKIAlpZiAoT19MQVJHRUZJ
> TEUgPiBvX2xvY2FsKSBvX2xvY2FsID0gT19MQVJHRUZJTEU7CiAjZW5kaWYKKyNpZmRlZiBPX0xB
> UkdFRklMRTEyOAorCWlmIChPX0xBUkdFRklMRTEyOCA+IG9fbG9jYWwpIG9fbG9jYWwgPSBPX0xB
> UkdFRklMRTEyODsKKyNlbmRpZgogI2lmZGVmIE9fTk9GT0xMT1cKIAlpZiAoT19OT0ZPTExPVyA+
> IG9fbG9jYWwpIG9fbG9jYWwgPSBPX05PRk9MTE9XOwogI2VuZGlmCkBAIC0yNTgsMTIgKzI4Nywz
> NiBAQAogI2lmZGVmIE9fUlNZTkMKIAlpZiAoT19SU1lOQyA+IG9fbG9jYWwpIG9fbG9jYWwgPSBP
> X1JTWU5DOwogI2VuZGlmCisjaWZkZWYgT19EU1lOQworCWlmIChPX0RTWU5DID4gb19sb2NhbCkg
> b19sb2NhbCA9IE9fRFNZTkM7CisjZW5kaWYKICNpZmRlZiBPX1NZTkMKIAlpZiAoT19TWU5DID4g
> b19sb2NhbCkgb19sb2NhbCA9IE9fU1lOQzsKICNlbmRpZgogI2lmZGVmIE9fWEFUVFIKIAlpZiAo
> T19YQVRUUiA+IG9fbG9jYWwpIG9fbG9jYWwgPSBPX1hBVFRSOwogI2VuZGlmCisjaWZkZWYgT19E
> SVJFQ1QKKwlpZiAoT19ESVJFQ1QgPiBvX2xvY2FsKSBvX2xvY2FsID0gT19ESVJFQ1Q7CisjZW5k
> aWYKKyNpZmRlZiBPX0RJUkVDVE9SWQorCWlmIChPX0RJUkVDVE9SWSA+IG9fbG9jYWwpIG9fbG9j
> YWwgPSBPX0RJUkVDVE9SWTsKKyNlbmRpZgorI2lmZGVmIE9fU0VBUkNICisJaWYgKE9fU0VBUkNI
> ID4gb19sb2NhbCkgb19sb2NhbCA9IE9fU0VBUkNIOworI2VuZGlmCisjaWZkZWYgT19QQVRICisJ
> aWYgKE9fUEFUSCA+IG9fbG9jYWwpIG9fbG9jYWwgPSBPX1BBVEg7CisjZW5kaWYKKyNpZmRlZiBP
> X0VYRUMKKwlpZiAoT19FWEVDID4gb19sb2NhbCkgb19sb2NhbCA9IE9fRVhFQzsKKyNlbmRpZgor
> I2lmZGVmIE9fQ0xPRVhFQworCWlmIChPX0NMT0VYRUMgPiBvX2xvY2FsKSBvX2xvY2FsID0gT19D
> TE9FWEVDOworI2VuZGlmCisjaWZkZWYgT19UVFlfSU5JVAorCWlmIChPX1RUWV9JTklUID4gb19s
> b2NhbCkgb19sb2NhbCA9IE9fVFRZX0lOSVQ7CisjZW5kaWYKIAogCXByaW50ZigiI2RlZmluZSBf
> YXN0X09fTE9DQUwJCTAlb1xuIiwgb19sb2NhbDw8MSk7CiAjaWYJTkVFRF9PCkBAIC0zMTYsMTEg
> KzM2OSwzMyBAQAogI2VuZGlmCiAjaWZuZGVmCU9fU0VBUkNICiAjaWZkZWYgT19QQVRICi0JcHJp
> bnRmKCIjZGVmaW5lIE9fU0VBUkNICQlPX1BBVEhcbiIpOworCS8qCisJICogT19QQVRIIGlzIGEg
> TGludXgncyB2YXJpYXRpb24gb2YgT19TRUFSQ0guIFNpbmNlIHRoaXMgaXMgdHJlYXRlZAorCSAq
> IGFzIGV4dGVuc2lvbiBpdCBtYXkgbm90IGJlIGF2YWlsYWJsZSB3aXRob3V0IF9HTlVfU09VUkNF
> LgorCSAqIEV2ZW4gZXZlbiB3aXRoIF9HTlVfU09VUkNFIHNvbWUgTGludXggcGxhdGZvcm1zIGhh
> dmUgYnVncyBpbiB0aGVpcgorCSAqIGhlYWRlcnMgd2hpY2ggcHJldmVudHMgdGhlIGRlZmluaXRp
> b24gb2YgT19QQVRIIGluIHNvbWUgaGlkZW91cworCSAqIGNhc2VzLiBUbyBwcmV2ZW50IGFsbCB0
> aGlzIG1lc3Mgd2UganVzdCBncmFiIHRoZSBvY3RhbCB2YWx1ZSBhbmQKKwkgKiBkZWZpbmUgaXQg
> YXMgT19TRUFSQ0guCisJICogRG8gbm90IGNoYW5nZSB0aGlzLiBZb3UnbGwgZW5kLXVwIGluIGhl
> bGwsIHRvZ2V0aGVyIHdpdGggdGhlIExpbnV4CisJICogaGVhZGVycy4gUXVpY2tseS4KKwkgKi8K
> KwlwcmludGYoIiNkZWZpbmUgT19TRUFSQ0gJCTAlb1xuIiwgKGludClPX1BBVEgpOwogI2Vsc2UK
> IAlwcmludGYoIiNkZWZpbmUgT19TRUFSQ0gJCTAlb1xuIiwgb19sb2NhbCA8PD0gMSk7CiAjZW5k
> aWYKICNlbmRpZgorI2lmZGVmIE9fRElSRUNUT1JZCisJLyoKKwkgKiBPX0RJUkVDVE9SWSBpcyBv
> bmx5IGF2YWlsYWJsZSBhcyBleHRlbnNpb24gKGhpZGRlbiBieQorCSAqIG9ic2N1cmUgQ1BQIGZs
> YWdzKSBvbiBvbGRlciBMaW51eCB2ZXJzaW9ucy4gV2UgbWFrZSBpdAorCSAqIGF2YWlsYWJsZSBo
> ZXJlIChzYW1lIGFzIHdpdGggT19QQVRIIGFib3ZlKSBpbiBnZW5lcmFsCisJICogd2l0aG91dCBy
> ZXF1aXJpbmcgdGhlIHdob2xlIGJ1aWxkIHRvIHVzZSB0aGUgb2JzdXJlCisJICogQ1BQIGZsYWdz
> IHRvIHByZXZlbnQgYW55IHNpZGUtZWZmZWN0cy4KKwkgKi8KKwlwcmludGYoIiNpZm5kZWYgT19E
> SVJFQ1RPUllcbiIpOworCXByaW50ZigiI2RlZmluZSBPX0RJUkVDVE9SWQkJMCVvXG4iLCAoaW50
> KU9fRElSRUNUT1JZKTsKKwlwcmludGYoIiNlbmRpZlxuIik7CisjZW5kaWYKICNpZm5kZWYJT19J
> TlRFUkNFUFQKIAlwcmludGYoIiNkZWZpbmUgT19JTlRFUkNFUFQJCTAlb1xuIiwgb19sb2NhbCA8
> PD0gMSk7CiAjZW5kaWYKQEAgLTM0Niw3ICs0MjEsOCBAQAogI2lmICFkZWZpbmVkKEFUX0ZEQ1dE
> KSB8fCAhZGVmaW5lZChBVF9TWU1MSU5LX05PRk9MTE9XKSB8fCAhZGVmaW5lZChBVF9SRU1PVkVE
> SVIpIHx8ICFkZWZpbmVkKEFUX1NZTUxJTktfRk9MTE9XKSB8fCAhZGVmaW5lZChBVF9FQUNDRVNT
> KQogCXByaW50ZigiXG4iKTsKICNpZm5kZWYgQVRfRkRDV0QKLQlwcmludGYoIiNkZWZpbmUgQVRf
> RkRDV0QJCS0xMDBcbiIpOworCS8qIEFUX0ZEQ1dEIG11c3QgYmUgYmVsb3cgLTI1NiBmb3IgcG9y
> dGFiaWxpdHkgcmVhc29ucyAqLworCXByaW50ZigiI2RlZmluZSBBVF9GRENXRAkJLTY2NlxuIik7
> CiAjZW5kaWYKICNpZm5kZWYgQVRfU1lNTElOS19OT0ZPTExPVwogCXByaW50ZigiI2RlZmluZSBB
> VF9TWU1MSU5LX05PRk9MTE9XCTB4MTAwXG4iKTsKQEAgLTQyMCwxMCArNDk2LDEwIEBACiAJcHJp
> bnRmKCJleHRlcm4gaW50CW1rbm9kYXQoaW50LCBjb25zdCBjaGFyKiwgbW9kZV90LCBkZXZfdCk7
> XG4iKTsKIAlwcmludGYoIiNlbmRpZlxuIik7CiAJcHJpbnRmKCIjaWYgIV9saWJfb3BlbmF0XG4i
> KTsKLQlwcmludGYoImV4dGVybiBpbnQJb3BlbmF0KGludCwgY29uc3QgY2hhciosIG1vZGVfdCwg
> aW50KTtcbiIpOworCXByaW50ZigiZXh0ZXJuIGludAlvcGVuYXQoaW50LCBjb25zdCBjaGFyKiwg
> aW50IGZsYWdzLCAuLi4pO1xuIik7CiAJcHJpbnRmKCIjZW5kaWZcbiIpOwogCXByaW50ZigiI2lm
> ICFfbGliX3JlYWRsaW5rYXRcbiIpOwotCXByaW50ZigiZXh0ZXJuIGludAlyZWFkbGlua2F0KGlu
> dCwgY29uc3QgY2hhciosIHZvaWQqLCBzaXplX3QpO1xuIik7CisJcHJpbnRmKCJleHRlcm4gc3Np
> emVfdAlyZWFkbGlua2F0KGludCwgY29uc3QgY2hhciosIGNoYXIqLCBzaXplX3QpO1xuIik7CiAJ
> cHJpbnRmKCIjZW5kaWZcbiIpOwogCXByaW50ZigiI2lmICFfbGliX3N5bWxpbmthdFxuIik7CiAJ
> cHJpbnRmKCJleHRlcm4gaW50CXN5bWxpbmthdChjb25zdCBjaGFyKiwgaW50LCBjb25zdCBjaGFy
> Kik7XG4iKTsKQEAgLTQzMSw2ICs1MDcsOSBAQAogCXByaW50ZigiI2lmICFfbGliX3VubGlua2F0
> XG4iKTsKIAlwcmludGYoImV4dGVybiBpbnQJdW5saW5rYXQoaW50LCBjb25zdCBjaGFyKiwgaW50
> KTtcbiIpOwogCXByaW50ZigiI2VuZGlmXG4iKTsKKwlwcmludGYoIiNpZiAhX2xpYl9yZW5hbWVh
> dFxuIik7CisJcHJpbnRmKCJleHRlcm4gaW50CXJlbmFtZWF0KGludCBmcm9tZmQsIGNvbnN0IGNo
> YXIgKm9sZCwgaW50IHRvZmQsIGNvbnN0IGNoYXIgKm5ldyk7XG4iKTsKKwlwcmludGYoIiNlbmRp
> ZlxuIik7CiAJcHJpbnRmKCJcbiIpOwogCXByaW50ZigiI3VuZGVmCWV4dGVyblxuIik7CiAKZGlm
> ZiAtciAtdSBidWlsZF9pMzg2XzY0Yml0X2RlYnVnL3NyYy9saWIvbGliYXN0L2ZlYXR1cmVzL2xp
> YiBidWlsZF9pMzg2XzY0Yml0X2RlYnVnX3BhdGNoZWQvc3JjL2xpYi9saWJhc3QvZmVhdHVyZXMv
> bGliCi0tLSBzcmMvbGliL2xpYmFzdC9mZWF0dXJlcy9saWIJMjAxMy0wNi0yNyAwNDozNDoxOS4w
> MDAwMDAwMDAgKzAyMDAKKysrIHNyYy9saWIvbGliYXN0L2ZlYXR1cmVzL2xpYgkyMDEzLTA3LTA3
> IDA1OjE5OjE3LjA2NDY5Mzk5MyArMDIwMApAQCAtNDgsNyArNDgsNyBAQAogbGliCW9wZW5hdCAt
> RF9BVEZJTEVfU09VUkNFIGZjbnRsLmggdW5pc3RkLmggeWVzewogCSNkZWZpbmUgX0FURklMRV9T
> T1VSQ0UJMQogfWVuZAotbGliCWZhY2Nlc3NhdCxmY2htb2RhdCxmY2hvd25hdCxmc3RhdGF0LGxp
> bmthdCxta2RpcmF0LG1rZmlmb2F0LG1rbm9kYXQsb3BlbmF0LHJlYWRsaW5rYXQsc3ltbGlua2F0
> LHVubGlua2F0IC1EX0FURklMRV9TT1VSQ0UgZmNudGwuaCB1bmlzdGQuaAorbGliCWZhY2Nlc3Nh
> dCxmY2htb2RhdCxmY2hvd25hdCxmc3RhdGF0LGxpbmthdCxta2RpcmF0LG1rZmlmb2F0LG1rbm9k
> YXQsb3BlbmF0LHJlYWRsaW5rYXQsc3ltbGlua2F0LHVubGlua2F0LHJlbmFtZWF0IC1EX0FURklM
> RV9TT1VSQ0UgZmNudGwuaCB1bmlzdGQuaAogbGliCWZzdGF0YXQ2NCxvcGVuYXQ2NCAtRF9BVEZJ
> TEVfU09VUkNFIC1EX0xBUkdFRklMRTY0X1NPVVJDRSBmY250bC5oIHVuaXN0ZC5oIHN5cy9zdGF0
> LmgKIAogbGliCWxjaG1vZCBub3RleyBsY2htb2QgaW1wbGVtZW50ZWQgfWVuZCBleGVjdXRlewpk
> aWZmIC1yIC11IGJ1aWxkX2kzODZfNjRiaXRfZGVidWcvc3JjL2xpYi9saWJhc3QvcGF0aC9wYXRo
> b3Blbi5jIGJ1aWxkX2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvbGliL2xpYmFzdC9wYXRo
> L3BhdGhvcGVuLmMKLS0tIHNyYy9saWIvbGliYXN0L3BhdGgvcGF0aG9wZW4uYwkyMDEzLTA2LTI1
> IDIzOjQwOjMyLjAwMDAwMDAwMCArMDIwMAorKysgc3JjL2xpYi9saWJhc3QvcGF0aC9wYXRob3Bl
> bi5jCTIwMTMtMDctMDcgMDU6MTk6MTcuMDY1NjkzOTgzICswMjAwCkBAIC0xNjYsNyArMTY2LDcg
> QEAKIAkJCXJldHVybglkZXYucGlkID4gMCAmJiBkZXYucGlkICE9IGdldHBpZCgpID8KIAkJCQlv
> cGVuYXQoQVRfRkRDV0QsIGIsIG9mbGFncywgbW9kZSkgOgogCQkJCWJbZGV2LnBhdGgub2Zmc2V0
> XSA/Ci0JCQkJb3BlbmF0KGRldi5mZCwgYiArIGRldi5wYXRoLm9mZnNldCArIDEsIG9mbGFncywg
> bW9kZSkgOgorCQkJCW9wZW5hdChkZXYuZmQsIGIgKyBkZXYucGF0aC5vZmZzZXQsIG9mbGFncywg
> bW9kZSkgOgogCQkJCWZjbnRsKGRldi5mZCwgKG9mbGFncyAmIE9fQ0xPRVhFQykgPyBGX0RVUEZE
> X0NMT0VYRUMgOiBGX0RVUEZELCAwKTsKIAkJZWxzZSBpZiAoZGV2LnByb3Qub2Zmc2V0KQogCQl7
> CmRpZmYgLXIgLXUgYnVpbGRfaTM4Nl82NGJpdF9kZWJ1Zy9zcmMvbGliL2xpYmFzdC9wb3J0L2lu
> dGVyY2VwdC5jIGJ1aWxkX2kzODZfNjRiaXRfZGVidWdfcGF0Y2hlZC9zcmMvbGliL2xpYmFzdC9w
> b3J0L2ludGVyY2VwdC5jCi0tLSBzcmMvbGliL2xpYmFzdC9wb3J0L2ludGVyY2VwdC5jCTIwMTMt
> MDYtMjggMDg6NTk6NDAuMDAwMDAwMDAwICswMjAwCisrKyBzcmMvbGliL2xpYmFzdC9wb3J0L2lu
> dGVyY2VwdC5jCTIwMTMtMDctMDcgMDU6MTk6MTcuMDY1NjkzOTgzICswMjAwCkBAIC0xNzYsNyAr
> MTc2LDcgQEAKIGFzdF9vcGVuYXQoaW50IGN3ZCwgY29uc3QgY2hhciogcGF0aCwgaW50IGZsYWdz
> LCAuLi4pCiB7CiAJaW50CXI7Ci0jaWYgX2FzdF9PX0xPQ0FMICYmIE9fQ0xPRVhFQyA+PSBfYXN0
> X09fTE9DQUwKKyNpZiBkZWZpbmVkKF9hc3RfT19MT0NBTCkgJiYgKE9fQ0xPRVhFQyA+PSBfYXN0
> X09fTE9DQUwpCiAJaW50CWM7CiAjZW5kaWYKIAltb2RlX3QJbW9kZTsKQEAgLTE4NSw3ICsxODUs
> NyBAQAogCXZhX3N0YXJ0KGFwLCBmbGFncyk7CiAJbW9kZSA9IChmbGFncyAmIE9fQ1JFQVQpID8g
> dmFfYXJnKGFwLCBtb2RlX3QpIDogKG1vZGVfdCkwOwogCXZhX2VuZChhcCk7Ci0jaWYgX2FzdF9P
> X0xPQ0FMICYmIE9fQ0xPRVhFQyA+PSBfYXN0X09fTE9DQUwKKyNpZiBkZWZpbmVkKF9hc3RfT19M
> T0NBTCkgJiYgKE9fQ0xPRVhFQyA+PSBfYXN0X09fTE9DQUwpCiAJaWYgKGZsYWdzICYgT19DTE9F
> WEVDKQogCXsKIAkJZmxhZ3MgJj0gfk9fQ0xPRVhFQzsKQEAgLTE5OCw3ICsxOTgsNyBAQAogCQlS
> RVNUQVJUKHIsIG9wZW5hdChjd2QsIHBhdGgsIGZsYWdzJn5PX0lOVEVSQ0VQVCwgbW9kZSkpOwog
> CWVsc2UKIAkJUkVTVEFSVChyLCBwYXRob3Blbihjd2QsIHBhdGgsIE5pTCwgMCwgMCwgZmxhZ3N8
> T19JTlRFUkNFUFQsIG1vZGUpKTsKLSNpZiBfYXN0X09fTE9DQUwgJiYgT19DTE9FWEVDID49IF9h
> c3RfT19MT0NBTAorI2lmIGRlZmluZWQoX2FzdF9PX0xPQ0FMKSAmJiAoT19DTE9FWEVDID49IF9h
> c3RfT19MT0NBTCkKIAlpZiAoYyAmJiByID49IDApCiAJCVJFU1RBUlQoYywgZmNudGwociwgRl9T
> RVRGRCwgRkRfQ0xPRVhFQykpOwogI2VuZGlmCkBAIC03MjMsOCArNzIzLDE4IEBACiBhc3Rfc29j
> a2V0KGludCBkb21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wpCiB7CiAJaW50CXI7CisJaW50
> CWZ0eXBlPXR5cGU7CiAKLQlSRVNUQVJUKHIsIHNvY2tldChkb21haW4sIHR5cGUsIHByb3RvY29s
> KSk7CisvKiBGaWx0ZXIgZmxhZ3Mgd2UgZW11bGF0ZSAqLworI2lmIF9hc3RfU09DS19DTE9FWEVD
> CisJaWYgKGZ0eXBlICYgU09DS19DTE9FWEVDKQorCQlmdHlwZSAmPSB+U09DS19DTE9FWEVDOwor
> I2VuZGlmCisjaWYgX2FzdF9TT0NLX05PTkJMT0NLCisJaWYgKGZ0eXBlICYgU09DS19OT05CTE9D
> SykKKwkJZnR5cGUgJj0gflNPQ0tfTk9OQkxPQ0s7CisjZW5kaWYKKwlSRVNUQVJUKHIsIHNvY2tl
> dChkb21haW4sIGZ0eXBlLCBwcm90b2NvbCkpOwogCVNPQ0tUWVBFKHIsIHR5cGUsIHIsIC0xKTsK
> IAlyZXR1cm4gcjsKIH0KQEAgLTczMyw4ICs3NDMsMTkgQEAKIGFzdF9zb2NrZXRwYWlyKGludCBk
> b21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGludCBmZHNbMl0pCiB7CiAJaW50CXI7CisJ
> aW50CWZ0eXBlPXR5cGU7CisKKy8qIEZpbHRlciBmbGFncyB3ZSBlbXVsYXRlICovCisjaWYgX2Fz
> dF9TT0NLX0NMT0VYRUMKKwlpZiAoZnR5cGUgJiBTT0NLX0NMT0VYRUMpCisJCWZ0eXBlICY9IH5T
> T0NLX0NMT0VYRUM7CisjZW5kaWYKKyNpZiBfYXN0X1NPQ0tfTk9OQkxPQ0sKKwlpZiAoZnR5cGUg
> JiBTT0NLX05PTkJMT0NLKQorCQlmdHlwZSAmPSB+U09DS19OT05CTE9DSzsKKyNlbmRpZgogCi0J
> UkVTVEFSVChyLCBzb2NrZXRwYWlyKGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wsIGZkcykpOworCVJF
> U1RBUlQociwgc29ja2V0cGFpcihkb21haW4sIGZ0eXBlLCBwcm90b2NvbCwgZmRzKSk7CiAJU09D
> S1RZUEUociwgdHlwZSwgZmRzWzBdLCBmZHNbMV0pOwogCXJldHVybiByOwogfQo=
> --001a11c28aa2dd24c204e1e1caeb
> Content-Type: text/plain; charset="us-ascii"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline

> _______________________________________________
> ast-users mailing list
> [email protected]
> http://lists.research.att.com/mailman/listinfo/ast-users

> --001a11c28aa2dd24c204e1e1caeb--

_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users

Reply via email to