From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Zhu Subject: Re: Is this 32-bit NCM? Date: Fri, 28 Nov 2014 08:46:03 +0000 Message-ID: <54783643.9040509@audiocodes.com> References: <87ppc957h1.fsf@nemi.mork.no> <874mtl55ar.fsf@nemi.mork.no> <54781523.6030600@audiocodes.com> <54783443.50700@audiocodes.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Alex Strizhevsky , =?utf-8?B?QmrDuHJuIE1vcms=?= , "Midge Shaojun Tan" , "youtux@gmail.com" , "linux-usb@vger.kernel.org" , "netdev@vger.kernel.org" , Eli Britstein To: Enrico Mioso Return-path: Received: from mail-db3lrp0076.outbound.protection.outlook.com ([213.199.154.76]:50061 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750990AbaK1IqM (ORCPT ); Fri, 28 Nov 2014 03:46:12 -0500 In-Reply-To: Content-Language: en-US Content-ID: <1328CA2BBA2CB04AA436F203E2687957@eurprd06.prod.outlook.com> Sender: netdev-owner@vger.kernel.org List-ID: Tm8uIEkgYWxzbyB0cmllZCB0aGUgMzJiaXQgdmVyc2lvbi4gVGhlIHJlc3VsdCBpcyB0aGUgc2Ft ZS4NCg0KUmVnYXJkcywNCktldmluDQoNCk9uIDExLzI4LzIwMTQgMDQ6NDIgUE0sIEVucmljbyBN aW9zbyB3cm90ZToNCj4gQnV0IHlvdSBhcmUgc3RpbGwgaW4gMTYtYml0IG1vZGUsIHJpZ2h0Pw0K PiBIYXZlIHlvdSB0cmllZCBieSBjaGFuY2UgaW4gMzItYml0IG1vZGU/IEkgYW0gY29udmluY2Vk IHRoaXMgaXMgbm90IHRoZSBwcm9ibGVtDQo+IC4uLiBidXQsIGp1c3RpIG4gY2FzZT8NCj4gdGhh bmsgeW91IEtldmluIGZvciB5b3VyIHdvcmsgLSBhbmQgc29ycnkgZm9yIGJlaW5nIG5vdCBzbyBo ZWxwZnVsLi4uDQo+DQo+DQo+IE9uIEZyaSwgMjggTm92IDIwMTQsIEtldmluIFpodSB3cm90ZToN Cj4NCj4gPT1EYXRlOiBGcmksIDI4IE5vdiAyMDE0IDA5OjM3OjMwDQo+ID09RnJvbTogS2V2aW4g Wmh1IDxNaW5neWluZy5aaHVAYXVkaW9jb2Rlcy5jb20+DQo+ID09VG86IEVucmljbyBNaW9zbyA8 bXJraWtvLnJzQGdtYWlsLmNvbT4NCj4gPT1DYzogQWxleCBTdHJpemhldnNreSA8YWxleHhzdEBn bWFpbC5jb20+LCBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4sDQo+ID09ICAgIE1pZGdlIFNo YW9qdW4gIFRhbiA8U2hhb2p1bk1pZGdlLlRhbkBhdWRpb2NvZGVzLmNvbT4sDQo+ID09ICAgICJ5 b3V0dXhAZ21haWwuY29tIiA8eW91dHV4QGdtYWlsLmNvbT4sDQo+ID09ICAgICJsaW51eC11c2JA dmdlci5rZXJuZWwub3JnIiA8bGludXgtdXNiQHZnZXIua2VybmVsLm9yZz4sDQo+ID09ICAgICJu ZXRkZXZAdmdlci5rZXJuZWwub3JnIiA8bmV0ZGV2QHZnZXIua2VybmVsLm9yZz4sDQo+ID09ICAg IEVsaSBCcml0c3RlaW4gPEVsaS5Ccml0c3RlaW5AYXVkaW9jb2Rlcy5jb20+DQo+ID09U3ViamVj dDogUmU6IElzIHRoaXMgMzItYml0IE5DTT8NCj4gPT0NCj4gPT1BcyB0aGUgcmVtYWluZGVyICh3 TmRwT3V0UGF5bG9hZFJlbWFpbmRlcikgaXMgb3ZlcndyaXR0ZW4gYnkgdGhlDQo+ID09Zm9sbG93 aW5nIGxpbmVzLCB3aG9zZSBmaW5hbGx5IHZhbHVlIGlzIDAsIEkgbW9kaWZpZWQgdGhlIGNvZGUg bm90IHRvDQo+ID09Y2hhbmdlIGl0LiBMZXQgaXQgcmVtYWluIDIuIEFuZCBub3cgdGhlIGNhcHR1 cmUgc2hvd3MgdGhlIEV0aGVybmV0DQo+ID09aGVhZGVyIG9mZnNldCBpcyB0aGUgc2FtZSBhcyB3 aW5kb3dzLCBob3dldmVyLCBpdCdzIG5vdCB3b3JraW5nIHlldC4NCj4gPT0NCj4gPT0gICAgIC8q IGFkanVzdCBUWC1yZW1haW5kZXIgYWNjb3JkaW5nIHRvIE5DTSBzcGVjaWZpY2F0aW9uLiAqLw0K PiA9PSAgICAgY3R4LT50eF9yZW1haW5kZXIgPSAoKGN0eC0+dHhfcmVtYWluZGVyIC0gZXRoX2hs ZW4pICYNCj4gPT0gICAgICAgICAgICAgICAgICAoY3R4LT50eF9tb2R1bHVzIC0gMSkpOw0KPiA9 PQ0KPiA9PQ0KPiA9PVJlZ2FyZHMsDQo+ID09S2V2aW4NCj4gPT0NCj4gPT1PbiAxMS8yOC8yMDE0 IDA0OjI0IFBNLCBFbnJpY28gTWlvc28gd3JvdGU6DQo+ID09PiBUaGUgZHJpdmVyIGVmZmVjdGl2 ZWx5IHVzZXMgdGhlIHdOZHBPdXREaXZpc29yIGluZGlyZWN0bHkgLSBzZWUgc3RhbmRhcmQNCj4g PT0+IGNkY19uY20gZGVyaXZlciBhcyBpbiBrZXJuZWwgZ2l0IHRyZWUsIGxpbmUgNDkwLg0KPiA9 PT4NCj4gPT0+DQo+ID09PiBPbiBGcmksIDI4IE5vdiAyMDE0LCBLZXZpbiBaaHUgd3JvdGU6DQo+ ID09Pg0KPiA9PT4gPT1EYXRlOiBGcmksIDI4IE5vdiAyMDE0IDA3OjI0OjQ5DQo+ID09PiA9PUZy b206IEtldmluIFpodSA8TWluZ3lpbmcuWmh1QGF1ZGlvY29kZXMuY29tPg0KPiA9PT4gPT1Ubzog QWxleCBTdHJpemhldnNreSA8YWxleHhzdEBnbWFpbC5jb20+LCBCasO4cm4gTW9yayA8Ympvcm5A bW9yay5ubz4sDQo+ID09PiA9PSAgICBNaWRnZSBTaGFvanVuICBUYW4gPFNoYW9qdW5NaWRnZS5U YW5AYXVkaW9jb2Rlcy5jb20+DQo+ID09PiA9PUNjOiBFbnJpY28gTWlvc28gPG1ya2lrby5yc0Bn bWFpbC5jb20+LCAieW91dHV4QGdtYWlsLmNvbSIgPHlvdXR1eEBnbWFpbC5jb20+LA0KPiA9PT4g PT0gICAgImxpbnV4LXVzYkB2Z2VyLmtlcm5lbC5vcmciIDxsaW51eC11c2JAdmdlci5rZXJuZWwu b3JnPiwNCj4gPT0+ID09ICAgICJuZXRkZXZAdmdlci5rZXJuZWwub3JnIiA8bmV0ZGV2QHZnZXIu a2VybmVsLm9yZz4sDQo+ID09PiA9PSAgICBFbGkgQnJpdHN0ZWluIDxFbGkuQnJpdHN0ZWluQGF1 ZGlvY29kZXMuY29tPg0KPiA9PT4gPT1TdWJqZWN0OiBSZTogSXMgdGhpcyAzMi1iaXQgTkNNPw0K PiA9PT4gPT0NCj4gPT0+ID09SGkgYWxsLA0KPiA9PT4gPT0NCj4gPT0+ID09SSdtIGFibGUgdG8g Z2V0IHRoZSBmb2xsb3dpbmcgcHJpbnRzIHdpdGggdGhlIG9yaWdpbmFsIGh1YXdlaV9jZGNfbmNt IGRyaXZlcg0KPiA9PT4gPT1mcm9tIFVidW50dSAxMi4wNC4zLiBJdCBrZWVwcyBvbiBwcmludGlu Zy4gSSdtIGFsc28gYWJsZSB0byBnZXQgYW4gSVAsIGJ1dA0KPiA9PT4gPT1ubyBJbnRlcm5ldCBh Y2Nlc3MuDQo+ID09PiA9PQ0KPiA9PT4gPT1eSENTUToiV0NETUEiLDY0LDU5LDU1DQo+ID09PiA9 PQ0KPiA9PT4gPT1eRFNGTE9XUlBUOjAwMDAwMDBFLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAw MDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDANCj4gPT0+ID09MDAwMDAsMDAwMDAwMDANCj4g PT0+ID09DQo+ID09PiA9PU9LDQo+ID09PiA9PQ0KPiA9PT4gPT1eTkRJU1NUQVQ6MSwsLCJJUFY0 Ig0KPiA9PT4gPT0NCj4gPT0+ID09XlNUSU46IDEsIDAsIDANCj4gPT0+ID09DQo+ID09PiA9PV5E U0ZMT1dSUFQ6MDAwMDAwMTAsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDAw MDAwMDAwMDAwMDAwLDAwMA0KPiA9PT4gPT0wMDAwMCwwMDAwMDAwMA0KPiA9PT4gPT0NCj4gPT0+ ID09XkRTRkxPV1JQVDowMDAwMDAxMiwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAw LDAwMDAwMDAwMDAwMDAwMDAsMDAwDQo+ID09PiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09PiA9PQ0K PiA9PT4gPT1eRFNGTE9XUlBUOjAwMDAwMDE0LDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwMDAw MDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDANCj4gPT0+ID09MDAwMDAsMDAwMDAwMDANCj4gPT0+ ID09DQo+ID09PiA9PV5TVElOOiAxLCAwLCAwDQo+ID09PiA9PQ0KPiA9PT4gPT0NCj4gPT0+ID09 Li4uDQo+ID09PiA9PV5TVElOOiAxLCAwLCAwDQo+ID09PiA9PQ0KPiA9PT4gPT1eRFNGTE9XUlBU OjAwMDAwMDhDLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwMDAwMDBCMzYsMDAwMDAwMDAwMDAw MDAwMCwwMDANCj4gPT0+ID09MDAwMDAsMDAwMDAwMDANCj4gPT0+ID09DQo+ID09PiA9PV5EU0ZM T1dSUFQ6MDAwMDAwOEUsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMEIzNiwwMDAwMDAw MDAwMDAwMDAwLDAwMA0KPiA9PT4gPT0wMDAwMCwwMDAwMDAwMA0KPiA9PT4gPT0NCj4gPT0+ID09 UmVnYXJkaW5nIHRoZSBhbGlnbm1lbnQsIEkgdGhpbmsgd2UgaGF2ZSBzb21lIGRpZmZlcmVuY2Ug YmV0d2VlbiBXaW5kb3dzIGFuZA0KPiA9PT4gPT1MaW51eC4gVGhlIHNwZWMgc2F5cyBpdCBzaG91 bGQgc2F0aXNmeSB0aGUgZm9sbG93aW5nIGNvbnN0cmFpbnQuDQo+ID09PiA9PQ0KPiA9PT4gPT1P ZmZzZXQgJSB3TmRwT3V0RGl2aXNvciA9PSB3TmRwT3V0UGF5bG9hZFJlbWFpbmRlciAoZm9yIE9V VCBkYXRhZ3JhbXMpDQo+ID09PiA9PQ0KPiA9PT4gPT1JdCBzZWVtcyB0aGUgSHVhd2VpIGRldmlj ZSB0YWtlIHRoZSBORFAgb2Zmc2V0IChFdGhlcm5ldCBIZWFkZXIgT2Zmc2V0KSBhcw0KPiA9PT4g PT10aGUgcGFyYW1ldGVyICdPZmZzZXQnIGluIHRoZSBhYm92ZSBjb25zdHJhaW50LiBBbmQgaW4g dGhlIExpbnV4IGNhcHR1cmUsIGl0DQo+ID09PiA9PWRvZXMgbm90IGNvbXBseSB3aXRoIGl0Lg0K PiA9PT4gPT0NCj4gPT0+ID09DQo+ID09PiA9PWR3TnRiSW5NYXhTaXplPTEzMTA3MiBkd050Yk91 dE1heFNpemU9MTYzODQgd05kcE91dFBheWxvYWRSZW1haW5kZXI9Mg0KPiA9PT4gPT13TmRwT3V0 RGl2aXNvcj00IHdOZHBPdXRBbGlnbm1lbnQ9NCB3TnRiT3V0TWF4RGF0YWdyYW1zPTAgZmxhZ3M9 MHgxZg0KPiA9PT4gPT0NCj4gPT0+ID09V2luZG93czoNCj4gPT0+ID09DQo+ID09PiA9PTAwMDAg ICA2ZSA2MyA2ZCA2OCAxMCAwMCBiNiAwMCA3YyAwMCAwMCAwMCA1YyAwMCAwMCAwMCAgbmNtaC4u Li58Li4uXC4uLg0KPiA9PT4gPT0wMDEwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMWUg MTAgMWYgMDAgMDAgMDggMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09MDAyMCAgIDQ1IDAw IDAwIDNjIDAwIDliIDAwIDAwIDgwIDAxIGEwIGZlIDBhIDcxIGEzIDBlICBFLi48Li4uLi4uLi4u cS4uDQo+ID09PiA9PTAwMzAgICBjYSA2YyAyMSAzYyAwOCAwMCA0YiA0YiAwMCAwMSAwMiAxMCA2 MSA2MiA2MyA2NCAgLmwhPC4uS0suLi4uYWJjZA0KPiA9PT4gPT0wMDQwICAgNjUgNjYgNjcgNjgg NjkgNmEgNmIgNmMgNmQgNmUgNmYgNzAgNzEgNzIgNzMgNzQgIGVmZ2hpamtsbW5vcHFyc3QNCj4g PT0+ID09MDA1MCAgIDc1IDc2IDc3IDYxIDYyIDYzIDY0IDY1IDY2IDY3IDY4IDY5IDZlIDYzIDZk IDMwICB1dndhYmNkZWZnaGluY20wDQo+ID09PiA9PTAwNjAgICAyMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAxMiAwMCAwMCAwMCAgIC4uLi4uLi4uLi4uLi4uLg0KPiA9PT4gPT0w MDcwICAgNGEgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgICAgICAgICAgICAgIEou Li4uLi4uLi4uLg0KPiA9PT4gPT0NCj4gPT0+ID09TGludXg6ICh0aG91Z2h0IGl0J3MgYSAxNmJp dCBmb3JtYXQgY2FwdHVyZSwgYnV0IGl0J3MgdGhlIHNhbWUgYXMgMzJiaXQsDQo+ID09PiA9PXJl Z2FyZGluZyB0aGUgYWxpZ25tZW50KQ0KPiA9PT4gPT0NCj4gPT0+ID09MDAwMCAgIDRlIDQzIDRk IDQ4IDBjIDAwIDQwIDAwIGUyIDAwIDBjIDAwIDRlIDQzIDRkIDMwICBOQ01ILi5ALi4uLi5OQ00w DQo+ID09PiA9PTAwMTAgICAxMCAwMCAwMCAwMCBiOCAwMCAyYSAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAgLi4uLi4uKi4uLi4uLi4uLg0KPiA9PT4gPT0wMDIwICAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ ID09MDAzMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICAuLi4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAwNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KPiA9PT4gPT0wMDUw ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4u Li4uLi4uLi4uLi4NCj4gPT0+ID09MDA2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAwNzAgICAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4u Li4uLg0KPiA9PT4gPT0wMDgwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09MDA5MCAgIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQo+ ID09PiA9PTAwYTAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KPiA9PT4gPT0wMGIwICAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgZmYgZmYgZmYgZmYgZmYgZmYgMDAgMWUgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09 MDBjMCAgIDEwIDFmIDAwIDAwIDA4IDA2IDAwIDAxIDA4IDAwIDA2IDA0IDAwIDAxIDAwIDFlICAu Li4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAwZDAgICAxMCAxZiAwMCAwMCAwYSA3MSBjYyBhNiAw MCAwMCAwMCAwMCAwMCAwMCA3MCA1MCAgLi4uLi5xLi4uLi4uLi5wUA0KPiA9PT4gPT0wMGUwICAg ZjggNDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5JDQo+ID09 PiA9PQ0KPiA9PT4gPT0NCj4gPT0+ID09UmVnYXJkcywNCj4gPT0+ID09S2V2aW4NCj4gPT0+ID09 T24gMTEvMjcvMjAxNCAwODozNiBQTSwgQWxleCBTdHJpemhldnNreSB3cm90ZToNCj4gPT0+ID09 ICAgICAgQWRkaW5nIG15IGNvbGxlYWd1ZXMgLSBFbGksIEtldmluICYgTWlkZ2UuDQo+ID09PiA9 PQ0KPiA9PT4gPT1BbnkgaWRlYXMgYXJlIHdlbGNvbWUgOykNCj4gPT0+ID09DQo+ID09PiA9PQ0K PiA9PT4gPT1PbiBUaHUsIE5vdiAyNywgMjAxNCBhdCAxMjowMyBQTSwgQmrDuHJuIE1vcmsgPGJq b3JuQG1vcmsubm8+IHdyb3RlOg0KPiA9PT4gPT0gICAgICBFbnJpY28gTWlvc28gPG1ya2lrby5y c0BnbWFpbC5jb20+IHdyaXRlczoNCj4gPT0+ID09DQo+ID09PiA9PSAgICAgID4gT2sgLSB3ZSBj YW4gYXJyaXZlIHRvIHNvbWUgb2NuY2x1c2lvbnMgcmVnYXJkaW5nIHRoZQ0KPiA9PT4gPT0gICAg ICBFMzI3Mi4NCj4gPT0+ID09ICAgICAgPiBGaXJzdCBvZiBhbGwgLSB0aGUgbW9kZW0gc2VlbXMg YnVnZ3kgZW5vdWdoIHRvIG5vdCBiZQ0KPiA9PT4gPT0gICAgICBhYmxlIHRvIGhhbmRsZSByZXF1 ZXN0cw0KPiA9PT4gPT0gICAgICA+IGZvciBkaWZmZXJlbnQgZm9ybWF0cy4gWW91IG5lZWQgdG8g dW5wbHVnIGFuZCByZS1wbHVnDQo+ID09PiA9PSAgICAgIGl0LCBidXQgdGhpcyBpcyBvbmx5YW4N Cj4gPT0+ID09ICAgICAgPiBpbXByZXNzaW9uIGFuZCBpcyByZWFzb25hYmxlLg0KPiA9PT4gPT0g ICAgICA+DQo+ID09PiA9PSAgICAgID4gVGhlbiAtIHRoZSBtb2RlbSB3aWxsIGFjY2VwdCB0byBu ZGlzZHVwIHRoZSBjb25uZWN0aW9uDQo+ID09PiA9PSAgICAgIHdpdGgNCj4gPT0+ID09ICAgICAg PiBhdF5uZGlzZHVwPTEsMSwiaW50ZXJuZXQiDQo+ID09PiA9PSAgICAgID4gYnV0IC0gaWYgd2Ug dXNlIGh1YXdlaV9jZGNfbmNtICsgY2RjX25jbSB3ZSBoYXZlIG5vIGZsb3cNCj4gPT0+ID09ICAg ICAgaGFuZGxpbmcgbWVzc2FnZXMgYW5kDQo+ID09PiA9PSAgICAgID4gdGhlIG1vZGVtIHN0b3Bz IGhlcmUuDQo+ID09PiA9PSAgICAgID4gSWYgd2UgdXNlIHRoZSBjZGNfbmNtIDMyLWJpdCBkcml2 ZXIgKG1vZGlmaWVkKSB3ZSBnZXQNCj4gPT0+ID09ICAgICAgbG90ZnMgb2YNCj4gPT0+ID09ICAg ICAgPiBeZHNmbG9ycHQNCj4gPT0+ID09ICAgICAgPiB0aGF0J3MgaG93IGl0IHNob3VsZCBiZS4N Cj4gPT0+ID09ICAgICAgPiBTbyBJIHRoaW5rIHdlIGNhbiBzYXkgdGhhdCBzb21ldGhpbmcgaXMg Y2hhbmdpbmcuDQo+ID09PiA9PSAgICAgID4gVGhlbiB0aGVyZSdzIHRoZSBhbGlnbm1lbnQgcHJv YmxlbSB5b3UgbWVudGlvbmVkIGluIHlvdXINCj4gPT0+ID09ICAgICAgcHJldmlvdXMgcmVwbHku IEFuZA0KPiA9PT4gPT0gICAgICA+IHRoaXMgaXMgaGFyZCB0byBzb2x2ZS4NCj4gPT0+ID09ICAg ICAgPiBjb3VsZCB5b3UgdHJ5IHRvIGhlbHAgbWUgdW5kZXJzdGFuZCB3aGVyZSB0aGUgcHJvYmxl bQ0KPiA9PT4gPT0gICAgICBpcz8NCj4gPT0+ID09ICAgICAgPiBJIGZlZWwgbGlrZSB3ZSBhcmUg dmVyeSBjbG9zZSB0byB0aGUgc29sdXRpb24gYnV0DQo+ID09PiA9PSAgICAgIHNvbWV0aGluZyBp c24ndCB3b3JraW5nLg0KPiA9PT4gPT0gICAgICA+IE9yIG1pZ2h0IGJlIGp1c3QgdHJ5IHRvIGNo YW5nZSB0aGUgMTYgYml0IGRyaXZlcj8NCj4gPT0+ID09DQo+ID09PiA9PUlmIHlvdSB1c2UgYSBy ZWNlbnQgdmVyc2lvbiBvZiB0aGUgZHJpdmVyIGFzIGEgYmFzaXMsIHRoZW4geW91DQo+ID09PiA9 PWdldCB0aGUNCj4gPT0+ID09Q0RDIE5DTSBOVEIgcGFyYW1ldGVycyBpbiBzeXNmcyAoaWYgbm90 LCB0aGVuIHlvdSBuZWVkIHRvIGVuYWJsZQ0KPiA9PT4gPT1kZWJ1Z2dpbmcgYW5kIGxvb2sgaW4g dGhlIGxvZyBmb3IgdGhlc2UgdmFsdWVzKS4gIEZvciBleGFtcGxlOg0KPiA9PT4gPT0NCj4gPT0+ ID09Ympvcm5AbmVtaTp+JCBncmVwIC4gL3N5cy9jbGFzcy9uZXQvd3dhbjAvY2RjX25jbS8qDQo+ ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vYm1OdGJGb3JtYXRzU3VwcG9ydGVk OjB4MDAwMQ0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL2R3TnRiSW5NYXhT aXplOjE1MzYwDQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vZHdOdGJPdXRN YXhTaXplOjE1MzYwDQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vbWluX3R4 X3BrdDoxMzgyNA0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL3J4X21heDox NTM2MA0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL3R4X21heDoxNTM2MA0K PiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL3R4X3RpbWVyX3VzZWNzOjQwMA0K PiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL3dOZHBJbkFsaWdubWVudDo0DQo+ ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd05kcEluRGl2aXNvcjoxDQo+ID09 PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd05kcEluUGF5bG9hZFJlbWFpbmRlcjow DQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd05kcE91dEFsaWdubWVudDo0 DQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd05kcE91dERpdmlzb3I6MzIN Cj4gPT0+ID09L3N5cy9jbGFzcy9uZXQvd3dhbjAvY2RjX25jbS93TmRwT3V0UGF5bG9hZFJlbWFp bmRlcjowDQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd050Yk91dE1heERh dGFncmFtczozMg0KPiA9PT4gPT0NCj4gPT0+ID09DQo+ID09PiA9PVRoZSBwb3NzaWJsZSBwcm9i bGVtIEkgYW0gdGhpbmtpbmcgb2YgaXMgcHJvcGVyIGhhbmRsaW5nIG9mIHRoZQ0KPiA9PT4gPT13 TmRwKlBheWxvYWRSZW1haW5kZXIgdmFsdWVzLiBTZWUgc2VjdGlvbiAzLjMuNCAiTkNNIEV0aGVy bmV0DQo+ID09PiA9PUZyYW1lDQo+ID09PiA9PUFsaWdubWVudCIgaW4gdGhlIHNwZWMuICBXaGlj aCBpcyBjb25mdXNpbmcgYXMgaGVsbCwgYnV0IGlmIEkNCj4gPT0+ID09dW5kZXJzdGFuZA0KPiA9 PT4gPT1pdCBjb3JyZWN0bHkgdGhlbiB3ZSBhcmUgc3VwcG9zZWQgdG8gYWxpZ24gdGhlIHN0YXJ0 IG9mIHRoZSBJUA0KPiA9PT4gPT1wYWNrZXRzDQo+ID09PiA9PSh0aGUgInBheWxvYWQiLCBfbm90 XyB0aGUgZXRoZXJuZXQgZnJhbWUpIHRvIGEgd2hvbGUNCj4gPT0+ID09d05kcCpEaXZpc29yIG51 bWJlcg0KPiA9PT4gPT1hcyBsb25nIGFzIHRoZSB3TmRwKlBheWxvYWRSZW1haW5kZXIgaXMgMC4N Cj4gPT0+ID09DQo+ID09PiA9PQ0KPiA9PT4gPT1CasO4cm4NCj4gPT0+ID09DQo+ID09PiA9PQ0K PiA9PT4gPT0NCj4gPT0+ID09VGhpcyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdp dGggaXQgYXJlIGNvbmZpZGVudGlhbCBtYXRlcmlhbC4gVGhleQ0KPiA9PT4gPT1hcmUgaW50ZW5k ZWQgc29sZWx5IGZvciB0aGUgdXNlIG9mIHRoZSBkZXNpZ25hdGVkIGluZGl2aWR1YWwgb3IgZW50 aXR5IHRvDQo+ID09PiA9PXdob20gdGhleSBhcmUgYWRkcmVzc2VkLiBJZiB0aGUgcmVhZGVyIG9m IHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkDQo+ID09PiA9PXJlY2lwaWVudCwgeW91 IGFyZSBoZXJlYnkgbm90aWZpZWQgdGhhdCBhbnkgZGlzc2VtaW5hdGlvbiwgdXNlLCBkaXN0cmli dXRpb24NCj4gPT0+ID09b3IgY29weWluZyBvZiB0aGlzIGNvbW11bmljYXRpb24gaXMgc3RyaWN0 bHkgcHJvaGliaXRlZCBhbmQgbWF5IGJlIHVubGF3ZnVsLg0KPiA9PT4gPT0NCj4gPT0+ID09SWYg eW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciBwbGVhc2UgaW1tZWRpYXRlbHkg bm90aWZ5IHRoZQ0KPiA9PT4gPT1zZW5kZXIgYW5kIGRlbGV0ZSBvciBkZXN0cm95IGFueSBjb3B5 IG9mIHRoaXMgbWVzc2FnZQ0KPiA9PT4gPT0NCj4gPT1UaGlzIGVtYWlsIGFuZCBhbnkgZmlsZXMg dHJhbnNtaXR0ZWQgd2l0aCBpdCBhcmUgY29uZmlkZW50aWFsIG1hdGVyaWFsLiBUaGV5IGFyZSBp bnRlbmRlZCBzb2xlbHkgZm9yIHRoZSB1c2Ugb2YgdGhlIGRlc2lnbmF0ZWQgaW5kaXZpZHVhbCBv ciBlbnRpdHkgdG8gd2hvbSB0aGV5IGFyZSBhZGRyZXNzZWQuIElmIHRoZSByZWFkZXIgb2YgdGhp cyBtZXNzYWdlIGlzIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3UgYXJlIGhlcmVieSBu b3RpZmllZCB0aGF0IGFueSBkaXNzZW1pbmF0aW9uLCB1c2UsIGRpc3RyaWJ1dGlvbiBvciBjb3B5 aW5nIG9mIHRoaXMgY29tbXVuaWNhdGlvbiBpcyBzdHJpY3RseSBwcm9oaWJpdGVkIGFuZCBtYXkg YmUgdW5sYXdmdWwuDQo+ID09DQo+ID09SWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBp biBlcnJvciBwbGVhc2UgaW1tZWRpYXRlbHkgbm90aWZ5IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBv ciBkZXN0cm95IGFueSBjb3B5IG9mIHRoaXMgbWVzc2FnZQ0KPiA9PQ0KVGhpcyBlbWFpbCBhbmQg YW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVudGlhbCBtYXRlcmlhbC4g VGhleSBhcmUgaW50ZW5kZWQgc29sZWx5IGZvciB0aGUgdXNlIG9mIHRoZSBkZXNpZ25hdGVkIGlu ZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gdGhleSBhcmUgYWRkcmVzc2VkLiBJZiB0aGUgcmVh ZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFy ZSBoZXJlYnkgbm90aWZpZWQgdGhhdCBhbnkgZGlzc2VtaW5hdGlvbiwgdXNlLCBkaXN0cmlidXRp b24gb3IgY29weWluZyBvZiB0aGlzIGNvbW11bmljYXRpb24gaXMgc3RyaWN0bHkgcHJvaGliaXRl ZCBhbmQgbWF5IGJlIHVubGF3ZnVsLg0KDQpJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGVtYWls IGluIGVycm9yIHBsZWFzZSBpbW1lZGlhdGVseSBub3RpZnkgdGhlIHNlbmRlciBhbmQgZGVsZXRl IG9yIGRlc3Ryb3kgYW55IGNvcHkgb2YgdGhpcyBtZXNzYWdlDQo=