From: Bjorn Munch Date: March 8 2011 5:39pm Subject: bzr commit into mysql-5.1-mtr branch (bjorn.munch:2985) List-Archive: http://lists.mysql.com/commits/132621 Message-Id: <201103081739.p28Hd7na006720@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vaG9tZS9ibTEzNjgwMS9teS9tZXJnZS01MS8gYmFzZWQgb24gcmV2aWQ6Ympv cm4ubXVuY2hAb3JhY2xlLmNvbS0yMDExMDIyODE1MTAzNS1mbTd6ajdycTEyamtqZ3hsCgogMjk4 NSBCam9ybiBNdW5jaAkyMDExLTAzLTA4IFttZXJnZV0KICAgICAgbWVyZ2UgZnJvbSA1LjEgbWFp bgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3IvZnVuY19lbmNyeXB0X3VjczIucmVzdWx0 CiAgICAgIG15c3FsLXRlc3QvdC9mdW5jX2VuY3J5cHRfdWNzMi50ZXN0CiAgICBtb2RpZmllZDoK ICAgICAgbXlzcWwtdGVzdC9yL2N0eXBlX3NqaXMucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9j dHlwZV91Y3MucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9ncmFudC5yZXN1bHQKICAgICAgbXlz cWwtdGVzdC9yL3htbC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9lbmdpbmVzL2l1ZHMv ci9pbnNlcnRfeWVhci5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5u b2RiX3N0b3JlZHByb2NfMDYucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9y L21lbW9yeV9zdG9yZWRwcm9jXzA2LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9teWlzYW1fc3RvcmVkcHJvY18wNi5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9m dW5jc18xL3N0b3JlZHByb2Mvc3RvcmVkcHJvY18wNi5pbmMKICAgICAgbXlzcWwtdGVzdC90L2N0 eXBlX3NqaXMudGVzdAogICAgICBteXNxbC10ZXN0L3QvY3R5cGVfdWNzLnRlc3QKICAgICAgbXlz cWwtdGVzdC90L2dyYW50LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L3htbC50ZXN0CiAgICAgIHNx bC9pdGVtX2Z1bmMuY2MKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5jYwogICAgICBzcWwvaXRlbV9z dHJmdW5jLmgKICAgICAgc3FsL3NxbF9hY2wuY2MKICAgICAgc3FsL3NxbF9wYXJzZS5jYwogICAg ICBzdHJpbmdzL3htbC5jCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvY3R5cGVfc2pp cy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdAkyMDA5LTA1LTA1 IDA2OjU1OjIyICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdAkyMDEx LTAzLTAzIDE1OjM5OjI2ICswMDAwCkBAIC0yMTgsNCArMjE4LDEwIEBAIGhleChhKQloZXgobG93 ZXIoYSkpCWhleCh1cHBlcihhKSkKIDgzNTI4MzVFCTgzNTI4MzVFCTgzNTI4MzVFCiA4MzcyODM1 RQk4MzcyODM1RQk4MzcyODM1RQogRFJPUCBUQUJMRSB0MTsKKyMKKyMgQnVnIzExNzY2NTE5IC0g QnVnIzU5NjQ4OiBNWV9TVFJUT0xMMTBfTUIyOiBBU1NFUlRJT04gYCgqRU5EUFRSIC0gUykgJSAy ID09IDAnIEZBSUxFRC4KKyMKK1NFTEVDVCBRVU9URSgn77+9XCcpOworUVVPVEUoJ++/vVwnKQor J++/vVwnCiAjIEVuZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0 L3IvY3R5cGVfdWNzLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2N0eXBlX3Vjcy5yZXN1bHQJ MjAxMC0wNC0wNiAwNzoyNjo1OSArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvY3R5cGVfdWNzLnJl c3VsdAkyMDExLTAzLTAzIDE1OjM5OjI2ICswMDAwCkBAIC05OTAsOCArOTkwLDggQEAgb2xkX3Bh c3N3b3JkKG5hbWUpCiA/Pz8/Pz8/Pwogc2VsZWN0IHF1b3RlKG5hbWUpIGZyb20gYnVnMjA1MzY7 CiBxdW90ZShuYW1lKQotPz8/Pz8/Pz8KLT8/Pz8/Pz8/Pz8/Pz8/Pz8KKyd0ZXN0MScKKydcJ3Rl c3RcXF8yXCcnCiBkcm9wIHRhYmxlIGJ1ZzIwNTM2Owogc2V0IG5hbWVzIHVjczI7CiBFUlJPUiA0 MjAwMDogVmFyaWFibGUgJ2NoYXJhY3Rlcl9zZXRfY2xpZW50JyBjYW4ndCBiZSBzZXQgdG8gdGhl IHZhbHVlIG9mICd1Y3MyJwpAQCAtMTIzOCw0ICsxMjM4LDE1IEBAIENSRUFURSBWSUVXIHYxIEFT IFNFTEVDVCAxIGZyb20gdDEKIFdIRVJFIHQxLmIgPD0+IChTRUxFQ1QgYSBGUk9NIHQxIFdIRVJF IGEgPCBTT01FKFNFTEVDVCAnMScpKTsKIERST1AgVklFVyB2MTsKIERST1AgVEFCTEUgdDE7Cisj CisjIEJ1ZyM1OTY0OCBteV9zdHJ0b2xsMTBfbWIyOiBBc3NlcnRpb24gYCgqZW5kcHRyIC0gcykg JSAyID09IDAnIGZhaWxlZC4KKyMKK1NFTEVDVCBIRVgoQ0hBUihDT0FMRVNDRShOVUxMLCBDSEFS KENPVU5UKCclcycpIFVTSU5HIHVjczIpLCAxLCBAQGdsb2JhbC5saWNlbnNlLCBOVUxMKSBVU0lO RyBjcDg1MCkpOworSEVYKENIQVIoQ09BTEVTQ0UoTlVMTCwgQ0hBUihDT1VOVCgnJXMnKSBVU0lO RyB1Y3MyKSwgMSwgQEBnbG9iYWwubGljZW5zZSwgTlVMTCkgVVNJTkcgY3A4NTApKQorMDAKK1NF TEVDVCBDT05WRVJUKFFVT1RFKENIQVIoMHhmNSB1c2luZyB1Y3MyKSksIFNJR05FRCk7CitDT05W RVJUKFFVT1RFKENIQVIoMHhmNSB1c2luZyB1Y3MyKSksIFNJR05FRCkKKzAKK1dhcm5pbmdzOgor V2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgSU5URUdFUiB2YWx1ZTogJycKIEVuZCBv ZiA1LjAgdGVzdHMKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3IvZnVuY19lbmNyeXB0X3Vj czIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvZnVuY19lbmNyeXB0X3VjczIucmVzdWx0CTE5 NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2Z1bmNfZW5jcnlwdF91 Y3MyLnJlc3VsdAkyMDExLTAzLTAzIDEyOjA0OjA0ICswMDAwCkBAIC0wLDAgKzEsMTkgQEAKKyMK KyMgQnVnIzU5NjQ4IG15X3N0cnRvbGwxMF9tYjI6IEFzc2VydGlvbiBgKCplbmRwdHIgLSBzKSAl IDIgPT0gMCcgZmFpbGVkLgorIworU0VMRUNUIENIQVJfTEVOR1RIKERFU19FTkNSWVBUKDAsIENI QVIoJzEnIFVTSU5HIHVjczIpKSk7CitDSEFSX0xFTkdUSChERVNfRU5DUllQVCgwLCBDSEFSKCcx JyBVU0lORyB1Y3MyKSkpCis5CitTRUxFQ1QgQ09OVkVSVChERVNfRU5DUllQVCgwLCBDSEFSKCcx JyBVU0lORyB1Y3MyKSksVU5TSUdORUQpOworQ09OVkVSVChERVNfRU5DUllQVCgwLCBDSEFSKCcx JyBVU0lORyB1Y3MyKSksVU5TSUdORUQpCiswCitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVu Y2F0ZWQgaW5jb3JyZWN0IElOVEVHRVIgdmFsdWU6ICc/VD9pSz9qPz8nCitTRUxFQ1QgQ0hBUl9M RU5HVEgoREVTX0RFQ1JZUFQoMHhGRjBEQzlGQzk1MzdDQTc1RjQsIENIQVIoJzEnIFVTSU5HIHVj czIpKSk7CitDSEFSX0xFTkdUSChERVNfREVDUllQVCgweEZGMERDOUZDOTUzN0NBNzVGNCwgQ0hB UignMScgVVNJTkcgdWNzMikpKQorNAorU0VMRUNUIENPTlZFUlQoREVTX0RFQ1JZUFQoMHhGRjBE QzlGQzk1MzdDQTc1RjQsIENIQVIoJzEnIHVzaW5nIHVjczIpKSwgVU5TSUdORUQpOworQ09OVkVS VChERVNfREVDUllQVCgweEZGMERDOUZDOTUzN0NBNzVGNCwgQ0hBUignMScgdXNpbmcgdWNzMikp LCBVTlNJR05FRCkKKzAKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJl Y3QgSU5URUdFUiB2YWx1ZTogJ3Rlc3QnCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9y L2dyYW50LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2dyYW50LnJlc3VsdAkyMDEwLTEyLTE1 IDE2OjA4OjIxICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9ncmFudC5yZXN1bHQJMjAxMS0wMi0w NyAxMjowNjoyMiArMDAwMApAQCAtMTMyNiw2ICsxMzI2LDE5OSBAQCBEUk9QIERBVEFCQVNFIG15 c3FsdGVzdDI7CiBEUk9QIFVTRVIgdGVzdHVzZXJAbG9jYWxob3N0OwogdXNlIHRlc3Q7CiAKKyMK KyMgVGVzdCBmb3IgYnVnICMzNjU0NCAiRFJPUCBVU0VSIGRvZXMgbm90IHJlbW92ZSBzdG9yZWQg ZnVuY3Rpb24KKyMgICAgICAgICAgICAgICAgICAgICAgcHJpdmlsZWdlcyIuCisjCitjcmVhdGUg ZGF0YWJhc2UgbXlzcWx0ZXN0MTsKK2NyZWF0ZSBmdW5jdGlvbiBteXNxbHRlc3QxLmYxKCkgcmV0 dXJucyBpbnQgcmV0dXJuIDA7CitjcmVhdGUgcHJvY2VkdXJlIG15c3FsdGVzdDEucDEoKSBiZWdp biBlbmQ7CisjCisjIDEpIENoZWNrIHRoYXQgRFJPUCBVU0VSIHByb3Blcmx5IHJlbW92ZXMgcHJp dmlsZWdlcyBvbiBib3RoCisjICAgIHN0b3JlZCBwcm9jZWR1cmVzIGFuZCBmdW5jdGlvbnMuCisj CitjcmVhdGUgdXNlciBteXNxbHVzZXIxQGxvY2FsaG9zdDsKK2dyYW50IGV4ZWN1dGUgb24gZnVu Y3Rpb24gbXlzcWx0ZXN0MS5mMSB0byBteXNxbHVzZXIxQGxvY2FsaG9zdDsKK2dyYW50IGV4ZWN1 dGUgb24gcHJvY2VkdXJlIG15c3FsdGVzdDEucDEgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7Cisj IFF1aWNrIHRlc3QgdGhhdCBncmFudGVkIHByaXZpbGVnZXMgYXJlIHByb3Blcmx5IHJlZmxlY3Rl ZAorIyBpbiBwcml2aWxlZ2UgdGFibGVzIGFuZCBpbiBpbi1tZW1vcnkgc3RydWN0dXJlcy4KK3No b3cgZ3JhbnRzIGZvciBteXNxbHVzZXIxQGxvY2FsaG9zdDsKK0dyYW50cyBmb3IgbXlzcWx1c2Vy MUBsb2NhbGhvc3QKK0dSQU5UIFVTQUdFIE9OICouKiBUTyAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9z dCcKK0dSQU5UIEVYRUNVVEUgT04gUFJPQ0VEVVJFIGBteXNxbHRlc3QxYC5gcDFgIFRPICdteXNx bHVzZXIxJ0AnbG9jYWxob3N0JworR1JBTlQgRVhFQ1VURSBPTiBGVU5DVElPTiBgbXlzcWx0ZXN0 MWAuYGYxYCBUTyAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcKK3NlbGVjdCBkYiwgcm91dGluZV9u YW1lLCByb3V0aW5lX3R5cGUsIHByb2NfcHJpdiBmcm9tIG15c3FsLnByb2NzX3ByaXYgd2hlcmUg dXNlcj0nbXlzcWx1c2VyMScgYW5kIGhvc3Q9J2xvY2FsaG9zdCc7CitkYglyb3V0aW5lX25hbWUJ cm91dGluZV90eXBlCXByb2NfcHJpdgorbXlzcWx0ZXN0MQlmMQlGVU5DVElPTglFeGVjdXRlCitt eXNxbHRlc3QxCXAxCVBST0NFRFVSRQlFeGVjdXRlCisjCisjIENyZWF0ZSBjb25uZWN0aW9uICdi dWdfMzY1NDRfY29uMScgYXMgJ215c3FsdXNlcjFAbG9jYWxob3N0Jy4KK2NhbGwgbXlzcWx0ZXN0 MS5wMSgpOworc2VsZWN0IG15c3FsdGVzdDEuZjEoKTsKK215c3FsdGVzdDEuZjEoKQorMAorIwor IyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAnZGVmYXVsdCcuCitkcm9wIHVzZXIgbXlzcWx1c2VyMUBs b2NhbGhvc3Q7CisjCisjIFRlc3QgdGhhdCBkcm9wcGluZyBvZiB1c2VyIGlzIHByb3Blcmx5IHJl ZmxlY3RlZCBpbgorIyBib3RoIHByaXZpbGVnZSB0YWJsZXMgYW5kIGluIGluLW1lbW9yeSBzdHJ1 Y3R1cmVzLgorIworIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAnYnVnMzY1NDRfY29uMScuCisjIFRo ZSBjb25uZWN0aW9uIGNvbGQgYmUgYWxpdmUgYnV0IHNob3VsZCBub3QgYmUgYWJsZSB0bworIyBh Y2Nlc3MgdG8gYW55IG9mIHRoZSBzdG9yZWQgcm91dGluZXMuCitjYWxsIG15c3FsdGVzdDEucDEo KTsKK0VSUk9SIDQyMDAwOiBleGVjdXRlIGNvbW1hbmQgZGVuaWVkIHRvIHVzZXIgJ215c3FsdXNl cjEnQCdsb2NhbGhvc3QnIGZvciByb3V0aW5lICdteXNxbHRlc3QxLnAxJworc2VsZWN0IG15c3Fs dGVzdDEuZjEoKTsKK0VSUk9SIDQyMDAwOiBleGVjdXRlIGNvbW1hbmQgZGVuaWVkIHRvIHVzZXIg J215c3FsdXNlcjEnQCdsb2NhbGhvc3QnIGZvciByb3V0aW5lICdteXNxbHRlc3QxLmYxJworIwor IyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAnZGVmYXVsdCcuCisjCisjIE5vdyBjcmVhdGUgdXNlciB3 aXRoIHRoZSBzYW1lIG5hbWUgYW5kIGNoZWNrIHRoYXQgaGUKKyMgaGFzIG5vdCBpbmhlcml0ZWQg cHJpdmlsZWdlcy4KK2NyZWF0ZSB1c2VyIG15c3FsdXNlcjFAbG9jYWxob3N0Oworc2hvdyBncmFu dHMgZm9yIG15c3FsdXNlcjFAbG9jYWxob3N0OworR3JhbnRzIGZvciBteXNxbHVzZXIxQGxvY2Fs aG9zdAorR1JBTlQgVVNBR0UgT04gKi4qIFRPICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0Jworc2Vs ZWN0IGRiLCByb3V0aW5lX25hbWUsIHJvdXRpbmVfdHlwZSwgcHJvY19wcml2IGZyb20gbXlzcWwu cHJvY3NfcHJpdiB3aGVyZSB1c2VyPSdteXNxbHVzZXIxJyBhbmQgaG9zdD0nbG9jYWxob3N0JzsK K2RiCXJvdXRpbmVfbmFtZQlyb3V0aW5lX3R5cGUJcHJvY19wcml2CisjCisjIENyZWF0ZSBjb25u ZWN0aW9uICdidWdfMzY1NDRfY29uMicgYXMgJ215c3FsdXNlcjFAbG9jYWxob3N0Jy4KKyMgTmV3 bHkgY3JlYXRlZCB1c2VyIHNob3VsZCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgYW55IG9mIHRoZSBy b3V0aW5lcy4KK2NhbGwgbXlzcWx0ZXN0MS5wMSgpOworRVJST1IgNDIwMDA6IGV4ZWN1dGUgY29t bWFuZCBkZW5pZWQgdG8gdXNlciAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcgZm9yIHJvdXRpbmUg J215c3FsdGVzdDEucDEnCitzZWxlY3QgbXlzcWx0ZXN0MS5mMSgpOworRVJST1IgNDIwMDA6IGV4 ZWN1dGUgY29tbWFuZCBkZW5pZWQgdG8gdXNlciAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcgZm9y IHJvdXRpbmUgJ215c3FsdGVzdDEuZjEnCisjCisjIFN3aXRjaCB0byBjb25uZWN0aW9uICdkZWZh dWx0Jy4KKyMKKyMgMikgQ2hlY2sgdGhhdCBSRU5BTUUgVVNFUiBwcm9wZXJseSB1cGRhdGVzIHBy aXZpbGVnZXMgb24gYm90aAorIyAgICBzdG9yZWQgcHJvY2VkdXJlcyBhbmQgZnVuY3Rpb25zLgor IworZ3JhbnQgZXhlY3V0ZSBvbiBmdW5jdGlvbiBteXNxbHRlc3QxLmYxIHRvIG15c3FsdXNlcjFA bG9jYWxob3N0OworZ3JhbnQgZXhlY3V0ZSBvbiBwcm9jZWR1cmUgbXlzcWx0ZXN0MS5wMSB0byBt eXNxbHVzZXIxQGxvY2FsaG9zdDsKKyMKKyMgQ3JlYXRlIG9uZSBtb3JlIHVzZXIgdG8gbWFrZSBp bi1tZW1vcnkgaGFzaGVzIG5vbi10cml2aWFsLgorIyBVc2VyIG5hbWVzICdteXNxbHVzZXIxMScg YW5kICdteXNxbHVzZXIxMCcgd2VyZSBzZWxlY3RlZAorIyB0byB0cmlnZ2VyIGJ1ZyBkaXNjb3Zl cmVkIGR1cmluZyBjb2RlIGluc3BlY3Rpb24uCitjcmVhdGUgdXNlciBteXNxbHVzZXIxMUBsb2Nh bGhvc3Q7CitncmFudCBleGVjdXRlIG9uIGZ1bmN0aW9uIG15c3FsdGVzdDEuZjEgdG8gbXlzcWx1 c2VyMTFAbG9jYWxob3N0OworZ3JhbnQgZXhlY3V0ZSBvbiBwcm9jZWR1cmUgbXlzcWx0ZXN0MS5w MSB0byBteXNxbHVzZXIxMUBsb2NhbGhvc3Q7CisjIEFsc28gY3JlYXRlIGEgY291cGxlIG9mIHRh YmxlcyB0byB0ZXN0IGZvciBhbm90aGVyIGJ1ZworIyBkaXNjb3ZlcmVkIGR1cmluZyBjb2RlIGlu c3BlY3Rpb24gKGFnYWluIHRhYmxlIG5hbWVzIHdlcmUKKyMgY2hvc2VuIGVzcGVjaWFsbHkgdG8g dHJpZ2dlciB0aGUgYnVnKS4KK2NyZWF0ZSB0YWJsZSBteXNxbHRlc3QxLnQxMSAoaSBpbnQpOwor Y3JlYXRlIHRhYmxlIG15c3FsdGVzdDEudDIyIChpIGludCk7CitncmFudCBzZWxlY3Qgb24gbXlz cWx0ZXN0MS50MjIgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitncmFudCBzZWxlY3Qgb24gbXlz cWx0ZXN0MS50MTEgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CisjIFF1aWNrIHRlc3QgdGhhdCBn cmFudGVkIHByaXZpbGVnZXMgYXJlIHByb3Blcmx5IHJlZmxlY3RlZAorIyBpbiBwcml2aWxlZ2Ug dGFibGVzIGFuZCBpbiBpbi1tZW1vcnkgc3RydWN0dXJlcy4KK3Nob3cgZ3JhbnRzIGZvciBteXNx bHVzZXIxQGxvY2FsaG9zdDsKK0dyYW50cyBmb3IgbXlzcWx1c2VyMUBsb2NhbGhvc3QKK0dSQU5U IFVTQUdFIE9OICouKiBUTyAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcKK0dSQU5UIFNFTEVDVCBP TiBgbXlzcWx0ZXN0MWAuYHQxMWAgVE8gJ215c3FsdXNlcjEnQCdsb2NhbGhvc3QnCitHUkFOVCBT RUxFQ1QgT04gYG15c3FsdGVzdDFgLmB0MjJgIFRPICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0Jwor R1JBTlQgRVhFQ1VURSBPTiBQUk9DRURVUkUgYG15c3FsdGVzdDFgLmBwMWAgVE8gJ215c3FsdXNl cjEnQCdsb2NhbGhvc3QnCitHUkFOVCBFWEVDVVRFIE9OIEZVTkNUSU9OIGBteXNxbHRlc3QxYC5g ZjFgIFRPICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0Jworc2VsZWN0IGRiLCByb3V0aW5lX25hbWUs IHJvdXRpbmVfdHlwZSwgcHJvY19wcml2IGZyb20gbXlzcWwucHJvY3NfcHJpdiB3aGVyZSB1c2Vy PSdteXNxbHVzZXIxJyBhbmQgaG9zdD0nbG9jYWxob3N0JzsKK2RiCXJvdXRpbmVfbmFtZQlyb3V0 aW5lX3R5cGUJcHJvY19wcml2CitteXNxbHRlc3QxCWYxCUZVTkNUSU9OCUV4ZWN1dGUKK215c3Fs dGVzdDEJcDEJUFJPQ0VEVVJFCUV4ZWN1dGUKK3NlbGVjdCBkYiwgdGFibGVfbmFtZSwgdGFibGVf cHJpdiBmcm9tIG15c3FsLnRhYmxlc19wcml2IHdoZXJlIHVzZXI9J215c3FsdXNlcjEnIGFuZCBo b3N0PSdsb2NhbGhvc3QnOworZGIJdGFibGVfbmFtZQl0YWJsZV9wcml2CitteXNxbHRlc3QxCXQx MQlTZWxlY3QKK215c3FsdGVzdDEJdDIyCVNlbGVjdAorIworIyBTd2l0Y2ggdG8gY29ubmVjdGlv biAnYnVnMzY1NDRfY29uMicuCitjYWxsIG15c3FsdGVzdDEucDEoKTsKK3NlbGVjdCBteXNxbHRl c3QxLmYxKCk7CitteXNxbHRlc3QxLmYxKCkKKzAKK3NlbGVjdCAqIGZyb20gbXlzcWx0ZXN0MS50 MTE7CitpCitzZWxlY3QgKiBmcm9tIG15c3FsdGVzdDEudDIyOworaQorIworIyBTd2l0Y2ggdG8g Y29ubmVjdGlvbiAnZGVmYXVsdCcuCityZW5hbWUgdXNlciBteXNxbHVzZXIxQGxvY2FsaG9zdCB0 byBteXNxbHVzZXIxMEBsb2NhbGhvc3Q7CisjCisjIFRlc3QgdGhhdCB0aGVyZSBhcmUgbm8gcHJp dmlsZWdlcyBsZWZ0IGZvciBteXNxbHVzZXIxLgorIworIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAn YnVnMzY1NDRfY29uMicuCisjIFRoZSBjb25uZWN0aW9uIGNvbGQgYmUgYWxpdmUgYnV0IHNob3Vs ZCBub3QgYmUgYWJsZSB0bworIyBhY2Nlc3MgdG8gYW55IG9mIHRoZSBzdG9yZWQgcm91dGluZXMg b3IgdGFibGVzLgorY2FsbCBteXNxbHRlc3QxLnAxKCk7CitFUlJPUiA0MjAwMDogZXhlY3V0ZSBj b21tYW5kIGRlbmllZCB0byB1c2VyICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0JyBmb3Igcm91dGlu ZSAnbXlzcWx0ZXN0MS5wMScKK3NlbGVjdCBteXNxbHRlc3QxLmYxKCk7CitFUlJPUiA0MjAwMDog ZXhlY3V0ZSBjb21tYW5kIGRlbmllZCB0byB1c2VyICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0JyBm b3Igcm91dGluZSAnbXlzcWx0ZXN0MS5mMScKK3NlbGVjdCAqIGZyb20gbXlzcWx0ZXN0MS50MTE7 CitFUlJPUiA0MjAwMDogU0VMRUNUIGNvbW1hbmQgZGVuaWVkIHRvIHVzZXIgJ215c3FsdXNlcjEn QCdsb2NhbGhvc3QnIGZvciB0YWJsZSAndDExJworc2VsZWN0ICogZnJvbSBteXNxbHRlc3QxLnQy MjsKK0VSUk9SIDQyMDAwOiBTRUxFQ1QgY29tbWFuZCBkZW5pZWQgdG8gdXNlciAnbXlzcWx1c2Vy MSdAJ2xvY2FsaG9zdCcgZm9yIHRhYmxlICd0MjInCisjCisjIFN3aXRjaCB0byBjb25uZWN0aW9u ICdkZWZhdWx0Jy4KKyMKKyMgTm93IGNyZWF0ZSB1c2VyIHdpdGggdGhlIG9sZCBuYW1lIGFuZCBj aGVjayB0aGF0IGhlCisjIGhhcyBub3QgaW5oZXJpdGVkIHByaXZpbGVnZXMuCitjcmVhdGUgdXNl ciBteXNxbHVzZXIxQGxvY2FsaG9zdDsKK3Nob3cgZ3JhbnRzIGZvciBteXNxbHVzZXIxQGxvY2Fs aG9zdDsKK0dyYW50cyBmb3IgbXlzcWx1c2VyMUBsb2NhbGhvc3QKK0dSQU5UIFVTQUdFIE9OICou KiBUTyAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcKK3NlbGVjdCBkYiwgcm91dGluZV9uYW1lLCBy b3V0aW5lX3R5cGUsIHByb2NfcHJpdiBmcm9tIG15c3FsLnByb2NzX3ByaXYgd2hlcmUgdXNlcj0n bXlzcWx1c2VyMScgYW5kIGhvc3Q9J2xvY2FsaG9zdCc7CitkYglyb3V0aW5lX25hbWUJcm91dGlu ZV90eXBlCXByb2NfcHJpdgorc2VsZWN0IGRiLCB0YWJsZV9uYW1lLCB0YWJsZV9wcml2IGZyb20g bXlzcWwudGFibGVzX3ByaXYgd2hlcmUgdXNlcj0nbXlzcWx1c2VyMScgYW5kIGhvc3Q9J2xvY2Fs aG9zdCc7CitkYgl0YWJsZV9uYW1lCXRhYmxlX3ByaXYKKyMKKyMgQ3JlYXRlIGNvbm5lY3Rpb24g J2J1Z18zNjU0NF9jb24zJyBhcyAnbXlzcWx1c2VyMUBsb2NhbGhvc3QnLgorIyBOZXdseSBjcmVh dGVkIHVzZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyB0byBhbnkgb2YgdGhlCisjIHN0 b3JlZCByb3V0aW5lcyBvciB0YWJsZXMuCitjYWxsIG15c3FsdGVzdDEucDEoKTsKK0VSUk9SIDQy MDAwOiBleGVjdXRlIGNvbW1hbmQgZGVuaWVkIHRvIHVzZXIgJ215c3FsdXNlcjEnQCdsb2NhbGhv c3QnIGZvciByb3V0aW5lICdteXNxbHRlc3QxLnAxJworc2VsZWN0IG15c3FsdGVzdDEuZjEoKTsK K0VSUk9SIDQyMDAwOiBleGVjdXRlIGNvbW1hbmQgZGVuaWVkIHRvIHVzZXIgJ215c3FsdXNlcjEn QCdsb2NhbGhvc3QnIGZvciByb3V0aW5lICdteXNxbHRlc3QxLmYxJworc2VsZWN0ICogZnJvbSBt eXNxbHRlc3QxLnQxMTsKK0VSUk9SIDQyMDAwOiBTRUxFQ1QgY29tbWFuZCBkZW5pZWQgdG8gdXNl ciAnbXlzcWx1c2VyMSdAJ2xvY2FsaG9zdCcgZm9yIHRhYmxlICd0MTEnCitzZWxlY3QgKiBmcm9t IG15c3FsdGVzdDEudDIyOworRVJST1IgNDIwMDA6IFNFTEVDVCBjb21tYW5kIGRlbmllZCB0byB1 c2VyICdteXNxbHVzZXIxJ0AnbG9jYWxob3N0JyBmb3IgdGFibGUgJ3QyMicKKyMKKyMgU3dpdGNo IHRvIGNvbm5lY3Rpb24gJ2RlZmF1bHQnLgorIworIyBOb3cgY2hlY2sgdGhhdCBwcml2aWxlZ2Vz IGJlY2FtZSBhc3NvY2lhdGVkIHdpdGggYSBuZXcgdXNlcgorIyBuYW1lIC0gbXlzcWx1c2VyMTAu CisjCitzaG93IGdyYW50cyBmb3IgbXlzcWx1c2VyMTBAbG9jYWxob3N0OworR3JhbnRzIGZvciBt eXNxbHVzZXIxMEBsb2NhbGhvc3QKK0dSQU5UIFVTQUdFIE9OICouKiBUTyAnbXlzcWx1c2VyMTAn QCdsb2NhbGhvc3QnCitHUkFOVCBTRUxFQ1QgT04gYG15c3FsdGVzdDFgLmB0MjJgIFRPICdteXNx bHVzZXIxMCdAJ2xvY2FsaG9zdCcKK0dSQU5UIFNFTEVDVCBPTiBgbXlzcWx0ZXN0MWAuYHQxMWAg VE8gJ215c3FsdXNlcjEwJ0AnbG9jYWxob3N0JworR1JBTlQgRVhFQ1VURSBPTiBQUk9DRURVUkUg YG15c3FsdGVzdDFgLmBwMWAgVE8gJ215c3FsdXNlcjEwJ0AnbG9jYWxob3N0JworR1JBTlQgRVhF Q1VURSBPTiBGVU5DVElPTiBgbXlzcWx0ZXN0MWAuYGYxYCBUTyAnbXlzcWx1c2VyMTAnQCdsb2Nh bGhvc3QnCitzZWxlY3QgZGIsIHJvdXRpbmVfbmFtZSwgcm91dGluZV90eXBlLCBwcm9jX3ByaXYg ZnJvbSBteXNxbC5wcm9jc19wcml2IHdoZXJlIHVzZXI9J215c3FsdXNlcjEwJyBhbmQgaG9zdD0n bG9jYWxob3N0JzsKK2RiCXJvdXRpbmVfbmFtZQlyb3V0aW5lX3R5cGUJcHJvY19wcml2CitteXNx bHRlc3QxCWYxCUZVTkNUSU9OCUV4ZWN1dGUKK215c3FsdGVzdDEJcDEJUFJPQ0VEVVJFCUV4ZWN1 dGUKK3NlbGVjdCBkYiwgdGFibGVfbmFtZSwgdGFibGVfcHJpdiBmcm9tIG15c3FsLnRhYmxlc19w cml2IHdoZXJlIHVzZXI9J215c3FsdXNlcjEwJyBhbmQgaG9zdD0nbG9jYWxob3N0JzsKK2RiCXRh YmxlX25hbWUJdGFibGVfcHJpdgorbXlzcWx0ZXN0MQl0MTEJU2VsZWN0CitteXNxbHRlc3QxCXQy MglTZWxlY3QKKyMKKyMgQ3JlYXRlIGNvbm5lY3Rpb24gJ2J1Z18zNjU0NF9jb240JyBhcyAnbXlz cWx1c2VyMTBAbG9jYWxob3N0Jy4KK2NhbGwgbXlzcWx0ZXN0MS5wMSgpOworc2VsZWN0IG15c3Fs dGVzdDEuZjEoKTsKK215c3FsdGVzdDEuZjEoKQorMAorc2VsZWN0ICogZnJvbSBteXNxbHRlc3Qx LnQxMTsKK2kKK3NlbGVjdCAqIGZyb20gbXlzcWx0ZXN0MS50MjI7CitpCisjCisjIFN3aXRjaCB0 byBjb25uZWN0aW9uICdkZWZhdWx0Jy4KKyMKKyMgQ2xlYW4tdXAuCitkcm9wIHVzZXIgbXlzcWx1 c2VyMUBsb2NhbGhvc3Q7Citkcm9wIHVzZXIgbXlzcWx1c2VyMTBAbG9jYWxob3N0OworZHJvcCB1 c2VyIG15c3FsdXNlcjExQGxvY2FsaG9zdDsKK2Ryb3AgZGF0YWJhc2UgbXlzcWx0ZXN0MTsKIEVu ZCBvZiA1LjAgdGVzdHMKIHNldCBuYW1lcyB1dGY4OwogZ3JhbnQgc2VsZWN0IG9uIHRlc3QuKiB0 byDvv73vv73vv73vv73vv73vv73vv73vv71f77+977+977+977+977+977+977+977+9QGxvY2Fs aG9zdDsKQEAgLTE0MjIsMTEgKzE2MTUsNyBAQCBmbjIoKQogMgogRFJPUCBVU0VSICd1c2VyYnVn MzM0NjQnQCdsb2NhbGhvc3QnOwogRFJPUCBGVU5DVElPTiBmbjE7Ci1XYXJuaW5nczoKLVdhcm5p bmcJMTQwMwlUaGVyZSBpcyBubyBzdWNoIGdyYW50IGRlZmluZWQgZm9yIHVzZXIgJ3VzZXJidWcz MzQ2NCcgb24gaG9zdCAnbG9jYWxob3N0JyBvbiByb3V0aW5lICdmbjEnCiBEUk9QIEZVTkNUSU9O IGZuMjsKLVdhcm5pbmdzOgotV2FybmluZwkxNDAzCVRoZXJlIGlzIG5vIHN1Y2ggZ3JhbnQgZGVm aW5lZCBmb3IgdXNlciAndXNlcmJ1ZzMzNDY0JyBvbiBob3N0ICdsb2NhbGhvc3QnIG9uIHJvdXRp bmUgJ2ZuMicKIERST1AgUFJPQ0VEVVJFIHNwMzsKIERST1AgVVNFUiAndXNlcmJ1ZzMzNDY0J0An bG9jYWxob3N0JzsKIFVTRSB0ZXN0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci94 bWwucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IveG1sLnJlc3VsdAkyMDExLTAxLTE4IDA2OjM4 OjQxICswMDAwCisrKyBiL215c3FsLXRlc3Qvci94bWwucmVzdWx0CTIwMTEtMDMtMDEgMTI6MzA6 MTggKzAwMDAKQEAgLTExMjQsNCArMTEyNCwxMiBAQCBXYXJuaW5nCTE1MjUJSW5jb3JyZWN0IFhN TCB2YWx1ZTogJ3BhcnNlCiBTRUxFQ1QgVVBEQVRFWE1MKENPTlZFUlQoX2xhdGluMSc8IS0tJyBV U0lORyB1dGY4KSwnMScsJzEnKTsKIFVQREFURVhNTChDT05WRVJUKF9sYXRpbjEnPCEtLScgVVNJ TkcgdXRmOCksJzEnLCcxJykKIE5VTEwKKyMKKyMgQnVnIzExNzY2NzI1IChidWcjNTk5MDEpOiBF WFRSQUNUVkFMVUUgU1RJTEwgQlJPS0VOIEFGVEVSIEZJWCBGT1IgQlVHICM0NDMzMgorIworU0VM RUNUIEV4dHJhY3RWYWx1ZShDT05WRVJUKCc8XCInLCBCSU5BUlkoMTApKSwgMSk7CitFeHRyYWN0 VmFsdWUoQ09OVkVSVCgnPFwiJywgQklOQVJZKDEwKSksIDEpCitOVUxMCitXYXJuaW5nczoKK1dh cm5pbmcJMTUyNQlJbmNvcnJlY3QgWE1MIHZhbHVlOiAncGFyc2UgZXJyb3IgYXQgbGluZSAxIHBv cyAxMTogU1RSSU5HIHVuZXhwZWN0ZWQgKGlkZW50IG9yICcvJyB3YW50ZWQpJwogRW5kIG9mIDUu MSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZW5naW5lcy9pdWRz L3IvaW5zZXJ0X3llYXIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2VuZ2luZXMvaXVk cy9yL2luc2VydF95ZWFyLnJlc3VsdAkyMDEwLTA0LTA2IDE4OjA2OjM0ICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvZW5naW5lcy9pdWRzL3IvaW5zZXJ0X3llYXIucmVzdWx0CTIwMTEtMDMt MDEgMTU6NTY6MjQgKzAwMDAKQEAgLTI0MzEsNyArMjQzMSw3IEBAIGMxCWMyCWMzCWM0CiAyMTU1 CTIxNTUJMTk5OC0xMi0yNgkxOTk4LTEyLTI2IDExOjMwOjQ1CiBTRUxFQ1QgY291bnQoKikgYXMg dG90YWxfcm93cywgbWluKGMyKSBhcyBtaW5fdmFsdWUsIG1heChjMikgRlJPTSB0MzsKIHRvdGFs X3Jvd3MJbWluX3ZhbHVlCW1heChjMikKLTIxCTE5MDEJMjE1NQorMjEJMAkyMTU1CiBTRUxFQ1Qg KiBGUk9NIHQzIFdIRVJFIGMzID0gJzE5OTgtMTItMTEnOwogYzEJYzIJYzMJYzQKIDE5OTAJMTk5 MAkxOTk4LTEyLTExCTE5OTgtMTItMTEgMTE6MzA6NDUKQEAgLTI4MzgsNyArMjgzOCw3IEBAIGMx CWMyCWMzCWM0CiAyMTU1CTIxNTUJMTk5OC0xMi0yNgkxOTk4LTEyLTI2IDExOjMwOjQ1CiBTRUxF Q1QgY291bnQoKikgYXMgdG90YWxfcm93cywgbWluKGMyKSBhcyBtaW5fdmFsdWUsIG1heChjMikg RlJPTSB0MzsKIHRvdGFsX3Jvd3MJbWluX3ZhbHVlCW1heChjMikKLTIxCTE5MDEJMjE1NQorMjEJ MAkyMTU1CiBTRUxFQ1QgKiBGUk9NIHQzIFdIRVJFIGMzID0gJzE5OTgtMTItMTEnOwogYzEJYzIJ YzMJYzQKIDE5OTAJMTk5MAkxOTk4LTEyLTExCTE5OTgtMTItMTEgMTE6MzA6NDUKCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5vZGJfc3RvcmVkcHJvY18w Ni5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl9zdG9yZWRw cm9jXzA2LnJlc3VsdAkyMDEwLTAzLTE5IDA4OjU2OjI2ICswMDAwCisrKyBiL215c3FsLXRlc3Qv c3VpdGUvZnVuY3NfMS9yL2lubm9kYl9zdG9yZWRwcm9jXzA2LnJlc3VsdAkyMDExLTAyLTA3IDEy OjA2OjIyICswMDAwCkBAIC0xMjgsOCArMTI4LDYgQEAgcm9vdEBsb2NhbGhvc3QJZGJfc3RvcmVk cHJvY18xCiBkcm9wIHVzZXIgJ3VzZXJfMSdAJ2xvY2FsaG9zdCc7CiBEUk9QIFBST0NFRFVSRSBz cDM7CiBEUk9QIEZVTkNUSU9OIGZuMTsKLVdhcm5pbmdzOgotV2FybmluZwkxNDAzCVRoZXJlIGlz IG5vIHN1Y2ggZ3JhbnQgZGVmaW5lZCBmb3IgdXNlciAndXNlcl8xJyBvbiBob3N0ICdsb2NhbGhv c3QnIG9uIHJvdXRpbmUgJ2ZuMScKIAogVGVzdGNhc2UgMy4xLjYuNDoKIC0tLS0tLS0tLS0tLS0t LS0tCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5 X3N0b3JlZHByb2NfMDYucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9t ZW1vcnlfc3RvcmVkcHJvY18wNi5yZXN1bHQJMjAxMC0wMy0xOSAwODo1NjoyNiArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfc3RvcmVkcHJvY18wNi5yZXN1bHQJ MjAxMS0wMi0wNyAxMjowNjoyMiArMDAwMApAQCAtMTI5LDggKzEyOSw2IEBAIHJvb3RAbG9jYWxo b3N0CWRiX3N0b3JlZHByb2NfMQogZHJvcCB1c2VyICd1c2VyXzEnQCdsb2NhbGhvc3QnOwogRFJP UCBQUk9DRURVUkUgc3AzOwogRFJPUCBGVU5DVElPTiBmbjE7Ci1XYXJuaW5nczoKLVdhcm5pbmcJ MTQwMwlUaGVyZSBpcyBubyBzdWNoIGdyYW50IGRlZmluZWQgZm9yIHVzZXIgJ3VzZXJfMScgb24g aG9zdCAnbG9jYWxob3N0JyBvbiByb3V0aW5lICdmbjEnCiAKIFRlc3RjYXNlIDMuMS42LjQ6CiAt LS0tLS0tLS0tLS0tLS0tLQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVu Y3NfMS9yL215aXNhbV9zdG9yZWRwcm9jXzA2LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0 ZS9mdW5jc18xL3IvbXlpc2FtX3N0b3JlZHByb2NfMDYucmVzdWx0CTIwMTAtMDMtMTkgMDg6NTY6 MjYgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbXlpc2FtX3N0b3JlZHBy b2NfMDYucmVzdWx0CTIwMTEtMDItMDcgMTI6MDY6MjIgKzAwMDAKQEAgLTEyOSw4ICsxMjksNiBA QCByb290QGxvY2FsaG9zdAlkYl9zdG9yZWRwcm9jXzEKIGRyb3AgdXNlciAndXNlcl8xJ0AnbG9j YWxob3N0JzsKIERST1AgUFJPQ0VEVVJFIHNwMzsKIERST1AgRlVOQ1RJT04gZm4xOwotV2Fybmlu Z3M6Ci1XYXJuaW5nCTE0MDMJVGhlcmUgaXMgbm8gc3VjaCBncmFudCBkZWZpbmVkIGZvciB1c2Vy ICd1c2VyXzEnIG9uIGhvc3QgJ2xvY2FsaG9zdCcgb24gcm91dGluZSAnZm4xJwogCiBUZXN0Y2Fz ZSAzLjEuNi40OgogLS0tLS0tLS0tLS0tLS0tLS0KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3N1aXRlL2Z1bmNzXzEvc3RvcmVkcHJvYy9zdG9yZWRwcm9jXzA2LmluYycKLS0tIGEvbXlz cWwtdGVzdC9zdWl0ZS9mdW5jc18xL3N0b3JlZHByb2Mvc3RvcmVkcHJvY18wNi5pbmMJMjAxMC0w My0xOSAwODo1NjoyNiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvc3RvcmVk cHJvYy9zdG9yZWRwcm9jXzA2LmluYwkyMDExLTAyLTA3IDEyOjA2OjIyICswMDAwCkBAIC0xNDks MTAgKzE0OSw2IEBAIFVTRSBkYl9zdG9yZWRwcm9jXzE7CiAKIGRyb3AgdXNlciAndXNlcl8xJ0An bG9jYWxob3N0JzsKIERST1AgUFJPQ0VEVVJFIHNwMzsKLSMgVGhpcyBkcm9wIGZ1bmN0aW9uIHNo b3VsZG4ndCBnZW5lcmF0ZWQgYSB3YXJuaW5nIGFzIHRoZQotIyBwcml2aWxlZ2VzIHNob3VsZCBo YXZlIGJlZW4gcmVtb3ZlZCB3aGVuIHRoZSB1c2VyIHdhcwotIyBkcm9wcGVkLiBSZXBvcnRlZCBh cyBCdWcjMzY1NDQgRFJPUCBVU0VSIGRvZXMgbm90IHJlbW92ZQotIyBzdG9yZWQgZnVuY3Rpb24g cHJpdmlsZWdlcwogRFJPUCBGVU5DVElPTiBmbjE7CiAKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3QvdC9jdHlwZV9zamlzLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9jdHlwZV9zamlz LnRlc3QJMjAwOS0wNS0wNSAwNjo1NToyMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvY3R5cGVf c2ppcy50ZXN0CTIwMTEtMDMtMDMgMTU6Mzk6MjYgKzAwMDAKQEAgLTkyLDQgKzkyLDEyIEBAIElO U0VSVCBJTlRPIHQxIFZBTFVFUyAoMHg4MzcyODM1RSksKDB4ODMKIFNFTEVDVCBoZXgoYSksIGhl eChsb3dlcihhKSksIGhleCh1cHBlcihhKSkgRlJPTSB0MSBPUkRFUiBCWSBiaW5hcnkoYSk7CiBE Uk9QIFRBQkxFIHQxOwogCistLWVjaG8gIworLS1lY2hvICMgQnVnIzExNzY2NTE5IC0gQnVnIzU5 NjQ4OiBNWV9TVFJUT0xMMTBfTUIyOiBBU1NFUlRJT04gYCgqRU5EUFRSIC0gUykgJSAyID09IDAn IEZBSUxFRC4KKy0tZWNobyAjCisjIEluIHRoZSBiZWxvdyBzdHJpbmcgYmFja3NsYXNoICgweDVD KSBpcyBhIHBhcnQgb2YgYSBtdWx0aS1ieXRlCisjIGNoYXJhY3Rlciwgc28gaXQgc2hvdWxkIG5v dCBiZSBxdW90ZWQuCitTRUxFQ1QgUVVPVEUoJ++/vVwnKTsKKworCiAtLWVjaG8gIyBFbmQgb2Yg NS4xIHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L2N0eXBlX3Vjcy50ZXN0 JwotLS0gYS9teXNxbC10ZXN0L3QvY3R5cGVfdWNzLnRlc3QJMjAxMC0wNC0wNiAwNzoyNjo1OSAr MDAwMAorKysgYi9teXNxbC10ZXN0L3QvY3R5cGVfdWNzLnRlc3QJMjAxMS0wMy0wMyAxNTozOToy NiArMDAwMApAQCAtNzQxLDQgKzc0MSwxMCBAQCBXSEVSRSB0MS5iIDw9PiAoU0VMRUNUIGEgRlJP TSB0MSBXSEVSRSBhCiBEUk9QIFZJRVcgdjE7CiBEUk9QIFRBQkxFIHQxOwogCistLWVjaG8gIwor LS1lY2hvICMgQnVnIzU5NjQ4IG15X3N0cnRvbGwxMF9tYjI6IEFzc2VydGlvbiBgKCplbmRwdHIg LSBzKSAlIDIgPT0gMCcgZmFpbGVkLgorLS1lY2hvICMKK1NFTEVDVCBIRVgoQ0hBUihDT0FMRVND RShOVUxMLCBDSEFSKENPVU5UKCclcycpIFVTSU5HIHVjczIpLCAxLCBAQGdsb2JhbC5saWNlbnNl LCBOVUxMKSBVU0lORyBjcDg1MCkpOworU0VMRUNUIENPTlZFUlQoUVVPVEUoQ0hBUigweGY1IHVz aW5nIHVjczIpKSwgU0lHTkVEKTsKKwogLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMKCj09PSBhZGRl ZCBmaWxlICdteXNxbC10ZXN0L3QvZnVuY19lbmNyeXB0X3VjczIudGVzdCcKLS0tIGEvbXlzcWwt dGVzdC90L2Z1bmNfZW5jcnlwdF91Y3MyLnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAor KysgYi9teXNxbC10ZXN0L3QvZnVuY19lbmNyeXB0X3VjczIudGVzdAkyMDExLTAzLTAzIDEyOjA0 OjA0ICswMDAwCkBAIC0wLDAgKzEsMTIgQEAKKy0tIHNvdXJjZSBpbmNsdWRlL2hhdmVfc3NsLmlu YworLS0gc291cmNlIGluY2x1ZGUvaGF2ZV91Y3MyLmluYworCistLWVjaG8gIworLS1lY2hvICMg QnVnIzU5NjQ4IG15X3N0cnRvbGwxMF9tYjI6IEFzc2VydGlvbiBgKCplbmRwdHIgLSBzKSAlIDIg PT0gMCcgZmFpbGVkLgorLS1lY2hvICMKKworU0VMRUNUIENIQVJfTEVOR1RIKERFU19FTkNSWVBU KDAsIENIQVIoJzEnIFVTSU5HIHVjczIpKSk7CitTRUxFQ1QgQ09OVkVSVChERVNfRU5DUllQVCgw LCBDSEFSKCcxJyBVU0lORyB1Y3MyKSksVU5TSUdORUQpOworCitTRUxFQ1QgQ0hBUl9MRU5HVEgo REVTX0RFQ1JZUFQoMHhGRjBEQzlGQzk1MzdDQTc1RjQsIENIQVIoJzEnIFVTSU5HIHVjczIpKSk7 CitTRUxFQ1QgQ09OVkVSVChERVNfREVDUllQVCgweEZGMERDOUZDOTUzN0NBNzVGNCwgQ0hBUign MScgdXNpbmcgdWNzMikpLCBVTlNJR05FRCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC90L2dyYW50LnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9ncmFudC50ZXN0CTIwMTAtMTItMTUg MTY6MDg6MjEgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2dyYW50LnRlc3QJMjAxMS0wMi0wNyAx MjowNjoyMiArMDAwMApAQCAtMTM5Niw2ICsxMzk2LDE4MyBAQCBEUk9QIFVTRVIgdGVzdHVzZXJA bG9jYWxob3N0OwogdXNlIHRlc3Q7CiAtLWVjaG8KIAorCistLWVjaG8gIworLS1lY2hvICMgVGVz dCBmb3IgYnVnICMzNjU0NCAiRFJPUCBVU0VSIGRvZXMgbm90IHJlbW92ZSBzdG9yZWQgZnVuY3Rp b24KKy0tZWNobyAjICAgICAgICAgICAgICAgICAgICAgIHByaXZpbGVnZXMiLgorLS1lY2hvICMK K2NyZWF0ZSBkYXRhYmFzZSBteXNxbHRlc3QxOworY3JlYXRlIGZ1bmN0aW9uIG15c3FsdGVzdDEu ZjEoKSByZXR1cm5zIGludCByZXR1cm4gMDsKK2NyZWF0ZSBwcm9jZWR1cmUgbXlzcWx0ZXN0MS5w MSgpIGJlZ2luIGVuZDsKKy0tZWNobyAjCistLWVjaG8gIyAxKSBDaGVjayB0aGF0IERST1AgVVNF UiBwcm9wZXJseSByZW1vdmVzIHByaXZpbGVnZXMgb24gYm90aAorLS1lY2hvICMgICAgc3RvcmVk IHByb2NlZHVyZXMgYW5kIGZ1bmN0aW9ucy4KKy0tZWNobyAjCitjcmVhdGUgdXNlciBteXNxbHVz ZXIxQGxvY2FsaG9zdDsKK2dyYW50IGV4ZWN1dGUgb24gZnVuY3Rpb24gbXlzcWx0ZXN0MS5mMSB0 byBteXNxbHVzZXIxQGxvY2FsaG9zdDsKK2dyYW50IGV4ZWN1dGUgb24gcHJvY2VkdXJlIG15c3Fs dGVzdDEucDEgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CisKKy0tZWNobyAjIFF1aWNrIHRlc3Qg dGhhdCBncmFudGVkIHByaXZpbGVnZXMgYXJlIHByb3Blcmx5IHJlZmxlY3RlZAorLS1lY2hvICMg aW4gcHJpdmlsZWdlIHRhYmxlcyBhbmQgaW4gaW4tbWVtb3J5IHN0cnVjdHVyZXMuCitzaG93IGdy YW50cyBmb3IgbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitzZWxlY3QgZGIsIHJvdXRpbmVfbmFtZSwg cm91dGluZV90eXBlLCBwcm9jX3ByaXYgZnJvbSBteXNxbC5wcm9jc19wcml2IHdoZXJlIHVzZXI9 J215c3FsdXNlcjEnIGFuZCBob3N0PSdsb2NhbGhvc3QnOworLS1lY2hvICMKKy0tZWNobyAjIENy ZWF0ZSBjb25uZWN0aW9uICdidWdfMzY1NDRfY29uMScgYXMgJ215c3FsdXNlcjFAbG9jYWxob3N0 Jy4KKy0tY29ubmVjdCAoYnVnMzY1NDRfY29uMSxsb2NhbGhvc3QsbXlzcWx1c2VyMSwsKQorY2Fs bCBteXNxbHRlc3QxLnAxKCk7CitzZWxlY3QgbXlzcWx0ZXN0MS5mMSgpOworCistLWVjaG8gIwor LS1lY2hvICMgU3dpdGNoIHRvIGNvbm5lY3Rpb24gJ2RlZmF1bHQnLgorLS1jb25uZWN0aW9uIGRl ZmF1bHQKK2Ryb3AgdXNlciBteXNxbHVzZXIxQGxvY2FsaG9zdDsKKworLS1lY2hvICMKKy0tZWNo byAjIFRlc3QgdGhhdCBkcm9wcGluZyBvZiB1c2VyIGlzIHByb3Blcmx5IHJlZmxlY3RlZCBpbgor LS1lY2hvICMgYm90aCBwcml2aWxlZ2UgdGFibGVzIGFuZCBpbiBpbi1tZW1vcnkgc3RydWN0dXJl cy4KKy0tZWNobyAjCistLWVjaG8gIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAnYnVnMzY1NDRfY29u MScuCistLWNvbm5lY3Rpb24gYnVnMzY1NDRfY29uMQorLS1lY2hvICMgVGhlIGNvbm5lY3Rpb24g Y29sZCBiZSBhbGl2ZSBidXQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvCistLWVjaG8gIyBhY2Nlc3Mg dG8gYW55IG9mIHRoZSBzdG9yZWQgcm91dGluZXMuCistLWVycm9yIEVSX1BST0NBQ0NFU1NfREVO SUVEX0VSUk9SCitjYWxsIG15c3FsdGVzdDEucDEoKTsKKy0tZXJyb3IgRVJfUFJPQ0FDQ0VTU19E RU5JRURfRVJST1IKK3NlbGVjdCBteXNxbHRlc3QxLmYxKCk7CistLWRpc2Nvbm5lY3QgYnVnMzY1 NDRfY29uMQorCistLWVjaG8gIworLS1lY2hvICMgU3dpdGNoIHRvIGNvbm5lY3Rpb24gJ2RlZmF1 bHQnLgorLS1jb25uZWN0aW9uIGRlZmF1bHQKKy0tZWNobyAjCistLWVjaG8gIyBOb3cgY3JlYXRl IHVzZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGFuZCBjaGVjayB0aGF0IGhlCistLWVjaG8gIyBoYXMg bm90IGluaGVyaXRlZCBwcml2aWxlZ2VzLgorY3JlYXRlIHVzZXIgbXlzcWx1c2VyMUBsb2NhbGhv c3Q7CitzaG93IGdyYW50cyBmb3IgbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitzZWxlY3QgZGIsIHJv dXRpbmVfbmFtZSwgcm91dGluZV90eXBlLCBwcm9jX3ByaXYgZnJvbSBteXNxbC5wcm9jc19wcml2 IHdoZXJlIHVzZXI9J215c3FsdXNlcjEnIGFuZCBob3N0PSdsb2NhbGhvc3QnOworLS1lY2hvICMK Ky0tZWNobyAjIENyZWF0ZSBjb25uZWN0aW9uICdidWdfMzY1NDRfY29uMicgYXMgJ215c3FsdXNl cjFAbG9jYWxob3N0Jy4KKy0tY29ubmVjdCAoYnVnMzY1NDRfY29uMixsb2NhbGhvc3QsbXlzcWx1 c2VyMSwsKQorLS1lY2hvICMgTmV3bHkgY3JlYXRlZCB1c2VyIHNob3VsZCBub3QgYmUgYWJsZSB0 byBhY2Nlc3MgYW55IG9mIHRoZSByb3V0aW5lcy4KKy0tZXJyb3IgRVJfUFJPQ0FDQ0VTU19ERU5J RURfRVJST1IKK2NhbGwgbXlzcWx0ZXN0MS5wMSgpOworLS1lcnJvciBFUl9QUk9DQUNDRVNTX0RF TklFRF9FUlJPUgorc2VsZWN0IG15c3FsdGVzdDEuZjEoKTsKKy0tZWNobyAjCistLWVjaG8gIyBT d2l0Y2ggdG8gY29ubmVjdGlvbiAnZGVmYXVsdCcuCistLWNvbm5lY3Rpb24gZGVmYXVsdAorCist LWVjaG8gIworLS1lY2hvICMgMikgQ2hlY2sgdGhhdCBSRU5BTUUgVVNFUiBwcm9wZXJseSB1cGRh dGVzIHByaXZpbGVnZXMgb24gYm90aAorLS1lY2hvICMgICAgc3RvcmVkIHByb2NlZHVyZXMgYW5k IGZ1bmN0aW9ucy4KKy0tZWNobyAjCitncmFudCBleGVjdXRlIG9uIGZ1bmN0aW9uIG15c3FsdGVz dDEuZjEgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitncmFudCBleGVjdXRlIG9uIHByb2NlZHVy ZSBteXNxbHRlc3QxLnAxIHRvIG15c3FsdXNlcjFAbG9jYWxob3N0OworLS1lY2hvICMKKy0tZWNo byAjIENyZWF0ZSBvbmUgbW9yZSB1c2VyIHRvIG1ha2UgaW4tbWVtb3J5IGhhc2hlcyBub24tdHJp dmlhbC4KKy0tZWNobyAjIFVzZXIgbmFtZXMgJ215c3FsdXNlcjExJyBhbmQgJ215c3FsdXNlcjEw JyB3ZXJlIHNlbGVjdGVkCistLWVjaG8gIyB0byB0cmlnZ2VyIGJ1ZyBkaXNjb3ZlcmVkIGR1cmlu ZyBjb2RlIGluc3BlY3Rpb24uCitjcmVhdGUgdXNlciBteXNxbHVzZXIxMUBsb2NhbGhvc3Q7Citn cmFudCBleGVjdXRlIG9uIGZ1bmN0aW9uIG15c3FsdGVzdDEuZjEgdG8gbXlzcWx1c2VyMTFAbG9j YWxob3N0OworZ3JhbnQgZXhlY3V0ZSBvbiBwcm9jZWR1cmUgbXlzcWx0ZXN0MS5wMSB0byBteXNx bHVzZXIxMUBsb2NhbGhvc3Q7CistLWVjaG8gIyBBbHNvIGNyZWF0ZSBhIGNvdXBsZSBvZiB0YWJs ZXMgdG8gdGVzdCBmb3IgYW5vdGhlciBidWcKKy0tZWNobyAjIGRpc2NvdmVyZWQgZHVyaW5nIGNv ZGUgaW5zcGVjdGlvbiAoYWdhaW4gdGFibGUgbmFtZXMgd2VyZQorLS1lY2hvICMgY2hvc2VuIGVz cGVjaWFsbHkgdG8gdHJpZ2dlciB0aGUgYnVnKS4KK2NyZWF0ZSB0YWJsZSBteXNxbHRlc3QxLnQx MSAoaSBpbnQpOworY3JlYXRlIHRhYmxlIG15c3FsdGVzdDEudDIyIChpIGludCk7CitncmFudCBz ZWxlY3Qgb24gbXlzcWx0ZXN0MS50MjIgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitncmFudCBz ZWxlY3Qgb24gbXlzcWx0ZXN0MS50MTEgdG8gbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CisKKy0tZWNo byAjIFF1aWNrIHRlc3QgdGhhdCBncmFudGVkIHByaXZpbGVnZXMgYXJlIHByb3Blcmx5IHJlZmxl Y3RlZAorLS1lY2hvICMgaW4gcHJpdmlsZWdlIHRhYmxlcyBhbmQgaW4gaW4tbWVtb3J5IHN0cnVj dHVyZXMuCitzaG93IGdyYW50cyBmb3IgbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitzZWxlY3QgZGIs IHJvdXRpbmVfbmFtZSwgcm91dGluZV90eXBlLCBwcm9jX3ByaXYgZnJvbSBteXNxbC5wcm9jc19w cml2IHdoZXJlIHVzZXI9J215c3FsdXNlcjEnIGFuZCBob3N0PSdsb2NhbGhvc3QnOworc2VsZWN0 IGRiLCB0YWJsZV9uYW1lLCB0YWJsZV9wcml2IGZyb20gbXlzcWwudGFibGVzX3ByaXYgd2hlcmUg dXNlcj0nbXlzcWx1c2VyMScgYW5kIGhvc3Q9J2xvY2FsaG9zdCc7CistLWVjaG8gIworLS1lY2hv ICMgU3dpdGNoIHRvIGNvbm5lY3Rpb24gJ2J1ZzM2NTQ0X2NvbjInLgorLS1jb25uZWN0aW9uIGJ1 ZzM2NTQ0X2NvbjIKK2NhbGwgbXlzcWx0ZXN0MS5wMSgpOworc2VsZWN0IG15c3FsdGVzdDEuZjEo KTsKK3NlbGVjdCAqIGZyb20gbXlzcWx0ZXN0MS50MTE7CitzZWxlY3QgKiBmcm9tIG15c3FsdGVz dDEudDIyOworCistLWVjaG8gIworLS1lY2hvICMgU3dpdGNoIHRvIGNvbm5lY3Rpb24gJ2RlZmF1 bHQnLgorLS1jb25uZWN0aW9uIGRlZmF1bHQKK3JlbmFtZSB1c2VyIG15c3FsdXNlcjFAbG9jYWxo b3N0IHRvIG15c3FsdXNlcjEwQGxvY2FsaG9zdDsKKworLS1lY2hvICMKKy0tZWNobyAjIFRlc3Qg dGhhdCB0aGVyZSBhcmUgbm8gcHJpdmlsZWdlcyBsZWZ0IGZvciBteXNxbHVzZXIxLgorLS1lY2hv ICMKKy0tZWNobyAjIFN3aXRjaCB0byBjb25uZWN0aW9uICdidWczNjU0NF9jb24yJy4KKy0tY29u bmVjdGlvbiBidWczNjU0NF9jb24yCistLWVjaG8gIyBUaGUgY29ubmVjdGlvbiBjb2xkIGJlIGFs aXZlIGJ1dCBzaG91bGQgbm90IGJlIGFibGUgdG8KKy0tZWNobyAjIGFjY2VzcyB0byBhbnkgb2Yg dGhlIHN0b3JlZCByb3V0aW5lcyBvciB0YWJsZXMuCistLWVycm9yIEVSX1BST0NBQ0NFU1NfREVO SUVEX0VSUk9SCitjYWxsIG15c3FsdGVzdDEucDEoKTsKKy0tZXJyb3IgRVJfUFJPQ0FDQ0VTU19E RU5JRURfRVJST1IKK3NlbGVjdCBteXNxbHRlc3QxLmYxKCk7CistLWVycm9yIEVSX1RBQkxFQUND RVNTX0RFTklFRF9FUlJPUgorc2VsZWN0ICogZnJvbSBteXNxbHRlc3QxLnQxMTsKKy0tZXJyb3Ig RVJfVEFCTEVBQ0NFU1NfREVOSUVEX0VSUk9SCitzZWxlY3QgKiBmcm9tIG15c3FsdGVzdDEudDIy OworLS1kaXNjb25uZWN0IGJ1ZzM2NTQ0X2NvbjIKKworLS1lY2hvICMKKy0tZWNobyAjIFN3aXRj aCB0byBjb25uZWN0aW9uICdkZWZhdWx0Jy4KKy0tY29ubmVjdGlvbiBkZWZhdWx0CistLWVjaG8g IworLS1lY2hvICMgTm93IGNyZWF0ZSB1c2VyIHdpdGggdGhlIG9sZCBuYW1lIGFuZCBjaGVjayB0 aGF0IGhlCistLWVjaG8gIyBoYXMgbm90IGluaGVyaXRlZCBwcml2aWxlZ2VzLgorY3JlYXRlIHVz ZXIgbXlzcWx1c2VyMUBsb2NhbGhvc3Q7CitzaG93IGdyYW50cyBmb3IgbXlzcWx1c2VyMUBsb2Nh bGhvc3Q7CitzZWxlY3QgZGIsIHJvdXRpbmVfbmFtZSwgcm91dGluZV90eXBlLCBwcm9jX3ByaXYg ZnJvbSBteXNxbC5wcm9jc19wcml2IHdoZXJlIHVzZXI9J215c3FsdXNlcjEnIGFuZCBob3N0PSds b2NhbGhvc3QnOworc2VsZWN0IGRiLCB0YWJsZV9uYW1lLCB0YWJsZV9wcml2IGZyb20gbXlzcWwu dGFibGVzX3ByaXYgd2hlcmUgdXNlcj0nbXlzcWx1c2VyMScgYW5kIGhvc3Q9J2xvY2FsaG9zdCc7 CistLWVjaG8gIworLS1lY2hvICMgQ3JlYXRlIGNvbm5lY3Rpb24gJ2J1Z18zNjU0NF9jb24zJyBh cyAnbXlzcWx1c2VyMUBsb2NhbGhvc3QnLgorLS1jb25uZWN0IChidWczNjU0NF9jb24zLGxvY2Fs aG9zdCxteXNxbHVzZXIxLCwpCistLWVjaG8gIyBOZXdseSBjcmVhdGVkIHVzZXIgc2hvdWxkIG5v dCBiZSBhYmxlIHRvIGFjY2VzcyB0byBhbnkgb2YgdGhlCistLWVjaG8gIyBzdG9yZWQgcm91dGlu ZXMgb3IgdGFibGVzLgorLS1lcnJvciBFUl9QUk9DQUNDRVNTX0RFTklFRF9FUlJPUgorY2FsbCBt eXNxbHRlc3QxLnAxKCk7CistLWVycm9yIEVSX1BST0NBQ0NFU1NfREVOSUVEX0VSUk9SCitzZWxl Y3QgbXlzcWx0ZXN0MS5mMSgpOworLS1lcnJvciBFUl9UQUJMRUFDQ0VTU19ERU5JRURfRVJST1IK K3NlbGVjdCAqIGZyb20gbXlzcWx0ZXN0MS50MTE7CistLWVycm9yIEVSX1RBQkxFQUNDRVNTX0RF TklFRF9FUlJPUgorc2VsZWN0ICogZnJvbSBteXNxbHRlc3QxLnQyMjsKKy0tZGlzY29ubmVjdCBi dWczNjU0NF9jb24zCisKKy0tZWNobyAjCistLWVjaG8gIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAn ZGVmYXVsdCcuCistLWNvbm5lY3Rpb24gZGVmYXVsdAorLS1lY2hvICMKKy0tZWNobyAjIE5vdyBj aGVjayB0aGF0IHByaXZpbGVnZXMgYmVjYW1lIGFzc29jaWF0ZWQgd2l0aCBhIG5ldyB1c2VyCist LWVjaG8gIyBuYW1lIC0gbXlzcWx1c2VyMTAuCistLWVjaG8gIworc2hvdyBncmFudHMgZm9yIG15 c3FsdXNlcjEwQGxvY2FsaG9zdDsKK3NlbGVjdCBkYiwgcm91dGluZV9uYW1lLCByb3V0aW5lX3R5 cGUsIHByb2NfcHJpdiBmcm9tIG15c3FsLnByb2NzX3ByaXYgd2hlcmUgdXNlcj0nbXlzcWx1c2Vy MTAnIGFuZCBob3N0PSdsb2NhbGhvc3QnOworc2VsZWN0IGRiLCB0YWJsZV9uYW1lLCB0YWJsZV9w cml2IGZyb20gbXlzcWwudGFibGVzX3ByaXYgd2hlcmUgdXNlcj0nbXlzcWx1c2VyMTAnIGFuZCBo b3N0PSdsb2NhbGhvc3QnOworLS1lY2hvICMKKy0tZWNobyAjIENyZWF0ZSBjb25uZWN0aW9uICdi dWdfMzY1NDRfY29uNCcgYXMgJ215c3FsdXNlcjEwQGxvY2FsaG9zdCcuCistLWNvbm5lY3QgKGJ1 ZzM2NTQ0X2NvbjQsbG9jYWxob3N0LG15c3FsdXNlcjEwLCwpCitjYWxsIG15c3FsdGVzdDEucDEo KTsKK3NlbGVjdCBteXNxbHRlc3QxLmYxKCk7CitzZWxlY3QgKiBmcm9tIG15c3FsdGVzdDEudDEx Oworc2VsZWN0ICogZnJvbSBteXNxbHRlc3QxLnQyMjsKKy0tZGlzY29ubmVjdCBidWczNjU0NF9j b240CisKKy0tZWNobyAjCistLWVjaG8gIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiAnZGVmYXVsdCcu CistLWNvbm5lY3Rpb24gZGVmYXVsdAorLS1lY2hvICMKKy0tZWNobyAjIENsZWFuLXVwLgorZHJv cCB1c2VyIG15c3FsdXNlcjFAbG9jYWxob3N0OworZHJvcCB1c2VyIG15c3FsdXNlcjEwQGxvY2Fs aG9zdDsKK2Ryb3AgdXNlciBteXNxbHVzZXIxMUBsb2NhbGhvc3Q7Citkcm9wIGRhdGFiYXNlIG15 c3FsdGVzdDE7CisKKwogLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMKIAogIwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3QvdC94bWwudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3htbC50ZXN0 CTIwMTEtMDEtMTggMDY6Mzg6NDEgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3htbC50ZXN0CTIw MTEtMDMtMDEgMTI6MzA6MTggKzAwMDAKQEAgLTY0Niw0ICs2NDYsOSBAQCBTRUxFQ1QgRVhUUkFD VFZBTFVFKCcnLCBMUEFEKDAuMTExMUUtMTUsCiBTRUxFQ1QgVVBEQVRFWE1MKENPTlZFUlQoX2xh dGluMSc8JyBVU0lORyB1dGY4KSwnMScsJzEnKTsKIFNFTEVDVCBVUERBVEVYTUwoQ09OVkVSVChf bGF0aW4xJzwhLS0nIFVTSU5HIHV0ZjgpLCcxJywnMScpOwogCistLWVjaG8gIworLS1lY2hvICMg QnVnIzExNzY2NzI1IChidWcjNTk5MDEpOiBFWFRSQUNUVkFMVUUgU1RJTEwgQlJPS0VOIEFGVEVS IEZJWCBGT1IgQlVHICM0NDMzMgorLS1lY2hvICMKK1NFTEVDVCBFeHRyYWN0VmFsdWUoQ09OVkVS VCgnPFwiJywgQklOQVJZKDEwKSksIDEpOworCiAtLWVjaG8gRW5kIG9mIDUuMSB0ZXN0cwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2Z1bmMuY2MnCi0tLSBhL3NxbC9pdGVtX2Z1bmMuY2MJ MjAxMS0wMi0yMiAyMTowMzozMiArMDAwMAorKysgYi9zcWwvaXRlbV9mdW5jLmNjCTIwMTEtMDMt MDMgMTI6MDQ6MDQgKzAwMDAKQEAgLTg0MCw3ICs4NDAsNyBAQCBsb25nbG9uZyBJdGVtX2Z1bmNf bnVtaHlicmlkOjp2YWxfaW50KCkKICAgICAgIHJldHVybiAwOwogCiAgICAgY2hhciAqZW5kPSAo Y2hhciopIHJlcy0+cHRyKCkgKyByZXMtPmxlbmd0aCgpOwotICAgIENIQVJTRVRfSU5GTyAqY3M9 IHN0cl92YWx1ZS5jaGFyc2V0KCk7CisgICAgQ0hBUlNFVF9JTkZPICpjcz0gcmVzLT5jaGFyc2V0 KCk7CiAgICAgcmV0dXJuICgqKGNzLT5jc2V0LT5zdHJ0b2xsMTApKShjcywgcmVzLT5wdHIoKSwg JmVuZCwgJmVycl9ub3RfdXNlZCk7CiAgIH0KICAgZGVmYXVsdDoKCj09PSBtb2RpZmllZCBmaWxl ICdzcWwvaXRlbV9zdHJmdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9zdHJmdW5jLmNjCTIwMTEtMDEt MTcgMTI6MTE6MzMgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDExLTAzLTAzIDE1 OjM5OjI2ICswMDAwCkBAIC01MTksNiArNTE5LDcgQEAgU3RyaW5nICpJdGVtX2Z1bmNfZGVzX2Vu Y3J5cHQ6OnZhbF9zdHIoUwogICB0bXBfYXJnW3Jlc19sZW5ndGgtMV09dGFpbDsgICAgICAgICAg ICAgICAgICAgLy8gc2F2ZSBleHRyYSBsZW5ndGgKICAgdG1wX3ZhbHVlLnJlYWxsb2MocmVzX2xl bmd0aCsxKTsKICAgdG1wX3ZhbHVlLmxlbmd0aChyZXNfbGVuZ3RoKzEpOworICB0bXBfdmFsdWUu c2V0X2NoYXJzZXQoJm15X2NoYXJzZXRfYmluKTsKICAgdG1wX3ZhbHVlWzBdPShjaGFyKSAoMTI4 IHwga2V5X251bWJlcik7CiAgIC8vIFJlYWwgZW5jcnlwdGlvbgogICBiemVybygoY2hhciopICZp dmVjLHNpemVvZihpdmVjKSk7CkBAIC02MDYsNiArNjA3LDcgQEAgU3RyaW5nICpJdGVtX2Z1bmNf ZGVzX2RlY3J5cHQ6OnZhbF9zdHIoUwogICBpZiAoKHRhaWw9KHVpbnQpICh1Y2hhcikgdG1wX3Zh bHVlW2xlbmd0aC0yXSkgPiA4KQogICAgIGdvdG8gd3Jvbmdfa2V5OwkJCQkgICAgIC8vIFdyb25n IGtleQogICB0bXBfdmFsdWUubGVuZ3RoKGxlbmd0aC0xLXRhaWwpOworICB0bXBfdmFsdWUuc2V0 X2NoYXJzZXQoJm15X2NoYXJzZXRfYmluKTsKICAgcmV0dXJuICZ0bXBfdmFsdWU7CiAKIGVycm9y OgpAQCAtMzIxMiwxNCArMzIxNCw2OCBAQCBTdHJpbmcgKkl0ZW1fZnVuY19xdW90ZTo6dmFsX3N0 cihTdHJpbmcKICAgfQogCiAgIGFyZ19sZW5ndGg9IGFyZy0+bGVuZ3RoKCk7Ci0gIG5ld19sZW5n dGg9IGFyZ19sZW5ndGgrMjsgLyogZm9yIGJlZ2lubmluZyBhbmQgZW5kaW5nICcgc2lnbnMgKi8K IAotICBmb3IgKGZyb209IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBmcm9tICsgYXJnX2xlbmd0 aDsgZnJvbSA8IGVuZDsgZnJvbSsrKQotICAgIG5ld19sZW5ndGgrPSBnZXRfZXNjX2JpdChlc2Nt YXNrLCAodWNoYXIpICpmcm9tKTsKKyAgaWYgKGNvbGxhdGlvbi5jb2xsYXRpb24tPm1ibWF4bGVu ID09IDEpCisgIHsKKyAgICBuZXdfbGVuZ3RoPSBhcmdfbGVuZ3RoICsgMjsgLyogZm9yIGJlZ2lu bmluZyBhbmQgZW5kaW5nICcgc2lnbnMgKi8KKyAgICBmb3IgKGZyb209IChjaGFyKikgYXJnLT5w dHIoKSwgZW5kPSBmcm9tICsgYXJnX2xlbmd0aDsgZnJvbSA8IGVuZDsgZnJvbSsrKQorICAgICAg bmV3X2xlbmd0aCs9IGdldF9lc2NfYml0KGVzY21hc2ssICh1Y2hhcikgKmZyb20pOworICB9Cisg IGVsc2UKKyAgeworICAgIG5ld19sZW5ndGg9IChhcmdfbGVuZ3RoICogMikgKyAgLyogRm9yIHN0 cmluZyBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgKDIgKiBjb2xsYXRpb24uY29sbGF0 aW9uLT5tYm1heGxlbik7IC8qIEZvciBxdW90ZXMgKi8KKyAgfQogCiAgIGlmICh0bXBfdmFsdWUu YWxsb2MobmV3X2xlbmd0aCkpCiAgICAgZ290byBudWxsOwogCisgIGlmIChjb2xsYXRpb24uY29s bGF0aW9uLT5tYm1heGxlbiA+IDEpCisgIHsKKyAgICBDSEFSU0VUX0lORk8gKmNzPSBjb2xsYXRp b24uY29sbGF0aW9uOworICAgIGludCBtYmxlbjsKKyAgICB1Y2hhciAqdG9fZW5kOworICAgIHRv PSAoY2hhciopIHRtcF92YWx1ZS5wdHIoKTsKKyAgICB0b19lbmQ9ICh1Y2hhciopIHRvICsgbmV3 X2xlbmd0aDsKKworICAgIC8qIFB1dCBsZWFkaW5nIHF1b3RlICovCisgICAgaWYgKChtYmxlbj0g Y3MtPmNzZXQtPndjX21iKGNzLCAnXCcnLCAodWNoYXIgKikgdG8sIHRvX2VuZCkpIDw9IDApCisg ICAgICBnb3RvIG51bGw7CisgICAgdG8rPSBtYmxlbjsKKworICAgIGZvciAoc3RhcnQ9IChjaGFy KikgYXJnLT5wdHIoKSwgZW5kPSBzdGFydCArIGFyZ19sZW5ndGg7IHN0YXJ0IDwgZW5kOyApCisg ICAgeworICAgICAgbXlfd2NfdCB3YzsKKyAgICAgIGJvb2wgZXNjYXBlOworICAgICAgaWYgKCht Ymxlbj0gY3MtPmNzZXQtPm1iX3djKGNzLCAmd2MsICh1Y2hhciopIHN0YXJ0LCAodWNoYXIqKSBl bmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICBzdGFydCs9IG1ibGVuOworICAg ICAgc3dpdGNoICh3YykgeworICAgICAgICBjYXNlIDA6ICAgICAgZXNjYXBlPSAxOyB3Yz0gJzAn OyBicmVhazsKKyAgICAgICAgY2FzZSAnXDAzMic6IGVzY2FwZT0gMTsgd2M9ICdaJzsgYnJlYWs7 CisgICAgICAgIGNhc2UgJ1wnJzogICBlc2NhcGU9IDE7IGJyZWFrOworICAgICAgICBjYXNlICdc XCc6ICAgZXNjYXBlPSAxOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDogICAgIGVzY2FwZT0gMDsg YnJlYWs7CisgICAgICB9CisgICAgICBpZiAoZXNjYXBlKQorICAgICAgeworICAgICAgICBpZiAo KG1ibGVuPSBjcy0+Y3NldC0+d2NfbWIoY3MsICdcXCcsICh1Y2hhciopIHRvLCB0b19lbmQpKSA8 PSAwKQorICAgICAgICAgIGdvdG8gbnVsbDsKKyAgICAgICAgdG8rPSBtYmxlbjsKKyAgICAgIH0K KyAgICAgIGlmICgobWJsZW49IGNzLT5jc2V0LT53Y19tYihjcywgd2MsICh1Y2hhciopIHRvLCB0 b19lbmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICB0bys9IG1ibGVuOworICAg IH0KKworICAgIC8qIFB1dCB0cmFpbGluZyBxdW90ZSAqLworICAgIGlmICgobWJsZW49IGNzLT5j c2V0LT53Y19tYihjcywgJ1wnJywgKHVjaGFyICopIHRvLCB0b19lbmQpKSA8PSAwKQorICAgICAg Z290byBudWxsOworICAgIHRvKz0gbWJsZW47CisgICAgbmV3X2xlbmd0aD0gdG8gLSB0bXBfdmFs dWUucHRyKCk7CisgICAgZ290byByZXQ7CisgIH0KKwogICAvKgogICAgIFdlIHJlcGxhY2UgY2hh cmFjdGVycyBmcm9tIHRoZSBlbmQgdG8gdGhlIGJlZ2lubmluZwogICAqLwpAQCAtMzI1MSw2ICsz MzA3LDggQEAgU3RyaW5nICpJdGVtX2Z1bmNfcXVvdGU6OnZhbF9zdHIoU3RyaW5nCiAgICAgfQog ICB9CiAgICp0bz0gJ1wnJzsKKworcmV0OgogICB0bXBfdmFsdWUubGVuZ3RoKG5ld19sZW5ndGgp OwogICB0bXBfdmFsdWUuc2V0X2NoYXJzZXQoY29sbGF0aW9uLmNvbGxhdGlvbik7CiAgIG51bGxf dmFsdWU9IDA7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fc3RyZnVuYy5oJwotLS0gYS9z cWwvaXRlbV9zdHJmdW5jLmgJMjAxMS0wMS0xNyAxMjoxMTozMyArMDAwMAorKysgYi9zcWwvaXRl bV9zdHJmdW5jLmgJMjAxMS0wMy0wMyAxNTozOToyNiArMDAwMApAQCAtNzA0LDkgKzcwNCwxMCBA QCBwdWJsaWM6CiAgIFN0cmluZyAqdmFsX3N0cihTdHJpbmcgKik7CiAgIHZvaWQgZml4X2xlbmd0 aF9hbmRfZGVjKCkKICAgewotICAgIHVsb25nbG9uZyBtYXhfcmVzdWx0X2xlbmd0aD0gKHVsb25n bG9uZykgYXJnc1swXS0+bWF4X2xlbmd0aCAqIDIgKyAyOwotICAgIG1heF9sZW5ndGg9ICh1aW50 MzIpIG1pbihtYXhfcmVzdWx0X2xlbmd0aCwgTUFYX0JMT0JfV0lEVEgpOwogICAgIGNvbGxhdGlv bi5zZXQoYXJnc1swXS0+Y29sbGF0aW9uKTsKKyAgICB1bG9uZ2xvbmcgbWF4X3Jlc3VsdF9sZW5n dGg9ICh1bG9uZ2xvbmcpIGFyZ3NbMF0tPm1heF9sZW5ndGggKiAyICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAyICogY29sbGF0aW9uLmNvbGxhdGlvbi0+bWJtYXhsZW47Cisg ICAgbWF4X2xlbmd0aD0gKHVpbnQzMikgbWluKG1heF9yZXN1bHRfbGVuZ3RoLCBNQVhfQkxPQl9X SURUSCk7CiAgIH0KIH07CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX2FjbC5jYycKLS0t IGEvc3FsL3NxbF9hY2wuY2MJMjAxMC0xMC0yMCAxODoyMTo0MCArMDAwMAorKysgYi9zcWwvc3Fs X2FjbC5jYwkyMDExLTAyLTA3IDEyOjA2OjIyICswMDAwCkBAIC0xLDQgKzEsNCBAQAotLyogQ29w eXJpZ2h0IChDKSAyMDAwLTIwMDMgTXlTUUwgQUIKKy8qIENvcHlyaWdodCAoYykgMjAwMCwgMjAx MSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAog ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC01Mzc3LDE4ICs1Mzc3LDE1IEBAIHN0 YXRpYyBpbnQgaGFuZGxlX2dyYW50X3RhYmxlKFRBQkxFX0xJU1QKIH0KIAogCi0vKgorLyoqCiAg IEhhbmRsZSBhbiBpbi1tZW1vcnkgcHJpdmlsZWdlIHN0cnVjdHVyZS4KIAotICBTWU5PUFNJUwot ICAgIGhhbmRsZV9ncmFudF9zdHJ1Y3QoKQotICAgIHN0cnVjdF9ubyAgICAgICAgICAgICAgICAg ICBUaGUgbnVtYmVyIG9mIHRoZSBzdHJ1Y3R1cmUgdG8gaGFuZGxlICgwLi4zKS4KLSAgICBkcm9w ICAgICAgICAgICAgICAgICAgICAgICAgSWYgdXNlcl9mcm9tIGlzIHRvIGJlIGRyb3BwZWQuCi0g ICAgdXNlcl9mcm9tICAgICAgICAgICAgICAgICAgIFRoZSB0aGUgdXNlciB0byBiZSBzZWFyY2hl ZC9kcm9wcGVkL3JlbmFtZWQuCi0gICAgdXNlcl90byAgICAgICAgICAgICAgICAgICAgIFRoZSBu ZXcgbmFtZSBmb3IgdGhlIHVzZXIgaWYgdG8gYmUgcmVuYW1lZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCBvdGhlcndpc2UuCisgIEBwYXJhbSBzdHJ1Y3Rfbm8gIFRoZSBu dW1iZXIgb2YgdGhlIHN0cnVjdHVyZSB0byBoYW5kbGUgKDAuLjQpLgorICBAcGFyYW0gZHJvcCAg ICAgICBJZiB1c2VyX2Zyb20gaXMgdG8gYmUgZHJvcHBlZC4KKyAgQHBhcmFtIHVzZXJfZnJvbSAg VGhlIHRoZSB1c2VyIHRvIGJlIHNlYXJjaGVkL2Ryb3BwZWQvcmVuYW1lZC4KKyAgQHBhcmFtIHVz ZXJfdG8gICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgdXNlciBpZiB0byBiZSByZW5hbWVkLCBOVUxM IG90aGVyd2lzZS4KIAotICBERVNDUklQVElPTgorICBAbm90ZQogICAgIFNjYW4gdGhyb3VnaCBh bGwgZWxlbWVudHMgaW4gYW4gaW4tbWVtb3J5IGdyYW50IHN0cnVjdHVyZSBhbmQgYXBwbHkKICAg ICB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbi4KICAgICBEZWxldGUgZnJvbSBncmFudCBzdHJ1Y3R1 cmUgaWYgZHJvcCBpcyB0cnVlLgpAQCAtNTM5OCwxMiArNTM5NSwxMiBAQCBzdGF0aWMgaW50IGhh bmRsZV9ncmFudF90YWJsZShUQUJMRV9MSVNUCiAgICAgMCBhY2xfdXNlcnMKICAgICAxIGFjbF9k YnMKICAgICAyIGNvbHVtbl9wcml2X2hhc2gKLSAgICAzIHByb2NzX3ByaXZfaGFzaAorICAgIDMg cHJvY19wcml2X2hhc2gKKyAgICA0IGZ1bmNfcHJpdl9oYXNoCiAKLSAgUkVUVVJOCi0gICAgPiAw ICAgICAgICAgQXQgbGVhc3Qgb25lIGVsZW1lbnQgbWF0Y2hlZC4KLSAgICAwICAgICAgICAgICBP SywgYnV0IG5vIGVsZW1lbnQgbWF0Y2hlZC4KLSAgICAtMQkJV3JvbmcgYXJndW1lbnRzIHRvIGZ1 bmN0aW9uCisgIEByZXR2YWwgPiAwICBBdCBsZWFzdCBvbmUgZWxlbWVudCBtYXRjaGVkLgorICBA cmV0dmFsIDAgICAgT0ssIGJ1dCBubyBlbGVtZW50IG1hdGNoZWQuCisgIEByZXR2YWwgLTEgICBX cm9uZyBhcmd1bWVudHMgdG8gZnVuY3Rpb24uCiAqLwogCiBzdGF0aWMgaW50IGhhbmRsZV9ncmFu dF9zdHJ1Y3QodWludCBzdHJ1Y3Rfbm8sIGJvb2wgZHJvcCwKQEAgLTU0MTcsNiArNTQxNCw3IEBA IHN0YXRpYyBpbnQgaGFuZGxlX2dyYW50X3N0cnVjdCh1aW50IHN0cnUKICAgQUNMX1VTRVIgKmFj bF91c2VyPSBOVUxMOwogICBBQ0xfREIgKmFjbF9kYj0gTlVMTDsKICAgR1JBTlRfTkFNRSAqZ3Jh bnRfbmFtZT0gTlVMTDsKKyAgSEFTSCAqZ3JhbnRfbmFtZV9oYXNoPSBOVUxMOwogICBEQlVHX0VO VEVSKCJoYW5kbGVfZ3JhbnRfc3RydWN0Iik7CiAgIERCVUdfUFJJTlQoImluZm8iLCgic2NhbiBz dHJ1Y3Q6ICV1ICBzZWFyY2g6ICclcydAJyVzJyIsCiAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3Rfbm8sIHVzZXJfZnJvbS0+dXNlci5zdHIsIHVzZXJfZnJvbS0+aG9zdC5zdHIpKTsKQEAgLTU0 MzYsOSArNTQzNCwxNSBAQCBzdGF0aWMgaW50IGhhbmRsZV9ncmFudF9zdHJ1Y3QodWludCBzdHJ1 CiAgICAgYnJlYWs7CiAgIGNhc2UgMjoKICAgICBlbGVtZW50cz0gY29sdW1uX3ByaXZfaGFzaC5y ZWNvcmRzOworICAgIGdyYW50X25hbWVfaGFzaD0gJmNvbHVtbl9wcml2X2hhc2g7CiAgICAgYnJl YWs7CiAgIGNhc2UgMzoKICAgICBlbGVtZW50cz0gcHJvY19wcml2X2hhc2gucmVjb3JkczsKKyAg ICBncmFudF9uYW1lX2hhc2g9ICZwcm9jX3ByaXZfaGFzaDsKKyAgICBicmVhazsKKyAgY2FzZSA0 OgorICAgIGVsZW1lbnRzPSBmdW5jX3ByaXZfaGFzaC5yZWNvcmRzOworICAgIGdyYW50X25hbWVf aGFzaD0gJmZ1bmNfcHJpdl9oYXNoOwogICAgIGJyZWFrOwogICBkZWZhdWx0OgogICAgIHJldHVy biAtMTsKQEAgLTU0NjgsMTYgKzU0NzIsMTMgQEAgc3RhdGljIGludCBoYW5kbGVfZ3JhbnRfc3Ry dWN0KHVpbnQgc3RydQogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIDI6Ci0gICAgICBncmFudF9u YW1lPSAoR1JBTlRfTkFNRSopIGhhc2hfZWxlbWVudCgmY29sdW1uX3ByaXZfaGFzaCwgaWR4KTsK LSAgICAgIHVzZXI9IGdyYW50X25hbWUtPnVzZXI7Ci0gICAgICBob3N0PSBncmFudF9uYW1lLT5o b3N0Lmhvc3RuYW1lOwotICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIDM6Ci0gICAgICBncmFudF9u YW1lPSAoR1JBTlRfTkFNRSopIGhhc2hfZWxlbWVudCgmcHJvY19wcml2X2hhc2gsIGlkeCk7Cisg ICAgY2FzZSA0OgorICAgICAgZ3JhbnRfbmFtZT0gKEdSQU5UX05BTUUqKSBoYXNoX2VsZW1lbnQo Z3JhbnRfbmFtZV9oYXNoLCBpZHgpOwogICAgICAgdXNlcj0gZ3JhbnRfbmFtZS0+dXNlcjsKICAg ICAgIGhvc3Q9IGdyYW50X25hbWUtPmhvc3QuaG9zdG5hbWU7CiAgICAgICBicmVhazsKKwogICAg IGRlZmF1bHQ6CiAgICAgICBNWV9BU1NFUlRfVU5SRUFDSEFCTEUoKTsKICAgICB9CkBAIC01NTA3 LDE0ICs1NTA4LDI1IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2dyYW50X3N0cnVjdCh1aW50IHN0cnUK ICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMjoKLSAgICAgICAgaGFzaF9kZWxldGUoJmNv bHVtbl9wcml2X2hhc2gsICh1Y2hhciopIGdyYW50X25hbWUpOwotCWJyZWFrOwotCiAgICAgICBj YXNlIDM6Ci0gICAgICAgIGhhc2hfZGVsZXRlKCZwcm9jX3ByaXZfaGFzaCwgKHVjaGFyKikgZ3Jh bnRfbmFtZSk7CisgICAgICBjYXNlIDQ6CisgICAgICAgIGhhc2hfZGVsZXRlKGdyYW50X25hbWVf aGFzaCwgKHVjaGFyKikgZ3JhbnRfbmFtZSk7CiAJYnJlYWs7CiAgICAgICB9CiAgICAgICBlbGVt ZW50cy0tOworICAgICAgLyoKKyAgICAgICAgLSBJZiB3ZSBhcmUgaXRlcmF0aW5nIHRocm91Z2gg YW4gYXJyYXkgdGhlbiB3ZSBqdXN0IGhhdmUgbW92ZWQgYWxsCisgICAgICAgICAgZWxlbWVudHMg YWZ0ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBvbmUgcG9zaXRpb24gY2xvc2VyIHRvIGl0cyBoZWFk LgorICAgICAgICAgIFRoaXMgbWVhbnMgdGhhdCB3ZSBoYXZlIHRvIHRha2UgYW5vdGhlciBsb29r IGF0IHRoZSBlbGVtZW50IGF0CisgICAgICAgICAgY3VycmVudCBwb3NpdGlvbiBhcyBpdCBpcyBh IG5ldyBlbGVtZW50IGZyb20gdGhlIGFycmF5J3MgdGFpbC4KKyAgICAgICAgLSBJZiB3ZSBhcmUg aXRlcmF0aW5nIHRocm91Z2ggYSBoYXNoIHRoZSBjdXJyZW50IGVsZW1lbnQgd2FzIHJlcGxhY2Vk CisgICAgICAgICAgd2l0aCBvbmUgb2YgZWxlbWVudHMgZnJvbSB0aGUgdGFpbC4gU28gd2UgYWxz byBoYXZlIHRvIHRha2UgYSBsb29rCisgICAgICAgICAgYXQgdGhlIG5ldyBlbGVtZW50IGluIGN1 cnJlbnQgcG9zaXRpb24uCisgICAgICAgICAgTm90ZSB0aGF0IGluIG91ciBIQVNIIGltcGxlbWVu dGF0aW9uIGhhc2hfZGVsZXRlKCkgd29uJ3QgbW92ZSBhbnkKKyAgICAgICAgICBlbGVtZW50cyB3 aXRoIHBvc2l0aW9uIGFmdGVyIGN1cnJlbnQgb25lIHRvIHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAg ICAgICAgICBjdXJyZW50IChpLmUuIGZyb20gdGhlIHRhaWwgdG8gdGhlIGhlYWQpLCBzbyBpdCBp cyBzYWZlIHRvIGNvbnRpbnVlCisgICAgICAgICAgaXRlcmF0aW9uIHdpdGhvdXQgcmUtc3RhcnRp bmcuCisgICAgICAqLwogICAgICAgaWR4LS07CiAgICAgfQogICAgIGVsc2UgaWYgKCB1c2VyX3Rv ICkKQEAgLTU1MzIsMjIgKzU1NDQsNDEgQEAgc3RhdGljIGludCBoYW5kbGVfZ3JhbnRfc3RydWN0 KHVpbnQgc3RydQogCiAgICAgICBjYXNlIDI6CiAgICAgICBjYXNlIDM6Ci0gICAgICAgIC8qIAot ICAgICAgICAgIFVwZGF0ZSB0aGUgZ3JhbnQgc3RydWN0dXJlIHdpdGggdGhlIG5ldyB1c2VyIG5h bWUgYW5kCi0gICAgICAgICAgaG9zdCBuYW1lCi0gICAgICAgICovCi0gICAgICAgIGdyYW50X25h bWUtPnNldF91c2VyX2RldGFpbHModXNlcl90by0+aG9zdC5zdHIsIGdyYW50X25hbWUtPmRiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfdG8tPnVzZXIuc3RyLCBn cmFudF9uYW1lLT50bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU UlVFKTsKLQotICAgICAgICAvKgotICAgICAgICAgIFNpbmNlIHVzZXJuYW1lIGlzIHBhcnQgb2Yg dGhlIGhhc2gga2V5LCB3aGVuIHRoZSB1c2VyIG5hbWUKLSAgICAgICAgICBpcyByZW5hbWVkLCB0 aGUgaGFzaCBrZXkgaXMgY2hhbmdlZC4gVXBkYXRlIHRoZSBoYXNoIHRvCi0gICAgICAgICAgZW5z dXJlIHRoYXQgdGhlIHBvc2l0aW9uIG1hdGNoZXMgdGhlIG5ldyBoYXNoIGtleSB2YWx1ZQotICAg ICAgICAqLwotICAgICAgICBoYXNoX3VwZGF0ZSgmY29sdW1uX3ByaXZfaGFzaCwgKHVjaGFyKikg Z3JhbnRfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgKHVjaGFyKikgZ3JhbnRfbmFtZS0+aGFz aF9rZXksIGdyYW50X25hbWUtPmtleV9sZW5ndGgpOwotCWJyZWFrOworICAgICAgY2FzZSA0Ogor ICAgICAgICB7CisgICAgICAgICAgLyoKKyAgICAgICAgICAgIFNhdmUgb2xkIGhhc2gga2V5IGFu ZCBpdHMgbGVuZ3RoIHRvIGJlIGFibGUgcHJvcGVybHkgdXBkYXRlCisgICAgICAgICAgICBlbGVt ZW50IHBvc2l0aW9uIGluIGhhc2guCisgICAgICAgICAgKi8KKyAgICAgICAgICBjaGFyICpvbGRf a2V5PSBncmFudF9uYW1lLT5oYXNoX2tleTsKKyAgICAgICAgICBzaXplX3Qgb2xkX2tleV9sZW5n dGg9IGdyYW50X25hbWUtPmtleV9sZW5ndGg7CisKKyAgICAgICAgICAvKgorICAgICAgICAgICAg VXBkYXRlIHRoZSBncmFudCBzdHJ1Y3R1cmUgd2l0aCB0aGUgbmV3IHVzZXIgbmFtZSBhbmQgaG9z dCBuYW1lLgorICAgICAgICAgICovCisgICAgICAgICAgZ3JhbnRfbmFtZS0+c2V0X3VzZXJfZGV0 YWlscyh1c2VyX3RvLT5ob3N0LnN0ciwgZ3JhbnRfbmFtZS0+ZGIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1c2VyX3RvLT51c2VyLnN0ciwgZ3JhbnRfbmFtZS0+dG5h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFKTsKKworICAg ICAgICAgIC8qCisgICAgICAgICAgICBTaW5jZSB1c2VybmFtZSBpcyBwYXJ0IG9mIHRoZSBoYXNo IGtleSwgd2hlbiB0aGUgdXNlciBuYW1lCisgICAgICAgICAgICBpcyByZW5hbWVkLCB0aGUgaGFz aCBrZXkgaXMgY2hhbmdlZC4gVXBkYXRlIHRoZSBoYXNoIHRvCisgICAgICAgICAgICBlbnN1cmUg dGhhdCB0aGUgcG9zaXRpb24gbWF0Y2hlcyB0aGUgbmV3IGhhc2gga2V5IHZhbHVlCisgICAgICAg ICAgKi8KKyAgICAgICAgICBoYXNoX3VwZGF0ZShncmFudF9uYW1lX2hhc2gsICh1Y2hhciopIGdy YW50X25hbWUsICh1Y2hhciopIG9sZF9rZXksCisgICAgICAgICAgICAgICAgICAgICAgb2xkX2tl eV9sZW5ndGgpOworICAgICAgICAgIC8qCisgICAgICAgICAgICBoYXNoX3VwZGF0ZSgpIG9wZXJh dGlvbiBjb3VsZCBoYXZlIG1vdmVkIGVsZW1lbnQgZnJvbSB0aGUgdGFpbAorICAgICAgICAgICAg b2YgdGhlIGhhc2ggdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24uIFNvIHdlIG5lZWQgdG8gdGFrZSBh IGxvb2sKKyAgICAgICAgICAgIGF0IHRoZSBlbGVtZW50IGluIGN1cnJlbnQgcG9zaXRpb24gb25j ZSBhZ2Fpbi4KKyAgICAgICAgICAgIFRoYW5rcyB0byB0aGUgZmFjdCB0aGF0IGhhc2hfdXBkYXRl KCkgZm9yIG91ciBIQVNIIGltcGxlbWVudGF0aW9uCisgICAgICAgICAgICB3b24ndCBtb3ZlIGFu eSBlbGVtZW50cyBmcm9tIHRoZSB0YWlsIG9mIHRoZSBoYXNoIHRvIHRoZSBwb3NpdGlvbnMKKyAg ICAgICAgICAgIGJlZm9yZSB0aGUgY3VycmVudCBvbmUgKGEuay5hLiBoZWFkKSBpdCBpcyBzYWZl IHRvIGNvbnRpbnVlCisgICAgICAgICAgICBpdGVyYXRpb24gd2l0aG91dCByZXN0YXJ0aW5nLgor ICAgICAgICAgICovCisgICAgICAgICAgaWR4LS07CisgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KICAgICAgIH0KICAgICB9CiAgICAgZWxzZQpAQCAtNTYzMyw3ICs1NjY0LDcgQEAgc3RhdGlj IGludCBoYW5kbGVfZ3JhbnRfZGF0YShUQUJMRV9MSVNUCiAgICAgfQogICB9CiAKLSAgLyogSGFu ZGxlIHByb2NlZHVyZXMgdGFibGUuICovCisgIC8qIEhhbmRsZSBzdG9yZWQgcm91dGluZXMgdGFi bGUuICovCiAgIGlmICgoZm91bmQ9IGhhbmRsZV9ncmFudF90YWJsZSh0YWJsZXMsIDQsIGRyb3As IHVzZXJfZnJvbSwgdXNlcl90bykpIDwgMCkKICAgewogICAgIC8qIEhhbmRsZSBvZiB0YWJsZSBm YWlsZWQsIGRvbid0IHRvdWNoIGluLW1lbW9yeSBhcnJheS4gKi8KQEAgLTU2NDYsNiArNTY3Nywx NSBAQCBzdGF0aWMgaW50IGhhbmRsZV9ncmFudF9kYXRhKFRBQkxFX0xJU1QKICAgICAgICAgIGZv dW5kKSAmJiAhIHJlc3VsdCkKICAgICB7CiAgICAgICByZXN1bHQ9IDE7IC8qIEF0IGxlYXN0IG9u ZSByZWNvcmQvZWxlbWVudCBmb3VuZC4gKi8KKyAgICAgIC8qIElmIHNlYXJjaCBpcyByZXF1ZXN0 ZWQsIHdlIGRvIG5vdCBuZWVkIHRvIHNlYXJjaCBmdXJ0aGVyLiAqLworICAgICAgaWYgKCEgZHJv cCAmJiAhIHVzZXJfdG8pCisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKyAgICAvKiBIYW5kbGUg ZnVuY3MgYXJyYXkuICovCisgICAgaWYgKCgoaGFuZGxlX2dyYW50X3N0cnVjdCg0LCBkcm9wLCB1 c2VyX2Zyb20sIHVzZXJfdG8pICYmICEgcmVzdWx0KSB8fAorICAgICAgICAgZm91bmQpICYmICEg cmVzdWx0KQorICAgIHsKKyAgICAgIHJlc3VsdD0gMTsgLyogQXQgbGVhc3Qgb25lIHJlY29yZC9l bGVtZW50IGZvdW5kLiAqLwogICAgICAgLyogSWYgc2VhcmNoIGlzIHJlcXVlc3RlZCwgd2UgZG8g bm90IG5lZWQgdG8gc2VhcmNoIGZ1cnRoZXIuICovCiAgICAgICBpZiAoISBkcm9wICYmICEgdXNl cl90bykKICAgICAgICAgZ290byBlbmQ7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9wYXJz ZS5jYycKLS0tIGEvc3FsL3NxbF9wYXJzZS5jYwkyMDExLTAyLTIyIDIxOjAzOjMyICswMDAwCisr KyBiL3NxbC9zcWxfcGFyc2UuY2MJMjAxMS0wMy0wMyAwODoyNTozNyArMDAwMApAQCAtMTIxOCw3 ICsxMjE4LDggQEAgYm9vbCBkaXNwYXRjaF9jb21tYW5kKGVudW0gZW51bV9zZXJ2ZXJfYwogICAg ICAgICAgIFdlIGhhdmUgY2hlY2tlZCBjaGFyc2V0IGVhcmxpZXIsCiAgICAgICAgICAgc28gdGhk X2luaXRfY2xpZW50X2NoYXJzZXQgY2Fubm90IGZhaWwuCiAgICAgICAgICovCi0gICAgICAgIERC VUdfQVNTRVJUKCF0aGRfaW5pdF9jbGllbnRfY2hhcnNldCh0aGQsIGNzX251bWJlcikpOworICAg ICAgICBpZiAodGhkX2luaXRfY2xpZW50X2NoYXJzZXQodGhkLCBjc19udW1iZXIpKQorICAgICAg ICAgIERCVUdfQVNTRVJUKDApOwogICAgICAgICB0aGQtPnVwZGF0ZV9jaGFyc2V0KCk7CiAgICAg ICB9CiAgICAgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0cmluZ3MveG1sLmMnCi0tLSBhL3N0cmlu Z3MveG1sLmMJMjAxMS0wMS0xOSAxMzoxNzo1MiArMDAwMAorKysgYi9zdHJpbmdzL3htbC5jCTIw MTEtMDMtMDEgMTI6MzA6MTggKzAwMDAKQEAgLTE2NSwxMSArMTY1LDE2IEBAIHN0YXRpYyBpbnQg bXlfeG1sX3NjYW4oTVlfWE1MX1BBUlNFUiAqcCwKICAgfQogICBlbHNlIGlmICggKHAtPmN1clsw XSA9PSAnIicpIHx8IChwLT5jdXJbMF0gPT0gJ1wnJykgKQogICB7CisgICAgLyoKKyAgICAgICJz dHJpbmciIG9yICdzdHJpbmcnIGZvdW5kLgorICAgICAgU2NhbiB1bnRpbCB0aGUgY2xvc2luZyBx dW90ZS9kb3VibGVxdW90ZSwgb3IgdW50aWwgdGhlIEVORC1PRi1JTlBVVC4KKyAgICAqLwogICAg IHAtPmN1cisrOwogICAgIGZvciAoOyAoIHAtPmN1ciA8IHAtPmVuZCApICYmIChwLT5jdXJbMF0g IT0gYS0+YmVnWzBdKTsgcC0+Y3VyKyspCiAgICAge30KICAgICBhLT5lbmQ9cC0+Y3VyOwotICAg IGlmIChhLT5iZWdbMF0gPT0gcC0+Y3VyWzBdKXAtPmN1cisrOworICAgIGlmIChwLT5jdXIgPCBw LT5lbmQpIC8qIENsb3NpbmcgcXVvdGUgb3IgZG91YmxlcXVvdGUgaGFzIGJlZW4gZm91bmQgKi8K KyAgICAgIHAtPmN1cisrOwogICAgIGEtPmJlZysrOwogICAgIGlmICghKHAtPmZsYWdzICYgTVlf WE1MX0ZMQUdfU0tJUF9URVhUX05PUk1BTElaQVRJT04pKQogICAgICAgbXlfeG1sX25vcm1fdGV4 dChhKTsKCk5vIGJ1bmRsZSAocmVhc29uOiByZXZpc2lvbiBpcyBhIG1lcmdlKS4=