From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f502.i.mail.ru (f502.i.mail.ru [217.69.138.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 685BA4696C4 for ; Mon, 20 Jan 2020 21:13:38 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Mon, 20 Jan 2020 21:13:37 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1579544017.99960718@f502.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--f69198D3Ce4E1034d94F96EfF18760b81579544017" In-Reply-To: <37bd8a76-11b5-e560-8bf8-acaa2539eaaf@tarantool.org> References: <60fbcb8d59f04632ca31976bdf537afffe8e8e5f.1578951026.git.i.kosarev@tarantool.org> <37bd8a76-11b5-e560-8bf8-acaa2539eaaf@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_2/2=5D_memtx=3A_increas?= =?utf-8?q?e_the_memory_quota_if_needed_to_truncate_or_delete?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--f69198D3Ce4E1034d94F96EfF18760b81579544017 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rcyBmb3IgdGhlIHJldmlldyEKwqAKT2ssIEkgc2VlLCB0aGlzIG9uZSBpcyBzdGlsbCB0 b28gY2x1bXN5LiBBbHNvIGkgbWVzc2VkIHVwIHVzZXIgc3BhY2UKYW5kIHNlcnZpY2UgZW5naW5l cy4gVGhlcmUgYXJlIDXCoGFuc3dlcnMgYmVsb3cuCsKgCkxldOKAmXMgdHJ5IG9uZSBtb3JlLiBT ZW50IHYzIHdpdGggYSBuZXcgYXBwcm9hY2jCoGJhc2VkIG9uIHlvdXIgaWRlYS4KwqAKPtCh0YDQ tdC00LAsIDE1INGP0L3QstCw0YDRjyAyMDIwLCAwOjAwICswMzowMCDQvtGCIFZsYWRpc2xhdiBT aHBpbGV2b3kgPCB2LnNocGlsZXZveUB0YXJhbnRvb2wub3JnID46Cj7CoCAKPlRoYW5rcyBmb3Ig dGhlIHBhdGNoIQo+Cj5KRkksIEkgYW0gc3RpbGwgYWdhaW5zdCB0aGlzIHBhdGNoLiBJdCBhZGRz IGh1Z2UgYW5kCj51bm5lY2Vzc2FyeSBjb21wbGV4aXR5IHRvIHRoZSBjb2RlLCB3aGljaCB3ZSB3 aWxsIG5lZWQKPnRvIHN1cHBvcnQgZm9yZXZlci4gSXQgaXMganVzdCBub3Qgd29ydGggdGhlIHBy b3MgdGhlCj5wYXRjaCBnaXZlcy4KPgo+T24gMTMvMDEvMjAyMCAyMjozMSwgSWx5YSBLb3NhcmV2 IHdyb3RlOgo+PiBUcnlpbmcgdG8gcGVyZm9ybSBzcGFjZTp0cnVuY2F0ZSgpIGFuZCBzcGFjZTpk ZWxldGUoKSB3aGlsZSByZWFjaGluZwo+PiBtZW10eF9tZW1vcnkgbGltaXQgd2UgY291bGQgZXhw ZXJpZW5jZSBzbGFiIGFsbG9jYXRvciBmYWlsdXJlLiBUaGlzCj4+IGJlaGF2aW9yIHNlZW1zIHRv IGJlIHF1aXRlIHN1cnByaXNpbmcgZm9yIHVzZXJzLiBOb3cgd2UgYXJlIGluY3JlYXNpbmcKPj4g bWVtdHggcXVvdGEgaWYgbmVlZGVkIGZvciB0cnVuY2F0aW9uIG9yIGRlbGV0aW9uLiBBZnRlciBw ZXJmb3JtaW5nIGl0Cj4+IHF1b3RhIGlzIGJlaW5nIHNldCBiYWNrIHRvIHRoZSBwcmV2aW91cyB2 YWx1ZSBpZiBwb3NzaWJsZSwgd2hpbGUgaXQKPj4gc2hvdWxkIGJlIHNvIGZvciBhbG1vc3QgYW55 IGNhc2UsIHNpbmNlIHdlIGFyZSBtZWFudCB0byBmcmVlIHNvbWUgc3BhY2UKPj4gZHVyaW5nIGRl bGV0aW9uIG9yIHRydW5jYXRpb24uCj4+Cj4+IENsb3NlcyAjMzgwNwo+PiAtLS0KPj4gc3JjL2Jv eC9ibGFja2hvbGUuYyB8IDEgKwo+PiBzcmMvYm94L2JveC5jYyB8IDM2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQo+PiBzcmMvYm94L2VuZ2luZS5jIHwgMTEgKysrKysrKysr KysKPj4gc3JjL2JveC9lbmdpbmUuaCB8IDkgKysrKysrKysrCj4+IHNyYy9ib3gvbWVtdHhfZW5n aW5lLmMgfCAyMCArKysrKysrKysrKysrKysrKysrKwo+PiBzcmMvYm94L21lbXR4X2VuZ2luZS5o IHwgNCArKysrCj4+IHNyYy9ib3gvc2VydmljZV9lbmdpbmUuYyB8IDEgKwo+PiBzcmMvYm94L3N5 c3ZpZXcuYyB8IDEgKwo+PiBzcmMvYm94L3ZpbnlsLmMgfCAxICsKPj4gOSBmaWxlcyBjaGFuZ2Vk LCA4MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9zcmMv Ym94L2JsYWNraG9sZS5jIGIvc3JjL2JveC9ibGFja2hvbGUuYwo+PiBpbmRleCA2OWYxZGViYTEu LmFmNTg3ZjQzNCAxMDA2NDQKPj4gLS0tIGEvc3JjL2JveC9ibGFja2hvbGUuYwo+PiArKysgYi9z cmMvYm94L2JsYWNraG9sZS5jCj4+IEBAIC0xOTQsNiArMTk0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBlbmdpbmVfdnRhYiBibGFja2hvbGVfZW5naW5lX3Z0YWIgPSB7Cj4+IC8qIC5jb21taXRf Y2hlY2twb2ludCA9ICovIGdlbmVyaWNfZW5naW5lX2NvbW1pdF9jaGVja3BvaW50LAo+PiAvKiAu YWJvcnRfY2hlY2twb2ludCA9ICovIGdlbmVyaWNfZW5naW5lX2Fib3J0X2NoZWNrcG9pbnQsCj4+ IC8qIC5jb2xsZWN0X2dhcmJhZ2UgPSAqLyBnZW5lcmljX2VuZ2luZV9jb2xsZWN0X2dhcmJhZ2Us Cj4+ICsgLyogLmd1YXJhbnRlZV9tZW1vcnkgPSAqLyBnZW5lcmljX2VuZ2luZV9ndWFyYW50ZWVf bWVtb3J5LAo+Cj5UaGUgb25seSBwcm9ibGVtIGlzIHdpdGggbWVtdHggZW5naW5lLCBhbmQgSSBw cm9wb3NlIHRvIHNvbHZlIGl0Cj5vbiBtZW10eCBlbmdpbmUgbGV2ZWwuIFZpbnlsIHdpbGwgbmV2 ZXIgbmVlZCB0aGlzIG1ldGhvZC4KPgo+KEJ1dCBldmVuIGJldHRlciBJIHByb3Bvc2UgdG8gZHJv cCB0aGUgcGF0Y2ggYW5kIGNsb3NlIHRoZSBpc3N1ZSBhcwo+d29uJ3QgZml4LikKPgo+PiAvKiAu YmFja3VwID0gKi8gZ2VuZXJpY19lbmdpbmVfYmFja3VwLAo+PiAvKiAubWVtb3J5X3N0YXQgPSAq LyBnZW5lcmljX2VuZ2luZV9tZW1vcnlfc3RhdCwKPj4gLyogLnJlc2V0X3N0YXQgPSAqLyBnZW5l cmljX2VuZ2luZV9yZXNldF9zdGF0LAo+PiBkaWZmIC0tZ2l0IGEvc3JjL2JveC9ib3guY2MgYi9z cmMvYm94L2JveC5jYwo+PiBpbmRleCAxYjJiMjdkNjEuLjE4YzA5Y2UxYiAxMDA2NDQKPj4gLS0t IGEvc3JjL2JveC9ib3guY2MKPj4gKysrIGIvc3JjL2JveC9ib3guY2MKPj4gQEAgLTEzMjEsOSAr MTM0MSwyMyBAQCBzcGFjZV90cnVuY2F0ZShzdHJ1Y3Qgc3BhY2UgKnNwYWNlKQo+PiBvcHNfYnVm X2VuZCA9IG1wX2VuY29kZV91aW50KG9wc19idWZfZW5kLCAxKTsKPj4gYXNzZXJ0KG9wc19idWZf ZW5kIDwgYnVmICsgYnVmX3NpemUpOwo+Pgo+PiArIHNpemVfdCB0b3RhbDsKPj4gKyBib29sIGV4 dGVuZGVkID0gZmFsc2U7Cj4+ICsgc3BhY2UtPmVuZ2luZS0+dnRhYi0+Z3VhcmFudGVlX21lbW9y eShzcGFjZS0+ZW5naW5lLAo+PiArIE1FTVRYX1NMQUJfU0laRSwKPj4gKyAmdG90YWwsICZleHRl bmRlZCk7Cj4+ICsKPgo+VHJ1bmNhdGUgaXMgYWx3YXlzIGFib3V0IGluc2VydGlvbiBpbnRvIHRo ZSBtZW10eCBzcGFjZSBfdHJ1bmNhdGUuCj5IZXJlIHlvdSBhcmUgY2FsbGluZyAnZ3VhcmFudGVl X21lbW9yeScgZm9yIHRoZSB1c2VyIHNwYWNlJ3MgZW5naW5lLgo+QW5kIGl0IGp1c3Qgd29uJ3Qg d29yayBpbiBjYXNlIEkgdHJ5IHRvIHRydW5jYXRlIGEgdmlueWwgc3BhY2UuCj4KPk1vcmVvdmVy LCB0aGUgZW5jYXBzdWxhdGlvbiBvZiAnbWVtb3J5IGd1YXJhbnRlZScgaXMgYnJva2VuIGFueXdh eSwKPmJlY2F1c2UgMSkgeW91IHBhc3MgJ01FTVRYX1NMQUJfU0laRScgcGFyYW1ldGVyIHRvIHRo ZSBlbmdpbmUncwo+dmlydHVhbCBtZXRob2QsIDIpIGJlbG93IHlvdSB0b3VjaCBtZW10eCBlbmdp bmUgZXhwbGljaXRseS4KKiAgClJpZ2h0LMKgdGhpc8Kgd29uJ3Qgd29yayBpbiBjYXNlwqB1c2Vy IGVuZ2luZcKgaXMgdmlueWwuCj4KPj4gaWYgKGJveF91cHNlcnQoQk9YX1RSVU5DQVRFX0lELCAw LCB0dXBsZV9idWYsIHR1cGxlX2J1Zl9lbmQsCj4+IG9wc19idWYsIG9wc19idWZfZW5kLCAwLCBO VUxMKSAhPSAwKQo+PiBkaWFnX3JhaXNlKCk7Cj4+ICsKPj4gKyBpZiAoZXh0ZW5kZWQpIHsKPj4g KyBzdHJ1Y3QgbWVtdHhfZW5naW5lICptZW10eCA9Cj4+ICsgKHN0cnVjdCBtZW10eF9lbmdpbmUg KilzcGFjZS0+ZW5naW5lOwo+Cj5XaHkgaXMgc3BhY2UtPmVuZ2luZSBhc3N1bWVkIHRvIGJlIG1l bXR4PyBUaGlzIGlzIGEgdXNlcidzIHNwYWNlLgo+SXQgY2FuIGJlIHZpbnlsLgoqICAKV2VsbCwg ZXh0ZW5kZWQgbWF5IG9ubHnCoGJlIHRydWXCoGlmIHRoZSBlbmdpbmUgaXMgbWVtdHguCj4KPj4g KyBzaXplX3QgbmV3X3RvdGFsID0gcXVvdGFfc2V0KCZtZW10eC0+cXVvdGEsIHRvdGFsKTsKPj4g KyBpZiAobmV3X3RvdGFsID4gdG90YWwpCj4+ICsgcXVvdGFfc2V0KCZtZW10eC0+cXVvdGEsIHF1 b3RhX3VzZWQoJm1lbXR4LT5xdW90YSkpOwo+PiArIH0KPj4gfQo+Cj5TaW5jZSB0aGlzIGlzIGEg YnVnIGZpeCwgdGhlcmUgc2hvdWxkIGJlIGEgcmVncmVzc2lvbiB0ZXN0LgoqICAKSSBjYW7igJl0 IHJlYWxseSBzZWUgc3VpdGFibGUgcmVncmVzc2lvbiB0ZXN0Lgo+Cj5CdXQgSSBvbmNlIGFnYWlu IHNheSwgdGhhdCBpdCBpcyBldmVuIGJldHRlciB0byBkcm9wIHRoZSBwYXRjaCBhbmQKPmNsb3Nl IHRoZSBpc3N1ZS4gVGhpcyBpcyBqdXN0IHN1Z2FyLCB3aGljaCBiZXNpZGVzIG1heSBsZWFkIHRv IGEgc2lkZQo+ZWZmZWN0IHdoZW4gcXVvdGEgaXMgaW5jcmVhc2VkLCBidXQgY2FuJ3QgYmUgZGVj cmVhc2VkIGJhY2suCj4KPkkgY2FuJ3QgZmluZCBhIHdheSBob3cgdG8gZml4IGl0IGdyYWNlZnVs bHkgYW5kIHNpbXBsZS4KPgo+RXNwZWNpYWxseSBmb3IgdHJ1bmNhdGUgd2hpY2ggaXMgYSB0b3Rh bCBkaXNhc3Rlci4gVGhlIHNwYWNlLCB5b3UgaGF2ZQo+dHJ1bmNhdGVkLCBjb3VsZCBiZSBlbXB0 eSwgYnV0IHlvdSB3aWxsIGluc2VydCBhIG5ldyB0dXBsZSBpbnRvIF90cnVuY2F0ZSwKPmFuZCBp dCB3aWxsIGJlIGtlcHQsIGFuZCB3aWxsIG9jY3VweSBtZW1vcnkuIE5vIG1lbW9yeSBpcyBmcmVl ZC4gQW5kIHlvdQo+d29uJ3QgYmUgYWJsZSB0byBkZWNyZWFzZSB0aGUgcXVvdGEuCj4KPkFGQUlS LCBhdCB0aGlzIG1vbWVudCB0aGVyZSBpcyBubyBuZWNlc3NpdHkgaW4gaGF2aW5nIF90cnVuY2F0 ZSBzcGFjZS4KPlRoZXJlIHdhcyBzb21ldGhpbmcgYWJvdXQgdnlsb2csIHdoeSB3ZSBhZGRlZCB0 aGF0IHNwYWNlLCBhbmQgZnJvbSB3aGF0Cj5JIHJlbWVtYmVyLCB0aGF0IHByb2JsZW0gaGFzIGFs cmVhZHkgZ29uZS4gV2UgY291bGQganVzdCBkcm9wIF90cnVuY2F0ZS4KPkFsdGhvdWdoIGl0cyBl eGlzdGVuY2UgYWxzbyBtYXkgYmUgcmVsYXRlZCB0byByZXBsaWNhdGlvbi4gSXQgc2hvdWxkIGJl Cj5jaGVja2VkLgoqICAKQXPCoGZhcsKgYXPCoGnCoHNlZSzCoF90cnVuY2F0ZcKgc3BhY2XCoHdh c8KgaW50cm9kdWNlZMKgaW4KaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wv Y29tbWl0LzM1M2JjZGM1ZDAxMDJlMjBjODhhZDkxMGYxMDYxNTZkM2RkMmQ5ZGEKYW5kIGlzIG5l ZWRlZCBub3Qgb25seSBmb3Igdnlsb2cgaGFuZGxpbmcsIGJ1dCBhbHNvIGZvciBhdG9taWMKaW50 ZXJuYWwgdHJ1bmNhdGlvbiB1c2luZyB0cmlnZ2VyLgo+Cj5CZWxvdyBpcyBhbiBpZGVhIEkgaGFk IHJlY2VudGx5IHdoZW4gd2FzIHRoaW5raW5nIGFib3V0IHRoZSBpc3N1ZS4gSSBkb24ndAo+dGhp bmsgaXQgaXMgZ29vZCBhbmQgZmluaXNoZWQsIGJ1dCBtYXliZSBpdCB3aWxsIGhlbHAgeW91IHRv IGV2b2x2ZSBpdCB0bwo+c29tZXRoaW5nIGJldHRlci4gV2UgY291bGQgYWxsb3cgdG8gb3ZlcnVz ZSBxdW90YS4gRm9yIGV4YW1wbGUsIGFkZCBhIGZsYWcKPnRvIHN0cnVjdCBxdW90YSBsaWtlICdp c19zb2Z0Jy4gSXQgaXMgZmFsc2UgYnkgZGVmYXVsdC4gV2hlbiBxdW90YSBpcyBub3QKPnNvZnQs IGl0IHdvcmtzIGp1c3QgbGlrZSBub3cuIFdoZW4gd2Ugd2FudCB0byBhbGxvY2F0ZSBzb21ldGhp bmcgYWJvdmUgdGhlCj5xdW90YSwgd2Ugc2V0IHRoZSBmbGFnIHRvIHRydWUuIE5vdyB0aGUgcXVv dGEgaXMgc29mdCwgYW5kIGFueSBhbGxvYwo+c3VjY2VlZHMgKHVubGVzcyB0aGVyZSBpcyBubyBt ZW1vcnkgaW4gdGhlIHN5c3RlbSwgb2YgY291cnNlKS4KPgo+V2Ugc2V0IHRoZSBmbGFnIGluIG1l bXR4X3NwYWNlX2V4ZWN1dGVfZGVsZXRlKCkgYmVmb3JlCj5tZW10eF9zcGFjZS0+cmVwbGFjZShz cGFjZSwgb2xkX3R1cGxlLCBOVUxMKSwgYW5kIHVuc2V0IHJpZ2h0IGFmdGVyIGl0Lgo+Cj5Gb3Ig dHJ1bmNhdGUgd2Ugc2V0IHRoaXMgZmxhZyBpbiBzcGFjZV90cnVuY2F0ZSgpIGJlZm9yZSBib3hf dXBzZXJ0KCksIGFuZAo+dW5zZXQgcmlnaHQgYWZ0ZXJ3YXJkcyAoanVzdCBsaWtlIHlvdSBkaWQg d2l0aCBndWFyYW50ZWVfbWVtb3J5KCkpLgo+Cj5UaGF0IGFsbG93cyB1cyB0byBvdmVydXNlIHF1 b3RhLCBidXQgZG9uJ3QgdG91Y2ggcXVvdGEgbGltaXQuIEluIGNhc2UgdGhlCj5xdW90YSBpcyBv dmVydXNlZCwgYW5kIGlzIG5vdCBzb2Z0LCBpdCBiZWhhdmVzIGp1c3QgbGlrZSB3aGVuIGl0IGhh cwo+cmVhY2hlZCB0aGUgbGltaXQgLSBkb2VzIG5vdCBhbGxvdyBuZXcgYWxsb2NhdGlvbnMuCiog IApUaGFua3MgZm9yIHRoZSBpZGVhISBJIHRyaWVkIHRvIGltcGxlbWVudCBpdCBpbiB2My4KwqAK wqAKLS0KSWx5YSBLb3NhcmV2CsKgCsKg ----ALT--f69198D3Ce4E1034d94F96EfF18760b81579544017 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+CjxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+Cjwvc3R5bGU+CjxkaXY+CjxkaXYgaWQ9InN0eWxlXzE1Nzk1NDMw NDYxNDM1MzU4NTMyX0JPRFkiPgo8ZGl2IGNsYXNzPSJjbGFzc18xNTc5NTQ1NzgzIj4KPGRpdj4K PGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVh ZG1zZy1tc2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxzdHlsZSB0eXBlPSJ0ZXh0 L2NzcyI+Cjwvc3R5bGU+CjxkaXY+CjxkaXYgaWQ9InN0eWxlXzE1Nzk1NDE4NjIwNzQ5OTg5NzEz X0JPRFlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXYgY2xhc3M9ImNsYXNzXzE1 Nzk1NjQwOTlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+VGhhbmtzIGZvciB0 aGUgcmV2aWV3ITwvZGl2PgoKPGRpdj4mbmJzcDs8L2Rpdj4KCjxkaXY+T2ssIEkgc2VlLCB0aGlz IG9uZSBpcyBzdGlsbCB0b28gY2x1bXN5LiBBbHNvIGkgbWVzc2VkIHVwIHVzZXIgc3BhY2U8YnI+ CmFuZCBzZXJ2aWNlIGVuZ2luZXMuIFRoZXJlIGFyZSA1Jm5ic3A7YW5zd2VycyBiZWxvdy48L2Rp dj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2PkxldOKAmXMgdHJ5IG9uZSBtb3JlLiBTZW50IHYz IHdpdGggYSBuZXcgYXBwcm9hY2gmbmJzcDtiYXNlZCBvbiB5b3VyIGlkZWEuPC9kaXY+Cgo8ZGl2 PiZuYnNwOzwvZGl2PgoKPGRpdiBjbGFzcz0ibWFpbC1xdW90ZS1jb2xsYXBzZSI+CjxibG9ja3F1 b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRk aW5nOjAgMCAwIDEwcHg7Ij48c3Bhbj7QodGA0LXQtNCwLCAxNSDRj9C90LLQsNGA0Y8gMjAyMCwg MDowMCArMDM6MDAg0L7RgiBWbGFkaXNsYXYgU2hwaWxldm95ICZsdDs8YSByZWw9Im5vb3BlbmVy IG5vcmVmZXJyZXIiPnYuc2hwaWxldm95QHRhcmFudG9vbC5vcmc8L2E+Jmd0Ozo8YnI+CiZuYnNw OyA8L3NwYW4+Cgo8ZGl2Pgo8ZGl2IGlkPSIiPgo8ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbWFpbHJ1 X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeF9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4IGpzLXJl YWRtc2ctbXNnX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXhfbWFpbHJ1X2Nzc19hdHRyaWJ1 dGVfcG9zdGZpeCI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cjwvc3R5bGU+CjxkaXY+CjxkaXYg aWQ9InN0eWxlXzE1NzkwMzU2MjQwMzI0NDQxNjg4X0JPRFlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVf cG9zdGZpeF9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4Ij5UaGFua3MgZm9yIHRoZSBwYXRj aCE8YnI+Cjxicj4KSkZJLCBJIGFtIHN0aWxsIGFnYWluc3QgdGhpcyBwYXRjaC4gSXQgYWRkcyBo dWdlIGFuZDxicj4KdW5uZWNlc3NhcnkgY29tcGxleGl0eSB0byB0aGUgY29kZSwgd2hpY2ggd2Ug d2lsbCBuZWVkPGJyPgp0byBzdXBwb3J0IGZvcmV2ZXIuIEl0IGlzIGp1c3Qgbm90IHdvcnRoIHRo ZSBwcm9zIHRoZTxicj4KcGF0Y2ggZ2l2ZXMuPGJyPgo8YnI+Ck9uIDEzLzAxLzIwMjAgMjI6MzEs IElseWEgS29zYXJldiB3cm90ZTo8YnI+CiZndDsgVHJ5aW5nIHRvIHBlcmZvcm0gc3BhY2U6dHJ1 bmNhdGUoKSBhbmQgc3BhY2U6ZGVsZXRlKCkgd2hpbGUgcmVhY2hpbmc8YnI+CiZndDsgbWVtdHhf bWVtb3J5IGxpbWl0IHdlIGNvdWxkIGV4cGVyaWVuY2Ugc2xhYiBhbGxvY2F0b3IgZmFpbHVyZS4g VGhpczxicj4KJmd0OyBiZWhhdmlvciBzZWVtcyB0byBiZSBxdWl0ZSBzdXJwcmlzaW5nIGZvciB1 c2Vycy4gTm93IHdlIGFyZSBpbmNyZWFzaW5nPGJyPgomZ3Q7IG1lbXR4IHF1b3RhIGlmIG5lZWRl ZCBmb3IgdHJ1bmNhdGlvbiBvciBkZWxldGlvbi4gQWZ0ZXIgcGVyZm9ybWluZyBpdDxicj4KJmd0 OyBxdW90YSBpcyBiZWluZyBzZXQgYmFjayB0byB0aGUgcHJldmlvdXMgdmFsdWUgaWYgcG9zc2li bGUsIHdoaWxlIGl0PGJyPgomZ3Q7IHNob3VsZCBiZSBzbyBmb3IgYWxtb3N0IGFueSBjYXNlLCBz aW5jZSB3ZSBhcmUgbWVhbnQgdG8gZnJlZSBzb21lIHNwYWNlPGJyPgomZ3Q7IGR1cmluZyBkZWxl dGlvbiBvciB0cnVuY2F0aW9uLjxicj4KJmd0Ozxicj4KJmd0OyBDbG9zZXMgIzM4MDc8YnI+CiZn dDsgLS0tPGJyPgomZ3Q7IHNyYy9ib3gvYmxhY2tob2xlLmMgfCAxICs8YnI+CiZndDsgc3JjL2Jv eC9ib3guY2MgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy08YnI+CiZn dDsgc3JjL2JveC9lbmdpbmUuYyB8IDExICsrKysrKysrKysrPGJyPgomZ3Q7IHNyYy9ib3gvZW5n aW5lLmggfCA5ICsrKysrKysrKzxicj4KJmd0OyBzcmMvYm94L21lbXR4X2VuZ2luZS5jIHwgMjAg KysrKysrKysrKysrKysrKysrKys8YnI+CiZndDsgc3JjL2JveC9tZW10eF9lbmdpbmUuaCB8IDQg KysrKzxicj4KJmd0OyBzcmMvYm94L3NlcnZpY2VfZW5naW5lLmMgfCAxICs8YnI+CiZndDsgc3Jj L2JveC9zeXN2aWV3LmMgfCAxICs8YnI+CiZndDsgc3JjL2JveC92aW55bC5jIHwgMSArPGJyPgom Z3Q7IDkgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKTxicj4K Jmd0Ozxicj4KJmd0OyBkaWZmIC0tZ2l0IGEvc3JjL2JveC9ibGFja2hvbGUuYyBiL3NyYy9ib3gv YmxhY2tob2xlLmM8YnI+CiZndDsgaW5kZXggNjlmMWRlYmExLi5hZjU4N2Y0MzQgMTAwNjQ0PGJy PgomZ3Q7IC0tLSBhL3NyYy9ib3gvYmxhY2tob2xlLmM8YnI+CiZndDsgKysrIGIvc3JjL2JveC9i bGFja2hvbGUuYzxicj4KJmd0OyBAQCAtMTk0LDYgKzE5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZW5naW5lX3Z0YWIgYmxhY2tob2xlX2VuZ2luZV92dGFiID0gezxicj4KJmd0OyAvKiAuY29t bWl0X2NoZWNrcG9pbnQgPSAqLyBnZW5lcmljX2VuZ2luZV9jb21taXRfY2hlY2twb2ludCw8YnI+ CiZndDsgLyogLmFib3J0X2NoZWNrcG9pbnQgPSAqLyBnZW5lcmljX2VuZ2luZV9hYm9ydF9jaGVj a3BvaW50LDxicj4KJmd0OyAvKiAuY29sbGVjdF9nYXJiYWdlID0gKi8gZ2VuZXJpY19lbmdpbmVf Y29sbGVjdF9nYXJiYWdlLDxicj4KJmd0OyArIC8qIC5ndWFyYW50ZWVfbWVtb3J5ID0gKi8gZ2Vu ZXJpY19lbmdpbmVfZ3VhcmFudGVlX21lbW9yeSw8YnI+Cjxicj4KVGhlIG9ubHkgcHJvYmxlbSBp cyB3aXRoIG1lbXR4IGVuZ2luZSwgYW5kIEkgcHJvcG9zZSB0byBzb2x2ZSBpdDxicj4Kb24gbWVt dHggZW5naW5lIGxldmVsLiBWaW55bCB3aWxsIG5ldmVyIG5lZWQgdGhpcyBtZXRob2QuPGJyPgo8 YnI+CihCdXQgZXZlbiBiZXR0ZXIgSSBwcm9wb3NlIHRvIGRyb3AgdGhlIHBhdGNoIGFuZCBjbG9z ZSB0aGUgaXNzdWUgYXM8YnI+Cndvbid0IGZpeC4pPGJyPgo8YnI+CiZndDsgLyogLmJhY2t1cCA9 ICovIGdlbmVyaWNfZW5naW5lX2JhY2t1cCw8YnI+CiZndDsgLyogLm1lbW9yeV9zdGF0ID0gKi8g Z2VuZXJpY19lbmdpbmVfbWVtb3J5X3N0YXQsPGJyPgomZ3Q7IC8qIC5yZXNldF9zdGF0ID0gKi8g Z2VuZXJpY19lbmdpbmVfcmVzZXRfc3RhdCw8YnI+CiZndDsgZGlmZiAtLWdpdCBhL3NyYy9ib3gv Ym94LmNjIGIvc3JjL2JveC9ib3guY2M8YnI+CiZndDsgaW5kZXggMWIyYjI3ZDYxLi4xOGMwOWNl MWIgMTAwNjQ0PGJyPgomZ3Q7IC0tLSBhL3NyYy9ib3gvYm94LmNjPGJyPgomZ3Q7ICsrKyBiL3Ny Yy9ib3gvYm94LmNjPGJyPgomZ3Q7IEBAIC0xMzIxLDkgKzEzNDEsMjMgQEAgc3BhY2VfdHJ1bmNh dGUoc3RydWN0IHNwYWNlICpzcGFjZSk8YnI+CiZndDsgb3BzX2J1Zl9lbmQgPSBtcF9lbmNvZGVf dWludChvcHNfYnVmX2VuZCwgMSk7PGJyPgomZ3Q7IGFzc2VydChvcHNfYnVmX2VuZCAmbHQ7IGJ1 ZiArIGJ1Zl9zaXplKTs8YnI+CiZndDs8YnI+CiZndDsgKyBzaXplX3QgdG90YWw7PGJyPgomZ3Q7 ICsgYm9vbCBleHRlbmRlZCA9IGZhbHNlOzxicj4KJmd0OyArIHNwYWNlLSZndDtlbmdpbmUtJmd0 O3Z0YWItJmd0O2d1YXJhbnRlZV9tZW1vcnkoc3BhY2UtJmd0O2VuZ2luZSw8YnI+CiZndDsgKyBN RU1UWF9TTEFCX1NJWkUsPGJyPgomZ3Q7ICsgJmFtcDt0b3RhbCwgJmFtcDtleHRlbmRlZCk7PGJy PgomZ3Q7ICs8YnI+Cjxicj4KVHJ1bmNhdGUgaXMgYWx3YXlzIGFib3V0IGluc2VydGlvbiBpbnRv IHRoZSBtZW10eCBzcGFjZSBfdHJ1bmNhdGUuPGJyPgpIZXJlIHlvdSBhcmUgY2FsbGluZyAnZ3Vh cmFudGVlX21lbW9yeScgZm9yIHRoZSB1c2VyIHNwYWNlJ3MgZW5naW5lLjxicj4KQW5kIGl0IGp1 c3Qgd29uJ3Qgd29yayBpbiBjYXNlIEkgdHJ5IHRvIHRydW5jYXRlIGEgdmlueWwgc3BhY2UuPGJy Pgo8YnI+Ck1vcmVvdmVyLCB0aGUgZW5jYXBzdWxhdGlvbiBvZiAnbWVtb3J5IGd1YXJhbnRlZScg aXMgYnJva2VuIGFueXdheSw8YnI+CmJlY2F1c2UgMSkgeW91IHBhc3MgJ01FTVRYX1NMQUJfU0la RScgcGFyYW1ldGVyIHRvIHRoZSBlbmdpbmUnczxicj4KdmlydHVhbCBtZXRob2QsIDIpIGJlbG93 IHlvdSB0b3VjaCBtZW10eCBlbmdpbmUgZXhwbGljaXRseS48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8 L2Rpdj4KPC9kaXY+CjwvYmxvY2txdW90ZT4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwv ZGl2Pgo8L2Rpdj4KCjxvbD4KCTxsaT5SaWdodCwmbmJzcDt0aGlzJm5ic3A7d29uJ3Qgd29yayBp biBjYXNlJm5ic3A7dXNlciBlbmdpbmUmbmJzcDtpcyB2aW55bC48L2xpPgo8L29sPgoKPGRpdj4K PGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVh ZG1zZy1tc2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+CjxkaXY+CjxkaXYg Y2xhc3M9ImNsYXNzXzE1Nzk1NjQwOTlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+Cjxk aXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy LWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+ CjxkaXY+CjxkaXY+CjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tYWlscnVfY3NzX2F0dHJpYnV0ZV9w b3N0Zml4X21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVhZG1zZy1tc2dfbWFpbHJ1 X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeF9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4Ij4KPGRp dj4KPGRpdj48YnI+CiZndDsgaWYgKGJveF91cHNlcnQoQk9YX1RSVU5DQVRFX0lELCAwLCB0dXBs ZV9idWYsIHR1cGxlX2J1Zl9lbmQsPGJyPgomZ3Q7IG9wc19idWYsIG9wc19idWZfZW5kLCAwLCBO VUxMKSAhPSAwKTxicj4KJmd0OyBkaWFnX3JhaXNlKCk7PGJyPgomZ3Q7ICs8YnI+CiZndDsgKyBp ZiAoZXh0ZW5kZWQpIHs8YnI+CiZndDsgKyBzdHJ1Y3QgbWVtdHhfZW5naW5lICptZW10eCA9PGJy PgomZ3Q7ICsgKHN0cnVjdCBtZW10eF9lbmdpbmUgKilzcGFjZS0mZ3Q7ZW5naW5lOzxicj4KPGJy PgpXaHkgaXMgc3BhY2UtJmd0O2VuZ2luZSBhc3N1bWVkIHRvIGJlIG1lbXR4PyBUaGlzIGlzIGEg dXNlcidzIHNwYWNlLjxicj4KSXQgY2FuIGJlIHZpbnlsLjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwv ZGl2Pgo8L2Rpdj4KPC9ibG9ja3F1b3RlPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9k aXY+CjwvZGl2PgoKPG9sIHN0YXJ0PSIyIj4KCTxsaT5XZWxsLCBleHRlbmRlZCBtYXkgb25seSZu YnNwO2JlIHRydWUmbmJzcDtpZiB0aGUgZW5naW5lIGlzIG1lbXR4LjwvbGk+Cjwvb2w+Cgo8ZGl2 Pgo8ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCBqcy1y ZWFkbXNnLW1zZ19tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4Ij4KPGRpdj4KPGRpdj4KPGRp diBjbGFzcz0iY2xhc3NfMTU3OTU2NDA5OV9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4Ij4K PGRpdiBjbGFzcz0ibWFpbC1xdW90ZS1jb2xsYXBzZSI+CjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7 Ij4KPGRpdj4KPGRpdj4KPGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRl X3Bvc3RmaXhfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCBqcy1yZWFkbXNnLW1zZ19tYWls cnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4X21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgiPgo8 ZGl2Pgo8ZGl2Pjxicj4KJmd0OyArIHNpemVfdCBuZXdfdG90YWwgPSBxdW90YV9zZXQoJmFtcDtt ZW10eC0mZ3Q7cXVvdGEsIHRvdGFsKTs8YnI+CiZndDsgKyBpZiAobmV3X3RvdGFsICZndDsgdG90 YWwpPGJyPgomZ3Q7ICsgcXVvdGFfc2V0KCZhbXA7bWVtdHgtJmd0O3F1b3RhLCBxdW90YV91c2Vk KCZhbXA7bWVtdHgtJmd0O3F1b3RhKSk7PGJyPgomZ3Q7ICsgfTxicj4KJmd0OyB9PGJyPgo8YnI+ ClNpbmNlIHRoaXMgaXMgYSBidWcgZml4LCB0aGVyZSBzaG91bGQgYmUgYSByZWdyZXNzaW9uIHRl c3QuPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2 Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cgo8b2wgc3RhcnQ9IjMiPgoJPGxp PkkgY2Fu4oCZdCByZWFsbHkgc2VlIHN1aXRhYmxlIHJlZ3Jlc3Npb24gdGVzdC48L2xpPgo8L29s PgoKPGRpdj4KPGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3Rm aXgganMtcmVhZG1zZy1tc2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+Cjxk aXY+CjxkaXYgY2xhc3M9ImNsYXNzXzE1Nzk1NjQwOTlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9z dGZpeCI+CjxkaXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPgo8YmxvY2txdW90ZSBzdHls ZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAg MCAxMHB4OyI+CjxkaXY+CjxkaXY+CjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tYWlscnVfY3NzX2F0 dHJpYnV0ZV9wb3N0Zml4X21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVhZG1zZy1t c2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeF9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0 Zml4Ij4KPGRpdj4KPGRpdj48YnI+CkJ1dCBJIG9uY2UgYWdhaW4gc2F5LCB0aGF0IGl0IGlzIGV2 ZW4gYmV0dGVyIHRvIGRyb3AgdGhlIHBhdGNoIGFuZDxicj4KY2xvc2UgdGhlIGlzc3VlLiBUaGlz IGlzIGp1c3Qgc3VnYXIsIHdoaWNoIGJlc2lkZXMgbWF5IGxlYWQgdG8gYSBzaWRlPGJyPgplZmZl Y3Qgd2hlbiBxdW90YSBpcyBpbmNyZWFzZWQsIGJ1dCBjYW4ndCBiZSBkZWNyZWFzZWQgYmFjay48 YnI+Cjxicj4KSSBjYW4ndCBmaW5kIGEgd2F5IGhvdyB0byBmaXggaXQgZ3JhY2VmdWxseSBhbmQg c2ltcGxlLjxicj4KPGJyPgpFc3BlY2lhbGx5IGZvciB0cnVuY2F0ZSB3aGljaCBpcyBhIHRvdGFs IGRpc2FzdGVyLiBUaGUgc3BhY2UsIHlvdSBoYXZlPGJyPgp0cnVuY2F0ZWQsIGNvdWxkIGJlIGVt cHR5LCBidXQgeW91IHdpbGwgaW5zZXJ0IGEgbmV3IHR1cGxlIGludG8gX3RydW5jYXRlLDxicj4K YW5kIGl0IHdpbGwgYmUga2VwdCwgYW5kIHdpbGwgb2NjdXB5IG1lbW9yeS4gTm8gbWVtb3J5IGlz IGZyZWVkLiBBbmQgeW91PGJyPgp3b24ndCBiZSBhYmxlIHRvIGRlY3JlYXNlIHRoZSBxdW90YS48 YnI+Cjxicj4KQUZBSVIsIGF0IHRoaXMgbW9tZW50IHRoZXJlIGlzIG5vIG5lY2Vzc2l0eSBpbiBo YXZpbmcgX3RydW5jYXRlIHNwYWNlLjxicj4KVGhlcmUgd2FzIHNvbWV0aGluZyBhYm91dCB2eWxv Zywgd2h5IHdlIGFkZGVkIHRoYXQgc3BhY2UsIGFuZCBmcm9tIHdoYXQ8YnI+CkkgcmVtZW1iZXIs IHRoYXQgcHJvYmxlbSBoYXMgYWxyZWFkeSBnb25lLiBXZSBjb3VsZCBqdXN0IGRyb3AgX3RydW5j YXRlLjxicj4KQWx0aG91Z2ggaXRzIGV4aXN0ZW5jZSBhbHNvIG1heSBiZSByZWxhdGVkIHRvIHJl cGxpY2F0aW9uLiBJdCBzaG91bGQgYmU8YnI+CmNoZWNrZWQuPC9kaXY+CjwvZGl2Pgo8L2Rpdj4K PC9kaXY+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8 L2Rpdj4KPC9kaXY+Cgo8b2wgc3RhcnQ9IjQiPgoJPGxpPkFzJm5ic3A7ZmFyJm5ic3A7YXMmbmJz cDtpJm5ic3A7c2VlLCZuYnNwO190cnVuY2F0ZSZuYnNwO3NwYWNlJm5ic3A7d2FzJm5ic3A7aW50 cm9kdWNlZCZuYnNwO2luPGJyPgoJaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRv b2wvY29tbWl0LzM1M2JjZGM1ZDAxMDJlMjBjODhhZDkxMGYxMDYxNTZkM2RkMmQ5ZGE8YnI+Cglh bmQgaXMgbmVlZGVkIG5vdCBvbmx5IGZvciB2eWxvZyBoYW5kbGluZywgYnV0IGFsc28gZm9yIGF0 b21pYzxicj4KCWludGVybmFsIHRydW5jYXRpb24gdXNpbmcgdHJpZ2dlci48L2xpPgo8L29sPgoK PGRpdj4KPGRpdiBjbGFzcz0ianMtaGVscGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgg anMtcmVhZG1zZy1tc2dfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+CjxkaXY+ CjxkaXYgY2xhc3M9ImNsYXNzXzE1Nzk1NjQwOTlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZp eCI+CjxkaXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPgo8YmxvY2txdW90ZSBzdHlsZT0i Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAx MHB4OyI+CjxkaXY+CjxkaXY+CjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tYWlscnVfY3NzX2F0dHJp YnV0ZV9wb3N0Zml4X21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVhZG1zZy1tc2df bWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeF9tYWlscnVfY3NzX2F0dHJpYnV0ZV9wb3N0Zml4 Ij4KPGRpdj4KPGRpdj48YnI+CkJlbG93IGlzIGFuIGlkZWEgSSBoYWQgcmVjZW50bHkgd2hlbiB3 YXMgdGhpbmtpbmcgYWJvdXQgdGhlIGlzc3VlLiBJIGRvbid0PGJyPgp0aGluayBpdCBpcyBnb29k IGFuZCBmaW5pc2hlZCwgYnV0IG1heWJlIGl0IHdpbGwgaGVscCB5b3UgdG8gZXZvbHZlIGl0IHRv PGJyPgpzb21ldGhpbmcgYmV0dGVyLiBXZSBjb3VsZCBhbGxvdyB0byBvdmVydXNlIHF1b3RhLiBG b3IgZXhhbXBsZSwgYWRkIGEgZmxhZzxicj4KdG8gc3RydWN0IHF1b3RhIGxpa2UgJ2lzX3NvZnQn LiBJdCBpcyBmYWxzZSBieSBkZWZhdWx0LiBXaGVuIHF1b3RhIGlzIG5vdDxicj4Kc29mdCwgaXQg d29ya3MganVzdCBsaWtlIG5vdy4gV2hlbiB3ZSB3YW50IHRvIGFsbG9jYXRlIHNvbWV0aGluZyBh Ym92ZSB0aGU8YnI+CnF1b3RhLCB3ZSBzZXQgdGhlIGZsYWcgdG8gdHJ1ZS4gTm93IHRoZSBxdW90 YSBpcyBzb2Z0LCBhbmQgYW55IGFsbG9jPGJyPgpzdWNjZWVkcyAodW5sZXNzIHRoZXJlIGlzIG5v IG1lbW9yeSBpbiB0aGUgc3lzdGVtLCBvZiBjb3Vyc2UpLjxicj4KPGJyPgpXZSBzZXQgdGhlIGZs YWcgaW4gbWVtdHhfc3BhY2VfZXhlY3V0ZV9kZWxldGUoKSBiZWZvcmU8YnI+Cm1lbXR4X3NwYWNl LSZndDtyZXBsYWNlKHNwYWNlLCBvbGRfdHVwbGUsIE5VTEwpLCBhbmQgdW5zZXQgcmlnaHQgYWZ0 ZXIgaXQuPGJyPgo8YnI+CkZvciB0cnVuY2F0ZSB3ZSBzZXQgdGhpcyBmbGFnIGluIHNwYWNlX3Ry dW5jYXRlKCkgYmVmb3JlIGJveF91cHNlcnQoKSwgYW5kPGJyPgp1bnNldCByaWdodCBhZnRlcndh cmRzIChqdXN0IGxpa2UgeW91IGRpZCB3aXRoIGd1YXJhbnRlZV9tZW1vcnkoKSkuPGJyPgo8YnI+ ClRoYXQgYWxsb3dzIHVzIHRvIG92ZXJ1c2UgcXVvdGEsIGJ1dCBkb24ndCB0b3VjaCBxdW90YSBs aW1pdC4gSW4gY2FzZSB0aGU8YnI+CnF1b3RhIGlzIG92ZXJ1c2VkLCBhbmQgaXMgbm90IHNvZnQs IGl0IGJlaGF2ZXMganVzdCBsaWtlIHdoZW4gaXQgaGFzPGJyPgpyZWFjaGVkIHRoZSBsaW1pdCAt IGRvZXMgbm90IGFsbG93IG5ldyBhbGxvY2F0aW9ucy48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rp dj4KPC9kaXY+CjwvYmxvY2txdW90ZT4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2 Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cgo8b2wgc3RhcnQ9IjUiPgoJPGxp PlRoYW5rcyBmb3IgdGhlIGlkZWEhIEkgdHJpZWQgdG8gaW1wbGVtZW50IGl0IGluIHYzLjwvbGk+ Cjwvb2w+Cgo8ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPgo8ZGl2Pgo8ZGl2 Pgo8ZGl2IGNsYXNzPSJjbGFzc18xNTc5NTQ1NzgzIj4KPGRpdj4KPGRpdiBjbGFzcz0ianMtaGVs cGVyX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVhZG1zZy1tc2dfbWFpbHJ1X2Nz c19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+CjxkaXY+CjxkaXYgY2xhc3M9ImNsYXNzXzE1Nzk1 NjQwOTlfbWFpbHJ1X2Nzc19hdHRyaWJ1dGVfcG9zdGZpeCI+CjxkaXY+Jm5ic3A7CjxkaXY+Jm5i c3A7PC9kaXY+Cgo8ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj4KPGRpdiBk YXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRlbnQiPgo8ZGl2Pi0tPGJyPgpJbHlhIEtvc2FyZXY8 L2Rpdj4KPC9kaXY+CjwvZGl2PgoKPGRpdj4mbmJzcDs8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rp dj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cgo8ZGl2 PiZuYnNwOzwvZGl2Pgo8L0JPRFk+PC9IVE1MPgo= ----ALT--f69198D3Ce4E1034d94F96EfF18760b81579544017--