JWdsb2JhbCBWRVJTSU9OICBAUEFDS0FHRV9WRVJTSU9OQAolZ2xvYmFsIFBhdGNobGV2ZWwgIEBQQUNLQUdFX1JFTEVBU0VACgpOYW1lOiAgICAgICAgICAgQFBBQ0tBR0VfTkFNRUAKVmVyc2lvbjogICAgICAgICV7VkVSU0lPTn0KUmVsZWFzZTogICAgICAgICV7UGF0Y2hsZXZlbH0KU3VtbWFyeTogICAgICAgIFVzZSBJbWFnZU1hZ2ljayB0byBjb252ZXJ0LCBlZGl0LCBvciBjb21wb3NlIGJpdG1hcCBpbWFnZXMgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMuICBJbiBhZGRpdGlvbiByZXNpemUsIHJvdGF0ZSwgc2hlYXIsIGRpc3RvcnQgYW5kIHRyYW5zZm9ybSBpbWFnZXMuCkdyb3VwOiAgICAgICAgICBBcHBsaWNhdGlvbnMvTXVsdGltZWRpYQpMaWNlbnNlOiAgICAgICAgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvc2NyaXB0L2xpY2Vuc2UucGhwClVybDogICAgICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8KU291cmNlMDogICAgICAgIGZ0cDovL2Z0cC5pbWFnZW1hZ2ljay5vcmcvcHViLyV7bmFtZX0vJXtuYW1lfS0le1ZFUlNJT059LSV7UGF0Y2hsZXZlbH0udGFyLmJ6MgoKQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCkJ1aWxkUmVxdWlyZXM6ICBiemlwMi1kZXZlbCwgZnJlZXR5cGUtZGV2ZWwsIGxpYmpwZWctZGV2ZWwsIGxpYnBuZy1kZXZlbApCdWlsZFJlcXVpcmVzOiAgbGlidGlmZi1kZXZlbCwgZ2lmbGliLWRldmVsLCB6bGliLWRldmVsLCBwZXJsLWRldmVsID49IDUuOC4xCkJ1aWxkUmVxdWlyZXM6ICBnaG9zdHNjcmlwdC1kZXZlbCwgZGp2dWxpYnJlLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJ3bWYtZGV2ZWwsIGphc3Blci1kZXZlbCwgbGlidG9vbC1sdGRsLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJYMTEtZGV2ZWwsIGxpYlhleHQtZGV2ZWwsIGxpYlh0LWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsY21zLWRldmVsLCBsaWJ4bWwyLWRldmVsLCBsaWJyc3ZnMi1kZXZlbCwgT3BlbkVYUi1kZXZlbAoKJWRlc2NyaXB0aW9uCkltYWdlTWFnaWNrIGlzIGEgc29mdHdhcmUgc3VpdGUgdG8gY3JlYXRlLCBlZGl0LCBhbmQgY29tcG9zZSBiaXRtYXAgaW1hZ2VzLiBJdApjYW4gcmVhZCwgY29udmVydCBhbmQgd3JpdGUgaW1hZ2VzIGluIGEgdmFyaWV0eSBvZiBmb3JtYXRzIChhYm91dCAxMDApCmluY2x1ZGluZyBEUFgsIEdJRiwgSlBFRywgSlBFRy0yMDAwLCBQREYsIFBob3RvQ0QsIFBORywgUG9zdHNjcmlwdCwgU1ZHLAphbmQgVElGRi4gVXNlIEltYWdlTWFnaWNrIHRvIHRyYW5zbGF0ZSwgZmxpcCwgbWlycm9yLCByb3RhdGUsIHNjYWxlLCBzaGVhcgphbmQgdHJhbnNmb3JtIGltYWdlcywgYWRqdXN0IGltYWdlIGNvbG9ycywgYXBwbHkgdmFyaW91cyBzcGVjaWFsIGVmZmVjdHMsCm9yIGRyYXcgdGV4dCwgbGluZXMsIHBvbHlnb25zLCBlbGxpcHNlcyBhbmQgQul6aWVyIGN1cnZlcy4KClRoZSBmdW5jdGlvbmFsaXR5IG9mIEltYWdlTWFnaWNrIGlzIHR5cGljYWxseSB1dGlsaXplZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUKb3IgeW91IGNhbiB1c2UgdGhlIGZlYXR1cmVzIGZyb20gcHJvZ3JhbXMgd3JpdHRlbiBpbiB5b3VyIGZhdm9yaXRlIHByb2dyYW1taW5nCmxhbmd1YWdlLiBDaG9vc2UgZnJvbSB0aGVzZSBpbnRlcmZhY2VzOiBHMkYgKEFkYSksIE1hZ2lja0NvcmUgKEMpLCBNYWdpY2tXYW5kCihDKSwgQ2hNYWdpY2sgKENoKSwgTWFnaWNrKysgKEMrKyksIEpNYWdpY2sgKEphdmEpLCBMLU1hZ2ljayAoTGlzcCksIG5NYWdpY2sKKE5la28vaGFYZSksIFBhc2NhbE1hZ2ljayAoUGFzY2FsKSwgUGVybE1hZ2ljayAoUGVybCksIE1hZ2lja1dhbmQgZm9yIFBIUAooUEhQKSwgUHl0aG9uTWFnaWNrIChQeXRob24pLCBSTWFnaWNrIChSdWJ5KSwgb3IgVGNsTWFnaWNrIChUY2wvVEspLiBXaXRoIGEKbGFuZ3VhZ2UgaW50ZXJmYWNlLCB1c2UgSW1hZ2VNYWdpY2sgdG8gbW9kaWZ5IG9yIGNyZWF0ZSBpbWFnZXMgYXV0b21hZ2ljYWxseQphbmQgZHluYW1pY2FsbHkuCgpJbWFnZU1hZ2ljayBpcyBmcmVlIHNvZnR3YXJlIGRlbGl2ZXJlZCBhcyBhIHJlYWR5LXRvLXJ1biBiaW5hcnkgZGlzdHJpYnV0aW9uCm9yIGFzIHNvdXJjZSBjb2RlIHRoYXQgeW91IG1heSBmcmVlbHkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluCmJvdGggb3BlbiBhbmQgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciBhbiBBcGFjaGUKMi4wLXN0eWxlIGxpY2Vuc2UsIGFwcHJvdmVkIGJ5IHRoZSBPU0kuCgpUaGUgSW1hZ2VNYWdpY2sgZGV2ZWxvcG1lbnQgcHJvY2VzcyBlbnN1cmVzIGEgc3RhYmxlIEFQSSBhbmQgQUJJLiBCZWZvcmUKZWFjaCBJbWFnZU1hZ2ljayByZWxlYXNlLCB3ZSBwZXJmb3JtIGEgY29tcHJlaGVuc2l2ZSBzZWN1cml0eSBhc3Nlc3NtZW50IHRoYXQKaW5jbHVkZXMgbWVtb3J5IGFuZCB0aHJlYWQgZXJyb3IgZGV0ZWN0aW9uIHRvIGhlbHAgcHJldmVudCBleHBsb2l0cy5JbWFnZU1hZ2ljawppcyBmcmVlIHNvZnR3YXJlIGRlbGl2ZXJlZCBhcyBhIHJlYWR5LXRvLXJ1biBiaW5hcnkgZGlzdHJpYnV0aW9uIG9yIGFzIHNvdXJjZQpjb2RlIHRoYXQgeW91IG1heSBmcmVlbHkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluIGJvdGggb3BlbiBhbmQKcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciBhbiBBcGFjaGUgMi4wLXN0eWxlIGxpY2Vuc2UsCmFwcHJvdmVkIGJ5IHRoZSBPU0kuCgoKJXBhY2thZ2UgZGV2ZWwKU3VtbWFyeTogTGlicmFyeSBsaW5rcyBhbmQgaGVhZGVyIGZpbGVzIGZvciBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudApHcm91cDogRGV2ZWxvcG1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiBsaWJYMTEtZGV2ZWwsIGxpYlhleHQtZGV2ZWwsIGxpYlh0LWRldmVsClJlcXVpcmVzOiBnaG9zdHNjcmlwdC1kZXZlbApSZXF1aXJlczogYnppcDItZGV2ZWwKUmVxdWlyZXM6IGZyZWV0eXBlLWRldmVsClJlcXVpcmVzOiBsaWJ0aWZmLWRldmVsClJlcXVpcmVzOiBsaWJqcGVnLWRldmVsClJlcXVpcmVzOiBsY21zLWRldmVsClJlcXVpcmVzOiBqYXNwZXItZGV2ZWwKUmVxdWlyZXM6IHBrZ2NvbmZpZwoKJWRlc2NyaXB0aW9uIGRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBsaWJyYXJ5IGxpbmtzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMuIEltYWdlTWFnaWNrIGlzIGFuIGltYWdlCm1hbmlwdWxhdGlvbiBwcm9ncmFtLgoKSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFwcGxpY2F0aW9ucyB0aGF0IHdpbGwgdXNlIEltYWdlTWFnaWNrIGNvZGUgb3IKQVBJcywgeW91IG5lZWQgdG8gaW5zdGFsbCBJbWFnZU1hZ2ljay1kZXZlbCBhcyB3ZWxsIGFzIEltYWdlTWFnaWNrLgpZb3UgZG8gbm90IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywKaG93ZXZlci4KCgolcGFja2FnZSBkb2MKU3VtbWFyeTogSW1hZ2VNYWdpY2sgSFRNTCBkb2N1bWVudGF0aW9uCkdyb3VwOiBEb2N1bWVudGF0aW9uCgoKJXBhY2thZ2UgZGp2dQpTdW1tYXJ5OiBEalZ1IHBsdWdpbiBmb3IgSW1hZ2VNYWdpY2sKR3JvdXA6IEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gZGp2dQpUaGlzIHBhY2thZ2VzIGNvbnRhaW5zIGEgcGx1Z2luIGZvciBJbWFnZU1hZ2ljayB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0bwpzYXZlIGFuZCBsb2FkIERqdlUgZmlsZXMgZnJvbSBJbWFnZU1hZ2ljayBhbmQgbGliTWFnaWNrQ29yZSB1c2luZyBhcHBsaWNhdGlvbnMuCgoKJWRlc2NyaXB0aW9uIGRvYwpJbWFnZU1hZ2ljayBkb2N1bWVudGF0aW9uLCB0aGlzIHBhY2thZ2UgY29udGFpbnMgdXNhZ2UgKGZvciB0aGUKY29tbWFuZGxpbmUgdG9vbHMpIGFuZCBBUEkgKGZvciB0aGUgbGlicmFyaWVzKSBkb2N1bWVudGF0aW9uIGluIEhUTUwgZm9ybWF0LgpOb3RlIHRoaXMgZG9jdW1lbnRhdGlvbiBjYW4gYWxzbyBiZSBmb3VuZCBvbiB0aGUgSW1hZ2VNYWdpY2sgd2Vic2l0ZToKaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvLgoKCiVwYWNrYWdlIHBlcmwKU3VtbWFyeTogSW1hZ2VNYWdpY2sgcGVybCBiaW5kaW5ncwpHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwpSZXF1aXJlczogcGVybC1iYXNlClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiBwZXJsKDpNT0RVTEVfQ09NUEFUXyUoZXZhbCAiYCV7X19wZXJsfSAtVjp2ZXJzaW9uYCI7IGVjaG8gJHZlcnNpb24pKQoKCiVkZXNjcmlwdGlvbiBwZXJsClBlcmwgYmluZGluZ3MgdG8gSW1hZ2VNYWdpY2suCgpJbnN0YWxsIEltYWdlTWFnaWNrLXBlcmwgaWYgeW91IHdhbnQgdG8gdXNlIGFueSBwZXJsIHNjcmlwdHMgdGhhdCB1c2UKSW1hZ2VNYWdpY2suCgoKJXBhY2thZ2UgYysrClN1bW1hcnk6IEltYWdlTWFnaWNrIE1hZ2ljaysrIGxpYnJhcnkgKEMrKyBiaW5kaW5ncykKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBjKysKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNYWdpY2srKyBsaWJyYXJ5LCBhIEMrKyBiaW5kaW5nIHRvIHRoZSBJbWFnZU1hZ2ljawpncmFwaGljcyBtYW5pcHVsYXRpb24gbGlicmFyeS4KCkluc3RhbGwgSW1hZ2VNYWdpY2stYysrIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgYXBwbGljYXRpb25zIHRoYXQgdXNlIE1hZ2ljaysrLgoKCiVwYWNrYWdlIGMrKy1kZXZlbApTdW1tYXJ5OiBDKysgYmluZGluZ3MgZm9yIHRoZSBJbWFnZU1hZ2ljayBsaWJyYXJ5Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0tYysrID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gYysrLWRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBzdGF0aWMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIE1hZ2ljaysrIEMrKyBiaW5kaW5ncy4KSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgTWFnaWNrKysgY29kZQpvciBBUElzLCB5b3UnbGwgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWMrKy1kZXZlbCwgSW1hZ2VNYWdpY2stZGV2ZWwgYW5kCkltYWdlTWFnaWNrLgoKWW91IGRvbid0IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywgb3IgaWYgeW91CndhbnQgdG8gZGV2ZWxvcC9jb21waWxlIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgSW1hZ2VNYWdpY2sgQyBpbnRlcmZhY2UsCmhvd2V2ZXIuCgoKJXByZXAKJXNldHVwIC1xIC1uICV7bmFtZX0tJXtWRVJTSU9OfS0le1BhdGNobGV2ZWx9CnNlZCAtaSAncy9saWJsdGRsLmxhL2xpYmx0ZGwuc28vZycgY29uZmlndXJlCmljb252IC1mIElTTy04ODU5LTEgLXQgVVRGLTggUkVBRE1FLnR4dCA+IFJFQURNRS50eHQudG1wCnRvdWNoIC1yIFJFQURNRS50eHQgUkVBRE1FLnR4dC50bXAKbXYgUkVBRE1FLnR4dC50bXAgUkVBRE1FLnR4dAojIGZvciAlJWRvYwpta2RpciBNYWdpY2srKy9leGFtcGxlcwpjcCAtcCBNYWdpY2srKy9kZW1vLyouY3BwIE1hZ2ljaysrL2RlbW8vKi5taWZmIE1hZ2ljaysrL2V4YW1wbGVzCgolYnVpbGQKJWNvbmZpZ3VyZSAtLWVuYWJsZS1zaGFyZWQgXAogICAgICAgICAgIC0tZGlzYWJsZS1zdGF0aWMgXAogICAgICAgICAgIC0td2l0aC1tb2R1bGVzIFwKICAgICAgICAgICAtLXdpdGgtcGVybCBcCiAgICAgICAgICAgLS13aXRoLXggXAogICAgICAgICAgIC0td2l0aC10aHJlYWRzIFwKICAgICAgICAgICAtLXdpdGgtbWFnaWNrX3BsdXNfcGx1cyBcCiAgICAgICAgICAgLS13aXRoLWdzbGliIFwKICAgICAgICAgICAtLXdpdGgtd21mIFwKICAgICAgICAgICAtLXdpdGgtbGNtcyBcCiAgICAgICAgICAgLS13aXRoLXJzdmcgXAogICAgICAgICAgIC0td2l0aC14bWwgXAogICAgICAgICAgIC0td2l0aC1wZXJsLW9wdGlvbnM9J0lOU1RBTExESVJTPXZlbmRvcicgXAogICAgICAgICAgIC0td2l0aG91dC1kcHMgXAogICAgICAgICAgIC0td2l0aG91dC1pbmNsdWRlZC1sdGRsIC0td2l0aC1sdGRsLWluY2x1ZGU9JXtfaW5jbHVkZWRpcn0gXAogICAgICAgICAgIC0td2l0aC1sdGRsLWxpYj0le19saWJkaXJ9CiMgRGlzYWJsZSBycGF0aApzZWQgLWkgJ3N8XmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Lip8aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0iInxnJyBsaWJ0b29sCnNlZCAtaSAnc3xecnVucGF0aF92YXI9TERfUlVOX1BBVEh8cnVucGF0aF92YXI9RElFX1JQQVRIX0RJRXxnJyBsaWJ0b29sCiMgRG8gKk5PVCogdXNlICUlez9fc21wX21mbGFnc30sIHRoaXMgY2F1c2VzIFBlcmxNYWdpY2sgdG8gYmUgc2lsZW50bHkgbWlzYnVpbGQKbWFrZQoKCiVpbnN0YWxsCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCm1ha2UgaW5zdGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVCBJTlNUQUxMPSJpbnN0YWxsIC1wIgpjcCAtYSB3d3cvc291cmNlICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2RvYy8le25hbWV9LSV7VkVSU0lPTn0Kcm0gJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS8qLmxhCgojIGZpeCB3ZWlyZCBwZXJsIE1hZ2ljay5zbyBwZXJtaXNzaW9ucwpjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9L2F1dG8vSW1hZ2UvTWFnaWNrL01hZ2ljay5zbwoKIyBwZXJsbWFnaWNrOiBmaXggcGVybCBwYXRoIG9mIGRlbW8gZmlsZXMKJXtfX3Blcmx9IC1NRXh0VXRpbHM6Ok1ha2VNYWtlciAtZSAnTVktPmZpeGluKEBBUkdWKScgUGVybE1hZ2ljay9kZW1vLyoucGwKCiMgcGVybG1hZ2ljazogY2xlYW51cCB2YXJpb3VzIHBlcmwgdGVtcGZpbGVzIGZyb20gdGhlIGJ1aWxkIHdoaWNoIGdldCBpbnN0YWxsZWQKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgIiouYnMiIHx4YXJncyBybSAtZgpmaW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAiLnBhY2tsaXN0IiB8eGFyZ3Mgcm0gLWYKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgInBlcmxsb2NhbC5wb2QiIHx4YXJncyBybSAtZgoKIyBwZXJsbWFnaWNrOiBidWlsZCBmaWxlcyBsaXN0CmVjaG8gIiVkZWZhdHRyKC0scm9vdCxyb290LC0pIiA+IHBlcmwtcGtnLWZpbGVzCmZpbmQgJFJQTV9CVUlMRF9ST09ULyV7X2xpYmRpcn0vcGVybCogLXR5cGUgZiAtcHJpbnQgXAogICAgICAgIHwgc2VkICJzQF4kUlBNX0JVSUxEX1JPT1RAQGciID4gcGVybC1wa2ctZmlsZXMgCmZpbmQgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9IC10eXBlIGQgLXByaW50IFwKICAgICAgICB8IHNlZCAic0BeJFJQTV9CVUlMRF9ST09UQCVkaXIgQGciIFwKICAgICAgICB8IGdyZXAgLXYgJ14lZGlyICV7cGVybF92ZW5kb3JhcmNofSQnIFwKICAgICAgICB8IGdyZXAgLXYgJy9hdXRvJCcgPj4gcGVybC1wa2ctZmlsZXMgCmlmIFsgLXogcGVybC1wa2ctZmlsZXMgXSA7IHRoZW4KICAgIGVjaG8gIkVSUk9SOiBFTVBUWSBGSUxFIExJU1QiCiAgICBleGl0IC0xCmZpCgojIGZpeCBtdWx0aWxpYiBpc3N1ZXMKJWlmYXJjaCB4ODZfNjQgczM5MHggaWE2NCBwcGM2NCBhbHBoYSBzcGFyYzY0CiVkZWZpbmUgd29yZHNpemUgNjQKJWVsc2UKJWRlZmluZSB3b3Jkc2l6ZSAzMgolZW5kaWYKCm12ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vbWFnaWNrL21hZ2ljay1jb25maWcuaCBcCiAgICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vbWFnaWNrL21hZ2ljay1jb25maWctJXt3b3Jkc2l6ZX0uaAoKY2F0ID4kUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L21hZ2ljay9tYWdpY2stY29uZmlnLmggPDxFT0YKI2lmbmRlZiBJTUFHRU1BR0lDS19NVUxUSUxJQgojZGVmaW5lIElNQUdFTUFHSUNLX01VTFRJTElCCgojaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgoKI2lmIF9fV09SRFNJWkUgPT0gMzIKIyBpbmNsdWRlICJtYWdpY2stY29uZmlnLTMyLmgiCiNlbGlmIF9fV09SRFNJWkUgPT0gNjQKIyBpbmNsdWRlICJtYWdpY2stY29uZmlnLTY0LmgiCiNlbHNlCiMgZXJyb3IgInVuZXhwZWN0ZWQgdmFsdWUgZm9yIF9fV09SRFNJWkUgbWFjcm8iCiNlbmRpZgoKI2VuZGlmCkVPRgoKJWNsZWFuCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCgolcG9zdCAtcCAvc2Jpbi9sZGNvbmZpZwoKJXBvc3QgYysrIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKCiVmaWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jIFF1aWNrU3RhcnQudHh0IENoYW5nZUxvZyBQbGF0Zm9ybXMudHh0CiVkb2MgUkVBRE1FLnR4dCBMSUNFTlNFIE5PVElDRSBBVVRIT1JTLnR4dCBORVdTLnR4dAole19saWJkaXJ9L2xpYk1hZ2lja0NvcmUuc28qCiV7X2xpYmRpcn0vbGliTWFnaWNrV2FuZC5zbyoKJXtfYmluZGlyfS9bYS16XSoKJXtfc3lzY29uZmRpcn0vJXtuYW1lfQole19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19kYXRhZGlyfS8le25hbWV9LSV7VkVSU0lPTn0KJXtfbWFuZGlyfS9tYW5bMTQ1XS9bYS16QS1aXSoKJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0uKgolZXhjbHVkZSAle19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfS9tb2R1bGVzLVExNi9jb2RlcnMvZGp2dS4qCgoKJWZpbGVzIGRldmVsCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X2JpbmRpcn0vTWFnaWNrQ29yZS1jb25maWcKJXtfYmluZGlyfS9NYWdpY2tXYW5kLWNvbmZpZwole19saWJkaXJ9L2xpYk1hZ2lja0NvcmUuc28qCiV7X2xpYmRpcn0vbGliTWFnaWNrV2FuZC5zbyoKJXtfbGliZGlyfS9wa2djb25maWcvTWFnaWNrQ29yZS5wYwole19saWJkaXJ9L3BrZ2NvbmZpZy9JbWFnZU1hZ2ljay5wYwole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tXYW5kLnBjCiVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2lja0NvcmUKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9NYWdpY2tXYW5kCiV7X21hbmRpcn0vbWFuMS9NYWdpY2tDb3JlLWNvbmZpZy4qCiV7X21hbmRpcn0vbWFuMS9NYWdpY2tXYW5kLWNvbmZpZy4qCgolZmlsZXMgZGp2dQolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19saWJkaXJ9LyV7bmFtZX0tJXt2ZXJzaW9ufS9tb2R1bGVzLVExNi9jb2RlcnMvZGp2dS4qCgolZmlsZXMgZG9jCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgJXtfZGF0YWRpcn0vZG9jLyV7bmFtZX0tJXtWRVJTSU9OfQolZG9jIExJQ0VOU0UKCiVmaWxlcyBjKysKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyBNYWdpY2srKy9BVVRIT1JTIE1hZ2ljaysrL0NoYW5nZUxvZyBNYWdpY2srKy9ORVdTIE1hZ2ljaysrL1JFQURNRQolZG9jIHd3dy9NYWdpY2srKy9DT1BZSU5HCiV7X2xpYmRpcn0vbGliTWFnaWNrKysuc28qCgolZmlsZXMgYysrLWRldmVsCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgTWFnaWNrKysvZXhhbXBsZXMKJXtfYmluZGlyfS9NYWdpY2srKy1jb25maWcKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9NYWdpY2srKwole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2ljaysrLmgKJXtfbGliZGlyfS9saWJNYWdpY2srKy5zbyoKJXtfbGliZGlyfS9wa2djb25maWcvTWFnaWNrKysucGMKJXtfbGliZGlyfS9wa2djb25maWcvSW1hZ2VNYWdpY2srKy5wYwole19tYW5kaXJ9L21hbjEvTWFnaWNrKystY29uZmlnLioKCiVmaWxlcyBwZXJsIC1mIHBlcmwtcGtnLWZpbGVzCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X21hbmRpcn0vbWFuMy8qCiVkb2MgUGVybE1hZ2ljay9kZW1vLyBQZXJsTWFnaWNrL0NoYW5nZWxvZyBQZXJsTWFnaWNrL1JFQURNRS50eHQKCgolY2hhbmdlbG9nCiogU3VuIE1heSAwMSAyMDA1IENyaXN0eSA8Y3Jpc3R5QG15c3RpYy5lcy5kdXBvbnQuY29tPiAxLjAtMAotICBQb3J0IG9mIFJlZGhhdCdzIFJQTSBzY3JpcHQgdG8gc3VwcG9ydCBJbWFnZU1hZ2ljay4K