Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 713741917F for ; Mon, 4 Apr 2016 13:36:39 +0000 (UTC) Received: (qmail 87349 invoked by uid 500); 4 Apr 2016 13:36:38 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 87298 invoked by uid 500); 4 Apr 2016 13:36:38 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 87274 invoked by uid 99); 4 Apr 2016 13:36:38 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Apr 2016 13:36:38 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id E510FC0331 for ; Mon, 4 Apr 2016 13:36:37 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.65 X-Spam-Level: X-Spam-Status: No, score=0.65 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_NEUTRAL=0.652] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=icloudhosting.onmicrosoft.com Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id LZZLpHCMLUfS for ; Mon, 4 Apr 2016 13:36:35 +0000 (UTC) Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0102.outbound.protection.outlook.com [157.56.112.102]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id 50C235F244 for ; Mon, 4 Apr 2016 13:36:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloudhosting.onmicrosoft.com; s=selector1-icloudhosting-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YLivDbFq+OdNkmXiFoUgvJoEf1snwC7eZIVQmLwpEgk=; b=ItbI1u/h+whCwF8mBaXSUapvuLUlAfAQXJREf9vNc76gdoDn35/v3Owl6t3oK+pAGC/WXXDjE152DScar1sLvD8m7Tv1LMK4uy1ar0x8cMYxKNkqBcqQ53QaHuNkfbMWNMo0bPzvJCXsH7fdDSeVekZh6n2xp2hjgYZGUuoUJAE= Received: from DB5PR07MB1270.eurprd07.prod.outlook.com (10.164.41.148) by DB5PR07MB1271.eurprd07.prod.outlook.com (10.164.41.149) with Microsoft SMTP Server (TLS) id 15.1.434.11; Mon, 4 Apr 2016 13:36:28 +0000 Received: from DB5PR07MB1270.eurprd07.prod.outlook.com ([10.164.41.148]) by DB5PR07MB1270.eurprd07.prod.outlook.com ([10.164.41.148]) with mapi id 15.01.0434.023; Mon, 4 Apr 2016 13:36:28 +0000 From: Dean Close To: "dev@cloudstack.apache.org" Subject: RE: Redundant Router Interfaces Thread-Topic: Redundant Router Interfaces Thread-Index: AdGMQjj5U09D2UdhSZiMuUJmMK0O+gACHeyAAAC3IwAAAzDxqwAStEcAAHQnTBA= Date: Mon, 4 Apr 2016 13:36:27 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: cloudstack.apache.org; dkim=none (message not signed) header.d=none;cloudstack.apache.org; dmarc=none action=none header.from=icloudhosting.com; x-originating-ip: [185.28.167.239] x-ms-office365-filtering-correlation-id: 827edc1a-b1aa-447f-ee73-08d35c8e2027 x-microsoft-exchange-diagnostics: 1;DB5PR07MB1271;5:woklykGbzG6nu9bDxKAh+nCU9zHgY4Iez5lV8Q3l1sFUnQFpiJ+lTnt/JlDD3gpApeT4PZ7D8pc5XJqiqWQtH4+p4B/hjT1bLmLAfdTbD3etEgPkcy37+Ikqkf4LxTGibZo4boBg7aN39vVCN1L4gg==;24:V3fq7MBfhbeKPEWyrdetuuTTu4uAXgM5d7iFRjmpDaOnr885U9qTP/GyzkjhMXsBmg75pqcVLEs4DUQnFgeeTSXghUxe4hoHFGjJ9DkDoJw= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB1271; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040046)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041046)(6043046);SRVR:DB5PR07MB1271;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB1271; x-forefront-prvs: 0902222726 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(13464003)(377454003)(377424004)(71364002)(76104003)(24454002)(40124003)(1096002)(1220700001)(5002640100001)(5008740100001)(5004730100002)(3846002)(6116002)(102836003)(66066001)(76576001)(50986999)(2351001)(3480700003)(93886004)(16601075003)(19580405001)(19580395003)(3660700001)(586003)(3280700002)(10400500002)(2906002)(15975445007)(11100500001)(74316001)(87936001)(86362001)(110136002)(107886002)(2950100001)(77096005)(189998001)(2501003)(33656002)(2900100001)(76176999)(122556002)(81166005)(92566002)(54356999)(5003600100002)(450100001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB5PR07MB1271;H:DB5PR07MB1270.eurprd07.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: icloudhosting.com X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2016 13:36:28.0221 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: da886e82-b23a-41b0-8204-fa615da44d5e X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1271 SGkgV2VpLA0KDQpJIGltcGxlbWVudGVkIHlvdXIgbW9kaWZpY2F0aW9ucyBvbiBhIHRlc3QgY2xv dWQgd2UgaGF2ZSBoZXJlIGFuZCBpdCB3b3JrZWQgd2VsbC4gUmVkdW5kYW50IHJvdXRlcnMgaW4g dGhlIGJhY2t1cCBzdGF0ZSBib290ZWQgd2l0aCBwdWJsaWMgaW50ZXJmYWNlcyBkb3duLg0KDQpB cyB5b3Ugc2FpZCwgdGhleSBhbHNvIG5lZ290aWF0ZWQgdGhlIFZSUlAgaW5zdGFuY2Ugb3ZlciBl dGgwIHdoaWNoIGlzIGNvcnJlY3QuDQoNCkFzIGFuIGFzaWRlLCByZWdhcmRpbmcgdGhlIGZvbGxv d2luZyBjb2RlOg0KDQoJaWYgc2VsZi5jbC5pc19yZWR1bmRhbnQoKSBhbmQgKG5vdCBzZWxmLmlz X3B1YmxpYygpIG9yIChzZWxmLmNvbmZpZy5pc192cGMoKSBhbmQgc2VsZi5nZXREZXZpY2UoKSBu b3QgaW4gVlBDX1BVQkxJQ19JTlRFUkZBQ0UpKToNCg0KSSBleHBhbmRlZCB0aGlzIG91dCB0byBo ZWxwIG1lIG1ha2Ugc2Vuc2Ugb2YgdGhlIGxvZ2ljLiBJIGFsc28gZGlzcG9zZWQgb2YgdGhlIHBy ZWNlZGluZyBjb21tZW50IGJsb2NrIGFzIGl0IHdhcyBtaXNsZWFkaW5nIGluIG5vbi1WUEMgY29u dGV4dHMuIFRoZSBmdWxsIGJsb2NrIEknbSBydW5uaW5nIGhlcmUgaXM6DQoNCiAgICAgICAgICAg ICAgICAjIGlmIG5vdCByZWR1bmRhbnQgYnJpbmcgZXZlcnl0aGluZyB1cA0KICAgICAgICAgICAg ICAgIGlmIG5vdCBzZWxmLmNsLmlzX3JlZHVuZGFudCgpOg0KICAgICAgICAgICAgICAgICAgICBD c0hlbHBlci5leGVjdXRlKGNtZDIpDQogICAgICAgICAgICAgICAgIyBPdGhlcndpc2Ugb25seSBi cmluZyB1cCBub24tcHVibGljIGludGVyZmFjZXMNCiAgICAgICAgICAgICAgICBlbGlmIHNlbGYu Y2wuaXNfcmVkdW5kYW50KCkgYW5kIHNlbGYuY29uZmlnLmlzX3ZwYygpIGFuZCBcDQogICAgICAg ICAgICAgICAgICAgIChzZWxmLmdldERldmljZSgpIG5vdCBpbiBWUENfUFVCTElDX0lOVEVSRkFD RSk6DQogICAgICAgICAgICAgICAgICAgIENzSGVscGVyLmV4ZWN1dGUoY21kMikNCiAgICAgICAg ICAgICAgICBlbGlmIHNlbGYuY2wuaXNfcmVkdW5kYW50KCkgYW5kIG5vdCBzZWxmLmlzX3B1Ymxp YygpOg0KICAgICAgICAgICAgICAgICAgICBDc0hlbHBlci5leGVjdXRlKGNtZDIpDQoNCg0KRGVh bg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogV2VpIFpIT1UgW21haWx0bzp1 c3Rjd2VpemhvdUBnbWFpbC5jb21dIA0KU2VudDogMDIgQXByaWwgMjAxNiAwNzowMg0KVG86IGRl dkBjbG91ZHN0YWNrLmFwYWNoZS5vcmcNClN1YmplY3Q6IFJlOiBSZWR1bmRhbnQgUm91dGVyIElu dGVyZmFjZXMNCg0KSGkgRGVhbiwNCg0KdGhlIFZSUlAgaW5zdGFuY2Ugd2lsbCBiZSBzZXQgdG8g ZXRoMCAoZ3Vlc3QgZGV2aWNlKSBpbiByb3V0ZXIsIGFuZCBldGgyICh0aGUgZmlyc3QgZ3Vlc3Qg ZGV2aWNlICkgaW4gdnBjIHJvdXRlci4gSSB0aGluayBpdCBpcyBnb29kLg0KDQotV2VpDQoNCjIw MTYtMDQtMDIgMDoyMiBHTVQrMDI6MDAgRGVhbiBDbG9zZSA8ZGVhbi5jbG9zZUBpY2xvdWRob3N0 aW5nLmNvbT46DQoNCj4gSGkgV2VpLA0KPg0KPiBJdCBsb29rcyBsaWtlIHlvdXIgcGF0Y2ggd2ls bCBwcmV2ZW50IHJlZHVuZGFudCByb3V0ZXJzIGZyb20gYnJpbmdpbmcgDQo+IHVwIHB1YmxpYyBp bnRlcmZhY2VzLiBXZSBhbHNvIG5lZWQgdG86DQo+DQo+IDEuIHNoaWZ0IHRoZSBWUlJQIGluc3Rh bmNlIG92ZXIgdG8gZXRoMCBhcyBldGgyIHdpbGwgYmUgZG93biBvbiB0aGUgYmFja3VwLg0KPiAy LiBFbnN1cmUgdGhhdCBldGgwIGFuZCBldGgxIGFyZSB1cCBvbiBib3RoIHJlZHVuZGFudCB2aXJ0 dWFsIHJvdXRlcnMuDQo+DQo+IFlvdXIgcGF0Y2ggbWlnaHQgYWxyZWFkeSBzb2x2ZSBwb2ludCAy LiBXaGF0IGRvIHlvdSB0aGluaz8NCj4NCj4gUG9pbnQgMSB3aWxsIHJlcXVpcmUgbW9kaWZ5aW5n IHRoZSBrZWVwYWxpdmVkLmNvbmYgdGVtcGxhdGUuIERvIHlvdSANCj4gd2FudCB0byBoYW5kbGUg dGhpcyBpbiB5b3VyIFBSIG9yIHNoYWxsIEkgYXJyYW5nZSB0aGF0Pw0KPg0KPiBLaW5kIFJlZ2Fy ZHMsDQo+DQo+IERlYW4gQ2xvc2UNCj4gaUNsb3VkSG9zdGluZy5jb20NCj4gaHR0cDovL3d3dy5p Y2xvdWRob3N0aW5nLmNvbQ0KPiBUZWw6IDAxNTgyIDIyNzkyNw0KPg0KPiBTcGVjdHJ1bSBIb3Vz ZSwgRHVuc3RhYmxlIFJvYWQsIFJlZGJvdXJuLCBBTDMgN1BSDQo+DQo+DQo+ICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0K Pg0KPiBUaGUgbmFtZXMgaUNsb3VkSG9zdGluZyBhbmQgaUNsb3VkSG9zdGluZy5jb20gYXJlIHRy YWRpbmcgc3R5bGVzIG9mIA0KPiBCQlMgQ29tbWVyY2UgTHRkIHdoaWNoIGlzIHJlZ2lzdGVyZWQg aW4gRW5nbGFuZCBhbmQgV2FsZXMsIENvbXBhbnkgDQo+IE51bWJlciAwNDgzNzcxNC4gUGxlYXNl IHVzZSBvdXIgdHJhZGluZyBhZGRyZXNzIGFib3ZlIGZvciBtYWlsLiBPdXIgDQo+IHJlZ2lzdGVy ZWQgb2ZmaWNlIGlzIDUgVGhlYWxlIExha2VzIEJ1c2luZXNzIFBhcmssIE1vdWxkZW4gV2F5LCAN Cj4gU3VsaGFtc3RlYWQsIFJlYWRpbmcsIEJlcmtzaGlyZSwgUkc3IDRHQi4gVkFUIFJlZ2lzdHJh dGlvbiBOdW1iZXIgR0IgOTgyIDgyMzAgOTQuDQo+DQo+IFRoaXMgZW1haWwgYW5kIGFueSBmaWxl cyB0cmFuc21pdHRlZCB3aXRoIGl0IGFyZSBjb25maWRlbnRpYWwgYW5kIA0KPiBpbnRlbmRlZCBz b2xlbHkgZm9yIHRoZSB1c2Ugb2YgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gdGhl eSBhcmUgYWRkcmVzc2VkLg0KPiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50 IHlvdSBhcmUgbm90IGF1dGhvcmlzZWQgdG8gYW5kIA0KPiBtdXN0IG5vdCBkaXNjbG9zZSwgY29w eSwgZGlzdHJpYnV0ZSwgb3IgcmV0YWluIHRoaXMgbWVzc2FnZSBvciBhbnkgcGFydCBvZiBpdC4N Cj4NCj4gaUNsb3VkSG9zdGluZyBhY2NlcHRzIG5vIHJlc3BvbnNpYmlsaXR5IGZvciBpbmZvcm1h dGlvbiwgZXJyb3JzIG9yIA0KPiBvbWlzc2lvbnMgaW4gdGhpcyBlbWFpbC4NCj4NCj4gKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqDQo+DQo+DQo+DQo+DQo+IE9uIEZyaSwgQXByIDEsIDIwMTYgYXQgODozNCBwbSwgV2VpIFpI T1UgPHVzdGN3ZWl6aG91QGdtYWlsLmNvbT4gd3JvdGU6DQo+IGFjdHVhbGx5IG5vdCBvbmx5IHRo aXMgaXNzdWUsIGJ1dCBtb3JlDQo+ICgxKSByZXN0YXJ0IHZwYyByb3V0ZXIgd2lsbCBicmVhayB0 aGUgbmV0d29yayBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgDQo+IHRpZXJzIGluIHRoZSB2cGMuDQo+ ICgyKSBjaGVja19oZWFydGJlYXQuc2ggZG9lcyBub3Qgd29yay4NCj4NCj4gSSB3aWxsIGNyZWF0 ZSB0aWNrZXRzIGZvciB0aGVtIG5leHQgTW9uZGF5LCBhbmQgY3JlYXRlIFBSIG9uIGdpdGh1Yi4N Cj4NCj4gLVdlaQ0KPg0KPiAyMDE2LTA0LTAxIDIxOjE0IEdNVCswMjowMCBXZWkgWkhPVSA8dXN0 Y3dlaXpob3VAZ21haWwuY29tPjoNCj4NCj4gPiBEZWFuLA0KPiA+DQo+ID4gSSBqdXN0IGZpeGVk IGl0IHllc3RlcmRheS4NCj4gPg0KPiA+IHRoZSBjb21taXQgaXMNCj4gPg0KPiA+IC0tLQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCANCj4gPiBhL3N5c3RlbXZtL3BhdGNoZXMvZGViaWFuL2NvbmZpZy9v cHQvY2xvdWQvYmluL2NzL0NzQWRkcmVzcy5weQ0KPiA+IGIvc3lzdGVtdm0vcGF0Y2hlcy9kZWJp YW4vY29uZmlnL29wdC9jbG91ZC9iaW4vY3MvQ3NBZGRyZXNzLnB5DQo+ID4gaW5kZXggNWY2M2Mw Ni4uNTI1NmQwMyAxMDA3NTUNCj4gPiAtLS0gYS9zeXN0ZW12bS9wYXRjaGVzL2RlYmlhbi9jb25m aWcvb3B0L2Nsb3VkL2Jpbi9jcy9Dc0FkZHJlc3MucHkNCj4gPiArKysgYi9zeXN0ZW12bS9wYXRj aGVzL2RlYmlhbi9jb25maWcvb3B0L2Nsb3VkL2Jpbi9jcy9Dc0FkZHJlc3MucHkNCj4gPiBAQCAt MjcsNyArMjcsNyBAQCBmcm9tIENzUm91dGUgaW1wb3J0IENzUm91dGUgZnJvbSBDc1J1bGUgaW1w b3J0IA0KPiA+IENzUnVsZQ0KPiA+DQo+ID4gVlJSUF9UWVBFUyA9IFsnZ3Vlc3QnXQ0KPiA+IC1Q VUJMSUNfSU5URVJGQUNFID0gWydldGgxJ10NCj4gPiArVlBDX1BVQkxJQ19JTlRFUkZBQ0UgPSBb J2V0aDEnXQ0KPiA+DQo+ID4gY2xhc3MgQ3NBZGRyZXNzKENzRGF0YUJhZyk6DQo+ID4NCj4gPiBA QCAtMzIzLDcgKzMyMyw3IEBAIGNsYXNzIENzSVA6DQo+ID4gIyBJZiByZWR1bmRhbnQgb25seSBi cmluZyB1cCBwdWJsaWMgaW50ZXJmYWNlcyB0aGF0IGFyZSBub3QgZXRoMS4NCj4gPiAjIFJlYXNv bjogcHJpdmF0ZSBnYXRld2F5cyBhcmUgcHVibGljIGludGVyZmFjZXMuDQo+ID4gIyBtYXN0ZXIu cHkgYW5kIGtlZXBhbGl2ZWQgd2lsbCBkZWFsIHdpdGggZXRoMSBwdWJsaWMgaW50ZXJmYWNlLg0K PiA+IC0gaWYgc2VsZi5jbC5pc19yZWR1bmRhbnQoKSBhbmQgKG5vdCBzZWxmLmlzX3B1YmxpYygp IG9yDQo+ID4gc2VsZi5nZXREZXZpY2UoKSBub3QgaW4gUFVCTElDX0lOVEVSRkFDRSk6DQo+ID4g KyBpZiBzZWxmLmNsLmlzX3JlZHVuZGFudCgpIGFuZCAobm90IHNlbGYuaXNfcHVibGljKCkgb3IN Cj4gPiAoc2VsZi5jb25maWcuaXNfdnBjKCkgYW5kIHNlbGYuZ2V0RGV2aWNlKCkgbm90IGluIFZQ Q19QVUJMSUNfSU5URVJGQUNFKSk6DQo+ID4gQ3NIZWxwZXIuZXhlY3V0ZShjbWQyKQ0KPiA+ICMg aWYgbm90IHJlZHVuZGFudCBicmluZyBldmVyeXRoaW5nIHVwIGlmIG5vdCANCj4gPiBzZWxmLmNs LmlzX3JlZHVuZGFudCgpOg0KPiA+DQo+ID4gLS0tDQo+ID4NCj4gPiAtIFdlaQ0KPiA+DQo+ID4g MjAxNi0wNC0wMSAyMDoxMyBHTVQrMDI6MDAgRGVhbiBDbG9zZSA8ZGVhbi5jbG9zZUBpY2xvdWRo b3N0aW5nLmNvbT46DQo+ID4NCj4gPj4gSGkgZ3V5cywNCj4gPj4NCj4gPj4gSSBoYWQgYmVlbiBp bnZlc3RpZ2F0aW5nIGEgcG9zc2libGUgYnVnIHdpdGggdGhlIHdheSBpbnRlcmZhY2VzIGFyZSAN Cj4gPj4gbWFuYWdlZCBvbiB2aXJ0dWFsIHJvdXRlcnMuIFRoZSBwdWJsaWMgaW50ZXJmYWNlcyBh cmUgYmVpbmcgYnJvdWdodCANCj4gPj4gdXANCj4gb24NCj4gPj4gYmFja3VwIHJvdXRlcnMgYW5k IChiZWNhdXNlIHRoZXkgYm9vdCBzZWNvbmQpIHRoZXkgYXJwIHRoZSBJUHMgYXdheSANCj4gPj4g ZnJvbSB0aGUgbWFzdGVyLiBJJ2QgYmVlbiBleGFtaW5pbmcgYW4gaWRlYSBmb3IgYSBmaXggYnV0 IHdoaWxzdCANCj4gPj4gZG9pbmcgc28gSSBmb3VuZCB0aGF0IHRoZSBzeXN0ZW0gYXBwZWFycyB0 byBiZSBkZXNpZ25lZCB0byBicmluZyB1cCANCj4gPj4gdGhlc2UNCj4gaW50ZXJmYWNlcy4NCj4g Pj4NCj4gPj4gSSBzdXNwZWN0IHRoYXQgYSBmZXcgdGhpbmdzIG5lZWQgdG8gYmUgcmV3b3JrZWQg LSBidXQgdGhlIGNoYW5nZXMgDQo+ID4+IG5lY2Vzc2FyeSBnbyBzbyBmYXIgYWdhaW5zdCB3aGF0 IGhhcyBiZWVuIGltcGxlbWVudGVkIHRoYXQgSSB3YW50ZWQgDQo+ID4+IHRvDQo+IG9wZW4NCj4g Pj4gdGhpcyB1cCBiZWZvcmUgZG9pbmcgdGhlIHdvcmsuDQo+ID4+DQo+ID4+IEhvcGVmdWxseSBp ZiBJIGdvIHRocm91Z2ggbXkgZmluZGluZ3MgeW91IGd1eXMgY2FuIGhlbHAgbWUgc2VlIHdoYXQg DQo+ID4+IEkgbWlnaHQgYmUgZ2V0dGluZyB3cm9uZy4NCj4gPj4NCj4gPj4gVGhlIGZvbGxvd2lu ZyB3YXMgY29ycmVjdCBmb3IgcHJlLTQuNiByZWR1bmRhbnQgcm91dGVyczoNCj4gPj4NCj4gPj4g MS4gQm90aCByb3V0ZXJzIGdldCBjb25maWd1cmVkIHdpdGggSVAgYWRkcmVzc2VzLCByb3V0ZXMg YW5kIA0KPiA+PiBpcHRhYmxlcyBydWxlcy4NCj4gPj4gMi4gUHVibGljIGludGVyZmFjZXMgYXJl IGluaXRpYWxseSBzZXQgYXMgRE9XTi4NCj4gPj4gMy4gS2VlcGFsaXZlZCBydW5zIGEgVlJSUCBp bnN0YW5jZSBvbiB0aGUgcHJpdmF0ZSBpbnRlcmZhY2UgKGV0aDApIA0KPiA+PiB0byBuZWdvdGlh dGUgTUFTVEVSL0JBQ0tVUCByb2xlcy4NCj4gPj4gNC4gS2VlcGFsaXZlZCBtYW5hZ2VzIHRoZSB2 aXJ0dWFsIElQIG9uIGV0aDAgdXNlZCBhcyB0aGUgcHVibGljIA0KPiA+PiBnYXRld2F5IGZvciB0 aGUgZ3Vlc3QgVk1zLg0KPiA+PiA1LiBLZWVwYWxpdmVkIHVzZXMgYSBtYXN0ZXIgbm90aWZ5IHNj cmlwdCB0byBicmluZyB1cCB0aGUgcHVibGljIA0KPiA+PiBpbnRlcmZhY2VzLg0KPiA+Pg0KPiA+ PiBUaGUgYWJvdmUgd2FzIHRydWUgZm9yIHByZS00LjYgcm91dGVycy4gTm93LCBob3dldmVyLCB0 aGluZ3MgYXBwZWFyIA0KPiA+PiB0byB3b3JrIGRpZmZlcmVudGx5Og0KPiA+Pg0KPiA+PiAxLiBC b3RoIHJvdXRlcnMgZ2V0IGNvbmZpZ3VyZWQgYXMgYmVmb3JlLg0KPiA+PiAyLiBBbGwgaW50ZXJm YWNlcyBhcGFydCBmcm9tIGV0aDEgKHRoZSBIeXBlcnZpc29yLWxpbmsgaW50ZXJmYWNlKSANCj4g Pj4gYXJlIHNldCBhcyBVUC4NCj4gPj4gMy4gS2VlcGFsaXZlZCBydW5zIGEgVlJSUCBpbnN0YW5j ZSBvbiB0aGUgZmlyc3QgcHVibGljIGludGVyZmFjZSANCj4gPj4gKGV0aDIpIHRvIG5lZ290aWF0 ZSBNQVNURVIvQkFDS1VQIHJvbGVzLg0KPiA+PiA0LiBLZWVwYWxpdmVkIG1hbmFnZXMgdGhlIHZp cnR1YWwgSVAgYXMgYmVmb3JlLg0KPiA+PiA1LiBLZWVwYWxpdmVkIHVzZXMgYSBtYXN0ZXIgbm90 aWZ5IHNjcmlwdCB0byBicmluZyB1cCB0aGUgcHVibGljIA0KPiA+PiBpbnRlcmZhY2VzICh1bm5l Y2Vzc2FyeSkgNi4gS2VlcGFsaXZlZCB1c2VzIGEgYmFja3VwIG5vdGlmeSBzY3JpcHQgDQo+ID4+ IHRvIGJyaW5nIGRvd24gdGhlIHB1YmxpYyBpbnRlcmZhY2VzICh1bnVzZWQpDQo+ID4+DQo+ID4+ IFRoaXMgaXMgdW5leHBlY3RlZCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb25zOg0KPiA+Pg0KPiA+ PiAxLiBUaGUga2VlcGFsaXZlZCBub3RpZnkgc2NyaXB0IGJyaW5ncyB0aGUgcHVibGljIGludGVy ZmFjZXMgZG93biANCj4gPj4gd2hlbiB0cmFuc2l0aW9uaW5nIHRvIEJBQ0tVUCAtIHNvIGhvdyBj YW4gd2UgZXhwZWN0IHRvIHJ1biBhIFZSUlAgDQo+ID4+IGluc3RhbmNlDQo+IG92ZXINCj4gPj4g ZXRoMj8NCj4gPj4gMi4gSWYgaW50ZXJmYWNlcyBhcmUgZG93biB3aGVuIHRyYW5zaXRpb25pbmcg dG8gQkFDS1VQLCB3aHkgYXJlIA0KPiA+PiB0aGV5IG5vdCBleHBlY3RlZCB0byBiZSBkb3duIHRv IGJlZ2luIHdpdGg/IChCZWZvcmUgdGhlIHJvdXRlciBoYXMgDQo+ID4+IGJlY29tZQ0KPiBNQVNU RVIpDQo+ID4+IDMuIFdoeSBhcmUgd2UgcnVubmluZyBhIFZSUlAgaW5zdGFuY2Ugb3ZlciBhbiBp bnRlcmZhY2Ugd2l0aCBhbiBJUCANCj4gPj4gdGhhdCB3aWxsIGNsYXNoIHdpdGggYW5vdGhlciBo b3N0IG9uIHRoZSBuZXR3b3JrPw0KPiA+Pg0KPiA+PiBUaGUgZm9sbG93aW5nIG1ldGhvZCBmcm9t IHRoZSBDc0lQIGNsYXNzIGluIA0KPiA+PiAvb3B0L2Nsb3VkL2Jpbi9jcy9Dc0FkZHJlc3MucHkg Y29uZnVzZXMgbWF0dGVycyBmdXRoZXI6DQo+ID4+DQo+ID4+IGRlZiBjaGVja19pc191cChzZWxm KToNCj4gPj4gIiIiIEVuc3VyZSBkZXZpY2UgaXMgdXAgIiIiDQo+ID4+IGNtZCA9ICJpcCBsaW5r IHNob3cgJXMgfCBncmVwICdzdGF0ZSBET1dOJyIgJSBzZWxmLmdldERldmljZSgpIGZvciANCj4g Pj4gaSBpbiBDc0hlbHBlci5leGVjdXRlKGNtZCk6DQo+ID4+IGlmICIgRE9XTiAiIGluIGk6DQo+ ID4+IGNtZDIgPSAiaXAgbGluayBzZXQgJXMgdXAiICUgc2VsZi5nZXREZXZpY2UoKSAjIElmIHJl ZHVuZGFudCBvbmx5IA0KPiA+PiBicmluZyB1cCBwdWJsaWMgaW50ZXJmYWNlcyB0aGF0IGFyZSBu b3QgZXRoMS4NCj4gPj4gIyBSZWFzb246IHByaXZhdGUgZ2F0ZXdheXMgYXJlIHB1YmxpYyBpbnRl cmZhY2VzLg0KPiA+PiAjIG1hc3Rlci5weSBhbmQga2VlcGFsaXZlZCB3aWxsIGRlYWwgd2l0aCBl dGgxIHB1YmxpYyBpbnRlcmZhY2UuDQo+ID4+IGlmIHNlbGYuY2wuaXNfcmVkdW5kYW50KCkgYW5k IChub3Qgc2VsZi5pc19wdWJsaWMoKSBvcg0KPiA+PiBzZWxmLmdldERldmljZSgpIG5vdCBpbiBQ VUJMSUNfSU5URVJGQUNFKToNCj4gPj4gQ3NIZWxwZXIuZXhlY3V0ZShjbWQyKQ0KPiA+PiAjIGlm IG5vdCByZWR1bmRhbnQgYnJpbmcgZXZlcnl0aGluZyB1cCBpZiBub3QgDQo+ID4+IHNlbGYuY2wu aXNfcmVkdW5kYW50KCk6DQo+ID4+IENzSGVscGVyLmV4ZWN1dGUoY21kMikNCj4gPj4NCj4gPj4g VGhlIGNvbW1lbnRzIHJlZmVyIHRvIGV0aDEgYXMgYSBwdWJsaWMgaW50ZXJmYWNlIHdoZW4gdGhp cyBpcyB0aGUgDQo+ID4+IGxpbmsNCj4gdG8NCj4gPj4gdGhlIGh5cGVydmlzb3IuIEluZGVlZCwg UFVCTElDX0lOVEVSRkFDRSBpcyBkZWZpbmVkIG9uIGxpbmUgMzEgYXMNCj4gWydldGgxJ10uDQo+ ID4+IEJ1dCBrZWVwYWxpdmVkIGFuZCBtYXN0ZXIucHkgZG9uJ3QgaW5mbHVlbmNlIGV0aDEgYXQg YWxsLiBUaGlzIA0KPiA+PiBsb29rcw0KPiBsaWtlIGENCj4gPj4gbWlzdGFrZS4NCj4gPj4NCj4g Pj4gTGFzdGx5LCB0aGUgbG9naWMgb2YgdGhpcyBsaW5lIGxvb2tzIGZsYXdlZDoNCj4gPj4NCj4g Pj4gaWYgc2VsZi5jbC5pc19yZWR1bmRhbnQoKSBhbmQgKG5vdCBzZWxmLmlzX3B1YmxpYygpIG9y IA0KPiA+PiBzZWxmLmdldERldmljZSgpIG5vdCBpbiBQVUJMSUNfSU5URVJGQUNFKQ0KPiA+Pg0K PiA+PiBBcyBQVUJMSUNfSU5URVJGQUNFIGlzIGxpbWl0ZWQgdG8gZXRoMSwgdGhlIGBub3Qgc2Vs Zi5pc19wdWJsaWMoKWAgDQo+ID4+IHdpbGwgYmUgaWdub3JlZC4gUHVibGljIElQcyB3aWxsIG5l dmVyIGJlIGFzc2lnbmVkIHRvIGV0aDEsIHNvIHRoaXMgDQo+ID4+IGxpbmUgZXZhbHVhdGVzIGFz Og0KPiA+Pg0KPiA+Pg0KPiA+PiBpZiBzZWxmLmNsLmlzX3JlZHVuZGFudCgpIGFuZCAoc2VsZi5n ZXREZXZpY2UoKSBub3QgaW4gDQo+ID4+IFBVQkxJQ19JTlRFUkZBQ0UpDQo+ID4+DQo+ID4+IHdo aWNoIHJlZHVjZXMgZXZlbiBmdXJ0aGVyIHRvOg0KPiA+Pg0KPiA+PiBpZiBzZWxmLmNzLmlzX3Jl ZHVuZGFudCgpIGFuZCBzZWxmLmlzX2NvbnRyb2woKQ0KPiA+Pg0KPiA+Pg0KPiA+PiBXaGF0IHdv dWxkIG5lZWQgZG9pbmcNCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+DQo+ID4+IDEu IFRoZSBrZWVwYWxpdmVkLmNvbmYgdGVtcGxhdGUgd291bGQgbmVlZCB0byBiZSBjaGFuZ2VkIHRv IHJ1biB0aGUgDQo+ID4+IFZSUlAgaW5zdGFuY2Ugb3ZlciBldGgwLg0KPiA+PiAyLiBUaGUgY2hl Y2tfaXNfdXAgbWV0aG9kIG9mIHRoZSBDc0lQIGNsYXNzIHNob3VsZCBiZSByZW5hbWVkIHRvIA0K PiA+PiAnYnJpbmdfdXBfaW50ZXJmYWNlcycuIEZvciByZWR1bmRhbnQgcm91dGVycyBpdCBzaG91 bGQgaWdub3JlIElQcyANCj4gPj4gdGhhdA0KPiBwYXNzDQo+ID4+IGlzX3B1YmxpYyBvciBuZWVk c192cnJwLg0KPiA+PiAzLiBUaGUgYXJwUGluZyBtZXRob2Qgc2hvdWxkIGRvIG5vdGhpbmcgaWYg dGhlIGludGVyZmFjZSBpcyBkb3duLg0KPiA+PiA0LiBUaGUgUFVCTElDX0lOVEVSRkFDRSBjb25z dGFudCBzaG91bGQgYmUgZWl0aGVyIHJlbmFtZWQgb3IgDQo+ID4+IGRyb3BwZWQgYWx0b2dldGhl ci4NCj4gPj4gNS4gT3RoZXIgdGhpbmdzIHRoYXQgSSBoYXZlbid0IGNvbnNpZGVyZWQ/DQo+ID4+ DQo+ID4+DQo+ID4+IEknZCByZWFsbHkgYXBwcmVjaWF0ZSBhbnkgZmVlZGJhY2sgb24gdGhpcy4g SXQncyBwb3NzaWJsZSB0aGF0IEkndmUgDQo+ID4+IGdvdCBpdCBhbGwgd3JvbmcgYnV0IEknbSBz dXNwZWN0aW5nIG5vdC4gSSBqdXN0IGRvbid0IHdhbnQgdG8gdHJlYWQgDQo+ID4+IG9uDQo+IGFu eW9uZSdzDQo+ID4+IHRvZXMgYnkgc3VibWl0dGluZyBhIFBSIHRoYXQgZ29lcyBhZ2FpbnN0IHdo YXQgYXBwZWFycyB0byBiZSBhbiANCj4gPj4gZXhwbGljaXQgZGVzaWduIGRlY2lzaW9uLg0KPiA+ Pg0KPiA+Pg0KPiA+PiBLaW5kIHJlZ2FyZHMsDQo+ID4+DQo+ID4+IERlYW4gQ2xvc2UNCj4gPj4g aUNsb3VkSG9zdGluZy5jb20NCj4gPj4gaHR0cDovL3d3dy5pY2xvdWRob3N0aW5nLmNvbQ0KPiA+ PiBUZWw6IDAxNTgyIDIyNzkyNw0KPiA+Pg0KPiA+PiBVbml0IDIsIFNtYWxsbWVhZCBSb2FkLCBS ZWFkaW5nIFJHMiAwUVMNCj4gPj4NCj4gPj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4+IFRoZSBuYW1lcyBpQ2xv dWRIb3N0aW5nIGFuZCBpQ2xvdWRIb3N0aW5nLmNvbSBhcmUgdHJhZGluZyBzdHlsZXMgb2YgDQo+ ID4+IEJCUyBDb21tZXJjZSBMdGQgd2hpY2ggaXMgcmVnaXN0ZXJlZCBpbiBFbmdsYW5kIGFuZCBX YWxlcywgQ29tcGFueSANCj4gPj4gTnVtYmVyIDA0ODM3NzE0LiBQbGVhc2UgdXNlIG91ciB0cmFk aW5nIGFkZHJlc3MgYWJvdmUgZm9yIG1haWwuIE91ciANCj4gPj4gcmVnaXN0ZXJlZCBvZmZpY2Ug aXMgNSBUaGVhbGUgTGFrZXMgQnVzaW5lc3MgUGFyaywgTW91bGRlbiBXYXksIA0KPiA+PiBTdWxo YW1zdGVhZCwNCj4gUmVhZGluZywNCj4gPj4gQmVya3NoaXJlLCBSRzcgNEdCLiBWQVQgUmVnaXN0 cmF0aW9uIE51bWJlciBHQiA5ODIgODIzMCA5NC4NCj4gPj4NCj4gPj4gVGhpcyBlbWFpbCBhbmQg YW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVudGlhbCBhbmQgDQo+ID4+ IGludGVuZGVkIHNvbGVseSBmb3IgdGhlIHVzZSBvZiB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkg dG8gd2hvbSANCj4gPj4gdGhleSBhcmUgYWRkcmVzc2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50 ZW5kZWQgcmVjaXBpZW50IHlvdSBhcmUgDQo+ID4+IG5vdCBhdXRob3Jpc2VkDQo+IHRvDQo+ID4+ IGFuZCBtdXN0IG5vdCBkaXNjbG9zZSwgY29weSwgZGlzdHJpYnV0ZSwgb3IgcmV0YWluIHRoaXMg bWVzc2FnZSBvciANCj4gPj4gYW55DQo+IHBhcnQNCj4gPj4gb2YgaXQuDQo+ID4+DQo+ID4+IGlD bG91ZEhvc3RpbmcgYWNjZXB0cyBubyByZXNwb25zaWJpbGl0eSBmb3IgaW5mb3JtYXRpb24sIGVy cm9ycyBvciANCj4gPj4gb21pc3Npb25zIGluIHRoaXMgZW1haWwuDQo+ID4+ICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0K PiA+Pg0KPiA+Pg0KPiA+DQo+DQo=