From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0085.outbound.protection.outlook.com [104.47.1.85]) by dpdk.org (Postfix) with ESMTP id 61CE6160; Mon, 8 Oct 2018 12:39:13 +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=KWYnWmUtqlJt6vjSO0ppClrU9LgB7+VANQc0dgasTzs=; b=i8QWxZwzEh62Kz41jIsMmHhel+DdZyR5HB2ip9gch9Msx9Fkb8dfObtMyu6+IOp7e1CtNDMEps2G0rXVZ4xeFkCULyu3i8NxlWAW9DYGiRa0MTvm67AFJa5LOG0IfuIgLGw/NKNY9jVuWxlQPiOr3QWD5G70tCIWAxpunAKFArg= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1497.eurprd08.prod.outlook.com (10.167.190.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.26; Mon, 8 Oct 2018 10:39:10 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1207.024; Mon, 8 Oct 2018 10:39:10 +0000 From: Ola Liljedahl To: "Gavin Hu (Arm Technology China)" , Jerin Jacob CC: "dev@dpdk.org" , Honnappa Nagarahalli , "Ananyev, Konstantin" , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUTl7o9KT3/H6K10G5NrmKOHANTqUHJ0+AgAjF7gCAAH79gIAAUg2AgAAF3wCAAAI9gIAAGFMAgAAgVICAADHKgIAAAE+AgAAkl4D//+HIgIAAIteAgACY7ICAAOuGgIAAaawAgAE5hICAAHtkgIAAWCoA///pGICAACiyAP//4LSAAARhgoA= Date: Mon, 8 Oct 2018 10:39:10 +0000 Message-ID: <5630E77E-370D-4EFF-B79D-D23F863800C5@arm.com> References: <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.com> <60055965-A7C8-4E9F-8668-0AE1DCE57515@arm.com> <20181006074126.GA16715@jerin> <20181007040243.GA1850@jerin> <7A156041-23EC-4CCB-B129-3607AF34A992@arm.com> <20181008060629.GA5228@jerin> <063A95EC-CFC1-42F7-B864-DFB9C6718AC8@arm.com> <20181008100004.GB11081@jerin> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.11.0.180909 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1497; 6:iv7DJLTfqFt0yQtaJ0zkuSRqVqLzv6gtulbohRJwjOi4d/ovdCI+Ok6xszHR+j9LG3KpFWkLPVNSfsYR/0ZBwjidxnRAEhU9qdCv/nGuEuSUJX/l4dszbkcZYz8RGuq/nRRspU2J2anYF76kLw4C5gFt8Qa+xZpPayk7+YlKpXT44A6p50fhASr0/TKzhSCBV0ulEfB6i4To9tq7hY+pJCKxiKB4mAX00pKc9b1Fn11BjLbPIXEyJ31zF1lgqaxbNVJvXqOJnEoyTUlKyKfGsDSguym4895E4wz/hyTLK80JlDqcU4ENNdsIFNxvyHM81LyA6iYh8DXiLisRHzVy5SbYRwM2L8Qyx+evimMpQOKaizTi8UXcpXDA1lzxiu2/9HCfGvfyHAfXmoWjARuVTzSgpdD+WpjGx+mONVBsD9yxeuXQFbJ8vlAcBMhiyKeKV3VHv2pGI7YZ2bBf3RtbCw==; 5:eeuaJKjel8eUn5BigEVbUAxPvf9pWypDBJhjoLb5ordKUb9jGdfGNJ2L9bxhnOhCDY8u4AFkIjpQsp/NSriSydyMgII4VAFECzXAbtjY0jSJsSCvuh6pLMf2ODjYMwUwQCB7/L7V0JzKkpC7Hy9y53TjJTLAwA9vHQAYTtlpoRY=; 7:KtiojcUdQlcyjAcRTjMjNak1WB6QWJPu9uOXKXuWL7N0GEcgSSMAMalwAf+AubPYTusv6TnNDbm+EecAtagmItCbxNGhFUxANBJYXAdegafO99xCs9SIc2Eb4b7Uqoua3jz1/qGL5unf1TRpW3p7ma8Owy4Jymf2jDq+5Ty8oYSfh4wKfXlpvnqhDwFWYmvJgatxVU5hziaOsId31UGNaZ4an45ZxkdGwXAjeYxVKpJxAOE/d5nv+h5mboObnUZk x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: bb254a01-21f8-4bc1-5c04-08d62d0a482f 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:HE1PR0801MB1497; x-ms-traffictypediagnostic: HE1PR0801MB1497: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(166708455590820)(180628864354917)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201708071742011)(7699051); SRVR:HE1PR0801MB1497; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1497; x-forefront-prvs: 081904387B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(39860400002)(376002)(366004)(396003)(136003)(13464003)(51234002)(189003)(199004)(99286004)(110136005)(54906003)(105586002)(7736002)(36756003)(53546011)(106356001)(58126008)(76176011)(3846002)(66066001)(6506007)(8676002)(81156014)(446003)(8936002)(486006)(81166006)(6116002)(5660300001)(305945005)(11346002)(2616005)(186003)(476003)(14444005)(256004)(102836004)(26005)(229853002)(97736004)(6436002)(33656002)(71190400001)(83716004)(6486002)(53936002)(45080400002)(478600001)(2900100001)(71200400001)(4326008)(5250100002)(6306002)(6512007)(53946003)(19627235002)(6246003)(2906002)(68736007)(14454004)(966005)(72206003)(25786009)(4744004)(93886005)(82746002)(316002)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1497; H:HE1PR0801MB2076.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: 23GlrVz2R3Bl+5oNH/PYY5UrTXAJkyx0BstcJgIY5Ng+QUh9/Qjc+0vOl90BunLp1uGtHiwVcC0U4d6Nx9CFJ4h8hzDPVQ67bZBtw0A8kl7blqImZmEb+b+AUfQW1p4nLUR+e71Px9gTkJ6h3Yp/pEI2hTZ+EO+wQCCqKuFpyv8/0QKzmdyYZcsWmiEKk0jYHX5YNdxyElpqq0iYxzZo4RoUPXVYh3GbjkFAXYQ8RoB/Y9p5h2WoWVI2P5ZSz2J04bHk9EEByQtSnGR/iELsshjl7uD49uSrm9szeyTqggN0D1XzI9e/3zLwiVbFL2LgSmAhy4C0qPH70M49+Q91igDwTx+LV/NMKD0V25PeSfo= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <30936B920E04354E84F5363DAE9AD7E9@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb254a01-21f8-4bc1-5c04-08d62d0a482f X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2018 10:39:10.1998 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1497 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: Mon, 08 Oct 2018 10:39:13 -0000 T24gMDgvMTAvMjAxOCwgMTI6MzMsICJHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIiA8 R2F2aW4uSHVAYXJtLmNvbT4gd3JvdGU6DQoNCiAgICBJIGRpZCBiZW5jaG1hcmtpbmcgdy9vIGFu ZCB3LyB0aGUgcGF0Y2gsIGl0IGRpZCBub3Qgc2hvdyBhbnkgbm90aWNlYWJsZSBkaWZmZXJlbmNl cyBpbiB0ZXJtcyBvZiBsYXRlbmN5Lg0KV2hpY2ggcGxhdGZvcm0gaXMgdGhpcz8NCg0KDQogICAg SGVyZSBpcyB0aGUgZnVsbCBsb2coIDMgcnVucyB3L28gdGhlIHBhdGNoIGFuZCAyIHJ1bnMgdy8g dGhlIHBhdGNoKS4NCiAgICANCiAgICBzdWRvIC4vdGVzdC90ZXN0L3Rlc3QgLWwgMTYtMTksNDQt NDcsNzItNzUsMTAwLTEwMyAtbiA0IC0tc29ja2V0LW1lbT0xMDI0ICAtLSAtaQ0KICAgIA0KICAg IFJURT4+cmluZ19wZXJmX2F1dG90ZXN0ICgjMSBydW4gb2YgdGVzdCB3aXRob3V0IHRoZSBwYXRj aCkNCiAgICAjIyMgVGVzdGluZyBzaW5nbGUgZWxlbWVudCBhbmQgYnVyc3QgZW5xL2RlcSAjIyMN CiAgICBTUC9TQyBzaW5nbGUgZW5xL2RlcXVldWU6IDgNCiAgICBNUC9NQyBzaW5nbGUgZW5xL2Rl cXVldWU6IDEwDQogICAgU1AvU0MgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAxDQogICAg TVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAxDQogICAgU1AvU0MgYnVyc3QgZW5x L2RlcXVldWUgKHNpemU6IDMyKTogMA0KICAgIE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXpl OiAzMik6IDANCiAgICANCiAgICAjIyMgVGVzdGluZyBlbXB0eSBkZXF1ZXVlICMjIw0KICAgIFND IGVtcHR5IGRlcXVldWU6IDAuMjQNCiAgICBNQyBlbXB0eSBkZXF1ZXVlOiAwLjI0DQogICAgDQog ICAgIyMjIFRlc3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjDQogICAgU1AvU0MgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDEuNDANCiAgICBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChz aXplOiA4KTogMS43NA0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMC41 OQ0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMC42OA0KICAgIA0KICAg ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBoeXBlcnRocmVhZHMgIyMjDQogICAgU1AvU0MgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDIuNDkNCiAgICBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChz aXplOiA4KTogMy4wOQ0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMS4w Nw0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMS4xMw0KICAgIA0KICAg ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBwaHlzaWNhbCBjb3JlcyAjIyMNCiAgICBTUC9TQyBidWxr IGVucS9kZXF1ZXVlIChzaXplOiA4KTogNi41NQ0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDgpOiAxMi45OQ0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTog MS45Nw0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMy40MQ0KICAgIA0K ICAgIFJURT4+cmluZ19wZXJmX2F1dG90ZXN0KCMyIHJ1biBvZiB0ZXN0IHdpdGhvdXQgdGhlIHBh dGNoKQ0KICAgICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVtZW50IGFuZCBidXJzdCBlbnEvZGVxICMj Iw0KICAgIFNQL1NDIHNpbmdsZSBlbnEvZGVxdWV1ZTogOA0KICAgIE1QL01DIHNpbmdsZSBlbnEv ZGVxdWV1ZTogMTANCiAgICBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDENCiAg ICBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDENCiAgICBTUC9TQyBidXJzdCBl bnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwDQogICAgTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNp emU6IDMyKTogMA0KICAgIA0KICAgICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQogICAg U0MgZW1wdHkgZGVxdWV1ZTogMC4yNA0KICAgIE1DIGVtcHR5IGRlcXVldWU6IDAuMjQNCiAgICAN CiAgICAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMNCiAgICBTUC9TQyBidWxr IGVucS9kZXF1ZXVlIChzaXplOiA4KTogMS40MA0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDgpOiAxLjc0DQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAw LjU5DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwLjY4DQogICAgDQog ICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIGh5cGVydGhyZWFkcyAjIyMNCiAgICBTUC9TQyBidWxr IGVucS9kZXF1ZXVlIChzaXplOiA4KTogMi41MA0KICAgIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDgpOiAzLjA4DQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAx LjA3DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxLjEzDQogICAgDQog ICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIHBoeXNpY2FsIGNvcmVzICMjIw0KICAgIFNQL1NDIGJ1 bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA2LjU3DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1 ZSAoc2l6ZTogOCk6IDEzLjAwDQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIp OiAxLjk4DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAzLjQxDQogICAg VGVzdCBPSw0KICAgIA0KICAgIFJURT4+cmluZ19wZXJmX2F1dG90ZXN0KCMzIHJ1biBvZiB0ZXN0 IHdpdGhvdXQgdGhlIHBhdGNoKQ0KICAgICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVtZW50IGFuZCBi dXJzdCBlbnEvZGVxICMjIw0KICAgIFNQL1NDIHNpbmdsZSBlbnEvZGVxdWV1ZTogOA0KICAgIE1Q L01DIHNpbmdsZSBlbnEvZGVxdWV1ZTogMTANCiAgICBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAo c2l6ZTogOCk6IDENCiAgICBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDENCiAg ICBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwDQogICAgTVAvTUMgYnVyc3Qg ZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMA0KICAgIA0KICAgICMjIyBUZXN0aW5nIGVtcHR5IGRl cXVldWUgIyMjDQogICAgU0MgZW1wdHkgZGVxdWV1ZTogMC4yNA0KICAgIE1DIGVtcHR5IGRlcXVl dWU6IDAuMjQNCiAgICANCiAgICAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMN CiAgICBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMS40MA0KICAgIE1QL01DIGJ1 bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAxLjc0DQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1 ZSAoc2l6ZTogMzIpOiAwLjU5DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIp OiAwLjY4DQogICAgDQogICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIGh5cGVydGhyZWFkcyAjIyMN CiAgICBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMi40OQ0KICAgIE1QL01DIGJ1 bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAzLjA4DQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1 ZSAoc2l6ZTogMzIpOiAxLjA3DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIp OiAxLjEzDQogICAgDQogICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIHBoeXNpY2FsIGNvcmVzICMj Iw0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA2LjU1DQogICAgTVAvTUMg YnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDEyLjk2DQogICAgU1AvU0MgYnVsayBlbnEvZGVx dWV1ZSAoc2l6ZTogMzIpOiAxLjk5DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTog MzIpOiAzLjM3DQogICAgDQogICAgDQogICAgUlRFPj5yaW5nX3BlcmZfYXV0b3Rlc3QoIzEgcnVu IG9mIHRoZSB0ZXN0IHdpdGggdGhlIHBhdGNoKQ0KICAgICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVt ZW50IGFuZCBidXJzdCBlbnEvZGVxICMjIw0KICAgIFNQL1NDIHNpbmdsZSBlbnEvZGVxdWV1ZTog OA0KICAgIE1QL01DIHNpbmdsZSBlbnEvZGVxdWV1ZTogMTANCiAgICBTUC9TQyBidXJzdCBlbnEv ZGVxdWV1ZSAoc2l6ZTogOCk6IDENCiAgICBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTog OCk6IDENCiAgICBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwDQogICAgTVAv TUMgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMA0KICAgIA0KICAgICMjIyBUZXN0aW5n IGVtcHR5IGRlcXVldWUgIyMjDQogICAgU0MgZW1wdHkgZGVxdWV1ZTogMC4yNA0KICAgIE1DIGVt cHR5IGRlcXVldWU6IDAuMzINCiAgICANCiAgICAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBs Y29yZSAjIyMNCiAgICBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMS40Mw0KICAg IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAxLjc0DQogICAgU1AvU0MgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwLjYwDQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAo c2l6ZTogMzIpOiAwLjY4DQogICAgDQogICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIGh5cGVydGhy ZWFkcyAjIyMNCiAgICBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMi41Mw0KICAg IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAzLjA5DQogICAgU1AvU0MgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxLjA2DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAo c2l6ZTogMzIpOiAxLjE4DQogICAgDQogICAgIyMjIFRlc3RpbmcgdXNpbmcgdHdvIHBoeXNpY2Fs IGNvcmVzICMjIw0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA2LjU3DQog ICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDEyLjkzDQogICAgU1AvU0MgYnVs ayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxLjk4DQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1 ZSAoc2l6ZTogMzIpOiAzLjQ0DQogICAgVGVzdCBPSw0KICAgIFJURT4+cmluZ19wZXJmX2F1dG90 ZXN0ICgjMSBydW4gb2YgdGhlIHRlc3Qgd2l0aCB0aGUgcGF0Y2gpDQogICAgIyMjIFRlc3Rpbmcg c2luZ2xlIGVsZW1lbnQgYW5kIGJ1cnN0IGVucS9kZXEgIyMjDQogICAgU1AvU0Mgc2luZ2xlIGVu cS9kZXF1ZXVlOiA4DQogICAgTVAvTUMgc2luZ2xlIGVucS9kZXF1ZXVlOiAxMA0KICAgIFNQL1ND IGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KTogMQ0KICAgIE1QL01DIGJ1cnN0IGVucS9kZXF1 ZXVlIChzaXplOiA4KTogMQ0KICAgIFNQL1NDIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiAzMik6 IDANCiAgICBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwDQogICAgDQogICAg IyMjIFRlc3RpbmcgZW1wdHkgZGVxdWV1ZSAjIyMNCiAgICBTQyBlbXB0eSBkZXF1ZXVlOiAwLjI0 DQogICAgTUMgZW1wdHkgZGVxdWV1ZTogMC4zMg0KICAgIA0KICAgICMjIyBUZXN0aW5nIHVzaW5n IGEgc2luZ2xlIGxjb3JlICMjIw0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgp OiAxLjQzDQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDEuNzQNCiAgICBT UC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDAuNjANCiAgICBNUC9NQyBidWxrIGVu cS9kZXF1ZXVlIChzaXplOiAzMik6IDAuNjgNCiAgICANCiAgICAjIyMgVGVzdGluZyB1c2luZyB0 d28gaHlwZXJ0aHJlYWRzICMjIw0KICAgIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgp OiAyLjUzDQogICAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDMuMDkNCiAgICBT UC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDEuMDYNCiAgICBNUC9NQyBidWxrIGVu cS9kZXF1ZXVlIChzaXplOiAzMik6IDEuMTgNCiAgICANCiAgICAjIyMgVGVzdGluZyB1c2luZyB0 d28gcGh5c2ljYWwgY29yZXMgIyMjDQogICAgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTog OCk6IDYuNTcNCiAgICBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMTIuOTMNCiAg ICBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDEuOTgNCiAgICBNUC9NQyBidWxr IGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDMuNDYNCiAgICBUZXN0IE9LDQogICAgDQogICAgPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gRnJvbTogT2xhIExpbGplZGFobA0KICAg ID4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDgsIDIwMTggNjoyNiBQTQ0KICAgID4gVG86IEplcmlu IEphY29iIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQogICAgPiBDYzogZGV2QGRw ZGsub3JnOyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KICAgID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxp QGFybS5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQogICAgPiA8a29uc3RhbnRpbi5hbmFueWV2 QGludGVsLmNvbT47IEdhdmluIEh1IChBcm0gVGVjaG5vbG9neSBDaGluYSkNCiAgICA+IDxHYXZp bi5IdUBhcm0uY29tPjsgU3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT47IG5kDQog ICAgPiA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KICAgID4gU3ViamVjdDogUmU6IFtQ QVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0KICAgID4gDQog ICAgPiANCiAgICA+IA0KICAgID4gT24gMDgvMTAvMjAxOCwgMTI6MDAsICJKZXJpbiBKYWNvYiIg PGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCiAgICA+IHdyb3RlOg0KICAgID4gDQog ICAgPiAgICAgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCiAgICA+ICAgICA+IERhdGU6IE1v biwgOCBPY3QgMjAxOCAwOToyMjowNSArMDAwMA0KICAgID4gICAgID4gRnJvbTogT2xhIExpbGpl ZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPg0KICAgID4gICAgID4gVG86IEplcmluIEphY29i IDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQogICAgPiAgICAgPiBDQzogImRldkBk cGRrLm9yZyIgPGRldkBkcGRrLm9yZz4sIEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQogICAgPiAgICAg PiAgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+LCAiQW5hbnlldiwgS29uc3RhbnRpbiIN CiAgICA+ICAgICA+ICA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4sICJHYXZpbiBIdSAo QXJtIFRlY2hub2xvZ3kgQ2hpbmEpIg0KICAgID4gICAgID4gIDxHYXZpbi5IdUBhcm0uY29tPiwg U3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT4sIG5kDQogICAgPiA8bmRAYXJtLmNv bT4sDQogICAgPiAgICAgPiAgInN0YWJsZUBkcGRrLm9yZyIgPHN0YWJsZUBkcGRrLm9yZz4NCiAg ICA+ICAgICA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS8zXSByaW5nOiByZWFkIHRhaWwgdXNp bmcgYXRvbWljIGxvYWQNCiAgICA+ICAgICA+IHVzZXItYWdlbnQ6IE1pY3Jvc29mdC1NYWNPdXRs b29rLzEwLjExLjAuMTgwOTA5DQogICAgPiAgICAgPg0KICAgID4gICAgID4gRXh0ZXJuYWwgRW1h aWwNCiAgICA+ICAgICA+DQogICAgPiAgICAgPiBPbiAwOC8xMC8yMDE4LCAwODowNiwgIkplcmlu IEphY29iIiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KICAgID4gd3JvdGU6DQog ICAgPiAgICAgPg0KICAgID4gICAgID4gICAgIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQog ICAgPiAgICAgPiAgICAgPiBEYXRlOiBTdW4sIDcgT2N0IDIwMTggMjA6NDQ6NTQgKzAwMDANCiAg ICA+ICAgICA+ICAgICA+IEZyb206IE9sYSBMaWxqZWRhaGwgPE9sYS5MaWxqZWRhaGxAYXJtLmNv bT4NCiAgICA+ICAgICA+ICAgICA+IFRvOiBKZXJpbiBKYWNvYiA8amVyaW4uamFjb2JAY2F2aXVt bmV0d29ya3MuY29tPg0KICAgID4gICAgID4gICAgID4gQ0M6ICJkZXZAZHBkay5vcmciIDxkZXZA ZHBkay5vcmc+LCBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KICAgID4gICAgID4gICAgID4gIDxIb25u YXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPiwgIkFuYW55ZXYsIEtvbnN0YW50aW4iDQogICAgPiAg ICAgPiAgICAgPiAgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+LCAiR2F2aW4gSHUgKEFy bSBUZWNobm9sb2d5DQogICAgPiBDaGluYSkiDQogICAgPiAgICAgPiAgICAgPiAgPEdhdmluLkh1 QGFybS5jb20+LCBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPiwgbmQNCiAgICA+ IDxuZEBhcm0uY29tPiwNCiAgICA+ICAgICA+ICAgICA+ICAic3RhYmxlQGRwZGsub3JnIiA8c3Rh YmxlQGRwZGsub3JnPg0KICAgID4gICAgID4gICAgID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAx LzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0KICAgID4gICAgID4gICAgID4g dXNlci1hZ2VudDogTWljcm9zb2Z0LU1hY091dGxvb2svMTAuMTEuMC4xODA5MDkNCiAgICA+ICAg ICA+ICAgICA+DQogICAgPiAgICAgPg0KICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICBDb3Vs ZCB5b3UgcGxlYXNlIGZpeCB0aGUgZW1haWwgY2xpZW50IGZvciBpbmxpbmUgcmVwbHkuDQogICAg PiAgICAgPiBTb3JyeSB0aGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSBwb3NzaWJsZSB3aXRoIE91dGxv b2sgZm9yIE1hYyAxNiBvcg0KICAgID4gT2ZmaWNlMzY1LiBUaGUgb2ZmaWNpYWwgT2ZmaWNlMzY1 L091dGxvb2sNCiAgICA+ICAgICA+IGRvY3VtZW50YXRpb24gZG9lc24ndCBtYXRjaCB0aGUgYWN0 dWFsIHVzZXIgaW50ZXJmYWNlLi4uDQogICAgPiAgICAgPg0KICAgID4gICAgID4NCiAgICA+ICAg ICA+DQogICAgPiAgICAgPiAgICAgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92NC4x OS1yYzcvcHJvY2Vzcy9lbWFpbC0NCiAgICA+IGNsaWVudHMuaHRtbA0KICAgID4gICAgID4NCiAg ICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gT24gMDcvMTAv MjAxOCwgMDY6MDMsICJKZXJpbiBKYWNvYiINCiAgICA+IDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3 b3Jrcy5jb20+IHdyb3RlOg0KICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAg ICBJbiBhcm02NCBjYXNlLCBpdCB3aWxsIGhhdmUgQVRPTUlDX1JFTEFYRUQgZm9sbG93ZWQgYnkg YXNtDQogICAgPiB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iikgb2YgcnRlX3BhdXNlKCkuDQogICAg PiAgICAgPiAgICAgPiAgICAgSSB3b3VsZCBuJ3QgaGF2ZSBhbnkgaXNzdWUsIGlmIHRoZSBnZW5l cmF0ZWQgY29kZSBjb2RlIGlzIHNhbWUgb3INCiAgICA+IGJldHRlciB0aGFuIHRoZSBleGl0aW5n IGNhc2UuIGJ1dCBpdCBub3QgdGhlIGNhc2UsIFJpZ2h0Pw0KICAgID4gICAgID4gICAgID4gVGhl IGV4aXN0aW5nIGNhc2UgaXMgYWN0dWFsbHkgbm90IGludGVyZXN0aW5nIChJTU8pIGFzIGl0IGV4 cG9zZXMNCiAgICA+IHVuZGVmaW5lZCBiZWhhdmlvdXIgd2hpY2ggYWxsb3dzIHRoZSBjb21waWxl ciB0byBkbyBhbnl0aGluZy4gQnV0IHlvdQ0KICAgID4gc2VlbSB0byBiZSBzYXRpc2ZpZWQgd2l0 aCAid29ya3MgZm9yIG1lLCByaWdodCBoZXJlIHJpZ2h0IG5vdyIuIEkgdGhpbmsgdGhlDQogICAg PiBjb3N0IG9mIGF2b2lkaW5nIHVuZGVmaW5lZCBiZWhhdmlvdXIgaXMgYWNjZXB0YWJsZSAoYWN0 dWFsbHkgSSBkb24ndCB0aGluayBpdA0KICAgID4gZXZlbiB3aWxsIGJlIG5vdGljZWFibGUpLg0K ICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICBJIGFtIG5vdCBjb252aW5jZWQgYmVjYXVzZSBv ZiB1c2Ugb2Ygdm9sYXRpbGUgaW4gaGVhZCBhbmQgdGFpbCBpbmRleGVzLg0KICAgID4gICAgID4g ICAgIEZvciBtZSB0aGF0IGJyaW5ncyB0aGUgZGVmaW5lZCBiZWhhdmlvci4NCiAgICA+ICAgICA+ IEFzIGxvbmcgYXMgeW91IGRvbid0IG1peCBpbiBDMTEgYXRvbWljIGFjY2Vzc2VzIChqdXN0IHVz ZSAicGxhaW4iIGFjY2Vzc2VzDQogICAgPiB0byB2b2xhdGlsZSBvYmplY3RzKSwNCiAgICA+ICAg ICA+IGl0IGlzIEFGQUlLIGRlZmluZWQgYmVoYXZpb3VyIChidXQgbm90IG5lY2Vzc2FyaWx5IHVz aW5nIGF0b21pYyBsb2FkcyBhbmQNCiAgICA+IHN0b3JlcykuIEJ1dCBJIHF1b3RlZA0KICAgID4g ICAgID4gdGhlIEMxMSBzcGVjIHdoZXJlIGl0IGV4cGxpY2l0bHkgbWVudGlvbnMgdGhhdCBtaXhp bmcgYXRvbWljIGFuZCBub24tDQogICAgPiBhdG9taWMgYWNjZXNzZXMgdG8gdGhlIHNhbWUNCiAg ICA+ICAgICA+IG9iamVjdCBpcyB1bmRlZmluZWQgYmVoYXZpb3VyLiBEb24ndCBhcmd1ZSB3aXRo IG1lLCBhcmd1ZSB3aXRoIHRoZSBDMTENCiAgICA+IHNwZWMuDQogICAgPiAgICAgPiBJZiB5b3Ug d2FudCB0byBkaXNvYmV5IHRoZSBzcGVjLCB0aGlzIHNob3VsZCBhdCBsZWFzdCBiZSBjYWxsZWQg b3V0IGZvciBpbg0KICAgID4gdGhlIGNvZGUgd2l0aCBhIGNvbW1lbnQuDQogICAgPiANCiAgICA+ ICAgICBUaGF0J3MgYm9pbHMgZG93biBvbmx5IG9uZSBxdWVzdGlvbiwgc2hvdWxkIHdlIGZvbGxv dyBDMTEgc3BlYz8gV2h5IG5vdA0KICAgID4gb25seSB0YWtlIGxvYWQNCiAgICA+ICAgICBhY3F1 aXJlIGFuZCBzdG9yZSByZWxlYXNlIHNlbWFudGljcyBvbmx5IGp1c3QgbGlrZSBMaW51eCBrZXJu ZWwgYW5kIEZyZWVCU0QuDQogICAgPiBBbmQgaW50cm9kdWNlIGV2ZW4gbW9yZSB1bmRlZmluZWQg YmVoYXZpb3VyPw0KICAgID4gDQogICAgPiAgICAgRG9lcyBub3QgbG9vayBsaWtlIEMxMSBtZW1v cnkgbW9kZWwgaXMgc3VwZXIgZWZmaWNpZW50IGluIHRlcm0gb2YgZ2NjDQogICAgPiAgICAgaW1w bGVtZW50YXRpb24uDQogICAgPiBZb3UgYXJlIG1ha2luZyBhIGNoaWNrZW4gb3V0IG9mIGEgZmVh dGhlci4NCiAgICA+IA0KICAgID4gSSB0aGluayB0aGlzICJwcm9ibGVtIiB3aXRoIG9uZSBhZGRp dGlvbmFsIEFERCBpbnN0cnVjdGlvbiB3aWxsIG9ubHkgY29uY2Vybg0KICAgID4gX19hdG9taWNf bG9hZF9uKF9fQVRPTUlDX1JFTEFYRUQpIGFuZA0KICAgID4gX19hdG9taWNfc3RvcmVfbihfX0FU T01JQ19SRUxBWEVEKSBiZWNhdXNlIHRoZSBjb21waWxlciBzZXBhcmF0ZXMNCiAgICA+IHRoZSBh ZGRyZXNzIGdlbmVyYXRpb24gKGFkZCBvZmZzZXQgb2Ygc3RydWN0IG1lbWJlcikgZnJvbSB0aGUg bG9hZCBvciBzdG9yZQ0KICAgID4gaXRzZWxmLiBGb3Igb3RoZXIgYXRvbWljIG9wZXJhdGlvbnMg YW5kIG1lbW9yeSBvcmRlcmluZ3MgKGUuZy4NCiAgICA+IF9fYXRvbWljX2xvYWRfbihfX0FUT01J Q19BQ1FVSVJFKSwgdGhlIGV4dHJhIEFERCBpbnN0cnVjdGlvbiB3aWxsIGJlDQogICAgPiBpbmNs dWRlZCBhbnl3YXkgKGFzIGxvbmcgYXMgd2UgYWNjZXNzIGEgbm9uLWZpcnN0IHN0cnVjdCBtZW1i ZXIpIGJlY2F1c2UNCiAgICA+IGUuZy4gTERBUiBvbmx5IGFjY2VwdHMgYSBiYXNlIHJlZ2lzdGVy IHdpdGggbm8gb2Zmc2V0Lg0KICAgID4gDQogICAgPiBJIHN1Z2dlc3QgbWluaW1pc2luZyB0aGUg aW1wb3NlZCBtZW1vcnkgb3JkZXJpbmdzIGNhbiBoYXZlIGEgbXVjaCBsYXJnZXINCiAgICA+IChw b3NpdGl2ZSkgZWZmZWN0IG9uIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGF2b2lkaW5nIG9uZSBB REQgaW5zdHJ1Y3Rpb24NCiAgICA+IChtZW1vcnkgYWNjZXNzZXMgYXJlIG11Y2ggc2xvd2VyIHRo YW4gQ1BVIEFMVSBpbnN0cnVjdGlvbnMpLg0KICAgID4gVXNpbmcgQzExIG1lbW9yeSBtb2RlbCBh bmQgaWRlbnRpZnlpbmcgZXhhY3RseSB3aGljaCBvYmplY3RzIGFyZSB1c2VkIGZvcg0KICAgID4g c3luY2hyb25pc2F0aW9uIGFuZCB3aGV0aGVyIChhbnkpIHVwZGF0ZXMgdG8gc2hhcmVkIG1lbW9y eSBhcmUgYWNxdWlyZWQNCiAgICA+IG9yIHJlbGVhc2VkIChubyB1cGRhdGVzIHRvIHNoYXJlZCBt ZW1vcnkgbWVhbnMgcmVsYXhlZCBvcmRlciBjYW4gYmUgdXNlZCkNCiAgICA+IHdpbGwgcHJvdmlk ZSBtYXhpbXVtIGZyZWVkb20gdG8gdGhlIGNvbXBpbGVyIGFuZCBoYXJkd2FyZSB0byBnZXQgdGhl IGJlc3QNCiAgICA+IHJlc3VsdC4NCiAgICA+IA0KICAgID4gVGhlIEZyZWVCU0QgYW5kIERQREsg cmluZyBidWZmZXJzIHNob3cgc29tZSBmdW5kYW1lbnRhbA0KICAgID4gbWlzdW5kZXJzdGFuZGlu Z3MgaGVyZS4gSW5zdGVhZCBleGNlc3NpdmUgb3JkZXJpbmdzIGFuZCBleHBsaWNpdCBiYXJyaWVy cw0KICAgID4gaGF2ZSBiZWVuIHVzZWQgYXMgYmFuZC1haWRzLCB3aXRoIHVua25vd24gZWZmZWN0 cyBvbiBwZXJmb3JtYW5jZS4NCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgPg0KICAgID4gICAg ID4NCiAgICA+ICAgICA+ICAgICBUaGF0IHRoZSByZWFzb24gd2h5IEkgc2hhcmVkDQogICAgPiAg ICAgPiAgICAgdGhlIGdlbmVyYXRlZCBhc3NlbWJseSBjb2RlLiBJZiB5b3UgdGhpbmsgb3RoZXIg d2F5LCBQaWNrIGFueSBjb21waWxlcg0KICAgID4gICAgID4gICAgIGFuZCBzZWUgZ2VuZXJhdGVk IG91dHB1dC4NCiAgICA+ICAgICA+IFRoaXMgaXMgd2hhdCBvbmUgY29tcGlsZXIgZm9yIG9uZSBh cmNoaXRlY3R1cmUgZ2VuZXJhdGVzIHRvZGF5LiBUaGVzZQ0KICAgID4gdGhpbmdzIGNoYW5nZS4g T3RoZXIgdGhpbmdzDQogICAgPiAgICAgPiB0aGF0IHVzZWQgdG8gd29yayBvciB3b3JrZWQgZm9y IHNvbWUgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlIGhhcyBzdG9wcGVkDQogICAgPiB3b3JraW5nIGlu IG5ld2VyIHZlcnNpb25zIG9mDQogICAgPiAgICAgPiB0aGUgY29tcGlsZXIuDQogICAgPiAgICAg Pg0KICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICBBbmQNCiAgICA+ICAgICA+DQogICAgPiAg ICAgPiAgICAgRnJlZWJzZCBpbXBsZW1lbnRhdGlvbiBvZiByaW5nIGJ1ZmZlcihXaGljaCBEUERL IGRlcml2ZWQgZnJvbSksDQogICAgPiBEb24ndCBoYXZlDQogICAgPiAgICAgPiAgICAgc3VjaCBs b2dpYywgU2VlDQogICAgPiBodHRwczovL2dpdGh1Yi5jb20vZnJlZWJzZC9mcmVlYnNkL2Jsb2Iv bWFzdGVyL3N5cy9zeXMvYnVmX3JpbmcuaCNMMTA4DQogICAgPiAgICAgPiBJdCBsb29rcyBsaWtl IEZyZWVCU0QgdXNlcyBzb21lIGtpbmQgb2YgQzExIGF0b21pYyBtZW1vcnkgbW9kZWwtDQogICAg PiBpbnNwaXJlZCBBUEkgYWx0aG91Z2ggSSBkb24ndCBzZWUNCiAgICA+ICAgICA+IGV4YWN0bHkg aG93IGUuZy4gYXRvbWljX3N0b3JlX3JlbF9pbnQoKSBpcyBpbXBsZW1lbnRlZC4gVGhlIGNvZGUg YWxzbw0KICAgID4gbWl4ZXMgaW4gZXhwbGljaXQgYmFycmllcnMNCiAgICA+ICAgICA+IHNvIGRl ZmluaXRpdmVseSBub3QgcHVyZSBDMTEgbWVtb3J5IG1vZGVsIHVzYWdlLiBBbmQgZmluYWxseSwg aXQgZG9lc24ndA0KICAgID4gZXN0YWJsaXNoIHRoZSBwcm9wZXINCiAgICA+ICAgICA+IGxvYWQt YWNxdWlyZS9zdG9yZS1yZWxlYXNlIHJlbGF0aW9uc2hpcHMgKGUuZy4gc3RvcmUtcmVsZWFzZSBj b25zX3RhaWwNCiAgICA+IHJlcXVpcmVzIGEgbG9hZC1hY3F1aXJlIGNvbnNfdGFpbCwNCiAgICA+ ICAgICA+IHNhbWUgZm9yIHByb2RfdGFpbCkuDQogICAgPiAgICAgPg0KICAgID4gICAgID4gIiog bXVsdGktcHJvZHVjZXIgc2FmZSBsb2NrLWZyZWUgcmluZyBidWZmZXIgZW5xdWV1ZSINCiAgICA+ ICAgICA+IFRoZSBjb21tZW50IGlzIGFsc28gd3JvbmcuIFRoaXMgZGVzaWduIGlzIG5vdCBsb2Nr LWZyZWUsIGhvdyBjb3VsZCBpdCBiZQ0KICAgID4gd2hlbiB0aGVyZSBpcyBzcGlubmluZw0KICAg ID4gICAgID4gKHdhaXRpbmcpIGZvciBvdGhlciB0aHJlYWRzIGluIHRoZSBjb2RlPyBJZiBhIHRo cmVhZCBtdXN0IHdhaXQgZm9yIG90aGVyDQogICAgPiB0aHJlYWRzLCB0aGVuIGJ5IGRlZmluaXRp b24NCiAgICA+ICAgICA+IHRoZSBkZXNpZ24gaXMgYmxvY2tpbmcuDQogICAgPiAgICAgPg0KICAg ID4gICAgID4gU28geW91IGFyZSBzYXlpbmcgdGhhdCBiZWNhdXNlIEZyZWVCU0QgaXMgZG9pbmcg aXQgd3JvbmcsIERQREsgY2FuIGFsc28NCiAgICA+IGRvIGl0IHdyb25nPw0KICAgID4gICAgID4N CiAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgU2VlIGJlbG93IHRvby4NCiAgICA+ICAgICA+ DQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gU2tpcHBpbmcgdGhlIGNvbXBp bGVyIG1lbW9yeSBiYXJyaWVyIGluIHJ0ZV9wYXVzZSgpIHBvdGVudGlhbGx5DQogICAgPiBhbGxv d3MgZm9yIG9wdGltaXNhdGlvbnMgdGhhdCBwcm92aWRlIG11Y2ggbW9yZSBiZW5lZml0LCBlLmcu IGhpZGluZyBzb21lDQogICAgPiBjYWNoZSBtaXNzIGxhdGVuY3kgZm9yIGxhdGVyIGxvYWRzLiBU aGUgRFBESyByaW5nIGJ1ZmZlciBpbXBsZW1lbnRhdGlvbiBpcw0KICAgID4gZGVmaW5lZCBzbyB0 byBlbmFibGUgaW5saW5pbmcgb2YgZW5xdWV1ZS9kZXF1ZXVlIGZ1bmN0aW9ucyBpbnRvIHRoZSBj YWxsZXIsDQogICAgPiBhbnkgY29kZSBjb3VsZCBpbW1lZGlhdGVseSBmb2xsb3cgdGhlc2UgY2Fs bHMuDQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gRnJvbSBJTlRFUk5BVElP TkFMIFNUQU5EQVJEIMKpSVNPL0lFQyBJU08vSUVDIDk4OTk6MjAxeA0KICAgID4gICAgID4gICAg ID4gUHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIOKAlCBDDQogICAgPiAgICAgPiAgICAgPg0KICAgID4g ICAgID4gICAgID4gNS4xLjIuNA0KICAgID4gICAgID4gICAgID4gNCBUd28gZXhwcmVzc2lvbiBl dmFsdWF0aW9ucyBjb25mbGljdCBpZiBvbmUgb2YgdGhlbSBtb2RpZmllcyBhDQogICAgPiBtZW1v cnkgbG9jYXRpb24gYW5kIHRoZSBvdGhlciBvbmUgcmVhZHMgb3IgbW9kaWZpZXMgdGhlIHNhbWUg bWVtb3J5DQogICAgPiBsb2NhdGlvbi4NCiAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAg ICAgPiAyNSBUaGUgZXhlY3V0aW9uIG9mIGEgcHJvZ3JhbSBjb250YWlucyBhIGRhdGEgcmFjZSBp ZiBpdCBjb250YWlucyB0d28NCiAgICA+IGNvbmZsaWN0aW5nIGFjdGlvbnMgaW4gZGlmZmVyZW50 IHRocmVhZHMsIGF0IGxlYXN0IG9uZSBvZiB3aGljaCBpcyBub3QgYXRvbWljLA0KICAgID4gYW5k IG5laXRoZXIgaGFwcGVucyBiZWZvcmUgdGhlIG90aGVyLiBBbnkgc3VjaCBkYXRhIHJhY2UgcmVz dWx0cyBpbg0KICAgID4gdW5kZWZpbmVkIGJlaGF2aW9yLg0KICAgID4gICAgID4NCiAgICA+ICAg ICA+ICAgICBJTU8sIEJvdGggY29uZGl0aW9uIHdpbGwgc2F0aXNmeSBpZiB0aGUgdmFyaWFibGUg aXMgdm9sYXRpbGUgYW5kIDMyYml0IHJlYWQNCiAgICA+IHdpbGwgYXRvbWljDQogICAgPiAgICAg PiAgICAgZm9yIDMyYiBhbmQgNjRiIG1hY2hpbmVzLiBJZiBub3QsIHRoZSBwcm9ibGVtIHBlcnNp c3QgZm9yIGdlbmVyaWMgY2FzZQ0KICAgID4gICAgID4gICAgIGFzIHdlbGwobGliL2xpYnJ0ZV9y aW5nL3J0ZV9yaW5nX2dlbmVyaWMuaCkNCiAgICA+ICAgICA+IFRoZSByZWFkIGZyb20gYSB2b2xh dGlsZSBvYmplY3QgaXMgbm90IGFuIGF0b21pYyBhY2Nlc3MgcGVyIHRoZSBDMTEgc3BlYy4gSXQN CiAgICA+IGp1c3QgaGFwcGVucyB0bw0KICAgID4gICAgID4gYmUgdHJhbnNsYXRlZCB0byBhbiBp bnN0cnVjdGlvbiAob24geDg2LTY0IGFuZCBBQXJjaDY0L0E2NCkgdGhhdA0KICAgID4gaW1wbGVt ZW50cyBhbiBhdG9taWMgbG9hZC4NCiAgICA+ICAgICA+IEkgZG9uJ3QgdGhpbmsgYW55IGNvbXBp bGVyIHdvdWxkIGNoYW5nZSB0aGlzIGNvZGUgZ2VuZXJhdGlvbiBhbmQNCiAgICA+IHN1ZGRlbmx5 IGdlbmVyYXRlIHNvbWUNCiAgICA+ICAgICA+IG5vbi1hdG9taWMgbG9hZCBpbnN0cnVjdGlvbiBm b3IgYSBwcm9ncmFtIHRoYXQgKm9ubHkqIHVzZXMgdm9sYXRpbGUgdG8gZG8NCiAgICA+ICJhdG9t aWMiIGFjY2Vzc2VzLg0KICAgID4gICAgID4gQnV0IGEgZnV0dXJlIGNvbXBpbGVyIGNvdWxkIGRl dGVjdCB0aGUgbWl4IG9mIGF0b21pYyBhbmQgbm9uLWF0b21pYw0KICAgID4gYWNjZXNzZXMgYW5k IG1hcmsgdGhpcw0KICAgID4gICAgID4gZXhwcmVzc2lvbiBhcyBjYXVzaW5nIHVuZGVmaW5lZCBi ZWhhdmlvdXIgYW5kIHRoYXQgd291bGQgaGF2ZQ0KICAgID4gY29uc2VxdWVuY2VzIGZvciBjb2Rl IGdlbmVyYXRpb24uDQogICAgPiAgICAgPg0KICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICBJ IGFncmVlIHdpdGggeW91IG9uIEMxMSBtZW1vcnkgbW9kZWwgc2VtYW50aWNzIHVzYWdlLiBUaGUg cmVhc29uDQogICAgPiB3aHkgSQ0KICAgID4gICAgID4gICAgIHByb3Bvc2UgbmFtZSBmb3IgdGhl IGZpbGUgYXMgcnRlX3JpbmdfYzExX21lbS5oIGFzIERQREsgaXQgc2VsZiBkaWQNCiAgICA+IG5v dA0KICAgID4gICAgID4gICAgIGhhZCBkZWZpbml0aW9ucyBmb3IgbG9hZCBhY3F1aXJlIGFuZCBz dG9yZSByZWxlYXNlIHNlbWFudGljcy4NCiAgICA+ICAgICA+ICAgICBJIHdhcyBsb29raW5nIGZv ciB0YWtpbmcgbG9hZCBhY3F1aXJlIGFuZCBzdG9yZSByZWxlYXNlIHNlbWFudGljcw0KICAgID4g ICAgID4gICAgIGZyb20gQzExIGluc3RlYWQgb2YgY3JlYXRpbmcgbmV3IEFQSSBsaWtlIExpbnV4 IGtlcm5lbCBmb3IgRnJlZUJTRChBUElzDQogICAgPiAgICAgPiAgICAgbGlrZSAgYXRvbWljX2xv YWRfYWNxXzMyKCksIGF0b21pY19zdG9yZV9yZWxfMzIoKSkuIElmIHRoZSBmaWxlIG5hbWUgaXMN CiAgICA+IHlvdXINCiAgICA+ICAgICA+ICAgICBjb25jZXJuIHRoZW4gd2UgY291bGQgY3JlYXRl IG5ldyBhYnN0cmFjdGlvbnMgYXMgd2VsbC4gVGhhdCB3b3VsZA0KICAgID4gaGVscA0KICAgID4g ICAgID4gICAgIGV4aXRpbmcgS05JIHByb2JsZW0gYXMgd2VsbC4NCiAgICA+ICAgICA+IEkgYXBw cmVjaWF0ZSB5b3VyIGVtYnJhY2Ugb2YgdGhlIEMxMSBtZW1vcnkgbW9kZWwuIEkgdGhpbmsgaXQg aXMgYmV0dGVyDQogICAgPiBmb3IgZGVzY3JpYmluZw0KICAgID4gICAgID4gKGJvdGggdG8gdGhl IGNvbXBpbGVyIGFuZCB0byBodW1hbnMpIHdoaWNoIGFuZCBob3cgb2JqZWN0cyBhcmUgdXNlZA0K ICAgID4gZm9yIHN5bmNocm9uaXNhdGlvbi4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPiBIb3dl dmVyLCBJIGRvbid0IHRoaW5rIGFuIEFQSSBhcyB5b3Ugc3VnZ2VzdCAoYW5kIG90aGVycyBoYXZl IHN1Z2dlc3RlZA0KICAgID4gYmVmb3JlLCBlLmcuIGFzDQogICAgPiAgICAgPiBkb25lIGluIE9E UCkgaXMgYSBnb29kIGlkZWEuIFRoZXJlIGlzIGFuIGluZmluaXRlIGFtb3VudCBvZiBwb3NzaWJs ZSBiYXNlDQogICAgPiB0eXBlcywgYW4NCiAgICA+ICAgICA+IGluY3JlYXNpbmcgbnVtYmVyIG9m IG9wZXJhdGlvbnMgYW5kIGEgYnVuY2ggb2YgZGlmZmVyZW50IG1lbW9yeQ0KICAgID4gb3JkZXJp bmdzLCBhICJjb21wbGV0ZSINCiAgICA+ICAgICA+IEFQSSB3b3VsZCBiZSB2ZXJ5IGxhcmdlIGFu ZCBkaWZmaWN1bHQgdG8gdGVzdCwgYW5kIG1vc3QgbWVtYmVycyBvZiB0aGUNCiAgICA+IEFQSSB3 b3VsZCBuZXZlciBiZSB1c2VkLg0KICAgID4gICAgID4gR0NDIGFuZCBDbGFuZyBib3RoIHN1cHBv cnQgdGhlIF9fYXRvbWljIGludHJpbnNpY3MuIFRoaXMgQVBJIGF2b2lkcyB0aGUNCiAgICA+IHBy b2JsZW1zIEkNCiAgICA+ICAgICA+IGRlc2NyaWJlZCBhYm92ZS4gT3Igd2UgY291bGQgdXNlIHRo ZSBvZmZpY2lhbCBDMTEgc3ludGF4IChzdGRhdG9taWMuaCkuDQogICAgPiBCdXQgdGhlbiB3ZQ0K ICAgID4gICAgID4gaGF2ZSB0aGUgcHJvYmxlbSB3aXRoIHVzaW5nIHByZS1DMTEgY29tcGlsZXJz Li4uDQogICAgPiANCiAgICA+ICAgICBJIGhhdmUgbm8gb2JqZWN0aW9uLCBpZiBldmVyeW9uZSBh Z3JlZXMgdG8gbW92ZSBDMTEgbWVtb3J5IG1vZGVsDQogICAgPiAgICAgd2l0aCBfX2F0b21pYyBp bnRyaW5zaWNzLiBCdXQgaWYgd2UgbmVlZCB0byBrZWVwIGJvdGggaGF2ZSB0aGVuDQogICAgPiAg ICAgYXRvbWljX2xvYWRfYWNxXzMyKCkga2luZCBvZiBBUEkgbWFrZSBzZW5zZS4NCiAgICA+IA0K ICAgID4gDQogICAgPiAgICAgPg0KICAgID4gICAgID4NCiAgICA+ICAgICA+DQogICAgPiAgICAg Pg0KICAgID4gICAgID4gICAgIEkgdGhpbmssIGN1cnJlbnRseSBpdCBtaXhlZCB1c2FnZSBiZWNh dXNlLCB0aGUgc2FtZSB2YXJpYWJsZSBkZWNsYXJhdGlvbg0KICAgID4gICAgID4gICAgIHVzZWQg Zm9yIEMxMSB2cyBub24gQzExIHVzYWdlLklkZWFsbHkgd2Ugd29udCBuZWVkICJ2b2xhdGlsZSIg Zm9yIEMxMQ0KICAgID4gICAgID4gICAgIGNhc2UuIEVpdGhlciB3ZSBuZWVkIHRvIGNoYW5nZSBv bmx5IHRvIEMxMSBtb2RlIE9SIGhhdmUgQVBJcyBmb3INCiAgICA+ICAgICA+ICAgICBhdG9taWNf bG9hZF9hY3FfKCkgYW5kIGF0b21pY19zdG9yZV9yZWxfKCkgdG8gYWxsb3cgYm90aCBtb2RlbHMg bGlrZQ0KICAgID4gICAgID4gICAgIExpbnV4IGtlcm5lbCBhbmQgRnJlZUJTRC4NCiAgICA+ICAg ICA+DQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gLS0gT2xhDQogICAgPiAg ICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+DQogICAgPiAg ICAgPg0KICAgID4gICAgID4NCiAgICA+IA0KICAgIA0KICAgIA0KDQo=