From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web12.637.1637703839533321720 for ; Tue, 23 Nov 2021 13:44:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Z7CBuxeb; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="215166492" X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="215166492" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2021 13:43:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="509574191" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 23 Nov 2021 13:43:40 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) 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; Tue, 23 Nov 2021 13:43:39 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) 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 13:43:39 -0800 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.177) by edgegateway.intel.com (192.55.55.68) 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 13:43:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XEKozFw+KJKP+SB+6sT2Gh6Zy+gnlTsYYsAc080xhw87BFiShViBeLVQTQTY1u5j7Qp/F8CmBT7JVFnPPat8S1wHyBtCXNo6M/HAjFcHx+Kd/I48JCB7ib6uJxvtUYfo0tswgYALEPmxKREgaPqcJV+zgZM2B1N9MIQaUuj+KuZGhg4Bv+ImZ9bEATiT4WtGk6OhasQHrWUNGscELZAiL+BVH8hIJ0vwi/IBIj+kwz7XhrzO+7dbjFRAXtYL9f6im/Sd5ZpQ6kyzDEJ7wuTPRuzQGBNPX3JTKwhXb+H42VTYFLIh/Dp1jdK/YCsft81nkkjUWMQyt7omhhYzchcQdA== 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=IxFtFhvgAbCsIXfKZG6thjKpzHikj5y1e+OuHuzcQGU=; b=ifpdLFwog8cj4uoQ/1FqsRJMLx/4hkHzyGvN0X8bWYNcY/3Y0pPYkLWf3WolnFRgW55GrN9u2Vf8d3w0WkaeP1op+yvMHO+/aLxrk6+tIm9CY6EjkQonyuXaLlzflf8RlxfAU2s052rDvIwX8AVz3kuzr/uY4CZ80Tq4RyJEzl9NHmB6R/QJfQdWgmI2WU0nZmxyOBdFy7mi8g2qgtTUZ94cgn0iKOe8WaDw7Tb8iTChuWKNDa2AvjsxORPE/46SmDG8pylFpuEiQsCyCquiVhlLSwxUMpM6sJ4Tf7ypZ9xTkyy1Au4MQB/92YhpdoEukjzw4zn0lpjfKHpVUfAWPA== 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=IxFtFhvgAbCsIXfKZG6thjKpzHikj5y1e+OuHuzcQGU=; b=Z7CBuxebYi0gcYRk6qwZKI9CD5bfIVY0U9BoqZyVV1WI73DsFmRWIJh78DvmdGSRJVi+jfvA7YFsSJZ/xI6PqeGojX5fh3kuTxOhI011WoX1xfmqET1pkzJJCfqJ89P5AgvNQQS7kkP5iGx73+NLbM6Zz84TguebpC0r+pZluo8= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB5042.namprd11.prod.outlook.com (2603:10b6:303:99::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.20; Tue, 23 Nov 2021 21:43:37 +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 21:43:37 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , "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: AQHX4K4XgAWLUrqD3U6AQeMuuxznTqwRo60g Date: Tue, 23 Nov 2021 21:43:36 +0000 Message-ID: References: <20211123210623.2168-1-mikuback@linux.microsoft.com> In-Reply-To: <20211123210623.2168-1-mikuback@linux.microsoft.com> 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: b936c65e-7479-4b44-d628-08d9aeca4e5a x-ms-traffictypediagnostic: CO1PR11MB5042: 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: dMLJ+dlVcSMLJhKJxPkjpbm83CoanRrhCKElpXO4fpL7AGzQzKkk+nhty5ZGqn/+D4OvlCrCEvCCHXFpdjwRuRaZUS3MeEw/k942OM8riR+xePV7wx+BvJ+cWHcttoEkD5lNBDTC/GdChiTcwRilY55zP/D0sE0Sd9iozjYz1llL573z4RqwQW7GUcx6PnzW1Rm5KGbMAGf50BhvxmL3EMXzeGm16h9v1861OzHVbuXlZzMIyw2vBLtGjXriXTSt1eJmSf11rRJDxN1WqrNnDsmJPwpBdkAC/ZhNx+ocPC20kOLrEmHsP1AJvDg9m/rQHgPDYHzzcTXb7Ge/32vhQsSxQHkpxrjsxoJ4pd952gnLx/xeuTw5pduN9R+POdr96u84sFL0oW/PaBkU2Wall3TO1vSi8VteJlhQgJynL05EgpKhkI/X7gp6y/wEnetkVpv/giMahDq8rXvgwQyBQcOa+oYDh4S5l+Q11tO9wupgFGmJo5kw21s7GVR8E37qB42biQRyI0cdqTi9phDI5xFavG56RlOn3y+5ggG4IxB5FQDyR9MQ5CIbpF0zOf0wMzwU0u6d+9RuahjPHWu925LUw7d7i7dA26IeMktPVXQ7t5tSgy6KwSecM8c3T4NesfoBgNqbKEna1YiSjrEK9+yQs8XGdnM0ZzcILUR53ThpOwH8ka8L8HIluI5Vstl9D24E2GRS/A92t5coFRa1nzGsjUSQzTqVJtZxXfZmZCVrxkg+BmGk8j9yGcxSkmR/W2WGIZfO8ICJSD/NHPqPDtrjl+IR9l9jAbaYb9v29X27DkAubQGaM28p6qxpgxVTJd1l25Kd1YxnIgnDh6Au2Q3R7RRxQeZTjPSKfNuRcgk= 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)(4326008)(5660300002)(8676002)(26005)(122000001)(508600001)(52536014)(7696005)(38100700002)(53546011)(71200400001)(33656002)(2906002)(316002)(966005)(82960400001)(110136005)(30864003)(45080400002)(55016003)(66946007)(19627235002)(54906003)(8936002)(38070700005)(83380400001)(66556008)(86362001)(9686003)(186003)(66446008)(76116006)(66476007)(64756008)(6506007)(559001)(579004)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eTVPMmVhWXUrd3dOK1cxNWZKUkJlY0M3dDZKcC81N1Q3cFdqQ2p2ei9vR1Qx?= =?utf-8?B?NDZvZmQwZmRwL1ovMS8zUGp1RlIzWGh2QnJhUXVPczhuWGFOUGk0R1psSWpu?= =?utf-8?B?NVdRT0k4Y3Y1eGdBbVhZOVViNTYwb0V5VkZ3SEI0cnlsQ3NhVHRLTHV0MExi?= =?utf-8?B?ODF6aUk1d1JmZENrbktuWXM3elRlcVN0c0U4anpLbEVXZVlxbWVzWWlxZmtO?= =?utf-8?B?RHNWb2tVWEdLckI1VG9LbmxTZFRkdDM1M3lsN0ZJeFhIRDlkdjVoemM2MWlz?= =?utf-8?B?dTRsOHlxUklhODhWUjFZT0x2MW9jeVh2V0NYYUN0NFJKUm15dk40NlJKdThH?= =?utf-8?B?UHJqaiswalhkckR2T0U0WENJNFQwV2xidDR3ekxGRENudGtYc0dIVGt5Y2JC?= =?utf-8?B?UXdoUlpCdnhTcnRrdzMxUnFYZ2xOL0gxbXhVN3VhcmpmSzVUMTN0bFd6Z0Yz?= =?utf-8?B?c29BS1NLUE1KRFFZOXV4RDMzRWRtZjdFdjVYaitzVFRsYUkxUk44QmVhOUZL?= =?utf-8?B?d0hRelZNcWQ5Z092TVpTdzFlVmdTQXlQYi9NYTVkbFdadjd1d0F3dGVKMXR4?= =?utf-8?B?MXBpMFhEZkRmU3BUbDZXd1hpc0o0dE11U3J1a3dSMHhDNXI0RENKM1BrdDc0?= =?utf-8?B?dC9GZnlvQUhlRGpucXhkZFFmbEgyR2Vham1lT0xVQTduc21YWXF4eStINVlM?= =?utf-8?B?andMTjM5NmFjQ0IvNDFGc1ViSlNEYnplMzQ5Zmc0Ty84cXVPRG9JdGN1bjhL?= =?utf-8?B?VWxUVmgzRmJxM2c5WUxrakNRNGFGamw5TDJzRmFZVnJVaThkK2VVei9EbTdF?= =?utf-8?B?Szhxb01sOWloUHdISEEvYnJqR1c4TWNTTlJnVGptRmtqOG5lS2MxcWNLV211?= =?utf-8?B?Sk4reVRuOWMzOW1YbDU1TmJnMTB1UFVBZ1JQZlFiZ0tiMkQ0VDNoWjRhNTVj?= =?utf-8?B?ZXZUZDZZak5BNHc1QlM3RjdyLzBTSmFxWGhuL0NGaEdBdlF6UUduMlpXblUv?= =?utf-8?B?dVBsdnhtWHo3K2ttbk1YSFZXdlZyOWN1N3dET2lpejJtTmMyR0pVQ3RzRnpD?= =?utf-8?B?OGVBVXZSMHlsT1puZVV5WGw2L2txUWVSRk9FMEZmVUY1eFVsODdXZTBNc3I3?= =?utf-8?B?N3Y1cTRaSjBQbUlEdCs0UUd3d2Q5b3c5Y1FqaU4wVE1qeHd4Q3htVm51SFZE?= =?utf-8?B?TzFoQW1vYlU2ZW5BZ2luZ1NjeURtOU1BZ2lQZXMrODBYSXQzZy9jYWRWU0hk?= =?utf-8?B?czY1TnZFczhrb2FKMlU2QXRxUEJ1ZXprZ2VpWCtQT1RRN0U3c3JsamNGeVNv?= =?utf-8?B?S2xGQllXdk10V0wwWlR4TUxkOVUzbUhDK0VSS2lWZTdCR2w0a0t1cjh6eENL?= =?utf-8?B?THpxRHZlMWViV3dOYUhXcVRaWkdhSUZOck5WdnZSVFc0UzAybFl3Y3NaMWJG?= =?utf-8?B?SDdIdkljLzlxcWo3SFB3K3JQRlg0Y3Q5b1NrTVljS3JPOG95ZDFlVkc0dU53?= =?utf-8?B?OVU5NlMxL2NjWHJ1VmwvYUxzdEZDOWkxcGFlaWxwSy9qNGpqcnI3VHpTcWRE?= =?utf-8?B?M0hDUnBwQ1c1UmNHanJoVXc2czNjS1pSWGdKUUZQY3NCOEFOK2w3cFRZbzVJ?= =?utf-8?B?cUVYcnRlQWdPelB2S2pLaTY2U3ovSGtwdFY1NTRwNkhZcHdleWxWZVBadllp?= =?utf-8?B?Q01pcVhxMWpCdlU1dkJXTE92N1REZUREbjJnNnhPaVFxeVJIeWpkRHZSTzc0?= =?utf-8?B?aTdmb3oyc0hFVHk4bk9uWlpvMlgyTkNlWTQyMndMMXRUV2NTTFY4TStEdnE1?= =?utf-8?B?OXZrRmQ0ODIvQ01HL2wxRWM5bmdFTk5tRHpId2lDNDRHYW9JQitNVGxvOG9C?= =?utf-8?B?YUFGTmtDVzFLMEk3a1FCWjFraDNUeE5CalIvUUJNbmV0cHJmNTVoUFE3WDBR?= =?utf-8?B?cGpRQkZWYms5MUMrcEdEdERXdVJlVmtCdkpsNDExWHdWajVFNW9oQmY0MXIy?= =?utf-8?B?Mk5QTWVrNXRwSGR6a3BtZm9ycXlMNEFEc2t4K2VKT1U0NG5DL3N3Sm4yS2Zi?= =?utf-8?B?d2g1Yis1KzZIMi8rOEJjM0pZeDRCaGRJNmhrKzJmQkN4dEZYZ3VRNHRPekMr?= =?utf-8?B?QUorN2VJZ3Q0OWVma0FUOWs4LytZODJ6VGo2eHVqMmQ2c0kvOTZKc3h5Z3Fq?= =?utf-8?B?blUrZTBlaHFFdk1OZ1hsV0U0aUs1T3lIZWJKMmNOeUk3bkU0RUhDU1h1d2t3?= =?utf-8?B?d1hUck1vNm80R3NycFo2aWdBREFRPT0=?= 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: b936c65e-7479-4b44-d628-08d9aeca4e5a X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 21:43:36.9544 (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: jMphfdAkYdcsLuOMypeS8Q8SzBYOYb1f29xKHyJSIFrjyfBQacAKfQkQ15iDHy5i4u+r/1dLks1FgLGNvGukwUx86fWJM1c3Y1D0Q8mQ9Ss= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5042 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 SGkgTWljaGFlbCwNCg0KV2hlbiBJIGRvd25sb2FkIGFuZCBpbnN0YWxsIHVuY3J1c3RpZnkgZnJv bSB0aGUgbnVnZXQgZmVlZCByZWZlcmVuY2VkIGluIHRoaXMgcGF0Y2gsDQpJIHNlZSB0aGUgZm9s bG93aW5nIHdoZW4gSSBjaGVjayB0aGUgdmVyc2lvbiBvZiB0aGUgdW5jcnVzdGlmeSB0b29sOg0K DQo+dW5jcnVzdGlmeS5leGUgLS12ZXJzaW9uDQoNClVuY3J1c3RpZnktYzgyZWUwMzQNCg0KQnV0 IHRoZSBzb3VyY2UgbGluayBhbmQgdmVyc2lvbiBpbiB0aGUgZGVwcyBmaWxlIHNheXMgNzMuMC4z DQoNCj4gKyAgInNvdXJjZSI6ICJodHRwczovL3BrZ3MuZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUv VW5jcnVzdGlmeS9fcGFja2FnaW5nL211X3VuY3J1c3RpZnkvbnVnZXQvdjMvaW5kZXguanNvbiIs DQo+ICsgICJ2ZXJzaW9uIjogIjczLjAuMyIsDQoNCkhvdyBkbyBkZXZlbG9wZXJzIGtub3cgdGhh dCB0aGV5IGhhdmUgaW5zdGFsbGVkIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgDQp1bmNydXN0aWZ5 IGFuZCB2ZXJpZnkgaXQgaXMgdGhlIHJpZ2h0IHZlcnNpb24uDQoNCkFsc28sIHNpbmNlIHRoaXMg aXMgYSBmb3JrIG9mIHVuY3J1c3RpZnksIHdoYXQgaXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVu DQp2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIG9mZmljaWFsIHJlbGVhc2Ugb2YgdW5jcnVzdGlmeSBh bmQgdGhlIHJlbGVhc2UNCmZyb20gdGhpcyBmb3JrIHRoYXQgaXMgcmVxdWlyZWQgZm9yIEVESyBJ SSB3b3JrPw0KDQpUaGFua3MsDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9u IEJlaGFsZiBPZiBNaWNoYWVsIEt1YmFja2kNCj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjMs IDIwMjEgMTowNiBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj47IFNlYW4gQnJvZ2FuDQo+IDxzZWFuLmJyb2dhbkBtaWNyb3Nv ZnQuY29tPjsgQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBT dWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeTogQWRkIFVuY3J1c3RpZnkgcGx1Z2luDQo+IA0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kg PG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiANCj4gUkVGOmh0dHBzOi8vYnVnemls bGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0OA0KPiANCj4gQWRkcyBhIG5ldyBD SSBwbHVnaW4gZm9yIFVuY3J1c3RpZnkuIFRoaXMgaXMgdXNlZCB0byBjaGVjaw0KPiBjb2Rpbmcg c3RhbmRhcmQgY29tcGxpYW5jZSBvZiBzb3VyY2UgY29kZSB0byB0aGUgRURLIElJIEMgQ29kaW5n DQo+IFN0YW5kYXJkcyBTcGVjaWZpY2F0aW9uLg0KPiANCj4gQW4gZXh0ZXJuYWwgZGVwZW5kZW5j eSBpcyBhZGRlZCBpbiB0aGUgcGx1Z2luIGRpcmVjdG9yeSB0byByZXRyaWV2ZQ0KPiB0aGUgVW5j cnVzdGlmeSBleGVjdXRhYmxlLiBDdXJyZW50bHksIHRoZSBleGVjdXRhYmxlIGlzIGZyb20gYW4g ZWRrMg0KPiBmb3JrIG9mIHRoZSBhcHBsaWNhdGlvbi4NCj4gDQo+IFRoZSBkZWZhdWx0IFVuY3J1 c3RpZnkgY29uZmlndXJhdGlvbiBmaWxlcyBhcmUgYWRkZWQgaW4gdGhlIHBsdWdpbg0KPiBkaXJl Y3RvcnkuIEFkZGl0aW9uYWwgZGV0YWlscyBhcmUgaW4gdGhlIFJlYWRtZS5tZCBmaWxlIGFkZGVk IGluDQo+IHRoZSBVbmNydXN0aWZ5IHBsdWdpbiBkaXJlY3RvcnkuDQo+IA0KPiBOb3RlOiBBIFYz IGlzIHBsYW5uZWQgdGhhdCB3aWxsIGZhaWwgdGhlIFVuY3J1c3RpZnkgcGx1Z2luIHJlc3VsdHMN Cj4gaWYgYSBmaWxlIG9yIGZ1bmN0aW9uIHRlbXBsYXRlIGhlYWRlciBpcyBmb3VuZCBpbiBhIGZv cm1hdHRlZCBmaWxlLg0KPiBUaGlzIHdpbGwgYmUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGFk ZGVkIGluIHRoZSBwbHVnaW4gYW5kIHdpbGwNCj4gbm90IGNoYW5nZSB0aGUgd2F5IFVuY3J1c3Rp ZnkgaXMgaW52b2tlZC4NCj4gDQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiBDYzog QnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTaWduZWQtb2Zm LWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiAt LS0NCj4gDQo+IE5vdGVzOg0KPiAgICAgVjIgY2hhbmdlczoNCj4gDQo+ICAgICAxLiBDaGFuZ2Vk IHBsdWdpbiB0ZW1wIGRpcmVjdG9yeSB0bw0KPiAgICAgICAgQnVpbGQvLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeQ0KPiAgICAgMi4gQWRkZWQgVENCWiBSRUYgaW4gcGF0Y2ggY29tbWl0IG1lc3Nh Z2UNCj4gDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L1JlYWRtZS5tZCAgICAgICAgICAg ICAgICAgICB8IDExNiArKysrDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L1VuY3J1c3Rp ZnkucHkgICAgICAgICAgICAgICB8IDU1NSArKysrKysrKysrKysrKysrKysrKw0KPiAgLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dCAgICAgfCAgIDkgKw0K PiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQg fCAgMTUgKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5LmNmZyAgICAg ICAgICAgICAgfCA0NjYgKysrKysrKysrKysrKysrKw0KPiAgLnB5dG9vbC9QbHVnaW4vVW5jcnVz dGlmeS91bmNydXN0aWZ5X2V4dF9kZXAueWFtbCAgICAgfCAgMTYgKw0KPiAgLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X3BsdWdfaW4ueWFtbCAgICAgfCAgMTIgKw0KPiAgLnB5 dG9vbC9SZWFkbWUubWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQg Kw0KPiAgOCBmaWxlcyBjaGFuZ2VkLCAxMTkzIGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1n aXQgYS8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L1JlYWRtZS5tZCBiLy5weXRvb2wvUGx1Z2lu L1VuY3J1c3RpZnkvUmVhZG1lLm1kDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAwMC4uNmZjYjZlNTA0NzJkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9v bC9QbHVnaW4vVW5jcnVzdGlmeS9SZWFkbWUubWQNCj4gQEAgLTAsMCArMSwxMTYgQEANCj4gKyMg VW5jcnVzdGlmeSBQbHVnaW4NCj4gKw0KPiArVGhpcyBDaUJ1aWxkUGx1Z2luIHNjYW5zIGFsbCB0 aGUgZmlsZXMgaW4gYSBnaXZlbiBwYWNrYWdlIGFuZCBjaGVja3MgZm9yIGNvZGluZyBzdGFuZGFy ZCBjb21wbGlhbmNlIGlzc3Vlcy4NCj4gKw0KPiArVGhpcyBwbHVnaW4gcmVxdWlyZXMgdGhlIGRp cmVjdG9yeSBjb250YWluaW5nIHRoZSBVbmNydXN0aWZ5IGV4ZWN1dGFibGUgdGhhdCBzaG91bGQg YmUgdXNlZCBmb3IgdGhpcyBwbHVnaW4gdG8NCj4gK2JlIHNwZWNpZmllZCBpbiBhbiBlbnZpcm9u bWVudCB2YXJpYWJsZSBuYW1lZCBgVU5DUlVTVElGWV9DSV9QQVRIYC4gVGhpcyB1bmlxdWUgdmFy aWFibGUgbmFtZSBpcyB1c2VkIHRvIGF2b2lkIGNvbmZ1c2lvbg0KPiArd2l0aCBvdGhlciBwYXRo cyB0byBVbmNydXN0aWZ5IHdoaWNoIG1pZ2h0IG5vdCBiZSB0aGUgZXhwZWN0ZWQgYnVpbGQgZm9y IHVzZSBieSB0aGlzIHBsdWdpbi4NCj4gKw0KPiArQnkgZGVmYXVsdCwgYW4gVW5jcnVzdGlmeSBj b25maWd1cmF0aW9uIGZpbGUgbmFtZWQgInVuY3J1c3RpZnkuY2ZnIiBsb2NhdGVkIGluIHRoZSBz YW1lIGRpcmVjdG9yeSBhcyB0aGUgcGx1Z2luIGlzDQo+ICt1c2VkLiBUaGUgdmFsdWUgY2FuIGJl IG92ZXJyaWRkZW4gdG8gYSBwYWNrYWdlLXNwZWNpZmljIHBhdGggd2l0aCB0aGUgYENvbmZpZ0Zp bGVQYXRoYCBjb25maWd1cmF0aW9uIGZpbGUgb3B0aW9uLg0KPiArDQo+ICsqIFVuY3J1c3RpZnkg c291cmNlIGNvZGUgYW5kIGRvY3VtZW50YXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS91bmNydXN0 aWZ5L3VuY3J1c3RpZnkNCj4gKyogUHJvamVjdCBNdSBVbmNydXN0aWZ5IGZvcmsgc291cmNlIGNv ZGUgYW5kIGRvY3VtZW50YXRpb246IGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5j cnVzdGlmeQ0KPiArDQo+ICsjIyBGaWxlcyBDaGVja2VkIGluIGEgUGFja2FnZQ0KPiArDQo+ICtC eSBkZWZhdWx0LCB0aGlzIHBsdWdpbiB3aWxsIGRpc2NvdmVyIGFsbCBmaWxlcyBpbiB0aGUgcGFj a2FnZSB3aXRoIHRoZSBmb2xsb3dpbmcgZGVmYXVsdCBwYXRoczoNCj4gKw0KPiArYGBgcHl0aG9u DQo+ICtbDQo+ICsjIEMgc291cmNlDQo+ICsiKi5jIiwNCj4gKyIqLmgiDQo+ICtdDQo+ICtgYGAN Cj4gKw0KPiArRnJvbSB0aGlzIGxpc3Qgb2YgZmlsZXMsIGFueSBmaWxlcyBpZ25vcmVkIGJ5IEdp dCBvciByZXNpZGluZyBpbiBhIEdpdCBzdWJtb2R1bGUgd2lsbCBiZSByZW1vdmVkLiBJZiBHaXQg aXMgbm90DQo+ICtmb3VuZCwgc3VibW9kdWxlcyBhcmUgbm90IGZvdW5kLCBvciBpZ25vcmVkIGZp bGVzIGFyZSBub3QgZm91bmQgbm8gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbGlzdCBvZiBkaXNj b3ZlcmVkIGZpbGVzLg0KPiArDQo+ICtUbyBjb250cm9sIHRoZSBwYXRocyBjaGVja2VkIGluIGEg Z2l2ZW4gcGFja2FnZSwgcmV2aWV3IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZGVzY3JpYmVk IGluIHRoaXMgZmlsZS4NCj4gKw0KPiArIyMgQ29uZmlndXJhdGlvbg0KPiArDQo+ICtUaGUgcGx1 Z2luIGNhbiBiZSBjb25maWd1cmVkIHdpdGggYSBmZXcgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBv cHRpb25zLg0KPiArDQo+ICtgYGAgeWFtbA0KPiArICAiVW5jcnVzdGlmeSI6IHsNCj4gKyAgICAg ICJBdWRpdE9ubHkiOiBGYWxzZSwgICAgICAgICAgICMgRG9uJ3QgZmFpbCB0aGUgYnVpbGQgaWYg dGhlcmUgYXJlIGVycm9ycy4gSnVzdCBsb2cgdGhlbS4NCj4gKyAgICAgICJPdXRwdXRGaWxlRGlm ZnMiOiBGYWxzZSAgICAgICMgT3V0cHV0IGNodW5rcyBvZiBmb3JtYXR0aW5nIGRpZmZzIGluIHRo ZSB0ZXN0IGNhc2UgbG9nLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBUaGlzIGNhbiBzaWduaWZpY2FudGx5IHNsb3cgZG93biB0aGUgcGx1Z2luIG9uIHZlcnkgbGFy Z2UgcGFja2FnZXMuDQo+ICsgICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1 c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3RpZnkgY29uZmlnIGZpbGUuIFBhdGggaXMgcmVsYXRpdmUg dG8gdGhlIHBhY2thZ2UuDQo+ICsgICAgICAiSWdub3JlU3RhbmRhcmRQYXRocyI6IFtdLCAgICAj IFN0YW5kYXJkIFBsdWdpbiBkZWZpbmVkIHBhdGhzIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQuDQo+ ICsgICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyI6IFtdICAjIEFkZGl0aW9uYWwgcGF0aHMg dG8gY2hlY2sgZm9ybWF0dGluZyAod2lsZGNhcmRzIHN1cHBvcnRlZCkuDQo+ICsgIH0NCj4gK2Bg YA0KPiArDQo+ICsjIyMgYEFkZGl0aW9uYWxJbmNsdWRlUGF0aHNgDQo+ICsNCj4gK0EgcGFja2Fn ZSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIHNwZWNpZnkgYW55IGFkZGl0aW9uYWwgcGF0aHMgdG8g YmUgaW5jbHVkZWQgd2l0aCB0aGlzIG9wdGlvbi4NCj4gKw0KPiArQXQgdGhpcyB0aW1lLCBpdCBp cyByZWNvbW1lbmRlZCBhbGwgZmlsZXMgcnVuIGFnYWluc3QgdGhlIHBsdWdpbiBiZSB3cml0dGVu IGluIHRoZSBDIG9yIEMrKyBsYW5ndWFnZS4NCj4gKw0KPiArIyMjIGBBdWRpdE9ubHlgDQo+ICsN Cj4gK2BCb29sZWFuYCAtIERlZmF1bHQgaXMgYEZhbHNlYC4NCj4gKw0KPiArSWYgYFRydWVgLCBy dW4gdGhlIHRlc3QgaW4gYW4gImF1ZGl0IG9ubHkgbW9kZSIgd2hpY2ggd2lsbCBsb2cgYWxsIGVy cm9ycyBidXQgaW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBidWlsZCwgaXQgd2lsbCBzZXQNCj4gK3Ro ZSB0ZXN0IGFzIHNraXBwZWQuIFRoaXMgYWxsb3dzIHZpc2liaWxpdHkgaW50byB0aGUgZmFpbHVy ZXMgd2l0aG91dCBicmVha2luZyB0aGUgYnVpbGQuDQo+ICsNCj4gKyMjIyBgQ29uZmlnRmlsZVBh dGhgDQo+ICsNCj4gK2BTdHJpbmdgIC0gRGVmYXVsdCBpcyBgInVuY3J1c3RpZnkuY2ZnImANCj4g Kw0KPiArV2hlbiBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZyBmaWxlLCB0aGlzIGlzIGEgcGFja2Fn ZSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4g Kw0KPiArIyMjIGBJZ25vcmVTdGFuZGFyZFBhdGhzYA0KPiArDQo+ICtUaGlzIHBsdWdpbiBieSBk ZWZhdWx0IHdpbGwgY2hlY2sgdGhlIGJlbG93IHN0YW5kYXJkIHBhdGhzLiBBIHBhY2thZ2UgY29u ZmlndXJhdGlvbiBmaWxlIGNhbiBzcGVjaWZ5IGFueSBvZiB0aGVzZSBwYXRocw0KPiArdG8gYmUg aWdub3JlZC4NCj4gKw0KPiArYGBgcHl0aG9uDQo+ICtbDQo+ICsjIEMgc291cmNlDQo+ICsiKi5j IiwNCj4gKyIqLmgiDQo+ICtdDQo+ICtgYGANCj4gKw0KPiArIyMjIGBPdXRwdXRGaWxlRGlmZnNg DQo+ICsNCj4gK2BCb29sZWFuYCAtIERlZmF1bHQgaXMgYEZhbHNlYC4NCj4gKw0KPiArSWYgYFRy dWVgLCBvdXRwdXQgZGlmZnMgb2YgZm9ybWF0dGluZyBjaGFuZ2VzIGludG8gdGhlIHRlc3QgY2Fz ZSBsb2cuIFRoaXMgaXMgaGVscGZ1bCB0byBleGFjdGx5IHVuZGVyc3RhbmQgd2hhdCBjaGFuZ2Vz DQo+ICtuZWVkIHRvIGJlIG1hZGUgdG8gdGhlIHNvdXJjZSBjb2RlIGluIG9yZGVyIHRvIGZpeCBh IGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGlzc3VlLg0KPiArDQo+ICtOb3RlIHRoYXQgY2Fs Y3VsYXRpbmcgdGhlIGZpbGUgZGlmZnMgb24gYSB2ZXJ5IGxhcmdlIHNldCBvZiBvZiByZXN1bHRz IChlLmcuID4xMDAgZmlsZXMpIGNhbiBzaWduaWZpY2FudGx5IHNsb3cgZG93bg0KPiArcGx1Z2lu IGV4ZWN1dGlvbi4NCj4gKw0KPiArIyMjIGBTa2lwR2l0RXhjbHVzaW9uc2ANCj4gKw0KPiArYEJv b2xlYW5gIC0gRGVmYXVsdCBpcyBgRmFsc2VgLg0KPiArDQo+ICtCeSBkZWZhdWx0LCBmaWxlcyBp biBwYXRocyBtYXRjaGVkIGluIGEgLmdpdGlnbm9yZSBmaWxlIG9yIGEgcmVjb2duaXplZCBnaXQg c3VibW9kdWxlIGFyZSBleGNsdWRlZC4gSWYgdGhpcyBvcHRpb24NCj4gK2lzIGBUcnVlYCwgdGhl IHBsdWdpbiB3aWxsIG5vdCBhdHRlbXB0IHRvIHJlY29nbml6ZSB0aGVzZSBmaWxlcyBhbmQgZXhj bHVkZSB0aGVtLg0KPiArDQo+ICsjIyBIaWdoLUxldmVsIFBsdWdpbiBPcGVyYXRpb24NCj4gKw0K PiArVGhpcyBwbHVnaW4gZ2VuZXJhdGVzIHR3byBtYWluIHNldHMgb2YgdGVtcG9yYXJ5IGZpbGVz Og0KPiArDQo+ICsgIDEuIEEgd29ya2luZyBkaXJlY3RvcnkgaW4gdGhlIGRpcmVjdG9yeSBgQnVp bGQvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeWANCj4gKyAgMi4gRm9yIGVhY2ggc291cmNlIGZp bGUgd2l0aCBmb3JtYXR0aW5nIGVycm9ycywgYSBzaWJsaW5nIGZpbGUgd2l0aCB0aGUgYC51bmNy dXN0aWZ5X3BsdWdpbmAgZXh0ZW5zaW9uDQo+ICsNCj4gK1RoZSB3b3JraW5nIGRpcmVjdG9yeSBj b250YWlucyB0ZW1wb3JhcnkgZmlsZXMgdW5pcXVlIHRvIG9wZXJhdGlvbiBvZiB0aGUgcGx1Z2lu LiBBbGwgb2YgdGhlc2UgZmlsZXMgYXJlIHJlbW92ZWQgb24NCj4gK2V4aXQgb2YgdGhlIHBsdWdp biBpbmNsdWRpbmcgc3VjY2Vzc2Z1bCBvciB1bnN1Y2Nlc3NmdWwgZXhlY3V0aW9uIChzdWNoIGFz IGEgUHl0aG9uIGV4Y2VwdGlvbiBvY2N1cnJpbmcpLiBJZiBmb3IgYW55DQo+ICtyZWFzb24sIGFu eSBmaWxlcyBpbiB0aGUgcGFja2FnZSBleGlzdCBwcmlvciB0byBydW5uaW5nIHRoZSBwbHVnaW4g d2l0aCB0aGUgYC51bmNydXN0aWZ5X3BsdWdpbmAgZXh0ZW5zaW9uLCB0aGUgcGx1Z2luDQo+ICt3 aWxsIGluZm9ybSB0aGUgdXNlciB0byByZW1vdmUgdGhlc2UgZmlsZXMgYW5kIGV4aXQgYmVmb3Jl IHJ1bm5pbmcgVW5jcnVzdGlmeS4gVGhpcyBpcyB0byBlbnN1cmUgdGhlIGFjY3VyYWN5IG9mIHRo ZQ0KPiArcmVzdWx0cyByZXBvcnRlZCBmcm9tIGVhY2ggZXhlY3V0aW9uIGluc3RhbmNlIG9mIHRo ZSBwbHVnaW4uDQo+ICsNCj4gK1RoZSBwbHVnaW4gZGV0ZXJtaW5lcyB0aGUgbGlzdCBvZiByZWxl dmFudCBmaWxlcyB0byBjaGVjayB3aXRoIFVuY3J1c3RpZnkgYW5kIHRoZW4gaW52b2tlcyBVbmNy dXN0aWZ5IHdpdGggdGhhdCBmaWxlDQo+ICtsaXN0LiBGb3IgYW55IGZpbGVzIG5vdCBjb21wbGlh bnQgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBwcm92aWRlZCwgVW5jcnVzdGlmeSB3aWxsIGdl bmVyYXRlIGEgY29ycmVzcG9uZGluZyBmaWxlDQo+ICt3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1 Z2luYCBleHRlbnNpb24uIFRoZSBwbHVnaW4gZGlzY292ZXJzIGFsbCBvZiB0aGVzZSBmaWxlcy4g SWYgYW55IHN1Y2ggZmlsZXMgYXJlIHByZXNlbnQsIHRoaXMNCj4gK2luZGljYXRlcyBhIGZvcm1h dHRpbmcgaXNzdWUgd2FzIGZvdW5kIGFuZCB0aGUgdGVzdCBpcyBtYXJrZWQgZmFpbGVkICh1bmxl c3MgYEF1ZGl0T25seWAgbW9kZSBpcyBlbmFibGVkKS4NCj4gKw0KPiArVGhlIHRlc3QgY2FzZSBs b2cgd2lsbCBjb250YWluIGEgcmVwb3J0IG9mIHdoaWNoIGZpbGVzIGZhaWxlZCB0byBmb3JtYXQg cHJvcGVybHksIGFsbG93aW5nIHRoZSB1c2VyIHRvIHJ1biBVbmNydXN0aWZ5DQo+ICthZ2FpbnN0 IHRoZSBmaWxlIGxvY2FsbHkgdG8gZml4IHRoZSBpc3N1ZS4gSWYgdGhlIGBPdXRwdXRGaWxlRGlm ZnNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHNldCB0byBgVHJ1ZWAsIHRoZSBwbHVnaW4NCj4g K3dpbGwgb3V0cHV0IGRpZmYgY2h1bmtzIGZvciBhbGwgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyBp biB0aGUgdGVzdCBjYXNlIGxvZy4NCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1 c3RpZnkvVW5jcnVzdGlmeS5weSBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlm eS5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjhiZDY3 M2U4NTIzZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnkvVW5jcnVzdGlmeS5weQ0KPiBAQCAtMCwwICsxLDU1NSBAQA0KPiArIyBAZmlsZSBVbmNydXN0 aWZ5LnB5DQo+ICsjDQo+ICsjIEFuIGVkazItcHl0b29sIGJhc2VkIHBsdWdpbiB3cmFwcGVyIGZv ciBVbmNydXN0aWZ5DQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0 aW9uLg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiArIyMNCj4gK2ltcG9ydCBkaWZmbGliDQo+ICtpbXBvcnQgZXJybm8NCj4gK2ltcG9ydCBsb2dn aW5nDQo+ICtpbXBvcnQgb3MNCj4gK2ltcG9ydCBwYXRobGliDQo+ICtpbXBvcnQgc2h1dGlsDQo+ ICtpbXBvcnQgdGltZWl0DQo+ICtmcm9tIGVkazJ0b29sZXh0LmVudmlyb25tZW50IGltcG9ydCB2 ZXJzaW9uX2FnZ3JlZ2F0b3INCj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2lu X21hbmFnZXIgaW1wb3J0IFBsdWdpbk1hbmFnZXINCj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJv bm1lbnQucGx1Z2ludHlwZXMuY2lfYnVpbGRfcGx1Z2luIGltcG9ydCBJQ2lCdWlsZFBsdWdpbg0K PiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC5wbHVnaW50eXBlcy51ZWZpX2hlbHBlcl9w bHVnaW4gaW1wb3J0IEhlbHBlckZ1bmN0aW9ucw0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9u bWVudC52YXJfZGljdCBpbXBvcnQgVmFyRGljdA0KPiArZnJvbSBlZGsydG9vbGxpYi5sb2cuanVu aXRfcmVwb3J0X2Zvcm1hdCBpbXBvcnQgSnVuaXRSZXBvcnRUZXN0Q2FzZQ0KPiArZnJvbSBlZGsy dG9vbGxpYi51ZWZpLmVkazIucGF0aF91dGlsaXRpZXMgaW1wb3J0IEVkazJQYXRoDQo+ICtmcm9t IGVkazJ0b29sbGliLnV0aWxpdHlfZnVuY3Rpb25zIGltcG9ydCAgUnVuQ21kDQo+ICtmcm9tIGlv IGltcG9ydCBTdHJpbmdJTw0KPiArZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdCwgTGlzdCwg VHVwbGUNCj4gKw0KPiArIw0KPiArIyBQcm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBtZXNzYWdl cyBmb3IgY2VydGFpbiBzY2VuYXJpb3MNCj4gKyMNCj4gK2NsYXNzIFVuY3J1c3RpZnlFeGNlcHRp b24oRXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgZXhpdF9j b2RlKToNCj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlKQ0KPiArICAgICAgICBz ZWxmLmV4aXRfY29kZSA9IGV4aXRfY29kZQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlB cHBFbnZWYXJOb3RGb3VuZEV4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBk ZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18o bWVzc2FnZSwgLTEwMSkNCj4gKw0KPiArDQo+ICtjbGFzcyBVbmNydXN0aWZ5QXBwVmVyc2lvbkVy cm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNlcHRpb24pOg0KPiArICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBtZXNzYWdlKToNCj4gKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTAy KQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRpb24oVW5j cnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0K PiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMDMpDQo+ICsNCj4gKw0KPiAr Y2xhc3MgVW5jcnVzdGlmeVN0YWxlUGx1Z2luRm9ybWF0dGVkRmlsZXNFeGNlcHRpb24oVW5jcnVz dGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiAr ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjApDQo+ICsNCj4gKw0KPiArY2xh c3MgVW5jcnVzdGlmeUlucHV0RmlsZUNyZWF0aW9uRXJyb3JFeGNlcHRpb24oVW5jcnVzdGlmeUV4 Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAg ICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xMjEpDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3Rp ZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQYXRoc0V4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9u KToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVy KCkuX19pbml0X18obWVzc2FnZSwgLTEyMikNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUdpdEln bm9yZUZpbGVFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2Us IC0xNDApDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlv bihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2Fn ZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTE0MSkNCj4gKw0KPiAr DQo+ICtjbGFzcyBVbmNydXN0aWZ5KElDaUJ1aWxkUGx1Z2luKToNCj4gKyAgICAiIiINCj4gKyAg ICBBIENpQnVpbGRQbHVnaW4gdGhhdCB1c2VzIFVuY3J1c3RpZnkgdG8gZm9ybWF0IHRoZSBzb3Vy Y2UgZmlsZXMgaW4gdGhlDQo+ICsgICAgcGFja2FnZSBiZWluZyB0ZXN0ZWQgZm9yIGNvZGluZyBz dGFuZGFyZCBpc3N1ZXMuDQo+ICsNCj4gKyAgICBCeSBkZWZhdWx0LCB0aGUgcGx1Z2luIHJ1bnMg YWdhaW5zdCBzdGFuZGFyZCBDIHNvdXJjZSBmaWxlIGV4dGVuc2lvbnMgYnV0DQo+ICsgICAgaXRz IGNvbmZpZ3VyYXRpb24gY2FuIGJlIG1vZGlmaWVkIHRocm91Z2ggaXRzIGNvbmZpZ3VyYXRpb24g ZmlsZS4NCj4gKw0KPiArICAgIENvbmZpZ3VyYXRpb24gb3B0aW9uczoNCj4gKyAgICAiVW5jcnVz dGlmeSI6IHsNCj4gKyAgICAgICAgIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiOiBbXSwgIyBBZGRp dGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1hdHRpbmcgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpLg0K PiArICAgICAgICAiQXVkaXRPbmx5IjogRmFsc2UsICAgICAgICAgICAjIERvbid0IGZhaWwgdGhl IGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMuICBKdXN0IGxvZyB0aGVtLg0KPiArICAgICAgICAi Q29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAgICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3Rp ZnkgY29uZmlnIGZpbGUuDQo+ICsgICAgICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAg ICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3JlZC4N Cj4gKyAgICAgICAgIk91dHB1dEZpbGVEaWZmcyI6IEZhbHNlLCAgICAgIyBPdXRwdXQgY2h1bmtz IG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhlIHRlc3QgY2FzZSBsb2cuDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBzbG93 IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxhcmdlIHBhY2thZ2VzLg0KPiArICAgICAgICAiU2tp cEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAgICAjIERvbid0IGV4Y2x1ZGUgZ2l0IGlnbm9yZWQgZmls ZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJtb2R1bGVzLg0KPiArICAgIH0NCj4gKyAgICAiIiINCj4g Kw0KPiArICAgICMNCj4gKyAgICAjIEJ5IGRlZmF1bHQsIHVzZSBhbiAidW5jcnVzdGlmeS5jZmci IGNvbmZpZyBmaWxlIGluIHRoZSBwbHVnaW4gZGlyZWN0b3J5DQo+ICsgICAgIyBBIHBhY2thZ2Ug Y2FuIG92ZXJyaWRlIHRoaXMgcGF0aCB2aWEgIkNvbmZpZ0ZpbGVQYXRoIg0KPiArICAgICMNCj4g KyAgICAjIE5vdGU6IFZhbHVlcyBzcGVjaWZpZWQgdmlhICJDb25maWdGaWxlUGF0aCIgYXJlIHJl bGF0aXZlIHRvIHRoZSBwYWNrYWdlDQo+ICsgICAgIw0KPiArICAgIERFRkFVTFRfQ09ORklHX0ZJ TEVfUEFUSCA9IG9zLnBhdGguam9pbigNCj4gKyAgICAgICAgcGF0aGxpYi5QYXRoKF9fZmlsZV9f KS5wYXJlbnQucmVzb2x2ZSgpLCAidW5jcnVzdGlmeS5jZmciKQ0KPiArDQo+ICsgICAgIw0KPiAr ICAgICMgVGhlIGV4dGVuc2lvbiB1c2VkIGZvciBmb3JtYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkg dGhpcyBwbHVnaW4NCj4gKyAgICAjDQo+ICsgICAgRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OID0g Ii51bmNydXN0aWZ5X3BsdWdpbiINCj4gKw0KPiArICAgICMNCj4gKyAgICAjIEEgcGFja2FnZSBj YW4gYWRkIGFueSBhZGRpdGlvbmFsIHBhdGhzIHdpdGggIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMi DQo+ICsgICAgIyBBIHBhY2thZ2UgY2FuIHJlbW92ZSBhbnkgb2YgdGhlc2UgcGF0aHMgd2l0aCAi SWdub3JlU3RhbmRhcmRQYXRocyINCj4gKyAgICAjDQo+ICsgICAgU1RBTkRBUkRfUExVR0lOX0RF RklORURfUEFUSFMgPSAoIiouYyIsICIqLmgiKQ0KPiArDQo+ICsgICAgIw0KPiArICAgICMgVGhl IFVuY3J1c3RpZnkgYXBwbGljYXRpb24gcGF0aCBzaG91bGQgc2V0IGluIHRoaXMgZW52aXJvbm1l bnQgdmFyaWFibGUNCj4gKyAgICAjDQo+ICsgICAgVU5DUlVTVElGWV9QQVRIX0VOVl9LRVkgPSAi VU5DUlVTVElGWV9DSV9QQVRIIg0KPiArDQo+ICsgICAgZGVmIEdldFRlc3ROYW1lKHNlbGYsIHBh Y2thZ2VuYW1lOiBzdHIsIGVudmlyb25tZW50OiBWYXJEaWN0KSAtPiBUdXBsZToNCj4gKyAgICAg ICAgIiIiIFByb3ZpZGUgdGhlIHRlc3RjYXNlIG5hbWUgYW5kIGNsYXNzbmFtZSBmb3IgdXNlIGlu IHJlcG9ydGluZw0KPiArDQo+ICsgICAgICAgICAgICBBcmdzOg0KPiArICAgICAgICAgICAgICBw YWNrYWdlbmFtZTogc3RyaW5nIGNvbnRhaW5pbmcgbmFtZSBvZiBwYWNrYWdlIHRvIGJ1aWxkDQo+ ICsgICAgICAgICAgICAgIGVudmlyb25tZW50OiBUaGUgVmFyRGljdCBmb3IgdGhlIHRlc3QgdG8g cnVuIGluDQo+ICsgICAgICAgICAgICBSZXR1cm5zOg0KPiArICAgICAgICAgICAgICAgIEEgdHVw bGUgY29udGFpbmluZyB0aGUgdGVzdGNhc2UgbmFtZSBhbmQgdGhlIGNsYXNzbmFtZQ0KPiArICAg ICAgICAgICAgICAgICh0ZXN0Y2FzZW5hbWUsIGNsYXNzbmFtZSkNCj4gKyAgICAgICAgICAgICAg ICB0ZXN0Y2xhc3NuYW1lOiBhIGRlc2NyaXB0aXZlIHN0cmluZyBmb3IgdGhlIHRlc3RjYXNlIGNh biBpbmNsdWRlIHdoaXRlc3BhY2UNCj4gKyAgICAgICAgICAgICAgICBjbGFzc25hbWU6IHNob3Vs ZCBiZSBwYXR0ZXJuZWQgPHBhY2thZ2VuYW1lPi48cGx1Z2luPi48b3B0aW9uYWxseSBhbnkgdW5p cXVlIGNvbmRpdGlvbj4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHJldHVybiAoIkNoZWNr IGZpbGUgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaW4gIiArIHBhY2thZ2VuYW1lLCBwYWNr YWdlbmFtZSArICIuVW5jcnVzdGlmeSIpDQo+ICsNCj4gKyAgICBkZWYgUnVuQnVpbGRQbHVnaW4o c2VsZiwgcGFja2FnZV9yZWxfcGF0aDogc3RyLCBlZGsyX3BhdGg6IEVkazJQYXRoLCBwYWNrYWdl X2NvbmZpZzogRGljdFtzdHIsIExpc3Rbc3RyXV0sDQo+IGVudmlyb25tZW50X2NvbmZpZzogQW55 LCBwbHVnaW5fbWFuYWdlcjogUGx1Z2luTWFuYWdlciwgcGx1Z2luX21hbmFnZXJfaGVscGVyOiBI ZWxwZXJGdW5jdGlvbnMsIHRjOiBKdW5pdFJlcG9ydFRlc3RDYXNlLA0KPiBvdXRwdXRfc3RyZWFt PU5vbmUpIC0+IGludDoNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEV4dGVybmFsIGZ1bmN0 aW9uIG9mIHBsdWdpbi4gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gdGhlIHRhc2sg b2YgdGhlIENpQnVpbGQgUGx1Z2luLg0KPiArDQo+ICsgICAgICAgIEFyZ3M6DQo+ICsgICAgICAg ICAgLSBwYWNrYWdlX3JlbF9wYXRoOiBlZGsyIHdvcmtzcGFjZSByZWxhdGl2ZSBwYXRoIHRvIHRo ZSBwYWNrYWdlDQo+ICsgICAgICAgICAgLSBlZGsyX3BhdGg6IEVkazJQYXRoIG9iamVjdCB3aXRo IHdvcmtzcGFjZSBhbmQgcGFja2FnZXMgcGF0aHMNCj4gKyAgICAgICAgICAtIHBhY2thZ2VfY29u ZmlnOiBEaWN0aW9uYXJ5IHdpdGggdGhlIHBhY2thZ2UgY29uZmlndXJhdGlvbg0KPiArICAgICAg ICAgIC0gZW52aXJvbm1lbnRfY29uZmlnOiBFbnZpcm9ubWVudCBjb25maWd1cmF0aW9uDQo+ICsg ICAgICAgICAgLSBwbHVnaW5fbWFuYWdlcjogUGx1Z2luIE1hbmFnZXIgSW5zdGFuY2UNCj4gKyAg ICAgICAgICAtIHBsdWdpbl9tYW5hZ2VyX2hlbHBlcjogUGx1Z2luIE1hbmFnZXIgSGVscGVyIElu c3RhbmNlDQo+ICsgICAgICAgICAgLSB0YzogSlVuaXQgdGVzdCBjYXNlDQo+ICsgICAgICAgICAg LSBvdXRwdXRfc3RyZWFtOiBUaGUgU3RyaW5nSU8gb3V0cHV0IHN0cmVhbSBmcm9tIHRoaXMgcGx1 Z2luIChsb2dnaW5nKQ0KPiArDQo+ICsgICAgICAgIFJldHVybnMNCj4gKyAgICAgICAgICA+MCA6 IE51bWJlciBvZiBlcnJvcnMgZm91bmQNCj4gKyAgICAgICAgICAwICA6IFBhc3NlZCBzdWNjZXNz ZnVsbHkNCj4gKyAgICAgICAgICAtMSA6IFNraXBwZWQgZm9yIG1pc3NpbmcgcHJlcmVxDQo+ICsg ICAgICAgICIiIg0KPiArICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAjIEluaXRpYWxpemUg cGx1Z2luIGFuZCBjaGVjayBwcmUtcmVxdWlzaXRlcy4NCj4gKyAgICAgICAgICAgIHNlbGYuX2lu aXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbygNCj4gKyAgICAgICAgICAgICAgICBwYWNrYWdlX3Jl bF9wYXRoLCBlZGsyX3BhdGgsIHBhY2thZ2VfY29uZmlnLCB0YykNCj4gKyAgICAgICAgICAgIHNl bGYuX2luaXRpYWxpemVfY29uZmlndXJhdGlvbigpDQo+ICsgICAgICAgICAgICBzZWxmLl9jaGVj a19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gKw0KPiArICAgICAgICAgICAg IyBMb2cgaW1wb3J0YW50IGNvbnRleHQgaW5mb3JtYXRpb24uDQo+ICsgICAgICAgICAgICBzZWxm Ll9sb2dfdW5jcnVzdGlmeV9hcHBfaW5mbygpDQo+ICsNCj4gKyAgICAgICAgICAgICMgQ3JlYXRl IG1ldGEgaW5wdXQgZmlsZXMgJiBkaXJlY3Rvcmllcw0KPiArICAgICAgICAgICAgc2VsZi5fY3Jl YXRlX3RlbXBfd29ya2luZ19kaXJlY3RvcnkoKQ0KPiArICAgICAgICAgICAgc2VsZi5fY3JlYXRl X3VuY3J1c3RpZnlfZmlsZV9saXN0X2ZpbGUoKQ0KPiArDQo+ICsgICAgICAgICAgICBzZWxmLl9y dW5fdW5jcnVzdGlmeSgpDQo+ICsNCj4gKyAgICAgICAgICAgICMgUG9zdC1leGVjdXRpb24gYWN0 aW9ucy4NCj4gKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdW5jcnVzdGlmeV9yZXN1bHRzKCkN Cj4gKw0KPiArICAgICAgICBleGNlcHQgVW5jcnVzdGlmeUV4Y2VwdGlvbiBhcyBlOg0KPiArICAg ICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgZiJVbmNy dXN0aWZ5IGVycm9yIHtlLmV4aXRfY29kZX0uIERldGFpbHM6XG5cbntzdHIoZSl9IikNCj4gKyAg ICAgICAgICAgIGxvZ2dpbmcud2FybmluZygNCj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3Rp ZnkgZXJyb3Ige2UuZXhpdF9jb2RlfS4gRGV0YWlsczpcblxue3N0cihlKX0iKQ0KPiArICAgICAg ICAgICAgcmV0dXJuIC0xDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBpZiBzZWxm Ll9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudCA+IDA6DQo+ICsgICAgICAgICAgICAgICAgaWYg c2VsZi5fYXVkaXRfb25seV9tb2RlOg0KPiArICAgICAgICAgICAgICAgICAgICBsb2dnaW5nLmlu Zm8oDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZyB0ZXN0IGFzIHNraXBwZWQg c2luY2UgQXVkaXRPbmx5IGlzIGVuYWJsZWQiKQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxm Ll90Yy5TZXRTa2lwcGVkKCkNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsg ICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuU2V0 RmFpbGVkKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGNoZWNrcyBm YWlsZWQgZHVlIHRvIHtzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudH0gaW5jb3JyZWN0 bHkgZm9ybWF0dGVkDQo+IGZpbGVzLiIsICJDSEVDS19GQUlMRUQiKQ0KPiArICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRTdWNjZXNzKCkNCj4gKyAgICAg ICAgICAgIHJldHVybiBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudA0KPiArICAgICAg ICBmaW5hbGx5Og0KPiArICAgICAgICAgICAgc2VsZi5fY2xlYW51cF90ZW1wb3JhcnlfZm9ybWF0 dGVkX2ZpbGVzKCkNCj4gKyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBfdGVtcG9yYXJ5X2RpcmVj dG9yeSgpDQo+ICsNCj4gKyAgICBkZWYgX2luaXRpYWxpemVfY29uZmlndXJhdGlvbihzZWxmKSAt PiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSW5pdGlhbGl6ZXMgcGx1Z2luIGNv bmZpZ3VyYXRpb24uDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl9pbml0aWFsaXpl X2FwcF9pbmZvKCkNCj4gKyAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9jb25maWdfZmlsZV9pbmZv KCkNCj4gKyAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKCkNCj4g KyAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV90ZXN0X2Nhc2Vfb3V0cHV0X29wdGlvbnMoKQ0KPiAr DQo+ICsgICAgZGVmIF9jaGVja19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVzKHNlbGYp IC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBDaGVja3MgaWYgYW55IGZvcm1h dHRlZCBmaWxlcyBmcm9tIHByaW9yIGV4ZWN1dGlvbiBhcmUgcHJlc2VudC4NCj4gKw0KPiArICAg ICAgICBFeGlzdGVuY2Ugb2Ygc3VjaCBmaWxlcyBpcyBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbi4g VGhpcyBtaWdodCByZXN1bHQNCj4gKyAgICAgICAgZnJvbSBhbiBlcnJvciB0aGF0IG9jY3VycmVk IGR1cmluZyBhIHByZXZpb3VzIHJ1biBvciBhIHByZW1hdHVyZSBleGl0IGZyb20gYSBkZWJ1ZyBz Y2VuYXJpby4gSW4gYW55IGNhc2UsIHRoZQ0KPiBwYWNrYWdlIHNob3VsZCBiZSBjbGVhbiBiZWZv cmUgc3RhcnRpbmcgYSBuZXcgcnVuLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgcHJlX2V4 aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50ID0gbGVuKA0KPiArICAgICAgICAgICAgW3N0cihw YXRoLnJlc29sdmUoKSkgZm9yIHBhdGggaW4NCj4gcGF0aGxpYi5QYXRoKHNlbGYuX2Fic19wYWNr YWdlX3BhdGgpLnJnbG9iKGYnKntVbmNydXN0aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0n KV0pDQo+ICsNCj4gKyAgICAgICAgaWYgcHJlX2V4aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50 ID4gMDoNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlTdGFsZVBsdWdpbkZvcm1hdHRl ZEZpbGVzRXhjZXB0aW9uKA0KPiArICAgICAgICAgICAgICAgIGYie3ByZV9leGlzdGluZ19mb3Jt YXR0ZWRfZmlsZV9jb3VudH0gZm9ybWF0dGVkIGZpbGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZl bnQgb3ZlcndyaXRpbmcgdGhlc2UgZmlsZXMsDQo+IHBsZWFzZSByZW1vdmUgdGhlbSBiZWZvcmUg cnVubmluZyB0aGlzIHBsdWdpbi4iKQ0KPiArDQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFy eV9kaXJlY3Rvcnkoc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENs ZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBp bnN0YW5jZS4NCj4gKw0KPiArICAgICAgICBUaGlzIHJlbW92ZXMgdGhlIGRpcmVjdG9yeSBhbmQg YWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRoaXMgaW5zdGFuY2UuDQo+ICsgICAgICAgICIiIg0K PiArICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfd29ya2luZ19kaXInKToNCj4gKyAgICAgICAg ICAgIHNlbGYuX3JlbW92ZV90cmVlKHNlbGYuX3dvcmtpbmdfZGlyKQ0KPiArDQo+ICsgICAgZGVm IF9jbGVhbnVwX3RlbXBvcmFyeV9mb3JtYXR0ZWRfZmlsZXMoc2VsZikgLT4gTm9uZToNCj4gKyAg ICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQg ZmlsZXMgcHJvZHVjZWQgYnkgVW5jcnVzdGlmeS4NCj4gKw0KPiArICAgICAgICBUaGlzIHdpbGwg cmVjdXJzaXZlbHkgcmVtb3ZlIGFsbCBmb3JtYXR0ZWQgZmlsZXMgZ2VuZXJhdGVkIGJ5IFVuY3J1 c3RpZnkNCj4gKyAgICAgICAgZHVyaW5nIHRoaXMgZXhlY3V0aW9uIGluc3RhbmNlLg0KPiArICAg ICAgICAiIiINCj4gKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX2Fic19wYWNrYWdlX3BhdGgn KToNCj4gKyAgICAgICAgICAgIGZvcm1hdHRlZF9maWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkp IGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4gKyAgICAgICAgICAgICAgICBzZWxmLl9hYnNf cGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJ T059JyldDQo+ICsNCj4gKyAgICAgICAgICAgIGZvciBmb3JtYXR0ZWRfZmlsZSBpbiBmb3JtYXR0 ZWRfZmlsZXM6DQo+ICsgICAgICAgICAgICAgICAgb3MucmVtb3ZlKGZvcm1hdHRlZF9maWxlKQ0K PiArDQo+ICsgICAgZGVmIF9jcmVhdGVfdGVtcF93b3JraW5nX2RpcmVjdG9yeShzZWxmKSAtPiBO b25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgQ3JlYXRlcyB0aGUgdGVtcG9yYXJ5IGRp cmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4gKyAgICAgICAgIiIi DQo+ICsgICAgICAgIHNlbGYuX3dvcmtpbmdfZGlyID0gb3MucGF0aC5qb2luKA0KPiArICAgICAg ICAgICAgc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCAiQnVpbGQiLCAiLnB5dG9vbCIsICJQbHVn aW4iLCAiVW5jcnVzdGlmeSIpDQo+ICsNCj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAg cGF0aGxpYi5QYXRoKHNlbGYuX3dvcmtpbmdfZGlyKS5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0 X29rPVRydWUpDQo+ICsgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6DQo+ICsgICAgICAgICAg ICByYWlzZSBVbmNydXN0aWZ5SW5wdXRGaWxlQ3JlYXRpb25FcnJvckV4Y2VwdGlvbigNCj4gKyAg ICAgICAgICAgICAgICBmIkVycm9yIGNyZWF0aW5nIHBsdWdpbiBkaXJlY3Rvcnkge3NlbGYuX3dv cmtpbmdfZGlyfS5cblxue3JlcHIoZSl9LiIpDQo+ICsNCj4gKyAgICBkZWYgX2NyZWF0ZV91bmNy dXN0aWZ5X2ZpbGVfbGlzdF9maWxlKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBDcmVhdGVzIHRoZSBmaWxlIHdpdGggdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZv ciBVbmNydXN0aWZ5IHRvIHByb2Nlc3MuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxm Ll9hcHBfaW5wdXRfZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKA0KPiArICAgICAgICAgICAgc2Vs Zi5fd29ya2luZ19kaXIsICJ1bmNydXN0aWZ5X2ZpbGVfbGlzdC50eHQiKQ0KPiArDQo+ICsgICAg ICAgIHdpdGggb3BlbihzZWxmLl9hcHBfaW5wdXRfZmlsZV9wYXRoLCAndycsIGVuY29kaW5nPSd1 dGY4JykgYXMgZjoNCj4gKyAgICAgICAgICAgIGYud3JpdGVsaW5lcyhmIlxuIi5qb2luKHNlbGYu X2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCkpDQo+ICsNCj4gKyAgICBkZWYgX2V4ZWN1dGVfdW5j cnVzdGlmeShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgRXhlY3V0 ZXMgVW5jcnVzdGlmeSB3aXRoIHRoZSBpbml0aWFsaXplZCBjb25maWd1cmF0aW9uLg0KPiArICAg ICAgICAiIiINCj4gKyAgICAgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICBzZWxm Ll9hcHBfZXhpdF9jb2RlID0gUnVuQ21kKA0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX3BhdGgs DQo+ICsgICAgICAgICAgICBmIi1jIHtzZWxmLl9hcHBfY29uZmlnX2ZpbGV9IC1GIHtzZWxmLl9h cHBfaW5wdXRfZmlsZV9wYXRofSAtLWlmLWNoYW5nZWQgLS1zdWZmaXgNCj4ge1VuY3J1c3RpZnku Rk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OfSIsIG91dHN0cmVhbT1vdXRwdXQpDQo+ICsgICAgICAg IHNlbGYuX2FwcF9vdXRwdXQgPSBvdXRwdXQuZ2V0dmFsdWUoKS5zdHJpcCgpLnNwbGl0bGluZXMo KQ0KPiArDQo+ICsgICAgZGVmIF9nZXRfZ2l0X2lnbm9yZWRfcGF0aHMoc2VsZikgLT4gTGlzdFtz dHJdOg0KPiArICAgICAgICAiIiIiDQo+ICsgICAgICAgIFJldHVybnMgYSBsaXN0IG9mIGZpbGUg YWJzb2x1dGUgcGF0aCBzdHJpbmdzIHRvIGFsbCBmaWxlcyBpZ25vcmVkIGluIHRoaXMgZ2l0IHJl cG9zaXRvcnkuDQo+ICsNCj4gKyAgICAgICAgSWYgZ2l0IGlzIG5vdCBmb3VuZCwgYW4gZW1wdHkg bGlzdCB3aWxsIGJlIHJldHVybmVkLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYgbm90 IHNodXRpbC53aGljaCgiZ2l0Iik6DQo+ICsgICAgICAgICAgICBsb2dnaW5nLndhcm4oDQo+ICsg ICAgICAgICAgICAgICAgIkdpdCBpcyBub3QgZm91bmQgb24gdGhpcyBzeXN0ZW0uIEdpdCBzdWJt b2R1bGUgcGF0aHMgd2lsbCBub3QgYmUgY29uc2lkZXJlZC4iKQ0KPiArICAgICAgICAgICAgcmV0 dXJuIFtdDQo+ICsNCj4gKyAgICAgICAgb3V0c3RyZWFtX2J1ZmZlciA9IFN0cmluZ0lPKCkNCj4g KyAgICAgICAgZXhpdF9jb2RlID0gUnVuQ21kKCJnaXQiLCAibHMtZmlsZXMgLS1vdGhlciIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JraW5nZGlyPXNlbGYuX2Fic193b3Jrc3Bh Y2VfcGF0aCwgb3V0c3RyZWFtPW91dHN0cmVhbV9idWZmZXIsIGxvZ2dpbmdfbGV2ZWw9bG9nZ2lu Zy5OT1RTRVQpDQo+ICsgICAgICAgIGlmIChleGl0X2NvZGUgIT0gMCk6DQo+ICsgICAgICAgICAg ICByYWlzZSBVbmNydXN0aWZ5R2l0SWdub3JlRmlsZUV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAg ICAgICBmIkFuIGVycm9yIG9jY3VycmVkIHJlYWRpbmcgZ2l0IGlnbm9yZSBzZXR0aW5ncy4gVGhp cyB3aWxsIHByZXZlbnQgVW5jcnVzdGlmeSBmcm9tIHJ1bm5pbmcgYWdhaW5zdCB0aGUNCj4gZXhw ZWN0ZWQgc2V0IG9mIGZpbGVzLiIpDQo+ICsNCj4gKyAgICAgICAgIyBOb3RlOiBUaGlzIHdpbGwg cG90ZW50aWFsbHkgYmUgYSBsYXJnZSBsaXN0LCBidXQgYXQgbGVhc3Qgc29ydGVkDQo+ICsgICAg ICAgIHJldHVybiBvdXRzdHJlYW1fYnVmZmVyLmdldHZhbHVlKCkuc3RyaXAoKS5zcGxpdGxpbmVz KCkNCj4gKw0KPiArICAgIGRlZiBfZ2V0X2dpdF9zdWJtb2R1bGVfcGF0aHMoc2VsZikgLT4gTGlz dFtzdHJdOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZGly ZWN0b3J5IGFic29sdXRlIHBhdGggc3RyaW5ncyB0byB0aGUgcm9vdCBvZiBlYWNoIHN1Ym1vZHVs ZSBpbiB0aGUgd29ya3NwYWNlIHJlcG9zaXRvcnkuDQo+ICsNCj4gKyAgICAgICAgSWYgZ2l0IGlz IG5vdCBmb3VuZCwgYW4gZW1wdHkgbGlzdCB3aWxsIGJlIHJldHVybmVkLg0KPiArICAgICAgICAi IiINCj4gKyAgICAgICAgaWYgbm90IHNodXRpbC53aGljaCgiZ2l0Iik6DQo+ICsgICAgICAgICAg ICBsb2dnaW5nLndhcm4oDQo+ICsgICAgICAgICAgICAgICAgIkdpdCBpcyBub3QgZm91bmQgb24g dGhpcyBzeXN0ZW0uIEdpdCBzdWJtb2R1bGUgcGF0aHMgd2lsbCBub3QgYmUgY29uc2lkZXJlZC4i KQ0KPiArICAgICAgICAgICAgcmV0dXJuIFtdDQo+ICsNCj4gKyAgICAgICAgaWYgb3MucGF0aC5p c2ZpbGUob3MucGF0aC5qb2luKHNlbGYuX2Fic193b3Jrc3BhY2VfcGF0aCwgIi5naXRtb2R1bGVz IikpOg0KPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAgICAgICAgICAgICAgIGYi LmdpdG1vZHVsZXMgZmlsZSBmb3VuZC4gRXhjbHVkaW5nIHN1Ym1vZHVsZXMgaW4ge3NlbGYuX3Bh Y2thZ2VfbmFtZX0uIikNCj4gKw0KPiArICAgICAgICAgICAgb3V0c3RyZWFtX2J1ZmZlciA9IFN0 cmluZ0lPKCkNCj4gKyAgICAgICAgICAgIGV4aXRfY29kZSA9IFJ1bkNtZCgiZ2l0IiwgImNvbmZp ZyAtLWZpbGUgLmdpdG1vZHVsZXMgLS1nZXQtcmVnZXhwIHBhdGgiLCB3b3JraW5nZGlyPXNlbGYu X2Fic193b3Jrc3BhY2VfcGF0aCwNCj4gb3V0c3RyZWFtPW91dHN0cmVhbV9idWZmZXIsIGxvZ2dp bmdfbGV2ZWw9bG9nZ2luZy5OT1RTRVQpDQo+ICsgICAgICAgICAgICBpZiAoZXhpdF9jb2RlICE9 IDApOg0KPiArICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlHaXRTdWJtb2R1bGVFeGNl cHRpb24oDQo+ICsgICAgICAgICAgICAgICAgICAgIGYiLmdpdG1vZHVsZSBmaWxlIGRldGVjdGVk IGJ1dCBhbiBlcnJvciBvY2N1cnJlZCByZWFkaW5nIHRoZSBmaWxlLiBDYW5ub3QgcHJvY2VlZCB3 aXRoIHVua25vd24NCj4gc3VibW9kdWxlIHBhdGhzLiIpDQo+ICsNCj4gKyAgICAgICAgICAgIHN1 Ym1vZHVsZV9wYXRocyA9IFtdDQo+ICsgICAgICAgICAgICBmb3IgbGluZSBpbiBvdXRzdHJlYW1f YnVmZmVyLmdldHZhbHVlKCkuc3RyaXAoKS5zcGxpdGxpbmVzKCk6DQo+ICsgICAgICAgICAgICAg ICAgc3VibW9kdWxlX3BhdGhzLmFwcGVuZCgNCj4gKyAgICAgICAgICAgICAgICAgICAgb3MucGF0 aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4oc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCBsaW5lLnNw bGl0KClbMV0pKSkNCj4gKw0KPiArICAgICAgICAgICAgcmV0dXJuIHN1Ym1vZHVsZV9wYXRocw0K PiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIFtdDQo+ICsNCj4gKyAgICBk ZWYgX2luaXRpYWxpemVfYXBwX2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ ICsgICAgICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbi4N Cj4gKw0KPiArICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZGV0ZXJtaW5lIHRoZSBhcHBsaWNh dGlvbiBwYXRoIGFuZCB2ZXJzaW9uLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgIyBWZXJp ZnkgVW5jcnVzdGlmeSBpcyBzcGVjaWZpZWQgaW4gdGhlIGVudmlyb25tZW50Lg0KPiArICAgICAg ICBpZiBVbmNydXN0aWZ5LlVOQ1JVU1RJRllfUEFUSF9FTlZfS0VZIG5vdCBpbiBvcy5lbnZpcm9u Og0KPiArICAgICAgICAgICAgcmFpc2UgVW5jcnVzdGlmeUFwcEVudlZhck5vdEZvdW5kRXhjZXB0 aW9uKA0KPiArICAgICAgICAgICAgICAgIGYiVW5jcnVzdGlmeSBlbnZpcm9ubWVudCB2YXJpYWJs ZSB7VW5jcnVzdGlmeS5VTkNSVVNUSUZZX1BBVEhfRU5WX0tFWX0gaXMgbm90IHByZXNlbnQuIikN Cj4gKw0KPiArICAgICAgICBzZWxmLl9hcHBfcGF0aCA9IHNodXRpbC53aGljaCgndW5jcnVzdGlm eScsIHBhdGg9b3MuZW52aXJvbltVbmNydXN0aWZ5LlVOQ1JVU1RJRllfUEFUSF9FTlZfS0VZXSkN Cj4gKw0KPiArICAgICAgICBpZiBzZWxmLl9hcHBfcGF0aCBpcyBOb25lOg0KPiArICAgICAgICAg ICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5P RU5ULCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkNCj4gKw0KPiAr ICAgICAgICBzZWxmLl9hcHBfcGF0aCA9IG9zLnBhdGgubm9ybWNhc2Uob3MucGF0aC5ub3JtcGF0 aChzZWxmLl9hcHBfcGF0aCkpDQo+ICsNCj4gKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxl KHNlbGYuX2FwcF9wYXRoKToNCj4gKyAgICAgICAgICAgIHJhaXNlIEZpbGVOb3RGb3VuZEVycm9y KA0KPiArICAgICAgICAgICAgICAgIGVycm5vLkVOT0VOVCwgb3Muc3RyZXJyb3IoZXJybm8uRU5P RU5UKSwgc2VsZi5fYXBwX3BhdGgpDQo+ICsNCj4gKyAgICAgICAgIyBWZXJpZnkgVW5jcnVzdGlm eSBpcyBwcmVzZW50IGF0IHRoZSBleHBlY3RlZCBwYXRoLg0KPiArICAgICAgICByZXR1cm5fYnVm ZmVyID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICByZXQgPSBSdW5DbWQoc2VsZi5fYXBwX3BhdGgs ICItLXZlcnNpb24iLCBvdXRzdHJlYW09cmV0dXJuX2J1ZmZlcikNCj4gKyAgICAgICAgaWYgKHJl dCAhPSAwKToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlBcHBWZXJzaW9uRXJyb3JF eGNlcHRpb24oDQo+ICsgICAgICAgICAgICAgICAgZiJFcnJvciBvY2N1cnJlZCBleGVjdXRpbmcg LS12ZXJzaW9uOiB7cmV0fS4iKQ0KPiArDQo+ICsgICAgICAgICMgTG9nIFVuY3J1c3RpZnkgdmVy c2lvbiBpbmZvcm1hdGlvbi4NCj4gKyAgICAgICAgc2VsZi5fYXBwX3ZlcnNpb24gPSByZXR1cm5f YnVmZmVyLmdldHZhbHVlKCkuc3RyaXAoKQ0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQo ZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiArICAgICAgICB2 ZXJzaW9uX2FnZ3JlZ2F0b3IuR2V0VmVyc2lvbkFnZ3JlZ2F0b3IoKS5SZXBvcnRWZXJzaW9uKA0K PiArICAgICAgICAgICAgIlVuY3J1c3RpZnkiLCBzZWxmLl9hcHBfdmVyc2lvbiwgdmVyc2lvbl9h Z2dyZWdhdG9yLlZlcnNpb25UeXBlcy5JTkZPKQ0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXpl X2NvbmZpZ19maWxlX2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAg ICAgIEluaXRpYWxpemUgVW5jcnVzdGlmeSBjb25maWd1cmF0aW9uIGZpbGUgaW5mby4NCj4gKw0K PiArICAgICAgICBUaGUgY29uZmlnIGZpbGUgcGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgcGFja2Fn ZSByb290Lg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxl ID0gVW5jcnVzdGlmeS5ERUZBVUxUX0NPTkZJR19GSUxFX1BBVEgNCj4gKyAgICAgICAgaWYgIkNv bmZpZ0ZpbGVQYXRoIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZzoNCj4gKyAgICAgICAgICAgIHNl bGYuX2FwcF9jb25maWdfZmlsZSA9IHNlbGYuX3BhY2thZ2VfY29uZmlnWyJDb25maWdGaWxlUGF0 aCJdLnN0cmlwKCkNCj4gKw0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0g b3MucGF0aC5ub3JtcGF0aCgNCj4gKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc2VsZi5f YWJzX3BhY2thZ2VfcGF0aCwgc2VsZi5fYXBwX2NvbmZpZ19maWxlKSkNCj4gKw0KPiArICAgICAg ICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2VsZi5fYXBwX2NvbmZpZ19maWxlKToNCj4gKyAgICAg ICAgICAgIHJhaXNlIEZpbGVOb3RGb3VuZEVycm9yKA0KPiArICAgICAgICAgICAgICAgIGVycm5v LkVOT0VOVCwgb3Muc3RyZXJyb3IoZXJybm8uRU5PRU5UKSwgc2VsZi5fYXBwX2NvbmZpZ19maWxl KQ0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXplX2Vudmlyb25tZW50X2luZm8oc2VsZiwgcGFj a2FnZV9yZWxfcGF0aDogc3RyLCBlZGsyX3BhdGg6IEVkazJQYXRoLCBwYWNrYWdlX2NvbmZpZzog RGljdFtzdHIsDQo+IExpc3Rbc3RyXV0sIHRjOiBKdW5pdFJlcG9ydFRlc3RDYXNlKSAtPiBOb25l Og0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSW5pdGlhbGl6ZXMgcGx1Z2luIGVudmlyb25t ZW50IGluZm9ybWF0aW9uLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5fYWJzX3Bh Y2thZ2VfcGF0aCA9IGVkazJfcGF0aC5HZXRBYnNvbHV0ZVBhdGhPblRoaXNTeXRlbUZyb21FZGsy UmVsYXRpdmVQYXRoKA0KPiArICAgICAgICAgICAgcGFja2FnZV9yZWxfcGF0aCkNCj4gKyAgICAg ICAgc2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoID0gZWRrMl9wYXRoLldvcmtzcGFjZVBhdGgNCj4g KyAgICAgICAgc2VsZi5fcGFja2FnZV9jb25maWcgPSBwYWNrYWdlX2NvbmZpZw0KPiArICAgICAg ICBzZWxmLl9wYWNrYWdlX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKA0KPiArICAgICAgICAgICAg b3MucGF0aC5ub3JtcGF0aChwYWNrYWdlX3JlbF9wYXRoKSkNCj4gKyAgICAgICAgc2VsZi5fcmVs X3BhY2thZ2VfcGF0aCA9IHBhY2thZ2VfcmVsX3BhdGgNCj4gKyAgICAgICAgc2VsZi5fdGMgPSB0 Yw0KPiArDQo+ICsgICAgZGVmIF9pbml0aWFsaXplX2ZpbGVfdG9fZm9ybWF0X2luZm8oc2VsZikg LT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEZvcm1zIHRoZSBsaXN0IG9mIHNv dXJjZSBmaWxlcyBmb3IgVW5jcnVzdGlmeSB0byBwcm9jZXNzLg0KPiArICAgICAgICAiIiINCj4g KyAgICAgICAgIyBDcmVhdGUgYSBsaXN0IG9mIGFsbCB0aGUgcGFja2FnZSByZWxhdGl2ZSBmaWxl IHBhdGhzIGluIHRoZSBwYWNrYWdlIHRvIHJ1biBhZ2FpbnN0IFVuY3J1c3RpZnkuDQo+ICsgICAg ICAgIHJlbF9maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IGxpc3QoDQo+ICsgICAgICAgICAgICBVbmNy dXN0aWZ5LlNUQU5EQVJEX1BMVUdJTl9ERUZJTkVEX1BBVEhTKQ0KPiArDQo+ICsgICAgICAgICMg QWxsb3cgdGhlIGNpLnlhbWwgdG8gcmVtb3ZlIGFueSBvZiB0aGUgcHJlLWRlZmluZWQgc3RhbmRh cmQgcGF0aHMNCj4gKyAgICAgICAgaWYgIklnbm9yZVN0YW5kYXJkUGF0aHMiIGluIHNlbGYuX3Bh Y2thZ2VfY29uZmlnOg0KPiArICAgICAgICAgICAgZm9yIGEgaW4gc2VsZi5fcGFja2FnZV9jb25m aWdbIklnbm9yZVN0YW5kYXJkUGF0aHMiXToNCj4gKyAgICAgICAgICAgICAgICBpZiBhLnN0cmlw KCkgaW4gcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0Og0KPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLl90Yy5Mb2dTdGRPdXQoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmIklnbm9yaW5n IHN0YW5kYXJkIHBhdGggZHVlIHRvIGNpLnlhbWwgaWdub3JlOiB7YX0iKQ0KPiArICAgICAgICAg ICAgICAgICAgICByZWxfZmlsZV9wYXRoc190b19mb3JtYXQucmVtb3ZlKGEuc3RyaXAoKSkNCj4g KyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICByYWlzZSBVbmNy dXN0aWZ5SW52YWxpZElnbm9yZVN0YW5kYXJkUGF0aHNFeGNlcHRpb24oZiJJbnZhbGlkIElnbm9y ZVN0YW5kYXJkUGF0aHMgdmFsdWU6IHthfSIpDQo+ICsNCj4gKyAgICAgICAgIyBBbGxvdyB0aGUg Y2kueWFtbCB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgaW5jbHVkZSBwYXRocyBmb3IgdGhpcyBwYWNr YWdlDQo+ICsgICAgICAgIGlmICJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIiBpbiBzZWxmLl9wYWNr YWdlX2NvbmZpZzoNCj4gKyAgICAgICAgICAgIHJlbF9maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRl bmQoDQo+ICsgICAgICAgICAgICAgICAgc2VsZi5fcGFja2FnZV9jb25maWdbIkFkZGl0aW9uYWxJ bmNsdWRlUGF0aHMiXSkNCj4gKw0KPiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19m b3JtYXQgPSBbXQ0KPiArICAgICAgICBmb3IgcGF0aCBpbiByZWxfZmlsZV9wYXRoc190b19mb3Jt YXQ6DQo+ICsgICAgICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQuZXh0ZW5k KA0KPiArICAgICAgICAgICAgICAgIFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBh dGhsaWIuUGF0aChzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihwYXRoKV0pDQo+ICsNCj4g KyAgICAgICAgaWYgbm90ICJTa2lwR2l0RXhjbHVzaW9ucyIgaW4gc2VsZi5fcGFja2FnZV9jb25m aWcgb3Igbm90IHNlbGYuX3BhY2thZ2VfY29uZmlnWyJTa2lwR2l0RXhjbHVzaW9ucyJdOg0KPiAr ICAgICAgICAgICAgIyBSZW1vdmUgZmlsZXMgaWdub3JlZCBieSBnaXQNCj4gKyAgICAgICAgICAg IGxvZ2dpbmcuaW5mbygNCj4gKyAgICAgICAgICAgICAgICBmIntzZWxmLl9wYWNrYWdlX25hbWV9 IGZpbGUgY291bnQgYmVmb3JlIGdpdCBpZ25vcmUgZmlsZSBleGNsdXNpb246DQo+IHtsZW4oc2Vs Zi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiArDQo+ICsgICAgICAgICAgICBpZ25v cmVkX3BhdGhzID0gc2VsZi5fZ2V0X2dpdF9pZ25vcmVkX3BhdGhzKCkNCj4gKyAgICAgICAgICAg IHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IGxpc3QoDQo+ICsgICAgICAgICAgICAg ICAgc2V0KHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCkuZGlmZmVyZW5jZShpZ25vcmVk X3BhdGhzKSkNCj4gKw0KPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAgICAgICAg ICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBhZnRlciBnaXQgaWdub3Jl IGZpbGUgZXhjbHVzaW9uOg0KPiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCl9 IikNCj4gKw0KPiArICAgICAgICAgICAgIyBSZW1vdmUgZmlsZXMgaW4gc3VibW9kdWxlcw0KPiAr ICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAgICAgICAgICAgICAgIGYie3NlbGYuX3Bh Y2thZ2VfbmFtZX0gZmlsZSBjb3VudCBiZWZvcmUgc3VibW9kdWxlIGV4Y2x1c2lvbjoge2xlbihz ZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSIpDQo+ICsNCj4gKyAgICAgICAgICAgIHN1 Ym1vZHVsZV9wYXRocyA9IHR1cGxlKHNlbGYuX2dldF9naXRfc3VibW9kdWxlX3BhdGhzKCkpDQo+ ICsgICAgICAgICAgICBmb3IgcGF0aCBpbiBzdWJtb2R1bGVfcGF0aHM6DQo+ICsgICAgICAgICAg ICAgICAgbG9nZ2luZy5pbmZvKGYiICBzdWJtb2R1bGUgcGF0aDoge3BhdGh9IikNCj4gKw0KPiAr ICAgICAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0ID0gWw0KPiArICAgICAg ICAgICAgICAgIGYgZm9yIGYgaW4gc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0IGlmIG5v dCBmLnN0YXJ0c3dpdGgoc3VibW9kdWxlX3BhdGhzKV0NCj4gKw0KPiArICAgICAgICAgICAgbG9n Z2luZy5pbmZvKA0KPiArICAgICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmls ZSBjb3VudCBhZnRlciBzdWJtb2R1bGUgZXhjbHVzaW9uOiB7bGVuKHNlbGYuX2Fic19maWxlX3Bh dGhzX3RvX2Zvcm1hdCl9IikNCj4gKw0KPiArICAgICAgICAjIFNvcnQgdGhlIGZpbGVzIGZvciBt b3JlIGNvbnNpc3RlbnQgcmVzdWx0cw0KPiArICAgICAgICBzZWxmLl9hYnNfZmlsZV9wYXRoc190 b19mb3JtYXQuc29ydCgpDQo+ICsNCj4gKyAgICBkZWYgX2luaXRpYWxpemVfdGVzdF9jYXNlX291 dHB1dF9vcHRpb25zKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBJ bml0aWFsaXplcyBvcHRpb25zIHRoYXQgaW5mbHVlbmNlIHRlc3QgY2FzZSBvdXRwdXQuDQo+ICsg ICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl9hdWRpdF9vbmx5X21vZGUgPSBGYWxzZQ0KPiAr ICAgICAgICBzZWxmLl9vdXRwdXRfZmlsZV9kaWZmcyA9IEZhbHNlDQo+ICsNCj4gKyAgICAgICAg aWYgIkF1ZGl0T25seSIgaW4gc2VsZi5fcGFja2FnZV9jb25maWcgYW5kIHNlbGYuX3BhY2thZ2Vf Y29uZmlnWyJBdWRpdE9ubHkiXToNCj4gKyAgICAgICAgICAgIHNlbGYuX2F1ZGl0X29ubHlfbW9k ZSA9IFRydWUNCj4gKw0KPiArICAgICAgICBpZiAiT3V0cHV0RmlsZURpZmZzIiBpbiBzZWxmLl9w YWNrYWdlX2NvbmZpZyBhbmQgc2VsZi5fcGFja2FnZV9jb25maWdbIk91dHB1dEZpbGVEaWZmcyJd Og0KPiArICAgICAgICAgICAgc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnMgPSBUcnVlDQo+ICsNCj4g KyAgICBkZWYgX2xvZ191bmNydXN0aWZ5X2FwcF9pbmZvKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAg ICAgICIiIg0KPiArICAgICAgICBMb2dzIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gaW5mb3JtYXRp b24uDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZiJGb3Vu ZCBVbmNydXN0aWZ5IGF0IHtzZWxmLl9hcHBfcGF0aH0iKQ0KPiArICAgICAgICBzZWxmLl90Yy5M b2dTdGRPdXQoZiJVbmNydXN0aWZ5IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiAr ICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoJ1xuJykNCj4gKyAgICAgICAgbG9nZ2luZy5pbmZv KGYiRm91bmQgVW5jcnVzdGlmeSBhdCB7c2VsZi5fYXBwX3BhdGh9IikNCj4gKyAgICAgICAgbG9n Z2luZy5pbmZvKGYiVW5jcnVzdGlmeSB2ZXJzaW9uOiB7c2VsZi5fYXBwX3ZlcnNpb259IikNCj4g KyAgICAgICAgbG9nZ2luZy5pbmZvKCdcbicpDQo+ICsNCj4gKyAgICBkZWYgX3Byb2Nlc3NfdW5j cnVzdGlmeV9yZXN1bHRzKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAg ICBQcm9jZXNzIHRoZSByZXN1bHRzIGZyb20gVW5jcnVzdGlmeS4NCj4gKw0KPiArICAgICAgICBE ZXRlcm1pbmVzIHdoZXRoZXIgZm9ybWF0dGluZyBlcnJvcnMgYXJlIHByZXNlbnQgYW5kIGxvZ3Mg ZmFpbHVyZXMuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBmb3JtYXR0ZWRfZmlsZXMgPSBb c3RyKHBhdGgucmVzb2x2ZSgpKSBmb3IgcGF0aCBpbiBwYXRobGliLlBhdGgoDQo+ICsgICAgICAg ICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5jcnVzdGlmeS5GT1JNQVRU RURfRklMRV9FWFRFTlNJT059JyldDQo+ICsNCj4gKyAgICAgICAgc2VsZi5fZm9ybWF0dGVkX2Zp bGVfZXJyb3JfY291bnQgPSBsZW4oZm9ybWF0dGVkX2ZpbGVzKQ0KPiArDQo+ICsgICAgICAgIGlm IHNlbGYuX2Zvcm1hdHRlZF9maWxlX2Vycm9yX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHNl bGYuX3RjLkxvZ1N0ZEVycm9yKCJGaWxlcyB3aXRoIGZvcm1hdHRpbmcgZXJyb3JzOlxuIikNCj4g Kw0KPiArICAgICAgICAgICAgaWYgc2VsZi5fb3V0cHV0X2ZpbGVfZGlmZnM6DQo+ICsgICAgICAg ICAgICAgICAgbG9nZ2luZy5pbmZvKCJDYWxjdWxhdGluZyBmaWxlIGRpZmZzLiBUaGlzIG1pZ2h0 IHRha2UgYSB3aGlsZS4uLiIpDQo+ICsNCj4gKyAgICAgICAgZm9yIGZvcm1hdHRlZF9maWxlIGlu IGZvcm1hdHRlZF9maWxlczoNCj4gKyAgICAgICAgICAgIHByZV9mb3JtYXR0ZWRfZmlsZSA9IGZv cm1hdHRlZF9maWxlWzotDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4oVW5jcnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJT04pXQ0KPiAr DQo+ICsgICAgICAgICAgICBpZiBzZWxmLl9vdXRwdXRfZmlsZV9kaWZmczoNCj4gKyAgICAgICAg ICAgICAgICB3aXRoIG9wZW4ocHJlX2Zvcm1hdHRlZF9maWxlKSBhcyBwZiwgb3Blbihmb3JtYXR0 ZWRfZmlsZSkgYXMgZmY6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVy cm9yKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZiJGb3JtYXR0aW5nIGVycm9ycyBpbiB7 b3MucGF0aC5yZWxwYXRoKHByZV9mb3JtYXR0ZWRfZmlsZSwgc2VsZi5fYWJzX3BhY2thZ2VfcGF0 aCl9OlxuIikNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBkaWZmbGli LnVuaWZpZWRfZGlmZihwZi5yZWFkbGluZXMoKSwgZmYucmVhZGxpbmVzKCksIGZyb21maWxlPXBy ZV9mb3JtYXR0ZWRfZmlsZSwNCj4gdG9maWxlPWZvcm1hdHRlZF9maWxlLCBuPTMpOg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IobGluZSkNCj4gKw0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcignXG4nKQ0KPiArICAgICAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBzZWxmLl90Yy5Mb2dTdGRFcnJvcihwcmVf Zm9ybWF0dGVkX2ZpbGUpDQo+ICsNCj4gKyAgICBkZWYgX3JlbW92ZV90cmVlKHNlbGYsIGRpcl9w YXRoOiBzdHIsIGlnbm9yZV9lcnJvcnM6IGJvb2wgPSBGYWxzZSkgLT4gTm9uZToNCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIEhlbHBlciBmb3IgcmVtb3ZpbmcgYSBkaXJlY3RvcnkuIE92ZXIg dGltZSB0aGVyZSBoYXZlIGJlZW4NCj4gKyAgICAgICAgbWFueSBwcml2YXRlIGltcGxlbWVudGF0 aW9ucyBvZiB0aGlzIGR1ZSB0byByZWxpYWJpbGl0eSBpc3N1ZXMgaW4gdGhlDQo+ICsgICAgICAg IHNodXRpbCBpbXBsZW1lbnRhdGlvbnMuIFRvIGNvbnNvbGlkYXRlIG9uIGEgc2luZ2xlIGZ1bmN0 aW9uIHRoaXMgaGVscGVyIGlzIGFkZGVkLg0KPiArDQo+ICsgICAgICAgIE9uIGVycm9yIHRyeSB0 byBjaGFuZ2UgZmlsZSBhdHRyaWJ1dGVzLiBBbHNvIGFkZCByZXRyeSBsb2dpYy4NCj4gKw0KPiAr ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHRlbXBvcmFyaWx5IGJvcnJvd2VkIGZyb20gZWRrMnRv b2xsaWIudXRpbGl0eV9mdW5jdGlvbnMNCj4gKyAgICAgICAgc2luY2UgdGhlIHZlcnNpb24gdXNl ZCBpbiBlZGsyIGlzIG5vdCByZWNlbnQgZW5vdWdoIHRvIGluY2x1ZGUgdGhlDQo+ICsgICAgICAg IGZ1bmN0aW9uLg0KPiArDQo+ICsgICAgICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlcGxh Y2VkIGJ5ICJSZW1vdmVUcmVlIiB3aGVuIGl0IGlzIGF2YWlsYWJsZS4NCj4gKw0KPiArICAgICAg ICBBcmdzOg0KPiArICAgICAgICAgIC0gZGlyX3BhdGg6IFBhdGggdG8gZGlyZWN0b3J5IHRvIHJl bW92ZS4NCj4gKyAgICAgICAgICAtIGlnbm9yZV9lcnJvcnM6IFdoZXRoZXIgdG8gaWdub3JlIGVy cm9ycyBkdXJpbmcgcmVtb3ZhbA0KPiArICAgICAgICAiIiINCj4gKw0KPiArICAgICAgICBkZWYg X3JlbW92ZV9yZWFkb25seShmdW5jLCBwYXRoLCBfKToNCj4gKyAgICAgICAgICAgICIiIg0KPiAr ICAgICAgICAgICAgUHJpdmF0ZSBmdW5jdGlvbiB0byBhdHRlbXB0IHRvIGNoYW5nZSBwZXJtaXNz aW9ucyBvbiBmaWxlL2ZvbGRlciBiZWluZyBkZWxldGVkLg0KPiArICAgICAgICAgICAgIiIiDQo+ ICsgICAgICAgICAgICBvcy5jaG1vZChwYXRoLCBvcy5zdGF0LlNfSVdSSVRFKQ0KPiArICAgICAg ICAgICAgZnVuYyhwYXRoKQ0KPiArDQo+ICsgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOiAgIyBy ZXRyeSB1cCB0byAzIHRpbWVzDQo+ICsgICAgICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICAg ICAgc2h1dGlsLnJtdHJlZShkaXJfcGF0aCwgaWdub3JlX2Vycm9ycz1pZ25vcmVfZXJyb3JzLCBv bmVycm9yPV9yZW1vdmVfcmVhZG9ubHkpDQo+ICsgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBh cyBlcnI6DQo+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKGYiRmFpbGVkIHRvIGZ1 bGx5IHJlbW92ZSB7ZGlyX3BhdGh9OiB7ZXJyfSIpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgICAgIGJyZWFrDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBy YWlzZSBSdW50aW1lRXJyb3IoZiJGYWlsZWQgdG8gcmVtb3ZlIHtkaXJfcGF0aH0iKQ0KPiArDQo+ ICsgICAgZGVmIF9ydW5fdW5jcnVzdGlmeShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiIN Cj4gKyAgICAgICAgUnVucyBVbmNydXN0aWZ5IGZvciB0aGlzIGluc3RhbmNlIG9mIHBsdWdpbiBl eGVjdXRpb24uDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBsb2dnaW5nLmluZm8oIkV4ZWN1 dGluZyBVbmNydXN0aWZ5LiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4uLiIpDQo+ICsgICAgICAg IHN0YXJ0X3RpbWUgPSB0aW1laXQuZGVmYXVsdF90aW1lcigpDQo+ICsgICAgICAgIHNlbGYuX2V4 ZWN1dGVfdW5jcnVzdGlmeSgpDQo+ICsgICAgICAgIGVuZF90aW1lID0gdGltZWl0LmRlZmF1bHRf dGltZXIoKSAtIHN0YXJ0X3RpbWUNCj4gKw0KPiArICAgICAgICBleGVjdXRpb25fc3VtbWFyeSA9 IGYiVW5jcnVzdGlmeSBleGVjdXRlZCBhZ2FpbnN0IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNf dG9fZm9ybWF0KX0gZmlsZXMgaW4NCj4ge3NlbGYuX3BhY2thZ2VfbmFtZX0gaW4ge2VuZF90aW1l Oi4yZn0gc2Vjb25kcy5cbiINCj4gKw0KPiArICAgICAgICBzZWxmLl90Yy5Mb2dTdGRPdXQoZXhl Y3V0aW9uX3N1bW1hcnkpDQo+ICsgICAgICAgIGxvZ2dpbmcuaW5mbyhleGVjdXRpb25fc3VtbWFy eSkNCj4gKw0KPiArICAgICAgICBpZiBzZWxmLl9hcHBfZXhpdF9jb2RlICE9IDAgYW5kIHNlbGYu X2FwcF9leGl0X2NvZGUgIT0gMToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlBcHBF eGVjdXRpb25FeGNlcHRpb24oDQo+ICsgICAgICAgICAgICAgICAgZiJFcnJvciB7c3RyKHNlbGYu X2FwcF9leGl0X2NvZGUpfSByZXR1cm5lZCBmcm9tIFVuY3J1c3RpZnk6XG5cbntzdHIoc2VsZi5f YXBwX291dHB1dCl9IikNCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkv ZGVmYXVsdF9maWxlX2hlYWRlci50eHQgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L2RlZmF1 bHRfZmlsZV9oZWFkZXIudHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwMC4uMjk1NWE3MzRkZmUxDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvLnB5dG9vbC9Q bHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiBAQCAtMCwwICsxLDkg QEANCj4gKy8qKiBAZmlsZQ0KPiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSdzIHB1 cnBvc2UuDQo+ICsNCj4gKyAgRGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUncyBjb250 ZW50cyBhbmQgb3RoZXIgdXNlZnVsDQo+ICsgIGluZm9ybWF0aW9uIGZvciBhIHBlcnNvbiB2aWV3 aW5nIHRoZSBmaWxlIGZvciB0aGUgZmlyc3QgdGltZS4NCj4gKw0KPiArICA8PENvcHlyaWdodD4+ DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsq Ki8NCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9mdW5j dGlvbl9oZWFkZXIudHh0IGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9kZWZhdWx0X2Z1bmN0 aW9uX2hlYWRlci50eHQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw MDAwLi42NmVkYzcyZTY3MzENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5L2RlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dA0KPiBAQCAtMCwwICsxLDE1 IEBADQo+ICsvKioNCj4gKyAgQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhpcyBmdW5jdGlvbidzIHB1 cnBvc2UuDQo+ICsNCj4gKyAgRm9sbG93IGl0IGltbWVkaWF0ZWx5IHdpdGggdGhlIGRldGFpbGVk IGRlc2NyaXB0aW9uLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gICAgICBBcmcxICBEZXNjcmlwdGlv biBvZiBBcmcxLg0KPiArICBAcGFyYW1baW5dICAgICAgQXJnMiAgRGVzY3JpcHRpb24gb2YgQXJn MiBUaGlzIGlzIGNvbXBsaWNhdGVkIGFuZCByZXF1aXJlcw0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgbXVsdGlwbGUgbGluZXMgdG8gZGVzY3JpYmUuDQo+ICsgIEBwYXJhbVtvdXRdICAgICBB cmczICBEZXNjcmlwdGlvbiBvZiBBcmczLg0KPiArICBAcGFyYW1baW4sIG91dF0gQXJnNCAgRGVz Y3JpcHRpb24gb2YgQXJnNC4NCj4gKw0KPiArICBAcmV0dmFsIFZBTF9PTkUgIERlc2NyaXB0aW9u IG9mIHdoYXQgVkFMX09ORSBzaWduaWZpZXMuDQo+ICsgIEByZXR2YWwgT1RIRVIgICAgVGhpcyBp cyB0aGUgb25seSBvdGhlciByZXR1cm4gdmFsdWUuIElmIHRoZXJlIHdlcmUgb3RoZXINCj4gKyAg ICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzLCB0aGV5IHdvdWxkIGJlIGxpc3RlZC4NCj4g KyoqLw0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5 LmNmZyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeS5jZmcNCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5kNmU5OGRmYTljMDENCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnku Y2ZnDQo+IEBAIC0wLDAgKzEsNDY2IEBADQo+ICsjIyBAZmlsZQ0KPiArIyBVbmNydXN0aWZ5IENv bmZpZ3VyYXRpb24gRmlsZSBmb3IgRURLIElJIEMgQ29kZQ0KPiArIw0KPiArIyBDb2RpbmcgU3Rh bmRhcmQ6IGh0dHBzOi8vZWRrMi1kb2NzLmdpdGJvb2suaW8vZWRrLWlpLWMtY29kaW5nLXN0YW5k YXJkcy1zcGVjaWZpY2F0aW9uLw0KPiArIw0KPiArIyBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBp cyBtZWFudCB0byBiZSBhICJiZXN0IGF0dGVtcHQiIHRvIGFsaWduIHdpdGggdGhlDQo+ICsjIGRl ZmluaXRpb25zIGluIHRoZSBFREsgSUkgQyBDb2RpbmcgU3RhbmRhcmRzIFNwZWNpZmljYXRpb24u DQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gKw0K PiArIyBGb3JjZSBVVEYtOCBlbmNvZGluZyAobm8gVVRGLTE2KQ0KPiArZW5hYmxlX2RpZ3JhcGhz ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICt1dGY4X2J5dGUgICAgICAgICAgICAgICAgICAg ICAgID0gZmFsc2UNCj4gK3V0ZjhfZm9yY2UgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ ICsNCj4gKyMgQ29kZSB3aWR0aCAvIGxpbmUgc3BsaXR0aW5nDQo+ICsjY29kZV93aWR0aCAgICAg ICAgICAgICAgICAgICAgICA9MTIwICAgICAjIFRPRE86IFRoaXMgY2F1c2VzIG5vbi1kZXRlcm1p bmlzdGljIGJlaGF2aW91ciBpbiBzb21lIGNhc2VzIHdoZW4gY29kZSB3cmFwcw0KPiArbHNfY29k ZV93aWR0aCAgICAgICAgICAgICAgICAgICA9ZmFsc2UNCj4gK2xzX2Zvcl9zcGxpdF9mdWxsICAg ICAgICAgICAgICAgPXRydWUNCj4gK2xzX2Z1bmNfc3BsaXRfZnVsbCAgICAgICAgICAgICAgPXRy dWUNCj4gK3Bvc19jb21tYSAgICAgICAgICAgICAgICAgICAgICAgPXRyYWlsDQo+ICsNCj4gKyMg NS4xLjcgIEFsbCBmaWxlcyBtdXN0IGVuZCB3aXRoIENSTEYNCj4gK25ld2xpbmVzICAgICAgICAg ICAgICAgICAgICAgICAgPSBjcmxmDQo+ICsNCj4gKyMgNS4xLjIgRG8gbm90IHVzZSB0YWIgY2hh cmFjdGVycw0KPiArDQo+ICtjbXRfY29udmVydF90YWJfdG9fc3BhY2VzICAgICAgID0gdHJ1ZSAg ICAgICMgV2hldGhlciB0byBjb252ZXJ0IGFsbCB0YWJzIHRvIHNwYWNlcyBpbiBjb21tZW50cy4g SWYgZmFsc2UsIHRhYnMgaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBjb21tZW50cyBhcmUgbGVmdCBhbG9uZSwgdW5sZXNzIHVzZWQgZm9yIGluZGVu dGluZy4NCj4gK2luZGVudF9jb2x1bW5zICAgICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBO dW1iZXIgb2Ygc3BhY2VzIGZvciBpbmRlbnRhdGlvbg0KPiAraW5kZW50X3dpdGhfdGFicyAgICAg ICAgICAgICAgICA9IDAgICAgICAgICAjIERvIG5vdCB1c2UgVEFCIGNoYXJhY3RlcnMNCj4gK3N0 cmluZ19yZXBsYWNlX3RhYl9jaGFycyAgICAgICAgPSB0cnVlICAgICAgIyBSZXBsYWNlIFRBQiB3 aXRoIFNQQUNFDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgTm90ZTogVGhpcyB3aWxsIGJyZWFrIC5yb2JvdCBmaWxlcyBidXQgaXMgbmVlZGVkIGZvciBl ZGsyIHN0eWxlDQo+ICsNCj4gKyMgNS4yLjEuMSBUaGVyZSBzaGFsbCBiZSBvbmx5IG9uZSBzdGF0 ZW1lbnQgb24gYSBsaW5lIChzdGF0ZW1lbnQgZW5kcyB3aXRoIDspDQo+ICtubF9tdWx0aV9saW5l X2NvbmQgICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgQWRkIGEgbmV3bGluZSBiZXR3ZWVuICcp JyBhbmQgJ3snIGlmIHRoZSAnKScgaXMgb24gYSBkaWZmZXJlbnQgbGluZSB0aGFuDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGlmL2Zvci9ldGMu DQo+ICtubF9hZnRlcl9zZW1pY29sb24gICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhl ciB0byBhZGQgYSBuZXdsaW5lIGFmdGVyIHNlbWljb2xvbnMsIGV4Y2VwdCBpbiAnZm9yJyBzdGF0 ZW1lbnRzLg0KPiArDQo+ICsjIDUuMi4xLjMgQW4gb3BlbiBicmFjZSAneycgZ29lcyBvbiB0aGUg c2FtZSBsaW5lIGFzIHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzICcpJyBvZiBzaW1wbGUgcHJlZGlj YXRlIGV4cHJlc3Npb25zDQo+ICttb2RfZnVsbF9icmFjZV9kbyAgICAgICAgICAgICAgID0gYWRk ICAgICAgICMgQWRkIG9yIHJlbW92ZSBicmFjZXMgb24gYSBzaW5nbGUtbGluZSAnZG8nIHN0YXRl bWVudC4NCj4gK21vZF9mdWxsX2JyYWNlX2ZvciAgICAgICAgICAgICAgPSBhZGQNCj4gK21vZF9m dWxsX2JyYWNlX2Z1bmN0aW9uICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJy YWNlcyBvbiBhIHNpbmdsZS1saW5lIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICttb2RfZnVsbF9i cmFjZV9pZiAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBicmFjZXMg b24gYSBzaW5nbGUtbGluZSAnaWYnIHN0YXRlbWVudC4gQnJhY2VzIHdpbGwgbm90IGJlDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBpZiB0 aGUgYnJhY2VkIHN0YXRlbWVudCBjb250YWlucyBhbiAnZWxzZScuDQo+ICttb2RfZnVsbF9icmFj ZV9pZl9jaGFpbiAgICAgICAgID0gZmFsc2UNCj4gK21vZF9mdWxsX2JyYWNlX3doaWxlICAgICAg ICAgICAgPSBhZGQNCj4gKw0KPiArIyA1LjIuMS40IEEgY2xvc2UgYnJhY2UgJ30nIGFsd2F5cyBn b2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgbGluZSBvZiB0aGUgYm9keQ0KPiArZWF0 X2JsYW5rc19hZnRlcl9vcGVuX2JyYWNlICAgICA9IHRydWUNCj4gK2VhdF9ibGFua3NfYmVmb3Jl X2Nsb3NlX2JyYWNlICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIHJlbW92ZSBibGFuayBsaW5l cyBiZWZvcmUgJ30nLg0KPiArDQo+ICsjIDUuMi4yLjIgQWx3YXlzIHB1dCBzcGFjZSBiZWZvcmUg YW5kIGFmdGVyIGJpbmFyeSBvcGVyYXRvcnMuDQo+ICtzcF9hc3NpZ24gICAgICAgICAgICAgICAg ICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgYXNzaWdubWVu dCBvcGVyYXRvciAnPScsICcrPScsIGV0Yy4NCj4gK3NwX2Fzc2lnbl9kZWZhdWx0ICAgICAgICAg ICAgICAgPSBhZGQNCj4gK3NwX2Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFyb3VuZCBib29sZWFuIG9wZXJhdG9ycyAnJiYnIGFu ZCAnfHwnLg0KPiArc3BfY29tcGFyZSAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAj IEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5kIGNvbXBhcmUgb3BlcmF0b3IgJzwnLCAnPicsICc9 PScsIGV0Yy4NCj4gKw0KPiArIyA1LjIuMi4zIERvIG5vdCBwdXQgc3BhY2UgYmV0d2VlbiB1bmFy eSBvcGVyYXRvcnMgYW5kIHRoZWlyIG9iamVjdA0KPiArc3BfYWRkciAgICAgICAgICAgICAgICAg ICAgICAgICA9IHJlbW92ZSAgICAjIEEgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnJicgKGFk ZHJlc3Mtb2YpIHVuYXJ5IG9wZXJhdG9yLg0KPiArc3BfaW5jZGVjICAgICAgICAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKysnIGFuZCAn LS0nIHRoZSB3b3JkIHRvIHdoaWNoIGl0IGlzIGJlaW5nDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgYXBwbGllZCwgYXMgaW4gJygtLXgpJyBvciAneSsr OycuDQo+ICtzcF9pbnYgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJ34nIChpbnZlcnQpIHVuYXJ5IG9wZXJhdG9yLg0K PiArc3Bfbm90ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciBy ZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICchJyAobm90KSB1bmFyeSBvcGVyYXRvci4NCj4gK3NwX3Np Z24gICAgICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNw YWNlIGFmdGVyICcrJyBvciAnLScsIGFzIGluICd4ID0gLTUnIG9yICd5ID0gKzcnLg0KPiArDQo+ ICsjIDUuMi4yLjQgU3Vic2VxdWVudCBsaW5lcyBvZiBtdWx0aS1saW5lIGZ1bmN0aW9uIGNhbGxz IHNob3VsZCBsaW5lIHVwIHR3byBzcGFjZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5j dGlvbg0KPiArIyAgICAgICAgIG5hbWUNCj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmUg ICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcg aW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQgJyknDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgYXJlIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25s X2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Nsb3N1cmVzID0gZmFsc2UNCj4gK25s X2Z1bmNfY2FsbF9zdGFydF9tdWx0aV9saW5lICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFk ZCBhIG5ld2xpbmUgYWZ0ZXIgJygnIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJyBh cmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBk aWZmZXJlbnQgbGluZXMuDQo+ICsNCj4gKyMgLSBJbmRlbnQgZWFjaCBhcmd1bWVudCAyIHNwYWNl cyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24gbmFtZS4gSWYgYQ0KPiArIyAgIGZ1bmN0 aW9uIGlzIGNhbGxlZCB0aHJvdWdoIGEgc3RydWN0dXJlIG9yIHVuaW9uIG1lbWJlciwgb2YgdHlw ZQ0KPiArIyAgIHBvaW50ZXItdG8tZnVuY3Rpb24sIHRoZW4gaW5kZW50IGVhY2ggYXJndW1lbnQg MiBzcGFjZXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlDQo+ICsjICAgbWVtYmVyIG5hbWUuDQo+ICtp bmRlbnRfZnVuY19jYWxsX2VkazJfc3R5bGUgICAgID0gdHJ1ZSAgICAgICMgVXNlIEVESzIgaW5k ZW50YXRpb24gc3R5bGUgZm9yIGZ1bmN0aW9uIGNhbGxzICAoKipDVVNUT00gU0VUVElORyoqKQ0K PiAraW5kZW50X3BhcmVuX2FmdGVyX2Z1bmNfY2FsbCAgICA9IHRydWUgICAgICAjIFdoZXRoZXIg dG8gaW5kZW50IHRoZSBvcGVuIHBhcmVudGhlc2lzIG9mIGEgZnVuY3Rpb24gY2FsbCwgaWYgdGhl DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGFyZW50 aGVzaXMgaXMgb24gaXRzIG93biBsaW5lLg0KPiArDQo+ICsjIC0gQWxpZ24gdGhlIGNsb3NlIHBh cmVudGhlc2lzIHdpdGggdGhlIHN0YXJ0IG9mIHRoZSBsYXN0IGFyZ3VtZW50DQo+ICtpbmRlbnRf cGFyZW5fY2xvc2UgICAgICAgICAgICAgID0gMCAgICAgICAgICMgSG93IHRvIGluZGVudCBhIGNs b3NlIHBhcmVudGhlc2lzIGFmdGVyIGEgbmV3bGluZS4NCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyAoMDogQm9keSwgMTogT3BlbnBhcmVudGhlc2lzLCAy OiBCcmFjZSBsZXZlbCkNCj4gKw0KPiArDQo+ICsjIDUuMi4yLjUgQWx3YXlzIHB1dCBzcGFjZSBh ZnRlciBjb21tYXMgb3Igc2VtaWNvbG9ucyB0aGF0IHNlcGFyYXRlIGl0ZW1zDQo+ICtzcF9hZnRl cl9jb21tYSAgICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFj ZSBhZnRlciAnLCcsIGkuZS4gJ2EsYicgdnMuICdhLCBiJy4NCj4gK3NwX2JlZm9yZV9jb21tYSAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAn LCcuDQo+ICsNCj4gKyMgNS4yLjIuNiBBbHdheXMgcHV0IHNwYWNlIGJlZm9yZSBhbiBvcGVuIHBh cmVudGhlc2lzDQo+ICtzcF9hZnRlcl9zcGFyZW4gICAgICAgICAgICAgICAgID0gYWRkICAgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciAnKScgb2YgY29udHJvbCBzdGF0ZW1lbnRzLg0K PiArc3BfYXR0cmlidXRlX3BhcmVuICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciBy ZW1vdmUgc3BhY2UgYmV0d2VlbiAnX19hdHRyaWJ1dGVfXycgYW5kICcoJy4NCj4gK3NwX2JlZm9y ZV9zcGFyZW4gICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGJlZm9yZSAnKCcgb2YgY29udHJvbCBzdGF0ZW1lbnRzDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgKCdpZicsICdmb3InLCAnc3dpdGNoJywgJ3doaWxl JywgZXRjLikuDQo+ICtzcF9kZWZpbmVkX3BhcmVuICAgICAgICAgICAgICAgID0gZm9yY2UgICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdkZWZpbmVkJyBhbmQgJygnIGluICcjaWYg ZGVmaW5lZCAoRk9PKScuDQo+ICtzcF9mdW5jX2NhbGxfcGFyZW4gICAgICAgICAgICAgID0gZm9y Y2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kICco JyBvbiBmdW5jdGlvbiBjYWxscy4NCj4gK3NwX2Z1bmNfY2FsbF9wYXJlbl9lbXB0eSAgICAgICAg PSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBh bmQgJygpJyBvbiBmdW5jdGlvbiBjYWxscw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIHdpdGhvdXQgcGFyYW1ldGVycy4gSWYgc2V0IHRvIGlnbm9yZSAo dGhlIGRlZmF1bHQpLCBzcF9mdW5jX2NhbGxfcGFyZW4gaXMNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2VkLg0KPiArc3BfZnVuY19kZWZfcGFyZW4g ICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBh bGlhcyBuYW1lIGFuZCAnKCcgb2YgYSBub24tcG9pbnRlciBmdW5jdGlvbg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHR5cGUgdHlwZWRlZi4NCj4gK3Nw X2Z1bmNfcHJvdG9fcGFyZW4gICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3Zl IHNwYWNlIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgJygpJyBvbiBmdW5jdGlvbiBkZWNsYXJh dGlvbg0KPiArc3Bfc2l6ZW9mX3BhcmVuICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnc2l6ZW9mJyBhbmQgJygnLg0KPiArc3BfdHlwZV9m dW5jICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2Ug YmV0d2VlbiByZXR1cm4gdHlwZSBhbmQgZnVuY3Rpb24gbmFtZS4gQSBtaW5pbXVtIG9mIDENCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpcyBmb3JjZWQg ZXhjZXB0IGZvciBwb2ludGVyIHJldHVybiB0eXBlcy4NCj4gKw0KPiArIyBOb3Qgc3BlY2lmaWVk LCBidXQgYWxzbyBnb29kIHN0eWxlIHRvIHJlbW92ZSBzcGFjZXMgaW5zaWRlIHBhcmVudGhlc2Vz IChPcHRpb25hbCkNCj4gK3NwX2NwYXJlbl9vcGFyZW4gICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gYmFjay10by1iYWNrIHBhcmVudGhlc2Vz LCBpLmUuICcpKCcgdnMuICcpICgnLg0KPiArc3BfaW5zaWRlX2ZwYXJlbiAgICAgICAgICAgICAg ICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgaW5zaWRlIGZ1bmN0aW9uICcoJyBh bmQgJyknLg0KPiArc3BfaW5zaWRlX2ZwYXJlbnMgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAj IEFkZCBvciByZW1vdmUgc3BhY2UgaW5zaWRlIGVtcHR5IGZ1bmN0aW9uICcoKScuDQo+ICtzcF9p bnNpZGVfcGFyZW4gICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBpbnNpZGUgJygnIGFuZCAnKScuDQo+ICtzcF9pbnNpZGVfcGFyZW5fY2FzdCAgICAgICAg ICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZXMgaW5zaWRlIGNhc3QgcGFyZW50 aGVzZXMuICcoaW50KXgnDQo+ICtzcF9pbnNpZGVfc3F1YXJlICAgICAgICAgICAgICAgID0gcmVt b3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgYSBub24tZW1wdHkgJ1snIGFuZCAn XScuDQo+ICtzcF9wYXJlbl9wYXJlbiAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIG5lc3RlZCBwYXJlbnRoZXNlcywgaS5lLiAnKCgnIHZz LiAnKSApJy4NCj4gK3NwX3NxdWFyZV9mcGFyZW4gICAgICAgICAgICAgICAgPSByZW1vdmUgICAg IyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ10nIGFuZCAnKCcgd2hlbiBwYXJ0IG9mIGEg ZnVuY3Rpb24gY2FsbC4NCj4gKw0KPiArIyA1LjIuMi43IFB1dCBhIHNwYWNlIGJlZm9yZSBhbiBv cGVuIGJyYWNlIGlmIGl0IGlzIG5vdCBvbiBpdHMgb3duIGxpbmUNCj4gK3NwX2RvX2JyYWNlX29w ZW4gICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdl ZW4gJ2RvJyBhbmQgJ3snLg0KPiArc3BfcGFyZW5fYnJhY2UgICAgICAgICAgICAgICAgICA9IGZv cmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKScgYW5kICd7Jy4NCj4gK3Nw X3NwYXJlbl9icmFjZSAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3Zl IHNwYWNlIGJldHdlZW4gJyknIGFuZCAneycgb2Ygb2YgY29udHJvbCBzdGF0ZW1lbnRzLg0KPiAr DQo+ICsjIDUuMi4yLjggRG8gbm90IHB1dCBzcGFjZXMgYXJvdW5kIHN0cnVjdHVyZSBtZW1iZXIg YW5kIHBvaW50ZXIgb3BlcmF0b3JzDQo+ICtzcF9hZnRlcl9ieXJlZiAgICAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciByZWZlcmVuY2Ugc2lnbiAn JicsIGlmIGZvbGxvd2VkIGJ5IGEgd29yZC4NCj4gK3NwX2JlZm9yZV9ieXJlZiAgICAgICAgICAg ICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHJlZmVyZW5j ZSBzaWduICcmJy4NCj4gK3NwX2RlcmVmICAgICAgICAgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnKicgKGRlcmVmZXJlbmNlKSB1bmFy eSBvcGVyYXRvci4gVGhpcyBkb2VzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgbm90IGFmZmVjdCB0aGUgc3BhY2luZyBhZnRlciBhICcqJyB0aGF0IGlz IHBhcnQgb2YgYSB0eXBlLg0KPiArc3BfbWVtYmVyICAgICAgICAgICAgICAgICAgICAgICA9IHJl bW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5kIHRoZSAnLicgb3IgJy0+JyBvcGVy YXRvcnMuDQo+ICsNCj4gKyMgNS4yLjIuOSBEbyBub3QgcHV0IHNwYWNlcyBiZWZvcmUgb3BlbiBi cmFja2V0cyBvZiBhcnJheSBzdWJzY3JpcHRzDQo+ICtzcF9iZWZvcmVfc3F1YXJlICAgICAgICAg ICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgJ1snIChleGNl cHQgJ1tdJykuDQo+ICtzcF9iZWZvcmVfc3F1YXJlcyAgICAgICAgICAgICAgID0gcmVtb3ZlICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgJ1tdJy4NCj4gK3NwX2JlZm9yZV92YXJkZWZf c3F1YXJlICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAn WycgZm9yIGEgdmFyaWFibGUgZGVmaW5pdGlvbi4NCj4gKw0KPiArIyA1LjIuMi4xMCBVc2UgZXh0 cmEgcGFyZW50aGVzZXMgcmF0aGVyIHRoYW4gZGVwZW5kaW5nIG9uIGluLWRlcHRoIGtub3dsZWRn ZSBvZiB0aGUgb3JkZXIgb2YgcHJlY2VkZW5jZSBvZiBDDQo+ICttb2RfZnVsbF9wYXJlbl9pZl9i b29sICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBmdWxseSBwYXJlbnRoZXNpemUg Qm9vbGVhbiBleHByZXNzaW9ucyBpbiAnd2hpbGUnIGFuZCAnaWYnDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RhdGVtZW50LCBhcyBpbiAnaWYgKGEg JiYgYiA+IGMpJyA9PiAnaWYgKGEgJiYgKGIgPiBjKSknLg0KPiArDQo+ICsjIDUuMi4yLjExIEFs aWduIGEgY29udGludWF0aW9uIGxpbmUgd2l0aCB0aGUgcGFydCBvZiB0aGUgbGluZSB0aGF0IGl0 IGNvbnRpbnVlcy4NCj4gK3VzZV9pbmRlbnRfY29udGludWVfb25seV9vbmNlICAgPSB0cnVlDQo+ ICsNCj4gKyMgQWRkaXRpb25hbCAne30nIGJyYWNpbmcgcnVsZXMgKE9wdGlvbmFsKQ0KPiArIyBO T1RFIC0gVGhlIHN0eWxlIGd1aWRlIHNwZWNpZmllcyB0d28gZGlmZmVyZW50IHN0eWxlcyBmb3Ig YnJhY2VzLA0KPiArIyBzbyB0aGVzZSBhcmUgaWdub3JlZCBmb3Igbm93IHRvIGFsbG93IGRldmVs b3BlcnMgc29tZSBmbGV4aWJpbGl0eS4NCj4gK25sX2FmdGVyX2JyYWNlX2Nsb3NlICAgICAgICAg ICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgJ30nLiBEb2Vz IG5vdCBhcHBseSBpZiBmb2xsb3dlZCBieSBhDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgbmVjZXNzYXJ5ICc7Jy4NCj4gK25sX2JyYWNlX2Vsc2UgICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2Vl biAnfScgYW5kICdlbHNlJy4NCj4gK25sX2JyYWNlX3doaWxlICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnfScgYW5kICd3aGlsZScg b2YgJ2RvJyBzdGF0ZW1lbnQuDQo+ICtubF9kb19icmFjZSAgICAgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2RvJyBhbmQgJ3snLg0K PiArbmxfZWxzZV9icmFjZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciBy ZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbHNlJyBhbmQgJ3snLg0KPiArbmxfZWxzZV9pZiAgICAg ICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3 ZWVuICdlbHNlJyBhbmQgJ2lmJy4NCj4gK25sX2Vsc2VpZl9icmFjZSAgICAgICAgICAgICAgICAg PSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnZWxzZSBpZicgYW5k ICd7Jy4NCj4gK25sX2VudW1fYnJhY2UgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBB ZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnZW51bScgYW5kICd7Jy4NCj4gK25sX2ZjYWxs X2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xp bmUgYmV0d2VlbiBhIGZ1bmN0aW9uIGNhbGwncyAnKScgYW5kICd7JywNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcyBpbiAnbGlzdF9mb3JfZWFjaChp dGVtLCAmbGlzdCkgeyB9Jy4NCj4gK25sX2Zvcl9icmFjZSAgICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnZm9yJyBhbmQgJ3snLg0K PiArbmxfaWZfYnJhY2UgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciBy ZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdpZicgYW5kICd7Jy4NCj4gK25sX3N0cnVjdF9icmFjZSAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2Vl biAnc3RydWN0IGFuZCAneycuDQo+ICtubF9zd2l0Y2hfYnJhY2UgICAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ3N3aXRjaCcgYW5kICd7 Jy4NCj4gK25sX3VuaW9uX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQg b3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAndW5pb24nIGFuZCAneycuDQo+ICtubF93aGlsZV9i cmFjZSAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5l IGJldHdlZW4gJ3doaWxlJyBhbmQgJ3snLg0KPiArDQo+ICsjIEFkZGl0aW9uYWwgd2hpdGVzcGFj ZSBydWxlcyAoT3B0aW9uYWwpDQo+ICtzcF9hZnRlcl9wdHJfc3RhciAgICAgICAgICAgICAgID0g cmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciBwb2ludGVyIHN0YXIgJyonLCBp ZiBmb2xsb3dlZCBieSBhIHdvcmQuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgVXNlZnVsIHdoZW4gcGFpcmVkIHdpdGggYWxpZ25fdmFyX2RlZl9zdGFy X3N0eWxlPT0yDQo+ICtzcF9hZnRlcl9wdHJfc3Rhcl9mdW5jICAgICAgICAgID0gcmVtb3ZlICAg ICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciBhIHBvaW50ZXIgc3RhciAnKicsIGlmIGZvbGxv d2VkIGJ5IGEgZnVuY3Rpb24NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBwcm90b3R5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbi4NCj4gK3NwX2FmdGVy X3NlbWkgICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNl IGFmdGVyICc7JywgZXhjZXB0IHdoZW4gZm9sbG93ZWQgYnkgYSBjb21tZW50Lg0KPiArc3BfYmVm b3JlX2Nhc2VfY29sb24gICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3Bh Y2UgYmVmb3JlIGNhc2UgJzonLg0KPiArc3BfYmVmb3JlX3B0cl9zdGFyICAgICAgICAgICAgICA9 IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVmb3JlIHBvaW50ZXIgc3RhciAnKicu DQo+ICtzcF9iZWZvcmVfcHRyX3N0YXJfZnVuYyAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZSBiZWZvcmUgYSBwb2ludGVyIHN0YXIgJyonLCBpZiBmb2xsb3dlZCBieSBh IGZ1bmN0aW9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgcHJvdG90eXBlIG9yIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICtzcF9iZWZvcmVfc2VtaSAg ICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUg JzsnDQo+ICtzcF9iZWZvcmVfc2VtaV9mb3IgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgJzsnIGluIG5vbi1lbXB0eSAnZm9yJyBzdGF0ZW1lbnRz Lg0KPiArc3BfYmVmb3JlX3NlbWlfZm9yX2VtcHR5ICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmVmb3JlIGEgc2VtaWNvbG9uIG9mIGFuIGVtcHR5IHBhcnQgb2YgYSBm b3Igc3RhdGVtZW50DQo+ICtzcF9iZXR3ZWVuX3B0cl9zdGFyICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuIHBvaW50ZXIgc3RhcnMgJyonLiAoaWUs ICdWT0lEICoqJykNCj4gK3NwX2JyYWNlX2Nsb3NlX3doaWxlICAgICAgICAgICAgPSBmb3JjZSAg ICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ30nIGFuZCAnd2hpbGUnLg0KPiArDQo+ ICtzcF9hZnRlcl9jYXN0ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlDQo+ICtzcF9hZnRlcl90 eXBlICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9iYWxhbmNlX25lc3RlZF9wYXJlbnMg ICAgICAgID0gZmFsc2UNCj4gK3NwX2JlZm9yZV9ubF9jb250ICAgICAgICAgICAgICAgPSBhZGQN Cj4gK3NwX2JlZm9yZV9zcXVhcmVfYXNtX2Jsb2NrICAgICAgPSBpZ25vcmUNCj4gK3NwX2JlZm9y ZV91bm5hbWVkX2J5cmVmICAgICAgICAgPSBhZGQNCj4gK3NwX2JyYWNlX2JyYWNlICAgICAgICAg ICAgICAgICAgPSBpZ25vcmUNCj4gK3NwX2JyYWNlX2Vsc2UgICAgICAgICAgICAgICAgICAgPSBm b3JjZQ0KPiArc3BfYnJhY2VfdHlwZWRlZiAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfY2Fz ZV9sYWJlbCAgICAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9jbXRfY3BwX2RveHlnZW4g ICAgICAgICAgICAgID0gdHJ1ZQ0KPiArc3BfY29uZF9jb2xvbiAgICAgICAgICAgICAgICAgICA9 IGFkZA0KPiArc3BfY29uZF9xdWVzdGlvbiAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfY3Bw X2Nhc3RfcGFyZW4gICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9lbHNlX2JyYWNlICAgICAg ICAgICAgICAgICAgID0gZm9yY2UNCj4gK3NwX2VuZGlmX2NtdCAgICAgICAgICAgICAgICAgICAg PSBmb3JjZQ0KPiArc3BfZW51bV9hc3NpZ24gICAgICAgICAgICAgICAgICA9IGFkZA0KPiArc3Bf aW5zaWRlX2JyYWNlcyAgICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9pbnNpZGVfYnJhY2Vz X2VtcHR5ICAgICAgICAgID0gZm9yY2UNCj4gK3NwX2luc2lkZV9icmFjZXNfZW51bSAgICAgICAg ICAgPSBmb3JjZQ0KPiArc3BfaW5zaWRlX2JyYWNlc19zdHJ1Y3QgICAgICAgICA9IGZvcmNlDQo+ ICtzcF9wcF9jb25jYXQgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9wcF9zdHJpbmdp ZnkgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9yZXR1cm5fcGFyZW4gICAgICAgICAgICAg ICAgID0gYWRkDQo+ICtzcF9zcGVjaWFsX3NlbWkgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4g K3NwX3doaWxlX3BhcmVuX29wZW4gICAgICAgICAgICAgPSBmb3JjZQ0KPiArDQo+ICsjIEFkZGl0 aW9uYWwgSW5kZW50YXRpb24gUnVsZXMNCj4gK2luZGVudF9hY2Nlc3Nfc3BlYyAgICAgICAgICAg ICAgPSAxDQo+ICtpbmRlbnRfYWNjZXNzX3NwZWNfYm9keSAgICAgICAgID0gZmFsc2UNCj4gK2lu ZGVudF9hbGlnbl9hc3NpZ24gICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfYWxpZ25fc3Ry aW5nICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2Jvb2xfcGFyZW4gICAgICAgICAgICAg ICA9IHRydWUNCj4gK2luZGVudF9icmFjZV9wYXJlbnQgICAgICAgICAgICAgPSBmYWxzZQ0KPiAr aW5kZW50X2JyYWNlcyAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfYnJhY2Vz X25vX2NsYXNzICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9icmFjZXNfbm9fZnVuYyAgICAg ICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfYnJhY2VzX25vX3N0cnVjdCAgICAgICAgID0gZmFsc2UN Cj4gK2luZGVudF9jbGFzcyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2Ns YXNzX2NvbG9uICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfY210X3dpdGhfdGFicyAg ICAgICAgICAgID0gZmFsc2UgICAgICAgICAjIFdoZXRoZXIgdG8gaW5kZW50IGNvbW1lbnRzIHRo YXQgYXJlIG5vdCBhdCBhIGJyYWNlIGxldmVsIHdpdGggdGFicyBvbg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhIHRhYnN0b3AuIFJlcXVpcmVz IGluZGVudF93aXRoX3RhYnM9Mi4gSWYgZmFsc2UsIHdpbGwgdXNlIHNwYWNlcy4NCj4gK2luZGVu dF9jb2wxX2NvbW1lbnQgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfY29sMV9tdWx0aV9z dHJpbmdfbGl0ZXJhbD0gdHJ1ZQ0KPiAraW5kZW50X2NvbW1hX3BhcmVuICAgICAgICAgICAgICA9 IHRydWUNCj4gK2luZGVudF9lbHNlX2lmICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRl bnRfZXh0ZXJuICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9maXJzdF9ib29s X2V4cHIgICAgICAgICAgPSB0cnVlDQo+ICsNCj4gK2luZGVudF9mdW5jX2RlZl9wYXJhbV9wYXJl bl9wb3NfdGhyZXNob2xkID0gMA0KPiAraW5kZW50X2Z1bmNfcGFyYW1fZG91YmxlICAgICAgICAg ICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2Z1bmNfcHJvdG9fcGFyYW0gICAgICAgICAgICAg ICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfaWdub3JlX2FzbV9ibG9jayAgICAgICAgICAgICAgICAg ICA9IHRydWUNCj4gK2luZGVudF9sYWJlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MQ0KPiAraW5kZW50X21lbWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ICtp bmRlbnRfbmFtZXNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRl bnRfcGFyYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gK2luZGVudF9wYXJl bl9ubCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9wYXJlbl9v cGVuX2JyYWNlICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9wcmVzZXJ2ZV9z cWwgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9yZWxhdGl2ZV9zaW5n bGVfbGluZV9jb21tZW50cyAgICAgID0gZmFsc2UNCj4gK2luZGVudF9zaW5nX2xpbmVfY29tbWVu dHMgICAgICAgICAgICAgICAgID0gMA0KPiAraW5kZW50X3NpbmdsZV9uZXdsaW5lcyAgICAgICAg ICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X3NxdWFyZV9ubCAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X3N3aXRjaF9jYXNlICAgICAgICAgICAgICAgICAg ICAgICAgPSAyDQo+ICtpbmRlbnRfdGVtcGxhdGVfcGFyYW0gICAgICAgICAgICAgICAgICAgICA9 IHRydWUNCj4gK2luZGVudF92YXJfZGVmX2JsayAgICAgICAgICAgICAgICAgICAgICAgID0gMA0K PiAraW5kZW50X3Zhcl9kZWZfY29udCAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAr DQo+ICsjIFRpZHktdXAgcnVsZXMgKE9wdGlvbmFsKQ0KPiArbW9kX21vdmVfY2FzZV9icmVhayAg ICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gbW92ZSBhICdicmVhaycgdGhhdCBh cHBlYXJzIGFmdGVyIGEgZnVsbHkgYnJhY2VkICdjYXNlJw0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJlZm9yZSB0aGUgY2xvc2UgYnJhY2UsIGFzIGlu ICdjYXNlIFg6IHsgLi4uIH0gYnJlYWs7JyA9Pg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjICdjYXNlIFg6IHsgLi4uIGJyZWFrOyB9Jy4NCj4gK21vZF9w YXduX3NlbWljb2xvbiAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbW9kX3JlbW92ZV9lbXB0eV9y ZXR1cm4gICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gcmVtb3ZlIGEgdm9pZCAncmV0 dXJuOycgdGhhdCBhcHBlYXJzIGFzIHRoZSBsYXN0IHN0YXRlbWVudA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGEgZnVuY3Rpb24uDQo+ICttb2Rf cmVtb3ZlX2V4dHJhX3NlbWljb2xvbiAgICAgID0gdHJ1ZQ0KPiArbW9kX3NvcnRfaW1wb3J0ICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ICttb2Rfc29ydF9pbmNsdWRlICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK21vZF9zb3J0X3VzaW5nICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAr bmxfYWZ0ZXJfY2FzZSAgICAgICAgICAgICAgICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8g YWRkIGEgbmV3bGluZSBhZnRlciBhICdjYXNlJyBzdGF0ZW1lbnQuDQo+ICtubF9lbmRfb2ZfZmls ZSAgICAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGF0 IHRoZSBlbmQgb2YgdGhlIGZpbGUuDQo+ICtubF9lbmRfb2ZfZmlsZV9taW4gICAgICAgICAgICAg ID0gMSAgICAgICAgICMgVGhlIG1pbmltdW0gbnVtYmVyIG9mIG5ld2xpbmVzIGF0IHRoZSBlbmQg b2YgdGhlIGZpbGUNCj4gK25sX21heCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyICAgICAg ICAgIyBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uc2VjdXRpdmUgbmV3bGluZXMgKDMgPSAyIGJs YW5rIGxpbmVzKS4NCj4gK25sX3N0YXJ0X29mX2ZpbGUgICAgICAgICAgICAgICAgPSByZW1vdmUg ICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4NCj4g Kw0KPiArIyBDb2RlIGFsaWdubWVudCBydWxlcyAoT3B0aW9uYWwpDQo+ICthbGlnbl9hc21fY29s b24gICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX2Fzc2lnbl9zcGFuICAgICAgICAg ICAgICAgPSAxICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgb24gJz0nIGluIGFzc2ln bm1lbnRzLg0KPiArYWxpZ25fYXNzaWduX3RocmVzaCAgICAgICAgICAgICA9IDQNCj4gK2FsaWdu X2VkazJfc3R5bGUgICAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFwcGx5 IGVkazItc3BlY2lmaWMgYWxpZ25tZW50IGZvcm1hdHRpbmcNCj4gK2FsaWduX2VudW1fZXF1X3Nw YW4gICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgb24gJz0n IGluIGVudW1zLg0KPiArYWxpZ25fZnVuY19wYXJhbXMgICAgICAgICAgICAgICA9IHRydWUgICAg ICAjIFdoZXRoZXIgdG8gYWxpZ24gdmFyaWFibGUgZGVmaW5pdGlvbnMgaW4gcHJvdG90eXBlcyBh bmQgZnVuY3Rpb25zLg0KPiArYWxpZ25fZnVuY19wYXJhbXNfZ2FwICAgICAgICAgICA9IDINCj4g K2FsaWduX2Z1bmNfcGFyYW1zX3NwYW4gICAgICAgICAgPSAyICAgICAgICAgIyBUaGUgc3BhbiBm b3IgYWxpZ25pbmcgcGFyYW1ldGVyIGRlZmluaXRpb25zIGluIGZ1bmN0aW9uIG9uIHBhcmFtZXRl ciBuYW1lLg0KPiArYWxpZ25fZnVuY19wYXJhbXNfdGhyZXNoICAgICAgICA9IDANCj4gK2FsaWdu X2Z1bmNfcHJvdG9fc3BhbiAgICAgICAgICAgPSAwDQo+ICthbGlnbl9rZWVwX3RhYnMgICAgICAg ICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX2xlZnRfc2hpZnQgICAgICAgICAgICAgICAgPSBm YWxzZQ0KPiArYWxpZ25fbWl4X3Zhcl9wcm90byAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGln bl9ubF9jb250ICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX29jX2RlY2xfY29s b24gICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fb25fb3BlcmF0b3IgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICthbGlnbl9vbl90YWJzdG9wICAgICAgICAgICAgICAgID0gZmFsc2UNCj4g K2FsaWduX3BwX2RlZmluZV9nYXAgICAgICAgICAgICAgPSAyDQo+ICthbGlnbl9wcF9kZWZpbmVf c3BhbiAgICAgICAgICAgID0gMQ0KPiArYWxpZ25fcmlnaHRfY210X2F0X2NvbCAgICAgICAgICA9 IDAgICAgICAgICAjIEFsaWduIHRyYWlsaW5nIGNvbW1lbnQgYXQgb3IgYmV5b25kIGNvbHVtbiBO OyAncHVsbHMgaW4nIGNvbW1lbnRzIGFzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgYSBib251cyBzaWRlIGVmZmVjdCAoMD1pZ25vcmUpDQo+ICthbGln bl9yaWdodF9jbXRfZ2FwICAgICAgICAgICAgID0gMCAgICAgICAgICMgSWYgYSB0cmFpbGluZyBj b21tZW50IGlzIG1vcmUgdGhhbiB0aGlzIG51bWJlciBvZiBjb2x1bW5zIGF3YXkgZnJvbSB0aGUN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0ZXh0IGl0 IGZvbGxvd3MsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgaXQgd2lsbCBxdWFsaWZ5IGZvciBiZWluZyBhbGlnbmVkLiBUaGlzIGhhcyB0byBiZSA+IDAg dG8gZG8gYW55dGhpbmcuDQo+ICthbGlnbl9yaWdodF9jbXRfbWl4ICAgICAgICAgICAgID0gZmFs c2UgICAgICMgSWYgYWxpZ25pbmcgY29tbWVudHMsIG1peCB3aXRoIGNvbW1lbnRzIGFmdGVyICd9 JyBhbmQgI2VuZGlmIHdpdGggbGVzcw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIHRoYW4gMyBzcGFjZXMgYmVmb3JlIHRoZSBjb21tZW50DQo+ICthbGln bl9yaWdodF9jbXRfc2FtZV9sZXZlbCAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBvbmx5 IGFsaWduIHRyYWlsaW5nIGNvbW1lbnRzIHRoYXQgYXJlIGF0IHRoZSBzYW1lIGJyYWNlIGxldmVs Lg0KPiArYWxpZ25fcmlnaHRfY210X3NwYW4gICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBz cGFuIGZvciBhbGlnbmluZyBjb21tZW50cyB0aGF0IGVuZCBsaW5lcy4NCj4gK2FsaWduX3NhbWVf ZnVuY19jYWxsX3BhcmFtcyAgICAgPSBmYWxzZQ0KPiArYWxpZ25fc2luZ2xlX2xpbmVfYnJhY2Ug ICAgICAgICA9IHRydWUNCj4gK2FsaWduX3NpbmdsZV9saW5lX2Z1bmMgICAgICAgICAgPSB0cnVl DQo+ICthbGlnbl9zdHJ1Y3RfaW5pdF9zcGFuICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNw YW4gZm9yIGFsaWduaW5nIHN0cnVjdCBpbml0aWFsaXplciB2YWx1ZXMuDQo+ICthbGlnbl90eXBl ZGVmX2FtcF9zdHlsZSAgICAgICAgID0gMQ0KPiArYWxpZ25fdHlwZWRlZl9mdW5jICAgICAgICAg ICAgICA9IDEgICAgICAgICAjIEhvdyB0byBhbGlnbiB0eXBlZGVmJ2QgZnVuY3Rpb25zIHdpdGgg b3RoZXIgdHlwZWRlZnMuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgKDA6IE5vIGFsaWduLCAxOiBBbGlnbiBvcGVuIHBhcmFudGhlc2lzLCAyOiBBbGln biBmdW5jdGlvbiB0eXBlIG5hbWUpDQo+ICthbGlnbl90eXBlZGVmX2dhcCAgICAgICAgICAgICAg ID0gMg0KPiArYWxpZ25fdHlwZWRlZl9zcGFuICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRo ZSBzcGFuIGZvciBhbGlnbmluZyBzaW5nbGUtbGluZSB0eXBlZGVmcy4NCj4gK2FsaWduX3R5cGVk ZWZfc3Rhcl9zdHlsZSAgICAgICAgPSAxDQo+ICthbGlnbl92YXJfZGVmX2FtcF9zdHlsZSAgICAg ICAgID0gMQ0KPiArYWxpZ25fdmFyX2RlZl9hdHRyaWJ1dGUgICAgICAgICA9IHRydWUNCj4gK2Fs aWduX3Zhcl9kZWZfY29sb24gICAgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFs aWduIHRoZSBjb2xvbiBpbiBzdHJ1Y3QgYml0IGZpZWxkcy4NCj4gK2FsaWduX3Zhcl9kZWZfZ2Fw ICAgICAgICAgICAgICAgPSAyICAgICAgICAgIyBUaGUgZ2FwIChtaW5pbXVtIHNwYWNpbmcgZm9y IGFsaWduZWQgaXRlbXMpIGZvciB2YXJpYWJsZSBkZWZpbml0aW9ucy4NCj4gK2FsaWduX3Zhcl9k ZWZfaW5saW5lICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fdmFyX2RlZl9zcGFuICAgICAg ICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIChsaW5lcyBuZWVkZWQgdG8gYWxpZ24pIGZv ciBhbGlnbmluZyB2YXJpYWJsZSBkZWZpbml0aW9ucy4NCj4gK2FsaWduX3Zhcl9kZWZfc3Rhcl9z dHlsZSAgICAgICAgPSAxICAgICAgICAgIyBIb3cgdG8gY29uc2lkZXIgKG9yIHRyZWF0KSB0aGUg JyonIGluIHRoZSBhbGlnbm1lbnQgb2YgdmFyaWFibGUNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZpbml0aW9ucy4NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwOiBQYXJ0IG9mIHRoZSB0eXBlICAgICAn dm9pZCAqICAgZm9vOycgKGRlZmF1bHQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgMTogUGFydCBvZiB0aGUgdmFyaWFibGUgJ3ZvaWQgICAgICpmb287 Jw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDI6IERh bmdsaW5nICAgICAgICAgICAgICd2b2lkICAgICpmb287Jw0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIChOb3RlIC0gc2hvdWxkIGFsc28gc2V0IHNwX2Fm dGVyX3B0cl9zdGFyPXJlbW92ZSkNCj4gK2FsaWduX3Zhcl9zdHJ1Y3RfZ2FwICAgICAgICAgICAg PSA0DQo+ICthbGlnbl92YXJfc3RydWN0X3NwYW4gICAgICAgICAgID0gOCAgICAgICAgICMgVGhl IHNwYW4gZm9yIGFsaWduaW5nIHN0cnVjdC91bmlvbiBtZW1iZXIgZGVmaW5pdGlvbnMuDQo+ICth bGlnbl92YXJfc3RydWN0X3RocmVzaCAgICAgICAgID0gMA0KPiArYWxpZ25fd2l0aF90YWJzICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ICsNCj4gKyMgQ29tbWVudCBmb3JtYXR0aW5nDQo+ICtj bXRfYWxpZ25fZG94eWdlbl9qYXZhZG9jX3RhZ3MgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBh bGlnbiBkb3h5Z2VuIGphdmFkb2Mtc3R5bGUgdGFncyAoJ0BwYXJhbScsICdAcmV0dXJuJywgZXRj LikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RP OiBFYXRzICdbJyBpbiAnW2luXScNCj4gK2NtdF9jX2dyb3VwICAgICAgICAgICAgICAgICAgICAg PSBmYWxzZQ0KPiArY210X2NfbmxfZW5kICAgICAgICAgICAgICAgICAgICA9IHRydWUgICAgICAj IFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBiZWZvcmUgdGhlIGNsb3NpbmcgJyovJyBvZiB0aGUg Y29tYmluZWQgYy1jb21tZW50Lg0KPiArY210X2Nfbmxfc3RhcnQgICAgICAgICAgICAgICAgICA9 IHRydWUNCj4gK2NtdF9jcHBfZ3JvdXAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210 X2NwcF9ubF9lbmQgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2NtdF9jcHBfbmxfc3RhcnQg ICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtjbXRfY3BwX3RvX2MgICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK2NtdF9pbmRlbnRfbXVsdGkgICAgICAgICAgICAgICAgPSBmYWxzZSAgICAg IyBXaGV0aGVyIHRvIGFwcGx5IGNoYW5nZXMgdG8gbXVsdGktbGluZSBjb21tZW50cywgaW5jbHVk aW5nIGNtdF93aWR0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBrZXl3b3JkIHN1YnN0aXR1dGlvbiBhbmQgbGVhZGluZyBjaGFycy4NCj4gK2NtdF9p bnNlcnRfYmVmb3JlX3ByZXByb2MgICAgICAgPSBmYWxzZQ0KPiArI2NtdF9pbnNlcnRfZmlsZV9o ZWFkZXIgICAgICAgICAgPSBkZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiArI2NtdF9pbnNlcnRf ZnVuY19oZWFkZXIgICAgICAgICAgPSBkZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQNCj4gK2Nt dF9tdWx0aV9jaGVja19sYXN0ICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210X211bHRpX2ZpcnN0 X2xlbl9taW5pbXVtICAgICA9IDINCj4gK2NtdF9yZWZsb3dfbW9kZSAgICAgICAgICAgICAgICAg PSAxICAgICAgICAgIyBIb3cgdG8gcmVmbG93IGNvbW1lbnRzLg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICgwOk5vIHJlZmxvdywgMTpObyB0b3VjaGlu ZyBhdCBhbGwsIDI6IEZ1bGwgcmVmbG93KQ0KPiArY210X3NwX2FmdGVyX3N0YXJfY29udCAgICAg ICAgICA9IDAgICAgICAgICAjIFRoZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGluc2VydCBhZnRlciB0 aGUgc3RhciBvbiBzdWJzZXF1ZW50IGNvbW1lbnQgbGluZXMuDQo+ICtjbXRfc3BfYmVmb3JlX3N0 YXJfY29udCAgICAgICAgID0gMCAgICAgICAgICMgVGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5z ZXJ0IGF0IHRoZSBzdGFydCBvZiBzdWJzZXF1ZW50IGNvbW1lbnQgbGluZXMuDQo+ICtjbXRfc3Rh cl9jb250ICAgICAgICAgICAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBwdXQgYSBz dGFyIG9uIHN1YnNlcXVlbnQgY29tbWVudCBsaW5lcy4NCj4gK2NtdF93aWR0aCAgICAgICAgICAg ICAgICAgICAgICAgPSAxMjAgICAgICAgIyBUcnkgdG8gd3JhcCBjb21tZW50cyBhdCBOIGNvbHVt bnMuDQo+ICtzcF9jbXRfY3BwX3N0YXJ0ICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgb3BlbmluZyBvZiBhIEMrKyBjb21tZW50LCBhcyBp bg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICcvLyA8 aGVyZT4gQScuICBOT1RFOiBCcmVha3MgaW5kZW50YXRpb24gd2l0aGluIGNvbW1lbnRzLg0KPiAr DQo+ICsjIEZ1bmN0aW9uIGRlZmluaXRpb25zIC8gZGVjbGFyYXRpb25zDQo+ICtpbmRlbnRfZnVu Y19jYWxsX3BhcmFtICAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQgY29u dGludWVkIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVycyBvbmUgaW5kZW50IGxldmVsLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJhdGhlciB0aGFuIGFs aWduaW5nIHBhcmFtZXRlcnMgdW5kZXIgdGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ICtpbmRlbnRf ZnVuY19jbGFzc19wYXJhbSAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byBpbmRlbnQg Y29udGludWVkIGZ1bmN0aW9uIGNhbGwgZGVjbGFyYXRpb24gb25lIGluZGVudCBsZXZlbCwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByYXRoZXIgdGhh biBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0KPiAraW5k ZW50X2Z1bmNfY3Rvcl92YXJfcGFyYW0gICAgICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gaW5k ZW50IGNvbnRpbnVlZCBjbGFzcyB2YXJpYWJsZSBjb25zdHJ1Y3RvcnMgb25lIGluZGVudCBsZXZl bCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByYXRo ZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVudGhlc2lzLg0K PiAraW5kZW50X2Z1bmNfZGVmX3BhcmFtICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIg dG8gaW5kZW50IGNvbnRpbnVlZCBmdW5jdGlvbiBkZWZpbml0aW9uIHBhcmFtZXRlcnMgb25lIGlu ZGVudA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxl dmVsLCByYXRoZXIgdGhhbiBhbGlnbmluZyBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBvcGVuIHBhcmVu dGhlc2lzLg0KPiArbmxfZmRlZl9icmFjZSAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAj IEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgJ3sn Lg0KPiArbmxfZnVuY19jYWxsX2VuZF9tdWx0aV9saW5lICAgICA9IHRydWUgICAgICAjIFdoZXRo ZXIgdG8gYWRkIGEgbmV3bGluZSBiZWZvcmUgJyknIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcg YW5kICcpJyBhcmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ICtubF9mdW5jX2NhbGxfcGFyZW4gICAgICAgICAg ICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlv biBuYW1lIGFuZCB0aGUgb3BlbmluZyAnKCcgaW4gdGhlDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgY2FsbC4NCj4gK25sX2Z1bmNfY2FsbF9zdGFydF9t dWx0aV9saW5lICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIg JygnIGluIGEgZnVuY3Rpb24gY2FsbCBpZiAnKCcgYW5kICcpJyBhcmUNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBkaWZmZXJlbnQgbGluZXMuDQo+ ICtubF9mdW5jX2RlY2xfYXJncyAgICAgICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJl bW92ZSBuZXdsaW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24uDQo+ ICtubF9mdW5jX2RlY2xfZW1wdHkgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJl bW92ZSBuZXdsaW5lIGJldHdlZW4gJygpJyBpbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLg0KPiAr bmxfZnVuY19kZWZfYXJncyAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1v dmUgbmV3bGluZSBhZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICtu bF9mdW5jX2RlZl9lbXB0eSAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92 ZSBuZXdsaW5lIGJldHdlZW4gJygpJyBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24uDQo+ICtubF9m dW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBu ZXdsaW5lIGJldHdlZW4gYSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgb3BlbmluZyAnKCcNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgZGVmaW5p dGlvbi4NCj4gK25sX2Z1bmNfcGFyZW4gICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBB ZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVu aW5nICcoJyBpbg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIHRoZSBkZWNsYXJhdGlvbi4NCj4gK25sX2Z1bmNfdHlwZV9uYW1lICAgICAgICAgICAgICAg PSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiByZXR1cm4gdHlwZSBh bmQgZnVuY3Rpb24gbmFtZSBpbiBhIGZ1bmN0aW9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgZGVmaW5pdGlvbi4NCj4gK3NwX2ZwYXJlbl9icmFjZSAg ICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4g JyknIGFuZCAneycgb2YgZnVuY3Rpb24uDQo+ICt1c2VfaW5kZW50X2Z1bmNfY2FsbF9wYXJhbSAg ICAgID0gdHJ1ZSAgICAgICMgaW5kZW50X2Z1bmNfY2FsbF9wYXJhbSB3aWxsIGJlIHVzZWQNCj4g Kw0KPiArIyBBZGRpdGlvbmFsIE5ld2xpbmUgUnVsZXMNCj4gK25sX2FmdGVyX2JyYWNlX29wZW4g ICAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5l d2xpbmUgYWZ0ZXIgJ3snLiBUaGlzIGFsc28gYWRkcyBhIG5ld2xpbmUNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhl IG1hdGNoaW5nICd9Jy4NCj4gK25sX2FmdGVyX2JyYWNlX29wZW5fY210ICAgICAgICAgICAgICAg ICAgICAgID0gdHJ1ZSAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYmV0d2VlbiB0aGUg b3BlbiBicmFjZSBhbmQgYQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIHRyYWlsaW5nIHNpbmdsZS1saW5lIGNvbW1lbnQuDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg UmVxdWlyZXMgbmxfYWZ0ZXJfYnJhY2Vfb3BlbiA9IHRydWUuDQo+ICtubF9hZnRlcl9kbyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICMgQWRkIG9yIHJlbW92ZSBi bGFuayBsaW5lIGFmdGVyICdkby93aGlsZScgc3RhdGVtZW50Lg0KPiArbmxfYWZ0ZXJfZm9yICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAjIEFkZCBvciByZW1vdmUg YmxhbmsgbGluZSBhZnRlciAnZm9yJyBzdGF0ZW1lbnQuDQo+ICtubF9hZnRlcl9mdW5jX2JvZHkg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIgICAgICAgICMgVGhlIG51bWJlciBvZiBuZXds aW5lcyBhZnRlciAnfScgb2YgYSBtdWx0aS1saW5lIGZ1bmN0aW9uIGJvZHkNCj4gK25sX2FmdGVy X2Z1bmNfYm9keV9vbmVfbGluZXIgICAgICAgICAgICAgICAgID0gMg0KPiArbmxfYWZ0ZXJfZnVu Y19wcm90byAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyDQo+ICtubF9hZnRlcl9mdW5jX3By b3RvX2dyb3VwICAgICAgICAgICAgICAgICAgICA9IDINCj4gK25sX2FmdGVyX2lmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9hZnRlcl9tdWx0aWxpbmVfY29t bWVudCAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9hZnRlcl9yZXR1cm4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9hZnRlcl9zdHJ1Y3QgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gK25sX2FmdGVyX3N3aXRjaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9hZnRlcl92YnJhY2VfY2xvc2UgICAgICAg ICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2FmdGVyX3ZicmFjZV9vcGVuICAgICAgICAg ICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArbmxfYWZ0ZXJfdmJyYWNlX29wZW5fZW1wdHkgICAg ICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtubF9hZnRlcl93aGlsZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfYXNzaWduX2xlYXZlX29uZV9saW5lcnMgICAgICAg ICAgICAgICAgICAgPSB0cnVlDQo+ICtubF9iZWZvcmVfYmxvY2tfY29tbWVudCAgICAgICAgICAg ICAgICAgICAgICA9IDINCj4gK25sX2JlZm9yZV9jYXNlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK25sX2JlZm9yZV9kbyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVfZm9yICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IGlnbm9yZQ0KPiArbmxfYmVmb3JlX2lmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBpZ25vcmUNCj4gK25sX2JlZm9yZV9zd2l0Y2ggICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVfd2hpbGUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IGlnbm9yZQ0KPiArbmxfYmVmb3JlX3dob2xlX2ZpbGVfaWZkZWYgICAgICAg ICAgICAgICAgICAgPSAyDQo+ICtubF9icmFjZV9icmFjZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IGZvcmNlDQo+ICtubF9icmFjZV9zdHJ1Y3RfdmFyICAgICAgICAgICAgICAgICAg ICAgICAgICA9IHJlbW92ZQ0KPiArbmxfY2FzZV9jb2xvbl9icmFjZSAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBhZGQNCj4gK25sX2NsYXNzX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK25sX2NvbGxhcHNlX2VtcHR5X2JvZHkgICAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK25sX2NvbW1lbnRfZnVuY19kZWYgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMQ0KPiArbmxfY3JlYXRlX2Zvcl9vbmVfbGluZXIgICAgICAgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArbmxfY3JlYXRlX2lmX29uZV9saW5lciAgICAgICAgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArbmxfY3JlYXRlX3doaWxlX29uZV9saW5lciAgICAgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArbmxfZGVmaW5lX21hY3JvICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArbmxfZHNfc3RydWN0X2VudW1fY2xvc2VfYnJhY2UgICAgICAgICAgICAg ICAgPSB0cnVlDQo+ICtubF9kc19zdHJ1Y3RfZW51bV9jbXQgICAgICAgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICtubF9lbnVtX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICtubF9mdW5jX2NhbGxfYXJnc19tdWx0aV9saW5lICAgICAgICAgICAgICAg ICA9IHRydWUNCj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmVfaWdub3JlX2Nsb3N1cmVz ID0gZmFsc2UNCj4gK25sX2Z1bmNfZGVjbF9lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gYWRkDQo+ICtubF9mdW5jX2RlY2xfc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IGFkZA0KPiArbmxfZnVuY19kZWZfZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBh ZGQNCj4gK25sX2Z1bmNfZGVmX3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRk DQo+ICtubF9mdW5jX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgICA9IGZhbHNl DQo+ICtubF9mdW5jX3Byb3RvX3R5cGVfbmFtZSAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0K PiArbmxfZnVuY192YXJfZGVmX2JsayAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ICtu bF9nZXRzZXRfbGVhdmVfb25lX2xpbmVycyAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtu bF9pZl9sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtu bF9tdWx0aV9saW5lX2RlZmluZSAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtu bF9zcXVlZXplX2lmZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtu bF92YXJfZGVmX2Jsa19lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDANCj4gK25sX3Zh cl9kZWZfYmxrX3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMA0KPiArDQo+ICsjIFBy ZXByb2Nlc3NvciBSdWxlcw0KPiArcHBfZGVmaW5lX2F0X2xldmVsICAgICAgPSB0cnVlDQo+ICtw cF9pZl9pbmRlbnRfY29kZSAgICAgICA9IGZhbHNlDQo+ICtwcF9pbmRlbnRfZnVuY19kZWYgICAg ICA9IGZhbHNlDQo+ICtwcF9pbmRlbnRfZXh0ZXJuICAgICAgICA9IGZhbHNlDQo+ICtwcF9pZ25v cmVfZGVmaW5lX2JvZHkgICA9IHRydWUgICAgICAgICAgICAgICAgIyBXb3JrYXJvdW5kOiBUdXJu IG9mZiBwcm9jZXNzaW5nIGZvciAjZGVmaW5lIGJvZHkNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIChjdXJyZW50IHJ1bGVzIGRvIG5vdCB3b3JrIGZv ciBzb21lIGRlZmluZXMpDQo+ICtwcF9pbmRlbnQgICAgICAgICAgICAgICA9IGFkZA0KPiArcHBf aW5kZW50X2F0X2xldmVsICAgICAgPSB0cnVlDQo+ICtwcF9pbmRlbnRfY291bnQgICAgICAgICA9 IDINCj4gK3BwX2luZGVudF9pZiAgICAgICAgICAgID0gMg0KPiArcHBfaW5kZW50X3JlZ2lvbiAg ICAgICAgPSAyDQo+ICtwcF9yZWdpb25faW5kZW50X2NvZGUgICA9IGZhbHNlDQo+ICtwcF9zcGFj ZSAgICAgICAgICAgICAgICA9IHJlbW92ZQ0KPiArDQo+ICsjDQo+ICsjIFRoZSB0b2tlbnMgYmVs b3cgYXJlIGFzc2lnbmVkIHNwZWNpZmljIHR5cGVzIHNvIHRoZXkgYXJlIGFsd2F5cyByZWNvZ25p emVkIHByb3Blcmx5Lg0KPiArIw0KPiArDQo+ICsjIEV4cGxpY2l0bHkgZGVmaW5lIEVESyBJSSBx dWFsaWZpZXJzDQo+ICtzZXQgUVVBTElGSUVSIENPTlNUDQo+ICtzZXQgUVVBTElGSUVSIEVGSUFQ SQ0KPiArc2V0IFFVQUxJRklFUiBJTg0KPiArc2V0IFFVQUxJRklFUiBPUFRJT05BTA0KPiArc2V0 IFFVQUxJRklFUiBPVVQNCj4gKw0KPiArIyBFeHBsaWNpdGx5IGRlZmluZSBFREsgSUkgdHlwZXMN Cj4gK3NldCBUWVBFIEVGSV9TVEFUVVMNCj4gK3NldCBUWVBFIFZPSUQNCj4gZGlmZiAtLWdpdCBh Ly5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9leHRfZGVwLnlhbWwgYi8ucHl0 b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnlfZXh0X2RlcC55YW1sDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDhjMjI0MDNiNGIxDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4 dF9kZXAueWFtbA0KPiBAQCAtMCwwICsxLDE2IEBADQo+ICsjIyBAZmlsZQ0KPiArIyBEb3dubG9h ZHMgdGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gZnJvbSBhIFByb2plY3QgTXUgTnVHZXQgcGFj a2FnZS4NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsjIw0K PiArew0KPiArICAiaWQiOiAidW5jcnVzdGlmeS1jaS0xIiwNCj4gKyAgInNjb3BlIjogImNpYnVp bGQiLA0KPiArICAidHlwZSI6ICJudWdldCIsDQo+ICsgICJuYW1lIjogIm11LXVuY3J1c3RpZnkt cmVsZWFzZSIsDQo+ICsgICJzb3VyY2UiOiAiaHR0cHM6Ly9wa2dzLmRldi5henVyZS5jb20vcHJv amVjdG11L1VuY3J1c3RpZnkvX3BhY2thZ2luZy9tdV91bmNydXN0aWZ5L251Z2V0L3YzL2luZGV4 Lmpzb24iLA0KPiArICAidmVyc2lvbiI6ICI3My4wLjMiLA0KPiArICAiZmxhZ3MiOiBbInNldF9z aGVsbF92YXIiLCAiaG9zdF9zcGVjaWZpYyJdLA0KPiArICAidmFyX25hbWUiOiAiVU5DUlVTVElG WV9DSV9QQVRIIg0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlm eS91bmNydXN0aWZ5X3BsdWdfaW4ueWFtbCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5j cnVzdGlmeV9wbHVnX2luLnlhbWwNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMDAwMDAwLi4yNWQ5YThkMzdhMzANCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29s L1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sDQo+IEBAIC0wLDAgKzEs MTIgQEANCj4gKyMjIEBmaWxlDQo+ICsjIENpQnVpbGRQbHVnaW4gdXNlZCB0byBjaGVjayBjb2Rp bmcgc3RhbmRhcmQgY29tcGxpYW5jZSBvZiBFREsgSUkgc3R5bGUgQyBzb3VyY2UgY29kZQ0KPiAr Iw0KPiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyMjDQo+ICt7DQo+ICsg ICJzY29wZSI6ICJjaWJ1aWxkIiwNCj4gKyAgIm5hbWUiOiAiVW5jcnVzdGlmeSBDb2RpbmcgU3Rh bmRhcmQgVGVzdCIsDQo+ICsgICJtb2R1bGUiOiAiVW5jcnVzdGlmeSINCj4gK30NCj4gKw0KPiBk aWZmIC0tZ2l0IGEvLnB5dG9vbC9SZWFkbWUubWQgYi8ucHl0b29sL1JlYWRtZS5tZA0KPiBpbmRl eCBmNjUwNTUwNzk2NmEuLjQ2ZDcyNDhmN2RhMyAxMDA2NDQNCj4gLS0tIGEvLnB5dG9vbC9SZWFk bWUubWQNCj4gKysrIGIvLnB5dG9vbC9SZWFkbWUubWQNCj4gQEAgLTI2NCw2ICsyNjQsMTAgQEAg QlNELTItQ2xhdXNlLVBhdGVudC4NCj4gIFJ1biB0aGUgRWNjIHRvb2wgb24gdGhlIHBhY2thZ2Uu IFRoZSBFY2MgdG9vbCBpcyBhdmFpbGFibGUgaW4gdGhlIEJhc2VUb29scw0KPiAgcGFja2FnZS4g SXQgY2hlY2tzIHRoYXQgdGhlIGNvZGUgY29tcGxpZXMgdG8gdGhlIEVES0lJIGNvZGluZyBzdGFu ZGFyZC4NCj4gDQo+ICsjIyMgQ29kaW5nIFN0YW5kYXJkIENvbXBsaWFuY2UgLSBVbmNydXN0aWZ5 DQo+ICsNCj4gK1J1bnMgdGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gdG8gY2hlY2sgZm9yIGNv ZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIGlzc3Vlcy4NCj4gKw0KPiAgIyMgUHlUb29sIFNjb3Bl cw0KPiANCj4gIFNjb3BlcyBhcmUgaG93IHRoZSBQeVRvb2wgZXh0X2RlcCwgcGF0aF9lbnYsIGFu ZCBwbHVnaW5zIGFyZSBhY3RpdmF0ZWQuICBNZWFuaW5nDQo+IC0tDQo+IDIuMjguMC53aW5kb3dz LjENCj4gDQo+IA0KPiANCj4gLT0tPS09LT0tPS09DQo+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJl Y2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4NCj4gVmlldy9SZXBseSBPbmxp bmUgKCM4Mzk4Mik6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzgzOTgy DQo+IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvODcyNjg0MDkvMTY0MzQ5 Ng0KPiBHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4gVW5zdWJzY3Jp YmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbbWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb21dDQo+IC09LT0tPS09LT0tPQ0KPiANCg0K