From: marko.makela Date: June 5 2012 2:33pm Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3940 to 3944) WL#6255 List-Archive: http://lists.mysql.com/commits/144102 Message-Id: <201206051433.q55EX7Vk031005@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5NDQgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wNQogICAgICBXTCM2MjU1IEFMVEVSX0FERF9D T0xVTU4gKEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OKQogICAgICAKICAgICAgaW5ub2Jhc2Vf YnVpbGRfY29sX21hcF9hZGQoKTogQ29udmVydCBhIGRlZmF1bHQgdmFsdWUgb2YgYW4gQUREIENP TFVNTgogICAgICB0byB0aGUgSW5ub0RCIGZvcm1hdC4KICAgICAgCiAgICAgIGhhX2lubm9iYXNl X2lucGxhY2VfY3R4KCk6IEFkZCBhZGRfY29scy4KICAgICAgCiAgICAgIGlubm9iYXNlX2J1aWxk X2NvbF9tYXAoKSwgcm93X21lcmdlX2J1aWxkX2luZGV4ZXMoKSwKICAgICAgcm93X2xvZ190YWJs ZV9hcHBseSgpLCByb3dfYnVpbGQoKSwgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMo KSwKICAgICAgcm93X2xvZ190YWJsZV9hcHBseV9pbnNlcnQoKSwgcm93X2xvZ190YWJsZV9hcHBs eV91cGRhdGUoKSwKICAgICAgcm93X2xvZ190YWJsZV9hcHBseV9vcCgpLCByb3dfbG9nX3RhYmxl X2FwcGx5X29wcygpLAogICAgICByb3dfbWVyZ2VfcmVhZF9jbHVzdGVyZWRfaW5kZXgoKTogQWRk IHRoZSBwYXJhbWV0ZXIgYWRkX2NvbHMuCiAgICAgIAogICAgICBwcmVwYXJlX2lucGxhY2VfYWx0 ZXJfdGFibGVfZGljdCgpOiBXaGVuIHJlYnVpbGRpbmcgYSB0YWJsZSwgbWFrZSBpdCBhCiAgICAg ICouaWJkIGZpbGUgaWYgdGhlIG9yaWdpbmFsIHRhYmxlIHdhcyBpbiBhbiAqLmliZCBmaWxlLCBv ciBpZgogICAgICBpbm5vZGJfZmlsZV9wZXJfdGFibGU9MS4KCiAgICBtb2RpZmllZDoKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItY3JlYXRlLW9wdGlvbnMucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLnJlc3VsdAogICAgICBteXNxbC10 ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1jcmVhdGUtb3B0aW9ucy50ZXN0CiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9yb3cwbG9nLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBt ZXJnZS5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93LmgKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9y b3cwbWVyZ2UuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHJvdy5jYwogICAgICBz dG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdW5kby5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwdXBkLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB2ZXJzLmNjCiAzOTQz IE1hcmtvIE3DpGtlbMOkCTIwMTItMDYtMDUKICAgICAgQWRkIHNvbWUgY29uc3QgcXVhbGlmaWVy cyB0byBGaWVsZDo6aXNfbnVsbCBtZXRob2RzLgoKICAgIG1vZGlmaWVkOgogICAgICBzcWwvZmll bGQuaAogMzk0MiBNYXJrbyBNw6RrZWzDpAkyMDEyLTA2LTA1CiAgICAgIEZpeCBhIHR5cG8gaW4g YSB0ZXN0IG5hbWUuCgogICAgcmVuYW1lZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJf ZnRzL3IvaW5ub2RiX2Z0c19tdXRpcGxlX2luZGV4LnJlc3VsdCA9PiBteXNxbC10ZXN0L3N1aXRl L2lubm9kYl9mdHMvci9pbm5vZGJfZnRzX211bHRpcGxlX2luZGV4LnJlc3VsdAogICAgICBteXNx bC10ZXN0L3N1aXRlL2lubm9kYl9mdHMvdC9pbm5vZGJfZnRzX211dGlwbGVfaW5kZXgudGVzdCA9 PiBteXNxbC10ZXN0L3N1aXRlL2lubm9kYl9mdHMvdC9pbm5vZGJfZnRzX211bHRpcGxlX2luZGV4 LnRlc3QKIDM5NDEgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wNQogICAgICBtZW1faGVhcF9mcmVl X2hlYXBfdG9wKCk6IEVuYWJsZSB2YWxpZGF0aW9uIGNoZWNrcyBpbiBVTklWX0RFQlVHLgoKICAg IG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvbWVtMG1lbS5pYwogMzk0 MCBNYXJrbyBNw6RrZWzDpAkyMDEyLTA2LTA1CiAgICAgIFdMIzYyNTUgRFJPUCBDT0xVTU46IFRl c3QgRk9SRUlHTiBLRVkgY2hlY2tzLgoKICAgIG1vZGlmaWVkOgogICAgICBteXNxbC10ZXN0L3N1 aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9p bm5vZGIvdC9pbm5vZGItaW5kZXgudGVzdAo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9z dWl0ZS9pbm5vZGIvci9pbm5vZGItY3JlYXRlLW9wdGlvbnMucmVzdWx0JwotLS0gYS9teXNxbC10 ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1jcmVhdGUtb3B0aW9ucy5yZXN1bHQJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUwNzI4MjgteHlwMTFxN3lvMnptNnhweQorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1jcmVhdGUtb3B0aW9ucy5yZXN1bHQJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUxNDMyMzItbmVkOXoycnh4OTMx czkxdApAQCAtMzIwLDEyICszMjAsMTkgQEAgRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CiBDUkVB VEUgVEFCTEUgdDEgKCBpIElOVCApIFJPV19GT1JNQVQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tfU0la RT00OwogU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQ9QW50ZWxvcGU7CiBBTFRFUiBUQUJM RSB0MSBBREQgQ09MVU1OIGYxIElOVDsKLUVSUk9SIEhZMDAwOiBDYW4ndCBjcmVhdGUgdGFibGUg JyNzcWwtdGVtcG9yYXJ5JyAoZXJybm86IDE0NzgpCi1TSE9XIFdBUk5JTkdTOwotTGV2ZWwJQ29k ZQlNZXNzYWdlCitXYXJuaW5nczoKIFdhcm5pbmcJMTQ3OAlJbm5vREI6IEtFWV9CTE9DS19TSVpF IHJlcXVpcmVzIGlubm9kYl9maWxlX2Zvcm1hdCA+IEFudGVsb3BlLgorV2FybmluZwkxNDc4CUlu bm9EQjogaWdub3JpbmcgS0VZX0JMT0NLX1NJWkU9NC4KIFdhcm5pbmcJMTQ3OAlJbm5vREI6IFJP V19GT1JNQVQ9Q09NUFJFU1NFRCByZXF1aXJlcyBpbm5vZGJfZmlsZV9mb3JtYXQgPiBBbnRlbG9w ZS4KLUVycm9yCTEwMDUJQ2FuJ3QgY3JlYXRlIHRhYmxlICcjc3FsLXRlbXBvcmFyeScgKGVycm5v OiAxNDc4KQorV2FybmluZwkxNDc4CUlubm9EQjogYXNzdW1pbmcgUk9XX0ZPUk1BVD1DT01QQUNU LgorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFURSBU QUJMRSBgdDFgICgKKyAgYGlgIGludCgxMSkgREVGQVVMVCBOVUxMLAorICBgZjFgIGludCgxMSkg REVGQVVMVCBOVUxMCispIEVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPWxhdGluMSBST1df Rk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NLX1NJWkU9NAorU0hPVyBXQVJOSU5HUzsKK0xldmVs CUNvZGUJTWVzc2FnZQogQUxURVIgVEFCTEUgdDEgUk9XX0ZPUk1BVD1ERUZBVUxUIEtFWV9CTE9D S19TSVpFPTA7CiBTSE9XIFdBUk5JTkdTOwogTGV2ZWwJQ29kZQlNZXNzYWdlCkBAIC00MTUsMTIg KzQyMiw4IEBAIERST1AgVEFCTEUgSUYgRVhJU1RTIHQxOwogQ1JFQVRFIFRBQkxFIHQxICggaSBJ TlQgKSBST1dfRk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NLX1NJWkU9NDsKIFNFVCBHTE9CQUwg aW5ub2RiX2ZpbGVfcGVyX3RhYmxlPU9GRjsKIEFMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gZjEg SU5UOwotRVJST1IgSFkwMDA6IENhbid0IGNyZWF0ZSB0YWJsZSAnI3NxbC10ZW1wb3JhcnknIChl cnJubzogMTQ3OCkKIFNIT1cgV0FSTklOR1M7CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLVdhcm5pbmcJ MTQ3OAlJbm5vREI6IEtFWV9CTE9DS19TSVpFIHJlcXVpcmVzIGlubm9kYl9maWxlX3Blcl90YWJs ZS4KLVdhcm5pbmcJMTQ3OAlJbm5vREI6IFJPV19GT1JNQVQ9Q09NUFJFU1NFRCByZXF1aXJlcyBp bm5vZGJfZmlsZV9wZXJfdGFibGUuCi1FcnJvcgkxMDA1CUNhbid0IGNyZWF0ZSB0YWJsZSAnI3Nx bC10ZW1wb3JhcnknIChlcnJubzogMTQ3OCkKIEFMVEVSIFRBQkxFIHQxIFJPV19GT1JNQVQ9REVG QVVMVCBLRVlfQkxPQ0tfU0laRT0wOwogU0hPVyBXQVJOSU5HUzsKIExldmVsCUNvZGUJTWVzc2Fn ZQpAQCAtODA0LDIwICs4MDcsMTEgQEAgVEFCTEVfTkFNRQlST1dfRk9STUFUCUNSRUFURV9PUFRJ T05TCiB0MQlDb21wcmVzc2VkCXJvd19mb3JtYXQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tfU0laRT0y CiBTRVQgR0xPQkFMIGlubm9kYl9maWxlX3Blcl90YWJsZT1PRkY7CiBBTFRFUiBUQUJMRSB0MSBB REQgQ09MVU1OIGYxIElOVDsKLVdhcm5pbmdzOgotV2FybmluZwkxNDc4CUlubm9EQjogS0VZX0JM T0NLX1NJWkUgcmVxdWlyZXMgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlLgotV2FybmluZwkxNDc4CUlu bm9EQjogaWdub3JpbmcgS0VZX0JMT0NLX1NJWkU9Mi4KLVdhcm5pbmcJMTQ3OAlJbm5vREI6IFJP V19GT1JNQVQ9Q09NUFJFU1NFRCByZXF1aXJlcyBpbm5vZGJfZmlsZV9wZXJfdGFibGUuCi1XYXJu aW5nCTE0NzgJSW5ub0RCOiBhc3N1bWluZyBST1dfRk9STUFUPUNPTVBBQ1QuCiBTSE9XIFdBUk5J TkdTOwogTGV2ZWwJQ29kZQlNZXNzYWdlCi1XYXJuaW5nCTE0NzgJSW5ub0RCOiBLRVlfQkxPQ0tf U0laRSByZXF1aXJlcyBpbm5vZGJfZmlsZV9wZXJfdGFibGUuCi1XYXJuaW5nCTE0NzgJSW5ub0RC OiBpZ25vcmluZyBLRVlfQkxPQ0tfU0laRT0yLgotV2FybmluZwkxNDc4CUlubm9EQjogUk9XX0ZP Uk1BVD1DT01QUkVTU0VEIHJlcXVpcmVzIGlubm9kYl9maWxlX3Blcl90YWJsZS4KLVdhcm5pbmcJ MTQ3OAlJbm5vREI6IGFzc3VtaW5nIFJPV19GT1JNQVQ9Q09NUEFDVC4KIFNFTEVDVCBUQUJMRV9O QU1FLFJPV19GT1JNQVQsQ1JFQVRFX09QVElPTlMgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFi bGVzIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOwogVEFCTEVfTkFNRQlST1dfRk9STUFUCUNSRUFU RV9PUFRJT05TCi10MQlDb21wYWN0CXJvd19mb3JtYXQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tfU0la RT0yCit0MQlDb21wcmVzc2VkCXJvd19mb3JtYXQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tfU0laRT0y CiBTRVQgR0xPQkFMIGlubm9kYl9maWxlX3Blcl90YWJsZT1PTjsKIEFMVEVSIFRBQkxFIHQxIEFE RCBDT0xVTU4gZjIgSU5UOwogU0hPVyBXQVJOSU5HUzsKQEAgLTgzNCwxNiArODI4LDExIEBAIFRB QkxFX05BTUUJUk9XX0ZPUk1BVAlDUkVBVEVfT1BUSU9OUwogdDEJRHluYW1pYwlyb3dfZm9ybWF0 PURZTkFNSUMKIFNFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPU9GRjsKIEFMVEVSIFRB QkxFIHQxIEFERCBDT0xVTU4gZjEgSU5UOwotV2FybmluZ3M6Ci1XYXJuaW5nCTE0NzgJSW5ub0RC OiBST1dfRk9STUFUPURZTkFNSUMgcmVxdWlyZXMgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlLgotV2Fy bmluZwkxNDc4CUlubm9EQjogYXNzdW1pbmcgUk9XX0ZPUk1BVD1DT01QQUNULgogU0hPVyBXQVJO SU5HUzsKIExldmVsCUNvZGUJTWVzc2FnZQotV2FybmluZwkxNDc4CUlubm9EQjogUk9XX0ZPUk1B VD1EWU5BTUlDIHJlcXVpcmVzIGlubm9kYl9maWxlX3Blcl90YWJsZS4KLVdhcm5pbmcJMTQ3OAlJ bm5vREI6IGFzc3VtaW5nIFJPV19GT1JNQVQ9Q09NUEFDVC4KIFNFTEVDVCBUQUJMRV9OQU1FLFJP V19GT1JNQVQsQ1JFQVRFX09QVElPTlMgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdI RVJFIFRBQkxFX05BTUUgPSAndDEnOwogVEFCTEVfTkFNRQlST1dfRk9STUFUCUNSRUFURV9PUFRJ T05TCi10MQlDb21wYWN0CXJvd19mb3JtYXQ9RFlOQU1JQwordDEJRHluYW1pYwlyb3dfZm9ybWF0 PURZTkFNSUMKIFNFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPU9OOwogQUxURVIgVEFC TEUgdDEgQUREIENPTFVNTiBmMiBJTlQ7CiBTSE9XIFdBUk5JTkdTOwoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLnJlc3VsdCcKLS0tIGEvbXlzcWwt dGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGIucmVzdWx0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvbXlzcWwtdGVzdC9z dWl0ZS9pbm5vZGIvci9pbm5vZGIucmVzdWx0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTIwNjA1MTQzMjMyLW5lZDl6MnJ4eDkzMXM5MXQKQEAgLTE2NzksNyArMTY3OSw3IEBAIHZh cmlhYmxlX3ZhbHVlIC0gQGlubm9kYl9yb3dzX2RlbGV0ZWRfb3IKIDcxCiBTRUxFQ1QgdmFyaWFi bGVfdmFsdWUgLSBAaW5ub2RiX3Jvd3NfaW5zZXJ0ZWRfb3JpZyBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5nbG9iYWxfc3RhdHVzIFdIRVJFIExPV0VSKHZhcmlhYmxlX25hbWUpID0gJ2lubm9kYl9y b3dzX2luc2VydGVkJzsKIHZhcmlhYmxlX3ZhbHVlIC0gQGlubm9kYl9yb3dzX2luc2VydGVkX29y aWcKLTEwNDMKKzEwMDYKIFNFTEVDVCB2YXJpYWJsZV92YWx1ZSAtIEBpbm5vZGJfcm93c191cGRh dGVkX29yaWcgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZ2xvYmFsX3N0YXR1cyBXSEVSRSBMT1dF Uih2YXJpYWJsZV9uYW1lKSA9ICdpbm5vZGJfcm93c191cGRhdGVkJzsKIHZhcmlhYmxlX3ZhbHVl IC0gQGlubm9kYl9yb3dzX3VwZGF0ZWRfb3JpZwogODY2Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItY3JlYXRlLW9wdGlvbnMudGVzdCcKLS0tIGEv bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItY3JlYXRlLW9wdGlvbnMudGVzdAlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTA3MjgyOC14eXAxMXE3eW8yem02eHB5 CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWNyZWF0ZS1vcHRpb25zLnRl c3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUxNDMyMzItbmVkOXoycnh4 OTMxczkxdApAQCAtOTcsMTAgKzk3LDggQEAgU0VMRUNUIFRBQkxFX05BTUUsUk9XX0ZPUk1BVCxD UkVBVEVfT1BUSQogQUxURVIgVEFCTEUgdDEgUk9XX0ZPUk1BVD1ERUZBVUxUIEtFWV9CTE9DS19T SVpFPTA7CiBTSE9XIFdBUk5JTkdTOwogU0VMRUNUIFRBQkxFX05BTUUsUk9XX0ZPUk1BVCxDUkVB VEVfT1BUSU9OUyBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgV0hFUkUgVEFCTEVfTkFN RSA9ICd0MSc7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicv JyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJyb3IgRVJfSUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9OCiBB TFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPUZJWEVEIEtFWV9CTE9DS19TSVpFPTA7Ci0tLXJlcGxh Y2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8K IFNIT1cgV0FSTklOR1M7CiBTRUxFQ1QgVEFCTEVfTkFNRSxST1dfRk9STUFULENSRUFURV9PUFRJ T05TIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBXSEVSRSBUQUJMRV9OQU1FID0gJ3Qx JzsKIApAQCAtMTM2LDI1ICsxMzQsMTcgQEAgU0VMRUNUIFRBQkxFX05BTUUsUk9XX0ZPUk1BVCxD UkVBVEVfT1BUSQogLS1lY2hvICMgVGVzdCAzKSBTdHJpY3RNb2RlPU9OLCBBTFRFUiB3aXRoIGVh Y2ggUk9XX0ZPUk1BVCAmIGEgdmFsaWQgbm9uLXplcm8gS0VZX0JMT0NLX1NJWkUKIERST1AgVEFC TEUgSUYgRVhJU1RTIHQxOwogQ1JFQVRFIFRBQkxFIHQxICggaSBJTlQgKTsKLS0tcmVwbGFjZV9y ZWdleCAvJ1teJ10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwogLS1l cnJvciBFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04KIEFMVEVSIFRBQkxFIHQxIFJPV19GT1JN QVQ9RklYRUQgS0VZX0JMT0NLX1NJWkU9MTsKLS0tcmVwbGFjZV9yZWdleCAvJ1teJ10qdGVzdFwu I3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwogU0hPVyBXQVJOSU5HUzsKLS0tcmVw bGFjZV9yZWdleCAvJ1teJ10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3Jhcnkn LwogLS1lcnJvciBFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04KIEFMVEVSIFRBQkxFIHQxIFJP V19GT1JNQVQ9Q09NUEFDVCBLRVlfQkxPQ0tfU0laRT0yOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14n XSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiBTSE9XIFdBUk5JTkdT OwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRl bXBvcmFyeScvCiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFC TEUgdDEgUk9XX0ZPUk1BVD1EWU5BTUlDIEtFWV9CTE9DS19TSVpFPTQ7Ci0tLXJlcGxhY2VfcmVn ZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KIFNIT1cg V0FSTklOR1M7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicv JyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJyb3IgRVJfSUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9OCiBB TFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPVJFRFVOREFOVCBLRVlfQkxPQ0tfU0laRT0yOwotLS1y ZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFy eScvCiBTSE9XIFdBUk5JTkdTOwogQUxURVIgVEFCTEUgdDEgUk9XX0ZPUk1BVD1ERUZBVUxUIEtF WV9CTE9DS19TSVpFPTE7CiBTSE9XIFdBUk5JTkdTOwpAQCAtMTY4LDI2ICsxNTgsMjAgQEAgU0VM RUNUIFRBQkxFX05BTUUsUk9XX0ZPUk1BVCxDUkVBVEVfT1BUSQogRFJPUCBUQUJMRSBJRiBFWElT VFMgdDE7CiBDUkVBVEUgVEFCTEUgdDEgKCBpIElOVCApIFJPV19GT1JNQVQ9Q09NUEFDVDsKIFNF TEVDVCBUQUJMRV9OQU1FLFJPV19GT1JNQVQsQ1JFQVRFX09QVElPTlMgRlJPTSBpbmZvcm1hdGlv bl9zY2hlbWEudGFibGVzIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOwotLS1yZXBsYWNlX3JlZ2V4 IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiAtLWVycm9y IEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFCTEUgdDEgS0VZX0JMT0NLX1NJ WkU9MjsKLS0tcmVwbGFjZV9yZWdleCAvJ1teJ10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3Nx bC10ZW1wb3JhcnknLwogU0hPVyBXQVJOSU5HUzsKIEFMVEVSIFRBQkxFIHQxIFJPV19GT1JNQVQ9 UkVEVU5EQU5UOwogU0hPVyBXQVJOSU5HUzsKIFNFTEVDVCBUQUJMRV9OQU1FLFJPV19GT1JNQVQs Q1JFQVRFX09QVElPTlMgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdIRVJFIFRBQkxF X05BTUUgPSAndDEnOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZf XSonLycjc3FsLXRlbXBvcmFyeScvCiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElP TgogQUxURVIgVEFCTEUgdDEgS0VZX0JMT0NLX1NJWkU9NDsKLS0tcmVwbGFjZV9yZWdleCAvJ1te J10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwogU0hPVyBXQVJOSU5H UzsKIEFMVEVSIFRBQkxFIHQxIFJPV19GT1JNQVQ9RFlOQU1JQzsKIFNIT1cgV0FSTklOR1M7CiBT RUxFQ1QgVEFCTEVfTkFNRSxST1dfRk9STUFULENSRUFURV9PUFRJT05TIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnRhYmxlcyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKLS0tcmVwbGFjZV9yZWdl eCAvJ1teJ10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwogLS1lcnJv ciBFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04KIEFMVEVSIFRBQkxFIHQxIEtFWV9CTE9DS19T SVpFPTI7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNz cWwtdGVtcG9yYXJ5Jy8KIFNIT1cgV0FSTklOR1M7CiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFU PUNPTVBSRVNTRUQ7CiBTSE9XIFdBUk5JTkdTOwpAQCAtMjA4LDIwICsxOTIsMTQgQEAgQ1JFQVRF IFRBQkxFIHQxICggaSBJTlQgKSBLRVlfQkxPQ0tfU0laRQogU0hPVyBDUkVBVEUgVEFCTEUgdDE7 CiBBTFRFUiBUQUJMRSB0MSBBREQgQ09MVU1OIGYxIElOVDsKIFNIT1cgQ1JFQVRFIFRBQkxFIHQx OwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRl bXBvcmFyeScvCiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFC TEUgdDEgUk9XX0ZPUk1BVD1DT01QQUNUOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4j c3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiBTSE9XIFdBUk5JTkdTOwotLS1yZXBs YWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScv CiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFCTEUgdDEgUk9X X0ZPUk1BVD1SRURVTkRBTlQ7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAt OWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KIFNIT1cgV0FSTklOR1M7Ci0tLXJlcGxhY2VfcmVn ZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJy b3IgRVJfSUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9OCiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFU PURZTkFNSUM7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicv JyNzcWwtdGVtcG9yYXJ5Jy8KIFNIT1cgV0FSTklOR1M7CiBBTFRFUiBUQUJMRSB0MSBST1dfRk9S TUFUPUNPTVBSRVNTRUQ7CiBTSE9XIFdBUk5JTkdTOwpAQCAtMjYzLDI5ICsyNDEsMjEgQEAgU0VM RUNUIFRBQkxFX05BTUUsUk9XX0ZPUk1BVCxDUkVBVEVfT1BUSQogRFJPUCBUQUJMRSBJRiBFWElT VFMgdDE7CiBDUkVBVEUgVEFCTEUgdDEgKCBpIElOVCApIFJPV19GT1JNQVQ9REVGQVVMVDsKIFNI T1cgV0FSTklOR1M7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9d KicvJyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJyb3IgRVJfSUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9O CiBBTFRFUiBUQUJMRSB0MSBLRVlfQkxPQ0tfU0laRT0yOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14n XSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiBTSE9XIFdBUk5JTkdT OwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRl bXBvcmFyeScvCiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFC TEUgdDEgUk9XX0ZPUk1BVD1DT01QUkVTU0VEOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0 XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiBTSE9XIFdBUk5JTkdTOwotLS1y ZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFy eScvCiAtLWVycm9yIEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTgogQUxURVIgVEFCTEUgdDEg Uk9XX0ZPUk1BVD1EWU5BTUlDOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVsw LTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCiBTSE9XIFdBUk5JTkdTOwogU0VUIEdMT0JBTCBp bm5vZGJfZmlsZV9mb3JtYXQ9QmFycmFjdWRhOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CiBD UkVBVEUgVEFCTEUgdDEgKCBpIElOVCApIFJPV19GT1JNQVQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tf U0laRT00OwogU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQ9QW50ZWxvcGU7Ci0tLXJlcGxh Y2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8K LS0tZXJyb3IgRVJfQ0FOVF9DUkVBVEVfVEFCTEUKIEFMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4g ZjEgSU5UOwotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC4jc3FsLVswLTlhLWZfXSonLycj c3FsLXRlbXBvcmFyeScvCitTSE9XIENSRUFURSBUQUJMRSB0MTsKIFNIT1cgV0FSTklOR1M7CiBB TFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPURFRkFVTFQgS0VZX0JMT0NLX1NJWkU9MDsKIFNIT1cg V0FSTklOR1M7CkBAIC0zMTgsMjAgKzI4OCwxNCBAQCBTRUxFQ1QgVEFCTEVfTkFNRSxST1dfRk9S TUFULENSRUFURV9PUFRJCiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsKIENSRUFURSBUQUJMRSB0 MSAoIGkgSU5UICkgUk9XX0ZPUk1BVD1ERUZBVUxUOwogU0hPVyBXQVJOSU5HUzsKLS0tcmVwbGFj ZV9yZWdleCAvJ1teJ10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwog LS1lcnJvciBFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04KIEFMVEVSIFRBQkxFIHQxIEtFWV9C TE9DS19TSVpFPTE7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9d KicvJyNzcWwtdGVtcG9yYXJ5Jy8KIFNIT1cgV0FSTklOR1M7Ci0tLXJlcGxhY2VfcmVnZXggLydb XiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJyb3IgRVJf SUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9OCiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPUNPTVBS RVNTRUQ7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNz cWwtdGVtcG9yYXJ5Jy8KIFNIT1cgV0FSTklOR1M7Ci0tLXJlcGxhY2VfcmVnZXggLydbXiddKnRl c3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KIC0tZXJyb3IgRVJfSUxMRUdB TF9IQV9DUkVBVEVfT1BUSU9OCiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPURZTkFNSUM7Ci0t LXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9y YXJ5Jy8KIFNIT1cgV0FSTklOR1M7CiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPUNPTVBBQ1Q7 CiBTSE9XIFdBUk5JTkdTOwpAQCAtMzQ2LDEwICszMTAsNyBAQCBTRVQgR0xPQkFMIGlubm9kYl9m aWxlX3Blcl90YWJsZT1PTjsKIERST1AgVEFCTEUgSUYgRVhJU1RTIHQxOwogQ1JFQVRFIFRBQkxF IHQxICggaSBJTlQgKSBST1dfRk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NLX1NJWkU9NDsKIFNF VCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPU9GRjsKLS0tcmVwbGFjZV9yZWdleCAvJ1te J10qdGVzdFwuI3NxbC1bMC05YS1mX10qJy8nI3NxbC10ZW1wb3JhcnknLwotLS1lcnJvciBFUl9D QU5UX0NSRUFURV9UQUJMRQogQUxURVIgVEFCTEUgdDEgQUREIENPTFVNTiBmMSBJTlQ7Ci0tLXJl cGxhY2VfcmVnZXggLydbXiddKnRlc3RcLiNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5 Jy8KIFNIT1cgV0FSTklOR1M7CiBBTFRFUiBUQUJMRSB0MSBST1dfRk9STUFUPURFRkFVTFQgS0VZ X0JMT0NLX1NJWkU9MDsKIFNIT1cgV0FSTklOR1M7Cgo9PT0gcmVuYW1lZCBmaWxlICdteXNxbC10 ZXN0L3N1aXRlL2lubm9kYl9mdHMvci9pbm5vZGJfZnRzX211dGlwbGVfaW5kZXgucmVzdWx0JyA9 PiAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfZnRzL3IvaW5ub2RiX2Z0c19tdWx0aXBsZV9pbmRl eC5yZXN1bHQnCj09PSByZW5hbWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX2Z0cy90 L2lubm9kYl9mdHNfbXV0aXBsZV9pbmRleC50ZXN0JyA9PiAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGJfZnRzL3QvaW5ub2RiX2Z0c19tdWx0aXBsZV9pbmRleC50ZXN0Jwo9PT0gbW9kaWZpZWQgZmls ZSAnc3FsL2ZpZWxkLmgnCi0tLSBhL3NxbC9maWVsZC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvc3FsL2ZpZWxkLmgJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUxNDMyMzItbmVkOXoycnh4OTMx czkxdApAQCAtODY4LDcgKzg2OCw3IEBAIHB1YmxpYzoKICAgewogICAgIHJldHVybiBpc190ZW1w b3JhbF90eXBlX3dpdGhfZGF0ZV9hbmRfdGltZSh0eXBlKCkpOwogICB9Ci0gIGlubGluZSBib29s IGlzX251bGwobXlfcHRyZGlmZl90IHJvd19vZmZzZXQ9IDApCisgIGlubGluZSBib29sIGlzX251 bGwgKG15X3B0cmRpZmZfdCByb3dfb2Zmc2V0PSAwKSBjb25zdAogICB7CiAgICAgLyoKICAgICAg IFRoZSB0YWJsZSBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBjb250YWluaW5nIG9ubHkgTlVMTCB2 YWx1ZXMKQEAgLTg5MCwxNiArODkwLDE2IEBAIHB1YmxpYzoKIAogICAgIHJldHVybiBmYWxzZTsK ICAgfQotICBpbmxpbmUgYm9vbCBpc19yZWFsX251bGwobXlfcHRyZGlmZl90IHJvd19vZmZzZXQ9 IDApCi0gICAgeyByZXR1cm4gbnVsbF9wdHIgPyAobnVsbF9wdHJbcm93X29mZnNldF0gJiBudWxs X2JpdCA/IDEgOiAwKSA6IDA7IH0KLSAgaW5saW5lIGJvb2wgaXNfbnVsbF9pbl9yZWNvcmQoY29u c3QgdWNoYXIgKnJlY29yZCkKKyAgaW5saW5lIGJvb2wgaXNfcmVhbF9udWxsIChteV9wdHJkaWZm X3Qgcm93X29mZnNldD0gMCkgY29uc3QKKyAgICB7IHJldHVybiBudWxsX3B0ciAmJiAobnVsbF9w dHJbcm93X29mZnNldF0gJiBudWxsX2JpdCk7IH0KKyAgaW5saW5lIGJvb2wgaXNfbnVsbF9pbl9y ZWNvcmQgKGNvbnN0IHVjaGFyICpyZWNvcmQpIGNvbnN0CiAgIHsKICAgICBpZiAoIW51bGxfcHRy KQogICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHRlc3QocmVjb3JkWyh1aW50KSAobnVsbF9w dHIgLXRhYmxlLT5yZWNvcmRbMF0pXSAmCiAJCW51bGxfYml0KTsKICAgfQotICBpbmxpbmUgYm9v bCBpc19udWxsX2luX3JlY29yZF93aXRoX29mZnNldChteV9wdHJkaWZmX3Qgb2Zmc2V0KQorICBp bmxpbmUgYm9vbCBpc19udWxsX2luX3JlY29yZF93aXRoX29mZnNldCAobXlfcHRyZGlmZl90IG9m ZnNldCkgY29uc3QKICAgewogICAgIGlmICghbnVsbF9wdHIpCiAgICAgICByZXR1cm4gMDsKQEAg LTkwOSw3ICs5MDksOCBAQCBwdWJsaWM6CiAgICAgeyBpZiAobnVsbF9wdHIpIG51bGxfcHRyW3Jv d19vZmZzZXRdfD0gbnVsbF9iaXQ7IH0KICAgaW5saW5lIHZvaWQgc2V0X25vdG51bGwobXlfcHRy ZGlmZl90IHJvd19vZmZzZXQ9IDApCiAgICAgeyBpZiAobnVsbF9wdHIpIG51bGxfcHRyW3Jvd19v ZmZzZXRdJj0gKHVjaGFyKSB+bnVsbF9iaXQ7IH0KLSAgaW5saW5lIGJvb2wgbWF5YmVfbnVsbCh2 b2lkKSB7IHJldHVybiBudWxsX3B0ciAhPSAwIHx8IHRhYmxlLT5tYXliZV9udWxsOyB9CisgIGlu bGluZSBib29sIG1heWJlX251bGwodm9pZCkgY29uc3QKKyAgICB7IHJldHVybiBudWxsX3B0ciAh PSAwIHx8IHRhYmxlLT5tYXliZV9udWxsOyB9CiAgIC8qKgogICAgICBTaWduYWxzIHRoYXQgdGhp cyBmaWVsZCBpcyBOVUxMLWFibGUuCiAgICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv aGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5k bGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2 MDUxNDMyMzItbmVkOXoycnh4OTMxczkxdApAQCAtNjEsMTAgKzYxLDEwIEBAIHN0YXRpYyBjb25z dCBBbHRlcl9pbnBsYWNlX2luZm86OkhBX0FMVEUKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6QUxU RVJfQ09MVU1OX05PVF9OVUxMQUJMRQogCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpBTFRFUl9DT0xV TU5fT1JERVIKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6RFJPUF9DT0xVTU4KKwl8IEFsdGVyX2lu cGxhY2VfaW5mbzo6QUREX0NPTFVNTgogCS8qCiAJfCBBbHRlcl9pbnBsYWNlX2luZm86OkFMVEVS X0NPTFVNTl9UWVBFCiAJfCBBbHRlcl9pbnBsYWNlX2luZm86OkFMVEVSX0NPTFVNTl9FUVVBTF9Q QUNLX0xFTkdUSAotCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpBRERfQ09MVU1OCiAJKi8KIAk7CiAK QEAgLTE3NjEsNiArMTc2MSw4IEBAIHB1YmxpYzoKIAlkaWN0X3RhYmxlX3QqCWluZGV4ZWRfdGFi bGU7CiAJLyoqIG1hcHBpbmcgb2Ygb2xkIGNvbHVtbiBudW1iZXJzIHRvIG5ldyBvbmVzLCBvciBO VUxMICovCiAJY29uc3QgdWxpbnQqCWNvbF9tYXA7CisJLyoqIGRlZmF1bHQgdmFsdWVzIG9mIEFE RCBDT0xVTU4sIG9yIE5VTEwgKi8KKwljb25zdCBkdHVwbGVfdCoJYWRkX2NvbHM7CiAJaGFfaW5u b2Jhc2VfaW5wbGFjZV9jdHgodHJ4X3QqIHVzZXJfdHJ4LAogCQkJCWRpY3RfaW5kZXhfdCoqIGFk ZF9hcmcsCiAJCQkJY29uc3QgdWxpbnQqIGFkZF9rZXlfbnVtYmVyc19hcmcsCkBAIC0xNzc1LDcg KzE3NzcsOCBAQCBwdWJsaWM6CiAJCQkJbWVtX2hlYXBfdCogaGVhcF9hcmcsCiAJCQkJdHJ4X3Qq IHRyeF9hcmcsCiAJCQkJZGljdF90YWJsZV90KiBpbmRleGVkX3RhYmxlX2FyZywKLQkJCQljb25z dCB1bGludCogY29sX21hcF9hcmcpIDoKKwkJCQljb25zdCB1bGludCogY29sX21hcF9hcmcsCisJ CQkJY29uc3QgZHR1cGxlX3QqCWFkZF9jb2xzX2FyZykgOgogCQlpbnBsYWNlX2FsdGVyX2hhbmRs ZXJfY3R4KCksCiAJCWFkZCAoYWRkX2FyZyksIGFkZF9rZXlfbnVtYmVycyAoYWRkX2tleV9udW1i ZXJzX2FyZyksCiAJCW51bV90b19hZGQgKG51bV90b19hZGRfYXJnKSwKQEAgLTE3ODQsNyArMTc4 Nyw3IEBAIHB1YmxpYzoKIAkJYWRkX2ZrIChhZGRfZmtfYXJnKSwgbnVtX3RvX2FkZF9mayAobnVt X3RvX2FkZF9ma19hcmcpLAogCQlvbmxpbmUgKG9ubGluZV9hcmcpLCBoZWFwIChoZWFwX2FyZyks IHRyeCAodHJ4X2FyZyksCiAJCWluZGV4ZWRfdGFibGUgKGluZGV4ZWRfdGFibGVfYXJnKSwKLQkJ Y29sX21hcCAoY29sX21hcF9hcmcpIHsKKwkJY29sX21hcCAoY29sX21hcF9hcmcpLCBhZGRfY29s cyAoYWRkX2NvbHNfYXJnKSB7CiAjaWZkZWYgVU5JVl9ERUJVRwogCQlmb3IgKHVsaW50IGkgPSAw OyBpIDwgbnVtX3RvX2FkZDsgaSsrKSB7CiAJCQl1dF9hZCghYWRkW2ldLT50b19iZV9kcm9wcGVk KTsKQEAgLTIwNDUsNiArMjA0OCwzNSBAQCBpbm5vYmFzZV9jaGVja19mb3JlaWducygKIAlyZXR1 cm4oZmFsc2UpOwogfQogCisvKiogQ29udmVydCBhIGRlZmF1bHQgdmFsdWUgZm9yIEFERCBDT0xV TU4uCisKK0BwYXJhbSBoZWFwCU1lbW9yeSBoZWFwIHdoZXJlIGFsbG9jYXRlZAorQHBhcmFtIGRm aWVsZAlJbm5vREIgZGF0YSBmaWVsZCB0byBjb3B5IHRvCitAcGFyYW0gZmllbGQJTXlTUUwgdmFs dWUgZm9yIHRoZSBjb2x1bW4KK0BwYXJhbSBjb21wCW5vbnplcm8gaWYgaW4gY29tcGFjdCBmb3Jt YXQKKyAqLworc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwpKQordm9pZAoraW5ub2Jhc2Vf YnVpbGRfY29sX21hcF9hZGQoCisvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KKwltZW1faGVh cF90KgloZWFwLAorCWRmaWVsZF90KglkZmllbGQsCisJY29uc3QgRmllbGQqCWZpZWxkLAorCXVs aW50CQljb21wKQoreworCWlmIChmaWVsZC0+aXNfcmVhbF9udWxsKCkpIHsKKwkJZGZpZWxkX3Nl dF9udWxsKGRmaWVsZCk7CisJCXJldHVybjsKKwl9CisKKwl1bGludAlzaXplCT0gZmllbGQtPnBh Y2tfbGVuZ3RoKCk7CisKKwlieXRlKglidWYJPSBzdGF0aWNfY2FzdDxieXRlKj4obWVtX2hlYXBf YWxsb2MoaGVhcCwgc2l6ZSkpOworCisJcm93X215c3FsX3N0b3JlX2NvbF9pbl9pbm5vYmFzZV9m b3JtYXQoCisJCWRmaWVsZCwgYnVmLCBUUlVFLCBmaWVsZC0+cHRyLCBzaXplLCBjb21wKTsKK30K KwogLyoqIENvbnN0cnVjdCB0aGUgdHJhbnNsYXRpb24gdGFibGUgZm9yIHJlb3JkZXJpbmcsIGRy b3BwaW5nIG9yCiBhZGRpbmcgY29sdW1ucy4KIApAQCAtMjA1MywxMCArMjA4NSwxMSBAQCBhZGRp bmcgY29sdW1ucy4KIEBwYXJhbSB0YWJsZQkJTXlTUUwgdGFibGUgYXMgaXQgaXMgYmVmb3JlIHRo ZSBBTFRFUiBvcGVyYXRpb24KIEBwYXJhbSBuZXdfdGFibGUJSW5ub0RCIHRhYmxlIGNvcnJlc3Bv bmRpbmcgdG8gTXlTUUwgYWx0ZXJlZF90YWJsZQogQHBhcmFtIG9sZF90YWJsZQlJbm5vREIgdGFi bGUgY29ycmVzcG9uZGluZyB0byBNWVNRTCB0YWJsZQotQHBhcmFtIGhlYXAJTWVtb3J5IGhlYXAg d2hlcmUgYWxsb2NhdGVkCitAcGFyYW0gYWRkX2NvbHMJCURlZmF1bHQgdmFsdWVzIGZvciBBREQg Q09MVU1OLCBvciBOVUxMIGlmIG5vIEFERCBDT0xVTU4KK0BwYXJhbSBoZWFwCQlNZW1vcnkgaGVh cCB3aGVyZSBhbGxvY2F0ZWQKIEByZXR1cm4JYXJyYXkgb2YgaW50ZWdlcnMsIG1hcHBpbmcgY29s dW1uIG51bWJlcnMgaW4gdGhlIHRhYmxlCiB0byBjb2x1bW4gbnVtYmVycyBpbiBhbHRlcmVkX3Rh YmxlICovCi1zdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0 KSkKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub25udWxsKDEsMiwzLDQsNSw3KSwgd2Fybl91bnVz ZWRfcmVzdWx0KSkKIGNvbnN0IHVsaW50KgogaW5ub2Jhc2VfYnVpbGRfY29sX21hcCgKIC8qPT09 PT09PT09PT09PT09PT09PSovCkBAIC0yMDY1LDYgKzIwOTgsNyBAQCBpbm5vYmFzZV9idWlsZF9j b2xfbWFwKAogCWNvbnN0IFRBQkxFKgkJdGFibGUsCiAJY29uc3QgZGljdF90YWJsZV90KgluZXdf dGFibGUsCiAJY29uc3QgZGljdF90YWJsZV90KglvbGRfdGFibGUsCisJZHR1cGxlX3QqCQlhZGRf Y29scywKIAltZW1faGVhcF90KgkJaGVhcCkKIHsKIAlEQlVHX0VOVEVSKCJpbm5vYmFzZV9idWls ZF9jb2xfbWFwIik7CkBAIC0yMDc0LDYgKzIxMDgsMTAgQEAgaW5ub2Jhc2VfYnVpbGRfY29sX21h cCgKIAkJICAgID49IGFsdGVyZWRfdGFibGUtPnMtPmZpZWxkcyArIERBVEFfTl9TWVNfQ09MUyk7 CiAJREJVR19BU1NFUlQoZGljdF90YWJsZV9nZXRfbl9jb2xzKG9sZF90YWJsZSkKIAkJICAgID49 IHRhYmxlLT5zLT5maWVsZHMgKyBEQVRBX05fU1lTX0NPTFMpOworCURCVUdfQVNTRVJUKCEhYWRk X2NvbHMgPT0gISEoaGFfYWx0ZXJfaW5mby0+aGFuZGxlcl9mbGFncworCQkJCSAgICAgJiBBbHRl cl9pbnBsYWNlX2luZm86OkFERF9DT0xVTU4pKTsKKwlEQlVHX0FTU0VSVCghYWRkX2NvbHMgfHwg ZHR1cGxlX2dldF9uX2ZpZWxkcyhhZGRfY29scykKKwkJICAgID09IGRpY3RfdGFibGVfZ2V0X25f Y29scyhuZXdfdGFibGUpKTsKIAogCXVsaW50Kgljb2xfbWFwID0gc3RhdGljX2Nhc3Q8dWxpbnQq PigKIAkJbWVtX2hlYXBfYWxsb2MoaGVhcCwgb2xkX3RhYmxlLT5uX2NvbHMgKiBzaXplb2YgKmNv bF9tYXApKTsKQEAgLTIwOTYsOCArMjEzNCwxMiBAQCBpbm5vYmFzZV9idWlsZF9jb2xfbWFwKAog CQkJCWdvdG8gZm91bmRfY29sOwogCQkJfQogCQl9CisKIAkJLyogQUxURVJfQUREX0NPTFVNTiAq LwotCQl1dF9hZCgwKTsvL1RPRE8KKwkJaW5ub2Jhc2VfYnVpbGRfY29sX21hcF9hZGQoCisJCQlo ZWFwLCBkdHVwbGVfZ2V0X250aF9maWVsZChhZGRfY29scywgaSksCisJCQlhbHRlcmVkX3RhYmxl LT5zLT5maWVsZFtpXSwKKwkJCWRpY3RfdGFibGVfaXNfY29tcChuZXdfdGFibGUpKTsKIGZvdW5k X2NvbDoKIAkJaSsrOwogCQljb250aW51ZTsKQEAgLTIyMDEsNiArMjI0Myw3IEBAIHByZXBhcmVf aW5wbGFjZV9hbHRlcl90YWJsZV9kaWN0KAogCWRiZXJyX3QJCQllcnJvcjsKIAlUSEQqCQkJdXNl cl90aGQJPSB1c2VyX3RyeC0+bXlzcWxfdGhkOwogCWNvbnN0IHVsaW50KgkJY29sX21hcDsKKwlk dHVwbGVfdCoJCWFkZF9jb2xzOwogCiAJY29uc3QgYm9vbCBsb2NrZWQgPQogCQlhZGRfZnRzX2Rv Y19pZApAQCAtMjMyNCw3ICsyMzY3LDggQEAgcHJlcGFyZV9pbnBsYWNlX2FsdGVyX3RhYmxlX2Rp Y3QoCiAJCWlmICghaW5ub2Jhc2VfdGFibGVfZmxhZ3ModGFibGVfbmFtZSwgYWx0ZXJlZF90YWJs ZSwKIAkJCQkJICBoYV9hbHRlcl9pbmZvLT5jcmVhdGVfaW5mbywKIAkJCQkJICB0cngtPm15c3Fs X3RoZCwKLQkJCQkJICBzcnZfZmlsZV9wZXJfdGFibGUsCisJCQkJCSAgc3J2X2ZpbGVfcGVyX3Rh YmxlCisJCQkJCSAgfHwgdXNlcl90YWJsZS0+c3BhY2UgIT0gMCwKIAkJCQkJICAmZmxhZ3MsICZm bGFnczIpKSB7CiAJCQlnb3RvIG5ld19jbHVzdGVyZWRfZmFpbGVkOwogCQl9CkBAIC0yNDc5LDEy ICsyNTIzLDIyIEBAIGNvbF9mYWlsOgogCQkJZ290byBlcnJfZXhpdDsKIAkJfQogCisJCWlmICho YV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzCisJCSAgICAmIEFsdGVyX2lucGxhY2VfaW5mbzo6 QUREX0NPTFVNTikgeworCQkJYWRkX2NvbHMgPSBkdHVwbGVfY3JlYXRlKAorCQkJCWhlYXAsIGRp Y3RfdGFibGVfZ2V0X25fY29scyhpbmRleGVkX3RhYmxlKSk7CisJCQlkaWN0X3RhYmxlX2NvcHlf dHlwZXMoYWRkX2NvbHMsIGluZGV4ZWRfdGFibGUpOworCQl9IGVsc2UgeworCQkJYWRkX2NvbHMg PSBOVUxMOworCQl9CisKIAkJY29sX21hcCA9IGlubm9iYXNlX2J1aWxkX2NvbF9tYXAoCiAJCQlo YV9hbHRlcl9pbmZvLCBhbHRlcmVkX3RhYmxlLCBvbGRfdGFibGUsCi0JCQlpbmRleGVkX3RhYmxl LCB1c2VyX3RhYmxlLCBoZWFwKTsKKwkJCWluZGV4ZWRfdGFibGUsIHVzZXJfdGFibGUsIGFkZF9j b2xzLCBoZWFwKTsKIAl9IGVsc2UgewogCQlEQlVHX0FTU0VSVCghaW5ub2Jhc2VfbmVlZF9yZWJ1 aWxkKGhhX2FsdGVyX2luZm8pKTsKIAkJY29sX21hcCA9IE5VTEw7CisJCWFkZF9jb2xzID0gTlVM TDsKIAl9CiAKIAkvKiBBc3NpZ24gdGFibGVfaWQsIHNvIHRoYXQgbm8gdGFibGUgaWQgb2YKQEAg LTI2NTcsNyArMjcxMSw3IEBAIGVycm9yX2hhbmRsaW5nOgogCQkJZHJvcF9pbmRleCwgbl9kcm9w X2luZGV4LAogCQkJZHJvcF9mb3JlaWduLCBuX2Ryb3BfZm9yZWlnbiwKIAkJCWFkZF9mb3JlaWdu LCBuX2FkZF9mb3JlaWduLAotCQkJIWxvY2tlZCwgaGVhcCwgdHJ4LCBpbmRleGVkX3RhYmxlLCBj b2xfbWFwKTsKKwkJCSFsb2NrZWQsIGhlYXAsIHRyeCwgaW5kZXhlZF90YWJsZSwgY29sX21hcCwg YWRkX2NvbHMpOwogCQlEQlVHX1JFVFVSTihmYWxzZSk7CiAJY2FzZSBEQl9UQUJMRVNQQUNFX0FM UkVBRFlfRVhJU1RTOgogCQlteV9lcnJvcihFUl9UQUJMRV9FWElTVFNfRVJST1IsIE1ZRigwKSwg Iih1bmtub3duKSIpOwpAQCAtMzE4OCw3ICszMjQyLDcgQEAgaW5kZXhfbmVlZGVkOgogCQkJCQlk cm9wX2luZGV4LCBuX2Ryb3BfaW5kZXgsCiAJCQkJCWRyb3BfZmssIG5fZHJvcF9maywKIAkJCQkJ YWRkX2ZrLCBuX2FkZF9maywgIWxvY2tlZCwKLQkJCQkJaGVhcCwgTlVMTCwgaW5kZXhlZF90YWJs ZSwgTlVMTCk7CisJCQkJCWhlYXAsIE5VTEwsIGluZGV4ZWRfdGFibGUsIE5VTEwsIE5VTEwpOwog CQl9CiAKIGZ1bmNfZXhpdDoKQEAgLTMzNTIsNyArMzQwNiw3IEBAIG9rX2V4aXQ6CiAJCXByZWJ1 aWx0LT50YWJsZSwgY3R4LT5pbmRleGVkX3RhYmxlLAogCQljdHgtPm9ubGluZSwKIAkJY3R4LT5h ZGQsIGN0eC0+YWRkX2tleV9udW1iZXJzLCBjdHgtPm51bV90b19hZGQsIHRhYmxlLAotCQljdHgt PmNvbF9tYXApOworCQljdHgtPmFkZF9jb2xzLCBjdHgtPmNvbF9tYXApOwogI2lmbmRlZiBEQlVH X09GRgogb29tOgogI2VuZGlmIC8qICFEQlVHX09GRiAqLwpAQCAtMzM2MCw3ICszNDE0LDggQEAg b29tOgogCSAgICAmJiBjdHgtPmluZGV4ZWRfdGFibGUgIT0gcHJlYnVpbHQtPnRhYmxlKSB7CiAJ CURFQlVHX1NZTkNfQygicm93X2xvZ190YWJsZV9hcHBseTFfYmVmb3JlIik7CiAJCWVycm9yID0g cm93X2xvZ190YWJsZV9hcHBseSgKLQkJCWN0eC0+dGhyLCBwcmVidWlsdC0+dGFibGUsIHRhYmxl LCBjdHgtPmNvbF9tYXApOworCQkJY3R4LT50aHIsIHByZWJ1aWx0LT50YWJsZSwgdGFibGUsCisJ CQljdHgtPmFkZF9jb2xzLCBjdHgtPmNvbF9tYXApOwogCX0KIAogCS8qIEFmdGVyIGFuIGVycm9y LCByZW1vdmUgYWxsIHRob3NlIGluZGV4IGRlZmluaXRpb25zCkBAIC0zOTQ2LDcgKzQwMDEsNyBA QCBoYV9pbm5vYmFzZTo6Y29tbWl0X2lucGxhY2VfYWx0ZXJfdGFibGUoCiAJCQlERUJVR19TWU5D X0MoInJvd19sb2dfdGFibGVfYXBwbHkyX2JlZm9yZSIpOwogCQkJZXJyb3IgPSByb3dfbG9nX3Rh YmxlX2FwcGx5KAogCQkJCWN0eC0+dGhyLCBwcmVidWlsdC0+dGFibGUsIHRhYmxlLAotCQkJCWN0 eC0+Y29sX21hcCk7CisJCQkJY3R4LT5hZGRfY29scywgY3R4LT5jb2xfbWFwKTsKIAogCQkJc3dp dGNoIChlcnJvcikgewogCQkJCUtFWSoJZHVwX2tleTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvbWVtMG1lbS5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL21lbTBtZW0uaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUw NzI4MjgteHlwMTFxN3lvMnptNnhweQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvbWVt MG1lbS5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTE0MzIzMi1uZWQ5 ejJyeHg5MzFzOTF0CkBAIC0yNDcsNyArMjQ3LDcgQEAgbWVtX2hlYXBfZnJlZV9oZWFwX3RvcCgK IHsKIAltZW1fYmxvY2tfdCoJYmxvY2s7CiAJbWVtX2Jsb2NrX3QqCXByZXZfYmxvY2s7Ci0jaWZk ZWYgVU5JVl9NRU1fREVCVUcKKyNpZiBkZWZpbmVkIFVOSVZfTUVNX0RFQlVHIHx8IGRlZmluZWQg VU5JVl9ERUJVRwogCWlib29sCQllcnJvcjsKIAl1bGludAkJdG90YWxfc2l6ZTsKIAl1bGludAkJ c2l6ZTsKQEAgLTI1NSw3ICsyNTUsNyBAQCBtZW1faGVhcF9mcmVlX2hlYXBfdG9wKAogCiAJdXRf YWQobWVtX2hlYXBfY2hlY2soaGVhcCkpOwogCi0jaWZkZWYgVU5JVl9NRU1fREVCVUcKKyNpZiBk ZWZpbmVkIFVOSVZfTUVNX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9ERUJVRwogCiAJLyogVmFsaWRh dGUgdGhlIGhlYXAgYW5kIGdldCBpdHMgdG90YWwgYWxsb2NhdGVkIHNpemUgKi8KIAltZW1faGVh cF92YWxpZGF0ZV9vcl9wcmludChoZWFwLCBOVUxMLCBGQUxTRSwgJmVycm9yLCAmdG90YWxfc2l6 ZSwKQEAgLTI5NCw5ICsyOTQsOSBAQCBtZW1faGVhcF9mcmVlX2hlYXBfdG9wKAogCS8qIFNldCB0 aGUgZnJlZSBmaWVsZCBvZiBibG9jayAqLwogCW1lbV9ibG9ja19zZXRfZnJlZShibG9jaywgb2xk X3RvcCAtIChieXRlKikgYmxvY2spOwogCi0jaWZkZWYgVU5JVl9NRU1fREVCVUcKIAl1dF9hZCht ZW1fYmxvY2tfZ2V0X3N0YXJ0KGJsb2NrKSA8PSBtZW1fYmxvY2tfZ2V0X2ZyZWUoYmxvY2spKTsK LQorCVVOSVZfTUVNX0FTU0VSVF9XKG9sZF90b3AsIChieXRlKikgYmxvY2sgKyBibG9jay0+bGVu IC0gb2xkX3RvcCk7CisjaWYgZGVmaW5lZCBVTklWX01FTV9ERUJVRwogCS8qIEluIHRoZSBkZWJ1 ZyB2ZXJzaW9uIGVyYXNlIGJsb2NrIGZyb20gdG9wIHVwICovCiAJbWVtX2VyYXNlX2J1ZihvbGRf dG9wLCAoYnl0ZSopIGJsb2NrICsgYmxvY2stPmxlbiAtIG9sZF90b3ApOwogCkBAIC0zMDQsOCAr MzA0LDYgQEAgbWVtX2hlYXBfZnJlZV9oZWFwX3RvcCgKIAltdXRleF9lbnRlcigmbWVtX2hhc2hf bXV0ZXgpOwogCW1lbV9jdXJyZW50X2FsbG9jYXRlZF9tZW1vcnkgLT0gKHRvdGFsX3NpemUgLSBz aXplKTsKIAltdXRleF9leGl0KCZtZW1faGFzaF9tdXRleCk7Ci0jZWxzZSAvKiBVTklWX01FTV9E RUJVRyAqLwotCVVOSVZfTUVNX0FTU0VSVF9XKG9sZF90b3AsIChieXRlKikgYmxvY2sgKyBibG9j ay0+bGVuIC0gb2xkX3RvcCk7CiAjZW5kaWYgLyogVU5JVl9NRU1fREVCVUcgKi8KIAlVTklWX01F TV9BTExPQyhvbGRfdG9wLCAoYnl0ZSopIGJsb2NrICsgYmxvY2stPmxlbiAtIG9sZF90b3ApOwog Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBsb2cuaCcK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBsb2cuaAlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEyMDYwNTA3MjgyOC14eXAxMXE3eW8yem02eHB5CisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbG9nLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMjA2MDUxNDMyMzItbmVkOXoycnh4OTMxczkxdApAQCAtMTc4LDkgKzE3OCwxMiBAQCBy b3dfbG9nX3RhYmxlX2FwcGx5KAogCQkJCS8qITwgaW46IG9sZCB0YWJsZSAqLwogCXN0cnVjdCBU QUJMRSoJdGFibGUsCS8qITwgaW4vb3V0OiBNeVNRTCB0YWJsZQogCQkJCShmb3IgcmVwb3J0aW5n IGR1cGxpY2F0ZXMpICovCisJY29uc3QgZHR1cGxlX3QqCWFkZF9jb2xzLAorCQkJCS8qITwgaW46 IGRlZmF1bHQgdmFsdWVzIG9mCisJCQkJYWRkZWQgY29sdW1ucywgb3IgTlVMTCAqLwogCWNvbnN0 IHVsaW50Kgljb2xfbWFwKS8qITwgaW46IG1hcHBpbmcgb2Ygb2xkIGNvbHVtbgogCQkJCW51bWJl cnMgdG8gbmV3IG9uZXMsIG9yIE5VTEwgKi8KLQlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJu X3VudXNlZF9yZXN1bHQpKTsKKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKDEsMiwzLDUpLCB3YXJu X3VudXNlZF9yZXN1bHQpKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIEdldCB0aGUgbGF0ZXN0IHRyYW5zYWN0aW9uIElEIHRo YXQgaGFzIGludm9rZWQgcm93X2xvZ19vbmxpbmVfb3AoKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbWVyZ2UuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3JvdzBtZXJnZS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIw NjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L3JvdzBtZXJnZS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjA1MTQzMjMy LW5lZDl6MnJ4eDkzMXM5MXQKQEAgLTI5Myw2ICsyOTMsOCBAQCByb3dfbWVyZ2VfYnVpbGRfaW5k ZXhlcygKIAlzdHJ1Y3QgVEFCTEUqCXRhYmxlLAkJLyohPCBpbi9vdXQ6IE15U1FMIHRhYmxlLCBm b3IKIAkJCQkJcmVwb3J0aW5nIGVycm9uZW91cyBrZXkgdmFsdWUKIAkJCQkJaWYgYXBwbGljYWJs ZSAqLworCWNvbnN0IGR0dXBsZV90KglhZGRfY29scywJLyohPCBpbjogZGVmYXVsdCB2YWx1ZXMg b2YKKwkJCQkJYWRkZWQgY29sdW1ucywgb3IgTlVMTCAqLwogCWNvbnN0IHVsaW50Kgljb2xfbWFw KQkvKiE8IGluOiBtYXBwaW5nIG9mIG9sZCBjb2x1bW4KIAkJCQkJbnVtYmVycyB0byBuZXcgb25l cywgb3IgTlVMTAogCQkJCQlpZiBvbGRfdGFibGUgPT0gbmV3X3RhYmxlICovCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzByb3cuaCcKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzByb3cuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEyMDYwNTA3MjgyOC14eXAxMXE3eW8yem02eHB5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9yb3cwcm93LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUx NDMyMzItbmVkOXoycnh4OTMxczkxdApAQCAtMTQzLDYgKzE0Myw5IEBAIHJvd19idWlsZCgKIAkJ CQkJY29uc3VsdGVkIGluc3RlYWQ7IHRoZSB1c2VyCiAJCQkJCWNvbHVtbnMgaW4gdGhpcyB0YWJs ZSBzaG91bGQgYmUKIAkJCQkJdGhlIHNhbWUgY29sdW1ucyBhcyBpbiBpbmRleC0+dGFibGUgKi8K Kwljb25zdCBkdHVwbGVfdCoJCWFkZF9jb2xzLAorCQkJCQkvKiE8IGluOiBkZWZhdWx0IHZhbHVl cyBvZgorCQkJCQlhZGRlZCBjb2x1bW5zLCBvciBOVUxMICovCiAJY29uc3QgdWxpbnQqCQljb2xf bWFwLC8qITwgaW46IG1hcHBpbmcgb2Ygb2xkIGNvbHVtbgogCQkJCQludW1iZXJzIHRvIG5ldyBv bmVzLCBvciBOVUxMICovCiAJcm93X2V4dF90KioJCWV4dCwJLyohPCBvdXQsIG93bjogY2FjaGUg b2YKQEAgLTE1MCw3ICsxNTMsNyBAQCByb3dfYnVpbGQoCiAJCQkJCXByZWZpeGVzLCBvciBOVUxM ICovCiAJbWVtX2hlYXBfdCoJCWhlYXApCS8qITwgaW46IG1lbW9yeSBoZWFwIGZyb20gd2hpY2gK IAkJCQkJdGhlIG1lbW9yeSBuZWVkZWQgaXMgYWxsb2NhdGVkICovCi0JX19hdHRyaWJ1dGVfXygo bm9ubnVsbCgyLDMsOCksIHdhcm5fdW51c2VkX3Jlc3VsdCkpOworCV9fYXR0cmlidXRlX18oKG5v bm51bGwoMiwzLDkpLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29u dmVydHMgYW4gaW5kZXggcmVjb3JkIHRvIGEgdHlwZWQgZGF0YSB0dXBsZS4KIEByZXR1cm4gaW5k ZXggZW50cnkgYnVpbHQ7IGRvZXMgbm90IHNldCBpbmZvX2JpdHMsIGFuZCB0aGUgZGF0YSBmaWVs ZHMKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbG9nLmNjJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbG9nLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvc3RvcmFnZS9p bm5vYmFzZS9yb3cvcm93MGxvZy5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEy MDYwNTE0MzIzMi1uZWQ5ejJyeHg5MzFzOTF0CkBAIC0xMDAyLDEzICsxMDAyLDE1IEBAIHJvd19s b2dfdGFibGVfaXNfcm9sbGJhY2soCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29udmVydHMgYSBsb2cgcmVjb3JkIHRvIGEgdGFi bGUgcm93LgogQHJldHVybiBjb252ZXJ0ZWQgcm93LCBvciBOVUxMIGlmIHRoZSBjb252ZXJzaW9u IGZhaWxzICovCi1zdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVz dWx0KSkKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub25udWxsKDEsMiwzLDUsNiw3LDgpLCB3YXJu X3VudXNlZF9yZXN1bHQpKQogY29uc3QgZHR1cGxlX3QqCiByb3dfbG9nX3RhYmxlX2FwcGx5X2Nv bnZlcnRfbXJlYygKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IG1y ZWNfdCoJCW1yZWMsCQkvKiE8IGluOiBtZXJnZSByZWNvcmQgKi8KIAljb25zdCBkaWN0X2luZGV4 X3QqCWluZGV4LAkJLyohPCBpbjogaW5kZXggb2YgbXJlYyAqLwogCWNvbnN0IHVsaW50KgkJb2Zm c2V0cywJLyohPCBpbjogb2Zmc2V0cyBvZiBtcmVjICovCisJY29uc3QgZHR1cGxlX3QqCQlhZGRf Y29scywJLyohPCBpbjogZGVmYXVsdCB2YWx1ZXMgb2YKKwkJCQkJCWFkZGVkIGNvbHVtbnMsIG9y IE5VTEwgKi8KIAljb25zdCB1bGludCoJCWNvbF9tYXAsCS8qITwgaW46IG1hcHBpbmcgb2Ygb2xk IGNvbHVtbgogCQkJCQkJbnVtYmVycyB0byBuZXcgb25lcywgb3IgTlVMTCAqLwogCW1lbV9oZWFw X3QqCQloZWFwLAkJLyohPCBpbi9vdXQ6IG1lbW9yeSBoZWFwICovCkBAIC0xMDIwLDggKzEwMjIs MTggQEAgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMoCiAJZHR1cGxlX3QqCXJvdzsK IAogCS8qIFRoaXMgaXMgYmFzZWQgb24gcm93X2J1aWxkKCkuICovCi0Jcm93ID0gZHR1cGxlX2Ny ZWF0ZShoZWFwLCBkaWN0X3RhYmxlX2dldF9uX2NvbHMobmV3X3RhYmxlKSk7Ci0JZGljdF90YWJs ZV9jb3B5X3R5cGVzKHJvdywgbmV3X3RhYmxlKTsKKwlpZiAoYWRkX2NvbHMpIHsKKwkJcm93ID0g ZHR1cGxlX2NvcHkoYWRkX2NvbHMsIGhlYXApOworCQkvKiBkaWN0X3RhYmxlX2NvcHlfdHlwZXMo KSB3b3VsZCBzZXQgdGhlIGZpZWxkcyB0byBOVUxMICovCisJCWZvciAodWxpbnQgaSA9IDA7IGkg PCBkaWN0X3RhYmxlX2dldF9uX2NvbHMobmV3X3RhYmxlKTsgaSsrKSB7CisJCQlkaWN0X2NvbF9j b3B5X3R5cGUoCisJCQkJZGljdF90YWJsZV9nZXRfbnRoX2NvbChuZXdfdGFibGUsIGkpLAorCQkJ CWRmaWVsZF9nZXRfdHlwZShkdHVwbGVfZ2V0X250aF9maWVsZChyb3csIGkpKSk7CisJCX0KKwl9 IGVsc2UgeworCQlyb3cgPSBkdHVwbGVfY3JlYXRlKGhlYXAsIGRpY3RfdGFibGVfZ2V0X25fY29s cyhuZXdfdGFibGUpKTsKKwkJZGljdF90YWJsZV9jb3B5X3R5cGVzKHJvdywgbmV3X3RhYmxlKTsK Kwl9CiAKIAlmb3IgKHVsaW50IGkgPSAwOyBpIDwgcmVjX29mZnNfbl9maWVsZHMob2Zmc2V0cyk7 IGkrKykgewogCQljb25zdCBkaWN0X2ZpZWxkX3QqCWluZF9maWVsZApAQCAtMTE2Niw3ICsxMTc4 LDcgQEAgcm93X2xvZ190YWJsZV9hcHBseV9pbnNlcnRfbG93KAogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJlcGxheXMgYW4gaW5z ZXJ0IG9wZXJhdGlvbiBvbiBhIHRhYmxlIHRoYXQgd2FzIHJlYnVpbHQuCiBAcmV0dXJuIERCX1NV Q0NFU1Mgb3IgZXJyb3IgY29kZSAqLwotc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdh cm5fdW51c2VkX3Jlc3VsdCkpCitzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCgxLDIsMyw0 LDYsNyw4LDkpLCB3YXJuX3VudXNlZF9yZXN1bHQpKQogZGJlcnJfdAogcm93X2xvZ190YWJsZV9h cHBseV9pbnNlcnQoCiAvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTExNzUsNiArMTE4 Nyw4IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfaW5zZXJ0KAogCWNvbnN0IHVsaW50KgkJb2Zmc2V0 cywJLyohPCBpbjogb2Zmc2V0cyBvZiBtcmVjICovCiAJbWVtX2hlYXBfdCoJCW9mZnNldHNfaGVh cCwJLyohPCBpbi9vdXQ6IG1lbW9yeSBoZWFwCiAJCQkJCQl0aGF0IGNhbiBiZSBlbXB0aWVkICov CisJY29uc3QgZHR1cGxlX3QqCQlhZGRfY29scywJLyohPCBpbjogZGVmYXVsdCB2YWx1ZXMgb2YK KwkJCQkJCWFkZGVkIGNvbHVtbnMsIG9yIE5VTEwgKi8KIAljb25zdCB1bGludCoJCWNvbF9tYXAs CS8qITwgaW46IG1hcHBpbmcgb2Ygb2xkIGNvbHVtbgogCQkJCQkJbnVtYmVycyB0byBuZXcgb25l cywgb3IgTlVMTCAqLwogCW1lbV9oZWFwX3QqCQloZWFwLAkJLyohPCBpbi9vdXQ6IG1lbW9yeSBo ZWFwICovCkBAIC0xMTg1LDcgKzExOTksNyBAQCByb3dfbG9nX3RhYmxlX2FwcGx5X2luc2VydCgK IHsKIAlkYmVycl90CQllcnJvcjsKIAljb25zdCBkdHVwbGVfdCoJcm93CT0gcm93X2xvZ190YWJs ZV9hcHBseV9jb252ZXJ0X21yZWMoCi0JCW1yZWMsIGR1cC0+aW5kZXgsIG9mZnNldHMsIGNvbF9t YXAsIGhlYXAsIG5ld190YWJsZSwKKwkJbXJlYywgZHVwLT5pbmRleCwgb2Zmc2V0cywgYWRkX2Nv bHMsIGNvbF9tYXAsIGhlYXAsIG5ld190YWJsZSwKIAkJJmVycm9yKTsKIAogCXV0X2FkKCFyb3cg PT0gKGVycm9yICE9IERCX1NVQ0NFU1MpKTsKQEAgLTEyMjgsNyArMTI0Miw3IEBAIHJvd19sb2df dGFibGVfYXBwbHlfZGVsZXRlX2xvdygKIAkJLyogQnVpbGQgYSByb3cgdGVtcGxhdGUgZm9yIHB1 cmdpbmcgc2Vjb25kYXJ5IGluZGV4IGVudHJpZXMuICovCiAJCXJvdyA9IHJvd19idWlsZCgKIAkJ CVJPV19DT1BZX0RBVEEsIGluZGV4LCBidHJfcGN1cl9nZXRfcmVjKHBjdXIpLAotCQkJb2Zmc2V0 cywgTlVMTCwgTlVMTCwgJmV4dCwgaGVhcCk7CisJCQlvZmZzZXRzLCBOVUxMLCBOVUxMLCBOVUxM LCAmZXh0LCBoZWFwKTsKIAl9IGVsc2UgewogCQlyb3cgPSBOVUxMOwogCX0KQEAgLTEzODksNyAr MTQwMyw3IEBAIGFsbF9kb25lOgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIFJlcGxheXMgYW4gdXBkYXRlIG9wZXJhdGlvbiBvbiBh IHRhYmxlIHRoYXQgd2FzIHJlYnVpbHQuCiBAcmV0dXJuIERCX1NVQ0NFU1Mgb3IgZXJyb3IgY29k ZSAqLwotc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkp CitzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCgxLDQsNSw2LDgsOSwxMCwxMSwxMiksIHdh cm5fdW51c2VkX3Jlc3VsdCkpCiBkYmVycl90CiByb3dfbG9nX3RhYmxlX2FwcGx5X3VwZGF0ZSgK IC8qPT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTQwNCw2ICsxNDE4LDggQEAgcm93X2xv Z190YWJsZV9hcHBseV91cGRhdGUoCiAJY29uc3QgdWxpbnQqCQlvZmZzZXRzLAkvKiE8IGluOiBv ZmZzZXRzIG9mIG1yZWMgKi8KIAltZW1faGVhcF90KgkJb2Zmc2V0c19oZWFwLAkvKiE8IGluL291 dDogbWVtb3J5IGhlYXAKIAkJCQkJCXRoYXQgY2FuIGJlIGVtcHRpZWQgKi8KKwljb25zdCBkdHVw bGVfdCoJCWFkZF9jb2xzLAkvKiE8IGluOiBkZWZhdWx0IHZhbHVlcyBvZgorCQkJCQkJYWRkZWQg Y29sdW1ucywgb3IgTlVMTCAqLwogCWNvbnN0IHVsaW50KgkJY29sX21hcCwJLyohPCBpbjogbWFw cGluZyBvZiBvbGQgY29sdW1uCiAJCQkJCQludW1iZXJzIHRvIG5ldyBvbmVzLCBvciBOVUxMICov CiAJbWVtX2hlYXBfdCoJCWhlYXAsCQkvKiE8IGluL291dDogbWVtb3J5IGhlYXAgKi8KQEAgLTE0 MjksNyArMTQ0NSw4IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfdXBkYXRlKAogCSAgICAgICsgKGR1 cC0+aW5kZXgtPm9ubGluZV9sb2ctPnNhbWVfcGsgPyAwIDogMikpOwogCiAJcm93ID0gcm93X2xv Z190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMoCi0JCW1yZWMsIGR1cC0+aW5kZXgsIG9mZnNldHMs IGNvbF9tYXAsIGhlYXAsIG5ld190YWJsZSwgJmVycm9yKTsKKwkJbXJlYywgZHVwLT5pbmRleCwg b2Zmc2V0cywgYWRkX2NvbHMsIGNvbF9tYXAsCisJCWhlYXAsIG5ld190YWJsZSwgJmVycm9yKTsK IAogCXV0X2FkKCFyb3cgPT0gKGVycm9yICE9IERCX1NVQ0NFU1MpKTsKIApAQCAtMTU2MCw3ICsx NTc3LDcgQEAgZGVsZXRlX2luc2VydDoKIAkJb2xkX3JvdyA9IHJvd19idWlsZChST1dfQ09QWV9E QVRBLCBpbmRleCwKIAkJCQkgICAgYnRyX3BjdXJfZ2V0X3JlYygmcGN1ciksCiAJCQkJICAgIGN1 cl9vZmZzZXRzLCBuZXdfdGFibGUsCi0JCQkJICAgIGNvbF9tYXAsICZvbGRfZXh0LCBoZWFwKTsK KwkJCQkgICAgYWRkX2NvbHMsIGNvbF9tYXAsICZvbGRfZXh0LCBoZWFwKTsKIAkJdXRfYWQob2xk X3Jvdyk7CiAJfSBlbHNlIHsKIAkJb2xkX3JvdyA9IE5VTEw7CkBAIC0xNjUwLDcgKzE2NjcsNyBA QCBmdW5jX2V4aXQ6CiBBcHBsaWVzIGFuIG9wZXJhdGlvbiB0byBhIHRhYmxlIHRoYXQgd2FzIHJl YnVpbHQuCiBAcmV0dXJuIE5VTEwgb24gZmFpbHVyZSAobXJlYyBjb3JydXB0aW9uKSBvciB3aGVu IG91dCBvZiBkYXRhOwogcG9pbnRlciB0byBuZXh0IHJlY29yZCBvbiBzdWNjZXNzICovCi1zdGF0 aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSkKK3N0YXRpYyBf X2F0dHJpYnV0ZV9fKChub25udWxsKDEsNCw2LDcsOCw5LDEwLDExLDEyLDEzKSwgd2Fybl91bnVz ZWRfcmVzdWx0KSkKIGNvbnN0IG1yZWNfdCoKIHJvd19sb2dfdGFibGVfYXBwbHlfb3AoCiAvKj09 PT09PT09PT09PT09PT09PT0qLwpAQCAtMTY2MSw2ICsxNjc4LDggQEAgcm93X2xvZ190YWJsZV9h cHBseV9vcCgKIAkJCQkJCURCX1RSWF9JRCBpbiBuZXcgaW5kZXggKi8KIAlkaWN0X3RhYmxlX3Qq CQluZXdfdGFibGUsCS8qITwgaW4vb3V0OiB0YWJsZQogCQkJCQkJYmVpbmcgcmVidWlsdCAqLwor CWNvbnN0IGR0dXBsZV90KgkJYWRkX2NvbHMsCS8qITwgaW46IGRlZmF1bHQgdmFsdWVzIG9mCisJ CQkJCQlhZGRlZCBjb2x1bW5zLCBvciBOVUxMICovCiAJY29uc3QgdWxpbnQqCQljb2xfbWFwLAkv KiE8IGluOiBtYXBwaW5nIG9mIG9sZCBjb2x1bW4KIAkJCQkJCW51bWJlcnMgdG8gbmV3IG9uZXMs IG9yIE5VTEwgKi8KIAlyb3dfbWVyZ2VfZHVwX3QqCWR1cCwJCS8qITwgaW4vb3V0OiBmb3IgcmVw b3J0aW5nCkBAIC0xNzI4LDcgKzE3NDcsOCBAQCByb3dfbG9nX3RhYmxlX2FwcGx5X29wKAogCQkJ CSAgICB0cnhfcmVhZF90cnhfaWQoZGJfdHJ4X2lkKSkpIHsKIAkJCQkqZXJyb3IgPSByb3dfbG9n X3RhYmxlX2FwcGx5X2luc2VydCgKIAkJCQkJdGhyLCBtcmVjLCBvZmZzZXRzLCBvZmZzZXRzX2hl YXAsCi0JCQkJCWNvbF9tYXAsIGhlYXAsIG5ld190YWJsZSwgZHVwKTsKKwkJCQkJYWRkX2NvbHMs IGNvbF9tYXAsCisJCQkJCWhlYXAsIG5ld190YWJsZSwgZHVwKTsKIAkJCX0KIAkJfQogCQlicmVh azsKQEAgLTE4OTgsNyArMTkxOCw3IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfb3AoCiAJCQkJKmVy cm9yID0gcm93X2xvZ190YWJsZV9hcHBseV91cGRhdGUoCiAJCQkJCXRociwgdHJ4X2lkX2NvbCwg bmV3X3RyeF9pZF9jb2wsCiAJCQkJCW1yZWMsIG9mZnNldHMsIG9mZnNldHNfaGVhcCwKLQkJCQkJ Y29sX21hcCwKKwkJCQkJYWRkX2NvbHMsIGNvbF9tYXAsCiAJCQkJCWhlYXAsIG5ld190YWJsZSwg ZHVwLCBvbGRfcGspOwogCQkJfQogCQl9CkBAIC0xOTE0LDExICsxOTM0LDE0IEBAIHJvd19sb2df dGFibGVfYXBwbHlfb3AoCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogQXBwbGllcyBvcGVyYXRpb25zIHRvIGEgdGFibGUgd2FzIHJl YnVpbHQuCiBAcmV0dXJuIERCX1NVQ0NFU1MsIG9yIGVycm9yIGNvZGUgb24gZmFpbHVyZSAqLwot c3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwpKQorc3RhdGljIF9fYXR0cmlidXRlX18oKG5v bm51bGwoMSwzLDQpLCB3YXJuX3VudXNlZF9yZXN1bHQpKQogZGJlcnJfdAogcm93X2xvZ190YWJs ZV9hcHBseV9vcHMoCiAvKj09PT09PT09PT09PT09PT09PT09Ki8KIAlxdWVfdGhyX3QqCXRociwJ LyohPCBpbjogcXVlcnkgZ3JhcGggKi8KKwljb25zdCBkdHVwbGVfdCoJYWRkX2NvbHMsCisJCQkJ LyohPCBpbjogZGVmYXVsdCB2YWx1ZXMgb2YKKwkJCQlhZGRlZCBjb2x1bW5zLCBvciBOVUxMICov CiAJY29uc3QgdWxpbnQqCWNvbF9tYXAsLyohPCBpbjogbWFwcGluZyBvZiBvbGQgY29sdW1uCiAJ CQkJbnVtYmVycyB0byBuZXcgb25lcywgb3IgTlVMTCAqLwogCXJvd19tZXJnZV9kdXBfdCpkdXAp CS8qITwgaW4vb3V0OiBmb3IgcmVwb3J0aW5nIGR1cGxpY2F0ZSBrZXkKQEAgLTIwOTUsNyArMjEx OCw3IEBAIGFsbF9kb25lOgogCQkgICAgICAgKCZpbmRleC0+b25saW5lX2xvZy0+aGVhZC5idWYp WzFdIC0gbXJlY19lbmQpOwogCQltcmVjID0gcm93X2xvZ190YWJsZV9hcHBseV9vcCgKIAkJCXRo ciwgdHJ4X2lkX2NvbCwgbmV3X3RyeF9pZF9jb2wsCi0JCQlpbmRleC0+b25saW5lX2xvZy0+dGFi bGUsIGNvbF9tYXAsCisJCQlpbmRleC0+b25saW5lX2xvZy0+dGFibGUsIGFkZF9jb2xzLCBjb2xf bWFwLAogCQkJZHVwLCAmZXJyb3IsIG9mZnNldHNfaGVhcCwgaGVhcCwKIAkJCWluZGV4LT5vbmxp bmVfbG9nLT5oZWFkLmJ1ZiwKIAkJCSgmaW5kZXgtPm9ubGluZV9sb2ctPmhlYWQuYnVmKVsxXSwg b2Zmc2V0cyk7CkBAIC0yMTk0LDcgKzIyMTcsNyBAQCBhbGxfZG9uZToKIAogCQluZXh0X21yZWMg PSByb3dfbG9nX3RhYmxlX2FwcGx5X29wKAogCQkJdGhyLCB0cnhfaWRfY29sLCBuZXdfdHJ4X2lk X2NvbCwKLQkJCWluZGV4LT5vbmxpbmVfbG9nLT50YWJsZSwgY29sX21hcCwKKwkJCWluZGV4LT5v bmxpbmVfbG9nLT50YWJsZSwgYWRkX2NvbHMsIGNvbF9tYXAsCiAJCQlkdXAsICZlcnJvciwgb2Zm c2V0c19oZWFwLCBoZWFwLAogCQkJbXJlYywgbXJlY19lbmQsIG9mZnNldHMpOwogCkBAIC0yMjYz LDYgKzIyODYsOSBAQCByb3dfbG9nX3RhYmxlX2FwcGx5KAogCQkJCS8qITwgaW46IG9sZCB0YWJs ZSAqLwogCXN0cnVjdCBUQUJMRSoJdGFibGUsCS8qITwgaW4vb3V0OiBNeVNRTCB0YWJsZQogCQkJ CShmb3IgcmVwb3J0aW5nIGR1cGxpY2F0ZXMpICovCisJY29uc3QgZHR1cGxlX3QqCWFkZF9jb2xz LAorCQkJCS8qITwgaW46IGRlZmF1bHQgdmFsdWVzIG9mCisJCQkJYWRkZWQgY29sdW1ucywgb3Ig TlVMTCAqLwogCWNvbnN0IHVsaW50Kgljb2xfbWFwKS8qITwgaW46IG1hcHBpbmcgb2Ygb2xkIGNv bHVtbgogCQkJCW51bWJlcnMgdG8gbmV3IG9uZXMsIG9yIE5VTEwgKi8KIHsKQEAgLTIyOTEsNyAr MjMxNyw3IEBAIHJvd19sb2dfdGFibGVfYXBwbHkoCiAJCXV0X2FkKDApOwogCQllcnJvciA9IERC X0VSUk9SOwogCX0gZWxzZSB7Ci0JCWVycm9yID0gcm93X2xvZ190YWJsZV9hcHBseV9vcHModGhy LCBjb2xfbWFwLCAmZHVwKTsKKwkJZXJyb3IgPSByb3dfbG9nX3RhYmxlX2FwcGx5X29wcyh0aHIs IGFkZF9jb2xzLCBjb2xfbWFwLCAmZHVwKTsKIAl9CiAKIAlyd19sb2NrX3hfdW5sb2NrKGRpY3Rf aW5kZXhfZ2V0X2xvY2soY2x1c3RfaW5kZXgpKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2lubm9iYXNlL3Jvdy9yb3cwbWVyZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzBtZXJnZS5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTA3MjgyOC14 eXAxMXE3eW8yem02eHB5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTE0MzIzMi1uZWQ5ejJyeHg5MzFz OTF0CkBAIC0xMjEzLDcgKzEyMTMsNyBAQCByb3dfbWVyZ2Vfc2tpcF9yZWMoCiBSZWFkcyBjbHVz dGVyZWQgaW5kZXggb2YgdGhlIHRhYmxlIGFuZCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGVzCiBjb250 YWluaW5nIHRoZSBpbmRleCBlbnRyaWVzIGZvciB0aGUgaW5kZXhlcyB0byBiZSBidWlsdC4KIEBy ZXR1cm4JREJfU1VDQ0VTUyBvciBlcnJvciAqLwotc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51 bGwoMSwyLDMsNCw2LDksMTAsMTMpLHdhcm5fdW51c2VkX3Jlc3VsdCkpCitzdGF0aWMgX19hdHRy aWJ1dGVfXygobm9ubnVsbCgxLDIsMyw0LDYsOSwxMCwxNCksd2Fybl91bnVzZWRfcmVzdWx0KSkK IGRiZXJyX3QKIHJvd19tZXJnZV9yZWFkX2NsdXN0ZXJlZF9pbmRleCgKIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09Ki8KQEAgLTEyMzgsNiArMTIzOCw5IEBAIHJvd19tZXJnZV9yZWFkX2Ns dXN0ZXJlZF9pbmRleCgKIAljb25zdCB1bGludCoJCWtleV9udW1iZXJzLAogCQkJCQkvKiE8IGlu OiBNeVNRTCBrZXkgbnVtYmVycyB0byBjcmVhdGUgKi8KIAl1bGludAkJCW5faW5kZXgsLyohPCBp bjogbnVtYmVyIG9mIGluZGV4ZXMgdG8gY3JlYXRlICovCisJY29uc3QgZHR1cGxlX3QqCQlhZGRf Y29scywKKwkJCQkJLyohPCBpbjogZGVmYXVsdCB2YWx1ZXMgb2YKKwkJCQkJYWRkZWQgY29sdW1u cywgb3IgTlVMTCAqLwogCWNvbnN0IHVsaW50KgkJY29sX21hcCwvKiE8IGluOiBtYXBwaW5nIG9m IG9sZCBjb2x1bW4KIAkJCQkJbnVtYmVycyB0byBuZXcgb25lcywgb3IgTlVMTAogCQkJCQlpZiBv bGRfdGFibGUgPT0gbmV3X3RhYmxlICovCkBAIC0xMjYyLDcgKzEyNjUsOCBAQCByb3dfbWVyZ2Vf cmVhZF9jbHVzdGVyZWRfaW5kZXgoCiAJaWJvb2wJCQlmdHNfcGxsX3NvcnQgPSBGQUxTRTsKIAlp Yl9pbnQ2NF90CQlzaWdfY291bnQgPSAwOwogCi0JdXRfYWQob2xkX3RhYmxlID09IG5ld190YWJs ZSB8fCBjb2xfbWFwKTsKKwl1dF9hZCgob2xkX3RhYmxlID09IG5ld190YWJsZSkgPT0gIWNvbF9t YXApOworCXV0X2FkKCFhZGRfY29scyB8fCBjb2xfbWFwKTsKIAogCXRyeC0+b3BfaW5mbyA9ICJy ZWFkaW5nIGNsdXN0ZXJlZCBpbmRleCI7CiAKQEAgLTE1MTIsNyArMTUxNiw3IEBAIHJvd19tZXJn ZV9yZWFkX2NsdXN0ZXJlZF9pbmRleCgKIAogCQlyb3cgPSByb3dfYnVpbGQoUk9XX0NPUFlfUE9J TlRFUlMsIGNsdXN0X2luZGV4LAogCQkJCXJlYywgb2Zmc2V0cywgbmV3X3RhYmxlLAotCQkJCWNv bF9tYXAsICZleHQsIHJvd19oZWFwKTsKKwkJCQlhZGRfY29scywgY29sX21hcCwgJmV4dCwgcm93 X2hlYXApOwogCQl1dF9hZChyb3cpOwogCiAJCWZvciAodWxpbnQgaSA9IDA7IGkgPCBuX25vbm51 bGw7IGkrKykgewpAQCAtMzE5OSw2ICszMjAzLDggQEAgcm93X21lcmdlX2J1aWxkX2luZGV4ZXMo CiAJc3RydWN0IFRBQkxFKgl0YWJsZSwJCS8qITwgaW4vb3V0OiBNeVNRTCB0YWJsZSwgZm9yCiAJ CQkJCXJlcG9ydGluZyBlcnJvbmVvdXMga2V5IHZhbHVlCiAJCQkJCWlmIGFwcGxpY2FibGUgKi8K Kwljb25zdCBkdHVwbGVfdCoJYWRkX2NvbHMsCS8qITwgaW46IGRlZmF1bHQgdmFsdWVzIG9mCisJ CQkJCWFkZGVkIGNvbHVtbnMsIG9yIE5VTEwgKi8KIAljb25zdCB1bGludCoJY29sX21hcCkJLyoh PCBpbjogbWFwcGluZyBvZiBvbGQgY29sdW1uCiAJCQkJCW51bWJlcnMgdG8gbmV3IG9uZXMsIG9y IE5VTEwKIAkJCQkJaWYgb2xkX3RhYmxlID09IG5ld190YWJsZSAqLwpAQCAtMzIxNSw3ICszMjIx LDggQEAgcm93X21lcmdlX2J1aWxkX2luZGV4ZXMoCiAJZnRzX3Bzb3J0X3QqCQltZXJnZV9pbmZv ID0gTlVMTDsKIAlpYl9pbnQ2NF90CQlzaWdfY291bnQgPSAwOwogCi0JdXRfYWQob2xkX3RhYmxl ID09IG5ld190YWJsZSB8fCBjb2xfbWFwKTsKKwl1dF9hZCgob2xkX3RhYmxlID09IG5ld190YWJs ZSkgPT0gIWNvbF9tYXApOworCXV0X2FkKCFhZGRfY29scyB8fCBjb2xfbWFwKTsKIAogCS8qIEFs bG9jYXRlIG1lbW9yeSBmb3IgbWVyZ2UgZmlsZSBkYXRhIHN0cnVjdHVyZSBhbmQgaW5pdGlhbGl6 ZQogCWZpZWxkcyAqLwpAQCAtMzI2NCw3ICszMjcxLDcgQEAgcm93X21lcmdlX2J1aWxkX2luZGV4 ZXMoCiAJZXJyb3IgPSByb3dfbWVyZ2VfcmVhZF9jbHVzdGVyZWRfaW5kZXgoCiAJCXRyeCwgdGFi bGUsIG9sZF90YWJsZSwgbmV3X3RhYmxlLCBvbmxpbmUsIGluZGV4ZXMsCiAJCWZ0c19zb3J0X2lk eCwgcHNvcnRfaW5mbywgbWVyZ2VfZmlsZXMsIGtleV9udW1iZXJzLAotCQluX2luZGV4ZXMsIGNv bF9tYXAsIGJsb2NrKTsKKwkJbl9pbmRleGVzLCBhZGRfY29scywgY29sX21hcCwgYmxvY2spOwog CiAJaWYgKGVycm9yICE9IERCX1NVQ0NFU1MpIHsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvaW5ub2Jhc2Uvcm93L3JvdzByb3cuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzByb3cuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUwNzI4MjgteHlw MTFxN3lvMnptNnhweQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcm93LmNjCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjA1MTQzMjMyLW5lZDl6MnJ4eDkzMXM5MXQK QEAgLTIxNyw2ICsyMTcsOSBAQCByb3dfYnVpbGQoCiAJCQkJCW9mIGFuIGluZGV4LCBvciBOVUxM IGlmCiAJCQkJCWluZGV4LT50YWJsZSBzaG91bGQgYmUKIAkJCQkJY29uc3VsdGVkIGluc3RlYWQg Ki8KKwljb25zdCBkdHVwbGVfdCoJCWFkZF9jb2xzLAorCQkJCQkvKiE8IGluOiBkZWZhdWx0IHZh bHVlcyBvZgorCQkJCQlhZGRlZCBjb2x1bW5zLCBvciBOVUxMICovCiAJY29uc3QgdWxpbnQqCQlj b2xfbWFwLC8qITwgaW46IG1hcHBpbmcgb2Ygb2xkIGNvbHVtbgogCQkJCQludW1iZXJzIHRvIG5l dyBvbmVzLCBvciBOVUxMICovCiAJcm93X2V4dF90KioJCWV4dCwJLyohPCBvdXQsIG93bjogY2Fj aGUgb2YKQEAgLTI4MiwxMyArMjg1LDI0IEBAIHJvd19idWlsZCgKIAogCWlmICghY29sX3RhYmxl KSB7CiAJCXV0X2FkKCFjb2xfbWFwKTsKKwkJdXRfYWQoIWFkZF9jb2xzKTsKIAkJY29sX3RhYmxl ID0gaW5kZXgtPnRhYmxlOwogCX0KIAotCS8vcm93ID0gZHR1cGxlX2NvcHkoaGVhcCwgZGVmYXVs dF9yb3cpOy8vIHRvZG86IEFERF9DT0xVTU4KLQlyb3cgPSBkdHVwbGVfY3JlYXRlKGhlYXAsIGRp Y3RfdGFibGVfZ2V0X25fY29scyhjb2xfdGFibGUpKTsKKwlpZiAoYWRkX2NvbHMpIHsKKwkJdXRf YWQoY29sX21hcCk7CisJCXJvdyA9IGR0dXBsZV9jb3B5KGFkZF9jb2xzLCBoZWFwKTsKKwkJLyog ZGljdF90YWJsZV9jb3B5X3R5cGVzKCkgd291bGQgc2V0IHRoZSBmaWVsZHMgdG8gTlVMTCAqLwor CQlmb3IgKHVsaW50IGkgPSAwOyBpIDwgZGljdF90YWJsZV9nZXRfbl9jb2xzKGNvbF90YWJsZSk7 IGkrKykgeworCQkJZGljdF9jb2xfY29weV90eXBlKAorCQkJCWRpY3RfdGFibGVfZ2V0X250aF9j b2woY29sX3RhYmxlLCBpKSwKKwkJCQlkZmllbGRfZ2V0X3R5cGUoZHR1cGxlX2dldF9udGhfZmll bGQocm93LCBpKSkpOworCQl9CisJfSBlbHNlIHsKKwkJcm93ID0gZHR1cGxlX2NyZWF0ZShoZWFw LCBkaWN0X3RhYmxlX2dldF9uX2NvbHMoY29sX3RhYmxlKSk7CisJCWRpY3RfdGFibGVfY29weV90 eXBlcyhyb3csIGNvbF90YWJsZSk7CisJfQogCi0JZGljdF90YWJsZV9jb3B5X3R5cGVzKHJvdywg Y29sX3RhYmxlKTsKIAlkdHVwbGVfc2V0X2luZm9fYml0cyhyb3csIHJlY19nZXRfaW5mb19iaXRz KAogCQkJCSAgICAgY29weSwgcmVjX29mZnNfY29tcChvZmZzZXRzKSkpOwogCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVuZG8uY2MnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2Uvcm93L3JvdzB1bmRvLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHVuZG8uY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUxNDMyMzIt bmVkOXoycnh4OTMxczkxdApAQCAtMjE3LDcgKzIxNyw3IEBAIHJvd191bmRvX3NlYXJjaF9jbHVz dF90b19wY3VyKAogCiAJCW5vZGUtPnJvdyA9IHJvd19idWlsZChST1dfQ09QWV9EQVRBLCBjbHVz dF9pbmRleCwgcmVjLAogCQkJCSAgICAgIG9mZnNldHMsIE5VTEwsCi0JCQkJICAgICAgTlVMTCwg ZXh0LCBub2RlLT5oZWFwKTsKKwkJCQkgICAgICBOVUxMLCBOVUxMLCBleHQsIG5vZGUtPmhlYXAp OwogCQlpZiAobm9kZS0+dXBkYXRlKSB7CiAJCQlub2RlLT51bmRvX3JvdyA9IGR0dXBsZV9jb3B5 KG5vZGUtPnJvdywgbm9kZS0+aGVhcCk7CiAJCQlyb3dfdXBkX3JlcGxhY2Uobm9kZS0+dW5kb19y b3csICZub2RlLT51bmRvX2V4dCwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L3Jvdy9yb3cwdXBkLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmNjCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4 cHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEyMDYwNTE0MzIzMi1uZWQ5ejJyeHg5MzFzOTF0CkBAIC0xNTg0LDcg KzE1ODQsNyBAQCByb3dfdXBkX3N0b3JlX3JvdygKIAl9CiAKIAlub2RlLT5yb3cgPSByb3dfYnVp bGQoUk9XX0NPUFlfREFUQSwgY2x1c3RfaW5kZXgsIHJlYywgb2Zmc2V0cywKLQkJCSAgICAgIE5V TEwsIE5VTEwsIGV4dCwgbm9kZS0+aGVhcCk7CisJCQkgICAgICBOVUxMLCBOVUxMLCBOVUxMLCBl eHQsIG5vZGUtPmhlYXApOwogCWlmIChub2RlLT5pc19kZWxldGUpIHsKIAkJbm9kZS0+dXBkX3Jv dyA9IE5VTEw7CiAJCW5vZGUtPnVwZF9leHQgPSBOVUxMOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB2ZXJzLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwdmVycy5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTA3Mjgy OC14eXAxMXE3eW8yem02eHB5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB2ZXJzLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjA1MTQzMjMyLW5lZDl6MnJ4eDkz MXM5MXQKQEAgLTE2NCw3ICsxNjQsNyBAQCByb3dfdmVyc19pbXBsX3hfbG9ja2VkX2xvdygKIAog CQlyb3cgPSByb3dfYnVpbGQoUk9XX0NPUFlfUE9JTlRFUlMsIGNsdXN0X2luZGV4LCBwcmV2X3Zl cnNpb24sCiAJCQkJY2x1c3Rfb2Zmc2V0cywKLQkJCQlOVUxMLCBOVUxMLCAmZXh0LCBoZWFwKTsK KwkJCQlOVUxMLCBOVUxMLCBOVUxMLCAmZXh0LCBoZWFwKTsKIAogCQllbnRyeSA9IHJvd19idWls ZF9pbmRleF9lbnRyeShyb3csIGV4dCwgaW5kZXgsIGhlYXApOwogCkBAIC0zODUsNyArMzg1LDcg QEAgcm93X3ZlcnNfb2xkX2hhc19pbmRleF9lbnRyeSgKIAkJZXh0ZXJuYWxseSBzdG9yZWQgY29s dW1ucy4gKi8KIAkJcm93ID0gcm93X2J1aWxkKFJPV19DT1BZX1BPSU5URVJTLCBjbHVzdF9pbmRl eCwKIAkJCQlyZWMsIGNsdXN0X29mZnNldHMsCi0JCQkJTlVMTCwgTlVMTCwgJmV4dCwgaGVhcCk7 CisJCQkJTlVMTCwgTlVMTCwgTlVMTCwgJmV4dCwgaGVhcCk7CiAJCWVudHJ5ID0gcm93X2J1aWxk X2luZGV4X2VudHJ5KHJvdywgZXh0LCBpbmRleCwgaGVhcCk7CiAKIAkJLyogSWYgZW50cnkgPT0g TlVMTCwgdGhlIHJlY29yZCBjb250YWlucyB1bnNldCBCTE9CCkBAIC00NDYsNyArNDQ2LDcgQEAg cm93X3ZlcnNfb2xkX2hhc19pbmRleF9lbnRyeSgKIAkJCWV4dGVybmFsbHkgc3RvcmVkIGNvbHVt bnMuICovCiAJCQlyb3cgPSByb3dfYnVpbGQoUk9XX0NPUFlfUE9JTlRFUlMsIGNsdXN0X2luZGV4 LAogCQkJCQlwcmV2X3ZlcnNpb24sIGNsdXN0X29mZnNldHMsCi0JCQkJCU5VTEwsIE5VTEwsICZl eHQsIGhlYXApOworCQkJCQlOVUxMLCBOVUxMLCBOVUxMLCAmZXh0LCBoZWFwKTsKIAkJCWVudHJ5 ID0gcm93X2J1aWxkX2luZGV4X2VudHJ5KHJvdywgZXh0LCBpbmRleCwgaGVhcCk7CiAKIAkJCS8q IElmIGVudHJ5ID09IE5VTEwsIHRoZSByZWNvcmQgY29udGFpbnMgdW5zZXQKCk5vIGJ1bmRsZSAo cmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku