Re: Patching latest TORCS changes in CVS

David Savinkoff <[email protected]> Tue, 28 Feb 2017 21:32:08 -0700 (MST)
Newsgroups gmane.games.torcs.general
Message-ID <1432838956.57972581.1488342728404.JavaMail.zimbra@mailid.telus.net>
------=_Part_57972578_240015899.1488342728400
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

----- David Savinkoff wrote:
> Here is a patch to play with.
> Correctly combined longitudinal, lateral, and yaw tire friction forces.
> (realistic and predictable vehicular response where the rubber meets the road)

The latest improvements for CVS --> torcs-1.3.8.contact.2.patch
The latest improvements for torcs 1.3.7 --> torcs-1.3.7.contact.3.patch

------=_Part_57972578_240015899.1488342728400
Content-Type: text/x-patch; name=torcs-1.3.8.contact.2.patch
Content-Disposition: attachment; filename=torcs-1.3.8.contact.2.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzL3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRhLmNwcAky
MDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3Mvc3JjL21vZHVsZXMv
Z3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTctMDItMjQgMjA6Mzc6MjEuMjEy
MDc1NTU4IC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQogCisvLyBDYWxjdWxh
dGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4gZWZmaWNpZW50IGZv
cm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwgdG8gYXogW2luIHJh
ZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4wIGZvciBtb2RlcmF0
ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNoIGlzIGJlbmVhdGgg
R0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXItPl95YXc7CiAgICAg
Zm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBjYXItPl95YXc7Ci0g
ICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBDb3N6ID0gY29zKGF6
KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+cHJpdi53aGVlbFtp
XS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVlbFtpXS5yZWxQb3Mu
eTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICogQ29zeiAtIHkgKiBT
aW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7CisgICAgICAgIHRk
YmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQorICAgICAgICB0ZGJs
ZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0ZGJsZSBkdXggPSAt
Y2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXItPl95YXdfcmF0ZSAq
IHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENvc3ogLSBkdXkgKiBT
aW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsKKyAgICAgICAgZHV4
ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnggKyBk
dXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnkgKyBkdXk7
CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLno7CiAgICAgICAg
IHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsKICAgICAgICAgd2hl
ZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAgICAgICB3aGVlbFtp
XS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVlbFtpXS5wWzJdID0g
Y2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0tIHRvcmNzL3NyYy9t
b2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3BwCTIwMTQtMDItMTAgMDM6MDk6
MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBo
L2dyc2tpZG1hcmtzLmNwcAkyMDE3LTAyLTI0IDIwOjM3OjIxLjIxMzA3NTU3MCAtMDgwMApAQCAt
MTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJaWYgKGNhci0+X3NraWRbaV0gPiAwLjFm
KSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3NlbnNpdGl2aXR5KmNhci0+X3NraWRbaV0p
OwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAuMGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9
IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsgLy8gbGluZWFyICh0YW5oIHJlbW92ZWQs
IHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRk
YmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5za2lkbWFya3MtPnN0cmlwc1tpXS5zbW9v
dGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBACiAJCX0KIAogCQlpZiAoY2FyLT5wdWIu
c3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2NsclszXSA+IDAuMWYpIHsKKwkgICAgCWlm
IChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdvcmtzIGJldHRlciB0aGFuIDAuMSAvLyBz
b21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/IQogICAgICAgICAgICAgICAgIAogCQkJ
CWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAqIDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGlu
Z19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNy0wMi0xMiAwOTo0NTo1Ny4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVz
L3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNy0wMi0yNCAyMDozNzoyMS4yMTQwNzU1ODcgLTA4MDAK
QEAgLTY0LDcgKzY0LDcgQEAKIAl9CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsg
Y2FyLT5kaW1lbnNpb24ueiAqIGNhci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEy
LjAgLyAoY2FyLT5tYXNzICogKGNhci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsg
ayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmln
dXJlIGNvbXBvbmVudHMgKi8KQEAgLTE0NSwxMCArMTQ1LDcgQEAKIAl0Rm9yY2VzCUY7CiAJaW50
CQlpOwogCXRkYmxlCW0sIHcsIG1pbnY7Ci0JdGRibGUJdiwgUiwgUnYsIFJtLCBSeCwgUnksIFJ6
OwogCi0JY2FyLT5wcmVEeW5HQyA9IGNhci0+RHluR0NnOwotCQogCS8qIHRvdGFsIG1hc3MgKi8K
IAltID0gY2FyLT5tYXNzICsgY2FyLT5mdWVsOwogCW1pbnYgPSAxLjAgLyBtOwpAQCAtMjAwLDM0
ICsxOTcsMTAgQEAKIAkJRi5NLnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ld
Lnhwb3MgLSBjYXItPnN0YXRHQy54KTsKIAl9CiAJCQotCS8qIFJvbGxpbmcgUmVzaXN0YW5jZSAq
LwotCXYgPSBjYXItPnNwZWVkOwotCVIgPSAwLjBmOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKysp
IHsKLQkJUiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMWYp
IHsKLQkJUnYgPSBSIC8gdjsKLQkJaWYgKChSdiAqIG1pbnYgKiBTaW1EZWx0YVRpbWUpID4gdikg
ewotCQkJUnYgPSB2ICogbSAvIFNpbURlbHRhVGltZTsKLQkJfQotCX0gZWxzZSB7Ci0JCVJ2ID0g
MC4wZjsKLQl9Ci0JUnggPSBSdiAqIGNhci0+RHluR0MudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+
RHluR0MudmVsLnk7Ci0JUnogPSBSdiAqIGNhci0+RHluR0MudmVsLno7Ci0JCi0JaWYgKChSICog
Y2FyLT53aGVlbGJhc2UgLyAyLjAgKiBjYXItPklpbnYueikgPiBmYWJzKGNhci0+RHluR0NnLnZl
bC5heikpIHsKLQkJUm0gPSBjYXItPkR5bkdDZy52ZWwuYXogLyBjYXItPklpbnYuejsKLQl9IGVs
c2UgewotCQlSbSA9IFNJR04oY2FyLT5EeW5HQ2cudmVsLmF6KSAqIFIgKiBjYXItPndoZWVsYmFz
ZSAvIDIuMDsKLQl9Ci0JCiAJLyogY29tcHV0ZSBhY2NlbGVyYXRpb25zICovCi0JY2FyLT5EeW5H
Qy5hY2MueCA9IChGLkYueCAtIFJ4KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueSA9IChGLkYu
eSAtIFJ5KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueiA9IChGLkYueiAtIFJ6KSAqIG1pbnY7
CisJY2FyLT5EeW5HQy5hY2MueCA9IEYuRi54ICogbWludjsKKwljYXItPkR5bkdDLmFjYy55ID0g
Ri5GLnkgKiBtaW52OworCWNhci0+RHluR0MuYWNjLnogPSBGLkYueiAqIG1pbnY7CiAJCiAJc2dW
ZWMzIGFjY2VsID0ge2Nhci0+RHluR0MuYWNjLngsIGNhci0+RHluR0MuYWNjLnksIGNhci0+RHlu
R0MuYWNjLnp9OwogCXNnWGZvcm1WZWMzKGFjY2VsLCBkc3QpOwpAQCAtMjM4LDcgKzIxMSw3IEBA
CiAKIAljYXItPkR5bkdDZy5hY2MuYXggPSBjYXItPkR5bkdDLmFjYy5heCA9IEYuTS54ICogY2Fy
LT5JaW52Lng7CiAJY2FyLT5EeW5HQ2cuYWNjLmF5ID0gY2FyLT5EeW5HQy5hY2MuYXkgPSBGLk0u
eSAqIGNhci0+SWludi55OwotCWNhci0+RHluR0NnLmFjYy5heiA9IGNhci0+RHluR0MuYWNjLmF6
ID0gKEYuTS56IC0gUm0pICogY2FyLT5JaW52Lno7CisJY2FyLT5EeW5HQ2cuYWNjLmF6ID0gY2Fy
LT5EeW5HQy5hY2MuYXogKz0gRi5NLnogKiBjYXItPklpbnYuejsgLy8gKz0gc2VlIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCiB9CiAKIHN0YXRp
YyB2b2lkCkBAIC0yNTYsNyArMjI5LDE1IEBACiAJaWYgKGZhYnMoY2FyLT5EeW5HQ2cudmVsLmF6
KSA+IDkuMCkgewogCQljYXItPkR5bkdDZy52ZWwuYXogPSBTSUdOKGNhci0+RHluR0NnLnZlbC5h
eikgKiA5LjA7CiAJfQotCQkKKworCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3RhdGlvbmFyeSBj
YXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNhci0+RHluR0Nn
LnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkgKworCQljYXIt
PkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJeworCQljYXItPkR5
bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52ZWwuYXogPSAw
LjBmOworCX0KKwogCWNhci0+RHluR0MudmVsLmF4ID0gY2FyLT5EeW5HQ2cudmVsLmF4OwogCWNh
ci0+RHluR0MudmVsLmF5ID0gY2FyLT5EeW5HQ2cudmVsLmF5OwogCWNhci0+RHluR0MudmVsLmF6
ID0gY2FyLT5EeW5HQ2cudmVsLmF6OwotLS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
c2ltdS5jcHAJMjAxNy0wMi0xOSAwNTowOTowMC4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwCTIwMTctMDItMjQgMjA6Mzc6MjEuMjE1MDc1
NjAwIC0wODAwCkBAIC0zODUsNiArMzg1LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7
CiAJCQl9CiAJCQlDSEVDSyhjYXIpOworCQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBz
ZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBk
YXRlRm9yY2UoKQogCQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRh
dGVGb3JjZShjYXIsIGkpOwogCQkJCVNpbVdoZWVsVXBkYXRlVGlyZShjYXIsIGkpOwotLS0gdG9y
Y3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNy0wMS0xNSAwNDo1MjoxNi4w
MDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3N1c3AuY3Bw
CTIwMTctMDItMjQgMjA6Mzc6MjEuMjE2MDc1NjE4IC0wODAwCkBAIC0xMDcsOSArMTA3LDkgQEAK
IAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNyYW5rOwotCWlmIChzdXNwLT54
ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+PSBzdXNwLT5zcHJpbmcueE1h
eCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkKIAkJc3VzcC0+eCA9IHN1c3At
PnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQX0VYVDsKKwkJc3VzcC0+c3Rh
dGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0ZWQgYWxzbwogCX0KIH0KIAot
LS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwCTIwMTctMDItMTMgMTU6
NTE6MDcuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93
aGVlbC5jcHAJMjAxNy0wMi0yNCAyMDozNzoyMS4yMTcwNzU2MTkgLTA4MDAKQEAgLTQ3LDkgKzQ3
LDkgQEAKIAlDYSAgICAgICAgICAgICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxT
ZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciopTlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAg
ICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RP
UiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdl
dE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAu
N2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNl
Y3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZN
aW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xP
QURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7Ci0Jd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQ
YXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxM
LCB3aGVlbC0+d2VpZ2h0MCAqIDEuMmYpOworCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFy
bUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxM
LCAxLjRmKTsKKwl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hl
ZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMS4wZik7CisJd2hlZWwt
Pm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVlbC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwt
Pm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYpOwogCQogCXdoZWVsLT5sZk1pbiA9IE1JTigwLjhm
LCB3aGVlbC0+bGZNaW4pOwpAQCAtMjEzLDEyICsyMTMsMTIgQEAKIHsKIAl0V2hlZWwgKndoZWVs
ID0gJihjYXItPndoZWVsW2luZGV4XSk7CiAJdGRibGUgYXhsZUZ6ID0gd2hlZWwtPmF4bGVGejsK
LQl0ZGJsZSB2dCwgdiwgdjIsIHdybDsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxvY2l0eQorCXRkYmxl
IHZ0LCB2biwgdiwgdjIsIHdybCwgc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMGY7IC8vIHdoZWVs
IHJlbGF0ZWQgdmVsb2NpdHkKIAl0ZGJsZSBGbiwgRnQ7CiAJdGRibGUgd2F6OwotCXRkYmxlIENv
c0EsIFNpbkE7Ci0JdGRibGUgcywgc2EsIHN4LCBzeTsgLy8gc2xpcCB2ZWN0b3IKLQl0ZGJsZSBz
dG1wLCBGLCBCeDsKKwlkb3VibGUgQ29zQSwgU2luQTsKKwl0ZGJsZSBzLCBzeCwgc3ksIHNhejsg
Ly8gc2xpcCB2ZWN0b3IKKwl0ZGJsZSBGLCBCeDsKIAl0ZGJsZSBtdTsKIAl3aGVlbC0+c3RhdGUg
PSAwOwogCkBAIC0yNDgsNDQgKzI0OCw0NSBAQAogCX0KIAogCS8vIEhPUklaT05UQUwgRk9SQ0VT
Ci0Jd2F6ID0gd2hlZWwtPnN0ZWVyICsgd2hlZWwtPnN0YXRpY1Bvcy5hejsKKwl3YXogPSB3aGVl
bC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6IC0gKFNpbURlbHRhVGltZSpjYXItPkR5bkdD
LnZlbC5heiAvKiBhY2NvdW50IGZvciB5YXcgaW5kdWNlZCB3aGVlbCBkaXJlY3Rpb24gKi8pOwog
CUNvc0EgPSBjb3Mod2F6KTsKIAlTaW5BID0gc2luKHdheik7CiAKIAkvLyB0YW5nZW50IHZlbG9j
aXR5LgogCXZ0ID0gd2hlZWwtPmJvZHlWZWwueCAqIENvc0EgKyB3aGVlbC0+Ym9keVZlbC55ICog
U2luQTsKKwl2biA9IHdoZWVsLT5ib2R5VmVsLnkgKiBDb3NBIC0gd2hlZWwtPmJvZHlWZWwueCAq
IFNpbkE7CiAJdjIgPSB3aGVlbC0+Ym9keVZlbC54ICogd2hlZWwtPmJvZHlWZWwueCArIHdoZWVs
LT5ib2R5VmVsLnkgKiB3aGVlbC0+Ym9keVZlbC55OwotCXYgPSBzcXJ0KHYyKTsKKwl2ID0gc3Fy
dGYodjIpOwogCi0JLy8gc2xpcCBhbmdsZQotCWlmICh2IDwgMC4wMDAwMDFmKSB7Ci0JCXNhID0g
MC4wZjsKLQl9IGVsc2UgewotCQlzYSA9IGF0YW4yKHdoZWVsLT5ib2R5VmVsLnksIHdoZWVsLT5i
b2R5VmVsLngpIC0gd2F6OworCXdybCA9IHdoZWVsLT5zcGluVmVsICogd2hlZWwtPnJhZGl1czsK
KworCWlmIChmYWJzZih2dCAtIHdybCkgPD0gMC4xZikgeyAvLyBBZGRzIG51bWVyaWNhbCBzdGFi
aWxpdHkgYnkgY2F0Y2hpbmcgYWRoZXNpb24KKwkJdnQgPSB3cmw7CiAJfQotCU5PUk1fUElfUEko
c2EpOwogCi0Jd3JsID0gd2hlZWwtPnNwaW5WZWwgKiB3aGVlbC0+cmFkaXVzOwogCWlmICgod2hl
ZWwtPnN0YXRlICYgU0lNX1dIX09OQUlSKSAhPSAwKSB7Ci0JCXN4ID0gc3kgPSAwLjBmOwotCX0g
ZWxzZSBpZiAodiA8IDAuMDAwMDAxZikgewotCQlzeCA9IHdybDsKLQkJc3kgPSAwLjBmOworCQlz
eCA9IHN5ID0gc2F6ID0gMC4wZjsKIAl9IGVsc2UgewotCQlzeCA9ICh2dCAtIHdybCkgLyBmYWJz
KHZ0KTsKLQkJc3kgPSBzaW4oc2EpOworCQkvLyBDT01CSU5FRCBMT05HSVRVRElOQUwsIExBVEVS
QUwsIGFuZCBZQVdJTkcgVElSRSBTTElQIEZPUkNFUzoKKwkJLy8gTm9ybWFsaXplIHRoZSBmcmlj
dGlvbiBjaXJjbGUgdG8gZ2V0IG5vcm1hbGl6ZWQgdmVjdG9yIGNvbXBvbmVudHMgKHN4LCBzeSkg
d2hpbGUKKwkJLy8gYnJha2luZyAodnQpLCBhY2NlbGVyYXRpbmcgKHdybCksIG9yIHdoZWVsIGNv
dW50ZXIgc3BpbiAodnQgLSB3cmwpIGZvciBhbnkgYW5nbGUuCisJCS8vIHNheiBzbGlwIHNwZWVk
IGFjY291bnRzIGZvciByb3RhdGluZyB0aGUgY29udGFjdCBwYXRjaCAoeWF3KS4gKiBhZGQgc3Rl
ZXJpbmcgc3BlZWQgYW5kIHNlbGYgYWxpZ25pbmcgdG9ycXVlLgorCQlzYXogPSAoMS4xZiozLjE0
MTZmKSAqIGNhci0+RHluR0MudmVsLmF6ICogY2FyLT5jYXJFbHQtPl90aXJlV2lkdGgoaW5kZXgp
OyAvLyB5YXcgc2xpcCBzcGVlZC4KKwkJc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMWYgKyAvKiBT
b2Z0ZW5pbmcgZmFjdG9yIDAuMDAwMDAxIHByZXZlbnRzIGRpdmlkZSBieSB6ZXJvICovCisJCQkJ
c3FydCggTUFYKE1BWCgodjIgKyBzYXoqc2F6KSwgKHZuKnZuICsgd3JsKndybCArIHNheipzYXop
KSwgKHZuKnZuICsgKHZ0IC0gd3JsKSoodnQgLSB3cmwpICsgc2F6KnNheikpICk7CisJCXN4ID0g
KHZ0IC0gd3JsKSAvIHNsaXBfbWFnbml0dWRlOworCQlzeSA9IHZuIC8gc2xpcF9tYWduaXR1ZGU7
CisJCXNheiAvPSBzbGlwX21hZ25pdHVkZTsKIAl9Ci0JCi0JRnQgPSAwLjBmOwotCUZuID0gMC4w
ZjsKLQlzID0gc3FydChzeCpzeCtzeSpzeSk7CisKKwlzID0gc3FydGYoc3gqc3grc3kqc3krc2F6
KnNheik7CiAKIAl7Ci0JCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3Vu
ZC4KLQkJaWYgKHYgPCAyLjBmKSB7CisJCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9u
IGZvciBzb3VuZCAoc3VzcGljaW91c2x5OyBhZmZlY3RzIHRyYWN0aW9uIGFsc28pLgorCQlpZiAo
KHYgPCAwLjAxZikgfHwgKHpmb3JjZSA8IDAuMDAyZikpIHsKIAkJCWNhci0+Y2FyRWx0LT5fc2tp
ZFtpbmRleF0gPSAwLjBmOwogCQl9IGVsc2UgewotCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4
XSA9ICBNSU4oMS4wZiwgKHMqemZvcmNlKjAuMDAwMmYpKTsKKwkJCWNhci0+Y2FyRWx0LT5fc2tp
ZFtpbmRleF0gPSBzOyAvLyBsaW5lYXIgKHRhbmggcmVtb3ZlZCBpbiBncnNraWRtYXJrcy5jcHAp
CiAJCX0KIAl9CiAKQEAgLTI5OSw0NyArMzAwLDQ4IEBACiAJCWNhbWJlckRlbHRhID0gY2FzdGVy
Q2FtYmVyOwogCX0KIAotCXN0bXAgPSBNSU4ocywgMS41Zik7Ci0JCi0JLy8gTUFHSUMgRk9STVVM
QQotCUJ4ID0gd2hlZWwtPm1mQiAqIHN0bXA7Ci0JRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihC
eCAqICgxLjBmIC0gd2hlZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBm
ICsgc3RtcCAqIHNpbVNraWRGYWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CisJLy8g
TUFHSUMgRk9STVVMQSAvLyBOb3RlOiBGID0gc2luKC4uLikgYmVsb3cgcmV0dXJucyBub3JtYWxp
emVkIGZvcmNlIQorCUJ4ID0gd2hlZWwtPm1mQiAqIHM7CisJRiA9IHNpbih3aGVlbC0+bWZDICog
YXRhbihCeCAqICgxLjBmIC0gd2hlZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAq
ICgxLjBmICsgcyAqIHNpbVNraWRGYWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CiAK
IAkvLyBsb2FkIHNlbnNpdGl2aXR5CiAJbXUgPSB3aGVlbC0+bXUgKiAod2hlZWwtPmxmTWluICsg
KHdoZWVsLT5sZk1heCAtIHdoZWVsLT5sZk1pbikgKiBleHAod2hlZWwtPmxmSyAqIHpmb3JjZSAv
IHdoZWVsLT5vcExvYWQpKTsKIAogCUYgKj0gemZvcmNlICogbXUgKiB3aGVlbC0+dHJrUG9zLnNl
Zy0+c3VyZmFjZS0+a0ZyaWN0aW9uICogKDEuMGYgKyAwLjA1ZiAqIHNpbigoLXdoZWVsLT5zdGF0
aWNQb3MuYXggKyBjYW1iZXJEZWx0YSkgKiAxOC4wZikpOwkvKiBjb2VmZiAqLwogCUYgKj0gd2hl
ZWwtPmN1cnJlbnRHcmlwRmFjdG9yOwotCQorCiAJd2hlZWwtPnJvbGxSZXMgPSB6Zm9yY2UgKiB3
aGVlbC0+dHJrUG9zLnNlZy0+c3VyZmFjZS0+a1JvbGxSZXM7Ci0gICAgY2FyLT5jYXJFbHQtPnBy
aXYud2hlZWxbaW5kZXhdLnJvbGxSZXMgPSB3aGVlbC0+cm9sbFJlczsKKwkvLyB3aGVlbCBheGlz
IGJhc2VkCisJcyArPSAwLjAwMDAwMWY7IC8vIGFkZCAwLjAwMDAwMSB0byBhdm9pZCBkaXZpZGUg
YnkgemVybyBsYXRlci4KKwlGdCA9IC0oRiAtIHdoZWVsLT5yb2xsUmVzKSAqIHN4L3M7IC8vIHJv
bGxpbmcgcmVzaXN0YW5jZSBpcyB0aGUgcm9sbGluZyB2ZWN0b3IgY29tcG9uZW50IG9ubHkuCisJ
Rm4gPSAtRiAqIHN5L3M7CiAKLQlpZiAocyA+IDAuMDAwMDAxZikgewotCQkvLyB3aGVlbCBheGlz
IGJhc2VkCi0JCUZ0IC09IEYgKiBzeCAvIHM7Ci0JCUZuIC09IEYgKiBzeSAvIHM7Ci0JfQorCWNh
ci0+RHluR0MuYWNjLmF6ICs9IC1GICogc2F6L3MgKiBTaW1EZWx0YVRpbWUgKiBjYXItPklpbnYu
ejsgLy8gc2VlIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVw
ZGF0ZSgpCiAKLQlSRUxBWEFUSU9OMihGbiwgd2hlZWwtPnByZUZuLCA1MC4wZik7Ci0JUkVMQVhB
VElPTjIoRnQsIHdoZWVsLT5wcmVGdCwgNTAuMGYpOworCXdoZWVsLT5yb2xsUmVzICo9IGZhYnNm
KHN4L3MpOyAvLyBub3QgdXNlZCAocmVtb3ZlZCBmcm9tIC9zcmMvbW9kdWxlcy9zaW11L3NpbXV2
Mi9jYXIuY3BwKQorCWNhci0+Y2FyRWx0LT5wcml2LndoZWVsW2luZGV4XS5yb2xsUmVzID0gd2hl
ZWwtPnJvbGxSZXM7IC8vIG5vdCB1c2VkIGluIC9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBo
L0NhclNvdW5kRGF0YS5jcHAKKworCXdheiA9IHdoZWVsLT5zdGVlciArIHdoZWVsLT5zdGF0aWNQ
b3MuYXo7IC8qIGRvbid0IGluY2x1ZGUgeWF3IGluZHVjZWQgd2hlZWwgZGlyZWN0aW9uIGhlcmUg
Ki8KKwlDb3NBID0gY29zKHdheik7CisJU2luQSA9IHNpbih3YXopOwogCiAJd2hlZWwtPnJlbFBv
cy5heiA9IHdhejsKIAkKIAl3aGVlbC0+Zm9yY2VzLnggPSBGdCAqIENvc0EgLSBGbiAqIFNpbkE7
CiAJd2hlZWwtPmZvcmNlcy55ID0gRnQgKiBTaW5BICsgRm4gKiBDb3NBOwogCXdoZWVsLT5zcGlu
VHEgPSBGdCAqIHdoZWVsLT5yYWRpdXM7Ci0Jd2hlZWwtPnNhID0gc2E7CisJd2hlZWwtPnNhID0g
YXRhbjIod2hlZWwtPmJvZHlWZWwueSwgd2hlZWwtPmJvZHlWZWwueCkgLSB3YXo7CiAJd2hlZWwt
PnN4ID0gc3g7CiAKIAl3aGVlbC0+dGlyZVpGb3JjZSA9IHpmb3JjZTsKLQl3aGVlbC0+dGlyZVNs
aXAgPSBzdG1wOworCXdoZWVsLT50aXJlU2xpcCA9IHM7CiAKIAl3aGVlbC0+ZmVlZEJhY2suc3Bp
blZlbCA9IHdoZWVsLT5zcGluVmVsOwogCXdoZWVsLT5mZWVkQmFjay5UcSA9IHdoZWVsLT5zcGlu
VHE7CiAJd2hlZWwtPmZlZWRCYWNrLmJya1RxID0gd2hlZWwtPmJyYWtlLlRxOwogCi0JY2FyLT5j
YXJFbHQtPl93aGVlbFNsaXBTaWRlKGluZGV4KSA9IHN5KnY7Ci0JY2FyLT5jYXJFbHQtPl93aGVl
bFNsaXBBY2NlbChpbmRleCkgPSBzeCp2OworCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwU2lkZShp
bmRleCkgPSB2biooMS4wZi1zeSk7IC8vIHdoZWVsIG5vcm1hbCBhZGhlc2lvbiB2ZWxvY2l0eQor
CWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwQWNjZWwoaW5kZXgpID0gdnQqKDEuMGYtc3gpOyAvLyB3
aGVlbCB0YW5nZW50IGFkaGVzaW9uIHZlbG9jaXR5CiAJY2FyLT5jYXJFbHQtPl9yZWFjdGlvbltp
bmRleF0gPSB6Zm9yY2U7CiB9CiAKQEAgLTM1NCw4ICszNTYsNiBAQAogCQl3aGVlbCA9ICYoY2Fy
LT53aGVlbFtpXSk7CiAJCXdoZWVsLT5zcGluVmVsID0gd2hlZWwtPmluLnNwaW5WZWw7CiAKLQkJ
UkVMQVhBVElPTjIod2hlZWwtPnNwaW5WZWwsIHdoZWVsLT5wcmVzcGluVmVsLCA1MC4wZik7Ci0K
IAkJd2hlZWwtPnJlbFBvcy5heSArPSB3aGVlbC0+c3BpblZlbCAqIFNpbURlbHRhVGltZTsKIAkJ
Tk9STV9QSV9QSSh3aGVlbC0+cmVsUG9zLmF5KTsKIAkJY2FyLT5jYXJFbHQtPl93aGVlbFNwaW5W
ZWwoaSkgPSB3aGVlbC0+c3BpblZlbDsK
------=_Part_57972578_240015899.1488342728400
Content-Type: text/x-patch; name=torcs-1.3.7.contact.3.patch
Content-Disposition: attachment; filename=torcs-1.3.7.contact.3.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRh
LmNwcAkyMDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3MtMS4zLjcv
c3JjL21vZHVsZXMvZ3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTYtMTEtMjMg
MTE6MTg6MTQuNjM3NDAyNjIxIC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQog
CisvLyBDYWxjdWxhdGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4g
ZWZmaWNpZW50IGZvcm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwg
dG8gYXogW2luIHJhZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4w
IGZvciBtb2RlcmF0ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNo
IGlzIGJlbmVhdGggR0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXIt
Pl95YXc7CiAgICAgZm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBj
YXItPl95YXc7Ci0gICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBD
b3N6ID0gY29zKGF6KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+
cHJpdi53aGVlbFtpXS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVl
bFtpXS5yZWxQb3MueTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICog
Q29zeiAtIHkgKiBTaW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7
CisgICAgICAgIHRkYmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQor
ICAgICAgICB0ZGJsZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0
ZGJsZSBkdXggPSAtY2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXIt
Pl95YXdfcmF0ZSAqIHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENv
c3ogLSBkdXkgKiBTaW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsK
KyAgICAgICAgZHV4ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5H
Q2cudmVsLnggKyBkdXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cu
dmVsLnkgKyBkdXk7CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVs
Lno7CiAgICAgICAgIHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsK
ICAgICAgICAgd2hlZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAg
ICAgICB3aGVlbFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVl
bFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0t
IHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3Bw
CTIwMTQtMDItMTAgMDM6MDk6MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy0xLjMuNy9zcmMv
bW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBoL2dyc2tpZG1hcmtzLmNwcAkyMDE2LTExLTIzIDExOjE4
OjE0LjYzODQwMjYwMyAtMDgwMApAQCAtMTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJ
aWYgKGNhci0+X3NraWRbaV0gPiAwLjFmKSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3Nl
bnNpdGl2aXR5KmNhci0+X3NraWRbaV0pOwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAu
MGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsg
Ly8gbGluZWFyICh0YW5oIHJlbW92ZWQsIHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9
IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRkYmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5z
a2lkbWFya3MtPnN0cmlwc1tpXS5zbW9vdGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBA
CiAJCX0KIAogCQlpZiAoY2FyLT5wdWIuc3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2Ns
clszXSA+IDAuMWYpIHsKKwkgICAgCWlmIChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdv
cmtzIGJldHRlciB0aGFuIDAuMSAvLyBzb21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/
IQogICAgICAgICAgICAgICAgIAogCQkJCWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAq
IDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGluZ19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzLTEuMy43L3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNi0wNS0xNiAxNTo1MzowNy4wMDAwMDAw
MDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNi0xMS0yMyAxMToxODoxNC42NDQ0MDI1MDMgLTA4MDAKQEAgLTY0LDcgKzY0LDcgQEAKIAl9
CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoayAqIGNh
ci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsgY2FyLT5kaW1lbnNpb24ueiAqIGNh
ci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEyLjAgLyAoY2FyLT5tYXNzICogKGNh
ci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsgayAqIGNhci0+ZGltZW5zaW9uLngg
KiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmlndXJlIGNvbXBvbmVudHMgKi8KQEAg
LTE0Niw3ICsxNDYsNiBAQAogCXRkYmxlCW0sIHcsIG1pbnY7CiAJdGRibGUJU2luVGhldGE7CiAJ
dGRibGUJQ29zeiwgU2luejsKLQl0ZGJsZQl2LCBSLCBSdiwgUm0sIFJ4LCBSeTsKIAkKIAlDb3N6
ID0gY2FyLT5Db3N6ID0gY29zKGNhci0+RHluR0NnLnBvcy5heik7CiAJU2lueiA9IGNhci0+U2lu
eiA9IHNpbihjYXItPkR5bkdDZy5wb3MuYXopOwpAQCAtMTk5LDQxICsxOTgsMTggQEAKIAkJRi5N
LnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ldLnhwb3MgLSBjYXItPnN0YXRH
Qy54KTsKIAl9CiAJCi0JLyogUm9sbGluZyBSZXNpc3RhbmNlICovCi0JdiA9IHNxcnQoY2FyLT5E
eW5HQ2cudmVsLnggKiBjYXItPkR5bkdDZy52ZWwueCArIGNhci0+RHluR0NnLnZlbC55ICogY2Fy
LT5EeW5HQ2cudmVsLnkpOwotCVIgPSAwOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJ
UiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMSkgewotCQlS
diA9IFIgLyB2OwotCQlpZiAoKFJ2ICogbWludiAqIFNpbURlbHRhVGltZSkgPiB2KSB7Ci0JCQlS
diA9IHYgKiBtIC8gU2ltRGVsdGFUaW1lOwotCQl9Ci0JfSBlbHNlIHsKLQkJUnYgPSAwOwotCX0K
LQlSeCA9IFJ2ICogY2FyLT5EeW5HQ2cudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+RHluR0NnLnZl
bC55OwotCQotCWlmICgoUiAqIGNhci0+d2hlZWxiYXNlIC8gMi4wICogY2FyLT5JaW52LnopID4g
ZmFicyhjYXItPkR5bkdDZy52ZWwuYXopKSB7Ci0JCVJtID0gY2FyLT5EeW5HQ2cudmVsLmF6IC8g
Y2FyLT5JaW52Lno7Ci0JfSBlbHNlIHsKLQkJUm0gPSBTSUdOKGNhci0+RHluR0NnLnZlbC5heikg
KiBSICogY2FyLT53aGVlbGJhc2UgLyAyLjA7Ci0JfQotCQogCS8qIGNvbXB1dGUgYWNjZWxlcmF0
aW9ucyAqLwogCWNhci0+RHluR0MuYWNjLnggPSBGLkYueCAqIG1pbnY7CiAJY2FyLT5EeW5HQy5h
Y2MueSA9IEYuRi55ICogbWludjsKIAljYXItPkR5bkdDLmFjYy56ID0gRi5GLnogKiBtaW52Owog
CQotCWNhci0+RHluR0NnLmFjYy54ID0gKEYuRi54ICogQ29zeiAtIEYuRi55ICogU2lueiAtIFJ4
KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQ2cuYWNjLnkgPSAoRi5GLnggKiBTaW56ICsgRi5GLnkgKiBD
b3N6IC0gUnkpICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueCA9IChGLkYueCAqIENvc3ogLSBG
LkYueSAqIFNpbnopICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueSA9IChGLkYueCAqIFNpbnog
KyBGLkYueSAqIENvc3opICogbWludjsKIAljYXItPkR5bkdDZy5hY2MueiA9IGNhci0+RHluR0Mu
YWNjLno7CiAJCiAJY2FyLT5EeW5HQ2cuYWNjLmF4ID0gY2FyLT5EeW5HQy5hY2MuYXggPSBGLk0u
eCAqIGNhci0+SWludi54OwogCWNhci0+RHluR0NnLmFjYy5heSA9IGNhci0+RHluR0MuYWNjLmF5
ID0gRi5NLnkgKiBjYXItPklpbnYueTsKLQljYXItPkR5bkdDZy5hY2MuYXogPSBjYXItPkR5bkdD
LmFjYy5heiA9IChGLk0ueiAtIFJtKSAqIGNhci0+SWludi56OworCWNhci0+RHluR0NnLmFjYy5h
eiA9IGNhci0+RHluR0MuYWNjLmF6ICs9IEYuTS56ICogY2FyLT5JaW52Lno7IC8vICs9IHNlZSB0
b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9zaW11LmNwcCA6OiBTaW1VcGRhdGUoKSAKIH0K
IAogc3RhdGljIHZvaWQKQEAgLTI1Niw3ICsyMzIsMTUgQEAKIAlpZiAoZmFicyhjYXItPkR5bkdD
Zy52ZWwuYXopID4gOS4wKSB7CiAJCWNhci0+RHluR0NnLnZlbC5heiA9IFNJR04oY2FyLT5EeW5H
Q2cudmVsLmF6KSAqIDkuMDsKIAl9Ci0JCQorCQorCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3Rh
dGlvbmFyeSBjYXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNh
ci0+RHluR0NnLnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkg
KworCQljYXItPkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJewor
CQljYXItPkR5bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52
ZWwuYXogPSAwLjBmOworCX0KKwkKIAljYXItPkR5bkdDLnZlbC5heCA9IGNhci0+RHluR0NnLnZl
bC5heDsKIAljYXItPkR5bkdDLnZlbC5heSA9IGNhci0+RHluR0NnLnZlbC5heTsKIAljYXItPkR5
bkdDLnZlbC5heiA9IGNhci0+RHluR0NnLnZlbC5hejsKLS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1
bGVzL3NpbXUvc2ltdXYyL2NvbGxpZGUuY3BwCTIwMTQtMDQtMTIgMDY6NTU6MjkuMDAwMDAwMDAw
IC0wNzAwCisrKyB0b3Jjcy0xLjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9jb2xsaWRlLmNw
cAkyMDE2LTExLTIzIDExOjE4OjE0LjY0NjQwMjQ0MiAtMDgwMApAQCAtMzcsNyArMzcsNyBAQAog
CWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJd2hlZWwgPSAmKGNhci0+d2hlZWxbaV0pOwog
CQlpZiAod2hlZWwtPnN0YXRlICYgU0lNX1NVU1BfQ09NUCkgewotCQkJY2FyLT5EeW5HQ2cucG9z
LnogKz0gd2hlZWwtPnN1c3Auc3ByaW5nLnBhY2tlcnMgLSB3aGVlbC0+cmlkZUhlaWdodDsKKwkJ
CWNhci0+RHluR0NnLnBvcy56ICs9IDAuMjVmKih3aGVlbC0+c3VzcC5zcHJpbmcucGFja2VycyAt
IHdoZWVsLT5yaWRlSGVpZ2h0KTsgLy8gbGV2ZXJhZ2Ugb2YgNCB3aGVlbHMKIAkJCVJ0VHJhY2tT
dXJmYWNlTm9ybWFsTCgmKHdoZWVsLT50cmtQb3MpLCAmbm9ybWFsKTsKIAkJCWRvdFByb2QgPSAo
Y2FyLT5EeW5HQ2cudmVsLnggKiBub3JtYWwueCArIGNhci0+RHluR0NnLnZlbC55ICogbm9ybWFs
LnkgKyBjYXItPkR5bkdDZy52ZWwueiAqIG5vcm1hbC56KSAqIHdoZWVsLT50cmtQb3Muc2VnLT5z
dXJmYWNlLT5rUmVib3VuZDsKIAkJCWlmIChkb3RQcm9kIDwgMC4wZikgewotLS0gdG9yY3MtMS4z
Ljcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc2ltdS5jcHAJMjAxNi0xMC0xNCAyMTo1MDoxMS4w
MDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3Np
bXUuY3BwCTIwMTYtMTEtMjMgMTE6MTg6MTQuNjQ3NDAyNDEzIC0wODAwCkBAIC0zODAsNiArMzgw
LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7CiAJCQl9CiAJCQlDSEVDSyhjYXIpOwor
CQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBzZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2lt
dS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBkYXRlRm9yY2UoKQogCQkJZm9yIChpID0g
MDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRhdGVGb3JjZShjYXIsIGkpOwogCQkJfQot
LS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNi0wMy0x
OSAwNzo0NzowNS4wMDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3Np
bXUvc2ltdXYyL3N1c3AuY3BwCTIwMTYtMTEtMjMgMTE6MTg6MTQuNjQ4NDAyMzg2IC0wODAwCkBA
IC0xMDcsOSArMTA3LDkgQEAKIAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNy
YW5rOwotCWlmIChzdXNwLT54ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+
PSBzdXNwLT5zcHJpbmcueE1heCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkK
IAkJc3VzcC0+eCA9IHN1c3AtPnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQ
X0VYVDsKKwkJc3VzcC0+c3RhdGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0
ZWQgYWxzbwogCX0KIH0KIAotLS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
d2hlZWwuY3BwCTIwMTYtMDUtMTYgMTU6NTM6MDcuMDAwMDAwMDAwIC0wNzAwCisrKyB0b3Jjcy0x
LjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93aGVlbC5jcHAJMjAxNi0xMS0yMyAxMToxODox
NC42NDk0MDIzNjEgLTA4MDAKQEAgLTQ2LDggKzQ2LDggQEAKIAlDYSAgICAgICAgICAgICAgICAg
ICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciop
TlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxl
LCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVG
YWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhd
LCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuN2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAg
ICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChj
aGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0o
aGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7
CisJd2hlZWwtPmxmTWF4ICAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtp
bmRleF0sIFBSTV9MT0FERk1BWCwgKGNoYXIqKU5VTEwsIDEuNGYpOworCXdoZWVsLT5sZk1pbiAg
ICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZN
SU4sIChjaGFyKilOVUxMLCAxLjBmKTsKLQl3aGVlbC0+b3BMb2FkICAgICAgICAgPSBHZlBhcm1H
ZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX09QTE9BRCwgKGNoYXIqKU5VTEwsIHdo
ZWVsLT53ZWlnaHQwICogMS4yZik7CisJd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVl
bC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwtPm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYp
OwogCkBAIC0xNzQsMTIgKzE3NCwxMiBAQAogewogCXRXaGVlbCAqd2hlZWwgPSAmKGNhci0+d2hl
ZWxbaW5kZXhdKTsKIAl0ZGJsZSBheGxlRnogPSB3aGVlbC0+YXhsZUZ6OwotCXRkYmxlIHZ0LCB2
LCB2Miwgd3JsOyAvLyB3aGVlbCByZWxhdGVkIHZlbG9jaXR5CisJdGRibGUgdnQsIHZuLCB2LCB2
Miwgd3JsLCBzbGlwX21hZ25pdHVkZSA9IDAuMDAwMDAwZjsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxv
Y2l0eQogCXRkYmxlIEZuLCBGdDsKIAl0ZGJsZSB3YXo7Ci0JdGRibGUgQ29zQSwgU2luQTsKLQl0
ZGJsZSBzLCBzYSwgc3gsIHN5OyAvLyBzbGlwIHZlY3RvcgotCXRkYmxlIHN0bXAsIEYsIEJ4Owor
CWRvdWJsZSBDb3NBLCBTaW5BOworCXRkYmxlIHMsIHN4LCBzeSwgc2F6OyAvLyBzbGlwIHZlY3Rv
cgorCXRkYmxlIEYsIEJ4OwogCXRkYmxlIG11OwogCXdoZWVsLT5zdGF0ZSA9IDA7CiAKQEAgLTIw
OSw1MiArMjA5LDUxIEBACiAJfQogCiAJLy8gSE9SSVpPTlRBTCBGT1JDRVMKLQl3YXogPSB3aGVl
bC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6OworCXdheiA9IHdoZWVsLT5zdGVlciArIHdo
ZWVsLT5zdGF0aWNQb3MuYXogLSAoU2ltRGVsdGFUaW1lKmNhci0+RHluR0MudmVsLmF6IC8qIGFj
Y291bnQgZm9yIHlhdyBpbmR1Y2VkIHdoZWVsIGRpcmVjdGlvbiAqLyk7CiAJQ29zQSA9IGNvcyh3
YXopOwogCVNpbkEgPSBzaW4od2F6KTsKIAogCS8vIHRhbmdlbnQgdmVsb2NpdHkuCiAJdnQgPSB3
aGVlbC0+Ym9keVZlbC54ICogQ29zQSArIHdoZWVsLT5ib2R5VmVsLnkgKiBTaW5BOworCXZuID0g
d2hlZWwtPmJvZHlWZWwueSAqIENvc0EgLSB3aGVlbC0+Ym9keVZlbC54ICogU2luQTsKIAl2MiA9
IHdoZWVsLT5ib2R5VmVsLnggKiB3aGVlbC0+Ym9keVZlbC54ICsgd2hlZWwtPmJvZHlWZWwueSAq
IHdoZWVsLT5ib2R5VmVsLnk7Ci0JdiA9IHNxcnQodjIpOworCXYgPSBzcXJ0Zih2Mik7CiAKLQkv
LyBzbGlwIGFuZ2xlCi0JaWYgKHYgPCAwLjAwMDAwMWYpIHsKLQkJc2EgPSAwLjBmOwotCX0gZWxz
ZSB7Ci0JCXNhID0gYXRhbjIod2hlZWwtPmJvZHlWZWwueSwgd2hlZWwtPmJvZHlWZWwueCkgLSB3
YXo7CisJd3JsID0gd2hlZWwtPnNwaW5WZWwgKiB3aGVlbC0+cmFkaXVzOworCisJaWYgKGZhYnNm
KHZ0IC0gd3JsKSA8PSAwLjFmKSB7IC8vIEFkZHMgbnVtZXJpY2FsIHN0YWJpbGl0eSBieSBjYXRj
aGluZyBhZGhlc2lvbgorCQl2dCA9IHdybDsKIAl9Ci0JTk9STV9QSV9QSShzYSk7CiAKLQl3cmwg
PSB3aGVlbC0+c3BpblZlbCAqIHdoZWVsLT5yYWRpdXM7CiAJaWYgKCh3aGVlbC0+c3RhdGUgJiBT
SU1fV0hfT05BSVIpICE9IDApIHsKLQkJc3ggPSBzeSA9IDAuMGY7Ci0JfSBlbHNlIGlmICh2IDwg
MC4wMDAwMDFmKSB7Ci0JCXN4ID0gd3JsOwotCQlzeSA9IDAuMGY7CisJCXN4ID0gc3kgPSBzYXog
PSAwLjBmOwogCX0gZWxzZSB7Ci0JCXN4ID0gKHZ0IC0gd3JsKSAvIGZhYnModnQpOwotCQlzeSA9
IHNpbihzYSk7CisJCS8vIENPTUJJTkVEIExPTkdJVFVESU5BTCwgTEFURVJBTCwgYW5kIFlBV0lO
RyBUSVJFIFNMSVAgRk9SQ0VTOgorCQkvLyBOb3JtYWxpemUgdGhlIGZyaWN0aW9uIGNpcmNsZSB0
byBnZXQgbm9ybWFsaXplZCB2ZWN0b3IgY29tcG9uZW50cyAoc3gsIHN5KSB3aGlsZQorCQkvLyBi
cmFraW5nICh2dCksIGFjY2VsZXJhdGluZyAod3JsKSwgb3Igd2hlZWwgY291bnRlciBzcGluICh2
dCAtIHdybCkgZm9yIGFueSBhbmdsZS4KKwkJLy8gc2F6IHNsaXAgc3BlZWQgYWNjb3VudHMgZm9y
IHJvdGF0aW5nIHRoZSBjb250YWN0IHBhdGNoICh5YXcpLiAqIGFkZCBzdGVlcmluZyBzcGVlZCBh
bmQgc2VsZiBhbGlnbmluZyB0b3JxdWUuCisJCXNheiA9ICgxLjFmKjMuMTQxNmYpICogY2FyLT5E
eW5HQy52ZWwuYXogKiBjYXItPmNhckVsdC0+X3RpcmVXaWR0aChpbmRleCk7IC8vIHlhd2luZyBz
bGlwIHNwZWVkLgorCQlzbGlwX21hZ25pdHVkZSA9IDAuMDAwMDAxZiArIC8qIFNvZnRlbmluZyBm
YWN0b3IgMC4wMDAwMDEgcHJldmVudHMgZGl2aWRlIGJ5IHplcm8gKi8KKwkJCQlzcXJ0KCBNQVgo
TUFYKCh2MiArIHNheipzYXopLCAodm4qdm4gKyB3cmwqd3JsICsgc2F6KnNheikpLCAodm4qdm4g
KyAodnQgLSB3cmwpKih2dCAtIHdybCkgKyBzYXoqc2F6KSkgKTsKKwkJc3ggPSAodnQgLSB3cmwp
IC8gc2xpcF9tYWduaXR1ZGU7CisJCXN5ID0gdm4gLyBzbGlwX21hZ25pdHVkZTsKKwkJc2F6IC89
IHNsaXBfbWFnbml0dWRlOwogCX0KIAotCUZ0ID0gMC4wZjsKLQlGbiA9IDAuMGY7Ci0JcyA9IHNx
cnQoc3gqc3grc3kqc3kpOworCXMgPSBzcXJ0ZihzeCpzeCtzeSpzeStzYXoqc2F6KTsKIAogCXsK
LQkJLy8gY2FsY3VsYXRlIF9za2lkIGFuZCBfcmVhY3Rpb24gZm9yIHNvdW5kLgotCQlpZiAodiA8
IDIuMGYpIHsKKwkJLy8gY2FsY3VsYXRlIF9za2lkIGFuZCBfcmVhY3Rpb24gZm9yIHNvdW5kIChz
dXNwaWNpb3VzbHk7IGFmZmVjdHMgdHJhY3Rpb24gYWxzbykuCisJCWlmICgodiA8IDAuMDFmKSB8
fCAoemZvcmNlIDwgMC4wMDJmKSkgewogCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9IDAu
MGY7CiAJCX0gZWxzZSB7Ci0JCQljYXItPmNhckVsdC0+X3NraWRbaW5kZXhdID0gIE1JTigxLjBm
LCAocyp6Zm9yY2UqMC4wMDAyZikpOworCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9IHM7
IC8vIGxpbmVhciAodGFuaCByZW1vdmVkIGluIGdyc2tpZG1hcmtzLmNwcCkKIAkJfQogCX0KIAot
CXN0bXAgPSBNSU4ocywgMS41Zik7Ci0JCi0JLy8gTUFHSUMgRk9STVVMQQotCUJ4ID0gd2hlZWwt
Pm1mQiAqIHN0bXA7Ci0JRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBmIC0gd2hl
ZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgc3RtcCAqIHNpbVNr
aWRGYWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CisJLy8gTUFHSUMgRk9STVVMQSAv
LyBOb3RlOiBGID0gc2luKC4uLikgYmVsb3cgcmV0dXJucyBub3JtYWxpemVkIGZvcmNlIQorCUJ4
ID0gd2hlZWwtPm1mQiAqIHM7CisJRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBm
IC0gd2hlZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgcyAqIHNp
bVNraWRGYWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CiAKIAkvLyBsb2FkIHNlbnNp
dGl2aXR5CiAJbXUgPSB3aGVlbC0+bXUgKiAod2hlZWwtPmxmTWluICsgKHdoZWVsLT5sZk1heCAt
IHdoZWVsLT5sZk1pbikgKiBleHAod2hlZWwtPmxmSyAqIHpmb3JjZSAvIHdoZWVsLT5vcExvYWQp
KTsKQEAgLTI2MiwzMSArMjYxLDM1IEBACiAJRiAqPSB6Zm9yY2UgKiBtdSAqIHdoZWVsLT50cmtQ
b3Muc2VnLT5zdXJmYWNlLT5rRnJpY3Rpb24gKiAoMS4wZiArIDAuMDVmICogc2luKC13aGVlbC0+
c3RhdGljUG9zLmF4ICogMTguMGYpKTsJLyogY29lZmYgKi8KIAogCXdoZWVsLT5yb2xsUmVzID0g
emZvcmNlICogd2hlZWwtPnRya1Bvcy5zZWctPnN1cmZhY2UtPmtSb2xsUmVzOwotICAgIGNhci0+
Y2FyRWx0LT5wcml2LndoZWVsW2luZGV4XS5yb2xsUmVzID0gd2hlZWwtPnJvbGxSZXM7CiAKLQlp
ZiAocyA+IDAuMDAwMDAxZikgewotCQkvLyB3aGVlbCBheGlzIGJhc2VkCi0JCUZ0IC09IEYgKiBz
eCAvIHM7Ci0JCUZuIC09IEYgKiBzeSAvIHM7Ci0JfQorCS8vIHdoZWVsIGF4aXMgYmFzZWQKKwlz
ICs9IDAuMDAwMDAxZjsgLy8gYWRkIDAuMDAwMDAxIHRvIGF2b2lkIGRpdmlkZSBieSB6ZXJvIGxh
dGVyLgorCUZ0ID0gLShGIC0gd2hlZWwtPnJvbGxSZXMpICogc3gvczsgLy8gcm9sbGluZyByZXNp
c3RhbmNlIGlzIHRoZSByb2xsaW5nIHZlY3RvciBjb21wb25lbnQgb25seS4KKwlGbiA9IC1GICog
c3kvczsKIAotCVJFTEFYQVRJT04yKEZuLCB3aGVlbC0+cHJlRm4sIDUwLjBmKTsKLQlSRUxBWEFU
SU9OMihGdCwgd2hlZWwtPnByZUZ0LCA1MC4wZik7CisJY2FyLT5EeW5HQy5hY2MuYXogKz0gLUYg
KiBzYXovcyAqIFNpbURlbHRhVGltZSAqIGNhci0+SWludi56OyAvLyBzZWUgdG9yY3Mvc3JjL21v
ZHVsZXMvc2ltdS9zaW11djIvc2ltdS5jcHAgOjogU2ltVXBkYXRlKCkKKworCXdoZWVsLT5yb2xs
UmVzICo9IGZhYnNmKHN4L3MpOyAvLyBub3QgdXNlZCAocmVtb3ZlZCBmcm9tIC9zcmMvbW9kdWxl
cy9zaW11L3NpbXV2Mi9jYXIuY3BwKQorCWNhci0+Y2FyRWx0LT5wcml2LndoZWVsW2luZGV4XS5y
b2xsUmVzID0gd2hlZWwtPnJvbGxSZXM7IC8vIG5vdCB1c2VkIGluIC9zcmMvbW9kdWxlcy9ncmFw
aGljL3NzZ2dyYXBoL0NhclNvdW5kRGF0YS5jcHAKKworCXdheiA9IHdoZWVsLT5zdGVlciArIHdo
ZWVsLT5zdGF0aWNQb3MuYXo7IC8qIGRvbid0IGluY2x1ZGUgeWF3IGluZHVjZWQgd2hlZWwgZGly
ZWN0aW9uIGhlcmUgKi8KKwlDb3NBID0gY29zKHdheik7CisJU2luQSA9IHNpbih3YXopOwogCiAJ
d2hlZWwtPnJlbFBvcy5heiA9IHdhejsKIAogCXdoZWVsLT5mb3JjZXMueCA9IEZ0ICogQ29zQSAt
IEZuICogU2luQTsKIAl3aGVlbC0+Zm9yY2VzLnkgPSBGdCAqIFNpbkEgKyBGbiAqIENvc0E7CiAJ
d2hlZWwtPnNwaW5UcSA9IEZ0ICogd2hlZWwtPnJhZGl1czsKLQl3aGVlbC0+c2EgPSBzYTsKKwl3
aGVlbC0+c2EgPSBhdGFuMih3aGVlbC0+Ym9keVZlbC55LCB3aGVlbC0+Ym9keVZlbC54KSAtIHdh
ejsKIAl3aGVlbC0+c3ggPSBzeDsKIAogCXdoZWVsLT5mZWVkQmFjay5zcGluVmVsID0gd2hlZWwt
PnNwaW5WZWw7CiAJd2hlZWwtPmZlZWRCYWNrLlRxID0gd2hlZWwtPnNwaW5UcTsKIAl3aGVlbC0+
ZmVlZEJhY2suYnJrVHEgPSB3aGVlbC0+YnJha2UuVHE7CiAKLQljYXItPmNhckVsdC0+X3doZWVs
U2xpcFNpZGUoaW5kZXgpID0gc3kqdjsKLQljYXItPmNhckVsdC0+X3doZWVsU2xpcEFjY2VsKGlu
ZGV4KSA9IHN4KnY7CisJY2FyLT5jYXJFbHQtPl93aGVlbFNsaXBTaWRlKGluZGV4KSA9IHZuKigx
LjBmLXN5KTsgLy8gd2hlZWwgbm9ybWFsIGFkaGVzaW9uIHZlbG9jaXR5CisJY2FyLT5jYXJFbHQt
Pl93aGVlbFNsaXBBY2NlbChpbmRleCkgPSB2dCooMS4wZi1zeCk7IC8vIHdoZWVsIHRhbmdlbnQg
YWRoZXNpb24gdmVsb2NpdHkKIAljYXItPmNhckVsdC0+X3JlYWN0aW9uW2luZGV4XSA9IHpmb3Jj
ZTsKIH0KIApAQCAtMzAxLDggKzMwNCw2IEBACiAJCXdoZWVsID0gJihjYXItPndoZWVsW2ldKTsK
IAkJd2hlZWwtPnNwaW5WZWwgPSB3aGVlbC0+aW4uc3BpblZlbDsKIAotCQlSRUxBWEFUSU9OMih3
aGVlbC0+c3BpblZlbCwgd2hlZWwtPnByZXNwaW5WZWwsIDUwLjBmKTsKLQogCQl3aGVlbC0+cmVs
UG9zLmF5ICs9IHdoZWVsLT5zcGluVmVsICogU2ltRGVsdGFUaW1lOwogCQlOT1JNX1BJX1BJKHdo
ZWVsLT5yZWxQb3MuYXkpOwogCQljYXItPmNhckVsdC0+X3doZWVsU3BpblZlbChpKSA9IHdoZWVs
LT5zcGluVmVsOwo=
------=_Part_57972578_240015899.1488342728400
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
------=_Part_57972578_240015899.1488342728400
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Torcs-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/torcs-users

------=_Part_57972578_240015899.1488342728400--