LyoKICogQ29tbW9uIERpYWxvZyBUZXN0IEppZyBFeGVyY2lzZXIKICogRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChjKSAxOTk5IEVyaWMgV2lsbGlhbXMuCiAqIENvcHlyaWdodCAoYykgMjAwMyBWaW5jZW50IELpcm9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgpDbWRsZ3RzdE1lbnUgTUVOVQp7CiBQT1BVUCAiJkZpY2hpZXIiCiB7CiAgTUVOVUlURU0gIiZRdWl0dGVyIiwgQ01fVV9FWElUCiB9CgogUE9QVVAgIiZDb21tZGxnIgogewogIE1FTlVJVEVNICImT3V2cmlyIiwgQ01fVV9PUEVOCiAgTUVOVUlURU0gIiZFbnJlZ2lzdHJlciIsIENNX1VfU0FWRQogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImQ291bGV1ciIsIENNX1VfQ09MT1IKICBNRU5VSVRFTSAiJlBvbGljZSIsIENNX1VfRk9OVAogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImUmVjaGVyY2hlciIsIENNX1VfRklORAogIE1FTlVJVEVNICJSZW1wJmxhY2VyIiwgQ01fVV9SRVBMQUNFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZJbXByaW1lciIsIENNX1VfUFJJTlQKIH0KCiBQT1BVUCAiJkRyYXBlYXV4IgogewogIE1FTlVJVEVNICImRmljaGllciIsIENNX0ZfRklMRQogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImQ291bGV1ciIsIENNX0ZfQ09MT1IKICBNRU5VSVRFTSAiJlBvbGljZSIsIENNX0ZfRk9OVAogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICJSZWNoZXJjaGVyLyZSZW1wbGFjZXIiLCBDTV9GX0ZJTkRSRVBMQUNFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZJbXByaW1lciIsIENNX0ZfUFJJTlQKIH0KCiBQT1BVUCAiJkFpZGUiCiB7CiAgTUVOVUlURU0gIiZVc2FnZSIsIENNX0hfVVNBR0UKICBNRU5VSVRFTSAiJkEgcHJvcG9zLi4uIiwgQ01fSF9BQk9VVAogfQoKfQoKQ29sb3JfRmxhZ3NfRGlhbG9nIERJQUxPRyAxMSwgMjAsIDIwNywgMTA3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIGNvdWxldXIiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTQ4LCA2LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFubnVsZXIiLCBJRENBTkNFTCwgMTQ4LCAyNCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFpZGUiLCBDTV9SX0hFTFAsIDE0OCwgNDIsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfRU5BQkxFSE9PSyIsIElfQ0NfRU5BQkxFSE9PSywgMTIsIDEyLCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfRU5BQkxFVEVNUExBVEUiLCBJX0NDX0VOQUJMRVRFTVBMQVRFLCAxMiwgMjQsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19FTkFCTEVURU1QTEFURUhBTkRMRSIsIElfQ0NfRU5BQkxFVEVNUExBVEVIQU5ETEUsIDEyLCAzNiwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX0ZVTExPUEVOIiwgSV9DQ19GVUxMT1BFTiwgMTIsIDQ4LCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfUFJFVkVOVEZVTExPUEVOIiwgSV9DQ19QUkVWRU5URlVMTE9QRU4sIDEyLCA2MCwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX1JHQklOSVQiLCBJX0NDX1JHQklOSVQsIDEyLCA3MiwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX1NIT1dIRUxQIiwgSV9DQ19TSE9XSEVMUCwgMTIsIDg0LCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCn0KCkZvbnRfRmxhZ3NfRGlhbG9nIERJQUxPRyA5LCAyMCwgMjA3LCAzMTMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04KQ0FQVElPTiAiRHJhcGVhdXggZGUgbGEgYm/udGUgZGUgZGlhbG9ndWUgZGUgY2hvaXggZGUgbGEgcG9saWNlIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTQ4LCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiQ0ZfQVBQTFkiLCBJX0NGX0FQUExZLCAxMiwgMTIsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfQU5TSU9OTFkiLCBJX0NGX0FOU0lPTkxZLCAxMiwgMjQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfQk9USCIsIElfQ0ZfQk9USCwgMTIsIDM2LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX1RUT05MWSIsIElfQ0ZfVFRPTkxZLCAxMiwgNDgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRUZGRUNUUyIsIElfQ0ZfRUZGRUNUUywgMTIsIDYwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0VOQUJMRUhPT0siLCBJX0NGX0VOQUJMRUhPT0ssIDEyLCA3MiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9FTkFCTEVURU1QTEFURSIsIElfQ0ZfRU5BQkxFVEVNUExBVEUsIDEyLCA4NCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9FTkFCTEVURU1QTEFURUhBTkRMRSIsIElfQ0ZfRU5BQkxFVEVNUExBVEVIQU5ETEUsIDEyLCA5NiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9GSVhFRFBJVENIT05MWSIsIElfQ0ZfRklYRURQSVRDSE9OTFksIDEyLCAxMDgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRk9SQ0VGT05URVhJU1QiLCBJX0NGX0ZPUkNFRk9OVEVYSVNULCAxMiwgMTIwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0lOSVRUT0xPR0ZPTlRTVFJVQ1QiLCBJX0NGX0lOSVRUT0xPR0ZPTlRTVFJVQ1QsIDEyLCAxMzIsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTElNSVRTSVpFIiwgSV9DRl9MSU1JVFNJWkUsIDEyLCAxNDQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9GQUNFU0VMIiwgSV9DRl9OT0ZBQ0VTRUwsIDEyLCAxNTYsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9PRU1GT05UUyIsIElfQ0ZfTk9PRU1GT05UUywgMTIsIDE2OCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9OT1NJTVVMQVRJT05TIiwgSV9DRl9OT1NJTVVMQVRJT05TLCAxMiwgMTgwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PU0laRVNFTCIsIElfQ0ZfTk9TSVpFU0VMLCAxMiwgMTkyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PU1RZTEVTRUwiLCBJX0NGX05PU1RZTEVTRUwsIDEyLCAyMDQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9WRUNUT1JGT05UUyIsIElfQ0ZfTk9WRUNUT1JGT05UUywgMTIsIDIxNiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9QUklOVEVSRk9OVFMiLCBJX0NGX1BSSU5URVJGT05UUywgMTIsIDIyOCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9TQ0FMQUJMRU9OTFkiLCBJX0NGX1NDQUxBQkxFT05MWSwgMTIsIDI0MCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9TSE9XSEVMUCIsIElfQ0ZfU0hPV0hFTFAsIDEyLCAyNjQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfU0NSRUVORk9OVFMiLCBJX0NGX1NDUkVFTkZPTlRTLCAxMiwgMjUyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX1VTRVNUWUxFIiwgSV9DRl9VU0VTVFlMRSwgMTIsIDI3NiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9XWVNJV1lHIiwgSV9DRl9XWVNJV1lHLCAxMiwgMjg4LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAp9CgpGaW5kX0ZsYWdzX0RpYWxvZyBESUFMT0cgOCwgMjQsIDIwNywgMzA2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGZlbup0cmUgZGUgcmVjaGVyY2hlL3JlbXBsYWNlbWVudCIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNDgsIDYsIDUwLCAxNAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDgsIDI0LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFpZGUiLCBJREhFTFAsIDE0OCwgNDIsIDUwLCAxNAogQ0hFQ0tCT1ggIkZSX0RJQUxPR1RFUk0iLCBJX0ZSX0RJQUxPR1RFUk0sIDI0LCAxMiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0RPV04iLCBJX0ZSX0RPV04sIDI0LCAyNCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0VOQUJMRUhPT0siLCBJX0ZSX0VOQUJMRUhPT0ssIDI0LCAzNiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0VOQUJMRVRFTVBMQVRFIiwgSV9GUl9FTkFCTEVURU1QTEFURSwgMjQsIDQ4LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX0ZSX0VOQUJMRVRFTVBMQVRFSEFORExFLCAyNCwgNjAsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9GSU5ETkVYVCIsIElfRlJfRklORE5FWFQsIDI0LCA3MiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVNQVRDSENBU0UiLCBJX0ZSX0hJREVNQVRDSENBU0UsIDI0LCA4NCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVXSE9MRVdPUkQiLCBJX0ZSX0hJREVXSE9MRVdPUkQsIDI0LCA5NiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVVUERPV04iLCBJX0ZSX0hJREVVUERPV04sIDI0LCAxMDgsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9NQVRDSENBU0UiLCBJX0ZSX01BVENIQ0FTRSwgMjQsIDEyMCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PTUFUQ0hDQVNFIiwgSV9GUl9OT01BVENIQ0FTRSwgMjQsIDEzMiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PVVBET1dOIiwgSV9GUl9OT1VQRE9XTiwgMjQsIDE0NCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PV0hPTEVXT1JEIiwgSV9GUl9OT1dIT0xFV09SRCwgMjQsIDE1NiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX1JFUExBQ0UiLCBJX0ZSX1JFUExBQ0UsIDI0LCAxNjgsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9SRVBMQUNFQUxMIiwgSV9GUl9SRVBMQUNFQUxMLCAyNCwgMTgwLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfU0hPV0hFTFAiLCBJX0ZSX1NIT1dIRUxQLCAyNCwgMTkyLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfV0hPTEVXT1JEIiwgSV9GUl9XSE9MRVdPUkQsIDI0LCAyMDQsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENPTlRST0wgIiIsIC0xLCAic3RhdGljIiwgU1NfQkxBQ0tSRUNUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMiwgMTIsIDExLCAxMwogQ09OVFJPTCAiIiwgLTEsICJzdGF0aWMiLCBTU19CTEFDS1JFQ1QgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEyLCA3MiwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDE2OCwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDE4MCwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMjQsIDIyOCwgMTEsIDEzCiBDT05UUk9MICJJbmRpcXVlIGxlcyBkcmFwZWF1eCBxdWkgc29udCBmb3VybmlzIHBhciBsZSBzeXN06G1lIGV0IHF1aSBkb2l2ZW50IOp0cmUgZWZmYWPpcyBwYXIgbCd1c2FnZXIuIiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCA0OCwgMjI4LCA5OCwgMzYKfQoKUHJpbnRfRmxhZ3NfRGlhbG9nIERJQUxPRyA0LCAxNywgMjM5LCAyODcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGQnaW1wcmVzc2lvbiIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxODAsIDYsIDUwLCAxNAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxODAsIDI0LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFpZGUiLCBDTV9SX0hFTFAsIDE4MCwgNDIsIDUwLCAxNAogQ0hFQ0tCT1ggIlBEX0FMTFBBR0VTIiwgSV9QRF9BTExQQUdFUywgMTIsIDEyLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfQ09MTEFURSIsIElfUERfQ09MTEFURSwgMTIsIDI0LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRElTQUJMRVBSSU5UVE9GSUxFIiwgSV9QRF9ESVNBQkxFUFJJTlRUT0ZJTEUsIDEyLCAzNiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVBSSU5USE9PSyIsIElfUERfRU5BQkxFUFJJTlRIT09LLCAxMiwgNDgsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVQUklOVFRFTVBMQVRFIiwgSV9QRF9FTkFCTEVQUklOVFRFTVBMQVRFLCAxMiwgNjAsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVQUklOVFRFTVBMQVRFSEFORExFIiwgSV9QRF9FTkFCTEVQUklOVFRFTVBMQVRFSEFORExFLCAxMiwgNzIsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVTRVRVUEhPT0siLCBJX1BEX0VOQUJMRVNFVFVQSE9PSywgMTIsIDg0LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFU0VUVVBURU1QTEFURSIsIElfUERfRU5BQkxFU0VUVVBURU1QTEFURSwgMTIsIDk2LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFU0VUVVBURU1QTEFURUhBTkRMRSIsIElfUERfRU5BQkxFU0VUVVBURU1QTEFURUhBTkRMRSwgMTIsIDEwOCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0hJREVQUklOVFRPRklMRSIsIElfUERfSElERVBSSU5UVE9GSUxFLCAxMiwgMTIwLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfTk9QQUdFTlVNUyIsIElfUERfTk9QQUdFTlVNUywgMTIsIDEzMiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX05PU0VMRUNUSU9OIiwgSV9QRF9OT1NFTEVDVElPTiwgMTIsIDE0NCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX05PV0FSTklORyIsIElfUERfTk9XQVJOSU5HLCAxMiwgMTU2LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUEFHRU5VTVMiLCBJX1BEX1BBR0VOVU1TLCAxMiwgMTY4LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUFJJTlRTRVRVUCIsIElfUERfUFJJTlRTRVRVUCwgMTIsIDE4MCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1BSSU5UVE9GSUxFIiwgSV9QRF9QUklOVFRPRklMRSwgMTIsIDE5MiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1JFVFVSTkRDIiwgSV9QRF9SRVRVUk5EQywgMTIsIDIwNCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1JFVFVSTkRFRkFVTFQiLCBJX1BEX1JFVFVSTkRFRkFVTFQsIDEyLCAyMTYsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9SRVRVUk5JQyIsIElfUERfUkVUVVJOSUMsIDEyLCAyMjgsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9TRUxFQ1RJT04iLCBJX1BEX1NFTEVDVElPTiwgMTIsIDI0MCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1NIT1dIRUxQIiwgSV9QRF9TSE9XSEVMUCwgMTIsIDI1MiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1VTRURFVk1PREVDT1BJRVMiLCBJX1BEX1VTRURFVk1PREVDT1BJRVMsIDEyLCAyNjQsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKfQoKRmlsZV9GbGFnc19EaWFsb2cgRElBTE9HIDYsIDE1LCAyMDcsIDIyNwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRHJhcGVhdXggZGUgbGEgYm/udGUgZGUgZGlhbG9ndWUgZCdvdXZlcnR1cmUgZXQgZCdlbnJlZ2lzdHJlbWVudCBkZSBmaWNoaWVyIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTQ4LCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiT0ZOX0FMTE9XTVVMVElTRUxFQ1QiLCBJX09GTl9BTExPV01VTFRJU0VMRUNULCAxMiwgMTIsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fQ1JFQVRFUFJPTVBUIiwgSV9PRk5fQ1JFQVRFUFJPTVBULCAxMiwgMjQsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fRU5BQkxFSE9PSyIsIElfT0ZOX0VOQUJMRUhPT0ssIDEyLCAzNiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9FTkFCTEVURU1QTEFURSIsIElfT0ZOX0VOQUJMRVRFTVBMQVRFLCAxMiwgNDgsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX09GTl9FTkFCTEVURU1QTEFURUhBTkRMRSwgMTIsIDYwLCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0VYVEVOU0lPTkRJRkZFUkVOVCIsIElfT0ZOX0VYVEVOU0lPTkRJRkZFUkVOVCwgMTIsIDcyLCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0ZJTEVNVVNURVhJU1QiLCBJX09GTl9GSUxFTVVTVEVYSVNULCAxMiwgODQsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fSElERVJFQURPTkxZIiwgSV9PRk5fSElERVJFQURPTkxZLCAxMiwgOTYsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fTk9DSEFOR0VESVIiLCBJX09GTl9OT0NIQU5HRURJUiwgMTIsIDEwOCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1JFQURPTkxZUkVUVVJOIiwgSV9PRk5fTk9SRUFET05MWVJFVFVSTiwgMTIsIDEyMCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1RFU1RGSUxFQ1JFQVRFIiwgSV9PRk5fTk9URVNURklMRUNSRUFURSwgMTIsIDEzMiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1ZBTElEQVRFIiwgSV9PRk5fTk9WQUxJREFURSwgMTIsIDE0NCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9PVkVSV1JJVEVQUk9NUFQiLCBJX09GTl9PVkVSV1JJVEVQUk9NUFQsIDEyLCAxNTYsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fUEFUSE1VU1RFWElTVCIsIElfT0ZOX1BBVEhNVVNURVhJU1QsIDEyLCAxNjgsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fUkVBRE9OTFkiLCBJX09GTl9SRUFET05MWSwgMTIsIDE4MCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9TSEFSRUFXQVJFIiwgSV9PRk5fU0hBUkVBV0FSRSwgMTIsIDE5MiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9TSE9XSEVMUCIsIElfT0ZOX1NIT1dIRUxQLCAxMiwgMjA0LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCn0KCkFib3V0RGlhbG9nIERJQUxPRyA2LCAxNSwgMTk0LCAxMTkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsAgcHJvcG9zIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDcyLCA5NiwgNTAsIDE0CiBMVEVYVCAiR2FiYXJpdCBkZSB0ZXN0IGRlcyBib+50ZXMgZGUgZGlhbG9ndWUgc3RhbmRhcmRzLCB2ZXJzaW9uIDEuMjAiLCAtMSwgMTMsIDM2LCAxNjgsIDEyCiBMVEVYVCAiKGMpIDE5OTktMjAwMCwgRXJpYyBXaWxsaWFtcy4gIERyb2l0cyB0ZWxzIHF1J2FjY29yZOlzIHBhciBsYSBsaWNlbmNlIGRlIFdpbmUuICBOJ2FjY3VtdWxleiBwYXMgZHUgY29kZSB0b3V0IHNldWwuLi4gcGFydGFnZXotbGUhIiwgLTEsIDE4LCA2MCwgMTU3LCAyNAogSUNPTiAiQWJvdXRJY29uIiwgLTEsIDg0LCAxMiwgMTgsIDIwCn0KClVzYWdlRGlhbG9nIERJQUxPRyAxODMsIDIyLCAxOTAsIDMwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVXNhZ2UiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNzAsIDI3NiwgNTAsIDE0CiBMVEVYVCAiR2FiYXJpdCBkZSB0ZXN0IGRlcyBib+50ZXMgZGUgZGlhbG9ndWUgc3RhbmRhcmRzLCB2ZXJzaW9uIDEuMjAiLCAtMSwgMTMsIDQ4LCAxNjgsIDEyCiBMVEVYVCAiQ2V0IG91dGlsIHRlc3RlIENPTU1ETEcgcG91ciBXaW5lLiIsIC0xLCAxMiwgNzIsIDE2OCwgMTIKIExURVhUICJMZXMgZHJhcGVhdXggc29udCBzcOljaWbpcyBkYW5zIGxlIG1lbnUgRHJhcGVhdXguIiwgLTEsIDEyLCA5NiwgMTY4LCAxMgogTFRFWFQgIkxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIGNvdWxldXIgY2hhbmdlIGxhIGNvdWxldXIgZGUgbCdhcnJp6HJlLXBsYW4uIiwgLTEsIDEyLCAxMjAsIDE2OCwgMTIKIExURVhUICJMYSBib+50ZSBkZSBkaWFsb2d1ZSBkZSBjaG9peCBkZSBsYSBwb2xpY2UgY2hhbmdlIHRvdXRlcyBsZXMgcG9saWNlcywgZXQgbGEgY291bGV1ciBkZSBsYSBwb2xpY2Ugc2kgQ0ZfRUZGRUNUUyBlc3Qgc+lsZWN0aW9ubukuIiwgLTEsIDEyLCAxNDQsIDE2OCwgMjQKIExURVhUICJMZSBub20gY29tcGxldCBldCBsZSB0aXRyZSBkZSBsYSBkZXJuaehyZSBvcOlyYXRpb24gcul1c3NpZSBkJ291dmVydHVyZSBvdSBkJ2VucmVnaXN0cmVtZW50IHNlIHRyb3V2ZW50IGRhbnMgbGUgY29pbiBlbiBoYXV0IOAgZ2F1Y2hlLiIsIC0xLCAxMiwgMTgwLCAxNjgsIDI0CiBMVEVYVCAiKGMpIDE5OTktMjAwMCwgRXJpYyBXaWxsaWFtcy4gIERyb2l0cyB0ZWxzIHF1J2FjY29yZOlzIHBhciBsYSBsaWNlbmNlIGRlIFdpbmUuICBOJ2FjY3VtdWxleiBwYXMgZHUgY29kZSB0b3V0IHNldWwuLi4gcGFydGFnZXotbGUhIiwgLTEsIDEyLCAyMjgsIDE2OCwgMzYKIElDT04gIkFib3V0SWNvbiIsIC0xLCA4NiwgMTIsIDE4LCAyMAogQ09OVFJPTCAiIiwgLTEsICJzdGF0aWMiLCBTU19CTEFDS1JFQ1QgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEyLCAyMTYsIDE2OCwgMgp9Cg==