From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.176.1637711632595663607 for ; Tue, 23 Nov 2021 15:53:53 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=NL45jxPY; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="235111513" X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="235111513" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2021 15:53:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="607004586" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga004.jf.intel.com with ESMTP; 23 Nov 2021 15:53:51 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 23 Nov 2021 15:53:51 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 15:53:50 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 23 Nov 2021 15:53:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JyTe7vnveEpTPqMtKAZ2BV/3gNmXzttqDuWudzhvjYYjZdW++HeSzie52vC2jmvF5l0KhQrTQ4WXxDIIUvOLrsAqtkiY5LOGDJDJC3tQJJYpbn44Awl94jeRqcqSixQxyf6OT1imi+IwuAwSV4ttlSTFFjOdHaoUi9sl6zL/l14jBwdO71fQJsTGdMgqKANAQpyLPPRn7PQ0Y86ugKuZlZU4OMppbUYQ4RyZKuldqWi8cHxxfsU7k3iFzPlcU+18JeqUdikL5K4rQyGOFW4kkKl2+j2KwyFY4Kwq3FFthHZvem+xqnO6T6WwA84+n//6AdfPfRsB9EIekmMX7wrJFA== 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=sa0ZQmZ2FpjC4xeBRLIwbrDKPm5PB1yafHqQqGy/H/M=; b=jUgzBYpAIpYYjN43tzVjG1iH5GUirs4MB+/ISvLBbnKozAI/nsht6aBUQPt12jEVNB+y8TBfR5etD6R/OP8kPuHk3dBLhZ+ANrUqflidHCPaNee64vG2Vb3ajKdNxj6mLnerp8le4lnPGLQme6cmKNwJ+pdp4LU2Oc8wOM7HD+zbQ2WhPHaCIhbvzo0re7D9Wk89HGFTf8LxGGFIQkCP/gokaNlb7NQ/xPhoEjH5pFKO0D7OmrMkcodIsPZPSJOdOH0BKBhka1V8PBejnlhAKxrGqpw3gPID7/1d+jyAmLexRkY79EEtIaUBzhDDf9lEnd/5WuoLmKgZtKx7+q5JTQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sa0ZQmZ2FpjC4xeBRLIwbrDKPm5PB1yafHqQqGy/H/M=; b=NL45jxPYrzdDMT3Wy64dqrK8PNegyNzagxP3SR1Sagde+i/pdzQaAZ0+LzXkIr7aseCkddfSjgoKTtPLqARIO/3ujQUeIQ9wicghDEFdM5HALog53fDTA2N3WjWTJVtmDxciDWOaADWmNHaC+otIP6n+Ohy+jqNPr0r2FulqOOw= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MW3PR11MB4681.namprd11.prod.outlook.com (2603:10b6:303:57::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Tue, 23 Nov 2021 23:53:48 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021 23:53:48 +0000 From: "Michael D Kinney" To: Michael Kubacki , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Liming Gao , Sean Brogan , Bret Barkelew Subject: Re: [edk2-devel] [PATCH v2 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Topic: [edk2-devel] [PATCH v2 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Index: AQHX4K4XgAWLUrqD3U6AQeMuuxznTqwRpetwgAAZR4CAAAj8UA== Date: Tue, 23 Nov 2021 23:53:48 +0000 Message-ID: References: <20211123210623.2168-1-mikuback@linux.microsoft.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 90899b1a-d032-42d3-b1de-08d9aedc7e34 x-ms-traffictypediagnostic: MW3PR11MB4681: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NBqU/aHoEIutcCQ4hWFwD3MAhP8A6g+i06U9w3UU24Y7xDHNsfI9e2Od69xD6ZLbQdeoWGTKDRycI4J51jJM0tBNP+MkhoIdigHjjEK6xOwA9KZmgNaAPusfEGSEm1TJ0eRIR0ndnXOC0IVpaxvYVKtwL2XSraI39Fp+WBVytbppbc7LxQZbddYduDPhZPfbUKm9rE4egPQ+sxt0S6+BwPjWNyW3zPp3J6PMT3OWz9NDthKVcaQvTS3y8gVkDR5GHOSl6kmhIpYSRe0IAVx6O/xrc/d5/3DX60cg81WutAHtotysfgkGzX7Ub+nO7ZiV0RDyz1LU2DBKq8BVu7il3+FVYfJfA0CWHOGQoHGkJAyKD6eodD/5GL7uMfNvqXOx4VkIQWK92TPlHROSvqoHKxEfGHiXSZfXxKhQcJyqoYgcsUw3dKktnWAwiZbzhsmYmXTkL7tRSl6pSxBhj0hLt/nsY2LrHLmdw04JwX4+F3gWtYj37zB1wJ3olejkO3ZJE33a7ked/lwarcrSzTBYImzt83U1o3o9pmzeuMrLeLHb7Dhtnk3NhV1npQrNDGKPvfq5xUNxc9h3AfXAJW4Ck+Vij3exHTEsu3zAQI//8FX7BqffS2b32QsSrvXncCvAa8ARcM6QJh0vSSaliPJEOgLJC5KLsOgrbuo7SYfIyOWoplAovLzNuHaboCxqHz6I24p68ss6Xuk7W9c6Z9p14loF2HWP0kZCoVf7/BVTHdXZEVNHagDego0S4nhQjtTU2+QayJ5haRvi8cpsYiWApFM2XYJ/ksZNIconiKS1OI+hi1KADkT/OZNxD3V/hXTg/C9DhexhM85mP47k17vsew== 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:(366004)(966005)(52536014)(19627235002)(5660300002)(66446008)(26005)(66556008)(83380400001)(110136005)(82960400001)(66476007)(33656002)(53546011)(4326008)(8676002)(66946007)(6506007)(86362001)(508600001)(186003)(7696005)(122000001)(64756008)(316002)(71200400001)(54906003)(76116006)(55016003)(45080400002)(38100700002)(8936002)(9686003)(2906002)(30864003)(38070700005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UGhDdUdibDhPOG4vdy9kcnA2ajBSMVVXS2dMcDlYY2Vzc3doQ0xvTHB2M01x?= =?utf-8?B?YUM1OHQ3eUc3RnJONTRjWnRwTnZqKzh1ZTdQZmhzQkRBMW5PclJxUXN4M0Jx?= =?utf-8?B?M3RsZUVUSXdRMGpURHRvTm5TZTIwdkprTE1MeG0raTBMSm1uNGxXbVlFTTBP?= =?utf-8?B?Sy81OFV0bzhpV3NPQ1FjNFFVK1RFc2ZTeXhsTTdHNjJXd2JWdnBYSG1OcW9x?= =?utf-8?B?ZDcveDF0ekdqbnVqYXBPNThwYjYyVkJzbzlQWUo5MS9UZlZMRUN1RTVtdlZa?= =?utf-8?B?QU9LTVJzTUd6dmQ4Syt0ZVZtSW53b3RaSXk4UUZneVVqaUZPeTNVSG9CbSs5?= =?utf-8?B?eG9qeXlGMGwvTUp5YkUzVDNDU2JidkpKRW1WQ2k0VWJjQ2M3TjdwejhNbzZ0?= =?utf-8?B?RElpTnFuaVZiZ1FxdVgvZ3hYekNibGptTUhpN01sWkU4cDFUNXV6UkJIYnRF?= =?utf-8?B?eUc5ZWFPYnBObUVXWjdZTFZiWGhUVG02dmphZ3JwRm1VeHNPODUxNkYwRDRq?= =?utf-8?B?ZFpXclhXbDVaMEtYc1M0WjB5NWpYcVFCWFZRMGRpZFNhL2xKZ3g3cnFFa09j?= =?utf-8?B?L1hxTVRMeTAwbHRMbjdpS1BYc3hmc2VBYXplM2R0SmtvQVNoU21ZcnJzZmFR?= =?utf-8?B?clphbGN1WWtnYmlmQWMvVmhsYWxpOSs5UFpMT3drN25RaVpERWk5ZmU0UlJm?= =?utf-8?B?L2JVODUvd1VTTW5xOWQ3ODA2WmhtTXhXNFpLUCs4K3RYSlZsZG9wTzJLK0NF?= =?utf-8?B?R1h2VlJqeWRXUTBjc2h3cnl5QmowVjJVTGdXUGZkcityZjZrVEhqaW5Ba1dt?= =?utf-8?B?RXpMczdaVnM1d0V1REQvWVNJVTV2c0JEMkYrNmhPVUxGS3JQM2Ezc05XTVRv?= =?utf-8?B?L2VCVjRncC9PcS9FdCtaMEh2dkxVTDh4VDA5aWJxN3NoQlV2anBxVktkMmg2?= =?utf-8?B?ZXBLeXlKdmxTV2ltMXVzZ3RBWkdLSW42b0xKK25sNzlZVjlOSU50ZmlHWWtq?= =?utf-8?B?ejZLR2Fjd3dMSW9maDFOcVRzK2RTRmVUdzFhVk1COVV1Sk1hMVdoQnJVU0ta?= =?utf-8?B?YVJHamQ4cDRQemFURWs2OURITXl3NGF2ZjNtTGtQYU1mMzFzRWtDQmlQdXVn?= =?utf-8?B?N3dYK2xkTHI0dndNd3BUaWxBSjBOdVVSLzRRaVY5NUZSK3d4Sm5OVG1JY05u?= =?utf-8?B?dzJiZm4wUzhKcWRZSFhXSUd5MU1sYjdlNUI5K1ltOXpEelJyYWcrRFhSR2xx?= =?utf-8?B?WHAwdDZ3Zmtpei9NNWR5cHd0LzFMSGVUYzkyb1Q2ZndNUksrc3lkMUdMZkds?= =?utf-8?B?TWYwNzIyQ3o4Uy9Xc08vWk8vWDlFblpBWWZnS1RDYlJTR25JSm0vaHQ4T3Bh?= =?utf-8?B?Mlc3Tm1CNVdJMDVaYnFrdHBmM2N1SjhTODVFc2RmOHVmaGNxMG4zR2RhL0NV?= =?utf-8?B?Z2szMHdQTm9BVHN3WkNZeVQ5WERiWTE5eXVuQlU5Y3JZT3FhTUs3ZUxhWXly?= =?utf-8?B?eXh1YzVaK2dzQitWVFAzWE9PNEJ6dWk4U2p1UVFEREZHdlU3ZWYxbkJPcERS?= =?utf-8?B?ZTJlOXBIRUQ5M0J2LytuMllIRTZ5ZUlCVVlCQ2pmWmJrekFRaUhoMzE4YW5s?= =?utf-8?B?RlVhU3Vna0IyYWdhbEVET1ZISFBlVVNhSmZnWU1LNUJrL3BXTFQ1WTlNYXpt?= =?utf-8?B?K2V6RlVZL0p3cEdLOG9VSHkyNVdDNEtMTVNKZ1VXdGsybEJDQ0wxRTJyd2JS?= =?utf-8?B?dC9hZWpsdHJ1SFM1czBHOEZTUlovdWNwTG5GOU52Q09mTkM5R3FqNE5yS3V2?= =?utf-8?B?dFplWjNJOFJLT0Z0aUN6R0lJai9MaXM1bHhhcnI3RS9NT2dvejhORG8ydHpZ?= =?utf-8?B?UGlWRGRmbzQxTnRhQkpiR1MvN1g4M3lEbnlaaU1FUy9XYThJL0R5eWg0eElx?= =?utf-8?B?R05PTzdGamNWUXhsN1MvUGYra3AvVnFPN1FsTEhOMUdIMEZnc0VkZmx5TzhG?= =?utf-8?B?MU1WSmE3T1R0MCtuSlpCTndpTUsxOVpYVlcyK2tXS0RsbmQrQTBNMkxNNWdh?= =?utf-8?B?YXJVTjlsdWdTN3o0RjBHUGMybGlxNVRKN0ZBVGZhc0tvanByVk1MSitoVEth?= =?utf-8?B?VUpHMnk3eVllM2xRMWVFTmVtWnRsa2xKeTlaNE5LYkZJQWFJWTBheHlrMVps?= =?utf-8?B?LzR3b05YQVpWM1c5RDhITmZZSGl6ODBtOFc3UXQxaHRHOXFjcGlQTDl6dGI3?= =?utf-8?B?cUlIUFJjSTd1NmsrcjdqY1VwZEp3PT0=?= 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: 90899b1a-d032-42d3-b1de-08d9aedc7e34 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 23:53:48.0916 (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: +IxAGjBjsLhWK8WIDXMDn7+xSuJvxzuJ3qO/kfFX2hbzaP/AEF6Rf+e7hEEuv8QdS5mT2Ga8tTR8y2Uiu6TJvfVkhT9xV97i6zVbFGMmQ4w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4681 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 SGkgTWljaGFlbCwNCg0KVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbi4NCg0KSXQgd291bGQg YmUgZ29vZCB0byBtYWtlIGl0IGNsZWFyIHRoYXQgVW5jcnVzdGlmeUNoZWNrIGlzIGJ5IGRlZmF1 bHQgZW5hYmxlZA0KZm9yIGFsbCBwYWNrYWdlcyBhbmQgdGhhdCB0aGUgb25seSB3YXkgdG8gZGlz YWJsZWQgaXQgaXMgdG8gYWRkIHRoYXQgc2VjdGlvbg0KdG8gdGhlIHBhY2thZ2UgWUFNTCBmaWxl cyBhbmQgc2V0IEF1ZGl0T25seSB0byBUcnVlLg0KDQpQcm9iYWJseSBiZXN0IHRvIGFkZCB0aGlz IGNsYXJpZmljYXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgUmVhZG1lLm1kIGluDQp0aGUgLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeUNoZWNrIGRpcmVjdG9yeS4NCg0KVGhhbmtzLA0KDQpNaWtlDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWljaGFlbCBLdWJhY2tpIDxt aWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAy MywgMjAyMSAzOjE3IFBNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogTGltaW5nIEdhbyA8Z2Fv bGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29m dC5jb20+OyBCcmV0IEJhcmtlbGV3DQo+IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+ IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0gLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeTogQWRkIFVuY3J1c3RpZnkgcGx1Z2luDQo+IA0KPiBIaSBNaWtlLA0KPiANCj4g SSdtIGZpbmUgd2l0aCBjaGFuZ2luZyB0aGUgQ0kgcGx1Z2luIG5hbWUgdG8gIlVuY3J1c3RpZnlD aGVjayIuIEl0IGRvZXMNCj4gb25seSBjaGVjayBmaWxlcy4gSSB3aWxsIG1ha2UgdGhpcyBjaGFu Z2UgaW4gYSBWMy4NCj4gDQo+IFRoYXQgc2VjdGlvbiBkb2VzIG5vdCBuZWVkIHRvIGJlIHByZXNl bnQuIEl0IGlzIGp1c3QgZ2l2aW5nIGFuIGV4YW1wbGUNCj4gb2YgaG93IHRvIGFkZCB0aGUgc2Vj dGlvbiBhbmQgaG93IHRvIHNldCB0aGUgdmFyaW91cyBjb25maWcgb3B0aW9ucw0KPiBhdmFpbGFi bGUuDQo+IA0KPiBUaGFua3MsDQo+IE1pY2hhZWwNCj4gDQo+IE9uIDExLzIzLzIwMjEgNDo1MSBQ TSwgS2lubmV5LCBNaWNoYWVsIEQgd3JvdGU6DQo+ID4gSGkgTWljaGFlbCwNCj4gPg0KPiA+IElu IG9yZGVyIHRvIG1hdGNoIHNvbWUgb2YgdGhlIG90aGVyIG5hbWluZyBjb252ZW50aW9ucyBvZiBw bHVnaW5zLCBzaG91bGQNCj4gPiB0aGlzIHBsdWdpbiBiZSBjYWxsZWQgIlVuY3J1c3RpZnlDaGVj ayIuICBJdCBvbmx5IGNoZWNrcyBpZiB0aGUgc291cmNlcw0KPiA+IG1hdGNoIHRoZSBleHBlY3Rl ZCBmb3JtYXQuICBJdCBkb2VzIG5vdCBhY3R1YWxseSBjaGFuZ2UgdGhlIGZvcm1hdCBvZg0KPiA+ IGFueSBzb3VyY2UgZmlsZXMgd2hlbiBlaXRoZXIgcnVuIGxvY2FsbHkgb3IgYnkgRURLIElJIENJ LiAgUmlnaHQ/DQo+ID4NCj4gPiBBbHNvLCBkb2VzIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBuZWVk IHRvIGJlIGFkZGVkIHRvIGV2ZXJ5IHBhY2thZ2UgWUFNTA0KPiA+IGZpbGUgaW4gdGhlIGVkazIg cmVwb3NpdG9yeSBpbiBvcmRlciBmb3IgdGhlIFVuY3J1c2l0ZnkgcGx1Z2luIHRvDQo+ID4gYmUg cnVuIGJ5IEVESyBJSSBDST8gIElmIHNvLCBzaG91bGQgdGhvc2UgWUFNTCBmaWxlIHVwZGF0ZXMg YmUgcGFydA0KPiA+IG9mIHRoaXMgcGF0Y2ggc2VyaWVzIG9yIGEgZGlmZmVyZW50IHBhdGNoIHNl cmllcz8NCj4gPg0KPiA+PiArYGBgIHlhbWwNCj4gPj4gKyAgIlVuY3J1c3RpZnkiOiB7DQo+ID4+ ICsgICAgICAiQXVkaXRPbmx5IjogRmFsc2UsICAgICAgICAgICAjIERvbid0IGZhaWwgdGhlIGJ1 aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMuIEp1c3QgbG9nIHRoZW0uDQo+ID4+ICsgICAgICAiT3V0 cHV0RmlsZURpZmZzIjogRmFsc2UgICAgICAjIE91dHB1dCBjaHVua3Mgb2YgZm9ybWF0dGluZyBk aWZmcyBpbiB0aGUgdGVzdCBjYXNlIGxvZy4NCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdp biBvbiB2ZXJ5IGxhcmdlIHBhY2thZ2VzLg0KPiA+PiArICAgICAgIkNvbmZpZ0ZpbGVQYXRoIjog IiIsICAgICAgICAgIyBDdXN0b20gcGF0aCB0byBhbiBVbmNydXN0aWZ5IGNvbmZpZyBmaWxlLiBQ YXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlLg0KPiA+PiArICAgICAgIklnbm9yZVN0YW5k YXJkUGF0aHMiOiBbXSwgICAgIyBTdGFuZGFyZCBQbHVnaW4gZGVmaW5lZCBwYXRocyB0aGF0IHNo b3VsZCBiZSBpZ25vcmVkLg0KPiA+PiArICAgICAgIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiOiBb XSAgIyBBZGRpdGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1hdHRpbmcgKHdpbGRjYXJkcyBzdXBw b3J0ZWQpLg0KPiA+PiArICB9DQo+ID4+ICtgYGANCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0KPiA+ IE1pa2UNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBN aWNoYWVsIEt1YmFja2kNCj4gPj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjMsIDIwMjEgMTow NiBQTQ0KPiA+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gQ2M6IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj47IFNlYW4gQnJvZ2FuDQo+ID4+IDxzZWFuLmJyb2dhbkBtaWNyb3Nv ZnQuY29tPjsgQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+ PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5j cnVzdGlmeTogQWRkIFVuY3J1c3RpZnkgcGx1Z2luDQo+ID4+DQo+ID4+IEZyb206IE1pY2hhZWwg S3ViYWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ID4+DQo+ID4+IFJFRjpo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDgNCj4gPj4N Cj4gPj4gQWRkcyBhIG5ldyBDSSBwbHVnaW4gZm9yIFVuY3J1c3RpZnkuIFRoaXMgaXMgdXNlZCB0 byBjaGVjaw0KPiA+PiBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBvZiBzb3VyY2UgY29kZSB0 byB0aGUgRURLIElJIEMgQ29kaW5nDQo+ID4+IFN0YW5kYXJkcyBTcGVjaWZpY2F0aW9uLg0KPiA+ Pg0KPiA+PiBBbiBleHRlcm5hbCBkZXBlbmRlbmN5IGlzIGFkZGVkIGluIHRoZSBwbHVnaW4gZGly ZWN0b3J5IHRvIHJldHJpZXZlDQo+ID4+IHRoZSBVbmNydXN0aWZ5IGV4ZWN1dGFibGUuIEN1cnJl bnRseSwgdGhlIGV4ZWN1dGFibGUgaXMgZnJvbSBhbiBlZGsyDQo+ID4+IGZvcmsgb2YgdGhlIGFw cGxpY2F0aW9uLg0KPiA+Pg0KPiA+PiBUaGUgZGVmYXVsdCBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRp b24gZmlsZXMgYXJlIGFkZGVkIGluIHRoZSBwbHVnaW4NCj4gPj4gZGlyZWN0b3J5LiBBZGRpdGlv bmFsIGRldGFpbHMgYXJlIGluIHRoZSBSZWFkbWUubWQgZmlsZSBhZGRlZCBpbg0KPiA+PiB0aGUg VW5jcnVzdGlmeSBwbHVnaW4gZGlyZWN0b3J5Lg0KPiA+Pg0KPiA+PiBOb3RlOiBBIFYzIGlzIHBs YW5uZWQgdGhhdCB3aWxsIGZhaWwgdGhlIFVuY3J1c3RpZnkgcGx1Z2luIHJlc3VsdHMNCj4gPj4g aWYgYSBmaWxlIG9yIGZ1bmN0aW9uIHRlbXBsYXRlIGhlYWRlciBpcyBmb3VuZCBpbiBhIGZvcm1h dHRlZCBmaWxlLg0KPiA+PiBUaGlzIHdpbGwgYmUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGFk ZGVkIGluIHRoZSBwbHVnaW4gYW5kIHdpbGwNCj4gPj4gbm90IGNoYW5nZSB0aGUgd2F5IFVuY3J1 c3RpZnkgaXMgaW52b2tlZC4NCj4gPj4NCj4gPj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+PiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5 b3NvZnQuY29tLmNuPg0KPiA+PiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29m dC5jb20+DQo+ID4+IENjOiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5j b20+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5rdWJhY2tp QG1pY3Jvc29mdC5jb20+DQo+ID4+IC0tLQ0KPiA+Pg0KPiA+PiBOb3RlczoNCj4gPj4gICAgICBW MiBjaGFuZ2VzOg0KPiA+Pg0KPiA+PiAgICAgIDEuIENoYW5nZWQgcGx1Z2luIHRlbXAgZGlyZWN0 b3J5IHRvDQo+ID4+ICAgICAgICAgQnVpbGQvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeQ0KPiA+ PiAgICAgIDIuIEFkZGVkIFRDQlogUkVGIGluIHBhdGNoIGNvbW1pdCBtZXNzYWdlDQo+ID4+DQo+ ID4+ICAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9SZWFkbWUubWQgICAgICAgICAgICAgICAg ICAgfCAxMTYgKysrKw0KPiA+PiAgIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlm eS5weSAgICAgICAgICAgICAgIHwgNTU1ICsrKysrKysrKysrKysrKysrKysrDQo+ID4+ICAgLnB5 dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dCAgICAgfCAgIDkg Kw0KPiA+PiAgIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9mdW5jdGlvbl9oZWFk ZXIudHh0IHwgIDE1ICsNCj4gPj4gICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3Rp ZnkuY2ZnICAgICAgICAgICAgICB8IDQ2NiArKysrKysrKysrKysrKysrDQo+ID4+ICAgLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4dF9kZXAueWFtbCAgICAgfCAgMTYgKw0K PiA+PiAgIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwg ICAgIHwgIDEyICsNCj4gPj4gICAucHl0b29sL1JlYWRtZS5tZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNCArDQo+ID4+ICAgOCBmaWxlcyBjaGFuZ2VkLCAxMTkzIGlu c2VydGlvbnMoKykNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1 c3RpZnkvUmVhZG1lLm1kIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9SZWFkbWUubWQNCj4g Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi42ZmNiNmU1 MDQ3MmQNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNy dXN0aWZ5L1JlYWRtZS5tZA0KPiA+PiBAQCAtMCwwICsxLDExNiBAQA0KPiA+PiArIyBVbmNydXN0 aWZ5IFBsdWdpbg0KPiA+PiArDQo+ID4+ICtUaGlzIENpQnVpbGRQbHVnaW4gc2NhbnMgYWxsIHRo ZSBmaWxlcyBpbiBhIGdpdmVuIHBhY2thZ2UgYW5kIGNoZWNrcyBmb3IgY29kaW5nIHN0YW5kYXJk IGNvbXBsaWFuY2UgaXNzdWVzLg0KPiA+PiArDQo+ID4+ICtUaGlzIHBsdWdpbiByZXF1aXJlcyB0 aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIFVuY3J1c3RpZnkgZXhlY3V0YWJsZSB0aGF0IHNo b3VsZCBiZSB1c2VkIGZvciB0aGlzIHBsdWdpbiB0bw0KPiA+PiArYmUgc3BlY2lmaWVkIGluIGFu IGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGBVTkNSVVNUSUZZX0NJX1BBVEhgLiBUaGlzIHVu aXF1ZSB2YXJpYWJsZSBuYW1lIGlzIHVzZWQgdG8gYXZvaWQNCj4gY29uZnVzaW9uDQo+ID4+ICt3 aXRoIG90aGVyIHBhdGhzIHRvIFVuY3J1c3RpZnkgd2hpY2ggbWlnaHQgbm90IGJlIHRoZSBleHBl Y3RlZCBidWlsZCBmb3IgdXNlIGJ5IHRoaXMgcGx1Z2luLg0KPiA+PiArDQo+ID4+ICtCeSBkZWZh dWx0LCBhbiBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lZCAidW5jcnVzdGlmeS5j ZmciIGxvY2F0ZWQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBwbHVnaW4gaXMNCj4gPj4g K3VzZWQuIFRoZSB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGRlbiB0byBhIHBhY2thZ2Utc3BlY2lmaWMg cGF0aCB3aXRoIHRoZSBgQ29uZmlnRmlsZVBhdGhgIGNvbmZpZ3VyYXRpb24gZmlsZSBvcHRpb24u DQo+ID4+ICsNCj4gPj4gKyogVW5jcnVzdGlmeSBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlv bjogaHR0cHM6Ly9naXRodWIuY29tL3VuY3J1c3RpZnkvdW5jcnVzdGlmeQ0KPiA+PiArKiBQcm9q ZWN0IE11IFVuY3J1c3RpZnkgZm9yayBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbjogaHR0 cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5DQo+ID4+ICsNCj4gPj4gKyMj IEZpbGVzIENoZWNrZWQgaW4gYSBQYWNrYWdlDQo+ID4+ICsNCj4gPj4gK0J5IGRlZmF1bHQsIHRo aXMgcGx1Z2luIHdpbGwgZGlzY292ZXIgYWxsIGZpbGVzIGluIHRoZSBwYWNrYWdlIHdpdGggdGhl IGZvbGxvd2luZyBkZWZhdWx0IHBhdGhzOg0KPiA+PiArDQo+ID4+ICtgYGBweXRob24NCj4gPj4g K1sNCj4gPj4gKyMgQyBzb3VyY2UNCj4gPj4gKyIqLmMiLA0KPiA+PiArIiouaCINCj4gPj4gK10N Cj4gPj4gK2BgYA0KPiA+PiArDQo+ID4+ICtGcm9tIHRoaXMgbGlzdCBvZiBmaWxlcywgYW55IGZp bGVzIGlnbm9yZWQgYnkgR2l0IG9yIHJlc2lkaW5nIGluIGEgR2l0IHN1Ym1vZHVsZSB3aWxsIGJl IHJlbW92ZWQuIElmIEdpdCBpcyBub3QNCj4gPj4gK2ZvdW5kLCBzdWJtb2R1bGVzIGFyZSBub3Qg Zm91bmQsIG9yIGlnbm9yZWQgZmlsZXMgYXJlIG5vdCBmb3VuZCBubyBjaGFuZ2VzIGFyZSBtYWRl IHRvIHRoZSBsaXN0IG9mIGRpc2NvdmVyZWQgZmlsZXMuDQo+ID4+ICsNCj4gPj4gK1RvIGNvbnRy b2wgdGhlIHBhdGhzIGNoZWNrZWQgaW4gYSBnaXZlbiBwYWNrYWdlLCByZXZpZXcgdGhlIGNvbmZp Z3VyYXRpb24gb3B0aW9ucyBkZXNjcmliZWQgaW4gdGhpcyBmaWxlLg0KPiA+PiArDQo+ID4+ICsj IyBDb25maWd1cmF0aW9uDQo+ID4+ICsNCj4gPj4gK1RoZSBwbHVnaW4gY2FuIGJlIGNvbmZpZ3Vy ZWQgd2l0aCBhIGZldyBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuDQo+ID4+ICsNCj4g Pj4gK2BgYCB5YW1sDQo+ID4+ICsgICJVbmNydXN0aWZ5Ijogew0KPiA+PiArICAgICAgIkF1ZGl0 T25seSI6IEZhbHNlLCAgICAgICAgICAgIyBEb24ndCBmYWlsIHRoZSBidWlsZCBpZiB0aGVyZSBh cmUgZXJyb3JzLiBKdXN0IGxvZyB0aGVtLg0KPiA+PiArICAgICAgIk91dHB1dEZpbGVEaWZmcyI6 IEZhbHNlICAgICAgIyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhlIHRl c3QgY2FzZSBsb2cuDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IFRoaXMgY2FuIHNpZ25pZmljYW50bHkgc2xvdyBkb3duIHRoZSBwbHVnaW4gb24gdmVyeSBsYXJn ZSBwYWNrYWdlcy4NCj4gPj4gKyAgICAgICJDb25maWdGaWxlUGF0aCI6ICIiLCAgICAgICAgICMg Q3VzdG9tIHBhdGggdG8gYW4gVW5jcnVzdGlmeSBjb25maWcgZmlsZS4gUGF0aCBpcyByZWxhdGl2 ZSB0byB0aGUgcGFja2FnZS4NCj4gPj4gKyAgICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10s ICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3Jl ZC4NCj4gPj4gKyAgICAgICJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIjogW10gICMgQWRkaXRpb25h bCBwYXRocyB0byBjaGVjayBmb3JtYXR0aW5nICh3aWxkY2FyZHMgc3VwcG9ydGVkKS4NCj4gPj4g KyAgfQ0KPiA+PiArYGBgDQo+ID4+ICsNCj4gPj4gKyMjIyBgQWRkaXRpb25hbEluY2x1ZGVQYXRo c2ANCj4gPj4gKw0KPiA+PiArQSBwYWNrYWdlIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW4gc3BlY2lm eSBhbnkgYWRkaXRpb25hbCBwYXRocyB0byBiZSBpbmNsdWRlZCB3aXRoIHRoaXMgb3B0aW9uLg0K PiA+PiArDQo+ID4+ICtBdCB0aGlzIHRpbWUsIGl0IGlzIHJlY29tbWVuZGVkIGFsbCBmaWxlcyBy dW4gYWdhaW5zdCB0aGUgcGx1Z2luIGJlIHdyaXR0ZW4gaW4gdGhlIEMgb3IgQysrIGxhbmd1YWdl Lg0KPiA+PiArDQo+ID4+ICsjIyMgYEF1ZGl0T25seWANCj4gPj4gKw0KPiA+PiArYEJvb2xlYW5g IC0gRGVmYXVsdCBpcyBgRmFsc2VgLg0KPiA+PiArDQo+ID4+ICtJZiBgVHJ1ZWAsIHJ1biB0aGUg dGVzdCBpbiBhbiAiYXVkaXQgb25seSBtb2RlIiB3aGljaCB3aWxsIGxvZyBhbGwgZXJyb3JzIGJ1 dCBpbnN0ZWFkIG9mIGZhaWxpbmcgdGhlIGJ1aWxkLCBpdCB3aWxsDQo+IHNldA0KPiA+PiArdGhl IHRlc3QgYXMgc2tpcHBlZC4gVGhpcyBhbGxvd3MgdmlzaWJpbGl0eSBpbnRvIHRoZSBmYWlsdXJl cyB3aXRob3V0IGJyZWFraW5nIHRoZSBidWlsZC4NCj4gPj4gKw0KPiA+PiArIyMjIGBDb25maWdG aWxlUGF0aGANCj4gPj4gKw0KPiA+PiArYFN0cmluZ2AgLSBEZWZhdWx0IGlzIGAidW5jcnVzdGlm eS5jZmciYA0KPiA+PiArDQo+ID4+ICtXaGVuIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnIGZpbGUs IHRoaXMgaXMgYSBwYWNrYWdlIHJlbGF0aXZlIHBhdGggdG8gdGhlIFVuY3J1c3RpZnkgY29uZmln dXJhdGlvbiBmaWxlLg0KPiA+PiArDQo+ID4+ICsjIyMgYElnbm9yZVN0YW5kYXJkUGF0aHNgDQo+ ID4+ICsNCj4gPj4gK1RoaXMgcGx1Z2luIGJ5IGRlZmF1bHQgd2lsbCBjaGVjayB0aGUgYmVsb3cg c3RhbmRhcmQgcGF0aHMuIEEgcGFja2FnZSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIHNwZWNpZnkg YW55IG9mIHRoZXNlDQo+IHBhdGhzDQo+ID4+ICt0byBiZSBpZ25vcmVkLg0KPiA+PiArDQo+ID4+ ICtgYGBweXRob24NCj4gPj4gK1sNCj4gPj4gKyMgQyBzb3VyY2UNCj4gPj4gKyIqLmMiLA0KPiA+ PiArIiouaCINCj4gPj4gK10NCj4gPj4gK2BgYA0KPiA+PiArDQo+ID4+ICsjIyMgYE91dHB1dEZp bGVEaWZmc2ANCj4gPj4gKw0KPiA+PiArYEJvb2xlYW5gIC0gRGVmYXVsdCBpcyBgRmFsc2VgLg0K PiA+PiArDQo+ID4+ICtJZiBgVHJ1ZWAsIG91dHB1dCBkaWZmcyBvZiBmb3JtYXR0aW5nIGNoYW5n ZXMgaW50byB0aGUgdGVzdCBjYXNlIGxvZy4gVGhpcyBpcyBoZWxwZnVsIHRvIGV4YWN0bHkgdW5k ZXJzdGFuZCB3aGF0DQo+IGNoYW5nZXMNCj4gPj4gK25lZWQgdG8gYmUgbWFkZSB0byB0aGUgc291 cmNlIGNvZGUgaW4gb3JkZXIgdG8gZml4IGEgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNz dWUuDQo+ID4+ICsNCj4gPj4gK05vdGUgdGhhdCBjYWxjdWxhdGluZyB0aGUgZmlsZSBkaWZmcyBv biBhIHZlcnkgbGFyZ2Ugc2V0IG9mIG9mIHJlc3VsdHMgKGUuZy4gPjEwMCBmaWxlcykgY2FuIHNp Z25pZmljYW50bHkgc2xvdyBkb3duDQo+ID4+ICtwbHVnaW4gZXhlY3V0aW9uLg0KPiA+PiArDQo+ ID4+ICsjIyMgYFNraXBHaXRFeGNsdXNpb25zYA0KPiA+PiArDQo+ID4+ICtgQm9vbGVhbmAgLSBE ZWZhdWx0IGlzIGBGYWxzZWAuDQo+ID4+ICsNCj4gPj4gK0J5IGRlZmF1bHQsIGZpbGVzIGluIHBh dGhzIG1hdGNoZWQgaW4gYSAuZ2l0aWdub3JlIGZpbGUgb3IgYSByZWNvZ25pemVkIGdpdCBzdWJt b2R1bGUgYXJlIGV4Y2x1ZGVkLiBJZiB0aGlzIG9wdGlvbg0KPiA+PiAraXMgYFRydWVgLCB0aGUg cGx1Z2luIHdpbGwgbm90IGF0dGVtcHQgdG8gcmVjb2duaXplIHRoZXNlIGZpbGVzIGFuZCBleGNs dWRlIHRoZW0uDQo+ID4+ICsNCj4gPj4gKyMjIEhpZ2gtTGV2ZWwgUGx1Z2luIE9wZXJhdGlvbg0K PiA+PiArDQo+ID4+ICtUaGlzIHBsdWdpbiBnZW5lcmF0ZXMgdHdvIG1haW4gc2V0cyBvZiB0ZW1w b3JhcnkgZmlsZXM6DQo+ID4+ICsNCj4gPj4gKyAgMS4gQSB3b3JraW5nIGRpcmVjdG9yeSBpbiB0 aGUgZGlyZWN0b3J5IGBCdWlsZC8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5YA0KPiA+PiArICAy LiBGb3IgZWFjaCBzb3VyY2UgZmlsZSB3aXRoIGZvcm1hdHRpbmcgZXJyb3JzLCBhIHNpYmxpbmcg ZmlsZSB3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1Z2luYCBleHRlbnNpb24NCj4gPj4gKw0KPiA+ PiArVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGNvbnRhaW5zIHRlbXBvcmFyeSBmaWxlcyB1bmlxdWUg dG8gb3BlcmF0aW9uIG9mIHRoZSBwbHVnaW4uIEFsbCBvZiB0aGVzZSBmaWxlcyBhcmUgcmVtb3Zl ZCBvbg0KPiA+PiArZXhpdCBvZiB0aGUgcGx1Z2luIGluY2x1ZGluZyBzdWNjZXNzZnVsIG9yIHVu c3VjY2Vzc2Z1bCBleGVjdXRpb24gKHN1Y2ggYXMgYSBQeXRob24gZXhjZXB0aW9uIG9jY3Vycmlu ZykuIElmIGZvciBhbnkNCj4gPj4gK3JlYXNvbiwgYW55IGZpbGVzIGluIHRoZSBwYWNrYWdlIGV4 aXN0IHByaW9yIHRvIHJ1bm5pbmcgdGhlIHBsdWdpbiB3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1 Z2luYCBleHRlbnNpb24sIHRoZSBwbHVnaW4NCj4gPj4gK3dpbGwgaW5mb3JtIHRoZSB1c2VyIHRv IHJlbW92ZSB0aGVzZSBmaWxlcyBhbmQgZXhpdCBiZWZvcmUgcnVubmluZyBVbmNydXN0aWZ5LiBU aGlzIGlzIHRvIGVuc3VyZSB0aGUgYWNjdXJhY3kgb2YgdGhlDQo+ID4+ICtyZXN1bHRzIHJlcG9y dGVkIGZyb20gZWFjaCBleGVjdXRpb24gaW5zdGFuY2Ugb2YgdGhlIHBsdWdpbi4NCj4gPj4gKw0K PiA+PiArVGhlIHBsdWdpbiBkZXRlcm1pbmVzIHRoZSBsaXN0IG9mIHJlbGV2YW50IGZpbGVzIHRv IGNoZWNrIHdpdGggVW5jcnVzdGlmeSBhbmQgdGhlbiBpbnZva2VzIFVuY3J1c3RpZnkgd2l0aCB0 aGF0IGZpbGUNCj4gPj4gK2xpc3QuIEZvciBhbnkgZmlsZXMgbm90IGNvbXBsaWFudCB0byB0aGUg Y29uZmlndXJhdGlvbiBmaWxlIHByb3ZpZGVkLCBVbmNydXN0aWZ5IHdpbGwgZ2VuZXJhdGUgYSBj b3JyZXNwb25kaW5nIGZpbGUNCj4gPj4gK3dpdGggdGhlIGAudW5jcnVzdGlmeV9wbHVnaW5gIGV4 dGVuc2lvbi4gVGhlIHBsdWdpbiBkaXNjb3ZlcnMgYWxsIG9mIHRoZXNlIGZpbGVzLiBJZiBhbnkg c3VjaCBmaWxlcyBhcmUgcHJlc2VudCwgdGhpcw0KPiA+PiAraW5kaWNhdGVzIGEgZm9ybWF0dGlu ZyBpc3N1ZSB3YXMgZm91bmQgYW5kIHRoZSB0ZXN0IGlzIG1hcmtlZCBmYWlsZWQgKHVubGVzcyBg QXVkaXRPbmx5YCBtb2RlIGlzIGVuYWJsZWQpLg0KPiA+PiArDQo+ID4+ICtUaGUgdGVzdCBjYXNl IGxvZyB3aWxsIGNvbnRhaW4gYSByZXBvcnQgb2Ygd2hpY2ggZmlsZXMgZmFpbGVkIHRvIGZvcm1h dCBwcm9wZXJseSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gcnVuIFVuY3J1c3RpZnkNCj4gPj4gK2Fn YWluc3QgdGhlIGZpbGUgbG9jYWxseSB0byBmaXggdGhlIGlzc3VlLiBJZiB0aGUgYE91dHB1dEZp bGVEaWZmc2AgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgc2V0IHRvIGBUcnVlYCwgdGhlIHBsdWdp bg0KPiA+PiArd2lsbCBvdXRwdXQgZGlmZiBjaHVua3MgZm9yIGFsbCBjb2RlIGZvcm1hdHRpbmcg aXNzdWVzIGluIHRoZSB0ZXN0IGNhc2UgbG9nLg0KPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeS9VbmNydXN0aWZ5LnB5IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlm eS9VbmNydXN0aWZ5LnB5DQo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAw MDAwMDAwMDAwMC4uOGJkNjczZTg1MjNlDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIv LnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9VbmNydXN0aWZ5LnB5DQo+ID4+IEBAIC0wLDAgKzEs NTU1IEBADQo+ID4+ICsjIEBmaWxlIFVuY3J1c3RpZnkucHkNCj4gPj4gKyMNCj4gPj4gKyMgQW4g ZWRrMi1weXRvb2wgYmFzZWQgcGx1Z2luIHdyYXBwZXIgZm9yIFVuY3J1c3RpZnkNCj4gPj4gKyMN Cj4gPj4gKyMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ID4+ICsjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+ICsjIw0KPiA+ PiAraW1wb3J0IGRpZmZsaWINCj4gPj4gK2ltcG9ydCBlcnJubw0KPiA+PiAraW1wb3J0IGxvZ2dp bmcNCj4gPj4gK2ltcG9ydCBvcw0KPiA+PiAraW1wb3J0IHBhdGhsaWINCj4gPj4gK2ltcG9ydCBz aHV0aWwNCj4gPj4gK2ltcG9ydCB0aW1laXQNCj4gPj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJv bm1lbnQgaW1wb3J0IHZlcnNpb25fYWdncmVnYXRvcg0KPiA+PiArZnJvbSBlZGsydG9vbGV4dC5l bnZpcm9ubWVudC5wbHVnaW5fbWFuYWdlciBpbXBvcnQgUGx1Z2luTWFuYWdlcg0KPiA+PiArZnJv bSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC5wbHVnaW50eXBlcy5jaV9idWlsZF9wbHVnaW4gaW1w b3J0IElDaUJ1aWxkUGx1Z2luDQo+ID4+ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50LnBs dWdpbnR5cGVzLnVlZmlfaGVscGVyX3BsdWdpbiBpbXBvcnQgSGVscGVyRnVuY3Rpb25zDQo+ID4+ ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50LnZhcl9kaWN0IGltcG9ydCBWYXJEaWN0DQo+ ID4+ICtmcm9tIGVkazJ0b29sbGliLmxvZy5qdW5pdF9yZXBvcnRfZm9ybWF0IGltcG9ydCBKdW5p dFJlcG9ydFRlc3RDYXNlDQo+ID4+ICtmcm9tIGVkazJ0b29sbGliLnVlZmkuZWRrMi5wYXRoX3V0 aWxpdGllcyBpbXBvcnQgRWRrMlBhdGgNCj4gPj4gK2Zyb20gZWRrMnRvb2xsaWIudXRpbGl0eV9m dW5jdGlvbnMgaW1wb3J0ICBSdW5DbWQNCj4gPj4gK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPDQo+ ID4+ICtmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBUdXBsZQ0KPiA+PiArDQo+ ID4+ICsjDQo+ID4+ICsjIFByb3ZpZGUgbW9yZSB1c2VyIGZyaWVuZGx5IG1lc3NhZ2VzIGZvciBj ZXJ0YWluIHNjZW5hcmlvcw0KPiA+PiArIw0KPiA+PiArY2xhc3MgVW5jcnVzdGlmeUV4Y2VwdGlv bihFeGNlcHRpb24pOg0KPiA+PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlLCBleGl0 X2NvZGUpOg0KPiA+PiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UpDQo+ID4+ICsg ICAgICAgIHNlbGYuZXhpdF9jb2RlID0gZXhpdF9jb2RlDQo+ID4+ICsNCj4gPj4gKw0KPiA+PiAr Y2xhc3MgVW5jcnVzdGlmeUFwcEVudlZhck5vdEZvdW5kRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNl cHRpb24pOg0KPiA+PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToNCj4gPj4gKyAg ICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTAxKQ0KPiA+PiArDQo+ID4+ICsNCj4g Pj4gK2NsYXNzIFVuY3J1c3RpZnlBcHBWZXJzaW9uRXJyb3JFeGNlcHRpb24oVW5jcnVzdGlmeUV4 Y2VwdGlvbik6DQo+ID4+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiA+PiAr ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMDIpDQo+ID4+ICsNCj4gPj4gKw0K PiA+PiArY2xhc3MgVW5jcnVzdGlmeUFwcEV4ZWN1dGlvbkV4Y2VwdGlvbihVbmNydXN0aWZ5RXhj ZXB0aW9uKToNCj4gPj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ID4+ICsg ICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEwMykNCj4gPj4gKw0KPiA+PiArDQo+ ID4+ICtjbGFzcyBVbmNydXN0aWZ5U3RhbGVQbHVnaW5Gb3JtYXR0ZWRGaWxlc0V4Y2VwdGlvbihV bmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gPj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2Fn ZSk6DQo+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEyMCkNCj4gPj4g Kw0KPiA+PiArDQo+ID4+ICtjbGFzcyBVbmNydXN0aWZ5SW5wdXRGaWxlQ3JlYXRpb25FcnJvckV4 Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gPj4gKyAgICBkZWYgX19pbml0X18oc2Vs ZiwgbWVzc2FnZSk6DQo+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEy MSkNCj4gPj4gKw0KPiA+PiArY2xhc3MgVW5jcnVzdGlmeUludmFsaWRJZ25vcmVTdGFuZGFyZFBh dGhzRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+PiArICAgIGRlZiBfX2luaXRf XyhzZWxmLCBtZXNzYWdlKToNCj4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdl LCAtMTIyKQ0KPiA+PiArDQo+ID4+ICtjbGFzcyBVbmNydXN0aWZ5R2l0SWdub3JlRmlsZUV4Y2Vw dGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gPj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwg bWVzc2FnZSk6DQo+ID4+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTE0MCkN Cj4gPj4gKw0KPiA+PiArDQo+ID4+ICtjbGFzcyBVbmNydXN0aWZ5R2l0U3VibW9kdWxlRXhjZXB0 aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiA+PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBt ZXNzYWdlKToNCj4gPj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTQxKQ0K PiA+PiArDQo+ID4+ICsNCj4gPj4gK2NsYXNzIFVuY3J1c3RpZnkoSUNpQnVpbGRQbHVnaW4pOg0K PiA+PiArICAgICIiIg0KPiA+PiArICAgIEEgQ2lCdWlsZFBsdWdpbiB0aGF0IHVzZXMgVW5jcnVz dGlmeSB0byBmb3JtYXQgdGhlIHNvdXJjZSBmaWxlcyBpbiB0aGUNCj4gPj4gKyAgICBwYWNrYWdl IGJlaW5nIHRlc3RlZCBmb3IgY29kaW5nIHN0YW5kYXJkIGlzc3Vlcy4NCj4gPj4gKw0KPiA+PiAr ICAgIEJ5IGRlZmF1bHQsIHRoZSBwbHVnaW4gcnVucyBhZ2FpbnN0IHN0YW5kYXJkIEMgc291cmNl IGZpbGUgZXh0ZW5zaW9ucyBidXQNCj4gPj4gKyAgICBpdHMgY29uZmlndXJhdGlvbiBjYW4gYmUg bW9kaWZpZWQgdGhyb3VnaCBpdHMgY29uZmlndXJhdGlvbiBmaWxlLg0KPiA+PiArDQo+ID4+ICsg ICAgQ29uZmlndXJhdGlvbiBvcHRpb25zOg0KPiA+PiArICAgICJVbmNydXN0aWZ5Ijogew0KPiA+ PiArICAgICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyI6IFtdLCAjIEFkZGl0aW9uYWwgcGF0 aHMgdG8gY2hlY2sgZm9ybWF0dGluZyAod2lsZGNhcmRzIHN1cHBvcnRlZCkuDQo+ID4+ICsgICAg ICAgICJBdWRpdE9ubHkiOiBGYWxzZSwgICAgICAgICAgICMgRG9uJ3QgZmFpbCB0aGUgYnVpbGQg aWYgdGhlcmUgYXJlIGVycm9ycy4gIEp1c3QgbG9nIHRoZW0uDQo+ID4+ICsgICAgICAgICJDb25m aWdGaWxlUGF0aCI6ICIiLCAgICAgICAgICMgQ3VzdG9tIHBhdGggdG8gYW4gVW5jcnVzdGlmeSBj b25maWcgZmlsZS4NCj4gPj4gKyAgICAgICAgIklnbm9yZVN0YW5kYXJkUGF0aHMiOiBbXSwgICAg IyBTdGFuZGFyZCBQbHVnaW4gZGVmaW5lZCBwYXRocyB0aGF0IHNob3VsZCBiZSBpZ25vcmVkLg0K PiA+PiArICAgICAgICAiT3V0cHV0RmlsZURpZmZzIjogRmFsc2UsICAgICAjIE91dHB1dCBjaHVu a3Mgb2YgZm9ybWF0dGluZyBkaWZmcyBpbiB0aGUgdGVzdCBjYXNlIGxvZy4NCj4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBzaWduaWZpY2FudGx5 IHNsb3cgZG93biB0aGUgcGx1Z2luIG9uIHZlcnkgbGFyZ2UgcGFja2FnZXMuDQo+ID4+ICsgICAg ICAgICJTa2lwR2l0RXhjbHVzaW9ucyI6IEZhbHNlICAgICMgRG9uJ3QgZXhjbHVkZSBnaXQgaWdu b3JlZCBmaWxlcyBhbmQgZmlsZXMgaW4gZ2l0IHN1Ym1vZHVsZXMuDQo+ID4+ICsgICAgfQ0KPiA+ PiArICAgICIiIg0KPiA+PiArDQo+ID4+ICsgICAgIw0KPiA+PiArICAgICMgQnkgZGVmYXVsdCwg dXNlIGFuICJ1bmNydXN0aWZ5LmNmZyIgY29uZmlnIGZpbGUgaW4gdGhlIHBsdWdpbiBkaXJlY3Rv cnkNCj4gPj4gKyAgICAjIEEgcGFja2FnZSBjYW4gb3ZlcnJpZGUgdGhpcyBwYXRoIHZpYSAiQ29u ZmlnRmlsZVBhdGgiDQo+ID4+ICsgICAgIw0KPiA+PiArICAgICMgTm90ZTogVmFsdWVzIHNwZWNp ZmllZCB2aWEgIkNvbmZpZ0ZpbGVQYXRoIiBhcmUgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2UNCj4g Pj4gKyAgICAjDQo+ID4+ICsgICAgREVGQVVMVF9DT05GSUdfRklMRV9QQVRIID0gb3MucGF0aC5q b2luKA0KPiA+PiArICAgICAgICBwYXRobGliLlBhdGgoX19maWxlX18pLnBhcmVudC5yZXNvbHZl KCksICJ1bmNydXN0aWZ5LmNmZyIpDQo+ID4+ICsNCj4gPj4gKyAgICAjDQo+ID4+ICsgICAgIyBU aGUgZXh0ZW5zaW9uIHVzZWQgZm9yIGZvcm1hdHRlZCBmaWxlcyBwcm9kdWNlZCBieSB0aGlzIHBs dWdpbg0KPiA+PiArICAgICMNCj4gPj4gKyAgICBGT1JNQVRURURfRklMRV9FWFRFTlNJT04gPSAi LnVuY3J1c3RpZnlfcGx1Z2luIg0KPiA+PiArDQo+ID4+ICsgICAgIw0KPiA+PiArICAgICMgQSBw YWNrYWdlIGNhbiBhZGQgYW55IGFkZGl0aW9uYWwgcGF0aHMgd2l0aCAiQWRkaXRpb25hbEluY2x1 ZGVQYXRocyINCj4gPj4gKyAgICAjIEEgcGFja2FnZSBjYW4gcmVtb3ZlIGFueSBvZiB0aGVzZSBw YXRocyB3aXRoICJJZ25vcmVTdGFuZGFyZFBhdGhzIg0KPiA+PiArICAgICMNCj4gPj4gKyAgICBT VEFOREFSRF9QTFVHSU5fREVGSU5FRF9QQVRIUyA9ICgiKi5jIiwgIiouaCIpDQo+ID4+ICsNCj4g Pj4gKyAgICAjDQo+ID4+ICsgICAgIyBUaGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBwYXRoIHNo b3VsZCBzZXQgaW4gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZQ0KPiA+PiArICAgICMNCj4gPj4g KyAgICBVTkNSVVNUSUZZX1BBVEhfRU5WX0tFWSA9ICJVTkNSVVNUSUZZX0NJX1BBVEgiDQo+ID4+ ICsNCj4gPj4gKyAgICBkZWYgR2V0VGVzdE5hbWUoc2VsZiwgcGFja2FnZW5hbWU6IHN0ciwgZW52 aXJvbm1lbnQ6IFZhckRpY3QpIC0+IFR1cGxlOg0KPiA+PiArICAgICAgICAiIiIgUHJvdmlkZSB0 aGUgdGVzdGNhc2UgbmFtZSBhbmQgY2xhc3NuYW1lIGZvciB1c2UgaW4gcmVwb3J0aW5nDQo+ID4+ ICsNCj4gPj4gKyAgICAgICAgICAgIEFyZ3M6DQo+ID4+ICsgICAgICAgICAgICAgIHBhY2thZ2Vu YW1lOiBzdHJpbmcgY29udGFpbmluZyBuYW1lIG9mIHBhY2thZ2UgdG8gYnVpbGQNCj4gPj4gKyAg ICAgICAgICAgICAgZW52aXJvbm1lbnQ6IFRoZSBWYXJEaWN0IGZvciB0aGUgdGVzdCB0byBydW4g aW4NCj4gPj4gKyAgICAgICAgICAgIFJldHVybnM6DQo+ID4+ICsgICAgICAgICAgICAgICAgQSB0 dXBsZSBjb250YWluaW5nIHRoZSB0ZXN0Y2FzZSBuYW1lIGFuZCB0aGUgY2xhc3NuYW1lDQo+ID4+ ICsgICAgICAgICAgICAgICAgKHRlc3RjYXNlbmFtZSwgY2xhc3NuYW1lKQ0KPiA+PiArICAgICAg ICAgICAgICAgIHRlc3RjbGFzc25hbWU6IGEgZGVzY3JpcHRpdmUgc3RyaW5nIGZvciB0aGUgdGVz dGNhc2UgY2FuIGluY2x1ZGUgd2hpdGVzcGFjZQ0KPiA+PiArICAgICAgICAgICAgICAgIGNsYXNz bmFtZTogc2hvdWxkIGJlIHBhdHRlcm5lZCA8cGFja2FnZW5hbWU+LjxwbHVnaW4+LjxvcHRpb25h bGx5IGFueSB1bmlxdWUgY29uZGl0aW9uPg0KPiA+PiArICAgICAgICAiIiINCj4gPj4gKyAgICAg ICAgcmV0dXJuICgiQ2hlY2sgZmlsZSBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBpbiAiICsg cGFja2FnZW5hbWUsIHBhY2thZ2VuYW1lICsgIi5VbmNydXN0aWZ5IikNCj4gPj4gKw0KPiA+PiAr ICAgIGRlZiBSdW5CdWlsZFBsdWdpbihzZWxmLCBwYWNrYWdlX3JlbF9wYXRoOiBzdHIsIGVkazJf cGF0aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0W3N0ciwgTGlzdFtzdHJdXSwNCj4g Pj4gZW52aXJvbm1lbnRfY29uZmlnOiBBbnksIHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW5NYW5hZ2Vy LCBwbHVnaW5fbWFuYWdlcl9oZWxwZXI6IEhlbHBlckZ1bmN0aW9ucywgdGM6DQo+IEp1bml0UmVw b3J0VGVzdENhc2UsDQo+ID4+IG91dHB1dF9zdHJlYW09Tm9uZSkgLT4gaW50Og0KPiA+PiArICAg ICAgICAiIiINCj4gPj4gKyAgICAgICAgRXh0ZXJuYWwgZnVuY3Rpb24gb2YgcGx1Z2luLiBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gcGVyZm9ybSB0aGUgdGFzayBvZiB0aGUgQ2lCdWlsZCBQbHVn aW4uDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgQXJnczoNCj4gPj4gKyAgICAgICAgICAtIHBhY2th Z2VfcmVsX3BhdGg6IGVkazIgd29ya3NwYWNlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHBhY2thZ2UN Cj4gPj4gKyAgICAgICAgICAtIGVkazJfcGF0aDogRWRrMlBhdGggb2JqZWN0IHdpdGggd29ya3Nw YWNlIGFuZCBwYWNrYWdlcyBwYXRocw0KPiA+PiArICAgICAgICAgIC0gcGFja2FnZV9jb25maWc6 IERpY3Rpb25hcnkgd2l0aCB0aGUgcGFja2FnZSBjb25maWd1cmF0aW9uDQo+ID4+ICsgICAgICAg ICAgLSBlbnZpcm9ubWVudF9jb25maWc6IEVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24NCj4gPj4g KyAgICAgICAgICAtIHBsdWdpbl9tYW5hZ2VyOiBQbHVnaW4gTWFuYWdlciBJbnN0YW5jZQ0KPiA+ PiArICAgICAgICAgIC0gcGx1Z2luX21hbmFnZXJfaGVscGVyOiBQbHVnaW4gTWFuYWdlciBIZWxw ZXIgSW5zdGFuY2UNCj4gPj4gKyAgICAgICAgICAtIHRjOiBKVW5pdCB0ZXN0IGNhc2UNCj4gPj4g KyAgICAgICAgICAtIG91dHB1dF9zdHJlYW06IFRoZSBTdHJpbmdJTyBvdXRwdXQgc3RyZWFtIGZy b20gdGhpcyBwbHVnaW4gKGxvZ2dpbmcpDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgUmV0dXJucw0K PiA+PiArICAgICAgICAgID4wIDogTnVtYmVyIG9mIGVycm9ycyBmb3VuZA0KPiA+PiArICAgICAg ICAgIDAgIDogUGFzc2VkIHN1Y2Nlc3NmdWxseQ0KPiA+PiArICAgICAgICAgIC0xIDogU2tpcHBl ZCBmb3IgbWlzc2luZyBwcmVyZXENCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIHRy eToNCj4gPj4gKyAgICAgICAgICAgICMgSW5pdGlhbGl6ZSBwbHVnaW4gYW5kIGNoZWNrIHByZS1y ZXF1aXNpdGVzLg0KPiA+PiArICAgICAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9lbnZpcm9ubWVu dF9pbmZvKA0KPiA+PiArICAgICAgICAgICAgICAgIHBhY2thZ2VfcmVsX3BhdGgsIGVkazJfcGF0 aCwgcGFja2FnZV9jb25maWcsIHRjKQ0KPiA+PiArICAgICAgICAgICAgc2VsZi5faW5pdGlhbGl6 ZV9jb25maWd1cmF0aW9uKCkNCj4gPj4gKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2Zvcl9wcmVl eGlzdGluZ19mb3JtYXR0ZWRfZmlsZXMoKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICAjIExv ZyBpbXBvcnRhbnQgY29udGV4dCBpbmZvcm1hdGlvbi4NCj4gPj4gKyAgICAgICAgICAgIHNlbGYu X2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKCkNCj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgIyBD cmVhdGUgbWV0YSBpbnB1dCBmaWxlcyAmIGRpcmVjdG9yaWVzDQo+ID4+ICsgICAgICAgICAgICBz ZWxmLl9jcmVhdGVfdGVtcF93b3JraW5nX2RpcmVjdG9yeSgpDQo+ID4+ICsgICAgICAgICAgICBz ZWxmLl9jcmVhdGVfdW5jcnVzdGlmeV9maWxlX2xpc3RfZmlsZSgpDQo+ID4+ICsNCj4gPj4gKyAg ICAgICAgICAgIHNlbGYuX3J1bl91bmNydXN0aWZ5KCkNCj4gPj4gKw0KPiA+PiArICAgICAgICAg ICAgIyBQb3N0LWV4ZWN1dGlvbiBhY3Rpb25zLg0KPiA+PiArICAgICAgICAgICAgc2VsZi5fcHJv Y2Vzc191bmNydXN0aWZ5X3Jlc3VsdHMoKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIGV4Y2VwdCBV bmNydXN0aWZ5RXhjZXB0aW9uIGFzIGU6DQo+ID4+ICsgICAgICAgICAgICBzZWxmLl90Yy5Mb2dT dGRFcnJvcigNCj4gPj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhp dF9jb2RlfS4gRGV0YWlsczpcblxue3N0cihlKX0iKQ0KPiA+PiArICAgICAgICAgICAgbG9nZ2lu Zy53YXJuaW5nKA0KPiA+PiArICAgICAgICAgICAgICAgIGYiVW5jcnVzdGlmeSBlcnJvciB7ZS5l eGl0X2NvZGV9LiBEZXRhaWxzOlxuXG57c3RyKGUpfSIpDQo+ID4+ICsgICAgICAgICAgICByZXR1 cm4gLTENCj4gPj4gKyAgICAgICAgZWxzZToNCj4gPj4gKyAgICAgICAgICAgIGlmIHNlbGYuX2Zv cm1hdHRlZF9maWxlX2Vycm9yX2NvdW50ID4gMDoNCj4gPj4gKyAgICAgICAgICAgICAgICBpZiBz ZWxmLl9hdWRpdF9vbmx5X21vZGU6DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgIGxvZ2dpbmcu aW5mbygNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5nIHRlc3QgYXMgc2tp cHBlZCBzaW5jZSBBdWRpdE9ubHkgaXMgZW5hYmxlZCIpDQo+ID4+ICsgICAgICAgICAgICAgICAg ICAgIHNlbGYuX3RjLlNldFNraXBwZWQoKQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLTENCj4gPj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiA+PiArICAgICAgICAgICAgICAg ICAgICBzZWxmLl90Yy5TZXRGYWlsZWQoDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBm IlVuY3J1c3RpZnkgY2hlY2tzIGZhaWxlZCBkdWUgdG8ge3NlbGYuX2Zvcm1hdHRlZF9maWxlX2Vy cm9yX2NvdW50fSBpbmNvcnJlY3RseSBmb3JtYXR0ZWQNCj4gPj4gZmlsZXMuIiwgIkNIRUNLX0ZB SUxFRCIpDQo+ID4+ICsgICAgICAgICAgICBlbHNlOg0KPiA+PiArICAgICAgICAgICAgICAgIHNl bGYuX3RjLlNldFN1Y2Nlc3MoKQ0KPiA+PiArICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Zvcm1h dHRlZF9maWxlX2Vycm9yX2NvdW50DQo+ID4+ICsgICAgICAgIGZpbmFsbHk6DQo+ID4+ICsgICAg ICAgICAgICBzZWxmLl9jbGVhbnVwX3RlbXBvcmFyeV9mb3JtYXR0ZWRfZmlsZXMoKQ0KPiA+PiAr ICAgICAgICAgICAgc2VsZi5fY2xlYW51cF90ZW1wb3JhcnlfZGlyZWN0b3J5KCkNCj4gPj4gKw0K PiA+PiArICAgIGRlZiBfaW5pdGlhbGl6ZV9jb25maWd1cmF0aW9uKHNlbGYpIC0+IE5vbmU6DQo+ ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAgICBJbml0aWFsaXplcyBwbHVnaW4gY29uZmln dXJhdGlvbi4NCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIHNlbGYuX2luaXRpYWxp emVfYXBwX2luZm8oKQ0KPiA+PiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX2NvbmZpZ19maWxl X2luZm8oKQ0KPiA+PiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX2ZpbGVfdG9fZm9ybWF0X2lu Zm8oKQ0KPiA+PiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX3Rlc3RfY2FzZV9vdXRwdXRfb3B0 aW9ucygpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2NoZWNrX2Zvcl9wcmVleGlzdGluZ19mb3Jt YXR0ZWRfZmlsZXMoc2VsZikgLT4gTm9uZToNCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAg ICAgIENoZWNrcyBpZiBhbnkgZm9ybWF0dGVkIGZpbGVzIGZyb20gcHJpb3IgZXhlY3V0aW9uIGFy ZSBwcmVzZW50Lg0KPiA+PiArDQo+ID4+ICsgICAgICAgIEV4aXN0ZW5jZSBvZiBzdWNoIGZpbGVz IGlzIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uLiBUaGlzIG1pZ2h0IHJlc3VsdA0KPiA+PiArICAg ICAgICBmcm9tIGFuIGVycm9yIHRoYXQgb2NjdXJyZWQgZHVyaW5nIGEgcHJldmlvdXMgcnVuIG9y IGEgcHJlbWF0dXJlIGV4aXQgZnJvbSBhIGRlYnVnIHNjZW5hcmlvLiBJbiBhbnkgY2FzZSwgdGhl DQo+ID4+IHBhY2thZ2Ugc2hvdWxkIGJlIGNsZWFuIGJlZm9yZSBzdGFydGluZyBhIG5ldyBydW4u DQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAgICBwcmVfZXhpc3RpbmdfZm9ybWF0dGVk X2ZpbGVfY291bnQgPSBsZW4oDQo+ID4+ICsgICAgICAgICAgICBbc3RyKHBhdGgucmVzb2x2ZSgp KSBmb3IgcGF0aCBpbg0KPiA+PiBwYXRobGliLlBhdGgoc2VsZi5fYWJzX3BhY2thZ2VfcGF0aCku cmdsb2IoZicqe1VuY3J1c3RpZnkuRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OfScpXSkNCj4gPj4g Kw0KPiA+PiArICAgICAgICBpZiBwcmVfZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVfY291bnQgPiAw Og0KPiA+PiArICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeVN0YWxlUGx1Z2luRm9ybWF0dGVk RmlsZXNFeGNlcHRpb24oDQo+ID4+ICsgICAgICAgICAgICAgICAgZiJ7cHJlX2V4aXN0aW5nX2Zv cm1hdHRlZF9maWxlX2NvdW50fSBmb3JtYXR0ZWQgZmlsZXMgYWxyZWFkeSBleGlzdC4gVG8gcHJl dmVudCBvdmVyd3JpdGluZyB0aGVzZQ0KPiBmaWxlcywNCj4gPj4gcGxlYXNlIHJlbW92ZSB0aGVt IGJlZm9yZSBydW5uaW5nIHRoaXMgcGx1Z2luLiIpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2Ns ZWFudXBfdGVtcG9yYXJ5X2RpcmVjdG9yeShzZWxmKSAtPiBOb25lOg0KPiA+PiArICAgICAgICAi IiINCj4gPj4gKyAgICAgICAgQ2xlYW5zIHVwIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVzZWQg Zm9yIHRoaXMgZXhlY3V0aW9uIGluc3RhbmNlLg0KPiA+PiArDQo+ID4+ICsgICAgICAgIFRoaXMg cmVtb3ZlcyB0aGUgZGlyZWN0b3J5IGFuZCBhbGwgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGhpcyBp bnN0YW5jZS4NCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIGlmIGhhc2F0dHIoc2Vs ZiwgJ193b3JraW5nX2RpcicpOg0KPiA+PiArICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX3RyZWUo c2VsZi5fd29ya2luZ19kaXIpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2NsZWFudXBfdGVtcG9y YXJ5X2Zvcm1hdHRlZF9maWxlcyhzZWxmKSAtPiBOb25lOg0KPiA+PiArICAgICAgICAiIiINCj4g Pj4gKyAgICAgICAgQ2xlYW5zIHVwIHRoZSB0ZW1wb3JhcnkgZm9ybW1hdHRlZCBmaWxlcyBwcm9k dWNlZCBieSBVbmNydXN0aWZ5Lg0KPiA+PiArDQo+ID4+ICsgICAgICAgIFRoaXMgd2lsbCByZWN1 cnNpdmVseSByZW1vdmUgYWxsIGZvcm1hdHRlZCBmaWxlcyBnZW5lcmF0ZWQgYnkgVW5jcnVzdGlm eQ0KPiA+PiArICAgICAgICBkdXJpbmcgdGhpcyBleGVjdXRpb24gaW5zdGFuY2UuDQo+ID4+ICsg ICAgICAgICIiIg0KPiA+PiArICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfYWJzX3BhY2thZ2Vf cGF0aCcpOg0KPiA+PiArICAgICAgICAgICAgZm9ybWF0dGVkX2ZpbGVzID0gW3N0cihwYXRoLnJl c29sdmUoKSkgZm9yIHBhdGggaW4gcGF0aGxpYi5QYXRoKA0KPiA+PiArICAgICAgICAgICAgICAg IHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKGYnKntVbmNydXN0aWZ5LkZPUk1BVFRFRF9G SUxFX0VYVEVOU0lPTn0nKV0NCj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgZm9yIGZvcm1hdHRl ZF9maWxlIGluIGZvcm1hdHRlZF9maWxlczoNCj4gPj4gKyAgICAgICAgICAgICAgICBvcy5yZW1v dmUoZm9ybWF0dGVkX2ZpbGUpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2NyZWF0ZV90ZW1wX3dv cmtpbmdfZGlyZWN0b3J5KHNlbGYpIC0+IE5vbmU6DQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiAr ICAgICAgICBDcmVhdGVzIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVzZWQgZm9yIHRoaXMgZXhl Y3V0aW9uIGluc3RhbmNlLg0KPiA+PiArICAgICAgICAiIiINCj4gPj4gKyAgICAgICAgc2VsZi5f d29ya2luZ19kaXIgPSBvcy5wYXRoLmpvaW4oDQo+ID4+ICsgICAgICAgICAgICBzZWxmLl9hYnNf d29ya3NwYWNlX3BhdGgsICJCdWlsZCIsICIucHl0b29sIiwgIlBsdWdpbiIsICJVbmNydXN0aWZ5 IikNCj4gPj4gKw0KPiA+PiArICAgICAgICB0cnk6DQo+ID4+ICsgICAgICAgICAgICBwYXRobGli LlBhdGgoc2VsZi5fd29ya2luZ19kaXIpLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1 ZSkNCj4gPj4gKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToNCj4gPj4gKyAgICAgICAgICAg IHJhaXNlIFVuY3J1c3RpZnlJbnB1dEZpbGVDcmVhdGlvbkVycm9yRXhjZXB0aW9uKA0KPiA+PiAr ICAgICAgICAgICAgICAgIGYiRXJyb3IgY3JlYXRpbmcgcGx1Z2luIGRpcmVjdG9yeSB7c2VsZi5f d29ya2luZ19kaXJ9LlxuXG57cmVwcihlKX0uIikNCj4gPj4gKw0KPiA+PiArICAgIGRlZiBfY3Jl YXRlX3VuY3J1c3RpZnlfZmlsZV9saXN0X2ZpbGUoc2VsZikgLT4gTm9uZToNCj4gPj4gKyAgICAg ICAgIiIiDQo+ID4+ICsgICAgICAgIENyZWF0ZXMgdGhlIGZpbGUgd2l0aCB0aGUgbGlzdCBvZiBz b3VyY2UgZmlsZXMgZm9yIFVuY3J1c3RpZnkgdG8gcHJvY2Vzcy4NCj4gPj4gKyAgICAgICAgIiIi DQo+ID4+ICsgICAgICAgIHNlbGYuX2FwcF9pbnB1dF9maWxlX3BhdGggPSBvcy5wYXRoLmpvaW4o DQo+ID4+ICsgICAgICAgICAgICBzZWxmLl93b3JraW5nX2RpciwgInVuY3J1c3RpZnlfZmlsZV9s aXN0LnR4dCIpDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuX2FwcF9pbnB1 dF9maWxlX3BhdGgsICd3JywgZW5jb2Rpbmc9J3V0ZjgnKSBhcyBmOg0KPiA+PiArICAgICAgICAg ICAgZi53cml0ZWxpbmVzKGYiXG4iLmpvaW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0 KSkNCj4gPj4gKw0KPiA+PiArICAgIGRlZiBfZXhlY3V0ZV91bmNydXN0aWZ5KHNlbGYpIC0+IE5v bmU6DQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAgICBFeGVjdXRlcyBVbmNydXN0aWZ5 IHdpdGggdGhlIGluaXRpYWxpemVkIGNvbmZpZ3VyYXRpb24uDQo+ID4+ICsgICAgICAgICIiIg0K PiA+PiArICAgICAgICBvdXRwdXQgPSBTdHJpbmdJTygpDQo+ID4+ICsgICAgICAgIHNlbGYuX2Fw cF9leGl0X2NvZGUgPSBSdW5DbWQoDQo+ID4+ICsgICAgICAgICAgICBzZWxmLl9hcHBfcGF0aCwN Cj4gPj4gKyAgICAgICAgICAgIGYiLWMge3NlbGYuX2FwcF9jb25maWdfZmlsZX0gLUYge3NlbGYu X2FwcF9pbnB1dF9maWxlX3BhdGh9IC0taWYtY2hhbmdlZCAtLXN1ZmZpeA0KPiA+PiB7VW5jcnVz dGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJT059Iiwgb3V0c3RyZWFtPW91dHB1dCkNCj4gPj4g KyAgICAgICAgc2VsZi5fYXBwX291dHB1dCA9IG91dHB1dC5nZXR2YWx1ZSgpLnN0cmlwKCkuc3Bs aXRsaW5lcygpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2dldF9naXRfaWdub3JlZF9wYXRocyhz ZWxmKSAtPiBMaXN0W3N0cl06DQo+ID4+ICsgICAgICAgICIiIiINCj4gPj4gKyAgICAgICAgUmV0 dXJucyBhIGxpc3Qgb2YgZmlsZSBhYnNvbHV0ZSBwYXRoIHN0cmluZ3MgdG8gYWxsIGZpbGVzIGln bm9yZWQgaW4gdGhpcyBnaXQgcmVwb3NpdG9yeS4NCj4gPj4gKw0KPiA+PiArICAgICAgICBJZiBn aXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0eSBsaXN0IHdpbGwgYmUgcmV0dXJuZWQuDQo+ID4+ICsg ICAgICAgICIiIg0KPiA+PiArICAgICAgICBpZiBub3Qgc2h1dGlsLndoaWNoKCJnaXQiKToNCj4g Pj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigNCj4gPj4gKyAgICAgICAgICAgICAgICAiR2l0 IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1vZHVsZSBwYXRocyB3aWxsIG5v dCBiZSBjb25zaWRlcmVkLiIpDQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gPj4gKw0K PiA+PiArICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiA+PiArICAgICAg ICBleGl0X2NvZGUgPSBSdW5DbWQoImdpdCIsICJscy1maWxlcyAtLW90aGVyIiwNCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtzcGFjZV9w YXRoLCBvdXRzdHJlYW09b3V0c3RyZWFtX2J1ZmZlciwNCj4gbG9nZ2luZ19sZXZlbD1sb2dnaW5n Lk5PVFNFVCkNCj4gPj4gKyAgICAgICAgaWYgKGV4aXRfY29kZSAhPSAwKToNCj4gPj4gKyAgICAg ICAgICAgIHJhaXNlIFVuY3J1c3RpZnlHaXRJZ25vcmVGaWxlRXhjZXB0aW9uKA0KPiA+PiArICAg ICAgICAgICAgICAgIGYiQW4gZXJyb3Igb2NjdXJyZWQgcmVhZGluZyBnaXQgaWdub3JlIHNldHRp bmdzLiBUaGlzIHdpbGwgcHJldmVudCBVbmNydXN0aWZ5IGZyb20gcnVubmluZyBhZ2FpbnN0IHRo ZQ0KPiA+PiBleHBlY3RlZCBzZXQgb2YgZmlsZXMuIikNCj4gPj4gKw0KPiA+PiArICAgICAgICAj IE5vdGU6IFRoaXMgd2lsbCBwb3RlbnRpYWxseSBiZSBhIGxhcmdlIGxpc3QsIGJ1dCBhdCBsZWFz dCBzb3J0ZWQNCj4gPj4gKyAgICAgICAgcmV0dXJuIG91dHN0cmVhbV9idWZmZXIuZ2V0dmFsdWUo KS5zdHJpcCgpLnNwbGl0bGluZXMoKQ0KPiA+PiArDQo+ID4+ICsgICAgZGVmIF9nZXRfZ2l0X3N1 Ym1vZHVsZV9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ID4+ICsgICAgICAgICIiIg0KPiA+ PiArICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBkaXJlY3RvcnkgYWJzb2x1dGUgcGF0aCBzdHJp bmdzIHRvIHRoZSByb290IG9mIGVhY2ggc3VibW9kdWxlIGluIHRoZSB3b3Jrc3BhY2UgcmVwb3Np dG9yeS4NCj4gPj4gKw0KPiA+PiArICAgICAgICBJZiBnaXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0 eSBsaXN0IHdpbGwgYmUgcmV0dXJuZWQuDQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAg ICBpZiBub3Qgc2h1dGlsLndoaWNoKCJnaXQiKToNCj4gPj4gKyAgICAgICAgICAgIGxvZ2dpbmcu d2FybigNCj4gPj4gKyAgICAgICAgICAgICAgICAiR2l0IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5 c3RlbS4gR2l0IHN1Ym1vZHVsZSBwYXRocyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiIpDQo+ID4+ ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gPj4gKw0KPiA+PiArICAgICAgICBpZiBvcy5wYXRo LmlzZmlsZShvcy5wYXRoLmpvaW4oc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCAiLmdpdG1vZHVs ZXMiKSk6DQo+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4+ICsgICAgICAgICAg ICAgICAgZiIuZ2l0bW9kdWxlcyBmaWxlIGZvdW5kLiBFeGNsdWRpbmcgc3VibW9kdWxlcyBpbiB7 c2VsZi5fcGFja2FnZV9uYW1lfS4iKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICBvdXRzdHJl YW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiA+PiArICAgICAgICAgICAgZXhpdF9jb2RlID0gUnVu Q21kKCJnaXQiLCAiY29uZmlnIC0tZmlsZSAuZ2l0bW9kdWxlcyAtLWdldC1yZWdleHAgcGF0aCIs DQo+IHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLA0KPiA+PiBvdXRzdHJlYW09 b3V0c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNFVCkNCj4gPj4gKyAg ICAgICAgICAgIGlmIChleGl0X2NvZGUgIT0gMCk6DQo+ID4+ICsgICAgICAgICAgICAgICAgcmFp c2UgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlvbigNCj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgZiIuZ2l0bW9kdWxlIGZpbGUgZGV0ZWN0ZWQgYnV0IGFuIGVycm9yIG9jY3VycmVkIHJl YWRpbmcgdGhlIGZpbGUuIENhbm5vdCBwcm9jZWVkIHdpdGggdW5rbm93bg0KPiA+PiBzdWJtb2R1 bGUgcGF0aHMuIikNCj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzID0g W10NCj4gPj4gKyAgICAgICAgICAgIGZvciBsaW5lIGluIG91dHN0cmVhbV9idWZmZXIuZ2V0dmFs dWUoKS5zdHJpcCgpLnNwbGl0bGluZXMoKToNCj4gPj4gKyAgICAgICAgICAgICAgICBzdWJtb2R1 bGVfcGF0aHMuYXBwZW5kKA0KPiA+PiArICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1w YXRoKG9zLnBhdGguam9pbihzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGgsIGxpbmUuc3BsaXQoKVsx XSkpKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gc3VibW9kdWxlX3BhdGhzDQo+ ID4+ICsgICAgICAgIGVsc2U6DQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gPj4gKw0K PiA+PiArICAgIGRlZiBfaW5pdGlhbGl6ZV9hcHBfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiA+PiAr ICAgICAgICAiIiINCj4gPj4gKyAgICAgICAgSW5pdGlhbGl6ZSBVbmNydXN0aWZ5IGFwcGxpY2F0 aW9uIGluZm9ybWF0aW9uLg0KPiA+PiArDQo+ID4+ICsgICAgICAgIFRoaXMgZnVuY3Rpb24gd2ls bCBkZXRlcm1pbmUgdGhlIGFwcGxpY2F0aW9uIHBhdGggYW5kIHZlcnNpb24uDQo+ID4+ICsgICAg ICAgICIiIg0KPiA+PiArICAgICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHNwZWNpZmllZCBp biB0aGUgZW52aXJvbm1lbnQuDQo+ID4+ICsgICAgICAgIGlmIFVuY3J1c3RpZnkuVU5DUlVTVElG WV9QQVRIX0VOVl9LRVkgbm90IGluIG9zLmVudmlyb246DQo+ID4+ICsgICAgICAgICAgICByYWlz ZSBVbmNydXN0aWZ5QXBwRW52VmFyTm90Rm91bmRFeGNlcHRpb24oDQo+ID4+ICsgICAgICAgICAg ICAgICAgZiJVbmNydXN0aWZ5IGVudmlyb25tZW50IHZhcmlhYmxlIHtVbmNydXN0aWZ5LlVOQ1JV U1RJRllfUEFUSF9FTlZfS0VZfSBpcyBub3QgcHJlc2VudC4iKQ0KPiA+PiArDQo+ID4+ICsgICAg ICAgIHNlbGYuX2FwcF9wYXRoID0gc2h1dGlsLndoaWNoKCd1bmNydXN0aWZ5JywgcGF0aD1vcy5l bnZpcm9uW1VuY3J1c3RpZnkuVU5DUlVTVElGWV9QQVRIX0VOVl9LRVldKQ0KPiA+PiArDQo+ID4+ ICsgICAgICAgIGlmIHNlbGYuX2FwcF9wYXRoIGlzIE5vbmU6DQo+ID4+ICsgICAgICAgICAgICBy YWlzZSBGaWxlTm90Rm91bmRFcnJvcigNCj4gPj4gKyAgICAgICAgICAgICAgICBlcnJuby5FTk9F TlQsIG9zLnN0cmVycm9yKGVycm5vLkVOT0VOVCksIHNlbGYuX2FwcF9wYXRoKQ0KPiA+PiArDQo+ ID4+ICsgICAgICAgIHNlbGYuX2FwcF9wYXRoID0gb3MucGF0aC5ub3JtY2FzZShvcy5wYXRoLm5v cm1wYXRoKHNlbGYuX2FwcF9wYXRoKSkNCj4gPj4gKw0KPiA+PiArICAgICAgICBpZiBub3Qgb3Mu cGF0aC5pc2ZpbGUoc2VsZi5fYXBwX3BhdGgpOg0KPiA+PiArICAgICAgICAgICAgcmFpc2UgRmls ZU5vdEZvdW5kRXJyb3IoDQo+ID4+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5z dHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkNCj4gPj4gKw0KPiA+PiArICAg ICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHByZXNlbnQgYXQgdGhlIGV4cGVjdGVkIHBhdGgu DQo+ID4+ICsgICAgICAgIHJldHVybl9idWZmZXIgPSBTdHJpbmdJTygpDQo+ID4+ICsgICAgICAg IHJldCA9IFJ1bkNtZChzZWxmLl9hcHBfcGF0aCwgIi0tdmVyc2lvbiIsIG91dHN0cmVhbT1yZXR1 cm5fYnVmZmVyKQ0KPiA+PiArICAgICAgICBpZiAocmV0ICE9IDApOg0KPiA+PiArICAgICAgICAg ICAgcmFpc2UgVW5jcnVzdGlmeUFwcFZlcnNpb25FcnJvckV4Y2VwdGlvbigNCj4gPj4gKyAgICAg ICAgICAgICAgICBmIkVycm9yIG9jY3VycmVkIGV4ZWN1dGluZyAtLXZlcnNpb246IHtyZXR9LiIp DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgIyBMb2cgVW5jcnVzdGlmeSB2ZXJzaW9uIGluZm9ybWF0 aW9uLg0KPiA+PiArICAgICAgICBzZWxmLl9hcHBfdmVyc2lvbiA9IHJldHVybl9idWZmZXIuZ2V0 dmFsdWUoKS5zdHJpcCgpDQo+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVuY3J1 c3RpZnkgdmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ID4+ICsgICAgICAgIHZlcnNp b25fYWdncmVnYXRvci5HZXRWZXJzaW9uQWdncmVnYXRvcigpLlJlcG9ydFZlcnNpb24oDQo+ID4+ ICsgICAgICAgICAgICAiVW5jcnVzdGlmeSIsIHNlbGYuX2FwcF92ZXJzaW9uLCB2ZXJzaW9uX2Fn Z3JlZ2F0b3IuVmVyc2lvblR5cGVzLklORk8pDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX2luaXRp YWxpemVfY29uZmlnX2ZpbGVfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiA+PiArICAgICAgICAiIiIN Cj4gPj4gKyAgICAgICAgSW5pdGlhbGl6ZSBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBp bmZvLg0KPiA+PiArDQo+ID4+ICsgICAgICAgIFRoZSBjb25maWcgZmlsZSBwYXRoIGlzIHJlbGF0 aXZlIHRvIHRoZSBwYWNrYWdlIHJvb3QuDQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAg ICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBVbmNydXN0aWZ5LkRFRkFVTFRfQ09ORklHX0ZJTEVf UEFUSA0KPiA+PiArICAgICAgICBpZiAiQ29uZmlnRmlsZVBhdGgiIGluIHNlbGYuX3BhY2thZ2Vf Y29uZmlnOg0KPiA+PiArICAgICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0gc2VsZi5f cGFja2FnZV9jb25maWdbIkNvbmZpZ0ZpbGVQYXRoIl0uc3RyaXAoKQ0KPiA+PiArDQo+ID4+ICsg ICAgICAgICAgICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBvcy5wYXRoLm5vcm1wYXRoKA0KPiA+ PiArICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzZWxmLl9hYnNfcGFja2FnZV9wYXRoLCBz ZWxmLl9hcHBfY29uZmlnX2ZpbGUpKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIGlmIG5vdCBvcy5w YXRoLmlzZmlsZShzZWxmLl9hcHBfY29uZmlnX2ZpbGUpOg0KPiA+PiArICAgICAgICAgICAgcmFp c2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ID4+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5U LCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfY29uZmlnX2ZpbGUpDQo+ID4+ ICsNCj4gPj4gKyAgICBkZWYgX2luaXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbyhzZWxmLCBwYWNr YWdlX3JlbF9wYXRoOiBzdHIsIGVkazJfcGF0aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBE aWN0W3N0ciwNCj4gPj4gTGlzdFtzdHJdXSwgdGM6IEp1bml0UmVwb3J0VGVzdENhc2UpIC0+IE5v bmU6DQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAgICBJbml0aWFsaXplcyBwbHVnaW4g ZW52aXJvbm1lbnQgaW5mb3JtYXRpb24uDQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAgICAg ICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoID0gZWRrMl9wYXRoLkdldEFic29sdXRlUGF0aE9uVGhp c1N5dGVtRnJvbUVkazJSZWxhdGl2ZVBhdGgoDQo+ID4+ICsgICAgICAgICAgICBwYWNrYWdlX3Jl bF9wYXRoKQ0KPiA+PiArICAgICAgICBzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGggPSBlZGsyX3Bh dGguV29ya3NwYWNlUGF0aA0KPiA+PiArICAgICAgICBzZWxmLl9wYWNrYWdlX2NvbmZpZyA9IHBh Y2thZ2VfY29uZmlnDQo+ID4+ICsgICAgICAgIHNlbGYuX3BhY2thZ2VfbmFtZSA9IG9zLnBhdGgu YmFzZW5hbWUoDQo+ID4+ICsgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKHBhY2thZ2VfcmVs X3BhdGgpKQ0KPiA+PiArICAgICAgICBzZWxmLl9yZWxfcGFja2FnZV9wYXRoID0gcGFja2FnZV9y ZWxfcGF0aA0KPiA+PiArICAgICAgICBzZWxmLl90YyA9IHRjDQo+ID4+ICsNCj4gPj4gKyAgICBk ZWYgX2luaXRpYWxpemVfZmlsZV90b19mb3JtYXRfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiA+PiAr ICAgICAgICAiIiINCj4gPj4gKyAgICAgICAgRm9ybXMgdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVz IGZvciBVbmNydXN0aWZ5IHRvIHByb2Nlc3MuDQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAg ICAgICAjIENyZWF0ZSBhIGxpc3Qgb2YgYWxsIHRoZSBwYWNrYWdlIHJlbGF0aXZlIGZpbGUgcGF0 aHMgaW4gdGhlIHBhY2thZ2UgdG8gcnVuIGFnYWluc3QgVW5jcnVzdGlmeS4NCj4gPj4gKyAgICAg ICAgcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0ID0gbGlzdCgNCj4gPj4gKyAgICAgICAgICAgIFVu Y3J1c3RpZnkuU1RBTkRBUkRfUExVR0lOX0RFRklORURfUEFUSFMpDQo+ID4+ICsNCj4gPj4gKyAg ICAgICAgIyBBbGxvdyB0aGUgY2kueWFtbCB0byByZW1vdmUgYW55IG9mIHRoZSBwcmUtZGVmaW5l ZCBzdGFuZGFyZCBwYXRocw0KPiA+PiArICAgICAgICBpZiAiSWdub3JlU3RhbmRhcmRQYXRocyIg aW4gc2VsZi5fcGFja2FnZV9jb25maWc6DQo+ID4+ICsgICAgICAgICAgICBmb3IgYSBpbiBzZWxm Ll9wYWNrYWdlX2NvbmZpZ1siSWdub3JlU3RhbmRhcmRQYXRocyJdOg0KPiA+PiArICAgICAgICAg ICAgICAgIGlmIGEuc3RyaXAoKSBpbiByZWxfZmlsZV9wYXRoc190b19mb3JtYXQ6DQo+ID4+ICsg ICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dCgNCj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGYiSWdub3Jpbmcgc3RhbmRhcmQgcGF0aCBkdWUgdG8gY2kueWFtbCBpZ25v cmU6IHthfSIpDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHJlbF9maWxlX3BhdGhzX3RvX2Zv cm1hdC5yZW1vdmUoYS5zdHJpcCgpKQ0KPiA+PiArICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4+ ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlJbnZhbGlkSWdub3JlU3RhbmRh cmRQYXRoc0V4Y2VwdGlvbihmIkludmFsaWQgSWdub3JlU3RhbmRhcmRQYXRocyB2YWx1ZToge2F9 IikNCj4gPj4gKw0KPiA+PiArICAgICAgICAjIEFsbG93IHRoZSBjaS55YW1sIHRvIHNwZWNpZnkg YWRkaXRpb25hbCBpbmNsdWRlIHBhdGhzIGZvciB0aGlzIHBhY2thZ2UNCj4gPj4gKyAgICAgICAg aWYgIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiA+ PiArICAgICAgICAgICAgcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0LmV4dGVuZCgNCj4gPj4gKyAg ICAgICAgICAgICAgICBzZWxmLl9wYWNrYWdlX2NvbmZpZ1siQWRkaXRpb25hbEluY2x1ZGVQYXRo cyJdKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1h dCA9IFtdDQo+ID4+ICsgICAgICAgIGZvciBwYXRoIGluIHJlbF9maWxlX3BhdGhzX3RvX2Zvcm1h dDoNCj4gPj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRl bmQoDQo+ID4+ICsgICAgICAgICAgICAgICAgW3N0cihwYXRoLnJlc29sdmUoKSkgZm9yIHBhdGgg aW4gcGF0aGxpYi5QYXRoKHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKHBhdGgpXSkNCj4g Pj4gKw0KPiA+PiArICAgICAgICBpZiBub3QgIlNraXBHaXRFeGNsdXNpb25zIiBpbiBzZWxmLl9w YWNrYWdlX2NvbmZpZyBvciBub3Qgc2VsZi5fcGFja2FnZV9jb25maWdbIlNraXBHaXRFeGNsdXNp b25zIl06DQo+ID4+ICsgICAgICAgICAgICAjIFJlbW92ZSBmaWxlcyBpZ25vcmVkIGJ5IGdpdA0K PiA+PiArICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiA+PiArICAgICAgICAgICAgICAgIGYi e3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBiZWZvcmUgZ2l0IGlnbm9yZSBmaWxlIGV4 Y2x1c2lvbjoNCj4gPj4ge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSIpDQo+ ID4+ICsNCj4gPj4gKyAgICAgICAgICAgIGlnbm9yZWRfcGF0aHMgPSBzZWxmLl9nZXRfZ2l0X2ln bm9yZWRfcGF0aHMoKQ0KPiA+PiArICAgICAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9f Zm9ybWF0ID0gbGlzdCgNCj4gPj4gKyAgICAgICAgICAgICAgICBzZXQoc2VsZi5fYWJzX2ZpbGVf cGF0aHNfdG9fZm9ybWF0KS5kaWZmZXJlbmNlKGlnbm9yZWRfcGF0aHMpKQ0KPiA+PiArDQo+ID4+ ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4+ICsgICAgICAgICAgICAgICAgZiJ7c2Vs Zi5fcGFja2FnZV9uYW1lfSBmaWxlIGNvdW50IGFmdGVyIGdpdCBpZ25vcmUgZmlsZSBleGNsdXNp b246DQo+ID4+IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiA+PiAr DQo+ID4+ICsgICAgICAgICAgICAjIFJlbW92ZSBmaWxlcyBpbiBzdWJtb2R1bGVzDQo+ID4+ICsg ICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4+ICsgICAgICAgICAgICAgICAgZiJ7c2VsZi5f cGFja2FnZV9uYW1lfSBmaWxlIGNvdW50IGJlZm9yZSBzdWJtb2R1bGUgZXhjbHVzaW9uOiB7bGVu KHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9IikNCj4gPj4gKw0KPiA+PiArICAgICAg ICAgICAgc3VibW9kdWxlX3BhdGhzID0gdHVwbGUoc2VsZi5fZ2V0X2dpdF9zdWJtb2R1bGVfcGF0 aHMoKSkNCj4gPj4gKyAgICAgICAgICAgIGZvciBwYXRoIGluIHN1Ym1vZHVsZV9wYXRoczoNCj4g Pj4gKyAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oZiIgIHN1Ym1vZHVsZSBwYXRoOiB7cGF0 aH0iKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19m b3JtYXQgPSBbDQo+ID4+ICsgICAgICAgICAgICAgICAgZiBmb3IgZiBpbiBzZWxmLl9hYnNfZmls ZV9wYXRoc190b19mb3JtYXQgaWYgbm90IGYuc3RhcnRzd2l0aChzdWJtb2R1bGVfcGF0aHMpXQ0K PiA+PiArDQo+ID4+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ID4+ICsgICAgICAgICAg ICAgICAgZiJ7c2VsZi5fcGFja2FnZV9uYW1lfSBmaWxlIGNvdW50IGFmdGVyIHN1Ym1vZHVsZSBl eGNsdXNpb246IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiA+PiAr DQo+ID4+ICsgICAgICAgICMgU29ydCB0aGUgZmlsZXMgZm9yIG1vcmUgY29uc2lzdGVudCByZXN1 bHRzDQo+ID4+ICsgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5zb3J0KCkN Cj4gPj4gKw0KPiA+PiArICAgIGRlZiBfaW5pdGlhbGl6ZV90ZXN0X2Nhc2Vfb3V0cHV0X29wdGlv bnMoc2VsZikgLT4gTm9uZToNCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIEluaXRp YWxpemVzIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGVzdCBjYXNlIG91dHB1dC4NCj4gPj4gKyAg ICAgICAgIiIiDQo+ID4+ICsgICAgICAgIHNlbGYuX2F1ZGl0X29ubHlfbW9kZSA9IEZhbHNlDQo+ ID4+ICsgICAgICAgIHNlbGYuX291dHB1dF9maWxlX2RpZmZzID0gRmFsc2UNCj4gPj4gKw0KPiA+ PiArICAgICAgICBpZiAiQXVkaXRPbmx5IiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZyBhbmQgc2Vs Zi5fcGFja2FnZV9jb25maWdbIkF1ZGl0T25seSJdOg0KPiA+PiArICAgICAgICAgICAgc2VsZi5f YXVkaXRfb25seV9tb2RlID0gVHJ1ZQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIGlmICJPdXRwdXRG aWxlRGlmZnMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnIGFuZCBzZWxmLl9wYWNrYWdlX2NvbmZp Z1siT3V0cHV0RmlsZURpZmZzIl06DQo+ID4+ICsgICAgICAgICAgICBzZWxmLl9vdXRwdXRfZmls ZV9kaWZmcyA9IFRydWUNCj4gPj4gKw0KPiA+PiArICAgIGRlZiBfbG9nX3VuY3J1c3RpZnlfYXBw X2luZm8oc2VsZikgLT4gTm9uZToNCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIExv Z3MgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbi4NCj4gPj4gKyAgICAgICAgIiIi DQo+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIkZvdW5kIFVuY3J1c3RpZnkgYXQg e3NlbGYuX2FwcF9wYXRofSIpDQo+ID4+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVu Y3J1c3RpZnkgdmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ID4+ICsgICAgICAgIHNl bGYuX3RjLkxvZ1N0ZE91dCgnXG4nKQ0KPiA+PiArICAgICAgICBsb2dnaW5nLmluZm8oZiJGb3Vu ZCBVbmNydXN0aWZ5IGF0IHtzZWxmLl9hcHBfcGF0aH0iKQ0KPiA+PiArICAgICAgICBsb2dnaW5n LmluZm8oZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiA+PiAr ICAgICAgICBsb2dnaW5nLmluZm8oJ1xuJykNCj4gPj4gKw0KPiA+PiArICAgIGRlZiBfcHJvY2Vz c191bmNydXN0aWZ5X3Jlc3VsdHMoc2VsZikgLT4gTm9uZToNCj4gPj4gKyAgICAgICAgIiIiDQo+ ID4+ICsgICAgICAgIFByb2Nlc3MgdGhlIHJlc3VsdHMgZnJvbSBVbmNydXN0aWZ5Lg0KPiA+PiAr DQo+ID4+ICsgICAgICAgIERldGVybWluZXMgd2hldGhlciBmb3JtYXR0aW5nIGVycm9ycyBhcmUg cHJlc2VudCBhbmQgbG9ncyBmYWlsdXJlcy4NCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAg ICAgIGZvcm1hdHRlZF9maWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBh dGhsaWIuUGF0aCgNCj4gPj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJn bG9iKGYnKntVbmNydXN0aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0NCj4gPj4gKw0K PiA+PiArICAgICAgICBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudCA9IGxlbihmb3Jt YXR0ZWRfZmlsZXMpDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgaWYgc2VsZi5fZm9ybWF0dGVkX2Zp bGVfZXJyb3JfY291bnQgPiAwOg0KPiA+PiArICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJy b3IoIkZpbGVzIHdpdGggZm9ybWF0dGluZyBlcnJvcnM6XG4iKQ0KPiA+PiArDQo+ID4+ICsgICAg ICAgICAgICBpZiBzZWxmLl9vdXRwdXRfZmlsZV9kaWZmczoNCj4gPj4gKyAgICAgICAgICAgICAg ICBsb2dnaW5nLmluZm8oIkNhbGN1bGF0aW5nIGZpbGUgZGlmZnMuIFRoaXMgbWlnaHQgdGFrZSBh IHdoaWxlLi4uIikNCj4gPj4gKw0KPiA+PiArICAgICAgICBmb3IgZm9ybWF0dGVkX2ZpbGUgaW4g Zm9ybWF0dGVkX2ZpbGVzOg0KPiA+PiArICAgICAgICAgICAgcHJlX2Zvcm1hdHRlZF9maWxlID0g Zm9ybWF0dGVkX2ZpbGVbOi0NCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbihVbmNydXN0aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTild DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgICAgIGlmIHNlbGYuX291dHB1dF9maWxlX2RpZmZzOg0K PiA+PiArICAgICAgICAgICAgICAgIHdpdGggb3BlbihwcmVfZm9ybWF0dGVkX2ZpbGUpIGFzIHBm LCBvcGVuKGZvcm1hdHRlZF9maWxlKSBhcyBmZjoNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5fdGMuTG9nU3RkRXJyb3IoDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBmIkZv cm1hdHRpbmcgZXJyb3JzIGluIHtvcy5wYXRoLnJlbHBhdGgocHJlX2Zvcm1hdHRlZF9maWxlLCBz ZWxmLl9hYnNfcGFja2FnZV9wYXRoKX06XG4iKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICAg ICAgICAgIGZvciBsaW5lIGluIGRpZmZsaWIudW5pZmllZF9kaWZmKHBmLnJlYWRsaW5lcygpLCBm Zi5yZWFkbGluZXMoKSwgZnJvbWZpbGU9cHJlX2Zvcm1hdHRlZF9maWxlLA0KPiA+PiB0b2ZpbGU9 Zm9ybWF0dGVkX2ZpbGUsIG49Myk6DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll90Yy5Mb2dTdGRFcnJvcihsaW5lKQ0KPiA+PiArDQo+ID4+ICsgICAgICAgICAgICAgICAgICAg IHNlbGYuX3RjLkxvZ1N0ZEVycm9yKCdcbicpDQo+ID4+ICsgICAgICAgICAgICBlbHNlOg0KPiA+ PiArICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKHByZV9mb3JtYXR0ZWRfZmls ZSkNCj4gPj4gKw0KPiA+PiArICAgIGRlZiBfcmVtb3ZlX3RyZWUoc2VsZiwgZGlyX3BhdGg6IHN0 ciwgaWdub3JlX2Vycm9yczogYm9vbCA9IEZhbHNlKSAtPiBOb25lOg0KPiA+PiArICAgICAgICAi IiINCj4gPj4gKyAgICAgICAgSGVscGVyIGZvciByZW1vdmluZyBhIGRpcmVjdG9yeS4gT3ZlciB0 aW1lIHRoZXJlIGhhdmUgYmVlbg0KPiA+PiArICAgICAgICBtYW55IHByaXZhdGUgaW1wbGVtZW50 YXRpb25zIG9mIHRoaXMgZHVlIHRvIHJlbGlhYmlsaXR5IGlzc3VlcyBpbiB0aGUNCj4gPj4gKyAg ICAgICAgc2h1dGlsIGltcGxlbWVudGF0aW9ucy4gVG8gY29uc29saWRhdGUgb24gYSBzaW5nbGUg ZnVuY3Rpb24gdGhpcyBoZWxwZXIgaXMgYWRkZWQuDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgT24g ZXJyb3IgdHJ5IHRvIGNoYW5nZSBmaWxlIGF0dHJpYnV0ZXMuIEFsc28gYWRkIHJldHJ5IGxvZ2lj Lg0KPiA+PiArDQo+ID4+ICsgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdGVtcG9yYXJpbHkgYm9y cm93ZWQgZnJvbSBlZGsydG9vbGxpYi51dGlsaXR5X2Z1bmN0aW9ucw0KPiA+PiArICAgICAgICBz aW5jZSB0aGUgdmVyc2lvbiB1c2VkIGluIGVkazIgaXMgbm90IHJlY2VudCBlbm91Z2ggdG8gaW5j bHVkZSB0aGUNCj4gPj4gKyAgICAgICAgZnVuY3Rpb24uDQo+ID4+ICsNCj4gPj4gKyAgICAgICAg VGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgIlJlbW92ZVRyZWUiIHdoZW4gaXQg aXMgYXZhaWxhYmxlLg0KPiA+PiArDQo+ID4+ICsgICAgICAgIEFyZ3M6DQo+ID4+ICsgICAgICAg ICAgLSBkaXJfcGF0aDogUGF0aCB0byBkaXJlY3RvcnkgdG8gcmVtb3ZlLg0KPiA+PiArICAgICAg ICAgIC0gaWdub3JlX2Vycm9yczogV2hldGhlciB0byBpZ25vcmUgZXJyb3JzIGR1cmluZyByZW1v dmFsDQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArDQo+ID4+ICsgICAgICAgIGRlZiBfcmVtb3Zl X3JlYWRvbmx5KGZ1bmMsIHBhdGgsIF8pOg0KPiA+PiArICAgICAgICAgICAgIiIiDQo+ID4+ICsg ICAgICAgICAgICBQcml2YXRlIGZ1bmN0aW9uIHRvIGF0dGVtcHQgdG8gY2hhbmdlIHBlcm1pc3Np b25zIG9uIGZpbGUvZm9sZGVyIGJlaW5nIGRlbGV0ZWQuDQo+ID4+ICsgICAgICAgICAgICAiIiIN Cj4gPj4gKyAgICAgICAgICAgIG9zLmNobW9kKHBhdGgsIG9zLnN0YXQuU19JV1JJVEUpDQo+ID4+ ICsgICAgICAgICAgICBmdW5jKHBhdGgpDQo+ID4+ICsNCj4gPj4gKyAgICAgICAgZm9yIF8gaW4g cmFuZ2UoMyk6ICAjIHJldHJ5IHVwIHRvIDMgdGltZXMNCj4gPj4gKyAgICAgICAgICAgIHRyeToN Cj4gPj4gKyAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcl9wYXRoLCBpZ25vcmVfZXJy b3JzPWlnbm9yZV9lcnJvcnMsIG9uZXJyb3I9X3JlbW92ZV9yZWFkb25seSkNCj4gPj4gKyAgICAg ICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoNCj4gPj4gKyAgICAgICAgICAgICAgICBsb2dn aW5nLndhcm5pbmcoZiJGYWlsZWQgdG8gZnVsbHkgcmVtb3ZlIHtkaXJfcGF0aH06IHtlcnJ9IikN Cj4gPj4gKyAgICAgICAgICAgIGVsc2U6DQo+ID4+ICsgICAgICAgICAgICAgICAgYnJlYWsNCj4g Pj4gKyAgICAgICAgZWxzZToNCj4gPj4gKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihm IkZhaWxlZCB0byByZW1vdmUge2Rpcl9wYXRofSIpDQo+ID4+ICsNCj4gPj4gKyAgICBkZWYgX3J1 bl91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6DQo+ID4+ICsgICAgICAgICIiIg0KPiA+PiArICAg ICAgICBSdW5zIFVuY3J1c3RpZnkgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgcGx1Z2luIGV4ZWN1dGlv bi4NCj4gPj4gKyAgICAgICAgIiIiDQo+ID4+ICsgICAgICAgIGxvZ2dpbmcuaW5mbygiRXhlY3V0 aW5nIFVuY3J1c3RpZnkuIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxlLi4uIikNCj4gPj4gKyAgICAg ICAgc3RhcnRfdGltZSA9IHRpbWVpdC5kZWZhdWx0X3RpbWVyKCkNCj4gPj4gKyAgICAgICAgc2Vs Zi5fZXhlY3V0ZV91bmNydXN0aWZ5KCkNCj4gPj4gKyAgICAgICAgZW5kX3RpbWUgPSB0aW1laXQu ZGVmYXVsdF90aW1lcigpIC0gc3RhcnRfdGltZQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIGV4ZWN1 dGlvbl9zdW1tYXJ5ID0gZiJVbmNydXN0aWZ5IGV4ZWN1dGVkIGFnYWluc3Qge2xlbihzZWxmLl9h YnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSBmaWxlcyBpbg0KPiA+PiB7c2VsZi5fcGFja2FnZV9u YW1lfSBpbiB7ZW5kX3RpbWU6LjJmfSBzZWNvbmRzLlxuIg0KPiA+PiArDQo+ID4+ICsgICAgICAg IHNlbGYuX3RjLkxvZ1N0ZE91dChleGVjdXRpb25fc3VtbWFyeSkNCj4gPj4gKyAgICAgICAgbG9n Z2luZy5pbmZvKGV4ZWN1dGlvbl9zdW1tYXJ5KQ0KPiA+PiArDQo+ID4+ICsgICAgICAgIGlmIHNl bGYuX2FwcF9leGl0X2NvZGUgIT0gMCBhbmQgc2VsZi5fYXBwX2V4aXRfY29kZSAhPSAxOg0KPiA+ PiArICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUFwcEV4ZWN1dGlvbkV4Y2VwdGlvbigNCj4g Pj4gKyAgICAgICAgICAgICAgICBmIkVycm9yIHtzdHIoc2VsZi5fYXBwX2V4aXRfY29kZSl9IHJl dHVybmVkIGZyb20gVW5jcnVzdGlmeTpcblxue3N0cihzZWxmLl9hcHBfb3V0cHV0KX0iKQ0KPiA+ PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2ZpbGVfaGVh ZGVyLnR4dCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9maWxlX2hlYWRlci50 eHQNCj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi4y OTU1YTczNGRmZTENCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5L2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0DQo+ID4+IEBAIC0wLDAgKzEsOSBA QA0KPiA+PiArLyoqIEBmaWxlDQo+ID4+ICsgIEJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWxl J3MgcHVycG9zZS4NCj4gPj4gKw0KPiA+PiArICBEZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUg ZmlsZSdzIGNvbnRlbnRzIGFuZCBvdGhlciB1c2VmdWwNCj4gPj4gKyAgaW5mb3JtYXRpb24gZm9y IGEgcGVyc29uIHZpZXdpbmcgdGhlIGZpbGUgZm9yIHRoZSBmaXJzdCB0aW1lLg0KPiA+PiArDQo+ ID4+ICsgIDw8Q29weXJpZ2h0Pj4NCj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4gKyoqLw0KPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gYi8ucHl0b29s L1BsdWdpbi9VbmNydXN0aWZ5L2RlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dA0KPiA+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjY2ZWRjNzJlNjczMQ0K PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkv ZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4+IEBAIC0wLDAgKzEsMTUgQEANCj4gPj4g Ky8qKg0KPiA+PiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGlzIGZ1bmN0aW9uJ3MgcHVycG9z ZS4NCj4gPj4gKw0KPiA+PiArICBGb2xsb3cgaXQgaW1tZWRpYXRlbHkgd2l0aCB0aGUgZGV0YWls ZWQgZGVzY3JpcHRpb24uDQo+ID4+ICsNCj4gPj4gKyAgQHBhcmFtW2luXSAgICAgIEFyZzEgIERl c2NyaXB0aW9uIG9mIEFyZzEuDQo+ID4+ICsgIEBwYXJhbVtpbl0gICAgICBBcmcyICBEZXNjcmlw dGlvbiBvZiBBcmcyIFRoaXMgaXMgY29tcGxpY2F0ZWQgYW5kIHJlcXVpcmVzDQo+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSBsaW5lcyB0byBkZXNjcmliZS4NCj4gPj4gKyAg QHBhcmFtW291dF0gICAgIEFyZzMgIERlc2NyaXB0aW9uIG9mIEFyZzMuDQo+ID4+ICsgIEBwYXJh bVtpbiwgb3V0XSBBcmc0ICBEZXNjcmlwdGlvbiBvZiBBcmc0Lg0KPiA+PiArDQo+ID4+ICsgIEBy ZXR2YWwgVkFMX09ORSAgRGVzY3JpcHRpb24gb2Ygd2hhdCBWQUxfT05FIHNpZ25pZmllcy4NCj4g Pj4gKyAgQHJldHZhbCBPVEhFUiAgICBUaGlzIGlzIHRoZSBvbmx5IG90aGVyIHJldHVybiB2YWx1 ZS4gSWYgdGhlcmUgd2VyZSBvdGhlcg0KPiA+PiArICAgICAgICAgICAgICAgICAgIHJldHVybiB2 YWx1ZXMsIHRoZXkgd291bGQgYmUgbGlzdGVkLg0KPiA+PiArKiovDQo+ID4+IGRpZmYgLS1naXQg YS8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnkuY2ZnIGIvLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5LmNmZw0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ2ZTk4ZGZhOWMwMQ0KPiA+PiAtLS0gL2Rldi9udWxs DQo+ID4+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeS5jZmcNCj4g Pj4gQEAgLTAsMCArMSw0NjYgQEANCj4gPj4gKyMjIEBmaWxlDQo+ID4+ICsjIFVuY3J1c3RpZnkg Q29uZmlndXJhdGlvbiBGaWxlIGZvciBFREsgSUkgQyBDb2RlDQo+ID4+ICsjDQo+ID4+ICsjIENv ZGluZyBTdGFuZGFyZDogaHR0cHM6Ly9lZGsyLWRvY3MuZ2l0Ym9vay5pby9lZGstaWktYy1jb2Rp bmctc3RhbmRhcmRzLXNwZWNpZmljYXRpb24vDQo+ID4+ICsjDQo+ID4+ICsjIFRoaXMgY29uZmln dXJhdGlvbiBmaWxlIGlzIG1lYW50IHRvIGJlIGEgImJlc3QgYXR0ZW1wdCIgdG8gYWxpZ24gd2l0 aCB0aGUNCj4gPj4gKyMgZGVmaW5pdGlvbnMgaW4gdGhlIEVESyBJSSBDIENvZGluZyBTdGFuZGFy ZHMgU3BlY2lmaWNhdGlvbi4NCj4gPj4gKyMNCj4gPj4gKyMgQ29weXJpZ2h0IChjKSBNaWNyb3Nv ZnQgQ29ycG9yYXRpb24uDQo+ID4+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4+ICsjIw0KPiA+PiArDQo+ID4+ICsjIEZvcmNlIFVURi04IGVuY29k aW5nIChubyBVVEYtMTYpDQo+ID4+ICtlbmFibGVfZGlncmFwaHMgICAgICAgICAgICAgICAgID0g ZmFsc2UNCj4gPj4gK3V0ZjhfYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ PiArdXRmOF9mb3JjZSAgICAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPj4gKw0KPiA+PiAr IyBDb2RlIHdpZHRoIC8gbGluZSBzcGxpdHRpbmcNCj4gPj4gKyNjb2RlX3dpZHRoICAgICAgICAg ICAgICAgICAgICAgID0xMjAgICAgICMgVE9ETzogVGhpcyBjYXVzZXMgbm9uLWRldGVybWluaXN0 aWMgYmVoYXZpb3VyIGluIHNvbWUgY2FzZXMgd2hlbiBjb2RlDQo+IHdyYXBzDQo+ID4+ICtsc19j b2RlX3dpZHRoICAgICAgICAgICAgICAgICAgID1mYWxzZQ0KPiA+PiArbHNfZm9yX3NwbGl0X2Z1 bGwgICAgICAgICAgICAgICA9dHJ1ZQ0KPiA+PiArbHNfZnVuY19zcGxpdF9mdWxsICAgICAgICAg ICAgICA9dHJ1ZQ0KPiA+PiArcG9zX2NvbW1hICAgICAgICAgICAgICAgICAgICAgICA9dHJhaWwN Cj4gPj4gKw0KPiA+PiArIyA1LjEuNyAgQWxsIGZpbGVzIG11c3QgZW5kIHdpdGggQ1JMRg0KPiA+ PiArbmV3bGluZXMgICAgICAgICAgICAgICAgICAgICAgICA9IGNybGYNCj4gPj4gKw0KPiA+PiAr IyA1LjEuMiBEbyBub3QgdXNlIHRhYiBjaGFyYWN0ZXJzDQo+ID4+ICsNCj4gPj4gK2NtdF9jb252 ZXJ0X3RhYl90b19zcGFjZXMgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGNvbnZlcnQg YWxsIHRhYnMgdG8gc3BhY2VzIGluIGNvbW1lbnRzLiBJZiBmYWxzZSwgdGFicyBpbg0KPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIGFy ZSBsZWZ0IGFsb25lLCB1bmxlc3MgdXNlZCBmb3IgaW5kZW50aW5nLg0KPiA+PiAraW5kZW50X2Nv bHVtbnMgICAgICAgICAgICAgICAgICA9IDIgICAgICAgICAjIE51bWJlciBvZiBzcGFjZXMgZm9y IGluZGVudGF0aW9uDQo+ID4+ICtpbmRlbnRfd2l0aF90YWJzICAgICAgICAgICAgICAgID0gMCAg ICAgICAgICMgRG8gbm90IHVzZSBUQUIgY2hhcmFjdGVycw0KPiA+PiArc3RyaW5nX3JlcGxhY2Vf dGFiX2NoYXJzICAgICAgICA9IHRydWUgICAgICAjIFJlcGxhY2UgVEFCIHdpdGggU1BBQ0UNCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOb3RlOiBU aGlzIHdpbGwgYnJlYWsgLnJvYm90IGZpbGVzIGJ1dCBpcyBuZWVkZWQgZm9yIGVkazIgc3R5bGUN Cj4gPj4gKw0KPiA+PiArIyA1LjIuMS4xIFRoZXJlIHNoYWxsIGJlIG9ubHkgb25lIHN0YXRlbWVu dCBvbiBhIGxpbmUgKHN0YXRlbWVudCBlbmRzIHdpdGggOykNCj4gPj4gK25sX211bHRpX2xpbmVf Y29uZCAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBBZGQgYSBuZXdsaW5lIGJldHdlZW4gJykn IGFuZCAneycgaWYgdGhlICcpJyBpcyBvbiBhIGRpZmZlcmVudCBsaW5lIHRoYW4NCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgaWYvZm9yL2V0 Yy4NCj4gPj4gK25sX2FmdGVyX3NlbWljb2xvbiAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBX aGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgc2VtaWNvbG9ucywgZXhjZXB0IGluICdmb3In IHN0YXRlbWVudHMuDQo+ID4+ICsNCj4gPj4gKyMgNS4yLjEuMyBBbiBvcGVuIGJyYWNlICd7JyBn b2VzIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIGNsb3NpbmcgcGFyZW50aGVzaXMgJyknIG9mIHNp bXBsZSBwcmVkaWNhdGUgZXhwcmVzc2lvbnMNCj4gPj4gK21vZF9mdWxsX2JyYWNlX2RvICAgICAg ICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1s aW5lICdkbycgc3RhdGVtZW50Lg0KPiA+PiArbW9kX2Z1bGxfYnJhY2VfZm9yICAgICAgICAgICAg ICA9IGFkZA0KPiA+PiArbW9kX2Z1bGxfYnJhY2VfZnVuY3Rpb24gICAgICAgICA9IGFkZCAgICAg ICAjIEFkZCBvciByZW1vdmUgYnJhY2VzIG9uIGEgc2luZ2xlLWxpbmUgZnVuY3Rpb24gZGVmaW5p dGlvbi4NCj4gPj4gK21vZF9mdWxsX2JyYWNlX2lmICAgICAgICAgICAgICAgPSBhZGQgICAgICAg IyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lICdpZicgc3RhdGVtZW50LiBC cmFjZXMgd2lsbCBub3QgYmUNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyByZW1vdmVkIGlmIHRoZSBicmFjZWQgc3RhdGVtZW50IGNvbnRhaW5zIGFu ICdlbHNlJy4NCj4gPj4gK21vZF9mdWxsX2JyYWNlX2lmX2NoYWluICAgICAgICAgPSBmYWxzZQ0K PiA+PiArbW9kX2Z1bGxfYnJhY2Vfd2hpbGUgICAgICAgICAgICA9IGFkZA0KPiA+PiArDQo+ID4+ ICsjIDUuMi4xLjQgQSBjbG9zZSBicmFjZSAnfScgYWx3YXlzIGdvZXMgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgbGFzdCBsaW5lIG9mIHRoZSBib2R5DQo+ID4+ICtlYXRfYmxhbmtzX2FmdGVyX29w ZW5fYnJhY2UgICAgID0gdHJ1ZQ0KPiA+PiArZWF0X2JsYW5rc19iZWZvcmVfY2xvc2VfYnJhY2Ug ICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gcmVtb3ZlIGJsYW5rIGxpbmVzIGJlZm9yZSAnfScu DQo+ID4+ICsNCj4gPj4gKyMgNS4yLjIuMiBBbHdheXMgcHV0IHNwYWNlIGJlZm9yZSBhbmQgYWZ0 ZXIgYmluYXJ5IG9wZXJhdG9ycy4NCj4gPj4gK3NwX2Fzc2lnbiAgICAgICAgICAgICAgICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3VuZCBhc3NpZ25tZW50IG9w ZXJhdG9yICc9JywgJys9JywgZXRjLg0KPiA+PiArc3BfYXNzaWduX2RlZmF1bHQgICAgICAgICAg ICAgICA9IGFkZA0KPiA+PiArc3BfYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAg ICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5kIGJvb2xlYW4gb3BlcmF0b3JzICcmJicg YW5kICd8fCcuDQo+ID4+ICtzcF9jb21wYXJlICAgICAgICAgICAgICAgICAgICAgID0gYWRkICAg ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgY29tcGFyZSBvcGVyYXRvciAnPCcsICc+ JywgJz09JywgZXRjLg0KPiA+PiArDQo+ID4+ICsjIDUuMi4yLjMgRG8gbm90IHB1dCBzcGFjZSBi ZXR3ZWVuIHVuYXJ5IG9wZXJhdG9ycyBhbmQgdGhlaXIgb2JqZWN0DQo+ID4+ICtzcF9hZGRyICAg ICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQSBvciByZW1vdmUgc3BhY2UgYWZ0 ZXIgdGhlICcmJyAoYWRkcmVzcy1vZikgdW5hcnkgb3BlcmF0b3IuDQo+ID4+ICtzcF9pbmNkZWMg ICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBi ZXR3ZWVuICcrKycgYW5kICctLScgdGhlIHdvcmQgdG8gd2hpY2ggaXQgaXMgYmVpbmcNCj4gPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcHBsaWVkLCBh cyBpbiAnKC0teCknIG9yICd5Kys7Jy4NCj4gPj4gK3NwX2ludiAgICAgICAgICAgICAgICAgICAg ICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnficgKGlu dmVydCkgdW5hcnkgb3BlcmF0b3IuDQo+ID4+ICtzcF9ub3QgICAgICAgICAgICAgICAgICAgICAg ICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJyEnIChub3Qp IHVuYXJ5IG9wZXJhdG9yLg0KPiA+PiArc3Bfc2lnbiAgICAgICAgICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJysnIG9yICctJywgYXMgaW4g J3ggPSAtNScgb3IgJ3kgPSArNycuDQo+ID4+ICsNCj4gPj4gKyMgNS4yLjIuNCBTdWJzZXF1ZW50 IGxpbmVzIG9mIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbHMgc2hvdWxkIGxpbmUgdXAgdHdvIHNw YWNlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZ1bmN0aW9uDQo+ID4+ICsjICAgICAgICAg bmFtZQ0KPiA+PiArbmxfZnVuY19jYWxsX2FyZ3NfbXVsdGlfbGluZSAgICA9IHRydWUgICAgICAj IFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGNh bGwgaWYgJygnIGFuZA0KPiAnKScNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBhcmUgaW4gZGlmZmVyZW50IGxpbmVzLg0KPiA+PiArbmxfZnVuY19j YWxsX2FyZ3NfbXVsdGlfbGluZV9pZ25vcmVfY2xvc3VyZXMgPSBmYWxzZQ0KPiA+PiArbmxfZnVu Y19jYWxsX3N0YXJ0X211bHRpX2xpbmUgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEg bmV3bGluZSBhZnRlciAnKCcgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQgJyknIGFyZQ0K PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGRp ZmZlcmVudCBsaW5lcy4NCj4gPj4gKw0KPiA+PiArIyAtIEluZGVudCBlYWNoIGFyZ3VtZW50IDIg c3BhY2VzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBuYW1lLiBJZiBhDQo+ID4+ICsj ICAgZnVuY3Rpb24gaXMgY2FsbGVkIHRocm91Z2ggYSBzdHJ1Y3R1cmUgb3IgdW5pb24gbWVtYmVy LCBvZiB0eXBlDQo+ID4+ICsjICAgcG9pbnRlci10by1mdW5jdGlvbiwgdGhlbiBpbmRlbnQgZWFj aCBhcmd1bWVudCAyIHNwYWNlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUNCj4gPj4gKyMgICBtZW1i ZXIgbmFtZS4NCj4gPj4gK2luZGVudF9mdW5jX2NhbGxfZWRrMl9zdHlsZSAgICAgPSB0cnVlICAg ICAgIyBVc2UgRURLMiBpbmRlbnRhdGlvbiBzdHlsZSBmb3IgZnVuY3Rpb24gY2FsbHMgICgqKkNV U1RPTSBTRVRUSU5HKiopDQo+ID4+ICtpbmRlbnRfcGFyZW5fYWZ0ZXJfZnVuY19jYWxsICAgID0g dHJ1ZSAgICAgICMgV2hldGhlciB0byBpbmRlbnQgdGhlIG9wZW4gcGFyZW50aGVzaXMgb2YgYSBm dW5jdGlvbiBjYWxsLCBpZiB0aGUNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBwYXJlbnRoZXNpcyBpcyBvbiBpdHMgb3duIGxpbmUuDQo+ID4+ICsN Cj4gPj4gKyMgLSBBbGlnbiB0aGUgY2xvc2UgcGFyZW50aGVzaXMgd2l0aCB0aGUgc3RhcnQgb2Yg dGhlIGxhc3QgYXJndW1lbnQNCj4gPj4gK2luZGVudF9wYXJlbl9jbG9zZSAgICAgICAgICAgICAg PSAwICAgICAgICAgIyBIb3cgdG8gaW5kZW50IGEgY2xvc2UgcGFyZW50aGVzaXMgYWZ0ZXIgYSBu ZXdsaW5lLg0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjICgwOiBCb2R5LCAxOiBPcGVucGFyZW50aGVzaXMsIDI6IEJyYWNlIGxldmVsKQ0KPiA+PiAr DQo+ID4+ICsNCj4gPj4gKyMgNS4yLjIuNSBBbHdheXMgcHV0IHNwYWNlIGFmdGVyIGNvbW1hcyBv ciBzZW1pY29sb25zIHRoYXQgc2VwYXJhdGUgaXRlbXMNCj4gPj4gK3NwX2FmdGVyX2NvbW1hICAg ICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcs JywgaS5lLiAnYSxiJyB2cy4gJ2EsIGInLg0KPiA+PiArc3BfYmVmb3JlX2NvbW1hICAgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICcsJy4NCj4g Pj4gKw0KPiA+PiArIyA1LjIuMi42IEFsd2F5cyBwdXQgc3BhY2UgYmVmb3JlIGFuIG9wZW4gcGFy ZW50aGVzaXMNCj4gPj4gK3NwX2FmdGVyX3NwYXJlbiAgICAgICAgICAgICAgICAgPSBhZGQgICAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcpJyBvZiBjb250cm9sIHN0YXRlbWVudHMu DQo+ID4+ICtzcF9hdHRyaWJ1dGVfcGFyZW4gICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdfX2F0dHJpYnV0ZV9fJyBhbmQgJygnLg0KPiA+PiAr c3BfYmVmb3JlX3NwYXJlbiAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYmVmb3JlICcoJyBvZiBjb250cm9sIHN0YXRlbWVudHMNCj4gPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoJ2lmJywgJ2ZvcicsICdzd2l0 Y2gnLCAnd2hpbGUnLCBldGMuKS4NCj4gPj4gK3NwX2RlZmluZWRfcGFyZW4gICAgICAgICAgICAg ICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2RlZmluZWQnIGFu ZCAnKCcgaW4gJyNpZiBkZWZpbmVkIChGT08pJy4NCj4gPj4gK3NwX2Z1bmNfY2FsbF9wYXJlbiAg ICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVu Y3Rpb24gbmFtZSBhbmQgJygnIG9uIGZ1bmN0aW9uIGNhbGxzLg0KPiA+PiArc3BfZnVuY19jYWxs X3BhcmVuX2VtcHR5ICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0 d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCAnKCknIG9uIGZ1bmN0aW9uIGNhbGxzDQo+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aG91dCBwYXJhbWV0 ZXJzLiBJZiBzZXQgdG8gaWdub3JlICh0aGUgZGVmYXVsdCksIHNwX2Z1bmNfY2FsbF9wYXJlbg0K PiBpcw0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IHVzZWQuDQo+ID4+ICtzcF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gYWRkICAgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGFsaWFzIG5hbWUgYW5kICcoJyBvZiBhIG5v bi1wb2ludGVyIGZ1bmN0aW9uDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgdHlwZSB0eXBlZGVmLg0KPiA+PiArc3BfZnVuY19wcm90b19wYXJlbiAg ICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBmdW5j dGlvbiBuYW1lIGFuZCAnKCknIG9uIGZ1bmN0aW9uDQo+IGRlY2xhcmF0aW9uDQo+ID4+ICtzcF9z aXplb2ZfcGFyZW4gICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBiZXR3ZWVuICdzaXplb2YnIGFuZCAnKCcuDQo+ID4+ICtzcF90eXBlX2Z1bmMgICAgICAg ICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIHJl dHVybiB0eXBlIGFuZCBmdW5jdGlvbiBuYW1lLiBBIG1pbmltdW0gb2YNCj4gMQ0KPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzIGZvcmNlZCBleGNl cHQgZm9yIHBvaW50ZXIgcmV0dXJuIHR5cGVzLg0KPiA+PiArDQo+ID4+ICsjIE5vdCBzcGVjaWZp ZWQsIGJ1dCBhbHNvIGdvb2Qgc3R5bGUgdG8gcmVtb3ZlIHNwYWNlcyBpbnNpZGUgcGFyZW50aGVz ZXMgKE9wdGlvbmFsKQ0KPiA+PiArc3BfY3BhcmVuX29wYXJlbiAgICAgICAgICAgICAgICA9IHJl bW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBiYWNrLXRvLWJhY2sgcGFyZW50 aGVzZXMsIGkuZS4gJykoJyB2cy4gJykNCj4gKCcuDQo+ID4+ICtzcF9pbnNpZGVfZnBhcmVuICAg ICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgZnVu Y3Rpb24gJygnIGFuZCAnKScuDQo+ID4+ICtzcF9pbnNpZGVfZnBhcmVucyAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgZW1wdHkgZnVuY3Rpb24g JygpJy4NCj4gPj4gK3NwX2luc2lkZV9wYXJlbiAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lkZSAnKCcgYW5kICcpJy4NCj4gPj4gK3NwX2luc2lk ZV9wYXJlbl9jYXN0ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl cyBpbnNpZGUgY2FzdCBwYXJlbnRoZXNlcy4gJyhpbnQpeCcNCj4gPj4gK3NwX2luc2lkZV9zcXVh cmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lk ZSBhIG5vbi1lbXB0eSAnWycgYW5kICddJy4NCj4gPj4gK3NwX3BhcmVuX3BhcmVuICAgICAgICAg ICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gbmVzdGVk IHBhcmVudGhlc2VzLCBpLmUuICcoKCcgdnMuICcpICknLg0KPiA+PiArc3Bfc3F1YXJlX2ZwYXJl biAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2Vl biAnXScgYW5kICcoJyB3aGVuIHBhcnQgb2YgYSBmdW5jdGlvbiBjYWxsLg0KPiA+PiArDQo+ID4+ ICsjIDUuMi4yLjcgUHV0IGEgc3BhY2UgYmVmb3JlIGFuIG9wZW4gYnJhY2UgaWYgaXQgaXMgbm90 IG9uIGl0cyBvd24gbGluZQ0KPiA+PiArc3BfZG9fYnJhY2Vfb3BlbiAgICAgICAgICAgICAgICA9 IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnZG8nIGFuZCAneycuDQo+ ID4+ICtzcF9wYXJlbl9icmFjZSAgICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZSBiZXR3ZWVuICcpJyBhbmQgJ3snLg0KPiA+PiArc3Bfc3BhcmVuX2JyYWNl ICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2Vl biAnKScgYW5kICd7JyBvZiBvZiBjb250cm9sIHN0YXRlbWVudHMuDQo+ID4+ICsNCj4gPj4gKyMg NS4yLjIuOCBEbyBub3QgcHV0IHNwYWNlcyBhcm91bmQgc3RydWN0dXJlIG1lbWJlciBhbmQgcG9p bnRlciBvcGVyYXRvcnMNCj4gPj4gK3NwX2FmdGVyX2J5cmVmICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHJlZmVyZW5jZSBzaWduICcmJywg aWYgZm9sbG93ZWQgYnkgYSB3b3JkLg0KPiA+PiArc3BfYmVmb3JlX2J5cmVmICAgICAgICAgICAg ICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIGEgcmVmZXJlbmNl IHNpZ24gJyYnLg0KPiA+PiArc3BfZGVyZWYgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92 ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICcqJyAoZGVyZWZlcmVuY2UpIHVu YXJ5IG9wZXJhdG9yLiBUaGlzDQo+IGRvZXMNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBub3QgYWZmZWN0IHRoZSBzcGFjaW5nIGFmdGVyIGEgJyon IHRoYXQgaXMgcGFydCBvZiBhIHR5cGUuDQo+ID4+ICtzcF9tZW1iZXIgICAgICAgICAgICAgICAg ICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgdGhlICcuJyBv ciAnLT4nIG9wZXJhdG9ycy4NCj4gPj4gKw0KPiA+PiArIyA1LjIuMi45IERvIG5vdCBwdXQgc3Bh Y2VzIGJlZm9yZSBvcGVuIGJyYWNrZXRzIG9mIGFycmF5IHN1YnNjcmlwdHMNCj4gPj4gK3NwX2Jl Zm9yZV9zcXVhcmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNw YWNlIGJlZm9yZSAnWycgKGV4Y2VwdCAnW10nKS4NCj4gPj4gK3NwX2JlZm9yZV9zcXVhcmVzICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnW10n Lg0KPiA+PiArc3BfYmVmb3JlX3ZhcmRlZl9zcXVhcmUgICAgICAgICA9IHJlbW92ZSAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlICdbJyBmb3IgYSB2YXJpYWJsZSBkZWZpbml0aW9uLg0K PiA+PiArDQo+ID4+ICsjIDUuMi4yLjEwIFVzZSBleHRyYSBwYXJlbnRoZXNlcyByYXRoZXIgdGhh biBkZXBlbmRpbmcgb24gaW4tZGVwdGgga25vd2xlZGdlIG9mIHRoZSBvcmRlciBvZiBwcmVjZWRl bmNlIG9mIEMNCj4gPj4gK21vZF9mdWxsX3BhcmVuX2lmX2Jvb2wgICAgICAgICAgPSB0cnVlICAg ICAgIyBXaGV0aGVyIHRvIGZ1bGx5IHBhcmVudGhlc2l6ZSBCb29sZWFuIGV4cHJlc3Npb25zIGlu ICd3aGlsZScgYW5kICdpZicNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBzdGF0ZW1lbnQsIGFzIGluICdpZiAoYSAmJiBiID4gYyknID0+ICdpZiAo YSAmJiAoYiA+IGMpKScuDQo+ID4+ICsNCj4gPj4gKyMgNS4yLjIuMTEgQWxpZ24gYSBjb250aW51 YXRpb24gbGluZSB3aXRoIHRoZSBwYXJ0IG9mIHRoZSBsaW5lIHRoYXQgaXQgY29udGludWVzLg0K PiA+PiArdXNlX2luZGVudF9jb250aW51ZV9vbmx5X29uY2UgICA9IHRydWUNCj4gPj4gKw0KPiA+ PiArIyBBZGRpdGlvbmFsICd7fScgYnJhY2luZyBydWxlcyAoT3B0aW9uYWwpDQo+ID4+ICsjIE5P VEUgLSBUaGUgc3R5bGUgZ3VpZGUgc3BlY2lmaWVzIHR3byBkaWZmZXJlbnQgc3R5bGVzIGZvciBi cmFjZXMsDQo+ID4+ICsjIHNvIHRoZXNlIGFyZSBpZ25vcmVkIGZvciBub3cgdG8gYWxsb3cgZGV2 ZWxvcGVycyBzb21lIGZsZXhpYmlsaXR5Lg0KPiA+PiArbmxfYWZ0ZXJfYnJhY2VfY2xvc2UgICAg ICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciAnfScu IERvZXMgbm90IGFwcGx5IGlmIGZvbGxvd2VkIGJ5IGENCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWNlc3NhcnkgJzsnLg0KPiA+PiArbmxfYnJh Y2VfZWxzZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3 bGluZSBiZXR3ZWVuICd9JyBhbmQgJ2Vsc2UnLg0KPiA+PiArbmxfYnJhY2Vfd2hpbGUgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICd9 JyBhbmQgJ3doaWxlJyBvZiAnZG8nIHN0YXRlbWVudC4NCj4gPj4gK25sX2RvX2JyYWNlICAgICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2Vl biAnZG8nIGFuZCAneycuDQo+ID4+ICtubF9lbHNlX2JyYWNlICAgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAneycu DQo+ID4+ICtubF9lbHNlX2lmICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAnaWYnLg0KPiA+PiArbmxfZWxz ZWlmX2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3 bGluZSBiZXR3ZWVuICdlbHNlIGlmJyBhbmQgJ3snLg0KPiA+PiArbmxfZW51bV9icmFjZSAgICAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVu ICdlbnVtJyBhbmQgJ3snLg0KPiA+PiArbmxfZmNhbGxfYnJhY2UgICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGEgZnVuY3Rpb24gY2Fs bCdzICcpJyBhbmQgJ3snLA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIGFzIGluICdsaXN0X2Zvcl9lYWNoKGl0ZW0sICZsaXN0KSB7IH0nLg0KPiA+ PiArbmxfZm9yX2JyYWNlICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciBy ZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdmb3InIGFuZCAneycuDQo+ID4+ICtubF9pZl9icmFjZSAg ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJl dHdlZW4gJ2lmJyBhbmQgJ3snLg0KPiA+PiArbmxfc3RydWN0X2JyYWNlICAgICAgICAgICAgICAg ICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdzdHJ1Y3QgYW5k ICd7Jy4NCj4gPj4gK25sX3N3aXRjaF9icmFjZSAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnc3dpdGNoJyBhbmQgJ3snLg0KPiA+PiAr bmxfdW5pb25fYnJhY2UgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1v dmUgbmV3bGluZSBiZXR3ZWVuICd1bmlvbicgYW5kICd7Jy4NCj4gPj4gK25sX3doaWxlX2JyYWNl ICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiAnd2hpbGUnIGFuZCAneycuDQo+ID4+ICsNCj4gPj4gKyMgQWRkaXRpb25hbCB3aGl0ZXNw YWNlIHJ1bGVzIChPcHRpb25hbCkNCj4gPj4gK3NwX2FmdGVyX3B0cl9zdGFyICAgICAgICAgICAg ICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHBvaW50ZXIgc3RhciAn KicsIGlmIGZvbGxvd2VkIGJ5IGEgd29yZC4NCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBVc2VmdWwgd2hlbiBwYWlyZWQgd2l0aCBhbGlnbl92YXJf ZGVmX3N0YXJfc3R5bGU9PTINCj4gPj4gK3NwX2FmdGVyX3B0cl9zdGFyX2Z1bmMgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIGEgcG9pbnRlciBzdGFyICcq JywgaWYgZm9sbG93ZWQgYnkgYSBmdW5jdGlvbg0KPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIHByb3RvdHlwZSBvciBmdW5jdGlvbiBkZWZpbml0aW9u Lg0KPiA+PiArc3BfYWZ0ZXJfc2VtaSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJzsnLCBleGNlcHQgd2hlbiBmb2xsb3dlZCBieSBhIGNv bW1lbnQuDQo+ID4+ICtzcF9iZWZvcmVfY2FzZV9jb2xvbiAgICAgICAgICAgID0gcmVtb3ZlICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgY2FzZSAnOicuDQo+ID4+ICtzcF9iZWZvcmVf cHRyX3N0YXIgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBi ZWZvcmUgcG9pbnRlciBzdGFyICcqJy4NCj4gPj4gK3NwX2JlZm9yZV9wdHJfc3Rhcl9mdW5jICAg ICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHBvaW50ZXIg c3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgZnVuY3Rpb24NCj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwcm90b3R5cGUgb3IgZnVuY3Rpb24gZGVm aW5pdGlvbi4NCj4gPj4gK3NwX2JlZm9yZV9zZW1pICAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnOycNCj4gPj4gK3NwX2JlZm9yZV9zZW1p X2ZvciAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9y ZSAnOycgaW4gbm9uLWVtcHR5ICdmb3InIHN0YXRlbWVudHMuDQo+ID4+ICtzcF9iZWZvcmVfc2Vt aV9mb3JfZW1wdHkgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZv cmUgYSBzZW1pY29sb24gb2YgYW4gZW1wdHkgcGFydCBvZiBhIGZvcg0KPiBzdGF0ZW1lbnQNCj4g Pj4gK3NwX2JldHdlZW5fcHRyX3N0YXIgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3Ig cmVtb3ZlIHNwYWNlIGJldHdlZW4gcG9pbnRlciBzdGFycyAnKicuIChpZSwgJ1ZPSUQgKionKQ0K PiA+PiArc3BfYnJhY2VfY2xvc2Vfd2hpbGUgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnfScgYW5kICd3aGlsZScuDQo+ID4+ICsNCj4gPj4gK3Nw X2FmdGVyX2Nhc3QgICAgICAgICAgICAgICAgICAgPSByZW1vdmUNCj4gPj4gK3NwX2FmdGVyX3R5 cGUgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPj4gK3NwX2JhbGFuY2VfbmVzdGVkX3BhcmVu cyAgICAgICAgPSBmYWxzZQ0KPiA+PiArc3BfYmVmb3JlX25sX2NvbnQgICAgICAgICAgICAgICA9 IGFkZA0KPiA+PiArc3BfYmVmb3JlX3NxdWFyZV9hc21fYmxvY2sgICAgICA9IGlnbm9yZQ0KPiA+ PiArc3BfYmVmb3JlX3VubmFtZWRfYnlyZWYgICAgICAgICA9IGFkZA0KPiA+PiArc3BfYnJhY2Vf YnJhY2UgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+PiArc3BfYnJhY2VfZWxzZSAgICAg ICAgICAgICAgICAgICA9IGZvcmNlDQo+ID4+ICtzcF9icmFjZV90eXBlZGVmICAgICAgICAgICAg ICAgID0gYWRkDQo+ID4+ICtzcF9jYXNlX2xhYmVsICAgICAgICAgICAgICAgICAgID0gZm9yY2UN Cj4gPj4gK3NwX2NtdF9jcHBfZG94eWdlbiAgICAgICAgICAgICAgPSB0cnVlDQo+ID4+ICtzcF9j b25kX2NvbG9uICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4+ICtzcF9jb25kX3F1ZXN0aW9u ICAgICAgICAgICAgICAgID0gYWRkDQo+ID4+ICtzcF9jcHBfY2FzdF9wYXJlbiAgICAgICAgICAg ICAgID0gZm9yY2UNCj4gPj4gK3NwX2Vsc2VfYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmb3Jj ZQ0KPiA+PiArc3BfZW5kaWZfY210ICAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ID4+ICtz cF9lbnVtX2Fzc2lnbiAgICAgICAgICAgICAgICAgID0gYWRkDQo+ID4+ICtzcF9pbnNpZGVfYnJh Y2VzICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gPj4gK3NwX2luc2lkZV9icmFjZXNfZW1wdHkg ICAgICAgICAgPSBmb3JjZQ0KPiA+PiArc3BfaW5zaWRlX2JyYWNlc19lbnVtICAgICAgICAgICA9 IGZvcmNlDQo+ID4+ICtzcF9pbnNpZGVfYnJhY2VzX3N0cnVjdCAgICAgICAgID0gZm9yY2UNCj4g Pj4gK3NwX3BwX2NvbmNhdCAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPj4gK3NwX3BwX3N0 cmluZ2lmeSAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPj4gK3NwX3JldHVybl9wYXJlbiAgICAg ICAgICAgICAgICAgPSBhZGQNCj4gPj4gK3NwX3NwZWNpYWxfc2VtaSAgICAgICAgICAgICAgICAg PSBmb3JjZQ0KPiA+PiArc3Bfd2hpbGVfcGFyZW5fb3BlbiAgICAgICAgICAgICA9IGZvcmNlDQo+ ID4+ICsNCj4gPj4gKyMgQWRkaXRpb25hbCBJbmRlbnRhdGlvbiBSdWxlcw0KPiA+PiAraW5kZW50 X2FjY2Vzc19zcGVjICAgICAgICAgICAgICA9IDENCj4gPj4gK2luZGVudF9hY2Nlc3Nfc3BlY19i b2R5ICAgICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X2FsaWduX2Fzc2lnbiAgICAgICAgICAg ICA9IHRydWUNCj4gPj4gK2luZGVudF9hbGlnbl9zdHJpbmcgICAgICAgICAgICAgPSB0cnVlDQo+ ID4+ICtpbmRlbnRfYm9vbF9wYXJlbiAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+PiAraW5kZW50 X2JyYWNlX3BhcmVudCAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtpbmRlbnRfYnJhY2VzICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK2luZGVudF9icmFjZXNfbm9fY2xhc3MgICAg ICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X2JyYWNlc19ub19mdW5jICAgICAgICAgICA9IHRy dWUNCj4gPj4gK2luZGVudF9icmFjZXNfbm9fc3RydWN0ICAgICAgICAgPSBmYWxzZQ0KPiA+PiAr aW5kZW50X2NsYXNzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtpbmRlbnRfY2xh c3NfY29sb24gICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK2luZGVudF9jbXRfd2l0aF90YWJz ICAgICAgICAgICAgPSBmYWxzZSAgICAgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29tbWVudHMg dGhhdCBhcmUgbm90IGF0IGEgYnJhY2UgbGV2ZWwgd2l0aCB0YWJzDQo+IG9uDQo+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgdGFic3RvcC4g UmVxdWlyZXMgaW5kZW50X3dpdGhfdGFicz0yLiBJZiBmYWxzZSwgd2lsbCB1c2Ugc3BhY2VzLg0K PiA+PiAraW5kZW50X2NvbDFfY29tbWVudCAgICAgICAgICAgICA9IHRydWUNCj4gPj4gK2luZGVu dF9jb2wxX211bHRpX3N0cmluZ19saXRlcmFsPSB0cnVlDQo+ID4+ICtpbmRlbnRfY29tbWFfcGFy ZW4gICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+PiAraW5kZW50X2Vsc2VfaWYgICAgICAgICAgICAg ICAgICA9IHRydWUNCj4gPj4gK2luZGVudF9leHRlcm4gICAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiA+PiAraW5kZW50X2ZpcnN0X2Jvb2xfZXhwciAgICAgICAgICA9IHRydWUNCj4gPj4gKw0K PiA+PiAraW5kZW50X2Z1bmNfZGVmX3BhcmFtX3BhcmVuX3Bvc190aHJlc2hvbGQgPSAwDQo+ID4+ ICtpbmRlbnRfZnVuY19wYXJhbV9kb3VibGUgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ ICtpbmRlbnRfZnVuY19wcm90b19wYXJhbSAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPj4g K2luZGVudF9pZ25vcmVfYXNtX2Jsb2NrICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+PiAr aW5kZW50X2xhYmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ID4+ICtpbmRl bnRfbWVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gPj4gK2luZGVudF9u YW1lc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK2luZGVudF9w YXJhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiA+PiAraW5kZW50X3BhcmVu X25sICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X3BhcmVu X29wZW5fYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X3ByZXNl cnZlX3NxbCAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X3JlbGF0 aXZlX3NpbmdsZV9saW5lX2NvbW1lbnRzICAgICAgPSBmYWxzZQ0KPiA+PiAraW5kZW50X3Npbmdf bGluZV9jb21tZW50cyAgICAgICAgICAgICAgICAgPSAwDQo+ID4+ICtpbmRlbnRfc2luZ2xlX25l d2xpbmVzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtpbmRlbnRfc3F1YXJlX25s ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtpbmRlbnRfc3dpdGNoX2Nh c2UgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gPj4gK2luZGVudF90ZW1wbGF0ZV9wYXJh bSAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiA+PiAraW5kZW50X3Zhcl9kZWZfYmxrICAg ICAgICAgICAgICAgICAgICAgICAgPSAwDQo+ID4+ICtpbmRlbnRfdmFyX2RlZl9jb250ICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICsNCj4gPj4gKyMgVGlkeS11cCBydWxlcyAo T3B0aW9uYWwpDQo+ID4+ICttb2RfbW92ZV9jYXNlX2JyZWFrICAgICAgICAgICAgID0gdHJ1ZSAg ICAgICMgV2hldGhlciB0byBtb3ZlIGEgJ2JyZWFrJyB0aGF0IGFwcGVhcnMgYWZ0ZXIgYSBmdWxs eSBicmFjZWQgJ2Nhc2UnDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgYmVmb3JlIHRoZSBjbG9zZSBicmFjZSwgYXMgaW4gJ2Nhc2UgWDogeyAuLi4g fSBicmVhazsnID0+DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgJ2Nhc2UgWDogeyAuLi4gYnJlYWs7IH0nLg0KPiA+PiArbW9kX3Bhd25fc2VtaWNv bG9uICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICttb2RfcmVtb3ZlX2VtcHR5X3JldHVybiAg ICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byByZW1vdmUgYSB2b2lkICdyZXR1cm47JyB0 aGF0IGFwcGVhcnMgYXMgdGhlIGxhc3Qgc3RhdGVtZW50DQo+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gYSBmdW5jdGlvbi4NCj4gPj4gK21vZF9y ZW1vdmVfZXh0cmFfc2VtaWNvbG9uICAgICAgPSB0cnVlDQo+ID4+ICttb2Rfc29ydF9pbXBvcnQg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK21vZF9zb3J0X2luY2x1ZGUgICAgICAgICAg ICAgICAgPSBmYWxzZQ0KPiA+PiArbW9kX3NvcnRfdXNpbmcgICAgICAgICAgICAgICAgICA9IGZh bHNlDQo+ID4+ICtubF9hZnRlcl9jYXNlICAgICAgICAgICAgICAgICAgID0gZmFsc2UgICAgICMg V2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGFmdGVyIGEgJ2Nhc2UnIHN0YXRlbWVudC4NCj4gPj4g K25sX2VuZF9vZl9maWxlICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVt b3ZlIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4NCj4gPj4gK25sX2VuZF9vZl9maWxl X21pbiAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV3 bGluZXMgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZQ0KPiA+PiArbmxfbWF4ICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zZWN1dGl2 ZSBuZXdsaW5lcyAoMyA9IDIgYmxhbmsgbGluZXMpLg0KPiA+PiArbmxfc3RhcnRfb2ZfZmlsZSAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZXMgYXQgdGhl IHN0YXJ0IG9mIHRoZSBmaWxlLg0KPiA+PiArDQo+ID4+ICsjIENvZGUgYWxpZ25tZW50IHJ1bGVz IChPcHRpb25hbCkNCj4gPj4gK2FsaWduX2FzbV9jb2xvbiAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiA+PiArYWxpZ25fYXNzaWduX3NwYW4gICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRo ZSBzcGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4gYXNzaWdubWVudHMuDQo+ID4+ICthbGlnbl9h c3NpZ25fdGhyZXNoICAgICAgICAgICAgID0gNA0KPiA+PiArYWxpZ25fZWRrMl9zdHlsZSAgICAg ICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgZWRrMi1zcGVjaWZpYyBh bGlnbm1lbnQgZm9ybWF0dGluZw0KPiA+PiArYWxpZ25fZW51bV9lcXVfc3BhbiAgICAgICAgICAg ICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBvbiAnPScgaW4gZW51bXMuDQo+ ID4+ICthbGlnbl9mdW5jX3BhcmFtcyAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhl ciB0byBhbGlnbiB2YXJpYWJsZSBkZWZpbml0aW9ucyBpbiBwcm90b3R5cGVzIGFuZCBmdW5jdGlv bnMuDQo+ID4+ICthbGlnbl9mdW5jX3BhcmFtc19nYXAgICAgICAgICAgID0gMg0KPiA+PiArYWxp Z25fZnVuY19wYXJhbXNfc3BhbiAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBzcGFuIGZvciBh bGlnbmluZyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMgaW4gZnVuY3Rpb24gb24gcGFyYW1ldGVyDQo+ IG5hbWUuDQo+ID4+ICthbGlnbl9mdW5jX3BhcmFtc190aHJlc2ggICAgICAgID0gMA0KPiA+PiAr YWxpZ25fZnVuY19wcm90b19zcGFuICAgICAgICAgICA9IDANCj4gPj4gK2FsaWduX2tlZXBfdGFi cyAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiArYWxpZ25fbGVmdF9zaGlmdCAgICAgICAg ICAgICAgICA9IGZhbHNlDQo+ID4+ICthbGlnbl9taXhfdmFyX3Byb3RvICAgICAgICAgICAgID0g ZmFsc2UNCj4gPj4gK2FsaWduX25sX2NvbnQgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ PiArYWxpZ25fb2NfZGVjbF9jb2xvbiAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICthbGlnbl9v bl9vcGVyYXRvciAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK2FsaWduX29uX3RhYnN0b3Ag ICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiArYWxpZ25fcHBfZGVmaW5lX2dhcCAgICAgICAg ICAgICA9IDINCj4gPj4gK2FsaWduX3BwX2RlZmluZV9zcGFuICAgICAgICAgICAgPSAxDQo+ID4+ ICthbGlnbl9yaWdodF9jbXRfYXRfY29sICAgICAgICAgID0gMCAgICAgICAgICMgQWxpZ24gdHJh aWxpbmcgY29tbWVudCBhdCBvciBiZXlvbmQgY29sdW1uIE47ICdwdWxscyBpbicgY29tbWVudHMg YXMNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBh IGJvbnVzIHNpZGUgZWZmZWN0ICgwPWlnbm9yZSkNCj4gPj4gK2FsaWduX3JpZ2h0X2NtdF9nYXAg ICAgICAgICAgICAgPSAwICAgICAgICAgIyBJZiBhIHRyYWlsaW5nIGNvbW1lbnQgaXMgbW9yZSB0 aGFuIHRoaXMgbnVtYmVyIG9mIGNvbHVtbnMgYXdheSBmcm9tIHRoZQ0KPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRleHQgaXQgZm9sbG93cywNCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpdCB3aWxs IHF1YWxpZnkgZm9yIGJlaW5nIGFsaWduZWQuIFRoaXMgaGFzIHRvIGJlID4gMCB0byBkbyBhbnl0 aGluZy4NCj4gPj4gK2FsaWduX3JpZ2h0X2NtdF9taXggICAgICAgICAgICAgPSBmYWxzZSAgICAg IyBJZiBhbGlnbmluZyBjb21tZW50cywgbWl4IHdpdGggY29tbWVudHMgYWZ0ZXIgJ30nIGFuZCAj ZW5kaWYgd2l0aCBsZXNzDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgdGhhbiAzIHNwYWNlcyBiZWZvcmUgdGhlIGNvbW1lbnQNCj4gPj4gK2FsaWdu X3JpZ2h0X2NtdF9zYW1lX2xldmVsICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIG9ubHkg YWxpZ24gdHJhaWxpbmcgY29tbWVudHMgdGhhdCBhcmUgYXQgdGhlIHNhbWUgYnJhY2UNCj4gbGV2 ZWwuDQo+ID4+ICthbGlnbl9yaWdodF9jbXRfc3BhbiAgICAgICAgICAgID0gMiAgICAgICAgICMg VGhlIHNwYW4gZm9yIGFsaWduaW5nIGNvbW1lbnRzIHRoYXQgZW5kIGxpbmVzLg0KPiA+PiArYWxp Z25fc2FtZV9mdW5jX2NhbGxfcGFyYW1zICAgICA9IGZhbHNlDQo+ID4+ICthbGlnbl9zaW5nbGVf bGluZV9icmFjZSAgICAgICAgID0gdHJ1ZQ0KPiA+PiArYWxpZ25fc2luZ2xlX2xpbmVfZnVuYyAg ICAgICAgICA9IHRydWUNCj4gPj4gK2FsaWduX3N0cnVjdF9pbml0X3NwYW4gICAgICAgICAgPSAx ICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0IGluaXRpYWxpemVyIHZhbHVl cy4NCj4gPj4gK2FsaWduX3R5cGVkZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ID4+ICthbGln bl90eXBlZGVmX2Z1bmMgICAgICAgICAgICAgID0gMSAgICAgICAgICMgSG93IHRvIGFsaWduIHR5 cGVkZWYnZCBmdW5jdGlvbnMgd2l0aCBvdGhlciB0eXBlZGVmcy4NCj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoMDogTm8gYWxpZ24sIDE6IEFsaWdu IG9wZW4gcGFyYW50aGVzaXMsIDI6IEFsaWduIGZ1bmN0aW9uIHR5cGUgbmFtZSkNCj4gPj4gK2Fs aWduX3R5cGVkZWZfZ2FwICAgICAgICAgICAgICAgPSAyDQo+ID4+ICthbGlnbl90eXBlZGVmX3Nw YW4gICAgICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHNpbmds ZS1saW5lIHR5cGVkZWZzLg0KPiA+PiArYWxpZ25fdHlwZWRlZl9zdGFyX3N0eWxlICAgICAgICA9 IDENCj4gPj4gK2FsaWduX3Zhcl9kZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ID4+ICthbGln bl92YXJfZGVmX2F0dHJpYnV0ZSAgICAgICAgID0gdHJ1ZQ0KPiA+PiArYWxpZ25fdmFyX2RlZl9j b2xvbiAgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWxpZ24gdGhlIGNvbG9u IGluIHN0cnVjdCBiaXQgZmllbGRzLg0KPiA+PiArYWxpZ25fdmFyX2RlZl9nYXAgICAgICAgICAg ICAgICA9IDIgICAgICAgICAjIFRoZSBnYXAgKG1pbmltdW0gc3BhY2luZyBmb3IgYWxpZ25lZCBp dGVtcykgZm9yIHZhcmlhYmxlIGRlZmluaXRpb25zLg0KPiA+PiArYWxpZ25fdmFyX2RlZl9pbmxp bmUgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICthbGlnbl92YXJfZGVmX3NwYW4gICAgICAgICAg ICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gKGxpbmVzIG5lZWRlZCB0byBhbGlnbikgZm9yIGFs aWduaW5nIHZhcmlhYmxlIGRlZmluaXRpb25zLg0KPiA+PiArYWxpZ25fdmFyX2RlZl9zdGFyX3N0 eWxlICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0byBjb25zaWRlciAob3IgdHJlYXQpIHRoZSAn KicgaW4gdGhlIGFsaWdubWVudCBvZiB2YXJpYWJsZQ0KPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlZmluaXRpb25zLg0KPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDA6IFBhcnQgb2YgdGhlIHR5cGUg ICAgICd2b2lkICogICBmb287JyAoZGVmYXVsdCkNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyAxOiBQYXJ0IG9mIHRoZSB2YXJpYWJsZSAndm9pZCAg ICAgKmZvbzsnDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgMjogRGFuZ2xpbmcgICAgICAgICAgICAgJ3ZvaWQgICAgKmZvbzsnDQo+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKE5vdGUgLSBzaG91bGQg YWxzbyBzZXQgc3BfYWZ0ZXJfcHRyX3N0YXI9cmVtb3ZlKQ0KPiA+PiArYWxpZ25fdmFyX3N0cnVj dF9nYXAgICAgICAgICAgICA9IDQNCj4gPj4gK2FsaWduX3Zhcl9zdHJ1Y3Rfc3BhbiAgICAgICAg ICAgPSA4ICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0L3VuaW9uIG1lbWJl ciBkZWZpbml0aW9ucy4NCj4gPj4gK2FsaWduX3Zhcl9zdHJ1Y3RfdGhyZXNoICAgICAgICAgPSAw DQo+ID4+ICthbGlnbl93aXRoX3RhYnMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gKw0K PiA+PiArIyBDb21tZW50IGZvcm1hdHRpbmcNCj4gPj4gK2NtdF9hbGlnbl9kb3h5Z2VuX2phdmFk b2NfdGFncyAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFsaWduIGRveHlnZW4gamF2YWRvYy1z dHlsZSB0YWdzICgnQHBhcmFtJywgJ0ByZXR1cm4nLCBldGMuKQ0KPiA+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRPRE86IEVhdHMgJ1snIGluICdbaW5d Jw0KPiA+PiArY210X2NfZ3JvdXAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtj bXRfY19ubF9lbmQgICAgICAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBh ZGQgYSBuZXdsaW5lIGJlZm9yZSB0aGUgY2xvc2luZyAnKi8nIG9mIHRoZSBjb21iaW5lZCBjLQ0K PiBjb21tZW50Lg0KPiA+PiArY210X2Nfbmxfc3RhcnQgICAgICAgICAgICAgICAgICA9IHRydWUN Cj4gPj4gK2NtdF9jcHBfZ3JvdXAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiArY210 X2NwcF9ubF9lbmQgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gPj4gK2NtdF9jcHBfbmxfc3Rh cnQgICAgICAgICAgICAgICAgPSB0cnVlDQo+ID4+ICtjbXRfY3BwX3RvX2MgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gPj4gK2NtdF9pbmRlbnRfbXVsdGkgICAgICAgICAgICAgICAgPSBm YWxzZSAgICAgIyBXaGV0aGVyIHRvIGFwcGx5IGNoYW5nZXMgdG8gbXVsdGktbGluZSBjb21tZW50 cywgaW5jbHVkaW5nIGNtdF93aWR0aCwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBrZXl3b3JkIHN1YnN0aXR1dGlvbiBhbmQgbGVhZGluZyBjaGFy cy4NCj4gPj4gK2NtdF9pbnNlcnRfYmVmb3JlX3ByZXByb2MgICAgICAgPSBmYWxzZQ0KPiA+PiAr I2NtdF9pbnNlcnRfZmlsZV9oZWFkZXIgICAgICAgICAgPSBkZWZhdWx0X2ZpbGVfaGVhZGVyLnR4 dA0KPiA+PiArI2NtdF9pbnNlcnRfZnVuY19oZWFkZXIgICAgICAgICAgPSBkZWZhdWx0X2Z1bmN0 aW9uX2hlYWRlci50eHQNCj4gPj4gK2NtdF9tdWx0aV9jaGVja19sYXN0ICAgICAgICAgICAgPSBm YWxzZQ0KPiA+PiArY210X211bHRpX2ZpcnN0X2xlbl9taW5pbXVtICAgICA9IDINCj4gPj4gK2Nt dF9yZWZsb3dfbW9kZSAgICAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBIb3cgdG8gcmVmbG93 IGNvbW1lbnRzLg0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjICgwOk5vIHJlZmxvdywgMTpObyB0b3VjaGluZyBhdCBhbGwsIDI6IEZ1bGwgcmVmbG93 KQ0KPiA+PiArY210X3NwX2FmdGVyX3N0YXJfY29udCAgICAgICAgICA9IDAgICAgICAgICAjIFRo ZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGluc2VydCBhZnRlciB0aGUgc3RhciBvbiBzdWJzZXF1ZW50 IGNvbW1lbnQNCj4gbGluZXMuDQo+ID4+ICtjbXRfc3BfYmVmb3JlX3N0YXJfY29udCAgICAgICAg ID0gMCAgICAgICAgICMgVGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5zZXJ0IGF0IHRoZSBzdGFy dCBvZiBzdWJzZXF1ZW50IGNvbW1lbnQgbGluZXMuDQo+ID4+ICtjbXRfc3Rhcl9jb250ICAgICAg ICAgICAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBwdXQgYSBzdGFyIG9uIHN1YnNl cXVlbnQgY29tbWVudCBsaW5lcy4NCj4gPj4gK2NtdF93aWR0aCAgICAgICAgICAgICAgICAgICAg ICAgPSAxMjAgICAgICAgIyBUcnkgdG8gd3JhcCBjb21tZW50cyBhdCBOIGNvbHVtbnMuDQo+ID4+ ICtzcF9jbXRfY3BwX3N0YXJ0ICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJl bW92ZSBzcGFjZSBhZnRlciB0aGUgb3BlbmluZyBvZiBhIEMrKyBjb21tZW50LCBhcyBpbg0KPiA+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICcvLyA8aGVy ZT4gQScuICBOT1RFOiBCcmVha3MgaW5kZW50YXRpb24gd2l0aGluIGNvbW1lbnRzLg0KPiA+PiAr DQo+ID4+ICsjIEZ1bmN0aW9uIGRlZmluaXRpb25zIC8gZGVjbGFyYXRpb25zDQo+ID4+ICtpbmRl bnRfZnVuY19jYWxsX3BhcmFtICAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRl bnQgY29udGludWVkIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVycyBvbmUgaW5kZW50IGxldmVsLA0K PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJhdGhl ciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIgdGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ ID4+ICtpbmRlbnRfZnVuY19jbGFzc19wYXJhbSAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhl ciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9uIGNhbGwgZGVjbGFyYXRpb24gb25lIGluZGVu dCBsZXZlbCwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVu dGhlc2lzLg0KPiA+PiAraW5kZW50X2Z1bmNfY3Rvcl92YXJfcGFyYW0gICAgICA9IGZhbHNlICAg ICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBjbGFzcyB2YXJpYWJsZSBjb25zdHJ1Y3Rv cnMgb25lIGluZGVudA0KPiBsZXZlbCwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVy IHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiA+PiAraW5kZW50X2Z1bmNfZGVmX3BhcmFtICAgICAg ICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbnRpbnVlZCBmdW5jdGlvbiBk ZWZpbml0aW9uIHBhcmFtZXRlcnMgb25lIGluZGVudA0KPiA+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxldmVsLCByYXRoZXIgdGhhbiBhbGlnbmluZyBw YXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiA+PiArbmxfZmRlZl9icmFj ZSAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBi ZXR3ZWVuIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgJ3snLg0KPiA+PiArbmxfZnVuY19jYWxsX2Vu ZF9tdWx0aV9saW5lICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBi ZWZvcmUgJyknIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJw0KPiBhcmUNCj4gPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJl bnQgbGluZXMuDQo+ID4+ICtubF9mdW5jX2NhbGxfcGFyZW4gICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0 aGUgb3BlbmluZyAnKCcgaW4gdGhlDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgY2FsbC4NCj4gPj4gK25sX2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9s aW5lICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGlu IGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJyBhcmUNCj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ID4+ ICtubF9mdW5jX2RlY2xfYXJncyAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJl bW92ZSBuZXdsaW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24uDQo+ ID4+ICtubF9mdW5jX2RlY2xfZW1wdHkgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9y IHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJygpJyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0K PiA+PiArbmxfZnVuY19kZWZfYXJncyAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBhZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24u DQo+ID4+ICtubF9mdW5jX2RlZl9lbXB0eSAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJygpJyBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24u DQo+ID4+ICtubF9mdW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgb3Blbmlu ZyAnKCcNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBpbiB0aGUgZGVmaW5pdGlvbi4NCj4gPj4gK25sX2Z1bmNfcGFyZW4gICAgICAgICAgICAgICAg ICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9u IG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbg0KPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBkZWNsYXJhdGlvbi4NCj4gPj4gK25sX2Z1bmNf dHlwZV9uYW1lICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xp bmUgYmV0d2VlbiByZXR1cm4gdHlwZSBhbmQgZnVuY3Rpb24gbmFtZSBpbiBhDQo+IGZ1bmN0aW9u DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZGVm aW5pdGlvbi4NCj4gPj4gK3NwX2ZwYXJlbl9icmFjZSAgICAgICAgICAgICAgICAgPSBmb3JjZSAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJyknIGFuZCAneycgb2YgZnVuY3Rpb24u DQo+ID4+ICt1c2VfaW5kZW50X2Z1bmNfY2FsbF9wYXJhbSAgICAgID0gdHJ1ZSAgICAgICMgaW5k ZW50X2Z1bmNfY2FsbF9wYXJhbSB3aWxsIGJlIHVzZWQNCj4gPj4gKw0KPiA+PiArIyBBZGRpdGlv bmFsIE5ld2xpbmUgUnVsZXMNCj4gPj4gK25sX2FmdGVyX2JyYWNlX29wZW4gICAgICAgICAgICAg ICAgICAgICAgICAgID0gdHJ1ZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIg J3snLiBUaGlzIGFsc28gYWRkcyBhIG5ld2xpbmUNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhlIG1hdGNoaW5n ICd9Jy4NCj4gPj4gK25sX2FmdGVyX2JyYWNlX29wZW5fY210ICAgICAgICAgICAgICAgICAgICAg ID0gdHJ1ZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYmV0d2VlbiB0aGUgb3BlbiBi cmFjZSBhbmQgYQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIHRyYWlsaW5nIHNpbmdsZS1saW5lIGNvbW1lbnQuDQo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg UmVxdWlyZXMgbmxfYWZ0ZXJfYnJhY2Vfb3BlbiA9IHRydWUuDQo+ID4+ICtubF9hZnRlcl9kbyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICMgQWRkIG9yIHJlbW92 ZSBibGFuayBsaW5lIGFmdGVyICdkby93aGlsZScgc3RhdGVtZW50Lg0KPiA+PiArbmxfYWZ0ZXJf Zm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAjIEFkZCBvciBy ZW1vdmUgYmxhbmsgbGluZSBhZnRlciAnZm9yJyBzdGF0ZW1lbnQuDQo+ID4+ICtubF9hZnRlcl9m dW5jX2JvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIgICAgICAgICMgVGhlIG51bWJl ciBvZiBuZXdsaW5lcyBhZnRlciAnfScgb2YgYSBtdWx0aS1saW5lIGZ1bmN0aW9uDQo+IGJvZHkN Cj4gPj4gK25sX2FmdGVyX2Z1bmNfYm9keV9vbmVfbGluZXIgICAgICAgICAgICAgICAgID0gMg0K PiA+PiArbmxfYWZ0ZXJfZnVuY19wcm90byAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ ID4+ICtubF9hZnRlcl9mdW5jX3Byb3RvX2dyb3VwICAgICAgICAgICAgICAgICAgICA9IDINCj4g Pj4gK25sX2FmdGVyX2lmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ ID4+ICtubF9hZnRlcl9tdWx0aWxpbmVfY29tbWVudCAgICAgICAgICAgICAgICAgICA9IGZhbHNl DQo+ID4+ICtubF9hZnRlcl9yZXR1cm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZh bHNlDQo+ID4+ICtubF9hZnRlcl9zdHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDINCj4gPj4gK25sX2FmdGVyX3N3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g YWRkDQo+ID4+ICtubF9hZnRlcl92YnJhY2VfY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICA9 IHRydWUNCj4gPj4gK25sX2FmdGVyX3ZicmFjZV9vcGVuICAgICAgICAgICAgICAgICAgICAgICAg ID0gdHJ1ZQ0KPiA+PiArbmxfYWZ0ZXJfdmJyYWNlX29wZW5fZW1wdHkgICAgICAgICAgICAgICAg ICAgPSB0cnVlDQo+ID4+ICtubF9hZnRlcl93aGlsZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IGFkZA0KPiA+PiArbmxfYXNzaWduX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAg ICAgICAgPSB0cnVlDQo+ID4+ICtubF9iZWZvcmVfYmxvY2tfY29tbWVudCAgICAgICAgICAgICAg ICAgICAgICA9IDINCj4gPj4gK25sX2JlZm9yZV9jYXNlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gPj4gK25sX2JlZm9yZV9kbyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gaWdub3JlDQo+ID4+ICtubF9iZWZvcmVfZm9yICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+PiArbmxfYmVmb3JlX2lmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gPj4gK25sX2JlZm9yZV9zd2l0Y2ggICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ID4+ICtubF9iZWZvcmVfd2hpbGUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiA+PiArbmxfYmVmb3JlX3dob2xl X2ZpbGVfaWZkZWYgICAgICAgICAgICAgICAgICAgPSAyDQo+ID4+ICtubF9icmFjZV9icmFjZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ID4+ICtubF9icmFjZV9zdHJ1 Y3RfdmFyICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZQ0KPiA+PiArbmxfY2FzZV9j b2xvbl9icmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gPj4gK25sX2NsYXNz X2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK25sX2Nv bGxhcHNlX2VtcHR5X2JvZHkgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gPj4gK25s X2NvbW1lbnRfZnVuY19kZWYgICAgICAgICAgICAgICAgICAgICAgICAgID0gMQ0KPiA+PiArbmxf Y3JlYXRlX2Zvcl9vbmVfbGluZXIgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+PiAr bmxfY3JlYXRlX2lmX29uZV9saW5lciAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiA+ PiArbmxfY3JlYXRlX3doaWxlX29uZV9saW5lciAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0K PiA+PiArbmxfZGVmaW5lX21hY3JvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxz ZQ0KPiA+PiArbmxfZHNfc3RydWN0X2VudW1fY2xvc2VfYnJhY2UgICAgICAgICAgICAgICAgPSB0 cnVlDQo+ID4+ICtubF9kc19zdHJ1Y3RfZW51bV9jbXQgICAgICAgICAgICAgICAgICAgICAgICA9 IGZhbHNlDQo+ID4+ICtubF9lbnVtX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ID4+ICtubF9mdW5jX2NhbGxfYXJnc19tdWx0aV9saW5lICAgICAgICAgICAg ICAgICA9IHRydWUNCj4gPj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Ns b3N1cmVzID0gZmFsc2UNCj4gPj4gK25sX2Z1bmNfZGVjbF9lbmQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gYWRkDQo+ID4+ICtubF9mdW5jX2RlY2xfc3RhcnQgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IGFkZA0KPiA+PiArbmxfZnVuY19kZWZfZW5kICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSBhZGQNCj4gPj4gK25sX2Z1bmNfZGVmX3N0YXJ0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gYWRkDQo+ID4+ICtubF9mdW5jX2xlYXZlX29uZV9saW5lcnMgICAgICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtubF9mdW5jX3Byb3RvX3R5cGVfbmFtZSAgICAg ICAgICAgICAgICAgICAgICA9IGFkZA0KPiA+PiArbmxfZnVuY192YXJfZGVmX2JsayAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAxDQo+ID4+ICtubF9nZXRzZXRfbGVhdmVfb25lX2xpbmVycyAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtubF9pZl9sZWF2ZV9vbmVfbGluZXJzICAg ICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtubF9tdWx0aV9saW5lX2RlZmluZSAg ICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtubF9zcXVlZXplX2lmZGVmICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ID4+ICtubF92YXJfZGVmX2Jsa19l bmQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDANCj4gPj4gK25sX3Zhcl9kZWZfYmxrX3N0 YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMA0KPiA+PiArDQo+ID4+ICsjIFByZXByb2Nl c3NvciBSdWxlcw0KPiA+PiArcHBfZGVmaW5lX2F0X2xldmVsICAgICAgPSB0cnVlDQo+ID4+ICtw cF9pZl9pbmRlbnRfY29kZSAgICAgICA9IGZhbHNlDQo+ID4+ICtwcF9pbmRlbnRfZnVuY19kZWYg ICAgICA9IGZhbHNlDQo+ID4+ICtwcF9pbmRlbnRfZXh0ZXJuICAgICAgICA9IGZhbHNlDQo+ID4+ ICtwcF9pZ25vcmVfZGVmaW5lX2JvZHkgICA9IHRydWUgICAgICAgICAgICAgICAgIyBXb3JrYXJv dW5kOiBUdXJuIG9mZiBwcm9jZXNzaW5nIGZvciAjZGVmaW5lIGJvZHkNCj4gPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChjdXJyZW50IHJ1bGVzIGRv IG5vdCB3b3JrIGZvciBzb21lIGRlZmluZXMpDQo+ID4+ICtwcF9pbmRlbnQgICAgICAgICAgICAg ICA9IGFkZA0KPiA+PiArcHBfaW5kZW50X2F0X2xldmVsICAgICAgPSB0cnVlDQo+ID4+ICtwcF9p bmRlbnRfY291bnQgICAgICAgICA9IDINCj4gPj4gK3BwX2luZGVudF9pZiAgICAgICAgICAgID0g Mg0KPiA+PiArcHBfaW5kZW50X3JlZ2lvbiAgICAgICAgPSAyDQo+ID4+ICtwcF9yZWdpb25faW5k ZW50X2NvZGUgICA9IGZhbHNlDQo+ID4+ICtwcF9zcGFjZSAgICAgICAgICAgICAgICA9IHJlbW92 ZQ0KPiA+PiArDQo+ID4+ICsjDQo+ID4+ICsjIFRoZSB0b2tlbnMgYmVsb3cgYXJlIGFzc2lnbmVk IHNwZWNpZmljIHR5cGVzIHNvIHRoZXkgYXJlIGFsd2F5cyByZWNvZ25pemVkIHByb3Blcmx5Lg0K PiA+PiArIw0KPiA+PiArDQo+ID4+ICsjIEV4cGxpY2l0bHkgZGVmaW5lIEVESyBJSSBxdWFsaWZp ZXJzDQo+ID4+ICtzZXQgUVVBTElGSUVSIENPTlNUDQo+ID4+ICtzZXQgUVVBTElGSUVSIEVGSUFQ SQ0KPiA+PiArc2V0IFFVQUxJRklFUiBJTg0KPiA+PiArc2V0IFFVQUxJRklFUiBPUFRJT05BTA0K PiA+PiArc2V0IFFVQUxJRklFUiBPVVQNCj4gPj4gKw0KPiA+PiArIyBFeHBsaWNpdGx5IGRlZmlu ZSBFREsgSUkgdHlwZXMNCj4gPj4gK3NldCBUWVBFIEVGSV9TVEFUVVMNCj4gPj4gK3NldCBUWVBF IFZPSUQNCj4gPj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVz dGlmeV9leHRfZGVwLnlhbWwgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnlf ZXh0X2RlcC55YW1sDQo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAwMDAw MDAwMDAwMC4uZDhjMjI0MDNiNGIxDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvLnB5 dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4dF9kZXAueWFtbA0KPiA+PiBAQCAt MCwwICsxLDE2IEBADQo+ID4+ICsjIyBAZmlsZQ0KPiA+PiArIyBEb3dubG9hZHMgdGhlIFVuY3J1 c3RpZnkgYXBwbGljYXRpb24gZnJvbSBhIFByb2plY3QgTXUgTnVHZXQgcGFja2FnZS4NCj4gPj4g KyMNCj4gPj4gKyMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ID4+ICsj IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+ICsjIw0K PiA+PiArew0KPiA+PiArICAiaWQiOiAidW5jcnVzdGlmeS1jaS0xIiwNCj4gPj4gKyAgInNjb3Bl IjogImNpYnVpbGQiLA0KPiA+PiArICAidHlwZSI6ICJudWdldCIsDQo+ID4+ICsgICJuYW1lIjog Im11LXVuY3J1c3RpZnktcmVsZWFzZSIsDQo+ID4+ICsgICJzb3VyY2UiOiAiaHR0cHM6Ly9wa2dz LmRldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3BhY2thZ2luZy9tdV91bmNydXN0 aWZ5L251Z2V0L3YzL2luZGV4Lmpzb24iLA0KPiA+PiArICAidmVyc2lvbiI6ICI3My4wLjMiLA0K PiA+PiArICAiZmxhZ3MiOiBbInNldF9zaGVsbF92YXIiLCAiaG9zdF9zcGVjaWZpYyJdLA0KPiA+ PiArICAidmFyX25hbWUiOiAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiA+PiArfQ0KPiA+PiBkaWZm IC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X3BsdWdfaW4ueWFt bCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwNCj4g Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yNWQ5YThk MzdhMzANCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNy dXN0aWZ5L3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sDQo+ID4+IEBAIC0wLDAgKzEsMTIgQEANCj4g Pj4gKyMjIEBmaWxlDQo+ID4+ICsjIENpQnVpbGRQbHVnaW4gdXNlZCB0byBjaGVjayBjb2Rpbmcg c3RhbmRhcmQgY29tcGxpYW5jZSBvZiBFREsgSUkgc3R5bGUgQyBzb3VyY2UgY29kZQ0KPiA+PiAr Iw0KPiA+PiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gPj4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4gKyMjDQo+ ID4+ICt7DQo+ID4+ICsgICJzY29wZSI6ICJjaWJ1aWxkIiwNCj4gPj4gKyAgIm5hbWUiOiAiVW5j cnVzdGlmeSBDb2RpbmcgU3RhbmRhcmQgVGVzdCIsDQo+ID4+ICsgICJtb2R1bGUiOiAiVW5jcnVz dGlmeSINCj4gPj4gK30NCj4gPj4gKw0KPiA+PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9SZWFkbWUu bWQgYi8ucHl0b29sL1JlYWRtZS5tZA0KPiA+PiBpbmRleCBmNjUwNTUwNzk2NmEuLjQ2ZDcyNDhm N2RhMyAxMDA2NDQNCj4gPj4gLS0tIGEvLnB5dG9vbC9SZWFkbWUubWQNCj4gPj4gKysrIGIvLnB5 dG9vbC9SZWFkbWUubWQNCj4gPj4gQEAgLTI2NCw2ICsyNjQsMTAgQEAgQlNELTItQ2xhdXNlLVBh dGVudC4NCj4gPj4gICBSdW4gdGhlIEVjYyB0b29sIG9uIHRoZSBwYWNrYWdlLiBUaGUgRWNjIHRv b2wgaXMgYXZhaWxhYmxlIGluIHRoZSBCYXNlVG9vbHMNCj4gPj4gICBwYWNrYWdlLiBJdCBjaGVj a3MgdGhhdCB0aGUgY29kZSBjb21wbGllcyB0byB0aGUgRURLSUkgY29kaW5nIHN0YW5kYXJkLg0K PiA+Pg0KPiA+PiArIyMjIENvZGluZyBTdGFuZGFyZCBDb21wbGlhbmNlIC0gVW5jcnVzdGlmeQ0K PiA+PiArDQo+ID4+ICtSdW5zIHRoZSBVbmNydXN0aWZ5IGFwcGxpY2F0aW9uIHRvIGNoZWNrIGZv ciBjb2Rpbmcgc3RhbmRhcmQgY29tcGxpYW5jZSBpc3N1ZXMuDQo+ID4+ICsNCj4gPj4gICAjIyBQ eVRvb2wgU2NvcGVzDQo+ID4+DQo+ID4+ICAgU2NvcGVzIGFyZSBob3cgdGhlIFB5VG9vbCBleHRf ZGVwLCBwYXRoX2VudiwgYW5kIHBsdWdpbnMgYXJlIGFjdGl2YXRlZC4gIE1lYW5pbmcNCj4gPj4g LS0NCj4gPj4gMi4yOC4wLndpbmRvd3MuMQ0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAtPS09LT0t PS09LT0NCj4gPj4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2Vu dCB0byB0aGlzIGdyb3VwLg0KPiA+PiBWaWV3L1JlcGx5IE9ubGluZSAoIzgzOTgyKTogaHR0cHM6 Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvODM5ODINCj4gPj4gTXV0ZSBUaGlzIFRv cGljOiBodHRwczovL2dyb3Vwcy5pby9tdC84NzI2ODQwOS8xNjQzNDk2DQo+ID4+IEdyb3VwIE93 bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiA+PiBVbnN1YnNjcmliZTogaHR0cHM6 Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFttaWNoYWVsLmQua2lubmV5QGludGVsLmNv bV0NCj4gPj4gLT0tPS09LT0tPS09DQo+ID4+DQo+ID4NCg==