From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64947 invoked by alias); 6 Aug 2015 12:04:30 -0000 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 Received: (qmail 64933 invoked by uid 89); 6 Aug 2015 12:04:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.6 required=5.0 tests=AWL,BAYES_05,KAM_LAZY_DOMAIN_SECURITY,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: na01-bn1-obe.outbound.protection.outlook.com Received: from mail-bn1on0118.outbound.protection.outlook.com (HELO na01-bn1-obe.outbound.protection.outlook.com) (157.56.110.118) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Thu, 06 Aug 2015 12:04:27 +0000 Received: from BLUPR0201CA0008.namprd02.prod.outlook.com (10.163.116.18) by CY1PR0201MB1500.namprd02.prod.outlook.com (10.163.139.158) with Microsoft SMTP Server (TLS) id 15.1.225.19; Thu, 6 Aug 2015 12:04:23 +0000 Received: from BN1AFFO11FD032.protection.gbl (2a01:111:f400:7c10::190) by BLUPR0201CA0008.outlook.office365.com (2a01:111:e400:52e7::18) with Microsoft SMTP Server (TLS) id 15.1.225.19 via Frontend Transport; Thu, 6 Aug 2015 12:04:23 +0000 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; gcc.gnu.org; dkim=none (message not signed) header.d=none; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from atltwp02.amd.com (165.204.84.222) by BN1AFFO11FD032.mail.protection.outlook.com (10.58.52.186) with Microsoft SMTP Server id 15.1.243.9 via Frontend Transport; Thu, 6 Aug 2015 12:04:23 +0000 X-M-MSG: Received: from satlvexedge01.amd.com (satlvexedge01.amd.com [10.177.96.28]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by atltwp02.amd.com (Axway MailGate 5.3.1) with ESMTPS id 26413D1601F; Thu, 6 Aug 2015 08:04:17 -0400 (EDT) Received: from SATLEXDAG01.amd.com (10.181.40.3) by satlvexedge01.amd.com (10.177.96.28) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 6 Aug 2015 07:04:40 -0500 Received: from SATLEXDAG06.amd.com ([fe80::1557:d877:7f65:c17]) by SATLEXDAG01.amd.com ([fe80::8d49:ab4e:6950:d9b4%23]) with mapi id 14.03.0195.001; Thu, 6 Aug 2015 08:04:19 -0400 From: "Kumar, Venkataramanan" To: Richard Biener CC: Jeff Law , Jakub Jelinek , "gcc-patches@gcc.gnu.org" Subject: RE: [RFC] [Patch]: Try and vectorize with shift for mult expr with power 2 integer constant. Date: Thu, 06 Aug 2015 12:04:00 -0000 Message-ID: <7794A52CE4D579448B959EED7DD0A4723DD20D2A@satlexdag06.amd.com> References: <7794A52CE4D579448B959EED7DD0A4723DD1F787@satlexdag06.amd.com> <20150728195340.GX1780@tucnak.redhat.com> <7794A52CE4D579448B959EED7DD0A4723DD201CC@satlexdag06.amd.com> <55BFAEE5.9010303@redhat.com> <7794A52CE4D579448B959EED7DD0A4723DD205E2@satlexdag06.amd.com> <7794A52CE4D579448B959EED7DD0A4723DD2081C@satlexdag06.amd.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD032;1:9DXy96Xad1BZ07YquDTmRkiy5Y9Uj8KIIqMMIU7dX6IdSN2aJ36DajLYuRshmDyUdq2gLRWjzyMIIJWuqnsIcTl7XgfezczRClsAug+6XBdcEYIXD6Ay/nD6xdR6//PoArcv1NSf/o+wveq1Ve077xFIVelh7YmjVaodSKivtGeboUY5XjC+khr1kJGOJMbRzHENkTdf2R7e9u5//wGSgs0/CIUxYzZnwddxmYtGm927eLEJQhiw+zNyl84guFFRdsbAI1yzXjjdoTIW+/7SwadNc8QYtm+anhfdOFA3JifH+SwcKu3nk1aTmlmP5hYW X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(428002)(54534003)(24454002)(377424004)(13464003)(189002)(199003)(479174004)(164054003)(377454003)(76176999)(5003600100002)(50986999)(54356999)(46102003)(5250100002)(55846006)(19580405001)(47776003)(19580395003)(64706001)(33656002)(62966003)(77156002)(53416004)(50466002)(4001540100001)(86362001)(110136002)(189998001)(2656002)(87936001)(15975445007)(102836002)(68736005)(106116001)(105586002)(106466001)(2900100001)(23676002)(5890100001)(101416001)(92566002)(2920100001)(2950100001)(5001830100001)(97736004)(5001860100001)(93886004);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0201MB1500;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1500;2:6hMyNHkl0fz5mizociiD3ex9qBdu3JoHa75VuPWMF2W8Rd1qBz+GZ3YjkyHn9LCnQx70rGeM+1hxdCy+4gcJbRrHo49M49vZLUyOkMva1GxRvUEbdZeF6Tj+KKb4i7NEIAN+PT6IeHfNMpeLknged2+SQkfJqscNb3SUFcirLos=;3:U9quv1PH4sHU3IDUYlIVJS0gXlGg54yhaCMm3qm22/gMnSmZExbyqTNrSIYh2hJAsdEu0BxnH+oyxL5bBtPkQcyQzzfF0VWQFraN9HEp2cyDdYQxDaXrh99rpALr7tioDcrGFf7OgatUTL9lZlfq55k19pYwxLuLaoZ7neycWTtafwihoCXqpJbAm+1OYL8Mom5ccrqGMufZZkEYmvfl9SV6wzb6uJsPVIrge6i+yW1yTDu58fT5//ISIS6h2dPf;25:pW3oY5mYhyonYqNFFHgFoeLoRuyB7hHbM/DGK3Hdt8JWIgb8uD1PN+G2q7Irqnl0PcGj/3IWEGzLI9NAP0G9q3V5rPEKeX0JVhxJrttv7mEX5b8GuN89jmVo4z6WrYcsK1V60KTKstwR6gIAqn6SKWj9k58JbvFelYbbS67USdoIzpkujZclWMFjbzHsC4g03NQ3uWxfBkkzZAX9jRur1NizoUXtV7ruuVctb9cSzS+TGTNSbH2voflcCCAroXOkdAkm2SPplc/yHWy6cZY8lw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1500; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1500;20:yS9BjkcUJN2n8C8Nxh9Y1km6aRNPVOC7xSC8zf/fr8zRKBsYRrq5dUtbZYXIywg8bjzVuYZp5MZJ39/4RzCcatNqHvuv0dJUMqVn+8X7v5iEmpx6gHjgtIPR6CFYJBHPzwsSgtkt3CjmWv4hgbmT5BrsEy64zDYXJiQ/AcKhh+o7wwi1YiUCQll5P7ROhMiS4V7dC1gSuxVxa8hXgmuCzhpImQqo2oA/cebF6QbI9TfiMbS/1x6FdjRSxSncS/tL8q83aoFjVn4RETVkSct07SHuiiqaAiLIab72f8irf43v0dlVH/enDX6rjW7DxmgqBtfDa97h2ExxhUPDAEg5cqX9VJzKA/SR0RegjwzSIOdfFum8xt4VHhcQhWaMwD5pX03OTPaEaQXsEZfeCbO3z8wU9pi4w/RA+l5Z2aFhRJTTWUKEx3p1V9FJ1fazh3EhT47qD8UaPb1mVILr3KvokklbUYrbahmcbiZ22DuKCJxQBbKvP/fGFbl0dJlmGrv4;4:i2zpWcowtRyfFFX3Z+1VSIhXpsSJxLWRJlj2GWxFNVKKvc/uJDrUdzYujwTqhPlH4MM2dbud5dQ0+S9BA2oPVWRfqTZYoVcX4fo6yFFkKcLi1pSOAj/E5y5d1H9MXDnR7A00vriTNjUzlIjNB38woeGIJru0InfEKcSeky7M24wQMZkifJGRnJA9gZzDo3GxFFXOyGz/5IgeDx/TTmrXBIz6k00rVE/9+EF3yotx81HRQ6W5PsZFsDzFYwMOTRdlInVFOfH4TA+aWcTn4q63mLF8RcA2YgxWykwKp624O3Q= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:CY1PR0201MB1500;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1500; X-Forefront-PRVS: 06607E485E X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyMDFNQjE1MDA7MjM6Q2Q5RHcycVRjWDNnbHFUT1lNTFAwcnlJ?= =?utf-8?B?cUpXR2JPdVhNWTRTZXZ6Uzd2VlFKL2RldGRNdGg3U3ErSlc5clo4d3g5N2pM?= =?utf-8?B?QkpZVnBMTStXUG5MQmFWQlJzYXZ1MUhwT0FhMVMyY1FJaVk3L2Nuckg2TzBa?= =?utf-8?B?NERkQTUyc1N4WTk2aDJpWHI2QWx1dW1KRkh4dVRjN0F1SWQweFNLTTk0aTNm?= =?utf-8?B?Rk5hYUhKK1BRUVp0dE1GV0hOODBDYlhycklzWHZUTURueEk3bGhNcDhhc01v?= =?utf-8?B?bHRHTkpyTWt6MjJHVHp5WUh6WUlyQkwvSlFoYzFLaHlEMDBmUlFvbi9rYVkx?= =?utf-8?B?WnpXZC9KUllwN2kxVXd4YkdDcjBQeFJ4a2U3YjFQaUpuM2Y0dWFIWFgrZHR1?= =?utf-8?B?cTJuQnFsQm0ybkMvK1hIWnM4bzA4bDhDQ1I5NFY1QSsydWNnekZIQkpoUy9p?= =?utf-8?B?N0tDNTQ1YUR0RHZPdjVnblJMS3pwaFRDbi9DczJ0RnA5RTZ5U0RyM1BVSElV?= =?utf-8?B?WncrOU5iYjRwSGZIR201cVZHZFUvZlJwcmtHTHBwc1R3NGwzN2Exc0t6YlFw?= =?utf-8?B?MWx5VCt3VndJcS9HZVErK2QwUzErMlBCUjJPVk03ai9EUGpXUG91SHRqUmw4?= =?utf-8?B?Tkl0djdrdjIrVnhlNzJVTU53S3hFYnk2T2VscXUwYXZPQjNCcktyY0dkN01q?= =?utf-8?B?d0s3anhYd2VXandpUkxSZ2dMcFZSak9IRUVxVUVtVGNwVU5jdWlhWGlTQnMw?= =?utf-8?B?WHBGRmJmdFd5RTRlNjNjMm14NEZaWkJEcmpSY1Z0TXZoS0FLYkxjME1QTXFZ?= =?utf-8?B?TnBNT3VaVE5ZcUl6YXZnMy9PQ1dPNHhUOGo5R0NxR3ZuSUprZFVVU0kzRHZy?= =?utf-8?B?OHFFYW9QdFMvSWFtRzZ1dnNCQkVlMUZzQWo4cmdTaFBTQVBRNTFWZWNWaHVG?= =?utf-8?B?SzBUMGdVVUY3b3E2N1BGck1haVhxY1ZaSTNQVStwTmJGcFlNYmRwT3NDcTNm?= =?utf-8?B?SWdDb1hmUWROa3RQUThnQjVwNFRuWVZ1djQvWVpuZExGSVpEamloR3BRamFI?= =?utf-8?B?Mk0vOUM3SDFvNDNtU3U4dGZXbkRuQVF0ZmR1Z2VmYUJaeDFEbkNqcEpCSE5O?= =?utf-8?B?UG5KR3ZTM0d3ODI2ei9EM0lJajhJM2JwU2kwcTZkQ2RBSkFpWVl1aDV0N2wy?= =?utf-8?B?am9Yb3lEeW9COUFPZkF2YXE2d1pvTExMRnVGU3lqbG5wT2tTbW42TklCVmRD?= =?utf-8?B?bWJTSXcxYUIwY24rbUxtVlordUROblAxZnZEaTlRQUtubW10THlOSFFRaXlq?= =?utf-8?B?cnpub2ZNYWhBLzNGN0NPWS9DYkN4d0UyUk5oTGxWOWxPcDFFdFVqZVJ2a0Fa?= =?utf-8?B?R0J1VUtOUmp4VmxQbGRRTHV1RThVbmFOWEpTemUrTHVrN25KejhTdkJmSEQy?= =?utf-8?B?dEh5ZHNWREVSbjd1UU05MGdEK0JvaHVORXV4ZjRqMzVzOUFYQzdmRGFyMW9y?= =?utf-8?B?TU5qRlR3M2VGamJjTG9ITkZIM2cxTkRkaWw3VU5sc1BtMEVWZzJJVlJBWEVF?= =?utf-8?B?UXdieDVDZlJpdThzankxOW5lb1U1QWNJR0FHMFp0VnpWbk9xKzIrS1lEN3NT?= =?utf-8?B?K2pvMHdpUE00T3JzK01wQlQ3c2NBMHl4UGRkOUxLUHpMc2NGZSsxQUhNZkJh?= =?utf-8?B?R3VRYzUwWk0vSjk0MW56WjF5ak1zeFczYnJlZU95dyt0bzVUMHhOWGNaRGZx?= =?utf-8?Q?K20mDOK9bNbdfEFJGfH93eESiGab2gX876SbFRI=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1500;5:2+Uiy+xH1reNlWpYSr/GYlqIfLaiSXHtnUvzIc37JtmpgOYIh1QwFf+z2IOd2ivHp1wjWJXhg3q3yawCc1iDLZW+sewgjGqlWHHe/nGB2RJpde4yna8CT/PN0HTvN+JToRVqA58I2XAwF21zNq8DXg==;24:uNjcsNuIcgcgDGfWnDp7zX3Ss8xvQvU3Vq/Iid5jSr36+aQeQd7ioCKDP+jefb615+ox9uKZZZTaZ/DqLMiIi4NIreKbrZjTg9ZZThtKZf0=;20:8UipqmgaYYAcw3ZR3cvxYGF/ZbbElWX13LXESpV+4SiZArnp5drJilh4H9kiIyesTV2Edk8tlPgh+dpmsq/dvA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2015 12:04:23.4083 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1500 X-IsSubscribed: yes X-SW-Source: 2015-08/txt/msg00351.txt.bz2 SGkgUmljaGFyZCwgDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogUmljaGFyZCBCaWVuZXIgW21haWx0bzpyaWNoYXJkLmd1ZW50 aGVyQGdtYWlsLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMDUs IDIwMTUgNToxMSBQTQ0KPiBUbzogS3VtYXIsIFZlbmthdGFyYW1hbmFuDQo+ IENjOiBKZWZmIExhdzsgSmFrdWIgSmVsaW5lazsgZ2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmcNCj4gU3ViamVjdDogUmU6IFtSRkNdIFtQYXRjaF06IFRyeSBh bmQgdmVjdG9yaXplIHdpdGggc2hpZnQgZm9yIG11bHQgZXhwciB3aXRoDQo+ IHBvd2VyIDIgaW50ZWdlciBjb25zdGFudC4NCj4gDQo+IE9uIFR1ZSwgQXVn IDQsIDIwMTUgYXQgNjo0OSBQTSwgS3VtYXIsIFZlbmthdGFyYW1hbmFuDQo+ IDxWZW5rYXRhcmFtYW5hbi5LdW1hckBhbWQuY29tPiB3cm90ZToNCj4gPiBI aSBSaWNoYXJkLA0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogUmljaGFyZCBCaWVuZXIgW21haWx0bzpy aWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbV0NCj4gPj4gU2VudDogVHVlc2Rh eSwgQXVndXN0IDA0LCAyMDE1IDQ6MDcgUE0NCj4gPj4gVG86IEt1bWFyLCBW ZW5rYXRhcmFtYW5hbg0KPiA+PiBDYzogSmVmZiBMYXc7IEpha3ViIEplbGlu ZWs7IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+ID4+IFN1YmplY3Q6IFJl OiBbUkZDXSBbUGF0Y2hdOiBUcnkgYW5kIHZlY3Rvcml6ZSB3aXRoIHNoaWZ0 IGZvciBtdWx0DQo+ID4+IGV4cHIgd2l0aCBwb3dlciAyIGludGVnZXIgY29u c3RhbnQuDQo+ID4+DQo+ID4+IE9uIFR1ZSwgQXVnIDQsIDIwMTUgYXQgMTA6 NTIgQU0sIEt1bWFyLCBWZW5rYXRhcmFtYW5hbg0KPiA+PiA8VmVua2F0YXJh bWFuYW4uS3VtYXJAYW1kLmNvbT4gd3JvdGU6DQo+ID4+ID4gSGkgSmVmZiwN Cj4gPj4gPg0KPiA+PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+PiA+PiBGcm9tOiBnY2MtcGF0Y2hlcy1vd25lckBnY2MuZ251Lm9yZyBb bWFpbHRvOmdjYy1wYXRjaGVzLQ0KPiA+PiA+PiBvd25lckBnY2MuZ251Lm9y Z10gT24gQmVoYWxmIE9mIEplZmYgTGF3DQo+ID4+ID4+IFNlbnQ6IE1vbmRh eSwgQXVndXN0IDAzLCAyMDE1IDExOjQyIFBNDQo+ID4+ID4+IFRvOiBLdW1h ciwgVmVua2F0YXJhbWFuYW47IEpha3ViIEplbGluZWsNCj4gPj4gPj4gQ2M6 IFJpY2hhcmQgQmVpbmVyIChyaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbSk7 DQo+ID4+ID4+IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+ID4+ID4+IFN1 YmplY3Q6IFJlOiBbUkZDXSBbUGF0Y2hdOiBUcnkgYW5kIHZlY3Rvcml6ZSB3 aXRoIHNoaWZ0IGZvciBtdWx0DQo+ID4+ID4+IGV4cHIgd2l0aCBwb3dlciAy IGludGVnZXIgY29uc3RhbnQuDQo+ID4+ID4+DQo+ID4+ID4+IE9uIDA4LzAy LzIwMTUgMDU6MDMgQU0sIEt1bWFyLCBWZW5rYXRhcmFtYW5hbiB3cm90ZToN Cj4gPj4gPj4gPiBIaSBKYWt1YiwNCj4gPj4gPj4gPg0KPiA+PiA+PiA+IFRo YW5rIHlvdSBmb3IgcmV2aWV3aW5nIHRoZSBwYXRjaC4NCj4gPj4gPj4gPg0K PiA+PiA+PiA+IEkgaGF2ZSBpbmNvcnBvcmF0ZWQgeW91ciBjb21tZW50cyBp biB0aGUgYXR0YWNoZWQgcGF0Y2guDQo+ID4+ID4+IE5vdGUgSmFrdWIgaXMg b24gUFRPIGZvciB0aGUgbmV4dCAzIHdlZWtzLg0KPiA+PiA+DQo+ID4+ID4g IFRoYW5rIHlvdSBmb3IgdGhpcyBpbmZvcm1hdGlvbi4NCj4gPj4gPg0KPiA+ PiA+Pg0KPiA+PiA+Pg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4NCj4gPj4gPj4g Pg0KPiA+PiA+PiA+IHZlY3Rvcml6ZV9tdWx0c192aWFfc2hpZnQuZGlmZi50 eHQNCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1tdWx0LXBhdHRl cm5zLmMNCj4gPj4gPj4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qv dmVjdC1tdWx0LXBhdHRlcm5zLmMNCj4gPj4gPj4gSmFrdWIgd291bGQgcHJv YmFibHkgbGlrZSBtb3JlIHRlc3RjYXNlcyA6LSkNCj4gPj4gPj4NCj4gPj4g Pj4gVGhlIG1vc3Qgb2J2aW91cyB0aGluZyB0byB0ZXN0IHdvdWxkIGJlIG90 aGVyIHNoaWZ0IGZhY3RvcnMuDQo+ID4+ID4+DQo+ID4+ID4+IEEgbmVnYXRp dmUgdGVzdCB0byB2ZXJpZnkgd2UgZG9uJ3QgdHJ5IHRvIHR1cm4gYSBtdWx0 aXBseSBieQ0KPiA+PiA+PiBub24tY29uc3RhbnQgb3IgbXVsdGlwbHkgYnkg YSBjb25zdGFudCB0aGF0IGlzIG5vdCBhIHBvd2VyIG9mIDIgaW50bw0KPiBz aGlmdHMuDQo+ID4+ID4NCj4gPj4gPiBJIGhhdmUgYWRkZWQgbmVnYXRpdmUg dGVzdCBpbiB0aGUgYXR0YWNoZWQgcGF0Y2guDQo+ID4+ID4NCj4gPj4gPg0K PiA+PiA+Pg0KPiA+PiA+PiBbIFdvdWxkIGl0IG1ha2Ugc2Vuc2UsIGZvciBl eGFtcGxlLCB0byB0dXJuIGEgbXVsdGlwbHkgYnkgMyBpbnRvIGENCj4gPj4g Pj4gc2hpZnQtYWRkIHNlcXVlbmNlPyAgQXMgSmFrdWIgc2FpZCwgY2hvb3Nl X211bHRfdmFyaWFudCBjYW4gYmUNCj4gPj4gPj4geW91ciBmcmllbmQuIF0N Cj4gPj4gPg0KPiA+PiA+IFllcyBJIHdpbGwgZG8gdGhhdCBpbiBhIGZvbGxv dyB1cCBwYXRjaC4NCj4gPj4gPg0KPiA+PiA+IFRoZSBuZXcgY2hhbmdlIGxv ZyBiZWNvbWVzDQo+ID4+ID4NCj4gPj4gPiBnY2MvQ2hhbmdlTG9nDQo+ID4+ ID4gMjAxNS0wOC0wNCAgVmVua2F0YXJhbWFuYW4gS3VtYXINCj4gPj4gPFZl bmthdGFyYW1hbmFuLmt1bWFyQGFtZC5jb20+DQo+ID4+ID4gICAgICAqIHRy ZWUtdmVjdC1wYXR0ZXJucy5jICh2ZWN0X3JlY29nX211bHRfcGF0dGVybik6 IE5ldyBmdW5jdGlvbg0KPiA+PiA+IGZvcg0KPiA+PiB2ZWN0b3JpemluZw0K PiA+PiA+ICAgICAgICAgbXVsdGlwbGljYXRpb24gcGF0dGVybnMuDQo+ID4+ ID4gICAgICAqIHRyZWUtdmVjdG9yaXplci5oOiBBZGp1c3QgdGhlIG51bWJl ciBvZiBwYXR0ZXJucy4NCj4gPj4gPg0KPiA+PiA+IGdjYy90ZXN0c3VpdGUv Q2hhbmdlTG9nDQo+ID4+ID4gMjAxNS0wOC0wNCAgVmVua2F0YXJhbWFuYW4g S3VtYXINCj4gPj4gPFZlbmthdGFyYW1hbmFuLmt1bWFyQGFtZC5jb20+DQo+ ID4+ID4gICAgICAqIGdjYy5kZy92ZWN0L3ZlY3QtbXVsdC1wYXR0ZXJuLTEu YzogTmV3DQo+ID4+ID4gICAgICogZ2NjLmRnL3ZlY3QvdmVjdC1tdWx0LXBh dHRlcm4tMi5jOiBOZXcNCj4gPj4gPg0KPiA+PiA+IEJvb3RzdHJhcHBlZCBh bmQgcmVnIHRlc3RlZCBvbiBhYXJjaDY0LXVua25vd24tbGludXgtZ251Lg0K PiA+PiA+DQo+ID4+ID4gT2sgZm9yIHRydW5rID8NCj4gPj4NCj4gPj4gKyAg aWYgKFRSRUVfQ09ERSAob3BybmQwKSAhPSBTU0FfTkFNRQ0KPiA+PiArICAg ICAgfHwgVFJFRV9DT0RFIChvcHJuZDEpICE9IElOVEVHRVJfQ1NUDQo+ID4+ ICsgICAgICB8fCBUUkVFX0NPREUgKGl0eXBlKSAhPSBJTlRFR0VSX1RZUEUN Cj4gPj4NCj4gPj4gSU5URUdSQUxfVFlQRV9QIChpdHlwZSkNCj4gPj4NCj4g Pj4gKyAgb3B0YWIgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChMU0hJRlRfRVhQ UiwgdmVjdHlwZSwgb3B0YWJfdmVjdG9yKTsNCj4gPj4gKyBpZiAoIW9wdGFi DQo+ID4+ICsgICAgICB8fCBvcHRhYl9oYW5kbGVyIChvcHRhYiwgVFlQRV9N T0RFICh2ZWN0eXBlKSkgPT0NCj4gPj4gQ09ERV9GT1Jfbm90aGluZykNCj4g Pj4gKyAgICAgICByZXR1cm4gTlVMTDsNCj4gPj4gKw0KPiA+Pg0KPiA+PiBp bmRlbnQgb2YgdGhlIHJldHVybiBzdG10IGxvb2tzIHdyb25nDQo+ID4+DQo+ ID4+ICsgIC8qIEhhbmRsZSBjb25zdGFudCBvcGVyYW5kcyB0aGF0IGFyZSBw b3N0aXZlIG9yIG5lZ2F0aXZlIHBvd2VycyBvZiAyLg0KPiA+PiArICovICBp ZiAoIHdpOjpleGFjdF9sb2cyIChvcHJuZDEpICE9IC0xICB8fA0KPiA+PiAr ICAgICAgIHdpOjpleGFjdF9sb2cyICh3aTo6bmVnIChvcHJuZDEpKSAhPSAt MSkNCj4gPj4NCj4gPj4gbm8gc3BhY2UgYWZ0ZXIgKCwgfHwgZ29lcyB0byB0 aGUgbmV4dCBsaW5lLg0KPiA+Pg0KPiA+PiArICAgIHsNCj4gPj4gKyAgICAg IHRyZWUgc2hpZnQ7DQo+ID4+ICsNCj4gPj4gKyAgICAgIGlmICh3aTo6ZXhh Y3RfbG9nMiAob3BybmQxKSAhPSAtMSkNCj4gPj4NCj4gPj4gcGxlYXNlIGNh Y2hlIHdpOjpleGFjdF9sb2cyDQo+ID4+DQo+ID4+IGluIGZhY3QgdGhlIGZp cnN0IGlmICgpIGxvb2tzIHJlZHVuZGFudCBpZiB5b3Ugc2ltcGx5IHB1dCBh biBlbHNlDQo+ID4+IHJldHVybiBOVUxMIGFmdGVyIGEgZWxzZSBpZiAod2k6 OmV4YWN0X2xvZzIgKHdpOjpuZWcgKG9wcm5kMSkpICE9IC0xKQ0KPiA+Pg0K PiA+PiBOb3RlIHRoYXQgdGhlIGlzc3VlIHdpdGggSU5UX01JTiBpcyB0aGF0 IHdpOjpuZWcgKElOVF9NSU4pIGlzIElOVF9NSU4NCj4gPj4gYWdhaW4sIGJ1 dCBpdCBzZWVtcyB0aGF0IHdpOjpleGFjdF9sb2cyIHJldHVybnMgLTEgaW4g dGhhdCBjYXNlIHNvDQo+ID4+IHlvdSBhcmUgZmluZSAoYW5kIGluIGZhY3Qg bm90IGhhbmRsaW5nIHRoaXMgY2FzZSkuDQo+ID4+DQo+ID4NCj4gPiBJIGhh dmUgdXBkYXRlZCB5b3VyIHJldmlldyBjb21tZW50cyBpbiB0aGUgYXR0YWNo ZWQgcGF0Y2guDQo+ID4NCj4gPiBGb3IgdGhlIElOVF9NSU4gY2FzZSwgSSBh bSBnZXR0aW5nICB2ZWN0b3JpemVkIG91dHB1dCB3aXRoIHRoZSBwYXRjaC4g ICBJDQo+IGJlbGlldmUgeDg2XzY0IGFsc28gdmVjdG9yaXplcyBidXQgZG9l cyBub3QgbmVnYXRlcyB0aGUgcmVzdWx0cy4NCj4gPg0KPiA+ICNpbmNsdWRl IDxsaW1pdHMuaD4NCj4gPiB1bnNpZ25lZCBsb25nIGludCAgX19hdHRyaWJ1 dGVfXyAoKGFsaWduZWQgKDY0KSkpYXJyWzEwMF07DQo+ID4NCj4gPiBpbnQg aTsNCj4gPiAjaWYgMQ0KPiA+IHZvaWQgdGVzdF92ZWN0b3Jfc2hpZnRzKCkN Cj4gPiB7DQo+ID4gICAgICAgICBmb3IoaT0wOyBpPD05OTtpKyspDQo+ID4g ICAgICAgICBhcnJbaV09YXJyW2ldICogSU5UX01JTjsNCj4gPiB9DQo+ID4g I2VuZGlmDQo+ID4NCj4gPiB2b2lkIHRlc3RfdmVjdG9yc2hpZnRfdmlhX211 bCgpDQo+ID4gew0KPiA+ICAgICAgICAgZm9yKGk9MDsgaTw9OTk7aSsrKQ0K PiA+ICAgICAgICAgYXJyW2ldPWFycltpXSooLUlOVF9NSU4pOw0KPiA+DQo+ ID4gfQ0KPiA+DQo+ID4gQmVmb3JlDQo+ID4gLS0tLS0tLS0tDQo+ID4gICAg ICAgICBsZHIgICAgIHgxLCBbeDBdDQo+ID4gICAgICAgICBuZWcgICAgIHgx LCB4MSwgbHNsIDMxDQo+ID4gICAgICAgICBzdHIgICAgIHgxLCBbeDBdLCA4 DQo+ID4gICAgICAgICBjbXAgICAgIHgwLCB4Mg0KPiA+DQo+ID4gQWZ0ZXIN Cj4gPiAtLS0tLS0tDQo+ID4gICAgICAgICBsZHIgICAgIHEwLCBbeDBdDQo+ ID4gICAgICAgICBzaGwgICAgIHYwLjJkLCB2MC4yZCwgMzENCj4gPiAgICAg ICAgIG5lZyAgICAgdjAuMmQsIHYwLjJkDQo+ID4gICAgICAgICBzdHIgICAg IHEwLCBbeDBdLCAxNg0KPiA+ICAgICAgICAgY21wICAgICB4MSwgeDANCj4g Pg0KPiA+IGlzIHRoaXMgZmluZSA/DQo+IA0KPiBCdHcsIHRoZSBwYXRjaCBp cyBvayBmb3IgdHJ1bmsuICBJdCBsb29rcyBsaWtlIGl0IGRvZXMgdGhlIGNv cnJlY3QgdGhpbmcgZm9yDQo+IExPTkdfTUlOLg0KPiANCj4gVGhhbmtzLA0K PiBSaWNoYXJkLg0KDQpUaGFua3MgeW91LiBJIGhhdmUgY29tbWl0dGVkIHRo ZSBwYXRjaCBhZnRlciBhIEdDQyBib290c3RyYXAgYW5kIHJlZ3Jlc3Npb24g dGVzdGluZyAgb24geDg2XzY0LXVua25vd24tbGludXgtZ251IG1hY2hpbmUu DQpSZWY6IGh0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2cy9nY2M/dmlldz1y ZXZpc2lvbiZyZXZpc2lvbj0yMjY2NzUNCiANCg0KPiANCj4gPiAgPiBUaGFu a3MsDQo+ID4+IFJpY2hhcmQuDQo+ID4+DQo+ID4+ID4+DQo+ID4+ID4+DQo+ ID4+ID4+DQo+ID4+ID4+ID4gQEAgLTIxNDcsNiArMjE1MiwxNDAgQEAgdmVj dF9yZWNvZ192ZWN0b3JfdmVjdG9yX3NoaWZ0X3BhdHRlcm4NCj4gPj4gPj4g KHZlYzxnaW1wbGU+ICpzdG10cywNCj4gPj4gPj4gPiAgICAgcmV0dXJuIHBh dHRlcm5fc3RtdDsNCj4gPj4gPj4gPiAgIH0NCj4gPj4gPj4gPg0KPiA+PiA+ PiA+ICsvKiBEZXRlY3QgbXVsdGlwbGljYXRpb24gYnkgY29uc3RhbnQgd2hp Y2ggYXJlIHBvc3RpdmUgb3INCj4gPj4gPj4gPiArbmVnYXRpdmVzIG9mIHBv d2VyIDIsDQo+ID4+ID4+IHMvcG9zdGl2ZS9wb3NpdGl2ZS8NCj4gPj4gPj4N Cj4gPj4gPj4NCj4gPj4gPj4gSmVmZg0KPiA+PiA+DQo+ID4+ID4gUmVnYXJk cywNCj4gPj4gPiBWZW5rYXQuDQo+ID4+ID4NCg0KUmVnYXJkcywNClZlbmth dC4NCg==