From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80083.outbound.protection.outlook.com [40.107.8.83]) by dpdk.org (Postfix) with ESMTP id 69B291B188; Fri, 5 Oct 2018 22:29:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lAU9f0w4NsdacijoEVfleLeiUB2H86g9u+z8rziRqEo=; b=G4+n3VIJbqdRB1OR3qByfNYWBaKRXqsD+c2R9slMujLI+DT2CJoUsknaMoa2TySUyRMcxUwOTE3+db0GdDYMVpX7ICCMZNGdacfiKP81+JSQ6hydT96pMyvf5/xN8gKVTH4SDfCAVW1uNALtTNiM7GPeR4qqyX/X/bdi+iKBEfI= Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.29) by AM6PR08MB3000.eurprd08.prod.outlook.com (52.135.163.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Fri, 5 Oct 2018 20:29:33 +0000 Received: from AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928]) by AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928%2]) with mapi id 15.20.1185.027; Fri, 5 Oct 2018 20:29:33 +0000 From: Honnappa Nagarahalli To: Ola Liljedahl , Jerin Jacob CC: "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , "dev@dpdk.org" , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUXIR8HYDms5kGFkyaw4kWx/U6y6UQgHYAgAAF34CAACPDgIAAFyZAgAAhgYCAABBDgIAAHR2ggAAHygCAAADd8A== Date: Fri, 5 Oct 2018 20:29:33 +0000 Message-ID: References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> <20181005170725.GA18671@jerin> <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.com> In-Reply-To: <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.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=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR08MB3000; 6:BrEhxdV//f8nFgcRqxNDE6eQmNWNFC3Eu4uCXI8xOZABI37IXIsut8qIjevI1sBtBSk+BfDQXMptrBI6EX4e7TM7EmO1Gp7Eilqdr12EeA/MNTm7/BU/1vKn6xTIO5w2uJV3giSkbkjLFGTGOET9QxV6519Y2cwxhN0tdRLLLlcjnV41/UtAZ3ijBiK2tCrtgAUjDTXcC6bl8L6wBirjv+c3Zm0pTl2vW7JT1B1CExrxFuZbOsroCMkPEe5NGYQmsWFcnKC7VzNhlVhMDO0ROY+k62RBT+rKdYwkwtlgNafA/glO8KsnJTQKVq8argZtOOpREFonvNJm5nFRrFoIhuKmIXj8qVvbwoddEjJrUIttf+xWKI27wPmxhe/hkIOzUBqQXhD/SYv2h4SSZbWbYWjvnjKUawG0YtnnsvFs7Mphk1lU6sqXKwz6Ro68RFPDk92DkQUfxDOIYwYjXC9k5A==; 5:y/oMqnUHYZdJD5JB7YcG/0Yw7Vi9yQER6ccuVfCN5gxg1dMZ9R/7PmJyHU0Ffw/4g4FiIEMs7+xFXRsc9OUfRJZhBHKC96eaqqLMFawRZk3MZnzrvkI6RIoHGN8oCThkWQL0aM78yeLBP1a8brCrOOO06cF+rU/q2dBBkIUcgg0=; 7:vGlGmS4FIhOvQQM37xBFWBR9/kJkdArEVuTrJGWCIOF+pIUUjcMdP8dldWhZ6k+S6VygDBlAjmZc+zuofs0lobLzMxZfMRtZwtirEcfIQwJl7ACK3wDlxmp1mSAca1hG/9mHLAfODzyBay1o6eYMJObSAXMjGBBKDGJWJzjIYyc/2EsZAYkotaWdFWRrnndJf61+KkRI4KVnBAFXoDXQd4V2HyLiEvgYBpUPBAho6cQqZ1ZnWlmJ0ujmIfBDLQ8D x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 43582755-bc5f-4534-13cd-08d62b0142d3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB3000; x-ms-traffictypediagnostic: AM6PR08MB3000: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(100405760836317)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051); SRVR:AM6PR08MB3000; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB3000; x-forefront-prvs: 0816F1D86E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(346002)(136003)(366004)(39860400002)(189003)(199004)(13464003)(53936002)(86362001)(6246003)(186003)(575784001)(26005)(53946003)(316002)(6116002)(3846002)(74316002)(7736002)(68736007)(4326008)(966005)(476003)(446003)(11346002)(14444005)(478600001)(256004)(305945005)(14454004)(345774005)(25786009)(8676002)(81166006)(81156014)(76176011)(55016002)(53546011)(6506007)(72206003)(6306002)(102836004)(9686003)(33656002)(7696005)(110136005)(5250100002)(54906003)(99286004)(229853002)(105586002)(6436002)(93886005)(8936002)(97736004)(106356001)(4744004)(5660300001)(66066001)(486006)(2906002)(71190400001)(71200400001)(2900100001)(10126625002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3000; H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: NdFGDzJfY7gjBUTAVq7t+7wSZrh5ZGn71LpTEC9sxfOUg4RVESdqgqesAUjPAwvQMW5l99+kxs3v2J9i9PzjdSO061gU4fvTnEW+/OGsbe/VOeIaH/HnrWGIMVvTq/FSMPykO4uyc6BW/3mn/pgcWZBZ/4WWXzHEPOjfvsnKHCD3PMUZO4dln/BOjdH8bK4yop2LjYY2gOS88qK1riiBBHASgO2FnC5GQuKQaSW6LwM8nOJ+ZqPB3AXezoc3m5VY4q25a943/eqrFzcjs/TGsBAiTWI516iczdrl3vVsXAzQOdWBIH4eOFXaAt88ZNQUq/m6aCRl00TYYlXbRl6ew6GrtgBArIm5i+PN+orafig= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43582755-bc5f-4534-13cd-08d62b0142d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2018 20:29:33.4344 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3000 Subject: Re: [dpdk-dev] [PATCH v3 1/3] ring: read tail using atomic load 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: Fri, 05 Oct 2018 20:29:35 -0000 PiANCj4gSSBkb3VidCBpdCBpcyBwb3NzaWJsZSB0byBiZW5jaG1hcmsgd2l0aCBzdWNoIGEgcHJl Y2lzaW9uIHNvIHRvIHNlZSB0aGUNCj4gcG90ZW50aWFsIGRpZmZlcmVuY2Ugb2Ygb25lIEFERCBp bnN0cnVjdGlvbi4NCj4gSnVzdCBjaGFuZ2VzIGluIGZ1bmN0aW9uIGFsaWdubWVudCBjYW4gYWZm ZWN0IHBlcmZvcm1hbmNlIGJ5IHBlcmNlbnRzLiBBbmQNCj4gdGhlIG5hdHVyYWwgdmFyaWF0aW9u IHdoZW4gbm90IHVzaW5nIGEgMTAwJSBkZXRlcm1pbmlzdGljIHN5c3RlbSBpcyBnb2luZyB0bw0K PiBiZSBhIGxvdCBsYXJnZXIgdGhhbiBvbmUgY3ljbGUgcGVyIHJpbmcgYnVmZmVyIG9wZXJhdGlv bi4NCj4gDQo+IFNvbWUgb2YgdGhlIG90aGVyIHBhdGNoZXMgYXJlIGFsc28gZm9yIGNvcnJlY3Ru ZXNzIChlLmcuIGxvYWQtYWNxdWlyZSBvZiB0YWlsKQ0KVGhlIGRpc2N1c3Npb24gaXMgYWJvdXQg dGhpcyBwYXRjaCBhbG9uZS4gT3RoZXIgcGF0Y2hlcyBhcmUgYWxyZWFkeSBBY2tlZC4NCg0KPiBz byB3aGlsZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgbWF5IGJlIGludGVyZXN0aW5nLCB3ZSBj YW4ndCBza2lwIGEgYnVnDQo+IGZpeCBqdXN0IGJlY2F1c2UgaXQgcHJvdmVzIHRvIGRlY3JlYXNl IHBlcmZvcm1hbmNlLg0KSU1PLCB0aGlzIHBhdGNoIGlzIG5vdCBhIGJ1ZyBmaXggLSBpbiB0ZXJt cyBvZiBpdCBmaXhpbmcgYW55IGZhaWx1cmVzIHdpdGggdGhlIGN1cnJlbnQgY29kZS4NCg0KPiAN Cj4gLS0gT2xhDQo+IA0KPiDvu79PbiAwNS8xMC8yMDE4LCAyMjowNiwgIkhvbm5hcHBhIE5hZ2Fy YWhhbGxpIg0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4gd3JvdGU6DQo+IA0KPiAg ICAgSGkgSmVyaW4sDQo+ICAgICAJVGhhbmsgeW91IGZvciBnZW5lcmF0aW5nIHRoZSBkaXNhc3Nl bWJseSwgdGhhdCBpcyByZWFsbHkgaGVscGZ1bC4gSQ0KPiBhZ3JlZSB3aXRoIHlvdSB0aGF0IHdl IGhhdmUgdGhlIG9wdGlvbiBvZiBtb3ZpbmcgcGFydHMgMiBhbmQgMyBmb3J3YXJkLiBJDQo+IHdp bGwgbGV0IEdhdmluIHRha2UgYSBkZWNpc2lvbi4NCj4gDQo+ICAgICBJIHN1Z2dlc3QgdGhhdCB3 ZSBydW4gYmVuY2htYXJrcyBvbiB0aGlzIHBhdGNoIGFsb25lIGFuZCBpbiBjb21iaW5hdGlvbg0K PiB3aXRoIG90aGVyIHBhdGNoZXMgaW4gdGhlIHNlcmllcy4gV2UgaGF2ZSBmZXcgQXJtIG1hY2hp bmVzIGFuZCB3ZSB3aWxsIHJ1bg0KPiBvbiBhbGwgb2YgdGhlbSBhbG9uZyB3aXRoIHg4Ni4gV2Ug dGFrZSBhIGRlY2lzaW9uIGJhc2VkIG9uIHRoYXQuDQo+IA0KPiAgICAgV291bGQgdGhhdCBiZSBh IHdheSB0byBtb3ZlIGZvcndhcmQ/IEkgdGhpbmsgdGhpcyBzaG91bGQgYWRkcmVzcyBib3RoDQo+ IHlvdXIgYW5kIE9sYSdzIGNvbmNlcm5zLg0KPiANCj4gICAgIEkgYW0gb3BlbiBmb3Igb3RoZXIg c3VnZ2VzdGlvbnMgYXMgd2VsbC4NCj4gDQo+ICAgICBUaGFuayB5b3UsDQo+ICAgICBIb25uYXBw YQ0KPiANCj4gICAgID4NCj4gICAgID4gU28geW91IGRvbid0IHdhbnQgdG8gd3JpdGUgdGhlIHBy b3BlciBDMTEgY29kZSBiZWNhdXNlIHRoZSBjb21waWxlcg0KPiAgICAgPiBnZW5lcmF0ZXMgb25l IGV4dHJhIGluc3RydWN0aW9uIHRoYXQgd2F5Pw0KPiAgICAgPiBZb3UgZG9uJ3QgZXZlbiBrbm93 IGlmIHRoYXQgb25lIGV4dHJhIGluc3RydWN0aW9uIGhhcyBhbnkgbWVhc3VyYWJsZQ0KPiAgICAg PiBpbXBhY3Qgb24gcGVyZm9ybWFuY2UuIEUuZy4gaXQgY291bGQgYmUgaXNzdWVkIHRoZSBjeWNs ZSBiZWZvcmUgdG9nZXRoZXINCj4gICAgID4gd2l0aCBvdGhlciBpbnN0cnVjdGlvbnMuDQo+ICAg ICA+DQo+ICAgICA+IFdlIGNhbiBjb21wbGFpbiB0byB0aGUgY29tcGlsZXIgd3JpdGVycyB0aGF0 IHRoZSBjb2RlIGdlbmVyYXRpb24gZm9yDQo+ICAgICA+IF9fYXRvbWljX2xvYWRfbigsIF9fQVRP TUlDX1JFTEFYRUQpIGlzIG5vdCBvcHRpbWFsIChhdCBsZWFzdCBvbg0KPiAgICAgPiBBUk0vQTY0 KS4gSSB0aGluayB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBfX2F0b21pYyBidWlsdGlucyBvbmx5 IGFjY2VwdA0KPiBhDQo+ICAgICA+IGJhc2UgYWRkcmVzcyB3aXRob3V0IGFueSBvZmZzZXQgYW5k IHRoaXMgaXMgcG9zc2libHkgYmVjYXVzZSBlLmcuDQo+IGxvYWQvc3RvcmUNCj4gICAgID4gZXhj bHVzaXZlIChMRFgvU1RYKSBhbmQgbG9hZC1hY3F1aXJlIChMREFSKSBhbmQgc3RvcmUtcmVsZWFz ZSAoU1RMUikNCj4gb25seQ0KPiAgICAgPiBhY2NlcHQgYSBiYXNlIHJlZ2lzdGVyIHdpdGggbm8g b2Zmc2V0LiBTbyBhbnkgb2Zmc2V0IGhhcyB0byBiZSBhZGRlZA0KPiBiZWZvcmUNCj4gICAgID4g dGhlIGFjdHVhbCAiYXRvbWljIiBpbnN0cnVjdGlvbiwgTERSIGluIHRoaXMgY2FzZS4NCj4gICAg ID4NCj4gICAgID4NCj4gICAgID4gLS0gT2xhDQo+ICAgICA+DQo+ICAgICA+DQo+ICAgICA+IE9u IDA1LzEwLzIwMTgsIDE5OjA3LCAiSmVyaW4gSmFjb2IiIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3 b3Jrcy5jb20+DQo+ICAgICA+IHdyb3RlOg0KPiAgICAgPg0KPiAgICAgPiAgICAgLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gICAgID4gICAgID4gRGF0ZTogRnJpLCA1IE9jdCAyMDE4IDE1 OjExOjQ0ICswMDAwDQo+ICAgICA+ICAgICA+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxI b25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KPiAgICAgPiAgICAgPiBUbzogIkFuYW55ZXYs IEtvbnN0YW50aW4iIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPiwgT2xhDQo+ICAgICA+ IExpbGplZGFobA0KPiAgICAgPiAgICAgPiAgPE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4sICJHYXZp biBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIg0KPiAgICAgPiAgICAgPiAgPEdhdmluLkh1QGFy bS5jb20+LCBKZXJpbiBKYWNvYg0KPiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0K PiAgICAgPiAgICAgPiBDQzogImRldkBkcGRrLm9yZyIgPGRldkBkcGRrLm9yZz4sIFN0ZXZlIENh cHBlcg0KPiAgICAgPiA8U3RldmUuQ2FwcGVyQGFybS5jb20+LCBuZA0KPiAgICAgPiAgICAgPiAg PG5kQGFybS5jb20+LCAic3RhYmxlQGRwZGsub3JnIiA8c3RhYmxlQGRwZGsub3JnPg0KPiAgICAg PiAgICAgPiBTdWJqZWN0OiBSRTogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5n IGF0b21pYyBsb2FkDQo+ICAgICA+ICAgICA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4g SGkgSmVyaW4sDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4NCj4gICAgID4gICAgID4gPiA+ ICAgICAgICAgPiBUaGFua3MgZm9yIHlvdXIgcmV2aWV3LCBpbmxpbmUgY29tbWVudHMgZnJvbSBv dXINCj4gaW50ZXJuYWwNCj4gICAgID4gICAgID4gPiBkaXNjdXNzaW9ucy4NCj4gICAgID4gICAg ID4gPiA+ICAgICAgICAgPg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+IEJSLiBHYXZpbg0K PiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCj4g ICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+IFNlbnQ6IFNhdHVyZGF5LCBTZXB0ZW1iZXIgMjks IDIwMTggNjo0OSBQTQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gVG86IEdhdmluIEh1 IChBcm0gVGVjaG5vbG9neSBDaGluYSkNCj4gPEdhdmluLkh1QGFybS5jb20+DQo+ICAgICA+ICAg ICA+ID4gPiAgICAgICAgID4gPiBDYzogZGV2QGRwZGsub3JnOyBIb25uYXBwYSBOYWdhcmFoYWxs aQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFy bS5jb20+OyBTdGV2ZSBDYXBwZXINCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+IDxTdGV2 ZS5DYXBwZXJAYXJtLmNvbT47IE9sYSBMaWxqZWRhaGwNCj4gICAgID4gPE9sYS5MaWxqZWRhaGxA YXJtLmNvbT47DQo+ICAgICA+ICAgICA+ID4gbmQNCj4gICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+IDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnDQo+ICAgICA+ICAgICA+ID4gPiAgICAg ICAgID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5n IGF0b21pYw0KPiBsb2FkDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPg0KPiAgICAgPiAg ICAgPiA+ID4gICAgICAgICA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gICAgID4g ICAgID4gPiA+ICAgICAgICAgPiA+ID4gRGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiAr MDgwMA0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBGcm9tOiBHYXZpbiBIdSA8Z2F2 aW4uaHVAYXJtLmNvbT4NCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gVG86IGRldkBk cGRrLm9yZw0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJt LmNvbSwNCj4gSG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbSwNCj4gICAgID4gICAgID4gPiA+ ICAgICAgICAgPiA+ID4gc3RldmUuY2FwcGVyQGFybS5jb20sICBPbGEuTGlsamVkYWhsQGFybS5j b20sDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IGplcmluLmphY29iQGNhdml1bW5l dHdvcmtzLmNvbSwgbmRAYXJtLmNvbSwNCj4gICAgID4gICAgID4gPiBzdGFibGVAZHBkay5vcmcN Cj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gU3ViamVjdDogW1BBVENIIHYzIDEvM10g cmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYw0KPiBsb2FkDQo+ICAgICA+ICAgICA+ID4gPiAg ICAgICAgID4gPiA+IFgtTWFpbGVyOiBnaXQtc2VuZC1lbWFpbCAyLjcuNA0KPiAgICAgPiAgICAg PiA+ID4gICAgICAgICA+ID4gPg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBFeHRl cm5hbCBFbWFpbA0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPg0KPiAgICAgPiAgICAg PiA+ID4gICAgICAgICA+ID4gPiBJbiB1cGRhdGVfdGFpbCwgcmVhZCBodC0+dGFpbCB1c2luZw0K PiAgICAgPiBfX2F0b21pY19sb2FkLkFsdGhvdWdoIHRoZQ0KPiAgICAgPiAgICAgPiA+ID4gICAg ICAgICA+ID4gPiBjb21waWxlciBjdXJyZW50bHkgc2VlbXMgdG8gYmUgZG9pbmcgdGhlIHJpZ2h0 IHRoaW5nDQo+IGV2ZW4NCj4gICAgID4gd2l0aG91dA0KPiAgICAgPiAgICAgPiA+ID4gICAgICAg ICA+ID4gPiBfYXRvbWljX2xvYWQsIHdlIGRvbid0IHdhbnQgdG8gZ2l2ZSB0aGUgY29tcGlsZXIN Cj4gICAgID4gZnJlZWRvbSB0bw0KPiAgICAgPiAgICAgPiA+IG9wdGltaXNlDQo+ICAgICA+ICAg ICA+ID4gPiAgICAgICAgID4gPiA+IHdoYXQgc2hvdWxkIGJlIGFuIGF0b21pYyBsb2FkLCBpdCBz aG91bGQgbm90IGJlDQo+IGFyYml0YXJpbHkNCj4gICAgID4gbW92ZWQNCj4gICAgID4gICAgID4g PiA+ICAgICAgICAgPiA+ID4gYXJvdW5kLg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4g Pg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBGaXhlczogMzkzNjhlYmZjNiAoInJp bmc6IGludHJvZHVjZSBDMTEgbWVtb3J5IG1vZGVsDQo+ICAgICA+IGJhcnJpZXINCj4gICAgID4g ICAgID4gPiBvcHRpb24iKQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBDYzogc3Rh YmxlQGRwZGsub3JnDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQo+ICAgICA+ICAg ICA+ID4gPiAgICAgICAgID4gPiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBh cm0uY29tPg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBSZXZpZXdlZC1ieTogSG9u bmFwcGEgTmFnYXJhaGFsbGkNCj4gICAgID4gICAgID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlA YXJtLmNvbT4NCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gUmV2aWV3ZWQtYnk6IFN0 ZXZlIENhcHBlciA8c3RldmUuY2FwcGVyQGFybS5jb20+DQo+ICAgICA+ICAgICA+ID4gPiAgICAg ICAgID4gPiA+IFJldmlld2VkLWJ5OiBPbGEgTGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5j b20+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IC0tLQ0KPiAgICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiAgbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2MxMV9tZW0uaCB8IDMg KystDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4g PiA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gVGhlIHJlYWQgb2YgaHQtPnRhaWwgbmVl ZHMgdG8gYmUgYXRvbWljLCBhIG5vbi1hdG9taWMNCj4gcmVhZA0KPiAgICAgPiB3b3VsZCBub3QN Cj4gICAgID4gICAgID4gPiBiZSBjb3JyZWN0Lg0KPiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4g ICAgID4gPiA+ICAgICAgICAgVGhhdCdzIGEgMzJiaXQgdmFsdWUgbG9hZC4NCj4gICAgID4gICAg ID4gPiA+ICAgICAgICAgQUZBSUsgb24gYWxsIENQVXMgdGhhdCB3ZSBzdXBwb3J0IGl0IGlzIGFu IGF0b21pYyBvcGVyYXRpb24uDQo+ICAgICA+ICAgICA+ID4gPiAgICAgW09sYV0gQnV0IHRoYXQg dGhlIG9yZGluYXJ5IEMgbG9hZCBpcyB0cmFuc2xhdGVkIHRvIGFuIGF0b21pYw0KPiBsb2FkDQo+ ICAgICA+IGZvciB0aGUNCj4gICAgID4gICAgID4gPiB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGlu Y2lkZW50YWwuDQo+ICAgICA+ICAgICA+ID4gPg0KPiAgICAgPiAgICAgPiA+ID4gICAgIElmIHRo ZSBkZXNpZ24gcmVxdWlyZXMgYW4gYXRvbWljIGxvYWQgKHdoaWNoIGlzIHRoZSBjYXNlIGhlcmUp LA0KPiB3ZQ0KPiAgICAgPiAgICAgPiA+ID4gc2hvdWxkIHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0 aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRoZW4gd2UgY2FuDQo+IGJlDQo+ICAgICA+IHN1cmUgaXQgd2ls bA0KPiAgICAgPiAgICAgPiA+IGFsd2F5cyBiZSB0cmFuc2xhdGVkIHRvIGFuIGF0b21pYyBsb2Fk IGZvciB0aGUgdGFyZ2V0IGluIHF1ZXN0aW9uDQo+IG9yDQo+ICAgICA+ICAgICA+ID4gY29tcGls YXRpb24gd2lsbCBmYWlsLiBXZSBkb24ndCBoYXZlIHRvIGRlcGVuZCBvbiBhc3N1bXB0aW9ucy4N Cj4gICAgID4gICAgID4gPg0KPiAgICAgPiAgICAgPiA+IFdlIGFsbCBrbm93IHRoYXQgMzJiaXQg bG9hZC9zdG9yZSBvbiBjcHUgd2Ugc3VwcG9ydCAtIGFyZSBhdG9taWMuDQo+ICAgICA+ICAgICA+ ID4gSWYgaXQgd291bGRuJ3QgYmUgdGhlIGNhc2UgLSBEUERLIHdvdWxkIGJlIGJyb2tlbiBpbiBk b3plbiBwbGFjZXMuDQo+ICAgICA+ICAgICA+ID4gU28gd2hhdCB0aGUgcG9pbnQgdG8gcHJldGVu ZCB0aGF0ICJpdCBtaWdodCBiZSBub3QgYXRvbWljIiBpZiB3ZQ0KPiBkbw0KPiAgICAgPiBrbm93 IGZvcg0KPiAgICAgPiAgICAgPiA+IHN1cmUgdGhhdCBpdCBpcz8NCj4gICAgID4gICAgID4gPiBJ IGRvIHVuZGVyc3RhbmQgdGhhdCB5b3Ugd2FudCB0byB1c2UgYXRvbWljX2xvYWQocmVsYXhlZCkg aGVyZQ0KPiBmb3INCj4gICAgID4gICAgID4gPiBjb25zaXN0ZW5jeSwgYW5kIHRvIGNvbmZvcm0g d2l0aCBDMTEgbWVtLW1vZGVsIGFuZCBJIGRvbid0IHNlZQ0KPiBhbnkNCj4gICAgID4gaGFybSBp bg0KPiAgICAgPiAgICAgPiA+IHRoYXQuDQo+ICAgICA+ICAgICA+IFdlIGNhbiBjb250aW51ZSB0 byBkaXNjdXNzIHRoZSB0b3BpYywgaXQgaXMgYSBnb29kIGRpc2N1c3Npb24uIEJ1dCwgYXMNCj4g ZmFyDQo+ICAgICA+IHRoaXMgcGF0Y2ggaXMgY29uY2VybmVkLCBjYW4gSSBjb25zaWRlciB0aGlz IGFzIHVzIGhhdmluZyBhIGNvbnNlbnN1cz8NCj4gVGhlDQo+ICAgICA+IGZpbGUgcnRlX3Jpbmdf YzExX21lbS5oIGlzIHNwZWNpZmljYWxseSBmb3IgQzExIG1lbW9yeSBtb2RlbCBhbmQgSSBhbHNv DQo+IGRvDQo+ICAgICA+IG5vdCBzZWUgYW55IGhhcm0gaW4gaGF2aW5nIGNvZGUgdGhhdCBjb21w bGV0ZWx5IGNvbmZvcm1zIHRvIEMxMQ0KPiBtZW1vcnkNCj4gICAgID4gbW9kZWwuDQo+ICAgICA+ DQo+ICAgICA+ICAgICBIYXZlIHlvdSBndXlzIGNoZWNrZWQgdGhlIG91dHB1dCBhc3NlbWJseSB3 aXRoIGFuZCB3aXRob3V0IGF0b21pYw0KPiAgICAgPiBsb2FkPw0KPiAgICAgPiAgICAgVGhlcmUg aXMgYW4gZXh0cmEgImFkZCIgaW5zdHJ1Y3Rpb24gd2l0aCBhdCBsZWFzdCB0aGUgY29kZSBJIGhh dmUNCj4gY2hlY2tlZC4NCj4gICAgID4gICAgIEkgdGhpbmssIGNvbXBpbGVyIGlzIG5vdCBzbWFy dCBlbm91Z2ggdG8gdW5kZXJzdGFuZCBpdCBpcyBhIGRlYWQgY29kZQ0KPiBmb3INCj4gICAgID4g ICAgIGFybTY0Lg0KPiAgICAgPg0KPiAgICAgPiAgICAg4p6cIFt+XSAkIGFhcmNoNjQtbGludXgt Z251LWdjYyAtdg0KPiAgICAgPiAgICAgVXNpbmcgYnVpbHQtaW4gc3BlY3MuDQo+ICAgICA+ICAg ICBDT0xMRUNUX0dDQz1hYXJjaDY0LWxpbnV4LWdudS1nY2MNCj4gICAgID4gICAgIENPTExFQ1Rf TFRPX1dSQVBQRVI9L3Vzci9saWIvZ2NjL2FhcmNoNjQtbGludXgtZ251LzguMi4wL2x0by0NCj4g ICAgID4gd3JhcHBlcg0KPiAgICAgPiAgICAgVGFyZ2V0OiBhYXJjaDY0LWxpbnV4LWdudQ0KPiAg ICAgPiAgICAgQ29uZmlndXJlZCB3aXRoOiAvYnVpbGQvYWFyY2g2NC1saW51eC1nbnUtZ2NjL3Ny Yy9nY2MtOC4yLjAvY29uZmlndXJlDQo+ICAgICA+ICAgICAtLXByZWZpeD0vdXNyIC0tcHJvZ3Jh bS1wcmVmaXg9YWFyY2g2NC1saW51eC1nbnUtDQo+ICAgICA+ICAgICAtLXdpdGgtbG9jYWwtcHJl Zml4PS91c3IvYWFyY2g2NC1saW51eC1nbnUNCj4gICAgID4gICAgIC0td2l0aC1zeXNyb290PS91 c3IvYWFyY2g2NC1saW51eC1nbnUNCj4gICAgID4gICAgIC0td2l0aC1idWlsZC1zeXNyb290PS91 c3IvYWFyY2g2NC1saW51eC1nbnUgLS1saWJkaXI9L3Vzci9saWINCj4gICAgID4gICAgIC0tbGli ZXhlY2Rpcj0vdXNyL2xpYiAtLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudQ0KPiAgICAgPiAgICAg LS1ob3N0PXg4Nl82NC1wYy1saW51eC1nbnUgLS1idWlsZD14ODZfNjQtcGMtbGludXgtZ251IC0t ZGlzYWJsZS1ubHMNCj4gICAgID4gICAgIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyAtLWVuYWJs ZS1zaGFyZWQgLS1lbmFibGUtdGhyZWFkcz1wb3NpeA0KPiAgICAgPiAgICAgLS13aXRoLXN5c3Rl bS16bGliIC0td2l0aC1pc2wgLS1lbmFibGUtX19jeGFfYXRleGl0DQo+ICAgICA+ICAgICAtLWRp c2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUtY2xvY2FsZT1nbnUNCj4gICAgID4g ICAgIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIC0tZGlzYWJsZS1saWJzc3AgLS1lbmFibGUtZ251 LXVuaXF1ZS1vYmplY3QNCj4gICAgID4gICAgIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCAtLWVu YWJsZS1sdG8gLS1lbmFibGUtcGx1Z2luDQo+ICAgICA+ICAgICAtLWVuYWJsZS1pbnN0YWxsLWxp YmliZXJ0eSAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251DQo+ICAgICA+ICAgICAtLWVuYWJs ZS1nbnUtaW5kaXJlY3QtZnVuY3Rpb24gLS1kaXNhYmxlLW11bHRpbGliIC0tZGlzYWJsZS13ZXJy b3INCj4gICAgID4gICAgIC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UNCj4gICAgID4gICAgIFRo cmVhZCBtb2RlbDogcG9zaXgNCj4gICAgID4gICAgIGdjYyB2ZXJzaW9uIDguMi4wIChHQ0MpDQo+ ICAgICA+DQo+ICAgICA+DQo+ICAgICA+ICAgICAjIGJ1aWxkIHNldHVwDQo+ICAgICA+ICAgICBt YWtlIC1qIDggY29uZmlnIFQ9YXJtNjQtYXJtdjhhLWxpbnV4YXBwLWdjYyAgQ1JPU1M9YWFyY2g2 NC1saW51eC0NCj4gZ251LQ0KPiAgICAgPiAgICAgbWFrZSAtaiA4IHRlc3QtYnVpbGQgQ1JPU1M9 YWFyY2g2NC1saW51eC1nbnUtDQo+ICAgICA+DQo+ICAgICA+ICAgICAjIGdlbmVyYXRlIGFzbQ0K PiAgICAgPiAgICAgYWFyY2g2NC1saW51eC1nbnUtZ2RiIC1iYXRjaCAtZXggJ2ZpbGUgYnVpbGQv YXBwL3Rlc3QgJyAtZXgNCj4gJ2Rpc2Fzc2VtYmxlIC9ycw0KPiAgICAgPiBidWNrZXRfZW5xdWV1 ZV9zaW5nbGUnDQo+ICAgICA+DQo+ICAgICA+ICAgICBJIGhhdmUgdXBsb2FkZWQgZ2VuZXJhdGVk IGZpbGUgZm9yIHlvdXIgY29udmVuaWVuY2UNCj4gICAgID4gICAgIHdpdGhfYXRvbWljX2xvYWQu dHh0KGluY2x1ZGVzIHBhdGNoIDEsMiwzKQ0KPiAgICAgPiAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gICAgID4gICAgIGh0dHBzOi8vcGFzdGViaW4uY29tL1NRNncxeVJ1DQo+ICAgICA+ DQo+ICAgICA+ICAgICB3aXRob3V0X2F0b21pY19sb2FkLnR4dChpbmNsdWRlcyBwYXRjaCAyLDMp DQo+ICAgICA+ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgICAgPiAgICAgaHR0cHM6 Ly9wYXN0ZWJpbi5jb20vQnB2bkQwQ0ENCj4gICAgID4NCj4gICAgID4NCj4gICAgID4gICAgIHdp dGhvdXRfYXRvbWljDQo+ICAgICA+ICAgICAtLS0tLS0tLS0tLS0tDQo+ICAgICA+ICAgICAyMyAg ICAgICAgICAgICAgaWYgKCFzaW5nbGUpDQo+ICAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGQy OTAgPCsyNDA+OiAgIDg1IDAwIDAwIDM1ICAgICBjYm56ICAgIHc1LCAweDY4ZDJhMA0KPiAgICAg PiA8YnVja2V0X2VucXVldWVfc2luZ2xlKzI1Nj4NCj4gICAgID4gICAgICAgIDB4MDAwMDAwMDAw MDY4ZDI5NCA8KzI0ND46ICAgODIgMDQgNDAgYjkgICAgIGxkciAgICAgdzIsIFt4NCwgIzRdDQo+ ICAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGQyOTggPCsyNDg+OiAgIDVmIDAwIDAxIDZiICAg ICBjbXAgICAgIHcyLCB3MQ0KPiAgICAgPiAgICAgICAgMHgwMDAwMDAwMDAwNjhkMjljIDwrMjUy PjogICAyMSAwMSAwMCA1NCAgICAgYi5uZSAgICAweDY4ZDJjMA0KPiAgICAgPiA8YnVja2V0X2Vu cXVldWVfc2luZ2xlKzI4OD4gIC8vIGIuYW55DQo+ICAgICA+DQo+ICAgICA+ICAgICAyNCAgICAg ICAgICAgICAgICAgICAgICB3aGlsZSAodW5saWtlbHkoaHQtPnRhaWwgIT0gb2xkX3ZhbCkpDQo+ ICAgICA+ICAgICAyNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wYXVzZSgpOw0K PiAgICAgPg0KPiAgICAgPg0KPiAgICAgPiAgICAgd2l0aF9hdG9taWMNCj4gICAgID4gICAgIC0t LS0tLS0tLS0tDQo+ICAgICA+ICAgICAyMyAgICAgICAgICAgICAgaWYgKCFzaW5nbGUpDQo+ICAg ICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGNlYjAgPCsyNDA+OiAgIDAwIDEwIDA0IDkxICAgICBh ZGQgICAgIHgwLCB4MCwgIzB4MTA0DQo+ICAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGNlYjQg PCsyNDQ+OiAgIDg0IDAwIDAwIDM1ICAgICBjYm56ICAgIHc0LCAweDY4Y2VjNA0KPiAgICAgPiA8 YnVja2V0X2VucXVldWVfc2luZ2xlKzI2MD4NCj4gICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4 Y2ViOCA8KzI0OD46ICAgMDIgMDAgNDAgYjkgICAgIGxkciAgICAgdzIsIFt4MF0NCj4gICAgID4g ICAgICAgIDB4MDAwMDAwMDAwMDY4Y2ViYyA8KzI1Mj46ICAgM2YgMDAgMDIgNmIgICAgIGNtcCAg ICAgdzEsIHcyDQo+ICAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGNlYzAgPCsyNTY+OiAgIDAx IDA5IDAwIDU0ICAgICBiLm5lICAgIDB4NjhjZmUwDQo+ICAgICA+IDxidWNrZXRfZW5xdWV1ZV9z aW5nbGUrNTQ0PiAgLy8gYi5hbnkNCj4gICAgID4NCj4gICAgID4gICAgIDI0ICAgICAgICAgICAg ICAgICAgICAgIHdoaWxlICh1bmxpa2VseShvbGRfdmFsICE9IF9fYXRvbWljX2xvYWRfbigmaHQt PnRhaWwsDQo+ICAgICA+IF9fQVRPTUlDX1JFTEFYRUQpKSkNCj4gICAgID4NCj4gICAgID4NCj4g ICAgID4gICAgIEkgZG9uJ3Qgd2FudCB0byBibG9jayB0aGlzIHNlcmllcyBvZiBwYXRjaGVzIGR1 ZSB0aGlzIHBhdGNoLiBDYW4gd2UNCj4gbWFrZQ0KPiAgICAgPiAgICAgcmUgc3BpbiBvbmUgc2Vy aWVzIHdpdGggMiBhbmQgMyBwYXRjaGVzLiBBbmQgV2FpdCBmb3IgcGF0Y2ggMSB0bw0KPiBjb25j bHVkZT8NCj4gICAgID4NCj4gICAgID4gICAgIFRob3VnaHRzPw0KPiAgICAgPg0KPiAgICAgPg0K PiAgICAgPg0KPiAgICAgPg0KPiAgICAgPiAgICAgPg0KPiAgICAgPiAgICAgPiA+IEJ1dCBhcmd1 bWVudCB0aGF0IHdlIHNob3VsZG4ndCBhc3N1bWUgMzJiaXQgbG9hZC9zdG9yZSBvcHMgYXMNCj4g ICAgID4gYXRvbWljDQo+ICAgICA+ICAgICA+ID4gc291bmRzIGEgYml0IGZsYWt5IHRvIG1lLg0K PiAgICAgPiAgICAgPiA+IEtvbnN0YW50aW4NCj4gICAgID4gICAgID4gPg0KPiAgICAgPiAgICAg PiA+DQo+ICAgICA+ICAgICA+ID4gPg0KPiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4gICAgID4g PiA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gQnV0IHRoZXJlIGFyZSBubyBtZW1vcnkg b3JkZXJpbmcgcmVxdWlyZW1lbnRzICh3aXRoDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4g cmVnYXJkcyB0byBvdGhlciBsb2FkcyBhbmQvb3Igc3RvcmVzIGJ5IHRoaXMgdGhyZWFkKSBzbw0K PiAgICAgPiByZWxheGVkDQo+ICAgICA+ICAgICA+ID4gbWVtb3J5IG9yZGVyIGlzIHN1ZmZpY2ll bnQuDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gQW5vdGhlciBhc3BlY3Qgb2YgdXNpbmcg X19hdG9taWNfbG9hZF9uKCkgaXMgdGhhdCB0aGUNCj4gICAgID4gICAgID4gPiA+IGNvbXBpbGVy IGNhbm5vdCAib3B0aW1pc2UiIHRoaXMgbG9hZCAoZS5nLiBjb21iaW5lLCBob2lzdCBldGMpLCBp dA0KPiBoYXMNCj4gICAgID4gdG8gYmUNCj4gICAgID4gICAgID4gPiBkb25lIGFzDQo+ICAgICA+ ICAgICA+ID4gPiAgICAgICAgID4gc3BlY2lmaWVkIGluIHRoZSBzb3VyY2UgY29kZSB3aGljaCBp cyBhbHNvIHdoYXQgd2UgbmVlZA0KPiBoZXJlLg0KPiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4g ICAgID4gPiA+ICAgICAgICAgSSB0aGluayBKZXJpbiBwb2ludHMgdGhhdCBydGVfcGF1c2UoKSBh Y3RzIGhlcmUgYXMgY29tcGlsZXINCj4gICAgID4gYmFycmllciB0b28sDQo+ICAgICA+ICAgICA+ ID4gPiAgICAgICAgIHNvIG5vIG5lZWQgdG8gd29ycnkgdGhhdCBjb21waWxlciB3b3VsZCBvcHRp bWl6ZSBvdXQgdGhlDQo+IGxvb3AuDQo+ICAgICA+ICAgICA+ID4gPiAgICAgW09sYV0gU29ycnkg bWlzc2VkIHRoYXQuIEJ1dCB0aGUgYmFycmllciBiZWhhdmlvdXIgb2YNCj4gcnRlX3BhdXNlKCkN Cj4gICAgID4gICAgID4gPiA+IGlzIG5vdCBwYXJ0IG9mIEMxMSwgaXMgaXQgZXNzZW50aWFsbHkg YSBoYW5kLW1hZGUgZmVhdHVyZSB0bw0KPiBzdXBwb3J0DQo+ICAgICA+ICAgICA+ID4gPiB0aGUg bGVnYWN5IG11bHRpdGhyZWFkZWQgbWVtb3J5IG1vZGVsICh3aGljaCB1c2VzIGV4cGxpY2l0DQo+ IEhXDQo+ICAgICA+IGFuZA0KPiAgICAgPiAgICAgPiA+IGNvbXBpbGVyIGJhcnJpZXJzKS4gSSdk IHByZWZlciBjb2RlIHVzaW5nIHRoZSBDMTEgbWVtb3J5IG1vZGVsDQo+IG5vdCB0bw0KPiAgICAg PiAgICAgPiA+IGRlcGVuZCBvbiBzdWNoIGxlZ2FjeSBmZWF0dXJlcy4NCj4gICAgID4gICAgID4g PiA+DQo+ICAgICA+ICAgICA+ID4gPg0KPiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4gICAgID4g PiA+ICAgICAgICAgS29uc3RhbnRpbg0KPiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4gICAgID4g PiA+ICAgICAgICAgPg0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+IE9uZSBwb2ludCB3b3J0 aCBtZW50aW9uaW5nIHRob3VnaCBpcyB0aGF0IHRoaXMgY2hhbmdlIGlzDQo+IGZvcg0KPiAgICAg PiAgICAgPiA+ID4gdGhlIHJ0ZV9yaW5nX2MxMV9tZW0uaCBmaWxlLCBub3QgdGhlIGxlZ2FjeSBy aW5nLiBJdCBtYXkgYmUNCj4gd29ydGgNCj4gICAgID4gcGVyc2lzdGluZw0KPiAgICAgPiAgICAg PiA+ID4gICAgICAgICA+IHdpdGggZ2V0dGluZyB0aGUgQzExIGNvZGUgcmlnaHQgd2hlbiBwZW9w bGUgYXJlIGxlc3MNCj4gZXhjaXRlZA0KPiAgICAgPiBhYm91dA0KPiAgICAgPiAgICAgPiA+IHNl bmRpbmcgYSByZWxlYXNlIG91dD8NCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPg0KPiAgICAg PiAgICAgPiA+ID4gICAgICAgICA+IFdlIGNhbiBleHBsYWluIHRoYXQgZm9yIEMxMSB3ZSB3b3Vs ZCBwcmVmZXIgdG8gZG8gbG9hZHMNCj4gYW5kDQo+ICAgICA+IHN0b3Jlcw0KPiAgICAgPiAgICAg PiA+IGFzIHBlciB0aGUgQzExIG1lbW9yeSBtb2RlbC4gSW4gdGhlIGNhc2Ugb2YgcnRlX3Jpbmcs IHRoZSBjb2RlIGlzDQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gc2VwYXJhdGVkIGNsZWFu bHkgaW50byBDMTEgc3BlY2lmaWMgZmlsZXMgYW55d2F5Lg0KPiAgICAgPiAgICAgPiA+ID4gICAg ICAgICA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gSSB0aGluayByZWFkaW5nIGh0LT50 YWlsIHVzaW5nIF9fYXRvbWljX2xvYWRfbigpIGlzIHRoZQ0KPiBtb3N0DQo+ICAgICA+ICAgICA+ ID4gYXBwcm9wcmlhdGUgd2F5LiBXZSBzaG93IHRoYXQgaHQtPnRhaWwgaXMgdXNlZCBmb3INCj4g c3luY2hyb25pemF0aW9uLA0KPiAgICAgPiB3ZQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ IGFja25vd2xlZGdlIHRoYXQgaHQtPnRhaWwgbWF5IGJlIHdyaXR0ZW4gYnkgb3RoZXINCj4gdGhy ZWFkcw0KPiAgICAgPiAgICAgPiA+ID4gd2l0aG91dCBhbnkgb3RoZXIga2luZCBvZiBzeW5jaHJv bml6YXRpb24gKGUuZy4gbm8gbG9jayBpbnZvbHZlZCkNCj4gICAgID4gYW5kIHdlDQo+ICAgICA+ ICAgICA+ID4gcmVxdWlyZQ0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+IGFuIGF0b21pYyBs b2FkIChhbnkgd3JpdGUgdG8gaHQtPnRhaWwgbXVzdCBhbHNvIGJlIGF0b21pYykuDQo+ICAgICA+ ICAgICA+ID4gPiAgICAgICAgID4NCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiBVc2luZyB2 b2xhdGlsZSBhbmQgZXhwbGljaXQgY29tcGlsZXIgKG9yIHByb2Nlc3NvcikNCj4gbWVtb3J5DQo+ ICAgICA+IGJhcnJpZXJzDQo+ICAgICA+ICAgICA+ID4gKGZlbmNlcykgaXMgdGhlIGxlZ2FjeSBw cmUtQzExIHdheSBvZiBhY2NvbXBsaXNoaW5nIHRoZXNlIHRoaW5ncy4NCj4gICAgID4gICAgID4g PiA+IFRoZXJlJ3MNCj4gICAgID4gICAgID4gPiA+ICAgICAgICAgPiBhIHJlYXNvbiB3aHkgQzEx L0MrKzExIG1vdmVkIGF3YXkgZnJvbSB0aGUgb2xkIHdheXMuDQo+ICAgICA+ICAgICA+ID4gPiAg ICAgICAgID4gPiA+DQo+ICAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+ICAgICAgICAgX19h dG9taWNfc3RvcmVfbigmaHQtPnRhaWwsIG5ld192YWwsDQo+ICAgICA+IF9fQVRPTUlDX1JFTEVB U0UpOw0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiAtLQ0KPiAgICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiAyLjcuNA0KPiAgICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPg0K PiAgICAgPiAgICAgPiA+ID4NCj4gICAgID4gICAgID4gPiA+DQo+ICAgICA+ICAgICA+ID4gPg0K PiAgICAgPiAgICAgPg0KPiAgICAgPg0KPiANCj4gDQoNCg==