--------------Boundary-00=_2KHZO7FAYFAD4H9KIBHU Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit > First remark: bad grammar :-) > I'm not a native English speaker, but I think "Remove old messages from > trash on exit. Limit: xxx" would be better. I find this sentence not clear enough. What is the limit for ? I'm okay for a new sentence, but it should be clear. > Second remark: Please use a KIntNumBox instead of a QSpinBox. Ok but I didn't find how to specify an interval to use. The doc speaks about KIntValidator but I couldn't find any reference to it in the source. > Third remark: There is a kdDebug() call in KMFolder::expungeOldMsg, where > you missed the "<< endl" This was because the date string is ended by a '\n'. > The rest of the patch looks very good. Thanx. Here are the two patch, up to date with kmail for review and testing. Andreas, you might want to modify KmFolder::expungeOldMail() for your needs. regards, Philippe --------------Boundary-00=_2KHZO7FAYFAD4H9KIBHU Content-Type: text/x-c; charset="iso-8859-1"; name="kmail-fcc.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kmail-fcc.diff" ZGlmZiAtdSAtWCAvaG9tZS9waGlsaXBwZS9iaW4vZGlmZi5leCBjdnMta21haWwva21jb21wb3Nl cnVpLnJjIGZjYy1rbWFpbC9rbWNvbXBvc2VydWkucmMKLS0tIGN2cy1rbWFpbC9rbWNvbXBvc2Vy dWkucmMJVGh1IEphbiAgNCAxOToxNTo0OCAyMDAxCisrKyBmY2Mta21haWwva21jb21wb3NlcnVp LnJjCU1vbiBKYW4gMTUgMTQ6NTg6NDUgMjAwMQpAQCAtNDMsNiArNDMsNyBAQAogICAgPEFjdGlv biBuYW1lPSJzaG93X3RvIiAvPgogICAgPEFjdGlvbiBuYW1lPSJzaG93X2NjIiAvPgogICAgPEFj dGlvbiBuYW1lPSJzaG93X2JjYyIgLz4KKyAgIDxBY3Rpb24gbmFtZT0ic2hvd19mb2xkZXJjYyIg Lz4KICAgIDxBY3Rpb24gbmFtZT0ic2hvd19zdWJqZWN0IiAvPgogICA8L01lbnU+CiAgIDxNZW51 IG5hbWU9ImF0dGFjaCIgPgpkaWZmIC11IC1YIC9ob21lL3BoaWxpcHBlL2Jpbi9kaWZmLmV4IGN2 cy1rbWFpbC9rbWNvbXBvc2V3aW4uY3BwIGZjYy1rbWFpbC9rbWNvbXBvc2V3aW4uY3BwCi0tLSBj dnMta21haWwva21jb21wb3Nld2luLmNwcAlUdWUgSmFuIDMwIDEwOjI3OjQ3IDIwMDEKKysrIGZj Yy1rbWFpbC9rbWNvbXBvc2V3aW4uY3BwCVR1ZSBKYW4gMzAgMTA6MzI6NTEgMjAwMQpAQCAtMTMs NiArMTMsNyBAQAogCiAjaW5jbHVkZSAia21jb21wb3Nld2luLmgiCiAjaW5jbHVkZSAia21tZXNz YWdlLmgiCisjaW5jbHVkZSAia21mb2xkZXJtZ3IuaCIKICNpbmNsdWRlICJrbW1zZ2Jhc2UuaCIK ICNpbmNsdWRlICJrbW1zZ3BhcnQuaCIKICNpbmNsdWRlICJrbXNlbmRlci5oIgpAQCAtMTA2LDcg KzEwNyw3IEBACiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBLTUNvbXBvc2VXaW46OktNQ29tcG9z ZVdpbihLTU1lc3NhZ2UgKmFNc2csIFFTdHJpbmcgaWQgKQogICA6IEtNVG9wTGV2ZWxXaWRnZXQg KCksCi0gIG1NYWluV2lkZ2V0KHRoaXMpLAorICBtTWFpbldpZGdldCh0aGlzKSwgbUZvbGRlcmNj Q2J4KCZtTWFpbldpZGdldCksCiAgIG1JZGVudGl0eSgmbU1haW5XaWRnZXQpLCBtVHJhbnNwb3J0 KHRydWUsICZtTWFpbldpZGdldCksCiAgIG1FZHRGcm9tKHRoaXMsJm1NYWluV2lkZ2V0KSwgbUVk dFJlcGx5VG8odGhpcywmbU1haW5XaWRnZXQpLAogICBtRWR0VG8odGhpcywmbU1haW5XaWRnZXQp LCAgbUVkdENjKHRoaXMsJm1NYWluV2lkZ2V0KSwKQEAgLTExNCw2ICsxMTUsNyBAQAogICBtTGJs SWRlbnRpdHkoJm1NYWluV2lkZ2V0KSwgbUxibFRyYW5zcG9ydCgmbU1haW5XaWRnZXQpLAogICBt TGJsRnJvbSgmbU1haW5XaWRnZXQpLCBtTGJsUmVwbHlUbygmbU1haW5XaWRnZXQpLCBtTGJsVG8o Jm1NYWluV2lkZ2V0KSwKICAgbUxibENjKCZtTWFpbldpZGdldCksIG1MYmxCY2MoJm1NYWluV2lk Z2V0KSwgbUxibFN1YmplY3QoJm1NYWluV2lkZ2V0KSwKKyAgbUxibEZvbGRlcmNjKCZtTWFpbldp ZGdldCksCiAgIG1CdG5JZGVudGl0eShpMThuKCJTdGlja3kiKSwmbU1haW5XaWRnZXQpLAogICBt QnRuVHJhbnNwb3J0KGkxOG4oIlN0aWNreSIpLCZtTWFpbldpZGdldCksCiAgIG1CdG5UbygiLi4u IiwmbU1haW5XaWRnZXQpLCBtQnRuQ2MoIi4uLiIsJm1NYWluV2lkZ2V0KSwKQEAgLTE1MCw2ICsx NTIsMjEgQEAKICAgbUJ0bkZyb20uc2V0Rm9jdXNQb2xpY3koUVdpZGdldDo6Tm9Gb2N1cyk7CiAg IG1CdG5SZXBseVRvLnNldEZvY3VzUG9saWN5KFFXaWRnZXQ6Ok5vRm9jdXMpOwogCisgIC8vIGZp bGwgZm9sZGVyY2MgY29udGVudC4KKyAgUVN0cmluZ0xpc3Qgc3RyRm9sZGVyTGlzdDsKKyAga2Vy bmVsLT5mb2xkZXJNZ3IoKS0+Y3JlYXRlSTE4bkZvbGRlckxpc3QoICZzdHJGb2xkZXJMaXN0LCAm bUZvbGRlckxpc3QgKTsKKyAgbUZvbGRlcmNjQ2J4Lmluc2VydFN0cmluZ0xpc3QoIHN0ckZvbGRl ckxpc3QgKTsKKworICAvLyBmaW5kIHNlbnQtbWFpbCBmb2xkZXIgaWQKKwlRVmFsdWVMaXN0SXRl cmF0b3I8IFFHdWFyZGVkUHRyPEtNRm9sZGVyPiA+IGl0OworICBpbnQgaWR4OworICBmb3IoIGlk eD0wLCBpdCA9IG1Gb2xkZXJMaXN0LmJlZ2luKCk7IGl0ICE9IG1Gb2xkZXJMaXN0LmVuZCgpOyAr K2l0LCArK2lkeCApIHsKKyAgICBpZiAoKCppdCktPmlkU3RyaW5nKCkgPT0ga2VybmVsLT5zZW50 Rm9sZGVyKCktPmlkU3RyaW5nKCkpIHsKKyAgICAgIG1Gb2xkZXJjY0NieC5zZXRDdXJyZW50SXRl bShpZHgpOworICAgICAgYnJlYWs7CisJICB9CisgIH0KKwogICBtQXRtTGlzdEJveCA9IG5ldyBR TGlzdFZpZXcoJm1NYWluV2lkZ2V0LCAibUF0bUxpc3RCb3giKTsKICAgbUF0bUxpc3RCb3gtPnNl dEZvY3VzUG9saWN5KFFXaWRnZXQ6Ok5vRm9jdXMpOwogICBtQXRtTGlzdEJveC0+YWRkQ29sdW1u KGkxOG4oIk5hbWUiKSwgMjAwKTsKQEAgLTQ4Niw2ICs1MDMsOCBAQAogICAgIGlkID0gSERSX0ND OwogICBlbHNlICBpZiAoYWN0ID09IGJjY0FjdGlvbikKICAgICBpZCA9IEhEUl9CQ0M7CisgIGVs c2UgIGlmIChhY3QgPT0gZm9sZGVyY2NBY3Rpb24pCisgICAgaWQgPSBIRFJfRk9MREVSQ0M7CiAg IGVsc2UgaWYgKGFjdCA9PSBzdWJqZWN0QWN0aW9uKQogICAgIGlkID0gSERSX1NVQkpFQ1Q7CiAj aWZkZWYgS1JOCkBAIC01NjksNiArNTg4LDkgQEAKICAgaWYgKCFmcm9tU2xvdCkgYmNjQWN0aW9u LT5zZXRDaGVja2VkKGFicyhtU2hvd0hlYWRlcnMpJkhEUl9CQ0MpOwogICByZXRoaW5rSGVhZGVy TGluZShzaG93SGVhZGVycyxIRFJfQkNDLCByb3csIGkxOG4oIiZCY2M6IiksCiAJCSAgICAmbUxi bEJjYywgJm1FZHRCY2MsICZtQnRuQmNjKTsKKyAgaWYgKCFmcm9tU2xvdCkgZm9sZGVyY2NBY3Rp b24tPnNldENoZWNrZWQoYWJzKG1TaG93SGVhZGVycykmSERSX0ZPTERFUkNDKTsKKyAgcmV0aGlu a0hlYWRlckxpbmUoc2hvd0hlYWRlcnMsSERSX0ZPTERFUkNDLCByb3csIGkxOG4oIiZGb2xkZXIg Y29weToiKSwKKwkJICAgICZtTGJsRm9sZGVyY2MsICZtRm9sZGVyY2NDYnggKTsKICAgaWYgKCFm cm9tU2xvdCkgc3ViamVjdEFjdGlvbi0+c2V0Q2hlY2tlZChhYnMobVNob3dIZWFkZXJzKSZIRFJf U1VCSkVDVCk7CiAgIHJldGhpbmtIZWFkZXJMaW5lKHNob3dIZWFkZXJzLEhEUl9TVUJKRUNULCBy b3csIGkxOG4oIlMmdWJqZWN0OiIpLAogCQkgICAgJm1MYmxTdWJqZWN0LCAmbUVkdFN1YmplY3Qp OwpAQCAtNjAwLDYgKzYyMiw3IEBACiAgIGNjQWN0aW9uLT5zZXRFbmFibGVkKCFhbGxGaWVsZHNB Y3Rpb24tPmlzQ2hlY2tlZCgpKTsKICAgYmNjQWN0aW9uLT5zZXRFbmFibGVkKCFhbGxGaWVsZHNB Y3Rpb24tPmlzQ2hlY2tlZCgpKTsKICAgc3ViamVjdEFjdGlvbi0+c2V0RW5hYmxlZCghYWxsRmll bGRzQWN0aW9uLT5pc0NoZWNrZWQoKSk7CisgIGZvbGRlcmNjQWN0aW9uLT5zZXRFbmFibGVkKCFh bGxGaWVsZHNBY3Rpb24tPmlzQ2hlY2tlZCgpKTsKICNpZmRlZiBLUk4KICAgbmV3c2dyb3Vwc0Fj dGlvbi0+c2V0RW5hYmxlZCghYWxsRmllbGRzQWN0aW9uLT5pc0NoZWNrZWQoKSk7CiAgIGZvbGxv d3VwVG9BY3Rpb24tPnNldEVuYWJsZWQoIWFsbEZpZWxkc0FjdGlvbi0+aXNDaGVja2VkKCkpOwpA QCAtNjY2LDE2ICs2ODksMTkgQEAKICAgICBhQ2J4LT5zZXRNYXhpbXVtU2l6ZSgxMDAwLCBhTGJs LT5oZWlnaHQoKSsyKTsKIAogICAgIG1HcmlkLT5hZGRXaWRnZXQoYUNieCwgYVJvdywgMSk7Ci0g ICAgbUdyaWQtPmFkZFdpZGdldChhQ2hrLCBhUm93LCAyKTsKLSAgICBhQ2hrLT5zZXRGaXhlZFNp emUoYUNoay0+c2l6ZUhpbnQoKS53aWR0aCgpLCBhTGJsLT5oZWlnaHQoKSk7Ci0gICAgYUNoay0+ c2hvdygpOworICAgIGlmIChhQ2hrKSB7CisgICAgICBtR3JpZC0+YWRkV2lkZ2V0KGFDaGssIGFS b3csIDIpOworICAgICAgYUNoay0+c2V0Rml4ZWRTaXplKGFDaGstPnNpemVIaW50KCkud2lkdGgo KSwgYUxibC0+aGVpZ2h0KCkpOworICAgICAgYUNoay0+c2hvdygpOworICAgIH0KKwogICAgIGFS b3crKzsKICAgfQogICBlbHNlCiAgIHsKICAgICBhTGJsLT5oaWRlKCk7Ci0gICAgYUNieC0+aGlk ZSgpOwotICAgIGFDaGstPmhpZGUoKTsKKwlhQ2J4LT5oaWRlKCk7CisgICAgaWYgKGFDaGspIGFD aGstPmhpZGUoKTsKICAgfQogfQogCkBAIC03OTIsNiArODE4LDkgQEAKICAgYmNjQWN0aW9uID0g bmV3IEtUb2dnbGVBY3Rpb24gKGkxOG4oIiZCY2MiKSwgMCwgdGhpcywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNMT1Qoc2xvdFZpZXcoKSksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhY3Rpb25Db2xsZWN0aW9uKCksICJzaG93X2JjYyIpOworICBmb2xkZXJj Y0FjdGlvbiA9IG5ldyBLVG9nZ2xlQWN0aW9uIChpMThuKCImRm9sZGVyIGNvcHkiKSwgMCwgdGhp cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNMT1Qoc2xvdFZpZXcoKSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db2xsZWN0aW9uKCksICJzaG93 X2ZvbGRlcmNjIik7CiAgIHN1YmplY3RBY3Rpb24gPSBuZXcgS1RvZ2dsZUFjdGlvbiAoaTE4bigi JlN1YmplY3QiKSwgMCwgdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTTE9UKHNsb3RWaWV3KCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjdGlvbkNvbGxlY3Rpb24oKSwgInNob3dfc3ViamVjdCIpOwpAQCAtOTY4LDYgKzk5NywyNSBA QAogICBtRWR0Rm9sbG93dXBUby5zZXRUZXh0KG1Nc2ctPmZvbGxvd3VwKCkpOwogI2VuZGlmCiAK KyAgaW50IGlkeD0wLCBmY2NJZHg9LTEsIHNlbnRJZHg9LTE7CisgIFFWYWx1ZUxpc3RJdGVyYXRv cjwgUUd1YXJkZWRQdHI8S01Gb2xkZXI+ID4gaXQ7CisgIGZvciggaXQgPSBtRm9sZGVyTGlzdC5i ZWdpbigpOyBpdCAhPSBtRm9sZGVyTGlzdC5lbmQoKTsgKytpdCApIHsKKyAgICBpZiAoKCppdCkt PmlkU3RyaW5nKCkgPT0gbU1zZy0+Zm9sZGVyY2NJZCgpKSB7CisgICAgICBmY2NJZHggPSBpZHg7 CisgICAgfQorICAgICAgCisgICAgaWYgKCgqaXQpLT5pZFN0cmluZygpID09IGtlcm5lbC0+c2Vu dEZvbGRlcigpLT5pZFN0cmluZygpKSB7CisgICAgICBzZW50SWR4ID0gaWR4OworICAgIH0KKyAg ICBpZHgrKzsKKyAgfQorICAgICAgICAKKyAgaWYgKGZjY0lkeCA9PSAtMSkgeworICAgZmNjSWR4 ID0gc2VudElkeDsKKyAgfQorICAvL2tkRGVidWcoKSA8PCAiRmNjIGlkeCA6ICIgPDwgZmNjSWR4 IDw8IGVuZGw7CisgIG1Gb2xkZXJjY0NieC5zZXRDdXJyZW50SXRlbSggZmNjSWR4ICk7CisKICAg aWYgKChtQnRuSWRlbnRpdHkuaXNDaGVja2VkKCkpICYmICghbUlkLmlzRW1wdHkoKSkpIHsKICAg ICBLTUlkZW50aXR5IGlkZW50KCBtSWQgKTsKICAgICBpZGVudC5yZWFkQ29uZmlnKCk7CkBAIC0x MDU3LDYgKzExMDUsMTIgQEAKIC8vICAgICAgbU1zZy0+c2V0Q2hhcnNldChLR2xvYmFsOjpjaGFy c2V0cygpLT5uYW1lKG1Cb2R5Rm9udC5jaGFyU2V0KCkpKTsKIH0KIAorY29uc3QgUVN0cmluZyBL TUNvbXBvc2VXaW46OmZvbGRlcmNjSWQodm9pZCkgY29uc3QKK3sKKyAgIGludCBpZHggPSBtRm9s ZGVyY2NDYnguY3VycmVudEl0ZW0oKTsKKyAgIHJldHVybiAgKCoobUZvbGRlckxpc3QuYXQoIGlk eCApKSktPmlkU3RyaW5nKCk7Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGJvb2wgS01D b21wb3NlV2luOjphcHBseUNoYW5nZXModm9pZCkKIHsKQEAgLTEwNzYsNiArMTEzMCw3IEBACiAg IG1Nc2ctPnNldFN1YmplY3Qoc3ViamVjdCgpKTsKICAgbU1zZy0+c2V0UmVwbHlUbyhyZXBseVRv KCkpOwogICBtTXNnLT5zZXRCY2MoYmNjKCkpOworICBtTXNnLT5zZXRGb2xkZXJjY0lkKGZvbGRl cmNjSWQoKSk7CiAjaWZkZWYgS1JOCiAgIG1Nc2ctPnNldEZvbGxvd3VwKGZvbGxvd3VwVG8oKSk7 CiAgIG1Nc2ctPnNldEdyb3VwcyhuZXdzZ3JvdXBzKCkpOwpkaWZmIC11IC1YIC9ob21lL3BoaWxp cHBlL2Jpbi9kaWZmLmV4IGN2cy1rbWFpbC9rbWNvbXBvc2V3aW4uaCBmY2Mta21haWwva21jb21w b3Nld2luLmgKLS0tIGN2cy1rbWFpbC9rbWNvbXBvc2V3aW4uaAlGcmkgSmFuIDI2IDIwOjAzOjA5 IDIwMDEKKysrIGZjYy1rbWFpbC9rbWNvbXBvc2V3aW4uaAlUdWUgSmFuIDMwIDEwOjM1OjAyIDIw MDEKQEAgLTMwNiw3ICszMDYsNyBAQAogCQkJCSBRTGluZUVkaXQqIGVkdCwgUVB1c2hCdXR0b24q IGJ0bj1OVUxMKTsKICAgdm9pZCByZXRoaW5rSGVhZGVyTGluZShpbnQgdmFsdWUsIGludCBtYXNr LCBpbnQmIHJvdywKIAkJCQkgY29uc3QgUVN0cmluZyBsYWJlbFN0ciwgUUxhYmVsKiBsYmwsCi0J CQkJIFFDb21ib0JveCogY2J4LCBRQ2hlY2tCb3ggKmNoayk7CisJCQkJIFFDb21ib0JveCogY2J4 LCBRQ2hlY2tCb3ggKmNoaz1OVUxMKTsKIAogICAvKiogSW5pdGlhbGl6YXRpb24gbWV0aG9kcyAq LwogICB2b2lkIHNldHVwQWN0aW9ucygpOwpAQCAtMzE5LDYgKzMxOSw3IEBACiAgICBjb25zdCBR U3RyaW5nIHRvKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1FZHRUby50ZXh0KCk7IH0KICAgIGNvbnN0 IFFTdHJpbmcgY2Modm9pZCkgY29uc3QgeyByZXR1cm4gbUVkdENjLnRleHQoKTsgfQogICAgY29u c3QgUVN0cmluZyBiY2Modm9pZCkgY29uc3QgeyByZXR1cm4gbUVkdEJjYy50ZXh0KCk7IH0KKyAg IGNvbnN0IFFTdHJpbmcgZm9sZGVyY2NJZCh2b2lkKSBjb25zdDsKICAgIGNvbnN0IFFTdHJpbmcg ZnJvbSh2b2lkKSBjb25zdCB7IHJldHVybiBtRWR0RnJvbS50ZXh0KCk7IH0KICAgIGNvbnN0IFFT dHJpbmcgcmVwbHlUbyh2b2lkKSBjb25zdCB7IHJldHVybiBtRWR0UmVwbHlUby50ZXh0KCk7IH0K ICNpZmRlZiBLUk4KQEAgLTM2NCwxNCArMzY1LDE2IEBACiAKIHByb3RlY3RlZDoKICAgUVdpZGdl dCAgIG1NYWluV2lkZ2V0OwotICBRQ29tYm9Cb3ggbUlkZW50aXR5LCBtVHJhbnNwb3J0OworICBR Q29tYm9Cb3ggbUZvbGRlcmNjQ2J4LCBtSWRlbnRpdHksIG1UcmFuc3BvcnQ7CiAgIEtNTGluZUVk aXQgbUVkdEZyb20sIG1FZHRSZXBseVRvLCBtRWR0VG8sIG1FZHRDYywgbUVkdEJjYywgbUVkdFN1 YmplY3Q7CiAgIFFMYWJlbCAgICBtTGJsSWRlbnRpdHksIG1MYmxUcmFuc3BvcnQ7CiAgIFFMYWJl bCAgICBtTGJsRnJvbSwgbUxibFJlcGx5VG8sIG1MYmxUbywgbUxibENjLCBtTGJsQmNjLCBtTGJs U3ViamVjdDsKKyAgUUxhYmVsCW1MYmxGb2xkZXJjYzsKICAgUUNoZWNrQm94IG1CdG5JZGVudGl0 eSwgbUJ0blRyYW5zcG9ydDsKICAgUVB1c2hCdXR0b24gbUJ0blRvLCBtQnRuQ2MsIG1CdG5CY2Ms IG1CdG5Gcm9tLCBtQnRuUmVwbHlUbzsKICAgYm9vbCBtU3BlbGxDaGVja0luUHJvZ3Jlc3M7CiAg IGJvb2wgbURvbmU7CisKICNpZmRlZiBLUk4KICAgS01MaW5lRWRpdCBtRWR0TmV3c2dyb3Vwcywg bUVkdEZvbGxvd3VwVG87CiAgIFFMYWJlbCAgICAgbUxibE5ld3Nncm91cHMsIG1MYmxGb2xsb3d1 cFRvOwpAQCAtNDA4LDEwICs0MTEsMTMgQEAKICAgUVN0cmluZyBtSWQsIG1PbGRTaWdUZXh0Owog ICBRU3RyaW5nTGlzdCBtVHJhbnNwb3J0SGlzdG9yeTsKIAorICAvLyBIb2xkIGEgcHRyIHRvIGV2 ZXJ5IGZvbGRlciBzb3J0ZWQgZXhhY3RseSBsaWtlIHRoZSBmY2MgY29tYm8gYm94CisgIFFWYWx1 ZUxpc3Q8UUd1YXJkZWRQdHI8S01Gb2xkZXI+ID4gbUZvbGRlckxpc3Q7CisKICAgS1RvZ2dsZUFj dGlvbiAqc2lnbkFjdGlvbiwgKmVuY3J5cHRBY3Rpb24sICpjb25maXJtRGVsaXZlcnlBY3Rpb247 CiAgIEtUb2dnbGVBY3Rpb24gKmNvbmZpcm1SZWFkQWN0aW9uLCAqdXJnZW50QWN0aW9uLCAqYWxs RmllbGRzQWN0aW9uLCAqZnJvbUFjdGlvbjsKICAgS1RvZ2dsZUFjdGlvbiAqcmVwbHlUb0FjdGlv biwgKnRvQWN0aW9uLCAqY2NBY3Rpb24sICpiY2NBY3Rpb24sICpzdWJqZWN0QWN0aW9uOwotICBL VG9nZ2xlQWN0aW9uICppZGVudGl0eUFjdGlvbiwgKnRyYW5zcG9ydEFjdGlvbjsKKyAgS1RvZ2ds ZUFjdGlvbiAqaWRlbnRpdHlBY3Rpb24sICp0cmFuc3BvcnRBY3Rpb24sICpmb2xkZXJjY0FjdGlv bjsKICAgS1RvZ2dsZUFjdGlvbiAqdG9vbGJhckFjdGlvbiwgKnN0YXR1c2JhckFjdGlvbjsKICAg S1RvZ2dsZUFjdGlvbiAqd29yZFdyYXBBY3Rpb247CiAKZGlmZiAtdSAtWCAvaG9tZS9waGlsaXBw ZS9iaW4vZGlmZi5leCBjdnMta21haWwva21nbG9iYWwuaCBmY2Mta21haWwva21nbG9iYWwuaAot LS0gY3ZzLWttYWlsL2ttZ2xvYmFsLmgJTW9uIE5vdiAgNiAxODoyMTozMSAyMDAwCisrKyBmY2Mt a21haWwva21nbG9iYWwuaAlUaHUgSmFuIDExIDE1OjI0OjQ1IDIwMDEKQEAgLTM2LDYgKzM2LDcg QEAKICNkZWZpbmUgSERSX0ZPTExPV1VQX1RPIDB4ODAKICNkZWZpbmUgSERSX0lERU5USVRZIDB4 MTAwCiAjZGVmaW5lIEhEUl9UUkFOU1BPUlQgMHgyMDAKKyNkZWZpbmUgSERSX0ZPTERFUkNDIDB4 NDAwCiAjZGVmaW5lIEhEUl9BTEwgICAgICAweDNmZgogCiAjaWZkZWYgS1JOCmRpZmYgLXUgLVgg L2hvbWUvcGhpbGlwcGUvYmluL2RpZmYuZXggY3ZzLWttYWlsL2ttbWVzc2FnZS5jcHAgZmNjLWtt YWlsL2ttbWVzc2FnZS5jcHAKLS0tIGN2cy1rbWFpbC9rbW1lc3NhZ2UuY3BwCUZyaSBKYW4gMjYg MjA6MDM6MjAgMjAwMQorKysgZmNjLWttYWlsL2ttbWVzc2FnZS5jcHAJVHVlIEphbiAzMCAxMTow NDowMiAyMDAxCkBAIC02NCw2ICs2NCw3IEBACiAgICAgbU5lZWRzQXNzZW1ibHkgPSBUUlVFOwog ICAgIG1Nc2cgPSBhTXNnOwogICAgIG1Db2RlYyA9IE5VTEw7CisJbUZvbGRlcmNjSWQgPSBrZXJu ZWwtPnNlbnRGb2xkZXIoKS0+aWRTdHJpbmcoKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpAQCAtMTIxOSw2ICsxMjIwLDE5IEBACiAgIHNldEhlYWRlckZpZWxkKCJDYyIsYVN0cik7CiB9 CiAKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY29uc3QgUVN0cmluZyBLTU1lc3NhZ2U6OmZv bGRlcmNjSWQodm9pZCkgY29uc3QKK3sKKyAgcmV0dXJuIG1Gb2xkZXJjY0lkOworfQorCisKKy8v LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgS01NZXNzYWdlOjpzZXRGb2xkZXJjY0lkKGNvbnN0 IFFTdHJpbmcmIGFTdHIpCit7CisgIG1Gb2xkZXJjY0lkID0gYVN0cjsKK30KIAogLy8tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogY29uc3QgUVN0cmluZyBLTU1lc3NhZ2U6OmJjYyh2b2lkKSBjb25zdApk aWZmIC11IC1YIC9ob21lL3BoaWxpcHBlL2Jpbi9kaWZmLmV4IGN2cy1rbWFpbC9rbW1lc3NhZ2Uu aCBmY2Mta21haWwva21tZXNzYWdlLmgKLS0tIGN2cy1rbWFpbC9rbW1lc3NhZ2UuaAlUaHUgSmFu ICA0IDE5OjI5OjIxIDIwMDEKKysrIGZjYy1rbWFpbC9rbW1lc3NhZ2UuaAlNb24gSmFuIDE1IDE2 OjA0OjIzIDIwMDEKQEAgLTEzNCw2ICsxMzQsMTAgQEAKICAgdmlydHVhbCBjb25zdCBRU3RyaW5n IGJjYyh2b2lkKSBjb25zdDsKICAgdmlydHVhbCB2b2lkIHNldEJjYyhjb25zdCBRU3RyaW5nJiBh U3RyKTsKIAorICAvKiogR2V0IG9yIHNldCB0aGUgJ0ZvbGRlciBDb3B5JyBoZWFkZXIgZmllbGQg Ki8KKyAgdmlydHVhbCBjb25zdCBRU3RyaW5nIGZvbGRlcmNjSWQodm9pZCkgY29uc3Q7CisgIHZp cnR1YWwgdm9pZCBzZXRGb2xkZXJjY0lkKGNvbnN0IFFTdHJpbmcmIGFTdHIpOworCiAgIC8qKiBH ZXQgb3Igc2V0IHRoZSAnRnJvbScgaGVhZGVyIGZpZWxkICovCiAgIHZpcnR1YWwgY29uc3QgUVN0 cmluZyBmcm9tKHZvaWQpIGNvbnN0OwogICB2aXJ0dWFsIHZvaWQgc2V0RnJvbShjb25zdCBRU3Ry aW5nJiBhU3RyKTsKQEAgLTMyNyw2ICszMzEsNyBAQAogICBzdGF0aWMgaW50IHNIZHJTdHlsZTsK ICAgc3RhdGljIFFTdHJpbmcgc0ZvcndhcmRTdHI7CiAgIFFUZXh0Q29kZWMqIG1Db2RlYzsKKyAg UVN0cmluZyBtRm9sZGVyY2NJZDsKIH07CiAKIHR5cGVkZWYgS01NZXNzYWdlKiBLTU1lc3NhZ2VQ dHI7CmRpZmYgLXUgLVggL2hvbWUvcGhpbGlwcGUvYmluL2RpZmYuZXggY3ZzLWttYWlsL2ttc2Vu ZGVyLmNwcCBmY2Mta21haWwva21zZW5kZXIuY3BwCi0tLSBjdnMta21haWwva21zZW5kZXIuY3Bw CVRodSBKYW4gIDQgMTk6MzI6NDYgMjAwMQorKysgZmNjLWttYWlsL2ttc2VuZGVyLmNwcAlNb24g SmFuIDE1IDE2OjA5OjE2IDIwMDEKQEAgLTksNiArOSw3IEBACiAKICNpbmNsdWRlICJrbXNlbmRl ci5oIgogI2luY2x1ZGUgImttbWVzc2FnZS5oIgorI2luY2x1ZGUgImttZm9sZGVybWdyLmgiCiAj aW5jbHVkZSAia21pZGVudGl0eS5oIgogI2luY2x1ZGUgImttaW9zdGF0dXNkbGcuaCIKICNpbmNs dWRlICJrYnVzeXB0ci5oIgpAQCAtMjM3LDcgKzIzOCw3IEBACiAgIGtlcm5lbC0+b3V0Ym94Rm9s ZGVyKCktPm9wZW4oKTsKICAgbUN1cnJlbnRNc2cgPSBOVUxMOwogCi0gIGtlcm5lbC0+c2VudEZv bGRlcigpLT5vcGVuKCk7CisgIC8va2VybmVsLT5zZW50Rm9sZGVyKCktPm9wZW4oKTsKIAogCiAg IC8vIGNyZWF0ZSBhIHNlbmRlcgpAQCAtMjY4LDcgKzI2OSwyMCBAQAogICBpZiAobUN1cnJlbnRN c2cpCiAgICAgewogICAgICAgbUN1cnJlbnRNc2ctPnNldFN0YXR1cyhLTU1zZ1N0YXR1c1NlbnQp OwotICAgICAga2VybmVsLT5zZW50Rm9sZGVyKCktPm1vdmVNc2cobUN1cnJlbnRNc2cpOworCisJ ICAvLyBjb2RlIHRvIGhhbmRsZSB0aGUgY29weSBmb2xkZXIKKyAgICAgIEtNRm9sZGVyICogZm9s ZGVyQ29weTsKKyAgICAgIGZvbGRlckNvcHkgPSBrZXJuZWwtPmZvbGRlck1ncigpLT5maW5kSWRT dHJpbmcoIG1DdXJyZW50TXNnLT5mb2xkZXJjY0lkKCkgKTsKKyAgICAgIGlmICghIGZvbGRlckNv cHkpIHsKKyAgICAgICAga2REZWJ1ZygpIDw8ICJDb3VsZCBub3QgZmluZCBjb3B5IGZvbGRlciAn IiA8PCBtQ3VycmVudE1zZy0+Zm9sZGVyY2NJZCgpIDw8ICInIiA8PCBlbmRsOworICAgICAgICBm b2xkZXJDb3B5ID0ga2VybmVsLT5zZW50Rm9sZGVyKCk7CisgICAgICB9CisKKwkgIC8vIFRoaXMg aXMgcHJvYmFibHkgc2xvd2luZyBkb3duIHRoZSBwcm9jZXNzIGEgbG90CisJICBmb2xkZXJDb3B5 LT5vcGVuKCk7CisgICAgICBmb2xkZXJDb3B5LT5tb3ZlTXNnKCBtQ3VycmVudE1zZyApOworCSAg Zm9sZGVyQ29weS0+Y2xvc2UoKTsKKwogICAgICAgbUN1cnJlbnRNc2cgPSBOVUxMOwogICAgIH0K IApAQCAtMzk0LDcgKzQwOSw2IEBACiAgIGlmIChtU2VuZFByb2NTdGFydGVkKSBtU2VuZFByb2Mt PmZpbmlzaCgpOwogICBtU2VuZFByb2NTdGFydGVkID0gRkFMU0U7CiAgIG1TZW5kSW5Qcm9ncmVz cyA9IEZBTFNFOwotICBrZXJuZWwtPnNlbnRGb2xkZXIoKS0+Y2xvc2UoKTsKICAga2VybmVsLT5v dXRib3hGb2xkZXIoKS0+Y2xvc2UoKTsKICAgaWYgKGtlcm5lbC0+b3V0Ym94Rm9sZGVyKCktPmNv dW50KCk8MCkKICAgICBrZXJuZWwtPm91dGJveEZvbGRlcigpLT5leHB1bmdlKCk7Cg== --------------Boundary-00=_2KHZO7FAYFAD4H9KIBHU Content-Type: text/plain; charset="iso-8859-1"; name="trash-cleaning-patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="trash-cleaning-patch.diff" SW5kZXg6IGNvbmZpZ3VyZWRpYWxvZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9rZGVu ZXR3b3JrL2ttYWlsL2NvbmZpZ3VyZWRpYWxvZy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu NzQKZGlmZiAtdSAtMyAtcCAtcjEuNzQgY29uZmlndXJlZGlhbG9nLmNwcAotLS0gY29uZmlndXJl ZGlhbG9nLmNwcAkyMDAxLzAxLzI1IDIxOjQ2OjI4CTEuNzQKKysrIGNvbmZpZ3VyZWRpYWxvZy5j cHAJMjAwMS8wMS8zMCAxNjoxMTo1NgpAQCAtMTI1OSwxNCArMTI1OSw1MiBAQCB2b2lkIENvbmZp Z3VyZURpYWxvZzo6bWFrZU1pc2NQYWdlKCB2b2lkCiAgIFFWQm94TGF5b3V0ICp0b3BMZXZlbCA9 IG5ldyBRVkJveExheW91dCggcGFnZSwgMCwgc3BhY2luZ0hpbnQoKSApOwogICBtTWlzYy5wYWdl SW5kZXggPSBwYWdlSW5kZXgocGFnZSk7CiAKLSAgLy8tLS0tLS0tLS0tIGdyb3VwOiBmb2xkZXJz Ci0gIFFHcm91cEJveCAqZ3JvdXAgPSBuZXcgUUdyb3VwQm94KCBpMThuKCImRm9sZGVycyIpLCBw YWdlICk7CisgIC8vLS0tLS0tLS0tLSBncm91cDogdHJhc2ggZm9sZGVyCisgIFFHcm91cEJveCAq Z3JvdXAgPSBuZXcgUUdyb3VwQm94KCBpMThuKCImVHJhc2ggZm9sZGVyIiksIHBhZ2UgKTsKICAg dG9wTGV2ZWwtPmFkZFdpZGdldCggZ3JvdXAgKTsKICAgUVZCb3hMYXlvdXQgKnZsYXkgPSBuZXcg UVZCb3hMYXlvdXQoIGdyb3VwLCBzcGFjaW5nSGludCgpICk7CisKICAgdmxheS0+YWRkU3BhY2lu ZyggZm9udE1ldHJpY3MoKS5saW5lU3BhY2luZygpICk7CiAgIG1NaXNjLmVtcHR5VHJhc2hDaGVj ayA9CiAgICAgbmV3IFFDaGVja0JveChpMThuKCJFbXB0eSB0cmFzaCBvbiBleGl0IiksIGdyb3Vw ICk7CisgIGNvbm5lY3QoIG1NaXNjLmVtcHR5VHJhc2hDaGVjaywgU0lHTkFMKHN0YXRlQ2hhbmdl ZChpbnQpKSwgCisJCSAgdGhpcywgU0xPVChzbG90RW1wdHlUcmFzaFN0YXRlKGludCkpICk7CiAg IHZsYXktPmFkZFdpZGdldCggbU1pc2MuZW1wdHlUcmFzaENoZWNrICk7CisgIFFIQm94TGF5b3V0 ICpzdGxheSA9IG5ldyBRSEJveExheW91dCggc3BhY2luZ0hpbnQoKSAsImhseTEiKTsKKyAgc3Rs YXktPnNldE1hcmdpbigwKTsKKyAgdmxheS0+YWRkTGF5b3V0KCBzdGxheSApOworICBtTWlzYy5r ZWVwU21hbGxUcmFzaENoZWNrID0KKyAgICBuZXcgUUNoZWNrQm94KGkxOG4oIktlZXAgdHJhc2gg c2l6ZSBiZWxvdyAiKSwgZ3JvdXAgKTsKKyAgc3RsYXktPmFkZFdpZGdldCggbU1pc2Mua2VlcFNt YWxsVHJhc2hDaGVjayApOworICBtTWlzYy5zbWFsbFRyYXNoU2l6ZVNwaW4gPSBuZXcgS0ludE51 bUlucHV0KCBncm91cCApOworICBtTWlzYy5zbWFsbFRyYXNoU2l6ZVNwaW4tPnNldFZhbHVlKDEp OworLy8gIG1NaXNjLnNtYWxsVHJhc2hTaXplU3Bpbi0+c2V0TWluVmFsdWUoMSk7CisgIHN0bGF5 LT5hZGRXaWRnZXQoIG1NaXNjLnNtYWxsVHJhc2hTaXplU3BpbiApOworICBzdGxheS0+YWRkV2lk Z2V0KCBuZXcgUUxhYmVsKCAiTW8iLCBncm91cCApICk7CisgIHN0bGF5LT5hZGRTdHJldGNoKCAx MDAgKTsKKworICBRSEJveExheW91dCAqcm12bGF5ID0gbmV3IFFIQm94TGF5b3V0KCBzcGFjaW5n SGludCgpLCJobHkyIiApOworICBybXZsYXktPnNldE1hcmdpbigwKTsKKyAgdmxheS0+YWRkTGF5 b3V0KCBybXZsYXkgKTsKKyAgbU1pc2MucmVtb3ZlT2xkTWFpbENoZWNrID0KKyAgICBuZXcgUUNo ZWNrQm94KGkxOG4oIkluIHRyYXNoLCBvbiBleGl0LCByZW1vdmUgbWVzc2FnZXMgb2xkZXIgdGhh biIpLCBncm91cCApOworICBybXZsYXktPmFkZFdpZGdldCggbU1pc2MucmVtb3ZlT2xkTWFpbENo ZWNrICk7CisgIG1NaXNjLm9sZE1haWxBZ2VTcGluID0gbmV3IEtJbnROdW1JbnB1dCggZ3JvdXAg KTsKKyAgbU1pc2Mub2xkTWFpbEFnZVNwaW4tPnNldFZhbHVlKDEpOworLy8gIG1NaXNjLm9sZE1h aWxBZ2VTcGluLT5zZXRNaW5WYWx1ZSgxKTsKKyAgcm12bGF5LT5hZGRXaWRnZXQoIG1NaXNjLm9s ZE1haWxBZ2VTcGluICk7CisgIG1NaXNjLnRpbWVVbml0Q29tYm8gPSBuZXcgUUNvbWJvQm94KCBn cm91cCApOworICBtTWlzYy50aW1lVW5pdENvbWJvLT5pbnNlcnRJdGVtKGkxOG4oIm1vbnRoKHMp IikpOworICBtTWlzYy50aW1lVW5pdENvbWJvLT5pbnNlcnRJdGVtKGkxOG4oIndlZWsocykiKSk7 CisgIG1NaXNjLnRpbWVVbml0Q29tYm8tPmluc2VydEl0ZW0oaTE4bigiZGF5KHMpIikpOworICBy bXZsYXktPmFkZFdpZGdldCggbU1pc2MudGltZVVuaXRDb21ibyApOworICBybXZsYXktPmFkZFN0 cmV0Y2goIDEwMCApOworCisKKworICAvLy0tLS0tLS0tLS0gZ3JvdXA6IGZvbGRlcnMKKyAgZ3Jv dXAgPSBuZXcgUUdyb3VwQm94KCBpMThuKCImRm9sZGVycyIpLCBwYWdlICk7CisgIHRvcExldmVs LT5hZGRXaWRnZXQoIGdyb3VwICk7CiAgIG1NaXNjLnNlbmRPdXRib3hDaGVjayA9CiAgICAgbmV3 IFFDaGVja0JveChpMThuKCJTZW5kIE1haWwgaW4gb3V0Ym94IEZvbGRlciBvbiBDaGVjayIpLCBn cm91cCApOwogICB2bGF5LT5hZGRXaWRnZXQoIG1NaXNjLnNlbmRPdXRib3hDaGVjayApOwpAQCAt MTY2MSw4ICsxNjk5LDIwIEBAIHZvaWQgQ29uZmlndXJlRGlhbG9nOjpzZXR1cE1pc2NQYWdlKCB2 b2kKICAgS0NvbmZpZyAmY29uZmlnID0gKmthcHAtPmNvbmZpZygpOwogICBjb25maWcuc2V0R3Jv dXAoIkdlbmVyYWwiKTsKIAotICBib29sIHN0YXRlID0gY29uZmlnLnJlYWRCb29sRW50cnkoImVt cHR5LXRyYXNoLW9uLWV4aXQiLHRydWUpOworICBib29sIHN0YXRlID0gY29uZmlnLnJlYWRCb29s RW50cnkoImVtcHR5LXRyYXNoLW9uLWV4aXQiLGZhbHNlKTsKICAgbU1pc2MuZW1wdHlUcmFzaENo ZWNrLT5zZXRDaGVja2VkKCBzdGF0ZSApOworCisgIHN0YXRlID0gY29uZmlnLnJlYWRCb29sRW50 cnkoImtlZXAtc21hbGwtdHJhc2giLCB0cnVlKTsKKyAgbU1pc2Mua2VlcFNtYWxsVHJhc2hDaGVj ay0+c2V0Q2hlY2tlZCggc3RhdGUgKTsKKyAgaW50IG51bSA9IGNvbmZpZy5yZWFkTnVtRW50cnko InNtYWxsLXRyYXNoLXNpemUiLCAxKTsKKyAgbU1pc2Muc21hbGxUcmFzaFNpemVTcGluLT5zZXRW YWx1ZSggbnVtICk7CisKKyAgc3RhdGUgPSBjb25maWcucmVhZEJvb2xFbnRyeSgicmVtb3ZlLW9s ZC1tYWlsLWZyb20tdHJhc2giLCB0cnVlKTsKKyAgbU1pc2MucmVtb3ZlT2xkTWFpbENoZWNrLT5z ZXRDaGVja2VkKCBzdGF0ZSApOworICBudW0gPSBjb25maWcucmVhZE51bUVudHJ5KCJvbGQtbWFp bC1hZ2UiLCAxKTsKKyAgbU1pc2Mub2xkTWFpbEFnZVNwaW4tPnNldFZhbHVlKCBudW0gKTsKKyAg bnVtID0gY29uZmlnLnJlYWROdW1FbnRyeSgib2xkLW1haWwtYWdlLXVuaXQiLCAxKTsKKyAgbU1p c2MudGltZVVuaXRDb21iby0+c2V0Q3VycmVudEl0ZW0oIG51bSApOwogICBzdGF0ZSA9IGNvbmZp Zy5yZWFkQm9vbEVudHJ5KCJzZW5kT25DaGVjayIsIGZhbHNlKTsKICAgbU1pc2Muc2VuZE91dGJv eENoZWNrLT5zZXRDaGVja2VkKCBzdGF0ZSApOwogICBzdGF0ZSA9IGNvbmZpZy5yZWFkQm9vbEVu dHJ5KCJzZW5kLXJlY2VpcHRzIiwgZmFsc2UgKTsKQEAgLTIwNTUsNiArMjEwNSwxOCBAQCB2b2lk IENvbmZpZ3VyZURpYWxvZzo6c2xvdERvQXBwbHkoIGJvb2wgCiAgICAgY29uZmlnLnNldEdyb3Vw KCJHZW5lcmFsIik7CiAgICAgY29uZmlnLndyaXRlRW50cnkoICJlbXB0eS10cmFzaC1vbi1leGl0 IiwKIAkJICAgICAgIG1NaXNjLmVtcHR5VHJhc2hDaGVjay0+aXNDaGVja2VkKCkgKTsKKworICAg IGNvbmZpZy53cml0ZUVudHJ5KCAia2VlcC1zbWFsbC10cmFzaCIsCisgICAgICAgICAgICAgICBt TWlzYy5rZWVwU21hbGxUcmFzaENoZWNrLT5pc0NoZWNrZWQoKSApOworCWNvbmZpZy53cml0ZUVu dHJ5KCAic21hbGwtdHJhc2gtc2l6ZSIsIAorICAgICAgICAgICAgICAgbU1pc2Muc21hbGxUcmFz aFNpemVTcGluLT52YWx1ZSgpICk7CisKKyAgICBjb25maWcud3JpdGVFbnRyeSggInJlbW92ZS1v bGQtbWFpbC1mcm9tLXRyYXNoIiwKKyAgICAgICAgICAgICAgIG1NaXNjLnJlbW92ZU9sZE1haWxD aGVjay0+aXNDaGVja2VkKCkgKTsKKwljb25maWcud3JpdGVFbnRyeSggIm9sZC1tYWlsLWFnZSIs IAorICAgICAgICAgICAgICAgbU1pc2Mub2xkTWFpbEFnZVNwaW4tPnZhbHVlKCkgKTsKKwljb25m aWcud3JpdGVFbnRyeSggIm9sZC1tYWlsLWFnZS11bml0IiwKKyAgICAgICAgICAgICAgIG1NaXNj LnRpbWVVbml0Q29tYm8tPmN1cnJlbnRJdGVtKCkgKTsKICAgICBjb25maWcud3JpdGVFbnRyeSgg InNlbmRPbkNoZWNrIiwKIAkJICAgICAgIG1NaXNjLnNlbmRPdXRib3hDaGVjay0+aXNDaGVja2Vk KCkgKTsKICAgICBjb25maWcud3JpdGVFbnRyeSggInNlbmQtcmVjZWlwdHMiLApAQCAtMzA5Miw2 ICszMTU0LDE1IEBAIHZvaWQgQ29uZmlndXJlRGlhbG9nOjpzbG90TWFpbENvbW1hbmRDaG8KICAg fQogfQogCit2b2lkIENvbmZpZ3VyZURpYWxvZzo6c2xvdEVtcHR5VHJhc2hTdGF0ZSggaW50IHN0 YXRlKQoreworICBib29sIG9uID0gKCBzdGF0ZSA9PSAwICk7IC8vIGJ1dHRvbiBub3QgY2hlY2tl ZAorICBtTWlzYy5yZW1vdmVPbGRNYWlsQ2hlY2stPnNldEVuYWJsZWQoIG9uICk7CisgIG1NaXNj Lm9sZE1haWxBZ2VTcGluLT5zZXRFbmFibGVkKCBvbiApOworICBtTWlzYy50aW1lVW5pdENvbWJv LT5zZXRFbmFibGVkKCBvbiApOworICBtTWlzYy5rZWVwU21hbGxUcmFzaENoZWNrLT5zZXRFbmFi bGVkKCBvbiApOworICBtTWlzYy5zbWFsbFRyYXNoU2l6ZVNwaW4tPnNldEVuYWJsZWQoIG9uICk7 Cit9CiAKIElkZW50aXR5RW50cnk6OklkZW50aXR5RW50cnkoIHZvaWQgKQogewpJbmRleDogY29u ZmlndXJlZGlhbG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9rZGVuZXR3b3JrL2ttYWls L2NvbmZpZ3VyZWRpYWxvZy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMwCmRpZmYgLXUgLTMg LXAgLXIxLjMwIGNvbmZpZ3VyZWRpYWxvZy5oCi0tLSBjb25maWd1cmVkaWFsb2cuaAkyMDAxLzAx LzI1IDIxOjQ2OjI4CTEuMzAKKysrIGNvbmZpZ3VyZWRpYWxvZy5oCTIwMDEvMDEvMzAgMTY6MTE6 NTYKQEAgLTI0LDYgKzI0LDcgQEAKIGNsYXNzIFFCdXR0b25Hcm91cDsKIGNsYXNzIFFDaGVja0Jv eDsKIGNsYXNzIFFDb21ib0JveDsKK2NsYXNzIEtJbnROdW1JbnB1dDsKIGNsYXNzIFFMYWJlbDsK IGNsYXNzIFFMaW5lRWRpdDsKIGNsYXNzIFFMaXN0Vmlld0l0ZW07CkBAIC0zNjEsNiArMzYyLDEx IEBAIGNsYXNzIENvbmZpZ3VyZURpYWxvZyA6IHB1YmxpYyBLRGlhbG9nQmEKICAgICB7CiAgICAg ICBpbnQgICAgICAgICBwYWdlSW5kZXg7CiAgICAgICBRQ2hlY2tCb3ggICAqZW1wdHlUcmFzaENo ZWNrOworICAgICAgUUNoZWNrQm94ICAgKmtlZXBTbWFsbFRyYXNoQ2hlY2s7CisgICAgICBLSW50 TnVtSW5wdXQgKnNtYWxsVHJhc2hTaXplU3BpbjsKKyAgICAgIFFDaGVja0JveCAgICpyZW1vdmVP bGRNYWlsQ2hlY2s7CisgICAgICBLSW50TnVtSW5wdXQgKm9sZE1haWxBZ2VTcGluOworICAgICAg UUNvbWJvQm94ICAgKnRpbWVVbml0Q29tYm87CiAgICAgICBRQ2hlY2tCb3ggICAqc2VuZE91dGJv eENoZWNrOwogICAgICAgUUNoZWNrQm94ICAgKnNlbmRSZWNlaXB0Q2hlY2s7CiAgICAgICBRQ2hl Y2tCb3ggICAqY29tcGFjdE9uRXhpdENoZWNrOwpAQCAtNDczLDYgKzQ3OSw3IEBAIGNsYXNzIENv bmZpZ3VyZURpYWxvZyA6IHB1YmxpYyBLRGlhbG9nQmEKICAgICB2b2lkIHNsb3RNYWlsQ29tbWFu ZFNlbGVjdGlvbkNoYW5nZWQoIHZvaWQgKTsKICAgICB2b2lkIHNsb3RFeHRlcm5hbEVkaXRvckNo b29zZXIoIHZvaWQgKTsKICAgICB2b2lkIHNsb3RNYWlsQ29tbWFuZENob29zZXIoIHZvaWQgKTsK KyAgICB2b2lkIHNsb3RFbXB0eVRyYXNoU3RhdGUoIGludCApOwogCiAgIHByaXZhdGU6CiAgICAg SWRlbnRpdHlXaWRnZXQgICBtSWRlbnRpdHk7CkluZGV4OiBrbWZvbGRlci5jcHAKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpSQ1MgZmlsZTogL2N2cy9rZGVuZXR3b3JrL2ttYWlsL2ttZm9sZGVyLmNwcCx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xMjcKZGlmZiAtdSAtMyAtcCAtcjEuMTI3IGttZm9sZGVyLmNwcAotLS0g a21mb2xkZXIuY3BwCTIwMDEvMDEvMTcgMTk6MjA6NTMJMS4xMjcKKysrIGttZm9sZGVyLmNwcAky MDAxLzAxLzMwIDE2OjExOjU3CkBAIC0yLDYgKzIsNyBAQAogLy8gQXV0aG9yOiBTdGVmYW4gVGFm ZXJuZXIgPHRhZmVybmVyQGFscGluLm9yLmF0PgogCiAjaW5jbHVkZSA8cWZpbGVpbmZvLmg+Cisj aW5jbHVkZSA8cXNvcnRlZGxpc3QuaD4KIAogI2luY2x1ZGUgImttZ2xvYmFsLmgiCiAjaW5jbHVk ZSAia21mb2xkZXIuaCIKQEAgLTgzNCw5ICs4MzUsMTI3IEBAIHZvaWQgS01Gb2xkZXI6OnF1aWV0 KGJvb2wgYmVRdWlldCkKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIE5lZWRlZCB0 byB1c2UgUVNvcnRlZExpc3QgdG8gc29ydCB0aGUgbWVzc2FnZXMgYnkgZGF0ZQorLyoqIENvbXBh cmUgbWVzc2FnZSdzIGRhdGUuIFRoaXMgaXMgdXNlZnVsIGZvciBtZXNzYWdlIHNvcnRpbmcgKi8K K2lubGluZSBpbnQgb3BlcmF0b3I8KCBLTU1zZ0Jhc2UgJiBtMSwgS01Nc2dCYXNlICYgbTIgKQor eworICByZXR1cm4gKG0xLmRhdGUoKSA8IG0yLmRhdGUoKSk7Cit9CisgIAorLyoqIENvbXBhcmUg bWVzc2FnZSdzIGRhdGUuIFRoaXMgaXMgdXNlZnVsIGZvciBtZXNzYWdlIHNvcnRpbmcgKi8KK2lu bGluZSBpbnQgb3BlcmF0b3I9PSggS01Nc2dCYXNlICYgbTEsIEtNTXNnQmFzZSAmIG0yICkKK3sK KyAgcmV0dXJuIChtMS5kYXRlKCkgPT0gbTIuZGF0ZSgpKTsKK30KKyAgCisvLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCitpbnQgS01Gb2xkZXI6OnJlZHVjZVNpemUoIGludCBhU2l6ZSApCit7CisgIC8v a2REZWJ1ZygpIDw8ICJSZWR1Y2luZyBmb2xkZXIgdG8gc2l6ZSBvZiAiIDw8IGFTaXplIDw8ICIg TW8iIDw8IGVuZGw7CisgIFFTb3J0ZWRMaXN0PEtNTXNnQmFzZT4gKiBzbGljZT0wTDsKKyAgUUxp c3Q8IFFTb3J0ZWRMaXN0PEtNTXNnQmFzZT4gPiBzbGljZUFycjsKKyAgS01Nc2dCYXNlKiBtYjsK KyAgdWxvbmcgZm9sZGVyU2l6ZSwgbXNnU2l6ZSwgc2xpY2VTaXplLCBmaXJzdFNsaWNlU2l6ZSwg bGFzdFNsaWNlU2l6ZSwgc2l6ZTsKKyAgaW50IHNsaWNlSW5kZXg7CisgIGludCBkZWxNc2cgPSAw OworICBpbnQgaTsKKworICBzbGljZUFyci5zZXRBdXRvRGVsZXRlKCB0cnVlICk7CisKKy8vIElz IGl0IDEwMDAgb3IgMTAyNCA/CisjZGVmaW5lIEtJTE8gCSgxMDAwKQorCisgIHNpemUgPSBLSUxP ICogS0lMTyAqIGFTaXplOyAvLyB0byBoYXZlIHNpemUgaW4gS287CisgIHNsaWNlU2l6ZSA9IEtJ TE8gKiBLSUxPIDsgLy8gc2xpY2Ugb2YgMSBNbworICBsYXN0U2xpY2VTaXplID0gMTAgKiBzbGlj ZVNpemU7IC8vIGxhc3Qgc2xpY2UgaXMgZm9yIGl0ZW0gPiAxMCBNbworICBmaXJzdFNsaWNlU2l6 ZSA9IHNsaWNlU2l6ZSAvIDI7IC8vIGZpcnN0IHNsaWNlIGlzIGZvciA8IDUwMCBLbworICBmb2xk ZXJTaXplID0gMDsKKworICBmb3IoaT0wOyBpPDEyOyBpKyspIHsKKyAgICBzbGljZUFyci5hcHBl bmQoIG5ldyBRU29ydGVkTGlzdDxLTU1zZ0Jhc2U+ICk7CisgICAgc2xpY2VBcnIuYXQoaSktPnNl dEF1dG9EZWxldGUoZmFsc2UpOworICB9CisKKyAgZm9yIChpPWNvdW50KCktMTsgaT49MDsgaS0t KSB7CisgICAgbWIgPSBnZXRNc2dCYXNlKGkpOworICAgIGFzc2VydChtYik7CisgICAgbXNnU2l6 ZSA9IG1iLT5tc2dTaXplKCk7CisgICAgZm9sZGVyU2l6ZSArPSBtc2dTaXplOworCisgICAgaWYg KG1zZ1NpemUgPCBmaXJzdFNsaWNlU2l6ZSkgeworICAgICAgc2xpY2VJbmRleCA9IDA7CisgICAg fSBlbHNlIGlmIChtc2dTaXplID49IGxhc3RTbGljZVNpemUpIHsKKyAgICAgICAgc2xpY2VJbmRl eCA9IDExOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsaWNlSW5kZXggPSAxICsgKGludCkgKG1z Z1NpemUgLyBzbGljZVNpemUpOyAvLyAgMSA8PSBuIDwgMTAKKyAgICB9CisKKyAgICBzbGljZUFy ci5hdChzbGljZUluZGV4KS0+YXBwZW5kKCBtYiApOworICB9CisKKyAgLy9rZERlYnVnKCkgPDwg IkZvbGRlciBzaXplIDogIiA8PCAoZm9sZGVyU2l6ZS9LSUxPKSA8PCAiIGtvIiA8PCBlbmRsOwor CisgIC8vIE9rLCBub3cgd2UgaGF2ZSBvdXIgc2xpY2VzCisKKyAgc2xpY2UgPSBzbGljZUFyci5s YXN0KCk7CisgIHdoaWxlIChmb2xkZXJTaXplID4gc2l6ZSkgeworICAgIC8va2REZWJ1ZygpIDw8 ICJUcmVhdGluZyBzbGljZSAiIDw8IHNsaWNlQXJyLmF0KCktMSA8PCAiIE1vIDogIiA8PCBzbGlj ZS0+Y291bnQoKSA8PCBlbmRsOworICAgIGFzc2VydCggc2xpY2UgKTsKKyAgICAKKyAgICBzbGlj ZS0+c29ydCgpOworCisgICAgLy8gRW1wdHkgdGhpcyBzbGljZSB0YWtpbmcgdGhlIG9sZGVzdCBt YWlscyBmaXJzdDoKKyAgICB3aGlsZSggc2xpY2UtPmNvdW50KCkgPiAwICYmIGZvbGRlclNpemUg PiBzaXplICkgeworICAgICAgbWIgPSBzbGljZS0+dGFrZSgwKTsKKyAgICAgIG1zZ1NpemUgPSBt Yi0+bXNnU2l6ZSgpOworICAgICAgLy9rZERlYnVnKCkgPDwgImRlbGV0aW5nIG1zZyA6ICIgPDwg KG1zZ1NpemUgLyBLSUxPKSA8PCAiIGtvIC0gIiA8PCBtYi0+c3ViamVjdCgpIDw8ICIgLSAiIDw8 IG1iLT5kYXRlU3RyKCk7CisgICAgICBhc3NlcnQoIGZvbGRlclNpemUgPj0gbXNnU2l6ZSApOwor ICAgICAgZm9sZGVyU2l6ZSAtPSBtc2dTaXplOworICAgICAgZGVsTXNnKys7CisgICAgICByZW1v dmVNc2cobWIpOworICAgIH0KKworICAgIHNsaWNlID0gc2xpY2VBcnIucHJldigpOworCisgIH0K KworICByZXR1cm4gZGVsTXNnOworfQorCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoraW50 IEtNRm9sZGVyOjpleHB1bmdlT2xkTXNnKGludCBkYXlzKQoreworICBpbnQgaSwgbXNnbmI9MDsK KyAgdGltZV90IG1zZ1RpbWUsIG1heFRpbWU7CisgIEtNTXNnQmFzZSogbWI7CisgIFFWYWx1ZUxp c3Q8aW50PiBybXZNc2dMaXN0OworCisgIG1heFRpbWUgPSB0aW1lKDBMKSAtIGRheXMgKiAzNjAw ICogMjQ7CisKKyAgZm9yIChpPWNvdW50KCktMTsgaT49MDsgaS0tKSB7CisgICAgbWIgPSBnZXRN c2dCYXNlKGkpOworICAgIGFzc2VydChtYik7CisJbXNnVGltZSA9IG1iLT5kYXRlKCk7CisKKwlp ZiAobXNnVGltZSA8IG1heFRpbWUpIHsKKwkJLy9rZERlYnVnKCkgPDwgImRlbGV0aW5nIG1zZyAi IDw8IGkgPDwgIiA6ICIgPDwgbWItPnN1YmplY3QoKSA8PCAiIC0gIiA8PCBtYi0+ZGF0ZVN0cigp OworICAgICAgICByZW1vdmVNc2coIGkgKTsKKwkJbXNnbmIrKzsKKwl9CisgIH0KKyAgcmV0dXJu IG1zZ25iOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHZvaWQgS01Gb2xkZXI6OnJl bW92ZU1zZyhLTU1zZ0Jhc2VQdHIgYU1zZykKIHsKLSAgcmVtb3ZlTXNnKGZpbmQoYU1zZykpOwor ICBpbnQgaWR4ID0gZmluZChhTXNnKTsKKyAgYXNzZXJ0KCBpZHggIT0gLTEpOworICByZW1vdmVN c2coaWR4KTsKIH0KIAogCkluZGV4OiBrbWZvbGRlci5oCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j dnMva2RlbmV0d29yay9rbWFpbC9rbWZvbGRlci5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2 CmRpZmYgLXUgLTMgLXAgLXIxLjM2IGttZm9sZGVyLmgKLS0tIGttZm9sZGVyLmgJMjAwMS8wMS8x MyAxMzoxMzowMgkxLjM2CisrKyBrbWZvbGRlci5oCTIwMDEvMDEvMzAgMTY6MTE6NTcKQEAgLTEx NSw2ICsxMTUsMTQgQEAgcHVibGljOgogICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTXNnKGludCBpKTsK ICAgdmlydHVhbCB2b2lkIHJlbW92ZU1zZyhLTU1zZ0Jhc2VQdHIgbXNnKTsKIAorICAvKiogRGVs ZXRlIG1lc3NhZ2VzIGluIHRoZSBmb2xkZXIgdGhhdCBhcmUgb2xkZXIgdGhhbiBkYXlzLiBSZXR1 cm4gdGhlCisgICAqIG51bWJlciBvZiBkZWxldGVkIG1lc3NhZ2VzLiAqLworICB2aXJ0dWFsIGlu dCBleHB1bmdlT2xkTXNnKGludCBkYXlzKTsKKworICAvKiogRGVsZXRlIG1lc3NhZ2VzIHVudGls IHRoZSBzaXplIG9mIHRoZSBmb2xkZXIgZ29lcyBiZWxvdyBzaXplIE1vLiAKKyAgICogUmV0dXJu cyB0aGUgbnVtYmVyIG9mIGRlbGV0ZWQgbWVzc2FnZXMuICovCisgIHZpcnR1YWwgaW50IHJlZHVj ZVNpemUoIGludCBzaXplICk7CisKICAgLyoqIERldGFjaGVzIHRoZSBnaXZlbiBtZXNzYWdlIGZy b20gaXQncyBjdXJyZW50IGZvbGRlciBhbmQKICAgICBhZGRzIGl0IHRvIHRoaXMgZm9sZGVyLiBS ZXR1cm5zIHplcm8gb24gc3VjY2VzcyBhbmQgYW4gZXJybm8gZXJyb3IKICAgICBjb2RlIG9uIGZh aWx1cmUuIFRoZSBpbmRleCBvZiB0aGUgbmV3IG1lc3NhZ2UgaXMgc3RvcmVkIGluIGluZGV4X3Jl dHVybgpJbmRleDoga21mb2xkZXJ0cmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2tk ZW5ldHdvcmsva21haWwva21mb2xkZXJ0cmVlLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44 NwpkaWZmIC11IC0zIC1wIC1yMS44NyBrbWZvbGRlcnRyZWUuY3BwCi0tLSBrbWZvbGRlcnRyZWUu Y3BwCTIwMDEvMDEvMjUgMjE6NDY6MjgJMS44NworKysga21mb2xkZXJ0cmVlLmNwcAkyMDAxLzAx LzMwIDE2OjExOjU4CkBAIC02NDcsNiArNjQ3LDkgQEAgdm9pZCBLTUZvbGRlclRyZWU6OnJpZ2h0 QnV0dG9uUHJlc3NlZChRTAogCQkJCSAgU0xPVChzbG90TW9kaWZ5Rm9sZGVyKCkpKTsKICAgZm9s ZGVyTWVudS0+aW5zZXJ0SXRlbShpMThuKCJDJm9tcGFjdCIpLCB0b3BMZXZlbFdpZGdldCgpLAog CQkJIFNMT1Qoc2xvdENvbXBhY3RGb2xkZXIoKSkpOworICBpbnQgbTUgPSBmb2xkZXJNZW51LT5p bnNlcnRJdGVtKGkxOG4oIiZDbGVhbiB1cCIpLCB0b3BMZXZlbFdpZGdldCgpLAorCQkJCSAgU0xP VChzbG90Q2xlYW51cFRyYXNoKCkpKTsKKyAgZm9sZGVyTWVudS0+c2V0SXRlbUVuYWJsZWQobTUs IGZhbHNlKTsKICAgZm9sZGVyTWVudS0+aW5zZXJ0U2VwYXJhdG9yKCk7CiAgIGZvbGRlck1lbnUt Pmluc2VydEl0ZW0oaTE4bigiJkVtcHR5IiksIHRvcExldmVsV2lkZ2V0KCksCiAJCQkgU0xPVChz bG90RW1wdHlGb2xkZXIoKSkpOwpAQCAtNjYyLDYgKzY2NSwxMCBAQCB2b2lkIEtNRm9sZGVyVHJl ZTo6cmlnaHRCdXR0b25QcmVzc2VkKFFMCiAgICAgZm9sZGVyTWVudS0+c2V0SXRlbUVuYWJsZWQo bTEsZmFsc2UpOwogICAgIGZvbGRlck1lbnUtPnNldEl0ZW1FbmFibGVkKG0yLGZhbHNlKTsKICAg ICBmb2xkZXJNZW51LT5zZXRJdGVtRW5hYmxlZChtMyxmYWxzZSk7CisKKyAgICBpZiAoZnRpLT5m b2xkZXItPmlkU3RyaW5nKCkgPT0ga2VybmVsLT50cmFzaEZvbGRlcigpLT5pZFN0cmluZygpICkg eworICAgICAgZm9sZGVyTWVudS0+c2V0SXRlbUVuYWJsZWQobTUsIHRydWUpOworCX0KICAgfQog CiAgIGlmICghZnRpLT5mb2xkZXItPmlzTWFpbGluZ0xpc3QoKSkgewpJbmRleDoga21oZWFkZXJz LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2tkZW5ldHdvcmsva21haWwva21oZWFkZXJz LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMjYKZGlmZiAtdSAtMyAtcCAtcjEuMjI2IGtt aGVhZGVycy5jcHAKLS0tIGttaGVhZGVycy5jcHAJMjAwMS8wMS8yNSAyMTo0NjoyOAkxLjIyNgor Kysga21oZWFkZXJzLmNwcAkyMDAxLzAxLzMwIDE2OjExOjU5CkBAIC0xMzM4LDcgKzEzMzgsNyBA QCB2b2lkIEtNSGVhZGVyczo6Y29weU1zZ1RvRm9sZGVyIChLTUZvbGRlCiAgIEtNTWVzc2FnZUxp c3QqIG1zZ0xpc3Q7CiAgIEtNTXNnQmFzZSAqbXNnQmFzZTsKICAgS01NZXNzYWdlICptc2csICpu ZXdNc2c7Ci0gIGludCB0b3AsIHJjLCBpZHg7CisgIGludCB0b3AsIHJjLCBpZHg9LTE7CiAgIGJv b2wgaXNNZXNzYWdlOwogCiAgIGlmICghZGVzdEZvbGRlcikgcmV0dXJuOwpJbmRleDoga21rZXJu ZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMva2RlbmV0d29yay9rbWFpbC9rbWtlcm5l bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzYKZGlmZiAtdSAtMyAtcCAtcjEuMzYga21r ZXJuZWwuY3BwCi0tLSBrbWtlcm5lbC5jcHAJMjAwMS8wMS8xOSAxNDo0MTo0MwkxLjM2CisrKyBr bWtlcm5lbC5jcHAJMjAwMS8wMS8zMCAxNjoxMjowMApAQCAtNDk4LDE3ICs0OTgsNTcgQEAgYm9v bCBLTUtlcm5lbDo6ZG9TZXNzaW9uTWFuYWdlbWVudCgpCiAgIHJldHVybiBmYWxzZTsgIC8vIG5v LCB3ZSB3ZXJlIG5vdCByZXN0b3JlZAogfQogCi12b2lkIEtNS2VybmVsOjpjbGVhbnVwKHZvaWQp Cit2b2lkIEtNS2VybmVsOjpjbGVhbnVwX3RyYXNoKHZvaWQpCiB7Ci0gIHRoZV9zaHV0dGluZ0Rv d24gPSBUUlVFOwogICBLQ29uZmlnKiBjb25maWcgPSAga2FwcC0+Y29uZmlnKCk7Ci0KICAgaWYg KHRoZV90cmFzaEZvbGRlcikgeworCiAgICAgdGhlX3RyYXNoRm9sZGVyLT5jbG9zZShUUlVFKTsK ICAgICBjb25maWctPnNldEdyb3VwKCJHZW5lcmFsIik7CiAgICAgaWYgKGNvbmZpZy0+cmVhZEJv b2xFbnRyeSgiZW1wdHktdHJhc2gtb24tZXhpdCIsIHRydWUpKQogICAgICAgdGhlX3RyYXNoRm9s ZGVyLT5leHB1bmdlKCk7CisKKyAgICBpZiAoY29uZmlnLT5yZWFkQm9vbEVudHJ5KCJyZW1vdmUt b2xkLW1haWwtZnJvbS10cmFzaCIsIHRydWUpIAorCQl8fCAoY29uZmlnLT5yZWFkQm9vbEVudHJ5 KCJrZWVwLXNtYWxsLXRyYXNoIiwgdHJ1ZSkpICkgeworICAgICAgdGhlX3RyYXNoRm9sZGVyLT5v cGVuKCk7CisgICAgICB0aGVfdHJhc2hGb2xkZXItPnF1aWV0KHRydWUpOworICAgIH0KKworICAg IGlmIChjb25maWctPnJlYWRCb29sRW50cnkoInJlbW92ZS1vbGQtbWFpbC1mcm9tLXRyYXNoIiwg dHJ1ZSkpIHsKKyAgICAgIGludCBhZ2U7CisgICAgICBpbnQgb2xkX2FnZSA9IGNvbmZpZy0+cmVh ZE51bUVudHJ5KCJvbGQtbWFpbC1hZ2UiLCAxKTsKKyAgICAgIGludCBhZ2VfdW5pdCA9IGNvbmZp Zy0+cmVhZE51bUVudHJ5KCJvbGQtbWFpbC1hZ2UtdW5pdCIsIDEpOworICAgICAgaWYgKGFnZV91 bml0ID09IDApIHsgLy8gbW9udGgKKyAgICAgICAgYWdlID0gMzEgKiBvbGRfYWdlOworICAgICAg fSBlbHNlIGlmIChhZ2VfdW5pdCA9PSAxKSB7IC8vIHdlZWsKKyAgICAgICAgYWdlID0gNyAqIG9s ZF9hZ2U7CisgICAgICB9IGVsc2UgaWYgKGFnZV91bml0ID09IDIpIHsgLy8gZGF5CisgICAgICAg IGFnZSA9IG9sZF9hZ2U7CisgICAgICB9IGVsc2UgeworICAgICAgICBrZERlYnVnKCkgPDwgIlVu a25vd24gdW5pdCBmb3IgbWFpbCBhZ2UgOiAiIDw8IG9sZF9hZ2UgPDwgZW5kbDsKKyAgICAgICAg YWdlID0gb2xkX2FnZTsKKyAgICAgIH0KKyAgICAgIGtkRGVidWcoKSA8PCAiUmVtb3ZpbmcgbWFp bCBvbGRlciB0aGFuICIgPDwgYWdlIDw8ICIgZGF5cyIgPDwgZW5kbDsKKyAgICAgIHRoZV90cmFz aEZvbGRlci0+ZXhwdW5nZU9sZE1zZyggYWdlICk7CisgICAgfQorCisgICAgaWYgKGNvbmZpZy0+ cmVhZEJvb2xFbnRyeSgia2VlcC1zbWFsbC10cmFzaCIsIHRydWUpKSB7CisgICAgICBpbnQgc2l6 ZSA9IGNvbmZpZy0+cmVhZE51bUVudHJ5KCJzbWFsbC10cmFzaC1zaXplIiwgMTApOworICAgICAg dGhlX3RyYXNoRm9sZGVyLT5yZWR1Y2VTaXplKCBzaXplICk7CisgICAgfQorCisgICAgdGhlX3Ry YXNoRm9sZGVyLT5jbG9zZSgpOworICAgIHRoZV90cmFzaEZvbGRlci0+Y29tcGFjdCgpOworICAg IGtkRGVidWcoKSA8PCAidHJhc2ggY2xlYW4tdXAgZG9uZS4iOwogICB9Cit9CisKK3ZvaWQgS01L ZXJuZWw6OmNsZWFudXAodm9pZCkKK3sKKyAgdGhlX3NodXR0aW5nRG93biA9IFRSVUU7CisgIEtD b25maWcqIGNvbmZpZyA9ICBrYXBwLT5jb25maWcoKTsKKworICBjbGVhbnVwX3RyYXNoKCk7CiAK ICAgaWYgKHRoZV9mb2xkZXJNZ3IpIHsKICAgICBpZiAoY29uZmlnLT5yZWFkQm9vbEVudHJ5KCJj b21wYWN0LWFsbC1vbi1leGl0IiwgdHJ1ZSkpCkluZGV4OiBrbWtlcm5lbC5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMva2RlbmV0d29yay9rbWFpbC9rbWtlcm5lbC5oLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjE0CmRpZmYgLXUgLTMgLXAgLXIxLjE0IGtta2VybmVsLmgKLS0tIGtta2VybmVs LmgJMjAwMS8wMS8wNCAwMToyNTo1MAkxLjE0CisrKyBrbWtlcm5lbC5oCTIwMDEvMDEvMzAgMTY6 MTI6MDEKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICB2b2lkIHRlc3REaXIoY29uc3QgY2hh ciAqX25hbWUpOwogICB2b2lkIHJlY292ZXJEZWFkTGV0dGVycyh2b2lkKTsKICAgdm9pZCBpbml0 Rm9sZGVycyhLQ29uZmlnKiBjZmcpOworICB2b2lkIGNsZWFudXBfdHJhc2godm9pZCk7CiAgIHZv aWQgY2xlYW51cCh2b2lkKTsKICAgdm9pZCBxdWl0KCk7CiAgIHZvaWQgdHJhbnNmZXJNYWlsKHZv aWQpOwpJbmRleDoga21tYWlud2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2tkZW5l dHdvcmsva21haWwva21tYWlud2luLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNTcKZGlm ZiAtdSAtMyAtcCAtcjEuMjU3IGttbWFpbndpbi5jcHAKLS0tIGttbWFpbndpbi5jcHAJMjAwMS8w MS8xNyAxOTo0NjozOQkxLjI1NworKysga21tYWlud2luLmNwcAkyMDAxLzAxLzMwIDE2OjEyOjAx CkBAIC02MjksNyArNjI5LDcgQEAgdm9pZCBLTU1haW5XaW46OnNsb3RNYWlsQ2hlY2tlZChib29s IG5ldwogICAgIHJldHVybjsKIAogICBpZiAobUJlZXBPbk5ldykgewotICAgIEtOb3RpZnlDbGll bnQ6OmJlZXAoKTsKKyAgICAvL0tOb3RpZnlDbGllbnQ6OmJlZXAoKTsKICAgfQogCiAgIC8vIEZJ WE1FOiBjaGFuZ2Ugc3lzdGVtKCkgdG8gYSBLUHJvY2VzcwpAQCAtMTM3MCw3ICsxMzcwLDE1IEBA IHZvaWQgS01NYWluV2luOjpzbG90TXNnUG9wdXAoY29uc3QgS1VSTCAKICAgfQogfQogCisvLy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIEtNTWFpbldpbjo6c2xvdENsZWFudXBUcmFzaCgpCit7 CisgIHN0YXR1c01zZygiQ2xlYW5pbmcgdXAgdHJhc2ggZm9sZGVyIik7CisgIGtlcm5lbC0+Y2xl YW51cF90cmFzaCgpOworICBzdGF0dXNNc2coIlRyYXNoIGZvbGRlciBjbGVhbmVkIHVwISIpOwor fQogCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHZvaWQgS01NYWluV2luOjpnZXRBY2NvdW50 TWVudSgpCiB7CkBAIC0xMzk4LDYgKzE0MDYsMTAgQEAgdm9pZCBLTU1haW5XaW46OnNldHVwTWVu dUJhcigpCiAKICAgS1N0ZEFjdGlvbjo6cHJpbnQgKHRoaXMsIFNMT1Qoc2xvdFByaW50TXNnKCkp LCBhY3Rpb25Db2xsZWN0aW9uKCkpOwogCisgICh2b2lkKSBuZXcgS0FjdGlvbiggaTE4bigiQ2xl YW4gdXAgdHJhc2ggZm9sZGVyIiksIDAsCisJCSAgICAgIHRoaXMgLCBTTE9UKHNsb3RDbGVhbnVw VHJhc2goKSksCisJCSAgICAgIGFjdGlvbkNvbGxlY3Rpb24oKSwgImNsZWFuX3VwX3RyYXNoX2Zv bGRlciIgKTsKKwogICAodm9pZCkgbmV3IEtBY3Rpb24oIGkxOG4oIkNvbXBhY3QgYWxsICZmb2xk ZXJzIiksIDAsCiAJCSAgICAgIGtlcm5lbC0+Zm9sZGVyTWdyKCksIFNMT1QoY29tcGFjdEFsbCgp KSwKIAkJICAgICAgYWN0aW9uQ29sbGVjdGlvbigpLCAiY29tcGFjdF9hbGxfZm9sZGVycyIgKTsK QEAgLTE1ODgsNyArMTYwMCw3IEBAIHZvaWQgS01NYWluV2luOjpzZXR1cE1lbnVCYXIoKQogICAo dm9pZCkgbmV3IEtBY3Rpb24oIGkxOG4oIkYmaWx0ZXIgUnVsZXMuLi4iKSwgMCwgdGhpcywKICAJ CSAgICAgIFNMT1Qoc2xvdEZpbHRlcigpKSwgYWN0aW9uQ29sbGVjdGlvbigpLCAiZmlsdGVyIiAp OwogCi0gIGNyZWF0ZUdVSSggImttbWFpbndpbi5yYyIsIGZhbHNlICk7CisgIGNyZWF0ZUdVSSgg InBoaWwta21tYWlud2luLnJjIiwgZmFsc2UgKTsKIAogICBRT2JqZWN0Ojpjb25uZWN0KCBndWlG YWN0b3J5KCktPmNvbnRhaW5lcigiZm9sZGVyIiwgdGhpcyksCiAJCSAgICBTSUdOQUwoIGFib3V0 VG9TaG93KCkgKSwgdGhpcywgU0xPVCggdXBkYXRlRm9sZGVyTWVudSgpICkpOwpJbmRleDoga21t YWlud2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9rZGVuZXR3b3JrL2ttYWlsL2ttbWFp bndpbi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc2CmRpZmYgLXUgLTMgLXAgLXIxLjc2IGtt bWFpbndpbi5oCi0tLSBrbW1haW53aW4uaAkyMDAwLzEyLzE0IDE0OjE5OjEzCTEuNzYKKysrIGtt bWFpbndpbi5oCTIwMDEvMDEvMzAgMTY6MTI6MDEKQEAgLTE1OSw2ICsxNTksNyBAQCBwcm90ZWN0 ZWQgc2xvdHM6CiAgIHZvaWQgc2xvdFNlYXJjaCgpOwogICB2b2lkIHNsb3RTZWFyY2hDbG9zZWQo KTsKICAgdm9pZCBzbG90RmluZCgpOworICB2b2lkIHNsb3RDbGVhbnVwVHJhc2goKTsKIAogICAv KiogZXRjLiAqLwogICB2b2lkIHNsb3RNc2dBY3RpdmF0ZWQoS01NZXNzYWdlKik7CkluZGV4OiBr bW1haW53aW4ucmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9rZGVuZXR3b3JrL2ttYWlsL2tt bWFpbndpbi5yYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC11IC0zIC1wIC1yMS4x NCBrbW1haW53aW4ucmMKLS0tIGttbWFpbndpbi5yYwkyMDAwLzEyLzExIDA5OjA4OjAyCTEuMTQK KysrIGttbWFpbndpbi5yYwkyMDAxLzAxLzMwIDE2OjEyOjAyCkBAIC03LDYgKzcsNyBAQAogICAg PEFjdGlvbiBuYW1lPSJzYXZlX2FzIiAvPgogICAgPEFjdGlvbiBuYW1lPSJmaWxlX3ByaW50IiAv PgogICAgPFNlcGFyYXRvci8+CisgICA8QWN0aW9uIG5hbWU9ImNsZWFuX3VwX3RyYXNoX2ZvbGRl ciIgLz4KICAgIDxBY3Rpb24gbmFtZT0iY29tcGFjdF9hbGxfZm9sZGVycyIgLz4KICAgIDxTZXBh cmF0b3IvPgogICAgPEFjdGlvbiBuYW1lPSJjaGVja19tYWlsIiAvPgpJbmRleDoga21tc2diYXNl LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9rZGVuZXR3b3JrL2ttYWlsL2ttbXNnYmFzZS5o LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIzCmRpZmYgLXUgLTMgLXAgLXIxLjIzIGttbXNnYmFz ZS5oCi0tLSBrbW1zZ2Jhc2UuaAkyMDAwLzEyLzA4IDA5OjQ5OjI1CTEuMjMKKysrIGttbXNnYmFz ZS5oCTIwMDEvMDEvMzAgMTY6MTI6MDIKQEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgIC8q KiBEZWNvZGUgZ2l2ZW4gc3RyaW5nIGFzIGRlc2NyaWJlZCBpbiBSRkMyMjMxICovCiAgIHN0YXRp YyBjb25zdCBRU3RyaW5nIGRlY29kZVJGQzIyMzFTdHJpbmcoY29uc3QgUVN0cmluZyYgYVN0cik7 CiAKKwogcHJvdGVjdGVkOgogICBLTUZvbGRlciogbVBhcmVudDsKICAgdW5zaWduZWQgbG9uZyBt Rm9sZGVyT2Zmc2V0LCBtTXNnU2l6ZTsKSW5kZXg6IGttcmVhZGVyd2luLmNwcAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL2tkZW5ldHdvcmsva21haWwva21yZWFkZXJ3aW4uY3BwLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjIzNgpkaWZmIC11IC0zIC1wIC1yMS4yMzYga21yZWFkZXJ3aW4uY3Bw Ci0tLSBrbXJlYWRlcndpbi5jcHAJMjAwMS8wMS8yNSAyMTo0NjoyOAkxLjIzNgorKysga21yZWFk ZXJ3aW4uY3BwCTIwMDEvMDEvMzAgMTY6MTI6MDMKQEAgLTMzOSwxMCArMzM5LDEwIEBAIHZvaWQg S01SZWFkZXJXaW46OmluaXRIdG1sV2lkZ2V0KHZvaWQpCiB7CiAgIG1WaWV3ZXIgPSBuZXcgS0hU TUxQYXJ0KHRoaXMsICJraHRtbCIpOwogICAvLyBMZXQncyBiZXR0ZXIgYmUgcGFyYW5vaWQgYW5k IGRpc2FibGUgcGx1Z2lucyAoaXQgZGVmYXVsdHMgdG8gZW5hYmxlZCk6Ci0gIG1WaWV3ZXItPmVu YWJsZVBsdWdpbnMoZmFsc2UpOworICAvL21WaWV3ZXItPmVuYWJsZVBsdWdpbnMoZmFsc2UpOwog ICBtVmlld2VyLT5lbmFibGVKU2NyaXB0KGZhbHNlKTsgLy8ganVzdCBtYWtlIHRoaXMgZXhwbGlj aXQKICAgbVZpZXdlci0+ZW5hYmxlSmF2YShmYWxzZSk7ICAgIC8vIGp1c3QgbWFrZSB0aGlzIGV4 cGxpY2l0Ci0gIG1WaWV3ZXItPmVuYWJsZU1ldGFSZWZyZXNoKGZhbHNlKTsKKyAgLy9tVmlld2Vy LT5lbmFibGVNZXRhUmVmcmVzaChmYWxzZSk7CiAgIG1WaWV3ZXItPndpZGdldCgpLT5yZXNpemUo d2lkdGgoKS0xNiwgaGVpZ2h0KCktMTEwKTsKICAgbVZpZXdlci0+c2V0VVJMQ3Vyc29yKEtDdXJz b3I6OmhhbmRDdXJzb3IoKSk7CiAK --------------Boundary-00=_2KHZO7FAYFAD4H9KIBHU-- _______________________________________________ Kmail Developers mailing list Kmail@master.kde.org http://master.kde.org/mailman/listinfo/kmail