ANSIfication to sys/netinet/ *

看板DFBSD_submit作者時間21年前 (2004/06/03 21:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
This is a multi-part message in MIME format. --------------000208080505030708010900 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Patches are tarred (22 total). ANSIfication to sys/netinet/ if_atm.c if_ether.c igmp.c in.c in_gif.c in_pcb.c in_rmx.c ip_ecn.c ip_encap.c ip_flow.c ip_gre.c ip_icmp.c ip_id.c ip_input.c ip_output.c tcp_debug.c tcp_input.c tcp_output.c tcp_syncache.c tcp_timer.c tcp_usrreq.c udp_usrreq.c -- Tim Wickberg me@k9mach3.org --------------000208080505030708010900 Content-Type: application/octet-stream; name="netinet.tar" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="netinet.tar" aWZfYXRtLmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAxMjcwADEwMDU3NTI2MzQ2ADAxMTU0NQAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpbQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9zcmMvc3lzL25ldGluZXQvaWZf YXRtLmMJMjAwNC0wMy0yMyAxNzoxOTowNy4wMDAwMDAwMDAgLTA1MDAKKysrIGlmX2F0bS5j CTIwMDQtMDYtMDIgMjM6Mjc6MTcuMDAwMDAwMDAwIC0wNDAwCkBAIC03NiwxMCArNzYsNyBA QAogICovCiAKIHZvaWQKLWF0bV9ydHJlcXVlc3QocmVxLCBydCwgaW5mbykKLQlpbnQgcmVx OwotCXN0cnVjdCBydGVudHJ5ICpydDsKLQlzdHJ1Y3QgcnRfYWRkcmluZm8gKmluZm87Cith dG1fcnRyZXF1ZXN0KGludCByZXEsIHN0cnVjdCBydGVudHJ5ICpydCwgc3RydWN0IHJ0X2Fk ZHJpbmZvICppbmZvKQogewogCXN0cnVjdCBzb2NrYWRkciAqZ2F0ZSA9IHJ0LT5ydF9nYXRl d2F5OwogCXN0cnVjdCBhdG1fcHNldWRvaW9jdGwgYXBpOwpAQCAtMjIxLDEzICsyMTgsOCBA QAogICovCiAKIGludAotYXRtcmVzb2x2ZShydCwgbSwgZHN0LCBkZXN0ZW4pCi0KLXN0cnVj dCBydGVudHJ5ICpydDsKLXN0cnVjdCBtYnVmICptOwotc3RydWN0IHNvY2thZGRyICpkc3Q7 Ci1zdHJ1Y3QgYXRtX3BzZXVkb2hkciAqZGVzdGVuOwkvKiBPVVQgKi8KLQorYXRtcmVzb2x2 ZShzdHJ1Y3QgcnRlbnRyeSAqcnQsIHN0cnVjdCBtYnVmICptLCAKKyAgICBzdHJ1Y3Qgc29j a2FkZHIgKmRzdCwgc3RydWN0IGF0bV9wc2V1ZG9oZHIgKmRlc3RlbikKIHsKIAlzdHJ1Y3Qg c29ja2FkZHJfZGwgKnNkbDsKIAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWZfZXRoZXIuYy5kaWZmAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDA0NTQwADEw MDU3NTI2MzQ2ADAxMjA3NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGlt AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0g L3Vzci9zcmMvc3lzL25ldGluZXQvaWZfZXRoZXIuYwkyMDA0LTA2LTAyIDEwOjQzOjAxLjAw MDAwMDAwMCAtMDQwMAorKysgaWZfZXRoZXIuYwkyMDA0LTA2LTAyIDIzOjMzOjIyLjAwMDAw MDAwMCAtMDQwMApAQCAtMTQyLDggKzE0Miw3IEBACiAgKi8KIC8qIEFSR1NVU0VEICovCiBz dGF0aWMgdm9pZAotYXJwdGltZXIoaWdub3JlZF9hcmcpCi0Jdm9pZCAqaWdub3JlZF9hcmc7 CithcnB0aW1lcih2b2lkICppZ25vcmVkX2FyZykKIHsKIAlpbnQgcyA9IHNwbG5ldCgpOwog CXN0cnVjdCBsbGluZm9fYXJwICpsYSA9IExJU1RfRklSU1QoJmxsaW5mb19hcnApOwpAQCAt MTYzLDEwICsxNjIsNyBAQAogICogUGFyYWxsZWwgdG8gbGxjX3J0cmVxdWVzdC4KICAqLwog c3RhdGljIHZvaWQKLWFycF9ydHJlcXVlc3QocmVxLCBydCwgaW5mbykKLQlpbnQgcmVxOwot CXN0cnVjdCBydGVudHJ5ICpydDsKLQlzdHJ1Y3QgcnRfYWRkcmluZm8gKmluZm87CithcnBf cnRyZXF1ZXN0KGludCByZXEsIHN0cnVjdCBydGVudHJ5ICpydCwgc3RydWN0IHJ0X2FkZHJp bmZvICppbmZvKQogewogCXN0cnVjdCBzb2NrYWRkciAqZ2F0ZSA9IHJ0LT5ydF9nYXRld2F5 OwogCXN0cnVjdCBsbGluZm9fYXJwICpsYSA9IChzdHJ1Y3QgbGxpbmZvX2FycCAqKXJ0LT5y dF9sbGluZm87CkBAIC0yOTYsMTAgKzI5Miw4IEBACiAgKgktIGFycCBoZWFkZXIgc291cmNl IGV0aGVybmV0IGFkZHJlc3MKICAqLwogc3RhdGljIHZvaWQKLWFycHJlcXVlc3QoaWZwLCBz aXAsIHRpcCwgZW5hZGRyKQotCXN0cnVjdCBpZm5ldCAqaWZwOwotCXN0cnVjdCBpbl9hZGRy ICpzaXAsICp0aXA7Ci0JdV9jaGFyICplbmFkZHI7CithcnByZXF1ZXN0KHN0cnVjdCBpZm5l dCAqaWZwLCBzdHJ1Y3QgaW5fYWRkciAqc2lwLCAKKyAgICBzdHJ1Y3QgaW5fYWRkciAqdGlw LCB1X2NoYXIgKmVuYWRkcikKIHsKIAlzdHJ1Y3QgbWJ1ZiAqbTsKIAlzdHJ1Y3QgZXRoZXJf aGVhZGVyICplaDsKQEAgLTM5NCwxMyArMzg4LDggQEAKICAqIHRha2VuIG92ZXIgaGVyZSwg ZWl0aGVyIG5vdyBvciBmb3IgbGF0ZXIgdHJhbnNtaXNzaW9uLgogICovCiBpbnQKLWFycHJl c29sdmUoaWZwLCBydCwgbSwgZHN0LCBkZXN0ZW4sIHJ0MCkKLQlzdHJ1Y3QgaWZuZXQgKmlm cDsKLQlzdHJ1Y3QgcnRlbnRyeSAqcnQ7Ci0Jc3RydWN0IG1idWYgKm07Ci0Jc3RydWN0IHNv Y2thZGRyICpkc3Q7Ci0JdV9jaGFyICpkZXN0ZW47Ci0Jc3RydWN0IHJ0ZW50cnkgKnJ0MDsK K2FycHJlc29sdmUoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBydGVudHJ5ICpydCwgc3Ry dWN0IG1idWYgKm0sCisgICAgc3RydWN0IHNvY2thZGRyICpkc3QsIHVfY2hhciAqZGVzdGVu LCBzdHJ1Y3QgcnRlbnRyeSAqcnQwKQogewogCXN0cnVjdCBsbGluZm9fYXJwICpsYSA9IDA7 CiAJc3RydWN0IHNvY2thZGRyX2RsICpzZGw7CkBAIC01NjAsOCArNTQ5LDcgQEAKIAkibG9n IGFycCBwYWNrZXRzIGFycml2aW5nIG9uIHRoZSB3cm9uZyBpbnRlcmZhY2UiKTsKIAogc3Rh dGljIHZvaWQKLWluX2FycGlucHV0KG0pCi0Jc3RydWN0IG1idWYgKm07Citpbl9hcnBpbnB1 dChzdHJ1Y3QgbWJ1ZiAqbSkKIHsKIAlzdHJ1Y3QgYXJwaGRyICphaDsKIAlzdHJ1Y3QgaWZu ZXQgKmlmcCA9IG0tPm1fcGt0aGRyLnJjdmlmOwpAQCAtODQ1LDggKzgzMyw3IEBACiAgKiBG cmVlIGFuIGFycCBlbnRyeS4KICAqLwogc3RhdGljIHZvaWQKLWFycHRmcmVlKGxhKQotCXN0 cnVjdCBsbGluZm9fYXJwICpsYTsKK2FycHRmcmVlKHN0cnVjdCBsbGluZm9fYXJwICpsYSkK IHsKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQgPSBsYS0+bGFfcnQ7CiAJc3RydWN0IHNvY2thZGRy X2RsICpzZGw7CkBAIC04NjYsOSArODUzLDcgQEAKICAqIExvb2t1cCBvciBlbnRlciBhIG5l dyBhZGRyZXNzIGluIGFycHRhYi4KICAqLwogc3RhdGljIHN0cnVjdCBsbGluZm9fYXJwICoK LWFycGxvb2t1cChhZGRyLCBjcmVhdGUsIHByb3h5KQotCXVfbG9uZyBhZGRyOwotCWludCBj cmVhdGUsIHByb3h5OworYXJwbG9va3VwKHVfbG9uZyBhZGRyLCBpbnQgY3JlYXRlLCBpbnQg cHJveHkpCiB7CiAJc3RydWN0IHJ0ZW50cnkgKnJ0OwogCXN0YXRpYyBzdHJ1Y3Qgc29ja2Fk ZHJfaW5hcnAgc2luID0ge3NpemVvZihzaW4pLCBBRl9JTkVUIH07CkBAIC05MDcsOSArODky LDcgQEAKIH0KIAogdm9pZAotYXJwX2lmaW5pdChpZnAsIGlmYSkKLQlzdHJ1Y3QgaWZuZXQg KmlmcDsKLQlzdHJ1Y3QgaWZhZGRyICppZmE7CithcnBfaWZpbml0KHN0cnVjdCBpZm5ldCAq aWZwLCBzdHJ1Y3QgaWZhZGRyICppZmEpCiB7CiAJaWYgKG50b2hsKElBX1NJTihpZmEpLT5z aW5fYWRkci5zX2FkZHIpICE9IElOQUREUl9BTlkpCiAJCWFycHJlcXVlc3QoaWZwLCAmSUFf U0lOKGlmYSktPnNpbl9hZGRyLAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAaWdtcC5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAyMTE0ADEwMDU3NTI2 MzQ2ADAxMTI0MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9z cmMvc3lzL25ldGluZXQvaWdtcC5jCTIwMDQtMDYtMDIgMTA6NDM6MDEuMDAwMDAwMDAwIC0w NDAwCisrKyBpZ21wLmMJMjAwNC0wNi0wMiAyMzozNTozNi4wMDAwMDAwMDAgLTA0MDAKQEAg LTExOCw4ICsxMTgsNyBAQAogfQogCiBzdGF0aWMgc3RydWN0IHJvdXRlcl9pbmZvICoKLWZp bmRfcnRpKGlmcCkKLQlzdHJ1Y3QgaWZuZXQgKmlmcDsKK2ZpbmRfcnRpKHN0cnVjdCBpZm5l dCAqaWZwKQogewogICAgICAgICBzdHJ1Y3Qgcm91dGVyX2luZm8gKnJ0aSA9IEhlYWQ7CiAK QEAgLTE0OCw5ICsxNDcsNyBAQAogfQogCiB2b2lkCi1pZ21wX2lucHV0KG0sIG9mZiwgcHJv dG8pCi0Jc3RydWN0IG1idWYgKm07Ci0JaW50IG9mZiwgcHJvdG87CitpZ21wX2lucHV0KHN0 cnVjdCBtYnVmICptLCBpbnQgb2ZmLCBpbnQgcHJvdG8pCiB7CiAJaW50IGlwaGxlbiA9IG9m ZjsKIAlzdHJ1Y3QgaWdtcCAqaWdtcDsKQEAgLTM0Miw4ICszMzksNyBAQAogfQogCiB2b2lk Ci1pZ21wX2pvaW5ncm91cChpbm0pCi0Jc3RydWN0IGluX211bHRpICppbm07CitpZ21wX2pv aW5ncm91cChzdHJ1Y3QgaW5fbXVsdGkgKmlubSkKIHsKIAlpbnQgcyA9IHNwbG5ldCgpOwog CkBAIC0zNjMsOCArMzU5LDcgQEAKIH0KIAogdm9pZAotaWdtcF9sZWF2ZWdyb3VwKGlubSkK LQlzdHJ1Y3QgaW5fbXVsdGkgKmlubTsKK2lnbXBfbGVhdmVncm91cChzdHJ1Y3QgaW5fbXVs dGkgKmlubSkKIHsKIAlpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9JUkVQT1JURURMQVNU ICYmCiAJICAgIGlubS0+aW5tX2FkZHIuc19hZGRyICE9IGlnbXBfYWxsX2hvc3RzX2dyb3Vw ICYmCkBAIC00MzIsMTAgKzQyNyw3IEBACiBzdGF0aWMgc3RydWN0IHJvdXRlIGlnbXBydDsK IAogc3RhdGljIHZvaWQKLWlnbXBfc2VuZHBrdChpbm0sIHR5cGUsIGFkZHIpCi0Jc3RydWN0 IGluX211bHRpICppbm07Ci0JaW50IHR5cGU7Ci0JdW5zaWduZWQgbG9uZyBhZGRyOworaWdt cF9zZW5kcGt0KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBpbnQgdHlwZSwgdW5zaWduZWQgbG9u ZyBhZGRyKQogewogICAgICAgICBzdHJ1Y3QgbWJ1ZiAqbTsKICAgICAgICAgc3RydWN0IGln bXAgKmlnbXA7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABpbi5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDEwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDU1NDEAMTAwNTc1MjYzNDYA MDEwNzIxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9z eXMvbmV0aW5ldC9pbi5jCTIwMDQtMDQtMjIgMDA6MzU6NDUuMDAwMDAwMDAwIC0wNDAwCisr KyBpbi5jCTIwMDQtMDYtMDIgMjM6NDA6MjEuMDAwMDAwMDAwIC0wNDAwCkBAIC04Miw4ICs4 Miw3IEBACiAgKiBPdGhlcndpc2UsIGl0IGluY2x1ZGVzIG9ubHkgdGhlIGRpcmVjdGx5LWNv bm5lY3RlZCAoc3ViKW5ldHMuCiAgKi8KIGludAotaW5fbG9jYWxhZGRyKGluKQotCXN0cnVj dCBpbl9hZGRyIGluOworaW5fbG9jYWxhZGRyKHN0cnVjdCBpbl9hZGRyIGluKQogewogCXVf bG9uZyBpID0gbnRvaGwoaW4uc19hZGRyKTsKIAlzdHJ1Y3QgaW5faWZhZGRyICppYTsKQEAg LTEwNiw4ICsxMDUsNyBAQAogICogbWF5IGJlIGZvcndhcmRlZC4KICAqLwogaW50Ci1pbl9j YW5mb3J3YXJkKGluKQotCXN0cnVjdCBpbl9hZGRyIGluOworaW5fY2FuZm9yd2FyZChzdHJ1 Y3QgaW5fYWRkciBpbikKIHsKIAl1X2xvbmcgaSA9IG50b2hsKGluLnNfYWRkcik7CiAJdV9s b25nIG5ldDsKQEAgLTEyNiw4ICsxMjQsNyBAQAogICogVHJpbSBhIG1hc2sgaW4gYSBzb2Nr YWRkcgogICovCiBzdGF0aWMgdm9pZAotaW5fc29ja3RyaW0oYXApCi1zdHJ1Y3Qgc29ja2Fk ZHJfaW4gKmFwOworaW5fc29ja3RyaW0oc3RydWN0IHNvY2thZGRyX2luICphcCkKIHsKICAg ICBjaGFyICpjcGxpbSA9IChjaGFyICopICZhcC0+c2luX2FkZHI7CiAgICAgY2hhciAqY3Ag PSAoY2hhciAqKSAoJmFwLT5zaW5fYWRkciArIDEpOwpAQCAtMTQxLDggKzEzOCw3IEBACiB9 CiAKIHN0YXRpYyBpbnQKLWluX21hc2sybGVuKG1hc2spCi0Jc3RydWN0IGluX2FkZHIgKm1h c2s7Citpbl9tYXNrMmxlbihzdHJ1Y3QgaW5fYWRkciAqbWFzaykKIHsKIAlpbnQgeCwgeTsK IAl1X2NoYXIgKnA7CkBAIC0xNjMsOSArMTU5LDcgQEAKIH0KIAogc3RhdGljIHZvaWQKLWlu X2xlbjJtYXNrKG1hc2ssIGxlbikKLQlzdHJ1Y3QgaW5fYWRkciAqbWFzazsKLQlpbnQgbGVu OworaW5fbGVuMm1hc2soc3RydWN0IGluX2FkZHIgKm1hc2ssIGludCBsZW4pCiB7CiAJaW50 IGk7CiAJdV9jaGFyICpwOwpAQCAtMTg4LDEyICsxODIsOCBAQAogICovCiAvKiBBUkdTVVNF RCAqLwogaW50Ci1pbl9jb250cm9sKHNvLCBjbWQsIGRhdGEsIGlmcCwgdGQpCi0Jc3RydWN0 IHNvY2tldCAqc287Ci0JdV9sb25nIGNtZDsKLQljYWRkcl90IGRhdGE7Ci0Jc3RydWN0IGlm bmV0ICppZnA7Ci0Jc3RydWN0IHRocmVhZCAqdGQ7Citpbl9jb250cm9sKHN0cnVjdCBzb2Nr ZXQgKnNvLCB1X2xvbmcgY21kLCBjYWRkcl90IGRhdGEsIAorICAgIHN0cnVjdCBpZm5ldCAq aWZwLCBzdHJ1Y3QgdGhyZWFkICp0ZCkKIHsKIAlzdHJ1Y3QgaWZyZXEgKmlmciA9IChzdHJ1 Y3QgaWZyZXEgKilkYXRhOwogCXN0cnVjdCBpbl9pZmFkZHIgKmlhID0gMCwgKmlhcDsKQEAg LTQ4MCwxMiArNDcwLDggQEAKICAqIE5PVEUhIHRkIG1pZ2h0IGJlIE5VTEwuCiAgKi8KIHN0 YXRpYyBpbnQKLWluX2xpZmFkZHJfaW9jdGwoc28sIGNtZCwgZGF0YSwgaWZwLCB0ZCkKLQlz dHJ1Y3Qgc29ja2V0ICpzbzsKLQl1X2xvbmcgY21kOwotCWNhZGRyX3QJZGF0YTsKLQlzdHJ1 Y3QgaWZuZXQgKmlmcDsKLQlzdHJ1Y3QgdGhyZWFkICp0ZDsKK2luX2xpZmFkZHJfaW9jdGwo c3RydWN0IHNvY2tldCAqc28sIHVfbG9uZyBjbWQsIGNhZGRyX3QgZGF0YSwgCisgICAgc3Ry dWN0IGlmbmV0ICppZnAsIHN0cnVjdCB0aHJlYWQgKnRkKQogewogCXN0cnVjdCBpZl9sYWRk cnJlcSAqaWZsciA9IChzdHJ1Y3QgaWZfbGFkZHJyZXEgKilkYXRhOwogCXN0cnVjdCBpZmFk ZHIgKmlmYTsKQEAgLTY2NCwxMSArNjUwLDggQEAKICAqIGFuZCByb3V0aW5nIHRhYmxlIGVu dHJ5LgogICovCiBzdGF0aWMgaW50Ci1pbl9pZmluaXQoaWZwLCBpYSwgc2luLCBzY3J1YikK LQlzdHJ1Y3QgaWZuZXQgKmlmcDsKLQlzdHJ1Y3QgaW5faWZhZGRyICppYTsKLQlzdHJ1Y3Qg c29ja2FkZHJfaW4gKnNpbjsKLQlpbnQgc2NydWI7Citpbl9pZmluaXQoc3RydWN0IGlmbmV0 ICppZnAsIHN0cnVjdCBpbl9pZmFkZHIgKmlhLAorICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAq c2luLCBpbnQgc2NydWIpCiB7CiAJdV9sb25nIGkgPSBudG9obChzaW4tPnNpbl9hZGRyLnNf YWRkcik7CiAJc3RydWN0IHNvY2thZGRyX2luIG9sZGFkZHI7CkBAIC03NzcsOSArNzYwLDcg QEAKICAqIFJldHVybiAxIGlmIHRoZSBhZGRyZXNzIG1pZ2h0IGJlIGEgbG9jYWwgYnJvYWRj YXN0IGFkZHJlc3MuCiAgKi8KIGludAotaW5fYnJvYWRjYXN0KGluLCBpZnApCi0Jc3RydWN0 IGluX2FkZHIgaW47Ci0gICAgICAgIHN0cnVjdCBpZm5ldCAqaWZwOworaW5fYnJvYWRjYXN0 KHN0cnVjdCBpbl9hZGRyIGluLCBzdHJ1Y3QgaWZuZXQgKmlmcCkKIHsKIAlzdHJ1Y3QgaWZh ZGRyICppZmE7CiAJdV9sb25nIHQ7CkBAIC04MTcsOSArNzk4LDcgQEAKICAqIEFkZCBhbiBh ZGRyZXNzIHRvIHRoZSBsaXN0IG9mIElQIG11bHRpY2FzdCBhZGRyZXNzZXMgZm9yIGEgZ2l2 ZW4gaW50ZXJmYWNlLgogICovCiBzdHJ1Y3QgaW5fbXVsdGkgKgotaW5fYWRkbXVsdGkoYXAs IGlmcCkKLQlzdHJ1Y3QgaW5fYWRkciAqYXA7Ci0Jc3RydWN0IGlmbmV0ICppZnA7Citpbl9h ZGRtdWx0aShzdHJ1Y3QgaW5fYWRkciAqYXAsIHN0cnVjdCBpZm5ldCAqaWZwKQogewogCXN0 cnVjdCBpbl9tdWx0aSAqaW5tOwogCWludCBlcnJvcjsKQEAgLTg3Miw4ICs4NTEsNyBAQAog ICogRGVsZXRlIGEgbXVsdGljYXN0IGFkZHJlc3MgcmVjb3JkLgogICovCiB2b2lkCi1pbl9k ZWxtdWx0aShpbm0pCi0Jc3RydWN0IGluX211bHRpICppbm07Citpbl9kZWxtdWx0aShzdHJ1 Y3QgaW5fbXVsdGkgKmlubSkKIHsKIAlzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWEgPSBpbm0t PmlubV9pZm1hOwogCXN0cnVjdCBpbl9tdWx0aSBteV9pbm07CgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGluX2dpZi5jLmRpZmYAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAw MDAwMzA1NAAxMDA1NzUyNjM0NgAwMTE1NDMAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAALS0tIC91c3Ivc3JjL3N5cy9uZXRpbmV0L2luX2dpZi5jCTIwMDQtMDYtMDIgMTA6 NDM6MDEuMDAwMDAwMDAwIC0wNDAwCisrKyBpbl9naWYuYwkyMDA0LTA2LTAyIDIzOjQzOjAx LjAwMDAwMDAwMCAtMDQwMApAQCAtODUsMTAgKzg1LDcgQEAKIAkmaXBfZ2lmX3R0bCwJMCwg IiIpOwogCiBpbnQKLWluX2dpZl9vdXRwdXQoaWZwLCBmYW1pbHksIG0pCi0Jc3RydWN0IGlm bmV0CSppZnA7Ci0JaW50CQlmYW1pbHk7Ci0Jc3RydWN0IG1idWYJKm07Citpbl9naWZfb3V0 cHV0KHN0cnVjdCBpZm5ldCAqaWZwLCBpbnQgZmFtaWx5LCBzdHJ1Y3QgbWJ1ZiAqbSkKIHsK IAlzdHJ1Y3QgZ2lmX3NvZnRjICpzYyA9IChzdHJ1Y3QgZ2lmX3NvZnRjKilpZnA7CiAJc3Ry dWN0IHNvY2thZGRyX2luICpkc3QgPSAoc3RydWN0IHNvY2thZGRyX2luICopJnNjLT5naWZf cm8ucm9fZHN0OwpAQCAtMjEyLDEwICsyMDksNyBAQAogfQogCiB2b2lkCi1pbl9naWZfaW5w dXQobSwgb2ZmLCBwcm90bykKLQlzdHJ1Y3QgbWJ1ZiAqbTsKLQlpbnQgb2ZmOwotCWludCBw cm90bzsKK2luX2dpZl9pbnB1dChzdHJ1Y3QgbWJ1ZiAqbSwgaW50IG9mZiwgaW50IHByb3Rv KQogewogCXN0cnVjdCBpZm5ldCAqZ2lmcCA9IE5VTEw7CiAJc3RydWN0IGlwICppcDsKQEAg LTI4OSwxMCArMjgzLDcgQEAKICAqIHZhbGlkYXRlIG91dGVyIGFkZHJlc3MuCiAgKi8KIHN0 YXRpYyBpbnQKLWdpZl92YWxpZGF0ZTQoaXAsIHNjLCBpZnApCi0JY29uc3Qgc3RydWN0IGlw ICppcDsKLQlzdHJ1Y3QgZ2lmX3NvZnRjICpzYzsKLQlzdHJ1Y3QgaWZuZXQgKmlmcDsKK2dp Zl92YWxpZGF0ZTQoY29uc3Qgc3RydWN0IGlwICppcCwgc3RydWN0IGdpZl9zb2Z0YyAqc2Ms IHN0cnVjdCBpZm5ldCAqaWZwKQogewogCXN0cnVjdCBzb2NrYWRkcl9pbiAqc3JjLCAqZHN0 OwogCXN0cnVjdCBpbl9pZmFkZHIgKmlhNDsKQEAgLTM1MywxMSArMzQ0LDcgQEAKICAqIG1h dGNoZWQgdGhlIHBoeXNpY2FsIGFkZHIgZmFtaWx5LiAgc2VlIGdpZl9lbmNhcGNoZWNrKCku CiAgKi8KIGludAotZ2lmX2VuY2FwY2hlY2s0KG0sIG9mZiwgcHJvdG8sIGFyZykKLQljb25z dCBzdHJ1Y3QgbWJ1ZiAqbTsKLQlpbnQgb2ZmOwotCWludCBwcm90bzsKLQl2b2lkICphcmc7 CitnaWZfZW5jYXBjaGVjazQoY29uc3Qgc3RydWN0IG1idWYgKm0sIGludCBvZmYsIGludCBw cm90bywgdm9pZCAqYXJnKQogewogCXN0cnVjdCBpcCBpcDsKIAlzdHJ1Y3QgZ2lmX3NvZnRj ICpzYzsKQEAgLTM3NCw4ICszNjEsNyBAQAogfQogCiBpbnQKLWluX2dpZl9hdHRhY2goc2Mp Ci0Jc3RydWN0IGdpZl9zb2Z0YyAqc2M7Citpbl9naWZfYXR0YWNoKHN0cnVjdCBnaWZfc29m dGMgKnNjKQogewogCXNjLT5lbmNhcF9jb29raWU0ID0gZW5jYXBfYXR0YWNoX2Z1bmMoQUZf SU5FVCwgLTEsIGdpZl9lbmNhcGNoZWNrLAogCSAgICAmaW5fZ2lmX3Byb3Rvc3csIHNjKTsK QEAgLTM4NSw4ICszNzEsNyBAQAogfQogCiBpbnQKLWluX2dpZl9kZXRhY2goc2MpCi0Jc3Ry dWN0IGdpZl9zb2Z0YyAqc2M7Citpbl9naWZfZGV0YWNoKHN0cnVjdCBnaWZfc29mdGMgKnNj KQogewogCWludCBlcnJvcjsKIAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABpbl9wY2IuYy5kaWZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0 NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDY1MDcAMTAwNTc1MjYzNDYAMDExNTUwACAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGlt AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9zeXMvbmV0aW5ldC9p bl9wY2IuYwkyMDA0LTA1LTA4IDA5OjMwOjUyLjAwMDAwMDAwMCAtMDQwMAorKysgaW5fcGNi LmMJMjAwNC0wNi0wMiAyMzo1MzoyOC4wMDAwMDAwMDAgLTA0MDAKQEAgLTM4MiwxMCArMzgy LDggQEAKICAqICAgaGF2ZSBmb3JjZWQgbWlub3IgY2hhbmdlcyBpbiBldmVyeSBwcm90b2Nv bCkuCiAgKi8KIGludAotaW5fcGNibGFkZHIoaW5wLCBuYW0sIHBsb2NhbF9zaW4pCi0Jc3Ry dWN0IGlucGNiICppbnA7Ci0Jc3RydWN0IHNvY2thZGRyICpuYW07Ci0Jc3RydWN0IHNvY2th ZGRyX2luICoqcGxvY2FsX3NpbjsKK2luX3BjYmxhZGRyKHN0cnVjdCBpbnBjYiAqaW5wLCBz dHJ1Y3Qgc29ja2FkZHIgKm5hbSwgCisgICAgc3RydWN0IHNvY2thZGRyX2luICoqcGxvY2Fs X3NpbikKIHsKIAlzdHJ1Y3QgaW5faWZhZGRyICppYTsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW4g KnNpbiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKiluYW07CkBAIC01NDMsOCArNTQxLDcgQEAK IH0KIAogdm9pZAotaW5fcGNiZGlzY29ubmVjdChpbnApCi0Jc3RydWN0IGlucGNiICppbnA7 Citpbl9wY2JkaXNjb25uZWN0KHN0cnVjdCBpbnBjYiAqaW5wKQogewogCiAJaW5wLT5pbnBf ZmFkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKQEAgLTU1NSw4ICs1NTIsNyBAQAogfQogCiB2 b2lkCi1pbl9wY2JkZXRhY2goaW5wKQotCXN0cnVjdCBpbnBjYiAqaW5wOworaW5fcGNiZGV0 YWNoKHN0cnVjdCBpbnBjYiAqaW5wKQogewogCXN0cnVjdCBzb2NrZXQgKnNvID0gaW5wLT5p bnBfc29ja2V0OwogCXN0cnVjdCBpbnBjYmluZm8gKmlwaSA9IGlucC0+aW5wX3BjYmluZm87 CkBAIC01ODgsOSArNTg0LDcgQEAKICAqIGJlY2F1c2UgdGhlcmUgYWN0dWFsbHkgL2lzLyBh IHByb2dyYW1taW5nIGVycm9yIHNvbWV3aGVyZS4uLiBYWFgpCiAgKi8KIGludAotaW5fc2V0 c29ja2FkZHIoc28sIG5hbSkKLQlzdHJ1Y3Qgc29ja2V0ICpzbzsKLQlzdHJ1Y3Qgc29ja2Fk ZHIgKipuYW07Citpbl9zZXRzb2NrYWRkcihzdHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNv Y2thZGRyICoqbmFtKQogewogCWludCBzOwogCXN0cnVjdCBpbnBjYiAqaW5wOwpAQCAtNjIw LDkgKzYxNCw3IEBACiB9CiAKIGludAotaW5fc2V0cGVlcmFkZHIoc28sIG5hbSkKLQlzdHJ1 Y3Qgc29ja2V0ICpzbzsKLQlzdHJ1Y3Qgc29ja2FkZHIgKipuYW07Citpbl9zZXRwZWVyYWRk cihzdHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICoqbmFtKQogewogCWludCBz OwogCXN0cnVjdCBpbnBjYiAqaW5wOwpAQCAtNjUyLDEwICs2NDQsOCBAQAogfQogCiB2b2lk Ci1pbl9wY2Jub3RpZnlhbGwoaGVhZCwgZmFkZHIsIGVycm5vLCBub3RpZnkpCi0Jc3RydWN0 IGlucGNiaGVhZCAqaGVhZDsKLQlzdHJ1Y3QgaW5fYWRkciBmYWRkcjsKLQl2b2lkICgqbm90 aWZ5KSAoc3RydWN0IGlucGNiICosIGludCk7Citpbl9wY2Jub3RpZnlhbGwoc3RydWN0IGlu cGNiaGVhZCAqaGVhZCwgc3RydWN0IGluX2FkZHIgZmFkZHIsIAorICAgIGludCBlcnJubywg dm9pZCAoKm5vdGlmeSkgKHN0cnVjdCBpbnBjYiAqLCBpbnQpKQogewogCXN0cnVjdCBpbnBj YiAqaW5wLCAqbmlucDsKIAlpbnQgczsKQEAgLTY3Niw5ICs2NjYsNyBAQAogfQogCiB2b2lk Ci1pbl9wY2JwdXJnZWlmMChoZWFkLCBpZnApCi0Jc3RydWN0IGlucGNiICpoZWFkOwotCXN0 cnVjdCBpZm5ldCAqaWZwOworaW5fcGNicHVyZ2VpZjAoc3RydWN0IGlucGNiICpoZWFkLCBz dHJ1Y3QgaWZuZXQgKmlmcCkKIHsKIAlzdHJ1Y3QgaW5wY2IgKmlucDsKIAlzdHJ1Y3QgaXBf bW9wdGlvbnMgKmltbzsKQEAgLTcxOSw4ICs3MDcsNyBAQAogICogKGJ5IGEgcmVkaXJlY3Qp LCB0aW1lIHRvIHRyeSBhIGRlZmF1bHQgZ2F0ZXdheSBhZ2Fpbi4KICAqLwogdm9pZAotaW5f bG9zaW5nKGlucCkKLQlzdHJ1Y3QgaW5wY2IgKmlucDsKK2luX2xvc2luZyhzdHJ1Y3QgaW5w Y2IgKmlucCkKIHsKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7CiAJc3RydWN0IHJ0X2FkZHJpbmZv IGluZm87CkBAIC03NDgsOSArNzM1LDcgQEAKICAqIGFuZCBhbGxvY2F0ZSBhIChob3BlZnVs bHkpIGJldHRlciBvbmUuCiAgKi8KIHZvaWQKLWluX3J0Y2hhbmdlKGlucCwgZXJybm8pCi0J c3RydWN0IGlucGNiICppbnA7Ci0JaW50IGVycm5vOworaW5fcnRjaGFuZ2Uoc3RydWN0IGlu cGNiICppbnAsIGludCBlcnJubykKIHsKIAlpZiAoaW5wLT5pbnBfcm91dGUucm9fcnQpIHsK IAkJcnRmcmVlKGlucC0+aW5wX3JvdXRlLnJvX3J0KTsKQEAgLTc2NiwxMSArNzUxLDggQEAK ICAqIExvb2t1cCBhIFBDQiBiYXNlZCBvbiB0aGUgbG9jYWwgYWRkcmVzcyBhbmQgcG9ydC4K ICAqLwogc3RydWN0IGlucGNiICoKLWluX3BjYmxvb2t1cF9sb2NhbChwY2JpbmZvLCBsYWRk ciwgbHBvcnRfYXJnLCB3aWxkX29rYXkpCi0Jc3RydWN0IGlucGNiaW5mbyAqcGNiaW5mbzsK LQlzdHJ1Y3QgaW5fYWRkciBsYWRkcjsKLQl1X2ludCBscG9ydF9hcmc7Ci0JaW50IHdpbGRf b2theTsKK2luX3BjYmxvb2t1cF9sb2NhbChzdHJ1Y3QgaW5wY2JpbmZvICpwY2JpbmZvLCBz dHJ1Y3QgaW5fYWRkciBsYWRkciwKKyAgICB1X2ludCBscG9ydF9hcmcsIGludCB3aWxkX29r YXkpCiB7CiAJc3RydWN0IGlucGNiICppbnA7CiAJaW50IG1hdGNod2lsZCA9IDMsIHdpbGRj YXJkOwpAQCAtODMyLDEyICs4MTQsOSBAQAogICogTG9va3VwIFBDQiBpbiBoYXNoIGxpc3Qu CiAgKi8KIHN0cnVjdCBpbnBjYiAqCi1pbl9wY2Jsb29rdXBfaGFzaChwY2JpbmZvLCBmYWRk ciwgZnBvcnRfYXJnLCBsYWRkciwgbHBvcnRfYXJnLCB3aWxkY2FyZCwgaWZwKQotCXN0cnVj dCBpbnBjYmluZm8gKnBjYmluZm87Ci0Jc3RydWN0IGluX2FkZHIgZmFkZHIsIGxhZGRyOwot CXVfaW50IGZwb3J0X2FyZywgbHBvcnRfYXJnOwotCWJvb2xlYW5fdCB3aWxkY2FyZDsKLQlz dHJ1Y3QgaWZuZXQgKmlmcDsKK2luX3BjYmxvb2t1cF9oYXNoKHN0cnVjdCBpbnBjYmluZm8g KnBjYmluZm8sIHN0cnVjdCBpbl9hZGRyIGZhZGRyLAorICAgICB1X2ludCBmcG9ydF9hcmcs IHN0cnVjdCBpbl9hZGRyIGxhZGRyLCB1X2ludCBscG9ydF9hcmcsIAorICAgICBib29sZWFu X3Qgd2lsZGNhcmQsIHN0cnVjdCBpZm5ldCAqaWZwKQogewogCXN0cnVjdCBpbnBjYmhlYWQg KmhlYWQ7CiAJc3RydWN0IGlucGNiICppbnA7CkBAIC0xMDU1LDggKzEwMzQsNyBAQAogICog UmVtb3ZlIFBDQiBmcm9tIHZhcmlvdXMgbGlzdHMuCiAgKi8KIHZvaWQKLWluX3BjYnJlbWxp c3RzKGlucCkKLQlzdHJ1Y3QgaW5wY2IgKmlucDsKK2luX3BjYnJlbWxpc3RzKHN0cnVjdCBp bnBjYiAqaW5wKQogewogCWlmIChpbnAtPmlucF9scG9ydCkgewogCQlzdHJ1Y3QgaW5wY2Jw b3J0ICpwaGQgPSBpbnAtPmlucF9waGQ7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaW5fcm14 LmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1 MAAwMDAxNzUwADAwMDAwMDAxMTQwADEwMDU3NTI2MzQ2ADAxMTU3NgAgMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpbQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9zcmMvc3lzL25ldGluZXQvaW5fcm14LmMJ MjAwNC0wMS0wNyAwNjowNDoyMy4wMDAwMDAwMDAgLTA1MDAKKysrIGluX3JteC5jCTIwMDQt MDYtMDIgMjM6NTU6MDAuMDAwMDAwMDAwIC0wNDAwCkBAIC02Niw3ICs2Niw3IEBACiAgKi8K IHN0YXRpYyBzdHJ1Y3QgcmFkaXhfbm9kZSAqCiBpbl9hZGRyb3V0ZSh2b2lkICp2X2FyZywg dm9pZCAqbl9hcmcsIHN0cnVjdCByYWRpeF9ub2RlX2hlYWQgKmhlYWQsCi0JICAgIHN0cnVj dCByYWRpeF9ub2RlICp0cmVlbm9kZXMpCisgICAgc3RydWN0IHJhZGl4X25vZGUgKnRyZWVu b2RlcykKIHsKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQgPSAoc3RydWN0IHJ0ZW50cnkgKil0cmVl bm9kZXM7CiAJc3RydWN0IHNvY2thZGRyX2luICpzaW4gPSAoc3RydWN0IHNvY2thZGRyX2lu ICopcnRfa2V5KHJ0KTsKQEAgLTM2Niw3ICszNjYsNiBAQAogCXJldHVybiAxOwogfQogCi0M CiAvKgogICogVGhpcyB6YXBzIG9sZCByb3V0ZXMgd2hlbiB0aGUgaW50ZXJmYWNlIGdvZXMg ZG93biBvciBpbnRlcmZhY2UKICAqIGFkZHJlc3MgaXMgZGVsZXRlZC4gIEluIHRoZSBsYXR0 ZXIgY2FzZSwgaXQgZGVsZXRlcyBzdGF0aWMgcm91dGVzCgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAaXBfZWNuLmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAyMzY0ADEwMDU3NTI2 MzQ2ADAxMTU1MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9z cmMvc3lzL25ldGluZXQvaXBfZWNuLmMJMjAwMy0wNi0xNyAwMDoyODo1MS4wMDAwMDAwMDAg LTA0MDAKKysrIGlwX2Vjbi5jCTIwMDQtMDYtMDIgMjM6NTc6MjEuMDAwMDAwMDAwIC0wNDAw CkBAIC02MSwxMCArNjEsNyBAQAogICogbW9kaWZ5IG91dGVyIEVDTiAoVE9TKSBmaWVsZCBv biBpbmdyZXNzIG9wZXJhdGlvbiAodHVubmVsIGVuY2Fwc3VsYXRpb24pLgogICovCiB2b2lk Ci1pcF9lY25faW5ncmVzcyhtb2RlLCBvdXRlciwgaW5uZXIpCi0JaW50IG1vZGU7Ci0JdV9p bnQ4X3QgKm91dGVyOwotCWNvbnN0IHVfaW50OF90ICppbm5lcjsKK2lwX2Vjbl9pbmdyZXNz KGludCBtb2RlLCB1X2ludDhfdCAqb3V0ZXIsIGNvbnN0IHVfaW50OF90ICppbm5lcikKIHsK IAlpZiAoIW91dGVyIHx8ICFpbm5lcikKIAkJcGFuaWMoIk5VTEwgcG9pbnRlciBwYXNzZWQg dG8gaXBfZWNuX2luZ3Jlc3MiKTsKQEAgLTg2LDEwICs4Myw3IEBACiAgKiBtb2RpZnkgaW5u ZXIgRUNOIChUT1MpIGZpZWxkIG9uIGVncmVzcyBvcGVyYXRpb24gKHR1bm5lbCBkZWNhcHN1 bGF0aW9uKS4KICAqLwogdm9pZAotaXBfZWNuX2VncmVzcyhtb2RlLCBvdXRlciwgaW5uZXIp Ci0JaW50IG1vZGU7Ci0JY29uc3QgdV9pbnQ4X3QgKm91dGVyOwotCXVfaW50OF90ICppbm5l cjsKK2lwX2Vjbl9lZ3Jlc3MoaW50IG1vZGUsIGNvbnN0IHVfaW50OF90ICpvdXRlciwgdV9p bnQ4X3QgKmlubmVyKQogewogCWlmICghb3V0ZXIgfHwgIWlubmVyKQogCQlwYW5pYygiTlVM TCBwb2ludGVyIHBhc3NlZCB0byBpcF9lY25fZWdyZXNzIik7CkBAIC0xMDcsMTAgKzEwMSw3 IEBACiAKICNpZmRlZiBJTkVUNgogdm9pZAotaXA2X2Vjbl9pbmdyZXNzKG1vZGUsIG91dGVy LCBpbm5lcikKLQlpbnQgbW9kZTsKLQl1X2ludDMyX3QgKm91dGVyOwotCWNvbnN0IHVfaW50 MzJfdCAqaW5uZXI7CitpcDZfZWNuX2luZ3Jlc3MoaW50IG1vZGUsIHVfaW50MzJfdCAqb3V0 ZXIsIGNvbnN0IHVfaW50MzJfdCAqaW5uZXIpCiB7CiAJdV9pbnQ4X3Qgb3V0ZXI4LCBpbm5l cjg7CiAKQEAgLTEyNSwxMCArMTE2LDcgQEAKIH0KIAogdm9pZAotaXA2X2Vjbl9lZ3Jlc3Mo bW9kZSwgb3V0ZXIsIGlubmVyKQotCWludCBtb2RlOwotCWNvbnN0IHVfaW50MzJfdCAqb3V0 ZXI7Ci0JdV9pbnQzMl90ICppbm5lcjsKK2lwNl9lY25fZWdyZXNzKGludCBtb2RlLCBjb25z dCB1X2ludDMyX3QgKm91dGVyLCB1X2ludDMyX3QgKmlubmVyKQogewogCXVfaW50OF90IG91 dGVyOCwgaW5uZXI4OwogCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABpcF9lbmNhcC5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDEwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDQzNDAAMTAwNTc1MzExMTcA MDEyMDU1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9z eXMvbmV0aW5ldC9pcF9lbmNhcC5jCTIwMDQtMDYtMDIgMTA6NDM6MDEuMDAwMDAwMDAwIC0w NDAwCisrKyBpcF9lbmNhcC5jCTIwMDQtMDYtMDMgMDA6MDI6MDUuMDAwMDAwMDAwIC0wNDAw CkBAIC0yMTcsMTAgKzIxNyw3IEBACiAKICNpZmRlZiBJTkVUNgogaW50Ci1lbmNhcDZfaW5w dXQobXAsIG9mZnAsIHByb3RvKQotCXN0cnVjdCBtYnVmICoqbXA7Ci0JaW50ICpvZmZwOwot CWludCBwcm90bzsKK2VuY2FwNl9pbnB1dChzdHJ1Y3QgbWJ1ZiAqKm1wLCBpbnQgKm9mZnAs IGludCBwcm90bykKIHsKIAlzdHJ1Y3QgbWJ1ZiAqbSA9ICptcDsKIAlzdHJ1Y3QgaXA2X2hk ciAqaXA2OwpAQCAtMjg1LDggKzI4Miw3IEBACiAjZW5kaWYKIAogc3RhdGljIHZvaWQKLWVu Y2FwX2FkZChlcCkKLQlzdHJ1Y3QgZW5jYXB0YWIgKmVwOworZW5jYXBfYWRkKHN0cnVjdCBl bmNhcHRhYiAqZXApCiB7CiAKIAlMSVNUX0lOU0VSVF9IRUFEKCZlbmNhcHRhYiwgZXAsIGNo YWluKTsKQEAgLTI5OCwxMyArMjk0LDkgQEAKICAqIFJldHVybiB2YWx1ZSB3aWxsIGJlIG5l Y2Vzc2FyeSBhcyBpbnB1dCAoY29va2llKSBmb3IgZW5jYXBfZGV0YWNoKCkuCiAgKi8KIGNv bnN0IHN0cnVjdCBlbmNhcHRhYiAqCi1lbmNhcF9hdHRhY2goYWYsIHByb3RvLCBzcCwgc20s IGRwLCBkbSwgcHN3LCBhcmcpCi0JaW50IGFmOwotCWludCBwcm90bzsKLQljb25zdCBzdHJ1 Y3Qgc29ja2FkZHIgKnNwLCAqc207Ci0JY29uc3Qgc3RydWN0IHNvY2thZGRyICpkcCwgKmRt OwotCWNvbnN0IHN0cnVjdCBwcm90b3N3ICpwc3c7Ci0Jdm9pZCAqYXJnOworZW5jYXBfYXR0 YWNoKGludCBhZiwgaW50IHByb3RvLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKnNwLAorICAg IGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqc20sIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqZHAs CisgICAgY29uc3Qgc3RydWN0IHNvY2thZGRyICpkbSwgY29uc3Qgc3RydWN0IHByb3Rvc3cg KnBzdywgdm9pZCAqYXJnKQogewogCXN0cnVjdCBlbmNhcHRhYiAqZXA7CiAJaW50IGVycm9y OwpAQCAtMzcxLDEyICszNjMsOSBAQAogfQogCiBjb25zdCBzdHJ1Y3QgZW5jYXB0YWIgKgot ZW5jYXBfYXR0YWNoX2Z1bmMoYWYsIHByb3RvLCBmdW5jLCBwc3csIGFyZykKLQlpbnQgYWY7 Ci0JaW50IHByb3RvOwotCWludCAoKmZ1bmMpIChjb25zdCBzdHJ1Y3QgbWJ1ZiAqLCBpbnQs IGludCwgdm9pZCAqKTsKLQljb25zdCBzdHJ1Y3QgcHJvdG9zdyAqcHN3OwotCXZvaWQgKmFy ZzsKK2VuY2FwX2F0dGFjaF9mdW5jKGludCBhZiwgaW50IHByb3RvLCAKKyAgICBpbnQgKCpm dW5jKSAoY29uc3Qgc3RydWN0IG1idWYgKiwgaW50LCBpbnQsIHZvaWQgKiksIAorICAgIGNv bnN0IHN0cnVjdCBwcm90b3N3ICpwc3csIHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZW5jYXB0 YWIgKmVwOwogCWludCBlcnJvcjsKQEAgLTQxMyw4ICs0MDIsNyBAQAogfQogCiBpbnQKLWVu Y2FwX2RldGFjaChjb29raWUpCi0JY29uc3Qgc3RydWN0IGVuY2FwdGFiICpjb29raWU7Citl bmNhcF9kZXRhY2goY29uc3Qgc3RydWN0IGVuY2FwdGFiICpjb29raWUpCiB7CiAJY29uc3Qg c3RydWN0IGVuY2FwdGFiICplcCA9IGNvb2tpZTsKIAlzdHJ1Y3QgZW5jYXB0YWIgKnA7CkBA IC00MzEsMTAgKzQxOSw4IEBACiB9CiAKIHN0YXRpYyBpbnQKLW1hc2tfbWF0Y2goZXAsIHNw LCBkcCkKLQljb25zdCBzdHJ1Y3QgZW5jYXB0YWIgKmVwOwotCWNvbnN0IHN0cnVjdCBzb2Nr YWRkciAqc3A7Ci0JY29uc3Qgc3RydWN0IHNvY2thZGRyICpkcDsKK21hc2tfbWF0Y2goY29u c3Qgc3RydWN0IGVuY2FwdGFiICplcCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICpzcCwgCisg ICAgY29uc3Qgc3RydWN0IHNvY2thZGRyICpkcCkKIHsKIAlzdHJ1Y3Qgc29ja2FkZHJfc3Rv cmFnZSBzOwogCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGQ7CkBAIC00ODQsOSArNDcwLDcg QEAKIH0KIAogc3RhdGljIHZvaWQKLWVuY2FwX2ZpbGxhcmcobSwgZXApCi0Jc3RydWN0IG1i dWYgKm07Ci0JY29uc3Qgc3RydWN0IGVuY2FwdGFiICplcDsKK2VuY2FwX2ZpbGxhcmcoc3Ry dWN0IG1idWYgKm0sIGNvbnN0IHN0cnVjdCBlbmNhcHRhYiAqZXApCiB7CiAJc3RydWN0IG1f dGFnICp0YWc7CiAKQEAgLTQ5OCw4ICs0ODIsNyBAQAogfQogCiB2b2lkICoKLWVuY2FwX2dl dGFyZyhtKQotCXN0cnVjdCBtYnVmICptOworZW5jYXBfZ2V0YXJnKHN0cnVjdCBtYnVmICpt KQogewogCXZvaWQgKnAgPSBOVUxMOwogCXN0cnVjdCBtX3RhZyAqdGFnOwoAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAABpcF9mbG93LmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA MDEwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDI0NDUAMTAwNTc1MjYzNDYAMDExNzUy ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy ICAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9zeXMvbmV0 aW5ldC9pcF9mbG93LmMJMjAwNC0wNS0wMyAxMToxODoyNS4wMDAwMDAwMDAgLTA0MDAKKysr IGlwX2Zsb3cuYwkyMDA0LTA2LTAzIDAwOjAzOjI4LjAwMDAwMDAwMCAtMDQwMApAQCAtNzMs MTAgKzczLDcgQEAKIHN0YXRpYyBNQUxMT0NfREVGSU5FKE1fSVBGTE9XLCAiaXBfZmxvdyIs ICJJUCBmbG93Iik7CiAKIHN0YXRpYyB1bnNpZ25lZAotaXBmbG93X2hhc2goCi0Jc3RydWN0 IGluX2FkZHIgZHN0LAotCXN0cnVjdCBpbl9hZGRyIHNyYywKLQl1bnNpZ25lZCB0b3MpCitp cGZsb3dfaGFzaChzdHJ1Y3QgaW5fYWRkciBkc3QsIHN0cnVjdCBpbl9hZGRyIHNyYywgdW5z aWduZWQgdG9zKQogewogCXVuc2lnbmVkIGhhc2ggPSB0b3M7CiAJaW50IGlkeDsKQEAgLTg2 LDggKzgzLDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpcGZsb3cgKgotaXBmbG93X2xvb2t1 cCgKLQljb25zdCBzdHJ1Y3QgaXAgKmlwKQoraXBmbG93X2xvb2t1cChjb25zdCBzdHJ1Y3Qg aXAgKmlwKQogewogCXVuc2lnbmVkIGhhc2g7CiAJc3RydWN0IGlwZmxvdyAqaXBmOwpAQCAt MTA2LDggKzEwMiw3IEBACiB9CiAKIGludAotaXBmbG93X2Zhc3Rmb3J3YXJkKAotCXN0cnVj dCBtYnVmICptKQoraXBmbG93X2Zhc3Rmb3J3YXJkKHN0cnVjdCBtYnVmICptKQogewogCXN0 cnVjdCBpcCAqaXA7CiAJc3RydWN0IGlwZmxvdyAqaXBmOwpAQCAtMTc3LDggKzE3Miw3IEBA CiB9CiAMCiBzdGF0aWMgdm9pZAotaXBmbG93X2FkZHN0YXRzKAotCXN0cnVjdCBpcGZsb3cg KmlwZikKK2lwZmxvd19hZGRzdGF0cyhzdHJ1Y3QgaXBmbG93ICppcGYpCiB7CiAJaXBmLT5p cGZfcm8ucm9fcnQtPnJ0X3VzZSArPSBpcGYtPmlwZl91c2VzOwogCWlwc3RhdC5pcHNfY2Fu dGZvcndhcmQgKz0gaXBmLT5pcGZfZXJyb3JzICsgaXBmLT5pcGZfZHJvcHBlZDsKQEAgLTE4 Nyw4ICsxODEsNyBAQAogfQogCiBzdGF0aWMgdm9pZAotaXBmbG93X2ZyZWUoCi0Jc3RydWN0 IGlwZmxvdyAqaXBmKQoraXBmbG93X2ZyZWUoc3RydWN0IGlwZmxvdyAqaXBmKQogewogCWlu dCBzOwogCS8qCkBAIC0yMDYsOCArMTk5LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpcGZs b3cgKgotaXBmbG93X3JlYXAoCi0Jdm9pZCkKK2lwZmxvd19yZWFwKHZvaWQpCiB7CiAJc3Ry dWN0IGlwZmxvdyAqaXBmLCAqbWF5YmVfaXBmID0gTlVMTDsKIAlpbnQgaWR4OwpAQCAtMjUx LDggKzI0Myw3IEBACiB9CiAKIHZvaWQKLWlwZmxvd19zbG93dGltbygKLQl2b2lkKQoraXBm bG93X3Nsb3d0aW1vKHZvaWQpCiB7CiAJc3RydWN0IGlwZmxvdyAqaXBmOwogCWludCBpZHg7 CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAGlwX2dyZS5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAw NjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDYyNgAxMDA1NzUyNjM0NgAwMTE1NTcAIDAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tIC91c3Ivc3JjL3N5cy9uZXRpbmV0 L2lwX2dyZS5jCTIwMDQtMDItMTQgMTY6MTI6MzkuMDAwMDAwMDAwIC0wNTAwCisrKyBpcF9n cmUuYwkyMDA0LTA2LTAzIDAwOjA0OjEwLjAwMDAwMDAwMCAtMDQwMApAQCAtMjg5LDkgKzI4 OSw3IEBACiAgKiBGaW5kIHRoZSBncmUgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCBvdXIg c3JjL2RzdC9wcm90byBzZXQuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZ3JlX3NvZnRjICoKLWdy ZV9sb29rdXAobSwgcHJvdG8pCi0Jc3RydWN0IG1idWYgKm07Ci0JdV9pbnQ4X3QgcHJvdG87 CitncmVfbG9va3VwKHN0cnVjdCBtYnVmICptLCB1X2ludDhfdCBwcm90bykKIHsKIAlzdHJ1 Y3QgaXAgKmlwID0gbXRvZChtLCBzdHJ1Y3QgaXAgKik7CiAJc3RydWN0IGdyZV9zb2Z0YyAq c2M7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABpcF9pY21wLmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0 NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDI3MzQAMTAwNTc1MjYzNDYAMDExNzM0ACAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGlt AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9zeXMvbmV0aW5ldC9p cF9pY21wLmMJMjAwNC0wNi0wMiAxMDo0MzowMS4wMDAwMDAwMDAgLTA0MDAKKysrIGlwX2lj bXAuYwkyMDA0LTA2LTAzIDAwOjA2OjQxLjAwMDAwMDAwMCAtMDQwMApAQCAtMTM5LDExICsx MzksOCBAQAogICogaW4gcmVzcG9uc2UgdG8gYmFkIHBhY2tldCBpcC4KICAqLwogdm9pZAot aWNtcF9lcnJvcihuLCB0eXBlLCBjb2RlLCBkZXN0LCBkZXN0aWZwKQotCXN0cnVjdCBtYnVm ICpuOwotCWludCB0eXBlLCBjb2RlOwotCW5fbG9uZyBkZXN0OwotCXN0cnVjdCBpZm5ldCAq ZGVzdGlmcDsKK2ljbXBfZXJyb3Ioc3RydWN0IG1idWYgKm4sIGludCB0eXBlLCBpbnQgY29k ZSwgbl9sb25nIGRlc3QsIAorICAgIHN0cnVjdCBpZm5ldCAqZGVzdGlmcCkKIHsKIAlzdHJ1 Y3QgaXAgKm9pcCA9IG10b2Qobiwgc3RydWN0IGlwICopLCAqbmlwOwogCXVuc2lnbmVkIG9p cGxlbiA9IElQX1ZITF9ITChvaXAtPmlwX3ZobCkgPDwgMjsKQEAgLTI0Niw5ICsyNDMsNyBA QAogICogUHJvY2VzcyBhIHJlY2VpdmVkIElDTVAgbWVzc2FnZS4KICAqLwogdm9pZAotaWNt cF9pbnB1dChtLCBvZmYsIHByb3RvKQotCXN0cnVjdCBtYnVmICptOwotCWludCBvZmYsIHBy b3RvOworaWNtcF9pbnB1dChzdHJ1Y3QgbWJ1ZiAqbSwgaW50IG9mZiwgaW50IHByb3RvKQog ewogCWludCBobGVuID0gb2ZmOwogCXN0cnVjdCBpY21wICppY3A7CkBAIC02MDQsOCArNTk5 LDcgQEAKICAqIFJlZmxlY3QgdGhlIGlwIHBhY2tldCBiYWNrIHRvIHRoZSBzb3VyY2UKICAq Lwogc3RhdGljIHZvaWQKLWljbXBfcmVmbGVjdChtKQotCXN0cnVjdCBtYnVmICptOworaWNt cF9yZWZsZWN0KHN0cnVjdCBtYnVmICptKQogewogCXN0cnVjdCBpcCAqaXAgPSBtdG9kKG0s IHN0cnVjdCBpcCAqKTsKIAlzdHJ1Y3QgaWZhZGRyICppZmE7CkBAIC03NDQsMTAgKzczOCw3 IEBACiAgKiBhZnRlciBzdXBwbHlpbmcgYSBjaGVja3N1bS4KICAqLwogc3RhdGljIHZvaWQK LWljbXBfc2VuZChtLCBvcHRzLCBydCkKLQlzdHJ1Y3QgbWJ1ZiAqbTsKLQlzdHJ1Y3QgbWJ1 ZiAqb3B0czsKLQlzdHJ1Y3Qgcm91dGUgKnJ0OworaWNtcF9zZW5kKHN0cnVjdCBtYnVmICpt LCBzdHJ1Y3QgbWJ1ZiAqb3B0cywgc3RydWN0IHJvdXRlICpydCkKIHsKIAlzdHJ1Y3QgaXAg KmlwID0gbXRvZChtLCBzdHJ1Y3QgaXAgKik7CiAJaW50IGhsZW47CkBAIC03OTEsOSArNzgy LDcgQEAKICAqIGlzIHJldHVybmVkOyBvdGhlcndpc2UsIGEgc21hbGxlciB2YWx1ZSBpcyBy ZXR1cm5lZC4KICAqLwogc3RhdGljIGludAotaXBfbmV4dF9tdHUobXR1LCBkaXIpCi0JaW50 IG10dTsKLQlpbnQgZGlyOworaXBfbmV4dF9tdHUoaW50IG10dSwgaW50IGRpcikKIHsKIAlz dGF0aWMgaW50IG10dXRhYltdID0gewogCQk2NTUzNSwgMzIwMDAsIDE3OTE0LCA4MTY2LCA0 MzUyLCAyMDAyLCAxNDkyLCAxMDA2LCA1MDgsIDI5NiwKQEAgLTg5NSw1ICs4ODQsMyBAQAog fQogCiAjZW5kaWYKLQotCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlw X2lkLmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAw MDE3NTAAMDAwMTc1MAAwMDAwMDAwMDU0MwAxMDA1NzUyNjM0NgAwMTEzNzQAIDAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aW0AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tIC91c3Ivc3JjL3N5cy9uZXRpbmV0L2lwX2lk LmMJMjAwMy0wOC0yMyAwNzoxODowMC4wMDAwMDAwMDAgLTA0MDAKKysrIGlwX2lkLmMJMjAw NC0wNi0wMyAwMDowOToxNi4wMDAwMDAwMDAgLTA0MDAKQEAgLTk3LDE0ICs5Nyw4IEBACiAg KiBvZiAwIC0gKG1vZC0xKQogICovCiAKLSNpZmRlZiBfX1NURENfXwogc3RhdGljIHVfaW50 MTZfdAogcG1vZCh1X2ludDE2X3QgZ2VuLCB1X2ludDE2X3QgZXhwLCB1X2ludDE2X3QgbW9k KQotI2Vsc2UKLXN0YXRpYyB1X2ludDE2X3QKLXBtb2QoZ2VuLCBleHAsIG1vZCkKLQl1X2lu dDE2X3QgZ2VuLCBleHAsIG1vZDsKLSNlbmRpZgogewogCXVfaW50MTZfdCBzLCB0LCB1Owog CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpcF9p bnB1dC5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAx NzUwADAwMDE3NTAAMDAwMDAwMDE3MDEAMTAwNTc1MjYzNDYAMDEyMTM0ACAwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGltAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pcF9pbnB1 dC5jCTIwMDQtMDYtMDIgMTA6NDM6MDEuMDAwMDAwMDAwIC0wNDAwCisrKyBpcF9pbnB1dC5j CTIwMDQtMDYtMDMgMDA6MTI6MzIuMDAwMDAwMDAwIC0wNDAwCkBAIC0zNDksNyArMzQ5LDcg QEAKIC8qIERvIHRyYW5zcG9ydCBwcm90b2NvbCBwcm9jZXNzaW5nLiAqLwogc3RhdGljIHZv aWQKIHRyYW5zcG9ydF9wcm9jZXNzaW5nX29uY3B1KHN0cnVjdCBtYnVmICptLCBpbnQgaGxl biwgc3RydWN0IGlwICppcCwKLQkJCSAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqbmV4dGhvcCkK KyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gKm5leHRob3ApCiB7CiAJLyoKIAkgKiBTd2l0Y2gg b3V0IHRvIHByb3RvY29sJ3MgaW5wdXQgcm91dGluZS4KQEAgLTEwODEsNyArMTA4MSw3IEBA CiAKIHN0YXRpYyBzdHJ1Y3QgbWJ1ZiAqCiBpcF9yZWFzcyhzdHJ1Y3QgbWJ1ZiAqbSwgc3Ry dWN0IGlwcSAqZnAsIHN0cnVjdCBpcHEgKndoZXJlLAotCSB1X2ludDMyX3QgKmRpdmluZm8s IHVfaW50MTZfdCAqZGl2ZXJ0X3J1bGUpCisgICAgdV9pbnQzMl90ICpkaXZpbmZvLCB1X2lu dDE2X3QgKmRpdmVydF9ydWxlKQogewogCXN0cnVjdCBpcCAqaXAgPSBtdG9kKG0sIHN0cnVj dCBpcCAqKTsKIAlzdHJ1Y3QgbWJ1ZiAqcCA9IE5VTEwsICpxLCAqbnE7CkBAIC0yMTE4LDgg KzIxMTgsOCBAQAogfQogCiB2b2lkCi1pcF9zYXZlY29udHJvbChzdHJ1Y3QgaW5wY2IgKmlu cCwgc3RydWN0IG1idWYgKiptcCwgc3RydWN0IGlwICppcCwKLQkgICAgICAgc3RydWN0IG1i dWYgKm0pCitpcF9zYXZlY29udHJvbChzdHJ1Y3QgaW5wY2IgKmlucCwgc3RydWN0IG1idWYg KiptcCwKKyAgICBzdHJ1Y3QgaXAgKmlwLCBzdHJ1Y3QgbWJ1ZiAqbSkKIHsKIAlpZiAoaW5w LT5pbnBfc29ja2V0LT5zb19vcHRpb25zICYgU09fVElNRVNUQU1QKSB7CiAJCXN0cnVjdCB0 aW1ldmFsIHR2OwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABpcF9vdXRwdXQuYy5kaWZmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDYwMjUAMTAwNTc1 MjYzNDYAMDEyMzQxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNy L3NyYy9zeXMvbmV0aW5ldC9pcF9vdXRwdXQuYwkyMDA0LTA2LTAyIDEwOjQzOjAxLjAwMDAw MDAwMCAtMDQwMAorKysgaXBfb3V0cHV0LmMJMjAwNC0wNi0wMyAwMDoxNzoyNy4wMDAwMDAw MDAgLTA0MDAKQEAgLTEzMSw3ICsxMzEsNyBAQAogICovCiBpbnQKIGlwX291dHB1dChzdHJ1 Y3QgbWJ1ZiAqbTAsIHN0cnVjdCBtYnVmICpvcHQsIHN0cnVjdCByb3V0ZSAqcm8sCi0JaW50 IGZsYWdzLCBzdHJ1Y3QgaXBfbW9wdGlvbnMgKmltbywgc3RydWN0IGlucGNiICppbnApCisg ICAgaW50IGZsYWdzLCBzdHJ1Y3QgaXBfbW9wdGlvbnMgKmltbywgc3RydWN0IGlucGNiICpp bnApCiB7CiAJc3RydWN0IGlwICppcDsKIAlzdHJ1Y3QgaWZuZXQgKmlmcCA9IE5VTEw7CS8q IGtlZXAgY29tcGlsZXIgaGFwcHkgKi8KQEAgLTExMjUsNyArMTEyNSw3IEBACiAgKi8KIGlu dAogaXBfZnJhZ21lbnQoc3RydWN0IGlwICppcCwgc3RydWN0IG1idWYgKiptX2ZyYWcsIGlu dCBtdHUsCi0JICAgIHVfbG9uZyBpZl9od2Fzc2lzdF9mbGFncywgaW50IHN3X2NzdW0pCisg ICAgdV9sb25nIGlmX2h3YXNzaXN0X2ZsYWdzLCBpbnQgc3dfY3N1bSkKIHsKIAlpbnQgZXJy b3IgPSAwOwogCWludCBobGVuID0gSVBfVkhMX0hMKGlwLT5pcF92aGwpIDw8IDI7CkBAIC0x MzEzLDEwICsxMzEzLDcgQEAKICAqIFhYWCBUaGlzIHJvdXRpbmUgYXNzdW1lcyB0aGF0IHRo ZSBwYWNrZXQgaGFzIG5vIG9wdGlvbnMgaW4gcGxhY2UuCiAgKi8KIHN0YXRpYyBzdHJ1Y3Qg bWJ1ZiAqCi1pcF9pbnNlcnRvcHRpb25zKG0sIG9wdCwgcGhsZW4pCi0Jc3RydWN0IG1idWYg Km07Ci0Jc3RydWN0IG1idWYgKm9wdDsKLQlpbnQgKnBobGVuOworaXBfaW5zZXJ0b3B0aW9u cyhzdHJ1Y3QgbWJ1ZiAqbSwgc3RydWN0IG1idWYgKm9wdCwgaW50ICpwaGxlbikKIHsKIAlz dHJ1Y3QgaXBvcHRpb24gKnAgPSBtdG9kKG9wdCwgc3RydWN0IGlwb3B0aW9uICopOwogCXN0 cnVjdCBtYnVmICpuOwpAQCAtMTM2NCw4ICsxMzYxLDcgQEAKICAqIG9taXR0aW5nIHRob3Nl IG5vdCBjb3BpZWQgZHVyaW5nIGZyYWdtZW50YXRpb24uCiAgKi8KIGludAotaXBfb3B0Y29w eShpcCwganApCi0Jc3RydWN0IGlwICppcCwgKmpwOworaXBfb3B0Y29weShzdHJ1Y3QgaXAg KmlwLCBzdHJ1Y3QgaXAgKmpwKQogewogCXVfY2hhciAqY3AsICpkcDsKIAlpbnQgb3B0LCBv cHRsZW4sIGNudDsKQEAgLTE0MDcsOSArMTQwMyw3IEBACiAgKiBJUCBzb2NrZXQgb3B0aW9u IHByb2Nlc3NpbmcuCiAgKi8KIGludAotaXBfY3Rsb3V0cHV0KHNvLCBzb3B0KQotCXN0cnVj dCBzb2NrZXQgKnNvOwotCXN0cnVjdCBzb2Nrb3B0ICpzb3B0OworaXBfY3Rsb3V0cHV0KHN0 cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja29wdCAqc29wdCkKIHsKIAlzdHJ1Y3QJaW5w Y2IgKmlucCA9IHNvdG9pbnBjYihzbyk7CiAJaW50CWVycm9yLCBvcHR2YWw7CkBAIC0xNjcw LDEwICsxNjY0LDcgQEAKICAqIHdpdGggZGVzdGluYXRpb24gYWRkcmVzcyBpZiBzb3VyY2Ug cm91dGVkLgogICovCiBzdGF0aWMgaW50Ci1pcF9wY2JvcHRzKG9wdG5hbWUsIHBjYm9wdCwg bSkKLQlpbnQgb3B0bmFtZTsKLQlzdHJ1Y3QgbWJ1ZiAqKnBjYm9wdDsKLQlzdHJ1Y3QgbWJ1 ZiAqbTsKK2lwX3BjYm9wdHMoaW50IG9wdG5hbWUsIHN0cnVjdCBtYnVmICoqcGNib3B0LCBz dHJ1Y3QgbWJ1ZiAqbSkKIHsKIAlpbnQgY250LCBvcHRsZW47CiAJdV9jaGFyICpjcDsKQEAg LTE3NzksOSArMTc3MCw3IEBACiAgKiBmb2xsb3dpbmcgUkZDMTcyNCBzZWN0aW9uIDMuMywg MC4wLjAuMC84IGlzIGludGVycHJldGVkIGFzIGludGVyZmFjZSBpbmRleC4KICAqLwogc3Rh dGljIHN0cnVjdCBpZm5ldCAqCi1pcF9tdWx0aWNhc3RfaWYoYSwgaWZpbmRleHApCi0Jc3Ry dWN0IGluX2FkZHIgKmE7Ci0JaW50ICppZmluZGV4cDsKK2lwX211bHRpY2FzdF9pZihzdHJ1 Y3QgaW5fYWRkciAqYSwgaW50ICppZmluZGV4cCkKIHsKIAlpbnQgaWZpbmRleDsKIAlzdHJ1 Y3QgaWZuZXQgKmlmcDsKQEAgLTE4MDUsOSArMTc5NCw3IEBACiAgKiBTZXQgdGhlIElQIG11 bHRpY2FzdCBvcHRpb25zIGluIHJlc3BvbnNlIHRvIHVzZXIgc2V0c29ja29wdCgpLgogICov CiBzdGF0aWMgaW50Ci1pcF9zZXRtb3B0aW9ucyhzb3B0LCBpbW9wKQotCXN0cnVjdCBzb2Nr b3B0ICpzb3B0OwotCXN0cnVjdCBpcF9tb3B0aW9ucyAqKmltb3A7CitpcF9zZXRtb3B0aW9u cyhzdHJ1Y3Qgc29ja29wdCAqc29wdCwgc3RydWN0IGlwX21vcHRpb25zICoqaW1vcCkKIHsK IAlpbnQgZXJyb3IgPSAwOwogCWludCBpOwpAQCAtMjEwMyw5ICsyMDkwLDcgQEAKICAqIFJl dHVybiB0aGUgSVAgbXVsdGljYXN0IG9wdGlvbnMgaW4gcmVzcG9uc2UgdG8gdXNlciBnZXRz b2Nrb3B0KCkuCiAgKi8KIHN0YXRpYyBpbnQKLWlwX2dldG1vcHRpb25zKHNvcHQsIGltbykK LQlzdHJ1Y3Qgc29ja29wdCAqc29wdDsKLQlzdHJ1Y3QgaXBfbW9wdGlvbnMgKmltbzsKK2lw X2dldG1vcHRpb25zKHN0cnVjdCBzb2Nrb3B0ICpzb3B0LCBzdHJ1Y3QgaXBfbW9wdGlvbnMg KmltbykKIHsKIAlzdHJ1Y3QgaW5fYWRkciBhZGRyOwogCXN0cnVjdCBpbl9pZmFkZHIgKmlh OwpAQCAtMjE2OSw4ICsyMTU0LDcgQEAKICAqIERpc2NhcmQgdGhlIElQIG11bHRpY2FzdCBv cHRpb25zLgogICovCiB2b2lkCi1pcF9mcmVlbW9wdGlvbnMoaW1vKQotCXN0cnVjdCBpcF9t b3B0aW9ucyAqaW1vOworaXBfZnJlZW1vcHRpb25zKHN0cnVjdCBpcF9tb3B0aW9ucyAqaW1v KQogewogCWludCBpOwogCkBAIC0yMTg5LDExICsyMTczLDggQEAKICAqIHJlcGxpY2F0aW5n IHRoYXQgY29kZSBoZXJlLgogICovCiBzdGF0aWMgdm9pZAotaXBfbWxvb3BiYWNrKGlmcCwg bSwgZHN0LCBobGVuKQotCXN0cnVjdCBpZm5ldCAqaWZwOwotCXN0cnVjdCBtYnVmICptOwot CXN0cnVjdCBzb2NrYWRkcl9pbiAqZHN0OwotCWludCBobGVuOworaXBfbWxvb3BiYWNrKHN0 cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgbWJ1ZiAqbSwKKyAgICBzdHJ1Y3Qgc29ja2FkZHJf aW4gKmRzdCwgaW50IGhsZW4pCiB7CiAJc3RydWN0IGlwICppcDsKIAlzdHJ1Y3QgbWJ1ZiAq Y29weW07CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAdGNwX2RlYnVnLmMuZGlmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAxMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwNjcyADEwMDU3NTI2MzQ2ADAx MjI0NwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 c3RhciAgAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9zcmMvc3lz L25ldGluZXQvdGNwX2RlYnVnLmMJMjAwMy0wNi0xNyAwMDoyODo1MS4wMDAwMDAwMDAgLTA0 MDAKKysrIHRjcF9kZWJ1Zy5jCTIwMDQtMDYtMDMgMDA6MTk6MjMuMDAwMDAwMDAwIC0wNDAw CkBAIC04MSwxMiArODEsOCBAQAogICogVGNwIGRlYnVnIHJvdXRpbmVzCiAgKi8KIHZvaWQK LXRjcF90cmFjZShhY3QsIG9zdGF0ZSwgdHAsIGlwZ2VuLCB0aCwgcmVxKQotCXNob3J0IGFj dCwgb3N0YXRlOwotCXN0cnVjdCB0Y3BjYiAqdHA7Ci0Jdm9pZCAqaXBnZW47Ci0Jc3RydWN0 IHRjcGhkciAqdGg7Ci0JaW50IHJlcTsKK3RjcF90cmFjZShzaG9ydCBhY3QsIHNob3J0IG9z dGF0ZSwgc3RydWN0IHRjcGNiICp0cCwgdm9pZCAqaXBnZW4sIAorICAgIHN0cnVjdCB0Y3Bo ZHIgKnRoLCBpbnQgcmVxKQogewogI2lmZGVmIElORVQ2CiAJaW50IGlzaXB2NjsKAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHRjcF9pbnB1dC5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMTAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwNDU3MwAxMDA1NzUyNjM0NgAwMTIz MjQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpbQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tIC91c3Ivc3JjL3N5cy9u ZXRpbmV0L3RjcF9pbnB1dC5jCTIwMDQtMDUtMjAgMDA6Mjg6NTIuMDAwMDAwMDAwIC0wNDAw CisrKyB0Y3BfaW5wdXQuYwkyMDA0LTA2LTAzIDAwOjI4OjM5LjAwMDAwMDAwMCAtMDQwMApA QCAtMTkxLDExICsxOTEsNyBAQAogCSh0cC0+dF9mbGFncyAmIFRGX1JYV0lOMFNFTlQpID09 IDApCiAKIHN0YXRpYyBpbnQKLXRjcF9yZWFzcyh0cCwgdGgsIHRsZW5wLCBtKQotCXN0cnVj dCB0Y3BjYiAqdHA7Ci0Jc3RydWN0IHRjcGhkciAqdGg7Ci0JaW50ICp0bGVucDsKLQlzdHJ1 Y3QgbWJ1ZiAqbTsKK3RjcF9yZWFzcyhzdHJ1Y3QgdGNwY2IgKnRwLCBzdHJ1Y3QgdGNwaGRy ICp0aCwgaW50ICp0bGVucCwgc3RydWN0IG1idWYgKm0pCiB7CiAJc3RydWN0IHRzZWdfcWVu dCAqcTsKIAlzdHJ1Y3QgdHNlZ19xZW50ICpwID0gTlVMTDsKQEAgLTM0NSw5ICszNDEsNyBA QAogICovCiAjaWZkZWYgSU5FVDYKIGludAotdGNwNl9pbnB1dChtcCwgb2ZmcCwgcHJvdG8p Ci0Jc3RydWN0IG1idWYgKiptcDsKLQlpbnQgKm9mZnAsIHByb3RvOwordGNwNl9pbnB1dChz dHJ1Y3QgbWJ1ZiAqKm1wLCBpbnQgKm9mZnAsIGludCBwcm90bykKIHsKIAlzdHJ1Y3QgbWJ1 ZiAqbSA9ICptcDsKIAlzdHJ1Y3QgaW42X2lmYWRkciAqaWE2OwpAQCAtMzc0LDkgKzM2OCw3 IEBACiAjZW5kaWYKIAogdm9pZAotdGNwX2lucHV0KG0sIG9mZjAsIHByb3RvKQotCXN0cnVj dCBtYnVmICptOwotCWludCBvZmYwLCBwcm90bzsKK3RjcF9pbnB1dChzdHJ1Y3QgbWJ1ZiAq bSwgaW50IG9mZjAsIGludCBwcm90bykKIHsKIAlzdHJ1Y3QgdGNwaGRyICp0aDsKIAlzdHJ1 Y3QgaXAgKmlwID0gTlVMTDsKQEAgLTIzODgsMTAgKzIzODAsNyBAQAogICogUGFyc2UgVENQ IG9wdGlvbnMgYW5kIHBsYWNlIGluIHRjcG9wdC4KICAqLwogc3RhdGljIHZvaWQKLXRjcF9k b29wdGlvbnModG8sIGNwLCBjbnQsIGlzX3N5bikKLQlzdHJ1Y3QgdGNwb3B0ICp0bzsKLQl1 X2NoYXIgKmNwOwotCWludCBjbnQ7Cit0Y3BfZG9vcHRpb25zKHN0cnVjdCB0Y3BvcHQgKnRv LCB1X2NoYXIgY3AsIGludCBjbnQsIGludCBpc19zeW4pCiB7CiAJaW50IG9wdCwgb3B0bGVu OwogCkBAIC0yNDc4LDEzICsyNDY3LDExIEBACiAgKiBpdCBkb2Vzbid0IGFwcGVhciBpbiB0 aGUgdXNlcidzIGRhdGEgcXVldWUuCiAgKiBJdCBpcyBzdGlsbCByZWZsZWN0ZWQgaW4gdGhl IHNlZ21lbnQgbGVuZ3RoIGZvcgogICogc2VxdWVuY2luZyBwdXJwb3Nlcy4KKyAqCisgKiBp bnQgb2ZmOiBkZWxheWVkIHRvIGJlIGRyb3BwZWQgaGRybGVuCiAgKi8KIHN0YXRpYyB2b2lk Ci10Y3BfcHVsbG91dG9mYmFuZChzbywgdGgsIG0sIG9mZikKLQlzdHJ1Y3Qgc29ja2V0ICpz bzsKLQlzdHJ1Y3QgdGNwaGRyICp0aDsKLQlzdHJ1Y3QgbWJ1ZiAqbTsKLQlpbnQgb2ZmOwkJ LyogZGVsYXllZCB0byBiZSBkcm9wZWQgaGRybGVuICovCit0Y3BfcHVsbG91dG9mYmFuZChz dHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHRjcGhkciAqdGgsIHN0cnVjdCBtYnVmICptLCBp bnQgb2ZmKQogewogCWludCBjbnQgPSBvZmYgKyB0aC0+dGhfdXJwIC0gMTsKIApAQCAtMjUx NCw5ICsyNTAxLDcgQEAKICAqIGFuZCB1cGRhdGUgYXZlcmFnZXMgYW5kIGN1cnJlbnQgdGlt ZW91dC4KICAqLwogc3RhdGljIHZvaWQKLXRjcF94bWl0X3RpbWVyKHRwLCBydHQpCi0Jc3Ry dWN0IHRjcGNiICp0cDsKLQlpbnQgcnR0OwordGNwX3htaXRfdGltZXIoc3RydWN0IHRjcGNi ICp0cCwgaW50IHJ0dCkKIHsKIAlpbnQgZGVsdGE7CiAKQEAgLTI2MTksOSArMjYwNCw3IEBA CiAgKiBNU1Mgb2Ygb3VyIHBlZXIuCiAgKi8KIHZvaWQKLXRjcF9tc3ModHAsIG9mZmVyKQot CXN0cnVjdCB0Y3BjYiAqdHA7Ci0JaW50IG9mZmVyOwordGNwX21zcyhzdHJ1Y3QgdGNwY2Ig KnRwLCBpbnQgb2ZmZXIpCiB7CiAJc3RydWN0IHJ0ZW50cnkgKnJ0OwogCXN0cnVjdCBpZm5l dCAqaWZwOwpAQCAtMjgxNCw4ICsyNzk3LDcgQEAKICAqIERldGVybWluZSB0aGUgTVNTIG9w dGlvbiB0byBzZW5kIG9uIGFuIG91dGdvaW5nIFNZTi4KICAqLwogaW50Ci10Y3BfbXNzb3B0 KHRwKQotCXN0cnVjdCB0Y3BjYiAqdHA7Cit0Y3BfbXNzb3B0KHN0cnVjdCB0Y3BjYiAqdHAp CiB7CiAJc3RydWN0IHJ0ZW50cnkgKnJ0OwogI2lmZGVmIElORVQ2CkBAIC0yODQ3LDkgKzI4 MjksNyBAQAogICogYmUgc3RhcnRlZCBhZ2Fpbi4KICAqLwogc3RhdGljIHZvaWQKLXRjcF9u ZXdyZW5vX3BhcnRpYWxfYWNrKHRwLCB0aCkKLQlzdHJ1Y3QgdGNwY2IgKnRwOwotCXN0cnVj dCB0Y3BoZHIgKnRoOwordGNwX25ld3Jlbm9fcGFydGlhbF9hY2soc3RydWN0IHRjcGNiICp0 cCwgc3RydWN0IHRjcGhkciAqdGgpCiB7CiAJdGNwX3NlcSBvbnh0ID0gdHAtPnNuZF9ueHQ7 CiAJdV9sb25nICBvY3duZCA9IHRwLT5zbmRfY3duZDsKAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAHRjcF9vdXRwdXQuYy5kaWZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAw NjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMTA0MAAxMDA1NzUyNjM0NgAwMTI1MDcAIDAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tIC91c3Ivc3JjL3N5cy9uZXRpbmV0 L3RjcF9vdXRwdXQuYwkyMDA0LTA2LTAyIDEwOjQzOjAxLjAwMDAwMDAwMCAtMDQwMAorKysg dGNwX291dHB1dC5jCTIwMDQtMDYtMDMgMDA6Mjk6MzIuMDAwMDAwMDAwIC0wNDAwCkBAIC0x MDYsOCArMTA2LDcgQEAKICAqIFRjcCBvdXRwdXQgcm91dGluZTogZmlndXJlIG91dCB3aGF0 IHNob3VsZCBiZSBzZW50IGFuZCBzZW5kIGl0LgogICovCiBpbnQKLXRjcF9vdXRwdXQodHAp Ci0Jc3RydWN0IHRjcGNiICp0cDsKK3RjcF9vdXRwdXQoc3RydWN0IHRjcGNiICp0cCkKIHsK IAlzdHJ1Y3QgaW5wY2IgKiBjb25zdCBpbnAgPSB0cC0+dF9pbnBjYjsKIAlzdHJ1Y3Qgc29j a2V0ICpzbyA9IGlucC0+aW5wX3NvY2tldDsKQEAgLTk0MSw4ICs5NDAsNyBAQAogfQogCiB2 b2lkCi10Y3Bfc2V0cGVyc2lzdCh0cCkKLQlzdHJ1Y3QgdGNwY2IgKnRwOwordGNwX3NldHBl cnNpc3Qoc3RydWN0IHRjcGNiICp0cCkKIHsKIAlpbnQgdCA9ICgodHAtPnRfc3J0dCA+PiAy KSArIHRwLT50X3J0dHZhcikgPj4gMTsKIAlpbnQgdHQ7CgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRjcF9zeW5jYWNoZS5jLmRpZmYAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwNjMw NAAxMDA1NzUyNjM0NgAwMTI3NTQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA LS0tIC91c3Ivc3JjL3N5cy9uZXRpbmV0L3RjcF9zeW5jYWNoZS5jCTIwMDQtMDYtMDIgMTA6 NDM6MDEuMDAwMDAwMDAwIC0wNDAwCisrKyB0Y3Bfc3luY2FjaGUuYwkyMDA0LTA2LTAzIDAw OjM2OjE4LjAwMDAwMDAwMCAtMDQwMApAQCAtMjY5LDkgKzI2OSw3IEBACiB9CiAKIHN0YXRp YyB2b2lkCi1zeW5jYWNoZV9pbnNlcnQoc2MsIHNjaCkKLQlzdHJ1Y3Qgc3luY2FjaGUgKnNj OwotCXN0cnVjdCBzeW5jYWNoZV9oZWFkICpzY2g7CitzeW5jYWNoZV9pbnNlcnQoc3RydWN0 IHN5bmNhY2hlICpzYywgc3RydWN0IHN5bmNhY2hlX2hlYWQgKnNjaCkKIHsKIAlzdHJ1Y3Qg c3luY2FjaGUgKnNjMjsKIAlpbnQgaTsKQEAgLTMxNiw5ICszMTQsNyBAQAogfQogCiBzdGF0 aWMgdm9pZAotc3luY2FjaGVfZHJvcChzYywgc2NoKQotCXN0cnVjdCBzeW5jYWNoZSAqc2M7 Ci0Jc3RydWN0IHN5bmNhY2hlX2hlYWQgKnNjaDsKK3N5bmNhY2hlX2Ryb3Aoc3RydWN0IHN5 bmNhY2hlICpzYywgc3RydWN0IHN5bmNhY2hlX2hlYWQgKnNjaCkKIHsKIAogCWlmIChzY2gg PT0gTlVMTCkgewpAQCAtMzUwLDggKzM0Niw3IEBACiAgKiBJZiB3ZSBoYXZlIHJldHJhbnNt aXR0ZWQgYW4gZW50cnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzLCBleHBpcmUgaXQu CiAgKi8KIHN0YXRpYyB2b2lkCi1zeW5jYWNoZV90aW1lcih4c2xvdCkKLQl2b2lkICp4c2xv dDsKK3N5bmNhY2hlX3RpbWVyKHZvaWQgKnhzbG90KQogewogCWludHB0cl90IHNsb3QgPSAo aW50cHRyX3QpeHNsb3Q7CiAJc3RydWN0IHN5bmNhY2hlICpzYywgKm5zYzsKQEAgLTQwMSw5 ICszOTYsNyBAQAogICogRmluZCBhbiBlbnRyeSBpbiB0aGUgc3luY2FjaGUuCiAgKi8KIHN0 cnVjdCBzeW5jYWNoZSAqCi1zeW5jYWNoZV9sb29rdXAoaW5jLCBzY2hwKQotCXN0cnVjdCBp bl9jb25uaW5mbyAqaW5jOwotCXN0cnVjdCBzeW5jYWNoZV9oZWFkICoqc2NocDsKK3N5bmNh Y2hlX2xvb2t1cChzdHJ1Y3QgaW5fY29ubmluZm8gKmluYywgc3RydWN0IHN5bmNhY2hlX2hl YWQgKipzY2hwKQogewogCXN0cnVjdCBzeW5jYWNoZSAqc2M7CiAJc3RydWN0IHN5bmNhY2hl X2hlYWQgKnNjaDsKQEAgLTQ0MCw5ICs0MzMsNyBAQAogICogY29ubmVjdGlvbiBpcyBpbiB0 aGUgc3luIGNhY2hlLiAgSWYgaXQgaXMsIHphcCBpdC4KICAqLwogdm9pZAotc3luY2FjaGVf Y2hrcnN0KGluYywgdGgpCi0Jc3RydWN0IGluX2Nvbm5pbmZvICppbmM7Ci0Jc3RydWN0IHRj cGhkciAqdGg7CitzeW5jYWNoZV9jaGtyc3Qoc3RydWN0IGluX2Nvbm5pbmZvICppbmMsIHN0 cnVjdCB0Y3BoZHIgKnRoKQogewogCXN0cnVjdCBzeW5jYWNoZSAqc2M7CiAJc3RydWN0IHN5 bmNhY2hlX2hlYWQgKnNjaDsKQEAgLTQ3MSw4ICs0NjIsNyBAQAogfQogCiB2b2lkCi1zeW5j YWNoZV9iYWRhY2soaW5jKQotCXN0cnVjdCBpbl9jb25uaW5mbyAqaW5jOworc3luY2FjaGVf YmFkYWNrKHN0cnVjdCBpbl9jb25uaW5mbyAqaW5jKQogewogCXN0cnVjdCBzeW5jYWNoZSAq c2M7CiAJc3RydWN0IHN5bmNhY2hlX2hlYWQgKnNjaDsKQEAgLTQ4NSw5ICs0NzUsNyBAQAog fQogCiB2b2lkCi1zeW5jYWNoZV91bnJlYWNoKGluYywgdGgpCi0Jc3RydWN0IGluX2Nvbm5p bmZvICppbmM7Ci0Jc3RydWN0IHRjcGhkciAqdGg7CitzeW5jYWNoZV91bnJlYWNoKHN0cnVj dCBpbl9jb25uaW5mbyAqaW5jLCBzdHJ1Y3QgdGNwaGRyICp0aCkKIHsKIAlzdHJ1Y3Qgc3lu Y2FjaGUgKnNjOwogCXN0cnVjdCBzeW5jYWNoZV9oZWFkICpzY2g7CkBAIC01MjEsOSArNTA5 LDcgQEAKICAqIEJ1aWxkIGEgbmV3IFRDUCBzb2NrZXQgc3RydWN0dXJlIGZyb20gYSBzeW5j YWNoZSBlbnRyeS4KICAqLwogc3RhdGljIHN0cnVjdCBzb2NrZXQgKgotc3luY2FjaGVfc29j a2V0KHNjLCBsc28pCi0Jc3RydWN0IHN5bmNhY2hlICpzYzsKLQlzdHJ1Y3Qgc29ja2V0ICps c287CitzeW5jYWNoZV9zb2NrZXQoc3RydWN0IHN5bmNhY2hlICpzYywgc3RydWN0IHNvY2tl dCAqbHNvKQogewogCXN0cnVjdCBpbnBjYiAqaW5wID0gTlVMTDsKIAlzdHJ1Y3Qgc29ja2V0 ICpzbzsKQEAgLTcwNCwxMSArNjkwLDggQEAKICAqIHRoZSBTWU4tUkVDRUlWRUQgc3RhdGUu CiAgKi8KIGludAotc3luY2FjaGVfZXhwYW5kKGluYywgdGgsIHNvcCwgbSkKLQlzdHJ1Y3Qg aW5fY29ubmluZm8gKmluYzsKLQlzdHJ1Y3QgdGNwaGRyICp0aDsKLQlzdHJ1Y3Qgc29ja2V0 ICoqc29wOwotCXN0cnVjdCBtYnVmICptOworc3luY2FjaGVfZXhwYW5kKHN0cnVjdCBpbl9j b25uaW5mbyAqaW5jLCBzdHJ1Y3QgdGNwaGRyICp0aCwKKyAgICBzdHJ1Y3Qgc29ja2V0ICoq c29wLCBzdHJ1Y3QgbWJ1ZiAqbSkKIHsKIAlzdHJ1Y3Qgc3luY2FjaGUgKnNjOwogCXN0cnVj dCBzeW5jYWNoZV9oZWFkICpzY2g7CkBAIC03NzYsMTIgKzc1OSw4IEBACiAgKiB0aGUgZGF0 YSwgd2UgYXZvaWQgdGhpcyBEb1Mgc2NlbmFyaW8uCiAgKi8KIGludAotc3luY2FjaGVfYWRk KGluYywgdG8sIHRoLCBzb3AsIG0pCi0Jc3RydWN0IGluX2Nvbm5pbmZvICppbmM7Ci0Jc3Ry dWN0IHRjcG9wdCAqdG87Ci0Jc3RydWN0IHRjcGhkciAqdGg7Ci0Jc3RydWN0IHNvY2tldCAq KnNvcDsKLQlzdHJ1Y3QgbWJ1ZiAqbTsKK3N5bmNhY2hlX2FkZChzdHJ1Y3QgaW5fY29ubmlu Zm8gKmluYywgc3RydWN0IHRjcG9wdCAqdG8sIHN0cnVjdCB0Y3BoZHIgKnRoLCAKKyAgICBz dHJ1Y3Qgc29ja2V0ICoqc29wLCBzdHJ1Y3QgbWJ1ZiAqbSkKIHsKIAlzdHJ1Y3QgdGNwY2Ig KnRwOwogCXN0cnVjdCBzb2NrZXQgKnNvOwpAQCAtOTgwLDkgKzk1OSw3IEBACiB9CiAKIHN0 YXRpYyBpbnQKLXN5bmNhY2hlX3Jlc3BvbmQoc2MsIG0pCi0Jc3RydWN0IHN5bmNhY2hlICpz YzsKLQlzdHJ1Y3QgbWJ1ZiAqbTsKK3N5bmNhY2hlX3Jlc3BvbmQoc3RydWN0IHN5bmNhY2hl ICpzYywgc3RydWN0IG1idWYgKm0pCiB7CiAJdV9pbnQ4X3QgKm9wdHA7CiAJaW50IG9wdGxl biwgZXJyb3I7CkBAIC0xMjYzLDEwICsxMjQwLDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBz eW5jYWNoZSAqCi1zeW5jb29raWVfbG9va3VwKGluYywgdGgsIHNvKQotCXN0cnVjdCBpbl9j b25uaW5mbyAqaW5jOwotCXN0cnVjdCB0Y3BoZHIgKnRoOwotCXN0cnVjdCBzb2NrZXQgKnNv Oworc3luY29va2llX2xvb2t1cChzdHJ1Y3QgaW5fY29ubmluZm8gKmluYywgc3RydWN0IHRj cGhkciAqdGgsIHN0cnVjdCBzb2NrZXQgKnNvKQogewogCXVfaW50MzJfdCBtZDVfYnVmZmVy WzRdOwogCXN0cnVjdCBzeW5jYWNoZSAqc2M7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB0Y3BfdGltZXIuYy5kaWZmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDIwMjEAMTAwNTc1 MjYzNDYAMDEyMjY3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAdGltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aW0AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLSAvdXNy L3NyYy9zeXMvbmV0aW5ldC90Y3BfdGltZXIuYwkyMDA0LTA1LTIwIDAwOjMyOjU5LjAwMDAw MDAwMCAtMDQwMAorKysgdGNwX3RpbWVyLmMJMjAwNC0wNi0wMyAwMDozODozOC4wMDAwMDAw MDAgLTA0MDAKQEAgLTE1Miw4ICsxNTIsNyBAQAogICogQ2FuY2VsIGFsbCB0aW1lcnMgZm9y IFRDUCB0cC4KICAqLwogdm9pZAotdGNwX2NhbmNlbHRpbWVycyh0cCkKLQlzdHJ1Y3QgdGNw Y2IgKnRwOwordGNwX2NhbmNlbHRpbWVycyhzdHJ1Y3QgdGNwY2IgKnRwKQogewogCWNhbGxv dXRfc3RvcCh0cC0+dHRfMm1zbCk7CiAJY2FsbG91dF9zdG9wKHRwLT50dF9wZXJzaXN0KTsK QEAgLTE3Myw4ICsxNzIsNyBAQAogICogVENQIHRpbWVyIHByb2Nlc3NpbmcuCiAgKi8KIHZv aWQKLXRjcF90aW1lcl9kZWxhY2soeHRwKQotCXZvaWQgKnh0cDsKK3RjcF90aW1lcl9kZWxh Y2sodm9pZCAqeHRwKQogewogCXN0cnVjdCB0Y3BjYiAqdHAgPSB4dHA7CiAJaW50IHM7CkBA IC0xOTMsOCArMTkxLDcgQEAKIH0KIAogdm9pZAotdGNwX3RpbWVyXzJtc2woeHRwKQotCXZv aWQgKnh0cDsKK3RjcF90aW1lcl8ybXNsKHZvaWQgKnh0cCkKIHsKIAlzdHJ1Y3QgdGNwY2Ig KnRwID0geHRwOwogCWludCBzOwpAQCAtMjMxLDggKzIyOCw3IEBACiB9CiAKIHZvaWQKLXRj cF90aW1lcl9rZWVwKHh0cCkKLQl2b2lkICp4dHA7Cit0Y3BfdGltZXJfa2VlcCh2b2lkICp4 dHApCiB7CiAJc3RydWN0IHRjcGNiICp0cCA9IHh0cDsKIAlzdHJ1Y3QgdGNwdGVtcCAqdF90 ZW1wbGF0ZTsKQEAgLTMwNSw4ICszMDEsNyBAQAogfQogCiB2b2lkCi10Y3BfdGltZXJfcGVy c2lzdCh4dHApCi0Jdm9pZCAqeHRwOwordGNwX3RpbWVyX3BlcnNpc3Qodm9pZCAqeHRwKQog ewogCXN0cnVjdCB0Y3BjYiAqdHAgPSB4dHA7CiAJaW50IHM7CkBAIC0zOTAsOCArMzg1LDcg QEAKIH0KIAogdm9pZAotdGNwX3RpbWVyX3JleG10KHh0cCkKLQl2b2lkICp4dHA7Cit0Y3Bf dGltZXJfcmV4bXQodm9pZCAqeHRwKQogewogCXN0cnVjdCB0Y3BjYiAqdHAgPSB4dHA7CiAJ aW50IHM7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHRjcF91c3JyZXEuYy5kaWZmAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMTAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMjUwNgAxMDA1NzUyNjM0 NgAwMTI1MDAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIAB0aW0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpbQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tIC91c3Ivc3Jj L3N5cy9uZXRpbmV0L3RjcF91c3JyZXEuYwkyMDA0LTA1LTIwIDAwOjMyOjU5LjAwMDAwMDAw MCAtMDQwMAorKysgdGNwX3VzcnJlcS5jCTIwMDQtMDYtMDMgMDA6NDA6NTIuMDAwMDAwMDAw IC0wNDAwCkBAIC01NTgsNyArNTU4LDcgQEAKICAqLwogc3RhdGljIGludAogdGNwX3Vzcl9z ZW5kKHN0cnVjdCBzb2NrZXQgKnNvLCBpbnQgZmxhZ3MsIHN0cnVjdCBtYnVmICptLCAKLQkg ICAgIHN0cnVjdCBzb2NrYWRkciAqbmFtLCBzdHJ1Y3QgbWJ1ZiAqY29udHJvbCwgc3RydWN0 IHRocmVhZCAqdGQpCisgICAgc3RydWN0IHNvY2thZGRyICpuYW0sIHN0cnVjdCBtYnVmICpj b250cm9sLCBzdHJ1Y3QgdGhyZWFkICp0ZCkKIHsKIAlpbnQgcyA9IHNwbG5ldCgpOwogCWlu dCBlcnJvciA9IDA7CkBAIC03NDUsNyArNzQ1LDcgQEAKIAogc3RhdGljIGludAogdGNwX2Nv bm5lY3Rfb25jcHUoc3RydWN0IHRjcGNiICp0cCwgc3RydWN0IHNvY2thZGRyX2luICpzaW4s Ci0JCSAgc3RydWN0IHNvY2thZGRyX2luICppZl9zaW4pCisgICAgc3RydWN0IHNvY2thZGRy X2luICppZl9zaW4pCiB7CiAJc3RydWN0IGlucGNiICppbnAgPSB0cC0+dF9pbnBjYiwgKm9p bnA7CiAJc3RydWN0IHNvY2tldCAqc28gPSBpbnAtPmlucF9zb2NrZXQ7CkBAIC05ODAsOSAr OTgwLDcgQEAKICAqIHNwbG5ldCgpIGFueSBtb3JlLiAgVGhpcyBuZWVkcyBtb3JlIGV4YW1p bmF0aW9uLikKICAqLwogaW50Ci10Y3BfY3Rsb3V0cHV0KHNvLCBzb3B0KQotCXN0cnVjdCBz b2NrZXQgKnNvOwotCXN0cnVjdCBzb2Nrb3B0ICpzb3B0OwordGNwX2N0bG91dHB1dChzdHJ1 Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2tvcHQgKnNvcHQpCiB7CiAJaW50CWVycm9yLCBv cHQsIG9wdHZhbCwgczsKIAlzdHJ1Y3QJaW5wY2IgKmlucDsKQEAgLTExNjcsOCArMTE2NSw3 IEBACiAgKiBzZW5kIHNlZ21lbnQgdG8gcGVlciAod2l0aCBGSU4pLgogICovCiBzdGF0aWMg c3RydWN0IHRjcGNiICoKLXRjcF9kaXNjb25uZWN0KHRwKQotCXN0cnVjdCB0Y3BjYiAqdHA7 Cit0Y3BfZGlzY29ubmVjdChzdHJ1Y3QgdGNwY2IgKnRwKQogewogCXN0cnVjdCBzb2NrZXQg KnNvID0gdHAtPnRfaW5wY2ItPmlucF9zb2NrZXQ7CiAKQEAgLTExOTcsOCArMTE5NCw3IEBA CiAgKiBXZSBjYW4gbGV0IHRoZSB1c2VyIGV4aXQgZnJvbSB0aGUgY2xvc2UgYXMgc29vbiBh cyB0aGUgRklOIGlzIGFja2VkLgogICovCiBzdGF0aWMgc3RydWN0IHRjcGNiICoKLXRjcF91 c3JjbG9zZWQodHApCi0Jc3RydWN0IHRjcGNiICp0cDsKK3RjcF91c3JjbG9zZWQoc3RydWN0 IHRjcGNiICp0cCkKIHsKIAogCXN3aXRjaCAodHAtPnRfc3RhdGUpIHsKAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAdWRwX3VzcnJlcS5jLmRpZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAxMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAzNTYxADEwMDU3NTI2MzQ2ADAx MjUwNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 c3RhciAgAHRpbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGltAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0gL3Vzci9zcmMvc3lz L25ldGluZXQvdWRwX3VzcnJlcS5jCTIwMDQtMDYtMDIgMTA6NDM6MDEuMDAwMDAwMDAwIC0w NDAwCisrKyB1ZHBfdXNycmVxLmMJMjAwNC0wNi0wMyAwMDo0Mzo1Ni4wMDAwMDAwMDAgLTA0 MDAKQEAgLTE4OCw5ICsxODgsNyBAQAogfQogCiB2b2lkCi11ZHBfaW5wdXQobSwgb2ZmLCBw cm90bykKLQlzdHJ1Y3QgbWJ1ZiAqbTsKLQlpbnQgb2ZmLCBwcm90bzsKK3VkcF9pbnB1dChz dHJ1Y3QgbWJ1ZiAqbSwgaW50IG9mZiwgaW50IHByb3RvKQogewogCWludCBpcGhsZW4gPSBv ZmY7CiAJc3RydWN0IGlwICppcDsKQEAgLTQ5NSwxMSArNDkzLDcgQEAKICAqIGNhbGxlciBt dXN0IHByb3Blcmx5IGluaXQgdWRwX2lwNiBhbmQgdWRwX2luNiBiZWZvcmVoYW5kLgogICov CiBzdGF0aWMgdm9pZAotdWRwX2FwcGVuZChsYXN0LCBpcCwgbiwgb2ZmKQotCXN0cnVjdCBp bnBjYiAqbGFzdDsKLQlzdHJ1Y3QgaXAgKmlwOwotCXN0cnVjdCBtYnVmICpuOwotCWludCBv ZmY7Cit1ZHBfYXBwZW5kKHN0cnVjdCBpbnBjYiAqbGFzdCwgc3RydWN0IGlwICppcCwgc3Ry dWN0IG1idWYgKm4sIGludCBvZmYpCiB7CiAJc3RydWN0IHNvY2thZGRyICphcHBlbmRfc2E7 CiAJc3RydWN0IG1idWYgKm9wdHMgPSAwOwpAQCAtNTQ3LDkgKzU0MSw3IEBACiAgKiBqdXN0 IHdha2UgdXAgc28gdGhhdCBoZSBjYW4gY29sbGVjdCBlcnJvciBzdGF0dXMuCiAgKi8KIHZv aWQKLXVkcF9ub3RpZnkoaW5wLCBlcnJubykKLQlzdHJ1Y3QgaW5wY2IgKmlucDsKLQlpbnQg ZXJybm87Cit1ZHBfbm90aWZ5KHN0cnVjdCBpbnBjYiAqaW5wLCBpbnQgZXJybm8pCiB7CiAJ aW5wLT5pbnBfc29ja2V0LT5zb19lcnJvciA9IGVycm5vOwogCXNvcndha2V1cChpbnAtPmlu cF9zb2NrZXQpOwpAQCAtNTU3LDEwICs1NDksNyBAQAogfQogCiB2b2lkCi11ZHBfY3RsaW5w dXQoY21kLCBzYSwgdmlwKQotCWludCBjbWQ7Ci0Jc3RydWN0IHNvY2thZGRyICpzYTsKLQl2 b2lkICp2aXA7Cit1ZHBfY3RsaW5wdXQoaW50IGNtZCwgc3RydWN0IHNvY2thZGRyICpzYSwg dm9pZCAqdmlwKQogewogCXN0cnVjdCBpcCAqaXAgPSB2aXA7CiAJc3RydWN0IHVkcGhkciAq dWg7CkBAIC03MDksMTIgKzY5OCw4IEBACiAgICAgMCwgMCwgdWRwX2dldGNyZWQsICJTLHVj cmVkIiwgIkdldCB0aGUgdWNyZWQgb2YgYSBVRFAgY29ubmVjdGlvbiIpOwogCiBzdGF0aWMg aW50Ci11ZHBfb3V0cHV0KGlucCwgbSwgZHN0YWRkciwgY29udHJvbCwgdGQpCi0Jc3RydWN0 IGlucGNiICppbnA7Ci0Jc3RydWN0IG1idWYgKm07Ci0Jc3RydWN0IHNvY2thZGRyICpkc3Rh ZGRyOwotCXN0cnVjdCBtYnVmICpjb250cm9sOwotCXN0cnVjdCB0aHJlYWQgKnRkOwordWRw X291dHB1dChzdHJ1Y3QgaW5wY2IgKmlucCwgc3RydWN0IG1idWYgKm0sIHN0cnVjdCBzb2Nr YWRkciAqZHN0YWRkciwgCisgICAgc3RydWN0IG1idWYgKmNvbnRyb2wsIHN0cnVjdCB0aHJl YWQgKnRkKQogewogCXN0cnVjdCB1ZHBpcGhkciAqdWk7CiAJaW50IGxlbiA9IG0tPm1fcGt0 aGRyLmxlbjsKQEAgLTk4Myw3ICs5NjgsNyBAQAogCiBzdGF0aWMgaW50CiB1ZHBfc2VuZChz dHJ1Y3Qgc29ja2V0ICpzbywgaW50IGZsYWdzLCBzdHJ1Y3QgbWJ1ZiAqbSwgc3RydWN0IHNv Y2thZGRyICphZGRyLAotCSAgICBzdHJ1Y3QgbWJ1ZiAqY29udHJvbCwgc3RydWN0IHRocmVh ZCAqdGQpCisgICAgc3RydWN0IG1idWYgKmNvbnRyb2wsIHN0cnVjdCB0aHJlYWQgKnRkKQog ewogCXN0cnVjdCBpbnBjYiAqaW5wOwogCkBAIC0xMDE0LDQgKzk5OSwzIEBACiAJcHJ1X3Jj dm9vYl9ub3RzdXBwLCB1ZHBfc2VuZCwgcHJ1X3NlbnNlX251bGwsIHVkcF9zaHV0ZG93biwK IAlpbl9zZXRzb2NrYWRkciwgc29zZW5kdWRwLCBzb3JlY2VpdmUsIHNvcG9sbAogfTsKLQoA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --------------000208080505030708010900--
文章代碼(AID): #10loXS00 (DFBSD_submit)
文章代碼(AID): #10loXS00 (DFBSD_submit)