From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.70]) by mx.groups.io with SMTP id smtpd.web08.6870.1618826441684952764 for ; Mon, 19 Apr 2021 03:00:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=gQqF0/qr; spf=pass (domain: arm.com, ip: 40.107.21.70, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zb6rzqT5cb6Clz9D8fC6WPNsUKfXQUvAlE1r6VIHrD0=; b=gQqF0/qrgSnLGGzOwGV2Zu8tpESKd71q5qCbljGAn1bausuEXZlegANwjcb83V4ufpYXswj7hg/2blGqnGhyyAoRVcb4nztxYpChgr1fKHEZlUryUnhOpL+J1g089NwE5PBHm6DdMzxKikO+6l5ti8Lrl0b0Uc5CKia8YVYi1go= Received: from AM5P194CA0007.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::17) by AM6PR08MB3687.eurprd08.prod.outlook.com (2603:10a6:20b:90::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.19; Mon, 19 Apr 2021 10:00:21 +0000 Received: from VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:8f:cafe::dd) by AM5P194CA0007.outlook.office365.com (2603:10a6:203:8f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Mon, 19 Apr 2021 10:00:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; 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 VE1EUR03FT041.mail.protection.outlook.com (10.152.19.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Mon, 19 Apr 2021 10:00:20 +0000 Received: ("Tessian outbound 9bcb3c8d6cb1:v90"); Mon, 19 Apr 2021 10:00:20 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 6abb54549cd21239 X-CR-MTA-TID: 64aa7808 Received: from 2b5a1b6b7634.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F4036E4A-35E7-4E1A-BE01-E5F0310E3C01.1; Mon, 19 Apr 2021 10:00:03 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2b5a1b6b7634.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 19 Apr 2021 10:00:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IZZLMxqSHhTItaeerVH1mH3iKpmntzEDcdl400ngMK3Gt/ejoMh3A9Igh8rGpX7LqbYPp3P0wTL/o2A5ZXRjUuWttz/vXZxQk9WUOgUhjUCOF35+kgAuZXuOjSBIJeQlrgKo3PKHxctJvEQtabMpCVu/3Mm+a2xR1FlJL2Dnjj2mvXSMXJrB6GE1bErILY9cBDLrFzho3mq4+afKk/Xy/Fc0Ax5QprL+egiwLOqt5pL/TifwIaIBdVrIfaJl3jKOnweLmMPkdl1dun/Rp9meE5IzDtbd/8YaB3+Q473cfvUD/fwV0BYeIjbfL5npU/IKoGHze/iXptcT+7W2+GkXTg== 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=zb6rzqT5cb6Clz9D8fC6WPNsUKfXQUvAlE1r6VIHrD0=; b=EgZZuO0OssHixQTgTeDNYhJnqpivVTRviB+xB4sdkQj+x8vyGWhZvZ+9Zw4zkXMuMvO1x99t11vLDsnt34tjGq8dTphJT2V4YFY0BbWnJ6057G553kwIhO2W2Qi/oPZSHPqnM0et781JFfjqD734CbAbAt+0yCuzNeGrhpgq3QDRUORvbJ73EWx5Y3jLO2OcX0QD9he1QUIMJ9NzYNqRPYdvtqbPekaNCo4kUKwQmndQ/fzeF+Hx2O/QCwh2C5w9oNw6mAf/V3QdbMT2TcLlnMVF8AYil3klbQHcEBnAkpCqNubDb7Hs0R4PwWOH18N2/LmEkJNAI9UKv7h3cUlNEQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zb6rzqT5cb6Clz9D8fC6WPNsUKfXQUvAlE1r6VIHrD0=; b=gQqF0/qrgSnLGGzOwGV2Zu8tpESKd71q5qCbljGAn1bausuEXZlegANwjcb83V4ufpYXswj7hg/2blGqnGhyyAoRVcb4nztxYpChgr1fKHEZlUryUnhOpL+J1g089NwE5PBHm6DdMzxKikO+6l5ti8Lrl0b0Uc5CKia8YVYi1go= Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25) by AS8PR08MB6488.eurprd08.prod.outlook.com (2603:10a6:20b:33b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.18; Mon, 19 Apr 2021 09:59:52 +0000 Received: from AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::253a:c74d:3408:25ce]) by AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::253a:c74d:3408:25ce%6]) with mapi id 15.20.4042.024; Mon, 19 Apr 2021 09:59:51 +0000 From: "Sami Mujawar" To: Chandni Cherukuri , "devel@edk2.groups.io" CC: Ard Biesheuvel , Leif Lindholm , nd Subject: Re: [edk2-platforms][PATCH V3 4/7] Platform/ARM/Morello: Add Configuration Manager for Morello Thread-Topic: [edk2-platforms][PATCH V3 4/7] Platform/ARM/Morello: Add Configuration Manager for Morello Thread-Index: AQHXNN6j5t6GR1JqMkevO49uHQDN+Kq7rH8A Date: Mon, 19 Apr 2021 09:59:51 +0000 Message-ID: <44071285-29A2-44A8-86A1-B25A0CCCDF8E@arm.com> References: <20210419054043.21909-1-chandni.cherukuri@arm.com> <20210419054043.21909-5-chandni.cherukuri@arm.com> In-Reply-To: <20210419054043.21909-5-chandni.cherukuri@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.48.21041102 Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [81.131.179.80] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 6b34ea5a-d22e-4d47-cfae-08d90319f179 x-ms-traffictypediagnostic: AS8PR08MB6488:|AM6PR08MB3687: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:3044;OLM:3044; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: FhphCNu6h6a59B4Yp7vHxdZa38+WU0X7dFE52ga5y+hPGW19JjNddzqg1Ilo9tmcD5dfi/D3adyxYhQjRS1SrHQHiFwsjF0AtQ6h6kAnNTwnSNy09jZAr/R0FbX+pdSxdphXE1cW5kG+8XQPFoH+VozRqcz7dZvwGifNwBqwK9Tf0JlxeUoTlmb+ocqZRcYqGXdpT+MD8YFsDMHGbm8/Et9waSENSccAZvnAlbGhigbk2ydrdZtkpb8UBPvmpnemKjrSw+EreJK2M3g1McXAYYoG02CeiyyfWjIkwVBguofGzWV64STvTieu7QbnJFFKFIGmJwkaBbMAW1fMv/lsOrv2VhnQMJ0sUTWF/R/CtqiUusdylJ30o/nwL/yLriwCka87eCxXctki8FPTm0oyqumqNbqgKwHhnh05HY8g+XqWXO0w0awUng9UzeV5w7gpk4h7TIc4oQwg8cZ1Ta5cLPzJFQ8SAT7rXSohkVI6S/Z/YPfsU9cHFueA2Kb6MUt5zYcXJJG+5d23eHbiIwQmwg21iTGDS6xcjTh4OajMKeCqQYk8TIVZ+bnk7FDd5AVPzGMI6XGVSIi7Mt4khaK1CC/rfJZMyo6SkbWsGHDGBwMa2EIN0OUYcBdWA9jqAEI64rt6iL5vog5nVsF4FmAP+Sw3m38LUOQCCORlEij3kZPEP0p4Bm/vmmBrDBaYQSVS X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(376002)(396003)(366004)(346002)(136003)(36756003)(6486002)(83380400001)(26005)(38100700002)(4326008)(122000001)(186003)(2906002)(6506007)(33656002)(86362001)(66446008)(30864003)(8676002)(110136005)(316002)(478600001)(6512007)(66946007)(76116006)(91956017)(54906003)(5660300002)(8936002)(19627235002)(71200400001)(64756008)(66476007)(66556008)(2616005)(45980500001)(579004)(559001)(569008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?TmNZNGFTYzd4emNTNmsyYU82VG44OUNLNlJzcVN4NEI0TWQwa0RrUERFZjA1?= =?utf-8?B?MVYxck45MFpjQXR1RXB6dzVjT2kwTzZmKzdjS1Z6S0VHVUlrVXdHVklOc09h?= =?utf-8?B?VEs0aVNyQlJBZ1lzUHdvVWsrNnRJT1p6SElNZTNCVlM1SlN6SFRpcWtKZFEw?= =?utf-8?B?YW82MHNpdVlZTXFGTldiOGpvWFdzQ1VzUWZmMTBzTVVLcFZkeFVJM0lCZFJo?= =?utf-8?B?K3BlOEVPRGQvVWJ6UUFVSVphdk5sSVlqTFFjMzJZTFhFbmZUb0tKZ09jUmt6?= =?utf-8?B?K1ViOHNYUEtjTnppR0drMElRTCtRNTNlOXZTclBVbE5ZZ1pHQm90ZW1BczBh?= =?utf-8?B?TlpITVg0UVZOb1NkNTBHRjJEcHFTaUN4L2RQY2tGVHBQRzdyZm9HR3Ywb2or?= =?utf-8?B?algybm1tdlpMdE90cFV2ZGNNcHlXMHhQRVN1UUtaQzMvcnJ5NzZOL2ZnS1dh?= =?utf-8?B?dURVR2djdm5GVnZrOWI3T3hDSzEvKy9UaWptcmlDbHhTU0lNNFNWT0s0d2h6?= =?utf-8?B?OEtmZ082VWkxTVhZWDMwSnB4YmZERHNYOTRqMHdnR3BST05mK251ZlBwMjk0?= =?utf-8?B?dkNGTVpRMFp5b1djUXJseURRZ201QlZnVXZQcVoxRXpCN0NiVVhtMnd1V1lz?= =?utf-8?B?ZWdBbHBGSnE5VS85QnhycDMrSmptWUFONDZpclFFMm5jL2xJRk5BZDJvcFV4?= =?utf-8?B?VFE2ai9YVUxEbTZkOEtCai84QlNxb0UvZnBHZmkydWo4dGlEdW1vWGdBcUZZ?= =?utf-8?B?bDAyUlVYR0k0NnNoSlNOZlN4bmxGbk1zZ0dra0dLd0VoYmMreE9vWlFkUG16?= =?utf-8?B?OUs0Y1JJSUlrSVI3azlvYXd4TGxEY2NScHZnSG9wT1ZwdGFkUFVqRFFFdGZU?= =?utf-8?B?MnJkMWVKZmhvTjRlK0dkQ28xa3hCQ2FncTk2MVRrcnp6RGd1bEpLek1HR0FY?= =?utf-8?B?eDFhL0w1akZ1N3pMR2txdGowRkJ3YXpqYmdhQkJESWh6c29rd1BWenFPcFhr?= =?utf-8?B?TnFvNFRvSngydGl1eitSa2ZDdVpkc3ZzOS95cGx6aU9MWUJ1Y0U0MHZaNlBR?= =?utf-8?B?SGNyakJVMkFnVFZvZk5vM3BVTGphWlBZNU01RlZaY0FpeFVGc1RrUjkrZFJs?= =?utf-8?B?TnJ6YThKNitmK083WWRWdFpONlZ3QjJMZk5nZVlSNkNZK0JJSXpQSkNyYVpq?= =?utf-8?B?T3g0UWxBVCt2RHYvbXNBRVlZdlBVSGFJM05TSzgwRVovVk1FekxFMlBZNnZB?= =?utf-8?B?NmozcCs2MGFEcHdMN01GQlJKdHlGMlRuK0dBUUt6SzhYYUFoaDRtTlZsZTJM?= =?utf-8?B?RSs3VzllMXFUb1dZUmcvVVpYWVA1MFFrUzNFL3FSdndMTkRPV05qUi9YRzNu?= =?utf-8?B?WXppTnpuaEcrVUphT0NUamV5eVE0ZFVEa2NUY05NMzFuYTEvZG5aMG5pUjdL?= =?utf-8?B?ZmFMOVpXWTF3OUZIcndNQkZIM2cyU1l5a1A3akpNSkhlQVUrTDFoWitmdmNu?= =?utf-8?B?K3lyeDZUZkErZWtiaVJOMGF0ZFFIc3hLU1hBZ1l0SG9zMlRaanl3bWtFTjBR?= =?utf-8?B?RlY2SjVyVmFjY3owVEZ3blgveFZnS1E2SEZVL0dDdit2UU8zRFo4QVJLRVJ5?= =?utf-8?B?T2UxaFRnS1c1ZE42dEVDSHVHMGtucllSZmMyeUpGTGNuY1E3ZXNXaE53U0NC?= =?utf-8?B?TkI4Um05cEJ5R09ZTVYxdVE5TERDMWxkaUdjQ2Qyd2RNUlZ1a1JTM0h4WXJs?= =?utf-8?Q?vB2Mfv2XPgBliE5MnxRiU90CZ/sge1VbG6nlABP?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6488 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 1e31aecf-8abe-4232-bd7d-08d90319e02d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rFna415mLb13JOdD2FFclU0NtNRM6Yv5bG7Xkz1snUDi0ByTJgWiaYOiWOBnb+RBGjiYxFu9i9Gw4TtbfaXlOgK2VGM2s/PZ9NCprMqwxiCpOMar6J8ZptA3C68M2TrhhQoHVPKYJfL4/nFzmY6PQLIPUktdXlafAeAtTtYgb2wVbHtnLJCi0o1X9vqzRvGh8m1hiyQN9FLuUdLMJZPxZCvKyNnCuNwPDjoBdjA8zKgjBFNz/b2ZXvhzXrwsEtiZNRKN56FOdzHuvovK6bdH7RlA72ikLc5silvldPypNdnXf03hdAGuAnaDU5yD7e7xWwMUd4gNmWg/WeveinPGj+mMvgrfLMosoyi4urMLRWVzJKfd2agRxHIs2iLqi0zapvafTeLAGU3f3Isqhwz7XvtL9xr5eqo/xTjZwwJewI2na8as0gDVMsIPiB70y2a7G8c4B+JjVzqF3H5ud41VzIJujjcpehaVo4eC8JiTZFiTc8RcbtH7h1NzKhpz0lOqaufK/SyFKbCB0kfrYweqhWU5A8InvgAizRsVCztwEmsWaIv+YwpveTsg+1Pl0eFjsZ9rrfN9fdr/ZC4Nj8OAsTJbu+m8pyXntaqvBDEzO6P278mi0iUKTC5VeuOpxDjVokD7dbiY6a+7cB0dj59iBA== 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)(136003)(346002)(376002)(396003)(39860400002)(46966006)(36840700001)(4326008)(70586007)(8676002)(54906003)(70206006)(2616005)(186003)(6512007)(478600001)(2906002)(6486002)(336012)(36756003)(19627235002)(30864003)(47076005)(6506007)(356005)(110136005)(82310400003)(81166007)(316002)(36860700001)(82740400003)(86362001)(8936002)(26005)(5660300002)(83380400001)(33656002)(559001)(579004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2021 10:00:20.8286 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6b34ea5a-d22e-4d47-cfae-08d90319f179 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: VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3687 Content-Language: en-GB Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 SGkgQ2hhbmRuaSwNCg0KUGxlYXNlIGZpbmQgbXkgcmVzcG9uc2UgaW5saW5lIG1hcmtlZCBbU0FN SV0uDQoNClJlZ2FyZHMsDQoNClNhbWkgTXVqYXdhcg0KDQrvu79PbiAxOS8wNC8yMDIxLCAwNjo0 MSwgIkNoYW5kbmkgQ2hlcnVrdXJpIiA8Y2hhbmRuaS5jaGVydWt1cmlAYXJtLmNvbT4gd3JvdGU6 DQoNCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNvbmZpZ3VyYXRpb24gbWFuYWdlciBm b3IgTW9yZWxsbw0KICAgIHBsYXRmb3JtLiBJdCBlbmFibGVzIHN1cHBvcnQgZm9yIGdlbmVyYXRp bmcgdGhlIGZvbGxvd2luZw0KICAgIEFDUEkgdGFibGVzIGZvciBNb3JlbGxvIEZWUCBQbGF0Zm9y bToNCiAgICAgICAgICAgICAgIDEuIEZBRFQNCiAgICAgICAgICAgICAgIDIuIERTRFQNCiAgICAg ICAgICAgICAgIDMuIEdURFQNCiAgICAgICAgICAgICAgIDQuIE1BRFQNCiAgICAgICAgICAgICAg IDUuIFNQQ1INCiAgICAgICAgICAgICAgIDYuIERCRzINCiAgICAgICAgICAgICAgIDcuIFBQVFQN CiAgICAgICAgICAgICAgIDguIElPUlQNCiAgICAgICAgICAgICAgIDkuIE1DRkcNCiAgICAgICAg ICAgICAgMTAuIFNTRFQNCg0KICAgIFN0cnVjdHVyZXMgaGF2ZSBiZWVuIGNyZWF0ZWQgdG8gYWRk IENvbW1vbiBQbGF0Zm9ybSBpbmZvcm1hdGlvbg0KICAgIGFuZCBGVlAvVGVzdGNoaXAgcGxhdGZv cm0gc3BlY2lmaWMgaW5mb3JtYXRpb24gc28gdGhhdCB0aGUNCiAgICBzYW1lIER4ZSBpcyB1c2Fi bGUgZm9yIGFsbCB2YXJpYW50cyBvZiB0aGUgcGxhdGZvcm0uDQoNCiAgICBDby1hdXRob3JlZC1i eTogSmVzc2ljYSBDbGFya2UgPGpydGMyN0BqcnRjMjcuY29tPg0KICAgIFNpZ25lZC1vZmYtYnk6 IENoYW5kbmkgQ2hlcnVrdXJpIDxjaGFuZG5pLmNoZXJ1a3VyaUBhcm0uY29tPg0KICAgIC0tLQ0K ICAgICBQbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0 aW9uTWFuYWdlckZ2cC5kc2MuaW5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsNCiAg ICAgUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29uZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlv bk1hbmFnZXJEeGUvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGVGdnAuaW5mIHwgICA5NCArKw0KICAg ICBQbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9u TWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlci5oICAgICAgICAgfCAgMjgxICsrKysrDQog ICAgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRp b25NYW5hZ2VyRHhlL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmggICAgICB8ICAxMjIgKysNCiAg ICAgUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29uZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlv bk1hbmFnZXJEeGUvUGxhdGZvcm0uaCAgICAgICAgICAgICAgICAgICAgIHwgICA5MSArKw0KICAg ICBQbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9u TWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlci5jICAgICAgICAgfCAxMTcwICsrKysrKysr KysrKysrKysrKysrDQogICAgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5h Z2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmMgICAg ICB8ICA2MDIgKysrKysrKysrKw0KICAgICBQbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0 aW9uTWFuYWdlci9Db25maWd1cmF0aW9uTWFuYWdlckR4ZS9Bc2xUYWJsZXMvRHNkdEZ2cC5hc2wg ICAgICAgICAgfCAgIDk4ICsrDQogICAgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRp b25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0FzbFRhYmxlcy9Tc2R0UGNpRnZwLmFz bCAgICAgICB8ICAxMzAgKysrDQogICAgIDkgZmlsZXMgY2hhbmdlZCwgMjYwNCBpbnNlcnRpb25z KCspDQoNCiAgICBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29uZmlndXJhdGlv bk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJGdnAuZHNjLmluYyBiL1BsYXRmb3JtL0FSTS9N b3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmRzYy5p bmMNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAwMDAwMC4uNzE5 MTY3ODNjMjRjDQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL1BsYXRmb3JtL0FSTS9Nb3Jl bGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmRzYy5pbmMN CiAgICBAQCAtMCwwICsxLDE2IEBADQogICAgKyMjIEBmaWxlDQogICAgKyMgIGRzYyBpbmNsdWRl IGZpbGUgZm9yIENvbmZpZ3VyYXRpb24gTWFuYWdlcg0KICAgICsjDQogICAgKyMgIENvcHlyaWdo dCAoYykgMjAyMSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsj DQogICAgKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQog ICAgKyMNCiAgICArIyMNCiAgICArDQogICAgK1tEZWZpbmVzXQ0KICAgICsNCiAgICArW0J1aWxk T3B0aW9uc10NCiAgICArDQogICAgK1tDb21wb25lbnRzLmNvbW1vbl0NCiAgICArICAjIENvbmZp Z3VyYXRpb24gTWFuYWdlcg0KICAgICsgIFBsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRp b25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhl RnZwLmluZg0KICAgIGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0 aW9uTWFuYWdlci9Db25maWd1cmF0aW9uTWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlckR4 ZUZ2cC5pbmYgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25m aWd1cmF0aW9uTWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlckR4ZUZ2cC5pbmYNCiAgICBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAwMDAwMC4uNmZjMzA3ZGYwMTRj DQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZp Z3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0NvbmZpZ3VyYXRpb25NYW5h Z2VyRHhlRnZwLmluZg0KICAgIEBAIC0wLDAgKzEsOTQgQEANCiAgICArIyMgQGZpbGUNCiAgICAr IyAgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIER4ZQ0KICAgICsjDQogICAgKyMgIENvcHlyaWdodCAo YykgMjAyMSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsjDQog ICAgKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogICAg KyMjDQogICAgKw0KICAgICtbRGVmaW5lc10NCiAgICArICBJTkZfVkVSU0lPTiAgICAgICAgICAg ICAgICAgICAgPSAweDAwMDEwMDFCDQogICAgKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAg ICAgID0gQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUNCiAgICArICBGSUxFX0dVSUQgICAgICAgICAg ICAgICAgICAgICAgPSA2RjlDM0I0Ny02RjdELTQ0QjYtODdFNS00QjdGNDRBNjAxNDcNCiAgICAr ICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQogICAgKyAgVkVS U0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQogICAgKyAgRU5UUllfUE9JTlQgICAg ICAgICAgICAgICAgICAgID0gQ29uZmlndXJhdGlvbk1hbmFnZXJEeGVJbml0aWFsaXplDQogICAg Kw0KICAgICsjDQogICAgKyMgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJl bmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUgYnVpbGQgdG9vbHMuDQogICAgKyMNCiAg ICArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBBQVJDSDY0DQogICAgKyMNCiAg ICArDQogICAgK1tTb3VyY2VzXQ0KICAgICsgIEFzbFRhYmxlcy9Ec2R0RnZwLmFzbA0KICAgICsg IEFzbFRhYmxlcy9Tc2R0UGNpRnZwLmFzbA0KICAgICsgIENvbmZpZ3VyYXRpb25NYW5hZ2VyLmMN CiAgICArICBDb25maWd1cmF0aW9uTWFuYWdlci5oDQogICAgKyAgQ29uZmlndXJhdGlvbk1hbmFn ZXJGdnAuYw0KICAgICsgIENvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmgNCiAgICArICBQbGF0Zm9y bS5oDQogICAgKw0KICAgICtbUGFja2FnZXNdDQogICAgKyAgQXJtUGtnL0FybVBrZy5kZWMNCiAg ICArICBBcm1QbGF0Zm9ybVBrZy9Bcm1QbGF0Zm9ybVBrZy5kZWMNCiAgICArICBEeW5hbWljVGFi bGVzUGtnL0R5bmFtaWNUYWJsZXNQa2cuZGVjDQogICAgKyAgTWRlTW9kdWxlUGtnL01kZU1vZHVs ZVBrZy5kZWMNCiAgICArICBNZGVQa2cvTWRlUGtnLmRlYw0KICAgICsgIFBsYXRmb3JtL0FSTS9N b3JlbGxvL01vcmVsbG9QbGF0Zm9ybS5kZWMNCiAgICArDQogICAgK1tMaWJyYXJ5Q2xhc3Nlc10N CiAgICArICBVZWZpRHJpdmVyRW50cnlQb2ludA0KICAgICsNCiAgICArW1Byb3RvY29sc10NCiAg ICArICBnRWRraWlDb25maWd1cmF0aW9uTWFuYWdlclByb3RvY29sR3VpZA0KICAgICsNCiAgICAr W0ZpeGVkUGNkXQ0KICAgICsgIGdBcm1Nb3JlbGxvVG9rZW5TcGFjZUd1aWQuUGNkUGNpQnVzQ291 bnQNCiAgICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaUJ1c01heA0KICAgICsg IGdBcm1Nb3JlbGxvVG9rZW5TcGFjZUd1aWQuUGNkUGNpQnVzTWluDQogICAgKyAgZ0FybU1vcmVs bG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lFeHByZXNzQmFzZUFkZHJlc3MNCiAgICArICBnQXJtTW9y ZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaUlvQmFzZQ0KICAgICsgIGdBcm1Nb3JlbGxvVG9rZW5T cGFjZUd1aWQuUGNkUGNpSW9NYXhCYXNlDQogICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3Vp ZC5QY2RQY2lJb1NpemUNCiAgICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaUlv VHJhbnNsYXRpb24NCiAgICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaU1taW8z MkJhc2UNCiAgICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaU1taW8zMk1heEJh c2UNCiAgICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaU1taW8zMlNpemUNCiAg ICArICBnQXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFBjaU1taW8zMlRyYW5zbGF0aW9uDQog ICAgKyAgZ0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lNbWlvNjRCYXNlDQogICAgKyAg Z0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lNbWlvNjRNYXhCYXNlDQogICAgKyAgZ0Fy bU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lNbWlvNjRTaXplDQogICAgKyAgZ0FybU1vcmVs bG9Ub2tlblNwYWNlR3VpZC5QY2RQY2lNbWlvNjRUcmFuc2xhdGlvbg0KICAgICsNCiAgICArICBn QXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFZpcnRpb0Jsa0Jhc2VBZGRyZXNzDQogICAgKyAg Z0FybU1vcmVsbG9Ub2tlblNwYWNlR3VpZC5QY2RWaXJ0aW9CbGtJbnRlcnJ1cHQNCiAgICArICBn QXJtTW9yZWxsb1Rva2VuU3BhY2VHdWlkLlBjZFZpcnRpb0Jsa1NpemUNCiAgICArDQogICAgKyAg IyMgUEwwMTEgU2VyaWFsIERlYnVnIFVBUlQNCiAgICArICBnQXJtUGxhdGZvcm1Ub2tlblNwYWNl R3VpZC5QY2RTZXJpYWxEYmdSZWdpc3RlckJhc2UNCiAgICArICBnQXJtUGxhdGZvcm1Ub2tlblNw YWNlR3VpZC5QY2RTZXJpYWxEYmdVYXJ0QmF1ZFJhdGUNCiAgICArICBnQXJtUGxhdGZvcm1Ub2tl blNwYWNlR3VpZC5QY2RTZXJpYWxEYmdVYXJ0Q2xrSW5Ieg0KICAgICsNCiAgICArICBnQXJtUGxh dGZvcm1Ub2tlblNwYWNlR3VpZC5QTDAxMVVhcnRDbGtJbkh6DQogICAgKyAgZ0FybVBsYXRmb3Jt VG9rZW5TcGFjZUd1aWQuUEwwMTFVYXJ0SW50ZXJydXB0DQogICAgKw0KICAgICsgIGdBcm1Ub2tl blNwYWNlR3VpZC5QY2RBcm1BcmNoVGltZXJIeXBJbnRyTnVtDQogICAgKyAgZ0FybVRva2VuU3Bh Y2VHdWlkLlBjZEFybUFyY2hUaW1lckludHJOdW0NCiAgICArICBnQXJtVG9rZW5TcGFjZUd1aWQu UGNkQXJtQXJjaFRpbWVyU2VjSW50ck51bQ0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RB cm1BcmNoVGltZXJWaXJ0SW50ck51bQ0KICAgICsNCiAgICArICAjIFNCU0EgR2VuZXJpYyBXYXRj aGRvZw0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RHZW5lcmljV2F0Y2hkb2dDb250cm9s QmFzZQ0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RHZW5lcmljV2F0Y2hkb2dFbDJJbnRy TnVtDQogICAgKyAgZ0FybVRva2VuU3BhY2VHdWlkLlBjZEdlbmVyaWNXYXRjaGRvZ1JlZnJlc2hC YXNlDQogICAgKw0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RHaWNEaXN0cmlidXRvckJh c2UNCiAgICArICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkR2ljSW50ZXJydXB0SW50ZXJmYWNlQmFz ZQ0KICAgICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RHaWNSZWRpc3RyaWJ1dG9yc0Jhc2UNCiAg ICArDQogICAgKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFJlZ2lz dGVyQmFzZQ0KICAgICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVYXJ0RGVmYXVsdEJh dWRSYXRlDQogICAgKw0KICAgICtbRGVwZXhdDQogICAgKyAgVFJVRQ0KICAgIGRpZmYgLS1naXQg YS9QbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9u TWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlci5oIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8v Q29uZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvQ29uZmlndXJhdGlv bk1hbmFnZXIuaA0KICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAw MDAwLi5mZWE0YTBlZmQyNGENCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvUGxhdGZvcm0v QVJNL01vcmVsbG8vQ29uZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUv Q29uZmlndXJhdGlvbk1hbmFnZXIuaA0KICAgIEBAIC0wLDAgKzEsMjgxIEBADQogICAgKy8qKiBA ZmlsZQ0KICAgICsNCiAgICArICBDb3B5cmlnaHQgKGMpIDIwMjEsIEFSTSBMaW1pdGVkLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgICArDQogICAgKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCiAgICArDQogICAgKyAgQHBhciBHbG9zc2FyeToNCiAg ICArICAgIC0gQ20gb3IgQ00gICAtIENvbmZpZ3VyYXRpb24gTWFuYWdlcg0KICAgICsgICAgLSBP Ymogb3IgT0JKIC0gT2JqZWN0DQogICAgKyoqLw0KICAgICsNCiAgICArI2lmbmRlZiBDT05GSUdV UkFUSU9OX01BTkFHRVJfSF8NCiAgICArI2RlZmluZSBDT05GSUdVUkFUSU9OX01BTkFHRVJfSF8N CiAgICArDQogICAgKy8qKiBUaGUgY29uZmlndXJhdGlvbiBtYW5hZ2VyIHZlcnNpb24uDQogICAg KyovDQogICAgKyNkZWZpbmUgQ09ORklHVVJBVElPTl9NQU5BR0VSX1JFVklTSU9OIENSRUFURV9S RVZJU0lPTiAoMSwgMCkNCiAgICArDQogICAgKy8qKiBUaGUgT0VNIElEDQogICAgKyovDQogICAg KyNkZWZpbmUgQ0ZHX01HUl9PRU1fSUQgICAgICAgIHsgJ0EnLCAnUicsICdNJywgJ0wnLCAnVCcs ICdEJyB9DQogICAgKyNkZWZpbmUgQ0ZHX01HUl9PRU1fUkVWSVNJT04gIDB4MjAxODExMDENCiAg ICArDQogICAgKy8qKiBBIGhlbHBlciBtYWNybyBmb3IgbWFwcGluZyBhIHJlZmVyZW5jZSB0b2tl bg0KICAgICsqLw0KICAgICsjZGVmaW5lIFJFRkVSRU5DRV9UT0tFTihGaWVsZCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgKENNX09CSkVDVF9UT0tFTikoKFVJ TlQ4KikmQ29tbW9uUGxhdGZvcm1JbmZvICsgICAgICAgICAgICAgICAgIFwNCiAgICArICAgIE9G RlNFVF9PRiAoRURLSUlfQ09NTU9OX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5GTywgRmllbGQpKQ0K ICAgICsNCiAgICArLyoqIEEgaGVscGVyIG1hY3JvIHRoYXQgY29uc3RydWN0cyB0aGUgTVBJRCBi YXNlZCBvbiB0aGUNCiAgICArICAgIEFmZjAsIEFmZjEsIEFmZjIsIEFmZjMgdmFsdWVzDQogICAg KyovDQogICAgKyNkZWZpbmUgR0VUX01QSUQzKEFmZjMsIEFmZjIsIEFmZjEsIEFmZjApICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAoKChBZmYzIyNVTEwpIDw8IDMyKSB8ICgoQWZm MikgPDwgMTYpIHwgKChBZmYxKSA8PCA4KSB8IChBZmYwKSkNCiAgICArDQogICAgKy8qKiBBIGhl bHBlciBtYWNybyBmb3IgcG9wdWxhdGluZyB0aGUgR0lDIENQVSBpbmZvcm1hdGlvbg0KICAgICsq Lw0KICAgICsjZGVmaW5lIEdJQ0NfRU5UUlkoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgQ1BVSW50ZXJmYWNlTnVt YmVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg ICAgICAgICAgTXBpZHIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgUG11SXJxLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAg VkdpY0lycSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KICAgICsgICAgICAgICAgR2ljUmVkaXN0QmFzZSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgRW5lcmd5RWZm aWNpZW5jeSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K ICAgICsgICAgICAgICAgU3BlSXJxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgUHJveGltaXR5RG9tYWluLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg ICAgICAgQ2xvY2tEb21haW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgKSB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgQ1BVSW50ZXJm YWNlTnVtYmVyLCAgICAgICAvKiBVSU5UMzIgIENQVUludGVyZmFjZU51bWJlciAgICAgICAgICAg Ki8gXA0KICAgICsgICAgQ1BVSW50ZXJmYWNlTnVtYmVyLCAgICAgICAvKiBVSU5UMzIgIEFjcGlQ cm9jZXNzb3JVaWQgICAgICAgICAgICAgKi8gXA0KICAgICsgICAgRUZJX0FDUElfNl8yX0dJQ19F TkFCTEVELCAvKiBVSU5UMzIgIEZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgKi8gXA0KICAg ICsgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAvKiBVSU5UMzIgIFBhcmtpbmdQcm90b2Nv bFZlcnNpb24gICAgICAgKi8gXA0KICAgICsgICAgUG11SXJxLCAgICAgICAgICAgICAgICAgICAv KiBVSU5UMzIgIFBlcmZvcm1hbmNlSW50ZXJydXB0R3NpdiAgICAgKi8gXA0KICAgICsgICAgMCwg ICAgICAgICAgICAgICAgICAgICAgICAvKiBVSU5UNjQgIFBhcmtlZEFkZHJlc3MgICAgICAgICAg ICAgICAgKi8gXA0KICAgICsgICAgRml4ZWRQY2RHZXQ2NCAoICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICBQY2RHaWNJbnRl cnJ1cHRJbnRlcmZhY2VCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KICAgICsgICAgICApLCAgICAgICAgICAgICAgICAgICAgICAvKiBVSU5UNjQgIFBoeXNpY2Fs QmFzZUFkZHJlc3MgICAgICAgICAgKi8gXA0KICAgICsgICAgMCwgICAgICAgICAgICAgICAgICAg ICAgICAvKiBVSU5UNjQgIEdJQ1YgICAgICAgICAgICAgICAgICAgICAgICAgKi8gXA0KICAgICsg ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAvKiBVSU5UNjQgIEdJQ0ggICAgICAgICAgICAg ICAgICAgICAgICAgKi8gXA0KICAgICsgICAgVkdpY0lycSwgICAgICAgICAgICAgICAgICAvKiBV SU5UMzIgIFZHSUNNYWludGVuYW5jZUludGVycnVwdCAgICAgKi8gXA0KICAgICsgICAgR2ljUmVk aXN0QmFzZSwgICAgICAgICAgICAvKiBVSU5UNjQgIEdJQ1JCYXNlQWRkcmVzcyAgICAgICAgICAg ICAgKi8gXA0KICAgICsgICAgTXBpZHIsICAgICAgICAgICAgICAgICAgICAvKiBVSU5UNjQgIE1Q SURSICAgICAgICAgICAgICAgICAgICAgICAgKi8gXA0KICAgICsgICAgRW5lcmd5RWZmaWNpZW5j eSwgICAgICAgICAvKiBVSU5UOCAgIFByb2Nlc3NvclBvd2VyRWZmaWNpZW5jeUNsYXNzKi8gXA0K ICAgICsgICAgU3BlSXJxLCAgICAgICAgICAgICAgICAgICAvKiBVSU5UMTYgIFNwZU92ZXJmbG93 SW50ZXJydXB0ICAgICAgICAgKi8gXA0KICAgICsgICAgUHJveGltaXR5RG9tYWluLCAgICAgICAg ICAvKiBVSU5UMzIgIFByb3hpbWl0eURvbWFpbiAgICAgICAgICAgICAgKi8gXA0KICAgICsgICAg Q2xvY2tEb21haW4sICAgICAgICAgICAgICAvKiBVSU5UMzIgIENsb2NrRG9tYWluICAgICAgICAg ICAgICAgICAgKi8gXA0KICAgICsgICAgRUZJX0FDUElfNl8zX0dJQ0NfRU5BQkxFRCwvKiBVSU5U MzIgIEZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgKi8gXA0KICAgICsgICAgfQ0KICAgICsN CiAgICArLyoqIEEgaGVscGVyIG1hY3JvIGZvciBwb3B1bGF0aW5nIHRoZSBQcm9jZXNzb3IgSGll cmFyY2h5IE5vZGUgZmxhZ3MNCiAgICArKi8NCiAgICArI2RlZmluZSBQUk9DX05PREVfRkxBR1Mo ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg ICAgICAgICAgUGh5c2ljYWxQYWNrYWdlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICBBY3BpUHJvY2Vzc29ySWRWYWxpZCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgIFBy b2Nlc3NvcklzVGhyZWFkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KICAgICsgICAgICAgICAgTm9kZUlzTGVhZiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICBJZGVudGljYWxJbXBs ZW1lbnRhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr ICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KICAgICsgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICBQaHlzaWNh bFBhY2thZ2UgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCiAgICArICAgIChBY3BpUHJvY2Vzc29ySWRWYWxpZCA8PCAxKSB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKFByb2Nlc3NvcklzVGhyZWFk IDw8IDIpIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg KyAgICAoTm9kZUlzTGVhZiA8PCAzKSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCiAgICArICAgIChJZGVudGljYWxJbXBsZW1lbnRhdGlvbiA8PCA0 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICkNCiAgICAr DQogICAgKy8qKiBBIGhlbHBlciBtYWNybyBmb3IgcG9wdWxhdGluZyB0aGUgQ2FjaGUgVHlwZSBT dHJ1Y3R1cmUncyBhdHRyaWJ1dGVzDQogICAgKyovDQogICAgKyNkZWZpbmUgQ0FDSEVfQVRUUklC VVRFUyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg ICArICAgICAgICAgIEFsbG9jYXRpb25UeXBlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgQ2FjaGVUeXBlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg ICBXcml0ZVBvbGljeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCiAgICArICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog ICAgKyAgICBBbGxvY2F0aW9uVHlwZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgIChDYWNoZVR5cGUgPDwgMikgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKFdy aXRlUG9saWN5IDw8IDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQogICAgKyAgKQ0KICAgICsNCiAgICArLyoqIEEgZnVuY3Rpb24gdGhhdCBwcmVw YXJlcyBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0cyBmb3IgcmV0dXJuaW5nLg0KICAgICsN CiAgICArICBAcGFyYW0gW2luXSAgVGhpcyAgICAgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJh dGlvbiBNYW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBwYXJhbSBbaW5dICBDbU9iamVjdElkICBU aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAg VG9rZW4gICAgICAgQSB0b2tlbiBmb3IgaWRlbnRpZnlpbmcgdGhlIG9iamVjdC4NCiAgICArICBA cGFyYW0gW291dF0gQ21PYmplY3QgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5h Z2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yIGRl c2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0KICAgICsgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJldHZhbCBFRklfSU5WQUxJRF9Q QVJBTUVURVIgQSBwYXJhbWV0ZXIgaXMgaW52YWxpZC4NCiAgICArICBAcmV0dmFsIEVGSV9OT1Rf Rk9VTkQgICAgICAgICBUaGUgcmVxdWlyZWQgb2JqZWN0IGluZm9ybWF0aW9uIGlzIG5vdCBmb3Vu ZC4NCiAgICArKiovDQogICAgK3R5cGVkZWYgRUZJX1NUQVRVUyAoKkNNX09CSkVDVF9IQU5ETEVS X1BST0MpICgNCiAgICArICBJTiAgQ09OU1QgRURLSUlfQ09ORklHVVJBVElPTl9NQU5BR0VSX1BS T1RPQ09MICAqIENPTlNUIFRoaXMsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9JRCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgIElOICBDT05T VCBDTV9PQkpFQ1RfVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4sDQog ICAgKyAgSU4gIE9VVCAgIENNX09CSl9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgICAgKiBD T05TVCBDbU9iamVjdA0KICAgICsgICk7DQogICAgKw0KICAgICsvKiogQSBoZWxwZXIgZnVuY3Rp b24gZm9yIHJldHVybmluZyB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdHMuDQogICAg Kw0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgIENtT2JqZWN0SWQgICAgIFRoZSBDb25maWd1cmF0 aW9uIE1hbmFnZXIgT2JqZWN0IElELg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgIE9iamVjdCAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIE9iamVjdChzKS4NCiAgICArICBAcGFyYW0gW2luXSAgICAg ICBPYmplY3RTaXplICAgICBUb3RhbCBzaXplIG9mIHRoZSBPYmplY3QocykuDQogICAgKyAgQHBh cmFtIFtpbl0gICAgICAgT2JqZWN0Q291bnQgICAgTnVtYmVyIG9mIE9iamVjdHMuDQogICAgKyAg QHBhcmFtIFtpbiwgb3V0XSAgQ21PYmplY3REZXNjICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJh dGlvbiBNYW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUgcmVxdWVzdGVkIE9iamVjdC4NCiAgICArDQog ICAgKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgU3VjY2Vzcy4NCiAgICArKiovDQog ICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK0hhbmRsZUNtT2JqZWN0ICgNCiAgICAr ICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lEICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAg KyAgSU4gICAgICAgIFZPSUQgICAgICAgICAgICAgICAgKiAgICAgICBPYmplY3QsDQogICAgKyAg SU4gIENPTlNUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RTaXplLA0KICAgICsg IElOICBDT05TVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0Q291bnQsDQogICAg KyAgSU4gIE9VVCAgIENNX09CSl9ERVNDUklQVE9SICAgKiBDT05TVCBDbU9iamVjdERlc2MNCiAg ICArICApOw0KICAgICsNCiAgICArLyoqIEEgaGVscGVyIGZ1bmN0aW9uIGZvciByZXR1cm5pbmcg dGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3RzIHRoYXQNCiAgICArICAgIG1hdGNoIHRo ZSB0b2tlbi4NCiAgICArDQogICAgKyAgQHBhcmFtIFtpbl0gIFRoaXMgICAgICAgICAgICAgICBQ b2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgUHJvdG9jb2wuDQogICAgKyAgQHBh cmFtIFtpbl0gIENtT2JqZWN0SWQgICAgICAgICBUaGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9i amVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAgT2JqZWN0ICAgICAgICAgICAgIFBvaW50ZXIg dG8gdGhlIE9iamVjdChzKS4NCiAgICArICBAcGFyYW0gW2luXSAgT2JqZWN0U2l6ZSAgICAgICAg IFRvdGFsIHNpemUgb2YgdGhlIE9iamVjdChzKS4NCiAgICArICBAcGFyYW0gW2luXSAgT2JqZWN0 Q291bnQgICAgICAgIE51bWJlciBvZiBPYmplY3RzLg0KICAgICsgIEBwYXJhbSBbaW5dICBUb2tl biAgICAgICAgICAgICAgQSB0b2tlbiBpZGVudGlmeWluZyB0aGUgb2JqZWN0Lg0KICAgICsgIEBw YXJhbSBbaW5dICBIYW5kbGVyUHJvYyAgICAgICAgQSBoYW5kbGVyIGZ1bmN0aW9uIHRvIHNlYXJj aCB0aGUgb2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZl cmVuY2VkIGJ5IHRoZSB0b2tlbi4NCiAgICArICBAcGFyYW0gW2luLCBvdXRdICBDbU9iamVjdERl c2MgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QNCiAgICArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUg cmVxdWVzdGVkIE9iamVjdC4NCiAgICArDQogICAgKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgU3VjY2Vzcy4NCiAgICArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBIHBh cmFtZXRlciBpcyBpbnZhbGlkLg0KICAgICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAg IFRoZSByZXF1aXJlZCBvYmplY3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLg0KICAgICsqKi8N CiAgICArRUZJX1NUQVRVUw0KICAgICtFRklBUEkNCiAgICArSGFuZGxlQ21PYmplY3RSZWZCeVRv a2VuICgNCiAgICArICBJTiAgQ09OU1QgRURLSUlfQ09ORklHVVJBVElPTl9NQU5BR0VSX1BST1RP Q09MICAqIENPTlNUIFRoaXMsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9JRCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgIElOICAgICAgICBW T0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgT2JqZWN0LA0KICAg ICsgIElOICBDT05TVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2JqZWN0U2l6ZSwNCiAgICArICBJTiAgQ09OU1QgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9iamVjdENvdW50LA0KICAgICsgIElOICBDT05TVCBDTV9P QkpFQ1RfVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4sDQogICAgKyAg SU4gIENPTlNUIENNX09CSkVDVF9IQU5ETEVSX1BST0MgICAgICAgICAgICAgICAgICAgICAgICBI YW5kbGVyUHJvYywNCiAgICArICBJTiAgT1VUICAgQ01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAg ICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0RGVzYw0KICAgICsgICk7DQogICAgKw0KICAgICsv KiogVGhlIG51bWJlciBvZiBDUFVzDQogICAgKyovDQogICAgKyNkZWZpbmUgUExBVF9DUFVfQ09V TlQgICAgICAgICAgICAgIDQNCiAgICArDQogICAgKy8qKiBUaGUgbnVtYmVyIG9mIHBsYXRmb3Jt IGdlbmVyaWMgdGltZXIgYmxvY2tzDQogICAgKyovDQogICAgKyNkZWZpbmUgUExBVF9HVEJMT0NL X0NPVU5UICAgICAgICAgIDENCiAgICArDQogICAgKy8qKiBUaGUgbnVtYmVyIG9mIHRpbWVyIGZy YW1lcyBwZXIgZ2VuZXJpYyB0aW1lciBibG9jaw0KICAgICsqLw0KICAgICsjZGVmaW5lIFBMQVRf R1RGUkFNRV9DT1VOVCAgICAgICAgICAyDQogICAgKw0KICAgICsvKiogVGhlIG51bWJlciBvZiBQ cm9jZXNzb3IgSGllcmFyY2h5IE5vZGVzDQogICAgKyAgICAtIG9uZSBwYWNrYWdlIG5vZGUNCiAg ICArICAgIC0gdHdvIGNsdXN0ZXIgbm9kZXMNCiAgICArICAgIC0gdHdvIGNvcmVzIGluIGNsdXN0 ZXIgMA0KICAgICsgICAgLSB0d28gY29yZXMgaW4gY2x1c3RlciAxDQogICAgKyovDQogICAgKyNk ZWZpbmUgUExBVF9QUk9DX0hJRVJBUkNIWV9OT0RFX0NPVU5UICA3DQogICAgKw0KICAgICsvKiog VGhlIG51bWJlciBvZiB1bmlxdWUgY2FjaGUgc3RydWN0dXJlczoNCiAgICArICAgIC0gY2x1c3Rl ciBMMyB1bmlmaWVkIGNhY2hlDQogICAgKyAgICAtIGNvcmUgTDEgaW5zdHJ1Y3Rpb24gY2FjaGUN CiAgICArICAgIC0gY29yZSBMMSBkYXRhIGNhY2hlDQogICAgKyAgICAtIGNvcmUgTDIgY2FjaGUN CiAgICArICAgIC0gc2xjIHVuaWZpZWQgY2FjaGUNCiAgICArKi8NCiAgICArI2RlZmluZSBQTEFU X0NBQ0hFX0NPVU5UICAgICAgICAgICAgICAgIDUNCiAgICArDQogICAgKy8qKiBUaGUgbnVtYmVy IG9mIHJlc291cmNlcyBwcml2YXRlIHRvIHRoZSBjbHVzdGVyDQogICAgKyAgICAtIEwzIGNhY2hl DQogICAgKyovDQogICAgKyNkZWZpbmUgQ0xVU1RFUl9SRVNPVVJDRV9DT1VOVCAgMQ0KICAgICsN CiAgICArLyoqIFRoZSBudW1iZXIgb2YgcmVzb3VyY2VzIHByaXZhdGUgdG8gJ2NvcmUgaW5zdGFu Y2UNCiAgICArICAgIC0gTDEgZGF0YSBjYWNoZQ0KICAgICsgICAgLSBMMSBpbnN0cnVjdGlvbiBj YWNoZQ0KICAgICsgICAgLSBMMiBjYWNoZQ0KICAgICsqLw0KICAgICsjZGVmaW5lIENPUkVfUkVT T1VSQ0VfQ09VTlQgIDMNCiAgICArDQogICAgKy8qKiBUaGUgbnVtYmVyIG9mIHJlc291cmNlcyBw cml2YXRlIHRvIFNvQw0KICAgICsgICAgLSBzbGMgY2FjaGUNCiAgICArKi8NCiAgICArI2RlZmlu ZSBTT0NfUkVTT1VSQ0VfQ09VTlQgIDENCiAgICArDQogICAgKy8qKiBBIHN0cnVjdHVyZSBkZXNj cmliaW5nIHRoZSBwbGF0Zm9ybSBjb25maWd1cmF0aW9uDQogICAgKyAgICBtYW5hZ2VyIHJlcG9z aXRvcnkgaW5mb3JtYXRpb24NCiAgICArKi8NCiAgICArdHlwZWRlZiBzdHJ1Y3QgQ29tbW9uUGxh dGZvcm1SZXBvc2l0b3J5SW5mbyB7DQogICAgKyAgLy8vIENvbmZpZ3VyYXRpb24gTWFuYWdlciBJ bmZvcm1hdGlvbg0KICAgICsgIENNX1NURF9PQkpfQ09ORklHVVJBVElPTl9NQU5BR0VSX0lORk8g Q21JbmZvOw0KICAgICsNCiAgICArICAvLy8gQm9vdCBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24N CiAgICArICBDTV9BUk1fQk9PVF9BUkNIX0lORk8gICAgICAgICAgICAgICAgIEJvb3RBcmNoSW5m bzsNCiAgICArDQogICAgKyNpZmRlZiBIRUFETEVTU19QTEFURk9STQ0KICAgICsgIC8vLyBGaXhl ZCBmZWF0dXJlIGZsYWcgaW5mb3JtYXRpb24NCiAgICArICBDTV9BUk1fRklYRURfRkVBVFVSRV9G TEFHUyAgICAgICAgICAgIEZpeGVkRmVhdHVyZUZsYWdzOw0KICAgICsjZW5kaWYNCiAgICArDQog ICAgKyAgLy8vIFBvd2VyIG1hbmFnZW1lbnQgcHJvZmlsZSBpbmZvcm1hdGlvbg0KICAgICsgIENN X0FSTV9QT1dFUl9NQU5BR0VNRU5UX1BST0ZJTEVfSU5GTyAgUG1Qcm9maWxlSW5mbzsNCiAgICAr DQogICAgKyAgLy8vIEdJQyBDUFUgaW50ZXJmYWNlIGluZm9ybWF0aW9uDQogICAgKyAgQ01fQVJN X0dJQ0NfSU5GTyAgICAgICAgICAgICAgICAgICAgICBHaWNDSW5mb1tQTEFUX0NQVV9DT1VOVF07 DQogICAgKw0KICAgICsgIC8vLyBHSUMgZGlzdHJpYnV0b3IgaW5mb3JtYXRpb24NCiAgICArICBD TV9BUk1fR0lDRF9JTkZPICAgICAgICAgICAgICAgICAgICAgIEdpY0RJbmZvOw0KICAgICsNCiAg ICArICAvLy8gR0lDIFJlZGlzdHJpYnV0b3IgaW5mb3JtYXRpb24NCiAgICArICBDTV9BUk1fR0lD X1JFRElTVF9JTkZPICAgICAgICAgICAgICAgIEdpY1JlZGlzdEluZm87DQogICAgKw0KICAgICsg IC8vLyBHZW5lcmljIHRpbWVyIGluZm9ybWF0aW9uDQogICAgKyAgQ01fQVJNX0dFTkVSSUNfVElN RVJfSU5GTyAgICAgICAgICAgICBHZW5lcmljVGltZXJJbmZvOw0KICAgICsNCiAgICArICAvLy8g R2VuZXJpYyB0aW1lciBibG9jayBpbmZvcm1hdGlvbg0KICAgICsgIENNX0FSTV9HVEJMT0NLX0lO Rk8gICAgICAgICAgICAgICAgICAgR1RCbG9ja0luZm9bUExBVF9HVEJMT0NLX0NPVU5UXTsNCiAg ICArDQogICAgKyAgLy8vIEdlbmVyaWMgdGltZXIgZnJhbWUgaW5mb3JtYXRpb24NCiAgICArICBD TV9BUk1fR1RCTE9DS19USU1FUl9GUkFNRV9JTkZPICAgICAgIEdUQmxvY2swVGltZXJJbmZvW1BM QVRfR1RGUkFNRV9DT1VOVF07DQogICAgKw0KICAgICsgIC8vLyBXYXRjaGRvZyBpbmZvcm1hdGlv bg0KICAgICsgIENNX0FSTV9HRU5FUklDX1dBVENIRE9HX0lORk8gICAgICAgICAgV2F0Y2hkb2c7 DQogICAgKw0KICAgICsgIC8qKiBTZXJpYWwgcG9ydCBpbmZvcm1hdGlvbiBmb3IgdGhlDQogICAg KyAgICAgIHNlcmlhbCBwb3J0IGNvbnNvbGUgcmVkaXJlY3Rpb24gcG9ydA0KICAgICsgICovDQog ICAgKyAgQ01fQVJNX1NFUklBTF9QT1JUX0lORk8gICAgICAgICAgICAgICBTcGNyU2VyaWFsUG9y dDsNCiAgICArDQogICAgKyAgLy8vIFNlcmlhbCBwb3J0IGluZm9ybWF0aW9uIGZvciB0aGUgREJH MiBVQVJUIHBvcnQNCiAgICArICBDTV9BUk1fU0VSSUFMX1BPUlRfSU5GTyAgICAgICAgICAgICAg IERiZ1NlcmlhbFBvcnQ7DQogICAgKw0KICAgICsgIC8vIFByb2Nlc3NvciB0b3BvbG9neSBpbmZv cm1hdGlvbg0KICAgICsgIENNX0FSTV9QUk9DX0hJRVJBUkNIWV9JTkZPICAgICAgICAgICAgUHJv Y0hpZXJhcmNoeUluZm9bUExBVF9QUk9DX0hJRVJBUkNIWV9OT0RFX0NPVU5UXTsNCiAgICArDQog ICAgKyAgLy8gQ2FjaGUgaW5mb3JtYXRpb24NCiAgICArICBDTV9BUk1fQ0FDSEVfSU5GTyAgICAg ICAgICAgICAgICAgICAgIENhY2hlSW5mb1tQTEFUX0NBQ0hFX0NPVU5UXTsNCiAgICArDQogICAg KyAgLy8gQ2x1c3RlciBwcml2YXRlIHJlc291cmNlcw0KICAgICsgIENNX0FSTV9PQkpfUkVGICAg ICAgICAgICAgICAgICAgICAgICAgQ2x1c3RlclJlc291cmNlc1tDTFVTVEVSX1JFU09VUkNFX0NP VU5UXTsNCiAgICArDQogICAgKyAgLy8gQ29yZSBwcml2YXRlIHJlc291cmNlcw0KICAgICsgIENN X0FSTV9PQkpfUkVGICAgICAgICAgICAgICAgICAgICAgICAgQ29yZVJlc291cmNlc1tDT1JFX1JF U09VUkNFX0NPVU5UXTsNCiAgICArDQogICAgKyAgLy8gU29DIFJlc291cmNlcw0KICAgICsgIENN X0FSTV9PQkpfUkVGICAgICAgICAgICAgICAgICAgICAgICAgU29jUmVzb3VyY2VzW1NPQ19SRVNP VVJDRV9DT1VOVF07DQogICAgKw0KICAgICt9IEVES0lJX0NPTU1PTl9QTEFURk9STV9SRVBPU0lU T1JZX0lORk87DQogICAgKw0KICAgICsjZW5kaWYgLy8gQ09ORklHVVJBVElPTl9NQU5BR0VSX0hf DQogICAgZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5h Z2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmggYi9Q bGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9uTWFu YWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlckZ2cC5oDQogICAgbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCiAgICBpbmRleCAwMDAwMDAwMDAwMDAuLjQ2MjhiN2E4NzlhYQ0KICAgIC0tLSAvZGV2L251 bGwNCiAgICArKysgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9D b25maWd1cmF0aW9uTWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlckZ2cC5oDQogICAgQEAg LTAsMCArMSwxMjIgQEANCiAgICArLyoqIEBmaWxlDQogICAgKw0KICAgICsgIENvcHlyaWdodCAo YykgMjAyMSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsNCiAg ICArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KICAgICsN CiAgICArICBAcGFyIEdsb3NzYXJ5Og0KICAgICsgICAgLSBDbSBvciBDTSAgIC0gQ29uZmlndXJh dGlvbiBNYW5hZ2VyDQogICAgKyAgICAtIE9iaiBvciBPQkogLSBPYmplY3QNCiAgICArKiovDQog ICAgKw0KICAgICsjaWZuZGVmIEZWUF9DT05GSUdVUkFUSU9OX01BTkFHRVJfSF8NCiAgICArI2Rl ZmluZSBGVlBfQ09ORklHVVJBVElPTl9NQU5BR0VSX0hfDQogICAgKw0KICAgICsjaW5jbHVkZSAi Q29uZmlndXJhdGlvbk1hbmFnZXIuaCINCiAgICArDQogICAgKy8qKiBUaGUgbnVtYmVyIG9mIEFD UEkgdGFibGVzIHRvIGluc3RhbGwNCiAgICArKi8NCiAgICArI2RlZmluZSBQTEFUX0FDUElfVEFC TEVfQ09VTlQgICAgICAgMTANCiAgICArDQogICAgKy8qKiBBIGhlbHBlciBtYWNybyBmb3IgbWFw cGluZyBhIHJlZmVyZW5jZSB0b2tlbg0KICAgICsqLw0KICAgICsjZGVmaW5lIFJFRkVSRU5DRV9U T0tFTl9GVlAoRmllbGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg KENNX09CSkVDVF9UT0tFTikoKFVJTlQ4KikmTW9yZWxsb0Z2cFJlcG9zaXRvcnlJbmZvICsgICAg ICAgICAgIFwNCiAgICArICAgIE9GRlNFVF9PRiAoRURLSUlfRlZQX1BMQVRGT1JNX1JFUE9TSVRP UllfSU5GTywgRmllbGQpKQ0KICAgICsNCiAgICArLyoqIEMgYXJyYXkgY29udGFpbmluZyB0aGUg Y29tcGlsZWQgQU1MIHRlbXBsYXRlLg0KICAgICsgICAgVGhlc2Ugc3ltYm9scyBhcmUgZGVmaW5l ZCBpbiB0aGUgYXV0byBnZW5lcmF0ZWQgQyBmaWxlDQogICAgKyAgICBjb250YWluaW5nIHRoZSBB TUwgYnl0ZWNvZGUgYXJyYXkuDQogICAgKyovDQogICAgK2V4dGVybiBDSEFSOCAgZHNkdGZ2cF9h bWxfY29kZVtdOw0KICAgICtleHRlcm4gQ0hBUjggIHNzZHRwY2lmdnBfYW1sX2NvZGVbXTsNCiAg ICArDQogICAgKy8qKiBBIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBGVlAgUGxhdGZvcm0gc3Bl Y2lmaWMgaW5mb3JtYXRpb24NCiAgICArKi8NCiAgICArdHlwZWRlZiBzdHJ1Y3QgRnZwUGxhdGZv cm1SZXBvc2l0b3J5SW5mbyB7DQogICAgKyAgLy8vIExpc3Qgb2YgQUNQSSB0YWJsZXMNCiAgICAr ICBDTV9TVERfT0JKX0FDUElfVEFCTEVfSU5GTyAgICAgICAgICAgIENtQWNwaVRhYmxlTGlzdFtQ TEFUX0FDUElfVEFCTEVfQ09VTlRdOw0KICAgICsNCiAgICArICAvLy8gR0lDIElUUyBpbmZvcm1h dGlvbg0KICAgICsgIENNX0FSTV9HSUNfSVRTX0lORk8gICAgICAgICAgICAgICAgICAgR2ljSXRz SW5mb1syXTsNCiAgICArDQogICAgKyAgLy8vIElUUyBHcm91cCBub2RlDQogICAgKyAgQ01fQVJN X0lUU19HUk9VUF9OT0RFICAgICAgICAgICAgICAgICBJdHNHcm91cEluZm9bMl07DQogICAgKw0K ICAgICsgIC8vLyBJVFMgSWRlbnRpZmllciBhcnJheQ0KICAgICsgIENNX0FSTV9JVFNfSURFTlRJ RklFUiAgICAgICAgICAgICAgICAgSXRzSWRlbnRpZmllckFycmF5WzJdOw0KICAgICsNCiAgICAr ICAvLy8gU01NVXYzIG5vZGUNCiAgICArICBDTV9BUk1fU01NVVYzX05PREUgICAgICAgICAgICAg ICAgICAgIFNtbXVWM0luZm9bMV07DQogICAgKw0KICAgICsgIC8vLyBQQ0kgUm9vdCBjb21wbGV4 IG5vZGUNCiAgICArICBDTV9BUk1fUk9PVF9DT01QTEVYX05PREUgICAgICAgICAgICAgIFJvb3RD b21wbGV4SW5mb1sxXTsNCiAgICArDQogICAgKyAgLy8vIEFycmF5IG9mIERldmljZUlEIG1hcHBp bmcNCiAgICArICBDTV9BUk1fSURfTUFQUElORyAgICAgICAgICAgICAgICAgICAgIERldmljZUlk TWFwcGluZ1syXVsyXTsNCiAgICArDQogICAgKyAgLy8vIFBDSSBjb25maWd1cmF0aW9uIHNwYWNl IGluZm9ybWF0aW9uDQogICAgKyAgQ01fQVJNX1BDSV9DT05GSUdfU1BBQ0VfSU5GTyAgICAgICAg ICBQY2lDb25maWdJbmZvWzFdOw0KICAgICsNCiAgICArfSBFREtJSV9GVlBfUExBVEZPUk1fUkVQ T1NJVE9SWV9JTkZPOw0KICAgICsNCiAgICArLyoqIEEgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhl IHBsYXRmb3JtIGNvbmZpZ3VyYXRpb24NCiAgICArICAgIG1hbmFnZXIgcmVwb3NpdG9yeSBpbmZv cm1hdGlvbg0KICAgICsqLw0KICAgICt0eXBlZGVmIHN0cnVjdCBQbGF0Zm9ybVJlcG9zaXRvcnlJ bmZvIHsNCiAgICArDQogICAgKyAgLy8vIENvbW1vbiBpbmZvcm1hdGlvbg0KICAgICsgIEVES0lJ X0NPTU1PTl9QTEFURk9STV9SRVBPU0lUT1JZX0lORk8gICAqIENvbW1vblBsYXRSZXBvSW5mbzsN CiAgICArDQogICAgKyAgLy8vIEZWUCBQbGF0Zm9ybSBzcGVjaWZpYyBpbmZvcm1hdGlvbg0KICAg ICsgIEVES0lJX0ZWUF9QTEFURk9STV9SRVBPU0lUT1JZX0lORk8gICAgICAqIEZ2cFBsYXRSZXBv SW5mbzsNCiAgICArDQogICAgK30gRURLSUlfUExBVEZPUk1fUkVQT1NJVE9SWV9JTkZPOw0KICAg ICsNCiAgICArZXh0ZXJuIEVES0lJX0NPTU1PTl9QTEFURk9STV9SRVBPU0lUT1JZX0lORk8gQ29t bW9uUGxhdGZvcm1JbmZvOw0KICAgICsNCiAgICArLyoqIFJldHVybiBwbGF0Zm9ybSBzcGVjaWZp YyBBUk0gbmFtZXNwYWNlIG9iamVjdC4NCiAgICArDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBU aGlzICAgICAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgUHJvdG9jb2wu DQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBDbU9iamVjdElkICBUaGUgQ29uZmlndXJhdGlvbiBN YW5hZ2VyIE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIFRva2VuICAgICAgIEFu IG9wdGlvbmFsIHRva2VuIGlkZW50aWZ5aW5nIHRoZSBvYmplY3QuIElmDQogICAgKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQgdGhpcyBtdXN0IGJlIENNX05VTExfVE9LRU4u DQogICAgKyAgQHBhcmFtIFtpbiwgb3V0XSBDbU9iamVjdCAgICBQb2ludGVyIHRvIHRoZSBDb25m aWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0K ICAgICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgQSBwYXJhbWV0ZXIgaXMgaW52YWxpZC4NCiAgICAr ICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBUaGUgcmVxdWlyZWQgb2JqZWN0IGluZm9y bWF0aW9uIGlzIG5vdCBmb3VuZC4NCiAgICArKiovDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJ QVBJDQogICAgK0dldEFybU5hbWVTcGFjZU9iamVjdFBsYXQgKA0KICAgICsgIElOICBDT05TVCBF REtJSV9DT05GSUdVUkFUSU9OX01BTkFHRVJfUFJPVE9DT0wgICogQ09OU1QgVGhpcywNCiAgICAr ICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENtT2JqZWN0SWQsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9UT0tFTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUb2tlbiBPUFRJT05BTCwNCiAgICArICBJTiAgT1VUICAgQ01f T0JKX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0DQogICAg KyAgKTsNCiAgICArDQogICAgKy8qKiBSZXR1cm4gcGxhdGZvcm0gc3BlY2lmaWMgc3RhbmRhcmQg bmFtZXNwYWNlIG9iamVjdC4NCiAgICArDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBUaGlzICAg ICAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgUHJvdG9jb2wuDQogICAg KyAgQHBhcmFtIFtpbl0gICAgICBDbU9iamVjdElkICBUaGUgQ29uZmlndXJhdGlvbiBNYW5hZ2Vy IE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIFRva2VuICAgICAgIEFuIG9wdGlv bmFsIHRva2VuIGlkZW50aWZ5aW5nIHRoZSBvYmplY3QuIElmDQogICAgKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnVzZWQgdGhpcyBtdXN0IGJlIENNX05VTExfVE9LRU4uDQogICAg KyAgQHBhcmFtIFtpbiwgb3V0XSBDbU9iamVjdCAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0 aW9uIE1hbmFnZXIgT2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0KICAgICsg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJldHZhbCBF RklfSU5WQUxJRF9QQVJBTUVURVIgQSBwYXJhbWV0ZXIgaXMgaW52YWxpZC4NCiAgICArICBAcmV0 dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBUaGUgcmVxdWlyZWQgb2JqZWN0IGluZm9ybWF0aW9u IGlzIG5vdCBmb3VuZC4NCiAgICArKiovDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQog ICAgK0dldFN0YW5kYXJkTmFtZVNwYWNlT2JqZWN0UGxhdCAoDQogICAgKyAgSU4gIENPTlNUIEVE S0lJX0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTCAgKiBDT05TVCBUaGlzLA0KICAgICsg IElOICBDT05TVCBDTV9PQkpFQ1RfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q21PYmplY3RJZCwNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RPS0VOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRva2VuIE9QVElPTkFMLA0KICAgICsgIElOICBPVVQgICBDTV9P QkpfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICAgICogQ09OU1QgQ21PYmplY3QNCiAgICAr ICApOw0KICAgICsNCiAgICArI2VuZGlmIC8vIEZWUF9DT05GSUdVUkFUSU9OX01BTkFHRVJfSF8N CiAgICBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29uZmlndXJhdGlvbk1hbmFn ZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvUGxhdGZvcm0uaCBiL1BsYXRmb3JtL0FSTS9Nb3Jl bGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL1BsYXRmb3Jt LmgNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAwMDAwMC4uZTZh ZjZlMTcwZTRhDQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL1BsYXRmb3JtL0FSTS9Nb3Jl bGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL1BsYXRmb3Jt LmgNCiAgICBAQCAtMCwwICsxLDkxIEBADQogICAgKy8qKiBAZmlsZQ0KICAgICsNCiAgICArICBD b3B5cmlnaHQgKGMpIDIwMjEsIEFSTSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N CiAgICArDQogICAgKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCiAgICArKiovDQogICAgKw0KICAgICsjaWZuZGVmIFBMQVRGT1JNX0hfDQogICAgKyNkZWZp bmUgUExBVEZPUk1fSF8NCiAgICArDQogICAgKyNkZWZpbmUgRU5BQkxFX01FTV9NQVBQRURfVElN RVINCiAgICArDQogICAgKyNpZmRlZiBFTkFCTEVfTUVNX01BUFBFRF9USU1FUg0KICAgICsvLyBS RUZDTEsgQ05UQ29udHJvbA0KICAgICsjZGVmaW5lIE1PUkVMTE9fU1lTVEVNX1RJTUVSX0JBU0Vf QUREUkVTUyAgIDB4MkE0MzAwMDANCiAgICArLy8gUkVGQ0xLIENOVFJlYWQNCiAgICArI2RlZmlu ZSBNT1JFTExPX0NOVF9SRUFEX0JBU0VfQUREUkVTUyAgICAgICAweDJBODAwMDAwDQogICAgKyNl bHNlDQogICAgKyNkZWZpbmUgTU9SRUxMT19TWVNURU1fVElNRVJfQkFTRV9BRERSRVNTICAgMHhG RkZGRkZGRkZGRkZGRkZGDQogICAgKyNkZWZpbmUgTU9SRUxMT19DTlRfUkVBRF9CQVNFX0FERFJF U1MgICAgICAgMHhGRkZGRkZGRkZGRkZGRkZGDQogICAgKyNlbmRpZg0KICAgICsNCiAgICArLy8g R1QgQmxvY2sgVGltZXINCiAgICArLy8gQVBfUkVGQ0xLIENOVENUTA0KICAgICsjZGVmaW5lIE1P UkVMTE9fR1RfQkxPQ0tfQ1RMX0JBU0UgICAgICAgICAgIDB4MkE4MTAwMDANCiAgICArI2RlZmlu ZSBNT1JFTExPX1RJTUVSX0ZSQU1FU19DT1VOVCAgICAgICAgICAyDQogICAgKw0KICAgICsvLyBH VCBCbG9jayBUaW1lciBGcmFtZXMNCiAgICArLy8gQVBfUkVGQ0xLX05TIENOVEJhc2UwDQogICAg KyNkZWZpbmUgTU9SRUxMT19HVF9CTE9DS19GUkFNRTBfQ1RMX0JBU0UgICAgICAweDJBODMwMDAw DQogICAgKyNkZWZpbmUgTU9SRUxMT19HVF9CTE9DS19GUkFNRTBfQ1RMX0VMMF9CQVNFICAweEZG RkZGRkZGRkZGRkZGRkYNCiAgICArI2RlZmluZSBNT1JFTExPX0dUX0JMT0NLX0ZSQU1FMF9HU0lW ICAgICAgICAgIDkyDQogICAgKw0KICAgICsvLyBBUF9SRUZDTEtfUyBDTlRCYXNlMQ0KICAgICsj ZGVmaW5lIE1PUkVMTE9fR1RfQkxPQ0tfRlJBTUUxX0NUTF9CQVNFICAgICAgMHgyQTgyMDAwMA0K ICAgICsjZGVmaW5lIE1PUkVMTE9fR1RfQkxPQ0tfRlJBTUUxX0NUTF9FTDBfQkFTRSAgMHhGRkZG RkZGRkZGRkZGRkZGDQogICAgKyNkZWZpbmUgTU9SRUxMT19HVF9CTE9DS19GUkFNRTFfR1NJViAg ICAgICAgICA5MQ0KICAgICsNCiAgICArI2RlZmluZSBHVERUX1RJTUVSX0VER0VfVFJJR0dFUkVE ICAgXA0KICAgICsgICAgICAgICAgRUZJX0FDUElfNl8zX0dURFRfVElNRVJfRkxBR19USU1FUl9J TlRFUlJVUFRfTU9ERQ0KICAgICsjZGVmaW5lIEdURFRfVElNRVJfTEVWRUxfVFJJR0dFUkVEICAw DQogICAgKyNkZWZpbmUgR1REVF9USU1FUl9BQ1RJVkVfTE9XICAgICAgIFwNCiAgICArICAgICAg ICAgIEVGSV9BQ1BJXzZfM19HVERUX1RJTUVSX0ZMQUdfVElNRVJfSU5URVJSVVBUX1BPTEFSSVRZ DQogICAgKyNkZWZpbmUgR1REVF9USU1FUl9BQ1RJVkVfSElHSCAgICAgIDANCiAgICArI2RlZmlu ZSBHVERUX1RJTUVSX1NBVkVfQ09OVEVYVCAgICAgXA0KICAgICsgICAgICAgICAgRUZJX0FDUElf Nl8zX0dURFRfVElNRVJfRkxBR19BTFdBWVNfT05fQ0FQQUJJTElUWQ0KICAgICsjZGVmaW5lIEdU RFRfVElNRVJfTE9TRV9DT05URVhUICAgICAwDQogICAgKw0KICAgICsjZGVmaW5lIE1PUkVMTE9f R1REVF9HVElNRVJfRkxBR1MgICAgICAgKEdURFRfVElNRVJfTE9TRV9DT05URVhUICAgfCBcDQog ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1REVF9USU1FUl9B Q1RJVkVfTE9XICAgfCBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR1REVF9USU1FUl9MRVZFTF9UUklHR0VSRUQpDQogICAgKw0KICAgICsvLyBHVCBCbG9j ayBUaW1lciBGbGFncw0KICAgICsjZGVmaW5lIEdUWF9USU1FUl9FREdFX1RSSUdHRVJFRCAgICBc DQogICAgKyAgICAgICAgICBFRklfQUNQSV82XzNfR1REVF9HVF9CTE9DS19USU1FUl9GTEFHX1RJ TUVSX0lOVEVSUlVQVF9NT0RFDQogICAgKyNkZWZpbmUgR1RYX1RJTUVSX0xFVkVMX1RSSUdHRVJF RCAgIDANCiAgICArI2RlZmluZSBHVFhfVElNRVJfQUNUSVZFX0xPVyAgICAgICAgXA0KICAgICsg ICAgICAgICAgRUZJX0FDUElfNl8zX0dURFRfR1RfQkxPQ0tfVElNRVJfRkxBR19USU1FUl9JTlRF UlJVUFRfUE9MQVJJVFkNCiAgICArI2RlZmluZSBHVFhfVElNRVJfQUNUSVZFX0hJR0ggICAgICAg MA0KICAgICsNCiAgICArI2RlZmluZSBNT1JFTExPX0dUWF9USU1FUl9GTEFHUyAgICAgICAgIChH VFhfVElNRVJfQUNUSVZFX0hJR0ggfCBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR1RYX1RJTUVSX0xFVkVMX1RSSUdHRVJFRCkNCiAgICArDQogICAgKyNk ZWZpbmUgR1RYX1RJTUVSX1NFQ1VSRSAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgIEVGSV9B Q1BJXzZfM19HVERUX0dUX0JMT0NLX0NPTU1PTl9GTEFHX1NFQ1VSRV9USU1FUg0KICAgICsjZGVm aW5lIEdUWF9USU1FUl9OT05fU0VDVVJFICAgICAgICAwDQogICAgKyNkZWZpbmUgR1RYX1RJTUVS X1NBVkVfQ09OVEVYVCAgICAgIFwNCiAgICArICAgICAgICAgIEVGSV9BQ1BJXzZfM19HVERUX0dU X0JMT0NLX0NPTU1PTl9GTEFHX0FMV0FZU19PTl9DQVBBQklMSVRZDQogICAgKyNkZWZpbmUgR1RY X1RJTUVSX0xPU0VfQ09OVEVYVCAgICAgIDANCiAgICArDQogICAgKyNkZWZpbmUgTU9SRUxMT19H VFhfQ09NTU9OX0ZMQUdTX1MgICAgICAoR1RYX1RJTUVSX1NBVkVfQ09OVEVYVCAgICAgIHwgXA0K ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUWF9USU1FUl9T RUNVUkUpDQogICAgKyNkZWZpbmUgTU9SRUxMT19HVFhfQ09NTU9OX0ZMQUdTX05TICAgICAoR1RY X1RJTUVSX1NBVkVfQ09OVEVYVCAgICAgIHwgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdUWF9USU1FUl9OT05fU0VDVVJFKQ0KICAgICsNCiAgICArLy8g V2F0Y2hkb2cNCiAgICArI2RlZmluZSBTQlNBX1dBVENIRE9HX0VER0VfVFJJR0dFUkVEICAgXA0K ICAgICsgICAgICAgICAgRUZJX0FDUElfNl8zX0dURFRfU0JTQV9HRU5FUklDX1dBVENIRE9HX0ZM QUdfVElNRVJfSU5URVJSVVBUX01PREUNCiAgICArI2RlZmluZSBTQlNBX1dBVENIRE9HX0xFVkVM X1RSSUdHRVJFRCAgMA0KICAgICsjZGVmaW5lIFNCU0FfV0FUQ0hET0dfQUNUSVZFX0xPVyAgICAg ICBcDQogICAgKyAgICAgICAgICBFRklfQUNQSV82XzNfR1REVF9TQlNBX0dFTkVSSUNfV0FUQ0hE T0dfRkxBR19USU1FUl9JTlRFUlJVUFRfUE9MQVJJVFkNCiAgICArI2RlZmluZSBTQlNBX1dBVENI RE9HX0FDVElWRV9ISUdIICAgICAgMA0KICAgICsjZGVmaW5lIFNCU0FfV0FUQ0hET0dfU0VDVVJF ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICBFRklfQUNQSV82XzNfR1REVF9TQlNBX0dFTkVS SUNfV0FUQ0hET0dfRkxBR19TRUNVUkVfVElNRVINCiAgICArI2RlZmluZSBTQlNBX1dBVENIRE9H X05PTl9TRUNVUkUgICAgICAgMA0KICAgICsNCiAgICArI2RlZmluZSBNT1JFTExPX1NCU0FfV0FU Q0hET0dfRkxBR1MgICAgICAgIChTQlNBX1dBVENIRE9HX05PTl9TRUNVUkUgICAgICAgfCBcDQog ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0JTQV9XQVRD SERPR19BQ1RJVkVfSElHSCAgICB8IFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTQlNBX1dBVENIRE9HX0xFVkVMX1RSSUdHRVJFRCkNCiAgICArDQog ICAgKyNlbmRpZiAvLyBQTEFURk9STV9IXw0KICAgIGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BUk0v TW9yZWxsby9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9uTWFuYWdlckR4ZS9Db25m aWd1cmF0aW9uTWFuYWdlci5jIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29uZmlndXJhdGlvbk1h bmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvQ29uZmlndXJhdGlvbk1hbmFnZXIuYw0KICAg IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAwMDAwLi44OWZhZGJjYjAz YTgNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29u ZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvQ29uZmlndXJhdGlvbk1h bmFnZXIuYw0KICAgIEBAIC0wLDAgKzEsMTE3MCBAQA0KICAgICsvKiogQGZpbGUNCiAgICArICBD b25maWd1cmF0aW9uIE1hbmFnZXIgRHhlDQogICAgKw0KICAgICsgIENvcHlyaWdodCAoYykgMjAy MSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsNCiAgICArICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KICAgICsNCiAgICAr ICBAcGFyIEdsb3NzYXJ5Og0KICAgICsgICAgLSBDbSBvciBDTSAgIC0gQ29uZmlndXJhdGlvbiBN YW5hZ2VyDQogICAgKyAgICAtIE9iaiBvciBPQkogLSBPYmplY3QNCiAgICArKiovDQogICAgKw0K ICAgICsjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9EZWJ1Z1BvcnQyVGFibGUuaD4NCiAgICAr I2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvU2VyaWFsUG9ydENvbnNvbGVSZWRpcmVjdGlvblRh YmxlLmg+DQogICAgKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQogICAgKyNpbmNsdWRl IDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KICAgICsjaW5jbHVkZSA8UHJv dG9jb2wvQ29uZmlndXJhdGlvbk1hbmFnZXJQcm90b2NvbC5oPg0KICAgICsNCiAgICArI2luY2x1 ZGUgIkNvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmgiDQogICAgKyNpbmNsdWRlICJDb25maWd1cmF0 aW9uTWFuYWdlci5oIg0KICAgICsjaW5jbHVkZSAiUGxhdGZvcm0uaCINCiAgICArDQogICAgK2V4 dGVybiBFREtJSV9QTEFURk9STV9SRVBPU0lUT1JZX0lORk8gTW9yZWxsb1JlcG9zaXRvcnlJbmZv Ow0KICAgICsNCiAgICArLy8gVGhlIHBsYXRmb3JtIGNvbmZpZ3VyYXRpb24gcmVwb3NpdG9yeSBp bmZvcm1hdGlvbi4NCiAgICArRURLSUlfQ09NTU9OX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5GTyBD b21tb25QbGF0Zm9ybUluZm8gPSB7DQogICAgKyAgLy8gQ29uZmlndXJhdGlvbiBNYW5hZ2VyIGlu Zm9ybWF0aW9uDQogICAgKyAgeyBDT05GSUdVUkFUSU9OX01BTkFHRVJfUkVWSVNJT04sIENGR19N R1JfT0VNX0lEIH0sDQogICAgKw0KICAgICsgIC8vIEJvb3QgYXJjaGl0ZWN0dXJlIGluZm9ybWF0 aW9uDQogICAgKyAgeyBFRklfQUNQSV82XzNfQVJNX1BTQ0lfQ09NUExJQU5UIH0sICAgICAgICAg ICAgICAvLyBCb290QXJjaEZsYWdzDQogICAgKw0KICAgICsjaWZkZWYgSEVBRExFU1NfUExBVEZP Uk0NCiAgICArICAvLyBGaXhlZCBmZWF0dXJlIGZsYWcgaW5mb3JtYXRpb24NCiAgICArICB7IEVG SV9BQ1BJXzZfM19IRUFETEVTUyB9LCAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpeGVkIGZl YXR1cmUgZmxhZ3MNCiAgICArI2VuZGlmDQogICAgKw0KICAgICsgIC8vIFBvd2VyIG1hbmFnZW1l bnQgcHJvZmlsZSBpbmZvcm1hdGlvbg0KICAgICsgIHsgRUZJX0FDUElfNl8zX1BNX1BST0ZJTEVf RU5URVJQUklTRV9TRVJWRVIgfSwgICAgLy8gUG93ZXJNYW5hZ2VtZW50IFByb2ZpbGUNCiAgICAr DQogICAgKyAgLyogR0lDIENQVSBJbnRlcmZhY2UgaW5mb3JtYXRpb24NCiAgICArICAgICBHSUNf RU5UUlkgKENQVUludGVyZmFjZU51bWJlciwgTXBpZHIsIFBtdUlycSwgVkdpY0lycSwgR2ljUmVk aXN0QmFzZSwNCiAgICArICAgICAgICAgICAgICAgIEVuZXJneUVmZmljaWVuY3ksIFNwZUlycSwg UHJveGltaXR5RG9tYWluLCBDbG9ja0RvbWFpbikNCiAgICArICAqLw0KICAgICsgIHsNCiAgICAr ICAgIEdJQ0NfRU5UUlkgKDAsIEdFVF9NUElEMyAoMHgwLCAweDAsIDB4MCwgMHgwKSwgMjMsIDI1 LCAwLCAwLCAyMSwgMCwgMCksDQogICAgKyAgICBHSUNDX0VOVFJZICgxLCBHRVRfTVBJRDMgKDB4 MCwgMHgwLCAweDEsIDB4MCksIDIzLCAyNSwgMCwgMCwgMjEsIDAsIDApLA0KICAgICsgICAgR0lD Q19FTlRSWSAoMiwgR0VUX01QSUQzICgweDAsIDB4MSwgMHgwLCAweDApLCAyMywgMjUsIDAsIDAs IDIxLCAwLCAwKSwNCiAgICArICAgIEdJQ0NfRU5UUlkgKDMsIEdFVF9NUElEMyAoMHgwLCAweDEs IDB4MSwgMHgwKSwgMjMsIDI1LCAwLCAwLCAyMSwgMCwgMCksDQogICAgKyAgfSwNCiAgICArDQog ICAgKyAgLy8gR0lDIERpc3RyaWJ1dG9yIEluZm8NCiAgICArICB7DQogICAgKyAgICBGaXhlZFBj ZEdldDY0IChQY2RHaWNEaXN0cmlidXRvckJhc2UpLCAgLy8gVUlOVDY0ICBQaHlzaWNhbEJhc2VB ZGRyZXNzDQogICAgKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVUlOVDMyICBTeXN0ZW1WZWN0b3JCYXNlDQogICAgKyAgICAzICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDggICBHaWNWZXJzaW9uDQogICAgKyAgfSwNCiAg ICArDQogICAgKyAgLy8gR0lDIFJlLURpc3RyaWJ1dG9yIEluZm8NCiAgICArICB7DQogICAgKyAg ICAvLyBVSU5UNjQgIERpc2NvdmVyeVJhbmdlQmFzZUFkZHJlc3MNCiAgICArICAgIEZpeGVkUGNk R2V0NjQgKFBjZEdpY1JlZGlzdHJpYnV0b3JzQmFzZSksDQogICAgKyAgICAvLyBVSU5UMzIgIERp c2NvdmVyeVJhbmdlTGVuZ3RoDQogICAgKyAgICBTSVpFXzFNQg0KICAgICsgIH0sDQogICAgKw0K ICAgICsgIC8vIEdlbmVyaWMgVGltZXIgSW5mbw0KICAgICsgIHsNCiAgICArICAgIC8vIFRoZSBw aHlzaWNhbCBiYXNlIGFkZHJlc3MgZm9yIHRoZSBjb3VudGVyIGNvbnRyb2wgZnJhbWUNCiAgICAr ICAgIE1PUkVMTE9fU1lTVEVNX1RJTUVSX0JBU0VfQUREUkVTUywNCiAgICArICAgIC8vIFRoZSBw aHlzaWNhbCBiYXNlIGFkZHJlc3MgZm9yIHRoZSBjb3VudGVyIHJlYWQgZnJhbWUNCiAgICArICAg IE1PUkVMTE9fQ05UX1JFQURfQkFTRV9BRERSRVNTLA0KICAgICsgICAgLy8gVGhlIHNlY3VyZSBQ TDEgdGltZXIgaW50ZXJydXB0DQogICAgKyAgICBGaXhlZFBjZEdldDMyIChQY2RBcm1BcmNoVGlt ZXJTZWNJbnRyTnVtKSwNCiAgICArICAgIC8vIFRoZSBzZWN1cmUgUEwxIHRpbWVyIGZsYWdzDQog ICAgKyAgICBNT1JFTExPX0dURFRfR1RJTUVSX0ZMQUdTLA0KICAgICsgICAgLy8gVGhlIG5vbi1z ZWN1cmUgUEwxIHRpbWVyIGludGVycnVwdA0KICAgICsgICAgRml4ZWRQY2RHZXQzMiAoUGNkQXJt QXJjaFRpbWVySW50ck51bSksDQogICAgKyAgICAvLyBUaGUgbm9uLXNlY3VyZSBQTDEgdGltZXIg ZmxhZ3MNCiAgICArICAgIE1PUkVMTE9fR1REVF9HVElNRVJfRkxBR1MsDQogICAgKyAgICAvLyBU aGUgdmlydHVhbCB0aW1lciBpbnRlcnJ1cHQNCiAgICArICAgIEZpeGVkUGNkR2V0MzIgKFBjZEFy bUFyY2hUaW1lclZpcnRJbnRyTnVtKSwNCiAgICArICAgIC8vIFRoZSB2aXJ0dWFsIHRpbWVyIGZs YWdzDQogICAgKyAgICBNT1JFTExPX0dURFRfR1RJTUVSX0ZMQUdTLA0KICAgICsgICAgLy8gVGhl IG5vbi1zZWN1cmUgUEwyIHRpbWVyIGludGVycnVwdA0KICAgICsgICAgRml4ZWRQY2RHZXQzMiAo UGNkQXJtQXJjaFRpbWVySHlwSW50ck51bSksDQogICAgKyAgICAvLyBUaGUgbm9uLXNlY3VyZSBQ TDIgdGltZXIgZmxhZ3MNCiAgICArICAgIE1PUkVMTE9fR1REVF9HVElNRVJfRkxBR1MNCiAgICAr ICB9LA0KICAgICsNCiAgICArICAvLyBHZW5lcmljIFRpbWVyIEJsb2NrIEluZm9ybWF0aW9uDQog ICAgKyAgew0KICAgICsgICAgew0KICAgICsgICAgIC8vIFRoZSBwaHlzaWNhbCBiYXNlIGFkZHJl c3MgZm9yIHRoZSBHVCBCbG9jayBUaW1lciBzdHJ1Y3R1cmUNCiAgICArICAgICAgTU9SRUxMT19H VF9CTE9DS19DVExfQkFTRSwNCiAgICArICAgICAgLy8gVGhlIG51bWJlciBvZiB0aW1lciBmcmFt ZXMgaW1wbGVtZW50ZWQgaW4gdGhlIEdUIEJsb2NrDQogICAgKyAgICAgIE1PUkVMTE9fVElNRVJf RlJBTUVTX0NPVU5ULA0KICAgICsgICAgICAvLyBSZWZlcmVuY2UgdG9rZW4gZm9yIHRoZSBHVCBC bG9jayB0aW1lciBmcmFtZSBsaXN0DQogICAgKyAgICAgIFJFRkVSRU5DRV9UT0tFTiAoR1RCbG9j azBUaW1lckluZm8pDQogICAgKyAgICB9DQogICAgKyAgfSwNCiAgICArDQogICAgKyAgLy8gR1Qg QmxvY2sgVGltZXIgRnJhbWVzDQogICAgKyAgew0KICAgICsgICAgLy8gRnJhbWUgMA0KICAgICsg ICAgew0KICAgICsgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFVJTlQ4ICAgRnJhbWVOdW1iZXINCiAgICArICAgICAgTU9SRUxMT19HVF9CTE9DS19GUkFNRTBf Q1RMX0JBU0UsICAgICAvLyBVSU5UNjQgIFBoeXNpY2FsQWRkcmVzc0NudEJhc2UNCiAgICArICAg ICAgTU9SRUxMT19HVF9CTE9DS19GUkFNRTBfQ1RMX0VMMF9CQVNFLCAvLyBVSU5UNjQgIFBoeXNp Y2FsQWRkcmVzc0NudEVMMEJhc2UNCiAgICArICAgICAgTU9SRUxMT19HVF9CTE9DS19GUkFNRTBf R1NJViwgICAgICAgICAvLyBVSU5UMzIgIFBoeXNpY2FsVGltZXJHU0lWDQogICAgKyAgICAgIE1P UkVMTE9fR1RYX1RJTUVSX0ZMQUdTLCAgICAgICAgICAgICAgLy8gVUlOVDMyICBQaHlzaWNhbFRp bWVyRmxhZ3MNCiAgICArICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBVSU5UMzIgIFZpcnR1YWxUaW1lckdTSVYNCiAgICArICAgICAgMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5UMzIgIFZpcnR1YWxUaW1lckZsYWdzDQogICAg KyAgICAgIE1PUkVMTE9fR1RYX0NPTU1PTl9GTEFHU19OUyAgICAgICAgICAgLy8gVUlOVDMyICBD b21tb25GbGFncw0KICAgICsgICAgfSwNCiAgICArICAgIC8vIEZyYW1lIDENCiAgICArICAgIHsN CiAgICArICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5U OCAgIEZyYW1lTnVtYmVyDQogICAgKyAgICAgIE1PUkVMTE9fR1RfQkxPQ0tfRlJBTUUxX0NUTF9C QVNFLCAgICAgLy8gVUlOVDY0ICBQaHlzaWNhbEFkZHJlc3NDbnRCYXNlDQogICAgKyAgICAgIE1P UkVMTE9fR1RfQkxPQ0tfRlJBTUUxX0NUTF9FTDBfQkFTRSwgLy8gVUlOVDY0ICBQaHlzaWNhbEFk ZHJlc3NDbnRFTDBCYXNlDQogICAgKyAgICAgIE1PUkVMTE9fR1RfQkxPQ0tfRlJBTUUxX0dTSVYs ICAgICAgICAgLy8gVUlOVDMyICBQaHlzaWNhbFRpbWVyR1NJVg0KICAgICsgICAgICBNT1JFTExP X0dUWF9USU1FUl9GTEFHUywgICAgICAgICAgICAgIC8vIFVJTlQzMiAgUGh5c2ljYWxUaW1lckZs YWdzDQogICAgKyAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VUlOVDMyICBWaXJ0dWFsVGltZXJHU0lWDQogICAgKyAgICAgIDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBWaXJ0dWFsVGltZXJGbGFncw0KICAgICsgICAg ICBNT1JFTExPX0dUWF9DT01NT05fRkxBR1NfUyAgICAgICAgICAgIC8vIFVJTlQzMiAgQ29tbW9u RmxhZ3MNCiAgICArICAgIH0sDQogICAgKyAgfSwNCiAgICArDQogICAgKyAgLy8gV2F0Y2hkb2cg SW5mbw0KICAgICsgIHsNCiAgICArICAgIC8vIFRoZSBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2Yg dGhlIFNCU0EgV2F0Y2hkb2cgY29udHJvbCBmcmFtZQ0KICAgICsgICAgRml4ZWRQY2RHZXQ2NCAo UGNkR2VuZXJpY1dhdGNoZG9nQ29udHJvbEJhc2UpLA0KICAgICsgICAgLy8gVGhlIHBoeXNpY2Fs IGJhc2UgYWRkcmVzcyBvZiB0aGUgU0JTQSBXYXRjaGRvZyByZWZyZXNoIGZyYW1lDQogICAgKyAg ICBGaXhlZFBjZEdldDY0IChQY2RHZW5lcmljV2F0Y2hkb2dSZWZyZXNoQmFzZSksDQogICAgKyAg ICAvLyBUaGUgd2F0Y2hkb2cgaW50ZXJydXB0DQogICAgKyAgICBGaXhlZFBjZEdldDMyIChQY2RH ZW5lcmljV2F0Y2hkb2dFbDJJbnRyTnVtKSwNCiAgICArICAgIC8vIFRoZSB3YXRjaGRvZyBmbGFn cw0KICAgICsgICAgTU9SRUxMT19TQlNBX1dBVENIRE9HX0ZMQUdTDQogICAgKyAgfSwNCiAgICAr DQogICAgKyAgLy8gU1BDUiBTZXJpYWwgUG9ydA0KICAgICsgIHsNCiAgICArICAgIEZpeGVkUGNk R2V0NjQgKFBjZFNlcmlhbFJlZ2lzdGVyQmFzZSksICAgICAgICAgICAgICAgICAgLy8gQmFzZUFk ZHJlc3MNCiAgICArICAgIEZpeGVkUGNkR2V0MzIgKFBMMDExVWFydEludGVycnVwdCksICAgICAg ICAgICAgICAgICAgICAgLy8gSW50ZXJydXB0DQogICAgKyAgICBGaXhlZFBjZEdldDY0IChQY2RV YXJ0RGVmYXVsdEJhdWRSYXRlKSwgICAgICAgICAgICAgICAgIC8vIEJhdWRSYXRlDQogICAgKyAg ICBGaXhlZFBjZEdldDMyIChQTDAxMVVhcnRDbGtJbkh6KSwgICAgICAgICAgICAgICAgICAgICAg IC8vIENsb2NrDQogICAgKyAgICBFRklfQUNQSV9EQkcyX1BPUlRfU1VCVFlQRV9TRVJJQUxfQVJN X1BMMDExX1VBUlQgICAgICAgIC8vIFBvcnQgc3VidHlwZQ0KICAgICsgIH0sDQogICAgKw0KICAg ICsgIC8vIERlYnVnIFNlcmlhbCBQb3J0DQogICAgKyAgew0KICAgICsgICAgRml4ZWRQY2RHZXQ2 NCAoUGNkU2VyaWFsRGJnUmVnaXN0ZXJCYXNlKSwgICAgICAgICAgICAgICAvLyBCYXNlQWRkcmVz cw0KICAgICsgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBJbnRlcnJ1cHQgLXVudXNlZA0KICAgICsgICAgRml4ZWRQY2RHZXQ2NCAo UGNkU2VyaWFsRGJnVWFydEJhdWRSYXRlKSwgICAgICAgICAgICAgICAvLyBCYXVkUmF0ZQ0KICAg ICsgICAgRml4ZWRQY2RHZXQzMiAoUGNkU2VyaWFsRGJnVWFydENsa0luSHopLCAgICAgICAgICAg ICAgICAvLyBDbG9jaw0KICAgICsgICAgRUZJX0FDUElfREJHMl9QT1JUX1NVQlRZUEVfU0VSSUFM X0FSTV9QTDAxMV9VQVJUICAgICAgICAvLyBQb3J0IHN1YnR5cGUNCiAgICArICB9LA0KICAgICsN CiAgICArICAvLyBQcm9jZXNzb3IgSGllcmFyY2h5IE5vZGVzDQogICAgKyAgew0KICAgICsgICAg Ly8gUGFja2FnZQ0KICAgICsgICAgew0KICAgICsgICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIFRv a2VuDQogICAgKyAgICAgIFJFRkVSRU5DRV9UT0tFTiAoUHJvY0hpZXJhcmNoeUluZm9bMF0pLA0K ICAgICsgICAgICAvLyBVSU5UMzIgIEZsYWdzDQogICAgKyAgICAgIFBST0NfTk9ERV9GTEFHUyAo DQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUEFDS0FHRV9QSFlTSUNBTCwNCiAgICAr ICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSURfSU5WQUxJRCwNCiAgICArICAg ICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSVNfTk9UX1RIUkVBRCwNCiAgICArICAg ICAgICBFRklfQUNQSV82XzNfUFBUVF9OT0RFX0lTX05PVF9MRUFGLA0KICAgICsgICAgICAgIEVG SV9BQ1BJXzZfM19QUFRUX0lNUExFTUVOVEFUSU9OX0lERU5USUNBTA0KICAgICsgICAgICApLA0K ICAgICsgICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIFBhcmVudFRva2VuDQogICAgKyAgICAgIENN X05VTExfVE9LRU4sDQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgR2ljQ1Rva2VuDQog ICAgKyAgICAgIENNX05VTExfVE9LRU4sDQogICAgKyAgICAgIC8vIFVJTlQzMiAgTm9PZlByaXZh dGVSZXNvdXJjZXMNCiAgICArICAgICAgU09DX1JFU09VUkNFX0NPVU5ULA0KICAgICsgICAgICAv LyBDTV9PQkpFQ1RfVE9LRU4gIFByaXZhdGVSZXNvdXJjZXNBcnJheVRva2VuDQogICAgKyAgICAg IFJFRkVSRU5DRV9UT0tFTiAoU29jUmVzb3VyY2VzKQ0KICAgICsgICAgfSwNCiAgICArDQogICAg KyAgICAvLyBDbHVzdGVyMA0KICAgICsgICAgew0KICAgICsgICAgICAvLyBDTV9PQkpFQ1RfVE9L RU4gIFRva2VuDQogICAgKyAgICAgIFJFRkVSRU5DRV9UT0tFTiAoUHJvY0hpZXJhcmNoeUluZm9b MV0pLA0KICAgICsgICAgICAvLyBVSU5UMzIgIEZsYWdzDQogICAgKyAgICAgIFBST0NfTk9ERV9G TEFHUyAoDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUEFDS0FHRV9OT1RfUEhZU0lD QUwsDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUFJPQ0VTU09SX0lEX0lOVkFMSUQs DQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUFJPQ0VTU09SX0lTX05PVF9USFJFQUQs DQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfTk9ERV9JU19OT1RfTEVBRiwNCiAgICAr ICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9JTVBMRU1FTlRBVElPTl9JREVOVElDQUwNCiAgICAr ICAgICAgKSwNCiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBQYXJlbnRUb2tlbg0KICAg ICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKFByb2NIaWVyYXJjaHlJbmZvWzBdKSwgLy8gLT4gUGFj a2FnZQ0KICAgICsgICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIEdpY0NUb2tlbg0KICAgICsgICAg ICBDTV9OVUxMX1RPS0VOLA0KICAgICsgICAgICAvLyBVSU5UMzIgIE5vT2ZQcml2YXRlUmVzb3Vy Y2VzDQogICAgKyAgICAgIENMVVNURVJfUkVTT1VSQ0VfQ09VTlQsDQogICAgKyAgICAgIC8vIENN X09CSkVDVF9UT0tFTiAgUHJpdmF0ZVJlc291cmNlc0FycmF5VG9rZW4NCiAgICArICAgICAgUkVG RVJFTkNFX1RPS0VOIChDbHVzdGVyUmVzb3VyY2VzKQ0KICAgICsgICAgfSwNCiAgICArICAgIC8v IENsdXN0ZXIxDQogICAgKyAgICB7DQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgVG9r ZW4NCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChQcm9jSGllcmFyY2h5SW5mb1syXSksDQog ICAgKyAgICAgIC8vIFVJTlQzMiAgRmxhZ3MNCiAgICArICAgICAgUFJPQ19OT0RFX0ZMQUdTICgN CiAgICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QQUNLQUdFX05PVF9QSFlTSUNBTCwNCiAg ICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSURfSU5WQUxJRCwNCiAgICAr ICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSVNfTk9UX1RIUkVBRCwNCiAgICAr ICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9OT0RFX0lTX05PVF9MRUFGLA0KICAgICsgICAgICAg IEVGSV9BQ1BJXzZfM19QUFRUX0lNUExFTUVOVEFUSU9OX0lERU5USUNBTA0KICAgICsgICAgICAp LA0KICAgICsgICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIFBhcmVudFRva2VuDQogICAgKyAgICAg IFJFRkVSRU5DRV9UT0tFTiAoUHJvY0hpZXJhcmNoeUluZm9bMF0pLCAvLyAtPiBQYWNrYWdlDQog ICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgR2ljQ1Rva2VuDQogICAgKyAgICAgIENNX05V TExfVE9LRU4sDQogICAgKyAgICAgIC8vIFVJTlQzMiAgTm9PZlByaXZhdGVSZXNvdXJjZXMNCiAg ICArICAgICAgQ0xVU1RFUl9SRVNPVVJDRV9DT1VOVCwNCiAgICArICAgICAgLy8gQ01fT0JKRUNU X1RPS0VOICBQcml2YXRlUmVzb3VyY2VzQXJyYXlUb2tlbg0KICAgICsgICAgICBSRUZFUkVOQ0Vf VE9LRU4gKENsdXN0ZXJSZXNvdXJjZXMpDQogICAgKyAgICB9LA0KICAgICsgICAgLy8gQ2x1c3Rl cjAgLSBDcHUwDQogICAgKyAgICB7DQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgVG9r ZW4NCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChQcm9jSGllcmFyY2h5SW5mb1szXSksDQog ICAgKyAgICAgIC8vIFVJTlQzMiAgRmxhZ3MNCiAgICArICAgICAgUFJPQ19OT0RFX0ZMQUdTICgN CiAgICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QQUNLQUdFX05PVF9QSFlTSUNBTCwNCiAg ICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSURfVkFMSUQsDQogICAgKyAg ICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUFJPQ0VTU09SX0lTX05PVF9USFJFQUQsDQogICAgKyAg ICAgICAgRUZJX0FDUElfNl8zX1BQVFRfTk9ERV9JU19MRUFGLA0KICAgICsgICAgICAgIEVGSV9B Q1BJXzZfM19QUFRUX0lNUExFTUVOVEFUSU9OX05PVF9JREVOVElDQUwNCiAgICArICAgICAgKSwN CiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBQYXJlbnRUb2tlbg0KICAgICsgICAgICBS RUZFUkVOQ0VfVE9LRU4gKFByb2NIaWVyYXJjaHlJbmZvWzFdKSwgLy8gLT4gJ2NsdXN0ZXIgaW4g Q2x1c3RlcjANCiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBHaWNDVG9rZW4NCiAgICAr ICAgICAgUkVGRVJFTkNFX1RPS0VOIChHaWNDSW5mb1swXSksDQogICAgKyAgICAgIC8vIFVJTlQz MiAgTm9PZlByaXZhdGVSZXNvdXJjZXMNCiAgICArICAgICAgQ09SRV9SRVNPVVJDRV9DT1VOVCwN CiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBQcml2YXRlUmVzb3VyY2VzQXJyYXlUb2tl bg0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKENvcmVSZXNvdXJjZXMpDQogICAgKyAgICB9 LA0KICAgICsgICAgLy8gQ2x1c3RlcjAgLSBDcHUxDQogICAgKyAgICB7DQogICAgKyAgICAgIC8v IENNX09CSkVDVF9UT0tFTiAgVG9rZW4NCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChQcm9j SGllcmFyY2h5SW5mb1s0XSksDQogICAgKyAgICAgIC8vIFVJTlQzMiAgRmxhZ3MNCiAgICArICAg ICAgUFJPQ19OT0RFX0ZMQUdTICgNCiAgICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QQUNL QUdFX05PVF9QSFlTSUNBTCwNCiAgICArICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9QUk9DRVNT T1JfSURfVkFMSUQsDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUFJPQ0VTU09SX0lT X05PVF9USFJFQUQsDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfTk9ERV9JU19MRUFG LA0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19QUFRUX0lNUExFTUVOVEFUSU9OX05PVF9JREVO VElDQUwNCiAgICArICAgICAgKSwNCiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBQYXJl bnRUb2tlbg0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKFByb2NIaWVyYXJjaHlJbmZvWzFd KSwgLy8gLT4gJ2NsdXN0ZXIgaW4gQ2x1c3RlcjANCiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RP S0VOICBHaWNDVG9rZW4NCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChHaWNDSW5mb1sxXSks DQogICAgKyAgICAgIC8vIFVJTlQzMiAgTm9PZlByaXZhdGVSZXNvdXJjZXMNCiAgICArICAgICAg Q09SRV9SRVNPVVJDRV9DT1VOVCwNCiAgICArICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBQcml2 YXRlUmVzb3VyY2VzQXJyYXlUb2tlbg0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKENvcmVS ZXNvdXJjZXMpDQogICAgKyAgICB9LA0KICAgICsgICAgLy8gQ2x1c3RlcjEgLSBDcHUwDQogICAg KyAgICB7DQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgVG9rZW4NCiAgICArICAgICAg UkVGRVJFTkNFX1RPS0VOIChQcm9jSGllcmFyY2h5SW5mb1szXSksDQogICAgKyAgICAgIC8vIFVJ TlQzMiAgRmxhZ3MNCiAgICArICAgICAgUFJPQ19OT0RFX0ZMQUdTICgNCiAgICArICAgICAgICBF RklfQUNQSV82XzNfUFBUVF9QQUNLQUdFX05PVF9QSFlTSUNBTCwNCiAgICArICAgICAgICBFRklf QUNQSV82XzNfUFBUVF9QUk9DRVNTT1JfSURfVkFMSUQsDQogICAgKyAgICAgICAgRUZJX0FDUElf Nl8zX1BQVFRfUFJPQ0VTU09SX0lTX05PVF9USFJFQUQsDQogICAgKyAgICAgICAgRUZJX0FDUElf Nl8zX1BQVFRfTk9ERV9JU19MRUFGLA0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19QUFRUX0lN UExFTUVOVEFUSU9OX05PVF9JREVOVElDQUwNCiAgICArICAgICAgKSwNCiAgICArICAgICAgLy8g Q01fT0JKRUNUX1RPS0VOICBQYXJlbnRUb2tlbg0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4g KFByb2NIaWVyYXJjaHlJbmZvWzJdKSwgLy8gLT4gJ2NsdXN0ZXIgaW4gQ2x1c3RlcjENCiAgICAr ICAgICAgLy8gQ01fT0JKRUNUX1RPS0VOICBHaWNDVG9rZW4NCiAgICArICAgICAgUkVGRVJFTkNF X1RPS0VOIChHaWNDSW5mb1syXSksDQogICAgKyAgICAgIC8vIFVJTlQzMiAgTm9PZlByaXZhdGVS ZXNvdXJjZXMNCiAgICArICAgICAgQ09SRV9SRVNPVVJDRV9DT1VOVCwNCiAgICArICAgICAgLy8g Q01fT0JKRUNUX1RPS0VOICBQcml2YXRlUmVzb3VyY2VzQXJyYXlUb2tlbg0KICAgICsgICAgICBS RUZFUkVOQ0VfVE9LRU4gKENvcmVSZXNvdXJjZXMpDQogICAgKyAgICB9LA0KICAgICsNCiAgICAr ICAgIC8vIENsdXN0ZXIxIC0gQ3B1MQ0KICAgICsgICAgew0KICAgICsgICAgICAvLyBDTV9PQkpF Q1RfVE9LRU4gIFRva2VuDQogICAgKyAgICAgIFJFRkVSRU5DRV9UT0tFTiAoUHJvY0hpZXJhcmNo eUluZm9bNF0pLA0KICAgICsgICAgICAvLyBVSU5UMzIgIEZsYWdzDQogICAgKyAgICAgIFBST0Nf Tk9ERV9GTEFHUyAoDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUEFDS0FHRV9OT1Rf UEhZU0lDQUwsDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8zX1BQVFRfUFJPQ0VTU09SX0lEX1ZB TElELA0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19QUFRUX1BST0NFU1NPUl9JU19OT1RfVEhS RUFELA0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19QUFRUX05PREVfSVNfTEVBRiwNCiAgICAr ICAgICAgICBFRklfQUNQSV82XzNfUFBUVF9JTVBMRU1FTlRBVElPTl9OT1RfSURFTlRJQ0FMDQog ICAgKyAgICAgICksDQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgUGFyZW50VG9rZW4N CiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChQcm9jSGllcmFyY2h5SW5mb1syXSksIC8vIC0+ ICdjbHVzdGVyIGluIENsdXN0ZXIxDQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgR2lj Q1Rva2VuDQogICAgKyAgICAgIFJFRkVSRU5DRV9UT0tFTiAoR2ljQ0luZm9bM10pLA0KICAgICsg ICAgICAvLyBVSU5UMzIgIE5vT2ZQcml2YXRlUmVzb3VyY2VzDQogICAgKyAgICAgIENPUkVfUkVT T1VSQ0VfQ09VTlQsDQogICAgKyAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgUHJpdmF0ZVJlc291 cmNlc0FycmF5VG9rZW4NCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChDb3JlUmVzb3VyY2Vz KQ0KICAgICsgICAgfSwNCiAgICArICB9LA0KICAgICsNCiAgICArICAvLyBDYWNoZSBpbmZvcm1h dGlvbg0KICAgICsgIHsNCiAgICArICAgIC8vICdjbHVzdGVyJ3MgTDMgY2FjaGUNCiAgICArICAg IHsNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChDYWNoZUluZm9bMF0pLCAgLy8gQ01fT0JK RUNUX1RPS0VOICBUb2tlbg0KICAgICsgICAgICBDTV9OVUxMX1RPS0VOLCAgICAgICAgICAgICAg ICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIE5leHRMZXZlbE9mQ2FjaGVUb2tlbg0KICAgICsgICAg ICBTSVpFXzFNQiwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5UMzIgIFNpemUNCiAgICAr ICAgICAgMjA0OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBOdW1iZXJP ZlNldHMNCiAgICArICAgICAgOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlO VDMyICBBc3NvY2lhdGl2aXR5DQogICAgKyAgICAgIENBQ0hFX0FUVFJJQlVURVMgKCAgICAgICAg ICAgICAgIC8vIFVJTlQ4ICAgQXR0cmlidXRlcw0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19D QUNIRV9BVFRSSUJVVEVTX0FMTE9DQVRJT05fUkVBRCwNCiAgICArICAgICAgICBFRklfQUNQSV82 XzNfQ0FDSEVfQVRUUklCVVRFU19DQUNIRV9UWVBFX1VOSUZJRUQsDQogICAgKyAgICAgICAgRUZJ X0FDUElfNl8zX0NBQ0hFX0FUVFJJQlVURVNfV1JJVEVfUE9MSUNZX1dSSVRFX0JBQ0sNCiAgICAr ICAgICAgKSwNCiAgICArICAgICAgNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VUlOVDE2ICBMaW5lU2l6ZQ0KICAgICsgICAgfSwNCiAgICArICAgIC8vICdjb3JlJ3MgTDEgaW5z dHJ1Y3Rpb24gY2FjaGUNCiAgICArICAgIHsNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChD YWNoZUluZm9bMV0pLCAgLy8gQ01fT0JKRUNUX1RPS0VOICBUb2tlbg0KICAgICsgICAgICBSRUZF UkVOQ0VfVE9LRU4gKENhY2hlSW5mb1szXSksICAvLyBDTV9PQkpFQ1RfVE9LRU4gIE5leHRMZXZl bE9mQ2FjaGVUb2tlbg0KICAgICsgICAgICBTSVpFXzY0S0IsICAgICAgICAgICAgICAgICAgICAg ICAvLyBVSU5UMzIgIFNpemUNCiAgICArICAgICAgMjU2LCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVUlOVDMyICBOdW1iZXJPZlNldHMNCiAgICArICAgICAgNCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBBc3NvY2lhdGl2aXR5DQogICAgKyAgICAgIENB Q0hFX0FUVFJJQlVURVMgKCAgICAgICAgICAgICAgIC8vIFVJTlQ4ICAgQXR0cmlidXRlcw0KICAg ICsgICAgICAgIEVGSV9BQ1BJXzZfM19DQUNIRV9BVFRSSUJVVEVTX0FMTE9DQVRJT05fUkVBRCwN CiAgICArICAgICAgICBFRklfQUNQSV82XzNfQ0FDSEVfQVRUUklCVVRFU19DQUNIRV9UWVBFX0lO U1RSVUNUSU9OLA0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19DQUNIRV9BVFRSSUJVVEVTX1dS SVRFX1BPTElDWV9XUklURV9CQUNLDQogICAgKyAgICAgICksDQogICAgKyAgICAgIDY0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVJTlQxNiAgTGluZVNpemUNCiAgICArICAgIH0s DQogICAgKyAgICAvLyAnY29yZSdzIEwxIGRhdGEgY2FjaGUNCiAgICArICAgIHsNCiAgICArICAg ICAgUkVGRVJFTkNFX1RPS0VOIChDYWNoZUluZm9bMl0pLCAgLy8gQ01fT0JKRUNUX1RPS0VOICBU b2tlbg0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKENhY2hlSW5mb1szXSksICAvLyBDTV9P QkpFQ1RfVE9LRU4gIE5leHRMZXZlbE9mQ2FjaGVUb2tlbg0KICAgICsgICAgICBTSVpFXzY0S0Is ICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5UMzIgIFNpemUNCiAgICArICAgICAgMjU2LCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBOdW1iZXJPZlNldHMNCiAgICAr ICAgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBBc3NvY2lh dGl2aXR5DQogICAgKyAgICAgIENBQ0hFX0FUVFJJQlVURVMgKCAgICAgICAgICAgICAgIC8vIFVJ TlQ4ICAgQXR0cmlidXRlcw0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZfM19DQUNIRV9BVFRSSUJV VEVTX0FMTE9DQVRJT05fUkVBRF9XUklURSwNCiAgICArICAgICAgICBFRklfQUNQSV82XzNfQ0FD SEVfQVRUUklCVVRFU19DQUNIRV9UWVBFX0RBVEEsDQogICAgKyAgICAgICAgRUZJX0FDUElfNl8z X0NBQ0hFX0FUVFJJQlVURVNfV1JJVEVfUE9MSUNZX1dSSVRFX0JBQ0sNCiAgICArICAgICAgKSwN CiAgICArICAgICAgNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDE2ICBM aW5lU2l6ZQ0KICAgICsgICAgfSwNCiAgICArICAgIC8vIGNvcmVzJ3MgTDIgY2FjaGUNCiAgICAr ICAgIHsNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOIChDYWNoZUluZm9bM10pLCAgLy8gQ01f T0JKRUNUX1RPS0VOICBUb2tlbg0KICAgICsgICAgICBDTV9OVUxMX1RPS0VOLCAgICAgICAgICAg ICAgICAgICAvLyBDTV9PQkpFQ1RfVE9LRU4gIE5leHRMZXZlbE9mQ2FjaGVUb2tlbg0KICAgICsg ICAgICBTSVpFXzFNQiwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5UMzIgIFNpemUNCiAg ICArICAgICAgMjA0OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUlOVDMyICBOdW1i ZXJPZlNldHMNCiAgICArICAgICAgOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VUlOVDMyICBBc3NvY2lhdGl2aXR5DQogICAgKyAgICAgIENBQ0hFX0FUVFJJQlVURVMgKCAgICAg ICAgICAgICAgIC8vIFVJTlQ4ICAgQXR0cmlidXRlcw0KICAgICsgICAgICAgIEVGSV9BQ1BJXzZf M19DQUNIRV9BVFRSSUJVVEVTX0FMTE9DQVRJT05fUkVBRCwNCiAgICArICAgICAgICBFRklfQUNQ SV82XzNfQ0FDSEVfQVRUUklCVVRFU19DQUNIRV9UWVBFX1VOSUZJRUQsDQogICAgKyAgICAgICAg RUZJX0FDUElfNl8zX0NBQ0hFX0FUVFJJQlVURVNfV1JJVEVfUE9MSUNZX1dSSVRFX0JBQ0sNCiAg ICArICAgICAgKSwNCiAgICArICAgICAgNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVUlOVDE2ICBMaW5lU2l6ZQ0KICAgICsgICAgfSwNCiAgICArICAgIC8vIHNsYyBjYWNoZQ0K ICAgICsgICAgew0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU4gKENhY2hlSW5mb1s0XSksICAv LyBDTV9PQkpFQ1RfVE9LRU4gIFRva2VuDQogICAgKyAgICAgIENNX05VTExfVE9LRU4sICAgICAg ICAgICAgICAgICAgIC8vIENNX09CSkVDVF9UT0tFTiAgTmV4dExldmVsT2ZDYWNoZVRva2VuDQog ICAgKyAgICAgIFNJWkVfOE1CLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVJTlQzMiAgU2l6 ZQ0KICAgICsgICAgICA0MDk2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVSU5UMzIg IE51bWJlck9mU2V0cw0KICAgICsgICAgICAxNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBVSU5UMzIgIEFzc29jaWF0aXZpdHkNCiAgICArICAgICAgQ0FDSEVfQVRUUklCVVRFUyAo ICAgICAgICAgICAgICAgLy8gVUlOVDggICBBdHRyaWJ1dGVzDQogICAgKyAgICAgICAgRUZJX0FD UElfNl8zX0NBQ0hFX0FUVFJJQlVURVNfQUxMT0NBVElPTl9SRUFELA0KICAgICsgICAgICAgIEVG SV9BQ1BJXzZfM19DQUNIRV9BVFRSSUJVVEVTX0NBQ0hFX1RZUEVfVU5JRklFRCwNCiAgICArICAg ICAgICBFRklfQUNQSV82XzNfQ0FDSEVfQVRUUklCVVRFU19XUklURV9QT0xJQ1lfV1JJVEVfQkFD Sw0KICAgICsgICAgICApLA0KICAgICsgICAgICA2NCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBVSU5UMTYgIExpbmVTaXplDQogICAgKyAgICB9LA0KICAgICsgIH0sDQogICAgKyAg Ly8gUmVzb3VyY2VzIHByaXZhdGUgdG8gdGhlICdjbHVzdGVyIChzaGFyZWQgYW1vbmcgY29yZXMp IGluIENsdXN0ZXINCiAgICArICB7DQogICAgKyAgICB7IFJFRkVSRU5DRV9UT0tFTiAoQ2FjaGVJ bmZvWzBdKSB9ICAvLyAtPiAnY2x1c3RlcidzIEwzIGNhY2hlIGluIENsdXN0ZXINCiAgICArICB9 LA0KICAgICsgIC8vIFJlc291cmNlcyBwcml2YXRlIHRvIGVhY2ggaW5kaXZpZHVhbCAnY29yZSBp bnN0YW5jZSBpbiBDbHVzdGVyDQogICAgKyAgew0KICAgICsgICAgeyBSRUZFUkVOQ0VfVE9LRU4g KENhY2hlSW5mb1sxXSkgfSwgLy8gLT4gJ2NvcmUncyBMMSBJLWNhY2hlIGluIENsdXN0ZXINCiAg ICArICAgIHsgUkVGRVJFTkNFX1RPS0VOIChDYWNoZUluZm9bMl0pIH0sIC8vIC0+ICdjb3JlJ3Mg TDEgRC1jYWNoZSBpbiBDbHVzdGVyDQogICAgKyAgICB7IFJFRkVSRU5DRV9UT0tFTiAoQ2FjaGVJ bmZvWzNdKSB9ICAvLyAtPiAnY29yZSdzIEwyIGNhY2hlIGluIENsdXN0ZXINCiAgICArICB9LA0K ICAgICsNCiAgICArICAvLyBSZXNvdXJjZXMgcHJpdmF0ZSB0byB0aGUgU29DDQogICAgKyAgew0K ICAgICsgICAgeyBSRUZFUkVOQ0VfVE9LRU4gKENhY2hlSW5mb1s0XSkgfSAgLy8gLT4gc2xjIGZv ciBTb0MNCiAgICArICB9LA0KICAgICt9Ow0KICAgICsNCiAgICArLyoqIEEgaGVscGVyIGZ1bmN0 aW9uIGZvciByZXR1cm5pbmcgdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3RzLg0KICAg ICsNCiAgICArICBAcGFyYW0gW2luXSAgICAgICBDbU9iamVjdElkICAgICBUaGUgQ29uZmlndXJh dGlvbiBNYW5hZ2VyIE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgICBPYmplY3Qg ICAgICAgICBQb2ludGVyIHRvIHRoZSBPYmplY3QocykuDQogICAgKyAgQHBhcmFtIFtpbl0gICAg ICAgT2JqZWN0U2l6ZSAgICAgVG90YWwgc2l6ZSBvZiB0aGUgT2JqZWN0KHMpLg0KICAgICsgIEBw YXJhbSBbaW5dICAgICAgIE9iamVjdENvdW50ICAgIE51bWJlciBvZiBPYmplY3RzLg0KICAgICsg IEBwYXJhbSBbaW4sIG91dF0gIENtT2JqZWN0RGVzYyAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3Vy YXRpb24gTWFuYWdlciBPYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0K ICAgICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyoqLw0K ICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQSQ0KICAgICtIYW5kbGVDbU9iamVjdCAoDQogICAg KyAgSU4gIENPTlNUIENNX09CSkVDVF9JRCAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAg ICsgIElOICAgICAgICBWT0lEICAgICAgICAgICAgICAgICogICAgICAgT2JqZWN0LA0KICAgICsg IElOICBDT05TVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0U2l6ZSwNCiAgICAr ICBJTiAgQ09OU1QgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgIE9iamVjdENvdW50LA0KICAg ICsgIElOICBPVVQgICBDTV9PQkpfREVTQ1JJUFRPUiAgICogQ09OU1QgQ21PYmplY3REZXNjDQog ICAgKyAgKQ0KICAgICt7DQogICAgKyAgQ21PYmplY3REZXNjLT5PYmplY3RJZCA9IENtT2JqZWN0 SWQ7DQogICAgKyAgQ21PYmplY3REZXNjLT5TaXplID0gT2JqZWN0U2l6ZTsNCiAgICArICBDbU9i amVjdERlc2MtPkRhdGEgPSAoVk9JRCopT2JqZWN0Ow0KICAgICsgIENtT2JqZWN0RGVzYy0+Q291 bnQgPSBPYmplY3RDb3VudDsNCiAgICArICBERUJVRyAoKA0KICAgICsgICAgREVCVUdfSU5GTywN CiAgICArICAgICJJTkZPOiBDbU9iamVjdElkID0gJXgsIFB0ciA9IDB4JXAsIFNpemUgPSAlZCwg Q291bnQgPSAlZFxuIiwNCiAgICArICAgIENtT2JqZWN0SWQsDQogICAgKyAgICBDbU9iamVjdERl c2MtPkRhdGEsDQogICAgKyAgICBDbU9iamVjdERlc2MtPlNpemUsDQogICAgKyAgICBDbU9iamVj dERlc2MtPkNvdW50DQogICAgKyAgICApKTsNCiAgICArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQog ICAgK30NCiAgICArDQogICAgKy8qKiBBIGhlbHBlciBmdW5jdGlvbiBmb3IgcmV0dXJuaW5nIHRo ZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0cyB0aGF0DQogICAgKyAgICBtYXRjaCB0aGUg dG9rZW4uDQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICBUaGlzICAgICAgICAgICAgICAgUG9p bnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBwYXJh bSBbaW5dICBDbU9iamVjdElkICAgICAgICAgVGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmpl Y3QgSUQuDQogICAgKyAgQHBhcmFtIFtpbl0gIE9iamVjdCAgICAgICAgICAgICBQb2ludGVyIHRv IHRoZSBPYmplY3QocykuDQogICAgKyAgQHBhcmFtIFtpbl0gIE9iamVjdFNpemUgICAgICAgICBU b3RhbCBzaXplIG9mIHRoZSBPYmplY3QocykuDQogICAgKyAgQHBhcmFtIFtpbl0gIE9iamVjdENv dW50ICAgICAgICBOdW1iZXIgb2YgT2JqZWN0cy4NCiAgICArICBAcGFyYW0gW2luXSAgVG9rZW4g ICAgICAgICAgICAgIEEgdG9rZW4gaWRlbnRpZnlpbmcgdGhlIG9iamVjdC4NCiAgICArICBAcGFy YW0gW2luXSAgSGFuZGxlclByb2MgICAgICAgIEEgaGFuZGxlciBmdW5jdGlvbiB0byBzZWFyY2gg dGhlIG9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJl bmNlZCBieSB0aGUgdG9rZW4uDQogICAgKyAgQHBhcmFtIFtpbiwgb3V0XSAgQ21PYmplY3REZXNj ICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0DQogICAgKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJl cXVlc3RlZCBPYmplY3QuDQogICAgKw0KICAgICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgQSBwYXJh bWV0ZXIgaXMgaW52YWxpZC4NCiAgICArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBU aGUgcmVxdWlyZWQgb2JqZWN0IGluZm9ybWF0aW9uIGlzIG5vdCBmb3VuZC4NCiAgICArKiovDQog ICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK0hhbmRsZUNtT2JqZWN0UmVmQnlUb2tl biAoDQogICAgKyAgSU4gIENPTlNUIEVES0lJX0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NP TCAgKiBDT05TVCBUaGlzLA0KICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfSUQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICBJTiAgICAgICAgVk9J RCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgIE9iamVjdCwNCiAgICAr ICBJTiAgQ09OU1QgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE9iamVjdFNpemUsDQogICAgKyAgSU4gIENPTlNUIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPYmplY3RDb3VudCwNCiAgICArICBJTiAgQ09OU1QgQ01fT0JK RUNUX1RPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuLA0KICAgICsgIElO ICBDT05TVCBDTV9PQkpFQ1RfSEFORExFUl9QUk9DICAgICAgICAgICAgICAgICAgICAgICAgSGFu ZGxlclByb2MsDQogICAgKyAgSU4gIE9VVCAgIENNX09CSl9ERVNDUklQVE9SICAgICAgICAgICAg ICAgICAgICAgKiBDT05TVCBDbU9iamVjdERlc2MNCiAgICArICApDQogICAgK3sNCiAgICArICBF RklfU1RBVFVTICBTdGF0dXM7DQogICAgKyAgQ21PYmplY3REZXNjLT5PYmplY3RJZCA9IENtT2Jq ZWN0SWQ7DQogICAgKyAgaWYgKFRva2VuID09IENNX05VTExfVE9LRU4pIHsNCiAgICArICAgIENt T2JqZWN0RGVzYy0+U2l6ZSA9IE9iamVjdFNpemU7DQogICAgKyAgICBDbU9iamVjdERlc2MtPkRh dGEgPSAoVk9JRCopT2JqZWN0Ow0KICAgICsgICAgQ21PYmplY3REZXNjLT5Db3VudCA9IE9iamVj dENvdW50Ow0KICAgICsgICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQogICAgKyAgfSBlbHNlIHsN CiAgICArICAgIFN0YXR1cyA9IEhhbmRsZXJQcm9jIChUaGlzLCBDbU9iamVjdElkLCBUb2tlbiwg Q21PYmplY3REZXNjKTsNCiAgICArICB9DQogICAgKw0KICAgICsgIERFQlVHICgoDQogICAgKyAg ICBERUJVR19JTkZPLA0KICAgICsgICAgIklORk86IFRva2VuID0gMHglcCwgQ21PYmplY3RJZCA9 ICV4LCBQdHIgPSAweCVwLCBTaXplID0gJWQsIENvdW50ID0gJWRcbiIsDQogICAgKyAgICAoVk9J RCopVG9rZW4sDQogICAgKyAgICBDbU9iamVjdElkLA0KICAgICsgICAgQ21PYmplY3REZXNjLT5E YXRhLA0KICAgICsgICAgQ21PYmplY3REZXNjLT5TaXplLA0KICAgICsgICAgQ21PYmplY3REZXNj LT5Db3VudA0KICAgICsgICAgKSk7DQogICAgKyAgcmV0dXJuIFN0YXR1czsNCiAgICArfQ0KICAg ICsNCiAgICArLyoqIEEgaGVscGVyIGZ1bmN0aW9uIGZvciByZXR1cm5pbmcgQ29uZmlndXJhdGlv biBNYW5hZ2VyIE9iamVjdChzKSByZWZlcmVuY2VkDQogICAgKyAgICBieSB0b2tlbiB3aGVuIHRo ZSBlbnRpcmUgcGxhdGZvcm0gcmVwb3NpdG9yeSBpcyBpbiBzY29wZSBhbmQgdGhlDQogICAgKyAg ICBDTV9OVUxMX1RPS0VOIHZhbHVlIGlzIG5vdCBhbGxvd2VkLg0KICAgICsNCiAgICArICBAcGFy YW0gW2luXSAgVGhpcyAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24g TWFuYWdlciBQcm90b2NvbC4NCiAgICArICBAcGFyYW0gW2luXSAgQ21PYmplY3RJZCAgICAgICAg IFRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0IElELg0KICAgICsgIEBwYXJhbSBbaW5d ICBUb2tlbiAgICAgICAgICAgICAgQSB0b2tlbiBpZGVudGlmeWluZyB0aGUgb2JqZWN0Lg0KICAg ICsgIEBwYXJhbSBbaW5dICBIYW5kbGVyUHJvYyAgICAgICAgQSBoYW5kbGVyIGZ1bmN0aW9uIHRv IHNlYXJjaCB0aGUgb2JqZWN0KHMpDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWZlcmVuY2VkIGJ5IHRoZSB0b2tlbi4NCiAgICArICBAcGFyYW0gW2luLCBvdXRdICBD bU9iamVjdERlc2MgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QN CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgZGVzY3Jp YmluZyB0aGUgcmVxdWVzdGVkIE9iamVjdC4NCiAgICArDQogICAgKyAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgU3VjY2Vzcy4NCiAgICArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFN RVRFUiBBIHBhcmFtZXRlciBpcyBpbnZhbGlkLg0KICAgICsgIEByZXR2YWwgRUZJX05PVF9GT1VO RCAgICAgICAgIFRoZSByZXF1aXJlZCBvYmplY3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLg0K ICAgICsqKi8NCiAgICArU1RBVElDDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAg K0hhbmRsZUNtT2JqZWN0U2VhcmNoUGxhdGZvcm1SZXBvICgNCiAgICArICBJTiAgQ09OU1QgRURL SUlfQ09ORklHVVJBVElPTl9NQU5BR0VSX1BST1RPQ09MICAqIENPTlNUIFRoaXMsDQogICAgKyAg SU4gIENPTlNUIENNX09CSkVDVF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD bU9iamVjdElkLA0KICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfVE9LRU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVG9rZW4sDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9IQU5E TEVSX1BST0MgICAgICAgICAgICAgICAgICAgICAgICBIYW5kbGVyUHJvYywNCiAgICArICBJTiAg T1VUICAgQ01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENtT2Jq ZWN0RGVzYw0KICAgICsgICkNCiAgICArew0KICAgICsgIEVGSV9TVEFUVVMgIFN0YXR1czsNCiAg ICArICBDbU9iamVjdERlc2MtPk9iamVjdElkID0gQ21PYmplY3RJZDsNCiAgICArICBpZiAoVG9r ZW4gPT0gQ01fTlVMTF9UT0tFTikgew0KICAgICsgICAgREVCVUcgKCgNCiAgICArICAgICAgREVC VUdfRVJST1IsDQogICAgKyAgICAgICJFUlJPUjogQ01fTlVMTF9UT0tFTiB2YWx1ZSBpcyBub3Qg YWxsb3dlZCB3aGVuIHNlYXJjaGluZyINCiAgICArICAgICAgIiB0aGUgZW50aXJlIHBsYXRmb3Jt IHJlcG9zaXRvcnkuXG4iDQogICAgKyAgICAgICkpOw0KICAgICsgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0KICAgICsgIFN0YXR1cyA9IEhhbmRsZXJQ cm9jIChUaGlzLCBDbU9iamVjdElkLCBUb2tlbiwgQ21PYmplY3REZXNjKTsNCiAgICArICBERUJV RyAoKA0KICAgICsgICAgREVCVUdfSU5GTywNCiAgICArICAgICJJTkZPOiBUb2tlbiA9IDB4JXAs IENtT2JqZWN0SWQgPSAleCwgUHRyID0gMHglcCwgU2l6ZSA9ICVkLCBDb3VudCA9ICVkXG4iLA0K ICAgICsgICAgQ21PYmplY3RJZCwNCiAgICArICAgIChWT0lEKilUb2tlbiwNCiAgICArICAgIENt T2JqZWN0RGVzYy0+RGF0YSwNCiAgICArICAgIENtT2JqZWN0RGVzYy0+U2l6ZSwNCiAgICArICAg IENtT2JqZWN0RGVzYy0+Q291bnQNCiAgICArICAgICkpOw0KICAgICsgIHJldHVybiBTdGF0dXM7 DQogICAgK30NCiAgICArDQogICAgKy8qKiBJbml0aWFsaXplIHRoZSBQbGF0Zm9ybSBDb25maWd1 cmF0aW9uIFJlcG9zaXRvcnkuDQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICBQbGF0Zm9ybVJl cG8gIFBvaW50ZXIgdG8gdGhlIFBsYXRmb3JtIENvbmZpZ3VyYXRpb24gUmVwb3NpdG9yeS4NCiAg ICArDQogICAgKyAgQHJldHZhbA0KICAgICsgICAgRUZJX1NVQ0NFU1MgICBTdWNjZXNzDQogICAg KyoqLw0KICAgICtTVEFUSUMNCiAgICArRUZJX1NUQVRVUw0KICAgICtFRklBUEkNCiAgICArSW5p dGlhbGl6ZVBsYXRmb3JtUmVwb3NpdG9yeSAoDQogICAgKyAgSU4gIEVES0lJX1BMQVRGT1JNX1JF UE9TSVRPUllfSU5GTyAgKiBDT05TVCBQbGF0Zm9ybVJlcG8NCiAgICArICApDQogICAgK3sNCiAg ICArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogICAgK30NCiAgICArDQogICAgKy8qKiBSZXR1cm4g YSBHVCBCbG9jayB0aW1lciBmcmFtZSBpbmZvIGxpc3QuDQogICAgKw0KICAgICsgIEBwYXJhbSBb aW5dICAgICAgVGhpcyAgICAgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2Vy IFByb3RvY29sLg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgQ21PYmplY3RJZCAgVGhlIENvbmZp Z3VyYXRpb24gTWFuYWdlciBPYmplY3QgSUQuDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBUb2tl biAgICAgICBBIHRva2VuIGZvciBpZGVudGlmeWluZyB0aGUgb2JqZWN0DQogICAgKyAgQHBhcmFt IFtpbiwgb3V0XSBDbU9iamVjdCAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFn ZXIgT2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9y IGRlc2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0KICAgICsgIEByZXR2YWwg RUZJX1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJldHZhbCBFRklfSU5WQUxJ RF9QQVJBTUVURVIgQSBwYXJhbWV0ZXIgaXMgaW52YWxpZC4NCiAgICArICBAcmV0dmFsIEVGSV9O T1RfRk9VTkQgICAgICAgICBUaGUgcmVxdWlyZWQgb2JqZWN0IGluZm9ybWF0aW9uIGlzIG5vdCBm b3VuZC4NCiAgICArKiovDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK0dldEdU QmxvY2tUaW1lckZyYW1lSW5mbyAoDQogICAgKyAgSU4gIENPTlNUIEVES0lJX0NPTkZJR1VSQVRJ T05fTUFOQUdFUl9QUk9UT0NPTCAgKiBDT05TVCBUaGlzLA0KICAgICsgIElOICBDT05TVCBDTV9P QkpFQ1RfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAg ICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRva2VuLA0KICAgICsgIElOICBPVVQgICBDTV9PQkpfREVTQ1JJUFRPUiAgICAgICAgICAg ICAgICAgICAgICogQ09OU1QgQ21PYmplY3QNCiAgICArICApDQogICAgK3sNCiAgICArICBFREtJ SV9DT01NT05fUExBVEZPUk1fUkVQT1NJVE9SWV9JTkZPICAgKiBQbGF0Zm9ybVJlcG87DQogICAg Kw0KICAgICsgIGlmICgoVGhpcyA9PSBOVUxMKSB8fCAoQ21PYmplY3QgPT0gTlVMTCkpIHsNCiAg ICArICAgIEFTU0VSVCAoVGhpcyAhPSBOVUxMKTsNCiAgICArICAgIEFTU0VSVCAoQ21PYmplY3Qg IT0gTlVMTCk7DQogICAgKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KICAgICsg IH0NCiAgICArDQogICAgKyAgUGxhdGZvcm1SZXBvID0gVGhpcy0+UGxhdFJlcG9JbmZvLT5Db21t b25QbGF0UmVwb0luZm87DQogICAgKw0KICAgICsgIGlmIChUb2tlbiAhPSAoQ01fT0JKRUNUX1RP S0VOKSZQbGF0Zm9ybVJlcG8tPkdUQmxvY2swVGltZXJJbmZvKSB7DQogICAgKyAgICByZXR1cm4g RUZJX05PVF9GT1VORDsNCiAgICArICB9DQogICAgKw0KICAgICsgIENtT2JqZWN0LT5PYmplY3RJ ZCA9IENtT2JqZWN0SWQ7DQogICAgKyAgQ21PYmplY3QtPlNpemUgPSBzaXplb2YgKFBsYXRmb3Jt UmVwby0+R1RCbG9jazBUaW1lckluZm8pOw0KICAgICsgIENtT2JqZWN0LT5EYXRhID0gKFZPSUQq KSZQbGF0Zm9ybVJlcG8tPkdUQmxvY2swVGltZXJJbmZvOw0KICAgICsgIENtT2JqZWN0LT5Db3Vu dCA9IEFSUkFZX1NJWkUgKFBsYXRmb3JtUmVwby0+R1RCbG9jazBUaW1lckluZm8pOw0KICAgICsg IHJldHVybiBFRklfU1VDQ0VTUzsNCiAgICArfQ0KICAgICsNCiAgICArLyoqIFJldHVybiBHSUMg Q1BVIEludGVyZmFjZSBJbmZvLg0KICAgICsNCiAgICArICBAcGFyYW0gW2luXSAgICAgIFRoaXMg ICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90b2NvbC4N CiAgICArICBAcGFyYW0gW2luXSAgICAgIENtT2JqZWN0SWQgICAgIFRoZSBPYmplY3QgSUQgb2Yg dGhlIENNIG9iamVjdCByZXF1ZXN0ZWQNCiAgICArICBAcGFyYW0gW2luXSAgICAgIFNlYXJjaFRv a2VuICAgIEEgdW5pcXVlIHRva2VuIGZvciBpZGVudGlmeWluZyB0aGUgcmVxdWVzdGVkDQogICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTV9BUk1fR0lDQ19JTkZPIG9iamVj dC4NCiAgICArICBAcGFyYW0gW2luLCBvdXRdIENtT2JqZWN0ICAgICAgIFBvaW50ZXIgdG8gdGhl IENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUgcmVxdWVzdGVkIE9iamVjdC4N CiAgICArDQogICAgKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICBTdWNjZXNzLg0K ICAgICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgQSBwYXJhbWV0ZXIgaXMgaW52 YWxpZC4NCiAgICArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgIFRoZSByZXF1aXJl ZCBvYmplY3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLg0KICAgICsqKi8NCiAgICArRUZJX1NU QVRVUw0KICAgICtFRklBUEkNCiAgICArR2V0R2ljQ0luZm8gKA0KICAgICsgIElOICBDT05TVCBF REtJSV9DT05GSUdVUkFUSU9OX01BTkFHRVJfUFJPVE9DT0wgICogQ09OU1QgVGhpcywNCiAgICAr ICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENtT2JqZWN0SWQsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9UT0tFTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTZWFyY2hUb2tlbiwNCiAgICArICBJTiAgT1VUICAgQ01fT0JK X0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0DQogICAgKyAg KQ0KICAgICt7DQogICAgKyAgRURLSUlfQ09NTU9OX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5GTyAg KiBQbGF0Zm9ybVJlcG87DQogICAgKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPYmpJbmRleDsNCiAgICArDQogICAgKyAgaWYgKChUaGlzID09IE5VTEwpIHx8IChD bU9iamVjdCA9PSBOVUxMKSkgew0KICAgICsgICAgQVNTRVJUIChUaGlzICE9IE5VTEwpOw0KICAg ICsgICAgQVNTRVJUIChDbU9iamVjdCAhPSBOVUxMKTsNCiAgICArICAgIHJldHVybiBFRklfSU5W QUxJRF9QQVJBTUVURVI7DQogICAgKyAgfQ0KICAgICsNCiAgICArICBQbGF0Zm9ybVJlcG8gPSBU aGlzLT5QbGF0UmVwb0luZm8tPkNvbW1vblBsYXRSZXBvSW5mbzsNCiAgICArDQogICAgKyAgZm9y IChPYmpJbmRleCA9IDA7IE9iakluZGV4IDwgUExBVF9DUFVfQ09VTlQ7IE9iakluZGV4KyspIHsN CiAgICArICAgIGlmIChTZWFyY2hUb2tlbiA9PSAoQ01fT0JKRUNUX1RPS0VOKSZQbGF0Zm9ybVJl cG8tPkdpY0NJbmZvW09iakluZGV4XSkgew0KICAgICsgICAgICBDbU9iamVjdC0+T2JqZWN0SWQg PSBDbU9iamVjdElkOw0KICAgICsgICAgICBDbU9iamVjdC0+U2l6ZSA9IHNpemVvZiAoUGxhdGZv cm1SZXBvLT5HaWNDSW5mb1tPYmpJbmRleF0pOw0KICAgICsgICAgICBDbU9iamVjdC0+RGF0YSA9 IChWT0lEKikmUGxhdGZvcm1SZXBvLT5HaWNDSW5mb1tPYmpJbmRleF07DQogICAgKyAgICAgIENt T2JqZWN0LT5Db3VudCA9IDE7DQogICAgKyAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCiAgICAr ICAgIH0NCiAgICArICB9DQogICAgKw0KICAgICsgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KICAg ICt9DQogICAgKw0KICAgICsvKiogUmV0dXJuIGEgbGlzdCBvZiBDb25maWd1cmF0aW9uIE1hbmFn ZXIgb2JqZWN0IHJlZmVyZW5jZXMgcG9pbnRlZCB0byBieSB0aGUNCiAgICArICAgIGdpdmVuIGlu cHV0IHRva2VuLg0KICAgICsNCiAgICArICBAcGFyYW0gW2luXSAgICAgIFRoaXMgICAgICAgICAg IFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90b2NvbC4NCiAgICArICBA cGFyYW0gW2luXSAgICAgIENtT2JqZWN0SWQgICAgIFRoZSBPYmplY3QgSUQgb2YgdGhlIENNIG9i amVjdCByZXF1ZXN0ZWQNCiAgICArICBAcGFyYW0gW2luXSAgICAgIFNlYXJjaFRva2VuICAgIEEg dW5pcXVlIHRva2VuIGZvciBpZGVudGlmeWluZyB0aGUgcmVxdWVzdGVkDQogICAgKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDTV9BUk1fT0JKX1JFRiBsaXN0Lg0KICAgICsgIEBw YXJhbSBbaW4sIG91dF0gQ21PYmplY3QgICAgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlv biBNYW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVzY3JpcHRvciBkZXNjcmliaW5nIHRoZSByZXF1ZXN0ZWQgT2JqZWN0Lg0KICAgICsNCiAgICAr ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJldHZh bCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBBIHBhcmFtZXRlciBpcyBpbnZhbGlkLg0KICAgICsg IEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgICAgVGhlIHJlcXVpcmVkIG9iamVjdCBpbmZv cm1hdGlvbiBpcyBub3QgZm91bmQuDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VG SUFQSQ0KICAgICtHZXRDbU9ialJlZnMgKA0KICAgICsgIElOICBDT05TVCBFREtJSV9DT05GSUdV UkFUSU9OX01BTkFHRVJfUFJPVE9DT0wgICogQ09OU1QgVGhpcywNCiAgICArICBJTiAgQ09OU1Qg Q01fT0JKRUNUX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQs DQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9UT0tFTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTZWFyY2hUb2tlbiwNCiAgICArICBJTiAgT1VUICAgQ01fT0JKX0RFU0NSSVBUT1Ig ICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0DQogICAgKyAgKQ0KICAgICt7DQog ICAgKyAgRURLSUlfQ09NTU9OX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5GTyAgKiBDb21tb25QbGF0 UmVwbzsNCiAgICArDQogICAgKyAgaWYgKChUaGlzID09IE5VTEwpIHx8IChDbU9iamVjdCA9PSBO VUxMKSkgew0KICAgICsgICAgQVNTRVJUIChUaGlzICE9IE5VTEwpOw0KICAgICsgICAgQVNTRVJU IChDbU9iamVjdCAhPSBOVUxMKTsNCiAgICArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVU RVI7DQogICAgKyAgfQ0KICAgICsNCiAgICArICBDb21tb25QbGF0UmVwbyA9IFRoaXMtPlBsYXRS ZXBvSW5mby0+Q29tbW9uUGxhdFJlcG9JbmZvOw0KICAgICsNCiAgICArICBpZiAoU2VhcmNoVG9r ZW4gPT0gKENNX09CSkVDVF9UT0tFTikmQ29tbW9uUGxhdFJlcG8tPkNsdXN0ZXJSZXNvdXJjZXMp IHsNCiAgICArICAgIENtT2JqZWN0LT5TaXplID0gc2l6ZW9mIChDb21tb25QbGF0UmVwby0+Q2x1 c3RlclJlc291cmNlcyk7DQogICAgKyAgICBDbU9iamVjdC0+RGF0YSA9IChWT0lEKikmQ29tbW9u UGxhdFJlcG8tPkNsdXN0ZXJSZXNvdXJjZXM7DQogICAgKyAgICBDbU9iamVjdC0+Q291bnQgPSBB UlJBWV9TSVpFIChDb21tb25QbGF0UmVwby0+Q2x1c3RlclJlc291cmNlcyk7DQogICAgKyAgICBy ZXR1cm4gRUZJX1NVQ0NFU1M7DQogICAgKyAgfQ0KICAgICsgIGlmIChTZWFyY2hUb2tlbiA9PSAo Q01fT0JKRUNUX1RPS0VOKSZDb21tb25QbGF0UmVwby0+Q29yZVJlc291cmNlcykgew0KICAgICsg ICAgQ21PYmplY3QtPlNpemUgPSBzaXplb2YgKENvbW1vblBsYXRSZXBvLT5Db3JlUmVzb3VyY2Vz KTsNCiAgICArICAgIENtT2JqZWN0LT5EYXRhID0gKFZPSUQqKSZDb21tb25QbGF0UmVwby0+Q29y ZVJlc291cmNlczsNCiAgICArICAgIENtT2JqZWN0LT5Db3VudCA9IEFSUkFZX1NJWkUgKENvbW1v blBsYXRSZXBvLT5Db3JlUmVzb3VyY2VzKTsNCiAgICArICAgIHJldHVybiBFRklfU1VDQ0VTUzsN CiAgICArICB9DQogICAgKyAgaWYgKFNlYXJjaFRva2VuID09IChDTV9PQkpFQ1RfVE9LRU4pJkNv bW1vblBsYXRSZXBvLT5Tb2NSZXNvdXJjZXMpIHsNCiAgICArICAgIENtT2JqZWN0LT5TaXplID0g c2l6ZW9mIChDb21tb25QbGF0UmVwby0+U29jUmVzb3VyY2VzKTsNCiAgICArICAgIENtT2JqZWN0 LT5EYXRhID0gKFZPSUQqKSZDb21tb25QbGF0UmVwby0+U29jUmVzb3VyY2VzOw0KICAgICsgICAg Q21PYmplY3QtPkNvdW50ID0gQVJSQVlfU0laRSAoQ29tbW9uUGxhdFJlcG8tPlNvY1Jlc291cmNl cyk7DQogICAgKyAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogICAgKyAgfQ0KICAgICsNCiAgICAr ICByZXR1cm4gRUZJX05PVF9GT1VORDsNCiAgICArfQ0KICAgICsNCiAgICArLyoqIFJldHVybiBh IHN0YW5kYXJkIG5hbWVzcGFjZSBvYmplY3QuDQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICAg ICAgVGhpcyAgICAgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIFByb3Rv Y29sLg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgQ21PYmplY3RJZCAgVGhlIENvbmZpZ3VyYXRp b24gTWFuYWdlciBPYmplY3QgSUQuDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBUb2tlbiAgICAg ICBBbiBvcHRpb25hbCB0b2tlbiBpZGVudGlmeWluZyB0aGUgb2JqZWN0LiBJZg0KICAgICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkIHRoaXMgbXVzdCBiZSBDTV9OVUxMX1RP S0VOLg0KICAgICsgIEBwYXJhbSBbaW4sIG91dF0gQ21PYmplY3QgICAgUG9pbnRlciB0byB0aGUg Q29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVzY3JpcHRvciBkZXNjcmliaW5nIHRoZSByZXF1ZXN0ZWQgT2JqZWN0Lg0KICAg ICsNCiAgICArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBTdWNjZXNzLg0KICAgICsg IEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgcGFyYW1ldGVyIGlzIGludmFsaWQuDQog ICAgKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgVGhlIHJlcXVpcmVkIG9iamVjdCBp bmZvcm1hdGlvbiBpcyBub3QgZm91bmQuDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAg K0VGSUFQSQ0KICAgICtHZXRTdGFuZGFyZE5hbWVTcGFjZU9iamVjdCAoDQogICAgKyAgSU4gIENP TlNUIEVES0lJX0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTCAgKiBDT05TVCBUaGlzLA0K ICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ21PYmplY3RJZCwNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RPS0VOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuIE9QVElPTkFMLA0KICAgICsgIElOICBPVVQg ICBDTV9PQkpfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICAgICogQ09OU1QgQ21PYmplY3QN CiAgICArICApDQogICAgK3sNCiAgICArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCiAgICArICBFREtJSV9DT01NT05fUExBVEZPUk1fUkVQT1NJVE9S WV9JTkZPICAqIENvbW1vblBsYXRSZXBvOw0KICAgICsNCiAgICArICBpZiAoKFRoaXMgPT0gTlVM TCkgfHwgKENtT2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NFUlQgKFRoaXMgIT0gTlVM TCk7DQogICAgKyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0KICAgICsgICAgcmV0dXJu IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0KICAgICsgIENvbW1vblBs YXRSZXBvID0gVGhpcy0+UGxhdFJlcG9JbmZvLT5Db21tb25QbGF0UmVwb0luZm87DQogICAgKw0K ICAgICsgIC8vRmlyc3Qgc2VhcmNoIHRoZSBGVlAvU29DIHBsYXRmb3JtIHNwZWNpZmljIG9iamVj dHMgYW5kIGVudGVyIHRoZSBiZWxvdw0KICAgICsgIC8vaWYgY29uZGl0aW9uIG9ubHkgd2hlbiB0 aGlzIGZ1bmN0aW9uIHJldHVybnMgRUZJX05PVF9GT1VORCBzdGF0dXMuDQogICAgKyAgU3RhdHVz ID0gR2V0U3RhbmRhcmROYW1lU3BhY2VPYmplY3RQbGF0IChUaGlzLCBDbU9iamVjdElkLCBUb2tl biwgQ21PYmplY3QpOw0KICAgICsNCiAgICArICBpZiAoU3RhdHVzID09IEVGSV9OT1RfRk9VTkQp IHsNCiAgICArICAgIHN3aXRjaCAoR0VUX0NNX09CSkVDVF9JRCAoQ21PYmplY3RJZCkpIHsNCiAg ICArICAgICAgY2FzZSBFU3RkT2JqQ2ZnTWdySW5mbzoNCiAgICArICAgICAgICBTdGF0dXMgPSBI YW5kbGVDbU9iamVjdCAoDQogICAgKyAgICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAg ICsgICAgICAgICAgICAgICAgICAgJkNvbW1vblBsYXRSZXBvLT5DbUluZm8sDQogICAgKyAgICAg ICAgICAgICAgICAgICBzaXplb2YgKENvbW1vblBsYXRSZXBvLT5DbUluZm8pLA0KICAgICsgICAg ICAgICAgICAgICAgICAgMSwNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAg KyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICAgIGJyZWFrOw0KICAgICsNCiAgICAr ICAgICAgZGVmYXVsdDogew0KICAgICsgICAgICAgIFN0YXR1cyA9IEVGSV9OT1RfRk9VTkQ7DQog ICAgKyAgICAgICAgREVCVUcgKCgNCiAgICArICAgICAgICAgIERFQlVHX0VSUk9SLA0KICAgICsg ICAgICAgICAgIkVSUk9SOiBPYmplY3QgMHgleC4gU3RhdHVzID0gJXJcbiIsDQogICAgKyAgICAg ICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAgICAgU3RhdHVzDQogICAgKyAgICAgICAgICAp KTsNCiAgICArICAgICAgICBicmVhazsNCiAgICArICAgICAgfQ0KICAgICsgICAgfSAvL3N3aXRj aA0KICAgICsgIH0NCiAgICArDQogICAgKyAgcmV0dXJuIFN0YXR1czsNCiAgICArfQ0KICAgICsN CiAgICArLyoqIFJldHVybiBhbiBBUk0gbmFtZXNwYWNlIG9iamVjdC4NCiAgICArDQogICAgKyAg QHBhcmFtIFtpbl0gICAgICBUaGlzICAgICAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9u IE1hbmFnZXIgUHJvdG9jb2wuDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBDbU9iamVjdElkICBU aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAg ICAgIFRva2VuICAgICAgIEFuIG9wdGlvbmFsIHRva2VuIGlkZW50aWZ5aW5nIHRoZSBvYmplY3Qu IElmDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQgdGhpcyBtdXN0 IGJlIENNX05VTExfVE9LRU4uDQogICAgKyAgQHBhcmFtIFtpbiwgb3V0XSBDbU9iamVjdCAgICBQ b2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0DQogICAgKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJlcXVlc3Rl ZCBPYmplY3QuDQogICAgKw0KICAgICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFN1 Y2Nlc3MuDQogICAgKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgQSBwYXJhbWV0ZXIg aXMgaW52YWxpZC4NCiAgICArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBUaGUgcmVx dWlyZWQgb2JqZWN0IGluZm9ybWF0aW9uIGlzIG5vdCBmb3VuZC4NCiAgICArKiovDQogICAgK0VG SV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK0dldEFybU5hbWVTcGFjZU9iamVjdCAoDQogICAg KyAgSU4gIENPTlNUIEVES0lJX0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTCAgKiBDT05T VCBUaGlzLA0KICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfSUQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RP S0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuIE9QVElPTkFMLA0KICAgICsg IElOICBPVVQgICBDTV9PQkpfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICAgICogQ09OU1Qg Q21PYmplY3QNCiAgICArICApDQogICAgK3sNCiAgICArICBFRklfU1RBVFVTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCiAgICArICBFREtJSV9DT01NT05fUExBVEZPUk1f UkVQT1NJVE9SWV9JTkZPICAqIENvbW1vblBsYXRSZXBvOw0KICAgICsNCiAgICArICBpZiAoKFRo aXMgPT0gTlVMTCkgfHwgKENtT2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NFUlQgKFRo aXMgIT0gTlVMTCk7DQogICAgKyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0KICAgICsg ICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKyAgQ29tbW9u UGxhdFJlcG8gPSBUaGlzLT5QbGF0UmVwb0luZm8tPkNvbW1vblBsYXRSZXBvSW5mbzsNCiAgICAr DQogICAgKyAgLy9GaXJzdCBzZWFyY2ggdGhlIEZWUC9Tb0MgcGxhdGZvcm0gc3BlY2lmaWMgb2Jq ZWN0cyBhbmQgZW50ZXIgdGhlIGJlbG93DQogICAgKyAgLy9pZiBjb25kaXRpb24gb25seSB3aGVu IHRoaXMgZnVuY3Rpb24gcmV0dXJuIEVGSV9OT1RfRk9VTkQgc3RhdHVzLg0KICAgICsgIFN0YXR1 cyA9IEdldEFybU5hbWVTcGFjZU9iamVjdFBsYXQgKFRoaXMsIENtT2JqZWN0SWQsIFRva2VuLCBD bU9iamVjdCk7DQogICAgKw0KICAgICsgIGlmIChTdGF0dXMgPT0gRUZJX05PVF9GT1VORCkgew0K ICAgICsgICAgc3dpdGNoIChHRVRfQ01fT0JKRUNUX0lEIChDbU9iamVjdElkKSkgew0KICAgICsg ICAgICBjYXNlIEVBcm1PYmpCb290QXJjaEluZm86DQogICAgKyAgICAgICAgU3RhdHVzID0gSGFu ZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICAr ICAgICAgICAgICAgICAgICAgICZDb21tb25QbGF0UmVwby0+Qm9vdEFyY2hJbmZvLA0KICAgICsg ICAgICAgICAgICAgICAgICAgc2l6ZW9mIChDb21tb25QbGF0UmVwby0+Qm9vdEFyY2hJbmZvKSwN CiAgICArICAgICAgICAgICAgICAgICAgIDEsDQogICAgKyAgICAgICAgICAgICAgICAgICBDbU9i amVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgKTsNCiAgICArICAgICAgYnJlYWs7DQogICAg Kw0KICAgICsjaWZkZWYgSEVBRExFU1NfUExBVEZPUk0NCiAgICArICAgICAgY2FzZSBFQXJtT2Jq Rml4ZWRGZWF0dXJlRmxhZ3M6DQogICAgKyAgICAgICAgU3RhdHVzID0gSGFuZGxlQ21PYmplY3Qg KA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAg ICAgICAgICZDb21tb25QbGF0UmVwby0+Rml4ZWRGZWF0dXJlRmxhZ3MsDQogICAgKyAgICAgICAg ICAgICAgICAgICBzaXplb2YgKENvbW1vblBsYXRSZXBvLT5GaXhlZEZlYXR1cmVGbGFncyksDQog ICAgKyAgICAgICAgICAgICAgICAgICAxLA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmpl Y3QNCiAgICArICAgICAgICAgICAgICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsj ZW5kaWYNCiAgICArICAgICAgY2FzZSBFQXJtT2JqUG93ZXJNYW5hZ2VtZW50UHJvZmlsZUluZm86 DQogICAgKyAgICAgICAgU3RhdHVzID0gSGFuZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAgICAg ICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAgICAgICZDb21tb25QbGF0 UmVwby0+UG1Qcm9maWxlSW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQ29t bW9uUGxhdFJlcG8tPlBtUHJvZmlsZUluZm8pLA0KICAgICsgICAgICAgICAgICAgICAgICAgMSwN CiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAg ICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAgKyAgICAgIGNhc2UgRUFybU9iakdl bmVyaWNUaW1lckluZm86DQogICAgKyAgICAgICAgU3RhdHVzID0gSGFuZGxlQ21PYmplY3QgKA0K ICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAg ICAgICZDb21tb25QbGF0UmVwby0+R2VuZXJpY1RpbWVySW5mbywNCiAgICArICAgICAgICAgICAg ICAgICAgIHNpemVvZiAoQ29tbW9uUGxhdFJlcG8tPkdlbmVyaWNUaW1lckluZm8pLA0KICAgICsg ICAgICAgICAgICAgICAgICAgMSwNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQog ICAgKyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAg KyAgICAgIGNhc2UgRUFybU9ialBsYXRmb3JtR2VuZXJpY1dhdGNoZG9nSW5mbzoNCiAgICArICAg ICAgICBTdGF0dXMgPSBIYW5kbGVDbU9iamVjdCAoDQogICAgKyAgICAgICAgICAgICAgICAgICBD bU9iamVjdElkLA0KICAgICsgICAgICAgICAgICAgICAgICAgJkNvbW1vblBsYXRSZXBvLT5XYXRj aGRvZywNCiAgICArICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQ29tbW9uUGxhdFJlcG8tPldh dGNoZG9nKSwNCiAgICArICAgICAgICAgICAgICAgICAgIDEsDQogICAgKyAgICAgICAgICAgICAg ICAgICBDbU9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgKTsNCiAgICArICAgICAgYnJl YWs7DQogICAgKw0KICAgICsgICAgICBjYXNlIEVBcm1PYmpQbGF0Zm9ybUdUQmxvY2tJbmZvOg0K ICAgICsgICAgICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0ICgNCiAgICArICAgICAgICAgICAg ICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgICAgICAgICAgICAgICAgICBDb21tb25QbGF0UmVw by0+R1RCbG9ja0luZm8sDQogICAgKyAgICAgICAgICAgICAgICAgICBzaXplb2YgKENvbW1vblBs YXRSZXBvLT5HVEJsb2NrSW5mbyksDQogICAgKyAgICAgICAgICAgICAgICAgICAxLA0KICAgICsg ICAgICAgICAgICAgICAgICAgQ21PYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICk7DQog ICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAgICArICAgICAgY2FzZSBFQXJtT2JqR1RCbG9ja1Rp bWVyRnJhbWVJbmZvOg0KICAgICsgICAgICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0UmVmQnlU b2tlbiAoDQogICAgKyAgICAgICAgICAgICAgICAgICBUaGlzLA0KICAgICsgICAgICAgICAgICAg ICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAgICAgIENvbW1vblBsYXRSZXBv LT5HVEJsb2NrMFRpbWVySW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQ29t bW9uUGxhdFJlcG8tPkdUQmxvY2swVGltZXJJbmZvKSwNCiAgICArICAgICAgICAgICAgICAgICAg IEFSUkFZX1NJWkUgKENvbW1vblBsYXRSZXBvLT5HVEJsb2NrMFRpbWVySW5mbyksDQogICAgKyAg ICAgICAgICAgICAgICAgICBUb2tlbiwNCiAgICArICAgICAgICAgICAgICAgICAgIEdldEdUQmxv Y2tUaW1lckZyYW1lSW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAg KyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAgKyAg ICAgIGNhc2UgRUFybU9iakdpY0NJbmZvOg0KICAgICsgICAgICAgIFN0YXR1cyA9IEhhbmRsZUNt T2JqZWN0UmVmQnlUb2tlbiAoDQogICAgKyAgICAgICAgICAgICAgICAgICBUaGlzLA0KICAgICsg ICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAgICAgIENv bW1vblBsYXRSZXBvLT5HaWNDSW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIHNpemVvZiAo Q29tbW9uUGxhdFJlcG8tPkdpY0NJbmZvKSwNCiAgICArICAgICAgICAgICAgICAgICAgIFBMQVRf Q1BVX0NPVU5ULA0KICAgICsgICAgICAgICAgICAgICAgICAgVG9rZW4sDQogICAgKyAgICAgICAg ICAgICAgICAgICBHZXRHaWNDSW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0 DQogICAgKyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQog ICAgKyAgICAgIGNhc2UgRUFybU9iakdpY0RJbmZvOg0KICAgICsgICAgICAgIFN0YXR1cyA9IEhh bmRsZUNtT2JqZWN0ICgNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAg KyAgICAgICAgICAgICAgICAgICAmQ29tbW9uUGxhdFJlcG8tPkdpY0RJbmZvLA0KICAgICsgICAg ICAgICAgICAgICAgICAgc2l6ZW9mIChDb21tb25QbGF0UmVwby0+R2ljREluZm8pLA0KICAgICsg ICAgICAgICAgICAgICAgICAgMSwNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQog ICAgKyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAg KyAgICAgIGNhc2UgRUFybU9iakdpY1JlZGlzdHJpYnV0b3JJbmZvOg0KICAgICsgICAgICAgIFN0 YXR1cyA9IEhhbmRsZUNtT2JqZWN0ICgNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0 SWQsDQogICAgKyAgICAgICAgICAgICAgICAgICAmQ29tbW9uUGxhdFJlcG8tPkdpY1JlZGlzdElu Zm8sDQogICAgKyAgICAgICAgICAgICAgICAgICBzaXplb2YgKENvbW1vblBsYXRSZXBvLT5HaWNS ZWRpc3RJbmZvKSwNCiAgICArICAgICAgICAgICAgICAgICAgIDEsDQogICAgKyAgICAgICAgICAg ICAgICAgICBDbU9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgKTsNCiAgICArICAgICAg YnJlYWs7DQogICAgKw0KICAgICsgICAgICBjYXNlIEVBcm1PYmpTZXJpYWxDb25zb2xlUG9ydElu Zm86DQogICAgKyAgICAgICAgU3RhdHVzID0gSGFuZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAg ICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAgICAgICZDb21tb25Q bGF0UmVwby0+U3BjclNlcmlhbFBvcnQsDQogICAgKyAgICAgICAgICAgICAgICAgICBzaXplb2Yg KENvbW1vblBsYXRSZXBvLT5TcGNyU2VyaWFsUG9ydCksDQogICAgKyAgICAgICAgICAgICAgICAg ICAxLA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3QNCiAgICArICAgICAgICAgICAg ICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAgICArICAgICAgY2FzZSBFQXJt T2JqU2VyaWFsRGVidWdQb3J0SW5mbzoNCiAgICArICAgICAgICBTdGF0dXMgPSBIYW5kbGVDbU9i amVjdCAoDQogICAgKyAgICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAg ICAgICAgICAgICAgJkNvbW1vblBsYXRSZXBvLT5EYmdTZXJpYWxQb3J0LA0KICAgICsgICAgICAg ICAgICAgICAgICAgc2l6ZW9mIChDb21tb25QbGF0UmVwby0+RGJnU2VyaWFsUG9ydCksDQogICAg KyAgICAgICAgICAgICAgICAgICAxLA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3QN CiAgICArICAgICAgICAgICAgICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAg ICArICAgICAgY2FzZSBFQXJtT2JqUHJvY0hpZXJhcmNoeUluZm86DQogICAgKyAgICAgICAgU3Rh dHVzID0gSGFuZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJ ZCwNCiAgICArICAgICAgICAgICAgICAgICAgIENvbW1vblBsYXRSZXBvLT5Qcm9jSGllcmFyY2h5 SW5mbywNCiAgICArICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQ29tbW9uUGxhdFJlcG8tPlBy b2NIaWVyYXJjaHlJbmZvKSwNCiAgICArICAgICAgICAgICAgICAgICAgIFBMQVRfUFJPQ19ISUVS QVJDSFlfTk9ERV9DT1VOVCwNCiAgICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAg KyAgICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAgKyAg ICAgIGNhc2UgRUFybU9iakNhY2hlSW5mbzoNCiAgICArICAgICAgICBTdGF0dXMgPSBIYW5kbGVD bU9iamVjdCAoDQogICAgKyAgICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAg ICAgICAgICAgICAgICAgQ29tbW9uUGxhdFJlcG8tPkNhY2hlSW5mbywNCiAgICArICAgICAgICAg ICAgICAgICAgIHNpemVvZiAoQ29tbW9uUGxhdFJlcG8tPkNhY2hlSW5mbyksDQogICAgKyAgICAg ICAgICAgICAgICAgICBBUlJBWV9TSVpFIChDb21tb25QbGF0UmVwby0+Q2FjaGVJbmZvKSwNCiAg ICArICAgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAgKyAgICAgICAgICAgICAgICAgICAp Ow0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAgKyAgICAgIGNhc2UgRUFybU9iakNtUmVm Og0KICAgICsgICAgICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0U2VhcmNoUGxhdGZvcm1SZXBv ICgNCiAgICArICAgICAgICAgICAgICAgICAgIFRoaXMsDQogICAgKyAgICAgICAgICAgICAgICAg ICBDbU9iamVjdElkLA0KICAgICsgICAgICAgICAgICAgICAgICAgVG9rZW4sDQogICAgKyAgICAg ICAgICAgICAgICAgICBHZXRDbU9ialJlZnMsDQogICAgKyAgICAgICAgICAgICAgICAgICBDbU9i amVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgKTsNCiAgICArICAgICAgYnJlYWs7DQogICAg Kw0KICAgICsgICAgICBkZWZhdWx0OiB7DQogICAgKyAgICAgICAgU3RhdHVzID0gRUZJX05PVF9G T1VORDsNCiAgICArICAgICAgICBERUJVRyAoKA0KICAgICsgICAgICAgICAgREVCVUdfSU5GTywN CiAgICArICAgICAgICAgICJJTkZPOiBPYmplY3QgMHgleC4gU3RhdHVzID0gJXJcbiIsDQogICAg KyAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAgICAgU3RhdHVzDQogICAgKyAgICAg ICAgICApKTsNCiAgICArICAgICAgICBicmVhazsNCiAgICArICAgICAgfQ0KICAgICsgICAgfS8v c3dpdGNoDQogICAgKyAgfQ0KICAgICsgIHJldHVybiBTdGF0dXM7DQogICAgK30NCiAgICArDQog ICAgKy8qKiBSZXR1cm4gYW4gT0VNIG5hbWVzcGFjZSBvYmplY3QuDQogICAgKw0KICAgICsgIEBw YXJhbSBbaW5dICAgICAgVGhpcyAgICAgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBN YW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgQ21PYmplY3RJZCAgVGhl IENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QgSUQuDQogICAgKyAgQHBhcmFtIFtpbl0gICAg ICBUb2tlbiAgICAgICBBbiBvcHRpb25hbCB0b2tlbiBpZGVudGlmeWluZyB0aGUgb2JqZWN0LiBJ Zg0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkIHRoaXMgbXVzdCBi ZSBDTV9OVUxMX1RPS0VOLg0KICAgICsgIEBwYXJhbSBbaW4sIG91dF0gQ21PYmplY3QgICAgUG9p bnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvciBkZXNjcmliaW5nIHRoZSByZXF1ZXN0ZWQg T2JqZWN0Lg0KICAgICsNCiAgICArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBTdWNj ZXNzLg0KICAgICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgcGFyYW1ldGVyIGlz IGludmFsaWQuDQogICAgKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgVGhlIHJlcXVp cmVkIG9iamVjdCBpbmZvcm1hdGlvbiBpcyBub3QgZm91bmQuDQogICAgKyoqLw0KICAgICtFRklf U1RBVFVTDQogICAgK0VGSUFQSQ0KICAgICtHZXRPZW1OYW1lU3BhY2VPYmplY3QgKA0KICAgICsg IElOICBDT05TVCBFREtJSV9DT05GSUdVUkFUSU9OX01BTkFHRVJfUFJPVE9DT0wgICogQ09OU1Qg VGhpcywNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lEICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9UT0tF TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiBPUFRJT05BTCwNCiAgICArICBJ TiAgT1VUICAgQ01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENt T2JqZWN0DQogICAgKyAgKQ0KICAgICt7DQogICAgKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KICAg ICsNCiAgICArICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCiAgICArICBpZiAoKFRoaXMgPT0gTlVM TCkgfHwgKENtT2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NFUlQgKFRoaXMgIT0gTlVM TCk7DQogICAgKyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0KICAgICsgICAgcmV0dXJu IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0KICAgICsgIHN3aXRjaCAo R0VUX0NNX09CSkVDVF9JRCAoQ21PYmplY3RJZCkpIHsNCiAgICArICAgIGRlZmF1bHQ6IHsNCiAg ICArICAgICAgU3RhdHVzID0gRUZJX05PVF9GT1VORDsNCiAgICArICAgICAgREVCVUcgKCgNCiAg ICArICAgICAgICBERUJVR19FUlJPUiwNCiAgICArICAgICAgICAiRVJST1I6IE9iamVjdCAweCV4 LiBTdGF0dXMgPSAlclxuIiwNCiAgICArICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAg IFN0YXR1cw0KICAgICsgICAgICAgICkpOw0KICAgICsgICAgICBicmVhazsNCiAgICArICAgIH0N CiAgICArICB9DQogICAgKw0KICAgICsgIHJldHVybiBTdGF0dXM7DQogICAgK30NCiAgICArDQog ICAgKy8qKiBUaGUgR2V0T2JqZWN0IGZ1bmN0aW9uIGRlZmluZXMgdGhlIGludGVyZmFjZSBpbXBs ZW1lbnRlZCBieSB0aGUNCiAgICArICAgIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90b2NvbCBm b3IgcmV0dXJuaW5nIHRoZSBDb25maWd1cmF0aW9uDQogICAgKyAgICBNYW5hZ2VyIE9iamVjdHMu DQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgVGhpcyAgICAgICAgUG9pbnRlciB0byB0 aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBwYXJhbSBbaW5dICAg ICAgQ21PYmplY3RJZCAgVGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QgSUQuDQogICAg KyAgQHBhcmFtIFtpbl0gICAgICBUb2tlbiAgICAgICBBbiBvcHRpb25hbCB0b2tlbiBpZGVudGlm eWluZyB0aGUgb2JqZWN0LiBJZg0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW51c2VkIHRoaXMgbXVzdCBiZSBDTV9OVUxMX1RPS0VOLg0KICAgICsgIEBwYXJhbSBbaW4sIG91 dF0gQ21PYmplY3QgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVj dA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvciBkZXNjcmli aW5nIHRoZSByZXF1ZXN0ZWQgT2JqZWN0Lg0KICAgICsNCiAgICArICBAcmV0dmFsIEVGSV9TVUND RVNTICAgICAgICAgICBTdWNjZXNzLg0KICAgICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1F VEVSIEEgcGFyYW1ldGVyIGlzIGludmFsaWQuDQogICAgKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5E ICAgICAgICAgVGhlIHJlcXVpcmVkIG9iamVjdCBpbmZvcm1hdGlvbiBpcyBub3QgZm91bmQuDQog ICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQSQ0KICAgICtNb3JlbGxvUGxhdGZv cm1HZXRPYmplY3QgKA0KICAgICsgIElOICBDT05TVCBFREtJSV9DT05GSUdVUkFUSU9OX01BTkFH RVJfUFJPVE9DT0wgICogQ09OU1QgVGhpcywNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lE ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgSU4g IENPTlNUIENNX09CSkVDVF9UT0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl biBPUFRJT05BTCwNCiAgICArICBJTiAgT1VUICAgQ01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAg ICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0DQogICAgKyAgKQ0KICAgICt7DQogICAgKyAgRUZJ X1NUQVRVUyAgU3RhdHVzOw0KICAgICsNCiAgICArICBpZiAoKFRoaXMgPT0gTlVMTCkgfHwgKENt T2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NFUlQgKFRoaXMgIT0gTlVMTCk7DQogICAg KyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0KICAgICsgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0KICAgICsgIHN3aXRjaCAoR0VUX0NNX05B TUVTUEFDRV9JRCAoQ21PYmplY3RJZCkpIHsNCiAgICArICAgIGNhc2UgRU9iak5hbWVTcGFjZVN0 YW5kYXJkOg0KICAgICsgICAgICBTdGF0dXMgPSBHZXRTdGFuZGFyZE5hbWVTcGFjZU9iamVjdCAo VGhpcywgQ21PYmplY3RJZCwgVG9rZW4sIENtT2JqZWN0KTsNCiAgICArICAgICAgYnJlYWs7DQog ICAgKyAgICBjYXNlIEVPYmpOYW1lU3BhY2VBcm06DQogICAgKyAgICAgIFN0YXR1cyA9IEdldEFy bU5hbWVTcGFjZU9iamVjdCAoVGhpcywgQ21PYmplY3RJZCwgVG9rZW4sIENtT2JqZWN0KTsNCiAg ICArICAgICAgYnJlYWs7DQogICAgKyAgICBjYXNlIEVPYmpOYW1lU3BhY2VPZW06DQogICAgKyAg ICAgIFN0YXR1cyA9IEdldE9lbU5hbWVTcGFjZU9iamVjdCAoVGhpcywgQ21PYmplY3RJZCwgVG9r ZW4sIENtT2JqZWN0KTsNCiAgICArICAgICAgYnJlYWs7DQogICAgKyAgICBkZWZhdWx0OiB7DQog ICAgKyAgICAgIFN0YXR1cyA9IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCiAgICArICAgICAgREVC VUcgKCgNCiAgICArICAgICAgICBERUJVR19FUlJPUiwNCiAgICArICAgICAgICAiRVJST1I6IFVu a25vd24gTmFtZXNwYWNlIE9iamVjdCA9IDB4JXguIFN0YXR1cyA9ICVyXG4iLA0KICAgICsgICAg ICAgIENtT2JqZWN0SWQsDQogICAgKyAgICAgICAgU3RhdHVzDQogICAgKyAgICAgICAgKSk7DQog ICAgKyAgICAgIGJyZWFrOw0KICAgICsgICAgfQ0KICAgICsgIH0NCiAgICArDQogICAgKyAgcmV0 dXJuIFN0YXR1czsNCiAgICArfQ0KICAgICsNCiAgICArLyoqIFRoZSBTZXRPYmplY3QgZnVuY3Rp b24gZGVmaW5lcyB0aGUgaW50ZXJmYWNlIGltcGxlbWVudGVkIGJ5IHRoZQ0KICAgICsgICAgQ29u ZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sIGZvciB1cGRhdGluZyB0aGUgQ29uZmlndXJhdGlv bg0KICAgICsgICAgTWFuYWdlciBPYmplY3RzLg0KICAgICsNCiAgICArICBAcGFyYW0gW2luXSAg ICAgIFRoaXMgICAgICAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90 b2NvbC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIENtT2JqZWN0SWQgIFRoZSBDb25maWd1cmF0 aW9uIE1hbmFnZXIgT2JqZWN0IElELg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgVG9rZW4gICAg ICAgQW4gb3B0aW9uYWwgdG9rZW4gaWRlbnRpZnlpbmcgdGhlIG9iamVjdC4gSWYNCiAgICArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZCB0aGlzIG11c3QgYmUgQ01fTlVMTF9U T0tFTi4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIENtT2JqZWN0ICAgIFBvaW50ZXIgdG8gdGhl IENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUgT2JqZWN0Lg0KICAgICsNCiAgICAr ICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl ZC4NCiAgICArKiovDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK01vcmVsbG9Q bGF0Zm9ybVNldE9iamVjdCAoDQogICAgKyAgSU4gIENPTlNUIEVES0lJX0NPTkZJR1VSQVRJT05f TUFOQUdFUl9QUk9UT0NPTCAgKiBDT05TVCBUaGlzLA0KICAgICsgIElOICBDT05TVCBDTV9PQkpF Q1RfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICAr ICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRva2VuIE9QVElPTkFMLA0KICAgICsgIElOICAgICAgICBDTV9PQkpfREVTQ1JJUFRPUiAgICAg ICAgICAgICAgICAgICAgICogQ09OU1QgQ21PYmplY3QNCiAgICArICApDQogICAgK3sNCiAgICAr ICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KICAgICt9DQogICAgKw0KICAgICsvKiogQSBzdHJ1 Y3R1cmUgZGVzY3JpYmluZyB0aGUgY29uZmlndXJhdGlvbiBtYW5hZ2VyIHByb3RvY29sIGludGVy ZmFjZS4NCiAgICArKi8NCiAgICArU1RBVElDDQogICAgK0NPTlNUDQogICAgK0VES0lJX0NPTkZJ R1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTCBNb3JlbGxvUGxhdGZvcm1Db25maWdNYW5hZ2VyUHJv dG9jb2wgPSB7DQogICAgKyAgQ1JFQVRFX1JFVklTSU9OKDEsMCksDQogICAgKyAgTW9yZWxsb1Bs YXRmb3JtR2V0T2JqZWN0LA0KICAgICsgIE1vcmVsbG9QbGF0Zm9ybVNldE9iamVjdCwNCiAgICAr ICAmTW9yZWxsb1JlcG9zaXRvcnlJbmZvDQogICAgK307DQogICAgKw0KICAgICsvKioNCiAgICAr ICBFbnRyeXBvaW50IG9mIENvbmZpZ3VyYXRpb24gTWFuYWdlciBEeGUuDQogICAgKw0KICAgICsg IEBwYXJhbSAgSW1hZ2VIYW5kbGUNCiAgICArICBAcGFyYW0gIFN5c3RlbVRhYmxlDQogICAgKw0K ICAgICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MNCiAgICArICBAcmV0dXJuIEVGSV9MT0FEX0VSUk9S DQogICAgKyAgQHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUw0KICAgICsNCiAgICArKiovDQog ICAgK0VGSV9TVEFUVVMNCiAgICArRUZJQVBJDQogICAgK0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhl SW5pdGlhbGl6ZSAoDQogICAgKyAgSU4gRUZJX0hBTkRMRSAgICAgICAgICBJbWFnZUhhbmRsZSwN CiAgICArICBJTiBFRklfU1lTVEVNX1RBQkxFICAqIFN5c3RlbVRhYmxlDQogICAgKyAgKQ0KICAg ICt7DQogICAgKyAgRUZJX1NUQVRVUyAgICAgICAgIFN0YXR1czsNCiAgICArDQogICAgKyAgLy8g SW5pdGlhbGl6ZSB0aGUgUGxhdGZvcm0gQ29uZmlndXJhdGlvbiBSZXBvc2l0b3J5IGJlZm9yZSBp bnN0YWxsaW5nIHRoZQ0KICAgICsgIC8vIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90b2NvbA0K ICAgICsgIFN0YXR1cyA9IEluaXRpYWxpemVQbGF0Zm9ybVJlcG9zaXRvcnkgKA0KICAgICsgICAg ICAgICAgICAgTW9yZWxsb1BsYXRmb3JtQ29uZmlnTWFuYWdlclByb3RvY29sLlBsYXRSZXBvSW5m bw0KICAgICsgICAgICAgICAgICAgKTsNCiAgICArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQogICAgKyAgICBERUJVRyAoKA0KICAgICsgICAgICBERUJVR19FUlJPUiwNCiAgICArICAgICAg IkVSUk9SOiBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUGxhdGZvcm0gQ29uZmlndXJhdGlvbiBS ZXBvc2l0b3J5LiIgXA0KICAgICsgICAgICAiIFN0YXR1cyA9ICVyXG4iLA0KICAgICsgICAgICBT dGF0dXMNCiAgICArICAgICAgKSk7DQogICAgKyAgfQ0KICAgICsNCiAgICArICBTdGF0dXMgPSBn QlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoDQogICAgKyAgICAgICAgICAgICAgICAgICZJ bWFnZUhhbmRsZSwNCiAgICArICAgICAgICAgICAgICAgICAgJmdFZGtpaUNvbmZpZ3VyYXRpb25N YW5hZ2VyUHJvdG9jb2xHdWlkLA0KICAgICsgICAgICAgICAgICAgICAgICBFRklfTkFUSVZFX0lO VEVSRkFDRSwNCiAgICArICAgICAgICAgICAgICAgICAgKFZPSUQqKSZNb3JlbGxvUGxhdGZvcm1D b25maWdNYW5hZ2VyUHJvdG9jb2wNCiAgICArICAgICAgICAgICAgICAgICAgKTsNCiAgICArICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQogICAgKyAgICBERUJVRyAoKA0KICAgICsgICAgICBE RUJVR19FUlJPUiwNCiAgICArICAgICAgIkVSUk9SOiBGYWlsZWQgdG8gZ2V0IEluc3RhbGwgQ29u ZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sLiIgXA0KICAgICsgICAgICAiIFN0YXR1cyA9ICVy XG4iLA0KICAgICsgICAgICBTdGF0dXMNCiAgICArICAgICAgKSk7DQogICAgKyAgICBnb3RvIGVy cm9yX2hhbmRsZXI7DQogICAgKyAgfQ0KICAgICsNCiAgICArZXJyb3JfaGFuZGxlcjoNCiAgICAr ICByZXR1cm4gU3RhdHVzOw0KICAgICt9DQogICAgZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FSTS9N b3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0NvbmZp Z3VyYXRpb25NYW5hZ2VyRnZwLmMgYi9QbGF0Zm9ybS9BUk0vTW9yZWxsby9Db25maWd1cmF0aW9u TWFuYWdlci9Db25maWd1cmF0aW9uTWFuYWdlckR4ZS9Db25maWd1cmF0aW9uTWFuYWdlckZ2cC5j DQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAwMDAuLjMzM2Q5 NjFlZDg4YQ0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysgYi9QbGF0Zm9ybS9BUk0vTW9yZWxs by9Db25maWd1cmF0aW9uTWFuYWdlci9Db25maWd1cmF0aW9uTWFuYWdlckR4ZS9Db25maWd1cmF0 aW9uTWFuYWdlckZ2cC5jDQogICAgQEAgLTAsMCArMSw2MDIgQEANCiAgICArLyoqIEBmaWxlDQog ICAgKyAgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIER4ZQ0KICAgICsNCiAgICArICBDb3B5cmlnaHQg KGMpIDIwMjEsIEFSTSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgICArDQog ICAgKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCiAgICAr DQogICAgKyAgQHBhciBHbG9zc2FyeToNCiAgICArICAgIC0gQ20gb3IgQ00gICAtIENvbmZpZ3Vy YXRpb24gTWFuYWdlcg0KICAgICsgICAgLSBPYmogb3IgT0JKIC0gT2JqZWN0DQogICAgKyoqLw0K ICAgICsNCiAgICArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvRGVidWdQb3J0MlRhYmxlLmg+ DQogICAgKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0lvUmVtYXBwaW5nVGFibGUuaD4NCiAg ICArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvTWVtb3J5TWFwcGVkQ29uZmlndXJhdGlvblNw YWNlQWNjZXNzVGFibGUuaD4NCiAgICArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvU2VyaWFs UG9ydENvbnNvbGVSZWRpcmVjdGlvblRhYmxlLmg+DQogICAgKyNpbmNsdWRlIDxMaWJyYXJ5L0Rl YnVnTGliLmg+DQogICAgKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxp Yi5oPg0KICAgICsjaW5jbHVkZSA8UHJvdG9jb2wvQ29uZmlndXJhdGlvbk1hbmFnZXJQcm90b2Nv bC5oPg0KICAgICsNCiAgICArI2luY2x1ZGUgIkNvbmZpZ3VyYXRpb25NYW5hZ2VyRnZwLmgiDQog ICAgKyNpbmNsdWRlICJQbGF0Zm9ybS5oIg0KICAgICsNCiAgICArRURLSUlfRlZQX1BMQVRGT1JN X1JFUE9TSVRPUllfSU5GTyBNb3JlbGxvRnZwUmVwb3NpdG9yeUluZm8gPSB7DQogICAgKyAgLy8g QUNQSSBUYWJsZSBMaXN0DQogICAgKyAgew0KICAgICsgICAgLy8gRkFEVCBUYWJsZQ0KICAgICsg ICAgew0KICAgICsgICAgICBFRklfQUNQSV82XzNfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJM RV9TSUdOQVRVUkUsDQogICAgKyAgICAgIEVGSV9BQ1BJXzZfM19GSVhFRF9BQ1BJX0RFU0NSSVBU SU9OX1RBQkxFX1JFVklTSU9OLA0KICAgICsgICAgICBDUkVBVEVfU1REX0FDUElfVEFCTEVfR0VO X0lEIChFU3RkQWNwaVRhYmxlSWRGYWR0KSwNCiAgICArICAgICAgTlVMTA0KICAgICsgICAgfSwN CiAgICArICAgIC8vIEdURFQgVGFibGUNCiAgICArICAgIHsNCiAgICArICAgICAgRUZJX0FDUElf Nl8zX0dFTkVSSUNfVElNRVJfREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFLA0KICAgICsgICAg ICBFRklfQUNQSV82XzNfR0VORVJJQ19USU1FUl9ERVNDUklQVElPTl9UQUJMRV9SRVZJU0lPTiwN CiAgICArICAgICAgQ1JFQVRFX1NURF9BQ1BJX1RBQkxFX0dFTl9JRCAoRVN0ZEFjcGlUYWJsZUlk R3RkdCksDQogICAgKyAgICAgIE5VTEwNCiAgICArICAgIH0sDQogICAgKyAgICAvLyBNQURUIFRh YmxlDQogICAgKyAgICB7DQogICAgKyAgICAgIEVGSV9BQ1BJXzZfM19NVUxUSVBMRV9BUElDX0RF U0NSSVBUSU9OX1RBQkxFX1NJR05BVFVSRSwNCiAgICArICAgICAgRUZJX0FDUElfNl8zX01VTFRJ UExFX0FQSUNfREVTQ1JJUFRJT05fVEFCTEVfUkVWSVNJT04sDQogICAgKyAgICAgIENSRUFURV9T VERfQUNQSV9UQUJMRV9HRU5fSUQgKEVTdGRBY3BpVGFibGVJZE1hZHQpLA0KICAgICsgICAgICBO VUxMDQogICAgKyAgICB9LA0KICAgICsgICAgLy8gU1BDUiBUYWJsZQ0KICAgICsgICAgew0KICAg ICsgICAgICBFRklfQUNQSV82XzNfU0VSSUFMX1BPUlRfQ09OU09MRV9SRURJUkVDVElPTl9UQUJM RV9TSUdOQVRVUkUsDQogICAgKyAgICAgIEVGSV9BQ1BJX1NFUklBTF9QT1JUX0NPTlNPTEVfUkVE SVJFQ1RJT05fVEFCTEVfUkVWSVNJT04sDQogICAgKyAgICAgIENSRUFURV9TVERfQUNQSV9UQUJM RV9HRU5fSUQgKEVTdGRBY3BpVGFibGVJZFNwY3IpLA0KICAgICsgICAgICBOVUxMDQogICAgKyAg ICB9LA0KICAgICsgICAgLy8gRFNEVCBUYWJsZQ0KICAgICsgICAgew0KICAgICsgICAgICBFRklf QUNQSV82XzNfRElGRkVSRU5USUFURURfU1lTVEVNX0RFU0NSSVBUSU9OX1RBQkxFX1NJR05BVFVS RSwNCiAgICArICAgICAgMCwgLy8gVW51c2VkDQogICAgKyAgICAgIENSRUFURV9TVERfQUNQSV9U QUJMRV9HRU5fSUQgKEVTdGRBY3BpVGFibGVJZERzZHQpLA0KICAgICsgICAgICAoRUZJX0FDUElf REVTQ1JJUFRJT05fSEVBREVSKilkc2R0ZnZwX2FtbF9jb2RlDQogICAgKyAgICB9LA0KICAgICsg ICAgLy8gREJHMiBUYWJsZQ0KICAgICsgICAgew0KICAgICsgICAgICBFRklfQUNQSV82XzNfREVC VUdfUE9SVF8yX1RBQkxFX1NJR05BVFVSRSwNCiAgICArICAgICAgRUZJX0FDUElfREJHMl9ERUJV R19ERVZJQ0VfSU5GT1JNQVRJT05fU1RSVUNUX1JFVklTSU9OLA0KICAgICsgICAgICBDUkVBVEVf U1REX0FDUElfVEFCTEVfR0VOX0lEIChFU3RkQWNwaVRhYmxlSWREYmcyKSwNCiAgICArICAgICAg TlVMTA0KICAgICsgICAgfSwNCiAgICArICAgIC8vIFBQVFQgVGFibGUNCiAgICArICAgIHsNCiAg ICArICAgICAgRUZJX0FDUElfNl8zX1BST0NFU1NPUl9QUk9QRVJUSUVTX1RPUE9MT0dZX1RBQkxF X1NUUlVDVFVSRV9TSUdOQVRVUkUsDQogICAgKyAgICAgIEVGSV9BQ1BJXzZfM19QUk9DRVNTT1Jf UFJPUEVSVElFU19UT1BPTE9HWV9UQUJMRV9SRVZJU0lPTiwNCiAgICArICAgICAgQ1JFQVRFX1NU RF9BQ1BJX1RBQkxFX0dFTl9JRCAoRVN0ZEFjcGlUYWJsZUlkUHB0dCksDQogICAgKyAgICAgIE5V TEwNCiAgICArICAgIH0sDQogICAgKyAgICAvLyBJT1JUIFRhYmxlDQogICAgKyAgICB7DQogICAg KyAgICAgIEVGSV9BQ1BJXzZfM19JT19SRU1BUFBJTkdfVEFCTEVfU0lHTkFUVVJFLA0KICAgICsg ICAgICBFRklfQUNQSV9JT19SRU1BUFBJTkdfVEFCTEVfUkVWSVNJT04sDQogICAgKyAgICAgIENS RUFURV9TVERfQUNQSV9UQUJMRV9HRU5fSUQgKEVTdGRBY3BpVGFibGVJZElvcnQpLA0KICAgICsg ICAgICBOVUxMDQogICAgKyAgICB9LA0KICAgICsgICAgLy8gUENJIE1DRkcgVGFibGUNCiAgICAr ICAgIHsNCiAgICArICAgICAgRUZJX0FDUElfNl8zX1BDSV9FWFBSRVNTX01FTU9SWV9NQVBQRURf Q09ORklHVVJBVElPTl9TUEFDRV9CQVNFX0FERFJFU1NfREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFU VVJFLA0KICAgICsgICAgICBFRklfQUNQSV9NRU1PUllfTUFQUEVEX0NPTkZJR1VSQVRJT05fU1BB Q0VfQUNDRVNTX1RBQkxFX1JFVklTSU9OLA0KICAgICsgICAgICBDUkVBVEVfU1REX0FDUElfVEFC TEVfR0VOX0lEIChFU3RkQWNwaVRhYmxlSWRNY2ZnKSwNCiAgICArICAgICAgTlVMTCwNCiAgICAr ICAgIH0sDQogICAgKyAgICAvLyBTU0RUIHRhYmxlIGRlc2NyaWJpbmcgdGhlIFBDSSByb290IGNv bXBsZXgNCiAgICArICAgIHsNCiAgICArICAgICAgRUZJX0FDUElfNl8zX1NFQ09OREFSWV9TWVNU RU1fREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFLA0KICAgICsgICAgICAwLCAvLyBVbnVzZWQN CiAgICArICAgICAgQ1JFQVRFX1NURF9BQ1BJX1RBQkxFX0dFTl9JRCAoRVN0ZEFjcGlUYWJsZUlk U3NkdCksDQogICAgKyAgICAgIChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIqKXNzZHRwY2lm dnBfYW1sX2NvZGUNCiAgICArICAgIH0sDQogICAgKyAgfSwNCiAgICArDQogICAgKyAgLy8gR0lD IElUUw0KICAgICsgIHsNCiAgICArICAgIC8vIEdJQyBJVFMgLSBQQ0llIFRDVQ0KICAgICsgICAg ew0KICAgICsgICAgICAvLyBUaGUgR0lDIElUUyBJRC4NCiAgICArICAgICAgMCwNCiAgICArICAg ICAgLy8gVGhlIHBoeXNpY2FsIGFkZHJlc3MgZm9yIHRoZSBJbnRlcnJ1cHQgVHJhbnNsYXRpb24g U2VydmljZQ0KICAgICsgICAgICAweDMwMDYwMDAwLA0KICAgICsgICAgICAvL1Byb3hpbWl0eSBE b21haW4NCiAgICArICAgICAgMA0KICAgICsgICAgfSwNCiAgICArICAgIC8vIEdJQyBJVFMgLSBQ Q0llIFJDDQogICAgKyAgICB7DQogICAgKyAgICAgIC8vIFRoZSBHSUMgSVRTIElELg0KICAgICsg ICAgICAxLA0KICAgICsgICAgICAvLyBUaGUgcGh5c2ljYWwgYWRkcmVzcyBmb3IgdGhlIEludGVy cnVwdCBUcmFuc2xhdGlvbiBTZXJ2aWNlDQogICAgKyAgICAgIDB4MzAwQTAwMDAsDQogICAgKyAg ICAgIC8vUHJveGltaXR5IERvbWFpbg0KICAgICsgICAgICAwDQogICAgKyAgICB9LA0KICAgICsg IH0sDQogICAgKw0KICAgICsgIC8vIElUUyBncm91cCBub2RlDQogICAgKyAgew0KICAgICsgICAg ew0KICAgICsgICAgICAvLyBSZWZlcmVuY2UgdG9rZW4gZm9yIHRoaXMgSW9ydCBub2RlDQogICAg KyAgICAgIFJFRkVSRU5DRV9UT0tFTl9GVlAgKEl0c0dyb3VwSW5mb1swXSksDQogICAgKyAgICAg IC8vIFRoZSBudW1iZXIgb2YgSVRTIGlkZW50aWZpZXJzIGluIHRoZSBJVFMgbm9kZS4NCiAgICAr ICAgICAgMSwNCiAgICArICAgICAgLy8gUmVmZXJlbmNlIHRva2VuIGZvciB0aGUgSVRTIGlkZW50 aWZpZXIgYXJyYXkNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOX0ZWUCAoSXRzSWRlbnRpZmll ckFycmF5WzBdKQ0KICAgICsgICAgfSwNCiAgICArICAgIHsNCiAgICArICAgICAgLy8gUmVmZXJl bmNlIHRva2VuIGZvciB0aGlzIElvcnQgbm9kZQ0KICAgICsgICAgICBSRUZFUkVOQ0VfVE9LRU5f RlZQIChJdHNHcm91cEluZm9bMV0pLA0KICAgICsgICAgICAvLyBUaGUgbnVtYmVyIG9mIElUUyBp ZGVudGlmaWVycyBpbiB0aGUgSVRTIG5vZGUuDQogICAgKyAgICAgIDEsDQogICAgKyAgICAgIC8v IFJlZmVyZW5jZSB0b2tlbiBmb3IgdGhlIElUUyBpZGVudGlmaWVyIGFycmF5DQogICAgKyAgICAg IFJFRkVSRU5DRV9UT0tFTl9GVlAgKEl0c0lkZW50aWZpZXJBcnJheVsxXSkNCiAgICArICAgIH0s DQogICAgKyAgfSwNCiAgICArDQogICAgKyAgLy8gSVRTIGlkZW50aWZpZXIgYXJyYXkNCiAgICAr ICB7DQogICAgKyAgICB7DQogICAgKyAgICAgIC8vIFRoZSBJVFMgSWRlbnRpZmllcg0KICAgICsg ICAgICAwDQogICAgKyAgICB9LA0KICAgICsgICAgew0KICAgICsgICAgICAvLyBUaGUgSVRTIElk ZW50aWZpZXINCiAgICArICAgICAgMQ0KICAgICsgICAgfSwNCiAgICArICB9LA0KICAgICsNCiAg ICArICAvLyBTTU1VdjMgTm9kZQ0KICAgICsgIHsNCiAgICArICAgIHsNCiAgICArICAgICAgLy8g UmVmZXJlbmNlIHRva2VuIGZvciB0aGlzIElvcnQgbm9kZQ0KICAgICsgICAgICBSRUZFUkVOQ0Vf VE9LRU5fRlZQIChTbW11VjNJbmZvWzBdKSwNCiAgICArICAgICAgLy8gTnVtYmVyIG9mIElEIG1h cHBpbmdzDQogICAgKyAgICAgIDIsDQogICAgKyAgICAgIC8vIFJlZmVyZW5jZSB0b2tlbiBmb3Ig dGhlIElEIG1hcHBpbmcgYXJyYXkNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOX0ZWUCAoRGV2 aWNlSWRNYXBwaW5nWzBdWzBdKSwNCiAgICArICAgICAgLy8gU01NVSBCYXNlIEFkZHJlc3MNCiAg ICArICAgICAgMHg0RjQwMDAwMCwNCiAgICArICAgICAgLy8gU01NVSBmbGFncw0KICAgICsgICAg ICBFRklfQUNQSV9JT1JUX1NNTVV2M19GTEFHX0NPSEFDX09WRVJSSURFLA0KICAgICsgICAgICAv LyBWQVRPUyBhZGRyZXNzDQogICAgKyAgICAgIDAsDQogICAgKyAgICAgIC8vIE1vZGVsDQogICAg KyAgICAgIEVGSV9BQ1BJX0lPUlRfU01NVXYzX01PREVMX0dFTkVSSUMsDQogICAgKyAgICAgIC8v IEdTSVYgb2YgdGhlIEV2ZW50IGludGVycnVwdCBpZiBTUEkgYmFzZWQNCiAgICArICAgICAgMHgx MEIsDQogICAgKyAgICAgIC8vIFBSSSBJbnRlcnJ1cHQgaWYgU1BJIGJhc2VkDQogICAgKyAgICAg IDAsDQogICAgKyAgICAgIC8vIEdFUlIgaW50ZXJydXB0IGlmIEdTSVYgYmFzZWQNCiAgICArICAg ICAgMHgxMEQsDQogICAgKyAgICAgIC8vIFN5bmMgaW50ZXJydXB0IGlmIEdTSVYgYmFzZWQNCiAg ICArICAgICAgMHgxMEMsDQogICAgKyAgICAgIC8vIFByb3hpbWl0eSBkb21haW4gZmxhZywgaWdu b3JlZCBpbiB0aGlzIGNhc2UNCiAgICArICAgICAgMCwNCiAgICArICAgICAgLy8gSW5kZXggaW50 byB0aGUgYXJyYXkgb2YgSUQgbWFwcGluZywgaWdub3JlZCBhcyBhbGwNCiAgICArICAgICAgLy8g dGhlIFNNTVUgY29udHJvbCBpbnRlcnJ1cHRzIGFyZSBHU0lWIGJhc2VkDQpbU0FNSV0gSWYgSSB1 bmRlcnN0YW5kIGNvcnJlY3RseSB0aGUgUFJJIGludGVycnVwdCBpcyBNU0kgYmFzZWQuIEluIHRo YXQgY2FzZSBzaG91bGQgdGhpcyBjb21tZW50IGJlIG9ubHkgJ0luZGV4IGludG8gdGhlIGFycmF5 IG9mIElEIG1hcHBpbmcnPw0KTGV0IG1lIGtub3cgaWYgeW91IGFncmVlLCBJIHdpbGwgbWFrZSB0 aGlzIGNoYW5nZSBsb2NhbGx5IGJlZm9yZSBwdXNoaW5nIHRoZSBjaGFuZ2VzLg0KWy9TQU1JXQ0K ICAgICsgICAgICAxDQogICAgKyAgICB9LA0KICAgICsgIH0sDQogICAgKw0KICAgICsgIC8vIFJv b3QgQ29tcGxleCBub2RlIGluZm8NCiAgICArICB7DQogICAgKyAgICB7DQogICAgKyAgICAgIC8v IFJlZmVyZW5jZSB0b2tlbiBmb3IgdGhpcyBJb3J0IG5vZGUNCiAgICArICAgICAgUkVGRVJFTkNF X1RPS0VOX0ZWUCAoUm9vdENvbXBsZXhJbmZvWzBdKSwNCiAgICArICAgICAgLy8gTnVtYmVyIG9m IElEIG1hcHBpbmdzDQogICAgKyAgICAgIDEsDQogICAgKyAgICAgIC8vIFJlZmVyZW5jZSB0b2tl biBmb3IgdGhlIElEIG1hcHBpbmcgYXJyYXkNCiAgICArICAgICAgUkVGRVJFTkNFX1RPS0VOX0ZW UCAoRGV2aWNlSWRNYXBwaW5nWzFdWzBdKSwNCiAgICArDQogICAgKyAgICAgIC8vIE1lbW9yeSBh Y2Nlc3MgcHJvcGVydGllcyA6IENhY2hlIGNvaGVyZW50IGF0dHJpYnV0ZXMNCiAgICArICAgICAg RUZJX0FDUElfSU9SVF9NRU1fQUNDRVNTX1BST1BfQ0NBLA0KICAgICsgICAgICAvLyBNZW1vcnkg YWNjZXNzIHByb3BlcnRpZXMgOiBBbGxvY2F0aW9uIGhpbnRzDQogICAgKyAgICAgIDAsDQogICAg KyAgICAgIC8vIE1lbW9yeSBhY2Nlc3MgcHJvcGVydGllcyA6IE1lbW9yeSBhY2Nlc3MgZmxhZ3MN CiAgICArICAgICAgMCwNCiAgICArICAgICAgLy8gQVRTIGF0dHJpYnV0ZXMNCiAgICArICAgICAg RUZJX0FDUElfSU9SVF9ST09UX0NPTVBMRVhfQVRTX1NVUFBPUlRFRCwNCiAgICArICAgICAgLy8g UENJIHNlZ21lbnQgbnVtYmVyDQogICAgKyAgICAgIDAsDQogICAgKyAgICAgIC8vIE1lbW9yeSBh ZGRyZXNzIHNpemUgbGltaXQNCiAgICArICAgICAgNDINCiAgICArICAgIH0sDQogICAgKyAgfSwN CiAgICArDQogICAgKyAgLy8gQXJyYXkgb2YgRGV2aWNlIElEIG1hcHBpbmdzDQogICAgKyAgew0K ICAgICsgICAgLy8gRGV2aWNlSWRNYXBwaW5nWzBdWzBdIC0gWzBdWzFdDQogICAgKyAgICB7DQog ICAgKyAgICAgIC8qIE1hcHBpbmcgU01NVXYzIC0+IElUUyBHcm91cA0KICAgICsgICAgICAqLw0K ICAgICsNCiAgICArICAgICAgLy8gU01NVXYzIGRldmljZSBJRCBtYXBwaW5nDQogICAgKyAgICAg IHsNCiAgICArICAgICAgICAvLyBJbnB1dCBiYXNlDQogICAgKyAgICAgICAgMHgwLA0KICAgICsg ICAgICAgIC8vIE51bWJlciBvZiBpbnB1dCBJRHMNCiAgICArICAgICAgICAweDAwMDBGRkZGLA0K ICAgICsgICAgICAgIC8vIE91dHB1dCBCYXNlDQogICAgKyAgICAgICAgMHgwLA0KICAgICsgICAg ICAgIC8vIE91dHB1dCByZWZlcmVuY2UNCiAgICArICAgICAgICBSRUZFUkVOQ0VfVE9LRU5fRlZQ IChJdHNHcm91cEluZm9bMV0pLA0KICAgICsgICAgICAgIC8vIEZsYWdzDQogICAgKyAgICAgICAg MA0KICAgICsgICAgICB9LA0KICAgICsgICAgICAvLyBTTU1VdjMgZGV2aWNlIElEIG1hcHBpbmcN CiAgICArICAgICAgew0KICAgICsgICAgICAgIC8vIElucHV0IGJhc2UNCiAgICArICAgICAgICAw eDAsDQogICAgKyAgICAgICAgLy8gTnVtYmVyIG9mIGlucHV0IElEcw0KICAgICsgICAgICAgIDB4 MDAwMDAwMDEsDQogICAgKyAgICAgICAgLy8gT3V0cHV0IEJhc2UNCiAgICArICAgICAgICAweDAs DQogICAgKyAgICAgICAgLy8gT3V0cHV0IHJlZmVyZW5jZSB0b2tlbiBmb3IgdGhlIElPUlQgbm9k ZQ0KICAgICsgICAgICAgIFJFRkVSRU5DRV9UT0tFTl9GVlAgKEl0c0dyb3VwSW5mb1swXSksDQog ICAgKyAgICAgICAgLy8gRmxhZ3MNCiAgICArICAgICAgICBFRklfQUNQSV9JT1JUX0lEX01BUFBJ TkdfRkxBR1NfU0lOR0xFDQogICAgKyAgICAgIH0NCiAgICArICAgIH0sDQogICAgKyAgICAvLyBE ZXZpY2VJZE1hcHBpbmdbMV1bMF0NCiAgICArICAgIHsNCiAgICArICAgICAgLy8gTWFwcGluZyBm b3IgIFJvb3RDb21wbGV4IC0+IFNNTVV2Mw0KICAgICsNCiAgICArICAgICAgLy8gRGV2aWNlIElE IG1hcHBpbmcgZm9yIFJvb3QgY29tcGxleCBub2RlDQogICAgKyAgICAgIHsNCiAgICArICAgICAg ICAvLyBJbnB1dCBiYXNlDQogICAgKyAgICAgICAgMHgwLA0KICAgICsgICAgICAgIC8vIE51bWJl ciBvZiBpbnB1dCBJRHMNCiAgICArICAgICAgICAweDAwMDBGRkZGLA0KICAgICsgICAgICAgIC8v IE91dHB1dCBCYXNlDQogICAgKyAgICAgICAgMHgwLA0KICAgICsgICAgICAgIC8vIE91dHB1dCBy ZWZlcmVuY2UNCiAgICArICAgICAgICBSRUZFUkVOQ0VfVE9LRU5fRlZQIChTbW11VjNJbmZvWzBd KSwNCiAgICArICAgICAgICAvLyBGbGFncw0KICAgICsgICAgICAgIDANCiAgICArICAgICAgfSwN CiAgICArICAgIH0sDQogICAgKyAgfSwNCiAgICArICAvLyBQQ0kgQ29uZmlndXJhdGlvbiBTcGFj ZSBJbmZvDQogICAgKyAgew0KICAgICsgICAgLy8gUENJZSBFQ0FNDQogICAgKyAgICB7DQogICAg KyAgICAgIEZpeGVkUGNkR2V0NjQgKFBjZFBjaUV4cHJlc3NCYXNlQWRkcmVzcyksICAvLyBCYXNl IEFkZHJlc3MNCiAgICArICAgICAgMHgwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTZWdtZW50IEdyb3VwIE51bWJlcg0KICAgICsgICAgICBGaXhlZFBjZEdldDMy IChQY2RQY2lCdXNNaW4pLCAgICAgICAgICAgICAgLy8gU3RhcnQgQnVzIE51bWJlcg0KICAgICsg ICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lCdXNNYXgpICAgICAgICAgICAgICAgLy8gRW5kIEJ1 cyBOdW1iZXINCiAgICArICAgIH0sDQogICAgKyAgfSwNCiAgICArfTsNCiAgICArDQogICAgK0VE S0lJX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5GTyBNb3JlbGxvUmVwb3NpdG9yeUluZm8gPSB7DQog ICAgKyAgJkNvbW1vblBsYXRmb3JtSW5mbywNCiAgICArICAmTW9yZWxsb0Z2cFJlcG9zaXRvcnlJ bmZvDQogICAgK307DQogICAgKw0KICAgICsvKiogUmV0dXJuIGEgZGV2aWNlIElkIG1hcHBpbmcg YXJyYXkuDQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgVGhpcyAgICAgICAgUG9pbnRl ciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBwYXJhbSBb aW5dICAgICAgQ21PYmplY3RJZCAgVGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QgSUQu DQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBUb2tlbiAgICAgICBBIHRva2VuIGZvciBpZGVudGlm eWluZyB0aGUgb2JqZWN0DQogICAgKyAgQHBhcmFtIFtpbiwgb3V0XSBDbU9iamVjdCAgICBQb2lu dGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0DQogICAgKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUgcmVxdWVzdGVkIE9i amVjdC4NCiAgICArDQogICAgKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgU3VjY2Vz cy4NCiAgICArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBIHBhcmFtZXRlciBpcyBp bnZhbGlkLg0KICAgICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgIFRoZSByZXF1aXJl ZCBvYmplY3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLg0KICAgICsqKi8NCiAgICArRUZJX1NU QVRVUw0KICAgICtFRklBUEkNCiAgICArR2V0RGV2aWNlSWRNYXBwaW5nQXJyYXkgKA0KICAgICsg IElOICBDT05TVCBFREtJSV9DT05GSUdVUkFUSU9OX01BTkFHRVJfUFJPVE9DT0wgICogQ09OU1Qg VGhpcywNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lEICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9UT0tF TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiwNCiAgICArICBJTiAgT1VUICAg Q01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgICAqIENPTlNUIENtT2JqZWN0DQog ICAgKyAgKQ0KICAgICt7DQogICAgKyAgRURLSUlfRlZQX1BMQVRGT1JNX1JFUE9TSVRPUllfSU5G TyAgICAgKiBQbGF0Zm9ybVJlcG87DQogICAgKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDb3VudDsNCiAgICArDQogICAgKyAgaWYgKChUaGlzID09IE5VTEwpIHx8 IChDbU9iamVjdCA9PSBOVUxMKSkgew0KICAgICsgICAgQVNTRVJUIChUaGlzICE9IE5VTEwpOw0K ICAgICsgICAgQVNTRVJUIChDbU9iamVjdCAhPSBOVUxMKTsNCiAgICArICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7DQogICAgKyAgfQ0KICAgICsNCiAgICArICBQbGF0Zm9ybVJlcG8g PSBUaGlzLT5QbGF0UmVwb0luZm8tPkZ2cFBsYXRSZXBvSW5mbzsNCiAgICArDQogICAgKyAgREVC VUcgKChERUJVR19JTkZPLCAiRGV2aWNlSWRNYXBwaW5nIC0gVG9rZW4gPSAlcFxuIikpOw0KICAg ICsNCiAgICArICBpZiAoVG9rZW4gPT0gKENNX09CSkVDVF9UT0tFTikmUGxhdGZvcm1SZXBvLT5E ZXZpY2VJZE1hcHBpbmdbMF1bMF0pIHsNCiAgICArICAgIENvdW50ID0gMjsNCiAgICArICAgIERF QlVHICgoREVCVUdfSU5GTywgIkRldmljZUlkTWFwcGluZyAtIEZvdW5kIERldmljZUlkTWFwcGlu Z1swXVswXVxuIikpOw0KICAgICsgIH0gZWxzZSBpZiAoVG9rZW4gPT0NCiAgICArICAgICAgICAg ICAgIChDTV9PQkpFQ1RfVE9LRU4pJlBsYXRmb3JtUmVwby0+RGV2aWNlSWRNYXBwaW5nWzFdWzBd KSB7DQogICAgKyAgICBDb3VudCAgPSAxOw0KICAgICsgICAgREVCVUcgKChERUJVR19JTkZPLCAi RGV2aWNlSWRNYXBwaW5nIC0gRm91bmQgRGV2aWNlSWRNYXBwaW5nWzFdWzBdXG4iKSk7DQogICAg KyAgfSBlbHNlIHsNCiAgICArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkRldmljZUlkTWFwcGlu ZyAtIE5vdCBGb3VuZFxuIikpOw0KICAgICsgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQogICAg KyAgfQ0KICAgICsNCiAgICArICBDbU9iamVjdC0+RGF0YSA9IChWT0lEKilUb2tlbjsNCiAgICAr ICBDbU9iamVjdC0+T2JqZWN0SWQgPSBDbU9iamVjdElkOw0KICAgICsgIENtT2JqZWN0LT5Db3Vu dCA9IENvdW50Ow0KICAgICsgIENtT2JqZWN0LT5TaXplID0gQ291bnQgKiBzaXplb2YgKENNX0FS TV9JRF9NQVBQSU5HKTsNCiAgICArDQogICAgKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KICAgICt9 DQogICAgKw0KICAgICsvKiogUmV0dXJuIGFuIElUUyBpZGVudGlmaWVyIGFycmF5Lg0KICAgICsN CiAgICArICBAcGFyYW0gW2luXSAgICAgIFRoaXMgICAgICAgIFBvaW50ZXIgdG8gdGhlIENvbmZp Z3VyYXRpb24gTWFuYWdlciBQcm90b2NvbC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIENtT2Jq ZWN0SWQgIFRoZSBDb25maWd1cmF0aW9uIE1hbmFnZXIgT2JqZWN0IElELg0KICAgICsgIEBwYXJh bSBbaW5dICAgICAgVG9rZW4gICAgICAgQSB0b2tlbiBmb3IgaWRlbnRpZnlpbmcgdGhlIG9iamVj dA0KICAgICsgIEBwYXJhbSBbaW4sIG91dF0gQ21PYmplY3QgICAgUG9pbnRlciB0byB0aGUgQ29u ZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHJlcXVlc3RlZCBPYmplY3QuDQogICAgKw0K ICAgICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFN1Y2Nlc3MuDQogICAgKyAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgQSBwYXJhbWV0ZXIgaXMgaW52YWxpZC4NCiAgICAr ICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBUaGUgcmVxdWlyZWQgb2JqZWN0IGluZm9y bWF0aW9uIGlzIG5vdCBmb3VuZC4NCiAgICArKiovDQogICAgK0VGSV9TVEFUVVMNCiAgICArRUZJ QVBJDQogICAgK0dldEl0c0lkZW50aWZpZXJBcnJheSAoDQogICAgKyAgSU4gIENPTlNUIEVES0lJ X0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTCAgKiBDT05TVCBUaGlzLA0KICAgICsgIElO ICBDT05TVCBDTV9PQkpFQ1RfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ21P YmplY3RJZCwNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX1RPS0VOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRva2VuLA0KICAgICsgIElOICBPVVQgICBDTV9PQkpfREVTQ1JJUFRP UiAgICAgICAgICAgICAgICAgICAgICogQ09OU1QgQ21PYmplY3QNCiAgICArICApDQogICAgK3sN CiAgICArICBFREtJSV9GVlBfUExBVEZPUk1fUkVQT1NJVE9SWV9JTkZPICAgICAqIFBsYXRmb3Jt UmVwbzsNCiAgICArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv dW50Ow0KICAgICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k ZXg7DQogICAgKw0KICAgICsgIGlmICgoVGhpcyA9PSBOVUxMKSB8fCAoQ21PYmplY3QgPT0gTlVM TCkpIHsNCiAgICArICAgIEFTU0VSVCAoVGhpcyAhPSBOVUxMKTsNCiAgICArICAgIEFTU0VSVCAo Q21PYmplY3QgIT0gTlVMTCk7DQogICAgKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVS Ow0KICAgICsgIH0NCiAgICArDQogICAgKyAgUGxhdGZvcm1SZXBvID0gVGhpcy0+UGxhdFJlcG9J bmZvLT5GdnBQbGF0UmVwb0luZm87DQogICAgKw0KICAgICsgIENvdW50ID0gQVJSQVlfU0laRSAo UGxhdGZvcm1SZXBvLT5JdHNJZGVudGlmaWVyQXJyYXkpOw0KICAgICsNCiAgICArICBmb3IgKElu ZGV4ID0gMDsgSW5kZXggPCBDb3VudDsgSW5kZXgrKykgew0KICAgICsgICAgaWYgKFRva2VuID09 IChDTV9PQkpFQ1RfVE9LRU4pJlBsYXRmb3JtUmVwby0+SXRzSWRlbnRpZmllckFycmF5W0luZGV4 XSkgew0KICAgICsgICAgICBDbU9iamVjdC0+T2JqZWN0SWQgPSBDbU9iamVjdElkOw0KICAgICsg ICAgICBDbU9iamVjdC0+U2l6ZSA9IHNpemVvZiAoUGxhdGZvcm1SZXBvLT5JdHNJZGVudGlmaWVy QXJyYXlbMF0pOw0KICAgICsgICAgICBDbU9iamVjdC0+RGF0YSA9IChWT0lEKikmUGxhdGZvcm1S ZXBvLT5JdHNJZGVudGlmaWVyQXJyYXlbSW5kZXhdOw0KICAgICsgICAgICBDbU9iamVjdC0+Q291 bnQgPSAxOw0KICAgICsgICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogICAgKyAgICB9DQogICAg KyAgfQ0KICAgICsNCiAgICArICByZXR1cm4gRUZJX05PVF9GT1VORDsNCiAgICArfQ0KICAgICsN CiAgICArLyoqIFJldHVybiBhbiBJVFMgZ3JvdXAgaW5mby4NCiAgICArDQogICAgKyAgQHBhcmFt IFtpbl0gICAgICBUaGlzICAgICAgICBQb2ludGVyIHRvIHRoZSBDb25maWd1cmF0aW9uIE1hbmFn ZXIgUHJvdG9jb2wuDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBDbU9iamVjdElkICBUaGUgQ29u ZmlndXJhdGlvbiBNYW5hZ2VyIE9iamVjdCBJRC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIFRv a2VuICAgICAgIEEgdG9rZW4gZm9yIGlkZW50aWZ5aW5nIHRoZSBvYmplY3QNCiAgICArICBAcGFy YW0gW2luLCBvdXRdIENtT2JqZWN0ICAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFu YWdlciBPYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRv ciBkZXNjcmliaW5nIHRoZSByZXF1ZXN0ZWQgT2JqZWN0Lg0KICAgICsNCiAgICArICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgICAgICAgICBTdWNjZXNzLg0KICAgICsgIEByZXR2YWwgRUZJX0lOVkFM SURfUEFSQU1FVEVSIEEgcGFyYW1ldGVyIGlzIGludmFsaWQuDQogICAgKyAgQHJldHZhbCBFRklf Tk9UX0ZPVU5EICAgICAgICAgVGhlIHJlcXVpcmVkIG9iamVjdCBpbmZvcm1hdGlvbiBpcyBub3Qg Zm91bmQuDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQSQ0KICAgICtHZXRJ dHNHcm91cEluZm8gKA0KICAgICsgIElOICBDT05TVCBFREtJSV9DT05GSUdVUkFUSU9OX01BTkFH RVJfUFJPVE9DT0wgICogQ09OU1QgVGhpcywNCiAgICArICBJTiAgQ09OU1QgQ01fT0JKRUNUX0lE ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgSU4g IENPTlNUIENNX09CSkVDVF9UT0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl biwNCiAgICArICBJTiAgT1VUICAgQ01fT0JKX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAg ICAqIENPTlNUIENtT2JqZWN0DQogICAgKyAgKQ0KICAgICt7DQogICAgKyAgRURLSUlfRlZQX1BM QVRGT1JNX1JFUE9TSVRPUllfSU5GTyAgICAgKiBQbGF0Zm9ybVJlcG87DQogICAgKyAgVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3VudDsNCiAgICArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KICAgICsNCiAgICArICBp ZiAoKFRoaXMgPT0gTlVMTCkgfHwgKENtT2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NF UlQgKFRoaXMgIT0gTlVMTCk7DQogICAgKyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0K ICAgICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0K ICAgICsgIFBsYXRmb3JtUmVwbyA9IFRoaXMtPlBsYXRSZXBvSW5mby0+RnZwUGxhdFJlcG9JbmZv Ow0KICAgICsNCiAgICArICBDb3VudCA9IEFSUkFZX1NJWkUgKFBsYXRmb3JtUmVwby0+SXRzR3Jv dXBJbmZvKTsNCiAgICArDQogICAgKyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IElu ZGV4KyspIHsNCiAgICArICAgIGlmIChUb2tlbiA9PSAoQ01fT0JKRUNUX1RPS0VOKSZQbGF0Zm9y bVJlcG8tPkl0c0dyb3VwSW5mb1tJbmRleF0pIHsNCiAgICArICAgICAgQ21PYmplY3QtPk9iamVj dElkID0gQ21PYmplY3RJZDsNCiAgICArICAgICAgQ21PYmplY3QtPlNpemUgPSBzaXplb2YgKFBs YXRmb3JtUmVwby0+SXRzR3JvdXBJbmZvWzBdKTsNCiAgICArICAgICAgQ21PYmplY3QtPkRhdGEg PSAoVk9JRCopJlBsYXRmb3JtUmVwby0+SXRzR3JvdXBJbmZvW0luZGV4XTsNCiAgICArICAgICAg Q21PYmplY3QtPkNvdW50ID0gMTsNCiAgICArICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KICAg ICsgICAgfQ0KICAgICsgIH0NCiAgICArDQogICAgKyAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQog ICAgK30NCiAgICArDQogICAgKy8qKiBSZXR1cm4gcGxhdGZvcm0gc3BlY2lmaWMgQVJNIG5hbWVz cGFjZSBvYmplY3QuDQogICAgKw0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgVGhpcyAgICAgICAg UG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBNYW5hZ2VyIFByb3RvY29sLg0KICAgICsgIEBw YXJhbSBbaW5dICAgICAgQ21PYmplY3RJZCAgVGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBPYmpl Y3QgSUQuDQogICAgKyAgQHBhcmFtIFtpbl0gICAgICBUb2tlbiAgICAgICBBbiBvcHRpb25hbCB0 b2tlbiBpZGVudGlmeWluZyB0aGUgb2JqZWN0LiBJZg0KICAgICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW51c2VkIHRoaXMgbXVzdCBiZSBDTV9OVUxMX1RPS0VOLg0KICAgICsgIEBw YXJhbSBbaW4sIG91dF0gQ21PYmplY3QgICAgUG9pbnRlciB0byB0aGUgQ29uZmlndXJhdGlvbiBN YW5hZ2VyIE9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3Jp cHRvciBkZXNjcmliaW5nIHRoZSByZXF1ZXN0ZWQgT2JqZWN0Lg0KICAgICsNCiAgICArICBAcmV0 dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBTdWNjZXNzLg0KICAgICsgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSIEEgcGFyYW1ldGVyIGlzIGludmFsaWQuDQogICAgKyAgQHJldHZhbCBF RklfTk9UX0ZPVU5EICAgICAgICAgVGhlIHJlcXVpcmVkIG9iamVjdCBpbmZvcm1hdGlvbiBpcyBu b3QgZm91bmQuDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQSQ0KICAgICtH ZXRBcm1OYW1lU3BhY2VPYmplY3RQbGF0ICgNCiAgICArICBJTiAgQ09OU1QgRURLSUlfQ09ORklH VVJBVElPTl9NQU5BR0VSX1BST1RPQ09MICAqIENPTlNUIFRoaXMsDQogICAgKyAgSU4gIENPTlNU IENNX09CSkVDVF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbU9iamVjdElk LA0KICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfVE9LRU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVG9rZW4gT1BUSU9OQUwsDQogICAgKyAgSU4gIE9VVCAgIENNX09CSl9ERVNDUklQ VE9SICAgICAgICAgICAgICAgICAgICAgKiBDT05TVCBDbU9iamVjdA0KICAgICsgICkNCiAgICAr ew0KICAgICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0K ICAgICsgIEVES0lJX0ZWUF9QTEFURk9STV9SRVBPU0lUT1JZX0lORk8gICogUGxhdGZvcm1SZXBv Ow0KICAgICsNCiAgICArICBpZiAoKFRoaXMgPT0gTlVMTCkgfHwgKENtT2JqZWN0ID09IE5VTEwp KSB7DQogICAgKyAgICBBU1NFUlQgKFRoaXMgIT0gTlVMTCk7DQogICAgKyAgICBBU1NFUlQgKENt T2JqZWN0ICE9IE5VTEwpOw0KICAgICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsN CiAgICArICB9DQogICAgKyAgUGxhdGZvcm1SZXBvID0gVGhpcy0+UGxhdFJlcG9JbmZvLT5GdnBQ bGF0UmVwb0luZm87DQogICAgKyAgU3RhdHVzID0gRUZJX05PVF9GT1VORDsNCiAgICArDQogICAg KyAgc3dpdGNoIChHRVRfQ01fT0JKRUNUX0lEIChDbU9iamVjdElkKSkgew0KICAgICsgICAgY2Fz ZSBFQXJtT2JqR2ljSXRzSW5mbzoNCiAgICArICAgICAgU3RhdHVzID0gSGFuZGxlQ21PYmplY3Qg KA0KICAgICsgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAgICAgICAgICAgICAg ICAgJlBsYXRmb3JtUmVwby0+R2ljSXRzSW5mbywNCiAgICArICAgICAgICAgICAgICAgICBzaXpl b2YgKFBsYXRmb3JtUmVwby0+R2ljSXRzSW5mbyksDQogICAgKyAgICAgICAgICAgICAgICAgQVJS QVlfU0laRSAoUGxhdGZvcm1SZXBvLT5HaWNJdHNJbmZvKSwNCiAgICArICAgICAgICAgICAgICAg ICBDbU9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0K ICAgICsNCiAgICArICAgIGNhc2UgRUFybU9ialNtbXVWMzoNCiAgICArICAgICAgU3RhdHVzID0g SGFuZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAg KyAgICAgICAgICAgICAgICAgUGxhdGZvcm1SZXBvLT5TbW11VjNJbmZvLA0KICAgICsgICAgICAg ICAgICAgICAgIHNpemVvZiAoUGxhdGZvcm1SZXBvLT5TbW11VjNJbmZvKSwNCiAgICArICAgICAg ICAgICAgICAgICAxLA0KICAgICsgICAgICAgICAgICAgICAgIENtT2JqZWN0DQogICAgKyAgICAg ICAgICAgICAgICAgKTsNCiAgICArICAgICAgYnJlYWs7DQogICAgKw0KICAgICsgICAgY2FzZSBF QXJtT2JqSXRzR3JvdXA6DQogICAgKyAgICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0UmVmQnlU b2tlbiAoDQogICAgKyAgICAgICAgICAgICAgICAgVGhpcywNCiAgICArICAgICAgICAgICAgICAg ICBDbU9iamVjdElkLA0KICAgICsgICAgICAgICAgICAgICAgIFBsYXRmb3JtUmVwby0+SXRzR3Jv dXBJbmZvLA0KICAgICsgICAgICAgICAgICAgICAgIHNpemVvZiAoUGxhdGZvcm1SZXBvLT5JdHNH cm91cEluZm8pLA0KICAgICsgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUgKFBsYXRmb3JtUmVw by0+SXRzR3JvdXBJbmZvKSwNCiAgICArICAgICAgICAgICAgICAgICBUb2tlbiwNCiAgICArICAg ICAgICAgICAgICAgICBHZXRJdHNHcm91cEluZm8sDQogICAgKyAgICAgICAgICAgICAgICAgQ21P YmplY3QNCiAgICArICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICAr DQogICAgKyAgICBjYXNlIEVBcm1PYmpHaWNJdHNJZGVudGlmaWVyQXJyYXk6DQogICAgKyAgICAg IFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0UmVmQnlUb2tlbiAoDQogICAgKyAgICAgICAgICAgICAg ICAgVGhpcywNCiAgICArICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAg ICAgICAgICAgIFBsYXRmb3JtUmVwby0+SXRzSWRlbnRpZmllckFycmF5LA0KICAgICsgICAgICAg ICAgICAgICAgIHNpemVvZiAoUGxhdGZvcm1SZXBvLT5JdHNJZGVudGlmaWVyQXJyYXkpLA0KICAg ICsgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUgKFBsYXRmb3JtUmVwby0+SXRzSWRlbnRpZmll ckFycmF5KSwNCiAgICArICAgICAgICAgICAgICAgICBUb2tlbiwNCiAgICArICAgICAgICAgICAg ICAgICBHZXRJdHNJZGVudGlmaWVyQXJyYXksDQogICAgKyAgICAgICAgICAgICAgICAgQ21PYmpl Y3QNCiAgICArICAgICAgICAgICAgICAgICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQog ICAgKyAgICBjYXNlIEVBcm1PYmpSb290Q29tcGxleDoNCiAgICArICAgICAgU3RhdHVzID0gSGFu ZGxlQ21PYmplY3QgKA0KICAgICsgICAgICAgICAgICAgICAgIENtT2JqZWN0SWQsDQogICAgKyAg ICAgICAgICAgICAgICAgUGxhdGZvcm1SZXBvLT5Sb290Q29tcGxleEluZm8sDQogICAgKyAgICAg ICAgICAgICAgICAgc2l6ZW9mIChQbGF0Zm9ybVJlcG8tPlJvb3RDb21wbGV4SW5mbyksDQogICAg KyAgICAgICAgICAgICAgICAgMSwNCiAgICArICAgICAgICAgICAgICAgICBDbU9iamVjdA0KICAg ICsgICAgICAgICAgICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAgICArICAg IGNhc2UgRUFybU9iaklkTWFwcGluZ0FycmF5Og0KICAgICsgICAgICBTdGF0dXMgPSBIYW5kbGVD bU9iamVjdFJlZkJ5VG9rZW4gKA0KICAgICsgICAgICAgICAgICAgICAgIFRoaXMsDQogICAgKyAg ICAgICAgICAgICAgICAgQ21PYmplY3RJZCwNCiAgICArICAgICAgICAgICAgICAgICBQbGF0Zm9y bVJlcG8tPkRldmljZUlkTWFwcGluZywNCiAgICArICAgICAgICAgICAgICAgICBzaXplb2YgKFBs YXRmb3JtUmVwby0+RGV2aWNlSWRNYXBwaW5nKSwNCiAgICArICAgICAgICAgICAgICAgICBBUlJB WV9TSVpFIChQbGF0Zm9ybVJlcG8tPkRldmljZUlkTWFwcGluZyksDQogICAgKyAgICAgICAgICAg ICAgICAgVG9rZW4sDQogICAgKyAgICAgICAgICAgICAgICAgR2V0RGV2aWNlSWRNYXBwaW5nQXJy YXksDQogICAgKyAgICAgICAgICAgICAgICAgQ21PYmplY3QNCiAgICArICAgICAgICAgICAgICAg ICApOw0KICAgICsgICAgICBicmVhazsNCiAgICArDQogICAgKyAgICBjYXNlIEVBcm1PYmpQY2lD b25maWdTcGFjZUluZm86DQogICAgKyAgICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0ICgNCiAg ICArICAgICAgICAgICAgICAgICBDbU9iamVjdElkLA0KICAgICsgICAgICAgICAgICAgICAgIFBs YXRmb3JtUmVwby0+UGNpQ29uZmlnSW5mbywNCiAgICArICAgICAgICAgICAgICAgICBzaXplb2Yg KFBsYXRmb3JtUmVwby0+UGNpQ29uZmlnSW5mbyksDQogICAgKyAgICAgICAgICAgICAgICAgMSwN CiAgICArICAgICAgICAgICAgICAgICBDbU9iamVjdA0KICAgICsgICAgICAgICAgICAgICAgICk7 DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAgICArICAgIGRlZmF1bHQ6IHsNCiAgICArICAg ICAgYnJlYWs7DQogICAgKyAgICB9DQogICAgKyAgfS8vc3dpdGNoDQogICAgKyAgcmV0dXJuIFN0 YXR1czsNCiAgICArfQ0KICAgICsNCiAgICArLyoqIFJldHVybiBwbGF0Zm9ybSBzcGVjaWZpYyBz dGFuZGFyZCBuYW1lc3BhY2Ugb2JqZWN0Lg0KICAgICsNCiAgICArICBAcGFyYW0gW2luXSAgICAg IFRoaXMgICAgICAgIFBvaW50ZXIgdG8gdGhlIENvbmZpZ3VyYXRpb24gTWFuYWdlciBQcm90b2Nv bC4NCiAgICArICBAcGFyYW0gW2luXSAgICAgIENtT2JqZWN0SWQgIFRoZSBDb25maWd1cmF0aW9u IE1hbmFnZXIgT2JqZWN0IElELg0KICAgICsgIEBwYXJhbSBbaW5dICAgICAgVG9rZW4gICAgICAg QW4gb3B0aW9uYWwgdG9rZW4gaWRlbnRpZnlpbmcgdGhlIG9iamVjdC4gSWYNCiAgICArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZCB0aGlzIG11c3QgYmUgQ01fTlVMTF9UT0tF Ti4NCiAgICArICBAcGFyYW0gW2luLCBvdXRdIENtT2JqZWN0ICAgIFBvaW50ZXIgdG8gdGhlIENv bmZpZ3VyYXRpb24gTWFuYWdlciBPYmplY3QNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlc2NyaXB0b3IgZGVzY3JpYmluZyB0aGUgcmVxdWVzdGVkIE9iamVjdC4NCiAgICAr DQogICAgKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgU3VjY2Vzcy4NCiAgICArICBA cmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBIHBhcmFtZXRlciBpcyBpbnZhbGlkLg0KICAg ICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgIFRoZSByZXF1aXJlZCBvYmplY3QgaW5m b3JtYXRpb24gaXMgbm90IGZvdW5kLg0KICAgICsqKi8NCiAgICArRUZJX1NUQVRVUw0KICAgICtF RklBUEkNCiAgICArR2V0U3RhbmRhcmROYW1lU3BhY2VPYmplY3RQbGF0ICgNCiAgICArICBJTiAg Q09OU1QgRURLSUlfQ09ORklHVVJBVElPTl9NQU5BR0VSX1BST1RPQ09MICAqIENPTlNUIFRoaXMs DQogICAgKyAgSU4gIENPTlNUIENNX09CSkVDVF9JRCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDbU9iamVjdElkLA0KICAgICsgIElOICBDT05TVCBDTV9PQkpFQ1RfVE9LRU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4gT1BUSU9OQUwsDQogICAgKyAgSU4gIE9V VCAgIENNX09CSl9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgICAgKiBDT05TVCBDbU9iamVj dA0KICAgICsgICkNCiAgICArew0KICAgICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RhdHVzOw0KICAgICsgIEVES0lJX0ZWUF9QTEFURk9STV9SRVBPU0lUT1JZX0lO Rk8gICogUGxhdGZvcm1SZXBvOw0KICAgICsNCiAgICArICBpZiAoKFRoaXMgPT0gTlVMTCkgfHwg KENtT2JqZWN0ID09IE5VTEwpKSB7DQogICAgKyAgICBBU1NFUlQgKFRoaXMgIT0gTlVMTCk7DQog ICAgKyAgICBBU1NFUlQgKENtT2JqZWN0ICE9IE5VTEwpOw0KICAgICsgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsNCiAgICArICB9DQogICAgKw0KICAgICsgIFN0YXR1cyA9IEVGSV9O T1RfRk9VTkQ7DQogICAgKyAgUGxhdGZvcm1SZXBvID0gVGhpcy0+UGxhdFJlcG9JbmZvLT5GdnBQ bGF0UmVwb0luZm87DQogICAgKw0KICAgICsgIHN3aXRjaCAoR0VUX0NNX09CSkVDVF9JRCAoQ21P YmplY3RJZCkpIHsNCiAgICArICAgIGNhc2UgRVN0ZE9iakFjcGlUYWJsZUxpc3Q6DQogICAgKyAg ICAgIFN0YXR1cyA9IEhhbmRsZUNtT2JqZWN0ICgNCiAgICArICAgICAgICAgICAgICAgICBDbU9i amVjdElkLA0KICAgICsgICAgICAgICAgICAgICAgIFBsYXRmb3JtUmVwby0+Q21BY3BpVGFibGVM aXN0LA0KICAgICsgICAgICAgICAgICAgICAgIHNpemVvZiAoUGxhdGZvcm1SZXBvLT5DbUFjcGlU YWJsZUxpc3QpLA0KICAgICsgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUgKFBsYXRmb3JtUmVw by0+Q21BY3BpVGFibGVMaXN0KSwNCiAgICArICAgICAgICAgICAgICAgICBDbU9iamVjdA0KICAg ICsgICAgICAgICAgICAgICAgICk7DQogICAgKyAgICAgIGJyZWFrOw0KICAgICsNCiAgICArICAg IGRlZmF1bHQ6IHsNCiAgICArICAgICAgYnJlYWs7DQogICAgKyAgICB9DQogICAgKyAgfQ0KICAg ICsNCiAgICArICByZXR1cm4gU3RhdHVzOw0KICAgICt9DQogICAgZGlmZiAtLWdpdCBhL1BsYXRm b3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2Vy RHhlL0FzbFRhYmxlcy9Ec2R0RnZwLmFzbCBiL1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3Vy YXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0FzbFRhYmxlcy9Ec2R0RnZwLmFz bA0KICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAwMDAwLi42ZmYz ZDAzMGJhOWYNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvUGxhdGZvcm0vQVJNL01vcmVs bG8vQ29uZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvQXNsVGFibGVz L0RzZHRGdnAuYXNsDQogICAgQEAgLTAsMCArMSw5OCBAQA0KICAgICsvKiogQGZpbGUNCiAgICAr ICBEaWZmZXJlbnRpYXRlZCBTeXN0ZW0gRGVzY3JpcHRpb24gVGFibGUgRmllbGRzIChEU0RUKQ0K ICAgICsNCiAgICArICBDb3B5cmlnaHQgKGMpIDIwMjEsIEFSTSBMdGQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KICAgICsNCiAgICArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KICAgICsqKi8NCiAgICArDQogICAgKyNpbmNsdWRlICJDb25maWd1cmF0 aW9uTWFuYWdlci5oIg0KICAgICsNCiAgICArRGVmaW5pdGlvbkJsb2NrKCJEc2R0LmFtbCIsICJE U0RUIiwgMSwgIkFSTUxURCIsICJNT1JFTExPIiwgQ0ZHX01HUl9PRU1fUkVWSVNJT04pIHsNCiAg ICArICBTY29wZShfU0IpIHsNCiAgICArICAgIERldmljZShDUDAwKSB7IC8vIENsdXN0ZXIgMCwg Q3B1IDANCiAgICArICAgICAgTmFtZShfSElELCAiQUNQSTAwMDciKQ0KICAgICsgICAgICBOYW1l KF9VSUQsIDApDQogICAgKyAgICAgIE5hbWUoX1NUQSwgMHhGKQ0KICAgICsgICAgfQ0KICAgICsN CiAgICArICAgIERldmljZShDUDAxKSB7IC8vIENsdXN0ZXIgMCwgQ3B1IDENCiAgICArICAgICAg TmFtZShfSElELCAiQUNQSTAwMDciKQ0KICAgICsgICAgICBOYW1lKF9VSUQsIDEpDQogICAgKyAg ICAgIE5hbWUoX1NUQSwgMHhGKQ0KICAgICsgICAgfQ0KICAgICsNCiAgICArICAgIERldmljZShD UDAyKSB7IC8vIENsdXN0ZXIgMSwgQ3B1IDANCiAgICArICAgICAgTmFtZShfSElELCAiQUNQSTAw MDciKQ0KICAgICsgICAgICBOYW1lKF9VSUQsIDIpDQogICAgKyAgICAgIE5hbWUoX1NUQSwgMHhG KQ0KICAgICsgICAgfQ0KICAgICsNCiAgICArICAgIERldmljZShDUDAzKSB7IC8vIENsdXN0ZXIg MSwgQ3B1IDENCiAgICArICAgICAgTmFtZShfSElELCAiQUNQSTAwMDciKQ0KICAgICsgICAgICBO YW1lKF9VSUQsIDMpDQogICAgKyAgICAgIE5hbWUoX1NUQSwgMHhGKQ0KICAgICsgICAgfQ0KICAg ICsNCiAgICArICAgIC8vIFZJUlRJTyBESVNLDQogICAgKyAgICBEZXZpY2UoVlIwMCkgew0KICAg ICsgICAgICBOYW1lKF9ISUQsICJMTlJPMDAwNSIpDQogICAgKyAgICAgIE5hbWUoX1VJRCwgMCkN CiAgICArDQogICAgKyAgICAgIE5hbWUoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSgpIHsNCiAgICAr ICAgICAgICBNZW1vcnkzMkZpeGVkKA0KICAgICsgICAgICAgICAgUmVhZFdyaXRlLA0KICAgICsg ICAgICAgICAgRml4ZWRQY2RHZXQzMiAoUGNkVmlydGlvQmxrQmFzZUFkZHJlc3MpLA0KICAgICsg ICAgICAgICAgRml4ZWRQY2RHZXQzMiAoUGNkVmlydGlvQmxrU2l6ZSkNCiAgICArICAgICAgICAp DQogICAgKyAgICAgICAgSW50ZXJydXB0KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVI aWdoLCBFeGNsdXNpdmUpIHsNCiAgICArICAgICAgICAgIEZpeGVkUGNkR2V0MzIgKFBjZFZpcnRp b0Jsa0ludGVycnVwdCkNCiAgICArICAgICAgICB9DQogICAgKyAgICAgIH0pDQogICAgKyAgICB9 DQogICAgKw0KICAgICsgICAgLy8gVklSVElPIE5FVA0KICAgICsgICAgRGV2aWNlKFZSMDEpIHsN CiAgICArICAgICAgTmFtZShfSElELCAiTE5STzAwMDUiKQ0KICAgICsgICAgICBOYW1lKF9VSUQs IDEpDQogICAgKw0KICAgICsgICAgICBOYW1lKF9DUlMsIFJlc291cmNlVGVtcGxhdGUoKSB7DQog ICAgKyAgICAgICAgTWVtb3J5MzJGaXhlZChSZWFkV3JpdGUsIDB4MUMxODAwMDAsIDB4MDAwMDAy MDApDQogICAgKyAgICAgICAgSW50ZXJydXB0KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3Rp dmVIaWdoLCBFeGNsdXNpdmUpIHsgMTM0IH0NCiAgICArICAgICAgfSkNCiAgICArICAgIH0NCiAg ICArDQogICAgKyAgICAvLyBWSVJUSU8gUkFORE9NDQogICAgKyAgICBEZXZpY2UoVlIwMikgew0K ICAgICsgICAgICBOYW1lKF9ISUQsICJMTlJPMDAwNSIpDQogICAgKyAgICAgIE5hbWUoX1VJRCwg MikNCiAgICArDQogICAgKyAgICAgIE5hbWUoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSgpIHsNCiAg ICArICAgICAgICBNZW1vcnkzMkZpeGVkKFJlYWRXcml0ZSwgMHgxQzE5MDAwMCwgMHgwMDAwMDIw MCkNCiAgICArICAgICAgICBJbnRlcnJ1cHQoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyAxMzMgfQ0KICAgICsgICAgICB9KQ0KICAgICsgICAgfQ0KICAg ICsNCiAgICArICAgIC8vIFZJUlRJTyBQOSBEZXZpY2UNCiAgICArICAgIERldmljZShWUjAzKSB7 DQogICAgKyAgICAgIE5hbWUoX0hJRCwgIkxOUk8wMDA1IikNCiAgICArICAgICAgTmFtZShfVUlE LCAzKQ0KICAgICsNCiAgICArICAgICAgTmFtZShfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlKCkgew0K ICAgICsgICAgICAgIE1lbW9yeTMyRml4ZWQoUmVhZFdyaXRlLCAweDFDMUEwMDAwLCAweDAwMDAw MjAwKQ0KICAgICsgICAgICAgIEludGVycnVwdChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0 aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDEzNSB9DQogICAgKyAgICAgIH0pDQogICAgKyAgICB9DQog ICAgKw0KICAgICsgICAgLy8gU01DOTFYDQogICAgKyAgICBEZXZpY2UoTkVUMCkgew0KICAgICsg ICAgICBOYW1lKF9ISUQsICJMTlJPMDAwMyIpDQogICAgKyAgICAgIE5hbWUoX1VJRCwgMCkNCiAg ICArDQogICAgKyAgICAgIE5hbWUoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSgpIHsNCiAgICArICAg ICAgICBNZW1vcnkzMkZpeGVkKFJlYWRXcml0ZSwgMHgxRDEwMDAwMCwgMHgwMDAwMTAwMCkNCiAg ICArICAgICAgICBJbnRlcnJ1cHQoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gs IEV4Y2x1c2l2ZSkgeyAxMzAgfQ0KICAgICsgICAgICB9KQ0KICAgICsgICAgfQ0KICAgICsgIH0g Ly8gU2NvcGUoX1NCKQ0KICAgICt9DQogICAgZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FSTS9Nb3Jl bGxvL0NvbmZpZ3VyYXRpb25NYW5hZ2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0FzbFRhYmxl cy9Tc2R0UGNpRnZwLmFzbCBiL1BsYXRmb3JtL0FSTS9Nb3JlbGxvL0NvbmZpZ3VyYXRpb25NYW5h Z2VyL0NvbmZpZ3VyYXRpb25NYW5hZ2VyRHhlL0FzbFRhYmxlcy9Tc2R0UGNpRnZwLmFzbA0KICAg IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAwMDAwLi5iZGYyZjA2YWVk NjkNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvUGxhdGZvcm0vQVJNL01vcmVsbG8vQ29u ZmlndXJhdGlvbk1hbmFnZXIvQ29uZmlndXJhdGlvbk1hbmFnZXJEeGUvQXNsVGFibGVzL1NzZHRQ Y2lGdnAuYXNsDQogICAgQEAgLTAsMCArMSwxMzAgQEANCiAgICArLyoqIEBmaWxlDQogICAgKyAg U2Vjb25kYXJ5IFN5c3RlbSBEZXNjcmlwdGlvbiBUYWJsZSAoU1NEVCkNCiAgICArDQogICAgKyAg Q29weXJpZ2h0IChjKSAyMDIxLCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQogICAgKw0KICAgICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQogICAgKyoqLw0KICAgICsNCiAgICArI2luY2x1ZGUgIkNvbmZpZ3VyYXRpb25NYW5hZ2Vy LmgiDQogICAgKw0KICAgICsjZGVmaW5lIExOS19ERVZJQ0UoVW5pcXVlX0lkLCBMaW5rX05hbWUs IGlycSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgRGV2aWNlKExpbmtfTmFt ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CiAgICArICBOYW1lKF9ISUQsIEVJU0FJRCgiUE5QMEMwRiIpKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIE5hbWUoX1VJRCwgVW5pcXVlX0lkKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgTmFt ZShfUFJTLCBSZXNvdXJjZVRlbXBsYXRlKCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCiAgICArICAgIEludGVycnVwdChSZXNvdXJjZVByb2R1Y2VyLCBMZXZlbCwg QWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IGlycSB9ICAgXA0KICAgICsgICAgfSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQogICAgKyAgTWV0aG9kIChfQ1JTLCAwKSB7IFJldHVybiAoX1BSUykgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBNZXRob2QgKF9TUlMsIDEpIHsgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIE1l dGhvZCAoX0RJUykgeyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQogICAgK30NCiAgICArDQogICAgKyNkZWZpbmUgUFJUX0VOVFJZKEFkZHJl c3MsIFBpbiwgTGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQogICAgKyAgUGFja2FnZSAoNCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg ICBBZGRyZXNzLCAgLyogdXNlcyB0aGUgc2FtZSBmb3JtYXQgYXMgX0FEUiAqLyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICBQaW4sICAgICAgLyogVGhl IFBDSSBwaW4gbnVtYmVyIG9mIHRoZSBkZXZpY2UgKDAtSU5UQSwgMS1JTlRCLCAyLUlOVEMsIDMt SU5URCkgICovICBcDQogICAgKyAgICBMaW5rLCAgICAgLyogSW50ZXJydXB0IGFsbG9jYXRlZCB2 aWEgTGluayBkZXZpY2UgICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg KyAgICBaZXJvICAgICAgLyogZ2xvYmFsIHN5c3RlbSBpbnRlcnJ1cHQgbnVtYmVyIChubyB1c2Vk KSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgK30NCiAgICArDQogICAgKyNk ZWZpbmUgUk9PVF9QUlRfRU5UUlkoUGluLCBMaW5rKSAgIFBSVF9FTlRSWSgweDAwMDBGRkZGLCBQ aW4sIExpbmspICAvLyBEZXZpY2UgMCBmb3IgQnJpZGdlLg0KICAgICsNCiAgICArRGVmaW5pdGlv bkJsb2NrKCJTc2R0UGNpLmFtbCIsICJTU0RUIiwgMSwgIkFSTUxURCIsICJNT1JFTExPIiwNCiAg ICArICAgICAgICAgICAgICAgIENGR19NR1JfT0VNX1JFVklTSU9OKQ0KICAgICt7DQogICAgKyAg U2NvcGUgKF9TQikgew0KICAgICsgICAgLy8NCiAgICArICAgIC8vIFBDSSBSb290IENvbXBsZXgN CiAgICArICAgIC8vDQogICAgKyAgICBMTktfREVWSUNFKDEsIExOS0EsIDIwMSkNCiAgICArICAg IExOS19ERVZJQ0UoMiwgTE5LQiwgMjAyKQ0KICAgICsgICAgTE5LX0RFVklDRSgzLCBMTktDLCAy MDMpDQogICAgKyAgICBMTktfREVWSUNFKDQsIExOS0QsIDIwNCkNCiAgICArDQogICAgKyAgICAv LyBQQ0kgUm9vdCBDb21wbGV4DQogICAgKyAgICBEZXZpY2UoUENJMCkgew0KICAgICsgICAgICBO YW1lIChfSElELCBFSVNBSUQoIlBOUDBBMDgiKSkgLy8gUENJIEV4cHJlc3MgUm9vdCBCcmlkZ2UN CiAgICArICAgICAgTmFtZSAoX0NJRCwgRUlTQUlEKCJQTlAwQTAzIikpIC8vIENvbXBhdGlibGUg UENJIFJvb3QgQnJpZGdlDQogICAgKyAgICAgIE5hbWUgKF9TRUcsIFplcm8pICAgICAgICAgICAg ICAvLyBQQ0kgU2VnbWVudCBHcm91cCBudW1iZXINCiAgICArICAgICAgTmFtZSAoX0JCTiwgWmVy bykgICAgICAgICAgICAgIC8vIFBDSSBCYXNlIEJ1cyBOdW1iZXINCiAgICArICAgICAgTmFtZSAo X0NDQSwgMSkgICAgICAgICAgICAgICAgIC8vIENhY2hlIENvaGVyZW5jeSBBdHRyaWJ1dGUNCiAg ICArDQogICAgKyAgICAgIC8vIFJvb3QgQ29tcGxleCAwDQogICAgKyAgICAgIERldmljZSAoUlAw KSB7DQogICAgKyAgICAgICAgTmFtZShfQURSLCAweEYwMDAwMDAwKSAgICAvLyBEZXYgMCwgRnVu YyAwDQogICAgKyAgICAgIH0NCiAgICArDQogICAgKyAgICAgIC8vIFBDSSBSb3V0aW5nIFRhYmxl DQogICAgKyAgICAgIE5hbWUoX1BSVCwgUGFja2FnZSgpIHsNCiAgICArICAgICAgICBST09UX1BS VF9FTlRSWSgwLCBMTktBKSwgICAvLyBJTlRBDQogICAgKyAgICAgICAgUk9PVF9QUlRfRU5UUlko MSwgTE5LQiksICAgLy8gSU5UQg0KICAgICsgICAgICAgIFJPT1RfUFJUX0VOVFJZKDIsIExOS0Mp LCAgIC8vIElOVEMNCiAgICArICAgICAgICBST09UX1BSVF9FTlRSWSgzLCBMTktEKSwgICAvLyBJ TlREDQogICAgKyAgICAgIH0pDQogICAgKw0KICAgICsgICAgICAvLyBSb290IGNvbXBsZXggcmVz b3VyY2VzDQogICAgKyAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgew0KICAgICsg ICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KICAgICsgICAgICAgICAg V29yZEJ1c051bWJlciAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBCdXMgbnVtYmVy cyBhc3NpZ25lZCB0byB0aGlzIHJvb3QNCiAgICArICAgICAgICAgICAgUmVzb3VyY2VQcm9kdWNl ciwNCiAgICArICAgICAgICAgICAgTWluRml4ZWQsDQogICAgKyAgICAgICAgICAgIE1heEZpeGVk LA0KICAgICsgICAgICAgICAgICBQb3NEZWNvZGUsDQogICAgKyAgICAgICAgICAgIDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZHJlc3NHcmFudWxhcml0eQ0K ICAgICsgICAgICAgICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lCdXNNaW4pLCAgICAgICAgICAg ICAvLyBBZGRyZXNzTWluaW11bSAtIE1pbmltdW0gQnVzIE51bWJlcg0KICAgICsgICAgICAgICAg ICBGaXhlZFBjZEdldDMyIChQY2RQY2lCdXNNYXgpLCAgICAgICAgICAgICAvLyBBZGRyZXNzTWF4 aW11bSAtIE1heGltdW0gQnVzIE51bWJlcg0KICAgICsgICAgICAgICAgICAwLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRyZXNzVHJhbnNsYXRpb24gLSBTZXQg dG8gMA0KICAgICsgICAgICAgICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lCdXNDb3VudCkgICAg ICAgICAgICAvLyBSYW5nZUxlbmd0aCAtIE51bWJlciBvZiBCdXNzZXMNCiAgICArICAgICAgICAg ICkNCiAgICArDQogICAgKyAgICAgICAgICBEV29yZE1lbW9yeSAoICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIDMyLWJpdCBCQVIgV2luZG93cw0KICAgICsgICAgICAgICAgICBSZXNv dXJjZVByb2R1Y2VyLA0KICAgICsgICAgICAgICAgICBQb3NEZWNvZGUsDQogICAgKyAgICAgICAg ICAgIE1pbkZpeGVkLA0KICAgICsgICAgICAgICAgICBNYXhGaXhlZCwNCiAgICArICAgICAgICAg ICAgQ2FjaGVhYmxlLA0KICAgICsgICAgICAgICAgICBSZWFkV3JpdGUsDQogICAgKyAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JhbnVsYXJp dHkNCiAgICArICAgICAgICAgICAgRml4ZWRQY2RHZXQzMiAoUGNkUGNpTW1pbzMyQmFzZSksICAg ICAgICAvLyBNaW4gQmFzZSBBZGRyZXNzDQogICAgKyAgICAgICAgICAgIEZpeGVkUGNkR2V0MzIg KFBjZFBjaU1taW8zMk1heEJhc2UpLCAgICAgLy8gTWF4IEJhc2UgQWRkcmVzcw0KICAgICsgICAg ICAgICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lNbWlvMzJUcmFuc2xhdGlvbiksIC8vIFRyYW5z bGF0ZQ0KICAgICsgICAgICAgICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lNbWlvMzJTaXplKSAg ICAgICAgIC8vIExlbmd0aA0KICAgICsgICAgICAgICAgKQ0KICAgICsNCiAgICArICAgICAgICAg IFFXb3JkTWVtb3J5ICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNjQtYml0IEJB UiBXaW5kb3dzDQogICAgKyAgICAgICAgICAgIFJlc291cmNlUHJvZHVjZXIsDQogICAgKyAgICAg ICAgICAgIFBvc0RlY29kZSwNCiAgICArICAgICAgICAgICAgTWluRml4ZWQsDQogICAgKyAgICAg ICAgICAgIE1heEZpeGVkLA0KICAgICsgICAgICAgICAgICBDYWNoZWFibGUsDQogICAgKyAgICAg ICAgICAgIFJlYWRXcml0ZSwNCiAgICArICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQ0KICAgICsgICAgICAgICAgICBGaXhl ZFBjZEdldDY0IChQY2RQY2lNbWlvNjRCYXNlKSwgICAgICAgIC8vIE1pbiBCYXNlIEFkZHJlc3MN CiAgICArICAgICAgICAgICAgRml4ZWRQY2RHZXQ2NCAoUGNkUGNpTW1pbzY0TWF4QmFzZSksICAg ICAvLyBNYXggQmFzZSBBZGRyZXNzDQogICAgKyAgICAgICAgICAgIEZpeGVkUGNkR2V0NjQgKFBj ZFBjaU1taW82NFRyYW5zbGF0aW9uKSwgLy8gVHJhbnNsYXRlDQogICAgKyAgICAgICAgICAgIEZp eGVkUGNkR2V0NjQgKFBjZFBjaU1taW82NFNpemUpICAgICAgICAgLy8gTGVuZ3RoDQogICAgKyAg ICAgICAgICApDQogICAgKw0KICAgICsgICAgICAgICAgRFdvcmRJbyAoICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBJTyB3aW5kb3cNCiAgICArICAgICAgICAgICAgUmVzb3Vy Y2VQcm9kdWNlciwNCiAgICArICAgICAgICAgICAgTWluRml4ZWQsDQogICAgKyAgICAgICAgICAg IE1heEZpeGVkLA0KICAgICsgICAgICAgICAgICBQb3NEZWNvZGUsDQogICAgKyAgICAgICAgICAg IEVudGlyZVJhbmdlLA0KICAgICsgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5DQogICAgKyAgICAgICAgICAgIEZpeGVkUGNk R2V0MzIgKFBjZFBjaUlvQmFzZSksICAgICAgICAgICAgLy8gTWluIEJhc2UgQWRkcmVzcw0KICAg ICsgICAgICAgICAgICBGaXhlZFBjZEdldDMyIChQY2RQY2lJb01heEJhc2UpLCAgICAgICAgIC8v IE1heCBCYXNlIEFkZHJlc3MNCiAgICArICAgICAgICAgICAgRml4ZWRQY2RHZXQzMiAoUGNkUGNp SW9UcmFuc2xhdGlvbiksICAgICAvLyBUcmFuc2xhdGUNCiAgICArICAgICAgICAgICAgRml4ZWRQ Y2RHZXQzMiAoUGNkUGNpSW9TaXplKSwgICAgICAgICAgICAvLyBMZW5ndGgNCiAgICArICAgICAg ICAgICAgLA0KICAgICsgICAgICAgICAgICAsDQogICAgKyAgICAgICAgICAgICwNCiAgICArICAg ICAgICAgICAgVHlwZVRyYW5zbGF0aW9uDQogICAgKyAgICAgICAgICApDQogICAgKyAgICAgICAg fSkgLy8gTmFtZShSQlVGKQ0KICAgICsgICAgICAgIFJldHVybiAoUkJVRikNCiAgICArICAgICAg fSAvLyBNZXRob2QgKF9DUlMpDQogICAgKyAgICB9IC8vIERldmljZSAoUENJMCkNCiAgICArICB9 IC8vIF9TQg0KICAgICt9IC8vIERCDQogICAgLS0gDQogICAgMi4xNy4xDQoNCg0K