LyoKICogV2luZSBjb21tYW5kIHByb21wdCAoRHV0Y2ggcmVzb3VyY2VzKQogKgogKiBDb3B5cmlnaHQgKEMpIDIwMDMgSGFucyBMZWlkZWtrZXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19EVVRDSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRQp7CiAgV0NNRF9BVFRSSUIsICJVaXRsZWcgYmlqIEFUVFJJQlxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPGJhdGNoYmVzdGFuZHNuYWFtPiB3b3JkdCBnZWJydWlrdCBiaW5uZW4gZWVuIGJhdGNoYmVzdGFuZCBvbSBvcGRyYWNodGVuIHVpdFxuXAplZW4gYW5kZXIgYmF0Y2hiZXN0YW5kIGFhbiB0ZSByb2VwZW4uIEFscyBoZXQgYmF0Y2hiZXN0YW5kIGJlc3RhYXQga2VlcnQgZGUgY29udHJvbGUgdGVydWdcblwKbmFhciBoZXQgYmVzdGFuZCBkYXQgaGV0IGFhbnJpZXAuIFRoZSBDQUxMIG9wZHJhY2h0IGthbiBwYXJhbWV0ZXJzIG1lZWdldmVuIGFhbiBkZSBhYW4gdGVcblwKcm9lcGVuIHByb2NlZHVyZS5cblwKXG5cClZlcmFuZGVyaW5nZW4gbS5iLnQgZGlyZWN0b3J5LCBvbWdldmluZ3N2YXJpYWJlbGVuLCBldGMgZGllIHRvdCBzdGFuZCBrb21lbiBiaW5uZW4gZWVuXG5cCmFhbmdlcm9lcGVuIHByb2NlZHVyZSB3b3JkZW4gZ+tlcmZ0IGRvb3IgZGUgYWFucm9lcGVuZGUgcHJvY2VkdXJlLlxuIgoKICBXQ01EX0NELCAgICAgIlVpdGxlZyBiaWogQ0RcbiIKICBXQ01EX0NIRElSLCAgIlVpdGxlZyBiaWogQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgc2Nob29udCBoZXQgc2NoZXJtXG4iCgogIFdDTURfQ09QWSwgICAiVWl0bGVnIGJpaiBDT1BZXG4iCiAgV0NNRF9DVFRZLCAgICJVaXRsZWcgYmlqIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIlVpdGxlZyBiaWogREFURVxuIgogIFdDTURfREVMLCAgICAiVWl0bGVnIGJpaiBERUxcbiIKICBXQ01EX0RJUiwgICAgIlVpdGxlZyBiaWogRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPHRla2VucmVla3M+IGdlZWZ0IDx0ZWtlbnJlZWtzPiB3ZWVyIG9wIGhldCBhY3RpZXZlIHVpdHZvZXJhcHBhcmFhdC5cblwKXG5cCkVDSE8gT04gem9yZ3QgZXJ2b29yIGRhdCBhbGxlIGhpZXJvcCB2b2xnZW5kZSBvcGRyYWNodGVuIGluIGVlbiBiYXRjaGJlc3RhbmQgd29yZGVuIHdlZXJnZWdldmVuXG5cCm9wIGhldCB1aXR2b2VyYXBwYXJhYXQgdm9vcmRhdCB6ZSB3b3JkZW4gdWl0Z2V2b2VyZC5cblwKXG5cCkVDSE8gT0ZGIGtlZXJ0IGhldCBlZmZlY3QgdmFuIGVlbiB2b29yYWZnYWFuZGUgRUNITyBPTiBvbSAoRUNITyBPRkYgaXNcblwKZGUgc3RhbmRhYXJkaW5zdGVsbGluZykuIFdlZXJnYXZlIHZhbiBkZSBFQ0hPIE9GRiBvcGRyYWNodCBrYW4gd29yZGVuIHZvb3Jrb21lbiBkb29yXG5cCmhldCB0ZSBsYXRlbiB2b29yYWZnYWFuIGRvb3IgaGV0IEAtdGVrZW4uXG4iCgogIFdDTURfRVJBU0UsICAiVWl0bGVnIGJpaiBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkRlIEZPUiBvcGRyYWNodCB3b3JkdCBnZWJydWlrdCBvbSBlZW4gb3BkcmFjaHQgdWl0IHRlIHZvZXJlbiB2b29yIGllZGVyIHZhbiBlZW4gdmVyemFtZWxpbmcgYmVzdGFuZGVuLlxuXApcblwKU3ludGF4OiBGT1IgJXZhcmlhYmVsZSBJTiAodmVyemFtZWxpbmcpIERPIG9wZHJhY2h0XG5cClxuXApJbiBjbWQgaXMgaGV0IG5pZXQgdmVyZWlzdCBvbSBoZXQgJS10ZWtlbiBpbiBlZW4gRk9SIG9wZHJhY2h0IGluIGVlbiBiYXRjaGJlc3RhbmQgdGVcblwKdmVyZHViYmVsZW4uXG4iCgogIFdDTURfR09UTywKIkRlIEdPVE8gb3BkcmFjaHQgdmVycGxhYXRzdCB1aXR2b2VyaW5nIG5hYXIgZWVuIGFuZGVyZSBvcGRyYWNodCBiaW5uZW4gZWVuXG5cCmJhdGNoYmVzdGFuZC5cblwKXG5cCkhldCBkb2VsIHZhbiBlZW4gR09UTyBvcGRyYWNodCB3b3JkdCBhYW5nZWdldmVuIG1ldCBlZW4gbGFiZWwuIERhdCBsYWJlbCBtYWcgdWl0IG1heGltYWFsIDI1NSB0ZWtlbnNcblwKYmVzdGFhbiBtYWFyIGVyIG1vZ2VuIGdlZW4gc3BhdGllcyBpbiB2b29ya29tZW4gKGRpdCB2ZXJzY2hpbHQgYmlqIGFuZGVyZSBiZXN0dXJpbmdzc3lzdGVtZW4pLlxuXApBbHMgZXIgdHdlZSBvZiBtZWVyIGlkZW50aWVrZSBsYWJlbHMgYmVzdGFhbiBpbiBlZW4gYmF0Y2hiZXN0YW5kIGRhblxuXAp3b3JkdCBhbHRpamQgbmFhciBkZSBlZXJzdGUgZ2VzcHJvbmdlbi4gRWVuIHBvZ2luZyBvbSB0ZSBzcHJpbmdlbiBuYWFyIGVlbiBuaWV0IGJlc3RhYW5kXG5cCmxhYmVsIGJl62luZGlndCBoZXQgdWl0dm9lcmVuIHZhbiBoZXQgYmF0Y2hiZXN0YW5kLlxuXApcblwKR09UTyBoZWVmdCBnZWVuIGVmZmVjdCBhbHMgaGV0IGluIGVlbiBpbnRlcmFjdGlldmUgc2Vzc2llIHdvcmR0IGdlYnJ1aWt0LlxuIgoKICBXQ01EX0hFTFAsICAgIlVpdGxlZyBiaWogSEVMUFxuIgoKICBXQ01EX0lGLAoiSUYgd29yZHQgZ2VicnVpa3Qgb20gZWVuIG9wZHJhY2h0IHZvb3J3YWFyZGVsaWprIHVpdCB0ZSB2b2VyZW4uXG5cClxuXApTeW50YXg6CUlGIFtOT1RdIEVYSVNUIGJlc3RhbmRzbmFhbSBvcGRyYWNodFxuXAoJSUYgW05PVF0gdGVrZW5yZWVrczE9PXRla2VucmVla3MyIG9wZHJhY2h0XG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIGdldGFsIG9wZHJhY2h0XG5cClxuXApJbiBkZSB0d2VlZGUgdm9ybSB2YW4gZGUgb3BkcmFjaHQgbW9ldGVuIHRla2VucmVla3MxIGVuIHRla2VucmVla3MyIHR1c3NlbiBkdWJiZWxlXG5cCmFhbmhhbGluZ3N0ZWtlbiBzdGFhbi4gRGUgdmVyZ2VsaWpraW5nIGlzIG5pZXQgZ2V2b2VsaWcgdm9vciBoZXQgb25kZXJzY2hlaWQgdHVzc2VuXG5cCmhvb2ZkLSBlbiBrbGVpbmUgbGV0dGVycy5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCB3b3JkdCBnZWJydWlrdCBvbSBlZW4gc2NoaWpmbGFiZWwgdGUgd2lqemlnZW4uICBcblwKXG5cClN5bnRheDogTEFCRUwgW3NjaGlqZjpdXG5cCkRlIG9wZHJhY2h0IHZyYWFndCB1IG9tIGVlbiBuaWV1dyBsYWJlbCBpbiB0ZSB0aWtrZW4gdm9vciBkZSBvcGdlZ2V2ZW4gc2NoaWpmLlxuXApVIGt1bnQgaGV0IGxhYmVsIHZhbiBlZW4gc2NoaWpmIHRvbmVuIG1ldCBiZWh1bHAgdmFuIGRlIFZPTCBvcGRyYWNodC5cbiIKCiAgV0NNRF9NRCwgICAgICJVaXRsZWcgYmlqIE1EXG4iCiAgV0NNRF9NS0RJUiwgICJVaXRsZWcgYmlqIE1LRElSXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSB2ZXJwbGFhdHN0IGVlbiBiZXN0YW5kIG9mIGRpcmVjdG9yeSBuYWFyIGVlbiBhbmRlcmUgcGxlayBiaW5uZW4gaGV0IGJlc3RhbmRzc3lzdGVlbS5cblwKXG5cCkFscyBoZXQgb20gZWVuIGRpcmVjdG9yeSBnYWF0IGRhbiB3b3JkZW4gYWxsZSBiZXN0YW5kZW4gZW4gZGlyZWN0b3JpZXNcblwKZGFhcm9uZGVyIG9vayB2ZXJwbGFhdHN0LlxuXApcblwKTU9WRSB3ZXJrdCBuaWV0IGFscyBkZSBvdWRlIGVuIG5pZXV3ZSBsb2NhdGllcyB6aWNoIG9wIHZlcnNjaGlsbGVuZGUgRE9TLXNjaGlqdmVuIGJldmluZGVuLlxuIgoKICBXQ01EX1BBVEgsCiJQQVRIIHRvb24gb2Ygd2lqemlndCBoZXQgem9la3BhZCB2YW4gY21kLlxuXApcblwKRGUgb3BkcmFjaHQgUEFUSCB0b29udCBoZXQgaHVpZGlnZSB6b2VrcGFkIChkZSBiZWdpbndhYXJkZSB3b3JkdCBpblxuXApoZXQgYmVzdGFuZCBnZW5hYW1kIHdpbmUuY29uZiB0b2VnZWtlbmQpLiBPbSBoZXQgem9la3BhZCB0ZSB3aWp6aWdlbiBsYWF0IHUgZGUgUEFUSFxuXApvcGRyYWNodCB2b2xnZW4gZG9vciBkZSBuaWV1d2Ugd2FhcmRlLlxuXApcblwKSGV0IGlzIG9vayBtb2dlbGlqayBvbSBoZXQgem9la3BhZCB0ZSB3aWp6aWdlbiBtZXQgYmVodWxwIHZhbiBkZSBQQVRIIG9tZ2V2aW5nc3ZhcmlhYmVsZSxcblwKYmlqIHZvb3JiZWVsZDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcCBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIHRvb250IGVlbiBiZXJpY2h0IG9wIGhldCBzY2hlcm06ICdUb2V0cyBFbnRlciBvbSBkb29yIHRlIGdhYW4nXG5cCmVuIHdhY2h0IHRvdGRhdCBkZSBnZWJydWlrZXIgZGUgRW50ZXItdG9ldHMgaW5kcnVrdC4gRGl0IGlzIHZvb3JhbCBoYW5kaWcgaW5cblwKYmF0Y2hiZXN0YW5kZW4gb20gZGUgZ2VicnVpa2VyIGluIHN0YWF0IHRlIHN0ZWxsZW4gb20gZGUgdWl0dm9lciB2YW4gZWVuIHZvb3JhZmdhYW5kZSBvcGRyYWNodFxuXAp0ZSBiZWtpamtlbiwgdm9vcmRhdCBoZXQgdmFuIGhldCBzY2hlcm0gc2NodWlmdC5cbiIKCiAgV0NNRF9QUk9NUFQsCiJQUk9NUFQgd2lqemlndCBkZSBwcm9tcHQgdmFuIGRlIG9wZHJhY2h0cmVnZWwuXG5cClxuXApEZSB0ZWtlbnJlZWtzIHZvbGdlbmQgb3AgZGUgUFJPTVBUIG9wZHJhY2h0IChlbiBkZSBzcGF0aWUgZGlyZWN0IGRhYXJuYSlcblwKdmVyc2NoaWpudCB2b29yYWFuIG9wIGRlIHJlZ2VsIGFscyBjbWQgd2FjaHQgb3AgaW52b2VyLlxuXApcblwKRGUgdm9sZ2VuZGUgdGVrZW5yZWVrc2VuIGhlYmJlbiBlZW4gc3BlY2lhbGUgYmV0ZWtlbmlzOlxuXApcblwKJCQgICAgZG9sbGFyLXRla2VuICAgICAgICAgICAgICRfICAgIG5pZXV3ZSByZWdlbCAgICAgICRiICAgIHBpanAtdGVrZW4gKHwpXG5cCiRkICAgIGh1aWRpZ2UgZGF0dW0gICAgICAgICAgICAkZSAgICBlc2NhcGUgICAgICAgICAgICAkZyAgICBncm90ZXItZGFuLXRla2VuICg+KVxuXAokbCAgICBrbGVpbmVyLWRhbi10ZWtlbiAoPCkgICAgJG4gICAgaHVpZGlnZSBzY2hpamYgICAgJHAgICAgaHVpZGlnZSBkaXJlY3RvcnlcblwKJHEgICAgaXMtZ2VsaWprLXRla2VuICg9KSAgICAgICR0ICAgIGh1aWRpZ2UgdGlqZCAgICAgICR2ICAgIGNtZCB2ZXJzaWVcblwKXG5cCk1lcmsgb3AgZGF0IGhldCB1aXR2b2VyZW4gdmFuIGRlIFBST01QVCBvcGRyYWNodCB6b25kZXIgZWVuIHRla2VucmVla3MgZGVcblwKcHJvbXB0IHRlcnVnemV0IG5hYXIgZGUgc3RhbmRhYXJkaW5zdGVsbGluZy4gRGF0IGlzIGRlIGh1aWRpZ2UgZGlyZWN0b3J5XG5cCihpbmNsdXNpZWYgc2NoaWpmYWFuZHVpZGluZykgZ2V2b2xnZCBlZW4gZ3JvdGVyLWRhbi10ZWtlbiAoPikuXG5cCihkYXQgc3RhYXQgZ2VsaWprIGFhbiBkZSBvcGRyYWNodDogUFJPTVBUICRwJGcpLlxuXApcblwKRGUgcHJvbXB0IGthbiBvb2sgZ2V3aWp6aWdkIHdvcmRlbiB2aWEgZGUgUFJPTVBUIG9tZ2V2aW5nc3ZhcmlhYmVsZSxcblwKZHVzIGRlIG9wZHJhY2h0ICdTRVQgUFJPTVBUPXRla2VucmVla3MnIGhlZWZ0IGhldHplbGZkZSBlZmZlY3QgYWxzICdQUk9NUFQgdGVrZW5yZWVrcydcbiIKCiAgV0NNRF9SRU0sCiJFZW4gb3BkcmFjaHRyZWdlbCBkaWUgYmVnaW50IG1ldCBSRU0gKGdldm9sZCBkb29yIGVlbiBzcGF0aWUpIHdvcmR0IG5pZXRcblwKdWl0Z2V2b2VyZCwgZW4ga2FuIGRhYXJvbSB3b3JkZW4gZ2VicnVpa3QgYWxzIGVlbiBjb21tZW50YWFycmVnZWwgaW4gZWVuIGJhdGNoYmVzdGFuZC5cbiIKCiAgV0NNRF9SRU4sICAgICJVaXRsZWcgYmlqIFJFTlxuIgogIFdDTURfUkVOQU1FLCAiVWl0bGVnIGJpaiBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIlVpdGxlZyBiaWogUkRcbiIKICBXQ01EX1JNRElSLCAgIlVpdGxlZyBiaWogUk1ESVJcbiIKCiAgV0NNRF9TRVQsCiJTRVQgdG9vbnQgb2Ygd2lqemlndCBvbWdldmluZ3N2YXJpYWJlbGVuIHZhbiBjbWQuXG5cClxuXApTRVQgem9uZGVyIHBhcmFtZXRlcnMgdG9vbnQgYWxsZSBvbWdldmluZ3N2YXJpYWJlbGVuLlxuXApcblwKRGUgc3ludGF4IHZvb3IgaGV0IG1ha2VuIG9mIHdpanppZ2VuIHZhbiBlZW4gb21nZXZpbmdzdmFyaWFiZWxlIGlzOlxuXApcblwKICAgICAgU0VUIDx2YXJpYWJsZT49PHdhYXJkZT5cblwKXG5cCndhYXJiaWogPHZhcmlhYmxlPiBlbiA8d2FhcmRlPiB1aXQgdGVrZW5yZWVrc2VuIGJlc3RhYW4uIEVyIG1vZ2VuIGdlZW4gc3BhdGllc1xuXAp2b29yIGhldCBpcy1nZWxpamstdGVrZW4gc3RhYW4sIG5vY2ggbW9nZW4gZXIgaW4gZGUgdmFyaWFiZWxlbmFhbVxuXApzcGF0aWVzIHZvb3Jrb21lbi5cblwKXG5cCk9uZGVyIFdpbmUgd29yZGVuIGRlIG9tZ2V2aW5nc3ZhcmlhYmVsZW4gdmFuIGhldCBvbmRlcmxpZ2dlbmRlIGJlc3R1cmluZ3NzeXN0ZWVtXG5cCm9wZ2Vub21lbiBpbiBkZSBXaW4zMiBvbWdldmluZy4gRXIgenVsbGVuIGRhYXJvbSBkb29yZ2FhbnMgdmVlbCBtZWVyXG5cCnZhcmlhYmVsZW4gaW4gdm9vcmtvbWVuIGRhbiBpbiBlZW4gb29yc3Byb25rZWxpamtlIFdpbjMyIGltcGxlbWVudGF0aWUuIE1lcmsgb3AgZGF0IGhldFxuXApuaWV0IG1vZ2VsaWprIGlzIG9tIGRlIG9tZ2V2aW5nc3ZhcmlhYmVsZW4gdmFuIGhldCBvbmRlcmxpZ2dlbmRlIGJlc3R1cmluZ3NzeXN0ZWVtIHRlXG5cCndpanppZ2VuIHZhbnVpdCBjbWQuXG4iCgogIFdDTURfU0hJRlQsCiJTSElGVCB3b3JkdCBnZWJydWlrdCBpbiBlZW4gYmF0Y2hiZXN0YW5kIG9tIGVlbiBwYXJhbWV0ZXIgdGUgdmVyd2lqZGVyZW4gdmFuIGhldCBiZWdpbiB2YW5cblwKZGUgbGlqc3QuIER1cyBkZSB0d2VlZGUgcGFyYW1ldGVyIHdvcmR0IGRhbiBkZSBlZXJzdGUsIGVuem92b29ydC4gRGV6ZSBvcGRyYWNodCBoZWVmdCBnZWVuIGVmZmVjdFxuXAphbHMgaGlqIHdvcmR0IGFhbmdlcm9lcGVuIHZhbmFmIGRlIG9wZHJhY2h0cmVnZWwuXG4iCgogIFdDTURfVElNRSwgICAiVWl0bGVnIGJpaiBUSU1FXG4iCgogIFdDTURfVElUTEUsICAiV2lqemlndCBkZSBuYWFtIHZhbiBoZXQgY21kLXZlbnN0ZXIsIHN5bnRheDogVElUTEUgW3Rla2VucmVla3NdXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPGJlc3RhbmRzbmFhbT4ga29waetlcnQgPGJlc3RhbmRzbmFhbT4gbmFhciBoZXQgdWl0dm9lcmFwcGFyYWF0LlxuXApFciB3b3JkdCBuaWV0IGdlY29udHJvbGVlcmQgb2YgaGV0IGJlc3RhbmQgbGVlc2JhcmUgdGVrc3QgYmV2YXQuXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIHdvcmR0IGdlYnJ1aWt0IG9tIGRlIFZFUklGWS1zY2hha2VsYWFyIGFhbiBvZiB1aXQgdGUgemV0dGVuIG9mIG9tIGhlbSB0ZSB0ZXN0ZW4uIEdlbGRpZ2UgYWFucm9lcGVuIHppam46XG5cClxuXApWRVJJRlkgT04JWmV0IGRlIHNjaGFrZWxhYXIgYWFuXG5cClZFUklGWSBPRkYJWmV0IGRlIHNjaGFrZWxhYXIgdWl0XG5cClZFUklGWQkJVG9vbnQgT04gb2YgT0ZGIG5hYXIgZ2VsYW5nIGRlIHN0YW5kLlxuXApcblwKRGUgdmVyaWZ5LXNjaGFrZWxhYXIgaGVlZnQgZ2VlbiBmdW5jdGllIGJpbm5lbiBXaW5lLlxuIgoKICBXQ01EX1ZFUiwKIlZFUiB0b29udCBkZSB2ZXJzaWUgdmFuIGNtZCBkaWUgdSBkcmFhaXRcbiIKCiAgV0NNRF9WT0wsICAgICJVaXRsZWcgYmlqIFZPTFxuIgoKICBXQ01EX01PUkUsICAgIk1PUkUgZGlzcGxheXMgb3V0cHV0IG9mIGZpbGVzIG9yIHBpcGVkIGlucHV0IGluIHBhZ2VzLlxuIgoKICBXQ01EX0VYSVQsCiJFWElUIGJl62luZGlndCBkZSBsb3BlbmRlIHNlc3NpZSBlbiBrZWVydCB0ZXJ1Z1xuXApuYWFyIGhldCBiZXN0dXJpbmdzc3lzdGVlbSBvZiBkZSBzY2hpbCB2YW4gd2FhcnVpdCBjbWQgd2VyZCBnZXN0YXJ0LlxuIgoKICAxMDAwLCAiQ01EJ3MgaW5nZWJvdXdkZSBvcGRyYWNodGVuIHppam46XG5cCkFUVFJJQlx0XHRUb29uIG9mIHdpanppZyBET1MgYmVzdGFuZHNhdHRyaWJ1dGVuXG5cCkNBTExcdFx0Um9lcCBlZW4gYmF0Y2hiZXN0YW5kIGFhbiB2YW51aXQgZWVuIGFuZGVyIGJlc3RhbmRcblwKQ0QgKENIRElSKVx0V2lqemlnIGRlIGh1aWRpZ2UgZGlyZWN0b3J5XG5cCkNMU1x0XHRXaXMgaGV0IHNjaGVybVxuXApDT1BZXHRcdEtvcGnrZXIgZWVuIGJlc3RhbmRcblwKQ1RUWVx0XHRXaWp6aWcgaGV0IGludm9lci0vdWl0dm9lcmFwcGFyYWF0XG5cCkRBVEVcdFx0VG9vbiBvZiB3aWp6aWcgZGUgc3lzdGVlbWRhdHVtXG5cCkRFTCAoRVJBU0UpXHRWZXJ3aWpkZXIgZWVuIGJlc3RhbmQgb2YgZWVuIHZlcnphbWVsaW5nIHZhbiBiZXN0YW5kZW5cblwKRElSXHRcdFRvb24gZGUgaW5ob3VkIHZhbiBlZW4gZGlyZWN0b3J5XG5cCkVDSE9cdFx0S29waetlciB0ZWtzdCBkaXJlY3QgbmFhciBoZXQgdWl0dm9lcmFwcGFyYWF0XG5cCkhFTFBcdFx0VG9vbiBlZW4ga29ydGUgdWl0bGVnIG92ZXIgZWVuIG9uZGVyd2VycFxuXApNRCAoTUtESVIpXHRNYWFrIGVlbiBkaXJlY3RvcnlcblwKTU9SRVx0XHREaXNwbGF5IG91dHB1dCBpbiBwYWdlc1xuXApNT1ZFXHRcdFZlcnBsYWF0cyBlZW4gYmVzdGFuZCwgZWVuIHZlcnphbWVsaW5nIGJlc3RhbmRlbiBvZiBlZW4gZGlyZWN0b3J5XG5cClBBVEhcdFx0V2lqemlnIG9mIHRvb24gaGV0IHpvZWtwYWRcblwKUFJPTVBUXHRcdFdpanppZyBkZSBwcm9tcHRcblwKUkVOIChSRU5BTUUpXHRIZXJub2VtIGVlbiBiZXN0YW5kXG5cClJEIChSTURJUilcdFZlcndpamRlciBlZW4gZGlyZWN0b3J5XG5cClNFVFx0XHRXaWp6aWcgb2YgdG9vbiBkZSBvbWdldmluZ3N2YXJpYWJlbGVuXG5cClRJTUVcdFx0V2lqemlnIG9mIHRvb24gZGUgc3lzdGVlbXRpamRcblwKVElUTEVcdFx0V2lqemlnIGRlIHZlbnN0ZXJuYWFtIHZhbiBkZSBDTUQtc2Vzc2llXG5cClRZUEVcdFx0VG9vbiBkZSBpbmhvdWQgdmFuIGVlbiB0ZWtzdGJlc3RhbmRcblwKVkVSXHRcdFRvb24gZGUgdmVyc2llIHZhbiBDTURcblwKVk9MXHRcdFRvb24gaGV0IGxhYmVsIHZhbiBlZW4gc2NoaWpmXG5cCkVYSVRcdFx0U2x1aXQgQ01EIGFmXG5cblwKdHlwZSBIRUxQIDxvcGRyYWNodD4gdm9vciBtZWVyIGluZm9ybWF0aWUgb3ZlciBib3Zlbmdlbm9lbWRlIG9wZHJhY2h0ZW5cbiIKCiAgV0NNRF9DT05GSVJNLCAiQXJlIHlvdSBzdXJlIgogIFdDTURfWUVTLCAiWSIKICBXQ01EX05PLCAiTiIKICBXQ01EX05PQVNTT0MsICJGaWxlIGFzc29jaWF0aW9uIG1pc3NpbmcgZm9yIGV4dGVuc2lvbiAlc1xuIgogIFdDTURfTk9GVFlQRSwgIk5vIG9wZW4gY29tbWFuZCBhc3NvY2lhdGVkIHdpdGggZmlsZSB0eXBlICclcydcbiIKICBXQ01EX09WRVJXUklURSwgIk92ZXJ3cml0ZSIKICBXQ01EX01PUkVTVFIsICJNb3JlLi4uIgp9Cg==