From: Marc Alff Date: September 26 2011 11:32pm Subject: bzr push into mysql-trunk branch (marc.alff:3421 to 3422) List-Archive: http://lists.mysql.com/commits/141148 Message-Id: <201109262332.p8QNWkDB012102@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0MjIgTWFyYyBBbGZmCTIwMTEtMDktMjcgW21lcmdlXQogICAgICBNZXJnZSBteXNxbC10cnVu ayAtLT4gbXlzcWwtdHJ1bmstcGZzLXR1bmluZwoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0 L3N1aXRlL3N0cmVzcy90L3dyYXBwZXIudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIGNsaWVudC9t eXNxbHRlc3QuY2MKICAgICAgbXlzcWwtdGVzdC9jb2xsZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1l bnRhbAogICAgICBteXNxbC10ZXN0L215c3FsLXN0cmVzcy10ZXN0LnBsCiAgICAgIG15c3FsLXRl c3QvbXlzcWwtdGVzdC1ydW4ucGwKICAgICAgbXlzcWwtdGVzdC9yL2Z1bmNfc3RyLnJlc3VsdAog ICAgICBteXNxbC10ZXN0L3IvZ3JvdXBfYnkucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9teXNx bHRlc3QucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9wbHVnaW5fYXV0aC5yZXN1bHQKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVkZXJhdGVkX3BsdWdpbi1tYXN0ZXIub3B0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvZmVkZXJhdGVkL2ZlZGVyYXRlZF9wbHVnaW4ucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvZmVkZXJhdGVkL2ZlZGVyYXRlZF9wbHVnaW4udGVzdAogICAg ICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9wYXJhbGxlbF9zdGFydF9zdG9wLnJlc3VsdAog ICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9zbGF2ZV9sb2FkX3JlbW92ZV90bXBmaWxl LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9zbGF2ZV9sb2FkX3JlbW92 ZV90bXBmaWxlLnRlc3QKICAgICAgbXlzcWwtdGVzdC90L2Z1bmNfc3RyLnRlc3QKICAgICAgbXlz cWwtdGVzdC90L2dyb3VwX2J5LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L215c3FsX3BsdWdpbi50 ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9teXNxbGQtLWRlZmF1bHRzLWZpbGUudGVzdAogICAgICBt eXNxbC10ZXN0L3QvbXlzcWx0ZXN0LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L3BsdWdpbl9hdXRo LnRlc3QKICAgICAgc3FsL2l0ZW1fYnVmZi5jYwogICAgICBzcWwvcnBsX3JsaV9wZGIuY2MKICAg ICAgc3FsL3JwbF9zbGF2ZS5jYwogICAgICBzcWwvdGFibGUuY2MKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9sb2cvbG9nMGxvZy5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBwdXJnZS5j CiAzNDIxIE1hcmMgQWxmZgkyMDExLTA5LTI3IFttZXJnZV0KICAgICAgTWVyZ2UgbXlzcWwtdHJ1 bmsgLS0+IG15c3FsLXRydW5rLXBmcy10dW5pbmcKCiAgICByZW1vdmVkOgogICAgICBzdXBwb3J0 LWZpbGVzL2NvbmZpZy5odWdlLmluaS5zaAogICAgICBzdXBwb3J0LWZpbGVzL2NvbmZpZy5tZWRp dW0uaW5pLnNoCiAgICAgIHN1cHBvcnQtZmlsZXMvY29uZmlnLnNtYWxsLmluaS5zaAogICAgICBz dXBwb3J0LWZpbGVzL25kYi1jb25maWctMi1ub2RlLmluaS5zaAogICAgbW9kaWZpZWQ6CiAgICAg IGNsaWVudC9teXNxbF9wbHVnaW4uYwogICAgICBjbGllbnQvbXlzcWx0ZXN0LmNjCiAgICAgIGNt YWtlL3BsdWdpbi5jbWFrZQogICAgICBleHRyYS9wZXJyb3IuYwogICAgICBpbmNsdWRlL215c3Fs L3BsdWdpbi5oCiAgICAgIGluY2x1ZGUvbXlzcWwvcGx1Z2luX2F1ZGl0LmgucHAKICAgICAgaW5j bHVkZS9teXNxbC9wbHVnaW5fYXV0aC5oLnBwCiAgICAgIGluY2x1ZGUvbXlzcWwvcGx1Z2luX2Z0 cGFyc2VyLmgucHAKICAgICAgbGlibXlzcWwvYXV0aGVudGljYXRpb25fd2luL2NvbW1vbi5jYwog ICAgICBsaWJteXNxbC9hdXRoZW50aWNhdGlvbl93aW4vY29tbW9uLmgKICAgICAgbGlibXlzcWwv YXV0aGVudGljYXRpb25fd2luL2hhbmRzaGFrZV9jbGllbnQuY2MKICAgICAgbGlibXlzcWwvYXV0 aGVudGljYXRpb25fd2luL2xvZ19jbGllbnQuY2MKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL29y ZGVyX2J5LmluYwogICAgICBteXNxbC10ZXN0L215c3FsLXRlc3QtcnVuLnBsCiAgICAgIG15c3Fs LXRlc3Qvci9jdHlwZV9lcnJvcnMucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9jdHlwZV91dGYx Ni5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL2N0eXBlX3V0ZjMyX3VjYS5yZXN1bHQKICAgICAg bXlzcWwtdGVzdC9yL2Z1bmNfc3RyLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivb3JkZXJfYnlf YWxsLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivb3JkZXJfYnlfaWNwX21yci5yZXN1bHQKICAg ICAgbXlzcWwtdGVzdC9yL29yZGVyX2J5X25vbmUucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9w bHVnaW5fYXV0aC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL3NwLWVycm9yLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3Ivc3AucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci90eXBlX2Zsb2F0LnJl c3VsdAogICAgICBteXNxbC10ZXN0L3IvdW5pb24ucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3IvaW5ub2RiLWluZGV4LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lu bm9kYi90L2lubm9kYi1pbmRleC50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9jdHlwZV9lcnJvcnMu dGVzdAogICAgICBteXNxbC10ZXN0L3QvY3R5cGVfdXRmMzJfdWNhLnRlc3QKICAgICAgbXlzcWwt dGVzdC90L2Z1bmNfc3RyLnRlc3QKICAgICAgbXlzcWwtdGVzdC90L215c3FsX3BsdWdpbi50ZXN0 CiAgICAgIG15c3FsLXRlc3QvdC9wbHVnaW5fYXV0aC50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9z cC1lcnJvci50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9zcC50ZXN0CiAgICAgIG15c3FsLXRlc3Qv dC90eXBlX2Zsb2F0LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L3VuaW9uLnRlc3QKICAgICAgcGx1 Z2luL2F1ZGl0X251bGwvYXVkaXRfbnVsbC5jCiAgICAgIHBsdWdpbi9hdXRoL2F1dGhfc29ja2V0 LmMKICAgICAgcGx1Z2luL2F1dGgvZGlhbG9nLmMKICAgICAgcGx1Z2luL2F1dGgvcWFfYXV0aF9p bnRlcmZhY2UuYwogICAgICBwbHVnaW4vYXV0aC9xYV9hdXRoX3NlcnZlci5jCiAgICAgIHBsdWdp bi9hdXRoL3Rlc3RfcGx1Z2luLmMKICAgICAgcGx1Z2luL2RhZW1vbl9leGFtcGxlL2RhZW1vbl9l eGFtcGxlLmNjCiAgICAgIHBsdWdpbi9mdWxsdGV4dC9wbHVnaW5fZXhhbXBsZS5jCiAgICAgIHBs dWdpbi9zZW1pc3luYy9zZW1pc3luY19tYXN0ZXJfcGx1Z2luLmNjCiAgICAgIHBsdWdpbi9zZW1p c3luYy9zZW1pc3luY19zbGF2ZV9wbHVnaW4uY2MKICAgICAgc3FsL2JpbmxvZy5jYwogICAgICBz cWwvaGFfbmRiY2x1c3Rlci5jYwogICAgICBzcWwvaGFfcGFydGl0aW9uLmNjCiAgICAgIHNxbC9p dGVtX2NyZWF0ZS5jYwogICAgICBzcWwvaXRlbV9zdHJmdW5jLmNjCiAgICAgIHNxbC9pdGVtX3N0 cmZ1bmMuaAogICAgICBzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CiAgICAgIHNxbC9zcWxfYWNs LmNjCiAgICAgIHNxbC9zcWxfZXJyb3IuY2MKICAgICAgc3FsL3NxbF9sZXguY2MKICAgICAgc3Fs L3NxbF9wbHVnaW4uY2MKICAgICAgc3FsL3NxbF91bmlvbi5jYwogICAgICBzcWwvc3FsX3lhY2Mu eXkKICAgICAgc3RvcmFnZS9hcmNoaXZlL2hhX2FyY2hpdmUuY2MKICAgICAgc3RvcmFnZS9ibGFj a2hvbGUvaGFfYmxhY2tob2xlLmNjCiAgICAgIHN0b3JhZ2UvY3N2L2hhX3RpbmEuY2MKICAgICAg c3RvcmFnZS9leGFtcGxlL2hhX2V4YW1wbGUuY2MKICAgICAgc3RvcmFnZS9mZWRlcmF0ZWQvaGFf ZmVkZXJhdGVkLmNjCiAgICAgIHN0b3JhZ2UvaGVhcC9oYV9oZWFwLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvYnRyL2J0cjBwY3VyLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hh X2lubm9kYi5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaV9zLmNjCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1ci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9idHIwcGN1ci5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvbXRyMG10 ci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYwbW9uLmgKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3V0MG1lbS5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS91dDBtZW0uaWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9tdHIvbXRyMG10ci5jCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2Uvb3Mvb3MwZmlsZS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvcmVhZC9y ZWFkMHJlYWQuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcHVyZ2UuYwogICAgICBz dG9yYWdlL2lubm9iYXNlL3RyeC90cngwcHVyZ2UuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3V0 L3V0MG1lbS5jCiAgICAgIHN0b3JhZ2UvbXlpc2FtL2hhX215aXNhbS5jYwogICAgICBzdG9yYWdl L215aXNhbW1yZy9oYV9teWlzYW1tcmcuY2MKICAgICAgc3RvcmFnZS9wZXJmc2NoZW1hL2hhX3Bl cmZzY2hlbWEuY2MKICAgICAgc3RvcmFnZS9wZXJmc2NoZW1hL3Bmcy5jYwogICAgICBzdG9yYWdl L3BlcmZzY2hlbWEvcGZzX2luc3RyLmNjCiAgICAgIHN0b3JhZ2UvcGVyZnNjaGVtYS9wZnNfaW5z dHIuaAogICAgICBzdHJpbmdzL2R0b2EuYwogICAgICBzdXBwb3J0LWZpbGVzL0NNYWtlTGlzdHMu dHh0CiAgICAgIHN1cHBvcnQtZmlsZXMvbXlzcWwuc3BlYy5zaAogICAgICB0ZXN0cy9teXNxbF9j bGllbnRfdGVzdC5jCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWx0ZXN0LmNjJwotLS0g YS9jbGllbnQvbXlzcWx0ZXN0LmNjCTIwMTEtMDktMjIgMDg6MjY6MDggKzAwMDAKKysrIGIvY2xp ZW50L215c3FsdGVzdC5jYwkyMDExLTA5LTI2IDA4OjQ4OjIwICswMDAwCkBAIC0xMjEsNiArMTIx LDQxIEBAIHN0YXRpYyBjaGFyICoqZGVmYXVsdF9hcmd2Owogc3RhdGljIGNvbnN0IGNoYXIgKmxv YWRfZGVmYXVsdF9ncm91cHNbXT0geyAibXlzcWx0ZXN0IiwgImNsaWVudCIsIDAgfTsKIHN0YXRp YyBjaGFyIGxpbmVfYnVmZmVyW01BWF9ERUxJTUlURVJfTEVOR1RIXSwgKmxpbmVfYnVmZmVyX3Bv cz0gbGluZV9idWZmZXI7CiAKKy8qIEluZm8gb24gcHJvcGVydGllcyB0aGF0IGNhbiBiZSBzZXQg d2l0aCAtLWVuYWJsZV9YIGFuZCAtLWRpc2FibGVfWCAqLworCitzdHJ1Y3QgcHJvcGVydHkgewor ICBteV9ib29sICp2YXI7CQkJLyogQWN0dWFsIHZhcmlhYmxlICovCisgIG15X2Jvb2wgc2V0OwkJ CS8qIEhhcyBiZWVuIHNldCBmb3IgT05FIGNvbW1hbmQgKi8KKyAgbXlfYm9vbCBvbGQ7CQkJLyog SWYgc2V0LCB0aHVzIGlzIHRoZSBvbGQgdmFsdWUgKi8KKyAgbXlfYm9vbCByZXZlcnNlOwkJLyog VmFyaWJsZSBpcyB0cnVlIGlmIGRpc2FibGVkICovCisgIGNvbnN0IGNoYXIgKmVudl9uYW1lOwkJ LyogRW52LiB2YXJpYWJsZSBuYW1lICovCit9OworCitzdGF0aWMgc3RydWN0IHByb3BlcnR5IHBy b3BfbGlzdFtdID0geworICB7ICZhYm9ydF9vbl9lcnJvciwgMCwgMSwgMCwgIiRFTkFCTEVEX0FC T1JUX09OX0VSUk9SIiB9LAorICB7ICZkaXNhYmxlX2Nvbm5lY3RfbG9nLCAwLCAxLCAxLCAiJEVO QUJMRURfQ09OTkVDVF9MT0ciIH0sCisgIHsgJmRpc2FibGVfaW5mbywgMCwgMSwgMSwgIiRFTkFC TEVEX0lORk8iIH0sCisgIHsgJmRpc3BsYXlfbWV0YWRhdGEsIDAsIDAsIDAsICIkRU5BQkxFRF9N RVRBREFUQSIgfSwKKyAgeyAmcHNfcHJvdG9jb2xfZW5hYmxlZCwgMCwgMCwgMCwgIiRFTkFCTEVE X1BTX1BST1RPQ09MIiB9LAorICB7ICZkaXNhYmxlX3F1ZXJ5X2xvZywgMCwgMCwgMSwgIiRFTkFC TEVEX1FVRVJZX0xPRyIgfSwKKyAgeyAmZGlzYWJsZV9yZXN1bHRfbG9nLCAwLCAwLCAxLCAiJEVO QUJMRURfUkVTVUxUX0xPRyIgfSwKKyAgeyAmZGlzYWJsZV93YXJuaW5ncywgMCwgMCwgMSwgIiRF TkFCTEVEX1dBUk5JTkdTIiB9Cit9OworCitzdGF0aWMgbXlfYm9vbCBvbmNlX3Byb3BlcnR5PSBG QUxTRTsKKworZW51bSBlbnVtX3Byb3AgeworICBQX0FCT1JUPSAwLAorICBQX0NPTk5FQ1QsCisg IFBfSU5GTywKKyAgUF9NRVRBLAorICBQX1BTLAorICBQX1FVRVJZLAorICBQX1JFU1VMVCwKKyAg UF9XQVJOLAorICBQX01BWAorfTsKKwogc3RhdGljIHVpbnQgc3RhcnRfbGluZW5vPSAwOyAvKiBT dGFydCBsaW5lIG9mIGN1cnJlbnQgY29tbWFuZCAqLwogc3RhdGljIHVpbnQgbXlfZW5kX2FyZz0g MDsKIApAQCAtNDcyLDYgKzUwNyw3IEBAIFRZUEVMSUIgY29tbWFuZF90eXBlbGliPSB7YXJyYXlf ZWxlbWVudHMKIERZTkFNSUNfU1RSSU5HIGRzX3JlczsKIC8qIFBvaW50cyB0byBkc193YXJuaW5n IGluIHJ1bl9xdWVyeSwgc28gaXQgY2FuIGJlIGZyZWVkICovCiBEWU5BTUlDX1NUUklORyAqZHNf d2Fybj0gMDsKK3N0cnVjdCBzdF9jb21tYW5kICpjdXJyX2NvbW1hbmQ9IDA7CiAKIGNoYXIgYnVp bHRpbl9lY2hvW0ZOX1JFRkxFTl07CiAKQEAgLTcyMSw2ICs3NTcsNyBAQCB2b2lkIGhhbmRsZV9l cnJvcihzdHJ1Y3Qgc3RfY29tbWFuZCosCiAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg ZXJyX2Vycm5vLCBjb25zdCBjaGFyICplcnJfZXJyb3IsCiAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICplcnJfc3Fsc3RhdGUsIERZTkFNSUNfU1RSSU5HICpkcyk7CiB2b2lkIGhhbmRsZV9u b19lcnJvcihzdHJ1Y3Qgc3RfY29tbWFuZCopOwordm9pZCByZXZlcnRfcHJvcGVydGllcygpOwog CiAjaWZkZWYgRU1CRURERURfTElCUkFSWQogCkBAIC0xMTgzLDYgKzEyMjAsNyBAQCB2b2lkIGhh bmRsZV9jb21tYW5kX2Vycm9yKHN0cnVjdCBzdF9jb21tCiAgICAgewogICAgICAgREJVR19QUklO VCgiaW5mbyIsICgiY29tbWFuZCBcIiUuKnNcIiBmYWlsZWQgd2l0aCBleHBlY3RlZCBlcnJvcjog JWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kLT5maXJzdF93b3JkX2xlbiwg Y29tbWFuZC0+cXVlcnksIGVycm9yKSk7CisgICAgICByZXZlcnRfcHJvcGVydGllcygpOwogICAg ICAgREJVR19WT0lEX1JFVFVSTjsKICAgICB9CiAgICAgaWYgKGNvbW1hbmQtPmV4cGVjdGVkX2Vy cm9ycy5jb3VudCA+IDApCkBAIC0xMTk3LDYgKzEyMzUsNyBAQCB2b2lkIGhhbmRsZV9jb21tYW5k X2Vycm9yKHN0cnVjdCBzdF9jb21tCiAgICAgICAgIGNvbW1hbmQtPmZpcnN0X3dvcmRfbGVuLCBj b21tYW5kLT5xdWVyeSwKICAgICAgICAgY29tbWFuZC0+ZXhwZWN0ZWRfZXJyb3JzLmVyclswXS5j b2RlLmVycm51bSk7CiAgIH0KKyAgcmV2ZXJ0X3Byb3BlcnRpZXMoKTsKICAgREJVR19WT0lEX1JF VFVSTjsKIH0KIApAQCAtMjI3Niw2ICsyMzE1LDUwIEBAIHZvaWQgdmFyX3NldF9lcnJubyhpbnQg c3FsX2Vycm5vKQogICB2YXJfc2V0X3N0cmluZygiJG15c3FsX2Vycm5hbWUiLCBnZXRfZXJybmFt ZV9mcm9tX2NvZGUoc3FsX2Vycm5vKSk7CiB9CiAKKy8qIEZ1bmN0aW9ucyB0byBoYW5kbGUgLS1k aXNhYmxlIGFuZCAtLWVuYWJsZSBwcm9wZXJ0aWVzICovCisKK3ZvaWQgc2V0X29uY2VfcHJvcGVy dHkoZW51bV9wcm9wIHByb3AsIG15X2Jvb2wgdmFsKQoreworICBwcm9wZXJ0eSAmcHI9IHByb3Bf bGlzdFtwcm9wXTsKKyAgcHIuc2V0PSAxOworICBwci5vbGQ9ICpwci52YXI7CisgICpwci52YXI9 IHZhbDsKKyAgdmFyX3NldF9pbnQocHIuZW52X25hbWUsICh2YWwgIT0gcHIucmV2ZXJzZSkpOwor ICBvbmNlX3Byb3BlcnR5PSBUUlVFOworfQorCit2b2lkIHNldF9wcm9wZXJ0eShzdF9jb21tYW5k ICpjb21tYW5kLCBlbnVtX3Byb3AgcHJvcCwgbXlfYm9vbCB2YWwpCit7CisgIGNoYXIqIHA9IGNv bW1hbmQtPmZpcnN0X2FyZ3VtZW50OworICBpZiAocCAmJiAhc3RyY21wIChwLCAiT05DRSIpKSAK KyAgeworICAgIGNvbW1hbmQtPmxhc3RfYXJndW1lbnQ9IHAgKyA0OworICAgIHNldF9vbmNlX3By b3BlcnR5KHByb3AsIHZhbCk7CisgICAgcmV0dXJuOworICB9CisgIHByb3BlcnR5ICZwcj0gcHJv cF9saXN0W3Byb3BdOworICAqcHIudmFyPSB2YWw7CisgIHByLnNldD0gMDsKKyAgdmFyX3NldF9p bnQocHIuZW52X25hbWUsICh2YWwgIT0gcHIucmV2ZXJzZSkpOworfQorCit2b2lkIHJldmVydF9w cm9wZXJ0aWVzKCkKK3sKKyAgaWYgKCEgb25jZV9wcm9wZXJ0eSkKKyAgICByZXR1cm47CisgIGZv ciAoaW50IGk9IDA7IGkgPCAoaW50KSBQX01BWDsgaSsrKSAKKyAgeworICAgIHByb3BlcnR5ICZw cj0gcHJvcF9saXN0W2ldOworICAgIGlmIChwci5zZXQpIAorICAgIHsKKyAgICAgICpwci52YXI9 IHByLm9sZDsKKyAgICAgIHByLnNldD0gMDsKKyAgICAgIHZhcl9zZXRfaW50KHByLmVudl9uYW1l LCAocHIub2xkICE9IHByLnJldmVyc2UpKTsKKyAgICB9CisgIH0KKyAgb25jZV9wcm9wZXJ0eT1G QUxTRTsKK30KKwogCiAvKgogICBTZXQgdmFyaWFibGUgZnJvbSB0aGUgcmVzdWx0IG9mIGEgcXVl cnkKQEAgLTIzMjcsOSArMjQxMCwxNiBAQCB2b2lkIHZhcl9xdWVyeV9zZXQoVkFSICp2YXIsIGNv bnN0IGNoYXIKICAgaW5pdF9keW5hbWljX3N0cmluZygmZHNfcXVlcnksIDAsIChlbmQgLSBxdWVy eSkgKyAzMiwgMjU2KTsKICAgZG9fZXZhbCgmZHNfcXVlcnksIHF1ZXJ5LCBlbmQsIEZBTFNFKTsK IAotICBpZiAobXlzcWxfcmVhbF9xdWVyeShteXNxbCwgZHNfcXVlcnkuc3RyLCBkc19xdWVyeS5s ZW5ndGgpKQotICAgIGRpZSgiRXJyb3IgcnVubmluZyBxdWVyeSAnJXMnOiAlZCAlcyIsIGRzX3F1 ZXJ5LnN0ciwKLQlteXNxbF9lcnJubyhteXNxbCksIG15c3FsX2Vycm9yKG15c3FsKSk7CisgIGlm IChteXNxbF9yZWFsX3F1ZXJ5KG15c3FsLCBkc19xdWVyeS5zdHIsIGRzX3F1ZXJ5Lmxlbmd0aCkp IAorICB7CisgICAgaGFuZGxlX2Vycm9yIChjdXJyX2NvbW1hbmQsIG15c3FsX2Vycm5vKG15c3Fs KSwgbXlzcWxfZXJyb3IobXlzcWwpLAorICAgICAgICAgICAgICAgICAgbXlzcWxfc3Fsc3RhdGUo bXlzcWwpLCAmZHNfcmVzKTsKKyAgICAvKiBJZiBlcnJvciB3YXMgYWNjZXB0YWJsZSwgcmV0dXJu IGVtcHR5IHN0cmluZyAqLworICAgIGR5bnN0cl9mcmVlKCZkc19xdWVyeSk7CisgICAgZXZhbF9l eHByKHZhciwgIiIsIDApOworICAgIERCVUdfVk9JRF9SRVRVUk47CisgIH0KKyAgCiAgIGlmICgh KHJlcz0gbXlzcWxfc3RvcmVfcmVzdWx0KG15c3FsKSkpCiAgICAgZGllKCJRdWVyeSAnJXMnIGRp ZG4ndCByZXR1cm4gYSByZXN1bHQgc2V0IiwgZHNfcXVlcnkuc3RyKTsKICAgZHluc3RyX2ZyZWUo JmRzX3F1ZXJ5KTsKQEAgLTI0ODMsOCArMjU3MywxNSBAQCB2b2lkIHZhcl9zZXRfcXVlcnlfZ2V0 X3ZhbHVlKHN0cnVjdCBzdF9jCiAKICAgLyogUnVuIHRoZSBxdWVyeSAqLwogICBpZiAobXlzcWxf cmVhbF9xdWVyeShteXNxbCwgZHNfcXVlcnkuc3RyLCBkc19xdWVyeS5sZW5ndGgpKQotICAgIGRp ZSgiRXJyb3IgcnVubmluZyBxdWVyeSAnJXMnOiAlZCAlcyIsIGRzX3F1ZXJ5LnN0ciwKLQlteXNx bF9lcnJubyhteXNxbCksIG15c3FsX2Vycm9yKG15c3FsKSk7CisgIHsKKyAgICBoYW5kbGVfZXJy b3IgKGN1cnJfY29tbWFuZCwgbXlzcWxfZXJybm8obXlzcWwpLCBteXNxbF9lcnJvcihteXNxbCks CisgICAgICAgICAgICAgICAgICBteXNxbF9zcWxzdGF0ZShteXNxbCksICZkc19yZXMpOworICAg IC8qIElmIGVycm9yIHdhcyBhY2NlcHRhYmxlLCByZXR1cm4gZW1wdHkgc3RyaW5nICovCisgICAg ZHluc3RyX2ZyZWUoJmRzX3F1ZXJ5KTsKKyAgICBldmFsX2V4cHIodmFyLCAiIiwgMCk7CisgICAg REJVR19WT0lEX1JFVFVSTjsKKyAgfQorCiAgIGlmICghKHJlcz0gbXlzcWxfc3RvcmVfcmVzdWx0 KG15c3FsKSkpCiAgICAgZGllKCJRdWVyeSAnJXMnIGRpZG4ndCByZXR1cm4gYSByZXN1bHQgc2V0 IiwgZHNfcXVlcnkuc3RyKTsKIApAQCAtNDQwMiw2ICs0NDk5LDcgQEAgdm9pZCBkb19sZXQoc3Ry dWN0IHN0X2NvbW1hbmQgKmNvbW1hbmQpCiAgIHZhcl9zZXQodmFyX25hbWUsIHZhcl9uYW1lX2Vu ZCwgbGV0X3Joc19leHByLnN0ciwKICAgICAgICAgICAobGV0X3Joc19leHByLnN0ciArIGxldF9y aHNfZXhwci5sZW5ndGgpKTsKICAgZHluc3RyX2ZyZWUoJmxldF9yaHNfZXhwcik7CisgIHJldmVy dF9wcm9wZXJ0aWVzKCk7CiAgIERCVUdfVk9JRF9SRVRVUk47CiB9CiAKQEAgLTczNDIsNiArNzQ0 MCw3IEBAIHZvaWQgaGFuZGxlX2Vycm9yKHN0cnVjdCBzdF9jb21tYW5kICpjb20KICAgICAgICAg ZHluc3RyX2FwcGVuZChkcywiR290IG9uZSBvZiB0aGUgbGlzdGVkIGVycm9yc1xuIik7CiAgICAg fQogICAgIC8qIE9LICovCisgICAgcmV2ZXJ0X3Byb3BlcnRpZXMoKTsKICAgICBEQlVHX1ZPSURf UkVUVVJOOwogICB9CiAKQEAgLTczNjksNiArNzQ2OCw3IEBAIHZvaWQgaGFuZGxlX2Vycm9yKHN0 cnVjdCBzdF9jb21tYW5kICpjb20KIAkgIGNvbW1hbmQtPmV4cGVjdGVkX2Vycm9ycy5lcnJbMF0u Y29kZS5zcWxzdGF0ZSk7CiAgIH0KIAorICByZXZlcnRfcHJvcGVydGllcygpOwogICBEQlVHX1ZP SURfUkVUVVJOOwogfQogCkBAIC03NDAzLDYgKzc1MDMsNyBAQCB2b2lkIGhhbmRsZV9ub19lcnJv cihzdHJ1Y3Qgc3RfY29tbWFuZCAqCiAgICAgICAgIGNvbW1hbmQtPnF1ZXJ5LCBjb21tYW5kLT5l eHBlY3RlZF9lcnJvcnMuZXJyWzBdLmNvZGUuc3Fsc3RhdGUpOwogICB9CiAKKyAgcmV2ZXJ0X3By b3BlcnRpZXMoKTsKICAgREJVR19WT0lEX1JFVFVSTjsKIH0KIApAQCAtNzQzMyw2ICs3NTM0LDkg QEAgdm9pZCBydW5fcXVlcnlfc3RtdChNWVNRTCAqbXlzcWwsIHN0cnVjdAogICBEQlVHX0VOVEVS KCJydW5fcXVlcnlfc3RtdCIpOwogICBEQlVHX1BSSU5UKCJxdWVyeSIsICgiJyUtLjYwcyciLCBx dWVyeSkpOwogCisgIC8qIFJlbWVtYmVyIGRpc2FibGVfcmVzdWx0X2xvZyBzaW5jZSBoYW5kbGVf bm9fZXJyb3IoKSBtYXkgcmVzZXQgaXQgKi8KKyAgbXlfYm9vbCBkaXNfcmVzPSBkaXNhYmxlX3Jl c3VsdF9sb2c7CisgIAogICAvKgogICAgIEluaXQgYSBuZXcgc3RtdCBpZiBpdCdzIG5vdCBhbHJl YWR5IG9uZSBjcmVhdGVkIGZvciB0aGlzIGNvbm5lY3Rpb24KICAgKi8KQEAgLTc1MjgsNyArNzYz Miw3IEBAIHZvaWQgcnVuX3F1ZXJ5X3N0bXQoTVlTUUwgKm15c3FsLCBzdHJ1Y3QKIAogICAvKiBJ ZiB3ZSBnb3QgaGVyZSB0aGUgc3RhdGVtZW50IHdhcyBib3RoIGV4ZWN1dGVkIGFuZCByZWFkIHN1 Y2Nlc3NmdWxseSAqLwogICBoYW5kbGVfbm9fZXJyb3IoY29tbWFuZCk7Ci0gIGlmICghZGlzYWJs ZV9yZXN1bHRfbG9nKQorICBpZiAoIWRpc19yZXMpCiAgIHsKICAgICAvKgogICAgICAgTm90IGFs bCBzdGF0ZW1lbnRzIGNyZWF0ZXMgYSByZXN1bHQgc2V0LiBJZiB0aGVyZSBpcyBvbmUgd2UgY2Fu CkBAIC04NTQ4LDYgKzg2NTIsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg ICAgewogICAgICAgY29tbWFuZC0+bGFzdF9hcmd1bWVudD0gY29tbWFuZC0+Zmlyc3RfYXJndW1l bnQ7CiAgICAgICBwcm9jZXNzZWQgPSAxOworICAgICAgLyogTmVlZCB0byByZW1lbWJlciB0aGlz IGZvciBoYW5kbGVfZXJyb3IoKSAqLworICAgICAgY3Vycl9jb21tYW5kPSBjb21tYW5kOwogICAg ICAgc3dpdGNoIChjb21tYW5kLT50eXBlKSB7CiAgICAgICBjYXNlIFFfQ09OTkVDVDoKICAgICAg ICAgZG9fY29ubmVjdChjb21tYW5kKTsKQEAgLTg1NTcsNjAgKzg2NjMsNDYgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgY2FzZSBRX0RJUlRZX0NMT1NFOgogCWRvX2Ns b3NlX2Nvbm5lY3Rpb24oY29tbWFuZCk7IGJyZWFrOwogICAgICAgY2FzZSBRX0VOQUJMRV9RVUVS WV9MT0c6Ci0gICAgICAgIGRpc2FibGVfcXVlcnlfbG9nPSAwOwotICAgICAgICB2YXJfc2V0X2lu dCgiJEVOQUJMRURfUVVFUllfTE9HIiwgMSk7CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5k LCBQX1FVRVJZLCAwKTsKICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFFfRElTQUJMRV9RVUVS WV9MT0c6Ci0gICAgICAgIGRpc2FibGVfcXVlcnlfbG9nPSAxOwotICAgICAgICB2YXJfc2V0X2lu dCgiJEVOQUJMRURfUVVFUllfTE9HIiwgMCk7CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5k LCBQX1FVRVJZLCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFFfRU5BQkxFX0FCT1JU X09OX0VSUk9SOgotICAgICAgICBhYm9ydF9vbl9lcnJvcj0gMTsKLSAgICAgICAgdmFyX3NldF9p bnQoIiRFTkFCTEVEX0FCT1JUX09OX0VSUk9SIiwgMSk7CisgICAgICAgIHNldF9wcm9wZXJ0eShj b21tYW5kLCBQX0FCT1JULCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFFfRElTQUJM RV9BQk9SVF9PTl9FUlJPUjoKLSAgICAgICAgYWJvcnRfb25fZXJyb3I9IDA7Ci0gICAgICAgIHZh cl9zZXRfaW50KCIkRU5BQkxFRF9BQk9SVF9PTl9FUlJPUiIsIDApOworICAgICAgICBzZXRfcHJv cGVydHkoY29tbWFuZCwgUF9BQk9SVCwgMCk7CiAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSBR X0VOQUJMRV9SRVNVTFRfTE9HOgotICAgICAgICBkaXNhYmxlX3Jlc3VsdF9sb2c9IDA7Ci0gICAg ICAgIHZhcl9zZXRfaW50KCIkRU5BQkxFRF9SRVNVTFRfTE9HIiwgMSk7CisgICAgICAgIHNldF9w cm9wZXJ0eShjb21tYW5kLCBQX1JFU1VMVCwgMCk7CiAgICAgICAgIGJyZWFrOwogICAgICAgY2Fz ZSBRX0RJU0FCTEVfUkVTVUxUX0xPRzoKLSAgICAgICAgZGlzYWJsZV9yZXN1bHRfbG9nPTE7Ci0g ICAgICAgIHZhcl9zZXRfaW50KCIkRU5BQkxFRF9SRVNVTFRfTE9HIiwgMCk7CisgICAgICAgIHNl dF9wcm9wZXJ0eShjb21tYW5kLCBQX1JFU1VMVCwgMSk7CiAgICAgICAgIGJyZWFrOwogICAgICAg Y2FzZSBRX0VOQUJMRV9DT05ORUNUX0xPRzoKLSAgICAgICAgZGlzYWJsZV9jb25uZWN0X2xvZz0w OwotICAgICAgICB2YXJfc2V0X2ludCgiJEVOQUJMRURfQ09OTkVDVF9MT0ciLCAxKTsKKyAgICAg ICAgc2V0X3Byb3BlcnR5KGNvbW1hbmQsIFBfQ09OTkVDVCwgMCk7CiAgICAgICAgIGJyZWFrOwog ICAgICAgY2FzZSBRX0RJU0FCTEVfQ09OTkVDVF9MT0c6Ci0gICAgICAgIGRpc2FibGVfY29ubmVj dF9sb2c9MTsKLSAgICAgICAgdmFyX3NldF9pbnQoIiRFTkFCTEVEX0NPTk5FQ1RfTE9HIiwgMCk7 CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5kLCBQX0NPTk5FQ1QsIDEpOwogICAgICAgICBi cmVhazsKICAgICAgIGNhc2UgUV9FTkFCTEVfV0FSTklOR1M6Ci0gICAgICAgIGRpc2FibGVfd2Fy bmluZ3M9IDA7Ci0gICAgICAgIHZhcl9zZXRfaW50KCIkRU5BQkxFRF9XQVJOSU5HUyIsIDEpOwor ICAgICAgICBzZXRfcHJvcGVydHkoY29tbWFuZCwgUF9XQVJOLCAwKTsKICAgICAgICAgYnJlYWs7 CiAgICAgICBjYXNlIFFfRElTQUJMRV9XQVJOSU5HUzoKLSAgICAgICAgZGlzYWJsZV93YXJuaW5n cz0gMTsKLSAgICAgICAgdmFyX3NldF9pbnQoIiRFTkFCTEVEX1dBUk5JTkdTIiwgMCk7CisgICAg ICAgIHNldF9wcm9wZXJ0eShjb21tYW5kLCBQX1dBUk4sIDEpOwogICAgICAgICBicmVhazsKICAg ICAgIGNhc2UgUV9FTkFCTEVfSU5GTzoKLSAgICAgICAgZGlzYWJsZV9pbmZvPSAwOwotICAgICAg ICB2YXJfc2V0X2ludCgiJEVOQUJMRURfSU5GTyIsIDEpOworICAgICAgICBzZXRfcHJvcGVydHko Y29tbWFuZCwgUF9JTkZPLCAwKTsKICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFFfRElTQUJM RV9JTkZPOgotICAgICAgICBkaXNhYmxlX2luZm89IDE7Ci0gICAgICAgIHZhcl9zZXRfaW50KCIk RU5BQkxFRF9JTkZPIiwgMCk7CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5kLCBQX0lORk8s IDEpOwogICAgICAgICBicmVhazsKICAgICAgIGNhc2UgUV9FTkFCTEVfTUVUQURBVEE6Ci0gICAg ICAgIGRpc3BsYXlfbWV0YWRhdGE9IDE7Ci0gICAgICAgIHZhcl9zZXRfaW50KCIkRU5BQkxFRF9N RVRBREFUQSIsIDEpOworICAgICAgICBzZXRfcHJvcGVydHkoY29tbWFuZCwgUF9NRVRBLCAxKTsK ICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFFfRElTQUJMRV9NRVRBREFUQToKLSAgICAgICAg ZGlzcGxheV9tZXRhZGF0YT0gMDsKLSAgICAgICAgdmFyX3NldF9pbnQoIiRFTkFCTEVEX01FVEFE QVRBIiwgMCk7CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5kLCBQX01FVEEsIDApOwogICAg ICAgICBicmVhazsKICAgICAgIGNhc2UgUV9TT1VSQ0U6IGRvX3NvdXJjZShjb21tYW5kKTsgYnJl YWs7CiAgICAgICBjYXNlIFFfU0xFRVA6IGRvX3NsZWVwKGNvbW1hbmQsIDApOyBicmVhazsKQEAg LTg4MzksMTIgKzg5MzEsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWRv X3NldF9jaGFyc2V0KGNvbW1hbmQpOwogCWJyZWFrOwogICAgICAgY2FzZSBRX0RJU0FCTEVfUFNf UFJPVE9DT0w6Ci0gICAgICAgIHBzX3Byb3RvY29sX2VuYWJsZWQ9IDA7CisgICAgICAgIHNldF9w cm9wZXJ0eShjb21tYW5kLCBQX1BTLCAwKTsKICAgICAgICAgLyogQ2xvc2UgYW55IG9wZW4gc3Rh dGVtZW50cyAqLwogICAgICAgICBjbG9zZV9zdGF0ZW1lbnRzKCk7CiAgICAgICAgIGJyZWFrOwog ICAgICAgY2FzZSBRX0VOQUJMRV9QU19QUk9UT0NPTDoKLSAgICAgICAgcHNfcHJvdG9jb2xfZW5h YmxlZD0gcHNfcHJvdG9jb2w7CisgICAgICAgIHNldF9wcm9wZXJ0eShjb21tYW5kLCBQX1BTLCBw c19wcm90b2NvbCk7CiAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSBRX0RJU0FCTEVfUkVDT05O RUNUOgogICAgICAgICBzZXRfcmVjb25uZWN0KCZjdXJfY29uLT5teXNxbCwgMCk7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9jb2xsZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1lbnRhbCcK LS0tIGEvbXlzcWwtdGVzdC9jb2xsZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1lbnRhbAkyMDExLTA5 LTE0IDExOjIzOjQ2ICswMDAwCisrKyBiL215c3FsLXRlc3QvY29sbGVjdGlvbnMvZGVmYXVsdC5l eHBlcmltZW50YWwJMjAxMS0wOS0yMyAxOTowNjozNiArMDAwMApAQCAtMjcsNyArMjcsNiBAQCBy cGwucnBsX2NoYW5nZV9tYXN0ZXJfZGJ1ZwogcnBsLnJwbF9kZWxheWVkX3NsYXZlICAgICAgICAg ICAgICAgICAgICAjIEJVRyMxMTc2NDY1NCBycGxfZGVsYXllZF9zbGF2ZSBmYWlscyBzcG9yYWRp Y2FsbHkgaW4gcGIKIHJwbC5ycGxfaGVhcnRiZWF0X2Jhc2ljICAgICAgICAgICAgICAgICAgIyBC VUcjMTI0MDMwMDggMjAxMS0wNC0yNyBzdmVuIGZhaWxzIHNwb3JhZGljYWxseQogcnBsLnJwbF9p bm5vZGJfYnVnMjg0MzAgICAgICAgICAgICAgICAgICAjIEJ1ZyMxMTc1NDQyNQotcnBsLnJwbF9y b3dfaWdub3JhYmxlX2V2ZW50ICAgICAgICAgICAgICAjIFN2ZW46IEJVRyMxMjc2NTQ0MQogcnBs LnJwbF9yb3dfc3AwMTEgIEBzb2xhcmlzICAgICAgICAgICAgICAjIEJ1ZyMxMTc1MzkxOSAyMDEw LTAxLTIwIGFsaWsgU2V2ZXJhbCB0ZXN0IGNhc2VzIGZhaWwgb24gU29sYXJpcyB3aXRoIGVycm9y IFRocmVhZCBzdGFjayBvdmVycnVuCiBycGwucnBsX3NlY29uZHNfYmVoaW5kX21hc3RlciAgICAg ICAgICAgICMgQlVHIzExNzY1MTI0IDIwMTAtMTEtMjQgbHVpcyBmYWlscyBzcG9yYWRpY2FsbHkg b24gcGIyCiBycGwucnBsX3Nob3dfc2xhdmVfcnVubmluZyAgICAgICAgICAgICAgICMgQlVHIzEy MzQ2MDQ4IDIwMTEtMDQtMTEgc3ZlbiBmYWlscyBzcG9yYWRpY2FsbHkgb24gcGIyCgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9teXNxbC1zdHJlc3MtdGVzdC5wbCcKLS0tIGEvbXlzcWwt dGVzdC9teXNxbC1zdHJlc3MtdGVzdC5wbAkyMDExLTAxLTE4IDEwOjIxOjM3ICswMDAwCisrKyBi L215c3FsLXRlc3QvbXlzcWwtc3RyZXNzLXRlc3QucGwJMjAxMS0wOS0xNSAxMDozNDozMiArMDAw MApAQCAtMjM4LDkgKzIzOCw5IEBAIEdldE9wdGlvbnMoInNlcnZlci1ob3N0PXMiLCAic2VydmVy LWxvZ3MKICAgICAgICAgICAgInRlc3QtZHVyYXRpb249aSIsICJ0ZXN0LXN1ZmZpeD1zIiwgImNo ZWNrLXRlc3RzLWZpbGUiLCAKICAgICAgICAgICAgInZlcmJvc2UiLCAibG9nLWVycm9yLWRldGFp bHMiLCAiY2xlYW51cCIsICJteXNxbHRlc3Q9cyIsIAogICAgICAgICAgICAjIE9CTjogKGNoYW5n aW5nICdhYm9ydC1vbi1lcnJvcicgdG8gbnVtYmVyaWMgZm9yIFdMLTQ2MjYvNDY4NSkgCi0gICAg ICAgICAgICJhYm9ydC1vbi1lcnJvcj1pIiA9PiBcJG9wdF9hYm9ydF9vbl9lcnJvciwgImhlbHAi KSB8fCB1c2FnZSgpOworICAgICAgICAgICAiYWJvcnQtb24tZXJyb3I9aSIgPT4gXCRvcHRfYWJv cnRfb25fZXJyb3IsICJoZWxwIikgfHwgdXNhZ2UoMSk7CiAKLXVzYWdlKCkgaWYgKCRvcHRfaGVs cCk7Cit1c2FnZSgwKSBpZiAoJG9wdF9oZWxwKTsKIAogIyRvcHRfYWJvcnRfb25fZXJyb3I9MTsK IApAQCAtMTEzMSw2ICsxMTMxLDcgQEAgc3ViIHNpZ19URVJNX2hhbmRsZXIKIAogc3ViIHVzYWdl CiB7CisgIG15ICRyZXRjb2RlPSBzaGlmdDsKICAgcHJpbnQgPDxFT0Y7CiAKIFRoZSBNeVNRTCBT dHJlc3Mgc3VpdGUgVmVyICRzdHJlc3Nfc3VpdGVfdmVyc2lvbgpAQCAtMTIzNCw3ICsxMjM1LDcg QEAgcGVybCBteXNxbC1zdHJlc3MtdGVzdC5wbCBcCiAtLWNsZWFudXAgXAogCiBFT0YKLWV4aXQo MCk7CitleGl0KCRyZXRjb2RlKTsKIH0KIAogCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC9teXNxbC10ZXN0LXJ1bi5wbCcKLS0tIGEvbXlzcWwtdGVzdC9teXNxbC10ZXN0LXJ1bi5wbAky MDExLTA5LTIzIDEwOjU1OjEwICswMDAwCisrKyBiL215c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4u cGwJMjAxMS0wOS0yNiAwOToxOToxMiArMDAwMApAQCAtMTgxLDYgKzE4MSw4IEBAIG91ciBAb3B0 X2NvbWJpbmF0aW9uczsKIG91ciBAb3B0X2V4dHJhX215c3FsZF9vcHQ7CiBvdXIgQG9wdF9teXNx bGRfZW52czsKIAorbXkgJG9wdF9zdHJlc3M7CisKIG15ICRvcHRfY29tcHJlc3M7CiBteSAkb3B0 X3NzbDsKIG15ICRvcHRfc2tpcF9zc2w7CkBAIC0yMjQsMTAgKzIyNiwxMyBAQCBvdXIgJWdwcm9m X2RpcnM7CiBvdXIgJGdsb2JfZGVidWdnZXI9IDA7CiBvdXIgJG9wdF9nZGI7CiBvdXIgJG9wdF9j bGllbnRfZ2RiOworbXkgJG9wdF9ib290X2dkYjsKIG91ciAkb3B0X2RieDsKIG91ciAkb3B0X2Ns aWVudF9kYng7CitteSAkb3B0X2Jvb3RfZGJ4Owogb3VyICRvcHRfZGRkOwogb3VyICRvcHRfY2xp ZW50X2RkZDsKK215ICRvcHRfYm9vdF9kZGQ7CiBvdXIgJG9wdF9tYW51YWxfZ2RiOwogb3VyICRv cHRfbWFudWFsX2RieDsKIG91ciAkb3B0X21hbnVhbF9kZGQ7CkBAIC00MjUsOCArNDMwLDggQEAg c3ViIG1haW4gewogICB9CiAgICRFTlZ7TVRSX1BBUkFMTEVMfSA9ICRvcHRfcGFyYWxsZWw7CiAK LSAgaWYgKCRvcHRfcGFyYWxsZWwgPiAxICYmICRvcHRfc3RhcnRfZXhpdCkgewotICAgIG10cl93 YXJuaW5nKCJQYXJhbGxlbCBhbmQgLS1zdGFydC1hbmQtZXhpdCBjYW5ub3QgYmUgY29tYmluZWRc biIgLgorICBpZiAoJG9wdF9wYXJhbGxlbCA+IDEgJiYgKCRvcHRfc3RhcnRfZXhpdCB8fCAkb3B0 X3N0cmVzcykpIHsKKyAgICBtdHJfd2FybmluZygiUGFyYWxsZWwgY2Fubm90IGJlIHVzZWQgd2l0 aCAtLXN0YXJ0LWFuZC1leGl0IG9yIC0tc3RyZXNzXG4iIC4KICAgICAgICAgICAgICAgICJTZXR0 aW5nIHBhcmFsbGVsIHRvIDEiKTsKICAgICAkb3B0X3BhcmFsbGVsPSAxOwogICB9CkBAIC02NTYs OCArNjYxLDkgQEAgc3ViIHJ1bl90ZXN0X3NlcnZlciAoJCQkKSB7CiAJCQkgbXkgJGNvcmVfZmls ZT0gJEZpbGU6OkZpbmQ6Om5hbWU7CiAJCQkgbXkgJGNvcmVfbmFtZT0gYmFzZW5hbWUoJGNvcmVf ZmlsZSk7CiAKLQkJCSBpZiAoJGNvcmVfbmFtZSA9fiAvXmNvcmUvIG9yICAjIFN0YXJ0aW5nIHdp dGggY29yZQotCQkJICAgICAoSVNfV0lORE9XUyBhbmQgJGNvcmVfbmFtZSA9fiAvXC5kbXAkLykp eworCQkJICMgTmFtZSBiZWdpbm5pbmcgd2l0aCBjb3JlLCBub3QgZW5kaW5nIGluIC5negorCQkJ IGlmICgoJGNvcmVfbmFtZSA9fiAvXmNvcmUvIGFuZCAkY29yZV9uYW1lICF+IC9cLmd6JC8pCisJ CQkgICAgIG9yIChJU19XSU5ET1dTIGFuZCAkY29yZV9uYW1lID1+IC9cLmRtcCQvKSl7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFbmRp bmcgd2l0aCAuZG1wCiAJCQkgICBtdHJfcmVwb3J0KCIgLSBmb3VuZCAnJGNvcmVfbmFtZSciLAog CQkJCSAgICAgICIoJG51bV9zYXZlZF9jb3Jlcy8kb3B0X21heF9zYXZlX2NvcmUpIik7CkBAIC0x MTAyLDE0ICsxMTA4LDE3IEBAIHN1YiBjb21tYW5kX2xpbmVfc2V0dXAgewogICAgICAgICAgICAg ICdnZGInICAgICAgICAgICAgICAgICAgICAgID0+IFwkb3B0X2dkYiwKICAgICAgICAgICAgICAn Y2xpZW50LWdkYicgICAgICAgICAgICAgICA9PiBcJG9wdF9jbGllbnRfZ2RiLAogICAgICAgICAg ICAgICdtYW51YWwtZ2RiJyAgICAgICAgICAgICAgID0+IFwkb3B0X21hbnVhbF9nZGIsCisJICAg ICAnYm9vdC1nZGInICAgICAgICAgICAgICAgICA9PiBcJG9wdF9ib290X2dkYiwKICAgICAgICAg ICAgICAnbWFudWFsLWRlYnVnJyAgICAgICAgICAgICA9PiBcJG9wdF9tYW51YWxfZGVidWcsCiAg ICAgICAgICAgICAgJ2RkZCcgICAgICAgICAgICAgICAgICAgICAgPT4gXCRvcHRfZGRkLAogICAg ICAgICAgICAgICdjbGllbnQtZGRkJyAgICAgICAgICAgICAgID0+IFwkb3B0X2NsaWVudF9kZGQs CiAgICAgICAgICAgICAgJ21hbnVhbC1kZGQnICAgICAgICAgICAgICAgPT4gXCRvcHRfbWFudWFs X2RkZCwKKwkgICAgICdib290LWRkZCcgICAgICAgICAgICAgICAgID0+IFwkb3B0X2Jvb3RfZGRk LAogICAgICAgICAgICAgICdkYngnICAgICAgICAgICAgICAgICAgICAgID0+IFwkb3B0X2RieCwK IAkgICAgICdjbGllbnQtZGJ4JyAgICAgICAgICAgICAgID0+IFwkb3B0X2NsaWVudF9kYngsCiAJ ICAgICAnbWFudWFsLWRieCcgICAgICAgICAgICAgICA9PiBcJG9wdF9tYW51YWxfZGJ4LAogCSAg ICAgJ2RlYnVnZ2VyPXMnICAgICAgICAgICAgICAgPT4gXCRvcHRfZGVidWdnZXIsCisJICAgICAn Ym9vdC1kYngnICAgICAgICAgICAgICAgICA9PiBcJG9wdF9ib290X2RieCwKIAkgICAgICdjbGll bnQtZGVidWdnZXI9cycgICAgICAgID0+IFwkb3B0X2NsaWVudF9kZWJ1Z2dlciwKICAgICAgICAg ICAgICAnc3RyYWNlLWNsaWVudDpzJyAgICAgICAgICA9PiBcJG9wdF9zdHJhY2VfY2xpZW50LAog ICAgICAgICAgICAgICdtYXgtc2F2ZS1jb3JlPWknICAgICAgICAgID0+IFwkb3B0X21heF9zYXZl X2NvcmUsCkBAIC0xMTc4LDYgKzExODcsNyBAQCBzdWIgY29tbWFuZF9saW5lX3NldHVwIHsKIAkg ICAgICdyZXBvcnQtdGltZXMnICAgICAgICAgICAgID0+IFwkb3B0X3JlcG9ydF90aW1lcywKIAkg ICAgICdyZXN1bHQtZmlsZScgICAgICAgICAgICAgID0+IFwkb3B0X3Jlc2ZpbGUsCiAJICAgICAn dW5pdC10ZXN0cyEnICAgICAgICAgICAgICA9PiBcJG9wdF9jdGVzdCwKKwkgICAgICdzdHJlc3M9 cycgICAgICAgICAgICAgICAgID0+IFwkb3B0X3N0cmVzcywKIAogICAgICAgICAgICAgICdoZWxw fGgnICAgICAgICAgICAgICAgICAgID0+IFwkb3B0X3VzYWdlLAogCSAgICAgIyBsaXN0LW9wdGlv bnMgaXMgaW50ZXJuYWwsIG5vdCBsaXN0ZWQgaW4gaGVscApAQCAtMTYzOCw2ICsxNjQ4LDIyIEBA IHN1YiBjb21tYW5kX2xpbmVfc2V0dXAgewogICB9CiAKICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAjIEdhdGhlciBzdHJlc3MtdGVzdCBvcHRpb25zIGFuZCBtb2RpZnkgYmVoYXZpb3IKKyAgIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCisgIGlmICgkb3B0X3N0cmVzcykKKyAgeworICAgICRvcHRfc3Ry ZXNzPX4gcy8sLyAvZzsKKyAgICAkb3B0X3VzZXJfYXJncz0gMTsKKyAgICBtdHJfZXJyb3IoIi0t c3RyZXNzIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG5hbWVkIG9yZGluYXJ5IHN1aXRlcyBvciB0 ZXN0cyIpCisgICAgICBpZiAkb3B0X3N1aXRlcyB8fCBAb3B0X2Nhc2VzOworICAgICRvcHRfc3Vp dGVzPSJzdHJlc3MiOworICAgIEBvcHRfY2FzZXM9ICgid3JhcHBlciIpOworICAgICRFTlZ7TVNU X09QVElPTlN9PSAkb3B0X3N0cmVzczsKKyAgICAkb3B0X2N0ZXN0PSAwOworICB9CisKKyAgIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAjIENoZWNrIHRpbWVvdXQgYXJndW1lbnRzCiAgICMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIApAQCAtMjM4MCw2ICsyNDA2LDEyIEBAIHN1YiBlbnZpcm9ubWVudF9zZXR1 cCB7CiAgICRFTlZ7J01ZU1FMX1BMVUdJTid9PSAgICAgICAgICAgICAkZXhlX215c3FsX3BsdWdp bjsKICAgJEVOVnsnTVlTUUxfRU1CRURERUQnfT0gICAgICAgICAgICRleGVfbXlzcWxfZW1iZWRk ZWQ7CiAKKyAgbXkgJGV4ZV9teXNxbGQ9IGZpbmRfbXlzcWxkKCRiYXNlZGlyKTsKKyAgJEVOVnsn TVlTUUxEJ309ICRleGVfbXlzcWxkOworICBteSAkZXh0cmFfb3B0cz0gam9pbiAoIiAiLCBAb3B0 X2V4dHJhX215c3FsZF9vcHQpOworICAkRU5WeydNWVNRTERfQ01EJ309ICIkZXhlX215c3FsZCAt LWRlZmF1bHRzLWdyb3VwLXN1ZmZpeD0uMSAiLgorICAgICItLWRlZmF1bHRzLWZpbGU9JHBhdGhf Y29uZmlnX2ZpbGUgJGV4dHJhX29wdHMiOworCiAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAjIGJ1ZzI1NzE0IGV4ZWN1dGFibGUgbWF5 IF9ub3RfIGV4aXN0IGluCiAgICMgc29tZSB2ZXJzaW9ucywgdGVzdCB1c2luZyBpdCBzaG91bGQg YmUgc2tpcHBlZApAQCAtMzI1NSw2ICszMjg3LDE5IEBAIHN1YiBteXNxbF9pbnN0YWxsX2RiIHsK ICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgIG15ICRib290c3RyYXBfc3FsX2ZpbGU9ICIkb3B0X3ZhcmRp ci90bXAvYm9vdHN0cmFwLnNxbCI7CiAKKyAgaWYgKCRvcHRfYm9vdF9nZGIpIHsKKyAgICBnZGJf YXJndW1lbnRzKFwkYXJncywgXCRleGVfbXlzcWxkX2Jvb3RzdHJhcCwgJG15c3FsZC0+bmFtZSgp LAorCQkgICRib290c3RyYXBfc3FsX2ZpbGUpOworICB9CisgIGlmICgkb3B0X2Jvb3RfZGJ4KSB7 CisgICAgZGJ4X2FyZ3VtZW50cyhcJGFyZ3MsIFwkZXhlX215c3FsZF9ib290c3RyYXAsICRteXNx bGQtPm5hbWUoKSwKKwkJICAkYm9vdHN0cmFwX3NxbF9maWxlKTsKKyAgfQorICBpZiAoJG9wdF9i b290X2RkZCkgeworICAgIGRkZF9hcmd1bWVudHMoXCRhcmdzLCBcJGV4ZV9teXNxbGRfYm9vdHN0 cmFwLCAkbXlzcWxkLT5uYW1lKCksCisJCSAgJGJvb3RzdHJhcF9zcWxfZmlsZSk7CisgIH0KKwog ICBteSAkcGF0aF9zcWw9IG15X2ZpbmRfZmlsZSgkaW5zdGFsbF9iYXNlZGlyLAogCQkJICAgICBb Im15c3FsIiwgInNxbC9zaGFyZSIsICJzaGFyZS9teXNxbCIsCiAJCQkgICAgICAic2hhcmUiLCAi c2NyaXB0cyJdLApAQCAtNDE3Myw2ICs0MjE4LDExIEBAIHN1YiBleHRyYWN0X3NlcnZlcl9sb2cg KCQkKSB7CiAgICAgICBlbHNlCiAgICAgICB7CiAJcHVzaChAbGluZXMsICRsaW5lKTsKKwlpZiAo c2NhbGFyKEBsaW5lcykgPiAxMDAwMDAwKSB7CisJICAkRmVyciA9IHVuZGVmOworCSAgbXRyX3dh cm5pbmcoIlRvbyBtdWNoIGxvZyBmcm9tIHRlc3QsIGJhaWxpbmcgb3V0IGZyb20gZXh0cmFjdGlu ZyIpOworCSAgcmV0dXJuICgpOworCX0KICAgICAgIH0KICAgICB9CiAgICAgZWxzZQpAQCAtNTYx MCwxOSArNTY2MCwyMSBAQCBzdWIgZ2RiX2FyZ3VtZW50cyB7CiAgIG15ICRhcmdzPSBzaGlmdDsK ICAgbXkgJGV4ZT0gIHNoaWZ0OwogICBteSAkdHlwZT0gc2hpZnQ7CisgIG15ICRpbnB1dD0gc2hp ZnQ7CiAKLSAgIyBXcml0ZSAkYXJncyB0byBnZGIgaW5pdCBmaWxlCi0gIG15ICRzdHI9IGpvaW4g IiAiLCBtYXAgeyBzLyIvXFwiL2c7ICJcIiRfXCIiOyB9IEAkJGFyZ3M7CiAgIG15ICRnZGJfaW5p dF9maWxlPSAiJG9wdF92YXJkaXIvdG1wL2dkYmluaXQuJHR5cGUiOwogCiAgICMgUmVtb3ZlIHRo ZSBvbGQgZ2RiaW5pdCBmaWxlCiAgIHVubGluaygkZ2RiX2luaXRfZmlsZSk7CiAKKyAgIyBQdXQg JGFyZ3MgaW50byBhIHNpbmdsZSBzdHJpbmcKKyAgbXkgJHN0cj0gam9pbigiICIsIEAkJGFyZ3Mp OworICBteSAkcnVubGluZT0gJGlucHV0ID8gInJ1biAkc3RyIDwgJGlucHV0IiA6ICJydW4gJHN0 ciI7CisKICAgIyB3cml0ZSBpbml0IGZpbGUgZm9yIG15c3FsZCBvciBjbGllbnQKICAgbXRyX3Rv ZmlsZSgkZ2RiX2luaXRfZmlsZSwKLQkgICAgICJzZXQgYXJncyAkc3RyXG4iIC4KIAkgICAgICJi cmVhayBtYWluXG4iIC4KLQkgICAgICJydW4iKTsKKwkgICAgICRydW5saW5lKTsKIAogICBpZiAo ICRvcHRfbWFudWFsX2dkYiApCiAgIHsKQEAgLTU2NjEsMjAgKzU3MTMsMjIgQEAgc3ViIGRkZF9h cmd1bWVudHMgewogICBteSAkYXJncz0gc2hpZnQ7CiAgIG15ICRleGU9ICBzaGlmdDsKICAgbXkg JHR5cGU9IHNoaWZ0OworICBteSAkaW5wdXQ9IHNoaWZ0OwogCi0gICMgV3JpdGUgJGFyZ3MgdG8g ZGRkIGluaXQgZmlsZQotICBteSAkc3RyPSBqb2luICIgIiwgbWFwIHsgcy8iL1xcIi9nOyAiXCIk X1wiIjsgfSBAJCRhcmdzOwogICBteSAkZ2RiX2luaXRfZmlsZT0gIiRvcHRfdmFyZGlyL3RtcC9n ZGJpbml0LiR0eXBlIjsKIAogICAjIFJlbW92ZSB0aGUgb2xkIGdkYmluaXQgZmlsZQogICB1bmxp bmsoJGdkYl9pbml0X2ZpbGUpOwogCisgICMgUHV0ICRhcmdzIGludG8gYSBzaW5nbGUgc3RyaW5n CisgIG15ICRzdHI9IGpvaW4oIiAiLCBAJCRhcmdzKTsKKyAgbXkgJHJ1bmxpbmU9ICRpbnB1dCA/ ICJydW4gJHN0ciA8ICRpbnB1dCIgOiAicnVuICRzdHIiOworCiAgICMgd3JpdGUgaW5pdCBmaWxl IGZvciBteXNxbGQgb3IgY2xpZW50CiAgIG10cl90b2ZpbGUoJGdkYl9pbml0X2ZpbGUsCiAJICAg ICAiZmlsZSAkJGV4ZVxuIiAuCi0JICAgICAic2V0IGFyZ3MgJHN0clxuIiAuCiAJICAgICAiYnJl YWsgbWFpblxuIiAuCi0JICAgICAicnVuIik7CisJICAgICAkcnVubGluZSk7CiAKICAgaWYgKCAk b3B0X21hbnVhbF9kZGQgKQogICB7CkBAIC01NzEwLDE0ICs1NzY0LDE2IEBAIHN1YiBkYnhfYXJn dW1lbnRzIHsKICAgbXkgJGFyZ3M9IHNoaWZ0OwogICBteSAkZXhlPSAgc2hpZnQ7CiAgIG15ICR0 eXBlPSBzaGlmdDsKKyAgbXkgJGlucHV0PSBzaGlmdDsKIAogICAjIFB1dCAkYXJncyBpbnRvIGEg c2luZ2xlIHN0cmluZwogICBteSAkc3RyPSBqb2luICIgIiwgQCQkYXJnczsKKyAgbXkgJHJ1bmxp bmU9ICRpbnB1dCA/ICJydW4gJHN0ciA8ICRpbnB1dCIgOiAicnVuICRzdHIiOwogCiAgIGlmICgg JG9wdF9tYW51YWxfZGJ4ICkgewogICAgIHByaW50ICJcblRvIHN0YXJ0IGRieCBmb3IgJHR5cGUs IHR5cGUgaW4gYW5vdGhlciB3aW5kb3c6XG4iOwogICAgIHByaW50ICJjZCAkZ2xvYl9teXNxbF90 ZXN0X2RpcjsgZGJ4IC1jIFwic3RvcCBpbiBtYWluOyAiIC4KLSAgICAgICAgICAicnVuICRzdHJc IiAkJGV4ZVxuIjsKKyAgICAgICAgICAiJHJ1bmxpbmVcIiAkJGV4ZVxuIjsKIAogICAgICMgSW5k aWNhdGUgdGhlIGV4ZSBzaG91bGQgbm90IGJlIHN0YXJ0ZWQKICAgICAkJGV4ZT0gdW5kZWY7CkBA IC01NzM2LDcgKzU3OTIsNyBAQCBzdWIgZGJ4X2FyZ3VtZW50cyB7CiAKICAgbXRyX2FkZF9hcmco JCRhcmdzLCAiZGJ4Iik7CiAgIG10cl9hZGRfYXJnKCQkYXJncywgIi1jIik7Ci0gIG10cl9hZGRf YXJnKCQkYXJncywgInN0b3AgaW4gbWFpbjsgcnVuICRzdHIiKTsKKyAgbXRyX2FkZF9hcmcoJCRh cmdzLCAic3RvcCBpbiBtYWluOyAkcnVubGluZSIpOwogICBtdHJfYWRkX2FyZygkJGFyZ3MsICIk JGV4ZSIpOwogCiAgICQkZXhlPSAieHRlcm0iOwpAQCAtNjE4Niw2ICs2MjQyLDggQEAgTWlzYyBv cHRpb25zCiAgIG5vdW5pdC10ZXN0cyAgICAgICAgICBEbyBub3QgcnVuIHVuaXQgdGVzdHMuIE5v cm1hbGx5IHJ1biBpZiBjb25maWd1cmVkCiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgaWYg bm90IHJ1bm5pbmcgbmFtZWQgdGVzdHMvc3VpdGVzCiAgIHVuaXQtdGVzdHMgICAgICAgICAgICBS dW4gdW5pdCB0ZXN0cyBldmVuIGlmIHRoZXkgd291bGQgb3RoZXJ3aXNlIG5vdCBiZSBydW4KKyAg c3RyZXNzPUFSR1MgICAgICAgICAgIFJ1biBzdHJlc3MgdGVzdCwgcHJvdmlkaW5nIG9wdGlvbnMg dG8KKyAgICAgICAgICAgICAgICAgICAgICAgIG15c3FsLXN0cmVzcy10ZXN0LnBsLiBPcHRpb25z IGFyZSBzZXBhcmF0ZWQgYnkgY29tbWEuCiAKIFNvbWUgb3B0aW9ucyB0aGF0IGNvbnRyb2wgZW5h YmxpbmcgYSBmZWF0dXJlIGZvciBub3JtYWwgdGVzdCBydW5zLAogY2FuIGJlIHR1cm5lZCBvZmYg YnkgcHJlcGVuZGluZyAnbm8nIHRvIHRoZSBvcHRpb24sIGUuZy4gLS1ub3RpbWVyLgoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9mdW5jX3N0ci5yZXN1bHQnCi0tLSBhL215c3FsLXRl c3Qvci9mdW5jX3N0ci5yZXN1bHQJMjAxMS0wOS0yMiAxMDo0MjoxMCArMDAwMAorKysgYi9teXNx bC10ZXN0L3IvZnVuY19zdHIucmVzdWx0CTIwMTEtMDktMjYgMTI6Mjc6MDYgKzAwMDAKQEAgLTI4 NTMsOCArMjg1Myw4IEBAIFNFTEVDVCAoKHJwYWQoMS4wLDIwNDgsMSkpID0gKCc0KCcpIF4gKDAK IFdhcm5pbmdzOgogV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgSU5URUdFUiB2YWx1 ZTogJzQoJwogU0VMRUNUCi1wb3coKHJwYWQoMS4wLDIwNDgsMSkpLChiJzExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKSk7Ci1FUlJPUiAyMjAwMzogRE9VQkxFIHZh bHVlIGlzIG91dCBvZiByYW5nZSBpbiAncG93KHJwYWQoMS4wLDIwNDgsMSksMHgwN2ZmZmZmZmZm ZmYpJworcG93KChycGFkKDEwLjAsMjA0OCwxKSksKGInMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMScpKTsKK0VSUk9SIDIyMDAzOiBET1VCTEUgdmFsdWUgaXMgb3V0 IG9mIHJhbmdlIGluICdwb3cocnBhZCgxMC4wLDIwNDgsMSksMHgwN2ZmZmZmZmZmZmYpJwogU0VM RUNUICgocnBhZCgxLjAsMjA0OCwxKSkgKyAoMCkgXiAoJy4uLycpKTsKICgocnBhZCgxLjAsMjA0 OCwxKSkgKyAoMCkgXiAoJy4uLycpKQogMS4wMTExMTExMTExMTExMTEKCj09PSBtb2RpZmllZCBm aWxlICdteXNxbC10ZXN0L3IvZ3JvdXBfYnkucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvZ3Jv dXBfYnkucmVzdWx0CTIwMTEtMDktMTMgMDc6MjI6NDkgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9y L2dyb3VwX2J5LnJlc3VsdAkyMDExLTA5LTI2IDEzOjQ4OjA2ICswMDAwCkBAIC0yMTA4LDMgKzIx MDgsMTcgQEAgcGsKIERST1AgVklFVyB2MTsKIERST1AgVEFCTEUgdDEsdDI7CiAjIEVuZCBvZiBC dWcjMTI3OTgyNzAKKyMKKyMgQnVnIzEyODM3NzE0OiBBRERJVElPTkFMIE5VTEwgSU4gNS42IE9O IEdST1VQRUQgU0VMRUNUCisjCitDUkVBVEUgVEFCTEUgdDEgKHZjIHZhcmNoYXIoMSksIElOREVY IHZjX2lkeCAodmMpKSA7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKE5VTEwpLCAoJ28nKSwgKE5V TEwpLCAoJ3AnKSwgKCdjJyk7CitGTFVTSCBUQUJMRSB0MTsKK1NFTEVDVCB2YyBGUk9NIHQxIEdS T1VQIEJZIHZjOwordmMKK05VTEwKK2MKK28KK3AKK0RST1AgVEFCTEUgdDE7CisjIEVuZCBvZiBC dWcjMTI4Mzc3MTQKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvbXlzcWx0ZXN0LnJl c3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL215c3FsdGVzdC5yZXN1bHQJMjAxMS0wOC0yMiAxMzoy NDozOCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvbXlzcWx0ZXN0LnJlc3VsdAkyMDExLTA5LTE1 IDEyOjE5OjU4ICswMDAwCkBAIC0xNTEsNiArMTUxLDEwIEBAIHNlbGVjdCAxMTQ2IGFzICJhZnRl cl8hZXJybm9fbWFza2VkX2Vycm8KIGFmdGVyXyFlcnJub19tYXNrZWRfZXJyb3IKIDExNDYKIG15 c3FsdGVzdDogQXQgbGluZSAxOiBxdWVyeSAnc2VsZWN0IDMgZnJvbSB0MScgZmFpbGVkIHdpdGgg d3JvbmcgZXJybm8gMTE0NjogJ1RhYmxlICd0ZXN0LnQxJyBkb2Vzbid0IGV4aXN0JywgaW5zdGVh ZCBvZiAxMDAwLi4uCitFUlJPUiA0MjAwMDogWW91IGhhdmUgYW4gZXJyb3IgaW4geW91ciBTUUwg c3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29ycmVzcG9uZHMgdG8geW91ciBNeVNRTCBz ZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byB1c2UgbmVhciAnZ2FyYmFnZScg YXQgbGluZSAxCisgaXMgZW1wdHkKK0VSUk9SIDQyMDAwOiBZb3UgaGF2ZSBhbiBlcnJvciBpbiB5 b3VyIFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0byB5b3Vy IE15U1FMIHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBuZWFyICdu b25zZW5zZScgYXQgbGluZSAxCisgaXMgZW1wdHkKIGdhcmJhZ2UgOwogRVJST1IgNDIwMDA6IFlv dSBoYXZlIGFuIGVycm9yIGluIHlvdXIgU1FMIHN5bnRheDsgY2hlY2sgdGhlIG1hbnVhbCB0aGF0 IGNvcnJlc3BvbmRzIHRvIHlvdXIgTXlTUUwgc2VydmVyIHZlcnNpb24gZm9yIHRoZSByaWdodCBz eW50YXggdG8gdXNlIG5lYXIgJ2dhcmJhZ2UnIGF0IGxpbmUgMQogRVJfUEFSU0VfRVJST1IKQEAg LTE2MCw2ICsxNjQsMjggQEAgYWZ0ZXJfLS1lbmFibGVfYWJvcnRfb25fZXJyb3IKIHNlbGVjdCAz IGZyb20gdDEgOwogRVJST1IgNDJTMDI6IFRhYmxlICd0ZXN0LnQxJyBkb2Vzbid0IGV4aXN0CiBt eXNxbHRlc3Q6IEF0IGxpbmUgMTogcXVlcnkgJ3NlbGVjdCAzIGZyb20gdDEnIGZhaWxlZCB3aXRo IHdyb25nIGVycm5vIDExNDY6ICdUYWJsZSAndGVzdC50MScgZG9lc24ndCBleGlzdCcsIGluc3Rl YWQgb2YgMTA2NC4uLgorZ2FyYmFnZTsKK0VSUk9SIDQyMDAwOiBZb3UgaGF2ZSBhbiBlcnJvciBp biB5b3VyIFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0byB5 b3VyIE15U1FMIHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBuZWFy ICdnYXJiYWdlJyBhdCBsaW5lIDEKK3NlbGVjdCAyOworc2VsZWN0IDM7CiszCiszCitzZWxlY3Qg NTsKK0VSUk9SIDQyUzAyOiBUYWJsZSAndGVzdC50MScgZG9lc24ndCBleGlzdAorc2VsZWN0IDc7 Cis3Cis3CitteXNxbHRlc3Q6IEF0IGxpbmUgMTogRW5kIG9mIGxpbmUganVuayBkZXRlY3RlZDog Ik9DTkUiCitjb25uZWN0ICBjb24xLGxvY2FsaG9zdCxyb290LCw7CitzZWxlY3QgNSBmcm9tIHQx OworbG93ZXIKK2Nhc2UKK25hbWUKK2FiYworeHl6CisgaXMgZW1wdHkKKyBpcyBlbXB0eQorIlll cyBpdCdzIGVtcHR5IgogaGVsbG8KIGhlbGxvCiA7Ozs7Ozs7OwpAQCAtMzMyLDcgKzM1OCw3IEBA IGluc2VydCBpbnRvIHQxIHZhbHVlcyAoJyRkb2xsYXInKTsKICRkb2xsYXIKIGBzZWxlY3QgNDJg CiBkcm9wIHRhYmxlIHQxOwotbXlzcWx0ZXN0OiBBdCBsaW5lIDE6IEVycm9yIHJ1bm5pbmcgcXVl cnkgJ2ZhaWxpbmcgcXVlcnknOiAxMDY0IFlvdSBoYXZlIGFuIGVycm9yIGluIHlvdXIgU1FMIHN5 bnRheDsgY2hlY2sgdGhlIG1hbnVhbCB0aGF0IGNvcnJlc3BvbmRzIHRvIHlvdXIgTXlTUUwgc2Vy dmVyIHZlcnNpb24gZm9yIHRoZSByaWdodCBzeW50YXggdG8gdXNlIG5lYXIgJ2ZhaWxpbmcgcXVl cnknIGF0IGxpbmUgMQorbXlzcWx0ZXN0OiBBdCBsaW5lIDE6IHF1ZXJ5ICdsZXQgJHZhcjI9IGBm YWlsaW5nIHF1ZXJ5YCcgZmFpbGVkOiAxMDY0OiBZb3UgaGF2ZSBhbiBlcnJvciBpbiB5b3VyIFNR TCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0byB5b3VyIE15U1FM IHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBuZWFyICdmYWlsaW5n IHF1ZXJ5JyBhdCBsaW5lIDEKIG15c3FsdGVzdDogQXQgbGluZSAxOiBNaXNzaW5nIHJlcXVpcmVk IGFyZ3VtZW50ICdmaWxlbmFtZScgdG8gY29tbWFuZCAnc291cmNlJwogbXlzcWx0ZXN0OiBBdCBs aW5lIDE6IENvdWxkIG5vdCBvcGVuICcuL25vbl9leGlzdGluZ0ZpbGUnIGZvciByZWFkaW5nLCBl cnJubzogMgogbXlzcWx0ZXN0OiBJbiBpbmNsdWRlZCBmaWxlICJNWVNRTFRFU1RfVkFSRElSL3Rt cC9yZWN1cnNpdmUuc3FsIjogCkBAIC04NjMsNyArODg5LDcgQEAgbXlzcWx0ZXN0OiBBdCBsaW5l IDE6IENvdWxkIG5vdCBmaW5kIGNvbAogbXlzcWx0ZXN0OiBBdCBsaW5lIDE6IFF1ZXJ5ICdTRVQg QEEgPSAxJyBkaWRuJ3QgcmV0dXJuIGEgcmVzdWx0IHNldAogbXlzcWx0ZXN0OiBBdCBsaW5lIDE6 IENvdWxkIG5vdCBmaW5kIGNvbHVtbiAnMSBBUyBCJyBpbiB0aGUgcmVzdWx0IG9mICdTRUxFQ1Qg MSBBUyBBJwogdmFsdWU9IE5vIHN1Y2ggcm93Ci1teXNxbHRlc3Q6IEF0IGxpbmUgMTogRXJyb3Ig cnVubmluZyBxdWVyeSAnU0hPVyBDT0xOUyBGUk9NIHQxJzogMTA2NCBZb3UgaGF2ZSBhbiBlcnJv ciBpbiB5b3VyIFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0 byB5b3VyIE15U1FMIHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBu ZWFyICdDT0xOUyBGUk9NIHQxJyBhdCBsaW5lIDEKK215c3FsdGVzdDogQXQgbGluZSAxOiBxdWVy eSAnbGV0ICR2YWx1ZT0gcXVlcnlfZ2V0X3ZhbHVlKFNIT1cgQ09MTlMgRlJPTSB0MSwgRmllbGQs IDEpJyBmYWlsZWQ6IDEwNjQ6IFlvdSBoYXZlIGFuIGVycm9yIGluIHlvdXIgU1FMIHN5bnRheDsg Y2hlY2sgdGhlIG1hbnVhbCB0aGF0IGNvcnJlc3BvbmRzIHRvIHlvdXIgTXlTUUwgc2VydmVyIHZl cnNpb24gZm9yIHRoZSByaWdodCBzeW50YXggdG8gdXNlIG5lYXIgJ0NPTE5TIEZST00gdDEnIGF0 IGxpbmUgMQogCiBGaWVsZCBUeXBlIE51bGwgS2V5IERlZmF1bHQgRXh0cmEKIGEgaW50KDExKSBZ RVMgLT48LSBOVUxMIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9wbHVnaW5fYXV0 aC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9wbHVnaW5fYXV0aC5yZXN1bHQJMjAxMS0wOS0y MyAxMjoyMjo1OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvcGx1Z2luX2F1dGgucmVzdWx0CTIw MTEtMDktMjYgMTA6MzQ6NDkgKzAwMDAKQEAgLTQ4NiwxNyArNDg2LDEzIEBAIERST1AgVVNFUiBi dWcxMjYxMDc4NEBsb2NhbGhvc3Q7CiAjCiAjIEJ1ZyAjIDExNzY2NjQxOiA1OTc5MjogQklOL01Z U1FMIC1VVU5LTk9XTiAtUFVOS05PV04gCiAjICAuLT4gVVNJTkcgUEFTU1dPUkQ6IE5PIAotIyBC dWcgIzEyODE4NTQyOiBQQU06IEFERElORyBQQVNTV09SRCBGT1IgQU4gQUNDT1VOVCBESVNBQkxF UyBQQU0gCi0jICAgQVVUSEVOVElDQVRJT04gU0VUVElOR1MKLSMKICMgc2hvdWQgY29udGFpbiAi dXNpbmcgcGFzc3dvcmQ9eWVzIgogRVJST1IgMTA0NSAoMjgwMDApOiBBY2Nlc3MgZGVuaWVkIGZv ciB1c2VyICd1bmtub3duJ0AnbG9jYWxob3N0JyAodXNpbmcgcGFzc3dvcmQ6IFlFUykKICMgc2hv dWQgY29udGFpbiAidXNpbmcgcGFzc3dvcmQ9bm8iCiBFUlJPUiAxMDQ1ICgyODAwMCk6IEFjY2Vz cyBkZW5pZWQgZm9yIHVzZXIgJ3Vua25vd24nQCdsb2NhbGhvc3QnICh1c2luZyBwYXNzd29yZDog Tk8pCi1DUkVBVEUgVVNFUiBidWcxMjYxMDc4NEBsb2NhbGhvc3Q7Ci1TRVQgUEFTU1dPUkQgRk9S IGJ1ZzEyNjEwNzg0QGxvY2FsaG9zdCA9IFBBU1NXT1JEKCdzZWNyZXQnKTsKLUVSUk9SIDI4MDAw OiBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICdidWcxMjYxMDc4NCdAJ2xvY2FsaG9zdCcgKHVzaW5n IHBhc3N3b3JkOiBOTykKLURST1AgVVNFUiBidWcxMjYxMDc4NEBsb2NhbGhvc3Q7CisjIEJ1ZyAj MTI4MTg1NDI6IFBBTTogQURESU5HIFBBU1NXT1JEIEZPUiBBTiBBQ0NPVU5UIERJU0FCTEVTIFBB TSAKKyMgICBBVVRIRU5USUNBVElPTiBTRVRUSU5HUworIwogQ1JFQVRFIFVTRVIgYnVnMTI4MTg1 NDJAbG9jYWxob3N0IAogSURFTlRJRklFRCBXSVRIICd0ZXN0X3BsdWdpbl9zZXJ2ZXInIEFTICdi dWcxMjgxODU0Ml9kZXN0JzsKIENSRUFURSBVU0VSIGJ1ZzEyODE4NTQyX2Rlc3RAbG9jYWxob3N0 IAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmVkZXJhdGVkL2ZlZGVyYXRl ZF9wbHVnaW4tbWFzdGVyLm9wdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVk ZXJhdGVkX3BsdWdpbi1tYXN0ZXIub3B0CTIwMTAtMDYtMTQgMDk6MjM6NDkgKzAwMDAKKysrIGIv bXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVkZXJhdGVkX3BsdWdpbi1tYXN0ZXIub3B0CTIw MTEtMDktMDUgMTI6NTc6NDggKzAwMDAKQEAgLTEgKzEsMiBAQAogLS1wbHVnaW5fZGlyPSRGRURF UkFURURfUExVR0lOX0RJUgorLS1sb29zZS1mZWRlcmF0ZWQ9T04KCj09PSBtb2RpZmllZCBmaWxl ICdteXNxbC10ZXN0L3N1aXRlL2ZlZGVyYXRlZC9mZWRlcmF0ZWRfcGx1Z2luLnJlc3VsdCcKLS0t IGEvbXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVkZXJhdGVkX3BsdWdpbi5yZXN1bHQJMjAx MC0wNS0wNSAwNzozNTozOCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZlZGVyYXRlZC9m ZWRlcmF0ZWRfcGx1Z2luLnJlc3VsdAkyMDExLTA5LTA1IDEyOjU3OjQ4ICswMDAwCkBAIC0wLDAg KzEsMTkgQEAKK0NSRUFURSBUQUJMRSB0MihhIGludCk7CitDUkVBVEUgVEFCTEUgdDEoYSBpbnQp IEVOR0lORT1GRURFUkFURUQKK0NPTk5FQ1RJT049J215c3FsOi8vcm9vdEBsb2NhbGhvc3Q6JE1B U1RFUl9NWVBPUlQvdGVzdC90Mic7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI4NglVbmtub3duIHN0 b3JhZ2UgZW5naW5lICdGRURFUkFURUQnCitXYXJuaW5nCTEyNjYJVXNpbmcgc3RvcmFnZSBlbmdp bmUgTXlJU0FNIGZvciB0YWJsZSAndDEnCitEUk9QIFRBQkxFIHQxOworSU5TVEFMTCBQTFVHSU4g ZmVkZXJhdGVkIFNPTkFNRSAnRkVERVJBVEVEX1BMVUdJTic7CitJTlNUQUxMIFBMVUdJTiBGRURF UkFURUQgU09OQU1FICdGRURFUkFURURfUExVR0lOJzsKK0VSUk9SIEhZMDAwOiBGdW5jdGlvbiAn RkVERVJBVEVEJyBhbHJlYWR5IGV4aXN0cworVU5JTlNUQUxMIFBMVUdJTiBmZWRlcmF0ZWQ7CitJ TlNUQUxMIFBMVUdJTiBmZWRlcmF0ZWQgU09OQU1FICdGRURFUkFURURfUExVR0lOJzsKK0NSRUFU RSBUQUJMRSB0MShhIGludCkgRU5HSU5FPUZFREVSQVRFRAorQ09OTkVDVElPTj0nbXlzcWw6Ly9y b290QGxvY2FsaG9zdDokTUFTVEVSX01ZUE9SVC90ZXN0L3QyJzsKK0RST1AgVEFCTEUgdDE7CitV TklOU1RBTEwgUExVR0lOIGZlZGVyYXRlZDsKK1VOSU5TVEFMTCBQTFVHSU4gZmVkZXJhdGVkOwor RVJST1IgNDIwMDA6IFBMVUdJTiBmZWRlcmF0ZWQgZG9lcyBub3QgZXhpc3QKK0RST1AgVEFCTEUg dDI7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mZWRlcmF0ZWQvZmVkZXJh dGVkX3BsdWdpbi50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZlZGVyYXRlZC9mZWRlcmF0 ZWRfcGx1Z2luLnRlc3QJMjAxMC0wNi0xNCAwOToyMzo0OSArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2ZlZGVyYXRlZC9mZWRlcmF0ZWRfcGx1Z2luLnRlc3QJMjAxMS0wOS0xNSAxMTowOToy NCArMDAwMApAQCAtMSwyNCArMSwzNyBAQAotLS1zb3VyY2UgaW5jbHVkZS9ub3Rfd2luZG93cy5p bmMKIC0tc291cmNlIGluY2x1ZGUvaGF2ZV9mZWRlcmF0ZWRfcGx1Z2luLmluYwogCi0tLXNraXAg ZmVkZXJhdGVkIHBsdWdpbiBpcyBkaXNhYmxlZAorIyBVbmluc3RhbGwgd2lsbCBub3QgdW5pbnN0 YWxsIGlmIHBzIGhhcyBiZWVuIHVzZWQKKy0tZGlzYWJsZV9wc19wcm90b2NvbAogCi1DUkVBVEUg VEFCTEUgdDEoYSBpbnQpIEVOR0lORT1GRURFUkFURUQ7Citjb25uZWN0IChtYXN0ZXIsbG9jYWxo b3N0LHJvb3QsLHRlc3QsJE1BU1RFUl9NWVBPUlQsKTsKK2Nvbm5lY3QgKHNsYXZlLGxvY2FsaG9z dCxyb290LCx0ZXN0LCRTTEFWRV9NWVBPUlQsKTsKKworY29ubmVjdGlvbiBtYXN0ZXI7CitDUkVB VEUgVEFCTEUgdDIoYSBpbnQpOworCitjb25uZWN0aW9uIHNsYXZlOworQ1JFQVRFIFRBQkxFIHQx KGEgaW50KSBFTkdJTkU9RkVERVJBVEVECisgIENPTk5FQ1RJT049J215c3FsOi8vcm9vdEBsb2Nh bGhvc3Q6JE1BU1RFUl9NWVBPUlQvdGVzdC90Mic7CiBEUk9QIFRBQkxFIHQxOwogCi1JTlNUQUxM IFBMVUdJTiBmZWRlcmF0ZWQgU09OQU1FICdoYV9mZWRlcmF0ZWQuc28nOwotLS1lcnJvciAxMTI1 Ci1JTlNUQUxMIFBMVUdJTiBGRURFUkFURUQgU09OQU1FICdoYV9mZWRlcmF0ZWQuc28nOworLS1y ZXBsYWNlX3Jlc3VsdCAkRkVERVJBVEVEX1BMVUdJTiBGRURFUkFURURfUExVR0lOCitldmFsIElO U1RBTEwgUExVR0lOIGZlZGVyYXRlZCBTT05BTUUgJyRGRURFUkFURURfUExVR0lOJzsKKy0tcmVw bGFjZV9yZXN1bHQgJEZFREVSQVRFRF9QTFVHSU4gRkVERVJBVEVEX1BMVUdJTgorLS1lcnJvciBF Ul9VREZfRVhJU1RTCitldmFsIElOU1RBTEwgUExVR0lOIEZFREVSQVRFRCBTT05BTUUgJyRGRURF UkFURURfUExVR0lOJzsKIAogVU5JTlNUQUxMIFBMVUdJTiBmZWRlcmF0ZWQ7CiAKLUlOU1RBTEwg UExVR0lOIGZlZGVyYXRlZCBTT05BTUUgJ2hhX2ZlZGVyYXRlZC5zbyc7Ci0KLUNSRUFURSBUQUJM RSB0MShhIGludCkgRU5HSU5FPUZFREVSQVRFRDsKKy0tcmVwbGFjZV9yZXN1bHQgJEZFREVSQVRF RF9QTFVHSU4gRkVERVJBVEVEX1BMVUdJTgorZXZhbCBJTlNUQUxMIFBMVUdJTiBmZWRlcmF0ZWQg U09OQU1FICckRkVERVJBVEVEX1BMVUdJTic7CiAKK0NSRUFURSBUQUJMRSB0MShhIGludCkgRU5H SU5FPUZFREVSQVRFRAorICBDT05ORUNUSU9OPSdteXNxbDovL3Jvb3RAbG9jYWxob3N0OiRNQVNU RVJfTVlQT1JUL3Rlc3QvdDInOwogRFJPUCBUQUJMRSB0MTsKIAogVU5JTlNUQUxMIFBMVUdJTiBm ZWRlcmF0ZWQ7CiAtLWVycm9yIEVSX1NQX0RPRVNfTk9UX0VYSVNUCiBVTklOU1RBTEwgUExVR0lO IGZlZGVyYXRlZDsKIAorY29ubmVjdGlvbiBtYXN0ZXI7CitEUk9QIFRBQkxFIHQyOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3BhcmFsbGVsX3N0YXJ0X3N0 b3AucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9wYXJhbGxlbF9zdGFy dF9zdG9wLnJlc3VsdAkyMDExLTA4LTE5IDEzOjA0OjI4ICswMDAwCisrKyBiL215c3FsLXRlc3Qv c3VpdGUvcnBsL3IvcnBsX3BhcmFsbGVsX3N0YXJ0X3N0b3AucmVzdWx0CTIwMTEtMDktMjYgMTU6 Mzk6MDAgKzAwMDAKQEAgLTU5LDcgKzU5LDcgQEAgc2V0IEBzYXZlLnNsYXZlX3RyYW5zYWN0aW9u X3JldHJpZXM9IEBAZwogc2V0IEBAZ2xvYmFsLnNsYXZlX3RyYW5zYWN0aW9uX3JldHJpZXM9IDE7 CiBzdGFydCBzbGF2ZSBzcWxfdGhyZWFkOwogV2FybmluZ3M6Ci1Ob3RlCTE3NDAJVGVtcG9yYXJ5 IGZhaWxlZCB0cmFuc2FjdGlvbiByZXRyeSBpcyBub3Qgc3VwcG9ydGVkIGluIG11bHRpLXRocmVh ZGVkIHNsYXZlIG1vZGUuIFN1Y2ggZmFpbHVyZSB3aWxsIGZvcmNlIHRoZSBzbGF2ZSB0byBzdG9w LgorTm90ZQkxNzQwCXNsYXZlX3RyYW5zYWN0aW9uX3JldHJpZXMgaXMgbm90IHN1cHBvcnRlZCBp biBtdWx0aS10aHJlYWRlZCBzbGF2ZSBtb2RlLiBJbiB0aGUgZXZlbnQgb2YgYSB0cmFuc2llbnQg ZmFpbHVyZSwgdGhlIHNsYXZlIHdpbGwgbm90IHJldHJ5IHRoZSB0cmFuc2FjdGlvbiBhbmQgd2ls bCBzdG9wLgogaW5jbHVkZS9zdG9wX3NsYXZlLmluYwogY3JlYXRlIHRhYmxlIHQyIChhIGludCk7 CiBpbnNlcnQgaW50byB0MiB2YWx1ZXMgKDEpOwpAQCAtNjksNyArNjksNyBAQCBOb3RlCTE3NDAJ VU5USUwgY29uZHRpb24gaXMgbm90IHN1cHBvcnRlCiBpbmNsdWRlL3dhaXRfZm9yX3NsYXZlX3Nx bF90b19zdG9wLmluYwogaW5jbHVkZS9zdGFydF9zbGF2ZS5pbmMKIFdhcm5pbmdzOgotTm90ZQkx NzQwCVRlbXBvcmFyeSBmYWlsZWQgdHJhbnNhY3Rpb24gcmV0cnkgaXMgbm90IHN1cHBvcnRlZCBp biBtdWx0aS10aHJlYWRlZCBzbGF2ZSBtb2RlLiBTdWNoIGZhaWx1cmUgd2lsbCBmb3JjZSB0aGUg c2xhdmUgdG8gc3RvcC4KK05vdGUJMTc0MAlzbGF2ZV90cmFuc2FjdGlvbl9yZXRyaWVzIGlzIG5v dCBzdXBwb3J0ZWQgaW4gbXVsdGktdGhyZWFkZWQgc2xhdmUgbW9kZS4gSW4gdGhlIGV2ZW50IG9m IGEgdHJhbnNpZW50IGZhaWx1cmUsIHRoZSBzbGF2ZSB3aWxsIG5vdCByZXRyeSB0aGUgdHJhbnNh Y3Rpb24gYW5kIHdpbGwgc3RvcC4KIGRyb3AgdGFibGUgdDE7CiBkcm9wIHRhYmxlIHQybTsKIGRy b3AgdGFibGUgdDI7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9y cGxfc2xhdmVfbG9hZF9yZW1vdmVfdG1wZmlsZS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvcnBsL3IvcnBsX3NsYXZlX2xvYWRfcmVtb3ZlX3RtcGZpbGUucmVzdWx0CTIwMTEtMDktMDYg MTY6MzQ6MzEgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfc2xhdmVfbG9h ZF9yZW1vdmVfdG1wZmlsZS5yZXN1bHQJMjAxMS0wOS0yMCAxMTowNzoxOSArMDAwMApAQCAtNyw2 ICs3LDggQEAgaW5zZXJ0IGludG8gdDEoYikgdmFsdWVzICgxKTsKIGluc2VydCBpbnRvIHQxKGIp IHZhbHVlcyAoMik7CiBsb2FkIGRhdGEgaW5maWxlICcuLi8uLi9zdGRfZGF0YS9ycGxfbG9hZGRh dGEuZGF0JyBpbnRvIHRhYmxlIHQxOwogY29tbWl0OworY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9u KCJMT0FEIERBVEEgSU5GSUxFIGluIHRoZSBzbGF2ZSBTUUwgVGhyZWFkIGNhbiBvbmx5IHJlYWQg ZnJvbSAtLXNsYXZlLWxvYWQtdG1wZGlyIik7CitjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIlRo ZSBNeVNRTCBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIHRoZSAtLXNsYXZlLWxvYWQtdG1wZGlyIG9w dGlvbiBzbyBpdCBjYW5ub3QgZXhlY3V0ZSB0aGlzIHN0YXRlbWVudC4qRXJyb3JfY29kZTogMTI5 MCIpOwogaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV9zcWxfZXJyb3IuaW5jIFtlcnJubz0yOSwgMTMs IDEyOTBdCiBkcm9wIHRhYmxlIHQxOwogaW5jbHVkZS9zeW5jX3NsYXZlX2lvX3dpdGhfbWFzdGVy LmluYwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3NsYXZl X2xvYWRfcmVtb3ZlX3RtcGZpbGUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9y cGxfc2xhdmVfbG9hZF9yZW1vdmVfdG1wZmlsZS50ZXN0CTIwMTEtMDktMDYgMTY6MzQ6MzEgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc2xhdmVfbG9hZF9yZW1vdmVfdG1w ZmlsZS50ZXN0CTIwMTEtMDktMjAgMTE6MDc6MTkgKzAwMDAKQEAgLTU1LDYgKzU1LDggQEAgY29u bmVjdGlvbiBzbGF2ZTsKICMgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBmaWxlIGlzIHJl bW92ZWQgdGhlIHNlcnZlciB3b24ndCBiZSBhYmxlIHRvIAogIyAgICAgICAgICAgICAgICAgICAg ICAgICByZXNvbHZlIHRoZSByZWFscGF0aCwgZW5kaW5nIHVwIHN0YXRpbmcgdGhhdCB3ZSAKICMg ICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZSBhIG1pc21hdGNoKQorY2FsbCBtdHIuYWRkX3N1 cHByZXNzaW9uKCJMT0FEIERBVEEgSU5GSUxFIGluIHRoZSBzbGF2ZSBTUUwgVGhyZWFkIGNhbiBv bmx5IHJlYWQgZnJvbSAtLXNsYXZlLWxvYWQtdG1wZGlyIik7CitjYWxsIG10ci5hZGRfc3VwcHJl c3Npb24oIlRoZSBNeVNRTCBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIHRoZSAtLXNsYXZlLWxvYWQt dG1wZGlyIG9wdGlvbiBzbyBpdCBjYW5ub3QgZXhlY3V0ZSB0aGlzIHN0YXRlbWVudC4qRXJyb3Jf Y29kZTogMTI5MCIpOwogLS1sZXQgJHNsYXZlX3NxbF9lcnJubz0gMjksIDEzLCAxMjkwCiAtLXNv dXJjZSBpbmNsdWRlL3dhaXRfZm9yX3NsYXZlX3NxbF9lcnJvci5pbmMKIAoKPT09IGFkZGVkIGZp bGUgJ215c3FsLXRlc3Qvc3VpdGUvc3RyZXNzL3Qvd3JhcHBlci50ZXN0JwotLS0gYS9teXNxbC10 ZXN0L3N1aXRlL3N0cmVzcy90L3dyYXBwZXIudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvc3RyZXNzL3Qvd3JhcHBlci50ZXN0CTIwMTEtMDktMTUg MTA6MzQ6MzIgKzAwMDAKQEAgLTAsMCArMSwyOSBAQAorIworIyBUaGlzIGlzIGEgd3JhcHBlciAi cHNldWRvIiB0ZXN0IGZvciBtdHIgLS1zdHJlc3MgZXhlY3V0aW9uLgorIyBJdCBzaG91bGQgbm90 IGJlIHJ1biBkaXJlY3RseSAod2lsbCBiZSBza2lwcGVkKQorIyBEbyBub3QgY3JlYXRlIGEgcmVz dWx0IGZpbGUhCisjIAorCitpZiAoISRNU1RfT1BUSU9OUykgeworICBza2lwIE9ubHkgdG8gYmUg cnVuIHdpdGggbXRyIC0tc3RyZXNzOworfQorCisjIGVjaG8gUnVubmluZyBNU1Qgd2l0aCBvcHRp b25zICRNU1RfT1BUSU9OUzsKKworcGVybDsKKyAgbXkgKCRtdGVzdCk9IHNwbGl0ICIgIiwgJEVO VntNWVNRTF9URVNUfTsKKyAgb3BlbihGSUxFLCAiPiIsICIkRU5We01ZU1FMX1RNUF9ESVJ9L210 ZXN0LmluYyIpIG9yIGRpZTsKKyAgcHJpbnQgRklMRSAibGV0IFwkTVlTUUxURVNUX0JJTj0gJG10 ZXN0O1xuIjsKKyAgY2xvc2UgRklMRTsKK0VPRgorCistLXNvdXJjZSAkTVlTUUxfVE1QX0RJUi9t dGVzdC5pbmMKKy0tcmVtb3ZlX2ZpbGUgJE1ZU1FMX1RNUF9ESVIvbXRlc3QuaW5jCisKK2V4ZWMg cGVybCBteXNxbC1zdHJlc3MtdGVzdC5wbCAtLW15c3FsdGVzdD0kTVlTUUxURVNUX0JJTgorICAg ICAgICAgLS1zZXJ2ZXItcG9ydD0kTUFTVEVSX01ZUE9SVCAtLXNlcnZlci1zb2NrZXQ9JE1BU1RF Ul9NWVNPQ0sKKyAgICAgICAgIC0tc2VydmVyLXVzZXI9cm9vdCAtLWNsZWFudXAKKyAgICAgICAg IC0tc2VydmVyLWxvZ3MtZGlyPSRNWVNRTFRFU1RfVkFSRElSL2xvZworICAgICAgICAgLS1zdHJl c3MtYmFzZWRpcj0kTVlTUUxURVNUX1ZBUkRJUgorCSAkTVNUX09QVElPTlMKKzsKCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3QvZnVuY19zdHIudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90 L2Z1bmNfc3RyLnRlc3QJMjAxMS0wOS0yMiAxMDo0MjoxMCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3QvZnVuY19zdHIudGVzdAkyMDExLTA5LTI2IDEyOjI3OjA2ICswMDAwCkBAIC0xNDgxLDcgKzE0 ODEsNyBAQCBTRUxFQ1QgKChycGFkKDEuMCwyMDQ4LDEpKSA9ICgnNCgnKSBeICgwCiAKIC0tZXJy b3IgMTY5MAogU0VMRUNUCi1wb3coKHJwYWQoMS4wLDIwNDgsMSkpLChiJzExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKSk7Citwb3coKHJwYWQoMTAuMCwyMDQ4LDEp KSwoYicxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJykpOwogU0VM RUNUICgocnBhZCgxLjAsMjA0OCwxKSkgKyAoMCkgXiAoJy4uLycpKTsKIFNFTEVDVCBzdGRkZXZf c2FtcChycGFkKDEuMCwyMDQ4LDEpKTsKIFNFTEVDVCAoKDEyNy4xKSBub3QgaW4gKChycGFkKDEu MCwyMDQ4LDEpKSwoJycpLCgtMS4xKSkpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9ncm91cF9ieS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvZ3JvdXBfYnkudGVzdAkyMDExLTA4 LTMwIDA5OjAxOjA1ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9ncm91cF9ieS50ZXN0CTIwMTEt MDktMjYgMTM6NDg6MDYgKzAwMDAKQEAgLTE0NjgsMyArMTQ2OCwxNyBAQCBEUk9QIFRBQkxFIHQx LHQyOwogCiAtLWVjaG8gIyBFbmQgb2YgQnVnIzEyNzk4MjcwCiAKKy0tZWNobyAjCistLWVjaG8g IyBCdWcjMTI4Mzc3MTQ6IEFERElUSU9OQUwgTlVMTCBJTiA1LjYgT04gR1JPVVBFRCBTRUxFQ1QK Ky0tZWNobyAjCisKK0NSRUFURSBUQUJMRSB0MSAodmMgdmFyY2hhcigxKSwgSU5ERVggdmNfaWR4 ICh2YykpIDsKK0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoTlVMTCksICgnbycpLCAoTlVMTCksICgn cCcpLCAoJ2MnKTsKKworRkxVU0ggVEFCTEUgdDE7CisKK1NFTEVDVCB2YyBGUk9NIHQxIEdST1VQ IEJZIHZjOworCitEUk9QIFRBQkxFIHQxOyAKKworLS1lY2hvICMgRW5kIG9mIEJ1ZyMxMjgzNzcx NAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9teXNxbF9wbHVnaW4udGVzdCcKLS0t IGEvbXlzcWwtdGVzdC90L215c3FsX3BsdWdpbi50ZXN0CTIwMTEtMDktMjMgMTA6NTU6MTAgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC90L215c3FsX3BsdWdpbi50ZXN0CTIwMTEtMDktMjYgMDk6MTk6 MTIgKzAwMDAKQEAgLTQ1LDcgKzQ1LDYgQEAgdXNlIEZpbGU6OkJhc2VuYW1lOwogICBteSAkcGx1 Z2luZGlyX2luaT0gIiRFTlZ7UExVR0lOX0RJUn0vZGFlbW9uX2V4YW1wbGUuaW5pIjsKICAgbXkg JG5vdGZvdW5kPSAiIjsKICAgb3BlbihGSUxFLCAiPiIsICIkRU5We01ZU1FMX1RNUF9ESVJ9L215 c3FsZC5pbmMiKSBvciBkaWU7Ci0gIHByaW50IEZJTEUgImxldCBcJE1ZU1FMRD0gJG15c3FsZDtc biI7CiAgIHByaW50IEZJTEUgImxldCBcJE1ZU1FMRF9CQVNFRElSPSAkbXlzcWxkX2Jhc2VkaXI7 XG4iOwogICBwcmludCBGSUxFICJsZXQgXCRNWVNRTF9NWV9QUklOVF9ERUZBVUxUU19CQVNFRElS PSAkbXlfcHJpbnRfZGVmYXVsdHNfYmFzZWRpcjtcbiI7CiAgIGlmICgoIS1lICRkYWVtb25leGFt cGxlX2luaSkgfHwgKCEtciAkZGFlbW9uZXhhbXBsZV9pbmkpKQoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3QvdC9teXNxbGQtLWRlZmF1bHRzLWZpbGUudGVzdCcKLS0tIGEvbXlzcWwtdGVz dC90L215c3FsZC0tZGVmYXVsdHMtZmlsZS50ZXN0CTIwMTEtMDItMDkgMjI6MzQ6MjAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC90L215c3FsZC0tZGVmYXVsdHMtZmlsZS50ZXN0CTIwMTEtMDktMTUg MTI6MTk6NTggKzAwMDAKQEAgLTUsMjEgKzUsNiBAQAogc291cmNlIGluY2x1ZGUvbm90X2VtYmVk ZGVkLmluYzsKIHNvdXJjZSBpbmNsdWRlL25vdF93aW5kb3dzLmluYzsKIAotIyBXZSBuZWVkIHRv IHVzZSBhIHBsYWluICJteXNxbGQiIHdpdGhvdXQgYW55IG90aGVyIG9wdGlvbnMgdG8gdHJpZ2dl cgotIyB0aGUgYnVnLiBJbiBwYXJ0aWN1bGFyLCBpdCBzZWVtcyB0aGF0IHBhc3NpbmcgLS1ib290 c3RyYXAgZG9lcyBub3QKLSMgdHJpZ2dlciB0aGUgYnVnLiBUbyBkbyB0aGF0LCB3ZSBleHRyYWN0 IHRoZSAiY29tbWFuZCBuYW1lIiBmcm9tIHRoZQotIyBNWVNRTERfQk9PVFNUUkFQX0NNRCB2YXJp YWJsZSBhbmQgc3RvcmUgdGhhdCBpbiBhIGZpbGUsIHdoaWNoIHdlCi0jIHRoZW4gbG9hZCBpbnRv IHRoZSB0ZXN0IGNhc2UuCi0KLXBlcmw7Ci0gIG15ICgkbXlzcWxkKT0gc3BsaXQgIiAiLCAkRU5W e01ZU1FMRF9CT09UU1RSQVBfQ01EfTsKLSAgb3BlbihGSUxFLCAiPiIsICIkRU5We01ZU1FMX1RN UF9ESVJ9L215c3FsZC5pbmMiKSBvciBkaWU7Ci0gIHByaW50IEZJTEUgImxldCBcJE1ZU1FMRD0g JG15c3FsZDtcbiI7Ci0gIGNsb3NlIEZJTEU7Ci1FT0YKLQotc291cmNlICRNWVNRTF9UTVBfRElS L215c3FsZC5pbmM7Ci0KICMgQWxsIHRoZXNlIHRlc3RzIHJlZmVyIHRvIGNvbmZpZ3VyYXRpb24g ZmlsZXMgdGhhdCBkbyBub3QgZXhpc3QKIAogLS1lcnJvciAxCkBAIC00NCw0ICsyOSwzIEBAIGV4 ZWMgJE1ZU1FMRCAtLWRlZmF1bHRzLWZpbGU9d2l0aC5leHQgLS0KIC0tZXJyb3IgMQogZXhlYyAk TVlTUUxEIC0tZGVmYXVsdHMtZmlsZT1ub19leHRlbnNpb24gLS1wcmludC1kZWZhdWx0cyAyPiYx OwogCi1yZW1vdmVfZmlsZSAkTVlTUUxfVE1QX0RJUi9teXNxbGQuaW5jOwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3QvdC9teXNxbHRlc3QudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L215 c3FsdGVzdC50ZXN0CTIwMTEtMDgtMjIgMTM6MjQ6MzggKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90 L215c3FsdGVzdC50ZXN0CTIwMTEtMDktMTUgMTI6MTk6NTggKzAwMDAKQEAgLTM1NCw2ICszNTQs MTQgQEAgZXZhbCBzZWxlY3QgJG15c3FsX2Vycm5vIGFzICJhZnRlcl8hZXJybgogRU9GCiAKICMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayBiYWNrdGljayBhbmQgcXVlcnlfZ2V0X3ZhbHVl LCByZXN1bHQgc2hvdWxkIGJlIGVtcHR5CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2xldCAkZW1w dHk9IGBnYXJiYWdlYDsKK2VjaG8gJGVtcHR5IGlzIGVtcHR5OworbGV0ICRlbXB0eT0gcXVlcnlf Z2V0X3ZhbHVlKG5vbnNlbnNlLCBibGFibGEsIDEpOworZWNobyAkZW1wdHkgaXMgZW1wdHk7CisK KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBTd2l0Y2ggdGhlIGFib3J0IG9uIGVycm9yIG9uIGFu ZCBjaGVjayB0aGUgZWZmZWN0IG9uICRteXNxbF9lcnJubwogIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAtLWVycm9yIEVSX1BBUlNFX0VSUk9SCkBAIC0zODMsNiArMzkxLDcxIEBAIHNlbGVjdCAzIGZy b20gdDEgOwogLS1lcnJvciAxCiAtLWV4ZWMgZWNobyAiZGlzYWJsZV9hYm9ydF9vbl9lcnJvcjsg ZW5hYmxlX2Fib3J0X29uX2Vycm9yOyBlcnJvciAxMDY0OyBzZWxlY3QgMyBmcm9tIHQxOyBzZWxl Y3QgMyBmcm9tIHQxOyIgfCAkTVlTUUxfVEVTVCAgMj4mMQogCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgVGVzdCAtLWVuYWJsZSBhbmQgLS1kaXNhYmxlIHdpdGggT05DRQorIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisKKy0tZGlzYWJsZV9hYm9ydF9vbl9lcnJvciBPTkNFCitnYXJiYWdlOworLS1k aXNhYmxlX2Fib3J0X29uX2Vycm9yIE9OQ0UKKy0tcmVtb3ZlX2ZpbGUgRG9lc05vdEV4aXN0CisK Ky0tZGlzYWJsZV9yZXN1bHRfbG9nCitzZWxlY3QgMjsKKy0tZW5hYmxlX3Jlc3VsdF9sb2cgT05D RQorc2VsZWN0IDM7CitzZWxlY3QgNTsKKy0tZW5hYmxlX3Jlc3VsdF9sb2cKKworIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisjIFRlc3QgY3VtdWxhdGl2ZSBPTkNFCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKworLS1kaXNhYmxlX2Fib3J0X29uX2Vycm9yIE9OQ0UKKy0tZGlzYWJsZV9xdWVyeV9sb2cg T05DRQorc2VsZWN0IDMgZnJvbSB0MTsKK3NlbGVjdCA3OworCistLWVycm9yIDEKKy0tZXhlYyBl Y2hvICItLWRpc2FibGVfaW5mbyBPQ05FIiB8ICRNWVNRTF9URVNUIDI+JjEKKworLS1lbmFibGVf Y29ubmVjdF9sb2cgT05DRQorY29ubmVjdCAoY29uMSxsb2NhbGhvc3Qscm9vdCwsKTsKK2Nvbm5l Y3Rpb24gZGVmYXVsdDsKK2Rpc2Nvbm5lY3QgY29uMTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisjIFRlc3QgT05DRSBjYW4gYmUgY29tYmluZWQgd2l0aCAtLWVycm9yIG9yIG1vZGlmaWVycyBs aWtlIGxvd2VyY2FzZQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0tZGlzYWJsZV9yZXN1bHRf bG9nIE9OQ0UKKy0tZXJyb3IgRVJfTk9fU1VDSF9UQUJMRQorc2VsZWN0IDUgZnJvbSB0MTsKKwor LS1kaXNhYmxlX3F1ZXJ5X2xvZyBPTkNFCistLWxvd2VyY2FzZV9yZXN1bHQKK3NlbGVjdCAiQ0FT RSIgYXMgIkxPV0VSIjsKKworLS1zb3J0ZWRfcmVzdWx0CistLWRpc2FibGVfcXVlcnlfbG9nIE9O Q0UKK3NlbGVjdCAieHl6IiBhcyBuYW1lIHVuaW9uIHNlbGVjdCAiYWJjIiBhcyBuYW1lIG9yZGVy IGJ5IG5hbWUgZGVzYzsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgLS1lcnJvciB3 aXRoIGJhY2t0aWNrIG9wZXJhdG9yIG9yIHF1ZXJ5X2dldF92YWx1ZQorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisKKy0tZXJyb3IgMCxFUl9OT19TVUNIX1RBQkxFCitsZXQgJGVtcHR5PSBgU0VMRUNU IGZvbyBmcm9tIGJhcmA7CitlY2hvICRlbXB0eSBpcyBlbXB0eTsKKworLS1lcnJvciAwLEVSX0JB RF9GSUVMRF9FUlJPUgorbGV0ICRlbXB0eT0gcXVlcnlfZ2V0X3ZhbHVlKFNFTEVDVCBiYXIgYXMg Zm9vLCBiYXosIDEpOworZWNobyAkZW1wdHkgaXMgZW1wdHk7CisKKy0tZXJyb3IgMCxFUl9OT19T VUNIX1RBQkxFCitpZiAoIWBTRUxFQ1QgZm9vIGZyb20gYmFyYCkgeworICBlY2hvICJZZXMgaXQn cyBlbXB0eSI7Cit9CiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBUZXN0IGNvbW1lbnRzCkBA IC05NTIsMTAgKzEwMjUsOSBAQCB3aGlsZSAoJG91dGVyKQogICAgIC0tc291cmNlICRNWVNRTFRF U1RfVkFSRElSL3RtcC9zb3VyY2VkLmluYwogICAgIC0tZXJyb3IgRVJfTk9fU1VDSF9UQUJMRQog ICAgIFNFTEVDVCAqIGZyb20gbm93aGVyZTsKLSAgICAtLWRpc2FibGVfYWJvcnRfb25fZXJyb3IK KyAgICAtLWRpc2FibGVfYWJvcnRfb25fZXJyb3IgT05DRQogIyBTdGF0ZW1lbnQgZ2l2aW5nIGEg ZGlmZmVyZW50IGVycm9yLCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgbWFzayBpdAogICAgIFNFTEVD VCAqIEZST00gbm93aGVyZSBlbHNlOwotICAgIC0tZW5hYmxlX2Fib3J0X29uX2Vycm9yCiAgIH0K ICAgZGVjICRvdXRlcjsKICAgaW5jICRpZnZhbDsKQEAgLTI1MDYsMTAgKzI1NzgsOSBAQCBJTlNF UlQgSU5UTyB0MSBTRUxFQ1QgZjEgLSA2NCBGUk9NIHQxOwogSU5TRVJUIElOVE8gdDEgU0VMRUNU IGYxIC0gMTI4IEZST00gdDE7CiBJTlNFUlQgSU5UTyB0MSBTRUxFQ1QgZjEgLSAyNTYgRlJPTSB0 MTsKIElOU0VSVCBJTlRPIHQxIFNFTEVDVCBmMSAtIDUxMiBGUk9NIHQxOwotLS1kaXNhYmxlX3Jl c3VsdF9sb2cKKy0tZGlzYWJsZV9yZXN1bHRfbG9nIE9OQ0UKIC0tc29ydGVkX3Jlc3VsdAogU0VM RUNUICogRlJPTSB0MTsKLS0tZW5hYmxlX3Jlc3VsdF9sb2cKIERST1AgVEFCTEUgdDE7CiAKICMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU1NywxMSArMjYyOCw5IEBAIFNFTEVDVCAwIGFzICJX SUxMIE5PVCBsb3dlciBjYXNlIO+/ve+/ve+/vSI7CiAtLWV4ZWMgJE1ZU1FMX1RFU1QgLS1oZWxw IDI+JjEgPiAvZGV2L251bGwKIC0tZXhlYyAkTVlTUUxfVEVTVCAtLXZlcnNpb24gMj4mMSA+IC9k ZXYvbnVsbAogLS1lbmFibGVfcXVlcnlfbG9nCi0tLWRpc2FibGVfYWJvcnRfb25fZXJyb3IKKy0t ZGlzYWJsZV9hYm9ydF9vbl9lcnJvciBPTkNFCiAtLWVycm9yIDEKIC0tZXhlYyAkTVlTUUxfVEVT VCBhIGIgYyAyPiYxID4gL2Rldi9udWxsCi0tLWVuYWJsZV9hYm9ydF9vbl9lcnJvcgotLS1lbmFi bGVfcXVlcnlfbG9nCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyB0ZXN0IGZvciBxdWVyeV9n ZXRfdmFsdWUKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvcGx1Z2luX2F1dGgudGVz dCcKLS0tIGEvbXlzcWwtdGVzdC90L3BsdWdpbl9hdXRoLnRlc3QJMjAxMS0wOS0yMSAxMTowMjoy NCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvcGx1Z2luX2F1dGgudGVzdAkyMDExLTA5LTI2IDEw OjM0OjQ5ICswMDAwCkBAIC01NDAsMTUgKzU0MCwxMCBAQCBjb25uZWN0aW9uIGRlZmF1bHQ7CiBk aXNjb25uZWN0IGIxMjYxMDc4NDsKIERST1AgVVNFUiBidWcxMjYxMDc4NEBsb2NhbGhvc3Q7CiAK LQogLS1lY2hvICMKIC0tZWNobyAjIEJ1ZyAjIDExNzY2NjQxOiA1OTc5MjogQklOL01ZU1FMIC1V VU5LTk9XTiAtUFVOS05PV04gCiAtLWVjaG8gIyAgLi0+IFVTSU5HIFBBU1NXT1JEOiBOTyAKIAot LS1lY2hvICMgQnVnICMxMjgxODU0MjogUEFNOiBBRERJTkcgUEFTU1dPUkQgRk9SIEFOIEFDQ09V TlQgRElTQUJMRVMgUEFNIAotLS1lY2hvICMgICBBVVRIRU5USUNBVElPTiBTRVRUSU5HUwotLS1l Y2hvICMKLQogLS1lY2hvICMgc2hvdWQgY29udGFpbiAidXNpbmcgcGFzc3dvcmQ9eWVzIgogLS1l cnJvciAxCiAtLWV4ZWMgJE1ZU1FMIC11dW5rbm93biAtcHVua25vd24gMj4mMQpAQCAtNTU3LDYg KzU1MiwxMCBAQCBEUk9QIFVTRVIgYnVnMTI2MTA3ODRAbG9jYWxob3N0OwogLS1lcnJvciAxCiAt LWV4ZWMgJE1ZU1FMIC11dW5rbm93biAyPiYxCiAKKy0tZWNobyAjIEJ1ZyAjMTI4MTg1NDI6IFBB TTogQURESU5HIFBBU1NXT1JEIEZPUiBBTiBBQ0NPVU5UIERJU0FCTEVTIFBBTSAKKy0tZWNobyAj ICAgQVVUSEVOVElDQVRJT04gU0VUVElOR1MKKy0tZWNobyAjCisKIENSRUFURSBVU0VSIGJ1ZzEy ODE4NTQyQGxvY2FsaG9zdCAKICAgSURFTlRJRklFRCBXSVRIICd0ZXN0X3BsdWdpbl9zZXJ2ZXIn IEFTICdidWcxMjgxODU0Ml9kZXN0JzsKIENSRUFURSBVU0VSIGJ1ZzEyODE4NTQyX2Rlc3RAbG9j YWxob3N0IAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2J1ZmYuY2MnCi0tLSBhL3NxbC9p dGVtX2J1ZmYuY2MJMjAxMS0wNi0zMCAxNTo1MDo0NSArMDAwMAorKysgYi9zcWwvaXRlbV9idWZm LmNjCTIwMTEtMDktMjYgMTM6NDg6MDYgKzAwMDAKQEAgLTEzNywxNiArMTM3LDM0IEBAIGJvb2wg Q2FjaGVkX2l0ZW1faW50OjpjbXAodm9pZCkKIGJvb2wgQ2FjaGVkX2l0ZW1fZmllbGQ6OmNtcCh2 b2lkKQogewogICBEQlVHX0VOVEVSKCJDYWNoZWRfaXRlbV9maWVsZDo6Y21wIik7Ci0gIGJvb2wg dG1wPSBmaWVsZC0+Y21wKGJ1ZmYpICE9IDA7CQkvLyBUaGlzIGlzIG5vdCBhIGJsb2IhCiAgIERC VUdfRVhFQ1VURSgiaW5mbyIsIGRidWdfcHJpbnQoKTspOwotICBpZiAodG1wKQotICAgIGZpZWxk LT5nZXRfaW1hZ2UoYnVmZixsZW5ndGgsZmllbGQtPmNoYXJzZXQoKSk7Ci0gIGlmIChudWxsX3Zh bHVlICE9IGZpZWxkLT5pc19udWxsKCkpCisKKyAgYm9vbCBkaWZmZXJlbnQ9IGZhbHNlOworCisg IGlmIChmaWVsZC0+aXNfbnVsbCgpKQogICB7Ci0gICAgbnVsbF92YWx1ZT0gIW51bGxfdmFsdWU7 Ci0gICAgdG1wPVRSVUU7CisgICAgaWYgKCFudWxsX3ZhbHVlKQorICAgIHsKKyAgICAgIGRpZmZl cmVudD0gdHJ1ZTsKKyAgICAgIG51bGxfdmFsdWU9IHRydWU7CisgICAgfQogICB9Ci0gIERCVUdf UkVUVVJOKHRtcCk7CisgIGVsc2UKKyAgeworICAgIGlmIChudWxsX3ZhbHVlKQorICAgIHsKKyAg ICAgIGRpZmZlcmVudD0gdHJ1ZTsKKyAgICAgIG51bGxfdmFsdWU9IGZhbHNlOworICAgICAgZmll bGQtPmdldF9pbWFnZShidWZmLCBsZW5ndGgsIGZpZWxkLT5jaGFyc2V0KCkpOworICAgIH0KKyAg ICBlbHNlIGlmIChmaWVsZC0+Y21wKGJ1ZmYpKSAgICAgICAgICAgICAgICAgIC8vIE5vdCBhIGJs b2I6IGNtcCgpIGlzIE9LCisgICAgeworICAgICAgZGlmZmVyZW50PSB0cnVlOworICAgICAgZmll bGQtPmdldF9pbWFnZShidWZmLCBsZW5ndGgsIGZpZWxkLT5jaGFyc2V0KCkpOworICAgIH0KKyAg fQorCisgIERCVUdfUkVUVVJOKGRpZmZlcmVudCk7CiB9CiAKIAoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9ycGxfcmxpX3BkYi5jYycKLS0tIGEvc3FsL3JwbF9ybGlfcGRiLmNjCTIwMTEtMDgtMTkg MTM6MDQ6MjggKzAwMDAKKysrIGIvc3FsL3JwbF9ybGlfcGRiLmNjCTIwMTEtMDktMjYgMTU6Mzk6 MDAgKzAwMDAKQEAgLTEzNTIsNyArMTM1MiwxMSBAQCBpbnQgd2FpdF9mb3Jfd29ya2Vyc190b19m aW5pc2goUmVsYXlfbG9nCiAgIERCVUdfRU5URVIoIndhaXRfZm9yX3dvcmtlcnNfdG9fZmluaXNo Iik7CiAKICAgbGxzdHIoY29uc3RfY2FzdDxSZWxheV9sb2dfaW5mbyo+KHJsaSktPmdldF9ldmVu dF9yZWxheV9sb2dfcG9zKCksIGxsYnVmKTsKLSAgc3FsX3ByaW50X2luZm9ybWF0aW9uKCJDb29y ZGluYXRvciBlbnRlciBzeW5jaHJvbml6YXRpb24gd2hlbiBkaXN0cmlidXRlcyBldmVudCByZWxh eS1sb2c6ICVzIHBvczogJXMiLCBjb25zdF9jYXN0PFJlbGF5X2xvZ19pbmZvKj4ocmxpKS0+Z2V0 X2V2ZW50X3JlbGF5X2xvZ19uYW1lKCksIGxsYnVmKTsKKyAgaWYgKGdsb2JhbF9zeXN0ZW1fdmFy aWFibGVzLmxvZ193YXJuaW5ncyA+IDEpCisgICAgc3FsX3ByaW50X2luZm9ybWF0aW9uKCJDb29y ZGluYXRvciBhbmQgd29ya2VycyBlbnRlciBzeW5jaHJvbml6YXRpb24gcHJvY2VkdXJlICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gc2NoZWR1bGluZyBldmVudCByZWxheS1sb2c6 ICVzIHBvczogJXMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxSZWxh eV9sb2dfaW5mbyo+KHJsaSktPmdldF9ldmVudF9yZWxheV9sb2dfbmFtZSgpLCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgbGxidWYpOwogCiAgIGZvciAodWludCBpPSAwLCByZXQ9IDA7IGkg PCBoYXNoLT5yZWNvcmRzOyBpKyspCiAgIHsKQEAgLTE0MDYsNyArMTQxMCwxMCBAQCBpbnQgd2Fp dF9mb3Jfd29ya2Vyc190b19maW5pc2goUmVsYXlfbG9nCiAKICAgaWYgKCFpZ25vcmUpCiAgIHsK LSAgICBzcWxfcHJpbnRfaW5mb3JtYXRpb24oIkNvb3JkaW5hdG9yIHN5bmNocm9uaXplZCB3aXRo IFdvcmtlcnMsIHdhaXRlZCBlbnRyaWVzOiAlZCwgY2FudF9zeW5jOiAlZCIsIHJldCwgY2FudF9z eW5jKTsKKyAgICBpZiAoZ2xvYmFsX3N5c3RlbV92YXJpYWJsZXMubG9nX3dhcm5pbmdzID4gMSkK KyAgICAgIHNxbF9wcmludF9pbmZvcm1hdGlvbigiQ29vcmRpbmF0b3Igc3luY2hyb25pemVkIHdp dGggV29ya2VycywgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YWl0ZWQgZW50cmll czogJWQsIGNhbnRfc3luYzogJWQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQs IGNhbnRfc3luYyk7CiAKICAgICBjb25zdF9jYXN0PFJlbGF5X2xvZ19pbmZvKj4ocmxpKS0+bXRz X2dyb3VwX3N0YXR1cz0gUmVsYXlfbG9nX2luZm86Ok1UU19OT1RfSU5fR1JPVVA7CiAgIH0KQEAg LTE4MDEsMTAgKzE4MDgsMTIgQEAgaW50IHNsYXZlX3dvcmtlcl9leGVjX2pvYihTbGF2ZV93b3Jr ZXIgKgogZXJyOgogICBpZiAoZXJyb3IpCiAgIHsKLSAgICBzcWxfcHJpbnRfaW5mb3JtYXRpb24o IldvcmtlciAlbHUgaXMgZXhpdGluZzoga2lsbGVkICVpLCBlcnJvciAlaSwgIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAicnVubmluZ19zdGF0dXMgJWQiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICB3b3JrZXItPmlkLCB0aGQtPmtpbGxlZCwgdGhkLT5pc19lcnJvcigpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICB3b3JrZXItPnJ1bm5pbmdfc3RhdHVzKTsKKworICAgIGlmIChn bG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5sb2dfd2FybmluZ3MgPiAxKQorICAgICAgc3FsX3ByaW50 X2luZm9ybWF0aW9uKCJXb3JrZXIgJWx1IGlzIGV4aXRpbmc6IGtpbGxlZCAlaSwgZXJyb3IgJWks ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnVubmluZ19zdGF0dXMgJWQiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlci0+aWQsIHRoZC0+a2lsbGVkLCB0aGQtPmlz X2Vycm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2VyLT5ydW5uaW5nX3N0 YXR1cyk7CiAgICAgd29ya2VyLT5zbGF2ZV93b3JrZXJfZW5kc19ncm91cChldiwgZXJyb3IpOwog ICB9CiAgIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9ycGxfc2xhdmUuY2MnCi0tLSBhL3NxbC9y cGxfc2xhdmUuY2MJMjAxMS0wOS0xNSAxNzoxODoyMSArMDAwMAorKysgYi9zcWwvcnBsX3NsYXZl LmNjCTIwMTEtMDktMjYgMTU6Mzk6MDAgKzAwMDAKQEAgLTM4NzEsMTIgKzM4NzEsMTMgQEAgcHRo cmVhZF9oYW5kbGVyX3QgaGFuZGxlX3NsYXZlX3dvcmtlcih2bwogICBteXNxbF9tdXRleF9sb2Nr KCZ3LT5qb2JzX2xvY2spOwogCiAgIHctPnJ1bm5pbmdfc3RhdHVzPSBTbGF2ZV93b3JrZXI6Ok5P VF9SVU5OSU5HOwotICBzcWxfcHJpbnRfaW5mb3JtYXRpb24oIldvcmtlciAlbHUgc3RhdGlzdGlj czogIgotICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyBwcm9jZXNzZWQgPSAlbHUgIgot ICAgICAgICAgICAgICAgICAgICAgICAgImh1bmdyeSB3YWl0cyA9ICVsdSAiCi0gICAgICAgICAg ICAgICAgICAgICAgICAicHJpdiBxdWV1ZSBvdmVyZmlsbHMgPSAlbGx1ICIsCi0gICAgICAgICAg ICAgICAgICAgICAgICB3LT5pZCwgdy0+ZXZlbnRzX2RvbmUsIHctPndxX3NpemVfd2FpdHNfY250 LAotICAgICAgICAgICAgICAgICAgICAgICAgdy0+am9icy53YWl0ZWRfb3ZlcmZpbGwpOworICBp ZiAoZ2xvYmFsX3N5c3RlbV92YXJpYWJsZXMubG9nX3dhcm5pbmdzID4gMSkKKyAgICBzcWxfcHJp bnRfaW5mb3JtYXRpb24oIldvcmtlciAlbHUgc3RhdGlzdGljczogIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAiZXZlbnRzIHByb2Nlc3NlZCA9ICVsdSAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICJodW5ncnkgd2FpdHMgPSAlbHUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAi cHJpdiBxdWV1ZSBvdmVyZmlsbHMgPSAlbGx1ICIsCisgICAgICAgICAgICAgICAgICAgICAgICAg IHctPmlkLCB3LT5ldmVudHNfZG9uZSwgdy0+d3Ffc2l6ZV93YWl0c19jbnQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHctPmpvYnMud2FpdGVkX292ZXJmaWxsKTsKICAgbXlzcWxfY29uZF9z aWduYWwoJnctPmpvYnNfY29uZCk7ICAvLyBmYW1vdXMgbGFzdCBnb29kYnllCiAKICAgbXlzcWxf bXV0ZXhfdW5sb2NrKCZ3LT5qb2JzX2xvY2spOwpAQCAtNDUxNyw4ICs0NTE4LDkgQEAgdm9pZCBz bGF2ZV9zdG9wX3dvcmtlcnMoUmVsYXlfbG9nX2luZm8gKgogCiAgICAgbXlzcWxfbXV0ZXhfdW5s b2NrKCZ3LT5qb2JzX2xvY2spOwogCi0gICAgc3FsX3ByaW50X2luZm9ybWF0aW9uKCJOb3RpZnlp bmcgV29ya2VyICVsdSB0byBleGl0LCB0aGQgJXAiLCB3LT5pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgdy0+aW5mb190aGQpOworICAgIGlmIChnbG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5s b2dfd2FybmluZ3MgPiAxKQorICAgICAgc3FsX3ByaW50X2luZm9ybWF0aW9uKCJOb3RpZnlpbmcg V29ya2VyICVsdSB0byBleGl0LCB0aGQgJXAiLCB3LT5pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3LT5pbmZvX3RoZCk7CiAgIH0KIAogICB0aGRfcHJvY19pbmZvKHRoZCwgIldhaXRp bmcgZm9yIHdvcmtlcnMgdG8gZXhpdCIpOwpAQCAtNDU1MCwxNSArNDU1MiwxNiBAQCB2b2lkIHNs YXZlX3N0b3Bfd29ya2VycyhSZWxheV9sb2dfaW5mbyAqCiAgICAgZGVsZXRlIHc7CiAgIH0KIAot ICBzcWxfcHJpbnRfaW5mb3JtYXRpb24oIk1UUyBjb29yZGluYXRvciBzdGF0aXN0aWNzOiAiCi0g ICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIHByb2Nlc3NlZCA9ICVsdSAiCi0gICAgICAg ICAgICAgICAgICAgICAgICAiV29ya2VyIHF1ZXVlcyBmaWxsZWQgb3ZlciBvdmVycnVuIGxldmVs ID0gJWx1ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJ3YWl0ZWQgZHVlIGEgV29ya2VyIHF1 ZXVlIGZ1bGwgPSAlbHUgIgotICAgICAgICAgICAgICAgICAgICAgICAgIndhaXRlZCBkdWUgdGhl IHRvdGFsIHNpemUgPSAlbHUgIgotICAgICAgICAgICAgICAgICAgICAgICAgInNsZWVwdCB3aGVu IFdvcmtlcnMgb2NjdXBpZWQgPSAlbHUgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJsaS0+ bXRzX2V2ZW50c19hc3NpZ25lZCwgcmxpLT5tdHNfd3Ffb3ZlcnJ1bl9jbnQsCi0gICAgICAgICAg ICAgICAgICAgICAgICBybGktPm10c193cV9vdmVyZmlsbF9jbnQsIHJsaS0+d3Ffc2l6ZV93YWl0 c19jbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBybGktPm10c193cV9ub191bmRlcnJ1bl9j bnQpOworICBpZiAoZ2xvYmFsX3N5c3RlbV92YXJpYWJsZXMubG9nX3dhcm5pbmdzID4gMSkKKyAg ICBzcWxfcHJpbnRfaW5mb3JtYXRpb24oIk11bHRpLXRocmVhZGVkIHNsYXZlIHN0YXRpc3RpY3M6 ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyBwcm9jZXNzZWQgPSAlbHUgOyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIndvcmtlciBxdWV1ZXMgZmlsbGVkIG92ZXIgb3Zl cnJ1biBsZXZlbCA9ICVsdSA7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAid2FpdGVkIGR1 ZSBhIFdvcmtlciBxdWV1ZSBmdWxsID0gJWx1IDsiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICJ3YWl0ZWQgZHVlIHRoZSB0b3RhbCBzaXplID0gJWx1IDsiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICJzbGVwdCB3aGVuIFdvcmtlcnMgb2NjdXBpZWQgPSAlbHUgIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgcmxpLT5tdHNfZXZlbnRzX2Fzc2lnbmVkLCBybGktPm10c193cV9vdmVy cnVuX2NudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmxpLT5tdHNfd3Ffb3ZlcmZpbGxf Y250LCBybGktPndxX3NpemVfd2FpdHNfY250LAorICAgICAgICAgICAgICAgICAgICAgICAgICBy bGktPm10c193cV9ub191bmRlcnJ1bl9jbnQpOwogCiAgIERCVUdfQVNTRVJUKHJsaS0+cGVuZGlu Z19qb2JzID09IDApOwogICBEQlVHX0FTU0VSVChybGktPm10c19wZW5kaW5nX2pvYnNfc2l6ZSA9 PSAwKTsKQEAgLTY4MDAsOCArNjgwMyw5IEBAIGludCBzdGFydF9zbGF2ZShUSEQqIHRoZCAsIE1h c3Rlcl9pbmZvKgogICAgICAgICAgIHB1c2hfd2FybmluZ19wcmludGYodGhkLCBTcWxfY29uZGl0 aW9uOjpXQVJOX0xFVkVMX05PVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUl9N VFNfRkVBVFVSRV9JU19OT1RfU1VQUE9SVEVELAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRVIoRVJfTVRTX0ZFQVRVUkVfSVNfTk9UX1NVUFBPUlRFRCksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiVGVtcG9yYXJ5IGZhaWxlZCB0cmFuc2FjdGlvbiByZXRyeSIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VjaCBmYWlsdXJlIHdpbGwgZm9yY2UgdGhlIHNs YXZlIHRvIHN0b3AuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2xhdmVfdHJh bnNhY3Rpb25fcmV0cmllcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW4gdGhl IGV2ZW50IG9mIGEgdHJhbnNpZW50IGZhaWx1cmUsIHRoZSBzbGF2ZSB3aWxsICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJub3QgcmV0cnkgdGhlIHRyYW5zYWN0aW9uIGFuZCB3aWxs IHN0b3AuIik7CiAgICAgICAgIH0KICAgICAgIH0KICAgICAgIGVsc2UgaWYgKHRoZC0+bGV4LT5t aS5wb3MgfHwgdGhkLT5sZXgtPm1pLnJlbGF5X2xvZ19wb3MpCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3FsL3RhYmxlLmNjJwotLS0gYS9zcWwvdGFibGUuY2MJMjAxMS0wOC0yNiAxMzoyNjozMyArMDAw MAorKysgYi9zcWwvdGFibGUuY2MJMjAxMS0wOS0yNiAxMzo0ODowNiArMDAwMApAQCAtMTk4MSw5 ICsxOTgxLDYgQEAgaW50IG9wZW5fdGFibGVfZnJvbV9zaGFyZShUSEQgKnRoZCwgVEFCTAogICB7 CiAgICAgbWVtY3B5KG91dHBhcmFtLT5yZWNvcmRbMF0sIHNoYXJlLT5kZWZhdWx0X3ZhbHVlcywg c2hhcmUtPnJlY19idWZmX2xlbmd0aCk7CiAgICAgbWVtY3B5KG91dHBhcmFtLT5yZWNvcmRbMV0s IHNoYXJlLT5kZWZhdWx0X3ZhbHVlcywgc2hhcmUtPm51bGxfYnl0ZXMpOwotICAgIGlmIChyZWNv cmRzID4gMikKLSAgICAgIG1lbWNweShvdXRwYXJhbS0+cmVjb3JkWzFdLCBzaGFyZS0+ZGVmYXVs dF92YWx1ZXMsCi0gICAgICAgICAgICAgc2hhcmUtPnJlY19idWZmX2xlbmd0aCk7CiAgIH0KICNl bmRpZgogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMGxvZy5j JwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9nLmMJMjAxMS0wOC0xMCAwNjoyNjoz OSArMDAwMAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9nLmMJMjAxMS0wOS0yMyAx Mzo0OToxMyArMDAwMApAQCAtMzQ4NywxNSArMzQ4NywyMCBAQCBsb2dfcHJpbnQoCiAKIAljdXJy ZW50X3RpbWUgPSB0aW1lKE5VTEwpOwogCi0JdGltZV9lbGFwc2VkID0gMC4wMDEgKyBkaWZmdGlt ZShjdXJyZW50X3RpbWUsCi0JCQkJCWxvZ19zeXMtPmxhc3RfcHJpbnRvdXRfdGltZSk7CisJdGlt ZV9lbGFwc2VkID0gZGlmZnRpbWUoY3VycmVudF90aW1lLAorCQkJCWxvZ19zeXMtPmxhc3RfcHJp bnRvdXRfdGltZSk7CisKKwlpZiAodGltZV9lbGFwc2VkIDw9IDApIHsKKwkJdGltZV9lbGFwc2Vk ID0gMTsKKwl9CisKIAlmcHJpbnRmKGZpbGUsCiAJCSIlbHUgcGVuZGluZyBsb2cgd3JpdGVzLCAl bHUgcGVuZGluZyBjaGtwIHdyaXRlc1xuIgogCQkiJWx1IGxvZyBpL28ncyBkb25lLCAlLjJmIGxv ZyBpL28ncy9zZWNvbmRcbiIsCiAJCSh1bG9uZykgbG9nX3N5cy0+bl9wZW5kaW5nX3dyaXRlcywK IAkJKHVsb25nKSBsb2dfc3lzLT5uX3BlbmRpbmdfY2hlY2twb2ludF93cml0ZXMsCiAJCSh1bG9u ZykgbG9nX3N5cy0+bl9sb2dfaW9zLAotCQkoKGxvZ19zeXMtPm5fbG9nX2lvcyAtIGxvZ19zeXMt Pm5fbG9nX2lvc19vbGQpCisJCSgoZG91YmxlKShsb2dfc3lzLT5uX2xvZ19pb3MgLSBsb2dfc3lz LT5uX2xvZ19pb3Nfb2xkKQogCQkgLyB0aW1lX2VsYXBzZWQpKTsKIAogCWxvZ19zeXMtPm5fbG9n X2lvc19vbGQgPSBsb2dfc3lzLT5uX2xvZ19pb3M7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9yb3cvcm93MHB1cmdlLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzBwdXJnZS5jCTIwMTEtMDktMjEgMDA6MjQ6NTkgKzAwMDAKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MHB1cmdlLmMJMjAxMS0wOS0yNiAwNzoxOTowNCArMDAwMApAQCAtNTE2LDcgKzUx Niw3IEBAIHJvd19wdXJnZV91cGRfZXhpc3Rfb3JfZXh0ZXJuX2Z1bmMoCiAKIAl1dF9hZChub2Rl KTsKIAotCWlmICgobm9kZS0+cmVjX3R5cGUgPT0gVFJYX1VORE9fVVBEX0RFTF9SRUMpCisJaWYg KG5vZGUtPnJlY190eXBlID09IFRSWF9VTkRPX1VQRF9ERUxfUkVDCiAJICAgIHx8IChub2RlLT5j bXBsX2luZm8gJiBVUERfTk9ERV9OT19PUkRfQ0hBTkdFKSkgewogCiAJCWdvdG8gc2tpcF9zZWNv bmRhcmllczsKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku