From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chongyun Wu Subject: Re: [PATCH]libmultipath/dmparser: add missing path with good status when sync state with dm kernel Date: Wed, 8 Jul 2020 01:47:18 +0000 Message-ID: <27245ecfc8be4229b52f736062585230@h3c.com> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Return-path: Content-Language: zh-CN List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Martin Wilck , Benjamin Marzinski , "dm-devel@redhat.com" Cc: Chengchiwen , Guozhonghua , Changlimin , Wangyong , Zhangguanghui List-Id: dm-devel.ids SGVsbG8gTWFydGluLApUaGFua3MgZm9yIHlvdXIgcmVwbHkuIApXYWl0aW5nIGZvciB5b3VyIHBh dGNoZXMgSSdkIGxpa2UgdG8gdGVzdCBpdC4gIEFuZCBhbHNvLCBJJ2QgbGlrZSB0byB0ZWxsIG1v cmUgZGV0YWlsIGFib3V0IHRoaXMgaXNzdWUuCgo+IElzIC9kZXYvc2RiayBpbmRlZWQgYSBoZWFs dGh5IHBhdGggaW4gdGhpcyBzaXR1YXRpb24sIG9yIG5vdD8KPiBQbGVhc2UgcnVuICJtdWx0aXBh dGhkIHNob3cgZGV2aWNlcyIsIHRvby4KWWVzLCAvZGV2L3NkYmsgY2FuIHJlYWQgYW5kIHdyaXRl LCB0aGUgY29uZGl0aW9uIGlzIHdlbGwsIGl0IGZ1bGx5IHJlY292ZXJlZC4gCkp1c3QgYmVjYXVz ZSBpdCBub3QgaW4gcGF0aHZlYyBhbmQgY2hlY2tfcGF0aCBoYXZlIG5vIGNoYW5jZSB0byBmb3Vu ZCBpdCB1cCBhbmQgcmVpbnN0YXRlIGl0IGluCmRtLCBhbmQgZG0gbWFwIGhhdmUgdGhpcyBwYXRo IGJ1dCBxdWV1ZV9pZl9ub19wYXRoIHN0aWxsIGhhdmUsIGRtIHN0YXRlIGlzIGRvd24sIGRtIGlv IGJsb2NrZWQuCgo+SSB3b25kZXIgaWYgeW91ciBsb2dzIHByb3ZpZGUgc29tZSBtb3JlIGV2aWRl bmNlIGhvdyB0aGlzIHNpdHVhdGlvbgo+Y2FtZSB0byBwYXNzLiBJIHN1c3BlY3QgdGhhdCBlaXRo ZXIgYSkgdWV2ZW50cyBnb3QgbG9zdCwgb3IgdGhhdCBiKQo+bXVsdGlwYXRoZCBmYWlsZWQgdG8g KHJlLSlhZGQgdGhlIHBhdGggd2hpbGUgaGFuZGxpbmcgYW4gdWV2ZW50LiBJdCdkCj5iZSBpbnRl cmVzdGluZyB0byBmaW5kIG91dCB3aGF0IGl0IGFjdHVhbGx5IHdhcy4KRmlyc3RseSBJIGFsc28g c3VzcGVjdCBsaWtlIHlvdSwgYnV0IGFjdHVhbGx5IHRoZXJlIGlzIG5vdCBhbnkgdWV2ZW50IHRv IHJlbW92ZSB0aGUgcGF0aCBpbiBteSBkZWJ1Z2dpbmcgdmVyc2lvbiB3aXRoIG1vcmUgbG9nLgpC dXQgSSBmb3VuZCB0aGF0IGFmdGVyIHJlY29uZmlnIHByb2Nlc3NlZCBpc3N1ZSBtaWdodCBhcHBl YXJzLCBkZXRlY3QgbW9yZSwgZm91bmQgdGhhdCB3aGVuIHN0b3JhZ2UgbmV0d29yayBkb3duIGJs b2NrCmRldmljZSBub3QgYWNjZXNzZWQgcmVjb25maWcgd2lsbCBtYWtlIHBhdGhzIGRpc2FwcGVh ciBmb3JtIG11bHRpcGF0aGQgYmVjYXVzZSBpdHMgc3RhdHVzIGlzIGJhZC4gCkkgdGhpbmsgdGhp cyBtaWdodCBiZSBhIHJlYXNvbi4gQWRkIG1vcmUgbG9nIGZvciBwYXRodmVjIHJlbW92aW5nIHBh dGgsIGJ1dCBub3QgZm91bmQgb3RoZXIgZ2x1ZS4KCgo+SSBiZWxpZXZlIHRoYXQgeW91ciBwcm9i bGVtIHdvdWxkIGhhdmUgYmVlbiBzb2x2ZWQgc2ltcGx5IGJ5IHJlbW92aW5nCj50aGUgIiFpc19k YWVtb24iIGNvbmRpdGlvbiBhYm92ZS4gSSdkIGxpa2UgdG8ga25vdyBpZiB0aGF0J3MgYWN0dWFs bHkKPnRoZSBjYXNlLCBiZWNhdXNlIHlvdXIgYWRkX21pc3NpbmdfcGF0aCgpIGZ1bmN0aW9uIGRv ZXMgYmFzaWNhbGx5IHRoZQo+c2FtZSB0aGluZyAocGx1cyBjYWxsaW5nIHBhdGhpbmZvKCkpLgpJ IGhhdmUgdHJpZWQgdGhpcyBidXQgbm90IHdvcmsuIE9ubHkgbmVlZCBwYXRoaW5mbyBhbmQgc3Rv cmUgcGF0aGluZm8gaW50byBwYXRodmVjIGNhbiB3b3JrLCBiZWNhdXNlIGNoZWNrX3BhdGggbmVl ZApmdWxsIHBhdGggaW5mbyB0byBmaW5pc2ggY2hlY2sgb2xkIGNvZGUgcGF0aCBvbmx5IGhhdmUg cHAtPmRldiBhbmQgcHAtPmRldl90LCBjaGVja19wYXRoIGNhbm5vdCB1c2UgdGhpcyB0byBjaGVj ayBwYXRoIHN0YXR1cy4KRG0gaW8gYmxvY2tlZCBpc3N1ZSBub3QgaGFwcGVuIGFnYWluLCBiZWNh dXNlIHRoaXMgcGF0Y2ggY2FuIHJlcGFpciB0aGlzIGJsb2NrZWQgdmVyeSBmYXN0LgpBbHNvIGRt IGlvIGJsb2NrZWQgaXNzdWUgYWN0dWFsbHkgaXMgYSBsb3cgcHJvYmFiaWxpdHkgZXZlbnQuCgoK Pkhvd2V2ZXIsIHRoZSAiIWlzX2RhZW1vbiIgdGVzdCBpcyB0aGVyZSBmb3IgYSByZWFzb24gKHNl ZSBiOTZkZWFkIAo+ICgiW211bHRpcGF0aGRdIHJlbW92ZSB0aGUgcmV0cnkgbG9naW4gaW4gdWV2 X3JlbW92ZV9wYXRoKCkiKSwgYW5kCj50aGF0J3Mgd2h5IHlvdXIgcGF0Y2ggaXNuJ3QgY29ycmVj dCBhcy1pcy4KCi0tLS0tb3JpZ2luYWwtLS0tLQq3orz+yMs6IE1hcnRpbiBXaWxjayBbbWFpbHRv Om13aWxja0BzdXNlLmNvbV0gCreiy83KsbzkOiAyMDIwxOo31MI3yNUgMTc6NDMKytW8/sjLOiB3 dWNob25neXVuIChDbG91ZCkgPHd1LmNob25neXVuQGgzYy5jb20+OyBCZW5qYW1pbiBNYXJ6aW5z a2kgPGJtYXJ6aW5zQHJlZGhhdC5jb20+OyBkbS1kZXZlbEByZWRoYXQuY29tCrOty806IGd1b3po b25naHVhIChDbG91ZCkgPGd1b3pob25naHVhQGgzYy5jb20+OyB3YW5neW9uZyAoQ2xvdWQpIDx3 YW5nLnlvbmdEQGgzYy5jb20+OyBjaGFuZ2xpbWluIChDbG91ZCkgPGNoYW5nbGltaW5AaDNjLmNv bT47IHpoYW5nZ3VhbmdodWkgKENsb3VkKSA8emhhbmcuZ3VhbmdodWlAaDNjLmNvbT47IGNoZW5n Y2hpd2VuIChDbG91ZCkgPGNoZW5nY2hpd2VuQGgzYy5jb20+Ctb3zOI6IFJlOiBbZG0tZGV2ZWxd IFtQQVRDSF1saWJtdWx0aXBhdGgvZG1wYXJzZXI6IGFkZCBtaXNzaW5nIHBhdGggd2l0aCBnb29k IHN0YXR1cyB3aGVuIHN5bmMgc3RhdGUgd2l0aCBkbSBrZXJuZWwKCkhlbGxvIENob25neXVuLAoK T24gVHVlLCAyMDIwLTA3LTA3IGF0IDAzOjA4ICswMDAwLCBDaG9uZ3l1biBXdSB3cm90ZToKPiBI aSBNYXJ0aW4gYW5kIEJlbiwKPiAKPiBDbG91ZCB5b3UgaGVscCB0byB2aWV3IGJlbG93IHBhdGNo LCB0aGFua3MuCj4gCj4gPiBGcm9tIGIyNzg2YzgxYTc4YmYzODY4ZjMwMGZkMzE3N2U4NTJlNzE4 ZTc3OTAgTW9uIFNlcCAxNyAwMDowMDowMAo+ID4gMjAwMQo+IEZyb206IENob25neXVuIFd1IDx3 dS5jaG9uZ3l1bkBoM2MuY29tPgo+IERhdGU6IE1vbiwgNiBKdWwgMjAyMCAxMToyMjoyMSArMDgw MAo+IFN1YmplY3Q6IFtQQVRDSF0gbGlibXVsdGlwYXRoL2RtcGFyc2VyOiBhZGQgbWlzc2luZyBw YXRoIHdpdGggZ29vZCAKPiBzdGF0dXMgIHdoZW4gc3luYyBzdGF0ZSB3aXRoIGRtIGtlcm5lbAo+ IAoKTmFjaywgc29ycnkuIEkga25vdyB3ZSBoYXZlIGFuIGlzc3VlIGluIHRoaXMgYXJlYSwgYnV0 IEkgd291bGQgbGlrZSB0bwpoYW5kbGUgaXQgZGlmZmVyZW50bHkuCgpGaXJzdCBvZiBhbGwsIEkg d2FudCB0byBnZXQgcmlkIG9mIGRpc2Fzc2VtYmxlX21hcCgpIG1ha2luZwptb2RpZmljYXRpb25z IHRvIHRoZSBwYXRodmVjLiBUaGUgZmFjdCB0aGF0IGRpc2Fzc2VtYmxlX21hcCgpIGN1cnJlbnRs eQpkb2VzIHRoaXMgaXMgYW4gdWdseSBsYXllciB2aW9sYXRpb24gSU1PLCBhbmQgSSBkb24ndCBs aWtlIHRoZSBpZGVhIG9mCmFkZGluZyBtb3JlIG9mIHRoaXMgb24gdG9wLiBJJ20gY3VycmVudGx5 IHByZXBhcmluZyBhIHBhdGNoIHNldCB0aGF0CmFkZHJlc3NlcyB0aGlzIChhbW9uZyBvdGhlciB0 aGluZ3MpLiBJdCB3aWxsIGFsc28gYWRkcmVzcyB0aGUgaXNzdWUgb2YKbWlzc2luZyBwYXRocyBp biBwYXRodmVjLCBhbmQgSSdkIGJlIHZlcnkgZ2xhZCBpZiB5b3UgY291bGQgZ2l2ZSBpdCBhCnRy eSBpbiB5b3VyIHRlc3QgZW52aXJvbm1lbnQuCgoKPiBBZGQgcGF0aCBiYWNrIGludG8gZGVhbW9u IHZlY3MtPnBhdGh2ZWNzIHdoZW4gZm91bmQgcGF0aCBtaXNzaW5nIGluCj4gbXVsdGlwYXRoZCB3 aGljaCBjYW4gZml4IGRtIGlvIGJsb2NrZWQgaXNzdWUuCj4gCj4gVGVzdCBlbnZpcm9ubWVudDoK PiBzZXZlcmFsIGhvc3RzOwo+IGVhY2ggaG9zdCBoYXZlIDEwMCsgbXVsdGlwYXRoLCBlYWNoIG11 bHRpcGF0aCBoYXZlIDEgdG8gNCBwYXRocy4KPiBydW4gdXAvZG93biBzdG9yYWdlIG5ldHdvcmsg bG9vcCBzY3JpcHQgZm9yIGRheXMuCj4gCj4gSXNzdWU6Cj4gQWZ0ZXIgc2V2ZXJhbCBob3VycyBz dG9wIHNjcmlwdCwgZm91bmQgc29tZSBob3N0cyBoYXZlIGRtIGlvIGJsb2NrZWQKPiBpc3N1ZToK PiBzbGF2ZSBibG9jayBkZXZpY2UgYWNjZXNzIHdlbGwsIGJ1dCBpdHMgZG0gZGV2aWNlIGJsb2Nr ZWQuCj4gMzZjMGJmYzAxMDBhOGQ0YTIyODIxNGRhNTAwMDAwMDNjIGRtLTIwIEhVQVdFSSxYU0cx Cj4gc2l6ZT0zNTBHIGZlYXR1cmVzPScxIHF1ZXVlX2lmX25vX3BhdGgnIGh3aGFuZGxlcj0nMCcg d3A9cncKPiBgLSstIHBvbGljeT0ncm91bmQtcm9iaW4gMCcgcHJpbz0xIHN0YXR1cz1lbmFibGVk Cj4gICB8LSAxOjA6MDoyMCAgc2RiayA2NzoyMjQgIGZhaWxlZCByZWFkeSBydW5uaW5nCj4gbXVs dGlwYXRoZCBzaG93IHBhdGhzIGNhbm5vdCBmb3VuZCBzZGJrIQoKSXMgL2Rldi9zZGJrIGluZGVl ZCBhIGhlYWx0aHkgcGF0aCBpbiB0aGlzIHNpdHVhdGlvbiwgb3Igbm90PwpQbGVhc2UgcnVuICJt dWx0aXBhdGhkIHNob3cgZGV2aWNlcyIsIHRvby4KCkkgd29uZGVyIGlmIHlvdXIgbG9ncyBwcm92 aWRlIHNvbWUgbW9yZSBldmlkZW5jZSBob3cgdGhpcyBzaXR1YXRpb24KY2FtZSB0byBwYXNzLiBJ IHN1c3BlY3QgdGhhdCBlaXRoZXIgYSkgdWV2ZW50cyBnb3QgbG9zdCwgb3IgdGhhdCBiKQptdWx0 aXBhdGhkIGZhaWxlZCB0byAocmUtKWFkZCB0aGUgcGF0aCB3aGlsZSBoYW5kbGluZyBhbiB1ZXZl bnQuIEl0J2QKYmUgaW50ZXJlc3RpbmcgdG8gZmluZCBvdXQgd2hhdCBpdCBhY3R1YWxseSB3YXMu CgpNb3JlIG5vdGVzIGJlbG93LgoKPiBUZXN0IHJlc3VsdDoKPiBXaXRoIHRoaXMgcGF0Y2gsIHJ1 biBzY3JpcHQgc2V2ZXJhbCBkYXlzLCBpbyBibG9ja2VkIGlzc3VlCj4gbm90IGZvdW5kIGFnYWlu Lgo+IAo+IFRoaXMgcGF0Y2ggY2FuIGZpeCB0aGlzIGlzc3VlOiB3aGVuIGZvdW5kIHBhdGggb25s eSBtaXNzaW5nIGluCj4gbXVsdGlwYXRoZCBidXQgc3RpbGwgaW4gZG0sIGNoZWNrIHRoZSBtaXNz aW5nIHBhdGggc3RhdHVzIGlmIG9rCj4gdHJ5IHRvIGFkZCBpdCBiYWNrLCBhbmQgY2hlY2tlciBo YXZlIGNoYW5jZSB0byByZWluc3RhdGUgdGhpcwo+IHBhdGggYW5kIHRoZSBkbSBpbyBibG9ja2Vk IGlzc3VlIHdpbGwgZGlzYXBwZWFyLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENob25neXVuIFd1IDx3 dS5jaG9uZ3l1bkBoM2MuY29tPgo+IC0tLQo+ICBsaWJtdWx0aXBhdGgvZG1wYXJzZXIuYyB8IDMx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgbGlibXVsdGlwYXRoL2RtcGFyc2Vy LmggfCAgMSArCj4gIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYg LS1naXQgYS9saWJtdWx0aXBhdGgvZG1wYXJzZXIuYyBiL2xpYm11bHRpcGF0aC9kbXBhcnNlci5j Cj4gaW5kZXggYjg1NmEwN2YuLjJmOTBiMTdjIDEwMDY0NAo+IC0tLSBhL2xpYm11bHRpcGF0aC9k bXBhcnNlci5jCj4gKysrIGIvbGlibXVsdGlwYXRoL2RtcGFyc2VyLmMKPiBAQCAtMzE3LDYgKzMx NywxMiBAQCBpbnQgZGlzYXNzZW1ibGVfbWFwKHZlY3RvciBwYXRodmVjLCBjaGFyCj4gKnBhcmFt cywgc3RydWN0IG11bHRpcGF0aCAqbXBwLAo+ICAJCQkJLyogT25seSBjYWxsIHRoaXMgaW4gbXVs dGlwYXRoIGNsaWVudAo+IG1vZGUgKi8KPiAgCQkJCWlmICghaXNfZGFlbW9uICYmIHN0b3JlX3Bh dGgocGF0aHZlYywKPiBwcCkpCj4gIAkJCQkJZ290byBvdXQxOwoKSSBiZWxpZXZlIHRoYXQgeW91 ciBwcm9ibGVtIHdvdWxkIGhhdmUgYmVlbiBzb2x2ZWQgc2ltcGx5IGJ5IHJlbW92aW5nCnRoZSAi IWlzX2RhZW1vbiIgY29uZGl0aW9uIGFib3ZlLiBJJ2QgbGlrZSB0byBrbm93IGlmIHRoYXQncyBh Y3R1YWxseQp0aGUgY2FzZSwgYmVjYXVzZSB5b3VyIGFkZF9taXNzaW5nX3BhdGgoKSBmdW5jdGlv biBkb2VzIGJhc2ljYWxseSB0aGUKc2FtZSB0aGluZyAocGx1cyBjYWxsaW5nIHBhdGhpbmZvKCkp LgoKSG93ZXZlciwgdGhlICIhaXNfZGFlbW9uIiB0ZXN0IGlzIHRoZXJlIGZvciBhIHJlYXNvbiAo c2VlIGI5NmRlYWQgCigiW211bHRpcGF0aGRdIHJlbW92ZSB0aGUgcmV0cnkgbG9naW4gaW4gdWV2 X3JlbW92ZV9wYXRoKCkiKSwgYW5kCnRoYXQncyB3aHkgeW91ciBwYXRjaCBpc24ndCBjb3JyZWN0 IGFzLWlzLiAKClJlZ2FyZHMsCk1hcnRpbgoKPiArCj4gKwkJCQkvKiBUcnkgdG8gYWRkIGdvb2Qg c3RhdHVzIHBhdGggYmFjayB0bwo+IGF2b2lkCj4gKwkJCQkgKiBkbSBpbyBibG9ja2VkIGlzc3Vl IGluIHNwZWNpYWwKPiBjb25kaXRpb24uCj4gKwkJCQkgKi8KPiArCQkJCWlmKGFkZF9taXNzaW5n X3BhdGgocGF0aHZlYywgZGV2bmFtZSkpCj4gKwkJCQkJY29uZGxvZygyLCAiVHJ5IHRvIGFkZCBt aXNzaW5nCj4gcGF0aCAlcyBmYWlsZWQiLCBkZXZuYW1lKTsKPiAgCQkJfSBlbHNlIHsKPiAgCQkJ CWlmICghc3RybGVuKHBwLT53d2lkKSAmJgo+ICAJCQkJICAgIHN0cmxlbihtcHAtPnd3aWQpKQo+ IEBAIC01NjksMyArNTc1LDI4IEBAIGludCBkaXNhc3NlbWJsZV9zdGF0dXMoY2hhciAqcGFyYW1z LCBzdHJ1Y3QKPiBtdWx0aXBhdGggKm1wcCkKPiAgCX0KPiAgCXJldHVybiAwOwo+ICB9Cj4gKwo+ ICsvKiBBZGQgbWlzc2luZyBnb29kIHN0YXR1cyBwYXRoIGJhY2sgdG8gbXVsdGlwYXRoZCAqLwo+ ICtpbnQgYWRkX21pc3NpbmdfcGF0aCh2ZWN0b3IgcGF0aHZlYywgY2hhciAqbWlzc2luZ19kZXYp Cj4gK3sKPiArCXN0cnVjdCB1ZGV2X2RldmljZSAqdWRldmljZTsKPiArCXN0cnVjdCBjb25maWcg KmNvbmY7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCQkJCQo+ICsJY29uZGxvZygyLCAiQ2FudCd0IGZv dW5kIHBhdGggJXMgdHJ5IHRvIGFkZCBpdCBiYWNrIGlmIGl0cwo+IHN0YXRlIGlzIHVwLiIsIAo+ ICsJCQltaXNzaW5nX2Rldik7Cj4gKwo+ICsJdWRldmljZSA9IHVkZXZfZGV2aWNlX25ld19mcm9t X3N1YnN5c3RlbV9zeXNuYW1lKHVkZXYsICJibG9jayIsCj4gbWlzc2luZ19kZXYpOwo+ICsJaWYg KCF1ZGV2aWNlKSB7Cj4gKwkJY29uZGxvZygwLCAiJXM6IGNhbid0IGZpbmQgcGF0aCBmb3JtIHVk ZXYiLAo+IG1pc3NpbmdfZGV2KTsKPiArCQlyZXR1cm4gMTsKPiArCX0KPiArCWNvbmYgPSBnZXRf bXVsdGlwYXRoX2NvbmZpZygpOwo+ICsJcHRocmVhZF9jbGVhbnVwX3B1c2gocHV0X211bHRpcGF0 aF9jb25maWcsIGNvbmYpOwo+ICsJcmV0ID0gc3RvcmVfcGF0aGluZm8ocGF0aHZlYywgY29uZiwK PiArCQkJCQkJIHVkZXZpY2UsIERJX0FMTCB8Cj4gRElfQkxBQ0tMSVNULCBOVUxMKTsKPiArCXB0 aHJlYWRfY2xlYW51cF9wb3AoMSk7Cj4gKwl1ZGV2X2RldmljZV91bnJlZih1ZGV2aWNlKTsKPiAr Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYm11bHRpcGF0aC9kbXBhcnNl ci5oIGIvbGlibXVsdGlwYXRoL2RtcGFyc2VyLmgKPiBpbmRleCBlMWJhZGIwYi4uNTE1Y2E5MDAg MTAwNjQ0Cj4gLS0tIGEvbGlibXVsdGlwYXRoL2RtcGFyc2VyLmgKPiArKysgYi9saWJtdWx0aXBh dGgvZG1wYXJzZXIuaAo+IEBAIC0xLDMgKzEsNCBAQAo+ICBpbnQgYXNzZW1ibGVfbWFwIChzdHJ1 Y3QgbXVsdGlwYXRoICosIGNoYXIgKiwgaW50KTsKPiAgaW50IGRpc2Fzc2VtYmxlX21hcCAodmVj dG9yLCBjaGFyICosIHN0cnVjdCBtdWx0aXBhdGggKiwgaW50KTsKPiAgaW50IGRpc2Fzc2VtYmxl X3N0YXR1cyAoY2hhciAqLCBzdHJ1Y3QgbXVsdGlwYXRoICopOwo+ICtpbnQgYWRkX21pc3Npbmdf cGF0aCh2ZWN0b3IgcGF0aHZlYywgY2hhciAqbWlzc2luZ19kZXYpOwoKCgotLQpkbS1kZXZlbCBt YWlsaW5nIGxpc3QKZG0tZGV2ZWxAcmVkaGF0LmNvbQpodHRwczovL3d3dy5yZWRoYXQuY29tL21h aWxtYW4vbGlzdGluZm8vZG0tZGV2ZWw=