LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBHZXJtYW4gTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNCBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIkhpbGZlIGb8ciBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxCYXRjaGRhdGVpbmFtZT4gd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIEJlZmVobGUgYXVzXG5cCmVpbmVyIGFuZGVyZW4gQmF0Y2hkYXRlaSBhdXN6dWb8aHJlbi4gV2VubiBkaWUgQmF0Y2hkYXRlaSBleGlzaWVydCwga2VocnRcblwKZGllIEtvbnRyb2xsZSB6dSBkZXIgRGF0ZWkgenVy/GNrLCBkaWUgc2llIGdlcnVmZW4gaGF0LiBEZXIgQ0FMTCBCZWZlaGwga2FublxuXApQYXJhbWV0ZXIgenUgZGVyIHJ1ZmVuZGVuIFByb3plZHVyZSD8YmVydHJhZ2VuLlxuXApcblwKxG5kZXJ1bmdlbiBm/HIgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzLCBVbWdlYnVuZ3N2YXJpYWJsZW4gdXN3LiB3ZXJkZW4gaW5cblwKZGVyIGdlcnVmZW5lbiBQcm96ZWR1ciBnZW1hY2h0LCBkaWUgc2llIHZvbiBkZXIgYXVmZ2VydWZlbmVuIGdlZXJidCBoYXQuXG4iCgogIFdDTURfQ0QsICAgICAiSGlsZmUgZvxyIENEXG4iCiAgV0NNRF9DSERJUiwgICJIaWxmZSBm/HIgQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJIaWxmZSBm/HIgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGlsZmUgZvxyIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhpbGZlIGb8ciBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIaWxmZSBm/HIgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIaWxmZSBm/HIgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPFplaWNoZW5rZXR0ZT4gemVpZ3QgZGllIDxaZWljaGVua2V0dGU+IGF1ZiBkZW0gYWt0dWVsbGVuIFRlcm1pbmFsZ2Vy5HQuXG5cClxuXApFQ0hPIE9OIGJld2lya3QsIGRhc3MgYWxsZSBuYWNoZm9sZ2VuZGVuIEJlZmVobGUgaW4gZWluZXIgQmF0Y2hkYXRlaSB6dWVyc3RcblwKYXVmIGRlbSBUZXJtaW5hbGdlcuR0IGFuZ2V6ZWlndCB1bmQgZGFuYWNoIGF1c2dlZvxocnQgd2VyZGVuLlxuXApcblwKRUNITyBPRkYga2VocnQgZGVuIEVmZmVrdCBkZXMgdm9yaGVyaWdlbiBFQ0hPIE9OIChFQ0hPIGlzdCBzdGFuZGFyZG3kc3NpZ1xuXAphdWYgT0ZGKSB1bS4gVW0gZGVuIEVDSE8gT0ZGIEJlZmVobCBuaWNodCBhbnplaWdlbiB6dSBsYXNzZW4sIGthbm4gdm9yIGRlc3NlblxuXAplaW4gQCBaZWljaGVuIGdlc2V0enQgd2VyZGVuLlxuIgoKICBXQ01EX0VSQVNFLCAgIkhpbGZlIGb8ciBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkRlciBGT1IgQmVmZWhsIHdpcmQgZ2VudXR6dCwgdW0gZWluZW4gQmVmZWhsIGb8ciBlaW5lIE1lbmdlIHZvbiBEYXRlaWVuXG5cCmVpbnplbG4gYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6IEZPUiAlVmFyaWFibGUgSU4gKHNldCkgRE8gQmVmZWhsXG5cClxuXApEaWUgQW5mb3JkZXJ1bmcgZGFzICUgWmVpY2hlbiB6dSB2ZXJkb3BwZWxuLCBzb2JhbGQgRk9SIGluIGVpbmVyIEJhdGNoZGF0ZWlcblwKYmVudXR6dCB3aXJkLCBleGlzdGllcnQgaW0gQ01EIG5pY2h0LlxuIgoKICBXQ01EX0dPVE8sCiJEZXIgR09UTyBCZWZlaGwgdHJhbnNmZXJpZXJ0IGRpZSBBdXNm/GhydW5nIHp1IGVpbmVyIGFuZGVyZW4gU3RlbGxlIGluIGVpbmVyXG5cCkJhdGNoZGF0ZWkuXG5cClxuXApEaWUgQmV6ZWljaG51bmcsIGRpZSBkYXMgWmllbCBlaW5lcyBHT1RPJ3MgaXN0LCBrYW5uIGJpcyB6dSAyNTUgWmVpY2hlbiBsYW5nXG5cCnNlaW4sIGRhcmYgYWJlciBrZWluZSBMZWVyemVpY2hlbiBlbnRoYWt0ZW4gKGRpZXMgaXN0IGRlciBVbnRlcnNjaGllZCB6dVxuXAphbmRlcmVuIEJldHJpZWJzc3lzdGVtZW4pLiBXZW5uIHp3ZWkgb2RlciBtZWhyIGlkZW50aXNjaGUgQmV6ZWljaG51bmdlbiBpblxuXAplaW5lciBCYXRjaGRhdGVpIGV4aXN0aWVyZW4sIGRhbm4gd2lyZCBpbW1lciB6dSBkZXIgZXJzdGVuIEJlemVpY2hudW5nXG5cCmdlc3BydW5nZW4uIFZlcnN1Y2h0IEdPVE8genUgZWluZXIgbmljaHQgdm9yaGFuZGVuIEJlemVpY2hudW5nIHp1IHNwcmluZ2VuLFxuXApiZWVuZGV0IHNpY2ggZGllIEF1c2b8aHJ1bmcgZGVyIEJhdGNoZGF0ZWkuXG5cClxuXApHT1RPIGhhdCBrZWluZSBBdXN3aXJrdW5nZW4sIHdlbm4gZXMgaW50ZXJha3RpdiBnZW51dHp0IHdpcmQuXG4iCgogIFdDTURfSEVMUCwgICAiSGlsZmUgZvxyIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIHdpcmQgYmVudXR6dCwgdW0gZWluZW4gQmVmZWhsIGJlZGluZ3QgYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6CUlGIFtOT1RdIEVYSVNUIERhdGVpbmFtZSBCZWZlaGxcblwKCUlGIFtOT1RdIFplaWNoZW5rZXR0ZTE9PVplaWNoZW5rZXR0ZTIgQmVmZWhsXG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIE51bW1lciBCZWZlaGxcblwKXG5cCkluIGRlciB6d2VpdGVuIEZvcm0gZGVzIEJlZmVobHMsIG38c3NlbiBkaWUgYmVpZGVuIFplaWNoZW5rZXR0ZW4gaW4gZG9wcGVsdGVuXG5cCkFuZvxocnVuZ3N6ZWljaGVuIHN0ZWhlbi4gRGVyIFZlcmdsZWljaCBhY2h0ZXQgbmljaHQgYXVmIGRpZSBHcm/fLSB1bmRcblwKS2xlaW5zY2hyZWlidW5nLlxuIgoKICBXQ01EX0xBQkVMLCAgCiJMQUJFTCB3aXJkIGJlbnV0enQsIHVtIGRpZSBMYXVmd2Vya3NiZXplaWNobnVuZyBmZXN0enVsZWdlbi5cblwKXG5cClN5bnRheDogTEFCRUwgW0xhdWZ3ZXJrOl1cblwKXG5cCkRlciBCZWZlaGwgd2FydGV0IGF1ZiBkaWUgRWluZ2FiZSBlaW5lciBuZXVlbiBCZXplaWNobnVuZyBm/HIgZGFzIGFuZ2VnZWJlbmVcblwKTGF1ZndlcmsuIFNpZSBr9m5uZW4gc2ljaCBhdWNoIGRpZSBMYXVmd2Vya3NiZXplaWNudW5nIG1pdCBkZW0gVk9MIC0gQmVmZWhsXG5cCmFuemVpZ2VuIGxhc3Nlbi5cbiIKCiAgV0NNRF9NRCwgICAgICJIaWxmZSBm/HIgTURcbiIKICBXQ01EX01LRElSLCAgIkhpbGZlIGb8ciBNS0RJUlxuIgogIFdDTURfTU9WRSwKIk1PVkUgdmVyc2NoaWVidCBlaW5lIERhdGVpIG9kZXIgZWluIFZlcnplaWNobmlzIHp1IGVpbmVtIG5ldWVuIFB1bmt0IGltXG5cCkRhdGVpc3lzdGVtLlxuXApcblwKSXN0IGRhcyB6dSB2ZXJzY2hpZWJlbmRlIE9iamVrdCBlaW4gVmVyemVpY2huaXMsIGRhbm4gd2VyZGVuIGFsbGUgRGF0ZWllbiB1bmRcblwKVW50ZXJ2ZXJ6ZWljaG5pc3NlIHVudGVyaGFsYiBkZXMgT2JqZWt0ZXMgZ2VuYXVzbyB2ZXJzY2hvYmVuLlxuXApcblwKTU9WRSBzY2hs5Gd0IGZlaGwsIHdlbm4gZGllIGFsdGUgdW5kIGRpZSBuZXVlIFBvc2l0aW9uIGF1ZiB2ZXJzY2hpZWRlbmVuIERPU1xuXApMYXVmd2Vya2VuIHNpbmQuXG4iCgogIFdDTURfUEFUSCwKIlBBVEgg5G5kZXJ0IG9kZXIgemVpZ3QgZGVuIENNRCBTdWNocGZhZCBhbi5cblwKXG5cCk5hY2ggZGVyIEVpbmdhYmUgdm9uIFBBVEgsIHdpcmQgZGllIGFrdHVlbGxlIFBBVEggRWluc3RlbGx1bmcgYW5nZXplaWd0XG5cCihuYWNoIGRlbSBTdGFydCB3aXJkIGRlciBXZXJ0IGF1cyBkZXIgd2luZS5jb25mIERhdGVpIGdlbm9tbWVuKS4gVW0gZGllXG5cCkVpbnN0ZWxsdW5nZW4genUg5G5kZXJuLCBtdXNzIG5hY2ggZGVtIFBBVEggQmVmZWhsIGRlciBuZXVlIFdlcnQgYW5nZWdlYmVuXG5cCndlcmRlblxuXApcblwKRXMgaXN0IGF1Y2ggbfZnbGljaCBkZW4gUEFUSCBtaXQgSGlsZmUgZGVyIFBBVEggVW1nZWJ1bmdzdmFyaWFibGUgenVcblwKbW9kaWZpemllcmVuLiBadW0gQmVpc3BpZWw6XG5cCgkJUEFUSCAlUEFUSCU7YzpcXHRlbXAgXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBs5HNzdCBlaW5lIE1lbGR1bmcgYXVmIGRlbSBCaWxkc2NoaXJtIGVyc2NoZWluZW5cblwKJ1ByZXNzIFJldHVybiBrZXkgdG8gY29udGludWUnIHVuZCB3YXJ0ZXQgZGFyYXVmLCBkYXNzIGRlciBOdXR6ZXIgZGllXG5cClJldHVybi9FbnRlci1UYXN0ZSBkcvxja3QuIEVzIHdpcmQgaGF1cHRz5GNobGljaCBpbiBCYXRjaGRhdGVpZW4gZ2VudXR6dCxcblwKdW0gZGVtIE51dHplciB6dSBlcmxhdWJlbiwgZGllIEF1c2dhYmUgZWluZXMgdm9yaGVyaWdlbiBCZWZlaGxzIHp1IGxlc2VuLFxuXApiZXZvciBlcyBkdXJjaCBTY3JvbGxlbiB2b20gQmlsZHNjaGlybSB2ZXJzY2h3aW5kZXQuXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHNldHp0IGRlbiBCZWZlaGxzemVpbGVucHJvbXB0LlxuXApcblwKRGllIFplaWNoZW5rZXR0ZSwgZGllIGRlbSBQUk9NUFQgQmVmZWhsIGZvbGd0ICh1bmQgZGVtIExlZXJ6ZWljaGVuXG5cCnVubWl0dGVsYmFyIGRhbmFjaCksIGVyc2NoZWludCBhbSBaZWlsZW5hbmZhbmcsIHdlbm4gQ01EIGF1ZiBkaWUgRWluZ2FiZVxuXAp3YXJ0ZXQuXG5cClxuXApEaWUgbmFjaGZvbGdlbmRlbiBaZWljaGVuIGhhYmVuIGVpbmUgYmVzb25kZXJlIEJlZGV1dHVuZzpcblwKXG5cCiQkICAgIERvbGxhcnplaWNoZW4gICAgICAgJF8gICAgWmVpbGVudm9yc2NodWIgICAgICAkYiAgICBQaXBlIFplaWNoZW4gKHwpXG5cCiRkICAgIGFrdHVlbGxlcyBEYXR1bSAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICA+IFplaWNoZW5cblwKJGwgICAgPCBaZWljaGVuICAgICAgICAgICAkbiAgICBha3V0ZWxsZXMgTGF1ZndlcmsgICRwICAgIGFrdHVlbGxlciBQZmFkXG5cCiRxICAgIEdsZWljaGhlaXRzemVpY2hlbiAgJHQgICAgYWt0dWVsbGUgWmVpdCAgICAgICAkdiAgICBjbWQgVmVyc2lvblxuXApcblwKSGlud2VpczogRGllIEVpbmdhYmUgZGVzIFBST01QVCBCZWZlaGxzIG9obmUgZWluZSBQcm9tcHQtWmVpY2hlbmtldHRlLCBzZXR6dFxuXApkZW4gUHJvbXB0IHp1IGRlbiBTdGFuZGFyZHdlcnQgenVy/GNrLCB3YXMgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzIChpbmtsdXNpdmVcblwKZGVtIGFrdHVlbGxlbiBMYXVmd2Vya3NidWNoc3RhYmVuKSBnZWZvbGd0IHZvbiBlaW5lbiBHcvbfZXJ6ZWljaGVuICg+KVxuXAooZ2VuYXUgd2llIGRlciBQUk9NUFQgJHAkZyBCZWZlaGwpLlxuXApcblwKRGVyIFByb21wdCBrYW5uIGF1Y2ggZ2XkbmRlcnQgd2VyZGVuIGR1cmNoIGRhcyDEbmRlcm4gZGVyIFBST01QVFxuXApVbWdlYnVuZ3N2YXJpYWJsZSwgc28gaGF0IGRlciBCZWZlaGwgJ1NFVCBQUk9NUFQ9dGV4dCcgZGllIGdsZWljaGUgQXVzd2lya3VuZ1xuXAp3aWUgJ1BST01QVCB0ZXh0Jy5cbiIKCiAgV0NNRF9SRU0sCiJCZWdpbm50IGVpbmUgQmVmZWhsc3plaWxlIG1pdCBSRU0gKGdlZm9sZ3Qgdm9uIGVpbmVtIExlZXJ6ZWljaGVuKSwgd2lyZFxuXAprZWluZSBBa3Rpb24gYXVzZ2Vm/GhydCB1bmQga2FubiBkZXNoYWxiIGF1Y2ggYWxzIEtvbW1lbnRhciBpbiBlaW5lclxuXApCYXRjaGRhdGVpIGdlbnV0enQgd2VyZGVuLlxuIgoKICBXQ01EX1JFTiwgICAgIkhpbGZlIGb8ciBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkhpbGZlIGb8ciBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkhpbGZlIGb8ciBSRFxuIgogIFdDTURfUk1ESVIsICAiSGlsZmUgZvxyIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIORuZGVydCBvZGVyIHplaWd0IGRpZSBDTUQgVW1nZWJ1bmdzdmFyaWFibGVuIGFuLlxuXApcblwKU0VUIG9obmUgUGFyYW1ldGVyIHplaWd0IGFsbGUgYWt0dWVsbGVuIFVtZ2VidW5nc3ZhcmlhYmxlbiBhbi5cblwKXG5cClVtIGVpbmUgVW1nZWJ1bmdzdmFyaWFibGUgenUgZXJzY2hhZmZlbiBvZGVyIHp1IORuZGVybiwgaXN0IGRlciBTeW50YXggbvZ0aWc6XG5cClxuXAogICAgICBTRVQgPFZhcmlhYmxlPj08V2VydD5cblwKXG5cCldvYmVpIDxWYXJpYWJsZT4gdW5kIDxXZXJ0PiBaZWljaGVua2V0dGUgc2luZC4gRXMgbfxzc2VuIGtlaW5lIExlZXJ6ZWljaGVuIHZvclxuXApkZW0gR2xlaWNoaGVpdHN6ZWljaGVuIHNlaW4sIG5vY2ggbXVzcyBkZXIgVmFyaWFibGVubmFtZSBpbiBBbmb8aHJ1bmdzemVpY2hlblxuXAplaW5nZXNjaGxvc3NlbiBzZWluLlxuXApcblwKSW4gV2luZSB3ZXJkZW4gZGllIFVtZ2VidW5nc3ZhcmlhYmxlbiBkZXMgZGFydW50ZXJsaWVnZW5kZW4gQmV0cmllYnNzeXN0ZW1zXG5cCm1pdCBpbiBkaWUgV2luMzIgVW1nZWJ1bmcgZWluZ2VidW5kZW4sIGRlc2hhbGIgZ2lidCBlcyBnZXf2aG5saWNoIG1laHIgV2VydGVcblwKYWxzIGVzIHNpZSBpbiBlaW5lciB1cnNwcvxuZ2xpY2hlbiBXaW4zMiBSZWFsaXNpZXJ1bmcgZ+RiZS4gQW5tZXJrdW5nOiBFcyBpc3RcblwKbmljaHQgbfZnbGljaCBkaWUgVW1nZWJ1bmdzdmFyaWFibGVuIGRlcyBCZXRyaWVic3N5c3RlbXMgdm9tIENNRCBhdXMgenVcblwKYmVlaW5mbHVzc2VuLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIGVpbmVuIFBhcmFtZXRlciB2b20gQW5mYW5nIGRlclxuXApMaXN0ZSB6dSBlbnRmZXJuZW4sIHNvIGRhcyBkZXIgUGFyYW1ldGVyIDIgenUgUGFyYW1ldGVyIDEgd2lyZCB1bmQgc28gd2VpdGVyLlxuXApFcyBoYXQga2VpbmUgQXVzd2lya3VuZ2VuLCB3ZW5uIGVzIHZvbiBkZXIgQmVmZWhsc3plaWxlIGdlcnVmZW4gd2lyZC5cbiIKCiAgV0NNRF9USU1FLCAgICJIaWxmZSBm/HIgVElNRVxuIgoKICBXQ01EX1RJVExFLAoiU2V0enQgZGVuIEZlbnN0ZXJ0aXRlbCBm/HIgZGFzIENNRCAtIEZlbnN0ZXIuXG5cClxuXApTeW50YXg6IFRJVExFIFtaZWljaGVua2V0dGVdXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPERhdGVpPiBrb3BpZXJ0IDxEYXRlaT4genUgZGVtIEtvbnNvbGVuZ2Vy5HQgKG9kZXIgZG9ydGhpbiwgd29oaW5cblwKZGllcyB1bWdlbGVpdGV0IHd1cmRlKS4gRXMgd2lyZCBrZWluZSDcYmVycHL8ZnVuZyB2b3JnZW5vbW1lbiwgb2IgZGllXG5cCkRhdGVpIGxlc2JhcmVyIFRleHQgaXN0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSB3aXJkIGJlbnV0enQsIHVtIGRhcyBWZXJpZnkgRmxhZyB6dSBzZXR6ZW4sIHp1IGz2c2NoZW4gb2RlciB6dVxuXAp0ZXN0ZW4uIEf8bHRpZ2UgRWluZ2FiZW4gc2luZDpcblwKXG5cClZFUklGWSBPTglTZXR6dCBkYXMgRmxhZ1xuXApWRVJJRlkgT0ZGCUz2c2NodCBkYXMgRmxhZ1xuXApWRVJJRlkJCVplaWd0IGFuLCBvYiBPTiBvZGVyIE9GRiB2ZXJ3ZW5kZXQgd2lyZC5cblwKXG5cCkRhcyBWZXJpZnkgRmxhZyBoYXQga2VpbmUgRnVua3Rpb24gaW4gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgemVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIENNRCBhbi5cbiIKCiAgV0NNRF9WT0wsICAgICJIaWxmZSBm/HIgVk9MXG4iCgogIFdDTURfUFVTSEQsICAiUFVTSEQgPFZlcnplaWNobmlzbmFtZT4gc3BlaWNoZXJ0IGRhcyBha3R1ZWxsZVxuXApWZXJ6ZWljaG5pcyBhdWYgZWluZW0gU3RhY2sgdW5kIHdlY2hlc2VsdCBkYXMgQXJiZWl0c3ZlcnplaWNobmlzXG5cCnp1IGRlbSBhbmdlZ2ViZW5lbi5cbiIKCiAgV0NNRF9QT1BELCAgICJQT1BEIHdlY2hzZWx0IGRhcyBBcmJlaXRzdmVyemVpY2huaXMgenUgZGVtIHp1bGV0enRcblwKbWl0IFBVU0hEIGdlc3BlaWNoZXJ0ZW4uXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgYmVlbmRldCBkaWUgYWt0dWVsbGUgQmVmZWhsc3NpdHp1bmcgdW5kIGtlaHJ0IHp1bVxuXApCZXRyaWVic3N5c3RlbSBvZGVyIGRlciBTaGVsbCB6dXL8Y2ssIHZvbiBkZXIgQ01EIGdlc3RhcnQgd3VyZGUuXG4iCgoKICAxMDAwLCAiQ01EIGVpbmdlYmF1dGVuIEJlZmVobGUgc2luZDpcblwKQVRUUklCXHRcdFplaWd0IGFuIG9kZXIg5G5kZXJ0IGRpZSBET1MgRGF0ZWllaWdlbnNjaGFmdGVuXG5cCkNBTExcdFx0UnVmdCBlaW5lIEJhdGNoLURhdGVpIGlubmVyaGFsYiBlaW5lciBhbmRlcmVuIGF1ZlxuXApDRCAoQ0hESVIpXHRXZWNoc2VsdCBpbiBkYXMgVmVyemVpY2huaXNcblwKQ0xTXHRcdEz2c2NodCBkZW4gSW5oYWx0IGRlciBLb25zb2xlXG5cCkNPUFlcdFx0S29waWVydCBlaW5lIERhdGVpXG5cCkNUVFlcdFx0xG5kZXJ0IGRhcyBFaW5nYWJlL0F1c2dhYmUgLSBHZXLkdFxuXApEQVRFXHRcdFplaWd0IGFuIG9kZXIg5G5kZXJ0IGRhcyBTeXN0ZW1kYXR1bVxuXApERUwgKEVSQVNFKVx0TPZzY2h0IGVpbmUgb2RlciBtZWhyZXJlIERhdGVpZW5cblwKRElSXHRcdExpc3RldCBkZW4gSW5oYWx0IGVpbmVzIFZlcnplaWNobmlzc2VzXG5cCkVDSE9cdFx0S29waWVydCBkZW4gVGV4dCBkaXJla3QgenVyIEtvbnNvbGVuYXVzZ2FiZVxuXApIRUxQXHRcdFplaWd0IGRldGFsaWVydGUgSW5mb3JtYXRpb25lbiB6dSBlaW5lbiBUaGVtYVxuXApNRCAoTUtESVIpXHRFcnpldWd0IGVpbiBVbnRlcnZlcnplaWNobmlzXG5cCk1PUkVcdFx0RGlzcGxheSBvdXRwdXQgaW4gcGFnZXNcblwKTU9WRVx0XHRCZXdlZ3QgZWluZSBvZGVyIG1laHJlcmUgRGF0ZWllbiBvZGVyIGVpbmVuIFZlcnplaWNobmlzYmF1bVxuXApQQVRIXHRcdFNldHp0IG9kZXIgemVpZ3QgZGVuIFN1Y2hwZmFkIGFuXG5cClBST01QVFx0XHTEbmRlcnQgZGVuIEJlZmVobHN6ZWlsZW5wcm9tcHRcblwKUkVOIChSRU5BTUUpXHRCZW5lbm50IGVpbmUgRGF0ZWkgdW1cblwKUkQgKFJNRElSKVx0TPZzY2h0IGVpbiBVbnRlcnZlcnplaWNobmlzXG5cClNFVFx0XHRTZXR6dCBvZGVyIHplaWd0IGRpZSBVbWdlYnVuZ3N2YXJpYWJsZW4gYW5cblwKVElNRVx0XHRTZXR6dCBvZGVyIHplaWd0IGRpZSBha3R1ZWxsZSBTeXN0ZW16ZWl0IGFuXG5cClRJVExFXHRcdFNldHp0IGRlbiBGZW5zdGVydGl0ZWwgZvxyIGRpZSBDTUQgLSBTaXR6dW5nXG5cClRZUEVcdFx0R2lidCBkZW4gSW5oYWx0IGVpbmVyIFRleHRkYXRlaSBhdXNcblwKVkVSXHRcdFplaWd0IGRpZSBha3R1ZWxsZSBWZXJzaW9uIHZvbiBDTUQgYW5cblwKVk9MXHRcdFplaWd0IGRpZSBCZXplaWNobnVuZyBlaW5lcyBMYXVmd2Vya2VzIGFuXG5cCkVYSVRcdFx0QmVlbmRldCBkZW4gQ01EXG5cblwKR2ViZW4gU2llIEhFTFAgPEJlZmVobD4gZWluLCBkYW1pdCBTaWUgd2VpdGVyZSBJbmZvcm1hdGlvbmVuIGb8ciBlaW5lbiBkZXJcblwKb2JpZ2VuIEJlZmVobGUgZXJoYWx0ZW4uXG4iCgogIFdDTURfQ09ORklSTSwgIlNpbmQgc2llIHNpY2hlciIKICBXQ01EX1lFUywgIkoiCiAgV0NNRF9OTywgIk4iCiAgV0NNRF9OT0FTU09DLCAiVmVya278cGZ1bmcgZvxyIERhdGVpZW5kdW5nICVzIGZlaGx0XG4iCiAgV0NNRF9OT0ZUWVBFLCAiS2VpbiBCZWZlaGwgenVtINZmZm5lbiBm/HIgRGF0ZWl0eXAgJyVzJ1xuIgogIFdDTURfT1ZFUldSSVRFLCAiT3ZlcndyaXRlICVzIgogIFdDTURfTU9SRVNUUiwgIk1vcmUuLi4iCiAgV0NNRF9UUlVOQ0FURURMSU5FLCAiTGluZSBpbiBCYXRjaCBwcm9jZXNzaW5nIHBvc3NpYmx5IHRydW5jYXRlZC4gVXNpbmc6XG4iCiAgV0NNRF9OWUksICJOb3QgWWV0IEltcGxlbWVudGVkXG5cbiIKICBXQ01EX05PQVJHLCAiQXJndW1lbnQgbWlzc2luZ1xuIgogIFdDTURfU1lOVEFYRVJSLCAiU3ludGF4IGVycm9yXG4iCiAgV0NNRF9GSUxFTk9URk9VTkQsICIlcyA6IEZpbGUgTm90IEZvdW5kXG4iCiAgV0NNRF9OT0NNREhFTFAsICJObyBoZWxwIGF2YWlsYWJsZSBmb3IgJXNcbiIKICBXQ01EX05PVEFSR0VULCAiVGFyZ2V0IHRvIEdPVE8gbm90IGZvdW5kXG4iCiAgV0NNRF9DVVJSRU5UREFURSwgIkN1cnJlbnQgRGF0ZSBpcyAlc1xuIgogIFdDTURfQ1VSUkVOVFRJTUUsICJDdXJyZW50IFRpbWUgaXMgJXNcbiIKICBXQ01EX05FV0RBVEUsICJFbnRlciBuZXcgZGF0ZTogIgogIFdDTURfTkVXVElNRSwgIkVudGVyIG5ldyB0aW1lOiAiCiAgV0NNRF9NSVNTSU5HRU5WLCAiRW52aXJvbm1lbnQgdmFyaWFibGUgJXMgbm90IGRlZmluZWRcbiIKICBXQ01EX1JFQURGQUlMLCAiRmFpbGVkIHRvIG9wZW4gJyVzJ1xuIgogIFdDTURfQ0FMTElOU0NSSVBULCAiQ2Fubm90IGNhbGwgYmF0Y2ggbGFiZWwgb3V0c2lkZSBvZiBhIGJhdGNoIHNjcmlwdFxuIgogIFdDTURfQUxMLCAiQSIKICBXQ01EX0RFTFBST01QVCwgIiVzLCBEZWxldGUiCiAgV0NNRF9FQ0hPUFJPTVBULCAiRWNobyBpcyAlc1xuIgogIFdDTURfVkVSSUZZUFJPTVBULCAiVmVyaWZ5IGlzICVzXG4iCiAgV0NNRF9WRVJJRllFUlIsICJWZXJpZnkgbXVzdCBiZSBPTiBvciBPRkZcbiI7CiAgV0NNRF9BUkdFUlIsICJQYXJhbWV0ZXIgZXJyb3JcbiIKICBXQ01EX1ZPTFVNRURFVEFJTCwgIlZvbHVtZSBpbiBkcml2ZSAlYyBpcyAlc1xuVm9sdW1lIFNlcmlhbCBOdW1iZXIgaXMgJTA0eC0lMDR4XG5cbiIKICBXQ01EX1ZPTFVNRVBST01QVCwgIlZvbHVtZSBsYWJlbCAoMTEgY2hhcmFjdGVycywgRU5URVIgZm9yIG5vbmUpPyIKICBXQ01EX05PUEFUSCwgIlBBVEggbm90IGZvdW5kXG4iCiAgV0NNRF9BTllLRVksIlByZXNzIFJldHVybiBrZXkgdG8gY29udGludWU6ICIKICBXQ01EX0NPTlNUSVRMRSwiV2luZSBDb21tYW5kIFByb21wdCIKICBXQ01EX1ZFUlNJT04sIkNNRCBWZXJzaW9uICVzXG5cbiIKICBXQ01EX01PUkVQUk9NUFQsICJNb3JlPyAiCn0K