LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgSXJlbGFuZCAoR2FlaWxnZSkKICoKICogQ29weXJpZ2h0IDE5OTggTWFyY2VsIEJhdXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTE9DVkFMKExPQ0FMRV9JTEFOR1VBR0UsICIwNDNDIikgCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCAiR2FlaWxnZSAoyWlyZSkiKQpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwgIklyaXNoIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsICJnYWUiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwgIkdhZWlsZ2UiKQpMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCAiMzUzIikKTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwgIklyZWxhbmQiKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCAiSXJlbGFuZCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCAiSVJMIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsICLJaXJlIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCAiMDA0M0MiKQkvKiAgKi8KTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksICIzNTMiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsICI0MzciKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFLCAiMTI1MiIpCkxPQ1ZBTChMT0NBTEVfU0xJU1QsICIsIikKTE9DVkFMKExPQ0FMRV9JTUVBU1VSRSwgIjEiKQpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCAiLiIpCkxPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCAiLCIpCkxPQ1ZBTChMT0NBTEVfU0dST1VQSU5HLCAiMzswIikKTE9DVkFMKExPQ0FMRV9JRElHSVRTLCAiMiIpCkxPQ1ZBTChMT0NBTEVfSUxaRVJPLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSU5FR05VTUJFUiwgIjEiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsICIwMTIzNDU2Nzg5IikKTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksICKkIikKTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwgIkVVUiIpCkxPQ1ZBTChMT0NBTEVfU01PTkRFQ0lNQUxTRVAsICIuIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsICIsIikKTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcsICIzOzAiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCAiMiIpCkxPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTLCAiMiIpCkxPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSU5FR0NVUlIsICIwIikKTE9DVkFMKExPQ0FMRV9TREFURSwgIi8iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCAiOiIpCkxPQ1ZBTChMT0NBTEVfU1NIT1JUREFURSwgImQvTS95eSIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCAiZGRkZCwgTU1NTSBkZCwgeXl5eSIpCkxPQ1ZBTChMT0NBTEVfU1RJTUVGT1JNQVQsICJoOm1tOnNzIHR0IikKTE9DVkFMKExPQ0FMRV9JREFURSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lMREFURSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lUSU1FLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lDRU5UVVJZLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywgIjAiKQpMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTywgIjAiKQpMT0NWQUwoTE9DQUxFX0lNT05MWkVSTywgIjAiKQpMT0NWQUwoTE9DQUxFX1MxMTU5LCAiQU0iKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCAiUE0iKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSywgIjYiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIsICIwIikKCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCAiROkgTHVhaW4iKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwgIkTpIE3haXJ0IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsICJE6SBD6WFkYW9pbiIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCAiROlhcmRhb2luIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsICJE6SBoQW9pbmUiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwgIkTpIFNhdGhhaXJuIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsICJEZSBEb21obmFpZ2giKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsICJMdWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwgIk3haSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCAiQ+lhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsICJE6WEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwgIkFvaSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCAiU2F0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsICJEb20iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwgIkVhbuFpciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsICJGZWFiaHJhIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywgIk3hcnRhIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwgIkFpYnJl4W4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCAiTe0gbmEgQmVhbHRhaW5lIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwgIk1laXRoZWFtaCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTcsICJJ+mlsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOCwgIkz6bmFzYSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksICJNZeFuIEbzbWhhaXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwgIkRlaXJlYWRoIEbzbWhhaXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwgIk3tIG5hIFNhbWhuYSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCAiTe0gbmEgTm9sbGFnIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsICIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwgIkVhbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIsICJGZWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCAiTeFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwgIkFpYiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTUsICJCZWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCAiTWVpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywgIkn6aSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTgsICJM+m4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCAiTUbzIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsICJERvMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSwgIlNhbSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCAiTm9sIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsICIiKQoKTE9DVkFMKExPQ0FMRV9TUE9TSVRJVkVTSUdOLCAiIikKTE9DVkFMKExPQ0FMRV9TTkVHQVRJVkVTSUdOLCAiLSIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOLCAiMyIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UsICIwIikKTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIxIikKTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIjAiKQovKiBMT0NWQUwoTE9DQUxFX0ZPTlRTSUdOQVRVUkUsICIiKSAqLwpMT0NWQUwoTE9DQUxFX1NJU082MzlMQU5HTkFNRSwiZ2EiKQpMT0NWQUwoTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIklFIikKCi8qIEdyZWdvcmlhbiBDYWxlbmRhciAqLwo=