CiBNdWx0aSBMYW5ndWFnZSBDdXN0b20gRXJyb3IgRG9jdW1lbnRzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogVGhlICdlcnJvcicgZGlyZWN0b3J5IGNvbnRhaW5zIEhUVFAgZXJyb3IgbWVzc2FnZXMgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzLgogSWYgdGhlIHByZWZlcnJlZCBsYW5ndWFnZSBvZiBhIGNsaWVudCBpcyBhdmFpbGFibGUgaXQgaXMgc2VsZWN0ZWQKIGF1dG9tYXRpY2FsbHkgdmlhIHRoZSBNdWx0aVZpZXdzIGZlYXR1cmUuIFRoaXMgZmVhdHVyZSBpcyBlbmFibGVkCiBieSBkZWZhdWx0IHZpYSB0aGUgT3B0aW9ucywgTGFuZ3VhZ2UgYW5kIEVycm9yRG9jdW1lbnQgZGlyZWN0aXZlcy4KCiBZb3UgbWF5IGNvbmZpZ3VyZSB0aGUgZGVzaWduIGFuZCBtYXJrdXAgb2YgdGhlIGRvY3VtZW50cyBieSBtb2RpZnlpbmcKIHRoZSBIVE1MIGZpbGVzIGluIHRoZSBkaXJlY3RvcnkgJ2Vycm9yL2luY2x1ZGUnLgoKIFN1cHBvcnRlZCBMYW5ndWFnZXM6CiAKICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogIHwgTGFuZ3VhZ2UgICAgICAgICAgICAgIHwgQ29udHJpYnV0ZWQgYnkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICB8IEJyYXppbGlhbiAocHQtYnIpICAgICB8IFJpY2FyZG8gTGVpdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgQ3plY2ggKGNzKSAgICAgICAgICAgIHwgTWFyY2VsIEtvbGFqYSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgfCBEdXRjaCAobmwpICAgICAgICAgICAgfCBQZXRlciBWYW4gQmllc2VuICAgICAgICAgICAgICAgICAgICAgICAgIHwKICB8IEVuZ2xpc2ggKGVuKSAgICAgICAgICB8IExhcnMgRWlsZWJyZWNodCAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgRnJlbmNoIChmcikgICAgICAgICAgIHwgQ2VjaWxlIGRlIENyZWN5ICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgfCBHZXJtYW4gKGRlKSAgICAgICAgICAgfCBMYXJzIEVpbGVicmVjaHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICB8IEl0YWxpYW4gKGl0KSAgICAgICAgICB8IEx1aWdpIFJvc2EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgS29yZWFuIChrbykgICAgICAgICAgIHwgSmFlaG8gU2hpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgfCBQb2xpc2ggKHBsKSAgICAgICAgICAgfCBUb21hc3ogS2VwY3p5bnNraSAgICAgICAgICAgICAgICAgICAgICAgIHwKICB8IFJvbWFuaWFuIChybykgICAgICAgICB8IEFuZHJlaSBCZXNsZWFnYSAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgU2VyYmlhbiAoc3IpICAgICAgICAgIHwgTmlrb2xhIFNtb2xlbnNraSAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgfCBTcGFuaXNoIChlcykgICAgICAgICAgfCBLYXJsYSBRdWludGVybyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICB8IFN3ZWRpc2ggKHN2KSAgICAgICAgICB8IFRob21hcyBTavZncmVuICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgVHVya2lzaCAodHIpICAgICAgICAgIHwgRW1yZSBTb2t1bGx1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgfCBJcmlzaCAoZ2EpICAgICAgICAgICAgfCBOb2lyaW4gUGx1bmtldHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogIChQbGVhc2Ugc2VlIGh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MtcHJvamVjdC8gaWYgeW91IHdvdWxkCiAgIGxpa2UgdG8gY29udHJpYnV0ZSB0aGUgcGFnZXMgaW4gYW4gYWRkaXRpb25hbCBsYW5ndWFnZS4pCgo=