-----BEGIN PGP MESSAGE----- Version: Keybase Go 5.5.1 (linux) Comment: https://keybase.io/download xA0DAAgBXK32/a0WXi0By+F0AOIAAAAA6y0tLQpsYXlvdXQ6IHBvc3QKZGF0ZTog MjAxOC0wMy0wNAp0aXRsZTogSmF2YSBVdGlsJ3MgUHJpb3JpdHkgUXVldWUgTWlz aGFwCi0tLQoKSSByZWNlbnRseSBmb3VuZCBvdXQgYnkgZG9pbmcgW0hhY2tlcnJh bmsncyBCcmVhZHRoIEZpcnN0IFNlYXJjaDogU2hvcnRlc3QKUmVhY2hdKGh0dHBz Oi8vd3d3LmhhY2tlcnJhbmsuY29tL2NoYWxsZW5nZXMvYmZzc2hvcnRyZWFjaCkg dGhhdCBKYXZhJ3MKUHJpb3JpdHkgUXVldWUgZG9lcyBub3QgbWFpbnRhaW4gdGhl IGhlYXAgcHJvcGVydHkgaWYgeW91IG1vZGlmeSB0aGUgcHJpb3JpdHkKb2Ygb25l IG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgcXVldWUuIFRoZSBvbmx5IG1vbWVudCB3 aGVyZSB0aGUgaGVhcCBwcm9wZXJ0eQppcyBtYWludGFpbmVkIGlzIHdoZW4gdGhl IHF1ZXVlIGlzIGJlaW5nIHBvcHVsYXRlZCwgaS5lOiAgd2hlbiBlbGVtZW50cyBh cmUKYWRkZWQgdG8gdGhlIHF1ZXVlLgoKVGhpcyBpcyBiZXR0ZXIgc2hvd24gd2l0 aCBhIHNtYWxsIGV4YW1wbGUuCgpIZXJlJ3MgYSBzaW1wbGUgUHJpb3JpdHlRdWV1 ZSB1c2VkIGFzIGEgbWluIHByaW9yaXR5IHF1ZXVlLCBvZiBWZXJ0ZXgsIHdoaWNo CnJlcHJlc2VudHMgYSB2ZXJ0ZXggKG5vZGUpIG9mIGEgR3JhcGggYW5kIGl0cyBt ZW1iZXJzIGFyZSBpdHMgaW5kZXggYW5kIGl0cwpkaXN0YW5jZSB0byB0aGUgc291 cmNlIHZlcnRleC4KClRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgaW1wbGVtZW50 YXRpb24gYXJlOgoKYGBgCmNsYXNzIFZlcnRleCB7CiAgICBwcml2YXRlIGludCBk aXN0YW5jZTsKICAgIHByaXZhdGUgaW50IGluZGV4OwogICAgCiAgICBwdWJsaWMg aW50IGdldERpc3RhbmNlKCkgewogICAgICAgIHJldHVybiBkaXN0YW5jZTsKICAg IH0KCiAgICBwdWJsaWMgdm9pZCBzZXREaXN0YW5jZShpbnQgZCkgewogICAgICAg IGRpc3RhbmNlID0gZDsKICAgIH0KLgouCi4KCmltcG9ydCBqYXZhLnV0aWwuUHJp b3JpdHlRdWV1ZTsKCmNsYXNzIEV4YW1wbGUgewogICAgcHVibGljIHN0YXRpYyB2 b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFByaW9yaXR5UXVldWU8 VmVydGV4PiBxdWV1ZSA9IG5ldyBQcmlvcml0eVF1ZXVlPFZlcnRleD4obiwgbmV3 IENvbXBhcmF0b3I8VmVydGV4PigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAg ICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShWZXJ0ZXggbzEsIFZlcnRleCBv MikgewogICAgICAgICAgICAgICAgaWYgKG8xLmdldERpc3RhbmNlKCkgPCBvMi5n ZXREaXN0YW5jZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwog ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvMS5nZXREaXN0YW5jZSgpID4gbzIu Z2V0RGlzdGFuY2UoKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg ICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICBWZXJ0ZXhbXSB2 ZXJ0aWNlcyA9IG5ldyBWZXJ0ZXhbMTBdOwogICAgICAgIAogICAgICAgIC8vIGlu aXRpYWxpemUgdGhlIHZlcnRpY2VzIGFuZCBhZGQgdGhlbSB0byB0aGUgcXVldWUK ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICAg ICAgdmVydGljZXNbaV0gPSBuZXcgVmVydGV4KGkpOwogICAgICAgICAgICB2ZXJ0 aWNlc1tpXS5zZXREaXN0YW5jZShpICsgMSk7CiAgICAgICAgICAgIHF1ZXVlLmFk ZCh2KTsKICAgICAgICB9CiAgICB9CiAgICAKLgouCi4KfQpgYGAKClRoZSBjb25z dHJ1Y3RvciB0aGF0IHRha2VzIGEgQ29tcGFyYXRvciBpcyBuZWNlc3NhcnkgdG8g ZXN0YWJsaXNoIHRoZSBwcmlvcml0eQpvZiB0aGUgZWxlbWVudHMgYW5kIHRoZSBz dHJ1Y3R1cmUgb2YgdGhlIGhlYXAgaW4gdGhlIGJhY2tlbmQuCkluIG91ciBjYXNl LCB0aGUgcHJpb3JpdHkgaXMgZ2l2ZW4gYnkgdGhlIGRpc3RhbmNlIG9mIHRoZSBW ZXJ0ZXguCgpUaGUgcHJvYmxlbSBzdXJnZXMgaW4gdGhhdCBpZiB3ZSBsYXRlciBk bzoKCgpgYGAg6gogICAgdltpXS5zZXREaXN0YW5jZSgwKTsKYGBgCgpUaGUgcG9z aXRpb24gaW4gdGhlIHF1ZXVlIHdpbGwgbm90IGNoYW5nZSwgaS5lICoqdGhlIGhl YXAgaW4gdGhlIGJhY2tlbmQKcmVtYWlucyBpbiB0aGUgc2FtZSBzdGF0ZSBhcyBp dCB3YXMgYmVmb3JlIHRoZSBkaXN0YW5jZSBmb3IgKnZbaV0qIHdhcyBjaGFuZ2Vk KiouClRoZSBvbmx5IG1vbWVudCB3aGVyZSB0aGUgcHJpb3JpdHkgcXVldWUgYWN0 dWFsbHkgcnVucyB0aGUgY29tcGFyYXRvciBpcyB3aGVuCmlzIHdoZW4gdGhlIHF1 ZXVlIGlzIGJlaW5nIGFjdGVkIHVwb24gaS5lOiBlaXRoZXIgd2hlbiB1c2luZyAq YWRkKiBvciAqcmVtb3ZlKgptZXRob2RzLgoKCmBgYAogICAgXFwgaW5pdGlhbCBz dGF0ZQogICAgdltpXS5zZXREaXN0YW5jZSgwKTsKICAgIFxcIHNhbWUgc3RhdGUg YXMgJ2luaXRpYWwgc3RhdGUnIQpgYGAKClRoZSBvbmx5IHdheSB0byBhY2hpZXZl IHRoZSBleHBlY3RlZCByZXN1bHQgaXMgdG8KZG8gdGhpczoKCmBgYCAKICAgIC8v IGluaXRpYWwgc3RhdGUgaS5lOiB2W2ldIGlzIGluIHBvc2l0aW9uIFAKICAgIHZb aV0uc2V0RGlzdGFuY2UoMCk7CiAgICAvLyBzYW1lIHN0YXRlIGFzIGluaXRpYWwg c3RhdGUgaS5lOiB2W2ldIGlzIGluIHBvc2l0aW9uIFAKICAgIHF1ZXVlLnJlbW92 ZSh2W2ldKTsKICAgIHF1ZXVlLmFkZCh2W2ldKTsKICAgIC8vIGRpZmZlcmVudCBz dGF0ZSBpLmU6IHZbaV0gaXMgaW4gcG9zaXRpb24gUSwgaW4gYSBkaWZmZXJlbnQg ZnJvbSB0aGUgcG9zaXRpb24gaXQgd2FzIGluIGBpbml0aWFsIHN0YXRlYApgYGAK Ckl0J3MgY3JhenkgdG8gdGhpbmsgSSBzcGVudCB0aGUgYmV0dGVyIHBhcnQgb2Yg dHdvIGhvdXJzIHRoaW5raW5nIGFuZCBsb29raW5nCmludG8gdGhlIGNvZGUganVz dCB0byBzdGFydCBkb3VidGluZyBldmVyeXRoaW5nIEkga25vdyBhbmQgdGhlbiBy ZWFsaXplIHRoYXQKdGhlIGlzc3VlIGlzIGluIHRoYXQgdGhlIGltcGxlbWVudGF0 aW9uIGRvZXNuJ3Qgd29yayBhcyBvbmUgbWnoZ2h0IGV4cGVjdC4KCkkgZG9uJ3Qg c3VwcG9zZSBldmVyeW9uZSB0aGlua3MgdGhlIHNhbWUgd2F5IEkgZG8sIGJ1dCBp dCB3b3VsZCBoYXZlIGJlZW4gbmljZQppZiB0aGUgY2xhc3MgY29udGFpbmVkIHNv bWUgbWV0aG9kIHRoYXQgY291bGQgKnJlaGVhcGlmeSogdGhlIHByaW9yaXR5IHF1 ZXVlCm9yIHNvbWV0aGluZyBpbiB0aGF0IHJlZ2FyZC4KCk9oIHdlbGwsIEkndmUg bGVhcm5lZCBteSBsZXNzb24gbm93LCBKYXZhIENsYXNzIExpYnJhcnkuIOUqTmV2 ZXIgbWFrZSBhbnkKYXNzdW1wdGlvbiBhYm91dOQgeW91ciBiZWhhdmlvdXIq4QoK AMLAXAQAAQgAEAUCX1QloAkQXK32/a0WXi0AAJeHCAB3J1bRh/IRSuMEA1HXcvBp Ivwo+9zIemL3GioazRZPqERsVnHWhdcwkoAMk3xvubVX1ApZ4NqbxGWfW/C+BiVC JQw6Q9V/an46VS5liuapklH2MTSunO5MG5cMez3yFdsFaajQuM8cQ0si6BuhVC17 6M+fDOgNbi5puKrZJ7v4TR6dasQSdJzLTUJ4BI/zJiZ4GO35iL+TAiTyhRqL4rcF hw9mUTfHoMtD5STGYMlSCm/Fi5tvVUNIeji+zcIYxh4R+JEIsqKB2UbnbkbHvbXB Q4+jeHzlB6VvqXZv2eVDh+2VFaS5CeiZ2z86bT0LXKfXSh742uO5hHnVyeBxY9j8 =pLwY -----END PGP MESSAGE-----