new version of interface patch
"Rudi Cilibrasi, Ph.D." <[email protected]> Wed, 2 May 2007 21:01:20 +0200
| Newsgroups | gmane.comp.gnome.devtools.gob.general |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_14328_19591152.1178132480123 Content-Type: multipart/alternative; boundary="----=_Part_14329_32408709.1178132480123" ------=_Part_14329_32408709.1178132480123 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline new version of patch ------=_Part_14329_32408709.1178132480123 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline new version of patch<br> ------=_Part_14329_32408709.1178132480123-- ------=_Part_14328_19591152.1178132480123 Content-Type: text/x-patch; name=second-interface-r.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f185mbk7 Content-Disposition: attachment; filename="second-interface-r.patch" T25seSBpbiBnb2JuZXc6IGNvbmZpZy5oCk9ubHkgaW4gZ29ibmV3OiBjb25maWcubG9nCk9ubHkg aW4gZ29ibmV3OiBjb25maWcuc3RhdHVzCk9ubHkgaW4gZ29ibmV3L2RvYzogZ29iMi4xCk9ubHkg aW4gZ29ibmV3L2RvYzogTWFrZWZpbGUKT25seSBpbiBnb2JuZXcvZXhhbXBsZXM6IE1ha2VmaWxl Ck9ubHkgaW4gZ29ibmV3OiBNYWtlZmlsZQpPbmx5IGluIGdvYm5ldzogbwpkaWZmIC1yIGdvYjIt Mi4wLjE0L3NyYy9jaGVja3MuYyBnb2JuZXcvc3JjL2NoZWNrcy5jCjMxNmMzMTYsMzM2CjwgCQkJ CW0tPmNidWYgPSBnX3N0cmR1cCgiLyplbXB0eSovIik7Ci0tLQo+ICAgICAgICAgaWYgKGMtPmlz aW50ZXJmYWNlKSB7Cj4gICAgICAgICAgIEZ1bmNBcmcgKmZhOwo+ICAgICAgICAgICBmYSA9IG0t PmFyZ3MtPmRhdGE7Cj4gICAgICAgICAgIEdTTGlzdCAqaXRlcjsKPiAgICAgICAgICAgR1N0cmlu ZyAqZ3MgPSBnX3N0cmluZ19uZXcoIiIpOwo+IC8vICAgICAgICAgIG0tPmNidWYgPSBnX3N0cmR1 cCgiLyppbnRlcmVtcHR5Ki8iKTsKPiAgICAgICAgICAgY2hhciAqcmV0c3RyID0gKHN0cmNtcCht LT5tdHlwZS0+bmFtZSwgInZvaWQiKT09MCkgPyAiIiA6ICJyZXR1cm4gIjsKPiAgICAgICAgICAg Z19zdHJpbmdfc3ByaW50ZihncywgIiVzJXMtPiVzKCIsIHJldHN0ciwgZmEtPm5hbWUsIG0tPmlk KTsKPiAgICAgICAgICAgaXRlciA9IGdfc2xpc3RfbmV4dChtLT5hcmdzKTsKPiAgICAgICAgICAg ICBjaGFyICpzZXAyID0gIiI7Cj4gICAgICAgICAgIGZvciAoO2l0ZXI7IGl0ZXIgPSBpdGVyLT5u ZXh0KSB7Cj4gICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKGdzLCBzZXAyKTsKPiAgICAgICAg ICAgICBnX3N0cmluZ19hcHBlbmQoZ3MsICgoRnVuY0FyZyAqKSAoaXRlci0+ZGF0YSkpLT5uYW1l KTsKPiAgICAgICAgICAgICBzZXAyID0gIiwiOwo+ICAgICAgICAgICB9Cj4gICAgICAgICAgICAg Z19zdHJpbmdfYXBwZW5kKGdzLCAiKTsiKTsKPiAgICAgICAgICAgbS0+Y2J1ZiA9IGdzLT5zdHI7 Cj4gICAgICAgICAgIGdfc3RyaW5nX2ZyZWUoZ3MsIEZBTFNFKTsKPiAgICAgICAgIH0KPiAgICAg ICAgIGVsc2UKPiAgICAgICAgICAgbS0+Y2J1ZiA9IGdfc3RyZHVwKCIvKmVtcHR5Ki8iKTsKT25s eSBpbiBnb2JuZXcvc3JjOiAuY2hlY2tzLmMuc3dwCk9ubHkgaW4gZ29ibmV3L3NyYzogY29tcGxl YXJuLXJlYWwtY29tcHJlc3Nvci5jCk9ubHkgaW4gZ29ibmV3L3NyYzogY29tcGxlYXJuLXJlYWwt Y29tcHJlc3Nvci5oCk9ubHkgaW4gZ29iMi0yLjAuMTQvc3JjOiBsZXhlci5jCmRpZmYgLXIgZ29i Mi0yLjAuMTQvc3JjL2xleGVyLmwgZ29ibmV3L3NyYy9sZXhlci5sCjQwN2E0MDgsNDIwCj4gaW50 ZXJmYWNlCQl7Cj4gCQkJc3RhdGljIGludCBmb3VuZF9jbGFzc2VzID0gMDsKPiAJCQlsb29rX2Zv cl9pbmNsdWRlcyA9IDI7Cj4gCQkJQkVHSU4oQ0xBU1NfQ09ERSk7Cj4gCj4gCQkJaWYoKytmb3Vu ZF9jbGFzc2VzID4gMSkgewo+IAkJCQllcnJvcl9wcmludChHT0JfRVJST1IsIGxpbmVfbm8sCj4g CQkJCQkgICAgIk9ubHkgb25lIGludGVyZmFjZSBwZXIgZmlsZSBhbGxvd2VkIik7Cj4gCQkJfQo+ IAo+IAkJCXJldHVybiBJTlRFUkZBQ0U7Cj4gCQl9Cj4gCmRpZmYgLXIgZ29iMi0yLjAuMTQvc3Jj L21haW4uYyBnb2JuZXcvc3JjL21haW4uYwoxMDY4YzEwNjgsMTA4OQo8IAlvdXRfcHJpbnRmKG91 dCwKLS0tCj4gICBpZiAoKChDbGFzcyAqKWNsYXNzKS0+aXNpbnRlcmZhY2UpCj4gICAgIG91dF9w cmludGYob3V0LAo+IAkJICAgIkdUeXBlXG4iCj4gCQkgICAiJXNfZ2V0X3R5cGUgKHZvaWQpXG4i Cj4gCQkgICAie1xuIgo+IAkJICAgIlx0c3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iCj4gCQkg ICAiXHRpZiBfX19HT0JfVU5MSUtFTFkodHlwZSA9PSAwKSB7XG4iCj4gCQkgICAiXHRcdHN0YXRp YyBjb25zdCBHVHlwZUluZm8gaW5mbyA9IHtcbiIKPiAJCSAgICJcdFx0XHRzaXplb2YgKCVzQ2xh c3MpLFxuIgo+IAkJICAgIlx0XHRcdChHQmFzZUluaXRGdW5jKSAlc19jbGFzc19pbml0LFxuIgo+ IAkJICAgIlx0XHRcdChHQmFzZUZpbmFsaXplRnVuYykgTlVMTCxcbiIKPiAJCSAgICJcdFx0XHQo R0NsYXNzSW5pdEZ1bmMpIE5VTEwsXG4iCj4gCQkgICAiXHRcdFx0KEdDbGFzc0ZpbmFsaXplRnVu YykgTlVMTCxcbiIKPiAJCSAgICJcdFx0XHROVUxMIC8qIGNsYXNzX2RhdGEgKi8sXG4iCj4gCQkg ICAiXHRcdFx0MCxcbiIKPiAJCSAgICJcdFx0XHQwLFxuIgo+IAkJICAgIlx0XHRcdE5VTEwsXG4i Cj4gCQkgICAiXHRcdFx0TlVMTFxuIgo+IAkJICAgIlx0XHR9O1xuXG4iLAo+IAkJICAgZnVuY2Jh c2UsIHR5cGViYXNlLCBmdW5jYmFzZSk7Cj4gICBlbHNlCj4gICAgIG91dF9wcmludGYob3V0LAoy NDAwLDI0MDFjMjQyMSwyNDI3CjwgCjwgCQlpZihtLT5jYnVmKSB7Ci0tLQo+ICAgICBpZiAoYy0+ aXNpbnRlcmZhY2UpIHsKPiAJCQlvdXRfcHJpbnRmKG91dCwgIiB7XG4iKTsKPiAJCQlvdXRfcHJp bnRmKG91dCwgIiAlc19HRVRfQ0xBU1MgKHNlbGYpLT4lcyAoc2VsZik7IiwKPiAgICAgICAgICAg ICAgICAgICAgICAgIG1hY3JvYmFzZSwgbS0+aWQpOwo+IAkJCW91dF9wcmludGYob3V0LCAiIH1c biIpOwo+ICAgICB9Cj4gCQlpZighYy0+aXNpbnRlcmZhY2UgJiYgbS0+Y2J1ZikgewpPbmx5IGlu IGdvYm5ldy9zcmM6IE1ha2VmaWxlCk9ubHkgaW4gZ29ibmV3L3NyYzogbwpPbmx5IGluIGdvYjIt Mi4wLjE0L3NyYzogcGFyc2UuYwpPbmx5IGluIGdvYjItMi4wLjE0L3NyYzogcGFyc2UuaApkaWZm IC1yIGdvYjItMi4wLjE0L3NyYy9wYXJzZS55IGdvYm5ldy9zcmMvcGFyc2UueQo0N2E0OAo+IHN0 YXRpYyBnYm9vbGVhbiBpc2ludGVyZmFjZSA9IEZBTFNFOwo2NzZjNjc3CjwgJXRva2VuIENMQVNT IEZST00KLS0tCj4gJXRva2VuIENMQVNTIElOVEVSRkFDRSBGUk9NCjY4OSw2OTJjNjkwLDY5Nwo8 IHByb2c6CQljY29kZXMgY2xhc3MgY2NvZGVzCXsgOyB9CjwgCXwJY2xhc3MgY2NvZGVzCQl7IDsg fQo8IAl8CWNjb2RlcyBjbGFzcwkJeyA7IH0KPCAJfAljbGFzcwkJCXsgOyB9Ci0tLQo+IHByb2c6 CQljY29kZXMgaWNsYXNzIGNjb2Rlcwl7IDsgfQo+IAl8CWljbGFzcyBjY29kZXMJCXsgOyB9Cj4g CXwJY2NvZGVzIGljbGFzcwkJeyA7IH0KPiAJfAlpY2xhc3MJCQl7IDsgfQo+IAk7Cj4gCj4gaWNs YXNzOgljbGFzcwl7IDsgfQo+IAl8CWludGVyZmFjZQkJeyA7IH0KNzYwYTc2Niw3ODYKPiBpbnRl cmZhY2U6CQlpbnRlcmZhY2VkZWMgJ3snIGludGVyZmFjZWNvZGUgJ30newo+IAkJCSgoQ2xhc3Mg KiljbGFzcyktPm5vZGVzID0gY2xhc3Nfbm9kZXM7Cj4gICAgICAgICBpc2ludGVyZmFjZSA9IFRS VUU7Cj4gICAgICAgICAoKENsYXNzICopY2xhc3MpLT5pc2ludGVyZmFjZSA9IFRSVUU7Cj4gCQkJ Y2xhc3Nfbm9kZXMgPSBOVUxMOwo+IAkJCW5vZGVzID0gZ19saXN0X2FwcGVuZChub2RlcyxjbGFz cyk7Cj4gCQkJCQkJfQo+IAl8CWludGVyZmFjZWRlYyAnOycJewo+IAkJCSgoQ2xhc3MgKiljbGFz cyktPm5vZGVzID0gY2xhc3Nfbm9kZXM7Cj4gICAgICAgICBpc2ludGVyZmFjZSA9IFRSVUU7Cj4g ICAgICAgICAoKENsYXNzICopY2xhc3MpLT5pc2ludGVyZmFjZSA9IFRSVUU7Cj4gCQkJY2xhc3Nf bm9kZXMgPSBOVUxMOwo+IAkJCW5vZGVzID0gZ19saXN0X2FwcGVuZChub2RlcyxjbGFzcyk7Cj4g CQkJCQkJfQo+IAl8CWludGVyZmFjZWRlYyAneycgJ30nCQl7Cj4gCQkJKChDbGFzcyAqKWNsYXNz KS0+bm9kZXMgPSBOVUxMOwo+IAkJCWNsYXNzX25vZGVzID0gTlVMTDsKPiAJCQlub2RlcyA9IGdf bGlzdF9hcHBlbmQobm9kZXMsY2xhc3MpOwo+IAkJCQkJCX0KPiAJOwo+IAo3NzJhNzk5LDg5Nwo+ IGludGVyZmFjZWRlYzoJSU5URVJGQUNFIFRZUEVUT0tFTiBGUk9NIFRZUEVUT0tFTiBpbnRlcmZh Y2VmbGFncwl7Cj4gCQkJY2xhc3MgPSBub2RlX25ldyAoQ0xBU1NfTk9ERSwKPiAJCQkJCSAgIm90 eXBlOnN0ZWFsIiwgJDxpZD4yLAo+IAkJCQkJICAicHR5cGU6c3RlYWwiLCAkPGlkPjQsCj4gCQkJ CQkgICJib25vYm9fb2JqZWN0X2NsYXNzOnN0ZWFsIiwgYm9ub2JvX29iamVjdF9jbGFzcywKPiAJ CQkJCSAgImdsYWRlX3htbCIsIGdsYWRlX3htbCwKPiAJCQkJCSAgImludGVyZmFjZXM6c3RlYWwi LCBpbnRlcmZhY2VzLAo+IAkJCQkJICAiY2h1bmtfc2l6ZTpzdGVhbCIsIGNodW5rX3NpemUsCj4g CQkJCQkgICJhYnN0cmFjdCIsIGFic3RyYWN0LAo+ICAgICAgICAgICAgICJpc2ludGVyZmFjZSIs IGlzaW50ZXJmYWNlLAo+IAkJCQkJICBOVUxMKTsKPiAJCQlib25vYm9fb2JqZWN0X2NsYXNzID0g TlVMTDsKPiAJCQlnbGFkZV94bWwgPSBGQUxTRTsKPiAJCQljaHVua19zaXplID0gTlVMTDsKPiAJ CQlpbnRlcmZhY2VzID0gTlVMTDsKPiAgICAgICBpc2ludGVyZmFjZSA9IEZBTFNFOwo+IAkJCQkJ CX0KPiAJOwo+IAo+IGludGVyZmFjZWZsYWdzOgo+IAl8ICcoJyBUT0tFTiAnKScgaW50ZXJmYWNl ZmxhZ3Mgewo+IAkJCWlmKHN0cmNtcCgkPGlkPjIsImFic3RyYWN0IikgPT0gMCkgewo+IAkJCQlh YnN0cmFjdCA9IFRSVUU7Cj4gCQkJfSBlbHNlIHsKPiAJCQkJeXllcnJvcihfKCJwYXJzZSBlcnJv ciIpKTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQl9Cj4gCXwgJygnIFRPS0VOIFRPS0VOICcp JyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYoc3RyY21wKCQ8aWQ+MiwiY2h1bmtzIikgPT0gMCkg ewo+IAkJCQlnX2ZyZWUgKGNodW5rX3NpemUpOwo+IAkJCQljaHVua19zaXplID0gZ19zdHJkdXAo JDxpZD4zKTsKPiAJCQl9IGVsc2UgaWYoc3RyY21wKCQ8aWQ+MiwiQm9ub2JvT2JqZWN0IikgPT0g MCkgewo+IAkJCQlnX2ZyZWUgKGJvbm9ib19vYmplY3RfY2xhc3MpOwo+IAkJCQlib25vYm9fb2Jq ZWN0X2NsYXNzID0gZ19zdHJkdXAoJDxpZD4zKTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVycm9y KF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAnKCcg VE9LRU4gVFlQRVRPS0VOICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYgKHN0cmNtcCAoJDxp ZD4yLCAiaW50ZXJmYWNlIikgPT0gMCkgewo+IAkJCQlpbnRlcmZhY2VzID0gZ19saXN0X2FwcGVu ZCAoaW50ZXJmYWNlcywKPiAJCQkJCQkJICAgIGdfc3RyZHVwICgkPGlkPjMpKTsKPiAJCQl9IGVs c2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJ CX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gTlVNQkVSICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJ aWYoc3RyY21wKCQ8aWQ+MiwiY2h1bmtzIikgPT0gMCkgewo+IAkJCQlnX2ZyZWUgKGNodW5rX3Np emUpOwo+IAkJCQlpZihhdG9pKCQ8aWQ+MykgIT0gMCkKPiAJCQkJCWNodW5rX3NpemUgPSBnX3N0 cmR1cCgkPGlkPjMpOwo+IAkJCQllbHNlCj4gCQkJCQljaHVua19zaXplID0gTlVMTDsKPiAJCQl9 IGVsc2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+ IAkJCX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gU1RSSU5HIFNUUklORyAnKScgaW50ZXJmYWNlZmxh Z3Mgewo+IAkJCWlmIChzdHJjbXAgKCQ8aWQ+MiwgIkdsYWRlWE1MIikgPT0gMCkgewo+IAkJCQln bGFkZV94bWwgPSBUUlVFOwo+IAkJCQlhZGRfY29uc3RydWN0X2dsYWRlKCQ8aWQ+MywgJDxpZD40 LCBOVUxMKTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+ IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gU1RSSU5HIFNUUklORyBT VFJJTkcgJyknIGludGVyZmFjZWZsYWdzIHsKPiAJCQlpZiAoc3RyY21wICgkPGlkPjIsICJHbGFk ZVhNTCIpID09IDApIHsKPiAJCQkJZ2xhZGVfeG1sID0gVFJVRTsKPiAJCQkJYWRkX2NvbnN0cnVj dF9nbGFkZSgkPGlkPjMsICQ8aWQ+NCwgJDxpZD41KTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVy cm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAn KCcgVE9LRU4gVE9LRU4gU1RSSU5HICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYgKHN0cmNt cCAoJDxpZD4yLCAiR2xhZGVYTUwiKSA9PSAwKSB7Cj4gCQkJCWdsYWRlX3htbCA9IFRSVUU7Cj4g CQkJCWFkZF9jb25zdHJ1Y3RfZ2xhZGUoJDxpZD4zLCAkPGlkPjQsIE5VTEwpOwo+IAkJCX0gZWxz ZSB7Cj4gCQkJCXl5ZXJyb3IoXygicGFyc2UgZXJyb3IiKSk7Cj4gCQkJCVlZRVJST1I7Cj4gCQkJ fQo+IAkJfQo+IAl8ICcoJyBUT0tFTiBUT0tFTiBTVFJJTkcgU1RSSU5HICcpJyBpbnRlcmZhY2Vm bGFncyB7Cj4gCQkJaWYgKHN0cmNtcCAoJDxpZD4yLCAiR2xhZGVYTUwiKSA9PSAwKSB7Cj4gCQkJ CWdsYWRlX3htbCA9IFRSVUU7Cj4gCQkJCWFkZF9jb25zdHJ1Y3RfZ2xhZGUoJDxpZD4zLCAkPGlk PjQsICQ8aWQ+NSk7Cj4gCQkJfSBlbHNlIHsKPiAJCQkJeXllcnJvcihfKCJwYXJzZSBlcnJvciIp KTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQl9Cj4gCTsJCj4gCjg3M2E5OTksMTAyNwo+IGlu dGVyZmFjZWNvZGU6CWludGVyZmFjZWNvZGUgaW50ZXJmYWNldGhpbmcJCQl7IDsgfQo+IAl8CWlu dGVyZmFjZXRoaW5nCQl7IDsgfQo+IAk7Cj4gCj4gaW50ZXJmYWNldGhpbmc6IAkJbWV0aG9kCQkJ CXsgOyB9Cj4gCXwJVE9LRU4gbWV0aG9kCQkJewo+IAkJCWlmIChzdHJjbXAgKCQ8aWQ+MSwgIkJv bm9ib09iamVjdCIpICE9IDApIHsKPiAJCQkJZ19mcmVlICgkPGlkPjEpOwo+IAkJCQl5eWVycm9y IChfKCJwYXJzZSBlcnJvciIpKTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQkJZ19mcmVlICgk PGlkPjEpOwo+IAkJCWxhc3RfYWRkZWRfbWV0aG9kLT5ib25vYm9fb2JqZWN0X2Z1bmMgPSBUUlVF Owo+IAkJCQkJCX0KPiAJfAlUT0tFTiBUWVBFVE9LRU4gbWV0aG9kCQkJewo+IAkJCWlmIChzdHJj bXAgKCQ8aWQ+MSwgImludGVyZmFjZSIpICE9IDApIHsKPiAJCQkJZ19mcmVlICgkPGlkPjEpOwo+ IAkJCQlnX2ZyZWUgKCQ8aWQ+Mik7Cj4gCQkJCXl5ZXJyb3IgKF8oInBhcnNlIGVycm9yIikpOwo+ IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCQlnX2ZyZWUgKCQ8aWQ+MSk7Cj4gCQkJbm9kZV9zZXQg KChOb2RlICopbGFzdF9hZGRlZF9tZXRob2QsCj4gCQkJCSAgImludGVyZmFjZTpzdGVhbCIsICQ8 aWQ+MiwKPiAJCQkJICBOVUxMKTsKPiAJCQkJCQl9Cj4gCXwJJzsnCQkJCXsgOyB9Cj4gCTsKPiAK T25seSBpbiBnb2JuZXcvc3JjOiB0Mi5nb2IKZGlmZiAtciBnb2IyLTIuMC4xNC9zcmMvdGVzdC5n b2IgZ29ibmV3L3NyYy90ZXN0LmdvYgoxLDExYzEKPCAvKiB0aGlzIGlzIGEgVEVTVCBmaWxlLCBp dCdzIFZFUlkgVkVSWSB1Z2x5LCBpdCdzIGp1c3Qgc3VwcG9zZWQgdG8gdGVzdAo8ICAgIHRoZSBw YXJzZXIgb2YgZ29iIGFuZCBzb21ld2hhdCB0ZXN0IHNvbWUgb3V0cHV0IGFzIHdlbGwsIHlvdSBj YW4KPCAgICBsb29rIGluIGhlcmUgdG8gc2VlIGEgd2hvbGUgYXJyYXkgb2YgZGlmZmVyZW50IHN5 bnRheCBvcHRpb25zLCBidXQKPCAgICBkb24ndCBleHBlY3QgdGhpcyB0byBiZSBhbiBlYXN5IHRv IHJlYWQgZmlsZSAqLwo8IAo8IHJlcXVpcmVzIDEuOTkuMAo8IAo8ICVhdHsKPCAvKiBBTEwgVE9Q ICovCjwgJX0KPCAKLS0tCj4gcmVxdWlyZXMgMi4wLjAKMTMsNDRjMyw0CjwgLyogdGhpcyBzaG91 bGQgZ28gb24gdGhlIHZlcnkgdG9wIG9mIHRoZSBoZWFkZXIgKi8KPCAKPCAlfQo8ICVodHsKPCAv KiB0aGlzIHNob3VsZCBnbyBvbiB0aGUgdmVyeSB0b3Agb2YgdGhlIGhlYWRlciBhcyB3ZWxsICov CjwgJX0KPCAlcGh7CjwgLyogdGhpcyBzaG91bGQgZ28gaW50byB0aGUgcHJpdmF0ZSBoZWFkZXIg Ki8KPCAlfQo8ICVwcml2YXRlaGVhZGVyewo8IC8qIHRoaXMgc2hvdWxkIGdvIGludG8gdGhlIHBy aXZhdGUgaGVhZGVyIGFzIHdlbGwqLwo8ICV9CjwgCjwgCjwgJXsKPCAjaW5jbHVkZSA8c3RkaW8u aD4KPCAjaW5jbHVkZSA8Z3RrL2d0ay5oPgo8IC8qIHRoZSBuZXh0IGxpbmUgaXMgbm90IG1hbmRh dG9yeSwgYnV0IGlmIGdvYiBmaW5kcyBhbiBpbmNsdWRlIGluIG9uZSBvZgo8ICAgIHRoZSAleyAl fSBzZWN0aW9ucyBhYm92ZSB0aGUgY2xhc3MgZGVmaW5pdGlvbnMsIGl0IHdpbGwgbm90IHB1dCBp dCBpbgo8ICAgIHRoZSBmaWxlIGl0c2VsZi4gIFNvIHlvdSBjYW4gdGhpcyB3YXkgc2VsZWN0IHdo ZXJlIHRoZSBpbmNsdWRlIGZpbGUgaXMKPCAgICBhdCAqLwo8ICNpbmNsdWRlICJ0ZXN0LW9iamVj dC5oIgo8ICNpbmNsdWRlICJ0ZXN0LW9iamVjdC1wcml2YXRlLmgiCjwgCjwgLyogdGhpcyBpcyB0 byB0ZXN0IGlmIHRoZSBsZXhlciB3b24ndCBnZXQgY29uZnVzZWQgYnkgcmVxdWlyZXMgaW5zaWRl CjwgICAgc29tZSBjIGNvZGUKPCByZXF1aXJlcyA5OS45OS45OQo8ICovCjwgCjwgc3RhdGljIHZv aWQgampqaih2b2lkKTsKPCAKPCAjZGVmaW5lIF8oeCkgeAotLS0KPiAjaW5jbHVkZSA8Z2xpYi9n YXJyYXkuaD4KPiAjaW5jbHVkZSAicmVhbC1jb21wcmVzc29yLmgiCjQ3LDYyOWM3CjwgJWh7Cjwg ZW51bSBfZ29iX19lbnVtX3Qgewo8IAlCVURMSUtZLCBCVURMSUtZMgo8IH07CjwgCjwgc3RydWN0 IF9nb2JfX3N0cnVjdF90IHsKPCAJaW50IGksIHgsIHksIHo7CjwgfTsKPCB1bmlvbiBfZ29iX191 bmlvbl90IHsKPCAJaW50IGksIHgsIHksIHo7CjwgfTsKPCB2b2lkIGJ1YnUodm9pZCk7CjwgCjwg LyogRmFrZSBib3hlZCAqLwo8ICNkZWZpbmUgUEFDS0FHRV9UWVBFX0JPWEVEIDEKPCB0eXBlZGVm IHZvaWQgKiBQYWNrYWdlQm94ZWQ7CjwgCjwgJX0KPCAlaGVhZGVyewo8IC8qIHRoaXMgc2hvdWxk IGJlIGluIHRoZSBoZWFkZXIsIGp1c3QgdW5kZXIgYnVidSBwcm90b3R5cGUgKi8KPCAjZGVmaW5l IFRFU1RfQVJSQVkgNQo8ICV9CjwgCjwgZW51bSBMQU1FX0NMSUVOVCB7CjwgCUlTX0NPTk5FQ1RF RCwKPCAJTk9ORSA9IDksCjwgCUxBU1QKPCB9IFRlc3Q6RW51bTsKPCAKPCBmbGFncyBCVUdBX0JV R0Egewo8IAlPTkUsCjwgCVRXTywKPCAJTUFOWSwKPCB9IFNvbWU6RmxhZ3M7CjwgCjwgZXJyb3Ig VEVTVF9PQkpFQ1RfRVJST1Igewo8IAlCQURfVEhJUywKPCAJQkFEX1RIQVQKPCB9IFRlc3Q6T2Jq ZWN0OkVycm9yOwo8IAo8IGVudW0gQlVCTEUgewo8ICAgICAgICAgS0VJTiA9IDAsCjwgICAgICAg ICBTVEFOREFSRCwKPCAgICAgICAgIFNUQU5EQVJEX1JPLAo8ICAgICAgICAgS09NUExFVFQsCjwg ICAgICAgICBBTFQKPCB9IEJ1YmxlOkVudW07CjwgCjwgY2xhc3MgVGVzdDpPYmplY3QgZnJvbSAv Kkc6T2JqZWN0Ki8gR3RrOkNvbnRhaW5lcgo8IAkoaW50ZXJmYWNlIEd0azpUcmVlOk1vZGVsKQo8 IAkvKiBXZSBjYW4gYWRkIG1vcmUgaW50ZXJmYWNlcyBieSBhZGRpbmcgbW9yZSBsaW5lcyBsaWtl IHRoZSBhYm92ZSAqLwo8IAkvKiBOb3RlIHRoYXQgdGhlcmUgbXVzdCBleGlzdCBhIEd0a1RyZWVN b2RlbElmYWNlIHN0cnVjdHVyZSAqLwo8IHsKPCAKPCAJLyogZnVuY3Rpb24gaW1wbGVtZW50ZWQg Zm9yIHRoZSBHdGs6VHJlZTpNb2RlbCBpbnRlcmZhY2UgKi8KPCAJaW50ZXJmYWNlIEd0azpUcmVl Ok1vZGVsCjwgCXByaXZhdGUgR3RrVHJlZU1vZGVsRmxhZ3MKPCAJZ2V0X2ZsYWdzIChHdGs6VHJl ZTpNb2RlbCAqc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSkKPCAJewo8IAkJLyogRk9PICovCjwgCQly ZXR1cm4gKEd0a1RyZWVNb2RlbEZsYWdzKTA7CjwgCX0KPCAKPCAKPCAKPCAJcHVibGljIGludCB0 ZXN0X2FycmF5W1RFU1RfQVJSQVldOwo8IAlwdWJsaWMgaW50IGk7CjwgCWFyZ3VtZW50IElOVCBp IHNldCB7IHNlbGYtPmkgPSBBUkc7IH0gZ2V0IHsgQVJHID0gc2VsZi0+aTsgfSA7CjwgCjwgCXB1 YmxpYyBpbnQgdGVzdGluZyA9IDE7CjwgCWFyZ3VtZW50IElOVCB0ZXN0aW5nIGxpbms7CjwgCjwg CXB1YmxpYyBjaGFyICogdGVzdGluZ3N0cmluZyA9IHtnX3N0cmR1cCgidGVzdCIpfQo8IAkJZGVz dHJveXdpdGggZ19mcmVlOwo8IAlhcmd1bWVudCBQT0lOVEVSIHRlc3RpbmdzdHJpbmcgc3RyaW5n bGluazsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iago8IAkJdW5yZWZ3aXRo IGdfb2JqZWN0X3VucmVmOwo8IAlhcmd1bWVudCBQT0lOVEVSIHRlc3RpbmdvYmogb2JqZWN0bGlu azsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iamxsbGwKPCAJCXVucmVmd2l0 aCBndGtfd2lkZ2V0X2Rlc3Ryb3k7CjwgCWFyZ3VtZW50IFBPSU5URVIgdGVzdGluZ29iamxsbGwg b2JqZWN0bGluazsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iamZvbwo8IAkJ dW5yZWYgeyBpZiAoVkFSKSBnX29iamVjdF91bnJlZiAoVkFSKTsgfTsKPCAJYXJndW1lbnQgUE9J TlRFUiB0ZXN0aW5nb2JqZm9vIG9iamVjdGxpbms7CjwgCjwgCWNsYXNzd2lkZSBpbnQgZm9vID0g MjA7CjwgCWFyZ3VtZW50IElOVCBmb28gbGluazsKPCAKPCAJcHVibGljIEc6T2JqZWN0ICogdGVz dGluZ29iajIKPCAJCWRlc3Ryb3kgewo8IAkJCWlmKFZBUikKPCAJCQkJZ19vYmplY3RfdW5yZWYo R19PQkpFQ1QoVkFSKSk7CjwgCQl9Owo8IAlhcmd1bWVudCBQT0lOVEVSICh0eXBlIEc6T2JqZWN0 ICopIHRlc3RpbmdvYmoyIG9iamVjdGxpbms7CjwgCQo8IAlhcmd1bWVudCBQT0lOVEVSICh0eXBl IEdPYmplY3QgKikgc29tZV9vYmplY3QKPCAJCXNldCB7IC8qIHNldCBzb21lX29iamVjdCAqLyB9 CjwgCQlnZXQgeyAvKiBnZXQgc29tZV9vYmplY3QgKi8KPCAJCQlBUkc9TlVMTDsgfTsKPCAJYXJn dW1lbnQgKENPTlNUUlVDVCkgTE9ORyAodHlwZSBsb25nKSB3cml0ZV9vbmx5X2xvbmcKPCAJCXNl dCB7IC8qIHNldCB3cml0ZV9vbmx5X2xvbmcgKi8gfTsKPCAJYXJndW1lbnQgUE9JTlRFUiAodHlw ZSBjaGFyICopIHJlYWRfb25seV9zdHJpbmcKPCAJCWdldCB7IC8qIGdldCByZWFkb25seV9sb25n ICovCjwgCQkJQVJHID0gZ19zdHJkdXAoIkJMQUgiKTsgfTsKPCAKPCAJcHJpdmF0ZSBjaGFyIGFf cHJvcGVydHk7CjwgCXByb3BlcnR5IENIQVIgYV9wcm9wZXJ0eQo8IAkJKG5pY2sgPSBfKCJOaWNr IiksCjwgCQkgYmx1cmIgPSBfKCJCbHVyYiIpLAo8IAkJIG1pbmltdW0gPSAnYScsCjwgCQkgbWF4 aW11bSA9ICdaJywKPCAJCSBkZWZhdWx0X3ZhbHVlID0gJ0MnLAo8IAkJIGV4cG9ydCkKPCAJCXNl dCB7IHNlbGYtPl9wcml2LT5hX3Byb3BlcnR5ID0gZ192YWx1ZV9nZXRfY2hhciAoVkFMKTsgfQo8 IAkJZ2V0IHsgZ192YWx1ZV9zZXRfY2hhciAoVkFMLCBzZWxmLT5fcHJpdi0+YV9wcm9wZXJ0eSk7 IH07CjwgCjwgCXByb3BlcnR5IE9CSkVDVCBmb29iYXJibGFobGxsbDEKPCAJCShuaWNrID0gInh4 eHh4eHgxIiwKPCAJCSBibHVyYiA9ICJ5eXl5eXkiLAo8IAkJIG9iamVjdF90eXBlID0gR3RrOkJ1 dHRvbikKPCAJCWdldCB7IC8qIEZPTzEgKi8gfTsKPCAJcHJvcGVydHkgT0JKRUNUIGZvb2JhcmJs YWhsbGxsMgo8IAkJKG5pY2sgPSAieHh4eHh4eDIiLAo8IAkJIGJsdXJiID0gInl5eXl5eSIsCjwg CQkgb2JqZWN0X3R5cGUgPSBHOk9iamVjdCkKPCAJCXNldCB7IC8qIEZPTzIgKi8gfTsKPCAKPCAJ cHJpdmF0ZSBkb3VibGUgZGJsbnVtOwo8IAlwcm9wZXJ0eSBET1VCTEUgZGJsbnVtCjwgCQkobmlj ayA9IF8oImRibG51bSIpLAo8IAkJIGJsdXJiID0gXygiZGJsbnVtIiksCjwgCQkgbWluaW11bSA9 IDAuMSwKPCAJCSBtYXhpbXVtID0gOTkuMSwKPCAJCSBkZWZhdWx0X3ZhbHVlID0gMC4zLAo8IAkJ IGZsYWdzID0gQ09OU1RSVUNUfENPTlNUUlVDVF9PTkxZLAo8IAkJIGV4cG9ydCwKPCAJCSBsaW5r KTsKPCAKPCAJcHJpdmF0ZSBjaGFyICpiX3Byb3BlcnR5Owo8IAlwcm9wZXJ0eSBTVFJJTkcgYl9w cm9wZXJ0eQo8IAkJKG5pY2sgPSBfKCJOaWNrIGIiKSwKPCAJCSBibHVyYiA9IF8oIkJsdXJiIGIi KSwKPCAJCSBkZWZhdWx0X3ZhbHVlID0gImRlZmF1bHQiLAo8IAkJIHR5cGUgPSBjaGFyICosCjwg CQkgZmxhZ3MgPSBDT05TVFJVQ1QsCjwgCQkgZXhwb3J0LAo8IAkJIGxpbmspOwo8IAo8IAlwcml2 YXRlIFRlc3Q6T2JqZWN0ICpvYmplY3Rwcm9wZXJ0eTsKPCAJcHJvcGVydHkgT0JKRUNUIG9iamVj dHByb3BlcnR5IChuaWNrICAgPSAib2JqZWN0IiwKPCAJCQkJYmx1cmIgID0gIm9iaiBwcm9wZXJ0 eSIsCjwgCQkJCW9iamVjdF90eXBlID0gVGVzdDpPYmplY3QsCjwgCQkJCWxpbmspOwo8IAo8IAlw cml2YXRlIFRlc3Q6RW51bSBlbnVtX3Byb3BlcnR5Owo8IAlwcm9wZXJ0eSBFTlVNIGVudW1fcHJv cGVydHkgKG5pY2sgICA9ICJlbnVtcHJvcCIsCjwgCQkJCWJsdXJiICA9ICJlbnVtcHJvcCIsCjwg CQkJCWVudW1fdHlwZSA9IFRlc3Q6RW51bSwKPCAJCQkJbGluayk7CjwgCjwgCXByaXZhdGUgU29t ZTpGbGFncyBmbGFnc19wcm9wZXJ0eTsKPCAJcHJvcGVydHkgRkxBR1MgZmxhZ3NfcHJvcGVydHkg KG5pY2sgICA9ICJmbGFnc3Byb3AiLAo8IAkJCQlibHVyYiAgPSAiZmxhZ3Nwcm9wIiwKPCAJCQkJ ZmxhZ3NfdHlwZSA9IFNvbWU6RmxhZ3MsCjwgCQkJCWxpbmspOwo8IAo8IAkgIHByaXZhdGUgUGFj a2FnZUJveGVkIHByb3A7CjwgCSAgcHJvcGVydHkgQk9YRUQgcHJvcCAobmljaz0icHJvcCIsCjwg CQkJICAgICAgIGJsdXJiPSJwcm9wIiwKPCAJCQkgICAgICAgYm94ZWRfdHlwZT1QYWNrYWdlOkJv eGVkLAo8IAkJCSAgICAgICBsaW5rKTsKPCAJICAvKiB0ZXN0aW5nIG9sZCBzZW1hbnRpY3MgKi8K PCAJICBwcml2YXRlIFBhY2thZ2VCb3hlZCBwcm9wMjsKPCAJICBwcm9wZXJ0eSBCT1hFRCBwcm9w MiAobmljaz0icHJvcDIiLAo8IAkJCSAgICAgICBibHVyYj0icHJvcDIiLAo8IAkJCSAgICAgICBi b3hlZF90eXBlPVBBQ0tBR0VfVFlQRV9CT1hFRCwKPCAJCQkgICAgICAgbGluayk7CjwgCjwgCXBy aXZhdGUgY2hhciBvdl9wcm9wOwo8IAlwcm9wZXJ0eSBDSEFSIG92X3Byb3AKPCAJCShleHBvcnQs CjwgCQkgb3ZlcnJpZGUpCjwgCQlzZXQgeyBzZWxmLT5fcHJpdi0+b3ZfcHJvcCA9IGdfdmFsdWVf Z2V0X2NoYXIgKFZBTCk7IH0KPCAJCWdldCB7IGdfdmFsdWVfc2V0X2NoYXIgKFZBTCwgc2VsZi0+ X3ByaXYtPm92X3Byb3ApOyB9Owo8IAo8IAo8IAlwcml2YXRlIGludCBqOwo8IAlwdWJsaWMgR09i amVjdCAqIGg7CjwgCXB1YmxpYyBjaGFyICpibGVoOwo8IAlwdWJsaWMgZG91YmxlIGFycmF5WzIz XVsxOF07CjwgCXByb3RlY3RlZCB1bnNpZ25lZCBsb25nIGludCB3YWdhd2FnYTsKPCAJcHVibGlj IGludCB3YWdhd2FnYV9zaG91bGRfYmVfYWZ0ZXJfdGhpc19pbl90aGVfaGVhZGVyOwo8IAo8IAlp bml0KG9iamVjdCkgewo8IAkJb2JqZWN0LT5pPTA7CjwgCX0KPCAJY2xhc3NfaW5pdChrbGFzcyk7 CjwgCjwgCS8qKgo8IAkgKiBuZXc6CjwgCSAqIEBqOiBmb28KPCAJICoKPCAJICogYnVkbGlreSBi dWRsaWt5CjwgCSAqCjwgCSAqIFJldHVybnM6IG5ldyBvYmplY3QKPCAJICovCjwgCXB1YmxpYyBH T2JqZWN0ICogbmV3KGludCBqIChjaGVjayA+IDApKSB7CjwgCQlHT2JqZWN0ICpyZXQ7CjwgCQly ZXQgPSBHX09CSkVDVCAoR0VUX05FVyk7CjwgCjwgCQlTRUxGKHJldCktPl9wcml2LT5qID0gajsK PCAKPCAJCXJldHVybiByZXQ7CjwgCX0KPCAJcHJpdmF0ZSBpbnQgYmxhaChzZWxmLCBHOk9iamVj dCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSwKPCAJCQkgaW50IGggKGNoZWNrID4gMCkpIG9uZXJy b3IgLTEgewo8IAkJZ19vYmplY3Rfc2V0IChHX09CSkVDVCAoc2VsZiksCjwgCQkJICAgICAgVEVT VF9PQkpFQ1RfUFJPUF9JICg5OSksCjwgCQkJICAgICAgTlVMTCk7CjwgCQlyZXR1cm4gaDsKPCAJ fQo8IAkvKioKPCAJICogYmxlaDoKPCAJICogQHNlbGY6IGZvbwo8IAkgKiBAd2lkOiBmb28KPCAJ ICogQGg6IGZvbwo8IAkgKgo8IAkgKiBidWRsaWt5IGJ1ZGxpa3kgMgo8IAkgKgo8IAkgKiBSZXR1 cm5zOiBuZXcgb2JqZWN0CjwgCSAqKi8KPCAJc2lnbmFsIGxhc3QgU1RSSU5HIChQT0lOVEVSLCBJ TlQpCjwgCWNoYXIgKiBibGVoKHNlbGYsIEc6T2JqZWN0ICogd2lkIChjaGVjayBudWxsIHR5cGUp LAo8IAkJICAgICAgICBpbnQgaCAoY2hlY2sgPiAwKSkgewo8IAkJcmV0dXJuIHNlbGZfYmxhaChz ZWxmLHdpZCxoKSA+IDAgPyBnX3N0cmR1cCAoImZvbyIpIDogZ19zdHJkdXAgKCJiYXIiKTsKPCAJ fQo8IAo8IAlwcml2YXRlCjwgCWNoYXIgKgo8IAl0ZXN0X2hhbmRsZXIgKHNlbGYsIEdPYmplY3Qg KncsIGludCBoLCBncG9pbnRlciBkYXRhKQo8IAl7CjwgCQlkYXRhID0gdyA9IE5VTEw7CjwgCQlo ID0gMDsKPCAJCQkKPCAJCXJldHVybiBOVUxMOwo8IAl9CjwgCjwgCS8qKgo8IAkgKiBndGtfd2Vp cmRfYnV0dG9uX2JsZWgyOgo8IAkgKiBAc2VsZjogZm9vCjwgCSAqIEB3aWQ6IGZvbwo8IAkgKiBA aDogZm9vCjwgCSAqCjwgCSAqIGJ1ZGxpa3kgYnVkbGlreSAzCjwgCSAqCjwgCSAqIFJldHVybnM6 IG5ldyBvYmplY3QgKi8KPCAJc2lnbmFsIGxhc3QgSU5UIChQT0lOVEVSLCBJTlQpCjwgCWludCBi bGVoMihzZWxmLCBjb25zdCBHOk9iamVjdCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSwKPCAJCSAg ICAgICAgaW50IGggKGNoZWNrID4gMCkpIHsKPCAKPCAJCXRlc3Rfb2JqZWN0X2Nvbm5lY3RfX2Js ZWggKHNlbGYsIHNlbGZfdGVzdF9oYW5kbGVyLCBOVUxMKTsKPCAJCXNlbGZfY29ubmVjdF9fYmxl aCAoc2VsZiwgc2VsZl90ZXN0X2hhbmRsZXIsIE5VTEwpOwo8IAkJdGVzdF9vYmplY3RfY29ubmVj dF9hZnRlcl9fYmxlaCAoc2VsZiwgc2VsZl90ZXN0X2hhbmRsZXIsIE5VTEwpOwo8IAkJc2VsZl9j b25uZWN0X2FmdGVyX19ibGVoIChzZWxmLCBzZWxmX3Rlc3RfaGFuZGxlciwgTlVMTCk7CjwgCQl0 ZXN0X29iamVjdF9jb25uZWN0X2RhdGFfX2JsZWggKHNlbGYsIHNlbGZfdGVzdF9oYW5kbGVyLCBO VUxMLCBOVUxMLCAwKTsKPCAJCXNlbGZfY29ubmVjdF9kYXRhX19ibGVoIChzZWxmLCBzZWxmX3Rl c3RfaGFuZGxlciwgTlVMTCwgTlVMTCwgMCk7CjwgCjwgCQl3aWQgPSBOVUxMOwo8IAkJaCA9IDA7 CjwgCjwgCQkvKiB0ZXN0aW5nIG11bHRpcGxlIG1hcnNoYWxsZXIgc3VwcG9ydCAqLwo8IAkJcmV0 dXJuIDA7CjwgCX0KPCAJLyogdGhpcyBzaG91bGQgbm90IGdldCBkb2N1bWVudGVkIGFzIGl0J3Mg bm9uc3RhbmRhcmQgKi8KPCAJLyoqCjwgCSAqIGJsb2g6CjwgCjwgCSAqKioqKiovCjwgCjwgCS8q IEhlcmUgd2UgYXJlIHRlc3RpbmcgaG93IHRoZSBndGstZG9jIGV4dHJhY3Rpb24gY29kZSBlcnJv ciBoYW5kZWxpbmcKPCAJICAgaXQgc2hvdWxkIGp1c3QgaW5nb3JlIHRoZXNlICovCjwgCS8qKgo8 IAkgICovCjwgCjwgCS8qKiAqLwo8IAkvKioKPCAJICoKPCAJICogYnVidQo8IAkgKioqKioqKioq Lwo8IAkvKioKPCAJICoKPCAJICogYnVidQo8IAkgKip6Ymx1bmsqKioqKioqLwo8IAkvKioKPCAJ ICoKPCAJICogYnVidQo8IAkgKnpibHVuayoqKioqKiovLyoqLy8qKi8KPCAJc2lnbmFsIGZpcnN0 IE5PTkUgKE5PTkUpCjwgCXZvaWQgYmxvaChzZWxmKTsKPCAJdmlydHVhbCB2b2lkICogYmFoKHNl bGYsIGludCBoIChjaGVjayA+IDApKSBvbmVycm9yIE5VTEwgZGVmcmV0dXJuIDAgewo8IAkJc2Vs Zl9iZWgoc2VsZixoKTsKPCAJCXJldHVybiBOVUxMOwo8IAl9CjwgCXZpcnR1YWwgaW50IGJlaChz ZWxmLCBpbnQgaCAoY2hlY2sgPiAwKSk7CjwgCW92ZXJyaWRlKEd0azpDb250YWluZXIpCjwgCXZv aWQgYWRkKEd0azpDb250YWluZXIgKiBzZWxmIChjaGVjayBudWxsIHR5cGUpLAo8ICAgICAgICAg ICAgICAgICAgR3RrOldpZGdldCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSkgewo8IAkJUEFSRU5U X0hBTkRMRVIoc2VsZix3aWQpOwo8IAl9CjwgCjwgCW92ZXJyaWRlKEc6T2JqZWN0KQo8IAl2b2lk IGRpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCAoRzpPYmplY3QgICAgICAqb2JqZWN0LAo8IAkJ CQkJICBndWludAkgICBuX3BzcGVjcywKPCAJCQkJCSAgR1BhcmFtU3BlYyAgKipwc3BlY3MpCjwg CXsKPCAJCW9iamVjdCA9IE5VTEw7CjwgCQluX3BzcGVjcyA9IDA7CjwgCQlwc3BlY3MgPSBOVUxM Owo8IAkJLyogRUtJISAqLwo8IAl9CjwgCjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0KHNlbGYsIGNv bnN0IGdjaGFyICp0ZXh0LCAuLi4pCjwgCXsKPCAJCXRleHQgPSBOVUxMOwo8IAkJcmV0dXJuIDI1 Owo8IAl9CjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0MihzZWxmLCBnY2hhciBjb25zdCAqdGV4dCwg Li4uKQo8IAl7CjwgCQl0ZXh0ID0gTlVMTDsKPCAJCXJldHVybiAyNTsKPCAJfQo8IAlwdWJsaWMg aW50IGNvbnN0dGVzdDMoc2VsZiwgRzpPYmplY3QgY29uc3QgKndpZCAoY2hlY2sgbnVsbCB0eXBl KSkKPCAJewo8IAkJd2lkID0gTlVMTDsKPCAJCXJldHVybiAyNTsKPCAJfQo8IAlwdWJsaWMgaW50 IGNvbnN0dGVzdDQoY29uc3Qgc2VsZikKPCAJewo8IAkJcmV0dXJuIDI1Owo8IAl9CjwgCXB1Ymxp YyBpbnQgY29uc3R0ZXN0NShzZWxmIGNvbnN0KQo8IAl7CjwgCQlyZXR1cm4gMjU7CjwgCX0KPCAJ dmlydHVhbCBpbnQgY29uc3R0ZXN0Nihjb25zdCBzZWxmKQo8IAl7CjwgCQlyZXR1cm4gMjU7Cjwg CX0KPCAJdmlydHVhbCBpbnQgY29uc3R0ZXN0NyhzZWxmIGNvbnN0KQo8IAl7CjwgCQlyZXR1cm4g MjU7CjwgCX0KPCAJcHVibGljIGludCBjb25zdHRlc3Q4KHNlbGYpCjwgCXsKPCAJCVNlbGYgY29u c3QgKnNlbGZjb25zdDEsICpzZWxmY29uc3QyOwo8IAkJc2VsZmNvbnN0MSA9IFNFTEZfQ09OU1Qo c2VsZik7CjwgCQlzZWxmY29uc3QyID0gVEVTVF9PQkpFQ1RfQ09OU1Qoc2VsZik7CjwgCQlyZXR1 cm4gMjU7CjwgCX0KPCAJcHVibGljIGludCBjb25zdHRlc3Q5KGNvbnN0IHNlbGYsIGludCBpLCBk b3VibGUgYikKPCAJewo8IAkJYiA9IDAuMDsKPCAJCWkgPSAwOwo8IAkJcmV0dXJuIDI1Owo8IAl9 CjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0MTAoc2VsZiBjb25zdCwgaW50IGksIGRvdWJsZSBiKQo8 IAl7CjwgCQliID0gMC4wOwo8IAkJaSA9IDA7CjwgCQlyZXR1cm4gMjU7CjwgCX0KPCAJc2lnbmFs IHByaXZhdGUgZmlyc3QgTk9ORSAoTk9ORSkKPCAJdm9pZCBnb29nbGVnb29nbGUoc2VsZikKPCAJ ewo8IAkJcHV0cygiVEVTVDEiKTsKPCAJCXNlbGZfZ29vZ2xlZ29vZ2xlMihzZWxmKTsKPCAJfQo8 IAlzaWduYWwgZmlyc3QgcHJpdmF0ZSBOT05FIChOT05FKQo8IAl2b2lkIGdvb2dsZWdvb2dsZTIo c2VsZikKPCAJewo8IAkJaW50IGFycmF5WzVdWzhdWzldPXt7ezB9fX07CjwgCQlTZWxmICpmb28g PSBzZWxmOwo8IAkJcHV0cygiVEVTVDIiKTsKPCAJCXNlbGZfdGVzdHByaXZ2aXJ0dWFsKGZvbywg YXJyYXkpOwo8IAl9CjwgCXByaXZhdGUgc2lnbmFsIGZpcnN0IE5PTkUgKE5PTkUpCjwgCXZvaWQg Z29vZ2xlZ29vZ2xlMyhzZWxmKQo8IAl7CjwgCQlwdXRzKCJURVNUMyIpOwo8IAl9CjwgCXByb3Rl Y3RlZCBzaWduYWwgZmlyc3QgTk9ORSAoTk9ORSkKPCAJdm9pZCBnb29nbGVnb29nbGU0KHNlbGYp CjwgCXsKPCAJCXB1dHMoIlRFU1Q0Iik7CjwgCX0KPCAJcHJvdGVjdGVkIHNpZ25hbCBmaXJzdCBO T05FIChOT05FKQo8IAl2b2lkIGdvb2dsZWdvb2dsZV9jb25zdDEoY29uc3Qgc2VsZikKPCAJewo8 IAkJcHV0cygiVEVTVDQiKTsKPCAJfQo8IAlwcm90ZWN0ZWQgc2lnbmFsIGZpcnN0IE5PTkUgKE5P TkUpCjwgCXZvaWQgZ29vZ2xlZ29vZ2xlX2NvbnN0MihzZWxmIGNvbnN0KQo8IAl7CjwgCQlwdXRz KCJURVNUNCIpOwo8IAl9CjwgCXZpcnR1YWwgcHJpdmF0ZQo8IAl2b2lkIHRlc3Rwcml2dmlydHVh bChzZWxmLCBpbnQgc29tZV9hcnJheVs1XVs4XVs5XSkKPCAJewo8IAkJcHV0cygiVEVTVDMiKTsK PCAJCXNlbGZfZ29vZ2xlZ29vZ2xlKHNlbGYpOwo8IAkJaWYgKHNvbWVfYXJyYXlbMF0pIHJldHVy bjsKPCAJfQo8IAlwcml2YXRlIHZpcnR1YWwKPCAJdm9pZCB0ZXN0cHJpdnZpcnR1YWwyKHNlbGYs IGNvbnN0IGludCBzb21lX2FycmF5WzVdWzhdWzldKQo8IAl7CjwgCQkvKiBub3RoaW5nIGhlcmUg Ki8KPCAJCWlmIChzb21lX2FycmF5WzBdKSByZXR1cm47CjwgCX0KPCAJcHVibGljIHZpcnR1YWwK PCAJdm9pZCB0ZXN0cHVibGljdmlydHVhbChzZWxmLCBpbnQgY29uc3Qgc29tZV9hcnJheVs1XVs4 XVs5XSkKPCAJewo8IAkJLyogbm90aGluZyBoZXJlICovCjwgCQlpZiAoc29tZV9hcnJheVswXSkg cmV0dXJuOwo8IAl9CjwgCXByb3RlY3RlZCB2aXJ0dWFsCjwgCXZvaWQgdGVzdHByb3RlY3RlZHZp cnR1YWwoc2VsZiwgaW50IHNvbWVfYXJyYXlbNV1bOF1bOV0pCjwgCXsKPCAJCS8qIG5vdGhpbmcg aGVyZSAqLwo8IAkJaWYgKHNvbWVfYXJyYXlbMF0pIHJldHVybjsKPCAJfQo8IAlzaWduYWwgZmly c3QgTk9ORSAoUE9JTlRFUiwgRU5VTSkKPCAJdm9pZCB0ZXN0YXJyc2lnbmFsKHNlbGYsIGxvbmcg YXJyWzhdLCBCdWJsZTpFbnVtIGZvbykKPCAJewo8IAkJLyogZm9vICovCjwgCQlhcnJbMF0gPSAx Owo8IAkJZm9vID0gQlVCTEVfS0VJTjsKPCAJfQo8IAo8IAkvKiB0ZXN0aW5nIGVtcHR5IGZ1bmMg Ki8KPCAJcHVibGljIHZvaWQgZm9vZm9vZm9vKHNlbGYpIHt9CjwgCS8qIHRlc3RpbmcgZW1wdHkg ZnVuYyAyICovCjwgCXB1YmxpYyB2b2lkIGZvb2Zvb2ZvbzIoc2VsZik7CjwgCS8qIHRlc3Rpbmcg ZW1wdHkgZnVuYyAzICovCjwgCXB1YmxpYyB2b2lkIGZvb2Zvb2ZvbzMoc2VsZikgeyAgIH0KPCAJ LyogdGVzdGluZyBlbXB0eSBmdW5jIDQgKi8KPCAJcHVibGljIHZvaWQgZm9vZm9vZm9vNChzZWxm KQo8IAl7CjwgCX0KPCAKPCAvLwlvdmVycmlkZSAoR3RrOldpZGdldCkKPCAvLwlpbnQgZXZlbnQo R3RrOldpZGdldCAqc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSwKPCAvLwkJICBHZGtFdmVudCAqZXZl bnQgKGNoZWNrIG51bGwpKSBvbmVycm9yIEZBTFNFCjwgLy8Jewo8IC8vCQlpbnQgcmV0Owo8IC8v CQkvKiBzb21lIGNvZGUgKi8KPCAvLwkJcmV0ID0gUEFSRU5UX0hBTkRMRVIoc2VsZixldmVudCk7 CjwgLy8JCS8qIHNvbWUgY29kZSAqLwo8IC8vCQlyZXR1cm4gcmV0Owo8IC8vCX0KPCAvLwlvdmVy cmlkZShHdGs6Q29udGFpbmVyKQo8IC8vCXZvaWQKPCAvLwlyZW1vdmUoR3RrOkNvbnRhaW5lciAq IHNlbGYgKGNoZWNrIG51bGwgdHlwZSksCjwgLy8JICAgICAgIEd0azpXaWRnZXQgKiB3aWQgKGNo ZWNrIG51bGwgdHlwZSkpOwo8IC8vCjwgLy8Jb3ZlcnJpZGUoR3RrOk9iamVjdCkKPCAvLwl2b2lk CjwgLy8JZGVzdHJveShHdGs6T2JqZWN0ICogc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSkKPCAvLwl7 CjwgLy8JCS8qIGZvbyBiYXIgKi8KPCAvLwkJUEFSRU5UX0hBTkRMRVIoc2VsZik7CjwgLy8JfQo8 IAo8IAlwcm90ZWN0ZWQKPCAJaW50IGZvb2JhcihzZWxmKSB7CjwgCQkvKiBqdXN0IGFuIGVtcHR5 IGZ1bmN0aW9uICovCjwgCQlyZXR1cm4gNTsKPCAJfQo8IAo8IAlzaWduYWwgbGFzdCBOT05FKENI QVIsVUNIQVIsQk9PTEVBTixJTlQsVUlOVCxMT05HLFVMT05HLEZMT0FULERPVUJMRSwKPCAJCQkg U1RSSU5HLEVOVU0sUE9JTlRFUixPQkpFQ1QpCjwgCXZvaWQKPCAJdGVzdGFyZ3Moc2VsZiwgZ2No YXIgYSwgZ3VjaGFyIGIsIGdib29sZWFuIGMsIGdpbnQgZCwgZ3VpbnQgZSwgZ2xvbmcgZiwKPCAJ CSBndWxvbmcgZywgZ2Zsb2F0IGgsIGdkb3VibGUgaSwgZ2NoYXIgKiBqLCBnaW50IGssCjwgCQkg Z3BvaW50ZXIgbywgR09iamVjdCAqcCkKPCAJewo8IAkJaCA9IGkgPSBrID0gMDsKPCAJCWEgPSBi ID0gYyA9IGQgPSBlID0gZiA9IGcgPSAwOwo8IAkJbyA9IHAgPSAoR09iamVjdCAqKU5VTEw7Cjwg CQlqID0gKGNoYXIgKilOVUxMOwo8IAkJLyogdWdoLCB0ZXN0aW5nIGNhc3RpbmcgKi8KPCAJfQo8 IAo8IAlwdWJsaWMgc2lnbmFsIChOT19IT09LUykgbGFzdCBJTlQgKElOVCkKPCAJaW50IHRlc3Rm bGFncyhzZWxmLCBpbnQgdyAoY2hlY2sgPiAwKSkgZGVmcmV0dXJuIC05OSB7CjwgCQkvKmZvbyov CjwgCQlyZXR1cm4gdzsKPCAJfQo8IAo8IAkvKiB0ZXN0aW5nIE5PTkUgKi8KPCAJc2lnbmFsIEJP T0xFQU4gKE5PTkUpCjwgCWdib29sZWFuCjwgCXRlc3Rfbm9uZV90aGluZyAoc2VsZikKPCAJewo8 IAkJcmV0dXJuIEZBTFNFOwo8IAl9CjwgCjwgCS8qIHNvbWUgbW9yZSBlbnVtIHRlc3RpbmcgKi8K PCAJcHVibGljIEJ1YmxlRW51bSBidWJsZTsKPCAgICAgICAgIHByb3BlcnR5IEVOVU0gYnVibGUK PCAgICAgICAgICAgICAgICAgKG5pY2sgPSAiQnVibGUiLAo8ICAgICAgICAgICAgICAgICAgYmx1 cmIgPSAiQnVibGUiLAo8ICAgICAgICAgICAgICAgICAgZW51bV90eXBlID0gQnVibGU6RW51bSwK PCAgICAgICAgICAgICAgICAgIGRlZmF1bHRfdmFsdWUgPSBCVUJMRV9TVEFOREFSRCwKPCAgICAg ICAgICAgICAgICAgIGxpbmssIGV4cG9ydCk7CjwgCjwgCS8qIHRlc3RpbmcgdHlwZXMgKi8KPCAJ cHVibGljIGludCB0MTsKPCAJcHVibGljIGxvbmcgaW50IHQyOwo8IAlwdWJsaWMgaW50IGxvbmcg dDM7CjwgCXB1YmxpYyBpbnQgbG9uZyBjb25zdCB0NDsKPCAJcHVibGljIGNvbnN0IGludCBsb25n IHQ1Owo8IAlwdWJsaWMgY29uc3QgY2hhciAqIGNvbnN0IHQ2Owo8IAlwdWJsaWMgY2hhciBjb25z dCAqIGNvbnN0IHQ3Owo8IAlwdWJsaWMgZW51bSBfZ29iX19lbnVtX3QgY29uc3QgKiBjb25zdCB0 ODsKPCAJcHVibGljIHVuaW9uIF9nb2JfX3VuaW9uX3QgdDk7CjwgCXB1YmxpYyB1bmlvbiBfZ29i X191bmlvbl90ICogY29uc3QgKiBjb25zdCAqIHQxMDsKPCAJcHVibGljIHN0cnVjdCBfZ29iX19z dHJ1Y3RfdCAqIGNvbnN0ICogY29uc3QgKiB0MTE7CjwgCXB1YmxpYyBjb25zdCBzdHJ1Y3QgX2dv Yl9fc3RydWN0X3QgKiBjb25zdCAqIGNvbnN0ICogdDEzOwo8IAlwdWJsaWMgY29uc3QgZW51bSBf Z29iX19lbnVtX3QgKiBjb25zdCAqIGNvbnN0ICogdDE0Owo8IAlwdWJsaWMgZW51bSBfZ29iX19l bnVtX3QgdDE1Owo8IAlwdWJsaWMgZ2NoYXIgY29uc3QgdDE2Owo8IAlwdWJsaWMgY29uc3QgZ2No YXIgKiBjb25zdCB0MTc7CjwgCXB1YmxpYyBjb25zdCBnY2hhciB0MTg7CjwgCjwgCS8qIHRlc3Rp bmcgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzICovCjwgCXB1YmxpYyB2b2lkIG1ldGhvZF93aXRo X25vX2FyZ3VtZW50cyAodm9pZCkKPCAJewo8IAkJLyogRk9PICovCjwgCX0KPCAKPCAJLyogdGVz dGluZyBjYWxsaW5nIHRoZSBhYm92ZSBtZXRob2QgKi8KPCAJcHVibGljIHZvaWQgZm9vIChzZWxm KSB7CjwgCQlzZWxmX21ldGhvZF93aXRoX25vX2FyZ3VtZW50cyAoKTsKPCAJfQo8IAo8IAkvKiB0 aGlzIGlzIHRvIHRlc3QgY3VzdG9tIGdldF90eXBlICovCjwgCS8qcHVibGljIEd0a1R5cGUKPCAJ Z2V0X3R5cGUgKHZvaWQpCjwgCXsKPCAJCXN0YXRpYyBndWludCB0eXBlID0gMDsKPCAKPCAJCWlm ICggISB0eXBlKSB7CjwgCQkJc3RhdGljIGNvbnN0IEd0a1R5cGVJbmZvIGluZm8gPSB7CjwgCQkJ CSJHdGtXZWlyZEJ1dHRvbiIsCjwgCQkJCXNpemVvZiAoR3RrV2VpcmRCdXR0b24pLAo8IAkJCQlz aXplb2YgKEd0a1dlaXJkQnV0dG9uQ2xhc3MpLAo8IAkJCQkoR3RrQ2xhc3NJbml0RnVuYykgZ3Rr X3dlaXJkX2J1dHRvbl9jbGFzc19pbml0LAo8IAkJCQkoR3RrT2JqZWN0SW5pdEZ1bmMpIGd0a193 ZWlyZF9idXR0b25faW5pdCwKPCAJCQkJTlVMTCwKPCAJCQkJTlVMTCwKPCAJCQkJKEd0a0NsYXNz SW5pdEZ1bmMpIE5VTEwKPCAJCQl9Owo8IAo8IAkJCXR5cGUgPSBndGtfdHlwZV91bmlxdWUgKGd0 a19idXR0b25fZ2V0X3R5cGUoKSwgJmluZm8pOwo8IAkJfQo8IAo8IAkJcmV0dXJuIHR5cGU7Cjwg CX0qLwo8IAo8IAo8IAkvKiB0ZXN0aW5nIGVtcHR5IHN0YXRlbWVudHMgKi8KPCAJOwo8IAk7Cjwg CTsKPCB9CjwgCjwgJXsKPCAKPCBzdGF0aWMgdm9pZAo8IGpqamoodm9pZCkKLS0tCj4gaW50ZXJm YWNlIENvbXBMZWFybjpSZWFsOkNvbXByZXNzb3IgZnJvbSBHOlR5cGU6SW50ZXJmYWNlCjYzMGE5 LDM5Cj4gICBwdWJsaWMgRzpPYmplY3QgKgo+ICAgbmV3KHZvaWQpIHsKPiAgICAgR09iamVjdCAq cmV0ID0gKEdPYmplY3QgKikgR0VUX05FVzsKPiAgICAgcmV0dXJuIEdfT0JKRUNUIChyZXQpOwo+ ICAgfQo+ICAgcHVibGljIEdTdHJpbmcgKgo+ICAgY29tcHJlc3MoQ29tcExlYXJuUmVhbENvbXBy ZXNzb3IgKnJjLGNvbnN0IEdTdHJpbmcgKmlucHV0KTsKPiAgIHB1YmxpYyBHU3RyaW5nICoKPiAg IGRlY29tcHJlc3MoQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjLGNvbnN0IEdTdHJpbmcgKmlu cHV0KTsKPiAgIHB1YmxpYyBHU3RyaW5nICoKPiAgIGNhbm9uaWNhbF9leHRlbnNpb24oQ29tcExl YXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmluZyAqCj4gICBibHVyYihDb21w TGVhcm5SZWFsQ29tcHJlc3NvciAqcmMpOwo+IHB1YmxpYyBHU3RyaW5nICoKPiAgIG5hbWUoQ29t cExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmluZyAqCj4gICBjb21wcmVz c29yX3ZlcnNpb24oQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmlu ZyAqCj4gICBiaW5kaW5nX3ZlcnNpb24oQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBw dWJsaWMgZ2RvdWJsZQo+ICAgY29tcHJlc3NlZF9zaXplKENvbXBMZWFyblJlYWxDb21wcmVzc29y ICpyYywgY29uc3QgR1N0cmluZyAqaW5wdXQpOwo+IHB1YmxpYyBnYm9vbGVhbgo+ICAgaXNfanVz dF9zaXplKENvbXBMZWFyblJlYWxDb21wcmVzc29yICpyYyk7Cj4gcHVibGljIGdib29sZWFuCj4g ICBpc19vcGVyYXRpb25hbChDb21wTGVhcm5SZWFsQ29tcHJlc3NvciAqc2VsZik7Cj4gcHVibGlj IGdib29sZWFuCj4gICBpc19kZWNvbXByZXNzaWJsZShDb21wTGVhcm5SZWFsQ29tcHJlc3NvciAq cmMsIGNvbnN0IEdTdHJpbmcgKmlucHV0KTsKPiBwdWJsaWMgZ2Jvb2xlYW4KPiAgIGlzX3ByaXZh dGVfcHJvcGVydHkoQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjLCBjb25zdCBjaGFyICppbnB1 dCk7Cj4gcHVibGljIGd1aW50NjQKPiAgIHdpbmRvd19zaXplKENvbXBMZWFyblJlYWxDb21wcmVz c29yICpyYyk7CjYzMiw2MzlkNDAKPCAKPCB2b2lkCjwgYnVidSh2b2lkKQo8IHsKPCAJampqaigp Owo8IH0KPCAKPCAlfQpkaWZmIC1yIGdvYjItMi4wLjE0L3NyYy90cmVlZnVuY3MuYyBnb2JuZXcv c3JjL3RyZWVmdW5jcy5jCjEwOGExMDkKPiAJUVVBUktfaXNpbnRlcmZhY2UsCjIxNmEyMTgKPiAJ Z19oYXNoX3RhYmxlX2luc2VydCAocXVhcmtfaHQsICJpc2ludGVyZmFjZSIsIEdJTlRfVE9fUE9J TlRFUiAoUVVBUktfaXNpbnRlcmZhY2UpKTsKMzY1YTM2OAo+IAluZXctPmlzaW50ZXJmYWNlID0g c2VsZi0+aXNpbnRlcmZhY2U7Cjk1N2E5NjEsOTY1Cj4gCQljYXNlIFFVQVJLX2lzaW50ZXJmYWNl OiB7Cj4gCQkJZ2Jvb2xlYW4gaXNpbnRlcmZhY2UgPSB2YV9hcmcgKF9fYXAsIGdib29sZWFuKTsK PiAJCQlzZWxmLT5pc2ludGVyZmFjZSA9IGlzaW50ZXJmYWNlOwo+IAkJCWJyZWFrOwo+IAkJfQpk aWZmIC1yIGdvYjItMi4wLjE0L3NyYy90cmVlZnVuY3MuZGVmIGdvYm5ldy9zcmMvdHJlZWZ1bmNz LmRlZgo1OWM1OSw2MAo8ICAgQk9PTAkJYWJzdHJhY3QgIyBpZiBHX1RZUEVfRkxBR19BQlNUUkFD VCBzaG91bGQgYmUgdXNlZAotLS0KPiAgIEJPT0wJCWFic3RyYWN0ICAgICMgaWYgR19UWVBFX0ZM QUdfQUJTVFJBQ1Qgc2hvdWxkIGJlIHVzZWQKPiAgIEJPT0wJCWlzaW50ZXJmYWNlICMgaWYgaXQg aXMgYW4gaW50ZXJmYWNlIGluc3RlYWQgb2YgYSBjbGFzcwpkaWZmIC1yIGdvYjItMi4wLjE0L3Ny Yy90cmVlZnVuY3MuaCBnb2JuZXcvc3JjL3RyZWVmdW5jcy5oCjEyMWExMjIKPiAJZ2Jvb2xlYW4g aXNpbnRlcmZhY2U7Ck9ubHkgaW4gZ29ibmV3OiBzdGFtcC1oCg== ------=_Part_14328_19591152.1178132480123 Content-Type: text/x-patch; name=second-interface-u.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f185nbz6 Content-Disposition: attachment; filename="second-interface-u.patch" T25seSBpbiBnb2JuZXc6IGNvbmZpZy5oCk9ubHkgaW4gZ29ibmV3OiBjb25maWcubG9nCk9ubHkg aW4gZ29ibmV3OiBjb25maWcuc3RhdHVzCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0yLjAu MTQvZGViaWFuIGFuZCBnb2JuZXcvZGViaWFuCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0y LjAuMTQvZG9jIGFuZCBnb2JuZXcvZG9jCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0yLjAu MTQvZXhhbXBsZXMgYW5kIGdvYm5ldy9leGFtcGxlcwpPbmx5IGluIGdvYm5ldzogTWFrZWZpbGUK T25seSBpbiBnb2JuZXc6IG8KQ29tbW9uIHN1YmRpcmVjdG9yaWVzOiBnb2IyLTIuMC4xNC9zcmMg YW5kIGdvYm5ldy9zcmMKT25seSBpbiBnb2JuZXc6IHN0YW1wLWgK ------=_Part_14328_19591152.1178132480123 Content-Type: text/plain; charset=us-ascii; name="footer" Content-Transfer-Encoding: 8bit -- to unsubscribe: send mail to [email protected] with "unsubscribe gob-list" in the subject ------=_Part_14328_19591152.1178132480123--