T24gU3VuZGF5LCBBcHJpbCAwNSwgMjAxNSAxODowMTowMiBSb2JlcnQgTWF0aGlhcyBNYXJtb3Jz dGVpbiB3cm90ZToKPiA+IE9uIE1hcmNoIDEwLCAyMDE1LCA0OjM1IGEubS4sIFRob3JzdGVuIFph Y2htYW5uIHdyb3RlOgo+ID4gPiBUaGUgcGF0Y2ggbG9va3MgZ29vZCB0byBtZS4KPiA+IAo+ID4g Um9iZXJ0IE1hdGhpYXMgTWFybW9yc3RlaW4gd3JvdGU6Cj4gPiAgICAgSSBkb3dubG9hZGVkIHRo ZSB0ZXN0cyBmcm9tIGNhbGxpZ3JhdGVzdHMsIGJ1dCBoYXZlbid0IGJlZW4gYWJsZSB0bwo+ID4g ICAgIGdldCB0aGUgUVBybyBwbHVnaW4gdG8gd29yayB3ZWxsIGVub3VnaCB0byB0ZXN0IHRoaXMg YXQgYWxsLiAgSSdtCj4gPiAgICAgcmVhbGx5IGhlc2l0YW50IHRvIGNvbW1pdCB3aXRob3V0IGZ1 cnRoZXIgdGVzdGluZy4gIFRvIGJlIGNvbXBsZXRlbHkKPiA+ICAgICBmcmFuaywgdGhpcyBwbHVn aW4gc2VlbXMgdG8gYmUgaW4gcHJldHR5IGJhZCBzaGFwZS4gIFNvbWVvbmUgd2l0aAo+ID4gICAg IG1vcmUgZXhwZXJpZW5jZSB0aGFuIG1lIHNob3VsZCBwcm9iYWJseSBsb29rIGl0IG92ZXIgYW5k IGRlY2lkZSBpZgo+ID4gICAgIGl0J3Mgd29ydGgga2VlcGluZy4+IAo+ID4gQ2FtaWxsYSBCb2Vt YW5uIHdyb3RlOgo+ID4gICAgIEkgZG9uJ3QgdGhpbmsgYW55b25lIGFyb3VuZCBrbm93cyB0aGlz IGZpbHRlciBiZXR0ZXIgdGhhbiB5b3Ugd291bGQsCj4gPiAgICAgYW5kIGlmIHlvdSBjYW50IGZp bmQgYW55IHNhbXBlIHFwcm8gZmlsZXMgb24gdGhlIHdlYiB0aGVuIHdlIHdpbGwKPiA+ICAgICBq dXN0IGhhdmUgdG8gaG9wZSBmb3IgdGhlIGJlc3QgaSBndWVzcz4gCj4gPiBCb3VkZXdpam4gUmVt cHQgd3JvdGU6Cj4gPiAgICAgSWYgdGhlIGZpbHRlciBpcyBlc3NlbnRpYWxseSB1bnRlc3RhYmxl IGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1vcmUKPiA+ICAgICBmaWxlcyBvdXQgaW4gdGhlIHdpbGQg dG8gdGVzdCB3aXRoLCB0aGVuIEknZCBhZ3JlZSB0aGF0IHJlbW92aW5nIGl0Cj4gPiAgICAgaXMg dGhlIGJlc3Qgb3B0aW9uLgo+IFRoZSBwcm9ibGVtIGlzbid0IHJlYWxseSBmaW5kaW5nIHRlc3Qg Y2FzZXMgLS0gdGhlIGNhbGxpZ3JhdGVzdHMgc3ZuIHJlcG8KPiBoYXMgc29tZSAtLSBpdCdzIHRo YXQgdGhlICJzdHJlYW0iIHBhcnQgb2YgdGhlIHBsdWdpbiB0aGF0IHBhcnNlcyB0aGF0IGZpbGUK PiBkb2Vzbid0IHNlZW0gdG8gd29yayBwcm9wZXJseSAoZXZlbiBiZWZvcmUgdGhlc2UgcGF0Y2hl cykgc28gaXQncyBoYXJkIHRvCj4gdGVzdC4KCkkgZ2V0IGEgY3Jhc2ggaW4gS29GaWx0ZXJDaG9v c2VyLCBuYW1lbHkgaGVyZToKCjU0ICAgICAgICAgIG1fZmlsdGVyTGlzdCA9IG5ldyBRTGlzdFdp ZGdldChwYWdlKTsKNTUgICAgICAgICAgbGF5b3V0LT5hZGRXaWRnZXQobV9maWx0ZXJMaXN0KTsK NTYgICAgICAgICAgcGFnZS0+c2V0TGF5b3V0KGxheW91dCk7CjU3CjU4ICAgICAgICAgIFFfQVNT RVJUKCFtX21pbWVUeXBlcy5pc0VtcHR5KCkpOyAgICA8LS0tIHRoaXMgbGluZQo1OSAgICAgICAg ICBmb3IgKFFTdHJpbmdMaXN0OjpDb25zdEl0ZXJhdG9yIGl0ID0gbV9taW1lVHlwZXMuY29uc3RC ZWdpbigpOwo2MCAgICAgICAgICAgICAgICAgIGl0ICE9IG1fbWltZVR5cGVzLmNvbnN0RW5kKCk7 CjYxICAgICAgICAgICAgICAgICAgKytpdCkgewoKSSBkb24ndCB0aGluayB0aGUgcHJvYmxlbSBp cyBpbiB0aGUgcXBybyBmaWx0ZXIsIHRoaXMgaXMgc29tZXdoZXJlIGVsc2UuICBBbmQgCnRoaXMg aXMgaW4gMi45LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KY2FsbGlncmEtZGV2ZWwgbWFpbGluZyBsaXN0CmNhbGxpZ3JhLWRldmVsQGtkZS5vcmcKaHR0 cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9jYWxsaWdyYS1kZXZlbAo=