Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4C16D200B26 for ; Mon, 27 Jun 2016 12:49:48 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4A63A160A5B; Mon, 27 Jun 2016 10:49:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4350B160A3C for ; Mon, 27 Jun 2016 12:49:47 +0200 (CEST) Received: (qmail 72788 invoked by uid 500); 27 Jun 2016 10:49:46 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 72778 invoked by uid 99); 27 Jun 2016 10:49:46 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Jun 2016 10:49:46 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id BA47B1A5E81 for ; Mon, 27 Jun 2016 10:49:45 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.447 X-Spam-Level: X-Spam-Status: No, score=-6.447 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id upLUhKhPnjkk for ; Mon, 27 Jun 2016 10:49:42 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 1736760D2C for ; Mon, 27 Jun 2016 10:49:40 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 27 Jun 2016 03:49:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,536,1459839600"; d="scan'208";a="995737241" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 27 Jun 2016 03:49:26 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 27 Jun 2016 03:49:26 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 27 Jun 2016 03:49:26 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.181]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.8]) with mapi id 14.03.0248.002; Mon, 27 Jun 2016 18:49:24 +0800 From: "Zheng, Kai" To: Apache Directory Developers List Subject: RE: Rethinking Mavibot... Thread-Topic: Rethinking Mavibot... Thread-Index: AQHRz5wDIsRbw2LSY0qKe+8hnXhklp/81AHg//+8zQCAAJCscA== Date: Mon, 27 Jun 2016 10:49:23 +0000 Message-ID: <8D5F7E3237B3ED47B84CF187BB17B66621D03FE3@SHSMSX103.ccr.corp.intel.com> References: <6ddfaab1-5f6d-c71e-a475-76ce915f0186@gmail.com> <8D5F7E3237B3ED47B84CF187BB17B66621D03D3A@SHSMSX103.ccr.corp.intel.com> <86833be9-74be-6d21-2175-ec221e319e9b@gmail.com> In-Reply-To: <86833be9-74be-6d21-2175-ec221e319e9b@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMWRhMzMxN2UtNjQyYi00ZTY2LTg3YWQtNzJlMmUwYTkwZTI3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik5DOENuUDM5Z3BMRWR6VEttNVFVbkJ0UUx0c3ZBb0p3Znp1WVwvS1pUNVNNPSJ9 x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 archived-at: Mon, 27 Jun 2016 10:49:48 -0000 VGhhbmtzIHNvIG11Y2ggZm9yIHRoZSBmdWxsIGV4cGxhbmF0aW9uLCBFbW1hbnVlbC4gU29ycnkg Zm9yIG15IGFza2luZyBhZ2Fpbi4gDQoNCj4+IE90aGVyd2lzZSwgd2UgY291bGQgdXNlIExNREIs IHdpdGggYSBKTkkgd3JhcHBlci4gVGhhdCBpcyBhbiBvcHRpb24uIEJ1dCBJIGhhdmUgbm8gaWRl YSB3aGF0IGl0IHdvdWxkIGNvc3QgdXMgaW4gdGVybSBvZiBwYWNrYWdpbmcuDQpUaGUgcGFja2Fn aW5nIGlzbid0IHJlYWxseSBzbyBtdWNoIGEgcHJvYmxlbS4gVGhlcmUgaXMgYSBuaWNlIHdheSBo YW5kbGluZyB0aGlzOiB0aGUgYmluYXJ5IHBhY2thZ2UgY291bGQgYmUgcHV0IGludG8gdGhlIGph ciBqdXN0IGFzIGEgcmVzb3VyY2UgYW5kIHdoaWxlIHN0YXJ0aW5nIHVwIGl0IGNhbiBiZSBkeW5h bWljYWxseSBleHRyYWN0ZWQsIHB1dHRlZCBpbnRvIGEgcnVudGltZSBmb2xkZXIgdG8gYmUgbG9h ZGVkLiBNYW55IEphdmEgcHJvamVjdHMgZG8gdGhpcyB3YXkuIA0KDQpJZiB3ZSBjb3VsZCBnbyB0 aGlzIHdheSwgSSB3b3VsZCBsb3ZlIHRvIGRvIHRoaXMgYW5kIHN1cHBvcnQgaW4gb3RoZXIgYXNw ZWN0cyBhcyB3ZWxsIGFzIHBvc3NpYmxlLCBiZWNhdXNlIGl0IHdvdWxkIHNvdW5kIHZlcnkgcHJv bWlzaW5nIHRvIGNvbWUgdXAgYSBoaWdoIHBlcmZvcm1hbmNlIGFuZCBoaWdoIHJlbGlhYmlsaXR5 IExEQVAgc2VydmVyIGZvciB0aGUgQXBhY2hlIHdvcmxkLg0KDQpSZWdhcmRzLA0KS2FpDQoNCi0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBFbW1hbnVlbCBMw6ljaGFybnkgW21haWx0 bzplbGVjaGFybnlAZ21haWwuY29tXSANClNlbnQ6IE1vbmRheSwgSnVuZSAyNywgMjAxNiA2OjAz IFBNDQpUbzogQXBhY2hlIERpcmVjdG9yeSBEZXZlbG9wZXJzIExpc3QgPGRldkBkaXJlY3Rvcnku YXBhY2hlLm9yZz4NClN1YmplY3Q6IFJlOiBSZXRoaW5raW5nIE1hdmlib3QuLi4NCg0KTGUgMjcv MDYvMTYgw6AgMDg6MDcsIFpoZW5nLCBLYWkgYSDDqWNyaXQgOg0KPiBUaGFua3MgZm9yIHRoZSB1 cGRhdGUuDQo+DQo+IEl0IGxvb2tzIGxpa2UgdG8gbWUgdGhlcmUgaXMgbXVjaCB3b3JrIHRvIGRv LiBJcyB0aGVyZSBhbnkgYWx0ZXJuYXRpdmUgb3B0aW9uPyBJJ20gc3RpbGwgdGhpbmtpbmcgdGhh dCBpZiB3ZSBjb3VsZCBsZXZlcmFnZSBhbnkgZXhpc3RpbmcgYmFjayBlbmQgaW1wbGVtZW50YXRp b24sIHNvIHdlIGNvdWxkIGZvY3VzIG9uIHRoZSBMREFQIHNwZWNpZmljIGxvZ2ljIGZvciB0aGUg bWFzdGVyIHNlcnZlciBjb21wb25lbnQuLi50aGlzIGlzIHdvcnRoIGJlaW5nIGNvbnNpZGVyZWQg YmVjYXVzZSBpbiB0b2RheSdzIGluZHVzdHJ5IHRoZXJlIGFyZSBzbyBtYW55IEItVFJFRSdzIGlt cGxlbWVudGF0aW9ucyBhbHJlYWR5Lg0KSSB0aGluayB3ZSBhbHJlYWR5IGRpc2N1c3NlZCB0aGF0 IG1hdHRlciBtb250aHMgYWdvLiBJIGFsc28gdGhpbmsgdGhhdCBtYW55IGRvbid0IHVuZGVyc3Rh bmQgd2h5IHdlICpuZWVkKiBzb210aGluZyBsaWtlIE1hdmlib3QuIEJ1dCBsZXQgbWUgdHJ5IHRv IGV4cGxhaW4gYWdhaW4uLi4NCg0KDQpCYWNrIGluIDIwMDYsIHdlIGtuZXcgdGhhdCB3ZSB3ZXJl IGdvaW5nIHRvIGhhdmUgdHJvdWJsZXMgd2l0aCBvdXIgY2hvaWNlIChKREJNKS4gQmFjayB0aGVu LCB3ZSBoYWQgbGl0dGxlIGNob2ljZSB0aG91Z2ggOg0KLSBKREJNIHdhcyB0aGUgb25seSBvcGVu IHNvdXJjZSwgbGljZW5zZSBjb21wYXRpYmxlIEItdHJlZSBpbXBsZW1lbnRhdGlvbiBpbiBKYXZh IGF2YWlsYWJsZS4NCi0gV2UgaGFkIG90aGVyIG1vcmUgaW1wb3J0YW50IGlzc3VlcyB0byBjb3Bl IHdpdGguDQoNCkhvd2V2ZXIsIGR1cmluZyB0aGUgQXVzdGluIEFwYWNoZSBDb25mZXJlbmNlLCBk dXJpbmcgd2hpY2ggQ2l1Y2hEQiB3YXMgYW5ub3VuY2VkLCB3ZSBoYWQgYSBsb25nIGRpc2N1c3Np b24gd2l0aCBBbGV4LCBQaWVycmUtQXJuYXVkIGFuZCBFcnNpbiBhYm91dCB0aGUgZmFjdCB0aGF0 IHdlIHdvdWxkIG5lZWQgYSBNVkNDIGJhc2VkIGJhY2tlbmQuIFNhZGx5LCBDb3VjaERCIHdhcyB3 cml0dGVuIGluIEVybGFuZywgc28gd2UgaGFkIHRvIHdhaXQuDQoNCldlIHdhaXRlZCB1bnRpbCAy MDExLCB3aGVyZSBpdCBhcHBlYXJzIHRoYXQgY29uY3VycmVudCBzZWFyY2hlcyBhbmQgdXBkYXRl cyB3b3VsZCBldmVudHVhbGx5IGdlbmVyYXRlIGVycm9ycyAodHlwaWNhbGx5LCBzb21lIHNlYXJj aGVzIHdvdWxkIGZhaWwpLiBXZSBhZGRlZCBhIGhlbGwgbG90IG9mIGxvY2tzLCB1cCB0byB0aGUg cG9pbnQgaXQgd2FzIGltcG9zc2libGUgdG8gZG8gYSBzZWFyY2ggd2hpbGUgZG9pbmcgYW4gdXBk YXRlLCB3aGljaCB3YXMgYSB2ZXJ5IGV4cGVuc2l2ZSBwZW5hbHR5IHRvIHBheS4gQXQgdGVoIHNh bWUgdGltZSwgd2Ugc3RhcnRlZCB0byBsb29rIGF0IGFsdGVybmF0aXZlcywgdGhhdCBkb2VzIG5v dCBpbmNsdWRlIGEgcmV3aXRlLiBTb21lIGd1eSBzdGFydGVkIHRvIGltcGxlbWVudCBNVkNDIG9u IHRvcCBvZiBKREJNLCBidXQgdGhlIHJlc3VsdCB3YXMgbm90IHBsZWFzYW50IDogaWYgZm9yIGFu eSByZWFzb24geW91IGZvcmdvdCB0byBjbG9zZSBhIGN1cnNvciwgdGhlIHNlcnZlciB3b3VsZCBn byB3ZXN0IGluIGEgbWF0dGVyIG9mIG1pbnV0ZS4gV2UgY2FuJ3QgZm9yY2VzIHRoZSBjbGllbnQg dG8gY2FycmVmdWxseSBjbG9zZSB0aGVpciBjdXJzb3IsIGl0IHdhcyBzaW1wbHkgbm90IGFuIG9w dGlvbiwgc28gd2UgZGl0Y2hlZCB0aGUgd29yay4NCg0KV2hhdCBhbHRlcm5hdGl2ZSBkaWQgd2Ug aGF2ZSA/IE5vdCBzbyBtdWNoIDogQmVya2VsZXkgREIgaGFzIGJlZW4gYm91Z2h0IGJ5IE9yYWNs ZSwgYW5kIHRoZSBKRSB3YXNuJ3QgYXZhaWxhYmxlIHdpdGggYSBjb21wYXRpYmxlIGxpY2Vuc2Uu IEFuZCBhcyBvZiB0b2RheSwgdGhlcmUgYXJlbid0IGFueSBNVkNDIEItVHJlZSBpbXBsZW1lbnRh dGlvbiB0aGF0IEkga25vdyBvZiwgd2l0aCBhIGNvbXBhdGlibGUgbGljZW5zZS4gU28gd2UgYXJl IGluIGEga2luZCBvZiBkZWFkIGxvY2suDQoNCkZ1bm55IGVub3VnaCwgYXQgdGhlIHZlcnkgc2Ft ZSB0aW1lLCBPcGVuTERBUCBoYXMgc3RhcnRlZCB0byB3b3JrIG9uIHRoZSBleGFjdCBzYW1lIHBp ZWNlIG9mIGNvZGUsIGZvciB0aGUgZXhhY3Qgc2FtZSByZWFzb24gKEJEQiBoYXMgY2hhbmdlZCBp dHMgbGljZW5zZSwgYW5kIHNvbWUgZGF0YSBjb3JydXB0aW9uIGNvdWxkIG9jY3VyIHVuZGVyIGNl cnRhaW4gY2lyY29uc3RhbmNlcywgcmVxdWllcmluZyBhIHRvb2wgdG8gcmVwYWlyIHRoZSBkYXRh YmFzZSkuIFNvIHdlIG5ldyB3ZSB3ZXJlbid0IGluIGJhZCBjb21wYW55ICENCg0KQm90dG9tIGxp bmUsIEkgc3RhcnRlZCB0byB3b3JrIG9uIGEgcmVwbGFjZW1lbnQgZm9yIEpEQk0sIHdoaWNoIGdl dCBwdXNoZWQgaW4gdGhlIHJlcG9zaXRvcnkgb24gamFudWFyeSAyMDEyICggSSBzdGFydGVkIHRv IHdvcmsgb24gdGhhdCBpbiB0aGUgbWlkIDIwMTEpLiBLaXJhbiBwb3J0ZWQgQXBhY2hlRFMgdG8g dXNlIE1hdmlib3QgYXMgYSBiYWNrZW5kIGFyb3VuZCBTcnBpbmcgMjAxMywgYW5kIHdlIG5vdyBo YXZlIGFuIEFwYWNoZURTIHNlcnZlciB0aGF0ICp3b3Jrcyogd2l0aCBNYXZpYm90LiBOb3Qgb25s eSB0aGF0LCBidXQgaXQncyBhbHNvIGZhc3RlciB0aGFuIEpEQk0uDQoNCklzIGl0IGVub3VnaCA/ IE5vLiBGb3Igb25lIHNpbmdsZSByZWFzb24gOiBNYXZpYm90IHdpdGggbm8gdHJhbnNhY3Rpb24g c3VwcG9ydCB3b24ndCBiZSBhbnkgYmV0dGVyIHRoYW4gSkRCTSwgZm9yIHRoZSBleGFjdCBzYW1l IHJlYXNvbnMgOiBpZiB3ZSBoYXZlIGEgY3Jhc2gsIHdlIHdpbGwgcG90ZW50aWFsbHkgZW5kcyB3 aXRoIGEgY29ycnVwdGVkIGRhdGFiYXNlIChsZXNzIG9mdGVuIHRoYW4gSkRCTSBidXQgc3RpbGwp LiBJdCdzIHdheSBiZXR0ZXIgdGhvdWdoIGJlY2F1c2Ugd2UgY2FuJ3QgaGF2ZSBhIGZhaWx1cmUg ZHVyaW5nIGEgc2VhcmNoIHdoaWxlIHVwZGF0ZXMgYXJlIGRvbmUsIGFuZCBjb3VycnVwdGlvbiBj b3VsZCBiZSBmaXhlZCBlYXNpbHkuDQoNCk1hdmlib3QgYnJpbmdzIHNvbWUgb3RoZXIgZXh0cmEg Ym9udXNlcyA6IHdlIG5vdyBjYW4gaW5qZWN0IGRhdGEgaW4gYnVsayBtb2RlLCB3aGljaCBpcyBv cmRlcnMgb2YgbWFnbml0dWRlIGZhc3RlciB0aGFuIGFkZGluZyBkYXRhIHdoZW4gdGhlIHNlcnZl ciBpcyB1cCBhbmQgcnVubmluZy4NCg0KDQpPdGhlcndpc2UsIHdlIGNvdWxkIHVzZSBMTURCLCB3 aXRoIGEgSk5JIHdyYXBwZXIuIFRoYXQgaXMgYW4gb3B0aW9uLiBCdXQgSSBoYXZlIG5vIGlkZWEg d2hhdCBpdCB3b3VsZCBjb3N0IHVzIGluIHRlcm0gb2YgcGFja2FnaW5nLiBSaWdodCBub3csIEFw YWNoZURTIGNvbWVzIGFzIGEgYnVuZGxlZCBwYWNrYWdlLCBvciBhcyBhbiBpbnN0YWxsZXIgZm9y IExpbnV4LCBNYWMgT1NYIGFuZCBXaW5kb3dzLiBIYXZpbmcgYSBkZXBlbmRlbmN5IG9uIGEgYmlu YXJ5IGNvbXBvbmVudCBtaWdodCBiZSBhIHJlYWwgdHJvdWJsZSB3aGVuIGl0IGNvbWVzIHRvIHBh Y2thZ2UgaXQgcHJvcGVybHkuIEFUTSwgSSdtIG5vdCB3aWxsaW5nIHRvIHNwZW5kIHNvbWUgdGlt ZSBvbiB0aGlzIGFzcGVjdC4NCg0KTGFzdCwgbm90IGxlYXN0LCBNYXZpYm90IGlzICpOT1QqIGEg Qi10cmVlIGltcGxlbWVudGF0aW9uLiBJdCdzIGEgTVZDQyAoTXVsdGktVmVyc2lvbiBDb25jdXJy ZW5jeSBDb250cm9sIEItdHJlZSBpbXBsZW1lbnRhdGlvbg0KKGh0dHBzOi8vZW4ud2lraXBlZGlh Lm9yZy93aWtpL011bHRpdmVyc2lvbl9jb25jdXJyZW5jeV9jb250cm9sKSB3aGljaCBpcyAqVkVS WSogZGlmZmVyZW50LiBUaGUgY3JpdGljYWwgYXNwZWN0IGlzIHRoZSBNVkNDIHBhcnQsIHRoaXMg aXMgd2hhdCBndWFyYW50ZWVzIGNvbnNpc3RhbmN5LCBhbmQgbG9jayBmcmVlIGFjY2VzcyB0byB0 aGUgdW5kZXJseWluZyBkYXRhYmFzZS4NCg0KV2hhdCB3ZSBhcmUgbGFja2luZyBhdG0sIGlzIHRo ZSBjcm9zcyBCLXRyZWVzIHRyYW5zYWN0aW9uIHN1cHBvcnQuIFRoaXMgaXMgd2hhdCB3aWxsIGJy aW5nIHR3byBjcml0aWNhbCBpbXByb3ZlbWVudHMgdG8gdGhlIEFwYWNoZURTIHNlcnZlciA6DQoN CjEpIE5vIG5lZWQgdG8gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHJlc3RvcmUgYSBkYXRhYmFz ZSBpZiBpdCBjcmFzaGVzIGluIHRoZSBtaWRkbGUgb2YgYW4gdXBkYXRlIChhIExEQVAgdXBkYXRl IHJlcXVpcmVzIG11bHRpcGxlIHVwZGF0ZXMgdG8gbXVsdGlwbGUgaW5kZXhlcyAtIHR5cGljYWxs eSAxMCBtaW5pbXVtLCB3aXRoIHNvbWUgaW5kZXhlcyBiZWluZyB1cGRhdGVkIG1vcmUgdGhhbiBv bmNlLCBsaWtlIHRoZSBSRE4gaW5kZXggLSkuDQoyKSBTcGVlZCAhIER1cmluZyBhIHRyYW5zYWN0 aW9uLCB3ZSB3b3JrIGluIG1lbW9yeSwgdW50aWwgd2UgYXJlIGRvbmUgKHdpdGggYSBjb21taXQg b3IgYW4gYWJvcnQpLiBUaGF0IHNhdmVzIHVzIG11bHRpcGxlIHVwZGF0ZXMgb24gZGlzay4NClR5 cGljYWxseSwgd2Ugd291bGQgc2F2ZSA1MCUgb2YgdGhlIHdyaXRlcyBmb3IgYSBzaW5nbGUgQWRk IG9wZXJhdGlvbi4NClRoYXQgbWVhbnMgYW4gQWRkIHdvdWxkIGJlIHR3aWNlIGZhc3Rlci4NCg0K DQpJIGhvcGUgdGhpcyBjbGFyaWZ5IHRoZSByZWFzb24gd2h5IHdlIHN0YXJ0ZWQgdG8gZGV2ZWxv cCBNYXZpYm90LCBldmVuIHRob3VnaCBpdCdzIG5vdCBnb2luZyBhcyBmYXN0IGFzIGl0IHNob3Vs ZCAod2VsbCwgYXQgc29tZSBwb2ludCwgd2UgaGF2ZSBhIGxpZmUsIGFuZCBhIGRheSBqb2IsIHRo YXQgYm90aCBkb24ndCBsZXQgdXMgd29yayBhcyBtdWNoIGFzIHdlIHdvdWxkIGxpa2Ugb24gb3Vy IGZhdm9yaXRlIHByb2plY3QpLg0KDQpJIHdvdWxkIGVuZCBieSB0ZWxsaW5nIGV2ZXJ5b25lIHRo YXQgdGhpcyBpcyBhbiBPcGVuIFNvdXJjZSBwcm9qZWN0LCBhbmQgYW55b25lIGlzIGdyZWF0bHkg d2VsY29tZSBpZiB0aGV5IHdhbnQgdG8gZ2l2ZSBhbiBoYW5kLi4uDQoNClRoYW5rcyBmb3IgJ2xp c3RlbmluZycuDQo=