From: Jon Olav Hauglid Date: February 9 2012 4:45pm Subject: bzr push into mysql-trunk-wl5968 branch (jon.hauglid:3836 to 3837) WL#5968 List-Archive: http://lists.mysql.com/commits/142818 Message-Id: <201202091645.q19GjYUm006756@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM4MzcgSm9uIE9sYXYgSGF1Z2xpZAkyMDEyLTAyLTA5CiAgICAgIFdMIzU5Njg6IEltcGxlbWVu dCBTVEFSVCBUUkFOU0FDVElPTiBSRUFEIChXUklURXxPTkxZKTsKICAgICAgICAKICAgICAgVGhp cyB3b3JrbG9nIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5 CiAgICAgIHN0YXJ0aW5nIHJlYWQtb25seSB0cmFuc2FjdGlvbnMuIER1cmluZyBhIHJlYWQtb25s eSB0cmFuc2FjdGlvbgogICAgICBhbGwgRERMIHN0YXRlbWVudHMgYXMgd2VsbCBhcyBpbnNlcnRz LCB1cGRhdGVzIGFuZCBkZWxldGlvbnMgb2YKICAgICAgZGF0YSBpbiBub24tdGVtcG9yYXJ5IHRh YmxlcyB3aWxsIHJldHVybiBhbiBlcnJvciBtZXNzYWdlOgogICAgICAiQ2Fubm90IGV4ZWN1dGUg c3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLiIKICAgICAgCiAgICAgIFJlYWQt b25seSB0cmFuc2FjdGlvbnMgY2FuIGJlIGV4cGxpY2l0bHkgc3RhcnRlZCB1c2luZyB0aGUKICAg ICAgbmV3IFNUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05MWSBzeW50YXguIFNpbWlsYXJseSByZWFk LXdyaXRlCiAgICAgIHRyYW5zYWN0aW9ucyBjYW4gYmUgZXhwbGljaXRseSBzdGFydGVkIHVzaW5n IFNUQVJUIFRSQU5TQUNUSU9OCiAgICAgIFJFQUQgV1JJVEUuCiAgICAgIAogICAgICBSZWFkLW9u bHkgdHJhbnNhY3Rpb24gY2FuIGJlIGltcGxpY2l0bHkgc3RhcnRlZCBieSBmaXJzdCBjaGFuZ2lu ZwogICAgICB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZSB0byByZWFkLW9ubHkgdXNpbmc6CiAgICAg ICopIFNFVCBbR0xPQkFMfFNFU1NJT05dIFRSQU5TQUNUSU9OIFJFQUQgT05MWQogICAgICAgICAo UkVBRCBXUklURSBpcyBhbHNvIHN1cHBvcnRlZCkKICAgICAgKikgR2xvYmFsL3Nlc3Npb24gZHlu YW1pYyBzZXJ2ZXIgdmFyaWFibGUgInR4X3JlYWRfb25seSIuCiAgICAgICAgIFRoaXMgaGFzIHRo ZSBzYW1lIGVmZmVjdCBhcyBTRVQgR0xPQkFML1NFU1NJT04gVFJBTlNBQ1RJT04uCiAgICAgICop IFNlcnZlciBzdGFydHVwIG9wdGlvbiAtLXRyYW5zYWN0aW9uLXJlYWQtb25seQogICAgICBhbmQg dGhlbiBzdGFydGluZyBhIHRyYW5zYWN0aW9uIHdpdGhvdXQgZXhwbGljaXQgYWNjZXNzIG1vZGUu CiAgICAgIE5vdGUgdGhhdCByZWFkLXdyaXRlIGlzIHRoZSBkZWZhdWx0IGFjY2VzcyBtb2RlICht YXRjaGluZwogICAgICBleGlzdGluZyBiZWhhdmlvciBiZWZvcmUgdGhpcyB3b3JrbG9nKS4KICAg ICAgCiAgICAgIFRoZSB3b3JrbG9nIGFsc28gdXBkYXRlcyB0aGUgY2xpZW50L3NlcnZlciBwcm90 b2NvbCBieSBhZGRpbmcKICAgICAgYSBuZXcgU0VSVkVSX1NUQVRVU19JTl9UUkFOU19SRUFET05M WSBzZXJ2ZXIgc3RhdHVzIGZsYWcuCiAgICAgIFRoaXMgYWxsb3dzIGNsaWVudHMgdG8gZXhhbWlu ZSB0aGUgYWNjZXNzIG1vZGUgb2YgYW55IGN1cnJlbnQKICAgICAgdHJhbnNhY3Rpb24uCiAgICAg IAogICAgICBTRVQgVFJBTlNBQ1RJT04gaXMgbm93IGEgc2VwYXJhdGUgc3RhdGVtZW50IGZyb20g U0VULiBUaGlzCiAgICAgIG1lYW5zIHRoYXQgaXQgaXMgbm93IGxvbmdlciBwb3NzaWJsZSB0byBl eGVjdXRlIGUuZy4KICAgICAgU0VUIEBhPSAxLCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwg U0VSSUFMSVpBQkxFLgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJz L3IvdHhfcmVhZF9vbmx5X2Jhc2ljLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3N5c192 YXJzL3QvdHhfcmVhZF9vbmx5X2Jhc2ljLnRlc3QKICAgIG1vZGlmaWVkOgogICAgICBpbmNsdWRl L215c3FsL3BsdWdpbi5oCiAgICAgIGluY2x1ZGUvbXlzcWwvcGx1Z2luX2F1ZGl0LmgucHAKICAg ICAgaW5jbHVkZS9teXNxbC9wbHVnaW5fYXV0aC5oLnBwCiAgICAgIGluY2x1ZGUvbXlzcWwvcGx1 Z2luX2Z0cGFyc2VyLmgucHAKICAgICAgaW5jbHVkZS9teXNxbF9jb20uaAogICAgICBteXNxbC10 ZXN0L3IvYnVnNTg2NjkucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9jb21taXQucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvci9teXNxbGQtLWhlbHAtbm90d2luLnJlc3VsdAogICAgICBteXNxbC10 ZXN0L3IvbXlzcWxkLS1oZWxwLXdpbi5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL3JlYWRfb25s eS5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL3NwLWNvZGUucmVzdWx0CiAgICAgIG15c3FsLXRl c3Qvc3VpdGUvb3B0X3RyYWNlL3IvZ2VuZXJhbDJfbm9fcHJvdC5yZXN1bHQKICAgICAgbXlzcWwt dGVzdC90L2NvbW1pdC50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9yZWFkX29ubHkudGVzdAogICAg ICBzcWwvaGFuZGxlci5jYwogICAgICBzcWwvaGFuZGxlci5oCiAgICAgIHNxbC9sZXguaAogICAg ICBzcWwvbG9jay5jYwogICAgICBzcWwvbXlzcWxkLmNjCiAgICAgIHNxbC9zaGFyZS9lcnJtc2ct dXRmOC50eHQKICAgICAgc3FsL3NxbF9iYXNlLmNjCiAgICAgIHNxbC9zcWxfY2xhc3MuY2MKICAg ICAgc3FsL3NxbF9jbGFzcy5oCiAgICAgIHNxbC9zcWxfbGV4LmgKICAgICAgc3FsL3NxbF9wYXJz ZS5jYwogICAgICBzcWwvc3FsX3RhYmxlLmNjCiAgICAgIHNxbC9zcWxfeWFjYy55eQogICAgICBz cWwvc3lzX3ZhcnMuY2MKICAgICAgc3FsL3N5c192YXJzLmgKICAgICAgc3FsL3RyYW5zYWN0aW9u LmNjCiAzODM2IEpvbiBPbGF2IEhhdWdsaWQJMjAxMi0wMi0wMwogICAgICBDaGFuZ2UgdHJlZSBu YW1lLgoKICAgIG1vZGlmaWVkOgogICAgICAuYnpyLW15c3FsL2RlZmF1bHQuY29uZgo9PT0gbW9k aWZpZWQgZmlsZSAnaW5jbHVkZS9teXNxbC9wbHVnaW4uaCcKLS0tIGEvaW5jbHVkZS9teXNxbC9w bHVnaW4uaAkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCisrKyBiL2luY2x1ZGUvbXlzcWwvcGx1 Z2luLmgJMjAxMi0wMi0wOSAxNjo0NDo0NiArMDAwMApAQCAtNTQ1LDYgKzU0NSw3IEBAIGNvbnN0 IGNoYXIgKnRoZF9wcm9jX2luZm8oTVlTUUxfVEhEIHRoZCwKIHZvaWQgKip0aGRfaGFfZGF0YShj b25zdCBNWVNRTF9USEQgdGhkLCBjb25zdCBzdHJ1Y3QgaGFuZGxlcnRvbiAqaHRvbik7CiB2b2lk IHRoZF9zdG9yYWdlX2xvY2tfd2FpdChNWVNRTF9USEQgdGhkLCBsb25nIGxvbmcgdmFsdWUpOwog aW50IHRoZF90eF9pc29sYXRpb24oY29uc3QgTVlTUUxfVEhEIHRoZCk7CitpbnQgdGhkX3R4X2lz X3JlYWRfb25seShjb25zdCBNWVNRTF9USEQgdGhkKTsKIGNoYXIgKnRoZF9zZWN1cml0eV9jb250 ZXh0KE1ZU1FMX1RIRCB0aGQsIGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbmd0aCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfcXVlcnlfbGVuKTsKIC8q IEluY3JlbWVudHMgdGhlIHJvdyBjb3VudGVyLCBzZWUgVEhEOjpyb3dfY291bnQgKi8KCj09PSBt b2RpZmllZCBmaWxlICdpbmNsdWRlL215c3FsL3BsdWdpbl9hdWRpdC5oLnBwJwotLS0gYS9pbmNs dWRlL215c3FsL3BsdWdpbl9hdWRpdC5oLnBwCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKKysr IGIvaW5jbHVkZS9teXNxbC9wbHVnaW5fYXVkaXQuaC5wcAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICsw MDAwCkBAIC0yMDAsNiArMjAwLDcgQEAgY29uc3QgY2hhciAqdGhkX3Byb2NfaW5mbyh2b2lkKiB0 aGQsIGNvbgogdm9pZCAqKnRoZF9oYV9kYXRhKGNvbnN0IHZvaWQqIHRoZCwgY29uc3Qgc3RydWN0 IGhhbmRsZXJ0b24gKmh0b24pOwogdm9pZCB0aGRfc3RvcmFnZV9sb2NrX3dhaXQodm9pZCogdGhk LCBsb25nIGxvbmcgdmFsdWUpOwogaW50IHRoZF90eF9pc29sYXRpb24oY29uc3Qgdm9pZCogdGhk KTsKK2ludCB0aGRfdHhfaXNfcmVhZF9vbmx5KGNvbnN0IHZvaWQqIHRoZCk7CiBjaGFyICp0aGRf c2VjdXJpdHlfY29udGV4dCh2b2lkKiB0aGQsIGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxl bmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfcXVlcnlf bGVuKTsKIHZvaWQgdGhkX2luY19yb3dfY291bnQodm9pZCogdGhkKTsKCj09PSBtb2RpZmllZCBm aWxlICdpbmNsdWRlL215c3FsL3BsdWdpbl9hdXRoLmgucHAnCi0tLSBhL2luY2x1ZGUvbXlzcWwv cGx1Z2luX2F1dGguaC5wcAkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCisrKyBiL2luY2x1ZGUv bXlzcWwvcGx1Z2luX2F1dGguaC5wcAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0yMDAs NiArMjAwLDcgQEAgY29uc3QgY2hhciAqdGhkX3Byb2NfaW5mbyh2b2lkKiB0aGQsIGNvbgogdm9p ZCAqKnRoZF9oYV9kYXRhKGNvbnN0IHZvaWQqIHRoZCwgY29uc3Qgc3RydWN0IGhhbmRsZXJ0b24g Kmh0b24pOwogdm9pZCB0aGRfc3RvcmFnZV9sb2NrX3dhaXQodm9pZCogdGhkLCBsb25nIGxvbmcg dmFsdWUpOwogaW50IHRoZF90eF9pc29sYXRpb24oY29uc3Qgdm9pZCogdGhkKTsKK2ludCB0aGRf dHhfaXNfcmVhZF9vbmx5KGNvbnN0IHZvaWQqIHRoZCk7CiBjaGFyICp0aGRfc2VjdXJpdHlfY29u dGV4dCh2b2lkKiB0aGQsIGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbmd0aCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfcXVlcnlfbGVuKTsKIHZvaWQg dGhkX2luY19yb3dfY291bnQodm9pZCogdGhkKTsKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRl L215c3FsL3BsdWdpbl9mdHBhcnNlci5oLnBwJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbl9m dHBhcnNlci5oLnBwCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKKysrIGIvaW5jbHVkZS9teXNx bC9wbHVnaW5fZnRwYXJzZXIuaC5wcAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xNTMs NiArMTUzLDcgQEAgY29uc3QgY2hhciAqdGhkX3Byb2NfaW5mbyh2b2lkKiB0aGQsIGNvbgogdm9p ZCAqKnRoZF9oYV9kYXRhKGNvbnN0IHZvaWQqIHRoZCwgY29uc3Qgc3RydWN0IGhhbmRsZXJ0b24g Kmh0b24pOwogdm9pZCB0aGRfc3RvcmFnZV9sb2NrX3dhaXQodm9pZCogdGhkLCBsb25nIGxvbmcg dmFsdWUpOwogaW50IHRoZF90eF9pc29sYXRpb24oY29uc3Qgdm9pZCogdGhkKTsKK2ludCB0aGRf dHhfaXNfcmVhZF9vbmx5KGNvbnN0IHZvaWQqIHRoZCk7CiBjaGFyICp0aGRfc2VjdXJpdHlfY29u dGV4dCh2b2lkKiB0aGQsIGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbmd0aCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfcXVlcnlfbGVuKTsKIHZvaWQg dGhkX2luY19yb3dfY291bnQodm9pZCogdGhkKTsKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRl L215c3FsX2NvbS5oJwotLS0gYS9pbmNsdWRlL215c3FsX2NvbS5oCTIwMTEtMTEtMTcgMTM6NDE6 MjggKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbF9jb20uaAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICsw MDAwCkBAIC0yNDIsNiArMjQyLDE0IEBAIGVudW0gZW51bV9zZXJ2ZXJfY29tbWFuZAogKi8KICNk ZWZpbmUgU0VSVkVSX1NUQVRVU19NRVRBREFUQV9DSEFOR0VEIDEwMjQKICNkZWZpbmUgU0VSVkVS X1FVRVJZX1dBU19TTE9XICAgICAgICAgIDIwNDgKKy8qKgorICBTZXQgYXQgdGhlIHNhbWUgdGlt ZSBhcyBTRVJWRVJfU1RBVFVTX0lOX1RSQU5TIGlmIHRoZSBzdGFydGVkCisgIHRyYW5zYWN0aW9u IGlzIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLiBDbGVhcmVkIHdoZW4gdGhlCisgIHRyYW5zYWN0 aW9uIGNvbW1pdHMgb3IgYWJvcnRzLiBTaW5jZSB0aGlzIGZsYWcgaXMgc2VudCB0bworICBjbGll bnRzIGluIE9LIGFuZCBFT0YgcGFja2V0cywgdGhlIGZsYWcgaW5kaWNhdGVzIHRoZQorICB0cmFu c2FjdGlvbiBzdGF0dXMgYXQgdGhlIGVuZCBvZiBjb21tYW5kIGV4ZWN1dGlvbi4KKyovCisjZGVm aW5lIFNFUlZFUl9TVEFUVVNfSU5fVFJBTlNfUkVBRE9OTFkgNDA5NgogCiAvKioKICAgVG8gbWFy ayBSZXN1bHRTZXQgY29udGFpbmluZyBvdXRwdXQgcGFyYW1ldGVyIHZhbHVlcy4KCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3IvYnVnNTg2NjkucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0 L3IvYnVnNTg2NjkucmVzdWx0CTIwMTAtMTItMTcgMTE6Mjg6NTkgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9yL2J1ZzU4NjY5LnJlc3VsdAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xMSw2 ICsxMSw3IEBAIHVzZXIxQGxvY2FsaG9zdAogU0hPVyBWQVJJQUJMRVMgTElLRSAiJXJlYWRfb25s eSUiOwogVmFyaWFibGVfbmFtZQlWYWx1ZQogcmVhZF9vbmx5CU9OCit0eF9yZWFkX29ubHkJT0ZG CiBJTlNFUlQgSU5UTyBkYjEudDEgVkFMVUVTICgxKTsKIEVSUk9SIEhZMDAwOiBUaGUgTXlTUUwg c2VydmVyIGlzIHJ1bm5pbmcgd2l0aCB0aGUgLS1yZWFkLW9ubHkgb3B0aW9uIHNvIGl0IGNhbm5v dCBleGVjdXRlIHRoaXMgc3RhdGVtZW50CiBEUk9QIERBVEFCQVNFIGRiMTsKCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L3IvY29tbWl0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2Nv bW1pdC5yZXN1bHQJMjAxMC0wNi0wOCAxNzo0NzoxMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3Iv Y29tbWl0LnJlc3VsdAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xMiw3ICsxMiw3IEBA IElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksKDIpOwogQ09NTUlUOwogU1RBUlQgVFJBTlNBQ1RJ T047CiBTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKLUVSUk9S IDI1MDAxOiBUcmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwgY2FuJ3QgYmUgY2hhbmdlZCB3aGls ZSBhIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzCitFUlJPUiAyNTAwMTogVHJhbnNhY3Rpb24g Y2hhcmFjdGVyaXN0aWNzIGNhbid0IGJlIGNoYW5nZWQgd2hpbGUgYSB0cmFuc2FjdGlvbiBpcyBp biBwcm9ncmVzcwogQ09NTUlUOwogU0VUIEBAYXV0b2NvbW1pdD0wOwogQ09NTUlUOwpAQCAtMjcw LDMgKzI3MCwyMTIgQEAgRFJPUCBUQUJMRSB0MTsKICMKICMgRW5kIG9mIHRlc3QgY2FzZXMgZm9y IEJ1ZyMyMDgzNwogIworIworIyBXTCM1OTY4IEltcGxlbWVudCBTVEFSVCBUUkFOU0FDVElPTiBS RUFEIChXUklURXxPTkxZKTsKKyMKKyMKKyMgVGVzdCAxOiBDaGVjayBzdXBwb3J0ZWQgc3ludGF4 CitTVEFSVCBUUkFOU0FDVElPTjsKK0NPTU1JVDsKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05M WTsKK0NPTU1JVDsKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitDT01NSVQ7CitTVEFS VCBUUkFOU0FDVElPTiBSRUFEIE9OTFksIFJFQUQgV1JJVEU7CitFUlJPUiA0MjAwMDogWW91IGhh dmUgYW4gZXJyb3IgaW4geW91ciBTUUwgc3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29y cmVzcG9uZHMgdG8geW91ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRh eCB0byB1c2UgbmVhciAnJyBhdCBsaW5lIDEKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05MWSwg V0lUSCBDT05TSVNURU5UIFNOQVBTSE9UOworQ09NTUlUOworU1RBUlQgVFJBTlNBQ1RJT04gUkVB RCBXUklURSwgV0lUSCBDT05TSVNURU5UIFNOQVBTSE9UOworQ09NTUlUOworU1RBUlQgVFJBTlNB Q1RJT04gV0lUSCBDT05TSVNURU5UIFNOQVBTSE9ULCBSRUFEIE9OTFk7CitDT01NSVQ7CitTVEFS VCBUUkFOU0FDVElPTiBXSVRIIENPTlNJU1RFTlQgU05BUFNIT1QsIFJFQUQgV1JJVEU7CitDT01N SVQ7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIE9OTFksIFdJVEggQ09OU0lTVEVOVCBTTkFQU0hP VCwgUkVBRCBXUklURTsKK0VSUk9SIDQyMDAwOiBZb3UgaGF2ZSBhbiBlcnJvciBpbiB5b3VyIFNR TCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0byB5b3VyIE15U1FM IHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBuZWFyICcnIGF0IGxp bmUgMQorU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIFdS SVRFOworU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUsIFJFQUQg T05MWTsKK1NFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFLCBSRUFE IFdSSVRFOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWSwgSVNPTEFUSU9OIExFVkVMIFJFQUQg Q09NTUlUVEVEOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEUsIElTT0xBVElPTiBMRVZFTCBS RUFEIENPTU1JVFRFRDsKKyMgVGhpcyBjdXJyZW50bHkgZG9lcyBub3QgZ2l2ZSBhIHBhcnNlciBl cnJvcgorU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWSwgUkVBRCBXUklURTsKKyMKKyMgVGVzdCAy OiBDaGVjayBleHBsaWNpdCBhbmQgaW1wbGljaXQgc2V0dGluZyBvZiB2YXJpYWJsZS4KK1NFVCBT RVNTSU9OIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitTRUxFQ1QgQEB0eF9yZWFkX29ubHk7CitA QHR4X3JlYWRfb25seQorMAorU0VUIFNFU1NJT04gVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworU0VM RUNUIEBAdHhfcmVhZF9vbmx5OworQEB0eF9yZWFkX29ubHkKKzEKKyMgVGhpcyBzaG91bGQgcmVz ZXQgYWNjZXNzIG1vZGUgdG8gUlcKK1NFVCBTRVNTSU9OIFRSQU5TQUNUSU9OIElTT0xBVElPTiBM RVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitTRUxFQ1QgQEB0eF9yZWFkX29ubHk7CitAQHR4X3JlYWRf b25seQorMAorU1RBUlQgVFJBTlNBQ1RJT047CisjIE5vdCBhbGxvd2VkIGluc2lkZSBhIHRyYW5z YWN0aW9uCitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworRVJST1IgMjUwMDE6IFRyYW5zYWN0 aW9uIGNoYXJhY3RlcmlzdGljcyBjYW4ndCBiZSBjaGFuZ2VkIHdoaWxlIGEgdHJhbnNhY3Rpb24g aXMgaW4gcHJvZ3Jlc3MKKyMgQnV0IHRoZXNlIGFyZSBhbGxvd2VkLgorU0VUIFNFU1NJT04gVFJB TlNBQ1RJT04gUkVBRCBPTkxZOworU0VUIEdMT0JBTCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitD T01NSVQ7CitTRVQgU0VTU0lPTiBUUkFOU0FDVElPTiBSRUFEIFdSSVRFOworU0VUIEdMT0JBTCBU UkFOU0FDVElPTiBSRUFEIFdSSVRFOworIworIyBUZXN0IDM6IFRlc3QgdGhhdCB3cml0ZSBvcGVy YXRpb25zIGFyZSBwcm9wZXJseSBibG9ja2VkLgorQ1JFQVRFIFRBQkxFIHQxKGEgSU5UKTsKK0NS RUFURSBURU1QT1JBUlkgVEFCTEUgdGVtcF90MihhIElOVCk7CitTVEFSVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CisjIDE6IERETCBzaG91bGQgYmUgYmxvY2tlZCwgYWxzbyBvbiB0ZW1wb3Jhcnkg dGFibGVzLgorQ1JFQVRFIFRBQkxFIHQzKGEgSU5UKTsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhl Y3V0ZSBzdGF0ZW1lbnQgaW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitBTFRFUiBUQUJMRSB0 MSBDT01NRU5UICJUZXN0IjsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQg aW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitEUk9QIFRBQkxFIHQxOworRVJST1IgSFkwMDA6 IENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK0NS RUFURSBURU1QT1JBUlkgVEFCTEUgdGVtcF90MyhhIElOVCk7CitFUlJPUiBIWTAwMDogQ2Fubm90 IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorRFJPUCBURU1Q T1JBUlkgVEFCTEUgdGVtcF90MjsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1l bnQgaW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitDUkVBVEUgRlVOQ1RJT04gZjEoKSBSRVRV Uk5TIElOVCBSRVRVUk4gMTsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQg aW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitEUk9QIEZVTkNUSU9OIGYxOworRVJST1IgSFkw MDA6IENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4K K0NSRUFURSBQUk9DRURVUkUgcDEoKSBCRUdJTiBFTkQ7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4 ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorRFJPUCBQUk9DRURV UkUgcDE7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBP TkxZIHRyYW5zYWN0aW9uLgorQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIDE7CitFUlJPUiBIWTAw MDogQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgor Q09NTUlUOworQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIDE7CitTVEFSVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CitEUk9QIFZJRVcgdjE7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4ZWN1dGUgc3Rh dGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorQ09NTUlUOworRFJPUCBWSUVXIHYx OworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworUkVOQU1FIFRBQkxFIHQxIFRPIHQyOwor RVJST1IgSFkwMDA6IENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFu c2FjdGlvbi4KK1RSVU5DQVRFIFRBQkxFIHQxOworRVJST1IgSFkwMDA6IENhbm5vdCBleGVjdXRl IHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK0NSRUFURSBEQVRBQkFTRSBk YjE7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZ IHRyYW5zYWN0aW9uLgorRFJPUCBEQVRBQkFTRSBkYjE7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4 ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorIyAyOiBETUwgc2hv dWxkIGJlIGJsb2NrZWQgb24gbm9uLXRlbXBvcmFyeSB0YWJsZXMuCitJTlNFUlQgSU5UTyB0MSBW QUxVRVMgKDEpLCAoMik7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGlu IGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorVVBEQVRFIHQxIFNFVCBhPSAzOworRVJST1IgSFkw MDA6IENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4K K0RFTEVURSBGUk9NIHQxOworRVJST1IgSFkwMDA6IENhbm5vdCBleGVjdXRlIHN0YXRlbWVudCBp biBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK0lOU0VSVCBJTlRPIHRlbXBfdDIgVkFMVUVTICgx KSwgKDIpOworVVBEQVRFIHRlbXBfdDIgU0VUIGE9IDM7CitERUxFVEUgRlJPTSB0ZW1wX3QyOwor IyAzOiBRdWVyaWVzIHNob3VsZCBub3QgYmUgYmxvY2tlZC4KK1NFTEVDVCAqIEZST00gdDE7Cith CitTRUxFQ1QgKiBGUk9NIHRlbXBfdDI7CithCitIQU5ETEVSIHQxIE9QRU47CitIQU5ETEVSIHQx IFJFQUQgRklSU1Q7CithCitIQU5ETEVSIHQxIENMT1NFOworSEFORExFUiB0ZW1wX3QyIE9QRU47 CitIQU5ETEVSIHRlbXBfdDIgUkVBRCBGSVJTVDsKK2EKK0hBTkRMRVIgdGVtcF90MiBDTE9TRTsK KyMgNDogUHJlcGFyZWQgc3RhdGVtZW50cworUFJFUEFSRSBzdG10IEZST00gIkRFTEVURSBGUk9N IHQxIjsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQgaW4gYSBSRUFEIE9O TFkgdHJhbnNhY3Rpb24uCitQUkVQQVJFIHN0bXQgRlJPTSAiREVMRVRFIEZST00gdGVtcF90MiI7 CitFWEVDVVRFIHN0bXQ7CitERUFMTE9DQVRFIFBSRVBBUkUgc3RtdDsKKyMgNTogU3RvcmVkIHJv dXRpbmVzCitDT01NSVQ7CitDUkVBVEUgRlVOQ1RJT04gZjEoKSBSRVRVUk5TIElOVAorQkVHSU4K K0RFTEVURSBGUk9NIHQxOworUkVUVVJOIDE7CitFTkR8CitDUkVBVEUgRlVOQ1RJT04gZjIoKSBS RVRVUk5TIElOVAorQkVHSU4KK0RFTEVURSBGUk9NIHRlbXBfdDI7CitSRVRVUk4gMTsKK0VORHwK K0NSRUFURSBQUk9DRURVUkUgcDEoKSBERUxFVEUgRlJPTSB0MTsKK0NSRUFURSBQUk9DRURVUkUg cDIoKSBERUxFVEUgRlJPTSB0ZW1wX3QyOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBXUklURTsK K1NFTEVDVCBmMSgpOworZjEoKQorMQorU0VMRUNUIGYyKCk7CitmMigpCisxCitDQUxMIHAxKCk7 CitDQUxMIHAyKCk7CitDT01NSVQ7CitEUk9QIEZVTkNUSU9OIGYxOworRFJPUCBGVU5DVElPTiBm MjsKK0RST1AgUFJPQ0VEVVJFIHAxOworRFJPUCBQUk9DRURVUkUgcDI7CitTVEFSVCBUUkFOU0FD VElPTiBSRUFEIE9OTFk7CisjIDY6IFZpZXdzCitDT01NSVQ7CitDUkVBVEUgVklFVyB2MSBBUyBT RUxFQ1QgYSBGUk9NIHQxOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworSU5TRVJUIElO VE8gdjEgVkFMVUVTICgxKSwgKDIpOworRVJST1IgSFkwMDA6IENhbm5vdCBleGVjdXRlIHN0YXRl bWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK1NFTEVDVCAqIEZST00gdjE7CithCitD T01NSVQ7CitEUk9QIFZJRVcgdjE7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CisjIDc6 IExPQ0sgVEFCTEUKK0xPQ0sgVEFCTEUgdDEgV1JJVEU7CitFUlJPUiBIWTAwMDogQ2Fubm90IGV4 ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgorTE9DSyBUQUJMRSB0 MSBSRUFEOworVU5MT0NLIFRBQkxFUzsKK0NPTU1JVDsKK0RST1AgVEFCTEUgdGVtcF90MiwgdDE7 CisjCisjIFRlc3QgNDogU0VUIFRSQU5TQUNUSU9OLCBDSEFJTmluZyB0cmFuc2FjdGlvbnMKK0NS RUFURSBUQUJMRSB0MShhIElOVCk7CitTRVQgU0VTU0lPTiBUUkFOU0FDVElPTiBSRUFEIE9OTFk7 CitTVEFSVCBUUkFOU0FDVElPTjsKK0RFTEVURSBGUk9NIHQxOworRVJST1IgSFkwMDA6IENhbm5v dCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK0NPTU1JVDsK K1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitERUxFVEUgRlJPTSB0MTsKK0NPTU1JVDsK K1NFVCBTRVNTSU9OIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitTRVQgVFJBTlNBQ1RJT04gUkVB RCBPTkxZOworU1RBUlQgVFJBTlNBQ1RJT047CitERUxFVEUgRlJPTSB0MTsKK0VSUk9SIEhZMDAw OiBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQgaW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitD T01NSVQ7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIFdSSVRFOworREVMRVRFIEZST00gdDE7CitD T01NSVQ7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitTRUxFQ1QgKiBGUk9NIHQxOwor YQorQ09NTUlUIEFORCBDSEFJTjsKK0RFTEVURSBGUk9NIHQxOworRVJST1IgSFkwMDA6IENhbm5v dCBleGVjdXRlIHN0YXRlbWVudCBpbiBhIFJFQUQgT05MWSB0cmFuc2FjdGlvbi4KK0NPTU1JVDsK K1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK1NFTEVDVCAqIEZST00gdDE7CithCitST0xM QkFDSyBBTkQgQ0hBSU47CitERUxFVEUgRlJPTSB0MTsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZXhl Y3V0ZSBzdGF0ZW1lbnQgaW4gYSBSRUFEIE9OTFkgdHJhbnNhY3Rpb24uCitDT01NSVQ7CitEUk9Q IFRBQkxFIHQxOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9teXNxbGQtLWhlbHAt bm90d2luLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL215c3FsZC0taGVscC1ub3R3aW4ucmVz dWx0CTIwMTItMDItMDIgMTY6NTY6MzYgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL215c3FsZC0t aGVscC1ub3R3aW4ucmVzdWx0CTIwMTItMDItMDkgMTY6NDQ6NDYgKzAwMDAKQEAgLTg1Nyw2ICs4 NTcsOSBAQCBUaGUgZm9sbG93aW5nIG9wdGlvbnMgbWF5IGJlIGdpdmVuIGFzIHRoCiAgLS10cmFu c2FjdGlvbi1wcmVhbGxvYy1zaXplPSMgCiAgUGVyc2lzdGVudCBidWZmZXIgZm9yIHRyYW5zYWN0 aW9ucyB0byBiZSBzdG9yZWQgaW4gYmluYXJ5CiAgbG9nCisgLS10cmFuc2FjdGlvbi1yZWFkLW9u bHkgCisgRGVmYXVsdCB0cmFuc2FjdGlvbiBhY2Nlc3MgbW9kZS4gVHJ1ZSBpZiB0cmFuc2FjdGlv bnMgYXJlCisgcmVhZC1vbmx5LgogIC0tdXBkYXRhYmxlLXZpZXdzLXdpdGgtbGltaXQ9bmFtZSAK ICBZRVMgPSBEb24ndCBpc3N1ZSBhbiBlcnJvciBtZXNzYWdlICh3YXJuaW5nIG9ubHkpIGlmIGEK ICBWSUVXIHdpdGhvdXQgcHJlc2VuY2Ugb2YgYSBrZXkgb2YgdGhlIHVuZGVybHlpbmcgdGFibGUg aXMKQEAgLTExMzIsNiArMTEzNSw3IEBAIHRtcC10YWJsZS1zaXplIDE2Nzc3MjE2CiB0cmFuc2Fj dGlvbi1hbGxvYy1ibG9jay1zaXplIDgxOTIKIHRyYW5zYWN0aW9uLWlzb2xhdGlvbiBSRVBFQVRB QkxFLVJFQUQKIHRyYW5zYWN0aW9uLXByZWFsbG9jLXNpemUgNDA5NgordHJhbnNhY3Rpb24tcmVh ZC1vbmx5IEZBTFNFCiB1cGRhdGFibGUtdmlld3Mtd2l0aC1saW1pdCBZRVMKIHZlcmJvc2UgVFJV RQogd2FpdC10aW1lb3V0IDI4ODAwCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL215 c3FsZC0taGVscC13aW4ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvbXlzcWxkLS1oZWxwLXdp bi5yZXN1bHQJMjAxMi0wMi0wMiAxNjo1NjozNiArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvbXlz cWxkLS1oZWxwLXdpbi5yZXN1bHQJMjAxMi0wMi0wOSAxNjo0NDo0NiArMDAwMApAQCAtODY1LDYg Kzg2NSw5IEBAIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUgZ2l2ZW4gYXMgdGgKICAtLXRy YW5zYWN0aW9uLXByZWFsbG9jLXNpemU9IyAKICBQZXJzaXN0ZW50IGJ1ZmZlciBmb3IgdHJhbnNh Y3Rpb25zIHRvIGJlIHN0b3JlZCBpbiBiaW5hcnkKICBsb2cKKyAtLXRyYW5zYWN0aW9uLXJlYWQt b25seSAKKyBEZWZhdWx0IHRyYW5zYWN0aW9uIGFjY2VzcyBtb2RlLiBUcnVlIGlmIHRyYW5zYWN0 aW9ucyBhcmUKKyByZWFkLW9ubHkuCiAgLS11cGRhdGFibGUtdmlld3Mtd2l0aC1saW1pdD1uYW1l IAogIFlFUyA9IERvbid0IGlzc3VlIGFuIGVycm9yIG1lc3NhZ2UgKHdhcm5pbmcgb25seSkgaWYg YQogIFZJRVcgd2l0aG91dCBwcmVzZW5jZSBvZiBhIGtleSBvZiB0aGUgdW5kZXJseWluZyB0YWJs ZSBpcwpAQCAtMTE0Myw2ICsxMTQ2LDcgQEAgdG1wLXRhYmxlLXNpemUgMTY3NzcyMTYKIHRyYW5z YWN0aW9uLWFsbG9jLWJsb2NrLXNpemUgODE5MgogdHJhbnNhY3Rpb24taXNvbGF0aW9uIFJFUEVB VEFCTEUtUkVBRAogdHJhbnNhY3Rpb24tcHJlYWxsb2Mtc2l6ZSA0MDk2Cit0cmFuc2FjdGlvbi1y ZWFkLW9ubHkgRkFMU0UKIHVwZGF0YWJsZS12aWV3cy13aXRoLWxpbWl0IFlFUwogdmVyYm9zZSBU UlVFCiB3YWl0LXRpbWVvdXQgMjg4MDAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Iv cmVhZF9vbmx5LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3JlYWRfb25seS5yZXN1bHQJMjAx MC0wOC0zMCAwNjozODowOSArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvcmVhZF9vbmx5LnJlc3Vs dAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xNTksMyArMTU5LDI3IEBAIGRlbGV0ZSBm cm9tIG15c3FsLmNvbHVtbnNfcHJpdiB3aGVyZSBVc2UKIGZsdXNoIHByaXZpbGVnZXM7CiBkcm9w IGRhdGFiYXNlIG15c3FsdGVzdF9kYjE7CiBzZXQgZ2xvYmFsIHJlYWRfb25seT0gQHN0YXJ0X3Jl YWRfb25seTsKKyMKKyMgV0wjNTk2OCBJbXBsZW1lbnQgU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCAo V1JJVEV8T05MWSk7CisjCisjCisjIFRlc3QgaW50ZXJhY3Rpb24gd2l0aCByZWFkX29ubHkgc3lz dGVtIHZhcmlhYmxlLgorQ1JFQVRFIFVTRVIgdXNlcjE7CitTRVQgR0xPQkFMIHJlYWRfb25seT0g MTsKKyMgQWxsIGFsbG93ZWQgd2l0aCBzdXBlciBwcml2aWxlZ2UKK1NUQVJUIFRSQU5TQUNUSU9O OworQ09NTUlUOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworQ09NTUlUOworU1RBUlQg VFJBTlNBQ1RJT04gUkVBRCBXUklURTsKK0NPTU1JVDsKKyMgRXhwbGljaXQgUlcgdHJhbnMgaXMg bm90IGFsbG93ZWQgd2l0aG91dCBzdXBlciBwcml2aWxlZ2UKK1NUQVJUIFRSQU5TQUNUSU9OOwor Q09NTUlUOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworQ09NTUlUOworU1RBUlQgVFJB TlNBQ1RJT04gUkVBRCBXUklURTsKK0VSUk9SIEhZMDAwOiBUaGUgTXlTUUwgc2VydmVyIGlzIHJ1 bm5pbmcgd2l0aCB0aGUgLS1yZWFkLW9ubHkgb3B0aW9uIHNvIGl0IGNhbm5vdCBleGVjdXRlIHRo aXMgc3RhdGVtZW50CitDT01NSVQ7CitEUk9QIFVTRVIgdXNlcjE7CitTRVQgR0xPQkFMIHJlYWRf b25seT0gMDsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Ivc3AtY29kZS5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvci9zcC1jb2RlLnJlc3VsdAkyMDExLTA5LTIwIDEyOjEzOjA3ICsw MDAwCisrKyBiL215c3FsLXRlc3Qvci9zcC1jb2RlLnJlc3VsdAkyMDEyLTAyLTA5IDE2OjQ0OjQ2 ICswMDAwCkBAIC04NDcsNyArODQ3LDcgQEAgZHJvcCBwcm9jZWR1cmUgaWYgZXhpc3RzIHBfMjA5 MDZfYjsKIGNyZWF0ZSBwcm9jZWR1cmUgcF8yMDkwNl9hKCkgU0VUIEBhPUBhKzEsIEBiPUBiKzE7 CiBzaG93IHByb2NlZHVyZSBjb2RlIHBfMjA5MDZfYTsKIFBvcwlJbnN0cnVjdGlvbgotMAlzdG10 IDMxICJTRVQgQGE9QGErMSIKKzAJc3RtdCAzMSAiU0VUICBAYT1AYSsxIgogMQlzdG10IDMxICJT RVQgIEBiPUBiKzEiCiBzZXQgQGE9MTsKIHNldCBAYj0xOwpAQCAtODU4LDcgKzg1OCw3IEBAIHNl bGVjdCBAYSwgQGI7CiBjcmVhdGUgcHJvY2VkdXJlIHBfMjA5MDZfYigpIFNFVCBAYT1AYSsxLCBA Yj1AYisxLCBAYz1AYysxOwogc2hvdyBwcm9jZWR1cmUgY29kZSBwXzIwOTA2X2I7CiBQb3MJSW5z dHJ1Y3Rpb24KLTAJc3RtdCAzMSAiU0VUIEBhPUBhKzEiCiswCXN0bXQgMzEgIlNFVCAgQGE9QGEr MSIKIDEJc3RtdCAzMSAiU0VUICBAYj1AYisxIgogMglzdG10IDMxICJTRVQgIEBjPUBjKzEiCiBz ZXQgQGE9MTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL29wdF90cmFjZS9y L2dlbmVyYWwyX25vX3Byb3QucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL29wdF90cmFj ZS9yL2dlbmVyYWwyX25vX3Byb3QucmVzdWx0CTIwMTItMDEtMjYgMTM6MDk6NTkgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC9zdWl0ZS9vcHRfdHJhY2Uvci9nZW5lcmFsMl9ub19wcm90LnJlc3VsdAky MDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xNjY2LDcgKzE2NjYsNyBAQCBpbnNlcnQgaW50 byB0MSB2YWx1ZXMoMykJewogICAic3RlcHMiOiBbCiAgIF0gLyogc3RlcHMgKi8KIH0JMAkwCi1T RVQgQGE9KHNlbGVjdCBjb3VudChhKSBmcm9tIHQxIHdoZXJlIGE+MCkJeworU0VUICBAYT0oc2Vs ZWN0IGNvdW50KGEpIGZyb20gdDEgd2hlcmUgYT4wKQl7CiAgICJzdGVwcyI6IFsKICAgICB7CiAg ICAgICAiam9pbl9wcmVwYXJhdGlvbiI6IHsKQEAgLTE5MjQsNyArMTkyNCw3IEBAIGp1bXBfaWZf bm90IDExKDE1KSAoY2FzZV9leHByQDAgPSAyKQl7CiAgICJzdGVwcyI6IFsKICAgXSAvKiBzdGVw cyAqLwogfQkwCTAKLVNFVCBAYj0yCXsKK1NFVCAgQGI9Mgl7CiAgICJzdGVwcyI6IFsKICAgXSAv KiBzdGVwcyAqLwogfQkwCTAKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3N5c192 YXJzL3IvdHhfcmVhZF9vbmx5X2Jhc2ljLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9z eXNfdmFycy9yL3R4X3JlYWRfb25seV9iYXNpYy5yZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCAr MDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3IvdHhfcmVhZF9vbmx5X2Jhc2lj LnJlc3VsdAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0wLDAgKzEsMTYzIEBACitTRVQg QHN0YXJ0X2dsb2JhbF92YWx1ZSA9IEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK1NFTEVDVCBAc3Rh cnRfZ2xvYmFsX3ZhbHVlOworQHN0YXJ0X2dsb2JhbF92YWx1ZQorMAorU0VUIEBzdGFydF9zZXNz aW9uX3ZhbHVlID0gQEBzZXNzaW9uLnR4X3JlYWRfb25seTsKK1NFTEVDVCBAc3RhcnRfc2Vzc2lv bl92YWx1ZTsKK0BzdGFydF9zZXNzaW9uX3ZhbHVlCiswCisnIy0tLS0tLS0tLS0tLS0tLS0tLS0t Rk5fRFlOVkFSU18wNTRfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBAQGdsb2Jh bC50eF9yZWFkX29ubHkgPSBPTjsKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSBERUZBVUxU OworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK0BAZ2xvYmFsLnR4X3JlYWRfb25seQor MAorU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSBPTjsKK1NFVCBAQHNlc3Npb24udHhfcmVh ZF9vbmx5ID0gREVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5OworQEBzZXNz aW9uLnR4X3JlYWRfb25seQorMAorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0 XzAyLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5 ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSAnT0ZGJzsKK0BAZ2xv YmFsLnR4X3JlYWRfb25seSA9ICdPRkYnCisxCitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVu Y2F0ZWQgaW5jb3JyZWN0IERPVUJMRSB2YWx1ZTogJ09GRicKK1NFVCBAQHNlc3Npb24udHhfcmVh ZF9vbmx5ID0gREVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gJ09GRic7 CitAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gJ09GRicKKzEKK1dhcm5pbmdzOgorV2FybmluZwkx MjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgRE9VQkxFIHZhbHVlOiAnT0ZGJworJyMtLS0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0XzAzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitT RVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gT047CitTRUxFQ1QgQEBnbG9iYWwudHhfcmVhZF9v bmx5OworQEBnbG9iYWwudHhfcmVhZF9vbmx5CisxCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5 ID0gT0ZGOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK0BAZ2xvYmFsLnR4X3JlYWRf b25seQorMAorU0VUIEBAZ2xvYmFsLnR4X3JlYWRfb25seSA9IDA7CitTRUxFQ1QgQEBnbG9iYWwu dHhfcmVhZF9vbmx5OworQEBnbG9iYWwudHhfcmVhZF9vbmx5CiswCitTRVQgQEBnbG9iYWwudHhf cmVhZF9vbmx5ID0gMTsKK1NFTEVDVCBAQGdsb2JhbC50eF9yZWFkX29ubHk7CitAQGdsb2JhbC50 eF9yZWFkX29ubHkKKzEKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSBUUlVFOworU0VMRUNU IEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK0BAZ2xvYmFsLnR4X3JlYWRfb25seQorMQorU0VUIEBA Z2xvYmFsLnR4X3JlYWRfb25seSA9IEZBTFNFOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25s eTsKK0BAZ2xvYmFsLnR4X3JlYWRfb25seQorMAorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZ TlZBUlNfMDU0XzA0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBzZXNzaW9uLnR4 X3JlYWRfb25seSA9IE9OOworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7CitAQHNlc3Np b24udHhfcmVhZF9vbmx5CisxCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IE9GRjsKK1NF TEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5OworQEBzZXNzaW9uLnR4X3JlYWRfb25seQorMAor U0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSAwOworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFk X29ubHk7CitAQHNlc3Npb24udHhfcmVhZF9vbmx5CiswCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRf b25seSA9IDE7CitTRUxFQ1QgQEBzZXNzaW9uLnR4X3JlYWRfb25seTsKK0BAc2Vzc2lvbi50eF9y ZWFkX29ubHkKKzEKK1NFVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gVFJVRTsKK1NFTEVDVCBA QHNlc3Npb24udHhfcmVhZF9vbmx5OworQEBzZXNzaW9uLnR4X3JlYWRfb25seQorMQorU0VUIEBA c2Vzc2lvbi50eF9yZWFkX29ubHkgPSBGQUxTRTsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9v bmx5OworQEBzZXNzaW9uLnR4X3JlYWRfb25seQorMAorJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9E WU5WQVJTXzA1NF8wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBAQGdsb2JhbC50eF9y ZWFkX29ubHkgPSAnT05OJzsKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAndHhfcmVhZF9vbmx5JyBj YW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdPTk4nCitTRVQgQEBnbG9iYWwudHhfcmVhZF9v bmx5ID0gIk9GRkYiOworRVJST1IgNDIwMDA6IFZhcmlhYmxlICd0eF9yZWFkX29ubHknIGNhbid0 IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ09GRkYnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5 ID0gVFRSVUU7CitFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3R4X3JlYWRfb25seScgY2FuJ3QgYmUg c2V0IHRvIHRoZSB2YWx1ZSBvZiAnVFRSVUUnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0g RkVMU0U7CitFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3R4X3JlYWRfb25seScgY2FuJ3QgYmUgc2V0 IHRvIHRoZSB2YWx1ZSBvZiAnRkVMU0UnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gLTEw MjQ7CitFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3R4X3JlYWRfb25seScgY2FuJ3QgYmUgc2V0IHRv IHRoZSB2YWx1ZSBvZiAnLTEwMjQnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gNjU1MzY7 CitFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3R4X3JlYWRfb25seScgY2FuJ3QgYmUgc2V0IHRvIHRo ZSB2YWx1ZSBvZiAnNjU1MzYnCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gNjU1MzAuMzQ7 CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFyaWFibGUgJ3R4X3Jl YWRfb25seScKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSB0ZXN0OworRVJST1IgNDIwMDA6 IFZhcmlhYmxlICd0eF9yZWFkX29ubHknIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ3Rl c3QnCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IE9OTjsKK0VSUk9SIDQyMDAwOiBWYXJp YWJsZSAndHhfcmVhZF9vbmx5JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdPTk4nCitT RVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IE9ORjsKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAn dHhfcmVhZF9vbmx5JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdPTkYnCitTRVQgQEBz ZXNzaW9uLnR4X3JlYWRfb25seSA9IE9GOworRVJST1IgNDIwMDA6IFZhcmlhYmxlICd0eF9yZWFk X29ubHknIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ09GJworU0VUIEBAc2Vzc2lvbi50 eF9yZWFkX29ubHkgPSAnT0ZOJzsKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAndHhfcmVhZF9vbmx5 JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdPRk4nCitTRVQgQEBzZXNzaW9uLnR4X3Jl YWRfb25seSA9IC0yOworRVJST1IgNDIwMDA6IFZhcmlhYmxlICd0eF9yZWFkX29ubHknIGNhbid0 IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJy0yJworU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkg PSA2NTUzMC4zNDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgYXJndW1lbnQgdHlwZSB0byB2YXJp YWJsZSAndHhfcmVhZF9vbmx5JworU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSA2NTU1MDsK K0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAndHhfcmVhZF9vbmx5JyBjYW4ndCBiZSBzZXQgdG8gdGhl IHZhbHVlIG9mICc2NTU1MCcKK1NFVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gdGVzdDsKK0VS Uk9SIDQyMDAwOiBWYXJpYWJsZSAndHhfcmVhZF9vbmx5JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZh bHVlIG9mICd0ZXN0JworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7CitAQHNlc3Npb24u dHhfcmVhZF9vbmx5CiswCisnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0XzA2LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VMRUNUIElGKEBAZ2xvYmFsLnR4X3JlYWRfb25seSwg Ik9OIiwgIk9GRiIpID0gVkFSSUFCTEVfVkFMVUUgCitGUk9NIElORk9STUFUSU9OX1NDSEVNQS5H TE9CQUxfVkFSSUFCTEVTCitXSEVSRSBWQVJJQUJMRV9OQU1FPSd0eF9yZWFkX29ubHknOworSUYo QEBnbG9iYWwudHhfcmVhZF9vbmx5LCAiT04iLCAiT0ZGIikgPSBWQVJJQUJMRV9WQUxVRQorMQor JyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA1NF8wNy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tIycKK1NFTEVDVCBJRihAQHNlc3Npb24udHhfcmVhZF9vbmx5LCAiT04iLCAiT0ZGIikgPSBW QVJJQUJMRV9WQUxVRSAKK0ZST00gSU5GT1JNQVRJT05fU0NIRU1BLlNFU1NJT05fVkFSSUFCTEVT IAorV0hFUkUgVkFSSUFCTEVfTkFNRT0ndHhfcmVhZF9vbmx5JzsKK0lGKEBAc2Vzc2lvbi50eF9y ZWFkX29ubHksICJPTiIsICJPRkYiKSA9IFZBUklBQkxFX1ZBTFVFCisxCisnIy0tLS0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzA4LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitTRVQg QEB0eF9yZWFkX29ubHkgPSBPRkY7CitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gT047CitT RUxFQ1QgQEB0eF9yZWFkX29ubHkgPSBAQGdsb2JhbC50eF9yZWFkX29ubHk7CitAQHR4X3JlYWRf b25seSA9IEBAZ2xvYmFsLnR4X3JlYWRfb25seQorMAorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1G Tl9EWU5WQVJTXzAwMV8wOS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAdHhfcmVhZF9v bmx5ID0gT047CitTRUxFQ1QgQEB0eF9yZWFkX29ubHkgPSBAQGxvY2FsLnR4X3JlYWRfb25seTsK K0BAdHhfcmVhZF9vbmx5ID0gQEBsb2NhbC50eF9yZWFkX29ubHkKKzEKK1NFTEVDVCBAQGxvY2Fs LnR4X3JlYWRfb25seSA9IEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7CitAQGxvY2FsLnR4X3JlYWRf b25seSA9IEBAc2Vzc2lvbi50eF9yZWFkX29ubHkKKzEKKycjLS0tLS0tLS0tLS0tLS0tLS0tLS0t Rk5fRFlOVkFSU18wMDFfMTAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCB0eF9yZWFkX29u bHkgPSAxOworU0VMRUNUIEBAdHhfcmVhZF9vbmx5OworQEB0eF9yZWFkX29ubHkKKzEKK1NFTEVD VCBsb2NhbC50eF9yZWFkX29ubHk7CitFUlJPUiA0MlMwMjogVW5rbm93biB0YWJsZSAnbG9jYWwn IGluIGZpZWxkIGxpc3QKK1NFTEVDVCBzZXNzaW9uLnR4X3JlYWRfb25seTsKK0VSUk9SIDQyUzAy OiBVbmtub3duIHRhYmxlICdzZXNzaW9uJyBpbiBmaWVsZCBsaXN0CitTRUxFQ1QgdHhfcmVhZF9v bmx5ID0gQEBzZXNzaW9uLnR4X3JlYWRfb25seTsKK0VSUk9SIDQyUzIyOiBVbmtub3duIGNvbHVt biAndHhfcmVhZF9vbmx5JyBpbiAnZmllbGQgbGlzdCcKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29u bHkgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsK K0BAZ2xvYmFsLnR4X3JlYWRfb25seQorMAorU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSBA c3RhcnRfc2Vzc2lvbl92YWx1ZTsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5OworQEBz ZXNzaW9uLnR4X3JlYWRfb25seQorMAoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUv c3lzX3ZhcnMvdC90eF9yZWFkX29ubHlfYmFzaWMudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0 ZS9zeXNfdmFycy90L3R4X3JlYWRfb25seV9iYXNpYy50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L3R4X3JlYWRfb25seV9iYXNp Yy50ZXN0CTIwMTItMDItMDkgMTY6NDQ6NDYgKzAwMDAKQEAgLTAsMCArMSwyMTkgQEAKKyMjIyMj IyMjIyMjIyMjIG15c3FsLXRlc3RcdFx0eF9yZWFkX29ubHlfYmFzaWMudGVzdCAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgVmFyaWFibGUgTmFt ZTogdHhfcmVhZF9vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMKKyMgU2NvcGU6IEdMT0JBTCAmIFNFU1NJT04gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgQWNjZXNzIFR5cGU6IER5bmFtaWMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMK KyMgRGF0YSBUeXBlOiBib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMKKyMgRGVmYXVsdCBWYWx1ZTogT0ZGICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgUmFuZ2U6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMKKyMgQ3JlYXRpb24gRGF0ZTogMjAxMi0wMS0xMiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgQXV0aG9yOiAgam9oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMKKyMgRGVzY3JpcHRpb246IFRlc3QgQ2FzZXMgb2YgRHluYW1p YyBTeXN0ZW0gVmFyaWFibGUgdHhfcmVhZF9vbmx5ICAgICAgICAgICAgICMKKyMgICAgICAgICAg ICAgIHRoYXQgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGlzIHZhcmlhYmxlIGluIHRoZSBmb2xs b3dpbmcgd2F5cyMKKyMgICAgICAgICAgICAgICogRGVmYXVsdCBWYWx1ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgICAgICAgICAgICAgICogVmFs aWQgJiBJbnZhbGlkIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMKKyMgICAgICAgICAgICAgICogU2NvcGUgJiBBY2Nlc3MgbWV0aG9kICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgICAgICAgICAgICAgICogRGF0YSBJbnRlZ3Jp dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMKKyMgUmVmZXJlbmNlOiBodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2Mv cmVmbWFuLzUuNi9lbi8gICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMgIHNlcnZlci1zeXN0 ZW0tdmFyaWFibGVzLmh0bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworLS1zb3VyY2UgaW5jbHVkZS9sb2FkX3N5c3ZhcnMuaW5jCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAg ICAgICAgICBTVEFSVCBPRiB0eF9yZWFkX29ubHkgVEVTVFMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAgICAgICAgICAgICAgICBTYXZlIGlu aXRpYWwgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK1NFVCBAc3RhcnRf Z2xvYmFsX3ZhbHVlID0gQEBnbG9iYWwudHhfcmVhZF9vbmx5OworU0VMRUNUIEBzdGFydF9nbG9i YWxfdmFsdWU7CitTRVQgQHN0YXJ0X3Nlc3Npb25fdmFsdWUgPSBAQHNlc3Npb24udHhfcmVhZF9v bmx5OworU0VMRUNUIEBzdGFydF9zZXNzaW9uX3ZhbHVlOworCisKKy0tZWNobyAnIy0tLS0tLS0t LS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wNTRfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIyAgICAgRGlzcGxheSB0aGUgREVGQVVMVCB2YWx1ZSBvZiB0eF9y ZWFkX29ubHkgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworU0VU IEBAZ2xvYmFsLnR4X3JlYWRfb25seSA9IE9OOworU0VUIEBAZ2xvYmFsLnR4X3JlYWRfb25seSA9 IERFRkFVTFQ7CitTRUxFQ1QgQEBnbG9iYWwudHhfcmVhZF9vbmx5OworCitTRVQgQEBzZXNzaW9u LnR4X3JlYWRfb25seSA9IE9OOworU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSBERUZBVUxU OworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7CisKKworLS1lY2hvICcjLS0tLS0tLS0t LS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA1NF8wMi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjICAgICBDaGVjayB0aGUgREVGQVVMVCB2YWx1ZSBvZiB0eF9yZWFk X29ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitTRVQg QEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC50eF9yZWFk X29ubHkgPSAnT0ZGJzsKKworU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSBERUZBVUxUOwor U0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSAnT0ZGJzsKKworCistLWVjaG8gJyMtLS0t LS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0XzAzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ2hhbmdlIHRoZSB2YWx1ZSBvZiB0eF9yZWFk X29ubHkgdG8gYSB2YWxpZCB2YWx1ZSBmb3IgR0xPQkFMIFNjb3BlICAgICAgICAgIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSBPTjsKK1NFTEVD VCBAQGdsb2JhbC50eF9yZWFkX29ubHk7CitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gT0ZG OworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29u bHkgPSAwOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK1NFVCBAQGdsb2JhbC50eF9y ZWFkX29ubHkgPSAxOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK1NFVCBAQGdsb2Jh bC50eF9yZWFkX29ubHkgPSBUUlVFOworU0VMRUNUIEBAZ2xvYmFsLnR4X3JlYWRfb25seTsKK1NF VCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSBGQUxTRTsKK1NFTEVDVCBAQGdsb2JhbC50eF9yZWFk X29ubHk7CisKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0 XzA0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IENoYW5nZSB0aGUgdmFsdWUgb2YgdHhfcmVhZF9vbmx5IHRvIGEgdmFsaWQgdmFsdWUgZm9yIFNF U1NJT04gU2NvcGUgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCitTRVQgQEBz ZXNzaW9uLnR4X3JlYWRfb25seSA9IE9OOworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7 CitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IE9GRjsKK1NFTEVDVCBAQHNlc3Npb24udHhf cmVhZF9vbmx5OworU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSAwOworU0VMRUNUIEBAc2Vz c2lvbi50eF9yZWFkX29ubHk7CitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IDE7CitTRUxF Q1QgQEBzZXNzaW9uLnR4X3JlYWRfb25seTsKK1NFVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0g VFJVRTsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5OworU0VUIEBAc2Vzc2lvbi50eF9y ZWFkX29ubHkgPSBGQUxTRTsKK1NFTEVDVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5OworCisKKy0t ZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDU0XzA1LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0jJworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBDaGFuZ2UgdGhlIHZhbHVlIG9mIHR4X3JlYWRfb25seSB0 byBhbiBpbnZhbGlkIHZhbHVlICAgICAgICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCistLUVycm9yIEVSX1dST05H X1ZBTFVFX0ZPUl9WQVIKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSAnT05OJzsKKy0tRXJy b3IgRVJfV1JPTkdfVkFMVUVfRk9SX1ZBUgorU0VUIEBAZ2xvYmFsLnR4X3JlYWRfb25seSA9ICJP RkZGIjsKKy0tRXJyb3IgRVJfV1JPTkdfVkFMVUVfRk9SX1ZBUgorU0VUIEBAZ2xvYmFsLnR4X3Jl YWRfb25seSA9IFRUUlVFOworLS1FcnJvciBFUl9XUk9OR19WQUxVRV9GT1JfVkFSCitTRVQgQEBn bG9iYWwudHhfcmVhZF9vbmx5ID0gRkVMU0U7CistLUVycm9yIEVSX1dST05HX1ZBTFVFX0ZPUl9W QVIKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSAtMTAyNDsKKy0tRXJyb3IgRVJfV1JPTkdf VkFMVUVfRk9SX1ZBUgorU0VUIEBAZ2xvYmFsLnR4X3JlYWRfb25seSA9IDY1NTM2OworLS1FcnJv ciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKK1NFVCBAQGdsb2JhbC50eF9yZWFkX29ubHkgPSA2NTUz MC4zNDsKKy0tRXJyb3IgRVJfV1JPTkdfVkFMVUVfRk9SX1ZBUgorU0VUIEBAZ2xvYmFsLnR4X3Jl YWRfb25seSA9IHRlc3Q7CisKKy0tRXJyb3IgRVJfV1JPTkdfVkFMVUVfRk9SX1ZBUgorU0VUIEBA c2Vzc2lvbi50eF9yZWFkX29ubHkgPSBPTk47CistLUVycm9yIEVSX1dST05HX1ZBTFVFX0ZPUl9W QVIKK1NFVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gT05GOworLS1FcnJvciBFUl9XUk9OR19W QUxVRV9GT1JfVkFSCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9IE9GOworLS1FcnJvciBF Ul9XUk9OR19WQUxVRV9GT1JfVkFSCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRfb25seSA9ICdPRk4n OworLS1FcnJvciBFUl9XUk9OR19WQUxVRV9GT1JfVkFSCitTRVQgQEBzZXNzaW9uLnR4X3JlYWRf b25seSA9IC0yOworLS1FcnJvciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKK1NFVCBAQHNlc3Npb24u dHhfcmVhZF9vbmx5ID0gNjU1MzAuMzQ7CistLUVycm9yIEVSX1dST05HX1ZBTFVFX0ZPUl9WQVIK K1NFVCBAQHNlc3Npb24udHhfcmVhZF9vbmx5ID0gNjU1NTA7CisKKy0tRXJyb3IgRVJfV1JPTkdf VkFMVUVfRk9SX1ZBUgorU0VUIEBAc2Vzc2lvbi50eF9yZWFkX29ubHkgPSB0ZXN0OworU0VMRUNU IEBAc2Vzc2lvbi50eF9yZWFkX29ubHk7CisKKworLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0t Rk5fRFlOVkFSU18wNTRfMDYtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyAgIENoZWNrIGlmIHRoZSB2YWx1ZSBpbiBHTE9CQUwgVGFibGUgbWF0Y2hlcyB2YWx1ZSBpbiB2 YXJpYWJsZSAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKworU0VMRUNUIElGKEBAZ2xvYmFsLnR4X3JlYWRf b25seSwgIk9OIiwgIk9GRiIpID0gVkFSSUFCTEVfVkFMVUUgCitGUk9NIElORk9STUFUSU9OX1ND SEVNQS5HTE9CQUxfVkFSSUFCTEVTCitXSEVSRSBWQVJJQUJMRV9OQU1FPSd0eF9yZWFkX29ubHkn OworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA1NF8wNy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICBDaGVjayBpZiB0aGUgdmFsdWUgaW4g U0VTU0lPTiBUYWJsZSBtYXRjaGVzIHZhbHVlIGluIHZhcmlhYmxlICAgIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworU0VMRUNUIElGKEBAc2Vzc2lvbi50eF9yZWFkX29ubHksICJPTiIsICJPRkYiKSA9IFZBUklB QkxFX1ZBTFVFIAorRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuU0VTU0lPTl9WQVJJQUJMRVMgCitX SEVSRSBWQVJJQUJMRV9OQU1FPSd0eF9yZWFkX29ubHknOworCisKKy0tZWNobyAnIy0tLS0tLS0t LS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzA4LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICBDaGVjayBpZiBhY2Nlc3NpbmcgdmFyaWFibGUgd2l0 aCBhbmQgd2l0aG91dCBHTE9CQUwgcG9pbnQgdG8gc2FtZSB2YXJpYWJsZSAjCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK1NFVCBAQHR4X3JlYWRfb25seSA9IE9GRjsKK1NFVCBAQGdsb2JhbC50 eF9yZWFkX29ubHkgPSBPTjsKK1NFTEVDVCBAQHR4X3JlYWRfb25seSA9IEBAZ2xvYmFsLnR4X3Jl YWRfb25seTsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzAw MV8wOS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAg IENoZWNrIGlmIGFjY2Vzc2luZyB2YXJpYWJsZSB3aXRoIFNFU1NJT04sTE9DQUwgYW5kIHdpdGhv dXQgU0NPUEUgcG9pbnRzICMKKyMgICAgdG8gc2FtZSBzZXNzaW9uIHZhcmlhYmxlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK1NFVCBAQHR4X3JlYWRfb25seSA9IE9OOworU0VMRUNUIEBAdHhfcmVhZF9vbmx5 ID0gQEBsb2NhbC50eF9yZWFkX29ubHk7CitTRUxFQ1QgQEBsb2NhbC50eF9yZWFkX29ubHkgPSBA QHNlc3Npb24udHhfcmVhZF9vbmx5OworCisKKy0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0t LUZOX0RZTlZBUlNfMDAxXzEwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjICAgQ2hlY2sgaWYgdHhfcmVhZF9vbmx5IGNhbiBiZSBhY2Nlc3NlZCB3aXRo IGFuZCB3aXRob3V0IEBAIHNpZ24gICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK1NFVCB0eF9yZWFkX29ubHkgPSAxOworU0VMRUNUIEBAdHhfcmVhZF9vbmx5OworLS1FcnJv ciBFUl9VTktOT1dOX1RBQkxFCitTRUxFQ1QgbG9jYWwudHhfcmVhZF9vbmx5OworLS1FcnJvciBF Ul9VTktOT1dOX1RBQkxFCitTRUxFQ1Qgc2Vzc2lvbi50eF9yZWFkX29ubHk7CistLUVycm9yIEVS X0JBRF9GSUVMRF9FUlJPUgorU0VMRUNUIHR4X3JlYWRfb25seSA9IEBAc2Vzc2lvbi50eF9yZWFk X29ubHk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAgICBS ZXN0b3JlIGluaXRpYWwgdmFsdWUgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitTRVQgQEBnbG9iYWwudHhfcmVhZF9vbmx5ID0gQHN0YXJ0X2dsb2JhbF92 YWx1ZTsKK1NFTEVDVCBAQGdsb2JhbC50eF9yZWFkX29ubHk7CitTRVQgQEBzZXNzaW9uLnR4X3Jl YWRfb25seSA9IEBzdGFydF9zZXNzaW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vzc2lvbi50eF9yZWFk X29ubHk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjICAgICAgICAgICAgICAgICBFTkQgT0YgdHhfcmVhZF9vbmx5IFRFU1RT ICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L2NvbW1p dC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvY29tbWl0LnRlc3QJMjAxMC0wNi0wOCAxNzo0Nzox MCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvY29tbWl0LnRlc3QJMjAxMi0wMi0wOSAxNjo0NDo0 NiArMDAwMApAQCAtMjgsNyArMjgsNyBAQCBDT01NSVQ7CiAjIGluc2lkZSBhIHRyYW5zYWN0aW9u CiAjCiBTVEFSVCBUUkFOU0FDVElPTjsKLS0tZXJyb3IgRVJfQ0FOVF9DSEFOR0VfVFhfSVNPTEFU SU9OCistLWVycm9yIEVSX0NBTlRfQ0hBTkdFX1RYX0NIQVJBQ1RFUklTVElDUwogU0VUIFRSQU5T QUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7CiBDT01NSVQ7CiAKQEAgLTM0OCwz ICszNDgsMjU0IEBAIERST1AgVEFCTEUgdDE7CiAtLWVjaG8gIwogLS1lY2hvICMgRW5kIG9mIHRl c3QgY2FzZXMgZm9yIEJ1ZyMyMDgzNwogLS1lY2hvICMKKworCistLWVjaG8gIworLS1lY2hvICMg V0wjNTk2OCBJbXBsZW1lbnQgU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCAoV1JJVEV8T05MWSk7Cist LWVjaG8gIworCistLWVjaG8gIworLS1lY2hvICMgVGVzdCAxOiBDaGVjayBzdXBwb3J0ZWQgc3lu dGF4CisKK1NUQVJUIFRSQU5TQUNUSU9OOworQ09NTUlUOworCitTVEFSVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitDT01N SVQ7CisKKy0tZXJyb3IgRVJfUEFSU0VfRVJST1IKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05M WSwgUkVBRCBXUklURTsKKworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZLCBXSVRIIENPTlNJ U1RFTlQgU05BUFNIT1Q7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEUs IFdJVEggQ09OU0lTVEVOVCBTTkFQU0hPVDsKK0NPTU1JVDsKKworU1RBUlQgVFJBTlNBQ1RJT04g V0lUSCBDT05TSVNURU5UIFNOQVBTSE9ULCBSRUFEIE9OTFk7CitDT01NSVQ7CisKK1NUQVJUIFRS QU5TQUNUSU9OIFdJVEggQ09OU0lTVEVOVCBTTkFQU0hPVCwgUkVBRCBXUklURTsKK0NPTU1JVDsK KworLS1lcnJvciBFUl9QQVJTRV9FUlJPUgorU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZLCBX SVRIIENPTlNJU1RFTlQgU05BUFNIT1QsIFJFQUQgV1JJVEU7CisKK1NFVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBXUklURTsKK1NFVCBUUkFOU0FDVElPTiBJ U09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFLCBSRUFEIE9OTFk7CitTRVQgVFJBTlNBQ1RJT04g SVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSwgUkVBRCBXUklURTsKK1NFVCBUUkFOU0FDVElP TiBSRUFEIE9OTFksIElTT0xBVElPTiBMRVZFTCBSRUFEIENPTU1JVFRFRDsKK1NFVCBUUkFOU0FD VElPTiBSRUFEIFdSSVRFLCBJU09MQVRJT04gTEVWRUwgUkVBRCBDT01NSVRURUQ7CistLWVjaG8g IyBUaGlzIGN1cnJlbnRseSBkb2VzIG5vdCBnaXZlIGEgcGFyc2VyIGVycm9yCitTRVQgVFJBTlNB Q1RJT04gUkVBRCBPTkxZLCBSRUFEIFdSSVRFOworCistLWVjaG8gIworLS1lY2hvICMgVGVzdCAy OiBDaGVjayBleHBsaWNpdCBhbmQgaW1wbGljaXQgc2V0dGluZyBvZiB2YXJpYWJsZS4KKworU0VU IFNFU1NJT04gVFJBTlNBQ1RJT04gUkVBRCBXUklURTsKK1NFTEVDVCBAQHR4X3JlYWRfb25seTsK KworU0VUIFNFU1NJT04gVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworU0VMRUNUIEBAdHhfcmVhZF9v bmx5OworCistLWVjaG8gIyBUaGlzIHNob3VsZCByZXNldCBhY2Nlc3MgbW9kZSB0byBSVworU0VU IFNFU1NJT04gVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK1NF TEVDVCBAQHR4X3JlYWRfb25seTsKKworU1RBUlQgVFJBTlNBQ1RJT047CistLWVjaG8gIyBOb3Qg YWxsb3dlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbgorLS1lcnJvciBFUl9DQU5UX0NIQU5HRV9UWF9D SEFSQUNURVJJU1RJQ1MKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CistLWVjaG8gIyBCdXQg dGhlc2UgYXJlIGFsbG93ZWQuCitTRVQgU0VTU0lPTiBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitT RVQgR0xPQkFMIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0NPTU1JVDsKKworU0VUIFNFU1NJT04g VFJBTlNBQ1RJT04gUkVBRCBXUklURTsKK1NFVCBHTE9CQUwgVFJBTlNBQ1RJT04gUkVBRCBXUklU RTsKKworLS1lY2hvICMKKy0tZWNobyAjIFRlc3QgMzogVGVzdCB0aGF0IHdyaXRlIG9wZXJhdGlv bnMgYXJlIHByb3Blcmx5IGJsb2NrZWQuCisKK0NSRUFURSBUQUJMRSB0MShhIElOVCk7CitDUkVB VEUgVEVNUE9SQVJZIFRBQkxFIHRlbXBfdDIoYSBJTlQpOworCitTVEFSVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CisKKy0tZWNobyAjIDE6IERETCBzaG91bGQgYmUgYmxvY2tlZCwgYWxzbyBvbiB0 ZW1wb3JhcnkgdGFibGVzLgorLS1lcnJvciBFUl9DQU5UX0VYRUNVVEVfSU5fUkVBRF9PTkxZX1RS QU5TQUNUSU9OCitDUkVBVEUgVEFCTEUgdDMoYSBJTlQpOworLS1lcnJvciBFUl9DQU5UX0VYRUNV VEVfSU5fUkVBRF9PTkxZX1RSQU5TQUNUSU9OCitBTFRFUiBUQUJMRSB0MSBDT01NRU5UICJUZXN0 IjsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorRFJP UCBUQUJMRSB0MTsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FD VElPTgorQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSB0ZW1wX3QzKGEgSU5UKTsKKy0tZXJyb3IgRVJf Q0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorRFJPUCBURU1QT1JBUlkgVEFC TEUgdGVtcF90MjsKKworLS1lcnJvciBFUl9DQU5UX0VYRUNVVEVfSU5fUkVBRF9PTkxZX1RSQU5T QUNUSU9OCitDUkVBVEUgRlVOQ1RJT04gZjEoKSBSRVRVUk5TIElOVCBSRVRVUk4gMTsKKy0tZXJy b3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorRFJPUCBGVU5DVElP TiBmMTsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgor Q1JFQVRFIFBST0NFRFVSRSBwMSgpIEJFR0lOIEVORDsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRF X0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorRFJPUCBQUk9DRURVUkUgcDE7CisKKy0tZXJyb3Ig RVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorQ1JFQVRFIFZJRVcgdjEg QVMgU0VMRUNUIDE7CitDT01NSVQ7CitDUkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgMTsKK1NUQVJU IFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURf T05MWV9UUkFOU0FDVElPTgorRFJPUCBWSUVXIHYxOworQ09NTUlUOworRFJPUCBWSUVXIHYxOwor U1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworCistLWVycm9yIEVSX0NBTlRfRVhFQ1VURV9J Tl9SRUFEX09OTFlfVFJBTlNBQ1RJT04KK1JFTkFNRSBUQUJMRSB0MSBUTyB0MjsKKy0tZXJyb3Ig RVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorVFJVTkNBVEUgVEFCTEUg dDE7CisKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgor Q1JFQVRFIERBVEFCQVNFIGRiMTsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05M WV9UUkFOU0FDVElPTgorRFJPUCBEQVRBQkFTRSBkYjE7CisKKy0tZWNobyAjIDI6IERNTCBzaG91 bGQgYmUgYmxvY2tlZCBvbiBub24tdGVtcG9yYXJ5IHRhYmxlcy4KKy0tZXJyb3IgRVJfQ0FOVF9F WEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorSU5TRVJUIElOVE8gdDEgVkFMVUVTICgx KSwgKDIpOworLS1lcnJvciBFUl9DQU5UX0VYRUNVVEVfSU5fUkVBRF9PTkxZX1RSQU5TQUNUSU9O CitVUERBVEUgdDEgU0VUIGE9IDM7CistLWVycm9yIEVSX0NBTlRfRVhFQ1VURV9JTl9SRUFEX09O TFlfVFJBTlNBQ1RJT04KK0RFTEVURSBGUk9NIHQxOworCitJTlNFUlQgSU5UTyB0ZW1wX3QyIFZB TFVFUyAoMSksICgyKTsKK1VQREFURSB0ZW1wX3QyIFNFVCBhPSAzOworREVMRVRFIEZST00gdGVt cF90MjsKKworLS1lY2hvICMgMzogUXVlcmllcyBzaG91bGQgbm90IGJlIGJsb2NrZWQuCitTRUxF Q1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSB0ZW1wX3QyOworCitIQU5ETEVSIHQxIE9QRU47 CitIQU5ETEVSIHQxIFJFQUQgRklSU1Q7CitIQU5ETEVSIHQxIENMT1NFOworCitIQU5ETEVSIHRl bXBfdDIgT1BFTjsKK0hBTkRMRVIgdGVtcF90MiBSRUFEIEZJUlNUOworSEFORExFUiB0ZW1wX3Qy IENMT1NFOworCistLWVjaG8gIyA0OiBQcmVwYXJlZCBzdGF0ZW1lbnRzCistLWVycm9yIEVSX0NB TlRfRVhFQ1VURV9JTl9SRUFEX09OTFlfVFJBTlNBQ1RJT04KK1BSRVBBUkUgc3RtdCBGUk9NICJE RUxFVEUgRlJPTSB0MSI7CisKK1BSRVBBUkUgc3RtdCBGUk9NICJERUxFVEUgRlJPTSB0ZW1wX3Qy IjsKK0VYRUNVVEUgc3RtdDsKK0RFQUxMT0NBVEUgUFJFUEFSRSBzdG10OworCistLWVjaG8gIyA1 OiBTdG9yZWQgcm91dGluZXMKKyMgVGVtcG9yYXJpbHkgY29tbWl0IHNvIHRoYXQgRERMIGNhbiBi ZSBleGVjdXRlZC4KK0NPTU1JVDsKKworZGVsaW1pdGVyIHw7CitDUkVBVEUgRlVOQ1RJT04gZjEo KSBSRVRVUk5TIElOVAorQkVHSU4KKyAgREVMRVRFIEZST00gdDE7CisgIFJFVFVSTiAxOworRU5E fAorCitDUkVBVEUgRlVOQ1RJT04gZjIoKSBSRVRVUk5TIElOVAorQkVHSU4KKyAgREVMRVRFIEZS T00gdGVtcF90MjsKKyAgUkVUVVJOIDE7CitFTkR8CitkZWxpbWl0ZXIgO3wKKworQ1JFQVRFIFBS T0NFRFVSRSBwMSgpIERFTEVURSBGUk9NIHQxOworQ1JFQVRFIFBST0NFRFVSRSBwMigpIERFTEVU RSBGUk9NIHRlbXBfdDI7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitTRUxFQ1Qg ZjEoKTsKK1NFTEVDVCBmMigpOworQ0FMTCBwMSgpOworQ0FMTCBwMigpOworQ09NTUlUOworCitE Uk9QIEZVTkNUSU9OIGYxOworRFJPUCBGVU5DVElPTiBmMjsKK0RST1AgUFJPQ0VEVVJFIHAxOwor RFJPUCBQUk9DRURVUkUgcDI7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CisKKy0tZWNo byAjIDY6IFZpZXdzCisjIFRlbXBvcmFyaWx5IGNvbW1pdCBzbyB0aGF0IERETCBjYW4gYmUgZXhl Y3V0ZWQuCitDT01NSVQ7CisKK0NSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCBhIEZST00gdDE7Cisj IE5vdCBzdXBwb3J0ZWQgZnJvbSB0ZW1wb3JhcnkgdGFibGVzLgorCitTVEFSVCBUUkFOU0FDVElP TiBSRUFEIE9OTFk7CistLWVycm9yIEVSX0NBTlRfRVhFQ1VURV9JTl9SRUFEX09OTFlfVFJBTlNB Q1RJT04KK0lOU0VSVCBJTlRPIHYxIFZBTFVFUyAoMSksICgyKTsKK1NFTEVDVCAqIEZST00gdjE7 CitDT01NSVQ7CisKK0RST1AgVklFVyB2MTsKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsK KworLS1lY2hvICMgNzogTE9DSyBUQUJMRQorLS1lcnJvciBFUl9DQU5UX0VYRUNVVEVfSU5fUkVB RF9PTkxZX1RSQU5TQUNUSU9OCitMT0NLIFRBQkxFIHQxIFdSSVRFOworCitMT0NLIFRBQkxFIHQx IFJFQUQ7CitVTkxPQ0sgVEFCTEVTOworCitDT01NSVQ7CitEUk9QIFRBQkxFIHRlbXBfdDIsIHQx OworCistLWVjaG8gIworLS1lY2hvICMgVGVzdCA0OiBTRVQgVFJBTlNBQ1RJT04sIENIQUlOaW5n IHRyYW5zYWN0aW9ucworCitDUkVBVEUgVEFCTEUgdDEoYSBJTlQpOworCitTRVQgU0VTU0lPTiBU UkFOU0FDVElPTiBSRUFEIE9OTFk7CitTVEFSVCBUUkFOU0FDVElPTjsKKy0tZXJyb3IgRVJfQ0FO VF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElPTgorREVMRVRFIEZST00gdDE7CitDT01N SVQ7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIFdSSVRFOworREVMRVRFIEZST00gdDE7CitDT01N SVQ7CisKK1NFVCBTRVNTSU9OIFRSQU5TQUNUSU9OIFJFQUQgV1JJVEU7CitTRVQgVFJBTlNBQ1RJ T04gUkVBRCBPTkxZOworU1RBUlQgVFJBTlNBQ1RJT047CistLWVycm9yIEVSX0NBTlRfRVhFQ1VU RV9JTl9SRUFEX09OTFlfVFJBTlNBQ1RJT04KK0RFTEVURSBGUk9NIHQxOworQ09NTUlUOworU1RB UlQgVFJBTlNBQ1RJT04gUkVBRCBXUklURTsKK0RFTEVURSBGUk9NIHQxOworQ09NTUlUOworCitT VEFSVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitTRUxFQ1QgKiBGUk9NIHQxOworQ09NTUlUIEFO RCBDSEFJTjsKKy0tZXJyb3IgRVJfQ0FOVF9FWEVDVVRFX0lOX1JFQURfT05MWV9UUkFOU0FDVElP TgorREVMRVRFIEZST00gdDE7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05M WTsKK1NFTEVDVCAqIEZST00gdDE7CitST0xMQkFDSyBBTkQgQ0hBSU47CistLWVycm9yIEVSX0NB TlRfRVhFQ1VURV9JTl9SRUFEX09OTFlfVFJBTlNBQ1RJT04KK0RFTEVURSBGUk9NIHQxOworQ09N TUlUOworCitEUk9QIFRBQkxFIHQxOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9y ZWFkX29ubHkudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3JlYWRfb25seS50ZXN0CTIwMDktMDMt MDYgMTQ6NTY6MTcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3JlYWRfb25seS50ZXN0CTIwMTIt MDItMDkgMTY6NDQ6NDYgKzAwMDAKQEAgLTMwMyw2ICszMDMsNDkgQEAgZmx1c2ggcHJpdmlsZWdl czsKIGRyb3AgZGF0YWJhc2UgbXlzcWx0ZXN0X2RiMTsKIHNldCBnbG9iYWwgcmVhZF9vbmx5PSBA c3RhcnRfcmVhZF9vbmx5OwogCisKKy0tZWNobyAjCistLWVjaG8gIyBXTCM1OTY4IEltcGxlbWVu dCBTVEFSVCBUUkFOU0FDVElPTiBSRUFEIChXUklURXxPTkxZKTsKKy0tZWNobyAjCisKKy0tZWNo byAjCistLWVjaG8gIyBUZXN0IGludGVyYWN0aW9uIHdpdGggcmVhZF9vbmx5IHN5c3RlbSB2YXJp YWJsZS4KKworQ1JFQVRFIFVTRVIgdXNlcjE7Citjb25uZWN0IChjb24xLCBsb2NhbGhvc3QsIHVz ZXIxKTsKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKworU0VUIEdMT0JBTCByZWFkX29ubHk9IDE7CisK Ky0tZWNobyAjIEFsbCBhbGxvd2VkIHdpdGggc3VwZXIgcHJpdmlsZWdlCitTVEFSVCBUUkFOU0FD VElPTjsKK0NPTU1JVDsKKworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworQ09NTUlUOwor CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIFdSSVRFOworQ09NTUlUOworCistLWVjaG8gIyBFeHBs aWNpdCBSVyB0cmFucyBpcyBub3QgYWxsb3dlZCB3aXRob3V0IHN1cGVyIHByaXZpbGVnZQorY29u bmVjdGlvbiBjb24xOworU1RBUlQgVFJBTlNBQ1RJT047CitDT01NSVQ7CisKK1NUQVJUIFRSQU5T QUNUSU9OIFJFQUQgT05MWTsKK0NPTU1JVDsKKworLS1lcnJvciBFUl9PUFRJT05fUFJFVkVOVFNf U1RBVEVNRU5UCitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIFdSSVRFOworQ09NTUlUOworZGlzY29u bmVjdCBjb24xOworLS1zb3VyY2UgaW5jbHVkZS93YWl0X3VudGlsX2Rpc2Nvbm5lY3RlZC5pbmMK K2Nvbm5lY3Rpb24gZGVmYXVsdDsKK0RST1AgVVNFUiB1c2VyMTsKKworU0VUIEdMT0JBTCByZWFk X29ubHk9IDA7CisKKwogIyBXYWl0IHRpbGwgYWxsIGRpc2Nvbm5lY3RzIGFyZSBjb21wbGV0ZWQK IC0tc291cmNlIGluY2x1ZGUvd2FpdF91bnRpbF9jb3VudF9zZXNzaW9ucy5pbmMKIAoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NxbC9oYW5kbGVyLmNjJwotLS0gYS9zcWwvaGFuZGxlci5jYwkyMDEyLTAy LTAyIDE2OjU2OjM2ICswMDAwCisrKyBiL3NxbC9oYW5kbGVyLmNjCTIwMTItMDItMDkgMTY6NDQ6 NDYgKzAwMDAKQEAgLTEwMTQsNiArMTAxNCw4IEBAIHZvaWQgdHJhbnNfcmVnaXN0ZXJfaGEoVEhE ICp0aGQsIGJvb2wgYWwKICAgewogICAgIHRyYW5zPSAmdGhkLT50cmFuc2FjdGlvbi5hbGw7CiAg ICAgdGhkLT5zZXJ2ZXJfc3RhdHVzfD0gU0VSVkVSX1NUQVRVU19JTl9UUkFOUzsKKyAgICBpZiAo dGhkLT50eF9yZWFkX29ubHkpCisgICAgICB0aGQtPnNlcnZlcl9zdGF0dXN8PSBTRVJWRVJfU1RB VFVTX0lOX1RSQU5TX1JFQURPTkxZOwogICB9CiAgIGVsc2UKICAgICB0cmFucz0gJnRoZC0+dHJh bnNhY3Rpb24uc3RtdDsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxlci5oJwotLS0gYS9z cWwvaGFuZGxlci5oCTIwMTItMDEtMjYgMTI6NTM6MzggKzAwMDAKKysrIGIvc3FsL2hhbmRsZXIu aAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0yOTksNyArMjk5LDkgQEAKICNkZWZpbmUg SEFfQ0FDSEVfVEJMX1RSQU5TQUNUICAgIDQKIAogLyogT3B0aW9ucyBvZiBTVEFSVCBUUkFOU0FD VElPTiBzdGF0ZW1lbnQgKGFuZCBsYXRlciBvZiBTRVQgVFJBTlNBQ1RJT04gc3RtdCkgKi8KLSNk ZWZpbmUgTVlTUUxfU1RBUlRfVFJBTlNfT1BUX1dJVEhfQ09OU19TTkFQU0hPVCAxCitzdGF0aWMg Y29uc3QgdWludCBNWVNRTF9TVEFSVF9UUkFOU19PUFRfV0lUSF9DT05TX1NOQVBTSE9UID0gMTsK K3N0YXRpYyBjb25zdCB1aW50IE1ZU1FMX1NUQVJUX1RSQU5TX09QVF9SRUFEX09OTFkgICAgICAg ICAgPSAyOworc3RhdGljIGNvbnN0IHVpbnQgTVlTUUxfU1RBUlRfVFJBTlNfT1BUX1JFQURfV1JJ VEUgICAgICAgICA9IDQ7CiAKIC8qIEZsYWdzIGZvciBtZXRob2QgaXNfZmF0YWxfZXJyb3IgKi8K ICNkZWZpbmUgSEFfQ0hFQ0tfRFVQX0tFWSAxCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2xleC5o JwotLS0gYS9zcWwvbGV4LmgJMjAxMS0xMS0wNCAxNjowNzozNyArMDAwMAorKysgYi9zcWwvbGV4 LmgJMjAxMi0wMi0wOSAxNjo0NDo0NiArMDAwMApAQCAtMzk3LDYgKzM5Nyw3IEBAIHN0YXRpYyBT WU1CT0wgc3ltYm9sc1tdID0gewogICB7ICJPTiIsCQlTWU0oT04pfSwKICAgeyAiT05FIiwgICAg ICAgICAgICAgIFNZTShPTkVfU1lNKX0sCiAgIHsgIk9ORV9TSE9UIiwJCVNZTShPTkVfU0hPVF9T WU0pfSwKKyAgeyAiT05MWSIsICAgICAgICAgICAgIFNZTShPTkxZX1NZTSl9LAogICB7ICJPUEVO IiwJCVNZTShPUEVOX1NZTSl9LAogICB7ICJPUFRJTUlaRSIsCQlTWU0oT1BUSU1JWkUpfSwKICAg eyAiT1BUSU9OUyIsCQlTWU0oT1BUSU9OU19TWU0pfSwKCj09PSBtb2RpZmllZCBmaWxlICdzcWwv bG9jay5jYycKLS0tIGEvc3FsL2xvY2suY2MJMjAxMS0xMS0yOCAwNzo0MjoxOCArMDAwMAorKysg Yi9zcWwvbG9jay5jYwkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC03NzgsNiArNzc4LDEz IEBAIGJvb2wgbG9ja19zY2hlbWFfbmFtZShUSEQgKnRoZCwgY29uc3QgY2gKICAgTURMX3JlcXVl c3QgZ2xvYmFsX3JlcXVlc3Q7CiAgIE1ETF9yZXF1ZXN0IG1kbF9yZXF1ZXN0OwogCisgIC8qIERE TCBpcyBub3QgYWxsb3dlZCBpbiBhIHJlYWQgb25seSB0cmFuc2FjdGlvbi4gKi8KKyAgaWYgKHRo ZC0+dHhfcmVhZF9vbmx5KQorICB7CisgICAgbXlfZXJyb3IoRVJfQ0FOVF9FWEVDVVRFX0lOX1JF QURfT05MWV9UUkFOU0FDVElPTiwgTVlGKDApKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCiAg IGlmICh0aGQtPmxvY2tlZF90YWJsZXNfbW9kZSkKICAgewogICAgIG15X21lc3NhZ2UoRVJfTE9D S19PUl9BQ1RJVkVfVFJBTlNBQ1RJT04sCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL215c3FsZC5j YycKLS0tIGEvc3FsL215c3FsZC5jYwkyMDEyLTAxLTMwIDA1OjM0OjMyICswMDAwCisrKyBiL3Nx bC9teXNxbGQuY2MJMjAxMi0wMi0wOSAxNjo0NDo0NiArMDAwMApAQCAtNjQ0Nyw2ICs2NDQ3LDEy IEBAIHN0cnVjdCBteV9vcHRpb24gbXlfbG9uZ19vcHRpb25zW109CiAgICAmZ2xvYmFsX3N5c3Rl bV92YXJpYWJsZXMudHhfaXNvbGF0aW9uLAogICAgJmdsb2JhbF9zeXN0ZW1fdmFyaWFibGVzLnR4 X2lzb2xhdGlvbiwgJnR4X2lzb2xhdGlvbl90eXBlbGliLAogICAgR0VUX0VOVU0sIFJFUVVJUkVE X0FSRywgSVNPX1JFUEVBVEFCTEVfUkVBRCwgMCwgMCwgMCwgMCwgMH0sCisgIHsidHJhbnNhY3Rp b24tcmVhZC1vbmx5IiwgMCwKKyAgICJEZWZhdWx0IHRyYW5zYWN0aW9uIGFjY2VzcyBtb2RlLiAi CisgICAiVHJ1ZSBpZiB0cmFuc2FjdGlvbnMgYXJlIHJlYWQtb25seS4iLAorICAgJmdsb2JhbF9z eXN0ZW1fdmFyaWFibGVzLnR4X3JlYWRfb25seSwKKyAgICZnbG9iYWxfc3lzdGVtX3ZhcmlhYmxl cy50eF9yZWFkX29ubHksIDAsCisgICBHRVRfQk9PTCwgTk9fQVJHLCAwLCAwLCAwLCAwLCAwLCAw fSwKICAgeyJ1c2VyIiwgJ3UnLCAiUnVuIG15c3FsZCBkYWVtb24gYXMgdXNlci4iLCAwLCAwLCAw LCBHRVRfU1RSLCBSRVFVSVJFRF9BUkcsCiAgICAwLCAwLCAwLCAwLCAwLCAwfSwKICAgeyJ2ZXJi b3NlIiwgJ3YnLCAiVXNlZCB3aXRoIC0taGVscCBvcHRpb24gZm9yIGRldGFpbGVkIGhlbHAuIiwK Cj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0JwotLS0gYS9zcWwv c2hhcmUvZXJybXNnLXV0ZjgudHh0CTIwMTItMDEtMTkgMTU6NTU6MzYgKzAwMDAKKysrIGIvc3Fs L3NoYXJlL2Vycm1zZy11dGY4LnR4dAkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC01OTg1 LDkgKzU5ODUsOCBAQCBFUl9XUk9OR19QQVJUSVRJT05fTkFNRQogICAgICAgICBlbmcgIkluY29y cmVjdCBwYXJ0aXRpb24gbmFtZSIKICAgICAgICAgZ2VyICJGYWxzY2hlciBQYXJ0aXRpb25zbmFt ZSIKICAgICAgICAgc3dlICJGZWxha3RpZ3QgcGFydGl0aW9uc25hbW4iCi1FUl9DQU5UX0NIQU5H RV9UWF9JU09MQVRJT04gMjUwMDEKLSAgICAgICAgZW5nICJUcmFuc2FjdGlvbiBpc29sYXRpb24g bGV2ZWwgY2FuJ3QgYmUgY2hhbmdlZCB3aGlsZSBhIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNz IgotICAgICAgICBnZXIgIlRyYW5zYWt0aW9uc2lzb2xhdGlvbnNlYmVuZSBrYW5uIHfDpGhyZW5k IGVpbmVyIGxhdWZlbmRlbiBUcmFuc2FrdGlvbiBuaWNodCBnZcOkbmRlcnQgd2VyZGVuIgorRVJf Q0FOVF9DSEFOR0VfVFhfQ0hBUkFDVEVSSVNUSUNTIDI1MDAxCisgICAgICAgIGVuZyAiVHJhbnNh Y3Rpb24gY2hhcmFjdGVyaXN0aWNzIGNhbid0IGJlIGNoYW5nZWQgd2hpbGUgYSB0cmFuc2FjdGlv biBpcyBpbiBwcm9ncmVzcyIKIEVSX0RVUF9FTlRSWV9BVVRPSU5DUkVNRU5UX0NBU0UKICAgICAg ICAgZW5nICJBTFRFUiBUQUJMRSBjYXVzZXMgYXV0b19pbmNyZW1lbnQgcmVzZXF1ZW5jaW5nLCBy ZXN1bHRpbmcgaW4gZHVwbGljYXRlIGVudHJ5ICclLS4xOTJzJyBmb3Iga2V5ICclLS4xOTJzJyIK ICAgICAgICAgZ2VyICJBTFRFUiBUQUJMRSBmw7xocnQgenVyIE5ldXNlcXVlbnppZXJ1bmcgdm9u IGF1dG9faW5jcmVtZW50LCB3b2R1cmNoIGRlciBkb3BwZWx0ZSBFaW50cmFnICclLS4xOTJzJyBm w7xyIFNjaGzDvHNzZWwgJyUtLjE5MnMnIGF1ZnRyaXR0IgpAQCAtNjYyNCwzICs2NjIzLDYgQEAg RVJfSU5OT0RCX0ZUX0xJTUlUCiAKIEVSX0lOTk9EQl9OT19GVF9URU1QX1RBQkxFCiAgIGVuZyAi Q2Fubm90IGNyZWF0ZSBGVUxMVEVYVCBpbmRleCBvbiB0ZW1wb3JhcnkgSW5ub0RCIHRhYmxlIgor CitFUl9DQU5UX0VYRUNVVEVfSU5fUkVBRF9PTkxZX1RSQU5TQUNUSU9OCisgIGVuZyAiQ2Fubm90 IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLiIKCj09PSBtb2Rp ZmllZCBmaWxlICdzcWwvc3FsX2Jhc2UuY2MnCi0tLSBhL3NxbC9zcWxfYmFzZS5jYwkyMDEyLTAx LTMxIDE1OjE2OjE2ICswMDAwCisrKyBiL3NxbC9zcWxfYmFzZS5jYwkyMDEyLTAyLTA5IDE2OjQ0 OjQ2ICswMDAwCkBAIC0yODcwLDYgKzI4NzAsMTQgQEAgYm9vbCBvcGVuX3RhYmxlKFRIRCAqdGhk LCBUQUJMRV9MSVNUICp0YQogCiAgIGlmICghIChmbGFncyAmIE1ZU1FMX09QRU5fSEFTX01ETF9M T0NLKSkKICAgeworICAgIC8qIENoZWNrIGlmIHdlJ3JlIHRyeWluZyB0byB0YWtlIGEgd3JpdGUg bG9jayBpbiBhIHJlYWQgb25seSB0cmFuc2FjdGlvbi4gKi8KKyAgICBpZiAodGFibGVfbGlzdC0+ bWRsX3JlcXVlc3QudHlwZSA+PSBNRExfU0hBUkVEX1dSSVRFICYmCisgICAgICAgIHRoZC0+dHhf cmVhZF9vbmx5KQorICAgIHsKKyAgICAgIG15X2Vycm9yKEVSX0NBTlRfRVhFQ1VURV9JTl9SRUFE X09OTFlfVFJBTlNBQ1RJT04sIE1ZRigwKSk7CisgICAgICBEQlVHX1JFVFVSTih0cnVlKTsKKyAg ICB9CisKICAgICAvKgogICAgICAgV2UgYXJlIG5vdCB1bmRlciBMT0NLIFRBQkxFUyBhbmQgZ29p bmcgdG8gYWNxdWlyZSB3cml0ZS1sb2NrLwogICAgICAgbW9kaWZ5IHRoZSBiYXNlIHRhYmxlLiBX ZSBuZWVkIHRvIGFjcXVpcmUgcHJvdGVjdGlvbiBhZ2FpbnN0CkBAIC00NzYzLDEzICs0NzcxLDI4 IEBAIGxvY2tfdGFibGVfbmFtZXMoVEhEICp0aGQsCiAgIGZvciAodGFibGU9IHRhYmxlc19zdGFy dDsgdGFibGUgJiYgdGFibGUgIT0gdGFibGVzX2VuZDsKICAgICAgICB0YWJsZT0gdGFibGUtPm5l eHRfZ2xvYmFsKQogICB7Ci0gICAgaWYgKHRhYmxlLT5tZGxfcmVxdWVzdC50eXBlIDwgTURMX1NI QVJFRF9OT19XUklURSB8fAotICAgICAgICB0YWJsZS0+b3Blbl90eXBlID09IE9UX1RFTVBPUkFS WV9PTkxZIHx8CisgICAgaWYgKHRhYmxlLT5tZGxfcmVxdWVzdC50eXBlIDwgTURMX1NIQVJFRF9O T19XUklURSkKKyAgICAgIGNvbnRpbnVlOworCisgICAgaWYgKHRhYmxlLT5vcGVuX3R5cGUgPT0g T1RfVEVNUE9SQVJZX09OTFkgfHwKICAgICAgICAgKHRhYmxlLT5vcGVuX3R5cGUgPT0gT1RfVEVN UE9SQVJZX09SX0JBU0UgJiYgaXNfdGVtcG9yYXJ5X3RhYmxlKHRhYmxlKSkpCiAgICAgeworICAg ICAgaWYgKHRhYmxlLT5tZGxfcmVxdWVzdC50eXBlID09IE1ETF9FWENMVVNJVkUgJiYgdGhkLT50 eF9yZWFkX29ubHkpCisgICAgICB7CisgICAgICAgIC8qIFRlbXBvcmFyeSB0YWJsZSBEREwgaXMg bm90IGFsbG93ZWQgaW4gYSByZWFkIG9ubHkgdHJhbnNhY3Rpb24uICovCisgICAgICAgIG15X2Vy cm9yKEVSX0NBTlRfRVhFQ1VURV9JTl9SRUFEX09OTFlfVFJBTlNBQ1RJT04sIE1ZRigwKSk7Cisg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQogICAgICAgY29udGludWU7CiAgICAgfQogCisg ICAgLyogV3JpdGUgbG9jayBvbiBub3JtYWwgdGFibGVzIGlzIG5vdCBhbGxvd2VkIGluIGEgcmVh ZCBvbmx5IHRyYW5zYWN0aW9uLiAqLworICAgIGlmICh0aGQtPnR4X3JlYWRfb25seSkKKyAgICB7 CisgICAgICBteV9lcnJvcihFUl9DQU5UX0VYRUNVVEVfSU5fUkVBRF9PTkxZX1RSQU5TQUNUSU9O LCBNWUYoMCkpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgaWYgKCEgKGZsYWdz ICYgTVlTUUxfT1BFTl9TS0lQX1NDT1BFRF9NRExfTE9DSykgJiYgc2NoZW1hX3NldC5pbnNlcnQo dGFibGUpKQogICAgICAgcmV0dXJuIFRSVUU7CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3Fs X2NsYXNzLmNjJwotLS0gYS9zcWwvc3FsX2NsYXNzLmNjCTIwMTItMDEtMzEgMTU6MTY6MTYgKzAw MDAKKysrIGIvc3FsL3NxbF9jbGFzcy5jYwkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC02 NDEsNiArNjQxLDEyIEBAIGludCB0aGRfdHhfaXNvbGF0aW9uKGNvbnN0IFRIRCAqdGhkKQogfQog CiBleHRlcm4gIkMiCitpbnQgdGhkX3R4X2lzX3JlYWRfb25seShjb25zdCBUSEQgKnRoZCkKK3sK KyAgcmV0dXJuIChpbnQpIHRoZC0+dHhfcmVhZF9vbmx5OworfQorCitleHRlcm4gIkMiCiB2b2lk IHRoZF9pbmNfcm93X2NvdW50KFRIRCAqdGhkKQogewogICB0aGQtPmdldF9zdG10X2RhKCktPmlu Y19jdXJyZW50X3Jvd19mb3Jfd2FybmluZygpOwpAQCAtMTI0NSw2ICsxMjUxLDcgQEAgdm9pZCBU SEQ6OmluaXQodm9pZCkKIAkJCVRMX1dSSVRFX0xPV19QUklPUklUWSA6CiAJCQlUTF9XUklURSk7 CiAgIHR4X2lzb2xhdGlvbj0gKGVudW1fdHhfaXNvbGF0aW9uKSB2YXJpYWJsZXMudHhfaXNvbGF0 aW9uOworICB0eF9yZWFkX29ubHk9IHZhcmlhYmxlcy50eF9yZWFkX29ubHk7CiAgIHVwZGF0ZV9j aGFyc2V0KCk7CiAgIHJlc2V0X2N1cnJlbnRfc3RtdF9iaW5sb2dfZm9ybWF0X3JvdygpOwogICBt ZW1zZXQoJnN0YXR1c192YXIsIDAsIHNpemVvZihzdGF0dXNfdmFyKSk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL3NxbF9jbGFzcy5oJwotLS0gYS9zcWwvc3FsX2NsYXNzLmgJMjAxMi0wMS0zMSAx NToxNjoxNiArMDAwMAorKysgYi9zcWwvc3FsX2NsYXNzLmgJMjAxMi0wMi0wOSAxNjo0NDo0NiAr MDAwMApAQCAtNzg4LDYgKzc4OCw3IEBAIHR5cGVkZWYgc3RydWN0IHN5c3RlbV92YXJpYWJsZXMK ICAgKi8KICAgbXlfdGhyZWFkX2lkIHBzZXVkb190aHJlYWRfaWQ7CiAKKyAgbXlfYm9vbCB0eF9y ZWFkX29ubHk7CiAgIG15X2Jvb2wgbG93X3ByaW9yaXR5X3VwZGF0ZXM7CiAgIG15X2Jvb2wgbmV3 X21vZGU7CiAgIG15X2Jvb2wgcXVlcnlfY2FjaGVfd2xvY2tfaW52YWxpZGF0ZTsKQEAgLTI4NDgs NiArMjg0OSwxMSBAQCBwdWJsaWM6CiAgICAgYWJvdmUuCiAgICovCiAgIGVudW1fdHhfaXNvbGF0 aW9uIHR4X2lzb2xhdGlvbjsKKyAgLyoKKyAgICBDdXJyZW50IG9yIG5leHQgdHJhbnNhY3Rpb24g YWNjZXNzIG1vZGUuCisgICAgU2VlIGNvbW1lbnQgYWJvdmUgcmVnYXJkaW5nIHR4X2lzb2xhdGlv bi4KKyAgKi8KKyAgYm9vbCAgICAgICAgICAgICAgdHhfcmVhZF9vbmx5OwogICBlbnVtX2NoZWNr X2ZpZWxkcyBjb3VudF9jdXRlZF9maWVsZHM7CiAKICAgRFlOQU1JQ19BUlJBWSB1c2VyX3Zhcl9l dmVudHM7ICAgICAgICAvKiBGb3IgdXNlciB2YXJpYWJsZXMgcmVwbGljYXRpb24gKi8KCj09PSBt b2RpZmllZCBmaWxlICdzcWwvc3FsX2xleC5oJwotLS0gYS9zcWwvc3FsX2xleC5oCTIwMTItMDEt MDUgMTA6MTI6NDcgKzAwMDAKKysrIGIvc3FsL3NxbF9sZXguaAkyMDEyLTAyLTA5IDE2OjQ0OjQ2 ICswMDAwCkBAIC0yMjYwLDYgKzIyNjAsNyBAQCBzdHJ1Y3QgTEVYOiBwdWJsaWMgUXVlcnlfdGFi bGVzX2xpc3QKICAgYm9vbCBkcm9wX2lmX2V4aXN0cywgZHJvcF90ZW1wb3JhcnksIGxvY2FsX2Zp bGUsIG9uZV9zaG90X3NldDsKICAgYm9vbCBhdXRvY29tbWl0OwogICBib29sIHZlcmJvc2UsIG5v X3dyaXRlX3RvX2JpbmxvZzsKKyAgYm9vbCB0eF9yZWFkX29ubHk7CiAKICAgZW51bSBlbnVtX3ll c19ub191bmtub3duIHR4X2NoYWluLCB0eF9yZWxlYXNlOwogICBib29sIHNhZmVfdG9fY2FjaGVf cXVlcnk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9wYXJzZS5jYycKLS0tIGEvc3FsL3Nx bF9wYXJzZS5jYwkyMDEyLTAxLTMxIDE1OjE2OjE2ICswMDAwCisrKyBiL3NxbC9zcWxfcGFyc2Uu Y2MJMjAxMi0wMi0wOSAxNjo0NDo0NiArMDAwMApAQCAtNDAwMiw4ICs0MDAyLDkgQEAgZW5kX3dp dGhfcmVzdG9yZV9saXN0OgogICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgLyogUmVzZXQg dGhlIGlzb2xhdGlvbiBsZXZlbCBpZiBubyBjaGFpbmluZyB0cmFuc2FjdGlvbi4gKi8KKyAgICAg IC8qIFJlc2V0IHRoZSBpc29sYXRpb24gbGV2ZWwgYW5kIGFjY2VzcyBtb2RlIGlmIG5vIGNoYWlu aW5nIHRyYW5zYWN0aW9uLiovCiAgICAgICB0aGQtPnR4X2lzb2xhdGlvbj0gKGVudW1fdHhfaXNv bGF0aW9uKSB0aGQtPnZhcmlhYmxlcy50eF9pc29sYXRpb247CisgICAgICB0aGQtPnR4X3JlYWRf b25seT0gdGhkLT52YXJpYWJsZXMudHhfcmVhZF9vbmx5OwogICAgIH0KICAgICAvKiBEaXNjb25u ZWN0IHRoZSBjdXJyZW50IGNsaWVudCBjb25uZWN0aW9uLiAqLwogICAgIGlmICh0eF9yZWxlYXNl KQpAQCAtNDAzMiw4ICs0MDMzLDkgQEAgZW5kX3dpdGhfcmVzdG9yZV9saXN0OgogICAgIH0KICAg ICBlbHNlCiAgICAgewotICAgICAgLyogUmVzZXQgdGhlIGlzb2xhdGlvbiBsZXZlbCBpZiBubyBj aGFpbmluZyB0cmFuc2FjdGlvbi4gKi8KKyAgICAgIC8qIFJlc2V0IHRoZSBpc29sYXRpb24gbGV2 ZWwgYW5kIGFjY2VzcyBtb2RlIGlmIG5vIGNoYWluaW5nIHRyYW5zYWN0aW9uLiovCiAgICAgICB0 aGQtPnR4X2lzb2xhdGlvbj0gKGVudW1fdHhfaXNvbGF0aW9uKSB0aGQtPnZhcmlhYmxlcy50eF9p c29sYXRpb247CisgICAgICB0aGQtPnR4X3JlYWRfb25seT0gdGhkLT52YXJpYWJsZXMudHhfcmVh ZF9vbmx5OwogICAgIH0KICAgICAvKiBEaXNjb25uZWN0IHRoZSBjdXJyZW50IGNsaWVudCBjb25u ZWN0aW9uLiAqLwogICAgIGlmICh0eF9yZWxlYXNlKQpAQCAtNDU1Niw5ICs0NTU4LDEwIEBAIGNy ZWF0ZV9zcF9lcnJvcjoKICAgICB0aGQtPm1kbF9jb250ZXh0LnJlbGVhc2VfdHJhbnNhY3Rpb25h bF9sb2NrcygpOwogICAgIC8qCiAgICAgICBXZSd2ZSBqdXN0IGRvbmUgYSBjb21taXQsIHJlc2V0 IHRyYW5zYWN0aW9uCi0gICAgICBpc29sYXRpb24gbGV2ZWwgdG8gdGhlIHNlc3Npb24gZGVmYXVs dC4KKyAgICAgIGlzb2xhdGlvbiBsZXZlbCBhbmQgYWNjZXNzIG1vZGUgdG8gdGhlIHNlc3Npb24g ZGVmYXVsdC4KICAgICAqLwogICAgIHRoZC0+dHhfaXNvbGF0aW9uPSAoZW51bV90eF9pc29sYXRp b24pIHRoZC0+dmFyaWFibGVzLnR4X2lzb2xhdGlvbjsKKyAgICB0aGQtPnR4X3JlYWRfb25seT0g dGhkLT52YXJpYWJsZXMudHhfcmVhZF9vbmx5OwogICAgIG15X29rKHRoZCk7CiAgICAgYnJlYWs7 CiAgIGNhc2UgU1FMQ09NX1hBX1JPTExCQUNLOgpAQCAtNDU2Nyw5ICs0NTcwLDEwIEBAIGNyZWF0 ZV9zcF9lcnJvcjoKICAgICB0aGQtPm1kbF9jb250ZXh0LnJlbGVhc2VfdHJhbnNhY3Rpb25hbF9s b2NrcygpOwogICAgIC8qCiAgICAgICBXZSd2ZSBqdXN0IGRvbmUgYSByb2xsYmFjaywgcmVzZXQg dHJhbnNhY3Rpb24KLSAgICAgIGlzb2xhdGlvbiBsZXZlbCB0byB0aGUgc2Vzc2lvbiBkZWZhdWx0 LgorICAgICAgaXNvbGF0aW9uIGxldmVsIGFuZCBhY2Nlc3MgbW9kZSB0byB0aGUgc2Vzc2lvbiBk ZWZhdWx0LgogICAgICovCiAgICAgdGhkLT50eF9pc29sYXRpb249IChlbnVtX3R4X2lzb2xhdGlv bikgdGhkLT52YXJpYWJsZXMudHhfaXNvbGF0aW9uOworICAgIHRoZC0+dHhfcmVhZF9vbmx5PSB0 aGQtPnZhcmlhYmxlcy50eF9yZWFkX29ubHk7CiAgICAgbXlfb2sodGhkKTsKICAgICBicmVhazsK ICAgY2FzZSBTUUxDT01fWEFfUkVDT1ZFUjoKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3Rh YmxlLmNjJwotLS0gYS9zcWwvc3FsX3RhYmxlLmNjCTIwMTItMDEtMzEgMTU6MTY6MTYgKzAwMDAK KysrIGIvc3FsL3NxbF90YWJsZS5jYwkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0yMDQ5 LDYgKzIwNDksMTMgQEAgYm9vbCBteXNxbF9ybV90YWJsZShUSEQgKnRoZCxUQUJMRV9MSVNUCiAK ICAgREJVR19FTlRFUigibXlzcWxfcm1fdGFibGUiKTsKIAorICAvKiBEREwgaXMgbm90IGFsbG93 ZWQgaW4gYSByZWFkIG9ubHkgdHJhbnNhY3Rpb24uICovCisgIGlmICh0aGQtPnR4X3JlYWRfb25s eSkKKyAgeworICAgIG15X2Vycm9yKEVSX0NBTlRfRVhFQ1VURV9JTl9SRUFEX09OTFlfVFJBTlNB Q1RJT04sIE1ZRigwKSk7CisgICAgREJVR19SRVRVUk4odHJ1ZSk7CisgIH0KKwogICAvKiBEaXNh YmxlIGRyb3Agb2YgZW5hYmxlZCBsb2cgdGFibGVzLCBtdXN0IGJlIGRvbmUgYmVmb3JlIG5hbWUg bG9ja2luZyAqLwogICBmb3IgKHRhYmxlPSB0YWJsZXM7IHRhYmxlOyB0YWJsZT0gdGFibGUtPm5l eHRfbG9jYWwpCiAgIHsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3lhY2MueXknCi0tLSBh L3NxbC9zcWxfeWFjYy55eQkyMDExLTEyLTE5IDEyOjUzOjExICswMDAwCisrKyBiL3NxbC9zcWxf eWFjYy55eQkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC03ODUsNiArNzg1LDkwIEBAIHN0 YXRpYyBib29sIGFkZF9jcmVhdGVfaW5kZXggKExFWCAqbGV4LAogfQogCiAKK3N0YXRpYyB2b2lk IG9wdGlvbl90eXBlX3ZhbHVlX3ByZShUSEQgKnRoZCkKK3sKKyAgTEVYICpsZXg9IHRoZC0+bGV4 OworCisgIGlmIChsZXgtPnNwaGVhZCkKKyAgeworICAgIC8qCisgICAgICBJZiB3ZSBhcmUgaW4g U1Agd2Ugd2FudCBoYXZlIG93biBMRVggZm9yIGVhY2ggYXNzaWdubWVudC4KKyAgICAgIFRoaXMg aXMgbW9zdGx5IGJlY2F1c2UgaXQgaXMgaGFyZCBmb3Igc2V2ZXJhbCBzcF9pbnN0cl9zZXQKKyAg ICAgIGFuZCBzcF9pbnN0cl9zZXRfdHJpZ2dlciBpbnN0cnVjdGlvbnMgc2hhcmUgb25lIExFWC4K KyAgICAgIChXZWxsLCBpdCBpcyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIGJ1dCBhZGRzIHNvbWUg ZXh0cmEKKyAgICAgIG92ZXJoZWFkIG9uIHByZXBhcmF0aW9uIGZvciBleGVjdXRpb24gc3RhZ2Ug YW5kIElNTyBsZXNzCisgICAgICByb2J1c3QpLgorCisgICAgICBRUTogTWF5IGJlIHdlIHNob3Vs ZCBzaW1wbHkgcHJvaGliaXQgZ3JvdXAgYXNzaWdubWVudHMgaW4gU1A/CisgICAgKi8KKyAgICBM RVggKm9sZF9sZXg9IGxleDsKKyAgICBsZXgtPnNwaGVhZC0+cmVzZXRfbGV4KHRoZCk7CisgICAg bGV4PSB0aGQtPmxleDsKKworICAgIC8qIFNldCBuZXcgTEVYIGFzIGlmIHdlIGF0IHN0YXJ0IG9m IHNldCBydWxlLiAqLworICAgIGxleC0+c3FsX2NvbW1hbmQ9IFNRTENPTV9TRVRfT1BUSU9OOwor ICAgIG15c3FsX2luaXRfc2VsZWN0KGxleCk7CisgICAgbGV4LT5vcHRpb25fdHlwZT1PUFRfU0VT U0lPTjsKKyAgICBsZXgtPnZhcl9saXN0LmVtcHR5KCk7CisgICAgbGV4LT5vbmVfc2hvdF9zZXQ9 IDA7CisgICAgbGV4LT5hdXRvY29tbWl0PSAwOworICAgIGxleC0+c3BoZWFkLT5tX3RtcF9xdWVy eT0gb2xkX2xleC0+c3BoZWFkLT5tX3RtcF9xdWVyeTsKKyAgICBsZXgtPm9wdGlvbl90eXBlPSBv bGRfbGV4LT5vcHRpb25fdHlwZTsKKyAgfQorfQorCisKK3N0YXRpYyBib29sIG9wdGlvbl90eXBl X3ZhbHVlX3Bvc3QoVEhEICp0aGQsIGJvb2wgaXNfZW1wdHkpCit7CisgIExFWCAqbGV4PSB0aGQt PmxleDsKKworICBpZiAobGV4LT5zcGhlYWQpCisgIHsKKyAgICBzcF9oZWFkICpzcD0gbGV4LT5z cGhlYWQ7CisKKyAgICBpZiAoIWxleC0+dmFyX2xpc3QuaXNfZW1wdHkoKSkKKyAgICB7CisgICAg ICAvKgorICAgICAgICBXZSBoYXZlIGFzc2lnbm1lbnQgdG8gdXNlciBvciBzeXN0ZW0gdmFyaWFi bGUgb3IKKyAgICAgICAgb3B0aW9uIHNldHRpbmcsIHNvIHdlIHNob3VsZCBjb25zdHJ1Y3Qgc3Bf aW5zdHJfc3RtdAorICAgICAgICBmb3IgaXQuCisgICAgICAqLworICAgICAgTEVYX1NUUklORyBx YnVmZjsKKyAgICAgIHNwX2luc3RyX3N0bXQgKmk7CisgICAgICBMZXhfaW5wdXRfc3RyZWFtICps aXA9ICZ0aGQtPm1fcGFyc2VyX3N0YXRlLT5tX2xpcDsKKworICAgICAgaWYgKCEoaT0gbmV3IHNw X2luc3RyX3N0bXQoc3AtPmluc3RydWN0aW9ucygpLCBsZXgtPnNwY29udCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxleCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg ICAgLyoKKyAgICAgICAgRXh0cmFjdCB0aGUgcXVlcnkgc3RhdGVtZW50IGZyb20gdGhlIHRva2Vu aXplci4gIFRoZQorICAgICAgICBlbmQgaXMgZWl0aGVyIGxpcC0+cHRyLCBpZiB0aGVyZSB3YXMg bm8gbG9va2FoZWFkLAorICAgICAgICBsaXAtPnRva19lbmQgb3RoZXJ3aXNlLgorICAgICAgKi8K KyAgICAgIGlmIChpc19lbXB0eSkKKyAgICAgICAgcWJ1ZmYubGVuZ3RoPSBsaXAtPmdldF9wdHIo KSAtIHNwLT5tX3RtcF9xdWVyeTsKKyAgICAgIGVsc2UKKyAgICAgICAgcWJ1ZmYubGVuZ3RoPSBs aXAtPmdldF90b2tfZW5kKCkgLSBzcC0+bV90bXBfcXVlcnk7CisKKyAgICAgIGlmICghKHFidWZm LnN0cj0gKGNoYXIqKSBhbGxvY19yb290KHRoZC0+bWVtX3Jvb3QsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBxYnVmZi5sZW5ndGggKyA1KSkpCisgICAgICAgIHJl dHVybiB0cnVlOworCisgICAgICBzdHJtYWtlKHN0cm1ha2UocWJ1ZmYuc3RyLCAiU0VUICIsIDQp LCBzcC0+bV90bXBfcXVlcnksCisgICAgICAgICAgICAgIHFidWZmLmxlbmd0aCk7CisgICAgICBx YnVmZi5sZW5ndGgrPSA0OworICAgICAgaS0+bV9xdWVyeT0gcWJ1ZmY7CisgICAgICBpZiAoc3At PmFkZF9pbnN0cihpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChsZXgt PnNwaGVhZC0+cmVzdG9yZV9sZXgodGhkKSkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJl dHVybiBmYWxzZTsKK30KKworCiAlfQogJXVuaW9uIHsKICAgaW50ICBudW07CkBAIC04NDksMTAg KzkzMywxMCBAQCBib29sIG15X3l5b3ZlcmZsb3coc2hvcnQgKiphLCBZWVNUWVBFICoqCiAKICVw dXJlX3BhcnNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdlIGhhdmUg dGhyZWFkcyAqLwogLyoKLSAgQ3VycmVudGx5IHRoZXJlIGFyZSAxNjQgc2hpZnQvcmVkdWNlIGNv bmZsaWN0cy4KKyAgQ3VycmVudGx5IHRoZXJlIGFyZSAxNjMgc2hpZnQvcmVkdWNlIGNvbmZsaWN0 cy4KICAgV2Ugc2hvdWxkIG5vdCBpbnRyb2R1Y2UgbmV3IGNvbmZsaWN0cyBhbnkgbW9yZS4KICov Ci0lZXhwZWN0IDE2NAorJWV4cGVjdCAxNjMKIAogLyoKICAgIENvbW1lbnRzIGZvciBUT0tFTlMu CkBAIC0xMjI5LDYgKzEzMTMsNyBAQCBib29sIG15X3l5b3ZlcmZsb3coc2hvcnQgKiphLCBZWVNU WVBFICoqCiAldG9rZW4gIE9OICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNRTC0yMDAz LVIgKi8KICV0b2tlbiAgT05FX1NIT1RfU1lNCiAldG9rZW4gIE9ORV9TWU0KKyV0b2tlbiAgT05M WV9TWU0KICV0b2tlbiAgT1BFTl9TWU0gICAgICAgICAgICAgICAgICAgICAgLyogU1FMLTIwMDMt UiAqLwogJXRva2VuICBPUFRJTUlaRQogJXRva2VuICBPUFRJT05TX1NZTQpAQCAtMTUyNSw4ICsx NjEwLDggQEAgYm9vbCBteV95eW92ZXJmbG93KHNob3J0ICoqYSwgWVlTVFlQRSAqKgogICAgICAg ICB0YWJsZV9vcHRpb24gb3B0X2lmX25vdF9leGlzdHMgb3B0X25vX3dyaXRlX3RvX2JpbmxvZwog ICAgICAgICBvcHRfdGVtcG9yYXJ5IGFsbF9vcl9hbnkgb3B0X2Rpc3RpbmN0CiAgICAgICAgIG9w dF9pZ25vcmVfbGVhdmVzIGZ1bGx0ZXh0X29wdGlvbnMgc3BhdGlhbF90eXBlIHVuaW9uX29wdGlv bgotICAgICAgICBzdGFydF90cmFuc2FjdGlvbl9vcHRzCi0gICAgICAgIHVuaW9uX29wdCBzZWxl Y3RfZGVyaXZlZF9pbml0IG9wdGlvbl90eXBlMgorICAgICAgICBzdGFydF90cmFuc2FjdGlvbl9v cHRfbGlzdCBzdGFydF90cmFuc2FjdGlvbl9vcHQgdHJhbnNhY3Rpb25fYWNjZXNzX21vZGUKKyAg ICAgICAgdW5pb25fb3B0IHNlbGVjdF9kZXJpdmVkX2luaXQKICAgICAgICAgb3B0X25hdHVyYWxf bGFuZ3VhZ2VfbW9kZSBvcHRfcXVlcnlfZXhwYW5zaW9uCiAgICAgICAgIG9wdF9ldl9zdGF0dXMg b3B0X2V2X29uX2NvbXBsZXRpb24gZXZfb25fY29tcGxldGlvbiBvcHRfZXZfY29tbWVudAogICAg ICAgICBldl9hbHRlcl9vbl9zY2hlZHVsZV9jb21wbGV0aW9uIG9wdF9ldl9yZW5hbWVfdG8gb3B0 X2V2X3NxbF9zdG10CkBAIC03MjM5LDIwICs3MzI0LDQyIEBAIHNsYXZlOgogICAgICAgICA7CiAK IHN0YXJ0OgotICAgICAgICAgIFNUQVJUX1NZTSBUUkFOU0FDVElPTl9TWU0gc3RhcnRfdHJhbnNh Y3Rpb25fb3B0cworICAgICAgICAgIFNUQVJUX1NZTSBUUkFOU0FDVElPTl9TWU0gc3RhcnRfdHJh bnNhY3Rpb25fb3B0X2xpc3QKICAgICAgICAgICB7CiAgICAgICAgICAgICBMRVggKmxleD0gTGV4 OwogICAgICAgICAgICAgbGV4LT5zcWxfY29tbWFuZD0gU1FMQ09NX0JFR0lOOworICAgICAgICAg ICAgLyogUkVBRCBPTkxZIGFuZCBSRUFEIFdSSVRFIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICov CisgICAgICAgICAgICBpZiAoKCQzICYgTVlTUUxfU1RBUlRfVFJBTlNfT1BUX1JFQURfV1JJVEUp ICYmCisgICAgICAgICAgICAgICAgKCQzICYgTVlTUUxfU1RBUlRfVFJBTlNfT1BUX1JFQURfT05M WSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIG15X3BhcnNlX2Vycm9yKEVSKEVSX1NZ TlRBWF9FUlJPUikpOworICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAg fQogICAgICAgICAgICAgbGV4LT5zdGFydF90cmFuc2FjdGlvbl9vcHQ9ICQzOwogICAgICAgICAg IH0KICAgICAgICAgOwogCi1zdGFydF90cmFuc2FjdGlvbl9vcHRzOgorc3RhcnRfdHJhbnNhY3Rp b25fb3B0X2xpc3Q6CisgICAgICAgICAgc3RhcnRfdHJhbnNhY3Rpb25fb3B0CisgICAgICAgICAg eyAkJD0gJDE7IH0KKyAgICAgICAgfCBzdGFydF90cmFuc2FjdGlvbl9vcHRfbGlzdCAnLCcgc3Rh cnRfdHJhbnNhY3Rpb25fb3B0CisgICAgICAgICAgeyAkJD0gJDEgfCAkMzsgfQorICAgICAgICA7 CisKK3N0YXJ0X3RyYW5zYWN0aW9uX29wdDoKICAgICAgICAgICAvKmVtcHR5Ki8geyAkJCA9IDA7 IH0KICAgICAgICAgfCBXSVRIIENPTlNJU1RFTlRfU1lNIFNOQVBTSE9UX1NZTQogICAgICAgICAg IHsKICAgICAgICAgICAgICQkPSBNWVNRTF9TVEFSVF9UUkFOU19PUFRfV0lUSF9DT05TX1NOQVBT SE9UOwogICAgICAgICAgIH0KKyAgICAgICAgfCBSRUFEX1NZTSBPTkxZX1NZTQorICAgICAgICAg IHsKKyAgICAgICAgICAgICQkPSBNWVNRTF9TVEFSVF9UUkFOU19PUFRfUkVBRF9PTkxZOworICAg ICAgICAgIH0KKyAgICAgICAgfCBSRUFEX1NZTSBXUklURV9TWU0KKyAgICAgICAgICB7CisgICAg ICAgICAgICAkJD0gTVlTUUxfU1RBUlRfVFJBTlNfT1BUX1JFQURfV1JJVEU7CisgICAgICAgICAg fQogICAgICAgICA7CiAKIHNsYXZlX2Nvbm5lY3Rpb25fb3B0czoKQEAgLTEzMzA3LDcgKzEzNDE0 LDcgQEAga2V5d29yZF9zcDoKIC8qIE9wdGlvbiBmdW5jdGlvbnMgKi8KIAogc2V0OgotICAgICAg ICAgIFNFVCBvcHRfb3B0aW9uCisgICAgICAgICAgU0VUCiAgICAgICAgICAgewogICAgICAgICAg ICAgTEVYICpsZXg9TGV4OwogICAgICAgICAgICAgbGV4LT5zcWxfY29tbWFuZD0gU1FMQ09NX1NF VF9PUFRJT047CkBAIC0xMzMxNiw5ICsxMzQyMywxMSBAQCBzZXQ6CiAgICAgICAgICAgICBsZXgt PnZhcl9saXN0LmVtcHR5KCk7CiAgICAgICAgICAgICBsZXgtPm9uZV9zaG90X3NldD0gMDsKICAg ICAgICAgICAgIGxleC0+YXV0b2NvbW1pdD0gMDsKKyAgICAgICAgICAgIGlmIChMZXgtPnNwaGVh ZCkKKyAgICAgICAgICAgICAgTGV4LT5zcGhlYWQtPm1fdG1wX3F1ZXJ5PSBZWUxJUC0+Z2V0X3B0 cigpOworICAgICAgICAgICAgb3B0aW9uX3R5cGVfdmFsdWVfcHJlKFlZVEhEKTsKICAgICAgICAg ICB9Ci0gICAgICAgICAgb3B0aW9uX3ZhbHVlX2xpc3QKLSAgICAgICAgICB7fQorICAgICAgICAg IHNldF9hbHRlcm5hdGl2ZXMKICAgICAgICAgOwogCiBvcHRfb3B0aW9uOgpAQCAtMTMzMjYsMTA0 ICsxMzQzNSwxMTcgQEAgb3B0X29wdGlvbjoKICAgICAgICAgfCBPUFRJT04ge30KICAgICAgICAg OwogCi1vcHRpb25fdmFsdWVfbGlzdDoKLSAgICAgICAgICBvcHRpb25fdHlwZV92YWx1ZQotICAg ICAgICB8IG9wdGlvbl92YWx1ZV9saXN0ICcsJyBvcHRpb25fdHlwZV92YWx1ZQotICAgICAgICA7 CitzZXRfYWx0ZXJuYXRpdmVzOgorICAgICAgICAgIG9wdF9vcHRpb24gb3B0aW9uX3ZhbHVlIG9w dGlvbl92YWx1ZV9saXN0X2NvbnQKKyAgICAgICAgfCBUUkFOU0FDVElPTl9TWU0KKyAgICAgICAg ICB7CisgICAgICAgICAgICBMRVggKmxleD1MZXg7CisgICAgICAgICAgICBsZXgtPm9wdGlvbl90 eXBlPSBPUFRfREVGQVVMVDsKIAotb3B0aW9uX3R5cGVfdmFsdWU6CisgICAgICAgICAgICAvKiBE ZWZhdWx0IHZhbHVlcyAqLworICAgICAgICAgICAgbGV4LT50eF9pc29sYXRpb249IElTT19SRVBF QVRBQkxFX1JFQUQ7CisgICAgICAgICAgICBsZXgtPnR4X3JlYWRfb25seT0gZmFsc2U7CisgICAg ICAgICAgfQorICAgICAgICAgIHRyYW5zYWN0aW9uX2NoYXJhY3RlcmlzdGljcwogICAgICAgICAg IHsKICAgICAgICAgICAgIFRIRCAqdGhkPSBZWVRIRDsKLSAgICAgICAgICAgIExFWCAqbGV4PSB0 aGQtPmxleDsKLSAgICAgICAgICAgIExleF9pbnB1dF9zdHJlYW0gKmxpcD0gWVlMSVA7Ci0KLSAg ICAgICAgICAgIGlmIChsZXgtPnNwaGVhZCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg LyoKLSAgICAgICAgICAgICAgICBJZiB3ZSBhcmUgaW4gU1Agd2Ugd2FudCBoYXZlIG93biBMRVgg Zm9yIGVhY2ggYXNzaWdubWVudC4KLSAgICAgICAgICAgICAgICBUaGlzIGlzIG1vc3RseSBiZWNh dXNlIGl0IGlzIGhhcmQgZm9yIHNldmVyYWwgc3BfaW5zdHJfc2V0Ci0gICAgICAgICAgICAgICAg YW5kIHNwX2luc3RyX3NldF90cmlnZ2VyIGluc3RydWN0aW9ucyBzaGFyZSBvbmUgTEVYLgotICAg ICAgICAgICAgICAgIChXZWxsLCBpdCBpcyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIGJ1dCBhZGRz IHNvbWUgZXh0cmEKLSAgICAgICAgICAgICAgICBvdmVyaGVhZCBvbiBwcmVwYXJhdGlvbiBmb3Ig ZXhlY3V0aW9uIHN0YWdlIGFuZCBJTU8gbGVzcwotICAgICAgICAgICAgICAgIHJvYnVzdCkuCi0K LSAgICAgICAgICAgICAgICBRUTogTWF5IGJlIHdlIHNob3VsZCBzaW1wbHkgcHJvaGliaXQgZ3Jv dXAgYXNzaWdubWVudHMgaW4gU1A/Ci0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgIGxl eC0+c3BoZWFkLT5yZXNldF9sZXgodGhkKTsKLSAgICAgICAgICAgICAgbGV4PSB0aGQtPmxleDsK KyAgICAgICAgICAgIExFWCAqbGV4PUxleDsKKyAgICAgICAgICAgIEl0ZW0gKmlzb2xhdGlvbl9p dGVtPQorICAgICAgICAgICAgICBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1faW50KChpbnQzMikg bGV4LT50eF9pc29sYXRpb24pOworICAgICAgICAgICAgSXRlbSAqYWNjZXNzbW9kZV9pdGVtPQor ICAgICAgICAgICAgICBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1faW50KChpbnQzMikgbGV4LT50 eF9yZWFkX29ubHkpOworICAgICAgICAgICAgaWYgKGlzb2xhdGlvbl9pdGVtID09IE5VTEwgfHwg YWNjZXNzbW9kZV9pdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgICBzZXRfdmFyICppc29sYXRpb25fdmFyPSBuZXcgc2V0X3ZhcihsZXgtPm9wdGlv bl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmluZF9zeXNfdmFyKHRoZCwgInR4X2lzb2xhdGlvbiIpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJm51bGxfbGV4X3N0ciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzb2xhdGlvbl9pdGVtKTsKKyAgICAg ICAgICAgIHNldF92YXIgKmFjY2Vzc21vZGVfdmFyPSBuZXcgc2V0X3ZhcihsZXgtPm9wdGlvbl90 eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bmRfc3lzX3Zhcih0aGQsICJ0eF9yZWFkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbnVsbF9sZXhfc3RyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc21vZGVfaXRlbSk7CisgICAg ICAgICAgICBpZiAoaXNvbGF0aW9uX3ZhciA9PSBOVUxMIHx8IGFjY2Vzc21vZGVfdmFyID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBsZXgtPnZhcl9s aXN0LnB1c2hfYmFjayhpc29sYXRpb25fdmFyKTsKKyAgICAgICAgICAgIGxleC0+dmFyX2xpc3Qu cHVzaF9iYWNrKGFjY2Vzc21vZGVfdmFyKTsKKyAgICAgICAgICB9CisgICAgICAgIHwgb3B0X29w dGlvbiBvcHRpb25fdHlwZQorICAgICAgICAgIHsKKyAgICAgICAgICAgIExleC0+b3B0aW9uX3R5 cGU9ICQyOworICAgICAgICAgIH0KKyAgICAgICAgICBzZXRfdHlwZV9hbHRlcm5hdGl2ZXMKKyAg ICAgICAgOwogCi0gICAgICAgICAgICAgIC8qIFNldCBuZXcgTEVYIGFzIGlmIHdlIGF0IHN0YXJ0 IG9mIHNldCBydWxlLiAqLwotICAgICAgICAgICAgICBsZXgtPnNxbF9jb21tYW5kPSBTUUxDT01f U0VUX09QVElPTjsKLSAgICAgICAgICAgICAgbXlzcWxfaW5pdF9zZWxlY3QobGV4KTsKLSAgICAg ICAgICAgICAgbGV4LT5vcHRpb25fdHlwZT1PUFRfU0VTU0lPTjsKLSAgICAgICAgICAgICAgbGV4 LT52YXJfbGlzdC5lbXB0eSgpOwotICAgICAgICAgICAgICBsZXgtPm9uZV9zaG90X3NldD0gMDsK LSAgICAgICAgICAgICAgbGV4LT5hdXRvY29tbWl0PSAwOwotICAgICAgICAgICAgICBsZXgtPnNw aGVhZC0+bV90bXBfcXVlcnk9IGxpcC0+Z2V0X3Rva19zdGFydCgpOwotICAgICAgICAgICAgfQor c2V0X3R5cGVfYWx0ZXJuYXRpdmVzOgorICAgICAgICAgIG9wdGlvbl90eXBlX3ZhbHVlIG9wdGlv bl92YWx1ZV9saXN0X2NvbnQKKyAgICAgICAgfCBUUkFOU0FDVElPTl9TWU0KKyAgICAgICAgICB7 CisgICAgICAgICAgICAvKiBEZWZhdWx0IHZhbHVlcyAqLworICAgICAgICAgICAgWVlUSEQtPmxl eC0+dHhfaXNvbGF0aW9uPSBJU09fUkVQRUFUQUJMRV9SRUFEOworICAgICAgICAgICAgWVlUSEQt PmxleC0+dHhfcmVhZF9vbmx5PSBmYWxzZTsKICAgICAgICAgICB9Ci0gICAgICAgICAgZXh0X29w dGlvbl92YWx1ZQorICAgICAgICAgIHRyYW5zYWN0aW9uX2NoYXJhY3RlcmlzdGljcwogICAgICAg ICAgIHsKICAgICAgICAgICAgIFRIRCAqdGhkPSBZWVRIRDsKLSAgICAgICAgICAgIExFWCAqbGV4 PSB0aGQtPmxleDsKLSAgICAgICAgICAgIExleF9pbnB1dF9zdHJlYW0gKmxpcD0gWVlMSVA7Ci0K LSAgICAgICAgICAgIGlmIChsZXgtPnNwaGVhZCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgc3BfaGVhZCAqc3A9IGxleC0+c3BoZWFkOwotCi0gICAgICAgICAgICAgIGlmICghbGV4LT52 YXJfbGlzdC5pc19lbXB0eSgpKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLyoK LSAgICAgICAgICAgICAgICAgIFdlIGhhdmUgYXNzaWdubWVudCB0byB1c2VyIG9yIHN5c3RlbSB2 YXJpYWJsZSBvcgotICAgICAgICAgICAgICAgICAgb3B0aW9uIHNldHRpbmcsIHNvIHdlIHNob3Vs ZCBjb25zdHJ1Y3Qgc3BfaW5zdHJfc3RtdAotICAgICAgICAgICAgICAgICAgZm9yIGl0LgotICAg ICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgTEVYX1NUUklORyBxYnVmZjsKLSAgICAg ICAgICAgICAgICBzcF9pbnN0cl9zdG10ICppOwotCi0gICAgICAgICAgICAgICAgaWYgKCEoaT0g bmV3IHNwX2luc3RyX3N0bXQoc3AtPmluc3RydWN0aW9ucygpLCBsZXgtPnNwY29udCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgpKSkKLSAgICAgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMRVggKmxleD1MZXg7CisgICAgICAg ICAgICBJdGVtICppc29sYXRpb25faXRlbT0KKyAgICAgICAgICAgICAgbmV3ICh0aGQtPm1lbV9y b290KSBJdGVtX2ludCgoaW50MzIpIGxleC0+dHhfaXNvbGF0aW9uKTsKKyAgICAgICAgICAgIEl0 ZW0gKmFjY2Vzc21vZGVfaXRlbT0KKyAgICAgICAgICAgICAgbmV3ICh0aGQtPm1lbV9yb290KSBJ dGVtX2ludCgoaW50MzIpIGxleC0+dHhfcmVhZF9vbmx5KTsKKyAgICAgICAgICAgIGlmIChpc29s YXRpb25faXRlbSA9PSBOVUxMIHx8IGFjY2Vzc21vZGVfaXRlbSA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgc2V0X3ZhciAqaXNvbGF0aW9uX3Zhcj0g bmV3IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbmRfc3lzX3Zhcih0aGQsICJ0eF9pc29sYXRpb24iKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudWxsX2xl eF9zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp c29sYXRpb25faXRlbSk7CisgICAgICAgICAgICBzZXRfdmFyICphY2Nlc3Ntb2RlX3Zhcj0gbmV3 IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmaW5kX3N5c192YXIodGhkLCAidHhfcmVhZF9vbmx5IiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm51bGxfbGV4 X3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh Y2Nlc3Ntb2RlX2l0ZW0pOworICAgICAgICAgICAgaWYgKGlzb2xhdGlvbl92YXIgPT0gTlVMTCB8 fCBhY2Nlc3Ntb2RlX3ZhciA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2soaXNvbGF0aW9uX3Zhcik7CisgICAg ICAgICAgICBsZXgtPnZhcl9saXN0LnB1c2hfYmFjayhhY2Nlc3Ntb2RlX3Zhcik7CisgICAgICAg ICAgfQorICAgICAgICA7CiAKLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAg RXh0cmFjdCB0aGUgcXVlcnkgc3RhdGVtZW50IGZyb20gdGhlIHRva2VuaXplci4gIFRoZQotICAg ICAgICAgICAgICAgICAgZW5kIGlzIGVpdGhlciBsaXAtPnB0ciwgaWYgdGhlcmUgd2FzIG5vIGxv b2thaGVhZCwKLSAgICAgICAgICAgICAgICAgIGxpcC0+dG9rX2VuZCBvdGhlcndpc2UuCi0gICAg ICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICBpZiAoeXljaGFyID09IFlZRU1QVFkpCi0g ICAgICAgICAgICAgICAgICBxYnVmZi5sZW5ndGg9IGxpcC0+Z2V0X3B0cigpIC0gc3AtPm1fdG1w X3F1ZXJ5OwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgIHFidWZmLmxl bmd0aD0gbGlwLT5nZXRfdG9rX2VuZCgpIC0gc3AtPm1fdG1wX3F1ZXJ5Oworb3B0aW9uX3ZhbHVl X2xpc3RfY29udDoKKyAgICAgICAgICAvKiBlbXB0eSAqLworICAgICAgICB8ICcsJworICAgICAg ICAgIHsKKyAgICAgICAgICAgIGlmIChMZXgtPnNwaGVhZCkKKyAgICAgICAgICAgICAgTGV4LT5z cGhlYWQtPm1fdG1wX3F1ZXJ5PSBZWUxJUC0+Z2V0X3Rva19zdGFydCgpOworICAgICAgICAgIH0K KyAgICAgICAgICBvcHRpb25fdmFsdWVfbGlzdAorICAgICAgICA7CiAKLSAgICAgICAgICAgICAg ICBpZiAoIShxYnVmZi5zdHI9IChjaGFyKikgYWxsb2Nfcm9vdCh0aGQtPm1lbV9yb290LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFidWZmLmxl bmd0aCArIDUpKSkKLSAgICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CitvcHRpb25fdmFs dWVfbGlzdDoKKyAgICAgICAgICB7IG9wdGlvbl90eXBlX3ZhbHVlX3ByZShZWVRIRCk7IH0KKyAg ICAgICAgICBleHRfb3B0X3ZhbHVlCisgICAgICAgIHwgb3B0aW9uX3ZhbHVlX2xpc3QgJywnCisg ICAgICAgICAgeworICAgICAgICAgICAgaWYgKExleC0+c3BoZWFkKQorICAgICAgICAgICAgICBM ZXgtPnNwaGVhZC0+bV90bXBfcXVlcnk9IFlZTElQLT5nZXRfdG9rX3N0YXJ0KCk7CisgICAgICAg ICAgICBvcHRpb25fdHlwZV92YWx1ZV9wcmUoWVlUSEQpOworICAgICAgICAgIH0KKyAgICAgICAg ICBleHRfb3B0X3ZhbHVlCisgICAgICAgIDsKIAotICAgICAgICAgICAgICAgIHN0cm1ha2Uoc3Ry bWFrZShxYnVmZi5zdHIsICJTRVQgIiwgNCksIHNwLT5tX3RtcF9xdWVyeSwKLSAgICAgICAgICAg ICAgICAgICAgICAgIHFidWZmLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgcWJ1ZmYubGVuZ3Ro Kz0gNDsKLSAgICAgICAgICAgICAgICBpLT5tX3F1ZXJ5PSBxYnVmZjsKLSAgICAgICAgICAgICAg ICBpZiAoc3AtPmFkZF9pbnN0cihpKSkKLSAgICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKGxleC0+c3BoZWFkLT5yZXN0b3Jl X2xleCh0aGQpKQotICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0gICAgICAgICAgICB9 CitleHRfb3B0X3ZhbHVlOgorICAgICAgICAgIG9wdGlvbl90eXBlCisgICAgICAgICAgeworICAg ICAgICAgICAgTGV4LT5vcHRpb25fdHlwZT0gJDE7CiAgICAgICAgICAgfQorICAgICAgICAgIG9w dGlvbl90eXBlX3ZhbHVlCisgICAgICAgIHwgb3B0aW9uX3ZhbHVlCiAgICAgICAgIDsKIAogb3B0 aW9uX3R5cGU6Ci0gICAgICAgICAgb3B0aW9uX3R5cGUyICAgIHt9Ci0gICAgICAgIHwgR0xPQkFM X1NZTSAgeyAkJD1PUFRfR0xPQkFMOyB9CisgICAgICAgICAgR0xPQkFMX1NZTSAgeyAkJD1PUFRf R0xPQkFMOyB9CiAgICAgICAgIHwgTE9DQUxfU1lNICAgeyAkJD1PUFRfU0VTU0lPTjsgfQogICAg ICAgICB8IFNFU1NJT05fU1lNIHsgJCQ9T1BUX1NFU1NJT047IH0KICAgICAgICAgOwogCi1vcHRp b25fdHlwZTI6Ci0gICAgICAgICAgLyogZW1wdHkgKi8geyAkJD0gT1BUX0RFRkFVTFQ7IH0KLSAg ICAgICAgOwotCiBvcHRfdmFyX3R5cGU6CiAgICAgICAgICAgLyogZW1wdHkgKi8geyAkJD1PUFRf U0VTU0lPTjsgfQogICAgICAgICB8IEdMT0JBTF9TWU0gIHsgJCQ9T1BUX0dMT0JBTDsgfQpAQCAt MTM0MzgsMzYgKzEzNTYwLDQ1IEBAIG9wdF92YXJfaWRlbnRfdHlwZToKICAgICAgICAgfCBTRVNT SU9OX1NZTSAnLicgeyAkJD1PUFRfU0VTU0lPTjsgfQogICAgICAgICA7CiAKLWV4dF9vcHRpb25f dmFsdWU6Ci0gICAgICAgICAgc3lzX29wdGlvbl92YWx1ZQotICAgICAgICB8IG9wdGlvbl90eXBl MiBvcHRpb25fdmFsdWUKK29wdGlvbl90eXBlX3ZhbHVlOgorICAgICAgICAgIGludGVybmFsX3Zh cmlhYmxlX25hbWUgZXF1YWwgc2V0X2V4cHJfb3JfZGVmYXVsdAorICAgICAgICAgIHsKKyAgICAg ICAgICAgIFRIRCAqdGhkPSBZWVRIRDsKKyAgICAgICAgICAgIExFWCAqbGV4PSBMZXg7CisKKyAg ICAgICAgICAgIGlmICgkMS52YXIgJiYgJDEudmFyICE9IHRyZ19uZXdfcm93X2Zha2VfdmFyKQor ICAgICAgICAgICAgeworICAgICAgICAgICAgICAvKiBJdCBpcyBhIHN5c3RlbSB2YXJpYWJsZS4g Ki8KKyAgICAgICAgICAgICAgaWYgKHNldF9zeXN0ZW1fdmFyaWFibGUodGhkLCAmJDEsIGxleC0+ b3B0aW9uX3R5cGUsICQzKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBt eV9wYXJzZV9lcnJvcihFUihFUl9TWU5UQVhfRVJST1IpKTsKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvcHRpb25fdHlwZV92YWx1 ZV9wb3N0KHRoZCwgeXljaGFyID09IFlZRU1QVFkpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCi1zeXNfb3B0aW9uX3ZhbHVlOgotICAgICAg ICAgIG9wdGlvbl90eXBlIGludGVybmFsX3ZhcmlhYmxlX25hbWUgZXF1YWwgc2V0X2V4cHJfb3Jf ZGVmYXVsdAorb3B0aW9uX3ZhbHVlOgorICAgICAgICAgIGludGVybmFsX3ZhcmlhYmxlX25hbWUg ZXF1YWwgc2V0X2V4cHJfb3JfZGVmYXVsdAogICAgICAgICAgIHsKICAgICAgICAgICAgIFRIRCAq dGhkPSBZWVRIRDsKICAgICAgICAgICAgIExFWCAqbGV4PSBMZXg7Ci0gICAgICAgICAgICBMRVhf U1RSSU5HICpuYW1lPSAmJDIuYmFzZV9uYW1lOworICAgICAgICAgICAgTEVYX1NUUklORyAqbmFt ZT0gJiQxLmJhc2VfbmFtZTsKIAotICAgICAgICAgICAgaWYgKCQyLnZhciA9PSB0cmdfbmV3X3Jv d19mYWtlX3ZhcikKKyAgICAgICAgICAgIGlmICgkMS52YXIgPT0gdHJnX25ld19yb3dfZmFrZV92 YXIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8qIFdlIGFyZSBpbiB0cmlnZ2VyIGFu ZCBhc3NpZ25pbmcgdmFsdWUgdG8gZmllbGQgb2YgbmV3IHJvdyAqLwotICAgICAgICAgICAgICBp ZiAoJDEpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBteV9wYXJzZV9lcnJvcihF UihFUl9TWU5UQVhfRVJST1IpKTsKLSAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwotICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChzZXRfdHJpZ2dlcl9uZXdfcm93KFlZVEhE LCBuYW1lLCAkNCkpCisgICAgICAgICAgICAgIGlmIChzZXRfdHJpZ2dlcl9uZXdfcm93KFlZVEhE LCBuYW1lLCAkMykpCiAgICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAg IH0KLSAgICAgICAgICAgIGVsc2UgaWYgKCQyLnZhcikKKyAgICAgICAgICAgIGVsc2UgaWYgKCQx LnZhcikKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKCQxKQotICAgICAgICAgICAg ICAgIGxleC0+b3B0aW9uX3R5cGU9ICQxOwotCiAgICAgICAgICAgICAgIC8qIEl0IGlzIGEgc3lz dGVtIHZhcmlhYmxlLiAqLwotICAgICAgICAgICAgICBpZiAoc2V0X3N5c3RlbV92YXJpYWJsZSh0 aGQsICYkMiwgbGV4LT5vcHRpb25fdHlwZSwgJDQpKQorICAgICAgICAgICAgICBpZiAoc2V0X3N5 c3RlbV92YXJpYWJsZSh0aGQsICYkMSwgbGV4LT5vcHRpb25fdHlwZSwgJDMpKQogICAgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCkBA IC0xMzQ3NSwzNyArMTM2MDYsMTQgQEAgc3lzX29wdGlvbl92YWx1ZToKICAgICAgICAgICAgICAg c3BfcGNvbnRleHQgKnNwYz0gbGV4LT5zcGNvbnQ7CiAgICAgICAgICAgICAgIHNwX3ZhcmlhYmxl ICpzcHY9IHNwYy0+ZmluZF92YXJpYWJsZSgqbmFtZSwgZmFsc2UpOwogCi0gICAgICAgICAgICAg IGlmICgkMSkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG15X3BhcnNlX2Vycm9y KEVSKEVSX1NZTlRBWF9FUlJPUikpOwotICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0g ICAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgICAvKiBJdCBpcyBhIGxvY2FsIHZhcmlhYmxl LiAqLwotICAgICAgICAgICAgICBpZiAoc2V0X2xvY2FsX3ZhcmlhYmxlKHRoZCwgc3B2LCAkNCkp CisgICAgICAgICAgICAgIGlmIChzZXRfbG9jYWxfdmFyaWFibGUodGhkLCBzcHYsICQzKSkKICAg ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQotICAgICAgICAgIH0K LSAgICAgICAgfCBvcHRpb25fdHlwZSBUUkFOU0FDVElPTl9TWU0gSVNPTEFUSU9OIExFVkVMX1NZ TSBpc29sYXRpb25fdHlwZXMKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBUSEQgKnRoZD0gWVlU SEQ7Ci0gICAgICAgICAgICBMRVggKmxleD1MZXg7Ci0gICAgICAgICAgICBsZXgtPm9wdGlvbl90 eXBlPSAkMTsKLSAgICAgICAgICAgIEl0ZW0gKml0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRl bV9pbnQoKGludDMyKSAkNSk7Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQotICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwotICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0 X3ZhcihsZXgtPm9wdGlvbl90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaW5kX3N5c192YXIodGhkLCAidHhfaXNvbGF0aW9uIiksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZudWxsX2xleF9zdHIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGl0ZW0pOwotICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQor ICAgICAgICAgICAgaWYgKG9wdGlvbl90eXBlX3ZhbHVlX3Bvc3QodGhkLCB5eWNoYXIgPT0gWVlF TVBUWSkpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0gICAgICAgICAgICBsZXgtPnZh cl9saXN0LnB1c2hfYmFjayh2YXIpOwogICAgICAgICAgIH0KLSAgICAgICAgOwotCi1vcHRpb25f dmFsdWU6Ci0gICAgICAgICAgJ0AnIGlkZW50X29yX3RleHQgZXF1YWwgZXhwcgorICAgICAgICB8 ICdAJyBpZGVudF9vcl90ZXh0IGVxdWFsIGV4cHIKICAgICAgICAgICB7CiAgICAgICAgICAgICBJ dGVtX2Z1bmNfc2V0X3VzZXJfdmFyICppdGVtOwogICAgICAgICAgICAgaXRlbT0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zZXRfdXNlcl92YXIoJDIsICQ0KTsKQEAgLTEzNTE1LDYg KzEzNjIzLDggQEAgb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQog ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgTGV4LT52YXJfbGlzdC5w dXNoX2JhY2sodmFyKTsKKyAgICAgICAgICAgIGlmIChvcHRpb25fdHlwZV92YWx1ZV9wb3N0KFlZ VEhELCB5eWNoYXIgPT0gWVlFTVBUWSkpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgfQogICAgICAgICB8ICdAJyAnQCcgb3B0X3Zhcl9pZGVudF90eXBlIGludGVybmFs X3ZhcmlhYmxlX25hbWUgZXF1YWwgc2V0X2V4cHJfb3JfZGVmYXVsdAogICAgICAgICAgIHsKQEAg LTEzNTI4LDYgKzEzNjM4LDggQEAgb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICAgfQogICAgICAg ICAgICAgaWYgKHNldF9zeXN0ZW1fdmFyaWFibGUodGhkLCAmdG1wLCAkMywgJDYpKQogICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgaWYgKG9wdGlvbl90eXBlX3ZhbHVl X3Bvc3QodGhkLCB5eWNoYXIgPT0gWVlFTVBUWSkpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IGNoYXJzZXQgb2xkX29yX25ld19jaGFyc2V0X25h bWVfb3JfZGVmYXVsdAogICAgICAgICAgIHsKQEAgLTEzNTQ0LDYgKzEzNjU2LDggQEAgb3B0aW9u X3ZhbHVlOgogICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQogICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKKyAg ICAgICAgICAgIGlmIChvcHRpb25fdHlwZV92YWx1ZV9wb3N0KHRoZCwgeXljaGFyID09IFlZRU1Q VFkpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAg fCBOQU1FU19TWU0gZXF1YWwgZXhwcgogICAgICAgICAgIHsKQEAgLTEzNTgxLDYgKzEzNjk1LDgg QEAgb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQogICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2so dmFyKTsKKyAgICAgICAgICAgIGlmIChvcHRpb25fdHlwZV92YWx1ZV9wb3N0KFlZVEhELCB5eWNo YXIgPT0gWVlFTVBUWSkpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg fQogICAgICAgICB8IFBBU1NXT1JEIGVxdWFsIHRleHRfb3JfcGFzc3dvcmQKICAgICAgICAgICB7 CkBAIC0xMzYwOSw2ICsxMzcyNSw4IEBAIG9wdGlvbl92YWx1ZToKICAgICAgICAgICAgIHRoZC0+ bGV4LT5hdXRvY29tbWl0PSBUUlVFOwogICAgICAgICAgICAgaWYgKGxleC0+c3BoZWFkKQogICAg ICAgICAgICAgICBsZXgtPnNwaGVhZC0+bV9mbGFnc3w9IHNwX2hlYWQ6OkhBU19TRVRfQVVUT0NP TU1JVF9TVE1UOworICAgICAgICAgICAgaWYgKG9wdGlvbl90eXBlX3ZhbHVlX3Bvc3QodGhkLCB5 eWNoYXIgPT0gWVlFTVBUWSkpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgfQogICAgICAgICB8IFBBU1NXT1JEIEZPUl9TWU0gdXNlciBlcXVhbCB0ZXh0X29yX3Bhc3N3 b3JkCiAgICAgICAgICAgewpAQCAtMTM2MTksNiArMTM3MzcsOCBAQCBvcHRpb25fdmFsdWU6CiAg ICAgICAgICAgICBMZXgtPmF1dG9jb21taXQ9IFRSVUU7CiAgICAgICAgICAgICBpZiAoTGV4LT5z cGhlYWQpCiAgICAgICAgICAgICAgIExleC0+c3BoZWFkLT5tX2ZsYWdzfD0gc3BfaGVhZDo6SEFT X1NFVF9BVVRPQ09NTUlUX1NUTVQ7CisgICAgICAgICAgICBpZiAob3B0aW9uX3R5cGVfdmFsdWVf cG9zdChZWVRIRCwgeXljaGFyID09IFlZRU1QVFkpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOwogICAgICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMzcwNiw2ICsxMzgyNiwzMCBAQCBp bnRlcm5hbF92YXJpYWJsZV9uYW1lOgogICAgICAgICAgIH0KICAgICAgICAgOwogCit0cmFuc2Fj dGlvbl9jaGFyYWN0ZXJpc3RpY3M6CisgICAgICAgICAgdHJhbnNhY3Rpb25fbW9kZQorICAgICAg ICB8IHRyYW5zYWN0aW9uX2NoYXJhY3RlcmlzdGljcyAnLCcgdHJhbnNhY3Rpb25fbW9kZQorICAg ICAgICA7CisKK3RyYW5zYWN0aW9uX21vZGU6CisgICAgICAgICAgdHJhbnNhY3Rpb25fYWNjZXNz X21vZGUKKyAgICAgICAgfCBJU09MQVRJT04gTEVWRUxfU1lNIGlzb2xhdGlvbl90eXBlcworICAg ICAgICAgIHsKKyAgICAgICAgICAgIFlZVEhELT5sZXgtPnR4X2lzb2xhdGlvbj0gJDM7CisgICAg ICAgICAgfQorICAgICAgICA7CisKK3RyYW5zYWN0aW9uX2FjY2Vzc19tb2RlOgorICAgICAgICAg IFJFQURfU1lNIE9OTFlfU1lNCisgICAgICAgICAgeworICAgICAgICAgICAgWVlUSEQtPmxleC0+ dHhfcmVhZF9vbmx5PSB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfCBSRUFEX1NZTSBXUklU RV9TWU0KKyAgICAgICAgICB7CisgICAgICAgICAgICBZWVRIRC0+bGV4LT50eF9yZWFkX29ubHk9 IGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAgOworCiBpc29sYXRpb25fdHlwZXM6CiAgICAg ICAgICAgUkVBRF9TWU0gVU5DT01NSVRURURfU1lNIHsgJCQ9IElTT19SRUFEX1VOQ09NTUlUVEVE OyB9CiAgICAgICAgIHwgUkVBRF9TWU0gQ09NTUlUVEVEX1NZTSAgIHsgJCQ9IElTT19SRUFEX0NP TU1JVFRFRDsgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zeXNfdmFycy5jYycKLS0tIGEvc3Fs L3N5c192YXJzLmNjCTIwMTItMDItMDIgMTY6NTY6MzYgKzAwMDAKKysrIGIvc3FsL3N5c192YXJz LmNjCTIwMTItMDItMDkgMTY6NDQ6NDYgKzAwMDAKQEAgLTI2ODEsNyArMjY4MSw3IEBAIHN0YXRp YyBib29sIGNoZWNrX3R4X2lzb2xhdGlvbihzeXNfdmFyICoKICAgaWYgKHZhci0+dHlwZSA9PSBP UFRfREVGQVVMVCAmJiB0aGQtPmluX2FjdGl2ZV9tdWx0aV9zdG10X3RyYW5zYWN0aW9uKCkpCiAg IHsKICAgICBEQlVHX0FTU0VSVCh0aGQtPmluX211bHRpX3N0bXRfdHJhbnNhY3Rpb25fbW9kZSgp KTsKLSAgICBteV9lcnJvcihFUl9DQU5UX0NIQU5HRV9UWF9JU09MQVRJT04sIE1ZRigwKSk7Cisg ICAgbXlfZXJyb3IoRVJfQ0FOVF9DSEFOR0VfVFhfQ0hBUkFDVEVSSVNUSUNTLCBNWUYoMCkpOwog ICAgIHJldHVybiBUUlVFOwogICB9CiAgIHJldHVybiBGQUxTRTsKQEAgLTI3MjAsNiArMjcyMCw0 MiBAQCBzdGF0aWMgU3lzX3Zhcl90eF9pc29sYXRpb24gU3lzX3R4X2lzb2xhCiAgICAgICAgdHhf aXNvbGF0aW9uX25hbWVzLCBERUZBVUxUKElTT19SRVBFQVRBQkxFX1JFQUQpLAogICAgICAgIE5P X01VVEVYX0dVQVJELCBOT1RfSU5fQklOTE9HLCBPTl9DSEVDSyhjaGVja190eF9pc29sYXRpb24p KTsKIAorCisvKioKKyAgQ2FuJ3QgY2hhbmdlIHRoZSB0eF9yZWFkX29ubHkgc3RhdGUgaWYgd2Ug YXJlIGFscmVhZHkgaW4gYQorICB0cmFuc2FjdGlvbi4KKyovCisKK3N0YXRpYyBib29sIGNoZWNr X3R4X3JlYWRfb25seShzeXNfdmFyICpzZWxmLCBUSEQgKnRoZCwgc2V0X3ZhciAqdmFyKQorewor ICBpZiAodmFyLT50eXBlID09IE9QVF9ERUZBVUxUICYmIHRoZC0+aW5fYWN0aXZlX211bHRpX3N0 bXRfdHJhbnNhY3Rpb24oKSkKKyAgeworICAgIERCVUdfQVNTRVJUKHRoZC0+aW5fbXVsdGlfc3Rt dF90cmFuc2FjdGlvbl9tb2RlKCkpOworICAgIG15X2Vycm9yKEVSX0NBTlRfQ0hBTkdFX1RYX0NI QVJBQ1RFUklTVElDUywgTVlGKDApKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4g ZmFsc2U7Cit9CisKKworYm9vbCBTeXNfdmFyX3R4X3JlYWRfb25seTo6c2Vzc2lvbl91cGRhdGUo VEhEICp0aGQsIHNldF92YXIgKnZhcikKK3sKKyAgaWYgKHZhci0+dHlwZSA9PSBPUFRfU0VTU0lP TiAmJiBTeXNfdmFyX215Ym9vbDo6c2Vzc2lvbl91cGRhdGUodGhkLCB2YXIpKQorICAgIHJldHVy biB0cnVlOworICBpZiAodmFyLT50eXBlID09IE9QVF9ERUZBVUxUIHx8ICF0aGQtPmluX2FjdGl2 ZV9tdWx0aV9zdG10X3RyYW5zYWN0aW9uKCkpCisgIHsKKyAgICAvLyBAc2VlIFN5c192YXJfdHhf aXNvbGF0aW9uOjpzZXNzaW9uX3VwZGF0ZSgpIGFib3ZlIGZvciB0aGUgcnVsZXMuCisgICAgdGhk LT50eF9yZWFkX29ubHk9IHZhci0+c2F2ZV9yZXN1bHQudWxvbmdsb25nX3ZhbHVlOworICB9Cisg IHJldHVybiBmYWxzZTsKK30KKworCitzdGF0aWMgU3lzX3Zhcl90eF9yZWFkX29ubHkgU3lzX3R4 X3JlYWRfb25seSgKKyAgICAgICAidHhfcmVhZF9vbmx5IiwgIlNldCB0cmFuc2FjdGlvbnMgYXMg cmVhZCBvbmx5LiIsCisgICAgICAgU0VTU0lPTl9WQVIodHhfcmVhZF9vbmx5KSwgTk9fQ01EX0xJ TkUsIERFRkFVTFQoMCksCisgICAgICAgTk9fTVVURVhfR1VBUkQsIE5PVF9JTl9CSU5MT0csIE9O X0NIRUNLKGNoZWNrX3R4X3JlYWRfb25seSkpOworCiBzdGF0aWMgU3lzX3Zhcl91bG9uZ2xvbmcg U3lzX3RtcF90YWJsZV9zaXplKAogICAgICAgICJ0bXBfdGFibGVfc2l6ZSIsCiAgICAgICAgIklm IGFuIGludGVybmFsIGluLW1lbW9yeSB0ZW1wb3JhcnkgdGFibGUgZXhjZWVkcyB0aGlzIHNpemUs IE15U1FMICIKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3lzX3ZhcnMuaCcKLS0tIGEvc3FsL3N5 c192YXJzLmgJMjAxMS0xMi0wMiAxNDoxOTowMSArMDAwMAorKysgYi9zcWwvc3lzX3ZhcnMuaAky MDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xNzU1LDYgKzE3NTUsMjIgQEAgcHVibGljOgog ICB2aXJ0dWFsIGJvb2wgc2Vzc2lvbl91cGRhdGUoVEhEICp0aGQsIHNldF92YXIgKnZhcik7CiB9 OwogCisKK2NsYXNzIFN5c192YXJfdHhfcmVhZF9vbmx5OiBwdWJsaWMgU3lzX3Zhcl9teWJvb2wK K3sKK3B1YmxpYzoKKyAgU3lzX3Zhcl90eF9yZWFkX29ubHkoY29uc3QgY2hhciAqbmFtZV9hcmcs IGNvbnN0IGNoYXIgKmNvbW1lbnQsIGludCBmbGFnX2FyZ3MsCisgICAgICAgICAgICAgICAgICAg ICAgIHB0cmRpZmZfdCBvZmYsIHNpemVfdCBzaXplLCBDTURfTElORSBnZXRvcHQsCisgICAgICAg ICAgICAgICAgICAgICAgIG15X2Jvb2wgZGVmX3ZhbCwgUG9seUxvY2sgKmxvY2ssCisgICAgICAg ICAgICAgICAgICAgICAgIGVudW0gYmlubG9nX3N0YXR1c19lbnVtIGJpbmxvZ19zdGF0dXNfYXJn LAorICAgICAgICAgICAgICAgICAgICAgICBvbl9jaGVja19mdW5jdGlvbiBvbl9jaGVja19mdW5j KQorICAgIDpTeXNfdmFyX215Ym9vbChuYW1lX2FyZywgY29tbWVudCwgZmxhZ19hcmdzLCBvZmYs IHNpemUsIGdldG9wdCwKKyAgICAgICAgICAgICAgICAgICAgZGVmX3ZhbCwgbG9jaywgYmlubG9n X3N0YXR1c19hcmcsIG9uX2NoZWNrX2Z1bmMpCisgIHt9CisgIHZpcnR1YWwgYm9vbCBzZXNzaW9u X3VwZGF0ZShUSEQgKnRoZCwgc2V0X3ZhciAqdmFyKTsKK307CisKKwogLyoqCiAgICBBIGNsYXNz IGZvciBAQGdsb2JhbC5iaW5sb2dfY2hlY2tzdW0gdGhhdCBoYXMKICAgIGEgc3BlY2lhbGl6ZWQg dXBkYXRlIG1ldGhvZC4KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvdHJhbnNhY3Rpb24uY2MnCi0t LSBhL3NxbC90cmFuc2FjdGlvbi5jYwkyMDExLTA2LTA5IDA4OjU4OjQxICswMDAwCisrKyBiL3Nx bC90cmFuc2FjdGlvbi5jYwkyMDEyLTAyLTA5IDE2OjQ0OjQ2ICswMDAwCkBAIC0xOCw2ICsxOCw3 IEBACiAjaW5jbHVkZSAidHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJycGxfaGFuZGxlci5oIgog I2luY2x1ZGUgImRlYnVnX3N5bmMuaCIgICAgICAgICAvLyBERUJVR19TWU5DCisjaW5jbHVkZSAi c3FsX2FjbC5oIiAgICAgICAgICAgIC8vIFNVUEVSX0FDTAogCiAvKiBDb25kaXRpb25zIHVuZGVy IHdoaWNoIHRoZSB0cmFuc2FjdGlvbiBzdGF0ZSBtdXN0IG5vdCBjaGFuZ2UuICovCiBzdGF0aWMg Ym9vbCB0cmFuc19jaGVjayhUSEQgKnRoZCkKQEAgLTEzMCw3ICsxMzEsOCBAQCBib29sIHRyYW5z X2JlZ2luKFRIRCAqdGhkLCB1aW50IGZsYWdzKQogICAgICAgKHRoZC0+dmFyaWFibGVzLm9wdGlv bl9iaXRzICYgT1BUSU9OX1RBQkxFX0xPQ0spKQogICB7CiAgICAgdGhkLT52YXJpYWJsZXMub3B0 aW9uX2JpdHMmPSB+T1BUSU9OX1RBQkxFX0xPQ0s7Ci0gICAgdGhkLT5zZXJ2ZXJfc3RhdHVzJj0g flNFUlZFUl9TVEFUVVNfSU5fVFJBTlM7CisgICAgdGhkLT5zZXJ2ZXJfc3RhdHVzJj0KKyAgICAg IH4oU0VSVkVSX1NUQVRVU19JTl9UUkFOUyB8IFNFUlZFUl9TVEFUVVNfSU5fVFJBTlNfUkVBRE9O TFkpOwogICAgIHJlcz0gdGVzdChoYV9jb21taXRfdHJhbnModGhkLCBUUlVFKSk7CiAgIH0KIApA QCAtMTUyLDYgKzE1NCwzMSBAQCBib29sIHRyYW5zX2JlZ2luKFRIRCAqdGhkLCB1aW50IGZsYWdz KQogICBpZiAoZmxhZ3MgJiBNWVNRTF9TVEFSVF9UUkFOU19PUFRfV0lUSF9DT05TX1NOQVBTSE9U KQogICAgIHJlcz0gaGFfc3RhcnRfY29uc2lzdGVudF9zbmFwc2hvdCh0aGQpOwogCisgIC8vIFRo ZSBSTy9SVyBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgIGlmIChmbGFncyAmIE1Z U1FMX1NUQVJUX1RSQU5TX09QVF9SRUFEX09OTFkpCisgIHsKKyAgICB0aGQtPnR4X3JlYWRfb25s eT0gdHJ1ZTsKKyAgICB0aGQtPnNlcnZlcl9zdGF0dXN8PSBTRVJWRVJfU1RBVFVTX0lOX1RSQU5T X1JFQURPTkxZOworICB9CisgIGVsc2UgaWYgKGZsYWdzICYgTVlTUUxfU1RBUlRfVFJBTlNfT1BU X1JFQURfV1JJVEUpCisgIHsKKyAgICAvKgorICAgICAgRXhwbGljaXRseSBzdGFydGluZyBhIFJX IHRyYW5zYWN0aW9uIHdoZW4gdGhlIHNlcnZlciBpcyBpbgorICAgICAgcmVhZC1vbmx5IG1vZGUs IGlzIG5vdCBhbGxvd2VkIHVubGVzcyB0aGUgdXNlciBoYXMgU1VQRVIgcHJpdi4KKyAgICAgIElt cGxpY2l0bHkgc3RhcnRpbmcgYSBSVyB0cmFuc2FjdGlvbiBpcyBhbGxvd2VkIGZvciBiYWNrd2Fy ZAorICAgICAgY29tcGF0aWJpbGl0eS4KKyAgICAqLworICAgIGNvbnN0IG15X2Jvb2wgdXNlcl9p c19zdXBlcj0KKyAgICAgICgodWxvbmcpKHRoZC0+c2VjdXJpdHlfY3R4LT5tYXN0ZXJfYWNjZXNz ICYgU1VQRVJfQUNMKSA9PQorICAgICAgICh1bG9uZylTVVBFUl9BQ0wpOworICAgIGlmIChvcHRf cmVhZG9ubHkgJiYgIXVzZXJfaXNfc3VwZXIpCisgICAgeworICAgICAgbXlfZXJyb3IoRVJfT1BU SU9OX1BSRVZFTlRTX1NUQVRFTUVOVCwgTVlGKDApLCAiLS1yZWFkLW9ubHkiKTsKKyAgICAgIERC VUdfUkVUVVJOKHRydWUpOworICAgIH0KKyAgICB0aGQtPnR4X3JlYWRfb25seT0gZmFsc2U7Cisg IH0KKwogICBEQlVHX1JFVFVSTih0ZXN0KHJlcykpOwogfQogCkBAIC0xNzMsNyArMjAwLDggQEAg Ym9vbCB0cmFuc19jb21taXQoVEhEICp0aGQpCiAgIGlmICh0cmFuc19jaGVjayh0aGQpKQogICAg IERCVUdfUkVUVVJOKFRSVUUpOwogCi0gIHRoZC0+c2VydmVyX3N0YXR1cyY9IH5TRVJWRVJfU1RB VFVTX0lOX1RSQU5TOworICB0aGQtPnNlcnZlcl9zdGF0dXMmPQorICAgIH4oU0VSVkVSX1NUQVRV U19JTl9UUkFOUyB8IFNFUlZFUl9TVEFUVVNfSU5fVFJBTlNfUkVBRE9OTFkpOwogICByZXM9IGhh X2NvbW1pdF90cmFucyh0aGQsIFRSVUUpOwogICAvKgogICAgIGlmIHJlcyBpcyBub24temVybywg dGhlbiBoYV9jb21taXRfdHJhbnMgaGFzIHJvbGxlZCBiYWNrIHRoZQpAQCAtMjE2LDcgKzI0NCw4 IEBAIGJvb2wgdHJhbnNfY29tbWl0X2ltcGxpY2l0KFRIRCAqdGhkKQogICAgIC8qIFNhZmV0eSBp ZiBvbmUgZGlkICJkcm9wIHRhYmxlIiBvbiBsb2NrZWQgdGFibGVzICovCiAgICAgaWYgKCF0aGQt PmxvY2tlZF90YWJsZXNfbW9kZSkKICAgICAgIHRoZC0+dmFyaWFibGVzLm9wdGlvbl9iaXRzJj0g fk9QVElPTl9UQUJMRV9MT0NLOwotICAgIHRoZC0+c2VydmVyX3N0YXR1cyY9IH5TRVJWRVJfU1RB VFVTX0lOX1RSQU5TOworICAgIHRoZC0+c2VydmVyX3N0YXR1cyY9CisgICAgICB+KFNFUlZFUl9T VEFUVVNfSU5fVFJBTlMgfCBTRVJWRVJfU1RBVFVTX0lOX1RSQU5TX1JFQURPTkxZKTsKICAgICBy ZXM9IHRlc3QoaGFfY29tbWl0X3RyYW5zKHRoZCwgVFJVRSkpOwogICB9CiAKQEAgLTI1Miw3ICsy ODEsOCBAQCBib29sIHRyYW5zX3JvbGxiYWNrKFRIRCAqdGhkKQogICBpZiAodHJhbnNfY2hlY2so dGhkKSkKICAgICBEQlVHX1JFVFVSTihUUlVFKTsKIAotICB0aGQtPnNlcnZlcl9zdGF0dXMmPSB+ U0VSVkVSX1NUQVRVU19JTl9UUkFOUzsKKyAgdGhkLT5zZXJ2ZXJfc3RhdHVzJj0KKyAgICB+KFNF UlZFUl9TVEFUVVNfSU5fVFJBTlMgfCBTRVJWRVJfU1RBVFVTX0lOX1RSQU5TX1JFQURPTkxZKTsK ICAgcmVzPSBoYV9yb2xsYmFja190cmFucyh0aGQsIFRSVUUpOwogICAodm9pZCkgUlVOX0hPT0so dHJhbnNhY3Rpb24sIGFmdGVyX3JvbGxiYWNrLCAodGhkLCBGQUxTRSkpOwogICB0aGQtPnZhcmlh Ymxlcy5vcHRpb25fYml0cyY9IH5PUFRJT05fQkVHSU47CkBAIC03MTgsNyArNzQ4LDggQEAgYm9v bCB0cmFuc194YV9jb21taXQoVEhEICp0aGQpCiAKICAgdGhkLT52YXJpYWJsZXMub3B0aW9uX2Jp dHMmPSB+T1BUSU9OX0JFR0lOOwogICB0aGQtPnRyYW5zYWN0aW9uLmFsbC5yZXNldF91bnNhZmVf cm9sbGJhY2tfZmxhZ3MoKTsKLSAgdGhkLT5zZXJ2ZXJfc3RhdHVzJj0gflNFUlZFUl9TVEFUVVNf SU5fVFJBTlM7CisgIHRoZC0+c2VydmVyX3N0YXR1cyY9CisgICAgfihTRVJWRVJfU1RBVFVTX0lO X1RSQU5TIHwgU0VSVkVSX1NUQVRVU19JTl9UUkFOU19SRUFET05MWSk7CiAgIHhpZF9jYWNoZV9k ZWxldGUoJnRoZC0+dHJhbnNhY3Rpb24ueGlkX3N0YXRlKTsKICAgdGhkLT50cmFuc2FjdGlvbi54 aWRfc3RhdGUueGFfc3RhdGU9IFhBX05PVFI7CiAKQEAgLTc2NSw3ICs3OTYsOCBAQCBib29sIHRy YW5zX3hhX3JvbGxiYWNrKFRIRCAqdGhkKQogCiAgIHRoZC0+dmFyaWFibGVzLm9wdGlvbl9iaXRz Jj0gfk9QVElPTl9CRUdJTjsKICAgdGhkLT50cmFuc2FjdGlvbi5hbGwucmVzZXRfdW5zYWZlX3Jv bGxiYWNrX2ZsYWdzKCk7Ci0gIHRoZC0+c2VydmVyX3N0YXR1cyY9IH5TRVJWRVJfU1RBVFVTX0lO X1RSQU5TOworICB0aGQtPnNlcnZlcl9zdGF0dXMmPQorICAgIH4oU0VSVkVSX1NUQVRVU19JTl9U UkFOUyB8IFNFUlZFUl9TVEFUVVNfSU5fVFJBTlNfUkVBRE9OTFkpOwogICB4aWRfY2FjaGVfZGVs ZXRlKCZ0aGQtPnRyYW5zYWN0aW9uLnhpZF9zdGF0ZSk7CiAgIHRoZC0+dHJhbnNhY3Rpb24ueGlk X3N0YXRlLnhhX3N0YXRlPSBYQV9OT1RSOwogCgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBm b3IgcHVzaCBlbWFpbHMpLg==