LyoKICogV2luZSBjb21tYW5kIHByb21wdCAoRHV0Y2ggcmVzb3VyY2VzKQogKgogKiBDb3B5cmlnaHQgKEMpIDIwMDMgSGFucyBMZWlkZWtrZXIKICogQ29weXJpZ2h0IChDKSAyMDA4IEZyYW5zIEtvb2wKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgIndjbWQuaCIKCkxBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiVWl0bGVnIGJpaiBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxiYXRjaGJlc3RhbmRzbmFhbT4gd29yZHQgZ2VicnVpa3QgYmlubmVuIGVlbiBiYXRjaGJlc3RhbmQgb20gb3BkcmFjaHRlbiB1aXRcblwKZWVuIGFuZGVyIGJhdGNoYmVzdGFuZCBhYW4gdGUgcm9lcGVuLiBBbHMgaGV0IGJhdGNoYmVzdGFuZCBiZXN0YWF0IGtlZXJ0IGRlIGNvbnRyb2xlIHRlcnVnXG5cCm5hYXIgaGV0IGJlc3RhbmQgZGF0IGhldCBhYW5yaWVwLiBUaGUgQ0FMTCBvcGRyYWNodCBrYW4gcGFyYW1ldGVycyBtZWVnZXZlbiBhYW4gZGUgYWFuIHRlXG5cCnJvZXBlbiBwcm9jZWR1cmUuXG5cClxuXApWZXJhbmRlcmluZ2VuIG0uYi50IGRpcmVjdG9yeSwgb21nZXZpbmdzdmFyaWFiZWxlbiwgZXRjIGRpZSB0b3Qgc3RhbmQga29tZW4gYmlubmVuIGVlblxuXAphYW5nZXJvZXBlbiBwcm9jZWR1cmUgd29yZGVuIGfrZXJmdCBkb29yIGRlIGFhbnJvZXBlbmRlIHByb2NlZHVyZS5cbiIKCiAgV0NNRF9DRCwgICAgICJVaXRsZWcgYmlqIENEXG4iCiAgV0NNRF9DSERJUiwgICJVaXRsZWcgYmlqIENIRElSXG4iCgogIFdDTURfQ0xTLCAgICAiQ0xTIHNjaG9vbnQgaGV0IHNjaGVybVxuIgoKICBXQ01EX0NPUFksICAgIlVpdGxlZyBiaWogQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiVWl0bGVnIGJpaiBDVFRZXG4iCiAgV0NNRF9EQVRFLCAgICJVaXRsZWcgYmlqIERBVEVcbiIKICBXQ01EX0RFTCwgICAgIlVpdGxlZyBiaWogREVMXG4iCiAgV0NNRF9ESVIsICAgICJVaXRsZWcgYmlqIERJUlxuIgoKICBXQ01EX0VDSE8sCiJFQ0hPIDx0ZWtlbnJlZWtzPiBnZWVmdCA8dGVrZW5yZWVrcz4gd2VlciBvcCBoZXQgYWN0aWV2ZSB1aXR2b2VyYXBwYXJhYXQuXG5cClxuXApFQ0hPIE9OIHpvcmd0IGVydm9vciBkYXQgYWxsZSBoaWVyb3Agdm9sZ2VuZGUgb3BkcmFjaHRlbiBpbiBlZW4gYmF0Y2hiZXN0YW5kIHdvcmRlbiB3ZWVyZ2VnZXZlblxuXApvcCBoZXQgdWl0dm9lcmFwcGFyYWF0IHZvb3JkYXQgemUgd29yZGVuIHVpdGdldm9lcmQuXG5cClxuXApFQ0hPIE9GRiBrZWVydCBoZXQgZWZmZWN0IHZhbiBlZW4gdm9vcmFmZ2FhbmRlIEVDSE8gT04gb20gKEVDSE8gT0ZGIGlzXG5cCmRlIHN0YW5kYWFyZGluc3RlbGxpbmcpLiBXZWVyZ2F2ZSB2YW4gZGUgRUNITyBPRkYgb3BkcmFjaHQga2FuIHdvcmRlbiB2b29ya29tZW4gZG9vclxuXApoZXQgdGUgbGF0ZW4gdm9vcmFmZ2FhbiBkb29yIGhldCBALXRla2VuLlxuIgoKICBXQ01EX0VSQVNFLCAgIlVpdGxlZyBiaWogRVJBU0VcbiIKCiAgV0NNRF9GT1IsCiJEZSBGT1Igb3BkcmFjaHQgd29yZHQgZ2VicnVpa3Qgb20gZWVuIG9wZHJhY2h0IHVpdCB0ZSB2b2VyZW4gdm9vciBpZWRlciB2YW4gZWVuIHZlcnphbWVsaW5nIGJlc3RhbmRlbi5cblwKXG5cClN5bnRheDogRk9SICV2YXJpYWJlbGUgSU4gKHZlcnphbWVsaW5nKSBETyBvcGRyYWNodFxuXApcblwKSW4gY21kIGlzIGhldCBuaWV0IHZlcmVpc3Qgb20gaGV0ICUtdGVrZW4gaW4gZWVuIEZPUiBvcGRyYWNodCBpbiBlZW4gYmF0Y2hiZXN0YW5kIHRlXG5cCnZlcmR1YmJlbGVuLlxuIgoKICBXQ01EX0dPVE8sCiJEZSBHT1RPIG9wZHJhY2h0IHZlcnBsYWF0c3QgdWl0dm9lcmluZyBuYWFyIGVlbiBhbmRlcmUgb3BkcmFjaHQgYmlubmVuIGVlblxuXApiYXRjaGJlc3RhbmQuXG5cClxuXApIZXQgZG9lbCB2YW4gZWVuIEdPVE8gb3BkcmFjaHQgd29yZHQgYWFuZ2VnZXZlbiBtZXQgZWVuIGxhYmVsLiBEYXQgbGFiZWwgbWFnIHVpdCBtYXhpbWFhbCAyNTUgdGVrZW5zXG5cCmJlc3RhYW4gbWFhciBlciBtb2dlbiBnZWVuIHNwYXRpZXMgaW4gdm9vcmtvbWVuIChkaXQgdmVyc2NoaWx0IGJpaiBhbmRlcmUgYmVzdHVyaW5nc3N5c3RlbWVuKS5cblwKQWxzIGVyIHR3ZWUgb2YgbWVlciBpZGVudGlla2UgbGFiZWxzIGJlc3RhYW4gaW4gZWVuIGJhdGNoYmVzdGFuZCBkYW5cblwKd29yZHQgYWx0aWpkIG5hYXIgZGUgZWVyc3RlIGdlc3Byb25nZW4uIEVlbiBwb2dpbmcgb20gdGUgc3ByaW5nZW4gbmFhciBlZW4gbmlldCBiZXN0YWFuZFxuXApsYWJlbCBiZetpbmRpZ3QgaGV0IHVpdHZvZXJlbiB2YW4gaGV0IGJhdGNoYmVzdGFuZC5cblwKXG5cCkdPVE8gaGVlZnQgZ2VlbiBlZmZlY3QgYWxzIGhldCBpbiBlZW4gaW50ZXJhY3RpZXZlIHNlc3NpZSB3b3JkdCBnZWJydWlrdC5cbiIKCiAgV0NNRF9IRUxQLCAgICJVaXRsZWcgYmlqIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIHdvcmR0IGdlYnJ1aWt0IG9tIGVlbiBvcGRyYWNodCB2b29yd2FhcmRlbGlqayB1aXQgdGUgdm9lcmVuLlxuXApcblwKU3ludGF4OglJRiBbTk9UXSBFWElTVCBiZXN0YW5kc25hYW0gb3BkcmFjaHRcblwKCUlGIFtOT1RdIHRla2VucmVla3MxPT10ZWtlbnJlZWtzMiBvcGRyYWNodFxuXAoJSUYgW05PVF0gRVJST1JMRVZFTCBnZXRhbCBvcGRyYWNodFxuXApcblwKSW4gZGUgdHdlZWRlIHZvcm0gdmFuIGRlIG9wZHJhY2h0IG1vZXRlbiB0ZWtlbnJlZWtzMSBlbiB0ZWtlbnJlZWtzMiB0dXNzZW4gZHViYmVsZVxuXAphYW5oYWxpbmdzdGVrZW4gc3RhYW4uIERlIHZlcmdlbGlqa2luZyBpcyBuaWV0IGdldm9lbGlnIHZvb3IgaGV0IG9uZGVyc2NoZWlkIHR1c3NlblxuXApob29mZC0gZW4ga2xlaW5lIGxldHRlcnMuXG4iCgogIFdDTURfTEFCRUwsICAiTEFCRUwgd29yZHQgZ2VicnVpa3Qgb20gZWVuIHNjaGlqZmxhYmVsIHRlIHdpanppZ2VuLlxuXApcblwKU3ludGF4OiBMQUJFTCBbc2NoaWpmOl1cblwKRGUgb3BkcmFjaHQgdnJhYWd0IHUgb20gZWVuIG5pZXV3IGxhYmVsIGluIHRlIHRpa2tlbiB2b29yIGRlIG9wZ2VnZXZlbiBzY2hpamYuXG5cClUga3VudCBoZXQgbGFiZWwgdmFuIGVlbiBzY2hpamYgdG9uZW4gbWV0IGJlaHVscCB2YW4gZGUgVk9MIG9wZHJhY2h0LlxuIgoKICBXQ01EX01ELCAgICAgIlVpdGxlZyBiaWogTURcbiIKICBXQ01EX01LRElSLCAgIlVpdGxlZyBiaWogTUtESVJcbiIKICBXQ01EX01PVkUsCiJNT1ZFIHZlcnBsYWF0c3QgZWVuIGJlc3RhbmQgb2YgZGlyZWN0b3J5IG5hYXIgZWVuIGFuZGVyZSBwbGVrIGJpbm5lbiBoZXQgYmVzdGFuZHNzeXN0ZWVtLlxuXApcblwKQWxzIGhldCBvbSBlZW4gZGlyZWN0b3J5IGdhYXQgZGFuIHdvcmRlbiBhbGxlIGJlc3RhbmRlbiBlbiBkaXJlY3Rvcmllc1xuXApkYWFyb25kZXIgb29rIHZlcnBsYWF0c3QuXG5cClxuXApNT1ZFIHdlcmt0IG5pZXQgYWxzIGRlIG91ZGUgZW4gbmlldXdlIGxvY2F0aWVzIHppY2ggb3AgdmVyc2NoaWxsZW5kZSBET1Mtc2NoaWp2ZW4gYmV2aW5kZW4uXG4iCgogIFdDTURfUEFUSCwKIlBBVEggdG9vbiBvZiB3aWp6aWd0IGhldCB6b2VrcGFkIHZhbiBjbWQuXG5cClxuXApEZSBvcGRyYWNodCBQQVRIIHRvb250IGhldCBodWlkaWdlIHpvZWtwYWQgKGRlIGJlZ2lud2FhcmRlIHdvcmR0IGluXG5cCmhldCBiZXN0YW5kIGdlbmFhbWQgd2luZS5jb25mIHRvZWdla2VuZCkuIE9tIGhldCB6b2VrcGFkIHRlIHdpanppZ2VuIGxhYXQgdSBkZSBQQVRIXG5cCm9wZHJhY2h0IHZvbGdlbiBkb29yIGRlIG5pZXV3ZSB3YWFyZGUuXG5cClxuXApIZXQgaXMgb29rIG1vZ2VsaWprIG9tIGhldCB6b2VrcGFkIHRlIHdpanppZ2VuIG1ldCBiZWh1bHAgdmFuIGRlIFBBVEggb21nZXZpbmdzdmFyaWFiZWxlLFxuXApiaWogdm9vcmJlZWxkOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSB0b29udCBlZW4gYmVyaWNodCBvcCBoZXQgc2NoZXJtOiAnVG9ldHMgRW50ZXIgb20gZG9vciB0ZSBnYWFuJ1xuXAplbiB3YWNodCB0b3RkYXQgZGUgZ2VicnVpa2VyIGRlIEVudGVyLXRvZXRzIGluZHJ1a3QuIERpdCBpcyB2b29yYWwgaGFuZGlnIGluXG5cCmJhdGNoYmVzdGFuZGVuIG9tIGRlIGdlYnJ1aWtlciBpbiBzdGFhdCB0ZSBzdGVsbGVuIG9tIGRlIHVpdHZvZXIgdmFuIGVlbiB2b29yYWZnYWFuZGUgb3BkcmFjaHRcblwKdGUgYmVraWprZW4sIHZvb3JkYXQgaGV0IHZhbiBoZXQgc2NoZXJtIHNjaHVpZnQuXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHdpanppZ3QgZGUgcHJvbXB0IHZhbiBkZSBvcGRyYWNodHJlZ2VsLlxuXApcblwKRGUgdGVrZW5yZWVrcyB2b2xnZW5kIG9wIGRlIFBST01QVCBvcGRyYWNodCAoZW4gZGUgc3BhdGllIGRpcmVjdCBkYWFybmEpXG5cCnZlcnNjaGlqbnQgdm9vcmFhbiBvcCBkZSByZWdlbCBhbHMgY21kIHdhY2h0IG9wIGludm9lci5cblwKXG5cCkRlIHZvbGdlbmRlIHRla2VucmVla3NlbiBoZWJiZW4gZWVuIHNwZWNpYWxlIGJldGVrZW5pczpcblwKXG5cCiQkICAgIGRvbGxhci10ZWtlbiAgICAgICAgICAgICAkXyAgICBuaWV1d2UgcmVnZWwgICAgICAkYiAgICBwaWpwLXRla2VuICh8KVxuXAokZCAgICBodWlkaWdlIGRhdHVtICAgICAgICAgICAgJGUgICAgZXNjYXBlICAgICAgICAgICAgJGcgICAgZ3JvdGVyLWRhbi10ZWtlbiAoPilcblwKJGwgICAga2xlaW5lci1kYW4tdGVrZW4gKDwpICAgICRuICAgIGh1aWRpZ2Ugc2NoaWpmICAgICRwICAgIGh1aWRpZ2UgZGlyZWN0b3J5XG5cCiRxICAgIGlzLWdlbGlqay10ZWtlbiAoPSkgICAgICAkdCAgICBodWlkaWdlIHRpamQgICAgICAkdiAgICBjbWQgdmVyc2llXG5cClxuXApNZXJrIG9wIGRhdCBoZXQgdWl0dm9lcmVuIHZhbiBkZSBQUk9NUFQgb3BkcmFjaHQgem9uZGVyIGVlbiB0ZWtlbnJlZWtzIGRlXG5cCnByb21wdCB0ZXJ1Z3pldCBuYWFyIGRlIHN0YW5kYWFyZGluc3RlbGxpbmcuIERhdCBpcyBkZSBodWlkaWdlIGRpcmVjdG9yeVxuXAooaW5jbHVzaWVmIHNjaGlqZmFhbmR1aWRpbmcpIGdldm9sZ2QgZWVuIGdyb3Rlci1kYW4tdGVrZW4gKD4pLlxuXAooZGF0IHN0YWF0IGdlbGlqayBhYW4gZGUgb3BkcmFjaHQ6IFBST01QVCAkcCRnKS5cblwKXG5cCkRlIHByb21wdCBrYW4gb29rIGdld2lqemlnZCB3b3JkZW4gdmlhIGRlIFBST01QVCBvbWdldmluZ3N2YXJpYWJlbGUsXG5cCmR1cyBkZSBvcGRyYWNodCAnU0VUIFBST01QVD10ZWtlbnJlZWtzJyBoZWVmdCBoZXR6ZWxmZGUgZWZmZWN0IGFscyAnUFJPTVBUIHRla2VucmVla3MnXG4iCgogIFdDTURfUkVNLAoiRWVuIG9wZHJhY2h0cmVnZWwgZGllIGJlZ2ludCBtZXQgUkVNIChnZXZvbGQgZG9vciBlZW4gc3BhdGllKSB3b3JkdCBuaWV0XG5cCnVpdGdldm9lcmQsIGVuIGthbiBkYWFyb20gd29yZGVuIGdlYnJ1aWt0IGFscyBlZW4gY29tbWVudGFhcnJlZ2VsIGluIGVlbiBiYXRjaGJlc3RhbmQuXG4iCgogIFdDTURfUkVOLCAgICAiVWl0bGVnIGJpaiBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIlVpdGxlZyBiaWogUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJVaXRsZWcgYmlqIFJEXG4iCiAgV0NNRF9STURJUiwgICJVaXRsZWcgYmlqIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIHRvb250IG9mIHdpanppZ3Qgb21nZXZpbmdzdmFyaWFiZWxlbiB2YW4gY21kLlxuXApcblwKU0VUIHpvbmRlciBwYXJhbWV0ZXJzIHRvb250IGFsbGUgb21nZXZpbmdzdmFyaWFiZWxlbi5cblwKXG5cCkRlIHN5bnRheCB2b29yIGhldCBtYWtlbiBvZiB3aWp6aWdlbiB2YW4gZWVuIG9tZ2V2aW5nc3ZhcmlhYmVsZSBpczpcblwKXG5cCiAgICAgIFNFVCA8dmFyaWFibGU+PTx3YWFyZGU+XG5cClxuXAp3YWFyYmlqIDx2YXJpYWJsZT4gZW4gPHdhYXJkZT4gdWl0IHRla2VucmVla3NlbiBiZXN0YWFuLiBFciBtb2dlbiBnZWVuIHNwYXRpZXNcblwKdm9vciBoZXQgaXMtZ2VsaWprLXRla2VuIHN0YWFuLCBub2NoIG1vZ2VuIGVyIGluIGRlIHZhcmlhYmVsZW5hYW1cblwKc3BhdGllcyB2b29ya29tZW4uXG5cClxuXApPbmRlciBXaW5lIHdvcmRlbiBkZSBvbWdldmluZ3N2YXJpYWJlbGVuIHZhbiBoZXQgb25kZXJsaWdnZW5kZSBiZXN0dXJpbmdzc3lzdGVlbVxuXApvcGdlbm9tZW4gaW4gZGUgV2luMzIgb21nZXZpbmcuIEVyIHp1bGxlbiBkYWFyb20gZG9vcmdhYW5zIHZlZWwgbWVlclxuXAp2YXJpYWJlbGVuIGluIHZvb3Jrb21lbiBkYW4gaW4gZWVuIG9vcnNwcm9ua2VsaWprZSBXaW4zMiBpbXBsZW1lbnRhdGllLiBNZXJrIG9wIGRhdCBoZXRcblwKbmlldCBtb2dlbGlqayBpcyBvbSBkZSBvbWdldmluZ3N2YXJpYWJlbGVuIHZhbiBoZXQgb25kZXJsaWdnZW5kZSBiZXN0dXJpbmdzc3lzdGVlbSB0ZVxuXAp3aWp6aWdlbiB2YW51aXQgY21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgd29yZHQgZ2VicnVpa3QgaW4gZWVuIGJhdGNoYmVzdGFuZCBvbSBlZW4gcGFyYW1ldGVyIHRlIHZlcndpamRlcmVuIHZhbiBoZXQgYmVnaW4gdmFuXG5cCmRlIGxpanN0LiBEdXMgZGUgdHdlZWRlIHBhcmFtZXRlciB3b3JkdCBkYW4gZGUgZWVyc3RlLCBlbnpvdm9vcnQuIERlemUgb3BkcmFjaHQgaGVlZnQgZ2VlbiBlZmZlY3RcblwKYWxzIGhpaiB3b3JkdCBhYW5nZXJvZXBlbiB2YW5hZiBkZSBvcGRyYWNodHJlZ2VsLlxuIgoKICBXQ01EX1RJTUUsICAgIlVpdGxlZyBiaWogVElNRVxuIgoKICBXQ01EX1RJVExFLCAgIldpanppZ3QgZGUgbmFhbSB2YW4gaGV0IGNtZC12ZW5zdGVyLCBzeW50YXg6IFRJVExFIFt0ZWtlbnJlZWtzXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxiZXN0YW5kc25hYW0+IGtvcGnrZXJ0IDxiZXN0YW5kc25hYW0+IG5hYXIgaGV0IHVpdHZvZXJhcHBhcmFhdC5cblwKRXIgd29yZHQgbmlldCBnZWNvbnRyb2xlZXJkIG9mIGhldCBiZXN0YW5kIGxlZXNiYXJlIHRla3N0IGJldmF0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSB3b3JkdCBnZWJydWlrdCBvbSBkZSBWRVJJRlktc2NoYWtlbGFhciBhYW4gb2YgdWl0IHRlIHpldHRlbiBvZiBvbSBoZW0gdGUgdGVzdGVuLiBHZWxkaWdlIGFhbnJvZXBlbiB6aWpuOlxuXApcblwKVkVSSUZZIE9OCVpldCBkZSBzY2hha2VsYWFyIGFhblxuXApWRVJJRlkgT0ZGCVpldCBkZSBzY2hha2VsYWFyIHVpdFxuXApWRVJJRlkJCVRvb250IE9OIG9mIE9GRiBuYWFyIGdlbGFuZyBkZSBzdGFuZC5cblwKXG5cCkRlIHZlcmlmeS1zY2hha2VsYWFyIGhlZWZ0IGdlZW4gZnVuY3RpZSBiaW5uZW4gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgdG9vbnQgZGUgdmVyc2llIHZhbiBjbWQgZGllIHUgZHJhYWl0XG4iCgogIFdDTURfVk9MLCAgICAiVWl0bGVnIGJpaiBWT0xcbiIKCiAgV0NNRF9QVVNIRCwgICJQVVNIRCA8ZGlyZWN0b3J5IG5hYW0+IGJld2FhcnQgZGUgaHVpZGlnZSBkaXJlY3Rvcnkgb3AgZWVuXG5cCnN0YXBlbCwgZW4gdmVyYW5kZXJ0IGRhbiBkZSBodWlkaWdlIGRpcmVjdG9yeSBuYWFyIGRlIG9wZ2VnZXZlbiBuYWFtLlxuIgoKICBXQ01EX1BPUEQsICAgIlBPUEQgdmVyYW5kZXJ0IGRlIGh1aWRpZ2UgZGlyZWN0b3J5IG5hYXIgZGUgbWVlc3QgcmVjZW50ZSBkaWVcblwKb3AgZGUgc3RhcGVsIHdlcmQgZ2V6ZXQgbWV0IFBVU0hELlxuIgoKICBXQ01EX01PUkUsICAgIk1PUkUgdG9vbnQgZGUgdWl0dm9lciB2YW4gcHJvZ3JhbW1hJ3Mgb2YgaGVybGVpZGRlIGludm9lciBwZXIgYmxhZHppamRlLlxuIgoKICBXQ01EX0VYSVQsCiJFWElUIGJl62luZGlndCBkZSBsb3BlbmRlIHNlc3NpZSBlbiBrZWVydCB0ZXJ1Z1xuXApuYWFyIGhldCBiZXN0dXJpbmdzc3lzdGVlbSBvZiBkZSBzY2hpbCB2YW4gd2FhcnVpdCBjbWQgd2VyZCBnZXN0YXJ0LlxuIgoKICBXQ01EX0FMTEhFTFAsICJDTUQncyBpbmdlYm91d2RlIG9wZHJhY2h0ZW4gemlqbjpcblwKQVRUUklCXHRcdFRvb24gb2Ygd2lqemlnIERPUyBiZXN0YW5kc2F0dHJpYnV0ZW5cblwKQ0FMTFx0XHRSb2VwIGVlbiBiYXRjaGJlc3RhbmQgYWFuIHZhbnVpdCBlZW4gYW5kZXIgYmVzdGFuZFxuXApDRCAoQ0hESVIpXHRXaWp6aWcgZGUgaHVpZGlnZSBkaXJlY3RvcnlcblwKQ0xTXHRcdFdpcyBoZXQgc2NoZXJtXG5cCkNPUFlcdFx0S29waetlciBlZW4gYmVzdGFuZFxuXApDVFRZXHRcdFdpanppZyBoZXQgaW52b2VyLS91aXR2b2VyYXBwYXJhYXRcblwKREFURVx0XHRUb29uIG9mIHdpanppZyBkZSBzeXN0ZWVtZGF0dW1cblwKREVMIChFUkFTRSlcdFZlcndpamRlciBlZW4gYmVzdGFuZCBvZiBlZW4gdmVyemFtZWxpbmcgdmFuIGJlc3RhbmRlblxuXApESVJcdFx0VG9vbiBkZSBpbmhvdWQgdmFuIGVlbiBkaXJlY3RvcnlcblwKRUNIT1x0XHRLb3Bp62VyIHRla3N0IGRpcmVjdCBuYWFyIGhldCB1aXR2b2VyYXBwYXJhYXRcblwKSEVMUFx0XHRUb29uIGVlbiBrb3J0ZSB1aXRsZWcgb3ZlciBlZW4gb25kZXJ3ZXJwXG5cCk1EIChNS0RJUilcdE1hYWsgZWVuIGRpcmVjdG9yeVxuXApNT1JFXHRcdERpc3BsYXkgb3V0cHV0IGluIHBhZ2VzXG5cCk1PVkVcdFx0VmVycGxhYXRzIGVlbiBiZXN0YW5kLCBlZW4gdmVyemFtZWxpbmcgYmVzdGFuZGVuIG9mIGVlbiBkaXJlY3RvcnlcblwKUEFUSFx0XHRXaWp6aWcgb2YgdG9vbiBoZXQgem9la3BhZFxuXApQUk9NUFRcdFx0V2lqemlnIGRlIHByb21wdFxuXApSRU4gKFJFTkFNRSlcdEhlcm5vZW0gZWVuIGJlc3RhbmRcblwKUkQgKFJNRElSKVx0VmVyd2lqZGVyIGVlbiBkaXJlY3RvcnlcblwKU0VUXHRcdFdpanppZyBvZiB0b29uIGRlIG9tZ2V2aW5nc3ZhcmlhYmVsZW5cblwKVElNRVx0XHRXaWp6aWcgb2YgdG9vbiBkZSBzeXN0ZWVtdGlqZFxuXApUSVRMRVx0XHRXaWp6aWcgZGUgdmVuc3Rlcm5hYW0gdmFuIGRlIENNRC1zZXNzaWVcblwKVFlQRVx0XHRUb29uIGRlIGluaG91ZCB2YW4gZWVuIHRla3N0YmVzdGFuZFxuXApWRVJcdFx0VG9vbiBkZSB2ZXJzaWUgdmFuIENNRFxuXApWT0xcdFx0VG9vbiBoZXQgbGFiZWwgdmFuIGVlbiBzY2hpamZcblwKRVhJVFx0XHRTbHVpdCBDTUQgYWZcblxuXAp0eXBlIEhFTFAgPG9wZHJhY2h0PiB2b29yIG1lZXIgaW5mb3JtYXRpZSBvdmVyIGJvdmVuZ2Vub2VtZGUgb3BkcmFjaHRlblxuIgoKICBXQ01EX0NPTkZJUk0sICJCZW50IHUgemVrZXIiCiAgV0NNRF9ZRVMsICJKIgogIFdDTURfTk8sICJOIgogIFdDTURfTk9BU1NPQywgIkJlc3RhbmRzIGFzc29jaWF0aWUgb250YnJlZWt0IHZvb3IgZXh0ZW50aWUgJXNcbiIKICBXQ01EX05PRlRZUEUsICJHZWVuIG9wZW4gY29tbWFuZG8gdmVyYm9uZGVuIG1ldCBiZXN0YW5kIHR5cGUgJyVzJ1xuIgogIFdDTURfT1ZFUldSSVRFLCAiT3ZlcnNjaHJpamYgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTWVlci4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJSZWdlbCBpbiBCYXRjaCBwcm9jZXMgbW9nZWxpamsgYWZnZWJyb2tlbi4gV2UgZ2VicnVpa2VuOlxuIgogIFdDTURfTllJLCAiTm9nIE5pZXQgR2XvbXBsZW1lbnRlZXJkXG5cbiIKICBXQ01EX05PQVJHLCAiQXJndW1lbnQgb250YnJlZWt0XG4iCiAgV0NNRF9TWU5UQVhFUlIsICJGb3V0IGluIGRlIHN5bnRheFxuIgogIFdDTURfRklMRU5PVEZPVU5ELCAiJXMgOiBCZXN0YW5kIE5pZXQgR2V2b25kZW5cbiIKICBXQ01EX05PQ01ESEVMUCwgIkdlZW4gaGVscCBiZXNjaGlrYmFhciB2b29yICVzXG4iCiAgV0NNRF9OT1RBUkdFVCwgIkRvZWwgb3BnZWdldmVuIGJpaiBHT1RPIG5pZXQgZ2V2b25kZW5cbiIKICBXQ01EX0NVUlJFTlREQVRFLCAiSHVpZGlnZSBEYXR1bSBpcyAlc1xuIgogIFdDTURfQ1VSUkVOVFRJTUUsICJIdWlkaWdlIFRpamQgaXMgJXNcbiIKICBXQ01EX05FV0RBVEUsICJWb2VyIGRlIG5pZXV3ZSBkYXR1bSBpbjogIgogIFdDTURfTkVXVElNRSwgInZvZXIgZGUgbmlldXdlIHRpamQgaW46ICIKICBXQ01EX01JU1NJTkdFTlYsICJPbWdldmluZ3MgdmFyaWFibGUgJXMgbmlldCBnZWRlZmluaWVlcmRcbiIKICBXQ01EX1JFQURGQUlMLCAiT3BlbmVuIHZhbiAnJXMnIGlzIG1pc2x1a3RcbiIKICBXQ01EX0NBTExJTlNDUklQVCwgIk9ubW9nZWxpamsgb20gZWVuIGJhdGNoIGxhYmVsIGFhbiB0ZSByb2VwZW4gdmFuIGJ1aXRlbiBlZW4gYmF0Y2ggc2NyaXB0XG4iCiAgV0NNRF9BTEwsICJBIgogIFdDTURfREVMUFJPTVBULCAiJXMsIFZlcndpamRlcmVuIgogIFdDTURfRUNIT1BST01QVCwgIkVjaG8gc3RhYXQgJXNcbiIKICBXQ01EX1ZFUklGWVBST01QVCwgIlZlcmlmeSBzdGFhdCAlc1xuIgogIFdDTURfVkVSSUZZRVJSLCAiVmVyaWZ5IG1vZXQgT04gb2YgT0ZGIHppam5cbiI7CiAgV0NNRF9BUkdFUlIsICJQYXJhbWV0ZXIgb25qdWlzdFxuIgogIFdDTURfVk9MVU1FREVUQUlMLCAiU2NoaWpmIGluIGRyaXZlICVjIGlzICVzXG5TY2hpamYgU2VyaWVudW1tZXIgaXMgJTA0eC0lMDR4XG5cbiIKICBXQ01EX1ZPTFVNRVBST01QVCwgIlNjaGlqZiBuYWFtICgxMSBrYXJha3RlcnMsIEVOVEVSIHZvb3IgZ2Vlbik/IgogIFdDTURfTk9QQVRILCAiUEFUSCBuaWV0IGdldm9uZGVuXG4iCiAgV0NNRF9BTllLRVksIkRydWsgb3AgZGUgUmV0dXJuIHRvZXRzIG9tIHZlcmRlciB0ZSBnYWFuOiAiCiAgV0NNRF9DT05TVElUTEUsIldpbmUgQ29tbWFuZCBQcm9tcHQiCiAgV0NNRF9WRVJTSU9OLCJDTUQgVmVyc2llICVzXG5cbiIKICBXQ01EX01PUkVQUk9NUFQsICJNZWVyPyAiCiAgV0NNRF9MSU5FVE9PTE9ORywgIlRoZSBpbnB1dCBsaW5lIGlzIHRvbyBsb25nLlxuIgp9Cg==