LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgU3BhbmlzaCAoQXJnZW50aW5hKQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMmMwYSIpCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCJFc3Bh8W9sIChBcmdlbnRpbmEpIikKTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsIlNwYW5pc2ggKEFyZ2VudGluYSkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiZXNnIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIkVzcGHxb2wiKQovKiBMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCJBcmdlbnRpbmEiKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJBcmdlbnRpbmEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSwiQVJHIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsIkFyZ2VudGluYSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQwYSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIzNCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwiODUwIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MiIpCi8qIExPQ1ZBTChMT0NBTEVfU0xJU1QsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiJCIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJBUlMiKQovKiBMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKSAqLwpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywgIjM7MCIpCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkL01NLXl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NMT05HREFURSwiZGRkLCBkLiBNTU1NIHl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFUKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTERBVEUpICovCkxPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSUNFTlRVUlkpICovCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURBWUxaRVJPKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNT05MWkVSTykgKi8KTE9DVkFMKExPQ0FMRV9TMTE1OSwgIkFNIikKTE9DVkFMKExPQ0FMRV9TMjM1OSwgIlBNIikKTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIpICovCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwibHVuZXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwibWFydGVzIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIm1p6XJjb2xlcyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCJqdWV2ZXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwidmllcm5lcyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU2LCJz4WJhZG8iKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywiZG9taW5nbyIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwibHVuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIm1hciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCJtaekiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwianVlIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsInZpZSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCJz4WIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywiZG9tIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsImVuZXJvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwiZmVicmVybyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTMsIm1hcnpvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYWJyaWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJtYXlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwianVuaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCJqdWxpbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsImFnb3N0byIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksInNlcHRpZW1icmUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwib2N0dWJyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJub3ZpZW1icmUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwiZGljaWVtYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJlbmUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJmZWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJtYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJhYnIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJtYXkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJqdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJqdWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhZ28iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJzZXAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwib2N0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIm5vdiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJkaWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikKCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImVzIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJBUiIpCg==