From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.902.1680106917176451838 for ; Wed, 29 Mar 2023 09:21:57 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=g7BBJyJ+; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680106917; x=1711642917; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=z2bBwTaEyJ8IuIvuLSDktjdce28cwbdV6djLO2Gbf8Y=; b=g7BBJyJ+y+OhlB7zLQ+6uPIy9DPnoVMI+y/STSgkfX3/V0g5flSBPgFw YQ/cndrs+2sX6BV8qsvO8JhXbh4E70iQjpU8l/3odPU3KCCBezovtAHYk gOOcdTkPWu0xWRnwXByq7q9lt7Ly66RzlDTeW/Dj69X8FkY3v/wPbdZBn Bg/fQLVBjX/zP/ZTSJREsre2DCxU4zB/jS7MM4yn5frb/Zigq+lIkwZjq BD1O342X3WQOnIQsNyFaKigK0ymMo2WJ2WDMH9GXbI2/b0DIzMKJP+x92 +Zyy89le1LpD4Y6AzRTT0JHrHSrkQo8qj7iTBceXnlEGNQEdvSna8e51i w==; X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="320583682" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="320583682" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 09:21:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="827960830" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="827960830" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga001.fm.intel.com with ESMTP; 29 Mar 2023 09:21:48 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 09:21:47 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 09:21:47 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 29 Mar 2023 09:21:47 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 29 Mar 2023 09:21:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cWDjApgzwH/RDr41sNE4bl53vl5J8jt6wO9bqR8dOGcTTR1VL7PT/Sg6A2wR0rbh5aHryTPnkPDAsKF90bUVCjLnwRsDuJjd8zwVl8h2ofNeySG0gXWoS81HuS+egyKA4VHpDjxA8K/Ej7I52obxfsnKzcYh4RtzwuTmr/CVhNqjkTnDYlsLU3kGC5rVt/X1AB28Glw5Kt8qmOKMqP9PUFRD8tcnw30xlyGsZgYippf10qefj5ibito16zs1e2nukKnSy5/KPzwAkeou/pABVir11ZmHE4m0FxsLQOFuzYhKrAOxnsCRVCzHdyqhrZPBVt09qZfdeJ9LBhWJrwYrQw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=z2bBwTaEyJ8IuIvuLSDktjdce28cwbdV6djLO2Gbf8Y=; b=dwPQzZbfyWccCZveCUM66Jt2M3/A97ly95ZEWLKrC3SJHnVd/hfeCOBsMgG1ae4U+73b+v8FD4JLkI17bFBPvZVGlW6oF/c2H7TOZEbMZIhX4wnysQREz895ljPLefp3ptUge9Z+zftth8elr5/cYis2O2etepnxst5yyma5geBsKv0qJU6UmESFlI5PwmpTjG2X7BjRWdXP7S5PjS54f9GpdEDLj367b840c3y/GrFwmoHTeOn6ieLBEEM1kbZRQ+TmAeCN4uauxoy0lDjQhWV2TR7aH2BKEWTgG29N8WVL4xxQCCN/Cls1AnwbkW94w8qUlxPnJoxPo93soe17Ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DS7PR11MB7691.namprd11.prod.outlook.com (2603:10b6:8:e4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.35; Wed, 29 Mar 2023 16:21:38 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6222.033; Wed, 29 Mar 2023 16:21:38 +0000 From: "Michael D Kinney" To: "Kadapathri, Ajay" , "devel@edk2.groups.io" CC: Rebecca Cran , "Jayaprakash, N" , "Kinney, Michael D" Subject: Re: [edk2-libc Patch 1/1] Python/Python3.6.8: migration of edk2module from chipsec repo Thread-Topic: [edk2-libc Patch 1/1] Python/Python3.6.8: migration of edk2module from chipsec repo Thread-Index: AQHZYILsOXLUbP6OS0abmhHAG0r3NK8R8+qg Date: Wed, 29 Mar 2023 16:21:38 +0000 Message-ID: References: <20230327080525.885-1-ajay.kadapathri@intel.com> <20230327080525.885-2-ajay.kadapathri@intel.com> In-Reply-To: <20230327080525.885-2-ajay.kadapathri@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|DS7PR11MB7691:EE_ x-ms-office365-filtering-correlation-id: f37f6fc5-8909-4c89-25ad-08db3071ac4d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dfaIVjCIEor+oStNZ7FN2EjWimKvK+PQI2qHJwyLrRGmTOAPvEgD2UiXBfjuFGG+AuhEC+MD4pKpTglIHbtMe2K/SSBOZGR85enTXdBcdKSXdHSbBfqMFZLwfPAOFVhSwi7GyvxmXWktSQh23GXydf0KecVrhyzlgDIx/9CF191Uqlv5+YpPGGqMFjOiIca4C9/VOhFRWdYlOSEQuvf0u1qIvEy39EvcAFjk2Ig2JhFsfVEeqCa2SVUT8P9ST9Z8ZS0FBM74RFgaj9yQ/x3KWlWlyNv4/rSrxHm49sJzIfz14egc72o/yt5QtdP8JYJc8d2clV1/NhT/wNhw2JDWq1fczeJN9KNirK8/yoXSDET2BmtDWM0EsiVkMfUPhWq6J3MYvI+RspLI7AuU+8lzoMZRxkHc3Xtu6kxcKI8Y2REtuPAWFHxKHZdixiRYQy1rHkgfXKdfH2r8hOVgdVJFasIQZsblPRPcADNGwrF5SnT6ZTDB9xxCwnwzJr9JJnxQAEhY/cW82ahLW+qk0i+zhLEw7hrLJnT8/sU3hIIdqePxQuO6NOFscMDGxzzAdd2cmi+m14TjGeXHrMvp1rG7aNNEsqmDdwHdNWlSADuCVm4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(376002)(136003)(39860400002)(396003)(366004)(451199021)(2906002)(83380400001)(30864003)(5660300002)(478600001)(8936002)(41300700001)(71200400001)(52536014)(64756008)(66446008)(54906003)(110136005)(8676002)(66556008)(66476007)(316002)(4326008)(19627235002)(966005)(55016003)(33656002)(66946007)(7696005)(76116006)(186003)(107886003)(122000001)(82960400001)(53546011)(9686003)(26005)(6506007)(86362001)(38100700002)(38070700005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SEllWENLT0ZjS3RMcERxaFRpVXFrNm1laHJKVmtYcjl2YmRURlgyYlE5QWU4?= =?utf-8?B?djJmK055WVducHZvYWt1QUhKUmhIQjFYUksrKzFueldpaHN2UVpHeVhHaXlB?= =?utf-8?B?R290SjNST2cra1p2UkJtb3NGRzF1WGxBZzhHRis5dGJoamZ0YzBYQTJBMnpt?= =?utf-8?B?K0R3cWJmVklzZlE1UHhGUHdjOTlaRHhxcXI0ODZnNVN4VnMzcFhIVzd1Ky9V?= =?utf-8?B?TkxHK2tYbDg0Q1JEalFLTFZxMytXcmpjU1hoMEdmUWw0Ni9ob3ByTG1nUWI2?= =?utf-8?B?dnpBK3UreFp0MjhTV3V3aFBUTEFRZWVWVHdGZS9pUzJsSnZ6SURFNzhnWmJp?= =?utf-8?B?VDRKWWh1bjRscDV2a1Q4STZwTm1ONjVpR205S1Y2RmxKclF4S1F6amhaRlFk?= =?utf-8?B?WjE0UjVVb2MzbHBCbFU0TlQ2YzlkUVRQc1JjemF4QzZmd21UcmYwRUpOZE9s?= =?utf-8?B?SE9vaTNoMDlpaGRUZ1c4amNkMXJHUE9PUVJOeTh4MVhqeEtaMEFKaE00WGN2?= =?utf-8?B?TU4rTStacnhIdEdkNnJCcnN4WlBSTlE0WjQxeWVCS3oxZUlSa2hkakw1cnd5?= =?utf-8?B?ZUxPY3hOWm1DUi8rWlBBcVMzSmlDTFQxQllpS1FtVS8yQitpNDFCSDZKRzh4?= =?utf-8?B?aHVQQ0J3V1U5dWpselNncXEzWlN2SnpUZWsvbzBNd3MwNi9IYkZVNWxLdmNj?= =?utf-8?B?Q1BLaFVBa2RPbGFycjMwYVN0a2QxY2xjY3cxQmVHY3lrckMyV05Na3NaVFhZ?= =?utf-8?B?VllpTGpYek1SeG11WHU5SWJFb1BJeHhsa2ZwN3BJS1NsTno3L2RjVFl2TmJ4?= =?utf-8?B?c3Zvek1qbG5JeHNKbE9zcUptZldDc3BxeGJFRHZoL2s4V05MYW5rcm55a2Jx?= =?utf-8?B?MUtCZStYUHRXM05WRlNac2JaRFkwOFRpUFhvVlUwdkdYZXJPYnlOTFdrUzU1?= =?utf-8?B?Ung1bmI1YSt6a0RsZ3BZWC8zTDBXY09JaGc4SWRBeFJqNG9ZSnNYUi9RekhN?= =?utf-8?B?Q1U1SUs2cFdaWkNFZ2Z6THdudkpmRVM4OFlTODNndm84a2w1dGd6Nnhkejcw?= =?utf-8?B?TG1uTVFCRGgvOG50S2ZLSEtXVXQzdmo2WXhXVWZjVkZIR1d0a3lKYnFPanFV?= =?utf-8?B?ZGdhMUZhYUE0Q3ZMUmF3Yjh3d0pOSmw4UHRCc2pmdk9DZjJSbGZFdUcwYzll?= =?utf-8?B?RGRMc3FndnZuaUsrZzYwRjdGZFhjWXl3Y2h0Q0E5ekVkeFhQWU9PRStGcS9p?= =?utf-8?B?N1gyMDM1UzJuL0lxTStuTEVZamxYWFBjK0hKSmJSWmZhQWU5OWdJRGJja0M1?= =?utf-8?B?dHFmVmRHVnFhdWJ5YjhUZVNDb3JIcWVVQ0ZmS3lpNEFmSHpSVUJpZU1ZOWxx?= =?utf-8?B?VDlVTjc0QTEzY05oZDZ4MlJvdWZERGYyVDAwN05Ra2NsbFRsL3krK2Y0RHFT?= =?utf-8?B?U0JWSThXYmU4ZzFvY0s2VHJNaGtCR3lMRElmTG5DR0lBUHdpRU1VbjkwN1lw?= =?utf-8?B?UHFwaGM2ODYydHp1QXRyUy9aajQ3WTExOEhTVlo4MndMQ25DdkVMOFEzWWVE?= =?utf-8?B?UmlQMk1VcVgwQmVpYk5kNXgzMEhQc3h0UmJvdnpVVzdmRWVvN3NtZUxYZXZq?= =?utf-8?B?NTNiY254bEFwYndaa2ppSVdPVjFEejV1Qm90NSt6WXJnMFV2SHllemtCQWJP?= =?utf-8?B?NTVrYmFjMGxGcWZvQ00razBIZnNCZGF5WGlzMEE0OUJTcEwyejQzUjVhTk5U?= =?utf-8?B?RklEMUdWc1lTV25MaXkxZ2x2cDNCVnNWN3lEWEpWNEtOaW1Nd2VsWWxDdkpo?= =?utf-8?B?U3VBd1JqTGtkNm5weEk2eDM0VlZ5TTFUVUpxd1kxWVdlZGtwSzJTMmFYYlNJ?= =?utf-8?B?S2ZGczgrQ2Zub2QzMXYzUWwzOFJaT0tGL0Q4TTBnNFhXRkYwc0dJdTcxM2l2?= =?utf-8?B?ZWlqME1Zamt1STFabDVqSG9Xa2tRYVNlRlY5dmQxTkhYbXRtUVhPRy9tY3BX?= =?utf-8?B?eHl1WGwrNjR1bmcyK0V0cDdDMGpwaUMzZE9VK005MXd1OUEySnpkdm4xeWhI?= =?utf-8?B?NE9YcmZIVHhRUW5QaVptQWZrWEdTL2tTZ1MrRlJjMzAwS2kvdW96U3AwbExG?= =?utf-8?B?aWx1bVh6OUlLWHFSZ0ZqRmcraVNCZDF2SVcvdHhRamltUjBYMzlTN3RjQjhN?= =?utf-8?B?TFE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f37f6fc5-8909-4c89-25ad-08db3071ac4d X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2023 16:21:38.2778 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: raV17D1yUs2SymSBhal6XkD3Iumn3ZUzDSrD2IFaCK57uoG37MwDL8hgEQW8EdXx6eD83wnWRrZKCzCS0wDNKkq9hZZGykrbSdba/WcpOLc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7691 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2FkYXBhdGhyaSwg QWpheSA8YWpheS5rYWRhcGF0aHJpQGludGVsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAy NywgMjAyMyAxOjA1IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogUmViZWNj YSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IEpheWFwcmFrYXNoLCBODQo+IDxuLmpheWFwcmFrYXNoQGludGVs LmNvbT4NCj4gU3ViamVjdDogW2VkazItbGliYyBQYXRjaCAxLzFdIFB5dGhvbi9QeXRob24zLjYu ODogbWlncmF0aW9uIG9mIGVkazJtb2R1bGUgZnJvbSBjaGlwc2VjIHJlcG8NCj4gDQo+IFJFRjog aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MTYxDQo+IA0K PiBUaGlzIHBhdGNoIG1lcmdlcyB0aGUgZW5oYW5jZW1lbnRzIGRvbmUgYnkgY2hpcHNlYw0KPiB0 b29sIHRvIGVkazIgbW9kdWxlIGludG8gZWRrMi1saWJjIHJlcG8uDQo+IFRoZSBjaGlwc2VjIGVu aGFuY2VtZW50cyBjYW4gYmUgdXNlZCBmb3IgdmFyaW91cw0KPiBvdGhlciBQeXRob24gYmFzZWQg dG9vbHMgdG8gYWNjZXNzIHBsYXRmb3JtIHJlZ2lzdGVycy4NCj4gVGhlc2UgZW5oYW5jZW1lbnRz IHByb3ZpZGluZyBhIHNldCBvZiBBUElzIHRvIGFjY2Vzcw0KPiB0aGUgcGxhdGZvcm0gcmVnaXN0 ZXJzIGRpcmVjdGx5IGZyb20gdGhlIHB5dGhvbg0KPiBzY3JpcHRzIHJ1bm5pbmcgb24gVUVGSSBz aGVsbC4gVGhpcyB3aWxsIGJlbmVmaXQgdGhlDQo+IFB5dGhvbiB1c2VycyBvbiBVRUZJIHNoZWxs IGluIGdlbmVyYWwgYW5kIGVuaGFuY2VzDQo+IGl0J3MgdXNhYmlsaXR5LiBQeXRob24gY2FuIGJl IHVzZWQgZWZmZWN0aXZlbHkgdG8NCj4gaW1wbGVtZW50IHRvb2xzLCBzY3JpcHRzIHJlcXVpcmVk IGZvciBhdXRvbWF0aW9uLA0KPiBkZWJ1ZyBmcm9tIFVFRkkgc2hlbGwuDQo+IA0KPiBDYzogUmVi ZWNjYSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT4NCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogSmF5YXByYWthc2ggTiA8bi5qYXlhcHJh a2FzaEBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEFqYXkgS2FkYXBhdGhyaSA8YWpheS5r YWRhcGF0aHJpQGludGVsLmNvbT4NCj4gLS0tDQo+ICAuLi4vUHl0aG9uLTMuNi44L1B5TW9kLTMu Ni44L01vZHVsZXMvY3B1Lm5hc20gfCAgNjMgKysrDQo+ICAuLi4vUHlNb2QtMy42LjgvTW9kdWxl cy9jcHVfZ2NjLnMgICAgICAgICAgICAgfCAgNjQgKysrDQo+ICAuLi4vUHlNb2QtMy42LjgvTW9k dWxlcy9jcHVfaWEzMi5uYXNtICAgICAgICAgfCAgMzUgKysNCj4gIC4uLi9QeU1vZC0zLjYuOC9N b2R1bGVzL2NwdV9pYTMyX2djYy5zICAgICAgICB8ICAzOCArKw0KPiAgLi4uL1B5TW9kLTMuNi44 L01vZHVsZXMvZWRrMm1vZHVsZS5jICAgICAgICAgIHwgNTE5ICsrKysrKysrKysrKysrKysrLQ0K PiAgNSBmaWxlcyBjaGFuZ2VkLCA3MTcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBBcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42 LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHUubmFzbQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFw cFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVz L2NwdV9nY2Mucw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFwcFBrZy9BcHBsaWNhdGlvbnMvUHl0 aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLm5hc20NCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBBcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42Ljgv UHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMl9nY2Mucw0KPiANCj4gZGlmZiAtLWdpdCBhL0Fw cFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVz L2NwdS5uYXNtIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLQ0KPiAzLjYuOC9Q eU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5uYXNtDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGlu ZGV4IDAwMDAwMDAuLmJkNTAwMTUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9BcHBQa2cvQXBw bGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHUubmFz bQ0KPiBAQCAtMCwwICsxLDYzIEBADQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7DQo+ ICs7IENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gKzsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gKzsNCj4gKzsgTW9kdWxlIE5hbWU6DQo+ICs7DQo+ICs7ICAgY3B1Lm5h c20NCj4gKzsNCj4gKzsgQWJzdHJhY3Q6DQo+ICs7DQo+ICs7ICAgc3dzbWkgZnVuY3Rpb24NCj4g KzsNCj4gKzsgTm90ZXM6DQo+ICs7DQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4g K0RFRkFVTFQgUkVMDQo+ICtTRUNUSU9OIC50ZXh0DQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gKzsgIHZvaWQNCj4gKzsgIF9zd3NtaSAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlz bWlfY29kZV9kYXRhCS8vIHJjeA0KPiArOyAgICBJTiAgIFVJTlQ2NAlyYXhfdmFsdWUJLy8gcmR4 DQo+ICs7ICAgIElOICAgVUlOVDY0CXJieF92YWx1ZQkvLyByOA0KPiArOyAgICBJTiAgIFVJTlQ2 NAlyY3hfdmFsdWUJLy8gcjkNCj4gKzsgICAgSU4gICBVSU5UNjQJcmR4X3ZhbHVlCS8vIHJzcCAr IDB4MjgNCj4gKzsgICAgSU4gICBVSU5UNjQJcnNpX3ZhbHVlCS8vIHJzcCArIDB4MzANCj4gKzsg ICAgSU4gICBVSU5UNjQJcmRpX3ZhbHVlCS8vIHJzcCArIDB4MzgNCj4gKzsgICAgKQ0KPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArZ2xvYmFsIEFTTV9QRlgoX3N3c21pKQ0KPiArQVNNX1BG WChfc3dzbWkpOg0KPiArICAgIHB1c2ggcmJ4DQo+ICsgICAgcHVzaCByc2kNCj4gKyAgICBwdXNo IHJkaQ0KPiArDQo+ICsgICAgOyByc3AgLSAweDE4DQo+ICsNCj4gKyAgICA7IHNldHRpbmcgdXAg R1BSIChhcmd1bWVudHMpIHRvIFNNSSBoYW5kbGVyIGNhbGwNCj4gKyAgICA7IG5vdGVzOg0KPiAr ICAgIDsgICBSQVggd2lsbCBnZXQgcGFydGlhbGx5IG92ZXJ3cml0dGVuIChBWCkgYnkgX3NtaV9j b2RlX2RhdGEgKHdoaWNoIGlzIHBhc3NlZCBpbiBSQ1gpDQo+ICsgICAgOyAgIFJEWCB3aWxsIGdl dCBwYXJ0aWFsbHkgb3ZlcndyaXR0ZW4gKERYKSBieSB0aGUgdmFsdWUgb2YgQVBNQyBwb3J0ICg9 IDB4MDBCMikNCj4gKyAgICBtb3YgcmF4LCByZHggOyByYXhfdmFsdWUNCj4gKyAgICBtb3YgYXgs IGN4ICAgOyBzbWlfY29kZV9kYXRhDQo+ICsgICAgbW92IHJkeCwgcjEwIDsgcmR4X3ZhbHVlDQo+ ICsgICAgbW92IHJkeCwgW3JzcCArIDA0MGhdIDsgcnNwICsgMHgyOCArIDB4MTgNCj4gKw0KPiAr ICAgIG1vdiByYngsIHI4ICA7IHJieF92YWx1ZQ0KPiArICAgIG1vdiByY3gsIHI5ICA7IHJjeF92 YWx1ZQ0KPiArICAgIG1vdiByc2ksIFtyc3AgKyAwNDhoXSA7IHJzaV92YWx1ZQ0KPiArICAgIG1v diByZGksIFtyc3AgKyAwNTBoXSA7IHJkaV92YWx1ZQ0KPiArDQo+ICsgICAgOyB0aGlzIE9VVCBp bnN0cnVjdGlvbiB3aWxsIHdyaXRlIFdPUkQgdmFsdWUgKHNtaV9jb2RlX2RhdGEpIHRvIHBvcnRz IDB4QjIgYW5kIDB4QjMgKFNXIFNNSSBjb250cm9sIGFuZCBkYXRhIHBvcnRzKQ0KPiArICAgIG91 dCAwQjJoLCBheA0KPiArDQo+ICsgICAgOyBAVE9ETzogc29tZSBTTSBoYW5kbGVycyByZXR1cm4g ZGF0YS9lcnJvcmNvZGUgaW4gR1BScywgbmVlZCB0byByZXR1cm4gdGhpcyB0byB0aGUgY2FsbGVy DQo+ICsNCj4gKyAgICBwb3AgcmRpDQo+ICsgICAgcG9wIHJzaQ0KPiArICAgIHBvcCByYngNCj4g KyAgICByZXQNCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9B cHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxl cy9jcHVfZ2NjLnMgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tDQo+IDMuNi44 L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2djYy5zDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAuLjU0NDE2OTENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9BcHBQa2cv QXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVf Z2NjLnMNCj4gQEAgLTAsMCArMSw2NCBAQA0KPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAr Iw0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+ICsjDQo+ICsjIE1vZHVsZSBOYW1lOg0KPiArIw0KPiArIyAgIGNw dV9nY2Mucw0KPiArIw0KPiArIyBBYnN0cmFjdDoNCj4gKyMNCj4gKyMgICBzd3NtaSBmdW5jdGlv bg0KPiArIw0KPiArIyBOb3RlczoNCj4gKyMNCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g Kw0KPiArLmdsb2JhbCBfc3dzbWkNCj4gKw0KPiArLmludGVsX3N5bnRheCBub3ByZWZpeA0KPiAr LnRleHQNCj4gKw0KPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArIyAgdm9pZA0KPiArIyAg X3N3c21pICgNCj4gKyMgICAgdW5zaWduZWQgaW50CXNtaV9jb2RlX2RhdGEJLy8gcmN4DQo+ICsj ICAgIElOICAgVUlOVDY0CXJheF92YWx1ZQkvLyByZHgNCj4gKyMgICAgSU4gICBVSU5UNjQJcmJ4 X3ZhbHVlCS8vIHI4DQo+ICsjICAgIElOICAgVUlOVDY0CXJjeF92YWx1ZQkvLyByOQ0KPiArIyAg ICBJTiAgIFVJTlQ2NAlyZHhfdmFsdWUJLy8gcnNwICsgMHgyOA0KPiArIyAgICBJTiAgIFVJTlQ2 NAlyc2lfdmFsdWUJLy8gcnNwICsgMHgzMA0KPiArIyAgICBJTiAgIFVJTlQ2NAlyZGlfdmFsdWUJ Ly8gcnNwICsgMHgzOA0KPiArIyAgICApDQo+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtf c3dzbWk6DQo+ICsgICAgcHVzaCByYngNCj4gKyAgICBwdXNoIHJzaQ0KPiArICAgIHB1c2ggcmRp DQo+ICsNCj4gKyAgICAjIHJzcCAtIDB4MTgNCj4gKw0KPiArICAgICMgc2V0dGluZyB1cCBHUFIg KGFyZ3VtZW50cykgdG8gU01JIGhhbmRsZXIgY2FsbA0KPiArICAgICMgbm90ZXM6DQo+ICsgICAg IyAgIFJBWCB3aWxsIGdldCBwYXJ0aWFsbHkgb3ZlcndyaXR0ZW4gKEFYKSBieSBfc21pX2NvZGVf ZGF0YSAod2hpY2ggaXMgcGFzc2VkIGluIFJDWCkNCj4gKyAgICAjICAgUkRYIHdpbGwgZ2V0IHBh cnRpYWxseSBvdmVyd3JpdHRlbiAoRFgpIGJ5IHRoZSB2YWx1ZSBvZiBBUE1DIHBvcnQgKD0gMHgw MEIyKQ0KPiArICAgIG1vdiByYXgsIHJkeCAjIHJheF92YWx1ZQ0KPiArICAgIG1vdiBheCwgY3gg ICAjIHNtaV9jb2RlX2RhdGENCj4gKyAgICBtb3YgcmR4LCByMTAgIyByZHhfdmFsdWUNCj4gKyAg ICBtb3YgcmR4LCBbcnNwICsgMHgwNDBdICMgcnNwICsgMHgyOCArIDB4MTgNCj4gKw0KPiArICAg IG1vdiByYngsIHI4ICAjIHJieF92YWx1ZQ0KPiArICAgIG1vdiByY3gsIHI5ICAjIHJjeF92YWx1 ZQ0KPiArICAgIG1vdiByc2ksIFtyc3AgKyAweDA0OF0gIyByc2lfdmFsdWUNCj4gKyAgICBtb3Yg cmRpLCBbcnNwICsgMHgwNTBdICMgcmRpX3ZhbHVlDQo+ICsNCj4gKyAgICAjIHRoaXMgT1VUIGlu c3RydWN0aW9uIHdpbGwgd3JpdGUgV09SRCB2YWx1ZSAoc21pX2NvZGVfZGF0YSkgdG8gcG9ydHMg MHhCMiBhbmQgMHhCMyAoU1cgU01JIGNvbnRyb2wgYW5kIGRhdGEgcG9ydHMpDQo+ICsgICAgb3V0 IDB4MEIyLCBheA0KPiArDQo+ICsgICAgIyBAVE9ETzogc29tZSBTTSBoYW5kbGVycyByZXR1cm4g ZGF0YS9lcnJvcmNvZGUgaW4gR1BScywgbmVlZCB0byByZXR1cm4gdGhpcyB0byB0aGUgY2FsbGVy DQo+ICsNCj4gKyAgICBwb3AgcmRpDQo+ICsgICAgcG9wIHJzaQ0KPiArICAgIHBvcCByYngNCj4g KyAgICByZXQNCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9B cHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxl cy9jcHVfaWEzMi5uYXNtDQo+IGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMu Ni44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lhMzIubmFzbQ0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwLi43OTBiOTIzDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv QXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVs ZXMvY3B1X2lhMzIubmFzbQ0KPiBAQCAtMCwwICsxLDM1IEBADQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICs7DQo+ICs7IENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjMsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKzsgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKzsNCj4gKzsgTW9kdWxlIE5hbWU6DQo+ICs7 DQo+ICs7ICAgY3B1X2lhMzIubmFzbQ0KPiArOw0KPiArOyBBYnN0cmFjdDoNCj4gKzsNCj4gKzsg ICBzd3NtaSBmdW5jdGlvbg0KPiArOw0KPiArOyBOb3RlczoNCj4gKzsNCj4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKw0KPiArU0VDVElPTiAudGV4dA0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICs7ICB2b2lkDQo+ICs7ICBfc3dzbWkgKA0KPiArOyAgICB1bnNpZ25lZCBp bnQJc21pX2NvZGVfZGF0YQkvLyByY3gNCj4gKzsgICAgSU4gICBVSU5UMzIJcmF4X3ZhbHVlCS8v IHJkeA0KPiArOyAgICBJTiAgIFVJTlQzMglyYnhfdmFsdWUJLy8gcjgNCj4gKzsgICAgSU4gICBV SU5UMzIJcmN4X3ZhbHVlCS8vIHI5DQo+ICs7ICAgIElOICAgVUlOVDMyCXJkeF92YWx1ZQkvLyBy MTANCj4gKzsgICAgSU4gICBVSU5UMzIJcnNpX3ZhbHVlCS8vIHIxMQ0KPiArOyAgICBJTiAgIFVJ TlQzMglyZGlfdmFsdWUJLy8gcjEyDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gK2dsb2JhbCBBU01fUEZYKF9zd3NtaSkNCj4gK0FTTV9QRlgoX3N3c21pKToNCj4gKyAg ICB4b3IgZWF4LCBlYXgNCj4gKyAgICByZXQNCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl DQo+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42Ljgv UHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMl9nY2Mucw0KPiBiL0FwcFBrZy9BcHBsaWNhdGlv bnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyX2djYy5z DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjM1ZTg4M2INCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42 LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMl9nY2Mucw0KPiBAQCAtMCwwICsxLDM4IEBA DQo+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgMjAx MSAtIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyMNCj4g KyMgTW9kdWxlIE5hbWU6DQo+ICsjDQo+ICsjICAgY3B1X2lhMzJfZ2NjLnMNCj4gKyMNCj4gKyMg QWJzdHJhY3Q6DQo+ICsjDQo+ICsjICAgc3dzbWkgZnVuY3Rpb24NCj4gKyMNCj4gKyMgTm90ZXM6 DQo+ICsjDQo+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKy5nbG9iYWwgX3N3c21p DQo+ICsNCj4gKw0KPiArLmludGVsX3N5bnRheCBub3ByZWZpeA0KPiArLnRleHQNCj4gKw0KPiAr Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArIyAgdm9pZA0KPiArIyAgX3N3c21pICgNCj4gKyMg ICAgdW5zaWduZWQgaW50CXNtaV9jb2RlX2RhdGEJLy8gcmN4DQo+ICsjICAgIElOICAgVUlOVDMy CXJheF92YWx1ZQkvLyByZHgNCj4gKyMgICAgSU4gICBVSU5UMzIJcmJ4X3ZhbHVlCS8vIHI4DQo+ ICsjICAgIElOICAgVUlOVDMyCXJjeF92YWx1ZQkvLyByOQ0KPiArIyAgICBJTiAgIFVJTlQzMgly ZHhfdmFsdWUJLy8gcjEwDQo+ICsjICAgIElOICAgVUlOVDMyCXJzaV92YWx1ZQkvLyByMTENCj4g KyMgICAgSU4gICBVSU5UMzIJcmRpX3ZhbHVlCS8vIHIxMg0KPiArIyAgICApDQo+ICsjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICtfc3dzbWk6DQo+ICsgICAgeG9yIGVheCwgZWF4DQo+ICsgICAg cmV0DQo+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42 LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxlLmMgYi9BcHBQa2cvQXBwbGljYXRpb25z L1B5dGhvbi9QeXRob24tDQo+IDMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvZWRrMm1vZHVsZS5j DQo+IGluZGV4IDA1MDFhMmIuLjRjNDAwYjkgMTAwNjQ0DQo+IC0tLSBhL0FwcFBrZy9BcHBsaWNh dGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUu Yw0KPiArKysgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2Qt My42LjgvTW9kdWxlcy9lZGsybW9kdWxlLmMNCj4gQEAgLTMsNyArMyw3IEBADQo+ICAgICAgRGVy aXZlZCBmcm9tIHBvc2l4bW9kdWxlLmMgaW4gUHl0aG9uIDIuNy4yLg0KPiANCj4gICAgICBDb3B5 cmlnaHQgKGMpIDIwMTUsIERhcnlsIE1jRGFuaWVsLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLSAgICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgICAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMywg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICAgIFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlIGF2YWlsYWJsZSB1bmRlcg0KPiAgICAgIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0 aGUgQlNEIExpY2Vuc2UgdGhhdCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4NCj4gICAg ICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiBAQCAtMjMs MTIgKzIzLDIwIEBADQo+ICAjaW5jbHVkZSAgPHN5cy9zeXNsaW1pdHMuaD4NCj4gICNpbmNsdWRl ICA8VWVmaS5oPg0KPiAgI2luY2x1ZGUgIDxMaWJyYXJ5L1VlZmlMaWIuaD4NCj4gKyNpbmNsdWRl ICA8TGlicmFyeS9QY2lMaWIuaD4NCj4gKyNpbmNsdWRlICA8TGlicmFyeS9Jb0xpYi5oPg0KPiAg I2luY2x1ZGUgIDxMaWJyYXJ5L1VlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYi5oPg0KPiANCj4g ICNpZmRlZiBfX2NwbHVzcGx1cw0KPiAgZXh0ZXJuICJDIiB7DQo+ICAjZW5kaWYNCj4gDQo+ICtQ eVR5cGVPYmplY3QgRWZpR3VpZFR5cGU7DQo+ICsNCj4gK2V4dGVybiB2b2lkIF9zd3NtaSggdW5z aWduZWQgaW50IHNtaV9jb2RlX2RhdGEsIHVuc2lnbmVkIGludCByYXhfdmFsdWUsIHVuc2lnbmVk IGludCByYnhfdmFsdWUsIHVuc2lnbmVkIGludCByY3hfdmFsdWUsDQo+IHVuc2lnbmVkIGludCBy ZHhfdmFsdWUsIHVuc2lnbmVkIGludCByc2lfdmFsdWUsIHVuc2lnbmVkIGludCByZGlfdmFsdWUg KTsNCj4gKy8vIC0tIFN1cHBvcnQgcm91dGluZXMNCj4gK0VGSV9TVEFUVVMgR3VpZFRvU3RyKCBJ TiBFRklfR1VJRCAqZ3VpZCwgSU4gT1VUIFVJTlQ4ICpzdHJfYnVmZmVyICk7DQo+ICsNCj4gIFB5 RG9jX1NUUlZBUihlZGsyX19kb2NfXywNCj4gICAgICAgICAgICAgICAiVGhpcyBtb2R1bGUgcHJv dmlkZXMgYWNjZXNzIHRvIFVFRkkgZmlybXdhcmUgZnVuY3Rpb25hbGl0eSB0aGF0IGlzXG5cDQo+ ICAgICAgICAgICAgICAgc3RhbmRhcmRpemVkIGJ5IHRoZSBDIFN0YW5kYXJkIGFuZCB0aGUgUE9T SVggc3RhbmRhcmQgKGEgdGhpbmx5XG5cDQo+IEBAIC0zODAwLDYgKzM4MDgsNDk3IEBAIGVkazJf YWJvcnQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpDQo+ICAgICAgcmV0dXJuIE5V TEw7DQo+ICB9DQo+IA0KPiArdW5zaWduZWQgaW50IFJlYWRQQ0lDZmcoDQo+ICsgIHVuc2lnbmVk IGNoYXIgYnVzLA0KPiArICB1bnNpZ25lZCBjaGFyIGRldiwNCj4gKyAgdW5zaWduZWQgY2hhciBm dW4sDQo+ICsgIHVuc2lnbmVkIGNoYXIgb2ZmLA0KPiArICB1bnNpZ25lZCBjaGFyIGxlbiAvLyAx LCAyLCA0IGJ5dGVzDQo+ICsgICkNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7 DQo+ICsNCj4gKyAgaWYgKDEgPT0gbGVuKSByZXN1bHQgPSBQY2lSZWFkOChQQ0lfTElCX0FERFJF U1MoYnVzLCBkZXYsIGZ1biwgb2ZmKSk7DQo+ICsgIGVsc2UgaWYgKDIgPT0gbGVuKSByZXN1bHQg PSBQY2lSZWFkMTYoUENJX0xJQl9BRERSRVNTKGJ1cywgZGV2LCBmdW4sIG9mZikpOw0KPiArICBl bHNlIGlmICg0ID09IGxlbikgcmVzdWx0ID0gUGNpUmVhZDMyKFBDSV9MSUJfQUREUkVTUyhidXMs IGRldiwgZnVuLCBvZmYpKTsNCj4gKyAgcmV0dXJuIHJlc3VsdDsNCj4gK30NCj4gKw0KPiArdm9p ZCBXcml0ZVBDSUNmZygNCj4gKyAgdW5zaWduZWQgY2hhciBidXMsDQo+ICsgIHVuc2lnbmVkIGNo YXIgZGV2LA0KPiArICB1bnNpZ25lZCBjaGFyIGZ1biwNCj4gKyAgdW5zaWduZWQgY2hhciBvZmYs DQo+ICsgIHVuc2lnbmVkIGNoYXIgbGVuLCAvLyAxLCAyLCA0IGJ5dGVzDQo+ICsgIHVuc2lnbmVk IGludCB2YWwNCj4gKyAgKQ0KPiArew0KPiArICBpZiAoMSA9PSBsZW4pIFBjaVdyaXRlOChQQ0lf TElCX0FERFJFU1MoYnVzLCBkZXYsIGZ1biwgb2ZmKSwgKHZhbCAmIDB4RkYpKTsNCj4gKyAgZWxz ZSBpZiAoMiA9PSBsZW4pIFBjaVdyaXRlMTYoUENJX0xJQl9BRERSRVNTKGJ1cywgZGV2LCBmdW4s IG9mZiksICh2YWwgJiAweEZGRkYpKTsNCj4gKyAgZWxzZSBpZiAoNCA9PSBsZW4pIFBjaVdyaXRl MzIoUENJX0xJQl9BRERSRVNTKGJ1cywgZGV2LCBmdW4sIG9mZiksIHZhbCk7DQo+ICt9DQo+ICsN Cj4gK1B5RG9jX1NUUlZBUihlZmlfcmRtc3JfX2RvY19fLA0KPiArInJkbXNyKGVjeCkgLT4gKGVh eCxlZHgpXG5cDQo+ICtSZWFkIHRoZSBnaXZlbiBNU1IuIik7DQo+ICsNCj4gK3N0YXRpYyBQeU9i amVjdCAqDQo+ICtlZGsyX3JkbXNyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4g K3sNCj4gKyAgdW5zaWduZWQgaW50IHZlY3gsIHZlYXgsIHZlZHg7DQo+ICsgIFVJTlQ2NCAgIGRh dGEgPSAwOw0KPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIkkiLCAmdmVjeCkpDQo+ ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgZGF0 YSA9IEFzbVJlYWRNc3I2NCh2ZWN4KTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKyAg dmVheCA9IChVSU5UMzIpZGF0YTsNCj4gKyAgdmVkeCA9IChVSU5UNjQpZGF0YSA+PiAzMjsNCj4g KyAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJSSkiLCAodW5zaWduZWQgbG9uZyl2ZWF4LCAodW5z aWduZWQgbG9uZyl2ZWR4KTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cm1zcl9f ZG9jX18sDQo+ICsid3Jtc3IoZWN4LCBlYXgsIGVkeCkgLT4gTm9uZVxuXA0KPiArV3JpdGUgZWR4 OmVheCB0byB0aGUgZ2l2ZW4gTVNSLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiAr ZWRrMl93cm1zcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVu c2lnbmVkIGludCB2ZWN4LCB2ZWF4LCB2ZWR4Ow0KPiArICBVSU5UNjQgICAgICAgZGF0YSA9IDA7 DQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJnZlY3gsICZ2ZWF4LCAm dmVkeCkpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsgIGRhdGEgPSB2ZWR4IDw8IDMyIHwgdmVh eDsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICBBc21Xcml0ZU1zcjY0KHZlY3gs IGRhdGEpOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArICBQeV9JTkNSRUYoUHlfTm9u ZSk7DQo+ICsgIHJldHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZp X3N3c21pX19kb2NfXywNCj4gKyJzd3NtaShzbWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92 YWx1ZSwgcmN4X3ZhbHVlLCByZHhfdmFsdWUsIHJzaV92YWx1ZSwgcmRpX3ZhbHVlKSAtPiBOb25l XG5cDQo+ICtUcmlnZ2VyaW5nIFNvZnR3YXJlIFNNSSIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmpl Y3QgKg0KPiArcG9zaXhfc3dzbWkoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiAr ew0KPiArICB1bnNpZ25lZCBpbnQgc21pX2NvZGVfZGF0YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUs IHJjeF92YWx1ZSwgcmR4X3ZhbHVlLCByc2lfdmFsdWUsIHJkaV92YWx1ZTsNCj4gKyAgaWYgKCFQ eUFyZ19QYXJzZShhcmdzLCAiKElJSUlJSUkpIiwgJnNtaV9jb2RlX2RhdGEsICZyYXhfdmFsdWUs ICZyYnhfdmFsdWUsICZyY3hfdmFsdWUsICZyZHhfdmFsdWUsICZyc2lfdmFsdWUsDQo+ICZyZGlf dmFsdWUpKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURT DQo+ICsgIF9zd3NtaSggc21pX2NvZGVfZGF0YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUsIHJjeF92 YWx1ZSwgcmR4X3ZhbHVlLCByc2lfdmFsdWUsIHJkaV92YWx1ZSApOw0KPiArICBQeV9FTkRfQUxM T1dfVEhSRUFEUw0KPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ICsgIHJldHVybiBQeV9Ob25l Ow0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX2NwdWlkX19kb2NfXywNCj4gKyJjcHVp ZChlYXgsIGVjeCkgLT4gKGVheDplYng6ZWN4OmVkeClcblwNCj4gK1JlYWQgdGhlIENQVUlELiI7 KTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK2VkazJfY3B1aWQoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArCVVJTlQzMiBlYXgsIGVjeCwgcmF4X3ZhbHVl LCByYnhfdmFsdWUsIHJjeF92YWx1ZSwgcmR4X3ZhbHVlOw0KPiArICAgIGlmICghUHlBcmdfUGFy c2VUdXBsZShhcmdzLCAiSUkiLCAmZWF4LCAmZWN4KSkNCj4gKyAgICAgIHJldHVybiBOVUxMOw0K PiArCVB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgICBBc21DcHVpZEV4KCBlYXgsIGVjeCwg JnJheF92YWx1ZSwgJnJieF92YWx1ZSwgJnJjeF92YWx1ZSwgJnJkeF92YWx1ZSk7DQo+ICsgICAg UHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKElJSUkp KSIsICAodW5zaWduZWQgbG9uZylyYXhfdmFsdWUsICAodW5zaWduZWQgbG9uZylyYnhfdmFsdWUs ICAodW5zaWduZWQgbG9uZylyY3hfdmFsdWUsDQo+ICh1bnNpZ25lZCBsb25nKXJkeF92YWx1ZSk7 DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfYWxsb2NwaHlzbWVtX19kb2NfXywNCj4g KyJhbGxvY3BoeXNtZW0obGVuZ3RoLCBtYXhfcGEpIC0+ICh2YSlcblwNCj4gK1VzZSBtYWxsb2Mg dG8gYWxsb2NhdGUgc3BhY2UgaW4gbWVtb3J5LiI7KTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0 ICoNCj4gK3Bvc2l4X2FsbG9jcGh5c21lbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3Mp DQo+ICt7DQo+ICsJdW5zaWduZWQgaW50IGxlbmd0aCwgbWF4X3BhOw0KPiArICAgIHZvaWQgKnZh Ow0KPiArICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUkiLCAmbGVuZ3RoLCAmbWF4 X3BhKSkNCj4gKyAgICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsJUHlfQkVHSU5fQUxMT1dfVEhS RUFEUw0KPiArICAgIHZhID0gbWFsbG9jKGxlbmd0aCk7DQo+ICsgICAgUHlfRU5EX0FMTE9XX1RI UkVBRFMNCj4gKw0KPiArICAgIC8vIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSykiLCAgKHVuc2ln bmVkIGxvbmcpdmEpOw0KPiArICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSSkiLCAgKHVuc2ln bmVkIGxvbmcpdmEpOw0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3JlYWRpb19fZG9j X18sDQo+ICsicmVhZGlvKGFkZHIsIHNpemUpIC0+IChpbnQpXG5cDQo+ICtSZWFkIHRoZSB2YWx1 ZSAoc2l6ZSA9PSAxLCAyLCBvciA0IGJ5dGVzKSBvZiB0aGUgc3BlY2lmaWVkIElPIHBvcnQuIik7 DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtlZGsyX3JlYWRpbyhQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCBhZGRyLCBzeiwgcmVz dWx0Ow0KPiArICBzaG9ydCBhZGRyczsNCj4gKw0KPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUo YXJncywgIklJIiwgJmFkZHIsICZzeikpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAg UHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICByZXN1bHQgPSAwOw0KPiArICBhZGRycyA9IChz aG9ydCkoYWRkciAmIDB4ZmZmZik7DQo+ICsgIGlmICgxID09IHN6KSByZXN1bHQgPSAoSW9SZWFk OChhZGRycykgJiAweEZGKTsNCj4gKyAgZWxzZSBpZiAoMiA9PSBzeikgcmVzdWx0ID0gKElvUmVh ZDE2KGFkZHJzKSAmIDB4RkZGRik7DQo+ICsgIGVsc2UgaWYgKDQgPT0gc3opIHJlc3VsdCA9IElv UmVhZDMyKGFkZHJzKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKyAgcmV0dXJuIFB5 TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKXJlc3VsdCk7DQo+ICt9DQo+ICsN Cj4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVpb19fZG9jX18sDQo+ICsid3JpdGVpbyhhZGRyLCBz aXplLCB2YWx1ZSkgLT4gTm9uZVxuXA0KPiArV3JpdGUgdGhlIHZhbHVlIChzaXplID09IDEsIDIs IG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZpZWQgSU8gcG9ydC4iKTsNCj4gKw0KPiArc3RhdGlj IFB5T2JqZWN0ICoNCj4gK2VkazJfd3JpdGVpbyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy Z3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCBhZGRyLCBzeiwgdmFsdWU7DQo+ICsgIHNob3J0 IGFkZHJzOw0KPiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJmFk ZHIsICZzeiwgJnZhbHVlKSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArICBQeV9CRUdJ Tl9BTExPV19USFJFQURTDQo+ICsgIGFkZHJzID0gKHNob3J0KShhZGRyICYgMHhmZmZmKTsNCj4g KyAgaWYgKDEgPT0gc3opIElvV3JpdGU4KCh1bnNpZ25lZCBjaGFyKSh2YWx1ZSAmIDB4RkYpLCBh ZGRycyk7DQo+ICsgIGVsc2UgaWYgKDIgPT0gc3opIElvV3JpdGUxNigodW5zaWduZWQgc2hvcnQp KHZhbHVlICYgMHhGRkZGKSwgYWRkcnMpOw0KPiArICBlbHNlIGlmICg0ID09IHN6KSBJb1dyaXRl MzIodmFsdWUsIGFkZHJzKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBQ eV9JTkNSRUYoUHlfTm9uZSk7DQo+ICsgIHJldHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQ eURvY19TVFJWQVIoZWZpX3JlYWRwY2lfX2RvY19fLA0KPiArInJlYWRwY2koYnVzLGRldixmdW5j LGFkZHIsc2l6ZSkgLT4gKGludClcblwNCj4gK1JlYWQgdGhlIHZhbHVlIChzaXplID09IDEsIDIs IG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZpZWQgUENJIGIvZC9mLiIpOw0KPiArDQo+ICtzdGF0 aWMgUHlPYmplY3QgKg0KPiArZWRrMl9yZWFkcGNpKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAq YXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50IGJ1cywgZGV2LCBmdW5jLCBvZmYsIHN6LCBy ZXN1bHQ7DQo+ICsNCj4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUlJSSIsICZi dXMsICZkZXYsICZmdW5jLCAmb2ZmLCAmc3opKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgcmVzdWx0ID0gUmVhZFBDSUNmZyggYnVz LCBkZXYsIGZ1bmMsIG9mZiwgc3ogKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0K PiArICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoKHVuc2lnbmVkIGxvbmcpcmVzdWx0 KTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cml0ZXBjaV9fZG9jX18sDQo+ICsi d3JpdGVwY2koYnVzLGRldixmdW5jLGFkZHIsdmFsdWUsbGVuKSAtPiBOb25lXG5cDQo+ICtXcml0 ZSB0aGUgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBQQ0kgYi9kL2YuICBMZW4gaXMgdmFsdWUgc2l6 ZSAoZWl0aGVyIDEsIDIsIG9yIDQgYnl0ZXMpLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3Qg Kg0KPiArZWRrMl93cml0ZXBjaShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7 DQo+ICsgIHVuc2lnbmVkIGludCBidXMsIGRldiwgZnVuYywgb2ZmLCB2YWwsIGxlbjsNCj4gKw0K PiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJSUlJSSIsICZidXMsICZkZXYsICZm dW5jLCAmb2ZmLCAmdmFsLCAmbGVuKSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArICBQ eV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIFdyaXRlUENJQ2ZnKCBidXMsIGRldiwgZnVuYywg b2ZmLCBsZW4sIHZhbCApOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIFB5 X0lOQ1JFRihQeV9Ob25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsNCj4gK1B5 RG9jX1NUUlZBUihlZmlfcmVhZG1lbV9fZG9jX18sDQo+ICsicmVhZG1lbShhZGRyX2xvLCBhZGRy X2hpLCBsZW4pIC0+IEJ5dGVTdHJpbmdcblwNCj4gK1JlYWQgdGhlIGdpdmVuIG1lbW9yeSBhZGRy ZXNzLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfcmVhZG1lbShQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIFB5T2JqZWN0ICAqZGF0YTsN Cj4gKyAgVUlOVDMyICAgICBhZGRyX2xvLCBhZGRyX2hpOw0KPiArICBjaGFyICAgICAgKmJ1ZmZl ciwgKmNidWZmZXIsICphZGRyOw0KPiArICBpbnQgICAgICAgIGxlbiwgaW5kZXg7DQo+ICsNCj4g KyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUkiLCAmYWRkcl9sbywgJmFkZHJfaGks ICZsZW4pKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsjaWZkZWYgTURFX0NQVV9YNjQN Cj4gKyAgYWRkciA9ICh1bnNpZ25lZCBjaGFyKikoKFVJTlQ2NClhZGRyX2xvIHwgKChVSU5UNjQp YWRkcl9oaSA8PCAzMikpOw0KPiArI2Vsc2UNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBjaGFyKilh ZGRyX2xvOw0KPiArI2VuZGlmDQo+ICsNCj4gKyAgYnVmZmVyID0gbWFsbG9jKGxlbik7DQo+ICsg IGlmIChidWZmZXIgPT0gTlVMTCkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArICBjYnVm ZmVyID0gYnVmZmVyOw0KPiArICBpbmRleCA9IGxlbjsNCj4gKw0KPiArICBQeV9CRUdJTl9BTExP V19USFJFQURTDQo+ICsNCj4gKyAgd2hpbGUoaW5kZXgtLSl7DQo+ICsgICAgKmNidWZmZXIgPSAq YWRkcjsNCj4gKyAgICBjYnVmZmVyKys7DQo+ICsgICAgYWRkcisrOw0KPiArICB9DQo+ICsNCj4g KyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBkYXRhID0gUHlfQnVpbGRWYWx1ZSgi eSMiLCBidWZmZXIsIGxlbik7DQo+ICsgIGZyZWUoYnVmZmVyKTsNCj4gKw0KPiArICByZXR1cm4g ZGF0YTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV9yZWFkbWVtX2R3b3JkX19kb2Nf XywNCj4gKyJyZWFkbWVtX2R3b3JkKGFkZHJfbG8sIGFkZHJfaGkpIC0+IChpbnQzMilcblwNCj4g K1JlYWQgdGhlIGdpdmVuIG1lbW9yeSBhZGRyZXNzIGFuZCByZXR1cm4gMzItYml0IHZhbHVlLiIp Ow0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfcmVhZG1lbV9kd29yZChQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCByZXN1 bHQsICphZGRyOw0KPiArICBVSU5UMzIgYWRkcl9sbywgYWRkcl9oaTsNCj4gKw0KPiArICBpZiAo IVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJIiwgJmFkZHJfbG8sICZhZGRyX2hpKSkNCj4gKyAg ICByZXR1cm4gTlVMTDsNCj4gKw0KPiArI2lmZGVmIE1ERV9DUFVfWDY0DQo+ICsgIGFkZHIgPSAo dW5zaWduZWQgaW50KikoKFVJTlQ2NClhZGRyX2xvIHwgKChVSU5UNjQpYWRkcl9oaSA8PCAzMikp Ow0KPiArI2Vsc2UNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBpbnQqKWFkZHJfbG87DQo+ICsjZW5k aWYNCj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIHJlc3VsdCA9ICphZGRy Ow0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIHJldHVybiBQeUxvbmdfRnJv bVVuc2lnbmVkTG9uZygodW5zaWduZWQgbG9uZylyZXN1bHQpOw0KPiArfQ0KPiArDQo+ICtQeURv Y19TVFJWQVIoZWZpX3dyaXRlbWVtX19kb2NfXywNCj4gKyJ3cml0ZW1lbShhZGRyX2xvLCBhZGRy X2hpLCBidWYpIC0+IE5vbmVcblwNCj4gK1dyaXRlIHRoZSBidWYgKFB5U3RyaW5nKSB0byB0aGUg Z2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtw b3NpeF93cml0ZW1lbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsg IGNoYXIgKmJ1ZiwgKmFkZHI7DQo+ICsgIGludCBsZW47DQo+ICsgIFVJTlQzMiBhZGRyX2xvLCBh ZGRyX2hpOw0KPiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlzIyIsICZh ZGRyX2xvLCAmYWRkcl9oaSwgJmJ1ZiwgJmxlbikpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsN Cj4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiArICBhZGRyID0gKHVuc2lnbmVkIGNoYXIqKSgoVUlO VDY0KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ICsjZWxzZQ0KPiArICBh ZGRyID0gKHVuc2lnbmVkIGNoYXIqKWFkZHJfbG87DQo+ICsjZW5kaWYNCj4gKw0KPiArICBQeV9C RUdJTl9BTExPV19USFJFQURTDQo+ICsgIHdoaWxlKGxlbi0tKXsNCj4gKyAgICAqYWRkciA9ICpi dWY7DQo+ICsgICAgYnVmKys7DQo+ICsgICAgYWRkcisrOw0KPiArICB9DQo+ICsgIFB5X0VORF9B TExPV19USFJFQURTDQo+ICsNCj4gKyAgUHlfSU5DUkVGKFB5X05vbmUpOw0KPiArICByZXR1cm4g UHlfTm9uZTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cml0ZW1lbV9kd29yZF9f ZG9jX18sDQo+ICsid3JpdGVtZW1fZHdvcmQoYWRkcl9sbywgYWRkcl9oaSwgdmFsKSAtPiBOb25l XG5cDQo+ICtXcml0ZSB0aGUgMzItYml0IHZhbHVlIHRvIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVz cy4iKTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3dyaXRlbWVtX2R3b3Jk KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50 ICphZGRyLCB2YWw7DQo+ICsgIFVJTlQzMiBhZGRyX2xvLCBhZGRyX2hpOw0KPiArDQo+ICsgIGlm ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJmFkZHJfbG8sICZhZGRyX2hpLCAmdmFs KSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArI2lmZGVmIE1ERV9DUFVfWDY0DQo+ICsg IGFkZHIgPSAodW5zaWduZWQgaW50KikoKFVJTlQ2NClhZGRyX2xvIHwgKChVSU5UNjQpYWRkcl9o aSA8PCAzMikpOw0KPiArI2Vsc2UNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBpbnQqKWFkZHJfbG87 DQo+ICsjZW5kaWYNCj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgICphZGRy ID0gdmFsOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIFB5X0lOQ1JFRihQ eV9Ob25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZB UihNaXNjUlRfR2V0VmFyaWFibGVfX2RvY19fLA0KPiArIihTdGF0dXMsIEF0dHJpYnV0ZXMsIERh dGEsIERhdGFTaXplKSA9IEdldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgR1VJRCwgRGF0YVNpemUp XG5cblwNCj4gK1JldHVybnMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuIik7DQo+ICsNCj4gK3N0 YXRpYw0KPiArUHlPYmplY3QgKg0KPiArTWlzY1JUX0dldFZhcmlhYmxlKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgUHlPYmplY3QgICAgICpkYXRhX291dDsNCj4g KyAgQ0hBUjE2ICAgICAgICpWYXJpYWJsZU5hbWU7DQo+ICsgIEVGSV9HVUlEICAgICAgVmVuZG9y R3VpZDsNCj4gKyAgVUlOVDMyICAgICAgICBHdWlkU2l6ZTsNCj4gKyAgVUlOVDMyICAgICAgICBB dHRyaWJ1dGVzOw0KPiArICBVSU5UNjQgICAgICAgIERhdGFTaXplOw0KPiArICBjaGFyICAgICAg ICAgKkRhdGE7DQo+ICsgIGNvbnN0IENIQVIxNiAqR3VpZEluOw0KPiArICBFRklfU1RBVFVTICAg IFN0YXR1czsNCj4gKw0KPiArICBpZighUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidXUjSyIsICZW YXJpYWJsZU5hbWUsICZHdWlkSW4sICZHdWlkU2l6ZSwgJkRhdGFTaXplKSkNCj4gKyAgew0KPiAr ICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ICsNCj4gKyAgU3RyVG9HdWlkKEd1aWRJbiwgJlZl bmRvckd1aWQpOw0KPiArDQo+ICsgIERhdGEgPSBtYWxsb2MoRGF0YVNpemUpOw0KPiArICBpZiAo IURhdGEpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhS RUFEUw0KPiArICBTdGF0dXMgPSBnUlQtPkdldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgJlZlbmRv ckd1aWQsICZBdHRyaWJ1dGVzLCAoVUlOVE4gKikmRGF0YVNpemUsICh2b2lkKilEYXRhKTsNCj4g KyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBkYXRhX291dCA9IFB5X0J1aWxkVmFs dWUoIihJSXkjSykiLCAoVUlOVDMyKVN0YXR1cywgQXR0cmlidXRlcywgRGF0YSwgRGF0YVNpemUs IERhdGFTaXplKTsNCj4gKyAgZnJlZShEYXRhKTsNCj4gKw0KPiArICByZXR1cm4gZGF0YV9vdXQ7 DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZV9f ZG9jX18sDQo+ICsiKFN0YXR1cywgVmFyaWFibGVOYW1lU2l6ZSwgVmFyaWFibGVOYW1lLCBWZW5k b3JHdWlkKSA9IEdldE5leHRWYXJpYWJsZU5hbWUoTmFtZVNpemUsIFZhcmlhYmxlTmFtZSwgR1VJ RClcblxuXA0KPiArRW51bWVyYXRlcyB0aGUgY3VycmVudCB2YXJpYWJsZSBuYW1lcy4iKTsNCj4g Kw0KPiArc3RhdGljDQo+ICtQeU9iamVjdCAqDQo+ICtNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFt ZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIFVJTlQ2NCAgICAg ICAgTmFtZVNpemU7DQo+ICsgIENIQVIxNiAgICAgICAqVmFyaWFibGVOYW1lLCAqTmFtZUluOw0K PiArICBVSU5UMzIgICAgICAgIEd1aWRTaXplLCBWYXJpYWJsZU5hbWVTaXplLCBpOw0KPiArICBF RklfR1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiAr ICBjb25zdCBjaGFyICAgKkd1aWRJbjsNCj4gKyAgY2hhciAgICAgICAgICpWZW5kb3JHdWlkUHRy LCAqR3VpZE91dFszN107DQo+ICsNCj4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIkt5 I3MjIiwgJk5hbWVTaXplLCAmTmFtZUluLCAmVmFyaWFibGVOYW1lU2l6ZSwgJkd1aWRJbiwgJkd1 aWRTaXplKSkNCj4gKyAgew0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ICsNCj4gKyAg VmVuZG9yR3VpZFB0ciA9IChjaGFyICopJlZlbmRvckd1aWQ7DQo+ICsgIGZvciAoaT0wOyBpPHNp emVvZihWZW5kb3JHdWlkKTsgaSsrKQ0KPiArICAgIFZlbmRvckd1aWRQdHJbaV0gPSBHdWlkSW5b aV07DQo+ICsNCj4gKyAgZm9yIChpPTA7IGk8TmFtZVNpemUgJiYgTmFtZUluW2ldICE9IChDSEFS MTYpMDsgaSsrKQ0KPiArICAgIFZhcmlhYmxlTmFtZVtpXSA9IE5hbWVJbltpXTsNCj4gKyAgVmFy aWFibGVOYW1lW2ldID0gTmFtZUluW2ldOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVB RFMNCj4gKyAgU3RhdHVzID0gZ1JULT5HZXROZXh0VmFyaWFibGVOYW1lKChVSU5UTiAqKSZOYW1l U2l6ZSwgKENIQVIxNiAqKVZhcmlhYmxlTmFtZSwgJlZlbmRvckd1aWQpOw0KPiArICBQeV9FTkRf QUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIEd1aWRUb1N0cigoRUZJX0dVSUQgKikmVmVuZG9yR3Vp ZCwgKFVJTlQ4ICopR3VpZE91dCk7DQo+ICsNCj4gKyAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJ dUtzKSIsIChVSU5UMzIpIFN0YXR1cywgVmFyaWFibGVOYW1lLCBOYW1lU2l6ZSwgJkd1aWRPdXQp Ow0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoTWlzY1JUX1NldFZhcmlhYmxlX19kb2NfXywN Cj4gKyIoU3RhdHVzLCBEYXRhU2l6ZSwgR1VJRCkgPSBTZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUs IEdVSUQsIEF0dHJpYnV0ZXMsIERhdGEsIERhdGFTaXplKVxuXG5cDQo+ICtTZXRzIHRoZSB2YWx1 ZSBvZiBhIHZhcmlhYmxlLiIpOw0KPiArDQo+ICtzdGF0aWMNCj4gK1B5T2JqZWN0ICoNCj4gK01p c2NSVF9TZXRWYXJpYWJsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ ICsgIENIQVIxNiAgICAgICAqVmFyaWFibGVOYW1lOw0KPiArICBVSU5UNjQgICAgICAgIERhdGFT aXplOw0KPiArICBjaGFyICAgICAgICAgKkRhdGEsICpndWlkcHRyLCAqVmVuZG9yR3VpZFB0cjsN Cj4gKyAgY2hhciAgICAgICAgICpHdWlkT3V0WzM3XTsNCj4gKyAgRUZJX1NUQVRVUyAgICBTdGF0 dXM7DQo+ICsgIEVGSV9HVUlEICAgICAgVmVuZG9yR3VpZDsNCj4gKyAgVUlOVDMyICAgICAgICBB dHRyaWJ1dGVzOw0KPiArICBVSU5UMzIgICAgICAgIEd1aWRTaXplLCBzdHJEYXRhU2l6ZTsNCj4g KyAgY29uc3QgQ0hBUjE2ICpHdWlkSW47DQo+ICsNCj4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUo YXJncywgInV1I0lzI0kiLCAmVmFyaWFibGVOYW1lLCAmR3VpZEluLCAmR3VpZFNpemUsICZBdHRy aWJ1dGVzLCAmRGF0YSwgJnN0ckRhdGFTaXplLCAmRGF0YVNpemUpKQ0KPiArICB7DQo+ICsgICAg cmV0dXJuIE5VTEw7DQo+ICsgIH0NCj4gKw0KPiArICBTdHJUb0d1aWQoR3VpZEluLCAmVmVuZG9y R3VpZCk7DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICBTdGF0dXMgPSBn UlQtPlNldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgJlZlbmRvckd1aWQsIEF0dHJpYnV0ZXMsIChV SU5UTilEYXRhU2l6ZSwgKHZvaWQqKURhdGEpOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0K PiArDQo+ICsgIEd1aWRUb1N0cigoRUZJX0dVSUQgKikmVmVuZG9yR3VpZCwgKFVJTlQ4ICopR3Vp ZE91dCk7DQo+ICsNCj4gKy8vICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJS3UjKSIsIChVSU5U MzIpIFN0YXR1cywgRGF0YVNpemUsICZWZW5kb3JHdWlkLCBzaXplb2YoVmVuZG9yR3VpZCkpOw0K PiArICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKElLcykiLCAoVUlOVDMyKSBTdGF0dXMsIERhdGFT aXplLCAmR3VpZE91dCk7DQo+ICt9DQo+ICsNCj4gKw0KPiArLyoqDQo+ICsgIFRoaXMgZnVuY3Rp b24gcHJpbnRzIGEgR1VJRCB0byBhIGJ1ZmZlcg0KPiArDQo+ICsgIEBwYXJhbSBndWlkICAgICAg ICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgR1VJRA0KPiArDQo+ICsgIEBwYXJhbSBzdHJfYnVm ZmVyICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgc3RyIGJ1ZmZlcg0KPiArDQo+ICsNCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIEdVSUQgd2FzIHByaW50ZWQNCj4gKw0KPiAr ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgR1VJRCB3YXMgTlVMTA0KPiArDQo+ICsq Ki8NCj4gK0VGSV9TVEFUVVMNCj4gK0d1aWRUb1N0ciAoDQo+ICsgIElOIEVGSV9HVUlEICAqZ3Vp ZCwNCj4gKyAgSU4gT1VUIFVJTlQ4ICpzdHJfYnVmZmVyDQo+ICsgICkNCj4gK3sNCj4gKyAgaWYg KGd1aWQgPT0gTlVMTCkgew0KPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ ICsgIH0NCj4gKw0KPiArICBzcHJpbnRmICgNCj4gKyAgICAoQ0hBUjggKilzdHJfYnVmZmVyLA0K PiArICAgICIlMDhYLSUwNFgtJTA0WC0lMDJYJTAyWC0lMDJYJTAyWCUwMlglMDJYJTAyWCUwMlgi LA0KPiArICAgICh1bnNpZ25lZCkgZ3VpZC0+RGF0YTEsDQo+ICsgICAgZ3VpZC0+RGF0YTIsDQo+ ICsgICAgZ3VpZC0+RGF0YTMsDQo+ICsgICAgZ3VpZC0+RGF0YTRbMF0sDQo+ICsgICAgZ3VpZC0+ RGF0YTRbMV0sDQo+ICsgICAgZ3VpZC0+RGF0YTRbMl0sDQo+ICsgICAgZ3VpZC0+RGF0YTRbM10s DQo+ICsgICAgZ3VpZC0+RGF0YTRbNF0sDQo+ICsgICAgZ3VpZC0+RGF0YTRbNV0sDQo+ICsgICAg Z3VpZC0+RGF0YTRbNl0sDQo+ICsgICAgZ3VpZC0+RGF0YTRbN10NCj4gKyAgICApOw0KPiArDQo+ ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiAgc3RhdGljIFB5TWV0aG9kRGVm IGVkazJfbWV0aG9kc1tdID0gew0KPiAgICAgIHsiYWNjZXNzIiwgICAgICAgICAgZWRrMl9hY2Nl c3MsICAgICBNRVRIX1ZBUkFSR1MsIGVkazJfYWNjZXNzX19kb2NfX30sDQo+ICAjaWZkZWYgSEFW RV9UVFlOQU1FDQo+IEBAIC00MDU3LDcgKzQ1NTYsMjMgQEAgc3RhdGljIFB5TWV0aG9kRGVmIGVk azJfbWV0aG9kc1tdID0gew0KPiAgI2lmZGVmIEhBVkVfUEFUSENPTkYNCj4gICAgICB7InBhdGhj b25mIiwgICAgICAgIGVkazJfcGF0aGNvbmYsIE1FVEhfVkFSQVJHUywgZWRrMl9wYXRoY29uZl9f ZG9jX199LA0KPiAgI2VuZGlmDQo+IC0gICAgeyJhYm9ydCIsICAgICAgICAgICBlZGsyX2Fib3J0 LCAgICAgIE1FVEhfTk9BUkdTLCAgZWRrMl9hYm9ydF9fZG9jX199LA0KPiArICAgIHsiYWJvcnQi LCAgICAgICAgICAgICAgIGVkazJfYWJvcnQsICAgICAgTUVUSF9OT0FSR1MsICBlZGsyX2Fib3J0 X19kb2NfX30sDQo+ICsgICAgeyJyZG1zciIsICAgICAgICAgICAgICAgZWRrMl9yZG1zciwgICAg ICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JkbXNyX19kb2NfX30sDQo+ICsgICAgeyJ3 cm1zciIsICAgICAgICAgICAgICAgZWRrMl93cm1zciwgICAgICAgICAgICAgICAgIE1FVEhfVkFS QVJHUywgZWZpX3dybXNyX19kb2NfX30sDQo+ICsgICAgeyJyZWFkcGNpIiwgICAgICAgICAgICAg ZWRrMl9yZWFkcGNpLCAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JlYWRwY2lfX2Rv Y19ffSwNCj4gKyAgICB7IndyaXRlcGNpIiwgICAgICAgICAgICBlZGsyX3dyaXRlcGNpLCAgICAg ICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3JpdGVwY2lfX2RvY19ffSwNCj4gKyAgICB7InJl YWRtZW0iLCAgICAgICAgICAgICBwb3NpeF9yZWFkbWVtLCAgICAgICAgICAgICAgIE1FVEhfVkFS QVJHUywgZWZpX3JlYWRtZW1fX2RvY19ffSwNCj4gKyAgICB7InJlYWRtZW1fZHdvcmQiLCAgICAg ICBwb3NpeF9yZWFkbWVtX2R3b3JkLCAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JlYWRtZW1f ZHdvcmRfX2RvY19ffSwNCj4gKyAgICB7IndyaXRlbWVtIiwgICAgICAgICAgICBwb3NpeF93cml0 ZW1lbSwgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlbWVtX19kb2NfX30sDQo+ ICsgICAgeyJ3cml0ZW1lbV9kd29yZCIsICAgICAgcG9zaXhfd3JpdGVtZW1fZHdvcmQsICAgICAg ICBNRVRIX1ZBUkFSR1MsIGVmaV93cml0ZW1lbV9kd29yZF9fZG9jX199LA0KPiArICAgIHsid3Jp dGVpbyIsICAgICAgICAgICAgIGVkazJfd3JpdGVpbywgICAgICAgICAgICAgICBNRVRIX1ZBUkFS R1MsIGVmaV93cml0ZWlvX19kb2NfX30sDQo+ICsgICAgeyJyZWFkaW8iLCAgICAgICAgICAgICAg ZWRrMl9yZWFkaW8sICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3JlYWRpb19fZG9j X199LA0KPiArICAgIHsic3dzbWkiLCAgICAgICAgICAgICAgIHBvc2l4X3N3c21pLCAgICAgICAg ICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfc3dzbWlfX2RvY19ffSwNCj4gKyAgICB7ImFsbG9j cGh5c21lbSIsICAgICAgICBwb3NpeF9hbGxvY3BoeXNtZW0sICAgICAgICAgIE1FVEhfVkFSQVJH UywgZWZpX2FsbG9jcGh5c21lbV9fZG9jX199LA0KPiArICAgIHsiY3B1aWQiLCAgICAgICAgICAg ICAgIGVkazJfY3B1aWQsICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9jcHVpZF9f ZG9jX199LA0KPiArICAgIHsiR2V0VmFyaWFibGUiLCAgICAgICAgIE1pc2NSVF9HZXRWYXJpYWJs ZSwgICAgICAgICAgTUVUSF9WQVJBUkdTLCBNaXNjUlRfR2V0VmFyaWFibGVfX2RvY19ffSwNCj4g KyAgICB7IkdldE5leHRWYXJpYWJsZU5hbWUiLCBNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZSwg IE1FVEhfVkFSQVJHUywgTWlzY1JUX0dldE5leHRWYXJpYWJsZU5hbWVfX2RvY19ffSwNCj4gKyAg ICB7IlNldFZhcmlhYmxlIiwgICAgICAgICBNaXNjUlRfU2V0VmFyaWFibGUsICAgICAgICAgIE1F VEhfVkFSQVJHUywgTWlzY1JUX1NldFZhcmlhYmxlX19kb2NfX30sDQo+ICAgICAge05VTEwsICAg ICAgICAgICAgICBOVUxMfSAgICAgICAgICAgIC8qIFNlbnRpbmVsICovDQo+ICB9Ow0KPiANCj4g LS0NCj4gMi4zOS4xLndpbmRvd3MuMQ0KDQo=