--f46d04138a6f6c03c2050477cd19 Content-Type: multipart/alternative; boundary=f46d04138a6f6c03be050477cd17
--f46d04138a6f6c03be050477cd17 Content-Type: text/plain; charset=UTF-8
The attached patch file is derived from OpenLDAP Software. All of the modifications to OpenLDAP Software represented in the following patch(es) were developed by Leonid Yuriev leo@yuriev.ru. I have not assigned rights and/or interest in this work to any party.
The attached modifications to OpenLDAP Software are subject to the following notice:
Copyright 2014 Leonid Yuriev. Copyright 2014 Peter-Service LLC, Moscow, Russia. Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License.
--f46d04138a6f6c03be050477cd17 Content-Type: text/html; charset=UTF-8
<div dir="ltr"><span style="color:rgb(0,0,0);font-family:Arial,Verdana,Helvetica;font-size:medium">The attached patch file is derived from OpenLDAP Software. All of the modifications to OpenLDAP Software represented in the following patch(es) were developed by Leonid Yuriev <<a href="mailto:leo@yuriev.ru">leo@yuriev.ru</a>>. I have not assigned rights and/or interest in this work to any party.<br> <br> </span><span style="color:rgb(0,0,0);font-family:Arial,Verdana,Helvetica;font-size:medium">The attached modifications to OpenLDAP Software are subject to the following notice:</span> <p style="color:rgb(0,0,0);font-family:Arial,Verdana,Helvetica;font-size:medium">Copyright 2014 Leonid Yuriev.<br>Copyright 2014 Peter-Service LLC, Moscow, Russia.<br> Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License.</p><p style="color:rgb(0,0,0);font-family:Arial,Verdana,Helvetica;font-size:medium"><br></p></div>
--f46d04138a6f6c03be050477cd17-- --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0001-TRIVIA-lmdb-clean-testdb-dir-while-make-test.patch" Content-Disposition: attachment; filename="0001-TRIVIA-lmdb-clean-testdb-dir-while-make-test.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdsc0
RnJvbSBjY2M3ZGE2OTBmZmJmZjQ0MDY0MzI5NWI5NDVmZGY3ODg2ZjQ4Yzk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBGcmks IDUgU2VwIDIwMTQgMDA6MTk6MTYgKzA0MDAKU3ViamVjdDogW1BBVENIIDAxLzExXSAgVFJJVklB IC0gbG1kYjogY2xlYW4gdGVzdGRiLWRpciB3aGlsZSAibWFrZSB0ZXN0Ii4KCi0tLQogbGlicmFy aWVzL2xpYmxtZGIvTWFrZWZpbGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJyYXJpZXMvbGlibG1kYi9NYWtlZmls ZSBiL2xpYnJhcmllcy9saWJsbWRiL01ha2VmaWxlCmluZGV4IDI1YzEwOTUuLjAyZmE1NWUgMTAw NjQ0Ci0tLSBhL2xpYnJhcmllcy9saWJsbWRiL01ha2VmaWxlCisrKyBiL2xpYnJhcmllcy9saWJs bWRiL01ha2VmaWxlCkBAIC00NCw3ICs0NCw3IEBAIGNsZWFuOgogCXJtIC1yZiAkKFBST0dTKSAq Llthb10gKi5zbyAqfiB0ZXN0ZGIKIAogdGVzdDoJYWxsCi0JbWtkaXIgdGVzdGRiCisJcm0gLXJm IHRlc3RkYiAmJiBta2RpciB0ZXN0ZGIKIAkuL210ZXN0ICYmIC4vbWRiX3N0YXQgdGVzdGRiCiAK IGxpYmxtZGIuYToJbWRiLm8gbWlkbC5vCi0tIAoyLjEuMAoK --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0002-EXTENSION-lmdb-more-usefull-info-from-mdb_stat-tool.patch" Content-Disposition: attachment; filename="0002-EXTENSION-lmdb-more-usefull-info-from-mdb_stat-tool.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdsu1
RnJvbSBmYzQwOWQ4OWUwZDlkZGUyMGY2MTJlMzRjMmE0NjNjOGE4MWVhMDAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBTYXQs IDIwIFNlcCAyMDE0IDA2OjUxOjA0ICswNDAwClN1YmplY3Q6IFtQQVRDSCAwMi8xMV0gIEVYVEVO U0lPTiAtIGxtZGI6IG1vcmUgdXNlZnVsbCBpbmZvIGZyb20gbWRiX3N0YXQKIHRvb2wuCgotLS0K IGxpYnJhcmllcy9saWJsbWRiL2xtZGIuaCAgICAgfCAgMSArCiBsaWJyYXJpZXMvbGlibG1kYi9t ZGIuYyAgICAgIHwgMTQgKysrKysrKysrKysrKysKIGxpYnJhcmllcy9saWJsbWRiL21kYl9zdGF0 LmMgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5n ZWQsIDQ4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJyYXJp ZXMvbGlibG1kYi9sbWRiLmggYi9saWJyYXJpZXMvbGlibG1kYi9sbWRiLmgKaW5kZXggYmRiYjBi OS4uZGEwMmM4MCAxMDA2NDQKLS0tIGEvbGlicmFyaWVzL2xpYmxtZGIvbG1kYi5oCisrKyBiL2xp YnJhcmllcy9saWJsbWRiL2xtZGIuaApAQCAtNDQ0LDYgKzQ0NCw3IEBAIHR5cGVkZWYgc3RydWN0 IE1EQl9lbnZpbmZvIHsKIAlzaXplX3QJbWVfbWFwc2l6ZTsJCQkJLyoqPCBTaXplIG9mIHRoZSBk YXRhIG1lbW9yeSBtYXAgKi8KIAlzaXplX3QJbWVfbGFzdF9wZ25vOwkJCS8qKjwgSUQgb2YgdGhl IGxhc3QgdXNlZCBwYWdlICovCiAJc2l6ZV90CW1lX2xhc3RfdHhuaWQ7CQkJLyoqPCBJRCBvZiB0 aGUgbGFzdCBjb21taXR0ZWQgdHJhbnNhY3Rpb24gKi8KKwlzaXplX3QJbWVfdGFpbF90eG5pZDsJ CQkvKio8IElEIG9mIHRoZSBsYXN0IHJlYWRlciB0cmFuc2FjdGlvbiAqLwogCXVuc2lnbmVkIGlu dCBtZV9tYXhyZWFkZXJzOwkJLyoqPCBtYXggcmVhZGVyIHNsb3RzIGluIHRoZSBlbnZpcm9ubWVu dCAqLwogCXVuc2lnbmVkIGludCBtZV9udW1yZWFkZXJzOwkJLyoqPCBtYXggcmVhZGVyIHNsb3Rz IHVzZWQgaW4gdGhlIGVudmlyb25tZW50ICovCiB9IE1EQl9lbnZpbmZvOwpkaWZmIC0tZ2l0IGEv bGlicmFyaWVzL2xpYmxtZGIvbWRiLmMgYi9saWJyYXJpZXMvbGlibG1kYi9tZGIuYwppbmRleCA2 Y2MzNDMzLi5jMzBiYzNmIDEwMDY0NAotLS0gYS9saWJyYXJpZXMvbGlibG1kYi9tZGIuYworKysg Yi9saWJyYXJpZXMvbGlibG1kYi9tZGIuYwpAQCAtODkyMyw2ICs4OTIzLDIwIEBAIG1kYl9lbnZf aW5mbyhNREJfZW52ICplbnYsIE1EQl9lbnZpbmZvICphcmcpCiAKIAlhcmctPm1lX2xhc3RfcGdu byA9IGVudi0+bWVfbWV0YXNbdG9nZ2xlXS0+bW1fbGFzdF9wZzsKIAlhcmctPm1lX2xhc3RfdHhu aWQgPSBlbnYtPm1lX21ldGFzW3RvZ2dsZV0tPm1tX3R4bmlkOworCWFyZy0+bWVfdGFpbF90eG5p ZCA9IDA7CisKKwlpZiAoZW52LT5tZV90eG5zKSB7CisJCU1EQl9yZWFkZXIgKnIgPSBlbnYtPm1l X3R4bnMtPm10aV9yZWFkZXJzOworCQlpbnQgaTsKKwkJYXJnLT5tZV90YWlsX3R4bmlkID0gYXJn LT5tZV9sYXN0X3R4bmlkOworCQlmb3IgKGkgPSBhcmctPm1lX251bXJlYWRlcnM7IC0taSA+PSAw OyApIHsKKwkJCWludCBwaWQgPSByW2ldLm1yX3BpZDsKKwkJCXR4bmlkX3QgcG9zID0gcltpXS5t cl90eG5pZDsKKwkJCWlmIChwaWQgJiYgYXJnLT5tZV90YWlsX3R4bmlkID4gcG9zKQorCQkJCWFy Zy0+bWVfdGFpbF90eG5pZCA9IHBvczsKKwkJfQorCX0KKwogCXJldHVybiBNREJfU1VDQ0VTUzsK IH0KIApkaWZmIC0tZ2l0IGEvbGlicmFyaWVzL2xpYmxtZGIvbWRiX3N0YXQuYyBiL2xpYnJhcmll cy9saWJsbWRiL21kYl9zdGF0LmMKaW5kZXggMWU5MjI5Mi4uZjI1OGM0OSAxMDA2NDQKLS0tIGEv bGlicmFyaWVzL2xpYmxtZGIvbWRiX3N0YXQuYworKysgYi9saWJyYXJpZXMvbGlibG1kYi9tZGJf c3RhdC5jCkBAIC0xMzAsNiArMTMwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKIAkJcHJpbnRmKCIgIE1heCBwYWdlczogJSJaInVcbiIsIG1laS5tZV9tYXBzaXplIC8gbXN0 Lm1zX3BzaXplKTsKIAkJcHJpbnRmKCIgIE51bWJlciBvZiBwYWdlcyB1c2VkOiAlIloidVxuIiwg bWVpLm1lX2xhc3RfcGdubysxKTsKIAkJcHJpbnRmKCIgIExhc3QgdHJhbnNhY3Rpb24gSUQ6ICUi WiJ1XG4iLCBtZWkubWVfbGFzdF90eG5pZCk7CisJCXByaW50ZigiICBUYWlsIHRyYW5zYWN0aW9u IElEOiAlIloidVxuIiwgbWVpLm1lX3RhaWxfdHhuaWQpOwogCQlwcmludGYoIiAgTWF4IHJlYWRl cnM6ICV1XG4iLCBtZWkubWVfbWF4cmVhZGVycyk7CiAJCXByaW50ZigiICBOdW1iZXIgb2YgcmVh ZGVycyB1c2VkOiAldVxuIiwgbWVpLm1lX251bXJlYWRlcnMpOwogCX0KQEAgLTE1Nyw2ICsxNTgs NyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlNREJfY3Vyc29yICpjdXJz b3I7CiAJCU1EQl92YWwga2V5LCBkYXRhOwogCQlzaXplX3QgcGFnZXMgPSAwLCAqaXB0cjsKKwkJ c2l6ZV90IHJlY2xhaW1hYmxlID0gMDsKIAogCQlwcmludGYoIkZyZWVsaXN0IFN0YXR1c1xuIik7 CiAJCWRiaSA9IDA7CkBAIC0xNzQsNiArMTc2LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKIAkJd2hpbGUgKChyYyA9IG1kYl9jdXJzb3JfZ2V0KGN1cnNvciwgJmtleSwgJmRh dGEsIE1EQl9ORVhUKSkgPT0gMCkgewogCQkJaXB0ciA9IGRhdGEubXZfZGF0YTsKIAkJCXBhZ2Vz ICs9ICppcHRyOworCQkJaWYgKGVudmluZm8gJiYgbWVpLm1lX3RhaWxfdHhuaWQgPiAqKHNpemVf dCAqKWtleS5tdl9kYXRhKQorCQkJCXJlY2xhaW1hYmxlICs9ICppcHRyOwogCQkJaWYgKGZyZWlu Zm8gPiAxKSB7CiAJCQkJY2hhciAqYmFkID0gIiI7CiAJCQkJc2l6ZV90IHBnLCBwcmV2OwpAQCAt MjAwLDcgKzIwNCwzNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJfQog CQl9CiAJCW1kYl9jdXJzb3JfY2xvc2UoY3Vyc29yKTsKLQkJcHJpbnRmKCIgIEZyZWUgcGFnZXM6 ICUiWiJ1XG4iLCBwYWdlcyk7CisJCWlmIChlbnZpbmZvKSB7CisJCQlzaXplX3QgdmFsdWUgPSBt ZWkubWVfbWFwc2l6ZSAvIG1zdC5tc19wc2l6ZTsKKwkJCWRvdWJsZSBwZXJjZW50ID0gdmFsdWUg LyAxMDAuMDsKKwkJCXByaW50ZigiUGFnZSBBbGxvY2F0aW9uIEluZm9cbiIpOworCQkJcHJpbnRm KCIgIE1heCBwYWdlczogJTkiWiJ1IDEwMCUlXG4iLCB2YWx1ZSk7CisKKwkJCXZhbHVlID0gbWVp Lm1lX2xhc3RfcGdubysxOworCQkJcHJpbnRmKCIgIE51bWJlciBvZiBwYWdlcyB1c2VkOiAlIloi dSAlLjFmJSVcbiIsIHZhbHVlLCB2YWx1ZSAvIHBlcmNlbnQpOworCisJCQl2YWx1ZSA9IG1laS5t ZV9tYXBzaXplIC8gbXN0Lm1zX3BzaXplIC0gKG1laS5tZV9sYXN0X3Bnbm8rMSk7CisJCQlwcmlu dGYoIiAgUmVtYWluZWQ6ICUiWiJ1ICUuMWYlJVxuIiwgdmFsdWUsIHZhbHVlIC8gcGVyY2VudCk7 CisKKwkJCXZhbHVlID0gbWVpLm1lX2xhc3RfcGdubysxIC0gcGFnZXM7CisJCQlwcmludGYoIiAg VXNlZCBub3c6ICUiWiJ1ICUuMWYlJVxuIiwgdmFsdWUsIHZhbHVlIC8gcGVyY2VudCk7CisKKwkJ CXZhbHVlID0gcGFnZXM7CisJCQlwcmludGYoIiAgRnJlZSBwYWdlczogJSJaInUgJS4xZiUlXG4i LCB2YWx1ZSwgdmFsdWUgLyBwZXJjZW50KTsKKworCQkJdmFsdWUgPSBwYWdlcyAtIHJlY2xhaW1h YmxlOworCQkJcHJpbnRmKCIgIFJlYWRpbmc6ICUiWiJ1ICUuMWYlJVxuIiwgdmFsdWUsIHZhbHVl IC8gcGVyY2VudCk7CisKKwkJCXZhbHVlID0gcmVjbGFpbWFibGU7CisJCQlwcmludGYoIiAgUmVj bGFpbWFibGU6ICUiWiJ1ICUuMWYlJVxuIiwgdmFsdWUsIHZhbHVlIC8gcGVyY2VudCk7CisKKwkJ CXZhbHVlID0gbWVpLm1lX21hcHNpemUgLyBtc3QubXNfcHNpemUgLSAobWVpLm1lX2xhc3RfcGdu bysxKSArIHJlY2xhaW1hYmxlOworCQkJcHJpbnRmKCIgIEF2YWlsYWJsZTogJSJaInUgJS4xZiUl XG4iLCB2YWx1ZSwgdmFsdWUgLyBwZXJjZW50KTsKKwkJfSBlbHNlCisJCQlwcmludGYoIiAgRnJl ZSBwYWdlczogJSJaInVcbiIsIHBhZ2VzKTsKKwogCX0KIAogCXJjID0gbWRiX29wZW4odHhuLCBz dWJuYW1lLCAwLCAmZGJpKTsKLS0gCjIuMS4wCgo= --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0003-CHANGE-lmdb-backend-checkpoint-interval-in-seconds-i.patch" Content-Disposition: attachment; filename="0003-CHANGE-lmdb-backend-checkpoint-interval-in-seconds-i.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdt42
RnJvbSBmYjgyYTBiNjg4ZjRjMzEzMTNkMDc5MDQxNWZlZGE4YWFhMTg2NTFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBUaHUs IDQgU2VwIDIwMTQgMTU6MTg6MTYgKzA0MDAKU3ViamVjdDogW1BBVENIIDAzLzExXSAgQ0hBTkdF IC0gbG1kYi1iYWNrZW5kOiBjaGVja3BvaW50LWludGVydmFsIGluIHNlY29uZHMKIGluc3RlYWQg b2YgbWludXRlcy4KCi0tLQogZG9jL21hbi9tYW41L3NsYXBkLW1kYi41ICAgICAgICAgIHwgIDgg KysrKy0tLS0KIHNlcnZlcnMvc2xhcGQvYmFjay1tZGIvYmFjay1tZGIuaCB8ICAyICstCiBzZXJ2 ZXJzL3NsYXBkL2JhY2stbWRiL2NvbmZpZy5jICAgfCAxNyArKysrKysrKystLS0tLS0tLQogMyBm aWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2MvbWFuL21hbjUvc2xhcGQtbWRiLjUgYi9kb2MvbWFuL21hbjUvc2xhcGQtbWRiLjUK aW5kZXggNThiYTY2OC4uNjRhNmIzNiAxMDA2NDQKLS0tIGEvZG9jL21hbi9tYW41L3NsYXBkLW1k Yi41CisrKyBiL2RvYy9tYW4vbWFuNS9zbGFwZC1tZGIuNQpAQCAtMjksMTQgKzI5LDE0IEBAIE90 aGVyIGRhdGFiYXNlIG9wdGlvbnMgYXJlIGRlc2NyaWJlZCBpbiB0aGUKIC5CUiBzbGFwZC5jb25m ICg1KQogbWFudWFsIHBhZ2UuCiAuVFAKLS5CSSBjaGVja3BvaW50IFwgPGtieXRlPlwgPG1pbj4K Ky5CSSBjaGVja3BvaW50IFwgPGtieXRlPlwgPHNlYz4KIFNwZWNpZnkgdGhlIGZyZXF1ZW5jeSBm b3IgZmx1c2hpbmcgdGhlIGRhdGFiYXNlIGRpc2sgYnVmZmVycy4KIFRoaXMgc2V0dGluZyBpcyBv bmx5IG5lZWRlZCBpZiB0aGUgXGZCZGJub3N5bmNcZlAgb3B0aW9uIGlzIHVzZWQuCiBUaGUgY2hl Y2twb2ludCB3aWxsIG9jY3VyIGlmIGVpdGhlciBcZkk8a2J5dGU+XGZQIGRhdGEgaGFzIGJlZW4g d3JpdHRlbiBvcgotXGZJPG1pbj5cZlAgbWludXRlcyBoYXZlIHBhc3NlZCBzaW5jZSB0aGUgbGFz dCBjaGVja3BvaW50LgorXGZJPHNlYz5cZlAgc2Vjb25kcyBoYXZlIHBhc3NlZCBzaW5jZSB0aGUg bGFzdCBjaGVja3BvaW50LgogQm90aCBhcmd1bWVudHMgZGVmYXVsdCB0byB6ZXJvLCBpbiB3aGlj aCBjYXNlIHRoZXkgYXJlIGlnbm9yZWQuIFdoZW4KLXRoZSBcZkk8bWluPlxmUCBhcmd1bWVudCBp cyBub24temVybywgYW4gaW50ZXJuYWwgdGFzayB3aWxsIHJ1biBldmVyeSAKLVxmSTxtaW4+XGZQ IG1pbnV0ZXMgdG8gcGVyZm9ybSB0aGUgY2hlY2twb2ludC4KK3RoZSBcZkk8c2VjPlxmUCBhcmd1 bWVudCBpcyBub24temVybywgYW4gaW50ZXJuYWwgdGFzayB3aWxsIHJ1biBldmVyeQorXGZJPHNl Yz5cZlAgc2Vjb25kcyB0byBwZXJmb3JtIHRoZSBjaGVja3BvaW50LgogTm90ZTogY3VycmVudGx5 IHRoZSBcZkk8a2J5dGU+XGZQIHNldHRpbmcgaXMgdW5pbXBsZW1lbnRlZC4KIC5UUAogLkIgZGJu b3N5bmMKZGlmZiAtLWdpdCBhL3NlcnZlcnMvc2xhcGQvYmFjay1tZGIvYmFjay1tZGIuaCBiL3Nl cnZlcnMvc2xhcGQvYmFjay1tZGIvYmFjay1tZGIuaAppbmRleCA5ZDVkNGIxLi5jM2FlNzJkIDEw MDY0NAotLS0gYS9zZXJ2ZXJzL3NsYXBkL2JhY2stbWRiL2JhY2stbWRiLmgKKysrIGIvc2VydmVy cy9zbGFwZC9iYWNrLW1kYi9iYWNrLW1kYi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBtZGJf aW5mbyB7CiAJaW50CQkJbWlfcmVhZGVyczsKIAogCWludAkJCW1pX3R4bl9jcDsKLQl1aW50MzJf dAltaV90eG5fY3BfbWluOworCXVpbnQzMl90CW1pX3R4bl9jcF9zZWM7CiAJdWludDMyX3QJbWlf dHhuX2NwX2tieXRlOwogCXN0cnVjdCByZV9zCQkqbWlfdHhuX2NwX3Rhc2s7CiAJc3RydWN0IHJl X3MJCSptaV9pbmRleF90YXNrOwpkaWZmIC0tZ2l0IGEvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9j b25maWcuYyBiL3NlcnZlcnMvc2xhcGQvYmFjay1tZGIvY29uZmlnLmMKaW5kZXggNWI0MDJjNS4u OTc5ZDRhZCAxMDA2NDQKLS0tIGEvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9jb25maWcuYworKysg Yi9zZXJ2ZXJzL3NsYXBkL2JhY2stbWRiL2NvbmZpZy5jCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRp YyBDb25maWdUYWJsZSBtZGJjZmdbXSA9IHsKIAkJCSJTWU5UQVggT01zRGlyZWN0b3J5U3RyaW5n IFNJTkdMRS1WQUxVRSApIiwgTlVMTCwgTlVMTCB9LAogCXsgImNoZWNrcG9pbnQiLCAia2J5dGU+ IDxtaW4iLCAzLCAzLCAwLCBBUkdfTUFHSUN8TURCX0NIS1BULAogCQltZGJfY2ZfZ2VuLCAiKCBP TGNmZ0RiQXQ6MS4yIE5BTUUgJ29sY0RiQ2hlY2twb2ludCcgIgotCQkJIkRFU0MgJ0RhdGFiYXNl IGNoZWNrcG9pbnQgaW50ZXJ2YWwgaW4ga2J5dGVzIGFuZCBtaW51dGVzJyAiCisJCQkiREVTQyAn RGF0YWJhc2UgY2hlY2twb2ludCBpbnRlcnZhbCBpbiBrYnl0ZXMgYW5kIHNlY29uZHMnICIKIAkJ CSJTWU5UQVggT01zRGlyZWN0b3J5U3RyaW5nIFNJTkdMRS1WQUxVRSApIixOVUxMLCBOVUxMIH0s CiAJeyAiZGJub3N5bmMiLCBOVUxMLCAxLCAyLCAwLCBBUkdfT05fT0ZGfEFSR19NQUdJQ3xNREJf REJOT1NZTkMsCiAJCW1kYl9jZl9nZW4sICIoIE9MY2ZnRGJBdDoxLjQgTkFNRSAnb2xjRGJOb1N5 bmMnICIKQEAgLTExNiw3ICsxMTYsOCBAQCBtZGJfY2hlY2twb2ludCggdm9pZCAqY3R4LCB2b2lk ICphcmcgKQogCXN0cnVjdCByZV9zICpydGFzayA9IGFyZzsKIAlzdHJ1Y3QgbWRiX2luZm8gKm1k YiA9IHJ0YXNrLT5hcmc7CiAKLQltZGJfZW52X3N5bmMoIG1kYi0+bWlfZGJlbnYsIDEgKTsKKwlp ZiAoIG1kYi0+bWlfZmxhZ3MgJiBNREJfSVNfT1BFTiApCisJCW1kYl9lbnZfc3luYyggbWRiLT5t aV9kYmVudiwgMSApOwogCWxkYXBfcHZ0X3RocmVhZF9tdXRleF9sb2NrKCAmc2xhcGRfcnEucnFf bXV0ZXggKTsKIAlsZGFwX3B2dF9ydW5xdWV1ZV9zdG9wdGFzayggJnNsYXBkX3JxLCBydGFzayAp OwogCWxkYXBfcHZ0X3RocmVhZF9tdXRleF91bmxvY2soICZzbGFwZF9ycS5ycV9tdXRleCApOwpA QCAtMjg4LDcgKzI4OSw3IEBAIG1kYl9jZl9nZW4oIENvbmZpZ0FyZ3MgKmMgKQogCQkJCWNoYXIg YnVmWzY0XTsKIAkJCQlzdHJ1Y3QgYmVydmFsIGJ2OwogCQkJCWJ2LmJ2X2xlbiA9IHNucHJpbnRm KCBidWYsIHNpemVvZihidWYpLCAiJWxkICVsZCIsCi0JCQkJCShsb25nKSBtZGItPm1pX3R4bl9j cF9rYnl0ZSwgKGxvbmcpIG1kYi0+bWlfdHhuX2NwX21pbiApOworCQkJCQkobG9uZykgbWRiLT5t aV90eG5fY3Bfa2J5dGUsIChsb25nKSBtZGItPm1pX3R4bl9jcF9zZWMgKTsKIAkJCQlpZiAoIGJ2 LmJ2X2xlbiA+IDAgJiYgYnYuYnZfbGVuIDwgc2l6ZW9mKGJ1ZikgKSB7CiAJCQkJCWJ2LmJ2X3Zh bCA9IGJ1ZjsKIAkJCQkJdmFsdWVfYWRkX29uZSggJmMtPnJ2YWx1ZV92YWxzLCAmYnYgKTsKQEAg LTUyMiwxOCArNTIzLDE4IEBAIG1kYl9jZl9nZW4oIENvbmZpZ0FyZ3MgKmMgKQogCQltZGItPm1p X3R4bl9jcF9rYnl0ZSA9IGw7CiAJCWlmICggbHV0aWxfYXRvbHgoICZsLCBjLT5hcmd2WzJdLCAw ICkgIT0gMCApIHsKIAkJCWZwcmludGYoIHN0ZGVyciwgIiVzOiAiCi0JCQkJImludmFsaWQgbWlu dXRlcyBcIiVzXCIgaW4gXCJjaGVja3BvaW50XCIuXG4iLAorCQkJCSJpbnZhbGlkIHNlY29uZHMg XCIlc1wiIGluIFwiY2hlY2twb2ludFwiLlxuIiwKIAkJCQljLT5sb2csIGMtPmFyZ3ZbMl0gKTsK IAkJCXJldHVybiAxOwogCQl9Ci0JCW1kYi0+bWlfdHhuX2NwX21pbiA9IGw7CisJCW1kYi0+bWlf dHhuX2NwX3NlYyA9IGw7CiAJCS8qIElmIHdlJ3JlIGluIHNlcnZlciBtb2RlIGFuZCB0aW1lLWJh c2VkIGNoZWNrcG9pbnRpbmcgaXMgZW5hYmxlZCwKIAkJICogc3VibWl0IGEgdGFzayB0byBwZXJm b3JtIHBlcmlvZGljIGNoZWNrcG9pbnRzLgogCQkgKi8KLQkJaWYgKChzbGFwTW9kZSAmIFNMQVBf U0VSVkVSX01PREUpICYmIG1kYi0+bWlfdHhuX2NwX21pbiApIHsKKwkJaWYgKChzbGFwTW9kZSAm IFNMQVBfU0VSVkVSX01PREUpICYmIG1kYi0+bWlfdHhuX2NwX3NlYyApIHsKIAkJCXN0cnVjdCBy ZV9zICpyZSA9IG1kYi0+bWlfdHhuX2NwX3Rhc2s7CiAJCQlpZiAoIHJlICkgewotCQkJCXJlLT5p bnRlcnZhbC50dl9zZWMgPSBtZGItPm1pX3R4bl9jcF9taW4gKiA2MDsKKwkJCQlyZS0+aW50ZXJ2 YWwudHZfc2VjID0gbWRiLT5taV90eG5fY3Bfc2VjOwogCQkJfSBlbHNlIHsKIAkJCQlpZiAoIGMt PmJlLT5iZV9zdWZmaXggPT0gTlVMTCB8fCBCRVJfQlZJU05VTEwoICZjLT5iZS0+YmVfc3VmZml4 WzBdICkgKSB7CiAJCQkJCWZwcmludGYoIHN0ZGVyciwgIiVzOiAiCkBAIC01NDMsNyArNTQ0LDcg QEAgbWRiX2NmX2dlbiggQ29uZmlnQXJncyAqYyApCiAJCQkJfQogCQkJCWxkYXBfcHZ0X3RocmVh ZF9tdXRleF9sb2NrKCAmc2xhcGRfcnEucnFfbXV0ZXggKTsKIAkJCQltZGItPm1pX3R4bl9jcF90 YXNrID0gbGRhcF9wdnRfcnVucXVldWVfaW5zZXJ0KCAmc2xhcGRfcnEsCi0JCQkJCW1kYi0+bWlf dHhuX2NwX21pbiAqIDYwLCBtZGJfY2hlY2twb2ludCwgbWRiLAorCQkJCQltZGItPm1pX3R4bl9j cF9zZWMsIG1kYl9jaGVja3BvaW50LCBtZGIsCiAJCQkJCUxEQVBfWFNUUklORyhtZGJfY2hlY2tw b2ludCksIGMtPmJlLT5iZV9zdWZmaXhbMF0uYnZfdmFsICk7CiAJCQkJbGRhcF9wdnRfdGhyZWFk X211dGV4X3VubG9jayggJnNsYXBkX3JxLnJxX211dGV4ICk7CiAJCQl9Ci0tIAoyLjEuMAoK --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0004-FEATURE-lmdb-implementation-of-checkpoint-kbytes.patch" Content-Disposition: attachment; filename="0004-FEATURE-lmdb-implementation-of-checkpoint-kbytes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdtc3
RnJvbSAxNDdmNDFhODExMGYyODQ1NmJjMzIxMjNiZGU4NmQ0NzE4M2Y5YzBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBUaHUs IDQgU2VwIDIwMTQgMTY6MDE6MTUgKzA0MDAKU3ViamVjdDogW1BBVENIIDA0LzExXSAgRkVBVFVS RSAtIGxtZGI6IGltcGxlbWVudGF0aW9uIG9mICJjaGVja3BvaW50IGtieXRlcyIuCgogRm9yY2Ug Zmx1c2ggd2hlbiB2b2x1bWUgb2YgdGhlIGNoYW5nZXMgcmVhY2hlZCBhIGNvbmZpZ3VyYWJsZSB0 aHJlc2hvbGQuCi0tLQogbGlicmFyaWVzL2xpYmxtZGIvbG1kYi5oIHwgMTkgKysrKysrKysrKysr KysrKysrKwogbGlicmFyaWVzL2xpYmxtZGIvbWRiLmMgIHwgNDIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnJhcmllcy9saWJsbWRiL2xtZGIu aCBiL2xpYnJhcmllcy9saWJsbWRiL2xtZGIuaAppbmRleCBkYTAyYzgwLi5jNWYzYTc5IDEwMDY0 NAotLS0gYS9saWJyYXJpZXMvbGlibG1kYi9sbWRiLmgKKysrIGIvbGlicmFyaWVzL2xpYmxtZGIv bG1kYi5oCkBAIC05MDMsNiArOTAzLDI1IEBAIHR5cGVkZWYgdm9pZCBNREJfYXNzZXJ0X2Z1bmMo TURCX2VudiAqZW52LCBjb25zdCBjaGFyICptc2cpOwogCSAqLwogaW50ICBtZGJfZW52X3NldF9h c3NlcnQoTURCX2VudiAqZW52LCBNREJfYXNzZXJ0X2Z1bmMgKmZ1bmMpOwogCisJLyoqIEBicmll ZiBTZXQgdGhyZXNob2xkIHRvIGZvcmNlIGZsdXNoIHRoZSBkYXRhIGJ1ZmZlcnMgdG8gZGlzaywK KwkgKiBldmVuIG9mICNNREJfTk9TWU5DLCAjTURCX05PTUVUQVNZTkMgYW5kICNNREJfTUFQQVNZ TkMgZmxhZ3MKKwkgKiBpbiB0aGUgZW52aXJvbm1lbnQuCisJICoKKwkgKiBEYXRhIGlzIGFsd2F5 cyB3cml0dGVuIHRvIGRpc2sgd2hlbiAjbWRiX3R4bl9jb21taXQoKSBpcyBjYWxsZWQsCisJICog YnV0IHRoZSBvcGVyYXRpbmcgc3lzdGVtIG1heSBrZWVwIGl0IGJ1ZmZlcmVkLiBMTURCIGFsd2F5 cyBmbHVzaGVzCisJICogdGhlIE9TIGJ1ZmZlcnMgdXBvbiBjb21taXQgYXMgd2VsbCwgdW5sZXNz IHRoZSBlbnZpcm9ubWVudCB3YXMKKwkgKiBvcGVuZWQgd2l0aCAjTURCX05PU1lOQyBvciBpbiBw YXJ0ICNNREJfTk9NRVRBU1lOQy4KKwkgKgorCSAqIFRoZSBkZWZhdWx0IGlzIDAsIHRoYW4gbWVh biBubyBhbnkgdGhyZXNob2xkIGNoZWNrZWQsCisJICogYW5kIG5vIGFkZGl0aW9uYWwgZmx1c2gg d2lsbCBiZSBtYWRlLgorCSAqCisJICogQHBhcmFtW2luXSBlbnYgQW4gZW52aXJvbm1lbnQgaGFu ZGxlIHJldHVybmVkIGJ5ICNtZGJfZW52X2NyZWF0ZSgpCisJICogQHBhcmFtW2luXSBieXRlcyBU aGUgc2l6ZSBpbiBieXRlcyBvZiBzdW1tYXJ5IGNoYW5nZXMKKwkgKiB3aGVuIGEgc3luY2hyb25v dXMgZmx1c2ggd291bGQgYmUgbWFkZS4KKwkgKiBAcmV0dXJuIEEgbm9uLXplcm8gZXJyb3IgdmFs dWUgb24gZmFpbHVyZSBhbmQgMCBvbiBzdWNjZXNzLgorCSAqLworaW50ICBtZGJfZW52X3NldF9z eW5jYnl0ZXMoTURCX2VudiAqZW52LCBzaXplX3QgYnl0ZXMpOworCiAJLyoqIEBicmllZiBDcmVh dGUgYSB0cmFuc2FjdGlvbiBmb3IgdXNlIHdpdGggdGhlIGVudmlyb25tZW50LgogCSAqCiAJICog VGhlIHRyYW5zYWN0aW9uIGhhbmRsZSBtYXkgYmUgZGlzY2FyZGVkIHVzaW5nICNtZGJfdHhuX2Fi b3J0KCkgb3IgI21kYl90eG5fY29tbWl0KCkuCmRpZmYgLS1naXQgYS9saWJyYXJpZXMvbGlibG1k Yi9tZGIuYyBiL2xpYnJhcmllcy9saWJsbWRiL21kYi5jCmluZGV4IGMzMGJjM2YuLmI4YmZkMmUg MTAwNjQ0Ci0tLSBhL2xpYnJhcmllcy9saWJsbWRiL21kYi5jCisrKyBiL2xpYnJhcmllcy9saWJs bWRiL21kYi5jCkBAIC0xMTQ1LDYgKzExNDUsOCBAQCBzdHJ1Y3QgTURCX2VudiB7CiAjZW5kaWYK IAl2b2lkCQkqbWVfdXNlcmN0eDsJIC8qKjwgVXNlci1zZXR0YWJsZSBjb250ZXh0ICovCiAJTURC X2Fzc2VydF9mdW5jICptZV9hc3NlcnRfZnVuYzsgLyoqPCBDYWxsYmFjayBmb3IgYXNzZXJ0aW9u IGZhaWx1cmVzICovCisJdWludDY0X3QJbWVfc3luY19wZW5kaW5nOwkvKio8IFRvdGFsIGRpcnR5 L2NvbW1pdGVkIGJ5dGVzIHNpbmNlIHRoZSBsYXN0IG1kYl9lbnZfc3luYygpICovCisJdWludDY0 X3QJbWVfc3luY190aHJlc2hvbGQ7CS8qKjwgVHJlc2hvbGQgb2YgYWJvdmUgdG8gZm9yY2Ugc3lu Y2hyb25vdXMgZmx1c2ggKi8KIH07CiAKIAkvKiogTmVzdGVkIHRyYW5zYWN0aW9uICovCkBAIC0x MTkyLDcgKzExOTQsNyBAQCBzdGF0aWMgaW50CW1kYl9wYWdlX3NwbGl0KE1EQl9jdXJzb3IgKm1j LCBNREJfdmFsICpuZXdrZXksIE1EQl92YWwgKm5ld2RhdGEsCiAKIHN0YXRpYyBpbnQgIG1kYl9l bnZfcmVhZF9oZWFkZXIoTURCX2VudiAqZW52LCBNREJfbWV0YSAqbWV0YSk7CiBzdGF0aWMgaW50 ICBtZGJfZW52X3BpY2tfbWV0YShjb25zdCBNREJfZW52ICplbnYpOwotc3RhdGljIGludCAgbWRi X2Vudl93cml0ZV9tZXRhKE1EQl90eG4gKnR4bik7CitzdGF0aWMgaW50ICBtZGJfZW52X3dyaXRl X21ldGEoTURCX3R4biAqdHhuLCBpbnQgZm9yY2UpOwogI2lmICEoZGVmaW5lZChfV0lOMzIpIHx8 IGRlZmluZWQoTURCX1VTRV9QT1NJWF9TRU0pKSAvKiBEcm9wIHVudXNlZCBleGNsIGFyZyAqLwog IyBkZWZpbmUgbWRiX2Vudl9jbG9zZTAoZW52LCBleGNsKSBtZGJfZW52X2Nsb3NlMShlbnYpCiAj ZW5kaWYKQEAgLTIyOTgsMTMgKzIzMDAsMTYgQEAgZmFpbDoKIAlyZXR1cm4gcmM7CiB9CiAKLWlu dAotbWRiX2Vudl9zeW5jKE1EQl9lbnYgKmVudiwgaW50IGZvcmNlKQorc3RhdGljIGludAorbWRi X2Vudl9zeW5jMihNREJfZW52ICplbnYsIGludCAqZm9yY2UpCiB7CiAJaW50IHJjID0gMDsKLQlp ZiAoZm9yY2UgfHwgIUZfSVNTRVQoZW52LT5tZV9mbGFncywgTURCX05PU1lOQykpIHsKKwlpZiAo ZW52LT5tZV9zeW5jX3RocmVzaG9sZCAmJiBlbnYtPm1lX3N5bmNfcGVuZGluZyA+PSBlbnYtPm1l X3N5bmNfdGhyZXNob2xkKQorCQkqZm9yY2UgPSAxOworCWlmICgqZm9yY2UgfHwgIUZfSVNTRVQo ZW52LT5tZV9mbGFncywgTURCX05PU1lOQykpIHsKKwkJZW52LT5tZV9zeW5jX3BlbmRpbmcgPSAw OwogCQlpZiAoZW52LT5tZV9mbGFncyAmIE1EQl9XUklURU1BUCkgewotCQkJaW50IGZsYWdzID0g KChlbnYtPm1lX2ZsYWdzICYgTURCX01BUEFTWU5DKSAmJiAhZm9yY2UpCisJCQlpbnQgZmxhZ3Mg PSAoKGVudi0+bWVfZmxhZ3MgJiBNREJfTUFQQVNZTkMpICYmICpmb3JjZSA9PSAwKQogCQkJCT8g TVNfQVNZTkMgOiBNU19TWU5DOwogCQkJaWYgKE1EQl9NU1lOQyhlbnYtPm1lX21hcCwgZW52LT5t ZV9tYXBzaXplLCBmbGFncykpCiAJCQkJcmMgPSBFcnJDb2RlKCk7CkBAIC0yMzIwLDYgKzIzMjUs MTIgQEAgbWRiX2Vudl9zeW5jKE1EQl9lbnYgKmVudiwgaW50IGZvcmNlKQogCXJldHVybiByYzsK IH0KIAoraW50CittZGJfZW52X3N5bmMoTURCX2VudiAqZW52LCBpbnQgZm9yY2UpCit7CisJcmV0 dXJuIG1kYl9lbnZfc3luYzIoZW52LCAmZm9yY2UpOworfQorCiAvKiogQmFjayB1cCBwYXJlbnQg dHhuJ3MgY3Vyc29ycywgdGhlbiBncmFiIHRoZSBvcmlnaW5hbHMgZm9yIHRyYWNraW5nICovCiBz dGF0aWMgaW50CiBtZGJfY3Vyc29yX3NoYWRvdyhNREJfdHhuICpzcmMsIE1EQl90eG4gKmRzdCkK QEAgLTMwNjIsNiArMzA3Myw3IEBAIG1kYl9wYWdlX2ZsdXNoKE1EQl90eG4gKnR4biwgaW50IGtl ZXApCiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlkcC0+bXBfZmxhZ3MgJj0gflBfRElSVFk7CisJ CQllbnYtPm1lX3N5bmNfcGVuZGluZyArPSBJU19PVkVSRkxPVyhkcCkgPyBwc2l6ZSAqIGRwLT5t cF9wYWdlcyA6IHBzaXplOwogCQl9CiAJCWdvdG8gZG9uZTsKIAl9CkBAIC0zMDgyLDYgKzMwOTQs NyBAQCBtZGJfcGFnZV9mbHVzaChNREJfdHhuICp0eG4sIGludCBrZWVwKQogCQkJcG9zID0gcGdu byAqIHBzaXplOwogCQkJc2l6ZSA9IHBzaXplOwogCQkJaWYgKElTX09WRVJGTE9XKGRwKSkgc2l6 ZSAqPSBkcC0+bXBfcGFnZXM7CisJCQllbnYtPm1lX3N5bmNfcGVuZGluZyArPSBzaXplOwogCQl9 CiAjaWZkZWYgX1dJTjMyCiAJCWVsc2UgYnJlYWs7CkBAIC0zMzY3LDkgKzMzODAsMTAgQEAgbWRi X3R4bl9jb21taXQoTURCX3R4biAqdHhuKQogCW1kYl9hdWRpdCh0eG4pOwogI2VuZGlmCiAKKwlp bnQgZm9yY2UgPSAwOwogCWlmICgocmMgPSBtZGJfcGFnZV9mbHVzaCh0eG4sIDApKSB8fAotCQko cmMgPSBtZGJfZW52X3N5bmMoZW52LCAwKSkgfHwKLQkJKHJjID0gbWRiX2Vudl93cml0ZV9tZXRh KHR4bikpKQorCQkocmMgPSBtZGJfZW52X3N5bmMyKGVudiwgJmZvcmNlKSkgfHwKKwkJKHJjID0g bWRiX2Vudl93cml0ZV9tZXRhKHR4biwgZm9yY2UpKSkKIAkJZ290byBmYWlsOwogCiAJLyogRnJl ZSBQX0xPT1NFIHBhZ2VzIGxlZnQgYmVoaW5kIGluIGRpcnR5X2xpc3QgKi8KQEAgLTMzOTMsNiAr MzQwNywxMiBAQCBmYWlsOgogCXJldHVybiByYzsKIH0KIAoraW50CittZGJfZW52X3NldF9zeW5j Ynl0ZXMoTURCX2VudiAqZW52LCBzaXplX3QgYnl0ZXMpIHsKKwllbnYtPm1lX3N5bmNfdGhyZXNo b2xkID0gYnl0ZXM7CisJcmV0dXJuIGVudi0+bWVfbWFwID8gbWRiX2Vudl9zeW5jKGVudiwgMCkg OiAwOworfQorCiAvKiogUmVhZCB0aGUgZW52aXJvbm1lbnQgcGFyYW1ldGVycyBvZiBhIERCIGVu dmlyb25tZW50IGJlZm9yZQogICogbWFwcGluZyBpdCBpbnRvIG1lbW9yeS4KICAqIEBwYXJhbVtp bl0gZW52IHRoZSBlbnZpcm9ubWVudCBoYW5kbGUKQEAgLTM1MjgsNyArMzU0OCw3IEBAIG1kYl9l bnZfaW5pdF9tZXRhKE1EQl9lbnYgKmVudiwgTURCX21ldGEgKm1ldGEpCiAgKiBAcmV0dXJuIDAg b24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZS4KICAqLwogc3RhdGljIGludAotbWRiX2Vu dl93cml0ZV9tZXRhKE1EQl90eG4gKnR4bikKK21kYl9lbnZfd3JpdGVfbWV0YShNREJfdHhuICp0 eG4sIGludCBmb3JjZSkKIHsKIAlNREJfZW52ICplbnY7CiAJTURCX21ldGEJbWV0YSwgbWV0YWIs ICptcDsKQEAgLTM1NjAsOSArMzU4MCw5IEBAIG1kYl9lbnZfd3JpdGVfbWV0YShNREJfdHhuICp0 eG4pCiAJCW1wLT5tbV9kYnNbMV0gPSB0eG4tPm10X2Ric1sxXTsKIAkJbXAtPm1tX2xhc3RfcGcg PSB0eG4tPm10X25leHRfcGdubyAtIDE7CiAJCW1wLT5tbV90eG5pZCA9IHR4bi0+bXRfdHhuaWQ7 Ci0JCWlmICghKGVudi0+bWVfZmxhZ3MgJiAoTURCX05PTUVUQVNZTkN8TURCX05PU1lOQykpKSB7 CisJCWlmIChmb3JjZSB8fCAhKGVudi0+bWVfZmxhZ3MgJiAoTURCX05PTUVUQVNZTkN8TURCX05P U1lOQykpKSB7CiAJCQl1bnNpZ25lZCBtZXRhX3NpemUgPSBlbnYtPm1lX3BzaXplOwotCQkJcmMg PSAoZW52LT5tZV9mbGFncyAmIE1EQl9NQVBBU1lOQykgPyBNU19BU1lOQyA6IE1TX1NZTkM7CisJ CQlyYyA9ICghZm9yY2UgJiYgKGVudi0+bWVfZmxhZ3MgJiBNREJfTUFQQVNZTkMpKSA/IE1TX0FT WU5DIDogTVNfU1lOQzsKIAkJCXB0ciA9IGVudi0+bWVfbWFwOwogCQkJaWYgKHRvZ2dsZSkgewog I2lmbmRlZiBfV0lOMzIJLyogUE9TSVggbXN5bmMoKSByZXF1aXJlcyBwdHIgPSBzdGFydCBvZiBP UyBwYWdlICovCkBAIC0zNTk2LDcgKzM2MTYsNyBAQCBtZGJfZW52X3dyaXRlX21ldGEoTURCX3R4 biAqdHhuKQogCW9mZiArPSBQQUdFSERSU1o7CiAKIAkvKiBXcml0ZSB0byB0aGUgU1lOQyBmZCAq LwotCW1mZCA9IGVudi0+bWVfZmxhZ3MgJiAoTURCX05PU1lOQ3xNREJfTk9NRVRBU1lOQykgPwor CW1mZCA9ICghZm9yY2UgfHwgKGVudi0+bWVfZmxhZ3MgJiAoTURCX05PU1lOQ3xNREJfTk9NRVRB U1lOQykpKSA/CiAJCWVudi0+bWVfZmQgOiBlbnYtPm1lX21mZDsKICNpZmRlZiBfV0lOMzIKIAl7 Ci0tIAoyLjEuMAoK --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0005-FEATURE-lmdb-backend-support-for-checkpoint-kbytes-c.patch" Content-Disposition: attachment; filename="0005-FEATURE-lmdb-backend-support-for-checkpoint-kbytes-c.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdtm4
RnJvbSA5MDg2NzdmOTg5NTg4ZDA2YjlmMDA2MjA1NzZkZWEzYzVjODY3NWQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBUaHUs IDQgU2VwIDIwMTQgMTY6MTA6MDUgKzA0MDAKU3ViamVjdDogW1BBVENIIDA1LzExXSAgRkVBVFVS RSAtIGxtZGItYmFja2VuZDogc3VwcG9ydCBmb3IgImNoZWNrcG9pbnQKIGtieXRlcyIgY29uZmln LW9wdGlvbi4KCi0tLQogZG9jL21hbi9tYW41L3NsYXBkLW1kYi41ICAgICAgICB8IDEgLQogc2Vy dmVycy9zbGFwZC9iYWNrLW1kYi9jb25maWcuYyB8IDIgKysKIHNlcnZlcnMvc2xhcGQvYmFjay1t ZGIvaW5pdC5jICAgfCA5ICsrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL21hbi9tYW41L3NsYXBkLW1kYi41 IGIvZG9jL21hbi9tYW41L3NsYXBkLW1kYi41CmluZGV4IDY0YTZiMzYuLmY2ZDI0ZGUgMTAwNjQ0 Ci0tLSBhL2RvYy9tYW4vbWFuNS9zbGFwZC1tZGIuNQorKysgYi9kb2MvbWFuL21hbjUvc2xhcGQt bWRiLjUKQEAgLTM3LDcgKzM3LDYgQEAgVGhlIGNoZWNrcG9pbnQgd2lsbCBvY2N1ciBpZiBlaXRo ZXIgXGZJPGtieXRlPlxmUCBkYXRhIGhhcyBiZWVuIHdyaXR0ZW4gb3IKIEJvdGggYXJndW1lbnRz IGRlZmF1bHQgdG8gemVybywgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBpZ25vcmVkLiBXaGVuCiB0 aGUgXGZJPHNlYz5cZlAgYXJndW1lbnQgaXMgbm9uLXplcm8sIGFuIGludGVybmFsIHRhc2sgd2ls bCBydW4gZXZlcnkKIFxmSTxzZWM+XGZQIHNlY29uZHMgdG8gcGVyZm9ybSB0aGUgY2hlY2twb2lu dC4KLU5vdGU6IGN1cnJlbnRseSB0aGUgXGZJPGtieXRlPlxmUCBzZXR0aW5nIGlzIHVuaW1wbGVt ZW50ZWQuCiAuVFAKIC5CIGRibm9zeW5jCiBTcGVjaWZ5IHRoYXQgb24tZGlzayBkYXRhYmFzZSBj b250ZW50cyBzaG91bGQgbm90IGJlIGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9zZXJ2ZXJzL3Ns YXBkL2JhY2stbWRiL2NvbmZpZy5jIGIvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9jb25maWcuYwpp bmRleCA5NzlkNGFkLi45Zjg3ZmQ5IDEwMDY0NAotLS0gYS9zZXJ2ZXJzL3NsYXBkL2JhY2stbWRi L2NvbmZpZy5jCisrKyBiL3NlcnZlcnMvc2xhcGQvYmFjay1tZGIvY29uZmlnLmMKQEAgLTUyMSw2 ICs1MjEsOCBAQCBtZGJfY2ZfZ2VuKCBDb25maWdBcmdzICpjICkKIAkJCXJldHVybiAxOwogCQl9 CiAJCW1kYi0+bWlfdHhuX2NwX2tieXRlID0gbDsKKwkJaWYgKCBtZGItPm1pX2ZsYWdzICYgTURC X0lTX09QRU4gKQorCQkJbWRiX2Vudl9zZXRfc3luY2J5dGVzKCBtZGItPm1pX2RiZW52LCBtZGIt Pm1pX3R4bl9jcF9rYnl0ZSAqIDEwMjR1bGwpOwogCQlpZiAoIGx1dGlsX2F0b2x4KCAmbCwgYy0+ YXJndlsyXSwgMCApICE9IDAgKSB7CiAJCQlmcHJpbnRmKCBzdGRlcnIsICIlczogIgogCQkJCSJp bnZhbGlkIHNlY29uZHMgXCIlc1wiIGluIFwiY2hlY2twb2ludFwiLlxuIiwKZGlmZiAtLWdpdCBh L3NlcnZlcnMvc2xhcGQvYmFjay1tZGIvaW5pdC5jIGIvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9p bml0LmMKaW5kZXggMWM1YWI4My4uMmE3Y2Y2MiAxMDA2NDQKLS0tIGEvc2VydmVycy9zbGFwZC9i YWNrLW1kYi9pbml0LmMKKysrIGIvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9pbml0LmMKQEAgLTE1 MCw2ICsxNTAsMTUgQEAgbWRiX2RiX29wZW4oIEJhY2tlbmREQiAqYmUsIENvbmZpZ1JlcGx5ICpj ciApCiAJCWdvdG8gZmFpbDsKIAl9CiAKKwlyYyA9IG1kYl9lbnZfc2V0X3N5bmNieXRlcyggbWRi LT5taV9kYmVudiwgbWRiLT5taV90eG5fY3Bfa2J5dGUgKiAxMDI0dWwpOworCWlmKCByYyAhPSAw ICkgeworCQlEZWJ1ZyggTERBUF9ERUJVR19BTlksCisJCQlMREFQX1hTVFJJTkcobWRiX2RiX29w ZW4pICI6IGRhdGFiYXNlIFwiJXNcIjogIgorCQkJIm1kYl9lbnZfc2V0X3N5bmNfdGhyZXNob2xk IGZhaWxlZDogJXMgKCVkKS5cbiIsCisJCQliZS0+YmVfc3VmZml4WzBdLmJ2X3ZhbCwgbWRiX3N0 cmVycm9yKHJjKSwgcmMgKTsKKwkJZ290byBmYWlsOworCX0KKwogI2lmZGVmIEhBVkVfRUJDRElD CiAJc3RyY3B5KCBwYXRoLCBtZGItPm1pX2RiZW52X2hvbWUgKTsKIAlfX2F0b2UoIHBhdGggKTsK LS0gCjIuMS4wCgo= --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0006-BUGFIX-lmdb-properly-sync-meta-pages-in-mdb_sync_env.patch" Content-Disposition: attachment; filename="0006-BUGFIX-lmdb-properly-sync-meta-pages-in-mdb_sync_env.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdtx5
RnJvbSA4ZGRkNjMxNjFhZWIyNjg5ODIyZDFhOGQyNzM4NWQ2MmU0ZTM0MWFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBGcmks IDE5IFNlcCAyMDE0IDIyOjQ3OjE5ICswNDAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMV0gIEJVR0ZJ WCAtIGxtZGI6IHByb3Blcmx5IHN5bmMgbWV0YS1wYWdlcyBpbgogbWRiX3N5bmNfZW52KCkuCgog TWV0YS1wYWdlcyBtYXkgYmUgdXBkYXRlZCBkdXJpbmcgZGF0YS1zeW5jaW5nIGluIG1kYl9zeW5j X2VudigpLAogaW4gdGhpcyBjYXNlIGRhdGFiYXNlIHdvdWxkIGJlIGluY29uc2lzdGVudC4KCiBD aGVjay1hbmQtcmV0cnkgaWYgbGVhZCB0eG4taWQgY2hhbmdlZCBkdXJpbmcgZmx1c2hpbmcgZGF0 YSBpbiBtZGJfc3luY19lbnYoKS4KLS0tCiBsaWJyYXJpZXMvbGlibG1kYi9tZGIuYyB8IDU0ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YnJhcmllcy9saWJsbWRiL21kYi5jIGIvbGlicmFyaWVzL2xpYmxtZGIvbWRiLmMKaW5kZXggYjhi ZmQyZS4uNmRjNmRkZiAxMDA2NDQKLS0tIGEvbGlicmFyaWVzL2xpYmxtZGIvbWRiLmMKKysrIGIv bGlicmFyaWVzL2xpYmxtZGIvbWRiLmMKQEAgLTIzMDQsNiArMjMwNCw3IEBAIHN0YXRpYyBpbnQK IG1kYl9lbnZfc3luYzIoTURCX2VudiAqZW52LCBpbnQgKmZvcmNlKQogewogCWludCByYyA9IDA7 CisKIAlpZiAoZW52LT5tZV9zeW5jX3RocmVzaG9sZCAmJiBlbnYtPm1lX3N5bmNfcGVuZGluZyA+ PSBlbnYtPm1lX3N5bmNfdGhyZXNob2xkKQogCQkqZm9yY2UgPSAxOwogCWlmICgqZm9yY2UgfHwg IUZfSVNTRVQoZW52LT5tZV9mbGFncywgTURCX05PU1lOQykpIHsKQEAgLTIzMTEsNyArMjMxMiwx MyBAQCBtZGJfZW52X3N5bmMyKE1EQl9lbnYgKmVudiwgaW50ICpmb3JjZSkKIAkJaWYgKGVudi0+ bWVfZmxhZ3MgJiBNREJfV1JJVEVNQVApIHsKIAkJCWludCBmbGFncyA9ICgoZW52LT5tZV9mbGFn cyAmIE1EQl9NQVBBU1lOQykgJiYgKmZvcmNlID09IDApCiAJCQkJPyBNU19BU1lOQyA6IE1TX1NZ TkM7Ci0JCQlpZiAoTURCX01TWU5DKGVudi0+bWVfbWFwLCBlbnYtPm1lX21hcHNpemUsIGZsYWdz KSkKKworCQkJLyogTFk6IHNraXAgbWV0YS1wYWdlcyAqLworCQkJc2l6ZV90IGRhdGFfb2Zmc2V0 ID0gZW52LT5tZV9vc19wc2l6ZTsKKwkJCXdoaWxlIChkYXRhX29mZnNldCA8IGVudi0+bWVfcHNp emUgKyBlbnYtPm1lX3BzaXplKQorCQkJCWRhdGFfb2Zmc2V0ICs9IGVudi0+bWVfb3NfcHNpemU7 CisKKwkJCWlmIChNREJfTVNZTkMoZW52LT5tZV9tYXAgKyBkYXRhX29mZnNldCwgZW52LT5tZV9t YXBzaXplIC0gZGF0YV9vZmZzZXQsIGZsYWdzKSkKIAkJCQlyYyA9IEVyckNvZGUoKTsKICNpZmRl ZiBfV0lOMzIKIAkJCWVsc2UgaWYgKGZsYWdzID09IE1TX1NZTkMgJiYgTURCX0ZEQVRBU1lOQyhl bnYtPm1lX2ZkKSkKQEAgLTIzMjIsMTMgKzIzMjksNDYgQEAgbWRiX2Vudl9zeW5jMihNREJfZW52 ICplbnYsIGludCAqZm9yY2UpCiAJCQkJcmMgPSBFcnJDb2RlKCk7CiAJCX0KIAl9CisKIAlyZXR1 cm4gcmM7CiB9CiAKIGludAogbWRiX2Vudl9zeW5jKE1EQl9lbnYgKmVudiwgaW50IGZvcmNlKQog ewotCXJldHVybiBtZGJfZW52X3N5bmMyKGVudiwgJmZvcmNlKTsKKwlNREJfbWV0YSAqbWV0YTsK Kwl0eG5pZF90IGNoZWNrcG9pbnQ7CisJaW50IHJjLCBsb2NrZnJlZV9jb3VudGRvd24gPSAzOwor CisJaWYgKGVudi0+bWVfZmxhZ3MgJiBNREJfUkRPTkxZKQorCQlyZXR1cm4gMDsKKworCWRvIHsK KwkJaWYgKGxvY2tmcmVlX2NvdW50ZG93biAmJiAtLWxvY2tmcmVlX2NvdW50ZG93biA9PSAwKQor CQkJTE9DS19NVVRFWF9XKGVudik7CisKKwkJbWV0YSA9IGVudi0+bWVfbWV0YXNbIG1kYl9lbnZf cGlja19tZXRhKGVudikgXTsKKwkJY2hlY2twb2ludCA9IG1ldGEtPm1tX3R4bmlkOworCisJCS8q IGZpcnN0IHN5bmMgZGF0YS4gKi8KKwkJcmMgPSBtZGJfZW52X3N5bmMyKGVudiwgJmZvcmNlKTsK KworCQkvKiB0aGVuIHN5bmMgbWV0YS1wYWdlcy4gKi8KKwkJaWYgKHJjID09IDAgJiYgKGVudi0+ bWVfZmxhZ3MgJiBNREJfV1JJVEVNQVApKSB7CisJCQlpbnQgZmxhZ3MgPSAoIWZvcmNlICYmIChl bnYtPm1lX2ZsYWdzICYgTURCX01BUEFTWU5DKSkgPyBNU19BU1lOQyA6IE1TX1NZTkM7CisJCQlp ZiAoTURCX01TWU5DKGVudi0+bWVfbWFwLCBlbnYtPm1lX3BzaXplICogMiwgZmxhZ3MpKQorCQkJ CXJjID0gRXJyQ29kZSgpOworI2lmZGVmIF9XSU4zMgorCQkJaWYgKHJjID09IDAgJiYgZmxhZ3Mg PT0gTVNfU1lOQyAmJiBNREJfRkRBVEFTWU5DKGVudi0+bWVfZmQpKQorCQkJCXJjID0gRXJyQ29k ZSgpOworI2VuZGlmCisJCX0KKwl9IHdoaWxlIChyYyA9PSAwICYmIGNoZWNrcG9pbnQgIT0gbWV0 YS0+bW1fdHhuaWQpOworCisJaWYgKGxvY2tmcmVlX2NvdW50ZG93biA9PSAwKQorCQlVTkxPQ0tf TVVURVhfVyhlbnYpOworCisJcmV0dXJuIHJjOwogfQogCiAvKiogQmFjayB1cCBwYXJlbnQgdHhu J3MgY3Vyc29ycywgdGhlbiBncmFiIHRoZSBvcmlnaW5hbHMgZm9yIHRyYWNraW5nICovCkBAIC0z NTgyLDcgKzM2MjIsNyBAQCBtZGJfZW52X3dyaXRlX21ldGEoTURCX3R4biAqdHhuLCBpbnQgZm9y Y2UpCiAJCW1wLT5tbV90eG5pZCA9IHR4bi0+bXRfdHhuaWQ7CiAJCWlmIChmb3JjZSB8fCAhKGVu di0+bWVfZmxhZ3MgJiAoTURCX05PTUVUQVNZTkN8TURCX05PU1lOQykpKSB7CiAJCQl1bnNpZ25l ZCBtZXRhX3NpemUgPSBlbnYtPm1lX3BzaXplOwotCQkJcmMgPSAoIWZvcmNlICYmIChlbnYtPm1l X2ZsYWdzICYgTURCX01BUEFTWU5DKSkgPyBNU19BU1lOQyA6IE1TX1NZTkM7CisJCQlpbnQgZmxh Z3MgPSAoIWZvcmNlICYmIChlbnYtPm1lX2ZsYWdzICYgTURCX01BUEFTWU5DKSkgPyBNU19BU1lO QyA6IE1TX1NZTkM7CiAJCQlwdHIgPSBlbnYtPm1lX21hcDsKIAkJCWlmICh0b2dnbGUpIHsKICNp Zm5kZWYgX1dJTjMyCS8qIFBPU0lYIG1zeW5jKCkgcmVxdWlyZXMgcHRyID0gc3RhcnQgb2YgT1Mg cGFnZSAqLwpAQCAtMzU5MiwxMCArMzYzMiwxNiBAQCBtZGJfZW52X3dyaXRlX21ldGEoTURCX3R4 biAqdHhuLCBpbnQgZm9yY2UpCiAjZW5kaWYKIAkJCQkJcHRyICs9IG1ldGFfc2l6ZTsKIAkJCX0K LQkJCWlmIChNREJfTVNZTkMocHRyLCBtZXRhX3NpemUsIHJjKSkgeworCQkJaWYgKE1EQl9NU1lO QyhwdHIsIG1ldGFfc2l6ZSwgZmxhZ3MpKSB7CisJCQkJcmMgPSBFcnJDb2RlKCk7CisJCQkJZ290 byBmYWlsOworCQkJfQorI2lmZGVmIF9XSU4zMgorCQkJZWxzZSBpZiAoZmxhZ3MgPT0gTVNfU1lO QyAmJiBNREJfRkRBVEFTWU5DKGVudi0+bWVfZmQpKSB7CiAJCQkJcmMgPSBFcnJDb2RlKCk7CiAJ CQkJZ290byBmYWlsOwogCQkJfQorI2VuZGlmCiAJCX0KIAkJZ290byBkb25lOwogCX0KLS0gCjIu MS4wCgo= --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0007-FEATURE-lmdb-MDB_LIFORECLAIM-MDB_COALESCE-modes.patch" Content-Disposition: attachment; filename="0007-FEATURE-lmdb-MDB_LIFORECLAIM-MDB_COALESCE-modes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdu86
RnJvbSAwYzE2OGQwZTYzZWQ3OGQxM2RmM2ZjOGE0MmYzNjY3MzM1Njc4NjM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBTYXQs IDIwIFNlcCAyMDE0IDEwOjEzOjI4ICswNDAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMV0gIEZFQVRV UkUgLSBsbWRiOiBNREJfTElGT1JFQ0xBSU0gJiBNREJfQ09BTEVTQ0UgbW9kZXMuCgogUmVjbGFp bSBGcmVlREIgaW4gTElGTyBvcmRlciAtIHRoaXMgaXMgYSBtYWluIGZlYXR1cmUuCiBBbHNvIGFp bSB0byBjb2FsZXNjZSBzbWFsbCBGcmVlREZCIHJlY29yZHMuCi0tLQogbGlicmFyaWVzL2xpYmxt ZGIvbG1kYi5oIHwgIDExICsrCiBsaWJyYXJpZXMvbGlibG1kYi9tZGIuYyAgfCAzNjggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMzAyIGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnJh cmllcy9saWJsbWRiL2xtZGIuaCBiL2xpYnJhcmllcy9saWJsbWRiL2xtZGIuaAppbmRleCBjNWYz YTc5Li5hMjJmOGY3IDEwMDY0NAotLS0gYS9saWJyYXJpZXMvbGlibG1kYi9sbWRiLmgKKysrIGIv bGlicmFyaWVzL2xpYmxtZGIvbG1kYi5oCkBAIC0yODcsNiArMjg3LDExIEBAIHR5cGVkZWYgdm9p ZCAoTURCX3JlbF9mdW5jKShNREJfdmFsICppdGVtLCB2b2lkICpvbGRwdHIsIHZvaWQgKm5ld3B0 ciwgdm9pZCAqcmVsCiAjZGVmaW5lIE1EQl9OT1JEQUhFQUQJMHg4MDAwMDAKIAkvKiogZG9uJ3Qg aW5pdGlhbGl6ZSBtYWxsb2MnZCBtZW1vcnkgYmVmb3JlIHdyaXRpbmcgdG8gZGF0YWZpbGUgKi8K ICNkZWZpbmUgTURCX05PTUVNSU5JVAkweDEwMDAwMDAKKwkvKiogYWltIHRvIGNvYWxlc2NlIEZy ZWVEQiByZWNvcmRzICovCisjZGVmaW5lIE1EQl9DT0FMRVNDRQkweDIwMDAwMDAKKwkvKiogTElG TyBwb2xpY3kgZm9yIHJlY2xhaW1pbmcgRnJlZURCIHJlY29yZHMKKwkgKiAgKHNpZ25pZmljYW50 bHkgcmVkdWNlIElQT1MgaW4gY2FzZSBNREJfTk9TWU5DIHdpdGggcGVyaW9kaWNhbGx5IGNoZWNr cG9pbnRzKS4gKi8KKyNkZWZpbmUgTURCX0xJRk9SRUNMQUlNCTB4NDAwMDAwMAogLyoqIEB9ICov CiAKIC8qKglAZGVmZ3JvdXAJbWRiX2RiaV9vcGVuCURhdGFiYXNlIEZsYWdzCkBAIC01ODgsNiAr NTkzLDEyIEBAIGludCAgbWRiX2Vudl9jcmVhdGUoTURCX2VudiAqKmVudik7CiAJICoJCWNhbGxl ciBpcyBleHBlY3RlZCB0byBvdmVyd3JpdGUgYWxsIG9mIHRoZSBtZW1vcnkgdGhhdCB3YXMKIAkg KgkJcmVzZXJ2ZWQgaW4gdGhhdCBjYXNlLgogCSAqCQlUaGlzIGZsYWcgbWF5IGJlIGNoYW5nZWQg YXQgYW55IHRpbWUgdXNpbmcgI21kYl9lbnZfc2V0X2ZsYWdzKCkuCisJICogIDxsaT4jTURCX0NP QUxFU0NFCisJICogICAgICBBaW0gdG8gY29hbGVzY2UgcmVjb3JkcyB3aGlsZSByZWNsYWltaW5n IEZyZWVEQi4KKwkgKgkJVGhpcyBmbGFnIG1heSBiZSBjaGFuZ2VkIGF0IGFueSB0aW1lIHVzaW5n ICNtZGJfZW52X3NldF9mbGFncygpLgorCSAqICA8bGk+I01EQl9MSUZPUkVDTEFJTQorCSAqIAkg ICAgTElGTyBwb2xpY3kgZm9yIHJlY2xhaW1pbmcgRnJlZURCIHJlY29yZHMuIFRoaXMgc2lnbmlm aWNhbnRseSByZWR1Y2UKKwkgKiAgICAgIHdyaXRlIElQT1MgaW4gY2FzZSBNREJfTk9TWU5DIHdp dGggcGVyaW9kaWNhbGx5IGNoZWNrcG9pbnRzLgogCSAqIDwvdWw+CiAJICogQHBhcmFtW2luXSBt b2RlIFRoZSBVTklYIHBlcm1pc3Npb25zIHRvIHNldCBvbiBjcmVhdGVkIGZpbGVzLiBUaGlzIHBh cmFtZXRlcgogCSAqIGlzIGlnbm9yZWQgb24gV2luZG93cy4KZGlmZiAtLWdpdCBhL2xpYnJhcmll cy9saWJsbWRiL21kYi5jIGIvbGlicmFyaWVzL2xpYmxtZGIvbWRiLmMKaW5kZXggNmRjNmRkZi4u MGZhZmVlMiAxMDA2NDQKLS0tIGEvbGlicmFyaWVzL2xpYmxtZGIvbWRiLmMKKysrIGIvbGlicmFy aWVzL2xpYmxtZGIvbWRiLmMKQEAgLTk0OSw2ICs5NDksOCBAQCBzdHJ1Y3QgTURCX3R4biB7CiAJ ICovCiAJdHhuaWRfdAkJbXRfdHhuaWQ7CiAJTURCX2VudgkJKm10X2VudjsJCS8qKjwgdGhlIERC IGVudmlyb25tZW50ICovCisJLyoqIFRoZSBsaXN0IG9mIHJlY2xhaW1lZCB0eG5zIGZyb20gZnJl ZURCICovCisJTURCX0lETAkJbXRfbGlmb19yZWNsYWltZWQ7CiAJLyoqIFRoZSBsaXN0IG9mIHBh Z2VzIHRoYXQgYmVjYW1lIHVudXNlZCBkdXJpbmcgdGhpcyB0cmFuc2FjdGlvbi4KIAkgKi8KIAlN REJfSURMCQltdF9mcmVlX3BnczsKQEAgLTEwNTcsNiArMTA1OSw3IEBAIHN0cnVjdCBNREJfY3Vy c29yIHsKICNkZWZpbmUgQ19ERUwJMHgwOAkJCS8qKjwgbGFzdCBvcCB3YXMgYSBjdXJzb3JfZGVs ICovCiAjZGVmaW5lIENfU1BMSVRUSU5HCTB4MjAJCS8qKjwgQ3Vyc29yIGlzIGluIHBhZ2Vfc3Bs aXQgKi8KICNkZWZpbmUgQ19VTlRSQUNLCTB4NDAJCS8qKjwgVW4tdHJhY2sgY3Vyc29yIHdoZW4g Y2xvc2luZyAqLworI2RlZmluZSBDX1JFQ0xBSU1JTkcJMHg4MAkJLyoqPCBGcmVlREIgbG9va3Vw IGlzIHByb2hpYml0ZWQgKi8KIC8qKiBAfSAqLwogCXVuc2lnbmVkIGludAltY19mbGFnczsJLyoq PCBAcmVmIG1kYl9jdXJzb3IgKi8KIAlNREJfcGFnZQkqbWNfcGdbQ1VSU09SX1NUQUNLXTsJLyoq PCBzdGFjayBvZiBwdXNoZWQgcGFnZXMgKi8KQEAgLTE5MzYsNTEgKzE5MzksNTEgQEAgbWRiX3Bh Z2VfZGlydHkoTURCX3R4biAqdHhuLCBNREJfcGFnZSAqbXApCiAgKiAgd2lsbCBhbHdheXMgYmUg c2F0aXNmaWVkIGJ5IGEgc2luZ2xlIGNvbnRpZ3VvdXMgY2h1bmsgb2YgbWVtb3J5LgogICogQHJl dHVybiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG9uIGZhaWx1cmUuCiAgKi8KKwogc3RhdGljIGlu dAogbWRiX3BhZ2VfYWxsb2MoTURCX2N1cnNvciAqbWMsIGludCBudW0sIE1EQl9wYWdlICoqbXAp CiB7Ci0jaWZkZWYgTURCX1BBUkFOT0lECS8qIFNlZW1zIGxpa2Ugd2UgY2FuIGlnbm9yZSB0aGlz IG5vdyAqLwotCS8qIEdldCBhdCBtb3N0IDxNYXhfcmV0cmllcz4gbW9yZSBmcmVlREIgcmVjb3Jk cyBvbmNlIG1lX3BnaGVhZAotCSAqIGhhcyBlbm91Z2ggcGFnZXMuICBJZiBub3QgZW5vdWdoLCB1 c2UgbmV3IHBhZ2VzIGZyb20gdGhlIG1hcC4KLQkgKiBJZiA8UGFyYW5vaWQ+IGFuZCBtYyBpcyB1 cGRhdGluZyB0aGUgZnJlZURCLCBvbmx5IGdldCBuZXcKLQkgKiByZWNvcmRzIGlmIG1lX3BnaGVh ZCBpcyBlbXB0eS4gVGhlbiB0aGUgZnJlZWxpc3QgY2Fubm90IHBsYXkKLQkgKiBjYXRjaC11cCB3 aXRoIGl0c2VsZiBieSBncm93aW5nIHdoaWxlIHRyeWluZyB0byBzYXZlIGl0LgotCSAqLwotCWVu dW0geyBQYXJhbm9pZCA9IDEsIE1heF9yZXRyaWVzID0gNTAwIH07Ci0jZWxzZQotCWVudW0geyBQ YXJhbm9pZCA9IDAsIE1heF9yZXRyaWVzID0gSU5UX01BWCAvKmluZmluaXRlKi8gfTsKLSNlbmRp ZgogCWludCByYywgcmV0cnkgPSBudW0gKiA2MDsKIAlNREJfdHhuICp0eG4gPSBtYy0+bWNfdHhu OwogCU1EQl9lbnYgKmVudiA9IHR4bi0+bXRfZW52OwogCXBnbm9fdCBwZ25vLCAqbW9wID0gZW52 LT5tZV9wZ2hlYWQ7Ci0JdW5zaWduZWQgaSwgaiwgbW9wX2xlbiA9IG1vcCA/IG1vcFswXSA6IDAs IG4yID0gbnVtLTE7CisJdW5zaWduZWQgaSA9IDAsIGosIG1vcF9sZW4gPSBtb3AgPyBtb3BbMF0g OiAwLCBuMiA9IG51bS0xOwogCU1EQl9wYWdlICpucDsKLQl0eG5pZF90IG9sZGVzdCA9IDAsIGxh c3Q7CisJdHhuaWRfdCBvbGRlc3QgPSAwLCBsYXN0ID0gMDsKIAlNREJfY3Vyc29yX29wIG9wOwog CU1EQl9jdXJzb3IgbTI7CiAJaW50IGZvdW5kX29sZCA9IDA7CisJdW5zaWduZWQgZW5vdWdodCA9 IGVudi0+bWVfbWF4ZnJlZV8xcGcgLyAyOworCisJLyogbXAgPT0gTlVMTCB3aGVuIG1kYl9mcmVl bGlzdF9zYXZlKCkgZm9yY2UgcmVjbGFpbSB0bworCSAqIGdldCBvbmUgbW9yZSBpZCBmb3Igc2F2 aW5nIGxpc3Qgb2YgcGFnZXMuICovCisJaWYgKG1wKSB7CisJCS8qIElmIHRoZXJlIGFyZSBhbnkg bG9vc2UgcGFnZXMsIGp1c3QgdXNlIHRoZW0gKi8KKwkJaWYgKG51bSA9PSAxICYmIHR4bi0+bXRf bG9vc2VfcGdzKSB7CisJCQlucCA9IHR4bi0+bXRfbG9vc2VfcGdzOworCQkJdHhuLT5tdF9sb29z ZV9wZ3MgPSBORVhUX0xPT1NFX1BBR0UobnApOworCQkJdHhuLT5tdF9sb29zZV9jb3VudC0tOwor CQkJRFBSSU5URigoImRiICVkIHVzZSBsb29zZSBwYWdlICUiWiJ1IiwgRERCSShtYyksCisJCQkJ CW5wLT5tcF9wZ25vKSk7CisJCQkqbXAgPSBucDsKKwkJCXJldHVybiBNREJfU1VDQ0VTUzsKKwkJ fQogCi0JLyogSWYgdGhlcmUgYXJlIGFueSBsb29zZSBwYWdlcywganVzdCB1c2UgdGhlbSAqLwot CWlmIChudW0gPT0gMSAmJiB0eG4tPm10X2xvb3NlX3BncykgewotCQlucCA9IHR4bi0+bXRfbG9v c2VfcGdzOwotCQl0eG4tPm10X2xvb3NlX3BncyA9IE5FWFRfTE9PU0VfUEFHRShucCk7Ci0JCXR4 bi0+bXRfbG9vc2VfY291bnQtLTsKLQkJRFBSSU5URigoImRiICVkIHVzZSBsb29zZSBwYWdlICUi WiJ1IiwgRERCSShtYyksCi0JCQkJbnAtPm1wX3Bnbm8pKTsKLQkJKm1wID0gbnA7Ci0JCXJldHVy biBNREJfU1VDQ0VTUzsKKwkJKm1wID0gTlVMTDsKIAl9CiAKLQkqbXAgPSBOVUxMOwotCiAJLyog SWYgb3VyIGRpcnR5IGxpc3QgaXMgYWxyZWFkeSBmdWxsLCB3ZSBjYW4ndCBkbyBhbnl0aGluZyAq LwogCWlmICh0eG4tPm10X2RpcnR5X3Jvb20gPT0gMCkgewogCQlyYyA9IE1EQl9UWE5fRlVMTDsK IAkJZ290byBmYWlsOwogCX0KIAotCWZvciAob3AgPSBNREJfRklSU1Q7OyBvcCA9IE1EQl9ORVhU KSB7CisJaW50IGNvYWxlc2NlID0gKGVudi0+bWVfZmxhZ3MgJiBNREJfQ09BTEVTQ0UpID8gMSA6 IDA7CisJaWYgKGNvYWxlc2NlICYmIGVudi0+bWVfcGdvbGRlc3QgPT0gMCkKKwkJY29hbGVzY2Ug PSAyOworCisJY29uc3QgaW50IGxpZm8gPSAoZW52LT5tZV9mbGFncyAmIE1EQl9MSUZPUkVDTEFJ TSkgIT0gMDsKKwlmb3IgKG9wID0gTURCX0ZJUlNUOzsgb3AgPSBsaWZvID8gTURCX1BSRVYgOiBN REJfTkVYVCkgewogCQlNREJfdmFsIGtleSwgZGF0YTsKIAkJTURCX25vZGUgKmxlYWY7CiAJCXBn bm9fdCAqaWRsOwpAQCAtMTk4OCw3ICsxOTkxLDcgQEAgbWRiX3BhZ2VfYWxsb2MoTURCX2N1cnNv ciAqbWMsIGludCBudW0sIE1EQl9wYWdlICoqbXApCiAJCS8qIFNlZWsgYSBiaWcgZW5vdWdoIGNv bnRpZ3VvdXMgcGFnZSByYW5nZS4gUHJlZmVyCiAJCSAqIHBhZ2VzIGF0IHRoZSB0YWlsLCBqdXN0 IHRydW5jYXRpbmcgdGhlIGxpc3QuCiAJCSAqLwotCQlpZiAobW9wX2xlbiA+IG4yKSB7CisJCWlm IChtcCAmJiBtb3BfbGVuID4gbjIgJiYgKCEgY29hbGVzY2UgfHwgb3AgPT0gTURCX0ZJUlNUKSkg ewogCQkJaSA9IG1vcF9sZW47CiAJCQlkbyB7CiAJCQkJcGdubyA9IG1vcFtpXTsKQEAgLTIwMDEs MzcgKzIwMDQsNzMgQEAgbWRiX3BhZ2VfYWxsb2MoTURCX2N1cnNvciAqbWMsIGludCBudW0sIE1E Ql9wYWdlICoqbXApCiAKIAkJaWYgKG9wID09IE1EQl9GSVJTVCkgewkvKiAxc3QgaXRlcmF0aW9u ICovCiAJCQkvKiBQcmVwYXJlIHRvIGZldGNoIG1vcmUgYW5kIGNvYWxlc2NlICovCi0JCQlsYXN0 ID0gZW52LT5tZV9wZ2xhc3Q7CisJCQlpZiAobWMtPm1jX2ZsYWdzICYgQ19SRUNMQUlNSU5HKSB7 CisJCQkJLyogSWYgbWMgaXMgdXBkYXRpbmcgdGhlIGZyZWVEQiwgdGhlbiB0aGUgZnJlZWxpc3Qg Y2Fubm90IHBsYXkKKwkJCQkgKiBjYXRjaC11cCB3aXRoIGl0c2VsZiBieSBncm93aW5nIHdoaWxl IHRyeWluZyB0byBzYXZlIGl0LgorCQkJCSAqLworCQkJCWJyZWFrOworCQkJfQogCQkJb2xkZXN0 ID0gZW52LT5tZV9wZ29sZGVzdDsKIAkJCW1kYl9jdXJzb3JfaW5pdCgmbTIsIHR4biwgRlJFRV9E QkksIE5VTEwpOwotCQkJaWYgKGxhc3QpIHsKKwkJCWlmIChsaWZvKSB7CisJCQkJaWYgKGVudi0+ bWVfcGdsYXN0ID4gMSkgeworCQkJCQkvKiBDb250aW51ZSBsb29rdXAgZnJvbSBlbnYtPm1lX3Bn bGFzdCAqLworCQkJCQlsYXN0ID0gZW52LT5tZV9wZ2xhc3QgLSAxOworCQkJCQlvcCA9IE1EQl9T RVRfUkFOR0U7CisJCQkJfSBlbHNlIHsKKwkJCQkJb2xkZXN0ID0gbWRiX2ZpbmRfb2xkZXN0KHR4 bik7CisJCQkJCWVudi0+bWVfcGdvbGRlc3QgPSBvbGRlc3Q7CisJCQkJCWZvdW5kX29sZCA9IDE7 CisJCQkJCS8qIEJlZ2luIGZyb20gb2xkZXN0IHJlYWRlciBpZiBhbnkgKi8KKwkJCQkJaWYgKG9s ZGVzdCA+IDIpIHsKKwkJCQkJCWxhc3QgPSBvbGRlc3QgLSAxOworCQkJCQkJb3AgPSBNREJfU0VU X1JBTkdFOworCQkJCQl9CisJCQkJfQorCQkJfSBlbHNlIGlmIChlbnYtPm1lX3BnbGFzdCkgewor CQkJCS8qIENvbnRpbnVlIGxvb2t1cCBmcm9tIGVudi0+bWVfcGdsYXN0ICovCisJCQkJbGFzdCA9 IGVudi0+bWVfcGdsYXN0OwogCQkJCW9wID0gTURCX1NFVF9SQU5HRTsKLQkJCQlrZXkubXZfZGF0 YSA9ICZsYXN0OyAvKiB3aWxsIGxvb2sgdXAgbGFzdCsxICovCi0JCQkJa2V5Lm12X3NpemUgPSBz aXplb2YobGFzdCk7CiAJCQl9Ci0JCQlpZiAoUGFyYW5vaWQgJiYgbWMtPm1jX2RiaSA9PSBGUkVF X0RCSSkKLQkJCQlyZXRyeSA9IC0xOworCisJCQlrZXkubXZfZGF0YSA9ICZsYXN0OworCQkJa2V5 Lm12X3NpemUgPSBzaXplb2YobGFzdCk7CiAJCX0KLQkJaWYgKFBhcmFub2lkICYmIHJldHJ5IDwg MCAmJiBtb3BfbGVuKQotCQkJYnJlYWs7CiAKLQkJbGFzdCsrOwotCQkvKiBEbyBub3QgZmV0Y2gg bW9yZSBpZiB0aGUgcmVjb3JkIHdpbGwgYmUgdG9vIHJlY2VudCAqLwotCQlpZiAob2xkZXN0IDw9 IGxhc3QpIHsKLQkJCWlmICghZm91bmRfb2xkKSB7Ci0JCQkJb2xkZXN0ID0gbWRiX2ZpbmRfb2xk ZXN0KHR4bik7Ci0JCQkJZW52LT5tZV9wZ29sZGVzdCA9IG9sZGVzdDsKLQkJCQlmb3VuZF9vbGQg PSAxOworCQlpZiAoISBsaWZvKSB7CisJCQkvKiBEbyBub3QgZmV0Y2ggbW9yZSBpZiB0aGUgcmVj b3JkIHdpbGwgYmUgdG9vIHJlY2VudCAqLworCQkJaWYgKG9wICE9IE1EQl9GSVJTVCAmJiArK2xh c3QgPj0gb2xkZXN0KSB7CisJCQkJaWYgKCFmb3VuZF9vbGQpIHsKKwkJCQkJb2xkZXN0ID0gbWRi X2ZpbmRfb2xkZXN0KHR4bik7CisJCQkJCWVudi0+bWVfcGdvbGRlc3QgPSBvbGRlc3Q7CisJCQkJ CWZvdW5kX29sZCA9IDE7CisJCQkJfQorCQkJCWlmIChvbGRlc3QgPD0gbGFzdCkKKwkJCQkJYnJl YWs7CiAJCQl9Ci0JCQlpZiAob2xkZXN0IDw9IGxhc3QpCi0JCQkJYnJlYWs7CiAJCX0KKwogCQly YyA9IG1kYl9jdXJzb3JfZ2V0KCZtMiwgJmtleSwgTlVMTCwgb3ApOworCQlpZiAocmMgPT0gTURC X05PVEZPVU5EICYmIGxpZm8pIHsKKwkJCWlmIChvcCA9PSBNREJfU0VUX1JBTkdFKQorCQkJCWNv bnRpbnVlOworCQkJZW52LT5tZV9wZ29sZGVzdCA9IG1kYl9maW5kX29sZGVzdCh0eG4pOworCQkJ Zm91bmRfb2xkID0gMTsKKwkJCWlmIChvbGRlc3QgPCBlbnYtPm1lX3Bnb2xkZXN0KSB7CisJCQkJ b2xkZXN0ID0gZW52LT5tZV9wZ29sZGVzdDsKKwkJCQlsYXN0ID0gb2xkZXN0IC0gMTsKKwkJCQlr ZXkubXZfZGF0YSA9ICZsYXN0OworCQkJCWtleS5tdl9zaXplID0gc2l6ZW9mKGxhc3QpOworCQkJ CW9wID0gTURCX1NFVF9SQU5HRTsKKwkJCQlyYyA9IG1kYl9jdXJzb3JfZ2V0KCZtMiwgJmtleSwg TlVMTCwgb3ApOworCQkJfQorCQl9CiAJCWlmIChyYykgewogCQkJaWYgKHJjID09IE1EQl9OT1RG T1VORCkKIAkJCQlicmVhazsKIAkJCWdvdG8gZmFpbDsKIAkJfQorCiAJCWxhc3QgPSAqKHR4bmlk X3QqKWtleS5tdl9kYXRhOwogCQlpZiAob2xkZXN0IDw9IGxhc3QpIHsKIAkJCWlmICghZm91bmRf b2xkKSB7CkBAIC0yMDM5LDE1ICsyMDc4LDM4IEBAIG1kYl9wYWdlX2FsbG9jKE1EQl9jdXJzb3Ig Km1jLCBpbnQgbnVtLCBNREJfcGFnZSAqKm1wKQogCQkJCWVudi0+bWVfcGdvbGRlc3QgPSBvbGRl c3Q7CiAJCQkJZm91bmRfb2xkID0gMTsKIAkJCX0KLQkJCWlmIChvbGRlc3QgPD0gbGFzdCkKKwkJ CWlmIChvbGRlc3QgPD0gbGFzdCkgeworCQkJCWlmIChsaWZvKQorCQkJCQljb250aW51ZTsKIAkJ CQlicmVhazsKKwkJCX0KIAkJfQorCisJCWlmIChsaWZvKSB7CisJCQlpZiAodHhuLT5tdF9saWZv X3JlY2xhaW1lZCkgeworCQkJCWZvcihpID0gdHhuLT5tdF9saWZvX3JlY2xhaW1lZFswXTsgaSA+ IDA7IC0taSkKKwkJCQkJaWYgKHR4bi0+bXRfbGlmb19yZWNsYWltZWRbaV0gPT0gbGFzdCkKKwkJ CQkJCWJyZWFrOworCQkJCWlmIChpKQorCQkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCiAJCW5w ID0gbTIubWNfcGdbbTIubWNfdG9wXTsKIAkJbGVhZiA9IE5PREVQVFIobnAsIG0yLm1jX2tpW20y Lm1jX3RvcF0pOwogCQlpZiAoKHJjID0gbWRiX25vZGVfcmVhZCh0eG4sIGxlYWYsICZkYXRhKSkg IT0gTURCX1NVQ0NFU1MpCiAJCQlyZXR1cm4gcmM7CiAKKwkJaWYgKGxpZm8gJiYgIXR4bi0+bXRf bGlmb19yZWNsYWltZWQpIHsKKwkJCXR4bi0+bXRfbGlmb19yZWNsYWltZWQgPSBtZGJfbWlkbF9h bGxvYyhlbnYtPm1lX21heGZyZWVfMXBnKTsKKwkJCWlmICghdHhuLT5tdF9saWZvX3JlY2xhaW1l ZCkgeworCQkJCXJjID0gRU5PTUVNOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKwkJfQorCiAJCWlk bCA9IChNREJfSUQgKikgZGF0YS5tdl9kYXRhOworCQltZGJfdGFzc2VydCh0eG4sIGlkbFswXSA9 PSAwIHx8IGRhdGEubXZfc2l6ZSA9PSAoaWRsWzBdICsgMSkgKiBzaXplb2YoTURCX0lEKSk7CiAJ CWkgPSBpZGxbMF07CiAJCWlmICghbW9wKSB7CiAJCQlpZiAoIShlbnYtPm1lX3BnaGVhZCA9IG1v cCA9IG1kYl9taWRsX2FsbG9jKGkpKSkgewpAQCAtMjA1OSw2ICsyMTIxLDEwIEBAIG1kYl9wYWdl X2FsbG9jKE1EQl9jdXJzb3IgKm1jLCBpbnQgbnVtLCBNREJfcGFnZSAqKm1wKQogCQkJCWdvdG8g ZmFpbDsKIAkJCW1vcCA9IGVudi0+bWVfcGdoZWFkOwogCQl9CisJCWlmIChsaWZvKSB7CisJCQlp ZiAoKHJjID0gbWRiX21pZGxfYXBwZW5kKCZ0eG4tPm10X2xpZm9fcmVjbGFpbWVkLCBsYXN0KSkg IT0gMCkKKwkJCQlnb3RvIGZhaWw7CisJCX0KIAkJZW52LT5tZV9wZ2xhc3QgPSBsYXN0OwogI2lm IChNREJfREVCVUcpID4gMQogCQlEUFJJTlRGKCgiSURMIHJlYWQgdHhuICUiWiJ1IHJvb3QgJSJa InUgbnVtICV1IiwKQEAgLTIwNjksMTUgKzIxMzUsNDAgQEAgbWRiX3BhZ2VfYWxsb2MoTURCX2N1 cnNvciAqbWMsIGludCBudW0sIE1EQl9wYWdlICoqbXApCiAJCS8qIE1lcmdlIGluIGRlc2NlbmRp bmcgc29ydGVkIG9yZGVyICovCiAJCW1kYl9taWRsX3htZXJnZShtb3AsIGlkbCk7CiAJCW1vcF9s ZW4gPSBtb3BbMF07CisKKwkJaWYgKCEgbXApIHsKKwkJCS8qIGZvcmNlIHJlY2xhaW0gbW9kZSAq LworCQkJcmV0dXJuIDA7CisJCX0KKworCQkvKiBEb24ndCB0cnkgdG8gY29hbGVzY2UgdG9vIG11 Y2guICovCisJCWlmIChtb3BfbGVuID4gTURCX0lETF9VTV9TSVpFIC8gMikKKwkJCWJyZWFrOwor CQlpZiAoY29hbGVzY2UgPT0gMSAmJiAobW9wX2xlbiA+PSBlbm91Z2h0IHx8IGkgPj0gZW5vdWdo dCAvIDIpKQorCQkJY29hbGVzY2UgPSAwOworCX0KKworCWlmICghIG1wKSB7CisJCS8qIGZvcmNl IHJlY2xhaW0gbW9kZSAqLworCQlyZXR1cm4gTURCX05PVEZPVU5EOworCX0KKworCWlmIChtb3Bf bGVuID4gbjIgJiYgY29hbGVzY2UpIHsKKwkJaSA9IG1vcF9sZW47CisJCWRvIHsKKwkJCXBnbm8g PSBtb3BbaV07CisJCQlpZiAobW9wW2ktbjJdID09IHBnbm8rbjIpCisJCQkJZ290byBzZWFyY2hf ZG9uZTsKKwkJfSB3aGlsZSAoLS1pID4gbjIpOwogCX0KIAogCS8qIFVzZSBuZXcgcGFnZXMgZnJv bSB0aGUgbWFwIHdoZW4gbm90aGluZyBzdWl0YWJsZSBpbiB0aGUgZnJlZURCICovCiAJaSA9IDA7 CiAJcGdubyA9IHR4bi0+bXRfbmV4dF9wZ25vOwogCWlmIChwZ25vICsgbnVtID49IGVudi0+bWVf bWF4cGcpIHsKLQkJCURQVVRTKCJEQiBzaXplIG1heGVkIG91dCIpOwotCQkJcmMgPSBNREJfTUFQ X0ZVTEw7Ci0JCQlnb3RvIGZhaWw7CisJCURQVVRTKCJEQiBzaXplIG1heGVkIG91dCIpOworCQly YyA9IE1EQl9NQVBfRlVMTDsKKwkJZ290byBmYWlsOwogCX0KIAogc2VhcmNoX2RvbmU6CkBAIC0y NTk4LDYgKzI2ODksOCBAQCBtZGJfdHhuX3JlbmV3MChNREJfdHhuICp0eG4pCiAJCXR4bi0+bXRf ZnJlZV9wZ3MgPSBlbnYtPm1lX2ZyZWVfcGdzOwogCQl0eG4tPm10X2ZyZWVfcGdzWzBdID0gMDsK IAkJdHhuLT5tdF9zcGlsbF9wZ3MgPSBOVUxMOworCQltZGJfbWlkbF9mcmVlKHR4bi0+bXRfbGlm b19yZWNsYWltZWQpOworCQl0eG4tPm10X2xpZm9fcmVjbGFpbWVkID0gTlVMTDsKIAkJZW52LT5t ZV90eG4gPSB0eG47CiAJCW1lbWNweSh0eG4tPm10X2RiaXNlcXMsIGVudi0+bWVfZGJpc2Vxcywg ZW52LT5tZV9tYXhkYnMgKiBzaXplb2YodW5zaWduZWQgaW50KSk7CiAJfQpAQCAtMjgzMiw2ICsy OTI1LDkgQEAgbWRiX3R4bl9yZXNldDAoTURCX3R4biAqdHhuLCBjb25zdCBjaGFyICphY3QpCiAJ CX0KIAkJbWRiX21pZGxfZnJlZShlbnYtPm1lX3BnaGVhZCk7CiAKKwkJbWRiX21pZGxfZnJlZSh0 eG4tPm10X2xpZm9fcmVjbGFpbWVkKTsKKwkJdHhuLT5tdF9saWZvX3JlY2xhaW1lZCA9IE5VTEw7 CisKIAkJaWYgKHR4bi0+bXRfcGFyZW50KSB7CiAJCQl0eG4tPm10X3BhcmVudC0+bXRfY2hpbGQg PSBOVUxMOwogCQkJZW52LT5tZV9wZ3N0YXRlID0gKChNREJfbnR4biAqKXR4biktPm1udF9wZ3N0 YXRlOwpAQCAtMjkwMCwxMCArMjk5NiwxMiBAQCBtZGJfZnJlZWxpc3Rfc2F2ZShNREJfdHhuICp0 eG4pCiAJdHhuaWRfdAlwZ2xhc3QgPSAwLCBoZWFkX2lkID0gMDsKIAlwZ25vX3QJZnJlZWNudCA9 IDAsICpmcmVlX3BncywgKm1vcDsKIAlzc2l6ZV90CWhlYWRfcm9vbSA9IDAsIHRvdGFsX3Jvb20g PSAwLCBtb3BfbGVuLCBjbGVhbl9saW1pdDsKKwl1bnNpZ25lZCBjbGVhbnVwX2lkeCA9IDAsIHJl ZmlsbF9pZHggPSAwOworCWNvbnN0IGludCBsaWZvID0gKGVudi0+bWVfZmxhZ3MgJiBNREJfTElG T1JFQ0xBSU0pICE9IDA7CiAKIAltZGJfY3Vyc29yX2luaXQoJm1jLCB0eG4sIEZSRUVfREJJLCBO VUxMKTsKIAotCWlmIChlbnYtPm1lX3BnaGVhZCkgeworCWlmICghIGxpZm8gJiYgZW52LT5tZV9w Z2hlYWQpIHsKIAkJLyogTWFrZSBzdXJlIGZpcnN0IHBhZ2Ugb2YgZnJlZURCIGlzIHRvdWNoZWQg YW5kIG9uIGZyZWVsaXN0ICovCiAJCXJjID0gbWRiX3BhZ2Vfc2VhcmNoKCZtYywgTlVMTCwgTURC X1BTX0ZJUlNUfE1EQl9QU19NT0RJRlkpOwogCQlpZiAocmMgJiYgcmMgIT0gTURCX05PVEZPVU5E KQpAQCAtMjkzMywxOSArMzAzMSw1NSBAQCBtZGJfZnJlZWxpc3Rfc2F2ZShNREJfdHhuICp0eG4p CiAJCXBnbm9fdCAqcGdzOwogCQlzc2l6ZV90IGo7CiAKLQkJLyogSWYgdXNpbmcgcmVjb3JkcyBm cm9tIGZyZWVEQiB3aGljaCB3ZSBoYXZlIG5vdCB5ZXQKLQkJICogZGVsZXRlZCwgZGVsZXRlIHRo ZW0gYW5kIGFueSB3ZSByZXNlcnZlZCBmb3IgbWVfcGdoZWFkLgotCQkgKi8KLQkJd2hpbGUgKHBn bGFzdCA8IGVudi0+bWVfcGdsYXN0KSB7Ci0JCQlyYyA9IG1kYl9jdXJzb3JfZmlyc3QoJm1jLCAm a2V5LCBOVUxMKTsKLQkJCWlmIChyYykKLQkJCQlyZXR1cm4gcmM7Ci0JCQlwZ2xhc3QgPSBoZWFk X2lkID0gKih0eG5pZF90ICopa2V5Lm12X2RhdGE7Ci0JCQl0b3RhbF9yb29tID0gaGVhZF9yb29t ID0gMDsKLQkJCW1kYl90YXNzZXJ0KHR4biwgcGdsYXN0IDw9IGVudi0+bWVfcGdsYXN0KTsKLQkJ CXJjID0gbWRiX2N1cnNvcl9kZWwoJm1jLCAwKTsKLQkJCWlmIChyYykKLQkJCQlyZXR1cm4gcmM7 CisJCWlmICghIGxpZm8pIHsKKwkJCS8qIElmIHVzaW5nIHJlY29yZHMgZnJvbSBmcmVlREIgd2hp Y2ggd2UgaGF2ZSBub3QgeWV0CisJCQkgKiBkZWxldGVkLCBkZWxldGUgdGhlbSBhbmQgYW55IHdl IHJlc2VydmVkIGZvciBtZV9wZ2hlYWQuCisJCQkgKi8KKwkJCXdoaWxlIChwZ2xhc3QgPCBlbnYt Pm1lX3BnbGFzdCkgeworCQkJCXJjID0gbWRiX2N1cnNvcl9maXJzdCgmbWMsICZrZXksIE5VTEwp OworCQkJCWlmIChyYykKKwkJCQkJcmV0dXJuIHJjOworCQkJCXBnbGFzdCA9IGhlYWRfaWQgPSAq KHR4bmlkX3QgKilrZXkubXZfZGF0YTsKKwkJCQl0b3RhbF9yb29tID0gaGVhZF9yb29tID0gMDsK KwkJCQltZGJfdGFzc2VydCh0eG4sIHBnbGFzdCA8PSBlbnYtPm1lX3BnbGFzdCk7CisJCQkJbWMu bWNfZmxhZ3MgfD0gQ19SRUNMQUlNSU5HOworCQkJCXJjID0gbWRiX2N1cnNvcl9kZWwoJm1jLCAw KTsKKwkJCQltYy5tY19mbGFncyAmPSB+Q19SRUNMQUlNSU5HOworCQkJCWlmIChyYykKKwkJCQkJ cmV0dXJuIHJjOworCQkJfQorCQl9IGVsc2UgeworCQkJaWYgKHR4bi0+bXRfbGlmb19yZWNsYWlt ZWQpIHsKKwkJCQl3aGlsZSgxKSB7CisJCQkJCWlmIChjbGVhbnVwX2lkeCA8IHR4bi0+bXRfbGlm b19yZWNsYWltZWRbMF0pIHsKKwkJCQkJCXBnbGFzdCA9IHR4bi0+bXRfbGlmb19yZWNsYWltZWRb KytjbGVhbnVwX2lkeF07CisJCQkJCX0gZWxzZSBpZiAoMCAmJiByZWZpbGxfaWR4ID4gMCkgewor CQkJCQkJdG90YWxfcm9vbSA9IGhlYWRfcm9vbSA9IDA7CisJCQkJCQlwZ2xhc3QgPSB0eG4tPm10 X2xpZm9fcmVjbGFpbWVkW3JlZmlsbF9pZHgtLV07CisJCQkJCX0gZWxzZQorCQkJCQkJYnJlYWs7 CisJCQkJCWtleS5tdl9kYXRhID0gJnBnbGFzdDsKKwkJCQkJa2V5Lm12X3NpemUgPSBzaXplb2Yo cGdsYXN0KTsKKwkJCQkJLyogVGhlIGdyZWF0IGFuc3dlciBpcyA0MiwgYW5kIHNlZW1zIHRvIGJl IGVub3VnaCB0byBwcmV2ZW50IHNlYXJjaCBpbgorCQkJCQkgKiBtZGJfcGFnZV9hbGxvYygpIGR1 cmluZyBhIGRlbGV0aW5nLCB3aGVuIGZyZWVEQiB0cmVlIGlzIHVuYmFsYW5jZWQuICovCisJCQkJ CXdoaWxlICghZW52LT5tZV9wZ2hlYWQgfHwgZW52LT5tZV9wZ2hlYWRbMF0gPCA0MikgeworCQkJ CQkJaWYgKG1kYl9wYWdlX2FsbG9jKCZtYywgMCwgTlVMTCkpIHsKKwkJCQkJCQlyYyA9IG1kYl9w YWdlX3NlYXJjaCgmbWMsICZrZXksIE1EQl9QU19NT0RJRlkpOworCQkJCQkJCWlmIChyYyAmJiBy YyAhPSBNREJfTk9URk9VTkQpCisJCQkJCQkJCWdvdG8gYmFsbG91dDsKKwkJCQkJCQlicmVhazsK KwkJCQkJCX0KKwkJCQkJfQorCQkJCQlyYyA9IG1kYl9jdXJzb3JfZ2V0KCZtYywgJmtleSwgTlVM TCwgTURCX1NFVCk7CisJCQkJCWlmIChyYyAmJiByYyAhPSBNREJfTk9URk9VTkQpCisJCQkJCQln b3RvIGJhbGxvdXQ7CisJCQkJCW1jLm1jX2ZsYWdzIHw9IENfUkVDTEFJTUlORzsKKwkJCQkJcmMg PSBtZGJfY3Vyc29yX2RlbCgmbWMsIDApOworCQkJCQltYy5tY19mbGFncyAmPSB+Q19SRUNMQUlN SU5HOworCQkJCQlpZiAocmMpCisJCQkJCQlnb3RvIGJhbGxvdXQ7CisJCQkJfQorCQkJfQogCQl9 CiAKIAkJLyogU2F2ZSB0aGUgSURMIG9mIHBhZ2VzIGZyZWVkIGJ5IHRoaXMgdHhuLCB0byBhIHNp bmdsZSByZWNvcmQgKi8KQEAgLTI5NTQsNyArMzA4OCw3IEBAIG1kYl9mcmVlbGlzdF9zYXZlKE1E Ql90eG4gKnR4bikKIAkJCQkvKiBNYWtlIHN1cmUgbGFzdCBwYWdlIG9mIGZyZWVEQiBpcyB0b3Vj aGVkIGFuZCBvbiBmcmVlbGlzdCAqLwogCQkJCXJjID0gbWRiX3BhZ2Vfc2VhcmNoKCZtYywgTlVM TCwgTURCX1BTX0xBU1R8TURCX1BTX01PRElGWSk7CiAJCQkJaWYgKHJjICYmIHJjICE9IE1EQl9O T1RGT1VORCkKLQkJCQkJcmV0dXJuIHJjOworCQkJCQlnb3RvIGJhbGxvdXQ7CiAJCQl9CiAJCQlm cmVlX3BncyA9IHR4bi0+bXRfZnJlZV9wZ3M7CiAJCQkvKiBXcml0ZSB0byBsYXN0IHBhZ2Ugb2Yg ZnJlZURCICovCkBAIC0yOTY1LDcgKzMwOTksNyBAQCBtZGJfZnJlZWxpc3Rfc2F2ZShNREJfdHhu ICp0eG4pCiAJCQkJZGF0YS5tdl9zaXplID0gTURCX0lETF9TSVpFT0YoZnJlZV9wZ3MpOwogCQkJ CXJjID0gbWRiX2N1cnNvcl9wdXQoJm1jLCAma2V5LCAmZGF0YSwgTURCX1JFU0VSVkUpOwogCQkJ CWlmIChyYykKLQkJCQkJcmV0dXJuIHJjOworCQkJCQlnb3RvIGJhbGxvdXQ7CiAJCQkJLyogUmV0 cnkgaWYgbXRfZnJlZV9wZ3NbXSBncmV3IGR1cmluZyB0aGUgUHV0KCkgKi8KIAkJCQlmcmVlX3Bn cyA9IHR4bi0+bXRfZnJlZV9wZ3M7CiAJCQl9IHdoaWxlIChmcmVlY250IDwgZnJlZV9wZ3NbMF0p OwpAQCAtMjk4Niw2ICszMTIwLDkgQEAgbWRiX2ZyZWVsaXN0X3NhdmUoTURCX3R4biAqdHhuKQog CQltb3AgPSBlbnYtPm1lX3BnaGVhZDsKIAkJbW9wX2xlbiA9IChtb3AgPyBtb3BbMF0gOiAwKSAr IHR4bi0+bXRfbG9vc2VfY291bnQ7CiAKKwkJaWYgKG1vcF9sZW4gJiYgcmVmaWxsX2lkeCA9PSAw KQorCQkJcmVmaWxsX2lkeCA9IDE7CisKIAkJLyogUmVzZXJ2ZSByZWNvcmRzIGZvciBtZV9wZ2hl YWRbXS4gU3BsaXQgaXQgaWYgbXVsdGktcGFnZSwKIAkJICogdG8gYXZvaWQgc2VhcmNoaW5nIGZy ZWVEQiBmb3IgYSBwYWdlIHJhbmdlLiBVc2Uga2V5cyBpbgogCQkgKiByYW5nZSBbMSxtZV9wZ2xh c3RdOiBTbWFsbGVyIHRoYW4gdHhuaWQgb2Ygb2xkZXN0IHJlYWRlci4KQEAgLTI5OTYsOCArMzEz MywzOCBAQCBtZGJfZnJlZWxpc3Rfc2F2ZShNREJfdHhuICp0eG4pCiAJCX0gZWxzZSBpZiAoaGVh ZF9yb29tID49IG1heGZyZWVfMXBnICYmIGhlYWRfaWQgPiAxKSB7CiAJCQkvKiBLZWVwIGN1cnJl bnQgcmVjb3JkIChvdmVyZmxvdyBwYWdlKSwgYWRkIGEgbmV3IG9uZSAqLwogCQkJaGVhZF9pZC0t OworCQkJcmVmaWxsX2lkeCsrOwogCQkJaGVhZF9yb29tID0gMDsKIAkJfQorCisJCWlmIChsaWZv KSB7CisJCQlpZiAocmVmaWxsX2lkeCA+ICh0eG4tPm10X2xpZm9fcmVjbGFpbWVkID8gdHhuLT5t dF9saWZvX3JlY2xhaW1lZFswXSA6IDApKSB7CisJCQkJcmMgPSBtZGJfcGFnZV9hbGxvYygmbWMs IDAsIE5VTEwpOworCQkJCWlmICghIHJjKQorCQkJCQljb250aW51ZTsKKwkJCQlpZiAocmMgIT0g TURCX05PVEZPVU5EKQorCQkJCQlnb3RvIGJhbGxvdXQ7CisKKwkJCQlpZiAoZW52LT5tZV9wZ2xh c3QgPCAxKSB7CisJCQkJCXJjID0gTURCX01BUF9GVUxMOworCQkJCQlnb3RvIGJhbGxvdXQ7CisJ CQkJfQorCisJCQkJaWYgKCEgdHhuLT5tdF9saWZvX3JlY2xhaW1lZCkgeworCQkJCQl0eG4tPm10 X2xpZm9fcmVjbGFpbWVkID0gbWRiX21pZGxfYWxsb2MoZW52LT5tZV9tYXhmcmVlXzFwZyk7CisJ CQkJCWlmICghIHR4bi0+bXRfbGlmb19yZWNsYWltZWQpIHsKKwkJCQkJCXJjID0gRU5PTUVNOwor CQkJCQkJZ290byBiYWxsb3V0OworCQkJCQl9CisJCQkJfQorCQkJCXJjID0gbWRiX21pZGxfYXBw ZW5kKCZ0eG4tPm10X2xpZm9fcmVjbGFpbWVkLCAtLWVudi0+bWVfcGdsYXN0KTsKKwkJCQlpZiAo cmMpCisJCQkJCWdvdG8gYmFsbG91dDsKKwkJCQkrK2NsZWFudXBfaWR4OworCQkJfQorCQkJaGVh ZF9pZCA9IHR4bi0+bXRfbGlmb19yZWNsYWltZWRbcmVmaWxsX2lkeF07CisJCX0KKwogCQkvKiAo UmUpd3JpdGUge2tleSA9IGhlYWRfaWQsIElETCBsZW5ndGggPSBoZWFkX3Jvb219ICovCiAJCXRv dGFsX3Jvb20gLT0gaGVhZF9yb29tOwogCQloZWFkX3Jvb20gPSBtb3BfbGVuIC0gdG90YWxfcm9v bTsKQEAgLTMwMDgsMTMgKzMxNzUsMTQgQEAgbWRiX2ZyZWVsaXN0X3NhdmUoTURCX3R4biAqdHhu KQogCQl9IGVsc2UgaWYgKGhlYWRfcm9vbSA8IDApIHsKIAkJCS8qIFJhcmUgY2FzZSwgbm90IGJv dGhlcmluZyB0byBkZWxldGUgdGhpcyByZWNvcmQgKi8KIAkJCWhlYWRfcm9vbSA9IDA7CisJCQlj b250aW51ZTsKIAkJfQogCQlrZXkubXZfc2l6ZSA9IHNpemVvZihoZWFkX2lkKTsKIAkJa2V5Lm12 X2RhdGEgPSAmaGVhZF9pZDsKIAkJZGF0YS5tdl9zaXplID0gKGhlYWRfcm9vbSArIDEpICogc2l6 ZW9mKHBnbm9fdCk7CiAJCXJjID0gbWRiX2N1cnNvcl9wdXQoJm1jLCAma2V5LCAmZGF0YSwgTURC X1JFU0VSVkUpOwogCQlpZiAocmMpCi0JCQlyZXR1cm4gcmM7CisJCQlnb3RvIGJhbGxvdXQ7CiAJ CS8qIElETCBpcyBpbml0aWFsbHkgZW1wdHksIHplcm8gb3V0IGF0IGxlYXN0IHRoZSBsZW5ndGgg Ki8KIAkJcGdzID0gKHBnbm9fdCAqKWRhdGEubXZfZGF0YTsKIAkJaiA9IGhlYWRfcm9vbSA+IGNs ZWFuX2xpbWl0ID8gaGVhZF9yb29tIDogMDsKQEAgLTMwMzMsNyArMzIwMSw3IEBAIG1kYl9mcmVl bGlzdF9zYXZlKE1EQl90eG4gKnR4bikKIAkJTURCX0lETCBsb29zZTsKIAkJLyogUm9vbSBmb3Ig bG9vc2UgcGFnZXMgKyB0ZW1wIElETCB3aXRoIHNhbWUgKi8KIAkJaWYgKChyYyA9IG1kYl9taWRs X25lZWQoJmVudi0+bWVfcGdoZWFkLCAyKmNvdW50KzEpKSAhPSAwKQotCQkJcmV0dXJuIHJjOwor CQkJZ290byBiYWxsb3V0OwogCQltb3AgPSBlbnYtPm1lX3BnaGVhZDsKIAkJbG9vc2UgPSBtb3Ag KyBNREJfSURMX0FMTE9DTEVOKG1vcCkgLSBjb3VudDsKIAkJZm9yIChjb3VudCA9IDA7IG1wOyBt cCA9IE5FWFRfTE9PU0VfUEFHRShtcCkpCkBAIC0zMDUyLDI3ICszMjIwLDYxIEBAIG1kYl9mcmVl bGlzdF9zYXZlKE1EQl90eG4gKnR4bikKIAkJTURCX3ZhbCBrZXksIGRhdGE7CiAKIAkJbW9wICs9 IG1vcF9sZW47Ci0JCXJjID0gbWRiX2N1cnNvcl9maXJzdCgmbWMsICZrZXksICZkYXRhKTsKLQkJ Zm9yICg7ICFyYzsgcmMgPSBtZGJfY3Vyc29yX25leHQoJm1jLCAma2V5LCAmZGF0YSwgTURCX05F WFQpKSB7Ci0JCQl0eG5pZF90IGlkID0gKih0eG5pZF90ICopa2V5Lm12X2RhdGE7Ci0JCQlzc2l6 ZV90CWxlbiA9IChzc2l6ZV90KShkYXRhLm12X3NpemUgLyBzaXplb2YoTURCX0lEKSkgLSAxOwor CQlpZiAoISBsaWZvKSB7CisJCQlyYyA9IG1kYl9jdXJzb3JfZmlyc3QoJm1jLCAma2V5LCAmZGF0 YSk7CisJCQlpZiAocmMpCisJCQkJZ290byBiYWxsb3V0OworCQl9CisKKwkJZm9yKDs7KSB7CisJ CQl0eG5pZF90IGlkOworCQkJc3NpemVfdAlsZW47CiAJCQlNREJfSUQgc2F2ZTsKIAotCQkJbWRi X3Rhc3NlcnQodHhuLCBsZW4gPj0gMCAmJiBpZCA8PSBlbnYtPm1lX3BnbGFzdCk7Ci0JCQlrZXku bXZfZGF0YSA9ICZpZDsKLQkJCWlmIChsZW4gPiBtb3BfbGVuKSB7Ci0JCQkJbGVuID0gbW9wX2xl bjsKLQkJCQlkYXRhLm12X3NpemUgPSAobGVuICsgMSkgKiBzaXplb2YoTURCX0lEKTsKKwkJCWlm ICghIGxpZm8pIHsKKwkJCQlpZCA9ICoodHhuaWRfdCAqKWtleS5tdl9kYXRhOworCQkJCW1kYl90 YXNzZXJ0KHR4biwgaWQgPD0gZW52LT5tZV9wZ2xhc3QpOworCQkJfSBlbHNlIHsKKwkJCQltZGJf dGFzc2VydCh0eG4sIHJlZmlsbF9pZHggPiAwICYmIHJlZmlsbF9pZHggPD0gdHhuLT5tdF9saWZv X3JlY2xhaW1lZFswXSk7CisJCQkJaWQgPSB0eG4tPm10X2xpZm9fcmVjbGFpbWVkW3JlZmlsbF9p ZHgtLV07CisJCQkJa2V5Lm12X2RhdGEgPSAmaWQ7CisJCQkJa2V5Lm12X3NpemUgPSBzaXplb2Yo aWQpOworCQkJCXJjID0gbWRiX2N1cnNvcl9nZXQoJm1jLCAma2V5LCAmZGF0YSwgTURCX1NFVCk7 CisJCQkJaWYgKHJjKQorCQkJCQlnb3RvIGJhbGxvdXQ7CiAJCQl9CisKKwkJCWxlbiA9IChzc2l6 ZV90KShkYXRhLm12X3NpemUgLyBzaXplb2YoTURCX0lEKSkgLSAxOworCQkJbWRiX3Rhc3NlcnQo dHhuLCBsZW4gPj0gMCk7CisJCQlpZiAobGVuID4gbW9wX2xlbikKKwkJCQlsZW4gPSBtb3BfbGVu OworCQkJZGF0YS5tdl9zaXplID0gKGxlbiArIDEpICogc2l6ZW9mKE1EQl9JRCk7CisJCQlrZXku bXZfZGF0YSA9ICZpZDsKKwkJCWtleS5tdl9zaXplID0gc2l6ZW9mKGlkKTsKIAkJCWRhdGEubXZf ZGF0YSA9IG1vcCAtPSBsZW47CisKIAkJCXNhdmUgPSBtb3BbMF07CiAJCQltb3BbMF0gPSBsZW47 CiAJCQlyYyA9IG1kYl9jdXJzb3JfcHV0KCZtYywgJmtleSwgJmRhdGEsIE1EQl9DVVJSRU5UKTsK IAkJCW1vcFswXSA9IHNhdmU7CiAJCQlpZiAocmMgfHwgIShtb3BfbGVuIC09IGxlbikpCi0JCQkJ YnJlYWs7CisJCQkJZ290byBiYWxsb3V0OworCisJCQlpZiAoISBsaWZvKSB7CisJCQkJcmMgPSBt ZGJfY3Vyc29yX25leHQoJm1jLCAma2V5LCAmZGF0YSwgTURCX05FWFQpOworCQkJCWlmIChyYykK KwkJCQkJZ290byBiYWxsb3V0OworCQkJfQogCQl9CiAJfQorCitiYWxsb3V0OgorCWlmICh0eG4t Pm10X2xpZm9fcmVjbGFpbWVkKSB7CisJCW1kYl90YXNzZXJ0KHR4biwgcmMgIT0gMCB8fCBjbGVh bnVwX2lkeCA9PSB0eG4tPm10X2xpZm9fcmVjbGFpbWVkWzBdKTsKKwkJbWRiX21pZGxfZnJlZSh0 eG4tPm10X2xpZm9fcmVjbGFpbWVkKTsKKwkJdHhuLT5tdF9saWZvX3JlY2xhaW1lZCA9IE5VTEw7 CisJfQorCiAJcmV0dXJuIHJjOwogfQogCkBAIC0zMjY1LDYgKzM0NjcsMTggQEAgbWRiX3R4bl9j b21taXQoTURCX3R4biAqdHhuKQogCQlNREJfSURMIHBzcGlsbDsKIAkJdW5zaWduZWQgeCwgeSwg bGVuLCBwc19sZW47CiAKKwkJLyogQXBwZW5kIG91ciByZWNsYWltIGxpc3QgdG8gcGFyZW50J3Mg Ki8KKwkJaWYgKHR4bi0+bXRfbGlmb19yZWNsYWltZWQpIHsKKwkJCWlmIChwYXJlbnQtPm10X2xp Zm9fcmVjbGFpbWVkKSB7CisJCQkJcmMgPSBtZGJfbWlkbF9hcHBlbmRfbGlzdCgmcGFyZW50LT5t dF9saWZvX3JlY2xhaW1lZCwgdHhuLT5tdF9saWZvX3JlY2xhaW1lZCk7CisJCQkJaWYgKHJjKQor CQkJCQlnb3RvIGZhaWw7CisJCQkJbWRiX21pZGxfZnJlZSh0eG4tPm10X2xpZm9fcmVjbGFpbWVk KTsKKwkJCX0gZWxzZQorCQkJCXBhcmVudC0+bXRfbGlmb19yZWNsYWltZWQgPSB0eG4tPm10X2xp Zm9fcmVjbGFpbWVkOworCQkJdHhuLT5tdF9saWZvX3JlY2xhaW1lZCA9IE5VTEw7CisJCX0KKwog CQkvKiBBcHBlbmQgb3VyIGZyZWUgbGlzdCB0byBwYXJlbnQncyAqLwogCQlyYyA9IG1kYl9taWRs X2FwcGVuZF9saXN0KCZwYXJlbnQtPm10X2ZyZWVfcGdzLCB0eG4tPm10X2ZyZWVfcGdzKTsKIAkJ aWYgKHJjKQpAQCAtNDQ1NSw5ICs0NjY5LDkgQEAgZmFpbDoKIAkgKglhdCBydW50aW1lLiBDaGFu Z2luZyBvdGhlciBmbGFncyByZXF1aXJlcyBjbG9zaW5nIHRoZQogCSAqCWVudmlyb25tZW50IGFu ZCByZS1vcGVuaW5nIGl0IHdpdGggdGhlIG5ldyBmbGFncy4KIAkgKi8KLSNkZWZpbmUJQ0hBTkdF QUJMRQkoTURCX05PU1lOQ3xNREJfTk9NRVRBU1lOQ3xNREJfTUFQQVNZTkN8TURCX05PTUVNSU5J VCkKKyNkZWZpbmUJQ0hBTkdFQUJMRQkoTURCX05PU1lOQ3xNREJfTk9NRVRBU1lOQ3xNREJfTUFQ QVNZTkN8TURCX05PTUVNSU5JVHxNREJfQ09BTEVTQ0UpCiAjZGVmaW5lCUNIQU5HRUxFU1MJKE1E Ql9GSVhFRE1BUHxNREJfTk9TVUJESVJ8TURCX1JET05MWXxNREJfV1JJVEVNQVB8IFwKLQlNREJf Tk9UTFN8TURCX05PTE9DS3xNREJfTk9SREFIRUFEKQorCU1EQl9OT1RMU3xNREJfTk9MT0NLfE1E Ql9OT1JEQUhFQUR8TURCX0xJRk9SRUNMQUlNKQogCiAjaWYgVkFMSURfRkxBR1MgJiBQRVJTSVNU RU5UX0ZMQUdTICYgKENIQU5HRUFCTEV8Q0hBTkdFTEVTUykKICMgZXJyb3IgIlBlcnNpc3RlbnQg REIgZmxhZ3MgJiBlbnYgZmxhZ3Mgb3ZlcmxhcCwgYnV0IGJvdGggZ28gaW4gbW1fZmxhZ3MiCi0t IAoyLjEuMAoK --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0008-FEATURE-lmdb-backend-support-config-for-lifo-and-coa.patch" Content-Disposition: attachment; filename="0008-FEATURE-lmdb-backend-support-config-for-lifo-and-coa.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdum7
RnJvbSBiYjgzZTAzY2YxYjhiY2VlZTY0NTUwMjI5YzNiZWNiZGQ1NDAwNjgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBGcmks IDE5IFNlcCAyMDE0IDIwOjE4OjE3ICswNDAwClN1YmplY3Q6IFtQQVRDSCAwOC8xMV0gIEZFQVRV UkUgLSBsbWRiLWJhY2tlbmQ6IHN1cHBvcnQgY29uZmlnIGZvciAnbGlmbycgYW5kCiAnY29hbGVz Y2UnIGVudmZsYWdzLgoKLS0tCiBzZXJ2ZXJzL3NsYXBkL2JhY2stbWRiL2NvbmZpZy5jIHwgNiAr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zZXJ2 ZXJzL3NsYXBkL2JhY2stbWRiL2NvbmZpZy5jIGIvc2VydmVycy9zbGFwZC9iYWNrLW1kYi9jb25m aWcuYwppbmRleCA5Zjg3ZmQ5Li5lMWI3ZGI0IDEwMDY0NAotLS0gYS9zZXJ2ZXJzL3NsYXBkL2Jh Y2stbWRiL2NvbmZpZy5jCisrKyBiL3NlcnZlcnMvc2xhcGQvYmFjay1tZGIvY29uZmlnLmMKQEAg LTEwNiw2ICsxMDYsMTIgQEAgc3RhdGljIHNsYXBfdmVyYm1hc2tzIG1kYl9lbnZmbGFnc1tdID0g ewogCXsgQkVSX0JWQygid3JpdGVtYXAiKSwJTURCX1dSSVRFTUFQIH0sCiAJeyBCRVJfQlZDKCJt YXBhc3luYyIpLAlNREJfTUFQQVNZTkMgfSwKIAl7IEJFUl9CVkMoIm5vcmRhaGVhZCIpLAlNREJf Tk9SREFIRUFEIH0sCisjaWZkZWYgTURCX0xJRk9SRUNMQUlNCisJeyBCRVJfQlZDKCJsaWZvIiks CQlNREJfTElGT1JFQ0xBSU0gfSwKKyNlbmRpZgorI2lmZGVmIE1EQl9DT0FMRVNDRQorCXsgQkVS X0JWQygiY29hbGVzY2UiKSwJTURCX0NPQUxFU0NFIH0sCisjZW5kaWYKIAl7IEJFUl9CVk5VTEws IDAgfQogfTsKIAotLSAKMi4xLjAKCg== --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0009-BUGFIX-lmdb-volatile-to-important-fields-which.patch" Content-Disposition: attachment; filename="0009-BUGFIX-lmdb-volatile-to-important-fields-which.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhduu8
RnJvbSBhY2NlZjYyZGU3ZmU1NjYwZjg3MGY0YzVkYTMxOWEyYTgwOThiMmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBTdW4s IDIxIFNlcCAyMDE0IDAyOjI5OjUwICswNDAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMV0gIEJVR0ZJ WCAtIGxtZGI6ICd2b2xhdGlsZScgdG8gaW1wb3J0YW50IGZpZWxkcywgd2hpY2ggIAogICAgICAg ICAgbWF5IGJlIHVwZGF0ZWQgYnkgcmVhZGVycyBhc3luY2hyb25vdXNseS4KCiBXaXRob3V0ICd2 b2xhdGlsZScgY29tcGlsZXIgbWF5IGVsaW1pbmF0ZSBhIG1kYl9maW5kX29sZGVzdCgpIGNhbGxz LgotLS0KIGxpYnJhcmllcy9saWJsbWRiL21kYi5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlicmFyaWVz L2xpYmxtZGIvbWRiLmMgYi9saWJyYXJpZXMvbGlibG1kYi9tZGIuYwppbmRleCAwZmFmZWUyLi41 Yjg5OTA1IDEwMDY0NAotLS0gYS9saWJyYXJpZXMvbGlibG1kYi9tZGIuYworKysgYi9saWJyYXJp ZXMvbGlibG1kYi9tZGIuYwpAQCAtNTgwLDExICs1ODAsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgTURC X3J4Ym9keSB7CiAJICoJc3RhcnRlZCBmcm9tIHNvIHdlIGNhbiBhdm9pZCBvdmVyd3JpdGluZyBh bnkgZGF0YSB1c2VkIGluIHRoYXQKIAkgKglwYXJ0aWN1bGFyIHZlcnNpb24uCiAJICovCi0JdHhu aWRfdAkJbXJiX3R4bmlkOworCXZvbGF0aWxlIHR4bmlkX3QJbXJiX3R4bmlkOwogCS8qKiBUaGUg cHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyBvd25pbmcgdGhpcyByZWFkZXIgdHhuLiAqLwotCU1E Ql9QSURfVAltcmJfcGlkOworCXZvbGF0aWxlIE1EQl9QSURfVAltcmJfcGlkOwogCS8qKiBUaGUg dGhyZWFkIElEIG9mIHRoZSB0aHJlYWQgb3duaW5nIHRoaXMgdHhuLiAqLwotCU1EQl9USFJfVAlt cmJfdGlkOworCXZvbGF0aWxlIE1EQl9USFJfVAltcmJfdGlkOwogfSBNREJfcnhib2R5OwogCiAJ LyoqIFRoZSBhY3R1YWwgcmVhZGVyIHJlY29yZCwgd2l0aCBjYWNoZWxpbmUgcGFkZGluZy4gKi8K LS0gCjIuMS4wCgo= --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0010-BUGFIX-lmdb-reordering-of-instructions-which-update-.patch" Content-Disposition: attachment; filename="0010-BUGFIX-lmdb-reordering-of-instructions-which-update-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdv39
RnJvbSA2MjQwYzMzNTBlOGJkODYzMzdjN2U0MTcyMmNmNmEzODg4MWYxNWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBGcmks IDEyIFNlcCAyMDE0IDAxOjMyOjEzICswNDAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMV0gIEJVR0ZJ WCAtIGxtZGI6IHJlb3JkZXJpbmcgb2YgaW5zdHJ1Y3Rpb25zIHdoaWNoIHVwZGF0ZQogdGhlIHR4 biBpbiBhIG1ldGEtcGFnZS4KCiBXaXRob3V0ICJ2b2xhdGlsZSIgb3IgbWVtb3J5LWJhcnJpZXIg Y29tcGlsZXIgbWF5IHJlb3JkZXIgaW5zdHJ1Y3Rpb25zCiBmb3IgdXBkYXRlIHRoZSAibW1fdHhu aWQiIGZpZWxkIGluIG1ldGEtcGFnZSBpbiAid3JpdGVtYXAiIG1vZGUuCgogRnJvbSB0aGUgcmVh ZGVyJ3MgcG9pbnQgb2YgdmlldyB0aGlzIGNhdXNlIGEgc2hvcnQKIHRpbWUgaW50ZXJ2YWwgd2hl biB0aGUgdHJhbnNhY3Rpb24gaXMgY29ycnVwdGVkLgotLS0KIGxpYnJhcmllcy9saWJsbWRiL21k Yi5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9saWJyYXJpZXMvbGlibG1kYi9tZGIuYyBiL2xpYnJhcmllcy9s aWJsbWRiL21kYi5jCmluZGV4IDViODk5MDUuLjY0NTllYzcgMTAwNjQ0Ci0tLSBhL2xpYnJhcmll cy9saWJsbWRiL21kYi5jCisrKyBiL2xpYnJhcmllcy9saWJsbWRiL21kYi5jCkBAIC05MDgsNyAr OTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTURCX21ldGEgewogCS8qKiBBbnkgcGVyc2lzdGVudCBl bnZpcm9ubWVudCBmbGFncy4gQHJlZiBtZGJfZW52ICovCiAjZGVmaW5lCW1tX2ZsYWdzCW1tX2Ri c1swXS5tZF9mbGFncwogCXBnbm9fdAkJbW1fbGFzdF9wZzsJCQkvKio8IGxhc3QgdXNlZCBwYWdl IGluIGZpbGUgKi8KLQl0eG5pZF90CQltbV90eG5pZDsJCQkvKio8IHR4bmlkIHRoYXQgY29tbWl0 dGVkIHRoaXMgcGFnZSAqLworCXZvbGF0aWxlIHR4bmlkX3QgbW1fdHhuaWQ7CQkJLyoqPCB0eG5p ZCB0aGF0IGNvbW1pdHRlZCB0aGlzIHBhZ2UgKi8KIH0gTURCX21ldGE7CiAKIAkvKiogQnVmZmVy IGZvciBhIHN0YWNrLWFsbG9jYXRlZCBtZXRhIHBhZ2UuCkBAIC0zODMzLDYgKzM4MzMsMTAgQEAg bWRiX2Vudl93cml0ZV9tZXRhKE1EQl90eG4gKnR4biwgaW50IGZvcmNlKQogCQltcC0+bW1fZGJz WzBdID0gdHhuLT5tdF9kYnNbMF07CiAJCW1wLT5tbV9kYnNbMV0gPSB0eG4tPm10X2Ric1sxXTsK IAkJbXAtPm1tX2xhc3RfcGcgPSB0eG4tPm10X25leHRfcGdubyAtIDE7CisjaWYgIShkZWZpbmVk KF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pKQor CQkvKiBMWTogaXNzdWUgYSBtZW1vcnkgYmFycmllciwgaWYgbm90IHg4Ni4gKi8KKwkJX19zeW5j X3N5bmNocm9uaXplKCk7CisjZW5kaWYKIAkJbXAtPm1tX3R4bmlkID0gdHhuLT5tdF90eG5pZDsK IAkJaWYgKGZvcmNlIHx8ICEoZW52LT5tZV9mbGFncyAmIChNREJfTk9NRVRBU1lOQ3xNREJfTk9T WU5DKSkpIHsKIAkJCXVuc2lnbmVkIG1ldGFfc2l6ZSA9IGVudi0+bWVfcHNpemU7Ci0tIAoyLjEu MAoK --f46d04138a6f6c03c2050477cd19 Content-Type: text/x-patch; charset=US-ASCII; name="0011-BUGFIX-lmdb-lock-meta-pages-in-writemap-mode-to-avoi.patch" Content-Disposition: attachment; filename="0011-BUGFIX-lmdb-lock-meta-pages-in-writemap-mode-to-avoi.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0snhdve10
RnJvbSA4NDEwNTkzMzBmZDQ0NzY5ZTkzZWI0YjkzN2MzY2U0MjY1NGZhZDZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWXVyaWV2IDxsZW9AeXVyaWV2LnJ1PgpEYXRlOiBTYXQs IDIwIFNlcCAyMDE0IDA3OjE2OjE1ICswNDAwClN1YmplY3Q6IFtQQVRDSCAxMS8xMV0gIEJVR0ZJ WCAtIGxtZGI6IGxvY2sgbWV0YS1wYWdlcyBpbiB3cml0ZW1hcC1tb2RlIHRvCiBhdm9pZCB1bmV4 cGVjdGVkIHdyaXRlLCAgICAgICAgICAgIGJlZm9yZSB0aGUgZGF0YSBwYWdlcyB3b3VsZCBiZQog c3luY2hyb25pemVkLgoKIFdpdGhvdXQgbG9ja2luZyB0aGUgbWV0YS1wYWdlcyBtYXkgYmUgd3Jp dGVuIGJ5IE9TIGJlZm9yZSBvdGhlciBkYXRhLAogaW4gdGhpcyBjYXNlIGRhdGFiYXNlIHdvdWxk IGJlIGluY29uc2lzdGVudC4KLS0tCiBsaWJyYXJpZXMvbGlibG1kYi9tZGIuYyB8IDEwICsrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGli cmFyaWVzL2xpYmxtZGIvbWRiLmMgYi9saWJyYXJpZXMvbGlibG1kYi9tZGIuYwppbmRleCA2NDU5 ZWM3Li4xOTI1MWExIDEwMDY0NAotLS0gYS9saWJyYXJpZXMvbGlibG1kYi9tZGIuYworKysgYi9s aWJyYXJpZXMvbGlibG1kYi9tZGIuYwpAQCAtNDA0NCw2ICs0MDQ0LDE2IEBAIG1kYl9lbnZfbWFw KE1EQl9lbnYgKmVudiwgdm9pZCAqYWRkcikKIAllbnYtPm1lX21ldGFzWzBdID0gTUVUQURBVEEo cCk7CiAJZW52LT5tZV9tZXRhc1sxXSA9IChNREJfbWV0YSAqKSgoY2hhciAqKWVudi0+bWVfbWV0 YXNbMF0gKyBlbnYtPm1lX3BzaXplKTsKIAorCS8qIExvY2sgbWV0YSBwYWdlcyB0byBhdm9pZCB1 bmV4cGVjdGVkIHdyaXRlLAorCSAqICBiZWZvcmUgdGhlIGRhdGEgcGFnZXMgd291bGQgYmUgc3lu Y2hyb25pemVkLiAqLworI2lmZGVmIF9XSU4zMgorCWlmICgoZmxhZ3MgJiBNREJfV1JJVEVNQVAp ICYmICFWaXJ0dWFsTG9jayhlbnYtPm1lX21hcCwgZW52LT5tZV9wc2l6ZSAqIDIpKQorCQlyZXR1 cm4gRXJyQ29kZSgpOworI2Vsc2UKKwlpZiAoKGZsYWdzICYgTURCX1dSSVRFTUFQKSAmJiBtbG9j ayhlbnYtPm1lX21hcCwgZW52LT5tZV9wc2l6ZSAqIDIpKQorCQlyZXR1cm4gRXJyQ29kZSgpOwor I2VuZGlmIC8qIF9XSU4zMiAqLworCiAJcmV0dXJuIE1EQl9TVUNDRVNTOwogfQogCi0tIAoyLjEu MAoK --f46d04138a6f6c03c2050477cd19--