ZGlmZiAtLWdpdCBhL2Rpc3RyaWJ1dGlvbi9zcmMvbWFpbi9yZWxlYXNlL2Jpbi9MSUNFTlNFIGIvZGlzdHJpYnV0aW9uL3NyYy9tYWluL3JlbGVhc2UvYmluL0xJQ0VOU0UKaW5kZXggOTM1Y2JmYS4uMzAyODMxYSAxMDA2NDQKLS0tIGEvZGlzdHJpYnV0aW9uL3NyYy9tYWluL3JlbGVhc2UvYmluL0xJQ0VOU0UKKysrIGIvZGlzdHJpYnV0aW9uL3NyYy9tYWluL3JlbGVhc2UvYmluL0xJQ0VOU0UKQEAgLTI0MywyOSArMjQzLDM3IEBACiB4bWwvc2RvWE1MLnhzZAogCiAKLVBlcm1pc3Npb24gdG8gY29weSwgbWFrZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBhbmQgZGlzdHJpYnV0ZSB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgCi1KYXZhRG9jIGFuZCBJbnRlcmZhY2UgRGVmaW5pdGlvbiBGaWxlcyBmaWxlcyBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgZmVlIG9yIHJveWFsdHkgYXMgcGFydCAKLW9mIGEgY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uIGlzIGhlcmVieSBncmFudGVkLiAgCi1UaGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBtYXkgYmUgZm91bmQgYXQgYW55IG9mIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorTGljZW5zZSBmb3IgdGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIEphdmFEb2MgYW5kIEludGVyZmFjZSBEZWZpbml0aW9uIGZpbGVzLgogCi1odHRwOi8vZGV2MmRldi5iZWEuY29tL3RlY2hub2xvZ2llcy9jb21tb25qL2luZGV4LmpzcAotaHR0cDovL3d3dy5pYm0uY29tL2RldmVsb3BlcndvcmtzL2xpYnJhcnkvc3BlY2lmaWNhdGlvbi93cy1zZG8vCi1odHRwOi8vb3JhY2xlLmNvbS90ZWNobm9sb2d5L3dlYnNlcnZpY2VzL3NjYQotaHR0cHM6Ly93d3cuc2RuLnNhcC5jb20vCi1odHRwOi8vd3d3LnhjYWxpYS94ZG4vc3BlY3Mvc2RvCitUaGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBpcyBiZWluZyBwcm92aWRlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlcnMgdW5kZXIgdGhlIGZvbGxvd2luZyAKK2xpY2Vuc2UuIEJ5IHVzaW5nIGFuZC9vciBjb3B5aW5nIHRoaXMgd29yaywgeW91IGFncmVlIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCBhbmQgd2lsbCBjb21wbHkgd2l0aCAKK3RoZSBmb2xsb3dpbmcgdGVybXMgYW5kIGNvbmRpdGlvbnM6CiAKLVRIRSBTRVJWSUNFIERBVEEgT0JKRUNUUyBTUEVDSUZJQ0FUSU9OIEFORCBUSEUgSkFWQURPQyBBTkQgSU5URVJGQUNFIERFRklOSVRJT04gRklMRVMgCi1BUkUgUFJPVklERUQgIkFTIElTLCIgQU5EIFRIRSBBVVRIT1JTIE1BS0UgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1IgSU1QTElFRCwgUkVHQVJESU5HIFRISVMgCi1TUEVDSUZJQ0FUSU9OIE9SIFRIRSBKQVZBRE9DIEFORCBJTlRFUkZBQ0UgREVGSU5JVElPTiBGSUxFUyBBTkQgVEhFIElNUExFTUVOVEFUSU9OIE9GIFRIRUlSIENPTlRFTlRTLCAKK1Blcm1pc3Npb24gdG8gY29weSwgZGlzcGxheSBhbmQgZGlzdHJpYnV0ZSB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBhbmQvb3IgcG9ydGlvbnMgdGhlcmVvZiwgd2l0aG91dCAKK21vZGlmaWNhdGlvbiwgaW4gYW55IG1lZGl1bSB3aXRob3V0IGZlZSBvciByb3lhbHR5IGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHlvdSBpbmNsdWRlIHRoZSAKK2ZvbGxvd2luZyBvbiBBTEwgY29waWVzIG9mIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uLCBvciBwb3J0aW9ucyB0aGVyZW9mLCB0aGF0IHlvdSBtYWtlOgorCisxLiBBIGxpbmsgb3IgVVJMIHRvIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uIGF0IHRoaXMgbG9jYXRpb246CitodHRwOi8vd3d3Lm9zb2Eub3JnL2Rpc3BsYXkvTWFpbi9TZXJ2aWNlK0RhdGErT2JqZWN0cytTcGVjaWZpY2F0aW9ucworCisyLiBUaGUgZnVsbCB0ZXh0IG9mIHRoaXMgY29weXJpZ2h0IG5vdGljZSBhcyBzaG93biBpbiB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbi4KKworQkVBLCBJQk0sIE9yYWNsZSwgUHJpbWV0b24gVGVjaG5vbG9naWVzLCBSb2d1ZSBXYXZlIFNvZnR3YXJlLCBTQVAsIFNvZnR3YXJlIEFHLCBTdW4gTWljcm9zeXN0ZW1zLCBYY2FsaWEsIAorWmVuZCBUZWNobm9sb2dpZXMgKGNvbGxlY3RpdmVseSwgdGhlIJNBdXRob3JzlCkgYWdyZWUgdG8gZ3JhbnQgeW91IGEgcm95YWx0eS1mcmVlIGxpY2Vuc2UsIHVuZGVyIHJlYXNvbmFibGUsIAorbm9uLWRpc2NyaW1pbmF0b3J5IHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIHBhdGVudHMgdGhhdCB0aGV5IGRlZW0gbmVjZXNzYXJ5IHRvIGltcGxlbWVudCB0aGUgU2VydmljZSBEYXRhIAorT2JqZWN0cyBTcGVjaWZpY2F0aW9uLiAKKworVEhFIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNQRUNJRklDQVRJT04gSVMgUFJPVklERUQgIkFTIElTLCIgQU5EIFRIRSBBVVRIT1JTIE1BS0UgTk8gUkVQUkVTRU5UQVRJT05TIE9SIAorV0FSUkFOVElFUywgRVhQUkVTUyBPUiBJTVBMSUVELCBSRUdBUkRJTkcgVEhJUyBTUEVDSUZJQ0FUSU9OIEFORCBUSEUgSU1QTEVNRU5UQVRJT04gT0YgSVRTIENPTlRFTlRTLCAKIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIAotTk9OLUlORlJJTkdFTUVOVCBPUiBUSVRMRS4gIFRIRSBBVVRIT1JTIFdJTEwgTk9UIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIFNQRUNJQUwsIAotSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgT1IgUkVMQVRJTkcgVE8gQU5ZIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIAotU0VSVklDRSBEQVRBIE9CSkVDVFMgU1BFQ0lGSUNBVElPTiBPUiBUSEUgSkFWQURPQyBPUiBJTlRFUkZBQ0UgREVGSU5USU9OIEZJTEVTLgorTk9OLUlORlJJTkdFTUVOVCBPUiBUSVRMRS4gVEhFIEFVVEhPUlMgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgU1BFQ0lBTCwgSU5DSURFTlRBTCAKK09SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBPUiBSRUxBVElORyBUTyBBTlkgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgU0VSVklDRSBEQVRBIE9CSkVDVFMgCitTUEVDSUZJQ0FUSU9OLgogCi1UaGUgbmFtZSBhbmQgdHJhZGVtYXJrcyBvZiB0aGUgQXV0aG9ycyBtYXkgTk9UIGJlIHVzZWQgaW4gYW55IG1hbm5lciwgaW5jbHVkaW5nIGFkdmVydGlzaW5nIG9yIAotcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gdGhlIFNlcnZpY2UgQ29tcG9uZW50IEFyY2hpdGVjdHVyZSBTcGVjaWZpY2F0aW9uIG9yIGl0cyBjb250ZW50cyB3aXRob3V0IHNwZWNpZmljLCAKLXdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gVGl0bGUgdG8gY29weXJpZ2h0IGluIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uIGFuZCB0aGUgCi1KYXZhRG9jIGFuZCBJbnRlcmZhY2UgRGVmaW5pdGlvbiBGaWxlcyB3aWxsIGF0IGFsbCB0aW1lcyByZW1haW4gd2l0aCB0aGUgQXV0aG9ycy4KK1RoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIHRoZSBBdXRob3JzIG1heSBOT1QgYmUgdXNlZCBpbiBhbnkgbWFubmVyLCBpbmNsdWRpbmcgYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IAorcGVydGFpbmluZyB0byB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBvciBpdHMgY29udGVudHMgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciAKK3Blcm1pc3Npb24uIFRpdGxlIHRvIGNvcHlyaWdodCBpbiB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiB3aWxsIGF0IGFsbCB0aW1lcyByZW1haW4gd2l0aCB0aGUgCitBdXRob3JzLgogCiBObyBvdGhlciByaWdodHMgYXJlIGdyYW50ZWQgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4KIApkaWZmIC0tZ2l0IGEvc2RvLWFwaS9zcmMvbWFpbi9yZXNvdXJjZXMvTUVUQS1JTkYvTElDRU5TRSBiL3Nkby1hcGkvc3JjL21haW4vcmVzb3VyY2VzL01FVEEtSU5GL0xJQ0VOU0UKaW5kZXggNjFjY2NlNC4uOGNmYzk0ZiAxMDA2NDQKLS0tIGEvc2RvLWFwaS9zcmMvbWFpbi9yZXNvdXJjZXMvTUVUQS1JTkYvTElDRU5TRQorKysgYi9zZG8tYXBpL3NyYy9tYWluL3Jlc291cmNlcy9NRVRBLUlORi9MSUNFTlNFCkBAIC0yNywyOSArMjcsMzcgQEAKIHhtbC9zZG9YTUwueG1sDQogeG1sL3Nkb1hNTC54c2QNCiANCi1QZXJtaXNzaW9uIHRvIGNvcHksIG1ha2UgZGVyaXZhdGl2ZSB3b3JrcyBvZiwgYW5kIGRpc3RyaWJ1dGUgdGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIA0KLUphdmFEb2MgYW5kIEludGVyZmFjZSBEZWZpbml0aW9uIEZpbGVzIGZpbGVzIGluIGFueSBtZWRpdW0gd2l0aG91dCBmZWUgb3Igcm95YWx0eSBhcyBwYXJ0IA0KLW9mIGEgY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uIGlzIGhlcmVieSBncmFudGVkLiAgDQotVGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNwZWNpZmljYXRpb24gbWF5IGJlIGZvdW5kIGF0IGFueSBvZiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoNCitMaWNlbnNlIGZvciB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgSmF2YURvYyBhbmQgSW50ZXJmYWNlIERlZmluaXRpb24gZmlsZXMuDQogDQotaHR0cDovL2RldjJkZXYuYmVhLmNvbS90ZWNobm9sb2dpZXMvY29tbW9uai9pbmRleC5qc3ANCi1odHRwOi8vd3d3LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvbGlicmFyeS9zcGVjaWZpY2F0aW9uL3dzLXNkby8NCi1odHRwOi8vb3JhY2xlLmNvbS90ZWNobm9sb2d5L3dlYnNlcnZpY2VzL3NjYQ0KLWh0dHBzOi8vd3d3LnNkbi5zYXAuY29tLw0KLWh0dHA6Ly93d3cueGNhbGlhL3hkbi9zcGVjcy9zZG8NCitUaGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBpcyBiZWluZyBwcm92aWRlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlcnMgdW5kZXIgdGhlIGZvbGxvd2luZyANCitsaWNlbnNlLiBCeSB1c2luZyBhbmQvb3IgY29weWluZyB0aGlzIHdvcmssIHlvdSBhZ3JlZSB0aGF0IHlvdSBoYXZlIHJlYWQsIHVuZGVyc3Rvb2QgYW5kIHdpbGwgY29tcGx5IHdpdGggDQordGhlIGZvbGxvd2luZyB0ZXJtcyBhbmQgY29uZGl0aW9uczoNCiANCi1USEUgU0VSVklDRSBEQVRBIE9CSkVDVFMgU1BFQ0lGSUNBVElPTiBBTkQgVEhFIEpBVkFET0MgQU5EIElOVEVSRkFDRSBERUZJTklUSU9OIEZJTEVTIA0KLUFSRSBQUk9WSURFRCAiQVMgSVMsIiBBTkQgVEhFIEFVVEhPUlMgTUFLRSBOTyBSRVBSRVNFTlRBVElPTlMgT1IgV0FSUkFOVElFUywgRVhQUkVTUyBPUiBJTVBMSUVELCBSRUdBUkRJTkcgVEhJUyANCi1TUEVDSUZJQ0FUSU9OIE9SIFRIRSBKQVZBRE9DIEFORCBJTlRFUkZBQ0UgREVGSU5JVElPTiBGSUxFUyBBTkQgVEhFIElNUExFTUVOVEFUSU9OIE9GIFRIRUlSIENPTlRFTlRTLCANCitQZXJtaXNzaW9uIHRvIGNvcHksIGRpc3BsYXkgYW5kIGRpc3RyaWJ1dGUgdGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNwZWNpZmljYXRpb24gYW5kL29yIHBvcnRpb25zIHRoZXJlb2YsIHdpdGhvdXQgDQorbW9kaWZpY2F0aW9uLCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgZmVlIG9yIHJveWFsdHkgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgeW91IGluY2x1ZGUgdGhlIA0KK2ZvbGxvd2luZyBvbiBBTEwgY29waWVzIG9mIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uLCBvciBwb3J0aW9ucyB0aGVyZW9mLCB0aGF0IHlvdSBtYWtlOg0KKw0KKzEuIEEgbGluayBvciBVUkwgdG8gdGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNwZWNpZmljYXRpb24gYXQgdGhpcyBsb2NhdGlvbjoNCitodHRwOi8vd3d3Lm9zb2Eub3JnL2Rpc3BsYXkvTWFpbi9TZXJ2aWNlK0RhdGErT2JqZWN0cytTcGVjaWZpY2F0aW9ucw0KKw0KKzIuIFRoZSBmdWxsIHRleHQgb2YgdGhpcyBjb3B5cmlnaHQgbm90aWNlIGFzIHNob3duIGluIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uLg0KKw0KK0JFQSwgSUJNLCBPcmFjbGUsIFByaW1ldG9uIFRlY2hub2xvZ2llcywgUm9ndWUgV2F2ZSBTb2Z0d2FyZSwgU0FQLCBTb2Z0d2FyZSBBRywgU3VuIE1pY3Jvc3lzdGVtcywgWGNhbGlhLCANCitaZW5kIFRlY2hub2xvZ2llcyAoY29sbGVjdGl2ZWx5LCB0aGUgk0F1dGhvcnOUKSBhZ3JlZSB0byBncmFudCB5b3UgYSByb3lhbHR5LWZyZWUgbGljZW5zZSwgdW5kZXIgcmVhc29uYWJsZSwgDQorbm9uLWRpc2NyaW1pbmF0b3J5IHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIHBhdGVudHMgdGhhdCB0aGV5IGRlZW0gbmVjZXNzYXJ5IHRvIGltcGxlbWVudCB0aGUgU2VydmljZSBEYXRhIA0KK09iamVjdHMgU3BlY2lmaWNhdGlvbi4gDQorDQorVEhFIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNQRUNJRklDQVRJT04gSVMgUFJPVklERUQgIkFTIElTLCIgQU5EIFRIRSBBVVRIT1JTIE1BS0UgTk8gUkVQUkVTRU5UQVRJT05TIE9SIA0KK1dBUlJBTlRJRVMsIEVYUFJFU1MgT1IgSU1QTElFRCwgUkVHQVJESU5HIFRISVMgU1BFQ0lGSUNBVElPTiBBTkQgVEhFIElNUExFTUVOVEFUSU9OIE9GIElUUyBDT05URU5UUywgDQogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgDQotTk9OLUlORlJJTkdFTUVOVCBPUiBUSVRMRS4gIFRIRSBBVVRIT1JTIFdJTEwgTk9UIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIFNQRUNJQUwsIA0KLUlOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIE9SIFJFTEFUSU5HIFRPIEFOWSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSANCi1TRVJWSUNFIERBVEEgT0JKRUNUUyBTUEVDSUZJQ0FUSU9OIE9SIFRIRSBKQVZBRE9DIE9SIElOVEVSRkFDRSBERUZJTlRJT04gRklMRVMuDQorTk9OLUlORlJJTkdFTUVOVCBPUiBUSVRMRS4gVEhFIEFVVEhPUlMgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgU1BFQ0lBTCwgSU5DSURFTlRBTCANCitPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgT1IgUkVMQVRJTkcgVE8gQU5ZIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFNFUlZJQ0UgREFUQSBPQkpFQ1RTIA0KK1NQRUNJRklDQVRJT04uDQogDQotVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgdGhlIEF1dGhvcnMgbWF5IE5PVCBiZSB1c2VkIGluIGFueSBtYW5uZXIsIGluY2x1ZGluZyBhZHZlcnRpc2luZyBvciANCi1wdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU2VydmljZSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlIFNwZWNpZmljYXRpb24gb3IgaXRzIGNvbnRlbnRzIHdpdGhvdXQgc3BlY2lmaWMsIA0KLXdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gVGl0bGUgdG8gY29weXJpZ2h0IGluIHRoZSBTZXJ2aWNlIERhdGEgT2JqZWN0cyBTcGVjaWZpY2F0aW9uIGFuZCB0aGUgDQotSmF2YURvYyBhbmQgSW50ZXJmYWNlIERlZmluaXRpb24gRmlsZXMgd2lsbCBhdCBhbGwgdGltZXMgcmVtYWluIHdpdGggdGhlIEF1dGhvcnMuDQorVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgdGhlIEF1dGhvcnMgbWF5IE5PVCBiZSB1c2VkIGluIGFueSBtYW5uZXIsIGluY2x1ZGluZyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgDQorcGVydGFpbmluZyB0byB0aGUgU2VydmljZSBEYXRhIE9iamVjdHMgU3BlY2lmaWNhdGlvbiBvciBpdHMgY29udGVudHMgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciANCitwZXJtaXNzaW9uLiBUaXRsZSB0byBjb3B5cmlnaHQgaW4gdGhlIFNlcnZpY2UgRGF0YSBPYmplY3RzIFNwZWNpZmljYXRpb24gd2lsbCBhdCBhbGwgdGltZXMgcmVtYWluIHdpdGggdGhlIA0KK0F1dGhvcnMuDQogDQogTm8gb3RoZXIgcmlnaHRzIGFyZSBncmFudGVkIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvciBvdGhlcndpc2UuDQogDQo=