From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.154063.1669738927840326446 for ; Tue, 29 Nov 2022 08:22:08 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=fv81WRWK; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: n.jayaprakash@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669738927; x=1701274927; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=pkVZdIKN0SCBwxfiYQuLemxwJmdjB5MpiAtNB1qobmo=; b=fv81WRWKKke24NjNHTzw4P3+x/NzfBLUsZGPNdYsf1XuhCH/Ufodi402 LdwJ5YialV78VHlV/oUmjvJbBaSfNIP5JMbto6QKTLnEe7WaSb6Ectlf6 FIWRXKzaeLq13ddQpDkeze8XFpXyuTnpcVqAXXe6EsxKNwZD6ePzlWMQV eTEcBQYnsttgJx3Da9X+rrh3lg5sOWN2/dlCpkwCzaq7yQM62vBU9mCEx d9DUgLVJ0i2sx2n5cdqSrxxFsok5uEKpd++hxm7IlgL4dzmBubLbqNJoa 4rEaDqFGAzFE9vl1dRNLMFFnEE5yUfmwDa8YvxudoN0OL/T9xLy5nFCJD Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="302743093" X-IronPort-AV: E=Sophos;i="5.96,203,1665471600"; d="scan'208";a="302743093" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2022 08:22:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="768479985" X-IronPort-AV: E=Sophos;i="5.96,203,1665471600"; d="scan'208";a="768479985" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 29 Nov 2022 08:22:05 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 29 Nov 2022 08:22:04 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 29 Nov 2022 08:22:04 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 29 Nov 2022 08:22:04 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Tue, 29 Nov 2022 08:22:03 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PmjXCd3sAxFxX3oQM+wL7GhlhKxmNm5lk+5/H1N44Z+Rs96tFITUeClf7Zf/FxEFVl9uHgfqF/+pXdaegnGR6Ogmi24UdgDDF3j+1bBzP1Ec1/k+3gNX9lGP7wj1+fFp1nPwLUaD1kbABvFOs+CGjAPYg/Rk5HQwKUNpPyuSXVHFh4+paA1tqOcC0kEZW137x36ZF8G4aI+BA2daZ15nQBEUAUrH2UnhL6zEUoxkGQFcKjW8xAfZfZWuC3demL95Az/8VAwms82fugA7n5TS8CPvnCNuxij/3OBtqyICBA+Lm+O2QHl3VEn/pwvtg+ZlPDJ1uYIYULiERcFFkpYqIw== 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=pkVZdIKN0SCBwxfiYQuLemxwJmdjB5MpiAtNB1qobmo=; b=ANwhNr2ZVFijQKiJ3zyTWIDZSux+dMaOueJ/rXswDJyc03K2NcNWe8VP8djYrBIjv1bAIKg0ISlRJ0hkXrL4ZXP0hRk6mWLSfkRDYd9Q9y4IDL7Q+zu103OCisJ8zHw1viY143IxalQ/w3EM6rnavbN91u5P4YyQp/q2/TJ0qBw3EajQvaodHjId9G1AaWgmk7o/MXcG2t4HA5OPWMIdFlOwMjrj1LWfiMTeX0B0p1CN5o58nXJAJ7wksQh0pTyKC3aO5DtgMGki2e5WLQnxItibtRURVYEGnuq19WqUaDeQHZg6i6m77pePna7kzoALdb/dtYHAyvPJz9Zq4q14oA== 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 PH7PR11MB5943.namprd11.prod.outlook.com (2603:10b6:510:13f::19) by IA1PR11MB7823.namprd11.prod.outlook.com (2603:10b6:208:3f3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Tue, 29 Nov 2022 16:22:00 +0000 Received: from PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::871b:79f2:8ec8:9717]) by PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::871b:79f2:8ec8:9717%9]) with mapi id 15.20.5857.023; Tue, 29 Nov 2022 16:22:00 +0000 From: "Jayaprakash, N" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Rebecca Cran , "Kadapathri, Ajay" , "Frinzell, Aaron" Subject: Re: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Topic: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Index: AQHY/bHA9M01lOBr90G/hHu/SL1qMa5WGeaAgAAFU5A= Date: Tue, 29 Nov 2022 16:22:00 +0000 Message-ID: References: <20221121140026.1931-1-n.jayaprakash@intel.com> <20221121140026.1931-2-n.jayaprakash@intel.com> In-Reply-To: Accept-Language: en-IN, 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: PH7PR11MB5943:EE_|IA1PR11MB7823:EE_ x-ms-office365-filtering-correlation-id: acff8d39-eed0-4d3d-f01a-08dad225d81f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9peu3mTtX6w4UPAA9Ren32R/NubDgc4YQAXab9/2A//Jei8VHpl3v4oZmdBizJcNCn4oLDKs2LPloEfyDlDCscyxgvqqlrkJSWpmCbJVFGgrxeAwU0giFcY58ie76go3HfwlgmLJeu1PLM+0af4YECwzndVQg56ALo9ni867ZYJdtNEbNM+YuugBmdC9zynsnxUdi4I4ioI1pDxDxx6v0Q9zahBTYrwY4YbRQ+11RH5RgHp/gFym6Iv0vsEpTZv+M5/e+gdCoO0ffP+o08D/6gDbK3jqos/A1LsmvXd282CRE7hRl+vYYVbdKh0HEobKCMU7vFFy6vlrNa7GHq05700V/v5VG9PAFuwEEK6gAiSWD4HB9ppgqfczWu/rXeKX6Wi165i4mnVDpnHM+5hNw0MuPcMUG465srTeAgtD6KATEEF/Y4dBVgmcfxP/5u/iaBtKMozkvtY/sjzxE4KnPVqWQv8bE+mGC6vSt73vT+5I84HM55WUjdrMytnmbzEVsbo0LuP2OH3MSi3JxsnaBO0vkWqZekvYqdqvn9bm0apWjokJekfir8yyqhIRtYx7i22yAoVolqS3F6ceKbjuC00ITsifFd1phwEeSz+3wutGovEdBA6DgoiiVIQGqQwugjSefjaJ0JCAOdvvDDjeEYxEESW6jcizK+ABNIZ8VADHumsxWujkcMrc7eVrGKD9IkPGUaJu3NykFHQdKgdmiaUy+vPa8cEVMm0AQRHvi+HTocXsO9S32ZVCnhG4JW/WBaFyE9K9TCPQ6bCBozlvOLUYXIhAIVSWIgOHHYBNngs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB5943.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(136003)(366004)(39860400002)(376002)(396003)(451199015)(76116006)(83380400001)(4326008)(66446008)(8676002)(966005)(66476007)(64756008)(66946007)(66556008)(316002)(110136005)(19627235002)(186003)(54906003)(86362001)(38100700002)(38070700005)(82960400001)(122000001)(5660300002)(30864003)(55016003)(33656002)(8936002)(41300700001)(2906002)(52536014)(107886003)(6506007)(53546011)(9686003)(71200400001)(7696005)(26005)(478600001)(545624005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OExkM3BTVHRoUGkvS0VXZmZFQjRuM1psbTVWWTBmV2xxVnZkK2c0RFNQcmtj?= =?utf-8?B?d3VhVkJwb2lIS1ovU2lwdkkwdHpLVGtFaVZKNVFSeE1QRkplY2s0R3pvcHBp?= =?utf-8?B?ckkxMU9FbExQaFMvMEM3aEdkeGlXQURiN0JDS3hYekc3U2JpMmJRU2xCQ1F0?= =?utf-8?B?cUhWeFRRTGlueE5jc3ZZbVZSdTBZRWhRd2EzS3hkRHpGUlpidXFha0srV0c3?= =?utf-8?B?NVdnN1BGcDRsdzVrZzZlYThhSVh6TzY5RTR1bHlQd1FZYXdmWndmMXBleXVy?= =?utf-8?B?TkFBcDdodGlRb2JZQXVGdWNDU29WRElPQXBVL1YvZEErTEJsRk40VnhVMWNh?= =?utf-8?B?YW0rVFozNWl4aS8wZTRQZlp1eDdESDhJdEY0aHQrQWVpSFcrcEI2a0xmdzZT?= =?utf-8?B?TUovNzNLbDBQMzdOL29pN1d3RmpZYzJnSC9pZy9lWThacFg2TUdyUG9WSldM?= =?utf-8?B?b1RVblhnMTdHNytNWnpzS0dXMWJFR0VjNHFFNVhJY1pXSmJCYWpIcHlQclhW?= =?utf-8?B?VWpsZDdPT3pvellRdUZJdGlEZlFOVzZLVzRydWVDMHpCY1ZZSkxudW1PZDky?= =?utf-8?B?Q3NVTkp1NERsVEhkVjBob1luSEFzamRVVEdSVW1IemluTGJpa2t3emRxQW1Z?= =?utf-8?B?OXRVMnpkcVE3SkZWMkRzYkZROERtMnM1K2E0R3hvQlo0MVJoN0p3cWd3ak1M?= =?utf-8?B?Q3R4aXFDeTlQTldvS1J0QUxjdVpOa2ZHQjFQUmF1aXJwUWgyQmVLL0RNcXc3?= =?utf-8?B?ZkdsZS9aSDMzK29WUU9IRXZlckZTcTBOR3c4VUZqQjVHNFNFL0UrRzlUcHBO?= =?utf-8?B?cVEzT0JFd3k0WU9LVWxreEdyMnpaMnhZdmRpZkhzVlVHc0ZBZmx2RXdBc1c3?= =?utf-8?B?Q09PVzk3V3pWekUvZ2k5SmIzNUtpemZiZHJtVkcwMGhaL2Y5cVBrN0ZUckk0?= =?utf-8?B?RWZDRnFqcDg2ZWUwc0RxZktLRGUrYVh3RSs0TUxvOGVVVXJGczBGZUpLSUFL?= =?utf-8?B?VDg4Z0V0akV4VWZ1ZFNyL1c1K3pNL2V1ZnkyY3pOR3I3cGl6NTVnaENKWENT?= =?utf-8?B?eVBKYUM2WSs1NkxmZ1dueDJQdU9Hek9xTDE0dHBtRW1VV0YzZjRjZUZ6c1p2?= =?utf-8?B?eDlJTHVPc1RQbUd3WTJ2cHEwU2RGbzRmbzdmWk1UMlFUa1FMdElpSld3djV0?= =?utf-8?B?N0FRWDJMdnV3NXVnVkcrSWZ5b1dEMHk4S1VuZU55VHlxRjFKRnFYZHUvZVpS?= =?utf-8?B?TTlOS1lCZFB0TE5mSzltdmt2WDBZbTFrVnBzOVQ3UC8yd0FxUXp5U2Y5RGYv?= =?utf-8?B?MkdrSGVCeXVhekJ3cDIzenNwQlFVeEVjMS9YMkExVVBWS1hEREVVNDIxUG1O?= =?utf-8?B?L2FHQkxxQkM2Z3NQbU9lazBHbmg1dHBob3VHSnlFclJZaEFrRFgxQU9CZmdT?= =?utf-8?B?RU42YWRTdzZQYlI0dEI5ZmxyUS8xMkJHMHdTdmhpR2lSY1VlSFlDMy9tcndm?= =?utf-8?B?UU14ZXZrZDJqc3pEZXpONlF3VXJIcnJOblBoQXhWRkFaRDZwemx3WlRwb3p3?= =?utf-8?B?RGJvVWw1UEM3Q1Z5cVR6TzlwK3Z4OWN3RzkwSFNMRyt1ODF1K0FhaS9NY3VV?= =?utf-8?B?QzZMZGFFWTlWYXRFT3JmcUZZaDBISzRVd3JpSnVqWWZIK2hxUXBFRC9tdlhF?= =?utf-8?B?QTMrZm5WSFdTdlJmc3hQQUgvNWNjYldIdlkxamx5eGhRYjJXU1VIdEMwQzdJ?= =?utf-8?B?Y0g4SHZJK2hqcGh1UGxlNjVvc1Y5NlRUZU9zOFRIQWhQYUhCeVAxYnA3cE9C?= =?utf-8?B?SmNLc0sxaXVsb2MrREVya2RaTXZwYVdpajFHUnI1S0V6M0NYdUdMN281dUw1?= =?utf-8?B?Sm4rTWMzb0ZTNHR4Y3d6SmZ2L29uWG9tTGc3WFJqRGNRZEJ4WkhpUlFsN2l6?= =?utf-8?B?MUJKUTJQSDdPbXZVTldMNzVDS0R3Vzh2TENLVEdLTHA0THBHYloxUlprZ25w?= =?utf-8?B?cTFhNG9PcDhiRlFBVm5CWWZGenhvRFRJN1Z2MGFROVlNWEU5eTVscXBlVXg4?= =?utf-8?B?OC8xbkQrVllYT210UWZYMGcrU25jTGp2SG85dXo4TXpwckV1N0c2cFhySWZn?= =?utf-8?Q?5fMhNuxbiGa41OKiZvbhmkuoc?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5943.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: acff8d39-eed0-4d3d-f01a-08dad225d81f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:22:00.7628 (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: wFeI8eqSEoL16K068gjKACMY7SCLnOqEW4rR9Vf+0dCQl5FugjBKwv0TpGZDiDiouBS0Xt3VhmdquvBm+qgNMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7823 Return-Path: n.jayaprakash@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWlrZSwNCg0KVGhhbmtzIE1pa2UgZm9yIHlvdXIgZmVlZGJhY2suIEkgY29tcGxldGVseSBh Z3JlZSB3aXRoIHlvdXIgc3VnZ2VzdGlvbnMuIA0KDQpIYXZpbmcgc2FpZCB0aGF0LCB0aGUgY29k ZSBpbiBQUiBpcyBhbiBleGlzdGluZyB3ZWxsIHRlc3RlZCBjb2RlIGZyb20gQ2hpcHNlYyBnaXQg cmVwbyBhbmQgaXQgd2FzIHByb2JhYmx5IHdyaXR0ZW4gcXVpdGUgYSBmZXcgeWVhcnMgYWdvLiAN ClRoaXMgaXMgcHJvYmFibHkgdGhlIHJlYXNvbiB0aGF0IGl0IGlzIG5vdCBmb2xsb3dpbmcgdGhl IGVkazIgY29udmVudGlvbnMgYXJlIGd1aWRlbGluZXMgd2l0aCByZXNwZWN0IHRvIEFTTS4gDQpD aGlwc2VjIGdpdCByZXBvIGZvciByZWZlcmVuY2UgLSBodHRwczovL2dpdGh1Yi5jb20vY2hpcHNl Yy9jaGlwc2VjL3RyZWUvbWFpbi9jaGlwc2VjX3Rvb2xzL2VkazIvUHl0aG9uRUZJDQoNCk91ciBp ZGVhIGlzIHRvIGJyaW5nIHRoaXMgY29kZSBmcm9tIENoaXBzZWMgcmVwbyBhcyBpcyBpbiB0aGUg Zmlyc3Qgc3RhZ2UsIGVuYWJsZSB0aGUgQ2hpcHNlYyB0b29sIGFuZCB0aGVuIG1ha2UgYW55IGFk ZGl0aW9uYWwgaW1wcm92ZW1lbnRzIHJlcXVpcmVkLiANCldlIHNoYWxsIGRlZmluaXRlbHkgdGFr ZSB1cCB5b3VyIHN1Z2dlc3Rpb25zIGVhcmx5IGluIHRoZSBuZXh0IHllYXIgMjAyMy4NCg0KTGV0 IG1lIGtub3cgaWYgdGhpcyBpZGVhIHNvdW5kcyBnb29kLg0KDQpSZWdhcmRzLA0KSlANCi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+IA0KU2VudDogMjkgTm92ZW1iZXIgMjAyMiAyMToyMw0KVG86IEph eWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpDYzog UmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1s aWJjIFBhdGNoIDEvMV0gZWRrMi1saWJjOiBtaWdyYXRpb24gb2YgZWRrMm1vZHVsZSBmcm9tIGNo aXBzZWMgcmVwbw0KDQpIaSBKUCwNCg0KTWFueSBvZiB0aGVzZSBBUElzIGFyZSBhbHJlYWR5IGF2 YWlsYWJsZSBmcm9tIHRoZSBNZGVQa2cgQmFzZUxpYiwgSW9MaWIsIGFuZCBQY2lMaWIuDQoNCldo eSB3b3VsZCB3ZSBhZGQgY3VzdG9tIEFTTSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlcmUgaGVyZT8N Cg0KV2h5IEFTTSBhbmQgbm90IE5BU00uICBlZGsyIHByb2plY3RzIGhhdmUgY29uc29saWRhdGVk IG9uIE5BU00gZm9yIGFsbCBJQTMyL1g2NCBhc3NlbWJseSBjb2RlLg0KDQpJIHRoaW5rIHRoZSBi ZXN0IGFwcHJvYWNoIGlzIHRvIHBvcnQgdGhlIFB5dGhvbiB3cmFwcGVycyBhcm91bmQgdGhlIGNh bGxzIHRvIHRoZXNlDQpBU00gZnVuY3Rpb25zIHRvIGNhbGwgTWRlUGtnIEJhc2VMaWIsIElvTGli LCBhbmQgUGNpTGliIGFuZCByZW1vdmUgdGhlIEFTTSBjb2RlDQpmcm9tIHRoZSBwYXRjaC4NCg0K VGhhbmtzLA0KDQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog SmF5YXByYWthc2gsIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPg0KPiBTZW50OiBNb25kYXks IE5vdmVtYmVyIDIxLCAyMDIyIDY6MDAgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ IENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAbnV2aWFpbmMuY29tPjsgS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgSmF5YXByYWthc2gsIE4NCj4gPG4uamF5 YXByYWthc2hAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1saWJjIFBhdGNoIDEvMV0gZWRr Mi1saWJjOiBtaWdyYXRpb24gb2YgZWRrMm1vZHVsZSBmcm9tIGNoaXBzZWMgcmVwbw0KPiANCj4g UkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxNjEN Cj4gDQo+IFRoaXMgcGF0Y2ggbWVyZ2VzIHRoZSBlbmhhbmNlbWVudHMgZG9uZSBieSBjaGlwc2Vj DQo+IHRvb2wgdG8gZWRrMiBtb2R1bGUgaW50byBlZGsyLWxpYmMgcmVwby4NCj4gVGhlIGNoaXBz ZWMgZW5oYW5jZW1lbnRzIGNhbiBiZSB1c2VkIGZvciB2YXJpb3VzDQo+IG90aGVyIFB5dGhvbiBi YXNlZCB0b29scyB0byBhY2Nlc3MgcGxhdGZvcm0gcmVnaXN0ZXJzLg0KPiBUaGVzZSBlbmhhbmNl bWVudHMgcHJvdmlkaW5nIGEgc2V0IG9mIEFQSXMgdG8gYWNjZXNzDQo+IHRoZSBwbGF0Zm9ybSBy ZWdpc3RlcnMgZGlyZWN0bHkgZnJvbSB0aGUgcHl0aG9uDQo+IHNjcmlwdHMgcnVubmluZyBvbiBV RUZJIHNoZWxsLiBUaGlzIHdpbGwgYmVuZWZpdCB0aGUNCj4gUHl0aG9uIHVzZXJzIG9uIFVFRkkg c2hlbGwgaW4gZ2VuZXJhbCBhbmQgZW5oYW5jZXMNCj4gaXQncyB1c2FiaWxpdHkuIFB5dGhvbiBj YW4gYmUgdXNlZCBlZmZlY3RpdmVseSB0bw0KPiBpbXBsZW1lbnQgdG9vbHMsIHNjcmlwdHMgcmVx dWlyZWQgZm9yIGF1dG9tYXRpb24sDQo+IGRlYnVnIGZyb20gVUVGSSBzaGVsbC4NCj4gDQo+IENj OiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAbnV2aWFpbmMuY29tPg0KPiBDYzogTWljaGFlbCBEIEtp bm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENvbnRyaWJ1dGVkLXVuZGVyOiBU aWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gU2lnbmVkLW9mZi1ieTogSmF5 YXByYWthc2ggTiA8bi5qYXlhcHJha2FzaEBpbnRlbC5jb20+DQo+IFJldmlld2VkLWJ5OiBNaWNo YWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gLS0tDQo+ICAuLi4v UHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1LmFzbSAgfCA1MTkgKysrKysrKysr KysrKysrKw0KPiAgLi4uL1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lhMzIuYXNtICAgICAgICAg IHwgMzk1ICsrKysrKysrKysrKw0KPiAgLi4uL1B5TW9kLTMuNi44L01vZHVsZXMvZWRrMm1vZHVs ZS5jICAgICAgICAgIHwgNTY4ICsrKysrKysrKysrKysrKysrLQ0KPiAgLi4uL1B5dGhvbi9QeXRo b24tMy42LjgvUHl0aG9uMzY4LmluZiAgICAgICAgIHwgIDMyICstDQo+ICA0IGZpbGVzIGNoYW5n ZWQsIDE0OTYgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44 L01vZHVsZXMvY3B1LmFzbQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFwcFBrZy9BcHBsaWNhdGlv bnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbQ0K PiANCj4gZGlmZiAtLWdpdCBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYu OC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5hc20gYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhv bi9QeXRob24tDQo+IDMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1LmFzbQ0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi42NWVkYzk2DQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMu Ni44L01vZHVsZXMvY3B1LmFzbQ0KPiBAQCAtMCwwICsxLDUxOSBAQA0KPiArVElUTEUgICBjcHUu YXNtOiBBc3NlbWJseSBjb2RlIGZvciB0aGUgeDY0IHJlc291cmNlcw0KPiArDQo+ICsuQ09ERSBj cHVfYXNtX2NvZGUkX19hDQo+ICsNCj4gK1BVQkxJQyBXcml0ZVBvcnREd29yZA0KPiArUFVCTElD IFdyaXRlUG9ydFdvcmQNCj4gK1BVQkxJQyBXcml0ZVBvcnRCeXRlDQo+ICtQVUJMSUMgUmVhZFBv cnREd29yZA0KPiArUFVCTElDIFJlYWRQb3J0V29yZA0KPiArUFVCTElDIFJlYWRQb3J0Qnl0ZQ0K PiArUFVCTElDIFdyaXRlSGlnaENNT1NCeXRlDQo+ICtQVUJMSUMgV3JpdGVMb3dDTU9TQnl0ZQ0K PiArUFVCTElDIFNlbmRBUE1TTUkNCj4gK1BVQkxJQyBXcml0ZVBDSUJ5dGUNCj4gK1BVQkxJQyBX cml0ZVBDSVdvcmQNCj4gK1BVQkxJQyBXcml0ZVBDSUR3b3JkDQo+ICtQVUJMSUMgUmVhZFBDSUJ5 dGUNCj4gK1BVQkxJQyBSZWFkUENJV29yZA0KPiArUFVCTElDIFJlYWRQQ0lEd29yZA0KPiArUFVC TElDIF9yZG1zcg0KPiArUFVCTElDIF93cm1zcg0KPiArUFVCTElDIF9sb2FkX2dkdA0KPiArUFVC TElDIF9yZmxhZ3MNCj4gK1BVQkxJQyBfc3dzbWkNCj4gKw0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICs7IFVJTlQ2NCBfcmZsYWdzKCkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gK19yZmxhZ3MgUFJPQw0KPiArICAgIHB1c2hmcQ0KPiArICAgIHBvcCByYXgNCj4gKyAg ICByZXQNCj4gK19yZmxhZ3MgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICs7IHZvaWQgX3N0b3JlX2lkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyBy Y3gNCj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfc3RvcmVfaWR0ciBQ Uk9DDQo+ICsgICAgc2lkdCBmd29yZCBwdHIgW3JjeF0NCj4gKyAgICByZXQNCj4gK19zdG9yZV9p ZHRyIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lkIF9sb2Fk X2lkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gNCj4gKzsgICApDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfbG9hZF9pZHRyIFBST0MNCj4gKyAgICBsaWR0 IGZ3b3JkIHB0ciBbcmN4XQ0KPiArICAgIHJldA0KPiArX2xvYWRfaWR0ciBFTkRQDQo+ICsNCj4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfc3RvcmVfZ2R0cigNCj4gKzsgICB1 bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gK19zdG9yZV9nZHRyIFBST0MNCj4gKyAgICBzZ2R0IGZ3b3JkIHB0ciBbcmN4 XQ0KPiArICAgIHJldA0KPiArX3N0b3JlX2dkdHIgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICs7IHZvaWQgX2xvYWRfZ2R0cigNCj4gKzsgICB1bnNpZ25lZCBjaGFyICph ZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK19s b2FkX2dkdHIgUFJPQw0KPiArICAgIGxnZHQgZndvcmQgcHRyIFtyY3hdDQo+ICsgICAgcmV0DQo+ ICtfbG9hZF9nZHRyIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2 b2lkIF9zdG9yZV9sZHRyKA0KPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ ICs7ICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3N0b3JlX2xkdHIgUFJPQw0K PiArICAgIDtzbGR0IGZ3b3JkIHB0ciBbcmN4XQ0KPiArICAgIHJldA0KPiArX3N0b3JlX2xkdHIg RU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7IHZvaWQgX2xvYWRfbGR0 cigNCj4gKzsgICB1bnNpZ25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK19sb2FkX2xkdHIgUFJPQw0KPiArICAgIDtsbGR0IGZ3 b3JkIHB0ciBbcmN4XQ0KPiArICAgIHJldA0KPiArX2xvYWRfbGR0ciBFTkRQDQo+ICsNCj4gKw0K PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lkIF9sb2FkX2dkdCgNCj4gKzsgICB1 bnNpZ25lZCBjaGFyICp2YWx1ZSAvLyByY3gNCj4gKzsgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICtfbG9hZF9nZHQgUFJPQw0KPiArDQo+ICsgICAgc2dkdCBmd29yZCBwdHIgW3Jj eF0NCj4gKyAgICBsZ2R0IGZ3b3JkIHB0ciBbcmN4XQ0KPiArDQo+ICsgICAgcmV0DQo+ICtfbG9h ZF9nZHQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lkIF9y ZG1zcigNCj4gKzsgICAgdW5zaWduZWQgaW50IG1zcl9udW0sIC8vIHJjeA0KPiArOyAgICB1bnNp Z25lZCBpbnQqIG1zcl9sbywgLy8gcmR4DQo+ICs7ICAgIHVuc2lnbmVkIGludCogbXNyX2hpICAv LyByOA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfcmRtc3IgUFJP Qw0KPiArICAgIHB1c2ggcjEwDQo+ICsgICAgcHVzaCByMTENCj4gKyAgICBwdXNoIHJheA0KPiAr ICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICBtb3YgcjEwLCByZHggOyBtc3JfbG8NCj4gKyAgICBt b3YgcjExLCByOCAgOyBtc3JfaGkNCj4gKw0KPiArICAgIDsgcmN4IGhhcyBtc3JfbnVtDQo+ICsg ICAgcmRtc3INCj4gKw0KPiArICAgIDsgV3JpdGUgTVNSIHJlc3VsdHMgaW4gZWR4OmVheA0KPiAr ICAgIG1vdiBkd29yZCBwdHIgW3IxMF0sIGVheA0KPiArICAgIG1vdiBkd29yZCBwdHIgW3IxMV0s IGVkeA0KPiArDQo+ICsgICAgcG9wIHJkeA0KPiArICAgIHBvcCByYXgNCj4gKyAgICBwb3AgcjEx DQo+ICsgICAgcG9wIHIxMA0KPiArDQo+ICsgICAgcmV0DQo+ICtfcmRtc3IgRU5EUA0KPiArDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lkIF93cm1zcigNCj4gKzsgICAgdW5z aWduZWQgaW50IG1zcl9udW0sIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBpbnQgbXNyX2hpLCAg Ly8gcmR4DQo+ICs7ICAgIHVuc2lnbmVkIGludCBtc3JfbG8gICAvLyByOA0KPiArOyAgICApDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfd3Jtc3IgUFJPQw0KPiArICAgIHB1c2ggcmF4 DQo+ICsNCj4gKyAgICA7IHJjeCBoYXMgbXNyX251bQ0KPiArICAgIDsgcmR4IGhhcyBtc3JfaGkN Cj4gKyAgICA7IG1vdmUgbXNyX2xvIGZyb20gcjggdG8gcmF4DQo+ICsgICAgbW92IHJheCwgcjgN Cj4gKyAgICB3cm1zcg0KPiArDQo+ICsgICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArX3dybXNy IEVORFANCj4gKw0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lkDQo+ ICs7ICBXcml0ZVBvcnREd29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlvdXRfdmFsdWUgICAg ICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CXBvcnRfbnVtICAgICAgICAgICAv LyByZHgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArV3JpdGVQb3J0 RHdvcmQgUFJPQw0KPiArICAgIHB1c2ggcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCByY3gNCj4g KyAgICBvdXQgZHgsIHJheA0KPiArDQo+ICsgICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArV3Jp dGVQb3J0RHdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2 b2lkDQo+ICs7ICBXcml0ZVBvcnRXb3JkICgNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJb3V0X3Zh bHVlICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251bSAgICAg ICAgICAgLy8gcmR4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dy aXRlUG9ydFdvcmQgUFJPQw0KPiArICAgIHB1c2ggcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCBy Y3gNCj4gKyAgICBvdXQgZHgsIGF4DQo+ICsNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ ICtXcml0ZVBvcnRXb3JkIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAr OyAgdm9pZA0KPiArOyAgV3JpdGVQb3J0Qnl0ZSAoDQo+ICs7ICAgIHVuc2lnbmVkIGNoYXIJb3V0 X3ZhbHVlICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251bSAg ICAgICAgICAgLy8gcmR4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g K1dyaXRlUG9ydEJ5dGUgUFJPQw0KPiArICAgIHB1c2ggcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4 LCByY3gNCj4gKyAgICBvdXQgZHgsIGFsDQo+ICsNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0 DQo+ICtXcml0ZVBvcnRCeXRlIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiArOyAgdW5zaWduZWQgaW50DQo+ICs7ICBSZWFkUG9ydER3b3JkICgNCj4gKzsgICAgdW5zaWdu ZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJjeA0KPiArOyAgICApDQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUG9ydER3b3JkIFBST0MNCj4gKyAgICBwdXNoIHJkeA0K PiArDQo+ICsgICAgeG9yIHJheCwgcmF4DQo+ICsgICAgbW92IHJkeCwgcmN4DQo+ICsgICAgaW4g ZWF4LCBkeA0KPiArDQo+ICsgICAgcG9wIHJkeA0KPiArICAgIHJldA0KPiArUmVhZFBvcnREd29y ZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVkIHNo b3J0DQo+ICs7ICBSZWFkUG9ydFdvcmQgKA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251 bSAgICAgICAgICAgLy8gcmN4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gK1JlYWRQb3J0V29yZCBQUk9DDQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIHhvciBy YXgsIHJheA0KPiArICAgIG1vdiByZHgsIHJjeA0KPiArICAgIGluIGF4LCBkeA0KPiArDQo+ICsg ICAgcG9wIHJkeA0KPiArICAgIHJldA0KPiArUmVhZFBvcnRXb3JkIEVORFANCj4gKw0KPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdW5zaWduZWQgY2hhcg0KPiArOyAgUmVhZFBvcnRC eXRlICgNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJjeA0K PiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUG9ydEJ5dGUgUFJP Qw0KPiArICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICB4b3IgcmF4LCByYXgNCj4gKyAgICBtb3Yg cmR4LCByY3gNCj4gKyAgICBpbiBhbCwgZHgNCj4gKw0KPiArICAgIHBvcCByZHgNCj4gKyAgICBy ZXQNCj4gK1JlYWRQb3J0Qnl0ZSBFTkRQDQo+ICsNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgV3JpdGVIaWdoQ01PU0J5dGUgKA0KPiArOyAgICB1bnNp Z25lZCBjaGFyCWNtb3Nfb2ZmICAgICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgY2hhcgl2 YWwgICAJCS8vIHJkeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtX cml0ZUhpZ2hDTU9TQnl0ZSBQUk9DDQo+ICsgICAgcHVzaCByYXgNCj4gKw0KPiArICAgIG1vdiBy YXgsIHJjeA0KPiArICAgIG91dCA3MmgsIGFsDQo+ICsgICAgbW92IHJheCwgcmR4DQo+ICsgICAg b3V0IDczaCwgYWwNCj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAgICByZXQNCj4gK1dyaXRlSGln aENNT1NCeXRlIEVORFANCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHZvaWQNCj4g KzsgIFdyaXRlTG93Q01PU0J5dGUgKA0KPiArOyAgICB1bnNpZ25lZCBjaGFyCWNtb3Nfb2ZmICAg ICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgY2hhcgl2YWwgICAJCS8vIHJkeA0KPiArOyAg ICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZUxvd0NNT1NCeXRlIFBST0MN Cj4gKyAgICBwdXNoIHJheA0KPiArDQo+ICsgICAgbW92IHJheCwgcmN4DQo+ICsgICAgb3IgYWws IDgwaA0KPiArICAgIG91dCA3MGgsIGFsDQo+ICsgICAgbW92IHJheCwgcmR4DQo+ICsgICAgb3V0 IDcxaCwgYWwNCj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAgICByZXQNCj4gK1dyaXRlTG93Q01P U0J5dGUgRU5EUA0KPiArDQo+ICsNCj4gKzsgQFRPRE86IGxvb2tzIGluY29ycmVjdA0KPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgU2VuZEFQTVNNSSAoDQo+ICs7 ICAgIHVuc2lnbmVkIGludAlhcG1fcG9ydF92YWx1ZSAgICAgICAgICAvLyByY3gNCj4gKzsgICAg SU4gICBVSU5UNjQJcmF4X3ZhbHVlICAgICAgICAgICAgICAgLy8gcmR4DQo+ICs7ICAgICkNCj4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1NlbmRBUE1TTUkgUFJPQw0KPiArICAgIHB1c2gg cmF4DQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIG1vdiByYXgsIHJjeA0KPiArICAgIG1v diBkeCwgMEIyaA0KPiArICAgIG91dCBkeCwgcmF4DQo+ICsNCj4gKyAgICBwb3AgcmR4DQo+ICsg ICAgcG9wIHJheA0KPiArICAgIHJldA0KPiArU2VuZEFQTVNNSSBFTkRQDQo+ICsNCj4gKzstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHZvaWQNCj4gKzsgIFdyaXRlUENJQnl0ZSAoDQo+ICs7 ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25l ZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICB1bnNpZ25lZCBjaGFyCWJ5 dGVfdmFsdWUgICAgICAgLy8gcjgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArV3JpdGVQQ0lCeXRlIFBST0MNCj4gKyAgICBwdXNoIHJheA0KPiArICAgIHB1c2ggcmR4 DQo+ICsNCj4gKyAgICBjbGkNCj4gKyAgICBtb3YgcmF4LCByY3ggIDsgcGNpX3JlZw0KPiArICAg IG1vdiBkeCwgMENGOGgNCj4gKyAgICBvdXQgZHgsIHJheA0KPiArDQo+ICsgICAgbW92IHJheCwg cjggICA7IGJ5dGVfdmFsdWUNCj4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2ZnX2RhdGFfcG9ydA0K PiArICAgIG91dCBkeCwgYWwNCj4gKyAgICBzdGkNCj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAg ICByZXQNCj4gK1dyaXRlUENJQnl0ZSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gKzsgIHZvaWQNCj4gKzsgIFdyaXRlUENJV29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGlu dAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0 YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAl3b3JkX3ZhbHVlICAgICAg IC8vIHI4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUENJ V29yZCBQUk9DDQo+ICsgICAgcHVzaCByYXgNCj4gKyAgICBwdXNoIHJkeA0KPiArDQo+ICsgICAg Y2xpDQo+ICsgICAgbW92IHJheCwgcmN4ICA7IHBjaV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjho DQo+ICsgICAgb3V0IGR4LCByYXgNCj4gKw0KPiArICAgIG1vdiByYXgsIHI4ICAgOyBieXRlX3Zh bHVlDQo+ICsgICAgcG9wIHJkeCAgICAgICA7IGNmZ19kYXRhX3BvcnQNCj4gKyAgICBvdXQgZHgs IGF4DQo+ICsgICAgc3RpDQo+ICsNCj4gKyAgICBwb3AgcmF4DQo+ICsgICAgcmV0DQo+ICtXcml0 ZVBDSVdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2b2lk DQo+ICs7ICBXcml0ZVBDSUR3b3JkICgNCj4gKzsgICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAg ICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAgLy8g cmR4DQo+ICs7ICAgIHVuc2lnbmVkIGludAlkd29yZF92YWx1ZSAgICAgIC8vIHI4DQo+ICs7ICAg ICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUENJRHdvcmQgUFJPQw0KPiAr ICAgIHB1c2ggcmF4DQo+ICsgICAgcHVzaCByZHgNCj4gKw0KPiArICAgIGNsaQ0KPiArICAgIG1v diByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBk eCwgcmF4DQo+ICsNCj4gKyAgICBtb3YgcmF4LCByOCAgIDsgYnl0ZV92YWx1ZQ0KPiArICAgIHBv cCByZHggICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgb3V0IGR4LCBlYXgNCj4gKyAgICBz dGkNCj4gKw0KPiArICAgIHBvcCByYXgNCj4gKyAgICByZXQNCj4gK1dyaXRlUENJRHdvcmQgRU5E UA0KPiArDQo+ICsNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAgdW5zaWdu ZWQgY2hhcg0KPiArOyAgUmVhZFBDSUJ5dGUgKA0KPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3Jl ZyAgICAgICAgICAvLyByY3gNCj4gKzsgICAgdW5zaWduZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAg ICAvLyByZHgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArUmVhZFBD SUJ5dGUgUFJPQw0KPiArICAgIHB1c2ggcmR4DQo+ICsNCj4gKyAgICBjbGkNCj4gKyAgICBtb3Yg cmF4LCByY3ggIDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4gKyAgICBvdXQgZHgs IHJheA0KPiArDQo+ICsgICAgeG9yIHJheCwgcmF4DQo+ICsgICAgcG9wIHJkeCAgICAgICA7IGNm Z19kYXRhX3BvcnQNCj4gKyAgICBpbiAgYWwsIGR4DQo+ICsgICAgc3RpDQo+ICsNCj4gKyAgICBy ZXQNCj4gK1JlYWRQQ0lCeXRlIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiArOyAgdW5zaWduZWQgc2hvcnQNCj4gKzsgIFJlYWRQQ0lXb3JkICgNCj4gKzsgICAgdW5zaWdu ZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNm Z19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gK1JlYWRQQ0lXb3JkIFBST0MNCj4gKyAgICBwdXNoIHJkeA0KPiArDQo+ICsgICAgY2xp DQo+ICsgICAgbW92IHJheCwgcmN4ICA7IHBjaV9yZWcNCj4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ ICsgICAgb3V0IGR4LCByYXgNCj4gKw0KPiArICAgIHhvciByYXgsIHJheA0KPiArICAgIHBvcCBy ZHggICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgaW4gIGF4LCBkeA0KPiArICAgIHN0aQ0K PiArDQo+ICsgICAgcmV0DQo+ICtSZWFkUENJV29yZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVkIGludA0KPiArOyAgUmVhZFBDSUR3b3JkICgNCj4g KzsgICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2ln bmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gK1JlYWRQQ0lEd29yZCBQUk9DDQo+ICsgICAgcHVzaCByZHgNCj4g Kw0KPiArICAgIGNsaQ0KPiArICAgIG1vdiByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ICsgICAgbW92 IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBkeCwgcmF4DQo+ICsNCj4gKyAgICB4b3IgcmF4LCByYXgN Cj4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2ZnX2RhdGFfcG9ydA0KPiArICAgIGluICBlYXgsIGR4 DQo+ICsgICAgc3RpDQo+ICsNCj4gKyAgICByZXQNCj4gK1JlYWRQQ0lEd29yZCBFTkRQDQo+ICsN Cj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHZvaWQNCj4gKzsgIF9zd3NtaSAoDQo+ ICs7ICAgIHVuc2lnbmVkIGludAlzbWlfY29kZV9kYXRhCS8vIHJjeA0KPiArOyAgICBJTiAgIFVJ TlQ2NAlyYXhfdmFsdWUJLy8gcmR4DQo+ICs7ICAgIElOICAgVUlOVDY0CXJieF92YWx1ZQkvLyBy OA0KPiArOyAgICBJTiAgIFVJTlQ2NAlyY3hfdmFsdWUJLy8gcjkNCj4gKzsgICAgSU4gICBVSU5U NjQJcmR4X3ZhbHVlCS8vIHJzcCArIDB4MjgNCj4gKzsgICAgSU4gICBVSU5UNjQJcnNpX3ZhbHVl CS8vIHJzcCArIDB4MzANCj4gKzsgICAgSU4gICBVSU5UNjQJcmRpX3ZhbHVlCS8vIHJzcCArIDB4 MzgNCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3N3c21pIFBST0MN Cj4gKyAgICBwdXNoIHJieA0KPiArICAgIHB1c2ggcnNpDQo+ICsgICAgcHVzaCByZGkNCj4gKw0K PiArICAgIDsgcnNwIC0gMHgxOA0KPiArDQo+ICsgICAgOyBzZXR0aW5nIHVwIEdQUiAoYXJndW1l bnRzKSB0byBTTUkgaGFuZGxlciBjYWxsDQo+ICsgICAgOyBub3RlczoNCj4gKyAgICA7ICAgUkFY IHdpbGwgZ2V0IHBhcnRpYWxseSBvdmVyd3JpdHRlbiAoQVgpIGJ5IF9zbWlfY29kZV9kYXRhICh3 aGljaCBpcyBwYXNzZWQgaW4gUkNYKQ0KPiArICAgIDsgICBSRFggd2lsbCBnZXQgcGFydGlhbGx5 IG92ZXJ3cml0dGVuIChEWCkgYnkgdGhlIHZhbHVlIG9mIEFQTUMgcG9ydCAoPSAweDAwQjIpDQo+ ICsgICAgbW92IHJheCwgcmR4IDsgcmF4X3ZhbHVlDQo+ICsgICAgbW92IGF4LCBjeCAgIDsgc21p X2NvZGVfZGF0YQ0KPiArICAgIG1vdiByZHgsIHIxMCA7IHJkeF92YWx1ZQ0KPiArICAgIG1vdiBy ZHgsIFtyc3AgKyAwNDBoXSA7IHJzcCArIDB4MjggKyAweDE4DQo+ICsNCj4gKyAgICBtb3YgcmJ4 LCByOCAgOyByYnhfdmFsdWUNCj4gKyAgICBtb3YgcmN4LCByOSAgOyByY3hfdmFsdWUNCj4gKyAg ICBtb3YgcnNpLCBbcnNwICsgMDQ4aF0gOyByc2lfdmFsdWUNCj4gKyAgICBtb3YgcmRpLCBbcnNw ICsgMDUwaF0gOyByZGlfdmFsdWUNCj4gKw0KPiArICAgIDsgdGhpcyBPVVQgaW5zdHJ1Y3Rpb24g d2lsbCB3cml0ZSBXT1JEIHZhbHVlIChzbWlfY29kZV9kYXRhKSB0byBwb3J0cyAweEIyIGFuZCAw eEIzIChTVyBTTUkgY29udHJvbCBhbmQgZGF0YSBwb3J0cykNCj4gKyAgICBvdXQgMEIyaCwgYXgN Cj4gKw0KPiArICAgIDsgQFRPRE86IHNvbWUgU00gaGFuZGxlcnMgcmV0dXJuIGRhdGEvZXJyb3Jj b2RlIGluIEdQUnMsIG5lZWQgdG8gcmV0dXJuIHRoaXMgdG8gdGhlIGNhbGxlcg0KPiArDQo+ICsg ICAgcG9wIHJkaQ0KPiArICAgIHBvcCByc2kNCj4gKyAgICBwb3AgcmJ4DQo+ICsgICAgcmV0DQo+ ICtfc3dzbWkgRU5EUA0KPiArDQo+ICsNCj4gK0VORA0KPiBkaWZmIC0tZ2l0IGEvQXBwUGtnL0Fw cGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lh MzIuYXNtIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLQ0KPiAzLjYuOC9QeU1v ZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMyLmFzbQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwLi4wYjZmYzZkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvQXBwUGtnL0Fw cGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lh MzIuYXNtDQo+IEBAIC0wLDAgKzEsMzk1IEBADQo+ICtUSVRMRSAgIGNwdS5hc206IEFzc2VtYmx5 IGNvZGUgZm9yIHRoZSBpMzg2IHJlc291cmNlcw0KPiArDQo+ICtQVUJMSUMgV3JpdGVQb3J0RHdv cmQNCj4gK1BVQkxJQyBXcml0ZVBvcnRXb3JkDQo+ICtQVUJMSUMgV3JpdGVQb3J0Qnl0ZQ0KPiAr UFVCTElDIFJlYWRQb3J0RHdvcmQNCj4gK1BVQkxJQyBSZWFkUG9ydFdvcmQNCj4gK1BVQkxJQyBS ZWFkUG9ydEJ5dGUNCj4gK1BVQkxJQyBXcml0ZUhpZ2hDTU9TQnl0ZQ0KPiArUFVCTElDIFdyaXRl TG93Q01PU0J5dGUNCj4gK1BVQkxJQyBTZW5kQVBNU01JDQo+ICtQVUJMSUMgV3JpdGVQQ0lCeXRl DQo+ICtQVUJMSUMgV3JpdGVQQ0lXb3JkDQo+ICtQVUJMSUMgV3JpdGVQQ0lEd29yZA0KPiArUFVC TElDIFJlYWRQQ0lCeXRlDQo+ICtQVUJMSUMgUmVhZFBDSVdvcmQNCj4gK1BVQkxJQyBSZWFkUENJ RHdvcmQNCj4gK1BVQkxJQyBfcmRtc3INCj4gK1BVQkxJQyBfd3Jtc3INCj4gKw0KPiArDQo+ICsg ICAgLjU4NnANCj4gKyAgICAubW9kZWwgIGZsYXQsQw0KPiArICAgIC5jb2RlDQo+ICsNCj4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgdm9pZCBfc3RvcmVfaWR0cigNCj4gKzsgICB1bnNp Z25lZCBjaGFyICphZGRyZXNzIC8vIHJjeA0KPiArOyAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gK19zdG9yZV9pZHRyIFBST0MNCj4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2Vz cCs0XQ0KPiArICAgIHNpZHQgZHdvcmQgcHRyIFtlY3hdDQo+ICsgICAgcmV0DQo+ICtfc3RvcmVf aWR0ciBFTkRQDQo+ICsNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lk IF9sb2FkX2lkdHIoDQo+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gNCj4gKzsg ICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfbG9hZF9pZHRyIFBST0MNCj4gKyAg ICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCs0XQ0KPiArICAgIGxpZHQgZndvcmQgcHRyIFtlY3hd DQo+ICsgICAgcmV0DQo+ICtfbG9hZF9pZHRyIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiArOyB2b2lkIF9zdG9yZV9nZHRyKA0KPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFk ZHJlc3MgLy8gcmN4DQo+ICs7ICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArX3N0 b3JlX2dkdHIgUFJPQw0KPiArICAgIG1vdiBlY3gsIGR3b3JkIHB0ciBbZXNwKzRdDQo+ICsgICAg c2dkdCBkd29yZCBwdHIgW2VjeF0NCj4gKyAgICByZXQNCj4gK19zdG9yZV9nZHRyIEVORFANCj4g Kw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyB2b2lkIF9zdG9yZV9sZHRyKA0KPiAr OyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ICs7ICAgKQ0KPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiArX3N0b3JlX2xkdHIgUFJPQw0KPiArICAgIG1vdiBlY3gsIGR3b3Jk IHB0ciBbZXNwKzRdDQo+ICsgICAgc2xkdCB3b3JkIHB0ciBbZWN4XQ0KPiArICAgIHJldA0KPiAr X3N0b3JlX2xkdHIgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICB2 b2lkIF9fc3RkY2FsbCBfcmRtc3IoDQo+ICs7ICAgIElOIFVJTlQzMiBtc3IsDQo+ICs7ICAgIE9V VCBVSU5UMzIqIG1zcmxvLA0KPiArOyAgICBPVVQgVUlOVDMyKiBtc3JoaQ0KPiArOyAgICApDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtfcmRtc3IgUFJPQw0KPiArICAgIG1vdiBlY3gs IGR3b3JkIHB0ciBbZXNwICsgNF0gOyBtc3INCj4gKw0KPiArICAgIHJkbXNyDQo+ICsNCj4gKyAg ICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCArIDhdDQo+ICsgICAgbW92IGR3b3JkIHB0ciBbZWN4 XSwgZWF4IDsgbXNybG8NCj4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCArIDEyXQ0KPiAr ICAgIG1vdiBkd29yZCBwdHIgW2VjeF0sIGVkeCA7IG1zcmhpDQo+ICsNCj4gKyAgICByZXQNCj4g K19yZG1zciBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQg X19zdGRjYWxsIF93cm1zcigNCj4gKzsgICAgSU4gVUlOVDMyIG1zciwNCj4gKzsgICAgSU4gVUlO VDMyIG1zcmxvLA0KPiArOyAgICBJTiBVSU5UMzIgbXNyaGkNCj4gKzsgICAgKQ0KPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArX3dybXNyIFBST0MNCj4gKyAgICBtb3YgZWN4LCBkd29yZCBw dHIgW2VzcCArIDRdICA7IG1zcg0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgOF0g OyBtc3Jsbw0KPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsgMTJdIDsgbXNyaGkNCj4g Kw0KPiArICAgIHdybXNyDQo+ICsNCj4gKyAgICByZXQNCj4gK193cm1zciBFTkRQDQo+ICsNCj4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKztVSU5UMzIgX2VmbGFncygpDQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICtlZmxhZ3MgUFJPQw0KPiArICAgIHB1c2hmZA0KPiArICAgIHBv cCBlYXgNCj4gKyAgICByZXQNCj4gK2VmbGFncyBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsgIFdyaXRlUG9ydER3b3JkICgNCj4gKzsgICAgSU4g ICBVSU5UMzIgICAgb3V0X3ZhbHVlDQo+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUG9ydER3b3JkIFBS T0MNCj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICAgIDsgb3V0X3ZhbHVlDQo+ ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgIDsgcG9ydF9udW0NCj4gKyAgICBv dXQgZHgsIGVheA0KPiArDQo+ICsgICAgcmV0DQo+ICtXcml0ZVBvcnREd29yZCBFTkRQDQo+ICsN Cj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsgIFdyaXRlUG9ydFdv cmQgKA0KPiArOyAgICBJTiAgIFVJTlQxNiAgICBvdXRfdmFsdWUNCj4gKzsgICAgSU4gICBVSU5U MTYgICAgcG9ydF9udW0NCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAr V3JpdGVQb3J0V29yZCBQUk9DDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAg IDsgb3V0X3ZhbHVlDQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBwb3J0 X251bQ0KPiArICAgIG91dCBkeCwgYXgNCj4gKw0KPiArICAgIHJldA0KPiArV3JpdGVQb3J0V29y ZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsg IFdyaXRlUG9ydEJ5dGUgKA0KPiArOyAgICBJTiAgIFVJTlQ4ICAgICBvdXRfdmFsdWUNCj4gKzsg ICAgSU4gICBVSU5UMTYgICAgcG9ydF9udW0NCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiArV3JpdGVQb3J0Qnl0ZSBQUk9DDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRy IFtlc3AgKyA0XSAgIDsgb3V0X3ZhbHVlDQo+ICsgICAgbW92IGVkeCwgZHdvcmQgcHRyIFtlc3Ag KyA4XSAgOyBwb3J0X251bQ0KPiArICAgIG91dCBkeCwgYWwNCj4gKw0KPiArICAgIHJldA0KPiAr V3JpdGVQb3J0Qnl0ZSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsg IFVJTlQzMg0KPiArOyAgUmVhZFBvcnREd29yZCAoDQo+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBv cnRfbnVtDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1JlYWRQb3J0 RHdvcmQgUFJPQw0KPiArICAgIHhvciBlYXgsIGVheA0KPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0 ciBbZXNwICsgNF0gOyBwb3J0X251bQ0KPiArICAgIGluIGVheCwgZHgNCj4gKw0KPiArICAgcmV0 DQo+ICtSZWFkUG9ydER3b3JkIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiArOyAgVUlOVDE2DQo+ICs7ICBSZWFkUG9ydFdvcmQgKA0KPiArOyAgICBJTiAgIFVJTlQxNiAg ICBwb3J0X251bQ0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFk UG9ydFdvcmQgUFJPQw0KPiArICAgIHhvciBlYXgsIGVheA0KPiArICAgIG1vdiBlZHgsIGR3b3Jk IHB0ciBbZXNwICsgNF0gOyBwb3J0X251bQ0KPiArICAgIGluIGF4LCBkeA0KPiArDQo+ICsgICAg cmV0DQo+ICtSZWFkUG9ydFdvcmQgRU5EUA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICs7ICBVSU5UOA0KPiArOyAgUmVhZFBvcnRCeXRlICgNCj4gKzsgICAgSU4gICBVSU5UMTYg ICAgcG9ydF9udW0NCj4gKzsgICAgKQ0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArUmVh ZFBvcnRCeXRlIFBST0MNCj4gKyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICBtb3YgZWR4LCBkd29y ZCBwdHIgW2VzcCArIDRdIDsgcG9ydF9udW0NCj4gKyAgICBpbiBhbCwgZHgNCj4gKw0KPiArICAg IHJldA0KPiArUmVhZFBvcnRCeXRlIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArOyAgVk9JRA0KPiArOyAgV3JpdGVIaWdoQ01PU0J5dGUgKA0KPiArOyAgICBJTiAgIFVJ TlQ4ICAgICBjbW9zX29mZg0KPiArOyAgICBJTiAgIFVJTlQ4ICAgICB2YWwNCj4gKzsgICAgKQ0K PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArV3JpdGVIaWdoQ01PU0J5dGUgUFJPQw0KPiAr ICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgY21vc19vZmYNCj4gKyAgICBvdXQg NzJoLCBhbA0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgOF0gIDsgdmFsDQo+ICsg ICAgb3V0IDczaCwgYWwNCj4gKw0KPiArICAgIHJldA0KPiArV3JpdGVIaWdoQ01PU0J5dGUgRU5E UA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBXcml0 ZUxvd0NNT1NCeXRlICgNCj4gKzsgICAgSU4gICBVSU5UOCAgICAgY21vc19vZmYNCj4gKzsgICAg SU4gICBVSU5UOCAgICAgdmFsDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gK1dyaXRlTG93Q01PU0J5dGUgUFJPQw0KPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNw ICsgNF0gIDsgY21vc19vZmYNCj4gKyAgICBvciBhbCwgODBoDQo+ICsgICAgb3V0IDcwaCwgYWwN Cj4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IHZhbA0KPiArICAgIG91dCA3 MWgsIGFsDQo+ICsNCj4gKyAgICByZXQNCj4gK1dyaXRlTG93Q01PU0J5dGUgRU5EUA0KPiArDQo+ ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsgIFNlbmRBUE1T TUkgKA0KPiArOyAgICBJTiAgIFVJTlQzMglhcG1fcG9ydF92YWx1ZQ0KPiArOyAgICBJTiAgIFVJ TlQ2NAlyYXhfdmFsdWUgICAgICAgICAgICAgICAvLyBOT1QgVVNFRD8/Pw0KPiArOyAgICApDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtTZW5kQVBNU01JIFBST0MNCj4gKyAgICBtb3Yg ZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IGFwbV9wb3J0X3ZhbHVlDQo+ICsgICAgbW92IGR4 LCAwQjJoDQo+ICsgICAgb3V0IGR4LCBlYXgNCj4gKw0KPiArICAgIHJldA0KPiArU2VuZEFQTVNN SSBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIFZPSUQNCj4gKzsg IFdyaXRlUENJQnl0ZSAoDQo+ICs7ICAgIElOICAgVUlOVDMyICAgIHBjaV9yZWcNCj4gKzsgICAg SU4gICBVSU5UMTYgICAgY2ZnX2RhdGFfcG9ydA0KPiArOyAgICBJTiAgIFVJTlQ4ICAgICBieXRl X3ZhbHVlDQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1dyaXRlUENJ Qnl0ZSBQUk9DDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVn DQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBkeCwgZWF4DQo+ICsNCj4gKyAgICBt b3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDEyXSAgOyB3b3JkX3ZhbHVlDQo+ICsgICAgbW92IGVk eCwgZHdvcmQgcHRyIFtlc3AgKyA4XSAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgb3V0IGR4LCBh bA0KPiArDQo+ICsgICAgcmV0DQo+ICtXcml0ZVBDSUJ5dGUgRU5EUA0KPiArDQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICs7ICBWT0lEDQo+ICs7ICBXcml0ZVBDSVdvcmQgKA0KPiArOyAg ICBJTiAgIFVJTlQzMiAgICBwY2lfcmVnDQo+ICs7ICAgIElOICAgVUlOVDE2ICAgIGNmZ19kYXRh X3BvcnQNCj4gKzsgICAgSU4gICBVSU5UMTYgICAgd29yZF92YWx1ZQ0KPiArOyAgICApDQo+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBDSVdvcmQgUFJPQw0KPiArICAgIG1vdiBl YXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgN Cj4gKyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3Ag KyAxMl0gIDsgd29yZF92YWx1ZQ0KPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsgOF0g IDsgY2ZnX2RhdGFfcG9ydA0KPiArICAgIG91dCBkeCwgYXgNCj4gKw0KPiArICAgIHJldA0KPiAr V3JpdGVQQ0lXb3JkIEVORFANCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyAg Vk9JRA0KPiArOyAgV3JpdGVQQ0lEd29yZCAoDQo+ICs7ICAgIElOICAgVUlOVDMyCXBjaV9yZWcN Cj4gKzsgICAgSU4gICBVSU5UMTYJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gKzsgICAgSU4g ICBVSU5UMzIJZHdvcmRfdmFsdWUgICAgICAvLyByOA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICtXcml0ZVBDSUR3b3JkIFBST0MNCj4gKw0KPiArICAgIG1vdiBlYXgs IGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNpX3JlZw0KPiArICAgIG1vdiBkeCwgMENGOGgNCj4g KyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyAx Ml0gIDsgZHdvcmRfdmFsdWUNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7 IGNmZ19kYXRhX3BvcnQNCj4gKyAgICBvdXQgZHgsIGVheA0KPiArDQo+ICsgICAgcmV0DQo+ICtX cml0ZVBDSUR3b3JkIEVORFANCj4gKw0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICs7ICB1bnNpZ25lZCBjaGFyDQo+ICs7ICBSZWFkUENJQnl0ZSAoDQo+ICs7ICAgIHVuc2lnbmVk IGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdf ZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICtSZWFkUENJQnl0ZSBQUk9DDQo+ICsgICAgY2xpDQo+ICsgICAgbW92IGVheCwgZHdvcmQg cHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91 dCBkeCwgZWF4DQo+ICsNCj4gKyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICBtb3YgZWR4LCBkd29y ZCBwdHIgW2VzcCArIDhdICAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgaW4gIGFsLCBkeA0KPiAr ICAgIHN0aQ0KPiArDQo+ICsgICAgcmV0DQo+ICtSZWFkUENJQnl0ZSBFTkRQDQo+ICsNCj4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2lnbmVkIHNob3J0DQo+ICs7ICBSZWFkUENJ V29yZCAoDQo+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiAr OyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiArOyAgICApDQo+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtSZWFkUENJV29yZCBQUk9DDQo+ICsgICAgY2xp DQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ICsgICAg bW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBkeCwgZWF4DQo+ICsNCj4gKyAgICB4b3IgZWF4LCBl YXgNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICAgOyBjZmdfZGF0YV9wb3J0 DQo+ICsgICAgaW4gIGF4LCBkeA0KPiArICAgIHN0aQ0KPiArDQo+ICsgICAgcmV0DQo+ICtSZWFk UENJV29yZCBFTkRQDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgIHVuc2ln bmVkIGludA0KPiArOyAgUmVhZFBDSUR3b3JkICgNCj4gKzsgICAgdW5zaWduZWQgaW50CXBjaV9y ZWcgICAgICAgICAgLy8gcmN4DQo+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQg ICAgLy8gcmR4DQo+ICs7ICAgICkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK1JlYWRQ Q0lEd29yZCBQUk9DDQo+ICsgICAgY2xpDQo+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3Ag KyA0XSAgOyBwY2lfcmVnDQo+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiArICAgIG91dCBkeCwgZWF4 DQo+ICsNCj4gKyAgICB4b3IgZWF4LCBlYXgNCj4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2Vz cCArIDhdICAgOyBjZmdfZGF0YV9wb3J0DQo+ICsgICAgaW4gIGVheCwgZHgNCj4gKyAgICBzdGkN Cj4gKw0KPiArICAgIHJldA0KPiArUmVhZFBDSUR3b3JkIEVORFANCj4gKw0KPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiArOyAgdm9pZA0KPiArOyAgX3N3c21pICgNCj4gKzsgICAgdW5zaWdu ZWQgaW50CXNtaV9jb2RlX2RhdGEJLy8gcmN4DQo+ICs7ICAgIElOICAgVUlOVDMyCXJheF92YWx1 ZQkvLyByZHgNCj4gKzsgICAgSU4gICBVSU5UMzIJcmJ4X3ZhbHVlCS8vIHI4DQo+ICs7ICAgIElO ICAgVUlOVDMyCXJjeF92YWx1ZQkvLyByOQ0KPiArOyAgICBJTiAgIFVJTlQzMglyZHhfdmFsdWUJ Ly8gcjEwDQo+ICs7ICAgIElOICAgVUlOVDMyCXJzaV92YWx1ZQkvLyByMTENCj4gKzsgICAgSU4g ICBVSU5UMzIJcmRpX3ZhbHVlCS8vIHIxMg0KPiArOyAgICApDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICtfc3dzbWkgUFJPQw0KPiArICAgIHhvciBlYXgsIGVheA0KPiArICAgIHJldA0K PiArX3N3c21pIEVORFANCj4gKw0KPiArRU5EDQo+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGlj YXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxl LmMgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tDQo+IDMuNi44L1B5TW9kLTMu Ni44L01vZHVsZXMvZWRrMm1vZHVsZS5jDQo+IGluZGV4IDA1MDFhMmIuLjRkZDRiN2MgMTAwNjQ0 DQo+IC0tLSBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0z LjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUuYw0KPiArKysgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5 dGhvbi9QeXRob24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9lZGsybW9kdWxlLmMNCj4gQEAg LTMsNyArMyw3IEBADQo+ICAgICAgRGVyaXZlZCBmcm9tIHBvc2l4bW9kdWxlLmMgaW4gUHl0aG9u IDIuNy4yLg0KPiANCj4gICAgICBDb3B5cmlnaHQgKGMpIDIwMTUsIERhcnlsIE1jRGFuaWVsLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIx LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgICAgQ29w eXJpZ2h0IChjKSAyMDExIC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgICAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRl cmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlcg0KPiAgICAgIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgdGhhdCBhY2NvbXBhbmllcyB0 aGlzIGRpc3RyaWJ1dGlvbi4NCj4gICAgICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1h eSBiZSBmb3VuZCBhdA0KPiBAQCAtMjksNiArMjksNDUgQEANCj4gIGV4dGVybiAiQyIgew0KPiAg I2VuZGlmDQo+IA0KPiArI2lmIGRlZmluZWQoVUVGSV9NU1ZDXzMyKSB8fCBkZWZpbmVkKFVFRklf TVNWQ182NCkNCj4gKy8vDQo+ICsvLyBDSElQU0VDIGV4dGVuc2lvbiBmb3IgZWRrMiBtb2R1bGUg b2YgUHl0aG9uIDMuNi44DQo+ICsvLyBidWlsZCBzdXBwb3J0IGF2YWlsYWJsZSBmb3INCj4gKy8v IFZTIFRvb2wgY2hhaW5zIHg4NiBhbmQgeDY0IGJpdCBidWlsZHMgb25seS4NCj4gKy8vDQo+ICsg ICAgUHlUeXBlT2JqZWN0IEVmaUd1aWRUeXBlOw0KPiArDQo+ICsgIC8vIC0tIEFjY2VzcyB0byBD UFUgTVNScw0KPiArICBleHRlcm4gdm9pZCBfcmRtc3IoIHVuc2lnbmVkIGludCBtc3JfbnVtLCB1 bnNpZ25lZCBpbnQqIG1zcl9sbywgdW5zaWduZWQgaW50KiBtc3JfaGkgKTsNCj4gKyAgZXh0ZXJu IHZvaWQgX3dybXNyKCB1bnNpZ25lZCBpbnQgbXNyX251bSwgdW5zaWduZWQgaW50ICBtc3JfaGks IHVuc2lnbmVkIGludCAgbXNyX2xvICk7DQo+ICsgIGV4dGVybiB2b2lkIF9zd3NtaSggdW5zaWdu ZWQgaW50IHNtaV9jb2RlX2RhdGEsIHVuc2lnbmVkIGludCByYXhfdmFsdWUsIHVuc2lnbmVkIGlu dCByYnhfdmFsdWUsIHVuc2lnbmVkIGludCByY3hfdmFsdWUsDQo+IHVuc2lnbmVkIGludCByZHhf dmFsdWUsIHVuc2lnbmVkIGludCByc2lfdmFsdWUsIHVuc2lnbmVkIGludCByZGlfdmFsdWUgKTsN Cj4gKyAgZXh0ZXJuIHVuc2lnbmVkIGludCAgQXNtQ3B1aWRFeCggdW5zaWduZWQgaW50ICBSZWdp c3RlckluRWF4LCB1bnNpZ25lZCBpbnQgIFJlZ2lzdGVySW5FY3gsIHVuc2lnbmVkIGludCoNCj4g UmVnaXN0ZXJPdXRFYXgsIHVuc2lnbmVkIGludCogUmVnaXN0ZXJPdXRFYngsIHVuc2lnbmVkIGlu dCogUmVnaXN0ZXJPdXRFY3gsIHVuc2lnbmVkIGludCogUmVnaXN0ZXJPdXRFZHgpOw0KPiArICAv LyAtLSBBY2Nlc3MgdG8gUENJIENGRyBzcGFjZQ0KPiArICBleHRlcm4gdm9pZCBXcml0ZVBDSUJ5 dGUgICAgICAgICAgKCB1bnNpZ25lZCBpbnQgcGNpX3JlZywgdW5zaWduZWQgc2hvcnQgY2ZnX2Rh dGFfcG9ydCwgdW5zaWduZWQgY2hhciAgYnl0ZV92YWx1ZSApOw0KPiArICBleHRlcm4gdm9pZCBX cml0ZVBDSVdvcmQgICAgICAgICAgKCB1bnNpZ25lZCBpbnQgcGNpX3JlZywgdW5zaWduZWQgc2hv cnQgY2ZnX2RhdGFfcG9ydCwgdW5zaWduZWQgc2hvcnQgd29yZF92YWx1ZSApOw0KPiArICBleHRl cm4gdm9pZCBXcml0ZVBDSUR3b3JkICAgICAgICAgKCB1bnNpZ25lZCBpbnQgcGNpX3JlZywgdW5z aWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCwgdW5zaWduZWQgaW50ICAgZHdvcmRfdmFsdWUgKTsN Cj4gKyAgZXh0ZXJuIHVuc2lnbmVkIGNoYXIgIFJlYWRQQ0lCeXRlICggdW5zaWduZWQgaW50IHBj aV9yZWcsIHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3BvcnQgKTsNCj4gKyAgZXh0ZXJuIHVuc2ln bmVkIHNob3J0IFJlYWRQQ0lXb3JkICggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNo b3J0IGNmZ19kYXRhX3BvcnQgKTsNCj4gKyAgZXh0ZXJuIHVuc2lnbmVkIGludCAgIFJlYWRQQ0lE d29yZCggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNob3J0IGNmZ19kYXRhX3BvcnQg KTsNCj4gKyAgLy8gLS0gQWNjZXNzIHRvIFBvcnQgSS9PDQo+ICsgIGV4dGVybiB1bnNpZ25lZCBp bnQgICBSZWFkUG9ydER3b3JkICggdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gKyAgZXh0 ZXJuIHVuc2lnbmVkIHNob3J0IFJlYWRQb3J0V29yZCAgKCB1bnNpZ25lZCBzaG9ydCBwb3J0X251 bSApOw0KPiArICBleHRlcm4gdW5zaWduZWQgY2hhciAgUmVhZFBvcnRCeXRlICAoIHVuc2lnbmVk IHNob3J0IHBvcnRfbnVtICk7DQo+ICsgIGV4dGVybiB2b2lkICAgICAgICAgICBXcml0ZVBvcnRE d29yZCggdW5zaWduZWQgaW50ICAgb3V0X3ZhbHVlLCB1bnNpZ25lZCBzaG9ydCBwb3J0X251bSAp Ow0KPiArICBleHRlcm4gdm9pZCAgICAgICAgICAgV3JpdGVQb3J0V29yZCAoIHVuc2lnbmVkIHNo b3J0IG91dF92YWx1ZSwgdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gKyAgZXh0ZXJuIHZv aWQgICAgICAgICAgIFdyaXRlUG9ydEJ5dGUgKCB1bnNpZ25lZCBjaGFyICBvdXRfdmFsdWUsIHVu c2lnbmVkIHNob3J0IHBvcnRfbnVtICk7DQo+ICsgIC8vIC0tIEFjY2VzcyB0byBDUFUgRGVzY3Jp cHRvciB0YWJsZXMNCj4gKyAgZXh0ZXJuIHZvaWQgX3N0b3JlX2lkdHIoIHZvaWQqIGRlc2NfYWRk cmVzcyApOw0KPiArICBleHRlcm4gdm9pZCBfbG9hZF9pZHRyICggdm9pZCogZGVzY19hZGRyZXNz ICk7DQo+ICsgIGV4dGVybiB2b2lkIF9zdG9yZV9nZHRyKCB2b2lkKiBkZXNjX2FkZHJlc3MgKTsN Cj4gKyAgZXh0ZXJuIHZvaWQgX3N0b3JlX2xkdHIoIHZvaWQqIGRlc2NfYWRkcmVzcyApOw0KPiAr DQo+ICsgIC8vIC0tIFN1cHBvcnQgcm91dGluZXMNCj4gKyAgRUZJX1NUQVRVUyBHdWlkVG9TdHIo IElOIEVGSV9HVUlEICpndWlkLCBJTiBPVVQgVUlOVDggKnN0cl9idWZmZXIgKTsNCj4gKw0KPiAr I2VuZGlmDQo+ICsNCj4gKw0KPiAgUHlEb2NfU1RSVkFSKGVkazJfX2RvY19fLA0KPiAgICAgICAg ICAgICAgICJUaGlzIG1vZHVsZSBwcm92aWRlcyBhY2Nlc3MgdG8gVUVGSSBmaXJtd2FyZSBmdW5j dGlvbmFsaXR5IHRoYXQgaXNcblwNCj4gICAgICAgICAgICAgICBzdGFuZGFyZGl6ZWQgYnkgdGhl IEMgU3RhbmRhcmQgYW5kIHRoZSBQT1NJWCBzdGFuZGFyZCAoYSB0aGlubHlcblwNCj4gQEAgLTM3 ODQsNyArMzgyMyw3IEBAIGVkazJfdG1wbmFtKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbm9h cmdzKQ0KPiAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWZmZXIpOw0KPiAgfQ0K PiAgI2VuZGlmDQo+IC0jZW5kaWYNCj4gKyNlbmRpZg0KPiANCj4gIFB5RG9jX1NUUlZBUihlZGsy X2Fib3J0X19kb2NfXywNCj4gICJhYm9ydCgpIC0+IGRvZXMgbm90IHJldHVybiFcblxuXA0KPiBA QCAtMzgwMCw2ICszODM5LDUwOSBAQCBlZGsyX2Fib3J0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqbm9hcmdzKQ0KPiAgICAgIHJldHVybiBOVUxMOw0KPiAgfQ0KPiANCj4gKw0KPiArI2lmIGRl ZmluZWQoVUVGSV9NU1ZDXzMyKSB8fCBkZWZpbmVkKFVFRklfTVNWQ182NCkNCj4gKy8qY29kZSBt ZXJnZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlwc2VjL3RyZWUvbWFpbi9j aGlwc2VjX3Rvb2xzL2VkazIvUHl0aG9uRUZJICovDQo+ICsvKiAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjICAgIFNUQVJUICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAqLw0KPiArDQo+ ICt1bnNpZ25lZCBpbnQgUmVhZFBDSUNmZygNCj4gKyAgdW5zaWduZWQgY2hhciBidXMsDQo+ICsg IHVuc2lnbmVkIGNoYXIgZGV2LA0KPiArICB1bnNpZ25lZCBjaGFyIGZ1biwNCj4gKyAgdW5zaWdu ZWQgY2hhciBvZmYsDQo+ICsgIHVuc2lnbmVkIGNoYXIgbGVuIC8vIDEsIDIsIDQgYnl0ZXMNCj4g KyAgKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgcmVzdWx0ID0gMDsNCj4gKyAgdW5zaWduZWQg aW50IHBjaV9hZGRyID0gKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXYgPDwgMTEpIHwg KGZ1biA8PCA4KSB8IChvZmYgJiB+MykpOw0KPiArICB1bnNpZ25lZCBzaG9ydCBjZmdfZGF0YV9w b3J0ID0gKHVuc2lnbmVkIHNob3J0KSgweENGQyArICggb2ZmICYgMHgzICkpOw0KPiArICBpZiAg ICAgKCAxID09IGxlbiApIHJlc3VsdCA9IChSZWFkUENJQnl0ZSAoIHBjaV9hZGRyLCBjZmdfZGF0 YV9wb3J0ICkgJiAweEZGKTsNCj4gKyAgZWxzZSBpZiggMiA9PSBsZW4gKSByZXN1bHQgPSAoUmVh ZFBDSVdvcmQgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCApICYgMHhGRkZGKTsNCj4gKyAgZWxz ZSBpZiggNCA9PSBsZW4gKSByZXN1bHQgPSAgUmVhZFBDSUR3b3JkKCBwY2lfYWRkciwgY2ZnX2Rh dGFfcG9ydCApOw0KPiArICByZXR1cm4gcmVzdWx0Ow0KPiArfQ0KPiArDQo+ICt2b2lkIFdyaXRl UENJQ2ZnKA0KPiArICB1bnNpZ25lZCBjaGFyIGJ1cywNCj4gKyAgdW5zaWduZWQgY2hhciBkZXYs DQo+ICsgIHVuc2lnbmVkIGNoYXIgZnVuLA0KPiArICB1bnNpZ25lZCBjaGFyIG9mZiwNCj4gKyAg dW5zaWduZWQgY2hhciBsZW4sIC8vIDEsIDIsIDQgYnl0ZXMNCj4gKyAgdW5zaWduZWQgaW50IHZh bA0KPiArICApDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCBwY2lfYWRkciA9ICgweDgwMDAwMDAw IHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8IChmdW4gPDwgOCkgfCAob2ZmICYgfjMpKTsN Cj4gKyAgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCA9ICh1bnNpZ25lZCBzaG9ydCkoMHhD RkMgKyAoIG9mZiAmIDB4MyApKTsNCj4gKyAgaWYgICAgICggMSA9PSBsZW4gKSBXcml0ZVBDSUJ5 dGUgKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCwgKHVuc2lnbmVkIGNoYXIpKHZhbCYweEZGKSAp Ow0KPiArICBlbHNlIGlmKCAyID09IGxlbiApIFdyaXRlUENJV29yZCAoIHBjaV9hZGRyLCBjZmdf ZGF0YV9wb3J0LCAodW5zaWduZWQgc2hvcnQpKHZhbCYweEZGRkYpICk7DQo+ICsgIGVsc2UgaWYo IDQgPT0gbGVuICkgV3JpdGVQQ0lEd29yZCggcGNpX2FkZHIsIGNmZ19kYXRhX3BvcnQsIHZhbCAp Ow0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3JkbXNyX19kb2NfXywNCj4gKyJyZG1z cihlY3gpIC0+IChlYXgsZWR4KVxuXA0KPiArUmVhZCB0aGUgZ2l2ZW4gTVNSLiIpOw0KPiArDQo+ ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfcmRtc3IoUHlPYmplY3QgKnNlbGYsIFB5T2Jq ZWN0ICphcmdzKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgdmVjeCwgdmVheCwgdmVkeDsNCj4g KyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJIiwgJnZlY3gpKQ0KPiArICAgIHJldHVy biBOVUxMOw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIF9yZG1zciggdmVjeCwg JnZlYXgsICZ2ZWR4ICk7DQo+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ICsgIHJldHVybiBQ eV9CdWlsZFZhbHVlKCIoSUkpIiwgKHVuc2lnbmVkIGxvbmcpdmVheCwgKHVuc2lnbmVkIGxvbmcp dmVkeCk7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfd3Jtc3JfX2RvY19fLA0KPiAr IndybXNyKGVjeCwgZWF4LCBlZHgpIC0+IE5vbmVcblwNCj4gK1dyaXRlIGVkeDplYXggdG8gdGhl IGdpdmVuIE1TUi4iKTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3dybXNy KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50 IHZlY3gsIHZlYXgsIHZlZHg7DQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJ IiwgJnZlY3gsICZ2ZWF4LCAmdmVkeCkpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsgIFB5X0JF R0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgX3dybXNyKCB2ZWN4LCB2ZWR4LCB2ZWF4ICk7DQo+ICsg IFB5X0VORF9BTExPV19USFJFQURTDQo+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gKyAgcmV0 dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfc3dzbWlfX2RvY19f LA0KPiArInN3c21pKHNtaV9jb2RlX2RhdGEsIHJheF92YWx1ZSwgcmJ4X3ZhbHVlLCByY3hfdmFs dWUsIHJkeF92YWx1ZSwgcnNpX3ZhbHVlLCByZGlfdmFsdWUpIC0+IE5vbmVcblwNCj4gK1RyaWdn ZXJpbmcgU29mdHdhcmUgU01JIik7DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtwb3Np eF9zd3NtaShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2ln bmVkIGludCBzbWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVlLCBy ZHhfdmFsdWUsIHJzaV92YWx1ZSwgcmRpX3ZhbHVlOw0KPiArICBpZiAoIVB5QXJnX1BhcnNlKGFy Z3MsICIoSUlJSUlJSSkiLCAmc21pX2NvZGVfZGF0YSwgJnJheF92YWx1ZSwgJnJieF92YWx1ZSwg JnJjeF92YWx1ZSwgJnJkeF92YWx1ZSwgJnJzaV92YWx1ZSwNCj4gJnJkaV92YWx1ZSkpDQo+ICsg ICAgcmV0dXJuIE5VTEw7DQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gKyAgX3N3c21p KCBzbWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVlLCByZHhfdmFs dWUsIHJzaV92YWx1ZSwgcmRpX3ZhbHVlICk7DQo+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsN Cj4gK1B5RG9jX1NUUlZBUihlZmlfY3B1aWRfX2RvY19fLA0KPiArImNwdWlkKGVheCwgZWN4KSAt PiAoZWF4OmVieDplY3g6ZWR4KVxuXA0KPiArUmVhZCB0aGUgQ1BVSUQuIjspOw0KPiArDQo+ICtz dGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfY3B1aWQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKQ0KPiArew0KPiArCVVJTlQzMiBlYXgsIGVjeCwgcmF4X3ZhbHVlLCByYnhfdmFsdWUs IHJjeF92YWx1ZSwgcmR4X3ZhbHVlOw0KPiArICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdz LCAiSUkiLCAmZWF4LCAmZWN4KSkNCj4gKyAgICAgIHJldHVybiBOVUxMOw0KPiArCVB5X0JFR0lO X0FMTE9XX1RIUkVBRFMNCj4gKyAgICBBc21DcHVpZEV4KCBlYXgsIGVjeCwgJnJheF92YWx1ZSwg JnJieF92YWx1ZSwgJnJjeF92YWx1ZSwgJnJkeF92YWx1ZSk7DQo+ICsgICAgUHlfRU5EX0FMTE9X X1RIUkVBRFMNCj4gKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKElJSUkpKSIsICAodW5zaWdu ZWQgbG9uZylyYXhfdmFsdWUsICAodW5zaWduZWQgbG9uZylyYnhfdmFsdWUsICAodW5zaWduZWQg bG9uZylyY3hfdmFsdWUsDQo+ICh1bnNpZ25lZCBsb25nKXJkeF92YWx1ZSk7DQo+ICt9DQo+ICsN Cj4gK1B5RG9jX1NUUlZBUihlZmlfYWxsb2NwaHlzbWVtX19kb2NfXywNCj4gKyJhbGxvY3BoeXNt ZW0obGVuZ3RoLCBtYXhfcGEpIC0+ICh2YSlcblwNCj4gK1VzZSBtYWxsb2MgdG8gYWxsb2NhdGUg c3BhY2UgaW4gbWVtb3J5LiI7KTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4 X2FsbG9jcGh5c21lbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsJ dW5zaWduZWQgaW50IGxlbmd0aCwgbWF4X3BhOw0KPiArICAgIHZvaWQgKnZhOw0KPiArICAgIGlm ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUkiLCAmbGVuZ3RoLCAmbWF4X3BhKSkNCj4gKyAg ICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsJUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICAg IHZhID0gbWFsbG9jKGxlbmd0aCk7DQo+ICsgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0K PiArICAgIC8vIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSykiLCAgKHVuc2lnbmVkIGxvbmcpdmEp Ow0KPiArICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSSkiLCAgKHVuc2lnbmVkIGxvbmcpdmEp Ow0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoZWZpX3JlYWRpb19fZG9jX18sDQo+ICsicmVh ZGlvKGFkZHIsIHNpemUpIC0+IChpbnQpXG5cDQo+ICtSZWFkIHRoZSB2YWx1ZSAoc2l6ZSA9PSAx LCAyLCBvciA0IGJ5dGVzKSBvZiB0aGUgc3BlY2lmaWVkIElPIHBvcnQuIik7DQo+ICsNCj4gK3N0 YXRpYyBQeU9iamVjdCAqDQo+ICtwb3NpeF9yZWFkaW8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgYWRkciwgc3osIHJlc3VsdDsNCj4gKyAg c2hvcnQgYWRkcnM7DQo+ICsNCj4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSSIs ICZhZGRyLCAmc3opKQ0KPiArICAgIHJldHVybiBOVUxMOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FM TE9XX1RIUkVBRFMNCj4gKyAgcmVzdWx0ID0gMDsNCj4gKyAgYWRkcnMgPSAoc2hvcnQpKGFkZHIg JiAweGZmZmYpOw0KPiArICBpZiAgICAgKCAxID09IHN6ICkgcmVzdWx0ID0gKFJlYWRQb3J0Qnl0 ZSggYWRkcnMgKSAmIDB4RkYpOw0KPiArICBlbHNlIGlmKCAyID09IHN6ICkgcmVzdWx0ID0gKFJl YWRQb3J0V29yZCggYWRkcnMgKSAmIDB4RkZGRik7DQo+ICsgIGVsc2UgaWYoIDQgPT0gc3ogKSBy ZXN1bHQgPSBSZWFkUG9ydER3b3JkKCBhZGRycyApOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFE Uw0KPiArICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoKHVuc2lnbmVkIGxvbmcpcmVz dWx0KTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cml0ZWlvX19kb2NfXywNCj4g KyJ3cml0ZWlvKGFkZHIsIHNpemUsIHZhbHVlKSAtPiBOb25lXG5cDQo+ICtXcml0ZSB0aGUgdmFs dWUgKHNpemUgPT0gMSwgMiwgb3IgNCBieXRlcykgb2YgdGhlIHNwZWNpZmllZCBJTyBwb3J0LiIp Ow0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9zaXhfd3JpdGVpbyhQeU9iamVjdCAq c2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCBhZGRyLCBzeiwg dmFsdWU7DQo+ICsgIHNob3J0IGFkZHJzOw0KPiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBs ZShhcmdzLCAiSUlJIiwgJmFkZHIsICZzeiwgJnZhbHVlKSkNCj4gKyAgICByZXR1cm4gTlVMTDsN Cj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgIGFkZHJzID0gKHNob3J0KShh ZGRyICYgMHhmZmZmKTsNCj4gKyAgaWYgICAgICggMSA9PSBzeiApIFdyaXRlUG9ydEJ5dGUgKCAo dW5zaWduZWQgY2hhcikodmFsdWUmMHhGRiksIGFkZHJzICk7DQo+ICsgIGVsc2UgaWYoIDIgPT0g c3ogKSBXcml0ZVBvcnRXb3JkICggKHVuc2lnbmVkIHNob3J0KSh2YWx1ZSYweEZGRkYpLCBhZGRy cyApOw0KPiArICBlbHNlIGlmKCA0ID09IHN6ICkgV3JpdGVQb3J0RHdvcmQoIHZhbHVlLCBhZGRy cyApOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIFB5X0lOQ1JFRihQeV9O b25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihl ZmlfcmVhZHBjaV9fZG9jX18sDQo+ICsicmVhZHBjaShidXMsZGV2LGZ1bmMsYWRkcixzaXplKSAt PiAoaW50KVxuXA0KPiArUmVhZCB0aGUgdmFsdWUgKHNpemUgPT0gMSwgMiwgb3IgNCBieXRlcykg b2YgdGhlIHNwZWNpZmllZCBQQ0kgYi9kL2YuIik7DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAq DQo+ICtwb3NpeF9yZWFkcGNpKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sN Cj4gKyAgdW5zaWduZWQgaW50IGJ1cywgZGV2LCBmdW5jLCBhZGRyLCBzeiwgcmVzdWx0Ow0KPiAr DQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJSUkiLCAmYnVzLCAmZGV2LCAm ZnVuYywgJmFkZHIsICZzeikpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgUHlfQkVH SU5fQUxMT1dfVEhSRUFEUw0KPiArICByZXN1bHQgPSBSZWFkUENJQ2ZnKCBidXMsIGRldiwgZnVu YywgYWRkciwgc3ogKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICByZXR1 cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoKHVuc2lnbmVkIGxvbmcpcmVzdWx0KTsNCj4gK30N Cj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cml0ZXBjaV9fZG9jX18sDQo+ICsid3JpdGVwY2ko YnVzLGRldixmdW5jLGFkZHIsdmFsdWUsbGVuKSAtPiBOb25lXG5cDQo+ICtXcml0ZSB0aGUgdmFs dWUgdG8gdGhlIHNwZWNpZmllZCBQQ0kgYi9kL2YuICBMZW4gaXMgdmFsdWUgc2l6ZSAoZWl0aGVy IDEsIDIsIG9yIDQgYnl0ZXMpLiIpOw0KPiArDQo+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiArcG9z aXhfd3JpdGVwY2koUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICB1 bnNpZ25lZCBpbnQgYnVzLCBkZXYsIGZ1bmMsIGFkZHIsIHZhbCwgbGVuOw0KPiArDQo+ICsgIGlm ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJSUlJIiwgJmJ1cywgJmRldiwgJmZ1bmMsICZh ZGRyLCAmdmFsLCAmbGVuKSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArICBQeV9CRUdJ Tl9BTExPV19USFJFQURTDQo+ICsgIFdyaXRlUENJQ2ZnKCBidXMsIGRldiwgZnVuYywgYWRkciwg bGVuLCB2YWwgKTsNCj4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBQeV9JTkNS RUYoUHlfTm9uZSk7DQo+ICsgIHJldHVybiBQeV9Ob25lOw0KPiArfQ0KPiArDQo+ICtQeURvY19T VFJWQVIoZWZpX3JlYWRtZW1fX2RvY19fLA0KPiArInJlYWRtZW0oYWRkcl9sbywgYWRkcl9oaSwg bGVuKSAtPiBCeXRlU3RyaW5nXG5cDQo+ICtSZWFkIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVzcy4i KTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3JlYWRtZW0oUHlPYmplY3Qg KnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICBQeU9iamVjdCAgKmRhdGE7DQo+ICsg IFVJTlQzMiAgICAgYWRkcl9sbywgYWRkcl9oaTsNCj4gKyAgY2hhciAgICAgICpidWZmZXIsICpj YnVmZmVyLCAqYWRkcjsNCj4gKyAgaW50ICAgICAgICBsZW4sIGluZGV4Ow0KPiArDQo+ICsgIGlm ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJmFkZHJfbG8sICZhZGRyX2hpLCAmbGVu KSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArI2lmZGVmIE1ERV9DUFVfWDY0DQo+ICsg IGFkZHIgPSAodW5zaWduZWQgY2hhciopKChVSU5UNjQpYWRkcl9sbyB8ICgoVUlOVDY0KWFkZHJf aGkgPDwgMzIpKTsNCj4gKyNlbHNlDQo+ICsgIGFkZHIgPSAodW5zaWduZWQgY2hhciopYWRkcl9s bzsNCj4gKyNlbmRpZg0KPiArDQo+ICsgIGJ1ZmZlciA9IG1hbGxvYyhsZW4pOw0KPiArICBpZiAo YnVmZmVyID09IE5VTEwpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgY2J1ZmZlciA9 IGJ1ZmZlcjsNCj4gKyAgaW5kZXggPSBsZW47DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhS RUFEUw0KPiArDQo+ICsgIHdoaWxlKGluZGV4LS0pew0KPiArICAgICpjYnVmZmVyID0gKmFkZHI7 DQo+ICsgICAgY2J1ZmZlcisrOw0KPiArICAgIGFkZHIrKzsNCj4gKyAgfQ0KPiArDQo+ICsgIFB5 X0VORF9BTExPV19USFJFQURTDQo+ICsNCj4gKyAgZGF0YSA9IFB5X0J1aWxkVmFsdWUoInkjIiwg YnVmZmVyLCBsZW4pOw0KPiArICBmcmVlKGJ1ZmZlcik7DQo+ICsNCj4gKyAgcmV0dXJuIGRhdGE7 DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihlZmlfcmVhZG1lbV9kd29yZF9fZG9jX18sDQo+ ICsicmVhZG1lbV9kd29yZChhZGRyX2xvLCBhZGRyX2hpKSAtPiAoaW50MzIpXG5cDQo+ICtSZWFk IHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVzcyBhbmQgcmV0dXJuIDMyLWJpdCB2YWx1ZS4iKTsNCj4g Kw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3JlYWRtZW1fZHdvcmQoUHlPYmplY3Qg KnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiArew0KPiArICB1bnNpZ25lZCBpbnQgcmVzdWx0LCAq YWRkcjsNCj4gKyAgVUlOVDMyIGFkZHJfbG8sIGFkZHJfaGk7DQo+ICsNCj4gKyAgaWYgKCFQeUFy Z19QYXJzZVR1cGxlKGFyZ3MsICJJSSIsICZhZGRyX2xvLCAmYWRkcl9oaSkpDQo+ICsgICAgcmV0 dXJuIE5VTEw7DQo+ICsNCj4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiArICBhZGRyID0gKHVuc2ln bmVkIGludCopKChVSU5UNjQpYWRkcl9sbyB8ICgoVUlOVDY0KWFkZHJfaGkgPDwgMzIpKTsNCj4g KyNlbHNlDQo+ICsgIGFkZHIgPSAodW5zaWduZWQgaW50KilhZGRyX2xvOw0KPiArI2VuZGlmDQo+ ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICByZXN1bHQgPSAqYWRkcjsNCj4g KyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICByZXR1cm4gUHlMb25nX0Zyb21VbnNp Z25lZExvbmcoKHVuc2lnbmVkIGxvbmcpcmVzdWx0KTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RS VkFSKGVmaV93cml0ZW1lbV9fZG9jX18sDQo+ICsid3JpdGVtZW0oYWRkcl9sbywgYWRkcl9oaSwg YnVmLCBsZW4pIC0+IE5vbmVcblwNCj4gK1dyaXRlIHRoZSBidWYgKFB5U3RyaW5nKSB0byB0aGUg Z2l2ZW4gbWVtb3J5IGFkZHJlc3MuIik7DQo+ICsNCj4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ICtw b3NpeF93cml0ZW1lbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsg IGNoYXIgKmJ1ZiwgKmFkZHI7DQo+ICsgIGludCBsZW47DQo+ICsgIFVJTlQzMiBhZGRyX2xvLCBh ZGRyX2hpOw0KPiArDQo+ICsgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlzIyIsICZh ZGRyX2xvLCAmYWRkcl9oaSwgJmJ1ZiwgJmxlbikpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsN Cj4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiArICBhZGRyID0gKHVuc2lnbmVkIGNoYXIqKSgoVUlO VDY0KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ICsjZWxzZQ0KPiArICBh ZGRyID0gKHVuc2lnbmVkIGNoYXIqKWFkZHJfbG87DQo+ICsjZW5kaWYNCj4gKw0KPiArICBQeV9C RUdJTl9BTExPV19USFJFQURTDQo+ICsgIHdoaWxlKGxlbi0tKXsNCj4gKyAgICAqYWRkciA9ICpi dWY7DQo+ICsgICAgYnVmKys7DQo+ICsgICAgYWRkcisrOw0KPiArICB9DQo+ICsgIFB5X0VORF9B TExPV19USFJFQURTDQo+ICsNCj4gKyAgUHlfSU5DUkVGKFB5X05vbmUpOw0KPiArICByZXR1cm4g UHlfTm9uZTsNCj4gK30NCj4gKw0KPiArUHlEb2NfU1RSVkFSKGVmaV93cml0ZW1lbV9kd29yZF9f ZG9jX18sDQo+ICsid3JpdGVtZW1fZHdvcmQoYWRkcl9sbywgYWRkcl9oaSwgdmFsKSAtPiBOb25l XG5cDQo+ICtXcml0ZSB0aGUgMzItYml0IHZhbHVlIHRvIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVz cy4iKTsNCj4gKw0KPiArc3RhdGljIFB5T2JqZWN0ICoNCj4gK3Bvc2l4X3dyaXRlbWVtX2R3b3Jk KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgdW5zaWduZWQgaW50 ICphZGRyLCB2YWw7DQo+ICsgIFVJTlQzMiBhZGRyX2xvLCBhZGRyX2hpOw0KPiArDQo+ICsgIGlm ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUlJIiwgJmFkZHJfbG8sICZhZGRyX2hpLCAmdmFs KSkNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKw0KPiArI2lmZGVmIE1ERV9DUFVfWDY0DQo+ICsg IGFkZHIgPSAodW5zaWduZWQgaW50KikoKFVJTlQ2NClhZGRyX2xvIHwgKChVSU5UNjQpYWRkcl9o aSA8PCAzMikpOw0KPiArI2Vsc2UNCj4gKyAgYWRkciA9ICh1bnNpZ25lZCBpbnQqKWFkZHJfbG87 DQo+ICsjZW5kaWYNCj4gKw0KPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ICsgICphZGRy ID0gdmFsOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIFB5X0lOQ1JFRihQ eV9Ob25lKTsNCj4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZB UihNaXNjUlRfR2V0VmFyaWFibGVfX2RvY19fLA0KPiArIihTdGF0dXMsIEF0dHJpYnV0ZXMsIERh dGEsIERhdGFTaXplKSA9IEdldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgR1VJRCwgRGF0YVNpemUp XG5cblwNCj4gK1JldHVybnMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuIik7DQo+ICsNCj4gK3N0 YXRpYw0KPiArUHlPYmplY3QgKg0KPiArTWlzY1JUX0dldFZhcmlhYmxlKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncykNCj4gK3sNCj4gKyAgUHlPYmplY3QgICAgICpkYXRhX291dDsNCj4g KyAgQ0hBUjE2ICAgICAgICpWYXJpYWJsZU5hbWU7DQo+ICsgIEVGSV9HVUlEICAgICAgVmVuZG9y R3VpZDsNCj4gKyAgVUlOVDMyICAgICAgICBHdWlkU2l6ZTsNCj4gKyAgVUlOVDMyICAgICAgICBB dHRyaWJ1dGVzOw0KPiArICBVSU5UNjQgICAgICAgIERhdGFTaXplOw0KPiArICBjaGFyICAgICAg ICAgKkRhdGE7DQo+ICsgIGNvbnN0IENIQVIxNiAqR3VpZEluOw0KPiArICBFRklfU1RBVFVTICAg IFN0YXR1czsNCj4gKw0KPiArICBpZighUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidXUjSyIsICZW YXJpYWJsZU5hbWUsICZHdWlkSW4sICZHdWlkU2l6ZSwgJkRhdGFTaXplKSkNCj4gKyAgew0KPiAr ICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ICsNCj4gKyAgU3RyVG9HdWlkKEd1aWRJbiwgJlZl bmRvckd1aWQpOw0KPiArDQo+ICsgIERhdGEgPSBtYWxsb2MoRGF0YVNpemUpOw0KPiArICBpZiAo IURhdGEpDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhS RUFEUw0KPiArICBTdGF0dXMgPSBnUlQtPkdldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgJlZlbmRv ckd1aWQsICZBdHRyaWJ1dGVzLCAoVUlOVE4gKikmRGF0YVNpemUsICh2b2lkKilEYXRhKTsNCj4g KyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gKw0KPiArICBkYXRhX291dCA9IFB5X0J1aWxkVmFs dWUoIihJSXkjSykiLCAoVUlOVDMyKVN0YXR1cywgQXR0cmlidXRlcywgRGF0YSwgRGF0YVNpemUs IERhdGFTaXplKTsNCj4gKyAgZnJlZShEYXRhKTsNCj4gKw0KPiArICByZXR1cm4gZGF0YV9vdXQ7 DQo+ICt9DQo+ICsNCj4gK1B5RG9jX1NUUlZBUihNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZV9f ZG9jX18sDQo+ICsiKFN0YXR1cywgVmFyaWFibGVOYW1lU2l6ZSwgVmFyaWFibGVOYW1lLCBWZW5k b3JHdWlkKSA9IEdldE5leHRWYXJpYWJsZU5hbWUoTmFtZVNpemUsIFZhcmlhYmxlTmFtZSwgR1VJ RClcblxuXA0KPiArRW51bWVyYXRlcyB0aGUgY3VycmVudCB2YXJpYWJsZSBuYW1lcy4iKTsNCj4g Kw0KPiArc3RhdGljDQo+ICtQeU9iamVjdCAqDQo+ICtNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFt ZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ICsgIFVJTlQ2NCAgICAg ICAgTmFtZVNpemU7DQo+ICsgIENIQVIxNiAgICAgICAqVmFyaWFibGVOYW1lLCAqTmFtZUluOw0K PiArICBVSU5UMzIgICAgICAgIEd1aWRTaXplLCBWYXJpYWJsZU5hbWVTaXplLCBpOw0KPiArICBF RklfR1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiAr ICBjb25zdCBjaGFyICAgKkd1aWRJbjsNCj4gKyAgY2hhciAgICAgICAgICpWZW5kb3JHdWlkUHRy LCAqR3VpZE91dFszN107DQo+ICsNCj4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIkt5 I3MjIiwgJk5hbWVTaXplLCAmTmFtZUluLCAmVmFyaWFibGVOYW1lU2l6ZSwgJkd1aWRJbiwgJkd1 aWRTaXplKSkNCj4gKyAgew0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ICsNCj4gKyAg VmVuZG9yR3VpZFB0ciA9IChjaGFyICopJlZlbmRvckd1aWQ7DQo+ICsgIGZvciAoaT0wOyBpPHNp emVvZihWZW5kb3JHdWlkKTsgaSsrKQ0KPiArICAgIFZlbmRvckd1aWRQdHJbaV0gPSBHdWlkSW5b aV07DQo+ICsNCj4gKyAgZm9yIChpPTA7IGk8TmFtZVNpemUgJiYgTmFtZUluW2ldICE9IChDSEFS MTYpMDsgaSsrKQ0KPiArICAgIFZhcmlhYmxlTmFtZVtpXSA9IE5hbWVJbltpXTsNCj4gKyAgVmFy aWFibGVOYW1lW2ldID0gTmFtZUluW2ldOw0KPiArDQo+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVB RFMNCj4gKyAgU3RhdHVzID0gZ1JULT5HZXROZXh0VmFyaWFibGVOYW1lKChVSU5UTiAqKSZOYW1l U2l6ZSwgKENIQVIxNiAqKVZhcmlhYmxlTmFtZSwgJlZlbmRvckd1aWQpOw0KPiArICBQeV9FTkRf QUxMT1dfVEhSRUFEUw0KPiArDQo+ICsgIEd1aWRUb1N0cigoRUZJX0dVSUQgKikmVmVuZG9yR3Vp ZCwgKFVJTlQ4ICopR3VpZE91dCk7DQo+ICsNCj4gKyAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJ dUtzKSIsIChVSU5UMzIpIFN0YXR1cywgVmFyaWFibGVOYW1lLCBOYW1lU2l6ZSwgJkd1aWRPdXQp Ow0KPiArfQ0KPiArDQo+ICtQeURvY19TVFJWQVIoTWlzY1JUX1NldFZhcmlhYmxlX19kb2NfXywN Cj4gKyIoU3RhdHVzLCBEYXRhU2l6ZSwgR1VJRCkgPSBTZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUs IEdVSUQsIEF0dHJpYnV0ZXMsIERhdGEsIERhdGFTaXplKVxuXG5cDQo+ICtTZXRzIHRoZSB2YWx1 ZSBvZiBhIHZhcmlhYmxlLiIpOw0KPiArDQo+ICtzdGF0aWMNCj4gK1B5T2JqZWN0ICoNCj4gK01p c2NSVF9TZXRWYXJpYWJsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ICt7DQo+ ICsgIENIQVIxNiAgICAgICAqVmFyaWFibGVOYW1lOw0KPiArICBVSU5UNjQgICAgICAgIERhdGFT aXplOw0KPiArICBjaGFyICAgICAgICAgKkRhdGEsICpndWlkcHRyLCAqVmVuZG9yR3VpZFB0cjsN Cj4gKyAgY2hhciAgICAgICAgICpHdWlkT3V0WzM3XTsNCj4gKyAgRUZJX1NUQVRVUyAgICBTdGF0 dXM7DQo+ICsgIEVGSV9HVUlEICAgICAgVmVuZG9yR3VpZDsNCj4gKyAgVUlOVDMyICAgICAgICBB dHRyaWJ1dGVzOw0KPiArICBVSU5UMzIgICAgICAgIEd1aWRTaXplLCBzdHJEYXRhU2l6ZTsNCj4g KyAgY29uc3QgQ0hBUjE2ICpHdWlkSW47DQo+ICsNCj4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUo YXJncywgInV1I0lzI0kiLCAmVmFyaWFibGVOYW1lLCAmR3VpZEluLCAmR3VpZFNpemUsICZBdHRy aWJ1dGVzLCAmRGF0YSwgJnN0ckRhdGFTaXplLCAmRGF0YVNpemUpKQ0KPiArICB7DQo+ICsgICAg cmV0dXJuIE5VTEw7DQo+ICsgIH0NCj4gKw0KPiArICBTdHJUb0d1aWQoR3VpZEluLCAmVmVuZG9y R3VpZCk7DQo+ICsNCj4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiArICBTdGF0dXMgPSBn UlQtPlNldFZhcmlhYmxlKFZhcmlhYmxlTmFtZSwgJlZlbmRvckd1aWQsIEF0dHJpYnV0ZXMsIChV SU5UTilEYXRhU2l6ZSwgKHZvaWQqKURhdGEpOw0KPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0K PiArDQo+ICsgIEd1aWRUb1N0cigoRUZJX0dVSUQgKikmVmVuZG9yR3VpZCwgKFVJTlQ4ICopR3Vp ZE91dCk7DQo+ICsNCj4gKy8vICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJS3UjKSIsIChVSU5U MzIpIFN0YXR1cywgRGF0YVNpemUsICZWZW5kb3JHdWlkLCBzaXplb2YoVmVuZG9yR3VpZCkpOw0K PiArICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKElLcykiLCAoVUlOVDMyKSBTdGF0dXMsIERhdGFT aXplLCAmR3VpZE91dCk7DQo+ICt9DQo+ICsNCj4gKw0KPiArDQo+ICtFRklfU1RBVFVTDQo+ICtH dWlkVG9TdHIgKA0KPiArICBJTiBFRklfR1VJRCAgKmd1aWQsDQo+ICsgIElOIE9VVCBVSU5UOCAq c3RyX2J1ZmZlcg0KPiArICApDQo+ICsvKisrDQo+ICsNCj4gK1JvdXRpbmUgRGVzY3JpcHRpb246 DQo+ICsgIFRoaXMgZnVuY3Rpb24gcHJpbnRzIGEgR1VJRCB0byBhIGJ1ZmZlcg0KPiArDQo+ICtB cmd1bWVudHM6DQo+ICsgIGd1aWQgICAgICAgLSBQb2ludGVyIHRvIGEgR1VJRA0KPiArICBzdHJf YnVmZmVyIC0gUG9pbnRlciB0byBhIHN0ciBidWZmZXINCj4gKw0KPiArUmV0dXJuczoNCj4gKyAg RUZJX1NVQ0NFU1MgICAgICAgICAgICBHVUlEIHdhcyBwcmludGVkDQo+ICsgIEVGSV9JTlZBTElE X1BBUkFNRVRFUiAgR1VJRCB3YXMgTlVMTA0KPiArDQo+ICstLSovDQo+ICt7DQo+ICsgIGlmIChn dWlkID09IE5VTEwpIHsNCj4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAr ICB9DQo+ICsNCj4gKyAgc3ByaW50ZiAoDQo+ICsgICAgKENIQVI4ICopc3RyX2J1ZmZlciwNCj4g KyAgICAiJTA4WC0lMDRYLSUwNFgtJTAyWCUwMlgtJTAyWCUwMlglMDJYJTAyWCUwMlglMDJYIiwN Cj4gKyAgICAodW5zaWduZWQpIGd1aWQtPkRhdGExLA0KPiArICAgIGd1aWQtPkRhdGEyLA0KPiAr ICAgIGd1aWQtPkRhdGEzLA0KPiArICAgIGd1aWQtPkRhdGE0WzBdLA0KPiArICAgIGd1aWQtPkRh dGE0WzFdLA0KPiArICAgIGd1aWQtPkRhdGE0WzJdLA0KPiArICAgIGd1aWQtPkRhdGE0WzNdLA0K PiArICAgIGd1aWQtPkRhdGE0WzRdLA0KPiArICAgIGd1aWQtPkRhdGE0WzVdLA0KPiArICAgIGd1 aWQtPkRhdGE0WzZdLA0KPiArICAgIGd1aWQtPkRhdGE0WzddDQo+ICsgICAgKTsNCj4gKw0KPiAr ICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKw0KPiArDQo+ICsvKmNvZGUgbWVy Z2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy90cmVlL21haW4vY2hp cHNlY190b29scy9lZGsyL1B5dGhvbkVGSSAqLw0KPiArLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyAgICAgRU5EICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgKi8NCj4gKyNlbmRp Zg0KPiArDQo+ICsNCj4gIHN0YXRpYyBQeU1ldGhvZERlZiBlZGsyX21ldGhvZHNbXSA9IHsNCj4g ICAgICB7ImFjY2VzcyIsICAgICAgICAgIGVkazJfYWNjZXNzLCAgICAgTUVUSF9WQVJBUkdTLCBl ZGsyX2FjY2Vzc19fZG9jX199LA0KPiAgI2lmZGVmIEhBVkVfVFRZTkFNRQ0KPiBAQCAtNDA0NCw3 ICs0NTg2LDcgQEAgc3RhdGljIFB5TWV0aG9kRGVmIGVkazJfbWV0aG9kc1tdID0gew0KPiAgI2lm ZGVmIEhBVkVfVE1QTkFNDQo+ICAgICAgeyJ0bXBuYW0iLCAgICAgICAgICBlZGsyX3RtcG5hbSwg ICAgIE1FVEhfTk9BUkdTLCAgZWRrMl90bXBuYW1fX2RvY19ffSwNCj4gICNlbmRpZg0KPiAtI2Vu ZGlmDQo+ICsjZW5kaWYNCj4gICNpZmRlZiBIQVZFX0NPTkZTVFINCj4gICAgICB7ImNvbmZzdHIi LCAgICAgICAgIGVkazJfY29uZnN0ciwgTUVUSF9WQVJBUkdTLCBlZGsyX2NvbmZzdHJfX2RvY19f fSwNCj4gICNlbmRpZg0KPiBAQCAtNDA1OCw2ICs0NjAwLDI2IEBAIHN0YXRpYyBQeU1ldGhvZERl ZiBlZGsyX21ldGhvZHNbXSA9IHsNCj4gICAgICB7InBhdGhjb25mIiwgICAgICAgIGVkazJfcGF0 aGNvbmYsIE1FVEhfVkFSQVJHUywgZWRrMl9wYXRoY29uZl9fZG9jX199LA0KPiAgI2VuZGlmDQo+ ICAgICAgeyJhYm9ydCIsICAgICAgICAgICBlZGsyX2Fib3J0LCAgICAgIE1FVEhfTk9BUkdTLCAg ZWRrMl9hYm9ydF9fZG9jX199LA0KPiArDQo+ICsjaWYgZGVmaW5lZChVRUZJX01TVkNfMzIpIHx8 IGRlZmluZWQoVUVGSV9NU1ZDXzY0KQ0KPiArICAgIHsicmRtc3IiLCAgICAgICAgICAgICAgIHBv c2l4X3JkbXNyLCAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfcmRtc3JfX2RvY19f fSwNCj4gKyAgICB7IndybXNyIiwgICAgICAgICAgICAgICBwb3NpeF93cm1zciwgICAgICAgICAg ICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dybXNyX19kb2NfX30sDQo+ICsgICAgeyJyZWFkcGNp IiwgICAgICAgICAgICAgcG9zaXhfcmVhZHBjaSwgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1Ms IGVmaV9yZWFkcGNpX19kb2NfX30sDQo+ICsgICAgeyJ3cml0ZXBjaSIsICAgICAgICAgICAgcG9z aXhfd3JpdGVwY2ksICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV93cml0ZXBjaV9fZG9j X199LA0KPiArICAgIHsicmVhZG1lbSIsICAgICAgICAgICAgIHBvc2l4X3JlYWRtZW0sICAgICAg ICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfcmVhZG1lbV9fZG9jX199LA0KPiArICAgIHsicmVh ZG1lbV9kd29yZCIsICAgICAgIHBvc2l4X3JlYWRtZW1fZHdvcmQsICAgICAgICAgTUVUSF9WQVJB UkdTLCBlZmlfcmVhZG1lbV9kd29yZF9fZG9jX199LA0KPiArICAgIHsid3JpdGVtZW0iLCAgICAg ICAgICAgIHBvc2l4X3dyaXRlbWVtLCAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3Jp dGVtZW1fX2RvY19ffSwNCj4gKyAgICB7IndyaXRlbWVtX2R3b3JkIiwgICAgICBwb3NpeF93cml0 ZW1lbV9kd29yZCwgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3dyaXRlbWVtX2R3b3JkX19kb2Nf X30sDQo+ICsgICAgeyJ3cml0ZWlvIiwgICAgICAgICAgICAgcG9zaXhfd3JpdGVpbywgICAgICAg ICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV93cml0ZWlvX19kb2NfX30sDQo+ICsgICAgeyJyZWFk aW8iLCAgICAgICAgICAgICAgcG9zaXhfcmVhZGlvLCAgICAgICAgICAgICAgICBNRVRIX1ZBUkFS R1MsIGVmaV9yZWFkaW9fX2RvY19ffSwNCj4gKyAgICB7InN3c21pIiwgICAgICAgICAgICAgICBw b3NpeF9zd3NtaSwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX3N3c21pX19kb2Nf X30sDQo+ICsgICAgeyJhbGxvY3BoeXNtZW0iLCAgICAgICAgcG9zaXhfYWxsb2NwaHlzbWVtLCAg ICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9hbGxvY3BoeXNtZW1fX2RvY19ffSwNCj4gKyAgICB7 ImNwdWlkIiwgICAgICAgICAgICAgICBwb3NpeF9jcHVpZCwgICAgICAgICAgICAgICAgIE1FVEhf VkFSQVJHUywgZWZpX2NwdWlkX19kb2NfX30sDQo+ICsgICAgeyJHZXRWYXJpYWJsZSIsICAgICAg ICAgTWlzY1JUX0dldFZhcmlhYmxlLCAgICAgICAgICBNRVRIX1ZBUkFSR1MsIE1pc2NSVF9HZXRW YXJpYWJsZV9fZG9jX199LA0KPiArICAgIHsiR2V0TmV4dFZhcmlhYmxlTmFtZSIsIE1pc2NSVF9H ZXROZXh0VmFyaWFibGVOYW1lLCAgTUVUSF9WQVJBUkdTLCBNaXNjUlRfR2V0TmV4dFZhcmlhYmxl TmFtZV9fZG9jX199LA0KPiArICAgIHsiU2V0VmFyaWFibGUiLCAgICAgICAgIE1pc2NSVF9TZXRW YXJpYWJsZSwgICAgICAgICAgTUVUSF9WQVJBUkdTLCBNaXNjUlRfU2V0VmFyaWFibGVfX2RvY19f fSwNCj4gKyNlbmRpZg0KPiArDQo+ICAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAg ICAgICAgIC8qIFNlbnRpbmVsICovDQo+ICB9Ow0KPiANCj4gZGlmZiAtLWdpdCBhL0FwcFBrZy9B cHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeXRob24zNjguaW5mIGIvQXBwUGtnL0Fw cGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5dGhvbjM2OC5pbmYNCj4gaW5kZXggMTIx ZDRhOS4uZDNjY2I2YSAxMDA2NDQNCj4gLS0tIGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24v UHl0aG9uLTMuNi44L1B5dGhvbjM2OC5pbmYNCj4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9Q eXRob24vUHl0aG9uLTMuNi44L1B5dGhvbjM2OC5pbmYNCj4gQEAgLTE0LDcgKzE0LDcgQEANCj4g DQo+ICBbRGVmaW5lc10NCj4gICAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgID0gMHgwMDAx MDAxNg0KPiAtICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgPSBQeXRob24NCj4gKyAgQkFT RV9OQU1FICAgICAgICAgICAgICAgICAgID0gUHl0aG9uDQo+ICAgIEZJTEVfR1VJRCAgICAgICAg ICAgICAgICAgICA9IDlEQTMwRTk4LTA5NEMtNEZGMC05NENCLTgxQzEwRTY5Rjc1MA0KPiAgICBN T0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgPSBVRUZJX0FQUExJQ0FUSU9ODQo+ICAgIFZFUlNJ T05fU1RSSU5HICAgICAgICAgICAgICA9IDAuMQ0KPiBAQCAtMjAxLDggKzIwMSw4IEBADQo+ICAg IE1vZHVsZXMvX2JsYWtlMi9ibGFrZTJiX2ltcGwuYyAgICAgICAjDQo+ICAgIE1vZHVsZXMvX2Js YWtlMi9ibGFrZTJzX2ltcGwuYyAgICAgICAjDQo+ICAgIE1vZHVsZXMvX3NoYTMvc2hhM21vZHVs ZS5jICAgICAgICAgICAjDQo+IC0gIE1vZHVsZXMvc2lnbmFsbW9kdWxlLmMgICAgICAgICAgICAg ICAjDQo+IC0gICNNb2R1bGVzL3NvY2tldG1vZHVsZS5jICAgICAgICAgICAgICAgIw0KPiArICBN b2R1bGVzL3NpZ25hbG1vZHVsZS5jICAgICAgICAgICAgICAgIw0KPiArICAjTW9kdWxlcy9zb2Nr ZXRtb2R1bGUuYyAgICAgICAgICAgICAgIw0KPiAgICBNb2R1bGVzL3N5bXRhYmxlbW9kdWxlLmMg ICAgICAgICAgICAgIw0KPiAgICBNb2R1bGVzL3VuaWNvZGVkYXRhLmMgICAgICAgICAgICAgICAg Iw0KPiAgICBNb2R1bGVzL3h4c3VidHlwZS5jICAgICAgICAgICAgICAgICAgIw0KPiBAQCAtMjE1 LDcgKzIxNSw3IEBADQo+ICAgIE1vZHVsZXMvX2lvL2lvYmFzZS5jICAgICAgICAgICAgICAgICAj DQo+ICAgIE1vZHVsZXMvX2lvL3N0cmluZ2lvLmMgICAgICAgICAgICAgICAjDQo+ICAgIE1vZHVs ZXMvX2lvL3RleHRpby5jICAgICAgICAgICAgICAgICAjDQo+IC0gIE1vZHVsZXMvYXRleGl0bW9k dWxlLmMJICAgICAgICMNCj4gKyAgTW9kdWxlcy9hdGV4aXRtb2R1bGUuYyAgICAgICAgICAgICAg ICMNCj4gDQo+ICAjTW9kdWxlcy9jamtjb2RlY3MNCj4gICAgTW9kdWxlcy9jamtjb2RlY3MvbXVs dGlieXRlY29kZWMuYyAgICMNCj4gQEAgLTI1MSwyNCArMjUxLDI2IEBAIE1vZHVsZXMvemxpYg0K PiAgICBNb2R1bGVzL3psaWIvenV0aWwuYyAgICAgICAgICAgICAgICAgIw0KPiANCj4gICNNb2R1 bGVzL2N0eXBlcw0KPiAtICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMv X2N0eXBlcy5jICAgIHwgTVNGVCAgICAgICAgICAjDQo+IC0gIE1vZHVsZXMvX2N0eXBlcy9zdGdk aWN0LmMgICAgICAgICAgIHwgTVNGVCAgICMNCj4gLSAgTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9t c3ZjL3ByZXBfY2lmLmMgIHwgTVNGVCMNCj4gLSAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9k dWxlcy9fY3R5cGVzL21hbGxvY19jbG9zdXJlLmMgICB8IE1TRlQgICAgIw0KPiAtICBQeU1vZC0k KFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMvZmZpLmMgIHwgTVNG VCAgICAgIw0KPiAtICBNb2R1bGVzL19jdHlwZXMvY2ZpZWxkLmMgICAgfCBNU0ZUICAgICAgICAg ICAjDQo+IC0gIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBlcy9jYWxscHJv Yy5jICB8IE1TRlQgICAgICAgICAgICMNCj4gLSAgTW9kdWxlcy9fY3R5cGVzL2NhbGxiYWNrcy5j ICAgICAgICB8IE1TRlQgICAgIw0KPiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVz L19jdHlwZXMvX2N0eXBlcy5jICAgIHwgTVNGVCAgICAgICAgICAjDQo+ICsgIE1vZHVsZXMvX2N0 eXBlcy9zdGdkaWN0LmMgICAgICAgICAgIHwgTVNGVCAgICMNCj4gKyAgTW9kdWxlcy9fY3R5cGVz L2xpYmZmaV9tc3ZjL3ByZXBfY2lmLmMgIHwgTVNGVCMNCj4gKyAgUHlNb2QtJChQWVRIT05fVkVS U0lPTikvTW9kdWxlcy9fY3R5cGVzL21hbGxvY19jbG9zdXJlLmMgICB8IE1TRlQgICAgIw0KPiAr ICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMvZmZp LmMgIHwgTVNGVCAgICAgIw0KPiArICBNb2R1bGVzL19jdHlwZXMvY2ZpZWxkLmMgICAgfCBNU0ZU ICAgICAgICAgICAjDQo+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBl cy9jYWxscHJvYy5jICB8IE1TRlQgICAgICAgICAgICMNCj4gKyAgTW9kdWxlcy9fY3R5cGVzL2Nh bGxiYWNrcy5jICAgICAgICB8IE1TRlQgICAgIw0KPiANCj4gIFtTb3VyY2VzLklBMzJdDQo+IC0g IE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy93aW4zMi5jICB8IE1TRlQgIw0KPiArICBNb2R1 bGVzL19jdHlwZXMvbGliZmZpX21zdmMvd2luMzIuYyAgfCBNU0ZUICMNCj4gKyAgUHlNb2QtJChQ WVRIT05fVkVSU0lPTikvTW9kdWxlcy9jcHVfaWEzMi5hc20gfCBNU0ZUICMNCj4gDQo+ICBbU291 cmNlcy5YNjRdDQo+IC0gIE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy93aW42NC5hc20gIHwg TVNGVCAjDQo+ICsgIE1vZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy93aW42NC5hc20gIHwgTVNG VCAjDQo+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvY3B1LmFzbSB8IE1TRlQg Iw0KPiANCj4gIFtCdWlsZE9wdGlvbnNdDQo+ICAgIE1TRlQ6Kl8qXypfQ0NfRkxBR1MgPSAvR0wt IC9PaS0gL3dkNDAxOCAvd2Q0MDU0IC93ZDQwNTUgL3dkNDEwMSAvd2Q0MTMxIC93ZDQxNTIgL3dk NDIwNCAvd2Q0MjEwIC93ZDQyNDQgL3dkNDI2NyAvd2Q0MzA1DQo+IC93ZDQzMTAgL3dkNDM4OSAv d2Q0NzAxIC93ZDQ3MDIgL3dkNDcwNiAvd2Q0NDU2IC93ZDQzMTIgL3dkNDQ1NyAvd2Q0NDU5IC93 ZDQ0NzQgL3dkNDQ3Ng0KPiAvSSQoV09SS1NQQUNFKVxBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhv blxQeXRob24tMy42LjhcSW5jbHVkZSAvREhBVkVfTUVNTU9WRSAvRFVTRV9QWUVYUEFUX0NBUEkg L0RYTUxfU1RBVElDIC1EIFVFRkkgL1dYLQ0KPiAvRFhNTF9QT09SX0VOVFJPUFkgL0RVRUZJX0Nf U09VUkNFDQo+IC0gIEdDQzoqXypfKl9DQ19GTEFHUyA9IC1Xbm8tdW51c2VkLWZ1bmN0aW9uIC1X bm8tZm9ybWF0IC1Xbm8tZXJyb3IgLWZuby1zdHJpY3QtYWxpYXNpbmcgLQ0KPiBJJChXT1JLU1BB Q0UpL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9JbmNsdWRlIC1ESEFW RV9NRU1NT1ZFIC1EVVNFX1BZRVhQQVRfQ0FQSSAtRFhNTF9TVEFUSUMgLQ0KPiBEWE1MX1BPT1Jf RU5UUk9QWQ0KPiArICBHQ0M6Kl8qXypfQ0NfRkxBR1MgPSAtV25vLXVudXNlZC1mdW5jdGlvbiAt V25vLWZvcm1hdCAtV25vLWVycm9yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC0NCj4gSSQoV09SS1NQ QUNFKS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvSW5jbHVkZSAtREhB VkVfTUVNTU9WRSAtRFVTRV9QWUVYUEFUX0NBUEkgLURYTUxfU1RBVElDIC0NCj4gRFhNTF9QT09S X0VOVFJPUFkNCj4gDQo+ICBbQnVpbGRPcHRpb25zLklBMzJdDQo+ICAgIE1TRlQ6Kl8qXypfQ0Nf RkxBR1MgPSAvRFVFRklfTVNWQ18zMg0KPiAtLQ0KPiAyLjMzLjAud2luZG93cy4xDQoNCg==