dHJlZSBkM2UzNWUxYzk0MDM4ZWQ3ZWU2OWRkMzk5NWFjNmQ5YjQ1MmQ2ZmM3CnBhcmVudCBlOWYxZjFlNzcyNjA4NDU4MGI4ZWFiNWRmYTFlMDdlMjAyYzM3NmY5CmF1dGhvciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTYyODY4OTE1MyArMDIwMApjb21taXR0ZXIgV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+IDE2MjkxODkwMDMgKzAyMDAKZW5jb2RpbmcgbGF0aW4xCgpCVUcvTUVESVVNOiBoMjogZ2l2ZSA6YXV0aG9yaXR5IHByZWNlZGVuY2Ugb3ZlciBIb3N0CgpUaGUgd29yZGluZyByZWdhcmRpbmcgSG9zdCB2cyA6YXV0aG9yaXR5IGluIFJGQzc1NDAgaXMgYW1iaWd1b3VzIGFzIGl0CnNheXMgdGhhdCBhbiBpbnRlcm1lZGlhcnkgbXVzdCBwcm9kdWNlIGEgaG9zdCBoZWFkZXIgZnJvbSA6YXV0aG9yaXR5IGlmCkhvc3QgaXMgbWlzc2luZywgYnV0LCBjb250cmFyeSB0byBIVFRQLzEuMSwgZG9lc24ndCBzYXkgYW55dGhpbmcgcmVnYXJkaW5nCnRoZSBwb3NzaWJpbGl0eSB0aGF0IEhvc3QgYW5kIDphdXRob3JpdHkgZGlmZmVyLCB3aGljaCBsZWF2ZXMgSG9zdCB3aXRoCmhpZ2hlciBwcmVjZWRlbmNlIHRoZXJlLiBJbiBhZGRpdGlvbiBpdCBtZW50aW9ucyB0aGF0IGNsaWVudHMgc2hvdWxkIHVzZQo6YXV0aG9yaXR5ICppbnN0ZWFkKiBvZiBIb3N0LCBhbmQgdGhhdCBIMS0+SDIgc2hvdWxkIHVzZSA6YXV0aG9yaXR5IG9ubHkKaWYgdGhlIG9yaWdpbmFsIHJlcXVlc3Qgd2FzIGluIGF1dGhvcml0eSBmb3JtLiBUaGlzIGxlYXZlcyBzb21lIGdyYXkKYXJlYSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjaGFpbiBmb3IgZnVsbHkgdmFsaWQgSDIgcmVxdWVzdHMgYXJib3JpbmcgYQpIb3N0IGhlYWRlciB0aGF0IGFyZSBmb3J3YXJkZWQgdG8gdGhlIG90aGVyIHNpZGUgd2hlcmUgaXQncyBwb3NzaWJsZSB0bwpkcm9wIHRoZSBIb3N0IGhlYWRlciBhbmQgdXNlIHRoZSBhdXRob3JpdHkgb25seSBhZnRlciBmb3J3YXJkaW5nIHRvIGEKc2Vjb25kIEgyIGxheWVyLCB0aHVzIHBvc3NpYmx5IHNlZWluZyB0d28gZGlmZmVyZW50IHZhbHVlcyBvZiBIb3N0IGF0CmEgZGlmZmVyZW50IHN0YWdlLiBUaGVyZSdzIG5vIHN1Y2ggaXNzdWUgd2hlbiBmb3J3YXJkaW5nIGZyb20gSDIgdG8gSDEKYXMgdGhlIGF1dGhvcml0eSBpcyBkcm9wcGVkIG9ubHkgb25seSB0aGUgSG9zdCBpcyBrZXB0LgoKTm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgcmVxdWVzdCBpcyBzdWZmaWNpZW50IHRvIHJlLW5vcm1hbGl6ZSBzdWNoIGEKcmVxdWVzdDoKCiAgIGh0dHAtcmVxdWVzdCBzZXQtaGVhZGVyIGhvc3QgJVtyZXEuaGRyKGhvc3QpXQoKVGhlIG5ldyBzcGVjIGluIHByb2dyZXNzIChkcmFmdC1pZXRmLWh0dHBiaXMtaHR0cDJiaXMtMDMpIGFkZHJlc3Nlcwp0aGlzIHRyb3VibGUgYnkgYmVpbmcgYSBiaXQgaXMgc3RyaWN0ZXIgb24gdGhlc2UgcnVsZXMuIEl0IGNsYXJpZmllcwp0aGF0IDphdXRob3JpdHkgbXVzdCBhbHdheXMgYmUgdXNlZCBpbnN0ZWFkIG9mIEhvc3QgYW5kIHRoYXQgSG9zdCBvdWdodAp0byBiZSBpZ25vcmVkLiBUaGlzIGlzIG11Y2ggc2FuZXIgYXMgaXQgYXZvaWRzIHRvIGNvbnZleSB0d28gZGlzdGluY3QKdmFsdWVzIGFsb25nIHRoZSBjaGFpbi4gVGhpcyBiZWNvbWVzIHRoZSBwcm90b2NvbC1sZXZlbCBlcXVpdmFsZW50IG9mOgoKICAgaHR0cC1yZXF1ZXN0IHNldC11cmkgJVt1cmxdCgpTbyB0aGlzIHBhdGNoIGRvZXMgZXhhY3RseSB0aGlzLCB3aGljaCB3ZSB3ZXJlIGluaXRpYWxseSBhIGJpdCByZWx1Y3RhbnQKdG8gZG8gaW5pdGlhbGx5IGJ5IGxhY2sgb2YgdmlzaWJpbGl0eSBhYm91dCBvdGhlciBpbXBsZW1lbnRhdGlvbnMnCmV4cGVjdGF0aW9ucy4gSW4gYWRkaXRpb24gaXQgc2xpZ2h0bHkgc2ltcGxpZmllcyB0aGUgSG9zdCBoZWFkZXIgZmllbGQKY3JlYXRpb24gYnkgYWx3YXlzIHBsYWNpbmcgaXQgZmlyc3QgaW4gdGhlIGxpc3Qgb2YgaGVhZGVycyBpbnN0ZWFkIG9mCmxhc3Q7IHRoaXMgY291bGQgYWxzbyBzcGVlZCB1cCB0aGUgbG9vayB1cCBhIGxpdHRsZSBiaXQuCgpUaGlzIG5lZWRzIHRvIGJlIGJhY2twb3J0ZWQgdG8gMi4wLiBOb24tSFRYIHZlcnNpb25zIGFyZSBzYWZlIHJlZ2FyZGluZwp0aGlzIGJlY2F1c2UgdGhleSBkcm9wIHRoZSBVUkkgZHVyaW5nIHRoZSBjb252ZXJzaW9uIHRvIEhUVFAvMS4xIHNvCm9ubHkgSG9zdCBpcyB1c2VkIGFuZCB0cmFuc21pdHRlZC4KClRoYW5rcyB0byBUaW0gRPxzdGVyaHVzIGZvciByZXBvcnRpbmcgdGhhdCBvbmUuCgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiNWQyYjllMTU0ZDc4ZTQwNzVkYjE2MzgyNmM1ZTBmNmQzMWIyYWIxKQpTaWduZWQtb2ZmLWJ5OiBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4K