LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBHZXJtYW4gTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNCBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIkhpbGZlIGb8ciBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxCYXRjaGRhdGVpbmFtZT4gd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIEJlZmVobGUgYXVzXG5cCmVpbmVyIGFuZGVyZW4gQmF0Y2hkYXRlaSBhdXN6dWb8aHJlbi4gV2VubiBkaWUgQmF0Y2hkYXRlaSBleGlzaWVydCwga2VocnRcblwKZGllIEtvbnRyb2xsZSB6dSBkZXIgRGF0ZWkgenVy/GNrLCBkaWUgc2llIGdlcnVmZW4gaGF0LiBEZXIgQ0FMTCBCZWZlaGwga2FublxuXApQYXJhbWV0ZXIgenUgZGVyIHJ1ZmVuZGVuIFByb3plZHVyZSD8YmVydHJhZ2VuLlxuXApcblwKxG5kZXJ1bmdlbiBm/HIgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzLCBVbWdlYnVuZ3N2YXJpYWJsZW4gdXN3LiB3ZXJkZW4gaW5cblwKZGVyIGdlcnVmZW5lbiBQcm96ZWR1ciBnZW1hY2h0LCBkaWUgc2llIHZvbiBkZXIgYXVmZ2VydWZlbmVuIGdlZXJidCBoYXQuXG4iCgogIFdDTURfQ0QsICAgICAiSGlsZmUgZvxyIENEXG4iCiAgV0NNRF9DSERJUiwgICJIaWxmZSBm/HIgQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJIaWxmZSBm/HIgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGlsZmUgZvxyIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhpbGZlIGb8ciBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIaWxmZSBm/HIgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIaWxmZSBm/HIgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPFplaWNoZW5rZXR0ZT4gemVpZ3QgZGllIDxaZWljaGVua2V0dGU+IGF1ZiBkZW0gYWt0dWVsbGVuIFRlcm1pbmFsZ2Vy5HQuXG5cClxuXApFQ0hPIE9OIGJld2lya3QsIGRhc3MgYWxsZSBuYWNoZm9sZ2VuZGVuIEJlZmVobGUgaW4gZWluZXIgQmF0Y2hkYXRlaSB6dWVyc3RcblwKYXVmIGRlbSBUZXJtaW5hbGdlcuR0IGFuZ2V6ZWlndCB1bmQgZGFuYWNoIGF1c2dlZvxocnQgd2VyZGVuLlxuXApcblwKRUNITyBPRkYga2VocnQgZGVuIEVmZmVrdCBkZXMgdm9yaGVyaWdlbiBFQ0hPIE9OIChFQ0hPIGlzdCBzdGFuZGFyZG3kc3NpZ1xuXAphdWYgT0ZGKSB1bS4gVW0gZGVuIEVDSE8gT0ZGIEJlZmVobCBuaWNodCBhbnplaWdlbiB6dSBsYXNzZW4sIGthbm4gdm9yIGRlc3NlblxuXAplaW4gQCBaZWljaGVuIGdlc2V0enQgd2VyZGVuLlxuIgoKICBXQ01EX0VSQVNFLCAgIkhpbGZlIGb8ciBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkRlciBGT1IgQmVmZWhsIHdpcmQgZ2VudXR6dCwgdW0gZWluZW4gQmVmZWhsIGb8ciBlaW5lIE1lbmdlIHZvbiBEYXRlaWVuXG5cCmVpbnplbG4gYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6IEZPUiAlVmFyaWFibGUgSU4gKHNldCkgRE8gQmVmZWhsXG5cClxuXApEaWUgQW5mb3JkZXJ1bmcgZGFzICUgWmVpY2hlbiB6dSB2ZXJkb3BwZWxuLCBzb2JhbGQgRk9SIGluIGVpbmVyIEJhdGNoZGF0ZWlcblwKYmVudXR6dCB3aXJkLCBleGlzdGllcnQgaW0gV0NNRCBuaWNodC5cbiIKCiAgV0NNRF9HT1RPLAoiRGVyIEdPVE8gQmVmZWhsIHRyYW5zZmVyaWVydCBkaWUgQXVzZvxocnVuZyB6dSBlaW5lciBhbmRlcmVuIFN0ZWxsZSBpbiBlaW5lclxuXApCYXRjaGRhdGVpLlxuXApcblwKRGllIEJlemVpY2hudW5nLCBkaWUgZGFzIFppZWwgZWluZXMgR09UTydzIGlzdCwga2FubiBiaXMgenUgMjU1IFplaWNoZW4gbGFuZ1xuXApzZWluLCBkYXJmIGFiZXIga2VpbmUgTGVlcnplaWNoZW4gZW50aGFrdGVuIChkaWVzIGlzdCBkZXIgVW50ZXJzY2hpZWQgenVcblwKYW5kZXJlbiBCZXRyaWVic3N5c3RlbWVuKS4gV2VubiB6d2VpIG9kZXIgbWVociBpZGVudGlzY2hlIEJlemVpY2hudW5nZW4gaW5cblwKZWluZXIgQmF0Y2hkYXRlaSBleGlzdGllcmVuLCBkYW5uIHdpcmQgaW1tZXIgenUgZGVyIGVyc3RlbiBCZXplaWNobnVuZ1xuXApnZXNwcnVuZ2VuLiBWZXJzdWNodCBHT1RPIHp1IGVpbmVyIG5pY2h0IHZvcmhhbmRlbiBCZXplaWNobnVuZyB6dSBzcHJpbmdlbixcblwKYmVlbmRldCBzaWNoIGRpZSBBdXNm/GhydW5nIGRlciBCYXRjaGRhdGVpLlxuXApcblwKR09UTyBoYXQga2VpbmUgQXVzd2lya3VuZ2VuLCB3ZW5uIGVzIGludGVyYWt0aXYgZ2VudXR6dCB3aXJkLlxuIgoKICBXQ01EX0hFTFAsICAgIkhpbGZlIGb8ciBIRUxQXG4iCgogIFdDTURfSUYsCiJJRiB3aXJkIGJlbnV0enQsIHVtIGVpbmVuIEJlZmVobCBiZWRpbmd0IGF1c3p1ZvxocmVuLlxuXApcblwKU3ludGF4OglJRiBbTk9UXSBFWElTVCBEYXRlaW5hbWUgQmVmZWhsXG5cCglJRiBbTk9UXSBaZWljaGVua2V0dGUxPT1aZWljaGVua2V0dGUyIEJlZmVobFxuXAoJSUYgW05PVF0gRVJST1JMRVZFTCBOdW1tZXIgQmVmZWhsXG5cClxuXApJbiBkZXIgendlaXRlbiBGb3JtIGRlcyBCZWZlaGxzLCBt/HNzZW4gZGllIGJlaWRlbiBaZWljaGVua2V0dGVuIGluIGRvcHBlbHRlblxuXApBbmb8aHJ1bmdzemVpY2hlbiBzdGVoZW4uIERlciBWZXJnbGVpY2ggYWNodGV0IG5pY2h0IGF1ZiBkaWUgR3Jv3y0gdW5kXG5cCktsZWluc2NocmVpYnVuZy5cbiIKCiAgV0NNRF9MQUJFTCwgIAoiTEFCRUwgd2lyZCBiZW51dHp0LCB1bSBkaWUgTGF1ZndlcmtzYmV6ZWljaG51bmcgZmVzdHp1bGVnZW4uXG5cClxuXApTeW50YXg6IExBQkVMIFtMYXVmd2VyazpdXG5cClxuXApEZXIgQmVmZWhsIHdhcnRldCBhdWYgZGllIEVpbmdhYmUgZWluZXIgbmV1ZW4gQmV6ZWljaG51bmcgZvxyIGRhcyBhbmdlZ2ViZW5lXG5cCkxhdWZ3ZXJrLiBTaWUga/ZubmVuIHNpY2ggYXVjaCBkaWUgTGF1ZndlcmtzYmV6ZWljbnVuZyBtaXQgZGVtIFZPTCAtIEJlZmVobFxuXAphbnplaWdlbiBsYXNzZW4uXG4iCgogIFdDTURfTUQsICAgICAiSGlsZmUgZvxyIE1EXG4iCiAgV0NNRF9NS0RJUiwgICJIaWxmZSBm/HIgTUtESVJcbiIKICBXQ01EX01PVkUsCiJNT1ZFIHZlcnNjaGllYnQgZWluZSBEYXRlaSBvZGVyIGVpbiBWZXJ6ZWljaG5pcyB6dSBlaW5lbSBuZXVlbiBQdW5rdCBpbVxuXApEYXRlaXN5c3RlbS5cblwKXG5cCklzdCBkYXMgenUgdmVyc2NoaWViZW5kZSBPYmpla3QgZWluIFZlcnplaWNobmlzLCBkYW5uIHdlcmRlbiBhbGxlIERhdGVpZW4gdW5kXG5cClVudGVydmVyemVpY2huaXNzZSB1bnRlcmhhbGIgZGVzIE9iamVrdGVzIGdlbmF1c28gdmVyc2Nob2Jlbi5cblwKXG5cCk1PVkUgc2NobORndCBmZWhsLCB3ZW5uIGRpZSBhbHRlIHVuZCBkaWUgbmV1ZSBQb3NpdGlvbiBhdWYgdmVyc2NoaWVkZW5lbiBET1NcblwKTGF1ZndlcmtlbiBzaW5kLlxuIgoKICBXQ01EX1BBVEgsCiJQQVRIIORuZGVydCBvZGVyIHplaWd0IGRlbiBXQ01EIFN1Y2hwZmFkIGFuLlxuXApcblwKTmFjaCBkZXIgRWluZ2FiZSB2b24gUEFUSCwgd2lyZCBkaWUgYWt0dWVsbGUgUEFUSCBFaW5zdGVsbHVuZyBhbmdlemVpZ3RcblwKKG5hY2ggZGVtIFN0YXJ0IHdpcmQgZGVyIFdlcnQgYXVzIGRlciB3aW5lLmNvbmYgRGF0ZWkgZ2Vub21tZW4pLiBVbSBkaWVcblwKRWluc3RlbGx1bmdlbiB6dSDkbmRlcm4sIG11c3MgbmFjaCBkZW0gUEFUSCBCZWZlaGwgZGVyIG5ldWUgV2VydCBhbmdlZ2ViZW5cblwKd2VyZGVuXG5cClxuXApFcyBpc3QgYXVjaCBt9mdsaWNoIGRlbiBQQVRIIG1pdCBIaWxmZSBkZXIgUEFUSCBVbWdlYnVuZ3N2YXJpYWJsZSB6dVxuXAptb2RpZml6aWVyZW4uIFp1bSBCZWlzcGllbDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcCBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIGzkc3N0IGVpbmUgTWVsZHVuZyBhdWYgZGVtIEJpbGRzY2hpcm0gZXJzY2hlaW5lblxuXAonUHJlc3MgUmV0dXJuIGtleSB0byBjb250aW51ZScgdW5kIHdhcnRldCBkYXJhdWYsIGRhc3MgZGVyIE51dHplciBkaWVcblwKUmV0dXJuL0VudGVyLVRhc3RlIGRy/GNrdC4gRXMgd2lyZCBoYXVwdHPkY2hsaWNoIGluIEJhdGNoZGF0ZWllbiBnZW51dHp0LFxuXAp1bSBkZW0gTnV0emVyIHp1IGVybGF1YmVuLCBkaWUgQXVzZ2FiZSBlaW5lcyB2b3JoZXJpZ2VuIEJlZmVobHMgenUgbGVzZW4sXG5cCmJldm9yIGVzIGR1cmNoIFNjcm9sbGVuIHZvbSBCaWxkc2NoaXJtIHZlcnNjaHdpbmRldC5cbiIKCiAgV0NNRF9QUk9NUFQsCiJQUk9NUFQgc2V0enQgZGVuIEJlZmVobHN6ZWlsZW5wcm9tcHQuXG5cClxuXApEaWUgWmVpY2hlbmtldHRlLCBkaWUgZGVtIFBST01QVCBCZWZlaGwgZm9sZ3QgKHVuZCBkZW0gTGVlcnplaWNoZW5cblwKdW5taXR0ZWxiYXIgZGFuYWNoKSwgZXJzY2hlaW50IGFtIFplaWxlbmFuZmFuZywgd2VubiBXQ01EIGF1ZiBkaWUgRWluZ2FiZVxuXAp3YXJ0ZXQuXG5cClxuXApEaWUgbmFjaGZvbGdlbmRlbiBaZWljaGVuIGhhYmVuIGVpbmUgYmVzb25kZXJlIEJlZGV1dHVuZzpcblwKXG5cCiQkICAgIERvbGxhcnplaWNoZW4gICAgICAgJF8gICAgWmVpbGVudm9yc2NodWIgICAgICAkYiAgICBQaXBlIFplaWNoZW4gKHwpXG5cCiRkICAgIGFrdHVlbGxlcyBEYXR1bSAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICA+IFplaWNoZW5cblwKJGwgICAgPCBaZWljaGVuICAgICAgICAgICAkbiAgICBha3V0ZWxsZXMgTGF1ZndlcmsgICRwICAgIGFrdHVlbGxlciBQZmFkXG5cCiRxICAgIEdsZWljaGhlaXRzemVpY2hlbiAgJHQgICAgYWt0dWVsbGUgWmVpdCAgICAgICAkdiAgICB3Y21kIFZlcnNpb25cblwKXG5cCkhpbndlaXM6IERpZSBFaW5nYWJlIGRlcyBQUk9NUFQgQmVmZWhscyBvaG5lIGVpbmUgUHJvbXB0LVplaWNoZW5rZXR0ZSwgc2V0enRcblwKZGVuIFByb21wdCB6dSBkZW4gU3RhbmRhcmR3ZXJ0IHp1cvxjaywgd2FzIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyAoaW5rbHVzaXZlXG5cCmRlbSBha3R1ZWxsZW4gTGF1ZndlcmtzYnVjaHN0YWJlbikgZ2Vmb2xndCB2b24gZWluZW4gR3L232VyemVpY2hlbiAoPilcblwKKGdlbmF1IHdpZSBkZXIgUFJPTVBUICRwJGcgQmVmZWhsKS5cblwKXG5cCkRlciBQcm9tcHQga2FubiBhdWNoIGdl5G5kZXJ0IHdlcmRlbiBkdXJjaCBkYXMgxG5kZXJuIGRlciBQUk9NUFRcblwKVW1nZWJ1bmdzdmFyaWFibGUsIHNvIGhhdCBkZXIgQmVmZWhsICdTRVQgUFJPTVBUPXRleHQnIGRpZSBnbGVpY2hlIEF1c3dpcmt1bmdcblwKd2llICdQUk9NUFQgdGV4dCcuXG4iCgogIFdDTURfUkVNLAoiQmVnaW5udCBlaW5lIEJlZmVobHN6ZWlsZSBtaXQgUkVNIChnZWZvbGd0IHZvbiBlaW5lbSBMZWVyemVpY2hlbiksIHdpcmRcblwKa2VpbmUgQWt0aW9uIGF1c2dlZvxocnQgdW5kIGthbm4gZGVzaGFsYiBhdWNoIGFscyBLb21tZW50YXIgaW4gZWluZXJcblwKQmF0Y2hkYXRlaSBnZW51dHp0IHdlcmRlbi5cbiIKCiAgV0NNRF9SRU4sICAgICJIaWxmZSBm/HIgUkVOXG4iCiAgV0NNRF9SRU5BTUUsICJIaWxmZSBm/HIgUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJIaWxmZSBm/HIgUkRcbiIKICBXQ01EX1JNRElSLCAgIkhpbGZlIGb8ciBSTURJUlxuIgoKICBXQ01EX1NFVCwKIlNFVCDkbmRlcnQgb2RlciB6ZWlndCBkaWUgV0NNRCBVbWdlYnVuZ3N2YXJpYWJsZW4gYW4uXG5cClxuXApTRVQgb2huZSBQYXJhbWV0ZXIgemVpZ3QgYWxsZSBha3R1ZWxsZW4gVW1nZWJ1bmdzdmFyaWFibGVuIGFuLlxuXApcblwKVW0gZWluZSBVbWdlYnVuZ3N2YXJpYWJsZSB6dSBlcnNjaGFmZmVuIG9kZXIgenUg5G5kZXJuLCBpc3QgZGVyIFN5bnRheCBu9nRpZzpcblwKXG5cCiAgICAgIFNFVCA8VmFyaWFibGU+PTxXZXJ0PlxuXApcblwKV29iZWkgPFZhcmlhYmxlPiB1bmQgPFdlcnQ+IFplaWNoZW5rZXR0ZSBzaW5kLiBFcyBt/HNzZW4ga2VpbmUgTGVlcnplaWNoZW4gdm9yXG5cCmRlbSBHbGVpY2hoZWl0c3plaWNoZW4gc2Vpbiwgbm9jaCBtdXNzIGRlciBWYXJpYWJsZW5uYW1lIGluIEFuZvxocnVuZ3N6ZWljaGVuXG5cCmVpbmdlc2NobG9zc2VuIHNlaW4uXG5cClxuXApJbiBXaW5lIHdlcmRlbiBkaWUgVW1nZWJ1bmdzdmFyaWFibGVuIGRlcyBkYXJ1bnRlcmxpZWdlbmRlbiBCZXRyaWVic3N5c3RlbXNcblwKbWl0IGluIGRpZSBXaW4zMiBVbWdlYnVuZyBlaW5nZWJ1bmRlbiwgZGVzaGFsYiBnaWJ0IGVzIGdld/ZobmxpY2ggbWVociBXZXJ0ZVxuXAphbHMgZXMgc2llIGluIGVpbmVyIHVyc3By/G5nbGljaGVuIFdpbjMyIFJlYWxpc2llcnVuZyBn5GJlLiBBbm1lcmt1bmc6IEVzIGlzdFxuXApuaWNodCBt9mdsaWNoIGRpZSBVbWdlYnVuZ3N2YXJpYWJsZW4gZGVzIEJldHJpZWJzc3lzdGVtcyB2b20gV0NNRCBhdXMgenVcblwKYmVlaW5mbHVzc2VuLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIGVpbmVuIFBhcmFtZXRlciB2b20gQW5mYW5nIGRlclxuXApMaXN0ZSB6dSBlbnRmZXJuZW4sIHNvIGRhcyBkZXIgUGFyYW1ldGVyIDIgenUgUGFyYW1ldGVyIDEgd2lyZCB1bmQgc28gd2VpdGVyLlxuXApFcyBoYXQga2VpbmUgQXVzd2lya3VuZ2VuLCB3ZW5uIGVzIHZvbiBkZXIgQmVmZWhsc3plaWxlIGdlcnVmZW4gd2lyZC5cbiIKCiAgV0NNRF9USU1FLCAgICJIaWxmZSBm/HIgVElNRVxuIgoKICBXQ01EX1RJVExFLCAgCiJTZXR6dCBkZW4gRmVuc3RlcnRpdGVsIGb8ciBkYXMgV0NNRCAtIEZlbnN0ZXIuXG5cClxuXApTeW50YXg6IFRJVExFIFtaZWljaGVua2V0dGVdXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPERhdGVpPiBrb3BpZXJ0IDxEYXRlaT4genUgZGVtIEtvbnNvbGVuZ2Vy5HQgKG9kZXIgZG9ydGhpbiwgd29oaW5cblwKZGllcyB1bWdlbGVpdGV0IHd1cmRlKS4gRXMgd2lyZCBrZWluZSDcYmVycHL8ZnVuZyB2b3JnZW5vbW1lbiwgb2IgZGllXG5cCkRhdGVpIGxlc2JhcmVyIFRleHQgaXN0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSB3aXJkIGJlbnV0enQsIHVtIGRhcyBWZXJpZnkgRmxhZyB6dSBzZXR6ZW4sIHp1IGz2c2NoZW4gb2RlciB6dVxuXAp0ZXN0ZW4uIEf8bHRpZ2UgRWluZ2FiZW4gc2luZDpcblwKXG5cClZFUklGWSBPTglTZXR6dCBkYXMgRmxhZ1xuXApWRVJJRlkgT0ZGCUz2c2NodCBkYXMgRmxhZ1xuXApWRVJJRlkJCVplaWd0IGFuLCBvYiBPTiBvZGVyIE9GRiB2ZXJ3ZW5kZXQgd2lyZC5cblwKXG5cCkRhcyBWZXJpZnkgRmxhZyBoYXQga2VpbmUgRnVua3Rpb24gaW4gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgemVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIFdDTUQgYW4uXG4iCgogIFdDTURfVk9MLCAgICAiSGlsZmUgZvxyIFZPTFxuIgoKICBXQ01EX0VYSVQsCiJFWElUIGJlZW5kZXQgZGllIGFrdHVlbGxlIEJlZmVobHNzaXR6dW5nIHVuZCBrZWhydCB6dW1cblwKQmV0cmllYnNzeXN0ZW0gb2RlciBkZXIgU2hlbGwgenVy/GNrLCB2b24gZGVyIFdDTUQgZ2VzdGFydCB3dXJkZS5cbiIKCgogIDEwMDAsICJXQ01EIGVpbmdlYmF1dGVuIEJlZmVobGUgc2luZDpcblwKQVRUUklCXHRcdFplaWd0IGFuIG9kZXIg5G5kZXJ0IGRpZSBET1MgRGF0ZWllaWdlbnNjaGFmdGVuXG5cCkNBTExcdFx0UnVmdCBlaW5lIEJhdGNoLURhdGVpIGlubmVyaGFsYiBlaW5lciBhbmRlcmVuIGF1ZlxuXApDRCAoQ0hESVIpXHRXZWNoc2VsdCBpbiBkYXMgVmVyemVpY2huaXNcblwKQ0xTXHRcdEz2c2NodCBkZW4gSW5oYWx0IGRlciBLb25zb2xlXG5cCkNPUFlcdFx0S29waWVydCBlaW5lIERhdGVpXG5cCkNUVFlcdFx0xG5kZXJ0IGRhcyBFaW5nYWJlL0F1c2dhYmUgLSBHZXLkdFxuXApEQVRFXHRcdFplaWd0IGFuIG9kZXIg5G5kZXJ0IGRhcyBTeXN0ZW1kYXR1bVxuXApERUwgKEVSQVNFKVx0TPZzY2h0IGVpbmUgb2RlciBtZWhyZXJlIERhdGVpZW5cblwKRElSXHRcdExpc3RldCBkZW4gSW5oYWx0IGVpbmVzIFZlcnplaWNobmlzc2VzXG5cCkVDSE9cdFx0S29waWVydCBkZW4gVGV4dCBkaXJla3QgenVyIEtvbnNvbGVuYXVzZ2FiZVxuXApIRUxQXHRcdFplaWd0IGRldGFsaWVydGUgSW5mb3JtYXRpb25lbiB6dSBlaW5lbiBUaGVtYVxuXApNRCAoTUtESVIpXHRFcnpldWd0IGVpbiBVbnRlcnZlcnplaWNobmlzXG5cCk1PVkVcdFx0QmV3ZWd0IGVpbmUgb2RlciBtZWhyZXJlIERhdGVpZW4gb2RlciBlaW5lbiBWZXJ6ZWljaG5pc2JhdW1cblwKUEFUSFx0XHRTZXR6dCBvZGVyIHplaWd0IGRlbiBTdWNocGZhZCBhblxuXApQUk9NUFRcdFx0xG5kZXJ0IGRlbiBCZWZlaGxzemVpbGVucHJvbXB0XG5cClJFTiAoUkVOQU1FKVx0QmVuZW5udCBlaW5lIERhdGVpIHVtXG5cClJEIChSTURJUilcdEz2c2NodCBlaW4gVW50ZXJ2ZXJ6ZWljaG5pc1xuXApTRVRcdFx0U2V0enQgb2RlciB6ZWlndCBkaWUgVW1nZWJ1bmdzdmFyaWFibGVuIGFuXG5cClRJTUVcdFx0U2V0enQgb2RlciB6ZWlndCBkaWUgYWt0dWVsbGUgU3lzdGVtemVpdCBhblxuXApUSVRMRVx0XHRTZXR6dCBkZW4gRmVuc3RlcnRpdGVsIGb8ciBkaWUgV0NNRCAtIFNpdHp1bmdcblwKVFlQRVx0XHRHaWJ0IGRlbiBJbmhhbHQgZWluZXIgVGV4dGRhdGVpIGF1c1xuXApWRVJcdFx0WmVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIFdDTUQgYW5cblwKVk9MXHRcdFplaWd0IGRpZSBCZXplaWNobnVuZyBlaW5lcyBMYXVmd2Vya2VzIGFuXG5cCkVYSVRcdFx0QmVlbmRldCBkZW4gV0NNRFxuXG5cCkdlYmVuIFNpZSBIRUxQIDxCZWZlaGw+IGVpbiwgZGFtaXQgU2llIHdlaXRlcmUgSW5mb3JtYXRpb25lbiBm/HIgZWluZW4gZGVyXG5cCm9iaWdlbiBCZWZlaGxlIGVyaGFsdGVuLlxuIgp9Cg==