--------------Boundary-00=_C0D1IRG9ZKHXW0R0HICR Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8bit The two patches attached provide support for animations on mouseover, as requested by our beloved artist (aka tackat ;) The main question is: given the current feature freeze, is it ok to commit this nonetheless ? Details: The patch for am_edit makes it possible to install the mng already present in kdelibs/pics/hicolor. When the mouse goes over an icon (in konq/kdesktop), KIconLoader locates an mng with the same name as the icon (currently only folder.mng exists), then a QMovie is created to play it - each frame of the MNG is set as the QIconViewItem pixmap, quite simple. The memory overhead is one pointer per icon (the movie, 0L most of the time), and the filename for the icon in a QString (e.g. "folder"). The patch moves m_size from KFileIVI to KIconViewItem -> no change for most iconviews, however this makes the patch BIC. The effect looks nice - although this is pure eye-candy, no doubt there. Whether it will need to be made configurable or not.... I say yes, Tackat says no, we'll see what users (or the testers of this patch) say ;) -- David FAURE, david@mandrakesoft.com, faure@kde.org http://people.mandrakesoft.com/~david, http://www.konqueror.org KDE 3.0: Konquering the Desktops --------------Boundary-00=_C0D1IRG9ZKHXW0R0HICR Content-Type: text/x-diff; charset="us-ascii"; name="animated_icons_kdebase.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="animated_icons_kdebase.diff" SW5kZXg6IGtmaWxlaXZpLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGViYXNl L2xpYmtvbnEva2ZpbGVpdmkuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjMKZGlmZiAtdSAt cCAtcjEuNjMga2ZpbGVpdmkuY2MKLS0tIGtmaWxlaXZpLmNjCTIwMDIvMDEvMTAgMTQ6NDY6NDcJ MS42MworKysga2ZpbGVpdmkuY2MJMjAwMi8wMS8xNiAxNDozMTowMwpAQCAtMjYsNiArMjYsNyBA QAogI2luY2x1ZGUgPGt1cmxkcmFnLmg+CiAjaW5jbHVkZSA8a2ljb25lZmZlY3QuaD4KICNpbmNs dWRlIDxrZmlsZWl0ZW0uaD4KKyNpbmNsdWRlIDxrZGVidWcuaD4KIAogI3VuZGVmIEJvb2wKIApA QCAtNDMsMTUgKzQ0LDE4IEBAIHN0cnVjdCBLRmlsZUlWSTo6UHJpdmF0ZQogS0ZpbGVJVkk6OktG aWxlSVZJKCBLb25xSWNvblZpZXdXaWRnZXQgKmljb252aWV3LCBLRmlsZUl0ZW0qIGZpbGVpdGVt LCBpbnQgc2l6ZSApCiAgICAgOiBLSWNvblZpZXdJdGVtKCBpY29udmlldywgZmlsZWl0ZW0tPnRl eHQoKSwKIAkJICAgICBmaWxlaXRlbS0+cGl4bWFwKCBzaXplLCBLSWNvbjo6RGVmYXVsdFN0YXRl ICkgKSwKLSAgbV9zaXplKHNpemUpLCBtX3N0YXRlKCBLSWNvbjo6RGVmYXVsdFN0YXRlICksCisg ICAgbV9zdGF0ZSggS0ljb246OkRlZmF1bHRTdGF0ZSApLAogICAgIG1fYkRpc2FibGVkKCBmYWxz ZSApLCBtX2JUaHVtYm5haWwoIGZhbHNlICksIG1fZmlsZWl0ZW0oIGZpbGVpdGVtICkKIHsKKyAg ICBzZXRJY29uU2l6ZSggc2l6ZSApOwogICAgIHNldERyb3BFbmFibGVkKCBTX0lTRElSKCBtX2Zp bGVpdGVtLT5tb2RlKCkgKSApOwogICAgIGQgPSBuZXcgS0ZpbGVJVkk6OlByaXZhdGU7CiAKICAg ICAvLyBDYWNoZSBlbnRyeSBmb3IgdGhlIGljb24gZWZmZWN0cwogICAgIGQtPmljb25zLnJlc2V0 KCAqcGl4bWFwKCksIFFJY29uU2V0OjpMYXJnZSApOwogICAgIGQtPnN0YXRlID0gS0ljb246OkRl ZmF1bHRTdGF0ZTsKKworICAgIHNldE1vdXNlT3ZlckFuaW1hdGlvbiggZmlsZWl0ZW0tPmljb25O YW1lKCkgKTsKIH0KIAogS0ZpbGVJVkk6On5LRmlsZUlWSSgpCkBAIC04Nyw3ICs5MSw3IEBAIHZv aWQgS0ZpbGVJVkk6OmludmFsaWRhdGVUaHVtYiggaW50IHN0YXQKIAogdm9pZCBLRmlsZUlWSTo6 c2V0SWNvbiggaW50IHNpemUsIGludCBzdGF0ZSwgYm9vbCByZWNhbGMsIGJvb2wgcmVkcmF3ICkK IHsKLSAgICBtX3NpemUgPSBzaXplOworICAgIHNldEljb25TaXplKCBzaXplICk7CiAgICAgbV9i VGh1bWJuYWlsID0gZmFsc2U7CiAgICAgaWYgKCBtX2JEaXNhYmxlZCApCiAgICAgICBtX3N0YXRl ID0gS0ljb246OkRpc2FibGVkU3RhdGU7CkBAIC0xMTMsNyArMTE3LDcgQEAgdm9pZCBLRmlsZUlW STo6c2V0SWNvbiggaW50IHNpemUsIGludCBzdAogICAgIC8vIGNhbGxlZCB3aXRoIGFueSBzdGF0 ZSBhbmQgbm90IGp1c3Qgbm9ybWFsIHN0YXRlLiBTbyB3ZSBqdXN0CiAgICAgLy8gY3JlYXRlIGEg ZHVtbXkgZW1wdHkgaWNvbnNldCBhcyBiYXNlIG9iamVjdC4KICAgICBkLT5pY29ucyA9IFFJY29u U2V0KCk7Ci0gICAgZC0+aWNvbnMuc2V0UGl4bWFwKCBtX2ZpbGVpdGVtLT5waXhtYXAoIG1fc2l6 ZSwgbV9zdGF0ZSApLAorICAgIGQtPmljb25zLnNldFBpeG1hcCggbV9maWxlaXRlbS0+cGl4bWFw KCBpY29uU2l6ZSgpLCBtX3N0YXRlICksCiAJCQlRSWNvblNldDo6TGFyZ2UsIG1vZGUgKTsKICAg ICBkLT5zdGF0ZSA9IG1fc3RhdGU7CiAgICAgUUljb25WaWV3SXRlbTo6c2V0UGl4bWFwKCBkLT5p Y29ucy5waXhtYXAoIFFJY29uU2V0OjpMYXJnZSwgbW9kZSApLApAQCAtMTI2LDcgKzEzMCw3IEBA IHZvaWQgS0ZpbGVJVkk6OnNldERpc2FibGVkKCBib29sIGRpc2FibGUKICAgICB7CiAgICAgICAg IG1fYkRpc2FibGVkID0gZGlzYWJsZWQ7CiAgICAgICAgIG1fc3RhdGUgPSBtX2JEaXNhYmxlZCA/ IEtJY29uOjpEaXNhYmxlZFN0YXRlIDogS0ljb246OkRlZmF1bHRTdGF0ZTsKLSAgICAgICAgUUlj b25WaWV3SXRlbTo6c2V0UGl4bWFwKCBtX2ZpbGVpdGVtLT5waXhtYXAoIG1fc2l6ZSwgbV9zdGF0 ZSApLCBmYWxzZSwgdHJ1ZSApOworICAgICAgICBRSWNvblZpZXdJdGVtOjpzZXRQaXhtYXAoIG1f ZmlsZWl0ZW0tPnBpeG1hcCggaWNvblNpemUoKSwgbV9zdGF0ZSApLCBmYWxzZSwgdHJ1ZSApOwog ICAgIH0KIH0KIApAQCAtMTg2LDcgKzE5MCw3IEBAIHZvaWQgS0ZpbGVJVkk6OnNldEVmZmVjdCgg aW50IGdyb3VwLCBpbnQKIAllbHNlCiAJewogCSAgICBpZiggZC0+aWNvbnMuaXNHZW5lcmF0ZWQo IFFJY29uU2V0OjpMYXJnZSwgbW9kZSApICkKLQkJZC0+aWNvbnMuc2V0UGl4bWFwKCBtX2ZpbGVp dGVtLT5waXhtYXAoIG1fc2l6ZSwgc3RhdGUgKSwKKwkJZC0+aWNvbnMuc2V0UGl4bWFwKCBtX2Zp bGVpdGVtLT5waXhtYXAoIGljb25TaXplKCksIHN0YXRlICksCiAJCQkJICAgIFFJY29uU2V0OjpM YXJnZSwgbW9kZSApOwogCX0KIAlRSWNvblZpZXdJdGVtOjpzZXRQaXhtYXAoIGQtPmljb25zLnBp eG1hcCggUUljb25TZXQ6OkxhcmdlLCBtb2RlICkgKTsKQEAgLTE5Nyw3ICsyMDEsNyBAQCB2b2lk IEtGaWxlSVZJOjpzZXRFZmZlY3QoIGludCBncm91cCwgaW50CiB2b2lkIEtGaWxlSVZJOjpyZWZy ZXNoSWNvbiggYm9vbCByZWRyYXcgKQogewogICAgIGlmICggIWlzVGh1bWJuYWlsKCkpCi0gICAg ICAgIHNldEljb24oIG1fc2l6ZSwgbV9zdGF0ZSwgdHJ1ZSwgcmVkcmF3ICk7CisgICAgICAgIHNl dEljb24oIGljb25TaXplKCksIG1fc3RhdGUsIHRydWUsIHJlZHJhdyApOwogfQogCiBib29sIEtG aWxlSVZJOjphY2NlcHREcm9wKCBjb25zdCBRTWltZVNvdXJjZSAqbWltZSApIGNvbnN0CkluZGV4 OiBrZmlsZWl2aS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGViYXNlL2xpYmtv bnEva2ZpbGVpdmkuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MQpkaWZmIC11IC1wIC1yMS40 MSBrZmlsZWl2aS5oCi0tLSBrZmlsZWl2aS5oCTIwMDIvMDEvMTAgMTQ6NDY6NDcJMS40MQorKysg a2ZpbGVpdmkuaAkyMDAyLzAxLzE2IDE0OjMxOjAzCkBAIC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0 ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGl4bWFwICggY29uc3QgUVBpeG1hcCAmIGljb24gKSB7 IEtJY29uVmlld0l0ZW06OnNldFBpeG1hcCggaWNvbiApOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl dFBpeG1hcCAoIGNvbnN0IFFQaXhtYXAgJiBpY29uLCBib29sIHJlY2FsYywgYm9vbCByZWRyYXcg PSBUUlVFICkKICAgICAgICAgeyBLSWNvblZpZXdJdGVtOjpzZXRQaXhtYXAoIGljb24sIHJlY2Fs YywgcmVkcmF3ICk7IH0KLSAgICBpbnQgbV9zaXplLCBtX3N0YXRlOworICAgIGludCBtX3N0YXRl OwogICAgIGJvb2wgbV9iRGlzYWJsZWQ7CiAgICAgYm9vbCBtX2JUaHVtYm5haWw7CiAgICAgLyoq IFBvaW50ZXIgdG8gdGhlIGZpbGUgaXRlbSBpbiBLRGlyTGlzdGVyJ3MgbGlzdCAqLwo= --------------Boundary-00=_C0D1IRG9ZKHXW0R0HICR Content-Type: text/x-diff; charset="us-ascii"; name="animated_icons_kdelibs.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="animated_icons_kdelibs.diff" SW5kZXg6IGFkbWluL2FtX2VkaXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZS1j b21tb24vYWRtaW4vYW1fZWRpdCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOTkKZGlmZiAtdSAt cCAtcjEuMjk5IGFtX2VkaXQKLS0tIGFkbWluL2FtX2VkaXQJMjAwMi8wMS8xMyAxMjo1OTozMgkx LjI5OQorKysgYWRtaW4vYW1fZWRpdAkyMDAyLzAxLzE2IDE0OjMwOjQ3CkBAIC0xMTYwLDExICsx MTYwLDExIEBAIHN1YiB0YWdfSUNPTigpCiAgICAgICAgICAgICBpZiAoICRpY29uYXV0byApCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIHB1c2goQGZpbGVzLCAkZW50cnkpCi0g ICAgICAgICAgICAgICAgICAgIGlmICgkZW50cnkgPX4gL1wueHBtLyB8fCAkZW50cnkgPX4gL1wu cG5nLyk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkZW50cnkgPX4gL1wueHBtLyB8fCAkZW50 cnkgPX4gL1wucG5nLyB8fCAkZW50cnkgPX4gL1wubW5nLyk7CiAgICAgICAgICAgICAgIH0gZWxz ZSB7CiAgICAgICAgICAgICAgICAgICBmb3JlYWNoICRhcHBuYW1lIChAYXBwbmFtZXMpIHsKICAg ICAgICAgICAgICAgICAgICAgICBwdXNoKEBmaWxlcywgJGVudHJ5KQotICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRlbnRyeSA9fiAvLSRhcHBuYW1lXC54cG0vIHx8ICRlbnRyeSA9fiAvLSRh cHBuYW1lXC5wbmcvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZW50cnkgPX4gLy0k YXBwbmFtZVwueHBtLyB8fCAkZW50cnkgPX4gLy0kYXBwbmFtZVwucG5nLyB8fCAkZW50cnkgPX4g Ly0kYXBwbmFtZVwubW5nLyk7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0K ICAgICAgICAgfQpAQCAtMTE3NSw3ICsxMTc1LDcgQEAgc3ViIHRhZ19JQ09OKCkKICAgICAgICAg Zm9yZWFjaCAkZmlsZSAoQGZpbGVzKSB7CiAgICAgICAgICAgICBteSAkbmV3ZmlsZSA9ICRmaWxl OwogICAgICAgICAgICAgbXkgJHByZWZpeCA9ICRmaWxlOwotICAgICAgICAgICAgJHByZWZpeCA9 fiBzL1wuKHBuZ3x4cG0pJC8vOworICAgICAgICAgICAgJHByZWZpeCA9fiBzL1wuKHBuZ3x4cG18 bW5nKSQvLzsKICAgICAgICAgICAgIG15ICRhcHBuYW1lID0gJHByZWZpeDsKICAgICAgICAgICAg ICRhcHBuYW1lID1+IHMvXlteLV0rLS8vIGlmICgkYXBwbmFtZSA9fiAvLS8pIDsKICAgICAgICAg ICAgICRhcHBuYW1lID1+IHMvXlteLV0rLS8vIGlmICgkYXBwbmFtZSA9fiAvLS8pIDsKQEAgLTEy MjMsNyArMTIyMyw3IEBAIHN1YiB0YWdfSUNPTigpCiAgICAgICAgICAgICAgICAnaGlzYycgPT4g J2hpY29sb3Ivc2NhbGFibGUnCiAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAKLSAgICAg ICAgICAgICRuZXdmaWxlID1+IHNALiotKCRhcHBuYW1lXC4ocG5nfHhwbT8pKUAkMUA7CisgICAg ICAgICAgICAkbmV3ZmlsZSA9fiBzQC4qLSgkYXBwbmFtZVwuKHBuZ3x4cG18bW5nPykpQCQxQDsK ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCEgZGVmaW5lZCAkZGlyX2hhc2h7JHByZWZp eH0pIHsKICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgInVua25vd24gaWNvbiBwcmVmaXgg JHByZWZpeCBpbiAkcHJpbnRuYW1lXG4iOwpJbmRleDoga2RldWkva2ljb252aWV3LmNwcAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlbGlicy9rZGV1aS9raWNvbnZpZXcuY3BwLHYK cmV0cmlldmluZyByZXZpc2lvbiAxLjUwCmRpZmYgLXUgLXAgLXIxLjUwIGtpY29udmlldy5jcHAK LS0tIGtkZXVpL2tpY29udmlldy5jcHAJMjAwMS8xMi8xMCAyMzoxMDoyOAkxLjUwCisrKyBrZGV1 aS9raWNvbnZpZXcuY3BwCTIwMDIvMDEvMTYgMTQ6MzA6NDcKQEAgLTE5LDYgKzE5LDcgQEAKICNp bmNsdWRlIDxxcGFpbnRlci5oPgogI2luY2x1ZGUgPHFwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUg PHFjbGVhbnVwaGFuZGxlci5oPgorI2luY2x1ZGUgPHFtb3ZpZS5oPgogCiAjaW5jbHVkZSAia2lj b252aWV3LmgiCiAjaW5jbHVkZSAia3dvcmR3cmFwLmgiCkBAIC0zMSw2ICszMiw4IEBACiAjaW5j bHVkZSA8a2N1cnNvci5oPgogI2luY2x1ZGUgPGtwaXhtYXAuaD4KICNpbmNsdWRlIDxrcGl4bWFw ZWZmZWN0Lmg+CisjaW5jbHVkZSA8a2ljb250aGVtZS5oPgorI2luY2x1ZGUgPGtpY29ubG9hZGVy Lmg+CiAKICNpZmRlZiBRX1dTX1gxMQogI2luY2x1ZGUgPFgxMS9YbGliLmg+CkBAIC04OSwyNCAr OTIsNDMgQEAgS0ljb25WaWV3OjpNb2RlIEtJY29uVmlldzo6bW9kZSgpIGNvbnN0CiAKIHZvaWQg S0ljb25WaWV3OjpzbG90T25JdGVtKCBRSWNvblZpZXdJdGVtICppdGVtICkKIHsKLSAgICBpZiAo IGl0ZW0gJiYgbV9iQ2hhbmdlQ3Vyc29yT3Zlckl0ZW0gJiYgbV9iVXNlU2luZ2xlICkKLSAgICAg ICAgdmlld3BvcnQoKS0+c2V0Q3Vyc29yKCBLQ3Vyc29yKCkuaGFuZEN1cnNvcigpICk7CisgICAg aWYgKCBpdGVtICkgeworICAgICAgICBpZiAoIG1fYlVzZVNpbmdsZSApIHsKKyAgICAgICAgICAg IGlmICggbV9iQ2hhbmdlQ3Vyc29yT3Zlckl0ZW0gKQorICAgICAgICAgICAgICAgIHZpZXdwb3J0 KCktPnNldEN1cnNvciggS0N1cnNvcigpLmhhbmRDdXJzb3IoKSApOwogCi0gICAgaWYgKCBpdGVt ICYmIChtX2F1dG9TZWxlY3REZWxheSA+IC0xKSAmJiBtX2JVc2VTaW5nbGUgKSB7Ci0gICAgICBt X3BBdXRvU2VsZWN0LT5zdGFydCggbV9hdXRvU2VsZWN0RGVsYXksIHRydWUgKTsKLSAgICAgIG1f cEN1cnJlbnRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgIGlmICggKG1fYXV0b1NlbGVjdERlbGF5 ID4gLTEpICkgeworICAgICAgICAgICAgICAgIG1fcEF1dG9TZWxlY3QtPnN0YXJ0KCBtX2F1dG9T ZWxlY3REZWxheSwgdHJ1ZSApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEtJ Y29uVmlld0l0ZW0gKmtpdmkgPSBkeW5hbWljX2Nhc3Q8S0ljb25WaWV3SXRlbSAqPiggaXRlbSAp OworICAgICAgICBpZiAoIGtpdmkgJiYga2l2aS0+aGFzQW5pbWF0aW9uKCkgJiYgIWtpdmktPmFu aW1hdGlvblN0YXJ0ZWQoKSApCisgICAgICAgICAgICBraXZpLT5zdGFydEFuaW1hdGlvbiggdGhp cywgU0xPVCggc2xvdE1vdmllVXBkYXRlKCkgKSApOworICAgICAgICBtX3BDdXJyZW50SXRlbSA9 IGl0ZW07CiAgICAgfQogfQogCiB2b2lkIEtJY29uVmlldzo6c2xvdE9uVmlld3BvcnQoKQogewot ICAgIGlmICggbV9iQ2hhbmdlQ3Vyc29yT3Zlckl0ZW0gKQorICAgIGlmICggbV9iVXNlU2luZ2xl ICYmIG1fYkNoYW5nZUN1cnNvck92ZXJJdGVtICkKICAgICAgICAgdmlld3BvcnQoKS0+dW5zZXRD dXJzb3IoKTsKIAorICAgIGlmICggbV9wQ3VycmVudEl0ZW0gKSB7CisgICAgICAgIEtJY29uVmll d0l0ZW0gKmtpdmkgPSBkeW5hbWljX2Nhc3Q8S0ljb25WaWV3SXRlbSAqPiggbV9wQ3VycmVudEl0 ZW0gKTsKKyAgICAgICAgaWYgKCBraXZpICYmIGtpdmktPmhhc0FuaW1hdGlvbigpICkKKyAgICAg ICAgICAgIGtpdmktPnN0b3BBbmltYXRpb24oKTsKKyAgICB9CiAgICAgbV9wQXV0b1NlbGVjdC0+ c3RvcCgpOwogICAgIG1fcEN1cnJlbnRJdGVtID0gMEw7CiB9CiAKK3ZvaWQgS0ljb25WaWV3Ojpz bG90TW92aWVVcGRhdGUoKQoreworICAgIEtJY29uVmlld0l0ZW0gKmtpdmkgPSBkeW5hbWljX2Nh c3Q8S0ljb25WaWV3SXRlbSAqPiggbV9wQ3VycmVudEl0ZW0gKTsKKyAgICBpZiAoIGtpdmkgKSAv LyBzZWVtcyBzdG9wQW5pbWF0aW9uIHRyaWdnZXJzIG9uZSBsYXN0IHVwZGF0ZQorICAgICAgICBr aXZpLT51cGRhdGVQaXhtYXAoKTsKK30KKwogdm9pZCBLSWNvblZpZXc6OnNsb3RTZXR0aW5nc0No YW5nZWQoaW50IGNhdGVnb3J5KQogewogICAgIGlmICggY2F0ZWdvcnkgIT0gS0FwcGxpY2F0aW9u OjpTRVRUSU5HU19NT1VTRSApCkBAIC0zNDMsMTIgKzM2NSwxNCBAQCBRUGl4bWFwIEtJY29uVmll dzo6c2VsZWN0ZWRJY29uUGl4bWFwKCBRCiB2b2lkIEtJY29uVmlld0l0ZW06OmluaXQoKQogewog ICAgIG1fd29yZFdyYXAgPSAwTDsKKyAgICBtX21vdmllID0gMEw7CiAgICAgY2FsY1JlY3QoKTsK IH0KIAogS0ljb25WaWV3SXRlbTo6fktJY29uVmlld0l0ZW0oKQogewogICAgIGRlbGV0ZSBtX3dv cmRXcmFwOworICAgIGRlbGV0ZSBtX21vdmllOwogfQogCiB2b2lkIEtJY29uVmlld0l0ZW06OmNh bGNSZWN0KCBjb25zdCBRU3RyaW5nJiB0ZXh0XyApCkBAIC01NTYsNiArNTgwLDQ2IEBAIHZvaWQg S0ljb25WaWV3SXRlbTo6cGFpbnRJdGVtKCBRUGFpbnRlciAKICAgICBtX3dvcmRXcmFwLT5kcmF3 VGV4dCggcCwgdGV4dFgsIHRleHRZLCBhbGlnbiApOwogCiAgICAgcC0+cmVzdG9yZSgpOworfQor CisKK3ZvaWQgS0ljb25WaWV3SXRlbTo6c2V0TW91c2VPdmVyQW5pbWF0aW9uKCBjb25zdCBRU3Ry aW5nJiBtb3ZpZUZpbGVOYW1lICkKK3sKKyAgICAvL2tkRGVidWcoKSA8PCAiS0ljb25WaWV3SXRl bTo6c2V0TW91c2VPdmVyQW5pbWF0aW9uICIgPDwgbW92aWVGaWxlTmFtZSA8PCBlbmRsOworICAg IG1fYW5pbWF0ZWRJY29uID0gbW92aWVGaWxlTmFtZTsKK30KKwordm9pZCBLSWNvblZpZXdJdGVt OjpzdGFydEFuaW1hdGlvbiggUU9iamVjdCAqIHJlY2VpdmVyLCBjb25zdCBjaGFyICogbWVtYmVy ICkKK3sKKyAgICAvL2tkRGVidWcoKSA8PCAiS0ljb25WaWV3SXRlbTo6c3RhcnRBbmltYXRpb24i IDw8IGVuZGw7CisgICAgUV9BU1NFUlQoICFtX21vdmllICk7IC8vIHNlZSBhbmltYXRpb25TdGFy dGVkKCkKKyAgICAvLyBJZiB0aGUgZmlsZSBjYW4ndCBiZSBsb2FkZWQgKGUuZy4gbm8gbW5nIHN1 cHBvcnQpLCB0aGUgbW92aWUgd2lsbAorICAgIC8vIHNpbXBseSBuZXZlciBjYWxsIHVwZGF0ZVBp eG1hcCwgc28gbm8gcHJvYmxlbS4KKyAgICBRTW92aWUgbW92aWUgPSBLR2xvYmFsOjppY29uTG9h ZGVyKCktPmxvYWRNb3ZpZSggbV9hbmltYXRlZEljb24sIEtJY29uOjpEZXNrdG9wLCBtX3NpemUg KTsKKyAgICBpZiAoICFtb3ZpZS5pc051bGwoKSApCisgICAgeworICAgICAgICBtX21vdmllID0g bmV3IFFNb3ZpZSggbW92aWUgKTsgLy8gc2hhbGxvdyBjb3B5LCBkb24ndCB3b3JyeQorICAgICAg ICBtX21vdmllLT5jb25uZWN0VXBkYXRlKCByZWNlaXZlciwgbWVtYmVyICk7CisgICAgfQorICAg IGVsc2UKKyAgICB7CisgICAgICAgIC8vIE5vIG1vdmllIGF2YWlsYWJsZSwgcmVtZW1iZXIgaXQK KyAgICAgICAgbV9hbmltYXRlZEljb24gPSBRU3RyaW5nOjpudWxsOworICAgIH0KK30KKwordm9p ZCBLSWNvblZpZXdJdGVtOjp1cGRhdGVQaXhtYXAoKQoreworICAgIC8va2REZWJ1ZygpIDw8ICJL SWNvblZpZXdJdGVtOjp1cGRhdGVQaXhtYXAiIDw8IGVuZGw7CisgICAgc2V0UGl4bWFwKCBtX21v dmllLT5mcmFtZVBpeG1hcCgpICk7Cit9CisKK3ZvaWQgS0ljb25WaWV3SXRlbTo6c3RvcEFuaW1h dGlvbigpCit7CisgICAgLy9rZERlYnVnKCkgPDwgIktJY29uVmlld0l0ZW06OnN0b3BBbmltYXRp b24iIDw8IGVuZGw7CisgICAgUV9BU1NFUlQoIG1fbW92aWUgKTsKKyAgICBkZWxldGUgbV9tb3Zp ZTsKKyAgICBtX21vdmllID0gMEw7CiB9CiAKICNpbmNsdWRlICJraWNvbnZpZXcubW9jIgpJbmRl eDoga2RldWkva2ljb252aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWxp YnMva2RldWkva2ljb252aWV3LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjgKZGlmZiAtdSAt cCAtcjEuMjgga2ljb252aWV3LmgKLS0tIGtkZXVpL2tpY29udmlldy5oCTIwMDEvMTIvMTAgMjM6 MTA6MjgJMS4yOAorKysga2RldWkva2ljb252aWV3LmgJMjAwMi8wMS8xNiAxNDozMDo0NwpAQCAt MTE3LDcgKzExNyw3IEBAIHNpZ25hbHM6CiBwcm90ZWN0ZWQgc2xvdHM6CiAgIHZvaWQgc2xvdE9u SXRlbSggUUljb25WaWV3SXRlbSAqaXRlbSApOwogICB2b2lkIHNsb3RPblZpZXdwb3J0KCk7Ci0K KyAgdm9pZCBzbG90TW92aWVVcGRhdGUoKTsKICAgdm9pZCBzbG90U2V0dGluZ3NDaGFuZ2VkKGlu dCk7CiAKICAgLyoqCkBAIC0xNjQsNiArMTY0LDggQEAgY2xhc3MgS1dvcmRXcmFwOwogICogS0lj b25WaWV3SXRlbSBleGlzdHMgdG8gaW1wcm92ZSB0aGUgd29yZC13cmFwIGZ1bmN0aW9uYWxpdHkg b2YgUUljb25WaWV3SXRlbQogICogVXNlIEtJY29uVmlld0l0ZW0gaW5zdGVhZCBvZiBRSWNvblZp ZXdJdGVtIGZvciBhbnkgaWNvbnZpZXcgaXRlbSB5b3UgbWlnaHQgaGF2ZSA6KQogICoKKyAqIFRo aXMgY2xhc3MgYWxzbyBwcm92aWRlcyBzdXBwb3J0IGZvciBhbmltYXRlZCBpY29ucy4KKyAqCiAg KiBAc2hvcnQgQSB2YXJpYW50IG9mIFFJY29uVmlld0l0ZW0gdGhhdCB3cmFwcyB3b3JkcyBiZXR0 ZXIuCiAgKiBAYXV0aG9yIERhdmlkIEZhdXJlIDxkYXZpZEBtYW5kcmFrZXNvZnQuY29tPgogICov CkBAIC0xODgsMTIgKzE5MCw0MSBAQCBwdWJsaWM6CiAgICAgS0ljb25WaWV3SXRlbSggUUljb25W aWV3ICpwYXJlbnQsIFFJY29uVmlld0l0ZW0gKmFmdGVyLCBjb25zdCBRU3RyaW5nICZ0ZXh0LCBj b25zdCBRUGljdHVyZSAmcGljdHVyZSApCiAgICAgICAgIDogUUljb25WaWV3SXRlbSggcGFyZW50 LCBhZnRlciwgdGV4dCwgcGljdHVyZSApIHsgaW5pdCgpOyB9CiAgICAgdmlydHVhbCB+S0ljb25W aWV3SXRlbSgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0aGVvcmljYWwgc2l6ZSBp biBwaXhlbHMsIGlmIHNldFNpemUoKSB3YXMgY2FsbGVkLgorICAgICAqIDAgbWVhbnMgdGhlIGds b2JhbGx5IGNvbmZpZ3VyZWQgZGVmYXVsdCBzaXplLgorICAgICAqLworICAgIGludCBpY29uU2l6 ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgLyoqCisgICAgICogRW5hYmxlIGFu IGFuaW1hdGlvbiBvbiBtb3VzZW92ZXIsIGlmIHRoZXJlIGlzIGFuIGF2YWlsYWJsZSBtbmcuCisg ICAgICogQHBhcmFtIG1vdmllRmlsZU5hbWUgdGhlIGJhc2UgbmFtZSBmb3IgdGhlIG1uZywgZS5n LiAiZm9sZGVyIi4KKyAgICAgKiBOb3RoaW5nIGhhcHBlbnMgaWYgdGhlcmUgaXMgbm8gYW5pbWF0 aW9uIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICB2b2lkIHNldE1vdXNlT3ZlckFuaW1hdGlvbigg Y29uc3QgUVN0cmluZyYgbW92aWVGaWxlTmFtZSApOworICAgIGJvb2wgaGFzQW5pbWF0aW9uKCkg Y29uc3QgeyByZXR1cm4gIW1fYW5pbWF0ZWRJY29uLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgYW5p bWF0aW9uU3RhcnRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW92aWU7IH0KKyAgICB2b2lkIHN0YXJ0 QW5pbWF0aW9uKCBRT2JqZWN0ICogcmVjZWl2ZXIsIGNvbnN0IGNoYXIgKiBtZW1iZXIgKTsKKyAg ICB2b2lkIHVwZGF0ZVBpeG1hcCgpOworICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpOworCiBwcm90 ZWN0ZWQ6CisgICAgLyoqCisgICAgICogU2V0IHRoZSB0aGVvcmljYWwgc2l6ZSBpbiBwaXhlbHMg LSB0aGlzIGlzIG9ubHkgdXNlZnVsIGZvciBkZXJpdmVkIGNsYXNzZXMKKyAgICAgKi8KKyAgICB2 b2lkIHNldEljb25TaXplKCBpbnQgc2l6ZSApIHsgbV9zaXplID0gc2l6ZTsgfQorCiAgICAgdm9p ZCBpbml0KCk7CiAgICAgdmlydHVhbCB2b2lkIGNhbGNSZWN0KCBjb25zdCBRU3RyaW5nJiB0ZXh0 XyA9IFFTdHJpbmc6Om51bGwgKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRJdGVtKCBRUGFpbnRl ciAqcCwgY29uc3QgUUNvbG9yR3JvdXAgJmMgKTsKIHByaXZhdGU6CisgICAgaW50IG1fc2l6ZTsg Ly8gdGhlb3JpY2FsIHNpemUgaW4gcGl4ZWxzLiBaZXJvIG1lYW5zIHRoZSBnbG9iYWxseSBjb25m aWd1cmVkIGRlZmF1bHQgc2l6ZS4KKwogICAgIEtXb3JkV3JhcCogbV93b3JkV3JhcDsKKworICAg IFFTdHJpbmcgbV9hbmltYXRlZEljb247CisgICAgUU1vdmllKiBtX21vdmllOwogfTsKIAogI2Vu ZGlmCg== --------------Boundary-00=_C0D1IRG9ZKHXW0R0HICR--