IyBTcGFuaXNoCiMKIyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojICAqIENvcHlyaWdodCAoYykgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAojICAqCiMgICogQ29udHJpYnV0b3JzOgojICAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFRvIGNvZGUgZGV2ZWxvcGVyOgojICAgRG8gTk9UIGNoYW5nZSB0aGUgcHJvcGVydGllcyBiZXR3ZWVuIHRoaXMgbGluZSBhbmQgdGhlCiMgICAiJSUlIEVORCBPRiBUUkFOU0xBVEVEIFBST1BFUlRJRVMgJSUlIiBsaW5lLgojICAgTWFrZSBhIG5ldyBwcm9wZXJ0eSBuYW1lLCBhcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgY2hhbmdlCiMgICB0aGUgY29kZSB0byB1c2UgdGhlIG5ldyBwcm9wZXJ0eS4KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgJSUlIEVORCBPRiBUUkFOU0xBVEVEIFBST1BFUlRJRVMgJSUlCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnBsdWdpbk5hbWUgPSBTVEVNIFVJCgojIENvbW1vbiBLZXlzCl9VSV9Db21tb25fU1RFTSA9IFNURU0KCiMgU1RFTSBOZXcgUHJvamVjdCBXaXphcmQKX1VJX05ld19TVEVNX1Byb2plY3RfV2l6YXJkID0gUHJveWVjdG8gU1RFTQoKIyBWaWV3cwpfVUlfR3JhcGhzX1ZpZXcgPSBHcmFmb3MKX1VJX01vZGVsc19WaWV3ID0gTW9kZWxvcwpfVUlfU2NlbmFyaW9zX1ZpZXcgPSBFc2NlbmFyaW9zCl9VSV9PYnNlcnZlcnNfVmlldyA9IEVzcGVjdGFkb3JlcyAoT2JzZXJ2ZXJzKQpfVUlfU2VxdWVuY2Vyc19WaWV3ID0gU2VjdWVuY2lhZG9yZXMKX1VJX0RlY29yYXRvcnNfVmlldyA9IE1vZGlmaWNhZG9yZXMgZGUgR3JhZm9zIChEZWNvcmF0b3JzKQpfVUlfU1RFTV9Qcm9qZWN0X0V4cGxvcmVyID0gRXhwbG9yYWRvciBkZSBQcm95ZWN0b3MKX1VJX0FjdGl2ZV9TaW11bGF0aW9uc19WaWV3ID0gU2ltdWxhY2lvbmVzIEFjdGl2YXMKCiMgTWVudQpfVUlfU1RFTV9Xb3JrQmVuY2hfTWVudSA9IFNURU0KX1VJX1NURU1fQWN0aW9uX1J1biA9IENvcnJlcgpfVUlfU1RFTV9BY3Rpb25fUnVuX1RUID0gQ29ycmVyIHNpbXVsYWNp824KX1VJX1NURU1fQWN0aW9uX1N0b3AgPSBEZXRlbmVyCl9VSV9TVEVNX0FjdGlvbl9TdG9wX1RUID0gRGV0ZW5lciBzaW11bGFjafNuCl9VSV9TVEVNX0FjdGlvbl9QYXVzZSA9IFBhdXNhCl9VSV9TVEVNX0FjdGlvbl9QYXVzZV9UVCA9IFBvbmVyIHNpbXVsYWNp824gZW4gcGF1c2EKX1VJX1NURU1fQWN0aW9uX1N0ZXAgPSBDb3JyZXIgcG9yIHVuaWRhZCAKX1VJX1NURU1fQWN0aW9uX1N0ZXBfVFQgPSBBdmFuemFyIHNpbXVsYWNp824gdW5hIHVuaWRhZCBkZSB0aWVtcG8KX1VJX1NURU1fQWN0aW9uX1Jlc2V0ID0gUmVpbmljaWFyCl9VSV9TVEVNX0FjdGlvbl9SZXNldF9UVCA9IFJlc3RhdXJhciBzaW11bGFjafNuIGEgc3UgZXN0YWRvIGluaWNpYWwKCg==