From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80051.outbound.protection.outlook.com [40.107.8.51]) by sourceware.org (Postfix) with ESMTPS id 1042E388A431 for ; Wed, 2 Jun 2021 16:57:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1042E388A431 Received: from AM6P194CA0018.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::31) by AM0PR08MB3331.eurprd08.prod.outlook.com (2603:10a6:208:5b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.22; Wed, 2 Jun 2021 16:57:36 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:90:cafe::3e) by AM6P194CA0018.outlook.office365.com (2603:10a6:209:90::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.20 via Frontend Transport; Wed, 2 Jun 2021 16:57:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.30 via Frontend Transport; Wed, 2 Jun 2021 16:57:35 +0000 Received: ("Tessian outbound 5e4f56e125a9:v93"); Wed, 02 Jun 2021 16:57:35 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 54593f335f105d9b X-CR-MTA-TID: 64aa7808 Received: from c1d457daa803.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A5909995-AF87-454B-97F6-ED831005FC69.1; Wed, 02 Jun 2021 16:57:28 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c1d457daa803.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 02 Jun 2021 16:57:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dF/dfGUFidE5HZDgAj+TM33iGZ2h3SKXwYyQoR4SsWu6TTjqvlxylnhGrZIN9AFrkYrqfMKRvK+8b7cyZAsxjRy4d0o+1izgPfOdk25LzfZYhv8D7Zeak20EE3MvWb8cUn5rn3718nEyecW5BRzWlx59fLaJJPrHz+BoKmTq4zeFbCioEsnjIwk5ng164DyMIm1raGz21t31TYDAPg3iTfGc1yIRyftj0qqhEw8hftFhhY5h59vl14o1cAFOETLH1qGqGjWJYrYinZTlSw51EswF84wnCUXD8T6jcRVVVvcX1kfphpGHeh0n2zzTS+mpTUb8NVmHjIEdbMDj6lVg6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WHEaSLp1fr48l5YXfXKrLeUEjOIAKcY7/WDVkodLT2I=; b=UZbyHhQafOsDBkc5f+C5DI80NgFLTiCWejkmmyMY3WJXNq9cbHQJXhD3zhGPcx3WtyNA133XJLy4cCBdJqeKcpT0yg96qWihOQMj+y/UAYKA76vCPbPM2lx7oFWInGAe9wXlbqvACpuWkLG1rTybNxmAooQlUSc/4nYE7FtC/TNHbDlTF+TDQkaQFy7TL7WV59ALjH90p68uW2xDsMFuHi2PIlblcnC69ssUHeEYwZau6d6lKjXtfR/Cl5LN1HKHpG/Fkjm1ciO6khR4V/MHZVa+g8dffog7+qgUc2CqnPysSfdSI1+yMHH46G6ufT7eWi3MiK2ZqAcPX+He3q/i4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM6PR08MB3957.eurprd08.prod.outlook.com (2603:10a6:20b:a2::14) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Wed, 2 Jun 2021 16:57:26 +0000 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::50f9:fd86:ade3:c4aa]) by AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::50f9:fd86:ade3:c4aa%4]) with mapi id 15.20.4173.030; Wed, 2 Jun 2021 16:57:26 +0000 From: Alan Hayward To: Luis Machado CC: "gdb-patches\\@sourceware.org" , "david.spickett@linaro.org" , nd Subject: Re: [PATCH][AArch64] Fix missing watchpoint hits/endless loop Thread-Topic: [PATCH][AArch64] Fix missing watchpoint hits/endless loop Thread-Index: AQHXV7t+KQe0OfjhYUCVHMHcjPMMMqsA8UKA Date: Wed, 2 Jun 2021 16:57:26 +0000 Message-ID: <01A08E0C-97D3-43DA-AACC-05EF8D126714@arm.com> References: <20210602142745.2174-1-luis.machado@linaro.org> In-Reply-To: <20210602142745.2174-1-luis.machado@linaro.org> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3654.100.0.2.22) Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.190.200] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 41812f5d-2657-4747-4a04-08d925e785c4 x-ms-traffictypediagnostic: AM6PR08MB3382:|AM0PR08MB3331: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: haH+n4MCJi85twHFErozqsS0oXo0rG133rMO6c32zlidBSpB5iRsovsTL8pxHo9n6HV4aew8zbaYEsJKNG+RrUNN/Z14HpQ9hnclepZyWn5TVmXcdRPkvfs7HKdZpkJUoEvo+LJuq961d7IcDpJOXowcu7B4MvyNwdSpzoQg/5ZJv4mbSSByNKt/qQYTPxdpK05n4Ti8tVPSzVSfO27fzS5kqLUweJPFsg68zMtU/h+sYHweGzwSZKimVwCBqnz3VNJt6k3AfthdYpcQAhyMblCF07jj3BvJ0AOdwDRyLp6yFInVkgv1LQkJgXiPSsKT8kAaudmHl9J8T7FCuuhjeUF728ViIYm9LCUU1DKcYweZFvVrLX3KDJdlC7OE1sGUF2CQdY8tukgVobKobiW0lKvwscA1a0srZTqT84ELA4IH96rRoD6uPDYlNK8qSxJ++b15PUkWc2Xc4WRteXokb76Qc+S5hfA0U8mIU+075WaSnxgXGo7An6xR040mRA2PSswOkQHPrOqMg4pGoSwCAK9pKiLeEk622HbgIFbi/TiUurYHd67Eky9mfXyAfKNd7iB2xzItJbFZZAruiOlzFEpxL4zxdHeKzi6Yrug3jB38LxZho7MSldn7kQRfY6tuqPmwCkgSlae1/b4yVxzu+pv4FIgMoYi8n7F4HwAx7kU= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3957.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(346002)(39850400004)(136003)(376002)(366004)(86362001)(4326008)(71200400001)(83380400001)(8676002)(2906002)(122000001)(6506007)(6512007)(66446008)(6916009)(186003)(316002)(66946007)(2616005)(36756003)(33656002)(26005)(5660300002)(53546011)(76116006)(6486002)(30864003)(91956017)(8936002)(66556008)(64756008)(66476007)(38100700002)(54906003)(478600001)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?S2psOGNQcVRvUGJSMVZzZ2hXZ0YwOHYxQXZRZWVaT3MyWE1TMGpaRTBLTEQv?= =?utf-8?B?cGpPRHo4c1JUclNPakRleGNMODU0QkNabzV1RVlZc3N6Z0Q5N1RNM0tkWnN5?= =?utf-8?B?VlZMYmJ6VEdmSjBDTGt4YnZFZHN2blM1SFgzOHlhOWx5S3Q1UDVlN2FZUU5q?= =?utf-8?B?c1R5ZTVkK2ZkcndoRTdhY0dXQmExd3d0b0hIclVzL2t0ZnRlVUdGRFRJTUxE?= =?utf-8?B?SDVYSGw1aU1vdlRHZ2g1b3ZveVpoSE1kQjQyaFV6bE4vR25wWnh6b29aQWZr?= =?utf-8?B?bjgzb1lvb01uMnF6dFdQbms5QU5WMDVOM2RMS2RLbDBEUDFOSkx2RE1wRmsy?= =?utf-8?B?NSs0eVI5NWFld3cvdFZhUVo2d2tjeXhwZVBSc2NPN3A5b2VPNytEWi84TTJU?= =?utf-8?B?U0JmUFJXaE1PaitEQW1SMThsa2xlc0tGb3Z1YXJoOWJaVTg3RXZhMW5PcHNt?= =?utf-8?B?MUdOTnNvTk44a1J2THZ6ZzVCbGN5WTR2Z1RWa1FBOTR3cVp0RWh2dnJhOTJJ?= =?utf-8?B?RXFKaGt3MkppMUZLSWRkQVREQnZFKzE3K0swQ2dkZ2xOajhWNFFBbUpJYnpt?= =?utf-8?B?SnlqUHRUTllST2JUNHR2NHhFZzl1a1BDeGdZSDZLcVV1aGtjMDZ1b3BkV3Jw?= =?utf-8?B?cncwUzROQytXYkZBMVYyQTBSL0x3UVFlWktkdnNTdjlNY3VIZ01xYzFPZHhE?= =?utf-8?B?V1lkY01USHpKNWlYVGlremlkc2tHcFJDOGE2VHU5dEVTRFUrd3BNWnBkRFNB?= =?utf-8?B?TVhHNUNPcjN2Mm1MSFJoRUI3SXk1OFVOd3dFK3VwcGFIdmEzczgvM0lLNlhW?= =?utf-8?B?MVpDcnlZUUJWSWd4UENMcEZaMVRWcDFPT0N1ZmorQnp6OHVBcHFNOXRhVGk2?= =?utf-8?B?VkJNaWx3a1doYWw1aGpiNWRJREo0YlphcWRNMGpIemVlODBzZVFaa2tqTXQ4?= =?utf-8?B?T29ISDJaUGN0YTJET1drTGg2dWpZdE85SVdIejgyemIzTEtVV1d4YVR3dG5P?= =?utf-8?B?d2dQVmJ3RWtEN3lsSjJYemJqTzlGdDVpZmNoZkw3blpEaVFDbEtmUE1JcGZj?= =?utf-8?B?ZTZ3a3JhcGhxZHpjR2x5SmQxeGluOGFMOVhKbGdnTGZ4L2dmNmVyU2hXT2M0?= =?utf-8?B?TkVsZCtWcEJnTlNkUElndkRIaXBwZHV3dU5YZ25sdnhoN2xkamtWTmFwUVJY?= =?utf-8?B?enFlWXhHbERZVjErNHMvRm44Y1I5VWFaKzhIdlM0bHNiditvRjhLOEt0eGxZ?= =?utf-8?B?RjFaV3NRUVYyT20wM2RsaVAyMHkySThweG1BTmtVbGp6WUhtTG15LzNLQVdO?= =?utf-8?B?R2l3c1loVG5GemRzV0JoYU02RHF4QU5YVUVEdUdqeEIzRmhEdUdpdnhxa1dt?= =?utf-8?B?NndYYkxoNVYyQmg5SmZDMWh6RTNKdktjUytHK3dkQ1hidmkwSUNSb2RrU0J2?= =?utf-8?B?bjR3NXYwQy9pUy9DTksrOUZyUEtIYUZYak1ybnVnS2QyU0lCcHlqZ1NkUUhN?= =?utf-8?B?Q0RUKzdyN3M5T2hVTmVCRVpmNnl1Z3o1MlYxc1EzdWczc0pvd1IydGNSalZC?= =?utf-8?B?T2RCa01nUHg4SmxiV296b09oTFF0MjJIYktRYisvaWZia0Z0QmdTUEFNaGY0?= =?utf-8?B?U0xNYmdTeThrdU5MWUhhM1daNmF5QnVCeTdvQnFTZ2dmRGZlR0tQMHdWd2RU?= =?utf-8?B?cktxbDA5cysvcVNpY1ZyTXNuMUZ1eVhMczVPUkJuRmErM0wwdHIxbmdZeDZ2?= =?utf-8?Q?JvlqnKTegMkWpugVcmrVWwvPLwiEOISQ7P44zWd?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 25f0b7b4-c8ca-41a0-d44a-08d925e78003 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RRwGziaMW0EbT6m8EO+XKQvXbeOj5Ky0PaNufkjDuBdbJ7Zo7a8I8SG5Wl3EspNZaDqtciKG0QwB3esrnyKs22GeHiEajbX4dcSyzv1Yr9OOzodVcyWRuxZNJM4k8Os/l0dVzvpiu80+n5AuCQZZdX5hbW6mZ1Ek7MbqCiWAhLapxWBlFowPRNx3iU1AvOtsDmuozUg8VfGDDt+yrKMghhQ6hR60zFAdMkRFTNj4wqNnTVT0wTDAcWcy1dqHMckCiBXfp/sB+fhzTyCQBCRLX0zleUSfP/lXTBa7DCEitLeNWIpmQew5bR6ZGBvT2n1rC6FEo0fZDW9pni12NmGf6iCo/KTEyGSCyV2mnA/fOCQPomhJbTi2Kcie6R0XR+L6oO4lbpZc1FH1X4C5lmUzzrhPssVPZT6B47bSQI/TXIgLa9VmGFHiWov95BVPrVvxBpVbsNxwyB3d9DODDKeqR9Ed0TflUIYXJ/qJ+0NYxmlGOri36QD+e45raY8zfh9HzAzda34kshNxYzA+qH/eFcA1XT2n9oiGoOYBLwMBpYcfUbJSgBu/fg27M2ETf01B7cfq++aYgqTcX9+d/tGopV8LJNuOp/AAXF1taL2E7ULJrICQgle4ba/6qHCUOwoFU107Xz+OkDkw/YqgHlOsxhsj1VxA9cVBYPoPgIjD6/0= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(376002)(346002)(136003)(39850400004)(396003)(46966006)(36840700001)(5660300002)(2906002)(26005)(33656002)(53546011)(36756003)(70206006)(356005)(316002)(86362001)(2616005)(6512007)(186003)(336012)(54906003)(81166007)(8676002)(70586007)(47076005)(82310400003)(478600001)(6862004)(36860700001)(8936002)(6486002)(4326008)(30864003)(83380400001)(82740400003)(6506007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2021 16:57:35.9793 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41812f5d-2657-4747-4a04-08d925e785c4 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3331 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2021 16:57:42 -0000 DQoNCj4gT24gMiBKdW4gMjAyMSwgYXQgMTU6MjcsIEx1aXMgTWFjaGFkbyA8bHVpcy5tYWNoYWRv QGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSSByYW4gaW50byBhIHNpdHVhdGlvbiB3aGVyZSBh IGhhcmR3YXJlIHdhdGNocG9pbnQgaGl0IGlzIG5vdCBkZXRlY3RlZA0KPiBjb3JyZWN0bHksIG1p c2xlYWRpbmcgR0RCIGludG8gdGhpbmtpbmcgaXQgd2FzIGEgZGVsYXllZCBicmVha3BvaW50IGhp dC4NCj4gDQo+IFRoZSBwcm9ibGVtIGlzIHRoYXQgaGFyZHdhcmUgd2F0Y2hwb2ludHMgYXJlIG5v dCBza2lwcGFibGUgb24gQUFyY2g2NCwgc28NCj4gdGhhdCBtYWtlcyBHREIgbG9vcCBlbmRsZXNz bHkgdHJ5aW5nIHRvIHJ1biBwYXN0IHRoZSBpbnN0cnVjdGlvbi4NCj4gDQo+IFRoZSBtb3N0IG9i dmlvdXMgY2FzZSB3aGVyZSB0aGlzIGhhcHBlbnMgaXMgd2hlbiB0aGUgbG9hZC9zdG9yZSBwYWly DQo+IGluc3RydWN0aW9ucyBhY2Nlc3MgMTYgYnl0ZXMgb2YgbWVtb3J5Lg0KPiANCj4gU3VwcG9z ZSB3ZSBoYXZlIGEgc3RwIGluc3RydWN0aW9uIHRoYXQgd2lsbCB3cml0ZSBhIGNvdXBsZSA2NC1i aXQgcmVnaXN0ZXJzDQo+IHRvIGFkZHJlc3MgMHgxMCAoc3RwIHgzLHg0IFt4Ml0pLiBJdCB3aWxs IHdyaXRlIGRhdGEgZnJvbSAweDEwIHVwIHRvIDB4MjAuDQo+IA0KPiBOb3cgc3VwcG9zZSBhIHdy aXRlIHdhdGNocG9pbnQgaXMgY3JlYXRlZCB0byBtb25pdG9yIG1lbW9yeSBhZGRyZXNzIDB4MTgs DQo+IHdoaWNoIGlzIHRoZSBzdGFydCBvZiB0aGUgc2Vjb25kIHJlZ2lzdGVyIHdyaXRlLiBJdCBj YW4gaGF2ZSB3aGF0ZXZlciBsZW5ndGgsDQo+IGJ1dCBsZXQncyBhc3N1bWUgaXQgaGFzIGxlbmd0 aCA4Lg0KPiANCj4gV2hlbiB3ZSBleGVjdXRlIHRoYXQgc3RwIGluc3RydWN0aW9uLCBpdCB3aWxs IHRyYXAgYW5kIHRoZSByZXBvcnRlZCBzdG9wcGVkDQo+IGRhdGEgYWRkcmVzcyBmcm9tIHRoZSBr ZXJuZWwgd2lsbCBiZSAweDEwICh0aGUgYmVnaW5uaW5nIG9mIHRoZSBtZW1vcnkgcmFuZ2UNCj4g YWNjZXNzZWQgYnkgdGhlIGluc3RydWN0aW9uKS4NCj4gDQo+IFRoZSBjdXJyZW50IGNvZGUgd29u J3QgYmUgYWJsZSB0byBkZXRlY3QgYSB2YWxpZCB0cmlnZ2VyIGJlY2F1c2UgaXQgYXNzdW1lcyBh bg0KPiBhbGlnbm1lbnQgb2YgOCBieXRlcyBmb3IgdGhlIHdhdGNocG9pbnQgYWRkcmVzcy4gRm9y Y2luZyB0aGF0IGtpbmQgb2YgYWxpZ25tZW50DQo+IHdvbid0IGJlIGVub3VnaCB0byBkZXRlY3Qg YSAxNi1ieXRlIGFjY2VzcyBpZiB0aGUgdHJhcCBhZGRyZXNzIGZhbGxzIG91dHNpZGUgb2YNCj4g dGhlIDgtYnl0ZSBhbGlnbm1lbnQgd2luZG93LiBXZSBuZWVkIHRvIGtub3cgaG93IG1hbnkgYnl0 ZXMgdGhlIGluc3RydWN0aW9uDQo+IHdpbGwgYWNjZXNzLCBidXQgd2Ugd29uJ3QgaGF2ZSB0aGF0 IGRhdGEgdW5sZXNzIHdlIGdvIHBhcnNpbmcgaW5zdHJ1Y3Rpb25zLg0KPiANCj4gQW5vdGhlciBp c3N1ZSB3aXRoIHRoZSBjdXJyZW50IGNvZGUgc2VlbXMgdG8gYmUgdGhhdCBpdCBhc3N1bWVzIHRo ZSBhY2Nlc3Nlcw0KPiB3aWxsIGFsd2F5cyBiZSA4IGJ5dGVzIGluIHNpemUsIHNpbmNlIGl0IHdh bnRzIHRvIGFsaWduIHRoZSB3YXRjaHBvaW50IGFkZHJlc3MNCj4gdG8gdGhhdCBwYXJ0aWN1bGFy IGJvdW5kYXJ5LiBUaGlzIGxlYWRzIHRvIHByb2JsZW1zIHdoZW4gd2UgaGF2ZSB1bmFsaWduZWQN Cj4gYWRkcmVzc2VzIGFuZCB1bmFsaWduZWQgd2F0Y2hwb2ludHMuDQo+IA0KPiBGb3IgZXhhbXBs ZSwgc3VwcG9zZSB3ZSBoYXZlIGEgc3RyIGluc3RydWN0aW9uIHN0b3JpbmcgOCBieXRlcyB0byBt ZW1vcnkNCj4gYWRkcmVzcyAweGYuIE5vdyBzdXBwb3NlIHdlIGhhdmUgYSB3cml0ZSB3YXRjaHBv aW50IGF0IGFkZHJlc3MgMHgxNiwNCj4gbW9uaXRvcmluZyA4IGJ5dGVzLg0KPiANCj4gVGhlIHRy YXAgYWRkcmVzcyB3aWxsIGJlIDB4ZiwgYnV0IGZvcmNpbmcgMHgxNiB0byA4LWJ5dGUgYWxpZ25t ZW50IHlpZWxkcw0KPiAweDEwLCBhbmQgc28gR0RCIGRvZXNuJ3QgdGhpbmsgdGhpcyBpcyBhIHdh dGNocG9pbnQgaGl0Lg0KDQpPdWNoLg0KSeKAmW0gc3RhcnRpbmcgdG8gd29uZGVyIG5vdyBpZiBJ IGhhdmUgZW5jb3VudGVyZWQgdGhpcyBidWcgbXlzZWxmLCBhbmQganVzdA0Kc2hydWdnZWQgaXQg b2ZmIHRoaW5raW5nIHRoZSB2YXJpYWJsZSB3YXNu4oCZdCBiZWluZyBoaXQuDQoNCj4gDQo+IEkg YmVsaWV2ZSB5b3UgY2FuIHRyaWdnZXIgdGhlIHNhbWUgcHJvYmxlbSB3aXRoIHNtYWxsZXIgbWVt b3J5IGFjY2Vzc2VzLA0KPiBleGNlcHQgb25lIHRoYXQgYWNjZXNzZXMgYSBzaW5nbGUgYnl0ZS4N Cj4gDQo+IEFzIEkgc2FpZCBlYXJsaWVyLCBpZGVhbGx5IHdlJ2QgZ28gcGFyc2luZyBpbnN0cnVj dGlvbnMgdG8gZmlndXJlIG91dCBob3cgbWFueQ0KPiBieXRlcyB0aGV5IGFjY2Vzcy4gVGhhdCBp cyBhIGJpdCBjb21wbGV4IHRob3VnaCwgc28gbWVhbndoaWxlIEkgdGhpbmsgd2Ugc2hvdWxkDQo+ IGdvIHdpdGggYSBzaW1wbGVyIHNvbHV0aW9uLg0KPiANCj4gV2Uga2VlcCB0aGUgYXNzdW1wdGlv biB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgYWNjZXNzIDggYnl0ZXMsIGV4Y2VwdCB3aGVuIHdlDQo+ IGRldGVjdCBvbmUgb2YgdGhlIGluc3RydWN0aW9ucyB0aGF0IGFjY2VzcyAxNiBieXRlcy4NCg0K V2hhdCBhYm91dCBORU9OIGFuZCBTVkUgaW5zdHJ1Y3Rpb25zPyBUaGV5IGNhbiBhY2Nlc3MgYSBs b3Qgb2YgZGF0YSBhdCBvbmNlLg0KDQo+IA0KPiBGb3IgdGhlIHRyaWdnZXIgZGV0ZWN0aW9uLCBp bnN0ZWFkIG9mIGZvcmNpbmcgYW4gYWxpZ25tZW50IGFuZCB0aGVuIGNoZWNraW5nDQo+IGlmIHRo ZSB0cmFwIGFkZHJlc3MgZmFsbHMgd2l0aGluIHRoZSByYW5nZSBvZiB0aGUgd2F0Y2hwb2ludCwg d2UganVzdCBjaGVjaw0KPiBpZiB0aGUgbWVtb3J5IGFjY2VzcyBhbmQgdGhlIHdhdGNocG9pbnQg cmFuZ2Ugb3ZlcmxhcC4gSWYgdGhleSBkbywgdGhlbiB3ZQ0KPiBoYXZlIGEgd2F0Y2hwb2ludCBo aXQuDQo+IA0KPiBUaGlzIHN0aWxsIGhhcyBwb3RlbnRpYWwgdG8gZ2l2ZSBmYWxzZSBwb3NpdGl2 ZXMgaWYgd2UgY2hvb3NlIHRoZSByaWdodA0KPiBjb21iaW5hdGlvbiBvZiBtZW1vcnkgYWRkcmVz cywgYWNjZXNzIHNpemUgYW5kIHdhdGNocG9pbnQgYWRkcmVzcy4gQnV0IGl0DQo+IHNob3VsZCBt YXRjaCB0aGUgb2xkIGNvZGUgaW4gdGhpcyByZWdhcmQsIHdoaWxlIGdpdmluZyBiZXR0ZXIgcmVz dWx0cyBmb3INCj4gYWNjZXNzZXMgb2YgMTYgYnl0ZXMgYW5kIHVuYWxpZ25lZCBhY2Nlc3Nlcy4N Cg0KSXMgdGhlcmUgYSBwbGFuIGZvciBmaXhpbmcgdGhvc2U/DQoNCj4gDQo+IEl0IGFsc28gZml4 ZXMgdGhlc2UgdHdvIGZhaWx1cmVzIGluIHRoZSB0ZXN0c3VpdGU6DQo+IA0KPiBGQUlMOiBnZGIu YmFzZS93YXRjaHBvaW50LXVuYWxpZ25lZC5leHA6IGNvbnRpbnVlICh0aW1lb3V0KQ0KPiBGQUlM OiBnZGIuYmFzZS93YXRjaHBvaW50LXVuYWxpZ25lZC5leHA6IHNpemU4dHdpY2Ugd3JpdGUNCj4g DQo+IFJlZ3Jlc3Npb24gdGVzdGVkIG9uIGFhcmNoNjQtbGludXggVWJ1bnR1LzIwLjA0Lg0KPiAN Cj4gZ2RiL0NoYW5nZUxvZzoNCj4gDQo+IFlZWVktTU0tREQgIEx1aXMgTWFjaGFkbyAgPGx1aXMu bWFjaGFkb0BsaW5hcm8ub3JnPg0KPiANCj4gCSogYWFyY2g2NC1saW51eC1uYXQuYw0KPiAJKGFh cmNoNjRfbGludXhfbmF0X3RhcmdldDo6c3RvcHBlZF9kYXRhX2FkZHJlc3MpOiBSZWZhY3Rvci4N Cj4gCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYyAoaHdfd2F0Y2hfaXNfMTZiX2xkc3Qp DQo+IAkoaHdfd2F0Y2hfcmVnaW9uc19vdmVybGFwLCBod193YXRjaF9kZXRlY3RfdHJpZ2dlcik6 IE5ldyBmdW5jdGlvbnMuDQo+IAkqIG5hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmggKExEUF9T VFBfTUFTSywgU1RQX09QQ182NCkNCj4gCShMRFBfT1BDXzY0KTogTmV3IGNvbnN0YW50cy4NCj4g CShod193YXRjaF9pc18xNmJfbGRzdCwgaHdfd2F0Y2hfcmVnaW9uc19vdmVybGFwKQ0KPiAJKGh3 X3dhdGNoX2RldGVjdF90cmlnZ2VyKTogTmV3IHByb3RvdHlwZXMuDQo+IA0KPiBnZGJzZXJ2ZXIv Q2hhbmdlTG9nOg0KPiANCj4gWVlZWS1NTS1ERCAgTHVpcyBNYWNoYWRvICA8bHVpcy5tYWNoYWRv QGxpbmFyby5vcmc+DQo+IA0KPiAJKiBsaW51eC1hYXJjaDY0LWxvdy5jYw0KPiAJKGFhcmNoNjRf dGFyZ2V0Ojpsb3dfc3RvcHBlZF9kYXRhX2FkZHJlc3MpOiBSZWZhY3Rvci4NCj4gLS0tDQo+IGdk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jICAgICAgICAgIHwgIDQ1ICsrLS0tLS0tLS0tLQ0KPiBnZGIv bmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYyB8IDEyMCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+IGdkYi9uYXQvYWFyY2g2NC1saW51eC1ody1wb2ludC5oIHwgIDE2ICsrKysr DQo+IGdkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5jYyAgIHwgIDQ5ICsrKystLS0tLS0tLS0N Cj4gNCBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pDQo+ IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMgYi9nZGIvYWFyY2g2NC1s aW51eC1uYXQuYw0KPiBpbmRleCA2MTIyNDAyMmY2YS4uZGU0MDVhNWUzNTEgMTAwNjQ0DQo+IC0t LSBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jDQo+ICsrKyBiL2dkYi9hYXJjaDY0LWxpbnV4LW5h dC5jDQo+IEBAIC05NTEsNyArOTUxLDYgQEAgYm9vbA0KPiBhYXJjaDY0X2xpbnV4X25hdF90YXJn ZXQ6OnN0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFkZHJfcCkNCj4gew0KPiAgIHNp Z2luZm9fdCBzaWdpbmZvOw0KPiAtICBpbnQgaTsNCj4gICBzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19y ZWdfc3RhdGUgKnN0YXRlOw0KPiANCj4gICBpZiAoIWxpbnV4X25hdF9nZXRfc2lnaW5mbyAoaW5m ZXJpb3JfcHRpZCwgJnNpZ2luZm8pKQ0KPiBAQCAtOTY5LDQ2ICs5NjgsMTQgQEAgYWFyY2g2NF9s aW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICphZGRyX3Ap DQo+ICAgY29uc3QgQ09SRV9BRERSIGFkZHJfdHJhcA0KPiAgICAgPSBhZGRyZXNzX3NpZ25pZmlj YW50IChnZGJhcmNoLCAoQ09SRV9BRERSKSBzaWdpbmZvLnNpX2FkZHIpOw0KPiANCj4gKyAgc3Ry dWN0IHJlZ2NhY2hlICpyZWdzID0gZ2V0X3RocmVhZF9yZWdjYWNoZSAodGhpcywgaW5mZXJpb3Jf cHRpZCk7DQo+ICsgIENPUkVfQUREUiB0cmlnZ2VyX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVn cyk7DQo+ICsgIHVpbnQzMl90IGluc247DQo+ICsgIHJlYWRfbWVtb3J5ICh0cmlnZ2VyX3BjLCAo Z2RiX2J5dGUgKikgJmluc24sIDQpOw0KPiArDQo+ICAgLyogQ2hlY2sgaWYgdGhlIGFkZHJlc3Mg bWF0Y2hlcyBhbnkgd2F0Y2hlZCBhZGRyZXNzLiAgKi8NCj4gICBzdGF0ZSA9IGFhcmNoNjRfZ2V0 X2RlYnVnX3JlZ19zdGF0ZSAoaW5mZXJpb3JfcHRpZC5waWQgKCkpOw0KPiAtICBmb3IgKGkgPSBh YXJjaDY0X251bV93cF9yZWdzIC0gMTsgaSA+PSAwOyAtLWkpDQo+IC0gICAgew0KPiAtICAgICAg Y29uc3QgdW5zaWduZWQgaW50IG9mZnNldA0KPiAtCT0gYWFyY2g2NF93YXRjaHBvaW50X29mZnNl dCAoc3RhdGUtPmRyX2N0cmxfd3BbaV0pOw0KPiAtICAgICAgY29uc3QgdW5zaWduZWQgaW50IGxl biA9IGFhcmNoNjRfd2F0Y2hwb2ludF9sZW5ndGggKHN0YXRlLT5kcl9jdHJsX3dwW2ldKTsNCj4g LSAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyX3dhdGNoID0gc3RhdGUtPmRyX2FkZHJfd3BbaV0g KyBvZmZzZXQ7DQo+IC0gICAgICBjb25zdCBDT1JFX0FERFIgYWRkcl93YXRjaF9hbGlnbmVkID0g YWxpZ25fZG93biAoc3RhdGUtPmRyX2FkZHJfd3BbaV0sIDgpOw0KPiAtICAgICAgY29uc3QgQ09S RV9BRERSIGFkZHJfb3JpZyA9IHN0YXRlLT5kcl9hZGRyX29yaWdfd3BbaV07DQo+IC0NCj4gLSAg ICAgIGlmIChzdGF0ZS0+ZHJfcmVmX2NvdW50X3dwW2ldDQo+IC0JICAmJiBEUl9DT05UUk9MX0VO QUJMRUQgKHN0YXRlLT5kcl9jdHJsX3dwW2ldKQ0KPiAtCSAgJiYgYWRkcl90cmFwID49IGFkZHJf d2F0Y2hfYWxpZ25lZA0KPiAtCSAgJiYgYWRkcl90cmFwIDwgYWRkcl93YXRjaCArIGxlbikNCj4g LQl7DQo+IC0JICAvKiBBRERSX1RSQVAgcmVwb3J0cyB0aGUgZmlyc3QgYWRkcmVzcyBvZiB0aGUg bWVtb3J5IHJhbmdlDQo+IC0JICAgICBhY2Nlc3NlZCBieSB0aGUgQ1BVLCByZWdhcmRsZXNzIG9m IHdoYXQgd2FzIHRoZSBtZW1vcnkNCj4gLQkgICAgIHJhbmdlIHdhdGNoZWQuICBUaHVzLCBhIGxh cmdlIENQVSBhY2Nlc3MgdGhhdCBzdHJhZGRsZXMNCj4gLQkgICAgIHRoZSBBRERSX1dBVENILi5B RERSX1dBVENIK0xFTiByYW5nZSBtYXkgcmVzdWx0IGluIGFuDQo+IC0JICAgICBBRERSX1RSQVAg dGhhdCBpcyBsb3dlciB0aGFuIHRoZQ0KPiAtCSAgICAgQUREUl9XQVRDSC4uQUREUl9XQVRDSCtM RU4gcmFuZ2UuICBFLmcuOg0KPiAtDQo+IC0JICAgICBhZGRyOiB8ICAgNCAgIHwgICA1ICAgfCAg IDYgICB8ICAgNyAgIHwgICA4ICAgfA0KPiAtCQkJCSAgIHwtLS0tIHJhbmdlIHdhdGNoZWQgLS0t LXwNCj4gLQkJICAgfC0tLS0tLS0tLS0tIHJhbmdlIGFjY2Vzc2VkIC0tLS0tLS0tLS0tLXwNCj4g LQ0KPiAtCSAgICAgSW4gdGhpcyBjYXNlLCBBRERSX1RSQVAgd2lsbCBiZSA0Lg0KPiAtDQo+IC0J ICAgICBUbyBtYXRjaCBhIHdhdGNocG9pbnQga25vd24gdG8gR0RCIGNvcmUsIHdlIG11c3QgbmV2 ZXINCj4gLQkgICAgIHJlcG9ydCAqQUREUl9QIG91dHNpZGUgb2YgYW55IEFERFJfV0FUQ0guLkFE RFJfV0FUQ0grTEVODQo+IC0JICAgICByYW5nZS4gIEFERFJfV0FUQ0ggPD0gQUREUl9UUkFQIDwg QUREUl9PUklHIGlzIGEgZmFsc2UNCj4gLQkgICAgIHBvc2l0aXZlIG9uIGtlcm5lbHMgb2xkZXIg dGhhbiA0LjEwLiAgU2VlIFBSDQo+IC0JICAgICBleHRlcm5hbC8yMDIwNy4gICovDQo+IC0JICAq YWRkcl9wID0gYWRkcl9vcmlnOw0KPiAtCSAgcmV0dXJuIHRydWU7DQo+IC0JfQ0KPiAtICAgIH0N Cj4gLQ0KPiAtICByZXR1cm4gZmFsc2U7DQo+ICsgIHJldHVybiBod193YXRjaF9kZXRlY3RfdHJp Z2dlciAoc3RhdGUsIGluc24sIGFkZHJfdHJhcCwgYWRkcl9wKTsNCj4gfQ0KPiANCj4gLyogSW1w bGVtZW50IHRoZSAic3RvcHBlZF9ieV93YXRjaHBvaW50IiB0YXJnZXRfb3BzIG1ldGhvZC4gICov DQo+IGRpZmYgLS1naXQgYS9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYyBiL2dkYi9u YXQvYWFyY2g2NC1saW51eC1ody1wb2ludC5jDQo+IGluZGV4IGFmMmNjNDI1NGUyLi4zMmVkNzYx NTdhYyAxMDA2NDQNCj4gLS0tIGEvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMNCj4g KysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMNCj4gQEAgLTg2NSwzICs4NjUs MTIzIEBAIGFhcmNoNjRfbGludXhfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgaW50IGxlbikNCj4gICAgICB0aGUgY2hlY2tpbmcgaXMgY29zdGx5LiAgKi8NCj4gICBy ZXR1cm4gMTsNCj4gfQ0KPiArDQo+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBJTlNOIGlzIGEgbGRwL3N0 cCB0aGF0IGFjY2Vzc2VzIDE2IGJ5dGVzIG9mIG1lbW9yeS4NCj4gKyAgIFJldHVybiBmYWxzZSBv dGhlcndpc2UuICAqLw0KPiArDQo+ICtib29sDQo+ICtod193YXRjaF9pc18xNmJfbGRzdCAoQ09S RV9BRERSIGluc24pDQo+ICt7DQo+ICsgIHJldHVybiAoKGluc24gJiBMRFBfU1RQX01BU0spID09 IFNUUF9PUENfNjQNCj4gKwkgIHx8IChpbnNuICYgTERQX1NUUF9NQVNLKSA9PSBMRFBfT1BDXzY0 KTsNCj4gK30NCj4gKw0KPiArLyogUmV0dXJuIHRydWUgaWYgdGhlIHJlZ2lvbnMgW21lbV9hZGRy LCBtZW1fYWRkciArIG1lbV9sZW5dIGFuZA0KPiArICAgW3dhdGNoX2FkZHIsIHdhdGNoX2FkZHIg KyB3YXRjaF9sZW5dIG92ZXJsYXAuICBGYWxzZSBvdGhlcndpc2UuICAqLw0KPiArDQo+ICtib29s DQo+ICtod193YXRjaF9yZWdpb25zX292ZXJsYXAgKENPUkVfQUREUiBtZW1fYWRkciwgc2l6ZV90 IG1lbV9sZW4sDQo+ICsJCQkgIENPUkVfQUREUiB3YXRjaF9hZGRyLCBzaXplX3Qgd2F0Y2hfbGVu KQ0KPiArew0KPiArICBpZiAod2F0Y2hfYWRkciA+IChtZW1fYWRkciArIG1lbV9sZW4pDQo+ICsg ICAgICB8fCBtZW1fYWRkciA+ICh3YXRjaF9hZGRyICsgd2F0Y2hfbGVuKSkNCj4gKyAgICByZXR1 cm4gZmFsc2U7DQo+ICsNCj4gKyAgQ09SRV9BRERSIHN0YXJ0ID0gc3RkOjptYXggKG1lbV9hZGRy LCB3YXRjaF9hZGRyKTsNCj4gKyAgQ09SRV9BRERSIGVuZCA9IHN0ZDo6bWluIChtZW1fYWRkciAr IG1lbV9sZW4sIHdhdGNoX2FkZHIgKyB3YXRjaF9sZW4pOw0KPiArDQo+ICsgIHJldHVybiAoKGVu ZCAtIHN0YXJ0KSA+IDApOw0KPiArfQ0KPiArDQo+ICsvKiBDaGVjayBpZiBhIGhhcmR3YXJlIHdh dGNocG9pbnQgaGFzIHRyaWdnZXJlZC4gIElmIGEgdHJpZ2dlciBpcyBkZXRlY3RlZCwNCj4gKyAg IHJldHVybiB0cnVlIGFuZCB1cGRhdGUgQUREUl9QIHdpdGggdGhlIHN0b3BwZWQgZGF0YSBhZGRy ZXNzLg0KPiArICAgT3RoZXJ3aXNlIHJldHVybiBmYWxzZS4NCj4gKw0KPiArICAgU1RBVEUgaXMg dGhlIGRlYnVnIHJlZ2lzdGVyJ3Mgc3RhdGUsIElOU04gaXMgdGhlIGluc3RydWN0aW9uIHRoZSBp bmZlcmlvcg0KPiArICAgc3RvcHBlZCBhdCBhbmQgQUREUl9UUkFQIGlzIHRoZSByZXBvcnRlZCBz dG9wcGVkIGRhdGEgYWRkcmVzcy4gICovDQo+ICsNCj4gK2Jvb2wNCj4gK2h3X3dhdGNoX2RldGVj dF90cmlnZ2VyIChjb25zdCBzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLA0K PiArCQkJIENPUkVfQUREUiBpbnNuLCBDT1JFX0FERFIgYWRkcl90cmFwLA0KPiArCQkJIENPUkVf QUREUiAqYWRkcl9wKQ0KPiArew0KPiArICAvKiBUaGVyZSBhcmUgNiB2YXJpYXRpb25zIG9mIHdh dGNocG9pbnQgcmFuZ2UgYW5kIG1lbW9yeSBhY2Nlc3MNCj4gKyAgICAgcmFuZ2UgcG9zaXRpb25p bmc6DQo+ICsNCj4gKyAgICAgLSBXIGlzIHRoZSBieXRlIGluIHRoZSB3YXRjaHBvaW50IHJhbmdl IG9ubHkuDQo+ICsNCj4gKyAgICAgLSBNIGlzIHRoZSBieXRlIGluIHRoZSBtZW1vcnkgYWNjZXNz IHJhbmdlIG9ueS4NCj4gKw0KPiArICAgICAtIE8gaXMgdGhlIGJ5dGUgaW4gdGhlIG92ZXJsYXBw aW5nIHJlZ2lvbiBvZiB0aGUgd2F0Y2hwb2ludCByYW5nZSBhbmQNCj4gKyAgICAgICB0aGUgbWVt b3J5IGFjY2VzcyByYW5nZS4NCj4gKw0KPiArICAgICAxIC0gTm9uLW92ZXJsYXBwaW5nLCBubyB0 cmlnZ2Vycy4NCj4gKw0KPiArICAgICBbV1dXV1dXV1ddLi4uW01NTU1NTU1NXQ0KPiArDQo+ICsg ICAgIDIgLSBOb24tb3ZlcmxhcHBpbmcsIG5vIHRyaWdnZXJzLg0KPiArDQo+ICsgICAgIFtNTU1N TU1NTV0uLi5bV1dXV1dXV1ddDQo+ICsNCj4gKyAgICAgMyAtIE92ZXJsYXBwaW5nIHBhcnRpYWxs eSwgdHJpZ2dlcnMuDQo+ICsNCj4gKyAgICAgW01NTU1PT09PV1dXV10NCj4gKw0KPiArICAgICA0 IC0gT3ZlcmxhcHBpbmcgcGFydGlhbGx5LCB0cmlnZ2Vycy4NCj4gKw0KPiArICAgICBbV1dXV09P T09NTU1NXQ0KPiArDQo+ICsgICAgIDUgLSBNZW1vcnkgYWNjZXNzIGNvbnRhaW5lZCBpbiB3YXRj aHBvaW50IHJhbmdlLCB0cmlnZ2Vycy4NCj4gKw0KPiArICAgICBbV1dXV09PT09PT09PV1dXV10N Cj4gKw0KPiArICAgICA2IC0gTWVtb3J5IGFjY2VzcyBjb250YWluaW5nIHdhdGNocG9pbnQgcmFu Z2UsIHRyaWdnZXJzLg0KPiArDQo+ICsgICAgIFtNTU1NT09PT09PT09NTU1NXQ0KDQpWZXJ5IG1p bm9yIG5pdDogTSBsb29rcyBsaWtlIGFuIHVwc2lkZSBkb3duIFcsIHNvIHRoZXJlIHdhcyBhbiBp bml0aWFsIHNsaWdodCBjb25mdXNpb24uDQpOb3Qgd29ydGggY2hhbmdpbmcsIGJlY2F1c2UgTSBh bmQgVyBhcmUgdGhlIHJpZ2h0IGxldHRlciBjaG9pY2VzLg0KDQo+ICsgICovDQo+ICsNCj4gKyAg LyogV2UgYXNzdW1lIHRoZSBtZW1vcnkgYWNjZXNzIHNpemUgaXMgOCBieXRlcy4gICovDQo+ICsg IHVuc2lnbmVkIGludCBtZW1vcnlfYWNjZXNzX3NpemUgPSA4Ow0KPiArDQo+ICsgIC8qIENoZWNr IGlmIHRoZSBtZW1vcnkgYWNjZXNzIHNpemUgaXMgMTYgYnl0ZXMuICAqLw0KPiArICBpZiAoaHdf d2F0Y2hfaXNfMTZiX2xkc3QgKGluc24pKQ0KPiArICAgIG1lbW9yeV9hY2Nlc3Nfc2l6ZSA9IDE2 Ow0KPiArDQo+ICsgIGZvciAoaW50IGkgPSBhYXJjaDY0X251bV93cF9yZWdzIC0gMTsgaSA+PSAw OyAtLWkpDQo+ICsgICAgew0KPiArICAgICAgY29uc3QgdW5zaWduZWQgaW50IG9mZnNldA0KPiAr CT0gYWFyY2g2NF93YXRjaHBvaW50X29mZnNldCAoc3RhdGUtPmRyX2N0cmxfd3BbaV0pOw0KPiAr ICAgICAgY29uc3QgdW5zaWduZWQgaW50IGxlbiA9IGFhcmNoNjRfd2F0Y2hwb2ludF9sZW5ndGgg KHN0YXRlLT5kcl9jdHJsX3dwW2ldKTsNCj4gKyAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyX3dh dGNoID0gc3RhdGUtPmRyX2FkZHJfd3BbaV0gKyBvZmZzZXQ7DQo+ICsgICAgICBjb25zdCBDT1JF X0FERFIgYWRkcl9vcmlnID0gc3RhdGUtPmRyX2FkZHJfb3JpZ193cFtpXTsNCj4gKw0KPiArICAg ICAgaWYgKChzdGF0ZS0+ZHJfcmVmX2NvdW50X3dwW2ldDQo+ICsJICAmJiBEUl9DT05UUk9MX0VO QUJMRUQgKHN0YXRlLT5kcl9jdHJsX3dwW2ldKSkNCj4gKwkgICYmIGh3X3dhdGNoX3JlZ2lvbnNf b3ZlcmxhcCAoYWRkcl90cmFwLCBtZW1vcnlfYWNjZXNzX3NpemUsDQo+ICsJCQkJICAgICAgIGFk ZHJfd2F0Y2gsIGxlbikpDQo+ICsJew0KPiArCSAgLyogQUREUl9UUkFQIHJlcG9ydHMgdGhlIGZp cnN0IGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSByYW5nZQ0KPiArCSAgICAgYWNjZXNzZWQgYnkgdGhl IENQVSwgcmVnYXJkbGVzcyBvZiB3aGF0IHdhcyB0aGUgbWVtb3J5DQo+ICsJICAgICByYW5nZSB3 YXRjaGVkLiAgVGh1cywgYSBsYXJnZSBDUFUgYWNjZXNzIHRoYXQgc3RyYWRkbGVzDQo+ICsJICAg ICB0aGUgQUREUl9XQVRDSC4uQUREUl9XQVRDSCtMRU4gcmFuZ2UgbWF5IHJlc3VsdCBpbiBhbg0K PiArCSAgICAgQUREUl9UUkFQIHRoYXQgaXMgbG93ZXIgdGhhbiB0aGUNCj4gKwkgICAgIEFERFJf V0FUQ0guLkFERFJfV0FUQ0grTEVOIHJhbmdlLiAgRS5nLjoNCj4gKw0KPiArCSAgICAgYWRkcjog fCAgIDQgICB8ICAgNSAgIHwgICA2ICAgfCAgIDcgICB8ICAgOCAgIHwNCj4gKwkJCQkgICB8LS0t LSByYW5nZSB3YXRjaGVkIC0tLS18DQo+ICsJCSAgIHwtLS0tLS0tLS0tLSByYW5nZSBhY2Nlc3Nl ZCAtLS0tLS0tLS0tLS18DQo+ICsNCj4gKwkgICAgIEluIHRoaXMgY2FzZSwgQUREUl9UUkFQIHdp bGwgYmUgNC4NCj4gKw0KPiArCSAgICAgVG8gbWF0Y2ggYSB3YXRjaHBvaW50IGtub3duIHRvIEdE QiBjb3JlLCB3ZSBtdXN0IG5ldmVyDQo+ICsJICAgICByZXBvcnQgKkFERFJfUCBvdXRzaWRlIG9m IGFueSBBRERSX1dBVENILi5BRERSX1dBVENIK0xFTg0KPiArCSAgICAgcmFuZ2UuICBBRERSX1dB VENIIDw9IEFERFJfVFJBUCA8IEFERFJfT1JJRyBpcyBhIGZhbHNlDQo+ICsJICAgICBwb3NpdGl2 ZSBvbiBrZXJuZWxzIG9sZGVyIHRoYW4gNC4xMC4gIFNlZSBQUg0KPiArCSAgICAgZXh0ZXJuYWwv MjAyMDcuICAqLw0KPiArCSAgKmFkZHJfcCA9IGFkZHJfb3JpZzsNCj4gKwkgIHJldHVybiB0cnVl Ow0KPiArCX0NCj4gKyAgICB9DQo+ICsNCj4gKyAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiBkaWZm IC0tZ2l0IGEvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmggYi9nZGIvbmF0L2FhcmNo NjQtbGludXgtaHctcG9pbnQuaA0KPiBpbmRleCAyZmM0YjQwMGVjZS4uNjJlNzU1ZGQxZTkgMTAw NjQ0DQo+IC0tLSBhL2dkYi9uYXQvYWFyY2g2NC1saW51eC1ody1wb2ludC5oDQo+ICsrKyBiL2dk Yi9uYXQvYWFyY2g2NC1saW51eC1ody1wb2ludC5oDQo+IEBAIC0xMzIsNiArMTMyLDEzIEBAIHR5 cGVkZWYgVUxPTkdFU1QgZHJfY2hhbmdlZF90Ow0KPiAjZGVmaW5lIERSX0hBU19DSEFOR0VEKHgp ICgoeCkgIT0gMCkNCj4gI2RlZmluZSBEUl9OX0hBU19DSEFOR0VEKHgsIG4pICgoeCkgJiAoKGRy X2NoYW5nZWRfdCkxIDw8IChuKSkpDQo+IA0KPiArLyogTWFzayBmb3IgbWF0Y2hpbmcgTERQIGFu ZCBTVFAgaW5zdHJ1Y3Rpb24gdmFyaWFudHMuICAqLw0KPiArI2RlZmluZSBMRFBfU1RQX01BU0sg IDB4RkU0MDAwMDANCj4gKy8qIHN0cCBhbmQgc3RucCB3aXRoIDY0LWJpdCByZWdpc3RlcnMuICAq Lw0KPiArI2RlZmluZSBTVFBfT1BDXzY0ICAgIDB4QTgwMDAwMDANCj4gKy8qIGxkcCBhbmQgbGRu cCB3aXRoIDY0LWJpdCByZWdpc3RlcnMuICAqLw0KPiArI2RlZmluZSBMRFBfT1BDXzY0ICAgIDB4 QTg0MDAwMDANCj4gKw0KPiAvKiBTdHJ1Y3R1cmUgZm9yIG1hbmFnaW5nIHRoZSBoYXJkd2FyZSBi cmVha3BvaW50L3dhdGNocG9pbnQgcmVzb3VyY2VzLg0KPiAgICBEUl9BRERSXyogc3RvcmVzIHRo ZSBhZGRyZXNzLCBEUl9DVFJMXyogc3RvcmVzIHRoZSBjb250cm9sIHJlZ2lzdGVyDQo+ICAgIGNv bnRlbnQsIGFuZCBEUl9SRUZfQ09VTlRfKiBjb3VudHMgdGhlIG51bWJlcnMgb2YgcmVmZXJlbmNl cyB0byB0aGUNCj4gQEAgLTE5Nyw0ICsyMDQsMTMgQEAgc3RydWN0IGFhcmNoNjRfZGVidWdfcmVn X3N0YXRlICphYXJjaDY0X2dldF9kZWJ1Z19yZWdfc3RhdGUgKHBpZF90IHBpZCk7DQo+IA0KPiBp bnQgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuKTsNCj4gDQo+ICtib29sIGh3X3dhdGNoX2lzXzE2Yl9sZHN0IChDT1JFX0FERFIg aW5zbik7DQo+ICsNCj4gK2Jvb2wgaHdfd2F0Y2hfcmVnaW9uc19vdmVybGFwIChDT1JFX0FERFIg bWVtX2FkZHIsIHNpemVfdCBtZW1fbGVuLA0KPiArCQkJICAgICAgIENPUkVfQUREUiB3YXRjaF9h ZGRyLCBzaXplX3Qgd2F0Y2hfbGVuKTsNCj4gKw0KPiArYm9vbCBod193YXRjaF9kZXRlY3RfdHJp Z2dlciAoY29uc3Qgc3RydWN0IGFhcmNoNjRfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwNCj4gKwkJ CSAgICAgIENPUkVfQUREUiBpbnNuLCBDT1JFX0FERFIgc3RvcHBlZF9kYXRhX2FkZHJlc3MsDQo+ ICsJCQkgICAgICBDT1JFX0FERFIgKmFkZHJfcCk7DQo+ICsNCj4gI2VuZGlmIC8qIE5BVF9BQVJD SDY0X0xJTlVYX0hXX1BPSU5UX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2dkYnNlcnZlci9saW51eC1h YXJjaDY0LWxvdy5jYyBiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5jYw0KPiBpbmRleCBk YWNjZmVmNzQ2ZS4uNWRmNjMyZmU3MjQgMTAwNjQ0DQo+IC0tLSBhL2dkYnNlcnZlci9saW51eC1h YXJjaDY0LWxvdy5jYw0KPiArKysgYi9nZGJzZXJ2ZXIvbGludXgtYWFyY2g2NC1sb3cuY2MNCj4g QEAgLTUxOCw3ICs1MTgsNyBAQCBDT1JFX0FERFINCj4gYWFyY2g2NF90YXJnZXQ6Omxvd19zdG9w cGVkX2RhdGFfYWRkcmVzcyAoKQ0KPiB7DQo+ICAgc2lnaW5mb190IHNpZ2luZm87DQo+IC0gIGlu dCBwaWQsIGk7DQo+ICsgIGludCBwaWQ7DQo+ICAgc3RydWN0IGFhcmNoNjRfZGVidWdfcmVnX3N0 YXRlICpzdGF0ZTsNCj4gDQo+ICAgcGlkID0gbHdwaWRfb2YgKGN1cnJlbnRfdGhyZWFkKTsNCj4g QEAgLTUzOCw0NSArNTM4LDIwIEBAIGFhcmNoNjRfdGFyZ2V0Ojpsb3dfc3RvcHBlZF9kYXRhX2Fk ZHJlc3MgKCkNCj4gICBjb25zdCBDT1JFX0FERFIgYWRkcl90cmFwDQo+ICAgICA9IGFkZHJlc3Nf c2lnbmlmaWNhbnQgKChDT1JFX0FERFIpIHNpZ2luZm8uc2lfYWRkcik7DQo+IA0KPiArICBzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ3MgPSBnZXRfdGhyZWFkX3JlZ2NhY2hlIChjdXJyZW50X3RocmVhZCwg MSk7DQo+ICsgIENPUkVfQUREUiB0cmlnZ2VyX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVncyk7 DQo+ICsgIHVpbnQzMl90IGluc247DQo+ICsgIHJlYWRfbWVtb3J5ICh0cmlnZ2VyX3BjLCAoZ2Ri X2J5dGUgKikgJmluc24sIDQpOw0KPiArDQo+ICAgLyogQ2hlY2sgaWYgdGhlIGFkZHJlc3MgbWF0 Y2hlcyBhbnkgd2F0Y2hlZCBhZGRyZXNzLiAgKi8NCj4gICBzdGF0ZSA9IGFhcmNoNjRfZ2V0X2Rl YnVnX3JlZ19zdGF0ZSAocGlkX29mIChjdXJyZW50X3RocmVhZCkpOw0KPiAtICBmb3IgKGkgPSBh YXJjaDY0X251bV93cF9yZWdzIC0gMTsgaSA+PSAwOyAtLWkpDQo+IC0gICAgew0KPiAtICAgICAg Y29uc3QgdW5zaWduZWQgaW50IG9mZnNldA0KPiAtCT0gYWFyY2g2NF93YXRjaHBvaW50X29mZnNl dCAoc3RhdGUtPmRyX2N0cmxfd3BbaV0pOw0KPiAtICAgICAgY29uc3QgdW5zaWduZWQgaW50IGxl biA9IGFhcmNoNjRfd2F0Y2hwb2ludF9sZW5ndGggKHN0YXRlLT5kcl9jdHJsX3dwW2ldKTsNCj4g LSAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyX3dhdGNoID0gc3RhdGUtPmRyX2FkZHJfd3BbaV0g KyBvZmZzZXQ7DQo+IC0gICAgICBjb25zdCBDT1JFX0FERFIgYWRkcl93YXRjaF9hbGlnbmVkID0g YWxpZ25fZG93biAoc3RhdGUtPmRyX2FkZHJfd3BbaV0sIDgpOw0KPiAtICAgICAgY29uc3QgQ09S RV9BRERSIGFkZHJfb3JpZyA9IHN0YXRlLT5kcl9hZGRyX29yaWdfd3BbaV07DQo+IC0NCj4gLSAg ICAgIGlmIChzdGF0ZS0+ZHJfcmVmX2NvdW50X3dwW2ldDQo+IC0JICAmJiBEUl9DT05UUk9MX0VO QUJMRUQgKHN0YXRlLT5kcl9jdHJsX3dwW2ldKQ0KPiAtCSAgJiYgYWRkcl90cmFwID49IGFkZHJf d2F0Y2hfYWxpZ25lZA0KPiAtCSAgJiYgYWRkcl90cmFwIDwgYWRkcl93YXRjaCArIGxlbikNCj4g LQl7DQo+IC0JICAvKiBBRERSX1RSQVAgcmVwb3J0cyB0aGUgZmlyc3QgYWRkcmVzcyBvZiB0aGUg bWVtb3J5IHJhbmdlDQo+IC0JICAgICBhY2Nlc3NlZCBieSB0aGUgQ1BVLCByZWdhcmRsZXNzIG9m IHdoYXQgd2FzIHRoZSBtZW1vcnkNCj4gLQkgICAgIHJhbmdlIHdhdGNoZWQuICBUaHVzLCBhIGxh cmdlIENQVSBhY2Nlc3MgdGhhdCBzdHJhZGRsZXMNCj4gLQkgICAgIHRoZSBBRERSX1dBVENILi5B RERSX1dBVENIK0xFTiByYW5nZSBtYXkgcmVzdWx0IGluIGFuDQo+IC0JICAgICBBRERSX1RSQVAg dGhhdCBpcyBsb3dlciB0aGFuIHRoZQ0KPiAtCSAgICAgQUREUl9XQVRDSC4uQUREUl9XQVRDSCtM RU4gcmFuZ2UuICBFLmcuOg0KPiAtDQo+IC0JICAgICBhZGRyOiB8ICAgNCAgIHwgICA1ICAgfCAg IDYgICB8ICAgNyAgIHwgICA4ICAgfA0KPiAtCQkJCSAgIHwtLS0tIHJhbmdlIHdhdGNoZWQgLS0t LXwNCj4gLQkJICAgfC0tLS0tLS0tLS0tIHJhbmdlIGFjY2Vzc2VkIC0tLS0tLS0tLS0tLXwNCj4g LQ0KPiAtCSAgICAgSW4gdGhpcyBjYXNlLCBBRERSX1RSQVAgd2lsbCBiZSA0Lg0KPiAtDQo+IC0J ICAgICBUbyBtYXRjaCBhIHdhdGNocG9pbnQga25vd24gdG8gR0RCIGNvcmUsIHdlIG11c3QgbmV2 ZXINCj4gLQkgICAgIHJlcG9ydCAqQUREUl9QIG91dHNpZGUgb2YgYW55IEFERFJfV0FUQ0guLkFE RFJfV0FUQ0grTEVODQo+IC0JICAgICByYW5nZS4gIEFERFJfV0FUQ0ggPD0gQUREUl9UUkFQIDwg QUREUl9PUklHIGlzIGEgZmFsc2UNCj4gLQkgICAgIHBvc2l0aXZlIG9uIGtlcm5lbHMgb2xkZXIg dGhhbiA0LjEwLiAgU2VlIFBSDQo+IC0JICAgICBleHRlcm5hbC8yMDIwNy4gICovDQo+IC0JICBy ZXR1cm4gYWRkcl9vcmlnOw0KPiAtCX0NCj4gLSAgICB9DQo+IA0KPiAtICByZXR1cm4gKENPUkVf QUREUikgMDsNCj4gKyAgQ09SRV9BRERSIHRyaWdnZXJfYWRkcjsNCj4gKw0KPiArICBpZiAoaHdf d2F0Y2hfZGV0ZWN0X3RyaWdnZXIgKHN0YXRlLCBpbnNuLCBhZGRyX3RyYXAsICZ0cmlnZ2VyX2Fk ZHIpKQ0KPiArICAgIHJldHVybiB0cmlnZ2VyX2FkZHI7DQo+ICsNCj4gKyAgcmV0dXJuIDA7DQo+ IH0NCj4gDQo+IC8qIEltcGxlbWVudGF0aW9uIG9mIGxpbnV4IHRhcmdldCBvcHMgbWV0aG9kICJs b3dfc3RvcHBlZF9ieV93YXRjaHBvaW50Ii4gICovDQo+IC0tIA0KPiAyLjI1LjENCj4gDQoNCg==