LyoKICogV2luZUZpbGUKICogUG9saXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDAgTWFydGluIEZ1Y2hzCiAqIENvcHlyaWdodCAyMDAyIFN0ZXZlbiBFZHdhcmRzCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZAogKiBDb3B5cmlnaHQgMjAwNCBQaW90ciBDYWJhbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJlBsaWsiICB7CiAgICAgICAgTUVOVUlURU0gIiZPdHfzcnpcdEVudGVyIiwgICAgICAgICAgICAgIElEX0FDVElWQVRFCiAgICAgICAgTUVOVUlURU0gIiZQcnplbmllnC4uLlx0RjciLCAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waXVqLi4uXHRGOCIsICAgICAgICAgICAgICBJRF9GSUxFX0NPUFkKICAgICAgICBNRU5VSVRFTSAiVyBzJmNob3drdS4uLlx0RjkiLCAgICAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZVc3XxXHREZWwiLCAgICAgICAgICAgICAgICAgIElEX0ZJTEVfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIiZabWll8SBuYXp36i4uLiIsICAgICAgICAgICAgIDEwOQogICAgICAgIE1FTlVJVEVNICJXs2GcYyZpd2+cY2kuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIktvJm1wcmVzamEuLi4iLCAgICAgICAgICAgICAgIDExOQogICAgICAgIE1FTlVJVEVNICJEJmVrb21wcmVzamEuLi4iLCAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVSZydWNob20uLi4iLCAgICAgICAgICAgICAgICAgSURfUlVOCiAgICAgICAgTUVOVUlURU0gIiZEcnVrdWouLi4iLCAgICAgICAgICAgICAgICAgIDEwMgogICAgICAgIE1FTlVJVEVNICJTa29qYXJ6Li4uIiwgICAgICAgICAgICAgICAgICAxMDMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVSZ0d/NyeiBmb2xkZXIuLi4iLCAgICAgICAgICAgMTExCiAgICAgICAgTUVOVUlURU0gIiZTenVrYWouLi4iLCAgICAgICAgICAgICAgICAgIDEwNAogICAgICAgIE1FTlVJVEVNICJaJmF6bmFjeiBwbGlraS4uLiIsICAgICAgICAgICAxMTYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICImV3lqnGNpZVx0QWx0K1giLCAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2Vsc2UKICAgICAgICBNRU5VSVRFTSAiJld5apxjaWUiLCAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImRHlzayIgIHsKICAgICAgICBNRU5VSVRFTSAiJktvcGl1aiBkdXNrLi4uIiwgICAgICAgICAgICAgMjAxCiAgICAgICAgTUVOVUlURU0gIiZFdHlraWV0YSBkeXNrdS4uLiIsICAgICAgICAgIDIwMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRm9ybWF0dWogZHlzay4uLiIsICAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIiZTdHfzcnogZHlzayBzeXN0ZW1vd3kuLi4iLCAtMSAgICAvKlRPRE8qLwojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlBvZLO5Y3ogRHlzayBTaWVjaW93eSIsICAgICAgSURfQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gIiZPZLO5Y3ogRHlzayBTaWVjaW93eSIsICAgICAgIElEX0RJU0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJVZG9zdOpwbmlqIGpha28uLi4iLCAgICAgICAgICAyNTQKICAgICAgICBNRU5VSVRFTSAiJk5pZSB1ZG9zdOpwbmlhai4uLiIsICAgICAgICAgMjU1CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIld5YvNyICZkeXNrdS4uLiIsICAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICImS2F0YWxvZ2kiICB7CiAgICAgICAgTUVOVUlURU0gIiZOYXN06nBueSBwb3ppb21cdCsiLCAgICAgICAgIDMwMQogICAgICAgIE1FTlVJVEVNICImUm96d2nxIGRyemV3b1x0KiIsICAgICAgICAgICAzMDIKICAgICAgICBNRU5VSVRFTSAiUm96d2nxICZ3c3p5c3Rrb1x0U3RyZysqIiwgICAgMzAzCiAgICAgICAgTUVOVUlURU0gIiZad2nxIGRyemV3b1x0LSIsICAgICAgICAgICAgIDMwNAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJaYXpuYWN6ICZwb2RrYXRhbG9naSIsICAgICAgICA1MDUKICAgIH0KCiAgICBQT1BVUCAiJldpZG9rIiAgewogICAgICAgIE1FTlVJVEVNICImRHJ6ZXdvIGkga2F0YWxvZ2kiLCAgICAgICAgICA0MTMKICAgICAgICBNRU5VSVRFTSAiRCZyemV3byIsICAgICAgICAgICAgICAgICAgICAgNDExCiAgICAgICAgTUVOVUlURU0gIiZLYXRhbG9naSIsICAgICAgICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUG+zuWN6IiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZOYXp3YSIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfTkFNRQogICAgICAgIE1FTlVJVEVNICImV3N6eXN0a2llIGF0cnlidXR5IHBsaWt1IiwgICBJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIld5YnJhbmUgJmF0cnlidXR5IHBsaWt1Li4uIiwgIElEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQJm9zb3J0dWogYWxmYWJldHljem5pZSIsICAgICA0MDQKICAgICAgICBNRU5VSVRFTSAiUG9zb3J0dWogcG8gJnR5cGllIiwgICAgICAgICAgNDA1CiAgICAgICAgTUVOVUlURU0gIlBvc29ydHVqIHBvIHdpZSZsa2+cY2kiLCAgICAgIDQwNgogICAgICAgIE1FTlVJVEVNICJQbyZzb3J0dWogcG8gZGFjaWUiLCAgICAgICAgICAgIDQwNwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJGaWx0cnVqIHdpZG9rICYuLi4iLCAgICAgICAgICAgICAgSURfVklFV19GSUxURVIKICAgIH0KCiAgICBQT1BVUCAiJk9wY2plIiAgewogICAgICAgIE1FTlVJVEVNICImUG90d2llcmR6ZW5pZS4uLiIsICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAiJkN6Y2lvbmthLi4uIiwgICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAiJlVzdGF3aWVuaWEgcGFza2EgbmFyeupkemkuLi4iLCA1MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUGFzZWsgJm5hcnrqZHppIiwgICAgICAgICAgICAgSURfVklFV19UT09MX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJQYXNlayAmZHlza/N3IiwgICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJQYXNlayAmc3RhdHVzdSIsICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIlBls255ICZla3Jhblx0Q3RybCtTaGlmdCtTIiwgIElEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlptaW5pbWFsaXp1aiBwcnp5IHN0YXJjaWUiLCAgNTA0CiAgICAgICAgTUVOVUlURU0gIlomYXBpc3ogdXN0YXdpZW5pYSBwcnplZCB6YWtv8WN6ZW5pZW0iLDUxMQogICAgfQoKCiAgICBQT1BVUCAiJkJlenBpZWN6ZfFzdHdvIiAgewogICAgICAgIE1FTlVJVEVNICImRG9zdOpwLi4uIiwgICAgICAgICAgICAgICAgICA2MDUKICAgICAgICBNRU5VSVRFTSAiJkxvZ293YW5pZS4uLiIsICAgICAgICAgICAgICAgNjA2CiAgICAgICAgTUVOVUlURU0gIiZXs2GcY2ljaWVsLi4uIiwgICAgICAgICAgICAgIDYwNwogICAgfQoKICAgIFBPUFVQICImT2tubyIgIHsKICAgICAgICBNRU5VSVRFTSAiJk5vd2Ugb2tubyIsICAgICAgICAgICAgICAgICAgSURfV0lORE9XX05FVwogICAgICAgIE1FTlVJVEVNICImS2Fza2FkdWq5Y29cdEN0cmwrRjUiLCAgICAgICBJRF9XSU5ET1dfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICImVHl0dbMgcGlvbm93byIsICAgICAgICAgICAgICBJRF9XSU5ET1dfVElMRV9IT1JaCiAgICAgICAgTUVOVUlURU0gIlR5dHWzICZwb3ppb21vXHRDdHJsK0Y0IiwgICAgIElEX1dJTkRPV19USUxFX1ZFUlQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJSb3ptaWWc5iBhdXRvbWF0eWN6bmllIiwgICAgICBJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCiAgICAgICAgTUVOVUlURU0gIlJvem1pZZzmICZzeW1ib2xlIiwgICAgICAgICAgIElEX1dJTkRPV19BUlJBTkdFCiAgICAgICAgTUVOVUlURU0gIiZPZJx3aWW/XHRGNSIsICAgICAgICAgICAgICAgSURfUkVGUkVTSAogICAgfQoKICAgIFBPUFVQICImPyIgIHsKICAgICAgICBNRU5VSVRFTSAiJlRlbWF0dSBwb21vY3lcdEYxIiwgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICImU3p1a2FqLi4uIiwgICAgICAgICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIiZVv3l3YW5pZSBwb21vY3kiLCAgICAgICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJldpbmVmaWxlLi4uIiwgICAgICAgICAgICAgICAgSURfQUJPVVQKICAgIH0KfQoKSUREX1NFTEVDVF9ERVNUSU5BVElPTiBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJXeWLzciBjZWx1IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiaMY2llv2thOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFudWx1aiIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImUHJ6ZWdsuWRhaiIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9ESUFMT0dfVklFV19UWVBFIERJQUxPRyBESVNDQVJEQUJMRSAxNSwgMTMsIDE2MSwgOTcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV2Vks3VnIHR5cHUgcGxpa3UiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIiZOYXp3YToiLC0xLDcsOCwyMiwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19WSUVXX1BBVFRFUk4sMzEsNyw2MywxMixFU19BVVRPSFNDUk9MTAogICAgR1JPVVBCT1ggICAgICAgICJXeZx3aWV0bCBwbGlraSB0eXB1IiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIiZLYXRhbG9naSIsSURDX1ZJRVdfVFlQRV9ESVJFQ1RPUklFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDMyLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQcm9ncmFteSIsSURDX1ZJRVdfVFlQRV9QUk9HUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDQzLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkRva3UmbWVudHkiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJklubmUgcGxpa2kiLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiUG9rYb8gcGxpa2kgdWtyeXRlIGkgJnN5c3RlbW93ZSIsSURDX1ZJRVdfVFlQRV9ISURERU4sCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgxLDEyNiw5CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEwNCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFudWx1aiIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV7NhnGNpd2+cY2k6ICVzIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTEsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLElEQ0FOQ0VMLDE5MSwyOSw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICImTmF6d2EgcGxpa3U6IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlBls25hIJxjaWW/a2E6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImT3N0YXRuaW8gbW9keWZpa293YW55OiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImV2Vyc2phOiIsLTEsNyw0MCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1ZFUlNJT04sNzEsNDAsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJQcmF3YSBhJnV0b3Jza2llOiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIldpZSZsa2+c5joiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQXRyeWJ1dHkiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIlR5bGtvIGRvICZvZGN6eXR1IixJRENfQ0hFQ0tfUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNyw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZVa3J5dHkiLElEQ19DSEVDS19ISURERU4sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5Miw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZBcmNoaXdhbG55IixJRENfQ0hFQ0tfQVJDSElWRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZTeXN0ZW1vd3kiLElEQ19DSEVDS19TWVNURU0sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5MiwxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJTJmtvbXByZXNvd2FueSIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiV2UmcnNqYSIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfRk9OVF9TRUxfRExHX05BTUUgICAiV3Byb3dhZHphbmllIHVzdGF3aWXxIGN6Y2lvbmtpIgogICAgSURTX0ZPTlRfU0VMX0VSUk9SICAgICAgIkKzuWQgcHJ6eSB3eWJpZXJhbml1IGN6Y2lvbmtpIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfV0lORUZJTEUgICAgICAgICAgICAiV2luZWZpbGUiCiAgICBJRFNfRVJST1IgICAgICAgICAgICAgICAiQrO5ZCIKICAgIElEU19ST09UX0ZTICAgICAgICAgICAgICJyb290IGZzIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgInVuaXhmcyIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJQdWxwaXQiCiAgICBJRFNfU0hFTEwgICAgICAgICAgICAgICAiUHVscGl0IiAgICAgICAvKiB0s3VtYWN6ZW5pZSBuaWUgZG9zs293bmUsIGFsZSBjaHliYSBsZXBpZWogcGFzdWplICovCiAgICBJRFNfVElUTEVGTVQgICAgICAgICAgICAiJXMgLSAlcyIKICAgIElEU19OT19JTVBMICAgICAgICAgICAgICJKZXN6Y3plIG5pZSB6YWltcGxlbWVudG93YW5lIgogICAgSURTX1dJTkVfRklMRSAgICAgICAgICAgIldpbmUgRmlsZSIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0NPTF9OQU1FICAgICAgICAgICAgIk5hendhIgogICAgSURTX0NPTF9TSVpFICAgICAgICAgICAgIldpZWxrb5zmIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIkNEYXRlIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkFEYXRlIgogICAgSURTX0NPTF9NREFURSAgICAgICAgICAgIk1EYXRlIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIkluZGVrcy9pbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICJEb3dpuXphbmlhIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIkF0cnlidXR5IgogICAgSURTX0NPTF9TRUMgICAgICAgICAgICAgIlByYXdhIGRvc3TqcHUiCgogICAgSURTX0ZSRUVfU1BBQ0VfRk1UICAgICAgIiVzIHogJXMgd29sbmUiCn0K