com php/gtk-src: Whitespace and move TSRM into struct instead of using evil fetch: main/phpg_closure.c
[email protected] (Elizabeth Marie Smith) Tue, 17 Jul 2012 15:06:42 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
--8d30be47af932dfe47ed5adf273f84109dabcfa4 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Commit: e349ad95ec005767327b5936346574571d358d29=0AAuthor: Elizabeth = M Smith <[email protected]> Tue, 17 Jul 2012 11:06:42 -0400= =0AParents: d06019f07812c5e53982e6e6c960745ee605287e=0ABranches: master= =0A=0ALink: http://git.php.net/?p=3Dphp/gtk-src.git;a=3Dcommitdiff;h= =3De349ad95ec005767327b5936346574571d358d29=0A=0ALog:=0AWhitespace and move= TSRM into struct instead of using evil=0Afetch=0A=0AChanged paths:=0A M = main/phpg_closure.c=0A=0A --8d30be47af932dfe47ed5adf273f84109dabcfa4 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff_e349ad95ec005767327b5936346574571d358d29.txt" ZGlmZiAtLWdpdCBhL21haW4vcGhwZ19jbG9zdXJlLmMgYi9tYWluL3BocGdfY2xvc3VyZS5jCmlu ZGV4IDg5ZDBiODkuLmYxNmFkOGMgMTAwNjQ0Ci0tLSBhL21haW4vcGhwZ19jbG9zdXJlLmMKKysr IGIvbWFpbi9waHBnX2Nsb3N1cmUuYwpAQCAtMzAsMzEgKzMwLDM3IEBAIHN0cnVjdCBfcGhwZ19j bG9zdXJlX3QgewogCUdDbG9zdXJlIGNsb3N1cmU7CiAJenZhbCAqY2FsbGJhY2s7CiAJenZhbCAq dXNlcl9hcmdzOwotICAgIHp2YWwgKnJlcGxhY2Vfb2JqZWN0OworCXp2YWwgKnJlcGxhY2Vfb2Jq ZWN0OwogCWludCBjb25uZWN0X3R5cGU7CiAJY2hhciAqc3JjX2ZpbGVuYW1lOwogCXVpbnQgc3Jj X2xpbmVubzsKKyNpZmRlZiBaVFMKKwlUU1JNTFNfRDsKKyNlbmRpZgogfTsKIAogc3RhdGljIHZv aWQgcGhwZ19jbG9zdXJlX2ludmFsaWRhdGUoZ3BvaW50ZXIgZGF0YSwgR0Nsb3N1cmUgKmNsb3N1 cmUpCiB7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZSA9IChwaHBnX2Nsb3N1cmVf dCAqKWNsb3N1cmU7Ci0KLSAgICB6dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1cmUtPmNhbGxiYWNr KTsKLSAgICBpZiAocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpIHsKLSAgICAgICAgenZhbF9wdHJf ZHRvcigmcGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpOwotICAgIH0KLSAgICBpZiAocGhwZ19jbG9z dXJlLT5yZXBsYWNlX29iamVjdCkgewotICAgICAgICB6dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1 cmUtPnJlcGxhY2Vfb2JqZWN0KTsKLSAgICB9Ci0gICAgZWZyZWUocGhwZ19jbG9zdXJlLT5zcmNf ZmlsZW5hbWUpOwotCi0gICAgcGhwZ19jbG9zdXJlLT5jYWxsYmFjayA9IE5VTEw7Ci0gICAgcGhw Z19jbG9zdXJlLT51c2VyX2FyZ3MgPSBOVUxMOwotICAgIHBocGdfY2xvc3VyZS0+cmVwbGFjZV9v YmplY3QgPSBOVUxMOwotICAgIHBocGdfY2xvc3VyZS0+Y29ubmVjdF90eXBlID0gUEhQR19DT05O RUNUX05PUk1BTDsKLSAgICBwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSA9IE5VTEw7Ci0gICAg cGhwZ19jbG9zdXJlLT5zcmNfbGluZW5vID0gMDsKKwlwaHBnX2Nsb3N1cmVfdCAqcGhwZ19jbG9z dXJlID0gKHBocGdfY2xvc3VyZV90ICopY2xvc3VyZTsKKworCXp2YWxfcHRyX2R0b3IoJnBocGdf Y2xvc3VyZS0+Y2FsbGJhY2spOworCWlmIChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykgeworCQl6 dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncyk7CisJfQorCWlmIChwaHBnX2Ns b3N1cmUtPnJlcGxhY2Vfb2JqZWN0KSB7CisJCXp2YWxfcHRyX2R0b3IoJnBocGdfY2xvc3VyZS0+ cmVwbGFjZV9vYmplY3QpOworCX0KKwllZnJlZShwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSk7 CisKKwlwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrID0gTlVMTDsKKwlwaHBnX2Nsb3N1cmUtPnVzZXJf YXJncyA9IE5VTEw7CisJcGhwZ19jbG9zdXJlLT5yZXBsYWNlX29iamVjdCA9IE5VTEw7CisJcGhw Z19jbG9zdXJlLT5jb25uZWN0X3R5cGUgPSBQSFBHX0NPTk5FQ1RfTk9STUFMOworCXBocGdfY2xv c3VyZS0+c3JjX2ZpbGVuYW1lID0gTlVMTDsKKwlwaHBnX2Nsb3N1cmUtPnNyY19saW5lbm8gPSAw OworI2lmZGVmIFpUUworCXBocGdfY2xvc3VyZS0+VFNSTUxTX0MgPSBOVUxMOworI2VuZGlmCiB9 CiAKIHN0YXRpYyB2b2lkIHBocGdfY2xvc3VyZV9tYXJzaGFsKEdDbG9zdXJlICpjbG9zdXJlLApA QCAtNjQsMTM4ICs3MCwxNDMgQEAgc3RhdGljIHZvaWQgcGhwZ19jbG9zdXJlX21hcnNoYWwoR0Ns b3N1cmUgKmNsb3N1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRl ciBpbnZvY2F0aW9uX2hpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p bnRlciBtYXJzaGFsX2RhdGEpCiB7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZSA9 IChwaHBnX2Nsb3N1cmVfdCAqKWNsb3N1cmU7CisJcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3Vy ZSA9IChwaHBnX2Nsb3N1cmVfdCAqKWNsb3N1cmU7CiAJY2hhciAqY2FsbGJhY2tfbmFtZTsKLSAg ICB6dmFsICoqKnBhcmFtcyA9IE5VTEw7Ci0gICAgenZhbCAqcmV0dmFsID0gTlVMTDsKLSAgICB1 aW50IG5fcGFyYW1zID0gMCwgaTsKLQlUU1JNTFNfRkVUQ0goKTsKKwl6dmFsICoqKnBhcmFtcyA9 IE5VTEw7CisJenZhbCAqcmV0dmFsID0gTlVMTDsKKwl1aW50IG5fcGFyYW1zID0gMCwgaTsKKyNp ZmRlZiBaVFMKKwlUU1JNTFNfRCA9IHBocGdfY2xvc3VyZS0+VFNSTUxTX0M7CisjZW5kaWYKIAog CWlmICghemVuZF9pc19jYWxsYWJsZShwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrLCAwLCAmY2FsbGJh Y2tfbmFtZSBQSFBHVEtfWkVORF9JU19DQUxMQUJMRSkpIHsKIAkJaWYgKHBocGdfY2xvc3VyZS0+ c3JjX2ZpbGVuYW1lKQotICAgICAgICAgICAgcGhwX2Vycm9yKEVfV0FSTklORywKLSAgICAgICAg ICAgICAgICAgICAgICAiVW5hYmxlIHRvIGludm9rZSBzaWduYWwgY2FsbGJhY2sgJyVzJyBzcGVj aWZpZWQgaW4gJXMgb24gbGluZSAlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tf bmFtZSwgcGhwZ19jbG9zdXJlLT5zcmNfZmlsZW5hbWUsIHBocGdfY2xvc3VyZS0+c3JjX2xpbmVu byk7CisJCQlwaHBfZXJyb3IoRV9XQVJOSU5HLAorCQkJCQkgICJVbmFibGUgdG8gaW52b2tlIHNp Z25hbCBjYWxsYmFjayAnJXMnIHNwZWNpZmllZCBpbiAlcyBvbiBsaW5lICVkIiwKKwkJCQkJICBj YWxsYmFja19uYW1lLCBwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSwgcGhwZ19jbG9zdXJlLT5z cmNfbGluZW5vKTsKIAkJZWxzZQogCQkJcGhwX2Vycm9yKEVfV0FSTklORywgIlVuYWJsZSB0byBp bnZva2Ugc2lnbmFsIGNhbGxiYWNrICclcyciLCBjYWxsYmFja19uYW1lKTsKIAkJZWZyZWUoY2Fs bGJhY2tfbmFtZSk7CiAJCXJldHVybjsKIAl9CiAKLSAgICBpZiAocGhwZ19jbG9zdXJlLT5jb25u ZWN0X3R5cGUgPT0gUEhQR19DT05ORUNUX1NJTVBMRSkgewotICAgICAgICAvKiB3ZSBkb24ndCB1 c2UgYW55IHNpZ25hbCBwYXJhbXMgZm9yIHNpbXBsZSBjb25uZWN0aW9ucyAqLwotICAgICAgICBu X3BhcmFtX3ZhbHVlcyA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHBocGdfY2xvc3Vy ZS0+Y29ubmVjdF90eXBlID09IFBIUEdfQ09OTkVDVF9PQkpFQ1QpIHsKLSAgICAgICAgICAgIC8q IHNraXAgZmlyc3QgcGFyYW1ldGVyICovCi0gICAgICAgICAgICBuX3BhcmFtX3ZhbHVlcy0tOwot ICAgICAgICAgICAgcGFyYW1fdmFsdWVzKys7Ci0gICAgICAgIH0KLSAgICAgICAgbl9wYXJhbXMg PSBuX3BhcmFtX3ZhbHVlczsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBocGdfY2xvc3VyZS0+dXNl cl9hcmdzKSB7Ci0gICAgICAgIG5fcGFyYW1zICs9IHplbmRfaGFzaF9udW1fZWxlbWVudHMoWl9B UlJWQUxfUChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykpOwotICAgIH0KKwlpZiAocGhwZ19jbG9z dXJlLT5jb25uZWN0X3R5cGUgPT0gUEhQR19DT05ORUNUX1NJTVBMRSkgeworCQkvKiB3ZSBkb24n dCB1c2UgYW55IHNpZ25hbCBwYXJhbXMgZm9yIHNpbXBsZSBjb25uZWN0aW9ucyAqLworCQluX3Bh cmFtX3ZhbHVlcyA9IDA7CisJfSBlbHNlIHsKKwkJaWYgKHBocGdfY2xvc3VyZS0+Y29ubmVjdF90 eXBlID09IFBIUEdfQ09OTkVDVF9PQkpFQ1QpIHsKKwkJCS8qIHNraXAgZmlyc3QgcGFyYW1ldGVy ICovCisJCQluX3BhcmFtX3ZhbHVlcy0tOworCQkJcGFyYW1fdmFsdWVzKys7CisJCX0KKwkJbl9w YXJhbXMgPSBuX3BhcmFtX3ZhbHVlczsKKwl9CisJCisJaWYgKHBocGdfY2xvc3VyZS0+dXNlcl9h cmdzKSB7CisJCW5fcGFyYW1zICs9IHplbmRfaGFzaF9udW1fZWxlbWVudHMoWl9BUlJWQUxfUChw aHBnX2Nsb3N1cmUtPnVzZXJfYXJncykpOworCX0KIAogCXBhcmFtcyA9ICh6dmFsICoqKillbWFs bG9jKG5fcGFyYW1zICogc2l6ZW9mKHp2YWwgKiopKTsKLSAgICBpID0gMDsKLQotICAgIGlmIChw aHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9PSBQSFBHX0NPTk5FQ1RfUkVQTEFDRSkgewotICAg ICAgICBwYXJhbXNbaSsrXSA9ICZwaHBnX2Nsb3N1cmUtPnJlcGxhY2Vfb2JqZWN0OwotICAgIH0K LQotICAgIGZvciAoIDsgaSA8IG5fcGFyYW1fdmFsdWVzOyBpKyspIHsKLSAgICAgICAgcGFyYW1z W2ldID0gKHp2YWwgKiopIGVtYWxsb2Moc2l6ZW9mKHp2YWwgKikpOwotICAgICAgICAqKHBhcmFt c1tpXSkgPSBOVUxMOwotICAgICAgICBpZiAocGhwZ19ndmFsdWVfdG9fenZhbCgmcGFyYW1fdmFs dWVzW2ldLCBwYXJhbXNbaV0sIEZBTFNFLCBUUlVFIFRTUk1MU19DQykgIT0gU1VDQ0VTUykgewot ICAgICAgICAgICAgZ290byBlcnJfbWFyc2hhbDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlm IChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykgewotICAgICAgICBmb3IgKHplbmRfaGFzaF9pbnRl cm5hbF9wb2ludGVyX3Jlc2V0KFpfQVJSVkFMX1AocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpKTsK LSAgICAgICAgICAgICB6ZW5kX2hhc2hfZ2V0X2N1cnJlbnRfZGF0YShaX0FSUlZBTF9QKHBocGdf Y2xvc3VyZS0+dXNlcl9hcmdzKSwgKHZvaWQgKiopJnBhcmFtc1tpXSkgPT0gU1VDQ0VTUzsKLSAg ICAgICAgICAgICB6ZW5kX2hhc2hfbW92ZV9mb3J3YXJkKFpfQVJSVkFMX1AocGhwZ19jbG9zdXJl LT51c2VyX2FyZ3MpKSwgaSsrKTsKLSAgICAgICAgLyogZW1wdHkgYm9keSAqLwotICAgIH0KLSAg ICBhc3NlcnQoaSA9PSBuX3BhcmFtcyk7Ci0KLSAgICBjYWxsX3VzZXJfZnVuY3Rpb25fZXgoRUco ZnVuY3Rpb25fdGFibGUpLCBOVUxMLCBwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAmcmV0dmFsLCBuX3BhcmFtcywgcGFyYW1zLCAwLCBOVUxMIFRTUk1M U19DQyk7CisJaSA9IDA7CisKKwlpZiAocGhwZ19jbG9zdXJlLT5jb25uZWN0X3R5cGUgPT0gUEhQ R19DT05ORUNUX1JFUExBQ0UpIHsKKwkJcGFyYW1zW2krK10gPSAmcGhwZ19jbG9zdXJlLT5yZXBs YWNlX29iamVjdDsKKwl9CisKKwlmb3IgKCA7IGkgPCBuX3BhcmFtX3ZhbHVlczsgaSsrKSB7CisJ CXBhcmFtc1tpXSA9ICh6dmFsICoqKSBlbWFsbG9jKHNpemVvZih6dmFsICopKTsKKwkJKihwYXJh bXNbaV0pID0gTlVMTDsKKwkJaWYgKHBocGdfZ3ZhbHVlX3RvX3p2YWwoJnBhcmFtX3ZhbHVlc1tp XSwgcGFyYW1zW2ldLCBGQUxTRSwgVFJVRSBUU1JNTFNfQ0MpICE9IFNVQ0NFU1MpIHsKKwkJCWdv dG8gZXJyX21hcnNoYWw7CisJCX0KKwl9CisKKwlpZiAocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3Mp IHsKKwkJZm9yICh6ZW5kX2hhc2hfaW50ZXJuYWxfcG9pbnRlcl9yZXNldChaX0FSUlZBTF9QKHBo cGdfY2xvc3VyZS0+dXNlcl9hcmdzKSk7CisJCQkgemVuZF9oYXNoX2dldF9jdXJyZW50X2RhdGEo Wl9BUlJWQUxfUChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncyksICh2b2lkICoqKSZwYXJhbXNbaV0p ID09IFNVQ0NFU1M7CisJCQkgemVuZF9oYXNoX21vdmVfZm9yd2FyZChaX0FSUlZBTF9QKHBocGdf Y2xvc3VyZS0+dXNlcl9hcmdzKSksIGkrKyk7CisJCS8qIGVtcHR5IGJvZHkgKi8KKwl9CisJYXNz ZXJ0KGkgPT0gbl9wYXJhbXMpOworCisJY2FsbF91c2VyX2Z1bmN0aW9uX2V4KEVHKGZ1bmN0aW9u X3RhYmxlKSwgTlVMTCwgcGhwZ19jbG9zdXJlLT5jYWxsYmFjaywKKwkJCQkJCSAgJnJldHZhbCwg bl9wYXJhbXMsIHBhcmFtcywgMCwgTlVMTCBUU1JNTFNfQ0MpOwogCiAJaWYgKHJldHZhbCkgewog CQlpZiAocmV0dXJuX3ZhbHVlKSB7CiAJCQlpZiAocGhwZ19ndmFsdWVfZnJvbV96dmFsKHJldHVy bl92YWx1ZSwgJnJldHZhbCwgVFJVRSBUU1JNTFNfQ0MpID09IEZBSUxVUkUpIHsKLSAgICAgICAg ICAgICAgICBwaHBfZXJyb3IoRV9XQVJOSU5HLCAiQ291bGQgbm90IGNvbnZlcnQgcmV0dXJuIHZh bHVlIG9mIHNpZ25hbCBjYWxsYmFjayAnJXMnIHRvICclcyciLAotICAgICAgICAgICAgICAgICAg ICAgICAgICBjYWxsYmFja19uYW1lLCBnX3R5cGVfbmFtZShHX1ZBTFVFX1RZUEUocmV0dXJuX3Zh bHVlKSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisJCQkJcGhwX2Vycm9yKEVfV0FSTklO RywgIkNvdWxkIG5vdCBjb252ZXJ0IHJldHVybiB2YWx1ZSBvZiBzaWduYWwgY2FsbGJhY2sgJyVz JyB0byAnJXMnIiwKKwkJCQkJCSAgY2FsbGJhY2tfbmFtZSwgZ190eXBlX25hbWUoR19WQUxVRV9U WVBFKHJldHVybl92YWx1ZSkpKTsKKwkJCX0KKwkJfQogCQl6dmFsX3B0cl9kdG9yKCZyZXR2YWwp OwogCX0KIAogZXJyX21hcnNoYWw6Ci0gICAgZWZyZWUoY2FsbGJhY2tfbmFtZSk7Ci0gICAgaSA9 IChwaHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9PSBQSFBHX0NPTk5FQ1RfUkVQTEFDRSkgPyAx IDogMDsKLSAgICBmb3IgKCA7IGkgPCBuX3BhcmFtX3ZhbHVlczsgaSsrKSB7Ci0gICAgICAgIHp2 YWxfcHRyX2R0b3IocGFyYW1zW2ldKTsKLSAgICAgICAgZWZyZWUocGFyYW1zW2ldKTsKLSAgICB9 Ci0gICAgZWZyZWUocGFyYW1zKTsKLQotICAgIHBocGdfaGFuZGxlX21hcnNoYWxsZXJfZXhjZXB0 aW9uKFRTUk1MU19DKTsKKwllZnJlZShjYWxsYmFja19uYW1lKTsKKwlpID0gKHBocGdfY2xvc3Vy ZS0+Y29ubmVjdF90eXBlID09IFBIUEdfQ09OTkVDVF9SRVBMQUNFKSA/IDEgOiAwOworCWZvciAo IDsgaSA8IG5fcGFyYW1fdmFsdWVzOyBpKyspIHsKKwkJenZhbF9wdHJfZHRvcihwYXJhbXNbaV0p OworCQllZnJlZShwYXJhbXNbaV0pOworCX0KKwllZnJlZShwYXJhbXMpOworCisJcGhwZ19oYW5k bGVfbWFyc2hhbGxlcl9leGNlcHRpb24oVFNSTUxTX0MpOwogfQogCiBQSFBfR1RLX0FQSSBHQ2xv c3VyZSogcGhwZ19jbG9zdXJlX25ldyh6dmFsICpjYWxsYmFjaywgenZhbCAqdXNlcl9hcmdzLCBp bnQgY29ubmVjdF90eXBlLCB6dmFsICpyZXBsYWNlX29iamVjdCBUU1JNTFNfREMpCiB7Ci0gICAg R0Nsb3N1cmUgKmNsb3N1cmU7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZTsKKwlH Q2xvc3VyZSAqY2xvc3VyZTsKKwlwaHBnX2Nsb3N1cmVfdCAqcGhwZ19jbG9zdXJlOwogCi0gICAg cGhwZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY2FsbGJhY2sgIT0gTlVMTCwgTlVMTCk7Ci0gICAgY2xv c3VyZSA9IGdfY2xvc3VyZV9uZXdfc2ltcGxlKHNpemVvZihwaHBnX2Nsb3N1cmVfdCksIE5VTEwp OwotICAgIGdfY2xvc3VyZV9hZGRfaW52YWxpZGF0ZV9ub3RpZmllcihjbG9zdXJlLCBOVUxMLCBw aHBnX2Nsb3N1cmVfaW52YWxpZGF0ZSk7Ci0gICAgZ19jbG9zdXJlX3NldF9tYXJzaGFsKGNsb3N1 cmUsIHBocGdfY2xvc3VyZV9tYXJzaGFsKTsKKwlwaHBnX3JldHVybl92YWxfaWZfZmFpbChjYWxs YmFjayAhPSBOVUxMLCBOVUxMKTsKKwljbG9zdXJlID0gZ19jbG9zdXJlX25ld19zaW1wbGUoc2l6 ZW9mKHBocGdfY2xvc3VyZV90KSwgTlVMTCk7CisJZ19jbG9zdXJlX2FkZF9pbnZhbGlkYXRlX25v dGlmaWVyKGNsb3N1cmUsIE5VTEwsIHBocGdfY2xvc3VyZV9pbnZhbGlkYXRlKTsKKwlnX2Nsb3N1 cmVfc2V0X21hcnNoYWwoY2xvc3VyZSwgcGhwZ19jbG9zdXJlX21hcnNoYWwpOwogCi0gICAgcGhw Z19jbG9zdXJlID0gKHBocGdfY2xvc3VyZV90ICopIGNsb3N1cmU7Ci0gICAgenZhbF9hZGRfcmVm KCZjYWxsYmFjayk7Ci0gICAgcGhwZ19jbG9zdXJlLT5jYWxsYmFjayA9IGNhbGxiYWNrOworCXBo cGdfY2xvc3VyZSA9IChwaHBnX2Nsb3N1cmVfdCAqKSBjbG9zdXJlOworCXp2YWxfYWRkX3JlZigm Y2FsbGJhY2spOworCXBocGdfY2xvc3VyZS0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKIAlwaHBnX2Ns b3N1cmUtPnNyY19maWxlbmFtZSA9IGVzdHJkdXAoemVuZF9nZXRfZXhlY3V0ZWRfZmlsZW5hbWUo VFNSTUxTX0MpKTsKIAlwaHBnX2Nsb3N1cmUtPnNyY19saW5lbm8gPSB6ZW5kX2dldF9leGVjdXRl ZF9saW5lbm8oVFNSTUxTX0MpOworI2lmZGVmIFpUUworCXBocGdfY2xvc3VyZS0+VFNSTUxTX0Mg PSBUU1JNTFNfQzsKKyNlbmRpZgorCisJaWYgKHVzZXJfYXJncykgeworCQl6dmFsX2FkZF9yZWYo JnVzZXJfYXJncyk7CisJCWlmIChaX1RZUEVfUCh1c2VyX2FyZ3MpICE9IElTX0FSUkFZKSB7CisJ CQljb252ZXJ0X3RvX2FycmF5KHVzZXJfYXJncyk7CisJCX0KKwkJcGhwZ19jbG9zdXJlLT51c2Vy X2FyZ3MgPSB1c2VyX2FyZ3M7CisJfSBlbHNlIHsKKwkJcGhwZ19jbG9zdXJlLT51c2VyX2FyZ3Mg PSBOVUxMOworCX0KIAotICAgIGlmICh1c2VyX2FyZ3MpIHsKLSAgICAgICAgenZhbF9hZGRfcmVm KCZ1c2VyX2FyZ3MpOwotICAgICAgICBpZiAoWl9UWVBFX1AodXNlcl9hcmdzKSAhPSBJU19BUlJB WSkgewotICAgICAgICAgICAgY29udmVydF90b19hcnJheSh1c2VyX2FyZ3MpOwotICAgICAgICB9 Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+dXNlcl9hcmdzID0gdXNlcl9hcmdzOwotICAgIH0gZWxz ZSB7Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+dXNlcl9hcmdzID0gTlVMTDsKLSAgICB9Ci0KLSAg ICBpZiAocmVwbGFjZV9vYmplY3QpIHsKLSAgICAgICAgenZhbF9hZGRfcmVmKCZyZXBsYWNlX29i amVjdCk7Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+cmVwbGFjZV9vYmplY3QgPSByZXBsYWNlX29i amVjdDsKLSAgICB9IGVsc2UgewotICAgICAgICBwaHBnX2Nsb3N1cmUtPnJlcGxhY2Vfb2JqZWN0 ID0gTlVMTDsKLSAgICB9Ci0KLSAgICBwaHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9IGNvbm5l Y3RfdHlwZTsKLQotICAgIHJldHVybiBjbG9zdXJlOworCWlmIChyZXBsYWNlX29iamVjdCkgewor CQl6dmFsX2FkZF9yZWYoJnJlcGxhY2Vfb2JqZWN0KTsKKwkJcGhwZ19jbG9zdXJlLT5yZXBsYWNl X29iamVjdCA9IHJlcGxhY2Vfb2JqZWN0OworCX0gZWxzZSB7CisJCXBocGdfY2xvc3VyZS0+cmVw bGFjZV9vYmplY3QgPSBOVUxMOworCX0KKworCXBocGdfY2xvc3VyZS0+Y29ubmVjdF90eXBlID0g Y29ubmVjdF90eXBlOworCisJcmV0dXJuIGNsb3N1cmU7CiB9CiAKIFBIUF9HVEtfQVBJIHZvaWQg cGhwZ19jYl9kYXRhX2Rlc3Ryb3koZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBwaHBnX2NiX2RhdGFf dCAqY2JkID0gKHBocGdfY2JfZGF0YV90ICopIGRhdGE7Ci0KLSAgICBpZiAoIWNiZCkgcmV0dXJu OwotCi0gICAgenZhbF9wdHJfZHRvcigmY2JkLT5jYWxsYmFjayk7Ci0gICAgaWYgKGNiZC0+dXNl cl9hcmdzKSB7Ci0gICAgICAgIHp2YWxfcHRyX2R0b3IoJmNiZC0+dXNlcl9hcmdzKTsKLSAgICB9 Ci0gICAgZWZyZWUoY2JkLT5zcmNfZmlsZW5hbWUpOwotICAgIGVmcmVlKGNiZCk7CisJcGhwZ19j Yl9kYXRhX3QgKmNiZCA9IChwaHBnX2NiX2RhdGFfdCAqKSBkYXRhOworCQorCWlmICghY2JkKSBy ZXR1cm47CisJCisJenZhbF9wdHJfZHRvcigmY2JkLT5jYWxsYmFjayk7CisJaWYgKGNiZC0+dXNl cl9hcmdzKSB7CisJCXp2YWxfcHRyX2R0b3IoJmNiZC0+dXNlcl9hcmdzKTsKKwl9CisJZWZyZWUo Y2JkLT5zcmNfZmlsZW5hbWUpOworCWVmcmVlKGNiZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBocGdf c2lnbmFsX2NsYXNzX2Nsb3N1cmVfbWFyc2hhbChHQ2xvc3VyZSAgICAgKmNsb3N1cmUsCkBAIC0y MDUsMTI1ICsyMTYsMTI3IEBAIHN0YXRpYyB2b2lkIHBocGdfc2lnbmFsX2NsYXNzX2Nsb3N1cmVf bWFyc2hhbChHQ2xvc3VyZSAgICAgKmNsb3N1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICBpbnZvY2F0aW9uX2hpbnQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICBt YXJzaGFsX2RhdGEpCiB7Ci0gICAgR09iamVjdCAqb2JqZWN0OwotICAgIEdTaWduYWxJbnZvY2F0 aW9uSGludCAqaGludCA9IChHU2lnbmFsSW52b2NhdGlvbkhpbnQgKilpbnZvY2F0aW9uX2hpbnQ7 Ci0gICAgenZhbCAqcGhwX29iamVjdCA9IE5VTEw7Ci0gICAgZ2NoYXIgKm1ldGhvZF9uYW1lLCAq dG1wLCAqbGNfbWV0aG9kX25hbWU7Ci0gICAgZ3NpemUgbWV0aG9kX25hbWVfbGVuOwotICAgIHp2 YWwgKioqcGFyYW1zID0gTlVMTDsKLSAgICB6dmFsICpyZXR2YWwgPSBOVUxMOwotICAgIHp2YWwg Kml0ZW0sIHpfbWV0aG9kX25hbWU7Ci0gICAgcGhwZ19nYm94ZWRfdCAqYm94ZWRfaXRlbTsKLSAg ICBpbnQgaSwgazsKLQotCVRTUk1MU19GRVRDSCgpOwotCi0gICAgcGhwZ19yZXR1cm5faWZfZmFp bChpbnZvY2F0aW9uX2hpbnQgIT0gTlVMTCk7Ci0gICAgLyogdmVyaWZ5IHRoYXQgZmlyc3QgcGFy YW1ldGVyIGlzIGFuIG9iamVjdCAqLwotICAgIG9iamVjdCA9IGdfdmFsdWVfZ2V0X29iamVjdCgm cGFyYW1fdmFsdWVzWzBdKTsKLSAgICBwaHBnX3JldHVybl9pZl9mYWlsKG9iamVjdCAhPSBOVUxM ICYmIEdfSVNfT0JKRUNUKG9iamVjdCkpOwotCi0gICAgLyogY3JlYXRlIHdyYXBwZXIgZm9yIHRo ZSBvYmplY3QgKi8KLSAgICBwaHBnX2dvYmplY3RfbmV3KCZwaHBfb2JqZWN0LCBvYmplY3QgVFNS TUxTX0NDKTsKLSAgICBpZiAoWl9UWVBFX1AocGhwX29iamVjdCkgPT0gSVNfTlVMTCkgewotICAg ICAgICB6dmFsX3B0cl9kdG9yKCZwaHBfb2JqZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K LQotICAgIG1ldGhvZF9uYW1lID0gZ19zdHJjb25jYXQoIl9fZG9fIiwgZ19zaWduYWxfbmFtZSho aW50LT5zaWduYWxfaWQpLCBOVUxMKTsKLSAgICBmb3IgKHRtcCA9IG1ldGhvZF9uYW1lOyAqdG1w ICE9ICdcMCc7IHRtcCsrKSB7Ci0gICAgICAgIGlmICgqdG1wID09ICctJykgKnRtcCA9ICdfJzsK LSAgICB9Ci0KLSAgICBtZXRob2RfbmFtZV9sZW4gPSBzdHJsZW4obWV0aG9kX25hbWUpOwotICAg IGxjX21ldGhvZF9uYW1lID0gZ19hc2NpaV9zdHJkb3duKG1ldGhvZF9uYW1lLCBtZXRob2RfbmFt ZV9sZW4pOwotICAgIGlmICghemVuZF9oYXNoX2V4aXN0cygmWl9PQkpDRV9QKHBocF9vYmplY3Qp LT5mdW5jdGlvbl90YWJsZSwgbGNfbWV0aG9kX25hbWUsIG1ldGhvZF9uYW1lX2xlbisxKSkgewot ICAgICAgICB1bmlvbiBfemVuZF9mdW5jdGlvbiAqZnVuYyA9IE5VTEw7Ci0KLSAgICAgICAgZ19m cmVlKGxjX21ldGhvZF9uYW1lKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChaX09CSl9IVF9QKHBo cF9vYmplY3QpLT5nZXRfbWV0aG9kICE9IE5VTEwKKwlHT2JqZWN0ICpvYmplY3Q7CisJR1NpZ25h bEludm9jYXRpb25IaW50ICpoaW50ID0gKEdTaWduYWxJbnZvY2F0aW9uSGludCAqKWludm9jYXRp b25faGludDsKKwl6dmFsICpwaHBfb2JqZWN0ID0gTlVMTDsKKwlnY2hhciAqbWV0aG9kX25hbWUs ICp0bXAsICpsY19tZXRob2RfbmFtZTsKKwlnc2l6ZSBtZXRob2RfbmFtZV9sZW47CisJenZhbCAq KipwYXJhbXMgPSBOVUxMOworCXp2YWwgKnJldHZhbCA9IE5VTEw7CisJenZhbCAqaXRlbSwgel9t ZXRob2RfbmFtZTsKKwlwaHBnX2dib3hlZF90ICpib3hlZF9pdGVtOworCWludCBpLCBrOworI2lm ZGVmIFpUUworCXBocGdfY2xvc3VyZV90ICpwaHBnX2Nsb3N1cmUgPSAocGhwZ19jbG9zdXJlX3Qg KiljbG9zdXJlOworCVRTUk1MU19EID0gcGhwZ19jbG9zdXJlLT5UU1JNTFNfQzsKKyNlbmRpZjsK KworCXBocGdfcmV0dXJuX2lmX2ZhaWwoaW52b2NhdGlvbl9oaW50ICE9IE5VTEwpOworCS8qIHZl cmlmeSB0aGF0IGZpcnN0IHBhcmFtZXRlciBpcyBhbiBvYmplY3QgKi8KKwlvYmplY3QgPSBnX3Zh bHVlX2dldF9vYmplY3QoJnBhcmFtX3ZhbHVlc1swXSk7CisJcGhwZ19yZXR1cm5faWZfZmFpbChv YmplY3QgIT0gTlVMTCAmJiBHX0lTX09CSkVDVChvYmplY3QpKTsKKworCS8qIGNyZWF0ZSB3cmFw cGVyIGZvciB0aGUgb2JqZWN0ICovCisJcGhwZ19nb2JqZWN0X25ldygmcGhwX29iamVjdCwgb2Jq ZWN0IFRTUk1MU19DQyk7CisJaWYgKFpfVFlQRV9QKHBocF9vYmplY3QpID09IElTX05VTEwpIHsK KwkJenZhbF9wdHJfZHRvcigmcGhwX29iamVjdCk7CisJCXJldHVybjsKKwl9CisKKwltZXRob2Rf bmFtZSA9IGdfc3RyY29uY2F0KCJfX2RvXyIsIGdfc2lnbmFsX25hbWUoaGludC0+c2lnbmFsX2lk KSwgTlVMTCk7CisJZm9yICh0bXAgPSBtZXRob2RfbmFtZTsgKnRtcCAhPSAnXDAnOyB0bXArKykg eworCQlpZiAoKnRtcCA9PSAnLScpICp0bXAgPSAnXyc7CisJfQorCisJbWV0aG9kX25hbWVfbGVu ID0gc3RybGVuKG1ldGhvZF9uYW1lKTsKKwlsY19tZXRob2RfbmFtZSA9IGdfYXNjaWlfc3RyZG93 bihtZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuKTsKKwlpZiAoIXplbmRfaGFzaF9leGlzdHMo JlpfT0JKQ0VfUChwaHBfb2JqZWN0KS0+ZnVuY3Rpb25fdGFibGUsIGxjX21ldGhvZF9uYW1lLCBt ZXRob2RfbmFtZV9sZW4rMSkpIHsKKwkJdW5pb24gX3plbmRfZnVuY3Rpb24gKmZ1bmMgPSBOVUxM OworCisJCWdfZnJlZShsY19tZXRob2RfbmFtZSk7CisJCQorCQlpZiAoWl9PQkpfSFRfUChwaHBf b2JqZWN0KS0+Z2V0X21ldGhvZCAhPSBOVUxMCiAJCSNpZiBQSFBfVkVSU0lPTl9JRCA8IDUwMzk5 Ci0gICAgICAgICAgICAmJiAoZnVuYyA9IFpfT0JKX0hUX1AocGhwX29iamVjdCktPmdldF9tZXRo b2QoJnBocF9vYmplY3QsIG1ldGhvZF9uYW1lLCBtZXRob2RfbmFtZV9sZW4gVFNSTUxTX0NDKSkg IT0gTlVMTCkgeworCQkJJiYgKGZ1bmMgPSBaX09CSl9IVF9QKHBocF9vYmplY3QpLT5nZXRfbWV0 aG9kKCZwaHBfb2JqZWN0LCBtZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuIFRTUk1MU19DQykp ICE9IE5VTEwpIHsKIAkJI2Vsc2UKLSAgICAgICAgICAgICYmIChmdW5jID0gWl9PQkpfSFRfUChw aHBfb2JqZWN0KS0+Z2V0X21ldGhvZCgmcGhwX29iamVjdCwgbWV0aG9kX25hbWUsIG1ldGhvZF9u YW1lX2xlbiwgTlVMTCBUU1JNTFNfQ0MpKSAhPSBOVUxMKSB7CisJCQkmJiAoZnVuYyA9IFpfT0JK X0hUX1AocGhwX29iamVjdCktPmdldF9tZXRob2QoJnBocF9vYmplY3QsIG1ldGhvZF9uYW1lLCBt ZXRob2RfbmFtZV9sZW4sIE5VTEwgVFNSTUxTX0NDKSkgIT0gTlVMTCkgewogCQkjZW5kaWYJCQkK LSAgICAgICAgICAgIGlmIChmdW5jLT50eXBlID09IFpFTkRfSU5URVJOQUxfRlVOQ1RJT04KLSAg ICAgICAgICAgICAgICAmJiAoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5oYW5kbGVy ID09IHplbmRfc3RkX2NhbGxfdXNlcl9jYWxsCi0gICAgICAgICAgICAgICApIHsKLSAgICAgICAg ICAgICAgICBlZnJlZSgoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5mdW5jdGlvbl9u YW1lKTsKLSAgICAgICAgICAgICAgICBlZnJlZShmdW5jKTsKLSAgICAgICAgICAgICAgICB6dmFs X3B0cl9kdG9yKCZwaHBfb2JqZWN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgenZhbF9wdHJfZHRvcigmcGhwX29iamVjdCk7Ci0g ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZ19mcmVlKGxjX21ldGhvZF9uYW1lKTsKKwkJCWlm IChmdW5jLT50eXBlID09IFpFTkRfSU5URVJOQUxfRlVOQ1RJT04KKwkJCQkmJiAoKHplbmRfaW50 ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5oYW5kbGVyID09IHplbmRfc3RkX2NhbGxfdXNlcl9jYWxs CisJCQkgICApIHsKKwkJCQllZnJlZSgoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5m dW5jdGlvbl9uYW1lKTsKKwkJCQllZnJlZShmdW5jKTsKKwkJCQl6dmFsX3B0cl9kdG9yKCZwaHBf b2JqZWN0KTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKwkJenZhbF9wdHJfZHRvcigmcGhwX29i amVjdCk7CisJCXJldHVybjsKKwl9CisJZ19mcmVlKGxjX21ldGhvZF9uYW1lKTsKIAogCXBhcmFt cyA9ICh6dmFsICoqKillbWFsbG9jKChuX3BhcmFtX3ZhbHVlcy0xKSAqIHNpemVvZih6dmFsICoq KSk7Ci0gICAgZm9yIChpID0gMDsgaSA8IChpbnQpbl9wYXJhbV92YWx1ZXMtMTsgaSsrKSB7Ci0g ICAgICAgIHBhcmFtc1tpXSA9ICh6dmFsICoqKSBlbWFsbG9jKHNpemVvZih6dmFsICopKTsKLSAg ICAgICAgKihwYXJhbXNbaV0pID0gTlVMTDsKLSAgICAgICAgaWYgKHBocGdfZ3ZhbHVlX3RvX3p2 YWwoJnBhcmFtX3ZhbHVlc1tpKzFdLCBwYXJhbXNbaV0sIEZBTFNFLCBUUlVFIFRTUk1MU19DQykg IT0gU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBlcnJfY2xhc3NfY2xvc3VyZV9tYXJzaGFs OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgWlZBTF9TVFJJTkdMKCZ6X21ldGhvZF9uYW1lLCBt ZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuLCAwKTsKLSAgICBjYWxsX3VzZXJfZnVuY3Rpb25f ZXgoRUcoZnVuY3Rpb25fdGFibGUpLCAmcGhwX29iamVjdCwgJnpfbWV0aG9kX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICZyZXR2YWwsIG5fcGFyYW1fdmFsdWVzLTEsIHBhcmFtcywg MCwgTlVMTCBUU1JNTFNfQ0MpOwotCi0KLSAgICBmb3IgKGsgPSAwOyBrIDwgaTsgaysrKSB7Ci0g ICAgICAgIGl0ZW0gPSAqcGFyYW1zW2tdOwotICAgICAgICBpZiAoWl9UWVBFX1AoaXRlbSkgPT0g SVNfT0JKRUNUICYmCi0gICAgICAgICAgICBpbnN0YW5jZW9mX2Z1bmN0aW9uKFpfT0JKQ0VfUChp dGVtKSwgZ2JveGVkX2NlIFRTUk1MU19DQykgJiYgWl9SRUZDT1VOVF9QKGl0ZW0pID4gMSkgewot ICAgICAgICAgICAgYm94ZWRfaXRlbSA9IHBocGdfZ2JveGVkX2dldChpdGVtIFRTUk1MU19DQyk7 Ci0gICAgICAgICAgICBpZiAoIWJveGVkX2l0ZW0tPmZyZWVfb25fZGVzdHJveSkgewotICAgICAg ICAgICAgICAgIGJveGVkX2l0ZW0tPmJveGVkID0gZ19ib3hlZF9jb3B5KGJveGVkX2l0ZW0tPmd0 eXBlLCBib3hlZF9pdGVtLT5ib3hlZCk7Ci0gICAgICAgICAgICAgICAgYm94ZWRfaXRlbS0+ZnJl ZV9vbl9kZXN0cm95ID0gVFJVRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKwlm b3IgKGkgPSAwOyBpIDwgKGludCluX3BhcmFtX3ZhbHVlcy0xOyBpKyspIHsKKwkJcGFyYW1zW2ld ID0gKHp2YWwgKiopIGVtYWxsb2Moc2l6ZW9mKHp2YWwgKikpOworCQkqKHBhcmFtc1tpXSkgPSBO VUxMOworCQlpZiAocGhwZ19ndmFsdWVfdG9fenZhbCgmcGFyYW1fdmFsdWVzW2krMV0sIHBhcmFt c1tpXSwgRkFMU0UsIFRSVUUgVFNSTUxTX0NDKSAhPSBTVUNDRVNTKSB7CisJCQlnb3RvIGVycl9j bGFzc19jbG9zdXJlX21hcnNoYWw7CisJCX0KKwl9CisKKwlaVkFMX1NUUklOR0woJnpfbWV0aG9k X25hbWUsIG1ldGhvZF9uYW1lLCBtZXRob2RfbmFtZV9sZW4sIDApOworCWNhbGxfdXNlcl9mdW5j dGlvbl9leChFRyhmdW5jdGlvbl90YWJsZSksICZwaHBfb2JqZWN0LCAmel9tZXRob2RfbmFtZSwK KwkJCQkJCSAgJnJldHZhbCwgbl9wYXJhbV92YWx1ZXMtMSwgcGFyYW1zLCAwLCBOVUxMIFRTUk1M U19DQyk7CisKKworCWZvciAoayA9IDA7IGsgPCBpOyBrKyspIHsKKwkJaXRlbSA9ICpwYXJhbXNb a107CisJCWlmIChaX1RZUEVfUChpdGVtKSA9PSBJU19PQkpFQ1QgJiYKKwkJCWluc3RhbmNlb2Zf ZnVuY3Rpb24oWl9PQkpDRV9QKGl0ZW0pLCBnYm94ZWRfY2UgVFNSTUxTX0NDKSAmJiBaX1JFRkNP VU5UX1AoaXRlbSkgPiAxKSB7CisJCQlib3hlZF9pdGVtID0gcGhwZ19nYm94ZWRfZ2V0KGl0ZW0g VFNSTUxTX0NDKTsKKwkJCWlmICghYm94ZWRfaXRlbS0+ZnJlZV9vbl9kZXN0cm95KSB7CisJCQkJ Ym94ZWRfaXRlbS0+Ym94ZWQgPSBnX2JveGVkX2NvcHkoYm94ZWRfaXRlbS0+Z3R5cGUsIGJveGVk X2l0ZW0tPmJveGVkKTsKKwkJCQlib3hlZF9pdGVtLT5mcmVlX29uX2Rlc3Ryb3kgPSBUUlVFOwor CQkJfQorCQl9CisJfQogCiAJaWYgKHJldHZhbCkgewogCQlpZiAocmV0dXJuX3ZhbHVlKSB7CiAJ CQlpZiAocGhwZ19ndmFsdWVfZnJvbV96dmFsKHJldHVybl92YWx1ZSwgJnJldHZhbCwgVFJVRSBU U1JNTFNfQ0MpID09IEZBSUxVUkUpIHsKLSAgICAgICAgICAgICAgICBwaHBfZXJyb3IoRV9XQVJO SU5HLCAiQ291bGQgbm90IGNvbnZlcnQgcmV0dXJuIHZhbHVlIG9mIGN1c3RvbSBzaWduYWwgYWN0 aW9uICclcycgdG8gJyVzJyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF9uYW1l LCBnX3R5cGVfbmFtZShHX1ZBTFVFX1RZUEUocmV0dXJuX3ZhbHVlKSkpOwotICAgICAgICAgICAg fQotICAgICAgICB9CisJCQkJcGhwX2Vycm9yKEVfV0FSTklORywgIkNvdWxkIG5vdCBjb252ZXJ0 IHJldHVybiB2YWx1ZSBvZiBjdXN0b20gc2lnbmFsIGFjdGlvbiAnJXMnIHRvICclcyciLAorCQkJ CQkJICBtZXRob2RfbmFtZSwgZ190eXBlX25hbWUoR19WQUxVRV9UWVBFKHJldHVybl92YWx1ZSkp KTsKKwkJCX0KKwkJfQogCQl6dmFsX3B0cl9kdG9yKCZyZXR2YWwpOwogCX0KIAotICAgIGktLTsg Ly8gYWRqdXN0IGZvciBjbGVhbnVwCisJaS0tOyAvLyBhZGp1c3QgZm9yIGNsZWFudXAKIAogZXJy X2NsYXNzX2Nsb3N1cmVfbWFyc2hhbDoKLSAgICBmb3IgKCA7IGkgPj0gMDsgaS0tKSB7Ci0gICAg ICAgIHp2YWxfcHRyX2R0b3IocGFyYW1zW2ldKTsKLSAgICAgICAgZWZyZWUocGFyYW1zW2ldKTsK LSAgICB9Ci0gICAgZWZyZWUocGFyYW1zKTsKLSAgICBnX2ZyZWUobWV0aG9kX25hbWUpOwotICAg IHp2YWxfcHRyX2R0b3IoJnBocF9vYmplY3QpOworCWZvciAoIDsgaSA+PSAwOyBpLS0pIHsKKwkJ enZhbF9wdHJfZHRvcihwYXJhbXNbaV0pOworCQllZnJlZShwYXJhbXNbaV0pOworCX0KKwllZnJl ZShwYXJhbXMpOworCWdfZnJlZShtZXRob2RfbmFtZSk7CisJenZhbF9wdHJfZHRvcigmcGhwX29i amVjdCk7CiB9CiAKIAogUEhQX0dUS19BUEkgR0Nsb3N1cmUqIHBocGdfZ2V0X3NpZ25hbF9jbGFz c19jbG9zdXJlKCkKIHsKLSAgICBzdGF0aWMgR0Nsb3N1cmUgKmNsb3N1cmUgPSBOVUxMOwotCi0g ICAgaWYgKGNsb3N1cmUgPT0gTlVMTCkgewotICAgICAgICBjbG9zdXJlID0gZ19jbG9zdXJlX25l d19zaW1wbGUoc2l6ZW9mKEdDbG9zdXJlKSwgTlVMTCk7Ci0gICAgICAgIGdfY2xvc3VyZV9zZXRf bWFyc2hhbChjbG9zdXJlLCBwaHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNoYWwpOwotCi0g ICAgICAgIGdfY2xvc3VyZV9yZWYoY2xvc3VyZSk7Ci0gICAgICAgIGdfY2xvc3VyZV9zaW5rKGNs b3N1cmUpOwotICAgIH0KLQotICAgIHJldHVybiBjbG9zdXJlOworCXN0YXRpYyBHQ2xvc3VyZSAq Y2xvc3VyZSA9IE5VTEw7CisJCisJaWYgKGNsb3N1cmUgPT0gTlVMTCkgeworCQljbG9zdXJlID0g Z19jbG9zdXJlX25ld19zaW1wbGUoc2l6ZW9mKEdDbG9zdXJlKSwgTlVMTCk7CisJCWdfY2xvc3Vy ZV9zZXRfbWFyc2hhbChjbG9zdXJlLCBwaHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNoYWwp OworCQorCQlnX2Nsb3N1cmVfcmVmKGNsb3N1cmUpOworCQlnX2Nsb3N1cmVfc2luayhjbG9zdXJl KTsKKwl9CisJCisJcmV0dXJuIGNsb3N1cmU7CiB9CiAKICNlbmRpZiAvKiBIQVZFX1BIUF9HVEsg Ki8= --8d30be47af932dfe47ed5adf273f84109dabcfa4--