LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBQb2xpc2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgKEMpIDE5OTkgRCBBIFBpY2tsZXMKICogQ29weXJpZ2h0IChDKSAyMDA0IFBpb3RyIENhYmFuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIlBvbW9jIG8gQVRUUklCXG4iCiAgV0NNRF9DQUxMLAoiQ0FMTCA8bmF6d2EgcGxpa3UgYmF0PiBqZXN0IHW/eXdhbmUgdyBwbGlrdSB0eXB1IGJhdCBkbyB1cnVjaGFtaWFuaWFcblwKa29tZW5kIHogaW5uZWdvIHBsaWt1IGJhdC4gTmFzdOpwbmllIHBvd3JhY2EgZG8gcGxpa3UsIHoga3TzcmVnbyB6b3N0YbNhXG5cCnd5d2+zYW5hIChqZb9lbGkgaXN0bmllamUpLiBLb21lbmRhIENBTEwgbW+/ZSBwcnpla2F6eXdh5iBwYXJhbWV0cnkgZG9cblwKd3l3b7N5d2FuZWogcHJvY2VkdXJ5LlxuXApcblwKWm1pYW55IGRvbXmcbG5lZ28ga2F0YWxvZ3UsIHptaWVubnljaCCccm9kb3dpc2tvd3ljaCBpdGQuIHd5a29uYW5lIHByemV6XG5cCnd5d2+zYW65IHByb2NlZHVy6iBzuSBkemllZHppY3pvbmUgcHJ6ZXogc2tyeXB0IHd5d2+zdWq5Y3kgQ0FMTC5cbiIKCiAgV0NNRF9DRCwgICAgICJQb21vYyBvIENEXG4iCiAgV0NNRF9DSERJUiwgICJQb21vYyBvIENIRElSXG4iCgogIFdDTURfQ0xTLCAgICAiQ0xTIGN6eZxjaSBla3JhbiBrb25zb2xpXG4iCgogIFdDTURfQ09QWSwgICAiUG9tb2MgbyBDT1BZXG4iCiAgV0NNRF9DVFRZLCAgICJQb21vYyBvICBDVFRZXG4iCiAgV0NNRF9EQVRFLCAgICJQb21vYyBvICBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJQb21vYyBvICBERUxcbiIKICBXQ01EX0RJUiwgICAgIlBvbW9jIG8gIERJUlxuIgoKICBXQ01EX0VDSE8sCiJFQ0hPIDxjablnIHpuYWvzdz4gZHJ1a3VqZSA8Y2m5ZyB6bmvzdz4gZG8gYWt0dWFsbmVnbyB1v7lkemVuaWEuXG5cClxuXApFQ0hPIE9OIHBvd29kdWplLCC/ZSB3c3p5c3RraWUga29tZW5keSB6IHBsaWt1IGJhdCBzuSBkcnVrb3dhbmVcblwKZG8gYWt0dWFsbmVnbyB1cnq5ZHplbmlhIHByemVkIHd5d2+zYW5pZW0uXG5cClxuXApFQ0hPIE9GRiBvZHdyYWNhIGVmZWt0IGtvbWVuZHkgRUNITyBPTiAoRUNITyBqZXN0IHd5s7ljem9uZSAoT0ZGKVxuXApzdGFuZGFyZG93bykuIEtvbWVuZGEgRUNITyBPRkYgbW+/ZSB6b3N0YeYgbmllIHd5nHdpZXRsb25hIGplv2VsaVxuXAp6b3N0YW5pZSBwb3ByemVkem9uYSB6bmFraWVtIEAuXG4iCgogIFdDTURfRVJBU0UsICAiUG9tb2MgbyAgRVJBU0VcbiIKCiAgV0NNRF9GT1IsCiJLb21lbmRhIEZPUiBzs3W/eSBkbyB1cnVjaG9taWVuaWEga29tZW5keSBkbGEga2G/ZGVnbyB6IHBsaWvzdyB6ZVxuXAp6YmlvcnUuXG5cClNrs2FkbmlhOiBGT1IgJXptaWVubmEgSU4gKHpiafNyKSBETyBwb2xlY2VuaWVcblwKXG5cCld5bfNnIHBvd3RhcnphbmlhIHpuYWt1ICUsIGdkeSB1v3l3YW15IGtvbWVuZHkgRk9SIHcgcGxpa3UgYmF0IG5pZVxuXAppc3RuaWplIHcgY21kXG4iCgogIFdDTURfR09UTywKIktvbWVuZGEgR09UTyBwcnplbm9zaSBrdXJzb3IgZG8gaW5uZWdvIG1pZWpzY2EgdyBwbGlrdSBiYXQuXG5cClxuXApFdHlraWV0YSwga3TzcmEgamVzdCBjZWxlbSBza29rdSAoa29tZW5keSBHT1RPKSBtb79lIG1pZeYgbWFrc3ltYWxuaWVcblwKMjU1IHpuYWvzdyBks3Vnb5xjaSwgbmllIG1vv2UgemF3aWVyYeYgc3BhY2ppLiBKZb9lbGkgc7kgZHdpZSAobHViXG5cCndp6mNlaikgZXR5a2lldHkgbyB0YWtpY2ggc2FteWNoIG5hendhY2ggc2tvayB6b3N0YW5pZSB3eWtvbmFueSBkb1xuXApwaWVyd3N6ZWogeiBuaWNoLiBKZb9lbGkgZXR5a2lldGEgbmllIGlzdG5pamUgd3lrb255d2FuaWUgcGxpa3Ugem9zdGFqZVxuXApwcnplcndhbmUuXG4iCgogIFdDTURfSEVMUCwgICAiUG9tb2MgbyBIRUxQXG4iCgogIFdDTURfSUYsCiJJRiBqZXN0IHW/eXdhbmUgZG8gd2FydW5rb3dlZ28gd3lrb255d2FuaWEgcG9sZWNl8VxuXApcblwKU2uzYWRuaWE6CUlGIFtOT1RdIEVYSVNUIG5hendhX3BsaWt1IGtvbWVuZGFcblwKCUlGIFtOT1RdIGNpuWdfem5ha/N3MT09Y2m5Z196bmFr83cyIGtvbWVuZGFcblwKCUlGIFtOT1RdIEVSUk9STEVWRUwgbnVtZXIga29tZW5kYVxuXApcblwKVyBkcnVnaWVqIGZvcm1pZSAoY2m5Z196bmFr83cxPT1jablnX3puYWvzdzIpIGNpuWcgem5ha/N3IG11c2kgYnnmIHphd2FydHkgd1xuXApjdWR6eXOzb3dpZS5Qcnp5IHBvcvN3bnl3YW5pdSBwb21pamFuYSBqZXN0IHdpZWxrb5zmIHpuYWvzdy5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCBqZXN0IHW/eXdhbmUgZG8gdXN0YXdpZW5pYSBldHlraWV0eSBkeXNrdS5cblwKXG5cClNrs2FkbmlhOiBMQUJFTCBbZHlzazpdXG5cCktvbWVuZGEgcG9wcm9zaSBvIHBvZGFuaWUgbm93ZWogZXR5a2lldHkgZHlza3UuXG5cCk1vv2VzeiB3eZx3aWV0bGnmIGFrdHVhbG65IGV0eWtpZXTqIGtvbWVuZLkgVk9MLlxuIgoKICBXQ01EX01ELCAgICAgIlBvbW9jIG8gTURcbiIKICBXQ01EX01LRElSLCAgIlBvbW9jIG8gTUtESVJcbiIKICBXQ01EX01PVkUsCiJNT1ZFIHptaWVuaWEgcG+zb79lbmllIHd5YnJhbmVnbyBwbGlrdSBsdWIga2F0YWxvZ3UuXG5cClxuXApKZb9lbGkgcHJ6ZW1pZXN6Y3phbnkgamVzdCBrYXRhbG9nIHdzenlzdGtpZSBwb2RrYXRhbG9naVxuXAppIHBsaWtpIHO5IHRha79lIHByemVzdXdhbmUuXG5cClxuXApNT1ZFIGR6aWGzYSB0eWxrbyB3IG9icupiaWUgamVkbmVnbyBkeXNrdS5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCB3eZx3aWV0bGEgbHViIHptaWVuaWEgnGNpZb9r6iB3IGt083JlaiB3eXN6dWt1amUgY21kLlxuXApcblwKS29tZW5kYSBQQVRIIGJleiBwYXJhbWV0cvN3IHd5nHdpZXRsYSBha3R1YWxuuSCcY2llv2vqLiBBYnkgarlcblwKem1pZW5p5iBuYWxlv3kgd3l3b7Nh5iBQQVRIIHphIGt083J5bSB3eXN06nB1amUgbm93YSCcY2llv2thLlxuXApcblwKVW1pZXN6Y3plbmllIHd5cmG/ZW5pYSAlUEFUSCUgcHJ6eSBwb2Rhd2FuaXUgbm93ZWognGNpZb9raVxuXApwb3dvZHVqZSB3c3Rhd2llbmllIHN0YXJlaiCcY2llv2tpLCBuYSBwcnp5a7NhZDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0Ugd3mcd2lldGxhIGluZm9ybWFjamUgJ05hY2mcbmlqIEVudGVyIGFieSBrb250eW51b3dh5icgaSBjemVrYSxcblwKYb8gdb95dGtvd25payBuYWNpnG5pZSBrbGF3aXN6IEVudGVyLiBGdW5rY2phIHRhIGplc3Qgdb95dGVjem5hIHcgcGxpa2FjaFxuXAp0eXB1IGJhdCwgYWJ5IHVtb79saXdp5iB1v3l0a293bmlrb3dpIHByemVjenl0YW5pZSBpbmZvcm1hY2ppIHd5nHdpZXRsb255Y2hcblwKbmEgZWtyYW5pZS5cbiIKCiAgV0NNRF9QUk9NUFQsCiJQUk9NUFQgdXN0YXdpYSB0ZWtzdCB6Z7Nvc3plbmlhIGtvbnNvbGkuXG5cClxuXApUZWtzdCB3eXN06nB1arljeSB6YSBrb21lbmS5IChpIHNwYWNqZSB3eXN06nB1arljZSB6YSBuaW0pXG5cCnBvamF3aWFquSBzaeogbmEgcG9jerl0a3UgbGluaSBnZHkgY21kIGN6ZWthIG5hIGtvbWVuZOouXG5cClxuXApOYXN06nB1arljZSBjablnaSB6bmFr83cgbWFquSBzcGVjamFsbmUgem5hY3plbmllOlxuXApcblwKJCQgICAgWm5hayBkb2xhcmEgKCQpICAgICAkXyAgICBabmFrIF8gICAgICAgICAgICAgICRiICAgIFpuYWsgfFxuXAokZCAgICBEYXRhICAgICAgICAgICAgICAgICRlICAgIEVzY2FwZSAgICAgICAgICAgICAgJGcgICAgWm5hayA+XG5cCiRsICAgIFpuYWsgPCAgICAgICAgICAgICAgJG4gICAgRHlzayAgICAgICAgICAgICAgICAkcCAgICCMY2llv2thXG5cCiRxICAgIFpuYWsgPSAgICAgICAgICAgICAgJHQgICAgQ3phcyAgICAgICAgICAgICAgICAkdiAgICBXZXJzamEgY21kXG5cClxuXApXcGlzYW5pZSBQUk9NUFQgYmV6IG9wY2ppIHJlc2V0dWplIHVzdGF3aWVuaWEga29uc29saSB6d2m5emFuZSB6IGtvbWVuZLlcblwKUFJPTVBULCB1c3Rhd2lhIHd5nHdpZXRsYW55IHRla3N0IG5hIJxjaWW/a2UgaSB6bmFrID4uXG5cCihUYWsgc2FtbyBqYWsgcG9sZWNlbmllIFBST01QVCAkcCRnKS5cblwKXG5cClBvbGVjZW5pZSAnU0VUIFBST01QVD10ZWtzdCcgbWEgdGFraSBzYW0gZWZla3QgamFrICdQUk9NUFQgdGVrc3QnXG4iCgogIFdDTURfUkVNLAoiUG9sZWNlbmllIHBvcHJ6ZWR6b25lIGtvbWVuZLkgUkVNIG5pZSBqZXN0IHd5a29ueXdhbmUsIG1vv2UgYnnmXG5cCnN0b3Nvd2FuZSBqYWtvIGtvbWVudGFyeiB3IHBsaWt1IHR5cHUgYmF0LlxuIgoKICBXQ01EX1JFTiwgICAgIlBvbW9jIG8gUkVOXG4iCiAgV0NNRF9SRU5BTUUsICJQb21vYyBvIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiUG9tb2MgbyBSRFxuIgogIFdDTURfUk1ESVIsICAiUG9tb2MgbyBSTURJUlxuIgoKICBXQ01EX1NFVCwKIlNFVCB3eZx3aWV0bGEgbHViIHVzdGF3aWEgem1pZW5uZSCccm9kb3dpc2tvd2UgY21kLlxuXApcblwKU0VUIGJleiBwYXJhbWV0cvN3IHd5nHdpdGxhIHdzenlzdGtpZSB1c3Rhd2lvbmUgem1pZW5uZS5cblwKXG5cClNrs2FkbmlhIHBvbGVjZW5pYSAoYnkgdXR3b3J6eeYgbHViIHptb2R5Zmlrb3dh5iB6bWllbm65OlxuXApcblwKICAgICAgU0VUIDx6bWllbm5hPj08d2FydG+c5j5cblwKXG5cCmdkemllIDx6bWllbm5hPiBpIDx3YXJ0b5zmPiBzuSBjablnYW1pIHpuYWvzdy4gU3BhY2phIG5pZSBtb79lXG5cCnd5c3TqcG93YeYgcHJ6ZWQgem5ha2llbSBy83dub5xjaSwgbmF6d2Egem1pZW5uZWogbmllIG1vv2UgemF3aWVyYeZcblwKc3BhY2ppLlxuXApcblwKUG9kIFdpbmUnZW0gem1pZW5uZSCccm9kb3dpc2tvd2Ugc3lzdGVtdSBvcGVyYWN5am5lZ28gc7kgZG9kYXdhbmUgZG9cblwKem1pZW5ueWNoIJxyb2Rvd2lza293eWNoIFdpbjMyLCB6IHRlZ28gcG93b2R1IGplc3Qgd2nqY2VqIHptaWVubnljaCBuab9cblwKdyBpbXBsZW1lbnRhY2ppIFdpbjMyLiBXaW5lIG5pZSBtb2R5ZmlrdWplIHptaWVubnljaCCccm9kb3dpc2tvd3ljaFxuXApzeXN0ZW11LlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgamVzdCB1v3l3YW5lIHcgcGxpa2FjaCBiYXQgZG8gdXN1bmnqY2lhIHBpZXJ3c3plZ28gcGFyYW1ldHJ1IHogbGlzdHlcblwKcGFyYW1ldHLzdywgcGFyYW1ldHIgMiBzdGFqZSBzaWUgMSBpdGQuIFBvbGVjZW5pZSB0byBuaWUgbWEgZWZla3R1IGdkeSBqZXN0XG5cCnd5d2+zeXdhbmUgeiBsaW5pIGtvbWVuZC5cbiIKCiAgV0NNRF9USU1FLCAgICJQb21vYyBvIFRJTUVcbiIKCiAgV0NNRF9USVRMRSwgICJVc3Rhd2lhIG5henfqIG9rbmEgY21kLCBza7NhZG5pYSBUSVRMRSBbY2m5ZyB6bmFr83ddXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPG5hendhIHBsaWt1PiB3eZx3aWV0bGEgemF3YXJ0b5zmIHBsaWt1LCBuaWUgamVzdCBzcHJhd2R6YW5lLCBjenlcblwKamVzdCBvbiBwbGlraWVtIHRla3N0b3d5bS5cbiIKCiAgV0NNRF9WRVJJRlksCiJWRVJJRlkgamVzdCB1v3l3YW5lIGRvIHVzdGF3aWVuaWEgd2FydG+cY2kgZmxhZ2kgdmVyaWZ5LiBQcmF3aWSzb3dhIHNrs2FkbmlhOlxuXApcblwKVkVSSUZZIE9OCVVzdGF3aWEgZmxhZ+pcblwKVkVSSUZZIE9GRglVc3V3YSBmbGFn6lxuXApWRVJJRlkJCVd5nHdpZXRsYSBPTiBsdWIgT0ZGIHcgemFsZb9ub5xjaSBvZCBzdGFudSBmbGFnaS5cblwKXG5cClVzdGF3aWVuaWEgZmxhZ2kgbmljIG5pZSB6bWllbmlharkgcG9kIFdpbmUnZW0uXG4iCgogIFdDTURfVkVSLAoiVkVSIHd5nHdpZXRsYSB3ZXJzauogY21kLlxuIgoKICBXQ01EX1ZPTCwgICAgIlBvbW9jIG8gVk9MXG4iCgogIFdDTURfUFVTSEQsICJQVVNIRCA8bmF6d2FrYXRhbG9ndT4gemFwYW1p6nR1amUgYWt0dWFsbnkga2F0YWxvZyBuYSBzdG9zaWUsIGFcblwKICAgICAgICAgICAgICAgbmFzdOpwbmllIHByemVjaG9kemkgZG8ga2F0YWxvZ3UgcG9kYW5lZ28gamFrbyBwYXJhbWV0clxuIgoKICBXQ01EX1BPUEQsICJQT1BEIHVzdGFsYSBha3R1YWxueSBrYXRhbG9nIG5hIG9zdGF0bmkga2F0YWxvZyB6YXBhbWnqdGFueSBwcnplelxuXAogICAgICAgICAgICAgIFBVU0hEXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSB3eZx3aWV0bGEgc3Ryb25hIHBvIHN0cm9uaWUgd3lqnGNpZSBwbGlrdSBsdWIgcG90b2t1LlxuIgoKICBXQ01EX0VYSVQsCiJFWElUIGtv8WN6eSBiaWW/uWO5IHNlc2rqIGNtZCBpIHBvd3JhY2EgZG8gc3lzdGVtdSBvcGVyYWN5am5lZ29cblwKbHViIHBvd7Nva2ksIHcga3TzcmVqIHVydWNob21pb25vIGNtZC5cbiIKCiAgV0NNRF9BTExIRUxQLCAiQ01EIC0gd2J1ZG93YW5lIGtvbWVuZHk6XG5cCkFUVFJJQlx0XHRQb2thenVqZSBsdWIgem1pZW5pYSBhdHJ5YnV0eSBwbGlrdVxuXApDQUxMXHRcdFd5d2+zdWplIHBsaWsgYmF0IHogaW5uZWdvIHBsaWt1XG5cCkNEIChDSERJUilcdFptaWVuaWEgYmllv7ljeSBrYXRhbG9nXG5cCkNMU1x0XHRDenmcY2kgZWtyYW4ga29uc29saVxuXApDT1BZXHRcdEtvcGl1amUgcGxpa1xuXApDVFRZXHRcdFptaWVuaWEgdXJ6uWR6ZW5pZSB3eWqcY2lhL3dlapxjaWFcblwKREFURVx0XHRQb2thenVqZSBsdWIgem1pZW5pYSBkYXTqIHN5c3RlbW93uVxuXApERUwgKEVSQVNFKVx0VXN1d2EgcGxpayBsdWIgcGxpa2lcblwKRElSXHRcdFd5nHdpZXRsYSB6YXdhcnRvnOYga2F0YWxvZ3VcblwKRUNIT1x0XHRLb3BpdWplIHRla3N0IG5hIHd5apxjaWUga29uc29saVxuXApIRUxQXHRcdFd5nHdpZXRsYSBkb2uzYWRuaWVqc3q5IHBvbW9jIG8ga29tZW5kemllXG5cCk1EIChNS0RJUilcdFR3b3J6eSBrYXRhbG9nXG5cCk1PUkVcdFx0V3mcd2lldGxhIHd5apxjaWUgc3Ryb25hIHBvIHN0cm9uaWVcblwKTU9WRVx0XHRQcnplbm9zaSBrYXRhbG9nIGx1YiBwbGlraVxuXApQQVRIXHRcdFVzdGF3aWEgbHViIHd5nHdpZXRsYSCcY2llv2vqIHByemVzenVraXdhbmlhXG5cClBPUERcdFx0V3JhY2EgZG8ga2F0YWxvZ3UgemFwYW1p6nRhbmVnbyBwcnpleiBQVVNIRFxuXApQUk9NUFRcdFx0Wm1pZW5pYSB0ZWtzdCB6Z7Nvc3plbmlhXG5cClBVU0hEXHRcdFByemVjaG9kemkgZG8gbm93ZWdvIGthdGFsb2d1IHphcGFtaep0dWq5YyBzdGFyeVxuXApSRU4gKFJFTkFNRSlcdFptaWVuaWEgbmF6d+ogcGxpa3VcblwKUkQgKFJNRElSKVx0VXN1d2Ega2F0YWxvZ1xuXApTRVRcdFx0VXN0YXdpYSBsdWIgd3mcd2lldGxhIHptaWVubmUgnHJvZG93aXNrb3dlXG5cClRJTUVcdFx0VXN0YXdpYSBsdWIgd3mcd2lldGxhIGN6YXNcblwKVElUTEVcdFx0VXN0YXdpYSB0eXR1syBva25hIENNRFxuXApUWVBFXHRcdFd5nHdpZXRsYSB6YXdhcnRvnOYgcGxpa3VcblwKVkVSXHRcdFd5nHdpZXRsYSB3ZXJzauogQ01EXG5cClZPTFx0XHRXeZx3aWV0bGEgZXR5a2lldOogZHlza3VcblwKRVhJVFx0XHRXebO5Y3phIENNRFxuXG5cCldwaXN6IEhFTFAgPGtvbWVuZGE+IGRsYSBkb2uzYWRuaWVqc3p5Y2ggaW5mb3JtYWNqaSBvIGtvbWVuZHppZVxuIgoKICBXQ01EX0NPTkZJUk0sICJBcmUgeW91IHN1cmUiCiAgV0NNRF9ZRVMsICJZIgogIFdDTURfTk8sICJOIgogIFdDTURfTk9BU1NPQywgIkZpbGUgYXNzb2NpYXRpb24gbWlzc2luZyBmb3IgZXh0ZW5zaW9uICVzXG4iCiAgV0NNRF9OT0ZUWVBFLCAiTm8gb3BlbiBjb21tYW5kIGFzc29jaWF0ZWQgd2l0aCBmaWxlIHR5cGUgJyVzJ1xuIgogIFdDTURfT1ZFUldSSVRFLCAiT3ZlcndyaXRlICVzIgogIFdDTURfTU9SRVNUUiwgIk1vcmUuLi4iCiAgV0NNRF9UUlVOQ0FURURMSU5FLCAiTGluZSBpbiBCYXRjaCBwcm9jZXNzaW5nIHBvc3NpYmx5IHRydW5jYXRlZC4gVXNpbmc6XG4iCiAgV0NNRF9OWUksICJOb3QgWWV0IEltcGxlbWVudGVkXG5cbiIKICBXQ01EX05PQVJHLCAiQXJndW1lbnQgbWlzc2luZ1xuIgogIFdDTURfU1lOVEFYRVJSLCAiU3ludGF4IGVycm9yXG4iCiAgV0NNRF9GSUxFTk9URk9VTkQsICIlcyA6IEZpbGUgTm90IEZvdW5kXG4iCiAgV0NNRF9OT0NNREhFTFAsICJObyBoZWxwIGF2YWlsYWJsZSBmb3IgJXNcbiIKICBXQ01EX05PVEFSR0VULCAiVGFyZ2V0IHRvIEdPVE8gbm90IGZvdW5kXG4iCiAgV0NNRF9DVVJSRU5UREFURSwgIkN1cnJlbnQgRGF0ZSBpcyAlc1xuIgogIFdDTURfQ1VSUkVOVFRJTUUsICJDdXJyZW50IFRpbWUgaXMgJXNcbiIKICBXQ01EX05FV0RBVEUsICJFbnRlciBuZXcgZGF0ZTogIgogIFdDTURfTkVXVElNRSwgIkVudGVyIG5ldyB0aW1lOiAiCiAgV0NNRF9NSVNTSU5HRU5WLCAiRW52aXJvbm1lbnQgdmFyaWFibGUgJXMgbm90IGRlZmluZWRcbiIKICBXQ01EX1JFQURGQUlMLCAiRmFpbGVkIHRvIG9wZW4gJyVzJ1xuIgogIFdDTURfQ0FMTElOU0NSSVBULCAiQ2Fubm90IGNhbGwgYmF0Y2ggbGFiZWwgb3V0c2lkZSBvZiBhIGJhdGNoIHNjcmlwdFxuIgogIFdDTURfQUxMLCAiQSIKICBXQ01EX0RFTFBST01QVCwgIiVzLCBEZWxldGUiCiAgV0NNRF9FQ0hPUFJPTVBULCAiRWNobyBpcyAlc1xuIgogIFdDTURfVkVSSUZZUFJPTVBULCAiVmVyaWZ5IGlzICVzXG4iCiAgV0NNRF9WRVJJRllFUlIsICJWZXJpZnkgbXVzdCBiZSBPTiBvciBPRkZcbiI7CiAgV0NNRF9BUkdFUlIsICJQYXJhbWV0ZXIgZXJyb3JcbiIKICBXQ01EX1ZPTFVNRURFVEFJTCwgIlZvbHVtZSBpbiBkcml2ZSAlYyBpcyAlc1xuVm9sdW1lIFNlcmlhbCBOdW1iZXIgaXMgJTA0eC0lMDR4XG5cbiIKICBXQ01EX1ZPTFVNRVBST01QVCwgIlZvbHVtZSBsYWJlbCAoMTEgY2hhcmFjdGVycywgRU5URVIgZm9yIG5vbmUpPyIKICBXQ01EX05PUEFUSCwgIlBBVEggbm90IGZvdW5kXG4iCiAgV0NNRF9BTllLRVksIlByZXNzIFJldHVybiBrZXkgdG8gY29udGludWU6ICIKICBXQ01EX0NPTlNUSVRMRSwiV2luZSBDb21tYW5kIFByb21wdCIKICBXQ01EX1ZFUlNJT04sIkNNRCBWZXJzaW9uICVzXG5cbiIKICBXQ01EX01PUkVQUk9NUFQsICJNb3JlPyAiCn0K