From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2584 invoked by alias); 7 Dec 2012 14:02:52 -0000 Received: (qmail 2491 invoked by uid 22791); 7 Dec 2012 14:02:48 -0000 X-SWARE-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail4-relais-sop.national.inria.fr (HELO mail4-relais-sop.national.inria.fr) (192.134.164.105) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 07 Dec 2012 14:02:30 +0000 Received: from stedding.saclay.inria.fr ([193.55.250.194]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 07 Dec 2012 15:02:26 +0100 Received: from glisse (helo=localhost) by stedding.saclay.inria.fr with local-esmtp (Exim 4.80) (envelope-from ) id 1TgyVW-0002c9-Gc; Fri, 07 Dec 2012 15:02:26 +0100 Date: Fri, 07 Dec 2012 14:02:00 -0000 From: Marc Glisse To: Michael Zolotukhin cc: Kirill Yukhin , "H.J. Lu" , Uros Bizjak , gcc-patches List , rth@redhat.com Subject: Re: [i386] scalar ops that preserve the high part of a vector In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1656204508-1354888946=:9922" Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-12/txt/msg00492.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1656204508-1354888946=:9922 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-length: 774 On Fri, 7 Dec 2012, Michael Zolotukhin wrote: > By the way, if we decide to have one pattern for V4SF instructions and > another for V2DF, we could try to use recently introduced define_subst > here. It won't reduce number of actual patterns (I mean number of > patterns after iterators and subst expanding), but it could help to > make sse.md more compact. Here is a version of the patch with define_subst. This helps make sse.md more compact indeed (well, the define_subst takes space, but it will already be there for mult, div, etc). One side effect is that in the expanded .md file, we have both variants of the V2DF operation (I switched the builtins to use the _vconcat version). (not tested beyond "make dumpmd" and a quick look at that dump) -- Marc Glisse --8323329-1656204508-1354888946=:9922 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p3 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p3 Content-length: 25629 SW5kZXg6IHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NDg1NS0yLmMN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB0ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3ByNTQ4NTUtMi5jCShyZXZpc2lvbiAwKQ0KKysrIHRlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NDg1NS0yLmMJKHJldmlzaW9uIDAp DQpAQCAtMCwwICsxLDE4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1PIC1tc3NlIiB9ICovDQorDQordHlwZWRl ZiBmbG9hdCB2ZWMgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpKSk7 DQorDQordmVjIGYgKHZlYyB4KQ0KK3sNCisgIHhbMF0gKz0gMjsNCisgIHJl dHVybiB4Ow0KK30NCisNCit2ZWMgZyAodmVjIHgpDQorew0KKyAgeFswXSAt PSAxOw0KKyAgcmV0dXJuIHg7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3QgIm1vdiIgfSB9ICovDQoNClByb3BlcnR5IGNo YW5nZXMgb246IHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NDg1NS0y LmMNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCkFkZGVkOiBzdm46a2V5d29y ZHMNCiAgICsgQXV0aG9yIERhdGUgSWQgUmV2aXNpb24gVVJMDQpBZGRlZDog c3ZuOmVvbC1zdHlsZQ0KICAgKyBuYXRpdmUNCg0KSW5kZXg6IHRlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvcHI1NDg1NS0xLmMNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCi0tLSB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTQ4 NTUtMS5jCShyZXZpc2lvbiAwKQ0KKysrIHRlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvcHI1NDg1NS0xLmMJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDE4 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1PIC1tc3NlMiIgfSAqLw0KKw0KK3R5cGVkZWYgZG91YmxlIHZlYyBf X2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNikpKTsNCisNCit2ZWMgZiAo dmVjIHgpDQorew0KKyAgeFswXSArPSAyOw0KKyAgcmV0dXJuIHg7DQorfQ0K Kw0KK3ZlYyBnICh2ZWMgeCkNCit7DQorICB4WzBdIC09IDE7DQorICByZXR1 cm4geDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCAibW92IiB9IH0gKi8NCg0KUHJvcGVydHkgY2hhbmdlcyBvbjogdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU0ODU1LTEuYw0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgbmF0 aXZlDQpBZGRlZDogc3ZuOmtleXdvcmRzDQogICArIEF1dGhvciBEYXRlIElk IFJldmlzaW9uIFVSTA0KDQpJbmRleDogY29uZmlnL2kzODYvaTM4Ni5jDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQotLS0gY29uZmlnL2kzODYvaTM4Ni5j CShyZXZpc2lvbiAxOTQzMDEpDQorKysgY29uZmlnL2kzODYvaTM4Ni5jCSh3 b3JraW5nIGNvcHkpDQpAQCAtMjcwNzAsMjIgKzI3MDcwLDIyIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbg0KICAgeyBPUFRJ T05fTUFTS19JU0FfU1NFLCBDT0RFX0ZPUl9zc2VfY3Z0dHBzMnBpLCAiX19i dWlsdGluX2lhMzJfY3Z0dHBzMnBpIiwgSVg4Nl9CVUlMVElOX0NWVFRQUzJQ SSwgVU5LTk9XTiwgKGludCkgVjJTSV9GVFlQRV9WNFNGIH0sDQogICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UsIENPREVfRk9SX3NzZV9jdnR0c3Myc2ksICJf X2J1aWx0aW5faWEzMl9jdnR0c3Myc2kiLCBJWDg2X0JVSUxUSU5fQ1ZUVFNT MlNJLCBVTktOT1dOLCAoaW50KSBJTlRfRlRZUEVfVjRTRiB9LA0KICAgeyBP UFRJT05fTUFTS19JU0FfU1NFIHwgT1BUSU9OX01BU0tfSVNBXzY0QklULCBD T0RFX0ZPUl9zc2VfY3Z0dHNzMnNpcSwgIl9fYnVpbHRpbl9pYTMyX2N2dHRz czJzaTY0IiwgSVg4Nl9CVUlMVElOX0NWVFRTUzJTSTY0LCBVTktOT1dOLCAo aW50KSBJTlQ2NF9GVFlQRV9WNFNGIH0sDQogDQogICB7IE9QVElPTl9NQVNL X0lTQV9TU0UsIENPREVfRk9SX3NzZV9zaHVmcHMsICJfX2J1aWx0aW5faWEz Ml9zaHVmcHMiLCBJWDg2X0JVSUxUSU5fU0hVRlBTLCBVTktOT1dOLCAoaW50 KSBWNFNGX0ZUWVBFX1Y0U0ZfVjRTRl9JTlQgfSwNCiANCiAgIHsgT1BUSU9O X01BU0tfSVNBX1NTRSwgQ09ERV9GT1JfYWRkdjRzZjMsICJfX2J1aWx0aW5f aWEzMl9hZGRwcyIsIElYODZfQlVJTFRJTl9BRERQUywgVU5LTk9XTiwgKGlu dCkgVjRTRl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tf SVNBX1NTRSwgQ09ERV9GT1Jfc3VidjRzZjMsICJfX2J1aWx0aW5faWEzMl9z dWJwcyIsIElYODZfQlVJTFRJTl9TVUJQUywgVU5LTk9XTiwgKGludCkgVjRT Rl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tfSVNBX1NT RSwgQ09ERV9GT1JfbXVsdjRzZjMsICJfX2J1aWx0aW5faWEzMl9tdWxwcyIs IElYODZfQlVJTFRJTl9NVUxQUywgVU5LTk9XTiwgKGludCkgVjRTRl9GVFlQ RV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRSwgQ09E RV9GT1Jfc3NlX2RpdnY0c2YzLCAiX19idWlsdGluX2lhMzJfZGl2cHMiLCBJ WDg2X0JVSUxUSU5fRElWUFMsIFVOS05PV04sIChpbnQpIFY0U0ZfRlRZUEVf VjRTRl9WNFNGIH0sDQotICB7IE9QVElPTl9NQVNLX0lTQV9TU0UsIENPREVf Rk9SX3NzZV92bWFkZHY0c2YzLCAgIl9fYnVpbHRpbl9pYTMyX2FkZHNzIiwg SVg4Nl9CVUlMVElOX0FERFNTLCBVTktOT1dOLCAoaW50KSBWNFNGX0ZUWVBF X1Y0U0ZfVjRTRiB9LA0KLSAgeyBPUFRJT05fTUFTS19JU0FfU1NFLCBDT0RF X0ZPUl9zc2Vfdm1zdWJ2NHNmMywgICJfX2J1aWx0aW5faWEzMl9zdWJzcyIs IElYODZfQlVJTFRJTl9TVUJTUywgVU5LTk9XTiwgKGludCkgVjRTRl9GVFlQ RV9WNFNGX1Y0U0YgfSwNCisgIHsgT1BUSU9OX01BU0tfSVNBX1NTRSwgQ09E RV9GT1Jfc3NlX3ZtYWRkdjRzZjMsICAiX19idWlsdGluX2lhMzJfYWRkc3Mi LCBJWDg2X0JVSUxUSU5fQUREU1MsIFVOS05PV04sIChpbnQpIFY0U0ZfRlRZ UEVfVjRTRl9GTE9BVCB9LA0KKyAgeyBPUFRJT05fTUFTS19JU0FfU1NFLCBD T0RFX0ZPUl9zc2Vfdm1zdWJ2NHNmMywgICJfX2J1aWx0aW5faWEzMl9zdWJz cyIsIElYODZfQlVJTFRJTl9TVUJTUywgVU5LTk9XTiwgKGludCkgVjRTRl9G VFlQRV9WNFNGX0ZMT0FUIH0sDQogICB7IE9QVElPTl9NQVNLX0lTQV9TU0Us IENPREVfRk9SX3NzZV92bW11bHY0c2YzLCAgIl9fYnVpbHRpbl9pYTMyX211 bHNzIiwgSVg4Nl9CVUlMVElOX01VTFNTLCBVTktOT1dOLCAoaW50KSBWNFNG X0ZUWVBFX1Y0U0ZfVjRTRiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NF LCBDT0RFX0ZPUl9zc2Vfdm1kaXZ2NHNmMywgICJfX2J1aWx0aW5faWEzMl9k aXZzcyIsIElYODZfQlVJTFRJTl9ESVZTUywgVU5LTk9XTiwgKGludCkgVjRT Rl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiANCiAgIHsgT1BUSU9OX01BU0tfSVNB X1NTRSwgQ09ERV9GT1Jfc3NlX21hc2tjbXB2NHNmMywgIl9fYnVpbHRpbl9p YTMyX2NtcGVxcHMiLCBJWDg2X0JVSUxUSU5fQ01QRVFQUywgRVEsIChpbnQp IFY0U0ZfRlRZUEVfVjRTRl9WNFNGIH0sDQogICB7IE9QVElPTl9NQVNLX0lT QV9TU0UsIENPREVfRk9SX3NzZV9tYXNrY21wdjRzZjMsICJfX2J1aWx0aW5f aWEzMl9jbXBsdHBzIiwgSVg4Nl9CVUlMVElOX0NNUExUUFMsIExULCAoaW50 KSBWNFNGX0ZUWVBFX1Y0U0ZfVjRTRiB9LA0KICAgeyBPUFRJT05fTUFTS19J U0FfU1NFLCBDT0RFX0ZPUl9zc2VfbWFza2NtcHY0c2YzLCAiX19idWlsdGlu X2lhMzJfY21wbGVwcyIsIElYODZfQlVJTFRJTl9DTVBMRVBTLCBMRSwgKGlu dCkgVjRTRl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tf SVNBX1NTRSwgQ09ERV9GT1Jfc3NlX21hc2tjbXB2NHNmMywgIl9fYnVpbHRp bl9pYTMyX2NtcGd0cHMiLCBJWDg2X0JVSUxUSU5fQ01QR1RQUywgTFQsIChp bnQpIFY0U0ZfRlRZUEVfVjRTRl9WNFNGX1NXQVAgfSwNCiAgIHsgT1BUSU9O X01BU0tfSVNBX1NTRSwgQ09ERV9GT1Jfc3NlX21hc2tjbXB2NHNmMywgIl9f YnVpbHRpbl9pYTMyX2NtcGdlcHMiLCBJWDg2X0JVSUxUSU5fQ01QR0VQUywg TEUsIChpbnQpIFY0U0ZfRlRZUEVfVjRTRl9WNFNGX1NXQVAgfSwNCiAgIHsg T1BUSU9OX01BU0tfSVNBX1NTRSwgQ09ERV9GT1Jfc3NlX21hc2tjbXB2NHNm MywgIl9fYnVpbHRpbl9pYTMyX2NtcHVub3JkcHMiLCBJWDg2X0JVSUxUSU5f Q01QVU5PUkRQUywgVU5PUkRFUkVELCAoaW50KSBWNFNGX0ZUWVBFX1Y0U0Zf VjRTRiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFLCBDT0RFX0ZPUl9z c2VfbWFza2NtcHY0c2YzLCAiX19idWlsdGluX2lhMzJfY21wbmVxcHMiLCBJ WDg2X0JVSUxUSU5fQ01QTkVRUFMsIE5FLCAoaW50KSBWNFNGX0ZUWVBFX1Y0 U0ZfVjRTRiB9LA0KQEAgLTI3MTc0LDIyICsyNzE3NCwyMiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24NCiAgIHsgT1BUSU9O X01BU0tfSVNBX1NTRTIgfCBPUFRJT05fTUFTS19JU0FfNjRCSVQsIENPREVf Rk9SX3NzZTJfY3Z0dHNkMnNpcSwgIl9fYnVpbHRpbl9pYTMyX2N2dHRzZDJz aTY0IiwgSVg4Nl9CVUlMVElOX0NWVFRTRDJTSTY0LCBVTktOT1dOLCAoaW50 KSBJTlQ2NF9GVFlQRV9WMkRGIH0sDQogDQogICB7IE9QVElPTl9NQVNLX0lT QV9TU0UyLCBDT0RFX0ZPUl9zc2UyX2N2dHBzMmRxLCAiX19idWlsdGluX2lh MzJfY3Z0cHMyZHEiLCBJWDg2X0JVSUxUSU5fQ1ZUUFMyRFEsIFVOS05PV04s IChpbnQpIFY0U0lfRlRZUEVfVjRTRiB9LA0KICAgeyBPUFRJT05fTUFTS19J U0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl9jdnRwczJwZCwgIl9fYnVpbHRpbl9p YTMyX2N2dHBzMnBkIiwgSVg4Nl9CVUlMVElOX0NWVFBTMlBELCBVTktOT1dO LCAoaW50KSBWMkRGX0ZUWVBFX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tf SVNBX1NTRTIsIENPREVfRk9SX2ZpeF90cnVuY3Y0c2Z2NHNpMiwgIl9fYnVp bHRpbl9pYTMyX2N2dHRwczJkcSIsIElYODZfQlVJTFRJTl9DVlRUUFMyRFEs IFVOS05PV04sIChpbnQpIFY0U0lfRlRZUEVfVjRTRiB9LA0KIA0KICAgeyBP UFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1JfYWRkdjJkZjMsICJfX2J1 aWx0aW5faWEzMl9hZGRwZCIsIElYODZfQlVJTFRJTl9BRERQRCwgVU5LTk9X TiwgKGludCkgVjJERl9GVFlQRV9WMkRGX1YyREYgfSwNCiAgIHsgT1BUSU9O X01BU0tfSVNBX1NTRTIsIENPREVfRk9SX3N1YnYyZGYzLCAiX19idWlsdGlu X2lhMzJfc3VicGQiLCBJWDg2X0JVSUxUSU5fU1VCUEQsIFVOS05PV04sIChp bnQpIFYyREZfRlRZUEVfVjJERl9WMkRGIH0sDQogICB7IE9QVElPTl9NQVNL X0lTQV9TU0UyLCBDT0RFX0ZPUl9tdWx2MmRmMywgIl9fYnVpbHRpbl9pYTMy X211bHBkIiwgSVg4Nl9CVUlMVElOX01VTFBELCBVTktOT1dOLCAoaW50KSBW MkRGX0ZUWVBFX1YyREZfVjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0Ff U1NFMiwgQ09ERV9GT1JfZGl2djJkZjMsICJfX2J1aWx0aW5faWEzMl9kaXZw ZCIsIElYODZfQlVJTFRJTl9ESVZQRCwgVU5LTk9XTiwgKGludCkgVjJERl9G VFlQRV9WMkRGX1YyREYgfSwNCi0gIHsgT1BUSU9OX01BU0tfSVNBX1NTRTIs IENPREVfRk9SX3NzZTJfdm1hZGR2MmRmMywgICJfX2J1aWx0aW5faWEzMl9h ZGRzZCIsIElYODZfQlVJTFRJTl9BRERTRCwgVU5LTk9XTiwgKGludCkgVjJE Rl9GVFlQRV9WMkRGX1YyREYgfSwNCi0gIHsgT1BUSU9OX01BU0tfSVNBX1NT RTIsIENPREVfRk9SX3NzZTJfdm1zdWJ2MmRmMywgICJfX2J1aWx0aW5faWEz Ml9zdWJzZCIsIElYODZfQlVJTFRJTl9TVUJTRCwgVU5LTk9XTiwgKGludCkg VjJERl9GVFlQRV9WMkRGX1YyREYgfSwNCisgIHsgT1BUSU9OX01BU0tfSVNB X1NTRTIsIENPREVfRk9SX3NzZTJfdm1hZGR2MmRmM192Y29uY2F0LCAgIl9f YnVpbHRpbl9pYTMyX2FkZHNkIiwgSVg4Nl9CVUlMVElOX0FERFNELCBVTktO T1dOLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfRE9VQkxFIH0sDQorICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9zc2UyX3Ztc3VidjJkZjNf dmNvbmNhdCwgICJfX2J1aWx0aW5faWEzMl9zdWJzZCIsIElYODZfQlVJTFRJ Tl9TVUJTRCwgVU5LTk9XTiwgKGludCkgVjJERl9GVFlQRV9WMkRGX0RPVUJM RSB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3Nl Ml92bW11bHYyZGYzLCAgIl9fYnVpbHRpbl9pYTMyX211bHNkIiwgSVg4Nl9C VUlMVElOX01VTFNELCBVTktOT1dOLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZf VjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jf c3NlMl92bWRpdnYyZGYzLCAgIl9fYnVpbHRpbl9pYTMyX2RpdnNkIiwgSVg4 Nl9CVUlMVElOX0RJVlNELCBVTktOT1dOLCAoaW50KSBWMkRGX0ZUWVBFX1Yy REZfVjJERiB9LA0KIA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09E RV9GT1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9jbXBl cXBkIiwgSVg4Nl9CVUlMVElOX0NNUEVRUEQsIEVRLCAoaW50KSBWMkRGX0ZU WVBFX1YyREZfVjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwg Q09ERV9GT1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9j bXBsdHBkIiwgSVg4Nl9CVUlMVElOX0NNUExUUEQsIExULCAoaW50KSBWMkRG X0ZUWVBFX1YyREZfVjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NF MiwgQ09ERV9GT1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEz Ml9jbXBsZXBkIiwgSVg4Nl9CVUlMVElOX0NNUExFUEQsIExFLCAoaW50KSBW MkRGX0ZUWVBFX1YyREZfVjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0Ff U1NFMiwgQ09ERV9GT1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5f aWEzMl9jbXBndHBkIiwgSVg4Nl9CVUlMVElOX0NNUEdUUEQsIExULCAoaW50 KSBWMkRGX0ZUWVBFX1YyREZfVjJERl9TV0FQIH0sDQogICB7IE9QVElPTl9N QVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9zc2UyX21hc2tjbXB2MmRmMywgIl9f YnVpbHRpbl9pYTMyX2NtcGdlcGQiLCBJWDg2X0JVSUxUSU5fQ01QR0VQRCwg TEUsIChpbnQpIFYyREZfRlRZUEVfVjJERl9WMkRGX1NXQVB9LA0KICAgeyBP UFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl9tYXNrY21wdjJk ZjMsICJfX2J1aWx0aW5faWEzMl9jbXB1bm9yZHBkIiwgSVg4Nl9CVUlMVElO X0NNUFVOT1JEUEQsIFVOT1JERVJFRCwgKGludCkgVjJERl9GVFlQRV9WMkRG X1YyREYgfSwNCiAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRTIsIENPREVfRk9S X3NzZTJfbWFza2NtcHYyZGYzLCAiX19idWlsdGluX2lhMzJfY21wbmVxcGQi LCBJWDg2X0JVSUxUSU5fQ01QTkVRUEQsIE5FLCAoaW50KSBWMkRGX0ZUWVBF X1YyREZfVjJERiB9LA0KQEAgLTMwODAxLDM0ICszMDgwMSwzNiBAQCBpeDg2 X2V4cGFuZF9hcmdzX2J1aWx0aW4gKGNvbnN0IHN0cnVjdCBiDQogICAgIGNh c2UgVjRISV9GVFlQRV9WOFFJX1Y4UUk6DQogICAgIGNhc2UgVjRISV9GVFlQ RV9WMlNJX1YyU0k6DQogICAgIGNhc2UgVjRERl9GVFlQRV9WNERGX1Y0REY6 DQogICAgIGNhc2UgVjRERl9GVFlQRV9WNERGX1Y0REk6DQogICAgIGNhc2Ug VjRTRl9GVFlQRV9WNFNGX1Y0U0Y6DQogICAgIGNhc2UgVjRTRl9GVFlQRV9W NFNGX1Y0U0k6DQogICAgIGNhc2UgVjRTRl9GVFlQRV9WNFNGX1YyU0k6DQog ICAgIGNhc2UgVjRTRl9GVFlQRV9WNFNGX1YyREY6DQogICAgIGNhc2UgVjRT Rl9GVFlQRV9WNFNGX0RJOg0KICAgICBjYXNlIFY0U0ZfRlRZUEVfVjRTRl9T SToNCisgICAgY2FzZSBWNFNGX0ZUWVBFX1Y0U0ZfRkxPQVQ6DQogICAgIGNh c2UgVjJESV9GVFlQRV9WMkRJX1YyREk6DQogICAgIGNhc2UgVjJESV9GVFlQ RV9WMTZRSV9WMTZRSToNCiAgICAgY2FzZSBWMkRJX0ZUWVBFX1Y0U0lfVjRT SToNCiAgICAgY2FzZSBWMlVESV9GVFlQRV9WNFVTSV9WNFVTSToNCiAgICAg Y2FzZSBWMkRJX0ZUWVBFX1YyRElfVjE2UUk6DQogICAgIGNhc2UgVjJESV9G VFlQRV9WMkRGX1YyREY6DQogICAgIGNhc2UgVjJTSV9GVFlQRV9WMlNJX1Yy U0k6DQogICAgIGNhc2UgVjJTSV9GVFlQRV9WNEhJX1Y0SEk6DQogICAgIGNh c2UgVjJTSV9GVFlQRV9WMlNGX1YyU0Y6DQogICAgIGNhc2UgVjJERl9GVFlQ RV9WMkRGX1YyREY6DQogICAgIGNhc2UgVjJERl9GVFlQRV9WMkRGX1Y0U0Y6 DQogICAgIGNhc2UgVjJERl9GVFlQRV9WMkRGX1YyREk6DQogICAgIGNhc2Ug VjJERl9GVFlQRV9WMkRGX0RJOg0KICAgICBjYXNlIFYyREZfRlRZUEVfVjJE Rl9TSToNCisgICAgY2FzZSBWMkRGX0ZUWVBFX1YyREZfRE9VQkxFOg0KICAg ICBjYXNlIFYyU0ZfRlRZUEVfVjJTRl9WMlNGOg0KICAgICBjYXNlIFYxRElf RlRZUEVfVjFESV9WMURJOg0KICAgICBjYXNlIFYxRElfRlRZUEVfVjhRSV9W OFFJOg0KICAgICBjYXNlIFYxRElfRlRZUEVfVjJTSV9WMlNJOg0KICAgICBj YXNlIFYzMlFJX0ZUWVBFX1YxNkhJX1YxNkhJOg0KICAgICBjYXNlIFYxNkhJ X0ZUWVBFX1Y4U0lfVjhTSToNCiAgICAgY2FzZSBWMzJRSV9GVFlQRV9WMzJR SV9WMzJRSToNCiAgICAgY2FzZSBWMTZISV9GVFlQRV9WMzJRSV9WMzJRSToN CiAgICAgY2FzZSBWMTZISV9GVFlQRV9WMTZISV9WMTZISToNCiAgICAgY2Fz ZSBWOFNJX0ZUWVBFX1Y0REZfVjRERjoNCkluZGV4OiBjb25maWcvaTM4Ni94 bW1pbnRyaW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGNvbmZp Zy9pMzg2L3htbWludHJpbi5oCShyZXZpc2lvbiAxOTQzMDEpDQorKysgY29u ZmlnL2kzODYveG1taW50cmluLmgJKHdvcmtpbmcgY29weSkNCkBAIC05Miwy NyArOTIsMjcgQEAgX21tX3NldHplcm9fcHMgKHZvaWQpDQogICByZXR1cm4g X19leHRlbnNpb25fXyAoX19tMTI4KXsgMC4wZiwgMC4wZiwgMC4wZiwgMC4w ZiB9Ow0KIH0NCiANCiAvKiBQZXJmb3JtIHRoZSByZXNwZWN0aXZlIG9wZXJh dGlvbiBvbiB0aGUgbG93ZXIgU1BGUCAoc2luZ2xlLXByZWNpc2lvbg0KICAg IGZsb2F0aW5nLXBvaW50KSB2YWx1ZXMgb2YgQSBhbmQgQjsgdGhlIHVwcGVy IHRocmVlIFNQRlAgdmFsdWVzIGFyZQ0KICAgIHBhc3NlZCB0aHJvdWdoIGZy b20gQS4gICovDQogDQogZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJp YnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkNCiBfbW1fYWRkX3NzIChfX20xMjggX19BLCBfX20x MjggX19CKQ0KIHsNCi0gIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEz Ml9hZGRzcyAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKTsNCisgIHJldHVy biAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9hZGRzcyAoKF9fdjRzZilfX0Es IF9fQlswXSk7DQogfQ0KIA0KIGV4dGVybiBfX2lubGluZSBfX20xMjggX19h dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpDQogX21tX3N1Yl9zcyAoX19tMTI4IF9fQSwg X19tMTI4IF9fQikNCiB7DQotICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGlu X2lhMzJfc3Vic3MgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQik7DQorICBy ZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc3Vic3MgKChfX3Y0c2Yp X19BLCBfX0JbMF0pOw0KIH0NCiANCiBleHRlcm4gX19pbmxpbmUgX19tMTI4 IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQ0KIF9tbV9tdWxfc3MgKF9fbTEyOCBf X0EsIF9fbTEyOCBfX0IpDQogew0KICAgcmV0dXJuIChfX20xMjgpIF9fYnVp bHRpbl9pYTMyX211bHNzICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpOw0K IH0NCiANCiBleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQ0KIF9tbV9kaXZfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0Ip DQpJbmRleDogY29uZmlnL2kzODYvZW1taW50cmluLmgNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBjb25maWcvaTM4Ni9lbW1pbnRyaW4uaAkocmV2 aXNpb24gMTk0MzAxKQ0KKysrIGNvbmZpZy9pMzg2L2VtbWludHJpbi5oCSh3 b3JraW5nIGNvcHkpDQpAQCAtMjI2LDMzICsyMjYsMzMgQEAgX21tX2N2dHNp MTI4X3NpNjR4IChfX20xMjhpIF9fQSkNCiANCiBleHRlcm4gX19pbmxpbmUg X19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiBfbW1fYWRkX3BkIChf X20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpDQogew0KICAgcmV0dXJuIChfX20x MjhkKV9fYnVpbHRpbl9pYTMyX2FkZHBkICgoX192MmRmKV9fQSwgKF9fdjJk ZilfX0IpOw0KIH0NCiANCiBleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkNCiBfbW1fYWRkX3NkIChfX20xMjhkIF9fQSwg X19tMTI4ZCBfX0IpDQogew0KLSAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRp bl9pYTMyX2FkZHNkICgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IpOw0KKyAg cmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHNkICgoX192MmRm KV9fQSwgX19CWzBdKTsNCiB9DQogDQogZXh0ZXJuIF9faW5saW5lIF9fbTEy OGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogX21tX3N1Yl9wZCAoX19tMTI4 ZCBfX0EsIF9fbTEyOGQgX19CKQ0KIHsNCiAgIHJldHVybiAoX19tMTI4ZClf X2J1aWx0aW5faWEzMl9zdWJwZCAoKF9fdjJkZilfX0EsIChfX3YyZGYpX19C KTsNCiB9DQogDQogZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1 dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpDQogX21tX3N1Yl9zZCAoX19tMTI4ZCBfX0EsIF9fbTEy OGQgX19CKQ0KIHsNCi0gIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEz Ml9zdWJzZCAoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CKTsNCisgIHJldHVy biAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJzZCAoKF9fdjJkZilfX0Es IF9fQlswXSk7DQogfQ0KIA0KIGV4dGVybiBfX2lubGluZSBfX20xMjhkIF9f YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQ0KIF9tbV9tdWxfcGQgKF9fbTEyOGQgX19B LCBfX20xMjhkIF9fQikNCiB7DQogICByZXR1cm4gKF9fbTEyOGQpX19idWls dGluX2lhMzJfbXVscGQgKChfX3YyZGYpX19BLCAoX192MmRmKV9fQik7DQog fQ0KIA0KIGV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQ0KIF9tbV9tdWxfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9f QikNCkluZGV4OiBjb25maWcvaTM4Ni9zc2UubWQNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCi0tLSBjb25maWcvaTM4Ni9zc2UubWQJKHJldmlzaW9uIDE5 NDMwMSkNCisrKyBjb25maWcvaTM4Ni9zc2UubWQJKHdvcmtpbmcgY29weSkN CkBAIC00MDQsMjAgKzQwNCwzNyBAQA0KIA0KIDs7IE1peC1uLW1hdGNoDQog KGRlZmluZV9tb2RlX2l0ZXJhdG9yIEFWWDI1Nk1PREUyUCBbVjhTSSBWOFNG IFY0REZdKQ0KIA0KIDs7IE1hcHBpbmcgb2YgaW1tZWRpYXRlIGJpdHMgZm9y IGJsZW5kIGluc3RydWN0aW9ucw0KIChkZWZpbmVfbW9kZV9hdHRyIGJsZW5k Yml0cw0KICAgWyhWOFNGICIyNTUiKSAoVjRTRiAiMTUiKSAoVjRERiAiMTUi KSAoVjJERiAiMyIpXSkNCiANCiA7OyBQYXR0ZXJucyB3aG9zZSBuYW1lIGJl Z2lucyB3aXRoICJzc2V7LDIsM31fIiBhcmUgaW52b2tlZCBieSBpbnRyaW5z aWNzLg0KIA0KKzs7IFN1YnN0aXR1dGlvbnMNCisNCisoZGVmaW5lX3N1YnN0 ICJyZXBsYWNlX3ZlY19tZXJnZV93aXRoX3ZlY19jb25jYXQiDQorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgIiIgIiIpDQorCSh2ZWNfbWVyZ2U6 VjJERg0KKwkgICh2ZWNfZHVwbGljYXRlOlYyREYgKG1hdGNoX29wZXJhbmQ6 REYgMiAiIiAiIikpDQorCSAgKG1hdGNoX29wZXJhbmQ6VjJERiAxICIiICIi KQ0KKwkgIChjb25zdF9pbnQgMSkpKV0NCisgICJUQVJHRVRfU1NFMiINCisg IFsoc2V0IChtYXRjaF9kdXAgMCkNCisJKHZlY19jb25jYXQ6VjJERg0KKwkg IChtYXRjaF9kdXAgMikNCisJICAodmVjX3NlbGVjdDpERiAobWF0Y2hfZHVw IDEpIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKV0pKSkpXSkNCisNCisoZGVm aW5lX3N1YnN0X2F0dHIgInZlY19tZXJnZV9vcl9jb25jYXQiICJyZXBsYWNl X3ZlY19tZXJnZV93aXRoX3ZlY19jb25jYXQiDQorCQkgICAiIiAiX3Zjb25j YXQiKQ0KKw0KIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ow0KIDs7DQogOzsg TW92ZSBwYXR0ZXJucw0KIDs7DQogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 DQogDQogOzsgQWxsIG9mIHRoZXNlIHBhdHRlcm5zIGFyZSBlbmFibGVkIGZv ciBTU0UxIGFzIHdlbGwgYXMgU1NFMi4NCiA7OyBUaGlzIGlzIGVzc2VudGlh bCBmb3IgbWFpbnRhaW5pbmcgc3RhYmxlIGNhbGxpbmcgY29udmVudGlvbnMu DQogDQogKGRlZmluZV9leHBhbmQgIm1vdjxtb2RlPiINCkBAIC04NTUsMjYg Kzg3MiwyOSBAQA0KIAkgIChtYXRjaF9vcGVyYW5kOlZGIDIgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAieG0seG0iKSkpXQ0KICAgIlRBUkdFVF9TU0UgJiYg aXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKDxDT0RFPiwgPE1PREU+bW9kZSwg b3BlcmFuZHMpIg0KICAgIkANCiAgICA8cGx1c21pbnVzX21uZW1vbmljPjxz c2Vtb2Rlc3VmZml4Plx0eyUyLCAlMHwlMCwgJTJ9DQogICAgdjxwbHVzbWlu dXNfbW5lbW9uaWM+PHNzZW1vZGVzdWZmaXg+XHR7JTIsICUxLCAlMHwlMCwg JTEsICUyfSINCiAgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpDQog ICAgKHNldF9hdHRyICJ0eXBlIiAic3NlYWRkIikNCiAgICAoc2V0X2F0dHIg InByZWZpeCIgIm9yaWcsdmV4IikNCiAgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKV0pDQogDQotKGRlZmluZV9pbnNuICI8c3NlPl92bTxwbHVzbWlu dXNfaW5zbj48bW9kZT4zIg0KKyhkZWZpbmVfaW5zbiAiPHNzZT5fdm08cGx1 c21pbnVzX2luc24+PG1vZGU+Mzx2ZWNfbWVyZ2Vfb3JfY29uY2F0PiINCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZGXzEyOCAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgseCIpDQogCSh2ZWNfbWVyZ2U6VkZfMTI4DQotCSAgKHBsdXNt aW51czpWRl8xMjgNCi0JICAgIChtYXRjaF9vcGVyYW5kOlZGXzEyOCAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiMCx4IikNCi0JICAgIChtYXRjaF9vcGVyYW5k OlZGXzEyOCAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIikpDQor CSAgKHZlY19kdXBsaWNhdGU6VkZfMTI4DQorCSAgICAocGx1c21pbnVzOjxz c2VzY2FsYXJtb2RlPg0KKwkgICAgICAodmVjX3NlbGVjdDo8c3Nlc2NhbGFy bW9kZT4NCisJCShtYXRjaF9vcGVyYW5kOlZGXzEyOCAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCx4IikNCisJCShwYXJhbGxlbCBbKGNvbnN0X2ludCAwKV0p KQ0KKwkgICAgICAobWF0Y2hfb3BlcmFuZDo8c3Nlc2NhbGFybW9kZT4gMiAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpKSkNCiAJICAobWF0Y2hf ZHVwIDEpDQogCSAgKGNvbnN0X2ludCAxKSkpXQ0KICAgIlRBUkdFVF9TU0Ui DQogICAiQA0KICAgIDxwbHVzbWludXNfbW5lbW9uaWM+PHNzZXNjYWxhcm1v ZGVzdWZmaXg+XHR7JTIsICUwfCUwLCAlMn0NCiAgICB2PHBsdXNtaW51c19t bmVtb25pYz48c3Nlc2NhbGFybW9kZXN1ZmZpeD5cdHslMiwgJTEsICUwfCUw LCAlMSwgJTJ9Ig0KICAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikN CiAgICAoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQ0KICAgIChzZXRfYXR0 ciAicHJlZml4IiAib3JpZyx2ZXgiKQ0KICAgIChzZXRfYXR0ciAibW9kZSIg Ijxzc2VzY2FsYXJtb2RlPiIpXSkNCkluZGV4OiBjb25maWcvaTM4Ni9pMzg2 LWJ1aWx0aW4tdHlwZXMuZGVmDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot LS0gY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLXR5cGVzLmRlZgkocmV2aXNp b24gMTk0MzAxKQ0KKysrIGNvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi10eXBl cy5kZWYJKHdvcmtpbmcgY29weSkNCkBAIC0yNjMsMjAgKzI2MywyMSBAQCBE RUZfRlVOQ1RJT05fVFlQRSAoVUlOVDY0LCBVSU5UNjQsIFVJTlQ2DQogREVG X0ZVTkNUSU9OX1RZUEUgKFVJTlQ4LCBVSU5UOCwgSU5UKQ0KIERFRl9GVU5D VElPTl9UWVBFIChWMTZRSSwgVjE2UUksIFNJKQ0KIERFRl9GVU5DVElPTl9U WVBFIChWMTZRSSwgVjE2UUksIFYxNlFJKQ0KIERFRl9GVU5DVElPTl9UWVBF IChWMTZRSSwgVjhISSwgVjhISSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjFE SSwgVjFESSwgU0kpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYxREksIFYxREks IFYxREkpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYxREksIFYyU0ksIFYyU0kp DQogREVGX0ZVTkNUSU9OX1RZUEUgKFYxREksIFY4UUksIFY4UUkpDQogREVG X0ZVTkNUSU9OX1RZUEUgKFYyREYsIFBDVjJERiwgVjJESSkNCiBERUZfRlVO Q1RJT05fVFlQRSAoVjJERiwgVjJERiwgREkpDQorREVGX0ZVTkNUSU9OX1RZ UEUgKFYyREYsIFYyREYsIERPVUJMRSkNCiBERUZfRlVOQ1RJT05fVFlQRSAo VjJERiwgVjJERiwgSU5UKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWMkRGLCBW MkRGLCBQQ0RPVUJMRSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjJERiwgVjJE RiwgU0kpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYyREYsIFYyREYsIFYyREYp DQogREVGX0ZVTkNUSU9OX1RZUEUgKFYyREYsIFYyREYsIFYyREkpDQogREVG X0ZVTkNUSU9OX1RZUEUgKFYyREYsIFYyREYsIFY0U0YpDQogREVGX0ZVTkNU SU9OX1RZUEUgKFYyREYsIFY0REYsIElOVCkNCiBERUZfRlVOQ1RJT05fVFlQ RSAoVjJESSwgVjE2UUksIFYxNlFJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChW MkRJLCBWMkRGLCBWMkRGKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWMkRJLCBW MkRJLCBJTlQpDQpAQCAtMjk2LDIwICsyOTcsMjEgQEAgREVGX0ZVTkNUSU9O X1RZUEUgKFY0REYsIFBDVjRERiwgVjRESSkNCiBERUZfRlVOQ1RJT05fVFlQ RSAoVjRERiwgVjRERiwgSU5UKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNERG LCBWNERGLCBWNERGKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNERGLCBWNERG LCBWNERJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNEhJLCBWMlNJLCBWMlNJ KQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNEhJLCBWNEhJLCBJTlQpDQogREVG X0ZVTkNUSU9OX1RZUEUgKFY0SEksIFY0SEksIFNJKQ0KIERFRl9GVU5DVElP Tl9UWVBFIChWNEhJLCBWNEhJLCBWNEhJKQ0KIERFRl9GVU5DVElPTl9UWVBF IChWNEhJLCBWOFFJLCBWOFFJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNFNG LCBQQ1Y0U0YsIFY0U0kpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFY0U0YsIFY0 U0YsIERJKQ0KK0RFRl9GVU5DVElPTl9UWVBFIChWNFNGLCBWNFNGLCBGTE9B VCkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgVjRTRiwgSU5UKQ0KIERF Rl9GVU5DVElPTl9UWVBFIChWNFNGLCBWNFNGLCBQQ1YyU0YpDQogREVGX0ZV TkNUSU9OX1RZUEUgKFY0U0YsIFY0U0YsIFNJKQ0KIERFRl9GVU5DVElPTl9U WVBFIChWNFNGLCBWNFNGLCBWMkRGKQ0KIERFRl9GVU5DVElPTl9UWVBFIChW NFNGLCBWNFNGLCBWMlNJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNFNGLCBW NFNGLCBWNFNGKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNFNGLCBWNFNGLCBW NFNJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNFNGLCBWOFNGLCBJTlQpDQog REVGX0ZVTkNUSU9OX1RZUEUgKFY0U0ksIFYyREYsIFYyREYpDQogREVGX0ZV TkNUSU9OX1RZUEUgKFY0U0ksIFY0U0YsIFY0U0YpDQpJbmRleDogZG9jL2V4 dGVuZC50ZXhpDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gZG9jL2V4 dGVuZC50ZXhpCShyZXZpc2lvbiAxOTQzMDEpDQorKysgZG9jL2V4dGVuZC50 ZXhpCSh3b3JraW5nIGNvcHkpDQpAQCAtOTg0MywyMiArOTg0MywyMiBAQCBp bnQgX19idWlsdGluX2lhMzJfY29taWdlICh2NHNmLCB2NHNmKQ0KIGludCBf X2J1aWx0aW5faWEzMl91Y29taWVxICh2NHNmLCB2NHNmKQ0KIGludCBfX2J1 aWx0aW5faWEzMl91Y29taW5lcSAodjRzZiwgdjRzZikNCiBpbnQgX19idWls dGluX2lhMzJfdWNvbWlsdCAodjRzZiwgdjRzZikNCiBpbnQgX19idWlsdGlu X2lhMzJfdWNvbWlsZSAodjRzZiwgdjRzZikNCiBpbnQgX19idWlsdGluX2lh MzJfdWNvbWlndCAodjRzZiwgdjRzZikNCiBpbnQgX19idWlsdGluX2lhMzJf dWNvbWlnZSAodjRzZiwgdjRzZikNCiB2NHNmIF9fYnVpbHRpbl9pYTMyX2Fk ZHBzICh2NHNmLCB2NHNmKQ0KIHY0c2YgX19idWlsdGluX2lhMzJfc3VicHMg KHY0c2YsIHY0c2YpDQogdjRzZiBfX2J1aWx0aW5faWEzMl9tdWxwcyAodjRz ZiwgdjRzZikNCiB2NHNmIF9fYnVpbHRpbl9pYTMyX2RpdnBzICh2NHNmLCB2 NHNmKQ0KLXY0c2YgX19idWlsdGluX2lhMzJfYWRkc3MgKHY0c2YsIHY0c2Yp DQotdjRzZiBfX2J1aWx0aW5faWEzMl9zdWJzcyAodjRzZiwgdjRzZikNCit2 NHNmIF9fYnVpbHRpbl9pYTMyX2FkZHNzICh2NHNmLCBmbG9hdCkNCit2NHNm IF9fYnVpbHRpbl9pYTMyX3N1YnNzICh2NHNmLCBmbG9hdCkNCiB2NHNmIF9f YnVpbHRpbl9pYTMyX211bHNzICh2NHNmLCB2NHNmKQ0KIHY0c2YgX19idWls dGluX2lhMzJfZGl2c3MgKHY0c2YsIHY0c2YpDQogdjRzaSBfX2J1aWx0aW5f aWEzMl9jbXBlcXBzICh2NHNmLCB2NHNmKQ0KIHY0c2kgX19idWlsdGluX2lh MzJfY21wbHRwcyAodjRzZiwgdjRzZikNCiB2NHNpIF9fYnVpbHRpbl9pYTMy X2NtcGxlcHMgKHY0c2YsIHY0c2YpDQogdjRzaSBfX2J1aWx0aW5faWEzMl9j bXBndHBzICh2NHNmLCB2NHNmKQ0KIHY0c2kgX19idWlsdGluX2lhMzJfY21w Z2VwcyAodjRzZiwgdjRzZikNCiB2NHNpIF9fYnVpbHRpbl9pYTMyX2NtcHVu b3JkcHMgKHY0c2YsIHY0c2YpDQogdjRzaSBfX2J1aWx0aW5faWEzMl9jbXBu ZXFwcyAodjRzZiwgdjRzZikNCiB2NHNpIF9fYnVpbHRpbl9pYTMyX2NtcG5s dHBzICh2NHNmLCB2NHNmKQ0KQEAgLTk5NjQsMjIgKzk5NjQsMjIgQEAgdjJk ZiBfX2J1aWx0aW5faWEzMl9jbXB1bm9yZHNkICh2MmRmLCB2Mg0KIHYyZGYg X19idWlsdGluX2lhMzJfY21wbmVxc2QgKHYyZGYsIHYyZGYpDQogdjJkZiBf X2J1aWx0aW5faWEzMl9jbXBubHRzZCAodjJkZiwgdjJkZikNCiB2MmRmIF9f YnVpbHRpbl9pYTMyX2NtcG5sZXNkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19i dWlsdGluX2lhMzJfY21wb3Jkc2QgKHYyZGYsIHYyZGYpDQogdjJkaSBfX2J1 aWx0aW5faWEzMl9wYWRkcSAodjJkaSwgdjJkaSkNCiB2MmRpIF9fYnVpbHRp bl9pYTMyX3BzdWJxICh2MmRpLCB2MmRpKQ0KIHYyZGYgX19idWlsdGluX2lh MzJfYWRkcGQgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0aW5faWEzMl9z dWJwZCAodjJkZiwgdjJkZikNCiB2MmRmIF9fYnVpbHRpbl9pYTMyX211bHBk ICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19idWlsdGluX2lhMzJfZGl2cGQgKHYy ZGYsIHYyZGYpDQotdjJkZiBfX2J1aWx0aW5faWEzMl9hZGRzZCAodjJkZiwg djJkZikNCi12MmRmIF9fYnVpbHRpbl9pYTMyX3N1YnNkICh2MmRmLCB2MmRm KQ0KK3YyZGYgX19idWlsdGluX2lhMzJfYWRkc2QgKHYyZGYsIGRvdWJsZSkN Cit2MmRmIF9fYnVpbHRpbl9pYTMyX3N1YnNkICh2MmRmLCBkb3VibGUpDQog djJkZiBfX2J1aWx0aW5faWEzMl9tdWxzZCAodjJkZiwgdjJkZikNCiB2MmRm IF9fYnVpbHRpbl9pYTMyX2RpdnNkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19i dWlsdGluX2lhMzJfbWlucGQgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0 aW5faWEzMl9tYXhwZCAodjJkZiwgdjJkZikNCiB2MmRmIF9fYnVpbHRpbl9p YTMyX21pbnNkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19idWlsdGluX2lhMzJf bWF4c2QgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0aW5faWEzMl9hbmRw ZCAodjJkZiwgdjJkZikNCiB2MmRmIF9fYnVpbHRpbl9pYTMyX2FuZG5wZCAo djJkZiwgdjJkZikNCiB2MmRmIF9fYnVpbHRpbl9pYTMyX29ycGQgKHYyZGYs IHYyZGYpDQogdjJkZiBfX2J1aWx0aW5faWEzMl94b3JwZCAodjJkZiwgdjJk ZikNCg== --8323329-1656204508-1354888946=:9922--