From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) by dpdk.org (Postfix) with ESMTP id ED94831FC for ; Thu, 19 Jul 2018 13:06:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/simple; q=dns/txt; i=@ericsson.com; t=1531998364; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Bl5xpJfb1LuwqczK+nLMbO5gveGmRuQIfzNznQNFqfs=; b=LtwmMePiLGsrCtzsLVlLA/vnXWQ/Ut32AaNzOOnMJwS4VEfoVXKq0ZiHwXxVLwnf QtsybpXo3hIfuwMeeq/bkz9mBHp6a31ZNk0KRWAu3Vvt9e0oPQdXygt8MBvsZh+p T9Ib9xwtWvFMbaPvl8KUYL9l+RZLHqjW7Hm0t6QBgP8=; X-AuditID: c1b4fb25-202c69c000006310-38-5b50709b0d2f Received: from ESESSMB501.ericsson.se (Unknown_Domain [153.88.183.119]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id EE.C6.25360.B90705B5; Thu, 19 Jul 2018 13:06:04 +0200 (CEST) Received: from ESESSMB504.ericsson.se (153.88.183.165) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Thu, 19 Jul 2018 12:58:28 +0200 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB504.ericsson.se (153.88.183.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Thu, 19 Jul 2018 12:58:28 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bl5xpJfb1LuwqczK+nLMbO5gveGmRuQIfzNznQNFqfs=; b=HZ7FxLEqz0N7ic37QQm26d9TJAIZ8tNM9USnL7yHmBGlJL1Noa6pB1wX3m1knzlOclV/iJ87brRIpbRJ9K7pepJvQy4W8bpC8IOuE8+9nV5qYS21SCURVH4QyRbQHeqJ1bW3LJlM+T2pi2vcNDKfwhVCLEZ0Ev0uC62OIx3Z1rk= Received: from MWHPR15MB1918.namprd15.prod.outlook.com (10.174.100.143) by MWHPR15MB1437.namprd15.prod.outlook.com (10.173.234.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.20; Thu, 19 Jul 2018 10:58:22 +0000 Received: from MWHPR15MB1918.namprd15.prod.outlook.com ([fe80::cd75:9f8:91f7:436d]) by MWHPR15MB1918.namprd15.prod.outlook.com ([fe80::cd75:9f8:91f7:436d%2]) with mapi id 15.20.0973.018; Thu, 19 Jul 2018 10:58:22 +0000 From: =?utf-8?B?TMOhc3psw7MgVmFka2VydGk=?= To: "Wiles, Keith" , "Burakov, Anatoly" CC: "dev@dpdk.org" , "srinath.mannam@broadcom.com" , "scott.branden@broadcom.com" , "ajit.khaparde@broadcom.com" , Thomas Monjalon , Shreyansh Jain , "jerin.jacob@caviumnetworks.com" Thread-Topic: [dpdk-dev] [RFC 00/11] Support externally allocated memory in DPDK Thread-Index: AQHUFSvEBvnznCHvikSa7AMdqi2eJ6SNboEAgAAM2wCACPStgA== Date: Thu, 19 Jul 2018 10:58:22 +0000 Message-ID: References: <08D0040C-78AA-401A-863F-57B38533648F@intel.com> In-Reply-To: <08D0040C-78AA-401A-863F-57B38533648F@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=laszlo.vadkerti@ericsson.com; x-originating-ip: [80.99.119.114] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; MWHPR15MB1437; 6:ofMZHkehgaZ6jziIHX4YOF7rUtxmw9Y7k3zY8rtu8yCTgh7isDJks2nxNbdoYj5dXsggFjILxd/tI21RJz/NgKir8KMx6vNxDE3tktbP7kivScEW1WkA+SMxBDWhma9OH4TWwTY+Nvl4FB7YFiqRWoxomAsBjq2rJAMhAi/Y8IKrmvmdYvj7sJUIsGusGOkDZen+Vre4w0X7UTI+c8Rm9P4M3J/oCewP6Ec0FRjyU43NRf+k73ImyULohEQoEFIdUefArUJrZI/iaYVyCvowI7mMliUiSzhPhSOaYDlN2eWiLJFKjE4Wte0ZHU7eiFZv9OR1VUEhorEJ0tYMjk6oSSbOXsUgq2ZgEWVUQdLLkwfFOXW9tjstl3fizycjbpo3I/YSNAlH0HKMMgXJRzJp2HdbrU0gwbLyVit+07XDpYU8nTbXVR4vsOse7PqjMftg0VOkSmV1ElCvVu3u4zDDkA==; 5:ZfhW1e/ECzYuG7Np+rIQwAN/EKL7lqnzQeLcJLaUOcKIMpu6bzqeL9Rgxxo+Ku0EZRyV2wG/mC5Abg2ZVeU2E4RtTqIM4A8f12aNyZibKbldAQhraTbyvZMn2rIKU+78jHiUTbUSPmSSTY/iONlcpFW2H5OJyr7J1gqBjfYupUA=; 7:3FtlgQWELfmaZL4ZVG1KciWxBdvuzF9EgdzyeZYLw3LPkNdslc4hbadw/oKTyMM96FIqXzE4A7tkwI7z2TvYErEQCoy5AkEfoeLlp0zeVFc51YiAQ3nj2v/NwcWwVJiDxVkvbEO+gJpfEcH/fw2Dax/aanHKHUw6pNwob8ortAYV5pHLgy2fZq96nISwlDpPC1Gsi9oIyLazfRYMZ62rsvcAeRNx6UZwSPdcpr2Gidco4fpxdwHHoXAB3LIp/WBI x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: f7da1984-21c6-4241-7ffa-08d5ed668b6f x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600053)(711020)(2017052603328)(7153060)(7193020); SRVR:MWHPR15MB1437; x-ms-traffictypediagnostic: MWHPR15MB1437: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231311)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:MWHPR15MB1437; BCL:0; PCL:0; RULEID:; SRVR:MWHPR15MB1437; x-forefront-prvs: 0738AF4208 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(366004)(376002)(39860400002)(346002)(189003)(199004)(6116002)(3846002)(8676002)(86362001)(6436002)(256004)(14444005)(5024004)(186003)(81156014)(26005)(81166006)(2900100001)(8936002)(76176011)(9686003)(6506007)(53546011)(561944003)(99286004)(54906003)(33656002)(110136005)(316002)(446003)(11346002)(102836004)(55016002)(229853002)(14454004)(5250100002)(7696005)(478600001)(74316002)(6246003)(4326008)(105586002)(85202003)(106356001)(97736004)(7736002)(85182001)(305945005)(53936002)(5660300001)(68736007)(2906002)(476003)(486006)(25786009)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR15MB1437; H:MWHPR15MB1918.namprd15.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: VRf6CoH408kfN9nNcP+cTiC7taJujezif2yBI4QMclSjDNKjYXrQs0NqmnlfM0BwcKxaES27ZhT84avZThhIN+P2WYjdpz9MvUyTO+c7RKUdRXns2Z5//ZMwJgVriTfR6GryvT3T7rzAEbf9orjLvTEmLta6/nDzr8jyth2spU+adend8+ZbNfO7bXjT31/2ZwDAqe0jt/TZB+EMuk9HZ9vFOL49EZUkShcmDVMQvTobItDXRVy+7z96YAi67Yve+azofkFJAP1eYVsQR3n/XKG9D2dVMHN/D81vJkUhwd23zr7Dsz9UsBt/wC+E6Fsgz2vVZpGjE84d+xgJyHjEVwye71CZ6Ap/gijyY3j16HY= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f7da1984-21c6-4241-7ffa-08d5ed668b6f X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2018 10:58:22.2861 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1437 X-OriginatorOrg: ericsson.com X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHec9lOxOXb8vsySxwIKWlZgUd6UJXWGC0yg95qbX0oCsz2THN CKwPiVqWilmuzJWXwrxnuGyLNEtbZuGFqA/pdGpKahpNtLB2PAZ9+z3///953ud9eRlS0UB7 Mrr4RE4fr41TSlyogiMNyf53EtQR6wtuIbZ21kiy/V+KSXZ8qoFgc3I3sT2t0yRbUHeNZucm 0iXs9+xWmp3qa6N2yFSG3ncSVU3bdVo1ayylVcXmEUL1+lO+VFU7biLUknCXrdFcnC6J0wdu P+4Sa7VPSxJaUs/l3y2TXETGC5mIYQBvgletezORjFHgVwiyPoRlIhcnOxCUVv+RikUJAaau akooKJxNwovJOYno5BEwOlRFif19CL44aIEleB9MVeRKBXbHkTDwcYwQGkg8SYCtqma+YQk+ CIaudloMHYK+j8ULvAt+zlooYT8K+0C+9YAgy51zbj7socWz7iPI6TwksAxvg8qnE6TACHvA tLWCEJjEy+CzvWieAWMoMb8nRV4KIwNztJjXQPntdiQ+hTdUNXmIkZXQWXQFCSsDfi6FFsso JRr+8P3GDVLM74c8GytmPiCo6u1YmO8HaYX2hfwpsHR30iKHQNoDIxJ5FZRn2ahsFGT4b1WD cyyJfaG6MVCUvSHvik1qmL/9YnhTYKeMiCpHS3mOP3E6ZsPGAE6vi+L5M/EB8VxiHXJ+p6b6 Xz4m1PVtZzPCDFK6ygePqSMUtDaJTzndjIAhle7yfpVTkkdrU85z+jMa/dk4jm9GKxhKuUxu 2/w4XIFjtIncKY5L4PT/XIKReV5EaZZ0LjLialnyk8zDWzTvNSakXbQy797q5b7T3ob6jMKo o7+3m6B87ETw1zUvh62VuxPc+mfUM4MlqaF2H/eTbbqcR45L9qkM1+7PzFBoyJjFsRaedXh4 XTazSYXmoeGgEHaLq9dzt6x1i1ODjwx49ZRCv2KN156wxl7d2x8mVknxsdogP1LPa/8CPWGm XEoDAAA= Subject: Re: [dpdk-dev] [RFC 00/11] Support externally allocated memory in DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jul 2018 11:06:05 -0000 PiBPbiBKdWwgMTMsIDIwMTgsIGF0IDc6NTcgUE0sIFdpbGVzLCBLZWl0aCA8a2VpdGgud2lsZXNA aW50ZWwuY29tPiB3cm90ZToNCj4NCj4gPiBPbiBKdWwgMTMsIDIwMTgsIGF0IDEyOjEwIFBNLCBC dXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPiB3cm90ZToNCj4gPg0K PiA+IE9uIDA2LUp1bC0xOCAyOjE3IFBNLCBBbmF0b2x5IEJ1cmFrb3Ygd3JvdGU6DQo+ID4+IFRo aXMgaXMgYSBwcm9wb3NhbCB0byBlbmFibGUgdXNpbmcgZXh0ZXJuYWxseSBhbGxvY2F0ZWQgbWVt b3J5IGluDQo+ID4+IERQREsuDQo+ID4+IEluIGEgbnV0c2hlbGwsIGhlcmUgaXMgd2hhdCBpcyBi ZWluZyBkb25lIGhlcmU6DQo+ID4+IC0gSW5kZXggbWFsbG9jIGhlYXBzIGJ5IE5VTUEgbm9kZSBp bmRleCwgcmF0aGVyIHRoYW4gTlVNQSBub2RlIGl0c2VsZg0KPiA+PiAtIEFkZCBpZGVudGlmaWVy IHN0cmluZyB0byBtYWxsb2MgaGVhcCwgdG8gdW5pcXVlbHkgaWRlbnRpZnkgaXQNCj4gPj4gLSBB bGxvdyBjcmVhdGluZyBuYW1lZCBoZWFwcyBhbmQgYWRkL3JlbW92ZSBtZW1vcnkgdG8vZnJvbSB0 aG9zZQ0KPiA+PiBoZWFwcw0KPiA+PiAtIEFsbG9jYXRlIG1lbXNlZyBsaXN0cyBhdCBydW50aW1l LCB0byBrZWVwIHRyYWNrIG9mIElPVkEgYWRkcmVzc2VzDQo+ID4+ICAgb2YgZXh0ZXJuYWxseSBh bGxvY2F0ZWQgbWVtb3J5DQo+ID4+ICAgLSBJZiBJT1ZBIGFkZHJlc3NlcyBhcmVuJ3QgcHJvdmlk ZWQsIHVzZSBSVEVfQkFEX0lPVkENCj4gPj4gLSBBbGxvdyBtYWxsb2MgYW5kIG1lbXpvbmVzIHRv IGFsbG9jYXRlIGZyb20gbmFtZWQgaGVhcHMgVGhlDQo+ID4+IHJlc3BvbnNpYmlsaXR5IHRvIGVu c3VyZSBtZW1vcnkgaXMgYWNjZXNzaWJsZSBiZWZvcmUgdXNpbmcgaXQgaXMgb24NCj4gPj4gdGhl IHNob3VsZGVycyBvZiB0aGUgdXNlciAtIHRoZXJlIGlzIG5vIGNoZWNraW5nIGRvbmUgd2l0aCBy ZWdhcmRzIHRvDQo+ID4+IHZhbGlkaXR5IG9mIHRoZSBtZW1vcnkgKG5vciBjb3VsZCB0aGVyZSBi ZS4uLikuDQo+ID4+IFRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMgYXJlIHByZXNlbnQ6DQo+ID4+ IC0gTm8gbXVsdGlwcm9jZXNzIHN1cHBvcnQNCj4gPj4gLSBObyB0aHJlYWQgc2FmZXR5DQo+ID4+ IFRoZXJlIGlzIGN1cnJlbnRseSBubyB3YXkgdG8gYWxsb2NhdGUgbWVtb3J5IGR1cmluZyBpbml0 aWFsaXphdGlvbg0KPiA+PiBzdGFnZSwgc28gZXZlbiBpZiBtdWx0aXByb2Nlc3Mgc3VwcG9ydCBp cyBhZGRlZCwgaXQgaXMgbm90IGd1YXJhbnRlZWQNCj4gPj4gdG8gd29yayBiZWNhdXNlIG9mIHVu ZGVybHlpbmcgaXNzdWVzIHdpdGggbWFwcGluZyBmYmFycmF5cyBpbg0KPiA+PiBzZWNvbmRhcnkg cHJvY2Vzc2VzLiBUaGlzIGlzIG5vdCBhbiBpc3N1ZSBpbiBzaW5nbGUgcHJvY2VzcyBzY2VuYXJp bywNCj4gPj4gYnV0IGl0IG1heSBiZSBhbiBpc3N1ZSBpbiBhIG11bHRpcHJvY2VzcyBzY2VuYXJp byBpbiBjYXNlIHdoZXJlDQo+ID4+IHByaW1hcnkgZG9lc24ndCBpbnRlbmQgdG8gc2hhcmUgdGhl IGV4dGVybmFsbHkgYWxsb2NhdGVkIG1lbW9yeSwgeWV0DQo+ID4+IGFkZGluZyBzdWNoIG1lbW9y eSBjb3VsZCBmYWlsIGJlY2F1c2Ugc29tZSBvdGhlciBwcm9jZXNzIGZhaWxlZCB0bw0KPiA+PiBh dHRhY2ggdG8gdGhpcyBzaGFyZWQgbWVtb3J5IHdoZW4gaXQgd2Fzbid0IG5lZWRlZC4NCj4gPj4g QW5hdG9seSBCdXJha292ICgxMSk6DQo+ID4+ICAgbWVtOiBhbGxvdyBtZW1zZWcgbGlzdHMgdG8g YmUgbWFya2VkIGFzIGV4dGVybmFsDQo+ID4+ICAgZWFsOiBhZGQgZnVuY3Rpb24gdG8gcmVyaWV2 ZSBzb2NrZXQgaW5kZXggYnkgc29ja2V0IElEDQo+ID4+ICAgbWFsbG9jOiBpbmRleCBoZWFwcyB1 c2luZyBoZWFwIElEIHJhdGhlciB0aGFuIE5VTUEgbm9kZQ0KPiA+PiAgIG1hbGxvYzogYWRkIG5h bWUgdG8gbWFsbG9jIGhlYXBzDQo+ID4+ICAgbWFsbG9jOiBlbmFibGUgcmV0cmlldmluZyBzdGF0 aXN0aWNzIGZyb20gbmFtZWQgaGVhcHMNCj4gPj4gICBtYWxsb2M6IGVuYWJsZSBhbGxvY2F0aW5n IGZyb20gbmFtZWQgaGVhcHMNCj4gPj4gICBtYWxsb2M6IGVuYWJsZSBjcmVhdGluZyBuZXcgbWFs bG9jIGhlYXBzDQo+ID4+ICAgbWFsbG9jOiBhbGxvdyBhZGRpbmcgbWVtb3J5IHRvIG5hbWVkIGhl YXBzDQo+ID4+ICAgbWFsbG9jOiBhbGxvdyByZW1vdmluZyBtZW1vcnkgZnJvbSBuYW1lZCBoZWFw cw0KPiA+PiAgIG1hbGxvYzogYWxsb3cgZGVzdHJveWluZyBoZWFwcw0KPiA+PiAgIG1lbXpvbmU6 IGVuYWJsZSByZXNlcnZpbmcgbWVtb3J5IGZyb20gbmFtZWQgaGVhcHMNCj4gPj4gIGNvbmZpZy9j b21tb25fYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4+ICBsaWIv bGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9sY29yZS5jICAgICAgfCAgMTUgKw0KPiA+PiAg bGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fbWVtb3J5LmMgICAgIHwgIDUxICsrKy0N Cj4gPj4gIGxpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX21lbXpvbmUuYyAgICB8IDI4 Mw0KPiArKysrKysrKysrKysrKy0tLS0NCj4gPj4gIC4uLi9jb21tb24vaW5jbHVkZS9ydGVfZWFs X21lbWNvbmZpZy5oICAgICAgICB8ICAgNSArLQ0KPiA+PiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvcnRlX2xjb3JlLmggICAgIHwgIDE5ICstDQo+ID4+ICBsaWIvbGlicnRlX2VhbC9j b21tb24vaW5jbHVkZS9ydGVfbWFsbG9jLmggICAgfCAxNTggKysrKysrKysrLQ0KPiA+PiAgLi4u L2NvbW1vbi9pbmNsdWRlL3J0ZV9tYWxsb2NfaGVhcC5oICAgICAgICAgIHwgICAyICsNCj4gPj4g IGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0ZV9tZW16b25lLmggICB8IDE4MyArKysr KysrKysrKw0KPiA+PiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL21hbGxvY19oZWFwLmMgICAgICAg ICAgIHwgMjc3ICsrKysrKysrKysrKysrKy0tDQo+ID4+ICBsaWIvbGlicnRlX2VhbC9jb21tb24v bWFsbG9jX2hlYXAuaCAgICAgICAgICAgfCAgMjYgKysNCj4gPj4gIGxpYi9saWJydGVfZWFsL2Nv bW1vbi9ydGVfbWFsbG9jLmMgICAgICAgICAgICB8IDE5NyArKysrKysrKysrKy0NCj4gPj4gIGxp Yi9saWJydGVfZWFsL3J0ZV9lYWxfdmVyc2lvbi5tYXAgICAgICAgICAgICB8ICAxMCArDQo+ID4+ ICAxMyBmaWxlcyBjaGFuZ2VkLCAxMTE4IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkN Cj4gPg0KPiA+IFNvLCBub3cgdGhhdCB0aGUgUkZDIGlzIG91dCwgaSB3b3VsZCBsaWtlIHRvIGFz ayBhIGdlbmVyYWwgcXVlc3Rpb24uDQo+ID4NCj4gPiBPbmUgb3RoZXIgdGhpbmcgdGhhdCB0aGlz IHBhdGNoc2V0IGlzIG1pc3NpbmcsIGlzIHRoZSBhYmlsaXR5IGZvciBkYXRhDQo+IHN0cnVjdHVy ZXMgKGUuZy4gaGFzaCwgbWVtcG9vbCwgZXRjLikgdG8gYmUgYWxsb2NhdGVkIGZyb20gZXh0ZXJu YWwgaGVhcHMuDQo+IEN1cnJlbnRseSwgd2UgY2FuIGtpbmRhIHNvcnRhIGRvIHRoYXQgd2l0aCB2 YXJpb3VzIF9pbml0KCkgQVBJJ3MgKGluaXRpYWxpemluZyBhDQo+IGRhdGEgc3RydWN0dXJlIG92 ZXIgYWxyZWFkeSBhbGxvY2F0ZWQgbWVtem9uZSksIGJ1dCB0aGlzIGlzIG5vdCBpZGVhbCBhbmQg aXMgYQ0KPiBoYXNzbGUgZm9yIGFueW9uZSB1c2luZyBleHRlcm5hbCBtZW1vcnkgaW4gRFBESy4N Cj4gPg0KPiA+IFRoZXJlIGFyZSBiYXNpY2FsbHkgZm91ciB3YXlzIHRvIGFwcHJvYWNoIHRoaXMg cHJvYmxlbSAodGhhdCBpIGNhbiBzZWUpLg0KPiA+DQo+ID4gRmlyc3Qgd2F5IGlzIHRvIGNoYW5n ZSAic29ja2V0IElEIiB0byBtZWFuICJoZWFwIElEIiBldmVyeXdoZXJlLiBUaGlzIGhhcw0KPiBh biB1cHNpZGUgb2YgaGF2aW5nIGEgY29uc2lzdGVudCBBUEkgdG8gYWxsb2NhdGUgZnJvbSBpbnRl cm5hbCBhbmQgZXh0ZXJuYWwNCj4gaGVhcHMsIHdpdGggbGl0dGxlIHRvIG5vIEFQSSBhZGRpdGlv bnMsIG9ubHkgaW50ZXJuYWwgY2hhbmdlcyB0byBhY2NvdW50IGZvciB0aGUNCj4gZmFjdCB0aGF0 ICJzb2NrZXQgSUQiIGlzIG5vdyAiaGVhcCBJRCIuDQo+ID4NCj4gPiBIb3dldmVyLCB0aGVyZSBp cyBhIG1hc3NpdmUgZG93bnNpZGUgdG8gdGhpcyBhcHByb2FjaDogaXQgaXMgYSAqZ2lhbnQqIEFQ SQ0KPiBjaGFuZ2UsIGFuZCBpdCdzIGFsc28gYSBnaWFudCAqQUJJLWNvbXBhdGlibGUqIEFQSSBj aGFuZ2UuIE1lYW5pbmcsDQo+IHJlcGxhY2luZyBzb2NrZXQgSUQgd2l0aCBoZWFwIElEIHdpbGwg bm90IGNhdXNlIGNvbXBpbGUgZmFpbHVyZXMgZm9yIG9sZCBjb2RlLA0KPiB3aGljaCB3b3VsZCBy ZXN1bHQgaW4gbWFueSBzdWJ0bGUgYnVncyBpbiBhbHJlYWR5IGV4aXN0aW5nIGNvZGViYXNlcy4g U28sDQo+IHdoaWxlIGluIHRoZSBwZXJmZWN0IHdvcmxkIHRoaXMgd291bGQndmUgYmVlbiBteSBw cmVmZXJyZWQgYXBwcm9hY2gsDQo+IHJlYWxpc3RpY2FsbHkgaSB0aGluayB0aGlzIGlzIGEgdmVy eSwgdmVyeSBiYWQgaWRlYS4NCj4gPg0KPiA+IFNlY29uZCBvbmUgaXMgdG8gYWRkIGEgc2VwYXJh dGUgImhlYXAgbmFtZSIgQVBJJ3MgdG8gZXZlcnl0aGluZy4gVGhpcyBoYXMNCj4gYW4gdXBzaWRl IG9mIGNsZWFuIHNlcGFyYXRpb24gYmV0d2VlbiBhbGxvY2F0aW9uIGZyb20gaW50ZXJuYWwgYW5k IGV4dGVybmFsDQo+IGhlYXBzLiAod2VsbCwgd2hldGhlciBpdCdzIGFuIHVwc2lkZSBpcyBkZWJh dGFibGUuLi4pIFRoaXMgaXMgdGhlIGFwcHJvYWNoIGkNCj4gZXhwZWN0ZWQgdG8gdGFrZSB3aGVu IGkgd2FzIGNyZWF0aW5nIHRoaXMgcGF0Y2hzZXQuDQo+ID4NCj4gPiBUaGUgZG93bnNpZGUgaXMg dGhhdCB3ZSBoYXZlIHRvIGFkZCBuZXcgQVBJJ3MgdG8gZXZlcnkgbGlicmFyeSBhbmQgZXZlcnkN Cj4gRFBESyBkYXRhIHN0cnVjdHVyZSwgdG8gYWxsb3cgZXhwbGljaXQgYWxsb2NhdGlvbiBmcm9t IGV4dGVybmFsIGhlYXBzLiBXZSB3aWxsDQo+IGhhdmUgdG8gbWFpbnRhaW4gYm90aCwgYW5kIHRo aW5ncyBsaWtlIGhhcmR3YXJlIGRyaXZlcnMgd2lsbCBuZWVkIHRvIGhhdmUgYQ0KPiB3YXkgdG8g aW5kaWNhdGUgdGhlIG5lZWQgdG8gYWxsb2NhdGUgdGhpbmdzIGZyb20gYSBwYXJ0aWN1bGFyIGV4 dGVybmFsIGhlYXAuDQo+ID4NCj4gPiBUaGUgdGhpcmQgd2F5IGlzIHRvIGV4cG9zZSB0aGUgImhl YXAgSUQiIGV4dGVybmFsbHksIGFuZCBhbGxvdyBhIHNpbmdsZSwNCj4gdW5pZmllZCBBUEkgdG8g cmVzZXJ2ZSBtZW1vcnkuIFRoYXQgaXMsIGNyZWF0ZSBhbiBBUEkgdGhhdCB3b3VsZCBtYXAgZWl0 aGVyDQo+IGEgTlVNQSBub2RlIElEIG9yIGEgaGVhcCBuYW1lIHRvIGFuIElELCBhbmQgYWxsb3cg cmVzZXJ2aW5nIG1lbW9yeQ0KPiB0aHJvdWdoIHRoYXQgSUQgcmVnYXJkbGVzcyBvZiB3aGV0aGVy IGl0J3MgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgbWVtb3J5LiBUaGlzDQo+IHdvdWxkIGFsc28gYWxs b3cgdG8gZ3JhZHVhbGx5IHBoYXNlIG91dCBzb2NrZXQtYmFzZWQgSUQncyBpbiBmYXZvciBvZiBo ZWFwIElEDQo+IEFQSSwgc2hvdWxkIHdlIGNob29zZSB0byBkbyBzby4NCj4gPg0KPiA+IFRoZSBk b3duc2lkZSBmb3IgdGhpcyBpcywgaXQgYWRkcyBhIGxheWVyIG9mIGluZGlyZWN0aW9uIGJldHdl ZW4gc29ja2V0IElEDQo+IGFuZCByZXNlcnZpbmcgbWVtb3J5IG9uIGEgcGFydGljdWxhciBOVU1B IG5vZGUsIGFuZCBpdCBtYWtlcyBpdCBoYXJkIHRvDQo+IHByb2R1Y2UgYSBzaW5nbGUgdmFsdWUg b2YgImhlYXAgSUQiIGluIHN1Y2ggYSB3YXkgYXMgdG8gcmVwbGljYXRlIGN1cnJlbnQNCj4gZnVu Y3Rpb25hbGl0eSBvZiBhbGxvY2F0aW5nIHdpdGggU09DS0VUX0lEX0FOWS4gTW9zdCBsaWtlbHkg dXNlciB3aWxsIGhhdmUgdG8NCj4gZXhwbGljaXRseSB0cnkgdG8gYWxsb2NhdGUgb24gYWxsIHNv Y2tldHMsIHVubGVzcyB3ZSBrZWVwIG9sZCBBUEkncyBhcm91bmQgaW4NCj4gcGFyYWxsZWwuDQo+ ID4NCj4gPiBGaW5hbGx5LCBhIGZvdXJ0aCB3YXkgd291bGQgYmUgdG8gYWJ1c2UgdGhlIHNvY2tl dCBJRCB0byBhbHNvIG1lYW4NCj4gc29tZXRoaW5nIGVsc2UsIHdoaWNoIGlzIGFuIGFwcHJvYWNo IGkndmUgc2VlbiBudW1lcm91cyB0aW1lcyBhbHJlYWR5LCBhbmQNCj4gb25lIHRoYXQgaSBkb24n dCBsaWtlLiBXZSBjb3VsZCByZWdpc3RlciBuZXcgaGVhcHMgYXMgYSBuZXcsIGZha2Ugc29ja2V0 IElELA0KPiBhbmQgdXNlIHRoYXQgdG8gYWRkcmVzcyBleHRlcm5hbCBoZWFwcyAoZWFjaCBoZWFw IHdvdWxkIGdldCBpdHMgb3duDQo+IHNvY2tldCkuIFNvLCBrZWVwIGN1cnJlbnQgc29ja2V0IElE IGJlaGF2aW9yLCBidXQgZm9yIG5vbi1leGlzdGVudCBzb2NrZXRzIGl0DQo+IHdvdWxkIGJlIHBv c3NpYmxlIHRvIGJlIHJlZ2lzdGVyZWQgYXMgYSBmYWtlIHNvY2tldCBwb2ludGluZyB0byBhbiBl eHRlcm5hbA0KPiBoZWFwLg0KPiA+DQo+ID4gVGhlIHVwc2lkZSBmb3IgdGhpcyBhcHByb2FjaCB3 b3VsZCBiZSB0aGF0IG5vIEFQSSBjaGFuZ2VzIGFyZSByZXF1aXJlZA0KPiB3aGF0c29ldmVyIHRv IGV4aXN0aW5nIGxpYnJhcmllcyAtIHRoaXMgc2NoZW1lIGlzIGNvbXBhdGlibGUgd2l0aCBib3Ro IGludGVybmFsDQo+IGFuZCBleHRlcm5hbCBoZWFwcyB3aXRob3V0IGFkZGluZyBhIHNlcGFyYXRl IEFQSS4NCj4gPg0KPiA+IFRoZSBkb3duc2lkZSBpcyBiYWQgc2VtYW50aWNzIC0gInNwZWNpYWwi IHNvY2tldHMsIGhhbmRsaW5nIG9mDQo+ID4gU09DS0VUX0lEX0FOWSwgaGFuZGxpbmcgb2YgImlu dmFsaWQgc29ja2V0IiB2cy4gImludmFsaWQgc29ja2V0IHRoYXQNCj4gPiBoYXBwZW5zIHRvIGNv cnJlc3BvbmQgdG8gYW4gZXhpc3RpbmcgZXh0ZXJuYWwgaGVhcCIsIGFuZCBtYW55IG90aGVyDQo+ ID4gdGhpbmdzIHRoYXQgY2FuIGJlIGNvbmZ1c2luZy4gSSBkb24ndCBsaWtlIHRoaXMgb3B0aW9u LCBidXQgaXQncyBhbg0KPiA+IG9wdGlvbiA6KQ0KPiA+DQo+ID4gVGhvdWdodHM/IENvbW1lbnRz Pw0KPiANCj4gIzEgaXMgc3VwZXIgY2xlYW4sIGJ1dCB2ZXJ5IGRpc3J1cHRpdmUgdG8gZXZlcnlv bmUuIFZlcnkgQmFkIElNTw0KPiAjMiBpcyBhbHNvIGNsZWFuLCBidXQgYWRkcyBhIGxvdCBvZiBu ZXcgQVBJcyB0aGF0IGV2ZXJ5b25lIG5lZWRzIHRvIHVzZSBvciBhdA0KPiBsZWFzdCBpbiB0aGUg ZXh0ZXJuYWwgaGVhcCBjYXNlcy4NCj4gIzMgbm90IHN1cmUgSSBmdWxseSB1bmRlcnN0YW5kIGl0 LCBidXQgcmVwcm9kdWNpbmcgaGVhcCBJRHMgZm9yIHRlc3RpbmcgaXMgYQ0KPiBwcm9ibGVtIGFu ZCByZXF1aXJlcyBuZXcvb2xkIEFQSXMNCj4gDQo+ICM0IFZlcnkgZWFzeSB0byBhZGQsIElNTyBp dCBpcyBjbGVhbiBhbmQgdmVyeSBzbWFsbCBkaXNydXB0aW9uIHRvIGRldmVsb3BlcnMuDQo+IEl0 IGRvZXMgcmVxdWlyZSB0aGUgc3BlY2lhbCBoYW5kbGluZywgYnV0IEkgZmVlbCBpdCBpcyBPSyBh bmQgY2FuIGJlIGV4cGxhaW5lZCBpbg0KPiB0aGUgZG9jcy4gSGF2aW5nIGEgc29ja2V0IGlkIGFz IGFuIOKAmGludOKAmSBnaXZlcyB1cyBhIGxvdCByb29tIGUuZy4gaWQgPCA2NEsgaXMNCj4gbm9y bWFsIHNvY2tldCBhbmQgPiA2NEsgaXMgZXh0ZXJuYWwgaWQuDQo+IA0KPiBNeSB2b3RlIHdvdWxk IGJlICM0LCBhcyBpdCBzZWVtcyB0aGUgbGVhc3QgcmlzayBhbmQgd29yay4gOi0pDQo+IA0KV2Ug YXJlIGxpdmluZyB3aXRoICM0IChvdmVybG9hZGVkIHNvY2tldF9pZHMpIHNpbmNlIH41IHllYXJz IG5vdyBidXQgaXQgaW5kZWVkIGdlbmVyYXRlcyBzb21lIGNvbmZ1c2lvbiBhbmQgaXQgaXMgYSBr aW5kIG9mIGhhY2sgc28gaXQgbWF5IG5vdCBiZSB0aGUgYmVzdCBjaG9pY2UgZ29pbmcgZm9yd2Fy ZCBpbiBvZmZpY2lhbCByZWxlYXNlcyBidXQgZm9yIHN1cmUgaXMgdGhlIGVhc2llc3Qvc2ltcGxl c3Qgc29sdXRpb24gcmVxdWlyaW5nIHRoZSBsZWFzdCBtb2RpZmljYXRpb25zLg0KVXNpbmcgYW4g b3ZlcmxvYWRlZCBzb2NrZXRfaWQgaXMgZXNwZWNpYWxseSBkaXN0dXJiaW5nIGluIHRoZSBkdW1w IG1lbW9yeSBjb25maWcgcHJpbnRvdXQgd2hlcmUgdGhlIHVzZXIgd2lsbCBzZWUgbXVsdGlwbGUg c29ja2V0IGlkcyBvbiBhIHNpbmdsZSBzb2NrZXQgc3lzdGVtIG9yIG1vcmUgdGhhbiB0aGUgYXZh aWxhYmxlIHJlYWwgbnVtYmVyIG9mIHNvY2tldHMsIGhvd2V2ZXIgaXQgY291bGQgc3RpbGwgYmUg ZXhwbGFpbmVkIGluIHRoZSBub3RlcyBhbmQgdGhlIGRvY3VtZW50YXRpb24uDQpUaGUgYWxsb2Nh dGlvbiBiZWhhdmlvciB3aXRoIFNPQ0tFVF9JRF9BTlkgaXMgYWxzbyBhIHF1ZXN0aW9uIGFzIEkg dGhpbmsgaXQgc2hvdWxkbuKAmXQgcm9sbCBvdmVyIHRvIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUg ZXh0ZXJuYWwgaGVhcCwgd2UgZXNwZWNpYWxseSBkaXNhYmxlZCB0aGlzIGZlYXR1cmUgaW4gb3Vy IGltcGxlbWVudGF0aW9uLiBUaGUgcmVhc29uIGJlaGluZCBpcyB0aGF0IHRoZSBleHRlcm5hbCBt ZW1vcnkgbWF5IGJlIGEgbGltaXRlZCByZXNvdXJjZSB3aGVyZSBvbmx5IGV4cGxpY2l0IGFsbG9j YXRpb24gcmVxdWVzdHMgd291bGQgYmUgYWxsb3dlZCBhbmQgYWxzbyBpbiBhIG11bHRpLXByb2Nl c3MgZW52aXJvbm1lbnQgd2UgbWF5IG5vdCB3YW50IGFsbCBleHRlcm5hbCBoZWFwcyB0byBiZSBt YXBwZWQgaW50byBhbGwgb3RoZXIgcHJvY2Vzc2VzIGFkZHJlc3Mgc3BhY2UgbWVhbmluZyB0aGF0 IG5vdCBhbGwgaGVhcHMgYXJlIGFjY2Vzc2libGUgZnJvbSBldmVyeSBwcm9jZXNzIChJ4oCZbSBu b3Qgc3VyZSBpZiBpdCBpcyBwbGFubmVkIHRvIGJlIHN1cHBvcnRlZCB0aG91Z2ggYnV0IGl0IHdv dWxkIGJlIGFuIGltcG9ydGFudCBhbmQgdXNlZnVsIGZlYXR1cmUgYmFzZWQgb24gb3VyIGV4cGVy aWVuY2VzKS4NCkFueXdheSBJIHRoaW5rIHRoZSBjb25mdXNpb24gd2l0aCB0aGlzIG9wdGlvbiBj b21lcyBkdWUgdG8gdGhlIG1pc2xlYWRpbmcg4oCcc29ja2V0X2lk4oCdIG5hbWUgd2hpY2ggd291 bGQgbm90IHJlYWxseSBtZWFuIHNvY2tldCBpZCBhbnltb3JlLiBTbyB3ZSBzaG91bGQgcHJvYmFi bHkganVzdCBkb2N1bWVudCBpdCBhcyBwc2V1ZG8gc29ja2V0X2lkICBhbmQgcHJvYmxlbSBzb2x2 ZWQgd2l0aCAjNCA6KQ0KDQpUaGUgY2xlYW5lc3Qgc29sdXRpb24gaW4gbXkgb3BpbmlvbiB3b3Vs ZCBiZSAjMSB3aGljaCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoICM0IHNvIHRoYXQgdGhlIHBoeXNp Y2FsIHNvY2tldF9pZCBjb3VsZCBiZSBkaXJlY3RseSBwYXNzZWQgYXMgdGhlIGhlYXBfaWQgKG9y IHJhdGhlciBjYWxsIGl0IGFsbG9jYXRpb24gaWQgb3IganVzdCBsb2NhdGlvbj8pIHNvIHRoYXQg YmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb3VsZCBhbHNvIGJlIGtlcHQuDQpNZWFuaW5nIHRvIGFw cGx5ICMxLCBjaGFuZ2Ug4oCcc29ja2V0X2lk4oCdIHRvIOKAnGhlYXBfaWTigJ0gKG9yIOKAnGFs bG9jX2lk4oCdPykgaW4gYWxsIGZ1bmN0aW9ucyB3aGljaCBhcmUgdG9kYXkgZXhwZWN0aW5nIHRo ZSBzb2NrZXRfaWQgdG8gaW5kaWNhdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBhbGxvY2F0aW9ucyBi dXQga2VlcCBhIGRpcmVjdCBtYXBwaW5nIGZyb20gc29ja2V0X2lkIHRvIGhlYXBfaWQsIGUuZy4g YXMgS2VpdGggc3VnZ2VzdGVkIGxvd2VyIHJhbmdlIG9mIGhlYXBfaWQgd291bGQgYmUgZXF1aXZh bGVudCB0byB0aGUgc29ja2V0X2lkIGFuZCB1cHBlciByYW5nZSB3b3VsZCBiZSB0aGUgZXh0ZXJu YWwgaWQsIHRoaXMgd2F5IGV2ZW4gZXhpc3RpbmcgYXBwbGljYXRpb25zIHdvdWxkIHN0aWxsIHdv cmsgd2l0aG91dCBjaGFuZ2luZyB0aGUgY29kZSBqdXN0IGJ5IHBhc3NpbmcgdGhlIHNvY2tldF9p ZCBpbiB0aGUgaGVhcF9pZCBwYXJhbWV0ZXIuIEhvd2V2ZXIgaXQgaXMgYSBxdWVzdGlvbiB3aGF0 IHdvdWxkIGhhcHBlbiB3aXRoIHRoZSBzb2NrZXRfaWQgc3RvcmVkIGluIGRhdGEgc3RydWN0dXJl cyBzdWNoIGFzIHN0cnVjdCBydGVfbWVtcG9vbCB3aGVyZSBzb2NrZXRfaWQgaXMgc3RvcmVkIHdp dGggYSBtZWFuaW5nIOKAnFNvY2tldCBpZCBwYXNzZWQgYXQgY3JlYXRlLuKAnQ0KU09DS0VUX0lE X0FOWSB3b3VsZCBvbmx5IG1lYW4gbG93ZXIgcmFuZ2Ugb2YgaGVhcF9pZHMgKHBoeXNpY2FsIHNv Y2tldCBpZHMpIGJ1dCBub3QgdGhlIGV4dGVybmFsIGhlYXAgYW5kIGlmIG5lZWRlZCBhIG5ldyBI RUFQX0lEX0FOWSBjb3VsZCBiZSBpbnRyb2R1Y2VkLg0KDQpJZiBjaGFuZ2luZyBoZWFwX2lkIHRv IHNvY2tldF9pZCBpbiBleGlzdGluZyBmdW5jdGlvbnMgaXMgYSBiaWcgaXNzdWUgdGhlbiBvbmUg b3B0aW9uIHdvdWxkIGJlIHRvIGtlZXAgdGhlIG9yaWdpbmFsIEFQSSBhbmQgaW50cm9kdWNlIG5l dyBlcXVpdmFsZW50IGZ1bmN0aW9ucyBhbGxvd2luZyB0byB1c2UgdGhlIGhlYXBfaWQgaW5zdGVh ZCBvZiB0aGUgc29ja2V0X2lkLCBlLmcuIHJ0ZV9tZW1wb29sX2NyZWF0ZSB3b3VsZCBoYXZlIGFu IGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gdXNlIHdpdGggdGhlIGhlYXBfaWQgaW5zdGVhZCBvZiB0 aGUgc29ja2V0X2lkLg0KU29ja2V0X2lkIGNvdWxkIHRoZW4gYmUgY29udmVydGVkIHRvIGhlYXBf aWQgd2l0aCBhIG5ldyBmdW5jdGlvbiB3aGljaCBzaG91bGQgYWx3YXlzIGJlIHBvc3NpYmxlIGFu ZCBjYW4gc3RpbGwgdXNlIHRvIGRpcmVjdCBtYXBwaW5nIGFwcHJvYWNoIHdpdGggbG93ZXIvdXBw ZXIgcmFuZ2UgY29udmVudGlvbi4NClRoZSBzb2NrZXRfaWQgYmFzZWQgZnVuY3Rpb25zIHdvdWxk IHRoZW4ganVzdCBiZSB3cmFwcGVycyBjYWxsaW5nIHRoZSBoZWFwX2lkIGVxdWl2YWxlbnQgZnVu Y3Rpb24gYWZ0ZXIgY29udmVydGluZyB0aGUgc29ja2V0X2lkIHRvIGhlYXBfaWQuDQpVc2luZyBz b2NrZXRfaWQgdG8gaW5kaWNhdGUgdGhlIGxvY2F0aW9uIGNvdWxkIHN0aWxsIGJlIHJlbGV2YW50 IHNvIHRoZSBvbGQgc29ja2V0X2lkIGJhc2VkIGZ1bmN0aW9ucyBtYXkgbm90IGV2ZW4gbmVlZCB0 byBiZSBkZXByZWNhdGVkIHVubGVzcyBpdCB3b3VsZCBiZWNvbWUgaGFyZCB0byBtYWludGFpbi4N Cg0KSXJyZXNwZWN0aXZlIG9mIHRoZSBjaG9zZW4gb3B0aW9uLCBleHRlcm5hbCBoZWFwcyBzaG91 bGQgYmUgcmVnaXN0ZXJlZC9pZGVudGlmaWVkIGJ5IG5hbWUgYW5kIHRoZXJlIGNvdWxkIGJlIGEg ZnVuY3Rpb24gdG8gZmV0Y2gvbG9va3VwIHRoZSBpZCAoaGVhcF9pZCBvciBwc2V1ZG8gc29ja2V0 X2lkKSBieSByZWdpc3RlcmVkIGhlYXAgbmFtZSB3aGljaCB0aGVuIGNvdWxkIGJlIHVzZWQgaW4g dGhlIHJlbGF0ZWQgQVBJIGNhbGxzLg0KDQpJdCB3b3VsZCBhbHNvIGJlIGFub3RoZXIgd29yayBp dGVtIHRvIHVwZGF0ZSBhbGwgdGhlIGRhdGEgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RvcmluZyB0 aGUgc29ja2V0X2lkIHRvIHVzZSBpdCBhcyB0aGUgbG9jYXRpb24gaWRlbnRpZmllciBhbmQgSSB0 aGluayBmZXcgb2YgdGhlbSBtYXkgbmVlZCB0byBzdG9yZSBib3RoIHRoZSByZWFsIHBoeXNpY2Fs IHNvY2tldF9pZCBhbmQgdGhlIGhlYXBfaWQsIGUuZy4gaW4gc3RydWN0IGxjb3JlX2NvbmZpZyB3 aGVyZSB0aGUgdXNlciBtYXkgd2FudCB0byBrbm93IHRoZSByZWFsIHBoeXNpY2FsIHNvY2tldCBp ZCBidXQgd2FudCB0byBzZXQgc3BlY2lmaWMgaGVhcF9pZCBhcyB0aGUgZGVmYXVsdCBhbGxvY2F0 aW9uIGxvY2F0aW9uIGZvciB0aGUgZ2l2ZW4gbGNvcmUuDQoNCj4gPg0KPiA+IEkgbXlzZWxmIHN0 aWxsIGZhdm9yIHRoZSBzZWNvbmQgd2F5LCBob3dldmVyIHRoZXJlIGFyZSBnb29kIGFyZ3VtZW50 cyB0bw0KPiBiZSBtYWRlIGZvciBlYWNoIG9mIHRoZXNlIG9wdGlvbnMuDQo+ID4NCj4gPiAtLQ0K PiA+IFRoYW5rcywNCj4gPiBBbmF0b2x5DQo+IA0KPiBSZWdhcmRzLA0KPiBLZWl0aA0KDQpUaGFu a3MsDQogTGFzemxvDQo=