From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 80EACA0032; Mon, 26 Dec 2022 03:17:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 202E340143; Mon, 26 Dec 2022 03:17:09 +0100 (CET) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 7E998400D4; Mon, 26 Dec 2022 03:17:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672021027; x=1703557027; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=bspSUBMi9TJxTC7B6tb0VCswPXlnvnxfCVFchgWGOis=; b=SOU+BucJbe/Ndbh2A8nUoOgn7V/jfXH+3VbwcpfcaQl4exR1RHJcx4pP 311TzTrL7h93XOEFX6ROiG/oQuQLOYSzxTW0rEmWvvWNL1l6vYTcncqXE jUaYan/uQibksrr0e8Nk0XyypGfqphguRy0F7ICnNWI9lf5p6wcCUOOP7 olSt5FrriL67jdB9CBrt4ZxPv7es0mo7dUllSRgFD/jwPMO/EGguyFCRl PLE3G/WFYR/fYuoJy3PuQl14OrYkibWL+Xnb/5ustA5bp/EvZjaF5bKI0 OcRSWIio1cHX7omgQtoSnn9Em079654shny20rY1SogFIwZiAuY5KDaja w==; X-IronPort-AV: E=McAfee;i="6500,9779,10571"; a="382805111" X-IronPort-AV: E=Sophos;i="5.96,274,1665471600"; d="scan'208";a="382805111" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Dec 2022 18:17:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10571"; a="721141164" X-IronPort-AV: E=Sophos;i="5.96,274,1665471600"; d="scan'208";a="721141164" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga004.fm.intel.com with ESMTP; 25 Dec 2022 18:17:05 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 25 Dec 2022 18:17:04 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 25 Dec 2022 18:17:04 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sun, 25 Dec 2022 18:17:04 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.174) 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.16; Sun, 25 Dec 2022 18:17:04 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GUhYnGfevhnpejizw+KsjBzRYpruzn8bYx6rt6sv2rOxlmw7khSlId37GB9q/Yr645frN3L7fh6FA21rQipBpqk959nIaNcc4Q6045lECcvIHLqu8IY3k5MnGu34ozQrFnuVnMt1QHDFvXF1nGg97qToux7/o6jnj5CcwDz1hgqsekVSbk98itbgCBxWHJ78fjR4ZGm1POlnGcEP7jiqb4zS1ZTsrYQJwGzGDwVZV0S1c+9CvUGZbxXNZWRzStUm6egkgU8ipHkKOxna4S39A7ND53YHySUH19Hc/yMMUNM7tjcgwZkdWNILUM4KZc0yrhJVJ8bt1mtqM5swyrFJvg== 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=bspSUBMi9TJxTC7B6tb0VCswPXlnvnxfCVFchgWGOis=; b=Y+bHFJte5+0OlA1CT0mR8HsYB3NOhHAAuBw5HmpPkPcXLfVok444RGDwIUHTQuoxb4l1FoyXaN19JuUM/VAtU/PGBNh0i8OPip5HwdzxnJiyGIAIAoVQEOJMuKot6jz9zHaI4GUOTH0oWNSaMM30mXcffYLGfw8DKvFVjDc5uvKICbwIboi5ASMHhzwh2RZtLDk7P2Np8LnYIo0rEGO/lsl0fXI+2x4W0+dxnWnOz+OdOcIG3eoWHhKStGI7F8s6PLv4bCoLNbnGrFrQwPXAZ51aIxgtwaQiqtBixonDOWQF2qAjLTsWYRhJbFnuPV7dEd3ROIGChBxP0JB0odyiWg== 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 DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by PH7PR11MB6008.namprd11.prod.outlook.com (2603:10b6:510:1d0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.16; Mon, 26 Dec 2022 02:17:02 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::4c85:56d0:cb0b:e9ce]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::4c85:56d0:cb0b:e9ce%3]) with mapi id 15.20.5944.012; Mon, 26 Dec 2022 02:17:02 +0000 From: "Zhang, Qi Z" To: Ferruh Yigit , "You, KaisenX" , "dev@dpdk.org" , "Burakov, Anatoly" , David Marchand CC: "stable@dpdk.org" , "Yang, Qiming" , "Zhou, YidingX" , "Wu, Jingjing" , "Xing, Beilei" , Luca Boccassi , "Mcnamara, John" , Kevin Traynor Subject: RE: [PATCH] net/iavf:fix slow memory allocation Thread-Topic: [PATCH] net/iavf:fix slow memory allocation Thread-Index: AQHY+loFxTnQ2tLNb0mU8BNbuWK19a5kN+YAgAdjPICAAByGgIAAQP4AgAqR04CAAgbFAIABJq2AgABPEQCABaOIIA== Date: Mon, 26 Dec 2022 02:17:01 +0000 Message-ID: References: <20221117065726.277672-1-kaisenx.you@intel.com> <3ad04278-59c0-0c60-5c8c-9e57f33bb0de@amd.com> <0203acdc-73a3-4691-eb83-68424a871805@amd.com> In-Reply-To: <0203acdc-73a3-4691-eb83-68424a871805@amd.com> Accept-Language: en-US Content-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: DM4PR11MB5994:EE_|PH7PR11MB6008:EE_ x-ms-office365-filtering-correlation-id: 7d17e25b-0d7a-464d-ad0f-08dae6e74667 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: moUvBiAhheUxjLNERQoTE5sbpQTx0lnlvRhACvj+Ar166usJbHIeqo2a/D5lnHYCIBc/gPqVe4tbecAoTu/ofv4P3o41LyEV2mkwAY9ZnkAvTx9ZYKMuoer8rxmxGnsQ4LFqraM74MZc8ZJPxOZj9bxL++tdyqIQHG/7J23Doz9kkcjPZXZ3Ed80gtM2eNQgrhTeITc07Bwy0Qvu5Q1FeJmax0HSL+pK/3IAtYguOpZtY+XZEKzW2Q2vOcXZwRV8VbGhE3B4WO0xSJ5FlY7eVXH/djdakcThJXErpPBE1N6cig0YtchZPC/gTLhMwvzgW083wGwJQDHsJHDE0ZgqlXRUr07Qte7yn16O/swkJ7tufFMH7rZFG7Q7G/1WmUO8RvW2Os0h/8GQ0t3y8K45o9EnGKAsHXrCNJorCGHkSWBGsjhzrWB4j24MTvbHYR2k63nmKQp5iLrcnrbuIeZ2eu5243G0mQPzxJVQ/Hi0g6rcqOXoJrpKjoIXVSwcaJgCa3+WtC8WikGqoPAvnzLwQhcJxFfY9qkkZODcovEkBmGtu1km6nfXF3JDbqFi0H+JWykA/M+zcJGKVf8F+tFHgz86ZzP0L3pmKJjaKAW9+g9LU8F694tW8/FJH1D93NvRcaKY18CI4yLn92SHADvPSgOtIFvOTPzgpdK4rwKPIaJ6Gv/uZjaeTdVFoo1BCHGwuiODtCmNOPu3S/ZT8exIwMzK9Ed4sKMc5Lb1QBr/u7A= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(346002)(366004)(396003)(376002)(136003)(451199015)(54906003)(110136005)(83380400001)(2906002)(33656002)(30864003)(7696005)(316002)(38070700005)(478600001)(966005)(82960400001)(186003)(122000001)(38100700002)(9686003)(6506007)(26005)(53546011)(71200400001)(55016003)(86362001)(66946007)(66556008)(66476007)(52536014)(76116006)(41300700001)(4326008)(8676002)(8936002)(66446008)(5660300002)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RjB0NlJIV25Kc0hueHI5aXppbklMVG5hRnBIN3pDd0xuM2prTXp0bmVuQi9L?= =?utf-8?B?aDVraUd1akRtdndNQlY3N3RIZEFTVXpvNmFPTStSQk1VU1pRMkJ1MGJpVmMy?= =?utf-8?B?WEk2clhlcUxnTmJNZ0tWVThLQmNHT3QrdzBpYThQYldGTlc0cUFudVpFRFJ4?= =?utf-8?B?VEk4VFduSi8zdXU3cmZMalJ2OURFMHFSQ016QkZwTHNHQkZxS2RWcmFWMmFD?= =?utf-8?B?Z0FKR2hoS1FGZ2NhbzFxUEpsRFB2eUZ1WmJiNUNtUDhsL0xDdjRwY2RlTFBP?= =?utf-8?B?cTFUTGFWMU1qYUk4U0dHcWhzd3F1b2xVRDNseDYyUURwSElFU2JLM2FNUDBE?= =?utf-8?B?ZWhuR3VGUGlPRy9MTytGOEpqWTl1aXNGdk50aEljc1k3TWhURGdzeXgvSDdJ?= =?utf-8?B?OGtmVDQ2ZXgwKzArRUxVbk5nYjkzQ001RngwUW1tVUt3QUlSd3RvY0VuM1Jn?= =?utf-8?B?cVBjYXNUT2l1QlRJNXU2Y0VlUGFzdG1VVDl4NklYWDNjZDJXTTFxUkRsV3NJ?= =?utf-8?B?YVhKZ05ISTRPdnloWU5PY0JSSnY4aGdOZ05pUEtVTnJhTDZWaGtpTjJlVWFP?= =?utf-8?B?QlZ1WlBrK1FUNDM5QjhERE1tekxWbGtRNE1XN2xDWUc0UWh5M0FOZVZ1bjRT?= =?utf-8?B?ZGZlVFRMMmNCSmJ0S3NaemlrVUZiTlVUUENnNllxNzZpVmgyOHFOMHV0M0Zj?= =?utf-8?B?M1VEK21IODNjZk1heUNSYmhldEdmVHRMRGEvRVpLRXNBOU1XSnByYytKMU5M?= =?utf-8?B?Qmh6ZFQ0bC9HUW5pQ0liVFdWYXptZHNJdGs4UVV1UVhLNFFEZzVYbUYrZkF4?= =?utf-8?B?Mk9QSVoyU2puMmx1ZEJjMTB5bmlpQ1MvUTNmUTZWTHltZGU3cHJOTUplTWd4?= =?utf-8?B?SGVaWTduUzUzMFdocks1MXB3cXdYZEFqUHN5K1RjcW0vTkhkRG85KzNwN2Q5?= =?utf-8?B?SUgyQzRoaXFxSlF1Uzl2SHZaR0ZvM3RxNUlqNVV0dVQ2RzlsbE1Bdmc2NUlu?= =?utf-8?B?OFUybFJUMEd3WjFCQlNqZU5xN3JOdHJRckE1WlZKa0daSEhTekt6cjVsblBz?= =?utf-8?B?VXlRNk9wZVFLSWMyaWNOWVdHU2MwL25OT3RCRGRGYmJtWFdFc1hPQktRQUpZ?= =?utf-8?B?OXBaUjBBQzREWEJ1UnpaRWNna1FiNjljQWxGLzNYTXlWSkw2RXB2MWlaR0JV?= =?utf-8?B?RVl3RW9tQjNUamExeVgycFZpY3hkRDQ4eVpsTDlkVHZBTkJPcldacGxSZ3pL?= =?utf-8?B?Vkc0N1ZlemlEVW4xOWJkZEpyclRtVWxFSmNLQU1zTS9hUXZEQUEwT09JMFgz?= =?utf-8?B?cXZBZXZUSWttYkF1UENqUGxWbS9MUFJWQUJaVGdpOW9XWEFnT3ltUWt5RXpB?= =?utf-8?B?cy9pdkxUNHhRRFQ1SGY5NTRIQVZZMGJ3bGRLRlliVXJZUTRiSDJiQkVFbll5?= =?utf-8?B?VlU1QnVFcDVxSUpRRXh6bWNvV1R4ZWk3eXRtYzJTWE9iTGw5MWxEVzJLNFUv?= =?utf-8?B?MkpmMjMvNUxmS1phTjlQT2Z4bjFhUjkyMHIveU8zUzRYSkJINUg4dCtlSU9q?= =?utf-8?B?aUpMRUQwRjlOaGxoK3l2dzF1NUpGREtaeXhFRGhVcTAyQVNZSFlKekw4KzJt?= =?utf-8?B?a3VsN3daL0Z2RjMwbWRhekVxRDc2b2w2RjBWcklIWTROYS9rUVpHNGRlU2c0?= =?utf-8?B?akNySXNLRmNuS2FiQnRWSjc3K2N1SG1HaHlvNFBOalhKTGliL29HOHZGenJj?= =?utf-8?B?d0dsYnI4cHZKWUphMC9Jd0gyVC9yVXdPUjZZRG5CV0ZUQjJSVFV0THRGMUw4?= =?utf-8?B?bUdiMVQ3RDJxdlMwdTBWdXRFb3VzbW0rWTZKWTVGZ0hrSHFpRHErbFdiMDJX?= =?utf-8?B?RFlybXdHQlNUUnRPUklWZlFTMHQxamRFODFyYkM1OHVwT3JkbERtVTl5TVRR?= =?utf-8?B?ejlIc252Mms1cnhHVHpBN2RjR1FEOXlZbERBVWFOemR2ZEVWMEgyUHllUDFw?= =?utf-8?B?emZ2SzZzN2xRU3RIbkxZWDNlbmdONzVNNSsxc0ltelVxSzFDdFpmTmZOaTBj?= =?utf-8?B?WkgvNlQySHd5cVB1MzlsNWRvNm1TcFZoejFrL3ZEbGZtOFJPRFIvcHJ5K3Br?= =?utf-8?Q?2VECY27LKBqWUGUelp1K32Rtq?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d17e25b-0d7a-464d-ad0f-08dae6e74667 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Dec 2022 02:17:01.8755 (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: 5Z/Bub+6mQTh3D0HS89S4tevUMlz47srWCfAyPgIaOI4fzsh4wloE93QK0J21bV8zFJ1geu7bP0u4te5A5otLw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6008 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDIyLCAyMDIy IDg6MDcgUE0NCj4gVG86IFlvdSwgS2Fpc2VuWCA8a2Fpc2VueC55b3VAaW50ZWwuY29tPjsgZGV2 QGRwZGsub3JnOyBCdXJha292LCBBbmF0b2x5DQo+IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29t PjsgRGF2aWQgTWFyY2hhbmQNCj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IENjOiBz dGFibGVAZHBkay5vcmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhv dSwgWWlkaW5nWA0KPiA8eWlkaW5neC56aG91QGludGVsLmNvbT47IFd1LCBKaW5namluZyA8amlu Z2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywgQmVpbGVpDQo+IDxiZWlsZWkueGluZ0BpbnRlbC5j b20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBMdWNhIEJvY2Nhc3NpDQo+ IDxibHVjYUBkZWJpYW4ub3JnPjsgTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwu Y29tPjsgS2V2aW4NCj4gVHJheW5vciA8a3RyYXlub3JAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDog UmU6IFtQQVRDSF0gbmV0L2lhdmY6Zml4IHNsb3cgbWVtb3J5IGFsbG9jYXRpb24NCj4gDQo+IE9u IDEyLzIyLzIwMjIgNzoyMyBBTSwgWW91LCBLYWlzZW5YIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJy dWgueWlnaXRAYW1kLmNvbT4NCj4gPj4gU2VudDogMjAyMuW5tDEy5pyIMjHml6UgMjE6NDkNCj4g Pj4gVG86IFlvdSwgS2Fpc2VuWCA8a2Fpc2VueC55b3VAaW50ZWwuY29tPjsgZGV2QGRwZGsub3Jn OyBCdXJha292LA0KPiA+PiBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgRGF2 aWQgTWFyY2hhbmQNCj4gPj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+ID4+IENjOiBz dGFibGVAZHBkay5vcmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhv dSwNCj4gPj4gWWlkaW5nWCA8eWlkaW5neC56aG91QGludGVsLmNvbT47IFd1LCBKaW5namluZw0K PiA+PiA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0Bp bnRlbC5jb20+OyBaaGFuZywNCj4gPj4gUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBMdWNh IEJvY2Nhc3NpIDxibHVjYUBkZWJpYW4ub3JnPjsNCj4gPj4gTWNuYW1hcmEsIEpvaG4gPGpvaG4u bWNuYW1hcmFAaW50ZWwuY29tPjsgS2V2aW4gVHJheW5vcg0KPiA+PiA8a3RyYXlub3JAcmVkaGF0 LmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSF0gbmV0L2lhdmY6Zml4IHNsb3cgbWVtb3J5 IGFsbG9jYXRpb24NCj4gPj4NCj4gPj4gT24gMTIvMjAvMjAyMiA2OjUyIEFNLCBZb3UsIEthaXNl blggd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+Pj4+IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+DQo+ID4+ Pj4gU2VudDogMjAyMuW5tDEy5pyIMTPml6UgMjE6MjgNCj4gPj4+PiBUbzogWW91LCBLYWlzZW5Y IDxrYWlzZW54LnlvdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7IEJ1cmFrb3YsDQo+ID4+Pj4g QW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47IERhdmlkIE1hcmNoYW5kDQo+ID4+ Pj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+ID4+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9y ZzsgWWFuZywgUWltaW5nIDxxaW1pbmcueWFuZ0BpbnRlbC5jb20+OyBaaG91LA0KPiA+Pj4+IFlp ZGluZ1ggPHlpZGluZ3guemhvdUBpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcNCj4gPj4+PiA8amlu Z2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+ Ow0KPiA+Pj4+IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47IEx1Y2EgQm9jY2Fz c2kNCj4gPj4+PiA8Ymx1Y2FAZGViaWFuLm9yZz47IE1jbmFtYXJhLCBKb2huIDxqb2huLm1jbmFt YXJhQGludGVsLmNvbT47DQo+IEtldmluDQo+ID4+Pj4gVHJheW5vciA8a3RyYXlub3JAcmVkaGF0 LmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBuZXQvaWF2ZjpmaXggc2xvdyBtZW1v cnkgYWxsb2NhdGlvbg0KPiA+Pj4+DQo+ID4+Pj4gT24gMTIvMTMvMjAyMiA5OjM1IEFNLCBGZXJy dWggWWlnaXQgd3JvdGU6DQo+ID4+Pj4+IE9uIDEyLzEzLzIwMjIgNzo1MiBBTSwgWW91LCBLYWlz ZW5YIHdyb3RlOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPj4+Pj4+PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBh bWQuY29tPg0KPiA+Pj4+Pj4+IFNlbnQ6IDIwMjLlubQxMuaciDjml6UgMjM6MDQNCj4gPj4+Pj4+ PiBUbzogWW91LCBLYWlzZW5YIDxrYWlzZW54LnlvdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7 IEJ1cmFrb3YsDQo+ID4+Pj4+Pj4gQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47 IERhdmlkIE1hcmNoYW5kDQo+ID4+Pj4+Pj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+ ID4+Pj4+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZzsgWWFuZywgUWltaW5nIDxxaW1pbmcueWFuZ0Bp bnRlbC5jb20+OyBaaG91LA0KPiA+Pj4+Pj4+IFlpZGluZ1ggPHlpZGluZ3guemhvdUBpbnRlbC5j b20+OyBXdSwgSmluZ2ppbmcNCj4gPj4+Pj4+PiA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGlu ZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+Ow0KPiA+Pj4+Pj4+IFpoYW5nLCBRaSBa IDxxaS56LnpoYW5nQGludGVsLmNvbT47IEx1Y2EgQm9jY2Fzc2kNCj4gPj4+Pj4+PiA8Ymx1Y2FA ZGViaWFuLm9yZz47IE1jbmFtYXJhLCBKb2huDQo+IDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47 DQo+ID4+Pj4gS2V2aW4NCj4gPj4+Pj4+PiBUcmF5bm9yIDxrdHJheW5vckByZWRoYXQuY29tPg0K PiA+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIG5ldC9pYXZmOmZpeCBzbG93IG1lbW9yeSBh bGxvY2F0aW9uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBPbiAxMS8xNy8yMDIyIDY6NTcgQU0sIEth aXNlbiBZb3Ugd3JvdGU6DQo+ID4+Pj4+Pj4+IEluIHNvbWUgY2FzZXMsIHRoZSBEUERLIGRvZXMg bm90IGFsbG9jYXRlIGh1Z2VwYWdlIGhlYXAgbWVtb3J5DQo+ID4+IHRvDQo+ID4+Pj4+Pj4gc29t ZQ0KPiA+Pj4+Pj4+PiBzb2NrZXRzIGR1ZSB0byB0aGUgdXNlciBzZXR0aW5nIHBhcmFtZXRlcnMg KGUuZy4gLWwgNDAtNzksDQo+ID4+Pj4+Pj4+IFNPQ0tFVA0KPiA+Pj4+Pj4+PiAwIGhhcyBubyBt ZW1vcnkpLg0KPiA+Pj4+Pj4+PiBXaGVuIHRoZSBpbnRlcnJ1cHQgdGhyZWFkIHJ1bnMgb24gdGhl IGNvcnJlc3BvbmRpbmcgY29yZSBvZg0KPiA+Pj4+Pj4+PiB0aGlzIHNvY2tldCwgZWFjaCBhbGxv Y2F0aW9uL3JlbGVhc2Ugd2lsbCBleGVjdXRlIGEgd2hvbGUgc2V0DQo+ID4+Pj4+Pj4+IG9mIGhl YXAgYWxsb2NhdGlvbi9yZWxlYXNlIG9wZXJhdGlvbnMscmVzdWx0aW5nIGluIHBvb3INCj4gcGVy Zm9ybWFuY2UuDQo+ID4+Pj4+Pj4+IEluc3RlYWQgd2UgY2FsbCBtYWxsb2MoKSB0byBnZXQgbWVt b3J5IGZyb20gdGhlIHN5c3RlbSdzIGhlYXANCj4gPj4+Pj4+Pj4gc3BhY2UgdG8gZml4IHRoaXMg cHJvYmxlbS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEhpIEthaXNlbiwNCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IFVzaW5nIGxpYmMgbWFsbG9jIGNhbiBpbXByb3ZlIHBlcmZvcm1h bmNlIGZvciB0aGlzIGNhc2UsIGJ1dCBJDQo+ID4+Pj4+Pj4gd291bGQgbGlrZSB0byB1bmRlcnN0 YW5kIHJvb3QgY2F1c2Ugb2YgdGhlIHByb2JsZW0uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IEFzIGZhciBhcyBJIGNhbiBzZWUsIGludGVycnVwdCBjYWxsYmFja3MgYXJlIHJ1biBi eSBpbnRlcnJ1cHQNCj4gPj4+Pj4+PiB0aHJlYWQNCj4gPj4+Pj4+PiAoImVhbC1pbnRyLSB0aHJl YWQiKSwgYW5kIGludGVycnVwdCB0aHJlYWQgY3JlYXRlZCBieQ0KPiA+Pj4+ICdydGVfY3RybF90 aHJlYWRfY3JlYXRlKCknIEFQSS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICdydGVfY3RybF90aHJl YWRfY3JlYXRlKCknIGNvbW1lbnQgbWVudGlvbnMgdGhhdCAiQ1BVIGFmZmluaXR5DQo+ID4+Pj4+ Pj4gcmV0cmlldmVkIGF0IHRoZSB0aW1lICdydGVfZWFsX2luaXQoKScgd2FzIGNhbGxlZCwiDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBBbmQgJ3J0ZV9lYWxfaW5pdCgpJyBpcyBydW4gb24gbWFpbiBs Y29yZSwgd2hpY2ggaXMgdGhlIGZpcnN0DQo+ID4+Pj4+Pj4gbGNvcmUgaW4gdGhlIGNvcmUgbGlz dCAodW5sZXNzIG90aGVyd2lzZSBkZWZpbmVkIHdpdGggLS1tYWluLWxjb3JlKS4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+IFNvLCB0aGUgaW50ZXJydXB0cyBzaG91bGQgYmUgcnVubmluZyBvbiBhIGNv cmUgdGhhdCBoYXMNCj4gPj4+Pj4+PiBodWdlcGFnZXMgYWxsb2NhdGVkIGZvciBpdCwgYW0gSSBt aXNzaW5nIHNvbWV0aGluZyBoZXJlPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+IFRo YW5rIGZvciB5b3VyIGNvbW1lbnRzLiAgTGV0IG1lIHRyeSB0byBleHBsYWluIHRoZSByb290IGNh dXNlIGhlcmU6DQo+ID4+Pj4+PiBlYWxfaW50cl90aHJlYWQgdGhlIENQVSBpbiB0aGUgY29ycmVz cG9uZGluZyBzbG90IGRvZXMgbm90IGNyZWF0ZQ0KPiA+Pj4+IG1lbW9yeSBwb29sLg0KPiA+Pj4+ Pj4gVGhhdCByZXN1bHRzIGluIGZyZXF1ZW50IG1lbW9yeSBzdWJzZXF1ZW50bHkgY3JlYXRpbmcv ZGVzdHJ1Y3RpbmcuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gV2hlbiB0ZXN0cG1kIHN0YXJ0ZWQsIHRo ZSBwYXJhbWV0ZXIgKGUuZy4gLWwgNDAtNzkpIGlzIHNldC4NCj4gPj4+Pj4+IERpZmZlcmVudCBP UyBoYXMgZGlmZmVyZW50IHRvcG9sb2d5LiBTb21lIE9TIGxpa2UgU1VTRSBvbmx5DQo+ID4+Pj4+ PiBjcmVhdGVzIG1lbW9yeSBwb29sIGZvciBvbmUgQ1BVIHNsb3QsIHdoaWxlIG90aGVyIHN5c3Rl bSBjcmVhdGVzIGZvcg0KPiB0d28uDQo+ID4+Pj4+PiBUaGF0IGlzIHdoeSB0aGUgcHJvYmxlbSBv Y2N1cnMgd2hlbiB1c2luZyBtZW1vcmllcyBpbiBkaWZmZXJlbnQgT1MuDQo+ID4+Pj4+DQo+ID4+ Pj4+DQo+ID4+Pj4+IEl0IGlzIHRlc3RwbWQgYXBwbGljYXRpb24gdGhhdCBkZWNpZGVzIGZyb20g d2hpY2ggc29ja2V0IHRvDQo+ID4+Pj4+IGFsbG9jYXRlIG1lbW9yeSBmcm9tLCByaWdodC4gVGhp cyBpcyBub3RoaW5nIHNwZWNpZmljIHRvIE9TLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBBcyBmYXIgYXMg SSByZW1lbWJlciwgdGVzdHBtZCBsb2dpYyBpcyB0b28gYWxsb2NhdGUgZnJvbSBzb2NrZXQNCj4g Pj4+Pj4gdGhhdCBpdHMgY29yZXMgYXJlIHVzZWQgKHByb3ZpZGVkIHdpdGggLWwgcGFyYW1ldGVy KSwgYW5kIGFsbG9jYXRlDQo+ID4+Pj4+IGZyb20gc29ja2V0IHRoYXQgZGV2aWNlIGlzIGF0dGFj aGVkIHRvLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTbywgaW4gYSBkdWFsIHNvY2tldCBzeXN0ZW0sIGlm IGFsbCB1c2VkIGNvcmVzIGFyZSBpbiBzb2NrZXQgMSBhbmQNCj4gPj4+Pj4gdGhlIE5JQyBpcyBp biBzb2NrZXQgMSwgbm8gbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3Igc29ja2V0IDAuIFRoaXMNCj4g Pj4+Pj4gaXMgdG8gb3B0aW1pemUgbWVtb3J5IGNvbnN1bXB0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBDYW4geW91IHBsZWFzZSBjb25maXJtIHRoYXQgdGhlIHByb2JsZW0geW91IGFy ZSBvYnNlcnZpbmcgaXMNCj4gPj4+Pj4gYmVjYXVzZSBpbnRlcnJ1cHQgaGFuZGxlciBpcyBydW5u aW5nIG9uIGEgQ1BVLCB3aGljaCBkb2Vzbid0IGhhdmUNCj4gPj4+Pj4gbWVtb3J5IGFsbG9jYXRl ZCBmb3IgaXRzIHNvY2tldD8NCj4gPj4+Pj4NCj4gPj4+Pj4gSW4gdGhpcyBjYXNlIHdoYXQgSSBk b24ndCB1bmRlcnN0YW5kIGlzIHdoeSBpbnRlcnJ1cHRzIGlzIG5vdA0KPiA+Pj4+PiBydW5uaW5n IG9uIG1haW4gbGNvcmUsIHdoaWNoIHNob3VsZCBiZSBmaXJzdCBjb3JlIGluIHRoZSBsaXN0LCBm b3IgIi1sIDQwLQ0KPiA3OSINCj4gPj4+Pj4gc2FtcGxlIGl0IHNob3VsZCBiZSBsY29yZSA0MC4N Cj4gPj4+Pj4gRm9yIHlvdXIgY2FzZSwgaXMgaW50ZXJydXB0IGhhbmRsZXIgcnVuIG9uIGNvcmUg MD8gT3IgYW55IGFyYml0cmFyeSBjb3JlPw0KPiA+Pj4+PiBJZiBzbywgY2FuIHlvdSBwbGVhc2Ug Y29uZmlybSB3aGVuIHlvdSBwcm92aWRlIGNvcmUgbGlzdCBhcyAiLWwgMCw0MC03OSINCj4gPj4+ Pj4gZml4ZXMgdGhlIGlzc3VlPw0KPiA+Pj4+Pg0KPiA+Pj4gRmlyc3Qgb2YgYWxsLCBzb3JyeSB0 byByZXBseSB0byB5b3Ugc28gbGF0ZS4NCj4gPj4+IEkgY2FuIGNvbmZpcm0gdGhhdCB0aGUgcHJv YmxlbSBJIG9ic2VydmVkIGlzIGJlY2F1c2UgIGludGVycnVwdA0KPiA+Pj4gaGFuZGxlciBpcyBy dW5uaW5nIG9uIGEgQ1BVLCB3aGljaCBkb2Vzbid0IGhhdmUgbWVtb3J5IGFsbG9jYXRlZCBmb3IN Cj4gPj4+IGl0cw0KPiA+PiBzb2NrZXQuDQo+ID4+Pg0KPiA+Pj4gSW4gbXkgY2FzZSwgaW50ZXJy dXB0IGhhbmRsZXIgaXMgcnVubmluZyBvbiBjb3JlIDAuDQo+ID4+PiBJIHRyaWVkIHByb3ZpZGlu ZyAiLWwgMCw0MC03OSIgYXMgYSBzdGFydHVwIHBhcmFtZXRlciwgdGhpcyBpc3N1ZQ0KPiA+Pj4g Y2FuIGJlDQo+ID4+IHJlc29sdmVkLg0KPiA+Pj4NCj4gPj4+IEkgY29ycmVjdGVkIHRoZSBwcmV2 aW91cyBzdGF0ZW1lbnQgdGhhdCB0aGlzIHByb2JsZW0gZG9lcyAgb25seQ0KPiA+Pj4gb2NjdXIg b24gdGhlIFNVU0Ugc3lzdGVtLiBJbiBhbnkgT1MsIHRoaXMgcHJvYmxlbSBvY2N1cnMgYXMgbG9u ZyBhcw0KPiA+Pj4gdGhlIHJhbmdlIG9mIHN0YXJ0dXAgcGFyYW1ldGVycyBpcyBvbmx5IG9uIG5v ZGUxLg0KPiA+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQW5k IHdoYXQgYWJvdXQgdXNpbmcgJ3J0ZV9tYWxsb2Nfc29ja2V0KCknIEFQSSAoaW5zdGVhZCBvZg0K PiA+Pj4+Pj4+IHJ0ZV9tYWxsb2MpLCB3aGljaCBnZXRzICdzb2NrZXQnIGFzIHBhcmFtZXRlciwg YW5kIHByb3ZpZGUgdGhlDQo+ID4+Pj4+Pj4gc29ja2V0IHRoYXQgZGV2aWNlcyBpcyBvbiBhcyBw YXJhbWV0ZXIgdG8gdGhpcyBBUEk/IElzIGl0DQo+ID4+Pj4+Pj4gcG9zc2libGUgdG8gdGVzdA0K PiA+Pj4+IHRoaXM/DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4gQXMgdG8gdGhlIHJl YXNvbiBmb3Igbm90IHVzaW5nIHJ0ZV9tYWxsb2Nfc29ja2V0LiBJIHRob3VnaHQNCj4gPj4+Pj4+ IHJ0ZV9tYWxsb2Nfc29ja2V0KCkgY291bGQgc29sdmUgdGhlIHByb2JsZW0gdG9vLiBBbmQgdGhl DQo+ID4+Pj4+PiBhcHByb3ByaWF0ZSBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRoZSBzb2NrZXRfaWQg dGhhdCBjcmVhdGVkIHRoZQ0KPiA+Pj4+Pj4gbWVtb3J5IHBvb2wgZm9yIERQREsgaW5pdGlhbGl6 YXRpb24uIEFzc3VtaW5nIHRoYXQ+IHRoZSBzb2NrZXRfaWQNCj4gPj4+Pj4+IG9mIHRoZSBpbml0 aWFsbHkgYWxsb2NhdGVkIG1lbW9yeSA9IDEsIGZpcnN0IGxldCB0aGUNCj4gPj4+Pj4gZWFsX2lu dHJfdGhyZWFkDQo+ID4+Pj4+PiBkZXRlcm1pbmUgaWYgaXQgaXMgb24gdGhlIHNvY2tldF9pZCwg dGhlbiByZWNvcmQgdGhpcyBzb2NrZXRfaWQNCj4gPj4+Pj4+IGluIHRoZSBlYWxfaW50cl90aHJl YWQgYW5kIHBhc3MgaXQgdG8gdGhlIGlhdmZfZXZlbnRfdGhyZWFkLiAgQnV0DQo+ID4+Pj4+PiB0 aGVyZSBzZWVtcyBubyB3YXkgdG8gbGluayB0aGlzIHBhcmFtZXRlciB0byB0aGUNCj4gPj4+Pj4+ IGlhdmZfZGV2X2V2ZW50X3Bvc3QoKQ0KPiA+Pj4+IGZ1bmN0aW9uLiBUaGF0IGlzIHdoeSBydGVf bWFsbG9jX3NvY2tldCBpcyBub3QgdXNlZC4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEkg d2FzIHRoaW5raW5nIHNvY2tldCBpZCBvZiBkZXZpY2UgY2FuIGJlIHVzZWQsIGJ1dCB0aGF0IHdv bid0DQo+ID4+Pj4+IGhlbHAgaWYgdGhlIGNvcmUgdGhhdCBpbnRlcnJ1cHQgaGFuZGxlciBydW5z IGlzIGluIGRpZmZlcmVudCBzb2NrZXQuDQo+ID4+Pj4+IEFuZCBJIGFsc28gZG9uJ3Qga25vdyBp ZiB0aGVyZSBpcyBhIHdheSB0byBnZXQgc29ja2V0IHRoYXQNCj4gPj4+Pj4gaW50ZXJydXB0IHRo cmVhZCBpcyBvbi4gQERhdmlkIG1heSBoZWxwIHBlcmhhcHMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNv IHF1ZXN0aW9uIGlzIHdoeSBpbnRlcnJ1cHQgdGhyZWFkIGlzIG5vdCBydW5uaW5nIG9uIG1haW4g bGNvcmUuDQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBPSyBhZnRlciBzb21lIHRhbGsgd2l0aCBE YXZpZCwgd2hhdCBJIGFtIG1pc3NpbmcgaXMNCj4gPj4gJ3J0ZV9jdHJsX3RocmVhZF9jcmVhdGUo KScNCj4gPj4+PiBkb2VzIE5PVCBydW4gb24gbWFpbiBsY29yZSwgaXQgY2FuIHJ1biBvbiBhbnkg Y29yZSBleGNlcHQgZGF0YQ0KPiA+Pj4+IHBsYW5lDQo+ID4+IGNvcmVzLg0KPiA+Pj4+DQo+ID4+ Pj4gRHJpdmVyICJpYXZmLWV2ZW50LXRocmVhZCIgdGhyZWFkIChpYXZmX2Rldl9ldmVudF9oYW5k bGUoKSkgYW5kDQo+ID4+Pj4gaW50ZXJydXB0IHRocmVhZCAoc28gZHJpdmVyIGludGVycnVwdCBj YWxsYmFjaw0KPiA+Pj4+IGlhdmZfZGV2X2V2ZW50X3Bvc3QoKSkgY2FuIHJ1biBvbiBhbnkgY29y ZSwgbWFraW5nIGl0IGhhcmQgdG8gbWFuYWdlLg0KPiA+Pj4+IEFuZCBpdCBzZWVtcyBpdCBpcyBu b3QgcG9zc2libGUgdG8gY29udHJvbCB3aGVyZSBpbnRlcnJ1cHQgdGhyZWFkIHRvIHJ1bi4NCj4g Pj4+Pg0KPiA+Pj4+IE9uZSBvcHRpb24gY2FuIGJlIGFsbG9jYXRpbmcgaHVnZXBhZ2VzIGZvciBh bGwgc29ja2V0cywgYnV0IHRoaXMNCj4gPj4+PiByZXF1aXJlcyB1c2VyIGludm9sdmVtZW50LCBh bmQgY2FuJ3QgaGFwcGVuIHRyYW5zcGFyZW50bHkuDQo+ID4+Pj4NCj4gPj4+PiBPdGhlciBvcHRp b24gY2FuIGJlIHRvIGNvbnRyb2wgd2hlcmUgImlhdmYtZXZlbnQtdGhyZWFkIiBydW4sIGxpa2UN Cj4gPj4+PiB1c2luZyAncnRlX3RocmVhZF9jcmVhdGUoKScgdG8gY3JlYXRlIHRocmVhZCBhbmQg cHJvdmlkZSBhdHRyaWJ1dGUNCj4gPj4+PiB0byBydW4gaXQgb24gbWFpbiBsY29yZSAocnRlX2xj b3JlX2NwdXNldChydGVfZ2V0X21haW5fbGNvcmUoKSkpPw0KPiA+Pj4+DQo+ID4+Pj4gQ2FuIHlv dSBwbGVhc2UgdGVzdCBhYm92ZSBvcHRpb24/DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4gVGhlIGZp cnN0IG9wdGlvbiBjYW4gc29sdmUgdGhpcyBpc3N1ZS4gYnV0IHRvIGJvcnJvdyBmcm9tIHlvdXIN Cj4gPj4+IHByZXZpb3VzIHNheWluZywgImluIGEgZHVhbCBzb2NrZXQgc3lzdGVtLCBpZiBhbGwg dXNlZCBjb3JlcyBhcmUgaW4NCj4gPj4+IHNvY2tldCAxIGFuZCB0aGUgTklDIGlzIGluIHNvY2tl dCAxLCAgbm8gbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3Igc29ja2V0IDAuDQo+ID4+IFRoaXMgaXMg dG8gb3B0aW1pemUgbWVtb3J5IGNvbnN1bXB0aW9uLiINCj4gPj4+IEkgdGhpbmsgaXQncyB1bnJl YXNvbmFibGUgdG8gZG8gc28uDQo+ID4+Pg0KPiA+Pj4gQWJvdXQgb3RoZXIgb3B0aW9uLiBJbiAi IHJ0ZV9lYWxfaW50cl9pbml0IiBmdW5jdGlvbiwgQWZ0ZXIgdGhlDQo+ID4+PiB0aHJlYWQgaXMg Y3JlYXRlZCwgSSBzZXQgdGhlIHRocmVhZCBhZmZpbml0eSBmb3IgZWFsLWludHItdGhyZWFkLA0K PiA+Pj4gYnV0IGl0IGRvZXMgbm90IHNvbHZlDQo+ID4+IHRoaXMgaXNzdWUuDQo+ID4+DQo+ID4+ IEhpIEthaXNlbiwNCj4gPj4NCj4gPj4gVGhlcmUgYXJlIHR3byB0aHJlYWRzIGludm9sdmVkLA0K PiA+Pg0KPiA+PiBGaXJzdCBvbmUgaXMgaW50ZXJydXB0IHRocmVhZCwgImVhbC1pbnRyLXRocmVh ZCIsIGNyZWF0ZWQgYnkNCj4gJ3J0ZV9lYWxfaW50cl9pbml0KCknLg0KPiA+Pg0KPiA+PiBTZWNv bmQgb25lIGlzIGlhdmYgZXZlbnQgaGFuZGxlciwgImlhdmYtZXZlbnQtdGhyZWFkIiwgY3JlYXRl ZCBieQ0KPiA+PiAnaWF2Zl9kZXZfZXZlbnRfaGFuZGxlcl9pbml0KCknLg0KPiA+Pg0KPiA+PiBG aXJzdCBvbmUgdHJpZ2dlcmVkIGJ5IGludGVycnVwdCBhbmQgcHV0cyBhIG1lc3NhZ2UgdG8gYSBs aXN0LCBzZWNvbmQNCj4gPj4gb25lIGNvbnN1bWVzIGZyb20gdGhlIGxpc3QgYW5kIHByb2Nlc3Nl cyB0aGUgbWVzc2FnZS4NCj4gPj4gU28gSSBhc3N1bWUgdHdvIHRocmVhZCBiZWluZyBpbiBkaWZm ZXJlbnQgc29ja2V0cywgb3IgbWVtb3J5IGJlaW5nDQo+ID4+IGFsbG9jYXRlZCBpbiBhIGRpZmZl cmVudCBzb2NrZXQgdGhhbiB0aGUgY29yZXMgcnVubmluZyBjYXVzZXMgdGhlDQo+ID4+IHBlcmZv cm1hbmNlIGlzc3VlLg0KPiA+Pg0KPiA+PiBEaWQgeW91IHRlc3QgdGhlIHNlY29uZCB0aHJlYWQs ICJpYXZmLWV2ZW50LXRocmVhZCIsIGFmZmlsaWF0ZWQgdG8gbWFpbg0KPiBjb3JlPw0KPiA+PiAo YnkgY3JlYXRpbmcgdGhyZWFkIHVzaW5nICdydGVfdGhyZWFkX2NyZWF0ZSgpJyBBUEkpDQo+ID4+ DQo+ID4+DQo+ID4gSSB0cmllZCB0byB1c2UgJydydGVfdGhyZWFkX2NyZWF0ZSgpICdBUEkgY3Jl YXRlcyB0aGUgc2Vjb25kIHRocmVhZCwNCj4gPiBidXQgdGhpcyBpc3N1ZSBzdGlsbCBleGlzdHMu DQo+ID4NCj4gPiBCZWNhdXNlIG1hbGxvYyBpcyBleGVjdXRlZCBieSAiZWFsX2ludHJfdGhyZWFk IiwgaXQgaGFzIG5vdGhpbmcgdG8gZG8NCj4gPiB3aXRoICJpYXZmX2V2ZW50X3RocmVhZCIuDQo+ ID4NCj4gDQo+IFNpbmNlICdpYXZmX2V2ZW50X2VsZW1lbnQnIChwb3Mgd2hpY2ggaXMgYWxsb2Nh dGVkIGJ5IG1hbGxvYygpICBhY2Nlc3NlZCBhbmQNCj4gZnJlZWQgaW4gImlhdmYtZXZlbnQtdGhy ZWFkIiwgaXQgY291bGQgYmUgcmVsYXRlZC4gQnV0IGlmIGl0IGRvZXNuJ3QgZml4IHRoYXQgaXMg T0ssDQo+IHRoYW5rcyBmb3IgdGVzdGluZy4NCj4gDQo+ID4gQnV0IEkgZm91bmQgYSBwYXRjaCBz aW1pbGFyIHRvIG15IGlzc3Vl77yaDQo+ID4gaHR0cHM6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcHJv amVjdC9kcGRrL3BhdGNoLzIwMjIxMjIxMTA0ODU4LjI5NjUzMC0NCj4gMS0NCj4gPiBkYXZpZC5t YXJjaGFuZEByZWRoYXQuY29tLyBBY2NvcmRpbmcgdG8gdGhlIHBhdGNoIG1vZGlmaWNhdGlvbiwg dGhpcw0KPiA+IGlzc3VlIGNhbiBiZSBzb2x2ZWQuDQo+ID4NCj4gDQo+IEkgZ3Vlc3MgdGhhdCBw YXRjaCBpbnNwaXJlZCBmcm9tIHRoaXMgZGlzY3Vzc2lvbiwgYW5kIGlmIGl0IGZpeGVzIHRoZSBp c3N1ZSwgSQ0KPiBwcmVmZXIgdGhhdCBvbmUgYXMgZ2VuZXJpYyBzb2x1dGlvbi4NCg0KKzEgDQoN ClRoYXQgbG9va3MgbGlrZSB0aGUgZmVhdHVyZSB0aGF0IERQREsgc2hvdWxkIGhhdmUuDQoNCg==