S2VybmVsIGRyaXZlciB2aWE2ODZhCj09PT09PT09PT09PT09PT09PT09PQoKU3VwcG9ydGVkIGNoaXBzOgogICogVmlhIFZUODJDNjg2QSwgVlQ4MkM2ODZCICBTb3V0aGJyaWRnZSBJbnRlZ3JhdGVkIEhhcmR3YXJlIE1vbml0b3IKICAgIFByZWZpeDogJ3ZpYTY4NmEnCiAgICBBZGRyZXNzZXMgc2Nhbm5lZDogSVNBIGluIFBDSS1zcGFjZSBlbmNvZGVkIGFkZHJlc3MKICAgIERhdGFzaGVldDogT24gcmVxdWVzdCB0aHJvdWdoIHdlYiBmb3JtIChodHRwOi8vd3d3LnZpYS5jb20udHcvZW4vc3VwcG9ydC9kYXRhc2hlZXRzLykKCkF1dGhvcnM6CiAgICAgICAgS3n2c3RpIE3kbGtraSA8a21hbGtraUBjYy5odXQuZmk+LAogICAgICAgIE1hcmsgRC4gU3R1ZGViYWtlciA8bWRzeHl6MTIzQHlhaG9vLmNvbT4KICAgICAgICBCb2IgRG91Z2hlcnR5IDxib2JkQHN0YW5mb3JkLmVkdT4KICAgICAgICAoU29tZSBjb252ZXJzaW9uLWZhY3RvciBkYXRhIHdlcmUgY29udHJpYnV0ZWQgYnkKICAgICAgICBKb25hdGhhbiBUZWggU29vbiBZZXcgPGoudGVoQGluYW1lLmNvbT4KICAgICAgICBhbmQgQWxleCB2YW4gS2FhbSA8ZGFya3NpZGVAY2hlbGxvLm5sPi4pCgpNb2R1bGUgUGFyYW1ldGVycwotLS0tLS0tLS0tLS0tLS0tLQoKZm9yY2VfYWRkcj0weGFkZHIgICAgICAgU2V0IHRoZSBJL08gYmFzZSBhZGRyZXNzLiBVc2VmdWwgZm9yIEFzdXMgQTdWIGJvYXJkcwogICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGRvbid0IHNldCB0aGUgYWRkcmVzcyBpbiB0aGUgQklPUy4gRG9lcyBub3QgZG8gYQogICAgICAgICAgICAgICAgICAgICAgICBQQ0kgZm9yY2U7IHRoZSB2aWE2ODZhIG11c3Qgc3RpbGwgYmUgcHJlc2VudCBpbiBsc3BjaS4KICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgdXNlIHRoaXMgdW5sZXNzIHRoZSBkcml2ZXIgY29tcGxhaW5zIHRoYXQgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UgYWRkcmVzcyBpcyBub3Qgc2V0LgogICAgICAgICAgICAgICAgICAgICAgICBFeGFtcGxlOiAnbW9kcHJvYmUgdmlhNjg2YSBmb3JjZV9hZGRyPTB4NjAwMCcKCkRlc2NyaXB0aW9uCi0tLS0tLS0tLS0tCgpUaGUgZHJpdmVyIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGNoaXBzIGFuZCByZXBvcnRzCmFsbCBhcyBhIDY4NkEuCgpUaGUgVmlhIDY4NmEgc291dGhicmlkZ2UgaGFzIGludGVncmF0ZWQgaGFyZHdhcmUgbW9uaXRvciBmdW5jdGlvbmFsaXR5LgpJdCBhbHNvIGhhcyBhbiBJMkMgYnVzLCBidXQgdGhpcyBkcml2ZXIgb25seSBzdXBwb3J0cyB0aGUgaGFyZHdhcmUgbW9uaXRvci4KRm9yIHRoZSBJMkMgYnVzIGRyaXZlciwgc2VlIDxmaWxlOkRvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtdmlhcHJvPgoKVGhlIFZpYSA2ODZhIGltcGxlbWVudHMgdGhyZWUgdGVtcGVyYXR1cmUgc2Vuc29ycywgdHdvIGZhbiByb3RhdGlvbiBzcGVlZApzZW5zb3JzLCBmaXZlIHZvbHRhZ2Ugc2Vuc29ycyBhbmQgYWxhcm1zLgoKVGVtcGVyYXR1cmVzIGFyZSBtZWFzdXJlZCBpbiBkZWdyZWVzIENlbHNpdXMuIEFuIGFsYXJtIGlzIHRyaWdnZXJlZCBvbmNlCndoZW4gdGhlIE92ZXJ0ZW1wZXJhdHVyZSBTaHV0ZG93biBsaW1pdCBpcyBjcm9zc2VkOyBpdCBpcyB0cmlnZ2VyZWQgYWdhaW4KYXMgc29vbiBhcyBpdCBkcm9wcyBiZWxvdyB0aGUgaHlzdGVyZXNpcyB2YWx1ZS4KCkZhbiByb3RhdGlvbiBzcGVlZHMgYXJlIHJlcG9ydGVkIGluIFJQTSAocm90YXRpb25zIHBlciBtaW51dGUpLiBBbiBhbGFybSBpcwp0cmlnZ2VyZWQgaWYgdGhlIHJvdGF0aW9uIHNwZWVkIGhhcyBkcm9wcGVkIGJlbG93IGEgcHJvZ3JhbW1hYmxlIGxpbWl0LiBGYW4KcmVhZGluZ3MgY2FuIGJlIGRpdmlkZWQgYnkgYSBwcm9ncmFtbWFibGUgZGl2aWRlciAoMSwgMiwgNCBvciA4KSB0byBnaXZlCnRoZSByZWFkaW5ncyBtb3JlIHJhbmdlIG9yIGFjY3VyYWN5LiBOb3QgYWxsIFJQTSB2YWx1ZXMgY2FuIGFjY3VyYXRlbHkgYmUKcmVwcmVzZW50ZWQsIHNvIHNvbWUgcm91bmRpbmcgaXMgZG9uZS4gV2l0aCBhIGRpdmlkZXIgb2YgMiwgdGhlIGxvd2VzdApyZXByZXNlbnRhYmxlIHZhbHVlIGlzIGFyb3VuZCAyNjAwIFJQTS4KClZvbHRhZ2Ugc2Vuc29ycyAoYWxzbyBrbm93biBhcyBJTiBzZW5zb3JzKSByZXBvcnQgdGhlaXIgdmFsdWVzIGluIHZvbHRzLgpBbiBhbGFybSBpcyB0cmlnZ2VyZWQgaWYgdGhlIHZvbHRhZ2UgaGFzIGNyb3NzZWQgYSBwcm9ncmFtbWFibGUgbWluaW11bQpvciBtYXhpbXVtIGxpbWl0LiBWb2x0YWdlcyBhcmUgaW50ZXJuYWxseSBzY2FsbGVkLCBzbyBlYWNoIHZvbHRhZ2UgY2hhbm5lbApoYXMgYSBkaWZmZXJlbnQgcmVzb2x1dGlvbiBhbmQgcmFuZ2UuCgpJZiBhbiBhbGFybSB0cmlnZ2VycywgaXQgd2lsbCByZW1haW4gdHJpZ2dlcmVkIHVudGlsIHRoZSBoYXJkd2FyZSByZWdpc3RlcgppcyByZWFkIGF0IGxlYXN0IG9uY2UuIFRoaXMgbWVhbnMgdGhhdCB0aGUgY2F1c2UgZm9yIHRoZSBhbGFybSBtYXkKYWxyZWFkeSBoYXZlIGRpc2FwcGVhcmVkISBOb3RlIHRoYXQgaW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIGFsbApoYXJkd2FyZSByZWdpc3RlcnMgYXJlIHJlYWQgd2hlbmV2ZXIgYW55IGRhdGEgaXMgcmVhZCAodW5sZXNzIGl0IGlzIGxlc3MKdGhhbiAxLjUgc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCB1cGRhdGUpLiBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbiBlYXNpbHkKbWlzcyBvbmNlLW9ubHkgYWxhcm1zLgoKVGhlIGRyaXZlciBvbmx5IHVwZGF0ZXMgaXRzIHZhbHVlcyBlYWNoIDEuNSBzZWNvbmRzOyByZWFkaW5nIGl0IG1vcmUgb2Z0ZW4Kd2lsbCBkbyBubyBoYXJtLCBidXQgd2lsbCByZXR1cm4gJ29sZCcgdmFsdWVzLgo=