LyoKICogUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDIgUm9iZXJ0IERpY2tlbnNvbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ERUZBVUxUCgovKgogKiBNZW51CiAqLwoKSURDX1JFR0VESVQgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZQbGlrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiWmEma2/xY3oiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgLi4uIiwgICAgICAgICAgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVqZXN0ciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZJbXBvcnR1aiByZWplc3RyLi4uIiwgICAgICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRWtzcG9ydHVqIHJlamVzdHIuLi4iLCAgICAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlBvZLO5Y3ogcmVqZXN0ciBzaWVjaW93eS4uLiIsSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZPZLO5Y3ogcmVqZXN0ciBzaWVjaW93eS4uLiIsIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRHJ1a3VqXHRDdHJsK1AiLCAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlphJmtv8WN6IiwgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZFZHljamEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTW9keWZpa3VqIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICImTm93eSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJktsdWN6IiwgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSB0ZWtzdG93YSIsICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSBiaW5hcm5hIiwgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSBsaWN6Ym93YSAoRFdPUkQpIixJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlUmc3XxXHREZWwiLCAgICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlombWll8SBuYXp36lx0RjIiLCAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29waXVqIG5henfqIGtsdWN6YSIsICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWm5hamSfLi4uXHRDdHJsK0YiLCAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJabiZhamSfIG5hc3TqcG55XHRGMyIsICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZXaWRvayIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZQYXNlayBzdGFudSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlBvJmR6aWVsIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk9knHdpZb9cdEY1IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICImVWx1YmlvbmUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRG9kYWogZG8gdWx1YmlvbnljaCIsICAgICAgICBJRF9GQVZPVVJJVEVTX0FERFRPRkFWT1VSSVRFUwogICAgICAgICwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZVc3XxIHVsdWJpb255IiwgICAgICAgICAgICAgIElEX0ZBVk9VUklURVNfUkVNT1ZFRkFWT1VSSVRFCiAgICAgICAgLCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIlBvbW8mYyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZUZW1hdHkgUG9tb2N5XHRGMSIsICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJFZHl0b3IgcmVqZXN0cnUgLSBpJm5mb3JtYWNqZSIsSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJk1vZHlmaWt1aiIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKCU1FTlVJVEVNICJNb2R5ZmlrdWogZGFuZSBiaW5hcm5lIiwgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZVc3XxXHREZWwiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJlptaWXxIG5henfqIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICBFTkQKICBQT1BVUCAiIgogIEJFR0lOCiAgICAgICAgUE9QVVAgIiZOb3d5IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImS2x1Y3oiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSB0ZWtzdG93YSIsICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRhbmEgYmluYXJuYSIsICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEYW5hIGxpY3pib3dhIChEV09SRCkiLElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICBFTkQKRU5ECgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0FCT1VUQk9YIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMzAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZHl0b3IgcmVqZXN0cnUgLSBpbmZvcm1hY2plIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBJQ09OICAgICAgICAgICAgSURJX1JFR0VESVQsSURJX1JFR0VESVQsMTQsOSwxNiwxNgogICAgTFRFWFQgICAgICAgICAgICJSZWFjdE9TIHJlZ2VkaXQgVmVyc2lvbiAxLjAiLElEQ19TVEFUSUMsNDksMTAsMTE5LDgsCiAgICAgICAgICAgICAgICAgICAgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiQ29weXJpZ2h0IChDKSAyMDAyIFJlYWN0T1MgVGVhbSIsSURDX1NUQVRJQyw0OSwyMCwxMTksOAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTUsNiwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWR5Y2phIGRhbmVqIHRla3N0b3dlaiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJOYXp3YToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJXYXJ0b5zmOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkFudWx1aiIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZHljamEgZGFuZWogbGljemJvd2VqIChEV09SRCkiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTmF6d2E6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiV2FydG+c5joiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJTeXN0ZW0iLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICJTemVzbmFzdGtvd3kiLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRHppZXNp6nRueSIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQW51bHVqIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIk5hendhIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cCIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJXYXJ0b5zmIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAiRWR5dG9yIHJlamVzdHJ1IgogICAgSURDX1JFR0VESVQgICAgICAgICAgICAgIlJFR0VESVQiCiAgICBJRENfUkVHRURJVF9GUkFNRSAgICAgICAiUkVHRURJVF9GUkFNRSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIlphd2llcmEgcG9sZWNlbmlhIG9wZXJ1arljZSBuYSBjYbN5bSByZWplc3RyemUiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIGVkeWNqaSBrbHVjenkgaSBkYW55Y2giCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIHd5Z2y5ZHUgcHJvZ3JhbXUiCiAgICBJRF9GQVZPVVJJVEVTX01FTlUgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIHNrcvN083cgZG8ga2x1Y3p5IHJlamVzdHJ1IgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIlphd2llcmEgcG9sZWNlbmlhIHd5nHdpZXRsYWq5Y2UgaW5mb3JtYWNqZSBvIHByb2dyYW1pZSIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJaYXdpZXJhIHBvbGVjZW5pYSB0d29yerljZSBub3dlIGtsdWN6ZSBpIGRhbmUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJQb3p3YWxhIHptb2R5Zmlrb3dh5iB3YXJ0b5zmIGRhbmVqIgogICAgSURfRURJVF9ORVdfS0VZICAgICAgICAgIkRvZGFqZSBub3d5IGtsdWN6IgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIkRvZGFqZSBub3e5IGRhbrkgdGVrc3Rvd7kiCiAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRSAiRG9kYWplIG5vd7kgZGFuuSBiaW5hcm65IgogICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRSAgIkRvZGFqZSBub3e5IGRhbrkgbGljemJvd7kiCiAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUgIkltcG9ydHVqZSBwbGlrIHRla3N0b3d5IGRvIHJlamVzdHJ1IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWtzcG9ydHVqZSBjeuqc5iBsdWIgY2Gzb5zmIHJlamVzdHJ1IGRvIHBsaWt1IHRla3N0b3dlZ28iCiAgICBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAio7ljenkgc2nqIGRvIHJlamVzdHJ1IGlubmVnbyBrb21wdXRlcmEiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2SzuWN6YSBzaeogb2QgcmVqZXN0cnUgaW5uZWdvIGtvbXB1dGVyYSIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJEcnVrdWplIGNhs2+c5iBsdWIgY3rqnOYgcmVqZXN0cnUiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJXeZx3aWV0bGEgaW5mb3JtYWNq6iBvIHByb2dyYW1pZSwgbnVtZXJ6ZSB3ZXJzamkgaSBwcmF3YWNoIGF1dG9yc2tpY2giCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX0VYSVQgICAgICAgICJLb/FjenkgZHppYbNhbmllIGVkeXRvcmEgcmVqZXN0cnUiCiAgICBJRF9GQVZPVVJJVEVTX0FERFRPRkFWT1VSSVRFUyAiRG9kYWplIGtsdWN6ZSBkbyBsaXN0eSB1bHViaW9ueWNoIgogICAgSURfRkFWT1VSSVRFU19SRU1PVkVGQVZPVVJJVEUgIlVzdXdhIGtsdWN6ZSB6IGxpc3R5IHVsdWJpb255Y2giCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiV3mcd2lldGxhIGx1YiB1a3J5d2EgcGFzZWsgc3RhbnUiCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAiWm1pZW5pYSBwcm9wb3JjamUgc3plcm9rb5xjaSBwYW5lbGkiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiT2Scd2llv2EgemF3YXJ0b5zmIG9raWVuIgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIkthc3VqZSB6YXpuYWN6b255IG9iaWVrdCIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJabWllbmlhIG5henfqIHphem5hY3pvbmVnbyBvYmlla3R1IgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIktvcGl1amUgbmF6d+ogemF6bmFjem9uZWdvIGtsdWN6YSBkbyBzY2hvd2thIgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIlpuYWpkdWplIGNpuWcgem5ha/N3IHcga2x1Y3p1IGx1YiBkYW5laiIKICAgIElEX0VESVRfRklORE5FWFQgICAgICAgICJabmFqZHVqZSBuYXN06nBuZSB3eXN0uXBpZW5pZSBvc3RhdG5pbyBzenVrYW5lZ28gY2m5Z3UiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUgkJICAgICJCs7lkIgogICAgSURTX0JBRF9LRVkJCSAgICAiTmllIHVkYbNvIHNpZSBwcnplY3p5dGHmIGtsdWN6YSAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIk5pZSB1ZGGzbyBzaWUgcHJ6ZWN6eXRh5iBkYW5laiAnJXMnIgogICAgSURTX1VOU1VQUE9SVEVEX1RZUEUgICAgIk5pZSBkYSBzaeogbW9keWZpa293YeYga2x1Y3p5IHRlZ28gdHlwdSAoJWxkKSIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICJXYXJ0b5zmIGplc3QgemJ5dCBkdb9hICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIlBvdHdpZXJkemVuaWUga2Fzb3dhbmlhIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIkplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1c3VuueYgZGFuuSAnJXMnPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICJOb3d5IGtsdWN6ICMlZCIKICAgIElEU19ORVdWQUxVRSAgICAgICAgICAgICJOb3dhIGRhbmEgIyVkIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKgogKiBEaWFsb2cKICovCgpJRERfRElBTE9HMSBESUFMT0cgRElTQ0FSREFCTEUgIDUwLCA1MCwgMjY4LCA5OApTVFlMRSBEU18zRExPT0sgfCBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfQ0xJUFNJQkxJTkdTIHwKICAgIFdTX0JPUkRFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCkVORAoKSUREX0RJQUxPRzIgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAxODcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRpYWxvZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMzAsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLElEQ0FOQ0VMLDEzMCwyNCw1MCwxNApFTkQKCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIFJlZ2lzdHJ5IEVkaXRvciBIZWxwLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkRpc3BsYXlzIHByb2dyYW0gaW5mb3JtYXRpb24sIHZlcnNpb24gbnVtYmVyLCBhbmQgY29weXJpZ2h0LiIKICpFTkQKICovCg==