From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f466.i.mail.ru (f466.i.mail.ru [185.5.136.199]) (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 2FD23401A43 for ; Thu, 31 Oct 2019 08:02:07 +0300 (MSK) From: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= MIME-Version: 1.0 Date: Thu, 31 Oct 2019 08:02:05 +0300 Reply-To: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= Message-ID: <1572498125.840239809@f466.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--d9aa2b4ae13e45a483ee81e7cd74c8341572498125" In-Reply-To: <1572432429.539435313@f146.i.mail.ru> References: <20191030085942.GA35607@tarantool.org> <1572432429.539435313@f146.i.mail.ru> Subject: Re: [Tarantool-patches] =?utf-8?q?=5Btarantool-patches=5D_=5BPATCH_v4?= =?utf-8?q?_07/20=5D_refactoring=3A_remove_exceptions_from_index=5Fdef=5Fn?= =?utf-8?q?ew=5Ffrom=5Ftuple?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= ----ALT--d9aa2b4ae13e45a483ee81e7cd74c8341572498125 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQoKVGhhbmtzIGZvciBleHBsYW5hdGlvbiHCoApUaGUgcGF0Y2ggaXMgc3RpbGwgTEdUTS4K ClNlcmdvc8KgCgoKClNlbnQgZnJvbSBNYWlsLnJ1IGFwcCBmb3IgaU9TCgoKV2VkbmVzZGF5LCAz MCBPY3RvYmVyIDIwMTksIDIwOjA4ICswMzAwIGZyb20gSWx5YSBLb3NhcmV2ICA8aS5rb3NhcmV2 QHRhcmFudG9vbC5vcmc+Ogo+SGkhCj4KPlRoYW5rcyBmb3IgeW91ciByZXZpZXcuCj5XZSBhcmUg dXNpbmcgZGlhZ19yYWlzZSBoZXJlIGFzIGZhciBhc8KgaW5kZXhfZGVmX2NoZWNrX3NlcXVlbmNl IGlzIGFscmVhZHkgcmVmYWN0b3JlZCBhbmQgd2UgbmVlZCB0byBwcm9jZXNzIHRoZSBlcnJvciBp dCByZXR1cm5zLCB3aGlsZcKgc2VxdWVuY2VfZmllbGRfZnJvbV90dXBsZSBpdHNlbGYgaXMgbm90 IGJlaW5nIHJlZmFjdG9yZWQgaW4gdGhpcyBwYXRjaCwgc28gd2UgY2FuJ3QgcmV0dXJuIGFuIGVy cm9yIGhlcmUsIG9ubHkgcmFpc2UgYW4gZXhjZXB0aW9uLgo+Cj5TaW5jZXJlbHksCj5JbHlhIEtv c2FyZXYKPgo+PtCh0YDQtdC00LAsIDMwINC+0LrRgtGP0LHRgNGPIDIwMTksIDExOjU5ICswMzow MCDQvtGCIFNlcmdleSBPc3RhbmV2aWNoIDwgc2VyZ29zQHRhcmFudG9vbC5vcmcgPjoKPj4KPj5I aSEKPj4KPj5MR1RNLCBqdXN0IGEgZmV3IG5pdHMgaW4gY29tbWVudHMgYmVsb3cKPj4KPj4+IGlu ZGV4IDhkNTY1ZTE4OS4uMTBhNWY4ZDY0IDEwMDY0NAo+Pj4gLS0tIGEvc3JjL2JveC9hbHRlci5j Ywo+Pj4gKysrIGIvc3JjL2JveC9hbHRlci5jYwo+Pj4gQEAgLTExOCwxMCArMTE4LDEwIEBAIGFj Y2Vzc19jaGVja19kZGwoY29uc3QgY2hhciAqbmFtZSwgdWludDMyX3Qgb2JqZWN0X2lkLCB1aW50 MzJfdCBvd25lcl91aWQsCj4+PiAgfQo+Pj4gCj4+PiAgLyoqCj4+PiAtICogVGhyb3cgYW4gZXhj ZXB0aW9uIGlmIHRoZSBnaXZlbiBpbmRleCBkZWZpbml0aW9uCj4+PiArICogUmV0dXJuIGFuIGVy cm9yIGlmIHRoZSBnaXZlbiBpbmRleCBkZWZpbml0aW9uCj4+PiAgICogaXMgaW5jb21wYXRpYmxl IHdpdGggYSBzZXF1ZW5jZS4KPj4+ICAgKi8KPj4+IC1zdGF0aWMgdm9pZAo+Pj4gK3N0YXRpYyBp bnQKPj4+ICBpbmRleF9kZWZfY2hlY2tfc2VxdWVuY2Uoc3RydWN0IGluZGV4X2RlZiAqaW5kZXhf ZGVmLCB1aW50MzJfdCBzZXF1ZW5jZV9maWVsZG5vLAo+Pj4gIAkJCSBjb25zdCBjaGFyICpzZXF1 ZW5jZV9wYXRoLCB1aW50MzJfdCBzZXF1ZW5jZV9wYXRoX2xlbiwKPj4+ICAJCQkgY29uc3QgY2hh ciAqc3BhY2VfbmFtZSkKPj4+IEBAIC0xNDIsMjQgKzE0MiwyNyBAQCBpbmRleF9kZWZfY2hlY2tf c2VxdWVuY2Uoc3RydWN0IGluZGV4X2RlZiAqaW5kZXhfZGVmLCB1aW50MzJfdCBzZXF1ZW5jZV9m aWVsZG5vLAo+Pj4gIAkJfQo+Pj4gIAl9Cj4+PiAgCWlmIChzZXF1ZW5jZV9wYXJ0ID09IE5VTEwp IHsKPj4+IC0JCXRudF9yYWlzZShDbGllbnRFcnJvciwgRVJfTU9ESUZZX0lOREVYLCBpbmRleF9k ZWYtPm5hbWUsCj4+PiAtCQkJICBzcGFjZV9uYW1lLCAic2VxdWVuY2UgZmllbGQgbXVzdCBiZSBh IHBhcnQgb2YgIgo+Pj4gLQkJCSAgInRoZSBpbmRleCIpOwo+Pj4gKwkJZGlhZ19zZXQoQ2xpZW50 RXJyb3IsIEVSX01PRElGWV9JTkRFWCwgaW5kZXhfZGVmLT5uYW1lLAo+Pj4gKwkJCSBzcGFjZV9u YW1lLCAic2VxdWVuY2UgZmllbGQgbXVzdCBiZSBhIHBhcnQgb2YgIgo+Pj4gKwkJCQkgICAgICJ0 aGUgaW5kZXgiKTsKPj4+ICsJCXJldHVybiAtMTsKPj4+ICAJfQo+Pj4gIAllbnVtIGZpZWxkX3R5 cGUgdHlwZSA9IHNlcXVlbmNlX3BhcnQtPnR5cGU7Cj4+PiAgCWlmICh0eXBlICE9IEZJRUxEX1RZ UEVfVU5TSUdORUQgJiYgdHlwZSAhPSBGSUVMRF9UWVBFX0lOVEVHRVIpIHsKPj4+IC0JCXRudF9y YWlzZShDbGllbnRFcnJvciwgRVJfTU9ESUZZX0lOREVYLCBpbmRleF9kZWYtPm5hbWUsCj4+PiAt CQkJICBzcGFjZV9uYW1lLCAic2VxdWVuY2UgY2Fubm90IGJlIHVzZWQgd2l0aCAiCj4+PiAtCQkJ ICAiYSBub24taW50ZWdlciBrZXkiKTsKPj4+ICsJCWRpYWdfc2V0KENsaWVudEVycm9yLCBFUl9N T0RJRllfSU5ERVgsIGluZGV4X2RlZi0+bmFtZSwKPj4+ICsJCQkgc3BhY2VfbmFtZSwgInNlcXVl bmNlIGNhbm5vdCBiZSB1c2VkIHdpdGggIgo+Pj4gKwkJCQkgICAgICJhIG5vbi1pbnRlZ2VyIGtl eSIpOwo+Pj4gKwkJcmV0dXJuIC0xOwo+Pj4gIAl9Cj4+PiArCXJldHVybiAwOwo+Pj4gIH0KPj4+ IAo+Pj4gIC8qKgo+Pj4gICAqIFN1cHBvcnQgZnVuY3Rpb24gZm9yIGluZGV4X2RlZl9uZXdfZnJv bV90dXBsZSguLikKPj4+IC0gKiBDaGVja3MgdHVwbGUgKG9mIF9pbmRleCBzcGFjZSkgYW5kIHRo cm93cyBhIG5pY2UgZXJyb3IgaWYgaXQgaXMgaW52YWxpZAo+Pj4gKyAqIENoZWNrcyB0dXBsZSAo b2YgX2luZGV4IHNwYWNlKSBhbmQgc2V0cyBhIG5pY2UgZGlhZyBpZiBpdCBpcyBpbnZhbGlkCj4+ U2hvdWxkIGJlICdSZXR1cm4gYW4gZXJyb3InLCBzYW1lIGFzIGZvciB0aGUgY2FzZSBhYm92ZS4K Pj4KPj4+IEBAIC00MDY2LDggKzQwOTksOSBAQCBzZXF1ZW5jZV9maWVsZF9mcm9tX3R1cGxlKHN0 cnVjdCBzcGFjZSAqc3BhY2UsIHN0cnVjdCB0dXBsZSAqdHVwbGUsCj4+PiAgCQlpZiAocGF0aF9s ZW4gPT0gMCkKPj4+ICAJCQlwYXRoX3JhdyA9IE5VTEw7Cj4+PiAgCX0KPj4+IC0JaW5kZXhfZGVm X2NoZWNrX3NlcXVlbmNlKHBrLT5kZWYsIGZpZWxkbm8sIHBhdGhfcmF3LCBwYXRoX2xlbiwKPj4+ IC0JCQkJIHNwYWNlX25hbWUoc3BhY2UpKTsKPj4+ICsJaWYgKGluZGV4X2RlZl9jaGVja19zZXF1 ZW5jZShway0+ZGVmLCBmaWVsZG5vLCBwYXRoX3JhdywgcGF0aF9sZW4sCj4+PiArCQkJCSBzcGFj ZV9uYW1lKHNwYWNlKSkgIT0gMCkKPj4+ICsJCWRpYWdfcmFpc2UoKTsKPj4KPj5JIHdvbmRlciB3 aHkgd2UgbGVhdmUgc29tZSBkaWFnX3JhaXNlKCkgYW5kIG5vdCBkaWFnX3NldCgpIHBsdXMgcmV0 dXJuCj4+LTEgb3IgTlVMTD8KPj4KPj4KPj5yZWdhcmRzLAo+PlNlcmdvcwo+Pgo+Cj4KPi0tIAo+ SWx5YSBLb3NhcmV2Cg== ----ALT--d9aa2b4ae13e45a483ee81e7cd74c8341572498125 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgaWQ9ImNvbXBvc2VXZWJWaWV3X2VkaXRhYmxlX2NvbnRlbnQiIGRh dGEtbWFpbHJ1YXBwLWNvbXBvc2UtaWQ9ImNvbXBvc2VXZWJWaWV3X2VkaXRhYmxlX2NvbnRlbnQi IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+PGRpdj5IaSE8L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PlRoYW5rcyBmb3IgZXhwbGFuYXRpb24hJm5ic3A7PC9kaXY+PGRpdj5UaGUgcGF0Y2ggaXMg c3RpbGwgTEdUTS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlNlcmdvcyZuYnNwOzwvZGl2Pjxk aXY+PGJyPjwvZGl2PjxkaXYgaWQ9Im1haWwtYXBwLWF1dG8tZGVmYXVsdC1zaWduYXR1cmUiPjxi cj48YnI+U2VudCBmcm9tIE1haWwucnUgYXBwIGZvciBpT1M8YnI+PC9kaXY+PGJyPjxicj5XZWRu ZXNkYXksIDMwIE9jdG9iZXIgMjAxOSwgMjA6MDggKzAzMDAgZnJvbSBJbHlhIEtvc2FyZXYgICZs dDtpLmtvc2FyZXZAdGFyYW50b29sLm9yZyZndDs6PGJyPjxkaXYgaWQ9ImNvbXBvc2VXZWJWaWV3 X3ByZXZpb3VzZV9jb250ZW50IiBkYXRhLW1haWxydWFwcC1jb21wb3NlLWlkPSJjb21wb3NlV2Vi Vmlld19wcmV2aW91c2VfY29udGVudCI+PGJsb2NrcXVvdGUgaWQ9Im1haWwtYXBwLWF1dG8tcXVv dGUiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHlsZTogc29s aWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMTEsIDEwMiwgMjQ5KTsgbWFyZ2luOiAxMHB4IDBw eCAxMHB4IDVweDsgcGFkZGluZzogMHB4IDBweCAwcHggMTBweDsgZGlzcGxheTogaW5oZXJpdDsi IGRhdGEtZGFya29zaGEtaWQ9IjE6MSI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ct bXNnIiBkYXRhLWRhcmtvc2hhLWlkPSIxOjIiIHN0eWxlPSIiPgoJPHN0eWxlIHR5cGU9InRleHQv Y3NzIiBkYXRhLWRhcmtvc2hhLWlkPSIxOjMiIHN0eWxlPSIiPjwvc3R5bGU+CiAJPGRpdiBkYXRh LWRhcmtvc2hhLWlkPSIxOjQiIHN0eWxlPSIiPgoJCTxiYXNlIHRhcmdldD0iX3NlbGYiIGhyZWY9 Imh0dHBzOi8vZS5tYWlsLnJ1LyIgZGF0YS1kYXJrb3NoYS1pZD0iMTo1IiBzdHlsZT0iIj4KCQkK ICAgICAgICAgICAgPGRpdiBpZD0ic3R5bGVfMTU3MjQ1NTMwODEyNzAzOTU0OThfQk9EWSIgZGF0 YS1kYXJrb3NoYS1pZD0iMTo2IiBzdHlsZT0iIj48ZGl2IGNsYXNzPSJjbGFzc18xNTcyNDcwMjg1 IiBkYXRhLWRhcmtvc2hhLWlkPSIxOjciIHN0eWxlPSIiPgo8cCBzdHlsZT0iZm9udC1mYW1pbHk6 IEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7IiBkYXRhLW1jZS1zdHlsZT0iZm9u dC1mYW1pbHk6IEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7IiBkYXRhLWRhcmtv c2hhLWlkPSIxOjgiPkhpITxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjkiIHN0eWxlPSIiPjxiciBk YXRhLWRhcmtvc2hhLWlkPSIxOjEwIiBzdHlsZT0iIj5UaGFua3MgZm9yIHlvdXIgcmV2aWV3Ljwv cD48cCBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2Vy aWY7IiBkYXRhLW1jZS1zdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEs IHNhbnMtc2VyaWY7IiBkYXRhLWRhcmtvc2hhLWlkPSIxOjExIj5XZSBhcmUgdXNpbmcgZGlhZ19y YWlzZSBoZXJlIGFzIGZhciBhcyZuYnNwO2luZGV4X2RlZl9jaGVja19zZXF1ZW5jZSBpcyBhbHJl YWR5IHJlZmFjdG9yZWQgYW5kIHdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgZXJyb3IgaXQgcmV0dXJu cywgd2hpbGUmbmJzcDtzZXF1ZW5jZV9maWVsZF9mcm9tX3R1cGxlIGl0c2VsZiBpcyBub3QgYmVp bmcgcmVmYWN0b3JlZCBpbiB0aGlzIHBhdGNoLCBzbyB3ZSBjYW4ndCByZXR1cm4gYW4gZXJyb3Ig aGVyZSwgb25seSByYWlzZSBhbiBleGNlcHRpb24uPC9wPjxwIHN0eWxlPSJmb250LWZhbWlseTog QXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsiIGRhdGEtbWNlLXN0eWxlPSJmb250 LWZhbWlseTogQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsiIGRhdGEtZGFya29z aGEtaWQ9IjE6MTIiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDM0LCAzNCwgMzQpOyBmb250LWZh bWlseTogUnViaWssIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE3cHg7IiBkYXRhLW1j ZS1zdHlsZT0iY29sb3I6ICMyMjIyMjI7Zm9udC1mYW1pbHk6IFJ1YmlrLCBBcmlhbCwgc2Fucy1z ZXJpZjtmb250LXNpemU6IDE3cHg7IiBkYXRhLWRhcmtvc2hhLWlkPSIxOjEzIj48YnIgZGF0YS1k YXJrb3NoYS1pZD0iMToxNCIgc3R5bGU9IiI+PC9zcGFuPlNpbmNlcmVseSw8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMToxNSIgc3R5bGU9IiI+SWx5YSBLb3NhcmV2PC9wPjxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjE2IiBzdHlsZT0iIj48YnIgZGF0YS1kYXJrb3NoYS1pZD0iMToxNyIgc3R5bGU9IiI+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXN0 eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYig4LCA4NywgMTY2KTsgbWFyZ2luOiAx MHB4IDBweCAxMHB4IDEwcHg7IHBhZGRpbmc6IDBweCAwcHggMHB4IDEwcHg7IiBkYXRhLWRhcmtv c2hhLWlkPSIxOjE4Ij4KCdCh0YDQtdC00LAsIDMwINC+0LrRgtGP0LHRgNGPIDIwMTksIDExOjU5 ICswMzowMCDQvtGCIFNlcmdleSBPc3RhbmV2aWNoICZsdDs8YSBocmVmPSJtYWlsdG86c2VyZ29z QHRhcmFudG9vbC5vcmciIGRhdGEtZGFya29zaGEtaWQ9IjE6MTkiIHN0eWxlPSIiPnNlcmdvc0B0 YXJhbnRvb2wub3JnPC9hPiZndDs6PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjAiIHN0eWxlPSIi PgoJPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjEiIHN0eWxlPSIiPgoJPGRpdiBpZD0iIiBkYXRh LWRhcmtvc2hhLWlkPSIxOjIyIiBzdHlsZT0iIj4KCgoKCgoKPGRpdiBjbGFzcz0ianMtaGVscGVy X21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3RmaXgganMtcmVhZG1zZy1tc2dfbWFpbHJ1X2Nzc19h dHRyaWJ1dGVfcG9zdGZpeCIgZGF0YS1kYXJrb3NoYS1pZD0iMToyMyIgc3R5bGU9IiI+Cgk8c3R5 bGUgZGF0YS1kYXJrb3NoYS1pZD0iMToyNCIgc3R5bGU9IiI+PC9zdHlsZT4KIAk8ZGl2IGRhdGEt ZGFya29zaGEtaWQ9IjE6MjUiIHN0eWxlPSIiPgoJCQoJCQogICAgICAgICAgICA8ZGl2IGlkPSJz dHlsZV8xNTcyNDI1OTgzMTQ2MTY3NDI3NV9CT0RZX21haWxydV9jc3NfYXR0cmlidXRlX3Bvc3Rm aXgiIGRhdGEtZGFya29zaGEtaWQ9IjE6MjYiIHN0eWxlPSIiPkhpITxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjI3IiBzdHlsZT0iIj4KPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MjgiIHN0eWxlPSIi PgpMR1RNLCBqdXN0IGEgZmV3IG5pdHMgaW4gY29tbWVudHMgYmVsb3c8YnIgZGF0YS1kYXJrb3No YS1pZD0iMToyOSIgc3R5bGU9IiI+CjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjMwIiBzdHlsZT0i Ij4KJmd0OyBpbmRleCA4ZDU2NWUxODkuLjEwYTVmOGQ2NCAxMDA2NDQ8YnIgZGF0YS1kYXJrb3No YS1pZD0iMTozMSIgc3R5bGU9IiI+CiZndDsgLS0tIGEvc3JjL2JveC9hbHRlci5jYzxiciBkYXRh LWRhcmtvc2hhLWlkPSIxOjMyIiBzdHlsZT0iIj4KJmd0OyArKysgYi9zcmMvYm94L2FsdGVyLmNj PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzMiIHN0eWxlPSIiPgomZ3Q7IEBAIC0xMTgsMTAgKzEx OCwxMCBAQCBhY2Nlc3NfY2hlY2tfZGRsKGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQzMl90IG9iamVj dF9pZCwgdWludDMyX3Qgb3duZXJfdWlkLDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM0IiBzdHls ZT0iIj4KJmd0OyAgfTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM1IiBzdHlsZT0iIj4KJmd0OyAg PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzYiIHN0eWxlPSIiPgomZ3Q7ICAvKio8YnIgZGF0YS1k YXJrb3NoYS1pZD0iMTozNyIgc3R5bGU9IiI+CiZndDsgLSAqIFRocm93IGFuIGV4Y2VwdGlvbiBp ZiB0aGUgZ2l2ZW4gaW5kZXggZGVmaW5pdGlvbjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjM4IiBz dHlsZT0iIj4KJmd0OyArICogUmV0dXJuIGFuIGVycm9yIGlmIHRoZSBnaXZlbiBpbmRleCBkZWZp bml0aW9uPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6MzkiIHN0eWxlPSIiPgomZ3Q7ICAgKiBpcyBp bmNvbXBhdGlibGUgd2l0aCBhIHNlcXVlbmNlLjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQwIiBz dHlsZT0iIj4KJmd0OyAgICovPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NDEiIHN0eWxlPSIiPgom Z3Q7IC1zdGF0aWMgdm9pZDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQyIiBzdHlsZT0iIj4KJmd0 OyArc3RhdGljIGludDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQzIiBzdHlsZT0iIj4KJmd0OyAg aW5kZXhfZGVmX2NoZWNrX3NlcXVlbmNlKHN0cnVjdCBpbmRleF9kZWYgKmluZGV4X2RlZiwgdWlu dDMyX3Qgc2VxdWVuY2VfZmllbGRubyw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo0NCIgc3R5bGU9 IiI+CiZndDsgIAkJCSBjb25zdCBjaGFyICpzZXF1ZW5jZV9wYXRoLCB1aW50MzJfdCBzZXF1ZW5j ZV9wYXRoX2xlbiw8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo0NSIgc3R5bGU9IiI+CiZndDsgIAkJ CSBjb25zdCBjaGFyICpzcGFjZV9uYW1lKTxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjQ2IiBzdHls ZT0iIj4KJmd0OyBAQCAtMTQyLDI0ICsxNDIsMjcgQEAgaW5kZXhfZGVmX2NoZWNrX3NlcXVlbmNl KHN0cnVjdCBpbmRleF9kZWYgKmluZGV4X2RlZiwgdWludDMyX3Qgc2VxdWVuY2VfZmllbGRubyw8 YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo0NyIgc3R5bGU9IiI+CiZndDsgIAkJfTxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjQ4IiBzdHlsZT0iIj4KJmd0OyAgCX08YnIgZGF0YS1kYXJrb3NoYS1pZD0i MTo0OSIgc3R5bGU9IiI+CiZndDsgIAlpZiAoc2VxdWVuY2VfcGFydCA9PSBOVUxMKSB7PGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6NTAiIHN0eWxlPSIiPgomZ3Q7IC0JCXRudF9yYWlzZShDbGllbnRF cnJvciwgRVJfTU9ESUZZX0lOREVYLCBpbmRleF9kZWYtJmd0O25hbWUsPGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6NTEiIHN0eWxlPSIiPgomZ3Q7IC0JCQkgIHNwYWNlX25hbWUsICJzZXF1ZW5jZSBm aWVsZCBtdXN0IGJlIGEgcGFydCBvZiAiPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTIiIHN0eWxl PSIiPgomZ3Q7IC0JCQkgICJ0aGUgaW5kZXgiKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo1MyIg c3R5bGU9IiI+CiZndDsgKwkJZGlhZ19zZXQoQ2xpZW50RXJyb3IsIEVSX01PRElGWV9JTkRFWCwg aW5kZXhfZGVmLSZndDtuYW1lLDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjU0IiBzdHlsZT0iIj4K Jmd0OyArCQkJIHNwYWNlX25hbWUsICJzZXF1ZW5jZSBmaWVsZCBtdXN0IGJlIGEgcGFydCBvZiAi PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTUiIHN0eWxlPSIiPgomZ3Q7ICsJCQkJICAgICAidGhl IGluZGV4Iik7PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NTYiIHN0eWxlPSIiPgomZ3Q7ICsJCXJl dHVybiAtMTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo1NyIgc3R5bGU9IiI+CiZndDsgIAl9PGJy IGRhdGEtZGFya29zaGEtaWQ9IjE6NTgiIHN0eWxlPSIiPgomZ3Q7ICAJZW51bSBmaWVsZF90eXBl IHR5cGUgPSBzZXF1ZW5jZV9wYXJ0LSZndDt0eXBlOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjU5 IiBzdHlsZT0iIj4KJmd0OyAgCWlmICh0eXBlICE9IEZJRUxEX1RZUEVfVU5TSUdORUQgJmFtcDsm YW1wOyB0eXBlICE9IEZJRUxEX1RZUEVfSU5URUdFUikgezxiciBkYXRhLWRhcmtvc2hhLWlkPSIx OjYwIiBzdHlsZT0iIj4KJmd0OyAtCQl0bnRfcmFpc2UoQ2xpZW50RXJyb3IsIEVSX01PRElGWV9J TkRFWCwgaW5kZXhfZGVmLSZndDtuYW1lLDxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjYxIiBzdHls ZT0iIj4KJmd0OyAtCQkJICBzcGFjZV9uYW1lLCAic2VxdWVuY2UgY2Fubm90IGJlIHVzZWQgd2l0 aCAiPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NjIiIHN0eWxlPSIiPgomZ3Q7IC0JCQkgICJhIG5v bi1pbnRlZ2VyIGtleSIpOzxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjYzIiBzdHlsZT0iIj4KJmd0 OyArCQlkaWFnX3NldChDbGllbnRFcnJvciwgRVJfTU9ESUZZX0lOREVYLCBpbmRleF9kZWYtJmd0 O25hbWUsPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NjQiIHN0eWxlPSIiPgomZ3Q7ICsJCQkgc3Bh Y2VfbmFtZSwgInNlcXVlbmNlIGNhbm5vdCBiZSB1c2VkIHdpdGggIjxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjY1IiBzdHlsZT0iIj4KJmd0OyArCQkJCSAgICAgImEgbm9uLWludGVnZXIga2V5Iik7 PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NjYiIHN0eWxlPSIiPgomZ3Q7ICsJCXJldHVybiAtMTs8 YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo2NyIgc3R5bGU9IiI+CiZndDsgIAl9PGJyIGRhdGEtZGFy a29zaGEtaWQ9IjE6NjgiIHN0eWxlPSIiPgomZ3Q7ICsJcmV0dXJuIDA7PGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6NjkiIHN0eWxlPSIiPgomZ3Q7ICB9PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6NzAi IHN0eWxlPSIiPgomZ3Q7ICA8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo3MSIgc3R5bGU9IiI+CiZn dDsgIC8qKjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjcyIiBzdHlsZT0iIj4KJmd0OyAgICogU3Vw cG9ydCBmdW5jdGlvbiBmb3IgaW5kZXhfZGVmX25ld19mcm9tX3R1cGxlKC4uKTxiciBkYXRhLWRh cmtvc2hhLWlkPSIxOjczIiBzdHlsZT0iIj4KJmd0OyAtICogQ2hlY2tzIHR1cGxlIChvZiBfaW5k ZXggc3BhY2UpIGFuZCB0aHJvd3MgYSBuaWNlIGVycm9yIGlmIGl0IGlzIGludmFsaWQ8YnIgZGF0 YS1kYXJrb3NoYS1pZD0iMTo3NCIgc3R5bGU9IiI+CiZndDsgKyAqIENoZWNrcyB0dXBsZSAob2Yg X2luZGV4IHNwYWNlKSBhbmQgc2V0cyBhIG5pY2UgZGlhZyBpZiBpdCBpcyBpbnZhbGlkPGJyIGRh dGEtZGFya29zaGEtaWQ9IjE6NzUiIHN0eWxlPSIiPgogICAgClNob3VsZCBiZSAnUmV0dXJuIGFu IGVycm9yJywgc2FtZSBhcyBmb3IgdGhlIGNhc2UgYWJvdmUuPGJyIGRhdGEtZGFya29zaGEtaWQ9 IjE6NzYiIHN0eWxlPSIiPgo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo3NyIgc3R5bGU9IiI+CiZn dDsgQEAgLTQwNjYsOCArNDA5OSw5IEBAIHNlcXVlbmNlX2ZpZWxkX2Zyb21fdHVwbGUoc3RydWN0 IHNwYWNlICpzcGFjZSwgc3RydWN0IHR1cGxlICp0dXBsZSw8YnIgZGF0YS1kYXJrb3NoYS1pZD0i MTo3OCIgc3R5bGU9IiI+CiZndDsgIAkJaWYgKHBhdGhfbGVuID09IDApPGJyIGRhdGEtZGFya29z aGEtaWQ9IjE6NzkiIHN0eWxlPSIiPgomZ3Q7ICAJCQlwYXRoX3JhdyA9IE5VTEw7PGJyIGRhdGEt ZGFya29zaGEtaWQ9IjE6ODAiIHN0eWxlPSIiPgomZ3Q7ICAJfTxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjgxIiBzdHlsZT0iIj4KJmd0OyAtCWluZGV4X2RlZl9jaGVja19zZXF1ZW5jZShway0mZ3Q7 ZGVmLCBmaWVsZG5vLCBwYXRoX3JhdywgcGF0aF9sZW4sPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6 ODIiIHN0eWxlPSIiPgomZ3Q7IC0JCQkJIHNwYWNlX25hbWUoc3BhY2UpKTs8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMTo4MyIgc3R5bGU9IiI+CiZndDsgKwlpZiAoaW5kZXhfZGVmX2NoZWNrX3NlcXVl bmNlKHBrLSZndDtkZWYsIGZpZWxkbm8sIHBhdGhfcmF3LCBwYXRoX2xlbiw8YnIgZGF0YS1kYXJr b3NoYS1pZD0iMTo4NCIgc3R5bGU9IiI+CiZndDsgKwkJCQkgc3BhY2VfbmFtZShzcGFjZSkpICE9 IDApPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6ODUiIHN0eWxlPSIiPgomZ3Q7ICsJCWRpYWdfcmFp c2UoKTs8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo4NiIgc3R5bGU9IiI+CjxiciBkYXRhLWRhcmtv c2hhLWlkPSIxOjg3IiBzdHlsZT0iIj4KSSB3b25kZXIgd2h5IHdlIGxlYXZlIHNvbWUgZGlhZ19y YWlzZSgpIGFuZCBub3QgZGlhZ19zZXQoKSBwbHVzIHJldHVybjxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjg4IiBzdHlsZT0iIj4KLTEgb3IgTlVMTD88YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo4OSIg c3R5bGU9IiI+CjxiciBkYXRhLWRhcmtvc2hhLWlkPSIxOjkwIiBzdHlsZT0iIj4KPGJyIGRhdGEt ZGFya29zaGEtaWQ9IjE6OTEiIHN0eWxlPSIiPgpyZWdhcmRzLDxiciBkYXRhLWRhcmtvc2hhLWlk PSIxOjkyIiBzdHlsZT0iIj4KU2VyZ29zPGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6OTMiIHN0eWxl PSIiPgo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo5NCIgc3R5bGU9IiI+CjwvZGl2PgogICAgICAg ICAgICAKICAgICAgICAKCQkKCTwvZGl2PgoKCQo8L2Rpdj4KCgo8L2Rpdj4KPC9ibG9ja3F1b3Rl Pgo8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo5NSIgc3R5bGU9IiI+CjxiciBkYXRhLWRhcmtvc2hh LWlkPSIxOjk2IiBzdHlsZT0iIj4tLSA8YnIgZGF0YS1kYXJrb3NoYS1pZD0iMTo5NyIgc3R5bGU9 IiI+SWx5YSBLb3NhcmV2PGJyIGRhdGEtZGFya29zaGEtaWQ9IjE6OTgiIHN0eWxlPSIiPgo8L2Rp dj48L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgCgkJPGJhc2UgdGFyZ2V0PSJfc2VsZiIgaHJl Zj0iaHR0cHM6Ly9lLm1haWwucnUvIiBkYXRhLWRhcmtvc2hhLWlkPSIxOjk5IiBzdHlsZT0iIj4K CTwvZGl2PgoKCQo8L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PC9kaXY+PC9CT0RZPjwvSFRNTD4K ----ALT--d9aa2b4ae13e45a483ee81e7cd74c8341572498125--