From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Kevin Buettner To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Merge #25 `tests/gdb-testsuite-sanity: add testcase` Date: Thu, 23 Jul 2026 18:34:41 GMT Message-ID: <178483168177.1.2519790906521544870.rpms-gdb-e66c7e71e79e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: e66c7e71e79e473ffc278879bd042ebdf2123aad QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogZTY2YzdlNzFlNzllNDczZmZjMjc4ODc5YmQwNDJlYmRm MjEyM2FhZApBdXRob3IgOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+CkRhdGUg ICA6IDIwMjItMDEtMTdUMTY6NDQ6NTArMDA6MDAKU3RhdHMgIDogKzM3MjkvLTc2MjUgaW4gNjAg ZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9j L2U2NmM3ZTcxZTc5ZTQ3M2ZmYzI3ODg3OWJkMDQyZWJkZjIxMjNhYWQ/YnJhbmNoPWZpeC1kdXAt cGF0Y2gKCkxvZzoKTWVyZ2UgIzI1IGB0ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eTogYWRkIHRl c3RjYXNlYAoKLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9NYWtl ZmlsZSBiL3Rlc3RzL2dkYi10ZXN0c3VpdGUtc2FuaXR5L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NGE5MjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9n ZGItdGVzdHN1aXRlLXNhbml0eS9NYWtlZmlsZQpAQCAtMCwwICsxLDY4IEBACisjIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CisjCisjICAgTWFrZWZpbGUgb2YgL3Rvb2xzL2dkYi9TYW5pdHkvZ2RiLXRlc3RzdWl0ZS1z YW5pdHkKKyMgICBEZXNjcmlwdGlvbjogZ2RiIHRlc3RpbmcgYnkgdXBzdHJlYW0gdGVzdHN1aXRl CisjICAgQXV0aG9yOiBNaWNoYWwgS29sYXIgPG1rb2xhckByZWRoYXQuY29tPgorIworIyB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgorIworIyAgIENvcHlyaWdodCAoYykgMjAyMSBSZWQgSGF0LCBJbmMuCisjCisjICAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzCisjICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YKKyMgICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlCisjICAgdXNlZnVsLCBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZAorIyAgIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgICBQVVJQT1NF LiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor IworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2Vl IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uCisjCisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK2V4cG9y dCBURVNUPS90b29scy9nZGIvU2FuaXR5L2dkYi10ZXN0c3VpdGUtc2FuaXR5CitleHBvcnQgVEVT VFZFUlNJT049MS4wCisKK0JVSUxUX0ZJTEVTPQorCitGSUxFUz0kKE1FVEFEQVRBKSBydW50ZXN0 LnNoIE1ha2VmaWxlIFBVUlBPU0UgcmVmCisKKy5QSE9OWTogYWxsIGluc3RhbGwgZG93bmxvYWQg Y2xlYW4KKworcnVuOiAkKEZJTEVTKSBidWlsZAorCS4vcnVudGVzdC5zaAorCitidWlsZDogJChC VUlMVF9GSUxFUykKKwl0ZXN0IC14IHJ1bnRlc3Quc2ggfHwgY2htb2QgYSt4IHJ1bnRlc3Quc2gK KworLlNJTEVOVDogcmVmX2ZpbGUKK3JlZl9maWxlOiAuL3JlZi9nZW4uc2gKKwl0ZXN0IC14IC4v cmVmL2dlbi5zaCB8fCBjaG1vZCBhK3ggLi9yZWYvZ2VuLnNoCisJLi9yZWYvZ2VuLnNoCisKK2Ns ZWFuOgorCXJtIC1mICp+ICQoQlVJTFRfRklMRVMpCisKKworaW5jbHVkZSAvdXNyL3NoYXJlL3Jo dHMvbGliL3JodHMtbWFrZS5pbmNsdWRlCisKKyQoTUVUQURBVEEpOiBNYWtlZmlsZQorCUBlY2hv ICJPd25lcjogICAgICAgICAgIE1pY2hhbCBLb2xhciA8bWtvbGFyQHJlZGhhdC5jb20+IiA+ICQo TUVUQURBVEEpCisJQGVjaG8gIk5hbWU6ICAgICAgICAgICAgJChURVNUKSIgPj4gJChNRVRBREFU QSkKKwlAZWNobyAiVGVzdFZlcnNpb246ICAgICAkKFRFU1RWRVJTSU9OKSIgPj4gJChNRVRBREFU QSkKKwlAZWNobyAiUGF0aDogICAgICAgICAgICAkKFRFU1RfRElSKSIgPj4gJChNRVRBREFUQSkK KwlAZWNobyAiRGVzY3JpcHRpb246ICAgICBnZGIgdGVzdGluZyBieSB1cHN0cmVhbSB0ZXN0c3Vp dGUiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlR5cGU6ICAgICAgICAgICAgU2FuaXR5IiA+PiAk KE1FVEFEQVRBKQorCUBlY2hvICJUZXN0VGltZTogICAgICAgIDFoIiA+PiAkKE1FVEFEQVRBKQor CUBlY2hvICJSdW5Gb3I6ICAgICAgICAgIGdkYiIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiUmVx dWlyZXM6ICAgICAgICBnZGIgcnBtLWJ1aWxkIHl1bS11dGlscyBkZWphZ251IG1ha2UgZ2NjIGdj Yy1nZm9ydHJhbiBnbGliYyIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiUHJpb3JpdHk6ICAgICAg ICBOb3JtYWwiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIkxpY2Vuc2U6ICAgICAgICAgR1BMdjIr IiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJDb25maWRlbnRpYWw6ICAgIG5vIiA+PiAkKE1FVEFE QVRBKQorCUBlY2hvICJEZXN0cnVjdGl2ZTogICAgIG5vIiA+PiAkKE1FVEFEQVRBKQorCUBlY2hv ICJSZWxlYXNlczogICAgICAgIC1SSEVMNCAtUkhFTENsaWVudDUgLVJIRUxTZXJ2ZXI1IC1SSEVM NiAtUkhFTDciID4+ICQoTUVUQURBVEEpCisKKwlyaHRzLWxpbnQgJChNRVRBREFUQSkKCmRpZmYg LS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9QVVJQT1NFIGIvdGVzdHMvZ2RiLXRl c3RzdWl0ZS1zYW5pdHkvUFVSUE9TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li44M2Q4NjhmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkv UFVSUE9TRQpAQCAtMCwwICsxLDMwIEBACitQVVJQT1NFIG9mIC90b29scy9nZGIvU2FuaXR5L2dk Yi10ZXN0c3VpdGUtc2FuaXR5CitEZXNjcmlwdGlvbjogZ2RiIHRlc3RpbmcgYnkgdXBzdHJlYW0g dGVzdHN1aXRlCitBdXRob3I6IE1pY2hhbCBLb2xhciA8bWtvbGFyQHJlZGhhdC5jb20+CisKK0J5 IGRlZmF1bHQsIHRlc3RzdWl0ZSBpcyBleGVjdXRlZCB3aXRoIGRlZmF1bHQgb3B0aW9ucyBmb3Ig dGhlIHBhY2thZ2UgdGhhdAorY29ycmVzcG9uZHMgdG8gdGhlIGdkYiBjb21tYW5kIGJ5IG5ld2x5 IGNyZWF0ZWQgb3JkaW5hcnkgdXNlci4gQmVmb3JlCitleGVjdXRpbmcsIHRoZSB0ZXN0c3VpdGUg aXMgcmVkdWNlZCBieSB0aGUgYXBwcm9wcmlhdGUgcmVmZXJlbmNlIGZpbGUgdGhhdAorZGVmaW5l cyB0aGUgYWxsb3dlZCB0ZXN0IHJhbmdlLgorCitFeGVjdXRpbmcgY2FuIGJlIG1vZGlmaWVkIGJ5 IHRoZXNlIHZhcmlhYmxlczoKKyAgKiBCVUlMRF9VU0VSICAgICAgLS0gdXNlciB3aGljaCB3aWxs IGJlIHVzZWQgZm9yIGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIGdkYgorICAqIFBBQ0tBR0UgICAgICAg ICAtLSBleHBsaWNpdGx5IGRlZmluZXMgd2hpY2ggcnBtIHBhY2thZ2Ugc2hvdWxkIGJlIHRlc3Rl ZAorICAqIFJVTlRFU1RGTEFHUyAgICAtLSB2YXJpYWJsZSB3aGljaCB3aWxsIGJlIGZvcndhcmRl ZCB0byAnbWFrZSBjaGVjaycgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICBhbmQgY2Fu IGJlIHVzZWQgdG8gcmVkdWNlIHRoZSByYW5nZSBvZiB0ZXN0aW5nCisgICogVEVTVFNfQ09VTlRf TUlOIC0tIG1pbmltdW0gbnVtYmVyIG9mIGNhc2VzIHRoYXQgc2hvdWxkIGJlIHRlc3RlZCAoZG9l cyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgYWZmZWN0IHRoZSB0cmlnZ2VyaW5nIG9mIHRl c3RjYXNlcywgaXQgb25seSBzZXRzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBv ZiB0aGUgcmVmZXJlbmNlIGNvbXBhcmF0b3IpCisKK0V4YW1wbGU6CisgICQgQlVJTERfVVNFUj1y b290IFwKKyAgICBQQUNLQUdFPWdkYiBcCisgICAgUlVOVEVTVEZMQUdTPSdHREI9L3Vzci9iaW4v Z2RiIGdkYi5iYXNlL2JyZWFrKi5leHAnIFwKKyAgICBURVNUU19DT1VOVF9NSU49MzIgbWFrZSBy dW4KKworUmVmZXJlbmNlIGZpbGVzIGluc3RydWN0aW9uczoKKyAgKiBwYXRoIG9mIHJlZmVyZW5j ZSBmaWxlIGZvciBjdXJyZW50IHBhY2thZ2UsIGRpc3RyaWJ1dGlvbiBhbmQgYXJjaGl0ZWN0dXJl CisgICAgY2FuIGJlIGdlbmVyYXRlZCBieToKKyAgICAgICQgbWFrZSByZWZfZmlsZQorICAgIG9y IGRpcmVjdGx5IGJ5OgorICAgICAgJCAuL3JlZi9nZW4uc2gKCmRpZmYgLS1naXQgYS90ZXN0cy9n ZGItdGVzdHN1aXRlLXNhbml0eS9tYWluLmZtZiBiL3Rlc3RzL2dkYi10ZXN0c3VpdGUtc2FuaXR5 L21haW4uZm1mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZjAzNTEKLS0t IC9kZXYvbnVsbAorKysgYi90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9tYWluLmZtZgpAQCAt MCwwICsxLDQ1IEBACitzdW1tYXJ5OiBnZGIgdGVzdGluZyBieSB1cHN0cmVhbSB0ZXN0c3VpdGUK K2Rlc2NyaXB0aW9uOiB8CisgICAgQnkgZGVmYXVsdCwgdGVzdHN1aXRlIGlzIGV4ZWN1dGVkIHdp dGggZGVmYXVsdCBvcHRpb25zIGZvciB0aGUgcGFja2FnZSB0aGF0CisgICAgY29ycmVzcG9uZHMg dG8gdGhlIGdkYiBjb21tYW5kIGJ5IG5ld2x5IGNyZWF0ZWQgb3JkaW5hcnkgdXNlci4gQmVmb3Jl CisgICAgZXhlY3V0aW5nLCB0aGUgdGVzdHN1aXRlIGlzIHJlZHVjZWQgYnkgdGhlIGFwcHJvcHJp YXRlIHJlZmVyZW5jZSBmaWxlIHRoYXQKKyAgICBkZWZpbmVzIHRoZSBhbGxvd2VkIHRlc3QgcmFu Z2UuCisKKyAgICBFeGVjdXRpbmcgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZXNlIHZhcmlhYmxlczoK KyAgICAgICogQlVJTERfVVNFUiAgICAgIC0tIHVzZXIgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBi dWlsZGluZyBhbmQgdGVzdGluZyBnZGIKKyAgICAgICogUEFDS0FHRSAgICAgICAgIC0tIGV4cGxp Y2l0bHkgZGVmaW5lcyB3aGljaCBycG0gcGFja2FnZSBzaG91bGQgYmUgdGVzdGVkCisgICAgICAq IFJVTlRFU1RGTEFHUyAgICAtLSB2YXJpYWJsZSB3aGljaCB3aWxsIGJlIGZvcndhcmRlZCB0byAn bWFrZSBjaGVjaycgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGNhbiBi ZSB1c2VkIHRvIHJlZHVjZSB0aGUgcmFuZ2Ugb2YgdGVzdGluZworICAgICAgKiBURVNUU19DT1VO VF9NSU4gLS0gbWluaW11bSBudW1iZXIgb2YgY2FzZXMgdGhhdCBzaG91bGQgYmUgdGVzdGVkIChk b2VzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmZWN0IHRoZSB0cmlnZ2VyaW5n IG9mIHRlc3RjYXNlcywgaXQgb25seSBzZXRzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsdWUgb2YgdGhlIHJlZmVyZW5jZSBjb21wYXJhdG9yKQorCisgICAgRXhhbXBsZToKKyAg ICAgICQgQlVJTERfVVNFUj1yb290IFwKKyAgICAgICAgUEFDS0FHRT1nZGIgXAorICAgICAgICBS VU5URVNURkxBR1M9J0dEQj0vdXNyL2Jpbi9nZGIgZ2RiLmJhc2UvYnJlYWsqLmV4cCcgXAorICAg ICAgICBURVNUU19DT1VOVF9NSU49MzIgbWFrZSBydW4KKworICAgIFJlZmVyZW5jZSBmaWxlcyBp bnN0cnVjdGlvbnM6CisgICAgICAqIHBhdGggb2YgcmVmZXJlbmNlIGZpbGUgZm9yIGN1cnJlbnQg cGFja2FnZSwgZGlzdHJpYnV0aW9uIGFuZCBhcmNoaXRlY3R1cmUKKyAgICAgICAgY2FuIGJlIGdl bmVyYXRlZCBieToKKyAgICAgICAgICAkIG1ha2UgcmVmX2ZpbGUKKyAgICAgICAgb3IgZGlyZWN0 bHkgYnk6CisgICAgICAgICAgJCAuL3JlZi9nZW4uc2gKK2NvbnRhY3Q6IE1pY2hhbCBLb2xhciA8 bWtvbGFyQHJlZGhhdC5jb20+Citjb21wb25lbnQ6CistIGdkYgordGVzdDogLi9ydW50ZXN0LnNo CitmcmFtZXdvcms6IGJlYWtlcmxpYgorcmVjb21tZW5kOgorLSBnZGIKKy0gcnBtLWJ1aWxkCist IHl1bS11dGlscworLSBkZWphZ251CistIG1ha2UKKy0gZ2NjCistIGdjYy1nZm9ydHJhbgorLSBn bGliYworZHVyYXRpb246IDFoCitleHRyYS1zdW1tYXJ5OiAvdG9vbHMvZ2RiL1Nhbml0eS9nZGIt dGVzdHN1aXRlLXNhbml0eQorZXh0cmEtdGFzazogL3Rvb2xzL2dkYi9TYW5pdHkvZ2RiLXRlc3Rz dWl0ZS1zYW5pdHkKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9yZWYv ZGVmYXVsdCBiL3Rlc3RzL2dkYi10ZXN0c3VpdGUtc2FuaXR5L3JlZi9kZWZhdWx0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODYwYTUKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9yZWYvZGVmYXVsdApAQCAtMCwwICsxLDQzMSBAQAor Z2RiLmJhc2UvYWR2YW5jZS11bnRpbC1tdWx0aXBsZS1sb2NhdGlvbnMuZXhwCitnZGIuYmFzZS9h bGlhcy5leHAKK2dkYi5iYXNlL2FsaWduLWMuZXhwCitnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hp bGUtcnVubmluZy5leHAKK2dkYi5iYXNlL2Fub24uZXhwCitnZGIuYmFzZS9hcmdzLmV4cAorZ2Ri LmJhc2UvYXJyYXlpZHguZXhwCitnZGIuYmFzZS9hdHRhY2gtbm9uLXBncnAtbGVhZGVyLmV4cAor Z2RiLmJhc2UvYXR0YWNoLXBpZS1ub2V4ZWMuZXhwCitnZGIuYmFzZS9hdHRhY2gtdHdpY2UuZXhw CitnZGIuYmFzZS9hdHRhY2gtd2FpdC1pbnB1dC5leHAKK2dkYi5iYXNlL2F1dG8tbG9hZC5leHAK K2dkYi5iYXNlL2JhbmcuZXhwCitnZGIuYmFzZS9iYXRjaC1leGl0LXN0YXR1cy5leHAKK2dkYi5i YXNlL2JmcC10ZXN0LmV4cAorZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVhdC5leHAKK2dkYi5i YXNlL2JpdGZpZWxkczIuZXhwCitnZGIuYmFzZS9iaXRmaWVsZHMuZXhwCitnZGIuYmFzZS9iaXRv cHMuZXhwCitnZGIuYmFzZS9icC1jbWRzLWV4ZWN1dGlvbi14LXNjcmlwdC5leHAKK2dkYi5iYXNl L2JyYW5jaC10by1zZWxmLmV4cAorZ2RiLmJhc2UvYnJlYWstYWx3YXlzLmV4cAorZ2RiLmJhc2Uv YnJlYWstY2FsbGVyLWxpbmUuZXhwCitnZGIuYmFzZS9icmVhay1pbmNsdWRlLmV4cAorZ2RiLmJh c2UvYnJlYWstaW5saW5lLmV4cAorZ2RiLmJhc2UvYnJlYWstbWFpbi1maWxlLXJlbW92ZS1mYWls LmV4cAorZ2RiLmJhc2UvYnJlYWstb24tbGlua2VyLWdjZC1mdW5jdGlvbi5leHAKK2dkYi5iYXNl L2JyZWFrcG9pbnQtc2hhZG93LmV4cAorZ2RiLmJhc2UvYnJlYWstcHJvYmVzLmV4cAorZ2RiLmJh c2UvY2FjaGVkLXNvdXJjZS1maWxlLmV4cAorZ2RiLmJhc2UvY2FsbGV4aXQuZXhwCitnZGIuYmFz ZS9jYWxsLXN0cnMuZXhwCitnZGIuYmFzZS9jYXRjaC1mb2xsb3ctZXhlYy5leHAKK2dkYi5iYXNl L2NhdGNoLWdkYi1jYXVzZWQtc2lnbmFscy5leHAKK2dkYi5iYXNlL2NhdGNoLXNpZ25hbC1mb3Jr LmV4cAorZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLXNpZ2luZm8tY29uZC5leHAKK2dkYi5iYXNlL2No ZWNrLXBzeW10YWIuZXhwCitnZGIuYmFzZS9jLWxpbmthZ2UtbmFtZS5leHAKK2dkYi5iYXNlL2Nv ZGVfZWxpbS5leHAKK2dkYi5iYXNlL2NvbW1hbmQtbGluZS1pbnB1dC5leHAKK2dkYi5iYXNlL2Nv bXBhcmUtc2VjdGlvbnMuZXhwCitnZGIuYmFzZS9jb21wbGV4LmV4cAorZ2RiLmJhc2UvY29tcHJk ZWJ1Zy5leHAKK2dkYi5iYXNlL2NvbnNlY3V0aXZlLXN0ZXAtb3Zlci5leHAKK2dkYi5iYXNlL2Nv bnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuZXhwCitnZGIuYmFzZS9jb3JlZHVtcC1maWx0ZXIu ZXhwCitnZGIuYmFzZS9jb3JlZmlsZTIuZXhwCitnZGIuYmFzZS9jb3JlZmlsZS1idWlsZGlkLmV4 cAorZ2RiLmJhc2UvY3Vyc2FsLmV4cAorZ2RiLmJhc2UvZGF0YWxpYi5leHAKK2dkYi5iYXNlL2Rj YWNoZS1saW5lLXJlYWQtZXJyb3IuZXhwCitnZGIuYmFzZS9kZWZhdWx0LWFyZ3MuZXhwCitnZGIu YmFzZS9kZWZpbmUuZXhwCitnZGIuYmFzZS9kaXNhYmxlZC1sb2NhdGlvbi5leHAKK2dkYi5iYXNl L2Rpc2FzbS1lbmQtY3UuZXhwCitnZGIuYmFzZS9kaXNhc20tb3B0aW0uZXhwCitnZGIuYmFzZS9k b3VibGUtcHJvbXB0LXRhcmdldC1ldmVudC1lcnJvci5leHAKK2dkYi5iYXNlL2RwcmludGYtZGV0 YWNoLmV4cAorZ2RiLmJhc2UvZHByaW50Zi1uZXh0LmV4cAorZ2RiLmJhc2UvZHByaW50Zi1ub24t c3RvcC5leHAKK2dkYi5iYXNlL2RwcmludGYtcGVuZGluZy5leHAKK2dkYi5iYXNlL2RzbzJkc28u ZXhwCitnZGIuYmFzZS9kdW1wLmV4cAorZ2RiLmJhc2UvZHVwLXNlY3QuZXhwCitnZGIuYmFzZS9l Y2hvLmV4cAorZ2RiLmJhc2UvZW1wdHlfZXhlLmV4cAorZ2RiLmJhc2UvZW5kaWFuLmV4cAorZ2Ri LmJhc2UvZW5kaWFuaXR5LmV4cAorZ2RiLmJhc2UvZW51bXZhbC5leHAKK2dkYi5iYXNlL2Vudmly b24uZXhwCitnZGIuYmFzZS9ldS1zdHJpcC1pbmZjYWxsLmV4cAorZ2RiLmJhc2UvZXZhbC5leHAK K2dkYi5iYXNlL2V4YW1pbmUtYmFja3dhcmQuZXhwCitnZGIuYmFzZS9leGVjLWludmFsaWQtc3lz cm9vdC5leHAKK2dkYi5iYXNlL2V4ZWN1dGlvbi10ZXJtaW9zLmV4cAorZ2RiLmJhc2UvZXhlLWxv Y2suZXhwCitnZGIuYmFzZS9leGl0c2lnbmFsLmV4cAorZ2RiLmJhc2UvZXhwYW5kLXBzeW10YWJz LmV4cAorZ2RiLmJhc2UvZmlsZXN5bS5leHAKK2dkYi5iYXNlL2ZpbmQtdW5tYXBwZWQuZXhwCitn ZGIuYmFzZS9maXhzZWN0aW9uLmV4cAorZ2RiLmJhc2UvZmxleGlibGUtYXJyYXktbWVtYmVyLmV4 cAorZ2RiLmJhc2UvZmxvYXQuZXhwCitnZGIuYmFzZS9mbG9hdG4uZXhwCitnZGIuYmFzZS9mb2N1 cy1jbWQtcHJldi5leHAKK2dkYi5iYXNlL2ZvbGwtZXhlYy5leHAKK2dkYi5iYXNlL2ZvbGwtZXhl Yy1tb2RlLmV4cAorZ2RiLmJhc2UvZm9ydHJhbi1zeW0tY2FzZS5leHAKK2dkYi5iYXNlL2ZyYW1l LXNlbGVjdGlvbi5leHAKK2dkYi5iYXNlL2ZyZWVicGNtZC5leHAKK2dkYi5iYXNlL2Z1bGxuYW1l LmV4cAorZ2RiLmJhc2UvZnVsbHBhdGgtZXhwYW5kLmV4cAorZ2RiLmJhc2UvZnVuYy1wdHIuZXhw CitnZGIuYmFzZS9nY29yZS1idWZmZXItb3ZlcmZsb3cuZXhwCitnZGIuYmFzZS9nY29yZS1yZWxy by5leHAKK2dkYi5iYXNlL2dkYjEwNTYuZXhwCitnZGIuYmFzZS9nZGIxMDkwLmV4cAorZ2RiLmJh c2UvZ2RiMTE1MzAuZXhwCitnZGIuYmFzZS9nZGIxMTUzMS5leHAKK2dkYi5iYXNlL2dkYjEyNTAu ZXhwCitnZGIuYmFzZS9nZGIxNTU1LmV4cAorZ2RiLmJhc2UvZ2RiMTgyMS5leHAKK2dkYi5iYXNl L2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCitnZGIuYmFzZS9nZGItc2lndGVybS0yLmV4cAorZ2Ri LmJhc2UvaGFzaGxpbmUyLmV4cAorZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cAorZ2RiLmJhc2UvaGJy ZWFrLmV4cAorZ2RiLmJhc2UvaGJyZWFrLXVubWFwcGVkLmV4cAorZ2RiLmJhc2UvaGVscC5leHAK K2dkYi5iYXNlL2hpc3RvcnktZHVwbGljYXRlcy5leHAKK2dkYi5iYXNlL2hvb2stc3RvcC5leHAK K2dkYi5iYXNlL2h1Z2UuZXhwCitnZGIuYmFzZS9ody1zdy1icmVhay1zYW1lLWFkZHJlc3MuZXhw CitnZGIuYmFzZS9pZmVsc2UuZXhwCitnZGIuYmFzZS9pbmRleC1jYWNoZS5leHAKK2dkYi5iYXNl L2luZmNhbGwtaW5wdXQuZXhwCitnZGIuYmFzZS9pbmZjYWxsLW5lc3RlZC1zdHJ1Y3RzLWMrKy5l eHAKK2dkYi5iYXNlL2luZmNhbGwtbmVzdGVkLXN0cnVjdHMtYy5leHAKK2dkYi5iYXNlL2luZm5h bi5leHAKK2dkYi5iYXNlL2luZm9saW5lLmV4cAorZ2RiLmJhc2UvaW5mby1sb2NhbHMtdW51c2Vk LXN0YXRpYy12YXIuZXhwCitnZGIuYmFzZS9pbmZvX21pbnN5bS5leHAKK2dkYi5iYXNlL2luZm8t cHJvYy5leHAKK2dkYi5iYXNlL2luZm8tcHJvZ3JhbS5leHAKK2dkYi5iYXNlL2luZm9fcXQuZXhw CitnZGIuYmFzZS9pbmZvLXNoYXJlZC5leHAKK2dkYi5iYXNlL2luZm9fc291cmNlcy5leHAKK2dk Yi5iYXNlL2luZm8tdGFyZ2V0LmV4cAorZ2RiLmJhc2UvaW5mby10eXBlcy1jKysuZXhwCitnZGIu YmFzZS9pbmZvLXR5cGVzLWMuZXhwCitnZGIuYmFzZS9pbmZvLXZhci5leHAKK2dkYi5iYXNlL2lu dGVyYWN0LmV4cAorZ2RiLmJhc2UvaW50ZXJydXB0LWRhZW1vbi1hdHRhY2guZXhwCitnZGIuYmFz ZS9pbnRlcnJ1cHQtZGFlbW9uLmV4cAorZ2RiLmJhc2UvaW50ZXJydXB0LW5vdGVybS5leHAKK2dk Yi5iYXNlL2ppdC1hdHRhY2gtcGllLmV4cAorZ2RiLmJhc2Uvaml0LXJlYWRlci1leGVjLmV4cAor Z2RiLmJhc2Uvaml0LXJlYWRlci1zaW1wbGUuZXhwCitnZGIuYmFzZS9qdW1wLmV4cAorZ2RiLmJh c2Uva2lsbC1kZXRhY2gtaW5mZXJpb3JzLWNtZC5leHAKK2dkYi5iYXNlL2tpbGxlZC1vdXRzaWRl LmV4cAorZ2RiLmJhc2UvbGFiZWwuZXhwCitnZGIuYmFzZS9sYWJlbC13aXRob3V0LWFkZHJlc3Mu ZXhwCitnZGIuYmFzZS9sYXJnZWNvcmUtbGFzdC1hZGRyZXNzLWxvY2suZXhwCitnZGIuYmFzZS9s aW5laW5jLmV4cAorZ2RiLmJhc2UvbGluZW5vLW1ha2V1cC5leHAKK2dkYi5iYXNlL2xpbmVzcGVj cy5leHAKK2dkYi5iYXNlL2xpbmUtc3ltdGFicy5leHAKK2dkYi5iYXNlL2xpc3QtYW1iaWd1b3Vz LmV4cAorZ2RiLmJhc2UvbGlzdC1taXNzaW5nLXNvdXJjZS5leHAKK2dkYi5iYXNlL2xvZ2ljYWwu ZXhwCitnZGIuYmFzZS9sb25nZXN0LXR5cGVzLmV4cAorZ2RiLmJhc2UvbG9uZ2ptcC5leHAKK2dk Yi5iYXNlL2xvbmdfbG9uZy5leHAKK2dkYi5iYXNlL21haW50LWV4cGFuZC1zeW1ib2xzLWhlYWRl ci1maWxlLmV4cAorZ2RiLmJhc2UvbWFpbnQtdGFyZ2V0LWFzeW5jLW9mZi5leHAKK2dkYi5iYXNl L21hbnktY29tcGxldGlvbnMuZXhwCitnZGIuYmFzZS9tYW55LWhlYWRlcnMuZXhwCitnZGIuYmFz ZS9tYXgtZGVwdGgtYysrLmV4cAorZ2RiLmJhc2UvbWF4LWRlcHRoLWMuZXhwCitnZGIuYmFzZS9t YXgtdmFsdWUtc2l6ZS5leHAKK2dkYi5iYXNlL21lbWF0dHIuZXhwCitnZGIuYmFzZS9taXBzX3By by5leHAKK2dkYi5iYXNlL21vdmUtZGlyLmV4cAorZ2RiLmJhc2UvbXN5bS1sYW5nLmV4cAorZ2Ri LmJhc2UvbmVzdGVkLWFkZHIuZXhwCitnZGIuYmFzZS9uZXh0b3ZlcmV4aXQuZXhwCitnZGIuYmFz ZS9ub2RlYnVnLmV4cAorZ2RiLmJhc2Uvbm9yZXR1cm4tZmluaXNoLmV4cAorZ2RiLmJhc2Uvbm9y ZXR1cm4tcmV0dXJuLmV4cAorZ2RiLmJhc2Uvb2Zmc2V0cy5leHAKK2dkYi5iYXNlL29zYWJpLmV4 cAorZ2RiLmJhc2Uvb3ZlcmxheXMuZXhwCitnZGIuYmFzZS9wYWdlLmV4cAorZ2RiLmJhc2UvcGFn aW5hdGUtYWZ0ZXItY3RybC1jLXJ1bm5pbmcuZXhwCitnZGIuYmFzZS9wYWdpbmF0ZS1iZy1leGVj dXRpb24uZXhwCitnZGIuYmFzZS9wYWdpbmF0ZS1leGVjdXRpb24tc3RhcnR1cC5leHAKK2dkYi5i YXNlL3BhZ2luYXRlLWluZmVyaW9yLWV4aXQuZXhwCitnZGIuYmFzZS9wYy1mcC5leHAKK2dkYi5i YXNlL3Blcm1pc3Npb25zLmV4cAorZ2RiLmJhc2UvcHIxMDE3OS5leHAKK2dkYi5iYXNlL3ByZXR0 eS1wcmludC5leHAKK2dkYi5iYXNlL3Byb2xvZ3VlLmV4cAorZ2RiLmJhc2UvcHJvbG9ndWUtaW5j bHVkZS5leHAKK2dkYi5iYXNlL3BzeW0tZXh0ZXJuYWwtZGVjbC5leHAKK2dkYi5iYXNlL3BzeW10 YWIuZXhwCitnZGIuYmFzZS9wdHItdHlwZWRlZi5leHAKK2dkYi5iYXNlL3F1aXQuZXhwCitnZGIu YmFzZS9xdWl0LWxpdmUuZXhwCitnZGIuYmFzZS9yYW5kb21pemUuZXhwCitnZGIuYmFzZS9yYW5k b20tc2lnbmFsLmV4cAorZ2RiLmJhc2UvcmVhZGxpbmUtb3ZlcmZsb3cuZXhwCitnZGIuYmFzZS9y ZWdncm91cHMuZXhwCitnZGIuYmFzZS9yZW1vdGUtZXhlYy1maWxlLmV4cAorZ2RiLmJhc2UvcmVt b3RlLmV4cAorZ2RiLmJhc2UvcmVtb3RldGltZW91dC5leHAKK2dkYi5iYXNlL3JlcmVhZC1yZWFk c3ltLmV4cAorZ2RiLmJhc2UvcmV0dXJuLmV4cAorZ2RiLmJhc2UvcmV0dXJuLW5vZGVidWcuZXhw CitnZGIuYmFzZS9ydW4tYWZ0ZXItYXR0YWNoLmV4cAorZ2RiLmJhc2Uvc2F2ZS1icC5leHAKK2dk Yi5iYXNlL3NlY3QtY21kLmV4cAorZ2RiLmJhc2Uvc2VwLmV4cAorZ2RiLmJhc2Uvc2Vwc3ltdGFi LmV4cAorZ2RiLmJhc2Uvc2VydmVyLWRlbC1icmVhay5leHAKK2dkYi5iYXNlL3NldC1pbmZlcmlv ci10dHkuZXhwCitnZGIuYmFzZS9zZXQtbGFuZy1hdXRvLmV4cAorZ2RiLmJhc2Uvc2V0LW5vYXNz aWduLmV4cAorZ2RiLmJhc2Uvc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC5leHAKK2dkYi5iYXNl L3NoZWxsLmV4cAorZ2RiLmJhc2Uvc2hyZWxvYy5leHAKK2dkYi5iYXNlL3NpZ2FsbC5leHAKK2dk Yi5iYXNlL3NpZ2NobGQuZXhwCitnZGIuYmFzZS9zaWduZXN0LmV4cAorZ2RiLmJhc2Uvc2lncmVw ZWF0LmV4cAorZ2RiLmJhc2Uvc2tpcC1pbmxpbmUuZXhwCitnZGIuYmFzZS9zb2xpYi1kaXNjLmV4 cAorZ2RiLmJhc2Uvc29saWItbm9kaXIuZXhwCitnZGIuYmFzZS9zb2xpYi1wcm9iZXMtbm9zaGFy ZWRsaWJyYXJ5LmV4cAorZ2RiLmJhc2Uvc29saWItdmFuaXNoLmV4cAorZ2RiLmJhc2Uvc291cmNl LWV4ZWN1dGlvbi5leHAKK2dkYi5iYXNlL3NvdXJjZS5leHAKK2dkYi5iYXNlL3Nzcy1icC1vbi11 c2VyLWJwLmV4cAorZ2RiLmJhc2Uvc3RhbGUtaW5mY2FsbC5leHAKK2dkYi5iYXNlL3N0YXJ0LmV4 cAorZ2RiLmJhc2Uvc3RhcnR1cC13aXRoLXNoZWxsLmV4cAorZ2RiLmJhc2Uvc3RhdGlzdGljcy5l eHAKK2dkYi5iYXNlL3N0ZXAtcmVzdW1lLWluZmNhbGwuZXhwCitnZGIuYmFzZS9zdGVwLXN3LWJy ZWFrcG9pbnQtYWRqdXN0LXBjLmV4cAorZ2RiLmJhc2Uvc3RlcC1zeW1sZXNzLmV4cAorZ2RiLmJh c2Uvc3RlcC10ZXN0LmV4cAorZ2RiLmJhc2Uvc3RydWN0czIuZXhwCitnZGIuYmFzZS9zdHJ1Y3Rz My5leHAKK2dkYi5iYXNlL3N0eWxlLmV4cAorZ2RiLmJhc2Uvc3R5bGUtbG9nZ2luZy5leHAKK2dk Yi5iYXNlL3N5bWJvbC1hbGlhcy5leHAKK2dkYi5iYXNlL3N5bS1maWxlLmV4cAorZ2RiLmJhc2Uv c3ltZmlsZS13YXJuLmV4cAorZ2RiLmJhc2Uvc3ltbGluay1zb3VyY2VmaWxlLmV4cAorZ2RiLmJh c2Uvc3ltdGFiLXNlYXJjaC1vcmRlci5leHAKK2dkYi5iYXNlL3RhYi1jcmFzaC5leHAKK2dkYi5i YXNlL3Rlcm0uZXhwCitnZGIuYmFzZS90ZXN0ZW52LmV4cAorZ2RiLmJhc2UvdHJhY2UtY29tbWFu ZHMuZXhwCitnZGIuYmFzZS90cmFjZWZvcmstem9tYmllLmV4cAorZ2RiLmJhc2UvdHdpY2UuZXhw CitnZGIuYmFzZS90eXBlLW9wYXF1ZS5leHAKK2dkYi5iYXNlL3VudGlsLmV4cAorZ2RiLmJhc2Uv dmFsdWUtZG91YmxlLWZyZWUuZXhwCitnZGIuYmFzZS92ZHNvLXdhcm5pbmcuZXhwCitnZGIuYmFz ZS92bGEtcHRyLmV4cAorZ2RiLmJhc2Uvd2FybmluZy5leHAKK2dkYi5iYXNlL3dhdGNoLWNvbmQt aW5mY2FsbC5leHAKK2dkYi5iYXNlL3dhdGNoLW5vbi1tZW0uZXhwCitnZGIuYmFzZS93YXRjaHBv aW50LWNvbmQtZ29uZS5leHAKK2dkYi5iYXNlL3dhdGNocG9pbnQtZGVsZXRlLmV4cAorZ2RiLmJh c2Uvd2F0Y2hwb2ludC1kdXJpbmctc3RlcC5leHAKK2dkYi5iYXNlL3dhdGNoLXZmb3JrLmV4cAor Z2RiLmJhc2Uvd2NoYXIuZXhwCitnZGIuYmFzZS93aXRoLmV4cAorZ2RiLmJhc2Uvd2l0aC1tZi5l eHAKK2dkYi5jcC9hYnN0cmFjdC1vcmlnaW4uZXhwCitnZGIuY3AvYW1iaWd1b3VzLmV4cAorZ2Ri LmNwL2Fub24tbnMuZXhwCitnZGIuY3AvYW5vbi1zdHJ1Y3QuZXhwCitnZGIuY3AvYW5vbi11bmlv bi5leHAKK2dkYi5jcC9hcmctcmVmZXJlbmNlLmV4cAorZ2RiLmNwL2IxNDY4MzUuZXhwCitnZGIu Y3AvYmFzZWVudW0uZXhwCitnZGIuY3AvYm9vbC5leHAKK2dkYi5jcC9icmVha3BvaW50LWxvY3Mu ZXhwCitnZGIuY3AvYnMxNTUwMy5leHAKK2dkYi5jcC9jYWxsLWMuZXhwCitnZGIuY3AvY2hhaW5l ZC1jYWxscy5leHAKK2dkYi5jcC9jbGFzczIuZXhwCitnZGIuY3AvY21wZC1taW5zeW1zLmV4cAor Z2RiLmNwL2NvbnZlcnRzLmV4cAorZ2RiLmNwL2NwY29tcGxldGlvbi5leHAKK2dkYi5jcC9jcGV4 cHJzLWRlYnVnLXR5cGVzLmV4cAorZ2RiLmNwL2NwbGFiZWwuZXhwCitnZGIuY3AvY3BzaXplb2Yu ZXhwCitnZGIuY3AvY3R0aS5leHAKK2dkYi5jcC9kZWJ1Zy1leHByLmV4cAorZ2RiLmNwL2RlbWFu Z2xlLmV4cAorZ2RiLmNwL2Rlcml2YXRpb24uZXhwCitnZGIuY3AvZGVzdHJwcmludC5leHAKK2dk Yi5jcC9kaXNhc20tZnVuYy1uYW1lLmV4cAorZ2RiLmNwL2Rpc3BjeHguZXhwCitnZGIuY3AvZW5h LWRpcy1ici1yYW5nZS5leHAKK2dkYi5jcC9lbnVtLWNsYXNzLmV4cAorZ2RiLmNwL2V4Y2VwdGlv bi5leHAKK2dkYi5jcC9leGNlcHRwcmludC5leHAKK2dkYi5jcC9leHBhbmQtcHN5bXRhYnMtY3h4 LmV4cAorZ2RiLmNwL2V4cGFuZC1zYWxzLmV4cAorZ2RiLmNwL2V4dGVybi1jLmV4cAorZ2RiLmNw L2Zvcm1hdHRlZC1yZWYuZXhwCitnZGIuY3AvZnBvaW50ZXIuZXhwCitnZGIuY3AvZ2RiMTM1NS5l eHAKK2dkYi5jcC9oYW5nLmV4cAorZ2RiLmNwL2ltcGwtdGhpcy5leHAKK2dkYi5jcC9pbmZjYWxs LWRsb3Blbi5leHAKK2dkYi5jcC9pbmZjYWxsLW5vZGVidWctYysrLWQwLmV4cAorZ2RiLmNwL2lu ZmNhbGwtbm9kZWJ1Zy1jLWQwLmV4cAorZ2RiLmNwL2luZmNhbGwtbm9kZWJ1Zy1jKystZDEuZXhw CitnZGIuY3AvaW5mY2FsbC1ub2RlYnVnLWMtZDEuZXhwCitnZGIuY3AvaW9zdHJlYW0uZXhwCitn ZGIuY3AvbG9jYWwtc3RhdGljLmV4cAorZ2RiLmNwL21iLWlubGluZS5leHAKK2dkYi5jcC9tYi10 ZW1wbGF0ZXMuZXhwCitnZGIuY3AvbS1kYXRhLmV4cAorZ2RiLmNwL21lbWJlci1uYW1lLmV4cAor Z2RiLmNwL21lbWJlci1wdHIuZXhwCitnZGIuY3AvbWV0aG9kMi5leHAKK2dkYi5jcC9tZXRob2Qu ZXhwCitnZGIuY3AvbWV0aC10eXBlZGVmcy5leHAKK2dkYi5jcC9uYW1lbGVzc2NsYXNzLmV4cAor Z2RiLmNwL25hbWVzcGFjZS1lbnVtLmV4cAorZ2RiLmNwL25hbWVzcGFjZS5leHAKK2dkYi5jcC9u YW1lc3BhY2UtbmVzdGVkLWltcG9ydC5leHAKK2dkYi5jcC9uZXN0ZWQtdHlwZXMuZXhwCitnZGIu Y3AvbmV4dG92ZXJ0aHJvdy5leHAKK2dkYi5jcC9ub24tdHJpdmlhbC1yZXR2YWwuZXhwCitnZGIu Y3Avbm9wYXJhbS5leHAKK2dkYi5jcC9uc2FsaWFzLmV4cAorZ2RiLmNwL25zZGVjbC5leHAKK2dk Yi5jcC9uc2ltcG9ydC5leHAKK2dkYi5jcC9uc25vaW1wb3J0cy5leHAKK2dkYi5jcC9uc3JlY3Vy cy5leHAKK2dkYi5jcC9uc3N0cmVzcy5leHAKK2dkYi5jcC9vcGVyYXRvci5leHAKK2dkYi5jcC9v dmVybG9hZC1jb25zdC5leHAKK2dkYi5jcC9vdmVybG9hZC5leHAKK2dkYi5jcC9vdnNyY2guZXhw CitnZGIuY3AvcGFyZW4tdHlwZS5leHAKK2dkYi5jcC9wYXJzZS1sYW5nLmV4cAorZ2RiLmNwL3Bh c3MtYnktcmVmLTIuZXhwCitnZGIuY3AvcGFzcy1ieS1yZWYuZXhwCitnZGIuY3AvcHItMTAyMy5l eHAKK2dkYi5jcC9wcjEwNjg3LmV4cAorZ2RiLmNwL3ByMTA3MjguZXhwCitnZGIuY3AvcHIxMTcz NC5leHAKK2dkYi5jcC9wcjEyMDI4LmV4cAorZ2RiLmNwL3ByLTEyMTAuZXhwCitnZGIuY3AvcHIx MjI3My5leHAKK2dkYi5jcC9wcjE3MTMyLmV4cAorZ2RiLmNwL3ByOTA2Ny5leHAKK2dkYi5jcC9w cjk2MzEuZXhwCitnZGIuY3AvcHJpbnQtZGVtYW5nbGUuZXhwCitnZGIuY3AvcHJpbnRtZXRob2Qu ZXhwCitnZGIuY3AvcHNtYW5nLmV4cAorZ2RiLmNwL3BzeW10YWItcGFyYW1ldGVyLmV4cAorZ2Ri LmNwL3B0eXBlLWN2LWNwLmV4cAorZ2RiLmNwL3B0eXBlLWZsYWdzLmV4cAorZ2RiLmNwL3B1bmN0 dWF0b3IuZXhwCitnZGIuY3AvcmVhZG5vdy1sYW5ndWFnZS5leHAKK2dkYi5jcC9yZWYtcGFyYW1z LmV4cAorZ2RiLmNwL3JlLXNldC1vdmVybG9hZGVkLmV4cAorZ2RiLmNwL3J0dGkuZXhwCitnZGIu Y3AvcnZhbHVlLXJlZi1jYXN0cy5leHAKK2dkYi5jcC9ydmFsdWUtcmVmLXBhcmFtcy5leHAKK2dk Yi5jcC9ydmFsdWUtcmVmLXNpemVvZi5leHAKK2dkYi5jcC9ydmFsdWUtcmVmLXR5cGVzLmV4cAor Z2RiLmNwL3NhdmUtYnAtcXVhbGlmaWVkLmV4cAorZ2RiLmNwL3Njb3BlLWVyci5leHAKK2dkYi5j cC9zaGFkb3cuZXhwCitnZGIuY3Avc21hcnRwLmV4cAorZ2RiLmNwL3N0YXRpYy1tZXRob2QuZXhw CitnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwCitnZGIuY3Avc3RhdGljLXR5cGVkZWYtcHJp bnQuZXhwCitnZGIuY3Avc3R1Yi1hcnJheS1zaXplLmV4cAorZ2RiLmNwL3N1YnR5cGVzLmV4cAor Z2RiLmNwL3RyeV9jYXRjaC5leHAKK2dkYi5jcC90eXBlZGVmLWJhc2UuZXhwCitnZGIuY3AvdHlw ZWRlZi1vcGVyYXRvci5leHAKK2dkYi5jcC90eXBlZC1lbnVtLmV4cAorZ2RiLmNwL3VzZXJkZWYu ZXhwCitnZGIuY3AvdXNpbmctY3Jhc2guZXhwCitnZGIuY3AvdmlydGJhc2UyLmV4cAorZ2RiLmNw L3ZpcnRiYXNlLmV4cAorZ2RiLmNwL3ZpcnRmdW5jMi5leHAKK2dkYi5jcC93aWRlX2NoYXJfdHlw ZXMuZXhwCitnZGIuZm9ydHJhbi9hcnJheS1ib3VuZHMuZXhwCitnZGIuZm9ydHJhbi9hcnJheS1i b3VuZHMtaGlnaC5leHAKK2dkYi5mb3J0cmFuL2FycmF5LWVsZW1lbnQuZXhwCitnZGIuZm9ydHJh bi9hcnJheS1zbGljZXMtYmFkLmV4cAorZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLXN1Yi1zbGlj ZXMuZXhwCitnZGIuZm9ydHJhbi9ibG9jay1kYXRhLmV4cAorZ2RiLmZvcnRyYW4vY2hhcnNldC5l eHAKK2dkYi5mb3J0cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cAorZ2RiLmZvcnRyYW4v Y29tbW9uLWJsb2NrLmV4cAorZ2RiLmZvcnRyYW4vY29tcGxleC5leHAKK2dkYi5mb3J0cmFuL2Rl cml2ZWQtdHlwZS5leHAKK2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS1mdW5jdGlvbi5leHAKK2dk Yi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS1zdHJpZGluZy5leHAKK2dkYi5mb3J0cmFuL2RvdC1vcHMu ZXhwCitnZGIuZm9ydHJhbi9leHBycy5leHAKK2dkYi5mb3J0cmFuL2luZm8tbW9kdWxlcy5leHAK K2dkYi5mb3J0cmFuL2luZm8tdHlwZXMuZXhwCitnZGIuZm9ydHJhbi9pbnRyaW5zaWNzLmV4cAor Z2RiLmZvcnRyYW4vbGlicmFyeS1tb2R1bGUuZXhwCitnZGIuZm9ydHJhbi9sb2dpY2FsLmV4cAor Z2RiLmZvcnRyYW4vbWF4LWRlcHRoLmV4cAorZ2RiLmZvcnRyYW4vbWl4ZWQtbGFuZy1zdGFjay5l eHAKK2dkYi5mb3J0cmFuL21vZHVsZS5leHAKK2dkYi5mb3J0cmFuL211bHRpLWRpbS5leHAKK2dk Yi5mb3J0cmFuL25lc3RlZC1mdW5jcy0yLmV4cAorZ2RiLmZvcnRyYW4vbmVzdGVkLWZ1bmNzLmV4 cAorZ2RiLmZvcnRyYW4vcG9pbnRlci10by1wb2ludGVyLmV4cAorZ2RiLmZvcnRyYW4vcHJpbnQt Zm9ybWF0dGVkLmV4cAorZ2RiLmZvcnRyYW4vcHJpbnRpbmctdHlwZXMuZXhwCitnZGIuZm9ydHJh bi9wcmludF90eXBlLmV4cAorZ2RiLmZvcnRyYW4vcHRyLWluZGVudGF0aW9uLmV4cAorZ2RiLmZv cnRyYW4vcHR5cGUtb24tZnVuY3Rpb25zLmV4cAorZ2RiLmZvcnRyYW4vc2hvcnQtY2lyY3VpdC1h cmd1bWVudC1saXN0LmV4cAorZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhwCitnZGIuZm9ydHJhbi90 eXBlLWtpbmRzLmV4cAorZ2RiLmZvcnRyYW4vdHlwZXMuZXhwCitnZGIuZm9ydHJhbi92bGEtYWxs b2MtYXNzb2MuZXhwCitnZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAorZ2RiLmZvcnRyYW4v dmxhLWhpc3RvcnkuZXhwCitnZGIuZm9ydHJhbi92bGEtcHRyLWluZm8uZXhwCitnZGIuZm9ydHJh bi92bGEtcHR5cGUuZXhwCitnZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAorZ2RiLmZvcnRy YW4vdmxhLXNpemVvZi5leHAKK2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAorZ2RiLmZvcnRyYW4v dmxhLXZhbHVlLmV4cAorZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCitn ZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAorZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1m aW5pc2guZXhwCitnZGIuZm9ydHJhbi93aGF0aXNfdHlwZS5leHAKK2dkYi5mb3J0cmFuL3hsZi12 YXJpYWJsZS5leHAKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9yZWYv Z2VuLnNoIGIvdGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcmVmL2dlbi5zaApuZXcgZmlsZSBt b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOTI2YTcxCi0tLSAvZGV2L251bGwKKysrIGIvdGVz dHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcmVmL2dlbi5zaApAQCAtMCwwICsxLDExIEBACisjIS9i aW4vYmFzaAorCitCSU49YHdoaWNoIGdkYmAgJiYKK1BBQ0tBR0U9YHJwbSAtcWYgLS1xZj0nJXtu YW1lfVxuJyAke0JJTn1gICYmCitTWVNURU09YHVuYW1lIC1yIHwgZ3JlcCAtbyAtRSAnZWxbMC05 XSthP3xmY1swLTldKydgICYmCitBUkNIPWBhcmNoYCAmJgorZWNobyAiLi9yZWYvJHtQQUNLQUdF fS8ke1NZU1RFTX0uJHtBUkNIfSIgJiYKK2V4aXQgMAorCitlY2hvICJFUlJPUiIgPiYyCitleGl0 IDEKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9ydW50ZXN0LnNoIGIv dGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcnVudGVzdC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1 NQppbmRleCAwMDAwMDAwLi5iMzRkNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZ2RiLXRl c3RzdWl0ZS1zYW5pdHkvcnVudGVzdC5zaApAQCAtMCwwICsxLDEzNiBAQAorIyEvYmluL2Jhc2gK KyMgdmltOiBkaWN0Kz0vdXNyL3NoYXJlL2JlYWtlcmxpYi9kaWN0aW9uYXJ5LnZpbSBjcHQ9Lix3 LGIsdSx0LGksaworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIHJ1bnRlc3Quc2ggb2YgL3Rvb2xzL2dk Yi9TYW5pdHkvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkKKyMgICBEZXNjcmlwdGlvbjogZ2RiIHRlc3Rp bmcgYnkgdXBzdHJlYW0gdGVzdHN1aXRlCisjICAgQXV0aG9yOiBNaWNoYWwgS29sYXIgPG1rb2xh ckByZWRoYXQuY29tPgorIworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIENvcHlyaWdodCAoYykgMjAy MSBSZWQgSGF0LCBJbmMuCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjICAgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YKKyMgICB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl CisjICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZAorIyAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIKKyMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uCisj CisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CisKKyMgSW5jbHVkZSBCZWFrZXIgZW52aXJvbm1lbnQKKy4gL3Vzci9z aGFyZS9iZWFrZXJsaWIvYmVha2VybGliLnNoIHx8IGV4aXQgMQorCitCVUlMRF9VU0VSPSR7QlVJ TERfVVNFUjotZ2RiYmxkfQorZXhwb3J0IFBBQ0tBR0U9IiR7UEFDS0FHRTotJChycG0gLXFmIC0t cWY9JyV7bmFtZX1cbicgYHdoaWNoIGdkYmApfSIKK1JVTlRFU1RGTEFHUz0ke1JVTlRFU1RGTEFH UzotR0RCPWBycG0gLXFsICRQQUNLQUdFIHwgZ3JlcCAtRSAnYmluL2dkYiQnYH0KK1RFU1RTX0NP VU5UX01JTj0ke1RFU1RTX0NPVU5UX01JTjotNDAwMH0KK1JFUVVJUkVTPSIkUEFDS0FHRSBycG0t YnVpbGQgZGVqYWdudSBtYWtlIGdjYyBnbGliYyIKK2lmIHJsSXNGZWRvcmE7IHRoZW4KKyAgUkVR VUlSRVM9IiRSRVFVSVJFUyBkbmYtdXRpbHMiCitlbHNlCisgIFJFUVVJUkVTPSIkUkVRVUlSRVMg eXVtLXV0aWxzIgorZmkKKworcmxKb3VybmFsU3RhcnQKKyAgcmxQaGFzZVN0YXJ0U2V0dXAKKyAg ICBybFNob3dSdW5uaW5nS2VybmVsCisgICAgcmxBc3NlcnRScG0gLS1hbGwKKyAgICBybFJ1biAi VG1wRGlyPVwkKG1rdGVtcCAtZCkiCisgICAgcmxSdW4gImNwIC1yIC4vcmVmICRUbXBEaXIiCisg ICAgcmxSdW4gInB1c2hkICRUbXBEaXIiCisgICAgcmxGZXRjaFNyY0Zvckluc3RhbGxlZCAkUEFD S0FHRQorICAgIHJsUnVuICJ1c2VyYWRkIC1NIC1OICRCVUlMRF9VU0VSIiAwLDkKKyAgICBbICQ/ IC1lcSAwIF0gJiYgcmxSdW4gImRlbD15ZXMiCisgICAgcmxSdW4gImNob3duIC1SICRCVUlMRF9V U0VSOnVzZXJzICRUbXBEaXIiCisgICAgcmxSdW4gImNwIC9wcm9jL3N5cy9rZXJuZWwvY29yZV9w YXR0ZXJuICRUbXBEaXIvY29yZV9wYXR0ZXJuLmJja3AiCisgICAgcmxSdW4gImVjaG8gJ2NvcmUu JXAnID4vcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybiIKKyAgICBybFJ1biAidWxpbWl0IC1j IHVubGltaXRlZCIKKyAgcmxQaGFzZUVuZAorCisgIHJsUGhhc2VTdGFydFNldHVwICJidWlsZCBn ZGIiCisgICAgcmxSdW4gInN1IC1jICdycG0gLUQgXCJfdG9wZGlyICRUbXBEaXJcIiAtVSAqLnNy Yy5ycG0gJj5ycG0ubG9nJyAkQlVJTERfVVNFUiIKKyAgICBybFJ1biAicmxGaWxlU3VibWl0ICRU bXBEaXIvcnBtLmxvZyBycG0ubG9nIgorICAgIHJsUnVuICJzdSAtYyAncnBtYnVpbGQgLUQgXCJf dG9wZGlyICRUbXBEaXJcIiAtYnMgLS13aXRoIHRlc3RzdWl0ZSAkVG1wRGlyL1NQRUNTLyouc3Bl YyAmPnJwbWJ1aWxkLWJzLmxvZycgJEJVSUxEX1VTRVIiCisgICAgcmxSdW4gInJsRmlsZVN1Ym1p dCAkVG1wRGlyL3JwbWJ1aWxkLWJzLmxvZyBycG1idWlsZC1icy5sb2ciCisgICAgcmxSdW4gInl1 bS1idWlsZGRlcCAteSAtRCBcIl90b3BkaXIgJFRtcERpclwiICRUbXBEaXIvU1JQTVMvKi5zcmMu cnBtICY+JFRtcERpci95dW0tYnVpbGRkZXAubG9nIiAwLDE7IHJldD0kPworICAgIHJsUnVuICJy bEZpbGVTdWJtaXQgJFRtcERpci95dW0tYnVpbGRkZXAubG9nIHl1bS1idWlsZGRlcC5sb2ciCisg ICAgaWYgWyAkcmV0IC1uZSAwIF07IHRoZW4KKyAgICAgIHJsTG9nV2FybmluZyAiRGVwZW5kZW5j aWVzIHdhcyBub3Qgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCIKKyAgICAgIHJsTG9nSW5mbyAiVHJ5 aW5nIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzIG9mIGJhcmUgU1BFQyBmaWxlIC4uLiIKKyAgICAg IHJsUnVuICJ5dW0tYnVpbGRkZXAgLXkgLUQgXCJfdG9wZGlyICRUbXBEaXJcIiAkVG1wRGlyL1NQ RUNTLyouc3BlYyAmPiRUbXBEaXIveXVtLWJ1aWxkZGVwLXNwZWMubG9nIgorICAgICAgcmxSdW4g InJsRmlsZVN1Ym1pdCAkVG1wRGlyL3l1bS1idWlsZGRlcC1zcGVjLmxvZyB5dW0tYnVpbGRkZXAt c3BlYy5sb2ciCisgICAgZmkKKyAgICBybFJ1biAic3UgLWMgJ3JwbWJ1aWxkIC1EIFwiX3RvcGRp ciAkVG1wRGlyXCIgLWJwICRUbXBEaXIvU1BFQ1MvKi5zcGVjICY+JFRtcERpci9ycG1idWlsZC1i cC5sb2cnICRCVUlMRF9VU0VSIgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQgJFRtcERpci9ycG1i dWlsZC1icC5sb2cgcnBtYnVpbGQtYnAubG9nIgorICAgIGlmIHRlc3QgLWUgJFRtcERpci9CVUlM RC9nZGItKi9nbnVsaWIvY29uZmlndXJlOyB0aGVuCisgICAgICBybFJ1biAiY2QgJFRtcERpci9C VUlMRC9nZGItKi9nbnVsaWIiCisgICAgICBybFJ1biAic3UgLWMgJ2Jhc2ggLi9jb25maWd1cmUg Jj4kVG1wRGlyL2NvbmZpZ3VyZS1nbnVsaWIubG9nJyAkQlVJTERfVVNFUiIKKyAgICAgIHJsUnVu ICJybEZpbGVTdWJtaXQgJFRtcERpci9jb25maWd1cmUtZ251bGliLmxvZyBjb25maWd1cmUtZ251 bGliLmxvZyIKKyAgICBmaQorICAgIHJsUnVuICJjb25maWd1cmVfZmxhZ3M9XCQocnBtc3BlYyAt RCBcIl90b3BkaXIgJFRtcERpclwiIC1QICRUbXBEaXIvU1BFQ1MvKi5zcGVjIHwgZ3JlcCAtbyAt RSAnXC1cLShwcmVmaXh8d2l0aFwtZ2RiXC1kYXRhZGlyfHdpdGhcLXNlcGFyYXRlXC1kZWJ1Z1wt ZGlyfHdpdGhcLXB5dGhvbik9XFMrJyB8IHRyICdcbicgJyAnKSIKKyAgICBybFJ1biAiY2QgJFRt cERpci9CVUlMRC9nZGItKi9nZGIiCisgICAgcmxSdW4gInN1IC1jICcuL2NvbmZpZ3VyZSAkY29u ZmlndXJlX2ZsYWdzICY+JFRtcERpci9jb25maWd1cmUubG9nJyAkQlVJTERfVVNFUiIKKyAgICBy bFJ1biAicmxGaWxlU3VibWl0ICRUbXBEaXIvY29uZmlndXJlLmxvZyBjb25maWd1cmUubG9nIgor ICAgIHJsUnVuICJEQVRBRElSPWBnZGIgLWV4ICdzaG93IGRhdGEtZGlyZWN0b3J5JyAtYmF0Y2gg fCBncmVwIC1vIC1FICcvW15cIl0rJ2AiCisgICAgcmxSdW4gIm12IGRhdGEtZGlyZWN0b3J5IGRh dGEtZGlyZWN0b3J5Lm9yaWciCisgICAgcmxSdW4gImxuIC1zICREQVRBRElSIC4vZGF0YS1kaXJl Y3RvcnkiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRTZXR1cCAiZmlsdGVyIHRlc3Rz dWl0ZSIKKyAgICBybFJ1biAic3lzdGVtPWB1bmFtZSAtciB8IGdyZXAgLW8gLUUgJ2VsWzAtOV0r YT98ZmNbMC05XSsnYCAmJiBbWyAhIC16IFwkc3lzdGVtIF1dIgorICAgIHJsUnVuICJyZWZfZmls ZT0kVG1wRGlyL3JlZi8kUEFDS0FHRS8kc3lzdGVtLmBhcmNoYCIKKyAgICBpZiAhIHRlc3QgLWUg JHJlZl9maWxlOyB0aGVuCisgICAgICBybExvZ1dhcm5pbmcgIlJlZmVyZW5jZSBmaWxlICRyZWZf ZmlsZSBub3QgZm91bmQiCisgICAgICBybExvZ0luZm8gIlVzaW5nIGRlZmF1bHQgcmVmZXJlbmNl IGZpbGUgLi4uIgorICAgICAgcmxSdW4gInJlZl9maWxlPSRUbXBEaXIvcmVmL2RlZmF1bHQiCisg ICAgZmkKKyAgICBybFJ1biAidGVzdCAtZSAkcmVmX2ZpbGUiCisgICAgcmxSdW4gImNkIHRlc3Rz dWl0ZSIKKyAgICBybFJ1biAiZmluZCAuIC1yZWdleCAnXi4vZ2RiXC4uK1wuZXhwJCcgLXR5cGUg ZiAtcHJpbnRmICclUFxuJyB8IHNvcnQgPiRUbXBEaXIvdGVzdF9saXN0IgorICAgIHJsUnVuICJj b21tIC0yMyAkVG1wRGlyL3Rlc3RfbGlzdCAkcmVmX2ZpbGUgPiRUbXBEaXIvZGlzYWJsZV9saXN0 IiAgIyBkaXNhYmxlIHRlc3RzIHRoYXQgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVmZXJlbmNl IGZpbGUKKyAgICBybExvZ0luZm8gIlRlc3RjYXNlIGRpc2FibGluZyAuLi4iCisgICAgd2hpbGUg cmVhZCBmaWxlOyBkbworICAgICAgbXYgIiRmaWxlIiAiJGZpbGUuZGlzYWJsZWQiCisgICAgZG9u ZSA8JFRtcERpci9kaXNhYmxlX2xpc3QKKyAgICBybFJ1biAiY2QgJFRtcERpci9CVUlMRC9nZGIt Ki9nZGIiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRUZXN0ICJydW4gdGVzdHN1aXRl IgorICAgIHJsUnVuICJzdSAtYyAnbWFrZSBjaGVjayBSVU5URVNURkxBR1M9XCIke1JVTlRFU1RG TEFHU31cIiB8JiB0ZWUgJFRtcERpci90ZXN0c3VpdGUubG9nIHwgZ3JlcCAtRSBcIl5SdW5uaW5n LitcLmV4cCAuLi4kXCI7IHRlc3QgXCR7UElQRVNUQVRVU1swXX0gLWVxIDAnICRCVUlMRF9VU0VS IgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQgJFRtcERpci90ZXN0c3VpdGUubG9nIHRlc3RzdWl0 ZS5sb2ciCisgICAgcmxSdW4gInJsRmlsZVN1Ym1pdCB0ZXN0c3VpdGUvZ2RiLnN1bSBnZGIuc3Vt IgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQgdGVzdHN1aXRlL2dkYi5sb2cgZ2RiLmxvZyIKKyAg ICBybExvZ0luZm8gImBhd2sgJy89PT0gZ2RiIFN1bW1hcnkgPT09LywwJyB0ZXN0c3VpdGUvZ2Ri LnN1bWAiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRUZXN0ICJldmFsdWF0ZSByZXN1 bHRzIgorICAgIHJsUnVuICJ0ZXN0c19jb3VudD1cJChncmVwIC1FICdeUEFTUzonIHRlc3RzdWl0 ZS9nZGIuc3VtIHwgd2MgLWwpIgorICAgIFsgIiR0ZXN0c19jb3VudCIgLWdlICIkVEVTVFNfQ09V TlRfTUlOIiBdICYmIHJsTG9nSW5mbyAiVGVzdCBjb3VudGVyOiAkdGVzdHNfY291bnQiIHx8IHJs RmFpbCAiVGVzdCBjb3VudGVyICR0ZXN0c19jb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9y IGVxdWFsIHRvICRURVNUU19DT1VOVF9NSU4iCisgICAgcmxSdW4gImF3ayAnQkVHSU4geyBSUz1c IlJ1bm5pbmcgL3RtcC9bXi9dKy9CVUlMRC9nZGItW14vXSsvZ2RiL3Rlc3RzdWl0ZS9cIiB9IC9c c0VSUk9SOnxcc0ZBSUw6fFxzS1BBU1M6fFxzVU5SRVNPTFZFRDp8XHNYUEFTUzovIHsgcHJpbnQg XCQwIH0nIHRlc3RzdWl0ZS9nZGIuc3VtID4kVG1wRGlyL2Vycm9yLmxvZyIgICMgY2hlY2sgZm9y IGVycm9ycywgdW5yZXNvbHZlZCB0ZXN0Y2FzZXMsIHVuZXhwZWN0ZWQgZmFpbHVyZXMgYW5kIHVu ZXhwZWN0ZWQgc3VjY2Vzc2VzCisgICAgaWYgWyAtcyAkVG1wRGlyL2Vycm9yLmxvZyBdOyB0aGVu CisgICAgICBybEZhaWwgIkVycm9ycyBvYnNlcnZlZCI7CisgICAgICBybFJ1biAicmxGaWxlU3Vi bWl0ICRUbXBEaXIvZXJyb3IubG9nIGVycm9yLmxvZyIKKyAgICAgIHJsUnVuICJhd2sgJ0JFR0lO IHsgUlM9XCJSdW5uaW5nIC90bXAvW14vXSsvQlVJTEQvZ2RiLVteL10rL2dkYi90ZXN0c3VpdGUv XCIgfSAvXHNFUlJPUjp8XHNGQUlMOnxcc0tQQVNTOnxcc1VOUkVTT0xWRUQ6fFxzWFBBU1M6LyB7 IHByaW50IFwkMSB9JyB0ZXN0c3VpdGUvZ2RiLnN1bSA+JFRtcERpci9hZmZlY3RlZF90ZXN0Y2Fz ZXMubG9nIgorICAgICAgcmxMb2dJbmZvICJgZWNobyAnQWZmZWN0ZWQgdGVzdGNhc2VzOic7Y2F0 ICRUbXBEaXIvYWZmZWN0ZWRfdGVzdGNhc2VzLmxvZ2AiCisgICAgICBybFJ1biAicmxGaWxlU3Vi bWl0ICRUbXBEaXIvYWZmZWN0ZWRfdGVzdGNhc2VzLmxvZyBhZmZlY3RlZF90ZXN0Y2FzZXMubG9n IgorICAgIGVsc2UKKyAgICAgIHJsUGFzcyAiTm8gZXJyb3JzIG9ic2VydmVkIgorICAgIGZpCisg IHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRDbGVhbnVwCisgICAgcmxSdW4gImNhdCAkVG1w RGlyL2NvcmVfcGF0dGVybi5iY2twID4vcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybiIKKyAg ICBybFJ1biAicG9wZCIKKyAgICBybFJ1biAicm0gLXIgJFRtcERpciIKKyAgICBbICIkZGVsIiA9 ICJ5ZXMiIF0gJiYgcmxSdW4gInVzZXJkZWwgLWYgJEJVSUxEX1VTRVIiCisgIHJsUGhhc2VFbmQK K3JsSm91cm5hbFByaW50VGV4dAorcmxKb3VybmFsRW5kCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9y ZSBiLy5naXRpZ25vcmUKaW5kZXggNWY0YTQwYy4uZThhM2JhOCAxMDA2NDQKLS0tIGEvLmdpdGln bm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDQgKzEsNCBAQAogL25ldy1mZWRvcmEtcmVsZWFz ZQogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLTguMS4xLTIwMTgwNjI2LnRhci54egogL3YyLjAu NC50YXIuZ3oKLS9nZGItMTAuMi50YXIueHoKKy9nZGItMTEuMS50YXIueHoKCmRpZmYgLS1naXQg YS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4 IDIxOTU4NmUuLmU1NmNmOTAgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisr KyBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCkBAIC0xOSwyODMgKzE5LDI3OSBAQCBQYXRjaDAw NDogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAxMjUucGF0Y2gKICM9ZmVkb3JhdGVzdAogUGF0 Y2gwMDU6IGdkYi02LjMtdGhyZWFkZWQtd2F0Y2hwb2ludHMyLTIwMDUwMjI1LnBhdGNoCiAKLSMg Tm90aWZ5IG9ic2VydmVycyB0aGF0IHRoZSBpbmZlcmlvciBoYXMgYmVlbiBjcmVhdGVkCi0jPWZl ZG9yYXRlc3QKLVBhdGNoMDA2OiBnZGItNi4zLWluZmVyaW9yLW5vdGlmaWNhdGlvbi0yMDA1MDcy MS5wYXRjaAotCiAjIFZlcmlmeSBwcmludGluZyBvZiBpbmhlcml0ZWQgbWVtYmVycyB0ZXN0CiAj PWZlZG9yYXRlc3QKLVBhdGNoMDA3OiBnZGItNi4zLWluaGVyaXRhbmNldGVzdC0yMDA1MDcyNi5w YXRjaAorUGF0Y2gwMDY6IGdkYi02LjMtaW5oZXJpdGFuY2V0ZXN0LTIwMDUwNzI2LnBhdGNoCiAK ICMgU3VwcG9ydCBUTFMgc3ltYm9scyAoK2BlcnJubycgc3VnZ2VzdGlvbiBpZiBubyBwdGhyZWFk IGlzIGZvdW5kKSAoQlogMTg1MzM3KS4KICM9cHVzaCtqYW46IEl0IHNob3VsZCBiZSByZXBsYWNl ZCBieSBJbmZpbml0eSBwcm9qZWN0LgotUGF0Y2gwMDg6IGdkYi02LjUtYnoxODUzMzctcmVzb2x2 ZS10bHMtd2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKK1BhdGNoMDA3OiBnZGItNi41LWJ6MTg1 MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCiAKICMgRml4IFRMUyBz eW1ib2xzIHJlc29sdmluZyBmb3Igc2hhcmVkIGxpYnJhcmllcyB3aXRoIGEgcmVsYXRpdmUgcGF0 aG5hbWUuCiAjIFRoZSB0ZXN0c3VpdGUgbmVlZHMgYGdkYi02LjUtdGxzLW9mLXNlcGFyYXRlLWRl YnVnaW5mby5wYXRjaCcuCiAjPWZlZG9yYXRlc3Q6IE9uZSBzaG91bGQgcmVjaGVjayBpZiBpdCBp cyByZWFsbHkgZml4ZWQgdXBzdHJlYW0uCi1QYXRjaDAwOTogZ2RiLTYuNS1zaGFyZWRsaWJyYXJ5 LXBhdGgucGF0Y2gKK1BhdGNoMDA4OiBnZGItNi41LXNoYXJlZGxpYnJhcnktcGF0aC5wYXRjaAog CiAjIEltcHJvdmVkIHRlc3RzdWl0ZSByZXN1bHRzIGJ5IHRoZSB0ZXN0c3VpdGUgcHJvdmlkZWQg YnkgdGhlIGNvdXJ0ZXN5IG9mIEJFQS4KICM9ZmVkb3JhdGVzdDogRm9yIHVwc3RyZWFtIGl0IHNo b3VsZCBiZSByZXdyaXR0ZW4gYXMgYSBkZWphZ251IHRlc3QsIHRoZSB0ZXN0IG9mIG5vICI/PyIg d2FzIHVzZWZ1bC4KLVBhdGNoMDEwOiBnZGItNi41LUJFQS10ZXN0c3VpdGUucGF0Y2gKK1BhdGNo MDk6IGdkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBkZWFkbG9j a2luZyBvbiBsYXN0IGFkZHJlc3Mgc3BhY2UgYnl0ZTsgZm9yIGNvcnJ1cHRlZCBiYWNrdHJhY2Vz LgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxMTogZ2RiLTYuNS1sYXN0LWFkZHJlc3Mtc3BhY2UtYnl0 ZS10ZXN0LnBhdGNoCitQYXRjaDAxMDogZ2RiLTYuNS1sYXN0LWFkZHJlc3Mtc3BhY2UtYnl0ZS10 ZXN0LnBhdGNoCiAKICMgRml4IHJlYWRsaW5lIHNlZ2ZhdWx0IG9uIGV4Y2Vzc2l2ZWx5IGxvbmcg aGFuZC10eXBlZCBsaW5lcy4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTI6IGdkYi02LjUtcmVhZGxp bmUtbG9uZy1saW5lLWNyYXNoLXRlc3QucGF0Y2gKK1BhdGNoMDExOiBnZGItNi41LXJlYWRsaW5l LWxvbmctbGluZS1jcmFzaC10ZXN0LnBhdGNoCiAKICMgVGVzdCBzaWRlZWZmZWN0cyBvZiBza2lw cGluZyBwcGMgLnNvIGxpYnMgdHJhbXBvbGluZXMgKEJaIDIxODM3OSkuCiAjPWZlZG9yYXRlc3QK LVBhdGNoMDEzOiBnZGItNi41LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFtcG9saW5lLXRlc3QucGF0 Y2gKK1BhdGNoMDEyOiBnZGItNi41LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFtcG9saW5lLXRlc3Qu cGF0Y2gKIAogIyBGaW5kIHN5bWJvbHMgcHJvcGVybHkgYXQgdGhlaXIgb3JpZ2luYWwgKGluY2x1 ZGVkKSBmaWxlIChCWiAxMDk5MjEpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxNDogZ2RiLTYuNS1i ejEwOTkyMS1EV19BVF9kZWNsX2ZpbGUtdGVzdC5wYXRjaAorUGF0Y2gwMTM6IGdkYi02LjUtYnox MDk5MjEtRFdfQVRfZGVjbF9maWxlLXRlc3QucGF0Y2gKIAogIyBVcGRhdGUgUFBDIHVud2luZGlu ZyBwYXRjaGVzIHRvIHRoZWlyIHVwc3RyZWFtIHZhcmlhbnRzIChCWiAxNDA1MzIpLgogIz1mZWRv cmF0ZXN0Ci1QYXRjaDAxNTogZ2RiLTYuMy1iejE0MDUzMi1wcGMtdW53aW5kaW5nLXRlc3QucGF0 Y2gKK1BhdGNoMDE0OiBnZGItNi4zLWJ6MTQwNTMyLXBwYy11bndpbmRpbmctdGVzdC5wYXRjaAog CiAjIFRlc3RjYXNlIGZvciBleGVjKCkgZnJvbSB0aHJlYWRlZCBwcm9ncmFtIChCWiAyMDI2ODkp LgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxNjogZ2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRo cmVhZC10ZXN0LnBhdGNoCitQYXRjaDAxNTogZ2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRo cmVhZC10ZXN0LnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGluc3RydWN0 aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTc6IGdk Yi02LjYtYnoyMzAwMDAtcG93ZXI2LWRpc2Fzc2VtYmx5LXRlc3QucGF0Y2gKK1BhdGNoMDE2OiBn ZGItNi42LWJ6MjMwMDAwLXBvd2VyNi1kaXNhc3NlbWJseS10ZXN0LnBhdGNoCiAKICMgQWxsb3cg cnVubmluZyBgL3Vzci9iaW4vZ2NvcmUnIHdpdGggcHJvdmlkZWQgYnV0IGluYWNjZXNzaWJsZSB0 dHkgKEJaIDIyOTUxNykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDE4OiBnZGItNi42LWJ6MjI5NTE3 LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKK1BhdGNoMDE3OiBnZGItNi42LWJ6MjI5NTE3 LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKIAogIyBBdm9pZCB0b28gbG9uZyB0aW1lb3V0 cyBvbiBmYWlsaW5nIGNhc2VzIG9mICJhbm5vdGExLmV4cCBhbm5vdGEzLmV4cCIuCiAjPWZlZG9y YXRlc3QKLVBhdGNoMDE5OiBnZGItNi42LXRlc3RzdWl0ZS10aW1lb3V0cy5wYXRjaAorUGF0Y2gw MTg6IGdkYi02LjYtdGVzdHN1aXRlLXRpbWVvdXRzLnBhdGNoCiAKICMgU3VwcG9ydCBmb3Igc3Rl cHBpbmcgb3ZlciBQUEMgYXRvbWljIGluc3RydWN0aW9uIHNlcXVlbmNlcyAoQlogMjM3NTcyKS4K ICM9ZmVkb3JhdGVzdAotUGF0Y2gwMjA6IGdkYi02LjYtYnoyMzc1NzItcHBjLWF0b21pYy1zZXF1 ZW5jZS10ZXN0LnBhdGNoCitQYXRjaDAxOTogZ2RiLTYuNi1iejIzNzU3Mi1wcGMtYXRvbWljLXNl cXVlbmNlLXRlc3QucGF0Y2gKIAogIyBUZXN0IGtlcm5lbCBWRFNPIGRlY29kaW5nIHdoaWxlIGF0 dGFjaGluZyB0byBhbiBpMzg2IHByb2Nlc3MuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDIxOiBnZGIt Ni4zLWF0dGFjaC1zZWUtdmRzby10ZXN0LnBhdGNoCitQYXRjaDAyMDogZ2RiLTYuMy1hdHRhY2gt c2VlLXZkc28tdGVzdC5wYXRjaAogCiAjIFRlc3QgbGVmdG92ZXIgem9tYmllIHByb2Nlc3MgKEJa IDI0Mzg0NSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDIyOiBnZGItNi41LWJ6MjQzODQ1LXN0YWxl LXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKK1BhdGNoMDIxOiBnZGItNi41LWJ6MjQzODQ1LXN0 YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKIAogIyBOZXcgbG9jYXRpbmcgb2YgdGhlIG1h dGNoaW5nIGJpbmFyaWVzIGZyb20gdGhlIHB1cmUgY29yZSBmaWxlIChidWlsZC1pZCkuCiAjPXB1 c2gramFuCi1QYXRjaDAyMzogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAorUGF0Y2gwMjI6 IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKIAogIyBGaXggbG9hZGluZyBvZiBjb3JlIGZp bGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxkLWlkcyBpbiBleGVjdXRhYmxlcy4K ICMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMgb25seSBpZiBubyBl eGVjdXRhYmxlIGlzIHNwZWNpZmllZAogIyAoSmFuIEtyYXRvY2h2aWwsIFJIIEJaIDEzMzk4NjIp LgogIz1wdXNoK2phbgotUGF0Y2gwMjQ6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlz c2luZy1pZHMucGF0Y2gKK1BhdGNoMDIzOiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1p c3NpbmctaWRzLnBhdGNoCiAKICM9cHVzaCtqYW4KLVBhdGNoMDI1OiBnZGItNi42LWJ1aWxkaWQt bG9jYXRlLXJwbS5wYXRjaAorUGF0Y2gwMjQ6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBh dGNoCiAKICMgRml4IGRpc3BsYXlpbmcgb2YgbnVtZXJpYyBjaGFyIGFycmF5cyBhcyBzdHJpbmdz IChCWiAyMjQxMjgpLgogIz1mZWRvcmF0ZXN0OiBCdXQgaXQgaXMgZmFpbGluZyBhbnl3YXksIG9u ZSBzaG91bGQgY2hlY2sgdGhlIGJlaGF2aW9yIG1vcmUuCi1QYXRjaDAyNjogZ2RiLTYuNy1jaGFy c2lnbi10ZXN0LnBhdGNoCitQYXRjaDAyNTogZ2RiLTYuNy1jaGFyc2lnbi10ZXN0LnBhdGNoCiAK ICMgVGVzdCBQUEMgaGlkaW5nIG9mIGNhbGwtdm9sYXRpbGUgcGFyYW1ldGVyIHJlZ2lzdGVyLgog Iz1mZWRvcmF0ZXN0Ci1QYXRjaDAyNzogZ2RiLTYuNy1wcGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1P Mi10ZXN0LnBhdGNoCitQYXRjaDAyNjogZ2RiLTYuNy1wcGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1P Mi10ZXN0LnBhdGNoCiAKICMgVGVzdHN1aXRlIGZpeGVzIGZvciBtb3JlIHN0YWJsZS9jb21wYXJh YmxlIHJlc3VsdHMuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI4OiBnZGItNi43LXRlc3RzdWl0ZS1z dGFibGUtcmVzdWx0cy5wYXRjaAorUGF0Y2gwMjc6IGdkYi02LjctdGVzdHN1aXRlLXN0YWJsZS1y ZXN1bHRzLnBhdGNoCiAKICMgVGVzdCBpYTY0IG1lbW9yeSBsZWFrcyBvZiB0aGUgY29kZSB1c2lu ZyBsaWJ1bndpbmQuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI5OiBnZGItNi41LWlhNjQtbGlidW53 aW5kLWxlYWstdGVzdC5wYXRjaAorUGF0Y2gwMjg6IGdkYi02LjUtaWE2NC1saWJ1bndpbmQtbGVh ay10ZXN0LnBhdGNoCiAKICMgVGVzdCBoaWRpbmcgdW5leHBlY3RlZCBicmVha3BvaW50cyBvbiBp bnRlbnRpb25hbCBzdGVwIGNvbW1hbmRzLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzMDogZ2RiLTYu NS1taXNzZWQtdHJhcC1vbi1zdGVwLXRlc3QucGF0Y2gKK1BhdGNoMDI5OiBnZGItNi41LW1pc3Nl ZC10cmFwLW9uLXN0ZXAtdGVzdC5wYXRjaAogCiAjIFRlc3QgZ2NvcmUgbWVtb3J5IGFuZCB0aW1l IHJlcXVpcmVtZW50cyBmb3IgbGFyZ2UgaW5mZXJpb3JzLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAz MTogZ2RiLTYuNS1nY29yZS1idWZmZXItbGltaXQtdGVzdC5wYXRjaAorUGF0Y2gwMzA6IGdkYi02 LjUtZ2NvcmUtYnVmZmVyLWxpbWl0LXRlc3QucGF0Y2gKIAogIyBUZXN0IEdDT1JFIGZvciBzaG1p ZCAwIHNoYXJlZCBtZW1vcnkgbWFwcGluZ3MuCiAjPWZlZG9yYXRlc3Q6IEJ1dCBpdCBpcyBicm9r ZW4gYW55d2F5LCBzb21ldGltZXMgdGhlIGNhc2UgYmVpbmcgdGVzdGVkIGlzIG5vdCByZXByb2R1 Y2libGUuCi1QYXRjaDAzMjogZ2RiLTYuMy1tYXBwaW5nLXplcm8taW5vZGUtdGVzdC5wYXRjaAor UGF0Y2gwMzE6IGdkYi02LjMtbWFwcGluZy16ZXJvLWlub2RlLXRlc3QucGF0Y2gKIAogIyBUZXN0 IGEgY3Jhc2ggb24gYGZvY3VzIGNtZCcsIGBmb2N1cyBwcmV2JyBjb21tYW5kcy4KICM9ZmVkb3Jh dGVzdAotUGF0Y2gwMzM6IGdkYi02LjMtZm9jdXMtY21kLXByZXYtdGVzdC5wYXRjaAorUGF0Y2gw MzI6IGdkYi02LjMtZm9jdXMtY21kLXByZXYtdGVzdC5wYXRjaAogCiAjIFRlc3QgdmFyaW91cyBm b3JtcyBvZiB0aHJlYWRzIHRyYWNraW5nIGFjcm9zcyBleGVjKCkgKEJaIDQ0Mjc2NSkuCiAjPWZl ZG9yYXRlc3QKLVBhdGNoMDM0OiBnZGItNi44LWJ6NDQyNzY1LXRocmVhZGVkLWV4ZWMtdGVzdC5w YXRjaAorUGF0Y2gwMzM6IGdkYi02LjgtYno0NDI3NjUtdGhyZWFkZWQtZXhlYy10ZXN0LnBhdGNo CiAKICMgVGVzdCBhIGNyYXNoIG9uIGxpYnJhcmllcyBtaXNzaW5nIHRoZSAudGV4dCBzZWN0aW9u LgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzNTogZ2RiLTYuNS1zZWN0aW9uLW51bS1maXh1cC10ZXN0 LnBhdGNoCitQYXRjaDAzNDogZ2RiLTYuNS1zZWN0aW9uLW51bS1maXh1cC10ZXN0LnBhdGNoCiAK ICMgRml4IHJlc29sdmluZyBvZiB2YXJpYWJsZXMgYXQgbG9jYXRpb25zIGxpc3RzIGluIHByZWxp bmtlZCBsaWJzIChCWiA0NjY5MDEpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzNjogZ2RiLTYuOC1i ejQ2NjkwMS1iYWNrdHJhY2UtZnVsbC1wcmVsaW5rZWQucGF0Y2gKK1BhdGNoMDM1OiBnZGItNi44 LWJ6NDY2OTAxLWJhY2t0cmFjZS1mdWxsLXByZWxpbmtlZC5wYXRjaAogCiAjIE5ldyB0ZXN0IGZv ciBzdGVwLXJlc3VtZSBicmVha3BvaW50IHBsYWNlZCBpbiBtdWx0aXBsZSB0aHJlYWRzIGF0IG9u Y2UuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDM3OiBnZGItc2ltdWx0YW5lb3VzLXN0ZXAtcmVzdW1l LWJyZWFrcG9pbnQtdGVzdC5wYXRjaAorUGF0Y2gwMzY6IGdkYi1zaW11bHRhbmVvdXMtc3RlcC1y ZXN1bWUtYnJlYWtwb2ludC10ZXN0LnBhdGNoCiAKICMgRml4IEdOVS9MaW51eCBjb3JlIG9wZW46 IENhbid0IHJlYWQgcGF0aG5hbWUgZm9yIGxvYWQgbWFwOiBJbnB1dC9vdXRwdXQgZXJyb3IuCiAj IEZpeCByZWdyZXNzaW9uIG9mIHVuZGlzcGxheWVkIG1pc3Npbmcgc2hhcmVkIGxpYnJhcmllcyBj YXVzZWQgYnkgYSBmaXggZm9yLgogIz1mZWRvcmF0ZXN0OiBJdCBzaG91bGQgYmUgaW4gZ2xpYmM6 IGxpYmMtYWxwaGE6IDwyMDA5MTAwNDE2MTcwNi5HQTI3NDUwQC4qPgotUGF0Y2gwMzg6IGdkYi1j b3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoCitQYXRjaDAzNzogZ2RiLWNvcmUtb3Blbi12ZHNv LXdhcm5pbmcucGF0Y2gKIAogIyBXb3JrYXJvdW5kIGNjYWNoZSBtYWtpbmcgbGluZW5vIG5vbi16 ZXJvIGZvciBjb21tYW5kLWxpbmUgZGVmaW5pdGlvbnMuCiAjPWZlZG9yYXRlc3Q6IGNjYWNoZSBp cyByYXJlbHkgdXNlZCBhbmQgaXQgaXMgZXZlbiBmaXhlZCBub3cuCi1QYXRjaDAzOTogZ2RiLWNj YWNoZS13b3JrYXJvdW5kLnBhdGNoCitQYXRjaDAzODogZ2RiLWNjYWNoZS13b3JrYXJvdW5kLnBh dGNoCiAKICMgVGVzdGNhc2UgZm9yICJEbyBub3QgbWFrZSB1cCBsaW5lIGluZm9ybWF0aW9uIiBm aXggYnkgRGFuaWVsIEphY29ib3dpdHouCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDQwOiBnZGItbGlu ZW5vLW1ha2V1cC10ZXN0LnBhdGNoCitQYXRjaDAzOTogZ2RiLWxpbmVuby1tYWtldXAtdGVzdC5w YXRjaAogCiAjIFRlc3QgcG93ZXI3IHBwYyBkaXNhc3NlbWJseS4KICM9ZmVkb3JhdGVzdAotUGF0 Y2gwNDE6IGdkYi1wcGMtcG93ZXI3LXRlc3QucGF0Y2gKK1BhdGNoMDQwOiBnZGItcHBjLXBvd2Vy Ny10ZXN0LnBhdGNoCiAKICMgRml4IGZvbGxvdy1leGVjIGZvciBDKysgcHJvZ3JhbXMgKGJ1Z3Jl cG9ydGVkIGJ5IE1hcnRpbiBTdHJhbnNreSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDQyOiBnZGIt YXJjaGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRjaAorUGF0Y2gwNDE6IGdkYi1hcmNo ZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCiAKICMgQmFja3BvcnQgRFdBUkYtNCBz dXBwb3J0IChCWiA2MDE4ODcsIFRvbSBUcm9tZXkpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA0Mzog Z2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCitQYXRjaDA0MjogZ2RiLWJ6NjAxODg3 LWR3YXJmNC1yaC10ZXN0LnBhdGNoCiAKICMgV29ya2Fyb3VuZCBsaWJycG0gQlogNjQzMDMxIGR1 ZSB0byBpdHMgdW5leHBlY3RlZCBleGl0KCkgY2FsbHMgKEJaIDY0Mjg3OSkuCiAjPXB1c2gramFu Ci1QYXRjaDA0NDogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQu cGF0Y2gKK1BhdGNoMDQzOiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS1saWJycG0td29ya2Fy b3VuZC5wYXRjaAogCiAjIFtkZWxheWVkLXN5bWZpbGVdIFRlc3QgYSBiYWNrdHJhY2UgcmVncmVz c2lvbiBvbiBDRklzIHdpdGhvdXQgRElFIChCWiA2MTQ2MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRj aDA0NTogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCitQYXRjaDA0NDogZ2RiLXRl c3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCiAKICMgVmVyaWZ5IEdEQiBQeXRob24gYnVpbHQt aW4gZnVuY3Rpb24gZ2RiLnNvbGliX2FkZHJlc3MgZXhpc3RzIChCWiAjIDYzNDEwOCkuCiAjPWZl ZG9yYXRlc3QKLVBhdGNoMDQ2OiBnZGItYno2MzQxMDgtc29saWJfYWRkcmVzcy5wYXRjaAorUGF0 Y2gwNDU6IGdkYi1iejYzNDEwOC1zb2xpYl9hZGRyZXNzLnBhdGNoCiAKICMgTmV3IHRlc3QgZ2Ri LmFyY2gveDg2XzY0LXBpZDAtY29yZS5leHAgZm9yIGtlcm5lbCBQSUQgMCBjb3JlcyAoQlogNjEx NDM1KS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwNDc6IGdkYi10ZXN0LXBpZDAtY29yZS5wYXRjaAor UGF0Y2gwNDY6IGdkYi10ZXN0LXBpZDAtY29yZS5wYXRjaAogCiAjIFthcmNoZXItdHJvbWV5LWRl bGF5ZWQtc3ltZmlsZV0gTmV3IHRlc3QgZ2RiLmR3YXJmMi9kdzItYXJhbmdlcy5leHAuCiAjPWZl ZG9yYXRlc3QKLVBhdGNoMDQ4OiBnZGItdGVzdC1kdzItYXJhbmdlcy5wYXRjaAorUGF0Y2gwNDc6 IGdkYi10ZXN0LWR3Mi1hcmFuZ2VzLnBhdGNoCiAKICMgW2FyY2hlci1rZWl0aHMtZXhwci1jdW11 bGF0aXZlK3Vwc3RyZWFtXSBJbXBvcnQgQysrIHRlc3RjYXNlcy4KICM9ZmVkb3JhdGVzdAotUGF0 Y2gwNDk6IGdkYi10ZXN0LWV4cHItY3VtdWxhdGl2ZS1hcmNoZXIucGF0Y2gKK1BhdGNoMDQ4OiBn ZGItdGVzdC1leHByLWN1bXVsYXRpdmUtYXJjaGVyLnBhdGNoCiAKICMgRml4IHJlZ3Jlc3Npb25z IG9uIEMrKyBuYW1lcyByZXNvbHZpbmcgKFBSIDExNzM0LCBQUiAxMjI3MywgS2VpdGggU2VpdHop LgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1MDogZ2RiLXBoeXNuYW1lLXByMTE3MzQtdGVzdC5wYXRj aAorUGF0Y2gwNDk6IGdkYi1waHlzbmFtZS1wcjExNzM0LXRlc3QucGF0Y2gKIAogIyBGaXggcmVn cmVzc2lvbnMgb24gQysrIG5hbWVzIHJlc29sdmluZyAoUFIgMTE3MzQsIFBSIDEyMjczLCBLZWl0 aCBTZWl0eikuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDUxOiBnZGItcGh5c25hbWUtcHIxMjI3My10 ZXN0LnBhdGNoCitQYXRjaDA1MDogZ2RiLXBoeXNuYW1lLXByMTIyNzMtdGVzdC5wYXRjaAogCiAj IFRlc3QgR0RCIG9wY29kZXMvIGRpc2Fzc2VtYmx5IG9mIEludGVsIEl2eSBCcmlkZ2UgaW5zdHJ1 Y3Rpb25zIChCWiA2OTY4OTApLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1MjogZ2RiLXRlc3QtaXZ5 LWJyaWRnZS5wYXRjaAorUGF0Y2gwNTE6IGdkYi10ZXN0LWl2eS1icmlkZ2UucGF0Y2gKIAogIyBI YWNrIGZvciBwcm9wZXIgUElFIHJ1biBvZiB0aGUgdGVzdHN1aXRlLgogIz1mZWRvcmF0ZXN0Ci1Q YXRjaDA1MzogZ2RiLXJ1bnRlc3QtcGllLW92ZXJyaWRlLnBhdGNoCitQYXRjaDA1MjogZ2RiLXJ1 bnRlc3QtcGllLW92ZXJyaWRlLnBhdGNoCiAKICMgV29ya2Fyb3VuZCBQUiBsaWJjLzE0MTY2IGZv ciBpbmZlcmlvciBjYWxscyBvZiBzdHJzdHIuCiAjPWZlZG9yYXRlc3Q6IENvbXBhdGliaWxpdHkg d2l0aCBSSEVMcyAodW5jaGVja2VkIHdoaWNoIG9uZXMpLgotUGF0Y2gwNTQ6IGdkYi1nbGliYy1z dHJzdHItd29ya2Fyb3VuZC5wYXRjaAorUGF0Y2gwNTM6IGdkYi1nbGliYy1zdHJzdHItd29ya2Fy b3VuZC5wYXRjaAogCiAjIEluY2x1ZGUgdGVzdGNhc2UgZm9yIGBVbmFibGUgdG8gc2VlIGEgdmFy aWFibGUgaW5zaWRlIGEgbW9kdWxlIChYTEYpJyAoQlogODIzNzg5KS4KICM9ZmVkb3JhdGVzdAot UGF0Y2gwNTU6IGdkYi1yaGVsNS45LXRlc3RjYXNlLXhsZi12YXItaW5zaWRlLW1vZC5wYXRjaAor UGF0Y2gwNTQ6IGdkYi1yaGVsNS45LXRlc3RjYXNlLXhsZi12YXItaW5zaWRlLW1vZC5wYXRjaAog CiAjIFRlc3RjYXNlIGZvciBgU2V0dGluZyBzb2xpYi1hYnNvbHV0ZS1wcmVmaXggYnJlYWtzIHZE U08nIChCWiA4MTgzNDMpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1NjogZ2RiLXJoYnotODE4MzQz LXNldC1zb2xpYi1hYnNvbHV0ZS1wcmVmaXgtdGVzdGNhc2UucGF0Y2gKK1BhdGNoMDU1OiBnZGIt cmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10ZXN0Y2FzZS5wYXRjaAogCiAj IEltcG9ydCByZWdyZXNzaW9uIHRlc3QgZm9yIGBnZGIvZmluZHZhci5jOjQxNzogaW50ZXJuYWwt ZXJyb3I6CiAjIHJlYWRfdmFyX3ZhbHVlOiBBc3NlcnRpb24gYGZyYW1lJyBmYWlsZWQuJyAoUkgg QlogOTQ3NTY0KSBmcm9tIFJIRUwgNi41LgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1NzogZ2RiLXJo Yno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRlc3RjYXNlLnBhdGNoCitQ YXRjaDA1NjogZ2RiLXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRl c3RjYXNlLnBhdGNoCiAKICMgRml4ICdtZW1vcnkgbGVhayBpbiBpbmZweV9yZWFkX21lbW9yeSgp JyAoUkggQlogMTAwNzYxNCkKICM9ZmVkb3JhdGVzdAotUGF0Y2gwNTg6IGdkYi1yaGJ6MTAwNzYx NC1tZW1sZWFrLWluZnB5X3JlYWRfbWVtb3J5LXRlc3QucGF0Y2gKK1BhdGNoMDU3OiBnZGItcmhi ejEwMDc2MTQtbWVtbGVhay1pbmZweV9yZWFkX21lbW9yeS10ZXN0LnBhdGNoCiAKICMgRml4ICdn ZGIgZ2l2ZXMgaGlnaGx5IG1pc2xlYWRpbmcgZXJyb3Igd2hlbiBkZWJ1Z2luZm8gcGtnIGlzIHBy ZXNlbnQsCiAjIGJ1dCBub3QgY29ycmVzcG9uZGluZyBiaW5hcnkgcGtnJyAoUkggQlogOTgxMTU0 KS4KICM9cHVzaCtqYW4KLVBhdGNoMDU5OiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLW1pc2xlYWRp bmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoCitQYXRjaDA1ODog Z2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlzc2luZy1kZWJ1Z2lu Zm8tcmhiejk4MTE1NC5wYXRjaAogCiAjIERpc3BsYXkgRm9ydHJhbiBzdHJpbmdzIGluIGJhY2t0 cmFjZXMuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDYwOiBnZGItZm9ydHJhbi1mcmFtZS1zdHJpbmcu cGF0Y2gKK1BhdGNoMDU5OiBnZGItZm9ydHJhbi1mcmFtZS1zdHJpbmcucGF0Y2gKIAogIyBUZXN0 Y2FzZSBmb3IgJ1tTQVBdIFJlY3Vyc2l2ZSBkbG9wZW4gY2F1c2VzIFNBUCBIQU5BIGluc3RhbGxl ciB0bwogIyBjcmFzaC4nIChSSCBCWiAxMTU2MTkyKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwNjE6 IGdkYi1yaGJ6MTE1NjE5Mi1yZWN1cnNpdmUtZGxvcGVuLXRlc3QucGF0Y2gKK1BhdGNoMDYwOiBn ZGItcmhiejExNTYxOTItcmVjdXJzaXZlLWRsb3Blbi10ZXN0LnBhdGNoCiAKICMgRml4ICdgY2F0 Y2ggc3lzY2FsbCcgZG9lc24ndCB3b3JrIGZvciBwYXJlbnQgYWZ0ZXIgYGZvcmsnIGlzIGNhbGxl ZCcKICMgKFBoaWxpcHBlIFdhcm9xdWllcnMsIFJIIEJaIDExNDkyMDUpLgogIz1mZWRvcmF0ZXN0 Ci1QYXRjaDA2MjogZ2RiLXJoYnoxMTQ5MjA1LWNhdGNoLXN5c2NhbGwtYWZ0ZXItZm9yay10ZXN0 LnBhdGNoCitQYXRjaDA2MTogZ2RiLXJoYnoxMTQ5MjA1LWNhdGNoLXN5c2NhbGwtYWZ0ZXItZm9y ay10ZXN0LnBhdGNoCiAKICMgRml4ICdiYWNrcG9ydCBHREIgNy40IGZpeCB0byBSSEVMIDYuNiBH REInIFtPcmlnaW5hbCBTb3VyY2V3YXJlIGJ1ZwogIyBkZXNjcmlwdGlvbjogJ0MrKyAoYW5kIG9i amMpOiBJbnRlcm5hbCBlcnJvciBvbiB1bnF1YWxpZmllZCBuYW1lCiAjIHJlLXNldCcsIFBSIDEx NjU3XSAoUkggQlogMTE4NjQ3NikuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDYzOiBnZGItcmhiejEx ODY0NzYtaW50ZXJuYWwtZXJyb3ItdW5xdWFsaWZpZWQtbmFtZS1yZS1zZXQtdGVzdC5wYXRjaAor UGF0Y2gwNjI6IGdkYi1yaGJ6MTE4NjQ3Ni1pbnRlcm5hbC1lcnJvci11bnF1YWxpZmllZC1uYW1l LXJlLXNldC10ZXN0LnBhdGNoCiAKICMgVGVzdCAnaW5mbyB0eXBlLXByaW50ZXJzJyBQeXRob24g ZXJyb3IgKFJIIEJaIDEzNTA0MzYpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2NDogZ2RiLXJoYnox MzUwNDM2LXR5cGUtcHJpbnRlcnMtZXJyb3IucGF0Y2gKK1BhdGNoMDYzOiBnZGItcmhiejEzNTA0 MzYtdHlwZS1wcmludGVycy1lcnJvci5wYXRjaAogCiAjIEZpeCAnW3BwYzY0XSBhbmQgW3MzOTB4 XSB3cm9uZyBwcm9sb2d1ZSBza2lwIG9uIC1PMiAtZyBjb2RlJyAoSmFuCiAjIEtyYXRvY2h2aWws IFJIIEJaIDEwODQ0MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2NTogZ2RiLXJoYnoxMDg0NDA0 LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0zb2YzLnBhdGNoCitQYXRjaDA2 NDogZ2RiLXJoYnoxMDg0NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0z b2YzLnBhdGNoCiAKICMgRm9yY2UgbGlibmN1cnNlc3cgb3ZlciBsaWJuY3Vyc2VzIHRvIG1hdGNo IHRoZSBpbmNsdWRlcyAoUkggQlogMTI3MDUzNCkuCiAjPXB1c2gramFuCi1QYXRjaDA2NjogZ2Ri LWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaAorUGF0Y2gwNjU6IGdkYi1mZWRvcmEtbGlibmN1cnNl c3cucGF0Y2gKIAogIyBUZXN0IGNsZmx1c2hvcHQgaW5zdHJ1Y3Rpb24gZGVjb2RlIChmb3IgUkgg QlogMTI2MjQ3MSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDY3OiBnZGItb3Bjb2Rlcy1jbGZsdXNo b3B0LXRlc3QucGF0Y2gKK1BhdGNoMDY2OiBnZGItb3Bjb2Rlcy1jbGZsdXNob3B0LXRlc3QucGF0 Y2gKIAogIyBbU0NMXSBTa2lwIGRlcHJlY2F0ZWQgLmdkYl9pbmRleCB3YXJuaW5nIGZvciBSZWQg SGF0IGJ1aWx0IGZpbGVzIChCWiA5NTM1ODUpLgogIz1wdXNoK2phbgotUGF0Y2gwNjg6IGdkYi02 LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAorUGF0Y2gwNjc6IGdkYi02LjYtYnVpbGRp ZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAogCiAjIFthYXJjaDY0XSBGaXggaGFyZHdhcmUgd2F0Y2hw b2ludHMgKFJIIEJaIDEyNjE1NjQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2OTogZ2RiLXJoYnox MjYxNTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoCitQYXRjaDA2ODogZ2RiLXJo YnoxMjYxNTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoCiAKICMgQWRkIG1lc3Nh Z2VzIHN1Z2dlc3RpbmcgbW9yZSByZWNlbnQgUkhFTCBnZGJzZXJ2ZXIgKFJIIEJaIDEzMjExMTQp LgogIz1mZWRvcmEKLVBhdGNoMDcwOiBnZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaAorUGF0Y2gw Njk6IGdkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCiAKICMgTmV3IHRlc3QgZm9yIFB5dGhvbiAi Q2Fubm90IGxvY2F0ZSBvYmplY3QgZmlsZSBmb3IgYmxvY2siIChmb3IgUkggQlogMTMyNTc5NSku CiAjPWZlZG9yYXRlc3QKLVBhdGNoMDcxOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRl c3QucGF0Y2gKK1BhdGNoMDcwOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0 Y2gKIAogIyBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaW51eF9wZXJmLmggZm9yIGxpYmlwdCAo UkggQlogMTI1NjUxMykuCiAjPWZlZG9yYQotUGF0Y2gwNzI6IGdkYi1saW51eF9wZXJmLWJ1bmRs ZS5wYXRjaAorUGF0Y2gwNzE6IGdkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaAogCiAjIEZpeCBn ZGItaGVhZGxlc3MgL3Vzci9iaW4vIGV4ZWN1dGFibGVzIChCWiAxMzkwMjUxKS4KICMKQEAgLTMw NCwxMDIgKzMwMCw1NCBAQCBQYXRjaDA3MjogZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCiAj CiAjICAgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvTWluaW1hbF9HREJf aW5fYnVpbGRyb290CiAjPWZlZG9yYQotUGF0Y2gwNzM6IGdkYi1saWJleGVjLWFkZC1pbmRleC5w YXRjaAorUGF0Y2gwNzI6IGdkYi1saWJleGVjLWFkZC1pbmRleC5wYXRjaAogCiAjIE5ldyB0ZXN0 Y2FzZSBmb3I6IEZpeCA8dGFiPi1jb21wbGV0aW9uIGNyYXNoIChHYXJ5IEJlbnNvbiwgUkggQlog MTM5ODM4NykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDc0OiBnZGItcmhiejEzOTgzODctdGFiLWNy YXNoLXRlc3QucGF0Y2gKK1BhdGNoMDczOiBnZGItcmhiejEzOTgzODctdGFiLWNyYXNoLXRlc3Qu cGF0Y2gKIAogIyBbczM5MHhdIEJhY2twb3J0IGFyY2gxMiBpbnN0cnVjdGlvbnMgZGVjb2Rpbmcg KFJIIEJaIDE1NTMxMDQpLgogIyA9ZmVkb3JhdGVzdAotUGF0Y2gwNzU6IGdkYi1yaGJ6MTU1MzEw NC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAotCi0jIEZpeCBvZmYtYnktb25lIGVycm9yIGluIGFk YV9mb2xkX25hbWUucGF0Y2ggKFJIIEJaIDE5MDU5OTYpCi0jIFVwc3RyZWFtIHBhdGNoIHByb3Bv c2FsOiBodHRwczovL3NvdXJjZXdhcmUub3JnL3BpcGVybWFpbC9nZGItcGF0Y2hlcy8yMDIwLURl Y2VtYmVyLzE3MzkzNS5odG1sCi0jID1mZWRvcmF0ZXN0Ci1QYXRjaDA3NjogZ2RiLXJoYnoxOTA1 OTk2LWZpeC1vZmYtYnktb25lLWVycm9yLWluLWFkYV9mb2xkX25hbWUucGF0Y2gKLQotIyBCYWNr cG9ydCBmaXggZm9yIGxpYnN0ZGMrKyBhc3NlcnQgd2hlbiBwZXJmb3JtaW5nIHRhYiBjb21wbGV0 aW9uCi0jIChSSCBCWiAxOTEyOTg1KS4KLVBhdGNoMDc3OiBnZGItcmhiejE5MTI5ODUtbGlic3Rk YysrLWFzc2VydC5wYXRjaAotCi0jIEJhY2twb3J0IGZpeCBmb3IgZnJhbWVfaWRfcCBhc3NlcnRp b24gZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi1QYXRjaDA3ODogZ2RiLXJoYnoxOTA5OTAyLWZy YW1lX2lkX3AtYXNzZXJ0LTEucGF0Y2gKLQotIyBCYWNrcG9ydCBwYXRjaCAjMiB3aGljaCBmaXhl cyBhIGZyYW1lX2lkX3AgYXNzZXJ0aW9uIGZhaWx1cmUgKFJIIEJaIDE5MDk5MDIpLgotUGF0Y2gw Nzk6IGdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNoCi0KLSMgQmFja3Bv cnQgY2hhbmdlIHdoaWNoIGZpeGVzIGdkYnNlcnZlciB0ZXN0aW5nIGhhbmcgb24gZjM0IGFuZCBy YXdoaWRlLgotUGF0Y2gwODA6IGdkYi1yaGJ6MTk0MTA4MC1maXgtZ2Ric2VydmVyLWhhbmcucGF0 Y2gKLQotIyBCYWNrcG9ydCAiRGlzYWJsZSBicmFja2V0ZWQgcGFzdGUgbW9kZSBpbiBHREIgdGVz dHMiCi0jIChUb20gVHJvbWV5KQotUGF0Y2gwODE6IHRlc3RpbmctY3VzdG9tLWlucHV0cmMucGF0 Y2gKLQotIyBCYWNrcG9ydCAiU2F2ZS9yZXN0b3JlIGZpbGUgb2Zmc2V0IHdoaWxlIHJlYWRpbmcg bm90ZXMgaW4gY29yZSBmaWxlIgotIyAoS2VpdGggU2VpdHosIFJIQlogMTkzMTM0NCkKLVBhdGNo MDgyOiBnZGItcmhiejE5MzEzNDQtYmZkX3NlZWstZWxmX3JlYWRfbm90ZXMucGF0Y2gKLQotIyBb Zm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQgd2hpY2ggY2xlYW5zIHVw Ci0jIGFycmF5L3N0cmluZyBleHByZXNzaW9uIGV2YWx1YXRpb24uCi1QYXRjaDA4MzogZ2RiLXJo YnoxOTY0MTY3LWZvcnRyYW4tY2xlYW4tdXAtYXJyYXktZXhwcmVzc2lvbi1ldmFsdWF0aW9uLnBh dGNoCi0KLSMgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNo IG1vdmVzIEZvcnRyYW4KLSMgZXhwcmVzc2lvbiBoYW5kbGluZyB0byBmLWxhbmcuYy4KLVBhdGNo MDg0OiBnZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxpbmcucGF0Y2gKLQot IyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQgd2hpY2ggZWxpbWlu YXRlcyB1bmRlc2lyYWJsZQotIyB3aGl0ZXNwYWNlIHdoZW4gcHJpbnRpbmcgYXJyYXlzLgotUGF0 Y2gwODU6IGdkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLXdoaXRlc3BhY2VfYXJyYXkucGF0Y2gKLQot IyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQgd2hpY2ggY2hhbmdl cyBlbnVtCi0jIHJhbmdlX3R5cGUgaW50byBhIGJpdCBmaWVsZCBlbnVtLgotUGF0Y2gwODY6IGdk Yi1yaGJ6MTk2NDE2Ny1jb252ZXJ0LWVudW0tcmFuZ2VfdHlwZS5wYXRjaAotCi0jIFtmb3J0cmFu XSBCYWNrcG9ydCBBbmRyZXcgQnVyZ2VzcydzIGNvbW1pdCB3aGljaCByZW5hbWVzIGVudW0KLSMg cmFuZ2VfdHlwZSB0byBlbnVtIHJhbmdlX2ZsYWcuCi1QYXRjaDA4NzogZ2RiLXJoYnoxOTY0MTY3 LWZvcnRyYW4tcmFuZ2VfdHlwZS10by1yYW5nZV9mbGFnLnBhdGNoCitQYXRjaDA3NDogZ2RiLXJo YnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCiAKLSMgW2ZvcnRyYW5dIEJhY2twb3J0 IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGFkZHMgc3VwcG9ydAotIyBmb3IgYXJyYXkg c3RyaWRlcyBpbiBleHByZXNzaW9ucy4KLVBhdGNoMDg4OiBnZGItcmhiejE5NjQxNjctZm9ydHJh bi1hcnJheS1zdHJpZGVzLWluLWV4cHJlc3Npb25zLnBhdGNoCisjQmFja3BvcnQgdXBzdHJlYW0g cGF0Y2ggd2hpY2ggZml4ZXMgaW50ZXJuYWwtZXJyb3I6IFVuZXhwZWN0ZWQKKyN0eXBlIGZpZWxk IGxvY2F0aW9uIGtpbmQgKFJIQlogMTk3Njg4NykuCitQYXRjaDA3NTogZ2RiLXJoYnoxOTc2ODg3 LWZpZWxkLWxvY2F0aW9uLWtpbmQucGF0Y2gKIAotIyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3 IEJ1cmdlc3MncyBjb21taXQgZm9yIEZvcnRyYW4gYXJyYXkKLSMgc2xpY2Ugc3VwcG9ydAotUGF0 Y2gwODk6IGdkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLWFycmF5LXNsaWNlcy1hdC1wcm9tcHQucGF0 Y2gKKyMgQmFja3BvcnQgdGVzdCBmb3IgUkhCWiAxOTc2ODg3IChLZXZpbiBCdWV0dG5lcikuCitQ YXRjaDA3NjogZ2RiLXRlc3QtZm9yLXJoYnoxOTc2ODg3LnBhdGNoCiAKLSMgW2ZvcnRyYW5dIEJh Y2twb3J0IFNpbW9uIE1hcmNoaSdzIGNvbW1pdCB3aGljaCBmaXhlcyBhIDMyLWJpdCBidWlsZAot IyBwcm9ibGVtIGluIGdkYi9mLWxhbmcuYy4KLVBhdGNoMDkwOiBnZGItcmhiejE5NjQxNjctZm9y dHJhbi1maXgtdHlwZS1mb3JtYXQtbWlzbWF0Y2gtaW4tZi1sYW5nLmMucGF0Y2gKKyMgQmFja3Bv cnQgZ2RiLmZvcnRyYW4gdGVzdHN1aXRlIGNoYW5nZXMgaW4gb3JkZXIgdG8gYXZvaWQgRm9ydHJh bgorIyBsZXhpY2FsIGFuYWx5emVyIGJ1Zy4KK1BhdGNoMDc3OiBnZGItcmhiejIwMTI5NzYtcGFw ZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRjaAogCi0jIEJhY2twb3J0IG9mICJFeGNs dWRlIGRlYnVnaW5mbyBmaWxlcyBmcm9tICdvdXRzaWRlIG9mIEVMRiBzZWdtZW50cycKLSMgd2Fy bmluZyIgIChLZWl0aCBTZWl0eikKLVBhdGNoMDkxOiBnZGItcmhiejE4OTgyNTItbG9hZGFibGUt c2VjdGlvbi1vdXRzaWRlLUVMRi1zZWdtZW50cy5wYXRjaAorIyBCYWNrcG9ydCBtYW5wYWdlIHVw ZGF0ZQorUGF0Y2gwNzg6IGdkYi1yaGJ6LTg1MzA3MS11cGRhdGUtbWFucGFnZXMucGF0Y2gKIAot IyBCYWNrcG9ydCAiRml4IGNyYXNoIHdoZW4gZXhwYW5kaW5nIHBhcnRpYWwgc3ltdGFicyB3aXRo IERXX1RBR19pbXBvcnRlZF91bml0IgotIyAoVG9tIFRyb21leSwgZ2RiLzI3NzQzKQotUGF0Y2gw OTI6IGdkYi1nZGIyNzc0My1wc3ltdGFiLWltcG9ydGVkLXVuaXQucGF0Y2gKKyMgQmFja3BvcnQg Zml4IGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3NykuCitQYXRjaDA3OTogZ2RiLXJoYnoy MDIyMTc3LWRwcmludGYtMS5wYXRjaAogCi0jIEJhY2twb3J0ICJbZ2RiL3NlcnZlcl0gRG9uJ3Qg b3ZlcndyaXRlIGZzL2dzX2Jhc2Ugd2l0aCAtbTMyIgotIyAoVG9tIGRlIFZyaWVzKQotUGF0Y2gw OTM6IGdkYi1kb250LW92ZXJ3cml0ZS1mc2dzYmFzZS1tMzIucGF0Y2gKKyMgQmFja3BvcnQgdGVz dCBjYXNlIGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3NykuCitQYXRjaDA4MDogZ2RiLXJo YnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaAogCi0jIEJhY2twb3J0IHBhdGNoIGZpeGluZyBnZGIg b24gZ2xpYmMtMi4zNCBtYWNoaW5lcyB3aXRoIHJlZ2FyZCB0byBhdHRhY2hpbmcKLSMgdG8gcHJv Y2Vzc2VzIChSSCBCWiAxOTcxMDk2KS4KLVBhdGNoMDk0OiBnZGItcmhiejE5NzEwOTYtZ2xpYmMy LjM0LTEucGF0Y2gKKyNCYWNrcG9ydCB1cHN0cmVhbSBjb21taXQgZnJvbSBBYXJvbiBNZXJleQor IzNlYTQ0ZjIxMjk5IGdkYi50ZXhpbmZvOiBFeHBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdp bmZvZAorUGF0Y2gwODE6IGdkYi1yaGJ6MjAyNDg3NS1leHBhbmQtZG9jdW1lbnRhdGlvbi1mb3It ZGVidWdpbmZvZC5wYXRjaAogCi0jIEJhY2twb3J0IHBhdGNoIGZpeGluZyBnZGIgb24gZ2xpYmMt Mi4zNCBtYWNoaW5lcyB3LyByZWdhcmQgdG8KLSMgbGlidGhyZWFkX2RiIGluaXRpYWxpemF0aW9u LgotUGF0Y2gwOTU6IGdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtMi5wYXRjaAorI0JhY2twb3J0 IHVwc3RyZWFtIGNvbW1pdCBmcm9tIEFhcm9uIE1lcmV5CisjNzgxMWZhNTk5NWYgZ2RiOiBhZGQg c2V0L3Nob3cgY29tbWFuZHMgZm9yIG1hbmFnaW5nIGRlYnVnaW5mbworUGF0Y2gwODI6IGdkYi1y aGJ6MjAyNDg3NS1zZXRfc2hvdy1mb3ItbWFuYWdpbmctZGVidWdpbmZvZC5wYXRjaAogCi0jIEJh Y2twb3J0IHRlc3RzdWl0ZSBwYXRjaCBmb3IgbWF0Y2hpbmcgbmV3IGxpYnRocmVhZF9kYiByZWxh dGVkIG91dHB1dAotIyB3aGVuIHRlc3RpbmcgZ2RiIG9uIGdsaWJjLTIuMzQgbWF0Y2hpbmVzIChS SCBCWiAxOTcxMDk2KS4KLVBhdGNoMDk2OiBnZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTMucGF0 Y2gKKyNCYWNrcG9ydCB1cHN0cmVhbSBjb21taXQgZnJvbSBUb20gVHJvbWV5CisjMmE4ZjFmNDc0 NDYgRml4IHVuaXR0ZXN0LmV4cCBmYWlsdXJlIGR1ZSB0byAnc2V0IGRlYnVnaW5mb2QnIGFkZGl0 aW9uCitQYXRjaDA4MzogZ2RiLXJoYnoyMDI0ODc1LWZpeC11bml0dGVzdC1mYWlsdXJlLnBhdGNo CiAKLSMgQmFja3BvcnQgcGF0Y2ggYWRqdXN0aW5nIHRlc3QgZ2RiLmJhc2UvcHJpbnQtc3ltYm9s LWxvYWRpbmcuZXhwLgotIyAoUkggQlogMTk3MTA5NikuCi1QYXRjaDA5NzogZ2RiLXJoYnoxOTcx MDk2LWdsaWJjMi4zNC00LnBhdGNoCisjQmFja3BvcnQgdXBzdHJlYW0gY29tbWl0IGZyb20gIFNp bW9uIE1hcmNoaQorIzMzM2YzNWI2MzE1IGdkYjogcGFzcy9yZXR1cm4gc2V0dGluZyBzZXR0ZXIv Z2V0dGVyCisjc2NhbGFyIHZhbHVlcyBieSB2YWx1ZQorUGF0Y2gwODQ6IGdkYi1yaGJ6MjAyNDg3 LXJld29yay1zZXQtZGVidWdpbmZvZC5wYXRjaAogCi0jIEJhY2twb3J0IHBhdGNoIGFkanVzdGlu ZyB0ZXN0IGdkYi5taS9taS1zeW0taW5mby5leHAgKFJIIEJaIDE5NzEwOTYpLgotUGF0Y2gwOTg6 IGdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNS5wYXRjaAorI0JhY2twb3J0IHVwc3RyZWFtIGNv bW1pdCBmcm9tIEFhcm9uIE1lcmV5CisjYjlkYjI2YjRjNDQgW1BSIGdkYi8yNzAyNl0gQ1RSTC1D IGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQKK1BhdGNoMDg1OiBnZGIt cmhiejIwMjQ4NzUtcHIyNzAyNi5wYXRjaAogCgpkaWZmIC0tZ2l0IGEvX2dkYi5zcGVjLnBhdGNo LmluY2x1ZGUgYi9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZQppbmRleCBiMDg5YmIxLi45NTk0ZDM1 IDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZQorKysgYi9fZ2RiLnNwZWMucGF0 Y2guaW5jbHVkZQpAQCAtODMsMTYgKzgzLDMgQEAKICVwYXRjaDA4MyAtcDEKICVwYXRjaDA4NCAt cDEKICVwYXRjaDA4NSAtcDEKLSVwYXRjaDA4NiAtcDEKLSVwYXRjaDA4NyAtcDEKLSVwYXRjaDA4 OCAtcDEKLSVwYXRjaDA4OSAtcDEKLSVwYXRjaDA5MCAtcDEKLSVwYXRjaDA5MSAtcDEKLSVwYXRj aDA5MiAtcDEKLSVwYXRjaDA5MyAtcDEKLSVwYXRjaDA5NCAtcDEKLSVwYXRjaDA5NSAtcDEKLSVw YXRjaDA5NiAtcDEKLSVwYXRjaDA5NyAtcDEKLSVwYXRjaDA5OCAtcDEKCmRpZmYgLS1naXQgYS9f Z2l0X3Vwc3RyZWFtX2NvbW1pdCBiL19naXRfdXBzdHJlYW1fY29tbWl0CmluZGV4IDAyYzFhMGYu LjM0OWU3NmIgMTAwNjQ0Ci0tLSBhL19naXRfdXBzdHJlYW1fY29tbWl0CisrKyBiL19naXRfdXBz dHJlYW1fY29tbWl0CkBAIC0xICsxIEBACi1jZTM1ZDcxNjNlNzc5YjEzMjEwNThiMjJmMDA1Yzcw Y2UxNTI0YjI1Cis4Y2RkODU2OGJmZTRlYTg2YTkzZTRiODBiZjJmYzZlNmY5Y2FkODRjCgpkaWZm IC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IGE3Njc2OTEuLmRlMjA2 MTcgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTMsNyAr Myw2IEBAIGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiBnZGItNi4zLXRlc3QtZHRvcmZp eC0yMDA1MDEyMS5wYXRjaAogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAxMjUucGF0Y2gKIGdk Yi02LjMtdGhyZWFkZWQtd2F0Y2hwb2ludHMyLTIwMDUwMjI1LnBhdGNoCi1nZGItNi4zLWluZmVy aW9yLW5vdGlmaWNhdGlvbi0yMDA1MDcyMS5wYXRjaAogZ2RiLTYuMy1pbmhlcml0YW5jZXRlc3Qt MjAwNTA3MjYucGF0Y2gKIGdkYi02LjUtYnoxODUzMzctcmVzb2x2ZS10bHMtd2l0aG91dC1kZWJ1 Z2luZm8tdjIucGF0Y2gKIGdkYi02LjUtc2hhcmVkbGlicmFyeS1wYXRoLnBhdGNoCkBAIC03Mywy NiArNzIsMTQgQEAgZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCiBnZGItbGliZXhlYy1hZGQt aW5kZXgucGF0Y2gKIGdkYi1yaGJ6MTM5ODM4Ny10YWItY3Jhc2gtdGVzdC5wYXRjaAogZ2RiLXJo YnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCi1nZGItcmhiejE5MDU5OTYtZml4LW9m Zi1ieS1vbmUtZXJyb3ItaW4tYWRhX2ZvbGRfbmFtZS5wYXRjaAotZ2RiLXJoYnoxOTEyOTg1LWxp YnN0ZGMrKy1hc3NlcnQucGF0Y2gKLWdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0x LnBhdGNoCi1nZGItcmhiejE5MDk5MDItZnJhbWVfaWRfcC1hc3NlcnQtMi5wYXRjaAotZ2RiLXJo YnoxOTQxMDgwLWZpeC1nZGJzZXJ2ZXItaGFuZy5wYXRjaAotdGVzdGluZy1jdXN0b20taW5wdXRy Yy5wYXRjaAotZ2RiLXJoYnoxOTMxMzQ0LWJmZF9zZWVrLWVsZl9yZWFkX25vdGVzLnBhdGNoCi1n ZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVhbi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRp b24ucGF0Y2gKLWdkYi1yaGJ6MTk2NDE2Ny1tb3ZlLWZvcnRyYW4tZXhwci1oYW5kbGluZy5wYXRj aAotZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJheS5wYXRjaAotZ2RiLXJo YnoxOTY0MTY3LWNvbnZlcnQtZW51bS1yYW5nZV90eXBlLnBhdGNoCi1nZGItcmhiejE5NjQxNjct Zm9ydHJhbi1yYW5nZV90eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2gKLWdkYi1yaGJ6MTk2NDE2Ny1m b3J0cmFuLWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKLWdkYi1yaGJ6MTk2NDE2 Ny1mb3J0cmFuLWFycmF5LXNsaWNlcy1hdC1wcm9tcHQucGF0Y2gKLWdkYi1yaGJ6MTk2NDE2Ny1m b3J0cmFuLWZpeC10eXBlLWZvcm1hdC1taXNtYXRjaC1pbi1mLWxhbmcuYy5wYXRjaAotZ2RiLXJo YnoxODk4MjUyLWxvYWRhYmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKLWdk Yi1nZGIyNzc0My1wc3ltdGFiLWltcG9ydGVkLXVuaXQucGF0Y2gKLWdkYi1kb250LW92ZXJ3cml0 ZS1mc2dzYmFzZS1tMzIucGF0Y2gKLWdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtMS5wYXRjaAot Z2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC0yLnBhdGNoCi1nZGItcmhiejE5NzEwOTYtZ2xpYmMy LjM0LTMucGF0Y2gKLWdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNC5wYXRjaAotZ2RiLXJoYnox OTcxMDk2LWdsaWJjMi4zNC01LnBhdGNoCitnZGItcmhiejE5NzY4ODctZmllbGQtbG9jYXRpb24t a2luZC5wYXRjaAorZ2RiLXRlc3QtZm9yLXJoYnoxOTc2ODg3LnBhdGNoCitnZGItcmhiejIwMTI5 NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRjaAorZ2RiLXJoYnotODUzMDcx LXVwZGF0ZS1tYW5wYWdlcy5wYXRjaAorZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMS5wYXRjaAor Z2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaAorZ2RiLXJoYnoyMDI0ODc1LWV4cGFuZC1k b2N1bWVudGF0aW9uLWZvci1kZWJ1Z2luZm9kLnBhdGNoCitnZGItcmhiejIwMjQ4NzUtc2V0X3No b3ctZm9yLW1hbmFnaW5nLWRlYnVnaW5mb2QucGF0Y2gKK2dkYi1yaGJ6MjAyNDg3NS1maXgtdW5p dHRlc3QtZmFpbHVyZS5wYXRjaAorZ2RiLXJoYnoyMDI0ODctcmV3b3JrLXNldC1kZWJ1Z2luZm9k LnBhdGNoCitnZGItcmhiejIwMjQ4NzUtcHIyNzAyNi5wYXRjaAoKZGlmZiAtLWdpdCBhL2dkYi02 LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gK aW5kZXggMzVjMmRlMS4uOWZhMmU3ZCAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1nc3RhY2stMjAwNTA0 MTEucGF0Y2gKKysrIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gKQEAgLTE2LDcgKzE2 LDcgQEAgU3ViamVjdDogZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gKIGRpZmYgLS1naXQg YS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KIC0tLSBhL2dkYi9NYWtlZmlsZS5p bgogKysrIGIvZ2RiL01ha2VmaWxlLmluCi1AQCAtMTcyNiw3ICsxNzI2LDcgQEAgaW5mbyBpbnN0 YWxsLWluZm8gY2xlYW4taW5mbyBkdmkgcGRmIGluc3RhbGwtcGRmIGh0bWwgaW5zdGFsbC1odG1s OiBmb3JjZQorQEAgLTE3NTMsNyArMTc1Myw3IEBAIGluZm8gaW5zdGFsbC1pbmZvIGNsZWFuLWlu Zm8gZHZpIHBkZiBpbnN0YWxsLXBkZiBodG1sIGluc3RhbGwtaHRtbDogZm9yY2UKICBpbnN0YWxs OiBhbGwKICAJQCQoTUFLRSkgJChGTEFHU19UT19QQVNTKSBpbnN0YWxsLW9ubHkKICAKQEAgLTI1 LDcgKzI1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgogIAl0cmFuc2Zvcm1lZF9uYW1lPWB0PSckKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpJzsgXAog IAkJCSAgZWNobyBnZGIgfCBzZWQgLWUgIiQkdCJgIDsgXAogIAkJaWYgdGVzdCAieCQkdHJhbnNm b3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xNzc1LDcgKzE3NzUsMjUgQEAgaW5zdGFsbC1n dWlsZToKK0BAIC0xODAyLDcgKzE4MDIsMjUgQEAgaW5zdGFsbC1ndWlsZToKICBpbnN0YWxsLXB5 dGhvbjoKICAJJChTSEVMTCkgJChzcmNkaXIpLy4uL21raW5zdGFsbGRpcnMgJChERVNURElSKSQo R0RCX0RBVEFESVIpL3B5dGhvbi9nZGIKICAKQEAgLTUyLDcgKzUyLDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgogIAl0cmFuc2Zvcm1lZF9uYW1lPWB0 PSckKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpJzsgXAogIAkJCSAgZWNobyBnZGIgfCBzZWQgLWUg JCR0YCA7IFwKICAJCWlmIHRlc3QgIngkJHRyYW5zZm9ybWVkX25hbWUiID0geDsgdGhlbiBcCi1A QCAtMTc5OCw2ICsxODE2LDE4IEBAIHVuaW5zdGFsbDogZm9yY2UgJChDT05GSUdfVU5JTlNUQUxM KQorQEAgLTE4MjUsNiArMTg0MywxOCBAQCB1bmluc3RhbGw6IGZvcmNlICQoQ09ORklHX1VOSU5T VEFMTCkKICAJZmkKICAJQCQoTUFLRSkgRE89dW5pbnN0YWxsICJET0RJUlM9JChTVUJESVJTKSIg JChGTEFHU19UT19QQVNTKSBzdWJkaXJfZG8KICAKCmRpZmYgLS1naXQgYS9nZGItNi4zLWluZmVy aW9yLW5vdGlmaWNhdGlvbi0yMDA1MDcyMS5wYXRjaCBiL2dkYi02LjMtaW5mZXJpb3Itbm90aWZp Y2F0aW9uLTIwMDUwNzIxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTRl Zjc5Li4wMDAwMDAwCi0tLSBhL2dkYi02LjMtaW5mZXJpb3Itbm90aWZpY2F0aW9uLTIwMDUwNzIx LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzI0ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENI RVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKZWZmIEpvaG5zdG9uIDxqam9obnN0 bkByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMTowNzo1MCArMDIwMAotU3Vi amVjdDogZ2RiLTYuMy1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3MjEucGF0Y2gKLQotOzsg Tm90aWZ5IG9ic2VydmVycyB0aGF0IHRoZSBpbmZlcmlvciBoYXMgYmVlbiBjcmVhdGVkCi07Oz1m ZWRvcmF0ZXN0Ci0KLTIwMDUtMDctMjEgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQu Y29tPgotCi0JKiBnZGIuYmFzZS9hdHRhY2gtMzIuZXhwOiBOZXcgdGVzdCBmb3IgYXR0YWNoaW5n IGluIDMyLWJpdAotCW1vZGUgb24gNjQtYml0IHN5c3RlbXMuCi0JKiBnZGIuYmFzZS9hdHRhY2gt MzIuYzogRGl0dG8uCi0JKiBnZGIuYmFzZS9hdHRhY2gtMzJiLmM6IERpdHRvLgotCi0yMDA3LTEy LTI2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGdk Yi5iYXNlL2F0dGFjaC0zMi5leHA6IEZpeCBmb3Jnb3R0ZW4gJEdEQkZMQUdTIGFzIHNldC4KLQot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMyLmMgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2F0dGFjaC0zMi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9k ZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gtMzIuYwotQEAgLTAs MCArMSwyMCBAQAotKy8qIFRoaXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91 dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgotKyAgIGF0dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0 IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9vcAotKyAgIGlzIGV4aXRlZCB3aGVuICYg aWYgdGhlIHZhcmlhYmxlICdzaG91bGRfZXhpdCcgaXMgbm9uLXplcm8uICAoSXQKLSsgICBpcyBp bml0aWFsaXplZCB0byB6ZXJvIGluIHRoaXMgcHJvZ3JhbSwgc28gdGhlIGxvb3Agd2lsbCBuZXZl cgotKyAgIGV4aXQgdW5sZXNzL3VudGlsIGdkYiBzZXRzIHRoZSB2YXJpYWJsZSB0byBub24temVy by4pCi0rICAgKi8KLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLStpbnQgIHNob3VsZF9leGl0ID0g MDsKLSsKLStpbnQgbWFpbiAoKQotK3sKLSsgIGludCAgbG9jYWxfaSA9IDA7Ci0rCi0rICB3aGls ZSAoISBzaG91bGRfZXhpdCkKLSsgICAgewotKyAgICAgIGxvY2FsX2krKzsKLSsgICAgfQotKyAg cmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNo LTMyLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMyLmV4cAotbmV3IGZpbGUg bW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv YXR0YWNoLTMyLmV4cAotQEAgLTAsMCArMSwyNDYgQEAKLSsjIENvcHlyaWdodCAyMDA1IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91 bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAy MTExLTEzMDcsIFVTQS4KLSsjCi0rIyBUaGlzIHRlc3Qgd2FzIGJhc2VkIG9uIGF0dGFjaC5leHAg YW5kIG1vZGlmaWVkIGZvciAzMi82NCBiaXQgTGludXggc3lzdGVtcy4gKi8KLSsKLSsjIE9uIEhQ LVVYIDExLjAsIHRoaXMgdGVzdCBpcyBjYXVzaW5nIGEgcHJvY2VzcyBydW5uaW5nIHRoZSBwcm9n cmFtCi0rIyAiYXR0YWNoIiB0byBiZSBsZWZ0IGFyb3VuZCBzcGlubmluZy4gIFVudGlsIHdlIGZp Z3VyZSBvdXQgd2h5LCBJIGFtCi0rIyBjb21tZW50aW5nIG91dCB0aGUgdGVzdCB0byBhdm9pZCBw b2xsdXRpbmcgdGlhbWF0IChvdXIgMTEuMCBuaWdodGx5Ci0rIyB0ZXN0IG1hY2hpbmUpIHdpdGgg dGhlc2UgcHJvY2Vzc2VzLiBSVAotKyMKLSsjIFNldHRpbmcgdGhlIG1hZ2ljIGJpdCBpbiB0aGUg dGFyZ2V0IGFwcCBzaG91bGQgd29yay4gIEkgYWRkZWQgYQotKyMgImtpbGwiLCBhbmQgYWxzbyBh IHRlc3QgZm9yIHRoZSBSMyByZWdpc3RlciB3YXJuaW5nLiAgSkIKLStpZiB7ICFbaXN0YXJnZXQg Ing4Nl82NCotKmxpbnV4KiJdCi0rICAgICAmJiAhW2lzdGFyZ2V0ICJwb3dlcnBjNjQqLSpsaW51 eCoiXX0gewotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIGFyZSB3ZSBvbiBhIHRhcmdldCBib2Fy ZAotK2lmIHtbdXNlX2dkYl9zdHViXX0gewotKyAgICB1bnRlc3RlZCAic2tpcHBpbmcgdGVzdCBi ZWNhdXNlIG9mIHVzZV9nZGJfc3R1YiIKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK3NldCB0ZXN0 ZmlsZSAiYXR0YWNoLTMyIgotK3NldCBzcmNmaWxlICAke3Rlc3RmaWxlfS5jCi0rc2V0IHNyY2Zp bGUyICR7dGVzdGZpbGV9Yi5jCi0rc2V0IGJpbmZpbGUgIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAk e3Rlc3RmaWxlfV0KLStzZXQgYmluZmlsZTIgW3N0YW5kYXJkX291dHB1dF9maWxlICR7dGVzdGZp bGV9Yl0KLStzZXQgZXNjYXBlZGJpbmZpbGUgIFtzdHJpbmdfdG9fcmVnZXhwIFtzdGFuZGFyZF9v dXRwdXRfZmlsZSAke3Rlc3RmaWxlfV1dCi0rCi0rI2V4ZWN1dGVfYW55d2hlcmUgInJtIC1mICR7 YmluZmlsZX0gJHtiaW5maWxlMn0iCi0rcmVtb3RlX2V4ZWMgYnVpbGQgInJtIC1mICR7YmluZmls ZX0gJHtiaW5maWxlMn0iCi0rIyBGb3IgZGVidWdnaW5nIHRoaXMgdGVzdAotKyMKLSsjbG9nX3Vz ZXIgMQotKwotKyMgYnVpbGQgdGhlIGZpcnN0IHRlc3QgY2FzZQotKyMKLStpZiAgeyBbZ2RiX2Nv bXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1 dGFibGUgW2xpc3QgZGVidWcgImFkZGl0aW9uYWxfZmxhZ3M9LW0zMiJdXSAhPSAiIiB9IHsKLSsg ICAgZ2RiX3N1cHByZXNzX2VudGlyZV9maWxlICJUZXN0Y2FzZSBjb21waWxlIGZhaWxlZCwgc28g YWxsIHRlc3RzIGluIHRoaXMgZmlsZSB3aWxsIGF1dG9tYXRpY2FsbHkgZmFpbC4iCi0rfQotKwot KyMgQnVpbGQgdGhlIGluLXN5c3RlbS1jYWxsIHRlc3QKLSsKLStpZiAgeyBbZ2RiX2NvbXBpbGUg IiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlMn0iICIke2JpbmZpbGUyfSIgZXhlY3V0YWJs ZSBbbGlzdCBkZWJ1ZyAiYWRkaXRpb25hbF9mbGFncz0tbTMyIl1dICE9ICIiIH0gewotKyAgICBn ZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRlc3RjYXNlIGNvbXBpbGUgZmFpbGVkLCBzbyBhbGwg dGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsLiIKLSt9Ci0rCi0raWYg W2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwot K3Byb2MgZG9fYXR0YWNoX3Rlc3RzIHt9IHsKLSsgICAgZ2xvYmFsIGdkYl9wcm9tcHQKLSsgICAg Z2xvYmFsIGJpbmZpbGUKLSsgICAgZ2xvYmFsIGVzY2FwZWRiaW5maWxlCi0rICAgIGdsb2JhbCBz cmNmaWxlCi0rICAgIGdsb2JhbCB0ZXN0ZmlsZQotKyAgICBnbG9iYWwgb2JqZGlyCi0rICAgIGds b2JhbCBzdWJkaXIKLSsgICAgZ2xvYmFsIHRpbWVvdXQKLSsgICAgZ2xvYmFsIHRlc3RwaWQKLSsK LSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBjYW4gInNlZSIgdGhlIHZhcmlhYmxlICJzaG91bGRfZXhp dCIgaW4gdGhlCi0rICAgICMgcHJvZ3JhbSwgYW5kIHRoYXQgaXQgaXMgemVyby4KLSsKLSsgICAg Z2RiX3Rlc3QgInByaW50IHNob3VsZF9leGl0IiAiID0gMCIgImFmdGVyIGF0dGFjaC0zMiwgcHJp bnQgc2hvdWxkX2V4aXQiCi0rCi0rICAgICMgVmVyaWZ5IHRoYXQgd2UgY2FuIG1vZGlmeSB0aGUg dmFyaWFibGUgInNob3VsZF9leGl0IiBpbiB0aGUKLSsgICAgIyBwcm9ncmFtLgotKwotKyAgICBn ZGJfdGVzdCAic2V0IHNob3VsZF9leGl0PTEiICIiICJhZnRlciBhdHRhY2gtMzIsIHNldCBzaG91 bGRfZXhpdCIKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB0aGUgbW9kaWZpY2F0aW9uIHJlYWxseSBo YXBwZW5lZC4KLSsKLSsgICAgc2VuZF9nZGIgInRicmVhayAxOVxuIgotKyAgICBnZGJfZXhwZWN0 IHsKLSsJLXJlICJyZWFrcG9pbnQgLiphdC4qJHNyY2ZpbGUsIGxpbmUgMTkuKiRnZGJfcHJvbXB0 ICQiIHsKLSsJICAgIHBhc3MgImFmdGVyIGF0dGFjaC0zMiwgc2V0IHRicmVhayBwb3N0bG9vcCIK LSsJfQotKwktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLSsJICAgIGZhaWwgImFmdGVyIGF0dGFjaC0z Miwgc2V0IHRicmVhayBwb3N0bG9vcCIKLSsJfQotKwl0aW1lb3V0IHsKLSsJICAgIGZhaWwgIih0 aW1lb3V0KSBhZnRlciBhdHRhY2gtMzIsIHNldCB0YnJlYWsgcG9zdGxvb3AiCi0rCX0KLSsgICAg fQotKyAgICBzZW5kX2dkYiAiY29udGludWVcbiIKLSsgICAgZ2RiX2V4cGVjdCB7Ci0rCS1yZSAi bWFpbi4qYXQuKiRzcmNmaWxlOjE5LiokZ2RiX3Byb21wdCAkIiB7Ci0rCSAgICBwYXNzICJhZnRl ciBhdHRhY2gtMzIsIHJlYWNoIHRicmVhayBwb3N0bG9vcCIKLSsJfQotKwktcmUgIiRnZGJfcHJv bXB0ICQiIHsKLSsJICAgIGZhaWwgImFmdGVyIGF0dGFjaC0zMiwgcmVhY2ggdGJyZWFrIHBvc3Rs b29wIgotKwl9Ci0rCXRpbWVvdXQgewotKwkgICAgZmFpbCAiKHRpbWVvdXQpIGFmdGVyIGF0dGFj aC0zMiwgcmVhY2ggdGJyZWFrIHBvc3Rsb29wIgotKwl9Ci0rICAgIH0KLSsKLSsgICAgIyBBbGxv dyB0aGUgdGVzdCBwcm9jZXNzIHRvIGV4aXQsIHRvIGNsZWFudXAgYWZ0ZXIgb3Vyc2VsdmVzLgot KwotKyAgICBnZGJfdGVzdCAiY29udGludWUiIHtcW0luZmVyaW9yIC4qIGV4aXRlZCBub3JtYWxs eVxdfSAiYWZ0ZXIgYXR0YWNoLTMyLCBleGl0IgotKwotKyAgICAjIE1ha2Ugc3VyZSB3ZSBkb24n dCBsZWF2ZSBhIHByb2Nlc3MgYXJvdW5kIHRvIGNvbmZ1c2UKLSsgICAgIyB0aGUgbmV4dCB0ZXN0 IHJ1biAoYW5kIHByZXZlbnQgdGhlIGNvbXBpbGUgYnkga2VlcGluZwotKyAgICAjIHRoZSB0ZXh0 IGZpbGUgYnVzeSksIGluIGNhc2UgdGhlICJzZXQgc2hvdWxkX2V4aXQiIGRpZG4ndAotKyAgICAj IHdvcmsuCi0rCi0rICAgIHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7dGVzdHBpZH0iCi0r Ci0rICAgICMgU3RhcnQgdGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJp dCwgdG8gYmUgc3VyZQotKyAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotKwotKyAg ICBzZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0rICAgIGV4ZWMgc2xlZXAgMgot KyAgICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLSsJIyB0ZXN0cGlkIGlzIHRo ZSBDeWd3aW4gUElELCBHREIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0r CSMgZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jrcy4KLSsJc2V0IHRlc3Rw aWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7 IH0iIF0KLSsgICAgfQotKwotKyAgICAjIFZlcmlmeSB0aGF0IHdlIGNhbiBhdHRhY2ggdG8gdGhl IHByb2Nlc3MsIGFuZCBmaW5kIGl0cyBhLm91dAotKyAgICAjIHdoZW4gd2UncmUgY2QnZCB0byBz b21lIGRpcmVjdG9yeSB0aGF0IGRvZXNuJ3QgY29udGFpbiB0aGUKLSsgICAgIyBhLm91dC4gIChX ZSB1c2UgdGhlIHNvdXJjZSBwYXRoIHNldCBieSB0aGUgImRpciIgY29tbWFuZC4pCi0rCi0rICAg IGdkYl90ZXN0ICJkaXIgJHtvYmpkaXJ9LyR7c3ViZGlyfSIgIlNvdXJjZSBkaXJlY3RvcmllcyBz ZWFyY2hlZDogLioiIFwKLSsJInNldCBzb3VyY2UgcGF0aCIKLSsKLSsgICAgZ2RiX3Rlc3QgImNk IC90bXAiICJXb3JraW5nIGRpcmVjdG9yeSAvdG1wLiIgXAotKwkiY2QgYXdheSBmcm9tIHByb2Nl c3Mgd29ya2luZyBkaXJlY3RvcnkiCi0rCi0rICAgICMgRXhwbGljaXRseSBmbHVzaCBvdXQgYW55 IGtub3dsZWRnZSBvZiB0aGUgcHJldmlvdXMgYXR0YWNobWVudC4KLSsKLSsgICAgc2V0IHRlc3Qg ImJlZm9yZSBhdHRhY2gtMzItMywgZmx1c2ggc3ltYm9scyIKLSsgICAgZ2RiX3Rlc3RfbXVsdGlw bGUgInN5bWJvbCIgIiR0ZXN0IiB7Ci0rCS1yZSAiRGlzY2FyZCBzeW1ib2wgdGFibGUgZnJvbS4q eSBvciBuLiAkIiB7Ci0rCSAgICBnZGJfdGVzdCAieSIgIk5vIHN5bWJvbCBmaWxlIG5vdy4iIFwK LSsJCSIkdGVzdCIKLSsJfQotKwktcmUgIk5vIHN5bWJvbCBmaWxlIG5vdy4qJGdkYl9wcm9tcHQg JCIgewotKwkgICAgcGFzcyAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICBnZGJfdGVzdCAi ZXhlYyIgIk5vIGV4ZWN1dGFibGUgZmlsZSBub3cuIiBcCi0rCSJiZWZvcmUgYXR0YWNoLTMyLTMs IGZsdXNoIGV4ZWMiCi0rCi0rICAgIGdkYl90ZXN0ICJhdHRhY2ggJHRlc3RwaWQiIFwKLSsJIkF0 dGFjaGluZyB0byBwcm9jZXNzICR0ZXN0cGlkLipSZWFkaW5nIHN5bWJvbHMgZnJvbSAkZXNjYXBl ZGJpbmZpbGUuKm1haW4uKmF0IC4qIiBcCi0rCSJhdHRhY2gtMzIgd2hlbiBwcm9jZXNzJyBhLm91 dCBub3QgaW4gY3dkIgotKwotKyAgICBzZXQgdGVzdCAiYWZ0ZXIgYXR0YWNoLTMyLTMsIGV4aXQi Ci0rICAgIGdkYl90ZXN0X211bHRpcGxlICJraWxsIiAiJHRlc3QiIHsKLSsJLXJlICJLaWxsIHRo ZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLip5IG9yIG4uICQiIHsKLSsJICAgIGdkYl90ZXN0ICJ5 IiAiIiAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICAjIEFub3RoZXIgImRvbid0IGxlYXZl IGEgcHJvY2VzcyBhcm91bmQiCi0rICAgIHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7dGVz dHBpZH0iCi0rfQotKwotK3Byb2MgZG9fY2FsbF9hdHRhY2hfdGVzdHMge30gewotKyAgICBnbG9i YWwgZ2RiX3Byb21wdAotKyAgICBnbG9iYWwgYmluZmlsZTIKLSsgICAgZ2xvYmFsIHRlc3RwaWQK LSsKLSsgICAgIyBTZWUgaWYgb3RoZXIgcmVnaXN0ZXJzIGFyZSBwcm9ibGVtcwotKwotKyAgICBz ZXQgdGVzdCAiaW5mbyBvdGhlciByZWdpc3RlciIKLSsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImkg ciByMyIgIiR0ZXN0IiB7Ci0rCS1yZSAid2FybmluZzogcmVhZGluZyByZWdpc3Rlci4qJGdkYl9w cm9tcHQgJCIgewotKwkgICAgZmFpbCAiJHRlc3QiCi0rCX0KLSsJLXJlICJyMy4qJGdkYl9wcm9t cHQgJCIgewotKwkgICAgcGFzcyAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICAjIEdldCBy aWQgb2YgdGhlIHByb2Nlc3MKLSsKLSsgICAgZ2RiX3Rlc3QgInAgc2hvdWxkX2V4aXQgPSAxIgot KyAgICBnZGJfdGVzdCAiYyIge1xbSW5mZXJpb3IgLiogZXhpdGVkIG5vcm1hbGx5XF19Ci0rCi0r ICAgICMgQmUgcGFyYW5vaWQKLSsKLSsgICAgcmVtb3RlX2V4ZWMgYnVpbGQgImtpbGwgLTkgJHt0 ZXN0cGlkfSIKLSt9Ci0rCi0rCi0rIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiCi0rCi0rZ2RiX2V4 aXQKLStzZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0rZXhlYyBzbGVlcCAzCi0r aWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0rICAgICMgdGVzdHBpZCBpcyB0aGUg Q3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdodCBiZQotKyAg ICAjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0rICAgIHNldCB0 ZXN0cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBpZCkgcHJpbnQg XCQ0OyB9IiBdCi0rfQotKwotK3NldCBHREJGTEFHU19vcmlnICRHREJGTEFHUwotK3NldCBHREJG TEFHUyAiLWlleCBcInNldCBoZWlnaHQgMFwiIC0tcGlkPSR0ZXN0cGlkIgotK2dkYl9zdGFydAot K3NldCBHREJGTEFHUyAkR0RCRkxBR1Nfb3JpZwotKwotK2dkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgotKwotKyMgVGhpcyBpcyBhIHRlc3Qgb2YgZ2RiJ3MgYWJpbGl0eSB0byBh dHRhY2ggdG8gYSBydW5uaW5nIHByb2Nlc3MuCi0rCi0rZG9fYXR0YWNoX3Rlc3RzCi0rCi0rIyBU ZXN0IGF0dGFjaGluZyB3aGVuIHRoZSB0YXJnZXQgaXMgaW5zaWRlIGEgc3lzdGVtIGNhbGwKLSsK LStnZGJfZXhpdAotK3NldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGJpbmZpbGUyICZdCi0rZXhlYyBz bGVlcCAzCi0raWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0rICAgICMgdGVzdHBp ZCBpcyB0aGUgQ3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdo dCBiZQotKyAgICAjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0r ICAgIHNldCB0ZXN0cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBp ZCkgcHJpbnQgXCQ0OyB9IiBdCi0rfQotKwotK3NldCBHREJGTEFHU19vcmlnICRHREJGTEFHUwot K3NldCBHREJGTEFHUyAiLWlleCBcInNldCBoZWlnaHQgMFwiIC0tcGlkPSR0ZXN0cGlkIgotK2dk Yl9zdGFydAotK3NldCBHREJGTEFHUyAkR0RCRkxBR1Nfb3JpZwotKwotK2dkYl9yZWluaXRpYWxp emVfZGlyICRzcmNkaXIvJHN1YmRpcgotK2RvX2NhbGxfYXR0YWNoX3Rlc3RzCi0rCi0rcmV0dXJu IDAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC0zMmIuYyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMyYi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot LS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gtMzJiLmMK LUBAIC0wLDAgKzEsMjQgQEAKLSsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUgc3Rh cnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KLSsgICBhdHRhY2hlZCB0byBieSBnZGIuICBU aHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKLSsgICBpcyBleGl0ZWQg d2hlbiAmIGlmIHRoZSB2YXJpYWJsZSAnc2hvdWxkX2V4aXQnIGlzIG5vbi16ZXJvLiAgKEl0Ci0r ICAgaXMgaW5pdGlhbGl6ZWQgdG8gemVybyBpbiB0aGlzIHByb2dyYW0sIHNvIHRoZSBsb29wIHdp bGwgbmV2ZXIKLSsgICBleGl0IHVubGVzcy91bnRpbCBnZGIgc2V0cyB0aGUgdmFyaWFibGUgdG8g bm9uLXplcm8uKQotKyAgICovCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxp Yi5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQgIHNob3VsZF9leGl0ID0gMDsKLSsK LStpbnQgbWFpbiAoKQotK3sKLSsgIGludCAgbG9jYWxfaSA9IDA7Ci0rCi0rICBzbGVlcCggMTAg KTsgLyogU3lzdGVtIGNhbGwgY2F1c2VzIHJlZ2lzdGVyIGZldGNoIHRvIGZhaWwgKi8KLSsgICAg ICAgICAgICAgICAvKiBUaGlzIGlzIGEga25vd24gSFBVWCAiZmVhdHVyZSIgICAgICAgICAgICAq LwotKyAgd2hpbGUgKCEgc2hvdWxkX2V4aXQpCi0rICAgIHsKLSsgICAgICBsb2NhbF9pKys7Ci0r ICAgIH0KLSsgIHJldHVybiAoMCk7Ci0rfQoKZGlmZiAtLWdpdCBhL2dkYi02LjMtcmgtdGVzdHZl cnNpb24tMjAwNDEyMDIucGF0Y2ggYi9nZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAyLnBh dGNoCmluZGV4IGMxZTczOTUuLjdlZTY4ZTQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtcmgtdGVzdHZl cnNpb24tMjAwNDEyMDIucGF0Y2gKKysrIGIvZ2RiLTYuMy1yaC10ZXN0dmVyc2lvbi0yMDA0MTIw Mi5wYXRjaApAQCAtMjcsNyArMjcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Z2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdAogZGlmZiAt LWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3AuYwogLS0tIGEvZ2RiL3RvcC5jCiArKysgYi9nZGIv dG9wLmMKLUBAIC0yMTYzLDcgKzIxNjMsNyBAQCBpbml0X2dkYl92ZXJzaW9uX3ZhcnMgKHZvaWQp CitAQCAtMjE5NSw3ICsyMTk1LDcgQEAgaW5pdF9nZGJfdmVyc2lvbl92YXJzICh2b2lkKQogICAg c3RydWN0IGludGVybmFsdmFyICptYWpvcl92ZXJzaW9uX3ZhciA9IGNyZWF0ZV9pbnRlcm5hbHZh ciAoIl9nZGJfbWFqb3IiKTsKICAgIHN0cnVjdCBpbnRlcm5hbHZhciAqbWlub3JfdmVyc2lvbl92 YXIgPSBjcmVhdGVfaW50ZXJuYWx2YXIgKCJfZ2RiX21pbm9yIik7CiAgICBpbnQgdm1ham9yID0g MCwgdm1pbm9yID0gMCwgdnJldmlzaW9uID0gMDsKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MTg1 MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoIGIvZ2RiLTYuNS1iejE4 NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5mby12Mi5wYXRjaAppbmRleCA1Y2RmNjVm Li4zMDRhYTM4IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhv dXQtZGVidWdpbmZvLXYyLnBhdGNoCisrKyBiL2dkYi02LjUtYnoxODUzMzctcmVzb2x2ZS10bHMt d2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKQEAgLTQ0LDE3ICs0NCwxNyBAQCBnbGliYy1kZWJ1 Z2luZm8tMi43LTIueDg2XzY0OiAvdXNyL2xpYi9kZWJ1Zy9saWI2NC9saWJjLnNvLjYuZGVidWc6 CiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwogLS0tIGEvZ2Ri L3ByaW50Y21kLmMKICsrKyBiL2dkYi9wcmludGNtZC5jCi1AQCAtMTIxMCw2ICsxMjEwLDEwIEBA IHByaW50X2NvbW1hbmRfMSAoY29uc3QgY2hhciAqYXJncywgaW50IHZvaWRwcmludCkKK0BAIC0x MzA2LDYgKzEzMDYsMTAgQEAgcHJvY2Vzc19wcmludF9jb21tYW5kX2FyZ3MgKGNvbnN0IGNoYXIg KmFyZ3MsIHZhbHVlX3ByaW50X29wdGlvbnMgKnByaW50X29wdHMsCiAgCiAgICBpZiAoZXhwICE9 IG51bGxwdHIgJiYgKmV4cCkKICAgICAgewogKyAgICAgIC8qICcqKChpbnQgKigqKSAodm9pZCkp IF9fZXJybm9fbG9jYXRpb24pICgpJyBpcyBpbmNvbXBhdGlibGUgd2l0aAogKwkgZnVuY3Rpb24g ZGVzY3JpcHRvcnMuICAqLwotKyAgICAgIGlmICh0YXJnZXRfaGFzX2V4ZWN1dGlvbiAmJiBzdHJj bXAgKGV4cCwgImVycm5vIikgPT0gMCkKKysgICAgICBpZiAodGFyZ2V0X2hhc19leGVjdXRpb24g KCkgJiYgc3RyY21wIChleHAsICJlcnJubyIpID09IDApCiArCWV4cCA9ICIqKCooaW50ICooKiko dm9pZCkpIF9fZXJybm9fbG9jYXRpb24pICgpIjsKLSAgICAgICBleHByZXNzaW9uX3VwIGV4cHIg PSBwYXJzZV9leHByZXNzaW9uIChleHApOwotICAgICAgIHZhbCA9IGV2YWx1YXRlX2V4cHJlc3Np b24gKGV4cHIuZ2V0ICgpKTsKLSAgICAgfQorICAgICAgIC8qIFZPSURQUklOVCBpcyB0cnVlIHRv IGluZGljYXRlIHRoYXQgd2UgZG8gd2FudCB0byBwcmludCBhIHZvaWQKKyAJIHZhbHVlLCBzbyBp bnZlcnQgaXQgZm9yIHBhcnNlX2V4cHJlc3Npb24uICAqLworICAgICAgIGV4cHJlc3Npb25fdXAg ZXhwciA9IHBhcnNlX2V4cHJlc3Npb24gKGV4cCwgbnVsbHB0ciwgIXZvaWRwcmludCk7CiBkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogLS0tIC9k ZXYvbnVsbAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRj aCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAppbmRleCA4MTA1NmNjLi4x ZGMzYWM0IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS1zY2wucGF0Y2gK KysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tc2NsLnBhdGNoCkBAIC05OCw3ICs5OCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5jCiBkaWZmIC0t Z2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYyL3JlYWQuYwogLS0tIGEvZ2RiL2R3 YXJmMi9yZWFkLmMKICsrKyBiL2dkYi9kd2FyZjIvcmVhZC5jCi1AQCAtMzAzNCw2ICszMDM0LDE2 IEBAIHJlYWRfZ2RiX2luZGV4X2Zyb21fYnVmZmVyIChjb25zdCBjaGFyICpmaWxlbmFtZSwKK0BA IC0yODAxLDYgKzI4MDEsMTYgQEAgcmVhZF9nZGJfaW5kZXhfZnJvbV9idWZmZXIgKGNvbnN0IGNo YXIgKmZpbGVuYW1lLAogICAgICAgInNldCB1c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyBv biIuICAqLwogICAgaWYgKHZlcnNpb24gPCA2ICYmICFkZXByZWNhdGVkX29rKQogICAgICB7CkBA IC0xMTUsNyArMTE1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVhZC5jIGIvZ2RiL2R3 YXJmMi9yZWFkLmMKICAgICAgICBzdGF0aWMgaW50IHdhcm5pbmdfcHJpbnRlZCA9IDA7CiAgICAg ICAgaWYgKCF3YXJuaW5nX3ByaW50ZWQpCiAgCXsKLUBAIC0zMDQ1LDYgKzMwNTUsMTAgQEAgdG8g dXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKK0BAIC0yODEyLDYgKzI4MjIsMTAgQEAgdG8gdXNl IHRoZSBzZWN0aW9uIGFueXdheS4iKSwKICAJICB3YXJuaW5nX3ByaW50ZWQgPSAxOwogIAl9CiAg ICAgICAgcmV0dXJuIDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0u cGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCBiZjc4M2RhLi40 NjkzZjQzIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysg Yi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtNjk2LDcgKzY5Niw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAx IGlmIHRyYW5zbGF0aW9uIG9mIHByb2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUK ICAgICBsYW5ndWFnZSBpcyByZXF1ZXN0ZWQuICovCiAgI3VuZGVmIEVOQUJMRV9OTFMKLUBAIC0y NDcsNiArMjUwLDkgQEAKK0BAIC0yNDYsNiArMjQ5LDkgQEAKICAvKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIG1wZnIgbGlicmFyeS4gKi8KICAjdW5kZWYgSEFWRV9MSUJNUEZSCiAgCkBAIC03MDks NyArNzA5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWcuaW4gYi9nZGIvY29uZmlnLmluCiBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIC0tLSBhL2dkYi9jb25m aWd1cmUKICsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC03NjksNiArNzY5LDExIEBAIFBLR19DT05G SUcKK0BAIC03NzEsNiArNzcxLDExIEBAIFBLR19DT05GSUcKICBIQVZFX05BVElWRV9HQ09SRV9U QVJHRVQKICBUQVJHRVRfT0JTCiAgc3ViZGlycwpAQCAtNzIxLDcgKzcyMSw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRBRElSCiAgREVCVUdE SVIKICBNQUtFSU5GT19FWFRSQV9GTEFHUwotQEAgLTg3Myw2ICs4NzgsNyBAQCB3aXRoX2dkYl9k YXRhZGlyCitAQCAtODc2LDYgKzg4MSw3IEBAIHdpdGhfZ2RiX2RhdGFkaXIKICB3aXRoX3JlbG9j YXRlZF9zb3VyY2VzCiAgd2l0aF9hdXRvX2xvYWRfZGlyCiAgd2l0aF9hdXRvX2xvYWRfc2FmZV9w YXRoCkBAIC03MjksNyArNzI5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIv Y29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRfYml0X2JmZAogIGVuYWJsZV9n ZGJtaQotQEAgLTk0OSw2ICs5NTUsOCBAQCBQS0dfQ09ORklHX1BBVEgKK0BAIC05NTMsNiArOTU5 LDggQEAgUEtHX0NPTkZJR19QQVRICiAgUEtHX0NPTkZJR19MSUJESVIKICBERUJVR0lORk9EX0NG TEFHUwogIERFQlVHSU5GT0RfTElCUwpAQCAtNzM4LDcgKzczOCw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZRkxBR1MKICBYTUtNRicKLUBA IC0xNjIxLDYgKzE2MjksOCBAQCBPcHRpb25hbCBQYWNrYWdlczoKK0BAIC0xNjI1LDYgKzE2MzMs OCBAQCBPcHRpb25hbCBQYWNrYWdlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIG5v dCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlvbnMKICAgIC0td2l0aC1kZWJ1Z2lu Zm9kICAgICAgIEVuYWJsZSBkZWJ1Z2luZm8gbG9va3VwcyB3aXRoIGRlYnVnaW5mb2QKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhdXRvL3llcy9ubykKQEAgLTc0Nyw3ICs3NDcsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICAgIC0td2l0aC1saWJ1 bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQgZnJhbWUgdW53aW5kaW5nIGZvciBpYTY0IHRhcmdl dHMKICAgIC0td2l0aC1jdXJzZXMgICAgICAgICAgIHVzZSB0aGUgY3Vyc2VzIGxpYnJhcnkgaW5z dGVhZCBvZiB0aGUgdGVybWNhcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyeQot QEAgLTE3MDIsNiArMTcxMiw4IEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFi bGVzOgorQEAgLTE3MDUsNiArMTcxNSw4IEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQg dmFyaWFibGVzOgogICAgICAgICAgICAgICAgQyBjb21waWxlciBmbGFncyBmb3IgREVCVUdJTkZP RCwgb3ZlcnJpZGluZyBwa2ctY29uZmlnCiAgICBERUJVR0lORk9EX0xJQlMKICAgICAgICAgICAg ICAgIGxpbmtlciBmbGFncyBmb3IgREVCVUdJTkZPRCwgb3ZlcnJpZGluZyBwa2ctY29uZmlnCkBA IC03NTYsNyArNzU2LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmln dXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVyIENvbXBpbGVyIENvbXBpbGVyJyBp bXBsZW1lbnRhdGlvbiB0byB1c2UuCiAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byB0aGUgZmly c3QgcHJvZ3JhbSBmb3VuZCBvdXQgb2Y6IGBiaXNvbiAteScsIGBieWFjYycsCiAgICAgICAgICAg ICAgICBgeWFjYycuCi1AQCAtNjY2Niw2ICs2Njc4LDQ5NCBAQCBfQUNFT0YKK0BAIC02NjE2LDYg KzY2MjgsNDk0IEBAIF9BQ0VPRgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjUKICAkYXNfZWNobyAi JHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY2OyB9CiAgCkBAIC0xMjU0LDcgKzEyNTQsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQg YS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3Vy ZS5hYwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwotQEAgLTE0Myw2ICsxNDMsMTk5IEBAIEFDX0RF RklORV9ESVIoQVVUT19MT0FEX1NBRkVfUEFUSCwgZXNjYXBlX2RpciwKK0BAIC0xNTMsNiArMTUz LDE5OSBAQCBBQ19ERUZJTkVfRElSKEFVVE9fTE9BRF9TQUZFX1BBVEgsIGVzY2FwZV9kaXIsCiAg CSAgICAgIFtEaXJlY3RvcmllcyBzYWZlIHRvIGhvbGQgYXV0by1sb2FkZWQgZmlsZXMuXSkKICBB Q19NU0dfUkVTVUxUKFskd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoXSkKICAKQEAgLTE0NTcsNyAr MTQ1Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5h YwogZGlmZiAtLWdpdCBhL2dkYi9ldmVudC10b3AuYyBiL2dkYi9ldmVudC10b3AuYwogLS0tIGEv Z2RiL2V2ZW50LXRvcC5jCiArKysgYi9nZGIvZXZlbnQtdG9wLmMKLUBAIC00Miw2ICs0Miw3IEBA CitAQCAtNDEsNiArNDEsNyBAQAogICNpbmNsdWRlICJnZGJzdXBwb3J0L2dkYl9zZWxlY3QuaCIK ICAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGItc2lnbWFzay5oIgogICNpbmNsdWRlICJhc3luYy1l dmVudC5oIgpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ldmVudC10b3Au YyBiL2dkYi9ldmVudC10b3AuYwogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMuICAqLwog ICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTM2NCw2ICszNjUsOCBAQCBkaXNw bGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIgKm5ld19wcm9tcHQpCitAQCAtMzYzLDYgKzM2NCw4 IEBAIGRpc3BsYXlfZ2RiX3Byb21wdCAoY29uc3QgY2hhciAqbmV3X3Byb21wdCkKICAgIC8qIFJl c2V0IHRoZSBuZXN0aW5nIGRlcHRoIHVzZWQgd2hlbiB0cmFjZS1jb21tYW5kcyBpcyBzZXQuICAq LwogICAgcmVzZXRfY29tbWFuZF9uZXN0X2RlcHRoICgpOwogIApAQCAtMTQ4OSwxMSArMTQ4OSwx MSBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2ZW50LXRvcC5jIGIvZ2RiL2V2ZW50LXRvcC5jCiBkaWZm IC0tZ2l0IGEvZ2RiL3N5bWZpbGUuaCBiL2dkYi9zeW1maWxlLmgKIC0tLSBhL2dkYi9zeW1maWxl LmgKICsrKyBiL2dkYi9zeW1maWxlLmgKLUBAIC01NjAsNiArNTYwLDcgQEAgZXh0ZXJuIHZvaWQg Z2VuZXJpY19sb2FkIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpOworQEAgLTM0Miw2 ICszNDIsNyBAQCBleHRlcm4gdm9pZCBnZW5lcmljX2xvYWQgKGNvbnN0IGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSk7CiAgLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCiAgZXh0ZXJuIHN0cnVjdCBi ZmRfYnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7CiAgZXh0ZXJu IHZvaWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFy ICpkZWJ1Zyk7CiArZXh0ZXJuIHZvaWQgZGVidWdfZmx1c2hfbWlzc2luZyAodm9pZCk7CiAgI2Rl ZmluZSBCVUlMRF9JRF9NQUlOX0VYRUNVVEFCTEVfRklMRU5BTUUgXygidGhlIG1haW4gZXhlY3V0 YWJsZSBmaWxlIikKICAKLSAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLworIC8qIEZyb20gbWluaWRl YnVnLmMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlz c2luZy1pZHMucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRz LnBhdGNoCmluZGV4IGYxZjVlODMuLjdkZDRmYjEgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaApAQCAtMTQsNyArMTQsNyBAQCBodHRwczovL2J1 Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEzMzk4NjIKIGRpZmYgLS1naXQgYS9n ZGIvc29saWItc3ZyNC5jIGIvZ2RiL3NvbGliLXN2cjQuYwogLS0tIGEvZ2RiL3NvbGliLXN2cjQu YwogKysrIGIvZ2RiL3NvbGliLXN2cjQuYwotQEAgLTEzNDAsMTQgKzEzNDAsMjcgQEAgc3ZyNF9y ZWFkX3NvX2xpc3QgKHN2cjRfaW5mbyAqaW5mbywgQ09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJl dl9sbSwKK0BAIC0xMzUwLDE0ICsxMzUwLDI4IEBAIHN2cjRfcmVhZF9zb19saXN0IChzdnI0X2lu Zm8gKmluZm8sIENPUkVfQUREUiBsbSwgQ09SRV9BRERSIHByZXZfbG0sCiAgCX0KICAKICAgICAg ICB7CkBAIC0zOCwxMyArMzgsMTQgQEAgZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0LmMgYi9n ZGIvc29saWItc3ZyNC5jCiArCSAgIG5vdCBkbyBhbnkgYnVpbGQtaWQgY2hlY2tpbmcgb2YgdGhl IGxpYnJhcmllcy4gIFRoZXJlIG1heSBiZSBtaXNzaW5nCiArCSAgIGJ1aWxkLWlkcyBkdW1wZWQg aW4gdGhlIGNvcmUgZmlsZSBhbmQgd2Ugd291bGQgbWFwIGFsbCB0aGUgbGlicmFyaWVzCiArCSAg IHRvIHRoZSBvbmx5IGV4aXN0aW5nIGZpbGUgbG9hZGVkIHRoYXQgdGltZSAtIHRoZSBleGVjdXRh YmxlLiAgKi8KLSsJaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxMCi0rCSAgICAmJiAoc3ltZmls ZV9vYmpmaWxlLT5mbGFncyAmIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQpICE9IDApCisrCWlm IChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUgIT0gTlVMTAorKwkg ICAgJiYgKGN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+c3ltZmlsZV9vYmplY3RfZmlsZS0+ZmxhZ3MK KysJICAgICAgICAgJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQogKwkgIGJ1aWxk X2lkID0gYnVpbGRfaWRfYWRkcl9nZXQgKGxpLT5sX2xkKTsKICAJaWYgKGJ1aWxkX2lkICE9IE5V TEwpCiAgCSAgewogIAkgICAgY2hhciAqbmFtZSwgKmJ1aWxkX2lkX2ZpbGVuYW1lOwotQEAgLTEz NjIsMjMgKzEzNzUsNyBAQCBzdnI0X3JlYWRfc29fbGlzdCAoc3ZyNF9pbmZvICppbmZvLCBDT1JF X0FERFIgbG0sIENPUkVfQUREUiBwcmV2X2xtLAorQEAgLTEzNzIsMjMgKzEzODYsNyBAQCBzdnI0 X3JlYWRfc29fbGlzdCAoc3ZyNF9pbmZvICppbmZvLCBDT1JFX0FERFIgbG0sIENPUkVfQUREUiBw cmV2X2xtLAogIAkJeGZyZWUgKG5hbWUpOwogIAkgICAgICB9CiAgCSAgICBlbHNlCkBAIC02MCw4 ICs2MSw4IEBAIGRpZmYgLS1naXQgYS9nZGIvc29saWItc3ZyNC5jIGIvZ2RiL3NvbGliLXN2cjQu YwogLQkJICAgaW5zdGVhZCkgaWYgdGhlIG9uLWRpc2sgZmlsZXMgbm8gbG9uZ2VyIG1hdGNoIHRo ZQogLQkJICAgcnVubmluZyBwcm9ncmFtIHZlcnNpb24uICAqLwogLQotLQkJaWYgKHN5bWZpbGVf b2JqZmlsZSAhPSBOVUxMCi0tCQkgICAgJiYgKHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MKKy0JCWlm IChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUgIT0gTlVMTAorLQkJ ICAgICYmIChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUtPmZsYWdz CiAtCQkJJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQogLQkJICBuZXdvYmotPnNv X25hbWVbMF0gPSAwOwogLQkgICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5kZXggZjYwNjc5My4u ZTllZTM0MiAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAorKysgYi9n ZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCiBkaWZmIC0tZ2l0IGEvYmZkL2xpYmJmZC1pbi5oIGIv YmZkL2xpYmJmZC1pbi5oCiAtLS0gYS9iZmQvbGliYmZkLWluLmgKICsrKyBiL2JmZC9saWJiZmQt aW4uaAotQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgaW5saW5lIGNoYXIgKgorQEAgLTExNSw3 ICsxMTUsNyBAQCBzdGF0aWMgaW5saW5lIGNoYXIgKgogIGJmZF9zdHJkdXAgKGNvbnN0IGNoYXIg KnN0cikKICB7CiAgICBzaXplX3QgbGVuID0gc3RybGVuIChzdHIpICsgMTsKQEAgLTIxLDcgKzIx LDcgQEAgZGlmZiAtLWdpdCBhL2JmZC9saWJiZmQtaW4uaCBiL2JmZC9saWJiZmQtaW4uaAogZGlm ZiAtLWdpdCBhL2JmZC9saWJiZmQuaCBiL2JmZC9saWJiZmQuaAogLS0tIGEvYmZkL2xpYmJmZC5o CiArKysgYi9iZmQvbGliYmZkLmgKLUBAIC0xMjYsNyArMTI2LDcgQEAgc3RhdGljIGlubGluZSBj aGFyICoKK0BAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIGlubGluZSBjaGFyICoKICBiZmRfc3Ry ZHVwIChjb25zdCBjaGFyICpzdHIpCiAgewogICAgc2l6ZV90IGxlbiA9IHN0cmxlbiAoc3RyKSAr IDE7CkBAIC04OTAsNyArODkwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2Ri L2J1aWxkLWlkLmMKICsgICAgICBjaGFyICpidWlsZF9pZF9maWxlbmFtZV9jc3RyID0gTlVMTDsK ICAgICAgICBnZGJfYmZkX3JlZl9wdHIgYWJmZCAoYnVpbGRfaWRfdG9fZGVidWdfYmZkIChidWls ZF9pZC0+c2l6ZSwKIC0JCQkJCQkgICBidWlsZF9pZC0+ZGF0YSkpOwotKwkJCQkJCSAgICBidWls ZF9pZC0+ZGF0YSwKKysJCQkJCQkgICBidWlsZF9pZC0+ZGF0YSwKICsJICAgICAgKCFidWlsZF9p ZF9maWxlbmFtZV9yZXR1cm4gPyBOVUxMIDogJmJ1aWxkX2lkX2ZpbGVuYW1lX2NzdHIpKSk7CiAr ICAgICAgaWYgKGJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybikKICsJewpAQCAtOTA2LDE1ICs5MDYs MTUgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKICAgICAg ICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCiAgICAg ICAgaWYgKGFiZmQgIT0gTlVMTAogIAkgICYmIGZpbGVuYW1lX2NtcCAoYmZkX2dldF9maWxlbmFt ZSAoYWJmZC5nZXQgKCkpLAotQEAgLTIyMywzICs4OTcsMjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1 Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTIyMywzICs4 OTcsMjIgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlKQogIAogICAgcmV0dXJuIHN0ZDo6c3RyaW5nICgpOwogIH0KICsKLStleHRl cm4gdm9pZCBfaW5pdGlhbGl6ZV9idWlsZF9pZCAodm9pZCk7Cisrdm9pZCBfaW5pdGlhbGl6ZV9i dWlsZF9pZCAoKTsKICsKICt2b2lkCi0rX2luaXRpYWxpemVfYnVpbGRfaWQgKHZvaWQpCisrX2lu aXRpYWxpemVfYnVpbGRfaWQgKCkKICt7CiArICBhZGRfc2V0c2hvd196aW50ZWdlcl9jbWQgKCJi dWlsZC1pZC12ZXJib3NlIiwgbm9fY2xhc3MsICZidWlsZF9pZF92ZXJib3NlLAogKwkJCSAgICBf KCJcCkBAIC05MjYsNyArOTI2LDggQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2Ri L2J1aWxkLWlkLmMKICsJCQkgICAgc2hvd19idWlsZF9pZF92ZXJib3NlLAogKwkJCSAgICAmc2V0 bGlzdCwgJnNob3dsaXN0KTsKICsKLSsgIGdkYjo6b2JzZXJ2ZXJzOjpleGVjdXRhYmxlX2NoYW5n ZWQuYXR0YWNoIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOworKyAgZ2RiOjpvYnNl cnZlcnM6OmV4ZWN1dGFibGVfY2hhbmdlZC5hdHRhY2ggKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVf Y2hhbmdlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi YnVpbGQtaWQiKTsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIvYnVpbGQt aWQuaAogLS0tIGEvZ2RiL2J1aWxkLWlkLmgKQEAgLTk1MCw3ICs5NTEsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIvYnVpbGQtaWQuaAogIGV4dGVybiBnZGJfYmZkX3JlZl9w dHIgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLAogLQkJCQkJICAg ICAgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKTsKICsJCQkJCSAgICAgIGNvbnN0IGJmZF9ieXRl ICpidWlsZF9pZCwKLSsJCQkJCSAgICAgIGNoYXIgKipsaW5rX3JldHVybik7CisrCQkJCQkgICAg ICBjaGFyICoqbGlua19yZXR1cm4gPSBOVUxMKTsKICsKICtleHRlcm4gY2hhciAqYnVpbGRfaWRf dG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkLAogKwkJCQkg ICBjaGFyICoqbGlua19yZXR1cm4pOwpAQCAtOTc4LDkgKzk3OSw5IEBAIGRpZmYgLS1naXQgYS9n ZGIvYnVpbGQtaWQuaCBiL2dkYi9idWlsZC1pZC5oCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvZmZyZWFk LmMgYi9nZGIvY29mZnJlYWQuYwogLS0tIGEvZ2RiL2NvZmZyZWFkLmMKICsrKyBiL2dkYi9jb2Zm cmVhZC5jCi1AQCAtNzA5LDcgKzcwOSw4IEBAIGNvZmZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKK0BAIC03MTAs NyArNzEwLDggQEAgY29mZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBz eW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogICAgLyogVHJ5IHRvIGFkZCBzZXBhcmF0 ZSBkZWJ1ZyBmaWxlIGlmIG5vIHN5bWJvbHMgdGFibGUgZm91bmQuICAgKi8KLSAgIGlmICghb2Jq ZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzIChvYmpmaWxlKSkKKyAgIGlmICghb2JqZmlsZS0+aGFz X3BhcnRpYWxfc3ltYm9scyAoKSkKICAgICAgewogLSAgICAgIHN0ZDo6c3RyaW5nIGRlYnVnZmls ZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlKTsKICsgICAg ICBzdGQ6OnN0cmluZyBkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVp bGRpZCAob2JqZmlsZSwKQEAgLTEwMDIsNyArMTAwMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29y ZWxvdy5jIGIvZ2RiL2NvcmVsb3cuYwogICNpbmNsdWRlICJpbmZlcmlvci5oIgogICNpbmNsdWRl ICJpbmZydW4uaCIKICAjaW5jbHVkZSAic3ltdGFiLmgiCi1AQCAtMzYyLDYgKzM2Niw4IEBAIGFk ZF90b190aHJlYWRfbGlzdCAoYmZkICphYmZkLCBhc2VjdGlvbiAqYXNlY3QsIHZvaWQgKnJlZ19z ZWN0X2FyZykKK0BAIC0zNTYsNiArMzYwLDggQEAgYWRkX3RvX3RocmVhZF9saXN0IChhc2VjdGlv biAqYXNlY3QsIGFzZWN0aW9uICpyZWdfc2VjdCkKICAgICAgc3dpdGNoX3RvX3RocmVhZCAodGhy KTsJCQkvKiBZZXMsIG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApAQCAtMTAxMSw3ICsxMDEy LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb3JlbG93LmMgYi9nZGIvY29yZWxvdy5jCiAgLyogSXNz dWUgYSBtZXNzYWdlIHNheWluZyB3ZSBoYXZlIG5vIGNvcmUgdG8gZGVidWcsIGlmIEZST01fVFRZ LiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTM5OCwxOSArNDA0LDI1IEBAIGNvcmVfZmlsZV9j b21tYW5kIChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQorQEAgLTM5MiwxOSAr Mzk4LDI2IEBAIGNvcmVfZmlsZV9jb21tYW5kIChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZy b21fdHR5KQogIHN0YXRpYyB2b2lkCiAgbG9jYXRlX2V4ZWNfZnJvbV9jb3JlZmlsZV9idWlsZF9p ZCAoYmZkICphYmZkLCBpbnQgZnJvbV90dHkpCiAgewpAQCAtMTAzMSwxNiArMTAzMiwxNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2NvcmVsb3cuYyBiL2dkYi9jb3JlbG93LmMKICAgICAgICBleGVjX2Zp bGVfYXR0YWNoIChiZmRfZ2V0X2ZpbGVuYW1lIChleGVjYmZkLmdldCAoKSksIGZyb21fdHR5KTsK ICAgICAgICBzeW1ib2xfZmlsZV9hZGRfbWFpbiAoYmZkX2dldF9maWxlbmFtZSAoZXhlY2JmZC5n ZXQgKCkpLAogIAkJCSAgICBzeW1maWxlX2FkZF9mbGFnIChmcm9tX3R0eSA/IFNZTUZJTEVfVkVS Qk9TRSA6IDApKTsKLSsgICAgICBpZiAoc3ltZmlsZV9vYmpmaWxlICE9IE5VTEwpCi0rCXN5bWZp bGVfb2JqZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRDsKKysgICAgICBp ZiAoY3VycmVudF9wcm9ncmFtX3NwYWNlLT5zeW1maWxlX29iamVjdF9maWxlICE9IE5VTEwpCisr CWN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+c3ltZmlsZV9vYmplY3RfZmlsZS0+ZmxhZ3MgfD0KKysJ ICBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEOwogICAgICB9CiArICBlbHNlCiArICAgIGRlYnVn X3ByaW50X21pc3NpbmcgKEJVSUxEX0lEX01BSU5fRVhFQ1VUQUJMRV9GSUxFTkFNRSwgYnVpbGRf aWRfZmlsZW5hbWUpOwogIH0KICAKICAvKiBTZWUgZ2RiY29yZS5oLiAgKi8KLUBAIC0xMTg5LDQg KzEyMDEsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAoKQotICAgICAgICAgICAgbWFpbnRlbmFu Y2VfcHJpbnRfY29yZV9maWxlX2JhY2tlZF9tYXBwaW5ncywKK0BAIC0xMjA5LDQgKzEyMjIsMTEg QEAgX2luaXRpYWxpemVfY29yZWxvdyAoKQorIAkgICBtYWludGVuYW5jZV9wcmludF9jb3JlX2Zp bGVfYmFja2VkX21hcHBpbmdzLAogIAkgICBfKCJQcmludCBjb3JlIGZpbGUncyBmaWxlLWJhY2tl ZCBtYXBwaW5ncy4iKSwKICAJICAgJm1haW50ZW5hbmNlcHJpbnRsaXN0KTsKICsKQEAgLTEwNTQs NyArMTA1Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29yZWxvdy5jIGIvZ2RiL2NvcmVsb3cuYwog ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiAt LS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1AQCAt MjEwNzQsNiArMjEwNzQsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCitAQCAtMjE0MTUsNiArMjE0 MTUsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCiAgCiAgQGVuZCB0YWJsZQogIApAQCAtMTEwNywx NiArMTEwOSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyL2luZGV4LWNhY2hlLmMgYi9nZGIv ZHdhcmYyL2luZGV4LWNhY2hlLmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyL3JlYWQuYyBiL2dk Yi9kd2FyZjIvcmVhZC5jCiAtLS0gYS9nZGIvZHdhcmYyL3JlYWQuYwogKysrIGIvZ2RiL2R3YXJm Mi9yZWFkLmMKLUBAIC0yMjI1LDcgKzIyMjUsNyBAQCBkd2FyZjJfZ2V0X2R3el9maWxlIChkd2Fy ZjJfcGVyX2JmZCAqcGVyX2JmZCkKLSAgICAgfQotIAotICAgaWYgKGR3el9iZmQgPT0gTlVMTCkK LS0gICAgZHd6X2JmZCA9IGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxk aWQpOwotKyAgICBkd3pfYmZkID0gYnVpbGRfaWRfdG9fZGVidWdfYmZkIChidWlsZGlkX2xlbiwg YnVpbGRpZCwgTlVMTCk7Ci0gCi0gICBpZiAoZHd6X2JmZCA9PSBudWxscHRyKQotICAgICB7Ci1A QCAtNTk4OSw3ICs1OTg5LDcgQEAgZ2V0X2dkYl9pbmRleF9jb250ZW50c19mcm9tX3NlY3Rpb24g KG9iamZpbGUgKm9iaiwgVCAqc2VjdGlvbl9vd25lcikKK0BAIC01NDQ3LDcgKzU0NDcsNyBAQCBn ZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fc2VjdGlvbiAob2JqZmlsZSAqb2JqLCBUICpzZWN0 aW9uX293bmVyKQogIHN0YXRpYyBnZGI6OmFycmF5X3ZpZXc8Y29uc3QgZ2RiX2J5dGU+CiAgZ2V0 X2dkYl9pbmRleF9jb250ZW50c19mcm9tX2NhY2hlIChvYmpmaWxlICpvYmosIGR3YXJmMl9wZXJf YmZkICpkd2FyZjJfcGVyX2JmZCkKICB7CkBAIC0xMTI1LDcgKzExMTgsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYyL3JlYWQuYwogICAgaWYgKGJ1aWxkX2lk ID09IG51bGxwdHIpCiAgICAgIHJldHVybiB7fTsKICAKLUBAIC02MDAyLDcgKzYwMDIsNyBAQCBn ZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fY2FjaGUgKG9iamZpbGUgKm9iaiwgZHdhcmYyX3Bl cl9iZmQgKmR3YXJmMl9wZXJfYmZkKQorQEAgLTU0NjAsNyArNTQ2MCw3IEBAIGdldF9nZGJfaW5k ZXhfY29udGVudHNfZnJvbV9jYWNoZSAob2JqZmlsZSAqb2JqLCBkd2FyZjJfcGVyX2JmZCAqZHdh cmYyX3Blcl9iZmQpCiAgc3RhdGljIGdkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4KICBn ZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fY2FjaGVfZHd6IChvYmpmaWxlICpvYmosIGR3el9m aWxlICpkd3opCiAgewpAQCAtMTEzNyw3ICsxMTMwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2Fy ZjIvcmVhZC5jIGIvZ2RiL2R3YXJmMi9yZWFkLmMKIGRpZmYgLS1naXQgYS9nZGIvZWxmcmVhZC5j IGIvZ2RiL2VsZnJlYWQuYwogLS0tIGEvZ2RiL2VsZnJlYWQuYwogKysrIGIvZ2RiL2VsZnJlYWQu YwotQEAgLTEyOTgsNyArMTI5OCw5IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQorQEAgLTEyNzIsNyAr MTI3Miw5IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1m aWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9k ZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2Jq ZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7CkBAIC0xMTQ4LDcgKzExNDEsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKICAKICAgICAgICBpZiAoZGVi dWdmaWxlLmVtcHR5ICgpKQogIAlkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVf YnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBAIC0xMzEzLDcgKzEzMTUsNyBAQCBlbGZfc3ltZmls ZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmls ZV9mbGFncykKK0BAIC0xMjg3LDcgKzEyODksNyBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKICAgICAg ICBlbHNlCiAgCXsKICAJICBoYXNfZHdhcmYyID0gZmFsc2U7CkBAIC0xMTU3LDcgKzExNTAsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKICAKICAJICBpZiAo YnVpbGRfaWQgIT0gbnVsbHB0cikKICAJICAgIHsKLUBAIC0xMzM4LDYgKzEzNDAsMTAgQEAgZWxm X3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN5bWZpbGVfYWRkX2ZsYWdz IHN5bWZpbGVfZmxhZ3MpCitAQCAtMTMxMiw2ICsxMzE0LDEwIEBAIGVsZl9zeW1maWxlX3JlYWQg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdz KQogIAkJICAgICAgaGFzX2R3YXJmMiA9IHRydWU7CiAgCQkgICAgfQogIAkJfQpAQCAtMTE3MSwx NiArMTE2NCwxNiBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMK IGRpZmYgLS1naXQgYS9nZGIvZXhlYy5jIGIvZ2RiL2V4ZWMuYwogLS0tIGEvZ2RiL2V4ZWMuYwog KysrIGIvZ2RiL2V4ZWMuYwotQEAgLTI2NCw3ICsyNjQsNyBAQCB2YWxpZGF0ZV9leGVjX2ZpbGUg KGludCBmcm9tX3R0eSkKLSAgIHJlb3Blbl9leGVjX2ZpbGUgKCk7CitAQCAtMjM3LDcgKzIzNyw3 IEBAIHZhbGlkYXRlX2V4ZWNfZmlsZSAoaW50IGZyb21fdHR5KQogICAgY3VycmVudF9leGVjX2Zp bGUgPSBnZXRfZXhlY19maWxlICgwKTsKICAKLS0gIGNvbnN0IGJmZF9idWlsZF9pZCAqZXhlY19m aWxlX2J1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAoZXhlY19iZmQpOwotKyAgY29uc3QgYmZk X2J1aWxkX2lkICpleGVjX2ZpbGVfYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRfc2hkcl9nZXQgKGV4 ZWNfYmZkKTsKKyAgIGNvbnN0IGJmZF9idWlsZF9pZCAqZXhlY19maWxlX2J1aWxkX2lkCistICAg ID0gYnVpbGRfaWRfYmZkX2dldCAoY3VycmVudF9wcm9ncmFtX3NwYWNlLT5leGVjX2JmZCAoKSk7 CisrICAgID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPmV4 ZWNfYmZkICgpKTsKICAgIGlmIChleGVjX2ZpbGVfYnVpbGRfaWQgIT0gbnVsbHB0cikKICAgICAg ewogICAgICAgIC8qIFByZXBlbmQgdGhlIHRhcmdldCBwcmVmaXgsIHRvIGZvcmNlIGdkYl9iZmRf b3BlbiB0byBvcGVuIHRoZQotQEAgLTI3Nyw3ICsyNzcsNyBAQCB2YWxpZGF0ZV9leGVjX2ZpbGUg KGludCBmcm9tX3R0eSkKK0BAIC0yNTAsNyArMjUwLDcgQEAgdmFsaWRhdGVfZXhlY19maWxlIChp bnQgZnJvbV90dHkpCiAgICAgICAgaWYgKGFiZmQgIT0gbnVsbHB0cikKICAJewogIAkgIGNvbnN0 IGJmZF9idWlsZF9pZCAqdGFyZ2V0X2V4ZWNfZmlsZV9idWlsZF9pZApAQCAtMTE5Miw3ICsxMTg1 LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiBkaWZmIC0tZ2l0IGEv Z2RiL29iamZpbGVzLmggYi9nZGIvb2JqZmlsZXMuaAogLS0tIGEvZ2RiL29iamZpbGVzLmgKICsr KyBiL2dkYi9vYmpmaWxlcy5oCi1AQCAtNzE0LDYgKzcxNCwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQor QEAgLTgxMiw2ICs4MTIsMTAgQEAgc3RydWN0IG9iamZpbGUKICAgIGJvb2wgc2tpcF9qaXRfc3lt Ym9sX2xvb2t1cCA9IGZhbHNlOwogIH07CiAgCkBAIC0xMjM1LDcgKzEyMjgsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKICAKICBzdGF0aWMgc3Ry dWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7 CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7Ci1AQCAtMTMz OCw5ICsxMzM5LDUxIEBAIHN2cjRfcmVhZF9zb19saXN0IChzdnI0X2luZm8gKmluZm8sIENPUkVf QUREUiBsbSwgQ09SRV9BRERSIHByZXZfbG0sCitAQCAtMTM0OCw5ICsxMzQ5LDUxIEBAIHN2cjRf cmVhZF9zb19saXN0IChzdnI0X2luZm8gKmluZm8sIENPUkVfQUREUiBsbSwgQ09SRV9BRERSIHBy ZXZfbG0sCiAgCSAgY29udGludWU7CiAgCX0KICAKQEAgLTEyNzcsOCArMTI3MCw4IEBAIGRpZmYg LS1naXQgYS9nZGIvc29saWItc3ZyNC5jIGIvZ2RiL3NvbGliLXN2cjQuYwogKwkJICAgaW5zdGVh ZCkgaWYgdGhlIG9uLWRpc2sgZmlsZXMgbm8gbG9uZ2VyIG1hdGNoIHRoZQogKwkJICAgcnVubmlu ZyBwcm9ncmFtIHZlcnNpb24uICAqLwogKwotKwkJaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxM Ci0rCQkgICAgJiYgKHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MKKysJCWlmIChjdXJyZW50X3Byb2dy YW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUgIT0gTlVMTAorKwkJICAgICYmIChjdXJyZW50 X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUtPmZsYWdzCiArCQkJJiBPQkpGX0JV SUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQogKwkJICBuZXdvYmotPnNvX25hbWVbMF0gPSAwOwog KwkgICAgICB9CkBAIC0xMjkzLDcgKzEyODYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2 cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKIGRpZmYgLS1naXQgYS9nZGIvc291cmNlLmMgYi9nZGIv c291cmNlLmMKIC0tLSBhL2dkYi9zb3VyY2UuYwogKysrIGIvZ2RiL3NvdXJjZS5jCi1AQCAtMTE2 NSw3ICsxMTY1LDcgQEAgb3Blbl9zb3VyY2VfZmlsZSAoc3RydWN0IHN5bXRhYiAqcykKK0BAIC0x MTc4LDcgKzExNzgsNyBAQCBvcGVuX3NvdXJjZV9maWxlIChzdHJ1Y3Qgc3ltdGFiICpzKQogIAkg ICAgICBzcmNwYXRoICs9IHMtPmZpbGVuYW1lOwogIAkgICAgfQogIApAQCAtMTMwNSw5ICsxMjk4 LDkgQEAgZGlmZiAtLWdpdCBhL2dkYi9zb3VyY2UuYyBiL2dkYi9zb3VyY2UuYwogZGlmZiAtLWdp dCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCiAtLS0gYS9nZGIvc3ltZmlsZS5oCiAr KysgYi9nZGIvc3ltZmlsZS5oCi1AQCAtNTUwLDEyICs1NTAsMTggQEAgdm9pZCBleHBhbmRfc3lt dGFic19tYXRjaGluZwotIHZvaWQgbWFwX3N5bWJvbF9maWxlbmFtZXMgKHN5bWJvbF9maWxlbmFt ZV9mdHlwZSAqZnVuLCB2b2lkICpkYXRhLAotIAkJCSAgIGludCBuZWVkX2Z1bGxuYW1lKTsKK0BA IC0zMzIsMTIgKzMzMiwxOCBAQCBib29sIGV4cGFuZF9zeW10YWJzX21hdGNoaW5nCisgdm9pZCBt YXBfc3ltYm9sX2ZpbGVuYW1lcyAoZ2RiOjpmdW5jdGlvbl92aWV3PHN5bWJvbF9maWxlbmFtZV9m dHlwZT4gZnVuLAorIAkJCSAgIGJvb2wgbmVlZF9mdWxsbmFtZSk7CiAgCiArCiAgLyogVGFyZ2V0 LWFnbm9zdGljIGZ1bmN0aW9uIHRvIGxvYWQgdGhlIHNlY3Rpb25zIG9mIGFuIGV4ZWN1dGFibGUg aW50byBtZW1vcnkuCkBAIC0xMzIxLDkgKzEzMTQsOSBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZp bGUuaCBiL2dkYi9zeW1maWxlLmgKICtleHRlcm4gdm9pZCBkZWJ1Z19wcmludF9taXNzaW5nIChj b25zdCBjaGFyICpiaW5hcnksIGNvbnN0IGNoYXIgKmRlYnVnKTsKICsjZGVmaW5lIEJVSUxEX0lE X01BSU5fRVhFQ1VUQUJMRV9GSUxFTkFNRSBfKCJ0aGUgbWFpbiBleGVjdXRhYmxlIGZpbGUiKQog KwotIC8qIEZyb20gZHdhcmYycmVhZC5jICovCisgLyogRnJvbSBtaW5pZGVidWcuYy4gICovCiAg Ci0gLyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxkIE5P Uk1BTCBpcyB0aGUgbm9ybWFsCisgZXh0ZXJuIGdkYl9iZmRfcmVmX3B0ciBmaW5kX3NlcGFyYXRl X2RlYnVnX2ZpbGVfaW5fc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKik7CiBkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2NvcmVmaWxlLmV4cAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5l eHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCkBAIC0xMzY0LDcg KzEzNTcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZ2RiaW5pdC1oaXN0b3J5LmV4cAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJp bml0LWhpc3RvcnkuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dkYmluaXQtaGlz dG9yeS5leHAKLUBAIC0xODEsNyArMTgxLDggQEAgcHJvYyB0ZXN0X2VtcHR5X2hpc3RvcnlfZmls ZW5hbWUgeyB9IHsKK0BAIC0xODUsNyArMTg1LDggQEAgcHJvYyB0ZXN0X2VtcHR5X2hpc3Rvcnlf ZmlsZW5hbWUgeyB9IHsKICAgICAgZ2xvYmFsIGVudgogICAgICBnbG9iYWwgZ2RiX3Byb21wdAog IApAQCAtMTM4OCw3ICsxMzgxLDE3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL25ldy11aS1wZW5kaW5nLWlucHV0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiCiBkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKIC0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKLUBAIC0yMDExLDYgKzIwMTEsMTcgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFy dCB7IH0geworQEAgLTEzMCw3ICsxMzAsOCBAQCBpZiAhW2luZm8gZXhpc3RzIElOVEVSTkFMX0dE QkZMQUdTXSB7CisgCQkgICAiLW54IiBcCisgCQkgICAiLWRhdGEtZGlyZWN0b3J5ICRCVUlMRF9E QVRBX0RJUkVDVE9SWSIgXAorIAkJICAgey1pZXggInNldCBoZWlnaHQgMCJ9IFwKKy0JCSAgIHst aWV4ICJzZXQgd2lkdGggMCJ9XV0KKysJCSAgIHstaWV4ICJzZXQgd2lkdGggMCJ9IFwKKysJCSAg IHstaWV4ICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwIn1dXQorIH0KKyAKKyAjIFRoZSB2YXJpYWJs ZSBnZGJfcHJvbXB0IGlzIGEgcmVnZXhwIHdoaWNoIG1hdGNoZXMgdGhlIGdkYiBwcm9tcHQuCitA QCAtMjEzMCw2ICsyMTMxLDE3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJfQog ICAgICB9CiAgCkBAIC0xNDA5LDcgKzE0MTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKIGRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogKysrIGIv Z2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLUBAIC0zMDgsNiArMzA4LDE2IEBAIHBy b2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0geworQEAgLTMyMiw2ICszMjIsMTYgQEAg cHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB3YXJuaW5nICJDb3Vs ZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KCmRpZmYgLS1naXQgYS9nZGIt Y2NhY2hlLXdvcmthcm91bmQucGF0Y2ggYi9nZGItY2NhY2hlLXdvcmthcm91bmQucGF0Y2gKaW5k ZXggNjBiYzVjYy4uODAyZmEyYiAxMDA2NDQKLS0tIGEvZ2RiLWNjYWNoZS13b3JrYXJvdW5kLnBh dGNoCisrKyBiL2dkYi1jY2FjaGUtd29ya2Fyb3VuZC5wYXRjaApAQCAtOSw4ICs5LDggQEAgU3Vi amVjdDogZ2RiLWNjYWNoZS13b3JrYXJvdW5kLnBhdGNoCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9tYWNzY3AuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9tYWNzY3Au ZXhwCiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL21hY3NjcC5leHAKICsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvbWFjc2NwLmV4cAotQEAgLTI1LDYgKzI1LDE0IEBAIGlmIHsgW3Rl c3RfY29tcGlsZXJfaW5mbyAiZ2NjLSoiXSB8fCBbdGVzdF9jb21waWxlcl9pbmZvICJjbGFuZy0q Il0gfSB7Ci0gICAgIGxhcHBlbmQgb3B0aW9ucyBhZGRpdGlvbmFsX2ZsYWdzPS1nMworQEAgLTI3 LDYgKzI3LDE0IEBAIGlmIHsgW3Rlc3RfY29tcGlsZXJfaW5mbyAiZ2NjLSoiXSB9IHsKKyAgICAg bGFwcGVuZCBvcHRpb25zIGFkZGl0aW9uYWxfZmxhZ3M9LWZkZWJ1Zy1tYWNybwogIH0KICAKICsj IFdvcmthcm91bmQgY2NhY2hlIG1ha2luZyBsaW5lbm8gbm9uLXplcm8gZm9yIGNvbW1hbmQtbGlu ZSBkZWZpbml0aW9ucy4KCmRpZmYgLS1naXQgYS9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaCBi L2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCmluZGV4IDA0YTdmM2MuLjA5OTY0OTUgMTAwNjQ0 Ci0tLSBhL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCisrKyBiL2dkYi1jb250YWluZXItcmgt cGtnLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItY29udGFpbmVyLXJoLXBrZy5w YXRjaAogZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwogLS0tIGEvZ2Ri L3JlbW90ZS5jCiArKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xNDAzMSw3ICsxNDAzMSwxNyBAQCBy ZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChpbnQgcGlkKQorQEAgLTE0MjkwLDcgKzE0 MjkwLDE3IEBAIHJlbW90ZV90YXJnZXQ6OnBpZF90b19leGVjX2ZpbGUgKGludCBwaWQpCiAgICBj aGFyICphbm5leCA9IE5VTEw7CiAgCiAgICBpZiAocGFja2V0X3N1cHBvcnQgKFBBQ0tFVF9xWGZl cl9leGVjX2ZpbGUpICE9IFBBQ0tFVF9FTkFCTEUpCgpkaWZmIC0tZ2l0IGEvZ2RiLWRvbnQtb3Zl cndyaXRlLWZzZ3NiYXNlLW0zMi5wYXRjaCBiL2dkYi1kb250LW92ZXJ3cml0ZS1mc2dzYmFzZS1t MzIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlOWFkNDkuLjAwMDAwMDAK LS0tIGEvZ2RiLWRvbnQtb3ZlcndyaXRlLWZzZ3NiYXNlLW0zMi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDEzOSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogVG9tIGRlIFZyaWVzIDx0ZGV2cmllc0BzdXNlLmRlPgotRGF0ZTogVHVl LCAxIEp1biAyMDIxIDEwOjE0OjMxIC0wNzAwCi1TdWJqZWN0OiBnZGItZG9udC1vdmVyd3JpdGUt ZnNnc2Jhc2UtbTMyLnBhdGNoCi0KLTs7IEJhY2twb3J0ICJbZ2RiL3NlcnZlcl0gRG9uJ3Qgb3Zl cndyaXRlIGZzL2dzX2Jhc2Ugd2l0aCAtbTMyIgotOzsgKFRvbSBkZSBWcmllcykKLQotQ29uc2lk ZXIgYSBtaW5pbWFsIHRlc3QtY2FzZSB0ZXN0LmM6Ci0uLi4KLWludCBtYWluICh2b2lkKSB7IHJl dHVybiAwOyB9Ci0uLi4KLWNvbXBpbGVkIHdpdGggLW0zMjoKLS4uLgotJCBnY2MgdGVzdC5jIC1t MzIKLS4uLgotCi1XaGVuIHJ1bm5pbmcgdGhlIGV4ZWMgdXNpbmcgZ2Ric2VydmVyIG9uIG9wZW5T VVNFIEZhY3RvcnkgKGN1cnJlbnRseSBydW5uaW5nIGEKLWxpbnV4IGtlcm5lbCB2ZXJzaW9uIDUu MTAuNSk6Ci0uLi4KLSQgZ2Ric2VydmVyIGxvY2FsaG9zdDoxMjM0NSBhLm91dAotLi4uCi10byB3 aGljaCB3ZSBjb25uZWN0IGluIGEgZ2RiIHNlc3Npb24sIHdlIHJ1biBpbnRvIGEgc2VnZmF1bHQg aW4gdGhlIGluZmVyaW9yOgotLi4uCi0kIGdkYiAtYmF0Y2ggLXEgLWV4ICJ0YXJnZXQgcmVtb3Rl IGxvY2FsaG9zdDoxMjM0NSIgLWV4IGNvbnRpbnVlCi1Qcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBT SUdTRUdWLCBTZWdtZW50YXRpb24gZmF1bHQuCi0weGY3ZGQ4YmQyIGluIGluaXRfY2FjaGVpbmZv ICgpIGF0IC4uL3N5c2RlcHMveDg2L2NhY2hlaW5mby5jOjc2MQotLi4uCi0KLVRoZSBzZWdmYXVs dCBpcyBjYXVzZWQgYnkgZ2Ric2VydmVyIG92ZXJ3cml0aW5nICRnc19iYXNlIHdpdGggMCB1c2lu ZwotUFRSQUNFX1NFVFJFR1MuICBBZnRlciBpdCBpcyBvdmVyd3JpdHRlbiwgdGhlIG5leHQgdXNl IG9mICRncyBpbiB0aGUgaW5mZXJpb3IKLXdpbGwgdHJpZ2dlciB0aGUgc2VnZmF1bHQuCi0KLUJl Zm9yZSBsaW51eCBrZXJuZWwgdmVyc2lvbiA1LjksIHRoZSB2YWx1ZSB1c2VkIGJ5IFBUUkFDRV9T RVRSRUdTIGZvciAkZ3NfYmFzZQotd2FzIGlnbm9yZWQsIGJ1dCBzdGFydGluZyB2ZXJzaW9uIDUu OSwgdGhlIGxpbnV4IGtlcm5lbCBoYXMgc3VwcG9ydCBmb3IKLWludGVsIGFyY2hpdGVjdHVyZSBl eHRlbnNpb24gRlNHU0JBU0UsIHdoaWNoIGFsbG93cyB1c2VycyB0byBtb2RpZnkgJGdzX2Jhc2Us Ci1hbmQgY29uc2VxdWVudGx5IFBUUkFDRV9TRVRSRUdTIGNhbiBubyBsb25nZXIgaWdub3JlIHRo ZSAkZ3NfYmFzZSB2YWx1ZS4KLQotVGhlIG92ZXJ3cml0ZSBvZiAkZ3NfYmFzZSB3aXRoIDAgaXMg ZG9uZSBieSBhIG1lbXNldCBpbiB4ODZfZmlsbF9ncmVnc2V0LAotd2hpY2ggd2FzIGFkZGVkIGlu IGNvbW1pdCA5ZTBhYTY0ZjU1MSAiRml4IGdkYnNlcnZlciBxR2V0VExTQWRkciBmb3IKLXg4Nl82 NCAtbTMyIi4gIFRoZSBtZW1zZXQgaW50ZW5kcyB0byB6ZXJvLWV4dGVuZCAzMi1iaXQgcmVnaXN0 ZXJzIHRoYXQgYXJlCi10cmFja2VkIGluIHRoZSByZWdjYWNoZSB0byA2NC1iaXQgd2hlbiB3cml0 aW5nIHRoZW0gaW50byB0aGUgUFRSQUNFX1NFVFJFR1MKLWRhdGEgYXJndW1lbnQuICBCdXQgaW4g YWRkaXRpb24sIGl0IG92ZXJ3cml0ZXMgb3RoZXIgcmVnaXN0ZXJzIHRoYXQgYXJlCi1ub3QgdHJh Y2tlZCBpbiB0aGUgcmVnY2FjaGUsIHN1Y2ggYXMgJGdzX2Jhc2UuCi0KLUZpeCB0aGUgc2VnZmF1 bHQgYnkgcmVkb2luZyB0aGUgZml4IGZyb20gY29tbWl0IDllMGFhNjRmNTUxIGluIG1pbmltYWwg Zm9ybS4KLQotVGVzdGVkIG9uIHg4Nl82NC1saW51eDoKLS0gb3BlblNVU0UgTGVhcCAxNS4yICh1 c2luZyBrZXJuZWwgdmVyc2lvbiA1LjMuMTgpOgotICAtIG5hdGl2ZQotICAtIGdkYnNlcnZlciAt bTMyCi0gIC0gLW0zMgotLSBvcGVuU1VTRSBGYWN0b3J5ICh1c2luZyBrZXJuZWwgdmVyc2lvbiA1 LjEwLjUpOgotICAtIG5hdGl2ZQotICAtIG0zMgotCi1nZGJzZXJ2ZXIvQ2hhbmdlTG9nOgotCi0y MDIxLTAxLTIwICBUb20gZGUgVnJpZXMgIDx0ZGV2cmllc0BzdXNlLmRlPgotCi0JKiBsaW51eC14 ODYtbG93LmNjIChjb2xsZWN0X3JlZ2lzdGVyX2kzODYpOiBOZXcgZnVuY3Rpb24uCi0JKHg4Nl9m aWxsX2dyZWdzZXQpOiAgUmVtb3ZlIG1lbXNldC4gIFVzZSBjb2xsZWN0X3JlZ2lzdGVyX2kzODYu Ci0KLWRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYyBiL2dkYnNlcnZlci9s aW51eC14ODYtbG93LmNjCi0tLS0gYS9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYwotKysrIGIv Z2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MKLUBAIC0zOTcsNiArMzk3LDM1IEBAIHg4Nl90YXJn ZXQ6Omxvd19jYW5ub3RfZmV0Y2hfcmVnaXN0ZXIgKGludCByZWdubykKLSAgIHJldHVybiByZWdu byA+PSBJMzg2X05VTV9SRUdTOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2NvbGxlY3RfcmVnaXN0 ZXJfaTM4NiAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25vLCB2b2lkICpidWYp Ci0rewotKyAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIHJlZ25vLCBidWYpOwotKwotKyNp ZmRlZiBfX3g4Nl82NF9fCi0rICAvKiBJbiBjYXNlIG9mIHg4Nl82NCAtbTMyLCBjb2xsZWN0X3Jl Z2lzdGVyIG9ubHkgd3JpdGVzIDQgYnl0ZXMsIGJ1dCB0aGUKLSsgICAgIHNwYWNlIHJlc2VydmVk IGluIGJ1ZiBmb3IgdGhlIHJlZ2lzdGVyIGlzIDggYnl0ZXMuICBNYWtlIHN1cmUgdGhlIGVudGly ZQotKyAgICAgcmVzZXJ2ZWQgc3BhY2UgaXMgaW5pdGlhbGl6ZWQuICAqLwotKwotKyAgZ2RiX2Fz c2VydCAocmVnaXN0ZXJfc2l6ZSAocmVnY2FjaGUtPnRkZXNjLCByZWdubykgPT0gNCk7Ci0rCi0r ICBpZiAocmVnbm8gPT0gUkFYKQotKyAgICB7Ci0rICAgICAgLyogU2lnbiBleHRlbmQgRUFYIHZh bHVlIHRvIGF2b2lkIHBvdGVudGlhbCBzeXNjYWxsIHJlc3RhcnQKLSsJIHByb2JsZW1zLgotKwot KwkgU2VlIGFtZDY0X2xpbnV4X2NvbGxlY3RfbmF0aXZlX2dyZWdzZXQoKSBpbgotKwkgZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jIGZvciBhIGRldGFpbGVkIGV4cGxhbmF0aW9uLiAgKi8KLSsgICAgICAq KGludDY0X3QgKikgYnVmID0gKihpbnQzMl90ICopIGJ1ZjsKLSsgICAgfQotKyAgZWxzZQotKyAg ICB7Ci0rICAgICAgLyogWmVyby1leHRlbmQuICAqLwotKyAgICAgICoodWludDY0X3QgKikgYnVm ID0gKih1aW50MzJfdCAqKSBidWY7Ci0rICAgIH0KLSsjZW5kaWYKLSt9Ci0rCi0gc3RhdGljIHZv aWQKLSB4ODZfZmlsbF9ncmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCB2b2lkICpi dWYpCi0gewotQEAgLTQxMSwzMiArNDQwLDE0IEBAIHg4Nl9maWxsX2dyZWdzZXQgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIHZvaWQgKmJ1ZikKLSAKLSAgICAgICByZXR1cm47Ci0gICAgIH0K LS0KLS0gIC8qIDMyLWJpdCBpbmZlcmlvciByZWdpc3RlcnMgbmVlZCB0byBiZSB6ZXJvLWV4dGVu ZGVkLgotLSAgICAgQ2FsbGVycyB3b3VsZCByZWFkIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG90aGVy d2lzZS4gICovCi0tICBtZW1zZXQgKGJ1ZiwgMHgwMCwgWDg2XzY0X1VTRVJfUkVHUyAqIDgpOwot ICNlbmRpZgotIAotICAgZm9yIChpID0gMDsgaSA8IEkzODZfTlVNX1JFR1M7IGkrKykKLS0gICAg Y29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIGksICgoY2hhciAqKSBidWYpICsgaTM4Nl9yZWdt YXBbaV0pOwotLQotLSAgY29sbGVjdF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgIm9yaWdf ZWF4IiwKLS0JCQkgICAgKChjaGFyICopIGJ1ZikgKyBPUklHX0VBWCAqIFJFR1NJWkUpOwotKyAg ICBjb2xsZWN0X3JlZ2lzdGVyX2kzODYgKHJlZ2NhY2hlLCBpLCAoKGNoYXIgKikgYnVmKSArIGkz ODZfcmVnbWFwW2ldKTsKLSAKLS0jaWZkZWYgX194ODZfNjRfXwotLSAgLyogU2lnbiBleHRlbmQg RUFYIHZhbHVlIHRvIGF2b2lkIHBvdGVudGlhbCBzeXNjYWxsIHJlc3RhcnQKLS0gICAgIHByb2Js ZW1zLiAKLS0KLS0gICAgIFNlZSBhbWQ2NF9saW51eF9jb2xsZWN0X25hdGl2ZV9ncmVnc2V0KCkg aW4gZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCi0tICAgICBmb3IgYSBkZXRhaWxlZCBleHBsYW5hdGlv bi4gICovCi0tICBpZiAocmVnaXN0ZXJfc2l6ZSAocmVnY2FjaGUtPnRkZXNjLCAwKSA9PSA0KQot LSAgICB7Ci0tICAgICAgdm9pZCAqcHRyID0gKChnZGJfYnl0ZSAqKSBidWYKLS0gICAgICAgICAg ICAgICAgICAgKyBpMzg2X3JlZ21hcFtmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJlYXgi KV0pOwotLQotLSAgICAgICooaW50NjRfdCAqKSBwdHIgPSAqKGludDMyX3QgKikgcHRyOwotLSAg ICB9Ci0tI2VuZGlmCi0rICAvKiBIYW5kbGUgT1JJR19FQVgsIHdoaWNoIGlzIG5vdCBpbiBpMzg2 X3JlZ21hcC4gICovCi0rICBjb2xsZWN0X3JlZ2lzdGVyX2kzODYgKHJlZ2NhY2hlLCBmaW5kX3Jl Z25vIChyZWdjYWNoZS0+dGRlc2MsICJvcmlnX2VheCIpLAotKwkJCSAoKGNoYXIgKikgYnVmKSAr IE9SSUdfRUFYICogUkVHU0laRSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCgpkaWZmIC0tZ2l0IGEv Z2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaCBiL2dkYi1mZWRvcmEtbGlibmN1cnNlc3cucGF0 Y2gKaW5kZXggN2M2MjBmYi4uMTA3MTBiOSAxMDA2NDQKLS0tIGEvZ2RiLWZlZG9yYS1saWJuY3Vy c2Vzdy5wYXRjaAorKysgYi9nZGItZmVkb3JhLWxpYm5jdXJzZXN3LnBhdGNoCkBAIC0xMiw3ICsx Miw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDUz NAogZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAtLS0gYS9nZGIv Y29uZmlndXJlCiArKysgYi9nZGIvY29uZmlndXJlCi1AQCAtOTY0OSw2ICs5NjQ5LDcgQEAgaWYg dGVzdCB4IiRwcmVmZXJfY3Vyc2VzIiA9IHh5ZXM7IHRoZW4KK0BAIC05NTQ0LDYgKzk1NDQsNyBA QCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vz ci9sb2NhbC9pbmNsdWRlLCBpZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAg QQogICAgIyBkZWZhdWx0IGluc3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3Nm KiB3aWxsIGxlYWQgdG8gc3VjaAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTIwLDcgKzIwLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRh aW5pbmcgd2FkZHN0ciIgPiY1CiAgJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29u dGFpbmluZyB3YWRkc3RyLi4uICIgPiY2OyB9CiAgaWYgJHthY19jdl9zZWFyY2hfd2FkZHN0cis6 fSBmYWxzZTsgdGhlbiA6Ci1AQCAtOTY3Myw3ICs5Njc0LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7 CitAQCAtOTU2OCw3ICs5NTY5LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7CiAgICByZXR1cm4gMDsK ICB9CiAgX0FDRU9GCkBAIC0yOSw3ICsyOSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJl IGIvZ2RiL2NvbmZpZ3VyZQogICAgaWYgdGVzdCAteiAiJGFjX2xpYiI7IHRoZW4KICAgICAgYWNf cmVzPSJub25lIHJlcXVpcmVkIgogICAgZWxzZQotQEAgLTk3NDcsNiArOTc0OCw3IEBAIGNhc2Ug JGhvc3Rfb3MgaW4KK0BAIC05NjQyLDYgKzk2NDMsNyBAQCBjYXNlICRob3N0X29zIGluCiAgZXNh YwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBSZWFkbGluZS4KQEAg LTM3LDcgKzM3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJl CiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig bGlicmFyeSBjb250YWluaW5nIHRnZXRlbnQiID4mNQogICRhc19lY2hvX24gImNoZWNraW5nIGZv ciBsaWJyYXJ5IGNvbnRhaW5pbmcgdGdldGVudC4uLiAiID4mNjsgfQogIGlmICR7YWNfY3Zfc2Vh cmNoX3RnZXRlbnQrOn0gZmFsc2U7IHRoZW4gOgotQEAgLTk3NzEsNyArOTc3Myw3IEBAIHJldHVy biB0Z2V0ZW50ICgpOworQEAgLTk2NjYsNyArOTY2OCw3IEBAIHJldHVybiB0Z2V0ZW50ICgpOwog ICAgcmV0dXJuIDA7CiAgfQogIF9BQ0VPRgpAQCAtNDksNyArNDksNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJl LmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwogKysrIGIvZ2Ri L2NvbmZpZ3VyZS5hYwotQEAgLTcxMiw3ICs3MTIsOCBAQCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJz ZXMiID0geHllczsgdGhlbgorQEAgLTczNiw3ICs3MzYsOCBAQCBpZiB0ZXN0IHgiJHByZWZlcl9j dXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vzci9sb2NhbC9pbmNsdWRlLCBpZiBu Y3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAgQQogICAgIyBkZWZhdWx0IGluc3Rh bGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3NmKiB3aWxsIGxlYWQgdG8gc3VjaAog ICAgIyBhIHNpdHVhdGlvbi4KQEAgLTU5LDcgKzU5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25m aWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCiAgCiAgICBpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNo X3dhZGRzdHIiICE9IG5vOyB0aGVuCiAgICAgIGN1cnNlc19mb3VuZD15ZXMKLUBAIC03NTQsNyAr NzU1LDggQEAgY2FzZSAkaG9zdF9vcyBpbgorQEAgLTc3OCw3ICs3NzksOCBAQCBjYXNlICRob3N0 X29zIGluCiAgZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBS ZWFkbGluZS4KCmRpZmYgLS1naXQgYS9nZGItZ2RiMjc3NDMtcHN5bXRhYi1pbXBvcnRlZC11bml0 LnBhdGNoIGIvZ2RiLWdkYjI3NzQzLXBzeW10YWItaW1wb3J0ZWQtdW5pdC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEyOWI2ZC4uMDAwMDAwMAotLS0gYS9nZGItZ2RiMjc3 NDMtcHN5bXRhYi1pbXBvcnRlZC11bml0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjgxICsw LDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBUb20gVHJvbWV5IDx0cm9tZXlAYWRhY29yZS5jb20+Ci1EYXRlOiBGcmksIDIzIEFwciAyMDIx IDExOjI4OjQ4IC0wNjAwCi1TdWJqZWN0OiBnZGItZ2RiMjc3NDMtcHN5bXRhYi1pbXBvcnRlZC11 bml0LnBhdGNoCi0KLTs7IEJhY2twb3J0ICJGaXggY3Jhc2ggd2hlbiBleHBhbmRpbmcgcGFydGlh bCBzeW10YWJzIHdpdGggRFdfVEFHX2ltcG9ydGVkX3VuaXQiCi07OyAoVG9tIFRyb21leSwgZ2Ri LzI3NzQzKQotCi0gICBGcm9tIGU3ZDc3Y2UwYzQwOGU3MDE5Zjk4ODViOGJlNjRjOWNkYjQ2ZGQz MTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi0gICBTdWJqZWN0OiBbUEFUQ0hdIEZpeCBjcmFz aCB3aGVuIGV4cGFuZGluZyBwYXJ0aWFsIHN5bXRhYnMgd2l0aAotIERXX1RBR19pbXBvcnRlZF91 bml0Ci0KLVBSIGdkYi8yNzc0MyBwb2ludHMgb3V0IGEgZ2RiIGNyYXNoIHdoZW4gZXhwYW5kaW5n IHBhcnRpYWwgc3ltdGFicywKLXdoZXJlIG9uZSBvZiB0aGUgY29tcGlsYXRpb24gdW5pdHMgdXNl cyBEV19UQUdfaW1wb3J0ZWRfdW5pdC4KLQotVGhlIGJ1ZyBpcyB0aGF0IHBhcnRpYWxfbWFwX2V4 cGFuZF9hcHBseSBleHBlY3RzIG9ubHkgdG8gYmUgY2FsbGVkIGZvcgotdGhlIG91dGVybW9zdCBw c3ltdGFiLiAgSG93ZXZlciwgZmlsZW5hbWUgc2VhcmNoaW5nIGRvZXNuJ3QgKGFuZAotcHJvYmFi bHkgc2hvdWxkbid0KSBndWFyYW50ZWUgdGhpcy4gIFRoZSBmaXggaXMgdG8gd2FsayB1cHdhcmQg dG8gZmluZAotdGhlIG91dGVybW9zdCBDVS4KLQotQSBuZXcgdGVzdCBjYXNlIGlzIGluY2x1ZGVk LiAgSXQgaXMgbW9zdGx5IGNvcGllZCBmcm9tIG90aGVyIHRlc3QKLWNhc2VzLCB3aGljaCByZWFs bHkgc3BlZCB1cCB0aGUgZWZmb3J0LgotCi1UaGlzIGJ1ZyBkb2VzIG5vdCBvY2N1ciBvbiB0cnVu ay4gIFRoZXJlLAotcHN5bV9tYXBfc3ltdGFic19tYXRjaGluZ19maWxlbmFtZSBpcyBnb25lLCBy ZXBsYWNlZCBieQotcHN5bWJvbF9mdW5jdGlvbnM6OmV4cGFuZF9zeW10YWJzX21hdGNoaW5nLiAg V2hlbiB0aGlzIGZpbmQgYSBtYXRjaCwKLWl0IGNhbGxzIHBzeW10YWJfdG9fc3ltdGFiLCB3aGlj aCBkb2VzIHRoaXMgc2FtZSB1cHdhcmQgd2Fsay4KLQotVGVzdGVkIG9uIHg4Ni02NCBGZWRvcmEg MzIuCi0KLUkgcHJvcG9zZSBjaGVja2luZyBpbiB0aGlzIHBhdGNoIG9uIHRoZSBnZGItMTAgYnJh bmNoLCBhbmQganVzdCB0aGUKLW5ldyB0ZXN0IGNhc2Ugb24gdHJ1bmsuCi0KLWdkYi9DaGFuZ2VM b2cKLTIwMjEtMDQtMjMgIFRvbSBUcm9tZXkgIDx0cm9tZXlAYWRhY29yZS5jb20+Ci0KLQlQUiBn ZGIvMjc3NDM6Ci0JKiBwc3ltdGFiLmMgKHBhcnRpYWxfbWFwX2V4cGFuZF9hcHBseSk6IEV4cGFu ZCBvdXRlcm1vc3QgcHN5bXRhYi4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLTIwMjEtMDQt MjMgIFRvbSBUcm9tZXkgIDx0cm9tZXlAYWRhY29yZS5jb20+Ci0KLQlQUiBnZGIvMjc3NDM6Ci0J KiBnZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwOiBOZXcgZmlsZS4KLQkqIGdkYi5kd2Fy ZjIvaW1wb3J0ZWQtdW5pdC1icC1tYWluLmM6IE5ldyBmaWxlLgotCSogZ2RiLmR3YXJmMi9pbXBv cnRlZC11bml0LWJwLWFsdC5jOiBOZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9wc3ltdGFi LmMgYi9nZGIvcHN5bXRhYi5jCi0tLS0gYS9nZGIvcHN5bXRhYi5jCi0rKysgYi9nZGIvcHN5bXRh Yi5jCi1AQCAtMTI3LDkgKzEyNywxMCBAQCBwYXJ0aWFsX21hcF9leHBhbmRfYXBwbHkgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAotIHsKLSAgIHN0cnVjdCBjb21wdW5pdF9zeW10YWIgKmxhc3Rf bWFkZSA9IG9iamZpbGUtPmNvbXB1bml0X3N5bXRhYnM7Ci0gCi0tICAvKiBTaGFyZWQgcHN5bXRh YnMgc2hvdWxkIG5ldmVyIGJlIHNlZW4gaGVyZS4gIEluc3RlYWQgdGhleSBzaG91bGQKLS0gICAg IGJlIGhhbmRsZWQgcHJvcGVybHkgYnkgdGhlIGNhbGxlci4gICovCi0tICBnZGJfYXNzZXJ0IChw c3QtPnVzZXIgPT0gTlVMTCk7Ci0rICAvKiBXZSBtYXkgc2VlIGEgc2hhcmVkIHBzeW10YWIgaGVy ZSwgYnV0IHdlIHdhbnQgdG8gZXhwYW5kIHRoZQotKyAgICAgb3V0ZXJtb3N0IHN5bXRhYi4gICov Ci0rICB3aGlsZSAocHN0LT51c2VyICE9IG51bGxwdHIpCi0rICAgIHBzdCA9IHBzdC0+dXNlcjsK LSAKLSAgIC8qIERvbid0IHZpc2l0IGFscmVhZHktZXhwYW5kZWQgcHN5bXRhYnMuICAqLwotICAg aWYgKHBzdC0+cmVhZGluX3AgKG9iamZpbGUpKQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLWFsdC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2ltcG9ydGVkLXVuaXQtYnAtYWx0LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rl di9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvaW1wb3J0ZWQtdW5pdC1icC1h bHQuYwotQEAgLTAsMCArMSw1MCBAQAotKy8qIENvcHlyaWdodCAyMDIwLTIwMjEgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwotKwotKy8qIFVzZWQgdG8gaW5zZXJ0IGxhYmVscyB3aXRoIHdoaWNoIHdlIGNh biBidWlsZCBhIGZha2UgbGluZSB0YWJsZS4gICovCi0rI2RlZmluZSBMTChOKSBhc20gKCJsaW5l X2xhYmVsXyIgI04gIjogLmdsb2JsIGxpbmVfbGFiZWxfIiAjTikKLSsKLSt2b2xhdGlsZSBpbnQg dmFyOwotK3ZvbGF0aWxlIGludCBiYXI7Ci0rCi0rLyogR2VuZXJhdGUgc29tZSBjb2RlIHRvIHRh a2UgdXAgc29tZSBzcGFjZS4gICovCi0rI2RlZmluZSBGSUxMRVIgZG8geyBcCi0rICAgIHZhciA9 IDk5OwkgICAgXAotK30gd2hpbGUgKDApCi0rCi0raW50Ci0rZnVuYyAodm9pZCkKLSt7CQkJCQkv KiBmdW5jIHByb2xvZ3VlICovCi0rICBhc20gKCJmdW5jX2xhYmVsOiAuZ2xvYmwgZnVuY19sYWJl bCIpOwotKyAgTEwgKDEpOwkvLyBGMSwgTG4gMTYKLSsgIEZJTExFUjsKLSsgIExMICgyKTsJLy8g RjEsIExuIDE3Ci0rICBGSUxMRVI7Ci0rICBMTCAoMyk7CS8vIEYyLCBMbiAyMQotKyAgRklMTEVS OwotKyAgTEwgKDQpOwkvLyBGMiwgTG4gMjIgLy8gRjEsIExuIDE4LCAhUwotKyAgRklMTEVSOwot KyAgTEwgKDUpOwkvLyBGMSwgTG4gMTkgIVMKLSsgIEZJTExFUjsKLSsgIExMICg2KTsJLy8gRjEs IExuIDIwCi0rICBGSUxMRVI7Ci0rICBMTCAoNyk7Ci0rICBGSUxMRVI7Ci0rICByZXR1cm4gMDsJ CQkJLyogZnVuYyBlbmQgKi8KLSt9Ci0rCi0rI2lmZGVmIFdJVEhNQUlOCi0raW50IG1haW4gKCkg eyByZXR1cm4gMDsgfQotKyNlbmRpZgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9pbXBvcnRlZC11bml0LWJwLW1haW4uYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9p bXBvcnRlZC11bml0LWJwLW1haW4uYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251 bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLW1haW4u YwotQEAgLTAsMCArMSwyNCBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMDQtMjAyMSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCi0rCi0rZXh0ZXJuIGludCBmdW5jICh2b2lkKTsKLSsKLStpbnQKLSttYWluKCkKLSt7 Ci0rICByZXR1cm4gZnVuYyAoKTsKLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2lt cG9ydGVkLXVuaXQtYnAuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwCi1AQCAt MCwwICsxLDEyOCBAQAotKyMgQ29weXJpZ2h0IDIwMjAtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUZXN0 IHRoYXQgImJyZWFrIC9hYnNvbHV0ZS9maWxlOmxpbmUiIHdvcmtzIG9rIHdpdGggaW1wb3J0ZWQg Q1VzLgotKwotK2xvYWRfbGliIGR3YXJmLmV4cAotKwotKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJl IHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KLStpZiB7 IVtkd2FyZjJfc3VwcG9ydF19IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBUaGUgLmMgZmls ZXMgdXNlIF9fYXR0cmlidXRlX18uCi0raWYgW2dldF9jb21waWxlcl9pbmZvXSB7Ci0rICAgIHJl dHVybiAtMQotK30KLStpZiAhJGdjY19jb21waWxlZCB7Ci0rICAgIHJldHVybiAwCi0rfQotKwot K3N0YW5kYXJkX3Rlc3RmaWxlIGltcG9ydGVkLXVuaXQtYnAtYWx0LmMgLlMgaW1wb3J0ZWQtdW5p dC1icC1tYWluLmMKLSsKLStzZXQgYnVpbGRfb3B0aW9ucyB7bm9kZWJ1ZyBvcHRpbWl6ZT0tTzF9 Ci0rCi0rc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZTJdCi0rRHdh cmY6OmFzc2VtYmxlICRhc21fZmlsZSB7Ci0rICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIHNyY2Zp bGUgc3JjZmlsZQotKyAgICBnbG9iYWwgYnVpbGRfb3B0aW9ucwotKyAgICBkZWNsYXJlX2xhYmVs cyBsaW5lc19sYWJlbCBjYWxsZWVfc3VicHJvZ19sYWJlbCBjdV9sYWJlbAotKwotKyAgICBnZXRf ZnVuY19pbmZvIGZ1bmMgIiRidWlsZF9vcHRpb25zIGFkZGl0aW9uYWxfZmxhZ3M9LURXSVRITUFJ TiIKLSsKLSsgICAgY3Uge30gewotKwljb21waWxlX3VuaXQgewotKwkgICAge2xhbmd1YWdlIEBE V19MQU5HX0N9Ci0rCSAgICB7bmFtZSAiPGFydGlmaWNpYWw+In0KLSsJfSB7Ci0rCSAgICBpbXBv cnRlZF91bml0IHsKLSsJCXtpbXBvcnQgJSRjdV9sYWJlbH0KLSsJICAgIH0KLSsJfQotKyAgICB9 Ci0rCi0rICAgIGN1IHt9IHsKLSsJY3VfbGFiZWw6IGNvbXBpbGVfdW5pdCB7Ci0rCSAgICB7cHJv ZHVjZXIgImdjYyJ9Ci0rCSAgICB7bGFuZ3VhZ2UgQERXX0xBTkdfQ30KLSsJICAgIHtuYW1lICR7 c3JjZmlsZX19Ci0rCSAgICB7Y29tcF9kaXIgIi90bXAifQotKwkgICAge2xvd19wYyAwIGFkZHJ9 Ci0rCSAgICB7c3RtdF9saXN0ICR7bGluZXNfbGFiZWx9IERXX0ZPUk1fc2VjX29mZnNldH0KLSsJ fSB7Ci0rCSAgICBjYWxsZWVfc3VicHJvZ19sYWJlbDogc3VicHJvZ3JhbSB7Ci0rCQl7ZXh0ZXJu YWwgMSBmbGFnfQotKwkJe25hbWUgY2FsbGVlfQotKwkJe2lubGluZSAzIGRhdGExfQotKwkgICAg fQotKwkgICAgc3VicHJvZ3JhbSB7Ci0rCQl7ZXh0ZXJuYWwgMSBmbGFnfQotKwkJe25hbWUgZnVu Y30KLSsJCXtsb3dfcGMgJGZ1bmNfc3RhcnQgYWRkcn0KLSsJCXtoaWdoX3BjICIkZnVuY19zdGFy dCArICRmdW5jX2xlbiIgYWRkcn0KLSsJICAgIH0gewotKwkgICAgfQotKwl9Ci0rICAgIH0KLSsK LSsgICAgbGluZXMge3ZlcnNpb24gMiBkZWZhdWx0X2lzX3N0bXQgMX0gbGluZXNfbGFiZWwgewot KwlpbmNsdWRlX2RpciAiL3RtcCIKLSsJZmlsZV9uYW1lICIkc3JjZmlsZSIgMQotKwotKwlwcm9n cmFtIHsKLSsJICAgIHtEV19MTkVfc2V0X2FkZHJlc3MgbGluZV9sYWJlbF8xfQotKwkgICAge0RX X0xOU19hZHZhbmNlX2xpbmUgMTV9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdf TE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxfMn0KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5l IDF9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxp bmVfbGFiZWxfM30KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDR9Ci0rCSAgICB7RFdfTE5T X2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxfNH0KLSsJICAg IHtEV19MTlNfYWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7 RFdfTE5TX2FkdmFuY2VfbGluZSAtNH0KLSsJICAgIHtEV19MTlNfbmVnYXRlX3N0bXR9Ci0rCSAg ICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxf NX0KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0r Ci0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxfNn0KLSsJICAgIHtEV19MTlNf YWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX25lZ2F0ZV9zdG10fQotKwkgICAge0RXX0xO U19jb3B5fQotKwotKwkgICAge0RXX0xORV9zZXRfYWRkcmVzcyBsaW5lX2xhYmVsXzd9Ci0rCSAg ICB7RFdfTE5FX2VuZF9zZXF1ZW5jZX0KLSsJfQotKyAgICB9Ci0rfQotKwotK2lmIHsgW3ByZXBh cmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rlc3RmaWxlfSBcCi0rCSAgW2xp c3QgJHNyY2ZpbGUgJGFzbV9maWxlICRzcmNmaWxlM10gJGJ1aWxkX29wdGlvbnNdIH0gewotKyAg ICByZXR1cm4gLTEKLSt9Ci0rCi0rZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgL3RtcAotKwotKyMgVXNp bmcgYW4gYWJzb2x1dGUgcGF0aCBpcyBpbXBvcnRhbnQgdG8gc2VlIHRoZSBidWcuCi0rZ2RiX3Rl c3QgImJyZWFrIC90bXAvJHtzcmNmaWxlfToxOSIgIkJyZWFrcG9pbnQgLiogZmlsZSAkc3JjZmls ZSwgbGluZSAuKiIKCmRpZmYgLS1naXQgYS9nZGItbGludXhfcGVyZi1idW5kbGUucGF0Y2ggYi9n ZGItbGludXhfcGVyZi1idW5kbGUucGF0Y2gKaW5kZXggNzI4ZjQ2My4uZTNjZTFhMyAxMDA2NDQK LS0tIGEvZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCisrKyBiL2dkYi1saW51eF9wZXJmLWJ1 bmRsZS5wYXRjaApAQCAtMjEzLDcgKzIxMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbmF0L2xpbnV4 LWJ0cmFjZS5oIGIvZ2RiL25hdC9saW51eC1idHJhY2UuaAogZGlmZiAtLWdpdCBhL2dkYnN1cHBv cnQvY29tbW9uLm00IGIvZ2Ric3VwcG9ydC9jb21tb24ubTQKIC0tLSBhL2dkYnN1cHBvcnQvY29t bW9uLm00CiArKysgYi9nZGJzdXBwb3J0L2NvbW1vbi5tNAotQEAgLTE0NSw3ICsxNDUsNyBAQCBB Q19ERUZVTihbR0RCX0FDX0NPTU1PTl0sIFsKK0BAIC0xMzUsNyArMTM1LDcgQEAgQUNfREVGVU4o W0dEQl9BQ19DT01NT05dLCBbCiAgICAgIEFDX1BSRVBST0NfSUZFTFNFKFtBQ19MQU5HX1NPVVJD RShbWwogICAgI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICAgICNpZm5kZWYgUEVSRl9B VFRSX1NJWkVfVkVSNQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6LTg1MzA3MS11cGRhdGUtbWFucGFn ZXMucGF0Y2ggYi9nZGItcmhiei04NTMwNzEtdXBkYXRlLW1hbnBhZ2VzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZWI2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGItcmhiei04NTMwNzEtdXBkYXRlLW1hbnBhZ2VzLnBhdGNoCkBAIC0wLDAgKzEsMjU4IEBACitG cm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQnJ1bm8g TGFyc2VuIDxibGFyc2VuQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDkgTm92IDIwMjEgMTQ6MDc6 MjYgLTAzMDAKK1N1YmplY3Q6IGdkYi1yaGJ6LTg1MzA3MS11cGRhdGUtbWFucGFnZXMucGF0Y2gK KworOzsgQmFja3BvcnQgbWFucGFnZSB1cGRhdGUKKworW2dkYi9kb2NdOiBVcGRhdGVkIG1hbnBh Z2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBoZWxwCisKK1VwZGF0ZWQgbWFucGFnZXMgdG8gYmUg Y29uc2lzdGVudCB3aXRoIGhlbHAgaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkgdGhlCitiaW5hcnku IFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisqIE1ha2luZyBhbGwgbG9uZy1mb3JtIG9wdGlvbnMg aGF2ZSAnLS0nLCBpbnN0ZWFkIG9mIGEgc2luZ2xlICctJzsKKyogYWRkZWQgbW9zdCBvZiB0aGUg bWlzc2luZyBvcHRpb25zIHRvIHRoZSBtYW5wYWdlOworKiByZW1vdmVkIHRoZSBpbmZvcm1hdGlv biBhYm91dCB1c2luZyAnKycgaW5zdGVhZCBvZiAnLScsIHNpbmNlIGl0CisgIGRvZXNuJ3Qgc2Vl bSB0byBiZSBzdXBwb3J0ZWQgYW55bW9yZS4KKworVGhpcyBhbHNvIGZpeGVzIDIgdXBzdHJlYW0g YnVnczoKKyogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9 MjM5NjU7IGJ5IGFkZGluZworLS1hcmdzIHRvIHRoZSBtYW5wYWdlCisqIGh0dHBzOi8vc291cmNl d2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNjE5OyBieSBhZGRpbmcgdGhlCitk b3VibGUgZGFzaGVzCisKK2RpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2Rv Yy9nZGIudGV4aW5mbworLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysrIGIvZ2RiL2RvYy9n ZGIudGV4aW5mbworQEAgLTQ3MDMwLDE0ICs0NzAzMCw3IEBAIHN3aXRjaCAoZGllLT50YWcpCisg QGMgbWFuIHRpdGxlIGdkYiBUaGUgR05VIERlYnVnZ2VyCisgCisgQGMgbWFuIGJlZ2luIFNZTk9Q U0lTIGdkYgorLWdkYiBbQG9wdGlvbnstaGVscH1dIFtAb3B0aW9uey1uaH1dIFtAb3B0aW9uey1u eH1dIFtAb3B0aW9uey1xfV0KKy1bQG9wdGlvbnstYmF0Y2h9XSBbQG9wdGlvbnstY2Q9fUB2YXJ7 ZGlyfV0gW0BvcHRpb257LWZ9XQorLVtAb3B0aW9uey1ifUB3eyB9QHZhcnticHN9XQorLSAgICBb QG9wdGlvbnstdHR5PX1AdmFye2Rldn1dIFtAb3B0aW9uey1zfSBAdmFye3N5bWZpbGV9XQorLVtA b3B0aW9uey1lfUB3eyB9QHZhcntwcm9nfV0gW0BvcHRpb257LXNlfUB3eyB9QHZhcntwcm9nfV0K Ky1bQG9wdGlvbnstY31Ad3sgfUB2YXJ7Y29yZX1dIFtAb3B0aW9uey1wfUB3eyB9QHZhcntwcm9j SUR9XQorLSAgICBbQG9wdGlvbnsteH1Ad3sgfUB2YXJ7Y21kc31dIFtAb3B0aW9uey1kfUB3eyB9 QHZhcntkaXJ9XQorLVtAdmFye3Byb2d9fEB2YXJ7cHJvZ30gQHZhcntwcm9jSUR9fEB2YXJ7cHJv Z30gQHZhcntjb3JlfV0KKytnZGIgW09QVElPTlNdIFtAdmFye3Byb2d9fEB2YXJ7cHJvZ30gQHZh cntwcm9jSUR9fEB2YXJ7cHJvZ30gQHZhcntjb3JlfV0KKyBAYyBtYW4gZW5kCisgCisgQGMgbWFu IGJlZ2luIERFU0NSSVBUSU9OIGdkYgorQEAgLTQ3MTAxLDggKzQ3MDk0LDggQEAgSGVyZSBhcmUg c29tZSBvZiB0aGUgbW9zdCBmcmVxdWVudGx5IG5lZWRlZCBAdmFsdWV7R0RCTn0gY29tbWFuZHM6 CisgCisgQGMgcG9kMm1hbiBoaWdobGlnaHRzIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIEBp dGVtIGxpbmVzLgorIEB0YWJsZSBAZW52CistQGl0ZW0gYnJlYWsgW0B2YXJ7ZmlsZX06XUB2YXJ7 ZnVuY3Rpb259CistU2V0IGEgYnJlYWtwb2ludCBhdCBAdmFye2Z1bmN0aW9ufSAoaW4gQHZhcntm aWxlfSkuCisrQGl0ZW0gYnJlYWsgW0B2YXJ7ZmlsZX06XVtAdmFye2Z1bmN0aW9ufXxAdmFye2xp bmV9XQorK1NldCBhIGJyZWFrcG9pbnQgYXQgQHZhcntmdW5jdGlvbn0gb3IgQHZhcntsaW5lfSAo aW4gQHZhcntmaWxlfSkuCisgCisgQGl0ZW0gcnVuIFtAdmFye2FyZ2xpc3R9XQorIFN0YXJ0IHlv dXIgcHJvZ3JhbSAod2l0aCBAdmFye2FyZ2xpc3R9LCBpZiBzcGVjaWZpZWQpLgorQEAgLTQ3MTUw LDcyICs0NzE0Myw5MSBAQCBhcyB0aGUgQGNvZGV7Z2RifSBlbnRyeSBpbiB0aGUgQGNvZGV7aW5m b30gcHJvZ3JhbS4KKyBBbnkgYXJndW1lbnRzIG90aGVyIHRoYW4gb3B0aW9ucyBzcGVjaWZ5IGFu IGV4ZWN1dGFibGUKKyBmaWxlIGFuZCBjb3JlIGZpbGUgKG9yIHByb2Nlc3MgSUQpOyB0aGF0IGlz LCB0aGUgZmlyc3QgYXJndW1lbnQKKyBlbmNvdW50ZXJlZCB3aXRoIG5vCistYXNzb2NpYXRlZCBv cHRpb24gZmxhZyBpcyBlcXVpdmFsZW50IHRvIGEgQG9wdGlvbnstc2V9IG9wdGlvbiwgYW5kIHRo ZSBzZWNvbmQsCisrYXNzb2NpYXRlZCBvcHRpb24gZmxhZyBpcyBlcXVpdmFsZW50IHRvIGEgQG9w dGlvbnstLXNlfSBvcHRpb24sIGFuZCB0aGUgc2Vjb25kLAorIGlmIGFueSwgaXMgZXF1aXZhbGVu dCB0byBhIEBvcHRpb257LWN9IG9wdGlvbiBpZiBpdCdzIHRoZSBuYW1lIG9mIGEgZmlsZS4KKyBN YW55IG9wdGlvbnMgaGF2ZQorLWJvdGggbG9uZyBhbmQgc2hvcnQgZm9ybXM7IGJvdGggYXJlIHNo b3duIGhlcmUuICBUaGUgbG9uZyBmb3JtcyBhcmUgYWxzbworK2JvdGggbG9uZyBhbmQgYWJicmV2 aWF0ZWQgZm9ybXM7IGJvdGggYXJlIHNob3duIGhlcmUuICBUaGUgbG9uZyBmb3JtcyBhcmUgYWxz bworIHJlY29nbml6ZWQgaWYgeW91IHRydW5jYXRlIHRoZW0sIHNvIGxvbmcgYXMgZW5vdWdoIG9m IHRoZSBvcHRpb24gaXMKKy1wcmVzZW50IHRvIGJlIHVuYW1iaWd1b3VzLiAgKElmIHlvdSBwcmVm ZXIsIHlvdSBjYW4gZmxhZyBvcHRpb24KKy1hcmd1bWVudHMgd2l0aCBAb3B0aW9ueyt9IHJhdGhl ciB0aGFuIEBvcHRpb257LX0sIHRob3VnaCB3ZSBpbGx1c3RyYXRlIHRoZQorLW1vcmUgdXN1YWwg Y29udmVudGlvbi4pCisrcHJlc2VudCB0byBiZSB1bmFtYmlndW91cy4KKysKKytUaGUgYWJicmV2 aWF0ZWQgZm9ybXMgYXJlIHNob3duIGhlcmUgd2l0aCBAc2FtcHstfSBhbmQgbG9uZyBmb3JtcyBh cmUgc2hvd24KKyt3aXRoIEBzYW1wey0tfSB0byByZWZsZWN0IGhvdyB0aGV5IGFyZSBzaG93biBp biBAb3B0aW9uey0taGVscH0uIEhvd2V2ZXIsCisrQHZhbHVle0dEQk59IHJlY29nbml6ZXMgYWxs IG9mIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbnMgZm9yIG1vc3Qgb3B0aW9uczoKKysKKytAdGFi bGUgQGNvZGUKKytAaXRlbSAtLW9wdGlvbj1AdmFye3ZhbHVlfQorK0BpdGVtIC0tb3B0aW9uIEB2 YXJ7dmFsdWV9CisrQGl0ZW0gLW9wdGlvbj1AdmFye3ZhbHVlfQorK0BpdGVtIC1vcHRpb24gQHZh cnt2YWx1ZX0KKytAaXRlbSAtLW89QHZhcnt2YWx1ZX0KKytAaXRlbSAtLW8gQHZhcnt2YWx1ZX0K KytAaXRlbSAtbz1AdmFye3ZhbHVlfQorK0BpdGVtIC1vIEB2YXJ7dmFsdWV9CisrQGVuZCB0YWJs ZQorIAorIEFsbCB0aGUgb3B0aW9ucyBhbmQgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB5b3UgZ2l2 ZSBhcmUgcHJvY2Vzc2VkCisgaW4gc2VxdWVudGlhbCBvcmRlci4gIFRoZSBvcmRlciBtYWtlcyBh IGRpZmZlcmVuY2Ugd2hlbiB0aGUgQG9wdGlvbnsteH0KKyBvcHRpb24gaXMgdXNlZC4KKyAKKyBA dGFibGUgQGVudgorLUBpdGVtIC1oZWxwCisrQGl0ZW0gLS1oZWxwCisgQGl0ZW14IC1oCisgTGlz dCBhbGwgb3B0aW9ucywgd2l0aCBicmllZiBleHBsYW5hdGlvbnMuCisgCistQGl0ZW0gLXN5bWJv bHM9QHZhcntmaWxlfQorK0BpdGVtIC0tc3ltYm9scz1AdmFye2ZpbGV9CisgQGl0ZW14IC1zIEB2 YXJ7ZmlsZX0KKy1SZWFkIHN5bWJvbCB0YWJsZSBmcm9tIGZpbGUgQHZhcntmaWxlfS4KKytSZWFk IHN5bWJvbCB0YWJsZSBmcm9tIEB2YXJ7ZmlsZX0uCisgCistQGl0ZW0gLXdyaXRlCisrQGl0ZW0g LS13cml0ZQorIEVuYWJsZSB3cml0aW5nIGludG8gZXhlY3V0YWJsZSBhbmQgY29yZSBmaWxlcy4K KyAKKy1AaXRlbSAtZXhlYz1AdmFye2ZpbGV9CisrQGl0ZW0gLS1leGVjPUB2YXJ7ZmlsZX0KKyBA aXRlbXggLWUgQHZhcntmaWxlfQorLVVzZSBmaWxlIEB2YXJ7ZmlsZX0gYXMgdGhlIGV4ZWN1dGFi bGUgZmlsZSB0byBleGVjdXRlIHdoZW4KKytVc2UgQHZhcntmaWxlfSBhcyB0aGUgZXhlY3V0YWJs ZSBmaWxlIHRvIGV4ZWN1dGUgd2hlbgorIGFwcHJvcHJpYXRlLCBhbmQgZm9yIGV4YW1pbmluZyBw dXJlIGRhdGEgaW4gY29uanVuY3Rpb24gd2l0aCBhIGNvcmUKKyBkdW1wLgorIAorLUBpdGVtIC1z ZT1AdmFye2ZpbGV9CistUmVhZCBzeW1ib2wgdGFibGUgZnJvbSBmaWxlIEB2YXJ7ZmlsZX0gYW5k IHVzZSBpdCBhcyB0aGUgZXhlY3V0YWJsZQorK0BpdGVtIC0tc2U9QHZhcntmaWxlfQorK1JlYWQg c3ltYm9sIHRhYmxlIGZyb20gQHZhcntmaWxlfSBhbmQgdXNlIGl0IGFzIHRoZSBleGVjdXRhYmxl CisgZmlsZS4KKyAKKy1AaXRlbSAtY29yZT1AdmFye2ZpbGV9CisrQGl0ZW0gLS1jb3JlPUB2YXJ7 ZmlsZX0KKyBAaXRlbXggLWMgQHZhcntmaWxlfQorLVVzZSBmaWxlIEB2YXJ7ZmlsZX0gYXMgYSBj b3JlIGR1bXAgdG8gZXhhbWluZS4KKytVc2UgQHZhcntmaWxlfSBhcyBhIGNvcmUgZHVtcCB0byBl eGFtaW5lLgorIAorLUBpdGVtIC1jb21tYW5kPUB2YXJ7ZmlsZX0KKytAaXRlbSAtLWNvbW1hbmQ9 QHZhcntmaWxlfQorIEBpdGVteCAteCBAdmFye2ZpbGV9CistRXhlY3V0ZSBAdmFsdWV7R0RCTn0g Y29tbWFuZHMgZnJvbSBmaWxlIEB2YXJ7ZmlsZX0uCisrRXhlY3V0ZSBAdmFsdWV7R0RCTn0gY29t bWFuZHMgZnJvbSBAdmFye2ZpbGV9LgorIAorK0BpdGVtIC0tZXZhbC1jb21tYW5kPUB2YXJ7Y29t bWFuZH0KKyBAaXRlbSAtZXggQHZhcntjb21tYW5kfQorIEV4ZWN1dGUgZ2l2ZW4gQHZhbHVle0dE Qk59IEB2YXJ7Y29tbWFuZH0uCisgCistQGl0ZW0gLWRpcmVjdG9yeT1AdmFye2RpcmVjdG9yeX0K KytAaXRlbSAtLWluaXQtZXZhbC1jb21tYW5kPUB2YXJ7Y29tbWFuZH0KKytAaXRlbSAtaWV4Cisr RXhlY3V0ZSBAdmFsdWV7R0RCTn0gQHZhcntjb21tYW5kfSBiZWZvcmUgbG9hZGluZyB0aGUgaW5m ZXJpb3IuCisrCisrQGl0ZW0gLS1kaXJlY3Rvcnk9QHZhcntkaXJlY3Rvcnl9CisgQGl0ZW14IC1k IEB2YXJ7ZGlyZWN0b3J5fQorIEFkZCBAdmFye2RpcmVjdG9yeX0gdG8gdGhlIHBhdGggdG8gc2Vh cmNoIGZvciBzb3VyY2UgZmlsZXMuCisgCistQGl0ZW0gLW5oCisrQGl0ZW0gLS1uaAorIERvIG5v dCBleGVjdXRlIGNvbW1hbmRzIGZyb20gQGZpbGV7fi8uY29uZmlnL2dkYi9nZGJpbml0fSwKKyBA ZmlsZXt+Ly5nZGJpbml0fSwgQGZpbGV7fi8uY29uZmlnL2dkYi9nZGJlYXJseWluaXR9LCBvcgor IEBmaWxle34vLmdkYmVhcmx5aW5pdH0KKyAKKy1AaXRlbSAtbngKKytAaXRlbSAtLW54CisgQGl0 ZW14IC1uCisgRG8gbm90IGV4ZWN1dGUgY29tbWFuZHMgZnJvbSBhbnkgQGZpbGV7LmdkYmluaXR9 IG9yCisgQGZpbGV7LmdkYmVhcmx5aW5pdH0gaW5pdGlhbGl6YXRpb24gZmlsZXMuCisgCistQGl0 ZW0gLXF1aWV0CisrQGl0ZW0gLS1xdWlldAorK0BpdGVtIC0tc2lsZW50CisgQGl0ZW14IC1xCisg YGBRdWlldCcnLiAgRG8gbm90IHByaW50IHRoZSBpbnRyb2R1Y3RvcnkgYW5kIGNvcHlyaWdodCBt ZXNzYWdlcy4gIFRoZXNlCisgbWVzc2FnZXMgYXJlIGFsc28gc3VwcHJlc3NlZCBpbiBiYXRjaCBt b2RlLgorIAorLUBpdGVtIC1iYXRjaAorK0BpdGVtIC0tYmF0Y2gKKyBSdW4gaW4gYmF0Y2ggbW9k ZS4gIEV4aXQgd2l0aCBzdGF0dXMgQGNvZGV7MH0gYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGNv bW1hbmQKKyBmaWxlcyBzcGVjaWZpZWQgd2l0aCBAb3B0aW9uey14fSAoYW5kIEBmaWxley5nZGJp bml0fSwgaWYgbm90IGluaGliaXRlZCkuCisgRXhpdCB3aXRoIG5vbnplcm8gc3RhdHVzIGlmIGFu IGVycm9yIG9jY3VycyBpbiBleGVjdXRpbmcgdGhlIEB2YWx1ZXtHREJOfQorQEAgLTQ3MjMzLDEx ICs0NzI0NSw3MSBAQCBQcm9ncmFtIGV4aXRlZCBub3JtYWxseS4KKyAod2hpY2ggaXMgb3JkaW5h cmlseSBpc3N1ZWQgd2hlbmV2ZXIgYSBwcm9ncmFtIHJ1bm5pbmcgdW5kZXIgQHZhbHVle0dEQk59 IGNvbnRyb2wKKyB0ZXJtaW5hdGVzKSBpcyBub3QgaXNzdWVkIHdoZW4gcnVubmluZyBpbiBiYXRj aCBtb2RlLgorIAorLUBpdGVtIC1jZD1AdmFye2RpcmVjdG9yeX0KKytAaXRlbSAtLWJhdGNoLXNp bGVudAorK1J1biBpbiBiYXRjaCBtb2RlLCBqdXN0IGxpa2UgQG9wdGlvbnstLWJhdGNofSwgYnV0 IHRvdGFsbHkgc2lsZW50LiAgQWxsIEB2YWx1ZXtHREJOfQorK291dHB1dCBpcyBzdXByZXNzZWQg KHN0ZGVyciBpcyB1bmFmZmVjdGVkKS4gIFRoaXMgaXMgbXVjaCBxdWlldGVyIHRoYW4KKytAb3B0 aW9uey0tc2lsZW50fSBhbmQgd291bGQgYmUgdXNlbGVzcyBmb3IgYW4gaW50ZXJhY3RpdmUgc2Vz c2lvbi4KKysKKytUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB1c2luZyB0YXJnZXRz IHRoYXQgZ2l2ZSBAc2FtcHtMb2FkaW5nIHNlY3Rpb259CisrbWVzc2FnZXMsIGZvciBleGFtcGxl LgorKworK05vdGUgdGhhdCB0YXJnZXRzIHRoYXQgZ2l2ZSB0aGVpciBvdXRwdXQgdmlhIEB2YWx1 ZXtHREJOfSwgYXMgb3Bwb3NlZCB0byB3cml0aW5nCisrZGlyZWN0bHkgdG8gQGNvZGV7c3Rkb3V0 fSwgd2lsbCBhbHNvIGJlIG1hZGUgc2lsZW50LgorKworK0BpdGVtIC0tYXJncyBAdmFye3Byb2d9 IFtAdmFye2FyZ2xpc3R9XQorK0NoYW5nZSBpbnRlcnByZXRhdGlvbiBvZiBjb21tYW5kIGxpbmUg c28gdGhhdCBhcmd1bWVudHMgZm9sbG93aW5nIHRoaXMKKytvcHRpb24gYXJlIHBhc3NlZCBhcyBh cmd1bWVudHMgdG8gdGhlIGluZmVyaW9yLiAgQXMgYW4gZXhhbXBsZSwgdGFrZQorK3RoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysKKytAc21hbGxleGFtcGxlCisrZ2RiIC4vYS5vdXQgLXEKKytAZW5k IHNtYWxsZXhhbXBsZQorKworK0Bub2luZGVudAorK0l0IHdvdWxkIHN0YXJ0IEB2YWx1ZXtHREJO fSB3aXRoIEBvcHRpb257LXF9LCBub3QgcHJpbnRpbmcgdGhlIGludHJvZHVjdG9yeSBtZXNzYWdl LiAgT24KKyt0aGUgb3RoZXIgaGFuZCwgdXNpbmc6CisrCisrQHNtYWxsZXhhbXBsZQorK2dkYiAt LWFyZ3MgLi9hLm91dCAtcQorK0BlbmQgc21hbGxleGFtcGxlCisrCisrQG5vaW5kZW50Cisrc3Rh cnRzIEB2YWx1ZXtHREJOfSB3aXRoIHRoZSBpbnRyb2R1Y3RvcnkgbWVzc2FnZSwgYW5kIHBhc3Nl cyB0aGUgb3B0aW9uIHRvIHRoZSBpbmZlcmlvci4KKysKKytAaXRlbSAtLXBpZD1AdmFye3BpZH0K KytBdHRhY2ggQHZhbHVle0dEQk59IHRvIGFuIGFscmVhZHkgcnVubmluZyBwcm9ncmFtLCB3aXRo IHRoZSBQSUQgQHZhcntwaWR9LgorKworK0BpdGVtIC0tdHVpCisrT3BlbiB0aGUgdGVybWluYWwg dXNlciBpbnRlcmZhY2UuCisrCisrQGl0ZW0gLS1yZWFkbm93CisrUmVhZCBhbGwgc3ltYm9scyBm cm9tIHRoZSBnaXZlbiBzeW1maWxlIG9uIHRoZSBmaXJzdCBhY2Nlc3MuCisrCisrQGl0ZW0gLS1y ZWFkbmV2ZXIKKytEbyBub3QgcmVhZCBzeW1ib2wgZmlsZXMuCisrCisrQGl0ZW0gLS1kYngKKytS dW4gaW4gREJYIGNvbXBhdGliaWxpdHkgbW9kZS4KKysKKytAaXRlbSAtLXJldHVybi1jaGlsZC1y ZXN1bHQKKytAdmFsdWV7R0RCTn0ncyBleGl0IGNvZGUgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUg Y2hpbGQncyBleGl0IGNvZGUuCisrCisrQGl0ZW0gLS1jb25maWd1cmF0aW9uCisrUHJpbnQgZGV0 YWlscyBhYm91dCBHREIgY29uZmlndXJhdGlvbiBhbmQgdGhlbiBleGl0LgorKworK0BpdGVtIC0t dmVyc2lvbgorK1ByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIHRoZW4gZXhpdC4KKysKKytA aXRlbSAtLWNkPUB2YXJ7ZGlyZWN0b3J5fQorIFJ1biBAdmFsdWV7R0RCTn0gdXNpbmcgQHZhcntk aXJlY3Rvcnl9IGFzIGl0cyB3b3JraW5nIGRpcmVjdG9yeSwKKyBpbnN0ZWFkIG9mIHRoZSBjdXJy ZW50IGRpcmVjdG9yeS4KKyAKKy1AaXRlbSAtZnVsbG5hbWUKKytAaXRlbSAtLWRhdGEtZGlyZWN0 b3J5PUB2YXJ7ZGlyZWN0b3J5fQorK0BpdGVtIC1ECisrUnVuIEB2YWx1ZXtHREJOfSB1c2luZyBA dmFye2RpcmVjdG9yeX0gYXMgaXRzIGRhdGEgZGlyZWN0b3J5LiAgVGhlIGRhdGEKKytkaXJlY3Rv cnkgaXMgd2hlcmUgQHZhbHVle0dEQk59IHNlYXJjaGVzIGZvciBpdHMgYXV4aWxpYXJ5IGZpbGVz LgorKworK0BpdGVtIC0tZnVsbG5hbWUKKyBAaXRlbXggLWYKKyBFbWFjcyBzZXRzIHRoaXMgb3B0 aW9uIHdoZW4gaXQgcnVucyBAdmFsdWV7R0RCTn0gYXMgYSBzdWJwcm9jZXNzLiAgSXQgdGVsbHMK KyBAdmFsdWV7R0RCTn0gdG8gb3V0cHV0IHRoZSBmdWxsIGZpbGUgbmFtZSBhbmQgbGluZSBudW1i ZXIgaW4gYSBzdGFuZGFyZCwKK0BAIC00NzI0OCwxMSArNDczMjAsMTQgQEAgYW5kIGNoYXJhY3Rl ciBwb3NpdGlvbiBzZXBhcmF0ZWQgYnkgY29sb25zLCBhbmQgYSBuZXdsaW5lLiAgVGhlCisgRW1h Y3MtdG8tQHZhbHVle0dEQk59IGludGVyZmFjZSBwcm9ncmFtIHVzZXMgdGhlIHR3byBAc2FtcHtc MDMyfQorIGNoYXJhY3RlcnMgYXMgYSBzaWduYWwgdG8gZGlzcGxheSB0aGUgc291cmNlIGNvZGUg Zm9yIHRoZSBmcmFtZS4KKyAKKy1AaXRlbSAtYiBAdmFye2Jwc30KKytAaXRlbSAtYiBAdmFye2Jh dWRyYXRlfQorIFNldCB0aGUgbGluZSBzcGVlZCAoYmF1ZCByYXRlIG9yIGJpdHMgcGVyIHNlY29u ZCkgb2YgYW55IHNlcmlhbAorIGludGVyZmFjZSB1c2VkIGJ5IEB2YWx1ZXtHREJOfSBmb3IgcmVt b3RlIGRlYnVnZ2luZy4KKyAKKy1AaXRlbSAtdHR5PUB2YXJ7ZGV2aWNlfQorK0BpdGVtIC1sIEB2 YXJ7dGltZW91dH0KKytTZXQgdGltZW91dCwgaW4gc2Vjb25kcywgZm9yIHJlbW90ZSBkZWJ1Z2dp bmcuCisrCisrQGl0ZW0gLS10dHk9QHZhcntkZXZpY2V9CisgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNl fSBmb3IgeW91ciBwcm9ncmFtJ3Mgc3RhbmRhcmQgaW5wdXQgYW5kIG91dHB1dC4KKyBAZW5kIHRh YmxlCisgQGMgbWFuIGVuZAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTM1MDQzNi10eXBlLXByaW50 ZXJzLWVycm9yLnBhdGNoIGIvZ2RiLXJoYnoxMzUwNDM2LXR5cGUtcHJpbnRlcnMtZXJyb3IucGF0 Y2gKaW5kZXggZDA2ZTEyMS4uMzMyMjMyNyAxMDA2NDQKLS0tIGEvZ2RiLXJoYnoxMzUwNDM2LXR5 cGUtcHJpbnRlcnMtZXJyb3IucGF0Y2gKKysrIGIvZ2RiLXJoYnoxMzUwNDM2LXR5cGUtcHJpbnRl cnMtZXJyb3IucGF0Y2gKQEAgLTQyLDIyICs0MiwyNCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXR5cGVwcmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo bwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10eXBlcHJpbnQucHkg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZXByaW50LnB5CiAtLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktdHlwZXByaW50LnB5CiArKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdHlwZXByaW50LnB5Ci1AQCAtMTUsNyArMTUsNyBAQAorQEAgLTE1LDggKzE1 LDcgQEAKICAKICBpbXBvcnQgZ2RiCiAgCistCiAtY2xhc3MgUmVjb2duaXplcihvYmplY3QpOgog K2NsYXNzIFN0cmluZ1JlY29nbml6ZXIob2JqZWN0KToKICAgICAgZGVmIF9faW5pdF9fKHNlbGYp OgogICAgICAgICAgc2VsZi5lbmFibGVkID0gVHJ1ZQogIAotQEAgLTMwLDYgKzMwLDI2IEBAIGNs YXNzIFN0cmluZ1R5cGVQcmludGVyKG9iamVjdCk6CitAQCAtMzIsNyArMzEsMjcgQEAgY2xhc3Mg U3RyaW5nVHlwZVByaW50ZXIob2JqZWN0KToKICAgICAgICAgIHNlbGYuZW5hYmxlZCA9IFRydWUK ICAKICAgICAgZGVmIGluc3RhbnRpYXRlKHNlbGYpOgogLSAgICAgICAgcmV0dXJuIFJlY29nbml6 ZXIoKQogKyAgICAgICAgcmV0dXJuIFN0cmluZ1JlY29nbml6ZXIoKQogIAorIAogIGdkYi50eXBl X3ByaW50ZXJzLmFwcGVuZChTdHJpbmdUeXBlUHJpbnRlcigpKQogKwogK2NsYXNzIE90aGVyUmVj b2duaXplcihvYmplY3QpOgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTg5ODI1Mi1sb2FkYWJsZS1z ZWN0aW9uLW91dHNpZGUtRUxGLXNlZ21lbnRzLnBhdGNoIGIvZ2RiLXJoYnoxODk4MjUyLWxvYWRh YmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDE0MTk0NTUuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxODk4MjUyLWxvYWRh YmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw2NyArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxNiBO b3YgMjAyMCAxMjo0MjowOSAtMDUwMAotU3ViamVjdDogZ2RiLXJoYnoxODk4MjUyLWxvYWRhYmxl LXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKLQotOzsgQmFja3BvcnQgb2YgIkV4 Y2x1ZGUgZGVidWdpbmZvIGZpbGVzIGZyb20gJ291dHNpZGUgb2YgRUxGIHNlZ21lbnRzJwotOzsg d2FybmluZyIgIChLZWl0aCBTZWl0eikKLQotICAgIEV4Y2x1ZGUgZGVidWdpbmZvIGZpbGVzIGZy b20gIm91dHNpZGUgb2YgRUxGIHNlZ21lbnRzIiB3YXJuaW5nCi0KLSAgICBXaGVuIEdEQiBsb2Fk cyBhbiBFTEYgZmlsZSwgaXQgd2lsbCB3YXJuIHdoZW4gYSBzZWN0aW9uIGlzIG5vdCBsb2NhdGVk Ci0gICAgaW4gYW4gRUxGIHNlZ21lbnQ6Ci0KLSAgICAkIC4vZ2RiIC1xIC1pZXggInNldCBidWls ZC1pZC12ZXJib3NlIDAiIC0tZXggImIgc3lzdGVtY3RsX21haW4iIC1leCAiciIgLWJhdGNoIC0t YXJncyBzeXN0ZW1jdGwga2V4ZWMKLSAgICBCcmVha3BvaW50IDEgYXQgMHhjMjRkOiBmaWxlIC4u L3NyYy9zeXN0ZW1jdGwvc3lzdGVtY3RsLmMsIGxpbmUgODc1Mi4KLSAgICB3YXJuaW5nOiBMb2Fk YWJsZSBzZWN0aW9uICIubm90ZS5nbnUucHJvcGVydHkiIG91dHNpZGUgb2YgRUxGIHNlZ21lbnRz Ci0gICAgICBpbiAuZ251X2RlYnVnZGF0YSBmb3IgL2xpYjY0L2xpYmdjY19zLnNvLjEKLSAgICBb VGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0KLSAgICBVc2luZyBo b3N0IGxpYnRocmVhZF9kYiBsaWJyYXJ5ICIvbGliNjQvbGlidGhyZWFkX2RiLnNvLjEiLgotICAg IHdhcm5pbmc6IExvYWRhYmxlIHNlY3Rpb24gIi5ub3RlLmdudS5wcm9wZXJ0eSIgb3V0c2lkZSBv ZiBFTEYgc2VnbWVudHMKLSAgICAgIGluIC5nbnVfZGVidWdkYXRhIGZvciAvbGliNjQvbGliY2Fw LnNvLjIKLSAgICB3YXJuaW5nOiBMb2FkYWJsZSBzZWN0aW9uICIubm90ZS5nbnUucHJvcGVydHki IG91dHNpZGUgb2YgRUxGIHNlZ21lbnRzCi0gICAgICBpbiAuZ251X2RlYnVnZGF0YSBmb3IgL2xp YjY0L2xpYmFjbC5zby4xCi0gICAgd2FybmluZzogTG9hZGFibGUgc2VjdGlvbiAiLm5vdGUuZ251 LnByb3BlcnR5IiBvdXRzaWRlIG9mIEVMRiBzZWdtZW50cwotICAgICAgaW4gLmdudV9kZWJ1Z2Rh dGEgZm9yIC9saWI2NC9saWJjcnlwdHNldHVwLnNvLjEyCi0gICAgd2FybmluZzogTG9hZGFibGUg c2VjdGlvbiAiLm5vdGUuZ251LnByb3BlcnR5IiBvdXRzaWRlIG9mIEVMRiBzZWdtZW50cwotICAg ICAgaW4gLmdudV9kZWJ1Z2RhdGEgZm9yIC9saWI2NC9saWJnY3J5cHQuc28uMjAKLSAgICB3YXJu aW5nOiBMb2FkYWJsZSBzZWN0aW9uICIubm90ZS5nbnUucHJvcGVydHkiIG91dHNpZGUgb2YgRUxG IHNlZ21lbnRzCi0gICAgICBpbiAuZ251X2RlYnVnZGF0YSBmb3IgL2xpYjY0L2xpYmlwNHRjLnNv LjIKLSAgICBbc25pcF0KLSAgICBUaGlzIGhhcyBmZWF0dXJlIGhhcyBhbHNvIGJlZW4gcmVwb3J0 ZWQgYnkgdmFyaW91cyB1c2VycywgbW9zdCBub3RhYmx5Ci0gICAgdGhlIEZlZG9yYS1FT0wnZCBi dWcgMTU1MzA4Ni4KLQotICAgIE1hcmsgV2llbGFhcmQgZXhwbGFpbnMgdGhlIGlzc3VlIHF1aXRl IG5pY2VseSBpbgotCi0gICAgICAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MjQ3MTcjYzIKLQotICAgIFRoZSBzaG9ydCBvZiBpdCBpcywgdGhlIEVMRiBw cm9ncmFtIGhlYWRlcnMgZm9yIGRlYnVnaW5mbyBmaWxlcyBhcmUKLSAgICBub3Qgc3VpdGVkIHRv IHRoaXMgcGFydGljdWxhciB1c2UgY2FzZS4gQ29uc2VxdWVudGx5LCB0aGUgd2FybmluZwotICAg IGdlbmVyYXRlZCBhYm92ZSByZWFsbHkgaXMgdXNlbGVzcyBhbmQgc2hvdWxkIGJlIGlnbm9yZWQu Ci0KLSAgICBUaGlzIHBhdGNoIGZvbGxvd3MgdGhlIHNhbWUgaGV1cmlzdGljIHRoYXQgQkZEIGl0 c2VsZiB1c2VzLgotCi0gICAgZ2RiL0NoYW5nZUxvZwotICAgIDIwMjAtMTEtMTMgIEtlaXRoIFNl aXR6ICA8a2VpdGhzQHJlZGhhdC5jb20+Ci0KLSAgICAgICAgICAgIGh0dHBzOi8vYnVnemlsbGEu cmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTU1MzA4NgotICAgICAgICAgICAgKiBlbGZyZWFk LmMgKGVsZl9zeW1maWxlX3NlZ21lbnRzKTogT21pdCAiTG9hZGFibGUgc2VjdGlvbiAuLi4KLSAg ICAgICAgICAgIG91dHNpZGUgb2YgRUxGIHNlZ21lbnRzIiB3YXJuaW5nIGZvciBkZWJ1Z2luCi0K LWRpZmYgLS1naXQgYS9nZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwotLS0tIGEvZ2RiL2Vs ZnJlYWQuYwotKysrIGIvZ2RiL2VsZnJlYWQuYwotQEAgLTE0Nyw3ICsxNDcsMTIgQEAgZWxmX3N5 bWZpbGVfc2VnbWVudHMgKGJmZCAqYWJmZCkKLSAJIFJlYWxWaWV3KSB1c2UgU0hUX05PQklUUyBm b3IgdW5pbml0aWFsaXplZCBkYXRhLiAgU2luY2UgaXQgaXMKLSAJIHVuaW5pdGlhbGl6ZWQsIGl0 IGRvZXNuJ3QgbmVlZCBhIHByb2dyYW0gaGVhZGVyLiAgU3VjaAotIAkgYmluYXJpZXMgYXJlIG5v dCByZWxvY2F0YWJsZS4gICovCi0tICAgICAgaWYgKGJmZF9zZWN0aW9uX3NpemUgKHNlY3QpID4g MCAmJiBqID09IG51bV9zZWdtZW50cwotKwotKyAgICAgIC8qIEV4Y2x1ZGUgZGVidWdpbmZvIGZp bGVzIGZyb20gdGhpcyB3YXJuaW5nLCB0b28sIHNpbmNlIHRob3NlCi0rCSBhcmUgb2Z0ZW4gbm90 IHN0cmljdGx5IGNvbXBsaWFudCB3aXRoIHRoZSBzdGFuZGFyZC4gU2VlLCBlLmcuLAotKwkgbGQv MjQ3MTcgZm9yIG1vcmUgZGlzY3Vzc2lvbi4gICovCi0rICAgICAgaWYgKCFpc19kZWJ1Z2luZm9f ZmlsZSAoYWJmZCkKLSsJICAmJiBiZmRfc2VjdGlvbl9zaXplIChzZWN0KSA+IDAgJiYgaiA9PSBu dW1fc2VnbWVudHMKLSAJICAmJiAoYmZkX3NlY3Rpb25fZmxhZ3MgKHNlY3QpICYgU0VDX0xPQUQp ICE9IDApCi0gCXdhcm5pbmcgKF8oIkxvYWRhYmxlIHNlY3Rpb24gXCIlc1wiIG91dHNpZGUgb2Yg RUxGIHNlZ21lbnRzIiksCi0gCQkgYmZkX3NlY3Rpb25fbmFtZSAoc2VjdCkpOwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MTkwNTk5Ni1maXgtb2ZmLWJ5LW9uZS1lcnJvci1pbi1hZGFfZm9sZF9uYW1l LnBhdGNoIGIvZ2RiLXJoYnoxOTA1OTk2LWZpeC1vZmYtYnktb25lLWVycm9yLWluLWFkYV9mb2xk X25hbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMWJjNTcuLjAwMDAw MDAKLS0tIGEvZ2RiLXJoYnoxOTA1OTk2LWZpeC1vZmYtYnktb25lLWVycm9yLWluLWFkYV9mb2xk X25hbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1Gcm9tIEZFRE9SQV9Q QVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVldHRuZXIgPGtl dmluYkByZWRoYXQuY29tPgotRGF0ZTogVHVlLCA4IERlYyAyMDIwIDE0OjA3OjQ1IC0wNzAwCi1T dWJqZWN0OiBnZGItcmhiejE5MDU5OTYtZml4LW9mZi1ieS1vbmUtZXJyb3ItaW4tYWRhX2ZvbGRf bmFtZS5wYXRjaAotCi07OyBGaXggb2ZmLWJ5LW9uZSBlcnJvciBpbiBhZGFfZm9sZF9uYW1lLnBh dGNoIChSSCBCWiAxOTA1OTk2KQotOzsgVXBzdHJlYW0gcGF0Y2ggcHJvcG9zYWw6IGh0dHBzOi8v c291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIwMjAtRGVjZW1iZXIvMTczOTM1 Lmh0bWwKLTs7ID1mZWRvcmF0ZXN0Ci0KLUZpeCBvZmYtYnktb25lIGVycm9yIGluIGFkYV9mb2xk X25hbWUKLQotSSdtIHNlZWluZyBhIGxpYnN0ZGMrKyBhc3NlcnRpb24gZmFpbHVyZSB3aGVuIHJ1 bm5pbmcgR0RCJ3MgIm1haW50IHNlbGZ0ZXN0IgotY29tbWFuZCB3aGVuIEdEQiBpcyBjb25maWd1 cmVkIHdpdGggdGhlIGZvbGxvd2luZyBDRkxBR1MgYW5kIENYWEZMQUdTIGFzCi1wYXJ0IG9mIHRo ZSBjb25maWd1cmUgbGluZToKLQotICBDRkxBR1M9Jy1EX0dMSUJDWFhfREVCVUcgLWczIC1PMCcg Q1hYRkxBR1M9Jy1EX0dMSUJDWFhfREVCVUcgLWczIC1PMCcKLQotVGhpcyBpcyB3aGF0IEkgc2Vl IHdoZW4gcnVubmluZyB0aGUgc2VsZiB0ZXN0czoKLQotKGdkYikgbWFpbnQgc2VsZnRlc3QKLVJ1 bm5pbmcgc2VsZnRlc3QgYWFyY2g2NC1hbmFseXplLXByb2xvZ3VlLgotUnVubmluZyBzZWxmdGVz dCBhYXJjaDY0LXByb2Nlc3MtcmVjb3JkLgotUnVubmluZyBzZWxmdGVzdCBhcm0tcmVjb3JkLgot UnVubmluZyBzZWxmdGVzdCBhcm1fYW5hbHl6ZV9wcm9sb2d1ZS4KLVJ1bm5pbmcgc2VsZnRlc3Qg YXJyYXlfdmlldy4KLVJ1bm5pbmcgc2VsZnRlc3QgY2hpbGRfcGF0aC4KLVJ1bm5pbmcgc2VsZnRl c3QgY2xpX3V0aWxzLgotUnVubmluZyBzZWxmdGVzdCBjb21tYW5kX3N0cnVjdHVyZV9pbnZhcmlh bnRzLgotUnVubmluZyBzZWxmdGVzdCBjb3B5X2JpdHdpc2UuCi1SdW5uaW5nIHNlbGZ0ZXN0IGNv cHlfaW50ZWdlcl90b19zaXplLgotUnVubmluZyBzZWxmdGVzdCBjcF9yZW1vdmVfcGFyYW1zLgot UnVubmluZyBzZWxmdGVzdCBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzLgotUnVubmluZyBzZWxmdGVz dCBkdzJfZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcuCi0vdXNyL2luY2x1ZGUvYysrLzExL3N0cmlu Z192aWV3OjIxMTogY29uc3RleHByIGNvbnN0IHZhbHVlX3R5cGUmIHN0ZDo6YmFzaWNfc3RyaW5n X3ZpZXc8X0NoYXJULCBfVHJhaXRzPjo6b3BlcmF0b3JbXShzdGQ6OmJhc2ljX3N0cmluZ192aWV3 PF9DaGFyVCwgX1RyYWl0cz46OnNpemVfdHlwZSkgY29uc3QgW3dpdGggX0NoYXJUID0gY2hhcjsg X1RyYWl0cyA9IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj47IHN0ZDo6YmFzaWNfc3RyaW5nX3ZpZXc8 X0NoYXJULCBfVHJhaXRzPjo6Y29uc3RfcmVmZXJlbmNlID0gY29uc3QgY2hhciY7IHN0ZDo6YmFz aWNfc3RyaW5nX3ZpZXc8X0NoYXJULCBfVHJhaXRzPjo6c2l6ZV90eXBlID0gbG9uZyB1bnNpZ25l ZCBpbnRdOiBBc3NlcnRpb24gJ19fcG9zIDwgdGhpcy0+X01fbGVuJyBmYWlsZWQuCi1BYm9ydGVk IChjb3JlIGR1bXBlZCkKLQotSGVyZSdzIGEgcGFydGlhbCBzdGFjayB0cmFjZToKLQotICAjMCAg MHgwMDAwN2ZmZmY2ZWY2MjYyIGluIHJhaXNlICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNgotICAj MSAgMHgwMDAwN2ZmZmY2ZWRmOGE0IGluIGFib3J0ICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNgot ICAjMiAgMHgwMDAwMDAwMDAwNDI0OWJmIGluIHN0ZDo6X19yZXBsYWNlbWVudF9hc3NlcnQgKAot ICAgICAgX19maWxlPTB4ZWY3NDgwICIvdXNyL2luY2x1ZGUvYysrLzExL3N0cmluZ192aWV3Iiwg X19saW5lPTIxMSwKLSAgICAgIF9fZnVuY3Rpb249MHhlZjczMjggImNvbnN0ZXhwciBjb25zdCB2 YWx1ZV90eXBlJiBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0cz46Om9wZXJh dG9yW10oc3RkOjpiYXNpY19zdHJpbmdfdmlldzxfQ2hhclQsIF9UcmFpdHM+OjpzaXplX3R5cGUp IGNvbnN0IFt3aXRoIF9DaGFyVCA9IGNoYXI7IF9UcmFpdHMgPSBzdGQ6OmNoYXJfdHJhaXRzPGNo YXI+OyBzdGQ6OmJhIi4uLiwKLSAgICAgIF9fY29uZGl0aW9uPTB4ZWY3MzExICJfX3BvcyA8IHRo aXMtPl9NX2xlbiIpCi0gICAgICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL3g4Nl82NC1yZWRoYXQt bGludXgvYml0cy9jKytjb25maWcuaDoyNjI0Ci0gICMzICAweDAwMDAwMDAwMDA0NTE3MzcgaW4g c3RkOjpiYXNpY19zdHJpbmdfdmlldzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID46Om9w ZXJhdG9yW10gKHRoaXM9MHg3ZmZmZmZmZmMyMDAsIF9fcG9zPTgpCi0gICAgICBhdCAvdXNyL2lu Y2x1ZGUvYysrLzExL3N0cmluZ192aWV3OjIxMQotICAjNCAgMHgwMDAwMDAwMDAwNDMyOWY1IGlu IGFkYV9mb2xkX25hbWUgKG5hbWU9ImZ1bmN0aW9uIikKLSAgICAgIGF0IC9pcm9ud29vZDEvc291 cmNld2FyZS1naXQvcmF3aGlkZS1tYXN0ZXIvYmxkLy4uLy4uL3dvcmt0cmVlLW1hc3Rlci9nZGIv YWRhLWxhbmcuYzo5ODgKLQotQW5kLCBsb29raW5nIGF0IGZyYW1lICM0Li4uCi0KLSh0b3AtZ2Ri KSB1cCA0Ci0gICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9yYXdoaWRlLW1hc3Rlci9i bGQvLi4vLi4vd29ya3RyZWUtbWFzdGVyL2dkYi9hZGEtbGFuZy5jOjk4OAotOTg4CQlmb2xkX2J1 ZmZlcltpXSA9IHRvbG93ZXIgKG5hbWVbaV0pOwotKHRvcC1nZGIpIHAgaQotJDEgPSA4Ci0odG9w LWdkYikgcCBuYW1lLnNpemUoKQotJDIgPSA4Ci0KLU15IHBhdGNoIGFkanVzdHMgdGhlIGNvbXBh cmlzb24gdG8gb25seSBjb3B5IG5hbWUuc2l6ZSgpIGNoYXJhY3RlcnMKLWZyb20gdGhlIHN0cmlu Zy4gIEkndmUgYWRkZWQgYSBzZXBhcmF0ZSBzdGF0ZW1lbnQgZm9yIE5VTCBjaGFyYWN0ZXIKLXRl cm1pbmF0aW9uIG9mIGZvbGRfYnVmZmVyW10uCi0KLWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGFkYS1s YW5nLmMgKGFkYV9mb2xkX25hbWUpOiBGaXggb2ZmLWJ5LW9uZSBlcnJvci4KLQotZGlmZiAtLWdp dCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKLS0tLSBhL2dkYi9hZGEtbGFuZy5j Ci0rKysgYi9nZGIvYWRhLWxhbmcuYwotQEAgLTEwMDYsOCArMTAwNiw5IEBAIGFkYV9mb2xkX25h bWUgKGdkYjo6c3RyaW5nX3ZpZXcgbmFtZSkKLSAgICAgewotICAgICAgIGludCBpOwotIAotLSAg ICAgIGZvciAoaSA9IDA7IGkgPD0gbGVuOyBpICs9IDEpCi0rICAgICAgZm9yIChpID0gMDsgaSA8 IGxlbjsgaSArPSAxKQotICAgICAgICAgZm9sZF9idWZmZXJbaV0gPSB0b2xvd2VyIChuYW1lW2ld KTsKLSsgICAgICBmb2xkX2J1ZmZlcltpXSA9ICdcMCc7Ci0gICAgIH0KLSAKLSAgIHJldHVybiBm b2xkX2J1ZmZlcjsKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5MDk5MDItZnJhbWVfaWRfcC1hc3Nl cnQtMS5wYXRjaCBiL2dkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0xLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGQ5OWE1Li4wMDAwMDAwCi0tLSBhL2dkYi1y aGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NTkzICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBQZWRybyBBbHZlcyA8cGVkcm9AcGFsdmVzLm5ldD4KLURhdGU6IEZyaSwgMzAgT2N0 IDIwMjAgMTg6MjY6MTUgKzAxMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9w LWFzc2VydC0xLnBhdGNoCi0KLTs7IEJhY2twb3J0IGZpeCBmb3IgZnJhbWVfaWRfcCBhc3NlcnRp b24gZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi0KLU1ha2Ugc2NvcGVkX3Jlc3RvcmVfY3VycmVu dF90aHJlYWQncyBjZHRvcnMgZXhjZXB0aW9uIGZyZWUgKFJGQykKLQotSWYgdGhlIHJlbW90ZSB0 YXJnZXQgY2xvc2VzIHdoaWxlIHdlJ3JlIHJlYWRpbmcgcmVnaXN0ZXJzL21lbW9yeSBmb3IKLXJl c3RvcmluZyB0aGUgc2VsZWN0ZWQgZnJhbWUgaW4gc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJl YWQncyBkdG9yLAotdGhlIGNvcnJlc3BvbmRpbmcgVEFSR0VUX0NMT1NFX0VSUk9SIGVycm9yIGlz IHN3YWxsb3dlZCBieSB0aGUKLXNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkJ3MgZHRvciwg YmVjYXVzZSBsZXR0aW5nIGV4Y2VwdGlvbnMKLWVzY2FwZSBmcm9tIGEgZHRvciBpcyBiYWQuICBJ dCBpc24ndCBncmVhdCB0byBsb3NlIHRoYXQgZXJyb3JzIGxpa2UKLXRoYXQsIHRob3VnaC4gIEkn dmUgYmVlbiB0aGlua2luZyBhYm91dCBob3cgdG8gYXZvaWQgaXQsIGFuZCBJIGNhbWUgdXAKLXdp dGggdGhpcyBwYXRjaC4KLQotVGhlIGlkZWEgaGVyZSBpcyB0byBtYWtlIHNjb3BlZF9yZXN0b3Jl X2N1cnJlbnRfdGhyZWFkJ3MgZHRvciBkbyBhcwotbGl0dGxlIGFzIHBvc3NpYmxlLCB0byBhdm9p ZCBhbnkgd29yayB0aGF0IG1pZ2h0IHRocm93IGluIHRoZSBmaXJzdAotcGxhY2UuICBBbmQgdG8g ZG8gdGhhdCwgaW5zdGVhZCBvZiBoYXZpbmcgdGhlIGR0b3IgY2FsbAotcmVzdG9yZV9zZWxlY3Rl ZF9mcmFtZSwgd2hpY2ggcmUtZmluZHMgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgZnJhbWUsCi1q dXN0IHJlY29yZCB0aGUgZnJhbWVfaWQvbGV2ZWwgb2YgdGhlIGRlc2lyZWQgc2VsZWN0ZWQgZnJh bWUsIGFuZCBoYXZlCi1nZXRfc2VsZWN0ZWRfZnJhbWUgZmluZCB0aGUgZnJhbWUgdGhlIG5leHQg dGltZSBpdCBpcyBjYWxsZWQuICBJbgotZWZmZWN0LCB0aGlzIGltcGxlbWVudHMgbW9zdCBvZiBD YWduZXkncyBzdWdnZXN0aW9uLCBoZXJlOgotCi0gIC8qIE9uIGRlbWFuZCwgY3JlYXRlIHRoZSBz ZWxlY3RlZCBmcmFtZSBhbmQgdGhlbiByZXR1cm4gaXQuICBJZiB0aGUKLSAgICAgc2VsZWN0ZWQg ZnJhbWUgY2FuIG5vdCBiZSBjcmVhdGVkLCB0aGlzIGZ1bmN0aW9uIHByaW50cyB0aGVuIHRocm93 cwotICAgICBhbiBlcnJvci4gIFdoZW4gTUVTU0FHRSBpcyBub24tTlVMTCwgdXNlIGl0IGZvciB0 aGUgZXJyb3IgbWVzc2FnZSwKLSAgICAgb3RoZXJ3aXplIHVzZSBhIGdlbmVyaWMgZXJyb3IgbWVz c2FnZS4gICovCi0gIC8qIEZJWE1FOiBjYWduZXkvMjAwMi0xMS0yODogQXQgcHJlc2VudCwgd2hl biB0aGVyZSBpcyBubyBzZWxlY3RlZAotICAgICBmcmFtZSwgdGhpcyBmdW5jdGlvbiBhbHdheXMg cmV0dXJucyB0aGUgY3VycmVudCAoaW5uZXIgbW9zdCkgZnJhbWUuCi0gICAgIEl0IHNob3VsZCBp bnN0ZWFkLCB3aGVuIGEgdGhyZWFkIGhhcyBwcmV2aW91c2x5IGhhZCBpdHMgZnJhbWUKLSAgICAg c2VsZWN0ZWQgKGJ1dCBub3QgcmVzdW1lZCkgYW5kIHRoZSBmcmFtZSBjYWNoZSBpbnZhbGlkYXRl ZCwgZmluZAotICAgICBhbmQgdGhlbiByZXR1cm4gdGhhdCB0aHJlYWQncyBwcmV2aW91c2x5IHNl bGVjdGVkIGZyYW1lLiAgKi8KLSAgZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZvICpnZXRfc2VsZWN0 ZWRfZnJhbWUgKGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwotCi1UaGUgb25seSB0aGluZyBtaXNzaW5n IHRvIGZ1bGx5IGltcGxlbWVudCB0aGF0IHdvdWxkIGJlIHRvIG1ha2UKLXJlaW5pdF9mcmFtZV9j YWNoZSBqdXN0IGNsZWFyIHNlbGVjdGVkX2ZyYW1lIGluc3RlYWQgb2YgY2FsbGluZwotc2VsZWN0 X2ZyYW1lKE5VTEwpLCBhbmQgdGhlIGNhbGwgc2VsZWN0X2ZyYW1lKE5VTEwpIGV4cGxpY2l0bHkg aW4gdGhlCi1wbGFjZXMgd2hlcmUgd2UgcmVhbGx5IHdhbnRlZCByZWluaXRfZnJhbWVfY2FjaGUg dG8gZ28gYmFjayB0byB0aGUKLWN1cnJlbnQgZnJhbWUgdG9vLiAgVGhhdCBjYW4gZG9uZSBzZXBh cmF0ZWx5LCB0aG91Z2gsIEknbSBub3QKLXByb3Bvc2luZyB0byBkbyB0aGF0IGluIHRoaXMgcGF0 Y2guCi0KLU5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlbmFtZXMgcmVzdG9yZV9zZWxlY3RlZF9mcmFt ZSB0bwotbG9va3VwX3NlbGVjdGVkX2ZyYW1lLCBhbmQgYWRkcyBhIG5ldyByZXN0b3JlX3NlbGVj dGVkX2ZyYW1lIGZ1bmN0aW9uCi10aGF0IGRvZXNuJ3QgdGhyb3csIHRvIGJlIHBhaXJlZCB3aXRo IHRoZSBhbHNvLW5ldyBzYXZlX3NlbGVjdGVkX2ZyYW1lCi1mdW5jdGlvbi4KLQotVGhlcmUncyBh IHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUgZnVuY3Rpb24gaW4gaW5mcnVuLmMgdGhhdCBJIHRoaW5r IGNhbgotYmUgcmVwbGFjZWQgYnkgdGhlIG5ldyBvbmUgaW4gZnJhbWUuYy4KLQotQWxzbyBkb25l IGluIHRoaXMgcGF0Y2ggaXMgbWFrZSB0aGUgZ2V0X3NlbGVjdGVkX2ZyYW1lJ3MgcGFyYW1ldGVy IGJlCi1vcHRpb25hbCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHBhc3MgZG93biBudWxscHRy IGV4cGxpY2l0bHkgYWxsCi1vdmVyIHRoZSBwbGFjZS4KLQotbG9va3VwX3NlbGVjdGVkX2ZyYW1l IHNob3VsZCByZWFsbHkgbW92ZSBmcm9tIHRocmVhZC5jIHRvIGZyYW1lLmMsIGJ1dAotSSBkaWRu J3QgZG8gdGhhdCBoZXJlLCBqdXN0IHRvIGF2b2lkIGNodXJuIGluIHRoZSBwYXRjaCB3aGlsZSBp dAotY29sbGVjdHMgY29tbWVudHMuICBJIGRpZCBtYWtlIGl0IGV4dGVybiBhbmQgZGVjbGFyZWQg aXQgaW4gZnJhbWUuaAotYWxyZWFkeSwgcHJlcGFyaW5nIGZvciB0aGUgbW92ZS4gIEkgd2lsbCBk byB0aGUgbW92ZSBhcyBhIGZvbGxvdyB1cAotcGF0Y2ggaWYgcGVvcGxlIGFncmVlIHdpdGggdGhp cyBhcHByb2FjaC4KLQotSW5jaWRlbnRhbGx5LCB0aGlzIHBhdGNoIGFsb25lIHdvdWxkIGZpeCB0 aGUgY3Jhc2hlcyBmaXhlZCBieSB0aGUKLXByZXZpb3VzIHBhdGNoZXMgaW4gdGhlIHNlcmllcywg YmVjYXVzZSB3aXRoIHRoaXMsCi1zY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZCdzIGNvbnN0 cnVjdG9yIGRvZXNuJ3QgdGhyb3cgZWl0aGVyLgotCi1nZGIvQ2hhbmdlTG9nOgotCi0JKiBibG9j a2ZyYW1lLmMgKGJsb2NrX2lubmVybW9zdF9mcmFtZSk6IFVzZSBnZXRfc2VsZWN0ZWRfZnJhbWUu Ci0JKiBmcmFtZS5jCi0JKHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lOjpzY29wZWRfcmVz dG9yZV9zZWxlY3RlZF9mcmFtZSk6Ci0JVXNlIHNhdmVfc2VsZWN0ZWRfZnJhbWUuICBTYXZlIGxh bmd1YWdlIGFzIHdlbGwuCi0JKHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lOjp+c2NvcGVk X3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpOgotCVVzZSByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lLCBh bmQgcmVzdG9yZSBsYW5ndWFnZSBhcyB3ZWxsLgotCShzZWxlY3RlZF9mcmFtZV9pZCwgc2VsZWN0 ZWRfZnJhbWVfbGV2ZWwpOiBOZXcuCi0JKHNlbGVjdGVkX2ZyYW1lKTogVXBkYXRlIGNvbW1lbnRz LgotCShzYXZlX3NlbGVjdGVkX2ZyYW1lLCByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lKTogTmV3Lgot CShnZXRfc2VsZWN0ZWRfZnJhbWUpOiBVc2UgbG9va3VwX3NlbGVjdGVkX2ZyYW1lLgotCShnZXRf c2VsZWN0ZWRfZnJhbWVfaWZfc2V0KTogRGVsZXRlLgotCShzZWxlY3RfZnJhbWUpOiBSZWNvcmQg c2VsZWN0ZWRfZnJhbWVfbGV2ZWwgYW5kIHNlbGVjdGVkX2ZyYW1lX2lkLgotCSogZnJhbWUuaCAo c2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpIDxtX2xldmVsLCBtX2xhbmc+OiBOZXcKLQlm aWVsZHMuCi0JKGdldF9zZWxlY3RlZF9mcmFtZSk6IE1ha2UgJ21lc3NhZ2UnIHBhcmFtZXRlciBv cHRpb25hbC4KLQkoZ2V0X3NlbGVjdGVkX2ZyYW1lX2lmX3NldCk6IERlbGV0ZSBkZWNsYXJhdGlv bi4KLQkoc2VsZWN0X2ZyYW1lKTogVXBkYXRlIGNvbW1lbnRzLgotCShzYXZlX3NlbGVjdGVkX2Zy YW1lLCByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lKQotCShsb29rdXBfc2VsZWN0ZWRfZnJhbWUpOiBE ZWNsYXJlLgotCSogZ2RidGhyZWFkLmggKHNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkKSA8 bV9sYW5nPjogTmV3IGZpZWxkLgotCSogaW5mcnVuLmMgKHN0cnVjdCBpbmZjYWxsX2NvbnRyb2xf c3RhdGUpIDxzZWxlY3RlZF9mcmFtZV9sZXZlbD46Ci0JTmV3IGZpZWxkLgotCShzYXZlX2luZmNh bGxfY29udHJvbF9zdGF0ZSk6IFVzZSBzYXZlX3NlbGVjdGVkX2ZyYW1lLgotCShyZXN0b3JlX3Nl bGVjdGVkX2ZyYW1lKTogRGVsZXRlLgotCShyZXN0b3JlX2luZmNhbGxfY29udHJvbF9zdGF0ZSk6 IFVzZSByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lLgotCSogc3RhY2suYyAoc2VsZWN0X2ZyYW1lX2Nv bW1hbmRfY29yZSwgZnJhbWVfY29tbWFuZF9jb3JlKTogVXNlCi0JZ2V0X3NlbGVjdGVkX2ZyYW1l LgotCSogdGhyZWFkLmMgKHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpOiBSZW5hbWUgdG8gLi4uCi0J KGxvb2t1cF9zZWxlY3RlZF9mcmFtZSk6IC4uLiB0aGlzIGFuZCBtYWtlIGV4dGVybi4gIFNlbGVj dCB0aGUKLQljdXJyZW50IGZyYW1lIGlmIHRoZSBmcmFtZSBsZXZlbCBpcyAtMS4KLQkoc2NvcGVk X3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6OnJlc3RvcmUpOiBBbHNvIHJlc3RvcmUgdGhlCi0JbGFu Z3VhZ2UuCi0JKHNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkOjp+c2NvcGVkX3Jlc3RvcmVf Y3VycmVudF90aHJlYWQpOgotCURvbid0IHRyeS9jYXRjaC4KLQkoc2NvcGVkX3Jlc3RvcmVfY3Vy cmVudF90aHJlYWQ6OnNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkKToKLQlTYXZlIHRoZSBs YW5ndWFnZSBhcyB3ZWxsLiAgVXNlIHNhdmVfc2VsZWN0ZWRfZnJhbWUuCi0KLUNoYW5nZS1JZDog STczZmQxY2ZjNDBkODUxM2MyOGU1NTk2MzgzYjdlY2Q4YmNmZTcwMGYKLQotZGlmZiAtLWdpdCBh L2dkYi9ibG9ja2ZyYW1lLmMgYi9nZGIvYmxvY2tmcmFtZS5jCi0tLS0gYS9nZGIvYmxvY2tmcmFt ZS5jCi0rKysgYi9nZGIvYmxvY2tmcmFtZS5jCi1AQCAtNDY0LDE0ICs0NjQsMTAgQEAgZmluZF9n bnVfaWZ1bmNfdGFyZ2V0X3R5cGUgKENPUkVfQUREUiByZXNvbHZlcl9mdW5hZGRyKQotIHN0cnVj dCBmcmFtZV9pbmZvICoKLSBibG9ja19pbm5lcm1vc3RfZnJhbWUgKGNvbnN0IHN0cnVjdCBibG9j ayAqYmxvY2spCi0gewotLSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwotLQotICAgaWYgKGJs b2NrID09IE5VTEwpCi0gICAgIHJldHVybiBOVUxMOwotIAotLSAgZnJhbWUgPSBnZXRfc2VsZWN0 ZWRfZnJhbWVfaWZfc2V0ICgpOwotLSAgaWYgKGZyYW1lID09IE5VTEwpCi0tICAgIGZyYW1lID0g Z2V0X2N1cnJlbnRfZnJhbWUgKCk7Ci0rICBmcmFtZV9pbmZvICpmcmFtZSA9IGdldF9zZWxlY3Rl ZF9mcmFtZSAoKTsKLSAgIHdoaWxlIChmcmFtZSAhPSBOVUxMKQotICAgICB7Ci0gICAgICAgY29u c3Qgc3RydWN0IGJsb2NrICpmcmFtZV9ibG9jayA9IGdldF9mcmFtZV9ibG9jayAoZnJhbWUsIE5V TEwpOwotZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKLS0tLSBhL2dkYi9m cmFtZS5jCi0rKysgYi9nZGIvZnJhbWUuYwotQEAgLTMxNywxNyArMzE3LDE1IEBAIGZyYW1lX3N0 YXNoX2ludmFsaWRhdGUgKHZvaWQpCi0gLyogU2VlIGZyYW1lLmggICovCi0gc2NvcGVkX3Jlc3Rv cmVfc2VsZWN0ZWRfZnJhbWU6OnNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lICgpCi0gewot LSAgbV9maWQgPSBnZXRfZnJhbWVfaWQgKGdldF9zZWxlY3RlZF9mcmFtZSAoTlVMTCkpOwotKyAg bV9sYW5nID0gY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2U7Ci0rICBzYXZlX3NlbGVjdGVk X2ZyYW1lICgmbV9maWQsICZtX2xldmVsKTsKLSB9Ci0gCi0gLyogU2VlIGZyYW1lLmggICovCi0g c2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWU6On5zY29wZWRfcmVzdG9yZV9zZWxlY3RlZF9m cmFtZSAoKQotIHsKLS0gIGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAobV9m aWQpOwotLSAgaWYgKGZyYW1lID09IE5VTEwpCi0tICAgIHdhcm5pbmcgKF8oIlVuYWJsZSB0byBy ZXN0b3JlIHByZXZpb3VzbHkgc2VsZWN0ZWQgZnJhbWUuIikpOwotLSAgZWxzZQotLSAgICBzZWxl Y3RfZnJhbWUgKGZyYW1lKTsKLSsgIHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUgKG1fZmlkLCBtX2xl dmVsKTsKLSsgIHNldF9sYW5ndWFnZSAobV9sYW5nKTsKLSB9Ci0gCi0gLyogRmxhZyB0byBjb250 cm9sIGRlYnVnZ2luZy4gICovCi1AQCAtMTY4NSwxMCArMTY4Myw2MyBAQCBnZXRfY3VycmVudF9m cmFtZSAodm9pZCkKLSB9Ci0gCi0gLyogVGhlICJzZWxlY3RlZCIgc3RhY2sgZnJhbWUgaXMgdXNl ZCBieSBkZWZhdWx0IGZvciBsb2NhbCBhbmQgYXJnCi0tICAgYWNjZXNzLiAgTWF5IGJlIHplcm8s IGZvciBubyBzZWxlY3RlZCBmcmFtZS4gICovCi0tCi0rICAgYWNjZXNzLgotKwotKyAgIFRoZSAi c2luZ2xlIHNvdXJjZSBvZiB0cnV0aCIgZm9yIHRoZSBzZWxlY3RlZCBmcmFtZSBpcyB0aGUKLSsg ICBTRUxFQ1RFRF9GUkFNRV9JRCAvIFNFTEVDVEVEX0ZSQU1FX0xFVkVMIHBhaXIuCi0rCi0rICAg RnJhbWUgSURzIGNhbiBiZSBzYXZlZC9yZXN0b3JlZCBhY3Jvc3MgcmVpbml0aWFsaXppbmcgdGhl IGZyYW1lCi0rICAgY2FjaGUsIHdoaWxlIGZyYW1lX2luZm8gcG9pbnRlcnMgY2FuJ3QgKGZyYW1l X2luZm8gb2JqZWN0cyBhcmUKLSsgICBpbnZhbGlkYXRlZCkuICBJZiB3ZSBrbm93IHRoZSBjb3Jy ZXNwb25kaW5nIGZyYW1lX2luZm8gb2JqZWN0LCBpdAotKyAgIGlzIGNhY2hlZCBpbiBTRUxFQ1RF RF9GUkFNRS4KLSsKLSsgICBJZiBTRUxFQ1RFRF9GUkFNRV9JRCAvIFNFTEVDVEVEX0ZSQU1FX0xF VkVMIGFyZSBudWxsX2ZyYW1lX2lkIC8gLTEsCi0rICAgYW5kIHRoZSB0YXJnZXQgaGFzIHN0YWNr IGFuZCBpcyBzdG9wcGVkLCB0aGUgc2VsZWN0ZWQgZnJhbWUgaXMgdGhlCi0rICAgY3VycmVudCAo aW5uZXJtb3N0KSBmcmFtZS4gIFRoaXMgbWVhbnMgdGhhdCBTRUxFQ1RFRF9GUkFNRV9MRVZFTCBp cwotKyAgIG5ldmVyIDAgYW5kIFNFTEVDVEVEX0ZSQU1FX0lEIGlzIG5ldmVyIHRoZSBJRCBvZiB0 aGUgaW5uZXJtb3N0Ci0rICAgZnJhbWUuCi0rCi0rICAgSWYgU0VMRUNURURfRlJBTUVfSUQgLyBT RUxFQ1RFRF9GUkFNRV9MRVZFTCBhcmUgbnVsbF9mcmFtZV9pZCAvIC0xLAotKyAgIGFuZCB0aGUg dGFyZ2V0IGhhcyBubyBzdGFjayBvciBpcyBleGVjdXRpbmcsIHRoZW4gdGhlcmUncyBubwotKyAg IHNlbGVjdGVkIGZyYW1lLiAgKi8KLStzdGF0aWMgZnJhbWVfaWQgc2VsZWN0ZWRfZnJhbWVfaWQg PSBudWxsX2ZyYW1lX2lkOwotK3N0YXRpYyBpbnQgc2VsZWN0ZWRfZnJhbWVfbGV2ZWwgPSAtMTsK LSsKLSsvKiBUaGUgY2FjaGVkIGZyYW1lX2luZm8gb2JqZWN0IHBvaW50aW5nIHRvIHRoZSBzZWxl Y3RlZCBmcmFtZS4KLSsgICBMb29rZWQgdXAgb24gZGVtYW5kIGJ5IGdldF9zZWxlY3RlZF9mcmFt ZS4gICovCi0gc3RhdGljIHN0cnVjdCBmcmFtZV9pbmZvICpzZWxlY3RlZF9mcmFtZTsKLSAKLSsv KiBTZWUgZnJhbWUuaC4gICovCi0rCi0rdm9pZAotK3NhdmVfc2VsZWN0ZWRfZnJhbWUgKGZyYW1l X2lkICpmcmFtZV9pZCwgaW50ICpmcmFtZV9sZXZlbCkKLSsgIG5vZXhjZXB0Ci0rewotKyAgKmZy YW1lX2lkID0gc2VsZWN0ZWRfZnJhbWVfaWQ7Ci0rICAqZnJhbWVfbGV2ZWwgPSBzZWxlY3RlZF9m cmFtZV9sZXZlbDsKLSt9Ci0rCi0rLyogU2VlIGZyYW1lLmguICAqLwotKwotK3ZvaWQKLStyZXN0 b3JlX3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCBmcmFtZV9pZCwgaW50IGZyYW1lX2xldmVsKQot KyAgbm9leGNlcHQKLSt7Ci0rICAvKiBzYXZlX3NlbGVjdGVkX2ZyYW1lIG5ldmVyIHJldHVybnMg bGV2ZWwgPT0gMCwgc28gd2Ugc2hvdWxkbid0IHNlZQotKyAgICAgaXQgaGVyZSBlaXRoZXIuICAq LwotKyAgZ2RiX2Fzc2VydCAoZnJhbWVfbGV2ZWwgIT0gMCk7Ci0rCi0rICAvKiBGUkFNRV9JRCBj YW4gYmUgbnVsbF9mcmFtZV9pZCBvbmx5IElGRiBmcmFtZV9sZXZlbCBpcyAtMS4gICovCi0rICBn ZGJfYXNzZXJ0ICgoZnJhbWVfbGV2ZWwgPT0gLTEgJiYgIWZyYW1lX2lkX3AgKGZyYW1lX2lkKSkK LSsJICAgICAgfHwgKGZyYW1lX2xldmVsICE9IC0xICYmIGZyYW1lX2lkX3AgKGZyYW1lX2lkKSkp OwotKwotKyAgc2VsZWN0ZWRfZnJhbWVfaWQgPSBmcmFtZV9pZDsKLSsgIHNlbGVjdGVkX2ZyYW1l X2xldmVsID0gZnJhbWVfbGV2ZWw7Ci0rCi0rICAvKiBXaWxsIGJlIGxvb2tlZCB1cCBsYXRlciBi eSBnZXRfc2VsZWN0ZWRfZnJhbWUuICAqLwotKyAgc2VsZWN0ZWRfZnJhbWUgPSBudWxscHRyOwot K30KLSsKLSBib29sCi0gaGFzX3N0YWNrX2ZyYW1lcyAoKQotIHsKLUBAIC0xNzE1LDkgKzE3NjYs NyBAQCBoYXNfc3RhY2tfZnJhbWVzICgpCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tLyogUmV0 dXJuIHRoZSBzZWxlY3RlZCBmcmFtZS4gIEFsd2F5cyBub24tTlVMTCAodW5sZXNzIHRoZXJlIGlz bid0IGFuCi0tICAgaW5mZXJpb3Igc3VmZmljaWVudCBmb3IgY3JlYXRpbmcgYSBmcmFtZSkgaW4g d2hpY2ggY2FzZSBhbiBlcnJvciBpcwotLSAgIHRocm93bi4gICovCi0rLyogU2VlIGZyYW1lLmgu ICAqLwotIAotIHN0cnVjdCBmcmFtZV9pbmZvICoKLSBnZXRfc2VsZWN0ZWRfZnJhbWUgKGNvbnN0 IGNoYXIgKm1lc3NhZ2UpCi1AQCAtMTcyNiwyNCArMTc3NSwxNCBAQCBnZXRfc2VsZWN0ZWRfZnJh bWUgKGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gICAgIHsKLSAgICAgICBpZiAobWVzc2FnZSAhPSBO VUxMICYmICFoYXNfc3RhY2tfZnJhbWVzICgpKQotIAllcnJvciAoKCIlcyIpLCBtZXNzYWdlKTsK LS0gICAgICAvKiBIZXkhICBEb24ndCB0cnVzdCB0aGlzLiAgSXQgc2hvdWxkIHJlYWxseSBiZSBy ZS1maW5kaW5nIHRoZQotLQkgbGFzdCBzZWxlY3RlZCBmcmFtZSBvZiB0aGUgY3VycmVudGx5IHNl bGVjdGVkIHRocmVhZC4gIFRoaXMsCi0tCSB0aG91Z2gsIGlzIGJldHRlciB0aGFuIG5vdGhpbmcu ICAqLwotLSAgICAgIHNlbGVjdF9mcmFtZSAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkpOwotKwotKyAg ICAgIGxvb2t1cF9zZWxlY3RlZF9mcmFtZSAoc2VsZWN0ZWRfZnJhbWVfaWQsIHNlbGVjdGVkX2Zy YW1lX2xldmVsKTsKLSAgICAgfQotICAgLyogVGhlcmUgaXMgYWx3YXlzIGEgZnJhbWUuICAqLwot ICAgZ2RiX2Fzc2VydCAoc2VsZWN0ZWRfZnJhbWUgIT0gTlVMTCk7Ci0gICByZXR1cm4gc2VsZWN0 ZWRfZnJhbWU7Ci0gfQotIAotLS8qIElmIHRoZXJlIGlzIGEgc2VsZWN0ZWQgZnJhbWUsIHJldHVy biBpdC4gIE90aGVyd2lzZSwgcmV0dXJuIE5VTEwuICAqLwotLQotLXN0cnVjdCBmcmFtZV9pbmZv ICoKLS1nZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0ICh2b2lkKQotLXsKLS0gIHJldHVybiBzZWxl Y3RlZF9mcmFtZTsKLS19Ci0tCi0gLyogVGhpcyBpcyBhIHZhcmlhbnQgb2YgZ2V0X3NlbGVjdGVk X2ZyYW1lKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB3aGVuCi0gICAgdGhlIGluZmVyaW9yIGRvZXMg bm90IGhhdmUgYSBmcmFtZTsgaW4gdGhhdCBjYXNlIGl0IHdpbGwgcmV0dXJuCi0gICAgTlVMTCBp bnN0ZWFkIG9mIGNhbGxpbmcgZXJyb3IoKS4gICovCi1AQCAtMTc1NiwxMiArMTc5NSw0MiBAQCBk ZXByZWNhdGVkX3NhZmVfZ2V0X3NlbGVjdGVkX2ZyYW1lICh2b2lkKQotICAgcmV0dXJuIGdldF9z ZWxlY3RlZF9mcmFtZSAoTlVMTCk7Ci0gfQotIAotLS8qIFNlbGVjdCBmcmFtZSBGSSAob3IgTlVM TCAtIHRvIGludmFsaWRhdGUgdGhlIGN1cnJlbnQgZnJhbWUpLiAgKi8KLSsvKiBTZWxlY3QgZnJh bWUgRkkgKG9yIE5VTEwgLSB0byBpbnZhbGlkYXRlIHRoZSBzZWxlY3RlZCBmcmFtZSkuICAqLwot IAotIHZvaWQKLSBzZWxlY3RfZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICpmaSkKLSB7Ci0gICBz ZWxlY3RlZF9mcmFtZSA9IGZpOwotKyAgc2VsZWN0ZWRfZnJhbWVfbGV2ZWwgPSBmcmFtZV9yZWxh dGl2ZV9sZXZlbCAoZmkpOwotKyAgaWYgKHNlbGVjdGVkX2ZyYW1lX2xldmVsID09IDApCi0rICAg IHsKLSsgICAgICAvKiBUcmVhdCB0aGUgY3VycmVudCBmcmFtZSBlc3BlY2lhbGx5IC0tIHdlIHdh bnQgdG8gYWx3YXlzCi0rCSBzYXZlL3Jlc3RvcmUgaXQgd2l0aG91dCB3YXJuaW5nLCBldmVuIGlm IHRoZSBmcmFtZSBJRCBjaGFuZ2VzCi0rCSAoc2VlIGxvb2t1cF9zZWxlY3RlZF9mcmFtZSkuICBF LmcuOgotKwotKwkgIC8vIFRoZSBjdXJyZW50IGZyYW1lIGlzIHNlbGVjdGVkLCB0aGUgdGFyZ2V0 IGhhZCBqdXN0IHN0b3BwZWQuCi0rCSAgewotKwkgICAgc2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRf ZnJhbWUgcmVzdG9yZV9mcmFtZTsKLSsJICAgIHNvbWVfb3BlcmF0aW9uX3RoYXRfY2hhbmdlc190 aGVfc3RhY2sgKCk7Ci0rCSAgfQotKwkgIC8vIHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1l J3MgZHRvciBydW5zLCBidXQgdGhlCi0rCSAgLy8gb3JpZ2luYWwgZnJhbWVfaWQgY2FuJ3QgYmUg Zm91bmQuICBObyBtYXR0ZXIgd2hldGhlciBpdAotKwkgIC8vIGlzIGZvdW5kIG9yIG5vdCwgd2Ug c3RpbGwgZW5kIHVwIHdpdGggdGhlIG5vdy1jdXJyZW50Ci0rCSAgLy8gZnJhbWUgc2VsZWN0ZWQu ICBXYXJuaW5nIGluIGxvb2t1cF9zZWxlY3RlZF9mcmFtZSBpbiB0aGlzCi0rCSAgLy8gY2FzZSBz ZWVtcyBwb2ludGxlc3MuCi0rCi0rCSBBbHNvIGdldF9mcmFtZV9pZCBtYXkgYWNjZXNzIHRoZSB0 YXJnZXQncyByZWdpc3RlcnMvbWVtb3J5LAotKwkgYW5kIHRodXMgc2tpcHBpbmcgZ2V0X2ZyYW1l X2lkIG9wdGltaXplcyB0aGUgY29tbW9uIGNhc2UuCi0rCi0rCSBTYXZpbmcgdGhlIHNlbGVjdGVk IGZyYW1lIHRoaXMgd2F5IG1ha2VzIGdldF9zZWxlY3RlZF9mcmFtZQotKwkgYW5kIHJlc3RvcmVf Y3VycmVudF9mcmFtZSByZXR1cm4vcmUtc2VsZWN0IHdoYXRldmVyIGZyYW1lIGlzCi0rCSB0aGUg aW5uZXJtb3N0IChjdXJyZW50KSB0aGVuLiAgKi8KLSsgICAgICBzZWxlY3RlZF9mcmFtZV9sZXZl bCA9IC0xOwotKyAgICAgIHNlbGVjdGVkX2ZyYW1lX2lkID0gbnVsbF9mcmFtZV9pZDsKLSsgICAg fQotKyAgZWxzZQotKyAgICBzZWxlY3RlZF9mcmFtZV9pZCA9IGdldF9mcmFtZV9pZCAoZmkpOwot KwotICAgLyogTk9URTogY2FnbmV5LzIwMDItMDUtMDQ6IEZJIGNhbiBiZSBOVUxMLiAgVGhpcyBv Y2N1cnMgd2hlbiB0aGUKLSAgICAgIGZyYW1lIGlzIGJlaW5nIGludmFsaWRhdGVkLiAgKi8KLSAK LWRpZmYgLS1naXQgYS9nZGIvZnJhbWUuaCBiL2dkYi9mcmFtZS5oCi0tLS0gYS9nZGIvZnJhbWUu aAotKysrIGIvZ2RiL2ZyYW1lLmgKLUBAIC0xODYsOCArMTg2LDE0IEBAIGNsYXNzIHNjb3BlZF9y ZXN0b3JlX3NlbGVjdGVkX2ZyYW1lCi0gCi0gcHJpdmF0ZToKLSAKLS0gIC8qIFRoZSBJRCBvZiB0 aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZS4gICovCi0rICAvKiBUaGUgSUQgYW5kIGxldmVs IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiAgKi8KLSAgIHN0cnVjdCBmcmFtZV9p ZCBtX2ZpZDsKLSsgIGludCBtX2xldmVsOwotKwotKyAgLyogU2F2ZS9yZXN0b3JlIHRoZSBsYW5n dWFnZSBhcyB3ZWxsLCBiZWNhdXNlIHNlbGVjdGluZyBhIGZyYW1lCi0rICAgICBjaGFuZ2VzIHRo ZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBmcmFtZSdzIGxhbmd1YWdlIGlmICJzZXQKLSsgICAg IGxhbmd1YWdlIGF1dG8iLiAgKi8KLSsgIGVudW0gbGFuZ3VhZ2UgbV9sYW5nOwotIH07Ci0gCi0g LyogTWV0aG9kcyBmb3IgY29uc3RydWN0aW5nIGFuZCBjb21wYXJpbmcgRnJhbWUgSURzLiAgKi8K LUBAIC0zMTYsMjQgKzMyMiw0OSBAQCBleHRlcm4gYm9vbCBoYXNfc3RhY2tfZnJhbWVzICgpOwot ICAgIG1vZGlmaWVzIHRoZSB0YXJnZXQgaW52YWxpZGF0aW5nIHRoZSBmcmFtZSBjYWNoZSkuICAq LwotIGV4dGVybiB2b2lkIHJlaW5pdF9mcmFtZV9jYWNoZSAodm9pZCk7Ci0gCi0tLyogT24gZGVt YW5kLCBjcmVhdGUgdGhlIHNlbGVjdGVkIGZyYW1lIGFuZCB0aGVuIHJldHVybiBpdC4gIElmIHRo ZQotLSAgIHNlbGVjdGVkIGZyYW1lIGNhbiBub3QgYmUgY3JlYXRlZCwgdGhpcyBmdW5jdGlvbiBw cmludHMgdGhlbiB0aHJvd3MKLS0gICBhbiBlcnJvci4gIFdoZW4gTUVTU0FHRSBpcyBub24tTlVM TCwgdXNlIGl0IGZvciB0aGUgZXJyb3IgbWVzc2FnZSwKLSsvKiBSZXR1cm4gdGhlIHNlbGVjdGVk IGZyYW1lLiAgQWx3YXlzIHJldHVybnMgbm9uLU5VTEwuICBJZiB0aGVyZQotKyAgIGlzbid0IGFu IGluZmVyaW9yIHN1ZmZpY2llbnQgZm9yIGNyZWF0aW5nIGEgZnJhbWUsIGFuIGVycm9yIGlzCi0r ICAgdGhyb3duLiAgV2hlbiBNRVNTQUdFIGlzIG5vbi1OVUxMLCB1c2UgaXQgZm9yIHRoZSBlcnJv ciBtZXNzYWdlLAotICAgIG90aGVyd2lzZSB1c2UgYSBnZW5lcmljIGVycm9yIG1lc3NhZ2UuICAq LwotIC8qIEZJWE1FOiBjYWduZXkvMjAwMi0xMS0yODogQXQgcHJlc2VudCwgd2hlbiB0aGVyZSBp cyBubyBzZWxlY3RlZAotICAgIGZyYW1lLCB0aGlzIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIHRo ZSBjdXJyZW50IChpbm5lciBtb3N0KSBmcmFtZS4KLSAgICBJdCBzaG91bGQgaW5zdGVhZCwgd2hl biBhIHRocmVhZCBoYXMgcHJldmlvdXNseSBoYWQgaXRzIGZyYW1lCi0gICAgc2VsZWN0ZWQgKGJ1 dCBub3QgcmVzdW1lZCkgYW5kIHRoZSBmcmFtZSBjYWNoZSBpbnZhbGlkYXRlZCwgZmluZAotICAg IGFuZCB0aGVuIHJldHVybiB0aGF0IHRocmVhZCdzIHByZXZpb3VzbHkgc2VsZWN0ZWQgZnJhbWUu ICAqLwotLWV4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqZ2V0X3NlbGVjdGVkX2ZyYW1lIChjb25z dCBjaGFyICptZXNzYWdlKTsKLS0KLS0vKiBJZiB0aGVyZSBpcyBhIHNlbGVjdGVkIGZyYW1lLCBy ZXR1cm4gaXQuICBPdGhlcndpc2UsIHJldHVybiBOVUxMLiAgKi8KLS1leHRlcm4gc3RydWN0IGZy YW1lX2luZm8gKmdldF9zZWxlY3RlZF9mcmFtZV9pZl9zZXQgKHZvaWQpOwotK2V4dGVybiBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZ2V0X3NlbGVjdGVkX2ZyYW1lIChjb25zdCBjaGFyICptZXNzYWdlID0g bnVsbHB0cik7Ci0gCi0tLyogU2VsZWN0IGEgc3BlY2lmaWMgZnJhbWUuICBOVUxMLCBhcHBhcmVu dGx5IGltcGxpZXMgcmUtc2VsZWN0IHRoZQotLSAgIGlubmVyIG1vc3QgZnJhbWUuICAqLwotKy8q IFNlbGVjdCBhIHNwZWNpZmljIGZyYW1lLiAgTlVMTCBpbXBsaWVzIHJlLXNlbGVjdCB0aGUgaW5u ZXIgbW9zdAotKyAgIGZyYW1lLiAgKi8KLSBleHRlcm4gdm9pZCBzZWxlY3RfZnJhbWUgKHN0cnVj dCBmcmFtZV9pbmZvICopOwotIAotKy8qIFNhdmUgdGhlIGZyYW1lIElEIGFuZCBmcmFtZSBsZXZl bCBvZiB0aGUgc2VsZWN0ZWQgZnJhbWUgaW4gRlJBTUVfSUQKLSsgICBhbmQgRlJBTUVfTEVWRUws IHRvIGJlIHJlc3RvcmVkIGxhdGVyIHdpdGggcmVzdG9yZV9zZWxlY3RlZF9mcmFtZS4KLSsKLSsg ICBUaGlzIGlzIHByZWZlcnJlZCBvdmVyIGdldHRpbmcgdGhlIHNhbWUgaW5mbyBvdXQgb2YKLSsg ICBnZXRfc2VsZWN0ZWRfZnJhbWUgZGlyZWN0bHkgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGRvZXMg bm90IGNyZWF0ZQotKyAgIHRoZSBzZWxlY3RlZC1mcmFtZSdzIGZyYW1lX2luZm8gb2JqZWN0IGlm IGl0IGhhc24ndCBiZWVuIGNyZWF0ZWQKLSsgICB5ZXQsIGFuZCB0aHVzIGlzIG1vcmUgZWZmaWNp ZW50IGFuZCBkb2Vzbid0IHRocm93LiAgKi8KLStleHRlcm4gdm9pZCBzYXZlX3NlbGVjdGVkX2Zy YW1lIChmcmFtZV9pZCAqZnJhbWVfaWQsIGludCAqZnJhbWVfbGV2ZWwpCi0rICBub2V4Y2VwdDsK LSsKLSsvKiBSZXN0b3JlIHNlbGVjdGVkIGZyYW1lIGFzIHNhdmVkIHdpdGggc2F2ZV9zZWxlY3Rl ZF9mcmFtZS4KLSsKLSsgICBEb2VzIG5vdCB0cnkgdG8gZmluZCB0aGUgY29ycmVzcG9uZGluZyBm cmFtZV9pbmZvIG9iamVjdC4gIEluc3RlYWQKLSsgICB0aGUgbmV4dCBjYWxsIHRvIGdldF9zZWxl Y3RlZF9mcmFtZSB3aWxsIGxvb2sgaXQgdXAgYW5kIGNhY2hlIHRoZQotKyAgIHJlc3VsdC4KLSsK LSsgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHRocm93LiAgSXQgaXMgZGVzaWduZWQgdG8gYmUg c2FmZSB0byBjYWxsZWQKLSsgICBmcm9tIHRoZSBkZXN0cnVjdG9ycyBvZiBSQUlJIHR5cGVzLiAg Ki8KLStleHRlcm4gdm9pZCByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCBmcmFtZV9p ZCwgaW50IGZyYW1lX2xldmVsKQotKyAgbm9leGNlcHQ7Ci0rCi0rLyogTG9va3VwIHRoZSBmcmFt ZV9pbmZvIG9iamVjdCBmb3IgdGhlIHNlbGVjdGVkIGZyYW1lIEZSQU1FX0lEIC8KLSsgICBGUkFN RV9MRVZFTCBhbmQgY2FjaGUgdGhlIHJlc3VsdC4KLSsKLSsgICBJZiBGUkFNRV9MRVZFTCA+IDAg YW5kIHRoZSBvcmlnaW5hbGx5IHNlbGVjdGVkIGZyYW1lIGlzbid0IGZvdW5kLAotKyAgIHdhcm4g YW5kIHNlbGVjdCB0aGUgaW5uZXJtb3N0IChjdXJyZW50KSBmcmFtZS4gICovCi0rZXh0ZXJuIHZv aWQgbG9va3VwX3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCBmcmFtZV9pZCwgaW50IGZyYW1lX2xl dmVsKTsKLSsKLSAvKiBHaXZlbiBhIEZSQU1FLCByZXR1cm4gdGhlIG5leHQgKG1vcmUgaW5uZXIs IHlvdW5nZXIpIG9yIHByZXZpb3VzCi0gICAgKG1vcmUgb3V0ZXIsIG9sZGVyKSBmcmFtZS4gICov Ci0gZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZvICpnZXRfcHJldl9mcmFtZSAoc3RydWN0IGZyYW1l X2luZm8gKik7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnRocmVhZC5oIGIvZ2RiL2dkYnRocmVhZC5o Ci0tLS0gYS9nZGIvZ2RidGhyZWFkLmgKLSsrKyBiL2dkYi9nZGJ0aHJlYWQuaAotQEAgLTY3Myw2 ICs2NzMsMTAgQEAgY2xhc3Mgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQKLSAgIGZyYW1l X2lkIG1fc2VsZWN0ZWRfZnJhbWVfaWQ7Ci0gICBpbnQgbV9zZWxlY3RlZF9mcmFtZV9sZXZlbDsK LSAgIGJvb2wgbV93YXNfc3RvcHBlZDsKLSsgIC8qIFNhdmUvcmVzdG9yZSB0aGUgbGFuZ3VhZ2Ug YXMgd2VsbCwgYmVjYXVzZSBzZWxlY3RpbmcgYSBmcmFtZQotKyAgICAgY2hhbmdlcyB0aGUgY3Vy cmVudCBsYW5ndWFnZSB0byB0aGUgZnJhbWUncyBsYW5ndWFnZSBpZiAic2V0Ci0rICAgICBsYW5n dWFnZSBhdXRvIi4gICovCi0rICBlbnVtIGxhbmd1YWdlIG1fbGFuZzsKLSB9OwotIAotIC8qIFJl dHVybnMgYSBwb2ludGVyIGludG8gdGhlIHRocmVhZF9pbmZvIGNvcnJlc3BvbmRpbmcgdG8KLWRp ZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKLS0tLSBhL2dkYi9pbmZydW4u YwotKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAtOTAwNiw4ICs5MDA2LDEwIEBAIHN0cnVjdCBpbmZj YWxsX2NvbnRyb2xfc3RhdGUKLSAgIGVudW0gc3RvcF9zdGFja19raW5kIHN0b3Bfc3RhY2tfZHVt bXkgPSBTVE9QX05PTkU7Ci0gICBpbnQgc3RvcHBlZF9ieV9yYW5kb21fc2lnbmFsID0gMDsKLSAK LS0gIC8qIElEIGlmIHRoZSBzZWxlY3RlZCBmcmFtZSB3aGVuIHRoZSBpbmZlcmlvciBmdW5jdGlv biBjYWxsIHdhcyBtYWRlLiAgKi8KLSsgIC8qIElEIGFuZCBsZXZlbCBvZiB0aGUgc2VsZWN0ZWQg ZnJhbWUgd2hlbiB0aGUgaW5mZXJpb3IgZnVuY3Rpb24KLSsgICAgIGNhbGwgd2FzIG1hZGUuICAq LwotICAgc3RydWN0IGZyYW1lX2lkIHNlbGVjdGVkX2ZyYW1lX2lkIHt9OwotKyAgaW50IHNlbGVj dGVkX2ZyYW1lX2xldmVsID0gLTE7Ci0gfTsKLSAKLSAvKiBTYXZlIGFsbCBvZiB0aGUgaW5mb3Jt YXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBpbmZlcmlvcjw9PT5nZGIKLUBAIC05MDM2LDI3ICs5 MDM4LDEyIEBAIHNhdmVfaW5mY2FsbF9jb250cm9sX3N0YXRlICgpCi0gICBpbmZfc3RhdHVzLT5z dG9wX3N0YWNrX2R1bW15ID0gc3RvcF9zdGFja19kdW1teTsKLSAgIGluZl9zdGF0dXMtPnN0b3Bw ZWRfYnlfcmFuZG9tX3NpZ25hbCA9IHN0b3BwZWRfYnlfcmFuZG9tX3NpZ25hbDsKLSAKLS0gIGlu Zl9zdGF0dXMtPnNlbGVjdGVkX2ZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChnZXRfc2VsZWN0ZWRf ZnJhbWUgKE5VTEwpKTsKLSsgIHNhdmVfc2VsZWN0ZWRfZnJhbWUgKCZpbmZfc3RhdHVzLT5zZWxl Y3RlZF9mcmFtZV9pZCwKLSsJCSAgICAgICAmaW5mX3N0YXR1cy0+c2VsZWN0ZWRfZnJhbWVfbGV2 ZWwpOwotIAotICAgcmV0dXJuIGluZl9zdGF0dXM7Ci0gfQotIAotLXN0YXRpYyB2b2lkCi0tcmVz dG9yZV9zZWxlY3RlZF9mcmFtZSAoY29uc3QgZnJhbWVfaWQgJmZpZCkKLS17Ci0tICBmcmFtZV9p bmZvICpmcmFtZSA9IGZyYW1lX2ZpbmRfYnlfaWQgKGZpZCk7Ci0tCi0tICAvKiBJZiBpbmZfc3Rh dHVzLT5zZWxlY3RlZF9mcmFtZV9pZCBpcyBOVUxMLCB0aGVyZSB3YXMgbm8gcHJldmlvdXNseQot LSAgICAgc2VsZWN0ZWQgZnJhbWUuICAqLwotLSAgaWYgKGZyYW1lID09IE5VTEwpCi0tICAgIHsK LS0gICAgICB3YXJuaW5nIChfKCJVbmFibGUgdG8gcmVzdG9yZSBwcmV2aW91c2x5IHNlbGVjdGVk IGZyYW1lLiIpKTsKLS0gICAgICByZXR1cm47Ci0tICAgIH0KLS0KLS0gIHNlbGVjdF9mcmFtZSAo ZnJhbWUpOwotLX0KLS0KLSAvKiBSZXN0b3JlIGluZmVyaW9yIHNlc3Npb24gc3RhdGUgdG8gSU5G X1NUQVRVUy4gICovCi0gCi0gdm9pZAotQEAgLTkwODQsMjEgKzkwNzEsOCBAQCByZXN0b3JlX2lu ZmNhbGxfY29udHJvbF9zdGF0ZSAoc3RydWN0IGluZmNhbGxfY29udHJvbF9zdGF0ZSAqaW5mX3N0 YXR1cykKLSAKLSAgIGlmICh0YXJnZXRfaGFzX3N0YWNrKQotICAgICB7Ci0tICAgICAgLyogVGhl IHBvaW50IG9mIHRoZSB0cnkvY2F0Y2ggaXMgdGhhdCBpZiB0aGUgc3RhY2sgaXMgY2xvYmJlcmVk LAotLSAgICAgICAgIHdhbGtpbmcgdGhlIHN0YWNrIG1pZ2h0IGVuY291bnRlciBhIGdhcmJhZ2Ug cG9pbnRlciBhbmQKLS0gICAgICAgICBlcnJvcigpIHRyeWluZyB0byBkZXJlZmVyZW5jZSBpdC4g ICovCi0tICAgICAgdHJ5Ci0tCXsKLS0JICByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChpbmZfc3Rh dHVzLT5zZWxlY3RlZF9mcmFtZV9pZCk7Ci0tCX0KLS0gICAgICBjYXRjaCAoY29uc3QgZ2RiX2V4 Y2VwdGlvbl9lcnJvciAmZXgpCi0tCXsKLS0JICBleGNlcHRpb25fZnByaW50ZiAoZ2RiX3N0ZGVy ciwgZXgsCi0tCQkJICAgICAiVW5hYmxlIHRvIHJlc3RvcmUgcHJldmlvdXNseSBzZWxlY3RlZCBm cmFtZTpcbiIpOwotLQkgIC8qIEVycm9yIGluIHJlc3RvcmluZyB0aGUgc2VsZWN0ZWQgZnJhbWUu ICBTZWxlY3QgdGhlCi0tCSAgICAgaW5uZXJtb3N0IGZyYW1lLiAgKi8KLS0JICBzZWxlY3RfZnJh bWUgKGdldF9jdXJyZW50X2ZyYW1lICgpKTsKLS0JfQotKyAgICAgIHJlc3RvcmVfc2VsZWN0ZWRf ZnJhbWUgKGluZl9zdGF0dXMtPnNlbGVjdGVkX2ZyYW1lX2lkLAotKwkJCSAgICAgIGluZl9zdGF0 dXMtPnNlbGVjdGVkX2ZyYW1lX2xldmVsKTsKLSAgICAgfQotIAotICAgZGVsZXRlIGluZl9zdGF0 dXM7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3N0YWNrLmMgYi9nZGIvc3RhY2suYwotLS0tIGEvZ2RiL3N0 YWNrLmMKLSsrKyBiL2dkYi9zdGFjay5jCi1AQCAtMTg0Miw5ICsxODQyLDkgQEAgdHJhaWxpbmdf b3V0ZXJtb3N0X2ZyYW1lIChpbnQgY291bnQpCi0gc3RhdGljIHZvaWQKLSBzZWxlY3RfZnJhbWVf Y29tbWFuZF9jb3JlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmksIGJvb2wgaWdub3JlZCkKLSB7Ci0t ICBzdHJ1Y3QgZnJhbWVfaW5mbyAqcHJldl9mcmFtZSA9IGdldF9zZWxlY3RlZF9mcmFtZV9pZl9z ZXQgKCk7Ci0rICBmcmFtZV9pbmZvICpwcmV2X2ZyYW1lID0gZ2V0X3NlbGVjdGVkX2ZyYW1lICgp OwotICAgc2VsZWN0X2ZyYW1lIChmaSk7Ci0tICBpZiAoZ2V0X3NlbGVjdGVkX2ZyYW1lX2lmX3Nl dCAoKSAhPSBwcmV2X2ZyYW1lKQotKyAgaWYgKGdldF9zZWxlY3RlZF9mcmFtZSAoKSAhPSBwcmV2 X2ZyYW1lKQotICAgICBnZGI6Om9ic2VydmVyczo6dXNlcl9zZWxlY3RlZF9jb250ZXh0X2NoYW5n ZWQubm90aWZ5IChVU0VSX1NFTEVDVEVEX0ZSQU1FKTsKLSB9Ci0gCi1AQCAtMTg2MywxMCArMTg2 Myw5IEBAIHNlbGVjdF9mcmFtZV9mb3JfbWkgKHN0cnVjdCBmcmFtZV9pbmZvICpmaSkKLSBzdGF0 aWMgdm9pZAotIGZyYW1lX2NvbW1hbmRfY29yZSAoc3RydWN0IGZyYW1lX2luZm8gKmZpLCBib29s IGlnbm9yZWQpCi0gewotLSAgc3RydWN0IGZyYW1lX2luZm8gKnByZXZfZnJhbWUgPSBnZXRfc2Vs ZWN0ZWRfZnJhbWVfaWZfc2V0ICgpOwotLQotKyAgZnJhbWVfaW5mbyAqcHJldl9mcmFtZSA9IGdl dF9zZWxlY3RlZF9mcmFtZSAoKTsKLSAgIHNlbGVjdF9mcmFtZSAoZmkpOwotLSAgaWYgKGdldF9z ZWxlY3RlZF9mcmFtZV9pZl9zZXQgKCkgIT0gcHJldl9mcmFtZSkKLSsgIGlmIChnZXRfc2VsZWN0 ZWRfZnJhbWUgKCkgIT0gcHJldl9mcmFtZSkKLSAgICAgZ2RiOjpvYnNlcnZlcnM6OnVzZXJfc2Vs ZWN0ZWRfY29udGV4dF9jaGFuZ2VkLm5vdGlmeSAoVVNFUl9TRUxFQ1RFRF9GUkFNRSk7Ci0gICBl bHNlCi0gICAgIHByaW50X3NlbGVjdGVkX3RocmVhZF9mcmFtZSAoY3VycmVudF91aW91dCwgVVNF Ul9TRUxFQ1RFRF9GUkFNRSk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3RocmVhZC5jIGIvZ2RiL3RocmVh ZC5jCi0tLS0gYS9nZGIvdGhyZWFkLmMKLSsrKyBiL2dkYi90aHJlYWQuYwotQEAgLTEzMjUsMjAg KzEzMjUsMjYgQEAgc3dpdGNoX3RvX3RocmVhZCAocHJvY2Vzc19zdHJhdHVtX3RhcmdldCAqcHJv Y190YXJnZXQsIHB0aWRfdCBwdGlkKQotICAgc3dpdGNoX3RvX3RocmVhZCAodGhyKTsKLSB9Ci0g Ci0tc3RhdGljIHZvaWQKLS1yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaWQg YV9mcmFtZV9pZCwgaW50IGZyYW1lX2xldmVsKQotKy8qIFNlZSBmcmFtZS5oLiAgKi8KLSsKLSt2 b2lkCi0rbG9va3VwX3NlbGVjdGVkX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaWQgYV9mcmFtZV9pZCwg aW50IGZyYW1lX2xldmVsKQotIHsKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IE5VTEw7 Ci0gICBpbnQgY291bnQ7Ci0gCi0tICAvKiBUaGlzIG1lYW5zIHRoZXJlIHdhcyBubyBzZWxlY3Rl ZCBmcmFtZS4gICovCi0rICAvKiBUaGlzIGVpdGhlciBtZWFucyB0aGVyZSB3YXMgbm8gc2VsZWN0 ZWQgZnJhbWUsIG9yIHRoZSBzZWxlY3RlZAotKyAgICAgZnJhbWUgd2FzIHRoZSBjdXJyZW50IGZy YW1lLiAgSW4gZWl0aGVyIGNhc2UsIHNlbGVjdCB0aGUgY3VycmVudAotKyAgICAgZnJhbWUuICAq LwotICAgaWYgKGZyYW1lX2xldmVsID09IC0xKQotICAgICB7Ci0tICAgICAgc2VsZWN0X2ZyYW1l IChOVUxMKTsKLSsgICAgICBzZWxlY3RfZnJhbWUgKGdldF9jdXJyZW50X2ZyYW1lICgpKTsKLSAg ICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIGdkYl9hc3NlcnQgKGZyYW1lX2xldmVsID49IDAp OwotKyAgLyogc2VsZWN0X2ZyYW1lIG5ldmVyIHNhdmVzIDAgaW4gU0VMRUNURURfRlJBTUVfTEVW RUwsIHNvIHdlCi0rICAgICBzaG91bGRuJ3Qgc2VlIGl0IGhlcmUuICAqLwotKyAgZ2RiX2Fzc2Vy dCAoZnJhbWVfbGV2ZWwgPiAwKTsKLSAKLSAgIC8qIFJlc3RvcmUgYnkgbGV2ZWwgZmlyc3QsIGNo ZWNrIGlmIHRoZSBmcmFtZSBpZCBpcyB0aGUgc2FtZSBhcwotICAgICAgZXhwZWN0ZWQuICBJZiB0 aGF0IGZhaWxzLCB0cnkgcmVzdG9yaW5nIGJ5IGZyYW1lIGlkLiAgSWYgdGhhdAotQEAgLTE0MDks NjQgKzE0MTUsMjggQEAgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6OnJlc3RvcmUgKCkK LSAgICAgICAmJiB0YXJnZXRfaGFzX3N0YWNrCi0gICAgICAgJiYgdGFyZ2V0X2hhc19tZW1vcnkp Ci0gICAgIHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUgKG1fc2VsZWN0ZWRfZnJhbWVfaWQsIG1fc2Vs ZWN0ZWRfZnJhbWVfbGV2ZWwpOwotKwotKyAgc2V0X2xhbmd1YWdlIChtX2xhbmcpOwotIH0KLSAK LSBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZDo6fnNjb3BlZF9yZXN0b3JlX2N1cnJlbnRf dGhyZWFkICgpCi0gewotICAgaWYgKCFtX2RvbnRfcmVzdG9yZSkKLS0gICAgewotLSAgICAgIHRy eQotLQl7Ci0tCSAgcmVzdG9yZSAoKTsKLS0JfQotLSAgICAgIGNhdGNoIChjb25zdCBnZGJfZXhj ZXB0aW9uICZleCkKLS0JewotLQkgIC8qIFdlJ3JlIGluIGEgZHRvciwgdGhlcmUncyByZWFsbHkg bm90aGluZyBlbHNlIHdlIGNhbiBkbwotLQkgICAgIGJ1dCBzd2FsbG93IHRoZSBleGNlcHRpb24u ICAqLwotLQl9Ci0tICAgIH0KLSsgICAgcmVzdG9yZSAoKTsKLSB9Ci0gCi0gc2NvcGVkX3Jlc3Rv cmVfY3VycmVudF90aHJlYWQ6OnNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkICgpCi0gewot ICAgbV9pbmYgPSBpbmZlcmlvcl9yZWY6Om5ld19yZWZlcmVuY2UgKGN1cnJlbnRfaW5mZXJpb3Ig KCkpOwotIAotKyAgbV9sYW5nID0gY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2U7Ci0rCi0g ICBpZiAoaW5mZXJpb3JfcHRpZCAhPSBudWxsX3B0aWQpCi0gICAgIHsKLSAgICAgICBtX3RocmVh ZCA9IHRocmVhZF9pbmZvX3JlZjo6bmV3X3JlZmVyZW5jZSAoaW5mZXJpb3JfdGhyZWFkICgpKTsK LSAKLS0gICAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7Ci0tCi0gICAgICAgbV93YXNfc3Rv cHBlZCA9IG1fdGhyZWFkLT5zdGF0ZSA9PSBUSFJFQURfU1RPUFBFRDsKLS0gICAgICBpZiAobV93 YXNfc3RvcHBlZAotLQkgICYmIHRhcmdldF9oYXNfcmVnaXN0ZXJzCi0tCSAgJiYgdGFyZ2V0X2hh c19zdGFjawotLQkgICYmIHRhcmdldF9oYXNfbWVtb3J5KQotLQl7Ci0tCSAgLyogV2hlbiBwcm9j ZXNzaW5nIGludGVybmFsIGV2ZW50cywgdGhlcmUgbWlnaHQgbm90IGJlIGEKLS0JICAgICBzZWxl Y3RlZCBmcmFtZS4gIElmIHdlIG5haXZlbHkgY2FsbCBnZXRfc2VsZWN0ZWRfZnJhbWUKLS0JICAg ICBoZXJlLCB0aGVuIHdlIGNhbiBlbmQgdXAgcmVhZGluZyBkZWJ1Z2luZm8gZm9yIHRoZQotLQkg ICAgIGN1cnJlbnQgZnJhbWUsIGJ1dCB3ZSBkb24ndCBnZW5lcmFsbHkgbmVlZCB0aGUgZGVidWdp bmZvCi0tCSAgICAgYXQgdGhpcyBwb2ludC4gICovCi0tCSAgZnJhbWUgPSBnZXRfc2VsZWN0ZWRf ZnJhbWVfaWZfc2V0ICgpOwotLQl9Ci0tICAgICAgZWxzZQotLQlmcmFtZSA9IE5VTEw7Ci0tCi0t ICAgICAgdHJ5Ci0tCXsKLS0JICBtX3NlbGVjdGVkX2ZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChm cmFtZSk7Ci0tCSAgbV9zZWxlY3RlZF9mcmFtZV9sZXZlbCA9IGZyYW1lX3JlbGF0aXZlX2xldmVs IChmcmFtZSk7Ci0tCX0KLS0gICAgICBjYXRjaCAoY29uc3QgZ2RiX2V4Y2VwdGlvbl9lcnJvciAm ZXgpCi0tCXsKLS0JICBtX3NlbGVjdGVkX2ZyYW1lX2lkID0gbnVsbF9mcmFtZV9pZDsKLS0JICBt X3NlbGVjdGVkX2ZyYW1lX2xldmVsID0gLTE7Ci0tCi0tCSAgLyogQmV0dGVyIGxldCB0aGlzIHBy b3BhZ2F0ZS4gICovCi0tCSAgaWYgKGV4LmVycm9yID09IFRBUkdFVF9DTE9TRV9FUlJPUikKLS0J ICAgIHRocm93OwotLQl9Ci0rICAgICAgc2F2ZV9zZWxlY3RlZF9mcmFtZSAoJm1fc2VsZWN0ZWRf ZnJhbWVfaWQsICZtX3NlbGVjdGVkX2ZyYW1lX2xldmVsKTsKLSAgICAgfQotIH0KLSAKCmRpZmYg LS1naXQgYS9nZGItcmhiejE5MDk5MDItZnJhbWVfaWRfcC1hc3NlcnQtMi5wYXRjaCBiL2dkYi1y aGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBkODA0YmJlLi4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTkwOTkwMi1mcmFtZV9p ZF9wLWFzc2VydC0yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLUZyb20g RkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZWRybyBBbHZl cyA8cGVkcm9AcGFsdmVzLm5ldD4KLURhdGU6IFNhdCwgMzEgT2N0IDIwMjAgMDA6Mjc6MTggKzAw MDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNoCi0K LTs7IEJhY2twb3J0IHBhdGNoICMyIHdoaWNoIGZpeGVzIGEgZnJhbWVfaWRfcCBhc3NlcnRpb24g ZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi0KLUZpeCBmcmFtZSBjeWNsZSBkZXRlY3Rpb24KLQot VGhlIHJlY2VudCBjb21taXQgdG8gbWFrZSBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZCdz IGNkdG9ycwotZXhjZXB0aW9uIGZyZWUgcmVncmVzc2VkIGdkYi5iYXNlL2VoX3JldHVybi5leHA6 Ci0KLSAgQnJlYWtwb2ludCAxLCAweDAwMDAwMDAwMDA0MDEyYmIgaW4gZWgyIChnZGIvZnJhbWUu Yzo2NDE6IGludGVybmFsLWVycm9yOiBmcmFtZV9pZCBnZXRfZnJhbWVfaWQoZnJhbWVfaW5mbyop OiBBc3NlcnRpb24gYHN0YXNoZWQnIGZhaWxlZC4KLSAgQSBwcm9ibGVtIGludGVybmFsIHRvIEdE QiBoYXMgYmVlbiBkZXRlY3RlZCwKLSAgZnVydGhlciBkZWJ1Z2dpbmcgbWF5IHByb3ZlIHVucmVs aWFibGUuCi0gIFF1aXQgdGhpcyBkZWJ1Z2dpbmcgc2Vzc2lvbj8gKHkgb3IgbikgRkFJTDogZ2Ri LmJhc2UvZWhfcmV0dXJuLmV4cDogaGl0IGJyZWFrcG9pbnQgKEdEQiBpbnRlcm5hbCBlcnJvcikK LQotVGhhdCB0ZXN0Y2FzZSB1c2VzIF9fYnVpbHRpbl9laF9yZXR1cm4gYW5kLCBiZWZvcmUgdGhl IHJlZ3Jlc3Npb24sIHRoZQotYmFja3RyYWNlIGF0IGVoMiBsb29rZWQgbGlrZSB0aGlzOgotCi0g KGdkYikgYnQKLSAjMCAgMHgwMDAwMDAwMDAwNDAwNmViIGluIGVoMiAocD0weDQwMDZlYyA8Y29u dGludWF0aW9uPikgYXQgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZWhfcmV0dXJuLmM6NTQK LSBCYWNrdHJhY2Ugc3RvcHBlZDogcHJldmlvdXMgZnJhbWUgaWRlbnRpY2FsIHRvIHRoaXMgZnJh bWUgKGNvcnJ1cHQgc3RhY2s/KQotCi1UaGF0ICJwcmV2aW91cyBmcmFtZSBpZGVudGljYWwgdG8g dGhpcyBmcmFtZSIgaXMgY2F1Z2h0IGJ5IHRoZSBjeWNsZQotZGV0ZWN0aW9uIGJhc2VkIG9uIGZy YW1lIGlkLgotCi1UaGUgYXNzZXJ0aW9uIGZhaWxpbmcgaXMgdGhpcyBvbmU6Ci0KLSA2MzggICAg ICAgICAgIC8qIFNpbmNlIHRoaXMgaXMgdGhlIGZpcnN0IGZyYW1lIGluIHRoZSBjaGFpbiwgdGhp cyBzaG91bGQKLSA2MzkgICAgICAgICAgICAgIGFsd2F5cyBzdWNjZWVkLiAgKi8KLSA2NDAgICAg ICAgICAgIGJvb2wgc3Rhc2hlZCA9IGZyYW1lX3N0YXNoX2FkZCAoZmkpOwotIDY0MSAgICAgICAg ICAgZ2RiX2Fzc2VydCAoc3Rhc2hlZCk7Ci0KLW9yaWdpbmFsbHkgYWRkZWQgYnkKLQotICBjb21t aXQgZjI0NTUzNWNmNTgzYWU0Y2ExM2IxMGQ0N2IzYzdkMzMzNDU5M2VjZQotICBBdXRob3I6ICAg ICBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gIEF1dGhvckRhdGU6IE1vbiBTZXAg NSAxODo0MTozOCAyMDE2ICswMTAwCi0KLSAgICAgIEZpeCBQUjE5OTI3OiBBdm9pZCB1bndpbmRl ciByZWN1cnNpb24gaWYgc25pZmZlciB1c2VzIGNhbGxzIHBhcnNlX2FuZF9ldmFsCi0KLVRoZSBh c3NlcnRpb24gaXMgZmFpbGluZyBiZWNhdXNlIGZyYW1lICMxJ3MgZnJhbWUgaWQgd2FzIHN0YXNo ZWQKLWJlZm9yZSB0aGUgaWQgb2YgZnJhbWUgIzAgaXMgc3Rhc2hlZC4gIFRoZSBmcmFtZSBpZCBv ZiBmcmFtZSAjMSB3YXMKLXN0YXNoZWQgaGVyZToKLQotICh0b3AtZ2RiKSBidAotICMwICBmcmFt ZV9zdGFzaF9hZGQgKGZyYW1lPTB4MWUyNGM5MCkgYXQgc3JjL2dkYi9mcmFtZS5jOjI3NgotICMx ICAweDAwMDAwMDAwMDA2NjljMWIgaW4gZ2V0X3ByZXZfZnJhbWVfaWZfbm9fY3ljbGUgKHRoaXNf ZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2ZyYW1lLmM6MjEyMAotICMyICAweDAwMDAwMDAw MDA2NmEzMzkgaW4gZ2V0X3ByZXZfZnJhbWVfYWx3YXlzXzEgKHRoaXNfZnJhbWU9MHgxOWY4Mzcw KSBhdCBzcmMvZ2RiL2ZyYW1lLmM6MjMwMwotICMzICAweDAwMDAwMDAwMDA2NmEzNjAgaW4gZ2V0 X3ByZXZfZnJhbWVfYWx3YXlzICh0aGlzX2ZyYW1lPTB4MTlmODM3MCkgYXQgc3JjL2dkYi9mcmFt ZS5jOjIzMTkKLSAjNCAgMHgwMDAwMDAwMDAwNjZiNTZjIGluIGdldF9mcmFtZV91bndpbmRfc3Rv cF9yZWFzb24gKGZyYW1lPTB4MTlmODM3MCkgYXQgc3JjL2dkYi9mcmFtZS5jOjMwMjgKLSAjNSAg MHgwMDAwMDAwMDAwNTlmOTI5IGluIGR3YXJmMl9mcmFtZV9jZmEgKHRoaXNfZnJhbWU9MHgxOWY4 MzcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9mcmFtZS5jOjE0NjIKLSAjNiAgMHgwMDAwMDAwMDAwNWNl NDM0IGluIGR3YXJmX2V2YWx1YXRlX2xvY19kZXNjOjpnZXRfZnJhbWVfY2ZhICh0aGlzPTB4N2Zm ZmZmZmZjMDcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9sb2MuYzo2NjYKLSAjNyAgMHgwMDAwMDAwMDAw NTk4OWE5IGluIGR3YXJmX2V4cHJfY29udGV4dDo6ZXhlY3V0ZV9zdGFja19vcCAodGhpcz0weDdm ZmZmZmZmYzA3MCwgb3BfcHRyPTB4MWIyYTA1MyAiXDM2NFwwMDMiLCBvcF9lbmQ9MHgxYjJhMDUz ICJcMzY0XDAwMyIpIGF0IHNyYy9nZGIvZHdhcmYyL2V4cHIuYzoxMTYxCi0gIzggIDB4MDAwMDAw MDAwMDU5NmFmNiBpbiBkd2FyZl9leHByX2NvbnRleHQ6OmV2YWwgKHRoaXM9MHg3ZmZmZmZmZmMw NzAsIGFkZHI9MHgxYjJhMDUyICJcMjM0XDM2NFwwMDMiLCBsZW49MSkgYXQgc3JjL2dkYi9kd2Fy ZjIvZXhwci5jOjMwMwotICM5ICAweDAwMDAwMDAwMDA1OTdiNGUgaW4gZHdhcmZfZXhwcl9jb250 ZXh0OjpleGVjdXRlX3N0YWNrX29wICh0aGlzPTB4N2ZmZmZmZmZjMDcwLCBvcF9wdHI9MHgxYjJh MDYzICIiLCBvcF9lbmQ9MHgxYjJhMDYzICIiKSBhdCBzcmMvZ2RiL2R3YXJmMi9leHByLmM6ODY1 Ci0gIzEwIDB4MDAwMDAwMDAwMDU5NmFmNiBpbiBkd2FyZl9leHByX2NvbnRleHQ6OmV2YWwgKHRo aXM9MHg3ZmZmZmZmZmMwNzAsIGFkZHI9MHgxYjJhMDYxICJcMjIxWCIsIGxlbj0yKSBhdCBzcmMv Z2RiL2R3YXJmMi9leHByLmM6MzAzCi0gIzExIDB4MDAwMDAwMDAwMDVjOGI1YSBpbiBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAodHlwZT0weDFiNTY0ZDAsIGZyYW1lPTB4MTlmODM3MCwg ZGF0YT0weDFiMmEwNjEgIlwyMjFYIiwgc2l6ZT0yLCBwZXJfY3U9MHgxYjI4NzYwLCBwZXJfb2Jq ZmlsZT0weDFhODQ5MzAsIHN1Ym9ial90eXBlPTB4MWI1NjRkMCwgc3Vib2JqX2J5dGVfb2Zmc2V0 PTApIGF0IHNyYy9nZGIvZHdhcmYyL2xvYy5jOjIyNjAKLSAjMTIgMHgwMDAwMDAwMDAwNWM5MjQz IGluIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAodHlwZT0weDFiNTY0ZDAsIGZyYW1lPTB4MTlm ODM3MCwgZGF0YT0weDFiMmEwNjEgIlwyMjFYIiwgc2l6ZT0yLCBwZXJfY3U9MHgxYjI4NzYwLCBw ZXJfb2JqZmlsZT0weDFhODQ5MzApIGF0IHNyYy9nZGIvZHdhcmYyL2xvYy5jOjI0NDQKLSAjMTMg MHgwMDAwMDAwMDAwNWNiNzY5IGluIGxvY2V4cHJfcmVhZF92YXJpYWJsZSAoc3ltYm9sPTB4MWI1 OTg0MCwgZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9sb2MuYzozNjg3Ci0gIzE0 IDB4MDAwMDAwMDAwMDY2MzEzNyBpbiBsYW5ndWFnZV9kZWZuOjpyZWFkX3Zhcl92YWx1ZSAodGhp cz0weDEyMmVhNjAgPGNfbGFuZ3VhZ2VfZGVmbj4sIHZhcj0weDFiNTk4NDAsIHZhcl9ibG9jaz0w eDAsIGZyYW1lPTB4MTlmODM3MCkgYXQgc3JjL2dkYi9maW5kdmFyLmM6NjE4Ci0gIzE1IDB4MDAw MDAwMDAwMDY2M2MzYiBpbiByZWFkX3Zhcl92YWx1ZSAodmFyPTB4MWI1OTg0MCwgdmFyX2Jsb2Nr PTB4MCwgZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2ZpbmR2YXIuYzo4MjIKLSAjMTYgMHgw MDAwMDAwMDAwOGM3ZDlmIGluIHJlYWRfZnJhbWVfYXJnIChmcF9vcHRzPS4uLiwgc3ltPTB4MWI1 OTg0MCwgZnJhbWU9MHgxOWY4MzcwLCBhcmdwPTB4N2ZmZmZmZmZjNDcwLCBlbnRyeWFyZ3A9MHg3 ZmZmZmZmZmM0OTApIGF0IHNyYy9nZGIvc3RhY2suYzo1NDIKLSAjMTcgMHgwMDAwMDAwMDAwOGM4 OWNkIGluIHByaW50X2ZyYW1lX2FyZ3MgKGZwX29wdHM9Li4uLCBmdW5jPTB4MWI1OTdjMCwgZnJh bWU9MHgxOWY4MzcwLCBudW09LTEsIHN0cmVhbT0weDFhYmE4NjApIGF0IHNyYy9nZGIvc3RhY2su Yzo4OTAKLSAjMTggMHgwMDAwMDAwMDAwOGM5YmY4IGluIHByaW50X2ZyYW1lIChmcF9vcHRzPS4u LiwgZnJhbWU9MHgxOWY4MzcwLCBwcmludF9sZXZlbD0wLCBwcmludF93aGF0PVNSQ19BTkRfTE9D LCBwcmludF9hcmdzPTEsIHNhbD0uLi4pIGF0IHNyYy9nZGIvc3RhY2suYzoxMzk0Ci0gIzE5IDB4 MDAwMDAwMDAwMDhjOTJiOSBpbiBwcmludF9mcmFtZV9pbmZvIChmcF9vcHRzPS4uLiwgZnJhbWU9 MHgxOWY4MzcwLCBwcmludF9sZXZlbD0wLCBwcmludF93aGF0PVNSQ19BTkRfTE9DLCBwcmludF9h cmdzPTEsIHNldF9jdXJyZW50X3NhbD0xKSBhdCBzcmMvZ2RiL3N0YWNrLmM6MTExOQotICMyMCAw eDAwMDAwMDAwMDA4Yzc1ZjAgaW4gcHJpbnRfc3RhY2tfZnJhbWUgKGZyYW1lPTB4MTlmODM3MCwg cHJpbnRfbGV2ZWw9MCwgcHJpbnRfd2hhdD1TUkNfQU5EX0xPQywgc2V0X2N1cnJlbnRfc2FsPTEp IGF0IHNyYy9nZGIvc3RhY2suYzozNjYKLSAjMjEgMHgwMDAwMDAwMDAwNzAyNTBiIGluIHByaW50 X3N0b3BfbG9jYXRpb24gKHdzPTB4N2ZmZmZmZmZjOWUwKSBhdCBzcmMvZ2RiL2luZnJ1bi5jOjgx MTAKLSAjMjIgMHgwMDAwMDAwMDAwNzAyNTY5IGluIHByaW50X3N0b3BfZXZlbnQgKHVpb3V0PTB4 MWE4YjllMCwgZGlzcGxheXM9dHJ1ZSkgYXQgc3JjL2dkYi9pbmZydW4uYzo4MTI2Ci0gIzIzIDB4 MDAwMDAwMDAwMDk2ZDA0YiBpbiB0dWlfb25fbm9ybWFsX3N0b3AgKGJzPTB4MWJjZDFjMCwgcHJp bnRfZnJhbWU9MSkgYXQgc3JjL2dkYi90dWkvdHVpLWludGVycC5jOjk4Ci0gLi4uCi0KLUJlZm9y ZSB0aGUgY29tbWl0IHRvIG1ha2Ugc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQncyBjZHRv cnMKLWV4Y2VwdGlvbiBmcmVlLCBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZCdzIGR0b3Ig d291bGQgY2FsbAotZ2V0X2ZyYW1lX2lkIG9uIHRoZSBzZWxlY3RlZCBmcmFtZSwgYW5kIHdlIHVz ZQotc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQgcGVydmFzaXZlbHkuICBUaGF0IGhhZCB0 aGUgc2lkZSBlZmZlY3QKLW9mIHN0YXNoaW5nIHRoZSBmcmFtZSBpZCBvZiBmcmFtZSAjMCBiZWZv cmUgcmVhY2hpbmcgdGhlIHBhdGggc2hvd24gaW4KLXRoZSBiYWNrdHJhY2UuICBJLmUuLCB0aGUg ZnJhbWUgaWQgb2YgZnJhbWUgIzAgaGFwcGVuZWQgdG8gYmUgc3Rhc2hlZAotYmVmb3JlIHRoZSBm cmFtZSBpZCBvZiBmcmFtZSAjMS4gIEJ1dCB0aGF0IHdhcyBieSBjaGFuY2UsIG5vdCBieQotZGVz aWduLgotCi1UaGlzIGNvbW1pdDoKLQotICBjb21taXQgMjU2YWU1ZGJjNzNkMTM0ODg1MGY4NmVl NzdhMGRjM2IwNGJjN2NjMAotICBBdXRob3I6ICAgICBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJl ZGhhdC5jb20+Ci0gIEF1dGhvckRhdGU6IE1vbiBPY3QgMzEgMTI6NDc6NDIgMjAxNiAtMDcwMAot Ci0gICAgICBTdGFzaCBmcmFtZSBpZCBvZiBjdXJyZW50IGZyYW1lIGJlZm9yZSBzdGFzaGluZyBm cmFtZSBpZCBmb3IgcHJldmlvdXMgZnJhbWUKLQotRml4ZWQgYSBzaW1pbGFyIHByb2JsZW0sIGJ5 IG1ha2luZyBzdXJlIGdldF9wcmV2X2ZyYW1lIGNvbXB1dGVzIHRoZQotZnJhbWUgaWQgb2YgdGhl IGN1cnJlbnQgZnJhbWUgYmVmb3JlIHVud2luZGluZyB0aGUgcHJldmlvdXMgZnJhbWUsIHNvCi10 aGF0IHRoZSBjeWNsZSBkZXRlY3Rpb24gd29ya3MgcHJvcGVybHkuICBUaGF0IGZpeCBtaXNzZXMg dGhlIHNjZW5hcmlvCi13ZSdyZSBub3cgcnVubmluZyBhZ2FpbnN0LCBiZWNhdXNlIGlmIHlvdSBu b3RpY2UsIHRoZSBiYWNrdHJhY2UgYWJvdmUKLXNob3dzIHRoYXQgZnJhbWUgIzQgY2FsbHMgZ2V0 X3ByZXZfZnJhbWVfYWx3YXlzLCBub3QgZ2V0X3ByZXZfZnJhbWUuCi1JLmUuLCBub3RoaW5nIGlz IGNhbGxpbmcgZ2V0X2ZyYW1lX2lkIG9uIHRoZSBjdXJyZW50IGZyYW1lLgotCi1UaGUgZml4IGhl cmUgaXMgdG8gbW92ZSBLZXZpbidzIGZpeCBkb3duIGZyb20gZ2V0X3ByZXZfZnJhbWUgdG8KLWdl dF9wcmV2X2ZyYW1lX2Fsd2F5cy4gIE9yIGFjdHVhbGx5LCBhIGJpdCBmdXJ0aGVyIGRvd24gdG8K LWdldF9wcmV2X2ZyYW1lX2Fsd2F5c18xIC0tIG5vdGUgdGhhdCBpbmxpbmVfZnJhbWVfdGhpc19p ZCBjYWxscwotZ2V0X3ByZXZfZnJhbWVfYWx3YXlzLCBzbyB3ZSBuZWVkIHRvIGJlIGNhcmVmdWwg dG8gYXZvaWQgcmVjdXJzaW9uIGluCi10aGF0IHNjZW5hcmlvLgotCi1nZGIvQ2hhbmdlTG9nOgot Ci0JKiBmcmFtZS5jIChnZXRfcHJldl9mcmFtZSk6IE1vdmUgZ2V0X2ZyYW1lX2lkIGNhbGwgZnJv bSBoZXJlIC4uLgotCShnZXRfcHJldl9mcmFtZV9hbHdheXNfMSk6IC4uLiB0byBoZXJlLgotCSog aW5saW5lLWZyYW1lLmMgKGlubGluZV9mcmFtZV90aGlzX2lkKTogTWVudGlvbgotCWdldF9wcmV2 X2ZyYW1lX2Fsd2F5c18xIGluIGNvbW1lbnQuCi0KLUNoYW5nZS1JZDogSWQ5NjBjOThhYjJkMDcy YzQ4YTQzNmMzZWIxNjBjYzRiMmE1Y2ZkMWQKLQotZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIv Z2RiL2ZyYW1lLmMKLS0tLSBhL2dkYi9mcmFtZS5jCi0rKysgYi9nZGIvZnJhbWUuYwotQEAgLTIx MzMsNiArMjEzMywyMyBAQCBnZXRfcHJldl9mcmFtZV9hbHdheXNfMSAoc3RydWN0IGZyYW1lX2lu Zm8gKnRoaXNfZnJhbWUpCi0gICBpZiAoZ2V0X2ZyYW1lX3R5cGUgKHRoaXNfZnJhbWUpID09IElO TElORV9GUkFNRSkKLSAgICAgcmV0dXJuIGdldF9wcmV2X2ZyYW1lX2lmX25vX2N5Y2xlICh0aGlz X2ZyYW1lKTsKLSAKLSsgIC8qIElmIHRoaXNfZnJhbWUgaXMgdGhlIGN1cnJlbnQgZnJhbWUsIHRo ZW4gY29tcHV0ZSBhbmQgc3Rhc2ggaXRzCi0rICAgICBmcmFtZSBpZCBwcmlvciB0byBmZXRjaGlu ZyBhbmQgY29tcHV0aW5nIHRoZSBmcmFtZSBpZCBvZiB0aGUKLSsgICAgIHByZXZpb3VzIGZyYW1l LiAgT3RoZXJ3aXNlLCB0aGUgY3ljbGUgZGV0ZWN0aW9uIGNvZGUgaW4KLSsgICAgIGdldF9wcmV2 X2ZyYW1lX2lmX25vX2N5Y2xlKCkgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkuICBXaGVuCi0rICAg ICBnZXRfZnJhbWVfaWQoKSBpcyBjYWxsZWQgbGF0ZXIgb24sIGFuIGFzc2VydGlvbiBlcnJvciB3 aWxsIGJlCi0rICAgICB0cmlnZ2VyZWQgaW4gdGhlIGV2ZW50IG9mIGEgY3ljbGUgYmV0d2VlbiB0 aGUgY3VycmVudCBmcmFtZSBhbmQKLSsgICAgIGl0cyBwcmV2aW91cyBmcmFtZS4KLSsKLSsgICAg IE5vdGUgd2UgZG8gdGhpcyBhZnRlciB0aGUgSU5MSU5FX0ZSQU1FIGNoZWNrIGFib3ZlLiAgVGhh dCBpcwotKyAgICAgYmVjYXVzZSB0aGUgaW5saW5lIGZyYW1lJ3MgZnJhbWUgaWQgY29tcHV0YXRp b24gbmVlZHMgdG8gZmV0Y2gKLSsgICAgIHRoZSBmcmFtZSBpZCBvZiBpdHMgcHJldmlvdXMgcmVh bCBzdGFjayBmcmFtZS4gIEkuZS4sIHdlIG5lZWQgdG8KLSsgICAgIGF2b2lkIHJlY3Vyc2lvbiBp biB0aGF0IGNhc2UuICBUaGlzIGlzIE9LIHNpbmNlIHdlJ3JlIHN1cmUgdGhlCi0rICAgICBpbmxp bmUgZnJhbWUgd29uJ3QgY3JlYXRlIGEgY3ljbGUgd2l0aCB0aGUgcmVhbCBzdGFjayBmcmFtZS4g IFNlZQotKyAgICAgaW5saW5lX2ZyYW1lX3RoaXNfaWQuICAqLwotKyAgaWYgKHRoaXNfZnJhbWUt PmxldmVsID09IDApCi0rICAgIGdldF9mcmFtZV9pZCAodGhpc19mcmFtZSk7Ci0rCi0gICAvKiBD aGVjayB0aGF0IHRoaXMgZnJhbWUgaXMgdW53aW5kYWJsZS4gIElmIGl0IGlzbid0LCBkb24ndCB0 cnkgdG8KLSAgICAgIHVud2luZCB0byB0aGUgcHJldiBmcmFtZS4gICovCi0gICB0aGlzX2ZyYW1l LT5zdG9wX3JlYXNvbgotQEAgLTI0MTAsMTYgKzI0MjcsNiBAQCBnZXRfcHJldl9mcmFtZSAoc3Ry dWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gICAgICBzb21ldGhpbmcgc2hvdWxkIGJlIGNh bGxpbmcgZ2V0X3NlbGVjdGVkX2ZyYW1lKCkgb3IKLSAgICAgIGdldF9jdXJyZW50X2ZyYW1lKCku ICAqLwotICAgZ2RiX2Fzc2VydCAodGhpc19mcmFtZSAhPSBOVUxMKTsKLS0gIAotLSAgLyogSWYg dGhpc19mcmFtZSBpcyB0aGUgY3VycmVudCBmcmFtZSwgdGhlbiBjb21wdXRlIGFuZCBzdGFzaAot LSAgICAgaXRzIGZyYW1lIGlkIHByaW9yIHRvIGZldGNoaW5nIGFuZCBjb21wdXRpbmcgdGhlIGZy YW1lIGlkIG9mIHRoZQotLSAgICAgcHJldmlvdXMgZnJhbWUuICBPdGhlcndpc2UsIHRoZSBjeWNs ZSBkZXRlY3Rpb24gY29kZSBpbgotLSAgICAgZ2V0X3ByZXZfZnJhbWVfaWZfbm9fY3ljbGUoKSB3 aWxsIG5vdCB3b3JrIGNvcnJlY3RseS4gIFdoZW4KLS0gICAgIGdldF9mcmFtZV9pZCgpIGlzIGNh bGxlZCBsYXRlciBvbiwgYW4gYXNzZXJ0aW9uIGVycm9yIHdpbGwKLS0gICAgIGJlIHRyaWdnZXJl ZCBpbiB0aGUgZXZlbnQgb2YgYSBjeWNsZSBiZXR3ZWVuIHRoZSBjdXJyZW50Ci0tICAgICBmcmFt ZSBhbmQgaXRzIHByZXZpb3VzIGZyYW1lLiAgKi8KLS0gIGlmICh0aGlzX2ZyYW1lLT5sZXZlbCA9 PSAwKQotLSAgICBnZXRfZnJhbWVfaWQgKHRoaXNfZnJhbWUpOwotIAotICAgZnJhbWVfcGNfcCA9 IGdldF9mcmFtZV9wY19pZl9hdmFpbGFibGUgKHRoaXNfZnJhbWUsICZmcmFtZV9wYyk7Ci0gCi1k aWZmIC0tZ2l0IGEvZ2RiL2lubGluZS1mcmFtZS5jIGIvZ2RiL2lubGluZS1mcmFtZS5jCi0tLS0g YS9nZGIvaW5saW5lLWZyYW1lLmMKLSsrKyBiL2dkYi9pbmxpbmUtZnJhbWUuYwotQEAgLTE2MSw3 ICsxNjEsOCBAQCBpbmxpbmVfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNf ZnJhbWUsCi0gICAgICByZWFsIGZyYW1lJ3MgdGhpc19pZCBtZXRob2QuICBTbyB3ZSBtdXN0IGNh bGwKLSAgICAgIGdldF9wcmV2X2ZyYW1lX2Fsd2F5cy4gIEJlY2F1c2Ugd2UgYXJlIGlubGluZWQg aW50byBzb21lCi0gICAgICBmdW5jdGlvbiwgdGhlcmUgbXVzdCBiZSBwcmV2aW91cyBmcmFtZXMs IHNvIHRoaXMgaXMgc2FmZSAtIGFzCi0tICAgICBsb25nIGFzIHdlJ3JlIGNhcmVmdWwgbm90IHRv IGNyZWF0ZSBhbnkgY3ljbGVzLiAgKi8KLSsgICAgIGxvbmcgYXMgd2UncmUgY2FyZWZ1bCBub3Qg dG8gY3JlYXRlIGFueSBjeWNsZXMuICBTZWUgcmVsYXRlZAotKyAgICAgY29tbWVudHMgaW4gZ2V0 X3ByZXZfZnJhbWVfYWx3YXlzXzEuICAqLwotICAgKnRoaXNfaWQgPSBnZXRfZnJhbWVfaWQgKGdl dF9wcmV2X2ZyYW1lX2Fsd2F5cyAodGhpc19mcmFtZSkpOwotIAotICAgLyogV2UgbmVlZCBhIHZh bGlkIGZyYW1lIElELCBzbyB3ZSBuZWVkIHRvIGJlIGJhc2VkIG9uIGEgdmFsaWQKCmRpZmYgLS1n aXQgYS9nZGItcmhiejE5MTI5ODUtbGlic3RkYysrLWFzc2VydC5wYXRjaCBiL2dkYi1yaGJ6MTkx Mjk4NS1saWJzdGRjKystYXNzZXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAxOTZlMzA5Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTkxMjk4NS1saWJzdGRjKystYXNzZXJ0 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hF UyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJA cmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTcgRmViIDIwMjEgMTc6NTg6NTQgLTA3MDAKLVN1Ympl Y3Q6IGdkYi1yaGJ6MTkxMjk4NS1saWJzdGRjKystYXNzZXJ0LnBhdGNoCi0KLTs7IEJhY2twb3J0 IGZpeCBmb3IgbGlic3RkYysrIGFzc2VydCB3aGVuIHBlcmZvcm1pbmcgdGFiIGNvbXBsZXRpb24K LTs7IChSSCBCWiAxOTEyOTg1KS4KLQotRml4IGNvbXBsZXRpb24gcmVsYXRlZCBsaWJzdGRjKysg YXNzZXJ0IHdoZW4gdXNpbmcgLURfR0xJQkNYWF9ERUJVRwotCi1UaGlzIGNvbW1pdCBmaXhlcyBh IGxpYnN0ZGMrKyBhc3NlcnRpb24gZmFpbHVyZSBlbmNvdW50ZXJlZCB3aGVuCi1ydW5uaW5nIGdk Yi5iYXNlL2NvbXBsZXRpb24uZXhwLiAgSW4gb3JkZXIgdG8gc2VlIHRoaXMgcHJvYmxlbSwKLUdE QiBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIGZvbGxvdyBDRkxBR1MgYW5kIENYWEZMQUdTIGFzIHBh cnQKLW9mIHRoZSBjb25maWd1cmUgbGluZToKLQotICBDRkxBR1M9Jy1EX0dMSUJDWFhfREVCVUcn IENYWEZMQUdTPSctRF9HTElCQ1hYX0RFQlVHJwotCi0oQWxzbywgdGhpcyBwcm9ibGVtIHdhcyBl bmNvdW50ZXJlZCB1c2luZyBGZWRvcmEgcmF3aGlkZS4gIEl0IG1pZ2h0Ci1ub3QgYmUgcmVwcm9k dWNpYmxlIGluIEZlZG9yYSB2ZXJzaW9ucyBwcmlvciB0byBGZWRvcmEgMzQuKQotCi1Vc2luZyB0 aGUgZ2RiLmJhc2UvY29tcGxldGlvbi5leHAgdGVzdCBwcm9ncmFtLCB0aGUgcHJvYmxlbSBjYW4g YmUKLW9ic2VydmVkIGFzIGZvbGxvd3M6Ci0KLVtrZXZAcmF3aGlkZS0xIGdkYl0kIC4vZ2RiIC1x IHRlc3RzdWl0ZS9vdXRwdXRzL2dkYi5iYXNlL2NvbXBsZXRpb24vY29tcGxldGlvbgotUmVhZGlu ZyBzeW1ib2xzIGZyb20gdGVzdHN1aXRlL291dHB1dHMvZ2RiLmJhc2UvY29tcGxldGlvbi9jb21w bGV0aW9uLi4uCi0oZ2RiKSBzdGFydAotVGVtcG9yYXJ5IGJyZWFrcG9pbnQgMSBhdCAweDQwMTE3 OTogZmlsZSAuLi8uLi93b3JrdHJlZS1tYXN0ZXIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVh ay5jLCBsaW5lIDQzLgotU3RhcnRpbmcgcHJvZ3JhbTogdGVzdHN1aXRlL291dHB1dHMvZ2RiLmJh c2UvY29tcGxldGlvbi9jb21wbGV0aW9uCi0KLVRlbXBvcmFyeSBicmVha3BvaW50IDEsIG1haW4g KGFyZ2M9MSwgYXJndj0weDdmZmZmZmZmZDcxOCwgZW52cD0weDdmZmZmZmZmZDcyOCkgYXQgLi4v Li4vd29ya3RyZWUtbWFzdGVyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWsuYzo0MwotNDMJ ICAgIGlmIChhcmdjID09IDEyMzQ1KSB7ICAvKiBhbiB1bmxpa2VseSB2YWx1ZSA8IDJeMTYsIGlu IGNhc2UgdW5pbml0ZWQgKi8gLyogc2V0IGJyZWFrcG9pbnQgNiBoZXJlICovCi0oZ2RiKSBwIDxU QUI+L3Vzci9pbmNsdWRlL2MrKy8xMS9zdHJpbmdfdmlldzoyMTE6IGNvbnN0ZXhwciBjb25zdCB2 YWx1ZV90eXBlJiBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0cz46Om9wZXJh dG9yW10oc3RkOjpiYXNpY19zdHJpbmdfdmlldzxfQ2hhclQsIF9UcmFpdHM+OjpzaXplX3R5cGUp IGNvbnN0IFt3aXRoIF9DaGFyVCA9IGNoYXI7IF9UcmFpdHMgPSBzdGQ6OmNoYXJfdHJhaXRzPGNo YXI+OyBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0cz46OmNvbnN0X3JlZmVy ZW5jZSA9IGNvbnN0IGNoYXImOyBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0 cz46OnNpemVfdHlwZSA9IGxvbmcgdW5zaWduZWQgaW50XTogQXNzZXJ0aW9uICdfX3BvcyA8IHRo aXMtPl9NX2xlbicgZmFpbGVkLgotQWJvcnRlZCAoY29yZSBkdW1wZWQpCi0KLShOb3RlIHRoYXQg SSBhZGRlZCAiPFRBQj4iIHRvIG1ha2UgaXQgY2xlYXIgd2hlcmUgdGhlIHRhYiBrZXkgd2FzCi1w cmVzc2VkLikKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogYWRhLWxhbmcuYyAoYWRhX2ZvbGRfbmFt ZSk6IENoZWNrIGZvciBub24tZW1wdHkgc3RyaW5nIHByaW9yCi0JdG8gYWNjZXNzaW5nIGl0Lgot CShhZGFfbG9va3VwX25hbWVfaW5mbyk6IExpa2V3aXNlLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL2Fk YS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwotLS0tIGEvZ2RiL2FkYS1sYW5nLmMKLSsrKyBiL2dk Yi9hZGEtbGFuZy5jCi1AQCAtOTk3LDcgKzk5Nyw3IEBAIGFkYV9mb2xkX25hbWUgKGdkYjo6c3Ry aW5nX3ZpZXcgbmFtZSkKLSAgIGludCBsZW4gPSBuYW1lLnNpemUgKCk7Ci0gICBHUk9XX1ZFQ1Qg KGZvbGRfYnVmZmVyLCBmb2xkX2J1ZmZlcl9zaXplLCBsZW4gKyAxKTsKLSAKLS0gIGlmIChuYW1l WzBdID09ICdcJycpCi0rICBpZiAoIW5hbWUuZW1wdHkgKCkgJiYgbmFtZVswXSA9PSAnXCcnKQot ICAgICB7Ci0gICAgICAgc3RybmNweSAoZm9sZF9idWZmZXIsIG5hbWUuZGF0YSAoKSArIDEsIGxl biAtIDIpOwotICAgICAgIGZvbGRfYnVmZmVyW2xlbiAtIDJdID0gJ1wwMDAnOwotQEAgLTEzNTk3 LDcgKzEzNTk3LDcgQEAgYWRhX2xvb2t1cF9uYW1lX2luZm86OmFkYV9sb29rdXBfbmFtZV9pbmZv IChjb25zdCBsb29rdXBfbmFtZV9pbmZvICZsb29rdXBfbmFtZSkKLSB7Ci0gICBnZGI6OnN0cmlu Z192aWV3IHVzZXJfbmFtZSA9IGxvb2t1cF9uYW1lLm5hbWUgKCk7Ci0gCi0tICBpZiAodXNlcl9u YW1lWzBdID09ICc8JykKLSsgIGlmICghdXNlcl9uYW1lLmVtcHR5ICgpICYmIHVzZXJfbmFtZVsw XSA9PSAnPCcpCi0gICAgIHsKLSAgICAgICBpZiAodXNlcl9uYW1lLmJhY2sgKCkgPT0gJz4nKQot IAltX2VuY29kZWRfbmFtZQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTkzMTM0NC1iZmRfc2Vlay1l bGZfcmVhZF9ub3Rlcy5wYXRjaCBiL2dkYi1yaGJ6MTkzMTM0NC1iZmRfc2Vlay1lbGZfcmVhZF9u b3Rlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIxMmRjNi4uMDAwMDAw MAotLS0gYS9nZGItcmhiejE5MzEzNDQtYmZkX3NlZWstZWxmX3JlYWRfbm90ZXMucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPgot RGF0ZTogVGh1LCAyNSBNYXIgMjAyMSAxMDozMTo0OCAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnox OTMxMzQ0LWJmZF9zZWVrLWVsZl9yZWFkX25vdGVzLnBhdGNoCi0KLTs7IEJhY2twb3J0ICJTYXZl L3Jlc3RvcmUgZmlsZSBvZmZzZXQgd2hpbGUgcmVhZGluZyBub3RlcyBpbiBjb3JlIGZpbGUiCi07 OyAoS2VpdGggU2VpdHosIFJIQlogMTkzMTM0NCkKLQotQSByZWNlbnQgYnVnIChSSCBCWiAxOTMx MzQ0KSBoYXMgZXhwb3NlZCBhIGJ1ZyBpbiB0aGUgY29yZSBmaWxlCi1idWlsZC1JRCBzdXBwb3J0 IHRoYXQgSSBpbnRyb2R1Y2VkIGEgd2hpbGUgYWdvLiBJdCBpcyBwcmV0dHkKLWVhc3kgdG8gZGVt b25zdGF0ZSB0aGUgcHJvYmxlbSBmb2xsb3dpbmcgYSBzaW1wbGlmaWVkIHByb2NlZHVyZQotb3V0 bGluZWQgaW4gdGhhdCBidWc6Ci0KLVtzaGVsbDFdCi1zaGVsbDEkIC91c3IvbGliZXhlYy9xZW11 LWt2bQotCi1bc2hlbGwyXQotc2hlbGwyJCBwa2lsbCAtU0VHViAteCBxZW11LWt2bQotCi1bc2hl bGwxXQotU2VnbWVudGF0aW9uIGZhdWx0IChjb3JlIGR1bXBlZCkKLQotTG9hZCB0aGlzIGNvcmUg ZmlsZSBpbnRvIEdEQiB3aXRob3V0IHNwZWNpZnlpbmcgYW4gZXhlY3V0YWJsZQotKGFuIHVuZm9y dHVuYXRlIEZlZG9yYS9SSEVMLWlzbSksIGFuZCBHREIgd2lsbCBpbmZvcm0gdGhlIHVzZXIKLXRv IGluc3RhbGwgZGVidWdpbmZvIGZvciB0aGUgIm1pc3NpbmciIGV4ZWN1dGFibGU6Ci0KLSQgZ2Ri IC1ueCAtcSBjb3JlLjEyMzQ1Ci0uLi4KLU1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvIGZvciB0 aGUgbWFpbiBleGVjdXRhYmxlIGZpbGUKLVRyeTogZG5mIC0tZW5hYmxlcmVwbz0nKmRlYnVnKicg aW5zdGFsbCAvdXNyL2xpYi9kZWJ1Zy8uYnVpbGQtaWQvZTIvZTljNjZkMzExN2ZiMmJiYjViMmJl MTIyZjA0ZjI2NjRlNWRmNTQKLUNvcmUgd2FzIGdlbmVyYXRlZCBieSBgL3Vzci9saWJleGVjL3Fl bXUta3ZtJy4KLVByb2dyYW0gdGVybWluYXRlZCB3aXRoIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50 YXRpb24gZmF1bHQuCi0uLi4KLQotVGhlIHN1Z2dlc3RlZCBidWlsZC1JRCBpcyBhY3RhdWxseSBm b3IgZ21wIG5vdCBxZW11LWt2bS4gVGhlIHByb2JsZW0KLWxpZXMgaW4gX2JmZF9lbGZfY29yZV9m aW5kX2J1aWxkX2lkLCB3aGVyZSB3ZSBsb29wIG92ZXIgcHJvZ3JhbSBoZWFkZXJzCi1sb29raW5n IGZvciBub3RlIHNlZ21lbnRzOgotCi0gIC8qIFJlYWQgaW4gcHJvZ3JhbSBoZWFkZXJzIGFuZCBw YXJzZSBub3Rlcy4gICovCi0gIGZvciAoaSA9IDA7IGkgPCBpX2VoZHIuZV9waG51bTsgKytpLCAr K2lfcGhkcikKLSAgICB7Ci0gICAgICBFbGZfRXh0ZXJuYWxfUGhkciB4X3BoZHI7Ci0KLSAgICAg IGlmIChiZmRfYnJlYWQgKCZ4X3BoZHIsIHNpemVvZiAoeF9waGRyKSwgYWJmZCkgIT0gc2l6ZW9m ICh4X3BoZHIpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICBlbGZfc3dhcF9waGRyX2luIChh YmZkLCAmeF9waGRyLCBpX3BoZHIpOwotCi0gICAgICBpZiAoaV9waGRyLT5wX3R5cGUgPT0gUFRf Tk9URSAmJiBpX3BoZHItPnBfZmlsZXN6ID4gMCkKLSAgICAgICAgewotICAgICAgICAgIGVsZl9y ZWFkX25vdGVzIChhYmZkLCBvZmZzZXQgKyBpX3BoZHItPnBfb2Zmc2V0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICBpX3BoZHItPnBfZmlsZXN6LCBpX3BoZHItPnBfYWxpZ24pOwotCi0gICAg ICAgICAgaWYgKGFiZmQtPmJ1aWxkX2lkICE9IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gVFJV RTsKLSAgICAgICAgfQotCi1lbGZfcmVhZF9ub3RlcyB1c2VzIGJmZF9zZWVrIHRvIGZvcndhcmQg dGhlIHN0cmVhbSB0byB0aGUgbG9jYXRpb24gb2YKLXRoZSBub3RlIHNlZ21lbnQuIFdoZW4gY29u dHJvbCByZXR1cm5zIHRvIF9iZmRfZWxmX2NvcmVfZmlsZF9idWlsZF9pZCwKLXRoZSBzdHJlYW0g aXMgbm8gbG9uZ2VyIGluIHRoZSBsb2NhdGlvbiBsb29raW5nIGF0IHByb2dyYW0gaGVhZGVycywg YW5kCi1hbGwgc3Vic2VxdWVudCByZWFkcyB3aWxsIHJlYWQgZnJvbSB0aGUgd3JvbmcgZmlsZSBv ZmZzZXQuCi0KLVRvIGZpeCB0aGlzLCB0aGlzIHBhdGNoIG1hcmtzIHRoZSBzdHJlYW0gbG9jYXRp b24gYW5kIGVuc3VyZXMKLXRoYXQgaXQgaXMgcmVzdG9yZWQgYWZ0ZXIgZWxmX3JlYWRfbm90ZXMg aXMgY2FsbGVkLgotCi1iZmQvQ2hhbmdlTG9nCi0yMDIxLTAzLTI2ICBLZWl0aCBTZWl0eiAgPGtl aXRoc0ByZWRoYXQuY29tPgotCi0JKiBlbGZjb3JlLmggKF9iZmRfZWxmX2NvcmVfZmluZF9idWls ZF9pZCk6IFNlZWsgZmlsZQotCW9mZnNldCBvZiBwcm9ncmFtIGhlYWRlcnMgYWZ0ZXIgY2FsbGlu ZyBlbGZfcmVhZF9ub3Rlcy4KLQotZGlmZiAtLWdpdCBhL2JmZC9lbGZjb3JlLmggYi9iZmQvZWxm Y29yZS5oCi0tLS0gYS9iZmQvZWxmY29yZS5oCi0rKysgYi9iZmQvZWxmY29yZS5oCi1AQCAtNDEw LDYgKzQxMCwxMyBAQCBOQU1FKF9iZmRfZWxmLCBjb3JlX2ZpbmRfYnVpbGRfaWQpCi0gCXsKLSAJ ICBlbGZfcmVhZF9ub3RlcyAoYWJmZCwgb2Zmc2V0ICsgaV9waGRyLT5wX29mZnNldCwKLSAJCQkg IGlfcGhkci0+cF9maWxlc3osIGlfcGhkci0+cF9hbGlnbik7Ci0rCi0rCSAgLyogTWFrZSBzdXJl IEFCRkQgcmV0dXJucyB0byBwcm9jZXNzaW5nIHRoZSBwcm9ncmFtIGhlYWRlcnMuICAqLwotKwkg IGlmIChiZmRfc2VlayAoYWJmZCwgKGZpbGVfcHRyKSAob2Zmc2V0ICsgaV9laGRyLmVfcGhvZmYK LSsJCQkJCSAgKyAoaSArIDEpICogc2l6ZW9mICh4X3BoZHIpKSwKLSsJCQlTRUVLX1NFVCkgIT0g MCkKLSsJICAgIGdvdG8gZmFpbDsKLSsKLSAJICBpZiAoYWJmZC0+YnVpbGRfaWQgIT0gTlVMTCkK LSAJICAgIHJldHVybiBUUlVFOwotIAl9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxOTQxMDgwLWZp eC1nZGJzZXJ2ZXItaGFuZy5wYXRjaCBiL2dkYi1yaGJ6MTk0MTA4MC1maXgtZ2Ric2VydmVyLWhh bmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MzlkZTEuLjAwMDAwMDAK LS0tIGEvZ2RiLXJoYnoxOTQxMDgwLWZpeC1nZGJzZXJ2ZXItaGFuZy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDU4ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRl OiBGcmksIDE5IE1hciAyMDIxIDE1OjE0OjA0IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NDEw ODAtZml4LWdkYnNlcnZlci1oYW5nLnBhdGNoCi0KLTs7IEJhY2twb3J0IGNoYW5nZSB3aGljaCBm aXhlcyBnZGJzZXJ2ZXIgdGVzdGluZyBoYW5nIG9uIGYzNCBhbmQgcmF3aGlkZS4KLQotRml4IHBv dGVudGlhbCBoYW5nIGR1cmluZyBnZGJzZXJ2ZXIgdGVzdGluZwotCi1XZSdyZSBjdXJyZW50bHkg c2VlaW5nIHRlc3Rpbmcgb2YgbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlciBoYW5nIHdoaWxlCi10 ZXN0aW5nIHRoZSB4ODZfNjQgYXJjaGl0ZWN0dXJlIG9uIGJvdGggRmVkb3JhIDM0IGFuZCBGZWRv cmEgUmF3aGlkZS4KLVRoZSB0ZXN0IHJlc3BvbnNpYmxlIGZvciB0aGUgaGFuZyBpcyBnZGIudGhy ZWFkcy9mb3JrLXBsdXMtdGhyZWFkcy5leHAuCi0KLVdoaWxlIHRoZXJlIGlzIGNsZWFybHkgYSBw cm9ibGVtL2J1ZyB3aXRoIHRoaXMgdGVzdCBvbiBGMzQgYW5kCi1SYXdoaWRlLCBpdCdzIGFsc28g dGhlIGNhc2UgdGhhdCB0ZXN0aW5nIHNob3VsZCBub3QgaGFuZy4gIFRoaXMgY29tbWl0Ci1wcmV2 ZW50cyB0aGUgaGFuZyBieSB3YWl0aW5nIHdpdGggdGhlICItbm93YWl0IiBmbGFnIGluCi1jbG9z ZV9nZGJzZXJ2ZXIuCi0KLVRoZSAtbm93YWl0IGZsYWcgaXMgYWxzbyB1c2VkIGluIHRoZSBraWxs X3dhaXRfc3Bhd25lZF9wcm9jZXNzIHByb2MgaW4KLWdkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAs IHNvIHRoZXJlIGlzIHByZWNlZGVudCBmb3IgZG9pbmcgdGhpcy4KLQotVGhlcmUgYXJlIGFsc28g MTUgb3RoZXIgdXNlcyBvZiAid2FpdCAtaSIgc2NhdHRlcmVkIHRocm91Z2hvdXQgdGhlCi10ZXN0 IHN1aXRlLiAgV2hpbGUgaXQncyB0ZW1wdGluZyB0byBjaGFuZ2UgdGhlc2UgdG8gYWxzbyB1c2Ug dGhlCi0tbm93YWl0IGZsYWcsIEkgdGhpbmsgaXQgbWlnaHQgYmUgc2FmZXIgdG8gZGVmZXIgZG9p bmcgc28gdW50aWwgd2UKLWFjdHVhbGx5IHNlZSBhIHByb2JsZW0uCi0KLUkndmUgdGVzdGVkIHRo aXMgcGF0Y2ggb24gRmVkb3JhIDMyLCAzMywgMzQsIGFuZCBSYXdoaWRlLiAgUmVzdWx0cyBhcmUK LWNvbXBhcmFibGUgb24gRmVkb3JhIDMyIGFuZCAzMy4gIE9uIEZlZG9yYSAzNCBhbmQgUmF3aGlk ZSwgd2l0aCB0aGlzCi1jb21taXQgaW4gcGxhY2UsIHRlc3RpbmcgY29tcGxldGVzIHdoZW4gdGhl IHRhcmdldF9ib2FyZCBpcwotbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci4gIE9uIHRob3NlIE9T ZXMsIHdoZW4gbm90IHVzaW5nIHRoaXMgY29tbWl0LAotdGVzdGluZyB1c3VhbGx5IGhhbmdzIGR1 ZSB0byBhIHByb2JsZW0gd2l0aAotZ2RiLnRocmVhZHMvZm9yay1wbHVzLXRocmVhZHMuZXhwLiAg SSd2ZSBhbHNvIHRlc3RlZCBvbiBhbGwgb2YgdGhlCi1tZW50aW9uZWQgT1NlcyB3aXRoIHRhcmdl dF9ib2FyZD1uYXRpdmUtZ2Ric2VydmVyOyBmb3IgdGhhdCB0ZXN0aW5nLAotSSBhY2hpZXZlZCBj b21wYXJhYmxlIHJlc3VsdHMgb3ZlciBhIG51bWJlciBvZiBydW5zLiAgKFVuZm9ydHVuYXRlbHkK LXJlc3VsdHMgYXJlIHJhcmVseSBpZGVudGljYWwgZHVlIHRvIHJhY3kgdGVzdHMuKQotCi1nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZzoKLQotCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAoZ2Ri c2VydmVyX2V4aXQpOiBVc2UgdGhlCi0JIi1ub3dhaXQiIGZsYWcgd2hlbiB3YWl0aW5nIGZvciBn ZGJzZXJ2ZXIgdG8gZXhpdC4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNl cnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4 cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLUBAIC00MTgsNyArNDE4LDEy IEBAIHByb2MgY2xvc2VfZ2Ric2VydmVyIHt9IHsKLSAgICAgdmVyYm9zZSAiUXVpdHRpbmcgR0RC c2VydmVyIgotIAotICAgICBjYXRjaCAiY2xvc2UgLWkgJHNlcnZlcl9zcGF3bl9pZCIKLS0gICAg Y2F0Y2ggIndhaXQgLWkgJHNlcnZlcl9zcGF3bl9pZCIKLSsKLSsgICAgIyBJZiBnZGJzZXJ2ZXIg bWlzYmVoYXZlcywgYW5kIGlnbm9yZXMgdGhlIGNsb3NlLCB3YWl0aW5nIGZvciBpdAotKyAgICAj IHdpdGhvdXQgdGhlIC1ub3dhaXQgZmxhZyB3aWxsIGNhdXNlIHRlc3RpbmcgdG8gaGFuZy4gIFBh c3NpbmcKLSsgICAgIyAtbm93YWl0IG1ha2VzIGV4cGVjdCB0ZWxsIFRjbCB0byB3YWl0IGZvciB0 aGUgcHJvY2VzcyBpbiB0aGUKLSsgICAgIyBiYWNrZ3JvdW5kLgotKyAgICBjYXRjaCAid2FpdCAt bm93YWl0IC1pICRzZXJ2ZXJfc3Bhd25faWQiCi0gICAgIHVuc2V0IHNlcnZlcl9zcGF3bl9pZAot IH0KLSAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctY29udmVydC1lbnVtLXJhbmdlX3R5 cGUucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctY29udmVydC1lbnVtLXJhbmdlX3R5cGUucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjZjgwNDIuLjAwMDAwMDAKLS0tIGEvZ2Ri LXJoYnoxOTY0MTY3LWNvbnZlcnQtZW51bS1yYW5nZV90eXBlLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzc1ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBN b24sIDI0IE1heSAyMDIxIDE3OjEwOjI4IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NjQxNjct Y29udmVydC1lbnVtLXJhbmdlX3R5cGUucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2twb3J0IEFu ZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGNoYW5nZXMgZW51bQotOzsgcmFuZ2VfdHlwZSBp bnRvIGEgYml0IGZpZWxkIGVudW0uCi0KLWdkYjogQ29udmVydCBlbnVtIHJhbmdlX3R5cGUgdG8g YSBiaXQgZmllbGQgZW51bQotCi1UaGUgZXhwcmVzc2lvbiByYW5nZV90eXBlIGVudW0gcmVwcmVz ZW50cyB0aGUgZm9sbG93aW5nIGlkZWFzOgotCi0gIC0gTG93ZXIgYm91bmQgaXMgc2V0IHRvIGRl ZmF1bHQsCi0gIC0gVXBwZXIgYm91bmQgaXMgc2V0IHRvIGRlZmF1bHQsCi0gIC0gVXBwZXIgYm91 bmQgaXMgZXhjbHVzaXZlLgotCi1UaGVyZSBhcmUgY3VycmVudGx5IDYgZW50cmllcyBpbiB0aGUg ZW51bSB0byByZXByZXNlbnQgdGhlIGNvbWJpbmF0aW9uCi1vZiBhbGwgdGhvc2UgaWRlYXMuCi0K LUluIGEgZnV0dXJlIGNvbW1pdCBJJ2QgbGlrZSB0byBhZGQgc3RyaWRlIGluZm9ybWF0aW9uIHRv IHRoZSByYW5nZSwKLXRoaXMgY291bGQgaW4gdGhlb3J5IGFwcGVhciB3aXRoIGFueSBvZiB0aGUg ZXhpc3RpbmcgZW51bSBlbnRyaWVzLCBzbwotdGhpcyB3b3VsZCB0YWtlIHVzIHRvIDEyIGVudW0g ZW50cmllcy4KLQotVGhpcyBmZWVscyBsaWtlIGl0cyBnZXR0aW5nIGEgbGl0dGxlIG91dCBvZiBo YW5kLCBzbyBpbiB0aGlzIGNvbW1pdCBJCi1zd2l0Y2ggdGhlIHJhbmdlX3R5cGUgZW51bSBvdmVy IHRvIGJlaW5nIGEgZmxhZ3Mgc3R5bGUgZW51bS4gIFRoZXJlJ3MKLW9uZSBlbnRyeSB0byByZXBy ZXNlbnQgbm8gZmxhZ3MgYmVpbmcgc2V0LCB0aGVuIDMgZmxhZ3MgdG8gcmVwcmVzZW50Ci10aGUg MyBpZGVhcyBhYm92ZS4gIEFkZGluZyBzdHJpZGUgaW5mb3JtYXRpb24gd2lsbCByZXF1aXJlIGFk ZGluZyBvbmx5Ci1vbmUgbW9yZSBlbnVtIGZsYWcuCi0KLUkndmUgdGhlbiBnb25lIHRocm91Z2gg YW5kIHVwZGF0ZWQgdGhlIGNvZGUgdG8gaGFuZGxlIHRoaXMgY2hhbmdlLgotCi1UaGVyZSBzaG91 bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0KLWdkYi9D aGFuZ2VMb2c6Ci0KLQkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IFVwZGF0 ZSB0byByZWZsZWN0IGNoYW5nZXMgdG8KLQllbnVtIHJhbmdlX3R5cGUuCi0JKGR1bXBfc3ViZXhw X2JvZHlfc3RhbmRhcmQpOiBMaWtld2lzZS4KLQkqIGV4cHJlc3Npb24uaCAoZW51bSByYW5nZV90 eXBlKTogQ29udmVydCB0byBhIGJpdCBmaWVsZCBlbnVtLCBhbmQKLQltYWtlIHRoZSBlbnVtIHVu c2lnbmVkLgotCSogZi1leHAueSAoc3VicmFuZ2UpOiBVcGRhdGUgdG8gcmVmbGVjdCBjaGFuZ2Vz IHRvIGVudW0KLQlyYW5nZV90eXBlLgotCSogZi1sYW5nLmMgKHZhbHVlX2Y5MF9zdWJhcnJheSk6 IExpa2V3aXNlLgotCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogTGlrZXdp c2UuCi0JKiBydXN0LWV4cC55IChydXN0X3BhcnNlcjo6Y29udmVydF9hc3RfdG9fZXhwcmVzc2lv bik6IExpa2V3aXNlLgotCSogcnVzdC1sYW5nLmMgKHJ1c3RfcmFuZ2UpOiBMaWtld2lzZS4KLQko cnVzdF9jb21wdXRlX3JhbmdlKTogTGlrZXdpc2UuCi0JKHJ1c3Rfc3Vic2NyaXB0KTogTGlrZXdp c2UuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBwcmludC5jCi0tLS0g YS9nZGIvZXhwcHJpbnQuYwotKysrIGIvZ2RiL2V4cHByaW50LmMKLUBAIC01ODQsMTcgKzU4NCwx MyBAQCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAq cG9zLAotIAkgIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGMgKyAxXS5sb25nY29uc3QpOwot IAkqcG9zICs9IDI7Ci0gCi0tCWlmIChyYW5nZV90eXBlID09IE5PTkVfQk9VTkRfREVGQVVMVF9F WENMVVNJVkUKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFRfRVhDTFVT SVZFKQotKwlpZiAocmFuZ2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKQotIAkg IGZwdXRzX2ZpbHRlcmVkICgiRVhDTFVTSVZFXyIsIHN0cmVhbSk7Ci0gCWZwdXRzX2ZpbHRlcmVk ICgiUkFOR0UoIiwgc3RyZWFtKTsKLS0JaWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZB VUxUCi0tCSAgICB8fCByYW5nZV90eXBlID09IE5PTkVfQk9VTkRfREVGQVVMVAotLQkgICAgfHwg cmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKQotKwlpZiAoIShyYW5n ZV90eXBlICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpKQotIAkgIHByaW50X3N1YmV4cCAoZXhw LCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiLi4i LCBzdHJlYW0pOwotLQlpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVAotLQkgICAg fHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCWlmICghKHJhbmdlX3R5cGUg JiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3Ms IHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVh bSk7Ci0gCXJldHVybjsKLUBAIC0xMTE0LDM2ICsxMTEwLDE5IEBAIGR1bXBfc3ViZXhwX2JvZHlf c3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgbG9uZ2VzdF90b19pbnQgKGV4 cC0+ZWx0c1tlbHRdLmxvbmdjb25zdCk7Ci0gCWVsdCArPSAyOwotIAotLQlzd2l0Y2ggKHJhbmdl X3R5cGUpCi0tCSAgewotLQkgIGNhc2UgQk9USF9CT1VORF9ERUZBVUxUOgotLQkgICAgZnB1dHNf ZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKLS0JICAgIGJyZWFrOwotLQkgIGNhc2Ug TE9XX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICcuLkVYUCci LCBzdHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBMT1dfQk9VTkRfREVGQVVMVF9FWENM VVNJVkU6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIkV4Y2x1c2l2ZVJhbmdlICcuLkVYUCciLCBz dHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBISUdIX0JPVU5EX0RFRkFVTFQ6Ci0tCSAg ICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLiciLCBzdHJlYW0pOwotLQkgICAgYnJlYWs7 Ci0tCSAgY2FzZSBOT05FX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIlJh bmdlICdFWFAuLkVYUCciLCBzdHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBOT05FX0JP VU5EX0RFRkFVTFRfRVhDTFVTSVZFOgotLQkgICAgZnB1dHNfZmlsdGVyZWQgKCJFeGNsdXNpdmVS YW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKLS0JICAgIGJyZWFrOwotLQkgIGRlZmF1bHQ6Ci0t CSAgICBmcHV0c19maWx0ZXJlZCAoIkludmFsaWQgUmFuZ2UhIiwgc3RyZWFtKTsKLS0JICAgIGJy ZWFrOwotLQkgIH0KLSsJaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0VYQ0xVU0lW RSkKLSsJICBmcHV0c19maWx0ZXJlZCAoIkV4Y2x1c2l2ZSIsIHN0cmVhbSk7Ci0rCWZwdXRzX2Zp bHRlcmVkICgiUmFuZ2UgJyIsIHN0cmVhbSk7Ci0rCWlmICghKHJhbmdlX3R5cGUgJiBSQU5HRV9M T1dfQk9VTkRfREVGQVVMVCkpCi0rCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAiLCBzdHJlYW0pOwot KwlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKLSsJaWYgKCEocmFuZ2VfdHlwZSAmIFJB TkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0rCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAiLCBzdHJl YW0pOwotKwlmcHV0c19maWx0ZXJlZCAoIiciLCBzdHJlYW0pOwotIAotLQlpZiAocmFuZ2VfdHlw ZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VO RF9ERUZBVUxUKQotKwlpZiAoIShyYW5nZV90eXBlICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQp KQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLS0JaWYgKHJhbmdl X3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9C T1VORF9ERUZBVUxUKQotKwlpZiAoIShyYW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VORF9ERUZB VUxUKSkKLSAJICBlbHQgPSBkdW1wX3N1YmV4cCAoZXhwLCBzdHJlYW0sIGVsdCk7Ci0gICAgICAg fQotICAgICAgIGJyZWFrOwotZGlmZiAtLWdpdCBhL2dkYi9leHByZXNzaW9uLmggYi9nZGIvZXhw cmVzc2lvbi5oCi0tLS0gYS9nZGIvZXhwcmVzc2lvbi5oCi0rKysgYi9nZGIvZXhwcmVzc2lvbi5o Ci1AQCAtMTg1LDIyICsxODUsMjIgQEAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lv biAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gICAgb3IgaW5jbHVz aXZlLiAgU28gd2UgaGF2ZSBzaXggc29ydHMgb2Ygc3VicmFuZ2UuICBUaGlzIGVudW1lcmF0aW9u Ci0gICAgdHlwZSBpcyB0byBpZGVudGlmeSB0aGlzLiAgKi8KLSAKLS1lbnVtIHJhbmdlX3R5cGUK LStlbnVtIHJhbmdlX3R5cGUgOiB1bnNpZ25lZAotIHsKLS0gIC8qIE5laXRoZXIgdGhlIGxvdyBu b3IgdGhlIGhpZ2ggYm91bmQgd2FzIGdpdmVuIC0tIHNvIHRoaXMgcmVmZXJzIHRvCi0tICAgICB0 aGUgZW50aXJlIGF2YWlsYWJsZSByYW5nZS4gICovCi0tICBCT1RIX0JPVU5EX0RFRkFVTFQsCi0t ICAvKiBUaGUgbG93IGJvdW5kIHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBoaWdoIGJvdW5kIGlzIGlu Y2x1c2l2ZS4gICovCi0tICBMT1dfQk9VTkRfREVGQVVMVCwKLS0gIC8qIFRoZSBoaWdoIGJvdW5k IHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBsb3cgYm91bmQgaW4gaW5jbHVzaXZlLiAgKi8KLS0gIEhJ R0hfQk9VTkRfREVGQVVMVCwKLS0gIC8qIEJvdGggYm91bmRzIHdlcmUgZ2l2ZW4gYW5kIGJvdGgg YXJlIGluY2x1c2l2ZS4gICovCi0tICBOT05FX0JPVU5EX0RFRkFVTFQsCi0tICAvKiBUaGUgbG93 IGJvdW5kIHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBoaWdoIGJvdW5kIGlzIGV4Y2x1c2l2ZS4gICov Ci0tICBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFLAotLSAgLyogQm90aCBib3VuZHMgd2Vy ZSBnaXZlbi4gIFRoZSBsb3cgYm91bmQgaXMgaW5jbHVzaXZlIGFuZCB0aGUgaGlnaAotLSAgICAg Ym91bmQgaXMgZXhjbHVzaXZlLiAgKi8KLS0gIExPV19CT1VORF9ERUZBVUxUX0VYQ0xVU0lWRSwK LSsgIC8qIFRoaXMgaXMgYSBzdGFuZGFyZCByYW5nZS4gIEJvdGggdGhlIGxvd2VyIGFuZCB1cHBl ciBib3VuZHMgYXJlCi0rICAgICBkZWZpbmVkLCBhbmQgdGhlIGJvdW5kcyBhcmUgaW5jbHVzaXZl LiAgKi8KLSsgIFJBTkdFX1NUQU5EQVJEID0gMCwKLSsKLSsgIC8qIFRoZSBsb3cgYm91bmQgd2Fz IG5vdCBnaXZlbi4gICovCi0rICBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCA9IDEgPDwgMCwKLSsK LSsgIC8qIFRoZSBoaWdoIGJvdW5kIHdhcyBub3QgZ2l2ZW4uICAqLwotKyAgUkFOR0VfSElHSF9C T1VORF9ERUZBVUxUID0gMSA8PCAxLAotKwotKyAgLyogVGhlIGhpZ2ggYm91bmQgb2YgdGhpcyBy YW5nZSBpcyBleGNsdXNpdmUuICAqLwotKyAgUkFOR0VfSElHSF9CT1VORF9FWENMVVNJVkUgPSAx IDw8IDIsCi0gfTsKLSAKLStERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJhbmdlX3R5cGUsIHJh bmdlX3R5cGVzKTsKLSsKLSAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KLWRp ZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9mLWV4cC55Ci0tLS0gYS9nZGIvZi1leHAueQot KysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0yODcsMjYgKzI4NywzMCBAQCBhcmdsaXN0CToJYXJnbGlz dCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAvKiBUaGVyZSBhcmUgZm91ciBzb3J0cyBv ZiBzdWJyYW5nZSB0eXBlcyBpbiBGOTAuICAqLwotIAotIHN1YnJhbmdlOglleHAgJzonIGV4cAkl cHJlYyBBQk9WRV9DT01NQQotLQkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOyAKLS0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBOT05FX0JPVU5E X0RFRkFVTFQpOwotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFJBTkdFX1NUQU5EQVJEKTsK LSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQotIAk7Ci0g Ci0gc3VicmFuZ2U6CWV4cCAnOicJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKLS0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2Nz dCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25n Y3N0IChwc3RhdGUsCi0rCQkJCQkJIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCk7Ci0gCQkJICB3 cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSAJOwotIAotIHN1YnJh bmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0 ZSwgTE9XX0JPVU5EX0RFRkFVTFQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3Rh dGUsCi0rCQkJCQkJIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKTsKLSAJCQkgIHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQotIAk7Ci0gCi0gc3VicmFuZ2U6CSc6Jwkl cHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIEJPVEhfQk9VTkRf REVGQVVMVCk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwKLSsJCQkJCQkg KFJBTkdFX0xPV19CT1VORF9ERUZBVUxUCi0rCQkJCQkJICB8IFJBTkdFX0hJR0hfQk9VTkRfREVG QVVMVCkpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9 Ci0gCTsKLSAKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmMgYi9nZGIvZi1sYW5nLmMKLS0tLSBh L2dkYi9mLWxhbmcuYwotKysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtMTMxLDEyICsxMzEsMTIgQEAg dmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAotIAotICAgKnBvcyArPSAz OwotIAotLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlw ZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCi0rICBpZiAocmFuZ2VfdHlwZSAmIFJBTkdFX0xPV19C T1VORF9ERUZBVUxUKQotICAgICBsb3dfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5sb3cuY29u c3RfdmFsICgpOwotICAgZWxzZQotICAgICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFs dWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLSAKLS0gIGlmIChyYW5n ZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRf REVGQVVMVCkKLSsgIGlmIChyYW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKQot ICAgICBoaWdoX2JvdW5kID0gcmFuZ2UtPmJvdW5kcyAoKS0+aGlnaC5jb25zdF92YWwgKCk7Ci0g ICBlbHNlCi0gICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAg KG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLWRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBi L2dkYi9wYXJzZS5jCi0tLS0gYS9nZGIvcGFyc2UuYwotKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC05 MjEsMjEgKzkyMSwxMyBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBl eHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIHJhbmdlX3R5cGUgPSAoZW51bSBy YW5nZV90eXBlKQotIAlsb25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25n Y29uc3QpOwotIAotLSAgICAgIHN3aXRjaCAocmFuZ2VfdHlwZSkKLS0JewotLQljYXNlIExPV19C T1VORF9ERUZBVUxUOgotLQljYXNlIExPV19CT1VORF9ERUZBVUxUX0VYQ0xVU0lWRToKLS0JY2Fz ZSBISUdIX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgYXJncyA9IDE7Ci0tCSAgYnJlYWs7Ci0tCWNhc2Ug Qk9USF9CT1VORF9ERUZBVUxUOgotLQkgIGFyZ3MgPSAwOwotLQkgIGJyZWFrOwotLQljYXNlIE5P TkVfQk9VTkRfREVGQVVMVDoKLS0JY2FzZSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFOgot LQkgIGFyZ3MgPSAyOwotLQkgIGJyZWFrOwotLQl9Ci0rICAgICAgLyogQXNzdW1lIHRoZSByYW5n ZSBoYXMgMiBhcmd1bWVudHMgKGxvdyBib3VuZCBhbmQgaGlnaCBib3VuZCksIHRoZW4KLSsJIHJl ZHVjZSB0aGUgYXJndW1lbnQgY291bnQgaWYgYW55IGJvdW5kcyBhcmUgc2V0IHRvIGRlZmF1bHQu ICAqLwotKyAgICAgIGFyZ3MgPSAyOwotKyAgICAgIGlmIChyYW5nZV90eXBlICYgUkFOR0VfTE9X X0JPVU5EX0RFRkFVTFQpCi0rCS0tYXJnczsKLSsgICAgICBpZiAocmFuZ2VfdHlwZSAmIFJBTkdF X0hJR0hfQk9VTkRfREVGQVVMVCkKLSsJLS1hcmdzOwotIAotICAgICAgIGJyZWFrOwotIAotZGlm ZiAtLWdpdCBhL2dkYi9ydXN0LWV4cC55IGIvZ2RiL3J1c3QtZXhwLnkKLS0tLSBhL2dkYi9ydXN0 LWV4cC55Ci0rKysgYi9nZGIvcnVzdC1leHAueQotQEAgLTI0OTIsMjQgKzI0OTIsMjkgQEAgcnVz dF9wYXJzZXI6OmNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKGNvbnN0IHN0cnVjdCBydXN0X29w ICpvcGVyYXRpb24sCi0gCi0gICAgIGNhc2UgT1BfUkFOR0U6Ci0gICAgICAgewotLQllbnVtIHJh bmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKLSsJZW51bSByYW5nZV90eXBlIGtp bmQgPSAoUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUCi0rCQkJCXwgUkFOR0VfTE9XX0JPVU5EX0RF RkFVTFQpOwotIAotIAlpZiAob3BlcmF0aW9uLT5sZWZ0Lm9wICE9IE5VTEwpCi0gCSAgewotIAkg ICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAob3BlcmF0aW9uLT5sZWZ0Lm9wLCB0b3ApOwot LQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKLSsJICAgIGtpbmQgJj0gflJBTkdFX0xP V19CT1VORF9ERUZBVUxUOwotIAkgIH0KLSAJaWYgKG9wZXJhdGlvbi0+cmlnaHQub3AgIT0gTlVM TCkKLSAJICB7Ci0gCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChvcGVyYXRpb24tPnJp Z2h0Lm9wLCB0b3ApOwotLQkgICAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLQkg ICAgICBraW5kID0gKG9wZXJhdGlvbi0+aW5jbHVzaXZlCi0tCQkgICAgICA/IExPV19CT1VORF9E RUZBVUxUIDogTE9XX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKTsKLSsJICAgIGlmIChraW5kID09 IChSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQgfCBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi0r CSAgICAgIHsKLSsJCWtpbmQgPSBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVDsKLSsJCWlmICghb3Bl cmF0aW9uLT5pbmNsdXNpdmUpCi0rCQkgIGtpbmQgfD0gUkFOR0VfSElHSF9CT1VORF9FWENMVVNJ VkU7Ci0rCSAgICAgIH0KLSAJICAgIGVsc2UKLSAJICAgICAgewotLQkJZ2RiX2Fzc2VydCAoa2lu ZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQpOwotLQkJa2luZCA9IChvcGVyYXRpb24tPmluY2x1c2l2 ZQotLQkJCT8gTk9ORV9CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxUX0VYQ0xVU0lW RSk7Ci0rCQlnZGJfYXNzZXJ0IChraW5kID09IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCk7Ci0r CQlraW5kID0gUkFOR0VfU1RBTkRBUkQ7Ci0rCQlpZiAoIW9wZXJhdGlvbi0+aW5jbHVzaXZlKQot KwkJICBraW5kIHw9IFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFOwotIAkgICAgICB9Ci0gCSAg fQotIAllbHNlCi1kaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5j Ci0tLS0gYS9nZGIvcnVzdC1sYW5nLmMKLSsrKyBiL2dkYi9ydXN0LWxhbmcuYwotQEAgLTEwODIs MTMgKzEwODIsMTEgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpw b3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSAgIGtpbmQgPSAoZW51bSByYW5nZV90eXBlKSBsb25n ZXN0X3RvX2ludCAoZXhwLT5lbHRzWypwb3MgKyAxXS5sb25nY29uc3QpOwotICAgKnBvcyArPSAz OwotIAotLSAgaWYgKGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTk9ORV9C T1VORF9ERUZBVUxUCi0tICAgICAgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVT SVZFKQotKyAgaWYgKCEoa2luZCAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSAgICAgbG93 ID0gZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRlKTsKLS0gIGlmIChr aW5kID09IExPV19CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTE9XX0JPVU5EX0RFRkFVTFRfRVhD TFVTSVZFCi0tICAgICAgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBO T05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKQotKyAgaWYgKCEoa2luZCAmIFJBTkdFX0hJR0hf Qk9VTkRfREVGQVVMVCkpCi0gICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4 cCwgcG9zLCBub3NpZGUpOwotLSAgYm9vbCBpbmNsdXNpdmUgPSAoa2luZCA9PSBOT05FX0JPVU5E X0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCk7Ci0rICBib29sIGluY2x1c2l2 ZSA9ICEoa2luZCAmIFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKTsKLSAKLSAgIGlmIChub3Np ZGUgPT0gRVZBTF9TS0lQKQotICAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0IChidWlsdGlu X3R5cGUgKGV4cC0+Z2RiYXJjaCktPmJ1aWx0aW5faW50LCAxKTsKLUBAIC0xMTcxLDEzICsxMTY5 LDEzIEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVt IG5vc2lkZSBub3NpZGUpCi0gc3RhdGljIHZvaWQKLSBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAotIAkJICAgIExPTkdFU1QgKmxvdywg TE9OR0VTVCAqaGlnaCwKLS0JCSAgICBlbnVtIHJhbmdlX3R5cGUgKmtpbmQpCi0rCQkgICAgcmFu Z2VfdHlwZXMgKmtpbmQpCi0gewotICAgaW50IGk7Ci0gCi0gICAqbG93ID0gMDsKLSAgICpoaWdo ID0gMDsKLS0gICpraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOwotKyAgKmtpbmQgPSBSQU5HRV9M T1dfQk9VTkRfREVGQVVMVCB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsKLSAKLSAgIGlmICh0 eXBlLT5udW1fZmllbGRzICgpID09IDApCi0gICAgIHJldHVybjsKLUBAIC0xMTg1LDE1ICsxMTgz LDE1IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1 ZSAqcmFuZ2UsCi0gICBpID0gMDsKLSAgIGlmIChzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlw ZSwgMCksICJzdGFydCIpID09IDApCi0gICAgIHsKLS0gICAgICAqa2luZCA9IEhJR0hfQk9VTkRf REVGQVVMVDsKLSsgICAgICAqa2luZCA9IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsKLSAgICAg ICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCAwKSk7Ci0gICAgICAg KytpOwotICAgICB9Ci0gICBpZiAodHlwZS0+bnVtX2ZpZWxkcyAoKSA+IGkKLSAgICAgICAmJiBz dHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJlbmQiKSA9PSAwKQotICAgICB7Ci0t ICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUCi0tCSAgICAgICA/IExP V19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxUKTsKLSsgICAgICAqa2luZCA9ICgq a2luZCA9PSAoUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQgfCBSQU5HRV9ISUdIX0JPVU5EX0RFRkFV TFQpCi0rCSAgICAgICA/IFJBTkdFX0xPV19CT1VORF9ERUZBVUxUIDogUkFOR0VfU1RBTkRBUkQp OwotICAgICAgICpoaWdoID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCBpKSk7 Ci0gCi0gICAgICAgaWYgKHJ1c3RfaW5jbHVzaXZlX3JhbmdlX3R5cGVfcCAodHlwZSkpCi1AQCAt MTIxMSw3ICsxMjA5LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCi0gICBzdHJ1Y3QgdHlwZSAqcmhzdHlwZTsK LSAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwotICAgLyogSW5pdGlhbGl6ZWQgdG8gYXBwZWFz ZSB0aGUgY29tcGlsZXIuICAqLwotLSAgZW51bSByYW5nZV90eXBlIGtpbmQgPSBCT1RIX0JPVU5E X0RFRkFVTFQ7Ci0rICByYW5nZV90eXBlcyBraW5kID0gUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQg fCBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQ7Ci0gICBMT05HRVNUIGhpZ2ggPSAwOwotICAgaW50 IHdhbnRfc2xpY2UgPSAwOwotIAotQEAgLTEzMDgsOCArMTMwNiw3IEBAIHJ1c3Rfc3Vic2NyaXB0 IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAot ICAgICAgIGVsc2UKLSAJZXJyb3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUi KSk7Ci0gCi0tICAgICAgaWYgKHdhbnRfc2xpY2UKLS0JICAmJiAoa2luZCA9PSBCT1RIX0JPVU5E X0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCkpCi0rICAgICAgaWYgKHdhbnRf c2xpY2UgJiYgKGtpbmQgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi0gCWxvdyA9IGxvd19i b3VuZDsKLSAgICAgICBpZiAobG93IDwgMCkKLSAJZXJyb3IgKF8oIkluZGV4IGxlc3MgdGhhbiB6 ZXJvIikpOwotQEAgLTEzMjcsNyArMTMyNCw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAotIAkgIENPUkVfQURE UiBhZGRyOwotIAkgIHN0cnVjdCB2YWx1ZSAqYWRkcnZhbCwgKnRlbTsKLSAKLS0JICBpZiAoa2lu ZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQpCi0r CSAgaWYgKGtpbmQgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0gCSAgICBoaWdoID0gaGln aF9ib3VuZDsKLSAJICBpZiAoaGlnaCA8IDApCi0gCSAgICBlcnJvciAoXygiSGlnaCBpbmRleCBs ZXNzIHRoYW4gemVybyIpKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1h cnJheS1zbGljZXMtYXQtcHJvbXB0LnBhdGNoIGIvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tYXJy YXktc2xpY2VzLWF0LXByb21wdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDVlNTg5MC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1hcnJheS1zbGlj ZXMtYXQtcHJvbXB0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjY2MCArMCwwIEBACi1Gcm9t IEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVl dHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyNCBNYXkgMjAyMSAyMjo0Njoy MSAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tYXJyYXktc2xpY2VzLWF0 LXByb21wdC5wYXRjaAotCi07OyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBj b21taXQgZm9yIEZvcnRyYW4gYXJyYXkKLTs7IHNsaWNlIHN1cHBvcnQKLQotZ2RiL2ZvcnRyYW46 IEFkZCBzdXBwb3J0IGZvciBGb3J0cmFuIGFycmF5IHNsaWNlcyBhdCB0aGUgR0RCIHByb21wdAot Ci1UaGlzIGNvbW1pdCBicmluZ3MgYXJyYXkgc2xpY2Ugc3VwcG9ydCB0byBHREIuCi0KLVdBUk5J Tkc6IFRoaXMgcGF0Y2ggY29udGFpbnMgYSByYXRoZXIgYmlnIGhhY2sgd2hpY2ggaXMgbGltaXRl ZCB0bwotRm9ydHJhbiBhcnJheXMsIHRoaXMgY2FuIGJlIHNlZW4gaW4gZ2RidHlwZXMuYyBhbmQg Zi1sYW5nLmMuICBNb3JlCi1kZXRhaWxzIG9uIHRoaXMgYmVsb3cuCi0KLVRoaXMgcGF0Y2ggcmV3 cml0ZXMgdHdvIGFyZWFzIG9mIEdEQidzIEZvcnRyYW4gc3VwcG9ydCwgdGhlIGNvZGUgdG8KLWV4 dHJhY3QgYW4gYXJyYXkgc2xpY2UsIGFuZCB0aGUgY29kZSB0byBwcmludCBhbiBhcnJheS4KLQot QWZ0ZXIgdGhpcyBjb21taXQgYSB1c2VyIGNhbiwgZnJvbSB0aGUgR0RCIHByb21wdCwgYXNrIGZv ciBhIHNsaWNlIG9mCi1hIEZvcnRyYW4gYXJyYXkgYW5kIHNob3VsZCBnZXQgdGhlIGNvcnJlY3Qg cmVzdWx0IGJhY2suICBTbGljZXMgY2FuCi0ob3B0aW9uYWxseSkgaGF2ZSB0aGUgbG93ZXIgYm91 bmQsIHVwcGVyIGJvdW5kLCBhbmQgYSBzdHJpZGUKLXNwZWNpZmllZC4gIFNsaWNlcyBjYW4gYWxz byBoYXZlIGEgbmVnYXRpdmUgc3RyaWRlLgotCi1Gb3J0cmFuIGhhcyB0aGUgY29uY2VwdCBvZiBy ZXBhY2tpbmcgYXJyYXkgc2xpY2VzLiAgV2l0aGluIGEgY29tcGlsZWQKLUZvcnRyYW4gcHJvZ3Jh bSBpZiBhIHVzZXIgcGFzc2VzIGEgbm9uLWNvbnRpZ3VvdXMgYXJyYXkgc2xpY2UgdG8gYQotZnVu Y3Rpb24gdGhlbiB0aGUgY29tcGlsZXIgbWF5IGhhdmUgdG8gcmVwYWNrIHRoZSBzbGljZSwgdGhp cyBpbnZvbHZlcwotY29weWluZyB0aGUgZWxlbWVudHMgb2YgdGhlIHNsaWNlIHRvIGEgbmV3IGFy ZWEgb2YgbWVtb3J5IGJlZm9yZSB0aGUKLWNhbGwsIGFuZCBjb3B5aW5nIHRoZSBlbGVtZW50cyBi YWNrIHRvIHRoZSBvcmlnaW5hbCBhcnJheSBhZnRlciB0aGUKLWNhbGwuICBXaGV0aGVyIHJlcGFj a2luZyBvY2N1cnMgd2lsbCBkZXBlbmQgb24gd2hpY2ggdmVyc2lvbiBvZgotRm9ydHJhbiBpcyBi ZWluZyB1c2VkLCBhbmQgd2hhdCB0eXBlIG9mIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZC4KLQot VGhpcyBjb21taXQgYWRkcyBzdXBwb3J0IGZvciBib3RoIHBhY2tlZCwgYW5kIHVucGFja2VkIGFy cmF5IHNsaWNpbmcsCi13aXRoIHRoZSBkZWZhdWx0IGJlaW5nIHVucGFja2VkLgotCi1XaXRoIGFu IHVucGFja2VkIGFycmF5IHNsaWNlLCB3aGVuIHRoZSB1c2VyIGFza3MgZm9yIGEgc2xpY2Ugb2Yg YW4KLWFycmF5IEdEQiBjcmVhdGVzIGEgbmV3IHR5cGUgdGhhdCBhY2N1cmF0ZWx5IGRlc2NyaWJl cyB3aGVyZSB0aGUKLWVsZW1lbnRzIG9mIHRoZSBzbGljZSBjYW4gYmUgZm91bmQgd2l0aGluIHRo ZSBvcmlnaW5hbCBhcnJheSwgYQotdmFsdWUgb2YgdGhpcyB0eXBlIGlzIHRoZW4gcmV0dXJuZWQg dG8gdGhlIHVzZXIuICBUaGUgYWRkcmVzcyBvZiBhbgotZWxlbWVudCB3aXRoaW4gdGhlIHNsaWNl IHdpbGwgYmUgZXF1YWwgdG8gdGhlIGFkZHJlc3Mgb2YgYW4gZWxlbWVudAotd2l0aGluIHRoZSBv cmlnaW5hbCBhcnJheS4KLQotQSB1c2VyIGNhbiBjaG9vc2UgdG8gc2VsZWN0IHBhY2tlZCBhcnJh eSBzbGljZXMgaW5zdGVhZCB1c2luZzoKLQotICAoZ2RiKSBzZXQgZm9ydHJhbiByZXBhY2stYXJy YXktc2xpY2VzIG9ufG9mZgotICAoZ2RiKSBzaG93IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNl cwotCi1XaXRoIHBhY2tlZCBhcnJheSBzbGljZXMgR0RCIGNyZWF0ZXMgYSBuZXcgdHlwZSB0aGF0 IHJlZmxlY3RzIGhvdyB0aGUKLWVsZW1lbnRzIG9mIHRoZSBzbGljZSB3b3VsZCBsb29rIGlmIHRo ZXkgd2VyZSBsYWlkIG91dCBpbiBjb250aWd1b3VzCi1tZW1vcnksIGFsbG9jYXRlcyBhIHZhbHVl IG9mIHRoaXMgdHlwZSwgYW5kIHRoZW4gZmV0Y2hlcyB0aGUgZWxlbWVudHMKLWZyb20gdGhlIG9y aWdpbmFsIGFycmF5IGFuZCBwbGFjZXMgdGhlbiBpbnRvIHRoZSBjb250ZW50cyBidWZmZXIgb2YK LXRoZSBuZXcgdmFsdWUuCi0KLU9uZSBiZW5lZml0IG9mIHVzaW5nIHBhY2tlZCBzbGljZXMgb3Zl ciB1bnBhY2tlZCBzbGljZXMgaXMgdGhlIG1lbW9yeQotdXNhZ2UsIHRha2luZyBhIHNtYWxsIHNs aWNlIG9mIE4gZWxlbWVudHMgZnJvbSBhIGxhcmdlIGFycmF5IHdpbGwKLXJlcXVpcmUgKGluIEdE QikgTiAqIEVMRU1FTlRfU0laRSBieXRlcyBvZiBtZW1vcnksIHdoaWxlIGFuIHVucGFja2VkCi1h cnJheSB3aWxsIGFsc28gaW5jbHVkZSBhbGwgb2YgdGhlICJwYWRkaW5nIiBiZXR3ZWVuIHRoZQot bm9uLWNvbnRpZ3VvdXMgZWxlbWVudHMuICBUaGVyZSBhcmUgbmV3IHRlc3RzIGFkZGVkIHRoYXQg aGlnaGxpZ2h0Ci10aGlzIGRpZmZlcmVuY2UuCi0KLVRoZXJlIGlzIGFsc28gYSBuZXcgZGVidWdn aW5nIGZsYWcgYWRkZWQgd2l0aCB0aGlzIGNvbW1pdCB0aGF0Ci1pbnRyb2R1Y2VzIHRoZXNlIGNv bW1hbmRzOgotCi0gIChnZGIpIHNldCBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNpbmcgb258b2Zm Ci0gIChnZGIpIHNob3cgZGVidWcgZm9ydHJhbi1hcnJheS1zbGljaW5nCi0KLVRoaXMgcHJpbnRz IGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGUgYXJyYXkgc2xpY2VzIGFyZSBiZWluZyBidWlsdC4K LQotQXMgYm90aCB0aGUgcmVwYWNraW5nLCBhbmQgdGhlIGFycmF5IHByaW50aW5nIHJlcXVpcmVz IEdEQiB0byB3YWxrCi10aHJvdWdoIGEgbXVsdGktZGltZW5zaW9uYWwgRm9ydHJhbiBhcnJheSB2 aXNpdGluZyBlYWNoIGVsZW1lbnQsIHRoaXMKLWNvbW1pdCBhZGRzIHRoZSBmaWxlIGYtYXJyYXkt d2Fsay5oLCB3aGljaCBpbnRyb2R1Y2VzIHNvbWUKLWluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQg dGhpcyBwcm9jZXNzLiAgVGhpcyBtZWFucyB0aGUgYXJyYXkgcHJpbnRpbmcKLWNvZGUgaW4gZi12 YWxwcmludC5jIGlzIHNpZ25pZmljYW50bHkgcmVkdWNlZC4KLQotVGhlIG9ubHkgc2xpZ2h0IGlz c3VlIHdpdGggdGhpcyBjb21taXQgaXMgdGhlICJyYXRoZXIgYmlnIGhhY2siIHRoYXQgSQotbWVu dGlvbmVkIGFib3ZlLiAgVGhpcyBoYWNrIGFsbG93cyB1cyB0byBoYW5kbGUgb25lIHNwZWNpZmlj IGNhc2UsCi1hcnJheSBzbGljZXMgd2l0aCBuZWdhdGl2ZSBzdHJpZGVzLiAgVGhpcyBpcyBzb21l dGhpbmcgdGhhdCBJIGRvbid0Ci1iZWxpZXZlIHRoZSBjdXJyZW50IEdEQiB2YWx1ZSBjb250ZW50 cyBtb2RlbCB3aWxsIGFsbG93IHVzIHRvCi1jb3JyZWN0bHkgaGFuZGxlLCBhbmQgcmF0aGVyIHRo YW4gcmV3cml0ZSB0aGUgdmFsdWUgY29udGVudHMgY29kZQotcmlnaHQgbm93LCBJJ20gaG9waW5n IHRvIHNsaXAgdGhpcyBoYWNrIGluIGFzIGEgd29yayBhcm91bmQuCi0KLVRoZSBwcm9ibGVtIGlz IHRoYXQsIGFzIEkgc2VlIGl0LCB0aGUgY3VycmVudCB2YWx1ZSBjb250ZW50cyBtb2RlbAotYXNz dW1lcyB0aGF0IGFuIG9iamVjdCBiYXNlIGFkZHJlc3Mgd2lsbCBiZSB0aGUgbG93ZXN0IGFkZHJl c3Mgd2l0aGluCi10aGF0IG9iamVjdCwgYW5kIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBvYmpl Y3Qgc3RhcnQgYXQgdGhpcyBiYXNlCi1hZGRyZXNzIGFuZCBvY2N1cHkgdGhlIFRZUEVfTEVOR1RI IGJ5dGVzIGFmdGVyIHRoYXQuCi0KLSggV2UgZG8gaGF2ZSB0aGUgZW1iZWRkZWRfb2Zmc2V0LCB3 aGljaCBpcyB1c2VkIGZvciBDKysgc3ViLWNsYXNzZXMsCi1zdWNoIHRoYXQgYW4gb2JqZWN0IGNh biBzdGFydCBhdCBzb21lIG9mZnNldCBmcm9tIHRoZSBjb250ZW50IGJ1ZmZlciwKLWhvd2V2ZXIs IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIG9iamVjdCB0aGVuIG9jY3VwaWVzIHRoZSBuZXh0Ci1U WVBFX0xFTkdUSCBieXRlcyBpcyBzdGlsbCB0cnVlIHdpdGhpbiBHREIuICkKLQotVGhlIHByb2Js ZW0gaXMgdGhhdCBGb3J0cmFuIGFycmF5cyB3aXRoIGEgbmVnYXRpdmUgc3RyaWRlIGRvbid0IGZv bGxvdwotdGhpcyBwYXR0ZXJuLiAgSW4gdGhpcyBjYXNlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhl IG9iamVjdCBwb2ludHMgdG8KLXRoZSBlbGVtZW50IHdpdGggdGhlIGhpZ2hlc3QgYWRkcmVzcywg dGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheSB0aGVuCi1zdGFydCBhdCBzb21lIG9mZnNldCBfYmVm b3JlXyB0aGUgYmFzZSBhZGRyZXNzLCBhbmQgcHJvY2VlZCBmb3Igb25lCi1lbGVtZW50IF9wYXN0 XyB0aGUgYmFzZSBhZGRyZXNzLgotCi1BcyB0aGUgc3RyaWRlIGZvciBzdWNoIGFuIGFycmF5IHdv dWxkIGJlIG5lZ2F0aXZlIHRoZW4sIGluIHRoZW9yeSB0aGUKLVRZUEVfTEVOR1RIIGZvciB0aGlz IHR5cGUgd291bGQgYWxzbyBiZSBuZWdhdGl2ZS4gIEhvd2V2ZXIsIGluIG1hbnkKLXBsYWNlcyBh IHZhbHVlIGluIEdEQiB3aWxsIGRlZ3JhZGUgdG8gYSBwb2ludGVyICsgbGVuZ3RoLCBhbmQgdGhl Ci1sZW5ndGggYWxtb3N0IGFsd2F5cyBjb21lcyBmcm9tIHRoZSBUWVBFX0xFTkdUSC4KLQotSXQg aXMgbXkgYmVsaWVmIHRoYXQgaW4gb3JkZXIgdG8gY29ycmVjdGx5IG1vZGVsIHRoaXMgY2FzZSB0 aGUgdmFsdWUKLWNvbnRlbnQgaGFuZGxpbmcgb2YgR0RCIHdpbGwgbmVlZCB0byBiZSByZXdvcmtl ZCB0byBzcGxpdCBhcGFydCB0aGUKLXZhbHVlJ3MgY29udGVudCBidWZmZXIgKHdoaWNoIGlzIGEg YmxvY2sgb2YgbWVtb3J5IHdpdGggYSBsZW5ndGgpLCBhbmQKLXRoZSBvYmplY3QncyBpbiBtZW1v cnkgYmFzZSBhZGRyZXNzIGFuZCBsZW5ndGgsIHdoaWNoIGNvdWxkIGJlCi1uZWdhdGl2ZS4KLQot VGhpbmdzIGFyZSBmdXJ0aGVyIGNvbXBsaWNhdGVkIGJlY2F1c2UgYXJyYXlzIHdpdGggbmVnYXRp dmUgc3RyaWRlcwotbGlrZSB0aGlzIGFyZSBhbHdheXMgZHluYW1pYyB0eXBlcy4gIFdoZW4gYSB2 YWx1ZSBoYXMgYSBkeW5hbWljIHR5cGUKLWFuZCBpdHMgYmFzZSBhZGRyZXNzIG5lZWRzIHJlc29s dmluZyB3ZSBhY3R1YWxseSBzdG9yZSB0aGUgYWRkcmVzcyBvZgotdGhlIG9iamVjdCB3aXRoaW4g dGhlIHJlc29sdmVkIGR5bmFtaWMgdHlwZSwgbm90IHdpdGhpbiB0aGUgdmFsdWUKLW9iamVjdCBp dHNlbGYuCi0KLUluIHNob3J0IEkgZG9uJ3QgY3VycmVudGx5IHNlZSBhbiBlYXN5IHBhdGggdG8g Y2xlYW5seSBzdXBwb3J0IHRoaXMKLXNpdHVhdGlvbiB3aXRoaW4gR0RCLiAgQW5kIHNvIEkgYmVs aWV2ZSB0aGF0IGxlYXZlcyB0d28gb3B0aW9ucywKLWVpdGhlciBhZGQgYSB3b3JrIGFyb3VuZCwg b3IgY2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHVzZXIgdHJpZXMgdG8gbWFrZQotdXNlIG9mIGEgbmVn YXRpdmUgc3RyaWRlLCBvciBhY2Nlc3MgYW4gYXJyYXkgd2l0aCBhIG5lZ2F0aXZlIHN0cmlkZSwK LWFuZCB0aHJvdyBhbiBlcnJvci4KLQotVGhpcyBwYXRjaCBjdXJyZW50bHkgZ29lcyB3aXRoIGFk ZGluZyBhIHdvcmsgYXJvdW5kLCB3aGljaCBpcyB0aGF0Ci13aGVuIHdlIHJlc29sdmUgYSBkeW5h bWljIEZvcnRyYW4gYXJyYXkgdHlwZSwgaWYgdGhlIHN0cmlkZSBpcwotbmVnYXRpdmUsIHRoZW4g d2UgYWRqdXN0IHRoZSBiYXNlIGFkZHJlc3MgdG8gcG9pbnQgdG8gdGhlIGxvd2VzdAotYWRkcmVz cyByZXF1aXJlZCBieSB0aGUgYXJyYXkuICBUaGUgcHJpbnRpbmcgYW5kIHNsaWNpbmcgY29kZSBp cyBhd2FyZQotb2YgdGhpcyBhZGp1c3RtZW50IGFuZCB3aWxsIGNvcnJlY3RseSBzbGljZSBhbmQg cHJpbnQgRm9ydHJhbiBhcnJheXMuCi0KLVdoZXJlIHRoaXMgaGFjayB3aWxsIHNob3cgdGhyb3Vn aCB0byB0aGUgdXNlciBpcyBpZiB0aGV5IGFzayBmb3IgdGhlCi1hZGRyZXNzIG9mIGFuIGFycmF5 IGluIHRoZWlyIHByb2dyYW0gd2l0aCBhIG5lZ2F0aXZlIGFycmF5IHN0cmlkZSwgdGhlCi1hZGRy ZXNzIHRoZXkgZ2V0IGZyb20gR0RCIHdpbGwgbm90IG1hdGNoIHRoZSBhZGRyZXNzIHRoYXQgd291 bGQgYmUKLWNvbXB1dGVkIHdpdGhpbiB0aGUgRm9ydHJhbiBwcm9ncmFtLgotCi1nZGIvQ2hhbmdl TG9nOgotCi0JKiBNYWtlZmlsZS5pbiAoSEZJTEVTX05PX1NSQ0RJUik6IEFkZCBmLWFycmF5LXdh bGtlci5oLgotCSogTkVXUzogTWVudGlvbiBuZXcgb3B0aW9ucy4KLQkqIGYtYXJyYXktd2Fsa2Vy Lmg6IE5ldyBmaWxlLgotCSogZi1sYW5nLmM6IEluY2x1ZGUgJ2dkYmNtZC5oJyBhbmQgJ2YtYXJy YXktd2Fsa2VyLmgnLgotCShyZXBhY2tfYXJyYXlfc2xpY2VzKTogTmV3IHN0YXRpYyBnbG9iYWwu Ci0JKHNob3dfcmVwYWNrX2FycmF5X3NsaWNlcyk6IE5ldyBmdW5jdGlvbi4KLQkoZm9ydHJhbl9h cnJheV9zbGljaW5nX2RlYnVnKTogTmV3IHN0YXRpYyBnbG9iYWwuCi0JKHNob3dfZm9ydHJhbl9h cnJheV9zbGljaW5nX2RlYnVnKTogTmV3IGZ1bmN0aW9uLgotCSh2YWx1ZV9mOTBfc3ViYXJyYXkp OiBEZWxldGUuCi0JKHNraXBfdW5kZXRlcm1pbmVkX2FyZ2xpc3QpOiBEZWxldGUuCi0JKGNsYXNz IGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfYmFzZV9pbXBsKTogTmV3IGNsYXNzLgotCShjbGFzcyBm b3J0cmFuX2xhenlfYXJyYXlfcmVwYWNrZXJfaW1wbCk6IE5ldyBjbGFzcy4KLQkoY2xhc3MgZm9y dHJhbl9hcnJheV9yZXBhY2tlcl9pbXBsKTogTmV3IGNsYXNzLgotCShmb3J0cmFuX3ZhbHVlX3N1 YmFycmF5KTogQ29tcGxldGUgcmV3cml0ZS4KLQkoc2V0X2ZvcnRyYW5fbGlzdCk6IE5ldyBzdGF0 aWMgZ2xvYmFsLgotCShzaG93X2ZvcnRyYW5fbGlzdCk6IExpa2V3aXNlLgotCShfaW5pdGlhbGl6 ZV9mX2xhbmd1YWdlKTogUmVnaXN0ZXIgbmV3IGNvbW1hbmRzLgotCShmb3J0cmFuX2FkanVzdF9k eW5hbWljX2FycmF5X2Jhc2VfYWRkcmVzc19oYWNrKTogTmV3IGZ1bmN0aW9uLgotCSogZi1sYW5n LmggKGZvcnRyYW5fYWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2spOgotCURl Y2xhcmUuCi0JKiBmLXZhbHByaW50LmM6IEluY2x1ZGUgJ2YtYXJyYXktd2Fsa2VyLmgnLgotCShj bGFzcyBmb3J0cmFuX2FycmF5X3ByaW50ZXJfaW1wbCk6IE5ldyBjbGFzcy4KLQkoZjc3X3ByaW50 X2FycmF5XzEpOiBEZWxldGUuCi0JKGY3N19wcmludF9hcnJheSk6IERlbGV0ZS4KLQkoZm9ydHJh bl9wcmludF9hcnJheSk6IE5ldy4KLQkoZl92YWx1ZV9wcmludF9pbm5lcik6IFVwZGF0ZSB0byBj YWxsIGZvcnRyYW5fcHJpbnRfYXJyYXkuCi0JKiBnZGJ0eXBlcy5jOiBJbmNsdWRlICdmLWxhbmcu aCcuCi0JKHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsKTogQ2FsbAotCWZvcnRyYW5fYWRq dXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2suCi0KLWdkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nOgotCi0gICAgICAgICogZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLWJhZC5leHA6IE5l dyBmaWxlLgotICAgICAgICAqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1iYWQuZjkwOiBOZXcg ZmlsZS4KLSAgICAgICAgKiBnZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNlcy5leHA6 IE5ldyBmaWxlLgotICAgICAgICAqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1zdWItc2xpY2Vz LmY5MDogTmV3IGZpbGUuCi0gICAgICAgICogZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4cDog UmV3cml0ZSB0ZXN0cy4KLSAgICAgICAgKiBnZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZjkwOiBS ZXdyaXRlIHRlc3RzLgotICAgICAgICAqIGdkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwOiBDb3Jy ZWN0IGV4cGVjdGVkIHJlc3VsdHMuCi0KLWdkYi9kb2MvQ2hhbmdlTG9nOgotCi0gICAgICAgICog Z2RiLnRleGluZm8gKERlYnVnZ2luZyBPdXRwdXQpOiBEb2N1bWVudCAnc2V0L3Nob3cgZGVidWcK LSAgICAgICAgZm9ydHJhbi1hcnJheS1zbGljaW5nJy4KLSAgICAgICAgKFNwZWNpYWwgRm9ydHJh biBDb21tYW5kcyk6IERvY3VtZW50ICdzZXQvc2hvdyBmb3J0cmFuCi0gICAgICAgIHJlcGFjay1h cnJheS1zbGljZXMnLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2Vm aWxlLmluCi0tLS0gYS9nZGIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAg LTEyNjgsNiArMTI2OCw3IEBAIEhGSUxFU19OT19TUkNESVIgPSBcCi0gCWV4cHJlc3Npb24uaCBc Ci0gCWV4dGVuc2lvbi5oIFwKLSAJZXh0ZW5zaW9uLXByaXYuaCBcCi0rCWYtYXJyYXktd2Fsa2Vy LmggXAotIAlmLWxhbmcuaCBcCi0gCWZic2QtbmF0LmggXAotIAlmYnNkLXRkZXAuaCBcCi1kaWZm IC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUwotLS0tIGEvZ2RiL05FV1MKLSsrKyBiL2dkYi9O RVdTCi1AQCAtMTExLDYgKzExMSwxOSBAQCBtYWludGVuYW5jZSBwcmludCBjb3JlLWZpbGUtYmFj a2VkLW1hcHBpbmdzCi0gICBQcmludHMgZmlsZS1iYWNrZWQgbWFwcGluZ3MgbG9hZGVkIGZyb20g YSBjb3JlIGZpbGUncyBub3RlIHNlY3Rpb24uCi0gICBPdXRwdXQgaXMgZXhwZWN0ZWQgdG8gYmUg c2ltaWxhciB0byB0aGF0IG9mICJpbmZvIHByb2MgbWFwcGluZ3MiLgotIAotK3NldCBkZWJ1ZyBm b3J0cmFuLWFycmF5LXNsaWNpbmcgb258b2ZmCi0rc2hvdyBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNs aWNpbmcKLSsgIFByaW50IGRlYnVnZ2luZyB3aGVuIHRha2luZyBzbGljZXMgb2YgRm9ydHJhbiBh cnJheXMuCi0rCi0rc2V0IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcyBvbnxvZmYKLStzaG93 IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcwotKyAgV2hlbiB0YWtpbmcgc2xpY2VzIGZyb20g Rm9ydHJhbiBhcnJheXMgYW5kIHN0cmluZ3MsIGlmIHRoZSBzbGljZSBpcwotKyAgbm9uLWNvbnRp Z3VvdXMgd2l0aGluIHRoZSBvcmlnaW5hbCB2YWx1ZSB0aGVuLCB3aGVuIHRoaXMgb3B0aW9uIGlz Ci0rICBvbiwgdGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJlcGFja2VkIGludG8gYSBzaW5nbGUgY29u dGlndW91cyB2YWx1ZS4KLSsgIFdoZW4gdGhpcyBvcHRpb24gaXMgb2ZmLCB0aGVuIHRoZSB2YWx1 ZSByZXR1cm5lZCB3aWxsIGNvbnNpc3Qgb2YgYQotKyAgZGVzY3JpcHRvciB0aGF0IGRlc2NyaWJl cyB0aGUgc2xpY2Ugd2l0aGluIHRoZSBtZW1vcnkgb2YgdGhlCi0rICBvcmlnaW5hbCBwYXJlbnQg dmFsdWUuCi0rCi0gKiBDaGFuZ2VkIGNvbW1hbmRzCi0gCi0gYWxpYXMgWy1hXSBbLS1dIEFMSUFT ID0gQ09NTUFORCBbREVGQVVMVC1BUkdTLi4uXQotZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRl eGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi0tLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCi0r KysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1AQCAtMTY5MTksNiArMTY5MTksMjkgQEAgVGhpcyBj b21tYW5kIHByaW50cyB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgRm9ydHJhbiBAY29kZXtD T01NT059Ci0gYmxvY2sgd2hvc2UgbmFtZSBpcyBAdmFye2NvbW1vbi1uYW1lfS4gIFdpdGggbm8g YXJndW1lbnQsIHRoZSBuYW1lcyBvZgotIGFsbCBAY29kZXtDT01NT059IGJsb2NrcyB2aXNpYmxl IGF0IHRoZSBjdXJyZW50IHByb2dyYW0gbG9jYXRpb24gYXJlCi0gcHJpbnRlZC4KLStAY2luZGV4 IGFycmF5cyBzbGljZXMgKEZvcnRyYW4pCi0rQGtpbmRleCBzZXQgZm9ydHJhbiByZXBhY2stYXJy YXktc2xpY2VzCi0rQGtpbmRleCBzaG93IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcwotK0Bp dGVtIHNldCBmb3J0cmFuIHJlcGFjay1hcnJheS1zbGljZXMgW29ufG9mZl0KLStAaXRlbSBzaG93 IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcwotK1doZW4gdGFraW5nIGEgc2xpY2UgZnJvbSBh biBhcnJheSwgYSBGb3J0cmFuIGNvbXBpbGVyIGNhbiBjaG9vc2UgdG8KLStlaXRoZXIgcHJvZHVj ZSBhbiBhcnJheSBkZXNjcmlwdG9yIHRoYXQgZGVzY3JpYmVzIHRoZSBzbGljZSBpbiBwbGFjZSwK LStvciBpdCBtYXkgcmVwYWNrIHRoZSBzbGljZSwgY29weWluZyB0aGUgZWxlbWVudHMgb2YgdGhl IHNsaWNlIGludG8gYQotK25ldyByZWdpb24gb2YgbWVtb3J5LgotKwotK1doZW4gdGhpcyBzZXR0 aW5nIGlzIG9uLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsIGFsc28gcmVwYWNrIGFycmF5Ci0rc2xp Y2VzIGluIHNvbWUgc2l0dWF0aW9ucy4gIFdoZW4gdGhpcyBzZXR0aW5nIGlzIG9mZiwgdGhlbgot K0B2YWx1ZXtHREJOfSB3aWxsIGNyZWF0ZSBhcnJheSBkZXNjcmlwdG9ycyBmb3Igc2xpY2VzIHRo YXQgcmVmZXJlbmNlCi0rdGhlIG9yaWdpbmFsIGRhdGEgaW4gcGxhY2UuCi0rCi0rQHZhbHVle0dE Qk59IHdpbGwgbmV2ZXIgcmVwYWNrIGFuIGFycmF5IHNsaWNlIGlmIHRoZSBkYXRhIGZvciB0aGUK LStzbGljZSBpcyBjb250aWd1b3VzIHdpdGhpbiB0aGUgb3JpZ2luYWwgYXJyYXkuCi0rCi0rQHZh bHVle0dEQk59IHdpbGwgYWx3YXlzIHJlcGFjayBzdHJpbmcgc2xpY2VzIGlmIHRoZSBkYXRhIGZv ciB0aGUKLStzbGljZSBpcyBub24tY29udGlndW91cyB3aXRoaW4gdGhlIG9yaWdpbmFsIHN0cmlu ZyBhcyBAdmFsdWV7R0RCTn0KLStkb2VzIG5vdCBzdXBwb3J0IHByaW50aW5nIG5vbi1jb250aWd1 b3VzIHN0cmluZ3MuCi0rCi0rVGhlIGRlZmF1bHQgZm9yIHRoaXMgc2V0dGluZyBpcyBAY29kZXtv ZmZ9LgotIEBlbmQgdGFibGUKLSAKLSBAbm9kZSBQYXNjYWwKLUBAIC0yNjUwNyw2ICsyNjUzMCwx NiBAQCBTaG93IHRoZSBjdXJyZW50IHN0YXRlIG9mIEZyZWVCU0QgTFdQIGRlYnVnZ2luZyBtZXNz YWdlcy4KLSBUdXJucyBvbiBvciBvZmYgZGVidWdnaW5nIG1lc3NhZ2VzIGZyb20gdGhlIEZyZWVC U0QgbmF0aXZlIHRhcmdldC4KLSBAaXRlbSBzaG93IGRlYnVnIGZic2QtbmF0Ci0gU2hvdyB0aGUg Y3VycmVudCBzdGF0ZSBvZiBGcmVlQlNEIG5hdGl2ZSB0YXJnZXQgZGVidWdnaW5nIG1lc3NhZ2Vz LgotKwotK0BpdGVtIHNldCBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNpbmcKLStAY2luZGV4IGZv cnRyYW4gYXJyYXkgc2xpY2luZyBkZWJ1Z2dpbmcgaW5mbwotK1R1cm5zIG9uIG9yIG9mZiBkaXNw bGF5IG9mIEB2YWx1ZXtHREJOfSBGb3J0cmFuIGFycmF5IHNsaWNpbmcKLStkZWJ1Z2dpbmcgaW5m by4gIFRoZSBkZWZhdWx0IGlzIG9mZi4KLSsKLStAaXRlbSBzaG93IGRlYnVnIGZvcnRyYW4tYXJy YXktc2xpY2luZwotK0Rpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGRpc3BsYXlpbmcgQHZh bHVle0dEQk59IEZvcnRyYW4gYXJyYXkKLStzbGljaW5nIGRlYnVnZ2luZyBpbmZvLgotKwotIEBp dGVtIHNldCBkZWJ1ZyBmcmFtZQotIEBjaW5kZXggZnJhbWUgZGVidWdnaW5nIGluZm8KLSBUdXJu cyBvbiBvciBvZmYgZGlzcGxheSBvZiBAdmFsdWV7R0RCTn0gZnJhbWUgZGVidWdnaW5nIGluZm8u ICBUaGUKLWRpZmYgLS1naXQgYS9nZGIvZi1hcnJheS13YWxrZXIuaCBiL2dkYi9mLWFycmF5LXdh bGtlci5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL2Yt YXJyYXktd2Fsa2VyLmgKLUBAIC0wLDAgKzEsMjY1IEBACi0rLyogQ29weXJpZ2h0IChDKSAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0r Ci0rLyogU3VwcG9ydCBjbGFzc2VzIHRvIHdyYXAgdXAgdGhlIHByb2Nlc3Mgb2YgaXRlcmF0aW5n IG92ZXIgYQotKyAgIG11bHRpLWRpbWVuc2lvbmFsIEZvcnRyYW4gYXJyYXkuICAqLwotKwotKyNp Zm5kZWYgRl9BUlJBWV9XQUxLRVJfSAotKyNkZWZpbmUgRl9BUlJBWV9XQUxLRVJfSAotKwotKyNp bmNsdWRlICJkZWZzLmgiCi0rI2luY2x1ZGUgImdkYnR5cGVzLmgiCi0rI2luY2x1ZGUgImYtbGFu Zy5oIgotKwotKy8qIENsYXNzIGZvciBjYWxjdWxhdGluZyB0aGUgYnl0ZSBvZmZzZXQgZm9yIGVs ZW1lbnRzIHdpdGhpbiBhIHNpbmdsZQotKyAgIGRpbWVuc2lvbiBvZiBhIEZvcnRyYW4gYXJyYXku ICAqLwotK2NsYXNzIGZvcnRyYW5fYXJyYXlfb2Zmc2V0X2NhbGN1bGF0b3IKLSt7Ci0rcHVibGlj OgotKyAgLyogQ3JlYXRlIGEgbmV3IG9mZnNldCBjYWxjdWxhdG9yIGZvciBUWVBFLCB3aGljaCBp cyBlaXRoZXIgYW4gYXJyYXkgb3IgYQotKyAgICAgc3RyaW5nLiAgKi8KLSsgIGV4cGxpY2l0IGZv cnRyYW5fYXJyYXlfb2Zmc2V0X2NhbGN1bGF0b3IgKHN0cnVjdCB0eXBlICp0eXBlKQotKyAgewot KyAgICAvKiBWYWxpZGF0ZSB0aGUgdHlwZS4gICovCi0rICAgIHR5cGUgPSBjaGVja190eXBlZGVm ICh0eXBlKTsKLSsgICAgaWYgKHR5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RFX0FSUkFZCi0rCSYm ICh0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAgICAgIGVycm9yIChfKCJj YW4gb25seSBjb21wdXRlIG9mZnNldHMgZm9yIGFycmF5cyBhbmQgc3RyaW5ncyIpKTsKLSsKLSsg ICAgLyogR2V0IHRoZSByYW5nZSwgYW5kIGV4dHJhY3QgdGhlIGJvdW5kcy4gICovCi0rICAgIHN0 cnVjdCB0eXBlICpyYW5nZV90eXBlID0gdHlwZS0+aW5kZXhfdHlwZSAoKTsKLSsgICAgaWYgKCFn ZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbV9sb3dlcmJvdW5kLCAmbV91cHBlcmJv dW5kKSkKLSsgICAgICBlcnJvciAoInVuYWJsZSB0byByZWFkIGFycmF5IGJvdW5kcyIpOwotKwot KyAgICAvKiBGaWd1cmUgb3V0IHRoZSBzdHJpZGUgZm9yIHRoaXMgYXJyYXkuICAqLwotKyAgICBz dHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSk7Ci0rICAgIG1fc3RyaWRlID0gdHlwZS0+aW5kZXhfdHlwZSAoKS0+Ym91bmRzICgpLT5i aXRfc3RyaWRlICgpOwotKyAgICBpZiAobV9zdHJpZGUgPT0gMCkKLSsgICAgICBtX3N0cmlkZSA9 IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0rICAgIGVsc2UKLSsgICAgICB7Ci0rCXN0 cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X3R5cGVfYXJjaCAoZWx0X3R5cGUpOwotKwlpbnQgdW5p dF9zaXplID0gZ2RiYXJjaF9hZGRyZXNzYWJsZV9tZW1vcnlfdW5pdF9zaXplIChhcmNoKTsKLSsJ bV9zdHJpZGUgLz0gKHVuaXRfc2l6ZSAqIDgpOwotKyAgICAgIH0KLSsgIH07Ci0rCi0rICAvKiBH ZXQgdGhlIGJ5dGUgb2Zmc2V0IGZvciBlbGVtZW50IElOREVYIHdpdGhpbiB0aGUgdHlwZSB3ZSBh cmUgd29ya2luZwotKyAgICAgb24uICBUaGVyZSBpcyBubyBib3VuZHMgY2hlY2tpbmcgZG9uZSBv biBJTkRFWC4gIElmIHRoZSBzdHJpZGUgaXMKLSsgICAgIG5lZ2F0aXZlIHRoZW4gd2Ugc3RpbGwg YXNzdW1lIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyAoZm9yIHRoZSBhcnJheQotKyAgICAgb2JqZWN0 KSBwb2ludHMgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGUgbG93ZXN0IG1lbW9yeSBhZGRyZXNzLCB3 ZSB0aGVuCi0rICAgICBjYWxjdWxhdGUgYW4gb2Zmc2V0IGFzc3VtaW5nIHRoYXQgaW5kZXggMCB3 aWxsIGJlIHRoZSBlbGVtZW50IGF0IHRoZQotKyAgICAgaGlnaGVzdCBhZGRyZXNzLCBpbmRleCAx IHRoZSBuZXh0IGhpZ2hlc3QsIGFuZCBzbyBvbi4gIFRoaXMgaXMgbm90Ci0rICAgICBxdWl0ZSBo b3cgRm9ydHJhbiB3b3JrcyBpbiByZWFsaXR5OyBpbiByZWFsaXR5IHRoZSBiYXNlIGFkZHJlc3Mg b2YKLSsgICAgIHRoZSBvYmplY3Qgd291bGQgcG9pbnQgYXQgdGhlIGVsZW1lbnQgd2l0aCB0aGUg aGlnaGVzdCBhZGRyZXNzLCBhbmQKLSsgICAgIHdlIHdvdWxkIGluZGV4IGJhY2t3YXJkcyBmcm9t IHRoZXJlIGluIHRoZSAibm9ybWFsIiB3YXksIGhvd2V2ZXIsCi0rICAgICBHREIncyBjdXJyZW50 IHZhbHVlIGNvbnRlbnRzIG1vZGVsIGRvZXNuJ3Qgc3VwcG9ydCBoYXZpbmcgdGhlIGJhc2UKLSsg ICAgIGFkZHJlc3MgYmUgbmVhciB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZSBjb250ZW50cywgc28g d2UgY3VycmVudGx5Ci0rICAgICBhZGp1c3QgdGhlIGJhc2UgYWRkcmVzcyBvZiBGb3J0cmFuIGFy cmF5cyB3aXRoIG5lZ2F0aXZlIHN0cmlkZXMgc28KLSsgICAgIHRoZWlyIGJhc2UgYWRkcmVzcyBw b2ludHMgYXQgdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcy4gIFRoaXMgY29kZQotKyAgICAgaGVy ZSBpcyBwYXJ0IG9mIHdvcmtpbmcgYXJvdW5kIHRoaXMgd2VpcmRuZXNzLiAgKi8KLSsgIExPTkdF U1QgaW5kZXhfb2Zmc2V0IChMT05HRVNUIGluZGV4KQotKyAgewotKyAgICBMT05HRVNUIG9mZnNl dDsKLSsgICAgaWYgKG1fc3RyaWRlIDwgMCkKLSsgICAgICBvZmZzZXQgPSBzdGQ6OmFicyAobV9z dHJpZGUpICogKG1fdXBwZXJib3VuZCAtIGluZGV4KTsKLSsgICAgZWxzZQotKyAgICAgIG9mZnNl dCA9IHN0ZDo6YWJzIChtX3N0cmlkZSkgKiAoaW5kZXggLSBtX2xvd2VyYm91bmQpOwotKyAgICBy ZXR1cm4gb2Zmc2V0OwotKyAgfQotKwotK3ByaXZhdGU6Ci0rCi0rICAvKiBUaGUgc3RyaWRlIGZv ciB0aGUgdHlwZSB3ZSBhcmUgd29ya2luZyB3aXRoLiAgKi8KLSsgIExPTkdFU1QgbV9zdHJpZGU7 Ci0rCi0rICAvKiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSB0eXBlIHdlIGFyZSB3b3JraW5nIHdp dGguICAqLwotKyAgTE9OR0VTVCBtX3VwcGVyYm91bmQ7Ci0rCi0rICAvKiBUaGUgbG93ZXIgYm91 bmQgZm9yIHRoZSB0eXBlIHdlIGFyZSB3b3JraW5nIHdpdGguICAqLwotKyAgTE9OR0VTVCBtX2xv d2VyYm91bmQ7Ci0rfTsKLSsKLSsvKiBBIGJhc2UgY2xhc3MgdXNlZCBieSBmb3J0cmFuX2FycmF5 X3dhbGtlci4gIFRoZXJlJ3Mgbm8gdmlydHVhbCBtZXRob2RzCi0rICAgaGVyZSwgc3ViLWNsYXNz ZXMgc2hvdWxkIGp1c3Qgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9ucyB0aGV5IHdhbnQgaW4gb3JkZXIK LSsgICB0byBzcGVjaWFsaXNlIHRoZSBiZWhhdmlvdXIgdG8gdGhlaXIgbmVlZHMuICBUaGUgZnVu Y3Rpb25hbGl0eQotKyAgIHByb3ZpZGVkIGluIHRoZXNlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25z IHdpbGwgdmlzaXQgZXZlcnkgYXJyYXkKLSsgICBlbGVtZW50LCBidXQgZG8gbm90aGluZyBmb3Ig ZWFjaCBlbGVtZW50LiAgKi8KLSsKLStzdHJ1Y3QgZm9ydHJhbl9hcnJheV93YWxrZXJfYmFzZV9p bXBsCi0rewotKyAgLyogQ2FsbGVkIHdoZW4gaXRlcmF0aW5nIGJldHdlZW4gdGhlIGxvd2VyIGFu ZCB1cHBlciBib3VuZHMgb2YgZWFjaAotKyAgICAgZGltZW5zaW9uIG9mIHRoZSBhcnJheS4gIFJl dHVybiB0cnVlIGlmIEdEQiBzaG91bGQgY29udGludWUgaXRlcmF0aW5nLAotKyAgICAgb3RoZXJ3 aXNlLCByZXR1cm4gZmFsc2UuCi0rCi0rICAgICBTSE9VTERfQ09OVElOVUUgaW5kaWNhdGVzIGlm IEdEQiBpcyBnb2luZyB0byBzdG9wIGFueXdheSwgYW5kIHNob3VsZAotKyAgICAgYmUgdGFrZW4g aW50byBjb25zaWRlcmF0aW9uIHdoZW4gZGVjaWRpbmcgd2hhdCB0byByZXR1cm4uICBJZgotKyAg ICAgU0hPVUxEX0NPTlRJTlVFIGlzIGZhbHNlIHRoZW4gdGhpcyBmdW5jdGlvbiBtdXN0IGFsc28g cmV0dXJuIGZhbHNlLAotKyAgICAgdGhlIGZ1bmN0aW9uIGlzIHN0aWxsIGNhbGxlZCB0aG91Z2gg aW4gY2FzZSBleHRyYSB3b3JrIG5lZWRzIHRvIGJlCi0rICAgICBkb25lIGFzIHBhcnQgb2YgdGhl IHN0b3BwaW5nIHByb2Nlc3MuICAqLwotKyAgYm9vbCBjb250aW51ZV93YWxraW5nIChib29sIHNo b3VsZF9jb250aW51ZSkKLSsgIHsgcmV0dXJuIHNob3VsZF9jb250aW51ZTsgfQotKwotKyAgLyog Q2FsbGVkIHdoZW4gR0RCIHN0YXJ0cyBpdGVyYXRpbmcgb3ZlciBhIGRpbWVuc2lvbiBvZiB0aGUg YXJyYXkuICBUaGUKLSsgICAgIGFyZ3VtZW50IElOTkVSX1AgaXMgdHJ1ZSBmb3IgdGhlIGlubmVy IG1vc3QgZGltZW5zaW9uICh0aGUgZGltZW5zaW9uCi0rICAgICBjb250YWluaW5nIHRoZSBhY3R1 YWwgZWxlbWVudHMgb2YgdGhlIGFycmF5KSwgYW5kIGZhbHNlIGZvciBtb3JlIG91dGVyCi0rICAg ICBkaW1lbnNpb25zLiAgRm9yIGEgY29uY3JldGUgZXhhbXBsZSBvZiBob3cgdGhpcyBmdW5jdGlv biBpcyBjYWxsZWQKLSsgICAgIHNlZSB0aGUgY29tbWVudCBvbiBwcm9jZXNzX2VsZW1lbnQgYmVs b3cuICAqLwotKyAgdm9pZCBzdGFydF9kaW1lbnNpb24gKGJvb2wgaW5uZXJfcCkKLSsgIHsgLyog Tm90aGluZy4gICovIH0KLSsKLSsgIC8qIENhbGxlZCB3aGVuIEdEQiBmaW5pc2hlcyBpdGVyYXRp bmcgb3ZlciBhIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkuICBUaGUKLSsgICAgIGFyZ3VtZW50IElO TkVSX1AgaXMgdHJ1ZSBmb3IgdGhlIGlubmVyIG1vc3QgZGltZW5zaW9uICh0aGUgZGltZW5zaW9u Ci0rICAgICBjb250YWluaW5nIHRoZSBhY3R1YWwgZWxlbWVudHMgb2YgdGhlIGFycmF5KSwgYW5k IGZhbHNlIGZvciBtb3JlIG91dGVyCi0rICAgICBkaW1lbnNpb25zLiAgTEFTVF9QIGlzIHRydWUg Zm9yIHRoZSBsYXN0IGNhbGwgYXQgYSBwYXJ0aWN1bGFyCi0rICAgICBkaW1lbnNpb24uICBGb3Ig YSBjb25jcmV0ZSBleGFtcGxlIG9mIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZAotKyAgICAg c2VlIHRoZSBjb21tZW50IG9uIHByb2Nlc3NfZWxlbWVudCBiZWxvdy4gICovCi0rICB2b2lkIGZp bmlzaF9kaW1lbnNpb24gKGJvb2wgaW5uZXJfcCwgYm9vbCBsYXN0X3ApCi0rICB7IC8qIE5vdGhp bmcuICAqLyB9Ci0rCi0rICAvKiBDYWxsZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBpbm5lciBtb3N0 IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXksIGZvcgotKyAgICAgZXZlcnkgZWxlbWVudCBpbiB0aGUg YXJyYXkuICBFTFRfVFlQRSBpcyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudCBiZWluZwotKyAgICAg ZXh0cmFjdGVkLCBhbmQgRUxUX09GRiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBlbGVtZW50IGZyb20g dGhlIHN0YXJ0IG9mCi0rICAgICBhcnJheSBiZWluZyB3YWxrZWQsIGFuZCBMQVNUX1AgaXMgdHJ1 ZSBvbmx5IHdoZW4gdGhpcyBpcyB0aGUgbGFzdAotKyAgICAgZWxlbWVudCB0aGF0IHdpbGwgYmUg cHJvY2Vzc2VkIGluIHRoaXMgZGltZW5zaW9uLgotKwotKyAgICAgR2l2ZW4gdGhpcyB0d28gZGlt ZW5zaW9uYWwgYXJyYXkgKCgxLCAyKSAoMywgNCkpLCB0aGUgY2FsbHMgdG8KLSsgICAgIHN0YXJ0 X2RpbWVuc2lvbiwgcHJvY2Vzc19lbGVtZW50LCBhbmQgZmluaXNoX2RpbWVuc2lvbiBsb29rIGxp a2UgdGhpczoKLSsKLSsgICAgIHN0YXJ0X2RpbWVuc2lvbiAoZmFsc2UpOwotKyAgICAgICBzdGFy dF9kaW1lbnNpb24gKHRydWUpOwotKyAgICAgICAgIHByb2Nlc3NfZWxlbWVudCAoVFlQRSwgT0ZG U0VULCBmYWxzZSk7Ci0rICAgICAgICAgcHJvY2Vzc19lbGVtZW50IChUWVBFLCBPRkZTRVQsIHRy dWUpOwotKyAgICAgICBmaW5pc2hfZGltZW5zaW9uICh0cnVlLCBmYWxzZSk7Ci0rICAgICAgIHN0 YXJ0X2RpbWVuc2lvbiAodHJ1ZSk7Ci0rICAgICAgICAgcHJvY2Vzc19lbGVtZW50IChUWVBFLCBP RkZTRVQsIGZhbHNlKTsKLSsgICAgICAgICBwcm9jZXNzX2VsZW1lbnQgKFRZUEUsIE9GRlNFVCwg dHJ1ZSk7Ci0rICAgICAgIGZpbmlzaF9kaW1lbnNpb24gKHRydWUsIHRydWUpOwotKyAgICAgZmlu aXNoX2RpbWVuc2lvbiAoZmFsc2UsIHRydWUpOyAgKi8KLSsgIHZvaWQgcHJvY2Vzc19lbGVtZW50 IChzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUsIExPTkdFU1QgZWx0X29mZiwgYm9vbCBsYXN0X3ApCi0r ICB7IC8qIE5vdGhpbmcuICAqLyB9Ci0rfTsKLSsKLSsvKiBBIGNsYXNzIHRvIHdyYXAgdXAgdGhl IHByb2Nlc3Mgb2YgaXRlcmF0aW5nIG92ZXIgYSBtdWx0aS1kaW1lbnNpb25hbAotKyAgIEZvcnRy YW4gYXJyYXkuICBJTVBMIGlzIHVzZWQgdG8gc3BlY2lhbGlzZSB3aGF0IGhhcHBlbnMgYXMgd2Ug d2FsayBvdmVyCi0rICAgdGhlIGFycmF5LiAgU2VlIGNsYXNzIEZPUlRSQU5fQVJSQVlfV0FMS0VS X0JBU0VfSU1QTCAoYWJvdmUpIGZvciB0aGUKLSsgICBtZXRob2RzIHRoYW4gY2FuIGJlIHVzZWQg dG8gY3VzdG9taXNlIHRoZSBhcnJheSB3YWxrLiAgKi8KLSt0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBs PgotK2NsYXNzIGZvcnRyYW5fYXJyYXlfd2Fsa2VyCi0rewotKyAgLyogRW5zdXJlIHRoYXQgSW1w bCBpcyBkZXJpdmVkIGZyb20gdGhlIHJlcXVpcmVkIGJhc2UgY2xhc3MuICBUaGlzIGp1c3QKLSsg ICAgIGVuc3VyZXMgdGhhdCBhbGwgb2YgdGhlIHJlcXVpcmVkIEFQSSBtZXRob2RzIGFyZSBhdmFp bGFibGUgYW5kIGhhdmUgYQotKyAgICAgc2Vuc2libGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4g ICovCi0rICBnZGJfc3RhdGljX2Fzc2VydCAoKHN0ZDo6aXNfYmFzZV9vZjxmb3J0cmFuX2FycmF5 X3dhbGtlcl9iYXNlX2ltcGwsSW1wbD46OnZhbHVlKSk7Ci0rCi0rcHVibGljOgotKyAgLyogQ3Jl YXRlIGEgbmV3IGFycmF5IHdhbGtlci4gIFRZUEUgaXMgdGhlIHR5cGUgb2YgdGhlIGFycmF5IGJl aW5nIHdhbGtlZAotKyAgICAgb3ZlciwgYW5kIEFERFJFU1MgaXMgdGhlIGJhc2UgYWRkcmVzcyBm b3IgdGhlIG9iamVjdCBvZiBUWVBFIGluCi0rICAgICBtZW1vcnkuICBBbGwgb3RoZXIgYXJndW1l bnRzIGFyZSBmb3J3YXJkZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9mIHRoZQotKyAgICAgdGVtcGxh dGUgcGFyYW1ldGVyIGNsYXNzIElNUEwuICAqLwotKyAgdGVtcGxhdGUgPHR5cGVuYW1lIC4uLkFy Z3M+Ci0rICBmb3J0cmFuX2FycmF5X3dhbGtlciAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQURE UiBhZGRyZXNzLAotKwkJCUFyZ3MuLi4gYXJncykKLSsgICAgOiBtX3R5cGUgKHR5cGUpLAotKyAg ICAgIG1fYWRkcmVzcyAoYWRkcmVzcyksCi0rICAgICAgbV9pbXBsICh0eXBlLCBhZGRyZXNzLCBh cmdzLi4uKQotKyAgewotKyAgICBtX25kaW1lbnNpb25zID0gIGNhbGNfZjc3X2FycmF5X2RpbXMg KG1fdHlwZSk7Ci0rICB9Ci0rCi0rICAvKiBXYWxrIHRoZSBhcnJheS4gICovCi0rICB2b2lkCi0r ICB3YWxrICgpCi0rICB7Ci0rICAgIHdhbGtfMSAoMSwgbV90eXBlLCAwLCBmYWxzZSk7Ci0rICB9 Ci0rCi0rcHJpdmF0ZToKLSsgIC8qIFRoZSBjb3JlIG9mIHRoZSBhcnJheSB3YWxraW5nIGFsZ29y aXRobS4gIE5TUyBpcyB0aGUgY3VycmVudAotKyAgICAgZGltZW5zaW9uIG51bWJlciBiZWluZyBw cm9jZXNzZWQsIFRZUEUgaXMgdGhlIHR5cGUgb2YgdGhpcyBkaW1lbnNpb24sCi0rICAgICBhbmQg T0ZGU0VUIGlzIHRoZSBvZmZzZXQgKGluIGJ5dGVzKSBmb3IgdGhlIHN0YXJ0IG9mIHRoaXMgZGlt ZW5zaW9uLiAgKi8KLSsgIHZvaWQKLSsgIHdhbGtfMSAoaW50IG5zcywgc3RydWN0IHR5cGUgKnR5 cGUsIGludCBvZmZzZXQsIGJvb2wgbGFzdF9wKQotKyAgewotKyAgICAvKiBFeHRyYWN0IHRoZSBy YW5nZSwgYW5kIGdldCBsb3dlciBhbmQgdXBwZXIgYm91bmRzLiAgKi8KLSsgICAgc3RydWN0IHR5 cGUgKnJhbmdlX3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKS0+aW5kZXhfdHlwZSAoKTsKLSsg ICAgTE9OR0VTVCBsb3dlcmJvdW5kLCB1cHBlcmJvdW5kOwotKyAgICBpZiAoIWdldF9kaXNjcmV0 ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCkpCi0rICAgICAg ZXJyb3IgKCJmYWlsZWQgdG8gZ2V0IHJhbmdlIGJvdW5kcyIpOwotKwotKyAgICAvKiBDQUxDIGlz IHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXRzIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhpcwot KyAgICAgICBkaW1lbnNpb24uICAqLwotKyAgICBmb3J0cmFuX2FycmF5X29mZnNldF9jYWxjdWxh dG9yIGNhbGMgKHR5cGUpOwotKwotKyAgICBtX2ltcGwuc3RhcnRfZGltZW5zaW9uIChuc3MgPT0g bV9uZGltZW5zaW9ucyk7Ci0rCi0rICAgIGlmIChuc3MgIT0gbV9uZGltZW5zaW9ucykKLSsgICAg ICB7Ci0rCS8qIEZvciBkaW1lbnNpb25zIG90aGVyIHRoYW4gdGhlIGlubmVyIG1vc3QsIHdhbGsg ZWFjaCBlbGVtZW50IGFuZAotKwkgICByZWN1cnNlIHdoaWxlIHBlZWxpbmcgb2ZmIG9uZSBtb3Jl IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkuICAqLwotKwlmb3IgKExPTkdFU1QgaSA9IGxvd2VyYm91 bmQ7Ci0rCSAgICAgbV9pbXBsLmNvbnRpbnVlX3dhbGtpbmcgKGkgPCB1cHBlcmJvdW5kICsgMSk7 Ci0rCSAgICAgaSsrKQotKwkgIHsKLSsJICAgIC8qIFVzZSB0aGUgaW5kZXggYW5kIHRoZSBzdHJp ZGUgdG8gd29yayBvdXQgYSBuZXcgb2Zmc2V0LiAgKi8KLSsJICAgIExPTkdFU1QgbmV3X29mZnNl dCA9IG9mZnNldCArIGNhbGMuaW5kZXhfb2Zmc2V0IChpKTsKLSsKLSsJICAgIC8qIE5vdyBwcmlu dCB0aGUgbG93ZXIgZGltZW5zaW9uLiAgKi8KLSsJICAgIHN0cnVjdCB0eXBlICpzdWJhcnJheV90 eXBlCi0rCSAgICAgID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodHlwZSkpOwot KwkgICAgd2Fsa18xIChuc3MgKyAxLCBzdWJhcnJheV90eXBlLCBuZXdfb2Zmc2V0LCAoaSA9PSB1 cHBlcmJvdW5kKSk7Ci0rCSAgfQotKyAgICAgIH0KLSsgICAgZWxzZQotKyAgICAgIHsKLSsJLyog Rm9yIHRoZSBpbm5lciBtb3N0IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXksIHByb2Nlc3MgZWFjaCBl bGVtZW50Ci0rCSAgIHdpdGhpbiB0aGlzIGRpbWVuc2lvbi4gICovCi0rCWZvciAoTE9OR0VTVCBp ID0gbG93ZXJib3VuZDsKLSsJICAgICBtX2ltcGwuY29udGludWVfd2Fsa2luZyAoaSA8IHVwcGVy Ym91bmQgKyAxKTsKLSsJICAgICBpKyspCi0rCSAgewotKwkgICAgTE9OR0VTVCBlbHRfb2ZmID0g b2Zmc2V0ICsgY2FsYy5pbmRleF9vZmZzZXQgKGkpOwotKwotKwkgICAgc3RydWN0IHR5cGUgKmVs dF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwotKwkgICAg aWYgKGlzX2R5bmFtaWNfdHlwZSAoZWx0X3R5cGUpKQotKwkgICAgICB7Ci0rCQlDT1JFX0FERFIg ZV9hZGRyZXNzID0gbV9hZGRyZXNzICsgZWx0X29mZjsKLSsJCWVsdF90eXBlID0gcmVzb2x2ZV9k eW5hbWljX3R5cGUgKGVsdF90eXBlLCB7fSwgZV9hZGRyZXNzKTsKLSsJICAgICAgfQotKwotKwkg ICAgbV9pbXBsLnByb2Nlc3NfZWxlbWVudCAoZWx0X3R5cGUsIGVsdF9vZmYsIChpID09IHVwcGVy Ym91bmQpKTsKLSsJICB9Ci0rICAgICAgfQotKwotKyAgICBtX2ltcGwuZmluaXNoX2RpbWVuc2lv biAobnNzID09IG1fbmRpbWVuc2lvbnMsIGxhc3RfcCB8fCBuc3MgPT0gMSk7Ci0rICB9Ci0rCi0r ICAvKiBUaGUgYXJyYXkgdHlwZSBiZWluZyBwcm9jZXNzZWQuICAqLwotKyAgc3RydWN0IHR5cGUg Km1fdHlwZTsKLSsKLSsgIC8qIFRoZSBhZGRyZXNzIGluIHRhcmdldCBtZW1vcnkgZm9yIHRoZSBv YmplY3Qgb2YgTV9UWVBFIGJlaW5nCi0rICAgICBwcm9jZXNzZWQuICBUaGlzIGlzIHJlcXVpcmVk IGluIG9yZGVyIHRvIHJlc29sdmUgZHluYW1pYyB0eXBlcy4gICovCi0rICBDT1JFX0FERFIgbV9h ZGRyZXNzOwotKwotKyAgLyogQW4gaW5zdGFuY2Ugb2YgdGhlIHRlbXBsYXRlIHNwZWNpYWxpc2F0 aW9uIGNsYXNzLiAgKi8KLSsgIEltcGwgbV9pbXBsOwotKwotKyAgLyogVGhlIHRvdGFsIG51bWJl ciBvZiBkaW1lbnNpb25zIGluIE1fVFlQRS4gICovCi0rICBpbnQgbV9uZGltZW5zaW9uczsKLSt9 OwotKwotKyNlbmRpZiAvKiBGX0FSUkFZX1dBTEtFUl9IICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2Yt bGFuZy5jIGIvZ2RiL2YtbGFuZy5jCi0tLS0gYS9nZGIvZi1sYW5nLmMKLSsrKyBiL2dkYi9mLWxh bmcuYwotQEAgLTM2LDkgKzM2LDM2IEBACi0gI2luY2x1ZGUgImMtbGFuZy5oIgotICNpbmNsdWRl ICJ0YXJnZXQtZmxvYXQuaCIKLSAjaW5jbHVkZSAiZ2RiYXJjaC5oIgotKyNpbmNsdWRlICJnZGJj bWQuaCIKLSsjaW5jbHVkZSAiZi1hcnJheS13YWxrZXIuaCIKLSAKLSAjaW5jbHVkZSA8bWF0aC5o PgotIAotKy8qIFdoZXRoZXIgR0RCIHNob3VsZCByZXBhY2sgYXJyYXkgc2xpY2VzIGNyZWF0ZWQg YnkgdGhlIHVzZXIuICAqLwotK3N0YXRpYyBib29sIHJlcGFja19hcnJheV9zbGljZXMgPSBmYWxz ZTsKLSsKLSsvKiBJbXBsZW1lbnQgJ3Nob3cgZm9ydHJhbiByZXBhY2stYXJyYXktc2xpY2VzJy4g ICovCi0rc3RhdGljIHZvaWQKLStzaG93X3JlcGFja19hcnJheV9zbGljZXMgKHN0cnVjdCB1aV9m aWxlICpmaWxlLCBpbnQgZnJvbV90dHksCi0rCQkJICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq YywgY29uc3QgY2hhciAqdmFsdWUpCi0rewotKyAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygi UmVwYWNraW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2VzIGlzICVzLlxuIiksCi0rCQkgICAgdmFs dWUpOwotK30KLSsKLSsvKiBEZWJ1Z2dpbmcgb2YgRm9ydHJhbidzIGFycmF5IHNsaWNpbmcuICAq LwotK3N0YXRpYyBib29sIGZvcnRyYW5fYXJyYXlfc2xpY2luZ19kZWJ1ZyA9IGZhbHNlOwotKwot Ky8qIEltcGxlbWVudCAnc2hvdyBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNpbmcnLiAgKi8KLStz dGF0aWMgdm9pZAotK3Nob3dfZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVnIChzdHJ1Y3QgdWlf ZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAotKwkJCQkgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50 ICpjLAotKwkJCQkgIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIGZwcmludGZfZmlsdGVyZWQg KGZpbGUsIF8oIkRlYnVnZ2luZyBvZiBGb3J0cmFuIGFycmF5IHNsaWNpbmcgaXMgJXMuXG4iKSwK LSsJCSAgICB2YWx1ZSk7Ci0rfQotKwotIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwotIAotIC8qIFJl dHVybiB0aGUgZW5jb2RpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGNoYXJhY3RlciB0 eXBlCi1AQCAtMTE0LDU3ICsxNDEsNiBAQCBlbnVtIGZfcHJpbWl0aXZlX3R5cGVzIHsKLSAgIG5y X2ZfcHJpbWl0aXZlX3R5cGVzCi0gfTsKLSAKLS0vKiBDYWxsZWQgZnJvbSBmb3J0cmFuX3ZhbHVl X3N1YmFycmF5IHRvIHRha2UgYSBzbGljZSBvZiBhbiBhcnJheSBvciBhCi0tICAgc3RyaW5nLiAg QVJSQVkgaXMgdGhlIGFycmF5IG9yIHN0cmluZyB0byBiZSBhY2Nlc3NlZC4gIEVYUCwgUE9TLCBh bmQKLS0gICBOT1NJREUgYXJlIGFzIGZvciBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQuICBSZXR1 cm4gYSB2YWx1ZSB0aGF0IGlzIGEKLS0gICBzbGljZSBvZiB0aGUgYXJyYXkuICAqLwotLQotLXN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKgotLXZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICph cnJheSwKLS0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3Np ZGUgbm9zaWRlKQotLXsKLS0gIGludCBwYyA9ICgqcG9zKSArIDE7Ci0tICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotLSAgc3RydWN0IHR5cGUgKnJhbmdlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgpKTsKLS0gIGVudW0gcmFu Z2VfZmxhZyByYW5nZV9mbGFnCi0tICAgID0gKGVudW0gcmFuZ2VfZmxhZykgbG9uZ2VzdF90b19p bnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLS0KLS0gICpwb3MgKz0gMzsKLS0KLS0gIGlm IChyYW5nZV9mbGFnICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0tICAgIGxvd19ib3VuZCA9 IHJhbmdlLT5ib3VuZHMgKCktPmxvdy5jb25zdF92YWwgKCk7Ci0tICBlbHNlCi0tICAgIGxvd19i b3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3Ms IG5vc2lkZSkpOwotLQotLSAgaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFV TFQpCi0tICAgIGhpZ2hfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5oaWdoLmNvbnN0X3ZhbCAo KTsKLS0gIGVsc2UKLS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1 YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotLQotLSAgaWYgKHJhbmdlX2ZsYWcg JiBSQU5HRV9IQVNfU1RSSURFKQotLSAgICBzdHJpZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0 ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLS0gIGVsc2UKLS0gICAgc3Ry aWRlID0gMTsKLS0KLS0gIGlmIChzdHJpZGUgIT0gMSkKLS0gICAgZXJyb3IgKF8oIkZvcnRyYW4g YXJyYXkgc3RyaWRlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQiKSk7Ci0tCi0tICByZXR1 cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQg KyAxKTsKLS19Ci0tCi0tLyogSGVscGVyIGZvciBza2lwcGluZyBhbGwgdGhlIGFyZ3VtZW50cyBp biBhbiB1bmRldGVybWluZWQgYXJndW1lbnQgbGlzdC4KLS0gICBUaGlzIGZ1bmN0aW9uIHdhcyBk ZXNpZ25lZCBmb3IgdXNlIGluIHRoZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1QKLS0gICBj YXNlIG9mIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCBhcyBtdWx0aXBsZSwgYnV0IG5vdCBhbGws IGNvZGUgcGF0aHMKLS0gICByZXF1aXJlIGEgZ2VuZXJpYyBza2lwLiAgKi8KLS0KLS1zdGF0aWMg dm9pZAotLXNraXBfdW5kZXRlcm1pbmVkX2FyZ2xpc3QgKGludCBuYXJncywgc3RydWN0IGV4cHJl c3Npb24gKmV4cCwgaW50ICpwb3MsCi0tCQkJICAgZW51bSBub3NpZGUgbm9zaWRlKQotLXsKLS0g IGZvciAoaW50IGkgPSAwOyBpIDwgbmFyZ3M7ICsraSkKLS0gICAgZXZhbHVhdGVfc3ViZXhwIChu dWxscHRyLCBleHAsIHBvcywgbm9zaWRlKTsKLS19Ci0tCi0gLyogUmV0dXJuIHRoZSBudW1iZXIg b2YgZGltZW5zaW9ucyBmb3IgYSBGb3J0cmFuIGFycmF5IG9yIHN0cmluZy4gICovCi0gCi0gaW50 Ci1AQCAtMTg5LDYgKzE2NSwxNDUgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUg KmFycmF5X3R5cGUpCi0gICByZXR1cm4gbmRpbWVuOwotIH0KLSAKLSsvKiBBIGNsYXNzIHVzZWQg YnkgRk9SVFJBTl9WQUxVRV9TVUJBUlJBWSB3aGVuIHJlcGFja2luZyBGb3J0cmFuIGFycmF5Ci0r ICAgc2xpY2VzLiAgVGhpcyBpcyBhIGJhc2UgY2xhc3MgZm9yIHR3byBhbHRlcm5hdGl2ZSByZXBh Y2tpbmcgbWVjaGFuaXNtcywKLSsgICBvbmUgZm9yIHdoZW4gcmVwYWNraW5nIGZyb20gYSBsYXp5 IHZhbHVlLCBhbmQgb25lIGZvciByZXBhY2tpbmcgZnJvbSBhCi0rICAgbm9uLWxhenkgKGFscmVh ZHkgbG9hZGVkKSB2YWx1ZS4gICovCi0rY2xhc3MgZm9ydHJhbl9hcnJheV9yZXBhY2tlcl9iYXNl X2ltcGwKLSsgIDogcHVibGljIGZvcnRyYW5fYXJyYXlfd2Fsa2VyX2Jhc2VfaW1wbAotK3sKLStw dWJsaWM6Ci0rICAvKiBDb25zdHJ1Y3RvciwgREVTVCBpcyB0aGUgdmFsdWUgd2UgYXJlIHJlcGFj a2luZyBpbnRvLiAgKi8KLSsgIGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfYmFzZV9pbXBsIChzdHJ1 Y3QgdmFsdWUgKmRlc3QpCi0rICAgIDogbV9kZXN0IChkZXN0KSwKLSsgICAgICBtX2Rlc3Rfb2Zm c2V0ICgwKQotKyAgeyAvKiBOb3RoaW5nLiAgKi8gfQotKwotKyAgLyogV2hlbiB3ZSBzdGFydCBw cm9jZXNzaW5nIHRoZSBpbm5lciBtb3N0IGRpbWVuc2lvbiwgdGhpcyBpcyB3aGVyZSB3ZQotKyAg ICAgd2lsbCBiZSBjcmVhdGluZyB2YWx1ZXMgZm9yIGVhY2ggZWxlbWVudCBhcyB3ZSBsb2FkIHRo ZW0gYW5kIHRoZW4gY29weQotKyAgICAgdGhlbSBpbnRvIHRoZSBNX0RFU1QgdmFsdWUuICBTZXQg YSB2YWx1ZSBtYXJrIHNvIHdlIGNhbiBmcmVlIHRoZXNlCi0rICAgICB0ZW1wb3JhcnkgdmFsdWVz LiAgKi8KLSsgIHZvaWQgc3RhcnRfZGltZW5zaW9uIChib29sIGlubmVyX3ApCi0rICB7Ci0rICAg IGlmIChpbm5lcl9wKQotKyAgICAgIHsKLSsJZ2RiX2Fzc2VydCAobV9tYXJrID09IG51bGxwdHIp OwotKwltX21hcmsgPSB2YWx1ZV9tYXJrICgpOwotKyAgICAgIH0KLSsgIH0KLSsKLSsgIC8qIFdo ZW4gd2UgZmluaXNoIHByb2Nlc3NpbmcgdGhlIGlubmVyIG1vc3QgZGltZW5zaW9uIGZyZWUgYWxs IHRlbXBvcmFyeQotKyAgICAgdmFsdWUgdGhhdCB3ZXJlIGNyZWF0ZWQuICAqLwotKyAgdm9pZCBm aW5pc2hfZGltZW5zaW9uIChib29sIGlubmVyX3AsIGJvb2wgbGFzdF9wKQotKyAgewotKyAgICBp ZiAoaW5uZXJfcCkKLSsgICAgICB7Ci0rCWdkYl9hc3NlcnQgKG1fbWFyayAhPSBudWxscHRyKTsK LSsJdmFsdWVfZnJlZV90b19tYXJrIChtX21hcmspOwotKwltX21hcmsgPSBudWxscHRyOwotKyAg ICAgIH0KLSsgIH0KLSsKLStwcm90ZWN0ZWQ6Ci0rICAvKiBDb3B5IHRoZSBjb250ZW50cyBvZiBh cnJheSBlbGVtZW50IEVMVCBpbnRvIE1fREVTVCBhdCB0aGUgbmV4dAotKyAgICAgYXZhaWxhYmxl IG9mZnNldC4gICovCi0rICB2b2lkIGNvcHlfZWxlbWVudF90b19kZXN0IChzdHJ1Y3QgdmFsdWUg KmVsdCkKLSsgIHsKLSsgICAgdmFsdWVfY29udGVudHNfY29weSAobV9kZXN0LCBtX2Rlc3Rfb2Zm c2V0LCBlbHQsIDAsCi0rCQkJIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChlbHQpKSk7Ci0rICAg IG1fZGVzdF9vZmZzZXQgKz0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGVsdCkpOwotKyAgfQot KwotKyAgLyogVGhlIHZhbHVlIGJlaW5nIHdyaXR0ZW4gdG8uICAqLwotKyAgc3RydWN0IHZhbHVl ICptX2Rlc3Q7Ci0rCi0rICAvKiBUaGUgYnl0ZSBvZmZzZXQgaW4gTV9ERVNUIGF0IHdoaWNoIHRo ZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlCi0rICAgICB3cml0dGVuLiAgKi8KLSsgIExPTkdFU1Qg bV9kZXN0X29mZnNldDsKLSsKLSsgIC8qIFNldCB3aXRoIGEgY2FsbCB0byBWQUxVRV9NQVJLLCBh bmQgdGhlbiByZXNldCBhZnRlciBjYWxsaW5nCi0rICAgICBWQUxVRV9GUkVFX1RPX01BUksuICAq LwotKyAgc3RydWN0IHZhbHVlICptX21hcmsgPSBudWxscHRyOwotK307Ci0rCi0rLyogQSBjbGFz cyB1c2VkIGJ5IEZPUlRSQU5fVkFMVUVfU1VCQVJSQVkgd2hlbiByZXBhY2tpbmcgRm9ydHJhbiBh cnJheQotKyAgIHNsaWNlcy4gIFRoaXMgY2xhc3MgaXMgc3BlY2lhbGlzZWQgZm9yIHJlcGFja2lu ZyBhbiBhcnJheSBzbGljZSBmcm9tIGEKLSsgICBsYXp5IGFycmF5IHZhbHVlLCBhcyBzdWNoIGl0 IGRvZXMgbm90IHJlcXVpcmUgdGhlIHBhcmVudCBhcnJheSB2YWx1ZSB0bwotKyAgIGJlIGxvYWRl ZCBpbnRvIEdEQidzIG1lbW9yeTsgdGhlIHBhcmVudCB2YWx1ZSBjb3VsZCBiZSBodWdlLCB3aGls ZSB0aGUKLSsgICBzbGljZSBjb3VsZCBiZSB0aW55LiAgKi8KLStjbGFzcyBmb3J0cmFuX2xhenlf YXJyYXlfcmVwYWNrZXJfaW1wbAotKyAgOiBwdWJsaWMgZm9ydHJhbl9hcnJheV9yZXBhY2tlcl9i YXNlX2ltcGwKLSt7Ci0rcHVibGljOgotKyAgLyogQ29uc3RydWN0b3IuICBUWVBFIGlzIHRoZSB0 eXBlIG9mIHRoZSBzbGljZSBiZWluZyBsb2FkZWQgZnJvbSB0aGUKLSsgICAgIHBhcmVudCB2YWx1 ZSwgc28gdGhpcyB0eXBlIHdpbGwgY29ycmVjdGx5IHJlZmxlY3QgdGhlIHN0cmlkZXMgcmVxdWly ZWQKLSsgICAgIHRvIGZpbmQgYWxsIG9mIHRoZSBlbGVtZW50cyBmcm9tIHRoZSBwYXJlbnQgdmFs dWUuICBBRERSRVNTIGlzIHRoZQotKyAgICAgYWRkcmVzcyBpbiB0YXJnZXQgbWVtb3J5IG9mIHZh bHVlIG1hdGNoaW5nIFRZUEUsIGFuZCBERVNUIGlzIHRoZSB2YWx1ZQotKyAgICAgd2UgYXJlIHJl cGFja2luZyBpbnRvLiAgKi8KLSsgIGV4cGxpY2l0IGZvcnRyYW5fbGF6eV9hcnJheV9yZXBhY2tl cl9pbXBsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLSsJCQkJCSAgICAgQ09SRV9BRERSIGFkZHJlc3Ms Ci0rCQkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqZGVzdCkKLSsgICAgOiBmb3J0cmFuX2FycmF5X3Jl cGFja2VyX2Jhc2VfaW1wbCAoZGVzdCksCi0rICAgICAgbV9hZGRyIChhZGRyZXNzKQotKyAgeyAv KiBOb3RoaW5nLiAgKi8gfQotKwotKyAgLyogQ3JlYXRlIGEgbGF6eSB2YWx1ZSBpbiB0YXJnZXQg bWVtb3J5IHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50LAotKyAgICAgdGhlbiBsb2FkIHRo ZSBlbGVtZW50IGludG8gR0RCJ3MgbWVtb3J5IGFuZCBjb3B5IHRoZSBjb250ZW50cyBpbnRvIHRo ZQotKyAgICAgZGVzdGluYXRpb24gdmFsdWUuICAqLwotKyAgdm9pZCBwcm9jZXNzX2VsZW1lbnQg KHN0cnVjdCB0eXBlICplbHRfdHlwZSwgTE9OR0VTVCBlbHRfb2ZmLCBib29sIGxhc3RfcCkKLSsg IHsKLSsgICAgY29weV9lbGVtZW50X3RvX2Rlc3QgKHZhbHVlX2F0X2xhenkgKGVsdF90eXBlLCBt X2FkZHIgKyBlbHRfb2ZmKSk7Ci0rICB9Ci0rCi0rcHJpdmF0ZToKLSsgIC8qIFRoZSBhZGRyZXNz IGluIHRhcmdldCBtZW1vcnkgd2hlcmUgdGhlIHBhcmVudCB2YWx1ZSBzdGFydHMuICAqLwotKyAg Q09SRV9BRERSIG1fYWRkcjsKLSt9OwotKwotKy8qIEEgY2xhc3MgdXNlZCBieSBGT1JUUkFOX1ZB TFVFX1NVQkFSUkFZIHdoZW4gcmVwYWNraW5nIEZvcnRyYW4gYXJyYXkKLSsgICBzbGljZXMuICBU aGlzIGNsYXNzIGlzIHNwZWNpYWxpc2VkIGZvciByZXBhY2tpbmcgYW4gYXJyYXkgc2xpY2UgZnJv bSBhCi0rICAgcHJldmlvdXNseSBsb2FkZWQgKG5vbi1sYXp5KSBhcnJheSB2YWx1ZSwgYXMgc3Vj aCBpdCBmZXRjaGVzIHRoZQotKyAgIGVsZW1lbnQgdmFsdWVzIGZyb20gdGhlIGNvbnRlbnRzIG9m IHRoZSBwYXJlbnQgdmFsdWUuICAqLwotK2NsYXNzIGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfaW1w bAotKyAgOiBwdWJsaWMgZm9ydHJhbl9hcnJheV9yZXBhY2tlcl9iYXNlX2ltcGwKLSt7Ci0rcHVi bGljOgotKyAgLyogQ29uc3RydWN0b3IuICBUWVBFIGlzIHRoZSB0eXBlIGZvciB0aGUgYXJyYXkg c2xpY2Ugd2l0aGluIHRoZSBwYXJlbnQKLSsgICAgIHZhbHVlLCBhcyBzdWNoIGl0IGhhcyBzdHJp ZGUgdmFsdWVzIGFzIHJlcXVpcmVkIHRvIGZpbmQgdGhlIGVsZW1lbnRzCi0rICAgICB3aXRoaW4g dGhlIG9yaWdpbmFsIHBhcmVudCB2YWx1ZS4gIEFERFJFU1MgaXMgdGhlIGFkZHJlc3MgaW4gdGFy Z2V0Ci0rICAgICBtZW1vcnkgb2YgdGhlIHZhbHVlIG1hdGNoaW5nIFRZUEUuICBCQVNFX09GRlNF VCBpcyB0aGUgb2Zmc2V0IGZyb20KLSsgICAgIHRoZSBzdGFydCBvZiBWQUwncyBjb250ZW50IGJ1 ZmZlciB0byB0aGUgc3RhcnQgb2YgdGhlIG9iamVjdCBvZiBUWVBFLAotKyAgICAgVkFMIGlzIHRo ZSBwYXJlbnQgb2JqZWN0IGZyb20gd2hpY2ggd2UgYXJlIGxvYWRpbmcgdGhlIHZhbHVlLCBhbmQK LSsgICAgIERFU1QgaXMgdGhlIHZhbHVlIGludG8gd2hpY2ggd2UgYXJlIHJlcGFja2luZy4gICov Ci0rICBleHBsaWNpdCBmb3J0cmFuX2FycmF5X3JlcGFja2VyX2ltcGwgKHN0cnVjdCB0eXBlICp0 eXBlLCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJCUxPTkdFU1QgYmFzZV9vZmZzZXQsCi0rCQkJ CQlzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHZhbHVlICpkZXN0KQotKyAgICA6IGZvcnRyYW5f YXJyYXlfcmVwYWNrZXJfYmFzZV9pbXBsIChkZXN0KSwKLSsgICAgICBtX2Jhc2Vfb2Zmc2V0IChi YXNlX29mZnNldCksCi0rICAgICAgbV92YWwgKHZhbCkKLSsgIHsKLSsgICAgZ2RiX2Fzc2VydCAo IXZhbHVlX2xhenkgKHZhbCkpOwotKyAgfQotKwotKyAgLyogRXh0cmFjdCBhbiBlbGVtZW50IG9m IEVMVF9UWVBFIGF0IG9mZnNldCAoTV9CQVNFX09GRlNFVCArIEVMVF9PRkYpCi0rICAgICBmcm9t IHRoZSBjb250ZW50IGJ1ZmZlciBvZiBNX1ZBTCB0aGVuIGNvcHkgdGhpcyBleHRyYWN0ZWQgdmFs dWUgaW50bwotKyAgICAgdGhlIHJlcGFja2VkIGRlc3RpbmF0aW9uIHZhbHVlLiAgKi8KLSsgIHZv aWQgcHJvY2Vzc19lbGVtZW50IChzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUsIExPTkdFU1QgZWx0X29m ZiwgYm9vbCBsYXN0X3ApCi0rICB7Ci0rICAgIHN0cnVjdCB2YWx1ZSAqZWx0Ci0rICAgICAgPSB2 YWx1ZV9mcm9tX2NvbXBvbmVudCAobV92YWwsIGVsdF90eXBlLCAoZWx0X29mZiArIG1fYmFzZV9v ZmZzZXQpKTsKLSsgICAgY29weV9lbGVtZW50X3RvX2Rlc3QgKGVsdCk7Ci0rICB9Ci0rCi0rcHJp dmF0ZToKLSsgIC8qIFRoZSBvZmZzZXQgaW50byB0aGUgY29udGVudCBidWZmZXIgb2YgTV9WQUwg dG8gdGhlIHN0YXJ0IG9mIHRoZSBzbGljZQotKyAgICAgYmVpbmcgZXh0cmFjdGVkLiAgKi8KLSsg IExPTkdFU1QgbV9iYXNlX29mZnNldDsKLSsKLSsgIC8qIFRoZSBwYXJlbnQgdmFsdWUgZnJvbSB3 aGljaCB3ZSBhcmUgZXh0cmFjdGluZyBhIHNsaWNlLiAgKi8KLSsgIHN0cnVjdCB2YWx1ZSAqbV92 YWw7Ci0rfTsKLSsKLSAvKiBDYWxsZWQgZnJvbSBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgdG8g cGVyZm9ybSBhcnJheSBpbmRleGluZywgYW5kCi0gICAgc3ViLXJhbmdlIGV4dHJhY3Rpb24sIGZv ciBGb3J0cmFuLiAgQXMgd2VsbCBhcyBhcnJheXMgdGhpcyBmdW5jdGlvbgotICAgIGFsc28gaGFu ZGxlcyBzdHJpbmdzIGFzIHRoZXkgY2FuIGJlIHRyZWF0ZWQgbGlrZSBhcnJheXMgb2YgY2hhcmFj dGVycy4KLUBAIC0yMDAsNTEgKzMxNSwzOTQgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCi0gZm9y dHJhbl92YWx1ZV9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKLSAJCQlpbnQgKnBvcywgaW50IG5hcmdzLCBlbnVtIG5vc2lkZSBub3NpZGUpCi0g ewotLSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCi0tICAgIHJldHVy biB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFycmF5LCBleHAsIHBvcywgbm9zaWRlKTsKLS0KLS0gIGlm IChub3NpZGUgPT0gRVZBTF9TS0lQKQotKyAgdHlwZSAqb3JpZ2luYWxfYXJyYXlfdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rICBib29sIGlzX3N0cmluZ19wID0g b3JpZ2luYWxfYXJyYXlfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RSSU5HOwotKwotKyAg LyogUGVyZm9ybSBjaGVja3MgZm9yIEFSUkFZIG5vdCBiZWluZyBhdmFpbGFibGUuICBUaGUgc29t ZXdoYXQgb3Zlcmx5Ci0rICAgICBjb21wbGV4IGxvZ2ljIGhlcmUgaXMganVzdCB0byBrZWVwIGJh Y2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUKLSsgICAgIGVycm9ycyB0aGF0IHdlIHVzZWQg dG8gZ2V0IGJlZm9yZSBGT1JUUkFOX1ZBTFVFX1NVQkFSUkFZIHdhcwotKyAgICAgcmV3cml0dGVu LiAgTWF5YmUgYSBmdXR1cmUgdGFzayB3b3VsZCBzdHJlYW1saW5lIHRoZSBlcnJvciBtZXNzYWdl cyB3ZQotKyAgICAgZ2V0IGhlcmUsIGFuZCB1cGRhdGUgYWxsIHRoZSBleHBlY3RlZCB0ZXN0IHJl c3VsdHMuICAqLwotKyAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgIT0gT1BfUkFOR0UpCi0g ICAgIHsKLS0gICAgICBza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChuYXJncywgZXhwLCBwb3Ms IG5vc2lkZSk7Ci0tICAgICAgLyogUmV0dXJuIHRoZSBkdW1teSB2YWx1ZSB3aXRoIHRoZSBjb3Jy ZWN0IHR5cGUuICAqLwotLSAgICAgIHJldHVybiBhcnJheTsKLSsgICAgICBpZiAodHlwZV9ub3Rf YXNzb2NpYXRlZCAob3JpZ2luYWxfYXJyYXlfdHlwZSkpCi0rCWVycm9yIChfKCJubyBzdWNoIHZl Y3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwotKyAgICAgIGVsc2UgaWYg KHR5cGVfbm90X2FsbG9jYXRlZCAob3JpZ2luYWxfYXJyYXlfdHlwZSkpCi0rCWVycm9yIChfKCJu byBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFsbG9jYXRlZCkiKSk7Ci0rICAgIH0K LSsgIGVsc2UKLSsgICAgewotKyAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChvcmlnaW5h bF9hcnJheV90eXBlKSkKLSsJZXJyb3IgKF8oImFycmF5IG5vdCBhc3NvY2lhdGVkIikpOwotKyAg ICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAob3JpZ2luYWxfYXJyYXlfdHlwZSkpCi0r CWVycm9yIChfKCJhcnJheSBub3QgYWxsb2NhdGVkIikpOwotICAgICB9Ci0gCi0tICBMT05HRVNU IHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKLS0gIGludCBuZGltZW5zaW9ucyA9 IDE7Ci0tICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy cmF5KSk7Ci0rICAvKiBGaXJzdCBjaGVjayB0aGF0IHRoZSBudW1iZXIgb2YgZGltZW5zaW9ucyBp biB0aGUgdHlwZSB3ZSBhcmUgc2xpY2luZwotKyAgICAgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIGFy Z3VtZW50cyB3ZSB3ZXJlIHBhc3NlZC4gICovCi0rICBpbnQgbmRpbWVuc2lvbnMgPSBjYWxjX2Y3 N19hcnJheV9kaW1zIChvcmlnaW5hbF9hcnJheV90eXBlKTsKLSsgIGlmIChuYXJncyAhPSBuZGlt ZW5zaW9ucykKLSsgICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwot IAotLSAgaWYgKG5hcmdzID4gTUFYX0ZPUlRSQU5fRElNUykKLS0gICAgZXJyb3IgKF8oIlRvbyBt YW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBNQVhfRk9SVFJBTl9ESU1TKTsKLSsg IC8qIFRoaXMgd2lsbCBiZSBpbml0aWFsaXNlZCBiZWxvdyB3aXRoIHRoZSB0eXBlIG9mIHRoZSBl bGVtZW50cyBoZWxkIGluCi0rICAgICBBUlJBWS4gICovCi0rICBzdHJ1Y3QgdHlwZSAqaW5uZXJf ZWxlbWVudF90eXBlOwotIAotLSAgbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0 eXBlKTsKLSsgIC8qIEV4dHJhY3QgdGhlIHR5cGVzIG9mIGVhY2ggYXJyYXkgZGltZW5zaW9uIGZy b20gdGhlIG9yaWdpbmFsIGFycmF5Ci0rICAgICB0eXBlLiAgV2UgbmVlZCB0aGVzZSBhdmFpbGFi bGUgc28gd2UgY2FuIGZpbGwgaW4gdGhlIGRlZmF1bHQgdXBwZXIgYW5kCi0rICAgICBsb3dlciBi b3VuZHMgaWYgdGhlIHVzZXIgcmVxdWVzdGVkIHNsaWNlIGRvZXNuJ3QgcHJvdmlkZSB0aGF0Ci0r ICAgICBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSB1bnBhY2tpbmcgdGhlIGRpbWVuc2lvbnMg bGlrZSB0aGlzIGdpdmVzIHVzCi0rICAgICB0aGUgaW5uZXIgZWxlbWVudCB0eXBlLiAgKi8KLSsg IHN0ZDo6dmVjdG9yPHN0cnVjdCB0eXBlICo+IGRpbV90eXBlczsKLSsgIHsKLSsgICAgZGltX3R5 cGVzLnJlc2VydmUgKG5kaW1lbnNpb25zKTsKLSsgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBvcmln aW5hbF9hcnJheV90eXBlOwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5kaW1lbnNpb25zOyAr K2kpCi0rICAgICAgewotKwlkaW1fdHlwZXMucHVzaF9iYWNrICh0eXBlKTsKLSsJdHlwZSA9IFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpOwotKyAgICAgIH0KLSsgICAgLyogVFlQRSBpcyBub3cgdGhl IGlubmVyIGVsZW1lbnQgdHlwZSBvZiB0aGUgYXJyYXksIHdlIHN0YXJ0IHRoZSBuZXcKLSsgICAg ICAgYXJyYXkgc2xpY2Ugb2ZmIGFzIHRoaXMgdHlwZSwgdGhlbiBhcyB3ZSBwcm9jZXNzIHRoZSBy ZXF1ZXN0ZWQgc2xpY2UKLSsgICAgICAgKGZyb20gdGhlIHVzZXIpIHdlIHdyYXAgbmV3IHR5cGVz IGFyb3VuZCB0aGlzIHRvIGJ1aWxkIHVwIHRoZSBmaW5hbAotKyAgICAgICBzbGljZSB0eXBlLiAg Ki8KLSsgICAgaW5uZXJfZWxlbWVudF90eXBlID0gdHlwZTsKLSsgIH0KLSAKLS0gIGlmIChuYXJn cyAhPSBuZGltZW5zaW9ucykKLS0gICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3Jp cHRzIikpOwotKyAgLyogQXMgd2UgYW5hbHlzZSB0aGUgbmV3IHNsaWNlIHR5cGUgd2UgbmVlZCB0 byB1bmRlcnN0YW5kIGlmIHRoZSBkYXRhCi0rICAgICBiZWluZyByZWZlcmVuY2VkIGlzIGNvbnRp Z3VvdXMuICBEbyBkZWNpZGUgdGhpcyB3ZSBtdXN0IHRyYWNrIHRoZSBzaXplCi0rICAgICBvZiBh biBlbGVtZW50IGF0IGVhY2ggZGltZW5zaW9uIG9mIHRoZSBuZXcgc2xpY2UgYXJyYXkuICBJbml0 aWFsbHkgdGhlCi0rICAgICBlbGVtZW50cyBvZiB0aGUgaW5uZXIgbW9zdCBkaW1lbnNpb24gb2Yg dGhlIGFycmF5IGFyZSB0aGUgc2FtZSBpbm5lcgotKyAgICAgbW9zdCBlbGVtZW50cyBhcyB0aGUg b3JpZ2luYWwgQVJSQVkuICAqLwotKyAgTE9OR0VTVCBzbGljZV9lbGVtZW50X3NpemUgPSBUWVBF X0xFTkdUSCAoaW5uZXJfZWxlbWVudF90eXBlKTsKLSsKLSsgIC8qIFN0YXJ0IG9mZiBhc3N1bWlu ZyBhbGwgZGF0YSBpcyBjb250aWd1b3VzLCB0aGlzIHdpbGwgYmUgc2V0IHRvIGZhbHNlCi0rICAg ICBpZiBhY2Nlc3MgdG8gYW55IGRpbWVuc2lvbiByZXN1bHRzIGluIG5vbi1jb250aWd1b3VzIGRh dGEuICAqLwotKyAgYm9vbCBpc19hbGxfY29udGlndW91cyA9IHRydWU7Ci0rCi0rICAvKiBUaGUg VE9UQUxfT0ZGU0VUIGlzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIHRoZSBzdGFydCBvZiB0 aGUKLSsgICAgIG9yaWdpbmFsIEFSUkFZIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV3IHNsaWNlLiAg VGhpcyBpcyBjYWxjdWxhdGVkIGFzCi0rICAgICB3ZSBwcm9jZXNzIHRoZSBpbmZvcm1hdGlvbiBm cm9tIHRoZSB1c2VyLiAgKi8KLSsgIExPTkdFU1QgdG90YWxfb2Zmc2V0ID0gMDsKLSsKLSsgIC8q IEEgc3RydWN0dXJlIHJlcHJlc2VudGluZyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIGRpbWVuc2lv biBvZiB0aGUKLSsgICAgIHJlc3VsdGluZyBzbGljZS4gICovCi0rICBzdHJ1Y3Qgc2xpY2VfZGlt Ci0rICB7Ci0rICAgIC8qIENvbnN0cnVjdG9yLiAgKi8KLSsgICAgc2xpY2VfZGltIChMT05HRVNU IGwsIExPTkdFU1QgaCwgTE9OR0VTVCBzLCBzdHJ1Y3QgdHlwZSAqaWR4KQotKyAgICAgIDogbG93 IChsKSwKLSsJaGlnaCAoaCksCi0rCXN0cmlkZSAocyksCi0rCWluZGV4IChpZHgpCi0rICAgIHsg LyogTm90aGluZy4gICovIH0KLSsKLSsgICAgLyogVGhlIGxvdyBib3VuZCBmb3IgdGhpcyBkaW1l bnNpb24gb2YgdGhlIHNsaWNlLiAgKi8KLSsgICAgTE9OR0VTVCBsb3c7Ci0rCi0rICAgIC8qIFRo ZSBoaWdoIGJvdW5kIGZvciB0aGlzIGRpbWVuc2lvbiBvZiB0aGUgc2xpY2UuICAqLwotKyAgICBM T05HRVNUIGhpZ2g7Ci0rCi0rICAgIC8qIFRoZSBieXRlIHN0cmlkZSBmb3IgdGhpcyBkaW1lbnNp b24gb2YgdGhlIHNsaWNlLiAgKi8KLSsgICAgTE9OR0VTVCBzdHJpZGU7Ci0rCi0rICAgIHN0cnVj dCB0eXBlICppbmRleDsKLSsgIH07Ci0rCi0rICAvKiBUaGUgZGltZW5zaW9ucyBvZiB0aGUgcmVz dWx0aW5nIHNsaWNlLiAgKi8KLSsgIHN0ZDo6dmVjdG9yPHNsaWNlX2RpbT4gc2xpY2VfZGltczsK LSsKLSsgIC8qIFByb2Nlc3MgdGhlIGluY29taW5nIGFyZ3VtZW50cy4gICBUaGVzZSBhcmd1bWVu dHMgYXJlIGluIHRoZSByZXZlcnNlCi0rICAgICBvcmRlciB0byB0aGUgYXJyYXkgZGltZW5zaW9u cywgdGhhdCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgcmVmZXJzIHRvCi0rICAgICB0aGUgbGFzdCBh cnJheSBkaW1lbnNpb24uICAqLwotKyAgaWYgKGZvcnRyYW5fYXJyYXlfc2xpY2luZ19kZWJ1ZykK LSsgICAgZGVidWdfcHJpbnRmICgiUHJvY2Vzc2luZyBhcnJheSBhY2Nlc3M6XG4iKTsKLSsgIGZv ciAoaW50IGkgPSAwOyBpIDwgbmFyZ3M7ICsraSkKLSsgICAgewotKyAgICAgIC8qIEZvciBlYWNo IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkgdGhlIHVzZXIgd2lsbCBoYXZlIGVpdGhlciBwcm92aWRl ZAotKwkgYSByYW5nZWQgYWNjZXNzIHdpdGggb3B0aW9uYWwgbG93ZXIgYm91bmQsIHVwcGVyIGJv dW5kLCBhbmQKLSsJIHN0cmlkZSwgb3IgdGhlIHVzZXIgd2lsbCBoYXZlIHN1cHBsaWVkIGEgc2lu Z2xlIGluZGV4LiAgKi8KLSsgICAgICBzdHJ1Y3QgdHlwZSAqZGltX3R5cGUgPSBkaW1fdHlwZXNb bmRpbWVuc2lvbnMgLSAoaSArIDEpXTsKLSsgICAgICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29k ZSA9PSBPUF9SQU5HRSkKLSsJewotKwkgIGludCBwYyA9ICgqcG9zKSArIDE7Ci0rCSAgZW51bSBy YW5nZV9mbGFnIHJhbmdlX2ZsYWcgPSAoZW51bSByYW5nZV9mbGFnKSBleHAtPmVsdHNbcGNdLmxv bmdjb25zdDsKLSsJICAqcG9zICs9IDM7Ci0rCi0rCSAgTE9OR0VTVCBsb3csIGhpZ2gsIHN0cmlk ZTsKLSsJICBsb3cgPSBoaWdoID0gc3RyaWRlID0gMDsKLSsKLSsJICBpZiAoKHJhbmdlX2ZsYWcg JiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkgPT0gMCkKLSsJICAgIGxvdyA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKwkgIGVs c2UKLSsJICAgIGxvdyA9IGY3N19nZXRfbG93ZXJib3VuZCAoZGltX3R5cGUpOwotKwkgIGlmICgo cmFuZ2VfZmxhZyAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkgPT0gMCkKLSsJICAgIGhpZ2gg PSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3Np ZGUpKTsKLSsJICBlbHNlCi0rCSAgICBoaWdoID0gZjc3X2dldF91cHBlcmJvdW5kIChkaW1fdHlw ZSk7Ci0rCSAgaWYgKChyYW5nZV9mbGFnICYgUkFOR0VfSEFTX1NUUklERSkgPT0gUkFOR0VfSEFT X1NUUklERSkKLSsJICAgIHN0cmlkZSA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAo bnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKwkgIGVsc2UKLSsJICAgIHN0cmlkZSA9IDE7 Ci0rCi0rCSAgaWYgKHN0cmlkZSA9PSAwKQotKwkgICAgZXJyb3IgKF8oInN0cmlkZSBtdXN0IG5v dCBiZSAwIikpOwotKwotKwkgIC8qIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRpbWVuc2lv biBpbiB0aGUgb3JpZ2luYWwgQVJSQVkuICAqLwotKwkgIHN0cnVjdCB0eXBlICp0YXJnZXRfdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGRpbV90eXBlKTsKLSsJICBzdHJ1Y3QgdHlwZSAqaW5kZXhf dHlwZSA9IGRpbV90eXBlLT5pbmRleF90eXBlICgpOwotKwkgIExPTkdFU1QgbGIgPSBmNzdfZ2V0 X2xvd2VyYm91bmQgKGRpbV90eXBlKTsKLSsJICBMT05HRVNUIHViID0gZjc3X2dldF91cHBlcmJv dW5kIChkaW1fdHlwZSk7Ci0rCSAgTE9OR0VTVCBzZCA9IGluZGV4X3R5cGUtPmJpdF9zdHJpZGUg KCk7Ci0rCSAgaWYgKHNkID09IDApCi0rCSAgICBzZCA9IFRZUEVfTEVOR1RIICh0YXJnZXRfdHlw ZSkgKiA4OwotKwotKwkgIGlmIChmb3J0cmFuX2FycmF5X3NsaWNpbmdfZGVidWcpCi0rCSAgICB7 Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwtPiBSYW5nZSBhY2Nlc3NcbiIpOwotKwkgICAgICBz dGQ6OnN0cmluZyBzdHIgPSB0eXBlX3RvX3N0cmluZyAoZGltX3R5cGUpOwotKwkgICAgICBkZWJ1 Z19wcmludGYgKCJ8ICAgfC0+IFR5cGU6ICVzXG4iLCBzdHIuY19zdHIgKCkpOwotKwkgICAgICBk ZWJ1Z19wcmludGYgKCJ8ICAgfC0+IEFycmF5OlxuIik7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICB8ICAgfC0+IExvdyBib3VuZDogJWxkXG4iLCBsYik7Ci0rCSAgICAgIGRlYnVnX3ByaW50 ZiAoInwgICB8ICAgfC0+IEhpZ2ggYm91bmQ6ICVsZFxuIiwgdWIpOwotKwkgICAgICBkZWJ1Z19w cmludGYgKCJ8ICAgfCAgIHwtPiBCaXQgc3RyaWRlOiAlbGRcbiIsIHNkKTsKLSsJICAgICAgZGVi dWdfcHJpbnRmICgifCAgIHwgICB8LT4gQnl0ZSBzdHJpZGU6ICVsZFxuIiwgc2QgLyA4KTsKLSsJ ICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gVHlwZSBzaXplOiAlbGRcbiIsCi0rCQkJ ICAgIFRZUEVfTEVOR1RIIChkaW1fdHlwZSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAg fCAgICctPiBUYXJnZXQgdHlwZSBzaXplOiAlbGRcbiIsCi0rCQkJICAgIFRZUEVfTEVOR1RIICh0 YXJnZXRfdHlwZSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfC0+IEFjY2Vzc2luZzpc biIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBMb3cgYm91bmQ6ICVsZFxu IiwKLSsJCQkgICAgbG93KTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGln aCBib3VuZDogJWxkXG4iLAotKwkJCSAgICBoaWdoKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgi fCAgIHwgICAnLT4gRWxlbWVudCBzdHJpZGU6ICVsZFxuIiwKLSsJCQkgICAgc3RyaWRlKTsKLSsJ ICAgIH0KLSsKLSsJICAvKiBDaGVjayB0aGUgdXNlciBoYXNuJ3QgYXNrZWQgZm9yIHNvbWV0aGlu ZyBpbnZhbGlkLiAgKi8KLSsJICBpZiAoaGlnaCA+IHViIHx8IGxvdyA8IGxiKQotKwkgICAgZXJy b3IgKF8oImFycmF5IHN1YnNjcmlwdCBvdXQgb2YgYm91bmRzIikpOwotKwotKwkgIC8qIENhbGN1 bGF0ZSB3aGF0IHRoaXMgZGltZW5zaW9uIG9mIHRoZSBuZXcgc2xpY2UgYXJyYXkgd2lsbCBsb29r Ci0rCSAgICAgbGlrZS4gIE9GRlNFVCBpcyB0aGUgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQg b2YgdGhlCi0rCSAgICAgcHJldmlvdXMgKG1vcmUgb3V0ZXIpIGRpbWVuc2lvbiB0byB0aGUgc3Rh cnQgb2YgdGhpcwotKwkgICAgIGRpbWVuc2lvbi4gIEVfQ09VTlQgaXMgdGhlIG51bWJlciBvZiBl bGVtZW50cyBpbiB0aGlzCi0rCSAgICAgZGltZW5zaW9uLiAgUkVNQUlOREVSIGlzIHRoZSBudW1i ZXIgb2YgZWxlbWVudHMgcmVtYWluaW5nCi0rCSAgICAgYmV0d2VlbiB0aGUgbGFzdCBpbmNsdWRl ZCBlbGVtZW50IGFuZCB0aGUgdXBwZXIgYm91bmQuICBGb3IKLSsJICAgICBleGFtcGxlIGFuIGFj Y2VzcyAnMTo2OjInIHdpbGwgaW5jbHVkZSBlbGVtZW50cyAxLCAzLCA1IGFuZAotKwkgICAgIGhh dmUgYSByZW1haW5kZXIgb2YgMSAoZWxlbWVudCAjNikuICAqLwotKwkgIExPTkdFU1QgbG93ZXN0 ID0gc3RkOjptaW4gKGxvdywgaGlnaCk7Ci0rCSAgTE9OR0VTVCBvZmZzZXQgPSAoc2QgLyA4KSAq IChsb3dlc3QgLSBsYik7Ci0rCSAgTE9OR0VTVCBlX2NvdW50ID0gc3RkOjphYnMgKGhpZ2ggLSBs b3cpICsgMTsKLSsJICBlX2NvdW50ID0gKGVfY291bnQgKyAoc3RkOjphYnMgKHN0cmlkZSkgLSAx KSkgLyBzdGQ6OmFicyAoc3RyaWRlKTsKLSsJICBMT05HRVNUIG5ld19sb3cgPSAxOwotKwkgIExP TkdFU1QgbmV3X2hpZ2ggPSBuZXdfbG93ICsgZV9jb3VudCAtIDE7Ci0rCSAgTE9OR0VTVCBuZXdf c3RyaWRlID0gKHNkICogc3RyaWRlKSAvIDg7Ci0rCSAgTE9OR0VTVCBsYXN0X2VsZW0gPSBsb3cg KyAoKGVfY291bnQgLSAxKSAqIHN0cmlkZSk7Ci0rCSAgTE9OR0VTVCByZW1haW5kZXIgPSBoaWdo IC0gbGFzdF9lbGVtOwotKwkgIGlmIChsb3cgPiBoaWdoKQotKwkgICAgewotKwkgICAgICBvZmZz ZXQgKz0gc3RkOjphYnMgKHJlbWFpbmRlcikgKiBUWVBFX0xFTkdUSCAodGFyZ2V0X3R5cGUpOwot KwkgICAgICBpZiAoc3RyaWRlID4gMCkKLSsJCWVycm9yIChfKCJpbmNvcnJlY3Qgc3RyaWRlIGFu ZCBib3VuZGFyeSBjb21iaW5hdGlvbiIpKTsKLSsJICAgIH0KLSsJICBlbHNlIGlmIChzdHJpZGUg PCAwKQotKwkgICAgZXJyb3IgKF8oImluY29ycmVjdCBzdHJpZGUgYW5kIGJvdW5kYXJ5IGNvbWJp bmF0aW9uIikpOwotKwotKwkgIC8qIElzIHRoZSBkYXRhIHdpdGhpbiB0aGlzIGRpbWVuc2lvbiBj b250aWd1b3VzPyAgSXQgaXMgaWYgdGhlCi0rCSAgICAgbmV3bHkgY29tcHV0ZWQgc3RyaWRlIGlz IHRoZSBzYW1lIHNpemUgYXMgYSBzaW5nbGUgZWxlbWVudCBvZgotKwkgICAgIHRoaXMgZGltZW5z aW9uLiAgKi8KLSsJICBib29sIGlzX2RpbV9jb250aWd1b3VzID0gKG5ld19zdHJpZGUgPT0gc2xp Y2VfZWxlbWVudF9zaXplKTsKLSsJICBpc19hbGxfY29udGlndW91cyAmPSBpc19kaW1fY29udGln dW91czsKLSsKLSsJICBpZiAoZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVnKQotKwkgICAgewot KwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgJy0+IFJlc3VsdHM6XG4iKTsKLSsJICAgICAgZGVi dWdfcHJpbnRmICgifCAgICAgICB8LT4gT2Zmc2V0ID0gJWxkXG4iLCBvZmZzZXQpOwotKwkgICAg ICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBFbGVtZW50cyA9ICVsZFxuIiwgZV9jb3VudCk7 Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IExvdyBib3VuZCA9ICVsZFxuIiwg bmV3X2xvdyk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IEhpZ2ggYm91bmQg PSAlbGRcbiIsIG5ld19oaWdoKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgICAgICB8LT4g Qnl0ZSBzdHJpZGUgPSAlbGRcbiIsIG5ld19zdHJpZGUpOwotKwkgICAgICBkZWJ1Z19wcmludGYg KCJ8ICAgICAgIHwtPiBMYXN0IGVsZW1lbnQgPSAlbGRcbiIsIGxhc3RfZWxlbSk7Ci0rCSAgICAg IGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IFJlbWFpbmRlciA9ICVsZFxuIiwgcmVtYWluZGVy KTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgICAgICAnLT4gQ29udGlndW91cyA9ICVzXG4i LAotKwkJCSAgICAoaXNfZGltX2NvbnRpZ3VvdXMgPyAiWWVzIiA6ICJObyIpKTsKLSsJICAgIH0K LSsKLSsJICAvKiBGaWd1cmUgb3V0IGhvdyBiaWcgKGluIGJ5dGVzKSBhbiBlbGVtZW50IG9mIHRo aXMgZGltZW5zaW9uIG9mCi0rCSAgICAgdGhlIG5ldyBhcnJheSBzbGljZSB3aWxsIGJlLiAgKi8K LSsJICBzbGljZV9lbGVtZW50X3NpemUgPSBzdGQ6OmFicyAobmV3X3N0cmlkZSAqIGVfY291bnQp OwotKwotKwkgIHNsaWNlX2RpbXMuZW1wbGFjZV9iYWNrIChuZXdfbG93LCBuZXdfaGlnaCwgbmV3 X3N0cmlkZSwKLSsJCQkJICAgaW5kZXhfdHlwZSk7Ci0rCi0rCSAgLyogVXBkYXRlIHRoZSB0b3Rh bCBvZmZzZXQuICAqLwotKwkgIHRvdGFsX29mZnNldCArPSBvZmZzZXQ7Ci0rCX0KLSsgICAgICBl bHNlCi0rCXsKLSsJICAvKiBUaGVyZSBpcyBhIHNpbmdsZSBpbmRleCBmb3IgdGhpcyBkaW1lbnNp b24uICAqLwotKwkgIExPTkdFU1QgaW5kZXgKLSsJICAgID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVh dGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpKTsKLSsKLSsJICAvKiBH ZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBkaW1lbnNpb24gaW4gdGhlIG9yaWdpbmFsIEFSUkFZ LiAgKi8KLSsJICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChk aW1fdHlwZSk7Ci0rCSAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUgPSBkaW1fdHlwZS0+aW5kZXhf dHlwZSAoKTsKLSsJICBMT05HRVNUIGxiID0gZjc3X2dldF9sb3dlcmJvdW5kIChkaW1fdHlwZSk7 Ci0rCSAgTE9OR0VTVCB1YiA9IGY3N19nZXRfdXBwZXJib3VuZCAoZGltX3R5cGUpOwotKwkgIExP TkdFU1Qgc2QgPSBpbmRleF90eXBlLT5iaXRfc3RyaWRlICgpIC8gODsKLSsJICBpZiAoc2QgPT0g MCkKLSsJICAgIHNkID0gVFlQRV9MRU5HVEggKHRhcmdldF90eXBlKTsKLSsKLSsJICBpZiAoZm9y dHJhbl9hcnJheV9zbGljaW5nX2RlYnVnKQotKwkgICAgewotKwkgICAgICBkZWJ1Z19wcmludGYg KCJ8LT4gSW5kZXggYWNjZXNzXG4iKTsKLSsJICAgICAgc3RkOjpzdHJpbmcgc3RyID0gdHlwZV90 b19zdHJpbmcgKGRpbV90eXBlKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBUeXBl OiAlc1xuIiwgc3RyLmNfc3RyICgpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBB cnJheTpcbiIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBMb3cgYm91bmQ6 ICVsZFxuIiwgbGIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBIaWdoIGJv dW5kOiAlbGRcbiIsIHViKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gQnl0 ZSBzdHJpZGU6ICVsZFxuIiwgc2QpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwt PiBUeXBlIHNpemU6ICVsZFxuIiwgVFlQRV9MRU5HVEggKGRpbV90eXBlKSk7Ci0rCSAgICAgIGRl YnVnX3ByaW50ZiAoInwgICB8ICAgJy0+IFRhcmdldCB0eXBlIHNpemU6ICVsZFxuIiwKLSsJCQkg ICAgVFlQRV9MRU5HVEggKHRhcmdldF90eXBlKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwg ICAnLT4gQWNjZXNzaW5nOlxuIik7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgJy0+ IEluZGV4OiAlbGRcbiIsIGluZGV4KTsKLSsJICAgIH0KLSsKLSsJICAvKiBJZiB0aGUgYXJyYXkg aGFzIGFjdHVhbCBjb250ZW50IHRoZW4gY2hlY2sgdGhlIGluZGV4IGlzIGluCi0rCSAgICAgYm91 bmRzLiAgQW4gYXJyYXkgd2l0aG91dCBjb250ZW50IChhbiB1bmJvdW5kIGFycmF5KSBkb2Vzbid0 Ci0rCSAgICAgaGF2ZSBhIGtub3duIHVwcGVyIGJvdW5kLCBzbyBkb24ndCBlcnJvciBjaGVjayBp biB0aGF0Ci0rCSAgICAgc2l0dWF0aW9uLiAgKi8KLSsJICBpZiAoaW5kZXggPCBsYgotKwkgICAg ICB8fCAoZGltX3R5cGUtPmluZGV4X3R5cGUgKCktPmJvdW5kcyAoKS0+aGlnaC5raW5kICgpICE9 IFBST1BfVU5ERUZJTkVECi0rCQkgICYmIGluZGV4ID4gdWIpCi0rCSAgICAgIHx8IChWQUxVRV9M VkFMIChhcnJheSkgIT0gbHZhbF9tZW1vcnkKLSsJCSAgJiYgZGltX3R5cGUtPmluZGV4X3R5cGUg KCktPmJvdW5kcyAoKS0+aGlnaC5raW5kICgpID09IFBST1BfVU5ERUZJTkVEKSkKLSsJICAgIHsK LSsJICAgICAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKGRpbV90eXBlKSkKLSsJCWVycm9yIChf KCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwotKwkg ICAgICBlbHNlIGlmICh0eXBlX25vdF9hbGxvY2F0ZWQgKGRpbV90eXBlKSkKLSsJCWVycm9yIChf KCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFsbG9jYXRlZCkiKSk7Ci0rCSAg ICAgIGVsc2UKLSsJCWVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwotKwkgICAg fQotIAotLSAgZ2RiX2Fzc2VydCAobmFyZ3MgPiAwKTsKLSsJICAvKiBDYWxjdWxhdGUgdXNpbmcg dGhlIHR5cGUgc3RyaWRlLCBub3QgdGhlIHRhcmdldCB0eXBlIHNpemUuICAqLwotKwkgIExPTkdF U1Qgb2Zmc2V0ID0gc2QgKiAoaW5kZXggLSBsYik7Ci0rCSAgdG90YWxfb2Zmc2V0ICs9IG9mZnNl dDsKLSsJfQotKyAgICB9Ci0gCi0tICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdh bCBhcnJheSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBsZXQgdXMKLS0gICAgIGFjdHVhbGx5IGZpbmQg b3V0IHdoZXJlIHRoaXMgZWxlbWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAgKi8KLSsgIGlmIChu b3NpZGUgPT0gRVZBTF9TS0lQKQotKyAgICByZXR1cm4gYXJyYXk7Ci0gCi0tICAvKiBUYWtlIGFy cmF5IGluZGljZXMgbGVmdCB0byByaWdodC4gICovCi0tICBmb3IgKGludCBpID0gMDsgaSA8IG5h cmdzOyBpKyspCi0rICAvKiBCdWlsZCBhIHR5cGUgdGhhdCByZXByZXNlbnRzIHRoZSBuZXcgYXJy YXkgc2xpY2UgaW4gdGhlIHRhcmdldCBtZW1vcnkKLSsgICAgIG9mIHRoZSBvcmlnaW5hbCBBUlJB WSwgdGhpcyB0eXBlIG1ha2VzIHVzZSBvZiBzdHJpZGVzIHRvIGNvcnJlY3RseQotKyAgICAgZmlu ZCBvbmx5IHRob3NlIGVsZW1lbnRzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIG5ldyBzbGljZS4gICov Ci0rICBzdHJ1Y3QgdHlwZSAqYXJyYXlfc2xpY2VfdHlwZSA9IGlubmVyX2VsZW1lbnRfdHlwZTsK LSsgIGZvciAoY29uc3QgYXV0byAmZCA6IHNsaWNlX2RpbXMpCi0gICAgIHsKLS0gICAgICAvKiBF dmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3 LiAgKi8KLS0gICAgICB2YWx1ZSAqYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9u IChleHAsIHBvcywgbm9zaWRlKTsKLSsgICAgICAvKiBDcmVhdGUgdGhlIHJhbmdlLiAgKi8KLSsg ICAgICBkeW5hbWljX3Byb3AgcF9sb3csIHBfaGlnaCwgcF9zdHJpZGU7Ci0rCi0rICAgICAgcF9s b3cuc2V0X2NvbnN0X3ZhbCAoZC5sb3cpOwotKyAgICAgIHBfaGlnaC5zZXRfY29uc3RfdmFsIChk LmhpZ2gpOwotKyAgICAgIHBfc3RyaWRlLnNldF9jb25zdF92YWwgKGQuc3RyaWRlKTsKLSsKLSsg ICAgICBzdHJ1Y3QgdHlwZSAqbmV3X3JhbmdlCi0rCT0gY3JlYXRlX3JhbmdlX3R5cGVfd2l0aF9z dHJpZGUgKChzdHJ1Y3QgdHlwZSAqKSBOVUxMLAotKwkJCQkJIFRZUEVfVEFSR0VUX1RZUEUgKGQu aW5kZXgpLAotKwkJCQkJICZwX2xvdywgJnBfaGlnaCwgMCwgJnBfc3RyaWRlLAotKwkJCQkJIHRy dWUpOwotKyAgICAgIGFycmF5X3NsaWNlX3R5cGUKLSsJPSBjcmVhdGVfYXJyYXlfdHlwZSAobnVs bHB0ciwgYXJyYXlfc2xpY2VfdHlwZSwgbmV3X3JhbmdlKTsKLSsgICAgfQotIAotLSAgICAgIC8q IEZpbGwgaW4gdGhlIHN1YnNjcmlwdCBhcnJheS4gICovCi0tICAgICAgc3Vic2NyaXB0X2FycmF5 W2ldID0gdmFsdWVfYXNfbG9uZyAoYXJnMik7Ci0rICBpZiAoZm9ydHJhbl9hcnJheV9zbGljaW5n X2RlYnVnKQotKyAgICB7Ci0rICAgICAgZGVidWdfcHJpbnRmICgiJy0+IEZpbmFsIHJlc3VsdDpc biIpOwotKyAgICAgIGRlYnVnX3ByaW50ZiAoIiAgICB8LT4gVHlwZTogJXNcbiIsCi0rCQkgICAg dHlwZV90b19zdHJpbmcgKGFycmF5X3NsaWNlX3R5cGUpLmNfc3RyICgpKTsKLSsgICAgICBkZWJ1 Z19wcmludGYgKCIgICAgfC0+IFRvdGFsIG9mZnNldDogJWxkXG4iLCB0b3RhbF9vZmZzZXQpOwot KyAgICAgIGRlYnVnX3ByaW50ZiAoIiAgICB8LT4gQmFzZSBhZGRyZXNzOiAlc1xuIiwKLSsJCSAg ICBjb3JlX2FkZHJfdG9fc3RyaW5nICh2YWx1ZV9hZGRyZXNzIChhcnJheSkpKTsKLSsgICAgICBk ZWJ1Z19wcmludGYgKCIgICAgJy0+IENvbnRpZ3VvdXMgPSAlc1xuIiwKLSsJCSAgICAoaXNfYWxs X2NvbnRpZ3VvdXMgPyAiWWVzIiA6ICJObyIpKTsKLSAgICAgfQotIAotLSAgLyogSW50ZXJuYWwg dHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdodCB0byBsZWZ0LiAgKi8KLS0gIGZvciAoaW50 IGkgPSBuYXJnczsgaSA+IDA7IGktLSkKLSsgIC8qIFNob3VsZCB3ZSByZXBhY2sgdGhpcyBhcnJh eSBzbGljZT8gICovCi0rICBpZiAoIWlzX2FsbF9jb250aWd1b3VzICYmIChyZXBhY2tfYXJyYXlf c2xpY2VzIHx8IGlzX3N0cmluZ19wKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCB0eXBlICphcnJh eV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLS0gICAgICBMT05H RVNUIGluZGV4ID0gc3Vic2NyaXB0X2FycmF5W2kgLSAxXTsKLSsgICAgICAvKiBCdWlsZCBhIHR5 cGUgZm9yIHRoZSByZXBhY2tlZCBzbGljZS4gICovCi0rICAgICAgc3RydWN0IHR5cGUgKnJlcGFj a2VkX2FycmF5X3R5cGUgPSBpbm5lcl9lbGVtZW50X3R5cGU7Ci0rICAgICAgZm9yIChjb25zdCBh dXRvICZkIDogc2xpY2VfZGltcykKLSsJewotKwkgIC8qIENyZWF0ZSB0aGUgcmFuZ2UuICAqLwot KwkgIGR5bmFtaWNfcHJvcCBwX2xvdywgcF9oaWdoLCBwX3N0cmlkZTsKLSsKLSsJICBwX2xvdy5z ZXRfY29uc3RfdmFsIChkLmxvdyk7Ci0rCSAgcF9oaWdoLnNldF9jb25zdF92YWwgKGQuaGlnaCk7 Ci0rCSAgcF9zdHJpZGUuc2V0X2NvbnN0X3ZhbCAoVFlQRV9MRU5HVEggKHJlcGFja2VkX2FycmF5 X3R5cGUpKTsKLSsKLSsJICBzdHJ1Y3QgdHlwZSAqbmV3X3JhbmdlCi0rCSAgICA9IGNyZWF0ZV9y YW5nZV90eXBlX3dpdGhfc3RyaWRlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKLSsJCQkJCSAgICAg VFlQRV9UQVJHRVRfVFlQRSAoZC5pbmRleCksCi0rCQkJCQkgICAgICZwX2xvdywgJnBfaGlnaCwg MCwgJnBfc3RyaWRlLAotKwkJCQkJICAgICB0cnVlKTsKLSsJICByZXBhY2tlZF9hcnJheV90eXBl Ci0rCSAgICA9IGNyZWF0ZV9hcnJheV90eXBlIChudWxscHRyLCByZXBhY2tlZF9hcnJheV90eXBl LCBuZXdfcmFuZ2UpOwotKwl9Ci0gCi0tICAgICAgYXJyYXkgPSB2YWx1ZV9zdWJzY3JpcHRlZF9y dmFsdWUgKGFycmF5LCBpbmRleCwKLS0JCQkJCWY3N19nZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlw ZSkpOwotKyAgICAgIC8qIE5vdyBjb3B5IHRoZSBlbGVtZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBB UlJBWSBpbnRvIHRoZSBwYWNrZWQKLSsJIGFycmF5IHZhbHVlIERFU1QuICAqLwotKyAgICAgIHN0 cnVjdCB2YWx1ZSAqZGVzdCA9IGFsbG9jYXRlX3ZhbHVlIChyZXBhY2tlZF9hcnJheV90eXBlKTsK LSsgICAgICBpZiAodmFsdWVfbGF6eSAoYXJyYXkpCi0rCSAgfHwgKHRvdGFsX29mZnNldCArIFRZ UEVfTEVOR1RIIChhcnJheV9zbGljZV90eXBlKQotKwkgICAgICA+IFRZUEVfTEVOR1RIIChjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpKSkpCi0rCXsKLSsJICBmb3J0cmFuX2FycmF5 X3dhbGtlcjxmb3J0cmFuX2xhenlfYXJyYXlfcmVwYWNrZXJfaW1wbD4gcAotKwkgICAgKGFycmF5 X3NsaWNlX3R5cGUsIHZhbHVlX2FkZHJlc3MgKGFycmF5KSArIHRvdGFsX29mZnNldCwgZGVzdCk7 Ci0rCSAgcC53YWxrICgpOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgZm9ydHJhbl9hcnJh eV93YWxrZXI8Zm9ydHJhbl9hcnJheV9yZXBhY2tlcl9pbXBsPiBwCi0rCSAgICAoYXJyYXlfc2xp Y2VfdHlwZSwgdmFsdWVfYWRkcmVzcyAoYXJyYXkpICsgdG90YWxfb2Zmc2V0LAotKwkgICAgIHRv dGFsX29mZnNldCwgYXJyYXksIGRlc3QpOwotKwkgIHAud2FsayAoKTsKLSsJfQotKyAgICAgIGFy cmF5ID0gZGVzdDsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgaWYgKFZBTFVFX0xW QUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSkKLSsJewotKwkgIC8qIElmIHRoZSB2YWx1ZSB3ZSdy ZSB0YWtpbmcgYSBzbGljZSBmcm9tIGlzIG5vdCB5ZXQgbG9hZGVkLCBvcgotKwkgICAgIHRoZSBy ZXF1ZXN0ZWQgc2xpY2UgaXMgb3V0c2lkZSB0aGUgdmFsdWVzIGNvbnRlbnQgcmFuZ2UgdGhlbgot KwkgICAgIGp1c3QgY3JlYXRlIGEgbmV3IGxhenkgdmFsdWUgcG9pbnRpbmcgYXQgdGhlIG1lbW9y eSB3aGVyZSB0aGUKLSsJICAgICBjb250ZW50cyB3ZSdyZSBsb29raW5nIGZvciBleGlzdC4gICov Ci0rCSAgaWYgKHZhbHVlX2xhenkgKGFycmF5KQotKwkgICAgICB8fCAodG90YWxfb2Zmc2V0ICsg VFlQRV9MRU5HVEggKGFycmF5X3NsaWNlX3R5cGUpCi0rCQkgID4gVFlQRV9MRU5HVEggKGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSkpKSkKLSsJICAgIGFycmF5ID0gdmFsdWVfYXRf bGF6eSAoYXJyYXlfc2xpY2VfdHlwZSwKLSsJCQkJICAgdmFsdWVfYWRkcmVzcyAoYXJyYXkpICsg dG90YWxfb2Zmc2V0KTsKLSsJICBlbHNlCi0rCSAgICBhcnJheSA9IHZhbHVlX2Zyb21fY29udGVu dHNfYW5kX2FkZHJlc3MgKGFycmF5X3NsaWNlX3R5cGUsCi0rCQkJCQkJICAgICAodmFsdWVfY29u dGVudHMgKGFycmF5KQotKwkJCQkJCSAgICAgICsgdG90YWxfb2Zmc2V0KSwKLSsJCQkJCQkgICAg ICh2YWx1ZV9hZGRyZXNzIChhcnJheSkKLSsJCQkJCQkgICAgICArIHRvdGFsX29mZnNldCkpOwot Kwl9Ci0rICAgICAgZWxzZSBpZiAoIXZhbHVlX2xhenkgKGFycmF5KSkKLSsJewotKwkgIGNvbnN0 IHZvaWQgKnZhbGFkZHIgPSB2YWx1ZV9jb250ZW50cyAoYXJyYXkpICsgdG90YWxfb2Zmc2V0Owot KwkgIGFycmF5ID0gYWxsb2NhdGVfdmFsdWUgKGFycmF5X3NsaWNlX3R5cGUpOwotKwkgIG1lbWNw eSAodmFsdWVfY29udGVudHNfcmF3IChhcnJheSksIHZhbGFkZHIsIFRZUEVfTEVOR1RIIChhcnJh eV9zbGljZV90eXBlKSk7Ci0rCX0KLSsgICAgICBlbHNlCi0rCWVycm9yIChfKCJjYW5ub3Qgc3Vi c2NyaXB0IGFycmF5cyB0aGF0IGFyZSBub3QgaW4gbWVtb3J5IikpOwotICAgICB9Ci0gCi0gICBy ZXR1cm4gYXJyYXk7Ci1AQCAtMTAzMSwxMSArMTQ4OSw1MCBAQCBidWlsdGluX2ZfdHlwZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gpCi0gICByZXR1cm4gKGNvbnN0IHN0cnVjdCBidWlsdGluX2Zf dHlwZSAqKSBnZGJhcmNoX2RhdGEgKGdkYmFyY2gsIGZfdHlwZV9kYXRhKTsKLSB9Ci0gCi0rLyog Q29tbWFuZC1saXN0IGZvciB0aGUgInNldC9zaG93IGZvcnRyYW4iIHByZWZpeCBjb21tYW5kLiAg Ki8KLStzdGF0aWMgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKnNldF9mb3J0cmFuX2xpc3Q7Ci0r c3RhdGljIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpzaG93X2ZvcnRyYW5fbGlzdDsKLSsKLSB2 b2lkIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKCk7Ci0gdm9pZAotIF9pbml0aWFsaXplX2ZfbGFu Z3VhZ2UgKCkKLSB7Ci0gICBmX3R5cGVfZGF0YSA9IGdkYmFyY2hfZGF0YV9yZWdpc3Rlcl9wb3N0 X2luaXQgKGJ1aWxkX2ZvcnRyYW5fdHlwZXMpOwotKwotKyAgYWRkX2Jhc2ljX3ByZWZpeF9jbWQg KCJmb3J0cmFuIiwgbm9fY2xhc3MsCi0rCQkJXygiUHJlZml4IGNvbW1hbmQgZm9yIGNoYW5naW5n IEZvcnRyYW4tc3BlY2lmaWMgc2V0dGluZ3MuIiksCi0rCQkJJnNldF9mb3J0cmFuX2xpc3QsICJz ZXQgZm9ydHJhbiAiLCAwLCAmc2V0bGlzdCk7Ci0rCi0rICBhZGRfc2hvd19wcmVmaXhfY21kICgi Zm9ydHJhbiIsIG5vX2NsYXNzLAotKwkJICAgICAgIF8oIkdlbmVyaWMgY29tbWFuZCBmb3Igc2hv d2luZyBGb3J0cmFuLXNwZWNpZmljIHNldHRpbmdzLiIpLAotKwkJICAgICAgICZzaG93X2ZvcnRy YW5fbGlzdCwgInNob3cgZm9ydHJhbiAiLCAwLCAmc2hvd2xpc3QpOwotKwotKyAgYWRkX3NldHNo b3dfYm9vbGVhbl9jbWQgKCJyZXBhY2stYXJyYXktc2xpY2VzIiwgY2xhc3NfdmFycywKLSsJCQkg ICAmcmVwYWNrX2FycmF5X3NsaWNlcywgXygiXAotK0VuYWJsZSBvciBkaXNhYmxlIHJlcGFja2lu ZyBvZiBub24tY29udGlndW91cyBhcnJheSBzbGljZXMuIiksIF8oIlwKLStTaG93IHdoZXRoZXIg bm9uLWNvbnRpZ3VvdXMgYXJyYXkgc2xpY2VzIGFyZSByZXBhY2tlZC4iKSwgXygiXAotK1doZW4g dGhlIHVzZXIgcmVxdWVzdHMgYSBzbGljZSBvZiBhIEZvcnRyYW4gYXJyYXkgdGhlbiB3ZSBjYW4g ZWl0aGVyIHJldHVyblxuXAotK2EgZGVzY3JpcHRvciB0aGF0IGRlc2NyaWJlcyB0aGUgYXJyYXkg aW4gcGxhY2UgKHVzaW5nIHRoZSBvcmlnaW5hbCBhcnJheSBkYXRhXG5cCi0raW4gaXRzIGV4aXN0 aW5nIGxvY2F0aW9uKSBvciB0aGUgb3JpZ2luYWwgZGF0YSBjYW4gYmUgcmVwYWNrZWQgKGNvcGll ZCkgdG8gYVxuXAotK25ldyBsb2NhdGlvbi5cblwKLStcblwKLStXaGVuIHRoZSBjb250ZW50IG9m IHRoZSBhcnJheSBzbGljZSBpcyBjb250aWd1b3VzIHdpdGhpbiB0aGUgb3JpZ2luYWwgYXJyYXlc blwKLSt0aGVuIHRoZSByZXN1bHQgd2lsbCBuZXZlciBiZSByZXBhY2tlZCwgYnV0IHdoZW4gdGhl IGRhdGEgZm9yIHRoZSBuZXcgYXJyYXlcblwKLStpcyBub24tY29udGlndW91cyB3aXRoaW4gdGhl IG9yaWdpbmFsIGFycmF5IHJlcGFja2luZyB3aWxsIG9ubHkgYmUgcGVyZm9ybWVkXG5cCi0rd2hl biB0aGlzIHNldHRpbmcgaXMgb24uIiksCi0rCQkJICAgTlVMTCwKLSsJCQkgICBzaG93X3JlcGFj a19hcnJheV9zbGljZXMsCi0rCQkJICAgJnNldF9mb3J0cmFuX2xpc3QsICZzaG93X2ZvcnRyYW5f bGlzdCk7Ci0rCi0rICAvKiBEZWJ1ZyBGb3J0cmFuJ3MgYXJyYXkgc2xpY2luZyBsb2dpYy4gICov Ci0rICBhZGRfc2V0c2hvd19ib29sZWFuX2NtZCAoImZvcnRyYW4tYXJyYXktc2xpY2luZyIsIGNs YXNzX21haW50ZW5hbmNlLAotKwkJCSAgICZmb3J0cmFuX2FycmF5X3NsaWNpbmdfZGVidWcsIF8o IlwKLStTZXQgZGVidWdnaW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2luZy4iKSwgXygiXAotK1No b3cgZGVidWdnaW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2luZy4iKSwgXygiXAotK1doZW4gb24s IGRlYnVnZ2luZyBvZiBGb3J0cmFuIGFycmF5IHNsaWNpbmcgaXMgZW5hYmxlZC4iKSwKLSsJCQkg ICAgTlVMTCwKLSsJCQkgICAgc2hvd19mb3J0cmFuX2FycmF5X3NsaWNpbmdfZGVidWcsCi0rCQkJ ICAgICZzZXRkZWJ1Z2xpc3QsICZzaG93ZGVidWdsaXN0KTsKLSB9Ci0gCi0gLyogU2VlIGYtbGFu Zy5oLiAgKi8KLUBAIC0xMDc0LDMgKzE1NzEsNTYgQEAgZm9ydHJhbl9wcmVzZXJ2ZV9hcmdfcG9p bnRlciAoc3RydWN0IHZhbHVlICphcmcsIHN0cnVjdCB0eXBlICp0eXBlKQotICAgICByZXR1cm4g dmFsdWVfdHlwZSAoYXJnKTsKLSAgIHJldHVybiB0eXBlOwotIH0KLSsKLSsvKiBTZWUgZi1sYW5n LmguICAqLwotKwotK0NPUkVfQUREUgotK2ZvcnRyYW5fYWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFz ZV9hZGRyZXNzX2hhY2sgKHN0cnVjdCB0eXBlICp0eXBlLAotKwkJCQkJCUNPUkVfQUREUiBhZGRy ZXNzKQotK3sKLSsgIGdkYl9hc3NlcnQgKHR5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZ KTsKLSsKLSsgIGludCBuZGltZW5zaW9ucyA9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHR5cGUpOwot KyAgTE9OR0VTVCB0b3RhbF9vZmZzZXQgPSAwOwotKwotKyAgLyogV2FsayB0aHJvdWdoIGVhY2gg b2YgdGhlIGRpbWVuc2lvbnMgb2YgdGhpcyBhcnJheSB0eXBlIGFuZCBmaWd1cmUgb3V0Ci0rICAg ICBpZiBhbnkgb2YgdGhlIGRpbWVuc2lvbnMgYXJlICJiYWNrd2FyZHMiLCB0aGF0IGlzIHRoZSBi YXNlIGFkZHJlc3MKLSsgICAgIGZvciB0aGlzIGRpbWVuc2lvbiBwb2ludHMgdG8gdGhlIGVsZW1l bnQgYXQgdGhlIGhpZ2hlc3QgbWVtb3J5Ci0rICAgICBhZGRyZXNzIGFuZCB0aGUgc3RyaWRlIGlz IG5lZ2F0aXZlLiAgKi8KLSsgIHN0cnVjdCB0eXBlICp0bXBfdHlwZSA9IHR5cGU7Ci0rICBmb3Ig KGludCBpID0gMCA7IGkgPCBuZGltZW5zaW9uczsgKytpKQotKyAgICB7Ci0rICAgICAgLyogR3Jh YiB0aGUgcmFuZ2UgZm9yIHRoaXMgZGltZW5zaW9uIGFuZCBleHRyYWN0IHRoZSBsb3dlciBhbmQg dXBwZXIKLSsJIGJvdW5kcy4gICovCi0rICAgICAgdG1wX3R5cGUgPSBjaGVja190eXBlZGVmICh0 bXBfdHlwZSk7Ci0rICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSB0bXBfdHlwZS0+aW5k ZXhfdHlwZSAoKTsKLSsgICAgICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQsIHN0cmlk ZTsKLSsgICAgICBpZiAoIWdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJv dW5kLCAmdXBwZXJib3VuZCkpCi0rCWVycm9yICgiZmFpbGVkIHRvIGdldCByYW5nZSBib3VuZHMi KTsKLSsKLSsgICAgICAvKiBGaWd1cmUgb3V0IHRoZSBzdHJpZGUgZm9yIHRoaXMgZGltZW5zaW9u LiAgKi8KLSsgICAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBF X1RBUkdFVF9UWVBFICh0bXBfdHlwZSkpOwotKyAgICAgIHN0cmlkZSA9IHRtcF90eXBlLT5pbmRl eF90eXBlICgpLT5ib3VuZHMgKCktPmJpdF9zdHJpZGUgKCk7Ci0rICAgICAgaWYgKHN0cmlkZSA9 PSAwKQotKwlzdHJpZGUgPSB0eXBlX2xlbmd0aF91bml0cyAoZWx0X3R5cGUpOwotKyAgICAgIGVs c2UKLSsJewotKwkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X3R5cGVfYXJjaCAoZWx0X3R5 cGUpOwotKwkgIGludCB1bml0X3NpemUgPSBnZGJhcmNoX2FkZHJlc3NhYmxlX21lbW9yeV91bml0 X3NpemUgKGFyY2gpOwotKwkgIHN0cmlkZSAvPSAodW5pdF9zaXplICogOCk7Ci0rCX0KLSsKLSsg ICAgICAvKiBJZiB0aGlzIGRpbWVuc2lvbiBpcyAiYmFja3dhcmQiIHRoZW4gZmlndXJlIG91dCB0 aGUgb2Zmc2V0Ci0rCSBhZGp1c3RtZW50IHJlcXVpcmVkIHRvIHBvaW50IHRvIHRoZSBlbGVtZW50 IGF0IHRoZSBsb3dlc3QgbWVtb3J5Ci0rCSBhZGRyZXNzLCBhbmQgYWRkIHRoaXMgdG8gdGhlIHRv dGFsIG9mZnNldC4gICovCi0rICAgICAgTE9OR0VTVCBvZmZzZXQgPSAwOwotKyAgICAgIGlmIChz dHJpZGUgPCAwICYmIGxvd2VyYm91bmQgPCB1cHBlcmJvdW5kKQotKwlvZmZzZXQgPSAodXBwZXJi b3VuZCAtIGxvd2VyYm91bmQpICogc3RyaWRlOwotKyAgICAgIHRvdGFsX29mZnNldCArPSBvZmZz ZXQ7Ci0rICAgICAgdG1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSk7Ci0rICAg IH0KLSsKLSsgIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBvZiB0aGlzIG9iamVjdCBhbmQgcmV0dXJu IGl0LiAgKi8KLSsgIGFkZHJlc3MgKz0gdG90YWxfb2Zmc2V0OwotKyAgcmV0dXJuIGFkZHJlc3M7 Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcuaAotLS0tIGEvZ2Ri L2YtbGFuZy5oCi0rKysgYi9nZGIvZi1sYW5nLmgKLUBAIC02NCw3ICs2NCw2IEBAIGV4dGVybiB2 b2lkIGY3N19nZXRfZHluYW1pY19hcnJheV9sZW5ndGggKHN0cnVjdCB0eXBlICopOwotIAotIGV4 dGVybiBpbnQgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKik7Ci0gCi0tCi0gLyog Rm9ydHJhbiAoRjc3KSB0eXBlcyAqLwotIAotIHN0cnVjdCBidWlsdGluX2ZfdHlwZQotQEAgLTEy Miw0ICsxMjEsMjIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZm9ydHJhbl9hcmd1bWVudF9jb252 ZXJ0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotIGV4dGVybiBzdHJ1Y3QgdHlwZSAqZm9ydHJhbl9w cmVzZXJ2ZV9hcmdfcG9pbnRlciAoc3RydWN0IHZhbHVlICphcmcsCi0gCQkJCQkJICBzdHJ1Y3Qg dHlwZSAqdHlwZSk7Ci0gCi0rLyogRm9ydHJhbiBhcnJheXMgY2FuIGhhdmUgYSBuZWdhdGl2ZSBz dHJpZGUuICBXaGVuIHRoaXMgaGFwcGVucyBpdCBpcwotKyAgIG9mdGVuIHRoZSBjYXNlIHRoYXQg dGhlIGJhc2UgYWRkcmVzcyBmb3IgYW4gb2JqZWN0IGlzIG5vdCB0aGUgbG93ZXN0Ci0rICAgYWRk cmVzcyBvY2N1cGllZCBieSB0aGF0IG9iamVjdC4gIEZvciBleGFtcGxlLCBhbiBhcnJheSBzbGlj ZSAoMTA6MTotMSkKLSsgICB3aWxsIGJlIGVuY29kZWQgd2l0aCBsb3dlciBib3VuZCAxLCB1cHBl ciBib3VuZCAxMCwgYSBzdHJpZGUgb2YKLSsgICAtRUxFTUVOVF9TSVpFLCBhbmQgaGF2ZSBhIGJh c2UgYWRkcmVzcyBwb2ludGVyIHRoYXQgcG9pbnRzIGF0IHRoZQotKyAgIGVsZW1lbnQgd2l0aCB0 aGUgaGlnaGVzdCBhZGRyZXNzIGluIG1lbW9yeS4KLSsKLSsgICBUaGlzIHJlYWxseSBkb2Vzbid0 IHBsYXkgd2VsbCB3aXRoIG91ciBjdXJyZW50IG1vZGVsIG9mIHZhbHVlIGNvbnRlbnRzLAotKyAg IGJ1dCBjb3VsZCBlYXNpbHkgcmVxdWlyZSBhIHNpZ25pZmljYW50IHVwZGF0ZSBpbiBvcmRlciB0 byBiZSBzdXBwb3J0ZWQKLSsgICAiY29ycmVjdGx5Ii4KLSsKLSsgICBGb3Igbm93LCB3ZSBtYW51 YWxseSBmb3JjZSB0aGUgYmFzZSBhZGRyZXNzIHRvIGJlIHRoZSBsb3dlc3QgYWRkcmVzc2VkCi0r ICAgZWxlbWVudCBoZXJlLiAgWWVzLCB0aGlzIHdpbGwgYnJlYWsgc29tZSB0aGluZ3MsIGJ1dCBp dCBmaXhlcyBvdGhlcgotKyAgIHRoaW5ncy4gIFRoZSBob3BlIGlzIHRoYXQgaXQgZml4ZXMgbW9y ZSB0aGFuIGl0IGJyZWFrcy4gICovCi0rCi0rZXh0ZXJuIENPUkVfQUREUiBmb3J0cmFuX2FkanVz dF9keW5hbWljX2FycmF5X2Jhc2VfYWRkcmVzc19oYWNrCi0rCShzdHJ1Y3QgdHlwZSAqdHlwZSwg Q09SRV9BRERSIGFkZHJlc3MpOwotKwotICNlbmRpZiAvKiBGX0xBTkdfSCAqLwotZGlmZiAtLWdp dCBhL2dkYi9mLXZhbHByaW50LmMgYi9nZGIvZi12YWxwcmludC5jCi0tLS0gYS9nZGIvZi12YWxw cmludC5jCi0rKysgYi9nZGIvZi12YWxwcmludC5jCi1AQCAtMzUsNiArMzUsNyBAQAotICNpbmNs dWRlICJkaWN0aW9uYXJ5LmgiCi0gI2luY2x1ZGUgImNsaS9jbGktc3R5bGUuaCIKLSAjaW5jbHVk ZSAiZ2RiYXJjaC5oIgotKyNpbmNsdWRlICJmLWFycmF5LXdhbGtlci5oIgotIAotIHN0YXRpYyB2 b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsK LSAKLUBAIC0xMDAsMTAwICsxMDEsMTAzIEBAIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdn cmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAgICAgKiBUWVBFX0xFTkdUSCAoY2hlY2tfdHlw ZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsKLSB9Ci0gCi0tLyogQWN0dWFsIGZ1bmN0 aW9uIHdoaWNoIHByaW50cyBvdXQgRjc3IGFycmF5cywgVmFsYWRkciA9PSBhZGRyZXNzIGluIAot LSAgIHRoZSBzdXBlcmlvci4gIEFkZHJlc3MgPT0gdGhlIGFkZHJlc3MgaW4gdGhlIGluZmVyaW9y LiAgKi8KLSsvKiBBIGNsYXNzIHVzZWQgYnkgRk9SVFJBTl9QUklOVF9BUlJBWSBhcyBhIHNwZWNp YWxpc2F0aW9uIG9mIHRoZSBhcnJheQotKyAgIHdhbGtpbmcgdGVtcGxhdGUuICBUaGlzIHNwZWNp YWxpc2F0aW9uIHByaW50cyBGb3J0cmFuIGFycmF5cy4gICovCi0gCi0tc3RhdGljIHZvaWQKLS1m NzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKLS0JCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgaW50IGVtYmVkZGVk X29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0tCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKLS0JCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotLQkJICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0tCQkgICBpbnQgKmVsdHMp Ci0rY2xhc3MgZm9ydHJhbl9hcnJheV9wcmludGVyX2ltcGwgOiBwdWJsaWMgZm9ydHJhbl9hcnJh eV93YWxrZXJfYmFzZV9pbXBsCi0gewotLSAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBjaGVj a190eXBlZGVmICh0eXBlKS0+aW5kZXhfdHlwZSAoKTsKLS0gIENPUkVfQUREUiBhZGRyID0gYWRk cmVzcyArIGVtYmVkZGVkX29mZnNldDsKLS0gIExPTkdFU1QgbG93ZXJib3VuZCwgdXBwZXJib3Vu ZDsKLS0gIExPTkdFU1QgaTsKLS0KLS0gIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUs ICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7Ci0tCi0tICBpZiAobnNzICE9IG5kaW1lbnNpb25z KQotLSAgICB7Ci0tICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNo ICh0eXBlKTsKLS0gICAgICBzaXplX3QgZGltX3NpemUgPSB0eXBlX2xlbmd0aF91bml0cyAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSkpOwotLSAgICAgIGludCB1bml0X3NpemUgPSBnZGJhcmNoX2Fk ZHJlc3NhYmxlX21lbW9yeV91bml0X3NpemUgKGdkYmFyY2gpOwotLSAgICAgIHNpemVfdCBieXRl X3N0cmlkZSA9IHR5cGUtPmJpdF9zdHJpZGUgKCkgLyAodW5pdF9zaXplICogOCk7Ci0tICAgICAg aWYgKGJ5dGVfc3RyaWRlID09IDApCi0tCWJ5dGVfc3RyaWRlID0gZGltX3NpemU7Ci0tICAgICAg c2l6ZV90IG9mZnMgPSAwOwotLQotLSAgICAgIGZvciAoaSA9IGxvd2VyYm91bmQ7Ci0tCSAgIChp IDwgdXBwZXJib3VuZCArIDEgJiYgKCplbHRzKSA8IG9wdGlvbnMtPnByaW50X21heCk7Ci0tCSAg IGkrKykKLS0JewotLQkgIHN0cnVjdCB2YWx1ZSAqc3ViYXJyYXkgPSB2YWx1ZV9mcm9tX2NvbnRl bnRzX2FuZF9hZGRyZXNzCi0tCSAgICAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHZhbHVlX2Nv bnRlbnRzX2Zvcl9wcmludGluZ19jb25zdCAodmFsKQotLQkgICAgICsgb2ZmcywgYWRkciArIG9m ZnMpOwotLQotLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKLS0JICBmNzdfcHJp bnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVlX3R5cGUgKHN1YmFycmF5KSwK LS0JCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoc3ViYXJyYXkpLAotLQkJCSAg ICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0tCQkJICAgICB2YWx1ZV9hZGRy ZXNzIChzdWJhcnJheSksCi0tCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHN1YmFycmF5LCBvcHRp b25zLCBlbHRzKTsKLS0JICBvZmZzICs9IGJ5dGVfc3RyaWRlOwotLQkgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIikiKTsKLS0KLS0JICBpZiAoaSA8IHVwcGVyYm91bmQpCi0tCSAgICBmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgIik7Ci0tCX0KLS0gICAgICBpZiAoKmVsdHMgPj0gb3B0 aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCB1cHBlcmJvdW5kKQotLQlmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICIuLi4iKTsKLS0gICAgfQotLSAgZWxzZQotLSAgICB7Ci0tICAgICAgZm9yIChpID0g bG93ZXJib3VuZDsgaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmlu dF9tYXg7Ci0tCSAgIGkrKywgKCplbHRzKSsrKQotLQl7Ci0tCSAgc3RydWN0IHZhbHVlICplbHQg PSB2YWx1ZV9zdWJzY3JpcHQgKChzdHJ1Y3QgdmFsdWUgKil2YWwsIGkpOwotLQotLQkgIGNvbW1v bl92YWxfcHJpbnQgKGVsdCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBjdXJyZW50X2xhbmd1 YWdlKTsKLS0KLS0JICBpZiAoaSAhPSB1cHBlcmJvdW5kKQotLQkgICAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAiLCAiKTsKLS0KLS0JICBpZiAoKCplbHRzID09IG9wdGlvbnMtPnByaW50X21h eCAtIDEpCi0tCSAgICAgICYmIChpICE9IHVwcGVyYm91bmQpKQotLQkgICAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiLi4uIik7Ci0tCX0KLS0gICAgfQotLX0KLStwdWJsaWM6Ci0rICAvKiBD b25zdHJ1Y3Rvci4gIFRZUEUgaXMgdGhlIGFycmF5IHR5cGUgYmVpbmcgcHJpbnRlZCwgQUREUkVT UyBpcyB0aGUKLSsgICAgIGFkZHJlc3MgaW4gdGFyZ2V0IG1lbW9yeSBmb3IgdGhlIG9iamVjdCBv ZiBUWVBFIGJlaW5nIHByaW50ZWQuICBWQUwgaXMKLSsgICAgIHRoZSBHREIgdmFsdWUgKG9mIFRZ UEUpIGJlaW5nIHByaW50ZWQuICBTVFJFQU0gaXMgd2hlcmUgdG8gcHJpbnQgdG8sCi0rICAgICBS RUNPVVJTRSBpcyBwYXNzZWQgdGhyb3VnaCAoYW5kIHByZXZlbnRzIGluZmluaXRlIHJlY3Vyc2lv biksIGFuZAotKyAgICAgT1BUSU9OUyBhcmUgdGhlIHByaW50aW5nIGNvbnRyb2wgb3B0aW9ucy4g ICovCi0rICBleHBsaWNpdCBmb3J0cmFuX2FycmF5X3ByaW50ZXJfaW1wbCAoc3RydWN0IHR5cGUg KnR5cGUsCi0rCQkJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJICAgICAgIHN0cnVj dCB2YWx1ZSAqdmFsLAotKwkJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSsJCQkJ ICAgICAgIGludCByZWN1cnNlLAotKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCi0rICAgIDogbV9lbHRzICgwKSwKLSsgICAgICBtX3ZhbCAodmFs KSwKLSsgICAgICBtX3N0cmVhbSAoc3RyZWFtKSwKLSsgICAgICBtX3JlY3Vyc2UgKHJlY3Vyc2Up LAotKyAgICAgIG1fb3B0aW9ucyAob3B0aW9ucykKLSsgIHsgLyogTm90aGluZy4gICovIH0KLSsK LSsgIC8qIENhbGxlZCB3aGlsZSBpdGVyYXRpbmcgb3ZlciB0aGUgYXJyYXkgYm91bmRzLiAgV2hl biBTSE9VTERfQ09OVElOVUUgaXMKLSsgICAgIGZhbHNlIHRoZW4gd2UgbXVzdCByZXR1cm4gZmFs c2UsIGFzIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZQotKyAgICAgYXJyYXkgYm91bmRz IGZvciB0aGlzIGRpbWVuc2lvbi4gIEhvd2V2ZXIsIHdlIGFsc28gcmV0dXJuIGZhbHNlIGlmIHdl Ci0rICAgICBoYXZlIHByaW50ZWQgdG9vIG1hbnkgZWxlbWVudHMgKGFmdGVyIHByaW50aW5nICcu Li4nKS4gIEluIGFsbCBvdGhlcgotKyAgICAgY2FzZXMsIHJldHVybiB0cnVlLiAgKi8KLSsgIGJv b2wgY29udGludWVfd2Fsa2luZyAoYm9vbCBzaG91bGRfY29udGludWUpCi0rICB7Ci0rICAgIGJv b2wgY29udCA9IHNob3VsZF9jb250aW51ZSAmJiAobV9lbHRzIDwgbV9vcHRpb25zLT5wcmludF9t YXgpOwotKyAgICBpZiAoIWNvbnQgJiYgc2hvdWxkX2NvbnRpbnVlKQotKyAgICAgIGZwdXRzX2Zp bHRlcmVkICgiLi4uIiwgbV9zdHJlYW0pOwotKyAgICByZXR1cm4gY29udDsKLSsgIH0KLSsKLSsg IC8qIENhbGxlZCB3aGVuIHdlIHN0YXJ0IGl0ZXJhdGluZyBvdmVyIGEgZGltZW5zaW9uLiAgSWYg aXQncyBub3QgdGhlCi0rICAgICBpbm5lciBtb3N0IGRpbWVuc2lvbiB0aGVuIHByaW50IGFuIG9w ZW5pbmcgJygnIGNoYXJhY3Rlci4gICovCi0rICB2b2lkIHN0YXJ0X2RpbWVuc2lvbiAoYm9vbCBp bm5lcl9wKQotKyAgewotKyAgICBmcHV0c19maWx0ZXJlZCAoIigiLCBtX3N0cmVhbSk7Ci0rICB9 Ci0rCi0rICAvKiBDYWxsZWQgd2hlbiB3ZSBmaW5pc2ggcHJvY2Vzc2luZyBhIGJhdGNoIG9mIGl0 ZW1zIHdpdGhpbiBhIGRpbWVuc2lvbgotKyAgICAgb2YgdGhlIGFycmF5LiAgRGVwZW5kaW5nIG9u IHdoZXRoZXIgdGhpcyBpcyB0aGUgaW5uZXIgbW9zdCBkaW1lbnNpb24KLSsgICAgIG9yIG5vdCB3 ZSBwcmludCBkaWZmZXJlbnQgdGhpbmdzLCBidXQgdGhpcyBpcyBhbGwgYWJvdXQgYWRkaW5nCi0r ICAgICBzZXBhcmF0b3JzIGJldHdlZW4gZWxlbWVudHMsIGFuZCBkaW1lbnNpb25zIG9mIHRoZSBh cnJheS4gICovCi0rICB2b2lkIGZpbmlzaF9kaW1lbnNpb24gKGJvb2wgaW5uZXJfcCwgYm9vbCBs YXN0X3ApCi0rICB7Ci0rICAgIGZwdXRzX2ZpbHRlcmVkICgiKSIsIG1fc3RyZWFtKTsKLSsgICAg aWYgKCFsYXN0X3ApCi0rICAgICAgZnB1dHNfZmlsdGVyZWQgKCIgIiwgbV9zdHJlYW0pOwotKyAg fQotKwotKyAgLyogQ2FsbGVkIHRvIHByb2Nlc3MgYW4gZWxlbWVudCBvZiBFTFRfVFlQRSBhdCBv ZmZzZXQgRUxUX09GRiBmcm9tIHRoZQotKyAgICAgc3RhcnQgb2YgdGhlIHBhcmVudCBvYmplY3Qu ICAqLwotKyAgdm9pZCBwcm9jZXNzX2VsZW1lbnQgKHN0cnVjdCB0eXBlICplbHRfdHlwZSwgTE9O R0VTVCBlbHRfb2ZmLCBib29sIGxhc3RfcCkKLSsgIHsKLSsgICAgLyogRXh0cmFjdCB0aGUgZWxl bWVudCB2YWx1ZSBmcm9tIHRoZSBwYXJlbnQgdmFsdWUuICAqLwotKyAgICBzdHJ1Y3QgdmFsdWUg KmVfdmFsCi0rICAgICAgPSB2YWx1ZV9mcm9tX2NvbXBvbmVudCAobV92YWwsIGVsdF90eXBlLCBl bHRfb2ZmKTsKLSsgICAgY29tbW9uX3ZhbF9wcmludCAoZV92YWwsIG1fc3RyZWFtLCBtX3JlY3Vy c2UsIG1fb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0rICAgIGlmICghbGFzdF9wKQotKyAg ICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBtX3N0cmVhbSk7Ci0rICAgICsrbV9lbHRzOwotKyAg fQotKwotK3ByaXZhdGU6Ci0rICAvKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHByaW50ZWQgc28g ZmFyLiAgKi8KLSsgIGludCBtX2VsdHM7Ci0rCi0rICAvKiBUaGUgdmFsdWUgZnJvbSB3aGljaCB3 ZSBhcmUgcHJpbnRpbmcgZWxlbWVudHMuICAqLwotKyAgc3RydWN0IHZhbHVlICptX3ZhbDsKLSsK LSsgIC8qIFRoZSBzdHJlYW0gd2Ugc2hvdWxkIHByaW50IHRvby4gICovCi0rICBzdHJ1Y3QgdWlf ZmlsZSAqbV9zdHJlYW07Ci0rCi0rICAvKiBUaGUgcmVjdXJzaW9uIGNvdW50ZXIsIHBhc3NlZCB0 aHJvdWdoIHdoZW4gd2UgcHJpbnQgZWFjaCBlbGVtZW50LiAgKi8KLSsgIGludCBtX3JlY3Vyc2U7 Ci0rCi0rICAvKiBUaGUgcHJpbnQgY29udHJvbCBvcHRpb25zLiAgR2l2ZXMgdXMgdGhlIG1heGlt dW0gbnVtYmVyIG9mIGVsZW1lbnRzIHRvCi0rICAgICBwcmludCwgYW5kIGlzIHBhc3NlZCB0aHJv dWdoIHRvIGVhY2ggZWxlbWVudCB0aGF0IHdlIHByaW50LiAgKi8KLSsgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICptX29wdGlvbnMgPSBudWxscHRyOwotK307Ci0gCi0tLyogVGhp cyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB0byBwcmludCBhbiBGNzcgYXJyYXksIHdlIHNldCB1cCBz b21lIAotLSAgIHN0dWZmIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGNhbGwgZjc3X3ByaW50X2FycmF5 XzEoKS4gICovCi0rLyogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB0byBwcmludCBhIEZvcnRy YW4gYXJyYXkuICAqLwotIAotIHN0YXRpYyB2b2lkCi0tZjc3X3ByaW50X2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgaW50IGVtYmVkZGVkX29m ZnNldCwKLS0JCSBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLS0J CSBpbnQgcmVjdXJzZSwKLS0JCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLS0JCSBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLStmb3J0cmFuX3ByaW50X2FycmF5 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCQkgICAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotKwkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLSsJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci0gewotLSAgaW50IG5kaW1lbnNpb25zOwotLSAgaW50IGVsdHMgPSAwOwotLQotLSAgbmRpbWVu c2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKLS0KLS0gIGlmIChuZGltZW5zaW9u cyA+IE1BWF9GT1JUUkFOX0RJTVMgfHwgbmRpbWVuc2lvbnMgPCAwKQotLSAgICBlcnJvciAoXygi XAotLVR5cGUgbm9kZSBjb3JydXB0ISBGNzcgYXJyYXlzIGNhbm5vdCBoYXZlICVkIHN1YnNjcmlw dHMgKCVkIE1heCkiKSwKLS0JICAgbmRpbWVuc2lvbnMsIE1BWF9GT1JUUkFOX0RJTVMpOwotLQot LSAgZjc3X3ByaW50X2FycmF5XzEgKDEsIG5kaW1lbnNpb25zLCB0eXBlLCB2YWxhZGRyLCBlbWJl ZGRlZF9vZmZzZXQsCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRp b25zLCAmZWx0cyk7Ci0rICBmb3J0cmFuX2FycmF5X3dhbGtlcjxmb3J0cmFuX2FycmF5X3ByaW50 ZXJfaW1wbD4gcAotKyAgICAodHlwZSwgYWRkcmVzcywgKHN0cnVjdCB2YWx1ZSAqKSB2YWwsIHN0 cmVhbSwgcmVjdXJzZSwgb3B0aW9ucyk7Ci0rICBwLndhbGsgKCk7Ci0gfQotIAwKLSAKLUBAIC0y MzYsMTIgKzI0MCw3IEBAIGZfdmFsdWVfcHJpbnRfaW5uZXIgKHN0cnVjdCB2YWx1ZSAqdmFsLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAKLSAgICAgY2FzZSBUWVBFX0NP REVfQVJSQVk6Ci0gICAgICAgaWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLT5jb2RlICgpICE9 IFRZUEVfQ09ERV9DSEFSKQotLQl7Ci0tCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIp OwotLQkgIGY3N19wcmludF9hcnJheSAodHlwZSwgdmFsYWRkciwgMCwKLS0JCQkgICBhZGRyZXNz LCBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwgb3B0aW9ucyk7Ci0tCSAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiKSIpOwotLQl9Ci0rCWZvcnRyYW5fcHJpbnRfYXJyYXkgKHR5cGUsIGFkZHJlc3Ms IHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zKTsKLSAgICAgICBlbHNlCi0gCXsKLSAJICBz dHJ1Y3QgdHlwZSAqY2hfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwotZGlmZiAtLWdp dCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLS0tLSBhL2dkYi9nZGJ0eXBlcy5j Ci0rKysgYi9nZGIvZ2RidHlwZXMuYwotQEAgLTM5LDYgKzM5LDcgQEAKLSAjaW5jbHVkZSAiZHdh cmYyL2xvYy5oIgotICNpbmNsdWRlICJnZGJjb3JlLmgiCi0gI2luY2x1ZGUgImZsb2F0Zm9ybWF0 LmgiCi0rI2luY2x1ZGUgImYtbGFuZy5oIgotICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0gCi0gLyog SW5pdGlhbGl6ZSBCQURORVNTIGNvbnN0YW50cy4gICovCi1AQCAtMjY5NSw3ICsyNjk2LDE2IEBA IHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLSAgIHBy b3AgPSBUWVBFX0RBVEFfTE9DQVRJT04gKHJlc29sdmVkX3R5cGUpOwotICAgaWYgKHByb3AgIT0g TlVMTAotICAgICAgICYmIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRk cl9zdGFjaywgJnZhbHVlKSkKLS0gICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAodmFsdWUpOwotKyAg ICB7Ci0rICAgICAgLyogU3RhcnQgb2YgRm9ydHJhbiBoYWNrLiAgU2VlIGNvbW1lbnQgaW4gZi1s YW5nLmggZm9yIHdoYXQgaXMgZ29pbmcKLSsJIG9uIGhlcmUuKi8KLSsgICAgICBpZiAoY3VycmVu dF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbgotKwkgICYmIHJlc29s dmVkX3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZKQotKwl2YWx1ZSA9IGZvcnRyYW5f YWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2sgKHJlc29sdmVkX3R5cGUsCi0r CQkJCQkJCQl2YWx1ZSk7Ci0rICAgICAgLyogRW5kIG9mIEZvcnRyYW4gaGFjay4gICovCi0rICAg ICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAodmFsdWUpOwotKyAgICB9Ci0gCi0gICByZXR1cm4gcmVz b2x2ZWRfdHlwZTsKLSB9Ci1AQCAtMzYwMCw5ICszNjEwLDExIEBAIGlzX3NjYWxhcl90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IHR5cGUgKnQpCi0gICAgICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hf Ym91bmQ7Ci0gICAgICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQ RV9UQVJHRVRfVFlQRSAodCkpOwotIAotLSAgICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHQtPmlu ZGV4X3R5cGUgKCksICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKTsKLS0KLS0gICAgICByZXR1cm4g aGlnaF9ib3VuZCA9PSBsb3dfYm91bmQgJiYgaXNfc2NhbGFyX3R5cGVfcmVjdXJzaXZlIChlbHRf dHlwZSk7Ci0rICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHQtPmluZGV4X3R5cGUgKCks ICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSkKLSsJcmV0dXJuIChoaWdoX2JvdW5kID09IGxvd19i b3VuZAotKwkgICAgICAgICYmIGlzX3NjYWxhcl90eXBlX3JlY3Vyc2l2ZSAoZWx0X3R5cGUpKTsK LSsgICAgICBlbHNlCi0rCXJldHVybiAwOwotICAgICB9Ci0gICAvKiBBcmUgd2UgZGVhbGluZyB3 aXRoIGEgc3RydWN0IHdpdGggb25lIGVsZW1lbnQ/ICAqLwotICAgZWxzZSBpZiAodC0+Y29kZSAo KSA9PSBUWVBFX0NPREVfU1RSVUNUICYmIHQtPm51bV9maWVsZHMgKCkgPT0gMSkKLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1iYWQuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmV4cAotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLWJhZC5leHAKLUBAIC0wLDAgKzEsNjkgQEAKLSsjIENvcHlyaWdodCAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPiAuCi0rCi0rIyBUZXN0IGludmFsaWQgZWxlbWVudCBhbmQgc2xpY2UgYXJyYXkgYWNj ZXNzZXMuCi0rCi0raWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAtMSB9Ci0rCi0r c3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rbG9hZF9saWIgZm9ydHJhbi5leHAKLSsKLStpZiB7 W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmls ZX0gXAotKwkge2RlYnVnIGY5MH1dfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAhW2Zv cnRyYW5fcnVudG9fbWFpbl0gewotKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWlu IgotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAiRGlzcGxheSBNZXNzYWdlIEJyZWFrcG9pbnQiXQotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJGaXJzdCBCcmVha3BvaW50Il0KLStnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiU2Vjb25kIEJyZWFrcG9pbnQiXQotK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsKLStnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiRmlyc3QgQnJlYWtwb2ludCIKLSsKLSsjIEFjY2VzcyBub3QgeWV0 IGFsbG9jYXRlZCBhcnJheS4KLStnZGJfdGVzdCAicHJpbnQgb3RoZXIiICIgPSA8bm90IGFsbG9j YXRlZD4iCi0rZ2RiX3Rlc3QgInByaW50IG90aGVyKDA6NCwyOjMpIiAiYXJyYXkgbm90IGFsbG9j YXRlZCIKLStnZGJfdGVzdCAicHJpbnQgb3RoZXIoMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1l bnQgXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXCkiCi0rCi0rIyBBY2Nlc3Mgbm90IHlldCBhc3Nv Y2lhdGVkIHBvaW50ZXIuCi0rZ2RiX3Rlc3QgInByaW50IHBvaW50ZXIyZCIgIiA9IDxub3QgYXNz b2NpYXRlZD4iCi0rZ2RiX3Rlc3QgInByaW50IHBvaW50ZXIyZCgxOjIsMToyKSIgImFycmF5IG5v dCBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCBwb2ludGVyMmQoMSwxKSIgIm5vIHN1Y2gg dmVjdG9yIGVsZW1lbnQgXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXFwpIgotKwotK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJTZWNvbmQgQnJlYWtwb2ludCIKLSsKLSsjIEFjY2Vzc2luZyBq dXN0IG91dHNpZGUgdGhlIGFycmF5cy4KLStmb3JlYWNoIG5hbWUge2FycmF5IHBvaW50ZXIyZCBv dGhlcn0gewotKyAgICBnZGJfdGVzdCAicHJpbnQgJG5hbWUgKDA6LDopIiAiYXJyYXkgc3Vic2Ny aXB0IG91dCBvZiBib3VuZHMiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSAoOjExLDopIiAi YXJyYXkgc3Vic2NyaXB0IG91dCBvZiBib3VuZHMiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFt ZSAoOiwwOikiICJhcnJheSBzdWJzY3JpcHQgb3V0IG9mIGJvdW5kcyIKLSsgICAgZ2RiX3Rlc3Qg InByaW50ICRuYW1lICg6LDoxMSkiICJhcnJheSBzdWJzY3JpcHQgb3V0IG9mIGJvdW5kcyIKLSsK LSsgICAgZ2RiX3Rlc3QgInByaW50ICRuYW1lICgwLDopIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCIKLSsgICAgZ2RiX3Rlc3QgInByaW50ICRuYW1lICgxMSw6KSIgIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSAoOiwwKSIgIm5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSAoOiwxMSkiICJubyBzdWNoIHZl Y3RvciBlbGVtZW50IgotK30KLSsKLSsjIFN0cmlkZSBpbiB0aGUgd3JvbmcgZGlyZWN0aW9uLgot K2dkYl90ZXN0ICJwcmludCBhcnJheSAoMToxMDotMSw6KSIgImluY29ycmVjdCBzdHJpZGUgYW5k IGJvdW5kYXJ5IGNvbWJpbmF0aW9uIgotK2dkYl90ZXN0ICJwcmludCBhcnJheSAoOiwxOjEwOi0x KSIgImluY29ycmVjdCBzdHJpZGUgYW5kIGJvdW5kYXJ5IGNvbWJpbmF0aW9uIgotK2dkYl90ZXN0 ICJwcmludCBhcnJheSAoMTA6MToxLDopIiAiaW5jb3JyZWN0IHN0cmlkZSBhbmQgYm91bmRhcnkg Y29tYmluYXRpb24iCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5ICg6LDEwOjE6MSkiICJpbmNvcnJl Y3Qgc3RyaWRlIGFuZCBib3VuZGFyeSBjb21iaW5hdGlvbiIKLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1iYWQuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmY5MAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0t LSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2Vz LWJhZC5mOTAKLUBAIC0wLDAgKzEsNDIgQEAKLSshIENvcHlyaWdodCAyMDIwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQot KyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQot KyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0r Ci0rIQotKyEgU3RhcnQgb2YgdGVzdCBwcm9ncmFtLgotKyEKLStwcm9ncmFtIHRlc3QKLSsKLSsg ICEgRGVjbGFyZSB2YXJpYWJsZXMgdXNlZCBpbiB0aGlzIHRlc3QuCi0rICBpbnRlZ2VyLCBkaW1l bnNpb24gKDE6MTAsMToxMCkgOjogYXJyYXkKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IG90 aGVyICg6LCA6KQotKyAgaW50ZWdlciwgZGltZW5zaW9uKDosOiksIHBvaW50ZXIgOjogcG9pbnRl cjJkID0+IG51bGwoKQotKyAgaW50ZWdlciwgZGltZW5zaW9uKDE6MTAsMToxMCksIHRhcmdldCA6 OiB0YXJyYXkKLSsKLSsgIHByaW50ICosICIiICEgRmlyc3QgQnJlYWtwb2ludC4KLSsKLSsgICEg QWxsb2NhdGUgb3IgYXNzb2NpYXRlIGFueSB2YXJpYWJsZXMgYXMgbmVlZGVkLgotKyAgYWxsb2Nh dGUgKG90aGVyICgxOjEwLCAxOjEwKSkKLSsgIHBvaW50ZXIyZCA9PiB0YXJyYXkKLSsgIGFycmF5 ID0gMAotKwotKyAgcHJpbnQgKiwgIiIgISBTZWNvbmQgQnJlYWtwb2ludC4KLSsKLSsgICEgQWxs IGRvbmUuICBEZWFsbG9jYXRlLgotKyAgZGVhbGxvY2F0ZSAob3RoZXIpCi0rCi0rICAhIEdEQiBj YXRjaGVzIHRoaXMgZmluYWwgYnJlYWtwb2ludCB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoZSB0 ZXN0LgotKyAgcHJpbnQgKiwgIiIgISBGaW5hbCBCcmVha3BvaW50LgotKwotK2VuZCBwcm9ncmFt IHRlc3QKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNl cy1zdWItc2xpY2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2Vz LXN1Yi1zbGljZXMuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNlcy5leHAK LUBAIC0wLDAgKzEsMTExIEBACi0rIyBDb3B5cmlnaHQgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4gLgotKwotKyMgQ3Jl YXRlIGEgc2xpY2Ugb2YgYW4gYXJyYXksIHRoZW4gdGFrZSBhIHNsaWNlIG9mIHRoYXQgc2xpY2Uu Ci0rCi0raWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAtMSB9Ci0rCi0rc3RhbmRh cmRfdGVzdGZpbGUgIi5mOTAiCi0rbG9hZF9saWIgZm9ydHJhbi5leHAKLSsKLStpZiB7W3ByZXBh cmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAot Kwkge2RlYnVnIGY5MH1dfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAhW2ZvcnRyYW5f cnVudG9fbWFpbl0gewotKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgotKyAg ICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiRGlzcGxheSBNZXNzYWdlIEJyZWFrcG9pbnQiXQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJTdG9wIEhlcmUiXQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsKLSsjIFdlJ3JlIGdvaW5nIHRvIHByaW50IHNv bWUgcmVhc29uYWJseSBsYXJnZSBhcnJheXMuCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcHJp bnQgZWxlbWVudHMgdW5saW1pdGVkIgotKwotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJT dG9wIEhlcmUiCi0rCi0rIyBQcmludCBhIHNsaWNlLCBjYXB0dXJlIHRoZSBjb252ZW5pZW5jZSB2 YXJpYWJsZSBuYW1lIGNyZWF0ZWQuCi0rc2V0IGNtZCAicHJpbnQgYXJyYXkgKDE6MTA6MiwgMTox MDoyKSIKLStnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRjbWQgewotKyAgICAtcmUgIlxyXG5cXFwk KFxcZCspID0gLipcclxuJGdkYl9wcm9tcHQgJCIgewotKwlzZXQgdmFybmFtZSAiXCQkZXhwZWN0 X291dCgxLHN0cmluZykiCi0rICAgIH0KLSt9Ci0rCi0rIyBOb3cgY2hlY2sgdGhhdCB3ZSBjYW4g Y29ycmVjdGx5IGV4dHJhY3QgYWxsIHRoZSBlbGVtZW50cyBmcm9tIHRoaXMKLSsjIHNsaWNlLgot K2ZvciB7IHNldCBqIDEgfSB7ICRqIDwgNiB9IHsgaW5jciBqIH0gewotKyAgICBmb3IgeyBzZXQg aSAxIH0geyAkaSA8IDYgfSB7IGluY3IgaSB9IHsKLSsJc2V0IHZhbCBbZXhwciAoKCgkaSAtIDEp ICogMikgKyAoKCRqIC0gMSkgKiAyMCkpICsgMV0KLSsJZ2RiX3Rlc3QgInByaW50ICR7dmFybmFt ZX0gKCRpLCRqKSIgIiA9ICR2YWwiCi0rICAgIH0KLSt9Ci0rCi0rIyBOb3cgdGFrZSBhIHNsaWNl IG9mIHRoZSBzbGljZS4KLStnZGJfdGVzdCAicHJpbnQgJHt2YXJuYW1lfSAoMzo1LCAzOjUpIiBc Ci0rICAgICIgPSBcXChcXCg0NSwgNDcsIDQ5XFwpIFxcKDY1LCA2NywgNjlcXCkgXFwoODUsIDg3 LCA4OVxcKVxcKSIKLSsKLSsjIE5vdyB0YWtlIGEgZGlmZmVyZW50IHNsaWNlIG9mIGEgc2xpY2Uu Ci0rc2V0IGNtZCAicHJpbnQgJHt2YXJuYW1lfSAoMTo1OjIsIDE6NToyKSIKLStnZGJfdGVzdF9t dWx0aXBsZSAkY21kICRjbWQgewotKyAgICAtcmUgIlxyXG5cXFwkKFxcZCspID0gXFwoXFwoMSwg NSwgOVxcKSBcXCg0MSwgNDUsIDQ5XFwpIFxcKDgxLCA4NSwgODlcXClcXClcclxuJGdkYl9wcm9t cHQgJCIgewotKwlzZXQgdmFybmFtZSAiXCQkZXhwZWN0X291dCgxLHN0cmluZykiCi0rCXBhc3Mg JGdkYl90ZXN0X25hbWUKLSsgICAgfQotK30KLSsKLSsjIE5vdyB0YWtlIGEgc2xpY2UgZnJvbSB0 aGUgc2xpY2UsIG9mIGEgc2xpY2UhCi0rc2V0IGNtZCAicHJpbnQgJHt2YXJuYW1lfSAoMTozOjIs IDE6MzoyKSIKLStnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRjbWQgewotKyAgICAtcmUgIlxyXG5c XFwkKFxcZCspID0gXFwoXFwoMSwgOVxcKSBcXCg4MSwgODlcXClcXClcclxuJGdkYl9wcm9tcHQg JCIgewotKwlzZXQgdmFybmFtZSAiXCQkZXhwZWN0X291dCgxLHN0cmluZykiCi0rCXBhc3MgJGdk Yl90ZXN0X25hbWUKLSsgICAgfQotK30KLSsKLSsjIEFuZCBhZ2FpbiEKLStzZXQgY21kICJwcmlu dCAke3Zhcm5hbWV9ICgxOjI6MiwgMToyOjIpIgotK2dkYl90ZXN0X211bHRpcGxlICRjbWQgJGNt ZCB7Ci0rICAgIC1yZSAiXHJcblxcXCQoXFxkKykgPSBcXChcXCgxXFwpXFwpXHJcbiRnZGJfcHJv bXB0ICQiIHsKLSsJc2V0IHZhcm5hbWUgIlwkJGV4cGVjdF9vdXQoMSxzdHJpbmcpIgotKwlwYXNz ICRnZGJfdGVzdF9uYW1lCi0rICAgIH0KLSt9Ci0rCi0rIyBUZXN0IHRha2luZyBhIHNsaWNlIHdp dGggc3RyaWRlIG9mIGEgc3RyaW5nLiAgVGhpcyBpc24ndCBhY3R1YWxseQotKyMgc3VwcG9ydGVk IHdpdGhpbiBnZm9ydHJhbiAoYXQgbGVhc3QpLCBidXQgbmF0dXJhbGx5IGRyb3BzIG91dCBvZiBo b3cKLSsjIEdEQiBtb2RlbHMgYXJyYXlzIGFuZCBzdHJpbmdzIGluIGEgc2ltaWxhciB3YXksIHNv IHdlIG1heSBhcyB3ZWxsCi0rIyB0ZXN0IHRoYXQgdGhpcyBpcyBzdGlsbCB3b3JraW5nLgotK2dk Yl90ZXN0ICJwcmludCBzdHIgKDE6MjY6MikiICIgPSAnYWNlZ2lrbW9xc3V3eSciCi0rZ2RiX3Rl c3QgInByaW50IHN0ciAoMjY6MTotMSkiICIgPSAnenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmEn IgotK2dkYl90ZXN0ICJwcmludCBzdHIgKDI2OjE6LTIpIiAiID0gJ3p4dnRycG5samhmZGInIgot KwotKyMgTm93IHRlc3QgdGhlIG1lbW9yeSByZXF1aXJlbWVudHMgb2YgdGFraW5nIGEgc2xpY2Ug ZnJvbSBhbiBhcnJheS4KLSsjIFRoZSBpZGVhIGlzIHRoYXQgd2Ugc2hvdWxkbid0IHJlcXVpcmUg bW9yZSBtZW1vcnkgdG8gZXh0cmFjdCBhIHNsaWNlCi0rIyB0aGFuIHRoZSBzaXplIG9mIHRoZSBz bGljZS4KLSsjCi0rIyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIGFycmF5IHJlcGFja2luZyBpcyB0 dXJuZWQgb24sIG90aGVyd2lzZSBHREIKLSsjIHdpbGwgY3JlYXRlIHRoZSBzbGljZSBieSBnZW5l cmF0aW5nIGEgbmV3IHR5cGUgdGhhdCBzaXRzIG92ZXIgdGhlCi0rIyBleGlzdGluZyB2YWx1ZSBp biBtZW1vcnkuCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgZm9ydHJhbiByZXBhY2stYXJyYXkt c2xpY2VzIG9uIgotK3NldCBlbGVtZW50X3NpemUgW2dldF9pbnRlZ2VyX3ZhbHVlb2YgInNpemVv ZiAoYXJyYXkgKDEsMSkpIiAidW5rbm93biJdCi0rc2V0IHNsaWNlX3NpemUgW2V4cHIgJGVsZW1l bnRfc2l6ZSAqIDRdCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgbWF4LXZhbHVlLXNpemUgJHNs aWNlX3NpemUiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5ICgxOjIsIDE6MikiICI9IFxcKFxcKDEs IDJcXCkgXFwoMTEsIDEyXFwpXFwpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheSAoMjozLCAyOjMp IiAiPSBcXChcXCgxMiwgMTNcXCkgXFwoMjIsIDIzXFwpXFwpIgotK2dkYl90ZXN0ICJwcmludCBh cnJheSAoMjo1OjIsIDI6NToyKSIgIj0gXFwoXFwoMTIsIDE0XFwpIFxcKDMyLCAzNFxcKVxcKSIK LWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1zdWIt c2xpY2VzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLXN1Yi1z bGljZXMuZjkwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNlcy5mOTAKLUBAIC0w LDAgKzEsOTYgQEAKLSshIENvcHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsh IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIQotKyEgU3RhcnQg b2YgdGVzdCBwcm9ncmFtLgotKyEKLStwcm9ncmFtIHRlc3QKLSsgIGludGVnZXIsIGRpbWVuc2lv biAoMToxMCwxOjExKSA6OiBhcnJheQotKyAgY2hhcmFjdGVyIChsZW49MjYpIDo6IHN0ciA9ICJh YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKLSsKLSsgIGNhbGwgZmlsbF9hcnJheV8yZCAoYXJy YXkpCi0rCi0rICAhIEdEQiBjYXRjaGVzIHRoaXMgZmluYWwgYnJlYWtwb2ludCB0byBpbmRpY2F0 ZSB0aGUgZW5kIG9mIHRoZSB0ZXN0LgotKyAgcHJpbnQgKiwgIiIgISBTdG9wIEhlcmUKLSsKLSsg IHByaW50ICosIGFycmF5Ci0rICBwcmludCAqLCBzdHIKLSsKLSsgICEgR0RCIGNhdGNoZXMgdGhp cyBmaW5hbCBicmVha3BvaW50IHRvIGluZGljYXRlIHRoZSBlbmQgb2YgdGhlIHRlc3QuCi0rICBw cmludCAqLCAiIiAhIEZpbmFsIEJyZWFrcG9pbnQuCi0rCi0rY29udGFpbnMKLSsKLSsgICEgRmls bCBhIDFEIGFycmF5IHdpdGggYSB1bmlxdWUgcG9zaXRpdmUgaW50ZWdlciBpbiBlYWNoIGVsZW1l bnQuCi0rICBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMWQgKGFycmF5KQotKyAgICBpbnRlZ2VyLCBk aW1lbnNpb24gKDopIDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291bnRlcgotKwotKyAgICBj b3VudGVyID0gMQotKyAgICBkbyBqPUxCT1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAx KSwgMQotKyAgICAgICBhcnJheSAoaikgPSBjb3VudGVyCi0rICAgICAgIGNvdW50ZXIgPSBjb3Vu dGVyICsgMQotKyAgICBlbmQgZG8KLSsgIGVuZCBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMWQKLSsK LSsgICEgRmlsbCBhIDJEIGFycmF5IHdpdGggYSB1bmlxdWUgcG9zaXRpdmUgaW50ZWdlciBpbiBl YWNoIGVsZW1lbnQuCi0rICBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMmQgKGFycmF5KQotKyAgICBp bnRlZ2VyLCBkaW1lbnNpb24gKDosOikgOjogYXJyYXkKLSsgICAgaW50ZWdlciA6OiBjb3VudGVy Ci0rCi0rICAgIGNvdW50ZXIgPSAxCi0rICAgIGRvIGk9TEJPVU5EIChhcnJheSwgMiksIFVCT1VO RCAoYXJyYXksIDIpLCAxCi0rICAgICAgIGRvIGo9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAo YXJyYXksIDEpLCAxCi0rICAgICAgICAgIGFycmF5IChqLGkpID0gY291bnRlcgotKyAgICAgICAg ICBjb3VudGVyID0gY291bnRlciArIDEKLSsgICAgICAgZW5kIGRvCi0rICAgIGVuZCBkbwotKyAg ZW5kIHN1YnJvdXRpbmUgZmlsbF9hcnJheV8yZAotKwotKyAgISBGaWxsIGEgM0QgYXJyYXkgd2l0 aCBhIHVuaXF1ZSBwb3NpdGl2ZSBpbnRlZ2VyIGluIGVhY2ggZWxlbWVudC4KLSsgIHN1YnJvdXRp bmUgZmlsbF9hcnJheV8zZCAoYXJyYXkpCi0rICAgIGludGVnZXIsIGRpbWVuc2lvbiAoOiw6LDop IDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291bnRlcgotKwotKyAgICBjb3VudGVyID0gMQot KyAgICBkbyBpPUxCT1VORCAoYXJyYXksIDMpLCBVQk9VTkQgKGFycmF5LCAzKSwgMQotKyAgICAg ICBkbyBqPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFycmF5LCAyKSwgMQotKyAgICAgICAg ICBkbyBrPUxCT1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAxKSwgMQotKyAgICAgICAg ICAgICBhcnJheSAoaywgaixpKSA9IGNvdW50ZXIKLSsgICAgICAgICAgICAgY291bnRlciA9IGNv dW50ZXIgKyAxCi0rICAgICAgICAgIGVuZCBkbwotKyAgICAgICBlbmQgZG8KLSsgICAgZW5kIGRv Ci0rICBlbmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzNkCi0rCi0rICAhIEZpbGwgYSA0RCBhcnJh eSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIgaW4gZWFjaCBlbGVtZW50LgotKyAgc3Vi cm91dGluZSBmaWxsX2FycmF5XzRkIChhcnJheSkKLSsgICAgaW50ZWdlciwgZGltZW5zaW9uICg6 LDosOiw6KSA6OiBhcnJheQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsKLSsgICAgY291bnRl ciA9IDEKLSsgICAgZG8gaT1MQk9VTkQgKGFycmF5LCA0KSwgVUJPVU5EIChhcnJheSwgNCksIDEK LSsgICAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJheSwgMyksIDEKLSsg ICAgICAgICAgZG8gaz1MQk9VTkQgKGFycmF5LCAyKSwgVUJPVU5EIChhcnJheSwgMiksIDEKLSsg ICAgICAgICAgICAgZG8gbD1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEK LSsgICAgICAgICAgICAgICAgYXJyYXkgKGwsIGssIGosaSkgPSBjb3VudGVyCi0rICAgICAgICAg ICAgICAgIGNvdW50ZXIgPSBjb3VudGVyICsgMQotKyAgICAgICAgICAgICBlbmQgZG8KLSsgICAg ICAgICAgZW5kIGRvCi0rICAgICAgIGVuZCBkbwotKyAgICBlbmQgZG8KLSsgICAgcHJpbnQgKiwg IiIKLSsgIGVuZCBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfNGQKLStlbmQgcHJvZ3JhbSB0ZXN0Ci1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhwCi0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4cAotQEAgLTE4LDYgKzE4LDIxIEBACi0gIyB0aGUg c3Vicm91dGluZS4gIFRoaXMgc2hvdWxkIGV4ZXJjaXNlIEdEQidzIGFiaWxpdHkgdG8gaGFuZGxl Ci0gIyBkaWZmZXJlbnQgc3RyaWRlcyBmb3IgdGhlIGRpZmZlcmVudCBkaW1lbnNpb25zLgotIAot KyMgVGVzdGluZyBHREIncyBhYmlsaXR5IHRvIHByaW50IGFycmF5IChhbmQgc3RyaW5nKSBzbGlj ZXMsIGluY2x1ZGluZwotKyMgc2xpY2VzIHRoYXQgbWFrZSB1c2Ugb2YgYXJyYXkgc3RyaWRlcy4K LSsjCi0rIyBJbiB0aGUgRm9ydHJhbiBjb2RlIHZhcmlvdXMgYXJyYXlzIG9mIGRpZmZlcmVudCBy YW5rcyBhcmUgZmlsbGVkCi0rIyB3aXRoIGRhdGEsIGFuZCBzbGljZXMgYXJlIHBhc3NlZCB0byBh IHNlcmllcyBvZiBzaG93IGZ1bmN0aW9ucy4KLSsjCi0rIyBJbiB0aGlzIHRlc3Qgc2NyaXB0IHdl IGJyZWFrIGluIGVhY2ggb2YgdGhlIHNob3cgZnVuY3Rpb25zLCBwcmludAotKyMgdGhlIGFycmF5 IHNsaWNlIHRoYXQgd2FzIHBhc3NlZCBpbiwgYW5kIHRoZW4gbW92ZSB1cCB0aGUgc3RhY2sgdG8K LSsjIHRoZSBwYXJlbnQgZnJhbWUgYW5kIGNoZWNrIEdEQiBjYW4gbWFudWFsbHkgZXh0cmFjdCB0 aGUgc2FtZSBzbGljZS4KLSsjCi0rIyBUaGlzIHRlc3QgYWxzbyBjaGVja3MgdGhhdCB0aGUgc2l6 ZSBvZiB0aGUgYXJyYXkgc2xpY2UgcGFzc2VkIHRvIHRoZQotKyMgZnVuY3Rpb24gKHNvIGFzIGV4 dHJhY3RlZCBhbmQgZGVzY3JpYmVkIGJ5IHRoZSBjb21waWxlciBhbmQgdGhlCi0rIyBkZWJ1ZyBp bmZvcm1hdGlvbikgbWF0Y2hlcyB0aGUgc2l6ZSBvZiB0aGUgc2xpY2UgbWFudWFsbHkgZXh0cmFj dGVkCi0rIyBieSBHREIuCi0rCi0gaWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAt MSB9Ci0gCi0gc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi1AQCAtMjgsNTcgKzQzLDIyNCBAQCBp ZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3Jj ZmlsZX0gXAotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0taWYgIVtmb3J0cmFuX3J1bnRvX21haW5d IHsKLS0gICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKLS0gICAgcmV0dXJuIC0x Ci0rIyBUYWtlcyB0aGUgbmFtZSBvZiBhbiBhcnJheSBzbGljZSBhcyB1c2VkIGluIHRoZSB0ZXN0 IHNvdXJjZSwgYW5kIGV4dHJhY3RzCi0rIyB0aGUgYmFzZSBhcnJheSBuYW1lLiAgRm9yIGV4YW1w bGU6ICdhcnJheSAoMSwyKScgYmVjb21lcyAnYXJyYXknLgotK3Byb2MgYXJyYXlfc2xpY2VfdG9f dmFyIHsgc2xpY2Vfc3RyIH0gewotKyAgICByZWdleHAgIl4oPzpcXHMqXFwoKSooXFteKCBcdFxd KykiICRzbGljZV9zdHIgbWF0Y2h2YXIgdmFybmFtZQotKyAgICByZXR1cm4gJHZhcm5hbWUKLSB9 Ci0gCi0tZ2RiX2JyZWFrcG9pbnQgInNob3ciCi0tZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgIkZpbmFsIEJyZWFrcG9pbnQiXQotLQotLXNldCBhcnJheV9jb250ZW50cyBcCi0t ICAgIFtsaXN0IFwKLS0JICIgPSBcXChcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxc KSBcXCgxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMFxcKSBcXCgyMSwgMjIs IDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMFxcKSBcXCgzMSwgMzIsIDMzLCAzNCwgMzUs IDM2LCAzNywgMzgsIDM5LCA0MFxcKSBcXCg0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgs IDQ5LCA1MFxcKSBcXCg1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MFxcKSBc XCg2MSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MFxcKSBcXCg3MSwgNzIsIDcz LCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MFxcKSBcXCg4MSwgODIsIDgzLCA4NCwgODUsIDg2 LCA4NywgODgsIDg5LCA5MFxcKSBcXCg5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NywgOTgsIDk5 LCAxMDBcXClcXCkiIFwKLS0JICIgPSBcXChcXCgxLCAyLCAzLCA0LCA1XFwpIFxcKDExLCAxMiwg MTMsIDE0LCAxNVxcKSBcXCgyMSwgMjIsIDIzLCAyNCwgMjVcXCkgXFwoMzEsIDMyLCAzMywgMzQs IDM1XFwpIFxcKDQxLCA0MiwgNDMsIDQ0LCA0NVxcKVxcKSIgXAotLQkgIiA9IFxcKFxcKDEsIDMs IDUsIDcsIDlcXCkgXFwoMjEsIDIzLCAyNSwgMjcsIDI5XFwpIFxcKDQxLCA0MywgNDUsIDQ3LCA0 OVxcKSBcXCg2MSwgNjMsIDY1LCA2NywgNjlcXCkgXFwoODEsIDgzLCA4NSwgODcsIDg5XFwpXFwp IiBcCi0tCSAiID0gXFwoXFwoMSwgNCwgNywgMTBcXCkgXFwoMjEsIDI0LCAyNywgMzBcXCkgXFwo NDEsIDQ0LCA0NywgNTBcXCkgXFwoNjEsIDY0LCA2NywgNzBcXCkgXFwoODEsIDg0LCA4NywgOTBc XClcXCkiIFwKLS0JICIgPSBcXChcXCgxLCA1LCA5XFwpIFxcKDMxLCAzNSwgMzlcXCkgXFwoNjEs IDY1LCA2OVxcKSBcXCg5MSwgOTUsIDk5XFwpXFwpIiBcCi0tCSAiID0gXFwoXFwoLTI2LCAtMjUs IC0yNCwgLTIzLCAtMjIsIC0yMSwgLTIwLCAtMTksIC0xOCwgLTE3XFwpIFxcKC0xOSwgLTE4LCAt MTcsIC0xNiwgLTE1LCAtMTQsIC0xMywgLTEyLCAtMTEsIC0xMFxcKSBcXCgtMTIsIC0xMSwgLTEw LCAtOSwgLTgsIC03LCAtNiwgLTUsIC00LCAtM1xcKSBcXCgtNSwgLTQsIC0zLCAtMiwgLTEsIDAs IDEsIDIsIDMsIDRcXCkgXFwoMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXFwpIFxcKDks IDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMThcXCkgXFwoMTYsIDE3LCAxOCwgMTks IDIwLCAyMSwgMjIsIDIzLCAyNCwgMjVcXCkgXFwoMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjks IDMwLCAzMSwgMzJcXCkgXFwoMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzlc XCkgXFwoMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDZcXClcXCkiIFwKLS0J ICIgPSBcXChcXCgtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwgLTIxXFwpIFxcKC0xOSwgLTE4LCAt MTcsIC0xNiwgLTE1LCAtMTRcXCkgXFwoLTEyLCAtMTEsIC0xMCwgLTksIC04LCAtN1xcKVxcKSIg XAotLQkgIiA9IFxcKFxcKC0yNiwgLTI0LCAtMjIsIC0yMCwgLTE4XFwpIFxcKC01LCAtMywgLTEs IDEsIDNcXCkgXFwoMTYsIDE4LCAyMCwgMjIsIDI0XFwpIFxcKDM3LCAzOSwgNDEsIDQzLCA0NVxc KVxcKSIgXQotLQotLXNldCBtZXNzYWdlX3N0cmluZ3MgXAotLSAgICBbbGlzdCBcCi0tCSAiID0g J2FycmF5JyIgXAotLQkgIiA9ICdhcnJheSBcXCgxOjUsMTo1XFwpJyIgXAotLQkgIiA9ICdhcnJh eSBcXCgxOjEwOjIsMToxMDoyXFwpJyIgXAotLQkgIiA9ICdhcnJheSBcXCgxOjEwOjMsMToxMDoy XFwpJyIgXAotLQkgIiA9ICdhcnJheSBcXCgxOjEwOjUsMToxMDozXFwpJyIgXQotLQotLXNldCBp IDAKLS1mb3JlYWNoIHJlc3VsdCAkYXJyYXlfY29udGVudHMgbXNnICRtZXNzYWdlX3N0cmluZ3Mg ewotLSAgICBpbmNyIGkKLS0gICAgd2l0aF90ZXN0X3ByZWZpeCAidGVzdCAkaSIgewotLQlnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAic2hvdyIKLS0JZ2RiX3Rlc3QgInAgYXJyYXkiICRyZXN1 bHQKLS0JZ2RiX3Rlc3QgInAgbWVzc2FnZSIgIiRtc2ciCi0rcHJvYyBydW5fdGVzdCB7IHJlcGFj ayB9IHsKLSsgICAgZ2xvYmFsIGJpbmZpbGUgZ2RiX3Byb21wdAotKwotKyAgICBjbGVhbl9yZXN0 YXJ0ICR7YmluZmlsZX0KLSsKLSsgICAgaWYgIVtmb3J0cmFuX3J1bnRvX21haW5dIHsKLSsJdW50 ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKLSsJcmV0dXJuIC0xCi0gICAgIH0KLS19Ci0g Ci0tZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIEZpbmFsIEJyZWFrcG9p bnQiCi0rICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNs aWNlcyAkcmVwYWNrIgotKwotKyAgICAjIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJEaXNwbGF5IE1lc3NhZ2UgQnJlYWtwb2ludCJdCi0rICAgIGdkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IEVsZW1lbnQiXQotKyAgICBnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBTdHJpbmciXQotKyAgICBnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBBcnJheSBTbGljZSAxRCJdCi0rICAg IGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IEFycmF5IFNsaWNl IDJEIl0KLSsgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkRpc3BsYXkg QXJyYXkgU2xpY2UgM0QiXQotKyAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiRGlzcGxheSBBcnJheSBTbGljZSA0RCJdCi0rICAgIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsKLSsgICAgIyBXZSdyZSBnb2luZyB0 byBwcmludCBzb21lIHJlYXNvbmFibHkgbGFyZ2UgYXJyYXlzLgotKyAgICBnZGJfdGVzdF9ub19v dXRwdXQgInNldCBwcmludCBlbGVtZW50cyB1bmxpbWl0ZWQiCi0rCi0rICAgIHNldCBmb3VuZF9m aW5hbF9icmVha3BvaW50IGZhbHNlCi0rCi0rICAgICMgV2UgcGxhY2UgYSBsaW1pdCBvbiB0aGUg bnVtYmVyIG9mIHRlc3RzIHRoYXQgY2FuIGJlIHJ1biwganVzdCBpbgotKyAgICAjIGNhc2Ugc29t ZXRoaW5nIGdvZXMgd3JvbmcsIGFuZCBHREIgZ2V0cyBzdHVjayBpbiBhbiBsb29wIGhlcmUuCi0r ICAgIHNldCB0ZXN0X2NvdW50IDAKLSsgICAgd2hpbGUgeyAkdGVzdF9jb3VudCA8IDUwMCB9IHsK LSsJd2l0aF90ZXN0X3ByZWZpeCAidGVzdCAkdGVzdF9jb3VudCIgewotKwkgICAgaW5jciB0ZXN0 X2NvdW50Ci0rCi0rCSAgICBzZXQgZm91bmRfZmluYWxfYnJlYWtwb2ludCBmYWxzZQotKwkgICAg c2V0IGV4cGVjdGVkX3Jlc3VsdCAiIgotKwkgICAgc2V0IGZ1bmNfbmFtZSAiIgotKwkgICAgZ2Ri X3Rlc3RfbXVsdGlwbGUgImNvbnRpbnVlIiAiY29udGludWUiIHsKLSsJCS1yZSAiLipHREIgPSAo XFteXHJcblxdKylcclxuIiB7Ci0rCQkgICAgc2V0IGV4cGVjdGVkX3Jlc3VsdCAkZXhwZWN0X291 dCgxLHN0cmluZykKLSsJCSAgICBleHBfY29udGludWUKLSsJCX0KLSsJCS1yZSAiISBEaXNwbGF5 IEVsZW1lbnQiIHsKLSsJCSAgICBzZXQgZnVuY19uYW1lICJzaG93X2VsZW0iCi0rCQkgICAgZXhw X2NvbnRpbnVlCi0rCQl9Ci0rCQktcmUgIiEgRGlzcGxheSBTdHJpbmciIHsKLSsJCSAgICBzZXQg ZnVuY19uYW1lICJzaG93X3N0ciIKLSsJCSAgICBleHBfY29udGludWUKLSsJCX0KLSsJCS1yZSAi ISBEaXNwbGF5IEFycmF5IFNsaWNlICguKUQiIHsKLSsJCSAgICBzZXQgZnVuY19uYW1lICJzaG93 XyRleHBlY3Rfb3V0KDEsc3RyaW5nKWQiCi0rCQkgICAgZXhwX2NvbnRpbnVlCi0rCQl9Ci0rCQkt cmUgIiEgRmluYWwgQnJlYWtwb2ludCIgewotKwkJICAgIHNldCBmb3VuZF9maW5hbF9icmVha3Bv aW50IHRydWUKLSsJCSAgICBleHBfY29udGludWUKLSsJCX0KLSsJCS1yZSAiJGdkYl9wcm9tcHQg JCIgewotKwkJICAgICMgV2UncmUgZG9uZS4KLSsJCX0KLSsJICAgIH0KLSAKLS0jIE5leHQgdGVz dCB0aGF0IGFza2luZyBmb3IgYW4gYXJyYXkgd2l0aCBzdHJpZGUgYXQgdGhlIENMSSBnaXZlcyBh bgotLSMgZXJyb3IuCi0tY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotKwkgICAgaWYgKCRmb3Vu ZF9maW5hbF9icmVha3BvaW50KSB7Ci0rCQlicmVhawotKwkgICAgfQotIAotLWlmICFbZm9ydHJh bl9ydW50b19tYWluXSB0aGVuIHsKLS0gICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gbWFpbiIK LS0gICAgY29udGludWUKLSsJICAgICMgV2Ugd2FudCB0byB0YWtlIGEgbG9vayBhdCB0aGUgbGlu ZSBpbiB0aGUgcHJldmlvdXMgZnJhbWUgdGhhdAotKwkgICAgIyBjYWxsZWQgdGhlIGN1cnJlbnQg ZnVuY3Rpb24uICBJIGNvdWxkbid0IGZpbmQgYSBiZXR0ZXIgd2F5IG9mCi0rCSAgICAjIGRvaW5n IHRoaXMgdGhhbiAndXAnLCB3aGljaCB3aWxsIHByaW50IHRoZSBsaW5lLCB0aGVuICdkb3duJwot KwkgICAgIyBhZ2Fpbi4KLSsJICAgICMKLSsJICAgICMgSSBkb24ndCB3YW50IHRvIGZpbGwgdGhl IGxvZyB3aXRoIHBhc3NlcyBmb3IgdGhlc2UgdXAvZG93bgotKwkgICAgIyBjb21tYW5kcywgc28g d2UgZG9uJ3QgcmVwb3J0IGFueS4gIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIHRoZW4gd2UKLSsJ ICAgICMgc2hvdWxkIGdldCBhIGZhaWwgZnJvbSBnZGJfdGVzdF9tdWx0aXBsZS4KLSsJICAgIHNl dCBhcnJheV9zbGljZV9uYW1lICIiCi0rCSAgICBzZXQgdW5pcXVlX2lkICIiCi0rCSAgICBhcnJh eSB1bnNldCByZXBsYWNlbWVudF92YXJzCi0rCSAgICBhcnJheSBzZXQgcmVwbGFjZW1lbnRfdmFy cyB7fQotKwkgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInVwIiAidXAiIHsKLSsJCS1yZSAiXHJcblxb MC05XF0rXFsgXHRcXStjYWxsICR7ZnVuY19uYW1lfSBcXCgoXFteXHJcblxdKylcXClcclxuJGdk Yl9wcm9tcHQgJCIgewotKwkJICAgIHNldCBhcnJheV9zbGljZV9uYW1lICRleHBlY3Rfb3V0KDEs c3RyaW5nKQotKwkJfQotKwkJLXJlICJcclxuXFswLTlcXStcWyBcdFxdK2NhbGwgJHtmdW5jX25h bWV9IFxcKChcW15cclxuXF0rKVxcKVxbIFx0XF0rISBWQVJTPShcW14gXHRcclxuXF0rKVxyXG4k Z2RiX3Byb21wdCAkIiB7Ci0rCQkgICAgc2V0IGFycmF5X3NsaWNlX25hbWUgJGV4cGVjdF9vdXQo MSxzdHJpbmcpCi0rCQkgICAgc2V0IHVuaXF1ZV9pZCAkZXhwZWN0X291dCgyLHN0cmluZykKLSsJ CX0KLSsJICAgIH0KLSsJICAgIGlmIHskdW5pcXVlX2lkICE9ICIifSB7Ci0rCQlzZXQgc3RyICIi Ci0rCQlmb3JlYWNoIHYgW3NwbGl0ICR1bmlxdWVfaWQgLF0gewotKwkJICAgIHNldCB2YWwgW2dl dF9pbnRlZ2VyX3ZhbHVlb2YgIiR7dn0iICI/PyJcCi0rCQkJCSAiZ2V0IHZhcmlhYmxlICckdicg Zm9yICckYXJyYXlfc2xpY2VfbmFtZSciXQotKwkJICAgIHNldCByZXBsYWNlbWVudF92YXJzKCR2 KSAkdmFsCi0rCQkgICAgaWYgeyRzdHIgIT0gIiJ9IHsKLSsJCQlzZXQgc3RyICJTdHIsIgotKwkJ ICAgIH0KLSsJCSAgICBzZXQgc3RyICIkc3RyJHY9JHZhbCIKLSsJCX0KLSsJCXNldCB1bmlxdWVf aWQgIiAkc3RyIgotKwkgICAgfQotKwkgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImRvd24iICJkb3du IiB7Ci0rCQktcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCQkgICAgIyBEb24ndCBpc3N1ZSBh IHBhc3MgaGVyZS4KLSsJCX0KLSsJICAgIH0KLSsKLSsJICAgICMgQ2hlY2sgd2UgaGF2ZSBhbGwg dGhlIGluZm9ybWF0aW9uIHdlIG5lZWQgdG8gc3VjY2Vzc2Z1bGx5IHJ1biBvbmUKLSsJICAgICMg b2YgdGhlc2UgdGVzdHMuCi0rCSAgICBpZiB7ICRleHBlY3RlZF9yZXN1bHQgPT0gIiIgfSB7Ci0r CQlwZXJyb3IgImZhaWxlZCB0byBleHRyYWN0IGV4cGVjdGVkIHJlc3VsdHMiCi0rCQlyZXR1cm4g MAotKwkgICAgfQotKwkgICAgaWYgeyAkYXJyYXlfc2xpY2VfbmFtZSA9PSAiIiB9IHsKLSsJCXBl cnJvciAiZmFpbGVkIHRvIGV4dHJhY3QgYXJyYXkgc2xpY2UgbmFtZSIKLSsJCXJldHVybiAwCi0r CSAgICB9Ci0rCi0rCSAgICAjIENoZWNrIEdEQiBjYW4gY29ycmVjdGx5IHByaW50IHRoZSBhcnJh eSBzbGljZSB0aGF0IHdhcyBwYXNzZWQgaW50bwotKwkgICAgIyB0aGUgY3VycmVudCBmcmFtZS4K LSsJICAgIHNldCBwYXR0ZXJuIFtzdHJpbmdfdG9fcmVnZXhwICIgPSAkZXhwZWN0ZWRfcmVzdWx0 Il0KLSsJICAgIGdkYl90ZXN0ICJwIGFycmF5IiAiJHBhdHRlcm4iIFwKLSsJCSJjaGVjayB2YWx1 ZSBvZiAnJGFycmF5X3NsaWNlX25hbWUnJHVuaXF1ZV9pZCIKLSsKLSsJICAgICMgR2V0IHRoZSBz aXplIG9mIHRoZSBzbGljZS4KLSsJICAgIHNldCBzaXplX2luX3Nob3cgXAotKwkJW2dldF9pbnRl Z2VyX3ZhbHVlb2YgInNpemVvZiAoYXJyYXkpIiAic2hvd191bmtub3duIiBcCi0rCQkgICAgICJn ZXQgc2l6ZW9mICckYXJyYXlfc2xpY2VfbmFtZSckdW5pcXVlX2lkIGluIHNob3ciXQotKwkgICAg c2V0IGFkZHJfaW5fc2hvdyBcCi0rCQlbZ2V0X2hleGFkZWNpbWFsX3ZhbHVlb2YgIiZhcnJheSIg InNob3dfdW5rbm93biIgXAotKwkJICAgICAiZ2V0IGFkZHJlc3MgJyRhcnJheV9zbGljZV9uYW1l JyR1bmlxdWVfaWQgaW4gc2hvdyJdCi0rCi0rCSAgICAjIE5vdyBtb3ZlIGludG8gdGhlIHByZXZp b3VzIGZyYW1lLCBhbmQgc2VlIGlmIEdEQiBjYW4gZXh0cmFjdCB0aGUKLSsJICAgICMgYXJyYXkg c2xpY2UgZnJvbSB0aGUgb3JpZ2luYWwgcGFyZW50IG9iamVjdC4gIEFnYWluLCB1c2Ugb2YKLSsJ ICAgICMgZ2RiX3Rlc3RfbXVsdGlwbGUgdG8gYXZvaWQgZmlsbGluZyB0aGUgbG9ncyB3aXRoIHVu bmVjZXNzYXJ5Ci0rCSAgICAjIHBhc3Nlcy4KLSsJICAgIGdkYl90ZXN0X211bHRpcGxlICJ1cCIg InVwIiB7Ci0rCQktcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCQkgICAgIyBEbyBub3RoaW5n LgotKwkJfQotKwkgICAgfQotKwotKwkgICAgIyBQcmludCB0aGUgYXJyYXkgc2xpY2UsIHRoaXMg d2lsbCBmb3JjZSBHREIgdG8gbWFudWFsbHkgZXh0cmFjdCB0aGUKLSsJICAgICMgc2xpY2UgZnJv bSB0aGUgcGFyZW50IGFycmF5LgotKwkgICAgZ2RiX3Rlc3QgInAgJGFycmF5X3NsaWNlX25hbWUi ICIkcGF0dGVybiIgXAotKwkJImNoZWNrIGFycmF5IHNsaWNlICckYXJyYXlfc2xpY2VfbmFtZSck dW5pcXVlX2lkIGNhbiBiZSBleHRyYWN0ZWQiCi0rCi0rCSAgICAjIEdldCB0aGUgc2l6ZSBvZiB0 aGUgc2xpY2UgaW4gdGhlIGNhbGxpbmcgZnJhbWUuCi0rCSAgICBzZXQgc2l6ZV9pbl9wYXJlbnQg XAotKwkJW2dldF9pbnRlZ2VyX3ZhbHVlb2YgInNpemVvZiAoJGFycmF5X3NsaWNlX25hbWUpIiBc Ci0rCQkgICAgICJwYXJlbnRfdW5rbm93biIgXAotKwkJICAgICAiZ2V0IHNpemVvZiAnJGFycmF5 X3NsaWNlX25hbWUnJHVuaXF1ZV9pZCBpbiBwYXJlbnQiXQotKwotKwkgICAgIyBGaWd1cmUgb3V0 IHRoZSBzdGFydCBhbmQgZW5kIGFkZHJlc3NlcyBvZiB0aGUgZnVsbCBhcnJheSBpbiB0aGUKLSsJ ICAgICMgcGFyZW50IGZyYW1lLgotKwkgICAgc2V0IGZ1bGxfdmFyX25hbWUgW2FycmF5X3NsaWNl X3RvX3ZhciAkYXJyYXlfc2xpY2VfbmFtZV0KLSsJICAgIHNldCBzdGFydF9hZGRyIFtnZXRfaGV4 YWRlY2ltYWxfdmFsdWVvZiAiJiR7ZnVsbF92YXJfbmFtZX0iIFwKLSsJCQkJInN0YXJ0IHVua25v d24iXQotKwkgICAgc2V0IGVuZF9hZGRyIFtnZXRfaGV4YWRlY2ltYWxfdmFsdWVvZiBcCi0rCQkJ ICAgICAgIigmJHtmdWxsX3Zhcl9uYW1lfSkgKyBzaXplb2YgKCR7ZnVsbF92YXJfbmFtZX0pIiBc Ci0rCQkJICAgICAgImVuZCB1bmtub3duIl0KLSsKLSsJICAgICMgVGhlIEZvcnRyYW4gY29tcGls ZXIgY2FuIGNob29zZSB0byBlaXRoZXIgc2VuZCBhIGRlc2NyaXB0b3IgdGhhdAotKwkgICAgIyBk ZXNjcmliZXMgdGhlIGFycmF5IHNsaWNlIHRvIHRoZSBzdWJyb3V0aW5lLCBvciBpdCBjYW4gcmVw YWNrIHRoZQotKwkgICAgIyBzbGljZSBpbnRvIGFuIGFycmF5IHNlY3Rpb24gYW5kIHNlbmQgdGhh dC4KLSsJICAgICMKLSsJICAgICMgV2UgZmluZCB0aGUgYWRkcmVzcyByYW5nZSBvZiB0aGUgb3Jp Z2luYWwgYXJyYXkgaW4gdGhlIHBhcmVudCwKLSsJICAgICMgYW5kIHRoZSBhZGRyZXNzIG9mIHRo ZSBzbGljZSBpbiB0aGUgc2hvdyBmdW5jdGlvbiwgaWYgdGhlCi0rCSAgICAjIGFkZHJlc3Mgb2Yg dGhlIHNsaWNlIChmcm9tIHNob3cpIGlzIGluIHRoZSByYW5nZSBvZiB0aGUgb3JpZ2luYWwKLSsJ ICAgICMgYXJyYXkgdGhlbiByZXBhY2tpbmcgaGFzIG5vdCBvY2N1cnJlZCwgb3RoZXJ3aXNlLCB0 aGUgc2xpY2UgaXMKLSsJICAgICMgb3V0c2lkZSBvZiB0aGUgcGFyZW50LCBhbmQgcmVwYWNraW5n IG11c3QgaGF2ZSBvY2N1cnJlZC4KLSsJICAgICMKLSsJICAgICMgVGhlIGdvYWwgaGVyZSBpcyB0 byBjb21wYXJlIHRoZSBzaXplcyBvZiB0aGUgc2xpY2UgaW4gc2hvdyB3aXRoCi0rCSAgICAjIHRo ZSBzaXplIG9mIHRoZSBzbGljZSBleHRyYWN0ZWQgYnkgR0RCLiAgU28gd2UgY2FuIG9ubHkgY29t cGFyZQotKwkgICAgIyBzaXplcyB3aGVuIEdEQidzIHJlcGFja2luZyBzZXR0aW5nIG1hdGNoZXMg dGhlIHJlcGFja2luZwotKwkgICAgIyBiZWhhdmlvdXIgd2UgZ290IGZyb20gdGhlIGNvbXBpbGVy LgotKwkgICAgaWYgeyAoJGFkZHJfaW5fc2hvdyA8ICRzdGFydF9hZGRyIHx8ICRhZGRyX2luX3No b3cgPj0gJGVuZF9hZGRyKSBcCi0rCQkgPT0gKCRyZXBhY2sgPT0gIm9uIikgfSB7Ci0rCQlnZGJf YXNzZXJ0IHskc2l6ZV9pbl9zaG93ID09ICRzaXplX2luX3BhcmVudH0gXAotKwkJICAgICJjaGVj ayBzaXplcyBtYXRjaCIKLSsJICAgIH0gZWxzZWlmIHsgJHJlcGFjayA9PSAib2ZmIiB9IHsKLSsJ CSMgR0RCJ3MgcmVwYWNraW5nIGlzIG9mZiAoc28gc2xpY2VzIGFyZSBsZWZ0IHVucGFja2VkKSwg YnV0Ci0rCQkjIHRoZSBjb21waWxlciBkaWQgcGFjayB0aGlzIG9uZS4gIEFzIGEgcmVzdWx0IHdl IGNhbid0Ci0rCQkjIGNvbXBhcmUgdGhlIHNpemVzIGJldHdlZW4gdGhlIGNvbXBpbGVyJ3Mgc2xp Y2UgYW5kIEdEQidzCi0rCQkjIHNsaWNlLgotKwkJdmVyYm9zZSAtbG9nICJzbGljZSAnJGFycmF5 X3NsaWNlX25hbWUnIHdhcyByZXBhY2tlZCwgc2l6ZXMgY2FuJ3QgYmUgY29tcGFyZWQiCi0rCSAg ICB9IGVsc2UgewotKwkJIyBMaWtlIHRoZSBhYm92ZSwgYnV0IHRoZSByZXZlcnNlLCBHREIncyBy ZXBhY2tpbmcgaXMgb24sIGJ1dAotKwkJIyB0aGUgY29tcGlsZXIgZGlkbid0IHJlcGFjayB0aGlz IHNsaWNlLgotKwkJdmVyYm9zZSAtbG9nICJzbGljZSAnJGFycmF5X3NsaWNlX25hbWUnIHdhcyBu b3QgcmVwYWNrZWQsIHNpemVzIGNhbid0IGJlIGNvbXBhcmVkIgotKwkgICAgfQotKwotKwkgICAg IyBJZiB0aGUgYXJyYXkgbmFtZSB3ZSBqdXN0IHRlc3RlZCBpbmNsdWRlZCB2YXJpYWJsZSBuYW1l cywgdGhlbgotKwkgICAgIyB0ZXN0IGFnYWluIHdpdGggYWxsIHRoZSB2YXJpYWJsZXMgZXhwYW5k ZWQuCi0rCSAgICBpZiB7JHVuaXF1ZV9pZCAhPSAiIn0gewotKwkJZm9yZWFjaCB2IFthcnJheSBu YW1lcyByZXBsYWNlbWVudF92YXJzXSB7Ci0rCQkgICAgc2V0IHZhbCAkcmVwbGFjZW1lbnRfdmFy cygkdikKLSsJCSAgICBzZXQgYXJyYXlfc2xpY2VfbmFtZSBcCi0rCQkJW3JlZ3N1YiAiXFx5JHt2 fVxceSIgJGFycmF5X3NsaWNlX25hbWUgJHZhbF0KLSsJCX0KLSsJCWdkYl90ZXN0ICJwICRhcnJh eV9zbGljZV9uYW1lIiAiJHBhdHRlcm4iIFwKLSsJCSAgICAiY2hlY2sgYXJyYXkgc2xpY2UgJyRh cnJheV9zbGljZV9uYW1lJyR1bmlxdWVfaWQgY2FuIGJlIGV4dHJhY3RlZCwgd2l0aCB2YXJpYWJs ZXMgZXhwYW5kZWQiCi0rCSAgICB9Ci0rCX0KLSsgICAgfQotKwotKyAgICAjIEVuc3VyZSB3ZSBy ZWFjaGVkIHRoZSBmaW5hbCBicmVha3BvaW50LiAgSWYgbW9yZSB0ZXN0cyBoYXZlIGJlZW4gYWRk ZWQKLSsgICAgIyB0byB0aGUgdGVzdCBzY3JpcHQsIGFuZCB0aGlzIHN0YXJ0cyBmYWlsaW5nLCB0 aGVuIHRoZSBzYWZldHkgJ3doaWxlJwotKyAgICAjIGxvb3AgYWJvdmUgbWlnaHQgbmVlZCB0byBi ZSBpbmNyZWFzZWQuCi0rICAgIGdkYl9hc3NlcnQgeyRmb3VuZF9maW5hbF9icmVha3BvaW50fSAi cmFuIGFsbCB0ZXN0cyIKLSB9Ci0gCi0tZ2RiX2JyZWFrcG9pbnQgInNob3ciCi0tZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgInNob3ciCi0tZ2RiX3Rlc3QgInVwIiAiLioiCi0tZ2RiX3Rlc3Qg InAgYXJyYXkgKDE6MTA6MiwgMToxMDoyKSIgXAotLSAgICAiRm9ydHJhbiBhcnJheSBzdHJpZGVz IGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCIgXAotLSAgICAidXNpbmcgYXJyYXkgc3RyaWRl IGdpdmVzIGFuIGVycm9yIgotK2ZvcmVhY2hfd2l0aF9wcmVmaXggcmVwYWNrIHsgb24gb2ZmIH0g ewotKyAgICBydW5fdGVzdCAkcmVwYWNrCi0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLmY5MAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1z bGljZXMuZjkwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5m OTAKLUBAIC0xMyw1OCArMTMsMzY4IEBACi0gISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICEgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0g Ci0tc3Vicm91dGluZSBzaG93IChtZXNzYWdlLCBhcnJheSkKLS0gIGNoYXJhY3RlciAobGVuPSop IDo6IG1lc3NhZ2UKLStzdWJyb3V0aW5lIHNob3dfZWxlbSAoYXJyYXkpCi0rICBpbnRlZ2VyIDo6 IGFycmF5Ci0rCi0rICBwcmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVjdGVkIEdEQiBPdXRw dXQ6IgotKyAgcHJpbnQgKiwgIiIKLSsKLSsgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0i bm8iKSAiR0RCID0gIgotKyAgd3JpdGUoKiwgZm10PSIoSTApIiwgYWR2YW5jZT0ibm8iKSBhcnJh eQotKyAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJ5ZXMiKSAiIgotKwotKyAgcHJpbnQg KiwgIiIJISBEaXNwbGF5IEVsZW1lbnQKLStlbmQgc3Vicm91dGluZSBzaG93X2VsZW0KLSsKLStz dWJyb3V0aW5lIHNob3dfc3RyIChhcnJheSkKLSsgIGNoYXJhY3RlciAobGVuPSopIDo6IGFycmF5 Ci0rCi0rICBwcmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVjdGVkIEdEQiBPdXRwdXQ6Igot KyAgcHJpbnQgKiwgIiIKLSsgIHdyaXRlICgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIkdE QiA9ICciCi0rICB3cml0ZSAoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpIGFycmF5Ci0rICB3 cml0ZSAoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJ5ZXMiKSAiJyIKLSsKLSsgIHByaW50ICosICIi CSEgRGlzcGxheSBTdHJpbmcKLStlbmQgc3Vicm91dGluZSBzaG93X3N0cgotKwotK3N1YnJvdXRp bmUgc2hvd18xZCAoYXJyYXkpCi0rICBpbnRlZ2VyLCBkaW1lbnNpb24gKDopIDo6IGFycmF5Ci0r Ci0rICBwcmludCAqLCAiQXJyYXkgQ29udGVudHM6IgotKyAgcHJpbnQgKiwgIiIKLSsKLSsgIGRv IGk9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEpLCAxCi0rICAgICB3cml0ZSgq LCBmbXQ9IihpNCkiLCBhZHZhbmNlPSJubyIpIGFycmF5IChpKQotKyAgZW5kIGRvCi0rCi0rICBw cmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVjdGVkIEdEQiBPdXRwdXQ6IgotKyAgcHJpbnQg KiwgIiIKLSsKLSsgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ibm8iKSAiR0RCID0gKCIK LSsgIGRvIGk9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEpLCAxCi0rICAgICBp ZiAoaSA+IExCT1VORCAoYXJyYXksIDEpKSB0aGVuCi0rICAgICAgICB3cml0ZSgqLCBmbXQ9IihB KSIsIGFkdmFuY2U9Im5vIikgIiwgIgotKyAgICAgZW5kIGlmCi0rICAgICB3cml0ZSgqLCBmbXQ9 IihJMCkiLCBhZHZhbmNlPSJubyIpIGFycmF5IChpKQotKyAgZW5kIGRvCi0rICB3cml0ZSgqLCBm bXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIikiCi0rCi0rICBwcmludCAqLCAiIgkhIERpc3BsYXkg QXJyYXkgU2xpY2UgMUQKLStlbmQgc3Vicm91dGluZSBzaG93XzFkCi0rCi0rc3Vicm91dGluZSBz aG93XzJkIChhcnJheSkKLSAgIGludGVnZXIsIGRpbWVuc2lvbiAoOiw6KSA6OiBhcnJheQotIAot LSAgcHJpbnQgKiwgbWVzc2FnZQotKyAgcHJpbnQgKiwgIkFycmF5IENvbnRlbnRzOiIKLSsgIHBy aW50ICosICIiCi0rCi0gICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFycmF5LCAy KSwgMQotICAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEK LSAgICAgICAgIHdyaXRlKCosIGZtdD0iKGk0KSIsIGFkdmFuY2U9Im5vIikgYXJyYXkgKGosIGkp Ci0gICAgICBlbmQgZG8KLSAgICAgIHByaW50ICosICIiCi0tIGVuZCBkbwotLSBwcmludCAqLCBh cnJheQotLSBwcmludCAqLCAiIgotKyAgZW5kIGRvCi0gCi0tZW5kIHN1YnJvdXRpbmUgc2hvdwot KyAgcHJpbnQgKiwgIiIKLSsgIHByaW50ICosICJFeHBlY3RlZCBHREIgT3V0cHV0OiIKLSsgIHBy aW50ICosICIiCi0gCi0tcHJvZ3JhbSB0ZXN0Ci0rICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFu Y2U9Im5vIikgIkdEQiA9ICgiCi0rICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFy cmF5LCAyKSwgMQotKyAgICAgaWYgKGkgPiBMQk9VTkQgKGFycmF5LCAyKSkgdGhlbgotKyAgICAg ICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIgIgotKyAgICAgZW5kIGlmCi0r ICAgICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIigiCi0rICAgICBkbyBqPUxC T1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAxKSwgMQotKyAgICAgICAgaWYgKGogPiBM Qk9VTkQgKGFycmF5LCAxKSkgdGhlbgotKyAgICAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBh ZHZhbmNlPSJubyIpICIsICIKLSsgICAgICAgIGVuZCBpZgotKyAgICAgICAgd3JpdGUoKiwgZm10 PSIoSTApIiwgYWR2YW5jZT0ibm8iKSBhcnJheSAoaiwgaSkKLSsgICAgIGVuZCBkbwotKyAgICAg d3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIpIgotKyAgZW5kIGRvCi0rICB3cml0 ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9InllcyIpICIpIgotKwotKyAgcHJpbnQgKiwgIiIJISBE aXNwbGF5IEFycmF5IFNsaWNlIDJECi0rZW5kIHN1YnJvdXRpbmUgc2hvd18yZAotKwotK3N1YnJv dXRpbmUgc2hvd18zZCAoYXJyYXkpCi0rICBpbnRlZ2VyLCBkaW1lbnNpb24gKDosOiw6KSA6OiBh cnJheQotKwotKyAgcHJpbnQgKiwgIiIKLSsgIHByaW50ICosICJFeHBlY3RlZCBHREIgT3V0cHV0 OiIKLSsgIHByaW50ICosICIiCi0rCi0rICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5v IikgIkdEQiA9ICgiCi0rICBkbyBpPUxCT1VORCAoYXJyYXksIDMpLCBVQk9VTkQgKGFycmF5LCAz KSwgMQotKyAgICAgaWYgKGkgPiBMQk9VTkQgKGFycmF5LCAzKSkgdGhlbgotKyAgICAgICAgd3Jp dGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIgIgotKyAgICAgZW5kIGlmCi0rICAgICB3 cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIigiCi0rICAgICBkbyBqPUxCT1VORCAo YXJyYXksIDIpLCBVQk9VTkQgKGFycmF5LCAyKSwgMQotKyAgICAgICAgaWYgKGogPiBMQk9VTkQg KGFycmF5LCAyKSkgdGhlbgotKyAgICAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNl PSJubyIpICIgIgotKyAgICAgICAgZW5kIGlmCi0rICAgICAgICB3cml0ZSgqLCBmbXQ9IihBKSIs IGFkdmFuY2U9Im5vIikgIigiCi0rICAgICAgICBkbyBrPUxCT1VORCAoYXJyYXksIDEpLCBVQk9V TkQgKGFycmF5LCAxKSwgMQotKyAgICAgICAgICAgaWYgKGsgPiBMQk9VTkQgKGFycmF5LCAxKSkg dGhlbgotKyAgICAgICAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIs ICIKLSsgICAgICAgICAgIGVuZCBpZgotKyAgICAgICAgICAgd3JpdGUoKiwgZm10PSIoSTApIiwg YWR2YW5jZT0ibm8iKSBhcnJheSAoaywgaiwgaSkKLSsgICAgICAgIGVuZCBkbwotKyAgICAgICAg d3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIpIgotKyAgICAgZW5kIGRvCi0rICAg ICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIikiCi0rICBlbmQgZG8KLSsgIHdy aXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ieWVzIikgIikiCi0rCi0rICBwcmludCAqLCAiIgkh IERpc3BsYXkgQXJyYXkgU2xpY2UgM0QKLStlbmQgc3Vicm91dGluZSBzaG93XzNkCi0rCi0rc3Vi cm91dGluZSBzaG93XzRkIChhcnJheSkKLSsgIGludGVnZXIsIGRpbWVuc2lvbiAoOiw6LDosOikg OjogYXJyYXkKLSsKLSsgIHByaW50ICosICIiCi0rICBwcmludCAqLCAiRXhwZWN0ZWQgR0RCIE91 dHB1dDoiCi0rICBwcmludCAqLCAiIgotKwotKyAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNl PSJubyIpICJHREIgPSAoIgotKyAgZG8gaT1MQk9VTkQgKGFycmF5LCA0KSwgVUJPVU5EIChhcnJh eSwgNCksIDEKLSsgICAgIGlmIChpID4gTEJPVU5EIChhcnJheSwgNCkpIHRoZW4KLSsgICAgICAg IHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ibm8iKSAiICIKLSsgICAgIGVuZCBpZgotKyAg ICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIoIgotKyAgICAgZG8gaj1MQk9V TkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJheSwgMyksIDEKLSsgICAgICAgIGlmIChqID4gTEJP VU5EIChhcnJheSwgMykpIHRoZW4KLSsgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2 YW5jZT0ibm8iKSAiICIKLSsgICAgICAgIGVuZCBpZgotKyAgICAgICAgd3JpdGUoKiwgZm10PSIo QSkiLCBhZHZhbmNlPSJubyIpICIoIgotKwotKyAgICAgICAgZG8gaz1MQk9VTkQgKGFycmF5LCAy KSwgVUJPVU5EIChhcnJheSwgMiksIDEKLSsgICAgICAgICAgIGlmIChrID4gTEJPVU5EIChhcnJh eSwgMikpIHRoZW4KLSsgICAgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0i bm8iKSAiICIKLSsgICAgICAgICAgIGVuZCBpZgotKyAgICAgICAgICAgd3JpdGUoKiwgZm10PSIo QSkiLCBhZHZhbmNlPSJubyIpICIoIgotKyAgICAgICAgICAgZG8gbD1MQk9VTkQgKGFycmF5LCAx KSwgVUJPVU5EIChhcnJheSwgMSksIDEKLSsgICAgICAgICAgICAgIGlmIChsID4gTEJPVU5EIChh cnJheSwgMSkpIHRoZW4KLSsgICAgICAgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2 YW5jZT0ibm8iKSAiLCAiCi0rICAgICAgICAgICAgICBlbmQgaWYKLSsgICAgICAgICAgICAgIHdy aXRlKCosIGZtdD0iKEkwKSIsIGFkdmFuY2U9Im5vIikgYXJyYXkgKGwsIGssIGosIGkpCi0rICAg ICAgICAgICBlbmQgZG8KLSsgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0i bm8iKSAiKSIKLSsgICAgICAgIGVuZCBkbwotKyAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBh ZHZhbmNlPSJubyIpICIpIgotKyAgICAgZW5kIGRvCi0rICAgICB3cml0ZSgqLCBmbXQ9IihBKSIs IGFkdmFuY2U9Im5vIikgIikiCi0rICBlbmQgZG8KLSsgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2 YW5jZT0ieWVzIikgIikiCi0rCi0rICBwcmludCAqLCAiIgkhIERpc3BsYXkgQXJyYXkgU2xpY2Ug NEQKLStlbmQgc3Vicm91dGluZSBzaG93XzRkCi0gCi0rIQotKyEgU3RhcnQgb2YgdGVzdCBwcm9n cmFtLgotKyEKLStwcm9ncmFtIHRlc3QKLSAgIGludGVyZmFjZQotLSAgICAgc3Vicm91dGluZSBz aG93IChtZXNzYWdlLCBhcnJheSkKLS0gICAgICAgY2hhcmFjdGVyIChsZW49KikgOjogbWVzc2Fn ZQotKyAgICAgc3Vicm91dGluZSBzaG93X3N0ciAoYXJyYXkpCi0rICAgICAgIGNoYXJhY3RlciAo bGVuPSopIDo6IGFycmF5Ci0rICAgICBlbmQgc3Vicm91dGluZSBzaG93X3N0cgotKwotKyAgICAg c3Vicm91dGluZSBzaG93XzFkIChhcnJheSkKLSsgICAgICAgaW50ZWdlciwgZGltZW5zaW9uICg6 KSA6OiBhcnJheQotKyAgICAgZW5kIHN1YnJvdXRpbmUgc2hvd18xZAotKwotKyAgICAgc3Vicm91 dGluZSBzaG93XzJkIChhcnJheSkKLSAgICAgICAgaW50ZWdlciwgZGltZW5zaW9uKDosOikgOjog YXJyYXkKLS0gICAgIGVuZCBzdWJyb3V0aW5lIHNob3cKLSsgICAgIGVuZCBzdWJyb3V0aW5lIHNo b3dfMmQKLSsKLSsgICAgIHN1YnJvdXRpbmUgc2hvd18zZCAoYXJyYXkpCi0rICAgICAgIGludGVn ZXIsIGRpbWVuc2lvbig6LDosOikgOjogYXJyYXkKLSsgICAgIGVuZCBzdWJyb3V0aW5lIHNob3df M2QKLSsKLSsgICAgIHN1YnJvdXRpbmUgc2hvd180ZCAoYXJyYXkpCi0rICAgICAgIGludGVnZXIs IGRpbWVuc2lvbig6LDosOiw6KSA6OiBhcnJheQotKyAgICAgZW5kIHN1YnJvdXRpbmUgc2hvd180 ZAotICAgZW5kIGludGVyZmFjZQotIAotKyAgISBEZWNsYXJlIHZhcmlhYmxlcyB1c2VkIGluIHRo aXMgdGVzdC4KLSsgIGludGVnZXIsIGRpbWVuc2lvbiAoLTEwOi0xLC0xMDotMikgOjogbmVnX2Fy cmF5Ci0gICBpbnRlZ2VyLCBkaW1lbnNpb24gKDE6MTAsMToxMCkgOjogYXJyYXkKLSAgIGludGVn ZXIsIGFsbG9jYXRhYmxlIDo6IG90aGVyICg6LCA6KQotKyAgY2hhcmFjdGVyIChsZW49MjYpIDo6 IHN0cl8xID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotKyAgaW50ZWdlciwgZGltZW5z aW9uICgtMjoyLC0yOjIsLTI6MikgOjogYXJyYXkzZAotKyAgaW50ZWdlciwgZGltZW5zaW9uICgt MzozLDc6MTAsLTM6MywtMTA6LTcpIDo6IGFycmF5NGQKLSsgIGludGVnZXIsIGRpbWVuc2lvbiAo MTA6MjApIDo6IGFycmF5MWQKLSsgIGludGVnZXIsIGRpbWVuc2lvbig6LDopLCBwb2ludGVyIDo6 IHBvaW50ZXIyZCA9PiBudWxsKCkKLSsgIGludGVnZXIsIGRpbWVuc2lvbigtMTo5LC0xOjkpLCB0 YXJnZXQgOjogdGFycmF5Ci0gCi0rICAhIEFsbG9jYXRlIG9yIGFzc29jaWF0ZSBhbnkgdmFyaWFi bGVzIGFzIG5lZWRlZC4KLSAgIGFsbG9jYXRlIChvdGhlciAoLTU6NCwgLTI6NykpCi0rICBwb2lu dGVyMmQgPT4gdGFycmF5Ci0gCi0tICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFy cmF5LCAyKSwgMQotLSAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwg MSksIDEKLS0gICAgICAgIGFycmF5IChqLGkpID0gKChpIC0gMSkgKiBVQk9VTkQgKGFycmF5LCAy KSkgKyBqCi0tICAgICBlbmQgZG8KLS0gIGVuZCBkbwotKyAgISBGaWxsIGFycmF5cyB3aXRoIGNv bnRlbnRzIHJlYWR5IGZvciB0ZXN0aW5nLgotKyAgY2FsbCBmaWxsX2FycmF5XzFkIChhcnJheTFk KQotKwotKyAgY2FsbCBmaWxsX2FycmF5XzJkIChuZWdfYXJyYXkpCi0rICBjYWxsIGZpbGxfYXJy YXlfMmQgKGFycmF5KQotKyAgY2FsbCBmaWxsX2FycmF5XzJkIChvdGhlcikKLSsgIGNhbGwgZmls bF9hcnJheV8yZCAodGFycmF5KQotKwotKyAgY2FsbCBmaWxsX2FycmF5XzNkIChhcnJheTNkKQot KyAgY2FsbCBmaWxsX2FycmF5XzRkIChhcnJheTRkKQotKwotKyAgISBUaGUgdGVzdHMuICBFYWNo IGNhbGwgdG8gYSBzaG93XyogZnVuY3Rpb24gbXVzdCBoYXZlIGEgdW5pcXVlIHNldAotKyAgISBv ZiBhcmd1bWVudHMgYXMgR0RCIHVzZXMgdGhlIGFyZ3VtZW50cyBhcmUgcGFydCBvZiB0aGUgdGVz dCBuYW1lCi0rICAhIHN0cmluZywgc28gZHVwbGljYXRlIGFyZ3VtZW50cyB3aWxsIHJlc3VsdCBp biBkdXBsaWNhdGUgdGVzdAotKyAgISBuYW1lcy4KLSsgICEKLSsgICEgSWYgYSBzaG93XyogbGlu ZSBlbmRzIHdpdGggVkFSUz0uLi4gd2hlcmUgJy4uLicgaXMgYSBjb21tYQotKyAgISBzZXBhcmF0 ZWQgbGlzdCBvZiB2YXJpYWJsZSBuYW1lcywgdGhlc2UgdmFyaWFibGVzIGFyZSBhc3N1bWVkIHRv Ci0rICAhIGJlIHBhcnQgb2YgdGhlIGNhbGwgbGluZSwgYW5kIHdpbGwgYmUgZXhwYW5kZWQgYnkg dGhlIHRlc3Qgc2NyaXB0LAotKyAgISBmb3IgZXhhbXBsZToKLSsgICEKLSsgICEgICAgIGRvIHg9 MSw5LDEKLSsgICEgICAgICAgZG8geT14LDEwLDEKLSsgICEgICAgICAgICBjYWxsIHNob3dfMWQg KHNvbWVfYXJyYXkgKHgseSkpCSEgVkFSUz14LHkKLSsgICEgICAgICAgZW5kIGRvCi0rICAhICAg ICBlbmQgZG8KLSsgICEKLSsgICEgSW4gdGhpcyBleGFtcGxlIHRoZSB0ZXN0IHNjcmlwdCB3aWxs IGF1dG9tYXRpY2FsbHkgZXhwYW5kICd4JyBhbmQKLSsgICEgJ3knIGluIG9yZGVyIHRvIGJldHRl ciB0ZXN0IGRpZmZlcmVudCBhc3BlY3RzIG9mIEdEQi4gIERvIHRha2UKLSsgICEgY2FyZSwgdGhl IGV4cGFuc2lvbiBpcyBub3QgdmVyeSAic21hcnQiLCBzbyB0cnkgdG8gYXZvaWQgY2xhc2hpbmcK LSsgICEgd2l0aCBvdGhlciB0ZXh0IG9uIHRoZSBsaW5lLCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwg YXZvaWQgdmFyaWFibGVzCi0rICAhIG5hbWVkICdzb21lJyBvciAnYXJyYXknLCBhcyB0aGVzZSB3 aWxsIGxpa2VseSBjbGFzaCB3aXRoCi0rICAhICdzb21lX2FycmF5Jy4KLSsgIGNhbGwgc2hvd19z dHIgKHN0cl8xKQotKyAgY2FsbCBzaG93X3N0ciAoc3RyXzEgKDE6MjApKQotKyAgY2FsbCBzaG93 X3N0ciAoc3RyXzEgKDEwOjIwKSkKLSAKLS0gIGRvIGk9TEJPVU5EIChvdGhlciwgMiksIFVCT1VO RCAob3RoZXIsIDIpLCAxCi0tICAgICBkbyBqPUxCT1VORCAob3RoZXIsIDEpLCBVQk9VTkQgKG90 aGVyLCAxKSwgMQotLSAgICAgICAgb3RoZXIgKGosaSkgPSAoKGkgLSAxKSAqIFVCT1VORCAob3Ro ZXIsIDIpKSArIGoKLSsgIGNhbGwgc2hvd19lbGVtIChhcnJheTFkICgxMSkpCi0rICBjYWxsIHNo b3dfZWxlbSAocG9pbnRlcjJkICgyLDMpKQotKwotKyAgY2FsbCBzaG93XzFkIChhcnJheTFkKQot KyAgY2FsbCBzaG93XzFkIChhcnJheTFkICgxMzoxNykpCi0rICBjYWxsIHNob3dfMWQgKGFycmF5 MWQgKDE3OjEzOi0xKSkKLSsgIGNhbGwgc2hvd18xZCAoYXJyYXkgKDE6NSwxKSkKLSsgIGNhbGwg c2hvd18xZCAoYXJyYXk0ZCAoMSw3LDMsOikpCi0rICBjYWxsIHNob3dfMWQgKHBvaW50ZXIyZCAo LTE6MywgMikpCi0rICBjYWxsIHNob3dfMWQgKHBvaW50ZXIyZCAoLTEsIDI6NCkpCi0rCi0rICAh IEVuY2xvc2luZyB0aGUgYXJyYXkgc2xpY2UgYXJndW1lbnQgaW4gKC4uLikgY2F1c2VzcyBnZm9y dHJhbiB0bwotKyAgISByZXBhY2sgdGhlIGFycmF5LgotKyAgY2FsbCBzaG93XzFkICgoYXJyYXkg KDE6NSwxKSkpCi0rCi0rICBjYWxsIHNob3dfMmQgKHBvaW50ZXIyZCkKLSsgIGNhbGwgc2hvd18y ZCAoYXJyYXkpCi0rICBjYWxsIHNob3dfMmQgKGFycmF5ICgxOjUsMTo1KSkKLSsgIGRvIGk9MSwx MCwyCi0rICAgICBkbyBqPTEsMTAsMwotKyAgICAgICAgY2FsbCBzaG93XzJkIChhcnJheSAoMTox MDppLDE6MTA6aikpCSEgVkFSUz1pLGoKLSsgICAgICAgIGNhbGwgc2hvd18yZCAoYXJyYXkgKDEw OjE6LWksMToxMDpqKSkJISBWQVJTPWksagotKyAgICAgICAgY2FsbCBzaG93XzJkIChhcnJheSAo MTA6MTotaSwxMDoxOi1qKSkJISBWQVJTPWksagotKyAgICAgICAgY2FsbCBzaG93XzJkIChhcnJh eSAoMToxMDppLDEwOjE6LWopKQkhIFZBUlM9aSxqCi0gICAgICBlbmQgZG8KLSAgIGVuZCBkbwot KyAgY2FsbCBzaG93XzJkIChhcnJheSAoNjoyOi0xLDM6OSkpCi0rICBjYWxsIHNob3dfMmQgKGFy cmF5ICgxOjEwOjIsIDE6MTA6MikpCi0rICBjYWxsIHNob3dfMmQgKG90aGVyKQotKyAgY2FsbCBz aG93XzJkIChvdGhlciAoLTU6MCwgLTI6MCkpCi0rICBjYWxsIHNob3dfMmQgKG90aGVyICgtNTo0 OjIsIC0yOjc6MykpCi0rICBjYWxsIHNob3dfMmQgKG5lZ19hcnJheSkKLSsgIGNhbGwgc2hvd18y ZCAobmVnX2FycmF5ICgtMTA6LTMsLTg6LTQ6MikpCi0rCi0rICAhIEVuY2xvc2luZyB0aGUgYXJy YXkgc2xpY2UgYXJndW1lbnQgaW4gKC4uLikgY2F1c2VzcyBnZm9ydHJhbiB0bwotKyAgISByZXBh Y2sgdGhlIGFycmF5LgotKyAgY2FsbCBzaG93XzJkICgoYXJyYXkgKDE6MTA6MywgMToxMDoyKSkp Ci0rICBjYWxsIHNob3dfMmQgKChuZWdfYXJyYXkgKC0xMDotMywtODotNDoyKSkpCi0gCi0tICBj YWxsIHNob3cgKCJhcnJheSIsIGFycmF5KQotLSAgY2FsbCBzaG93ICgiYXJyYXkgKDE6NSwxOjUp IiwgYXJyYXkgKDE6NSwxOjUpKQotLSAgY2FsbCBzaG93ICgiYXJyYXkgKDE6MTA6MiwxOjEwOjIp IiwgYXJyYXkgKDE6MTA6MiwxOjEwOjIpKQotLSAgY2FsbCBzaG93ICgiYXJyYXkgKDE6MTA6Mywx OjEwOjIpIiwgYXJyYXkgKDE6MTA6MywxOjEwOjIpKQotLSAgY2FsbCBzaG93ICgiYXJyYXkgKDE6 MTA6NSwxOjEwOjMpIiwgYXJyYXkgKDE6MTA6NCwxOjEwOjMpKQotKyAgY2FsbCBzaG93XzNkIChh cnJheTNkKQotKyAgY2FsbCBzaG93XzNkIChhcnJheTNkKC0xOjEsLTE6MSwtMToxKSkKLSsgIGNh bGwgc2hvd18zZCAoYXJyYXkzZCgxOi0xOi0xLDE6LTE6LTEsMTotMTotMSkpCi0gCi0tICBjYWxs IHNob3cgKCJvdGhlciIsIG90aGVyKQotLSAgY2FsbCBzaG93ICgib3RoZXIgKC01OjAsIC0yOjAp Iiwgb3RoZXIgKC01OjAsIC0yOjApKQotLSAgY2FsbCBzaG93ICgib3RoZXIgKC01OjQ6MiwgLTI6 NzozKSIsIG90aGVyICgtNTo0OjIsIC0yOjc6MykpCi0rICAhIEVuY2xvc2luZyB0aGUgYXJyYXkg c2xpY2UgYXJndW1lbnQgaW4gKC4uLikgY2F1c2VzcyBnZm9ydHJhbiB0bwotKyAgISByZXBhY2sg dGhlIGFycmF5LgotKyAgY2FsbCBzaG93XzNkICgoYXJyYXkzZCgxOi0xOi0xLDE6LTE6LTEsMTot MTotMSkpKQotIAotKyAgY2FsbCBzaG93XzRkIChhcnJheTRkKQotKyAgY2FsbCBzaG93XzRkIChh cnJheTRkICgtMzowLDEwOjc6LTEsMDozLC03Oi0xMDotMSkpCi0rICBjYWxsIHNob3dfNGQgKGFy cmF5NGQgKDM6MDotMSwgMTA6NzotMSwgOiwgLTc6LTEwOi0xKSkKLSsKLSsgICEgRW5jbG9zaW5n IHRoZSBhcnJheSBzbGljZSBhcmd1bWVudCBpbiAoLi4uKSBjYXVzZXNzIGdmb3J0cmFuIHRvCi0r ICAhIHJlcGFjayB0aGUgYXJyYXkuCi0rICBjYWxsIHNob3dfNGQgKChhcnJheTRkICgzOi0yOi0y LCAxMDo3Oi0yLCA6LCAtNzotMTA6LTEpKSkKLSsKLSsgICEgQWxsIGRvbmUuICBEZWFsbG9jYXRl LgotICAgZGVhbGxvY2F0ZSAob3RoZXIpCi0rCi0rICAhIEdEQiBjYXRjaGVzIHRoaXMgZmluYWwg YnJlYWtwb2ludCB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoZSB0ZXN0LgotICAgcHJpbnQgKiwg IiIgISBGaW5hbCBCcmVha3BvaW50LgotKwotK2NvbnRhaW5zCi0rCi0rICAhIEZpbGwgYSAxRCBh cnJheSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIgaW4gZWFjaCBlbGVtZW50LgotKyAg c3Vicm91dGluZSBmaWxsX2FycmF5XzFkIChhcnJheSkKLSsgICAgaW50ZWdlciwgZGltZW5zaW9u ICg6KSA6OiBhcnJheQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsKLSsgICAgY291bnRlciA9 IDEKLSsgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEKLSsg ICAgICAgYXJyYXkgKGopID0gY291bnRlcgotKyAgICAgICBjb3VudGVyID0gY291bnRlciArIDEK LSsgICAgZW5kIGRvCi0rICBlbmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzFkCi0rCi0rICAhIEZp bGwgYSAyRCBhcnJheSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIgaW4gZWFjaCBlbGVt ZW50LgotKyAgc3Vicm91dGluZSBmaWxsX2FycmF5XzJkIChhcnJheSkKLSsgICAgaW50ZWdlciwg ZGltZW5zaW9uICg6LDopIDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291bnRlcgotKwotKyAg ICBjb3VudGVyID0gMQotKyAgICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFycmF5 LCAyKSwgMQotKyAgICAgICBkbyBqPUxCT1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAx KSwgMQotKyAgICAgICAgICBhcnJheSAoaixpKSA9IGNvdW50ZXIKLSsgICAgICAgICAgY291bnRl ciA9IGNvdW50ZXIgKyAxCi0rICAgICAgIGVuZCBkbwotKyAgICBlbmQgZG8KLSsgIGVuZCBzdWJy b3V0aW5lIGZpbGxfYXJyYXlfMmQKLSsKLSsgICEgRmlsbCBhIDNEIGFycmF5IHdpdGggYSB1bmlx dWUgcG9zaXRpdmUgaW50ZWdlciBpbiBlYWNoIGVsZW1lbnQuCi0rICBzdWJyb3V0aW5lIGZpbGxf YXJyYXlfM2QgKGFycmF5KQotKyAgICBpbnRlZ2VyLCBkaW1lbnNpb24gKDosOiw6KSA6OiBhcnJh eQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsKLSsgICAgY291bnRlciA9IDEKLSsgICAgZG8g aT1MQk9VTkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJheSwgMyksIDEKLSsgICAgICAgZG8gaj1M Qk9VTkQgKGFycmF5LCAyKSwgVUJPVU5EIChhcnJheSwgMiksIDEKLSsgICAgICAgICAgZG8gaz1M Qk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEKLSsgICAgICAgICAgICAgYXJy YXkgKGssIGosaSkgPSBjb3VudGVyCi0rICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyICsg MQotKyAgICAgICAgICBlbmQgZG8KLSsgICAgICAgZW5kIGRvCi0rICAgIGVuZCBkbwotKyAgZW5k IHN1YnJvdXRpbmUgZmlsbF9hcnJheV8zZAotKwotKyAgISBGaWxsIGEgNEQgYXJyYXkgd2l0aCBh IHVuaXF1ZSBwb3NpdGl2ZSBpbnRlZ2VyIGluIGVhY2ggZWxlbWVudC4KLSsgIHN1YnJvdXRpbmUg ZmlsbF9hcnJheV80ZCAoYXJyYXkpCi0rICAgIGludGVnZXIsIGRpbWVuc2lvbiAoOiw6LDosOikg OjogYXJyYXkKLSsgICAgaW50ZWdlciA6OiBjb3VudGVyCi0rCi0rICAgIGNvdW50ZXIgPSAxCi0r ICAgIGRvIGk9TEJPVU5EIChhcnJheSwgNCksIFVCT1VORCAoYXJyYXksIDQpLCAxCi0rICAgICAg IGRvIGo9TEJPVU5EIChhcnJheSwgMyksIFVCT1VORCAoYXJyYXksIDMpLCAxCi0rICAgICAgICAg IGRvIGs9TEJPVU5EIChhcnJheSwgMiksIFVCT1VORCAoYXJyYXksIDIpLCAxCi0rICAgICAgICAg ICAgIGRvIGw9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEpLCAxCi0rICAgICAg ICAgICAgICAgIGFycmF5IChsLCBrLCBqLGkpID0gY291bnRlcgotKyAgICAgICAgICAgICAgICBj b3VudGVyID0gY291bnRlciArIDEKLSsgICAgICAgICAgICAgZW5kIGRvCi0rICAgICAgICAgIGVu ZCBkbwotKyAgICAgICBlbmQgZG8KLSsgICAgZW5kIGRvCi0rICAgIHByaW50ICosICIiCi0rICBl bmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzRkCi0gZW5kIHByb2dyYW0gdGVzdAotZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zaXplb2YuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zaXplb2YuZXhwCi1AQCAtNDQsNyArNDQsNyBAQCBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmxhMS1hbGxvY2F0ZWQiCi0gZ2RiX3Rlc3QgInByaW50IHNpemVvZih2bGExKSIgIiA9IDQw MDAiICJwcmludCBzaXplb2YgYWxsb2NhdGVkIHZsYTEiCi0gZ2RiX3Rlc3QgInByaW50IHNpemVv Zih2bGExKDMsMiwxKSkiICI0IiBcCi0gICAgICJwcmludCBzaXplb2YgZWxlbWVudCBmcm9tIGFs bG9jYXRlZCB2bGExIgotLWdkYl90ZXN0ICJwcmludCBzaXplb2YodmxhMSgzOjQsMiwxKSkiICI4 MDAiIFwKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHZsYTEoMzo0LDIsMSkpIiAiOCIgXAotICAg ICAicHJpbnQgc2l6ZW9mIHNsaWNlZCB2bGExIgotIAotICMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMg aW4gdW5kZWZpbmVkIHBvaW50ZXIgdG8gVkxBIChkYW5nbGluZykKLUBAIC02MSw3ICs2MSw3IEBA IGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWFzc29jaWF0ZWQiCi0gZ2RiX3Rlc3Qg InByaW50IHNpemVvZihwdmxhKSIgIiA9IDQwMDAiICJwcmludCBzaXplb2YgYXNzb2NpYXRlZCBw dmxhIgotIGdkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSgzLDIsMSkpIiAiNCIgXAotICAgICAi cHJpbnQgc2l6ZW9mIGVsZW1lbnQgZnJvbSBhc3NvY2lhdGVkIHB2bGEiCi0tZ2RiX3Rlc3QgInBy aW50IHNpemVvZihwdmxhKDM6NCwyLDEpKSIgIjgwMCIgInByaW50IHNpemVvZiBzbGljZWQgcHZs YSIKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEoMzo0LDIsMSkpIiAiOCIgInByaW50IHNp emVvZiBzbGljZWQgcHZsYSIKLSAKLSBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAidmxhMS1uZWctYm91bmRzLXYxIl0KLSBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxh MS1uZWctYm91bmRzLXYxIgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLWFy cmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctZm9ydHJh bi1hcnJheS1zdHJpZGVzLWluLWV4cHJlc3Npb25zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBjMjNlYzM0Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFu LWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx OTMgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMjQg TWF5IDIwMjEgMjI6MzA6MzIgLTA3MDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFu LWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2tw b3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGFkZHMgc3VwcG9ydAotOzsgZm9yIGFy cmF5IHN0cmlkZXMgaW4gZXhwcmVzc2lvbnMuCi0KLWdkYi9mb3J0cmFuOiBhZGQgc3VwcG9ydCBm b3IgcGFyc2luZyBhcnJheSBzdHJpZGVzIGluIGV4cHJlc3Npb25zCi0KLVdpdGggdGhpcyBjb21t aXQgR0RCIG5vdyB1bmRlcnN0YW5kcyB0aGUgc3ludGF4IG9mIEZvcnRyYW4gYXJyYXkKLXN0cmlk ZXMsIGEgdXNlciBjYW4gdHlwZSBhbiBleHByZXNzaW9uIGluY2x1ZGluZyBhbiBhcnJheSBzdHJp ZGUsIGJ1dAotdGhleSB3aWxsIG9ubHkgZ2V0IGFuIGVycm9yIGluZm9ybWluZyB0aGVtIHRoYXQg YXJyYXkgc3RyaWRlcyBhcmUgbm90Ci1zdXBwb3J0ZWQuCi0KLVRoaXMgYWxvbmUgaXMgYW4gaW1w cm92ZW1lbnQgb24gd2hhdCB3ZSBoYWQgYmVmb3JlIGluIEdEQiwgYmV0dGVyIHRvCi1naXZlIHRo ZSB1c2VyIGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgYSBwYXJ0aWN1bGFyIGZlYXR1cmUgaXMgbm90 Ci1zdXBwb3J0ZWQgdGhhbiB0byBqdXN0IGNsYWltIGEgc3ludGF4IGVycm9yLgotCi1CZWZvcmU6 Ci0KLSAgKGdkYikgcCBhcnJheSAoMToxMDoyLCAyOjEwOjIpCi0gIEEgc3ludGF4IGVycm9yIGlu IGV4cHJlc3Npb24sIG5lYXIgYDoyLCAyOjEwOjIpJy4KLQotTm93OgotCi0gIChnZGIpIHAgYXJy YXkgKDE6MTA6MiwgMjoxMDoyKQotICBGb3J0cmFuIGFycmF5IHN0cmlkZXMgYXJlIG5vdCBjdXJy ZW50bHkgc3VwcG9ydGVkCi0KLUxhdGVyIGNvbW1pdHMgd2lsbCBhbGxvdyBHREIgdG8gaGFuZGxl IGFycmF5IHN0cmlkZXMgY29ycmVjdGx5LgotCi1nZGIvQ2hhbmdlTG9nOgotCi0JKiBleHBwcmlu dC5jIChkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkKTogUHJpbnQgUkFOR0VfSEFTX1NUUklERS4K LQkqIGV4cHJlc3Npb24uaCAoZW51bSByYW5nZV90eXBlKTogQWRkIFJBTkdFX0hBU19TVFJJREUu Ci0JKiBmLWV4cC55IChhcmdsaXN0KTogQWxsb3cgZm9yIGEgc2VyaWVzIG9mIHN1YnJhbmdlcy4K LQkoc3VicmFuZ2UpOiBBZGQgY2FzZXMgZm9yIHN1YnJhbmdlcyB3aXRoIHN0cmlkZXMuCi0JKiBm LWxhbmcuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2F0Y2ggdXNlIG9mIGFycmF5IHN0cmlkZXMg YW5kCi0JdGhyb3cgYW4gZXJyb3IuCi0JKiBwYXJzZS5jIChvcGVyYXRvcl9sZW5ndGhfc3RhbmRh cmQpOiBIYW5kbGUgUkFOR0VfSEFTX1NUUklERS4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 Ci0KLQkqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHA6IEFkZCBhIG5ldyB0ZXN0LgotCi1k aWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYwotLS0tIGEvZ2RiL2V4 cHByaW50LmMKLSsrKyBiL2dkYi9leHBwcmludC5jCi1AQCAtMTExOCwxMiArMTExOCwxNiBAQCBk dW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAlmcHV0 c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKLSAJaWYgKCEocmFuZ2VfZmxhZyAmIFJBTkdFX0hJ R0hfQk9VTkRfREVGQVVMVCkpCi0gCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAiLCBzdHJlYW0pOwot KwlpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0hBU19TVFJJREUpCi0rCSAgZnB1dHNfZmlsdGVyZWQg KCI6RVhQIiwgc3RyZWFtKTsKLSAJZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKLSAKLSAJ aWYgKCEocmFuZ2VfZmxhZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSAJICBlbHQgPSBk dW1wX3N1YmV4cCAoZXhwLCBzdHJlYW0sIGVsdCk7Ci0gCWlmICghKHJhbmdlX2ZsYWcgJiBSQU5H RV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVh bSwgZWx0KTsKLSsJaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9IQVNfU1RSSURFKQotKwkgIGVsdCA9 IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgICB9Ci0gICAgICAgYnJlYWs7 Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKLS0t LSBhL2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNzaW9uLmgKLUBAIC0xOTksNiAr MTk5LDkgQEAgZW51bSByYW5nZV9mbGFnIDogdW5zaWduZWQKLSAKLSAgIC8qIFRoZSBoaWdoIGJv dW5kIG9mIHRoaXMgcmFuZ2UgaXMgZXhjbHVzaXZlLiAgKi8KLSAgIFJBTkdFX0hJR0hfQk9VTkRf RVhDTFVTSVZFID0gMSA8PCAyLAotKwotKyAgLyogVGhlIHJhbmdlIGhhcyBhIHN0cmlkZS4gICov Ci0rICBSQU5HRV9IQVNfU1RSSURFID0gMSA8PCAzLAotIH07Ci0gCi0gREVGX0VOVU1fRkxBR1Nf VFlQRSAoZW51bSByYW5nZV9mbGFnLCByYW5nZV9mbGFncyk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2Yt ZXhwLnkgYi9nZGIvZi1leHAueQotLS0tIGEvZ2RiL2YtZXhwLnkKLSsrKyBiL2dkYi9mLWV4cC55 Ci1AQCAtMjg0LDYgKzI4NCwxMCBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMg QUJPVkVfQ09NTUEKLSAJCQl7IHBzdGF0ZS0+YXJnbGlzdF9sZW4rKzsgfQotIAk7Ci0gCi0rYXJn bGlzdAk6CWFyZ2xpc3QgJywnIHN1YnJhbmdlICAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHBz dGF0ZS0+YXJnbGlzdF9sZW4rKzsgfQotKwk7Ci0rCi0gLyogVGhlcmUgYXJlIGZvdXIgc29ydHMg b2Ygc3VicmFuZ2UgdHlwZXMgaW4gRjkwLiAgKi8KLSAKLSBzdWJyYW5nZToJZXhwICc6JyBleHAJ JXByZWMgQUJPVkVfQ09NTUEKLUBAIC0zMTQsNiArMzE4LDM4IEBAIHN1YnJhbmdlOgknOicJJXBy ZWMgQUJPVkVfQ09NTUEKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JB TkdFKTsgfQotIAk7Ci0gCi0rLyogQW5kIGVhY2ggb2YgdGhlIGZvdXIgc3VicmFuZ2UgdHlwZXMg Y2FuIGFsc28gaGF2ZSBhIHN0cmlkZS4gICovCi0rc3VicmFuZ2U6CWV4cCAnOicgZXhwICc6JyBl eHAJJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUs IE9QX1JBTkdFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBSQU5HRV9I QVNfU1RSSURFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsgfQotKwk7Ci0rCi0rc3VicmFuZ2U6CWV4cCAnOicgJzonIGV4cAklcHJlYyBBQk9WRV9DT01N QQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotKwkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0rCQkJCQkJIChSQU5HRV9ISUdIX0JPVU5E X0RFRkFVTFQKLSsJCQkJCQkgIHwgUkFOR0VfSEFTX1NUUklERSkpOwotKwkJCSAgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9Ci0rCTsKLSsKLStzdWJyYW5nZToJJzon IGV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0 ZSwKLSsJCQkJCQkgKFJBTkdFX0xPV19CT1VORF9ERUZBVUxUCi0rCQkJCQkJICB8IFJBTkdFX0hB U19TVFJJREUpKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsgfQotKwk7Ci0rCi0rc3VicmFuZ2U6CSc6JyAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0r CQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0 ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwKLSsJCQkJCQkgKFJBTkdFX0xPV19CT1VORF9ERUZB VUxUCi0rCQkJCQkJICB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVAotKwkJCQkJCSAgfCBSQU5H RV9IQVNfU1RSSURFKSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9S QU5HRSk7IH0KLSsJOwotKwotIGNvbXBsZXhudW06ICAgICBleHAgJywnIGV4cCAKLSAgICAgICAg ICAgICAgICAgCXsgfSAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICA7Ci1kaWZm IC0tZ2l0IGEvZ2RiL2YtbGFuZy5jIGIvZ2RiL2YtbGFuZy5jCi0tLS0gYS9nZGIvZi1sYW5nLmMK LSsrKyBiL2dkYi9mLWxhbmcuYwotQEAgLTEyNCw3ICsxMjQsNyBAQCB2YWx1ZV9mOTBfc3ViYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCi0gCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSB7Ci0gICBpbnQgcGMgPSAoKnBvcykgKyAx OwotLSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICBMT05HRVNUIGxvd19ib3Vu ZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotICAgc3RydWN0IHR5cGUgKnJhbmdlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgpKTsKLSAgIGVudW0gcmFuZ2Vf ZmxhZyByYW5nZV9mbGFnCi0gICAgID0gKGVudW0gcmFuZ2VfZmxhZykgbG9uZ2VzdF90b19pbnQg KGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLUBAIC0xNDEsNiArMTQxLDE0IEBAIHZhbHVlX2Y5 MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwKLSAgIGVsc2UKLSAgICAgaGlnaF9ib3Vu ZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5v c2lkZSkpOwotIAotKyAgaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9IQVNfU1RSSURFKQotKyAgICBz dHJpZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9z LCBub3NpZGUpKTsKLSsgIGVsc2UKLSsgICAgc3RyaWRlID0gMTsKLSsKLSsgIGlmIChzdHJpZGUg IT0gMSkKLSsgICAgZXJyb3IgKF8oIkZvcnRyYW4gYXJyYXkgc3RyaWRlcyBhcmUgbm90IGN1cnJl bnRseSBzdXBwb3J0ZWQiKSk7Ci0rCi0gICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3df Ym91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEv Z2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotLS0tIGEvZ2RiL3BhcnNlLmMKLSsrKyBiL2dkYi9w YXJzZS5jCi1AQCAtOTI0LDYgKzkyNCw4IEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29u c3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCi0gICAgICAgLyogQXNzdW1l IHRoZSByYW5nZSBoYXMgMiBhcmd1bWVudHMgKGxvdyBib3VuZCBhbmQgaGlnaCBib3VuZCksIHRo ZW4KLSAJIHJlZHVjZSB0aGUgYXJndW1lbnQgY291bnQgaWYgYW55IGJvdW5kcyBhcmUgc2V0IHRv IGRlZmF1bHQuICAqLwotICAgICAgIGFyZ3MgPSAyOwotKyAgICAgIGlmIChyYW5nZV9mbGFnICYg UkFOR0VfSEFTX1NUUklERSkKLSsJKythcmdzOwotICAgICAgIGlmIChyYW5nZV9mbGFnICYgUkFO R0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0gCS0tYXJnczsKLSAgICAgICBpZiAocmFuZ2VfZmxhZyAm IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Fy cmF5LXNsaWNlcy5leHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xp Y2VzLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhw Ci1AQCAtNjYsMyArNjYsMTkgQEAgZm9yZWFjaCByZXN1bHQgJGFycmF5X2NvbnRlbnRzIG1zZyAk bWVzc2FnZV9zdHJpbmdzIHsKLSB9Ci0gCi0gZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNv bnRpbnVlIHRvIEZpbmFsIEJyZWFrcG9pbnQiCi0rCi0rIyBOZXh0IHRlc3QgdGhhdCBhc2tpbmcg Zm9yIGFuIGFycmF5IHdpdGggc3RyaWRlIGF0IHRoZSBDTEkgZ2l2ZXMgYW4KLSsjIGVycm9yLgot K2NsZWFuX3Jlc3RhcnQgJHt0ZXN0ZmlsZX0KLSsKLStpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0g dGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIG1haW4iCi0rICAgIGNvbnRpbnVl Ci0rfQotKwotK2dkYl9icmVha3BvaW50ICJzaG93IgotK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJzaG93IgotK2dkYl90ZXN0ICJ1cCIgIi4qIgotK2dkYl90ZXN0ICJwIGFycmF5ICgxOjEw OjIsIDE6MTA6MikiIFwKLSsgICAgIkZvcnRyYW4gYXJyYXkgc3RyaWRlcyBhcmUgbm90IGN1cnJl bnRseSBzdXBwb3J0ZWQiIFwKLSsgICAgInVzaW5nIGFycmF5IHN0cmlkZSBnaXZlcyBhbiBlcnJv ciIKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVhbi11cC1hcnJheS1l eHByZXNzaW9uLWV2YWx1YXRpb24ucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVh bi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDdiNjIwMjIuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRy YW4tY2xlYW4tdXAtYXJyYXktZXhwcmVzc2lvbi1ldmFsdWF0aW9uLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjA5ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRl OiBNb24sIDI0IE1heSAyMDIxIDE2OjUzOjIyIC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NjQx NjctZm9ydHJhbi1jbGVhbi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRpb24ucGF0Y2gKLQot OzsgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGNsZWFu cyB1cAotOzsgYXJyYXkvc3RyaW5nIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KLQotZ2RiL2ZvcnRy YW46IENsZWFuIHVwIGFycmF5L3N0cmluZyBleHByZXNzaW9uIGV2YWx1YXRpb24KLQotVGhpcyBj b21taXQgaXMgYSByZWZhY3RvciBvZiBwYXJ0IG9mIHRoZSBGb3J0cmFuIGFycmF5IGFuZCBzdHJp bmcKLWhhbmRsaW5nIGNvZGUuCi0KLVRoZSBjdXJyZW50IGNvZGUgaXMgc3BsaXQgaW50byB0d28g YmxvY2tzLCBsaW5rZWQsIHdlaXJkbHksIHdpdGggYQotZ290by4gIEFmdGVyIHRoaXMgY29tbWl0 IGFsbCB0aGUgY29kZSBpcyBtb3ZlZCB0byBpdHMgb3duIGZ1bmN0aW9uLAotYW5kIGFycmF5cyBh bmQgc3RyaW5ncyBhcmUgbm93IGhhbmRsZWQgdXNpbmcgdGhlIHNhbWUgY29kZTsgdGhpcyB3aWxs Ci1iZSB1c2VmdWwgbGF0ZXIgd2hlbiBJIHdhbnQgdG8gYWRkIGFycmF5IHN0cmlkZSBzdXBwb3J0 IHdoZXJlIHN0cmluZ3MKLXdpbGwgd2FudCB0byBiZSB0cmVhdGVkIGp1c3QgbGlrZSBhcnJheXMs IGJ1dCBpcyBhIGdvb2QgY2xlYW4gdXAgZXZlbgotd2l0aG91dCB0aGUgYXJyYXkgc3RyaWRlIHdv cmssIHdoaWNoIGlzIHdoeSBJJ20gbWVyZ2luZyBpdCBub3cuCi0KLUZvciBub3cgdGhlIG5ldyBm dW5jdGlvbiBpcyBhZGRlZCBhcyBhIHN0YXRpYyB3aXRoaW4gZXZhbC5jLCBldmVuCi10aG91Z2gg dGhlIGZ1bmN0aW9uIGlzIEZvcnRyYW4gb25seS4gIEEgZm9sbG93aW5nIGNvbW1pdCB3aWxsIHJl bW92ZQotc29tZSBvZiB0aGUgRm9ydHJhbiBzcGVjaWZpYyBjb2RlIGZyb20gZXZhbC5jIGludG8g b25lIG9mIHRoZSBGb3J0cmFuCi1zcGVjaWZpYyBmaWxlcywgaW5jbHVkaW5nIHRoaXMgbmV3IGZ1 bmN0aW9uLgotCi1UaGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIg dGhpcyBjb21taXQuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGV2YWwuYyAoZm9ydHJhbl92YWx1 ZV9zdWJhcnJheSk6IE5ldyBmdW5jdGlvbiwgY29udGVudCBpcyB0YWtlbgotCWZyb20uLi4KLQko ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkKTogLi4uaGVyZSwgaW4gdHdvIHBsYWNlcy4gIE5vdyBh cnJheXMKLQlhbmQgc3RyaW5ncyBib3RoIGNhbGwgdGhlIG5ldyBmdW5jdGlvbi4KLQkoY2FsY19m NzdfYXJyYXlfZGltcyk6IEFkZCBoZWFkZXIgY29tbWVudCwgaGFuZGxlIHN0cmluZ3MuCi0KLWRp ZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotLS0tIGEvZ2RiL2V2YWwuYwotKysr IGIvZ2RiL2V2YWwuYwotQEAgLTEyNjAsNiArMTI2MCw2NyBAQCBpc19pbnRlZ3JhbF9vcl9pbnRl Z3JhbF9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICp0eXBlKQotIAkgICYmIGlzX2ludGVncmFsX3R5 cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0gfQotIAotKy8qIENhbGxlZCBmcm9tIGV2 YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCB0byBwZXJmb3JtIGFycmF5IGluZGV4aW5nLCBhbmQKLSsg ICBzdWItcmFuZ2UgZXh0cmFjdGlvbiwgZm9yIEZvcnRyYW4uICBBcyB3ZWxsIGFzIGFycmF5cyB0 aGlzIGZ1bmN0aW9uCi0rICAgYWxzbyBoYW5kbGVzIHN0cmluZ3MgYXMgdGhleSBjYW4gYmUgdHJl YXRlZCBsaWtlIGFycmF5cyBvZiBjaGFyYWN0ZXJzLgotKyAgIEFSUkFZIGlzIHRoZSBhcnJheSBv ciBzdHJpbmcgYmVpbmcgYWNjZXNzZWQuICBFWFAsIFBPUywgYW5kIE5PU0lERSBhcmUKLSsgICBh cyBmb3IgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkLCBhbmQgTkFSR1MgaXMgdGhlIG51bWJlciBv ZiBhcmd1bWVudHMKLSsgICBpbiB0aGlzIGFjY2VzcyAoZS5nLiAnYXJyYXkgKDEsMiwzKScgd291 bGQgYmUgTkFSR1MgMykuICAqLwotKwotK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotK2ZvcnRyYW5f dmFsdWVfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpl eHAsCi0rCQkJaW50ICpwb3MsIGludCBuYXJncywgZW51bSBub3NpZGUgbm9zaWRlKQotK3sKLSsg IGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQotKyAgICByZXR1cm4gdmFs dWVfZjkwX3N1YmFycmF5IChhcnJheSwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0rCi0rICBpZiAobm9z aWRlID09IEVWQUxfU0tJUCkKLSsgICAgewotKyAgICAgIHNraXBfdW5kZXRlcm1pbmVkX2FyZ2xp c3QgKG5hcmdzLCBleHAsIHBvcywgbm9zaWRlKTsKLSsgICAgICAvKiBSZXR1cm4gdGhlIGR1bW15 IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgdHlwZS4gICovCi0rICAgICAgcmV0dXJuIGFycmF5Owot KyAgICB9Ci0rCi0rICBMT05HRVNUIHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsK LSsgIGludCBuZGltZW5zaW9ucyA9IDE7Ci0rICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rCi0rICBpZiAobmFyZ3MgPiBNQVhfRk9SVFJB Tl9ESU1TKQotKyAgICBlcnJvciAoXygiVG9vIG1hbnkgc3Vic2NyaXB0cyBmb3IgRjc3ICglZCBN YXgpIiksIE1BWF9GT1JUUkFOX0RJTVMpOwotKwotKyAgbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19h cnJheV9kaW1zICh0eXBlKTsKLSsKLSsgIGlmIChuYXJncyAhPSBuZGltZW5zaW9ucykKLSsgICAg ZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwotKwotKyAgZ2RiX2Fzc2Vy dCAobmFyZ3MgPiAwKTsKLSsKLSsgIC8qIE5vdyB0aGF0IHdlIGtub3cgd2UgaGF2ZSBhIGxlZ2Fs IGFycmF5IHN1YnNjcmlwdCBleHByZXNzaW9uIGxldCB1cwotKyAgICAgYWN0dWFsbHkgZmluZCBv dXQgd2hlcmUgdGhpcyBlbGVtZW50IGV4aXN0cyBpbiB0aGUgYXJyYXkuICAqLwotKwotKyAgLyog VGFrZSBhcnJheSBpbmRpY2VzIGxlZnQgdG8gcmlnaHQuICAqLwotKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuYXJnczsgaSsrKQotKyAgICB7Ci0rICAgICAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3Jp cHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGluIEY3Ny4gICovCi0rICAgICAgdmFsdWUg KmFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7 Ci0rCi0rICAgICAgLyogRmlsbCBpbiB0aGUgc3Vic2NyaXB0IGFycmF5LiAgKi8KLSsgICAgICBz dWJzY3JpcHRfYXJyYXlbaV0gPSB2YWx1ZV9hc19sb25nIChhcmcyKTsKLSsgICAgfQotKwotKyAg LyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdodCB0byBsZWZ0LiAgKi8K LSsgIGZvciAoaW50IGkgPSBuYXJnczsgaSA+IDA7IGktLSkKLSsgICAgewotKyAgICAgIHN0cnVj dCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsK LSsgICAgICBMT05HRVNUIGluZGV4ID0gc3Vic2NyaXB0X2FycmF5W2kgLSAxXTsKLSsKLSsgICAg ICBhcnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJyYXksIGluZGV4LAotKwkJCQkJ Zjc3X2dldF9sb3dlcmJvdW5kIChhcnJheV90eXBlKSk7Ci0rICAgIH0KLSsKLSsgIHJldHVybiBh cnJheTsKLSt9Ci0rCi0gc3RydWN0IHZhbHVlICoKLSBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAJCQkgIHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCAqcG9zLAotQEAgLTE5NTMsMzMgKzIwMTQsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAgICAgICBzd2l0Y2ggKGNvZGUpCi0gCXsK LSAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUg PT0gT1BfUkFOR0UpCi0tCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAs IHBvcywgbm9zaWRlKTsKLS0JICBlbHNlCi0tCSAgICB7Ci0tCSAgICAgIGlmIChub3NpZGUgPT0g RVZBTF9TS0lQKQotLQkJewotLQkJICBza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChuYXJncywg ZXhwLCBwb3MsIG5vc2lkZSk7Ci0tCQkgIC8qIFJldHVybiB0aGUgZHVtbXkgdmFsdWUgd2l0aCB0 aGUgY29ycmVjdCB0eXBlLiAgKi8KLS0JCSAgcmV0dXJuIGFyZzE7Ci0tCQl9Ci0tCSAgICAgIGdv dG8gbXVsdGlfZjc3X3N1YnNjcmlwdDsKLS0JICAgIH0KLS0KLSAJY2FzZSBUWVBFX0NPREVfU1RS SU5HOgotLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQotLQkgICAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0tCSAg ZWxzZQotLQkgICAgewotLQkgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLS0JCXsKLS0J CSAgc2tpcF91bmRldGVybWluZWRfYXJnbGlzdCAobmFyZ3MsIGV4cCwgcG9zLCBub3NpZGUpOwot LQkJICAvKiBSZXR1cm4gdGhlIGR1bW15IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgdHlwZS4gICov Ci0tCQkgIHJldHVybiBhcmcxOwotLQkJfQotLQkgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQkgICAgICByZXR1cm4gdmFsdWVf c3Vic2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7Ci0tCSAgICB9Ci0rCSAgcmV0 dXJuIGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRl KTsKLSAKLSAJY2FzZSBUWVBFX0NPREVfUFRSOgotIAljYXNlIFRZUEVfQ09ERV9GVU5DOgotQEAg LTI0MDAsNDkgKzI0MzYsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBl ICpleHBlY3RfdHlwZSwKLSAJfQotICAgICAgIHJldHVybiAoYXJnMSk7Ci0gCi0tICAgIG11bHRp X2Y3N19zdWJzY3JpcHQ6Ci0tICAgICAgewotLQlMT05HRVNUIHN1YnNjcmlwdF9hcnJheVtNQVhf Rk9SVFJBTl9ESU1TXTsKLS0JaW50IG5kaW1lbnNpb25zID0gMSwgaTsKLS0Jc3RydWN0IHZhbHVl ICphcnJheSA9IGFyZzE7Ci0tCi0tCWlmIChuYXJncyA+IE1BWF9GT1JUUkFOX0RJTVMpCi0tCSAg ZXJyb3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBNQVhfRk9S VFJBTl9ESU1TKTsKLS0KLS0JbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBl KTsKLS0KLS0JaWYgKG5hcmdzICE9IG5kaW1lbnNpb25zKQotLQkgIGVycm9yIChfKCJXcm9uZyBu dW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKLS0KLS0JZ2RiX2Fzc2VydCAobmFyZ3MgPiAwKTsKLS0K LS0JLyogTm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIGEgbGVnYWwgYXJyYXkgc3Vic2NyaXB0IGV4 cHJlc3Npb24gCi0tCSAgIGxldCB1cyBhY3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlzIGVsZW1l bnQgZXhpc3RzIGluIHRoZSBhcnJheS4gICovCi0tCi0tCS8qIFRha2UgYXJyYXkgaW5kaWNlcyBs ZWZ0IHRvIHJpZ2h0LiAgKi8KLS0JZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCi0tCSAgewot LQkgICAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRl Z2VyIGluIEY3Ny4gICovCi0tCSAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNp b24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQotLQkgICAgLyogRmlsbCBpbiB0aGUgc3Vic2NyaXB0 IGFycmF5LiAgKi8KLS0KLS0JICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZhbHVlX2FzX2xvbmcg KGFyZzIpOwotLQkgIH0KLS0KLS0JLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdl ZCByaWdodCB0byBsZWZ0LiAgKi8KLS0JZm9yIChpID0gbmFyZ3M7IGkgPiAwOyBpLS0pCi0tCSAg ewotLQkgICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcnJheSkpOwotLQkgICAgTE9OR0VTVCBpbmRleCA9IHN1YnNjcmlwdF9hcnJheVtpIC0g MV07Ci0tCi0tCSAgICBhcnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJyYXksIGlu ZGV4LAotLQkJCQkJICAgICAgZjc3X2dldF9sb3dlcmJvdW5kIChhcnJheV90eXBlKSk7Ci0tCSAg fQotLQotLQlyZXR1cm4gYXJyYXk7Ci0tICAgICAgfQotLQotICAgICBjYXNlIEJJTk9QX0xPR0lD QUxfQU5EOgotICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9z LCBub3NpZGUpOwotICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotQEAgLTMzNTQsMTIg KzMzNDcsMTcgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0aCkKLSAg IHJldHVybiBleHByLT5lbHRzWzFdLnR5cGU7Ci0gfQotIAotKy8qIFJldHVybiB0aGUgbnVtYmVy IG9mIGRpbWVuc2lvbnMgZm9yIGEgRm9ydHJhbiBhcnJheSBvciBzdHJpbmcuICAqLwotKwotIGlu dAotIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90eXBlKQotIHsKLSAg IGludCBuZGltZW4gPSAxOwotICAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwotIAotKyAgaWYgKChh cnJheV90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAgICByZXR1cm4gMTsK LSsKLSAgIGlmICgoYXJyYXlfdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVfQVJSQVkpKQotICAg ICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7 Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tZml4LXR5cGUtZm9ybWF0 LW1pc21hdGNoLWluLWYtbGFuZy5jLnBhdGNoIGIvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tZml4 LXR5cGUtZm9ybWF0LW1pc21hdGNoLWluLWYtbGFuZy5jLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAyY2RiODI4Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTk2NDE2Ny1mb3J0 cmFuLWZpeC10eXBlLWZvcm1hdC1taXNtYXRjaC1pbi1mLWxhbmcuYy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEyOCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0 ZTogVHVlLCAyNSBNYXkgMjAyMSAxNzozNDo1NyAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTY0 MTY3LWZvcnRyYW4tZml4LXR5cGUtZm9ybWF0LW1pc21hdGNoLWluLWYtbGFuZy5jLnBhdGNoCi0K LTs7IFtmb3J0cmFuXSBCYWNrcG9ydCBTaW1vbiBNYXJjaGkncyBjb21taXQgd2hpY2ggZml4ZXMg YSAzMi1iaXQgYnVpbGQKLTs7IHByb2JsZW0gaW4gZ2RiL2YtbGFuZy5jLgotCi1nZGI6IGZpeCBm b3JtYXQgc3RyaW5nIHdhcm5pbmdzIGluIGYtbGFuZy5jCi0KLUkgZ2V0IGEgYnVuY2ggb2YgdGhl c2Ugd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgZm9yIGkzODYgKDMyLWJpdCk6Ci0KLSAgICAgIENY WCAgICBmLWxhbmcubwotICAgIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9mLWxh bmcuYzogSW4gZnVuY3Rpb24gJ3ZhbHVlKiBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5KHZhbHVlKiwg ZXhwcmVzc2lvbiosIGludCosIGludCwgbm9zaWRlKSc6Ci0gICAgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL2YtbGFuZy5jOjQ1Mzo0ODogZXJyb3I6IGZvcm1hdCAnJWxkJyBleHBl Y3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgaW50JywgYnV0IGFyZ3VtZW50IDIgaGFzIHR5cGUg J0xPTkdFU1QnIHtha2EgJ2xvbmcgbG9uZyBpbnQnfSBbLVdlcnJvcj1mb3JtYXQ9XQotICAgICAg NDUzIHwgICAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IExvdyBib3VuZDogJWxkXG4i LCBsYik7Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB+fl4gICAgIH5+Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKLSAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgTE9OR0VTVCB7YWthIGxvbmcg bG9uZyBpbnR9Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxvbmcgaW50Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlbGxkCi0KLUZpeCB0aGVtIGJ5IHVzaW5nIHBsb25nZXN0 L3B1bG9uZ2VzdC4KLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogZi1sYW5nLmMgKGZvcnRyYW5fdmFs dWVfc3ViYXJyYXkpOiBVc2UgcGxvbmdlc3QvcHVsb25nZXN0LgotCi1DaGFuZ2UtSWQ6IEk2NjZl YWQ1NTkzNjUzZDVhMWEzZGFiMmZmZGM3Mjk0MmM5MjhjN2QyCi0KLWRpZmYgLS1naXQgYS9nZGIv Zi1sYW5nLmMgYi9nZGIvZi1sYW5nLmMKLS0tLSBhL2dkYi9mLWxhbmcuYwotKysrIGIvZ2RiL2Yt bGFuZy5jCi1AQCAtNDYzLDIxICs0NjMsMjEgQEAgZm9ydHJhbl92YWx1ZV9zdWJhcnJheSAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgc3RkOjpz dHJpbmcgc3RyID0gdHlwZV90b19zdHJpbmcgKGRpbV90eXBlKTsKLSAJICAgICAgZGVidWdfcHJp bnRmICgifCAgIHwtPiBUeXBlOiAlc1xuIiwgc3RyLmNfc3RyICgpKTsKLSAJICAgICAgZGVidWdf cHJpbnRmICgifCAgIHwtPiBBcnJheTpcbiIpOwotLQkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAg fCAgIHwtPiBMb3cgYm91bmQ6ICVsZFxuIiwgbGIpOwotLQkgICAgICBkZWJ1Z19wcmludGYgKCJ8 ICAgfCAgIHwtPiBIaWdoIGJvdW5kOiAlbGRcbiIsIHViKTsKLS0JICAgICAgZGVidWdfcHJpbnRm ICgifCAgIHwgICB8LT4gQml0IHN0cmlkZTogJWxkXG4iLCBzZCk7Ci0tCSAgICAgIGRlYnVnX3By aW50ZiAoInwgICB8ICAgfC0+IEJ5dGUgc3RyaWRlOiAlbGRcbiIsIHNkIC8gOCk7Ci0tCSAgICAg IGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IFR5cGUgc2l6ZTogJWxkXG4iLAotLQkJCSAgICBU WVBFX0xFTkdUSCAoZGltX3R5cGUpKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICAn LT4gVGFyZ2V0IHR5cGUgc2l6ZTogJWxkXG4iLAotLQkJCSAgICBUWVBFX0xFTkdUSCAodGFyZ2V0 X3R5cGUpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gTG93IGJvdW5kOiAl c1xuIiwgcGxvbmdlc3QgKGxiKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+ IEhpZ2ggYm91bmQ6ICVzXG4iLCBwbG9uZ2VzdCAodWIpKTsKLSsJICAgICAgZGVidWdfcHJpbnRm ICgifCAgIHwgICB8LT4gQml0IHN0cmlkZTogJXNcbiIsIHBsb25nZXN0IChzZCkpOwotKwkgICAg ICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBCeXRlIHN0cmlkZTogJXNcbiIsIHBsb25nZXN0 IChzZCAvIDgpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gVHlwZSBzaXpl OiAlc1xuIiwKLSsJCQkgICAgcHVsb25nZXN0IChUWVBFX0xFTkdUSCAoZGltX3R5cGUpKSk7Ci0r CSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgJy0+IFRhcmdldCB0eXBlIHNpemU6ICVzXG4i LAotKwkJCSAgICBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIICh0YXJnZXRfdHlwZSkpKTsKLSAJICAg ICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBBY2Nlc3Npbmc6XG4iKTsKLS0JICAgICAgZGVidWdf cHJpbnRmICgifCAgIHwgICB8LT4gTG93IGJvdW5kOiAlbGRcbiIsCi0tCQkJICAgIGxvdyk7Ci0t CSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IEhpZ2ggYm91bmQ6ICVsZFxuIiwKLS0J CQkgICAgaGlnaCk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgJy0+IEVsZW1lbnQg c3RyaWRlOiAlbGRcbiIsCi0tCQkJICAgIHN0cmlkZSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICB8ICAgfC0+IExvdyBib3VuZDogJXNcbiIsCi0rCQkJICAgIHBsb25nZXN0IChsb3cpKTsK LSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGlnaCBib3VuZDogJXNcbiIsCi0r CQkJICAgIHBsb25nZXN0IChoaWdoKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAg Jy0+IEVsZW1lbnQgc3RyaWRlOiAlc1xuIiwKLSsJCQkgICAgcGxvbmdlc3QgKHN0cmlkZSkpOwot IAkgICAgfQotIAotIAkgIC8qIENoZWNrIHRoZSB1c2VyIGhhc24ndCBhc2tlZCBmb3Igc29tZXRo aW5nIGludmFsaWQuICAqLwotQEAgLTUxOSwxMyArNTE5LDE3IEBAIGZvcnRyYW5fdmFsdWVfc3Vi YXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAg aWYgKGZvcnRyYW5fYXJyYXlfc2xpY2luZ19kZWJ1ZykKLSAJICAgIHsKLSAJICAgICAgZGVidWdf cHJpbnRmICgifCAgICctPiBSZXN1bHRzOlxuIik7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwg ICAgICAgfC0+IE9mZnNldCA9ICVsZFxuIiwgb2Zmc2V0KTsKLS0JICAgICAgZGVidWdfcHJpbnRm ICgifCAgICAgICB8LT4gRWxlbWVudHMgPSAlbGRcbiIsIGVfY291bnQpOwotLQkgICAgICBkZWJ1 Z19wcmludGYgKCJ8ICAgICAgIHwtPiBMb3cgYm91bmQgPSAlbGRcbiIsIG5ld19sb3cpOwotLQkg ICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBIaWdoIGJvdW5kID0gJWxkXG4iLCBuZXdf aGlnaCk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IEJ5dGUgc3RyaWRlID0g JWxkXG4iLCBuZXdfc3RyaWRlKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgICAgICB8LT4g TGFzdCBlbGVtZW50ID0gJWxkXG4iLCBsYXN0X2VsZW0pOwotLQkgICAgICBkZWJ1Z19wcmludGYg KCJ8ICAgICAgIHwtPiBSZW1haW5kZXIgPSAlbGRcbiIsIHJlbWFpbmRlcik7Ci0rCSAgICAgIGRl YnVnX3ByaW50ZiAoInwgICAgICAgfC0+IE9mZnNldCA9ICVzXG4iLCBwbG9uZ2VzdCAob2Zmc2V0 KSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IEVsZW1lbnRzID0gJXNcbiIs IHBsb25nZXN0IChlX2NvdW50KSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+ IExvdyBib3VuZCA9ICVzXG4iLCBwbG9uZ2VzdCAobmV3X2xvdykpOwotKwkgICAgICBkZWJ1Z19w cmludGYgKCJ8ICAgICAgIHwtPiBIaWdoIGJvdW5kID0gJXNcbiIsCi0rCQkJICAgIHBsb25nZXN0 IChuZXdfaGlnaCkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBCeXRlIHN0 cmlkZSA9ICVzXG4iLAotKwkJCSAgICBwbG9uZ2VzdCAobmV3X3N0cmlkZSkpOwotKwkgICAgICBk ZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBMYXN0IGVsZW1lbnQgPSAlc1xuIiwKLSsJCQkgICAg cGxvbmdlc3QgKGxhc3RfZWxlbSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwt PiBSZW1haW5kZXIgPSAlc1xuIiwKLSsJCQkgICAgcGxvbmdlc3QgKHJlbWFpbmRlcikpOwotIAkg ICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgICctPiBDb250aWd1b3VzID0gJXNcbiIsCi0gCQkJ ICAgIChpc19kaW1fY29udGlndW91cyA/ICJZZXMiIDogIk5vIikpOwotIAkgICAgfQotQEAgLTU2 MSwxNCArNTY1LDE2IEBAIGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgICAgIHN0ZDo6c3RyaW5nIHN0ciA9IHR5 cGVfdG9fc3RyaW5nIChkaW1fdHlwZSk7Ci0gCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8LT4g VHlwZTogJXNcbiIsIHN0ci5jX3N0ciAoKSk7Ci0gCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8 LT4gQXJyYXk6XG4iKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gTG93IGJv dW5kOiAlbGRcbiIsIGxiKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGln aCBib3VuZDogJWxkXG4iLCB1Yik7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+ IEJ5dGUgc3RyaWRlOiAlbGRcbiIsIHNkKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwg ICB8LT4gVHlwZSBzaXplOiAlbGRcbiIsIFRZUEVfTEVOR1RIIChkaW1fdHlwZSkpOwotLQkgICAg ICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgICctPiBUYXJnZXQgdHlwZSBzaXplOiAlbGRcbiIsCi0t CQkJICAgIFRZUEVfTEVOR1RIICh0YXJnZXRfdHlwZSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYg KCJ8ICAgfCAgIHwtPiBMb3cgYm91bmQ6ICVzXG4iLCBwbG9uZ2VzdCAobGIpKTsKLSsJICAgICAg ZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGlnaCBib3VuZDogJXNcbiIsIHBsb25nZXN0ICh1 YikpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBCeXRlIHN0cmlkZTogJXNc biIsIHBsb25nZXN0IChzZCkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBU eXBlIHNpemU6ICVzXG4iLAotKwkJCSAgICBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIIChkaW1fdHlw ZSkpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICAnLT4gVGFyZ2V0IHR5cGUgc2l6 ZTogJXNcbiIsCi0rCQkJICAgIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHRhcmdldF90eXBlKSkp OwotIAkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgJy0+IEFjY2Vzc2luZzpcbiIpOwotLQkgICAg ICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgICctPiBJbmRleDogJWxkXG4iLCBpbmRleCk7Ci0rCSAg ICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgJy0+IEluZGV4OiAlc1xuIiwKLSsJCQkgICAgcGxv bmdlc3QgKGluZGV4KSk7Ci0gCSAgICB9Ci0gCi0gCSAgLyogSWYgdGhlIGFycmF5IGhhcyBhY3R1 YWwgY29udGVudCB0aGVuIGNoZWNrIHRoZSBpbmRleCBpcyBpbgotQEAgLTYyNSw3ICs2MzEsOCBA QCBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLAotICAgICAgIGRlYnVnX3ByaW50ZiAoIictPiBGaW5hbCByZXN1bHQ6XG4i KTsKLSAgICAgICBkZWJ1Z19wcmludGYgKCIgICAgfC0+IFR5cGU6ICVzXG4iLAotIAkJICAgIHR5 cGVfdG9fc3RyaW5nIChhcnJheV9zbGljZV90eXBlKS5jX3N0ciAoKSk7Ci0tICAgICAgZGVidWdf cHJpbnRmICgiICAgIHwtPiBUb3RhbCBvZmZzZXQ6ICVsZFxuIiwgdG90YWxfb2Zmc2V0KTsKLSsg ICAgICBkZWJ1Z19wcmludGYgKCIgICAgfC0+IFRvdGFsIG9mZnNldDogJXNcbiIsCi0rCQkgICAg cGxvbmdlc3QgKHRvdGFsX29mZnNldCkpOwotICAgICAgIGRlYnVnX3ByaW50ZiAoIiAgICB8LT4g QmFzZSBhZGRyZXNzOiAlc1xuIiwKLSAJCSAgICBjb3JlX2FkZHJfdG9fc3RyaW5nICh2YWx1ZV9h ZGRyZXNzIChhcnJheSkpKTsKLSAgICAgICBkZWJ1Z19wcmludGYgKCIgICAgJy0+IENvbnRpZ3Vv dXMgPSAlc1xuIiwKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1yYW5nZV90 eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1yYW5nZV90 eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZl ZDIzOWEuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tcmFuZ2VfdHlwZS10 by1yYW5nZV9mbGFnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLUZyb20g RkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0 dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDI0IE1heSAyMDIxIDE3OjE1OjI3 IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NjQxNjctZm9ydHJhbi1yYW5nZV90eXBlLXRvLXJh bmdlX2ZsYWcucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3Mg Y29tbWl0IHdoaWNoIHJlbmFtZXMgZW51bQotOzsgcmFuZ2VfdHlwZSB0byBlbnVtIHJhbmdlX2Zs YWcuCi0KLWdkYjogcmVuYW1lICdlbnVtIHJhbmdlX3R5cGUnIHRvICdlbnVtIHJhbmdlX2ZsYWcn Ci0KLVRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIG90aGVyIHBhcnRzIG9mIEdEQiByZWxhdGluZyB0 byB0eXBlcyBhbmQKLXJhbmdlcywgcmVuYW1lIHRoaXMgZW51bSB0byBtYWtlIGl0IGNsZWFyZXIg dGhhdCBpdCBpcyBhIHNldCBvZgotaW5kaXZpZHVhbCBmbGFncyByYXRoZXIgdGhhbiBhbiBlbnVt ZXJhdGlvbiBvZiBkaWZmZXJlbnQgdHlwZXMgb2YKLXJhbmdlLgotCi1UaGVyZSBzaG91bGQgYmUg bm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0KLWdkYi9DaGFuZ2VM b2c6Ci0KLQkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IENoYW5nZSBlbnVt IHJhbmdlX3R5cGUgdG8KLQlyYW5nZV9mbGFnIGFuZCByZW5hbWUgdmFyaWFibGVzIHRvIG1hdGNo LgotCShkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkKTogTGlrZXdpc2UuCi0JKiBleHByZXNzaW9u LmggKGVudW0gcmFuZ2VfdHlwZSk6IFJlbmFtZSB0by4uLgotCShlbnVtIHJhbmdlX2ZsYWcpOiAu Li50aGlzLgotCShyYW5nZV90eXBlcyk6IFJlbmFtZSB0by4uLgotCShyYW5nZV9mbGFncyk6IC4u LnRoaXMuCi0JKiBmLWxhbmcuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2hhbmdlIGVudW0gcmFu Z2VfdHlwZSB0bwotCXJhbmdlX2ZsYWcgYW5kIHJlbmFtZSB2YXJpYWJsZXMgdG8gbWF0Y2guCi0J KiBwYXJzZS5jIChvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQpOiBMaWtld2lzZS4KLQkqIHJ1c3Qt ZXhwLnkgKHJ1c3RfcGFyc2VyOjpjb252ZXJ0X2FzdF90b19leHByZXNzaW9uKTogQ2hhbmdlIGVu dW0KLQlyYW5nZV90eXBlIHRvIHJhbmdlX2ZsYWcuCi0JKiBydXN0LWxhbmcuYyAocnVzdF9ldmFs dWF0ZV9mdW5jYWxsKTogTGlrZXdpc2UuCi0JKHJ1c3RfcmFuZ2UpOiBMaWtld2lzZS4KLQkocnVz dF9jb21wdXRlX3JhbmdlKTogTGlrZXdpc2UuCi0JKHJ1c3Rfc3Vic2NyaXB0KTogTGlrZXdpc2Uu Ci0KLWRpZmYgLS1naXQgYS9nZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBwcmludC5jCi0tLS0gYS9n ZGIvZXhwcHJpbnQuYwotKysrIGIvZ2RiL2V4cHByaW50LmMKLUBAIC01NzgsMTkgKzU3OCwxOSBA QCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIHsKLS0JZW51bSByYW5nZV90eXBlIHJh bmdlX3R5cGU7Ci0rCWVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnOwotIAotLQlyYW5nZV90eXBl ID0gKGVudW0gcmFuZ2VfdHlwZSkKLSsJcmFuZ2VfZmxhZyA9IChlbnVtIHJhbmdlX2ZsYWcpCi0g CSAgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twYyArIDFdLmxvbmdjb25zdCk7Ci0gCSpwb3Mg Kz0gMjsKLSAKLS0JaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0VYQ0xVU0lWRSkK LSsJaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0VYQ0xVU0lWRSkKLSAJICBmcHV0 c19maWx0ZXJlZCAoIkVYQ0xVU0lWRV8iLCBzdHJlYW0pOwotIAlmcHV0c19maWx0ZXJlZCAoIlJB TkdFKCIsIHN0cmVhbSk7Ci0tCWlmICghKHJhbmdlX3R5cGUgJiBSQU5HRV9MT1dfQk9VTkRfREVG QVVMVCkpCi0rCWlmICghKHJhbmdlX2ZsYWcgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi0g CSAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVDX0FCT1ZFX0NPTU1BKTsKLSAJ ZnB1dHNfZmlsdGVyZWQgKCIuLiIsIHN0cmVhbSk7Ci0tCWlmICghKHJhbmdlX3R5cGUgJiBSQU5H RV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotKwlpZiAoIShyYW5nZV9mbGFnICYgUkFOR0VfSElHSF9C T1VORF9ERUZBVUxUKSkKLSAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNf QUJPVkVfQ09NTUEpOwotIAlmcHV0c19maWx0ZXJlZCAoIikiLCBzdHJlYW0pOwotIAlyZXR1cm47 Ci1AQCAtMTEwNCwyNSArMTEwNCwyNSBAQCBkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIGJyZWFrOwotICAgICBjYXNlIE9QX1JBTkdFOgot ICAgICAgIHsKLS0JZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGU7Ci0rCWVudW0gcmFuZ2VfZmxh ZyByYW5nZV9mbGFnOwotIAotLQlyYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkKLSsJcmFu Z2VfZmxhZyA9IChlbnVtIHJhbmdlX2ZsYWcpCi0gCSAgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0 c1tlbHRdLmxvbmdjb25zdCk7Ci0gCWVsdCArPSAyOwotIAotLQlpZiAocmFuZ2VfdHlwZSAmIFJB TkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKQotKwlpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0hJR0hf Qk9VTkRfRVhDTFVTSVZFKQotIAkgIGZwdXRzX2ZpbHRlcmVkICgiRXhjbHVzaXZlIiwgc3RyZWFt KTsKLSAJZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnIiwgc3RyZWFtKTsKLS0JaWYgKCEocmFuZ2Vf dHlwZSAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSsJaWYgKCEocmFuZ2VfZmxhZyAmIFJB TkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSAJICBmcHV0c19maWx0ZXJlZCAoIkVYUCIsIHN0cmVh bSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiLi4iLCBzdHJlYW0pOwotLQlpZiAoIShyYW5nZV90eXBl ICYgUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKSkKLSsJaWYgKCEocmFuZ2VfZmxhZyAmIFJBTkdF X0hJR0hfQk9VTkRfREVGQVVMVCkpCi0gCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAiLCBzdHJlYW0p OwotIAlmcHV0c19maWx0ZXJlZCAoIiciLCBzdHJlYW0pOwotIAotLQlpZiAoIShyYW5nZV90eXBl ICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpKQotKwlpZiAoIShyYW5nZV9mbGFnICYgUkFOR0Vf TE9XX0JPVU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwg ZWx0KTsKLS0JaWYgKCEocmFuZ2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0r CWlmICghKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9 IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgICB9Ci0gICAgICAgYnJlYWs7 Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKLS0tLSBh L2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNzaW9uLmgKLUBAIC0xODUsNyArMTg1 LDcgQEAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Np b24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gICAgb3IgaW5jbHVzaXZlLiAgU28gd2UgaGF2ZSBz aXggc29ydHMgb2Ygc3VicmFuZ2UuICBUaGlzIGVudW1lcmF0aW9uCi0gICAgdHlwZSBpcyB0byBp ZGVudGlmeSB0aGlzLiAgKi8KLSAKLS1lbnVtIHJhbmdlX3R5cGUgOiB1bnNpZ25lZAotK2VudW0g cmFuZ2VfZmxhZyA6IHVuc2lnbmVkCi0gewotICAgLyogVGhpcyBpcyBhIHN0YW5kYXJkIHJhbmdl LiAgQm90aCB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyBhcmUKLSAgICAgIGRlZmluZWQsIGFu ZCB0aGUgYm91bmRzIGFyZSBpbmNsdXNpdmUuICAqLwotQEAgLTIwMSw2ICsyMDEsNiBAQCBlbnVt IHJhbmdlX3R5cGUgOiB1bnNpZ25lZAotICAgUkFOR0VfSElHSF9CT1VORF9FWENMVVNJVkUgPSAx IDw8IDIsCi0gfTsKLSAKLS1ERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJhbmdlX3R5cGUsIHJh bmdlX3R5cGVzKTsKLStERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJhbmdlX2ZsYWcsIHJhbmdl X2ZsYWdzKTsKLSAKLSAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KLWRpZmYg LS1naXQgYS9nZGIvZi1sYW5nLmMgYi9nZGIvZi1sYW5nLmMKLS0tLSBhL2dkYi9mLWxhbmcuYwot KysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtMTI2LDE3ICsxMjYsMTcgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAotICAgaW50IHBjID0gKCpwb3MpICsgMTsKLSAgIExP TkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwotICAgc3RydWN0IHR5cGUgKnJhbmdlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgpKTsKLS0gIGVudW0g cmFuZ2VfdHlwZSByYW5nZV90eXBlCi0tICAgID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90 b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLSsgIGVudW0gcmFuZ2VfZmxhZyByYW5n ZV9mbGFnCi0rICAgID0gKGVudW0gcmFuZ2VfZmxhZykgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0 c1twY10ubG9uZ2NvbnN0KTsKLSAKLSAgICpwb3MgKz0gMzsKLSAKLS0gIGlmIChyYW5nZV90eXBl ICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0rICBpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0xP V19CT1VORF9ERUZBVUxUKQotICAgICBsb3dfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5sb3cu Y29uc3RfdmFsICgpOwotICAgZWxzZQotICAgICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChl dmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLSAKLS0gIGlmIChy YW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKQotKyAgaWYgKHJhbmdlX2ZsYWcg JiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0gICAgIGhpZ2hfYm91bmQgPSByYW5nZS0+Ym91 bmRzICgpLT5oaWdoLmNvbnN0X3ZhbCAoKTsKLSAgIGVsc2UKLSAgICAgaGlnaF9ib3VuZCA9IHZh bHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkp OwotZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKLS0tLSBhL2dkYi9wYXJz ZS5jCi0rKysgYi9nZGIvcGFyc2UuYwotQEAgLTc3NCw3ICs3NzQsNyBAQCBvcGVyYXRvcl9sZW5n dGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAot IHsKLSAgIGludCBvcGxlbiA9IDE7Ci0gICBpbnQgYXJncyA9IDA7Ci0tICBlbnVtIHJhbmdlX3R5 cGUgcmFuZ2VfdHlwZTsKLSsgIGVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnOwotICAgaW50IGk7 Ci0gCi0gICBpZiAoZW5kcG9zIDwgMSkKLUBAIC05MTgsMTUgKzkxOCwxNSBAQCBvcGVyYXRvcl9s ZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9z LAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIG9wbGVuID0gMzsKLS0gICAgICByYW5n ZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkKLSsgICAgICByYW5nZV9mbGFnID0gKGVudW0gcmFu Z2VfZmxhZykKLSAJbG9uZ2VzdF90b19pbnQgKGV4cHItPmVsdHNbZW5kcG9zIC0gMl0ubG9uZ2Nv bnN0KTsKLSAKLSAgICAgICAvKiBBc3N1bWUgdGhlIHJhbmdlIGhhcyAyIGFyZ3VtZW50cyAobG93 IGJvdW5kIGFuZCBoaWdoIGJvdW5kKSwgdGhlbgotIAkgcmVkdWNlIHRoZSBhcmd1bWVudCBjb3Vu dCBpZiBhbnkgYm91bmRzIGFyZSBzZXQgdG8gZGVmYXVsdC4gICovCi0gICAgICAgYXJncyA9IDI7 Ci0tICAgICAgaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkKLSsgICAg ICBpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKQotIAktLWFyZ3M7Ci0t ICAgICAgaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0rICAgICAg aWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0gCS0tYXJnczsKLSAK LSAgICAgICBicmVhazsKLWRpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0LWV4 cC55Ci0tLS0gYS9nZGIvcnVzdC1leHAueQotKysrIGIvZ2RiL3J1c3QtZXhwLnkKLUBAIC0yNDky LDcgKzI0OTIsNyBAQCBydXN0X3BhcnNlcjo6Y29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoY29u c3Qgc3RydWN0IHJ1c3Rfb3AgKm9wZXJhdGlvbiwKLSAKLSAgICAgY2FzZSBPUF9SQU5HRToKLSAg ICAgICB7Ci0tCWVudW0gcmFuZ2VfdHlwZSBraW5kID0gKFJBTkdFX0hJR0hfQk9VTkRfREVGQVVM VAotKwl1bnNpZ25lZCBpbnQga2luZCA9IChSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQKLSAJCQkJ fCBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCk7Ci0gCi0gCWlmIChvcGVyYXRpb24tPmxlZnQub3Ag IT0gTlVMTCkKLWRpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMK LS0tLSBhL2dkYi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1AQCAtMTA3MCw3 ICsxMDcwLDYgQEAgcnVzdF9ldmFsdWF0ZV9mdW5jYWxsIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgot IHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUpCi0gewotLSAgZW51bSByYW5nZV90eXBlIGtpbmQ7Ci0gICBzdHJ1Y3QgdmFsdWUg KmxvdyA9IE5VTEwsICpoaWdoID0gTlVMTDsKLSAgIHN0cnVjdCB2YWx1ZSAqYWRkcnZhbCwgKnJl c3VsdDsKLSAgIENPUkVfQUREUiBhZGRyOwotQEAgLTEwNzksNyArMTA3OCw4IEBAIHJ1c3RfcmFu Z2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUp Ci0gICBzdHJ1Y3QgdHlwZSAqdGVtcF90eXBlOwotICAgY29uc3QgY2hhciAqbmFtZTsKLSAKLS0g IGtpbmQgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzWypwb3Mg KyAxXS5sb25nY29uc3QpOwotKyAgYXV0byBraW5kCi0rICAgID0gKGVudW0gcmFuZ2VfZmxhZykg bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKLSAgICpwb3Mg Kz0gMzsKLSAKLSAgIGlmICghKGtpbmQgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi1AQCAt MTE2OSw3ICsxMTY5LDcgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50 ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSBzdGF0aWMgdm9pZAotIHJ1c3RfY29tcHV0ZV9y YW5nZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCi0gCQkgICAgTE9O R0VTVCAqbG93LCBMT05HRVNUICpoaWdoLAotLQkJICAgIHJhbmdlX3R5cGVzICpraW5kKQotKwkJ ICAgIHJhbmdlX2ZsYWdzICpraW5kKQotIHsKLSAgIGludCBpOwotIAotQEAgLTEyMDksNyArMTIw OSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywg ZW51bSBub3NpZGUgbm9zaWRlLAotICAgc3RydWN0IHR5cGUgKnJoc3R5cGU7Ci0gICBMT05HRVNU IGxvdywgaGlnaF9ib3VuZDsKLSAgIC8qIEluaXRpYWxpemVkIHRvIGFwcGVhc2UgdGhlIGNvbXBp bGVyLiAgKi8KLS0gIHJhbmdlX3R5cGVzIGtpbmQgPSBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCB8 IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsKLSsgIHJhbmdlX2ZsYWdzIGtpbmQgPSBSQU5HRV9M T1dfQk9VTkRfREVGQVVMVCB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsKLSAgIExPTkdFU1Qg aGlnaCA9IDA7Ci0gICBpbnQgd2FudF9zbGljZSA9IDA7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoxOTY0MTY3LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJheS5wYXRjaCBiL2dkYi1yaGJ6MTk2NDE2 Ny1mb3J0cmFuLXdoaXRlc3BhY2VfYXJyYXkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDkwMjE1NTkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hp dGVzcGFjZV9hcnJheS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi1Gcm9t IEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVl dHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyNCBNYXkgMjAyMSAxNzowNzoz NiAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJh eS5wYXRjaAotCi07OyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQg d2hpY2ggZWxpbWluYXRlcyB1bmRlc2lyYWJsZQotOzsgd2hpdGVzcGFjZSB3aGVuIHByaW50aW5n IGFycmF5cy4KLQotZ2RiL2ZvcnRyYW46IENoYW5nZSB3aGl0ZXNwYWNlIHdoZW4gcHJpbnRpbmcg YXJyYXlzCi0KLVRoaXMgY29tbWl0IG1ha2VzIHRoZSB3aGl0ZXNwYWNlIHVzYWdlIHdoZW4gcHJp bnRpbmcgRm9ydHJhbiBhcnJheXMKLW1vcmUgY29uc2lzdGVudCwgYW5kIG1vcmUgaW5saW5lIHdp dGggaG93IHdlIHByaW50IEMgYXJyYXlzLgotCi1DdXJyZW50bHkgYSAyIGRpbWVuc2lvbmFsIEZv dHJhbiBhcnJheSBpcyBwcmludGVkIGxpa2UgdGhpcywgSSBmaW5kCi10aGUgbWFya2VkIHdoaXRl c3BhY2UgdW5wbGVhc2FudDoKLQotICAoKCAxLCAyLCAzKSAoIDQsIDUsIDYpICkKLSAgICBeICAg ICAgICAgIF4gICAgICAgIF4KLQotQWZ0ZXIgdGhpcyBjb21taXQgdGhlIHNhbWUgYXJyYXkgaXMg cHJpbnRlZCBsaWtlIHRoaXM6Ci0KLSAgKCgxLCAyLCAzKSAoNCwgNSwgNikpCi0KLVdoaWNoIHNl ZW1zIG1vcmUgaW5saW5lIHdpdGggaG93IHdlIHByaW50IEMgYXJyYXlzLCBpbiB0aGUgY2FzZSBv ZiBDCi1hcnJheXMgd2UgZG9uJ3QgYWRkIGV4dHJhIHdoaXRlc3BhY2UgYmVmb3JlIHRoZSBmaXJz dCBlbGVtZW50LgotCi1nZGIvQ2hhbmdlTG9nOgotCi0JKiBmLXZhbHByaW50LmMgKGY3N19wcmlu dF9hcnJheV8xKTogQWRqdXN0IHByaW50aW5nIG9mIHdoaXRlc3BhY2UKLQlmb3IgYXJyYXlzLgot Ci1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLQotCSogZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2Vz LmV4cDogVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMuCi0JKiBnZGIuZm9ydHJhbi9jbGFzcy1hbGxv Y2F0YWJsZS1hcnJheS5leHA6IExpa2V3aXNlLgotCSogZ2RiLmZvcnRyYW4vbXVsdGktZGltLmV4 cDogTGlrZXdpc2UuCi0JKiBnZGIuZm9ydHJhbi92bGEtdHlwZS5leHA6IExpa2V3aXNlLgotCSog Z2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cDogTGlrZXdpc2UuCi0KLWRpZmYgLS1naXQgYS9nZGIv Zi12YWxwcmludC5jIGIvZ2RiL2YtdmFscHJpbnQuYwotLS0tIGEvZ2RiL2YtdmFscHJpbnQuYwot KysrIGIvZ2RiL2YtdmFscHJpbnQuYwotQEAgLTEzNywxNCArMTM3LDE3IEBAIGY3N19wcmludF9h cnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAotIAkg ICAgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmdf Y29uc3QgKHZhbCkKLSAJICAgICArIG9mZnMsIGFkZHIgKyBvZmZzKTsKLSAKLS0JICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg IigiKTsKLSAJICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVl X3R5cGUgKHN1YmFycmF5KSwKLSAJCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAo c3ViYXJyYXkpLAotIAkJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0g CQkJICAgICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJheSksCi0gCQkJICAgICBzdHJlYW0sIHJlY3Vy c2UsIHN1YmFycmF5LCBvcHRpb25zLCBlbHRzKTsKLSAJICBvZmZzICs9IGJ5dGVfc3RyaWRlOwot LQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7Ci0rCSAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAiKSIpOwotKwotKwkgIGlmIChpIDwgdXBwZXJib3VuZCkKLSsJICAgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIiAiKTsKLSAJfQotICAgICAgIGlmICgqZWx0cyA+PSBvcHRp b25zLT5wcmludF9tYXggJiYgaSA8IHVwcGVyYm91bmQpCi0gCWZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIi4uLiIpOwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJy YXktc2xpY2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4 cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhwCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAKLUBAIC0zOCwxNCAr MzgsMTQgQEAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkZpbmFsIEJyZWFr cG9pbnQiXQotIAotIHNldCBhcnJheV9jb250ZW50cyBcCi0gICAgIFtsaXN0IFwKLS0JICIgPSBc XChcXCggMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXCkgXFwoIDExLCAxMiwgMTMsIDE0 LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXFwpIFxcKCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAy NywgMjgsIDI5LCAzMFxcKSBcXCggMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwg NDBcXCkgXFwoIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXFwpIFxcKCA1 MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MFxcKSBcXCggNjEsIDYyLCA2Mywg NjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzBcXCkgXFwoIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYs IDc3LCA3OCwgNzksIDgwXFwpIFxcKCA4MSwgODIsIDgzLCA4NCwgODUsIDg2LCA4NywgODgsIDg5 LCA5MFxcKSBcXCggOTEsIDkyLCA5MywgOTQsIDk1LCA5NiwgOTcsIDk4LCA5OSwgMTAwXFwpIFxc KSIgXAotLQkgIiA9IFxcKFxcKCAxLCAyLCAzLCA0LCA1XFwpIFxcKCAxMSwgMTIsIDEzLCAxNCwg MTVcXCkgXFwoIDIxLCAyMiwgMjMsIDI0LCAyNVxcKSBcXCggMzEsIDMyLCAzMywgMzQsIDM1XFwp IFxcKCA0MSwgNDIsIDQzLCA0NCwgNDVcXCkgXFwpIiBcCi0tCSAiID0gXFwoXFwoIDEsIDMsIDUs IDcsIDlcXCkgXFwoIDIxLCAyMywgMjUsIDI3LCAyOVxcKSBcXCggNDEsIDQzLCA0NSwgNDcsIDQ5 XFwpIFxcKCA2MSwgNjMsIDY1LCA2NywgNjlcXCkgXFwoIDgxLCA4MywgODUsIDg3LCA4OVxcKSBc XCkiIFwKLS0JICIgPSBcXChcXCggMSwgNCwgNywgMTBcXCkgXFwoIDIxLCAyNCwgMjcsIDMwXFwp IFxcKCA0MSwgNDQsIDQ3LCA1MFxcKSBcXCggNjEsIDY0LCA2NywgNzBcXCkgXFwoIDgxLCA4NCwg ODcsIDkwXFwpIFxcKSIgXAotLQkgIiA9IFxcKFxcKCAxLCA1LCA5XFwpIFxcKCAzMSwgMzUsIDM5 XFwpIFxcKCA2MSwgNjUsIDY5XFwpIFxcKCA5MSwgOTUsIDk5XFwpIFxcKSIgXAotLQkgIiA9IFxc KFxcKCAtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwgLTIxLCAtMjAsIC0xOSwgLTE4LCAtMTdcXCkg XFwoIC0xOSwgLTE4LCAtMTcsIC0xNiwgLTE1LCAtMTQsIC0xMywgLTEyLCAtMTEsIC0xMFxcKSBc XCggLTEyLCAtMTEsIC0xMCwgLTksIC04LCAtNywgLTYsIC01LCAtNCwgLTNcXCkgXFwoIC01LCAt NCwgLTMsIC0yLCAtMSwgMCwgMSwgMiwgMywgNFxcKSBcXCggMiwgMywgNCwgNSwgNiwgNywgOCwg OSwgMTAsIDExXFwpIFxcKCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4XFwp IFxcKCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNVxcKSBcXCggMjMsIDI0 LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJcXCkgXFwoIDMwLCAzMSwgMzIsIDMzLCAz NCwgMzUsIDM2LCAzNywgMzgsIDM5XFwpIFxcKCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0Mywg NDQsIDQ1LCA0NlxcKSBcXCkiIFwKLS0JICIgPSBcXChcXCggLTI2LCAtMjUsIC0yNCwgLTIzLCAt MjIsIC0yMVxcKSBcXCggLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0xNFxcKSBcXCggLTEyLCAt MTEsIC0xMCwgLTksIC04LCAtN1xcKSBcXCkiIFwKLS0JICIgPSBcXChcXCggLTI2LCAtMjQsIC0y MiwgLTIwLCAtMThcXCkgXFwoIC01LCAtMywgLTEsIDEsIDNcXCkgXFwoIDE2LCAxOCwgMjAsIDIy LCAyNFxcKSBcXCggMzcsIDM5LCA0MSwgNDMsIDQ1XFwpIFxcKSIgXQotKwkgIiA9IFxcKFxcKDEs IDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFwpIFxcKDExLCAxMiwgMTMsIDE0LCAxNSwgMTYs IDE3LCAxOCwgMTksIDIwXFwpIFxcKDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjks IDMwXFwpIFxcKDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXFwpIFxcKDQx LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXFwpIFxcKDUxLCA1MiwgNTMsIDU0 LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwXFwpIFxcKDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3 LCA2OCwgNjksIDcwXFwpIFxcKDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgw XFwpIFxcKDgxLCA4MiwgODMsIDg0LCA4NSwgODYsIDg3LCA4OCwgODksIDkwXFwpIFxcKDkxLCA5 MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMFxcKVxcKSIgXAotKwkgIiA9IFxcKFxc KDEsIDIsIDMsIDQsIDVcXCkgXFwoMTEsIDEyLCAxMywgMTQsIDE1XFwpIFxcKDIxLCAyMiwgMjMs IDI0LCAyNVxcKSBcXCgzMSwgMzIsIDMzLCAzNCwgMzVcXCkgXFwoNDEsIDQyLCA0MywgNDQsIDQ1 XFwpXFwpIiBcCi0rCSAiID0gXFwoXFwoMSwgMywgNSwgNywgOVxcKSBcXCgyMSwgMjMsIDI1LCAy NywgMjlcXCkgXFwoNDEsIDQzLCA0NSwgNDcsIDQ5XFwpIFxcKDYxLCA2MywgNjUsIDY3LCA2OVxc KSBcXCg4MSwgODMsIDg1LCA4NywgODlcXClcXCkiIFwKLSsJICIgPSBcXChcXCgxLCA0LCA3LCAx MFxcKSBcXCgyMSwgMjQsIDI3LCAzMFxcKSBcXCg0MSwgNDQsIDQ3LCA1MFxcKSBcXCg2MSwgNjQs IDY3LCA3MFxcKSBcXCg4MSwgODQsIDg3LCA5MFxcKVxcKSIgXAotKwkgIiA9IFxcKFxcKDEsIDUs IDlcXCkgXFwoMzEsIDM1LCAzOVxcKSBcXCg2MSwgNjUsIDY5XFwpIFxcKDkxLCA5NSwgOTlcXClc XCkiIFwKLSsJICIgPSBcXChcXCgtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwgLTIxLCAtMjAsIC0x OSwgLTE4LCAtMTdcXCkgXFwoLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0xNCwgLTEzLCAtMTIs IC0xMSwgLTEwXFwpIFxcKC0xMiwgLTExLCAtMTAsIC05LCAtOCwgLTcsIC02LCAtNSwgLTQsIC0z XFwpIFxcKC01LCAtNCwgLTMsIC0yLCAtMSwgMCwgMSwgMiwgMywgNFxcKSBcXCgyLCAzLCA0LCA1 LCA2LCA3LCA4LCA5LCAxMCwgMTFcXCkgXFwoOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYs IDE3LCAxOFxcKSBcXCgxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNVxcKSBc XCgyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMlxcKSBcXCgzMCwgMzEsIDMy LCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOVxcKSBcXCgzNywgMzgsIDM5LCA0MCwgNDEsIDQy LCA0MywgNDQsIDQ1LCA0NlxcKVxcKSIgXAotKwkgIiA9IFxcKFxcKC0yNiwgLTI1LCAtMjQsIC0y MywgLTIyLCAtMjFcXCkgXFwoLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0xNFxcKSBcXCgtMTIs IC0xMSwgLTEwLCAtOSwgLTgsIC03XFwpXFwpIiBcCi0rCSAiID0gXFwoXFwoLTI2LCAtMjQsIC0y MiwgLTIwLCAtMThcXCkgXFwoLTUsIC0zLCAtMSwgMSwgM1xcKSBcXCgxNiwgMTgsIDIwLCAyMiwg MjRcXCkgXFwoMzcsIDM5LCA0MSwgNDMsIDQ1XFwpXFwpIiBdCi0gCi0gc2V0IG1lc3NhZ2Vfc3Ry aW5ncyBcCi0gICAgIFtsaXN0IFwKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vY2xhc3MtYWxsb2NhdGFibGUtYXJyYXkuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9jbGFzcy1hbGxvY2F0YWJsZS1hcnJheS5leHAKLUBAIC00MCw0ICs0MCw0IEBA IGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCcmVhayBIZXJlIgotICMgY2V0YWlubHkgZ29p bmcgdG8gZmFpbC4KLSBnZGJfdGVzdCAicHJpbnQgdGhpcyIgIiA9IFxcKCBfZGF0YSA9IFxbXlxy XG5cXSssIF92cHRyID0gXFteXHJcblxdK1xcKSIKLSBnZGJfdGVzdCAicHJpbnQgdGhpcyVfZGF0 YSIgIiA9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0ZXN0X3R5cGUgXFwpXFwpIFxbXlxyXG5cXSsi Ci0tZ2RiX3Rlc3QgInByaW50IHRoaXMlX2RhdGElYiIgIiA9IFxcKFxcKCAxLCAyLCAzXFwpIFxc KCA0LCA1LCA2XFwpIFxcKSIKLStnZGJfdGVzdCAicHJpbnQgdGhpcyVfZGF0YSViIiAiID0gXFwo XFwoMSwgMiwgM1xcKSBcXCg0LCA1LCA2XFwpXFwpIgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vbXVsdGktZGltLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v bXVsdGktZGltLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9tdWx0aS1kaW0u ZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL211bHRpLWRpbS5leHAKLUBAIC01 Nyw3ICs1Nyw3IEBAIGdkYl90ZXN0ICJwcmludCBmb28oMywzLDQpIiBcCi0gICAgICJwcmludCBh biBpbnZhbGlkIGFycmF5IGluZGV4ICgzLDMsNCkiCi0gCi0gZ2RiX3Rlc3QgInByaW50IGZvbyIg XAotLSAgICB7ID0gXChcKCBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKSBc KCBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKSBcKCBcKCAxMCwgMTBcKSBc KCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKSBcKCBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAx MCwgMjBcKSBcKSBcKX0gXAotKyAgICB7ID0gXChcKFwoMTAsIDEwXCkgXCgxMCwgMTBcKSBcKDEw LCAxMFwpXCkgXChcKDEwLCAxMFwpIFwoMTAsIDEwXCkgXCgxMCwgMTBcKVwpIFwoXCgxMCwgMTBc KSBcKDEwLCAxMFwpIFwoMTAsIDEwXClcKSBcKFwoMTAsIDEwXCkgXCgxMCwgMTBcKSBcKDEwLCAy MFwpXClcKX0gXAotICAgICAicHJpbnQgZnVsbCBjb250ZW50cyBvZiB0aGUgYXJyYXkiCi0gCi0g Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrLXZhcmlhYmxlIl0KLWRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS10eXBlLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdHlwZS5leHAKLUBAIC02Niw5ICs2Niw5IEBAIGdkYl90ZXN0ICJwdHlwZSB0d292IiBcCi0g ICAgICAgICAgICAgICAgICAgICAgIlxccyskaW50LCBhbGxvY2F0YWJsZSA6OiBpdmxhMVxcXCg1 LDEyLDk5XFxcKSIgXAotICAgICAgICAgICAgICAgICAgICAgICJcXHMrJGludCwgYWxsb2NhdGFi bGUgOjogaXZsYTJcXFwoOSwxMlxcXCkiIFwKLSAgICAgICAgICAgICAgICAgICAgICAiRW5kIFR5 cGUgdHdvIiBdCi0tZ2RiX3Rlc3QgInByaW50IHR3b3YiICIgPSBcXFwoIGl2bGExID0gXFxcKFxc XCggXFxcKCAxLCAxLCAxLCAxLCAxXFxcKVwKLS0gXFxcKCAxLCAxLCAzMjEsIDEsIDFcXFwpXAot LSBcXFwoIDEsIDEsIDEsIDEsIDFcXFwpIC4qIgotK2dkYl90ZXN0ICJwcmludCB0d292IiAiID0g XFxcKCBpdmxhMSA9IFxcXChcXFwoXFxcKDEsIDEsIDEsIDEsIDFcXFwpXAotKyBcXFwoMSwgMSwg MzIxLCAxLCAxXFxcKVwKLSsgXFxcKDEsIDEsIDEsIDEsIDFcXFwpIC4qIgotIAotICMgQ2hlY2sg dHlwZSB3aXRoIGF0dHJpYnV0ZSBhdCBiZWdpbm4gb2YgdHlwZQotIGdkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ0aHJlZXYtZmlsbGVkIl0KLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS12bGEtZm9ydHJhbi5leHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0 cmFuLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCi1A QCAtMTgwLDcgKzE4MCw3IEBAIG1pX3J1bl9jbWQKLSBtaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2lu dC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCi0gICB7ICIiICJkaXNw PVwiZGVsXCIiIH0gInJ1biB0byBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSBtaV9n ZGJfdGVzdCAiNTkwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiBwdmxhMiIgXAotLSAgIjU5MFxc XmRvbmUsdmFsdWU9XCJcXChcXCggMiwgMiwgMiwgMiwgMlxcKSBcXCggMiwgMiwgMiwgMiwgMlxc KSBcXClcIiIgXAotKyAgIjU5MFxcXmRvbmUsdmFsdWU9XCJcXChcXCgyLCAyLCAyLCAyLCAyXFwp IFxcKDIsIDIsIDIsIDIsIDJcXClcXClcIiIgXAotICAgImV2YWx1YXRlIGFzc29jaWF0ZWQgdmxh IgotIAotIG1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9hc3NvY2lhdGVkIHB2bGEyIFwK CmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxpbmcu cGF0Y2ggYi9nZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxpbmcucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MjE2ODQuLjAwMDAwMDAKLS0tIGEvZ2Ri LXJoYnoxOTY0MTY3LW1vdmUtZm9ydHJhbi1leHByLWhhbmRsaW5nLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNzg3ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRl OiBNb24sIDI0IE1heSAyMDIxIDE3OjAwOjE3IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NjQx NjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxpbmcucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2tw b3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIG1vdmVzIEZvcnRyYW4KLTs7IGV4cHJl c3Npb24gaGFuZGxpbmcgdG8gZi1sYW5nLmMuCi0KLWdkYi9mb3J0cmFuOiBNb3ZlIEZvcnRyYW4g ZXhwcmVzc2lvbiBoYW5kbGluZyBpbnRvIGYtbGFuZy5jCi0KLVRoZSBGb3J0cmFuIHNwZWNpZmlj IE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCBpcyBjdXJyZW50bHkgaGFuZGxlZAotaW4gdGhl IGdlbmVyaWMgZXhwcmVzc2lvbiBoYW5kbGluZyBjb2RlLiAgVGhlcmUncyBubyByZWFzb24gd2h5 IHRoaXMKLXNob3VsZCBiZSB0aGUgY2FzZSwgc28gdGhpcyBjb21taXQgbW92ZXMgaGFuZGxpbmcg b2YgdGhpcyBpbnRvIEZvcnRyYW4KLXNwZWNpZmljIGZpbGVzLgotCi1UaGVyZSBzaG91bGQgYmUg bm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0KLWdkYi9DaGFuZ2VM b2c6Ci0KLQkqIGV2YWwuYzogUmVtb3ZlICdmLWxhbmcuaCcgaW5jbHVkZS4KLQkodmFsdWVfZjkw X3N1YmFycmF5KTogTW92ZWQgdG8gZi1sYW5nLmMuCi0JKGV2YWxfY2FsbCk6IFJlbmFtZWQgdG8u Li4KLQkoZXZhbHVhdGVfc3ViZXhwX2RvX2NhbGwpOiAuLi50aGlzLCBpcyBubyBsb25nZXIgc3Rh dGljLCBoZWFkZXIKLQljb21tZW50IG1vdmVkIGludG8gaGVhZGVyIGZpbGUuCi0JKGV2YWx1YXRl X2Z1bmNhbGwpOiBVcGRhdGUgY2FsbCB0byBldmFsX2NhbGwuCi0JKHNraXBfdW5kZXRlcm1pbmVk X2FyZ2xpc3QpOiBNb3ZlZCB0byBmLWxhbmcuYy4KLQkoZm9ydHJhbl92YWx1ZV9zdWJhcnJheSk6 IExpa2V3aXNlLgotCShldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpOiBPUF9GNzdfVU5ERVRFUk1J TkVEX0FSR0xJU1QgaGFuZGxpbmcKLQltb3ZlZCB0byBldmFsdWF0ZV9zdWJleHBfZi4KLQkoY2Fs Y19mNzdfYXJyYXlfZGltcyk6IE1vdmVkIHRvIGYtbGFuZy5jCi0JKiBleHBwcmludC5jIChwcmlu dF9zdWJleHBfZnVuY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQkocHJpbnRfc3ViZXhwX3N0YW5kYXJk KTogT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUIGhhbmRsaW5nCi0JbW92ZWQgdG8gcHJpbnRf c3ViZXhwX2YsIE9QX0ZVTkNBTEwgdXNlcyBuZXcgZnVuY3Rpb24uCi0JKGR1bXBfc3ViZXhwX2Jv ZHlfZnVuY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQkoZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCk6 IE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCBoYW5kbGluZwotCW1vdmVkIHRvIGR1bXBfc3Vi ZXhwX2YsIE9QX0ZVTkNBTEwgdXNlcyBuZXcgZnVuY3Rpb24uCi0JKiBleHByZXNzaW9uLmggKGV2 YWx1YXRlX3N1YmV4cF9kb19jYWxsKTogRGVjbGFyZS4KLQkqIGYtbGFuZy5jICh2YWx1ZV9mOTBf c3ViYXJyYXkpOiBNb3ZlZCBmcm9tIGV2YWwuYy4KLQkoc2tpcF91bmRldGVybWluZWRfYXJnbGlz dCk6IExpa2V3aXNlLgotCShjYWxjX2Y3N19hcnJheV9kaW1zKTogTGlrZXdpc2UuCi0JKGZvcnRy YW5fdmFsdWVfc3ViYXJyYXkpOiBMaWtld2lzZS4KLQkoZXZhbHVhdGVfc3ViZXhwX2YpOiBBZGQg T1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUIHN1cHBvcnQuCi0JKG9wZXJhdG9yX2xlbmd0aF9m KTogTGlrZXdpc2UuCi0JKHByaW50X3N1YmV4cF9mKTogTGlrZXdpc2UuCi0JKGR1bXBfc3ViZXhw X2JvZHlfZik6IExpa2V3aXNlLgotCSogZm9ydHJhbi1vcGVyYXRvci5kZWYgKE9QX0Y3N19VTkRF VEVSTUlORURfQVJHTElTVCk6IE1vdmUKLQlkZWNsYXJhdGlvbiBvZiB0aGlzIG9wZXJhdGlvbiB0 byBoZXJlLgotCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogT1BfRjc3X1VO REVURVJNSU5FRF9BUkdMSVNUCi0Jc3VwcG9ydCBtb3ZlZCB0byBvcGVyYXRvcl9sZW5ndGhfZi4K LQkqIHBhcnNlci1kZWZzLmggKGR1bXBfc3ViZXhwX2JvZHlfZnVuY2FsbCk6IERlY2xhcmUuCi0J KHByaW50X3N1YmV4cF9mdW5jYWxsKTogRGVjbGFyZS4KLQkqIHN0ZC1vcGVyYXRvci5kZWYgKE9Q X0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCk6IE1vdmVkIHRvCi0JZm9ydHJhbi1vcGVyYXRvci5k ZWYuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotLS0tIGEvZ2RiL2V2 YWwuYwotKysrIGIvZ2RiL2V2YWwuYwotQEAgLTI2LDcgKzI2LDYgQEAKLSAjaW5jbHVkZSAiZnJh bWUuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCi0gI2luY2x1ZGUgImxhbmd1YWdlLmgiCQkv KiBGb3IgQ0FTVF9JU19DT05WRVJTSU9OLiAgKi8KLS0jaW5jbHVkZSAiZi1sYW5nLmgiCQkvKiBG b3IgYXJyYXkgYm91bmQgc3R1ZmYuICAqLwotICNpbmNsdWRlICJjcC1hYmkuaCIKLSAjaW5jbHVk ZSAiaW5mY2FsbC5oIgotICNpbmNsdWRlICJvYmpjLWxhbmcuaCIKLUBAIC0zNzEsMzIgKzM3MCw2 IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVl ICplbGVtZW50LAotICAgcmV0dXJuIGluZGV4OwotIH0KLSAKLS1zdGF0aWMgc3RydWN0IHZhbHVl ICoKLS12YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCi0tCQkgICAgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLS17Ci0t ICBpbnQgcGMgPSAoKnBvcykgKyAxOwotLSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7 Ci0tICBzdHJ1Y3QgdHlwZSAqcmFuZ2UgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJh eSktPmluZGV4X3R5cGUgKCkpOwotLSAgZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGUKLS0gICAg PSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29u c3QpOwotLSAKLS0gICpwb3MgKz0gMzsKLS0KLS0gIGlmIChyYW5nZV90eXBlID09IExPV19CT1VO RF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBsb3df Ym91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5sb3cuY29uc3RfdmFsICgpOwotLSAgZWxzZQotLSAg ICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4 cCwgcG9zLCBub3NpZGUpKTsKLS0KLS0gIGlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVG QVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0gICAgaGlnaF9ib3Vu ZCA9IHJhbmdlLT5ib3VuZHMgKCktPmhpZ2guY29uc3RfdmFsICgpOwotLSAgZWxzZQotLSAgICBo aWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAs IHBvcywgbm9zaWRlKSk7Ci0tCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLS19Ci0tCi0tCi0gLyogUHJvbW90ZSB2 YWx1ZSBBUkcxIGFzIGFwcHJvcHJpYXRlIGJlZm9yZSBwZXJmb3JtaW5nIGEgdW5hcnkgb3BlcmF0 aW9uCi0gICAgb24gdGhpcyBhcmd1bWVudC4KLSAgICBJZiB0aGUgcmVzdWx0IGlzIG5vdCBhcHBy b3ByaWF0ZSBmb3IgYW55IHBhcnRpY3VsYXIgbGFuZ3VhZ2UgdGhlbiBpdAotQEAgLTc0OSwxNyAr NzIyLDEzIEBAIGV2YWxfc2tpcF92YWx1ZSAoZXhwcmVzc2lvbiAqZXhwKQotICAgcmV0dXJuIHZh bHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGluX2lu dCwgMSk7Ci0gfQotIAotLS8qIEV2YWx1YXRlIGEgZnVuY3Rpb24gY2FsbC4gIFRoZSBmdW5jdGlv biB0byBiZSBjYWxsZWQgaXMgaW4KLS0gICBBUkdWRUNbMF0gYW5kIHRoZSBhcmd1bWVudHMgcGFz c2VkIHRvIHRoZSBmdW5jdGlvbiBhcmUgaW4KLS0gICBBUkdWRUNbMS4uTkFSR1NdLiAgRlVOQ1RJ T05fTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGlmCi0tICAga25vd24uICBERUZB VUxUX1JFVFVSTl9UWVBFIGlzIHVzZWQgYXMgdGhlIGZ1bmN0aW9uJ3MgcmV0dXJuIHR5cGUKLS0g ICBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgdW5rbm93bi4gICovCi0rLyogU2VlIGV4cHJlc3Npb24u aC4gICovCi0gCi0tc3RhdGljIHZhbHVlICoKLS1ldmFsX2NhbGwgKGV4cHJlc3Npb24gKmV4cCwg ZW51bSBub3NpZGUgbm9zaWRlLAotLQkgICBpbnQgbmFyZ3MsIHZhbHVlICoqYXJndmVjLAotLQkg ICBjb25zdCBjaGFyICpmdW5jdGlvbl9uYW1lLAotLQkgICB0eXBlICpkZWZhdWx0X3JldHVybl90 eXBlKQotK3ZhbHVlICoKLStldmFsdWF0ZV9zdWJleHBfZG9fY2FsbCAoZXhwcmVzc2lvbiAqZXhw LCBlbnVtIG5vc2lkZSBub3NpZGUsCi0rCQkJIGludCBuYXJncywgdmFsdWUgKiphcmd2ZWMsCi0r CQkJIGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsCi0rCQkJIHR5cGUgKmRlZmF1bHRfcmV0dXJu X3R5cGUpCi0gewotICAgaWYgKGFyZ3ZlY1swXSA9PSBOVUxMKQotICAgICBlcnJvciAoXygiQ2Fu bm90IGV2YWx1YXRlIGZ1bmN0aW9uIC0tIG1heSBiZSBpbmxpbmVkIikpOwotQEAgLTEyMzAsMjAg KzExOTksOCBAQCBldmFsdWF0ZV9mdW5jYWxsICh0eXBlICpleHBlY3RfdHlwZSwgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywKLSAgICAgICAvKiBOb3RoaW5nIHRvIGJlIGRvbmU7IGFyZ3ZlYyBh bHJlYWR5IGNvcnJlY3RseSBzZXQgdXAuICAqLwotICAgICB9Ci0gCi0tICByZXR1cm4gZXZhbF9j YWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywgdmFyX2Z1bmNfbmFtZSwgZXhwZWN0X3R5 cGUpOwotLX0KLS0KLS0vKiBIZWxwZXIgZm9yIHNraXBwaW5nIGFsbCB0aGUgYXJndW1lbnRzIGlu IGFuIHVuZGV0ZXJtaW5lZCBhcmd1bWVudCBsaXN0LgotLSAgIFRoaXMgZnVuY3Rpb24gd2FzIGRl c2lnbmVkIGZvciB1c2UgaW4gdGhlIE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVAotLSAgIGNh c2Ugb2YgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIGFzIG11bHRpcGxlLCBidXQgbm90IGFsbCwg Y29kZSBwYXRocwotLSAgIHJlcXVpcmUgYSBnZW5lcmljIHNraXAuICAqLwotLQotLXN0YXRpYyB2 b2lkCi0tc2tpcF91bmRldGVybWluZWRfYXJnbGlzdCAoaW50IG5hcmdzLCBzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcywKLS0JCQkgICBlbnVtIG5vc2lkZSBub3NpZGUpCi0tewotLSAg Zm9yIChpbnQgaSA9IDA7IGkgPCBuYXJnczsgKytpKQotLSAgICBldmFsdWF0ZV9zdWJleHAgKG51 bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpOwotKyAgcmV0dXJuIGV2YWx1YXRlX3N1YmV4cF9kb19j YWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywKLSsJCQkJICB2YXJfZnVuY19uYW1lLCBl eHBlY3RfdHlwZSk7Ci0gfQotIAotIC8qIFJldHVybiB0cnVlIGlmIHR5cGUgaXMgaW50ZWdyYWwg b3IgcmVmZXJlbmNlIHRvIGludGVncmFsICovCi1AQCAtMTI2MCw2NyArMTIxNyw2IEBAIGlzX2lu dGVncmFsX29yX2ludGVncmFsX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKnR5cGUpCi0gCSAgJiYg aXNfaW50ZWdyYWxfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsKLSB9Ci0gCi0tLyog Q2FsbGVkIGZyb20gZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIHRvIHBlcmZvcm0gYXJyYXkgaW5k ZXhpbmcsIGFuZAotLSAgIHN1Yi1yYW5nZSBleHRyYWN0aW9uLCBmb3IgRm9ydHJhbi4gIEFzIHdl bGwgYXMgYXJyYXlzIHRoaXMgZnVuY3Rpb24KLS0gICBhbHNvIGhhbmRsZXMgc3RyaW5ncyBhcyB0 aGV5IGNhbiBiZSB0cmVhdGVkIGxpa2UgYXJyYXlzIG9mIGNoYXJhY3RlcnMuCi0tICAgQVJSQVkg aXMgdGhlIGFycmF5IG9yIHN0cmluZyBiZWluZyBhY2Nlc3NlZC4gIEVYUCwgUE9TLCBhbmQgTk9T SURFIGFyZQotLSAgIGFzIGZvciBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQsIGFuZCBOQVJHUyBp cyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cwotLSAgIGluIHRoaXMgYWNjZXNzIChlLmcuICdhcnJh eSAoMSwyLDMpJyB3b3VsZCBiZSBOQVJHUyAzKS4gICovCi0tCi0tc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCi0tZm9ydHJhbl92YWx1ZV9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKLS0JCQlpbnQgKnBvcywgaW50IG5hcmdzLCBlbnVtIG5vc2lkZSBu b3NpZGUpCi0tewotLSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCi0t ICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFycmF5LCBleHAsIHBvcywgbm9zaWRlKTsK LS0KLS0gIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotLSAgICB7Ci0tICAgICAgc2tpcF91bmRl dGVybWluZWRfYXJnbGlzdCAobmFyZ3MsIGV4cCwgcG9zLCBub3NpZGUpOwotLSAgICAgIC8qIFJl dHVybiB0aGUgZHVtbXkgdmFsdWUgd2l0aCB0aGUgY29ycmVjdCB0eXBlLiAgKi8KLS0gICAgICBy ZXR1cm4gYXJyYXk7Ci0tICAgIH0KLS0KLS0gIExPTkdFU1Qgc3Vic2NyaXB0X2FycmF5W01BWF9G T1JUUkFOX0RJTVNdOwotLSAgaW50IG5kaW1lbnNpb25zID0gMTsKLS0gIHN0cnVjdCB0eXBlICp0 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLS0KLS0gIGlmIChuYXJn cyA+IE1BWF9GT1JUUkFOX0RJTVMpCi0tICAgIGVycm9yIChfKCJUb28gbWFueSBzdWJzY3JpcHRz IGZvciBGNzcgKCVkIE1heCkiKSwgTUFYX0ZPUlRSQU5fRElNUyk7Ci0tCi0tICBuZGltZW5zaW9u cyA9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHR5cGUpOwotLQotLSAgaWYgKG5hcmdzICE9IG5kaW1l bnNpb25zKQotLSAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7Ci0t Ci0tICBnZGJfYXNzZXJ0IChuYXJncyA+IDApOwotLQotLSAgLyogTm93IHRoYXQgd2Uga25vdyB3 ZSBoYXZlIGEgbGVnYWwgYXJyYXkgc3Vic2NyaXB0IGV4cHJlc3Npb24gbGV0IHVzCi0tICAgICBh Y3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlzIGVsZW1lbnQgZXhpc3RzIGluIHRoZSBhcnJheS4g ICovCi0tCi0tICAvKiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdodC4gICovCi0tICBm b3IgKGludCBpID0gMDsgaSA8IG5hcmdzOyBpKyspCi0tICAgIHsKLS0gICAgICAvKiBFdmFsdWF0 ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgKi8K LS0gICAgICB2YWx1ZSAqYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAs IHBvcywgbm9zaWRlKTsKLS0KLS0gICAgICAvKiBGaWxsIGluIHRoZSBzdWJzY3JpcHQgYXJyYXku ICAqLwotLSAgICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZhbHVlX2FzX2xvbmcgKGFyZzIpOwot LSAgICB9Ci0tCi0tICAvKiBJbnRlcm5hbCB0eXBlIG9mIGFycmF5IGlzIGFycmFuZ2VkIHJpZ2h0 IHRvIGxlZnQuICAqLwotLSAgZm9yIChpbnQgaSA9IG5hcmdzOyBpID4gMDsgaS0tKQotLSAgICB7 Ci0tICAgICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcnJheSkpOwotLSAgICAgIExPTkdFU1QgaW5kZXggPSBzdWJzY3JpcHRfYXJyYXlbaSAt IDFdOwotLQotLSAgICAgIGFycmF5ID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChhcnJheSwg aW5kZXgsCi0tCQkJCQlmNzdfZ2V0X2xvd2VyYm91bmQgKGFycmF5X3R5cGUpKTsKLS0gICAgfQot LQotLSAgcmV0dXJuIGFycmF5OwotLX0KLS0KLSBzdHJ1Y3QgdmFsdWUgKgotIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAotIAkJCSAgc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCi1AQCAtMTMzNSw3ICsxMjMxLDYgQEAgZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCi0gICBzdHJ1Y3QgdHlw ZSAqdHlwZTsKLSAgIGludCBuYXJnczsKLSAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKLS0gIGlu dCBjb2RlOwotICAgaW50IGl4OwotICAgbG9uZyBtZW1fb2Zmc2V0OwotICAgc3RydWN0IHR5cGUg KiphcmdfdHlwZXM7Ci1AQCAtMTk3Niw4NCArMTg3MSw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAotICAgICBjYXNlIE9QX0ZVTkNBTEw6Ci0g ICAgICAgcmV0dXJuIGV2YWx1YXRlX2Z1bmNhbGwgKGV4cGVjdF90eXBlLCBleHAsIHBvcywgbm9z aWRlKTsKLSAKLS0gICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Q6Ci0tCi0tICAg ICAgLyogUmVtZW1iZXIgdGhhdCBpbiBGNzcsIGZ1bmN0aW9ucywgc3Vic3RyaW5nIG9wcyBhbmQg Ci0tICAgICAgICAgYXJyYXkgc3Vic2NyaXB0IG9wZXJhdGlvbnMgY2Fubm90IGJlIGRpc2FtYmln dWF0ZWQgCi0tICAgICAgICAgYXQgcGFyc2UgdGltZS4gIFdlIGhhdmUgbWFkZSBhbGwgYXJyYXkg c3Vic2NyaXB0IG9wZXJhdGlvbnMsIAotLSAgICAgICAgIHN1YnN0cmluZyBvcGVyYXRpb25zIGFz IHdlbGwgYXMgZnVuY3Rpb24gY2FsbHMgIGNvbWUgaGVyZSAKLS0gICAgICAgICBhbmQgd2Ugbm93 IGhhdmUgdG8gZGlzY292ZXIgd2hhdCB0aGUgaGVjayB0aGlzIHRoaW5nIGFjdHVhbGx5IHdhcy4K LS0gICAgICAgICBJZiBpdCBpcyBhIGZ1bmN0aW9uLCB3ZSBwcm9jZXNzIGp1c3QgYXMgaWYgd2Ug Z290IGFuIE9QX0ZVTkNBTEwuICAqLwotLQotLSAgICAgIG5hcmdzID0gbG9uZ2VzdF90b19pbnQg KGV4cC0+ZWx0c1twYyArIDFdLmxvbmdjb25zdCk7Ci0tICAgICAgKCpwb3MpICs9IDI7Ci0tCi0t ICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJlIGRlYWxpbmcgd2l0 aC4gICovCi0tICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3Ms IG5vc2lkZSk7Ci0tICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEp KTsKLS0gICAgICBjb2RlID0gdHlwZS0+Y29kZSAoKTsKLS0KLS0gICAgICBpZiAoY29kZSA9PSBU WVBFX0NPREVfUFRSKQotLQl7Ci0tCSAgLyogRm9ydHJhbiBhbHdheXMgcGFzc2VzIHZhcmlhYmxl IHRvIHN1YnJvdXRpbmVzIGFzIHBvaW50ZXIuCi0tCSAgICAgU28gd2UgbmVlZCB0byBsb29rIGlu dG8gaXRzIHRhcmdldCB0eXBlIHRvIHNlZSBpZiBpdCBpcwotLQkgICAgIGFycmF5LCBzdHJpbmcg b3IgZnVuY3Rpb24uICBJZiBpdCBpcywgd2UgbmVlZCB0byBzd2l0Y2gKLS0JICAgICB0byB0aGUg dGFyZ2V0IHZhbHVlIHRoZSBvcmlnaW5hbCBvbmUgcG9pbnRzIHRvLiAgKi8gCi0tCSAgc3RydWN0 IHR5cGUgKnRhcmdldF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpOwotLQotLQkgIGlmICh0YXJnZXRfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfQVJSQVkK LS0JICAgICAgfHwgdGFyZ2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX1NUUklORwotLQkg ICAgICB8fCB0YXJnZXRfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfRlVOQykKLS0JICAgIHsK LS0JICAgICAgYXJnMSA9IHZhbHVlX2luZCAoYXJnMSk7Ci0tCSAgICAgIHR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7Ci0tCSAgICAgIGNvZGUgPSB0eXBlLT5jb2RlICgp OwotLQkgICAgfQotLQl9IAotLQotLSAgICAgIHN3aXRjaCAoY29kZSkKLS0JewotLQljYXNlIFRZ UEVfQ09ERV9BUlJBWToKLS0JY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkgIHJldHVybiBmb3J0 cmFuX3ZhbHVlX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7Ci0tCi0t CWNhc2UgVFlQRV9DT0RFX1BUUjoKLS0JY2FzZSBUWVBFX0NPREVfRlVOQzoKLS0JY2FzZSBUWVBF X0NPREVfSU5URVJOQUxfRlVOQ1RJT046Ci0tCSAgLyogSXQncyBhIGZ1bmN0aW9uIGNhbGwuICAq LwotLQkgIC8qIEFsbG9jYXRlIGFyZyB2ZWN0b3IsIGluY2x1ZGluZyBzcGFjZSBmb3IgdGhlIGZ1 bmN0aW9uIHRvIGJlCi0tCSAgICAgY2FsbGVkIGluIGFyZ3ZlY1swXSBhbmQgYSB0ZXJtaW5hdGlu ZyBOVUxMLiAgKi8KLS0JICBhcmd2ZWMgPSAoc3RydWN0IHZhbHVlICoqKQotLQkgICAgYWxsb2Nh IChzaXplb2YgKHN0cnVjdCB2YWx1ZSAqKSAqIChuYXJncyArIDIpKTsKLS0JICBhcmd2ZWNbMF0g PSBhcmcxOwotLQkgIHRlbSA9IDE7Ci0tCSAgZm9yICg7IHRlbSA8PSBuYXJnczsgdGVtKyspCi0t CSAgICB7Ci0tCSAgICAgIGFyZ3ZlY1t0ZW1dID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNp b24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQkgICAgICAvKiBBcmd1bWVudHMgaW4gRm9ydHJhbiBh cmUgcGFzc2VkIGJ5IGFkZHJlc3MuICBDb2VyY2UgdGhlCi0tCQkgYXJndW1lbnRzIGhlcmUgcmF0 aGVyIHRoYW4gaW4gdmFsdWVfYXJnX2NvZXJjZSBhcyBvdGhlcndpc2UKLS0JCSB0aGUgY2FsbCB0 byBtYWxsb2MgdG8gcGxhY2UgdGhlIG5vbi1sdmFsdWUgcGFyYW1ldGVycyBpbgotLQkJIHRhcmdl dCBtZW1vcnkgaXMgaGl0IGJ5IHRoaXMgRm9ydHJhbiBzcGVjaWZpYyBsb2dpYy4gIFRoaXMKLS0J CSByZXN1bHRzIGluIG1hbGxvYyBiZWluZyBjYWxsZWQgd2l0aCBhIHBvaW50ZXIgdG8gYW4gaW50 ZWdlcgotLQkJIGZvbGxvd2VkIGJ5IGFuIGF0dGVtcHQgdG8gbWFsbG9jIHRoZSBhcmd1bWVudHMg dG8gbWFsbG9jIGluCi0tCQkgdGFyZ2V0IG1lbW9yeS4gIEluZmluaXRlIHJlY3Vyc2lvbiBlbnN1 ZXMuICAqLwotLQkgICAgICBpZiAoY29kZSA9PSBUWVBFX0NPREVfUFRSIHx8IGNvZGUgPT0gVFlQ RV9DT0RFX0ZVTkMpCi0tCQl7Ci0tCQkgIGJvb2wgaXNfYXJ0aWZpY2lhbAotLQkJICAgID0gVFlQ RV9GSUVMRF9BUlRJRklDSUFMICh2YWx1ZV90eXBlIChhcmcxKSwgdGVtIC0gMSk7Ci0tCQkgIGFy Z3ZlY1t0ZW1dID0gZm9ydHJhbl9hcmd1bWVudF9jb252ZXJ0IChhcmd2ZWNbdGVtXSwKLS0JCQkJ CQkJICBpc19hcnRpZmljaWFsKTsKLS0JCX0KLS0JICAgIH0KLS0JICBhcmd2ZWNbdGVtXSA9IDA7 CS8qIHNpZ25hbCBlbmQgb2YgYXJnbGlzdCAqLwotLQkgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQ KQotLQkgICAgcmV0dXJuIGV2YWxfc2tpcF92YWx1ZSAoZXhwKTsKLS0JICByZXR1cm4gZXZhbF9j YWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywgTlVMTCwgZXhwZWN0X3R5cGUpOwotLQot LQlkZWZhdWx0OgotLQkgIGVycm9yIChfKCJDYW5ub3QgcGVyZm9ybSBzdWJzdHJpbmcgb24gdGhp cyB0eXBlIikpOwotLQl9Ci0tCi0gICAgIGNhc2UgT1BfQ09NUExFWDoKLSAgICAgICAvKiBXZSBo YXZlIGEgY29tcGxleCBudW1iZXIsIFRoZXJlIHNob3VsZCBiZSAyIGZsb2F0aW5nIAotICAgICAg ICAgIHBvaW50IG51bWJlcnMgdGhhdCBjb21wb3NlIGl0LiAgKi8KLUBAIC0zMzQ2LDI3ICszMTYz LDMgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0aCkKLSAgICAgZXJy b3IgKF8oIkludGVybmFsIGVycm9yIGluIGV2YWxfdHlwZS4iKSk7Ci0gICByZXR1cm4gZXhwci0+ ZWx0c1sxXS50eXBlOwotIH0KLS0KLS0vKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkaW1lbnNpb25z IGZvciBhIEZvcnRyYW4gYXJyYXkgb3Igc3RyaW5nLiAgKi8KLS0KLS1pbnQKLS1jYWxjX2Y3N19h cnJheV9kaW1zIChzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSkKLS17Ci0tICBpbnQgbmRpbWVuID0g MTsKLS0gIHN0cnVjdCB0eXBlICp0bXBfdHlwZTsKLS0KLS0gIGlmICgoYXJyYXlfdHlwZS0+Y29k ZSAoKSA9PSBUWVBFX0NPREVfU1RSSU5HKSkKLS0gICAgcmV0dXJuIDE7Ci0tCi0tICBpZiAoKGFy cmF5X3R5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKLS0gICAgZXJyb3IgKF8oIkNh bid0IGdldCBkaW1lbnNpb25zIGZvciBhIG5vbi1hcnJheSB0eXBlIikpOwotLQotLSAgdG1wX3R5 cGUgPSBhcnJheV90eXBlOwotLQotLSAgd2hpbGUgKCh0bXBfdHlwZSA9IFRZUEVfVEFSR0VUX1RZ UEUgKHRtcF90eXBlKSkpCi0tICAgIHsKLS0gICAgICBpZiAodG1wX3R5cGUtPmNvZGUgKCkgPT0g VFlQRV9DT0RFX0FSUkFZKQotLQkrK25kaW1lbjsKLS0gICAgfQotLSAgcmV0dXJuIG5kaW1lbjsK LS19Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYwotLS0tIGEv Z2RiL2V4cHByaW50LmMKLSsrKyBiL2dkYi9leHBwcmludC5jCi1AQCAtNTMsNiArNTMsMjUgQEAg cHJpbnRfc3ViZXhwIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSAgIGV4cC0+ bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPnByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVh bSwgcHJlYyk7Ci0gfQotIAotKy8qIFNlZSBwYXJzZXItZGVmcy5oLiAgKi8KLSsKLSt2b2lkCi0r cHJpbnRfc3ViZXhwX2Z1bmNhbGwgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLAot KwkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSt7Ci0rICAoKnBvcykgKz0gMjsKLSsg IHVuc2lnbmVkIG5hcmdzID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zXS5sb25nY29u c3QpOwotKyAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVDX1NVRkZJWCk7Ci0r ICBmcHV0c19maWx0ZXJlZCAoIiAoIiwgc3RyZWFtKTsKLSsgIGZvciAodW5zaWduZWQgdGVtID0g MDsgdGVtIDwgbmFyZ3M7IHRlbSsrKQotKyAgICB7Ci0rICAgICAgaWYgKHRlbSAhPSAwKQotKwlm cHV0c19maWx0ZXJlZCAoIiwgIiwgc3RyZWFtKTsKLSsgICAgICBwcmludF9zdWJleHAgKGV4cCwg cG9zLCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEpOwotKyAgICB9Ci0rICBmcHV0c19maWx0ZXJl ZCAoIikiLCBzdHJlYW0pOwotK30KLSsKLSAvKiBTdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiBw cmludF9zdWJleHAgZm9yIHVzZSBpbiBsYW5ndWFnZV9kZWZuCi0gICAgdmVjdG9ycy4gICovCi0g dm9pZAotQEAgLTE4NywxOCArMjA2LDcgQEAgcHJpbnRfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSAgICAgICByZXR1cm47Ci0gCi0gICAgIGNhc2Ug T1BfRlVOQ0FMTDoKLS0gICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Q6Ci0tICAg ICAgKCpwb3MpICs9IDI7Ci0tICAgICAgbmFyZ3MgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRz W3BjICsgMV0ubG9uZ2NvbnN0KTsKLS0gICAgICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJl YW0sIFBSRUNfU1VGRklYKTsKLS0gICAgICBmcHV0c19maWx0ZXJlZCAoIiAoIiwgc3RyZWFtKTsK LS0gICAgICBmb3IgKHRlbSA9IDA7IHRlbSA8IG5hcmdzOyB0ZW0rKykKLS0JewotLQkgIGlmICh0 ZW0gIT0gMCkKLS0JICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBzdHJlYW0pOwotLQkgIHByaW50 X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0tCX0KLS0gICAg ICBmcHV0c19maWx0ZXJlZCAoIikiLCBzdHJlYW0pOwotKyAgICAgIHByaW50X3N1YmV4cF9mdW5j YWxsIChleHAsIHBvcywgc3RyZWFtKTsKLSAgICAgICByZXR1cm47Ci0gCi0gICAgIGNhc2UgT1Bf TkFNRToKLUBAIC03OTYsNiArODA0LDIyIEBAIGR1bXBfc3ViZXhwX2JvZHkgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBlbHQpCi0gICByZXR1cm4g ZXhwLT5sYW5ndWFnZV9kZWZuLT5sYV9leHBfZGVzYy0+ZHVtcF9zdWJleHBfYm9keSAoZXhwLCBz dHJlYW0sIGVsdCk7Ci0gfQotIAotKy8qIFNlZSBwYXJzZXItZGVmcy5oLiAgKi8KLSsKLStpbnQK LStkdW1wX3N1YmV4cF9ib2R5X2Z1bmNhbGwgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0rCQkJ ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgZWx0KQotK3sKLSsgIGludCBuYXJncyA9IGxv bmdlc3RfdG9faW50IChleHAtPmVsdHNbZWx0XS5sb25nY29uc3QpOwotKyAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiTnVtYmVyIG9mIGFyZ3M6ICVkIiwgbmFyZ3MpOwotKyAgZWx0ICs9IDI7 Ci0rCi0rICBmb3IgKGludCBpID0gMTsgaSA8PSBuYXJncyArIDE7IGkrKykKLSsgICAgZWx0ID0g ZHVtcF9zdWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOwotKwotKyAgcmV0dXJuIGVsdDsKLSt9Ci0r Ci0gLyogRGVmYXVsdCB2YWx1ZSBmb3Igc3ViZXhwX2JvZHkgaW4gZXhwX2Rlc2NyaXB0b3IgdmVj dG9yLiAgKi8KLSAKLSBpbnQKLUBAIC05MzEsMTggKzk1NSw3IEBAIGR1bXBfc3ViZXhwX2JvZHlf c3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gICAgICAgZWx0ICs9IDI7Ci0gICAg ICAgYnJlYWs7Ci0gICAgIGNhc2UgT1BfRlVOQ0FMTDoKLS0gICAgY2FzZSBPUF9GNzdfVU5ERVRF Uk1JTkVEX0FSR0xJU1Q6Ci0tICAgICAgewotLQlpbnQgaSwgbmFyZ3M7Ci0tCi0tCW5hcmdzID0g bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1tlbHRdLmxvbmdjb25zdCk7Ci0tCi0tCWZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIk51bWJlciBvZiBhcmdzOiAlZCIsIG5hcmdzKTsKLS0JZWx0ICs9 IDI7Ci0tCi0tCWZvciAoaSA9IDE7IGkgPD0gbmFyZ3MgKyAxOyBpKyspCi0tCSAgZWx0ID0gZHVt cF9zdWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOwotLSAgICAgIH0KLSsgICAgICBlbHQgPSBkdW1w X3N1YmV4cF9ib2R5X2Z1bmNhbGwgKGV4cCwgc3RyZWFtLCBlbHQpOwotICAgICAgIGJyZWFrOwot ICAgICBjYXNlIE9QX0FSUkFZOgotICAgICAgIHsKLWRpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lv bi5oIGIvZ2RiL2V4cHJlc3Npb24uaAotLS0tIGEvZ2RiL2V4cHJlc3Npb24uaAotKysrIGIvZ2Ri L2V4cHJlc3Npb24uaAotQEAgLTE1NSw2ICsxNTUsMTggQEAgZW51bSBub3NpZGUKLSBleHRlcm4g c3RydWN0IHZhbHVlICpldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQKLSAgIChzdHJ1Y3QgdHlwZSAq LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBpbnQgKiwgZW51bSBub3NpZGUpOwotIAotKy8qIEV2YWx1 YXRlIGEgZnVuY3Rpb24gY2FsbC4gIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgaXMgaW4gQVJH VkVDWzBdIGFuZAotKyAgIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBhcmUg aW4gQVJHVkVDWzEuLk5BUkdTXS4KLSsgICBGVU5DVElPTl9OQU1FIGlzIHRoZSBuYW1lIG9mIHRo ZSBmdW5jdGlvbiwgaWYga25vd24uCi0rICAgREVGQVVMVF9SRVRVUk5fVFlQRSBpcyB1c2VkIGFz IHRoZSBmdW5jdGlvbidzIHJldHVybiB0eXBlIGlmIHRoZSByZXR1cm4KLSsgICB0eXBlIGlzIHVu a25vd24uICAqLwotKwotK2V4dGVybiBzdHJ1Y3QgdmFsdWUgKmV2YWx1YXRlX3N1YmV4cF9kb19j YWxsIChleHByZXNzaW9uICpleHAsCi0rCQkJCQkgICAgICBlbnVtIG5vc2lkZSBub3NpZGUsCi0r CQkJCQkgICAgICBpbnQgbmFyZ3MsIHZhbHVlICoqYXJndmVjLAotKwkJCQkJICAgICAgY29uc3Qg Y2hhciAqZnVuY3Rpb25fbmFtZSwKLSsJCQkJCSAgICAgIHR5cGUgKmRlZmF1bHRfcmV0dXJuX3R5 cGUpOwotKwotIC8qIEZyb20gZXhwcHJpbnQuYyAqLwotIAotIGV4dGVybiB2b2lkIHByaW50X2V4 cHJlc3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosIHN0cnVjdCB1aV9maWxlICopOwotZGlmZiAt LWdpdCBhL2dkYi9mLWxhbmcuYyBiL2dkYi9mLWxhbmcuYwotLS0tIGEvZ2RiL2YtbGFuZy5jCi0r KysgYi9nZGIvZi1sYW5nLmMKLUBAIC0xMTQsNiArMTE0LDEzNCBAQCBlbnVtIGZfcHJpbWl0aXZl X3R5cGVzIHsKLSAgIG5yX2ZfcHJpbWl0aXZlX3R5cGVzCi0gfTsKLSAKLSsvKiBDYWxsZWQgZnJv bSBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IHRvIHRha2UgYSBzbGljZSBvZiBhbiBhcnJheSBvciBh Ci0rICAgc3RyaW5nLiAgQVJSQVkgaXMgdGhlIGFycmF5IG9yIHN0cmluZyB0byBiZSBhY2Nlc3Nl ZC4gIEVYUCwgUE9TLCBhbmQKLSsgICBOT1NJREUgYXJlIGFzIGZvciBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQuICBSZXR1cm4gYSB2YWx1ZSB0aGF0IGlzIGEKLSsgICBzbGljZSBvZiB0aGUgYXJy YXkuICAqLwotKwotK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotK3ZhbHVlX2Y5MF9zdWJhcnJheSAo c3RydWN0IHZhbHVlICphcnJheSwKLSsJCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg KnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotK3sKLSsgIGludCBwYyA9ICgqcG9zKSArIDE7Ci0r ICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSsgIHN0cnVjdCB0eXBlICpyYW5nZSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KS0+aW5kZXhfdHlwZSAoKSk7Ci0rICBl bnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQotKyAgICA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdl c3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7Ci0rCi0rICAqcG9zICs9IDM7Ci0r Ci0rICBpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09 IEJPVEhfQk9VTkRfREVGQVVMVCkKLSsgICAgbG93X2JvdW5kID0gcmFuZ2UtPmJvdW5kcyAoKS0+ bG93LmNvbnN0X3ZhbCAoKTsKLSsgIGVsc2UKLSsgICAgbG93X2JvdW5kID0gdmFsdWVfYXNfbG9u ZyAoZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRlKSk7Ci0rCi0rICBp ZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RI X0JPVU5EX0RFRkFVTFQpCi0rICAgIGhpZ2hfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5oaWdo LmNvbnN0X3ZhbCAoKTsKLSsgIGVsc2UKLSsgICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcg KGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKwotKyAgcmV0 dXJuIHZhbHVlX3NsaWNlIChhcnJheSwgbG93X2JvdW5kLCBoaWdoX2JvdW5kIC0gbG93X2JvdW5k ICsgMSk7Ci0rfQotKwotKy8qIEhlbHBlciBmb3Igc2tpcHBpbmcgYWxsIHRoZSBhcmd1bWVudHMg aW4gYW4gdW5kZXRlcm1pbmVkIGFyZ3VtZW50IGxpc3QuCi0rICAgVGhpcyBmdW5jdGlvbiB3YXMg ZGVzaWduZWQgZm9yIHVzZSBpbiB0aGUgT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUCi0rICAg Y2FzZSBvZiBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgYXMgbXVsdGlwbGUsIGJ1dCBub3QgYWxs LCBjb2RlIHBhdGhzCi0rICAgcmVxdWlyZSBhIGdlbmVyaWMgc2tpcC4gICovCi0rCi0rc3RhdGlj IHZvaWQKLStza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChpbnQgbmFyZ3MsIHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLAotKwkJCSAgIGVudW0gbm9zaWRlIG5vc2lkZSkKLSt7Ci0r ICBmb3IgKGludCBpID0gMDsgaSA8IG5hcmdzOyArK2kpCi0rICAgIGV2YWx1YXRlX3N1YmV4cCAo bnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0rfQotKwotKy8qIFJldHVybiB0aGUgbnVtYmVy IG9mIGRpbWVuc2lvbnMgZm9yIGEgRm9ydHJhbiBhcnJheSBvciBzdHJpbmcuICAqLwotKwotK2lu dAotK2NhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90eXBlKQotK3sKLSsg IGludCBuZGltZW4gPSAxOwotKyAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwotKwotKyAgaWYgKChh cnJheV90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAgICByZXR1cm4gMTsK LSsKLSsgIGlmICgoYXJyYXlfdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVfQVJSQVkpKQotKyAg ICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7 Ci0rCi0rICB0bXBfdHlwZSA9IGFycmF5X3R5cGU7Ci0rCi0rICB3aGlsZSAoKHRtcF90eXBlID0g VFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpKSkKLSsgICAgewotKyAgICAgIGlmICh0bXBfdHlw ZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfQVJSQVkpCi0rCSsrbmRpbWVuOwotKyAgICB9Ci0rICBy ZXR1cm4gbmRpbWVuOwotK30KLSsKLSsvKiBDYWxsZWQgZnJvbSBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgdG8gcGVyZm9ybSBhcnJheSBpbmRleGluZywgYW5kCi0rICAgc3ViLXJhbmdlIGV4dHJh Y3Rpb24sIGZvciBGb3J0cmFuLiAgQXMgd2VsbCBhcyBhcnJheXMgdGhpcyBmdW5jdGlvbgotKyAg IGFsc28gaGFuZGxlcyBzdHJpbmdzIGFzIHRoZXkgY2FuIGJlIHRyZWF0ZWQgbGlrZSBhcnJheXMg b2YgY2hhcmFjdGVycy4KLSsgICBBUlJBWSBpcyB0aGUgYXJyYXkgb3Igc3RyaW5nIGJlaW5nIGFj Y2Vzc2VkLiAgRVhQLCBQT1MsIGFuZCBOT1NJREUgYXJlCi0rICAgYXMgZm9yIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCwgYW5kIE5BUkdTIGlzIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCi0rICAg aW4gdGhpcyBhY2Nlc3MgKGUuZy4gJ2FycmF5ICgxLDIsMyknIHdvdWxkIGJlIE5BUkdTIDMpLiAg Ki8KLSsKLStzdGF0aWMgc3RydWN0IHZhbHVlICoKLStmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IChz dHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotKwkJCWludCAqcG9z LCBpbnQgbmFyZ3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSt7Ci0rICBpZiAoZXhwLT5lbHRzWypw b3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKLSsgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAo YXJyYXksIGV4cCwgcG9zLCBub3NpZGUpOwotKwotKyAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVAp Ci0rICAgIHsKLSsgICAgICBza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChuYXJncywgZXhwLCBw b3MsIG5vc2lkZSk7Ci0rICAgICAgLyogUmV0dXJuIHRoZSBkdW1teSB2YWx1ZSB3aXRoIHRoZSBj b3JyZWN0IHR5cGUuICAqLwotKyAgICAgIHJldHVybiBhcnJheTsKLSsgICAgfQotKwotKyAgTE9O R0VTVCBzdWJzY3JpcHRfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107Ci0rICBpbnQgbmRpbWVuc2lv bnMgPSAxOwotKyAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl IChhcnJheSkpOwotKwotKyAgaWYgKG5hcmdzID4gTUFYX0ZPUlRSQU5fRElNUykKLSsgICAgZXJy b3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBNQVhfRk9SVFJB Tl9ESU1TKTsKLSsKLSsgIG5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlfZGltcyAodHlwZSk7 Ci0rCi0rICBpZiAobmFyZ3MgIT0gbmRpbWVuc2lvbnMpCi0rICAgIGVycm9yIChfKCJXcm9uZyBu dW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKLSsKLSsgIGdkYl9hc3NlcnQgKG5hcmdzID4gMCk7Ci0r Ci0rICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdhbCBhcnJheSBzdWJzY3JpcHQg ZXhwcmVzc2lvbiBsZXQgdXMKLSsgICAgIGFjdHVhbGx5IGZpbmQgb3V0IHdoZXJlIHRoaXMgZWxl bWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAgKi8KLSsKLSsgIC8qIFRha2UgYXJyYXkgaW5kaWNl cyBsZWZ0IHRvIHJpZ2h0LiAgKi8KLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykK LSsgICAgewotKyAgICAgIC8qIEV2YWx1YXRlIGVhY2ggc3Vic2NyaXB0OyBpdCBtdXN0IGJlIGEg bGVnYWwgaW50ZWdlciBpbiBGNzcuICAqLwotKyAgICAgIHZhbHVlICphcmcyID0gZXZhbHVhdGVf c3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwotKyAgICAgIC8qIEZp bGwgaW4gdGhlIHN1YnNjcmlwdCBhcnJheS4gICovCi0rICAgICAgc3Vic2NyaXB0X2FycmF5W2ld ID0gdmFsdWVfYXNfbG9uZyAoYXJnMik7Ci0rICAgIH0KLSsKLSsgIC8qIEludGVybmFsIHR5cGUg b2YgYXJyYXkgaXMgYXJyYW5nZWQgcmlnaHQgdG8gbGVmdC4gICovCi0rICBmb3IgKGludCBpID0g bmFyZ3M7IGkgPiAwOyBpLS0pCi0rICAgIHsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rICAgICAgTE9OR0VTVCBp bmRleCA9IHN1YnNjcmlwdF9hcnJheVtpIC0gMV07Ci0rCi0rICAgICAgYXJyYXkgPSB2YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBpbmRleCwKLSsJCQkJCWY3N19nZXRfbG93ZXJib3Vu ZCAoYXJyYXlfdHlwZSkpOwotKyAgICB9Ci0rCi0rICByZXR1cm4gYXJyYXk7Ci0rfQotKwotIC8q IFNwZWNpYWwgZXhwcmVzc2lvbiBldmFsdWF0aW9uIGNhc2VzIGZvciBGb3J0cmFuLiAgKi8KLSAK LSBzdGF0aWMgc3RydWN0IHZhbHVlICoKLUBAIC0yODUsNiArNDEzLDg3IEBAIGV2YWx1YXRlX3N1 YmV4cF9mIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsIHN0cnVjdCBleHByZXNzaW9uICpleHAs Ci0gCQkJCSAgIFRZUEVfTEVOR1RIICh0eXBlKSk7Ci0gICAgICAgcmV0dXJuIHZhbHVlX2Zyb21f bG9uZ2VzdCAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGluX2ludCwKLSAJCQkJ IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpOwotKwotKwotKyAgICBjYXNl IE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVDoKLSsgICAgICAvKiBSZW1lbWJlciB0aGF0IGlu IEY3NywgZnVuY3Rpb25zLCBzdWJzdHJpbmcgb3BzIGFuZCBhcnJheSBzdWJzY3JpcHQKLSsgICAg ICAgICBvcGVyYXRpb25zIGNhbm5vdCBiZSBkaXNhbWJpZ3VhdGVkIGF0IHBhcnNlIHRpbWUuICBX ZSBoYXZlIG1hZGUKLSsgICAgICAgICBhbGwgYXJyYXkgc3Vic2NyaXB0IG9wZXJhdGlvbnMsIHN1 YnN0cmluZyBvcGVyYXRpb25zIGFzIHdlbGwgYXMKLSsgICAgICAgICBmdW5jdGlvbiBjYWxscyBj b21lIGhlcmUgYW5kIHdlIG5vdyBoYXZlIHRvIGRpc2NvdmVyIHdoYXQgdGhlIGhlY2sKLSsgICAg ICAgICB0aGlzIHRoaW5nIGFjdHVhbGx5IHdhcy4gIElmIGl0IGlzIGEgZnVuY3Rpb24sIHdlIHBy b2Nlc3MganVzdCBhcwotKyAgICAgICAgIGlmIHdlIGdvdCBhbiBPUF9GVU5DQUxMLiAgKi8KLSsg ICAgICBpbnQgbmFyZ3MgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjICsgMV0ubG9uZ2Nv bnN0KTsKLSsgICAgICAoKnBvcykgKz0gMjsKLSsKLSsgICAgICAvKiBGaXJzdCBkZXRlcm1pbmUg dGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAgKi8KLSsgICAgICBhcmcxID0gZXZh bHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRlKTsKLSsgICAgICB0eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotKyAgICAgIGVudW0gdHlwZV9jb2Rl IGNvZGUgPSB0eXBlLT5jb2RlICgpOwotKwotKyAgICAgIGlmIChjb2RlID09IFRZUEVfQ09ERV9Q VFIpCi0rCXsKLSsJICAvKiBGb3J0cmFuIGFsd2F5cyBwYXNzZXMgdmFyaWFibGUgdG8gc3Vicm91 dGluZXMgYXMgcG9pbnRlci4KLSsJICAgICBTbyB3ZSBuZWVkIHRvIGxvb2sgaW50byBpdHMgdGFy Z2V0IHR5cGUgdG8gc2VlIGlmIGl0IGlzCi0rCSAgICAgYXJyYXksIHN0cmluZyBvciBmdW5jdGlv bi4gIElmIGl0IGlzLCB3ZSBuZWVkIHRvIHN3aXRjaAotKwkgICAgIHRvIHRoZSB0YXJnZXQgdmFs dWUgdGhlIG9yaWdpbmFsIG9uZSBwb2ludHMgdG8uICAqLwotKwkgIHN0cnVjdCB0eXBlICp0YXJn ZXRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsKLSsKLSsJ ICBpZiAodGFyZ2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZCi0rCSAgICAgIHx8 IHRhcmdldF90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsJICAgICAgfHwgdGFy Z2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0ZVTkMpCi0rCSAgICB7Ci0rCSAgICAgIGFy ZzEgPSB2YWx1ZV9pbmQgKGFyZzEpOwotKwkgICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs dWVfdHlwZSAoYXJnMSkpOwotKwkgICAgICBjb2RlID0gdHlwZS0+Y29kZSAoKTsKLSsJICAgIH0K LSsJfQotKwotKyAgICAgIHN3aXRjaCAoY29kZSkKLSsJewotKwljYXNlIFRZUEVfQ09ERV9BUlJB WToKLSsJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotKwkgIHJldHVybiBmb3J0cmFuX3ZhbHVlX3N1 YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7Ci0rCi0rCWNhc2UgVFlQRV9D T0RFX1BUUjoKLSsJY2FzZSBUWVBFX0NPREVfRlVOQzoKLSsJY2FzZSBUWVBFX0NPREVfSU5URVJO QUxfRlVOQ1RJT046Ci0rCSAgewotKwkgICAgLyogSXQncyBhIGZ1bmN0aW9uIGNhbGwuICBBbGxv Y2F0ZSBhcmcgdmVjdG9yLCBpbmNsdWRpbmcKLSsJICAgIHNwYWNlIGZvciB0aGUgZnVuY3Rpb24g dG8gYmUgY2FsbGVkIGluIGFyZ3ZlY1swXSBhbmQgYQotKwkgICAgdGVybWluYXRpb24gTlVMTC4g ICovCi0rCSAgICBzdHJ1Y3QgdmFsdWUgKiphcmd2ZWMgPSAoc3RydWN0IHZhbHVlICoqKQotKwkg ICAgICBhbGxvY2EgKHNpemVvZiAoc3RydWN0IHZhbHVlICopICogKG5hcmdzICsgMikpOwotKwkg ICAgYXJndmVjWzBdID0gYXJnMTsKLSsJICAgIGludCB0ZW0gPSAxOwotKwkgICAgZm9yICg7IHRl bSA8PSBuYXJnczsgdGVtKyspCi0rCSAgICAgIHsKLSsJCWFyZ3ZlY1t0ZW1dID0gZXZhbHVhdGVf c3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwkJLyogQXJndW1lbnRz IGluIEZvcnRyYW4gYXJlIHBhc3NlZCBieSBhZGRyZXNzLiAgQ29lcmNlIHRoZQotKwkJICAgYXJn dW1lbnRzIGhlcmUgcmF0aGVyIHRoYW4gaW4gdmFsdWVfYXJnX2NvZXJjZSBhcwotKwkJICAgb3Ro ZXJ3aXNlIHRoZSBjYWxsIHRvIG1hbGxvYyB0byBwbGFjZSB0aGUgbm9uLWx2YWx1ZQotKwkJICAg cGFyYW1ldGVycyBpbiB0YXJnZXQgbWVtb3J5IGlzIGhpdCBieSB0aGlzIEZvcnRyYW4KLSsJCSAg IHNwZWNpZmljIGxvZ2ljLiAgVGhpcyByZXN1bHRzIGluIG1hbGxvYyBiZWluZyBjYWxsZWQKLSsJ CSAgIHdpdGggYSBwb2ludGVyIHRvIGFuIGludGVnZXIgZm9sbG93ZWQgYnkgYW4gYXR0ZW1wdCB0 bwotKwkJICAgbWFsbG9jIHRoZSBhcmd1bWVudHMgdG8gbWFsbG9jIGluIHRhcmdldCBtZW1vcnku Ci0rCQkgICBJbmZpbml0ZSByZWN1cnNpb24gZW5zdWVzLiAgKi8KLSsJCWlmIChjb2RlID09IFRZ UEVfQ09ERV9QVFIgfHwgY29kZSA9PSBUWVBFX0NPREVfRlVOQykKLSsJCSAgewotKwkJICAgIGJv b2wgaXNfYXJ0aWZpY2lhbAotKwkJICAgICAgPSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwgKHZhbHVl X3R5cGUgKGFyZzEpLCB0ZW0gLSAxKTsKLSsJCSAgICBhcmd2ZWNbdGVtXSA9IGZvcnRyYW5fYXJn dW1lbnRfY29udmVydCAoYXJndmVjW3RlbV0sCi0rCQkJCQkJCSAgICBpc19hcnRpZmljaWFsKTsK LSsJCSAgfQotKwkgICAgICB9Ci0rCSAgICBhcmd2ZWNbdGVtXSA9IDA7CS8qIHNpZ25hbCBlbmQg b2YgYXJnbGlzdCAqLwotKwkgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCi0rCSAgICAgIHJl dHVybiBldmFsX3NraXBfdmFsdWUgKGV4cCk7Ci0rCSAgICByZXR1cm4gZXZhbHVhdGVfc3ViZXhw X2RvX2NhbGwgKGV4cCwgbm9zaWRlLCBuYXJncywgYXJndmVjLCBOVUxMLAotKwkJCQkJICAgIGV4 cGVjdF90eXBlKTsKLSsJICB9Ci0rCi0rCWRlZmF1bHQ6Ci0rCSAgZXJyb3IgKF8oIkNhbm5vdCBw ZXJmb3JtIHN1YnN0cmluZyBvbiB0aGlzIHR5cGUiKSk7Ci0rCX0KLSAgICAgfQotIAotICAgLyog U2hvdWxkIGJlIHVucmVhY2hhYmxlLiAgKi8KLUBAIC0zMTgsNiArNTI3LDExIEBAIG9wZXJhdG9y X2xlbmd0aF9mIChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcGMsIGludCAqb3Bs ZW5wLAotICAgICAgIG9wbGVuID0gMTsKLSAgICAgICBhcmdzID0gMjsKLSAgICAgICBicmVhazsK LSsKLSsgICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Q6Ci0rICAgICAgb3BsZW4g PSAzOwotKyAgICAgIGFyZ3MgPSAxICsgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twYyAtIDJd Lmxvbmdjb25zdCk7Ci0rICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSAgICpvcGxlbnAgPSBvcGxl bjsKLUBAIC0zOTAsNiArNjA0LDEwIEBAIHByaW50X3N1YmV4cF9mIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywKLSAgICAgY2FzZSBCSU5PUF9GT1JUUkFOX01PRFVMTzoKLSAgICAg ICBwcmludF9iaW5vcF9zdWJleHBfZiAoZXhwLCBwb3MsIHN0cmVhbSwgcHJlYywgIk1PRFVMTyIp OwotICAgICAgIHJldHVybjsKLSsKLSsgICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJ U1Q6Ci0rICAgICAgcHJpbnRfc3ViZXhwX2Z1bmNhbGwgKGV4cCwgcG9zLCBzdHJlYW0pOwotKyAg ICAgIHJldHVybjsKLSAgICAgfQotIH0KLSAKLUBAIC00MzIsNiArNjUwLDkgQEAgZHVtcF9zdWJl eHBfYm9keV9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICBjYXNlIEJJTk9QX0ZPUlRS QU5fTU9EVUxPOgotICAgICAgIG9wZXJhdG9yX2xlbmd0aF9mIChleHAsIChlbHQgKyAxKSwgJm9w bGVuLCAmbmFyZ3MpOwotICAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIE9QX0Y3N19VTkRFVEVS TUlORURfQVJHTElTVDoKLSsgICAgICByZXR1cm4gZHVtcF9zdWJleHBfYm9keV9mdW5jYWxsIChl eHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgfQotIAotICAgZWx0ICs9IG9wbGVuOwotZGlmZiAtLWdp dCBhL2dkYi9mb3J0cmFuLW9wZXJhdG9yLmRlZiBiL2dkYi9mb3J0cmFuLW9wZXJhdG9yLmRlZgot LS0tIGEvZ2RiL2ZvcnRyYW4tb3BlcmF0b3IuZGVmCi0rKysgYi9nZGIvZm9ydHJhbi1vcGVyYXRv ci5kZWYKLUBAIC0xNyw2ICsxNywxNCBAQAotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLwotIAotKy8qIFRoaXMgaXMgRVhBQ1RMWSBsaWtlIE9QX0ZVTkNBTEwgYnV0IGlzIHNlbWFu dGljYWxseSBkaWZmZXJlbnQuCi0rICAgSW4gRjc3LCBhcnJheSBzdWJzY3JpcHQgZXhwcmVzc2lv bnMsIHN1YnN0cmluZyBleHByZXNzaW9ucyBhbmQKLSsgICBmdW5jdGlvbiBjYWxscyBhcmUgYWxs IGV4YWN0bHkgdGhlIHNhbWUgc3ludGFjdGljYWxseS4gIFRoZXkKLSsgICBtYXkgb25seSBiZSBk aXNhbWJpZ3VhdGVkIGF0IHJ1bnRpbWUuICBUaHVzIHRoaXMgb3BlcmF0b3IsCi0rICAgd2hpY2gg aW5kaWNhdGVzIHRoYXQgd2UgaGF2ZSBmb3VuZCBzb21ldGhpbmcgb2YgdGhlIGZvcm0KLSsgICA8 bmFtZT4gKCA8c3R1ZmY+ICkuICAqLwotK09QIChPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Qp Ci0rCi0gLyogU2luZ2xlIG9wZXJhbmQgYnVpbHRpbnMuICAqLwotIE9QIChVTk9QX0ZPUlRSQU5f S0lORCkKLSBPUCAoVU5PUF9GT1JUUkFOX0ZMT09SKQotZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5j IGIvZ2RiL3BhcnNlLmMKLS0tLSBhL2dkYi9wYXJzZS5jCi0rKysgYi9nZGIvcGFyc2UuYwotQEAg LTgxNyw3ICs4MTcsNiBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBl eHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIGJyZWFrOwotIAotICAgICBjYXNl IE9QX0ZVTkNBTEw6Ci0tICAgIGNhc2UgT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUOgotICAg ICAgIG9wbGVuID0gMzsKLSAgICAgICBhcmdzID0gMSArIGxvbmdlc3RfdG9faW50IChleHByLT5l bHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7Ci0gICAgICAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEv Z2RiL3BhcnNlci1kZWZzLmggYi9nZGIvcGFyc2VyLWRlZnMuaAotLS0tIGEvZ2RiL3BhcnNlci1k ZWZzLmgKLSsrKyBiL2dkYi9wYXJzZXItZGVmcy5oCi1AQCAtMzM4LDYgKzMzOCwxMyBAQCBleHRl cm4gaW50IGR1bXBfc3ViZXhwIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQpOwotIGV4dGVybiBpbnQgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCAoc3RydWN0IGV4 cHJlc3Npb24gKiwgCi0gCQkJCSAgICAgIHN0cnVjdCB1aV9maWxlICosIGludCk7Ci0gCi0rLyog RHVtcCAodG8gU1RSRUFNKSBhIGZ1bmN0aW9uIGNhbGwgbGlrZSBleHByZXNzaW9uIGF0IHBvc2l0 aW9uIEVMVCBpbiB0aGUKLSsgICBleHByZXNzaW9uIGFycmF5IEVYUC4gIFJldHVybiBhIG5ldyB2 YWx1ZSBmb3IgRUxUIGp1c3QgYWZ0ZXIgdGhlCi0rICAgZnVuY3Rpb24gY2FsbCBleHByZXNzaW9u LiAgKi8KLSsKLStleHRlcm4gaW50IGR1bXBfc3ViZXhwX2JvZHlfZnVuY2FsbCAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwKLSsJCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgZWx0 KTsKLSsKLSBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0cnVjdCBleHByZXNz aW9uICosIGludCwgaW50ICosIGludCAqKTsKLSAKLSBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5n dGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosCi1AQCAt NDQwLDYgKzQ0NywxNSBAQCBleHRlcm4gdm9pZCBwcmludF9zdWJleHAgKHN0cnVjdCBleHByZXNz aW9uICosIGludCAqLCBzdHJ1Y3QgdWlfZmlsZSAqLAotIGV4dGVybiB2b2lkIHByaW50X3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKiwgaW50ICosIAotIAkJCQkgICBzdHJ1Y3Qg dWlfZmlsZSAqLCBlbnVtIHByZWNlZGVuY2UpOwotIAotKy8qIFByaW50IGEgZnVuY3Rpb24gY2Fs bCBsaWtlIGV4cHJlc3Npb24gdG8gU1RSRUFNLiAgVGhpcyBpcyBjYWxsZWQgYXMgYQotKyAgIGhl bHBlciBmdW5jdGlvbiBieSB3aGljaCBwb2ludCB0aGUgZXhwcmVzc2lvbiBub2RlIGlkZW50aWZ5 aW5nIHRoaXMgYXMgYQotKyAgIGZ1bmN0aW9uIGNhbGwgaGFzIGFscmVhZHkgYmVlbiBzdHJpcHBl ZCBvZmYgYW5kIFBPUyBzaG91bGQgcG9pbnQgdG8gdGhlCi0rICAgbnVtYmVyIG9mIGZ1bmN0aW9u IGNhbGwgYXJndW1lbnRzLiAgRVhQIGlzIHRoZSBvYmplY3QgY29udGFpbmluZyB0aGUKLSsgICBs aXN0IG9mIGV4cHJlc3Npb24gZWxlbWVudHMuICAqLwotKwotK2V4dGVybiB2b2lkIHByaW50X3N1 YmV4cF9mdW5jYWxsIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSsJCQkJICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSsKLSAvKiBGdW5jdGlvbiB1c2VkIHRvIGF2b2lkIGRp cmVjdCBjYWxscyB0byBmcHJpbnRmCi0gICAgaW4gdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSBi aXNvbiBwYXJzZXIuICAqLwotIAotZGlmZiAtLWdpdCBhL2dkYi9zdGQtb3BlcmF0b3IuZGVmIGIv Z2RiL3N0ZC1vcGVyYXRvci5kZWYKLS0tLSBhL2dkYi9zdGQtb3BlcmF0b3IuZGVmCi0rKysgYi9n ZGIvc3RkLW9wZXJhdG9yLmRlZgotQEAgLTE2OCwxNCArMTY4LDYgQEAgT1AgKE9QX0ZVTkNBTEwp Ci0gICAgcG9pbnRlci4gIFRoaXMgaXMgYW4gT2JqZWN0aXZlIEMgbWVzc2FnZS4gICovCi0gT1Ag KE9QX09CSkNfTVNHQ0FMTCkKLSAKLS0vKiBUaGlzIGlzIEVYQUNUTFkgbGlrZSBPUF9GVU5DQUxM IGJ1dCBpcyBzZW1hbnRpY2FsbHkgZGlmZmVyZW50LgotLSAgIEluIEY3NywgYXJyYXkgc3Vic2Ny aXB0IGV4cHJlc3Npb25zLCBzdWJzdHJpbmcgZXhwcmVzc2lvbnMgYW5kCi0tICAgZnVuY3Rpb24g Y2FsbHMgYXJlIGFsbCBleGFjdGx5IHRoZSBzYW1lIHN5bnRhY3RpY2FsbHkuICBUaGV5Ci0tICAg bWF5IG9ubHkgYmUgZGlzYW1iaWd1YXRlZCBhdCBydW50aW1lLiAgVGh1cyB0aGlzIG9wZXJhdG9y LAotLSAgIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlIGhhdmUgZm91bmQgc29tZXRoaW5nIG9mIHRo ZSBmb3JtCi0tICAgPG5hbWU+ICggPHN0dWZmPiApLiAgKi8KLS1PUCAoT1BfRjc3X1VOREVURVJN SU5FRF9BUkdMSVNUKQotLQotIC8qIE9QX0NPTVBMRVggdGFrZXMgYSB0eXBlIGluIHRoZSBmb2xs b3dpbmcgZWxlbWVudCwgZm9sbG93ZWQgYnkgYW5vdGhlcgotICAgIE9QX0NPTVBMRVgsIG1ha2lu ZyB0aHJlZSBleHBfZWxlbWVudHMuICBJdCBpcyBmb2xsb3dlZCBieSB0d28gZG91YmxlCi0gICAg YXJncywgYW5kIGNvbnZlcnRzIHRoZW0gaW50byBhIGNvbXBsZXggbnVtYmVyIG9mIHRoZSBnaXZl biB0eXBlLiAgKi8KCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTEucGF0 Y2ggYi9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDY4ODI2OTkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJj Mi4zNC0xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzA3ICswLDAgQEAKLUZyb20gRkVET1JB X1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8 a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE0IEp1biAyMDIxIDE5OjEyOjA2IC0wNzAw Ci1TdWJqZWN0OiBnZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTEucGF0Y2gKLQotOzsgQmFja3Bv cnQgcGF0Y2ggZml4aW5nIGdkYiBvbiBnbGliYy0yLjM0IG1hY2hpbmVzIHdpdGggcmVnYXJkIHRv IGF0dGFjaGluZwotOzsgdG8gcHJvY2Vzc2VzIChSSCBCWiAxOTcxMDk2KS4KLQotZ2RiOiB0cnkg dG8gbG9hZCBsaWJ0aHJlYWRfZGIgb25seSBhZnRlciByZWFkaW5nIGFsbCBzaGFyZWQgbGlicmFy aWVzIHdoZW4gYXR0YWNoaW5nIC8gaGFuZGxpbmcgYSBmb3JrIGNoaWxkCi0KLVdoZW4gdHJ5aW5n IHRvIGF0dGFjaCB0byBhIHB0aHJlYWQgcHJvY2VzcyBvbiBhIExpbnV4IHN5c3RlbSB3aXRoIGds aWJjIDIuMzMsCi13ZSBnZXQ6Ci0KLSAgICAkIC4vZ2RiIC1xIC1ueCAtLWRhdGEtZGlyZWN0b3J5 PWRhdGEtZGlyZWN0b3J5IC1wIDE0NzIwMTAKLSAgICBBdHRhY2hpbmcgdG8gcHJvY2VzcyAxNDcy MDEwCi0gICAgW05ldyBMV1AgMTQ3MjAxM10KLSAgICBbTmV3IExXUCAxNDcyMDE0XQotICAgIFtO ZXcgTFdQIDE0NzIwMTVdCi0gICAgRXJyb3Igd2hpbGUgcmVhZGluZyBzaGFyZWQgbGlicmFyeSBz eW1ib2xzIGZvciAvdXNyL2xpYi9saWJwdGhyZWFkLnNvLjA6Ci0gICAgQ2Fubm90IGZpbmQgdXNl ci1sZXZlbCB0aHJlYWQgZm9yIExXUCAxNDcyMDE1OiBnZW5lcmljIGVycm9yCi0gICAgMHgwMDAw N2ZmZmY2ZDM2MzdmIGluIHBvbGwgKCkgZnJvbSAvdXNyL2xpYi9saWJjLnNvLjYKLSAgICAoZ2Ri KQotCi1XaGVuIGF0dGFjaGluZyB0byBhIHByb2Nlc3MgKG9yIGhhbmRsaW5nIGEgZm9yayBjaGls ZCwgYW4gb3BlcmF0aW9uIHZlcnkKLXNpbWlsYXIgdG8gYXR0YWNoaW5nKSwgR0RCIHJlYWRzIHRo ZSBzaGFyZWQgbGlicmFyeSBsaXN0IGZyb20gdGhlCi1wcm9jZXNzLiAgRm9yIGVhY2ggc2hhcmVk IGxpYnJhcnkgKGlmICJzZXQgYXV0by1zb2xpYi1hZGQiIGlzIG9uKSwgaXQKLXJlYWRzIGl0cyBz eW1ib2xzIGFuZCBjYWxscyB0aGUgIm5ld19vYmpmaWxlIiBvYnNlcnZhYmxlLgotCi1UaGUgbGli dGhyZWFkLWRiIGNvZGUgbW9uaXRvcnMgdGhpcyBvYnNlcnZhYmxlLCBhbmQgaWYgaXQgc2VlcyBh bgotb2JqZmlsZSBuYW1lZCBzb21ld2hhdCBsaWtlICJsaWJwdGhyZWFkLnNvIiBnbyBieSwgaXQg dHJpZXMgdG8gbG9hZAotbGlidGhyZWFkX2RiLnNvIGluIHRoZSBHREIgcHJvY2VzcyBpdHNlbGYu ICBsaWJ0aHJlYWRfZGIga25vd3MgaG93IHRvCi1uYXZpZ2F0ZSBsaWJwdGhyZWFkJ3MgZGF0YSBz dHJ1Y3R1cmVzIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKLWV4aXN0aW5nIHRocmVhZHMu Ci0KLVRvIGxvY2F0ZSB0aGVzZSBkYXRhIHN0cnVjdHVyZXMsIGxpYnRocmVhZF9kYiBjYWxscyBw c19wZ2xvYmFsX2xvb2t1cAotKGltcGxlbWVudGVkIGluIHByb2Mtc2VydmljZS5jKSwgcGFzc2lu ZyBpbiBhIHN5bWJvbCBuYW1lIGFuZCBleHBlY3RpbmcKLWFuIGFkZHJlc3MgaW4gcmV0dXJuLgot Ci1CZWZvcmUgZ2xpYmMgMi4zMywgbGlidGhyZWFkX2RiIGFsd2F5cyBhc2tlZCBmb3Igc3ltYm9s cyBmb3VuZCBpbgotbGlicHRocmVhZC4gIFRoZXJlIHdhcyBubyBvcmRlcmluZyBwcm9ibGVtOiBz aW5jZSB3ZSB3ZXJlIGFsd2F5cyB0cnlpbmcKLXRvIGxvYWQgbGlidGhyZWFkX2RiIGluIHJlYWN0 aW9uIHRvIHByb2Nlc3NpbmcgbGlicHRocmVhZCAoYW5kIHJlYWRpbmcKLWluIGl0cyBzeW1ib2xz KSBhbmQgbGlidGhyZWFkX2RiIG9ubHkgYXNrZWQgc3ltYm9scyBmcm9tIGxpYnB0aHJlYWQsIHRo ZQotcmVxdWVzdGVkIHN5bWJvbHMgY291bGQgYWx3YXlzIGJlIGZvdW5kLiAgU3RhcnRpbmcgd2l0 aCBnbGliYyAyLjMzLAotbGlidGhyZWFkX2RiIG5vdyBhc2tzIGZvciBhIHN5bWJvbCBuYW1lIHRo YXQgY2FuIGJlIGZvdW5kIGluCi0vbGliL2xkLWxpbnV4LXg4Ni02NC5zby4yIChfcnRsZF9nbG9i YWwpLiAgQW5kIHRoZSBvcmRlcmluZyBpbiB3aGljaCBHREIKLXJlYWRzIHRoZSBzaGFyZWQgbGli cmFyaWVzIGZyb20gdGhlIGluZmVyaW9yIHdoZW4gYXR0YWNoaW5nIGlzCi11bmZvcnR1bmF0ZSwg aW4gdGhhdCBsaWJwdGhyZWFkIGlzIHByb2Nlc3NlZCBiZWZvcmUgbGQtbGludXguICBTbyB3aGVu Ci1sb2FkaW5nIGxpYnRocmVhZF9kYiBpbiByZWFjdGlvbiB0byBwcm9jZXNzaW5nIGxpYnB0aHJl YWQsIGFuZAotbGlidGhyZWFkX2RiIHJlcXVlc3RzIHRoZSBzeW1ib2wgdGhhdCBpcyBmcm9tIGxk LWxpbnV4LCBHREIgaXMgbm90IHlldAotYWJsZSB0byBzdXBwbHkgaXQuCi0KLVRoYXQgcHJvYmxl bWF0aWMgc3ltYm9sIGxvb2t1cCBoYXBwZW5zIGluIHRoZSB0aHJlYWRfZnJvbV9sd3AgZnVuY3Rp b24sCi13aGVuIHdlIGNhbGwgdGRfdGFfbWFwX2x3cDJ0aHJfcCwgYW5kIGFuIGV4Y2VwdGlvbiBp cyB0aHJvd24gYXQgdGhpcwotcG9pbnQ6Ci0KLSAgICAjMCAgMHgwMDAwN2ZmZmY2NjgxMDEyIGlu IF9fY3h4YWJpdjE6Ol9fY3hhX3Rocm93IChvYmo9MHg2MGUwMDAwMDYxMDAsIHRpbmZvPTB4NTU1 NTYwMDMzYjUwIDx0eXBlaW5mbyBmb3IgZ2RiX2V4Y2VwdGlvbl9lcnJvcj4sIGRlc3Q9MHg1NTU1 NWQ5NDA0YmMgPGdkYl9leGNlcHRpb25fZXJyb3I6On5nZGJfZXhjZXB0aW9uX2Vycm9yKCk+KSBh dCAvYnVpbGQvZ2NjL3NyYy9nY2MvbGlic3RkYysrLXYzL2xpYnN1cGMrKy9laF90aHJvdy5jYzo3 OAotICAgICMxICAweDAwMDA1NTU1NWU1ZDM3MzQgaW4gdGhyb3dfaXQocmV0dXJuX3JlYXNvbiwg ZXJyb3JzLCBjb25zdCBjaGFyICosIHR5cGVkZWYgX192YV9saXN0X3RhZyBfX3ZhX2xpc3RfdGFn ICopIChyZWFzb249UkVUVVJOX0VSUk9SLCBlcnJvcj1HRU5FUklDX0VSUk9SLCBmbXQ9MHg1NTU1 NWYwYzUzNjAgIkNhbm5vdCBmaW5kIHVzZXItbGV2ZWwgdGhyZWFkIGZvciBMV1AgJWxkOiAlcyIs IGFwPTB4N2ZmZmZmZmZhYWUwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGJz dXBwb3J0L2NvbW1vbi1leGNlcHRpb25zLmNjOjIwMAotICAgICMyICAweDAwMDA1NTU1NWU1ZDM3 ZDQgaW4gdGhyb3dfdmVycm9yIChlcnJvcj1HRU5FUklDX0VSUk9SLCBmbXQ9MHg1NTU1NWYwYzUz NjAgIkNhbm5vdCBmaW5kIHVzZXItbGV2ZWwgdGhyZWFkIGZvciBMV1AgJWxkOiAlcyIsIGFwPTB4 N2ZmZmZmZmZhYWUwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGJzdXBwb3J0 L2NvbW1vbi1leGNlcHRpb25zLmNjOjIwOAotICAgICMzICAweDAwMDA1NTU1NWUwYjBlZDIgaW4g dmVycm9yIChzdHJpbmc9MHg1NTU1NWYwYzUzNjAgIkNhbm5vdCBmaW5kIHVzZXItbGV2ZWwgdGhy ZWFkIGZvciBMV1AgJWxkOiAlcyIsIGFyZ3M9MHg3ZmZmZmZmZmFhZTApIGF0IC9ob21lL3NpbWFy ay9zcmMvYmludXRpbHMtZ2RiL2dkYi91dGlscy5jOjE3MQotICAgICM0ICAweDAwMDA1NTU1NWU1 ZTg5OGEgaW4gZXJyb3IgKGZtdD0weDU1NTU1ZjBjNTM2MCAiQ2Fubm90IGZpbmQgdXNlci1sZXZl bCB0aHJlYWQgZm9yIExXUCAlbGQ6ICVzIikgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1n ZGIvZ2Ric3VwcG9ydC9lcnJvcnMuY2M6NDMKLSAgICAjNSAgMHgwMDAwNTU1NTVkMDZiNGJjIGlu IHRocmVhZF9mcm9tX2x3cCAoc3RvcHBlZD0weDYxNzAwMDAzNWQ4MCwgcHRpZD0uLi4pIGF0IC9o b21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzo0MTgKLSAg ICAjNiAgMHgwMDAwNTU1NTVkMDcwNDBkIGluIHRyeV90aHJlYWRfZGJfbG9hZF8xIChpbmZvPTB4 NjBjMDAwMDExMTQwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvbGludXgt dGhyZWFkLWRiLmM6OTEyCi0gICAgIzcgIDB4MDAwMDU1NTU1ZDA3MTEwMyBpbiB0cnlfdGhyZWFk X2RiX2xvYWQgKGxpYnJhcnk9MHg1NTU1NWYwYzYyYTAgImxpYnRocmVhZF9kYi5zby4xIiwgY2hl Y2tfYXV0b19sb2FkX3NhZmU9ZmFsc2UpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2Ri L2dkYi9saW51eC10aHJlYWQtZGIuYzoxMDE0Ci0gICAgIzggIDB4MDAwMDU1NTU1ZDA3MjE2OCBp biB0cnlfdGhyZWFkX2RiX2xvYWRfZnJvbV9zZGlyICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmlu dXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMDkxCi0gICAgIzkgIDB4MDAwMDU1NTU1 ZDA3MmQxYyBpbiB0aHJlYWRfZGJfbG9hZF9zZWFyY2ggKCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL2xpbnV4LXRocmVhZC1kYi5jOjExNDYKLSAgICAjMTAgMHgwMDAwNTU1 NTVkMDczNjVjIGluIHRocmVhZF9kYl9sb2FkICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMjAzCi0gICAgIzExIDB4MDAwMDU1NTU1ZDA3 MzczZSBpbiBjaGVja19mb3JfdGhyZWFkX2RiICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMjQ2Ci0gICAgIzEyIDB4MDAwMDU1NTU1ZDA3 MzhhYiBpbiB0aHJlYWRfZGJfbmV3X29iamZpbGUgKG9iamZpbGU9MHg2MTMwMDAwMGMwYzApIGF0 IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMjc1 Ci0gICAgIzEzIDB4MDAwMDU1NTU1YmQxMDc0MCBpbiBzdGQ6Ol9faW52b2tlX2ltcGw8dm9pZCwg dm9pZCAoKiYpKG9iamZpbGUqKSwgb2JqZmlsZSo+IChfX2Y9QDB4NjE2MDAwMDY4ZDg4OiAweDU1 NTU1ZDA3Mzc0NSA8dGhyZWFkX2RiX25ld19vYmpmaWxlKG9iamZpbGUqKT4pIGF0IC91c3IvaW5j bHVkZS9jKysvMTAuMi4wL2JpdHMvaW52b2tlLmg6NjAKLSAgICAjMTQgMHgwMDAwNTU1NTViZDAy MDk2IGluIHN0ZDo6X19pbnZva2Vfcjx2b2lkLCB2b2lkICgqJikob2JqZmlsZSopLCBvYmpmaWxl Kj4gKF9fZm49QDB4NjE2MDAwMDY4ZDg4OiAweDU1NTU1ZDA3Mzc0NSA8dGhyZWFkX2RiX25ld19v YmpmaWxlKG9iamZpbGUqKT4pIGF0IC91c3IvaW5jbHVkZS9jKysvMTAuMi4wL2JpdHMvaW52b2tl Lmg6MTUzCi0gICAgIzE1IDB4MDAwMDU1NTU1YmNlMDM5MiBpbiBzdGQ6Ol9GdW5jdGlvbl9oYW5k bGVyPHZvaWQgKG9iamZpbGUqKSwgdm9pZCAoKikob2JqZmlsZSopPjo6X01faW52b2tlKHN0ZDo6 X0FueV9kYXRhIGNvbnN0Jiwgb2JqZmlsZSomJikgKF9fZnVuY3Rvcj0uLi4sIF9fYXJncyMwPUAw eDdmZmZmZmZmYjRhMDogMHg2MTMwMDAwMGMwYzApIGF0IC91c3IvaW5jbHVkZS9jKysvMTAuMi4w L2JpdHMvc3RkX2Z1bmN0aW9uLmg6MjkxCi0gICAgIzE2IDB4MDAwMDU1NTU1ZDM1OTVjMCBpbiBz dGQ6OmZ1bmN0aW9uPHZvaWQgKG9iamZpbGUqKT46Om9wZXJhdG9yKCkob2JqZmlsZSopIGNvbnN0 ICh0aGlzPTB4NjE2MDAwMDY4ZDg4LCBfX2FyZ3MjMD0weDYxMzAwMDAwYzBjMCkgYXQgL3Vzci9p bmNsdWRlL2MrKy8xMC4yLjAvYml0cy9zdGRfZnVuY3Rpb24uaDo2MjIKLSAgICAjMTcgMHgwMDAw NTU1NTVkMzU2YjdmIGluIGdkYjo6b2JzZXJ2ZXJzOjpvYnNlcnZhYmxlPG9iamZpbGUqPjo6bm90 aWZ5ICh0aGlzPTB4NTU1NTY2NzI3MDIwIDxnZGI6Om9ic2VydmVyczo6bmV3X29iamZpbGU+LCBh cmdzIzA9MHg2MTMwMDAwMGMwYzApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dk Yi8uLi9nZGJzdXBwb3J0L29ic2VydmFibGUuaDoxMDYKLSAgICAjMTggMHgwMDAwNTU1NTVkYTNm MjI4IGluIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzIChhYmZkPTB4NjEyMDAwMDFjY2MwLCBu YW1lPTB4NjE5MDAwMGQ5MDkwICIvdXNyL2xpYi9saWJwdGhyZWFkLnNvLjAiLCBhZGRfZmxhZ3M9 Li4uLCBhZGRycz0weDdmZmZmZmZmYmMxMCwgZmxhZ3M9Li4uLCBwYXJlbnQ9MHgwKSBhdCAvaG9t ZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc3ltZmlsZS5jOjExMzEKLSAgICAjMTkgMHgw MDAwNTU1NTVkYTNmNzYzIGluIHN5bWJvbF9maWxlX2FkZF9mcm9tX2JmZCAoYWJmZD0weDYxMjAw MDAxY2NjMCwgbmFtZT0weDYxOTAwMDBkOTA5MCAiL3Vzci9saWIvbGlicHRocmVhZC5zby4wIiwg YWRkX2ZsYWdzPTxlcnJvciByZWFkaW5nIHZhcmlhYmxlOiBDYW5ub3QgYWNjZXNzIG1lbW9yeSBh dCBhZGRyZXNzIDB4ZmZmZmZmZmZmZmZmZmZiMD4sIGFkZHJzPTB4N2ZmZmZmZmZiYzEwLCBmbGFn cz08ZXJyb3IgcmVhZGluZyB2YXJpYWJsZTogQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVz cyAweGZmZmZmZmZmZmZmZmZmYzA+LCBwYXJlbnQ9MHgwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2Jp bnV0aWxzLWdkYi9nZGIvc3ltZmlsZS5jOjExNjcKLSAgICAjMjAgMHgwMDAwNTU1NTVkOTVmOWZh IGluIHNvbGliX3JlYWRfc3ltYm9scyAoc289MHg2MTkwMDAwZDhlODAsIGZsYWdzPS4uLikgYXQg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL3NvbGliLmM6NjgxCi0gICAgIzIxIDB4 MDAwMDU1NTU1ZDk2MjMzZCBpbiBzb2xpYl9hZGQgKHBhdHRlcm49MHgwLCBmcm9tX3R0eT0wLCBy ZWFkc3ltcz0xKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWIuYzo5 ODcKLSAgICAjMjIgMHgwMDAwNTU1NTVkOTM2NDZlIGluIGVuYWJsZV9icmVhayAoaW5mbz0weDYw ODAwMDAwOGYyMCwgZnJvbV90dHk9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIv Z2RiL3NvbGliLXN2cjQuYzoyMjM4Ci0gICAgIzIzIDB4MDAwMDU1NTU1ZDkzY2ZjMCBpbiBzdnI0 X3NvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChmcm9tX3R0eT0wKSBhdCAvaG9tZS9zaW1hcmsv c3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWItc3ZyNC5jOjMwNDkKLSAgICAjMjQgMHgwMDAwNTU1 NTVkOTY2MTBkIGluIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChmcm9tX3R0eT0wKSBhdCAv aG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWIuYzoxMTk1Ci0gICAgIzI1IDB4 MDAwMDU1NTU1Y2RlZTMxOCBpbiBwb3N0X2NyZWF0ZV9pbmZlcmlvciAoZnJvbV90dHk9MCkgYXQg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZmNtZC5jOjMxOAotICAgICMyNiAw eDAwMDA1NTU1NWNlMDBlNmUgaW4gc2V0dXBfaW5mZXJpb3IgKGZyb21fdHR5PTApIGF0IC9ob21l L3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZjbWQuYzoyNDM5Ci0gICAgIzI3IDB4MDAw MDU1NTU1Y2U1OWMzNCBpbiBoYW5kbGVfb25lIChldmVudD0uLi4pIGF0IC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo0ODg3Ci0gICAgIzI4IDB4MDAwMDU1NTU1Y2U1 Y2QwMCBpbiBzdG9wX2FsbF90aHJlYWRzICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9pbmZydW4uYzo1MDY0Ci0gICAgIzI5IDB4MDAwMDU1NTU1Y2U3ZjBkYSBpbiBzdG9w X3dhaXRpbmcgKGVjcz0weDdmZmZmZmZmZDE3MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGls cy1nZGIvZ2RiL2luZnJ1bi5jOjgwMDYKLSAgICAjMzAgMHgwMDAwNTU1NTVjZTY3ZjVjIGluIGhh bmRsZV9zaWduYWxfc3RvcCAoZWNzPTB4N2ZmZmZmZmZkMTcwKSBhdCAvaG9tZS9zaW1hcmsvc3Jj L2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6NjA2MgotICAgICMzMSAweDAwMDA1NTU1NWNlNjM2 NTMgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50IChlY3M9MHg3ZmZmZmZmZmQxNzApIGF0IC9ob21l L3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo1NzI3Ci0gICAgIzMyIDB4MDAw MDU1NTU1Y2U0ZjI5NyBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKSBhdCAvaG9tZS9zaW1hcmsv c3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6NDEwNQotICAgICMzMyAweDAwMDA1NTU1NWNk YmUzYmYgaW4gaW5mZXJpb3JfZXZlbnRfaGFuZGxlciAoZXZlbnRfdHlwZT1JTkZfUkVHX0VWRU5U KSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mLWxvb3AuYzo0MgotICAg ICMzNCAweDAwMDA1NTU1NWQwMTgwNDcgaW4gaGFuZGxlX3RhcmdldF9ldmVudCAoZXJyb3I9MCwg Y2xpZW50X2RhdGE9MHgwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvbGlu dXgtbmF0LmM6NDA2MAotICAgICMzNSAweDAwMDA1NTU1NWU1ZWE3N2UgaW4gaGFuZGxlX2ZpbGVf ZXZlbnQgKGZpbGVfcHRyPTB4NjA2MDAwMDhiMWMwLCByZWFkeV9tYXNrPTEpIGF0IC9ob21lL3Np bWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYnN1cHBvcnQvZXZlbnQtbG9vcC5jYzo1NzUKLSAgICAj MzYgMHgwMDAwNTU1NTVlNWViMDljIGluIGdkYl93YWl0X2Zvcl9ldmVudCAoYmxvY2s9MCkgYXQg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ric3VwcG9ydC9ldmVudC1sb29wLmNjOjcw MQotICAgICMzNyAweDAwMDA1NTU1NWU1ZThkMTkgaW4gZ2RiX2RvX29uZV9ldmVudCAoKSBhdCAv aG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6MjEy Ci0gICAgIzM4IDB4MDAwMDU1NTU1ZGQ2ZTBkNCBpbiB3YWl0X3N5bmNfY29tbWFuZF9kb25lICgp IGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90b3AuYzo1MjgKLSAgICAjMzkg MHgwMDAwNTU1NTVkZDZlMzcyIGluIG1heWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUgKHdhc19z eW5jPTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90b3AuYzo1NDUKLSAg ICAjNDAgMHgwMDAwNTU1NTVkMGVjN2M4IGluIGNhdGNoX2NvbW1hbmRfZXJyb3JzIChjb21tYW5k PTB4NTU1NTVjZTAxYmI4IDxhdHRhY2hfY29tbWFuZChjaGFyIGNvbnN0KiwgaW50KT4sIGFyZz0w eDdmZmZmZmZmZTI4ZCAiMTQ3MjAxMCIsIGZyb21fdHR5PTEsIGRvX2JwX2FjdGlvbnM9ZmFsc2Up IGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6NDUyCi0gICAgIzQx IDB4MDAwMDU1NTU1ZDBmMDNhZCBpbiBjYXB0dXJlZF9tYWluXzEgKGNvbnRleHQ9MHg3ZmZmZmZm ZmRkMTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6MTE0OQot ICAgICM0MiAweDAwMDA1NTU1NWQwZjEyMzkgaW4gY2FwdHVyZWRfbWFpbiAoZGF0YT0weDdmZmZm ZmZmZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL21haW4uYzoxMjMy Ci0gICAgIzQzIDB4MDAwMDU1NTU1ZDBmMTMxNSBpbiBnZGJfbWFpbiAoYXJncz0weDdmZmZmZmZm ZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL21haW4uYzoxMjU3Ci0g ICAgIzQ0IDB4MDAwMDU1NTU1YmI3MGNmOSBpbiBtYWluIChhcmdjPTcsIGFyZ3Y9MHg3ZmZmZmZm ZmRlODgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9nZGIuYzozMgotCi1U aGUgZXhjZXB0aW9uIGlzIGNhdWdodCBoZXJlOgotCi0gICAgIzAgIF9fY3h4YWJpdjE6Ol9fY3hh X2JlZ2luX2NhdGNoIChleGNfb2JqX2luPTB4NjBlMDAwMDA2MGUwKSBhdCAvYnVpbGQvZ2NjL3Ny Yy9nY2MvbGlic3RkYysrLXYzL2xpYnN1cGMrKy9laF9jYXRjaC5jYzo4NAotICAgICMxICAweDAw MDA1NTU1NWQ5NWZkZWQgaW4gc29saWJfcmVhZF9zeW1ib2xzIChzbz0weDYxOTAwMDBkOGU4MCwg ZmxhZ3M9Li4uKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWIuYzo2 ODkKLSAgICAjMiAgMHgwMDAwNTU1NTVkOTYyMzNkIGluIHNvbGliX2FkZCAocGF0dGVybj0weDAs IGZyb21fdHR5PTAsIHJlYWRzeW1zPTEpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2Ri L2dkYi9zb2xpYi5jOjk4NwotICAgICMzICAweDAwMDA1NTU1NWQ5MzY0NmUgaW4gZW5hYmxlX2Jy ZWFrIChpbmZvPTB4NjA4MDAwMDA4ZjIwLCBmcm9tX3R0eT0wKSBhdCAvaG9tZS9zaW1hcmsvc3Jj L2JpbnV0aWxzLWdkYi9nZGIvc29saWItc3ZyNC5jOjIyMzgKLSAgICAjNCAgMHgwMDAwNTU1NTVk OTNjZmMwIGluIHN2cjRfc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGZyb21fdHR5PTApIGF0 IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9zb2xpYi1zdnI0LmM6MzA0OQotICAg ICM1ICAweDAwMDA1NTU1NWQ5NjYxMGQgaW4gc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGZy b21fdHR5PTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9zb2xpYi5jOjEx OTUKLSAgICAjNiAgMHgwMDAwNTU1NTVjZGVlMzE4IGluIHBvc3RfY3JlYXRlX2luZmVyaW9yIChm cm9tX3R0eT0wKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mY21kLmM6 MzE4Ci0gICAgIzcgIDB4MDAwMDU1NTU1Y2UwMGU2ZSBpbiBzZXR1cF9pbmZlcmlvciAoZnJvbV90 dHk9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZmNtZC5jOjI0MzkK LSAgICAjOCAgMHgwMDAwNTU1NTVjZTU5YzM0IGluIGhhbmRsZV9vbmUgKGV2ZW50PS4uLikgYXQg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjQ4ODcKLSAgICAjOSAg MHgwMDAwNTU1NTVjZTVjZDAwIGluIHN0b3BfYWxsX3RocmVhZHMgKCkgYXQgL2hvbWUvc2ltYXJr L3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjUwNjQKLSAgICAjMTAgMHgwMDAwNTU1NTVj ZTdmMGRhIGluIHN0b3Bfd2FpdGluZyAoZWNzPTB4N2ZmZmZmZmZkMTcwKSBhdCAvaG9tZS9zaW1h cmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6ODAwNgotICAgICMxMSAweDAwMDA1NTU1 NWNlNjdmNWMgaW4gaGFuZGxlX3NpZ25hbF9zdG9wIChlY3M9MHg3ZmZmZmZmZmQxNzApIGF0IC9o b21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo2MDYyCi0gICAgIzEyIDB4 MDAwMDU1NTU1Y2U2MzY1MyBpbiBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKGVjcz0weDdmZmZmZmZm ZDE3MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjU3MjcK LSAgICAjMTMgMHgwMDAwNTU1NTVjZTRmMjk3IGluIGZldGNoX2luZmVyaW9yX2V2ZW50ICgpIGF0 IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo0MTA1Ci0gICAgIzE0 IDB4MDAwMDU1NTU1Y2RiZTNiZiBpbiBpbmZlcmlvcl9ldmVudF9oYW5kbGVyIChldmVudF90eXBl PUlORl9SRUdfRVZFTlQpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmYt bG9vcC5jOjQyCi0gICAgIzE1IDB4MDAwMDU1NTU1ZDAxODA0NyBpbiBoYW5kbGVfdGFyZ2V0X2V2 ZW50IChlcnJvcj0wLCBjbGllbnRfZGF0YT0weDApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9saW51eC1uYXQuYzo0MDYwCi0gICAgIzE2IDB4MDAwMDU1NTU1ZTVlYTc3ZSBp biBoYW5kbGVfZmlsZV9ldmVudCAoZmlsZV9wdHI9MHg2MDYwMDAwOGIxYzAsIHJlYWR5X21hc2s9 MSkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ric3VwcG9ydC9ldmVudC1sb29w LmNjOjU3NQotICAgICMxNyAweDAwMDA1NTU1NWU1ZWIwOWMgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50 IChibG9jaz0wKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGJzdXBwb3J0L2V2 ZW50LWxvb3AuY2M6NzAxCi0gICAgIzE4IDB4MDAwMDU1NTU1ZTVlOGQxOSBpbiBnZGJfZG9fb25l X2V2ZW50ICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYnN1cHBvcnQvZXZl bnQtbG9vcC5jYzoyMTIKLSAgICAjMTkgMHgwMDAwNTU1NTVkZDZlMGQ0IGluIHdhaXRfc3luY19j b21tYW5kX2RvbmUgKCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL3RvcC5j OjUyOAotICAgICMyMCAweDAwMDA1NTU1NWRkNmUzNzIgaW4gbWF5YmVfd2FpdF9zeW5jX2NvbW1h bmRfZG9uZSAod2FzX3N5bmM9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L3RvcC5jOjU0NQotICAgICMyMSAweDAwMDA1NTU1NWQwZWM3YzggaW4gY2F0Y2hfY29tbWFuZF9l cnJvcnMgKGNvbW1hbmQ9MHg1NTU1NWNlMDFiYjggPGF0dGFjaF9jb21tYW5kKGNoYXIgY29uc3Qq LCBpbnQpPiwgYXJnPTB4N2ZmZmZmZmZlMjhkICIxNDcyMDEwIiwgZnJvbV90dHk9MSwgZG9fYnBf YWN0aW9ucz1mYWxzZSkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL21haW4u Yzo0NTIKLSAgICAjMjIgMHgwMDAwNTU1NTVkMGYwM2FkIGluIGNhcHR1cmVkX21haW5fMSAoY29u dGV4dD0weDdmZmZmZmZmZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L21haW4uYzoxMTQ5Ci0gICAgIzIzIDB4MDAwMDU1NTU1ZDBmMTIzOSBpbiBjYXB0dXJlZF9tYWlu IChkYXRhPTB4N2ZmZmZmZmZkZDEwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvbWFpbi5jOjEyMzIKLSAgICAjMjQgMHgwMDAwNTU1NTVkMGYxMzE1IGluIGdkYl9tYWluIChh cmdzPTB4N2ZmZmZmZmZkZDEwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIv bWFpbi5jOjEyNTcKLSAgICAjMjUgMHgwMDAwNTU1NTViYjcwY2Y5IGluIG1haW4gKGFyZ2M9Nywg YXJndj0weDdmZmZmZmZmZGU4OCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L2dkYi5jOjMyCi0KLUNhdGNoaW5nIHRoZSBleGNlcHRpb24gYXQgdGhpcyBwb2ludCBtZWFucyB0 aGF0IHRoZSB0aHJlYWRfZGJfaW5mbwotb2JqZWN0IGZvciB0aGlzIGluZmVyaW9yIHdpbGwgYmUg bGVmdCBpbiBwbGFjZSwgZGVzcGl0ZSB0aGUgZmFpbHVyZSB0bwotbG9hZCBsaWJ0aHJlYWRfZGIu ICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgd29uJ3QgYmUgZnVydGhlciBhdHRlbXB0cyBhdAotbG9h ZGluZyBsaWJ0aHJlYWRfZGIsIGJlY2F1c2UgdGhyZWFkX2RiX2xvYWQgd2lsbCB0aGluayB0aGF0 Ci1saWJ0aHJlYWRfZGIgaXMgYWxyZWFkeSBsb2FkZWQgZm9yIHRoaXMgaW5mZXJpb3IgYW5kIHdp bGwgYWx3YXlzIGV4aXQKLWVhcmx5LiAgVG8gZml4IHRoaXMsIGFkZCBhIHRyeS9jYXRjaCBhcm91 bmQgY2FsbGluZyB0cnlfdGhyZWFkX2RiX2xvYWRfMQotaW4gdHJ5X3RocmVhZF9kYl9sb2FkLCBz dWNoIHRoYXQgaWYgc29tZSBleGNlcHRpb24gaXMgdGhyb3duIHdoaWxlCi10cnlpbmcgdG8gbG9h ZCBsaWJ0aHJlYWRfZGIsIHdlIHJlc2V0IC8gZGVsZXRlIHRoZSB0aHJlYWRfZGJfaW5mbyBmb3IK LXRoYXQgaW5mZXJpb3IuICBUaGF0IGFsb25lIG1ha2VzIGF0dGFjaCB3b3JrIGZpbmUgYWdhaW4s IGJlY2F1c2UKLWNoZWNrX2Zvcl90aHJlYWRfZGIgaXMgY2FsbGVkIGFnYWluIGluIHRoZSB0aHJl YWRfZGJfaW5mZXJpb3JfY3JlYXRlZAotb2JzZXJ2ZXIgKHRoYXQgaGFwcGVucyBhZnRlciB3ZSBs ZWFybmVkIGFib3V0IGFsbCBzaGFyZWQgbGlicmFyaWVzIGFuZAotdGhlaXIgc3ltYm9scyksIGFu ZCBsaWJ0aHJlYWRfZGIgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZCB0aGVuLgotCi1XaGVuIGF0dGFj aGluZywgSSB0aGluayB0aGF0IHRoZSBpbmZlcmlvcl9jcmVhdGVkIG9ic2VydmVyIGlzIGEgZ29v ZAotcGxhY2UgdG8gdHJ5IHRvIGxvYWQgbGlidGhyZWFkX2RiOiBpdCBpcyBjYWxsZWQgb25jZSBl dmVyeXRoaW5nIGhhcwotc3RhYmlsaXplZCwgd2hlbiB3ZSBsZWFybmVkIGFib3V0IGFsbCBzaGFy ZWQgbGlicmFyaWVzLgotCi1UaGUgb25seSBwcm9ibGVtIHRoZW4gaXMgdGhhdCB3aGVuIHdlIGZp cnN0IHRyeSAoYW5kIGZhaWwpIHRvIGxvYWQKLWxpYnRocmVhZF9kYiwgaW4gcmVhY3Rpb24gdG8g bGVhcm5pbmcgYWJvdXQgbGlicHRocmVhZCwgd2Ugc2hvdyB0aGlzCi13YXJuaW5nOgotCi0gICAg d2FybmluZzogVW5hYmxlIHRvIGZpbmQgbGlidGhyZWFkX2RiIG1hdGNoaW5nIGluZmVyaW9yJ3Mg dGhyZWFkIGxpYnJhcnksIHRocmVhZCBkZWJ1Z2dpbmcgd2lsbCBub3QgYmUgYXZhaWxhYmxlLgot Ci1UaGlzIGlzIG1pc2xlYWRpbmcsIGJlY2F1c2Ugd2UgZG8gc3VjY2VlZCBpbiBsb2FkaW5nIGl0 IGxhdGVyLiAgU28gd2hlbgotYXR0YWNoaW5nLCBJIHRoaW5rIHdlIHNob3VsZG4ndCB0cnkgdG8g bG9hZCBsaWJ0aHJlYWRfZGIgaW4gcmVhY3Rpb24gdG8KLXRoZSBuZXdfb2JqZmlsZSBldmVudHMs IHdlIHNob3VsZCB3YWl0IHVudGlsIHdlIGhhdmUgbGVhcm5lZCBhYm91dCBhbGwKLXNoYXJlZCBs aWJyYXJpZXMgKHVzaW5nIHRoZSBpbmZlcmlvcl9jcmVhdGVkIG9ic2VydmFibGUpLiAgVG8gZG8g c28sIGFkZAotYW4gYGluX2luaXRpYWxfbGlicmFyeV9zY2FuYCBmbGFnIHRvIHN0cnVjdCBpbmZl cmlvci4gIFRoaXMgZmxhZyBpcyB1c2VkCi10byBwb3N0cG9uZSBsb2FkaW5nIGxpYnRocmVhZF9k YiBpZiB3ZSBhcmUgYXR0YWNoaW5nIG9yIGhhbmRsaW5nIGEgZm9yawotY2hpbGQuCi0KLVdoZW4g ZGVidWdnaW5nIHJlbW90ZWx5IHdpdGggR0RCc2VydmVyLCB0aGUgc2FtZSBwcm9ibGVtIGhhcHBl bnMsIGV4Y2VwdAotdGhhdCB0aGUgcVN5bWJvbCBtZWNoYW5pc20gKGFsbG93aW5nIHRoZSByZW1v dGUgc2lkZSB0byBhc2sgR0RCIGZvcgotc3ltYm9scyB2YWx1ZXMpIGlzIGludm9sdmVkLiAgVGhl IGZpeCB0aGVyZSBpcyB0aGUgc2FtZSBpZGVhLCB3ZSBtYWtlCi1HREIgd2FpdCB1bnRpbCBhbGwg c2hhcmVkIGxpYnJhcmllcyBhbmQgdGhlaXIgc3ltYm9scyBhcmUga25vd24gYmVmb3JlCi1zZW5k aW5nIG91dCBhIHFTeW1ib2wgcGFja2V0LiAgVGhpcyB3YXksIHdlIG5ldmVyIHByZXNlbnQgdGhl IHJlbW90ZQotc2lkZSBhIHN0YXRlIHdoZXJlIGxpYnB0aHJlYWQuc28ncyBzeW1ib2xzIGFyZSBr bm93biBidXQgbGQtbGludXgncwotc3ltYm9scyBhcmVuJ3QuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0K LQkqIGluZmVyaW9yLmggKGNsYXNzIGluZmVyaW9yKSA8aW5faW5pdGlhbF9saWJyYXJ5X3NjYW4+ OiBOZXcuCi0JKiBpbmZjbWQuYyAocG9zdF9jcmVhdGVfaW5mZXJpb3IpOiBTZXQgaW5faW5pdGlh bF9saWJyYXJ5X3NjYW4uCi0JKiBpbmZydW4uYyAoZm9sbG93X2ZvcmtfaW5mZXJpb3IpOiBMaWtl d2lzZS4KLQkqIGxpbnV4LXRocmVhZC1kYi5jICh0cnlfdGhyZWFkX2RiX2xvYWQpOiBDYXRjaCBl eGNlcHRpb24gdGhyb3duCi0JYnkgdHJ5X3RocmVhZF9kYl9sb2FkXzEKLQkodGhyZWFkX2RiX2xv YWQpOiBSZXR1cm4gZWFybHkgaWYgaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4gaXMKLQlzZXQuCi0J KiByZW1vdGUuYyAocmVtb3RlX25ld19vYmpmaWxlKTogUmV0dXJuIGVhcmx5IGlmCi0JaW5faW5p dGlhbF9saWJyYXJ5X3NjYW4gaXMgc2V0LgotCi1DaGFuZ2UtSWQ6IEk3YTI3OTgzNmNmYmIyYjM2 MmI0ZmRlMTFiMTk2YjRhYWI4MmY1ZWZiCi0KLWRpZmYgLS1naXQgYS9nZGIvaW5mY21kLmMgYi9n ZGIvaW5mY21kLmMKLS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAt MzEzLDYgKzMxMywxMCBAQCBwb3N0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldF9vcHMg KnRhcmdldCwgaW50IGZyb21fdHR5KQotICAgICAgIGNvbnN0IHVuc2lnbmVkIHNvbGliX2FkZF9n ZW5lcmF0aW9uCi0gCT0gY3VycmVudF9wcm9ncmFtX3NwYWNlLT5zb2xpYl9hZGRfZ2VuZXJhdGlv bjsKLSAKLSsgICAgICBzY29wZWRfcmVzdG9yZSByZXN0b3JlX2luX2luaXRpYWxfbGlicmFyeV9z Y2FuCi0rCT0gbWFrZV9zY29wZWRfcmVzdG9yZSAoJmN1cnJlbnRfaW5mZXJpb3IgKCktPmluX2lu aXRpYWxfbGlicmFyeV9zY2FuLAotKwkJCSAgICAgICB0cnVlKTsKLSsKLSAgICAgICAvKiBDcmVh dGUgdGhlIGhvb2tzIHRvIGhhbmRsZSBzaGFyZWQgbGlicmFyeSBsb2FkIGFuZCB1bmxvYWQKLSAJ IGV2ZW50cy4gICovCi0gICAgICAgc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGZyb21fdHR5 KTsKLWRpZmYgLS1naXQgYS9nZGIvaW5mZXJpb3IuaCBiL2dkYi9pbmZlcmlvci5oCi0tLS0gYS9n ZGIvaW5mZXJpb3IuaAotKysrIGIvZ2RiL2luZmVyaW9yLmgKLUBAIC01MTEsNiArNTExLDEwIEBA IGNsYXNzIGluZmVyaW9yIDogcHVibGljIHJlZmNvdW50ZWRfb2JqZWN0Ci0gICAgICBhcmNoaXRl Y3R1cmUvZGVzY3JpcHRpb24uICAqLwotICAgYm9vbCBuZWVkc19zZXR1cCA9IGZhbHNlOwotIAot KyAgLyogVHJ1ZSB3aGVuIHdlIGFyZSByZWFkaW5nIHRoZSBsaWJyYXJ5IGxpc3Qgb2YgdGhlIGlu ZmVyaW9yIGR1cmluZyBhbgotKyAgICAgYXR0YWNoIG9yIGhhbmRsaW5nIGEgZm9yayBjaGlsZC4g ICovCi0rICBib29sIGluX2luaXRpYWxfbGlicmFyeV9zY2FuID0gZmFsc2U7Ci0rCi0gICAvKiBQ cml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3RvciBpbXBsZW1lbnRhdGlvbi4gICov Ci0gICBzdGQ6OnVuaXF1ZV9wdHI8cHJpdmF0ZV9pbmZlcmlvcj4gcHJpdjsKLSAKLWRpZmYgLS1n aXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKLS0tLSBhL2dkYi9pbmZydW4uYwotKysr IGIvZ2RiL2luZnJ1bi5jCi1AQCAtNTQwLDYgKzU0MCw5IEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0 b3BwZWQuICBUcnkgXCJzZXQgZGV0YWNoLW9uLWZvcmtcIiBvciBcCi0gCQkgYnJlYWtwb2ludC4g IElmIGEgImNsb25lZC1WTSIgZXZlbnQgd2FzIHByb3BhZ2F0ZWQKLSAJCSBiZXR0ZXIgdGhyb3Vn aG91dCB0aGUgY29yZSwgdGhpcyB3b3VsZG4ndCBiZQotIAkJIHJlcXVpcmVkLiAgKi8KLSsJICAg ICAgc2NvcGVkX3Jlc3RvcmUgcmVzdG9yZV9pbl9pbml0aWFsX2xpYnJhcnlfc2NhbgotKwkJPSBt YWtlX3Njb3BlZF9yZXN0b3JlICgmY2hpbGRfaW5mLT5pbl9pbml0aWFsX2xpYnJhcnlfc2NhbiwK LSsJCQkJICAgICAgIHRydWUpOwotIAkgICAgICBzb2xpYl9jcmVhdGVfaW5mZXJpb3JfaG9vayAo MCk7Ci0gCSAgICB9Ci0gCX0KLUBAIC02NzUsNiArNjc4LDggQEAgaG9sZGluZyB0aGUgY2hpbGQg c3RvcHBlZC4gIFRyeSBcInNldCBkZXRhY2gtb24tZm9ya1wiIG9yIFwKLSAJICAgICBzaGFyZWQg bGlicmFyaWVzLCBhbmQgaW5zdGFsbCB0aGUgc29saWIgZXZlbnQgYnJlYWtwb2ludC4KLSAJICAg ICBJZiBhICJjbG9uZWQtVk0iIGV2ZW50IHdhcyBwcm9wYWdhdGVkIGJldHRlciB0aHJvdWdob3V0 Ci0gCSAgICAgdGhlIGNvcmUsIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQuICAqLwotKwkgIHNj b3BlZF9yZXN0b3JlIHJlc3RvcmVfaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4KLSsJICAgID0gbWFr ZV9zY29wZWRfcmVzdG9yZSAoJmNoaWxkX2luZi0+aW5faW5pdGlhbF9saWJyYXJ5X3NjYW4sIHRy dWUpOwotIAkgIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rICgwKTsKLSAJfQotIAotZGlmZiAt LWdpdCBhL2dkYi9saW51eC10aHJlYWQtZGIuYyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwotLS0t IGEvZ2RiL2xpbnV4LXRocmVhZC1kYi5jCi0rKysgYi9nZGIvbGludXgtdGhyZWFkLWRiLmMKLUBA IC0xMDEyLDggKzEwMTIsMTcgQEAgdHJ5X3RocmVhZF9kYl9sb2FkIChjb25zdCBjaGFyICpsaWJy YXJ5LCBib29sIGNoZWNrX2F1dG9fbG9hZF9zYWZlKQotICAgaWYgKHN0cmNociAobGlicmFyeSwg Jy8nKSAhPSBOVUxMKQotICAgICBpbmZvLT5maWxlbmFtZSA9IGdkYl9yZWFscGF0aCAobGlicmFy eSkucmVsZWFzZSAoKTsKLSAKLS0gIGlmICh0cnlfdGhyZWFkX2RiX2xvYWRfMSAoaW5mbykpCi0t ICAgIHJldHVybiB0cnVlOwotKyAgdHJ5Ci0rICAgIHsKLSsgICAgICBpZiAodHJ5X3RocmVhZF9k Yl9sb2FkXzEgKGluZm8pKQotKwlyZXR1cm4gdHJ1ZTsKLSsgICAgfQotKyAgY2F0Y2ggKGNvbnN0 IGdkYl9leGNlcHRpb25fZXJyb3IgJmV4Y2VwdCkKLSsgICAgewotKyAgICAgIGlmIChsaWJ0aHJl YWRfZGJfZGVidWcpCi0rCWV4Y2VwdGlvbl9mcHJpbnRmIChnZGJfc3RkbG9nLCBleGNlcHQsCi0r CQkJICAgIldhcm5pbmc6IFdoaWxlIHRyeWluZyB0byBsb2FkIGxpYnRocmVhZF9kYjogIik7Ci0r ICAgIH0KLSAKLSAgIC8qIFRoaXMgbGlicmFyeSAicmVmdXNlZCIgdG8gd29yayBvbiBjdXJyZW50 IGluZmVyaW9yLiAgKi8KLSAgIGRlbGV0ZV90aHJlYWRfZGJfaW5mbyAoY3VycmVudF9pbmZlcmlv ciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi1AQCAtMTE4NCwxMCArMTE5MywxNSBAQCBoYXNfbGli cHRocmVhZCAodm9pZCkKLSBzdGF0aWMgYm9vbAotIHRocmVhZF9kYl9sb2FkICh2b2lkKQotIHsK LS0gIHN0cnVjdCB0aHJlYWRfZGJfaW5mbyAqaW5mbzsKLSsgIGluZmVyaW9yICppbmYgPSBjdXJy ZW50X2luZmVyaW9yICgpOwotIAotLSAgaW5mbyA9IGdldF90aHJlYWRfZGJfaW5mbyAoY3VycmVu dF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi0tCQkJICAgICBpbmZlcmlvcl9wdGlk LnBpZCAoKSk7Ci0rICAvKiBXaGVuIGF0dGFjaGluZyAvIGhhbmRsaW5nIGZvcmsgY2hpbGQsIGRv bid0IHRyeSBsb2FkaW5nIGxpYnRocmVhZF9kYgotKyAgICAgdW50aWwgd2Uga25vdyBhYm91dCBh bGwgc2hhcmVkIGxpYnJhcmllcy4gICovCi0rICBpZiAoaW5mLT5pbl9pbml0aWFsX2xpYnJhcnlf c2NhbikKLSsgICAgcmV0dXJuIGZhbHNlOwotKwotKyAgdGhyZWFkX2RiX2luZm8gKmluZm8gPSBn ZXRfdGhyZWFkX2RiX2luZm8gKGluZi0+cHJvY2Vzc190YXJnZXQgKCksCi0rCQkJCQkgICAgIGlu ZmVyaW9yX3B0aWQucGlkICgpKTsKLSAKLSAgIGlmIChpbmZvICE9IE5VTEwpCi0gICAgIHJldHVy biB0cnVlOwotZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwotLS0tIGEv Z2RiL3JlbW90ZS5jCi0rKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xNDI5OSw4ICsxNDI5OSwyNiBA QCByZW1vdGVfbmV3X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQotIHsKLSAgIHJl bW90ZV90YXJnZXQgKnJlbW90ZSA9IGdldF9jdXJyZW50X3JlbW90ZV90YXJnZXQgKCk7Ci0gCi0t ICBpZiAocmVtb3RlICE9IE5VTEwpCQkJLyogSGF2ZSBhIHJlbW90ZSBjb25uZWN0aW9uLiAgKi8K LS0gICAgcmVtb3RlLT5yZW1vdGVfY2hlY2tfc3ltYm9scyAoKTsKLSsgIC8qIEZpcnN0LCBjaGVj ayB3aGV0aGVyIHRoZSBjdXJyZW50IGluZmVyaW9yJ3MgcHJvY2VzcyB0YXJnZXQgaXMgYSByZW1v dGUKLSsgICAgIHRhcmdldC4gICovCi0rICBpZiAocmVtb3RlID09IG51bGxwdHIpCi0rICAgIHJl dHVybjsKLSsKLSsgIC8qIFdoZW4gd2UgYXJlIGF0dGFjaGluZyBvciBoYW5kbGluZyBhIGZvcmsg Y2hpbGQgYW5kIHRoZSBzaGFyZWQgbGlicmFyeQotKyAgICAgc3Vic3lzdGVtIHJlYWRzIHRoZSBs aXN0IG9mIGxvYWRlZCBsaWJyYXJpZXMsIHdlIHJlY2VpdmUgbmV3IG9iamZpbGUKLSsgICAgIGV2 ZW50cyBpbiBiZXR3ZWVuIGVhY2ggZm91bmQgbGlicmFyeS4gIFRoZSBsaWJyYXJpZXMgYXJlIHJl YWQgaW4gYW4KLSsgICAgIHVuZGVmaW5lZCBvcmRlciwgc28gaWYgd2UgZ2F2ZSB0aGUgcmVtb3Rl IHNpZGUgYSBjaGFuY2UgdG8gbG9vayB1cAotKyAgICAgc3ltYm9scyBiZXR3ZWVuIGVhY2ggb2Jq ZmlsZSwgd2UgbWlnaHQgZ2l2ZSBpdCBhbiBpbmNvbnNpc3RlbnQgcGljdHVyZQotKyAgICAgb2Yg dGhlIGluZmVyaW9yLiAgSXQgY291bGQgYXBwZWFyIHRoYXQgYSBsaWJyYXJ5IEEgYXBwZWFycyBs b2FkZWQgYnV0Ci0rICAgICBhIGxpYnJhcnkgQiBkb2VzIG5vdCwgZXZlbiB0aG91Z2ggbGlicmFy eSBBIHJlcXVpcmVzIGxpYnJhcnkgQi4gIFRoYXQKLSsgICAgIHdvdWxkIHByZXNlbnQgYSBzdGF0 ZSB0aGF0IGNvdWxkbid0IG5vcm1hbGx5IGV4aXN0IGluIHRoZSBpbmZlcmlvci4KLSsKLSsgICAg IFNvLCBza2lwIHRoZXNlIGV2ZW50cywgd2UnbGwgZ2l2ZSB0aGUgcmVtb3RlIGEgY2hhbmNlIHRv IGxvb2sgdXAgc3ltYm9scwotKyAgICAgb25jZSBhbGwgdGhlIGxvYWRlZCBsaWJyYXJpZXMgYW5k IHRoZWlyIHN5bWJvbHMgYXJlIGtub3duIHRvIEdEQi4gICovCi0rICAgIGlmIChjdXJyZW50X2lu ZmVyaW9yICgpLT5pbl9pbml0aWFsX2xpYnJhcnlfc2NhbikKLSsgICAgICByZXR1cm47Ci0rCi0r ICByZW1vdGUtPnJlbW90ZV9jaGVja19zeW1ib2xzICgpOwotIH0KLSAKLSAvKiBQdWxsIGFsbCB0 aGUgdHJhY2Vwb2ludHMgZGVmaW5lZCBvbiB0aGUgdGFyZ2V0IGFuZCBjcmVhdGUgbG9jYWwKCmRp ZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2ggYi9nZGItcmhiejE5 NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5 ZWRhYjkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC0yLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5j b20+Ci1EYXRlOiBNb24sIDE0IEp1biAyMDIxIDE5OjIwOjA3IC0wNzAwCi1TdWJqZWN0OiBnZGIt cmhiejE5NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2gKLQotOzsgQmFja3BvcnQgcGF0Y2ggZml4aW5n IGdkYiBvbiBnbGliYy0yLjM0IG1hY2hpbmVzIHcvIHJlZ2FyZCB0bwotOzsgbGlidGhyZWFkX2Ri IGluaXRpYWxpemF0aW9uLgotCi1saWJ0aHJlYWRfZGIgaW5pdGlhbGl6YXRpb24gY2hhbmdlcyBy ZWxhdGVkIHRvIHVwY29taW5nIGdsaWJjLTIuMzQKLQotVGhpcyBjb21taXQgbWFrZXMgc29tZSBh ZGp1c3RtZW50cyB0byBhY2NvbW9kYXRlIHRoZSB1cGNvbWluZwotZ2xpYmMtMi4zNCByZWxlYXNl LiAgQmVnaW5uaW5nIHdpdGggZ2xpYmMtMi4zNCwgZnVuY3Rpb25hbGl0eSBmb3JtZXJseQotY29u dGFpbmVkIGluIGxpYnB0aHJlYWQgaGFzIGJlZW4gbW92ZWQgdG8gbGliYy4gIEZvciB0aGUgdGlt ZSBiZWluZywKLWxpYnB0aHJlYWQuc28gc3RpbGwgZXhpc3RzIGluIHRoZSBmaWxlIHN5c3RlbSwg YnV0IGl0IHdvbid0IHNob3cgdXAgaW4KLWxkZCBvdXRwdXQgYW5kIHRoZXJlZm9yZSB3b24ndCBi ZSBhYmxlIHRvIHRyaWdnZXIgaW5pdGlhbGl6YXRpb24gb2YKLWxpYnRocmVhZF9kYiByZWxhdGVk IGNvZGUuICBFLmcuLi4KLQotRmVkb3JhIDM0IC8gZ2xpYmMtMi4zMy45MDAwOgotCi1ba2V2QGYz NC0yIGdkYl0kIGxkZCB0ZXN0c3VpdGUvb3V0cHV0cy9nZGIudGhyZWFkcy90bHMvdGxzCi0JbGlu dXgtdmRzby5zby4xICgweDAwMDA3ZmZjZjk0ZmEwMDApCi0JbGlic3RkYysrLnNvLjYgPT4gL2xp YjY0L2xpYnN0ZGMrKy5zby42ICgweDAwMDA3ZmYwYmE5YWYwMDApCi0JbGlibS5zby42ID0+IC9s aWI2NC9saWJtLnNvLjYgKDB4MDAwMDdmZjBiYThkNDAwMCkKLQlsaWJnY2Nfcy5zby4xID0+IC9s aWI2NC9saWJnY2Nfcy5zby4xICgweDAwMDA3ZmYwYmE4YjkwMDApCi0JbGliYy5zby42ID0+IC9s aWI2NC9saWJjLnNvLjYgKDB4MDAwMDdmZjBiYTZjNjAwMCkKLQkvbGliNjQvbGQtbGludXgteDg2 LTY0LnNvLjIgKDB4MDAwMDdmZjBiYWJmMDAwMCkKLQotRmVkb3JhIDM0IC8gZ2xpYmMtMi4zMzoK LQotW2tldkBmMzQtMSBnZGJdJCBsZGQgdGVzdHN1aXRlL291dHB1dHMvZ2RiLnRocmVhZHMvdGxz L3RscwotCWxpbnV4LXZkc28uc28uMSAoMHgwMDAwN2ZmZjMyZGMwMDAwKQotCWxpYnB0aHJlYWQu c28uMCA9PiAvbGliNjQvbGlicHRocmVhZC5zby4wICgweDAwMDA3ZjgxNWY2ZGUwMDApCi0JbGli c3RkYysrLnNvLjYgPT4gL2xpYjY0L2xpYnN0ZGMrKy5zby42ICgweDAwMDA3ZjgxNWY0YmYwMDAp Ci0JbGlibS5zby42ID0+IC9saWI2NC9saWJtLnNvLjYgKDB4MDAwMDdmODE1ZjM3YjAwMCkKLQls aWJnY2Nfcy5zby4xID0+IC9saWI2NC9saWJnY2Nfcy5zby4xICgweDAwMDA3ZjgxNWYzNjAwMDAp Ci0JbGliYy5zby42ID0+IC9saWI2NC9saWJjLnNvLjYgKDB4MDAwMDdmODE1ZjE5MTAwMCkKLQkv bGliNjQvbGQtbGludXgteDg2LTY0LnNvLjIgKDB4MDAwMDdmODE1ZjcyMTAwMCkKLQotTm90ZSB0 aGF0IGxpYnB0aHJlYWQgaXMgbWlzc2luZyBmcm9tIHRoZSBsZGQgb3V0cHV0IGZvciB0aGUKLWds aWJjLTIuMzMuOTAwMCBtYWNoaW5lLgotCi1UaGlzIG1lYW5zIHRoYXQgKHVubGVzcyB3ZSBoYXBw ZW4gdG8gdGhpbmsgb2Ygc29tZSBlbnRpcmVseSBkaWZmZXJlbnQKLW1lY2hhbmlzbSksIHdlJ2xs IG5vdyBuZWVkIHRvIHBvdGVudGlhbGx5IG1hdGNoICJsaWJjIiBpbiBhZGRpdGlvbiB0bwotImxp YnB0aHJlYWQiIGFzIGxpYnJhcmllcyB3aGljaCBtaWdodCBiZSB0aHJlYWQgbGlicmFyaWVzLiAg VGhpcwotYWNjb3VudHMgZm9yIHRoZSBjaGFuZ2UgbWFkZSBpbiBzb2xpYi5jLiAgTm90ZSB0aGF0 IHRoZSBuZXcgY29kZQotYXR0ZW1wdHMgdG8gbWF0Y2ggIi9saWJjLiIgdmlhIHN0cnN0cigpLiAg VGhhdCB0cmFpbGluZyBkb3QgKCIuIikKLWF2b2lkcyBpbmFkdmVydGVudGx5IG1hdGNoaW5nIGxp YnJhcmllcyBzdWNoIGFzIGxpYmNyeXB0IChhbmQKLWFsbCB0aGUgb3RoZXIgbWFueSBsaWJyYXJp ZXMgd2hpY2ggYmVnaW4gd2l0aCAibGliYyIpLgotCi1UbyBhdm9pZCBhdHRlbXB0cyB0byBsb2Fk IGxpYnRocmVhZF9kYiB3aGVuIGVuY291bnRlcmluZyBvbGRlcgotdmVyc2lvbnMgb2YgbGliYywg d2Ugbm93IGF0dGVtcHQgdG8gZmluZCAicHRocmVhZF9jcmVhdGUiICh3aGljaCBpcyBhCi1zeW1i b2wgdGhhdCB3ZSdkIGV4cGVjdCB0byBiZSBpbiBhbnkgcHRocmVhZCBsaWJyYXJ5KSBpbiB0aGUK LWFzc29jaWF0ZWQgb2JqZmlsZS4gIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBjaGFuZ2VzIGluCi1s aW51eC10aHJlYWQtZGIuYy4KLQotSSB0aGluayB0aGF0IG90aGVyIHNtYWxsIGFkanVzdG1lbnRz IHdpbGwgbmVlZCB0byBiZSBtYWRlIGVsc2V3aGVyZQotdG9vLiAgSSd2ZSBiZWVuIHdvcmtpbmcg dGhyb3VnaCByZWdyZXNzaW9ucyBvbiBteSBnbGliYy0yLjMzLjkwMDAKLW1hY2hpbmU7IEkndmUg Zml4ZWQgc29tZSBmYWlybHkgIm9idmlvdXMiIGNoYW5nZXMgaW4gdGhlIHRlc3RzdWl0ZQotKHdo aWNoIGFyZSBpbiBvdGhlciBjb21taXRzKS4gIEZvciB0aGUgcmVzdCwgaXQncyBub3QgeWV0IGNs ZWFyIHRvIG1lCi13aGV0aGVyIHRoZSBoYW5kZnVsIG9mIHJlbWFpbmluZyBmYWlsdXJlcyByZXBy ZXNlbnQgYSBwcm9ibGVtIGluIGdsaWJjCi1vciBnZGIuICBJJ20gc3RpbGwgaW52ZXN0aWdhdGlu ZywgaG93ZXZlciwgSSdsbCBub3RlIHRoYXQgdGhlc2UgYXJlCi1wcm9ibGVtcyB0aGF0IEkgb25s eSBzZWUgb24gbXkgZ2xpYmMtMi4zMy45MDAwIG1hY2hpbmUuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0K LQkqIHNvbGliLmMgKGxpYnB0aHJlYWRfbmFtZV9wKTogTWF0Y2ggImxpYmMiIGluIGFkZGl0aW9u Ci0JdG8gImxpYnB0aHJlYWQiLgotCSogbGludXgtdGhyZWFkLWRiLmMgKGxpYnB0aHJlYWRfb2Jq ZmlsZV9wKTogTmV3IGZ1bmN0aW9uLgotCShsaWJwdGhyZWFkX25hbWVfcCk6IEFkanVzdCBwcmVl eGlzdGluZyBjYWxsZXJzIHRvIHVzZQotCWxpYnB0aHJlYWRfb2JqZmlsZV9wKCkuCi0KLWRpZmYg LS1naXQgYS9nZGIvbGludXgtdGhyZWFkLWRiLmMgYi9nZGIvbGludXgtdGhyZWFkLWRiLmMKLS0t LSBhL2dkYi9saW51eC10aHJlYWQtZGIuYwotKysrIGIvZ2RiL2xpbnV4LXRocmVhZC1kYi5jCi1A QCAtODAwLDYgKzgwMCwyNCBAQCBjaGVja190aHJlYWRfZGIgKHN0cnVjdCB0aHJlYWRfZGJfaW5m byAqaW5mbywgYm9vbCBsb2dfcHJvZ3Jlc3MpCi0gICByZXR1cm4gdGVzdF9wYXNzZWQ7Ci0gfQot IAotKy8qIFByZWRpY2F0ZSB3aGljaCB0ZXN0cyB3aGV0aGVyIG9iamZpbGUgT0JKIHJlZmVycyB0 byB0aGUgbGlicmFyeQotKyAgIGNvbnRhaW5pbmcgcHRocmVhZCByZWxhdGVkIHN5bWJvbHMuICBI aXN0b3JpY2FsbHksIHRoaXMgbGlicmFyeSBoYXMKLSsgICBiZWVuIG5hbWVkIGluIHN1Y2ggYSB3 YXkgdGhhdCBsb29raW5nIGZvciAibGlicHRocmVhZCIgaW4gdGhlIG5hbWUKLSsgICB3YXMgc3Vm ZmljaWVudCB0byBpZGVudGlmeSBpdC4gIEFzIG9mIGdsaWJjLTIuMzQsIHRoZSBDIGxpYnJhcnkK LSsgICAobGliYykgY29udGFpbnMgdGhlIHRocmVhZCBsaWJyYXJ5IHN5bWJvbHMuICBUaGVyZWZv cmUgd2UgY2hlY2sKLSsgICB0aGF0IHRoZSBuYW1lIG1hdGNoZXMgYSBwb3NzaWJsZSB0aHJlYWQg bGlicmFyeSwgYnV0IHdlIGFsc28gY2hlY2sKLSsgICB0aGF0IGl0IGNvbnRhaW5zIGF0IGxlYXN0 IG9uZSBvZiB0aGUgc3ltYm9scyAocHRocmVhZF9jcmVhdGUpIHRoYXQKLSsgICB3ZSdkIGV4cGVj dCB0byBmaW5kIGluIHRoZSB0aHJlYWQgbGlicmFyeS4gICovCi0rCi0rc3RhdGljIGJvb2wKLSts aWJwdGhyZWFkX29iamZpbGVfcCAob2JqZmlsZSAqb2JqKQotK3sKLSsgIHJldHVybiAobGlicHRo cmVhZF9uYW1lX3AgKG9iamZpbGVfbmFtZSAob2JqKSkKLSsgICAgICAgICAgJiYgbG9va3VwX21p bmltYWxfc3ltYm9sICgicHRocmVhZF9jcmVhdGUiLAotKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwKLSsJCQkJICAgIG9iaikubWluc3ltICE9IE5VTEwpOwotK30KLSsKLSAvKiBB dHRlbXB0IHRvIGluaXRpYWxpemUgZGxvcGVuKCllZCBsaWJ0aHJlYWRfZGIsIGRlc2NyaWJlZCBi eSBJTkZPLgotICAgIFJldHVybiB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgRmFpbHVyZSBjb3VsZCBo YXBwZW4gaWYgbGlidGhyZWFkX2RiIGRvZXMgbm90IGhhdmUgc3ltYm9scyB3ZSBleHBlY3QsCi1A QCAtMTA3Miw3ICsxMDkwLDcgQEAgdHJ5X3RocmVhZF9kYl9sb2FkX2Zyb21fcGRpciAoY29uc3Qg Y2hhciAqc3ViZGlyKQotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0gICBmb3IgKG9iamZpbGUgKm9i aiA6IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+b2JqZmlsZXMgKCkpCi0tICAgIGlmIChsaWJwdGhy ZWFkX25hbWVfcCAob2JqZmlsZV9uYW1lIChvYmopKSkKLSsgICAgaWYgKGxpYnB0aHJlYWRfb2Jq ZmlsZV9wIChvYmopKQotICAgICAgIHsKLSAJaWYgKHRyeV90aHJlYWRfZGJfbG9hZF9mcm9tX3Bk aXJfMSAob2JqLCBzdWJkaXIpKQotIAkgIHJldHVybiB0cnVlOwotQEAgLTExODEsNyArMTE5OSw3 IEBAIHN0YXRpYyBib29sCi0gaGFzX2xpYnB0aHJlYWQgKHZvaWQpCi0gewotICAgZm9yIChvYmpm aWxlICpvYmogOiBjdXJyZW50X3Byb2dyYW1fc3BhY2UtPm9iamZpbGVzICgpKQotLSAgICBpZiAo bGlicHRocmVhZF9uYW1lX3AgKG9iamZpbGVfbmFtZSAob2JqKSkpCi0rICAgIGlmIChsaWJwdGhy ZWFkX29iamZpbGVfcCAob2JqKSkKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAKLSAgIHJldHVybiBm YWxzZTsKLUBAIC0xMjk1LDcgKzEzMTMsNyBAQCB0aHJlYWRfZGJfbmV3X29iamZpbGUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlKQotIAkgb2YgdGhlIGxpc3Qgb2Ygc2hhcmVkIGxpYnJhcmllcyB0 byBsb2FkLCBhbmQgaW4gYW4gYXBwIG9mIHNldmVyYWwKLSAJIHRob3VzYW5kIHNoYXJlZCBsaWJy YXJpZXMsIHRoaXMgY2FuIG90aGVyd2lzZSBiZSBwYWluZnVsLiAgKi8KLSAgICAgICAmJiAoKG9i amZpbGUtPmZsYWdzICYgT0JKRl9NQUlOTElORSkgIT0gMAotLQkgIHx8IGxpYnB0aHJlYWRfbmFt ZV9wIChvYmpmaWxlX25hbWUgKG9iamZpbGUpKSkpCi0rCSAgfHwgbGlicHRocmVhZF9vYmpmaWxl X3AgKG9iamZpbGUpKSkKLSAgICAgY2hlY2tfZm9yX3RocmVhZF9kYiAoKTsKLSB9Ci0gCi1kaWZm IC0tZ2l0IGEvZ2RiL3NvbGliLmMgYi9nZGIvc29saWIuYwotLS0tIGEvZ2RiL3NvbGliLmMKLSsr KyBiL2dkYi9zb2xpYi5jCi1AQCAtOTA2LDEyICs5MDYsMTcgQEAgRG8geW91IG5lZWQgXCJzZXQg c29saWItc2VhcmNoLXBhdGhcIiBvciBcInNldCBzeXNyb290XCI/IiksCi0gCi0gICAgVXNlcyBh IGZhaXJseSBzaW1wbGlzdGljIGhldXJpc3RpYyBhcHByb2FjaCB3aGVyZSB3ZSBjaGVjawotICAg IHRoZSBmaWxlIG5hbWUgYWdhaW5zdCAiL2xpYnB0aHJlYWQiLiAgVGhpcyBjYW4gbGVhZCB0byBm YWxzZQotLSAgIHBvc2l0aXZlcywgYnV0IHRoaXMgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGluIHBy YWN0aWNlLiAgKi8KLSsgICBwb3NpdGl2ZXMsIGJ1dCB0aGlzIHNob3VsZCBiZSBnb29kIGVub3Vn aCBpbiBwcmFjdGljZS4KLSsKLSsgICBBcyBvZiBnbGliYy0yLjM0LCBmdW5jdGlvbnMgZm9ybWVy bHkgcmVzaWRpbmcgaW4gbGlicHRocmVhZCBoYXZlCi0rICAgYmVlbiBtb3ZlZCB0byBsaWJjLCBz byAiL2xpYmMuIiBuZWVkcyB0byBiZSBjaGVja2VkIHRvby4gIChNYXRjaGluZwotKyAgIHRoZSAi LiIgd2lsbCBhdm9pZCBtYXRjaGluZyBsaWJyYXJpZXMgc3VjaCBhcyBsaWJjcnlwdC4pICovCi0g Ci0gYm9vbAotIGxpYnB0aHJlYWRfbmFtZV9wIChjb25zdCBjaGFyICpuYW1lKQotIHsKLS0gIHJl dHVybiAoc3Ryc3RyIChuYW1lLCAiL2xpYnB0aHJlYWQiKSAhPSBOVUxMKTsKLSsgIHJldHVybiAo c3Ryc3RyIChuYW1lLCAiL2xpYnB0aHJlYWQiKSAhPSBOVUxMCi0rICAgICAgICAgIHx8IHN0cnN0 ciAobmFtZSwgIi9saWJjLiIpICE9IE5VTEwgKTsKLSB9Ci0gCi0gLyogUmV0dXJuIG5vbi16ZXJv IGlmIFNPIGlzIHRoZSBsaWJwdGhyZWFkIHNoYXJlZCBsaWJyYXJ5LiAgKi8KCmRpZmYgLS1naXQg YS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTMucGF0Y2ggYi9nZGItcmhiejE5NzEwOTYtZ2xp YmMyLjM0LTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNTY1MDQuLjAw MDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC0zLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNzIgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KLURhdGU6 IE1vbiwgMTQgSnVuIDIwMjEgMTk6MjQ6NDEgLTA3MDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTk3MTA5 Ni1nbGliYzIuMzQtMy5wYXRjaAotCi07OyBCYWNrcG9ydCB0ZXN0c3VpdGUgcGF0Y2ggZm9yIG1h dGNoaW5nIG5ldyBsaWJ0aHJlYWRfZGIgcmVsYXRlZCBvdXRwdXQKLTs7IHdoZW4gdGVzdGluZyBn ZGIgb24gZ2xpYmMtMi4zNCBtYXRjaGluZXMgKFJIIEJaIDE5NzEwOTYpLgotCi10ZXN0c3VpdGUv Z2xpYi0yLjM0OiBNYXRjaC9jb25zdW1lIG9wdGlvbmFsIGxpYnRocmVhZF9kYiByZWxhdGVkIG91 dHB1dAotCi1XaGVuIHVzaW5nIGdsaWJjLTIuMzQsIHdlIG5vdyBzZWUgbWVzc2FnZXMgcmVsYXRl ZCB0byB0aGUgbG9hZGluZyBvZgotdGhlIHRocmVhZCBsaWJyYXJ5IGZvciBub24tdGhyZWFkIHBy b2dyYW1zLiAgRS5nLiAgZm9yIHRoZSB0ZXN0IGNhc2UsCi1nZGIuYmFzZS9leGVjbC11cGRhdGUt YnJlYWtwb2ludHMuZXhwLCB3ZSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHdoZW4KLXN0YXJ0aW5n IHRoZSBwcm9ncmFtOgotCi0oZ2RiKSBicmVhayAtcXVhbGlmaWVkIG1haW4KLUJyZWFrcG9pbnQg MSBhdCAweDEwMDExOGM6IGZpbGUgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtMi1nbGli YzI0NF9maXgvYmxkLy4uLy4uL3dvcmt0cmVlLWdsaWJjMjQ0X2ZpeC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2V4ZWNsLXVwZGF0ZS1icmVha3BvaW50cy5jLCBsaW5lIDM0LgotKGdkYikgcnVuCi1T dGFydGluZyBwcm9ncmFtOiBbLi4uXS9leGVjbC11cGRhdGUtYnJlYWtwb2ludHMxCi1bVGhyZWFk IGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0KLVVzaW5nIGhvc3QgbGlidGhy ZWFkX2RiIGxpYnJhcnkgIi9saWI2NC9saWJ0aHJlYWRfZGIuc28uMSIuCi0KLVRoZSB0d28gbGlu ZXMgb2Ygb3V0cHV0IHJlbGF0ZWQgdG8gbGlidGhyZWFkX2RiIGFyZSBuZXc7IHdlIGRpZG4ndCBz ZWUKLXRoZXNlIGluIHRoZSBwYXN0LiAgVGhpcyBpcyBhIHNpZGUgZWZmZWN0IG9mIGxpYmMgbm93 IGNvbnRhaW5pbmcgdGhlCi1wdGhyZWFkIEFQSSAtIHdlIGNhbiBubyBsb25nZXIgdGVsbCB3aGV0 aGVyIHRoZSBwcm9ncmFtIGlzCi1tdWx0aS10aHJlYWRlZCBieSBzaW1wbHkgbG9va2luZyBmb3Ig bGlicHRocmVhZC5zby4gIFRoYXQgc2FpZCwgSQotdGhpbmsgdGhhdCB3ZSBub3cgd2FudCB0byBs b2FkIGxpYnRocmVhZF9kYiBhbnl3YXkgc2luY2UgaXQncyB1c2VkIHRvCi1yZXNvbHZlIFRMUyB2 YXJpYWJsZXM7IGkuZS4gd2UgbmVlZCBpdCBmb3IgY29ycmVjdGx5IGRldGVybWluaW5nIHRoZQot dmFsdWUgb2YgZXJybm8uCi0KLVRoaXMgY29tbWl0IGFkZHMgdGhlIG5lY2Vzc2FyeSByZWd1bGFy IGV4cHJlc3Npb25zIHRvIG1hdGNoIHRoaXMKLShvcHRpb25hbCkgYWRkaXRpb25hbCBvdXRwdXQg aW4gdGhlIHR3byB0ZXN0cyB3aGljaCB3ZXJlIGZhaWxpbmcKLXdpdGhvdXQgaXQuCi0KLWdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0JKiBnZGIuYmFzZS9leGVjbC11cGRhdGUtYnJlYWtwb2lu dHMuZXhwOiBBZGQgcmVndWxhcgotCWV4cHJlc3Npb24gZm9yIG9wdGlvbmFsbHkgbWF0Y2hpbmcg b3V0cHV0IHJlbGF0ZWQgdG8KLQlsaWJ0aHJlYWRfZGIuCi0JKiBnZGIuYmFzZS9mb3JrLXByaW50 LWluZmVyaW9yLWV2ZW50cy5leHA6IExpa2V3aXNlLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9leGVjbC11cGRhdGUtYnJlYWtwb2ludHMuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9leGVjbC11cGRhdGUtYnJlYWtwb2ludHMuZXhwCi0tLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2V4ZWNsLXVwZGF0ZS1icmVha3BvaW50cy5leHAKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZXhlY2wtdXBkYXRlLWJyZWFrcG9pbnRzLmV4cAotQEAgLTEzMiw2ICsx MzIsNyBAQCBwcm9jIHRlc3QgeyBhbHdheXNfaW5zZXJ0ZWQgfSB7Ci0gCSJDb250aW51aW5nXFwu XHJcbiIgXAotIAkiJHtub3Rfbmx9IGlzIGV4ZWN1dGluZyBuZXcgcHJvZ3JhbTogJHtub3Rfbmx9 XHJcbiIgXAotIAkiKFJlYWRpbmcgJHtub3Rfbmx9IGZyb20gcmVtb3RlIHRhcmdldFxcLlxcLlxc LlxyXG4pKiIgXAotKwkiKD86LlRocmVhZCBkZWJ1Z2dpbmcgdXNpbmcgLio/IGVuYWJsZWQuXHJc blVzaW5nIC4qPyBsaWJyYXJ5IC4qP1xcLlxyXG4pPyIgXAotIAkiXHJcbiIgXAotIAkiQnJlYWtw b2ludCAxLCBtYWluLiokZ2RiX3Byb21wdCAkIgotICAgICBzZXQgbWVzc2FnZSAiY29udGludWUg YWNyb3NzIGV4ZWMiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLXBy aW50LWluZmVyaW9yLWV2ZW50cy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstcHJp bnQtaW5mZXJpb3ItZXZlbnRzLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LXByaW50LWluZmVyaW9yLWV2ZW50cy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Zm9yay1wcmludC1pbmZlcmlvci1ldmVudHMuZXhwCi1AQCAtNTksNiArNTksNyBAQCBzZXQgZGV0 YWNoX2NoaWxkX3JlICIke3JlYWRpbmdfcmV9XFxcW0RldGFjaGluZyBhZnRlciBmb3JrIGZyb20g Y2hpbGQgLipcXFxdXHJcbgotIHNldCBkZXRhY2hfcGFyZW50X3JlICIke3JlYWRpbmdfcmV9XFxc W0RldGFjaGluZyBhZnRlciBmb3JrIGZyb20gcGFyZW50IC4qXFxcXVxyXG4iCi0gc2V0IG5ld19p bmZfcmUgIiR7cmVhZGluZ19yZX1cXFxbTmV3IGluZmVyaW9yICRkZWNpbWFsIFxcKC4qXFwpXFxc XVxyXG4iCi0gc2V0IGluZl9kZXRhY2hlZF9yZSAiJHtyZWFkaW5nX3JlfVxcXFtJbmZlcmlvciAk ZGVjaW1hbCBcXCguKlxcKSBkZXRhY2hlZFxcXF1cclxuIgotK3NldCB0aHJlYWRfZGJfcmUgIig/ OlxcXFtUaHJlYWQgZGVidWdnaW5nIHVzaW5nIC4qPyBlbmFibGVkXFxcXVxyXG5Vc2luZyAuKj8g bGlicmFyeSAuKj9cXC5cclxuKT8iCi0gCi0gc2V0IGV4cGVjdGVkX291dHB1dCBbbGlzdCBcCi0g CQkJICIke2F0dGFjaF9jaGlsZF9yZX0ke25ld19pbmZfcmV9JHtkZXRhY2hfcGFyZW50X3JlfSR7 aW5mX2RldGFjaGVkX3JlfSIgXAotQEAgLTg0LDcgKzg1LDcgQEAgZm9yZWFjaF93aXRoX3ByZWZp eCBwcmludF9pbmZlcmlvcl9ldmVudHMgeyAib24iICJvZmYiIH0gewotIAkgICAgc2V0IG91dHB1 dCBbbGluZGV4ICRleHBlY3RlZF9vdXRwdXQgJGldCi0gCSAgICAjIEFsd2F5cyBhZGQgdGhlICJT dGFydGluZyBwcm9ncmFtLi4uIiBzdHJpbmcgc28gdGhhdCB3ZQotIAkgICAgIyBtYXRjaCBleGFj dGx5IHRoZSBsaW5lcyB3ZSB3YW50LgotLQkgICAgc2V0IG91dHB1dCAiU3RhcnRpbmcgcHJvZ3Jh bTogJGJpbmZpbGVcXHMqXHJcbiR7b3V0cHV0fSR7ZXhpdGVkX25vcm1hbGx5X3JlfSIKLSsJICAg IHNldCBvdXRwdXQgIlN0YXJ0aW5nIHByb2dyYW06ICRiaW5maWxlXFxzKlxyXG4ke3RocmVhZF9k Yl9yZX0ke291dHB1dH0ke3RocmVhZF9kYl9yZX0ke2V4aXRlZF9ub3JtYWxseV9yZX0iCi0gCSAg ICBzZXQgaSBbZXhwciAkaSArIDFdCi0gCSAgICBnZGJfdGVzdCAicnVuIiAkb3V0cHV0Ci0gCX0K CmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTQucGF0Y2ggYi9nZGItcmhi ejE5NzEwOTYtZ2xpYmMyLjM0LTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDdjZTliZTUuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC00LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0 LmNvbT4KLURhdGU6IE1vbiwgMTQgSnVuIDIwMjEgMTk6Mjk6MTkgLTA3MDAKLVN1YmplY3Q6IGdk Yi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNC5wYXRjaAotCi07OyBCYWNrcG9ydCBwYXRjaCBhZGp1 c3RpbmcgdGVzdCBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAuCi07OyAoUkggQlog MTk3MTA5NikuCi0KLXByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogQWxsb3cgbGliYyBzeW1ib2xz IHRvIGJlIGFscmVhZHkgbG9hZGVkCi0KLU9uZSBjb25zZXF1ZW5jZSBvZiBjaGFuZ2luZyBsaWJw dGhyZWFkX25hbWVfcCgpIGluIHNvbGliLmMgdG8gKGFsc28pCi1tYXRjaCBsaWJjIGlzIHRoYXQg dGhlIHN5bWJvbHMgZm9yIGxpYmMgd2lsbCBub3cgYmUgbG9hZGVkIGJ5Ci1zb2xpYl9hZGQoKSBp biBzb2xpYi5jLiAgSSB0aGluayB0aGlzIGlzIG1vc3RseSBoYXJtbGVzcyBiZWNhdXNlCi13ZSds bCBsaWtlbHkgd2FudCB0aGVzZSBzeW1ib2xzIHRvIGJlIGxvYWRlZCBhbnl3YXksIGJ1dCBpdCBk aWQgY2F1c2UKLXR3byBmYWlsdXJlcyBpbiBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5l eHAuCi0KLVNwZWNpZmljYWxseS4uLgotCi0xKQotCi1zaGFyZWRsaWJyYXJ5IC4qCi0oZ2RiKSBQ QVNTOiBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHA6IHNobGliIG9mZjogbG9hZCBz aGFyZWQtbGliCi0KLW5vdyBsb29rcyBsaWtlIHRoaXM6Ci0KLXNoYXJlZGxpYnJhcnkgLioKLVN5 bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yIC9saWI2NC9saWJjLnNvLjYKLShnZGIpIFBBU1M6IGdk Yi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogc2hsaWIgb2ZmOiBsb2FkIHNoYXJlZC1s aWIKLQotMikKLQotc2hhcmVkbGlicmFyeSAuKgotTG9hZGluZyBzeW1ib2xzIGZvciBzaGFyZWQg bGlicmFyaWVzOiAuKgotKGdkYikgUEFTUzogZ2RiLmJhc2UvcHJpbnQtc3ltYm9sLWxvYWRpbmcu ZXhwOiBzaGxpYiBicmllZjogbG9hZCBzaGFyZWQtbGliCi0KLW5vdyBsb29rcyBsaWtlIHRoaXM6 Ci0KLXNoYXJlZGxpYnJhcnkgLioKLUxvYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmll czogLioKLVN5bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yIC9saWI2NC9saWJjLnNvLjYKLShnZGIp IFBBU1M6IGdkYi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogc2hsaWIgYnJpZWY6IGxv YWQgc2hhcmVkLWxpYgotCi1GaXhpbmcgY2FzZSAjMiBlbmRlZCB1cCBiZWluZyBlYXNpZXIgdGhh biAjMS4gICMxIGhhZCBiZWVuIHVzaW5nCi1nZGJfdGVzdF9ub19vdXRwdXQgdG8gY29ycmVjdGx5 IG1hdGNoIHRoaXMgbm8tb3V0cHV0IGNhc2UuICBJCi1lbmRlZCB1cCByZXBsYWNpbmcgaXQgd2l0 aCBnZGJfdGVzdF9tdWx0aXBsZSwgbWF0Y2hpbmcgdGhlIGV4YWN0Ci1leHBlY3RlZCBvdXRwdXQg Zm9yIGVhY2ggb2YgdGhlIHR3byBub3cgYWNjZXB0YWJsZSBjYXNlcy4KLQotRm9yIGNhc2UgIzIs IEkgc2ltcGx5IGFkZGVkIGFuIG9wdGlvbmFsIG5vbi1jYXB0dXJpbmcgZ3JvdXAKLWZvciB0aGUg cG90ZW50aWFsIG5ldyBvdXRwdXQuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0JKiBn ZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAgKHByb2MgdGVzdF9sb2FkX3NobGliKToK LQlBbGxvdyAiU3ltYm9scyBhbHJlYWR5IGxvYWRlZCBmb3IuLi4iIG1lc3NhZ2VzLgotCi1kaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5nLmV4cAotLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJpbnQtc3ltYm9sLWxvYWRpbmcuZXhwCi1AQCAtOTYsNiAr OTYsNyBAQCB0ZXN0X2xvYWRfY29yZSBmdWxsCi0gCi0gcHJvYyB0ZXN0X2xvYWRfc2hsaWIgeyBw cmludF9zeW1ib2xfbG9hZGluZyB9IHsKLSAgICAgZ2xvYmFsIGJpbmZpbGUKLSsgICAgZ2xvYmFs IGdkYl9wcm9tcHQKLSAgICAgd2l0aF90ZXN0X3ByZWZpeCAic2hsaWIgJHtwcmludF9zeW1ib2xf bG9hZGluZ30iIHsKLSAJY2xlYW5fcmVzdGFydCAke2JpbmZpbGV9Ci0gCWdkYl90ZXN0X25vX291 dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIKLUBAIC0xMDYsMTIgKzEwNywyMCBAQCBwcm9j IHRlc3RfbG9hZF9zaGxpYiB7IHByaW50X3N5bWJvbF9sb2FkaW5nIH0gewotIAlzZXQgdGVzdF9u YW1lICJsb2FkIHNoYXJlZC1saWIiCi0gCXN3aXRjaCAke3ByaW50X3N5bWJvbF9sb2FkaW5nfSB7 Ci0gCSAgICAib2ZmIiB7Ci0tCQlnZGJfdGVzdF9ub19vdXRwdXQgInNoYXJlZGxpYnJhcnkgLioi IFwKLS0JCSAgICAke3Rlc3RfbmFtZX0KLSsJCXNldCBjbWQgInNoYXJlZGxpYnJhcnkgLioiCi0r CQlzZXQgY21kX3JlZ2V4IFtzdHJpbmdfdG9fcmVnZXhwICRjbWRdCi0rCQlnZGJfdGVzdF9tdWx0 aXBsZSAkY21kICR0ZXN0X25hbWUgewotKwkJICAgIC1yZSAiXiRjbWRfcmVnZXhcclxuJGdkYl9w cm9tcHQgJCIgewotKwkJCXBhc3MgJHRlc3RfbmFtZQotKwkJICAgIH0KLSsJCSAgICAtcmUgIl4k Y21kX3JlZ2V4XHJcblN5bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yXFteXHJcblxdKlxcL2xpYmNc XC5cW15cclxuXF0qXHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJCQlwYXNzICR0ZXN0X25hbWUKLSsJ CSAgICB9Ci0rCQl9Ci0gCSAgICB9Ci0gCSAgICAiYnJpZWYiIHsKLSAJCWdkYl90ZXN0ICJzaGFy ZWRsaWJyYXJ5IC4qIiBcCi0tCQkgICAgIkxvYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJh cmllczogXFwuXFwqIiBcCi0rCQkgICAgIkxvYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJh cmllczogXFwuXFwqLio/KD86U3ltYm9scyBhbHJlYWR5IGxvYWRlZCBmb3IgLio/bGliYyk/IiBc Ci0gCQkgICAgJHt0ZXN0X25hbWV9Ci0gCSAgICB9Ci0gCSAgICAiZnVsbCIgewoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNS5wYXRjaCBiL2dkYi1yaGJ6MTk3MTA5Ni1n bGliYzIuMzQtNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTExZDJiYy4u MDAwMDAwMAotLS0gYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTUucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw4NiArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0 ZTogTW9uLCAxNCBKdW4gMjAyMSAxOTozMjoxMiAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTcx MDk2LWdsaWJjMi4zNC01LnBhdGNoCi0KLTs7IEJhY2twb3J0IHBhdGNoIGFkanVzdGluZyB0ZXN0 IGdkYi5taS9taS1zeW0taW5mby5leHAgKFJIIEJaIDE5NzEwOTYpLgotCi1taS1zeW0taW5mby5l eHA6IEluY3JlYXNlIHRpbWVvdXQgZm9yIDExNC1zeW1ib2wtaW5mby1mdW5jdGlvbnMKLQotTG9h ZGluZyBsaWJjLnNvJ3Mgc3ltYm9scyBpbmNyZWFzZWQgdGhlIGFtb3VudCBvZiB0aW1lIG5lZWRl ZCBmb3IKLTExNC1zeW1ib2wtaW5mby1mdW5jdGlvbiB0byBmZXRjaCBzeW1ib2xzLCBjYXVzaW5n IGEgdGltZW91dCBkdXJpbmcgbXkKLXRlc3RpbmcuICBJIGVuY2xvc2VkIHRoZSBlbnRpcmUgYmxv Y2sgd2l0aCBhICJ3aXRoX3RpbWVvdXRfZmFjdG9yIDQiLAotd2hpY2ggZml4ZXMgdGhlIHByb2Js ZW0gZm9yIG1lLiAgKFVzaW5nIDIgYWxzbyBmaXhlZCBpdCBmb3IgbWUsIGJ1dCBpdAotbWlnaHQg bm90IGJlIGVub3VnaCB3aGVuIHJ1bm5pbmcgdGhpcyB0ZXN0IG9uIHNsb3dlciBtYWNoaW5lcy4p Ci0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0JKiBnZGIubWkvbWktc3ltLWluZm8uZXhw ICgxMTQtc3ltYm9sLWluZm8tZnVuY3Rpb24gdGVzdCk6IEluY3JlYXNlCi0JdGltZW91dC4KLQot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXN5bS1pbmZvLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXN5bS1pbmZvLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktc3ltLWluZm8uZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1zeW0taW5m by5leHAKLUBAIC0xMjIsMzMgKzEyMiwzNSBAQCBnZGJfdGVzdF9tdWx0aXBsZSAkY21kICR0ZXN0 bmFtZSAtcHJvbXB0ICIke21pX2dkYl9wcm9tcHR9JCIgewotICMgKGZyb20gdGhlIHN5bWJvbCB0 YWJsZSkuICBUaGVyZSdzIG9mdGVuIHNvIG11Y2ggb3V0cHV0IG91dHB1dCBmcm9tCi0gIyB0aGlz IGNvbW1hbmQgdGhhdCB3ZSBvdmVyZmxvdyBleHBlY3QncyBidWZmZXJzLCBhdm9pZCB0aGlzIGJ5 Ci0gIyBmZXRjaGluZyB0aGUgb3V0cHV0IHBpZWNlIGJ5IHBpZWNlLgotLXNldCB0ZXN0bmFtZSAi TGlzdCBhbGwgZnVuY3Rpb25zIgotLXNldCBjbWQgIjExNC1zeW1ib2wtaW5mby1mdW5jdGlvbnMg LS1pbmNsdWRlLW5vbmRlYnVnIgotLXNldCBzdGF0ZSAwCi0tZ2RiX3Rlc3RfbXVsdGlwbGUgJGNt ZCAke3Rlc3RuYW1lfSAtcHJvbXB0ICIke21pX2dkYl9wcm9tcHR9JCIgewotLSAgICAtcmUgIjEx NFxcXmRvbmUsc3ltYm9scz1ceyIgewotLQlpZiB7ICRzdGF0ZSA9PSAwIH0geyBzZXQgc3RhdGUg MSB9Ci0tCWV4cF9jb250aW51ZQotLSAgICB9Ci0tICAgIC1yZSAiZGVidWc9XFxcWyR7c3ltdGFi X3JlfSIgewotLQlpZiB7ICRzdGF0ZSA9PSAxIH0geyBzZXQgc3RhdGUgMiB9Ci0tCWV4cF9jb250 aW51ZQotLSAgICB9Ci0tICAgIC1yZSAiLCR7c3ltdGFiX3JlfSIgewotLQlleHBfY29udGludWUK LS0gICAgfQotLSAgICAtcmUgIlxcXF0sbm9uZGVidWc9XFxcWyIgewotLQlpZiB7ICRzdGF0ZSA9 PSAyIH0geyBzZXQgc3RhdGUgMyB9Ci0tCWV4cF9jb250aW51ZQotLSAgICB9Ci0tICAgIC1yZSAi XHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9XH0sIiB7Ci0tCWV4cF9jb250aW51ZQotLSAg ICB9Ci0tICAgIC1yZSAiXHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9XH1cXFxdXH1cclxu JHttaV9nZGJfcHJvbXB0fSQiIHsKLS0JaWYgeyAkc3RhdGUgPT0gMyB9IHsKLS0JICAgIHBhc3Mg JGdkYl90ZXN0X25hbWUKLS0JfSBlbHNlIHsKLS0JICAgIGZhaWwgJGdkYl90ZXN0X25hbWUKLSt3 aXRoX3RpbWVvdXRfZmFjdG9yIDQgewotKyAgICBzZXQgdGVzdG5hbWUgIkxpc3QgYWxsIGZ1bmN0 aW9ucyIKLSsgICAgc2V0IGNtZCAiMTE0LXN5bWJvbC1pbmZvLWZ1bmN0aW9ucyAtLWluY2x1ZGUt bm9uZGVidWciCi0rICAgIHNldCBzdGF0ZSAwCi0rICAgIGdkYl90ZXN0X211bHRpcGxlICRjbWQg JHt0ZXN0bmFtZX0gLXByb21wdCAiJHttaV9nZGJfcHJvbXB0fSQiIHsKLSsJLXJlICIxMTRcXF5k b25lLHN5bWJvbHM9XHsiIHsKLSsJICAgIGlmIHsgJHN0YXRlID09IDAgfSB7IHNldCBzdGF0ZSAx IH0KLSsJICAgIGV4cF9jb250aW51ZQotKwl9Ci0rCS1yZSAiZGVidWc9XFxcWyR7c3ltdGFiX3Jl fSIgewotKwkgICAgaWYgeyAkc3RhdGUgPT0gMSB9IHsgc2V0IHN0YXRlIDIgfQotKwkgICAgZXhw X2NvbnRpbnVlCi0rCX0KLSsJLXJlICIsJHtzeW10YWJfcmV9IiB7Ci0rCSAgICBleHBfY29udGlu dWUKLSsJfQotKwktcmUgIlxcXF0sbm9uZGVidWc9XFxcWyIgewotKwkgICAgaWYgeyAkc3RhdGUg PT0gMiB9IHsgc2V0IHN0YXRlIDMgfQotKwkgICAgZXhwX2NvbnRpbnVlCi0rCX0KLSsJLXJlICJc e2FkZHJlc3M9JHtxc3RyfSxuYW1lPSR7cXN0cn1cfSwiIHsKLSsJICAgIGV4cF9jb250aW51ZQot Kwl9Ci0rCS1yZSAiXHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9XH1cXFxdXH1cclxuJHtt aV9nZGJfcHJvbXB0fSQiIHsKLSsJICAgIGlmIHsgJHN0YXRlID09IDMgfSB7Ci0rCQlwYXNzICRn ZGJfdGVzdF9uYW1lCi0rCSAgICB9IGVsc2UgewotKwkJZmFpbCAkZ2RiX3Rlc3RfbmFtZQotKwkg ICAgfQotIAl9Ci0gICAgIH0KLSB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxOTc2ODg3LWZpZWxk LWxvY2F0aW9uLWtpbmQucGF0Y2ggYi9nZGItcmhiejE5NzY4ODctZmllbGQtbG9jYXRpb24ta2lu ZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGY5YWNjCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxOTc2ODg3LWZpZWxkLWxvY2F0aW9uLWtpbmQucGF0Y2gK QEAgLTAsMCArMSwzMCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbGV4YW5kcmE9MjBIPUMzPUExamtvdj1DMz1BMT89IDxh aGFqa292YUByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyOSBTZXAgMjAyMSAxMDo1ODo1MCArMDIw MAorU3ViamVjdDogZ2RiLXJoYnoxOTc2ODg3LWZpZWxkLWxvY2F0aW9uLWtpbmQucGF0Y2gKKwor OztCYWNrcG9ydCB1cHN0cmVhbSBwYXRjaCB3aGljaCBmaXhlcyBpbnRlcm5hbC1lcnJvcjogVW5l eHBlY3RlZAorOzt0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQgKFJIQlogMTk3Njg4NykuCisKK2dk YnR5cGVzLmM6IEFkZCB0aGUgY2FzZSBmb3IgRklFTERfTE9DX0tJTkRfRFdBUkZfQkxPQ0sKKwor VGhlIGNhc2UgZm9yIEZJRUxEX0xPQ19LSU5EX0RXQVJGX0JMT0NLIHdhcyBtaXNzaW5nIGZvcgor c3dpdGNoIFRZUEVfRklFTERfTE9DX0tJTkQuIFRoYXMgY2F1c2VkIGFuIGludGVybmFsLWVycm9y Cit1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMuCisKK0ZpeGVzIGJ1ZyAyODAzMC4KKworZGlmZiAt LWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKKy0tLSBhL2dkYi9nZGJ0eXBl cy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTU1NzEsNiArNTU3MSwxMCBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKKyAJCQkJICB4c3RyZHVwIChU WVBFX0ZJRUxEX1NUQVRJQ19QSFlTTkFNRSAodHlwZSwKKyAJCQkJCQkJCSAgICAgICBpKSkpOwor IAkgICAgICBicmVhazsKKysgICAgICAgICAgICBjYXNlIEZJRUxEX0xPQ19LSU5EX0RXQVJGX0JM T0NLOgorKyAgICAgICAgICAgICAgU0VUX0ZJRUxEX0RXQVJGX0JMT0NLIChuZXdfdHlwZS0+Zmll bGQgKGkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0ZJRUxE X0RXQVJGX0JMT0NLICh0eXBlLCBpKSk7CisrICAgICAgICAgICAgICBicmVhazsKKyAJICAgIGRl ZmF1bHQ6CisgCSAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgCQkJ ICAgICAgXygiVW5leHBlY3RlZCB0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQ6ICVkIiksCgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYnoyMDEyOTc2LXBhcGVyLW92ZXItZm9ydHJhbi1sZXgtcHJvYmxlbXMu cGF0Y2ggYi9nZGItcmhiejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzNmNTFkCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLXJoYnoyMDEyOTc2LXBhcGVyLW92ZXItZm9ydHJhbi1sZXgtcHJvYmxl bXMucGF0Y2gKQEAgLTAsMCArMSwxODUgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+ CitEYXRlOiBNb24sIDExIE9jdCAyMDIxIDExOjIyOjA0IC0wNzAwCitTdWJqZWN0OiBnZGItcmhi ejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRjaAorCis7OyBCYWNr cG9ydCBnZGIuZm9ydHJhbiB0ZXN0c3VpdGUgY2hhbmdlcyBpbiBvcmRlciB0byBhdm9pZCBGb3J0 cmFuCis7OyBsZXhpY2FsIGFuYWx5emVyIGJ1Zy4KKworW2dkYi90ZXN0c3VpdGVdIEZpeCBGQUlM IGluIGdkYi5taS9taS12YXItY2hpbGQtZi5leHAKKworV2hlbiBydW5uaW5nIHRlc3QtY2FzZSBn ZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwIG9uIG9wZW5TVVNFIFR1bWJsZXdlZWQKKyh3aXRoIGds aWJjIDIuMzQpIEkgcnVuIGludG86CisuLi4KKyhnZGIpIF5NCitQQVNTOiBnZGIubWkvbWktdmFy LWNoaWxkLWYuZXhwOiBtaSBydW50byBwcm9nX2FycmF5CitFeHBlY3Rpbmc6IF4oLXZhci1jcmVh dGUgYXJyYXkgXCogYXJyYXlbXk0KK10rKT8oXF5kb25lLG5hbWU9ImFycmF5IixudW1jaGlsZD0i WzAtOV0rIix2YWx1ZT0iLioiLHR5cGU9LiosaGFzX21vcmU9IjAiW15NCitdK1soXWdkYlspXSBe TQorWyBdKikKKy12YXItY3JlYXRlIGFycmF5ICogYXJyYXleTQorJiJBdHRlbXB0IHRvIHVzZSBh IHR5cGUgbmFtZSBhcyBhbiBleHByZXNzaW9uLlxuIl5NCiteZXJyb3IsbXNnPSItdmFyLWNyZWF0 ZTogdW5hYmxlIHRvIGNyZWF0ZSB2YXJpYWJsZSBvYmplY3QiXk0KKyhnZGIpIF5NCitGQUlMOiBn ZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBjcmVhdGUgbG9jYWwgdmFyaWFibGUgYXJyYXkgKHVu ZXhwZWN0ZWQgb3V0cHV0KQorLi4uCisKK1RoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIG5hbWUgYXJy YXkgaXMgdXNlZCBib3RoOgorLSBhcyB0aGUgbmFtZSBmb3IgYSBsb2NhbCB2YXJpYWJsZQorLSBh cyB0aGUgbmFtZSBvZiBhIHR5cGUgaW4gZ2xpYmMsIGluIGZpbGUgbWFsbG9jL2R5bmFycmF5LXNr ZWxldG9uLmMsIGFzIGluY2x1ZGVkCisgIGJ5IG5zcy9uc3NfZmlsZXMvZmlsZXMtaG9zdHMuYy4K KworRml4IHRoaXMgYnkgaWdub3JpbmcgdGhlIHNoYXJlZCBsaWIgc3ltYm9scy4KKworTGlrZXdp c2UgaW4gYSBjb3VwbGUgb2Ygb3RoZXIgZm9ydHJhbiB0ZXN0cy4KKworVGVzdGVkIG9uIHg4Nl82 NC1saW51eC4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYWxsb2Nh dGVkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYWxsb2NhdGVkLmV4cAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hbGxvY2F0ZWQuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2FsbG9jYXRlZC5leHAKK0BAIC0yNSwxMSArMjUsMTcgQEAgaWYge1tw cmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9 IFwKKyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgQXZvaWQgc2hhcmVkIGxpYiBzeW1ib2xzLgor K2dkYl90ZXN0X25vX291dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIKKysKKyBpZiAhW2Zv cnRyYW5fcnVudG9fbWFpbl0geworICAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWlu IgorICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBBdm9pZCBsaWJjIHN5bWJvbHMsIGluIHBhcnRp Y3VsYXIgdGhlICdhcnJheScgdHlwZS4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm5vc2hhcmVkbGli cmFyeSIKKysKKyAjIFNldCBhbGwgdGhlIGJyZWFrcG9pbnRzLgorIGZvciB7IHNldCBpIDEgfSB7 ICRpIDwgNiB9IHsgaW5jciBpIH0geworICAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAiQnJlYWtwb2ludCAkaSJdCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLWJhZC5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJy YXktc2xpY2VzLWJhZC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXkt c2xpY2VzLWJhZC5leHAKK0BAIC0yNSwxMSArMjUsMTcgQEAgaWYge1twcmVwYXJlX2Zvcl90ZXN0 aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKyAgICAgcmV0dXJu IC0xCisgfQorIAorKyMgQXZvaWQgc2hhcmVkIGxpYiBzeW1ib2xzLgorK2dkYl90ZXN0X25vX291 dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIKKysKKyBpZiAhW2ZvcnRyYW5fcnVudG9fbWFp bl0geworICAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorICAgICByZXR1cm4g LTEKKyB9CisgCisrIyBBdm9pZCBsaWJjIHN5bWJvbHMsIGluIHBhcnRpY3VsYXIgdGhlICdhcnJh eScgdHlwZS4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm5vc2hhcmVkbGlicmFyeSIKKysKKyAjIGdk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IE1lc3NhZ2UgQnJlYWtw b2ludCJdCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkZpcnN0IEJyZWFr cG9pbnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJTZWNvbmQgQnJl YWtwb2ludCJdCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1z bGljZXMtc3ViLXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNs aWNlcy1zdWItc2xpY2VzLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJh eS1zbGljZXMtc3ViLXNsaWNlcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLXN1Yi1zbGljZXMuZXhwCitAQCAtMjUsMTEgKzI1LDE3IEBAIGlmIHtbcHJl cGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBc CisgICAgIHJldHVybiAtMQorIH0KKyAKKysjIEF2b2lkIHNoYXJlZCBsaWIgc3ltYm9scy4KKytn ZGJfdGVzdF9ub19vdXRwdXQgInNldCBhdXRvLXNvbGliLWFkZCBvZmYiCisrCisgaWYgIVtmb3J0 cmFuX3J1bnRvX21haW5dIHsKKyAgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIK KyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgQXZvaWQgbGliYyBzeW1ib2xzLCBpbiBwYXJ0aWN1 bGFyIHRoZSAnYXJyYXknIHR5cGUuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJub3NoYXJlZGxpYnJh cnkiCisrCisgIyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBN ZXNzYWdlIEJyZWFrcG9pbnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJTdG9wIEhlcmUiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5h bCBCcmVha3BvaW50Il0KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Fy cmF5LXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5l eHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4cAorKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhwCitAQCAtNTUsMTEg KzU1LDE3IEBAIHByb2MgcnVuX3Rlc3QgeyByZXBhY2sgfSB7CisgCisgICAgIGNsZWFuX3Jlc3Rh cnQgJHtiaW5maWxlfQorIAorKyAgICAjIEF2b2lkIHNoYXJlZCBsaWIgc3ltYm9scy4KKysgICAg Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgorKworICAgICBpZiAh W2ZvcnRyYW5fcnVudG9fbWFpbl0geworIAl1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWlu IgorIAlyZXR1cm4gLTEKKyAgICAgfQorIAorKyAgICAjIEF2b2lkIGxpYmMgc3ltYm9scywgaW4g cGFydGljdWxhciB0aGUgJ2FycmF5JyB0eXBlLgorKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgIm5v c2hhcmVkbGlicmFyeSIKKysKKyAgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgZm9ydHJhbiBy ZXBhY2stYXJyYXktc2xpY2VzICRyZXBhY2siCisgCisgICAgICMgZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgIkRpc3BsYXkgTWVzc2FnZSBCcmVha3BvaW50Il0KK2RpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xib3VuZC11Ym91bmQuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorQEAgLTI1LDEyICsyNSwxNyBAQCBpZiB7W3ByZXBh cmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAor ICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBBdm9pZCBzaGFyZWQgbGliIHN5bWJvbHMuCisrZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgorIAorIGlmICFbZm9ydHJh bl9ydW50b19tYWluXSB7CisgICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIG1haW4iCisg ICAgIHJldHVybiAtMQorIH0KKyAKKysjIEF2b2lkIGxpYmMgc3ltYm9scywgaW4gcGFydGljdWxh ciB0aGUgJ2FycmF5JyB0eXBlLgorK2dkYl90ZXN0X25vX291dHB1dCAibm9zaGFyZWRsaWJyYXJ5 IgorKworIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJUZXN0IEJyZWFrcG9p bnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3Bv aW50Il0KKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5 LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhwCistLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJhcnJheS5leHAKK0BAIC0yNywxNiArMjcsMTcgQEAgaWYge1twcmVwYXJl X2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1 ZyBmOTB9XX0geworICAgICByZXR1cm4gLTEKKyB9CisgCistZ2RiX2V4aXQKKy1nZGJfc3RhcnQK Ky1nZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKy1nZGJfbG9hZCAke2JpbmZp bGV9CisrIyBBdm9pZCBzaGFyZWQgbGliIHN5bWJvbHMuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgorIAorIGlmICFbZm9ydHJhbl9ydW50b19tYWluXSB0aGVu IHsKKyAgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gbWFpbiIKKyAgICAgY29udGludWUKKyB9 CisgCisrIyBBdm9pZCBsaWJjIHN5bWJvbHMsIGluIHBhcnRpY3VsYXIgdGhlICdhcnJheScgdHlw ZS4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm5vc2hhcmVkbGlicmFyeSIKKysKKyAjIFRyeSB0byBz ZXQgYnJlYWtwb2ludCBhdCB0aGUgbGFzdCB3cml0ZSBzdGF0ZW1lbnQuCisgCisgc2V0IGJwX2xv Y2F0aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzdHIoOikiXQorZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLXZhci1jaGlsZC1mLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNo aWxkLWYuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAK K0BAIC0zNiw4ICszNiwxNCBAQCBpZiB7W2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBcCisgbWlfZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNy Y2Rpci8kc3ViZGlyCisgbWlfZ2RiX2xvYWQgJHtiaW5maWxlfQorIAorKyMgQXZvaWQgc2hhcmVk IGxpYiBzeW1ib2xzLgorK21pX2dkYl90ZXN0ICItZ2RiLXNldCBhdXRvLXNvbGliLWFkZCBvZmYi ICJcXF5kb25lIgorKworIG1pX3J1bnRvIHByb2dfYXJyYXkKKyAKKysjIEF2b2lkIGxpYmMgc3lt Ym9scywgaW4gcGFydGljdWxhciB0aGUgJ2FycmF5JyB0eXBlLgorK21pX2dkYl90ZXN0ICJub3No YXJlZGxpYnJhcnkiICIuKlxcXmRvbmUiCisrCisgbWlfY3JlYXRlX3Zhcm9iaiAiYXJyYXkiICJh cnJheSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBhcnJheSIKKyAKKyAKCmRpZmYgLS1naXQgYS9n ZGItcmhiejIwMjIxNzctZHByaW50Zi0xLnBhdGNoIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYt MS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTEyMjg5Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMS5wYXRjaApAQCAtMCwwICsx LDMxNSBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMTAgTm92 IDIwMjEgMTg6NTI6MjIgLTA3MDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyMjE3Ny1kcHJpbnRmLTEu cGF0Y2gKKworOzsgQmFja3BvcnQgZml4IGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3Nyku CisKK0ZpeCBQUiAyODMwOCAtIGRwcmludGYgYnJlYWtwb2ludHMgbm90IHdvcmtpbmcgd2hlbiBy dW4gZnJvbSBzY3JpcHQKKworVGhpcyBjb21taXQgZml4ZXMgQnVnIDI4MzA4LCB0aXRsZWQgIlN0 cmFuZ2UgaW50ZXJhY3Rpb25zIHdpdGgKK2RwcmludGYgYW5kIGJyZWFrL2NvbW1hbmRzIjoKKwor QnVnOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yODMw OAorCitTaW5jZSBjcmVhdGluZyB0aGF0IGJ1ZyByZXBvcnQsIEkndmUgZm91bmQgYSBzb21ld2hh dCBzaW1wbGVyIHdheSBvZgorcmVwcm9kdWNpbmcgdGhlIHByb2JsZW0uICBJJ3ZlIGVuY2Fwc3Vs YXRlZCBpdCBpbnRvIHRoZSBHREIgdGVzdCBjYXNlCit3aGljaCBJJ3ZlIGNyZWF0ZWQgYWxvbmcg d2l0aCB0aGlzIGJ1ZyBmaXguICBUaGUgbmFtZSBvZiB0aGUgbmV3IHRlc3QKK2lzIGdkYi5iYXNl L2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmV4cCwgSSdsbCBkZW1vbnN0cmF0ZSB0aGUKK3By b2JsZW0gdXNpbmcgdGhpcyB0ZXN0IGNhc2UsIHRob3VnaCBmb3IgYnJldml0eSwgSSd2ZSBwbGFj ZWQgYWxsCityZWxldmFudCBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYW5kIGhhdmUgcmVu YW1lZCB0aGUgZmlsZXMgdG8gYWxsCitzdGFydCB3aXRoICdkcC1idWcnIGluc3RlYWQgb2YgJ2Rw cmludGYtZXhlY3V0aW9uLXgtc2NyaXB0Jy4KKworVGhlIHNjcmlwdCBmaWxlLCBuYW1lZCBkcC1i dWcuZ2RiLCBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCitkcHJpbnRmIGlu Y3JlbWVudCwgImRwcmludGYgaW4gaW5jcmVtZW50KCksIHZpPSVkXG4iLCB2aQorYnJlYWsgaW5j X3ZpCitjb21tYW5kcworICBjb250aW51ZQorZW5kCitydW4KKworTm90ZSB0aGF0IHRoZSBmaW5h bCBjb21tYW5kIGluIHRoaXMgc2NyaXB0IGlzICdydW4nLiAgV2hlbiAncnVuJyBpcworaW5zdGVh ZCBpc3N1ZWQgaW50ZXJhY3RpdmVseSwgdGhlICBidWcgZG9lcyBub3Qgb2NjdXIuICBTbywgbGV0 J3MgbG9vaworYXQgdGhlIGludGVyYWN0aXZlIGNhc2UgZmlyc3QgaW4gb3JkZXIgdG8gc2VlIHRo ZSBjb3JyZWN0L2V4cGVjdGVkCitvdXRwdXQ6CisKKyQgZ2RiIC1xIC14IGRwLWJ1Zy5nZGIgZHAt YnVnCisuLi4gZWxpZGluZyBidWdneSBvdXRwdXQgd2hpY2ggSSdsbCBkaXNjdXNzIGxhdGVyIC4u LgorKGdkYikgcnVuCitTdGFydGluZyBwcm9ncmFtOiAvbWVzcXVpdGUyL3NvdXJjZXdhcmUtZ2l0 L2YzNC1tYXN0ZXIvYmxkL2dkYi90bXAvZHAtYnVnCit2aT0wCitkcHJpbnRmIGluIGluY3JlbWVu dCgpLCB2aT0wCisKK0JyZWFrcG9pbnQgMiwgaW5jX3ZpICgpIGF0IGRwcmludGYtZXhlY3V0aW9u LXgtc2NyaXB0LmM6MjYKKzI2CWluIGRwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMKK3ZpPTEK K2RwcmludGYgaW4gaW5jcmVtZW50KCksIHZpPTEKKworQnJlYWtwb2ludCAyLCBpbmNfdmkgKCkg YXQgZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuYzoyNgorMjYJaW4gZHByaW50Zi1leGVjdXRp b24teC1zY3JpcHQuYwordmk9MgorZHByaW50ZiBpbiBpbmNyZW1lbnQoKSwgdmk9MgorCitCcmVh a3BvaW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jOjI2Cisy NglpbiBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jCit2aT0zCitbSW5mZXJpb3IgMSAocHJv Y2VzcyAxNTM5MjEwKSBleGl0ZWQgbm9ybWFsbHldCisKK0luIHRoaXMgcnVuLCBpbiB3aGljaCAn cnVuJyB3YXMgaXNzdWVkIGZyb20gdGhlIGdkYiBwcm9tcHQgKGluc3RlYWQKK29mIGF0IHRoZSBl bmQgb2YgdGhlIHNjcmlwdCksIHRoZXJlIGFyZSB0aHJlZSBkcHJpbnRmIG1lc3NhZ2VzIGFsb25n Cit3aXRoIHRocmVlICdCcmVha3BvaW50IDInIG1lc3NhZ2VzLiAgVGhpcyBpcyB0aGUgY29ycmVj dCBvdXRwdXQuCisKK05vdyBsZXQncyBsb29rIGF0IHRoZSBvdXRwdXQgdGhhdCBJIHNuaXBwZWQg YWJvdmU7IHRoaXMgaXMgdGhlIG91dHB1dAord2hlbiAncnVuJyBpcyBpc3N1ZWQgZnJvbSB0aGUg c2NyaXB0IGxvYWRlZCB2aWEgR0RCJ3MgLXggc3dpdGNoOgorCiskIGdkYiAtcSAteCBkcC1idWcu Z2RiIGRwLWJ1ZworUmVhZGluZyBzeW1ib2xzIGZyb20gZHAtYnVnLi4uCitEcHJpbnRmIDEgYXQg MHg0MDExNmU6IGZpbGUgZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuYywgbGluZSAzOC4KK0Jy ZWFrcG9pbnQgMiBhdCAweDQwMTEzYTogZmlsZSBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5j LCBsaW5lIDI2Lgordmk9MAorZHByaW50ZiBpbiBpbmNyZW1lbnQoKSwgdmk9MAorCitCcmVha3Bv aW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jOjI2CisyNglk cHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Lgor dmk9MQorCitCcmVha3BvaW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4ZWN1dGlvbi14LXNj cmlwdC5jOjI2CisyNglpbiBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jCit2aT0yCisKK0Jy ZWFrcG9pbnQgMiwgaW5jX3ZpICgpIGF0IGRwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmM6MjYK KzI2CWluIGRwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMKK3ZpPTMKK1tJbmZlcmlvciAxIChw cm9jZXNzIDE1MzkxNzUpIGV4aXRlZCBub3JtYWxseV0KKworSW4gdGhlIG91dHB1dCBzaG93biBh Ym92ZSwgb25seSB0aGUgZmlyc3QgZHByaW50ZiBtZXNzYWdlIGlzIHByaW50ZWQuCitUaGUgMm5k IGFuZCAzcmQgZHByaW50ZiBtZXNzYWdlcyBhcmUgbWlzc2luZyEgIEhvd2V2ZXIsIGFsbCB0aHJl ZQorJ0JyZWFrcG9pbnQgMi4uLicgbWVzc2FnZXMgYXJlIHN0aWxsIHByaW50ZWQuCisKK1doeSBk b2VzIHRoaXMgaGFwcGVuPworCiticHN0YXRfZG9fYWN0aW9uc18xKCkgaW4gZ2RiL2JyZWFrcG9p bnQuYyBjb250YWlucyB0aGUgZm9sbG93aW5nCitjb21tZW50IGFuZCBjb2RlIG5lYXIgdGhlIHN0 YXJ0IG9mIHRoZSBmdW5jdGlvbjoKKworICAvKiBBdm9pZCBlbmRsZXNzIHJlY3Vyc2lvbiBpZiBh IGBzb3VyY2UnIGNvbW1hbmQgaXMgY29udGFpbmVkCisgICAgIGluIGJzLT5jb21tYW5kcy4gICov CisgIGlmIChleGVjdXRpbmdfYnJlYWtwb2ludF9jb21tYW5kcykKKyAgICByZXR1cm4gMDsKKwor ICBzY29wZWRfcmVzdG9yZSBzYXZlX2V4ZWN1dGluZworICAgID0gbWFrZV9zY29wZWRfcmVzdG9y ZSAoJmV4ZWN1dGluZ19icmVha3BvaW50X2NvbW1hbmRzLCAxKTsKKworQWxzbywgYXMgZGVzY3Jp YmVkIGJ5IHRoaXMgY29tbWVudCBwcmlvciB0byB0aGUgJ2FzeW5jJyBmaWVsZAoraW4gJ3N0cnVj dCB1aScgaW4gdG9wLmgsIHRoZSBtYWluIFVJIHN0YXJ0cyBvZmYgaW4gc3luYyBtb2RlCit3aGVu IHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIGFyZ3VtZW50czoKKworICAvKiBUcnVlIGlmIHRoZSBV SSBpcyBpbiBhc3luYyBtb2RlLCBmYWxzZSBpZiBpbiBzeW5jIG1vZGUuICBJZiBpbgorICAgICBz eW5jIG1vZGUsIGEgc3luY2hyb25vdXMgZXhlY3V0aW9uIGNvbW1hbmQgKGUuZywgIm5leHQiKSBk b2VzIG5vdAorICAgICByZXR1cm4gdW50aWwgdGhlIGNvbW1hbmQgaXMgZmluaXNoZWQuICBJZiBp biBhc3luYyBtb2RlLCB0aGVuCisgICAgIHJ1bm5pbmcgYSBzeW5jaHJvbm91cyBjb21tYW5kIHJl dHVybnMgcmlnaHQgYWZ0ZXIgcmVzdW1pbmcgdGhlCisgICAgIHRhcmdldC4gIFdhaXRpbmcgZm9y IHRoZSBjb21tYW5kJ3MgY29tcGxldGlvbiBpcyBsYXRlciBkb25lIG9uCisgICAgIHRoZSB0b3Ag ZXZlbnQgbG9vcC4gIEZvciB0aGUgbWFpbiBVSSwgdGhpcyBzdGFydHMgb3V0IGRpc2FibGVkLAor ICAgICB1bnRpbCBhbGwgdGhlIGV4cGxpY2l0IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgKGUuZy4s IGBnZGIgLWV4CisgICAgICJzdGFydCIgLWV4ICJuZXh0IicpIGFyZSBwcm9jZXNzZWQuICAqLwor CitUaGlzIGNvbWJpbmF0aW9uIG9mIHRoaW5ncywgdGhlIHN0YXRlIG9mIHRoZSBzdGF0aWMgZ2xv YmFsCisnZXhlY3V0aW5nX2JyZWFrcG9pbnRfY29tbWFuZHMnIHBsdXMgdGhlIHN0YXRlIG9mIHRo ZSBhc3luYworZmllbGQgaW4gdGhlIG1haW4gVUkgY2F1c2VzIHRoaXMgYmVoYXZpb3IuCisKK1Ro aXMgaXMgYSBiYWNrdHJhY2UgYWZ0ZXIgaGl0dGluZyB0aGUgZHByaW50ZiBicmVha3BvaW50IGZv cgordGhlIHNlY29uZCB0aW1lIHdoZW4gZG9pbmcgJ3J1bicgZnJvbSB0aGUgc2NyaXB0IGZpbGUs IGkuZS4KK25vbi1pbnRlcmFjdGl2ZWx5OgorCitUaHJlYWQgMSAiZ2RiIiBoaXQgQnJlYWtwb2lu dCAzLCBicHN0YXRfZG9fYWN0aW9uc18xIChic3A9MHg3ZmZmZmZmZmMyYjgpCisgICAgYXQgL2ly b253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtbWFzdGVyL2JsZC8uLi8uLi93b3JrdHJlZS1tYXN0 ZXIvZ2RiL2JyZWFrcG9pbnQuYzo0NDMxCis0NDMxCSAgaWYgKGV4ZWN1dGluZ19icmVha3BvaW50 X2NvbW1hbmRzKQorCisgIzAgIGJwc3RhdF9kb19hY3Rpb25zXzEgKGJzcD0weDdmZmZmZmZmYzJi OCkKKyAgICAgYXQgZ2RiL2JyZWFrcG9pbnQuYzo0NDMxCisgIzEgIDB4MDAwMDAwMDAwMDRkOGJj NiBpbiBkcHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlIChicz0weDE1MzgwOTApCisgICAgIGF0 IGdkYi9icmVha3BvaW50LmM6MTMwNDgKKyAjMiAgMHgwMDAwMDAwMDAwNGM1Y2FhIGluIGJwc3Rh dF9zdG9wX3N0YXR1cyAoYXNwYWNlPTB4MTE2ZGJjMCwgYnBfYWRkcj0weDQwMTE2ZSwgdGhyZWFk PTB4MTM3ZjQ1MCwgd3M9MHg3ZmZmZmZmZmM3MTgsCisgICAgIHN0b3BfY2hhaW49MHgxNTM4MDkw KSBhdCBnZGIvYnJlYWtwb2ludC5jOjU0OTgKKyAjMyAgMHgwMDAwMDAwMDAwNzY4ZDk4IGluIGhh bmRsZV9zaWduYWxfc3RvcCAoZWNzPTB4N2ZmZmZmZmZjNmYwKQorICAgICBhdCBnZGIvaW5mcnVu LmM6NjE3MgorICM0ICAweDAwMDAwMDAwMDA3Njc4ZDMgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50 IChlY3M9MHg3ZmZmZmZmZmM2ZjApCisgICAgIGF0IGdkYi9pbmZydW4uYzo1NjYyCisgIzUgIDB4 MDAwMDAwMDAwMDc2M2NkNSBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKQorICAgICBhdCBnZGIv aW5mcnVuLmM6NDA2MAorICM2ICAweDAwMDAwMDAwMDA3NDZkN2QgaW4gaW5mZXJpb3JfZXZlbnRf aGFuZGxlciAoZXZlbnRfdHlwZT1JTkZfUkVHX0VWRU5UKQorICAgICBhdCBnZGIvaW5mLWxvb3Au Yzo0MQorICM3ICAweDAwMDAwMDAwMDA3YTcwMmYgaW4gaGFuZGxlX3RhcmdldF9ldmVudCAoZXJy b3I9MCwgY2xpZW50X2RhdGE9MHgwKQorICAgICBhdCBnZGIvbGludXgtbmF0LmM6NDIwNworICM4 ICAweDAwMDAwMDAwMDBiOGNkNmUgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IChibG9jaz1ibG9ja0Bl bnRyeT0wKQorICAgICBhdCBnZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6NzAxCisgIzkgIDB4MDAw MDAwMDAwMGI4ZDAzMiBpbiBnZGJfd2FpdF9mb3JfZXZlbnQgKGJsb2NrPTApCisgICAgIGF0IGdk YnN1cHBvcnQvZXZlbnQtbG9vcC5jYzo1OTcKKyAjMTAgZ2RiX2RvX29uZV9ldmVudCAoKSBhdCBn ZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6MjEyCisgIzExIDB4MDAwMDAwMDAwMDlkMTliNiBpbiB3 YWl0X3N5bmNfY29tbWFuZF9kb25lICgpCisgICAgIGF0IGdkYi90b3AuYzo1MjgKKyAjMTIgMHgw MDAwMDAwMDAwOWQxYTNmIGluIG1heWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUgKHdhc19zeW5j PTApCisgICAgIGF0IGdkYi90b3AuYzo1NDUKKyAjMTMgMHgwMDAwMDAwMDAwOWQyMDMzIGluIGV4 ZWN1dGVfY29tbWFuZCAocD0weDdmZmZmZmZmY2IxOCAiIiwgZnJvbV90dHk9MCkKKyAgICAgYXQg Z2RiL3RvcC5jOjY3NgorICMxNCAweDAwMDAwMDAwMDA1NjBkNWIgaW4gZXhlY3V0ZV9jb250cm9s X2NvbW1hbmRfMSAoY21kPTB4MTNiOWJiMCwgZnJvbV90dHk9MCkKKyAgICAgYXQgZ2RiL2NsaS9j bGktc2NyaXB0LmM6NTQ3CisgIzE1IDB4MDAwMDAwMDAwMDU2MTM0YSBpbiBleGVjdXRlX2NvbnRy b2xfY29tbWFuZCAoY21kPTB4MTNiOWJiMCwgZnJvbV90dHk9MCkKKyAgICAgYXQgZ2RiL2NsaS9j bGktc2NyaXB0LmM6NzE3CisgIzE2IDB4MDAwMDAwMDAwMDRjM2JiZSBpbiBicHN0YXRfZG9fYWN0 aW9uc18xIChic3A9MHgxMzdmNTMwKQorICAgICBhdCBnZGIvYnJlYWtwb2ludC5jOjQ0NjkKKyAj MTcgMHgwMDAwMDAwMDAwNGMzZDQwIGluIGJwc3RhdF9kb19hY3Rpb25zICgpCisgICAgIGF0IGdk Yi9icmVha3BvaW50LmM6NDUzMworICMxOCAweDAwMDAwMDAwMDA2YTQ3M2EgaW4gY29tbWFuZF9o YW5kbGVyIChjb21tYW5kPTB4MTM5OWFkMCAicnVuIikKKyAgICAgYXQgZ2RiL2V2ZW50LXRvcC5j OjYyNAorICMxOSAweDAwMDAwMDAwMDA5ZDE4MmUgaW4gcmVhZF9jb21tYW5kX2ZpbGUgKHN0cmVh bT0weDExM2U1NDApCisgICAgIGF0IGdkYi90b3AuYzo0NDMKKyAjMjAgMHgwMDAwMDAwMDAwNTYz Njk3IGluIHNjcmlwdF9mcm9tX2ZpbGUgKHN0cmVhbT0weDExM2U1NDAsIGZpbGU9MHgxM2JiMGIw ICJkcC1idWcuZ2RiIikKKyAgICAgYXQgZ2RiL2NsaS9jbGktc2NyaXB0LmM6MTY0MgorICMyMSAw eDAwMDAwMDAwMDA2YWJkNjMgaW4gc291cmNlX2dkYl9zY3JpcHQgKGV4dGxhbmc9MHhjNDRlODAg PGV4dGVuc2lvbl9sYW5ndWFnZV9nZGI+LCBzdHJlYW09MHgxMTNlNTQwLAorICAgICBmaWxlPTB4 MTNiYjBiMCAiZHAtYnVnLmdkYiIpIGF0IGdkYi9leHRlbnNpb24uYzoxODgKKyAjMjIgMHgwMDAw MDAwMDAwNTQ0NDAwIGluIHNvdXJjZV9zY3JpcHRfZnJvbV9zdHJlYW0gKHN0cmVhbT0weDExM2U1 NDAsIGZpbGU9MHg3ZmZmZmZmZmQ5MWEgImRwLWJ1Zy5nZGIiLAorICAgICBmaWxlX3RvX29wZW49 MHgxM2JiMGIwICJkcC1idWcuZ2RiIikKKyAgICAgYXQgZ2RiL2NsaS9jbGktY21kcy5jOjY5Mgor ICMyMyAweDAwMDAwMDAwMDA1NDQ1NTcgaW4gc291cmNlX3NjcmlwdF93aXRoX3NlYXJjaCAoZmls ZT0weDdmZmZmZmZmZDkxYSAiZHAtYnVnLmdkYiIsIGZyb21fdHR5PTEsIHNlYXJjaF9wYXRoPTAp CisgICAgIGF0IGdkYi9jbGkvY2xpLWNtZHMuYzo3NTAKKyAjMjQgMHgwMDAwMDAwMDAwNTQ0NWNm IGluIHNvdXJjZV9zY3JpcHQgKGZpbGU9MHg3ZmZmZmZmZmQ5MWEgImRwLWJ1Zy5nZGIiLCBmcm9t X3R0eT0xKQorICAgICBhdCBnZGIvY2xpL2NsaS1jbWRzLmM6NzU5CisgIzI1IDB4MDAwMDAwMDAw MDdjZjZkOSBpbiBjYXRjaF9jb21tYW5kX2Vycm9ycyAoY29tbWFuZD0weDU0NDVhYSA8c291cmNl X3NjcmlwdChjaGFyIGNvbnN0KiwgaW50KT4sCisgICAgIGFyZz0weDdmZmZmZmZmZDkxYSAiZHAt YnVnLmdkYiIsIGZyb21fdHR5PTEsIGRvX2JwX2FjdGlvbnM9ZmFsc2UpCisgICAgIGF0IGdkYi9t YWluLmM6NTIzCisgIzI2IDB4MDAwMDAwMDAwMDdjZjg1ZCBpbiBleGVjdXRlX2NtZGFyZ3MgKGNt ZGFyZ192ZWM9MHg3ZmZmZmZmZmQxYjAsIGZpbGVfdHlwZT1DTURBUkdfRklMRSwgY21kX3R5cGU9 Q01EQVJHX0NPTU1BTkQsCisgICAgIHJldD0weDdmZmZmZmZmZDE4YykgYXQgZ2RiL21haW4uYzo2 MTUKKyAjMjcgMHgwMDAwMDAwMDAwN2QwYzhlIGluIGNhcHR1cmVkX21haW5fMSAoY29udGV4dD0w eDdmZmZmZmZmZDNmMCkKKyAgICAgYXQgZ2RiL21haW4uYzoxMzIyCisgIzI4IDB4MDAwMDAwMDAw MDdkMGViYSBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTB4N2ZmZmZmZmZkM2YwKQorICAgICBhdCBn ZGIvbWFpbi5jOjEzNDMKKyAjMjkgMHgwMDAwMDAwMDAwN2QwZjI1IGluIGdkYl9tYWluIChhcmdz PTB4N2ZmZmZmZmZkM2YwKQorICAgICBhdCBnZGIvbWFpbi5jOjEzNjgKKyAjMzAgMHgwMDAwMDAw MDAwNDE4NmRkIGluIG1haW4gKGFyZ2M9NSwgYXJndj0weDdmZmZmZmZmZDUwOCkKKyAgICAgYXQg Z2RiL2dkYi5jOjMyCisKK1RoZXJlIGFyZSB0d28gZnJhbWVzIGZvciBicHN0YXRfZG9fYWN0aW9u c18xKCksIG9uZSBhdCBmcmFtZSAjMTYgYW5kCit0aGUgb3RoZXIgYXQgZnJhbWUgIzAuICBUaGUg b25lIGF0IGZyYW1lICMxNiBpcyBwcm9jZXNzaW5nIHRoZSBhY3Rpb25zCitmb3IgQnJlYWtwb2lu dCAyLCB3aGljaCBpcyBhICdjb250aW51ZScuICBUaGUgb25lIGF0IGZyYW1lICMwIGlzIGF0dGVt cHRpbmcKK3RvIHByb2Nlc3MgdGhlIGRwcmludGYgYnJlYWtwb2ludCBhY3Rpb24uICBIb3dldmVy LCBhdCB0aGlzIHBvaW50LAordGhlIHZhbHVlIG9mICdleGVjdXRpbmdfYnJlYWtwb2ludF9jb21t YW5kcycgaXMgMSwgZm9yY2luZyBhbiBlYXJseQorcmV0dXJuLCBpLmUuIHByaW9yIHRvIGV4ZWN1 dGluZyB0aGUgY29tbWFuZChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGRwcmludGYKK2JyZWFrcG9p bnQuCisKK0ZvciB0aGUgc2FrZSBvZiBjb21wYXJpc29uLCB0aGlzIGlzIHdoYXQgdGhlIHN0YWNr IGxvb2tzIGxpa2Ugd2hlbiBoaXR0aW5nCit0aGUgZHByaW50ZiBicmVha3BvaW50IGZvciB0aGUg c2Vjb25kIHRpbWUgd2hlbiBpc3N1aW5nIHRoZSAncnVuJworY29tbWFuZCBmcm9tIHRoZSBHREIg cHJvbXB0LgorCitUaHJlYWQgMSAiZ2RiIiBoaXQgQnJlYWtwb2ludCAzLCBicHN0YXRfZG9fYWN0 aW9uc18xIChic3A9MHg3ZmZmZmZmZmNjZDgpCisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJl LWdpdC9mMzQtbWFzdGVyL2JsZC8uLi8uLi93b3JrdHJlZS1tYXN0ZXIvZ2RiL2JyZWFrcG9pbnQu Yzo0NDMxCis0NDMxCSAgaWYgKGV4ZWN1dGluZ19icmVha3BvaW50X2NvbW1hbmRzKQorCisgIzAg IGJwc3RhdF9kb19hY3Rpb25zXzEgKGJzcD0weDdmZmZmZmZmY2NkOCkKKyAgICAgYXQgZ2RiL2Jy ZWFrcG9pbnQuYzo0NDMxCisgIzEgIDB4MDAwMDAwMDAwMDRkOGJjNiBpbiBkcHJpbnRmX2FmdGVy X2NvbmRpdGlvbl90cnVlIChicz0weDE2YjAyOTApCisgICAgIGF0IGdkYi9icmVha3BvaW50LmM6 MTMwNDgKKyAjMiAgMHgwMDAwMDAwMDAwNGM1Y2FhIGluIGJwc3RhdF9zdG9wX3N0YXR1cyAoYXNw YWNlPTB4MTE2ZGJjMCwgYnBfYWRkcj0weDQwMTE2ZSwgdGhyZWFkPTB4MTNmMGU2MCwgd3M9MHg3 ZmZmZmZmZmQxMzgsCisgICAgIHN0b3BfY2hhaW49MHgxNmIwMjkwKSBhdCBnZGIvYnJlYWtwb2lu dC5jOjU0OTgKKyAjMyAgMHgwMDAwMDAwMDAwNzY4ZDk4IGluIGhhbmRsZV9zaWduYWxfc3RvcCAo ZWNzPTB4N2ZmZmZmZmZkMTEwKQorICAgICBhdCBnZGIvaW5mcnVuLmM6NjE3MgorICM0ICAweDAw MDAwMDAwMDA3Njc4ZDMgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50IChlY3M9MHg3ZmZmZmZmZmQx MTApCisgICAgIGF0IGdkYi9pbmZydW4uYzo1NjYyCisgIzUgIDB4MDAwMDAwMDAwMDc2M2NkNSBp biBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKQorICAgICBhdCBnZGIvaW5mcnVuLmM6NDA2MAorICM2 ICAweDAwMDAwMDAwMDA3NDZkN2QgaW4gaW5mZXJpb3JfZXZlbnRfaGFuZGxlciAoZXZlbnRfdHlw ZT1JTkZfUkVHX0VWRU5UKQorICAgICBhdCBnZGIvaW5mLWxvb3AuYzo0MQorICM3ICAweDAwMDAw MDAwMDA3YTcwMmYgaW4gaGFuZGxlX3RhcmdldF9ldmVudCAoZXJyb3I9MCwgY2xpZW50X2RhdGE9 MHgwKQorICAgICBhdCBnZGIvbGludXgtbmF0LmM6NDIwNworICM4ICAweDAwMDAwMDAwMDBiOGNk NmUgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IChibG9jaz1ibG9ja0BlbnRyeT0wKQorICAgICBhdCBn ZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6NzAxCisgIzkgIDB4MDAwMDAwMDAwMGI4ZDAzMiBpbiBn ZGJfd2FpdF9mb3JfZXZlbnQgKGJsb2NrPTApCisgICAgIGF0IGdkYnN1cHBvcnQvZXZlbnQtbG9v cC5jYzo1OTcKKyAjMTAgZ2RiX2RvX29uZV9ldmVudCAoKSBhdCBnZGJzdXBwb3J0L2V2ZW50LWxv b3AuY2M6MjEyCisgIzExIDB4MDAwMDAwMDAwMDdjZjUxMiBpbiBzdGFydF9ldmVudF9sb29wICgp CisgICAgIGF0IGdkYi9tYWluLmM6NDIxCisgIzEyIDB4MDAwMDAwMDAwMDdjZjYzMSBpbiBjYXB0 dXJlZF9jb21tYW5kX2xvb3AgKCkKKyAgICAgYXQgZ2RiL21haW4uYzo0ODEKKyAjMTMgMHgwMDAw MDAwMDAwN2QwZWJmIGluIGNhcHR1cmVkX21haW4gKGRhdGE9MHg3ZmZmZmZmZmQzZjApCisgICAg IGF0IGdkYi9tYWluLmM6MTM1MworICMxNCAweDAwMDAwMDAwMDA3ZDBmMjUgaW4gZ2RiX21haW4g KGFyZ3M9MHg3ZmZmZmZmZmQzZjApCisgICAgIGF0IGdkYi9tYWluLmM6MTM2OAorICMxNSAweDAw MDAwMDAwMDA0MTg2ZGQgaW4gbWFpbiAoYXJnYz01LCBhcmd2PTB4N2ZmZmZmZmZkNTA4KQorICAg ICBhdCBnZGIvZ2RiLmM6MzIKKworVGhpcyByZWxhdGl2ZWx5IHNob3J0IGJhY2t0cmFjZSBpcyBk dWUgdG8gdGhlIGN1cnJlbnQgVUkncyBhc3luYyBmaWVsZAorYmVpbmcgc2V0IHRvIDEuCisKK1ll dCBhbm90aGVyIHRoaW5nIHRvIGJlIGF3YXJlIG9mIHJlZ2FyZGluZyB0aGlzIHByb2JsZW0gaXMg dGhlCitkaWZmZXJlbmNlIGluIHRoZSB3YXkgdGhhdCBjb21tYW5kcyBhc3NvY2lhdGVkIHRvIGRw cmludGYgYnJlYWtwb2ludHMKK3ZlcnN1cyByZWd1bGFyIGJyZWFrcG9pbnRzIGFyZSBoYW5kbGVk LiAgV2hpbGUgdGhleSBib3RoIHVzZSBhIGNvbW1hbmQKK2xpc3QgYXNzb2NpYXRlZCB3aXRoIHRo ZSBicmVha3BvaW50LCByZWd1bGFyIGJyZWFrcG9pbnRzIHdpbGwgcGxhY2UKK3RoZSBjb21tYW5k cyB0byBiZSBydW4gb24gdGhlIGJwc3RhdCBjaGFpbiBjb25zdHJ1Y3RlZCBpbgorYnBfc3RvcF9z dGF0dXMoKS4gIFRoZXNlIGNvbW1hbmRzIGFyZSBydW4gbGF0ZXIgb24uICBGb3IgZHByaW50Zgor YnJlYWtwb2ludHMsIGNvbW1hbmRzIGFyZSBydW4gdmlhIHRoZSAnYWZ0ZXJfY29uZGl0aW9uX3Ry dWUnIGZ1bmN0aW9uCitwb2ludGVyIGRpcmVjdGx5IGZyb20gYnBzdGF0X3N0b3Bfc3RhdHVzKCku ICAoVGhlICdjb21tYW5kcycgZmllbGQgaW4KK3RoZSBicHN0YXQgaXMgY2xlYXJlZCBpbiBkcHJp bnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlKCkuICBUaGlzCitwcmV2ZW50cyB0aGUgZHByaW50ZiBj b21tYW5kcyBmcm9tIGJlaW5nIHJ1biBhZ2FpbiBsYXRlciBvbiB3aGVuIG90aGVyCitjb21tYW5k cyBvbiB0aGUgYnBzdGF0IGNoYWluIGFyZSBwcm9jZXNzZWQuKQorCitBbm90aGVyIHRoaW5nIHRo YXQgSSBub3RpY2VkIGlzIHRoYXQgZHByaW50ZiBicmVha3BvaW50cyBhcmUgdGhlIG9ubHkKK3R5 cGUgb2YgYnJlYWtwb2ludCB3aGljaCB1c2UgJ2FmdGVyX2NvbmRpdGlvbl90cnVlJy4gIFRoaXMg c3VnZ2VzdHMKK3RoYXQgb25lIHBvc3NpYmxlIHdheSBvZiBmaXhpbmcgdGhpcyBwcm9ibGVtLCB0 aGF0IG9mIG1ha2luZyBkcHJpbnRmCiticmVha3BvaW50cyB3b3JrIG1vcmUgbGlrZSByZWd1bGFy IGJyZWFrcG9pbnRzLCBwcm9iYWJseSB3b24ndCB3b3JrLgorKEkgbXVzdCBhZG1pdCwgaG93ZXZl ciwgdGhhdCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgY29kZSBpc24ndAorY29tcGxldGUgZW5v dWdoIHRvIHNheSB3aHkuICBJJ2xsIHRydXN0IHRoYXQgd2hvZXZlciBpbXBsZW1lbnRlZCBpdAor aGFkIGEgZ29vZCByZWFzb24gZm9yIGRvaW5nIGl0IHRoaXMgd2F5LikKKworVGhlIGNvbW1lbnQg cmVmZXJlbmNlZCBlYXJsaWVyIHJlZ2FyZGluZyAnZXhlY3V0aW5nX2JyZWFrcG9pbnRfY29tbWFu ZHMnCitzdGF0ZXMgdGhhdCB0aGUgcmVhc29uIGZvciBjaGVja2luZyB0aGlzIHZhcmlhYmxlIGlz IHRvIGF2b2lkCitwb3RlbnRpYWwgZW5kbGVzcyByZWN1cnNpb24gd2hlbiBhICdzb3VyY2UnIGNv bW1hbmQgYXBwZWFycyBpbgorYnMtPmNvbW1hbmRzLiAgV2Uga25vdyB0aGF0IGEgZHByaW50ZiBj b21tYW5kIGlzIGNvbnN0cmFpbmVkIHRvIGVpdGhlcgorMSkgZXhlY3V0aW9uIG9mIGEgR0RCIHBy aW50ZiBjb21tYW5kLCAyKSBhbiBpbmZlcmlvciBmdW5jdGlvbiBjYWxsIG9mCithIHByaW50Zi1s aWtlIGZ1bmN0aW9uLCBvciAzKSBleGVjdXRpb24gb2YgYW4gYWdlbnQtcHJpbnRmIGNvbW1hbmQu CitUaGVyZWZvcmUsIGluZmluaXRlIHJlY3Vyc2lvbiBkdWUgdG8gYSAnc291cmNlJyBjb21tYW5k IGNhbm5vdCBoYXBwZW4KK3doZW4gZXhlY3V0aW5nIGNvbW1hbmRzIHVwb24gaGl0dGluZyBhIGRw cmludGYgYnJlYWtwb2ludC4KKworSSBjaG9zZSB0byBmaXggdGhpcyBwcm9ibGVtIGJ5IGhhdmlu ZyBkcHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlKCkKK2RpcmVjdGx5IGNhbGwgZXhlY3V0ZV9j b250cm9sX2NvbW1hbmRzKCkuICBUaGlzIG1lYW5zIHRoYXQgaXQgbm8KK2xvbmdlciBhdHRlbXB0 cyB0byBnbyB0aHJvdWdoIGJwc3RhdF9kb19hY3Rpb25zXzEoKSBhdm9pZGluZyB0aGUKK2luZmlu aXRlIHJlY3Vyc2lvbiBjaGVjayBmb3IgcG90ZW50aWFsICdzb3VyY2UnIGNvbW1hbmRzIG9uIHRo ZQorY29tbWFuZCBjaGFpbi4gIEkgdGhpbmsgaXQgc2ltcGxpZmllcyB0aGlzIGNvZGUgYSBsaXR0 bGUgYml0IHRvbywgYQorZGVmaW5pdGUgYm9udXMuCisKK1N1bW1hcnk6CisKKwkqIGJyZWFrcG9p bnQuYyAoZHByaW50Zl9hZnRlcl9jb25kaXRpb25fdHJ1ZSk6IERvbid0IGNhbGwKKwlicHN0YXRf ZG9fYWN0aW9uc18xKCkuICBDYWxsIGV4ZWN1dGVfY29udHJvbF9jb21tYW5kcygpCisJaW5zdGVh ZC4KKworZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCist LS0gYS9nZGIvYnJlYWtwb2ludC5jCisrKysgYi9nZGIvYnJlYWtwb2ludC5jCitAQCAtMTMwNDMs OSArMTMwNDMsNiBAQCBkcHJpbnRmX3ByaW50X3JlY3JlYXRlIChzdHJ1Y3QgYnJlYWtwb2ludCAq dHAsIHN0cnVjdCB1aV9maWxlICpmcCkKKyBzdGF0aWMgdm9pZAorIGRwcmludGZfYWZ0ZXJfY29u ZGl0aW9uX3RydWUgKHN0cnVjdCBicHN0YXRzICpicykKKyB7CistICBzdHJ1Y3QgYnBzdGF0cyB0 bXBfYnM7CistICBzdHJ1Y3QgYnBzdGF0cyAqdG1wX2JzX3AgPSAmdG1wX2JzOworLQorICAgLyog ZHByaW50ZidzIG5ldmVyIGNhdXNlIGEgc3RvcC4gIFRoaXMgd2Fzbid0IHNldCBpbiB0aGUKKyAg ICAgIGNoZWNrX3N0YXR1cyBob29rIGluc3RlYWQgYmVjYXVzZSB0aGF0IHdvdWxkIG1ha2UgdGhl IGRwcmludGYncworICAgICAgY29uZGl0aW9uIG5vdCBiZSBldmFsdWF0ZWQuICAqLworQEAgLTEz MDU2LDE0ICsxMzA1Myw5IEBAIGRwcmludGZfYWZ0ZXJfY29uZGl0aW9uX3RydWUgKHN0cnVjdCBi cHN0YXRzICpicykKKyAgICAgIGJwc3RhdF9kb19hY3Rpb25zLCBpZiBhIGJyZWFrcG9pbnQgdGhh dCBjYXVzZXMgYSBzdG9wIGhhcHBlbnMgdG8KKyAgICAgIGJlIHNldCBhdCBzYW1lIGFkZHJlc3Mg YXMgdGhpcyBkcHJpbnRmLCBvciBldmVuIGlmIHJ1bm5pbmcgdGhlCisgICAgICBjb21tYW5kcyBo ZXJlIHRocm93cy4gICovCistICB0bXBfYnMuY29tbWFuZHMgPSBicy0+Y29tbWFuZHM7CistICBi cy0+Y29tbWFuZHMgPSBOVUxMOworLQorLSAgYnBzdGF0X2RvX2FjdGlvbnNfMSAoJnRtcF9ic19w KTsKKy0KKy0gIC8qICd0bXBfYnMuY29tbWFuZHMnIHdpbGwgdXN1YWxseSBiZSBOVUxMIGJ5IG5v dywgYnV0CistICAgICBicHN0YXRfZG9fYWN0aW9uc18xIG1heSByZXR1cm4gZWFybHkgd2l0aG91 dCBwcm9jZXNzaW5nIHRoZSB3aG9sZQorLSAgICAgbGlzdC4gICovCisrICBjb3VudGVkX2NvbW1h bmRfbGluZSBjbWRzID0gc3RkOjptb3ZlIChicy0+Y29tbWFuZHMpOworKyAgZ2RiX2Fzc2VydCAo Y21kcyAhPSBudWxscHRyKTsKKysgIGV4ZWN1dGVfY29udHJvbF9jb21tYW5kcyAoY21kcy5nZXQg KCksIDApOworIH0KKyAKKyAvKiBUaGUgYnJlYWtwb2ludF9vcHMgc3RydWN0dXJlIHRvIGJlIHVz ZWQgb24gc3RhdGljIHRyYWNlcG9pbnRzIHdpdGgKCmRpZmYgLS1naXQgYS9nZGItcmhiejIwMjIx NzctZHByaW50Zi0yLnBhdGNoIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGJjZDg3Ci0tLSAvZGV2L251bGwKKysr IGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaApAQCAtMCwwICsxLDE5NCBAQAorRnJv bSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtldmluIEJ1 ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMTAgTm92IDIwMjEgMTg6NTU6 NDMgLTA3MDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyMjE3Ny1kcHJpbnRmLTIucGF0Y2gKKworOzsg QmFja3BvcnQgdGVzdCBjYXNlIGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3NykuCisKK1Rl c3QgY2FzZSBmb3IgQnVnIDI4MzA4CisKK1RoZSBwdXJwb3NlIG9mIHRoaXMgdGVzdCBpcyBkZXNj cmliZWQgaW4gdGhlIGNvbW1lbnRzIGluCitkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5leHAu CisKK0J1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9 MjgzMDgKKworVGhlIG5hbWUgb2YgdGhpcyBuZXcgdGVzdCB3YXMgYmFzZWQgb24gdGhhdCBvZiBh biBleGlzdGluZyB0ZXN0LAorYnAtY21kcy1leGVjdXRpb24teC1zY3JpcHQuZXhwLiAgSSBzdGFy dGVkIG9mZiBieSBjb3B5aW5nIHRoYXQgdGVzdCwKK2FkZGluZyB0byBpdCwgYW5kIHRoZW4gcmV3 cml0aW5nIGFsbW9zdCBhbGwgb2YgaXQuICBJdCdzIGRpZmZlcmVudAorZW5vdWdoIHRoYXQgSSBk ZWNpZGVkIHRoYXQgbGlzdGluZyB0aGUgY29weXJpZ2h0IHllYXIgYXMgMjAyMQord2FzIHN1ZmZp Y2llbnQuCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhl Y3V0aW9uLXgtc2NyaXB0LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0 aW9uLXgtc2NyaXB0LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMKK0BA IC0wLDAgKzEsNTMgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrdm9sYXRpbGUg aW50IHZpID0gMDsKKysKKyt2b2lkCisraW5jX3ZpICgpCisreworKyAgdmkrKzsKKyt9CisrCisr dm9pZAorK3ByaW50X3ZpICgpCisreworKyAgcHJpbnRmICgidmk9JWRcbiIsIHZpKTsKKyt9Cisr Cisrdm9pZAorK2luY3JlbWVudCAoKQorK3sKKysgIGluY192aSAoKTsKKyt9CisrCisraW50Cisr bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorK3sKKysgIHByaW50X3ZpICgpOworKyAgaW5j cmVtZW50ICgpOworKyAgcHJpbnRfdmkgKCk7CisrICBpbmNyZW1lbnQgKCk7CisrICBwcmludF92 aSAoKTsKKysgIGluY3JlbWVudCAoKTsKKysgIHByaW50X3ZpICgpOworKworKyAgZXhpdCAoMCk7 CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZHByaW50Zi1leGVjdXRp b24teC1zY3JpcHQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLWV4ZWN1dGlv bi14LXNjcmlwdC5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmV4cAor QEAgLTAsMCArMSw4NSBAQAorKyMgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjIFRl c3QgdGhhdCBjb21tYW5kcyBpbiBhIEdEQiBzY3JpcHQgZmlsZSBydW4gdmlhIEdEQidzIC14IGZs YWcgd29yaworKyMgYXMgZXhwZWN0ZWQuICBTcGVjaWZpY2FsbHksIHRoZSBzY3JpcHQgY3JlYXRl cyBhIGRwcmludGYgYnJlYWtwb2ludAorKyMgYXMgd2VsbCBhcyBhIG5vcm1hbCBicmVha3BvaW50 IHRoYXQgaGFzICJjb250aW51ZSIgaW4gaXRzIGNvbW1hbmQKKysjIGxpc3QsIGFuZCB0aGVuIGRv ZXMgInJ1biIuICBDb3JyZWN0IG91dHB1dCBmcm9tIEdEQiBpcyBjaGVja2VkIGFzCisrIyBwYXJ0 IG9mIHRoaXMgdGVzdC4KKysKKysjIEJhaWwgb3V0IGlmIHRoZSB0YXJnZXQgY2FuJ3QgdXNlIHRo ZSAncnVuJyBjb21tYW5kLgorK2lmICFbdGFyZ2V0X2Nhbl91c2VfcnVuX2NtZF0geworKyAgICBy ZXR1cm4gMAorK30KKysKKytzdGFuZGFyZF90ZXN0ZmlsZQorKworK2lmIHtbYnVpbGRfZXhlY3V0 YWJsZSAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z119IHsKKysg ICAgcmV0dXJuIC0xCisrfQorKworKyMgVGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgR0RCIHNjcmlw dCB0byBsb2FkLgorK3NldCB4X2ZpbGUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8kdGVzdGZpbGUuZ2Ri CisrCisrIyBDcmVhdGUgY29udGV4dCBpbiB3aGljaCB0aGUgZ2xvYmFsLCBHREJGTEFHUywgd2ls bCBiZSByZXN0b3JlZCBhdAorKyMgdGhlIGVuZCBvZiB0aGUgYmxvY2suICBBbGwgY29tbWFuZHMg cnVuIHdpdGhpbiB0aGUgYmxvY2sgYXJlCisrIyBhY3R1YWxseSBydW4gaW4gdGhlIG91dGVyIGNv bnRleHQuICAoVGhpcyBpcyB3aHkgJ3JlcycgaXMgYXZhaWxhYmxlCisrIyBvdXRzaWRlIG9mIHRo ZSBzYXZlX3ZhcnMgYmxvY2suKQorK3NhdmVfdmFycyB7IEdEQkZMQUdTIH0geworKyAgICAjIFNl dCBmbGFncyB3aXRoIHdoaWNoIHRvIHN0YXJ0IEdEQi4KKysgICAgYXBwZW5kIEdEQkZMQUdTICIg LWV4IFwic2V0IGhlaWdodCB1bmxpbWl0ZWRcIiIKKysgICAgYXBwZW5kIEdEQkZMQUdTICIgLXgg XCIkeF9maWxlXCIiCisrICAgIGFwcGVuZCBHREJGTEFHUyAiIC0tYXJncyBcIiRiaW5maWxlXCIi CisrCisrICAgICMgU3RhcnQgR0RCIHdpdGggYWJvdmUgZmxhZ3MuCisrICAgIHNldCByZXMgW2dk Yl9zcGF3bl0KKyt9CisrCisrc2V0IHRlc3QgImxvYWQgYW5kIHJ1biBzY3JpcHQgd2l0aCAteCIK KytpZiB7ICRyZXMgIT0gMH0geworKyAgICBmYWlsICR0ZXN0CisrICAgIHJldHVybiAtMQorK30K KysKKysjIFRoZSBzY3JpcHQgbG9hZGVkIHZpYSAteCBjb250YWlucyBhIHJ1biBjb21tYW5kOyB3 aGlsZSBydW5uaW5nLCBHREIKKysjIGlzIGV4cGVjdGVkIHRvIHByaW50IHRocmVlIG1lc3NhZ2Vz IGZyb20gZHByaW50ZiBicmVha3BvaW50cyBhbG9uZworKyMgd2l0aCB0aHJlZSBpbnRlcnNwZXJz ZWQgbWVzc2FnZXMgZnJvbSBhbiBvcmRpbmFyeSBicmVha3BvaW50ICh3aGljaAorKyMgd2FzIHNl dCB1cCB3aXRoIGEgY29udGludWUgY29tbWFuZCkuICBTZXQgdXAgcGF0dGVybiBEIHRvIG1hdGNo CisrIyBvdXRwdXQgZnJvbSBoaXR0aW5nIHRoZSBkcHJpbnRmIGJyZWFrcG9pbnQgYW5kIEIgZm9y IHRoZSBvcmRpbmFyeQorKyMgYnJlYWtwb2ludC4gIFRoZW4gc2V0IFBBVCB0byBjb250YWluIHRo ZSBlbnRpcmUgcGF0dGVybiBvZiBleHBlY3RlZAorKyMgb3V0cHV0IGZyb20gdGhlIGludGVyc3Bl cnNlZCBkcHJpbnRmIGFuZCBvcmRpbmFyeSBicmVha3BvaW50cyBhbG9uZworKyMgd2l0aCBzb21l IChhZGRpdGlvbmFsKSBleHBlY3RlZCBvdXRwdXQgZnJvbSB0aGUgZHByaW50ZiBicmVha3BvaW50 cywKKysjIGkuZS4gMCwgMSwgYW5kIDIuCisrc2V0IGQgImRwcmludGYgaW4gaW5jcmVtZW50Li4s IHZpPSIKKytzZXQgYiAiQnJlYWtwb2ludCAuLCBpbmNfdmkiCisrc2V0IHBhdCAiJHtkfTAuKj8k Yi4qPyR7ZH0xLio/JGIuKj8ke2R9Mi4qPyRiLio/IgorKworK3Byb2MgZG9fdGVzdCB7Y21kIHRl c3R9IHsKKysgICAgZ2RiX3Rlc3QgJGNtZCAiJDo6cGF0JDo6aW5mZXJpb3JfZXhpdGVkX3JlIG5v cm1hbGx5LioiICR0ZXN0CisrfQorKworKyMgQ2hlY2sgb3V0cHV0IGZyb20gcnVubmluZyBzY3Jp cHQgd2l0aCAteAorK2RvX3Rlc3QgIiIgJHRlc3QKKysKKysjIFJlc3RhcnQgR0RCIGFuZCAnc291 cmNlJyB0aGUgc2NyaXB0OyB0aGlzIHdpbGwgKHN0aWxsKSBydW4gdGhlIHByb2dyYW0KKysjIGR1 ZSB0byB0aGUgJ3J1bicgY29tbWFuZCBpbiB0aGUgc2NyaXB0LgorK2NsZWFuX3Jlc3RhcnQgJGJp bmZpbGUKKytkb190ZXN0ICJzb3VyY2UgJHhfZmlsZSIgImxvYWQgYW5kIHJ1biBzY3JpcHQgdXNp bmcgc291cmNlIGNvbW1hbmQiCisrCisrIyBUaGlzIHNob3VsZCBsZWF2ZSB1cyBhdCB0aGUgZ2Ri IHByb21wdDsgUnVuIHByb2dyYW0gYWdhaW4gdXNpbmcKKysjIGFscmVhZHkgZXN0YWJsaXNoZWQg YnJlYWtwb2ludHMsIGkuZS4gdGhvc2UgbG9hZGVkIGZyb20gdGhlCisrIyBzY3JpcHQuICBQcmlv ciB0byBmaXhpbmcgUFIgMjgzMDgsIHRoaXMgd2FzIHRoZSBvbmx5IHRlc3QgdGhhdAorKyMgd291 bGQgcGFzcy4KKytkb190ZXN0ICJydW4iICJydW4gYWdhaW4iCitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5nZGIgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmdkYgorbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv ZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuZ2RiCitAQCAtMCwwICsxLDIxIEBACisrIyBDb3B5 cmlnaHQgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2RwcmludGYgaW5jcmVtZW50LCAiZHByaW50ZiBp biBpbmNyZW1lbnQoKSwgdmk9JWRcbiIsIHZpCisrYnJlYWsgaW5jX3ZpCisrY29tbWFuZHMKKysg IGNvbnRpbnVlCisrZW5kCisrcnVuCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoyMDI0ODctcmV3b3Jr LXNldC1kZWJ1Z2luZm9kLnBhdGNoIGIvZ2RiLXJoYnoyMDI0ODctcmV3b3JrLXNldC1kZWJ1Z2lu Zm9kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YjliYzQKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItcmhiejIwMjQ4Ny1yZXdvcmstc2V0LWRlYnVnaW5mb2QucGF0 Y2gKQEAgLTAsMCArMSw0NzYgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QWxleGFuZHJhPTIwSD1DMz1BMWprb3Y9QzM9QTE/ PSA8YWhhamtvdmFAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTEgSmFuIDIwMjIgMTI6NDY6MDUg KzAxMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyNDg3LXJld29yay1zZXQtZGVidWdpbmZvZC5wYXRj aAorCis7O0JhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCBmcm9tICBTaW1vbiBNYXJjaGkKKzs7MzMz ZjM1YjYzMTUgZ2RiOiBwYXNzL3JldHVybiBzZXR0aW5nIHNldHRlci9nZXR0ZXIKKzs7c2NhbGFy IHZhbHVlcyBieSB2YWx1ZQorCitnZGI6IHJld29yayAic2V0IGRlYnVnaW5mb2QiIGNvbW1hbmRz CisKK0FzIGRpc2N1c3NlZCBoZXJlIFsxXSwgZG8gc29tZSByZS13b3JrIGluIHRoZSAic2V0IGRl YnVnaW5mb2QgY29tbWFuZHMiLgorCitGaXJzdCwgdXNlICJzZXQgZGVidWdpbmZvZCBlbmFibGVk IG9uL29mZi9hc2siIGluc3RlYWQgb2YgInNldAorZGVidWdpbmZvZCBvbi9vZmYvYXNrIi4gIFRo aXMgaXMgbW9yZSBNSS1mcmllbmRseSwgYW5kIGl0IGdpdmVzIGFuCitvdXRwdXQgdGhhdCBtYWtl cyBtb3JlIHNlbnNlIGluICJpbmZvIHNldCIsIGZvciBleGFtcGxlLgorCitUaGVuLCBtYWtlIHRo ZSBzaG93IGNvbW1hbmRzIG5vdCBjYWxsICJlcnJvciIgd2hlbiBkZWJ1Z2luZm9kIHN1cHBvcnQg aXMKK25vdCBjb21waWxlZCBpbi4gIFRoaXMgbWFrZXMgdGhlIGNvbW1hbmRzICJzaG93IiBhbmQg InNob3cgZGVidWdpbmZvZCIKK3N0b3AgZWFybHksIGJyZWFraW5nIGdkYi5iYXNlL2RlZmF1bHQu ZXhwOgorCisgICAgUnVubmluZyAvaG9tZS9zbWFyY2hpL3NyYy9iaW51dGlscy1nZGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cCAuLi4KKyAgICBGQUlMOiBnZGIuYmFzZS9kZWZh dWx0LmV4cDogaW5mbyBzZXQKKyAgICBGQUlMOiBnZGIuYmFzZS9kZWZhdWx0LmV4cDogc2hvdwor CisgLSBNYWtlIHRoZSAiZGVidWdpbmZvZCBlbmFibGVkIiBzZXR0aW5nIGRlZmF1bHQgdG8gIm9m ZiIgd2hlbiBkZWJ1Z2luZm9kCisgICBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbiwgYW5kICJh c2siIG90aGVyd2lzZS4KKyAtIE1ha2UgdGhlIHNldHRlciBvZiAiZGVidWdpbmZvZCBlbmFibGVk IiBlcnJvciBvdXQgd2hlbiBkZWJ1Z2luZm9kCisgICBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBp biwgc28gdGhhdCAiZGVidWdpbmZvZCBlbmFibGVkIiB3aWxsIGFsd2F5cworICAgcmVtYWluICJv ZmYiIGluIHRoYXQgY2FzZS4KKyAtIE1ha2UgdGhlIHNldHRlciBvZiAiZGVidWdpbmZvZCB2ZXJi b3NlIiB3b3JrIGluIGFueSBjYXNlLiAgSSBkb24ndAorICAgc2VlIHRoZSBoYXJtIGluIGxldHRp bmcgdGhlIHVzZXIgY2hhbmdlIHRoYXQgc2V0dGluZywgc2luY2UgdGhlIHVzZXIgd2lsbAorICAg aGl0IGFuIGVycm9yIGlmIHRoZXkgdHJ5IHRvIGVuYWJsZSB0aGUgdXNlIG9mIGRlYnVnaW5mb2Qu CisgLSBJIHdvdWxkIGRvIHRoZSBzYW1lIGZvciB0aGUgImRlYnVnaW5mb2QgdXJscyIgc2V0dGVy LCBidXQgYmVjYXVzZQorICAgdGhpcyBvbmUgbmVlZHMgdG8gc2VlIHRoZSBERUJVR0lORk9EX1VS TFNfRU5WX1ZBUiBtYWNybywgcHJvdmlkZWQgYnkKKyAgIGxpYmRlYnVnaW5mb2QsIEkgbWFkZSB0 aGF0IG9uZSBlcnJvciBvdXQgYXMgd2VsbCBpZiBkZWJ1Z2luZm9kCisgICBzdXBwb3J0IGlzIG5v dCBjb21waWxlZCBpdCAob3RoZXJ3aXNlLCBJIHdvdWxkIGhhdmUgbGVmdCBpdCBsaWtlCisgICAi ZGVidWdpbmZvZCB2ZXJib3NlIi4gIEFsdGVybmF0aXZlbHksIHdlIGNvdWxkIGhhcmQtY29kZQor ICAgIkRFQlVHSU5GT0RfVVJMUyIgaW4gdGhlIGNvZGUgKGluIGZhY3QsIGl0IHdhcyBwcmlvciB0 byB0aGlzIHBhdGNoLAorICAgYnV0IEkgdGhpbmsgaXQgd2FzIGFuIG92ZXJzaWdodCwgYXMgb3Ro ZXIgc3BvdHMgdXNlCisgICBERUJVR0lORk9EX1VSTFNfRU5WX1ZBUiksIG9yIHVzZSBhIGR1bW15 IHN0cmluZyB0byBzdG9yZSB0aGUgc2V0dGluZywKKyAgIGJ1dCBJIGRvbid0IHJlYWxseSBzZWUg dGhlIHZhbHVlIGluIHRoYXQuCisKK1JlbmFtZSBkZWJ1Z2luZm9kX2VuYWJsZSB0byBkZWJ1Z2lu Zm9kX2VuYWJsZWQsIGp1c3Qgc28gaXQgbWF0Y2hlcyB0aGUKK3NldHRpbmcgbmFtZS4KKworWzFd IGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIwMjEtT2N0b2Jl ci8xODI5MzcuaHRtbAorCitDaGFuZ2UtSWQ6IEk0NWZkYjI5OTNmNjY4MjI2YTU2MzkyMjg5NTEz NjJiNzgwMGYwOWQ1CitDby1BdXRob3JlZC1CeTogQWFyb24gTWVyZXkgPGFtZXJleUByZWRoYXQu Y29tPgorCitkaWZmIC0tZ2l0IGEvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jIGIvZ2RiL2RlYnVn aW5mb2Qtc3VwcG9ydC5jCistLS0gYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKKysrKyBiL2dk Yi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworQEAgLTMyLDggKzMyLDIyIEBAIHN0YXRpYyBjb25zdCBj aGFyIGRlYnVnaW5mb2Rfb25bXSA9ICJvbiI7Cisgc3RhdGljIGNvbnN0IGNoYXIgZGVidWdpbmZv ZF9vZmZbXSA9ICJvZmYiOworIHN0YXRpYyBjb25zdCBjaGFyIGRlYnVnaW5mb2RfYXNrW10gPSAi YXNrIjsKKyAKKy1zdGF0aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2lu Zm9kX2FzazsKKy1zdGF0aWMgdW5zaWduZWQgZGVidWdpbmZvZF92ZXJib3NlID0gMTsKKytzdGF0 aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9lbmFibGVkX2VudW1bXSA9CisreworKyAgZGVidWdp bmZvZF9vbiwKKysgIGRlYnVnaW5mb2Rfb2ZmLAorKyAgZGVidWdpbmZvZF9hc2ssCisrICBudWxs cHRyCisrfTsKKysKKytzdGF0aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9lbmFibGVkID0KKysj aWYgZGVmaW5lZChIQVZFX0xJQkRFQlVHSU5GT0QpCisrICBkZWJ1Z2luZm9kX2FzazsKKysjZWxz ZQorKyAgZGVidWdpbmZvZF9vZmY7CisrI2VuZGlmCisrCisrc3RhdGljIHVuc2lnbmVkIGludCBk ZWJ1Z2luZm9kX3ZlcmJvc2UgPSAxOworIAorIC8qIFRoaXMgaXMgbmV2ZXIgYWN0dWFsbHkgdXNl ZC4gIFVSTHMgYXJlIGFsd2F5cyBwdWxsZWQgZnJvbSB0aGUKKyAgICBlbnZpcm9ubWVudC4gICov CitAQCAtNjAsNjQgKzc0LDYgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAorICNkZWZpbmUgTk9fSU1QTCBfKCJTdXBwb3J0IGZv ciBkZWJ1Z2luZm9kIGlzIG5vdCBjb21waWxlZCBpbnRvIEdEQi4iKQorIAorLS8qIFN0dWIgc2V0 L3Nob3cgY29tbWFuZHMgdGhhdCBpbmRpY2F0ZSBkZWJ1Z2luZm9kIGlzIG5vdCBzdXBwb3J0ZWQu ICAqLworLQorLXN0YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2Rfb25fY29tbWFuZCAoY29uc3Qg Y2hhciAqYXJncywgaW50IGZyb21fdHR5KQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsKKy0gIGRl YnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CistfQorLQorLXN0YXRpYyB2b2lkCist c2V0X2RlYnVnaW5mb2Rfb2ZmX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eSkKKy17CistICBlcnJvciAoTk9fSU1QTCk7CistICBkZWJ1Z2luZm9kX2VuYWJsZSA9IGRlYnVn aW5mb2Rfb2ZmOworLX0KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX2Fza19jb21t YW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisteworLSAgZXJyb3IgKE5PX0lN UEwpOworLSAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX29mZjsKKy19CistCistc3Rh dGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2Rfc3RhdHVzX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFy Z3MsIGludCBmcm9tX3R0eSkKKy17CistICBlcnJvciAoTk9fSU1QTCk7CistfQorLQorLXN0YXRp YyB2b2lkCistc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChjb25zdCBjaGFyICppZ25vcmUs IGludCBmcm9tX3R0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRf bGlzdF9lbGVtZW50ICpjKQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsKKy19CistCistc3RhdGlj IHZvaWQKKy1zaG93X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChzdHJ1Y3QgdWlfZmlsZSAqZmls ZSwgaW50IGZyb21fdHR5LAorLQkJCSAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQs IGNvbnN0IGNoYXIgKnZhbHVlKQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsKKy19CistCistc3Rh dGljIHZvaWQKKy1zZXRfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFy Z3MsIGludCBmcm9tX3R0eSwKKy0JCQkJc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmMpCistewor LSAgZXJyb3IgKE5PX0lNUEwpOworLSAgZGVidWdpbmZvZF92ZXJib3NlID0gMDsKKy19CistCist c3RhdGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kIChzdHJ1Y3QgdWlf ZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorLQkJCQkgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KmNtZCwKKy0JCQkJIGNvbnN0IGNoYXIgKnZhbHVlKQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsK Ky19CisgI2Vsc2UKKyAjaW5jbHVkZSA8ZWxmdXRpbHMvZGVidWdpbmZvZC5oPgorIAorQEAgLTE0 NSw4MiArMTAxLDYgQEAgc3RydWN0IGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0ZXIKKyB1c2luZyBk ZWJ1Z2luZm9kX2NsaWVudF91cAorICAgPSBzdGQ6OnVuaXF1ZV9wdHI8ZGVidWdpbmZvZF9jbGll bnQsIGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0ZXI+OworIAorLS8qIEVuYWJsZSBkZWJ1Z2luZm9k LiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX29uX2NvbW1hbmQgKGNvbnN0 IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKy17CistICBkZWJ1Z2luZm9kX2VuYWJsZSA9IGRl YnVnaW5mb2Rfb247CistfQorLQorLS8qIERpc2FibGUgZGVidWdpbmZvZC4gICovCistCistc3Rh dGljIHZvaWQKKy1zZXRfZGVidWdpbmZvZF9vZmZfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywg aW50IGZyb21fdHR5KQorLXsKKy0gIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7 CistfQorLQorLS8qIEJlZm9yZSBuZXh0IHF1ZXJ5LCBhc2sgdXNlciB3aGV0aGVyIHRvIGVuYWJs ZSBkZWJ1Z2luZm9kLiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX2Fza19j b21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisteworLSAgZGVidWdpbmZv ZF9lbmFibGUgPSBkZWJ1Z2luZm9kX2FzazsKKy19CistCistLyogU2hvdyB3aGV0aGVyIGRlYnVn aW5mb2QgaXMgZW5hYmxlZC4gICovCistCistc3RhdGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2Rf c3RhdHVzX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKy17CistICBw cmludGZfdW5maWx0ZXJlZCAoXygiRGVidWdpbmZvZCBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRs eSBzZXQgdG8gIiBcCistCQkgICAgICJcIiVzXCIuXG4iKSwgZGVidWdpbmZvZF9lbmFibGUpOwor LX0KKy0KKy0vKiBTZXQgdGhlIFVSTHMgdGhhdCBkZWJ1Z2luZm9kIHdpbGwgcXVlcnkuICAqLwor LQorLXN0YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChjb25zdCBjaGFy ICppZ25vcmUsIGludCBmcm9tX3R0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorLXsKKy0gIGdkYl9hc3NlcnQgKGRlYnVnaW5mb2Rf dXJscyAhPSBudWxscHRyKTsKKy0gIGlmIChzZXRlbnYgKCJERUJVR0lORk9EX1VSTFMiLCBkZWJ1 Z2luZm9kX3VybHMsIDEpICE9IDApCistICAgIHdhcm5pbmcgKF8oIlVuYWJsZSB0byBzZXQgZGVi dWdpbmZvZCBVUkxzOiAlcyIpLCBzYWZlX3N0cmVycm9yIChlcnJubykpOworLX0KKy0KKy0vKiBT aG93IHRoZSBVUkxzIHRoYXQgZGVidWdpbmZvZCB3aWxsIHF1ZXJ5LiAgKi8KKy0KKy1zdGF0aWMg dm9pZAorLXNob3dfZGVidWdpbmZvZF91cmxzX2NvbW1hbmQgKHN0cnVjdCB1aV9maWxlICpmaWxl LCBpbnQgZnJvbV90dHksCistCQkJICAgICAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCwg Y29uc3QgY2hhciAqdmFsdWUpCisteworLSAgaWYgKHZhbHVlID09IG51bGxwdHIgfHwgdmFsdWVb MF0gPT0gJ1wwJykKKy0gICAgZnByaW50Zl91bmZpbHRlcmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9k IFVSTHMgaGF2ZSBub3QgYmVlbiBzZXQuXG4iKSk7CistICBlbHNlCistICAgIGZwcmludGZfZmls dGVyZWQgKGZpbGUsIF8oIkRlYnVnaW5mb2QgVVJMcyBhcmUgY3VycmVudGx5IHNldCB0bzpcbiVz XG4iKSwKKy0JCSAgICAgIHZhbHVlKTsKKy19CistCistLyogTm8tb3Agc2V0dGVyIHVzZWQgZm9y IGNvbXBhdGliaWxpdHkgd2hlbiBnZGIgaXMgYnVpbHQgd2l0aG91dCBkZWJ1Z2luZm9kLiAgKi8K Ky0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX3ZlcmJvc2VfY29tbWFuZCAoY29uc3Qg Y2hhciAqYXJncywgaW50IGZyb21fdHR5LAorLQkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq YykKKy17CistICByZXR1cm47CistfQorLQorLS8qIFNob3cgdmVyYm9zaXR5LiAgKi8KKy0KKy1z dGF0aWMgdm9pZAorLXNob3dfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKHN0cnVjdCB1aV9m aWxlICpmaWxlLCBpbnQgZnJvbV90dHksCistCQkJCSBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq Y21kLCBjb25zdCBjaGFyICp2YWx1ZSkKKy17CistICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBf KCJEZWJ1Z2luZm9kIHZlcmJvc2Ugb3V0cHV0IGlzIHNldCB0byAlcy5cbiIpLAorLQkJICAgIHZh bHVlKTsKKy19CistCisgc3RhdGljIGludAorIHByb2dyZXNzZm4gKGRlYnVnaW5mb2RfY2xpZW50 ICpjLCBsb25nIGN1ciwgbG9uZyB0b3RhbCkKKyB7CitAQCAtMjc3LDE1ICsxNTcsMTUgQEAgZ2V0 X2RlYnVnaW5mb2RfY2xpZW50ICgpCisgICAgd2hldGhlciB0byBlbmFibGUgZGVidWdpbmZvZC4g ICovCisgCisgc3RhdGljIGJvb2wKKy1kZWJ1Z2luZm9kX2VuYWJsZWQgKCkKKytkZWJ1Z2luZm9k X2lzX2VuYWJsZWQgKCkKKyB7CisgICBjb25zdCBjaGFyICp1cmxzID0gZ2V0ZW52IChERUJVR0lO Rk9EX1VSTFNfRU5WX1ZBUik7CisgCisgICBpZiAodXJscyA9PSBudWxscHRyIHx8IHVybHNbMF0g PT0gJ1wwJworLSAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlID09IGRlYnVnaW5mb2Rfb2ZmKQor KyAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlZCA9PSBkZWJ1Z2luZm9kX29mZikKKyAgICAgcmV0 dXJuIGZhbHNlOworIAorLSAgaWYgKGRlYnVnaW5mb2RfZW5hYmxlID09IGRlYnVnaW5mb2RfYXNr KQorKyAgaWYgKGRlYnVnaW5mb2RfZW5hYmxlZCA9PSBkZWJ1Z2luZm9kX2FzaykKKyAgICAgewor ICAgICAgIGludCByZXNwID0gbnF1ZXJ5IChfKCJcblRoaXMgR0RCIHN1cHBvcnRzIGF1dG8tZG93 bmxvYWRpbmcgZGVidWdpbmZvICIgXAorIAkJCSAgICJmcm9tIHRoZSBmb2xsb3dpbmcgVVJMczpc biVzXG5FbmFibGUgZGVidWdpbmZvZCAiIFwKK0BAIC0yOTQsMTYgKzE3NCwxNiBAQCBkZWJ1Z2lu Zm9kX2VuYWJsZWQgKCkKKyAgICAgICBpZiAoIXJlc3ApCisgCXsKKyAJICBwcmludGZfZmlsdGVy ZWQgKF8oIkRlYnVnaW5mb2QgaGFzIGJlZW4gZGlzYWJsZWQuXG5UbyBtYWtlIHRoaXMgIiBcCist CQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQsIGFkZCBcJ3NldCBkZWJ1Z2luZm9kIG9mZlwnICIg XAorLQkJCSAgICAgInRvIC5nZGJpbml0LlxuIikpOworLQkgIGRlYnVnaW5mb2RfZW5hYmxlID0g ZGVidWdpbmZvZF9vZmY7CisrCQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQsIGFkZCBcJ3NldCBk ZWJ1Z2luZm9kICIgXAorKwkJCSAgICAgImVuYWJsZWQgb2ZmXCcgdG8gLmdkYmluaXQuXG4iKSk7 CisrCSAgZGVidWdpbmZvZF9lbmFibGVkID0gZGVidWdpbmZvZF9vZmY7CisgCSAgcmV0dXJuIGZh bHNlOworIAl9CisgCisgICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJEZWJ1Z2luZm9kIGhhcyBi ZWVuIGVuYWJsZWQuXG5UbyBtYWtlIHRoaXMgIiBcCistCQkJICJzZXR0aW5nIHBlcm1hbmVudCwg YWRkIFwnc2V0IGRlYnVnaW5mb2Qgb25cJyAiIFwKKy0JCQkgInRvIC5nZGJpbml0LlxuIikpOwor LSAgICAgIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vbjsKKysJCQkgInNldHRpbmcg cGVybWFuZW50LCBhZGQgXCdzZXQgZGVidWdpbmZvZCBlbmFibGVkICIgXAorKwkJCSAib25cJyB0 byAuZ2RiaW5pdC5cbiIpKTsKKysgICAgICBkZWJ1Z2luZm9kX2VuYWJsZWQgPSBkZWJ1Z2luZm9k X29uOworICAgICB9CisgCisgICByZXR1cm4gdHJ1ZTsKK0BAIC0zMTcsNyArMTk3LDcgQEAgZGVi dWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJ CSBjb25zdCBjaGFyICpzcmNwYXRoLAorIAkJCSBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFy PiAqZGVzdG5hbWUpCisgeworLSAgaWYgKCFkZWJ1Z2luZm9kX2VuYWJsZWQgKCkpCisrICBpZiAo IWRlYnVnaW5mb2RfaXNfZW5hYmxlZCAoKSkKKyAgICAgcmV0dXJuIHNjb3BlZF9mZCAoLUVOT1NZ Uyk7CisgCisgICBkZWJ1Z2luZm9kX2NsaWVudCAqYyA9IGdldF9kZWJ1Z2luZm9kX2NsaWVudCAo KTsKK0BAIC0zNTQsNyArMjM0LDcgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwK KyAJCQkgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmRlc3RuYW1lKQorIHsKKy0g IGlmICghZGVidWdpbmZvZF9lbmFibGVkICgpKQorKyAgaWYgKCFkZWJ1Z2luZm9kX2lzX2VuYWJs ZWQgKCkpCisgICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOworIAorICAgZGVidWdpbmZv ZF9jbGllbnQgKmMgPSBnZXRfZGVidWdpbmZvZF9jbGllbnQgKCk7CitAQCAtMzgyLDYgKzI2Miw2 NyBAQCBkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoY29uc3QgdW5zaWduZWQgY2hhciAqYnVp bGRfaWQsCisgfQorICNlbmRpZgorIAorKy8qIFNldCBjYWxsYmFjayBmb3IgInNldCBkZWJ1Z2lu Zm9kIGVuYWJsZWQiLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2luZm9kX2VuYWJs ZWQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKysgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykKKyt7CisrI2lmIGRlZmluZWQoSEFWRV9M SUJERUJVR0lORk9EKQorKyAgLyogVmFsdWUgaXMgYWxyZWFkeSBzZXQuICAqLworKyNlbHNlCisr ICBlcnJvciAoTk9fSU1QTCk7CisrI2VuZGlmCisrfQorKworKy8qIFNob3cgY2FsbGJhY2sgZm9y ICJzZXQgZGVidWdpbmZvZCBlbmFibGVkIi4gICovCisrCisrc3RhdGljIHZvaWQKKytzaG93X2Rl YnVnaW5mb2RfZW5hYmxlZCAodWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LCBjbWRfbGlzdF9l bGVtZW50ICpjbWQsCisrCQkJIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sKKysgIHByaW50Zl91bmZp bHRlcmVkIChfKCJEZWJ1Z2luZm9kIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVudGx5IHNldCB0byAi CisrCQkgICAgICAgIlwiJXNcIi5cbiIpLCBkZWJ1Z2luZm9kX2VuYWJsZWQpOworK30KKysKKysv KiBTZXQgY2FsbGJhY2sgZm9yICJzZXQgZGVidWdpbmZvZCB1cmxzIi4gICovCisrCisrc3RhdGlj IHZvaWQKKytzZXRfZGVidWdpbmZvZF91cmxzIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90 dHksCisrICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmMpCisr eworKyNpZiBkZWZpbmVkKEhBVkVfTElCREVCVUdJTkZPRCkKKysgIGdkYl9hc3NlcnQgKGRlYnVn aW5mb2RfdXJscyAhPSBudWxscHRyKTsKKysgIGlmIChzZXRlbnYgKERFQlVHSU5GT0RfVVJMU19F TlZfVkFSLCBkZWJ1Z2luZm9kX3VybHMsIDEpICE9IDApCisrICAgIHdhcm5pbmcgKF8oIlVuYWJs ZSB0byBzZXQgZGVidWdpbmZvZCBVUkxzOiAlcyIpLCBzYWZlX3N0cmVycm9yIChlcnJubykpOwor KyNlbHNlCisrICBlcnJvciAoTk9fSU1QTCk7CisrI2VuZGlmCisrfQorKworKy8qIFNob3cgY2Fs bGJhY2sgZm9yICJzZXQgZGVidWdpbmZvZCB1cmxzIi4gICovCisrCisrc3RhdGljIHZvaWQKKytz aG93X2RlYnVnaW5mb2RfdXJscyAodWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LCBjbWRfbGlz dF9lbGVtZW50ICpjbWQsCisrCQkgICAgICBjb25zdCBjaGFyICp2YWx1ZSkKKyt7CisrICBpZiAo dmFsdWVbMF0gPT0gJ1wwJykKKysgICAgZnByaW50Zl91bmZpbHRlcmVkIChmaWxlLCBfKCJEZWJ1 Z2luZm9kIFVSTHMgaGF2ZSBub3QgYmVlbiBzZXQuXG4iKSk7CisrICBlbHNlCisrICAgIGZwcmlu dGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRlYnVnaW5mb2QgVVJMcyBhcmUgY3VycmVudGx5IHNldCB0 bzpcbiVzXG4iKSwKKysJCSAgICAgIHZhbHVlKTsKKyt9CisrCisrLyogU2hvdyBjYWxsYmFjayBm b3IgInNldCBkZWJ1Z2luZm9kIHZlcmJvc2UiLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Nob3df ZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwK KysJCQkJIGNtZF9saXN0X2VsZW1lbnQgKmNtZCwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAg ZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygiRGVidWdpbmZvZCB2ZXJib3NlIG91dHB1dCBpcyBz ZXQgdG8gJXMuXG4iKSwKKysJCSAgICB2YWx1ZSk7CisrfQorKworIC8qIFJlZ2lzdGVyIGRlYnVn aW5mb2QgY29tbWFuZHMuICAqLworIAorIHZvaWQgX2luaXRpYWxpemVfZGVidWdpbmZvZCAoKTsK K0BAIC0zOTcsMjMgKzMzOCwxNyBAQCBfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9kICgpCisgICAgICAg ICAgICAgICAgICAgICAgICBfKCJTaG93IGRlYnVnaW5mb2Qgb3B0aW9uLiIpLAorICAgICAgICAg ICAgICAgICAgICAgICAgJnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCwgMCwgJnNob3dsaXN0 KTsKKyAKKy0gIC8qIHNldCBkZWJ1Z2luZm9kIG9uICovCistICBhZGRfY21kICgib24iLCBjbGFz c19ydW4sIHNldF9kZWJ1Z2luZm9kX29uX2NvbW1hbmQsCistCSAgIF8oIkVuYWJsZSBkZWJ1Z2lu Zm9kLiIpLCAmc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworLQorLSAgLyogc2V0IGRlYnVn aW5mb2Qgb2ZmICovCistICBhZGRfY21kICgib2ZmIiwgY2xhc3NfcnVuLCBzZXRfZGVidWdpbmZv ZF9vZmZfY29tbWFuZCwKKy0JICAgXygiRGlzYWJsZSBkZWJ1Z2luZm9kLiIpLCAmc2V0X2RlYnVn aW5mb2RfcHJlZml4X2xpc3QpOworLQorLSAgLyogc2V0IGRlYnVnaW5mb2QgYXNrICovCistICBh ZGRfY21kICgiYXNrIiwgY2xhc3NfcnVuLCBzZXRfZGVidWdpbmZvZF9hc2tfY29tbWFuZCwgXygi XAorLUFzayB0aGUgdXNlciB3aGV0aGVyIHRvIGVuYWJsZSBkZWJ1Z2luZm9kIGJlZm9yZSBwZXJm b3JtaW5nIHRoZSBuZXh0IHF1ZXJ5LiIpLAorLQkgICAmc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xp c3QpOworLQorLSAgLyogc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cyAqLworLSAgYWRkX2NtZCAoInN0 YXR1cyIsIGNsYXNzX3J1biwgc2hvd19kZWJ1Z2luZm9kX3N0YXR1c19jb21tYW5kLAorLQkgICBf KCJTaG93IHdoZXRoZXIgZGVidWdpbmZvZCBpcyBzZXQgdG8gXCJvblwiLCBcIm9mZlwiIG9yIFwi YXNrXCIuIiksCistCSAgICZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworKyAgYWRkX3Nl dHNob3dfZW51bV9jbWQgKCJlbmFibGVkIiwgY2xhc3NfcnVuLCBkZWJ1Z2luZm9kX2VuYWJsZWRf ZW51bSwKKysgICAgICAgICAgICAgICAgICAgICAgICAmZGVidWdpbmZvZF9lbmFibGVkLAorKwkJ CV8oIlNldCB3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kLiIpLAorKwkJCV8oIlNob3cgd2hldGhl ciB0byB1c2UgZGVidWdpbmZvZC4iKSwKKysJCQlfKCJcCisrV2hlbiBvbiwgZW5hYmxlIHRoZSB1 c2Ugb2YgZGVidWdpbmZvZCB0byBkb3dubG9hZCBtaXNzaW5nIGRlYnVnIGluZm8gYW5kXG5cCisr c291cmNlIGZpbGVzLiIpLAorKwkJCXNldF9kZWJ1Z2luZm9kX2VuYWJsZWQsCisrCQkJc2hvd19k ZWJ1Z2luZm9kX2VuYWJsZWQsCisrCQkJJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0LAorKwkJ CSZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworIAorICAgLyogc2V0L3Nob3cgZGVidWdp bmZvZCB1cmxzICovCisgICBhZGRfc2V0c2hvd19zdHJpbmdfbm9lc2NhcGVfY21kICgidXJscyIs IGNsYXNzX3J1biwgJmRlYnVnaW5mb2RfdXJscywgXygiXAorQEAgLTQyMiw4ICszNTcsOCBAQCBT aG93IHRoZSBsaXN0IG9mIGRlYnVnaW5mb2Qgc2VydmVyIFVSTHMuIiksIF8oIlwKKyBNYW5hZ2Ug dGhlIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGRlYnVnaW5mb2Qgc2VydmVyIFVSTHMgdGhhdCBH REIgd2lsbCBxdWVyeSBcCisgd2hlbiBtaXNzaW5nIGRlYnVnaW5mbywgZXhlY3V0YWJsZXMgb3Ig c291cmNlIGZpbGVzLlxuVGhlIGRlZmF1bHQgdmFsdWUgaXMgXAorIGNvcGllZCBmcm9tIHRoZSBE RUJVR0lORk9EX1VSTFMgZW52aXJvbm1lbnQgdmFyaWFibGUuIiksCistCQkJCSAgIHNldF9kZWJ1 Z2luZm9kX3VybHNfY29tbWFuZCwKKy0JCQkJICAgc2hvd19kZWJ1Z2luZm9kX3VybHNfY29tbWFu ZCwKKysJCQkJICAgc2V0X2RlYnVnaW5mb2RfdXJscywKKysJCQkJICAgc2hvd19kZWJ1Z2luZm9k X3VybHMsCisgCQkJCSAgICZzZXRfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCwKKyAJCQkJICAgJnNo b3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCk7CisgICBpZiAoZ2V0ZW52ICgiREVCVUdJTkZPRF9V UkxTIikgIT0gbnVsbHB0cikKK0BAIC00MzYsNyArMzcxLDcgQEAgU2V0IHZlcmJvc2l0eSBvZiBk ZWJ1Z2luZm9kIG91dHB1dC4iKSwgXygiXAorIFNob3cgZGVidWdpbmZvZCBkZWJ1Z2dpbmcuIiks IF8oIlwKKyBXaGVuIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLCBkaXNwbGF5IHZlcmJvc2Ugb3V0 cHV0IGZvciBlYWNoIGRlYnVnaW5mb2QgXAorIHF1ZXJ5LlxuVG8gZGlzYWJsZSwgc2V0IHRvIHpl cm8uICBWZXJib3NlIG91dHB1dCBpcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4iKSwKKy0JCQkgICAg IHNldF9kZWJ1Z2luZm9kX3ZlcmJvc2VfY29tbWFuZCwKKysJCQkgICAgIG51bGxwdHIsCisgCQkJ ICAgICBzaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kLAorIAkJCSAgICAgJnNldF9kZWJ1 Z2luZm9kX3ByZWZpeF9saXN0LAorIAkJCSAgICAgJnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlz dCk7CitkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGlu Zm8KKy0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8K K0BAIC00NzA0NiwyNyArNDcwNDYsMjggQEAgcmVnYXJkaW5nIEBjb2Rle2RlYnVnaW5mb2R9Lgor IEB2YWx1ZXtHREJOfSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGZvciBjb25maWd1 cmluZyBAY29kZXtkZWJ1Z2luZm9kfS4KKyAKKyBAdGFibGUgQGNvZGUKKy1Aa2luZGV4IHNldCBk ZWJ1Z2luZm9kCistQGFuY2hvcntzZXQgZGVidWdpbmZvZH0KKy1AaXRlbSBzZXQgZGVidWdpbmZv ZAorLUBpdGVteCBzZXQgZGVidWdpbmZvZCBvbgorK0BraW5kZXggc2V0IGRlYnVnaW5mb2QgZW5h YmxlZAorK0BhbmNob3J7c2V0IGRlYnVnaW5mb2QgZW5hYmxlZH0KKytAaXRlbSBzZXQgZGVidWdp bmZvZCBlbmFibGVkCisrQGl0ZW14IHNldCBkZWJ1Z2luZm9kIGVuYWJsZWQgb24KKyBAY2luZGV4 IGVuYWJsZSBkZWJ1Z2luZm9kCisgQHZhbHVle0dEQk59IHdpbGwgYXR0ZW1wdCB0byBxdWVyeSBA Y29kZXtkZWJ1Z2luZm9kfSBzZXJ2ZXJzIHdoZW4gbWlzc2luZyBkZWJ1ZworIGluZm8gb3Igc291 cmNlIGZpbGVzLgorIAorLUBpdGVtIHNldCBkZWJ1Z2luZm9kIG9mZgorK0BpdGVtIHNldCBkZWJ1 Z2luZm9kIGVuYWJsZWQgb2ZmCisgQHZhbHVle0dEQk59IHdpbGwgbm90IGF0dGVtcHQgdG8gcXVl cnkgQGNvZGV7ZGVidWdpbmZvZH0gc2VydmVycyB3aGVuIG1pc3NpbmcKKy1kZWJ1ZyBpbmZvIG9y IHNvdXJjZSBmaWxlcy4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2R9IGlzIHNldCB0byBA Y29kZXtvZmZ9CistZm9yIG5vbi1pbnRlcmFjdGl2ZSBzZXNzaW9ucy4KKytkZWJ1ZyBpbmZvIG9y IHNvdXJjZSBmaWxlcy4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2QgZW5hYmxlZH0gaXMg c2V0IHRvCisrQGNvZGV7b2ZmfSBmb3Igbm9uLWludGVyYWN0aXZlIHNlc3Npb25zLgorIAorLUBp dGVtIHNldCBkZWJ1Z2luZm9kIGFzaworK0BpdGVtIHNldCBkZWJ1Z2luZm9kIGVuYWJsZWQgYXNr CisgQHZhbHVle0dEQk59IHdpbGwgcHJvbXB0IHRoZSB1c2VyIHRvIGVuYWJsZSBvciBkaXNhYmxl IEBjb2Rle2RlYnVnaW5mb2R9IGJlZm9yZQorLWF0dGVtcHRpbmcgdG8gcGVyZm9ybSB0aGUgbmV4 dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2R9IGlzIHNldCB0bworLUBjb2Rl e2Fza30gZm9yIGludGVyYWN0aXZlIHNlc3Npb25zLgorK2F0dGVtcHRpbmcgdG8gcGVyZm9ybSB0 aGUgbmV4dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2QgZW5hYmxlZH0KKytp cyBzZXQgdG8gQGNvZGV7YXNrfSBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMuCisgCistQGtpbmRl eCBzaG93IGRlYnVnaW5mb2Qgc3RhdHVzCistQGl0ZW0gc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cwor LVNob3cgd2hldGhlciBAY29kZXtkZWJ1Z2luZm9kfSBpcyBzZXQgdG8gQGNvZGV7b259LCBAY29k ZXtvZmZ9IG9yIEBjb2Rle2Fza30uCisrQGtpbmRleCBzaG93IGRlYnVnaW5mb2QgZW5hYmxlZAor K0BpdGVtIHNob3cgZGVidWdpbmZvZCBlbmFibGVkCisrRGlzcGxheSB3aGV0aGVyIEBjb2Rle2Rl YnVnaW5mb2QgZW5hYmxlZH0gaXMgc2V0IHRvIEBjb2Rle29ufSwgQGNvZGV7b2ZmfSBvcgorK0Bj b2Rle2Fza30uCisgCisgQGtpbmRleCBzZXQgZGVidWdpbmZvZCB1cmxzCisgQGNpbmRleCBjb25m aWd1cmUgZGVidWdpbmZvZCBVUkxzCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVi dWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVi dWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5kZWJ1Z2luZm9kL2ZldGNoX3NyY19hbmRfc3ltYm9scy5leHAKKysrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmRlYnVnaW5mb2QvZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cAorQEAgLTIzNiw3ICsy MzYsNyBAQCBwcm9jIGxvY2FsX3VybCB7IH0geworICAgICBjbGVhbl9yZXN0YXJ0CisgICAgIGdk Yl90ZXN0ICJmaWxlICRiaW5maWxlIiAiLipObyBkZWJ1Z2dpbmcgc3ltYm9scy4qIiBcCisgCSJm aWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVdIGNtZCIKKy0gICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgZGVidWdpbmZvZCBvZmYiCisrICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVnaW5m b2QgZW5hYmxlZCBvZmYiCisgICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVnaW5mb2Qg dXJscyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0IgorIAorICAgICAjIGdkYiBzaG91bGRuJ3QgZmlu ZCB0aGUgZGVidWdpbmZvIHNpbmNlIGRlYnVnaW5mb2QgaGFzIGJlZW4gZGlzYWJsZWQKK0BAIC0y NDQsNyArMjQ0LDcgQEAgcHJvYyBsb2NhbF91cmwgeyB9IHsKKyAJImZpbGUgW2ZpbGUgdGFpbCAk YmluZmlsZV0gY21kIG9mZiIKKyAKKyAgICAgIyBFbmFibGUgZGVidWdpbmZvZCBhbmQgZmV0Y2gg dGhlIGRlYnVnaW5mbworLSAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Z2luZm9kIG9u IgorKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Z2luZm9kIGVuYWJsZWQgb24iCisg ICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiLipSZWFkaW5nIHN5bWJvbHMgZnJvbS4qZGVi dWdpbmZvLioiIFwKKyAJImZpbGUgW2ZpbGUgdGFpbCAkYmluZmlsZV0gY21kIG9uIgorIH0KCmRp ZmYgLS1naXQgYS9nZGItcmhiejIwMjQ4NzUtZXhwYW5kLWRvY3VtZW50YXRpb24tZm9yLWRlYnVn aW5mb2QucGF0Y2ggYi9nZGItcmhiejIwMjQ4NzUtZXhwYW5kLWRvY3VtZW50YXRpb24tZm9yLWRl YnVnaW5mb2QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RmM2Jm NAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1leHBhbmQtZG9jdW1lbnRhdGlv bi1mb3ItZGVidWdpbmZvZC5wYXRjaApAQCAtMCwwICsxLDE1MiBAQAorRnJvbSBGRURPUkFfUEFU Q0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbGV4YW5kcmE9 MjBIPUMzPUExamtvdj1DMz1BMT89IDxhaGFqa292YUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAx MCBKYW4gMjAyMiAxMzowMDo1MCArMDEwMAorU3ViamVjdDogZ2RiLXJoYnoyMDI0ODc1LWV4cGFu ZC1kb2N1bWVudGF0aW9uLWZvci1kZWJ1Z2luZm9kLnBhdGNoCisKKzs7QmFja3BvcnQgdXBzdHJl YW0gY29tbWl0IGZyb20gQWFyb24gTWVyZXkKKzs7M2VhNDRmMjEyOTkgZ2RiLnRleGluZm86IEV4 cGFuZCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2luZm9kCisKK2dkYi50ZXhpbmZvOiBFeHBhbmQg ZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdpbmZvZAorCitBZGQgc2VjdGlvbiBkZXNjcmliaW5nIEdE QidzIHVzYWdlIG9mIGRlYnVnaW5mb2QuCisKK1JlZmVyIHRvIHRoaXMgbmV3IHNlY3Rpb24gaW4g dGhlIGRlc2NyaXB0aW9uIG9mIHRoZSAnLS13aXRoLWRlYnVnaW5mb2QnCitjb25maWd1cmUgb3B0 aW9uLgorCitNZW50aW9uIGRlYnVnaW5mb2QgaW4gdGhlICdTZXBhcmF0ZSBEZWJ1ZyBGaWxlcycg c2VjdGlvbi4KKworZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCistLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKysgYi9nZGIvZG9jL2dkYi50 ZXhpbmZvCitAQCAtMTg0LDYgKzE4NCw3IEBAIHNvZnR3YXJlIGluIGdlbmVyYWwuICBXZSB3aWxs IG1pc3MgaGltLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRp bmcgc3lzdGVtCisgKiBUcmFjZSBGaWxlIEZvcm1hdDo6CQlHREIgdHJhY2UgZmlsZSBmb3JtYXQK KyAqIEluZGV4IFNlY3Rpb24gRm9ybWF0OjogICAgICAgIC5nZGJfaW5kZXggc2VjdGlvbiBmb3Jt YXQKKysqIERlYnVnaW5mb2Q6OiAgICAgICAgICAgICAgICAgIERvd25sb2FkIGRlYnVnZ2luZyBy ZXNvdXJjZXMgd2l0aCBAY29kZXtkZWJ1Z2luZm9kfQorICogTWFuIFBhZ2VzOjoJCQlNYW51YWwg cGFnZXMKKyAqIENvcHlpbmc6OgkJCUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHNheXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdyB5b3UgY2FuIGNvcHkgYW5kIHNoYXJl IEdEQgorQEAgLTIxMzczLDcgKzIxMzc0LDkgQEAgRm9yIHRoZSBgYGJ1aWxkIElEJycgbWV0aG9k LCBAdmFsdWV7R0RCTn0gbG9va3MgaW4gdGhlCisgYSBmaWxlIG5hbWVkIEBmaWxle0B2YXJ7bm59 L0B2YXJ7bm5ubm5ubm59LmRlYnVnfSwgd2hlcmUgQHZhcntubn0gYXJlIHRoZQorIGZpcnN0IDIg aGV4IGNoYXJhY3RlcnMgb2YgdGhlIGJ1aWxkIElEIGJpdCBzdHJpbmcsIGFuZCBAdmFye25ubm5u bm5ufQorIGFyZSB0aGUgcmVzdCBvZiB0aGUgYml0IHN0cmluZy4gIChSZWFsIGJ1aWxkIElEIHN0 cmluZ3MgYXJlIDMyIG9yIG1vcmUKKy1oZXggY2hhcmFjdGVycywgbm90IDEwLikKKytoZXggY2hh cmFjdGVycywgbm90IDEwLikgIEB2YWx1ZXtHREJOfSBjYW4gYXV0b21hdGljYWxseSBxdWVyeQor K0Bjb2Rle2RlYnVnaW5mb2R9IHNlcnZlcnMgdXNpbmcgYnVpbGQgSURzIGluIG9yZGVyIHRvIGRv d25sb2FkIHNlcGFyYXRlIGRlYnVnCisrZmlsZXMgdGhhdCBjYW5ub3QgYmUgZm91bmQgbG9jYWxs eS4gIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBAcmVme0RlYnVnaW5mb2R9LgorIEBlbmQgaXRl bWl6ZQorIAorIFNvLCBmb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgYXNrIEB2YWx1ZXtHREJOfSB0 byBkZWJ1ZworQEAgLTIxMzk0LDYgKzIxMzk3LDEwIEBAIGRlYnVnIGluZm9ybWF0aW9uIGZpbGVz LCBpbiB0aGUgaW5kaWNhdGVkIG9yZGVyOgorIEBmaWxley91c3IvbGliL2RlYnVnL3Vzci9iaW4v bHMuZGVidWd9LgorIEBlbmQgaXRlbWl6ZQorIAorK0lmIHRoZSBkZWJ1ZyBmaWxlIHN0aWxsIGhh cyBub3QgYmVlbiBmb3VuZCBhbmQgQGNvZGV7ZGVidWdpbmZvZH0KKysoQHB4cmVme0RlYnVnaW5m b2R9KSBpcyBlbmFibGVkLCBAdmFsdWV7R0RCTn0gd2lsbCBhdHRlbXB0IHRvIGRvd25sb2FkIHRo ZQorK2ZpbGUgZnJvbSBAY29kZXtkZWJ1Z2luZm9kfSBzZXJ2ZXJzLgorKworIEBhbmNob3J7ZGVi dWctZmlsZS1kaXJlY3Rvcnl9CisgR2xvYmFsIGRlYnVnZ2luZyBpbmZvIGRpcmVjdG9yaWVzIGRl ZmF1bHQgdG8gd2hhdCBpcyBzZXQgYnkgQHZhbHVle0dEQk59CisgY29uZmlndXJlIG9wdGlvbiBA b3B0aW9uey0td2l0aC1zZXBhcmF0ZS1kZWJ1Zy1kaXJ9LiAgRHVyaW5nIEB2YWx1ZXtHREJOfSBy dW4KK0BAIC0zODc0NiwxMiArMzg3NTMsMTIgQEAgVXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0 ZWFkIG9mIHRoZSB0ZXJtY2FwIGxpYnJhcnksIGZvciB0ZXh0LW1vZGUKKyB0ZXJtaW5hbCBvcGVy YXRpb25zLgorIAorIEBpdGVtIC0td2l0aC1kZWJ1Z2luZm9kCistQnVpbGQgQHZhbHVle0dEQk59 IHdpdGggbGliZGVidWdpbmZvZCwgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxpYnJhcnkuCistVXNl ZCB0byBhdXRvbWF0aWNhbGx5IGZldGNoIHNvdXJjZSBmaWxlcyBhbmQgc2VwYXJhdGUgZGVidWcg ZmlsZXMgZnJvbQorLWRlYnVnaW5mb2Qgc2VydmVycyB1c2luZyB0aGUgYXNzb2NpYXRlZCBleGVj dXRhYmxlJ3MgYnVpbGQgSUQuIEVuYWJsZWQKKy1ieSBkZWZhdWx0IGlmIGxpYmRlYnVnaW5mb2Qg aXMgaW5zdGFsbGVkIGFuZCBmb3VuZCBhdCBjb25maWd1cmUgdGltZS4KKy1kZWJ1Z2luZm9kIGlz IHBhY2thZ2VkIHdpdGggZWxmdXRpbHMsIHN0YXJ0aW5nIHdpdGggdmVyc2lvbiAwLjE3OC4gWW91 CistY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBgaHR0cHM6Ly9zb3VyY2V3YXJlLm9y Zy9lbGZ1dGlscy8nLgorK0J1aWxkIEB2YWx1ZXtHREJOfSB3aXRoIEBmaWxle2xpYmRlYnVnaW5m b2R9LCB0aGUgQGNvZGV7ZGVidWdpbmZvZH0gY2xpZW50CisrbGlicmFyeS4gIFVzZWQgdG8gYXV0 b21hdGljYWxseSBmZXRjaCBFTEYsIERXQVJGIGFuZCBzb3VyY2UgZmlsZXMgZnJvbQorK0Bjb2Rl e2RlYnVnaW5mb2R9IHNlcnZlcnMgdXNpbmcgYnVpbGQgSURzIGFzc29jaWF0ZWQgd2l0aCBhbnkg bWlzc2luZworK2ZpbGVzLiAgRW5hYmxlZCBieSBkZWZhdWx0IGlmIEBmaWxle2xpYmRlYnVnaW5m b2R9IGlzIGluc3RhbGxlZCBhbmQgZm91bmQKKythdCBjb25maWd1cmUgdGltZS4gIEZvciBtb3Jl IGluZm9ybWF0aW9uIHJlZ2FyZGluZyBAY29kZXtkZWJ1Z2luZm9kfSBzZWUKKytAcmVme0RlYnVn aW5mb2R9LgorIAorIEBpdGVtIC0td2l0aC1saWJ1bndpbmQtaWE2NAorIFVzZSB0aGUgbGlidW53 aW5kIGxpYnJhcnkgZm9yIHVud2luZGluZyBmdW5jdGlvbiBjYWxsIHN0YWNrIG9uIGlhNjQKK0BA IC00NzAxMiw2ICs0NzAxOSw4MiBAQCBzd2l0Y2ggKGRpZS0+dGFnKQorICAgQH0KKyBAZW5kIHNt YWxsZXhhbXBsZQorIAorK0Bub2RlIERlYnVnaW5mb2QKKytAYXBwZW5kaXggRG93bmxvYWQgZGVi dWdnaW5nIHJlc291cmNlcyB3aXRoIERlYnVnaW5mb2QKKytAY2luZGV4IGRlYnVnaW5mb2QKKysK KytAY29kZXtkZWJ1Z2luZm9kfSBpcyBhbiBIVFRQIHNlcnZlciBmb3IgZGlzdHJpYnV0aW5nIEVM RiwgRFdBUkYgYW5kIHNvdXJjZQorK2ZpbGVzLgorKworK1dpdGggdGhlIEBjb2Rle2RlYnVnaW5m b2R9IGNsaWVudCBsaWJyYXJ5LCBAZmlsZXtsaWJkZWJ1Z2luZm9kfSwgQHZhbHVle0dEQk59Cisr Y2FuIHF1ZXJ5IHNlcnZlcnMgdXNpbmcgdGhlIGJ1aWxkIElEcyBhc3NvY2lhdGVkIHdpdGggbWlz c2luZyBkZWJ1ZyBpbmZvLAorK2V4ZWN1dGFibGVzIGFuZCBzb3VyY2UgZmlsZXMgaW4gb3JkZXIg dG8gZG93bmxvYWQgdGhlbSBvbiBkZW1hbmQuCisrCisrRm9yIGluc3RydWN0aW9ucyBvbiBidWls ZGluZyBAdmFsdWV7R0RCTn0gd2l0aCBAZmlsZXtsaWJkZWJ1Z2luZm9kfSwKKytAcHhyZWZ7Q29u ZmlndXJlIE9wdGlvbnMsLC0td2l0aC1kZWJ1Z2luZm9kfS4gIEBjb2Rle2RlYnVnaW5mb2R9IGlz IHBhY2thZ2VkCisrd2l0aCBAY29kZXtlbGZ1dGlsc30sIHN0YXJ0aW5nIHdpdGggdmVyc2lvbiAw LjE3OC4gIFNlZQorK0B1cmVme2h0dHBzOi8vc291cmNld2FyZS5vcmcvZWxmdXRpbHMvRGVidWdp bmZvZC5odG1sfSBmb3IgbW9yZSBpbmZvcm1hdGlvbgorK3JlZ2FyZGluZyBAY29kZXtkZWJ1Z2lu Zm9kfS4KKysKKytAbWVudQorKyogRGVidWdpbmZvZCBTZXR0aW5nczo6CQlDb25maWd1cmluZyBk ZWJ1Z2luZm9kIHdpdGggQHZhbHVle0dEQk59CisrQGVuZCBtZW51CisrCisrQG5vZGUgRGVidWdp bmZvZCBTZXR0aW5ncworK0BzZWN0aW9uIERlYnVnaW5mb2QgU2V0dGluZ3MKKysKKytAdmFsdWV7 R0RCTn0gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBmb3IgY29uZmlndXJpbmcgQGNv ZGV7ZGVidWdpbmZvZH0uCisrCisrQHRhYmxlIEBjb2RlCisrQGtpbmRleCBzZXQgZGVidWdpbmZv ZAorK0BhbmNob3J7c2V0IGRlYnVnaW5mb2R9CisrQGl0ZW0gc2V0IGRlYnVnaW5mb2QKKytAaXRl bXggc2V0IGRlYnVnaW5mb2Qgb24KKytAY2luZGV4IGVuYWJsZSBkZWJ1Z2luZm9kCisrQHZhbHVl e0dEQk59IHdpbGwgYXR0ZW1wdCB0byBxdWVyeSBAY29kZXtkZWJ1Z2luZm9kfSBzZXJ2ZXJzIHdo ZW4gbWlzc2luZyBkZWJ1ZworK2luZm8gb3Igc291cmNlIGZpbGVzLgorKworK0BpdGVtIHNldCBk ZWJ1Z2luZm9kIG9mZgorK0B2YWx1ZXtHREJOfSB3aWxsIG5vdCBhdHRlbXB0IHRvIHF1ZXJ5IEBj b2Rle2RlYnVnaW5mb2R9IHNlcnZlcnMgd2hlbiBtaXNzaW5nCisrZGVidWcgaW5mbyBvciBzb3Vy Y2UgZmlsZXMuICBCeSBkZWZhdWx0LCBAY29kZXtkZWJ1Z2luZm9kfSBpcyBzZXQgdG8gQGNvZGV7 b2ZmfQorK2ZvciBub24taW50ZXJhY3RpdmUgc2Vzc2lvbnMuCisrCisrQGl0ZW0gc2V0IGRlYnVn aW5mb2QgYXNrCisrQHZhbHVle0dEQk59IHdpbGwgcHJvbXB0IHRoZSB1c2VyIHRvIGVuYWJsZSBv ciBkaXNhYmxlIEBjb2Rle2RlYnVnaW5mb2R9IGJlZm9yZQorK2F0dGVtcHRpbmcgdG8gcGVyZm9y bSB0aGUgbmV4dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2R9IGlzIHNldCB0 bworK0Bjb2Rle2Fza30gZm9yIGludGVyYWN0aXZlIHNlc3Npb25zLgorKworK0BraW5kZXggc2hv dyBkZWJ1Z2luZm9kIHN0YXR1cworK0BpdGVtIHNob3cgZGVidWdpbmZvZCBzdGF0dXMKKytTaG93 IHdoZXRoZXIgQGNvZGV7ZGVidWdpbmZvZH0gaXMgc2V0IHRvIEBjb2Rle29ufSwgQGNvZGV7b2Zm fSBvciBAY29kZXthc2t9LgorKworK0BraW5kZXggc2V0IGRlYnVnaW5mb2QgdXJscworK0BjaW5k ZXggY29uZmlndXJlIGRlYnVnaW5mb2QgVVJMcworK0BpdGVtIHNldCBkZWJ1Z2luZm9kIHVybHMK KytAaXRlbXggc2V0IGRlYnVnaW5mb2QgdXJscyBAdmFye3VybHN9CisrU2V0IHRoZSBzcGFjZS1z ZXBhcmF0ZWQgbGlzdCBvZiBVUkxzIHRoYXQgQGNvZGV7ZGVidWdpbmZvZH0gd2lsbCBhdHRlbXB0 IHRvCisrcXVlcnkuICBPbmx5IEBjb2Rle2h0dHA6Ly99LCBAY29kZXtodHRwczovL30gYW5kIEBj b2Rle2ZpbGU6Ly99IHByb3RvY29scworK3Nob3VsZCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFs dWUgb2YgQGNvZGV7ZGVidWdpbmZvZCB1cmxzfSBpcyBjb3BpZWQgZnJvbQorK3RoZSBAdmFye0RF QlVHSU5GT0RfVVJMU30gZW52aXJvbm1lbnQgdmFyaWFibGUuCisrCisrQGtpbmRleCBzaG93IGRl YnVnaW5mb2QgdXJscworK0BpdGVtIHNob3cgZGVidWdpbmZvZCB1cmxzCisrRGlzcGxheSB0aGUg bGlzdCBvZiBVUkxzIHRoYXQgQGNvZGV7ZGVidWdpbmZvZH0gd2lsbCBhdHRlbXB0IHRvIHF1ZXJ5 LgorKworK0BraW5kZXggc2V0IGRlYnVnaW5mb2QgdmVyYm9zZQorK0BjaW5kZXggZGVidWdpbmZv ZCB2ZXJib3NpdHkKKytAaXRlbSBzZXQgZGVidWdpbmZvZCB2ZXJib3NlCisrQGl0ZW14IHNldCBk ZWJ1Z2luZm9kIHZlcmJvc2UgQHZhcntufQorK0VuYWJsZSBvciBkaXNhYmxlIEBjb2Rle2RlYnVn aW5mb2R9LXJlbGF0ZWQgb3V0cHV0LiAgVXNlIGEgbm9uLXplcm8gdmFsdWUKKyt0byBlbmFibGUg YW5kIEBjb2RlezB9IHRvIGRpc2FibGUuICBAY29kZXtkZWJ1Z2luZm9kfSBvdXRwdXQgaXMgc2hv d24gYnkKKytkZWZhdWx0LgorKworK0BraW5kZXggc2hvdyBkZWJ1Z2luZm9kIHZlcmJvc2UKKytA aXRlbSBzaG93IGRlYnVnaW5mb2QgdmVyYm9zZQorK1Nob3cgdGhlIGN1cnJlbnQgdmVyYm9zaXR5 IHNldHRpbmcuCisrCisrQGVuZCB0YWJsZQorKworIEBub2RlIE1hbiBQYWdlcworIEBhcHBlbmRp eCBNYW51YWwgcGFnZXMKKyBAY2luZGV4IE1hbiBwYWdlcwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 MjAyNDg3NS1maXgtdW5pdHRlc3QtZmFpbHVyZS5wYXRjaCBiL2dkYi1yaGJ6MjAyNDg3NS1maXgt dW5pdHRlc3QtZmFpbHVyZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42NmYyMWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDI0ODc1LWZpeC11bml0dGVz dC1mYWlsdXJlLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QWxleGFuZHJhPTIwSD1DMz1B MWprb3Y9QzM9QTE/PSA8YWhhamtvdmFAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTEgSmFuIDIw MjIgMTI6MjI6MjkgKzAxMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyNDg3NS1maXgtdW5pdHRlc3Qt ZmFpbHVyZS5wYXRjaAorCis7O0JhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCBmcm9tIFRvbSBUcm9t ZXkKKzs7MmE4ZjFmNDc0NDYgRml4IHVuaXR0ZXN0LmV4cCBmYWlsdXJlIGR1ZSB0byAnc2V0IGRl YnVnaW5mb2QnIGFkZGl0aW9uCisKK0ZpeCB1bml0dGVzdC5leHAgZmFpbHVyZSBkdWUgdG8gJ3Nl dCBkZWJ1Z2luZm9kJyBhZGRpdGlvbgorCitUaGUgJ3NldCBkZWJ1Z2luZm9kJyBjaGFuZ2UgY2F1 c2VkIGEgcmVncmVzc2lvbiBpbiB1bml0dGVzdC5leHA6CisKKyAgICBSdW5uaW5nIHNlbGZ0ZXN0 IGhlbHBfZG9jX2ludmFyaWFudHMuCisgICAgaGVscCBkb2MgYnJva2VuIGludmFyaWFudDogY29t bWFuZCAnaW5mbyBzZXQgZGVidWdpbmZvZCcgaGVscCBkb2MgZmlyc3QgbGluZSBpcyBub3QgdGVy bWluYXRlZCB3aXRoIGEgJy4nIGNoYXJhY3RlcgorICAgIGhlbHAgZG9jIGJyb2tlbiBpbnZhcmlh bnQ6IGNvbW1hbmQgJ3NldCBkZWJ1Z2luZm9kJyBoZWxwIGRvYyBmaXJzdCBsaW5lIGlzIG5vdCB0 ZXJtaW5hdGVkIHdpdGggYSAnLicgY2hhcmFjdGVyCisgICAgaGVscCBkb2MgYnJva2VuIGludmFy aWFudDogY29tbWFuZCAnc2hvdyBkZWJ1Z2luZm9kJyBoZWxwIGRvYyBmaXJzdCBsaW5lIGlzIG5v dCB0ZXJtaW5hdGVkIHdpdGggYSAnLicgY2hhcmFjdGVyCisgICAgU2VsZiB0ZXN0IGZhaWxlZDog c2VsZi10ZXN0IGZhaWxlZCBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3VuaXR0ZXN0cy9jb21t YW5kLWRlZi1zZWxmdGVzdHMuYzoxMDAKKworVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4g IEknbSBjaGVja2luZyBpdCBpbi4KKworZGlmZiAtLWdpdCBhL2dkYi9kZWJ1Z2luZm9kLXN1cHBv cnQuYyBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworLS0tIGEvZ2RiL2RlYnVnaW5mb2Qtc3Vw cG9ydC5jCisrKysgYi9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKK0BAIC0zOTAsMTEgKzM5MCwx MSBAQCBfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9kICgpCisgeworICAgLyogc2V0L3Nob3cgZGVidWdp bmZvZCAqLworICAgYWRkX2Jhc2ljX3ByZWZpeF9jbWQgKCJkZWJ1Z2luZm9kIiwgY2xhc3NfcnVu LAorLSAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNldCBkZWJ1Z2luZm9kIG9wdGlvbnMiKSwK KysgICAgICAgICAgICAgICAgICAgICAgICBfKCJTZXQgZGVidWdpbmZvZCBvcHRpb25zLiIpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICZzZXRfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCwgMCwg JnNldGxpc3QpOworIAorICAgYWRkX3Nob3dfcHJlZml4X2NtZCAoImRlYnVnaW5mb2QiLCBjbGFz c19ydW4sCistICAgICAgICAgICAgICAgICAgICAgICBfKCJTaG93IGRlYnVnaW5mb2Qgb3B0aW9u cyIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgXygiU2hvdyBkZWJ1Z2luZm9kIG9wdGlvbi4i KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3Qs IDAsICZzaG93bGlzdCk7CisgCisgICAvKiBzZXQgZGVidWdpbmZvZCBvbiAqLwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNoIGIvZ2RiLXJoYnoyMDI0ODc1LXByMjcw MjYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg0ZjEzNAotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNoCkBAIC0wLDAgKzEs NjAgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiA9P1VURi04P3E/QWxleGFuZHJhPTIwSD1DMz1BMWprb3Y9QzM9QTE/PSA8YWhhamtvdmFAcmVk aGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTEgSmFuIDIwMjIgMTM6MjI6NDQgKzAxMDAKK1N1YmplY3Q6 IGdkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNoCisKKzs7QmFja3BvcnQgdXBzdHJlYW0gY29t bWl0IGZyb20gQWFyb24gTWVyZXkKKzs7YjlkYjI2YjRjNDQgW1BSIGdkYi8yNzAyNl0gQ1RSTC1D IGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQKKworW1BSIGdkYi8yNzAy Nl0gQ1RSTC1DIGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQKKworRHVy aW5nIGRlYnVnaW5mb2QgZG93bmxvYWRzLCBjdHJsLWMgc2hvdWxkIHJlc3VsdCBpbiB0aGUgZG93 bmxvYWQKK2JlaW5nIGNhbmNlbGxlZCBhbmQgc2tpcHBlZC4gIEhvd2V2ZXIgaW4gc29tZSBjYXNl cywgY3RybC1jIGZhaWxzIHRvCitnZXQgZGVsaXZlcmVkIHRvIGdkYiBkdXJpbmcgZG93bmxvYWRp bmcuICBUaGlzIGNhbiByZXN1bHQgaW4gZG93bmxvYWRzCitiZWluZyB1bnNraXBwYWJsZS4KKwor Rml4IHRoaXMgYnkgZW5zdXJpbmcgdGhhdCB0YXJnZXRfdGVybWluYWw6Om91cnMgaXMgaW4gZWZm ZWN0IGZvciB0aGUKK2R1cmF0aW9uIG9mIGVhY2ggZG93bmxvYWQuCisKK0NvLWF1dGhvcmVkLWJ5 OiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+CitodHRwczovL3NvdXJjZXdhcmUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNzAyNiNjMworCitkaWZmIC0tZ2l0IGEvZ2RiL2Rl YnVnaW5mb2Qtc3VwcG9ydC5jIGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jCistLS0gYS9nZGIv ZGVidWdpbmZvZC1zdXBwb3J0LmMKKysrKyBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworQEAg LTIzLDYgKzIzLDcgQEAKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfb3B0aW9uYWwuaCIKKyAj aW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCisgI2luY2x1ZGUgImNsaS9jbGktc3R5bGUuaCIKKysj aW5jbHVkZSAidGFyZ2V0LmgiCisgCisgLyogU2V0L3Nob3cgZGVidWdpbmZvZCBjb21tYW5kcy4g ICovCisgc3RhdGljIGNtZF9saXN0X2VsZW1lbnQgKnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0 OworQEAgLTIwOCw2ICsyMDksMTMgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorICAgdXNlcl9kYXRhIGRhdGEgKCJzb3VyY2UgZmlsZSIs IHNyY3BhdGgpOworIAorICAgZGVidWdpbmZvZF9zZXRfdXNlcl9kYXRhIChjLCAmZGF0YSk7Cisr ICBnZGI6Om9wdGlvbmFsPHRhcmdldF90ZXJtaW5hbDo6c2NvcGVkX3Jlc3RvcmVfdGVybWluYWxf c3RhdGU+IHRlcm1fc3RhdGU7CisrICBpZiAodGFyZ2V0X3N1cHBvcnRzX3Rlcm1pbmFsX291cnMg KCkpCisrICAgIHsKKysgICAgICB0ZXJtX3N0YXRlLmVtcGxhY2UgKCk7CisrICAgICAgdGFyZ2V0 X3Rlcm1pbmFsOjpvdXJzICgpOworKyAgICB9CisrCisgICBzY29wZWRfZmQgZmQgKGRlYnVnaW5m b2RfZmluZF9zb3VyY2UgKGMsCisgCQkJCQlidWlsZF9pZCwKKyAJCQkJCWJ1aWxkX2lkX2xlbiwK K0BAIC0yNDYsNiArMjU0LDEzIEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1 bnNpZ25lZCBjaGFyICpidWlsZF9pZCwKKyAgIHVzZXJfZGF0YSBkYXRhICgic2VwYXJhdGUgZGVi dWcgaW5mbyBmb3IiLCBmaWxlbmFtZSk7CisgCisgICBkZWJ1Z2luZm9kX3NldF91c2VyX2RhdGEg KGMsICZkYXRhKTsKKysgIGdkYjo6b3B0aW9uYWw8dGFyZ2V0X3Rlcm1pbmFsOjpzY29wZWRfcmVz dG9yZV90ZXJtaW5hbF9zdGF0ZT4gdGVybV9zdGF0ZTsKKysgIGlmICh0YXJnZXRfc3VwcG9ydHNf dGVybWluYWxfb3VycyAoKSkKKysgICAgeworKyAgICAgIHRlcm1fc3RhdGUuZW1wbGFjZSAoKTsK KysgICAgICB0YXJnZXRfdGVybWluYWw6Om91cnMgKCk7CisrICAgIH0KKysKKyAgIHNjb3BlZF9m ZCBmZCAoZGVidWdpbmZvZF9maW5kX2RlYnVnaW5mbyAoYywgYnVpbGRfaWQsIGJ1aWxkX2lkX2xl biwKKyAJCQkJCSAgICZkbmFtZSkpOworICAgZGVidWdpbmZvZF9zZXRfdXNlcl9kYXRhIChjLCBu dWxscHRyKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejIwMjQ4NzUtc2V0X3Nob3ctZm9yLW1hbmFn aW5nLWRlYnVnaW5mb2QucGF0Y2ggYi9nZGItcmhiejIwMjQ4NzUtc2V0X3Nob3ctZm9yLW1hbmFn aW5nLWRlYnVnaW5mb2QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MjZhYjJhNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1zZXRfc2hvdy1mb3It bWFuYWdpbmctZGVidWdpbmZvZC5wYXRjaApAQCAtMCwwICsxLDQxNCBAQAorRnJvbSBGRURPUkFf UEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbGV4YW5k cmE9MjBIPUMzPUExamtvdj1DMz1BMT89IDxhaGFqa292YUByZWRoYXQuY29tPgorRGF0ZTogTW9u LCAxMCBKYW4gMjAyMiAxMzozNTo0NSArMDEwMAorU3ViamVjdDogZ2RiLXJoYnoyMDI0ODc1LXNl dF9zaG93LWZvci1tYW5hZ2luZy1kZWJ1Z2luZm9kLnBhdGNoCisKKzs7QmFja3BvcnQgdXBzdHJl YW0gY29tbWl0IGZyb20gQWFyb24gTWVyZXkKKzs7NzgxMWZhNTk5NWYgZ2RiOiBhZGQgc2V0L3No b3cgY29tbWFuZHMgZm9yIG1hbmFnaW5nIGRlYnVnaW5mbworCitnZGI6IGFkZCBzZXQvc2hvdyBj b21tYW5kcyBmb3IgbWFuYWdpbmcgZGVidWdpbmZvZAorCitBZGQgJ3NldCBkZWJ1Z2luZm9kJyBj b21tYW5kLiAgQWNjZXB0cyAnb24nLCAnb2ZmJyBvciAnYXNrJyBhcyBhbgorYXJndW1lbnQuICAn b24nIGVuYWJsZXMgZGVidWdpbmZvZCBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gICdvZmYnCitk aXNhYmxlcyBkZWJ1Z2luZm9kIGZvciB0aGUgY3VycmVudCBzZXNzaW9uLiAgJ2Fzaycgd2lsbCBw cm9tcHQKK3RoZSB1c2VyIHRvIGVpdGhlciBlbmFibGUgb3IgZGlzYWJsZSBkZWJ1Z2luZm9kIHdo ZW4gdGhlIG5leHQgcXVlcnkKK2lzIGFib3V0IHRvIGJlIHBlcmZvcm1lZDoKKworICAgIFRoaXMg R0RCIHN1cHBvcnRzIGF1dG8tZG93bmxvYWRpbmcgZGVidWdpbmZvIGZyb20gdGhlIGZvbGxvd2lu ZyBVUkxzOgorICAgIDxVUkwxPiA8VVJMMj4gLi4uCisgICAgRW5hYmxlIGRlYnVnaW5mb2QgZm9y IHRoaXMgc2Vzc2lvbj8gKHkgb3IgW25dKSB5CisgICAgRGVidWdpbmZvZCBoYXMgYmVlbiBlbmFi bGVkLgorICAgIFRvIG1ha2UgdGhpcyBzZXR0aW5nIHBlcm1hbmVudCwgYWRkICdzZXQgZGVidWdp bmZvZCBvbicgdG8gLmdkYmluaXQuCisKK0ZvciBpbnRlcmFjdGl2ZSBzZXNzaW9ucywgJ2Fzaycg aXMgdGhlIGRlZmF1bHQuICBGb3Igbm9uLWludGVyYWN0aXZlCitzZXNzaW9ucywgJ29mZicgaXMg dGhlIGRlZmF1bHQuCisKK0FkZCAnc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cycgY29tbWFuZC4gIERp c3BsYXlzIHdoZXRoZXIgZGVidWdpbmZvZAoraXMgc2V0IHRvICdvbicsICdvZmYnIG9yICdhc2sn LgorCitBZGQgJ3NldC9zaG93IGRlYnVnaW5mb2QgdXJscycgY29tbWFuZHMuIEFjY2VwdHMgYSBz dHJpbmcgb2YKK3NwYWNlLXNlcGFyYXRlZCBkZWJ1Z2luZm9kIHNlcnZlciBVUkxzIHRvIGJlIHF1 ZXJpZWQuICBUaGUgZGVmYXVsdAordmFsdWUgaXMgY29waWVkIGZyb20gdGhlIERFQlVHSU5GT0Rf VVJMUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKworRmluYWxseSBhZGQgJ3NldC9zaG93IGRlYnVn aW5mb2QgdmVyYm9zZScgY29tbWFuZHMgdG8gY29udHJvbCB3aGV0aGVyCitkZWJ1Z2luZm9kLXJl bGF0ZWQgb3V0cHV0IGlzIGRpc3BsYXllZC4gIFZlcmJvc2Ugb3V0cHV0IGlzIGVuYWJsZWQKK2J5 IGRlZmF1bHQuCisKKyAgICAoZ2RiKSBydW4KKyAgICBTdGFydGluZyBwcm9ncmFtOiAvYmluL3Ns ZWVwIDUKKyAgICBEb3dubG9hZCBmYWlsZWQ6IE5vIHJvdXRlIHRvIGhvc3QuICBDb250aW51aW5n IHdpdGhvdXQgZGVidWcgaW5mbyBmb3IgL2xpYjY0L2xpYmMuc28uNi4KKworSWYgR0RCIGlzIG5v dCBidWlsdCB3aXRoIGRlYnVnaW5mb2QgdGhlbiB0aGVzZSBjb21tYW5kcyB3aWxsIGp1c3QgZGlz cGxheQorCisgICAgU3VwcG9ydCBmb3IgZGVidWdpbmZvZCBpcyBub3QgY29tcGlsZWQgaW50byBH REIuCisKK2RpZmYgLS1naXQgYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMgYi9nZGIvZGVidWdp bmZvZC1zdXBwb3J0LmMKKy0tLSBhL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworKysrIGIvZ2Ri L2RlYnVnaW5mb2Qtc3VwcG9ydC5jCitAQCAtMTgsMTAgKzE4LDI2IEBACisgCisgI2luY2x1ZGUg ImRlZnMuaCIKKyAjaW5jbHVkZSA8ZXJybm8uaD4KKy0jaW5jbHVkZSAiY2xpL2NsaS1zdHlsZS5o IgorICNpbmNsdWRlICJnZGJzdXBwb3J0L3Njb3BlZF9mZC5oIgorICNpbmNsdWRlICJkZWJ1Z2lu Zm9kLXN1cHBvcnQuaCIKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfb3B0aW9uYWwuaCIKKysj aW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCisrI2luY2x1ZGUgImNsaS9jbGktc3R5bGUuaCIKKysK KysvKiBTZXQvc2hvdyBkZWJ1Z2luZm9kIGNvbW1hbmRzLiAgKi8KKytzdGF0aWMgY21kX2xpc3Rf ZWxlbWVudCAqc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3Q7Cisrc3RhdGljIGNtZF9saXN0X2Vs ZW1lbnQgKnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdDsKKysKKytzdGF0aWMgY29uc3QgY2hh ciBkZWJ1Z2luZm9kX29uW10gPSAib24iOworK3N0YXRpYyBjb25zdCBjaGFyIGRlYnVnaW5mb2Rf b2ZmW10gPSAib2ZmIjsKKytzdGF0aWMgY29uc3QgY2hhciBkZWJ1Z2luZm9kX2Fza1tdID0gImFz ayI7CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKmRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZv ZF9hc2s7Cisrc3RhdGljIHVuc2lnbmVkIGRlYnVnaW5mb2RfdmVyYm9zZSA9IDE7CisrCisrLyog VGhpcyBpcyBuZXZlciBhY3R1YWxseSB1c2VkLiAgVVJMcyBhcmUgYWx3YXlzIHB1bGxlZCBmcm9t IHRoZQorKyAgIGVudmlyb25tZW50LiAgKi8KKytzdGF0aWMgY2hhciAqZGVidWdpbmZvZF91cmxz OworIAorICNpZm5kZWYgSEFWRV9MSUJERUJVR0lORk9ECisgc2NvcGVkX2ZkCitAQCAtNDEsNiAr NTcsNjcgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIg KmJ1aWxkX2lkLAorIHsKKyAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOworIH0KKysKKysj ZGVmaW5lIE5PX0lNUEwgXygiU3VwcG9ydCBmb3IgZGVidWdpbmZvZCBpcyBub3QgY29tcGlsZWQg aW50byBHREIuIikKKysKKysvKiBTdHViIHNldC9zaG93IGNvbW1hbmRzIHRoYXQgaW5kaWNhdGUg ZGVidWdpbmZvZCBpcyBub3Qgc3VwcG9ydGVkLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3NldF9k ZWJ1Z2luZm9kX29uX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKyt7 CisrICBlcnJvciAoTk9fSU1QTCk7CisrICBkZWJ1Z2luZm9kX2VuYWJsZSA9IGRlYnVnaW5mb2Rf b2ZmOworK30KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2luZm9kX29mZl9jb21tYW5kIChj b25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisreworKyAgZXJyb3IgKE5PX0lNUEwpOwor KyAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX29mZjsKKyt9CisrCisrc3RhdGljIHZv aWQKKytzZXRfZGVidWdpbmZvZF9hc2tfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZy b21fdHR5KQorK3sKKysgIGVycm9yIChOT19JTVBMKTsKKysgIGRlYnVnaW5mb2RfZW5hYmxlID0g ZGVidWdpbmZvZF9vZmY7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hvd19kZWJ1Z2luZm9kX3N0 YXR1c19jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisreworKyAgZXJy b3IgKE5PX0lNUEwpOworK30KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2luZm9kX3VybHNf Y29tbWFuZCAoY29uc3QgY2hhciAqaWdub3JlLCBpbnQgZnJvbV90dHksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykKKyt7CisrICBlcnJv ciAoTk9fSU1QTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hvd19kZWJ1Z2luZm9kX3VybHNf Y29tbWFuZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKKysJCQkgICAgICBz dHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqY21kLCBjb25zdCBjaGFyICp2YWx1ZSkKKyt7CisrICBl cnJvciAoTk9fSU1QTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2V0X2RlYnVnaW5mb2RfdmVy Ym9zZV9jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHksCisrCQkJCXN0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICpjKQorK3sKKysgIGVycm9yIChOT19JTVBMKTsKKysgIGRlYnVn aW5mb2RfdmVyYm9zZSA9IDA7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hvd19kZWJ1Z2luZm9k X3ZlcmJvc2VfY29tbWFuZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKKysJ CQkJIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQsCisrCQkJCSBjb25zdCBjaGFyICp2YWx1 ZSkKKyt7CisrICBlcnJvciAoTk9fSU1QTCk7CisrfQorICNlbHNlCisgI2luY2x1ZGUgPGVsZnV0 aWxzL2RlYnVnaW5mb2QuaD4KKyAKK0BAIC02OCw2ICsxNDUsODIgQEAgc3RydWN0IGRlYnVnaW5m b2RfY2xpZW50X2RlbGV0ZXIKKyB1c2luZyBkZWJ1Z2luZm9kX2NsaWVudF91cAorICAgPSBzdGQ6 OnVuaXF1ZV9wdHI8ZGVidWdpbmZvZF9jbGllbnQsIGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0ZXI+ OworIAorKy8qIEVuYWJsZSBkZWJ1Z2luZm9kLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3NldF9k ZWJ1Z2luZm9kX29uX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKyt7 CisrICBkZWJ1Z2luZm9kX2VuYWJsZSA9IGRlYnVnaW5mb2Rfb247CisrfQorKworKy8qIERpc2Fi bGUgZGVidWdpbmZvZC4gICovCisrCisrc3RhdGljIHZvaWQKKytzZXRfZGVidWdpbmZvZF9vZmZf Y29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorK3sKKysgIGRlYnVnaW5m b2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrfQorKworKy8qIEJlZm9yZSBuZXh0IHF1ZXJ5 LCBhc2sgdXNlciB3aGV0aGVyIHRvIGVuYWJsZSBkZWJ1Z2luZm9kLiAgKi8KKysKKytzdGF0aWMg dm9pZAorK3NldF9kZWJ1Z2luZm9kX2Fza19jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQg ZnJvbV90dHkpCisreworKyAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX2FzazsKKyt9 CisrCisrLyogU2hvdyB3aGV0aGVyIGRlYnVnaW5mb2QgaXMgZW5hYmxlZC4gICovCisrCisrc3Rh dGljIHZvaWQKKytzaG93X2RlYnVnaW5mb2Rfc3RhdHVzX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFy Z3MsIGludCBmcm9tX3R0eSkKKyt7CisrICBwcmludGZfdW5maWx0ZXJlZCAoXygiRGVidWdpbmZv ZCBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzZXQgdG8gIiBcCisrCQkgICAgICJcIiVzXCIu XG4iKSwgZGVidWdpbmZvZF9lbmFibGUpOworK30KKysKKysvKiBTZXQgdGhlIFVSTHMgdGhhdCBk ZWJ1Z2luZm9kIHdpbGwgcXVlcnkuICAqLworKworK3N0YXRpYyB2b2lkCisrc2V0X2RlYnVnaW5m b2RfdXJsc19jb21tYW5kIChjb25zdCBjaGFyICppZ25vcmUsIGludCBmcm9tX3R0eSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorK3sK KysgIGdkYl9hc3NlcnQgKGRlYnVnaW5mb2RfdXJscyAhPSBudWxscHRyKTsKKysgIGlmIChzZXRl bnYgKCJERUJVR0lORk9EX1VSTFMiLCBkZWJ1Z2luZm9kX3VybHMsIDEpICE9IDApCisrICAgIHdh cm5pbmcgKF8oIlVuYWJsZSB0byBzZXQgZGVidWdpbmZvZCBVUkxzOiAlcyIpLCBzYWZlX3N0cmVy cm9yIChlcnJubykpOworK30KKysKKysvKiBTaG93IHRoZSBVUkxzIHRoYXQgZGVidWdpbmZvZCB3 aWxsIHF1ZXJ5LiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Nob3dfZGVidWdpbmZvZF91cmxzX2Nv bW1hbmQgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCisrCQkJICAgICAgc3Ry dWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgaWYg KHZhbHVlID09IG51bGxwdHIgfHwgdmFsdWVbMF0gPT0gJ1wwJykKKysgICAgZnByaW50Zl91bmZp bHRlcmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9kIFVSTHMgaGF2ZSBub3QgYmVlbiBzZXQuXG4iKSk7 CisrICBlbHNlCisrICAgIGZwcmludGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRlYnVnaW5mb2QgVVJM cyBhcmUgY3VycmVudGx5IHNldCB0bzpcbiVzXG4iKSwKKysJCSAgICAgIHZhbHVlKTsKKyt9Cisr CisrLyogTm8tb3Agc2V0dGVyIHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2hlbiBnZGIgaXMgYnVp bHQgd2l0aG91dCBkZWJ1Z2luZm9kLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2lu Zm9kX3ZlcmJvc2VfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5LAorKwkJ CQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykKKyt7CisrICByZXR1cm47CisrfQorKworKy8q IFNob3cgdmVyYm9zaXR5LiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Nob3dfZGVidWdpbmZvZF92 ZXJib3NlX2NvbW1hbmQgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCisrCQkJ CSBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqY21kLCBjb25zdCBjaGFyICp2YWx1ZSkKKyt7Cisr ICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9kIHZlcmJvc2Ugb3V0cHV0IGlz IHNldCB0byAlcy5cbiIpLAorKwkJICAgIHZhbHVlKTsKKyt9CisrCisgc3RhdGljIGludAorIHBy b2dyZXNzZm4gKGRlYnVnaW5mb2RfY2xpZW50ICpjLCBsb25nIGN1ciwgbG9uZyB0b3RhbCkKKyB7 CitAQCAtMTIwLDYgKzI3Myw0MiBAQCBnZXRfZGVidWdpbmZvZF9jbGllbnQgKCkKKyAgIHJldHVy biBnbG9iYWxfY2xpZW50LmdldCAoKTsKKyB9CisgCisrLyogQ2hlY2sgaWYgZGVidWdpbmZvZCBp cyBlbmFibGVkLiAgSWYgY29uZmlndXJlZCB0byBkbyBzbywgYXNrIHRoZSB1c2VyCisrICAgd2hl dGhlciB0byBlbmFibGUgZGVidWdpbmZvZC4gICovCisrCisrc3RhdGljIGJvb2wKKytkZWJ1Z2lu Zm9kX2VuYWJsZWQgKCkKKyt7CisrICBjb25zdCBjaGFyICp1cmxzID0gZ2V0ZW52IChERUJVR0lO Rk9EX1VSTFNfRU5WX1ZBUik7CisrCisrICBpZiAodXJscyA9PSBudWxscHRyIHx8IHVybHNbMF0g PT0gJ1wwJworKyAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlID09IGRlYnVnaW5mb2Rfb2ZmKQor KyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAoZGVidWdpbmZvZF9lbmFibGUgPT0gZGVidWdp bmZvZF9hc2spCisrICAgIHsKKysgICAgICBpbnQgcmVzcCA9IG5xdWVyeSAoXygiXG5UaGlzIEdE QiBzdXBwb3J0cyBhdXRvLWRvd25sb2FkaW5nIGRlYnVnaW5mbyAiIFwKKysJCQkgICAiZnJvbSB0 aGUgZm9sbG93aW5nIFVSTHM6XG4lc1xuRW5hYmxlIGRlYnVnaW5mb2QgIiBcCisrCQkJICAgImZv ciB0aGlzIHNlc3Npb24/ICIpLAorKwkJCSB1cmxzKTsKKysgICAgICBpZiAoIXJlc3ApCisrCXsK KysJICBwcmludGZfZmlsdGVyZWQgKF8oIkRlYnVnaW5mb2QgaGFzIGJlZW4gZGlzYWJsZWQuXG5U byBtYWtlIHRoaXMgIiBcCisrCQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQsIGFkZCBcJ3NldCBk ZWJ1Z2luZm9kIG9mZlwnICIgXAorKwkJCSAgICAgInRvIC5nZGJpbml0LlxuIikpOworKwkgIGRl YnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrCSAgcmV0dXJuIGZhbHNlOworKwl9 CisrCisrICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJEZWJ1Z2luZm9kIGhhcyBiZWVuIGVuYWJs ZWQuXG5UbyBtYWtlIHRoaXMgIiBcCisrCQkJICJzZXR0aW5nIHBlcm1hbmVudCwgYWRkIFwnc2V0 IGRlYnVnaW5mb2Qgb25cJyAiIFwKKysJCQkgInRvIC5nZGJpbml0LlxuIikpOworKyAgICAgIGRl YnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vbjsKKysgICAgfQorKworKyAgcmV0dXJuIHRy dWU7CisrfQorKworIC8qIFNlZSBkZWJ1Z2luZm9kLXN1cHBvcnQuaCAgKi8KKyAKKyBzY29wZWRf ZmQKK0BAIC0xMjgsOCArMzE3LDcgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCSBjb25zdCBjaGFyICpzcmNwYXRoLAorIAkJCSBn ZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCisgeworLSAgY29uc3QgY2hh ciAqdXJsc19lbnZfdmFyID0gZ2V0ZW52IChERUJVR0lORk9EX1VSTFNfRU5WX1ZBUik7CistICBp ZiAodXJsc19lbnZfdmFyID09IE5VTEwgfHwgdXJsc19lbnZfdmFyWzBdID09ICdcMCcpCisrICBp ZiAoIWRlYnVnaW5mb2RfZW5hYmxlZCAoKSkKKyAgICAgcmV0dXJuIHNjb3BlZF9mZCAoLUVOT1NZ Uyk7CisgCisgICBkZWJ1Z2luZm9kX2NsaWVudCAqYyA9IGdldF9kZWJ1Z2luZm9kX2NsaWVudCAo KTsKK0BAIC0xNDcsOCArMzM1LDcgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCQkJbnVsbHB0cikpOworICAgZGVidWdpbmZvZF9z ZXRfdXNlcl9kYXRhIChjLCBudWxscHRyKTsKKyAKKy0gIC8qIFRPRE86IEFkZCAnc2V0IGRlYnVn IGRlYnVnaW5mb2QnIGNvbW1hbmQgdG8gY29udHJvbCB3aGVuIGVycm9yIG1lc3NhZ2VzIGFyZSBz aG93bi4gICovCistICBpZiAoZmQuZ2V0ICgpIDwgMCAmJiBmZC5nZXQgKCkgIT0gLUVOT0VOVCkK KysgIGlmIChkZWJ1Z2luZm9kX3ZlcmJvc2UgPiAwICYmIGZkLmdldCAoKSA8IDAgJiYgZmQuZ2V0 ICgpICE9IC1FTk9FTlQpCisgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRG93bmxvYWQgZmFpbGVk OiAlcy4gIENvbnRpbnVpbmcgd2l0aG91dCBzb3VyY2UgZmlsZSAlcHMuXG4iKSwKKyAJCSAgICAg c2FmZV9zdHJlcnJvciAoLWZkLmdldCAoKSksCisgCQkgICAgIHN0eWxlZF9zdHJpbmcgKGZpbGVf bmFtZV9zdHlsZS5zdHlsZSAoKSwgIHNyY3BhdGgpKTsKK0BAIC0xNjcsOCArMzU0LDcgQEAgZGVi dWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAor IAkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAJCQkgICAgZ2RiOjp1bmlxdWVfeG1hbGxv Y19wdHI8Y2hhcj4gKmRlc3RuYW1lKQorIHsKKy0gIGNvbnN0IGNoYXIgKnVybHNfZW52X3ZhciA9 IGdldGVudiAoREVCVUdJTkZPRF9VUkxTX0VOVl9WQVIpOworLSAgaWYgKHVybHNfZW52X3ZhciA9 PSBOVUxMIHx8IHVybHNfZW52X3ZhclswXSA9PSAnXDAnKQorKyAgaWYgKCFkZWJ1Z2luZm9kX2Vu YWJsZWQgKCkpCisgICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOworIAorICAgZGVidWdp bmZvZF9jbGllbnQgKmMgPSBnZXRfZGVidWdpbmZvZF9jbGllbnQgKCk7CitAQCAtMTg0LDcgKzM3 MCw3IEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1bnNpZ25lZCBjaGFyICpi dWlsZF9pZCwKKyAJCQkJCSAgICZkbmFtZSkpOworICAgZGVidWdpbmZvZF9zZXRfdXNlcl9kYXRh IChjLCBudWxscHRyKTsKKyAKKy0gIGlmIChmZC5nZXQgKCkgPCAwICYmIGZkLmdldCAoKSAhPSAt RU5PRU5UKQorKyAgaWYgKGRlYnVnaW5mb2RfdmVyYm9zZSA+IDAgJiYgZmQuZ2V0ICgpIDwgMCAm JiBmZC5nZXQgKCkgIT0gLUVOT0VOVCkKKyAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJEb3dubG9h ZCBmYWlsZWQ6ICVzLiAgQ29udGludWluZyB3aXRob3V0IGRlYnVnIGluZm8gZm9yICVwcy5cbiIp LAorIAkJICAgICBzYWZlX3N0cmVycm9yICgtZmQuZ2V0ICgpKSwKKyAJCSAgICAgc3R5bGVkX3N0 cmluZyAoZmlsZV9uYW1lX3N0eWxlLnN0eWxlICgpLCAgZmlsZW5hbWUpKTsKK0BAIC0xOTUsMyAr MzgxLDYzIEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1bnNpZ25lZCBjaGFy ICpidWlsZF9pZCwKKyAgIHJldHVybiBmZDsKKyB9CisgI2VuZGlmCisrCisrLyogUmVnaXN0ZXIg ZGVidWdpbmZvZCBjb21tYW5kcy4gICovCisrCisrdm9pZCBfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9k ICgpOworK3ZvaWQKKytfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9kICgpCisreworKyAgLyogc2V0L3No b3cgZGVidWdpbmZvZCAqLworKyAgYWRkX2Jhc2ljX3ByZWZpeF9jbWQgKCJkZWJ1Z2luZm9kIiwg Y2xhc3NfcnVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNldCBkZWJ1Z2luZm9kIG9w dGlvbnMiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAmc2V0X2RlYnVnaW5mb2RfcHJlZml4 X2xpc3QsIDAsICZzZXRsaXN0KTsKKysKKysgIGFkZF9zaG93X3ByZWZpeF9jbWQgKCJkZWJ1Z2lu Zm9kIiwgY2xhc3NfcnVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgXygiU2hvdyBkZWJ1Z2lu Zm9kIG9wdGlvbnMiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICZzaG93X2RlYnVnaW5mb2Rf cHJlZml4X2xpc3QsIDAsICZzaG93bGlzdCk7CisrCisrICAvKiBzZXQgZGVidWdpbmZvZCBvbiAq LworKyAgYWRkX2NtZCAoIm9uIiwgY2xhc3NfcnVuLCBzZXRfZGVidWdpbmZvZF9vbl9jb21tYW5k LAorKwkgICBfKCJFbmFibGUgZGVidWdpbmZvZC4iKSwgJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9s aXN0KTsKKysKKysgIC8qIHNldCBkZWJ1Z2luZm9kIG9mZiAqLworKyAgYWRkX2NtZCAoIm9mZiIs IGNsYXNzX3J1biwgc2V0X2RlYnVnaW5mb2Rfb2ZmX2NvbW1hbmQsCisrCSAgIF8oIkRpc2FibGUg ZGVidWdpbmZvZC4iKSwgJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNl dCBkZWJ1Z2luZm9kIGFzayAqLworKyAgYWRkX2NtZCAoImFzayIsIGNsYXNzX3J1biwgc2V0X2Rl YnVnaW5mb2RfYXNrX2NvbW1hbmQsIF8oIlwKKytBc2sgdGhlIHVzZXIgd2hldGhlciB0byBlbmFi bGUgZGVidWdpbmZvZCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgbmV4dCBxdWVyeS4iKSwKKysJICAg JnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNob3cgZGVidWdpbmZvZCBz dGF0dXMgKi8KKysgIGFkZF9jbWQgKCJzdGF0dXMiLCBjbGFzc19ydW4sIHNob3dfZGVidWdpbmZv ZF9zdGF0dXNfY29tbWFuZCwKKysJICAgXygiU2hvdyB3aGV0aGVyIGRlYnVnaW5mb2QgaXMgc2V0 IHRvIFwib25cIiwgXCJvZmZcIiBvciBcImFza1wiLiIpLAorKwkgICAmc2hvd19kZWJ1Z2luZm9k X3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNldC9zaG93IGRlYnVnaW5mb2QgdXJscyAqLworKyAg YWRkX3NldHNob3dfc3RyaW5nX25vZXNjYXBlX2NtZCAoInVybHMiLCBjbGFzc19ydW4sICZkZWJ1 Z2luZm9kX3VybHMsIF8oIlwKKytTZXQgdGhlIGxpc3Qgb2YgZGVidWdpbmZvZCBzZXJ2ZXIgVVJM cy4iKSwgXygiXAorK1Nob3cgdGhlIGxpc3Qgb2YgZGVidWdpbmZvZCBzZXJ2ZXIgVVJMcy4iKSwg XygiXAorK01hbmFnZSB0aGUgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgZGVidWdpbmZvZCBzZXJ2 ZXIgVVJMcyB0aGF0IEdEQiB3aWxsIHF1ZXJ5IFwKKyt3aGVuIG1pc3NpbmcgZGVidWdpbmZvLCBl eGVjdXRhYmxlcyBvciBzb3VyY2UgZmlsZXMuXG5UaGUgZGVmYXVsdCB2YWx1ZSBpcyBcCisrY29w aWVkIGZyb20gdGhlIERFQlVHSU5GT0RfVVJMUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4iKSwKKysJ CQkJICAgc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kLAorKwkJCQkgICBzaG93X2RlYnVnaW5m b2RfdXJsc19jb21tYW5kLAorKwkJCQkgICAmc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QsCisr CQkJCSAgICZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworKyAgaWYgKGdldGVudiAoIkRF QlVHSU5GT0RfVVJMUyIpICE9IG51bGxwdHIpCisrICAgIGRlYnVnaW5mb2RfdXJscyA9IHhzdHJk dXAgKGdldGVudiAoIkRFQlVHSU5GT0RfVVJMUyIpKTsKKysKKysgIC8qIHNldC9zaG93IGRlYnVn aW5mb2QgdmVyYm9zZSAqLworKyAgYWRkX3NldHNob3dfenVpbnRlZ2VyX2NtZCAoInZlcmJvc2Ui LCBjbGFzc19zdXBwb3J0LAorKwkJCSAgICAgJmRlYnVnaW5mb2RfdmVyYm9zZSwgXygiXAorK1Nl dCB2ZXJib3NpdHkgb2YgZGVidWdpbmZvZCBvdXRwdXQuIiksIF8oIlwKKytTaG93IGRlYnVnaW5m b2QgZGVidWdnaW5nLiIpLCBfKCJcCisrV2hlbiBzZXQgdG8gYSBub24temVybyB2YWx1ZSwgZGlz cGxheSB2ZXJib3NlIG91dHB1dCBmb3IgZWFjaCBkZWJ1Z2luZm9kIFwKKytxdWVyeS5cblRvIGRp c2FibGUsIHNldCB0byB6ZXJvLiAgVmVyYm9zZSBvdXRwdXQgaXMgZGlzcGxheWVkIGJ5IGRlZmF1 bHQuIiksCisrCQkJICAgICBzZXRfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQsCisrCQkJICAg ICBzaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kLAorKwkJCSAgICAgJnNldF9kZWJ1Z2lu Zm9kX3ByZWZpeF9saXN0LAorKwkJCSAgICAgJnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCk7 CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvZmV0Y2hfc3Jj X2FuZF9zeW1ib2xzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvZmV0Y2hfc3Jj X2FuZF9zeW1ib2xzLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRj aF9zcmNfYW5kX3N5bWJvbHMuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kZWJ1Z2luZm9k L2ZldGNoX3NyY19hbmRfc3ltYm9scy5leHAKK0BAIC0yMTcsNyArMjE3LDggQEAgcHJvYyBsb2Nh bF91cmwgeyB9IHsKKyAgICAgc2V0ZW52IERFQlVHSU5GT0RfVVJMUyBodHRwOi8vMTI3LjAuMC4x OiRwb3J0CisgCisgICAgICMgZ2RiIHNob3VsZCBub3cgZmluZCB0aGUgc3ltYm9sIGFuZCBzb3Vy Y2UgZmlsZXMKKy0gICAgY2xlYW5fcmVzdGFydCAkYmluZmlsZQorKyAgICBjbGVhbl9yZXN0YXJ0 CisrICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiIiAiZmlsZSBbZmlsZSB0YWlsICRiaW5m aWxlXSIgIkVuYWJsZSBkZWJ1Z2luZm9kPy4qIiAieSIKKyAgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJzZXQgc3Vic3RpdHV0ZS1wYXRoICRvdXRwdXRkaXIgL2Rldi9udWxsIiBcCisgCSJzZXQgc3Vi c3RpdHV0ZS1wYXRoIgorICAgICBnZGJfdGVzdCAiYnIgbWFpbiIgIkJyZWFrcG9pbnQgMSBhdC4q ZmlsZS4qIgorQEAgLTIyNiw4ICsyMjcsMjYgQEAgcHJvYyBsb2NhbF91cmwgeyB9IHsKKyAgICAg IyBnZGIgc2hvdWxkIG5vdyBmaW5kIHRoZSBkZWJ1Z2FsdGxpbmsgZmlsZQorICAgICBjbGVhbl9y ZXN0YXJ0CisgICAgIGdkYl90ZXN0ICJmaWxlICR7YmluZmlsZX1fYWx0Lm8iIFwKKy0JIi4qUmVh ZGluZyBzeW1ib2xzIGZyb20gJHtiaW5maWxlfV9hbHQub1wuXC5cLioiIFwKKy0JImZpbGUgW2Zp bGUgdGFpbCAke2JpbmZpbGV9X2FsdC5vXSIKKysJIi4qRG93bmxvYWRpbmcuKnNlcGFyYXRlIGRl YnVnIGluZm8uKiIgXAorKwkiZmlsZSBbZmlsZSB0YWlsICR7YmluZmlsZX1fYWx0Lm9dIiBcCisr CSIuKkVuYWJsZSBkZWJ1Z2luZm9kPy4qIiAieSIKKysKKysgICAgIyBDb25maWd1cmUgZGVidWdp bmZvZCB3aXRoIGNvbW1hbmRzCisrICAgIHVuc2V0ZW52IERFQlVHSU5GT0RfVVJMUworKyAgICBj bGVhbl9yZXN0YXJ0CisrICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiLipObyBkZWJ1Z2dp bmcgc3ltYm9scy4qIiBcCisrCSJmaWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVdIGNtZCIKKysgICAg Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgZGVidWdpbmZvZCBvZmYiCisrICAgIGdkYl90ZXN0X25v X291dHB1dCAic2V0IGRlYnVnaW5mb2QgdXJscyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0IgorKwor KyAgICAjIGdkYiBzaG91bGRuJ3QgZmluZCB0aGUgZGVidWdpbmZvIHNpbmNlIGRlYnVnaW5mb2Qg aGFzIGJlZW4gZGlzYWJsZWQKKysgICAgZ2RiX3Rlc3QgImZpbGUgJGJpbmZpbGUiICIuKk5vIGRl YnVnZ2luZyBzeW1ib2xzLioiIFwKKysJImZpbGUgW2ZpbGUgdGFpbCAkYmluZmlsZV0gY21kIG9m ZiIKKysKKysgICAgIyBFbmFibGUgZGVidWdpbmZvZCBhbmQgZmV0Y2ggdGhlIGRlYnVnaW5mbwor KyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Z2luZm9kIG9uIgorKyAgICBnZGJfdGVz dCAiZmlsZSAkYmluZmlsZSIgIi4qUmVhZGluZyBzeW1ib2xzIGZyb20uKmRlYnVnaW5mby4qIiBc CisrCSJmaWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVdIGNtZCBvbiIKKyB9CisgCisgc2V0IGVudmxp c3QgXAoKZGlmZiAtLWdpdCBhL2dkYi10ZXN0LWZvci1yaGJ6MTk3Njg4Ny5wYXRjaCBiL2dkYi10 ZXN0LWZvci1yaGJ6MTk3Njg4Ny5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4zY2I3MDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRlc3QtZm9yLXJoYnoxOTc2ODg3 LnBhdGNoCkBAIC0wLDAgKzEsNTkyIEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FsZXhhbmRyYT0yMEg9QzM9QTFqa292PUMz PUExPz0gPGFoYWprb3ZhQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDI5IFNlcCAyMDIxIDExOjE0 OjUxICswMjAwCitTdWJqZWN0OiBnZGItdGVzdC1mb3ItcmhiejE5NzY4ODcucGF0Y2gKKworOzsg QmFja3BvcnQgdGVzdCBmb3IgUkhCWiAxOTc2ODg3IChLZXZpbiBCdWV0dG5lcikuCisKK1Rlc3Qg Y2FzZSByZXByb2R1Y2luZyBQUjI4MDMwIGJ1ZworCitUaGUgb3JpZ2luYWwgcmVwcm9kdWNlciBm b3IgUFIyODAzMCByZXF1aXJlZCB1c2Ugb2YgYSBzcGVjaWZpYworY29tcGlsZXIgdmVyc2lvbiAt IGdjYy1jKystMTEuMS4xLTMuZmMzNCBpcyBtZW50aW9uZWQgaW4gdGhlIFBSLAordGhvdWdoIGl0 IHNlZW1zIHByb2JhYmxlIHRoYXQgb3RoZXIgZ2NjIHZlcnNpb25zIG1pZ2h0IGFsc28gYmUgYWJs ZSB0bworcmVwcm9kdWNlIHRoZSBidWcgYXMgd2VsbC4gIFRoaXMgY29tbWl0IGludHJvZHVjZXMg YSB0ZXN0IGNhc2Ugd2hpY2gsCit1c2luZyB0aGUgRFdBUkYgYXNzZW1ibGVyLCBwcm92aWRlcyBh IHJlcHJvZHVjZXIgd2hpY2ggaXMgaW5kZXBlbmRlbnQKK29mIHRoZSBjb21waWxlciB2ZXJzaW9u LiAgKFdlbGwsIGl0J2xsIHdvcmsgd2l0aCB3aGF0ZXZlciBjb21waWxlcnMKK3RoZSBEV0FSRiBh c3NlbWJsZXIgd29ya3Mgd2l0aC4pCisKK1RvIHRoZSBiZXN0IG9mIG15IGtub3dsZWRnZSwgaXQn cyBhbHNvIHRoZSBmaXJzdCB0ZXN0IGNhc2Ugd2hpY2ggdXNlcwordGhlIERXQVJGIGFzc2VtYmxl ciB0byBwcm92aWRlIGRlYnVnIGluZm8gZm9yIGEgc2hhcmVkIG9iamVjdC4gIFRoYXQKK2JlaW5n IHRoZSBjYXNlLCBJIHByb3ZpZGVkIG1vcmUgdGhhbiB0aGUgdXN1YWwgY29tbWVudGFyeSB3aGlj aCBzaG91bGQKK2FsbG93IHRoaXMgY2FzZSB0byBiZSB1c2VkIGFzIGEgdGVtcGxhdGUgd2hlbiBh IGNvbWJvIHNoYXJlZAorbGlicmFyeSAvIERXQVJGIGFzc2VtYmxlciB0ZXN0IGNhc2UgaXMgcmVx dWlyZWQgaW4gdGhlIGZ1dHVyZS4KKworSSBwcm92aWRlIHNvbWUgZGV0YWlscyByZWdhcmRpbmcg dGhlIGJ1ZyBpbiBhIGNvbW1lbnQgbmVhciB0aGUKK2JlZ2lubmluZyBvZiBsb2NleHByLWRtbC5l eHAuCisKK1RoaXMgcHJvYmxlbSB3YXMgZGlmZmljdWx0IHRvIHJlcHJvZHVjZTsgSSBmb3VuZCBt eXNlbGYgY29uc3RhbnRseQorcmVmZXJyaW5nIHRvIHRoZSBiYWNrdHJhY2Ugd2hpbGUgdHJ5aW5n IHRvIGZpZ3VyZSBvdXQgd2hhdCAoZWxzZSkgSQorbWlnaHQgYmUgbWlzc2luZyB3aGlsZSB0cnlp bmcgdG8gY3JlYXRlIGEgcmVwcm9kdWNlci4gIEJlbG93IGlzIGEKK3BhcnRpYWwgYmFja3RyYWNl IHdoaWNoIEkgaW5jbHVkZSBmb3IgcG9zdGVyaXR5LgorCisgIzAgIGludGVybmFsX2Vycm9yICgK KyAgICBmaWxlPTB4YzUwMTEwICIvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMw L2JsZC8uLi8uLi93b3JrdHJlZS1wcjI4MDMwL2dkYi9nZGJ0eXBlcy5jIiwgbGluZT01NTc1LAor ICAgIGZtdD0weGM1MjBjMCAiVW5leHBlY3RlZCB0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQ6ICVk IikKKyAgICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8u Li93b3JrdHJlZS1wcjI4MDMwL2dkYnN1cHBvcnQvZXJyb3JzLmNjOjUxCisgIzEgIDB4MDAwMDAw MDAwMDZlZjBjNSBpbiBjb3B5X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlPTB4MTYzNTkzMCwKKyAg ICB0eXBlPTB4Mjc0YzI2MCwgY29waWVkX3R5cGVzPTB4MzBiYjI5MCkKKyAgICBhdCAvaXJvbndv b2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8uLi93b3JrdHJlZS1wcjI4MDMw L2dkYi9nZGJ0eXBlcy5jOjU1NzUKKyAjMiAgMHgwMDAwMDAwMDAwNmVmMzgyIGluIGNvcHlfdHlw ZV9yZWN1cnNpdmUgKG9iamZpbGU9MHgxNjM1OTMwLAorICAgIHR5cGU9MHgyNzRjYTEwLCBjb3Bp ZWRfdHlwZXM9MHgzMGJiMjkwKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1naXQvZjM0 LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL2dkYnR5cGVzLmM6NTYwMgor ICMzICAweDAwMDAwMDAwMDBhNzQwOWEgaW4gcHJlc2VydmVfb25lX3ZhbHVlICh2YWx1ZT0weDI0 MjY5ZjAsCisgICAgb2JqZmlsZT0weDE2MzU5MzAsIGNvcGllZF90eXBlcz0weDMwYmIyOTApCisg ICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29y a3RyZWUtcHIyODAzMC9nZGIvdmFsdWUuYzoyNTI5CisgIzQgIDB4MDAwMDAwMDAwMDcyMDEyYSBp biBnZGJzY21fcHJlc2VydmVfdmFsdWVzICgKKyAgICBleHRsYW5nPTB4YzU1NzIwIDxleHRlbnNp b25fbGFuZ3VhZ2VfZ3VpbGU+LCBvYmpmaWxlPTB4MTYzNTkzMCwKKyAgICBjb3BpZWRfdHlwZXM9 MHgzMGJiMjkwKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1naXQvZjM0LXByMjgwMzAv YmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL2d1aWxlL3NjbS12YWx1ZS5jOjk0CisgIzUg IDB4MDAwMDAwMDAwMDZhM2Y4MiBpbiBwcmVzZXJ2ZV9leHRfbGFuZ192YWx1ZXMgKG9iamZpbGU9 MHgxNjM1OTMwLAorICAgIGNvcGllZF90eXBlcz0weDMwYmIyOTApCisgICAgYXQgL2lyb253b29k MS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9n ZGIvZXh0ZW5zaW9uLmM6NTY4CisgIzYgIDB4MDAwMDAwMDAwMGE3NDI4ZCBpbiBwcmVzZXJ2ZV92 YWx1ZXMgKG9iamZpbGU9MHgxNjM1OTMwKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1n aXQvZjM0LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL3ZhbHVlLmM6MjU3 OQorICM3ICAweDAwMDAwMDAwMDA4MmQ1MTQgaW4gb2JqZmlsZTo6fm9iamZpbGUgKHRoaXM9MHgx NjM1OTMwLAorICAgIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCisgICAgYXQgL2lyb253b29k MS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9n ZGIvb2JqZmlsZXMuYzo1NDkKKyAjOCAgMHgwMDAwMDAwMDAwODMxY2M4IGluIHN0ZDo6X1NwX2Nv dW50ZWRfcHRyPG9iamZpbGUqLCAoX19nbnVfY3h4OjpfTG9ja19wb2xpY3kpMj46Ol9NX2Rpc3Bv c2UgKHRoaXM9MHgxNjU0NTgwKQorICAgIGF0IC91c3IvaW5jbHVkZS9jKysvMTEvYml0cy9zaGFy ZWRfcHRyX2Jhc2UuaDozNDgKKyAjOSAgMHgwMDAwMDAwMDAwNGU2NjE3IGluIHN0ZDo6X1NwX2Nv dW50ZWRfYmFzZTwoX19nbnVfY3h4OjpfTG9ja19wb2xpY3kpMj46Ol9NX3JlbGVhc2UgKHRoaXM9 MHgxNjU0NTgwKSBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2JpdHMvc2hhcmVkX3B0cl9iYXNlLmg6 MTY4CisgIzEwIDB4MDAwMDAwMDAwMDRlMWQyZiBpbiBzdGQ6Ol9fc2hhcmVkX2NvdW50PChfX2du dV9jeHg6Ol9Mb2NrX3BvbGljeSkyPjo6fl9fc2hhcmVkX2NvdW50ICh0aGlzPTB4MTkwYmI4OCwg X19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKKyAgICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2Jp dHMvc2hhcmVkX3B0cl9iYXNlLmg6NzA1CisgIzExIDB4MDAwMDAwMDAwMDgyZmVlZSBpbiBzdGQ6 Ol9fc2hhcmVkX3B0cjxvYmpmaWxlLCAoX19nbnVfY3h4OjpfTG9ja19wb2xpY3kpMj46On5fX3No YXJlZF9wdHIgKHRoaXM9MHgxOTBiYjgwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQorICAg IGF0IC91c3IvaW5jbHVkZS9jKysvMTEvYml0cy9zaGFyZWRfcHRyX2Jhc2UuaDoxMTU0CisgIzEy IDB4MDAwMDAwMDAwMDgyZmYwYSBpbiBzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT46On5zaGFyZWRf cHRyICgKKyAgICB0aGlzPTB4MTkwYmI4MCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKKyAg ICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2JpdHMvc2hhcmVkX3B0ci5oOjEyMgorICMxMyAweDAw MDAwMDAwMDA4NWVkN2UgaW4gX19nbnVfY3h4OjpuZXdfYWxsb2NhdG9yPHN0ZDo6X0xpc3Rfbm9k ZTxzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gPiA+OjpkZXN0cm95PHN0ZDo6c2hhcmVkX3B0cjxv YmpmaWxlPiA+ICh0aGlzPTB4MTE0YmMwMCwKKyAgICBfX3A9MHgxOTBiYjgwKSBhdCAvdXNyL2lu Y2x1ZGUvYysrLzExL2V4dC9uZXdfYWxsb2NhdG9yLmg6MTY4CisgIzE0IDB4MDAwMDAwMDAwMDg1 ZTg4ZCBpbiBzdGQ6OmFsbG9jYXRvcl90cmFpdHM8c3RkOjphbGxvY2F0b3I8c3RkOjpfTGlzdF9u b2RlPHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxlPiA+ID4gPjo6ZGVzdHJveTxzdGQ6OnNoYXJlZF9w dHI8b2JqZmlsZT4gPiAoX19hPS4uLiwKKyAgICBfX3A9MHgxOTBiYjgwKSBhdCAvdXNyL2luY2x1 ZGUvYysrLzExL2JpdHMvYWxsb2NfdHJhaXRzLmg6NTMxCisgIzE1IDB4MDAwMDAwMDAwMDg1ZTUw YyBpbiBzdGQ6Ol9fY3h4MTE6Omxpc3Q8c3RkOjpzaGFyZWRfcHRyPG9iamZpbGU+LCBzdGQ6OmFs bG9jYXRvcjxzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gPiA+OjpfTV9lcmFzZSAodGhpcz0weDEx NGJjMDAsIF9fcG9zaXRpb249CisgIHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxlPiAoZXhwaXJlZCwg d2VhayBjb3VudCAxKSA9IHtnZXQoKSA9IDB4MTYzNTkzMH0pCisgICAgYXQgL3Vzci9pbmNsdWRl L2MrKy8xMS9iaXRzL3N0bF9saXN0Lmg6MTkyNQorICMxNiAweDAwMDAwMDAwMDA4NWRmMGUgaW4g c3RkOjpfX2N4eDExOjpsaXN0PHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxlPiwgc3RkOjphbGxvY2F0 b3I8c3RkOjpzaGFyZWRfcHRyPG9iamZpbGU+ID4gPjo6ZXJhc2UgKHRoaXM9MHgxMTRiYzAwLCBf X3Bvc2l0aW9uPQorICBzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gKGV4cGlyZWQsIHdlYWsgY291 bnQgMSkgPSB7Z2V0KCkgPSAweDE2MzU5MzB9KQorICAgIGF0IC91c3IvaW5jbHVkZS9jKysvMTEv Yml0cy9saXN0LnRjYzoxNTgKKyAjMTcgMHgwMDAwMDAwMDAwODVjNzQ4IGluIHByb2dyYW1fc3Bh Y2U6OnJlbW92ZV9vYmpmaWxlICh0aGlzPTB4MTE0YmJjMCwKKyAgICBvYmpmaWxlPTB4MTYzNTkz MCkKKyAgICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8u Li93b3JrdHJlZS1wcjI4MDMwL2dkYi9wcm9nc3BhY2UuYzoyMTAKKyAjMTggMHgwMDAwMDAwMDAw ODJkM2FlIGluIG9iamZpbGU6OnVubGluayAodGhpcz0weDE2MzU5MzApCisgICAgYXQgL2lyb253 b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAz MC9nZGIvb2JqZmlsZXMuYzo0ODcKKyAjMTkgMHgwMDAwMDAwMDAwODJlNjhjIGluIG9iamZpbGVf cHVyZ2Vfc29saWJzICgpCisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIy ODAzMC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9nZGIvb2JqZmlsZXMuYzo4NzUKKyAjMjAg MHgwMDAwMDAwMDAwOTJkZDM3IGluIG5vX3NoYXJlZF9saWJyYXJpZXMgKGlnbm9yZWQ9MHgwLCBm cm9tX3R0eT0xKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1naXQvZjM0LXByMjgwMzAv YmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL3NvbGliLmM6MTIzNgorICMyMSAweDAwMDAw MDAwMDA5YTM3ZmUgaW4gdGFyZ2V0X3ByZV9pbmZlcmlvciAoZnJvbV90dHk9MSkKKyAgICBhdCAv aXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8uLi93b3JrdHJlZS1w cjI4MDMwL2dkYi90YXJnZXQuYzoyNDk2CisgIzIyIDB4MDAwMDAwMDAwMDc0NTRkNiBpbiBydW5f Y29tbWFuZF8xIChhcmdzPTB4MCwgZnJvbV90dHk9MSwKKyAgICBydW5faG93PVJVTl9OT1JNQUwp CisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4v d29ya3RyZWUtcHIyODAzMC9nZGIvaW5mY21kLmM6NDM3CisKK0knbGwgbm90ZSBhIGZldyBwb2lu dHMgcmVnYXJkaW5nIHRoaXMgYmFja3RyYWNlOgorCitGcmFtZSAjMSBpcyB3aGVyZSB0aGUgaW50 ZXJuYWwgZXJyb3Igb2NjdXJzLiAgSXQncyBjYXVzZWQgYnkgYW4KK3VuaGFuZGxlZCBjYXNlIGZv ciBGSUVMRF9MT0NfS0lORF9EV0FSRl9CTE9DSy4gIFRoZSBmaXggZm9yIHRoaXMgYnVnCithZGRz IHN1cHBvcnQgZm9yIHRoaXMgY2FzZS4KKworRnJhbWUgIzIyIC0gaXQncyBhIHBhcnRpYWwgYmFj a3RyYWNlIC0gc2hvd3MgdGhhdCBHREIgaXMgYXR0ZW1wdGluZyB0bworKHJlKXJ1biB0aGUgcHJv Z3JhbS4gIFlvdSBjYW4gc2VlIHRoZSBleGFjdCBjb21tYW5kIHNlcXVlbmNlIHRoYXQgd2FzCit1 c2VkIGZvciByZXByb2R1Y2luZyB0aGlzIHByb2JsZW0gaW4gdGhlIFBSIChhdAoraHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjgwMzApLCBidXQgaW4gYQor bnV0c2hlbGwsIGFmdGVyIHN0YXJ0aW5nIHRoZSBwcm9ncmFtIGFuZCBhZHZhbmNpbmcgdG8gdGhl IGFwcHJvcHJpYXRlCitzb3VyY2UgbGluZSwgR0RCIHdhcyBhc2tlZCB0byBzdGVwIGludG8gbGli c3RkYysrOyBhICJmaW5pc2giIGNvbW1hbmQKK3dhcyBpc3N1ZWQsIHJldHVybmluZyBhIHZhbHVl LiAgVGhlIGZhY3QgdGhhdCBhIHZhbHVlIHdhcyByZXR1cm5lZCBpcwordmVyeSBpbXBvcnRhbnQu ICBHREIgd2FzIHRoZW4gdXNlZCB0byBzdGVwIGJhY2sgaW50byBsaWJzdGRjKysuICBBCiticmVh a3BvaW50IHdhcyBzZXQgb24gYSBzb3VyY2UgbGluZSBpbiB0aGUgbGlicmFyeSBhZnRlciB3aGlj aCBhICJydW4iCitjb21tYW5kIHdhcyBpc3N1ZWQuCisKK0ZyYW1lICMxOSBzaG93cyBhIGNhbGwg dG8gb2JqZmlsZV9wdXJnZV9zb2xpYnMuICBJdCdzIGFwdGx5IG5hbWVkLgorCitGcmFtZSAjNyBp cyBhIGNhbGwgdG8gdGhlIGRlc3RydWN0b3IgZm9yIG9uZSBvZiB0aGUgb2JqZmlsZSBzb2xpYnM7 IGl0Cit0dXJuZWQgb3V0IHRvIGJlIHRoZSBvbmUgZm9yIGxpYnN0ZGMrKy4KKworRnJhbWVzICM2 IHRocnUgIzMgc2hvdyB2YXJpb3VzIHZhbHVlIHByZXNlcnZhdGlvbiBmcmFtZXMuICBJZiB5b3Ug bG9vaworYXQgcHJlc2VydmVfdmFsdWVzKCkgaW4gZ2RiL3ZhbHVlLmMsIHRoZSB2YWx1ZSBoaXN0 b3J5IGlzIHByZXNlcnZlZAorZmlyc3QsIGZvbGxvd2VkIGJ5IGludGVybmFsIHZhcmlhYmxlcywg Zm9sbG93ZWQgYnkgdmFsdWVzIGZvciB0aGUKK2V4dGVuc2lvbiBsYW5ndWFnZXMgKHB5dGhvbiBh bmQgZ3VpbGUpLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2xvY2V4 cHItZGF0YS1tZW1iZXItbG9jYXRpb24tbGliLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv bG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi1saWIuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9sb2NleHByLWRh dGEtbWVtYmVyLWxvY2F0aW9uLWxpYi5jCitAQCAtMCwwICsxLDQ4IEBACisrLyogQ29weXJpZ2h0 IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrI2luY2x1ZGUgImxvY2V4cHItZGF0YS1tZW1iZXItbG9jYXRpb24uaCIKKysK KytzdHJ1Y3QgQSBnX0EgPSB7MywgNH07Cisrc3RydWN0IEIgZ19CID0geyB7OCwgOX0sIDEwLCAx MSB9OworKworK0IgKgorK2ZvbyAoKQorK3sJCQkJCQkvKiBmb28gcHJvbG9ndWUgKi8KKysgIGFz bSAoImZvb19sYWJlbDogLmdsb2JsIGZvb19sYWJlbCIpOworKyAgcmV0dXJuICZnX0I7CQkJCQkv KiBmb28gcmV0dXJuICovCisrfQkJCQkJCS8qIGZvbyBlbmQgKi8KKysKKytCICoKKytiYXIgKEIg KnYpCisrewkJCQkJCS8qIGJhciBwcm9sb2d1ZSAqLworKyAgYXNtICgiYmFyX2xhYmVsOiAuZ2xv YmwgYmFyX2xhYmVsIik7CisrICByZXR1cm4gdjsJCQkJCS8qIGJhciByZXR1cm4gKi8KKyt9CQkJ CQkJLyogYmFyIGVuZCAqLworKworKy8qIFNvbWUgb2YgdGhlIERXQVJGIGFzc2VtYmxlciBwcm9j cyAoZS5nLiBmdW5jdGlvbl9yYW5nZSkgY29tcGlsZQorKyAgIHRoaXMgZmlsZSwgZXhwZWN0aW5n IGl0IHRvIGJlIGEgY29tcGxldGUgcHJvZ3JhbSB3aXRoIGEgbWFpbigpCisrICAgZnVuY3Rpb24u ICBXaGVuIElTX1NIQVJFRExJQiBpcyBOT1QgZGVmaW5lZCwgd2UgaGF2ZSBtYWluKCkgYXMKKysg ICBkZWZpbmVkIGJlbG93LiAgKi8KKysKKysjaWZuZGVmIElTX1NIQVJFRExJQgorK2ludAorK21h aW4gKCkKKyt7CisrICBCICpiID0gZm9vICgpOworK30KKysjZW5kaWYKK2RpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi1tYWlu LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlv bi1tYWluLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi1tYWluLmMK K0BAIC0wLDAgKzEsMjcgQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMjEgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAg IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSAibG9j ZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi5oIgorKworK2ludAorK21haW4gKHZvaWQpCisrewor KyAgQiAqdjE7CisrICB2MSA9IGJhciAoZm9vICgpKTsKKysKKysgIHJldHVybiAwOworK30KK2Rp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1s b2NhdGlvbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJl ci1sb2NhdGlvbi5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi5l eHAKK0BAIC0wLDAgKzEsMzQ5IEBACisrIyBDb3B5cmlnaHQgMjAyMSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBU aGlzIHRlc3QgY2FzZSB1c2VzIHRoZSBEV0FSRiBhc3NlbWJsZXIgdG8gcmVwcm9kdWNlIHRoZSBw cm9ibGVtCisrIyBkZXNjcmliZWQgYnkgUFIyODAzMC4gIFRoZSBidWcgdHVybmVkIG91dCB0byBi ZSB0aGF0CisrIyBGSUVMRF9MT0NfS0lORF9EV0FSRl9CTE9DSyB3YXMgbm90IGhhbmRsZWQgd2hl biByZWN1cnNpdmVseSBjb3B5aW5nCisrIyBhIHZhbHVlJ3MgdHlwZSB3aGVuIHByZXNlcnZpbmcg dGhlIHZhbHVlIGhpc3RvcnkgZHVyaW5nIHRoZSBmcmVlaW5nCisrIyB1cCBvZiBvYmpmaWxlcyBh c3NvY2lhdGVkIHdpdGggYSBzaGFyZWQgb2JqZWN0LiAgKFllcywgZmlndXJpbmcgb3V0CisrIyBo b3cgdG8gbWFrZSB0aGlzIGhhcHBlbiBpbiBhIGNvbmNpc2UgdGVzdCBjYXNlIHR1cm5lZCBvdXQg dG8gYmUKKysjIGNoYWxsZW5naW5nLikKKysjCisrIyBUaGUgZm9sbG93aW5nIGVsZW1lbnRzIHBy b3ZlZCB0byBiZSBuZWNlc3NhcnkgZm9yIHJlcHJvZHVjaW5nIHRoZQorKyMgcHJvYmxlbToKKysj CisrIyAxKSBBIGxvY2F0aW9uIGV4cHJlc3Npb24gbmVlZGVkIHRvIGJlIHVzZWQgd2l0aAorKyMg ICAgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gcmF0aGVyIHRoYW4gYSBzaW1wbGUgb2Zmc2V0 LgorKyMgICAgTW9yZW92ZXIsIHRoaXMgbG9jYXRpb24gZXhwcmVzc2lvbiBuZWVkZWQgdG8gdXNl IG9wY29kZXMKKysjICAgIHdoaWNoIEdEQidzIERXQVJGIHJlYWRlciBjb3VsZCBub3QgY29udmVy dCB0byBhIHNpbXBsZQorKyMgICAgb2Zmc2V0LiAgKE5vdGUsIGhvd2V2ZXIsIHRoYXQgR0RCIGNv dWxkIHByb2JhYmx5IGJlIGltcHJvdmVkCisrIyAgICB0byBoYW5kbGUgdGhlIG9wY29kZXMgY2hv c2VuIGZvciB0aGlzIHRlc3Q7IGlmIGRlY29kZV9sb2NkZXNjKCkKKysjICAgIGluIGR3YXJmMi9y ZWFkLmMgaXMgZXZlciB1cGRhdGVkIHRvIGhhbmRsZSBib3RoIERXX09QX3BpY2sgYW5kCisrIyAg ICBEV19PUF9kcm9wLCB0aGVuIHRoaXMgdGVzdCBjb3VsZCBlbmQgdXAgcGFzc2luZyBldmVuIGlm CisrIyAgICB0aGUgYnVnIGl0J3MgaW50ZW5kZWQgdG8gdGVzdCBoYXMgbm90IGJlZW4gZml4ZWQu KQorKyMKKysjIDIpIFRoZSBkZWJ1ZyBpbmZvIGNvbnRhaW5pbmcgdGhlIGFib3ZlIERXQVJGIGlu Zm8gbmVlZGVkCisrIyAgICB0byBiZSBhc3NvY2lhdGVkIHdpdGggYSBzaGFyZWQgb2JqZWN0IHNp bmNlIHRoZSBwcm9ibGVtCisrIyAgICBvY2N1cnJlZCB3aGlsZSBHREIgd2FzIHByZXNlcnZpbmcg dmFsdWVzIGR1cmluZyB0aGUKKysjICAgIHB1cmdpbmcgb2Ygc2hhcmVkIG9iamVjdHMuCisrIwor KyMgMykgQWZ0ZXIgcGVyZm9ybWluZyBzb21lIHNpbXBsZSBnZGIgY29tbWFuZHMsIHRoZSBwcm9n cmFtIGlzCisrIyAgICBydW4gYWdhaW4uICBJbiB0aGUgY291cnNlIG9mIHJ1bm5pbmcgdGhlIG9i amZpbGUgZGVzdHJ1Y3RvcgorKyMgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBzaGFyZWQgb2JqZWN0 LCB2YWx1ZXMgYXJlIHByZXNlcnZlZAorKyMgICAgYWxvbmcgd2l0aCB0aGVpciB0eXBlcy4gIEFz IG5vdGVkIGVhcmxpZXIsIGl0IHdhcyBkdXJpbmcKKysjICAgIHRoZSByZWN1cnNpdmUgdHlwZSBj b3B5IHRoYXQgdGhlIGJ1ZyB3YXMgb2JzZXJ2ZWQuCisrIworKyMgVGhlcmVmb3JlLCBkdWUgdG8g IzIgYWJvdmUsIHRoaXMgdGVzdCBjYXNlIGNyZWF0ZXMgZGVidWcgaW5mbworKyMgd2hpY2ggaXMg dGhlbiB1c2VkIGJ5IGEgc2hhcmVkIG9iamVjdC4KKysKKysjIFRoaXMgdGVzdCBjYW4ndCBiZSBy dW4gb24gdGFyZ2V0cyBsYWNraW5nIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuCisraWYgW3NraXBf c2hsaWJfdGVzdHNdIHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrbG9hZF9saWIgZHdhcmYuZXhw CisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMgd2hpY2ggc3VwcG9y dCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorK2lmICFbZHdhcmYyX3N1cHBvcnRdIHsKKysgICAgcmV0 dXJuIDAKKyt9CisrCisrIyBnZGJfdGVzdF9maWxlX25hbWUgaXMgdGhlIG5hbWUgb2YgdGhpcyBm aWxlIHdpdGhvdXQgdGhlIC5leHAKKysjIGV4dGVuc2lvbi4gIFVzZSBpdCB0byBmb3JtIGJhc2Vu YW1lcyBmb3IgdGhlIG1haW4gcHJvZ3JhbQorKyMgYW5kIHNoYXJlZCBvYmplY3QuCisrc2V0IG1h aW5fYmFzZW5hbWUgJHs6OmdkYl90ZXN0X2ZpbGVfbmFtZX0tbWFpbgorK3NldCBsaWJfYmFzZW5h bWUgJHs6OmdkYl90ZXN0X2ZpbGVfbmFtZX0tbGliCisrCisrIyBXZSdyZSBnZW5lcmF0aW5nIERX QVJGIGFzc2VtYmx5IGZvciB0aGUgc2hhcmVkIG9iamVjdDsgdGhlcmVmb3JlLAorKyMgdGhlIHNv dXJjZSBmaWxlIGZvciB0aGUgbGlicmFyeSAvIHNoYXJlZCBvYmplY3QgbXVzdCBiZSBsaXN0ZWQg Zmlyc3QKKysjIChpbiB0aGUgc3RhbmRhcmRfdGVzdGZpbGUgaW52b2NhdGlvbikgc2luY2UgJHtz cmNmaWxlfSBpcyB1c2VkIGJ5CisrIyBnZXRfZnVuY19pbmZvIChmb3IgZGV0ZXJtaW5pbmcgdGhl IHN0YXJ0LCBlbmQsIGFuZCBsZW5ndGggb2YgYQorKyMgZnVuY3Rpb24pLgorKyMKKysjIFRoZSBv dXRwdXQgb2YgRHdhcmY6OmFzc2VtYmxlIHdpbGwgYmUgcGxhY2VkIGluICRsaWJfYmFzZW5hbWUu UworKyMgd2hpY2ggd2lsbCBiZSAke3NyY2ZpbGUzfSBhZnRlciB0aGUgZXhlY3V0aW9uIG9mIHN0 YW5kYXJkX3Rlc3RmaWxlLgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICRsaWJfYmFzZW5hbWUuYyAk bWFpbl9iYXNlbmFtZS5jICRsaWJfYmFzZW5hbWUuUworKworK3NldCBsaWJzcmMgIiR7OjpzcmNk aXJ9LyR7OjpzdWJkaXJ9LyR7OjpzcmNmaWxlfSIKKytzZXQgbGliX3NvIFtzdGFuZGFyZF9vdXRw dXRfZmlsZSAke2xpYl9iYXNlbmFtZX0uc29dCisrc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRw dXRfZmlsZSAkezo6c3JjZmlsZTN9XQorKworKyMgV2UgbmVlZCB0byBrbm93IHRoZSBzaXplIG9m IHNvbWUgdHlwZXMgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBvZiB0aGUKKysjIGRlYnVnZ2luZyBp bmZvIHRoYXQgd2UncmUgYWJvdXQgdG8gZ2VuZXJhdGUuICBGb3IgdGhhdCwgd2UgYXNrIEdEQgor KyMgYnkgZGVidWdnaW5nIHRoZSBzaGFyZWQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRl c3QgY2FzZS4KKysKKysjIENvbXBpbGUgdGhlIHNoYXJlZCBsaWJyYXJ5OiAtRElTX1NIQVJFRExJ QiBwcmV2ZW50cyBtYWluKCkgZnJvbQorKyMgYmVpbmcgZGVmaW5lZC4gIE5vdGUgdGhhdCBkZWJ1 Z2dpbmcgc3ltYm9scyB3aWxsIGJlIHByZXNlbnQgZm9yCisrIyB0aGlzIGNvbXBpbGF0aW9uLgor K2lmIHtbZ2RiX2NvbXBpbGVfc2hsaWIgJGxpYnNyYyAkbGliX3NvIFwKKysgICAgICAgICAgICAg ICAgICAgICAgIHthZGRpdGlvbmFsX2ZsYWdzPS1ESVNfU0hBUkVETElCIGRlYnVnfV0gIT0gIiJ9 IHsKKysgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBjb21waWxlIHNoYXJlZCBsaWJyYXJ5IgorKyAg ICByZXR1cm4KKyt9CisrCisrIyBTdGFydCBhIGZyZXNoIEdEQiBhbmQgbG9hZCB0aGUgc2hhcmVk IGxpYnJhcnkuCisrY2xlYW5fcmVzdGFydCAkbGliX3NvCisrCisrIyBVc2luZyBvdXIgcnVubmlu ZyBHREIgc2Vzc2lvbiwgZGV0ZXJtaW5lIHNpemVzIG9mIHNldmVyYWwgdHlwZXMuCisrc2V0IGxv bmdfc2l6ZSBbZ2V0X3NpemVvZiAibG9uZyIgLTFdCisrc2V0IGFkZHJfc2l6ZSBbZ2V0X3NpemVv ZiAidm9pZCAqIiAtMV0KKytzZXQgc3RydWN0X0Ffc2l6ZSBbZ2V0X3NpemVvZiAiZ19BIiAtMV0K KytzZXQgc3RydWN0X0Jfc2l6ZSBbZ2V0X3NpemVvZiAiZ19CIiAtMV0KKysKKytpZiB7ICRsb25n X3NpemUgPT0gLTEgfHwgJGFkZHJfc2l6ZSA9PSAtMSBcCisrICAgICB8fCAkc3RydWN0X0Ffc2l6 ZSA9PSAtMSB8fCAkc3RydWN0X0Jfc2l6ZSA9PSAtMX0geworKyAgICBwZXJyb3IgIkNhbid0IGRl dGVybWluZSB0eXBlIHNpemVzIgorKyAgICByZXR1cm4KKyt9CisrCisrIyBSZXRyaWV2ZSBzdHJ1 Y3Qgb2Zmc2V0IG9mIE1CUiBpbiBzdHJ1Y3QgVFAKKytwcm9jIGdldF9vZmZzZXRvZiB7IHRwIG1i ciB9IHsKKysgICAgcmV0dXJuIFtnZXRfaW50ZWdlcl92YWx1ZW9mICImKCgke3RwfSAqKSAwKS0+ JHttYnJ9IiAtMV0KKyt9CisrCisrIyBVc2UgcnVubmluZyBHREIgc2Vzc2lvbiB0byBnZXQgc3Ry dWN0IG9mZnNldHMKKytzZXQgQV9hIFtnZXRfb2Zmc2V0b2YgQSBhXQorK3NldCBBX3ggW2dldF9v ZmZzZXRvZiBBIHhdCisrc2V0IEJfYSBbZ2V0X29mZnNldG9mIEIgYV0KKytzZXQgQl9iIFtnZXRf b2Zmc2V0b2YgQiBiXQorK3NldCBCX3gyIFtnZXRfb2Zmc2V0b2YgQiB4Ml0KKysKKysjIENyZWF0 ZSB0aGUgRFdBUkYuCisrRHdhcmY6OmFzc2VtYmxlICR7YXNtX2ZpbGV9IHsKKysgICAgZGVjbGFy ZV9sYWJlbHMgTAorKworKyAgICAjIEZpbmQgc3RhcnQsIGVuZCwgYW5kIGxlbmd0aCBvZiBmdW5j dGlvbnMgZm9vIGFuZCBiYXIuCisrICAgICMgVGhlc2UgY2FsbHMgdG8gZ2V0X2Z1bmNfaW5mbyB3 aWxsIGNyZWF0ZSBhbmQgc2V0IHZhcmlhYmxlcworKyAgICAjIGZvb19zdGFydCwgYmFyX3N0YXJ0 LCBmb29fZW5kLCBiYXJfZW5kLCBmb29fbGVuLCBhbmQKKysgICAgIyBiYXJfbGVuLgorKyAgICAj CisrICAgICMgSW4gb3JkZXIgdG8gZ2V0IHRoZSByaWdodCBhbnN3ZXJzLCBnZXRfZnVuY19pbmZv IChhbmQsCisrICAgICMgdW5kZXJuZWF0aCwgZnVuY3Rpb25fcmFuZ2UpIHNob3VsZCB1c2UgdGhl IHNhbWUgY29tcGlsZXIgZmxhZ3MKKysgICAgIyBhcyB0aG9zZSB1c2VkIHRvIG1ha2UgYSBzaGFy ZWQgb2JqZWN0LiAgRm9yIGFueSB0YXJnZXRzIHRoYXQgZ2V0CisrICAgICMgdGhpcyBmYXIsIC1m cGljIGlzIHByb2JhYmx5IGNvcnJlY3QuCisrICAgICMKKysgICAgIyBBbHNvLCBpdCBzaG91bGQg YmUgbm90ZWQgdGhhdCBJU19TSEFSRURMSUIgaXMgTk9UIGRlZmluZWQgYXMgb25lCisrICAgICMg b2YgdGhlIGFkZGl0aW9uYWwgZmxhZ3MuICBOb3QgZGVmaW5pbmcgSVNfU0hBUkVETElCIHdpbGwg Y2F1c2UgYQorKyAgICAjIG1haW4oKSB0byBiZSBkZWZpbmVkIGZvciB0aGUgY29tcGlsYXRpb24g b2YgdGhlIHNoYXJlZCBsaWJyYXJ5CisrICAgICMgc291cmNlIGZpbGUgd2hpY2ggaGFwcGVucyBh cyBhIHJlc3VsdCBvZiB1c2luZyBnZXRfZnVuY19pbmZvOworKyAgICAjIHRoaXMgaXMgY3VycmVu dGx5IHJlcXVpcmVkIGluIG9yZGVyIHRvIHRoaXMgZmFjaWxpdHkuCisrICAgIHNldCBmbGFncyB7 YWRkaXRpb25hbF9mbGFncz0tZnBpYyBkZWJ1Z30KKysgICAgZ2V0X2Z1bmNfaW5mbyBmb28gJGZs YWdzCisrICAgIGdldF9mdW5jX2luZm8gYmFyICRmbGFncworKworKyAgICBjdSB7fSB7CisrCURX X1RBR19jb21waWxlX3VuaXQgeworKwkgICAge0RXX0FUX2xhbmd1YWdlIEBEV19MQU5HX0NfcGx1 c19wbHVzfQorKwkgICAge25hbWUgJHs6OnNyY2ZpbGV9fQorKwkgICAge3N0bXRfbGlzdCAkTCBE V19GT1JNX3NlY19vZmZzZXR9CisrICAgICAgICB9IHsKKysJICAgIGRlY2xhcmVfbGFiZWxzIGlu dF9sYWJlbCBjbGFzc19BX2xhYmVsIGNsYXNzX0JfbGFiZWwgXAorKwkgICAgICAgICAgICAgICAg ICAgQl9wdHJfbGFiZWwKKysKKysJICAgIGludF9sYWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7Cisr CQl7RFdfQVRfYnl0ZV9zaXplICR7Ojpsb25nX3NpemV9IERXX0ZPUk1fdWRhdGF9CisrCQl7RFdf QVRfZW5jb2RpbmcgQERXX0FURV9zaWduZWR9CisrCQl7RFdfQVRfbmFtZSAiaW50In0KKysJICAg IH0KKysKKysJICAgIGNsYXNzX0FfbGFiZWw6IERXX1RBR19jbGFzc190eXBlIHsKKysJCXtEV19B VF9uYW1lICJBIn0KKysJCXtEV19BVF9ieXRlX3NpemUgJHs6OnN0cnVjdF9BX3NpemV9IERXX0ZP Uk1fc2RhdGF9CisrCSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9u YW1lICJhIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JGludF9sYWJlbH0KKysJCSAgICB7RFdfQVRf ZGF0YV9tZW1iZXJfbG9jYXRpb24gJHs6OkFfYX0gRFdfRk9STV91ZGF0YX0KKysJCX0KKysJCURX X1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJ4In0KKysJCSAgICB7RFdfQVRfdHlw ZSA6JGludF9sYWJlbH0KKysJCSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gJHs6OkFf eH0gRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysKKysJICAgIGNsYXNzX0JfbGFiZWw6 IERXX1RBR19jbGFzc190eXBlIHsKKysJCXtEV19BVF9uYW1lICJCIn0KKysJCXtEV19BVF9ieXRl X3NpemUgJHs6OnN0cnVjdF9CX3NpemV9IERXX0ZPUk1fc2RhdGF9CisrCSAgICB9IHsKKysJCSMg V2hpbGUgdGhlcmUgYXJlIGVhc2llciAvIGJldHRlciB3YXlzIHRvIHNwZWNpZnkgYW4KKysJCSMg b2Zmc2V0IHVzZWQgYnkgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gdGhhbiB0aGF0CisrCQkj IHVzZWQgYmVsb3csIHdlIG5lZWQgYSBsb2NhdGlvbiBleHByZXNzaW9uIGhlcmUgaW4KKysJCSMg b3JkZXIgdG8gcmVwcm9kdWNlIHRoZSBidWcuICBNb3Jlb3ZlciwgdGhpcyBsb2NhdGlvbgorKwkJ IyBleHByZXNzaW9uIG5lZWRzIHRvIHVzZSBvcGNvZGVzIHRoYXQgYXJlbid0IGhhbmRsZWQKKysJ CSMgYnkgZGVjb2RlX2xvY2Rlc2MoKSBpbiBkd2FyZjIvcmVhZC5jOyBpZiB3ZSB1c2UKKysJCSMg b3Bjb2RlcyB0aGF0IF9hcmVfIGhhbmRsZWQgYnkgdGhhdCBmdW5jdGlvbiwgdGhlCisrCQkjIGxv Y2F0aW9uIGV4cHJlc3Npb24gd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhIHNpbXBsZQorKwkJIyBv ZmZzZXQgLSB3aGljaCB3aWxsIHRoZW4gKGFnYWluKSBub3QgcmVwcm9kdWNlIHRoZQorKwkJIyBi dWcuICBBdCB0aGUgdGltZSB0aGF0IHRoaXMgdGVzdCB3YXMgd3JpdHRlbiwKKysJCSMgbmVpdGhl ciBEV19PUF9waWNrIG5vciBEV19PUF9kcm9wIHdlcmUgYmVpbmcgaGFuZGxlZAorKwkJIyBieSBk ZWNvZGVfbG9jZGVzYygpOyB0aGlzIGlzIHdoeSB0aG9zZSBvcGNvZGVzIHdlcmUKKysJCSMgY2hv c2VuLgorKwkJRFdfVEFHX2luaGVyaXRhbmNlIHsKKysJCSAgICB7RFdfQVRfdHlwZSA6JGNsYXNz X0FfbGFiZWx9CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uIHsKKysJCQlEV19P UF9jb25zdHUgJHs6OkJfYX0KKysJCQlEV19PUF9wbHVzCisrCQkJRFdfT1BfcGljayAwCisrCQkJ RFdfT1BfZHJvcH0gU1BFQ0lBTF9leHByfQorKwkJICAgIHtEV19BVF9hY2Nlc3NpYmlsaXR5IDEg RFdfRk9STV9kYXRhMX0KKysJCX0KKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9u YW1lICJiIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JGludF9sYWJlbH0KKysJCSAgICB7RFdfQVRf ZGF0YV9tZW1iZXJfbG9jYXRpb24gJHs6OkJfYn0gRFdfRk9STV91ZGF0YX0KKysJCX0KKysJCURX X1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJ4MiJ9CisrCQkgICAge0RXX0FUX3R5 cGUgOiRpbnRfbGFiZWx9CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uICR7OjpC X3gyfSBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkgICAgfQorKworKwkgICAgQl9wdHJfbGFiZWw6 IERXX1RBR19wb2ludGVyX3R5cGUgeworKwkJe0RXX0FUX3R5cGUgOiRjbGFzc19CX2xhYmVsfQor KwkJe0RXX0FUX2J5dGVfc2l6ZSAkezo6YWRkcl9zaXplfSBEV19GT1JNX3NkYXRhfQorKwkgICAg fQorKworKwkgICAgRFdfVEFHX3ZhcmlhYmxlIHsKKysJCXtEV19BVF9uYW1lICJnX0EifQorKwkJ e0RXX0FUX3R5cGUgOiRjbGFzc19BX2xhYmVsfQorKwkJe0RXX0FUX2V4dGVybmFsIDEgZmxhZ30K KysJCXtEV19BVF9sb2NhdGlvbiB7RFdfT1BfYWRkciBbZ2RiX3RhcmdldF9zeW1ib2wgImdfQSJd fSBcCisrCQkgICAgICAgICAgICAgICAgIFNQRUNJQUxfZXhwcn0KKysJICAgIH0KKysKKysJICAg IERXX1RBR192YXJpYWJsZSB7CisrCQl7RFdfQVRfbmFtZSAiZ19CIn0KKysJCXtEV19BVF90eXBl IDokY2xhc3NfQl9sYWJlbH0KKysJCXtEV19BVF9leHRlcm5hbCAxIGZsYWd9CisrCQl7RFdfQVRf bG9jYXRpb24ge0RXX09QX2FkZHIgW2dkYl90YXJnZXRfc3ltYm9sICJnX0IiXX0gXAorKwkJICAg ICAgICAgICAgICAgICBTUEVDSUFMX2V4cHJ9CisrCSAgICB9CisrCisrCSAgICAjIFdlIGNhbid0 IHVzZSBNQUNST19BVCBmb3IgdGhlIGRlZmluaXRpb25zIG9mIGZvbyBhbmQgYmFyCisrCSAgICAj IGJlY2F1c2UgaXQgZG9lc24ndCBwcm92aWRlIGEgd2F5IHRvIHBhc3MgdGhlIGFwcHJvcHJpYXRl CisrCSAgICAjIGZsYWdzLiAgVGhlcmVmb3JlLCB3ZSBsaXN0IHRoZSBuYW1lLCBsb3dfcGMsIGFu ZCBoaWdoX3BjCisrCSAgICAjIGV4cGxpY2l0bHkuCisrCSAgICBEV19UQUdfc3VicHJvZ3JhbSB7 CisrCQl7RFdfQVRfbmFtZSBmb299CisrCQl7RFdfQVRfbG93X3BjICRmb29fc3RhcnQgRFdfRk9S TV9hZGRyfQorKwkJe0RXX0FUX2hpZ2hfcGMgJGZvb19lbmQgRFdfRk9STV9hZGRyfQorKwkJe0RX X0FUX3R5cGUgOiR7Ql9wdHJfbGFiZWx9fQorKwkJe0RXX0FUX2V4dGVybmFsIDEgZmxhZ30KKysJ ICAgIH0KKysKKysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtEV19BVF9uYW1lIGJhcn0K KysJCXtEV19BVF9sb3dfcGMgJGJhcl9zdGFydCBEV19GT1JNX2FkZHJ9CisrCQl7RFdfQVRfaGln aF9wYyAkYmFyX2VuZCBEV19GT1JNX2FkZHJ9CisrCQl7RFdfQVRfdHlwZSA6JHtCX3B0cl9sYWJl bH19CisrCQl7RFdfQVRfZXh0ZXJuYWwgMSBmbGFnfQorKwkgICAgfSB7CisrCQlEV19UQUdfZm9y bWFsX3BhcmFtZXRlciB7CisrCQkgICAge0RXX0FUX25hbWUgdn0KKysJCSAgICB7RFdfQVRfdHlw ZSA6JHtCX3B0cl9sYWJlbH19CisrCQl9CisrCSAgICB9CisrCX0KKysgICAgfQorKworKyAgICBs aW5lcyB7dmVyc2lvbiAyfSBMIHsKKysJaW5jbHVkZV9kaXIgIiR7OjpzcmNkaXJ9LyR7OjpzdWJk aXJ9IgorKwlmaWxlX25hbWUgIiR7OjpzcmNmaWxlfSIgMQorKworKwkjIEdlbmVyYXRlIGEgbGlu ZSB0YWJsZSBwcm9ncmFtLgorKwlwcm9ncmFtIHsKKysJICAgIHtEV19MTkVfc2V0X2FkZHJlc3Mg JGZvb19zdGFydH0KKysJICAgIHtsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmb28gcHJvbG9n dWUiXX0KKysJICAgIHtEV19MTlNfY29weX0KKysJICAgIHtEV19MTkVfc2V0X2FkZHJlc3MgZm9v X2xhYmVsfQorKwkgICAge2xpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImZvbyByZXR1cm4iXX0K KysJICAgIHtEV19MTlNfY29weX0KKysJICAgIHtsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJm b28gZW5kIl19CisrCSAgICB7RFdfTE5TX2NvcHl9CisrCSAgICB7RFdfTE5FX3NldF9hZGRyZXNz ICRmb29fZW5kfQorKwkgICAge0RXX0xOU19hZHZhbmNlX2xpbmUgMX0KKysJICAgIHtEV19MTlNf Y29weX0KKysJICAgIHtEV19MTkVfZW5kX3NlcXVlbmNlfQorKworKwkgICAge0RXX0xORV9zZXRf YWRkcmVzcyAkYmFyX3N0YXJ0fQorKwkgICAge2xpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImJh ciBwcm9sb2d1ZSJdfQorKwkgICAge0RXX0xOU19jb3B5fQorKwkgICAge0RXX0xORV9zZXRfYWRk cmVzcyBiYXJfbGFiZWx9CisrCSAgICB7bGluZSBbZ2RiX2dldF9saW5lX251bWJlciAiYmFyIHJl dHVybiJdfQorKwkgICAge0RXX0xOU19jb3B5fQorKwkgICAge2xpbmUgW2dkYl9nZXRfbGluZV9u dW1iZXIgImJhciBlbmQiXX0KKysJICAgIHtEV19MTlNfY29weX0KKysJICAgIHtEV19MTkVfc2V0 X2FkZHJlc3MgJGJhcl9lbmR9CisrCSAgICB7RFdfTE5TX2FkdmFuY2VfbGluZSAxfQorKwkgICAg e0RXX0xOU19jb3B5fQorKwkgICAge0RXX0xORV9lbmRfc2VxdWVuY2V9CisrCX0KKysgICAgfQor K30KKysKKysjIENvbXBpbGUgdGhlIHNoYXJlZCBvYmplY3QgYWdhaW4sIGJ1dCB0aGlzIHRpbWUg aW5jbHVkZSAvIHVzZSB0aGUKKysjIERXQVJGIGluZm8gdGhhdCB3ZSd2ZSBjcmVhdGVkIGFib3Zl LiAgTm90ZSB0aGF0IChhZ2FpbikKKysjIC1ESVNfU0hBUkVETElCIGlzIHVzZWQgdG8gcHJldmVu dCBpbmNsdXNpb24gb2YgbWFpbigpIGluIHRoZSBzaGFyZWQKKysjIG9iamVjdC4gIEFsc28gbm90 ZSB0aGUgdXNlIG9mIHRoZSAibm9kZWJ1ZyIgb3B0aW9uLiAgQW55IGRlYnVnZ2luZworKyMgaW5m b3JtYXRpb24gdGhhdCB3ZSBuZWVkIHdpbGwgYmUgcHJvdmlkZWQgYnkgdGhlIERXQVJGIGluZm8g Y3JlYXRlZAorKyMgYWJvdmUuCisraWYge1tnZGJfY29tcGlsZV9zaGxpYiBbbGlzdCAkbGlic3Jj ICRhc21fZmlsZV0gJGxpYl9zbyBcCisrICAgICAgICAgICAgICAgICAgICAgICB7YWRkaXRpb25h bF9mbGFncz0tRElTX1NIQVJFRExJQiBub2RlYnVnfV0gIT0gIiJ9IHsKKysgICAgdW50ZXN0ZWQg ImZhaWxlZCB0byBjb21waWxlIHNoYXJlZCBsaWJyYXJ5IgorKyAgICByZXR1cm4KKyt9CisrCisr IyBDb21waWxlIHRoZSBtYWluIHByb2dyYW0gZm9yIHVzZSB3aXRoIHRoZSBzaGFyZWQgb2JqZWN0 LgorK2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHt0ZXN0Zmls ZX0gXAorKyAgICAgICAgICAgICAgICAgICAgICAgICR7OjpzcmNmaWxlMn0gW2xpc3QgZGVidWcg c2hsaWI9JGxpYl9zb11dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgRG8gd2hhdGV2ZXIg aXMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFyZWQgbGlicmFyeSBpcworKyMg bG9hZGVkIGZvciByZW1vdGUgdGFyZ2V0cy4KKytnZGJfbG9hZF9zaGxpYiAke2xpYl9zb30KKysK KytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJjYW4ndCBydW4gdG8gbWFpbiIK KysgICAgcmV0dXJuCisrfQorKworKyMgU3RlcCBpbnRvIGZvbyBzbyB0aGF0IHdlIGNhbiBmaW5p c2ggb3V0IG9mIGl0LgorK2dkYl90ZXN0ICJzdGVwIiAiZm9vIC4uIGF0IC4qIGZvbyBlbmQuKiIg InN0ZXAgaW50byBmb28iCisrCisrIyBGaW5pc2hpbmcgb3V0IG9mIGZvbyB3aWxsIGNyZWF0ZSBh IHZhbHVlIHRoYXQgd2lsbCBsYXRlciBuZWVkIHRvCisrIyBiZSBwcmVzZXJ2ZWQgd2hlbiByZXN0 YXJ0aW5nIHRoZSBwcm9ncmFtLgorK2dkYl90ZXN0ICJmaW5pc2giICI9IFxcKGNsYXNzIEIgXFwq XFwpICR7OjpoZXh9IC4qIiAiZmluaXNoIG91dCBvZiBmb28iCisrCisrIyBEZXJlZmVyZW5jaW5n IGFuZCBwcmludGluZyB0aGUgcmV0dXJuIHZhbHVlIGlzbid0IG5lY2Vzc2FyeQorKyMgZm9yIHJl cHJvZHVjaW5nIHRoZSBidWcsIGJ1dCB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhlCisrIyBy ZXR1cm4gdmFsdWUgaXMgd2hhdCB3ZSBleHBlY3QgaXQgdG8gYmUuCisrZ2RiX3Rlc3QgInAgKiQi IHsgPSB7PEE+ID0ge2EgPSA4LCB4ID0gOX0sIGIgPSAxMCwgeDIgPSAxMX19IFwKKysgICAgICAg ICAiZGVyZWZlcmVuY2UgcmV0dXJuIHZhbHVlIgorKworKyMgVGhlIG9yaWdpbmFsIFBSMjgwMzAg cmVwcm9kdWNlciBzdGVwcGVkIGJhY2sgaW50byB0aGUgc2hhcmVkIG9iamVjdCwKKysjIHNvIHdl J2xsIGRvIHRoZSBzYW1lIGhlcmU6CisrZ2RiX3Rlc3QgInN0ZXAiICJiYXIgXFwoLioiICJzdGVw IGludG8gYmFyIgorKworKyMgV2UgZG9uJ3Qgd2FudCBhIGNsZWFuIHJlc3RhcnQgaGVyZSBzaW5j ZSB0aGF0IHdpbGwgYmUgdG9vIGNsZWFuLgorKyMgVGhlIG9yaWdpbmFsIHJlcHJvZHVjZXIgZm9y IFBSMjgwMzAgc2V0IGEgYnJlYWtwb2ludCBpbiB0aGUgc2hhcmVkCisrIyBsaWJyYXJ5IGFuZCB0 aGVuIHJlc3RhcnRlZCB2aWEgInJ1biIuICBUaGUgY29tbWFuZCBiZWxvdyBkb2VzIHJvdWdobHkK KysjIHRoZSBzYW1lIHRoaW5nLiAgSXQncyBhdCB0aGlzIHN0ZXAgdGhhdCBhbiBpbnRlcm5hbCBl cnJvciB3b3VsZAorKyMgb2NjdXIgZm9yIFBSMjgwMzAuICBUaGUgIm1lc3NhZ2UiIGFyZ3VtZW50 IHRlbGxzIHJ1bnRvIHRvIHR1cm4gb24KKysjIHRoZSBwcmludGluZyBvZiBQQVNTZXMgd2hpbGUg cnVudG8gaXMgZG9pbmcgaXRzIGpvYi4KKytydW50byAiYmFyIiBtZXNzYWdlCitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2xvY2V4cHItZGF0YS1tZW1iZXItbG9jYXRpb24u aCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9sb2NleHByLWRhdGEtbWVtYmVyLWxvY2F0aW9u LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi5oCitAQCAtMCwwICsx LDMwIEBACisrLyogQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrdHlwZWRlZiBzdHJ1Y3QgQSB7CisrICAg IGxvbmcgYTsKKysgICAgbG9uZyB4OworK30gQTsKKysKKyt0eXBlZGVmIHN0cnVjdCBCIHsKKysg ICAgQSBhOworKyAgICBsb25nIGI7CisrICAgIGxvbmcgeDI7CisrfSBCOworKworK2V4dGVybiBC ICpmb28gKCk7CisrZXh0ZXJuIEIgKmJhciAoQiAqdik7CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMg Yi9nZGIuc3BlYwppbmRleCA4Njk0OWQ1Li5lOWM5Zjg2IDEwMDY0NAotLS0gYS9nZGIuc3BlYwor KysgYi9nZGIuc3BlYwpAQCAtMzEsMTMgKzMxLDEzIEBAIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2Ri CiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCiAlZ2xvYmFsIHNuYXBzcmMgICAg MjAyMDAyMDgKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGluc3RhbGxlZCBpbnRv IGdudWxpYi8gLgotJWdsb2JhbCBzbmFwZ251bGliIDIwMjAwNjMwCislZ2xvYmFsIHNuYXBnbnVs aWIgMjAyMTAxMDUKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogMTAu MgorVmVyc2lvbjogMTEuMQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRp bmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBh IHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxl IGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDYlez9kaXN0fQorUmVsZWFzZTogOSV7P2Rpc3R9 CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIr IGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBMR1BM djMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKICMgRG8gbm90IHByb3ZpZGUg VVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUgb25seSBmb3IgMiBkYXlz LgpAQCAtMjM4LDcgKzIzOCw3IEBAIEJ1aWxkUmVxdWlyZXM6IC91c3IvYmluL3BvZDJtYW4KICVp ZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNwogQnVpbGRSZXF1aXJlczogbGliYmFiZWx0 cmFjZS1kZXZlbCV7YnVpbGRpc2F9CiAlaWYgMCV7P3JoZWx9IDwgOQotQnVpbGRSZXF1aXJlczog Z3VpbGUtZGV2ZWwle2J1aWxkaXNhfQorQnVpbGRSZXF1aXJlczogZ3VpbGUyMi1kZXZlbCV7YnVp bGRpc2F9CiAlZW5kaWYKICVlbmRpZgogJWdsb2JhbCBoYXZlX2xpYmlwdCAwCkBAIC01MTgsNyAr NTE4LDcgQEAgQ09NTU9OX0dEQl9DT05GSUdVUkVfRkxBR1M9IlwKIAktLW1hbmRpcj0le19tYW5k aXJ9CQkJCQlcCiAJLS1pbmZvZGlyPSV7X2luZm9kaXJ9CQkJCQlcCiAJLS13aXRoLWdkYi1kYXRh ZGlyPSV7X2RhdGFkaXJ9L2dkYgkJCVwKLQktLWVuYWJsZS1nZGItYnVpbGQtd2FybmluZ3M9LC1X bm8tdW51c2VkCQlcCisJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVudXNlZCwt V25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zLC1Xbm8tdW51c2VkLWZ1bmN0aW9uXAogCS0tZW5h YmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlcCiAlaWZuYXJjaCAle2l4ODZ9IGFscGhhIHBwYyBzMzkw IHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2NGxlIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCAle2FybX0g YWFyY2g2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJCVwKQEAgLTUyNiw3ICs1MjYsNyBAQCBDT01N T05fR0RCX0NPTkZJR1VSRV9GTEFHUz0iXAogCS0tZW5hYmxlLXdlcnJvcgkJCQkJCVwKICVlbmRp ZgogCS0td2l0aC1zZXBhcmF0ZS1kZWJ1Zy1kaXI9L3Vzci9saWIvZGVidWcJCVwKLQktLWRpc2Fi bGUtc2ltCQkJCQkJXAorCS0tZGlzYWJsZS1zaW0JCQkgICAgICAgICAgICAgICAgCVwKIAktLWRp c2FibGUtcnBhdGgJCQkJCQlcCiAJLS13aXRob3V0LXN0YWdlMS1sZGZsYWdzCQkJCVwKIAktLWRp c2FibGUtbGlibWNoZWNrCQkJCQlcCkBAIC01ODIsMTAgKzU4MiwxMSBAQCBHREJfTUlOSU1BTF9D T05GSUdVUkVfRkxBR1M9IlwKICAgICAtLWRpc2FibGUtdW5pdC10ZXN0cyBcCiAgICAgLS1kaXNh YmxlLXNvdXJjZS1oaWdobGlnaHQiCiAKLWV4cG9ydCBDRkxBR1M9IiRSUE1fT1BUX0ZMQUdTICV7 P193aXRoX2FzYW46LWZzYW5pdGl6ZT1hZGRyZXNzfSIKLWV4cG9ydCBMREZMQUdTPSIlez9fX2ds b2JhbF9sZGZsYWdzfSAlez9fd2l0aF9hc2FuOi1mc2FuaXRpemU9YWRkcmVzc30iCi0KLWV4cG9y dCBDWFhGTEFHUz0iJENGTEFHUyIKKyMgUG9wdWxhdGUgQ0ZMQUdTLCBMREZMQUdTLCBDQywgQ1hY LCBldGMuCislc2V0X2J1aWxkX2ZsYWdzCitDRkxBR1M9IiRDRkxBR1MgJXs/X3dpdGhfYXNhbjot ZnNhbml0aXplPWFkZHJlc3N9IgorTERGTEFHUz0iJExERkxBR1MgJXs/X3dpdGhfYXNhbjotZnNh bml0aXplPWFkZHJlc3N9IgorQ1hYRkxBR1M9IiRDWFhGTEFHUyAlez9fd2l0aF9hc2FuOi1mc2Fu aXRpemU9YWRkcmVzc30iCiAKICMgLS1odG1sZGlyIGFuZCAtLXBkZmRpciBhcmUgbm90IHVzZWQg YXMgdGhleSBhcmUgdXNlZCBmcm9tICV7Z2RiX2J1aWxkfS4KIC4uL2NvbmZpZ3VyZQkJCQkJCQlc CkBAIC0xMTQzLDcgKzExNDQsODEgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCi0qIFdlZCBK dWwgMjEgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2pl Y3Qub3JnPgorKiBXZWQgSmFuIDEyIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOQor LSBSZW1vdmUgZ2RiLTYuMy1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3MjEucGF0Y2gKKyAg d2hpY2ggYWRkcyBwcm9ibGVtYXRpYyBhdHRhY2gtMzIgdGVzdC4KKworKiBUdWUgSmFuIDExIDIw MjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9ydCB1cHN0cmVhbSBwYXRj aCAiW1BSIGdkYi8yNzAyNl0gQ1RSTC1DIGlzIGlnbm9yZWQKKyAgd2hlbiBkZWJ1ZyBpbmZvIGlz IGRvd25sb2FkZWQiIChSSEJaIDIwMjQ4NzUsIEFhcm9uIE1lcmV5KS4KKworKiBUdWUgSmFuIDEx IDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9ydCB1cHN0cmVhbSBw YXRjaCAicmV3b3JrICJzZXQgZGVidWdpbmZvZCIgY29tbWFuZHMiCisgIChSSEJaIDIwMjQ4NzUs IFNpbW9uIE1hcmNoaSkuCisKKyogVHVlIEphbiAxMSAyMDIyIEFsZXhhbmRyYSBIw6Fqa292w6Eg LSAxMS4xLTgKKy0gQmFja3BvcnQgdXBzdHJlYW0gcGF0Y2ggIkZpeCB1bml0dGVzdC5leHAgZmFp bHVyZSBkdWUgdG8gJ3NldCBkZWJ1Z2luZm9kJyBhZGRpdGlvbiIKKyAgKFJIQlogMjAyNDg3NSwg VG9tIFRyb21leSkuCisKKyogTW9uIEphbiAxMCAyMDIyIEFsZXhhbmRyYSBIw6Fqa292w6EgLSAx MS4xLTgKKy0gQWRkIC1Xbm8tdW51c2VkLWZ1bmN0aW9uIHRvIC0tZW5hYmxlLWdkYi1idWlsZC13 YXJuaW5ncyB0byBwcmV2ZW50IHRoZSBidWlsZCBmYWlsdXJlOgorICAiLi4vLi4vZ2RiL2MtZXhw Lnk6MzQ1NToxOiBlcnJvcjogJ3ZvaWQgY19wcmludF90b2tlbihGSUxFKiwgaW50LCBZWVNUWVBF KScKKyAgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWZ1bmN0aW9uXSIKKwor KiBNb24gSmFuIDEwIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9y dCB1cHN0cmVhbSBwYXRjaCAiZ2RiOiBhZGQgc2V0L3Nob3cgY29tbWFuZHMgZm9yIG1hbmFnaW5n IGRlYnVnaW5mb2QiCisgIChSSEJaIDIwMjQ4NzUsIEFhcm9uIE1lcmV5KS4KKworKiBNb24gSmFu IDEwIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9ydCB1cHN0cmVh bSBwYXRjaCAiZ2RiLnRleGluZm86IEV4cGFuZCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2luZm9k IgorICAoUkhCWiAyMDI0ODc1LCBBYXJvbiBNZXJleSkuCisKKyogTW9uIERlYyA2IDIwMjEgS2V2 aW4gQnVldHRuZXIgLSAxMS4xLTcKKy0gQWRkIC1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMg dG8gLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzIHRvIHdvcmsKKyAgYXJvdW5kIHRoZSBweXRo b24gMy4xMSBkZXByZWNhdGlvbiBvZiBQeV9TZXRQcm9ncmFtTmFtZS4KKworKiBGcmkgTm92IDEy IDIwMjEgVGltbSBCw6RkZXIgPHRiYWVkZXJAcmVkaGF0LmNvbT4gLSAxMS4xLTYKKy0gVXNlICUl c2V0X2J1aWxkX2ZsYWdzIHRvIHBvcHVsYXRlIGFsbCByZWxldmFudCBidWlsZCBmbGFncworCisq IFdlZCBOb3YgMTAgMjAyMSBLZXZpbiBCdWV0dG5lciAtIDExLjEtNQorLSBCYWNrcG9ydCB1cHN0 cmVhbSBmaXggYW5kIHRlc3QgY2FzZSBmb3IgYSBkcHJpbnRmIGJ1ZyAoUkhCWiAyMDIyMTc3LCBL ZXZpbgorICBCdWV0dG5lcikuCisKKyogVHVlIE5vdiA5IDIwMjEgQnJ1bm8gTGFyc2VuIC0gMTEu MS00CistIEJhY2twb3J0IG1hbnBhZ2UgdXBkYXRlIHRvIGJlIGNsb3NlciB0byAtaGVscCAoUkhC WiA4NTMwNzEpCisKKyogV2VkIE5vdiAzIDIwMjEgS2V2aW4gQnVldHRuZXIgLSAxMS4xLTMKKy0g TWFrZSBhZGp1c3RtZW50cyB0byBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoLCBwcm92aWRl ZCBieSBUb20gZGUgVnJpZXMuCisKKyogTW9uIE9jdCAxMSAyMDIxIEtldmluIEJ1ZXR0bmVyIC0g MTEuMS0yCistIEJhY2twb3J0IHVwc3RyZWFtIHBhdGNoIHdoaWNoIHBhcGVycyBvdmVyIEZvcnRy YW4gbGV4aWNhbCBhbmFseXplcgorICBidWcgKFJIQlogMjAxMjk3NiwgVG9tIGRlIFZyaWVzKS4K KworKiBNb24gT2N0IDA0IDIwMjEgS2V2aW4gQnVldHRuZXIgLSAxMS4xLTEKKy0gUmViYXNlIHRv IEZTRiBHREIgMTEuMS4KKy0gQWRqdXN0IGJ1aWxkLWlkIHJlbGF0ZWQgcGF0Y2hlcy4KKy0gRHJv cCBiYWNrcG9ydGVkIHBhdGNoZXMgd2hpY2ggYXJlIG5vIGxvbmdlciByZWxldmFudC4KKy0gQnVt cCAnc25hcGdudWxpYicgZGF0ZS4KKworKiBUaHUgU2VwIDMwIDIwMjEgQWxleGFuZHJhIEjDoWpr b3bDoSA8YWhhamtvdmFAcmVkaGF0LmNvbT4gLSAxMC4yLTkKKy0gQmFja3BvcnQgdGVzdCBmb3Ig UkhCWiAxOTc2ODg3IChLZXZpbiBCdWV0dG5lcikuCisKKyogVGh1IFNlcCAzMCAyMDIxIEFsZXhh bmRyYSBIw6Fqa292w6EgPGFoYWprb3ZhQHJlZGhhdC5jb20+IC0gMTAuMi05CistIEJhY2twb3J0 IHVwc3RyZWFtIHBhdGNoIHdoaWNoIGZpeGVzIGludGVybmFsLWVycm9yOiBVbmV4cGVjdGVkCisg IHR5cGUgZmllbGQgbG9jYXRpb24ga2luZCAoUkhCWiAxOTc2ODg3LCBBbGV4YW5kcmEgSMOhamtv dsOhKS4KKworKiBXZWQgU2VwIDIyIDIwMjEgQnJ1bm8gTGFyc2VuIDxibGFyc2VuQHJlZGhhdC5j b20+IC0gMTAuMi04CistIEJhY2twb3J0ICJbZ2RiXSBJbXByb3ZlIGVhcmx5IGV4aXRzIGZvciBl bnYgdmFyIGluIGRlYnVnaW5mb2Qtc3VwcG9ydC5jIgorICAoVG9tIGRlIFZyaWVzKQorCisqIFdl ZCBTZXAgMjIgMjAyMSBCcnVubyBMYXJzZW4gPGJsYXJzZW5AcmVkaGF0LmNvbT4gLSAxMC4yLTgK Ky0gQmFja3BvcnQgIltnZGIvY2xpXSBEb24ndCBhc3NlcnQgb24gZW1wdHkgc3RyaW5nIGZvciBj b3JlLWZpbGUiCisgIChUb20gZGUgVnJpZXMpCisKKyogVHVlIFNlcCAyMSAyMDIxIFBldGVyIFJv Ymluc29uIDxwYnJvYmluc29uQGZlZG9yYXByb2plY3Qub3JnPiAxMC4yLTcKKy0gVXNlIGd1aWxl IDIuMiAocmhieiAjMTkwMTM1MykKKworKiBXZWQgSnVsIDIxIDIwMjEgRmVkb3JhIFJlbGVhc2Ug RW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gMTAuMi02CiAtIFJlYnVpbHQg Zm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzVfTWFzc19SZWJ1aWxk CiAKICogVHVlIEp1bCAyMCAyMDIxIEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4g LSAxMC4yLTUKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBlY2M3Nzg0Li40 N2EwMmU1IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMyArMSwzIEBA CiBTSEE1MTIgKGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTguMS4xLTIwMTgwNjI2LnRhci54eikg PSBhOGIxYzU0ZGQzNDhjZmViMzdkYTczZjk2ODc0Mjg5NmJlM2RkMTNhNDIxNWY4ZDg1MTk4NzBj MmFiZWE5MTVmNTE3NmMzZmE2OTg5ZGRkMTBmMjAwMjBhMTZmMGZhYjIwY2JhZTY4ZWU4ZDU4YTgy MjM0ZDg3NzgwMjM1MjBmOAogU0hBNTEyICh2Mi4wLjQudGFyLmd6KSA9IDU5NmQyZGFjMjVmZGJk M2U1NjYwZDdlMWZlZWI3ZThkNWQzNTlkMWQwZTE5YjYyZWY1OTM0NDkwMzdkZjIzNmRiMWQ0ZDk4 ODIwZjAwMzEwNjFiNTU3M2VkNjc3OTdhODVhNzdmYjk5OTFlMjE1YWJhYWJjNGJmZTE2Y2VhZWM4 Ci1TSEE1MTIgKGdkYi0xMC4yLnRhci54eikgPSAzNjUzNzYyYWMwMDhlMDY1YzM3Y2Q2NDE2NTMx ODRjOWZmN2NlNTFlZTIyMjJhZGUxMTIyYmVjOWQ2Y2M2NGRmZmQ0ZmI3NDg4OGVmMTFhYzE5NDIw NjRhMDg5MTBlOTZiNzg2NTExMmFkMzdmNDYwMmViMGExNmJlZDA3NGNhYQorU0hBNTEyIChnZGIt MTEuMS50YXIueHopID0gYzQwYmY5NzBlMmY3YzIxMDdiMjljNWFhNmE3MTUwZGFhNzA5ZDc1ZGRh ZGI3M2FjMjA3NDI0MTlkNDYzN2QxNThlMzA2M2E0YzZmZjZlNDdmYWU4Y2E4ZTFkMzYyNTM5NzNm ODVlYTE1NDQ1ZDAwNGJlNmQ1ZDdhMmRkOWJkNDYKCmRpZmYgLS1naXQgYS90ZXN0aW5nLWN1c3Rv bS1pbnB1dHJjLnBhdGNoIGIvdGVzdGluZy1jdXN0b20taW5wdXRyYy5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYzk1ZjdkMS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nLWN1c3Rv bS1pbnB1dHJjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSBGRURP UkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtlaXRoIFNlaXR6IDxr ZWl0aHNAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjMgTWFyIDIwMjEgMDk6MzI6MzcgLTA3MDAK LVN1YmplY3Q6IHRlc3RpbmctY3VzdG9tLWlucHV0cmMucGF0Y2gKLQotOzsgQmFja3BvcnQgIkRp c2FibGUgYnJhY2tldGVkIHBhc3RlIG1vZGUgaW4gR0RCIHRlc3RzIgotOzsgKFRvbSBUcm9tZXkp Ci0KLSAgIGNvbW1pdCAxYWY0YzljNDIwOWMzNDc4MjI0ZjE4ZGZiNzlkYzA5NTY3Yjk2NzA1Ci0g ICBBdXRob3I6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXkuY29tPgotICAgRGF0ZTogICBTYXQgSmFu IDIzIDA4OjUyOjQ1IDIwMjEgLTA3MDAKLQotICAgIERpc2FibGUgYnJhY2tldGVkIHBhc3RlIG1v ZGUgaW4gR0RCIHRlc3RzCi0KLSAgICBJIGhhdmUgYSBwYXRjaCB0byBpbXBvcnQgR05VIHJlYWRs aW5lIDguMSBpbnRvIEdEQi4gIEhvd2V2ZXIsIHdoZW4KLSAgICBydW5uaW5nIHRoZSB0ZXN0cywg dGhlcmUgd2VyZSBhIG51bWJlciBvZiBmYWlsdXJlcyBkdWUgdG8gImJyYWNrZXRlZAotICAgIHBh c3RlIG1vZGUiLiAgVGhpcyBpcyBhIHRlcm1pbmFsIGZlYXR1cmUgdGhhdCByZWFkbGluZSA4LjEg ZW5hYmxlcyBieQotICAgIGRlZmF1bHQuCi0KLSAgICBUaGUgc2ltcGxlc3Qgd2F5IHRvIHdvcmsg YXJvdW5kIHRoaXMgd2FzIHRvIGFsd2F5cyBtYWtlIGEgIi5pbnB1dHJjIgotICAgIGZvciBHREIg dGVzdHMgdGhhdCB3aWxsIHRlbGwgcmVhZGxpbmUgdG8gZGlzYWJsZSBicmFja3RlZCBwYXN0ZSBt b2RlLgotCi0gICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSAgICAyMDIxLTAxLTIzICBUb20g VHJvbWV5ICA8dG9tQHRyb21leS5jb20+Ci0KLSAgICAgICAgICAgICogbGliL2dkYi5leHAgKGRl ZmF1bHRfZ2RiX2luaXQpOiBTZXQgSU5QVVRSQyB0byBhIGNhY2hlZCBmaWxlLgotCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKLUBAIC01MTM1LDEzICs1MTM1LDE0IEBAIHByb2MgZGVmYXVsdF9nZGJfaW5p dCB7IHRlc3RfZmlsZV9uYW1lIH0gewotICAgICBzZXRlbnYgTENfQ1RZUEUgQwotICAgICBzZXRl bnYgTEFORyBDCi0gCi0tICAgICMgRG9uJ3QgbGV0IGEgLmlucHV0cmMgZmlsZSBvciBhbiBleGlz dGluZyBzZXR0aW5nIG9mIElOUFVUUkMgbWVzcyB1cAotLSAgICAjIHRoZSB0ZXN0IHJlc3VsdHMu ICBFdmVuIGlmIC9kZXYvbnVsbCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwYXJ0aWN1bGFyCi0tICAg ICMgcGxhdGZvcm0sIHRoZSByZWFkbGluZSBsaWJyYXJ5IHdpbGwgdXNlIHRoZSBkZWZhdWx0IHNl dHRpbmcganVzdCBieQotLSAgICAjIGZhaWxpbmcgdG8gb3BlbiB0aGUgZmlsZS4gIE9UT0gsIG9w ZW5pbmcgL2Rldi9udWxsIHN1Y2Nlc3NmdWxseSB3aWxsCi0tICAgICMgYWxzbyByZXN1bHQgaW4g dGhlIGRlZmF1bHQgc2V0dGluZ3MgYmVpbmcgdXNlZCBzaW5jZSBub3RoaW5nIHdpbGwgYmUKLS0g ICAgIyByZWFkIGZyb20gdGhpcyBmaWxlLgotLSAgICBzZXRlbnYgSU5QVVRSQyAiL2Rldi9udWxs IgotKyAgICAjIERvbid0IGxldCBhIC5pbnB1dHJjIGZpbGUgb3IgYW4gZXhpc3Rpbmcgc2V0dGlu ZyBvZiBJTlBVVFJDIG1lc3MKLSsgICAgIyB1cCB0aGUgdGVzdCByZXN1bHRzLiAgQ2VydGFpbiB0 ZXN0cyAoc3R5bGUgdGVzdHMgYW5kIFRVSSB0ZXN0cykKLSsgICAgIyB3YW50IHRvIHNldCB0aGUg dGVybWluYWwgdG8gYSBub24tImR1bWIiIHZhbHVlLCBhbmQgZm9yIHRob3NlIHdlCi0rICAgICMg d2FudCB0byBkaXNhYmxlIGJyYWNrZXRlZCBwYXN0ZSBtb2RlLiAgVmVyc2lvbnMgb2YgUmVhZGxp bmUKLSsgICAgIyBiZWZvcmUgOC4wIHdpbGwgbm90IHVuZGVyc3RhbmQgdGhpcyBhbmQgd2lsbCBp c3N1ZSBhIHdhcm5pbmcuCi0rICAgICMgV2UgdHJpZWQgdXNpbmcgYSAkaWYgdG8gZ3VhcmQgaXQs IGJ1dCBSZWFkbGluZSA4LjEgaGFkIGEgYnVnIGluCi0rICAgICMgaXRzIHZlcnNpb24tY29tcGFy aXNvbiBjb2RlIHRoYXQgcHJldmVudGVkIHRoaXMgZm9yIHdvcmtpbmcuCi0rICAgIHNldGVudiBJ TlBVVFJDIFtjYWNoZWRfZmlsZSBpbnB1dHJjICJzZXQgZW5hYmxlLWJyYWNrZXRlZC1wYXN0ZSBv ZmYiXQotIAotICAgICAjIFRoaXMgZGlzYWJsZXMgc3R5bGUgb3V0cHV0LCB3aGljaCB3b3VsZCBp bnRlcmZlcmUgd2l0aCBtYW55Ci0gICAgICMgdGVzdHMuCg==