This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --1602254595-572567416-1019588186=:18953 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <20020423115819.G18953@argon.cs.washington.edu> Problem: 1. KStep is the only KWin style that follows Fitts's Law (buttons are active to the edge of the screen). 2. KStep does not honor custom titlebar button placement. 3. Hence: I cannot stand any decorations other than KStep's, but I cannot get rid of the sticky button, which annoys me. Solution: Attached patch to make KStep honor custom titlebar buttons. This patch should be run within kwin/clients/kstep/ Let me know if there are bugs, or if you need anything else from me. BTW for the help bitmap, I copied the question mark from the default window style. For the maximize bitmap, none of the existing buttons from other styles was suitable (for one thing, KStep's minimize button looks a lot like typical maximize buttons). So, I drew one up quickly. I like the one I chose---I think it's clean and fits well with the other KStep window buttons---but feedback is welcome. Some alternate button designs are shown in the comments. ~k.lee (CC: me on replies, please; I'm not subscribed to the list.) --1602254595-572567416-1019588186=:18953 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="kstep-window-buttons.diff" Content-Transfer-Encoding: BASE64 Content-ID: <20020423115626.I18953@argon.cs.washington.edu> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="kstep-window-buttons.diff" PyBkZWJ1Zy5sb2cNCj8ga3N0ZXAtd2luZG93LWJ1dHRvbnMuZGlmZg0KPyBu ZXh0Y2xpZW50LWtsZWUuY3BwDQo/IG5leHRjbGllbnQta2xlZS5oDQpJbmRl eDogbmV4dGNsaWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJD UyBmaWxlOiAvaG9tZS9rZGUva2RlYmFzZS9rd2luL2NsaWVudHMva3N0ZXAv bmV4dGNsaWVudC5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE4DQpk aWZmIC11IC0zIC1wIC1jIC1yMS4xOCBuZXh0Y2xpZW50LmNwcA0KKioqIG5l eHRjbGllbnQuY3BwCTMwIFNlcCAyMDAxIDIwOjU0OjM1IC0wMDAwCTEuMTgN Ci0tLSBuZXh0Y2xpZW50LmNwcAkyMyBBcHIgMjAwMiAxODo0MzoyNCAtMDAw MA0KKioqKioqKioqKioqKioqDQoqKiogMSwxMSAqKioqDQogICNpbmNsdWRl ICJuZXh0Y2xpZW50LmgiDQogICNpbmNsdWRlIDxxYWJzdHJhY3RsYXlvdXQu aD4NCiEgI2luY2x1ZGUgPHFsYXlvdXQuaD4NCiAgI2luY2x1ZGUgPHFkcmF3 dXRpbC5oPg0KICAjaW5jbHVkZSA8cXBhaW50ZXIuaD4NCi0gI2luY2x1ZGUg PGtwaXhtYXBlZmZlY3QuaD4NCi0gI2luY2x1ZGUgPGtsb2NhbGUuaD4NCiAg I2luY2x1ZGUgPHFiaXRtYXAuaD4NCiAgI2luY2x1ZGUgIi4uLy4uL3dvcmtz cGFjZS5oIg0KICAjaW5jbHVkZSAiLi4vLi4vb3B0aW9ucy5oIg0KICANCi0t LSAxLDEzIC0tLS0NCiAgI2luY2x1ZGUgIm5leHRjbGllbnQuaCINCiAgI2lu Y2x1ZGUgPHFhYnN0cmFjdGxheW91dC5oPg0KISAjaW5jbHVkZSA8cWRhdGV0 aW1lLmg+DQogICNpbmNsdWRlIDxxZHJhd3V0aWwuaD4NCisgI2luY2x1ZGUg PHFsYXlvdXQuaD4NCiAgI2luY2x1ZGUgPHFwYWludGVyLmg+DQogICNpbmNs dWRlIDxxYml0bWFwLmg+DQorICNpbmNsdWRlIDxrZGVidWcuaD4NCisgI2lu Y2x1ZGUgPGtsb2NhbGUuaD4NCisgI2luY2x1ZGUgPGtwaXhtYXBlZmZlY3Qu aD4NCiAgI2luY2x1ZGUgIi4uLy4uL3dvcmtzcGFjZS5oIg0KICAjaW5jbHVk ZSAiLi4vLi4vb3B0aW9ucy5oIg0KICANCioqKioqKioqKioqKioqKiBzdGF0 aWMgdW5zaWduZWQgY2hhciBpY29uaWZ5X2JpdHNbXSA9IHsNCioqKiAyMSwy NiAqKioqDQotLS0gMjMsMzIgLS0tLQ0KICAgIDB4ZmYsIDB4MDMsIDB4ZmYs IDB4MDMsIDB4ZmYsIDB4MDMsIDB4ZmYsIDB4MDMsIDB4MDMsIDB4MDMsIDB4 MDMsIDB4MDMsDQogICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHhmZiwg MHgwMywgMHhmZiwgMHgwM307DQogIA0KKyBzdGF0aWMgdW5zaWduZWQgY2hh ciBxdWVzdGlvbl9iaXRzW10gPSB7DQorICAgMHgwMCwgMHgwMCwgMHg3OCwg MHgwMCwgMHhjYywgMHgwMCwgMHhjMCwgMHgwMCwgMHg2MCwgMHgwMCwgMHgz MCwgMHgwMCwNCisgICAweDAwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAw eDAwLCAweDAwLCAweDAwfTsNCisgDQogIHN0YXRpYyB1bnNpZ25lZCBjaGFy IHN0aWNreV9iaXRzW10gPSB7DQogICAgMHgwMCwgMHgwMCwgMHgzMCwgMHgw MCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHhmZSwgMHgwMSwgMHhmZSwg MHgwMSwNCiAgICAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAw LCAweDAwLCAweDAwfTsNCioqKioqKioqKioqKioqKiBzdGF0aWMgdW5zaWdu ZWQgY2hhciB1bnN0aWNreV9iaXRzW10gPSB7DQoqKiogMjksMzQgKioqKg0K LS0tIDM1LDcxIC0tLS0NCiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweGZlLCAweDAxLCAweGZlLCAweDAx LA0KICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDB9Ow0KICANCisgc3RhdGljIHVuc2lnbmVkIGNoYXIgbWF4aW1p emVfYml0c1tdID0gew0KKyAgICAweDMwLCAweDAwLCAweDc4LCAweDAwLCAw eGZjLCAweDAwLCAweGZlLCAweDAxLCAweDAwLCAweDAwLCAweGZlLCAweDAx LA0KKyAgICAweDAyLCAweDAxLCAweDg0LCAweDAwLCAweDQ4LCAweDAwLCAw eDMwLCAweDAwIH07DQorIA0KKyAvLyBJZiB0aGUgbWF4aW1pemUgZ3JhcGhp YyBhYm92ZSAod2hpY2ggSSBkaWQgcXVpY2tseSBpbiBhYm91dCBhDQorIC8v IG1pbnV0ZSwganVzdCBzbyBJIGNvdWxkIGhhdmUgc29tZXRoaW5nKSBkb2Vz bid0IHBsZWFzZSwgbWF5YmUgb25lDQorIC8vIG9mIHRoZSBmb2xsb3dpbmcg d291bGQgYmUgYmV0dGVyLiAgSU1PIGl0IGRvZXNuJ3QgbWF0dGVyLCBhcyBs b25nDQorIC8vIGFzIGl0J3Mgbm90IG9mZmVuc2l2ZS0tLXBlb3BsZSB3aWxs IGdldCB1c2VkIHRvIHdoYXRldmVyIHlvdSB1c2UuDQorIC8vIFRydWUgTmVY VCBmYW5zIHdvbid0IHR1cm4gb24gdGhlIG1heGltaXplIGJ1dHRvbiBhbnl3 YXkuDQorIC8vDQorIC8vIHN0YXRpYyB1bnNpZ25lZCBjaGFyIG1heGltaXpl X2JpdHNbXSA9IHsNCisgLy8gICAgMHhjZiwgMHgwMywgMHg4NywgMHgwMywg MHhjZiwgMHgwMywgMHhmZCwgMHgwMiwgMHg0OCwgMHgwMCwgMHg0OCwgMHgw MCwNCisgLy8gICAgMHhmZCwgMHgwMiwgMHhjZiwgMHgwMywgMHg4NywgMHgw MywgMHhjZiwgMHgwMyB9Ow0KKyAvLw0KKyAvLyBzdGF0aWMgdW5zaWduZWQg Y2hhciBtYXhpbWl6ZV9iaXRzW10gPSB7DQorIC8vICAgIDB4Y2YsIDB4MDMs IDB4ODcsIDB4MDMsIDB4ODcsIDB4MDMsIDB4NzksIDB4MDIsIDB4NDgsIDB4 MDAsIDB4NDgsIDB4MDAsDQorIC8vICAgIDB4NzksIDB4MDIsIDB4ODcsIDB4 MDMsIDB4ODcsIDB4MDMsIDB4Y2YsIDB4MDMgfTsNCisgLy8NCisgLy8gc3Rh dGljIHVuc2lnbmVkIGNoYXIgbWF4aW1pemVfYml0c1tdID0gew0KKyAvLyAg ICAweDg3LCAweDAzLCAweDAzLCAweDAzLCAweGZkLCAweDAyLCAweDg0LCAw eDAwLCAweDg0LCAweDAwLCAweDg0LCAweDAwLA0KKyAvLyAgICAweDg0LCAw eDAwLCAweGZkLCAweDAyLCAweDAzLCAweDAzLCAweDg3LCAweDAzIH07DQor IC8vDQorIC8vIHN0YXRpYyB1bnNpZ25lZCBjaGFyIG1heGltaXplX2JpdHNb XSA9IHsNCisgLy8gICAgMHgzMCwgMHgwMCwgMHg3OCwgMHgwMCwgMHhjYywg MHgwMCwgMHg4NiwgMHgwMSwgMHgzMywgMHgwMywgMHg3OSwgMHgwMiwNCisg Ly8gICAgMHhjZCwgMHgwMiwgMHg4NywgMHgwMywgMHgwMywgMHgwMywgMHgw MSwgMHgwMiB9Ow0KKyAvLw0KKyAvLyBzdGF0aWMgdW5zaWduZWQgY2hhciBt YXhpbWl6ZV9iaXRzW10gPSB7DQorIC8vICAgIDB4MzAsIDB4MDAsIDB4Nzgs IDB4MDAsIDB4NzgsIDB4MDAsIDB4ZmMsIDB4MDAsIDB4ZmMsIDB4MDAsIDB4 ZmUsIDB4MDEsDQorIC8vICAgIDB4ZmUsIDB4MDEsIDB4ZmYsIDB4MDMsIDB4 ZmYsIDB4MDMsIDB4ZmYsIDB4MDMgfTsNCisgDQorIA0KICBzdGF0aWMgS1Bp eG1hcCAqYVRpdGxlUGl4PTA7DQogIHN0YXRpYyBLUGl4bWFwICppVGl0bGVQ aXg9MDsNCiAgc3RhdGljIEtQaXhtYXAgKmFGcmFtZVBpeD0wOw0KKioqKioq KioqKioqKioqIHN0YXRpYyB2b2lkIGRlbGV0ZV9waXhtYXBzKCkNCioqKiAx NjgsMTg3ICoqKioNCiAgICAgIHBpeG1hcHNfY3JlYXRlZCA9IGZhbHNlOw0K ICB9DQogIA0KLSB2b2lkIE5leHRDbGllbnQ6OnNsb3RSZXNldCgpDQotIHsN Ci0gICAgIGJ1dHRvblswXS0+cmVzZXQoKTsNCi0gICAgIGJ1dHRvblsxXS0+ cmVzZXQoKTsNCi0gICAgIGJ1dHRvblsyXS0+cmVzZXQoKTsNCi0gfQ0KLSAN CiAgTmV4dEJ1dHRvbjo6TmV4dEJ1dHRvbihDbGllbnQgKnBhcmVudCwgY29u c3QgY2hhciAqbmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1bnNpZ25lZCBjaGFyICpiaXRtYXAsIGludCBidywgaW50IGJoLA0KICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcmIHRpcCkNCiEg ICAgIDogS1dpbkJ1dHRvbihwYXJlbnQsIG5hbWUsIHRpcCkNCiAgew0KICAg ICAgc2V0QmFja2dyb3VuZE1vZGUoIE5vQmFja2dyb3VuZCApOw0KLSAgICAg Y2xpZW50ID0gcGFyZW50Ow0KICAgICAgcmVzaXplKDE4LCAxOCk7DQogIA0K ICAgICAgaWYoYml0bWFwKQ0KLS0tIDIwNSwyMTcgLS0tLQ0KICAgICAgcGl4 bWFwc19jcmVhdGVkID0gZmFsc2U7DQogIH0NCiAgDQogIE5leHRCdXR0b246 Ok5leHRCdXR0b24oQ2xpZW50ICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUs DQogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqYml0bWFwLCBpbnQgYncsIGludCBiaCwNCiAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBRU3RyaW5nJiB0aXApDQohICAgICA6IEtXaW5CdXR0 b24ocGFyZW50LCBuYW1lLCB0aXApLA0KISAgICAgICBkZWNvKE5VTEwpLCBj bGllbnQocGFyZW50KSwgbGFzdF9idXR0b24oTm9CdXR0b24pDQogIHsNCiAg ICAgIHNldEJhY2tncm91bmRNb2RlKCBOb0JhY2tncm91bmQgKTsNCiAgICAg IHJlc2l6ZSgxOCwgMTgpOw0KICANCiAgICAgIGlmKGJpdG1hcCkNCioqKioq KioqKioqKioqKiB2b2lkIE5leHRCdXR0b246OnJlc2V0KCkNCioqKiAxOTUs MjAyICoqKioNCiAgDQogIHZvaWQgTmV4dEJ1dHRvbjo6c2V0Qml0bWFwKGNv bnN0IHVuc2lnbmVkIGNoYXIgKmJpdG1hcCwgaW50IHcsIGludCBoKQ0KICB7 DQohICAgICBkZWNvID0gUUJpdG1hcCh3LCBoLCBiaXRtYXAsIHRydWUpOw0K ISAgICAgZGVjby5zZXRNYXNrKGRlY28pOw0KICAgICAgcmVwYWludCgpOw0K ICB9DQogIA0KLS0tIDIyNSwyMzIgLS0tLQ0KICANCiAgdm9pZCBOZXh0QnV0 dG9uOjpzZXRCaXRtYXAoY29uc3QgdW5zaWduZWQgY2hhciAqYml0bWFwLCBp bnQgdywgaW50IGgpDQogIHsNCiEgICAgIGRlY28gPSBuZXcgUUJpdG1hcCh3 LCBoLCBiaXRtYXAsIHRydWUpOw0KISAgICAgZGVjby0+c2V0TWFzaygqZGVj byk7DQogICAgICByZXBhaW50KCk7DQogIH0NCiAgDQoqKioqKioqKioqKioq Kiogdm9pZCBOZXh0QnV0dG9uOjpkcmF3QnV0dG9uKFFQYWludGVyICpwKQ0K KioqIDIwNywyMTYgKioqKg0KICAgICAgZWxzZQ0KICAgICAgICAgIHAtPmRy YXdQaXhtYXAoMCwgMCwgaXNEb3duKCkgPyAqaUJ0bkRvd24gOiAqaUJ0bik7 DQogIA0KISAgICAgcC0+c2V0UGVuKCpidG5Gb3JlZ3JvdW5kKTsNCiEgICAg IHAtPmRyYXdQaXhtYXAoaXNEb3duKCk/IDUgOiA0LCBpc0Rvd24oKSA/IDUg OiA0LCBkZWNvKTsNCiAgfQ0KICANCiAgTmV4dENsaWVudDo6TmV4dENsaWVu dCggV29ya3NwYWNlICp3cywgV0lkIHcsIFFXaWRnZXQgKnBhcmVudCwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg KQ0KICAgICAgOiBDbGllbnQoIHdzLCB3LCBwYXJlbnQsIG5hbWUsIFdSZXNp emVOb0VyYXNlICkNCi0tLSAyMzcsMjcwIC0tLS0NCiAgICAgIGVsc2UNCiAg ICAgICAgICBwLT5kcmF3UGl4bWFwKDAsIDAsIGlzRG93bigpID8gKmlCdG5E b3duIDogKmlCdG4pOw0KICANCiEgICAgIC8vIElmIHdlIGhhdmUgYSBkZWNv cmF0aW9uLCBkcmF3IGl0OyBvdGhlcndpc2UsIHdlIGhhdmUgdGhlIG1lbnUN CiEgICAgIC8vIGJ1dHRvbiAocmVtZW1iZXIsIHdlIHNldCB0aGUgYml0bWFw IHRvIE5VTEwpLg0KISAgICAgaWYgKGRlY28pIHsNCiEgICAgICAgICBwLT5z ZXRQZW4oKmJ0bkZvcmVncm91bmQpOw0KISAgICAgICAgIHAtPmRyYXdQaXht YXAoaXNEb3duKCk/IDUgOiA0LCBpc0Rvd24oKSA/IDUgOiA0LCAqZGVjbyk7 DQohICAgICB9IGVsc2Ugew0KISAgICAgICAgIEtQaXhtYXAgYnRucGl4ID0g Y2xpZW50LT5taW5pSWNvbigpOw0KISAgICAgICAgIHAtPmRyYXdQaXhtYXAo IDAsIDAsIGJ0bnBpeCApOw0KISAgICAgfQ0KISB9DQohIA0KISB2b2lkIE5l eHRCdXR0b246Om1vdXNlUHJlc3NFdmVudCggUU1vdXNlRXZlbnQqIGUgKQ0K ISB7DQohICAgICBsYXN0X2J1dHRvbiA9IGUtPmJ1dHRvbigpOw0KISAgICAg UU1vdXNlRXZlbnQgbWUoIGUtPnR5cGUoKSwgZS0+cG9zKCksIGUtPmdsb2Jh bFBvcygpLA0KISAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIGUt PnN0YXRlKCkgKTsNCiEgICAgIEtXaW5CdXR0b246Om1vdXNlUHJlc3NFdmVu dCggJm1lICk7DQogIH0NCiAgDQorIHZvaWQgTmV4dEJ1dHRvbjo6bW91c2VS ZWxlYXNlRXZlbnQoIFFNb3VzZUV2ZW50KiBlICkNCisgew0KKyAgICAgbGFz dF9idXR0b24gPSBlLT5idXR0b24oKTsNCisgICAgIFFNb3VzZUV2ZW50IG1l KCBlLT50eXBlKCksIGUtPnBvcygpLCBlLT5nbG9iYWxQb3MoKSwNCisgICAg ICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBlLT5zdGF0ZSgpICk7DQor ICAgICBLV2luQnV0dG9uOjptb3VzZVJlbGVhc2VFdmVudCggJm1lICk7DQor IH0NCisgDQorIA0KICBOZXh0Q2xpZW50OjpOZXh0Q2xpZW50KCBXb3Jrc3Bh Y2UgKndzLCBXSWQgdywgUVdpZGdldCAqcGFyZW50LA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSApDQogICAgICA6 IENsaWVudCggd3MsIHcsIHBhcmVudCwgbmFtZSwgV1Jlc2l6ZU5vRXJhc2Ug KQ0KKioqKioqKioqKioqKioqIE5leHRDbGllbnQ6Ok5leHRDbGllbnQoIFdv cmtzcGFjZSAqd3MsIFcNCioqKiAyMzAsMjU1ICoqKioNCiAgICAgIHdpbmRv d0xheW91dC0+YWRkV2lkZ2V0KHdpbmRvd1dyYXBwZXIoKSwgMSk7DQogICAg ICB3aW5kb3dMYXlvdXQtPmFkZFNwYWNpbmcoMSk7DQogIA0KICANCiEgICAg IGJ1dHRvblswXSA9IG5ldyBOZXh0QnV0dG9uKHRoaXMsICJjbG9zZSIsIGNs b3NlX2JpdHMsIDEwLCAxMCwgaTE4bigiQ2xvc2UiKSk7DQohICAgICBidXR0 b25bMV0gPSBuZXcgTmV4dEJ1dHRvbih0aGlzLCAic3RpY2t5IiwgTlVMTCwg MCwgMCwgaTE4bigiU3RpY2t5IikpOw0KISAgICAgc3RpY2t5Q2hhbmdlKGlz U3RpY2t5KCkpOw0KISAgICAgYnV0dG9uWzJdID0gbmV3IE5leHRCdXR0b24o dGhpcywgImljb25pZnkiLCBpY29uaWZ5X2JpdHMsIDEwLCAxMCwgaTE4bigi TWluaW1pemUiKSk7DQohIA0KISAgICAgY29ubmVjdCggYnV0dG9uWzBdLCBT SUdOQUwoIGNsaWNrZWQoKSApLCB0aGlzLCAoIFNMT1QoIGNsb3NlV2luZG93 KCkgKSApICk7DQohICAgICBjb25uZWN0KCBidXR0b25bMV0sIFNJR05BTCgg Y2xpY2tlZCgpICksIHRoaXMsICggU0xPVCggdG9nZ2xlU3RpY2t5KCkgKSAp ICk7DQohICAgICBjb25uZWN0KCBidXR0b25bMl0sIFNJR05BTCggY2xpY2tl ZCgpICksIHRoaXMsICggU0xPVCggaWNvbmlmeSgpICkgKSApOw0KISAgICAg dGl0bGVMYXlvdXQtPmFkZFdpZGdldCggYnV0dG9uWzJdICk7DQogICAgICB0 aXRsZWJhciA9IG5ldyBRU3BhY2VySXRlbSgxMCwgMTYsIFFTaXplUG9saWN5 OjpFeHBhbmRpbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRU2l6ZVBvbGljeTo6TWluaW11bSApOw0KICAgICAgdGl0bGVMYXlvdXQt PmFkZEl0ZW0odGl0bGViYXIpOw0KISAgICAgdGl0bGVMYXlvdXQtPmFkZFdp ZGdldCggYnV0dG9uWzFdICk7DQohICAgICB0aXRsZUxheW91dC0+YWRkV2lk Z2V0KCBidXR0b25bMF0gKTsNCiEgICAgIGZvciAoIGludCBpID0gMDsgaSA8 IDM7IGkrKykgew0KISAgICAgICAgIGJ1dHRvbltpXS0+c2V0TW91c2VUcmFj a2luZyggVFJVRSApOw0KISAgICAgICAgIGJ1dHRvbltpXS0+c2V0Rml4ZWRT aXplKCAxOCwgMTggKTsNCiAgICAgIH0NCiAgDQogIH0NCiAgDQogIHZvaWQg TmV4dENsaWVudDo6cmVzaXplRXZlbnQoIFFSZXNpemVFdmVudCogZSkNCi0t LSAyODQsNDU5IC0tLS0NCiAgICAgIHdpbmRvd0xheW91dC0+YWRkV2lkZ2V0 KHdpbmRvd1dyYXBwZXIoKSwgMSk7DQogICAgICB3aW5kb3dMYXlvdXQtPmFk ZFNwYWNpbmcoMSk7DQogIA0KKyAgICAgaW5pdGlhbGl6ZUJ1dHRvbnNBbmRU aXRsZWJhcih0aXRsZUxheW91dCk7DQorIH0NCiAgDQohIC8qKg0KISAgICBQ cmVjb25kaXRpb25zOg0KISAgICAgICAgKyB0aGlzLT5idXR0b24gaXMgYW4g YXJyYXkgb2YgbGVuZ3RoIE1BWF9OVU1fQlVUVE9OUw0KISANCiEgICAgUG9z dGNvbmRpdGlvbnM6DQohICAgICAgICArIFRpdGxlIGJhciBhbmQgYnV0dG9u cyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgYW5kIGxhaWQgb3V0DQohICAgICAg ICArIGZvciBhbGwgaSBpbiAwLi4oTUFYX05VTV9CVVRUT05TLTEpLCBidXR0 b25baV0gcG9pbnRzIHRvDQohICAgICAgICAgIGVpdGhlciAoMSkgYSB2YWxp ZCBOZXh0QnV0dG9uIGluc3RhbmNlLCBpZiB0aGUgY29ycmVzcG9uZGluZw0K ISAgICAgICAgICBidXR0b24gaXMgc2VsZWN0ZWQgaW4gdGhlIGN1cnJlbnQg YnV0dG9uIHNjaGVtZSwgb3IgKDIpIG51bGwNCiEgICAgICAgICAgb3RoZXJ3 aXNlLg0KISAgKi8NCiEgdm9pZCBOZXh0Q2xpZW50Ojppbml0aWFsaXplQnV0 dG9uc0FuZFRpdGxlYmFyKFFIQm94TGF5b3V0KiB0aXRsZUxheW91dCkNCiEg ew0KISAgICAgLy8gTnVsbCB0aGUgYnV0dG9ucyB0byBiZWdpbiB3aXRoICh0 aGV5IGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBudWxsKS4NCiEgICAgIGZv ciAoaW50IGk9MDsgaTxNQVhfTlVNX0JVVFRPTlM7IGkrKykgew0KISAgICAg ICAgIGJ1dHRvbltpXSA9IE5VTEw7DQohICAgICB9DQohIA0KISAgICAgLy8g VGhlIGRlZmF1bHQgYnV0dG9uIHBvc2l0aW9ucyBmb3Igb3RoZXIgc3R5bGVz IGRvIG5vdCBtYXRjaCB0aGUNCiEgICAgIC8vIGJlaGF2aW9yIG9mIG9sZGVy IHZlcnNpb25zIG9mIEtTdGVwLCBzbyB3ZSBoYXZlIHRvIHNldCB0aGVzZQ0K ISAgICAgLy8gbWFudWFsbHkgd2hlbiBjdXN0b21CdXR0b25Qb3NpdGlvbnMg aXNuJ3QgZW5hYmxlZC4NCiEgICAgIFFTdHJpbmcgbGVmdCwgcmlnaHQ7DQoh ICAgICBpZiAob3B0aW9ucy0+Y3VzdG9tQnV0dG9uUG9zaXRpb25zKCkpIHsN CiEgICAgICAgICBsZWZ0ID0gb3B0aW9ucy0+dGl0bGVCdXR0b25zTGVmdCgp Ow0KISAgICAgICAgIHJpZ2h0ID0gb3B0aW9ucy0+dGl0bGVCdXR0b25zUmln aHQoKTsNCiEgICAgIH0gZWxzZSB7DQohICAgICAgICAgbGVmdCA9IFFTdHJp bmcoIkkiKTsNCiEgICAgICAgICByaWdodCA9IFFTdHJpbmcoIlNYIik7DQoh ICAgICB9DQohIA0KISAgICAgLy8gRG8gYWN0dWFsIGNyZWF0aW9uIGFuZCBh ZGRpdGlvbiB0byB0aXRsZUxheW91dA0KISAgICAgYWRkQnV0dG9ucyh0aXRs ZUxheW91dCwgbGVmdCk7DQogICAgICB0aXRsZWJhciA9IG5ldyBRU3BhY2Vy SXRlbSgxMCwgMTYsIFFTaXplUG9saWN5OjpFeHBhbmRpbmcsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRU2l6ZVBvbGljeTo6TWluaW11 bSApOw0KICAgICAgdGl0bGVMYXlvdXQtPmFkZEl0ZW0odGl0bGViYXIpOw0K ISAgICAgYWRkQnV0dG9ucyh0aXRsZUxheW91dCwgcmlnaHQpOw0KISANCiEg ICAgIC8vIEZpbmFsbHksIGFjdGl2YXRlIGFsbCBsaXZlIGJ1dHRvbnMNCiEg ICAgIGZvciAoIGludCBpID0gMDsgaSA8IE1BWF9OVU1fQlVUVE9OUzsgaSsr KSB7DQohICAgICAgICAgaWYgKGJ1dHRvbltpXSkgew0KISAgICAgICAgICAg ICBidXR0b25baV0tPnNldE1vdXNlVHJhY2tpbmcoIFRSVUUgKTsNCiEgICAg ICAgICAgICAgYnV0dG9uW2ldLT5zZXRGaXhlZFNpemUoIDE4LCAxOCApOw0K ISAgICAgICAgIH0NCiEgICAgIH0NCiEgfQ0KISANCiEgLyoqIEFkZHMgdGhl IGJ1dHRvbnMgZm9yIG9uZSBzaWRlIG9mIHRoZSB0aXRsZSBiYXIsIGJhc2Vk IG9uIHRoZSBzcGVjDQohICAqIHN0cmluZzsgc2VlIHRoZSBLV2luSW50ZXJu YWw6Ok9wdGlvbnMgY2xhc3MsIG1ldGhvZHMNCiEgICogdGl0bGVCdXR0b25z TGVmdCBhbmQgdGl0bGVCVXR0b25zUmlnaHQuICovDQohIHZvaWQgTmV4dENs aWVudDo6YWRkQnV0dG9ucyhRSEJveExheW91dCogdGl0bGVMYXlvdXQsIGNv bnN0IFFTdHJpbmcmIHNwZWMpDQohIHsNCiEgICAgIGZvciAodW5zaWduZWQg aW50IGk9MDsgaTxzcGVjLmxlbmd0aCgpOyBpKyspIHsNCiEgICAgICAgICBz d2l0Y2ggKHNwZWNbaV0ubGF0aW4xKCkpIHsNCiEgICAgICAgICBjYXNlICdB JzoNCiEgICAgICAgICAgICAgaWYgKGlzTWF4aW1pemFibGUoKSkgew0KISAg ICAgICAgICAgICAgICAgYnV0dG9uW01BWElNSVpFX0lEWF0gPQ0KISAgICAg ICAgICAgICAgICAgICAgIG5ldyBOZXh0QnV0dG9uKHRoaXMsICJtYXhpbWl6 ZSIsIG1heGltaXplX2JpdHMsIDEwLCAxMCwNCiEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpMThuKCJNYXhpbWl6ZSIpKTsNCiEgICAg ICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5hZGRXaWRnZXQoIGJ1dHRvbltN QVhJTUlaRV9JRFhdICk7DQohICAgICAgICAgICAgICAgICBjb25uZWN0KCBi dXR0b25bTUFYSU1JWkVfSURYXSwgU0lHTkFMKGNsaWNrZWQoKSksDQohICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKG1heGltaXplQnV0 dG9uQ2xpY2tlZCgpKSApOw0KISAgICAgICAgICAgICAgICAgYnJlYWs7DQoh ICAgICAgICAgICAgIH0NCiEgDQohICAgICAgICAgY2FzZSAnSCc6DQohICAg ICAgICAgICAgIGJ1dHRvbltIRUxQX0lEWF0gPQ0KISAgICAgICAgICAgICAg ICAgbmV3IE5leHRCdXR0b24odGhpcywgImhlbHAiLCBxdWVzdGlvbl9iaXRz LCAxMCwgMTAsDQohICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp MThuKCJIZWxwIikpOw0KISAgICAgICAgICAgICB0aXRsZUxheW91dC0+YWRk V2lkZ2V0KCBidXR0b25bSEVMUF9JRFhdICk7DQohICAgICAgICAgICAgIGNv bm5lY3QoIGJ1dHRvbltIRUxQX0lEWF0sIFNJR05BTChjbGlja2VkKCkpLA0K ISAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKGNvbnRleHRIZWxw KCkpICk7DQohICAgICAgICAgICAgIGJyZWFrOw0KISANCiEgICAgICAgICBj YXNlICdJJzoNCiEgICAgICAgICAgICAgaWYgKGlzTWluaW1pemFibGUoKSkg ew0KISAgICAgICAgICAgICAgICAgYnV0dG9uW0lDT05JRllfSURYXSA9DQoh ICAgICAgICAgICAgICAgICAgICAgbmV3IE5leHRCdXR0b24odGhpcywgImlj b25pZnkiLCBpY29uaWZ5X2JpdHMsIDEwLCAxMCwNCiEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpMThuKCJNaW5pbWl6ZSIpKTsNCiEg ICAgICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5hZGRXaWRnZXQoIGJ1dHRv bltJQ09OSUZZX0lEWF0gKTsNCiEgICAgICAgICAgICAgICAgIGNvbm5lY3Qo IGJ1dHRvbltJQ09OSUZZX0lEWF0sIFNJR05BTChjbGlja2VkKCkpLA0KISAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgU0xPVChpY29uaWZ5KCkp ICk7DQohICAgICAgICAgICAgICAgICBicmVhazsNCiEgICAgICAgICAgICAg fQ0KISAgICAgICAgICAgICANCiEgICAgICAgICBjYXNlICdNJzoNCiEgICAg ICAgICAgICAgYnV0dG9uW01FTlVfSURYXSA9DQohICAgICAgICAgICAgICAg ICBuZXcgTmV4dEJ1dHRvbih0aGlzLCAibWVudSIsIE5VTEwsIDEwLCAxMCwg aTE4bigiTWVudSIpKTsNCiEgICAgICAgICAgICAgdGl0bGVMYXlvdXQtPmFk ZFdpZGdldCggYnV0dG9uW01FTlVfSURYXSApOw0KISAgICAgICAgICAgICAv LyBOT1RFIERJRkZFUkVOQ0U6IGNhcHR1cmUgcHJlc3NlZCgpLCBub3QgY2xp Y2tlZCgpDQohICAgICAgICAgICAgIGNvbm5lY3QoIGJ1dHRvbltNRU5VX0lE WF0sIFNJR05BTChwcmVzc2VkKCkpLA0KISAgICAgICAgICAgICAgICAgICAg ICB0aGlzLCBTTE9UKG1lbnVCdXR0b25QcmVzc2VkKCkpICk7DQohICAgICAg ICAgICAgIGJyZWFrOw0KISANCiEgICAgICAgICBjYXNlICdTJzoNCiEgICAg ICAgICAgICAgYnV0dG9uW1NUSUNLWV9JRFhdID0NCiEgICAgICAgICAgICAg ICAgIG5ldyBOZXh0QnV0dG9uKHRoaXMsICJzdGlja3kiLCBOVUxMLCAwLCAw LCBpMThuKCJTdGlja3kiKSk7DQohICAgICAgICAgICAgIHRpdGxlTGF5b3V0 LT5hZGRXaWRnZXQoIGJ1dHRvbltTVElDS1lfSURYXSApOw0KISAgICAgICAg ICAgICBjb25uZWN0KCBidXR0b25bU1RJQ0tZX0lEWF0sIFNJR05BTChjbGlj a2VkKCkpLA0KISAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKHRv Z2dsZVN0aWNreSgpKSApOw0KISAgICAgICAgICAgICAvLyBOT1RFIERJRkZF UkVOQ0U6IHNldCB0aGUgcGl4bWFwIHNlcGFyYXRlbHkgKDIgc3RhdGVzKQ0K ISAgICAgICAgICAgICBzdGlja3lDaGFuZ2UoaXNTdGlja3koKSk7DQohICAg ICAgICAgICAgIGJyZWFrOw0KISANCiEgICAgICAgICBjYXNlICdYJzoNCiEg ICAgICAgICAgICAgYnV0dG9uW0NMT1NFX0lEWF0gPQ0KISAgICAgICAgICAg ICAgICAgbmV3IE5leHRCdXR0b24odGhpcywgImNsb3NlIiwgY2xvc2VfYml0 cywgMTAsIDEwLA0KISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aTE4bigiQ2xvc2UiKSk7DQohICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5h ZGRXaWRnZXQoIGJ1dHRvbltDTE9TRV9JRFhdICk7DQohICAgICAgICAgICAg IGNvbm5lY3QoIGJ1dHRvbltDTE9TRV9JRFhdLCBTSUdOQUwoY2xpY2tlZCgp KSwNCiEgICAgICAgICAgICAgICAgICAgICAgdGhpcywgU0xPVChjbG9zZVdp bmRvdygpKSApOw0KISAgICAgICAgICAgICBicmVhazsNCiEgDQohICAgICAg ICAgY2FzZSAnXyc6DQohICAgICAgICAgICAgIC8vIFRPRE86IEFkZCBzcGFj ZXIgaGFuZGxpbmcNCiEgICAgICAgICAgICAgYnJlYWs7DQohIA0KISAgICAg ICAgIGRlZmF1bHQ6DQohICAgICAgICAgICAgIGtkRGVidWcoKSA8PCAiIENh bid0IGhhcHBlbjogdW5rbm93biBidXR0b24gY29kZSAiDQohICAgICAgICAg ICAgICAgICAgICAgICA8PCBRU3RyaW5nKHNwZWNbaV0pOw0KISAgICAgICAg ICAgICBicmVhazsNCiEgICAgICAgICB9DQohICAgICB9DQohIH0NCiEgDQoh IC8vIE1ha2Ugc3VyZSB0aGUgbWVudSBidXR0b24gZm9sbG93cyBkb3VibGUg Y2xpY2sgY29udmVudGlvbnMgc2V0IGluIGtjb250cm9sDQohIC8vIChOb3Rl OiB0aGlzIHdhcyBhbG1vc3Qgc3RyYWlnaHQgY29weSBhbmQgcGFzdGUgZnJv bSBLREVEZWZhdWx0Q2xpZW50LikNCiEgdm9pZCBOZXh0Q2xpZW50OjptZW51 QnV0dG9uUHJlc3NlZCgpDQohIHsNCiEgICAgIHN0YXRpYyBRVGltZSogdCA9 IDA7DQohICAgICBzdGF0aWMgTmV4dENsaWVudCogdGMgPSAwOw0KISAgICAg aWYgKCAhdCApIHsNCiEgICAgICAgICB0ID0gbmV3IFFUaW1lOw0KISAgICAg fQ0KISANCiEgICAgIGlmICggdGMgIT0gdGhpcyB8fCB0LT5lbGFwc2VkKCkg PiBRQXBwbGljYXRpb246OmRvdWJsZUNsaWNrSW50ZXJ2YWwoKSApDQohICAg ICB7DQohICAgICAgICAgLy8gUHJvYmFibHkgZG9uJ3QgbmVlZCB0aGlzIG51 bGwgY2hlY2ssIGJ1dCB3ZSBtaWdodCBhcyB3ZWxsLg0KISAgICAgICAgIGlm IChidXR0b25bTUVOVV9JRFhdKSB7DQohICAgICAgICAgICAgIFFQb2ludCBt ZW51cG9pbnQgKCBidXR0b25bTUVOVV9JRFhdLT5yZWN0KCkuYm90dG9tTGVm dCgpLngoKS0xLA0KISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnV0dG9uW01FTlVfSURYXS0+cmVjdCgpLmJvdHRvbUxlZnQoKS55KCkrMiAp Ow0KISAgICAgICAgICAgICB3b3Jrc3BhY2UoKS0+Y2xpZW50UG9wdXAodGhp cyktPnBvcHVwKA0KISAgICAgICAgICAgICAgICAgYnV0dG9uW01FTlVfSURY XS0+bWFwVG9HbG9iYWwoIG1lbnVwb2ludCApKTsNCiEgICAgICAgICB9DQoh ICAgICB9IGVsc2Ugew0KISAgICAgICAgIGNsb3NlV2luZG93KCk7DQogICAg ICB9DQogIA0KKyAgICAgdC0+c3RhcnQoKTsNCisgICAgIHRjID0gdGhpczsN CisgfQ0KKyANCisgLy8gQ29waWVkLCB3aXRoIG1pbm9yIGVkaXRzLCBmcm9t IEtERURlZmF1bHRDbGllbnQ6OnNsb3RNYXhpbWl6ZSgpDQorIHZvaWQgTmV4 dENsaWVudDo6bWF4aW1pemVCdXR0b25DbGlja2VkKCkNCisgew0KKyAgICAg aWYgKGJ1dHRvbltNQVhJTUlaRV9JRFhdKSB7DQorICAgICAgICAgc3dpdGNo IChidXR0b25bTUFYSU1JWkVfSURYXS0+bGFzdEJ1dHRvbigpKSB7DQorICAg ICAgICAgY2FzZSBNaWRCdXR0b246DQorICAgICAgICAgICAgIG1heGltaXpl KCBNYXhpbWl6ZVZlcnRpY2FsICk7DQorICAgICAgICAgICAgIGJyZWFrOw0K KyAgICAgICAgIGNhc2UgUmlnaHRCdXR0b246DQorICAgICAgICAgICAgIG1h eGltaXplKCBNYXhpbWl6ZUhvcml6b250YWwgKTsNCisgICAgICAgICAgICAg YnJlYWs7DQorICAgICAgICAgZGVmYXVsdDoNCisgICAgICAgICAgICAgbWF4 aW1pemUoKTsNCisgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgfQ0K KyAgICAgfQ0KICB9DQogIA0KICB2b2lkIE5leHRDbGllbnQ6OnJlc2l6ZUV2 ZW50KCBRUmVzaXplRXZlbnQqIGUpDQoqKioqKioqKioqKioqKiogdm9pZCBO ZXh0Q2xpZW50Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQoIA0KKioqIDMyNSwz MzIgKioqKg0KICANCiAgdm9pZCBOZXh0Q2xpZW50OjpzdGlja3lDaGFuZ2Uo Ym9vbCBvbikNCiAgew0KISAgICAgYnV0dG9uWzFdLT5zZXRCaXRtYXAoIG9u ID8gdW5zdGlja3lfYml0cyA6IHN0aWNreV9iaXRzLCAxMCwgMTApOw0KISAg ICAgYnV0dG9uWzFdLT5zZXRUaXBUZXh0KCBvbiA/IGkxOG4oIlVuLVN0aWNr eSIpIDogaTE4bigiU3RpY2t5IikgKTsNCiAgfQ0KICANCiAgDQotLS0gNTI5 LDUzOCAtLS0tDQogIA0KICB2b2lkIE5leHRDbGllbnQ6OnN0aWNreUNoYW5n ZShib29sIG9uKQ0KICB7DQohICAgICBpZiAoTmV4dEJ1dHRvbiAqIGIgPSBi dXR0b25bU1RJQ0tZX0lEWF0pIHsNCiEgICAgICAgICBiLT5zZXRCaXRtYXAo IG9uID8gdW5zdGlja3lfYml0cyA6IHN0aWNreV9iaXRzLCAxMCwgMTApOw0K ISAgICAgICAgIGItPnNldFRpcFRleHQoIG9uID8gaTE4bigiVW4tU3RpY2t5 IikgOiBpMThuKCJTdGlja3kiKSApOw0KISAgICAgfQ0KICB9DQogIA0KICAN CioqKioqKioqKioqKioqKiB2b2lkIE5leHRDbGllbnQ6OmluaXQoKQ0KKioq IDMzOCwzNDkgKioqKg0KICB2b2lkIE5leHRDbGllbnQ6OmFjdGl2ZUNoYW5n ZShib29sKQ0KICB7DQogICAgICByZXBhaW50KGZhbHNlKTsNCiEgICAgIGJ1 dHRvblswXS0+cmVzZXQoKTsNCiEgICAgIGJ1dHRvblsxXS0+cmVzZXQoKTsN CiEgICAgIGJ1dHRvblsyXS0+cmVzZXQoKTsNCiAgfQ0KICANCiEgICBDbGll bnQ6Ok1vdXNlUG9zaXRpb24NCiAgTmV4dENsaWVudDo6bW91c2VQb3NpdGlv biggY29uc3QgUVBvaW50JiBwICkgY29uc3QNCiAgew0KICAgIE1vdXNlUG9z aXRpb24gbSA9IE5vd2hlcmU7DQotLS0gNTQ0LDU2MiAtLS0tDQogIHZvaWQg TmV4dENsaWVudDo6YWN0aXZlQ2hhbmdlKGJvb2wpDQogIHsNCiAgICAgIHJl cGFpbnQoZmFsc2UpOw0KISAgICAgc2xvdFJlc2V0KCk7DQohIH0NCiEgDQoh IHZvaWQgTmV4dENsaWVudDo6c2xvdFJlc2V0KCkNCiEgew0KISAgICAgZm9y IChpbnQgaT0wOyBpPE1BWF9OVU1fQlVUVE9OUzsgaSsrKSB7DQohICAgICAg ICAgaWYgKGJ1dHRvbltpXSkgew0KISAgICAgICAgICAgICBidXR0b25baV0t PnJlc2V0KCk7DQohICAgICAgICAgfQ0KISAgICAgfQ0KICB9DQogIA0KISBD bGllbnQ6Ok1vdXNlUG9zaXRpb24NCiAgTmV4dENsaWVudDo6bW91c2VQb3Np dGlvbiggY29uc3QgUVBvaW50JiBwICkgY29uc3QNCiAgew0KICAgIE1vdXNl UG9zaXRpb24gbSA9IE5vd2hlcmU7DQpJbmRleDogbmV4dGNsaWVudC5oDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUva2RlL2tk ZWJhc2Uva3dpbi9jbGllbnRzL2tzdGVwL25leHRjbGllbnQuaCx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuOQ0KZGlmZiAtdSAtMyAtcCAtYyAtcjEuOSBu ZXh0Y2xpZW50LmgNCioqKiBuZXh0Y2xpZW50LmgJMTggQXVnIDIwMDEgMjM6 NTE6MDggLTAwMDAJMS45DQotLS0gbmV4dGNsaWVudC5oCTIzIEFwciAyMDAy IDE4OjQzOjI0IC0wMDAwDQoqKioqKioqKioqKioqKioNCioqKiA0LDkgKioq Kg0KLS0tIDQsMTAgLS0tLQ0KICAjaW5jbHVkZSA8cXZhcmlhbnQuaD4NCiAg I2luY2x1ZGUgPHFiaXRtYXAuaD4NCiAgI2luY2x1ZGUgPGtwaXhtYXAuaD4N CisgI2luY2x1ZGUgPHFsYXlvdXQuaD4NCiAgI2luY2x1ZGUgIi4uLy4uL2Ns aWVudC5oIg0KICAjaW5jbHVkZSAiLi4vLi4va3dpbmJ1dHRvbi5oIg0KICBj bGFzcyBRTGFiZWw7DQoqKioqKioqKioqKioqKiogcHVibGljOg0KKioqIDE5 LDMwICoqKioNCiAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyYgdGlw PU5VTEwpOw0KICAgICAgdm9pZCBzZXRCaXRtYXAoY29uc3QgdW5zaWduZWQg Y2hhciAqYml0bWFwLCBpbnQgYncsIGludCBiaCk7DQogICAgICB2b2lkIHJl c2V0KCk7DQogIHByb3RlY3RlZDoNCiAgICAgIHZpcnR1YWwgdm9pZCBkcmF3 QnV0dG9uKFFQYWludGVyICpwKTsNCiAgICAgIHZvaWQgZHJhd0J1dHRvbkxh YmVsKFFQYWludGVyICopezt9DQogICAgICBLUGl4bWFwIGFCYWNrZ3JvdW5k LCBpQmFja2dyb3VuZDsNCiEgICAgIFFCaXRtYXAgZGVjbzsNCiAgICAgIENs aWVudCAqY2xpZW50Ow0KICB9Ow0KICANCiAgY2xhc3MgTmV4dENsaWVudCA6 IHB1YmxpYyBLV2luSW50ZXJuYWw6OkNsaWVudA0KLS0tIDIwLDM3IC0tLS0N CiAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyYgdGlwPU5VTEwpOw0K ICAgICAgdm9pZCBzZXRCaXRtYXAoY29uc3QgdW5zaWduZWQgY2hhciAqYml0 bWFwLCBpbnQgYncsIGludCBiaCk7DQogICAgICB2b2lkIHJlc2V0KCk7DQor ICAgICBCdXR0b25TdGF0ZSBsYXN0QnV0dG9uKCkgeyByZXR1cm4gbGFzdF9i dXR0b247IH0NCisgDQogIHByb3RlY3RlZDoNCisgICAgIHZvaWQgbW91c2VQ cmVzc0V2ZW50KCBRTW91c2VFdmVudCogZSApOw0KKyAgICAgdm9pZCBtb3Vz ZVJlbGVhc2VFdmVudCggUU1vdXNlRXZlbnQqIGUgKTsNCiAgICAgIHZpcnR1 YWwgdm9pZCBkcmF3QnV0dG9uKFFQYWludGVyICpwKTsNCiAgICAgIHZvaWQg ZHJhd0J1dHRvbkxhYmVsKFFQYWludGVyICopezt9DQorIA0KICAgICAgS1Bp eG1hcCBhQmFja2dyb3VuZCwgaUJhY2tncm91bmQ7DQohICAgICBRQml0bWFw KiBkZWNvOw0KICAgICAgQ2xpZW50ICpjbGllbnQ7DQorICAgICBCdXR0b25T dGF0ZSBsYXN0X2J1dHRvbjsNCiAgfTsNCiAgDQogIGNsYXNzIE5leHRDbGll bnQgOiBwdWJsaWMgS1dpbkludGVybmFsOjpDbGllbnQNCioqKioqKioqKioq KioqKiBjbGFzcyBOZXh0Q2xpZW50IDogcHVibGljIEtXaW5JbnRlcm5hbDo6 DQoqKiogMzIsMzggKioqKg0KICAgICAgUV9PQkpFQ1QNCiAgcHVibGljOg0K ICAgICAgTmV4dENsaWVudCggV29ya3NwYWNlICp3cywgV0lkIHcsIFFXaWRn ZXQgKnBhcmVudD0wLCBjb25zdCBjaGFyICpuYW1lPTAgKTsNCiEgICAgIH5O ZXh0Q2xpZW50KCl7O30NCiAgcHJvdGVjdGVkOg0KICAgICAgdm9pZCByZXNp emVFdmVudCggUVJlc2l6ZUV2ZW50KiApOw0KICAgICAgdm9pZCBwYWludEV2 ZW50KCBRUGFpbnRFdmVudCogKTsNCi0tLSAzOSw0NSAtLS0tDQogICAgICBR X09CSkVDVA0KICBwdWJsaWM6DQogICAgICBOZXh0Q2xpZW50KCBXb3Jrc3Bh Y2UgKndzLCBXSWQgdywgUVdpZGdldCAqcGFyZW50PTAsIGNvbnN0IGNoYXIg Km5hbWU9MCApOw0KISAgICAgfk5leHRDbGllbnQoKSB7O30NCiAgcHJvdGVj dGVkOg0KICAgICAgdm9pZCByZXNpemVFdmVudCggUVJlc2l6ZUV2ZW50KiAp Ow0KICAgICAgdm9pZCBwYWludEV2ZW50KCBRUGFpbnRFdmVudCogKTsNCioq KioqKioqKioqKioqKiBwcm90ZWN0ZWQ6DQoqKiogNDcsNTUgKioqKg0KICAN CiAgcHJvdGVjdGVkIHNsb3RzOg0KICAgICAgdm9pZCBzbG90UmVzZXQoKTsN CiAgcHJpdmF0ZToNCiEgICAgIE5leHRCdXR0b24qIGJ1dHRvblszXTsNCiAg ICAgIFFTcGFjZXJJdGVtKiB0aXRsZWJhcjsNCiAgfTsgICAgICAgICAgICAg ICAgICAgICAgDQogIA0KICB9Ow0KLS0tIDU0LDgwIC0tLS0NCiAgDQogIHBy b3RlY3RlZCBzbG90czoNCiAgICAgIHZvaWQgc2xvdFJlc2V0KCk7DQorICAg ICB2b2lkIG1lbnVCdXR0b25QcmVzc2VkKCk7DQorICAgICB2b2lkIG1heGlt aXplQnV0dG9uQ2xpY2tlZCgpOw0KKyANCiAgcHJpdmF0ZToNCiEgICAgIHZv aWQgaW5pdGlhbGl6ZUJ1dHRvbnNBbmRUaXRsZWJhcihRSEJveExheW91dCog dGl0bGVMYXlvdXQpOw0KISAgICAgdm9pZCBhZGRCdXR0b25zKFFIQm94TGF5 b3V0KiB0aXRsZUxheW91dCwgY29uc3QgUVN0cmluZyYgYnV0dG9ucyk7DQoh IA0KICAgICAgUVNwYWNlckl0ZW0qIHRpdGxlYmFyOw0KKyANCisgICAgIC8v IEhlbHBmdWwgY29uc3RhbnRzIGZvciBidXR0b25zIGluIGFycmF5DQorICAg ICBzdGF0aWMgY29uc3QgaW50IENMT1NFX0lEWCAgICA9IDA7DQorICAgICBz dGF0aWMgY29uc3QgaW50IEhFTFBfSURYICAgICA9IDE7DQorICAgICBzdGF0 aWMgY29uc3QgaW50IElDT05JRllfSURYICA9IDI7DQorICAgICBzdGF0aWMg Y29uc3QgaW50IE1BWElNSVpFX0lEWCA9IDM7DQorICAgICBzdGF0aWMgY29u c3QgaW50IE1FTlVfSURYICAgICA9IDQ7DQorICAgICBzdGF0aWMgY29uc3Qg aW50IFNUSUNLWV9JRFggICA9IDU7DQorICAgICBzdGF0aWMgY29uc3QgaW50 IE1BWF9OVU1fQlVUVE9OUyA9IFNUSUNLWV9JRFggKyAxOw0KKyANCisgICAg IC8vIFdBUk5JTkc6IGJ1dHRvbltpXSBtYXkgYmUgbnVsbCBmb3IgYW55IGdp dmVuIGkuICBNYWtlIHN1cmUgeW91DQorICAgICAvLyBhbHdheXMgY2hlY2sg Zm9yIG51bGwgYmVmb3JlIGRvaW5nIGJ1dHRvbltpXS0+Zm9vKCkuDQorICAg ICBOZXh0QnV0dG9uKiBidXR0b25bTUFYX05VTV9CVVRUT05TXTsNCiAgfTsg ICAgICAgICAgICAgICAgICAgICAgDQogIA0KICB9Ow0K --1602254595-572567416-1019588186=:18953-- _______________________________________________ Kwin mailing list Kwin@mail.kde.org http://mail.kde.org/mailman/listinfo/kwin