X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=0IRQ1XWlDPgttUplKn1nAAMStbHG0R0qodQK/SV6TKw=; b=BckcKY/VDUv/t7F+oVuRQ/SNBFvP3boc5YAmwNlghdJ3fGY5eSMBeR4739clIbpbek PULtAgO2mDocQK7Bzg6xW+wfZWKVvB4TNL0MVDsXw9qV3NMxCsvahQ7i1eUBQw7WNNij 566FPjG1jnZ7Ato+QXDzAVnh0sN2jckGahMvUf/qaannb6CJuxq8mSmH1eeYF61YyOtP fH43Pm5culnM7xBoSwVAEP1GzbaafLcGuwC2bXfXXWK3zMh9tuy0e0ACa3o6tYxxUscF gs4rtoypfNuSyXT/CbJN01RnoCqqCNEPUikvB0KuSlwW+NHrSopLa7+6LPQcNSPvsf7C +Rdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=0IRQ1XWlDPgttUplKn1nAAMStbHG0R0qodQK/SV6TKw=; b=qsfrIEbhM9r6xolEUDk3t8vFwW/X5nPH70FKI1NWY8RxLygfmOljfsTwhKJLRn9aYv 0IhzEhomA//ueoPmV9cGFDlSvNd79qG2jPSkEAOfDg3jGlqoLtaU6ybIbHeUOzesBPJ4 iB6FeP1Hg+gtk57uNy6n3Xhu7lsZ82J7D/ltSpWfoclRsd02dWKAn+UGcrVlK2B5I3Z6 9VBsTNONQpwgdmqAFwPd8wjIjZZ+Qxv5+Im6VVsKTKhCnNZtYSdJWzpfiCgUefpXHG8W 0M9DQeZ1bf9SApK0FiQkT/+ze9oKgxWYQWk/pPCO0PAL1KIx6BKPRyn7DB7RXVkAVR3T r8ig== X-Gm-Message-State: AMke39nCbpv0cSl5q49D3kal3NOyygw/SRv9Gl2sycIjw6vbinBCVjuSUv6mmLh1p3wJognQ9bc/EgMe4wxD5Q== X-Received: by 10.223.172.77 with SMTP id v71mr18315273wrc.131.1488826896013; Mon, 06 Mar 2017 11:01:36 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: "Luis de Arquer (ldearquer AT gmail DOT com) [via geda-user AT delorie DOT com]" Date: Mon, 6 Mar 2017 20:01:35 +0100 Message-ID: Subject: [geda-user] Rubberband move keeping lines direction To: geda-user Content-Type: multipart/mixed; boundary=f403045d57564500ab054a14869c Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --f403045d57564500ab054a14869c Content-Type: text/plain; charset=UTF-8 Hi all, I have been lately working on my spare time on trying to make the "rubberband" move keep track directions, when moving a line attached to other two lines, one on each end. I did it mostly for fun, so I don't really know whether it is already something in progress. I know the current git version can't do it though. It works fine with the "ghost" copy that moves when the line is dragged, and it (should) work with any line direction. Mainly, the strategy is: - When moving, determine whether there are two rubberband lines attached (this test is ridiculously weak, but just to get started...) - If so, determine how the line and the rubberband lines should move to keep their directions. To do this, I had to create fgeometry.c, which does floating point geometry. I couldn't figure out how to do it with integer arithmetic (e.g. just like polygon creation), but that's just me... The logic is implemented at FitCrosshairIntoGrid( ), surely not the right place, but it works ok-ish - In the RubberbandType struct, add DX and DY fields, to indicate how things have to move when in this mode. - And make XORDrawMoveOrCopyObject( ) to take these DX and DY fields into account when moving. Thing is, the actual movement is still not fully implemented. I am doing it on MoveObjectAndRubberband( ). I don't really know who to do it nicely. The line (main line being moved, not neighbour lines) movement is not a "move line" action anymore, but two "move pointline" actions. So it would look weird on the Undo history. Would that be OK? Hope it makes sense. If anyone could try the patch and give me some feedback it would be great! Luis P.S. Just to clarify, the feature works fine with the "ghost" lines. It is the actual movement, when the mouse button is released, that is not completed due to the Undo history thing, which I don't know how to deal with. --f403045d57564500ab054a14869c Content-Type: text/x-patch; charset=UTF-8; name="rubberband_keep_direction.patch" Content-Disposition: attachment; filename="rubberband_keep_direction.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBkYjA0ZTY1Li5m NmJiNDg5IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0x MTksNyArMTE5LDcgQEAgQUhfVEVNUExBVEUoW0dFVFRFWFRfUEFDS0FHRV0sIFtOYW1lIG9mIHRo aXMgcHJvZ3JhbSdzIGdldHRleHQgZG9tYWluXSkKIEFDX0RFRklORV9VTlFVT1RFRChbR0VUVEVY VF9QQUNLQUdFXSwgWyIkR0VUVEVYVF9QQUNLQUdFIl0pCiBBQ19TVUJTVChHRVRURVhUX1BBQ0tB R0UpCiAKLUFNX0dOVV9HRVRURVhUX1ZFUlNJT04oWzAuMTkuM10pCitBTV9HTlVfR0VUVEVYVF9W RVJTSU9OKFswLjE4LjNdKQogQU1fR05VX0dFVFRFWFQKIAogQUNfTVNHX0NIRUNLSU5HKFtpZiAk TVNHRk1UIHVuZGVyc3RhbmRzIG1zZ2N0eHQgKG1lc3NhZ2UgY29udGV4dCldKQpkaWZmIC0tZ2l0 IGEvc3JjL01ha2VmaWxlLmFtIGIvc3JjL01ha2VmaWxlLmFtCmluZGV4IDA1OGMxMGYuLmQ4OGZi NjYgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlZmlsZS5hbQorKysgYi9zcmMvTWFrZWZpbGUuYW0KQEAg LTY0LDYgKzY0LDggQEAgUENCX1NSQ1MgPSBcCiAJZWRpZl9wYXJzZS5oIFwKIAllcnJvci5jIFwK IAllcnJvci5oIFwKKwlmZ2VvbWV0cnkuYyBcCisJZmdlb21ldHJ5LmggXAogCWZpbGUuYyBcCiAJ ZmlsZS5oIFwKIAlmaW5kLmMgXApkaWZmIC0tZ2l0IGEvc3JjL2NyZWF0ZS5jIGIvc3JjL2NyZWF0 ZS5jCmluZGV4IGQ0MWI0NTYuLjQ1Y2Q3YjYgMTAwNjQ0Ci0tLSBhL3NyYy9jcmVhdGUuYworKysg Yi9zcmMvY3JlYXRlLmMKQEAgLTEwMjAsNiArMTAyMCw4IEBAIENyZWF0ZU5ld1J1YmJlcmJhbmRF bnRyeSAoTGF5ZXJUeXBlICpMYXllciwKICAgcHRyLT5MYXllciA9IExheWVyOwogICBwdHItPkxp bmUgPSBMaW5lOwogICBwdHItPk1vdmVkUG9pbnQgPSBNb3ZlZFBvaW50OworICBwdHItPkRYID0g LTE7CisgIHB0ci0+RFkgPSAtMTsKICAgcmV0dXJuIChwdHIpOwogfQogCmRpZmYgLS1naXQgYS9z cmMvY3Jvc3NoYWlyLmMgYi9zcmMvY3Jvc3NoYWlyLmMKaW5kZXggYzhjZTY1My4uNTM0MTgyNyAx MDA2NDQKLS0tIGEvc3JjL2Nyb3NzaGFpci5jCisrKyBiL3NyYy9jcm9zc2hhaXIuYwpAQCAtNDks NiArNDksNyBAQAogI2luY2x1ZGUgIm15bWVtLmgiCiAjaW5jbHVkZSAic2VhcmNoLmgiCiAjaW5j bHVkZSAicG9seWdvbi5oIgorI2luY2x1ZGUgImZnZW9tZXRyeS5oIgogCiAjaWZkZWYgSEFWRV9M SUJETUFMTE9DCiAjaW5jbHVkZSA8ZG1hbGxvYy5oPgpAQCAtNDQ3LDkgKzQ0OCwyMCBAQCBYT1JE cmF3TW92ZU9yQ29weU9iamVjdCAoaGlkR0MgZ2MpCiAgICAgICB7CiAJTGluZVR5cGUgKmxpbmUg PSAoTGluZVR5cGUgKikgQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlB0cjI7CiAKLQlYT1JEcmF3 QXR0YWNoZWRMaW5lIChnYywgbGluZS0+UG9pbnQxLlggKyBkeCwgbGluZS0+UG9pbnQxLlkgKyBk eSwKKwlpID0gQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlJ1YmJlcmJhbmROOworCXB0ciA9IENy b3NzaGFpci5BdHRhY2hlZE9iamVjdC5SdWJiZXJiYW5kOworCWlmIChpID09IDIgJiYgcHRyLT5E WCAhPSAtMSkKKwl7CisJCVhPUkRyYXdBdHRhY2hlZExpbmUgKGdjLCBsaW5lLT5Qb2ludDEuWCAr IHB0clswXS5EWCwgbGluZS0+UG9pbnQxLlkgKyBwdHJbMF0uRFksCisJICAgICAgICAgICAgICAg ICAgICAgICAgIGxpbmUtPlBvaW50Mi5YICsgcHRyWzFdLkRYLCBsaW5lLT5Qb2ludDIuWSArIHB0 clsxXS5EWSwKKwkgICAgICAgICAgICAgICAgICAgICBsaW5lLT5UaGlja25lc3MpOworCX0KKwll bHNlCisJeworCQlYT1JEcmF3QXR0YWNoZWRMaW5lIChnYywgbGluZS0+UG9pbnQxLlggKyBkeCwg bGluZS0+UG9pbnQxLlkgKyBkeSwKIAkgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS0+UG9p bnQyLlggKyBkeCwgbGluZS0+UG9pbnQyLlkgKyBkeSwKIAkgICAgICAgICAgICAgICAgICAgICBs aW5lLT5UaGlja25lc3MpOworCX0KIAlicmVhazsKICAgICAgIH0KIApAQCAtNTY5LDkgKzU4MSwx OCBAQCBYT1JEcmF3TW92ZU9yQ29weU9iamVjdCAoaGlkR0MgZ2MpCiAJICAgICAgcG9pbnQxID0g JnB0ci0+TGluZS0+UG9pbnQxOwogCSAgICAgIHBvaW50MiA9ICZwdHItPkxpbmUtPlBvaW50MjsK IAkgICAgfQotCSAgWE9SRHJhd0F0dGFjaGVkTGluZSAoZ2MsIHBvaW50MS0+WCwgcG9pbnQxLT5Z LAotCSAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQyLT5YICsgZHgsIHBvaW50Mi0+WSArIGR5 LAotCSAgICAgICAgICAgICAgICAgICAgICAgcHRyLT5MaW5lLT5UaGlja25lc3MpOworCSAgICBp ZiAocHRyLT5EWCA9PSAtMSkKKyAgICAgIHsKKwkgICAgICBYT1JEcmF3QXR0YWNoZWRMaW5lIChn YywgcG9pbnQxLT5YLCBwb2ludDEtPlksCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv aW50Mi0+WCArIGR4LCBwb2ludDItPlkgKyBkeSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHRyLT5MaW5lLT5UaGlja25lc3MpOworCSAgICB9CisJICAgIGVsc2UKKwkgICAgeworCSAg ICAgIFhPUkRyYXdBdHRhY2hlZExpbmUgKGdjLCBwb2ludDEtPlgsIHBvaW50MS0+WSwKKwkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQyLT5YICsgcHRyLT5EWCwgcG9pbnQyLT5ZICsg cHRyLT5EWSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLT5MaW5lLT5UaGlja25l c3MpOworCSAgICB9CiAJfQogICAgICAgZWxzZSBpZiAocHRyLT5Nb3ZlZFBvaW50ID09ICZwdHIt PkxpbmUtPlBvaW50MSkKIAlYT1JEcmF3QXR0YWNoZWRMaW5lIChnYywKQEAgLTEwMjEsNiArMTA0 Miw5MiBAQCBGaXRDcm9zc2hhaXJJbnRvR3JpZCAoQ29vcmQgWCwgQ29vcmQgWSkKIAkgIGVsc2UK IAkgICAgbmVhcmVzdF9ncmlkX3ggPSBNYXJrZWQuWDsKIAl9CisJICAgIC8qIE1vdmUga2VlcGlu ZyBydWJiZXJiYW5kIGxpbmVzIGRpcmVjdGlvbiAqLworICAgICAgaWYgKCBDcm9zc2hhaXIuQXR0 YWNoZWRPYmplY3QuVHlwZSA9PSBMSU5FX1RZUEUgJiYKKyAgICAgICAgICAgIENyb3NzaGFpci5B dHRhY2hlZE9iamVjdC5SdWJiZXJiYW5kTiA9PSAyKQorICAgICAgeworICAgICAgICBMaW5lVHlw ZSAqbGluZSA9IChMaW5lVHlwZSopIENyb3NzaGFpci5BdHRhY2hlZE9iamVjdC5QdHIyOworICAg ICAgICBMaW5lVHlwZSAqcnViMSA9IChMaW5lVHlwZSopIENyb3NzaGFpci5BdHRhY2hlZE9iamVj dC5SdWJiZXJiYW5kWzBdLkxpbmU7CisgICAgICAgIExpbmVUeXBlICpydWIyID0gKExpbmVUeXBl KikgQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlJ1YmJlcmJhbmRbMV0uTGluZTsKKworICAgICAg ICAvKiBDcmVhdGUgZmxvYXQgcG9pbnQtdmVjdG9yIHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgbGlu ZXMgKi8KKyAgICAgICAgZmxpbmUgZm1haW4sIGZydWIxLCBmcnViMjsKKyAgICAgICAgZm1haW4g PSBmbGluZV9jcmVhdGVfZnJvbV9wb2ludHMgKCZsaW5lLT5Qb2ludDEsICZsaW5lLT5Qb2ludDIp OworICAgICAgICBpZiAoQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlJ1YmJlcmJhbmRbMF0uTW92 ZWRQb2ludCA9PSAmcnViMS0+UG9pbnQxKQorICAgICAgICAgIGZydWIxID0gZmxpbmVfY3JlYXRl X2Zyb21fcG9pbnRzICgmcnViMS0+UG9pbnQxLCAmcnViMS0+UG9pbnQyKTsKKyAgICAgICAgZWxz ZQorICAgICAgICAgIGZydWIxID0gZmxpbmVfY3JlYXRlX2Zyb21fcG9pbnRzICgmcnViMS0+UG9p bnQyLCAmcnViMS0+UG9pbnQxKTsKKyAgICAgICAgCisgICAgICAgIGlmIChDcm9zc2hhaXIuQXR0 YWNoZWRPYmplY3QuUnViYmVyYmFuZFsxXS5Nb3ZlZFBvaW50ID09ICZydWIyLT5Qb2ludDEpCisg ICAgICAgICAgZnJ1YjIgPSBmbGluZV9jcmVhdGVfZnJvbV9wb2ludHMgKCZydWIyLT5Qb2ludDEs ICZydWIyLT5Qb2ludDIpOworICAgICAgICBlbHNlCisgICAgICAgICAgZnJ1YjIgPSBmbGluZV9j cmVhdGVfZnJvbV9wb2ludHMgKCZydWIyLT5Qb2ludDIsICZydWIyLT5Qb2ludDEpOworICAgICAg ICAKKyAgICAgICAgLyogSWYgdGhleSBhcmUgdmFsaWQgKG5vbi1udWxsIGRpcmVjdGlvbnMpIHdl IGNhcnJ5IG9uICovCisgICAgICAgIGlmIChmbGluZV9pc192YWxpZChmbWFpbikgJiYgZmxpbmVf aXNfdmFsaWQoZnJ1YjEpICYmIGZsaW5lX2lzX3ZhbGlkKGZydWIyKSkKKyAgICAgICAgeworICAg ICAgICAgIGZ2ZWN0b3IgZm1vdmU7CisgICAgICAgICAgCisgICAgICAgICAgZnZlY3RvciBmaW50 ZXJzZWN0aW9uID0gZmxpbmVfaW50ZXJzZWN0aW9uKGZydWIxLCBmcnViMik7CisgICAgICAgICAg ICAgICAgICAgIAorICAgICAgICAgIGlmICghZnZlY3Rvcl9pc19udWxsKGZpbnRlcnNlY3Rpb24p KQorICAgICAgICAgIHsKKyAgICAgICAgICAJLyogTW92ZW1lbnQgZGlyZWN0aW9uIGRlZmluZWQg YXMgZnJvbSBtaWQgbGluZSB0byBpbnRlcnNlY3Rpb24gcG9pbnQgKi8KKyAgICAgICAgICAJZnZl Y3RvciBmbWlkOworICAgICAgICAgIAlmbWlkLnggPSAoKGRvdWJsZSlsaW5lLT5Qb2ludDIuWCAr IGxpbmUtPlBvaW50MS5YKSAvIDIuMDsKKyAgICAgICAgICAJZm1pZC55ID0gKChkb3VibGUpbGlu ZS0+UG9pbnQyLlkgKyBsaW5lLT5Qb2ludDEuWSkgLyAyLjA7CisgICAgICAgICAgCWZtb3ZlLngg PSBmaW50ZXJzZWN0aW9uLnggLSBmbWlkLng7CisgICAgICAgICAgCWZtb3ZlLnkgPSBmaW50ZXJz ZWN0aW9uLnkgLSBmbWlkLnk7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAg ICB7CisgICAgICAgICAgICAvKiBObyBpbnRlcnNlY3Rpb24uIFJ1YmJlcmJhbmQgbGluZXMgYXJl IHBhcmFsbGVsICovCisgICAgICAgICAgICBmbW92ZS54ID0gZnJ1YjEuZGlyZWN0aW9uLng7Cisg ICAgICAgICAgICBmbW92ZS55ID0gZnJ1YjEuZGlyZWN0aW9uLnk7CisgICAgICAgICAgfSAgICAg ICAJCisgICAgICAgIAkgICAgICAgIAkKKyAgICAgICAgCWlmICghZnZlY3Rvcl9pc19udWxsKGZt b3ZlKSkKKyAgICAgICAgCXsKKyAgICAgICAgICAgIGZ2ZWN0b3Jfbm9ybWFsaXplKCZmbW92ZSk7 CisKKyAgICAgICAgICAgIC8qIEN1cnNvciBkZWx0YSB2ZWN0b3IgKi8KKyAgICAgICAgICAgIGZ2 ZWN0b3IgZmN1cnNvcl9kZWx0YTsKKyAgICAgICAgICAgIGZjdXJzb3JfZGVsdGEueCA9IENyb3Nz aGFpci5YIC0gTWFya2VkLlg7CisgICAgICAgICAgICBmY3Vyc29yX2RlbHRhLnkgPSBDcm9zc2hh aXIuWSAtIE1hcmtlZC5ZOworCisgICAgICAgICAgICAvKiBDdXJzb3IgZGVsdGEgcHJvamVjdGlv biBvbiBtb3ZlbWVudCBkaXJlY3Rpb24gKi8KKyAgICAgICAgICAgIGRvdWJsZSBhbW91bnRfbW92 ZWQgPSBmdmVjdG9yX2RvdChmbW92ZSwgZmN1cnNvcl9kZWx0YSk7CisKKyAgICAgICAgICAgIC8q IFNjYWxlIGZtb3ZlIGJ5IGNhbGN1bGF0ZWQgYW1vdW50ICovCisgICAgICAgICAgICBmdmVjdG9y IGZtb3ZlX3RvdGFsOworICAgICAgICAgICAgZm1vdmVfdG90YWwueCA9IGZtb3ZlLnggKiBhbW91 bnRfbW92ZWQ7CisgICAgICAgICAgICBmbW92ZV90b3RhbC55ID0gZm1vdmUueSAqIGFtb3VudF9t b3ZlZDsKKworICAgICAgICAgICAgLyogVXBkYXRlIHZhbHVlcyBmb3IgbmVhcmVzdF9ncmlkIGFu ZCBSdWJiZXJiYW5kIGxpbmVzICovCisgICAgICAgICAgICBuZWFyZXN0X2dyaWRfeCA9IE1hcmtl ZC5YICsgZm1vdmVfdG90YWwueDsKKyAgICAgICAgICAgIG5lYXJlc3RfZ3JpZF95ID0gTWFya2Vk LlkgKyBmbW92ZV90b3RhbC55OworCisgICAgICAgICAgICAvKiBNb3ZlIHJ1YmJlcmJhbmQ6IGZt b3ZlX3RvdGFswrdub3JtYWwgPSBmbW92ZV9ydWJiZXJiYW5kwrdub3JtYWwKKyAgICAgICAgICAg ICAqIHdoZXJlIG5vcm1hbCBpcyB0aGUgbW92aW5nIGxpbmUgbm9ybWFsCisgICAgICAgICAgICAg Ki8KKyAgICAgICAgICAgIGZ2ZWN0b3IgZm5vcm1hbDsKKyAgICAgICAgICAgIGZub3JtYWwueCA9 IGZtYWluLmRpcmVjdGlvbi55OworICAgICAgICAgICAgZm5vcm1hbC55ID0gLWZtYWluLmRpcmVj dGlvbi54OworICAgICAgICAgICAgaWYgKGZ2ZWN0b3JfZG90KGZub3JtYWwsIGZtb3ZlKSA8IDAp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGZub3JtYWwueCA9IC1mbm9ybWFsLng7Cisg ICAgICAgICAgICAgIGZub3JtYWwueSA9IC1mbm9ybWFsLnk7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICBkb3VibGUgcnViMV9tb3ZlID0gYW1vdW50X21vdmVkICogZnZlY3Rvcl9kb3QoZm1v dmUsIGZub3JtYWwpIC8gZnZlY3Rvcl9kb3QoZnJ1YjEuZGlyZWN0aW9uLCBmbm9ybWFsKTsKKyAg ICAgICAgICAgIENyb3NzaGFpci5BdHRhY2hlZE9iamVjdC5SdWJiZXJiYW5kWzBdLkRYID0gcnVi MV9tb3ZlKmZydWIxLmRpcmVjdGlvbi54OworICAgICAgICAgICAgQ3Jvc3NoYWlyLkF0dGFjaGVk T2JqZWN0LlJ1YmJlcmJhbmRbMF0uRFkgPSBydWIxX21vdmUqZnJ1YjEuZGlyZWN0aW9uLnk7Cisg ICAgICAgICAgICAKKyAgICAgICAgICAgIGRvdWJsZSBydWIyX21vdmUgPSBhbW91bnRfbW92ZWQg KiBmdmVjdG9yX2RvdChmbW92ZSwgZm5vcm1hbCkgLyBmdmVjdG9yX2RvdChmcnViMi5kaXJlY3Rp b24sIGZub3JtYWwpOworICAgICAgICAgICAgQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlJ1YmJl cmJhbmRbMV0uRFggPSBydWIyX21vdmUqZnJ1YjIuZGlyZWN0aW9uLng7CisgICAgICAgICAgICBD cm9zc2hhaXIuQXR0YWNoZWRPYmplY3QuUnViYmVyYmFuZFsxXS5EWSA9IHJ1YjJfbW92ZSpmcnVi Mi5kaXJlY3Rpb24ueTsKKyAgICAgICAgCX0KKwkgICAgICB9CisgICAgICB9CiAKICAgICB9CiAK ZGlmZiAtLWdpdCBhL3NyYy9nbG9iYWwuaCBiL3NyYy9nbG9iYWwuaAppbmRleCBmYzk1Mjg4Li5j NWMzMzhkIDEwMDY0NAotLS0gYS9zcmMvZ2xvYmFsLmgKKysrIGIvc3JjL2dsb2JhbC5oCkBAIC02 NTIsNiArNjUyLDggQEAgdHlwZWRlZiBzdHJ1Y3QKICAgTGF5ZXJUeXBlICpMYXllcjsgLyohPCBM YXllciB0aGF0IGhvbGRzIHRoZSBsaW5lLiAqLwogICBMaW5lVHlwZSAqTGluZTsgLyohPCBUaGUg bGluZSBpdHNlbGYuICovCiAgIFBvaW50VHlwZSAqTW92ZWRQb2ludDsgLyohPCBBbmQgZmluYWxs eSB0aGUgcG9pbnQuICovCisgIENvb3JkIERYOworICBDb29yZCBEWTsKIH0gUnViYmVyYmFuZFR5 cGU7CiAKIC8qIQpkaWZmIC0tZ2l0IGEvc3JjL21vdmUuYyBiL3NyYy9tb3ZlLmMKaW5kZXggZGZh ZjYxMy4uN2M5ZDQxYyAxMDA2NDQKLS0tIGEvc3JjL21vdmUuYworKysgYi9zcmMvbW92ZS5jCkBA IC04MDksNyArODA5LDcgQEAgTW92ZU9iamVjdEFuZFJ1YmJlcmJhbmQgKGludCBUeXBlLCB2b2lk ICpQdHIxLCB2b2lkICpQdHIyLCB2b2lkICpQdHIzLAogICAvKiBzZXR1cCBvZmZzZXQgKi8KICAg RGVsdGFYID0gRFg7CiAgIERlbHRhWSA9IERZOwotCisgIAogICAvKiBtb3ZlIGFsbCB0aGUgbGlu ZXMuLi4gYW5kIHJlc2V0IHRoZSBjb3VudGVyICovCiAgIHB0ciA9IENyb3NzaGFpci5BdHRhY2hl ZE9iamVjdC5SdWJiZXJiYW5kOwogICB3aGlsZSAoQ3Jvc3NoYWlyLkF0dGFjaGVkT2JqZWN0LlJ1 YmJlcmJhbmROKQpAQCAtODE5LDEwICs4MTksMjYgQEAgTW92ZU9iamVjdEFuZFJ1YmJlcmJhbmQg KGludCBUeXBlLCB2b2lkICpQdHIxLCB2b2lkICpQdHIyLCB2b2lkICpQdHIzLAogICAgICAgLyog b25seSB1cGRhdGUgdW5kbyBsaXN0IGlmIGFuIGFjdHVhbCBtb3ZlbWVudCBoYXBwZW5lZCAqLwog ICAgICAgaWYgKERYICE9IDAgfHwgRFkgIT0gMCkKICAgICAgICAgewotICAgICAgICAgIEFkZE9i amVjdFRvTW92ZVVuZG9MaXN0IChMSU5FUE9JTlRfVFlQRSwKKyAgICAgICAgICBpZiAocHRyLT5E WCA9PSAtMSkKKyAgICAgICAgICB7CisgICAgICAgICAgICBwcmludGYoIk1vdmUgbm9ybWFsXG4i KTsKKyAgICAgICAgICAgIEFkZE9iamVjdFRvTW92ZVVuZG9MaXN0IChMSU5FUE9JTlRfVFlQRSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLT5MYXllciwgcHRyLT5MaW5l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHItPk1vdmVkUG9pbnQsIERY LCBEWSk7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAg ICAgICBwcmludGYoIk1vdmUgY3VzdG9tXG4iKTsKKyAgICAgICAgICAgIEFkZE9iamVjdFRvTW92 ZVVuZG9MaXN0IChMSU5FUE9JTlRfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHRyLT5MYXllciwgcHRyLT5MaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwdHItPk1vdmVkUG9pbnQsIHB0ci0+RFgsIHB0ci0+RFkpOworICAgICAgICAgICAg RGVsdGFYID0gcHRyLT5EWDsKKyAgICAgICAgICAgIERlbHRhWSA9IHB0ci0+RFk7CisgICAgICAg ICAgfQogICAgICAgICAgIE1vdmVMaW5lUG9pbnQgKHB0ci0+TGF5ZXIsIHB0ci0+TGluZSwgcHRy LT5Nb3ZlZFBvaW50KTsKKyAgICAgICAgICAvKiBSZXN0b3JlIERlbHRhICovCisgICAgICAgICAg RGVsdGFYID0gRFg7CisgICAgICAgICAgRGVsdGFZID0gRFk7CiAgICAgICAgIH0KICAgICAgIENy b3NzaGFpci5BdHRhY2hlZE9iamVjdC5SdWJiZXJiYW5kTi0tOwogICAgICAgcHRyKys7Cg== --f403045d57564500ab054a14869c--