From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.50212.1681938246887751109 for ; Wed, 19 Apr 2023 14:04:07 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=J1D3naZw; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681938246; x=1713474246; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=6dftJdVC0VcK06Me4AFbVnmD/ZugW8jUN7/DPofSaDo=; b=J1D3naZwEf5vrIEcTtMyDMV4i0LM+R5arN/siwCl9urUS6vApWYI6Kdk MD0bM6NzW3lhbw5xquVJ4N1dZwT6XurMxPcNHbMo5OxVz7OmDDM0KaiY1 ZJvrrZdtacKx3Dfss4SkTqUOhANccGL+G7RFLh0ets1pauYI2WN/e/Lnk 5qQtcvZuF2pUDw+2PMcN8HystofYEGAigW4GJGScNLSheweSxuQlJLxMK rqhsgWgGbo7+/G2U3iPaQ5zvVVQYEab8G1NBt1Wl/ketsvOocQNUQzSYb +JmxX5WQfGwB2vwQZTvu1fyqit8ry/kO3MruBRbQq5EJZ1vKJKjFcPtPR w==; X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="344310603" X-IronPort-AV: E=Sophos;i="5.99,210,1677571200"; d="scan'208";a="344310603" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2023 14:04:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="722087241" X-IronPort-AV: E=Sophos;i="5.99,210,1677571200"; d="scan'208";a="722087241" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga008.jf.intel.com with ESMTP; 19 Apr 2023 14:04:05 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 19 Apr 2023 14:04:05 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 19 Apr 2023 14:04:05 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 19 Apr 2023 14:04:05 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 19 Apr 2023 14:04:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B8o7z7/Kzx9AzpmSglQg5Yu7+AJeviNHTeDswG1PZvSh5lruWyQ3w3FcnZDdV5HRy9Ow/2Vg/1ls4ZZfmMHjL0+GJSxw3jWRjdPJerY1eQh4C2kVz8Swj+1R6XE0I9tUWp4Sh1gvviZh0JGqejiy/TS/NYWMJ/NDqJFlyUF9slSSTBZlr4aBd7XwEKIPprSHWFEUTdybUGiAAzZtVJk8Uw7AEo0HSFVe0RkXHHfqQP6OlYPHH8C+UfQ/qaRXRH8izAw0pUw2qZIaNdkbOGXQ6ZAKbQiLI9zbZnzqFr7Tr2ZXielD667AflV0ghbmosn6c4jg2e0dsp9YgcZGFnDssw== 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=6dftJdVC0VcK06Me4AFbVnmD/ZugW8jUN7/DPofSaDo=; b=GTAx6/npbxuIY0OJgZ4QCpa/GlatFr5N231LWH6hH6jjxYkL5LvO38hQT+afuos+yypd4CxzWUa/dND12HFls13jW/bdCxv668SZMZLZqrlIlhZTeumyuQmeFNBUfKTunvCHGaas7ytmZuXRTGUK6kAR6t8OPuNNjQZz6N3BrD2DC9wvjPFh1+M9BvO9l5Bt1PQVYrYQuBKtT03Pyegj8nIEUKTnQihrcEGop5uwDBaQTe0s2nLlaEki7xHeoasL8KbNVJazTTVNEVfJgSOe4LyvVulYFjhsfR0Ax/unHROj060HntAQpACiWqmGKFlx9dDPJVJRBZHUg9/apatpiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SA0PR11MB4640.namprd11.prod.outlook.com (2603:10b6:806:9b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Wed, 19 Apr 2023 21:04:01 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ba6c:51be:a461:c46f]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ba6c:51be:a461:c46f%3]) with mapi id 15.20.6319.022; Wed, 19 Apr 2023 21:04:01 +0000 From: "Michael D Kinney" To: "Lin, Benny" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Liu, Zhiguang" , Pedro Falcato , "Kinney, Michael D" Subject: Re: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Topic: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Index: AQHZcO5q7fKvBNcZ+0+q116Ir7z5eq8yx5NggAAap4CAAEA2IA== Date: Wed, 19 Apr 2023 21:04:01 +0000 Message-ID: References: <20230417053505.670-1-benny.lin@intel.com> <20230417053505.670-3-benny.lin@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|SA0PR11MB4640:EE_ x-ms-office365-filtering-correlation-id: 0f3f708e-d18f-4222-09fb-08db41199a00 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 62Z0HY6rADqsyQzDIb5PpFoE4EJmp6y2qrpH0fexEYH2L2a+bYdF/jaulEYckNyzzHFCkBOOcI2gLazDZkkSqugtjmcv41B18m1bIGTc5pD8cM1JBQaHbSNTPnQ78P/PW65crHHMQpH5MHHIxKzkpZuZFywA5DaBjBav59I1DwtRiIni/O4HvqqaTjohyT0ZS1SeYurba7BMmtCexTmAg3VF/RrgCLdCvLLtQL4++Rg0xXGQexIlmzjmJWmtoocdEVwz9SKqMr9QuXSn87ibg2/TwA5/hjyZcQ5eQ3WRQStlud46/6nazLpU2mRjz+5ftuNZGBu+zYICJ+6ajn6wN7bTe4EiyRRJIZE0+aovWdaYKKoc1cFtCItUjzTjDIS7dUnve4PRwSLYJ9R+i0kf4LlKI1KpxhW34PvJlmYTcxENnmIXbM9L5zgU+wcgmISaLw8HNxCPVFqxikZokVGWT0MW2WQUZVUYz3stC7cxqXD+9c0cAqPZsdTh2Vw5nQwhB+g5kmEkRW/6+wKF+ZxQ7FQ+ZzZGQ6cO5MvQskTdvJt8RulHZn9pax+Grj23ZzbYC62GmerR5/e+nxdLqo+heuN2v+XoDcpfsTNKqVXETpLtnWuml4O9ERDvBcarTGRPYvyc0tUQRAApJAIIySpWJg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(39860400002)(366004)(376002)(346002)(396003)(451199021)(38100700002)(8936002)(8676002)(122000001)(38070700005)(5660300002)(2906002)(30864003)(33656002)(86362001)(52536014)(55016003)(45080400002)(478600001)(7696005)(71200400001)(54906003)(110136005)(186003)(107886003)(966005)(6506007)(53546011)(66946007)(9686003)(76116006)(66476007)(66446008)(26005)(316002)(82960400001)(83380400001)(64756008)(66556008)(41300700001)(4326008)(19627235002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bWtZWlY1R2xzdE1iQUtyYXhyNFRqalpCby9FRmxJUENvYU03eDdUTk04QzBP?= =?utf-8?B?T2V5eVlXN09YTnhSTDhrMHBEUkFZcUhtZlFyeGUvM1poVGxCZHRwWHd6RnVh?= =?utf-8?B?UHZoNGRJK2Y2SHRMcFRmRzNQeVIwWnlhUUx5TnVuSTd4VTloemU1SzdUTVkr?= =?utf-8?B?SHI0OXlvQVBOTW5NajBlSkxnMi9MdklEN2JCRFFXdXZRa29tWHdkTUl2ODRO?= =?utf-8?B?enhmdndycXpVY1VLbmlXL09tL1NCTEtIKzliaHZGZUFMN2lxcXZ0UmZObWtH?= =?utf-8?B?b0EwWjAvemYxTnpYTkxleTlIQXQwbHZLQ0NkTmY3djFtNHNFYXdLY3FpOEow?= =?utf-8?B?aFFwVlNwK0twT0hUL3BIQkt3YmtIQ1Y3TmxhUEtCYmVtUnVySHh2T3NXQkhw?= =?utf-8?B?WUhZZjM0MEFxQWNKTk5yU0VFVXF0WmFIaDlVZHJHTTFCUGpVaXhqVk5ZT2ti?= =?utf-8?B?RFMwZExUdXhRRjcvaXpUOTZoTFRRbXJCNFNRSk1mVlR6cm8rRVJYT1kzQ0ww?= =?utf-8?B?WW9kOUYvWk02NDlEdnp0SFVKOVlTZXVRT3NZc2hadkVKY2krKy9WV2NhdEFY?= =?utf-8?B?ekMyOHExNDBnOUU3NTByTGxLekZpNE0xejluSHdLNE5vM29YVStabENobkVP?= =?utf-8?B?eDAxTDB2ckJEcVBzZDBjZlZuWmdFT09VUC9pQUhBSHloVWRNOFFFeElLNDZn?= =?utf-8?B?SHNTcS9XMEZaL21IK09PYUpvdkhaQll3U0tkSUVVK1RCQVZkQ0ZnM01XNzBx?= =?utf-8?B?d3ZBR3Y0ckxIZDJRLzBlc05SR3REdWRqSksyUG9HZ1lVWVF1aTZ4eUcrd1VD?= =?utf-8?B?NXpvQ0Zlc1h2SityZDVxU0wvTklpZVVMc1hSQ1pMcW9maEVEcnZxbU85clJY?= =?utf-8?B?MWlRRTdiS2FkeXFLZGM1akJheVp3NmVWa1NDL29iaExrYnNWb1ZIeWpTbGp4?= =?utf-8?B?UHhXeVpwQ0cyOEhnWXp4U2l1bk1CVmIvdVlSeXNUMUpFZVhQYVJvaWl1MlFh?= =?utf-8?B?MW1qVHJEUTQwS2VEUnJPUzBUdkJ6TUx3dExrYTdYeHJOdVpPenVEUXkxaEtM?= =?utf-8?B?ZnhYSEYwU3poTG1oWU1KTkJoT1BLVktwSndPOTROYnNUVlg5OUNydXhUdXFJ?= =?utf-8?B?SjdLMXd5dzJYdjNnL2Qwbk9QS29jalFSWEZaRVE1c000Qi83RDR6UDFrMk50?= =?utf-8?B?c1diRnc0MkZFYlY5SHBBajlPbHAyeFAwUlFLZDhueE1taktRMEx2RlhjYTBO?= =?utf-8?B?UjMrUVFTSFBjZlJNelJYWU5oZ2xNeFFYWVFLd1BySFJFSDVOUW04dmFXS0pJ?= =?utf-8?B?SXU3b0M4ckdKWWhlLzJDRk02RUZCeTdITkhEWkxkWnR5WWNUejRaekVBcUtL?= =?utf-8?B?R05oNGJ6Tng3dXdoV2x0SjNKSjYxVXQra2FUdjJtTEsvQTlMSzNsdHRrVC9q?= =?utf-8?B?TGU4Z2VuKys0MHVEU0hoR2V4OWk5L0xCSURFUmJ1Wk5qL0h1eTBtL1FEdHo0?= =?utf-8?B?RjNvdDhzTGQ0bklWSXp4SFhYWmYwOVQ1ZXVUQXJSU2RkTTlia2ZBOHlrSXpn?= =?utf-8?B?U0crL3NDN1pYUDJVdjdjOHF1UXlwVHNQNzlIVk1yTUVSaDRKY1RGeVByK1gv?= =?utf-8?B?bzJvMjd1LzNrQ3FET2tQZU4zVGlIM1RvMXJkUytYRkFDQml5TU1sZ0xSMEVa?= =?utf-8?B?NlJNQ3dHODlGQVNUUjlxVG5Mcy9RQzdHSksyMndYNE5vb090V3FpcDd6bDdp?= =?utf-8?B?RElCamVuZ282dlV3U2RFc1pGSUY1UjBSdVpDZjVBeUxKTTRDZHJIaXJQYUZV?= =?utf-8?B?Z3FJUTZtaytxbUZ3WmpjaDBtd0w4ZVo3MUJuaXpobVBHa1BiYWZQR3BlejE4?= =?utf-8?B?ZGo2dHFDZW9CSmsyeWVhdlRLSzh0ZUJQUUQ2bGkwYkhXdnBRVjd4bEtYNkNt?= =?utf-8?B?bVVleTFtbG5OOC9jSE9VWVplQU4xcmc0WkRxU0lFdlptdGwyTlA4d1RKYndU?= =?utf-8?B?VGUwaDM1OW1hcWpXdFdSQjdNUGF2UVl6SDlyZW0rYmhjQ3k1aFY5MG1ZNjVU?= =?utf-8?B?bDR1TVdhMnhoNXFqdnJHREI4dDF2RUJZMC9kOU92NDk2K2FYOXBHK0hEWUpu?= =?utf-8?B?Tk5GRlNIT2ZMQWIvendQemViQzdxUksvaVgwR0trd0pPRk1RT0V0RENvenUy?= =?utf-8?B?bXc9PQ==?= 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: 0f3f708e-d18f-4222-09fb-08db41199a00 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2023 21:04:01.6678 (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: GY5H6Q7/sHhBYlDChYsTCs72/qZy1WfKgMAv2tkN+Dfaf58/Ml6t7bopHTAL2QG8yuGDInvuZqaW+CVBc1eNfNJGkRTObqGXNXp3JjlgMFg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4640 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 UmVzcG9uc2VzIGJlbG93DQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIEFwcmlsIDE5LCAyMDIzIDEwOjEyIEFNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogR2Fv LCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1 YW5nLmxpdUBpbnRlbC5jb20+OyBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNv bT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2MyAyLzNdIE1kZVBrZzogU3VwcG9ydCBGRFQgbGli cmFyeS4NCj4gDQo+IFBsZWFzZSBmaW5kIG15IGZlZWRiYWNrIGJlbG93Lg0KPiBXZSBjYW4gcmVt b3ZlIEZEVF9SRVNFUlZFX0VOVFJZIGJ1dCBrZWVwIEZEVF9OT0RFX0hFQURFUiwgd2hhdCBkbyB5 b3UgdGhpbms/DQo+IA0KPiBRUVENCj4gQmVubnkNCj4gDQo+ID4tLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+RnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiA+U2VudDogV2VkbmVzZGF5LCBBcHJpbCAxOSwgMjAyMyAxMTo1NCBQTQ0KPiA+ VG86IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiA+Q2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpo aWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFs Y2F0b0BnbWFpbC5jb20+OyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+ID5TdWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0 IEZEVCBsaWJyYXJ5Lg0KPiA+DQo+ID5BIGZldyBjb21tZW50cyBiZWxvdy4NCj4gPg0KPiA+TWlr ZQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IExpbiwg QmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4+IFNlbnQ6IFN1bmRheSwgQXByaWwgMTYs IDIwMjMgMTA6MzUgUE0NCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+IENjOiBM aW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPj4g PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47DQo+ID4+IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+ OyBQZWRybyBGYWxjYXRvDQo+ID4+IDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT4NCj4gPj4gU3Vi amVjdDogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZEVCBsaWJyYXJ5Lg0KPiA+Pg0K PiA+PiBGcm9tOiBCZW5ueSBMaW4gPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4+DQo+ID4+IFJF RjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MzkyDQo+ ID4+IEFkZCBGRFQgc3VwcG9ydCBpbiBFREsyIGJ5IHN1Ym1vZHVsZSAzcmQgcGFydHkgbGliZmR0 DQo+ID4+IChodHRwczovL2dpdGh1Yi5jb20vZGV2aWNldHJlZS1vcmcvcHlsaWJmZHQvdHJlZS9t YWluL2xpYmZkdCkNCj4gPj4gYW5kIHJlZmVyIHRvIExpYmNMaWIgaW1wbGVtZW50YXRpb24gYnkg UGVkcm8uDQo+ID4+DQo+ID4+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT4NCj4gPj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gPj4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPj4g QWNrZWQtYnk6IFBlZHJvIEZhbGNhdG8gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPg0KPiA+PiBT aWduZWQtb2ZmLWJ5OiBCZW5ueSBMaW4gPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4+IC0tLQ0K PiA+PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaCAgICAgICAgICAgfCAzMTQgKysr KysrKysrKysrKysrKysrKysNCj4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZk dExpYi5pbmYgIHwgIDYyICsrKysNCj4gPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNl RmR0TGliLnVuaSAgfCAgMTQgKw0KPiA+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9GZHRM aWIuYyAgICAgICAgfCAzMDEgKysrKysrKysrKysrKysrKysrKw0KPiA+PiAgTWRlUGtnL0xpYnJh cnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmggfCAgOTkgKysrKysrDQo+ID4+IE1kZVBrZy9M aWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jIHwgMTczICsrKysrKysrKysrDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oICAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wuaCAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oICAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oICAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oICAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0cmluZy5oICAgICAgICB8ICAxMCArDQo+ID4+ ICBNZGVQa2cvTWRlUGtnLmNpLnlhbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQ0KPiA+ PiAgTWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiA+ PiAgTWRlUGtnL01kZVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ PiAgMTUgZmlsZXMgY2hhbmdlZCwgMTA0MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K PiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0K PiA+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvRmR0TGliLmggbmV3IGZpbGUgbW9kZSAxMDA2 NDQgaW5kZXgNCj4gPj4gMDAwMDAwMDAwMC4uZDU5Yjc0OWMyNQ0KPiA+PiAtLS0gL2Rldi9udWxs DQo+ID4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvRmR0TGliLmgNCj4gPj4gQEAgLTAs MCArMSwzMTQgQEANCj4gPj4gKy8qKiBAZmlsZQ0KPiA+Pg0KPiA+PiArICBGbGF0dGVuZWQgRGV2 aWNlIFRyZWUgTGlicmFyeS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBDb3B5cmlnaHQg KGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g Pj4NCj4gPj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4g KyNpZm5kZWYgRkRUX0xJQl9IXw0KPiA+Pg0KPiA+PiArI2RlZmluZSBGRFRfTElCX0hfDQo+ID4+ DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8vLw0KPiA+Pg0KPiA+PiArLy8vIEZsYXR0ZW5lZCBEZXZp Y2UgVHJlZSBkZWZpbml0aW9uDQo+ID4+DQo+ID4+ICsvLy8NCj4gPj4NCj4gPj4gK3R5cGVkZWYg c3RydWN0IHsNCj4gPj4NCj4gPj4gKyAgVUlOVDMyICAgIE1hZ2ljOyAgICAgICAgICAgICAgIC8q IG1hZ2ljIHdvcmQgRkRUX01BR0lDICovDQo+ID4+DQo+ID4+ICsgIFVJTlQzMiAgICBUb3RhbFNp emU7ICAgICAgICAgICAvKiB0b3RhbCBzaXplIG9mIERUIGJsb2NrICovDQo+ID4+DQo+ID4+ICsg IFVJTlQzMiAgICBPZmZzZXREdFN0cnVjdDsgICAgICAvKiBvZmZzZXQgdG8gc3RydWN0dXJlICov DQo+ID4+DQo+ID4+ICsgIFVJTlQzMiAgICBPZmZzZXREdFN0cmluZ3M7ICAgICAvKiBvZmZzZXQg dG8gc3RyaW5ncyAqLw0KPiA+Pg0KPiA+PiArICBVSU5UMzIgICAgT2Zmc2V0TWVtUnN2bWFwOyAg ICAgLyogb2Zmc2V0IHRvIG1lbW9yeSByZXNlcnZlIG1hcCAqLw0KPiA+Pg0KPiA+PiArICBVSU5U MzIgICAgVmVyc2lvbjsgICAgICAgICAgICAgLyogZm9ybWF0IHZlcnNpb24gKi8NCj4gPj4NCj4g Pj4gKyAgVUlOVDMyICAgIExhc3RDb21wVmVyc2lvbjsgICAgIC8qIGxhc3QgY29tcGF0aWJsZSB2 ZXJzaW9uICovDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgLyogdmVyc2lvbiAyIGZpZWxk cyBiZWxvdyAqLw0KPiA+Pg0KPiA+PiArICBVSU5UMzIgICAgQm9vdENwdWlkUGh5czsgICAgICAg LyogV2hpY2ggcGh5c2ljYWwgQ1BVIGlkIHdlJ3JlDQo+ID4+DQo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBib290aW5nIG9uICovDQo+ID4+DQo+ID4+ICsgIC8qIHZl cnNpb24gMyBmaWVsZHMgYmVsb3cgKi8NCj4gPj4NCj4gPj4gKyAgVUlOVDMyICAgIFNpemVEdFN0 cmluZ3M7ICAgICAgIC8qIHNpemUgb2YgdGhlIHN0cmluZ3MgYmxvY2sgKi8NCj4gPj4NCj4gPj4g Kw0KPiA+Pg0KPiA+PiArICAvKiB2ZXJzaW9uIDE3IGZpZWxkcyBiZWxvdyAqLw0KPiA+Pg0KPiA+ PiArICBVSU5UMzIgICAgU2l6ZUR0U3RydWN0OyAgICAgICAgLyogc2l6ZSBvZiB0aGUgc3RydWN0 dXJlIGJsb2NrICovDQo+ID4+DQo+ID4+ICt9IEZEVF9IRUFERVI7DQo+ID4NCj4gPkkgc2VlIHRo ZSBtYWNyb3MgYmVsb3cgdXNlIFN3YXBCeXRlczMyKCkgb24gYWxsIHRoZSBmaWVsZHMgZnJvbSB0 aGlzIHN0cnVjdHVyZS4gIERvZXMgdGhpcyBtZWFuIHRoaXMgc3RydWN0dXJlIGlzIGJpZyA+ZW5k aWFuPyAgSWYNCj4gdGhhdCBpcyB0aGUgY2FzZSwgdGhlbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhp cyBzdHJ1Y3R1cmUgYW5kIGFsbCBpbmRpdmlkdWFsIGZpZWxkcyBtdXN0IG1ha2UgdGhhdCB2ZXJ5 IGNsZWFyID5zbyBhbnkgY29uc3VtZXIgb2YgdGhlDQo+IHN0cnVjdHVyZSBrbm93cyBpdCBkb2Vz IG5vdCBmb2xsb3cgdGhlIGRlZmF1bHQgZW5kaWFubmVzcyBvZiBVRUZJL1BJIGFuZCB0aGF0IGNv bnN1bWVycyA+bXVzdCBlaXRoZXIgdXNlIHRoZSBtYWNyb3Mgb3IgY29uc3VtZXJzIG11c3QNCj4g dXNlIFN3YXBCeXRlczMyKCkgb24gdGhlaXIgb3duIHdoZW4gdXNpbmcgdGhpcyBzdHJ1Y3R1cmUg ZGlyZWN0bHkuDQo+IA0KPiBZZXMsIGl0J3MgYmlnIGVuZGlhbi4gSSB3aWxsIGNvbXBsZXRlIG1v cmUgZGVzY3JpcHRpb25zIGluIHBhdGNoIHY0Lg0KDQpXb3VsZCBpdCBiZSBzaW1wbGVyIGlmIHdl IGhhdmUgYSBsaWIgc2VydmljZSB0aGF0IGNvbnZlcnRzIHRoZSBlbnRpcmUgaGVhZGVyIGZyb20g YmlnIGVuZGlhbiB0byBsaXR0bGUgZW5kaWFuLg0KVGhhdCB3YXksIHRoZSBjb25zdW1lciBjYW4g dXNlIHRoZSBGRFRfSEVBREVSIGRpcmVjdGx5IHdpdGhvdXQgYW55IG9mIHRoZSBtYWNyb3M/DQoN CkFsc28sIGlzIHRoZSByZXN0IG9mIHRoZSBGRFQgYmxvYiBhbHNvIGJpZyBlbmRpYW4/DQoNCj4g DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPj4NCj4gPj4g KyAgVUlOVDY0ICAgIEFkZHJlc3M7DQo+ID4+DQo+ID4+ICsgIFVJTlQ2NCAgICBTaXplOw0KPiA+ Pg0KPiA+PiArfSBGRFRfUkVTRVJWRV9FTlRSWTsNCj4gPg0KPiA+DQo+ID5JIGRvIG5vdCBzZWUg dGhpcyB0eXBlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGxpYiBjbGFzcyBvciB0aGUgbGliIGluc3Rh bmNlLg0KPiA+Q2FuIGl0IGJlIHJlbW92ZWQ/DQo+IA0KPiBJIHRoaW5rIHdlIGNhbiByZW1vdmUg aXQgYmVjYXVzZSBpdCBtaWdodCBiZSBub3QgdXNlZCBmb3IgZnVydGhlciB1c2FnZSBvZiBGRFQg c3VwcG9ydC4NCj4gDQo+ID4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArdHlwZWRlZiBzdHJ1 Y3Qgew0KPiA+Pg0KPiA+PiArICBVSU5UMzIgICAgVGFnOw0KPiA+Pg0KPiA+PiArICBDSEFSOCAg ICAgTmFtZVtdOw0KPiA+Pg0KPiA+PiArfSBGRFRfTk9ERV9IRUFERVI7DQo+ID4NCj4gPg0KPiA+ SSBkbyBub3Qgc2VlIHRoaXMgdHlwZSB1c2VkIGFueXdoZXJlIGluIHRoZSBsaWIgY2xhc3Mgb3Ig dGhlIGxpYiBpbnN0YW5jZS4NCj4gPkNhbiBpdCBiZSByZW1vdmVkPw0KPiANCj4gV2hlbiB3ZSBu ZWVkIHJldHJpZXZlIGEgbm9kZSBmcm9tIGEgRkRUIGJsb2IsIHdlIHdpbGwgZ2V0IGEgbm9kZSBv ZmZzZXQgdGhlbiB3ZSBjb3VsZCB1c2UgdGhlIHN0cnVjdCB0byBtYXAgdGhlIG5vZGUgY29udGVu dC4gSXQncw0KPiB2ZXJ5IHVzZWZ1bC4NCg0KUGxlYXNlIGFkZCBhIGNvbW1lbnQgaGVhZGVyIGZv ciB0aGlzIHN0cnVjdHVyZSBhbmQgZGVzY3JpYmUgdGhlIHVzYWdlIGFzIGl0IHJlbGF0ZWQgdG8g dGhlIHJlc3Qgb2YgdGhlIEZkdExpYiBzZXJ2aWNlcy4NCg0KPiANCj4gPg0KPiA+Pg0KPiA+PiAr DQo+ID4+DQo+ID4+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4+DQo+ID4+ICsgIFVJTlQzMiAgICBU YWc7DQo+ID4+DQo+ID4+ICsgIFVJTlQzMiAgICBMZW5ndGg7DQo+ID4+DQo+ID4+ICsgIFVJTlQz MiAgICBOYW1lT2Zmc2V0Ow0KPiA+Pg0KPiA+PiArICBDSEFSOCAgICAgRGF0YVtdOw0KPiA+Pg0K PiA+PiArfSBGRFRfUFJPUEVSVFk7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyNkZWZpbmUg RkRUX0dFVF9IRUFERVIoRmR0LCBGaWVsZCkgIFN3YXBCeXRlczMyKCgoQ09OU1QgRkRUX0hFQURF Ug0KPiA+PiArKikoRmR0KSktPkZpZWxkKQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjZGVm aW5lIEZEVF9NQUdJQyhGZHQpICAgICAgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBNYWdp YykpDQo+ID4+DQo+ID4+ICsjZGVmaW5lIEZEVF9UT1RBTF9TSVpFKEZkdCkgICAgICAgICAoRkRU X0dFVF9IRUFERVIoRmR0LCBUb3RhbFNpemUpKQ0KPiA+Pg0KPiA+PiArI2RlZmluZSBGRFRfT0ZG U0VUX0RUX1NUUlVDVChGZHQpICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgT2Zmc2V0RHRTdHJ1Y3Qp KQ0KPiA+Pg0KPiA+PiArI2RlZmluZSBGRFRfT0ZGU0VUX0RUX1NUUklOR1MoRmR0KSAgKEZEVF9H RVRfSEVBREVSKEZkdCwNCj4gPj4gK09mZnNldER0U3RyaW5ncykpDQo+ID4+DQo+ID4+ICsjZGVm aW5lIEZEVF9PRkZTRVRfTUVNX1JTVk1BUChGZHQpICAoRkRUX0dFVF9IRUFERVIoRmR0LA0KPiA+ PiArT2Zmc2V0TWVtUnN2bWFwKSkNCj4gPj4NCj4gPj4gKyNkZWZpbmUgRkRUX1ZFUlNJT04oRmR0 KSAgICAgICAgICAgIChGRFRfR0VUX0hFQURFUihGZHQsIFZlcnNpb24pKQ0KPiA+Pg0KPiA+PiAr I2RlZmluZSBGRFRfTEFTVF9DT01QX1ZFUlNJT04oRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwN Cj4gPj4gK0xhc3RDb21wVmVyc2lvbikpDQo+ID4+DQo+ID4+ICsjZGVmaW5lIEZEVF9CT09UX0NQ VUlEX1BIWVMoRmR0KSAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBCb290Q3B1aWRQaHlzKSkNCj4g Pj4NCj4gPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRfU1RSSU5HUyhGZHQpICAgIChGRFRfR0VUX0hF QURFUihGZHQsIFNpemVEdFN0cmluZ3MpKQ0KPiA+Pg0KPiA+PiArI2RlZmluZSBGRFRfU0laRV9E VF9TVFJVQ1QoRmR0KSAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgU2l6ZUR0U3RydWN0KSkNCj4g Pj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArLyoqDQo+ID4+DQo+ID4+ICsgIFZlcmlmeSB0aGUgaGVh ZGVyIG9mIHRoZSBGbGF0dGVuZWQgRGV2aWNlIFRyZWUNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+ PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5 LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4N Cj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4gK0ZkdENoZWNrSGVh ZGVyICgNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdA0KPiA+Pg0KPiA+PiArICAp Ow0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4gKyAgQ3JlYXRlIGEg ZW1wdHkgRmxhdHRlbmVkIERldmljZSBUcmVlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsg IEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAgVGhlIHBvaW50ZXIgdG8gYWxsb2NhdGUgYSBwb29s IGZvciBGRFQgYmxvYi4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBCdWZmZXJTaXplICAgICBU aGUgQnVmZmVyU2l6ZSB0byB0aGUgcG9vbCBzaXplLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsgIEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK1JFVFVSTl9TVEFUVVMNCj4g Pj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4gPj4N Cj4gPj4gKyAgSU4gVk9JRCAgICpCdWZmZXIsDQo+ID4+DQo+ID4+ICsgIElOIFVJTlROICBCdWZm ZXJTaXplDQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0K PiA+Pg0KPiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBnaXZl biBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAg ICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPiA+Pg0KPiA+PiAr ICBAcGFyYW1baW5dIERlcHRoICAgICAgICAgIFRoZSBkZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJl ZSBoaWVyYXJjaHkuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHJldHVybiBUaGUgb2Zm c2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0K PiA+Pg0KPiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0TmV4 dE5vZGUgKA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiAr ICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICpE ZXB0aA0KPiA+Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4g Pj4NCj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHVuZGVyIHRoZSBnaXZl biBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAg ICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPiA+Pg0KPiA+PiAr DQo+ID4+DQo+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4gK0ZkdEZpcnN0U3Vibm9kZSAoDQo+ID4+DQo+ID4+ICsg IElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNl dA0KPiA+Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4N Cj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9k ZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg IFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIE9mZnNl dCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+ Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ICtJTlQzMg0KPiA+Pg0KPiA+PiAr RUZJQVBJDQo+ID4+DQo+ID4+ICtGZHROZXh0U3Vibm9kZSAoDQo+ID4+DQo+ID4+ICsgIElOIENP TlNUIFZPSUQgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+ Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4g KyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHdoaWNoIGluY2x1ZGVzIHRoZSBnaXZl biBuYW1lLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAg ICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5d IFBhcmVudE9mZnNldCAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIHdoaWNoIHN0YXJ0IGZpbmQg dW5kZXIuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgIFRoZSBuYW1l IHRvIHNlYXJjaCB0aGUgbm9kZSB3aXRoIHRoZSBuYW1lLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1b aW5dIE5hbWVMZW5ndGggICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHRvIGNoZWNrIG9ubHku DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5vZGUg b2Zmc2V0IHdpdGggZ2l2ZW4gbm9kZSBuYW1lLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsq Ki8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4gK0Zk dFN1Ym5vZGVPZmZzZXROYW1lTGVuICgNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpG ZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRPZmZzZXQsDQo+ID4+DQo+ ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4NCj4gPj4gKyAgSU4gSU5UMzIgICAg ICAgIE5hbWVMZW5ndGgNCj4gPj4NCj4gPj4gKyAgKTsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+ PiArLyoqDQo+ID4+DQo+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGlj aCBpbmNsdWRlcyB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZSBhbmQgdmFsdWUuDQo+ID4+DQo+ID4+ ICsNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICAgVGhlIHBvaW50ZXIg dG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gU3RhcnRPZmZzZXQgICAgIFRo ZSBvZmZzZXQgdG8gdGhlIHN0YXJ0aW5nIG5vZGUgdG8gZmluZC4NCj4gPj4NCj4gPj4gKyAgQHBh cmFtW2luXSBQcm9wZXJ0eU5hbWUgICAgVGhlIHByb3BlcnR5IG5hbWUgdG8gc2VhcmNoIHRoZSBu b2RlIGluY2x1ZGluZyB0aGUgbmFtZWQgcHJvcGVydHkuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtp bl0gUHJvcGVydHlWYWx1ZSAgIFRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBjaGVjayB0aGUgc2FtZSBw cm9wZXJ0eSB2YWx1ZS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eUxlbmd0aCAg VGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaW4gUHJvcGVydFZhbHVlLg0KPiA+Pg0KPiA+PiArDQo+ ID4+DQo+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3aXRoIGdpdmVu IHByb3BlcnR5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lO VDMyDQo+ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4gK0ZkdE5vZGVPZmZzZXRCeVByb3BW YWx1ZSAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPiA+Pg0KPiA+PiAr ICBJTiBJTlQzMiAgICAgICAgU3RhcnRPZmZzZXQsDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIENI QVI4ICAqUHJvcGVydHlOYW1lLA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAgKlByb3Bl cnR5VmFsdWUsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICBQcm9wZXJ0eUxlbmd0aA0K PiA+Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4g Pj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgZ2l2 ZW4gbm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAg ICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5d IE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG5vZGUuDQo+ID4+DQo+ID4+ ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gdGhlIHByb3BlcnR5IHdo aWNoIG5lZWQgYmUgc2VhcmNoZWQNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAg ICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0aGUgc3RydWN0 dXJlIG9mIHRoZSBmb3VuZCBwcm9wZXJ0eS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiov DQo+ID4+DQo+ID4+ICtDT05TVCBGRFRfUFJPUEVSVFkgKg0KPiA+Pg0KPiA+PiArRUZJQVBJDQo+ ID4+DQo+ID4+ICtGZHRHZXRQcm9wZXJ0eSAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQg ICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPj4N Cj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAg ICAgICAgKkxlbmd0aA0KPiA+Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsvKioNCj4gPj4NCj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBwcm9wZXJ0eSBp biB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5d IEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBA cGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggbmVl ZCBiZSBzZWFyY2hlZC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBv ZmZzZXQgdG8gZmlyc3QgcHJvcGVydHkgb2Zmc2V0IGluIHRoZSBnaXZlbiBub2RlLg0KPiA+Pg0K PiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtF RklBUEkNCj4gPj4NCj4gPj4gK0ZkdEZpcnN0UHJvcGVydHlPZmZzZXQgKA0KPiA+Pg0KPiA+PiAr ICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICBOb2Rl T2Zmc2V0DQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0K PiA+Pg0KPiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgcHJvcGVydHkgZnJvbSB0aGUg Z2l2ZW4gcHJvcGVydHkuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBG ZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4NCj4gPj4gKyAgQHBh cmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIHByb3BlcnR5Lg0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IHBy b3BlcnR5IG9mZnNldC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ ICtJTlQzMg0KPiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHROZXh0UHJvcGVydHlP ZmZzZXQgKA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiAr ICBJTiBJTlQzMiAgICAgICBPZmZzZXQNCj4gPj4NCj4gPj4gKyAgKTsNCj4gPj4NCj4gPj4gKw0K PiA+Pg0KPiA+PiArLyoqDQo+ID4+DQo+ID4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSBmcm9tIHRo ZSBnaXZlbiBvZmZzZXQgb2YgdGhlIHByb3BlcnR5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byB0aGUg Z2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBM ZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3Vu ZC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0 aGUgc3RydWN0dXJlIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eSBvZmZzZXQuDQo+ID4+DQo+ID4+ICsN Cj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArQ09OU1QgRkRUX1BST1BFUlRZICoNCj4gPj4N Cj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0R2V0UHJvcGVydHlCeU9mZnNldCAoDQo+ID4+ DQo+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAg ICAgIE9mZnNldCwNCj4gPj4NCj4gPj4gKyAgSU4gSU5UMzIgICAgICAgKkxlbmd0aA0KPiA+Pg0K PiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4gKyAg UmV0dXJucyBhIHN0cmluZyBieSB0aGUgZ2l2ZW4gc3RyaW5nIG9mZnNldC4NCj4gPj4NCj4gPj4g Kw0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIFN0ck9mZnNldCAgICAgIFRoZSBv ZmZzZXQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSBzdHJpbmdzIGJsb2NrIG9mIEZEVC4NCj4gPj4N Cj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXpl IG9mIHN0cmluZyB3aGljaCBuZWVkIGJlIHJldHJpZXZlZC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0K PiA+PiArICBAcmV0dXJuIFRoZSBzdHJpbmcgdG8gdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+ ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArQ09OU1QgQ0hBUjggKg0K PiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHRHZXRTdHJpbmcgKA0KPiA+Pg0KPiA+ PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICBT dHJPZmZzZXQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGggICAgICAgIE9Q VElPTkFMDQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0K PiA+Pg0KPiA+PiArICBBZGQgYSBuZXcgbm9kZSB0byB0aGUgRkRULg0KPiA+Pg0KPiA+PiArDQo+ ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRU IGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gUGFyZW50T2Zmc2V0ICAgVGhlIG9mZnNl dCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudCB0byBhZGQgaW4uDQo+ID4+DQo+ID4+ICsg IEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4g Pj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuICBUaGUgb2Zmc2V0IHRvIHRoZSBuZXcg bm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ICtJTlQzMg0K PiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHRBZGRTdWJub2RlICgNCj4gPj4NCj4g Pj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAg ICBQYXJlbnRPZmZzZXQsDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZQ0KPiA+ Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4g KyAgQWRkIG9yIG1vZGlmeSBhIHByb3BlcnR5IGluIHRoZSBnaXZlbiBub2RlLg0KPiA+Pg0KPiA+ PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIg dG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAgICAgVGhl IG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudCB0byBhZGQgaW4uDQo+ID4+DQo+ ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgcHJv cGVydHkuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gVmFsdWUgICAgICAgICAgVGhlIHZhbHVl IHRvIHRoZSBwcm9wZXJ0eSB2YWx1ZS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGgg ICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eS4NCj4gPj4NCj4g Pj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuICBaZXJvIGZvciBzdWNjZXNzZnVsbHksIG90aGVy d2lzZSBmYWlsZWQuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiAr SU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0U2V0UHJvcCAoDQo+ID4+ DQo+ID4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAg ICAgICAgTm9kZU9mZnNldCwNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0K PiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPiA+Pg0KPiA+PiArICBJTiBV SU5UMzIgICAgICAgTGVuZ3RoDQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4gPj4N Cj4gPj4gKyNlbmRpZiAvKiBGRFRfTElCX0hfICovDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9N ZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIuaW5mDQo+ID4+IGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZg0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+PiBpbmRleCAwMDAwMDAwMDAwLi43MzBlNTY4ZmY2DQo+ID4+IC0tLSAvZGV2L251bGwN Cj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZg0KPiA+ PiBAQCAtMCwwICsxLDYyIEBADQo+ID4+ICsjIyBAZmlsZQ0KPiA+Pg0KPiA+PiArIyBGbGF0dGVu ZWQgRGV2aWNlIFRyZWUgTGlicmFyeS4NCj4gPj4NCj4gPj4gKyMNCj4gPj4NCj4gPj4gKyMgQ29w eXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4+DQo+ID4+ICsjDQo+ID4+DQo+ID4+ICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+Pg0KPiA+PiArIw0KPiA+Pg0KPiA+PiArIw0KPiA+ Pg0KPiA+PiArIyMNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArW0RlZmluZXNdDQo+ID4+DQo+ ID4+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMUINCj4gPj4N Cj4gPj4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQmFzZUZkdExpYg0KPiA+ Pg0KPiA+PiArICBNT0RVTEVfVU5JX0ZJTEUgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliLnVu aQ0KPiA+Pg0KPiA+PiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSBDNjREQ0Iw MS1CMDM3LTRGRjYtOUNGMy1FOENFQzIwNkRFMDQNCj4gPj4NCj4gPj4gKyAgTU9EVUxFX1RZUEUg ICAgICAgICAgICAgICAgICAgID0gQkFTRQ0KPiA+Pg0KPiA+PiArICBWRVJTSU9OX1NUUklORyAg ICAgICAgICAgICAgICAgPSAxLjANCj4gPj4NCj4gPj4gKyAgTElCUkFSWV9DTEFTUyAgICAgICAg ICAgICAgICAgID0gRmR0TGliDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgREVGSU5FIEZE VF9MSUJfUEFUSCAgICAgICAgICAgID0gbGliZmR0L2xpYmZkdA0KPiA+Pg0KPiA+PiArDQo+ID4+ DQo+ID4+ICsjDQo+ID4+DQo+ID4+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9 IElBMzIgWDY0DQo+ID4+DQo+ID4+ICsjDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gK1tTb3Vy Y2VzXQ0KPiA+Pg0KPiA+PiArICBGZHRMaWIuYw0KPiA+Pg0KPiA+PiArICBMaWJGZHRXcmFwcGVy LmMNCj4gPj4NCj4gPj4gKyAgIyBoZWFkZXIgV3JhcHBlciBmaWxlcw0KPiA+Pg0KPiA+PiArICBs aW1pdHMuaA0KPiA+Pg0KPiA+PiArICBzdGRib29sLmgNCj4gPj4NCj4gPj4gKyAgc3RkZGVmLmgN Cj4gPj4NCj4gPj4gKyAgc3RkaW50LmgNCj4gPj4NCj4gPj4gKyAgc3RkbGliLmgNCj4gPj4NCj4g Pj4gKyAgc3RyaW5nLmgNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAkKEZEVF9MSUJfUEFU SCkvZmR0LmMNCj4gPj4NCj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdC5oDQo+ID4+DQo+ID4+ ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfYWRkcmVzc2VzLmMNCj4gPj4NCj4gPj4gKyAgJChGRFRf TElCX1BBVEgpL2ZkdF9jaGVjay5jDQo+ID4+DQo+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRf ZW1wdHlfdHJlZS5jDQo+ID4+DQo+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfb3ZlcmxheS5j DQo+ID4+DQo+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfcm8uYw0KPiA+Pg0KPiA+PiArICAk KEZEVF9MSUJfUEFUSCkvZmR0X3J3LmMNCj4gPj4NCj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2Zk dF9zdHJlcnJvci5jDQo+ID4+DQo+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfc3cuYw0KPiA+ Pg0KPiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3dpcC5jDQo+ID4+DQo+ID4+ICsgICQoRkRU X0xJQl9QQVRIKS9saWJmZHQuaA0KPiA+Pg0KPiA+PiArICAkKEZEVF9MSUJfUEFUSCkvbGliZmR0 X2Vudi5oDQo+ID4+DQo+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9saWJmZHRfaW50ZXJuYWwuaA0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICtbUGFja2FnZXNdDQo+ID4+DQo+ID4+ICsgIE1kZVBr Zy9NZGVQa2cuZGVjDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gK1tMaWJyYXJ5Q2xhc3Nlc10N Cj4gPj4NCj4gPj4gKyAgQmFzZUxpYg0KPiA+Pg0KPiA+PiArICBCYXNlTWVtb3J5TGliDQo+ID4+ DQo+ID4+ICsNCj4gPj4NCj4gPj4gK1tCdWlsZE9wdGlvbnNdDQo+ID4+DQo+ID4+ICsgIE1TRlQ6 Kl8qX0lBMzJfQ0NfRkxBR1MgPSAvd2Q0MTQ2IC93ZDQyNDUNCj4gPj4NCj4gPj4gKyAgTVNGVDoq XypfWDY0X0NDX0ZMQUdTICA9IC93ZDQxNDYgL3dkNDI0NCAvd2Q0MjQ1IC93ZDQyNjcNCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9CYXNlRmR0TGliLnVuaQ0KPiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZk dExpYi51bmkNCj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAw MC4uM2Y3ZTQ1ZWE2Zg0KPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ICsrKyBiL01kZVBrZy9MaWJy YXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51bmkNCj4gPj4gQEAgLTAsMCArMSwxNCBAQA0KPiA+ PiArLy8gLyoqIEBmaWxlDQo+ID4+DQo+ID4+ICsvLyBGbGF0dGVuZWQgRGV2aWNlIFRyZWUgTGli cmFyeS4NCj4gPj4NCj4gPj4gKy8vDQo+ID4+DQo+ID4+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMjMs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4g Ky8vDQo+ID4+DQo+ID4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiA+Pg0KPiA+PiArLy8NCj4gPj4NCj4gPj4gKy8vICoqLw0KPiA+Pg0KPiA+PiAr DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkluc3RhbmNlIG9mIEZEVCBMaWJyYXJ5Ig0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjc3RyaW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAg ICAgICAgI2xhbmd1YWdlIGVuLVVTICJUaGlzIG1vZHVsZSBwcm92aWRlcyBGRFQgTGlicmFyeSBp bXBsZW1lbnRhdGlvbi4iDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMNCj4gPj4gYi9NZGVQa2cvTGlicmFyeS9C YXNlRmR0TGliL0ZkdExpYi5jDQo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4 IDAwMDAwMDAwMDAuLjIwMGE0OTZjN2UNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9N ZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+ID4+IEBAIC0wLDAgKzEsMzAxIEBA DQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4gKyAgRmxhdHRlbmVkIERldmljZSBUcmVlIExp YnJhcnkuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+DQo+ID4+ICsg IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+DQo+ID4+ ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjaW5jbHVkZSA8 bGliZmR0L2xpYmZkdC9saWJmZHQuaD4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArLyoqDQo+ ID4+DQo+ID4+ICsgIFZlcmlmeSB0aGUgaGVhZGVyIG9mIHRoZSBGbGF0dGVuZWQgRGV2aWNlIFRy ZWUNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg IFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBy ZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+Pg0KPiA+ PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtFRklB UEkNCj4gPj4NCj4gPj4gK0ZkdENoZWNrSGVhZGVyICgNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgKkZkdA0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsg IHJldHVybiBmZHRfY2hlY2tfaGVhZGVyKEZkdCk7DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+ ICsNCj4gPj4NCj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiArICBDcmVhdGUgYSBlbXB0eSBGbGF0dGVu ZWQgRGV2aWNlIFRyZWUuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBC dWZmZXIgICAgICAgICBUaGUgcG9pbnRlciB0byBhbGxvY2F0ZSBhIHBvb2wgZm9yIEZEVCBibG9i Lg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIEJ1ZmZlclNpemUgICAgIFRoZSBCdWZmZXJTaXpl IHRvIHRoZSBwb29sIHNpemUuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHJldHVybiBa ZXJvIGZvciBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+ID4+DQo+ID4+ICsNCj4g Pj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+ Pg0KPiA+PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4gPj4NCj4gPj4gKyAgSU4gVk9JRCAgICAq QnVmZmVyLA0KPiA+Pg0KPiA+PiArICBJTiBVSU5UMzIgIEJ1ZmZlclNpemUNCj4gPj4NCj4gPj4g KyAgKQ0KPiA+Pg0KPiA+PiArew0KPiA+Pg0KPiA+PiArICByZXR1cm4gZmR0X2NyZWF0ZV9lbXB0 eV90cmVlIChCdWZmZXIsIChpbnQpQnVmZmVyU2l6ZSk7DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9m IG5leHQgbm9kZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2 aW91cyBub2RlLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIERlcHRoICAgICAgICAgIFRoZSBk ZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBoaWVyYXJjaHkuDQo+ID4+DQo+ID4+ICsNCj4gPj4N Cj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ID4+DQo+ ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VG SUFQSQ0KPiA+Pg0KPiA+PiArRmR0TmV4dE5vZGUgKA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBW T0lEICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+ID4+DQo+ ID4+ICsgIElOIElOVDMyICAgICAgICpEZXB0aA0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ ICt7DQo+ID4+DQo+ID4+ICsgIHJldHVybiBmZHRfbmV4dF9ub2RlIChGZHQsIE9mZnNldCwgRGVw dGgpOw0KPiA+Pg0KPiA+PiArfQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4N Cj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHVuZGVyIHRoZSBnaXZlbiBu b2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAg ICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gT2Zm c2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ ID4+DQo+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ ICtFRklBUEkNCj4gPj4NCj4gPj4gK0ZkdEZpcnN0U3Vibm9kZSAoDQo+ID4+DQo+ID4+ICsgIElO IENPTlNUIFZPSUQgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0K PiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsgIHJldHVybiBmZHRf Zmlyc3Rfc3Vibm9kZSAoRmR0LCBPZmZzZXQpOw0KPiA+Pg0KPiA+PiArfQ0KPiA+Pg0KPiA+PiAr DQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0 IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0K PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMg bm9kZS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8g bmV4dCBub2RlIG9mZnNldC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ ID4+ICtJTlQzMg0KPiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHROZXh0U3Vibm9k ZSAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+ID4+DQo+ID4+ICsgIElO IElOVDMyICAgICAgIE9mZnNldA0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+ DQo+ID4+ICsgIHJldHVybiBmZHRfbmV4dF9zdWJub2RlIChGZHQsIE9mZnNldCk7DQo+ID4+DQo+ ID4+ICt9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiArICBSZXR1 cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIG5hbWUu DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICAg VGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gUGFyZW50 T2Zmc2V0ICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggc3RhcnQgZmluZCB1bmRlci4N Cj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICAgVGhlIG5hbWUgdG8gc2Vh cmNoIHRoZSBub2RlIHdpdGggdGhlIG5hbWUuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTmFt ZUxlbmd0aCAgICAgIFRoZSBsZW5ndGggb2YgdGhlIG5hbWUgdG8gY2hlY2sgb25seS4NCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBvZmZzZXQg d2l0aCBnaXZlbiBub2RlIG5hbWUuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+ Pg0KPiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0U3Vibm9k ZU9mZnNldE5hbWVMZW4gKA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZkdCwNCj4g Pj4NCj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIFBhcmVudE9mZnNldCwNCj4gPj4NCj4gPj4gKyAg SU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICAgTmFt ZUxlbmd0aA0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsgIHJl dHVybiBmZHRfc3Vibm9kZV9vZmZzZXRfbmFtZWxlbiAoRmR0LCBQYXJlbnRPZmZzZXQsIE5hbWUs DQo+ID4+ICsgTmFtZUxlbmd0aCk7DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+ICsNCj4gPj4N Cj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUg d2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUgYW5kIHZhbHVlLg0KPiA+Pg0K PiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2lu dGVyIHRvIEZEVCBibG9iLg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIFN0YXJ0T2Zmc2V0ICAg ICBUaGUgb2Zmc2V0IHRvIHRoZSBzdGFydGluZyBub2RlIHRvIGZpbmQuDQo+ID4+DQo+ID4+ICsg IEBwYXJhbVtpbl0gUHJvcGVydHlOYW1lICAgIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIHNlYXJjaCB0 aGUgbm9kZSBpbmNsdWRpbmcgdGhlIG5hbWVkIHByb3BlcnR5Lg0KPiA+Pg0KPiA+PiArICBAcGFy YW1baW5dIFByb3BlcnR5VmFsdWUgICBUaGUgcHJvcGVydHkgdmFsdWUgdG8gY2hlY2sgdGhlIHNh bWUgcHJvcGVydHkgdmFsdWUuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlMZW5n dGggIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIFByb3BlcnRWYWx1ZS4NCj4gPj4NCj4gPj4g Kw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBvZmZzZXQgd2l0aCBn aXZlbiBwcm9wZXJ0eS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ ICtJTlQzMg0KPiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHROb2RlT2Zmc2V0QnlQ cm9wVmFsdWUgKA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZkdCwNCj4gPj4NCj4g Pj4gKyAgSU4gSU5UMzIgICAgICAgIFN0YXJ0T2Zmc2V0LA0KPiA+Pg0KPiA+PiArICBJTiBDT05T VCBDSEFSOCAgKlByb3BlcnR5TmFtZSwNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpQ cm9wZXJ0eVZhbHVlLA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICAgUHJvcGVydHlMZW5n dGgNCj4gPj4NCj4gPj4gKyAgKQ0KPiA+Pg0KPiA+PiArew0KPiA+Pg0KPiA+PiArICByZXR1cm4g ZmR0X25vZGVfb2Zmc2V0X2J5X3Byb3BfdmFsdWUgKEZkdCwgU3RhcnRPZmZzZXQsDQo+ID4+ICsg UHJvcGVydHlOYW1lLCBQcm9wZXJ0eVZhbHVlLCBQcm9wZXJ0eUxlbmd0aCk7DQo+ID4+DQo+ID4+ ICt9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiArICBSZXR1cm5z IGEgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBv aW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAg ICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2lu XSBOYW1lICAgICAgICAgICBUaGUgbmFtZSB0byB0aGUgcHJvcGVydHkgd2hpY2ggbmVlZCBiZSBz ZWFyY2hlZA0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIExlbmd0aCAgICAgICAgIFRoZSBsZW5n dGggdG8gdGhlIHNpemUgb2YgdGhlIHByb3BlcnR5IGZvdW5kLg0KPiA+Pg0KPiA+PiArDQo+ID4+ DQo+ID4+ICsgIEByZXR1cm4gVGhlIHByb3BlcnR5IHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGZv dW5kIHByb3BlcnR5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsqKi8NCj4gPj4NCj4gPj4g K0NPTlNUIHN0cnVjdCBmZHRfcHJvcGVydHkgKg0KPiA+Pg0KPiA+PiArRUZJQVBJDQo+ID4+DQo+ ID4+ICtGZHRHZXRQcm9wZXJ0eSAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0 LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPj4NCj4gPj4g KyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICAg Kkxlbmd0aA0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsgIHJl dHVybiBmZHRfZ2V0X3Byb3BlcnR5IChGZHQsIE5vZGVPZmZzZXQsIE5hbWUsIExlbmd0aCk7DQo+ ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8qKg0KPiA+Pg0KPiA+PiAr ICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IHByb3BlcnR5IGluIHRoZSBnaXZlbiBub2RlLg0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhl IHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNl dCAgICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSB3aGljaCBuZWVkIGJlIHNlYXJjaGVkLg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBmaXJzdCBwcm9w ZXJ0eSBvZmZzZXQgaW4gdGhlIGdpdmVuIG5vZGUuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4g KyoqLw0KPiA+Pg0KPiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiAr RmR0Rmlyc3RQcm9wZXJ0eU9mZnNldCAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQgICpG ZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgIE5vZGVPZmZzZXQNCj4gPj4NCj4gPj4g KyAgKQ0KPiA+Pg0KPiA+PiArew0KPiA+Pg0KPiA+PiArICByZXR1cm4gZmR0X2ZpcnN0X3Byb3Bl cnR5X29mZnNldCAoRmR0LCBOb2RlT2Zmc2V0KTsNCj4gPj4NCj4gPj4gK30NCj4gPj4NCj4gPj4g Kw0KPiA+Pg0KPiA+PiArLyoqDQo+ID4+DQo+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4 dCBwcm9wZXJ0eSBmcm9tIHRoZSBnaXZlbiBwcm9wZXJ0eS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0K PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9i Lg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8g cHJldmlvdXMgcHJvcGVydHkuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHJldHVybiBU aGUgb2Zmc2V0IHRvIG5leHQgcHJvcGVydHkgb2Zmc2V0Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ ID4+ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4g Pj4gK0ZkdE5leHRQcm9wZXJ0eU9mZnNldCAoDQo+ID4+DQo+ID4+ICsgIElOIENPTlNUIFZPSUQg ICpGZHQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPiA+Pg0KPiA+PiAr ICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsgIHJldHVybiBmZHRfbmV4dF9wcm9wZXJ0 eV9vZmZzZXQgKEZkdCwgT2Zmc2V0KTsNCj4gPj4NCj4gPj4gK30NCj4gPj4NCj4gPj4gKw0KPiA+ Pg0KPiA+PiArLyoqDQo+ID4+DQo+ID4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSBmcm9tIHRoZSBn aXZlbiBvZmZzZXQgb2YgdGhlIHByb3BlcnR5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsg IEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+ DQo+ID4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2 ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBMZW5n dGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4N Cj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0aGUg c3RydWN0dXJlIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eSBvZmZzZXQuDQo+ID4+DQo+ID4+ICsNCj4g Pj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArQ09OU1Qgc3RydWN0IGZkdF9wcm9wZXJ0eSAqDQo+ ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4gK0ZkdEdldFByb3BlcnR5QnlPZmZzZXQgKA0K PiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQz MiAgICAgICBPZmZzZXQsDQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGgNCj4g Pj4NCj4gPj4gKyAgKQ0KPiA+Pg0KPiA+PiArew0KPiA+Pg0KPiA+PiArICByZXR1cm4gZmR0X2dl dF9wcm9wZXJ0eV9ieV9vZmZzZXQgKEZkdCwgT2Zmc2V0LCBMZW5ndGgpOw0KPiA+Pg0KPiA+PiAr fQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4NCj4gPj4gKyAgUmV0dXJucyBh IHN0cmluZyBieSB0aGUgZ2l2ZW4gc3RyaW5nIG9mZnNldC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0K PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9i Lg0KPiA+Pg0KPiA+PiArICBAcGFyYW1baW5dIFN0ck9mZnNldCAgICAgIFRoZSBvZmZzZXQgdG8g dGhlIGxvY2F0aW9uIGluIHRoZSBzdHJpbmdzIGJsb2NrIG9mIEZEVC4NCj4gPj4NCj4gPj4gKyAg QHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHN0cmlu ZyB3aGljaCBuZWVkIGJlIHJldHJpZXZlZC4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBA cmV0dXJuIFRoZSBzdHJpbmcgdG8gdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+ID4+DQo+ID4+ ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArQ09OU1QgQ0hBUjggKg0KPiA+Pg0KPiA+ PiArRUZJQVBJDQo+ID4+DQo+ID4+ICtGZHRHZXRTdHJpbmcgKA0KPiA+Pg0KPiA+PiArICBJTiBD T05TVCBWT0lEICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJTlQzMiAgICAgICBTdHJPZmZzZXQs DQo+ID4+DQo+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGggICAgICAgIE9QVElPTkFMDQo+ ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4gPj4gK3sNCj4gPj4NCj4gPj4gKyAgcmV0dXJuIGZkdF9n ZXRfc3RyaW5nIChGZHQsIFN0ck9mZnNldCwgTGVuZ3RoKTsNCj4gPj4NCj4gPj4gK30NCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArLyoqDQo+ID4+DQo+ID4+ICsgIEFkZCBhIG5ldyBub2RlIHRv IHRoZSBGRFQuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAg ICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2lu XSBQYXJlbnRPZmZzZXQgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIG9mZnNldCB3aGljaCB3YW50 IHRvIGFkZCBpbi4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICBUaGUg bmFtZSB0byBuYW1lIHRoZSBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEByZXR1 cm4gIFRoZSBvZmZzZXQgdG8gdGhlIG5ldyBub2RlLg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsqKi8NCj4gPj4NCj4gPj4gK0lOVDMyDQo+ID4+DQo+ID4+ICtFRklBUEkNCj4gPj4NCj4gPj4g K0ZkdEFkZFN1Ym5vZGUgKA0KPiA+Pg0KPiA+PiArICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4g Pj4NCj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIFBhcmVudE9mZnNldCwNCj4gPj4NCj4gPj4gKyAg SU4gQ09OU1QgQ0hBUjggICpOYW1lDQo+ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4gPj4gK3sNCj4g Pj4NCj4gPj4gKyAgcmV0dXJuIGZkdF9hZGRfc3Vibm9kZSAoRmR0LCBQYXJlbnRPZmZzZXQsIE5h bWUpOw0KPiA+Pg0KPiA+PiArfQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4N Cj4gPj4gKyAgQWRkIG9yIG1vZGlmeSBhIHByb3BlcnR5IGluIHRoZSBnaXZlbiBub2RlLg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBv aW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAg ICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudCB0byBhZGQgaW4uDQo+ ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0 aGUgcHJvcGVydHkuDQo+ID4+DQo+ID4+ICsgIEBwYXJhbVtpbl0gVmFsdWUgICAgICAgICAgVGhl IHZhbHVlIHRvIHRoZSBwcm9wZXJ0eSB2YWx1ZS4NCj4gPj4NCj4gPj4gKyAgQHBhcmFtW2luXSBM ZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eS4NCj4g Pj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBAcmV0dXJuICBaZXJvIGZvciBzdWNjZXNzZnVsbHks IG90aGVyd2lzZSBmYWlsZWQuDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0K PiA+PiArSU5UMzINCj4gPj4NCj4gPj4gK0VGSUFQSQ0KPiA+Pg0KPiA+PiArRmR0U2V0UHJvcCAo DQo+ID4+DQo+ID4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+Pg0KPiA+PiArICBJTiBJ TlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4gPj4NCj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpO YW1lLA0KPiA+Pg0KPiA+PiArICBJTiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPiA+Pg0KPiA+PiAr ICBJTiBVSU5UMzIgICAgICAgTGVuZ3RoDQo+ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4gPj4gK3sN Cj4gPj4NCj4gPj4gKyAgcmV0dXJuIGZkdF9zZXRwcm9wIChGZHQsIE5vZGVPZmZzZXQsIE5hbWUs IFZhbHVlLCAoaW50KUxlbmd0aCk7DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+IGRpZmYgLS1n aXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBvcnQuaA0KPiA+PiBiL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3VwcG9ydC5oDQo+ID4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAwMDAwMDAwMDAuLmU3MzhmNGRlZDQNCj4gPj4gLS0tIC9k ZXYvbnVsbA0KPiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBv cnQuaA0KPiA+PiBAQCAtMCwwICsxLDk5IEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4g KyAgUm9vdCBpbmNsdWRlIGZpbGUgb2YgQyBydW50aW1lIGxpYnJhcnkgdG8gc3VwcG9ydCBidWls ZGluZyB0aGUNCj4gPj4gKyB0aGlyZC1wYXJ0eQ0KPiA+Pg0KPiA+PiArICBsaWJmZHQgbGlicmFy eS4NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4gKyAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4NCj4gPj4gKw0K PiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyNpZm5kZWYgRkRUX0xJ Ql9TVVBQT1JUX0hfDQo+ID4+DQo+ID4+ICsjZGVmaW5lIEZEVF9MSUJfU1VQUE9SVF9IXw0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjaW5jbHVkZSA8QmFzZS5oPg0KPiA+Pg0KPiA+PiArI2lu Y2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiA+Pg0KPiA+PiArI2luY2x1ZGUgPExpYnJhcnkv QmFzZU1lbW9yeUxpYi5oPg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICt0eXBlZGVmIFVJTlQ4 ICAgIHVpbnQ4X3Q7DQo+ID4+DQo+ID4+ICt0eXBlZGVmIFVJTlQxNiAgIHVpbnQxNl90Ow0KPiA+ Pg0KPiA+PiArdHlwZWRlZiBJTlQzMiAgICBpbnQzMl90Ow0KPiA+Pg0KPiA+PiArdHlwZWRlZiBV SU5UMzIgICB1aW50MzJfdDsNCj4gPj4NCj4gPj4gK3R5cGVkZWYgVUlOVDY0ICAgdWludDY0X3Q7 DQo+ID4+DQo+ID4+ICt0eXBlZGVmIFVJTlROICAgIHVpbnRwdHJfdDsNCj4gPj4NCj4gPj4gK3R5 cGVkZWYgVUlOVE4gICAgc2l6ZV90Ow0KPiA+Pg0KPiA+PiArdHlwZWRlZiBCT09MRUFOICBib29s Ow0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjZGVmaW5lIHRydWUgICAoMSA9PSAxKQ0KPiA+ Pg0KPiA+PiArI2RlZmluZSBmYWxzZSAgKDEgPT0gMCkNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+ PiArLy8NCj4gPj4NCj4gPj4gKy8vIERlZmluaXRpb25zIGZvciBnbG9iYWwgY29uc3RhbnRzIHVz ZWQgYnkgbGliZmR0IGxpYnJhcnkgcm91dGluZXMNCj4gPj4NCj4gPj4gKy8vDQo+ID4+DQo+ID4+ ICsjZGVmaW5lIElOVF9NQVggICAgICAgICAgMHg3RkZGRkZGRiAgICAgIC8qIE1heGltdW0gKHNp Z25lZCkgaW50IHZhbHVlICovDQo+ID4+DQo+ID4+ICsjZGVmaW5lIElOVDMyX01BWCAgICAgICAg MHg3RkZGRkZGRiAgICAgIC8qIE1heGltdW0gKHNpZ25lZCkgaW50MzIgdmFsdWUgKi8NCj4gPj4N Cj4gPj4gKyNkZWZpbmUgVUlOVDMyX01BWCAgICAgICAweEZGRkZGRkZGICAgICAgLyogTWF4aW11 bSB1bnNpZ25lZCBpbnQzMiB2YWx1ZSAqLw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsvLw0K PiA+Pg0KPiA+PiArLy8gRnVuY3Rpb24gcHJvdG90eXBlcyBvZiBsaWJmZHQgTGlicmFyeSByb3V0 aW5lcw0KPiA+Pg0KPiA+PiArLy8NCj4gPj4NCj4gPj4gK3ZvaWQgKg0KPiA+Pg0KPiA+PiArbWVt c2V0ICAgICAoDQo+ID4+DQo+ID4+ICsgIHZvaWQgKiwNCj4gPj4NCj4gPj4gKyAgaW50LA0KPiA+ Pg0KPiA+PiArICBzaXplX3QNCj4gPj4NCj4gPj4gKyAgKTsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0K PiA+PiAraW50DQo+ID4+DQo+ID4+ICttZW1jbXAgICAgICAoDQo+ID4+DQo+ID4+ICsgIGNvbnN0 IHZvaWQgKiwNCj4gPj4NCj4gPj4gKyAgY29uc3Qgdm9pZCAqLA0KPiA+Pg0KPiA+PiArICBzaXpl X3QNCj4gPj4NCj4gPj4gKyAgKTsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiAraW50DQo+ID4+ DQo+ID4+ICtzdHJjbXAgICAgICAoDQo+ID4+DQo+ID4+ICsgIGNvbnN0IGNoYXIgKiwNCj4gPj4N Cj4gPj4gKyAgY29uc3QgY2hhciAqDQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4g Pj4NCj4gPj4gK2NoYXIgKg0KPiA+Pg0KPiA+PiArc3RyY2hyICAgICAoDQo+ID4+DQo+ID4+ICsg IGNvbnN0IGNoYXIgKiwNCj4gPj4NCj4gPj4gKyAgaW50DQo+ID4+DQo+ID4+ICsgICk7DQo+ID4+ DQo+ID4+ICsNCj4gPj4NCj4gPj4gK2NoYXIgKg0KPiA+Pg0KPiA+PiArc3RycmNociAgICAoDQo+ ID4+DQo+ID4+ICsgIGNvbnN0IGNoYXIgKiwNCj4gPj4NCj4gPj4gKyAgaW50DQo+ID4+DQo+ID4+ ICsgICk7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gK3Vuc2lnbmVkIGxvbmcNCj4gPj4NCj4g Pj4gK3N0cnRvdWwgICAgICgNCj4gPj4NCj4gPj4gKyAgY29uc3QgY2hhciAqLA0KPiA+Pg0KPiA+ PiArICBjaGFyICoqLA0KPiA+Pg0KPiA+PiArICBpbnQNCj4gPj4NCj4gPj4gKyAgKTsNCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArY2hhciAqDQo+ID4+DQo+ID4+ICtzdHJjcHkgKA0KPiA+Pg0K PiA+PiArICBjaGFyICAgICAgICAqc3RyRGVzdCwNCj4gPj4NCj4gPj4gKyAgY29uc3QgY2hhciAg KnN0clNvdXJjZQ0KPiA+Pg0KPiA+PiArICApOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsv Lw0KPiA+Pg0KPiA+PiArLy8gTWFjcm9zIHRoYXQgZGlyZWN0bHkgbWFwIGZ1bmN0aW9ucyB0byBC YXNlTGliLCBCYXNlTWVtb3J5TGliLCBhbmQNCj4gPj4gK0RlYnVnTGliIGZ1bmN0aW9ucw0KPiA+ Pg0KPiA+PiArLy8NCj4gPj4NCj4gPj4gKyNkZWZpbmUgbWVtY3B5KGRlc3QsIHNvdXJjZSwgY291 bnQpICAgICAgICAgQ29weU1lbShkZXN0LHNvdXJjZSwgKFVJTlROKShjb3VudCkpDQo+ID4+DQo+ ID4+ICsjZGVmaW5lIG1lbXNldChkZXN0LCBjaCwgY291bnQpICAgICAgICAgICAgIFNldE1lbShk ZXN0LCAoVUlOVE4pKGNvdW50KSwoVUlOVDgpKGNoKSkNCj4gPj4NCj4gPj4gKyNkZWZpbmUgbWVt Y2hyKGJ1ZiwgY2gsIGNvdW50KSAgICAgICAgICAgICAgU2Nhbk1lbTgoYnVmLCAoVUlOVE4pKGNv dW50KSwoVUlOVDgpY2gpDQo+ID4+DQo+ID4+ICsjZGVmaW5lIG1lbWNtcChidWYxLCBidWYyLCBj b3VudCkgICAgICAgICAgIChpbnQpKENvbXBhcmVNZW0oYnVmMSwgYnVmMiwgKFVJTlROKShjb3Vu dCkpKQ0KPiA+Pg0KPiA+PiArI2RlZmluZSBtZW1tb3ZlKGRlc3QsIHNvdXJjZSwgY291bnQpICAg ICAgICBDb3B5TWVtKGRlc3QsIHNvdXJjZSwgKFVJTlROKShjb3VudCkpDQo+ID4+DQo+ID4+ICsj ZGVmaW5lIHN0cmxlbihzdHIpICAgICAgICAgICAgICAgICAgICAgICAgIChzaXplX3QpKEFzY2lp U3RyTGVuKHN0cikpDQo+ID4+DQo+ID4+ICsjZGVmaW5lIHN0cm5sZW4oc3RyLCBjb3VudCkgICAg ICAgICAgICAgICAgIChzaXplX3QpKEFzY2lpU3RybkxlblMoc3RyLCBjb3VudCkpDQo+ID4+DQo+ ID4+ICsjZGVmaW5lIHN0cm5jcHkoc3RyRGVzdCwgc3RyU291cmNlLCBjb3VudCkgIEFzY2lpU3Ry bkNweVMoc3RyRGVzdCwNCj4gPj4gK01BWF9TVFJJTkdfU0laRSwgc3RyU291cmNlLCAoVUlOVE4p Y291bnQpDQo+ID4+DQo+ID4+ICsjZGVmaW5lIHN0cmNhdChzdHJEZXN0LCBzdHJTb3VyY2UpICAg ICAgICAgIEFzY2lpU3RyQ2F0UyhzdHJEZXN0LCBNQVhfU1RSSU5HX1NJWkUsIHN0clNvdXJjZSkN Cj4gPj4NCj4gPj4gKyNkZWZpbmUgc3RyY21wKHN0cmluZzEsIHN0cmluZzIsIGNvdW50KSAgICAg KGludCkoQXNjaWlTdHJDbXAoc3RyaW5nMSwgc3RyaW5nMikpDQo+ID4+DQo+ID4+ICsjZGVmaW5l IHN0cm5jbXAoc3RyaW5nMSwgc3RyaW5nMiwgY291bnQpICAgIChpbnQpKEFzY2lpU3RybkNtcChz dHJpbmcxLCBzdHJpbmcyLCAoVUlOVE4pKGNvdW50KSkpDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4g Pj4gKyNlbmRpZiAvKiBGRFRfTElCX1NVUFBPUlRfSF8gKi8NCj4gPj4NCj4gPj4gZGlmZiAtLWdp dCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+ID4+IGIvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVyLmMNCj4gPj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uNzcyYmJhNDgzOQ0KPiA+PiAtLS0gL2Rl di9udWxsDQo+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBl ci5jDQo+ID4+IEBAIC0wLDAgKzEsMTczIEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4g KyAgSVNPIEMgaW1wbGVtZW50YXRpb25zIG9mIHN0cmNociwgc3RycmNociBhbmQgc3RydG91bC4N Cj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4gKyAgQ29weXJp Z2h0IChjKSAyMDIzIFBlZHJvIEZhbGNhdG8gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPj4NCj4g Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArKiovDQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyNpbmNs dWRlIDxCYXNlLmg+DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyNkZWZpbmUgVUxPTkdfTUFY ICAgICAgICAweEZGRkZGRkZGICAgICAgLyogTWF4aW11bSB1bnNpZ25lZCBsb25nIHZhbHVlICov DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKy8vIFZlcnkgcXVpY2sgbm90ZXM6DQo+ID4+DQo+ ID4+ICsvLyBXZSBvbmx5IGdvIHRocm91Z2ggdGhlIHN0cmluZyBvbmNlIGZvciBib3RoIGZ1bmN0 aW9ucw0KPiA+Pg0KPiA+PiArLy8gVGhleSBhcmUgbWluaW1hbCBpbXBsZW1lbnRhdGlvbnMgKG5v dCBzcGVlZCBvcHRpbWl6ZWQpIG9mIElTTyBDDQo+ID4+ICtzZW1hbnRpY3MNCj4gPj4NCj4gPj4g Ky8vIHN0cmNociBhbmQgc3RycmNociBhbHNvIGluY2x1ZGUgdGhlIG51bGwgdGVybWluYXRvciBh cyBwYXJ0IG9mIHRoZQ0KPiA+PiArc3RyaW5nDQo+ID4+DQo+ID4+ICsvLyBzbyB0aGUgY29kZSBn ZXRzIGEgYml0IGNsdW5reSB0byBoYW5kbGUgdGhhdCBjYXNlIHNwZWNpZmljYWxseS4NCj4gPj4N Cj4gPj4gKw0KPiA+Pg0KPiA+PiArY2hhciAqDQo+ID4+DQo+ID4+ICtzdHJjaHIgKA0KPiA+Pg0K PiA+PiArICBjb25zdCBjaGFyICAqU3RyLA0KPiA+Pg0KPiA+PiArICBpbnQgICAgICAgICBDaGFy DQo+ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4gPj4gK3sNCj4gPj4NCj4gPj4gKyAgY2hhciAgKlM7 DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgUyA9IChjaGFyICopU3RyOw0KPiA+Pg0KPiA+ PiArDQo+ID4+DQo+ID4+ICsgIGZvciAoIDsgOyBTKyspIHsNCj4gPj4NCj4gPj4gKyAgICBpZiAo KlMgPT0gQ2hhcikgew0KPiA+Pg0KPiA+PiArICAgICAgcmV0dXJuIFM7DQo+ID4+DQo+ID4+ICsg ICAgfQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgICAgaWYgKCpTID09ICdcMCcpIHsNCj4g Pj4NCj4gPj4gKyAgICAgIHJldHVybiBOVUxMOw0KPiA+Pg0KPiA+PiArICAgIH0NCj4gPj4NCj4g Pj4gKyAgfQ0KPiA+Pg0KPiA+PiArfQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICtjaGFyICoN Cj4gPj4NCj4gPj4gK3N0cnJjaHIgKA0KPiA+Pg0KPiA+PiArICBjb25zdCBjaGFyICAqU3RyLA0K PiA+Pg0KPiA+PiArICBpbnQgICAgICAgICBDaGFyDQo+ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4g Pj4gK3sNCj4gPj4NCj4gPj4gKyAgY2hhciAgKlMsICpsYXN0Ow0KPiA+Pg0KPiA+PiArDQo+ID4+ DQo+ID4+ICsgIFMgICAgPSAoY2hhciAqKVN0cjsNCj4gPj4NCj4gPj4gKyAgbGFzdCA9IE5VTEw7 DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgZm9yICggOyA7IFMrKykgew0KPiA+Pg0KPiA+ PiArICAgIGlmICgqUyA9PSBDaGFyKSB7DQo+ID4+DQo+ID4+ICsgICAgICBsYXN0ID0gUzsNCj4g Pj4NCj4gPj4gKyAgICB9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgICBpZiAoKlMgPT0g J1wwJykgew0KPiA+Pg0KPiA+PiArICAgICAgcmV0dXJuIGxhc3Q7DQo+ID4+DQo+ID4+ICsgICAg fQ0KPiA+Pg0KPiA+PiArICB9DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4g Pj4gK1NUQVRJQw0KPiA+Pg0KPiA+PiAraW50DQo+ID4+DQo+ID4+ICtfX2lzc3BhY2UgKA0KPiA+ Pg0KPiA+PiArICBpbnQgIGNoDQo+ID4+DQo+ID4+ICsgICkNCj4gPj4NCj4gPj4gK3sNCj4gPj4N Cj4gPj4gKyAgLy8gYmFzaWMgQVNDSUkgY3R5cGUuaDppc3NwYWNlKCkuIE5vdCBlZmZpY2llbnQN Cj4gPj4NCj4gPj4gKyAgcmV0dXJuIGNoID09ICdccicgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAn ICcgfHwgY2ggPT0gJ1x0JyB8fCBjaCA9PQ0KPiA+PiArICdcdicgfHwgY2ggPT0gJ1xmJzsNCj4g Pj4NCj4gPj4gK30NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArdW5zaWduZWQgbG9uZw0KPiA+ Pg0KPiA+PiArc3RydG91bCAoDQo+ID4+DQo+ID4+ICsgIGNvbnN0IGNoYXIgICpOcHRyLA0KPiA+ Pg0KPiA+PiArICBjaGFyICAgICAgICAqKkVuZFB0ciwNCj4gPj4NCj4gPj4gKyAgaW50ICAgICAg ICAgQmFzZQ0KPiA+Pg0KPiA+PiArICApDQo+ID4+DQo+ID4+ICt7DQo+ID4+DQo+ID4+ICsgIEJP T0xFQU4gICAgICAgIE5lZ2F0ZTsNCj4gPj4NCj4gPj4gKyAgQk9PTEVBTiAgICAgICAgT3ZlcmZs b3c7DQo+ID4+DQo+ID4+ICsgIHVuc2lnbmVkIGxvbmcgIFZhbDsNCj4gPj4NCj4gPj4gKw0KPiA+ Pg0KPiA+PiArICBOZWdhdGUgICA9IEZBTFNFOw0KPiA+Pg0KPiA+PiArICBPdmVyZmxvdyA9IEZB TFNFOw0KPiA+Pg0KPiA+PiArICBWYWwgICAgICA9IDA7DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4g Pj4gKyAgLy8gUmVqZWN0IGJhZCBudW1lcmljIGJhc2VzDQo+ID4+DQo+ID4+ICsgIGlmICgoQmFz ZSA8IDApIHx8IChCYXNlID09IDEpIHx8IChCYXNlID4gMzYpKSB7DQo+ID4+DQo+ID4+ICsgICAg cmV0dXJuIDA7DQo+ID4+DQo+ID4+ICsgIH0NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAv LyBTa2lwIHdoaXRlc3BhY2UNCj4gPj4NCj4gPj4gKyAgd2hpbGUgKF9faXNzcGFjZSAoKk5wdHIp KSB7DQo+ID4+DQo+ID4+ICsgICAgTnB0cisrOw0KPiA+Pg0KPiA+PiArICB9DQo+ID4+DQo+ID4+ ICsNCj4gPj4NCj4gPj4gKyAgLy8gQ2hlY2sgZm9yICsgb3IgLSBwcmVmaXhlcw0KPiA+Pg0KPiA+ PiArICBpZiAoKk5wdHIgPT0gJy0nKSB7DQo+ID4+DQo+ID4+ICsgICAgTmVnYXRlID0gVFJVRTsN Cj4gPj4NCj4gPj4gKyAgICBOcHRyKys7DQo+ID4+DQo+ID4+ICsgIH0gZWxzZSBpZiAoKk5wdHIg PT0gJysnKSB7DQo+ID4+DQo+ID4+ICsgICAgTnB0cisrOw0KPiA+Pg0KPiA+PiArICB9DQo+ID4+ DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgLy8gQ29uc3VtZSB0aGUgc3RhcnQsIGF1dG9kZXRlY3Rp bmcgYmFzZSBpZiBuZWVkZWQNCj4gPj4NCj4gPj4gKyAgaWYgKChOcHRyWzBdID09ICcwJykgJiYg KChOcHRyWzFdID09ICd4JykgfHwgKE5wdHJbMV0gPT0gJ1gnKSkgJiYNCj4gPj4gKyAoKEJhc2Ug PT0gMCkgfHwgKEJhc2UgPT0gMTYpKSkgew0KPiA+Pg0KPiA+PiArICAgIC8vIEhleA0KPiA+Pg0K PiA+PiArICAgIE5wdHIgKz0gMjsNCj4gPj4NCj4gPj4gKyAgICBCYXNlICA9IDE2Ow0KPiA+Pg0K PiA+PiArICB9IGVsc2UgaWYgKChOcHRyWzBdID09ICcwJykgJiYgKChOcHRyWzFdID09ICdiJykg fHwgKE5wdHJbMV0gPT0NCj4gPj4gKyAnQicpKSAmJiAoKEJhc2UgPT0gMCkgfHwgKEJhc2UgPT0g MikpKSB7DQo+ID4+DQo+ID4+ICsgICAgLy8gQmluYXJ5IChzdGFuZGFyZCBwZW5kaW5nIEMyMykN Cj4gPj4NCj4gPj4gKyAgICBOcHRyICs9IDI7DQo+ID4+DQo+ID4+ICsgICAgQmFzZSAgPSAyOw0K PiA+Pg0KPiA+PiArICB9IGVsc2UgaWYgKChOcHRyWzBdID09ICcwJykgJiYgKChCYXNlID09IDAp IHx8IChCYXNlID09IDgpKSkgew0KPiA+Pg0KPiA+PiArICAgIC8vIE9jdGFsDQo+ID4+DQo+ID4+ ICsgICAgTnB0cisrOw0KPiA+Pg0KPiA+PiArICAgIEJhc2UgPSA4Ow0KPiA+Pg0KPiA+PiArICB9 IGVsc2Ugew0KPiA+Pg0KPiA+PiArICAgIGlmIChCYXNlID09IDApIHsNCj4gPj4NCj4gPj4gKyAg ICAgIC8vIEFzc3VtZSBkZWNpbWFsDQo+ID4+DQo+ID4+ICsgICAgICBCYXNlID0gMTA7DQo+ID4+ DQo+ID4+ICsgICAgfQ0KPiA+Pg0KPiA+PiArICB9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4g KyAgd2hpbGUgKFRSVUUpIHsNCj4gPj4NCj4gPj4gKyAgICBpbnQgICAgICAgICAgICBEaWdpdDsN Cj4gPj4NCj4gPj4gKyAgICBjaGFyICAgICAgICAgICBDOw0KPiA+Pg0KPiA+PiArICAgIHVuc2ln bmVkIGxvbmcgIE5ld1ZhbDsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAgIEMgICAgID0g Kk5wdHI7DQo+ID4+DQo+ID4+ICsgICAgRGlnaXQgPSAtMTsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0K PiA+PiArICAgIGlmICgoQyA+PSAnMCcpICYmIChDIDw9ICc5JykpIHsNCj4gPj4NCj4gPj4gKyAg ICAgIERpZ2l0ID0gQyAtICcwJzsNCj4gPj4NCj4gPj4gKyAgICB9IGVsc2UgaWYgKChDID49ICdh JykgJiYgKEMgPD0gJ3onKSkgew0KPiA+Pg0KPiA+PiArICAgICAgRGlnaXQgPSBDIC0gJ2EnICsg MTA7DQo+ID4+DQo+ID4+ICsgICAgfSBlbHNlIGlmICgoQyA+PSAnQScpICYmIChDIDw9ICdaJykp IHsNCj4gPj4NCj4gPj4gKyAgICAgIERpZ2l0ID0gQyAtICdBJyArIDEwOw0KPiA+Pg0KPiA+PiAr ICAgIH0NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAgIGlmICgoRGlnaXQgPT0gLTEpIHx8 IChEaWdpdCA+PSBCYXNlKSkgew0KPiA+Pg0KPiA+PiArICAgICAgLy8gTm90ZSB0aGF0IHRoaXMg Y2FzZSBhbHNvIGhhbmRsZXMgdGhlIFwwDQo+ID4+DQo+ID4+ICsgICAgICBpZiAoRW5kUHRyKSB7 DQo+ID4+DQo+ID4+ICsgICAgICAgICpFbmRQdHIgPSAoY2hhciAqKU5wdHI7DQo+ID4+DQo+ID4+ ICsgICAgICB9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgICAgIGJyZWFrOw0KPiA+Pg0K PiA+PiArICAgIH0NCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAgIE5ld1ZhbCA9IFZhbCAq IEJhc2UgKyBEaWdpdDsNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICAgIGlmIChOZXdWYWwg PCBWYWwpIHsNCj4gPj4NCj4gPj4gKyAgICAgIC8vIE92ZXJmbG93DQo+ID4+DQo+ID4+ICsgICAg ICBPdmVyZmxvdyA9IFRSVUU7DQo+ID4+DQo+ID4+ICsgICAgfQ0KPiA+Pg0KPiA+PiArDQo+ID4+ DQo+ID4+ICsgICAgVmFsID0gTmV3VmFsOw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsgICAg TnB0cisrOw0KPiA+Pg0KPiA+PiArICB9DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyAgaWYg KE5lZ2F0ZSkgew0KPiA+Pg0KPiA+PiArICAgIFZhbCA9IC1WYWw7DQo+ID4+DQo+ID4+ICsgIH0N Cj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiArICBpZiAoT3ZlcmZsb3cpIHsNCj4gPj4NCj4gPj4g KyAgICBWYWwgPSBVTE9OR19NQVg7DQo+ID4+DQo+ID4+ICsgIH0NCj4gPj4NCj4gPj4gKw0KPiA+ Pg0KPiA+PiArICAvLyBUT0RPOiBXZSdyZSBsYWNraW5nIGVycm5vIGhlcmUuDQo+ID4+DQo+ID4+ ICsgIHJldHVybiBWYWw7DQo+ID4+DQo+ID4+ICt9DQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9N ZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9saW1pdHMuaA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRl eCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIv TWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaA0KPiA+PiBAQCAtMCwwICsxLDEwIEBA DQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQg YnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0KPiA+PiArDQo+ ID4+DQo+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0K PiA+PiArDQo+ID4+DQo+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+Pg0KPiA+ PiArDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0 ZGJvb2wuaA0KPiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9vbC5oDQo+ID4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDIN Cj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGli L3N0ZGJvb2wuaA0KPiA+PiBAQCAtMCwwICsxLDEwIEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4N Cj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5 IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICtDb3B5cmlnaHQgKGMp IDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4N Cj4gPj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+ DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjaW5j bHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+IGRpZmYgLS1n aXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oDQo+ID4+IGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4g KysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPiA+PiBAQCAtMCwwICsx LDEwIEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1 cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0KPiA+ PiArDQo+ID4+DQo+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4gK1NQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+ Pg0KPiA+PiArDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0 TGliL3N0ZGludC5oDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaA0K PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1 NzAyDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZk dExpYi9zdGRpbnQuaA0KPiA+PiBAQCAtMCwwICsxLDEwIEBADQo+ID4+ICsvKiogQGZpbGUNCj4g Pj4NCj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBh cnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICtDb3B5cmlnaHQg KGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g Pj4NCj4gPj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsj aW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+IGRpZmYg LS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oDQo+ID4+IGIvTWRlUGtn L0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+ID4+IC0tLSAvZGV2L251bGwNCj4g Pj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIuaA0KPiA+PiBAQCAtMCww ICsxLDEwIEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4NCj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRv IHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0K PiA+PiArDQo+ID4+DQo+ID4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4NCj4gPj4gK1NQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoq Lw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0K PiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL3N0cmluZy5oDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcu aA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNm OGQ1NzAyDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9zdHJpbmcuaA0KPiA+PiBAQCAtMCwwICsxLDEwIEBADQo+ID4+ICsvKiogQGZpbGUN Cj4gPj4NCj4gPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJk LXBhcnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICtDb3B5cmln aHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gPj4NCj4gPj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ID4+DQo+ID4+ICsNCj4gPj4NCj4gPj4gKyoqLw0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+IGRp ZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmNpLnlhbWwgYi9NZGVQa2cvTWRlUGtnLmNpLnlhbWwg aW5kZXgNCj4gPj4gNmJhODVlYmU2MS4uZjAzOWRhY2NkYiAxMDA2NDQNCj4gPj4gLS0tIGEvTWRl UGtnL01kZVBrZy5jaS55YW1sDQo+ID4+ICsrKyBiL01kZVBrZy9NZGVQa2cuY2kueWFtbA0KPiA+ PiBAQCAtMiw3ICsyLDcgQEANCj4gPj4gICMgQ0kgY29uZmlndXJhdGlvbiBmb3IgTWRlUGtnDQo+ ID4+DQo+ID4+ICAjDQo+ID4+DQo+ID4+ICAjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBv cmF0aW9uDQo+ID4+DQo+ID4+IC0jIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+Pg0KPiA+PiArIyBDb3B5cmlnaHQgKGMp IDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4N Cj4gPj4gICMgQ29weXJpZ2h0IChjKSAyMDIxLCBBcm0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ID4+DQo+ID4+ICAjIENvcHlyaWdodCAoYykgMjAyMywgTG9vbmdzb24gVGVj aG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwNCj4gPj4gcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gPj4NCj4gPj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gPj4NCj4gPj4gQEAgLTY3LDcgKzY3LDggQEANCj4gPj4gICAgICAgICAgICAgICJJ bmNsdWRlL0xpYnJhcnkvUGNkTGliLmgiLA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgIkluY2x1 ZGUvTGlicmFyeS9TYWZlSW50TGliLmgiLA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgIkluY2x1 ZGUvUHJvdG9jb2wvRGVidWdTdXBwb3J0LmgiLA0KPiA+Pg0KPiA+PiAtICAgICAgICAgICAgIlRl c3QvVW5pdFRlc3QvTGlicmFyeS9CYXNlU2FmZUludExpYi9UZXN0QmFzZVNhZmVJbnRMaWIuYyIN Cj4gPj4NCj4gPj4gKw0KPiA+PiArICJUZXN0L1VuaXRUZXN0L0xpYnJhcnkvQmFzZVNhZmVJbnRM aWIvVGVzdEJhc2VTYWZlSW50TGliLmMiLA0KPiA+Pg0KPiA+PiArICAgICAgICAgICAgIkxpYnJh cnkvQmFzZUZkdExpYiINCj4gPj4NCj4gPj4gICAgICAgICAgXQ0KPiA+Pg0KPiA+PiAgICAgIH0s DQo+ID4+DQo+ID4+ICAgICAgIyMgb3B0aW9ucyBkZWZpbmVkIGNpL1BsdWdpbi9Db21waWxlclBs dWdpbg0KPiA+Pg0KPiA+PiBAQCAtMTY0LDUgKzE2NSwxNyBAQA0KPiA+PiAgICAgICAgICAiRXh0 ZW5kV29yZHMiOiBbXSwgICAgICAgICAgICMgd29yZHMgdG8gZXh0ZW5kIHRvIHRoZSBkaWN0aW9u YXJ5IGZvciB0aGlzIHBhY2thZ2UNCj4gPj4NCj4gPj4gICAgICAgICAgIklnbm9yZVN0YW5kYXJk UGF0aHMiOiBbXSwgICAjIFN0YW5kYXJkIFBsdWdpbiBkZWZpbmVkIHBhdGhzIHRoYXQgc2hvdWxk IGJlIGlnbm9yZQ0KPiA+Pg0KPiA+PiAgICAgICAgICAiQWRkaXRpb25hbEluY2x1ZGVQYXRocyI6 IFtdICMgQWRkaXRpb25hbCBwYXRocyB0byBzcGVsbA0KPiA+PiBjaGVjayAod2lsZGNhcmRzIHN1 cHBvcnRlZCkNCj4gPj4NCj4gPj4gKyAgICB9LA0KPiA+Pg0KPiA+PiArICAgICMgb3B0aW9ucyBk ZWZpbmVkIGluIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnlDaGVjaw0KPiA+Pg0KPiA+PiArICAg ICJVbmNydXN0aWZ5Q2hlY2siOiB7DQo+ID4+DQo+ID4+ICsgICAgICAgICJJZ25vcmVGaWxlcyI6 IFsNCj4gPj4NCj4gPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvbGliZmR0IiwN Cj4gPj4NCj4gPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmgiLA0K PiA+Pg0KPiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdGRib29sLmgiLA0K PiA+Pg0KPiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaCIsDQo+ ID4+DQo+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oIiwNCj4g Pj4NCj4gPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmgiLA0KPiA+ Pg0KPiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaCINCj4gPj4N Cj4gPj4gKyAgICAgICAgXQ0KPiA+Pg0KPiA+PiAgICAgIH0NCj4gPj4NCj4gPj4gIH0NCj4gPj4N Cj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5kZWMg aW5kZXgNCj4gPj4gZTcwMTgyYmY3Zi4uOTgwNGE3YTZiZCAxMDA2NDQNCj4gPj4gLS0tIGEvTWRl UGtnL01kZVBrZy5kZWMNCj4gPj4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4gPj4gQEAgLTI4 OSw2ICsyODksMTAgQEANCj4gPj4gICAgIw0KPiA+Pg0KPiA+PiAgICBBcm1Ucm5nTGlifEluY2x1 ZGUvTGlicmFyeS9Bcm1Ucm5nTGliLmgNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gKyAgIyMgIEBs aWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIEFQSXMgZm9yIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGliZmR0 Lg0KPiA+Pg0KPiA+PiArICAjDQo+ID4+DQo+ID4+ICsgIEZkdExpYnxJbmNsdWRlL0xpYnJhcnkv RmR0TGliLmgNCj4gPj4NCj4gPj4gKw0KPiA+Pg0KPiA+PiAgW0xpYnJhcnlDbGFzc2VzLklBMzIs IExpYnJhcnlDbGFzc2VzLlg2NCwgTGlicmFyeUNsYXNzZXMuQUFSQ0g2NF0NCj4gPj4NCj4gPj4g ICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIHNlcnZpY2VzIHRvIGdlbmVyYXRlIHJhbmRv bSBudW1iZXIuDQo+ID4+DQo+ID4+ICAgICMNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9NZGVQa2cuZHNjIGIvTWRlUGtnL01kZVBrZy5kc2MgaW5kZXgNCj4gPj4gMTUyYzAyOTkxYS4u YjM4Yzg2MzgxMiAxMDA2NDQNCj4gPj4gLS0tIGEvTWRlUGtnL01kZVBrZy5kc2MNCj4gPj4gKysr IGIvTWRlUGtnL01kZVBrZy5kc2MNCj4gPj4gQEAgLTEzNyw2ICsxMzcsNyBAQA0KPiA+PiAgICBN ZGVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliTnVsbC9TbW1DcHVSZW5kZXp2b3VzTGli TnVsbC5pbmYNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gICAgTWRlUGtnL0xpYnJhcnkvSmVkZWNK ZXAxMDZMaWIvSmVkZWNKZXAxMDZMaWIuaW5mDQo+ID4+DQo+ID4+ICsgIE1kZVBrZy9MaWJyYXJ5 L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gIFtDb21w b25lbnRzLklBMzIsIENvbXBvbmVudHMuWDY0LCBDb21wb25lbnRzLkFSTSwgQ29tcG9uZW50cy5B QVJDSDY0XQ0KPiA+Pg0KPiA+PiAgICAjDQo+ID4+DQo+ID4+IC0tDQo+ID4+IDIuMzkuMS53aW5k b3dzLjENCg0K