gAJjZG9jdXRpbHMubm9kZXMKZG9jdW1lbnQKcQEpgXECfXEDKFUGcmVmaWRzcQR9cQVVFHN5bWJvbF9mb290bm90ZV9yZWZzcQZdcQdVCGNoaWxkcmVucQhdcQljZG9jdXRpbHMubm9kZXMKc2VjdGlvbgpxCimBcQt9cQwoVQZzb3VyY2VxDViDAAAAL3Vzci9sb2NhbC9nb29nbGUvaG9tZS95aWZhbnpvdS93ZWJzaXRlX3VwZGF0ZV9kaXIvcHl0aG9uX2RvYy9iZWFtL3Nka3MvcHl0aG9uL3RhcmdldC9kb2NzL3NvdXJjZS9hcGFjaGVfYmVhbS5jb2RlcnMudHlwZWNvZGVycy5yc3RxDlUKYXR0cmlidXRlc3EPfXEQKFUHY2xhc3Nlc3ERXVUDaWRzcRJdcRMoWCQAAABtb2R1bGUtYXBhY2hlX2JlYW0uY29kZXJzLnR5cGVjb2RlcnNxFFUkYXBhY2hlLWJlYW0tY29kZXJzLXR5cGVjb2RlcnMtbW9kdWxlcRVlVQhkdXBuYW1lc3EWXVUFbmFtZXNxF11xGFgkAAAAYXBhY2hlX2JlYW0uY29kZXJzLnR5cGVjb2RlcnMgbW9kdWxlcRlhVQhiYWNrcmVmc3EaXXVoCF1xGyhjZG9jdXRpbHMubm9kZXMKdGl0bGUKcRwpgXEdfXEeKGgNaA5oD31xHyhoEV1oEl1oFl1oF11oGl11aAhdcSBjZG9jdXRpbHMubm9kZXMKVGV4dApxIVgkAAAAYXBhY2hlX2JlYW0uY29kZXJzLnR5cGVjb2RlcnMgbW9kdWxlcSKFgXEjfXEkKGgNTlUEbGluZXElTlUGcGFyZW50cSZoHVUIZG9jdW1lbnRxJ2gCVQlyYXdzb3VyY2VxKFgnAAAAYXBhY2hlXF9iZWFtXC5jb2RlcnNcLnR5cGVjb2RlcnMgbW9kdWxlcSl1YmFoJUsCaCZoC1UHdGFnbmFtZXEqVQV0aXRsZXEraCdoAmgoWCcAAABhcGFjaGVcX2JlYW1cLmNvZGVyc1wudHlwZWNvZGVycyBtb2R1bGVxLHViY3NwaGlueC5hZGRub2RlcwppbmRleApxLSmBcS59cS8oaA1YmgAAAC91c3IvbG9jYWwvZ29vZ2xlL2hvbWUveWlmYW56b3Uvd2Vic2l0ZV91cGRhdGVfZGlyL3B5dGhvbl9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9jb2RlcnMvdHlwZWNvZGVycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0uY29kZXJzLnR5cGVjb2RlcnNxMGgPfXExKGgRXWgSXWgWXVUHZW50cmllc11xMihVBnNpbmdsZXEzWCYAAABhcGFjaGVfYmVhbS5jb2RlcnMudHlwZWNvZGVycyAobW9kdWxlKVgkAAAAbW9kdWxlLWFwYWNoZV9iZWFtLmNvZGVycy50eXBlY29kZXJzVQBOdHE0YWgXXWgaXXVoCF1oJUsBaCZoC2gqVQVpbmRleHE1aCdoAmgoVQB1YmNkb2N1dGlscy5ub2RlcwpwYXJhZ3JhcGgKcTYpgXE3fXE4KGgNWJoAAAAvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3lpZmFuem91L3dlYnNpdGVfdXBkYXRlX2Rpci9weXRob25fZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vY29kZXJzL3R5cGVjb2RlcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLmNvZGVycy50eXBlY29kZXJzcTloD31xOihoEV1oEl1oFl1oF11oGl11aAhdcTtoIVgZAAAAVHlwZSBjb2RlcnMgcmVnaXN0cmF0aW9uLnE8hYFxPX1xPihoDU5oJU5oJmg3aCdoAmgoWBkAAABUeXBlIGNvZGVycyByZWdpc3RyYXRpb24ucT91YmFoJUsBaCZoC2gqVQlwYXJhZ3JhcGhxQGgnaAJoKGg/dWJoNimBcUF9cUIoaA1oOWgPfXFDKGgRXWgSXWgWXWgXXWgaXXVoCF1xRGghWDoCAABUaGlzIG1vZHVsZSBjb250YWlucyBmdW5jdGlvbmFsaXR5IHRvIGRlZmluZSBhbmQgdXNlIGNvZGVycyBmb3IgY3VzdG9tIGNsYXNzZXMuCkxldOKAmXMgc2F5IHdlIGhhdmUgYSBjbGFzcyBYeXogYW5kIHdlIGFyZSBwcm9jZXNzaW5nIGEgUENvbGxlY3Rpb24gd2l0aCBlbGVtZW50cwpvZiB0eXBlIFh5ei4gSWYgd2UgZG8gbm90IHJlZ2lzdGVyIGEgY29kZXIgZm9yIFh5eiwgYSBkZWZhdWx0IHBpY2tsZS1iYXNlZApmYWxsYmFjayBjb2RlciB3aWxsIGJlIHVzZWQuIFRoaXMgY2FuIGJlIHVuZGVzaXJhYmxlIGZvciB0d28gcmVhc29ucy4gRmlyc3QsIHdlCm1heSB3YW50IGEgZmFzdGVyIGNvZGVyIG9yIGEgbW9yZSBzcGFjZSBlZmZpY2llbnQgb25lLiBTZWNvbmQsIHRoZSBwaWNrbGUtYmFzZWQKY29kZXIgaXMgbm90IGRldGVybWluaXN0aWMgaW4gdGhlIHNlbnNlIHRoYXQgb2JqZWN0cyBsaWtlIGRpY3Rpb25hcmllcyBvciBzZXRzCmFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBlbmNvZGVkIGluIHRoZSBzYW1lIHdheSBldmVyeSB0aW1lIChlbGVtZW50cyBhcmUgbm90CnJlYWxseSBvcmRlcmVkKS5xRYWBcUZ9cUcoaA1OaCVOaCZoQWgnaAJoKFg4AgAAVGhpcyBtb2R1bGUgY29udGFpbnMgZnVuY3Rpb25hbGl0eSB0byBkZWZpbmUgYW5kIHVzZSBjb2RlcnMgZm9yIGN1c3RvbSBjbGFzc2VzLgpMZXQncyBzYXkgd2UgaGF2ZSBhIGNsYXNzIFh5eiBhbmQgd2UgYXJlIHByb2Nlc3NpbmcgYSBQQ29sbGVjdGlvbiB3aXRoIGVsZW1lbnRzCm9mIHR5cGUgWHl6LiBJZiB3ZSBkbyBub3QgcmVnaXN0ZXIgYSBjb2RlciBmb3IgWHl6LCBhIGRlZmF1bHQgcGlja2xlLWJhc2VkCmZhbGxiYWNrIGNvZGVyIHdpbGwgYmUgdXNlZC4gVGhpcyBjYW4gYmUgdW5kZXNpcmFibGUgZm9yIHR3byByZWFzb25zLiBGaXJzdCwgd2UKbWF5IHdhbnQgYSBmYXN0ZXIgY29kZXIgb3IgYSBtb3JlIHNwYWNlIGVmZmljaWVudCBvbmUuIFNlY29uZCwgdGhlIHBpY2tsZS1iYXNlZApjb2RlciBpcyBub3QgZGV0ZXJtaW5pc3RpYyBpbiB0aGUgc2Vuc2UgdGhhdCBvYmplY3RzIGxpa2UgZGljdGlvbmFyaWVzIG9yIHNldHMKYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGVuY29kZWQgaW4gdGhlIHNhbWUgd2F5IGV2ZXJ5IHRpbWUgKGVsZW1lbnRzIGFyZSBub3QKcmVhbGx5IG9yZGVyZWQpLnFIdWJhaCVLA2gmaAtoKmhAaCdoAmgoaEh1YmNkb2N1dGlscy5ub2RlcwpkZWZpbml0aW9uX2xpc3QKcUkpgXFKfXFLKGgNaDloD31xTChoEV1oEl1oFl1oF11oGl11aAhdcU1jZG9jdXRpbHMubm9kZXMKZGVmaW5pdGlvbl9saXN0X2l0ZW0KcU4pgXFPfXFQKGgNaDloD31xUShoEV1oEl1oFl1oF11oGl11aAhdcVIoY2RvY3V0aWxzLm5vZGVzCnRlcm0KcVMpgXFUfXFVKGgNaDloD31xVihoEV1oEl1oFl1oF11oGl11aAhdcVdoIVhIAAAAVHdvIChzb21ldGltZXMgdGhyZWUpIHN0ZXBzIGFyZSBuZWVkZWQgdG8gZGVmaW5lIGFuZCB1c2UgYSBjdXN0b20gY29kZXI6cViFgXFZfXFaKGgmaFRoKFhIAAAAVHdvIChzb21ldGltZXMgdGhyZWUpIHN0ZXBzIGFyZSBuZWVkZWQgdG8gZGVmaW5lIGFuZCB1c2UgYSBjdXN0b20gY29kZXI6cVt1YmFoJUsQaCZoT2gqVQR0ZXJtcVxoKGhbdWJjZG9jdXRpbHMubm9kZXMKZGVmaW5pdGlvbgpxXSmBcV59cV8oaAhdcWBjZG9jdXRpbHMubm9kZXMKYnVsbGV0X2xpc3QKcWEpgXFifXFjKGgNaDloD31xZChoEV1oEl1oFl1VBmJ1bGxldHFlWAEAAAAtaBddaBpddWgIXXFmKGNkb2N1dGlscy5ub2RlcwpsaXN0X2l0ZW0KcWcpgXFofXFpKGgIXXFqaDYpgXFrfXFsKGgNaDloD31xbShoEV1oEl1oFl1oF11oGl11aAhdcW5oIVgWAAAAZGVmaW5lIHRoZSBjb2RlciBjbGFzc3FvhYFxcH1xcShoJmhraChYFgAAAGRlZmluZSB0aGUgY29kZXIgY2xhc3NxcnViYWglSw1oJmhoaCpoQGgoaHJ1YmFoJmhiaA99cXMoaBFdaBJdaBZdaBddaBpddWgqVQlsaXN0X2l0ZW1xdGgoaHJ1YmhnKYFxdX1xdihoCF1xd2g2KYFxeH1xeShoDWg5aA99cXooaBFdaBJdaBZdaBddaBpddWgIXXF7aCFYPQAAAGFzc29jaWF0ZSB0aGUgY29kZSB3aXRoIHRoZSBjbGFzcyAoYS5rLmEuIGNvZGVyIHJlZ2lzdHJhdGlvbilxfIWBcX19cX4oaCZoeGgoWD0AAABhc3NvY2lhdGUgdGhlIGNvZGUgd2l0aCB0aGUgY2xhc3MgKGEuay5hLiBjb2RlciByZWdpc3RyYXRpb24pcX91YmFoJUsOaCZodWgqaEBoKGh/dWJhaCZoYmgPfXGAKGgRXWgSXWgWXWgXXWgaXXVoKmh0aChof3ViaGcpgXGBfXGCKGgIXXGDaDYpgXGEfXGFKGgNaDloD31xhihoEV1oEl1oFl1oF11oGl11aAhdcYdoIVhTAAAAdHlwZWhpbnQgRG9GbnMgb3IgdHJhbnNmb3JtcyB3aXRoIHRoZSBuZXcgY2xhc3Mgb3IgY29tcG9zaXRlIHR5cGVzIHVzaW5nCnRoZSBjbGFzcy5xiIWBcYl9cYooaCZohGgoWFMAAAB0eXBlaGludCBEb0ZucyBvciB0cmFuc2Zvcm1zIHdpdGggdGhlIG5ldyBjbGFzcyBvciBjb21wb3NpdGUgdHlwZXMgdXNpbmcKdGhlIGNsYXNzLnGLdWJhaCVLD2gmaIFoKmhAaChoi3ViYWgmaGJoD31xjChoEV1oEl1oFl1oF11oGl11aCpodGgoWFQAAAB0eXBlaGludCBEb0ZucyBvciB0cmFuc2Zvcm1zIHdpdGggdGhlIG5ldyBjbGFzcyBvciBjb21wb3NpdGUgdHlwZXMgdXNpbmcKdGhlIGNsYXNzLgp1YmVoJUsNaCZoXmgqVQtidWxsZXRfbGlzdHGNaChVAHViYWgmaE9oD31xjihoEV1oEl1oFl1oF11oGl11aCpVCmRlZmluaXRpb25xj2goVQB1YmVoJUsQaCZoSmgqVRRkZWZpbml0aW9uX2xpc3RfaXRlbXGQaChY+gAAAFR3byAoc29tZXRpbWVzIHRocmVlKSBzdGVwcyBhcmUgbmVlZGVkIHRvIGRlZmluZSBhbmQgdXNlIGEgY3VzdG9tIGNvZGVyOgotIGRlZmluZSB0aGUgY29kZXIgY2xhc3MKLSBhc3NvY2lhdGUgdGhlIGNvZGUgd2l0aCB0aGUgY2xhc3MgKGEuay5hLiBjb2RlciByZWdpc3RyYXRpb24pCi0gdHlwZWhpbnQgRG9GbnMgb3IgdHJhbnNmb3JtcyB3aXRoIHRoZSBuZXcgY2xhc3Mgb3IgY29tcG9zaXRlIHR5cGVzIHVzaW5nCiAgdGhlIGNsYXNzLgp1YmFoJU5oJmgLaCpVD2RlZmluaXRpb25fbGlzdHGRaCdoAmgoVQB1Ymg2KYFxkn1xkyhoDWg5aA99cZQoaBFdaBJdaBZdaBddaBpddWgIXXGVaCFYDAEAAEEgY29kZXIgY2xhc3MgaXMgZGVmaW5lZCBieSBzdWJjbGFzc2luZyBmcm9tIENvZGVyQmFzZSBhbmQgZGVmaW5pbmcgdGhlCmVuY29kZV90b19ieXRlcyBhbmQgZGVjb2RlX2Zyb21fYnl0ZXMgbWV0aG9kcy4gVGhlIGZyYW1ld29yayB1c2VzIGR1Y2stdHlwaW5nCmZvciBjb2RlcnMgc28gaXQgaXMgbm90IHN0cmljdGx5IHJlcXVpcmVkIHRvIHN1YmNsYXNzIGZyb20gQ29kZXJCYXNlIGFzIGxvbmcgYXMKdGhlIGVuY29kZS9kZWNvZGUgbWV0aG9kcyBhcmUgZGVmaW5lZC5xloWBcZd9cZgoaA1OaCVOaCZokmgnaAJoKFgMAQAAQSBjb2RlciBjbGFzcyBpcyBkZWZpbmVkIGJ5IHN1YmNsYXNzaW5nIGZyb20gQ29kZXJCYXNlIGFuZCBkZWZpbmluZyB0aGUKZW5jb2RlX3RvX2J5dGVzIGFuZCBkZWNvZGVfZnJvbV9ieXRlcyBtZXRob2RzLiBUaGUgZnJhbWV3b3JrIHVzZXMgZHVjay10eXBpbmcKZm9yIGNvZGVycyBzbyBpdCBpcyBub3Qgc3RyaWN0bHkgcmVxdWlyZWQgdG8gc3ViY2xhc3MgZnJvbSBDb2RlckJhc2UgYXMgbG9uZyBhcwp0aGUgZW5jb2RlL2RlY29kZSBtZXRob2RzIGFyZSBkZWZpbmVkLnGZdWJhaCVLEmgmaAtoKmhAaCdoAmgoaJl1Ymg2KYFxmn1xmyhoDWg5aA99cZwoaBFdaBJdaBZdaBddaBpddWgIXXGdaCFYPwAAAFJlZ2lzdGVyaW5nIGEgY29kZXIgY2xhc3MgaXMgbWFkZSB3aXRoIGEgcmVnaXN0ZXJfY29kZXIoKSBjYWxsOnGehYFxn31xoChoDU5oJU5oJmiaaCdoAmgoWD8AAABSZWdpc3RlcmluZyBhIGNvZGVyIGNsYXNzIGlzIG1hZGUgd2l0aCBhIHJlZ2lzdGVyX2NvZGVyKCkgY2FsbDp1YmFoJUsXaCZoC2gqaEBoJ2gCaChYQAAAAFJlZ2lzdGVyaW5nIGEgY29kZXIgY2xhc3MgaXMgbWFkZSB3aXRoIGEgcmVnaXN0ZXJfY29kZXIoKSBjYWxsOjpxoXViY2RvY3V0aWxzLm5vZGVzCmxpdGVyYWxfYmxvY2sKcaIpgXGjfXGkKGgNaDloD31xpShoEV1oEl1oFl1oF11VCXhtbDpzcGFjZXGmVQhwcmVzZXJ2ZXGnaBpddWgIXXGoaCFYUAAAAGZyb20gYXBhY2hlX2JlYW0gaW1wb3J0IGNvZGVycwouLi4KY29kZXJzLnJlZ2lzdHJ5LnJlZ2lzdGVyX2NvZGVyKFh5eiwgWHl6Q29kZXIpcamFgXGqfXGrKGgmaKNoKFUAdWJhaCVLGWgmaAtoKlUNbGl0ZXJhbF9ibG9ja3GsaCdoAmgoWFAAAABmcm9tIGFwYWNoZV9iZWFtIGltcG9ydCBjb2RlcnMKLi4uCmNvZGVycy5yZWdpc3RyeS5yZWdpc3Rlcl9jb2RlcihYeXosIFh5ekNvZGVyKXViaDYpgXGtfXGuKGgNaDloD31xryhoEV1oEl1oFl1oF11oGl11aAhdcbBoIVgAAQAAQWRkaXRpb25hbGx5LCBEb0ZucyBhbmQgUFRyYW5zZm9ybXMgbWF5IG5lZWQgdHlwZSBoaW50cy4gVGhpcyBpcyBub3QgYWx3YXlzCm5lY2Vzc2FyeSBzaW5jZSB0aGVyZSBpcyBmdW5jdGlvbmFsaXR5IHRvIGluZmVyIHRoZSByZXR1cm4gdHlwZXMgb2YgRG9GbnMgYnkKYW5hbHl6aW5nIHRoZSBjb2RlLiBGb3IgaW5zdGFuY2UsIGZvciB0aGUgZnVuY3Rpb24gYmVsb3cgdGhlIHJldHVybiB0eXBlIG9mCuKAmFh5euKAmSB3aWxsIGJlIGluZmVycmVkOnGxhYFxsn1xsyhoDU5oJU5oJmitaCdoAmgoWPwAAABBZGRpdGlvbmFsbHksIERvRm5zIGFuZCBQVHJhbnNmb3JtcyBtYXkgbmVlZCB0eXBlIGhpbnRzLiBUaGlzIGlzIG5vdCBhbHdheXMKbmVjZXNzYXJ5IHNpbmNlIHRoZXJlIGlzIGZ1bmN0aW9uYWxpdHkgdG8gaW5mZXIgdGhlIHJldHVybiB0eXBlcyBvZiBEb0ZucyBieQphbmFseXppbmcgdGhlIGNvZGUuIEZvciBpbnN0YW5jZSwgZm9yIHRoZSBmdW5jdGlvbiBiZWxvdyB0aGUgcmV0dXJuIHR5cGUgb2YKJ1h5eicgd2lsbCBiZSBpbmZlcnJlZDp1YmFoJUsdaCZoC2gqaEBoJ2gCaChY/QAAAEFkZGl0aW9uYWxseSwgRG9GbnMgYW5kIFBUcmFuc2Zvcm1zIG1heSBuZWVkIHR5cGUgaGludHMuIFRoaXMgaXMgbm90IGFsd2F5cwpuZWNlc3Nhcnkgc2luY2UgdGhlcmUgaXMgZnVuY3Rpb25hbGl0eSB0byBpbmZlciB0aGUgcmV0dXJuIHR5cGVzIG9mIERvRm5zIGJ5CmFuYWx5emluZyB0aGUgY29kZS4gRm9yIGluc3RhbmNlLCBmb3IgdGhlIGZ1bmN0aW9uIGJlbG93IHRoZSByZXR1cm4gdHlwZSBvZgonWHl6JyB3aWxsIGJlIGluZmVycmVkOjp1YmiiKYFxtH1xtShoDWg5aA99cbYoaBFdaBJdaBZdaBddaKZop2gaXXVoCF1xt2ghWCAAAABkZWYgTWFrZVh5enModik6CiAgcmV0dXJuIFh5eih2KXG4hYFxuX1xuihoJmi0aChVAHViYWglSyJoJmgLaCporGgnaAJoKFggAAAAZGVmIE1ha2VYeXpzKHYpOgogIHJldHVybiBYeXoodil1Ymg2KYFxu31xvChoDWg5aA99cb0oaBFdaBJdaBZdaBddaBpddWgIXXG+aCFYagEAAElmIFh5eiBpcyBpbmZlcnJlZCB0aGVuIGl0cyBjb2RlciB3aWxsIGJlIHVzZWQgd2hlbmV2ZXIgdGhlIGZyYW1ld29yayBuZWVkcyB0bwpzZXJpYWxpemUgZGF0YSAoZS5nLiwgd3JpdGluZyB0byB0aGUgc2h1ZmZsZXIgc3Vic3lzdGVtIHJlc3BvbnNpYmxlIGZvciBncm91cCBieQprZXkgb3BlcmF0aW9ucykuIElmIGEgdHlwZWhpbnQgaXMgbmVlZGVkIGl0IGNhbiBiZSBzcGVjaWZpZWQgYnkgZGVjb3JhdGluZyB0aGUKRG9GbnMgb3IgdXNpbmcgd2l0aF9pbnB1dF90eXBlcy93aXRoX291dHB1dF90eXBlcyBtZXRob2RzIG9uIFBUcmFuc2Zvcm1zLiBGb3IKZXhhbXBsZSwgdGhlIGFib3ZlIGZ1bmN0aW9uIGNhbiBiZSBkZWNvcmF0ZWQ6cb+FgXHAfXHBKGgNTmglTmgmaLtoJ2gCaChYagEAAElmIFh5eiBpcyBpbmZlcnJlZCB0aGVuIGl0cyBjb2RlciB3aWxsIGJlIHVzZWQgd2hlbmV2ZXIgdGhlIGZyYW1ld29yayBuZWVkcyB0bwpzZXJpYWxpemUgZGF0YSAoZS5nLiwgd3JpdGluZyB0byB0aGUgc2h1ZmZsZXIgc3Vic3lzdGVtIHJlc3BvbnNpYmxlIGZvciBncm91cCBieQprZXkgb3BlcmF0aW9ucykuIElmIGEgdHlwZWhpbnQgaXMgbmVlZGVkIGl0IGNhbiBiZSBzcGVjaWZpZWQgYnkgZGVjb3JhdGluZyB0aGUKRG9GbnMgb3IgdXNpbmcgd2l0aF9pbnB1dF90eXBlcy93aXRoX291dHB1dF90eXBlcyBtZXRob2RzIG9uIFBUcmFuc2Zvcm1zLiBGb3IKZXhhbXBsZSwgdGhlIGFib3ZlIGZ1bmN0aW9uIGNhbiBiZSBkZWNvcmF0ZWQ6dWJhaCVLJWgmaAtoKmhAaCdoAmgoWGsBAABJZiBYeXogaXMgaW5mZXJyZWQgdGhlbiBpdHMgY29kZXIgd2lsbCBiZSB1c2VkIHdoZW5ldmVyIHRoZSBmcmFtZXdvcmsgbmVlZHMgdG8Kc2VyaWFsaXplIGRhdGEgKGUuZy4sIHdyaXRpbmcgdG8gdGhlIHNodWZmbGVyIHN1YnN5c3RlbSByZXNwb25zaWJsZSBmb3IgZ3JvdXAgYnkKa2V5IG9wZXJhdGlvbnMpLiBJZiBhIHR5cGVoaW50IGlzIG5lZWRlZCBpdCBjYW4gYmUgc3BlY2lmaWVkIGJ5IGRlY29yYXRpbmcgdGhlCkRvRm5zIG9yIHVzaW5nIHdpdGhfaW5wdXRfdHlwZXMvd2l0aF9vdXRwdXRfdHlwZXMgbWV0aG9kcyBvbiBQVHJhbnNmb3Jtcy4gRm9yCmV4YW1wbGUsIHRoZSBhYm92ZSBmdW5jdGlvbiBjYW4gYmUgZGVjb3JhdGVkOjp1YmiiKYFxwn1xwyhoDWg5aA99ccQoaBFdaBJdaBZdaBddaKZop2gaXXVoCF1xxWghWFQAAABAd2l0aF9vdXRwdXRfdHlwZXMoWHl6KQpkZWYgTWFrZVh5enModik6CiAgcmV0dXJuIGNvbXBsZXhfb3BlcmF0aW9uX3JldHVybmluZ19YeXoodilxxoWBccd9ccgoaCZowmgoVQB1YmFoJUsraCZoC2gqaKxoJ2gCaChYVAAAAEB3aXRoX291dHB1dF90eXBlcyhYeXopCmRlZiBNYWtlWHl6cyh2KToKICByZXR1cm4gY29tcGxleF9vcGVyYXRpb25fcmV0dXJuaW5nX1h5eih2KXViaDYpgXHJfXHKKGgNaDloD31xyyhoEV1oEl1oFl1oF11oGl11aAhdccxoIVg9AAAAU2VlIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIG1vZHVsZSBmb3IgbW9yZSBkZXRhaWxzLnHNhYFxzn1xzyhoDU5oJU5oJmjJaCdoAmgoWD0AAABTZWUgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMgbW9kdWxlIGZvciBtb3JlIGRldGFpbHMucdB1YmFoJUsvaCZoC2gqaEBoJ2gCaCho0HViZWglSwJoJmgCaCpVB3NlY3Rpb25x0WgnaAJoKFUAdWJhVRJzdWJzdGl0dXRpb25fbmFtZXNx0n1x01UOcGFyc2VfbWVzc2FnZXNx1F1x1VURYXV0b2Zvb3Rub3RlX3JlZnNx1l1x12gqaCdVCW5hbWV0eXBlc3HYfXHZaBlOc1USYXV0b2Zvb3Rub3RlX3N0YXJ0cdpLAVUIaWRfc3RhcnRx20sBVRJ0cmFuc2Zvcm1fbWVzc2FnZXNx3F1x3VUVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0cd5LAGgnaAJVEGluZGlyZWN0X3RhcmdldHNx311x4FUNY2l0YXRpb25fcmVmc3HhfXHiVQpkZWNvcmF0aW9uceNOaA99ceQoaBFdVQZzb3VyY2VoDmgSXWgWXWgXXWgaXXVVCHNldHRpbmdzceUoY2RvY3V0aWxzLmZyb250ZW5kClZhbHVlcwpx5m9x531x6ChVCWlkX3ByZWZpeHHpVQBVHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXJx6lUQYmFja3NsYXNocmVwbGFjZXHrVQl0YWJfd2lkdGhx7EsIVR1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cHHtiVULcmF3X2VuYWJsZWRx7ksBVQpoYWx0X2xldmVsce9LBVUNc2VjdG51bV94Zm9ybXHwSwFVG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc3HxTlUNX2NvbmZpZ19maWxlc3HyXVUJZ2VuZXJhdG9ycfNOVQ1sYW5ndWFnZV9jb2RlcfRVAmVucfVVDnN0cmljdF92aXNpdG9ycfZOVQ9vdXRwdXRfZW5jb2Rpbmdx91UFdXRmLThx+FUPZHVtcF90cmFuc2Zvcm1zcflOVRZmaWxlX2luc2VydGlvbl9lbmFibGVkcfqIVRNyZWNvcmRfZGVwZW5kZW5jaWVzcftOVR1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcnH8VQZzdHJpY3Rx/VUMcmZjX2Jhc2VfdXJscf5VHGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9x/1UTc21hcnRxdW90ZXNfbG9jYWxlc3IAAQAATlUOZHVtcF9pbnRlcm5hbHNyAQEAAE5VD2dldHRleHRfY29tcGFjdHICAQAAiFUOd2FybmluZ19zdHJlYW1yAwEAAE5VDHNtYXJ0X3F1b3Rlc3IEAQAAiFUOcmZjX3JlZmVyZW5jZXNyBQEAAE5VB19zb3VyY2VyBgEAAGgOVRBzeW50YXhfaGlnaGxpZ2h0cgcBAABVBGxvbmdyCAEAAFUNZG9jaW5mb194Zm9ybXIJAQAASwFVD2R1bXBfcHNldWRvX3htbHIKAQAATlUPX2Rpc2FibGVfY29uZmlncgsBAABOVQ5kb2N0aXRsZV94Zm9ybXIMAQAAiVUOYXV0b19pZF9wcmVmaXhyDQEAAFUCaWRyDgEAAFUVcGVwX2ZpbGVfdXJsX3RlbXBsYXRlcg8BAABVCHBlcC0lMDRkchABAABVHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXJyEQEAAGj9VQxwZXBfYmFzZV91cmxyEgEAAFUgaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9yEwEAAFUOcGVwX3JlZmVyZW5jZXNyFAEAAE5oK05VHXRyaW1fZm9vdG5vdGVfcmVmZXJlbmNlX3NwYWNlchUBAACJVRJzZWN0c3VidGl0bGVfeGZvcm1yFgEAAIlVDmVycm9yX2VuY29kaW5nchcBAABVBVVURi04chgBAABVDHJlcG9ydF9sZXZlbHIZAQAASwJVEGV4cG9zZV9pbnRlcm5hbHNyGgEAAE5VEGVtYmVkX3N0eWxlc2hlZXRyGwEAAIlVDXRvY19iYWNrbGlua3NyHAEAAFUFZW50cnlyHQEAAFUSZm9vdG5vdGVfYmFja2xpbmtzch4BAABLAVUNZHVtcF9zZXR0aW5nc3IfAQAATlUOc3RyaXBfY29tbWVudHNyIAEAAE5VDmlucHV0X2VuY29kaW5nciEBAABVCXV0Zi04LXNpZ3IiAQAAVRFleGl0X3N0YXR1c19sZXZlbHIjAQAASwVVA2VudnIkAQAATlULc291cmNlX2xpbmtyJQEAAE5VCXRyYWNlYmFja3ImAQAAiFUFZGVidWdyJwEAAE5VCnNvdXJjZV91cmxyKAEAAE5VDF9kZXN0aW5hdGlvbnIpAQAATlUVY2xvYWtfZW1haWxfYWRkcmVzc2VzcioBAACIVQZjb25maWdyKwEAAE5VDXN0cmlwX2NsYXNzZXNyLAEAAE5VCWRhdGVzdGFtcHItAQAATnViVQxjdXJyZW50X2xpbmVyLgEAAE5oEn1yLwEAAChoFWgLaBRjZG9jdXRpbHMubm9kZXMKdGFyZ2V0CnIwAQAAKYFyMQEAAH1yMgEAAChoDWgwaA99cjMBAAAoaBFdaBJdcjQBAABoFGFoFl1VBWlzbW9kiGgXXWgaXXVoCF1oJUsBaCZoC2gqVQZ0YXJnZXRyNQEAAGgnaAJoKFUAdWJ1VQ1hdXRvZm9vdG5vdGVzcjYBAABdcjcBAABVEHN5bWJvbF9mb290bm90ZXNyOAEAAF1yOQEAAFUJZm9vdG5vdGVzcjoBAABdcjsBAABVCHJlcG9ydGVycjwBAABOVQhyZWZuYW1lc3I9AQAAfXI+AQAAVQt0cmFuc2Zvcm1lcnI/AQAATmgoVQBVB25hbWVpZHNyQAEAAH1yQQEAAGgZaBVzVRFzdWJzdGl0dXRpb25fZGVmc3JCAQAAfXJDAQAAVQljaXRhdGlvbnNyRAEAAF1yRQEAAFUOY3VycmVudF9zb3VyY2VyRgEAAE5VDWZvb3Rub3RlX3JlZnNyRwEAAH1ySAEAAHViLg==