LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgR3JlZWsKICoJKEdyZWVrIHN0cmluZ3MgaW4gY3AxMjUzKQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQwOCIpCi8qIExPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiR3JlZWsiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiZ3JjIikKLyogTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIiIpICovCkxPQ1ZBTChMT0NBTEVfSUNPVU5UUlksIjMwIikKLyogTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiR3JlZWNlIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIkdSQyIpCi8qIExPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCIiKSAqLwpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UsIjA0MDgiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09VTlRSWSwiMzAiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsIjczNyIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTMiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UsICIxMDAwNiIpCi8qIExPQ1ZBTChMT0NBTEVfU0xJU1QsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwipCIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJFVVIiKQovKiBMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKSAqLwpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywgIjM7MCIpCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkL01NLXl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NMT05HREFURSwiZGRkLCBkLiBNTU1NIHl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFUKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTERBVEUpICovCkxPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSUNFTlRVUlkpICovCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURBWUxaRVJPKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNT05MWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9TMTE1OSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfUzIzNTksICIiKSAqLwpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUspICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUikgKi8KCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCLE5fX03fHhIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsItTx3/TnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsItTl9Nzx9OciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwi0N3s8PTnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsItDh8eHz6uX13iIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU2LCLT4eLi3PTvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsIsr18enh6uciKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIsTl9SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUyLCLU8ekiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywi1OX0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsItDl7CIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU1LCLQ4fEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwi0+HiIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIsr18SIpCgpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxLCLJ4e3v3PHp7/IiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCLW5eLx79zx6e/yIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywizNzx9Onv8iIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsIsHw8d/r6e/yIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwizNzp7/IiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCLJ7/3t6e/yIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywiye/96+nv8iIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsIsH94+/18/Tv8iIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksItPl8PTd7OLx6e/yIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIs/q9P7i8env8iIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCLN793s4vHp7/IiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwixOXq3ezi8env8iIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKSAqLwoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiyeHtIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwi1uXiIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywizNzxIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiwfDxIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwizNzpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwiye/97SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcsIsnv/esiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCLB/eMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCLT5fAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwiz+r0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIs3v3SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCLE5eoiKQovKiBMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikgKi8KCi8qIExPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTWU1QUkVDRURFUywgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NFUEJZU1BBQ0UsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0ZPTlRTSUdOQVRVUkUsICIiKSAqLwpMT0NWQUwoTE9DQUxFX1NJU082MzlMQU5HTkFNRSwiZWwiKQpMT0NWQUwoTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIkdSIikKCg==