CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKxBEKG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIHYWRhcHRlchoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKjAwoHQWRhcHRlchIOCgJpZBgBIAEoCVICaWQSFgoGdmVuZG9yGAIgASgJUgZ2ZW5kb3ISGAoHdmVyc2lvbhgDIAEoCVIHdmVyc2lvbhIuCgZjb25maWcYECABKAsyFi5hZGFwdGVyLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJLChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxItChJsYXN0X2NvbW11bmljYXRpb24YBSABKANSEWxhc3RDb21tdW5pY2F0aW9uEiYKDmN1cnJlbnRSZXBsaWNhGAYgASgFUg5jdXJyZW50UmVwbGljYRIkCg10b3RhbFJlcGxpY2FzGAcgASgFUg10b3RhbFJlcGxpY2FzEhoKCGVuZHBvaW50GAggASgJUghlbmRwb2ludBISCgR0eXBlGAkgASgJ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dWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwq1Hwoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIUCgJJRBIOCgJpZBgBIAEoCVICaWQiJwoDSURzEiAKBWl0ZW1zGAEgAygLMgouY29tbW9uLklEUgVpdGVtcyJ6CgpDb25uZWN0aW9uEhoKCGVuZHBvaW50GAEgASgJUghlbmRwb2ludBIgCgtjb250ZXh0SW5mbxgCIAEoCVILY29udGV4dEluZm8SLgoTa2VlcF9hbGl2ZV9pbnRlcnZhbBgDIAEoA1IRa2VlcEFsaXZlSW50ZXJ2YWwiaAoKQWRtaW5TdGF0ZSJaCgVUeXBlcxILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEIpEBCgpPcGVyU3RhdHVzIoIBCgVUeXBlcxILCgdVTktOT1dOEAASDgoKRElTQ09WRVJFRBABEg4KCkFDVElWQVRJTkcQAhILCgdURVNUSU5HEAMSCgoGQUNUSVZFEAQSCgoGRkFJTEVEEAUSDwoLUkVDT05DSUxJTkcQBhIW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LmFwaSJ5CgRIdHRwEioKBXJ1bGVzGAEgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIFcnVsZXMSRQofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCFIcZnVsbHlEZWNvZGVSZXNlcnZlZEV4cGFuc2lvbiLaAgoISHR0cFJ1bGUSGgoIc2VsZWN0b3IYASABKAlSCHNlbGVjdG9yEhIKA2dldBgCIAEoCUgAUgNnZXQSEgoDcHV0GAMgASgJSABSA3B1dBIUCgRwb3N0GAQgASgJSABSBHBvc3QSGAoGZGVsZXRlGAUgASgJSABSBmRlbGV0ZRIWCgVwYXRjaBgGIAEoCUgAUgVwYXRjaBI3CgZjdXN0b20YCCABKAsyHS5nb29nbGUuYXBpLkN1c3RvbUh0dHBQYXR0ZXJuSABSBmN1c3RvbRISCgRib2R5GAcgASgJUgRib2R5EiMKDXJlc3BvbnNlX2JvZHkYDCABKAlSDHJlc3BvbnNlQm9keRJFChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVISYWRkaXRpb25hbEJpbmRpbmdzQgkKB3BhdHRlcm4iOwoRQ3VzdG9tSHR0cFBhdHRlcm4SEgoEa2luZBgBIAEoCVIEa2luZBISCgRwYXRoGAIgASgJUgRwYXRoQmoKDmNvbS5nb29nbGUuYXBpQglIdHRwUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnP4AQGiAgRHQVBJSpd0CgcSBQ8A+wIBCr4ECgEMEgMPABIyswQgQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgECEgMRABMKCAoBCBIDEwAfCgkKAggfEgMTAB8KCAoBCBIDFABYCgkKAggLEgMUAFgKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAqCgkKAggIEgMWACoKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAiCgkKAggkEgMYACIKzQEKAgQAEgQdACoBGsABIERlZmluZXMgdGhlIEhUVFAgY29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIHNlcnZpY2UuIEl0IGNvbnRhaW5zIGEgbGlzdCBvZgogW0h0dHBSdWxlXVtnb29nbGUuYXBpLkh0dHBSdWxlXSwgZWFjaCBzcGVjaWZ5aW5nIHRoZSBtYXBwaW5nIG9mIGFuIFJQQyBtZXRob2QKIHRvIG9uZSBvciBtb3JlIEhUVFAgUkVTVCBBUEkgbWV0aG9kcy4KCgoKAwQAARIDHQgMCqIBCgQEAAIAEgMhAh4alAEgQSBsaXN0IG9mIEhUVFAgY29uZmlndXJhdGlvbiBydWxlcyB0aGF0IGFwcGx5IHRvIGluZGl2aWR1YWwgQVBJIG1ldGhvZHMuCgogKipOT1RFOioqIEFsbCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcnVsZXMgZm9sbG93ICJsYXN0IG9uZSB3aW5zIiBvcmRlci4KCgwKBQQAAgAEEgMhAgoKDAoFBAACAAYSAyELEwoMCgUEAAIAARIDIRQZCgwKBQQAAgADEgMhHB0KkwIKBAQAAgESAykCKxqFAiBXaGVuIHNldCB0byB0cnVlLCBVUkwgcGF0aCBwYXJtZXRlcnMgd2lsbCBiZSBmdWxseSBVUkktZGVjb2RlZCBleGNlcHQgaW4KIGNhc2VzIG9mIHNpbmdsZSBzZWdtZW50IG1hdGNoZXMgaW4gcmVzZXJ2ZWQgZXhwYW5zaW9uLCB3aGVyZSAiJTJGIiB3aWxsIGJlCiBsZWZ0IGVuY29kZWQuCgogVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90IGRlY29kZSBSRkMgNjU3MCByZXNlcnZlZCBjaGFyYWN0ZXJzIGluIG11bHRpCiBzZWdtZW50IG1hdGNoZXMuCgoNCgUEAAIBBBIEKQIhHgoMCgUEAAIBBRIDKQIGCgwKBQQAAgEBEgMpByYKDAoFBAACAQMSAykpKgq7UwoCBAESBrwCAPICARqsUyAjIGdSUEMgVHJhbnNjb2RpbmcKCiBnUlBDIFRyYW5zY29kaW5nIGlzIGEgZmVhdHVyZSBmb3IgbWFwcGluZyBiZXR3ZWVuIGEgZ1JQQyBtZXRob2QgYW5kIG9uZSBvcgogbW9yZSBIVFRQIFJFU1QgZW5kcG9pbnRzLiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBidWlsZCBhIHNpbmdsZSBBUEkgc2VydmljZQogdGhhdCBzdXBwb3J0cyBib3RoIGdSUEMgQVBJcyBhbmQgUkVTVCBBUElzLiBNYW55IHN5c3RlbXMsIGluY2x1ZGluZyBbR29vZ2xlCiBBUElzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlYXBpcy9nb29nbGVhcGlzKSwKIFtDbG91ZCBFbmRwb2ludHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9lbmRwb2ludHMpLCBbZ1JQQwogR2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSksCiBhbmQgW0Vudm95XShodHRwczovL2dpdGh1Yi5jb20vZW52b3lwcm94eS9lbnZveSkgcHJveHkgc3VwcG9ydCB0aGlzIGZlYXR1cmUKIGFuZCB1c2UgaXQgZm9yIGxhcmdlIHNjYWxlIHByb2R1Y3Rpb24gc2VydmljZXMuCgogYEh0dHBSdWxlYCBkZWZpbmVzIHRoZSBzY2hlbWEgb2YgdGhlIGdSUEMvUkVTVCBtYXBwaW5nLiBUaGUgbWFwcGluZyBzcGVjaWZpZXMKIGhvdyBkaWZmZXJlbnQgcG9ydGlvbnMgb2YgdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8gdGhlIFVSTAogcGF0aCwgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4gSXQgYWxzbyBjb250cm9scyBob3cgdGhlCiBnUlBDIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkuIGBIdHRwUnVsZWAgaXMKIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYW4gYGdvb2dsZS5hcGkuaHR0cGAgYW5ub3RhdGlvbiBvbiB0aGUgZ1JQQyBtZXRob2QuCgogRWFjaCBtYXBwaW5nIHNwZWNpZmllcyBhIFVSTCBwYXRoIHRlbXBsYXRlIGFuZCBhbiBIVFRQIG1ldGhvZC4gVGhlIHBhdGgKIHRlbXBsYXRlIG1heSByZWZlciB0byBvbmUgb3IgbW9yZSBmaWVsZHMgaW4gdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlLCBhcyBsb25nCiBhcyBlYWNoIGZpZWxkIGlzIGEgbm9uLXJlcGVhdGVkIGZpZWxkIHdpdGggYSBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlLgogVGhlIHBhdGggdGVtcGxhdGUgY29udHJvbHMgaG93IGZpZWxkcyBvZiB0aGUgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8KIHRoZSBVUkwgcGF0aC4KCiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEve25hbWU9bWVzc2FnZXMvKn0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG5hbWUgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgdGV4dCA9IDE7IC8vIFRoZSByZXNvdXJjZSBjb250ZW50LgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYW4gSFRUUCBSRVNUIHRvIGdSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgIHwgYEdldE1lc3NhZ2UobmFtZTogIm1lc3NhZ2VzLzEyMzQ1NiIpYAoKIEFueSBmaWVsZHMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSB3aGljaCBhcmUgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlCiBhdXRvbWF0aWNhbGx5IGJlY29tZSBIVFRQIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhlcmUgaXMgbm8gSFRUUCByZXF1ZXN0IGJvZHkuCiBGb3IgZXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIG1lc3NhZ2UgU3ViTWVzc2FnZSB7CiAgICAgICAgIHN0cmluZyBzdWJmaWVsZCA9IDE7CiAgICAgICB9CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICAgIGludDY0IHJldmlzaW9uID0gMjsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHJldmlzaW9uYC4KICAgICAgIFN1Yk1lc3NhZ2Ugc3ViID0gMzsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHN1Yi5zdWJmaWVsZGAuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1Nj9yZXZpc2lvbj0yJnN1Yi5zdWJmaWVsZD1mb29gIHwKIGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiIHJldmlzaW9uOiAyIHN1YjogU3ViTWVzc2FnZShzdWJmaWVsZDoKICJmb28iKSlgCgogTm90ZSB0aGF0IGZpZWxkcyB3aGljaCBhcmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBhCiBwcmltaXRpdmUgdHlwZSBvciBhIHJlcGVhdGVkIHByaW1pdGl2ZSB0eXBlIG9yIGEgbm9uLXJlcGVhdGVkIG1lc3NhZ2UgdHlwZS4KIEluIHRoZSBjYXNlIG9mIGEgcmVwZWF0ZWQgdHlwZSwgdGhlIHBhcmFtZXRlciBjYW4gYmUgcmVwZWF0ZWQgaW4gdGhlIFVSTAogYXMgYC4uLj9wYXJhbT1BJnBhcmFtPUJgLiBJbiB0aGUgY2FzZSBvZiBhIG1lc3NhZ2UgdHlwZSwgZWFjaCBmaWVsZCBvZiB0aGUKIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIGEgc2VwYXJhdGUgcGFyYW1ldGVyLCBzdWNoIGFzCiBgLi4uP2Zvby5hPUEmZm9vLmI9QiZmb28uYz1DYC4KCiBGb3IgSFRUUCBtZXRob2RzIHRoYXQgYWxsb3cgYSByZXF1ZXN0IGJvZHksIHRoZSBgYm9keWAgZmllbGQKIHNwZWNpZmllcyB0aGUgbWFwcGluZy4gQ29uc2lkZXIgYSBSRVNUIHVwZGF0ZSBtZXRob2Qgb24gdGhlCiBtZXNzYWdlIHJlc291cmNlIGNvbGxlY3Rpb246CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIm1lc3NhZ2UiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgVXBkYXRlTWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBtYXBwZWQgdG8gdGhlIFVSTAogICAgICAgTWVzc2FnZSBtZXNzYWdlID0gMjsgICAvLyBtYXBwZWQgdG8gdGhlIGJvZHkKICAgICB9CgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZCwgd2hlcmUgdGhlCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBpbiB0aGUgcmVxdWVzdCBib2R5IGlzIGRldGVybWluZWQgYnkKIHByb3RvcyBKU09OIGVuY29kaW5nOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIG1lc3NhZ2UgeyB0ZXh0OiAiSGkhIiB9KWAKCiBUaGUgc3BlY2lhbCBuYW1lIGAqYCBjYW4gYmUgdXNlZCBpbiB0aGUgYm9keSBtYXBwaW5nIHRvIGRlZmluZSB0aGF0CiBldmVyeSBmaWVsZCBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUKIHJlcXVlc3QgYm9keS4gIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlIGRlZmluaXRpb24gb2YKIHRoZSB1cGRhdGUgbWV0aG9kOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShNZXNzYWdlKSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIioiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdGV4dCA9IDI7CiAgICAgfQoKCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIHRleHQ6ICJIaSEiKWAKCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBgKmAgaW4gdGhlIGJvZHkgbWFwcGluZywgaXQgaXMgbm90IHBvc3NpYmxlIHRvCiBoYXZlIEhUVFAgcGFyYW1ldGVycywgYXMgYWxsIGZpZWxkcyBub3QgYm91bmQgYnkgdGhlIHBhdGggZW5kIGluCiB0aGUgYm9keS4gVGhpcyBtYWtlcyB0aGlzIG9wdGlvbiBtb3JlIHJhcmVseSB1c2VkIGluIHByYWN0aWNlIHdoZW4KIGRlZmluaW5nIFJFU1QgQVBJcy4gVGhlIGNvbW1vbiB1c2FnZSBvZiBgKmAgaXMgaW4gY3VzdG9tIG1ldGhvZHMKIHdoaWNoIGRvbid0IHVzZSB0aGUgVVJMIGF0IGFsbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEuCgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIG11bHRpcGxlIEhUVFAgbWV0aG9kcyBmb3Igb25lIFJQQyBieSB1c2luZwogdGhlIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBvcHRpb24uIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBnZXQ6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGFkZGl0aW9uYWxfYmluZGluZ3MgewogICAgICAgICAgICAgZ2V0OiAiL3YxL3VzZXJzL3t1c2VyX2lkfS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB1c2VyX2lkID0gMjsKICAgICB9CgogVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdHdvIGFsdGVybmF0aXZlIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZ3M6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIpYAogYEdFVCAvdjEvdXNlcnMvbWUvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKHVzZXJfaWQ6ICJtZSIgbWVzc2FnZV9pZDoKICIxMjM0NTYiKWAKCiAjIyBSdWxlcyBmb3IgSFRUUCBtYXBwaW5nCgogMS4gTGVhZiByZXF1ZXN0IGZpZWxkcyAocmVjdXJzaXZlIGV4cGFuc2lvbiBuZXN0ZWQgbWVzc2FnZXMgaW4gdGhlIHJlcXVlc3QKICAgIG1lc3NhZ2UpIGFyZSBjbGFzc2lmaWVkIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBwYXRoIHRlbXBsYXRlLiBUaGV5IGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcGF0aC4KICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XS4gVGhleQogICAgYXJlIHBhc3NlZCB2aWEgdGhlIEhUVFAKICAgICAgcmVxdWVzdCBib2R5LgogICAgLSBBbGwgb3RoZXIgZmllbGRzIGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIHRoZQogICAgICBwYXJhbWV0ZXIgbmFtZSBpcyB0aGUgZmllbGQgcGF0aCBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlLiBBIHJlcGVhdGVkCiAgICAgIGZpZWxkIGNhbiBiZSByZXByZXNlbnRlZCBhcyBtdWx0aXBsZSBxdWVyeSBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBzYW1lCiAgICAgIG5hbWUuCiAgMi4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgIioiLCB0aGVyZSBpcyBubyBVUkwKICBxdWVyeSBwYXJhbWV0ZXIsIGFsbCBmaWVsZHMKICAgICBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuCiAgMy4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgb21pdHRlZCwgdGhlcmUgaXMgbm8gSFRUUAogIHJlcXVlc3QgYm9keSwgYWxsCiAgICAgZmllbGRzIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBVUkwgcXVlcnkgcGFyYW1ldGVycy4KCiAjIyMgUGF0aCB0ZW1wbGF0ZSBzeW50YXgKCiAgICAgVGVtcGxhdGUgPSAiLyIgU2VnbWVudHMgWyBWZXJiIF0gOwogICAgIFNlZ21lbnRzID0gU2VnbWVudCB7ICIvIiBTZWdtZW50IH0gOwogICAgIFNlZ21lbnQgID0gIioiIHwgIioqIiB8IExJVEVSQUwgfCBWYXJpYWJsZSA7CiAgICAgVmFyaWFibGUgPSAieyIgRmllbGRQYXRoIFsgIj0iIFNlZ21lbnRzIF0gIn0iIDsKICAgICBGaWVsZFBhdGggPSBJREVOVCB7ICIuIiBJREVOVCB9IDsKICAgICBWZXJiICAgICA9ICI6IiBMSVRFUkFMIDsKCiBUaGUgc3ludGF4IGAqYCBtYXRjaGVzIGEgc2luZ2xlIFVSTCBwYXRoIHNlZ21lbnQuIFRoZSBzeW50YXggYCoqYCBtYXRjaGVzCiB6ZXJvIG9yIG1vcmUgVVJMIHBhdGggc2VnbWVudHMsIHdoaWNoIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMIHBhdGgKIGV4Y2VwdCB0aGUgYFZlcmJgLgoKIFRoZSBzeW50YXggYFZhcmlhYmxlYCBtYXRjaGVzIHBhcnQgb2YgdGhlIFVSTCBwYXRoIGFzIHNwZWNpZmllZCBieSBpdHMKIHRlbXBsYXRlLiBBIHZhcmlhYmxlIHRlbXBsYXRlIG11c3Qgbm90IGNvbnRhaW4gb3RoZXIgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCiBtYXRjaGVzIGEgc2luZ2xlIHBhdGggc2VnbWVudCwgaXRzIHRlbXBsYXRlIG1heSBiZSBvbWl0dGVkLCBlLmcuIGB7dmFyfWAKIGlzIGVxdWl2YWxlbnQgdG8gYHt2YXI9Kn1gLgoKIFRoZSBzeW50YXggYExJVEVSQUxgIG1hdGNoZXMgbGl0ZXJhbCB0ZXh0IGluIHRoZSBVUkwgcGF0aC4gSWYgdGhlIGBMSVRFUkFMYAogY29udGFpbnMgYW55IHJlc2VydmVkIGNoYXJhY3Rlciwgc3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBwZXJjZW50LWVuY29kZWQKIGJlZm9yZSB0aGUgbWF0Y2hpbmcuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBleGFjdGx5IG9uZSBwYXRoIHNlZ21lbnQsIHN1Y2ggYXMgYCJ7dmFyfSJgIG9yCiBgInt2YXI9Kn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZSBjbGllbnQKIHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLiBUaGUKIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHt2YXJ9YC4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIG11bHRpcGxlIHBhdGggc2VnbWVudHMsIHN1Y2ggYXMgYCJ7dmFyPWZvby8qfSJgCiBvciBgInt2YXI9Kip9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUKIGNsaWVudCBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+LzAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuCiBUaGUgc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZywgZXhjZXB0ICIlMkYiIGFuZCAiJTJmIiBhcmUgbGVmdAogdW5jaGFuZ2VkLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7K3Zhcn1gLgoKICMjIFVzaW5nIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbgoKIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAoc2VydmljZSBjb25maWcpIGlzIGEgY29uZmlndXJhdGlvbiBsYW5ndWFnZQogZm9yIGNvbmZpZ3VyaW5nIGEgZ1JQQyBzZXJ2aWNlIHRvIGJlY29tZSBhIHVzZXItZmFjaW5nIHByb2R1Y3QuIFRoZQogc2VydmljZSBjb25maWcgaXMgc2ltcGx5IHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgZ29vZ2xlLmFwaS5TZXJ2aWNlYAogcHJvdG8gbWVzc2FnZS4KCiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbm5vdGF0aW5nIHlvdXIgcHJvdG8gZmlsZSwgeW91IGNhbiBjb25maWd1cmUgZ1JQQwogdHJhbnNjb2RpbmcgaW4geW91ciBzZXJ2aWNlIGNvbmZpZyBZQU1MIGZpbGVzLiBZb3UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGEKIGBIdHRwUnVsZWAgdGhhdCBtYXBzIHRoZSBnUlBDIG1ldGhvZCB0byBhIFJFU1QgZW5kcG9pbnQsIGFjaGlldmluZyB0aGUgc2FtZQogZWZmZWN0IGFzIHRoZSBwcm90byBhbm5vdGF0aW9uLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdQogaGF2ZSBhIHByb3RvIHRoYXQgaXMgcmV1c2VkIGluIG11bHRpcGxlIHNlcnZpY2VzLiBOb3RlIHRoYXQgYW55IHRyYW5zY29kaW5nCiBzcGVjaWZpZWQgaW4gdGhlIHNlcnZpY2UgY29uZmlnIHdpbGwgb3ZlcnJpZGUgYW55IG1hdGNoaW5nIHRyYW5zY29kaW5nCiBjb25maWd1cmF0aW9uIGluIHRoZSBwcm90by4KCiBFeGFtcGxlOgoKICAgICBodHRwOgogICAgICAgcnVsZXM6CiAgICAgICAgICMgU2VsZWN0cyBhIGdSUEMgbWV0aG9kIGFuZCBhcHBsaWVzIEh0dHBSdWxlIHRvIGl0LgogICAgICAgICAtIHNlbGVjdG9yOiBleGFtcGxlLnYxLk1lc3NhZ2luZy5HZXRNZXNzYWdlCiAgICAgICAgICAgZ2V0OiAvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9L3tzdWIuc3ViZmllbGR9CgogIyMgU3BlY2lhbCBub3RlcwoKIFdoZW4gZ1JQQyBUcmFuc2NvZGluZyBpcyB1c2VkIHRvIG1hcCBhIGdSUEMgdG8gSlNPTiBSRVNUIGVuZHBvaW50cywgdGhlCiBwcm90byB0byBKU09OIGNvbnZlcnNpb24gbXVzdCBmb2xsb3cgdGhlIFtwcm90bzMKIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbikuCgogV2hpbGUgdGhlIHNpbmdsZSBzZWdtZW50IHZhcmlhYmxlIGZvbGxvd3MgdGhlIHNlbWFudGljcyBvZgogW1JGQyA2NTcwXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjU3MCkgU2VjdGlvbiAzLjIuMiBTaW1wbGUgU3RyaW5nCiBFeHBhbnNpb24sIHRoZSBtdWx0aSBzZWdtZW50IHZhcmlhYmxlICoqZG9lcyBub3QqKiBmb2xsb3cgUkZDIDY1NzAgU2VjdGlvbgogMy4yLjMgUmVzZXJ2ZWQgRXhwYW5zaW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIFJlc2VydmVkIEV4cGFuc2lvbgogZG9lcyBub3QgZXhwYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIGA/YCBhbmQgYCNgLCB3aGljaCB3b3VsZCBsZWFkCiB0byBpbnZhbGlkIFVSTHMuIEFzIHRoZSByZXN1bHQsIGdSUEMgVHJhbnNjb2RpbmcgdXNlcyBhIGN1c3RvbSBlbmNvZGluZwogZm9yIG11bHRpIHNlZ21lbnQgdmFyaWFibGVzLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogcmVmZXIgdG8gYW55IHJlcGVhdGVkIG9yIG1hcHBlZCBmaWVsZCwKIGJlY2F1c2UgY2xpZW50IGxpYnJhcmllcyBhcmUgbm90IGNhcGFibGUgb2YgaGFuZGxpbmcgc3VjaCB2YXJpYWJsZSBleHBhbnNpb24uCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIiBjaGFyYWN0ZXIuIFRoZSByZWFzb24KIGlzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlICJ7dmFyfSIgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIKIGNoYXJhY3Rlci4gRm9yIGNvbnNpc3RlbmN5LCBhbGwgcGF0aCB2YXJpYWJsZXMgbXVzdCBzaGFyZSB0aGUgc2FtZSBiZWhhdmlvci4KCiBSZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBtdXN0IG5vdCBiZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGJlY2F1c2UKIG5vIGNsaWVudCBsaWJyYXJ5IGNhbiBzdXBwb3J0IHN1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AhIaJCBUaGUgbmFtZSBvZiB0aGlzIGN1c3RvbSBIVFRQIHZlcmIuCgoPCgUEAgIABBIG9wIC9QIbCg0KBQQCAgAFEgT3AgIICg0KBQQCAgABEgT3AgkNCg0KBQQCAgADEgT3AhARCjUKBAQCAgESBPoCAhIaJyBUaGUgcGF0aCBtYXRjaGVkIGJ5IHRoaXMgY3VzdG9tIHZlcmIuCgoPCgUEAgIBBBIG+gIC9wISCg0KBQQCAgEFEgT6AgIICg0KBQQCAgEBEgT6AgkNCg0KBQQCAgEDEgT6AhARYgZwcm90bzMKy/kCCiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhIDKQAYCggKAQgSAyoAVQoJCgIICxIDKgBVCggKAQgSAysALAoJCgIIARIDKwAsCggKAQgSAywAMQoJCgIICBIDLAAxCggKAQgSAy0ANwoJCgIIJRIDLQA3CggKAQgSAy4AIQoJCgIIJBID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X29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgVGhpcyBhcHBsaWVzIHRvIGJvdGggUHJvdG8xCiAoZXF1aXZhbGVudCB0byB0aGUgb2xkICItLW9uZV9qYXZhX2ZpbGUiIG9wdGlvbikgYW5kIFByb3RvMiAod2hlcmUKIGEgLnByb3RvIGFsd2F5cyB0cmFuc2xhdGVzIHRvIGEgc2luZ2xlIGNsYXNzLCBidXQgeW91IG1heSB3YW50IHRvCiBleHBsaWNpdGx5IGNob29zZSB0aGUgY2xhc3MgbmFtZSkuCgoNCgUECgIBBBIEywICCgoNCgUECgIBBRIEywILEQoNCgUECgIBARIEywISJgoNCgUECgIBAxIEywIpKgqjAwoEBAoCAhIE0wICORqUAyBJZiBzZXQgdHJ1ZSwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgb3V0ZXIgY2xhc3MKIG5hbWVkIGJ5IGphdmFfb3V0ZXJfY2xhc3NuYW1lLiAgSG93ZXZlciwgdGhlIG91dGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBjb250YWluIHRoZSBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcyB3ZWxsIGFzIGFueQogdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCg0KBQQKAgIEEgTTAgIKCg0KBQQKAgIFEgTTAgsPCg0KBQQKAgIBEgTTAhAjCg0KBQQKAgIDEgTTAiYoCg0KBQQKAgIIEgTTAik4Cg0KBQQKAgIHEgTTAjI3CikKBAQKAgMSBNYCAkUaGyBUaGlzIG9wdGlvbiBkb2VzIG5vdGhpbmcuCgoNCgUECgIDBBIE1gICCgoNCgUECgIDBRIE1gILDwoNCgUECgIDARIE1gIQLQoNCgUECgIDAxIE1gIwMgoNCgUECgIDCBIE1gIzRAoOCgYECgIDCAMSBNYCNEMK5gIKBAQKAgQSBN4CAjwa1wIgSWYgc2V0IHRydWUsIHRoZW4gdGhlIEphdmEyIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgY29kZSB0aGF0CiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBhc3NpZ24gYSBub24tVVRGLTgKIGJ5dGUgc2VxdWVuY2UgdG8gYSBzdHJpbmcgZmllbGQuCiBNZXNzYWdlIHJlZmxlY3Rpb24gd2lsbCBkbyB0aGUgc2FtZS4KIEhvd2V2ZXIsIGFuIGV4dGVuc2lvbiBmaWVsZCBzdGlsbCBhY2NlcHRzIG5vbi1VVEYtOCBieXRlIHNlcXVlbmNlcy4KIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gd2hlbiB1c2VkIHdpdGggdGhlIGxpdGUgcnVudGltZS4KCg0KBQQKAgQEEgTeAgIKCg0KBQQKAgQFEgTeAgsPCg0KBQQKAgQBEgTeAhAmCg0KBQQKAgQDEgTeAikrCg0KBQQKAgQIEgTeAiw7Cg0KBQQKAgQHEgTeAjU6CkwKBAQKBAASBuICAucCAxo8IEdlbmVyYXRlZCBjbGFzc2VzIGNhbiBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIG9yIGNvZGUgc2l6ZS4KCg0KBQQKBAABEgTiAgcTCkQKBgQKBAACABIE4wIEDiI0IEdlbmVyYXRlIGNvbXBsZXRlIGNvZGUgZm9yIHBhcnNpbmcsIHNlcmlhbGl6YXRpb24sCgoPCgcECgQAAgABEgTjAgQJCg8KBwQKBAACAAISBOMCDA0KRwoGBAoEAAIBEgTlAgQSGgYgZXRjLgoiLyBVc2UgUmVmbGVjdGlvbk9wcyB0byBpbXBsZW1lbnQgdGhlc2UgbWV0aG9kcy4KCg8KBwQKBAACAQESBOUCBA0KDwoHBAoEAAIBAhIE5QIQEQpHCgYECgQAAgISBOYCBBUiNyBHZW5lcmF0ZSBjb2RlIHVzaW5nIE1lc3NhZ2VMaXRlIGFuZCB0aGUgbGl0ZSBydW50aW1lLgoKDwoHBAoEAAICARIE5gIEEAoPCgcECgQAAgICEgTmAhMUCgwKBAQKAgUSBOgCAjkKDQoFBAoCBQQSBOgCAgoKDQoFBAoCBQYSBOgCCxcKDQoFBAoCBQESBOgCGCQKDQoFBAoCBQMSBOgCJygKDQoFBAoCBQgSBOgCKTgKDQoFBAoCBQcSBOgCMjcK4gIKBAQKAgYSBO8CAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nIHBsdWdpbnMKIHRoYXQgZ2VuZXJhdGUgY29kZSBzcGVjaWZpYyB0byB5b3VyIHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXJlZm9yZSwKIHRoZXNl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IGNhbm5vdCBoYXZlIGFueSBkZWZpbmVkIGZpZWxkczsgTWVzc2FnZVNldHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0aW9ucyBhcmUgbm90IGVuZm9yY2VkIGJ5CiB0aGUgcHJvdG9jb2wgY29tcGlsZXIuCgoNCgUECwIABBIEzAMCCgoNCgUECwIABRIEzAMLDwoNCgUECwIAARIEzAMQJwoNCgUECwIAAxIEzAMqKwoNCgUECwIACBIEzAMsOwoNCgUECwIABxIEzAM1OgrrAQoEBAsCARIE0QMCRBrcASBEaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgc3RhbmRhcmQgImRlc2NyaXB0b3IoKSIgYWNjZXNzb3IsIHdoaWNoIGNhbgogY29uZmxpY3Qgd2l0aCBhIGZpZWxkIG9mIHRoZSBzYW1lIG5hbWUuICBUaGlzIGlzIG1lYW50IHRvIG1ha2UgbWlncmF0aW9uCiBmcm9tIHByb3RvMSBlYXNpZXI7IG5ldyBjb2RlIHNob3VsZCBhdm9pZCBmaWVsZHMgbmFtZWQgImRlc2NyaXB0b3IiLgoKDQoFBAsCAQQSBNEDAgoKDQoFBAsCAQUSBNEDCw8KDQoFBAsCAQESBNEDEC8KDQoFBAsCAQMSBNEDMjMKDQoFBAsCAQgSBNEDNEMKDQoFBAsCAQcSBNEDPUIK7gEKBAQLAgISBNcDAi8a3wEgSXMgdGhpcyBtZXNzYWdlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTXAwIKCg0KBQQLAgIFEgTXAwsPCg0KBQQLAgIBEgTXAxAaCg0KBQQLAgIDEgTXAx0eCg0KBQQLAgIIEgTXAx8uCg0KBQQLAgIHEgTXAygtCp4GCgQECwIDEgTuAwIeGo8GIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0IHRoZSBvcHRpb24gaW4gLnByb3RvIGZpbGVzLiBBbHdheXMgdXNlIHRoZSBtYXBzIHN5bnRheAogaW5zdGVhZC4gVGhlIG9wdGlvbiBzaG91bGQgb25seSBiZSBpbXBsaWNpdGx5IHNl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Z2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIEwgQCCgoNCgUEDAIDBRIEwgQLDwoNCgUEDAIDARIEwgQQFAoNCgUEDAIDAxIEwgQXGAoNCgUEDAIDCBIEwgQZKAoNCgUEDAIDBxIEwgQiJwroAQoEBAwCBBIEyAQCLxrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgYWNjZXNzb3JzLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsIHRoaXMKIGlz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VGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQICBBIErwUCCgoNCgUEEQICBhIErwULHgoNCgUEEQICARIErwUfMwoNCgUEEQICAxIErwU2OQpaCgMEEQUSBLIFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBLIFDRgKDQoFBBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19leHRlbnNpb24gaXMgdHJ1ZSBpZmYgYSBzZWdtZW50IHJlcHJlc2VudHMgYW4KIGV4dGVuc2lvbiAoZGVub3RlZCB3aXRoIHBhcmVudGhlc2VzIGluIG9wdGlvbnMgc3BlY3MgaW4gLnBy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LCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBh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Z2xlLmFwaRoVZ29vZ2xlL2FwaS9odHRwLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzpLCgRodHRwEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYsMq8IiABKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgRodHRwQm4KDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSUq8BgoGEgQOAB4BCsIECgEMEgMOABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSAB8KCQoCAwESAxMAKgoICgEIEgMVAFgKCQoCCAsSAxUAWAoICgEIEgMWACIKCQoCCAoSAxYAIgoICgEIEgMXADEKCQoCCAgSAxcAMQoICgEIEgMYACcKCQoCCAESAxgAJwoICgEIEgMZACIKCQoCCCQSAxkAIgoJCgEHEgQbAB4BChwKAgcAEgMdAhsaESBTZWUgYEh0dHBSdWxlYC4KCgoKAwcAAhIDGwckCgsKAwcABBIEHQIbJgoKCgMHAAYSAx0CCgoKCgMHAAESAx0LDwoKCgMHAAMSAx0SGmIGcHJvdG8zCrgJChp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxIGaGVhbHRoGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8ifQoMSGVhbHRoU3RhdHVzEjYKBXN0YXRlGAEgASgOMiAuaGVhbHRoLkhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0ZVIFc3RhdGUiNQoLSGVhbHRoU3RhdGUSCwoHSEVBTFRIWRAAEg4KCk9WRVJMT0FERUQQARIJCgVEWUlORxACMmEKDUhlYWx0aFNlcnZpY2USUAoPR2V0SGVhbHRoU3RhdHVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQuaGVhbHRoLkhlYWx0aFN0YXR1cyIPgtPkkwIJEgcvaGVhbHRoQkwKGm9yZy5vcGVuY29yZC52b2x0aGEuaGVhbHRoWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vaGVhbHRoSp4GCgYSBAAAIgEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMAMwoJCgIIARIDAwAzCggKAQISAwUADwoJCgIDABIDBwAmCgkKAgMBEgMIACUKNwoCBAASBAsAFgEaKyBFbmNvZGUgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKCgoDBAABEgMLCBQKHQoEBAAEABIEDgQSBRoPIEhlYWx0aCBzdGF0ZXMKCgwKBQQABAABEgMOCRQKKAoGBAAEAAIAEgMPCBQiGSBUaGUgaW5zdGFuY2UgaXMgaGVhbHRoeQoKDgoHBAAEAAIAARIDDwgPCg4KBwQABAACAAISAw8SEwpACgYEAAQAAgESAxAIFyIxIFRoZSBpbnN0YW5jZSBpcyBvdmVybG9hZGVkLCBkZWNyZWFzZSBxdWVyeSByYXRlCgoOCgcEAAQAAgEBEgMQCBIKDgoHBAAEAAIBAhIDEBUWCkcKBgQABAACAhIDEQgSIjggVGhlIGluc3RhbmNlIGlzIGluIGEgY3JpdGljYWwgY29uZGl0aW9uLCBkbyBub3QgdXNlIGl0CgoOCgcEAAQAAgIBEgMRCA0KDgoHBAAEAAICAhIDERARCj4KBAQAAgASAxUEGxoxIEN1cnJlbnQgc3RhdGUgb2YgaGVhbHRoIG9mIHRoaXMgVm9sdGhhIGluc3RhbmNlCgoNCgUEAAIABBIEFQQSBQoMCgUEAAIABhIDFQQPCgwKBQQAAgABEgMVEBUKDAoFBAACAAMSAxUYGQolCgIGABIEGQAiARoZIEhlYWx0aCByZWxhdGVkIHNlcnZpY2VzCgoKCgMGAAESAxkIFQpBCgQGAAIAEgQcBCAFGjMgUmV0dXJuIGN1cnJlbnQgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKDAoFBgACAAESAxwIFwoMCgUGAAIAAhIDHBgtCgwKBQYAAgADEgMcOEQKDQoFBgACAAQSBB0IHwoKEQoJBgACAASwyrwiEgQdCB8KYgZwcm90bzMK1okICh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvEgtvcGVuZmxvd18xMxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byJjCgpvZnBfaGVhZGVyEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SKQoEdHlwZRgCIAEoDjIVLm9wZW5mbG93XzEzLm9mcF90eXBlUgR0eXBlEhAKA3hpZBgDIAEoDVIDeGlkIqsBChVvZnBfaGVsbG9fZWxlbV9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3R5cGVSBHR5cGUSUQoNdmVyc2lvbmJpdG1hcBgCIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXBIAFINdmVyc2lvbmJpdG1hcEIJCgdlbGVtZW50IjgKHG9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXASGAoHYml0bWFwcxgCIAMoDVIHYml0bWFwcyJLCglvZnBfaGVsbG8SPgoIZWxlbWVudHMYASADKAsyIi5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV9oZWFkZXJSCGVsZW1lbnRzIk0KEW9mcF9zd2l0Y2hfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIiCg1taXNzX3NlbmRfbGVuGAIgASgNUgttaXNzU2VuZExlbiJCCg1vZnBfdGFibGVfbW9kEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhYKBmNvbmZpZxgCIAEoDVIGY29uZmlnIqACCghvZnBfcG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhIKBG5hbWUYAyABKAlSBG5hbWUSFgoGY29uZmlnGAQgASgNUgZjb25maWcSFAoFc3RhdGUYBSABKA1SBXN0YXRlEhIKBGN1cnIYBiABKA1SBGN1cnISHgoKYWR2ZXJ0aXNlZBgHIAEoDVIKYWR2ZXJ0aXNlZBIcCglzdXBwb3J0ZWQYCCABKA1SCXN1cHBvcnRlZBISCgRwZWVyGAkgASgNUgRwZWVyEh0KCmN1cnJfc3BlZWQYCiABKA1SCWN1cnJTcGVlZBIbCgltYXhfc3BlZWQYCyABKA1SCG1heFNwZWVkIrUBChNvZnBfc3dpdGNoX2ZlYXR1cmVzEh8KC2RhdGFwYXRoX2lkGAEgASgEUgpkYXRhcGF0aElkEhsKCW5fYnVmZmVycxgCIAEoDVIIbkJ1ZmZlcnMSGQoIbl90YWJsZXMYAyABKA1SB25UYWJsZXMSIQoMYXV4aWxpYXJ5X2lkGAQgASgNUgthdXhpbGlhcnlJZBIiCgxjYXBhYmlsaXRpZXMYBSABKA1SDGNhcGFiaWxpdGllcyJyCg9vZnBfcG9ydF9zdGF0dXMSNAoGcmVhc29uGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfcmVhc29uUgZyZWFzb24SKQoEZGVzYxgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgRkZXNjIk8KEW9mcF9kZXZpY2Vfc3RhdHVzEjoKBnN0YXR1cxgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9kZXZpY2VfY29ubmVjdGlvblIGc3RhdHVzIooBCgxvZnBfcG9ydF9tb2QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchIWCgZjb25maWcYAyABKA1SBmNvbmZpZxISCgRtYXNrGAQgASgNUgRtYXNrEhwKCWFkdmVydGlzZRgFIAEoDVIJYWR2ZXJ0aXNlIncKCW9mcF9tYXRjaBIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX21hdGNoX3R5cGVSBHR5cGUSOQoKb3htX2ZpZWxkcxgCIAMoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSCW94bUZpZWxkcyLqAQoNb2ZwX294bV9maWVsZBI3CglveG1fY2xhc3MYASABKA4yGi5vcGVuZmxvd18xMy5vZnBfb3htX2NsYXNzUghveG1DbGFzcxI9CglvZmJfZmllbGQYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfb3htX29mYl9maWVsZEgAUghvZmJGaWVsZBJYChJleHBlcmltZW50ZXJfZmllbGQYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZEgAUhFleHBlcmltZW50ZXJGaWVsZEIHCgVmaWVsZCLXDgoRb2ZwX294bV9vZmJfZmllbGQSNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm94bV9vZmJfZmllbGRfdHlwZXNSBHR5cGUSGQoIaGFzX21hc2sYAiABKAhSB2hhc01hc2sSFAoEcG9ydBgDIAEoDUgAUgRwb3J0EiUKDXBoeXNpY2FsX3BvcnQYBCABKA1IAFIMcGh5c2ljYWxQb3J0EicKDnRhYmxlX21ldGFkYXRhGAUgASgESABSDXRhYmxlTWV0YWRhdGESGQoHZXRoX2RzdBgGIAEoDEgAUgZldGhEc3QSGQoHZXRoX3NyYxgHIAEoDEgAUgZldGhTcmMSGwoIZXRoX3R5cGUYCCABKA1IAFIHZXRoVHlwZRIbCgh2bGFuX3ZpZBgJIAEoDUgAUgd2bGFuVmlkEhsKCHZsYW5fcGNwGAogASgNSABSB3ZsYW5QY3ASGQoHaXBfZHNjcBgLIAEoDUgAUgZpcERzY3ASFwoGaXBfZWNuGAwgASgNSABSBWlwRWNuEhsKCGlwX3Byb3RvGA0gASgNSABSB2lwUHJvdG8SGwoIaXB2NF9zcmMYDiABKA1IAFIHaXB2NFNyYxIbCghpcHY0X2RzdBgPIAEoDUgAUgdpcHY0RHN0EhkKB3RjcF9zcmMYECABKA1IAFIGdGNwU3JjEhkKB3RjcF9kc3QYESABKA1IAFIGdGNwRHN0EhkKB3VkcF9zcmMYEiABKA1IAFIGdWRwU3JjEhkKB3VkcF9kc3QYEyABKA1IAFIGdWRwRHN0EhsKCHNjdHBfc3JjGBQgASgNSABSB3NjdHBTcmMSGwoIc2N0cF9kc3QYFSABKA1IAFIHc2N0cERzdBIhCgtpY21wdjRfdHlwZRgWIAEoDUgAUgppY21wdjRUeXBlEiEKC2ljbXB2NF9jb2RlGBcgASgNSABSCmljbXB2NENvZGUSFwoGYXJwX29wGBggASgNSABSBWFycE9wEhkKB2FycF9zcGEYGSABKA1IAFIGYXJwU3BhEhkKB2FycF90cGEYGiABKA1IAFIGYXJwVHBhEhkKB2FycF9zaGEYGyABKAxIAFIGYXJwU2hhEhkKB2FycF90aGEYHCABKAxIAFIGYXJwVGhhEhsKCGlwdjZfc3JjGB0gASgMSABSB2lwdjZTcmMSGwoIaXB2Nl9kc3QYHiABKAxIAFIHaXB2NkRzdBIhCgtpcHY2X2ZsYWJlbBgfIAEoDUgAUgppcHY2RmxhYmVsEiEKC2ljbXB2Nl90eXBlGCAgASgNSABSCmljbXB2NlR5cGUSIQoLaWNtcHY2X2NvZGUYISABKA1IAFIKaWNtcHY2Q29kZRImCg5pcHY2X25kX3RhcmdldBgiIAEoDEgAUgxpcHY2TmRUYXJnZXQSIAoLaXB2Nl9uZF9zc2wYIyABKAxIAFIJaXB2Nk5kU3NsEiAKC2lwdjZfbmRfdGxsGCQgASgMSABSCWlwdjZOZFRsbBIfCgptcGxzX2xhYmVsGCUgASgNSABSCW1wbHNMYWJlbBIZCgdtcGxzX3RjGCYgASgNSABSBm1wbHNUYxIbCghtcGxzX2JvcxgnIAEoDUgAUgdtcGxzQm9zEhsKCHBiYl9pc2lkGCggASgNSABSB3BiYklzaWQSHQoJdHVubmVsX2lkGCkgASgESABSCHR1bm5lbElkEiEKC2lwdjZfZXh0aGRyGCogASgNSABSCmlwdjZFeHRoZHISMAoTdGFibGVfbWV0YWRhdGFfbWFzaxhpIAEoBEgBUhF0YWJsZU1ldGFkYXRhTWFzaxIiCgxldGhfZHN0X21hc2sYaiABKAxIAVIKZXRoRHN0TWFzaxIiCgxldGhfc3JjX21hc2sYayABKAxIAVIKZXRoU3JjTWFzaxIkCg12bGFuX3ZpZF9tYXNrGG0gASgNSAFSC3ZsYW5WaWRNYXNrEiQKDWlwdjRfc3JjX21hc2sYciABKA1IAVILaXB2NFNyY01hc2sSJAoNaXB2NF9kc3RfbWFzaxhzIAEoDUgBUgtpcHY0RHN0TWFzaxIiCgxhcnBfc3BhX21hc2sYfSABKA1IAVIKYXJwU3BhTWFzaxIiCgxhcnBfdHBhX21hc2sYfiABKA1IAVIKYXJwVHBhTWFzaxIlCg1pcHY2X3NyY19tYXNrGIEBIAEoDEgBUgtpcHY2U3JjTWFzaxIlCg1pcHY2X2RzdF9tYXNrGIIBIAEoDEgBUgtpcHY2RHN0TWFzaxIrChBpcHY2X2ZsYWJlbF9tYXNrGIMBIAEoDUgBUg5pcHY2RmxhYmVsTWFzaxIlCg1wYmJfaXNpZF9tYXNrGIwBIAEoDUgBUgtwYmJJc2lkTWFzaxInCg50dW5uZWxfaWRfbWFzaxiNASABKARIAVIMdHVubmVsSWRNYXNrEisKEGlwdjZfZXh0aGRyX21hc2sYjgEgASgNSAFSDmlwdjZFeHRoZHJNYXNrQgcKBXZhbHVlQgYKBG1hc2siXwoab2ZwX294bV9leHBlcmltZW50ZXJfZmllbGQSHQoKb3htX2hlYWRlchgBIAEoDVIJb3htSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyIrIECgpvZnBfYWN0aW9uEjAKBHR5cGUYASABKA4yHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3R5cGVSBHR5cGUSOAoGb3V0cHV0GAIgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9vdXRwdXRIAFIGb3V0cHV0Ej0KCG1wbHNfdHRsGAMgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9tcGxzX3R0bEgAUgdtcGxzVHRsEjIKBHB1c2gYBCABKAsyHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3B1c2hIAFIEcHVzaBI9Cghwb3BfbXBscxgFIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcG9wX21wbHNIAFIHcG9wTXBscxI1CgVncm91cBgGIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZ3JvdXBIAFIFZ3JvdXASNwoGbndfdHRsGAcgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ud190dGxIAFIFbndUdGwSQAoJc2V0X2ZpZWxkGAggASgLMiEub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9zZXRfZmllbGRIAFIIc2V0RmllbGQSSgoMZXhwZXJpbWVudGVyGAkgASgLMiQub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQggKBmFjdGlvbiJAChFvZnBfYWN0aW9uX291dHB1dBISCgRwb3J0GAEgASgNUgRwb3J0EhcKB21heF9sZW4YAiABKA1SBm1heExlbiIwChNvZnBfYWN0aW9uX21wbHNfdHRsEhkKCG1wbHNfdHRsGAEgASgNUgdtcGxzVHRsIi8KD29mcF9hY3Rpb25fcHVzaBIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSIzChNvZnBfYWN0aW9uX3BvcF9tcGxzEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIi0KEG9mcF9hY3Rpb25fZ3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiKgoRb2ZwX2FjdGlvbl9ud190dGwSFQoGbndfdHRsGAEgASgNUgVud1R0bCJIChRvZnBfYWN0aW9uX3NldF9maWVsZBIwCgVmaWVsZBgBIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSBWZpZWxkIlEKF29mcF9hY3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEinAMKD29mcF9pbnN0cnVjdGlvbhISCgR0eXBlGAEgASgNUgR0eXBlEkgKCmdvdG9fdGFibGUYAiABKAsyJy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZUgAUglnb3RvVGFibGUSVAoOd3JpdGVfbWV0YWRhdGEYAyABKAsyKy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGFIAFINd3JpdGVNZXRhZGF0YRJACgdhY3Rpb25zGAQgASgLMiQub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2FjdGlvbnNIAFIHYWN0aW9ucxI6CgVtZXRlchgFIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9tZXRlckgAUgVtZXRlchJPCgxleHBlcmltZW50ZXIYBiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIjcKGm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkImEKHm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YRIaCghtZXRhZGF0YRgBIAEoBFIIbWV0YWRhdGESIwoNbWV0YWRhdGFfbWFzaxgCIAEoBFIMbWV0YWRhdGFNYXNrIkwKF29mcF9pbnN0cnVjdGlvbl9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjIKFW9mcF9pbnN0cnVjdGlvbl9tZXRlchIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJWChxvZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEi3AMKDG9mcF9mbG93X21vZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgCIAEoBFIKY29va2llTWFzaxIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBI7Cgdjb21tYW5kGAQgASgOMiEub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kX2NvbW1hbmRSB2NvbW1hbmQSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhoKCHByaW9yaXR5GAcgASgNUghwcmlvcml0eRIbCglidWZmZXJfaWQYCCABKA1SCGJ1ZmZlcklkEhkKCG91dF9wb3J0GAkgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgKIAEoDVIIb3V0R3JvdXASFAoFZmxhZ3MYCyABKA1SBWZsYWdzEiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyKXAQoKb2ZwX2J1Y2tldBIWCgZ3ZWlnaHQYASABKA1SBndlaWdodBIdCgp3YXRjaF9wb3J0GAIgASgNUgl3YXRjaFBvcnQSHwoLd2F0Y2hfZ3JvdXAYAyABKA1SCndhdGNoR3JvdXASMQoHYWN0aW9ucxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMizAEKDW9mcF9ncm91cF9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RfY29tbWFuZFIHY29tbWFuZBIvCgR0eXBlGAIgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAyABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMijQEKDm9mcF9wYWNrZXRfb3V0EhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSFwoHaW5fcG9ydBgCIAEoDVIGaW5Qb3J0EjEKB2FjdGlvbnMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zEhIKBGRhdGEYBCABKAxSBGRhdGEi3AEKDW9mcF9wYWNrZXRfaW4SGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBI5CgZyZWFzb24YAiABKA4yIS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEiwKBW1hdGNoGAUgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBISCgRkYXRhGAYgASgMUgRkYXRhIp0DChBvZnBfZmxvd19yZW1vdmVkEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEhoKCHByaW9yaXR5GAIgASgNUghwcmlvcml0eRI8CgZyZWFzb24YAyABKA4yJC5vcGVuZmxvd18xMy5vZnBfZmxvd19yZW1vdmVkX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAQgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEiEKDGlkbGVfdGltZW91dBgHIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAggASgNUgtoYXJkVGltZW91dBIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBh5IAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gi3AIKFW9mcF9tZXRlcl9iYW5kX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfdHlwZVIEdHlwZRISCgRyYXRlGAIgASgNUgRyYXRlEh0KCmJ1cnN0X3NpemUYAyABKA1SCWJ1cnN0U2l6ZRI2CgRkcm9wGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHJvcEgAUgRkcm9wEkoKC2RzY3BfcmVtYXJrGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmtIAFIKZHNjcFJlbWFyaxJOCgxleHBlcmltZW50ZXIYBiABKAsyKC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiFQoTb2ZwX21ldGVyX2JhbmRfZHJvcCI7ChpvZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFyaxIdCgpwcmVjX2xldmVsGAEgASgNUglwcmVjTGV2ZWwiQQobb2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyIrgBCg1vZnBfbWV0ZXJfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kX2NvbW1hbmRSB2NvbW1hbmQSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAMgASgNUgdtZXRlcklkEjgKBWJhbmRzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyJ8Cg1vZnBfZXJyb3JfbXNnEi8KBmhlYWRlchgBIAEoCzIXLm9wZW5mbG93XzEzLm9mcF9oZWFkZXJSBmhlYWRlchISCgR0eXBlGAIgASgNUgR0eXBlEhIKBGNvZGUYAyABKA1SBGNvZGUSEgoEZGF0YRgEIAEoDFIEZGF0YSKDAQoab2ZwX2Vycm9yX2V4cGVyaW1lbnRlcl9tc2cSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRIiCgxleHBlcmltZW50ZXIYAyABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAQgASgMUgRkYXRhInYKFW9mcF9tdWx0aXBhcnRfcmVxdWVzdBIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5InQKE29mcF9tdWx0aXBhcnRfcmVwbHkSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSKPAQoIb2ZwX2Rlc2MSGQoIbWZyX2Rlc2MYASABKAlSB21mckRlc2MSFwoHaHdfZGVzYxgCIAEoCVIGaHdEZXNjEhcKB3N3X2Rlc2MYAyABKAlSBnN3RGVzYxIdCgpzZXJpYWxfbnVtGAQgASgJUglzZXJpYWxOdW0SFwoHZHBfZGVzYxgFIAEoCVIGZHBEZXNjItIBChZvZnBfZmxvd19zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoIsUDCg5vZnBfZmxvd19zdGF0cxIOCgJpZBgOIAEoBFICaWQSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMZHVyYXRpb25fc2VjGAIgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAMgASgNUgxkdXJhdGlvbk5zZWMSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5EiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIUCgVmbGFncxgHIAEoDVIFZmxhZ3MSFgoGY29va2llGAggASgEUgZjb29raWUSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYDCABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEkAKDGluc3RydWN0aW9ucxgNIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zItcBChtvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gifAoZb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseRIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudBIdCgpmbG93X2NvdW50GAMgASgNUglmbG93Q291bnQi7QMKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5EjwKBHR5cGUYASABKA4yKC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGVSBHR5cGUSVgoMaW5zdHJ1Y3Rpb25zGAIgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnNIAFIMaW5zdHJ1Y3Rpb25zElIKC25leHRfdGFibGVzGAMgASgLMi8ub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlc0gAUgpuZXh0VGFibGVzEkcKB2FjdGlvbnMYBCABKAsyKy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnNIAFIHYWN0aW9ucxI7CgNveG0YBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bUgAUgNveG0SVgoMZXhwZXJpbWVudGVyGAYgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgcKBXZhbHVlImcKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zEkAKDGluc3RydWN0aW9ucxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zIkoKIm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXMSJAoObmV4dF90YWJsZV9pZHMYASADKA1SDG5leHRUYWJsZUlkcyJTCh5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnMSMQoHYWN0aW9ucxgBIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMiNQoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG0SFwoHb3htX2lkcxgDIAMoDVIGb3htSWRzIpEBCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgDIAEoDVIHZXhwVHlwZRIrChFleHBlcmltZW50ZXJfZGF0YRgEIAMoDVIQZXhwZXJpbWVudGVyRGF0YSKTAgoSb2ZwX3RhYmxlX2ZlYXR1cmVzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhIKBG5hbWUYAiABKAlSBG5hbWUSJQoObWV0YWRhdGFfbWF0Y2gYAyABKARSDW1ldGFkYXRhTWF0Y2gSJQoObWV0YWRhdGFfd3JpdGUYBCABKARSDW1ldGFkYXRhV3JpdGUSFgoGY29uZmlnGAUgASgNUgZjb25maWcSHwoLbWF4X2VudHJpZXMYBiABKA1SCm1heEVudHJpZXMSRwoKcHJvcGVydGllcxgHIAMoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5Ugpwcm9wZXJ0aWVzIpcBCg9vZnBfdGFibGVfc3RhdHMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMYWN0aXZlX2NvdW50GAIgASgNUgthY3RpdmVDb3VudBIhCgxsb29rdXBfY291bnQYAyABKARSC2xvb2t1cENvdW50EiMKDW1hdGNoZWRfY291bnQYBCABKARSDG1hdGNoZWRDb3VudCIxChZvZnBfcG9ydF9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObyLdAwoOb2ZwX3BvcnRfc3RhdHMSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEh0KCnJ4X3BhY2tldHMYAiABKARSCXJ4UGFja2V0cxIdCgp0eF9wYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKARSB3J4Qnl0ZXMSGQoIdHhfYnl0ZXMYBSABKARSB3R4Qnl0ZXMSHQoKcnhfZHJvcHBlZBgGIAEoBFIJcnhEcm9wcGVkEh0KCnR4X2Ryb3BwZWQYByABKARSCXR4RHJvcHBlZBIbCglyeF9lcnJvcnMYCCABKARSCHJ4RXJyb3JzEhsKCXR4X2Vycm9ycxgJIAEoBFIIdHhFcnJvcnMSIAoMcnhfZnJhbWVfZXJyGAogASgEUgpyeEZyYW1lRXJyEh4KC3J4X292ZXJfZXJyGAsgASgEUglyeE92ZXJFcnISHAoKcnhfY3JjX2VychgMIAEoBFIIcnhDcmNFcnISHgoKY29sbGlzaW9ucxgNIAEoBFIKY29sbGlzaW9ucxIhCgxkdXJhdGlvbl9zZWMYDiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYDyABKA1SDGR1cmF0aW9uTnNlYyI0ChdvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZCJWChJvZnBfYnVja2V0X2NvdW50ZXISIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQilwIKD29mcF9ncm91cF9zdGF0cxIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBIbCglyZWZfY291bnQYAiABKA1SCHJlZkNvdW50EiEKDHBhY2tldF9jb3VudBgDIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgEIAEoBFIJYnl0ZUNvdW50EiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEkIKDGJ1Y2tldF9zdGF0cxgHIAMoCzIfLm9wZW5mbG93XzEzLm9mcF9idWNrZXRfY291bnRlclILYnVja2V0U3RhdHMijwEKDm9mcF9ncm91cF9kZXNjEi8KBHR5cGUYASABKA4yGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfdHlwZVIEdHlwZRIZCghncm91cF9pZBgCIAEoDVIHZ3JvdXBJZBIxCgdidWNrZXRzGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2J1Y2tldFIHYnVja2V0cyJ2Cg9vZnBfZ3JvdXBfZW50cnkSLwoEZGVzYxgBIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF9kZXNjUgRkZXNjEjIKBXN0YXRzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3N0YXRzUgVzdGF0cyKHAQoSb2ZwX2dyb3VwX2ZlYXR1cmVzEhQKBXR5cGVzGAEgASgNUgV0eXBlcxIiCgxjYXBhYmlsaXRpZXMYAiABKA1SDGNhcGFiaWxpdGllcxIdCgptYXhfZ3JvdXBzGAMgAygNUgltYXhHcm91cHMSGAoHYWN0aW9ucxgEIAMoDVIHYWN0aW9ucyI4ChtvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3QSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiagoUb2ZwX21ldGVyX2JhbmRfc3RhdHMSKgoRcGFja2V0X2JhbmRfY291bnQYASABKARSD3BhY2tldEJhbmRDb3VudBImCg9ieXRlX2JhbmRfY291bnQYAiABKARSDWJ5dGVCYW5kQ291bnQioQIKD29mcF9tZXRlcl9zdGF0cxIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZBIdCgpmbG93X2NvdW50GAIgASgNUglmbG93Q291bnQSJgoPcGFja2V0X2luX2NvdW50GAMgASgEUg1wYWNrZXRJbkNvdW50EiIKDWJ5dGVfaW5fY291bnQYBCABKARSC2J5dGVJbkNvdW50EiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEkAKCmJhbmRfc3RhdHMYByADKAsyIS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9zdGF0c1IJYmFuZFN0YXRzIn0KEG9mcF9tZXRlcl9jb25maWcSFAoFZmxhZ3MYASABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAIgASgNUgdtZXRlcklkEjgKBWJhbmRzGAMgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyKuAQoSb2ZwX21ldGVyX2ZlYXR1cmVzEhsKCW1heF9tZXRlchgBIAEoDVIIbWF4TWV0ZXISHQoKYmFuZF90eXBlcxgCIAEoDVIJYmFuZFR5cGVzEiIKDGNhcGFiaWxpdGllcxgDIAEoDVIMY2FwYWJpbGl0aWVzEhsKCW1heF9iYW5kcxgEIAEoDVIIbWF4QmFuZHMSGwoJbWF4X2NvbG9yGAUgASgNUghtYXhDb2xvciJ8Cg9vZnBfbWV0ZXJfZW50cnkSNQoGY29uZmlnGAEgASgLMh0ub3BlbmZsb3dfMTMub2ZwX21ldGVyX2NvbmZpZ1IGY29uZmlnEjIKBXN0YXRzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX3N0YXRzUgVzdGF0cyJ2CiFvZnBfZXhwZXJpbWVudGVyX211bHRpcGFydF9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJsChdvZnBfZXhwZXJpbWVudGVyX2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhIkUKFW9mcF9xdWV1ZV9wcm9wX2hlYWRlchIaCghwcm9wZXJ0eRgBIAEoDVIIcHJvcGVydHkSEAoDbGVuGAIgASgNUgNsZW4icgoXb2ZwX3F1ZXVlX3Byb3BfbWluX3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSJyChdvZnBfcXVldWVfcHJvcF9tYXhfcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlIpoBChtvZnBfcXVldWVfcHJvcF9leHBlcmltZW50ZXISQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgDIAEoDFIEZGF0YSKFAQoQb2ZwX3BhY2tldF9xdWV1ZRIZCghxdWV1ZV9pZBgBIAEoDVIHcXVldWVJZBISCgRwb3J0GAIgASgNUgRwb3J0EkIKCnByb3BlcnRpZXMYBCADKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BlcnRpZXMiMgocb2ZwX3F1ZXVlX2dldF9jb25maWdfcmVxdWVzdBISCgRwb3J0GAEgASgNUgRwb3J0ImcKGm9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcGx5EhIKBHBvcnQYASABKA1SBHBvcnQSNQoGcXVldWVzGAIgAygLMh0ub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9xdWV1ZVIGcXVldWVzIkUKFG9mcF9hY3Rpb25fc2V0X3F1ZXVlEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIcXVldWVfaWQYAyABKA1SB3F1ZXVlSWQiTQoXb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhkKCHF1ZXVlX2lkGAIgASgNUgdxdWV1ZUlkIuQBCg9vZnBfcXVldWVfc3RhdHMSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhkKCHF1ZXVlX2lkGAIgASgNUgdxdWV1ZUlkEhkKCHR4X2J5dGVzGAMgASgEUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYBCABKARSCXR4UGFja2V0cxIbCgl0eF9lcnJvcnMYBSABKARSCHR4RXJyb3JzEiEKDGR1cmF0aW9uX3NlYxgGIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgHIAEoDVIMZHVyYXRpb25Oc2VjIm0KEG9mcF9yb2xlX3JlcXVlc3QSNAoEcm9sZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9jb250cm9sbGVyX3JvbGVSBHJvbGUSIwoNZ2VuZXJhdGlvbl9pZBgCIAEoBFIMZ2VuZXJhdGlvbklkIo4BChBvZnBfYXN5bmNfY29uZmlnEiQKDnBhY2tldF9pbl9tYXNrGAEgAygNUgxwYWNrZXRJbk1hc2sSKAoQcG9ydF9zdGF0dXNfbWFzaxgCIAMoDVIOcG9ydFN0YXR1c01hc2sSKgoRZmxvd19yZW1vdmVkX21hc2sYAyADKA1SD2Zsb3dSZW1vdmVkTWFzayJrCg5NZXRlck1vZFVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJbWV0ZXJfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZFIIbWV0ZXJNb2QSEAoDeGlkGAMgASgNUgN4aWQiUAoPTWV0ZXJTdGF0c1JlcGx5Ej0KC21ldGVyX3N0YXRzGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX3N0YXRzUgptZXRlclN0YXRzImkKD0Zsb3dUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNAoIZmxvd19tb2QYAiABKAsyGS5vcGVuZmxvd18xMy5vZnBfZmxvd19tb2RSB2Zsb3dNb2QSEAoDeGlkGAMgASgNUgN4aWQicQoURmxvd0dyb3VwVGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCWdyb3VwX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RSCGdyb3VwTW9kEhAKA3hpZBgDIAEoDVIDeGlkIjoKBUZsb3dzEjEKBWl0ZW1zGAEgAygLMhsub3BlbmZsb3dfMTMub2ZwX2Zsb3dfc3RhdHNSBWl0ZW1zIjwKBk1ldGVycxIyCgVpdGVtcxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9lbnRyeVIFaXRlbXMiQAoKRmxvd0dyb3VwcxIyCgVpdGVtcxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9lbnRyeVIFaXRlbXMiaQoLRmxvd0NoYW5nZXMSKQoGdG9fYWRkGAEgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBXRvQWRkEi8KCXRvX3JlbW92ZRgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgh0b1JlbW92ZSKuAQoQRmxvd0dyb3VwQ2hhbmdlcxIuCgZ0b19hZGQYASABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgV0b0FkZBI0Cgl0b19yZW1vdmUYAiABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1JlbW92ZRI0Cgl0b191cGRhdGUYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1VwZGF0ZSJTCghQYWNrZXRJbhIOCgJpZBgBIAEoCVICaWQSNwoJcGFja2V0X2luGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pblIIcGFja2V0SW4iVwoJUGFja2V0T3V0Eg4KAmlkGAEgASgJUgJpZBI6CgpwYWNrZXRfb3V0GAIgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSCXBhY2tldE91dCLiAQoLQ2hhbmdlRXZlbnQSDgoCaWQYASABKAlSAmlkEj8KC3BvcnRfc3RhdHVzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfc3RhdHVzSABSCnBvcnRTdGF0dXMSMgoFZXJyb3IYAyABKAsyGi5vcGVuZmxvd18xMy5vZnBfZXJyb3JfbXNnSABSBWVycm9yEkUKDWRldmljZV9zdGF0dXMYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfZGV2aWNlX3N0YXR1c0gAUgxkZXZpY2VTdGF0dXNCBwoFZXZlbnQiRQoMRmxvd01ldGFkYXRhEjUKBm1ldGVycxgBIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBm1ldGVycyrVAQoLb2ZwX3BvcnRfbm8SEAoMT0ZQUF9JTlZBTElEEAASEAoIT0ZQUF9NQVgQgP7//wcSFAoMT0ZQUF9JTl9QT1JUEPj///8HEhIKCk9GUFBfVEFCTEUQ+f///wcSEwoLT0ZQUF9OT1JNQUwQ+v///wcSEgoKT0ZQUF9GTE9PRBD7////BxIQCghPRlBQX0FMTBD8////BxIXCg9PRlBQX0NPTlRST0xMRVIQ/f///wcSEgoKT0ZQUF9MT0NBTBD+////BxIQCghPRlBQX0FOWRD/////ByrIBQoIb2ZwX3R5cGUSDgoKT0ZQVF9IRUxMTxAAEg4KCk9GUFRfRVJST1IQARIVChFPRlBUX0VDSE9fUkVRVUVTVBACEhMKD09GUFRfRUNIT19SRVBMWRADEhUKEU9GUFRfRVhQRVJJTUVOVEVSEAQSGQoVT0ZQVF9GRUFUVVJFU19SRVFVRVNUEAUSFwoTT0ZQVF9GRUFUVVJFU19SRVBMWRAGEhsKF09GUFRfR0VUX0NPTkZJR19SRVFVRVNUEAcSGQoVT0ZQVF9HRVRfQ09ORklHX1JFUExZEAgSEwoPT0ZQVF9TRVRfQ09ORklHEAkSEgoOT0ZQVF9QQUNLRVRfSU4QChIVChFPRlBUX0ZMT1dfUkVNT1ZFRBALEhQKEE9GUFRfUE9SVF9TVEFUVVMQDBITCg9PRlBUX1BBQ0tFVF9PVVQQDRIRCg1PRlBUX0ZMT1dfTU9EEA4SEgoOT0ZQVF9HUk9VUF9NT0QQDxIRCg1PRlBUX1BPUlRfTU9EEBASEgoOT0ZQVF9UQUJMRV9NT0QQERIaChZPRlBUX01VTFRJUEFSVF9SRVFVRVNUEBISGAoUT0ZQVF9NVUxUSVBBUlRfUkVQTFkQExIYChRPRlBUX0JBUlJJRVJfUkVRVUVTVBAUEhYKEk9GUFRfQkFSUklFUl9SRVBMWRAVEiEKHU9GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVFVRVNUEBYSHwobT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUExZEBcSFQoRT0ZQVF9ST0xFX1JFUVVFU1QQGBITCg9PRlBUX1JPTEVfUkVQTFkQGRIaChZPRlBUX0dFVF9BU1lOQ19SRVFVRVNUEBoSGAoUT0ZQVF9HRVRfQVNZTkNfUkVQTFkQGxISCg5PRlBUX1NFVF9BU1lOQxAcEhIKDk9GUFRfTUVURVJfTU9EEB0qQwoTb2ZwX2hlbGxvX2VsZW1fdHlwZRISCg5PRlBIRVRfSU5WQUxJRBAAEhgKFE9GUEhFVF9WRVJTSU9OQklUTUFQEAEqZQoQb2ZwX2NvbmZpZ19mbGFncxIUChBPRlBDX0ZSQUdfTk9STUFMEAASEgoOT0ZQQ19GUkFHX0RST1AQARITCg9PRlBDX0ZSQUdfUkVBU00QAhISCg5PRlBDX0ZSQUdfTUFTSxADKkAKEG9mcF90YWJsZV9jb25maWcSEQoNT0ZQVENfSU5WQUxJRBAAEhkKFU9GUFRDX0RFUFJFQ0FURURfTUFTSxADKj4KCW9mcF90YWJsZRIRCg1PRlBUVF9JTlZBTElEEAASDgoJT0ZQVFRfTUFYEP4BEg4KCU9GUFRUX0FMTBD/ASq7AQoQb2ZwX2NhcGFiaWxpdGllcxIQCgxPRlBDX0lOVkFMSUQQABITCg9PRlBDX0ZMT1dfU1RBVFMQARIUChBPRlBDX1RBQkxFX1NUQVRTEAISEwoPT0ZQQ19QT1JUX1NUQVRTEAQSFAoQT0ZQQ19HUk9VUF9TVEFUUxAIEhEKDU9GUENfSVBfUkVBU00QIBIUChBPRlBDX1FVRVVFX1NUQVRTEEASFgoRT0ZQQ19QT1JUX0JMT0NLRUQQgAIqdgoPb2ZwX3BvcnRfY29uZmlnEhEKDU9GUFBDX0lOVkFMSUQQABITCg9PRlBQQ19QT1JUX0RPV04QARIRCg1PRlBQQ19OT19SRUNWEAQSEAoMT0ZQUENfTk9fRldEECASFgoST0ZQUENfTk9fUEFDS0VUX0lOEEAqWwoOb2ZwX3BvcnRfc3RhdGUSEQoNT0ZQUFNfSU5WQUxJRBAAEhMKD09GUFBTX0xJTktfRE9XThABEhEKDU9GUFBTX0JMT0NLRUQQAhIOCgpPRlBQU19MSVZFEAQq3QIKEW9mcF9wb3J0X2ZlYXR1cmVzEhEKDU9GUFBGX0lOVkFMSUQQABIRCg1PRlBQRl8xME1CX0hEEAESEQoNT0ZQUEZfMTBNQl9GRBACEhIKDk9GUFBGXzEwME1CX0hEEAQSEgoOT0ZQUEZfMTAwTUJfRkQQCBIQCgxPRlBQRl8xR0JfSEQQEBIQCgxPRlBQRl8xR0JfRkQQIBIRCg1PRlBQRl8xMEdCX0ZEEEASEgoNT0ZQUEZfNDBHQl9GRBCAARITCg5PRlBQRl8xMDBHQl9GRBCAAhIRCgxPRlBQRl8xVEJfRkQQgAQSEAoLT0ZQUEZfT1RIRVIQgAgSEQoMT0ZQUEZfQ09QUEVSEIAQEhAKC09GUFBGX0ZJQkVSEIAgEhIKDU9GUFBGX0FVVE9ORUcQgEASEQoLT0ZQUEZfUEFVU0UQgIABEhYKEE9GUFBGX1BBVVNFX0FTWU0QgIACKkQKD29mcF9wb3J0X3JlYXNvbhINCglPRlBQUl9BREQQABIQCgxPRlBQUl9ERUxFVEUQARIQCgxPRlBQUl9NT0RJRlkQAipGChVvZnBfZGV2aWNlX2Nvbm5lY3Rpb24SFAoQT0ZQREVWX0NPTk5FQ1RFRBAAEhcKE09GUERFVl9ESVNDT05ORUNURUQQASozCg5vZnBfbWF0Y2hfdHlwZRISCg5PRlBNVF9TVEFOREFSRBAAEg0KCU9GUE1UX09YTRABKmsKDW9mcF9veG1fY2xhc3MSEAoMT0ZQWE1DX05YTV8wEAASEAoMT0ZQWE1DX05YTV8xEAESGwoVT0ZQWE1DX09QRU5GTE9XX0JBU0lDEICAAhIZChNPRlBYTUNfRVhQRVJJTUVOVEVSEP//AyqQCAoTb3htX29mYl9maWVsZF90eXBlcxIWChJPRlBYTVRfT0ZCX0lOX1BPUlQQABIaChZPRlBYTVRfT0ZCX0lOX1BIWV9QT1JUEAESFwoTT0ZQWE1UX09GQl9NRVRBREFUQRACEhYKEk9GUFhNVF9PRkJfRVRIX0RTVBADEhYKEk9GUFhNVF9PRkJfRVRIX1NSQxAEEhcKE09GUFhNVF9PRkJfRVRIX1RZUEUQBRIXChNPRlBYTVRfT0ZCX1ZMQU5fVklEEAYSFwoTT0ZQWE1UX09GQl9WTEFOX1BDUBAHEhYKEk9GUFhNVF9PRkJfSVBfRFNDUBAIEhUKEU9GUFhNVF9PRkJfSVBfRUNOEAkSFwoTT0ZQWE1UX09GQl9JUF9QUk9UTxAKEhcKE09GUFhNVF9PRkJfSVBWNF9TUkMQCxIXChNPRlBYTVRfT0ZCX0lQVjRfRFNUEAwSFgoST0ZQWE1UX09GQl9UQ1BfU1JDEA0SFgoST0ZQWE1UX09GQl9UQ1BfRFNUEA4SFgoST0ZQWE1UX09GQl9VRFBfU1JDEA8SFgoST0ZQWE1UX09GQl9VRFBfRFNUEBASFwoTT0ZQWE1UX09GQl9TQ1RQX1NSQxAREhcKE09GUFhNVF9PRkJfU0NUUF9EU1QQEhIaChZPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFEBMSGgoWT0ZQWE1UX09GQl9JQ01QVjRfQ09ERRAUEhUKEU9GUFhNVF9PRkJfQVJQX09QEBUSFgoST0ZQWE1UX09GQl9BUlBfU1BBEBYSFgoST0ZQWE1UX09GQl9BUlBfVFBBEBcSFgoST0ZQWE1UX09GQl9BUlBfU0hBEBgSFgoST0ZQWE1UX09GQl9BUlBfVEhBEBkSFwoTT0ZQWE1UX09GQl9JUFY2X1NSQxAaEhcKE09GUFhNVF9PRkJfSVBWNl9EU1QQGxIaChZPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMEBwSGgoWT0ZQWE1UX09GQl9JQ01QVjZfVFlQRRAdEhoKFk9GUFhNVF9PRkJfSUNNUFY2X0NPREUQHhIdChlPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUEB8SGgoWT0ZQWE1UX09GQl9JUFY2X05EX1NMTBAgEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9UTEwQIRIZChVPRlBYTVRfT0ZCX01QTFNfTEFCRUwQIhIWChJPRlBYTVRfT0ZCX01QTFNfVEMQIxIXChNPRlBYTVRfT0ZCX01QTFNfQk9TECQSFwoTT0ZQWE1UX09GQl9QQkJfSVNJRBAlEhgKFE9GUFhNVF9PRkJfVFVOTkVMX0lEECYSGgoWT0ZQWE1UX09GQl9JUFY2X0VYVEhEUhAnKjMKC29mcF92bGFuX2lkEg8KC09GUFZJRF9OT05FEAASEwoOT0ZQVklEX1BSRVNFTlQQgCAqyQEKFG9mcF9pcHY2ZXh0aGRyX2ZsYWdzEhIKDk9GUElFSF9JTlZBTElEEAASEQoNT0ZQSUVIX05PTkVYVBABEg4KCk9GUElFSF9FU1AQAhIPCgtPRlBJRUhfQVVUSBAEEg8KC09GUElFSF9ERVNUEAgSDwoLT0ZQSUVIX0ZSQUcQEBIRCg1PRlBJRUhfUk9VVEVSECASDgoKT0ZQSUVIX0hPUBBAEhEKDE9GUElFSF9VTlJFUBCAARIRCgxPRlBJRUhfVU5TRVEQgAIq/AIKD29mcF9hY3Rpb25fdHlwZRIQCgxPRlBBVF9PVVRQVVQQABIWChJPRlBBVF9DT1BZX1RUTF9PVVQQCxIVChFPRlBBVF9DT1BZX1RUTF9JThAMEhYKEk9GUEFUX1NFVF9NUExTX1RUTBAPEhYKEk9GUEFUX0RFQ19NUExTX1RUTBAQEhMKD09GUEFUX1BVU0hfVkxBThAREhIKDk9GUEFUX1BPUF9WTEFOEBISEwoPT0ZQQVRfUFVTSF9NUExTEBMSEgoOT0ZQQVRfUE9QX01QTFMQFBITCg9PRlBBVF9TRVRfUVVFVUUQFRIPCgtPRlBBVF9HUk9VUBAWEhQKEE9GUEFUX1NFVF9OV19UVEwQFxIUChBPRlBBVF9ERUNfTldfVFRMEBgSEwoPT0ZQQVRfU0VUX0ZJRUxEEBkSEgoOT0ZQQVRfUFVTSF9QQkIQGhIRCg1PRlBBVF9QT1BfUEJCEBsSGAoST0ZQQVRfRVhQRVJJTUVOVEVSEP//AypWChZvZnBfY29udHJvbGxlcl9tYXhfbGVuEhIKDk9GUENNTF9JTlZBTElEEAASEAoKT0ZQQ01MX01BWBDl/wMSFgoQT0ZQQ01MX05PX0JVRkZFUhD//wMqzwEKFG9mcF9pbnN0cnVjdGlvbl90eXBlEhEKDU9GUElUX0lOVkFMSUQQABIUChBPRlBJVF9HT1RPX1RBQkxFEAESGAoUT0ZQSVRfV1JJVEVfTUVUQURBVEEQAhIXChNPRlBJVF9XUklURV9BQ1RJT05TEAMSFwoTT0ZQSVRfQVBQTFlfQUNUSU9OUxAEEhcKE09GUElUX0NMRUFSX0FDVElPTlMQBRIPCgtPRlBJVF9NRVRFUhAGEhgKEk9GUElUX0VYUEVSSU1FTlRFUhD//wMqewoUb2ZwX2Zsb3dfbW9kX2NvbW1hbmQSDQoJT0ZQRkNfQUREEAASEAoMT0ZQRkNfTU9ESUZZEAESFwoTT0ZQRkNfTU9ESUZZX1NUUklDVBACEhAKDE9GUEZDX0RFTEVURRADEhcKE09GUEZDX0RFTEVURV9TVFJJQ1QQBCqjAQoSb2ZwX2Zsb3dfbW9kX2ZsYWdzEhEKDU9GUEZGX0lOVkFMSUQQABIXChNPRlBGRl9TRU5EX0ZMT1dfUkVNEAESFwoTT0ZQRkZfQ0hFQ0tfT1ZFUkxBUBACEhYKEk9GUEZGX1JFU0VUX0NPVU5UUxAEEhcKE09GUEZGX05PX1BLVF9DT1VOVFMQCBIXChNPRlBGRl9OT19CWVRfQ09VTlRTEBAqUwoJb2ZwX2dyb3VwEhAKDE9GUEdfSU5WQUxJRBAAEhAKCE9GUEdfTUFYEID+//8HEhAKCE9GUEdfQUxMEPz///8HEhAKCE9GUEdfQU5ZEP////8HKkoKFW9mcF9ncm91cF9tb2RfY29tbWFuZBINCglPRlBHQ19BREQQABIQCgxPRlBHQ19NT0RJRlkQARIQCgxPRlBHQ19ERUxFVEUQAipTCg5vZnBfZ3JvdXBfdHlwZRINCglPRlBHVF9BTEwQABIQCgxPRlBHVF9TRUxFQ1QQARISCg5PRlBHVF9JTkRJUkVDVBACEgwKCE9GUEdUX0ZGEAMqUAoUb2ZwX3BhY2tldF9pbl9yZWFzb24SEQoNT0ZQUl9OT19NQVRDSBAAEg8KC09GUFJfQUNUSU9OEAESFAoQT0ZQUl9JTlZBTElEX1RUTBACKosBChdvZnBfZmxvd19yZW1vdmVkX3JlYXNvbhIWChJPRlBSUl9JRExFX1RJTUVPVVQQABIWChJPRlBSUl9IQVJEX1RJTUVPVVQQARIQCgxPRlBSUl9ERUxFVEUQAhIWChJPRlBSUl9HUk9VUF9ERUxFVEUQAxIWChJPRlBSUl9NRVRFUl9ERUxFVEUQBCpuCglvZnBfbWV0ZXISDQoJT0ZQTV9aRVJPEAASEAoIT0ZQTV9NQVgQgID8/wcSFQoNT0ZQTV9TTE9XUEFUSBD9////BxIXCg9PRlBNX0NPTlRST0xMRVIQ/v///wcSEAoIT0ZQTV9BTEwQ/////wcqbQoTb2ZwX21ldGVyX2JhbmRfdHlwZRISCg5PRlBNQlRfSU5WQUxJRBAAEg8KC09GUE1CVF9EUk9QEAESFgoST0ZQTUJUX0RTQ1BfUkVNQVJLEAISGQoTT0ZQTUJUX0VYUEVSSU1FTlRFUhD//wMqSgoVb2ZwX21ldGVyX21vZF9jb21tYW5kEg0KCU9GUE1DX0FERBAAEhAKDE9GUE1DX01PRElGWRABEhAKDE9GUE1DX0RFTEVURRACKmcKD29mcF9tZXRlcl9mbGFncxIRCg1PRlBNRl9JTlZBTElEEAASDgoKT0ZQTUZfS0JQUxABEg8KC09GUE1GX1BLVFBTEAISDwoLT0ZQTUZfQlVSU1QQBBIPCgtPRlBNRl9TVEFUUxAIKqQDCg5vZnBfZXJyb3JfdHlwZRIWChJPRlBFVF9IRUxMT19GQUlMRUQQABIVChFPRlBFVF9CQURfUkVRVUVTVBABEhQKEE9GUEVUX0JBRF9BQ1RJT04QAhIZChVPRlBFVF9CQURfSU5TVFJVQ1RJT04QAxITCg9PRlBFVF9CQURfTUFUQ0gQBBIZChVPRlBFVF9GTE9XX01PRF9GQUlMRUQQBRIaChZPRlBFVF9HUk9VUF9NT0RfRkFJTEVEEAYSGQoVT0ZQRVRfUE9SVF9NT0RfRkFJTEVEEAcSGgoWT0ZQRVRfVEFCTEVfTU9EX0ZBSUxFRBAIEhkKFU9GUEVUX1FVRVVFX09QX0ZBSUxFRBAJEh4KGk9GUEVUX1NXSVRDSF9DT05GSUdfRkFJTEVEEAoSHQoZT0ZQRVRfUk9MRV9SRVFVRVNUX0ZBSUxFRBALEhoKFk9GUEVUX01FVEVSX01PRF9GQUlMRUQQDBIfChtPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQQDRIYChJPRlBFVF9FWFBFUklNRU5URVIQ//8DKkIKFW9mcF9oZWxsb19mYWlsZWRfY29kZRIXChNPRlBIRkNfSU5DT01QQVRJQkxFEAASEAoMT0ZQSEZDX0VQRVJNEAEq7QIKFG9mcF9iYWRfcmVxdWVzdF9jb2RlEhYKEk9GUEJSQ19CQURfVkVSU0lPThAAEhMKD09GUEJSQ19CQURfVFlQRRABEhgKFE9GUEJSQ19CQURfTVVMVElQQVJUEAISGwoXT0ZQQlJDX0JBRF9FWFBFUklNRU5URVIQAxIXChNPRlBCUkNfQkFEX0VYUF9UWVBFEAQSEAoMT0ZQQlJDX0VQRVJNEAUSEgoOT0ZQQlJDX0JBRF9MRU4QBhIXChNPRlBCUkNfQlVGRkVSX0VNUFRZEAcSGQoVT0ZQQlJDX0JVRkZFUl9VTktOT1dOEAgSFwoTT0ZQQlJDX0JBRF9UQUJMRV9JRBAJEhMKD09GUEJSQ19JU19TTEFWRRAKEhMKD09GUEJSQ19CQURfUE9SVBALEhUKEU9GUEJSQ19CQURfUEFDS0VUEAwSJAogT0ZQQlJDX01VTFRJUEFSVF9CVUZGRVJfT1ZFUkZMT1cQDSqcAwoTb2ZwX2JhZF9hY3Rpb25fY29kZRITCg9PRlBCQUNfQkFEX1RZUEUQABISCg5PRlBCQUNfQkFEX0xFThABEhsKF09GUEJBQ19CQURfRVhQRVJJTUVOVEVSEAISFwoTT0ZQQkFDX0JBRF9FWFBfVFlQRRADEhcKE09GUEJBQ19CQURfT1VUX1BPUlQQBBIXChNPRlBCQUNfQkFEX0FSR1VNRU5UEAUSEAoMT0ZQQkFDX0VQRVJNEAYSEwoPT0ZQQkFDX1RPT19NQU5ZEAcSFAoQT0ZQQkFDX0JBRF9RVUVVRRAIEhgKFE9GUEJBQ19CQURfT1VUX0dST1VQEAkSHQoZT0ZQQkFDX01BVENIX0lOQ09OU0lTVEVOVBAKEhwKGE9GUEJBQ19VTlNVUFBPUlRFRF9PUkRFUhALEhIKDk9GUEJBQ19CQURfVEFHEAwSFwoTT0ZQQkFDX0JBRF9TRVRfVFlQRRANEhYKEk9GUEJBQ19CQURfU0VUX0xFThAOEhsKF09GUEJBQ19CQURfU0VUX0FSR1VNRU5UEA8q+gEKGG9mcF9iYWRfaW5zdHJ1Y3Rpb25fY29kZRIXChNPRlBCSUNfVU5LTk9XTl9JTlNUEAASFQoRT0ZQQklDX1VOU1VQX0lOU1QQARIXChNPRlBCSUNfQkFEX1RBQkxFX0lEEAISGQoVT0ZQQklDX1VOU1VQX01FVEFEQVRBEAMSHgoaT0ZQQklDX1VOU1VQX01FVEFEQVRBX01BU0sQBBIbChdPRlBCSUNfQkFEX0VYUEVSSU1FTlRFUhAFEhcKE09GUEJJQ19CQURfRVhQX1RZUEUQBhISCg5PRlBCSUNfQkFEX0xFThAHEhAKDE9GUEJJQ19FUEVSTRAIKqUCChJvZnBfYmFkX21hdGNoX2NvZGUSEwoPT0ZQQk1DX0JBRF9UWVBFEAASEgoOT0ZQQk1DX0JBRF9MRU4QARISCg5PRlBCTUNfQkFEX1RBRxACEhsKF09GUEJNQ19CQURfRExfQUREUl9NQVNLEAMSGwoXT0ZQQk1DX0JBRF9OV19BRERSX01BU0sQBBIYChRPRlBCTUNfQkFEX1dJTERDQVJEUxAFEhQKEE9GUEJNQ19CQURfRklFTEQQBhIUChBPRlBCTUNfQkFEX1ZBTFVFEAcSEwoPT0ZQQk1DX0JBRF9NQVNLEAgSFQoRT0ZQQk1DX0JBRF9QUkVSRVEQCRIUChBPRlBCTUNfRFVQX0ZJRUxEEAoSEAoMT0ZQQk1DX0VQRVJNEAsq0gEKGG9mcF9mbG93X21vZF9mYWlsZWRfY29kZRITCg9PRlBGTUZDX1VOS05PV04QABIWChJPRlBGTUZDX1RBQkxFX0ZVTEwQARIYChRPRlBGTUZDX0JBRF9UQUJMRV9JRBACEhMKD09GUEZNRkNfT1ZFUkxBUBADEhEKDU9GUEZNRkNfRVBFUk0QBBIXChNPRlBGTUZDX0JBRF9USU1FT1VUEAUSFwoTT0ZQRk1GQ19CQURfQ09NTUFORBAGEhUKEU9GUEZNRkNfQkFEX0ZMQUdTEAcqoQMKGW9mcF9ncm91cF9tb2RfZmFpbGVkX2NvZGUSGAoUT0ZQR01GQ19HUk9VUF9FWElTVFMQABIZChVPRlBHTUZDX0lOVkFMSURfR1JPVVAQARIeChpPRlBHTUZDX1dFSUdIVF9VTlNVUFBPUlRFRBACEhkKFU9GUEdNRkNfT1VUX09GX0dST1VQUxADEhoKFk9GUEdNRkNfT1VUX09GX0JVQ0tFVFMQBBIgChxPRlBHTUZDX0NIQUlOSU5HX1VOU1VQUE9SVEVEEAUSHQoZT0ZQR01GQ19XQVRDSF9VTlNVUFBPUlRFRBAGEhAKDE9GUEdNRkNfTE9PUBAHEhkKFU9GUEdNRkNfVU5LTk9XTl9HUk9VUBAIEhkKFU9GUEdNRkNfQ0hBSU5FRF9HUk9VUBAJEhQKEE9GUEdNRkNfQkFEX1RZUEUQChIXChNPRlBHTUZDX0JBRF9DT01NQU5EEAsSFgoST0ZQR01GQ19CQURfQlVDS0VUEAwSFQoRT0ZQR01GQ19CQURfV0FUQ0gQDRIRCg1PRlBHTUZDX0VQRVJNEA4qjwEKGG9mcF9wb3J0X21vZF9mYWlsZWRfY29kZRIUChBPRlBQTUZDX0JBRF9QT1JUEAASFwoTT0ZQUE1GQ19CQURfSFdfQUREUhABEhYKEk9GUFBNRkNfQkFEX0NPTkZJRxACEhkKFU9GUFBNRkNfQkFEX0FEVkVSVElTRRADEhEKDU9GUFBNRkNfRVBFUk0QBCpdChlvZnBfdGFibGVfbW9kX2ZhaWxlZF9jb2RlEhUKEU9GUFRNRkNfQkFEX1RBQkxFEAASFgoST0ZQVE1GQ19CQURfQ09ORklHEAESEQoNT0ZQVE1GQ19FUEVSTRACKloKGG9mcF9xdWV1ZV9vcF9mYWlsZWRfY29kZRIUChBPRlBRT0ZDX0JBRF9QT1JUEAASFQoRT0ZQUU9GQ19CQURfUVVFVUUQARIRCg1PRlBRT0ZDX0VQRVJNEAIqXgodb2ZwX3N3aXRjaF9jb25maWdfZmFpbGVkX2NvZGUSFQoRT0ZQU0NGQ19CQURfRkxBR1MQABITCg9PRlBTQ0ZDX0JBRF9MRU4QARIRCg1PRlBTQ0ZDX0VQRVJNEAIqWgocb2ZwX3JvbGVfcmVxdWVzdF9mYWlsZWRfY29kZRIRCg1PRlBSUkZDX1NUQUxFEAASEQoNT0ZQUlJGQ19VTlNVUBABEhQKEE9GUFJSRkNfQkFEX1JPTEUQAirFAgoZb2ZwX21ldGVyX21vZF9mYWlsZWRfY29kZRITCg9PRlBNTUZDX1VOS05PV04QABIYChRPRlBNTUZDX01FVEVSX0VYSVNUUxABEhkKFU9GUE1NRkNfSU5WQUxJRF9NRVRFUhACEhkKFU9GUE1NRkNfVU5LTk9XTl9NRVRFUhADEhcKE09GUE1NRkNfQkFEX0NPTU1BTkQQBBIVChFPRlBNTUZDX0JBRF9GTEFHUxAFEhQKEE9GUE1NRkNfQkFEX1JBVEUQBhIVChFPRlBNTUZDX0JBRF9CVVJTVBAHEhQKEE9GUE1NRkNfQkFEX0JBTkQQCBIbChdPRlBNTUZDX0JBRF9CQU5EX0RFVEFJTBAJEhkKFU9GUE1NRkNfT1VUX09GX01FVEVSUxAKEhgKFE9GUE1NRkNfT1VUX09GX0JBTkRTEAsqqQEKHm9mcF90YWJsZV9mZWF0dXJlc19mYWlsZWRfY29kZRIVChFPRlBURkZDX0JBRF9UQUJMRRAAEhgKFE9GUFRGRkNfQkFEX01FVEFEQVRBEAESFAoQT0ZQVEZGQ19CQURfVFlQRRACEhMKD09GUFRGRkNfQkFEX0xFThADEhgKFE9GUFRGRkNfQkFEX0FSR1VNRU5UEAQSEQoNT0ZQVEZGQ19FUEVSTRAFKs4CChJvZnBfbXVsdGlwYXJ0X3R5cGUSDgoKT0ZQTVBfREVTQxAAEg4KCk9GUE1QX0ZMT1cQARITCg9PRlBNUF9BR0dSRUdBVEUQAhIPCgtPRlBNUF9UQUJMRRADEhQKEE9GUE1QX1BPUlRfU1RBVFMQBBIPCgtPRlBNUF9RVUVVRRAFEg8KC09GUE1QX0dST1VQEAYSFAoQT0ZQTVBfR1JPVVBfREVTQxAHEhgKFE9GUE1QX0dST1VQX0ZFQVRVUkVTEAgSDwoLT0ZQTVBfTUVURVIQCRIWChJPRlBNUF9NRVRFUl9DT05GSUcQChIYChRPRlBNUF9NRVRFUl9GRUFUVVJFUxALEhgKFE9GUE1QX1RBQkxFX0ZFQVRVUkVTEAwSEwoPT0ZQTVBfUE9SVF9ERVNDEA0SGAoST0ZQTVBfRVhQRVJJTUVOVEVSEP//AypKChtvZnBfbXVsdGlwYXJ0X3JlcXVlc3RfZmxhZ3MSFgoST0ZQTVBGX1JFUV9JTlZBTElEEAASEwoPT0ZQTVBGX1JFUV9NT1JFEAEqTAoZb2ZwX211bHRpcGFydF9yZXBseV9mbGFncxIYChRPRlBNUEZfUkVQTFlfSU5WQUxJRBAAEhUKEU9GUE1QRl9SRVBMWV9NT1JFEAEq5AMKG29mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZRIYChRPRlBURlBUX0lOU1RSVUNUSU9OUxAAEh0KGU9GUFRGUFRfSU5TVFJVQ1RJT05TX01JU1MQARIXChNPRlBURlBUX05FWFRfVEFCTEVTEAISHAoYT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTEAMSGQoVT0ZQVEZQVF9XUklURV9BQ1RJT05TEAQSHgoaT0ZQVEZQVF9XUklURV9BQ1RJT05TX01JU1MQBRIZChVPRlBURlBUX0FQUExZX0FDVElPTlMQBhIeChpPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUxAHEhEKDU9GUFRGUFRfTUFUQ0gQCBIVChFPRlBURlBUX1dJTERDQVJEUxAKEhoKFk9GUFRGUFRfV1JJVEVfU0VURklFTEQQDBIfChtPRlBURlBUX1dSSVRFX1NFVEZJRUxEX01JU1MQDRIaChZPRlBURlBUX0FQUExZX1NFVEZJRUxEEA4SHwobT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRF9NSVNTEA8SGgoUT0ZQVEZQVF9FWFBFUklNRU5URVIQ/v8DEh8KGU9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MQ//8DKpMBChZvZnBfZ3JvdXBfY2FwYWJpbGl0aWVzEhIKDk9GUEdGQ19JTlZBTElEEAASGAoUT0ZQR0ZDX1NFTEVDVF9XRUlHSFQQARIaChZPRlBHRkNfU0VMRUNUX0xJVkVORVNTEAISEwoPT0ZQR0ZDX0NIQUlOSU5HEAQSGgoWT0ZQR0ZDX0NIQUlOSU5HX0NIRUNLUxAIKmsKFG9mcF9xdWV1ZV9wcm9wZXJ0aWVzEhEKDU9GUFFUX0lOVkFMSUQQABISCg5PRlBRVF9NSU5fUkFURRABEhIKDk9GUFFUX01BWF9SQVRFEAISGAoST0ZQUVRfRVhQRVJJTUVOVEVSEP//AypxChNvZnBfY29udHJvbGxlcl9yb2xlEhcKE09GUENSX1JPTEVfTk9DSEFOR0UQABIUChBPRlBDUl9ST0xFX0VRVUFMEAESFQoRT0ZQQ1JfUk9MRV9NQVNURVIQAhIUChBPRlBDUl9ST0xFX1NMQVZFEANCVQoeb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVuZmxvdzEzWjNnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb3BlbmZsb3dfMTNKlboGCgcSBTkAmRIBCuQUCgEMEgM5ABIa+QYKIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCByZW5kZXJpbmcgb2YgT3BlbkZsb3cgbWVzc2FnZQogZGVmaW5pdGlvbnMgaW50byBwcm90b2NvbCBidWZmZXIgbWVzc2FnZXMuIFdlIHByZXNlcnZlZCB0aGUgc25ha2UKIGNhc2Ugc3ludGF4LCBhbmQgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAtIGFsbCBwYWQgZmllbGRzIGRyb3BwZWQKIC0gZm9yIGVhY2ggZW51bSB2YWx1ZSBhYm92ZSAweDdmZmZmZmZmIHRoZSBNU0IgaXMgZHJvcHBlZC4gRm9yIGV4YW1wbGUsCiAgIDB4ZmZmZmZmZmYgaXMgbm93IDB4N2ZmZmZmZmYuCiAtICc8dHlwZT4gdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAncmVwZWF0ZWQgPHR5cGU+IHRoaW5nJwogLSAnY2hhciB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdzdHJpbmcgdGhpbmcnCiAtICd1aW50OF90IGRhdGFbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnYnl0ZXMgZGF0YScKIC0gdGhlIGZvbGxvd2luZyBzeXN0ZW1hdGljIGNoYW5nZXMgYXJlIGRvbmUgdG8gdmFyaW91cyBpbnRlZ2VyIHR5cGVzOgogICB1aW50OF90ICAtPiB1aW50MzIKICAgdWludDE2X3QgLT4gdWludDMyCiAgIHVpbnQzMl90IC0+IHVpbnQzMgogICB1aW50NjRfdCAtPiB1aW50NjQKIC0gcmVtb3ZlZCBtb3N0IGxlbmd0aCwgbGVuLCBzaXplIGZpZWxkcyB3aGVyZSB0aGVzZSB2YWx1ZXMgY2FuIGJlIGRldGVybWluZWQKICAgZnJvbSB0aGUgZXhwbGljaXRseSBlbmNvZGVkIGxlbmd0aCBvZiAicmVwZWF0ZWQiIHByb3RvYnVmIGZpZWxkcy4KIC0gZXhwbGljaXQgdXNlIG9mIGVudW0gdHlwZXMgd2hlcmVldmVyIGl0IGlzIHVuYW1iaWdvdXMgKGFuZCBub3QgdXNlZCBhcwogICBiaXRtYXNrL2ZsYWdzIHZhbHVlLgoKMqYNIENvcHlyaWdodCAoYykgMjAwOCBUaGUgQm9hcmQgb2YgVHJ1c3RlZXMgb2YgVGhlIExlbGFuZCBTdGFuZm9yZAogSnVuaW9yIFVuaXZlcnNpdHkKIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBi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IEZpZWxkcyB0byBtYXRjaCBhZ2FpbnN0IGZsb3dzIAoLCgMECwESBIwDCBEKHgoEBAsCABIEjQMEHCIQIE9uZSBvZiBPRlBNVF8qIAoPCgUECwIABBIGjQMEjAMTCg0KBQQLAgAGEgSNAwQSCg0KBQQLAgABEgSNAxMXCg0KBQQLAgADEgSNAxobChkKBAQLAgESBI4DBCoiCyAwIG9yIG1vcmUgCg0KBQQLAgEEEgSOAwQMCg0KBQQLAgEGEgSOAw0aCg0KBQQLAgEBEgSOAxslCg0KBQQLAgEDEgSOAygpCrcICgIFDRIGqAMArQMBGuYBIE9YTSBDbGFzcyBJRHMuCiBUaGUgaGlnaCBvcmRlciBiaXQgZGlmZmVyZW50aWF0ZSByZXNlcnZlZCBjbGFzc2VzIGZyb20gbWVtYmVyIGNsYXNzZXMuCiBDbGFzc2VzIDB4MDAwMCB0byAweDdGRkYgYXJlIG1lbWJlciBjbGFzc2VzLCBhbGxvY2F0ZWQgYnkgT05GLgogQ2xhc3NlcyAweDgwMDAgdG8gMHhGRkZFIGFyZSByZXNlcnZlZCBjbGFzc2VzLCByZXNlcnZlZCBmb3Igc3RhbmRhcmRpc2F0aW9uLgoyqQEgQ29tcG9uZW50cyBvZiBhIE9YTSBUTFYgaGVhZGVyLgogVGhvc2UgbWFjcm9zIGFyZSBub3QgdmFsaWQgZm9yIHRoZSBleHBlcmltZW50ZXIgY2xhc3MsIG1hY3JvcyBmb3IgdGhlCiBleHBlcmltZW50ZXIgY2xhc3Mgd2lsbCBkZXBlbmQgb24gdGhlIGV4cGVyaW1lbnRlciBoZWFkZXIgdXNlZC4gMpMFI2RlZmluZSBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCBIQVNNQVNLLCBMRU5HVEgpIFwKICAgICgoKENMQVNTKSA8PCAxNikgfCAoKEZJRUxEKSA8PCA5KSB8ICgoSEFTTUFTSykgPDwgOCkgfCAoTEVOR1RIKSkKI2RlZmluZSBPWE1fSEVBREVSKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAwLCBMRU5HVEgpCiNkZWZpbmUgT1hNX0hFQURFUl9XKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBc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X0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JTl9QSFlfUE9SVCwgNCkKIiAgVXNlZCBmb3IgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIDK5BiBQaHlzaWNhbCBwb3J0IG9uIHdoaWNoIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLgoKIENvbnNpZGVyIGEgcGFja2V0IHJlY2VpdmVkIG9uIGEgdHVubmVsIGludGVyZmFjZSBkZWZpbmVkIG92ZXIgYSBsaW5rCiBhZ2dyZWdhdGlvbiBncm91cCAoTEFHKSB3aXRoIHR3byBwaHlzaWNhbCBwb3J0IG1lbWJlcnMuICBJZiB0aGUgdHVubmVsCiBpbnRlcmZhY2UgaXMgdGhlIGxvZ2ljYWwgcG9ydCBib3VuZCB0byBPcGVuRmxvdy4gIEluIHRoaXMgY2FzZSwKIE9GUFhNVF9PRl9JTl9QT1JUIGlzIHRoZSB0dW5uZWwncyBwb3J0IG51bWJlciBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGlzCiB0aGUgcGh5c2ljYWwgcG9ydCBudW1iZXIgb2YgdGhlIExBRyBvbiB3aGljaCB0aGUgdHVubmVsIGlzIGNvbmZpZ3VyZWQuCgogV2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCBkaXJlY3RseSBvbiBhIHBoeXNpY2FsIHBvcnQgYW5kIG5vdCBwcm9jZXNzZWQgYnkgYQogbG9naWNhbCBwb3J0LCBPRlBYTVRfT0ZfSU5fUE9SVCBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGhhdmUgdGhlIHNhbWUKIHZhbHVlLgoKIFRoaXMgZmllbGQgaXMgdXN1YWxseSBub3QgYXZhaWxhYmxlIGluIGEgcmVndWxhciBtYXRjaCBhbmQgb25seSBhdmFpbGFibGUKIGluIG9mcF9wYWNrZXRfaW4gbWVzc2FnZXMgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIE9YTV9PRl9JTl9QT1JULgoKIFByZXJlcXM6IE9YTV9PRl9JTl9QT1JUIG11c3QgYmUgcHJlc2VudC4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIDBRIEiwQIDgoNCgUEDQIDARIEiwQPHAoNCgUEDQIDAxIEiwQfIAqtAgoEBA0CBBIElwQIIhqOASNkZWZpbmUgT1hNX09GX01FVEFEQVRBICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKI2RlZmluZSBPWE1fT0ZfTUVUQURBVEFfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX01FVEFEQVRBIDJuIFRhYmxlIG1ldGFkYXRhLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CBAUSBJcECA4KDQoFBA0CBAESBJcEDx0KDQoFBA0CBAMSBJcEICEK4gMKBAQNAgUSBKQECBoamAIjZGVmaW5lIE9YTV9PRl9FVEhfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfRFNUIChleGFjdGx5IDYgYnl0ZXMpIDKHASBTb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBFdGhlcm5ldCBoZWFkZXIuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDQIFBRIEpAQIDQoNCgUEDQIFARIEpAQOFQoNCgUEDQIFAxIEpAQYGQo9CgQEDQIGEgSlBAgaIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfU1JDIChleGFjdGx5IDYgYnl0ZXMpIAoNCgUEDQIGBRIEpQQIDQoNCgUEDQIGARIEpQQOFQoNCgUEDQIGAxIEpQQYGQrpAQoEBA0CBxIErwQIHBpGI2RlZmluZSBPWE1fT0ZfRVRIX1RZUEUgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9UWVBFLDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1RZUEUgMnMgUGFja2V0J3MgRXRoZXJuZXQgdHlwZS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgcFEgSvBAgOCg0KBQQNAgcBEgSvBA8XCg0KBQQNAgcDEgSvBBobCoMLCgQEDQIIEgTVBAgcGo4BI2RlZmluZSBPWE1fT0ZfVkxBTl9WSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQojZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9WSUQgMsMJIDgwMi4xUSBWSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1JRCAoVklEKSBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZywgd2l0aCB0aGUgQ0ZJIGJpdCBmb3JjZWQgdG8gMS4gRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRCiBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlIE9GUFZJRF9OT05FLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCBiaXQgMTMgaW5kaWNhdGluZwogcHJlc2VuY2Ugb2YgVkxBTiBoZWFkZXIgYW5kIDMgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMTMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKIFRoaXMgZmllbGQgY2FuIGJlIHVzZWQgaW4gdmFyaW91cyB3YXlzOgoKICAgLSBJZiBpdCBpcyBub3QgY29uc3RyYWluZWQgYXQgYWxsLCB0aGUgbnhfbWF0Y2ggbWF0Y2hlcyBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIDB4MCBtYXRjaGVzIG9ubHkgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlci4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIFZJRCB2YWx1ZSB3aXRoIENGST0xIG1hdGNoZXMgcGFja2V0cwogICAgIHRoYXQgaGF2ZSBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBzcGVjaWZpZWQgVklELgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgbm9uemVybyBWSUQgdmFsdWUgd2l0aCBDRkk9MCBkb2VzCiAgICAgbm90IG1ha2Ugc2Vuc2UuICBUaGUgc3dpdGNoIG1heSByZWplY3QgdGhpcyBjb21iaW5hdGlvbi4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0wLCBueG1fbWFzaz0weDBmZmYgbWF0Y2hlcyBwYWNrZXRzIHdpdGggbm8gODAyLjFRCiAgICAgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgVklEIG9mIDAuCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MHgxMDAwLCBueG1fbWFzaz0weDEwMDAgbWF0Y2hlcyBwYWNrZXRzIHdpdGgKICAgICBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgoNCgUEDQIIBRIE1QQIDgoNCgUEDQIIARIE1QQPFwoNCgUEDQIIAxIE1QQaGwrQAwoEBA0CCRIE5QQIHRpHI2RlZmluZSBPWE1fT0ZfVkxBTl9QQ1AgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fUENQLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fUENQIDLYAiA4MDIuMVEgUENQLgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tUENQIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLiAgRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUKIDAuCgogUHJlcmVxczogT1hNX09GX1ZMQU5fVklEIG11c3QgYmUgZGlmZmVyZW50IGZyb20gT0ZQVklEX05PTkUuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4KCg0KBQQNAgkFEgTlBAgOCg0KBQQNAgkBEgTlBA8XCg0KBQQNAgkDEgTlBBocCqgDCgQEDQIKEgTxBAgcGkcjZGVmaW5lIE9YTV9PRl9JUF9EU0NQICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0RTQ1AsIDEpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRFNDUCAysQIgVGhlIERpZmYgU2VydiBDb2RlIFBvaW50IChEU0NQKSBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgNiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIKBRIE8QQIDgoNCgUEDQIKARIE8QQPFgoNCgUEDQIKAxIE8QQZGwqNAwoEBA0CCxIE/QQIGxpFI2RlZmluZSBPWE1fT0ZfSVBfRUNOICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0VDTiwgMSkKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9FQ04gMpkCIFRoZSBFQ04gYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA2IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CCwUSBP0ECA4KDQoFBA0CCwESBP0EDxUKDQoFBA0CCwMSBP0EGBoKjQIKBAQNAgwSBIcFCB0aRyNkZWZpbmUgT1hNX09GX0lQX1BST1RPICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9QUk9UTywgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9QUk9UTyAylQEgVGhlICJwcm90b2NvbCIgYnl0ZSBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIMBRIEhwUIDgoNCgUEDQIMARIEhwUPFwoNCgUEDQIMAxIEhwUaHAqNBAoEBA0CDRIElQUIHRqkAiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X1NSQ19XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1QgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfU1JDIDK3ASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQINBRIElQUIDgoNCgUEDQINARIElQUPFwoNCgUEDQINAxIElQUaHAosCgQEDQIOEgSWBQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X0RTVCAKDQoFBA0CDgUSBJYFCA4KDQoFBA0CDgESBJYFDxcKDQoFBA0CDgMSBJYFGhwKoQMKBAQNAg8SBKMFCBwajAEjZGVmaW5lIE9YTV9PRl9UQ1BfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVENQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX1NSQyAy5AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBUQ1AgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CDwUSBKMFCA4KDQoFBA0CDwESBKMFDxYKDQoFBA0CDwMSBKMFGRsKKwoEBA0CEBIEpAUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX0RTVCAKDQoFBA0CEAUSBKQFCA4KDQoFBA0CEAESBKQFDxYKDQoFBA0CEAMSBKQFGRsKpQMKBAQNAhESBLEFCBwajAEjZGVmaW5lIE9YTV9PRl9VRFBfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVURQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX1NSQyAy6AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBVRFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxNyBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhEFEgSxBQgOCg0KBQQNAhEBEgSxBQ8WCg0KBQQNAhEDEgSxBRkbCisKBAQNAhISBLIFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9EU1QgCg0KBQQNAhIFEgSyBQgOCg0KBQQNAhIBEgSyBQ8WCg0KBQQNAhIDEgSyBRkbCqoDCgQEDQITEgS/BQgdGo4BI2RlZmluZSBPWE1fT0ZfU0NUUF9TUkMgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9TQ1RQX0RTVCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9EU1QsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9TUkMgMuoBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgU0NUUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEzMiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhMFEgS/BQgOCg0KBQQNAhMBEgS/BQ8XCg0KBQQNAhMDEgS/BRocCiwKBAQNAhQSBMAFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfRFNUIAoNCgUEDQIUBRIEwAUIDgoNCgUEDQIUARIEwAUPFwoNCgUEDQIUAxIEwAUaHAqHAwoEBA0CFRIEzQUIIBqYASNkZWZpbmUgT1hNX09GX0lDTVBWNF9UWVBFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjRfQ09ERSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSwgMSkKIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSAyugEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEgZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFQUSBM0FCA4KDQoFBA0CFQESBM0FDxoKDQoFBA0CFQMSBM0FHR8KLwoEBA0CFhIEzgUIICIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUgCg0KBQQNAhYFEgTOBQgOCg0KBQQNAhYBEgTOBQ8aCg0KBQQNAhYDEgTOBR0fCtUCCgQEDQIXEgTbBQgbGkUjZGVmaW5lIE9YTV9PRl9BUlBfT1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX09QLCAyKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0FSUF9PUCAy4QEgQVJQIG9wY29kZS4KCiBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIG9wY29kZSBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwCiBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFwUSBNsFCA4KDQoFBA0CFwESBNsFDxUKDQoFBA0CFwMSBNsFGBoKtQQKBAQNAhgSBOoFCBwamAIjZGVmaW5lIE9YTV9PRl9BUlBfU1BBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1NQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKIhggRm9yIE9GUFhNVF9PRkJfQVJQX1NQQSAy8QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IHByb3RvY29sIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAhgFEgTqBQgOCg0KBQQNAhgBEgTqBQ8WCg0KBQQNAhgDEgTqBRkbCiYKBAQNAhkSBOsFCBwiGCBGb3IgT0ZQWE1UX09GQl9BUlBfVFBBIAoNCgUEDQIZBRIE6wUIDgoNCgUEDQIZARIE6wUPFgoNCgUEDQIZAxIE6wUZGwq3BAoEBA0CGhIE+QUIGxqcAiNkZWZpbmUgT1hNX09GX0FSUF9TSEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1NIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1NIQSAoNiBieXRlcykgMuUBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBoYXJkd2FyZSBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIaBRIE+QUIDQoNCgUEDQIaARIE+QUOFQoNCgUEDQIaAxIE+QUYGgowCgQEDQIbEgT6BQgbIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1RIQSAoNiBieXRlcykgCg0KBQQNAhsFEgT6BQgNCg0KBQQNAhsBEgT6BQ4VCg0KBQQNAhsDEgT6BRgaCvoDCgQEDQIcEgSIBggcGqQCI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfU1JDIDKpASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQdjYgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CHAUSBIgGCA0KDQoFBA0CHAESBIgGDhYKDQoFBA0CHAMSBIgGGRsKJwoEBA0CHRIEiQYIHCIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfRFNUIAoNCgUEDQIdBRIEiQYIDQoNCgUEDQIdARIEiQYOFgoNCgUEDQIdAxIEiQYZGwqdAwoEBA0CHhIElwYIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUxfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCAy0wEgVGhlIElQdjYgRmxvdyBMYWJlbAoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAh4FEgSXBggOCg0KBQQNAh4BEgSXBg8aCg0KBQQNAh4DEgSXBh0fCoMDCgQEDQIfEgSkBgggGpYBI2RlZmluZSBPWE1fT0ZfSUNNUFY2X1RZUEUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY2X0NPREUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSwgMSkKIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUgMr0BIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVB2NiBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAh8FEgSkBggOCg0KBQQNAh8BEgSkBg8aCg0KBQQNAh8DEgSkBh0fCioKBAQNAiASBKUGCCAiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSAKDQoFBA0CIAUSBKUGCA4KDQoFBA0CIAESBKUGDxoKDQoFBA0CIAMSBKUGHR8KkQMKBAQNAiESBLMGCCIaVyNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVEFSR0VUIE9YTV9IRUFERVIgXAogICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCwgMTYpCiIfIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUIDKIAiBUaGUgdGFyZ2V0IGFkZHJlc3MgaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkgbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZWl0aGVyIDEzNSBvciAxMzYuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIhBRIEswYIDQoNCgUEDQIhARIEswYOHAoNCgUEDQIhAxIEswYfIQqXAwoEBA0CIhIEwQYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9TTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMIDKcAiBUaGUgc291cmNlIGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM1LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiIFEgTBBggNCg0KBQQNAiIBEgTBBg4ZCg0KBQQNAiIDEgTBBhweCpcDCgQEDQIjEgTPBggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwgMpwCIFRoZSB0YXJnZXQgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzYuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIwUSBM8GCA0KDQoFBA0CIwESBM8GDhkKDQoFBA0CIwMSBM8GHB4K/gIKBAQNAiQSBNsGCB8aSiNkZWZpbmUgT1hNX09GX01QTFNfTEFCRUwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19MQUJFTCwgNCkKIhsgRm9yIE9GUFhNVF9PRkJfTVBMU19MQUJFTCAyhgIgVGhlIExBQkVMIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQKIGJpdHMgZm9yY2VkIHRvIDAuIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiQFEgTbBggOCg0KBQQNAiQBEgTbBg8ZCg0KBQQNAiQDEgTbBhweCtwCCgQEDQIlEgTnBggcGkcjZGVmaW5lIE9YTV9PRl9NUExTX1RDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfVEMsIDEpCiIYIEZvciBPRlBYTVRfT0ZCX01QTFNfVEMgMuoBIFRoZSBUQyBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiUFEgTnBggOCg0KBQQNAiUBEgTnBg8WCg0KBQQNAiUDEgTnBhkbCuQCCgQEDQImEgTzBggdGkkjZGVmaW5lIE9YTV9PRl9NUExTX0JPUyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0JPUywgMSkKIhkgRm9yIE9GUFhNVF9PRkJfTVBMU19CT1MgMu8BIFRoZSBCb1MgYml0IGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VzdCBiaXQgaGF2ZSBhIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CJgUSBPMGCA4KDQoFBA0CJgESBPMGDxcKDQoFBA0CJgMSBPMGGhwKqgMKBAQNAicSBIIHCB0ajgEjZGVmaW5lIE9YTV9PRl9QQkJfSVNJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiNkZWZpbmUgT1hNX09GX1BCQl9JU0lEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKIhkgRm9yIE9GUFhNVF9PRkJfUEJCX0lTSUQgMu8BIElFRUUgODAyLjFhaCBJLVNJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhIFBCQiBoZWFkZXIsIHRoaXMgaXMgdGhlIEktU0lEIGZyb20gdGhlCiBvdXRlcm1vc3Qgc2VydmljZSB0YWcuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4OEU3IGV4YWN0bHkuCgogRm9ybWF0OiAyNC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CJwUSBIIHCA4KDQoFBA0CJwESBIIHDxcKDQoFBA0CJwMSBIIHGhwKvAYKBAQNAigSBJYHCB4alAEjZGVmaW5lIE9YTV9PRl9UVU5ORUxfSUQgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKIhogRm9yIE9GUFhNVF9PRkJfVFVOTkVMX0lEIDL6BCBMb2dpY2FsIFBvcnQgTWV0YWRhdGEuCgogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgbG9naWNhbCBwb3J0LgogSWYgdGhlIGxvZ2ljYWwgcG9ydCBwZXJmb3JtcyBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uLCB0aGlzCiBpcyB0aGUgZGVtdWx0aXBsZXhpbmcgZmllbGQgZnJvbSB0aGUgZW5jYXBzdWxhdGlvbiBoZWFkZXIuCiBGb3IgZXhhbXBsZSwgZm9yIGEgcGFja2V0IHJlY2VpdmVkIHZpYSBHUkUgdHVubmVsIGluY2x1ZGluZyBhICgzMi1iaXQpIGtleSwKIHRoZSBrZXkgaXMgc3RvcmVkIGluIHRoZSBsb3cgMzItYml0cyBhbmQgdGhlIGhpZ2ggYml0cyBhcmUgemVyb2VkLgogRm9yIGEgTVBMUyBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjAgYml0cyByZXByZXNlbnQgdGhlIE1QTFMgTGFiZWwuCiBGb3IgYSBWeExBTiBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjQgYml0cyByZXByZXNlbnQgdGhlIFZOSS4KIElmIHRoZSBwYWNrZXQgaXMgbm90IHJlY2VpdmVkIHRocm91Z2ggYSBsb2dpY2FsIHBvcnQsIHRoZSB2YWx1ZSBpcyAwLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CKAUSBJYHCA4KDQoFBA0CKAESBJYHDxgKDQoFBA0CKAMSBJYHGx0KqAMKBAQNAikSBKMHCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUiAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIgMt4BIFRoZSBJUHY2IEV4dGVuc2lvbiBIZWFkZXIgcHNldWRvLWZpZWxkLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgOSBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBNYXNrYWJsZS4gCg0KBQQNAikFEgSjBwgOCg0KBQQNAikBEgSjBw8aCg0KBQQNAikDEgSjBx0fCk0KBAQNCAESBqgHBMAHBRo9IE9wdGlvbmFsIG1hc2sgdmFsdWVzIChtdXN0IGJlIHByZXNlbnQgd2hlbiBoYXNf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T3BlbkZsb3cgc3dpdGNoLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZGVzYy4gCg0KBQUuAgABEgSVDQQOCg0KBQUuAgACEgSVDRESCpYBCgQFLgIBEgSaDQQTGocBIEluZGl2aWR1YWwgZmxvdyBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZmxvd19zdGF0cy4gCg0KBQUuAgEBEgSaDQQOCg0KBQUuAgECEgSaDRESCpkBCgQFLgICEgSfDQQYGooBIEFnZ3JlZ2F0ZSBmbG93IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseS4gCg0KBQUuAgIBEgSfDQQTCg0KBQUuAgICEgSfDRYXCnkKBAUuAgMSBKQNBBQaayBGbG93IHRhYmxlIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9zdGF0cy4gCg0KBQUuAgMBEgSkDQQPCg0KBQUuAgMCEgSkDRITCooBCgQFLgIEEgSpDQQZGnwgUG9ydCBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydF9zdGF0cy4gCg0KBQUuAgQBEgSpDQQUCg0KBQUuAgQCEgSpDRcYCpcBCgQFLgIFEgSuDQQUGogBIFF1ZXVlIHN0YXRpc3RpY3MgZm9yIGEgcG9ydAogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzIAoNCgUFLgIFARIErg0EDwoNCgUFLgIFAhIErg0SEwqRAQoEBS4CBhIEsw0EFBqCASBHcm91cCBjb3VudGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzLiAKDQoFBS4CBgESBLMNBA8KDQoFBS4CBgISBLMNEhMKdAoEBS4CBxIEuA0EGRpmIEdyb3VwIGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfZGVzYy4gCg0KBQUuAgcBEgS4DQQUCg0KBQUuAgcCEgS4DRcYCmkKBAUuAggSBL0NBB0aWyBHcm91cCBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX2ZlYXR1cmVzLiAKDQoFBS4CCAESBL0NBBgKDQoFBS4CCAISBL0NGxwKkwEKBAUuAgkSBMINBBQahAEgTWV0ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS4CCQESBMINBA8KDQoFBS4CCQISBMINEhMKlwEKBAUuAgoSBMcNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUuAgoBEgTHDQQWCg0KBQUuAgoCEgTHDRkbCmkKBAUuAgsSBMwNBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS4CCwESBMwNBBgKDQoFBS4CCwISBMwNGx0KsQIKBAUuAgwSBNQNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLgIMARIE1A0EGAoNCgUFLgIMAhIE1A0bHQptCgQFLgINEgTZDQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnQuIAoNCgUFLgINARIE2Q0EEwoNCgUFLgINAhIE2Q0WGAq+AQoEBS4CDhIE3w0EIBqvASBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBiZWdpbiB3aXRoCiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBhcmUgb3RoZXJ3aXNlIGV4cGVyaW1lbnRlci1kZWZpbmVkLiAKDQoFBS4CDgESBN8NBBYKDQoFBS4CDgISBN8NGR8KfAoCBS8SBuUNAOgNATI9IEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCAx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BKIRBAoKDQoFBFMCBQESBKIRCxcKDQoFBFMCBQMSBKIRGhsKTQoEBFMCBhIEoxEEHSI/IFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQRTAgYEEgajEQSiERwKDQoFBFMCBgUSBKMRBAoKDQoFBFMCBgESBKMRCxgKDQoFBFMCBgMSBKMRGxwK6wYKAgU0Ega8EQDBEQEaEyBDb250cm9sbGVyIHJvbGVzLiAyxwYgQ29uZmlndXJlcyB0aGUgInJvbGUiIG9mIHRoZSBzZW5kaW5nIGNvbnRyb2xsZXIuICBUaGUgZGVmYXVsdCByb2xlIGlzOgoKICAgIC0gRXF1YWwgKE9GUENSX1JPTEVfRVFVQUwpLCB3aGljaCBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgYWNjZXNzIHRvIGFsbAogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gQWxsIGNvbnRyb2xsZXJzIGhhdmUgZXF1YWwgcmVzcG9uc2liaWxpdHkuCgogVGhlIG90aGVyIHBvc3NpYmxlIHJvbGVzIGFyZSBhIHJlbGF0ZWQgcGFpcjoKCiAgICAtIE1hc3RlciAoT0ZQQ1JfUk9MRV9NQVNURVIpIGlzIGVxdWl2YWxlbnQgdG8gRXF1YWwsIGV4Y2VwdCB0aGF0IHRoZXJlCiAgICAgIG1heSBiZSBhdCBtb3N0IG9uZSBNYXN0ZXIgY29udHJvbGxlciBhdCBhIHRpbWU6IHdoZW4gYSBjb250cm9sbGVyCiAgICAgIGNvbmZpZ3VyZXMgaXRzZWxmIGFzIE1hc3RlciwgYW55IGV4aXN0aW5nIE1hc3RlciBpcyBkZW1vdGVkIHRvIHRoZQogICAgICBTbGF2ZSByb2xlLgoKICAgIC0gU2xhdmUgKE9GUENSX1JPTEVfU0xBVkUpIGFsbG93cyB0aGUgY29udHJvbGxlciByZWFkLW9ubHkgYWNjZXNzIHRvCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiAgSW4gcGFydGljdWxhciBhdHRlbXB0cyB0byBtb2RpZnkgdGhlIGZsb3cgdGFibGUKICAgICAgd2lsbCBiZSByZWplY3RlZCB3aXRoIGFuIE9GUEJS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CgUEAwIDBhIDLAQjCgwKBQQDAgMBEgMsJDMKDAoFBAMCAwMSAyw2Nwo/CgQEAwIEEgMvBB4aMiBuYW1lIG9mIHRoZSByb290IGRldmljZSBhbmNob3JpbmcgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgQEEgQvBCw4CgwKBQQDAgQFEgMvBAoKDAoFBAMCBAESAy8LGQoMCgUEAwIEAxIDLxwdCgoKAgQEEgQyADQBCgoKAwQEARIDMggWCgsKBAQEAgASAzMEJQoMCgUEBAIABBIDMwQMCgwKBQQEAgAGEgMzDRoKDAoFBAQCAAESAzMbIAoMCgUEBAIAAxIDMyMkYgZwcm90bzMK/9gBChp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxIGZGV2aWNlGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90byLiAgoKRGV2aWNlVHlwZRIOCgJpZBgBIAEoCVICaWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIdCgp2ZW5kb3JfaWRzGAYgAygJUgl2ZW5kb3JJZHMSGAoHYWRhcHRlchgCIAEoCVIHYWRhcHRlchI3ChhhY2NlcHRzX2J1bGtfZmxvd191cGRhdGUYAyABKAhSFWFjY2VwdHNCdWxrRmxvd1VwZGF0ZRJECh9hY2NlcHRzX2FkZF9yZW1vdmVfZmxvd191cGRhdGVzGAQgASgIUhthY2NlcHRzQWRkUmVtb3ZlRmxvd1VwZGF0ZXMSTAojYWNjZXB0c19kaXJlY3RfbG9naWNhbF9mbG93c191cGRhdGUYByABKAhSH2FjY2VwdHNEaXJlY3RMb2dpY2FsRmxvd3NVcGRhdGUSIQoMYWRhcHRlcl90eXBlGAggASgJUgthZGFwdGVyVHlwZSI3CgtEZXZpY2VUeXBlcxIoCgVpdGVtcxgBIAMoCzISLmRldmljZS5EZXZpY2VUeXBlUgVpdGVtcyLAAQoIUG1Db25maWcSEgoEbmFtZRgBIAEoCVIEbmFtZRIrCgR0eXBlGAIgASgOMhcuZGV2aWNlLlBtQ29uZmlnLlBtVHlwZVIEdHlwZRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEh8KC3NhbXBsZV9mcmVxGAQgASgNUgpzYW1wbGVGcmVxIjgKBlBtVHlwZRILCgdDT1VOVEVSEAASCQoFR0FVR0UQARIJCgVTVEFURRACEgsKB0NPTlRFWFQQAyKTAQoNUG1Hcm91cENvbmZpZxIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSHQoKZ3JvdXBfZnJlcRgCIAEoDVIJZ3JvdXBGcmVxEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSKgoHbWV0cmljcxgEIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcyLzAQoJUG1Db25maWdzEg4KAmlkGAEgASgJUgJpZBIhCgxkZWZhdWx0X2ZyZXEYAiABKA1SC2RlZmF1bHRGcmVxEhgKB2dyb3VwZWQYAyABKAhSB2dyb3VwZWQSIwoNZnJlcV9vdmVycmlkZRgEIAEoCFIMZnJlcU92ZXJyaWRlEi0KBmdyb3VwcxgFIAMoCzIVLmRldmljZS5QbUdyb3VwQ29uZmlnUgZncm91cHMSKgoHbWV0cmljcxgGIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcxIZCghtYXhfc2tldxgHIAEoDVIHbWF4U2tldyKPAgoFSW1hZ2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEhIKBGhhc2gYAyABKA1SBGhhc2gSKQoQaW5zdGFsbF9kYXRldGltZRgEIAEoCVIPaW5zdGFsbERhdGV0aW1lEhsKCWlzX2FjdGl2ZRgFIAEoCFIIaXNBY3RpdmUSIQoMaXNfY29tbWl0dGVkGAYgASgIUgtpc0NvbW1pdHRlZBIZCghpc192YWxpZBgHIAEoCFIHaXNWYWxpZBIQCgN1cmwYCCABKAlSA3VybBIWCgZ2ZW5kb3IYCSABKAlSBnZlbmRvchIUCgVjcmMzMhgKIAEoDVIFY3JjMzIi5wcKDUltYWdlRG93bmxvYWQSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEAoDdXJsGAMgASgJUgN1cmwSEAoDY3JjGAQgASgNUgNjcmMSTwoOZG93bmxvYWRfc3RhdGUYBSABKA4yKC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSIwoNaW1hZ2VfdmVyc2lvbhgGIAEoCVIMaW1hZ2VWZXJzaW9uEikKEGRvd25sb2FkZWRfYnl0ZXMYByABKA1SD2Rvd25sb2FkZWRCeXRlcxJICgZyZWFzb24YCCABKA4yMC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvblIGcmVhc29uEicKD2FkZGl0aW9uYWxfaW5mbxgJIAEoCVIOYWRkaXRpb25hbEluZm8SHwoLc2F2ZV9jb25maWcYCiABKAhSCnNhdmVDb25maWcSGwoJbG9jYWxfZGlyGAsgASgJUghsb2NhbERpchJJCgtpbWFnZV9zdGF0ZRgMIAEoDjIoLmRldmljZS5JbWFnZURvd25sb2FkLkltYWdlQWN0aXZhdGVTdGF0ZVIKaW1hZ2VTdGF0ZRIbCglmaWxlX3NpemUYDSABKA1SCGZpbGVTaXplIrcBChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhYKEkRPV05MT0FEX0NBTkNFTExFRBAGIoYBChpJbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSDQoJQ0FOQ0VMTEVEEAUijAEKEkltYWdlQWN0aXZhdGVTdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSEwoPSU1BR0VfUkVWRVJUSU5HEAQSEgoOSU1BR0VfUkVWRVJURUQQBToCGAEiQQoOSW1hZ2VEb3dubG9hZHMSKwoFaXRlbXMYAiADKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaXRlbXM6AhgBIi0KBkltYWdlcxIjCgVpbWFnZRgBIAMoCzINLmRldmljZS5JbWFnZVIFaW1hZ2UisAEKCE9udUltYWdlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24SHgoKaXNDb21taXRlZBgCIAEoCFIKaXNDb21taXRlZBIaCghpc0FjdGl2ZRgDIAEoCFIIaXNBY3RpdmUSGAoHaXNWYWxpZBgEIAEoCFIHaXNWYWxpZBIgCgtwcm9kdWN0Q29kZRgFIAEoCVILcHJvZHVjdENvZGUSEgoEaGFzaBgGIAEoCVIEaGFzaCIzCglPbnVJbWFnZXMSJgoFaXRlbXMYASADKAsyEC5kZXZpY2UuT251SW1hZ2VSBWl0ZW1zImMKEERldmljZUltYWdlU3RhdGUSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIyCgppbWFnZVN0YXRlGAIgASgLMhIuZGV2aWNlLkltYWdlU3RhdGVSCmltYWdlU3RhdGUi4wcKCkltYWdlU3RhdGUSGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhJMCg5kb3dubG9hZF9zdGF0ZRgCIAEoDjIlLmRldmljZS5JbWFnZVN0YXRlLkltYWdlRG93bmxvYWRTdGF0ZVINZG93bmxvYWRTdGF0ZRI9CgZyZWFzb24YAyABKA4yJS5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZUZhaWx1cmVSZWFzb25SBnJlYXNvbhJICgtpbWFnZV9zdGF0ZRgEIAEoDjInLmRldmljZS5JbWFnZVN0YXRlLkltYWdlQWN0aXZhdGlvblN0YXRlUgppbWFnZVN0YXRlItABChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhcKE0RPV05MT0FEX0NBTkNFTExJTkcQBhIWChJET1dOTE9BRF9DQU5DRUxMRUQQByL0AQoSSW1hZ2VGYWlsdXJlUmVhc29uEgwKCE5PX0VSUk9SEAASDwoLSU5WQUxJRF9VUkwQARIPCgtERVZJQ0VfQlVTWRACEhYKEklOU1VGRklDSUVOVF9TUEFDRRADEhEKDVVOS05PV05fRVJST1IQBBIYChRDQU5DRUxMRURfT05fUkVRVUVTVBAFEhoKFkNBTkNFTExFRF9PTl9PTlVfU1RBVEUQBhIaChZWRU5ET1JfREVWSUNFX01JU01BVENIEAcSFwoTT01DSV9UUkFOU0ZFUl9FUlJPUhAIEhgKFElNQUdFX1JFRlVTRURfQllfT05VEAkimQIKFEltYWdlQWN0aXZhdGlvblN0YXRlEhEKDUlNQUdFX1VOS05PV04QABISCg5JTUFHRV9JTkFDVElWRRABEhQKEElNQUdFX0FDVElWQVRJTkcQAhIQCgxJTUFHRV9BQ1RJVkUQAxIUChBJTUFHRV9DT01NSVRUSU5HEAQSEwoPSU1BR0VfQ09NTUlUVEVEEAUSHQoZSU1BR0VfQUNUSVZBVElPTl9BQk9SVElORxAGEhwKGElNQUdFX0FDVElWQVRJT05fQUJPUlRFRBAHEhkKFUlNQUdFX0NPTU1JVF9BQk9SVElORxAIEhgKFElNQUdFX0NPTU1JVF9BQk9SVEVEEAkSFQoRSU1BR0VfRE9XTkxPQURJTkcQCiK3BQoEUG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFAoFbGFiZWwYAiABKAlSBWxhYmVsEikKBHR5cGUYAyABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIEdHlwZRI5CgthZG1pbl9zdGF0ZRgFIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEjkKC29wZXJfc3RhdHVzGAYgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSGwoJZGV2aWNlX2lkGAcgASgJUghkZXZpY2VJZBIrCgVwZWVycxgIIAMoCzIVLmRldmljZS5Qb3J0LlBlZXJQb3J0UgVwZWVycxIdCgpyeF9wYWNrZXRzGAkgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYCiABKAZSB3J4Qnl0ZXMSGwoJcnhfZXJyb3JzGAsgASgGUghyeEVycm9ycxIdCgp0eF9wYWNrZXRzGAwgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYDSABKAZSB3R4Qnl0ZXMSGwoJdHhfZXJyb3JzGA4gASgGUgh0eEVycm9ycxIwCghvZnBfcG9ydBgPIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgdvZnBQb3J0GkAKCFBlZXJQb3J0EhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFwoHcG9ydF9ubxgCIAEoDVIGcG9ydE5vInMKCFBvcnRUeXBlEgsKB1VOS05PV04QABIQCgxFVEhFUk5FVF9OTkkQARIQCgxFVEhFUk5FVF9VTkkQAhILCgdQT05fT0xUEAMSCwoHUE9OX09OVRAEEg0KCVZFTkVUX09MVBAFEg0KCVZFTkVUX09OVRAGIisKBVBvcnRzEiIKBWl0ZW1zGAEgAygLMgwuZGV2aWNlLlBvcnRSBWl0ZW1zItgKCgZEZXZpY2USDgoCaWQYASABKAlSAmlkEhIKBHR5cGUYAiABKAlSBHR5cGUSEgoEcm9vdBgDIAEoCFIEcm9vdBIbCglwYXJlbnRfaWQYBCABKAlSCHBhcmVudElkEiQKDnBhcmVudF9wb3J0X25vGBQgASgNUgxwYXJlbnRQb3J0Tm8SFgoGdmVuZG9yGAUgASgJUgZ2ZW5kb3ISFAoFbW9kZWwYBiABKAlSBW1vZGVsEikKEGhhcmR3YXJlX3ZlcnNpb24YByABKAlSD2hhcmR3YXJlVmVyc2lvbhIpChBmaXJtd2FyZV92ZXJzaW9uGAggASgJUg9maXJtd2FyZVZlcnNpb24SJgoGaW1hZ2VzGAkgASgLMg4uZGV2aWNlLkltYWdlc1IGaW1hZ2VzEiMKDXNlcmlhbF9udW1iZXIYCiABKAlSDHNlcmlhbE51bWJlchIbCgl2ZW5kb3JfaWQYGCABKAlSCHZlbmRvcklkEikKEGFkYXB0ZXJfZW5kcG9pbnQYGSABKAlSD2FkYXB0ZXJFbmRwb2ludBISCgR2bGFuGAwgASgNUgR2bGFuEh8KC21hY19hZGRyZXNzGA0gASgJUgptYWNBZGRyZXNzEiMKDGlwdjRfYWRkcmVzcxgOIAEoCUgAUgtpcHY0QWRkcmVzcxIjCgxpcHY2X2FkZHJlc3MYDyABKAlIAFILaXB2NkFkZHJlc3MSJAoNaG9zdF9hbmRfcG9ydBgVIAEoCUgAUgtob3N0QW5kUG9ydBIdCgpleHRyYV9hcmdzGBcgASgJUglleHRyYUFyZ3MSQAoNcHJveHlfYWRkcmVzcxgTIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSOQoLYWRtaW5fc3RhdGUYECABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRI5CgtvcGVyX3N0YXR1cxgRIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEhYKBnJlYXNvbhgWIAEoCVIGcmVhc29uEkIKDmNvbm5lY3Rfc3RhdHVzGBIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSLAoGY3VzdG9tGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIGY3VzdG9tEjEKCnBtX2NvbmZpZ3MYgwEgASgLMhEuZGV2aWNlLlBtQ29uZmlnc1IJcG1Db25maWdzEj8KD2ltYWdlX2Rvd25sb2FkcxiFASADKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIOaW1hZ2VEb3dubG9hZHMargIKDFByb3h5QWRkcmVzcxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEh8KC2RldmljZV90eXBlGAIgASgJUgpkZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYAyABKA1SCWNoYW5uZWxJZBIoChBjaGFubmVsX2dyb3VwX2lkGAQgASgNUg5jaGFubmVsR3JvdXBJZBIvChNjaGFubmVsX3Rlcm1pbmF0aW9uGAUgASgJUhJjaGFubmVsVGVybWluYXRpb24SFQoGb251X2lkGAYgASgNUgVvbnVJZBIkCg5vbnVfc2Vzc2lvbl9pZBgHIAEoDVIMb251U2Vzc2lvbklkEikKEGFkYXB0ZXJfZW5kcG9pbnQYCCABKAlSD2FkYXB0ZXJFbmRwb2ludEIJCgdhZGRyZXNzSgQICxAMIsIBChpEZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBInCglkZXZpY2VfaWQYASADKAsyCi5jb21tb24uSURSCGRldmljZUlkEiMKBWltYWdlGAIgASgLMg0uZGV2aWNlLkltYWdlUgVpbWFnZRIsChFhY3RpdmF0ZU9uU3VjY2VzcxgDIAEoCFIRYWN0aXZhdGVPblN1Y2Nlc3MSKAoPY29tbWl0T25TdWNjZXNzGAQgASgIUg9jb21taXRPblN1Y2Nlc3MigQEKEkRldmljZUltYWdlUmVxdWVzdBInCglkZXZpY2VfaWQYASADKAsyCi5jb21tb24uSURSCGRldmljZUlkEhgKB3ZlcnNpb24YAiABKAlSB3ZlcnNpb24SKAoPY29tbWl0T25TdWNjZXNzGAMgASgIUg9jb21taXRPblN1Y2Nlc3MiXwoTRGV2aWNlSW1hZ2VSZXNwb25zZRJIChNkZXZpY2VfaW1hZ2Vfc3RhdGVzGAEgAygLMhguZGV2aWNlLkRldmljZUltYWdlU3RhdGVSEWRldmljZUltYWdlU3RhdGVzIqUBChBTZWxmVGVzdFJlc3BvbnNlEj8KBnJlc3VsdBgBIAEoDjInLmRldmljZS5TZWxmVGVzdFJlc3BvbnNlLlNlbGZUZXN0UmVzdWx0UgZyZXN1bHQiUAoOU2VsZlRlc3RSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQARIRCg1OT1RfU1VQUE9SVEVEEAISEQoNVU5LTk9XTl9FUlJPUhADIi8KB0RldmljZXMSJAoFaXRlbXMYASADKAsyDi5kZXZpY2UuRGV2aWNlUgVpdGVtcyKoAwoUU2ltdWxhdGVBbGFybVJlcXVlc3QSDgoCaWQYASABKAlSAmlkEhwKCWluZGljYXRvchgCIAEoCVIJaW5kaWNhdG9yEhcKB2ludGZfaWQYAyABKAlSBmludGZJZBIkCg5wb3J0X3R5cGVfbmFtZRgEIAEoCVIMcG9ydFR5cGVOYW1lEiIKDW9udV9kZXZpY2VfaWQYBSABKAlSC29udURldmljZUlkEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBiABKAVSE2ludmVyc2VCaXRFcnJvclJhdGUSFAoFZHJpZnQYByABKAVSBWRyaWZ0EhcKB25ld19lcWQYCCABKAVSBm5ld0VxZBIqChFvbnVfc2VyaWFsX251bWJlchgJIAEoCVIPb251U2VyaWFsTnVtYmVyEkgKCW9wZXJhdGlv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ZAoKDQoFBAUCAgQSBFcEUxcKDAoFBAUCAgUSA1cECgoMCgUEBQICARIDVwsPCgwKBQQFAgIDEgNXEhMKZAoEBAUCAxIDWgQgGisgRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiogY29tYmluZWQgZGF0ZSBhbmQgdGltZSBleHByZXNzZWQgaW4gVVRDLgoKDQoFBAUCAwQSBFoEVxQKDAoFBAUCAwUSA1oECgoMCgUEBQIDARIDWgsbCgwKBQQFAgMDEgNaHh8KmAMKBAQFAgQSA2IEFxrCAiBUaGUgYWN0aXZlIHNvZnR3YXJlIGltYWdlIGlzIG9uZSB0aGF0IGlzIGN1cnJlbnRseSBsb2FkZWQgYW5kIGV4ZWN1dGluZwogaW4gdGhlIE9OVSBvciBjaXJjdWl0IHBhY2suIFVuZGVyIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZQogaXMgYWx3YXlzIGFjdGl2ZSB3aGlsZSB0aGUgb3RoZXIgaXMgaW5hY3RpdmUuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYXJlCiBib3RoIHNvZnR3YXJlIGltYWdlcyBhbGxvd2VkIHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lCiBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiHSBUcnVlIGlmIHRoZSBpbWFnZSBpcyBhY3RpdmUKMicgdXNlIElTTyA4NjAxIGZvcm1hdCBmb3IgZGF0ZSBhbmQgdGltZQoKDQoFBAUCBAQSBGIEWiAKDAoFBAUCBAUSA2IECAoMCgUEBQIEARIDYgkSCgwKBQQFAgQDEgNiFRYKnwIKBAQFAgUSA2gEGhrvASBUaGUgY29tbWl0dGVkIHNvZnR3YXJlIGltYWdlIGlzIGxvYWRlZCBhbmQgZXhlY3V0ZWQgdXBvbiByZWJvb3Qgb2YgdGhlCiBPTlUgYW5kL29yIGNpcmN1aXQgcGFjay4gRHVyaW5nIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZSBpcwogYWx3YXlzIGNvbW1pdHRlZCwgd2hpbGUgdGhlIG90aGVyIGlzIHVuY29tbWl0dGVkLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiAgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgY29tbWl0dGVkCgoNCgUEBQIFBBIEaARiFwoMCgUEBQIFBRIDaAQICgwKBQQFAgUBEgNoCRUKDAoFBAUCBQMSA2gYGQrMAgoEBAUCBhIDbwQWGqACIEEgc29mdHdhcmUgaW1hZ2UgaXMgdmFsaWQgaWYgaXQgaGFzIGJlZW4gdmVyaWZpZWQgdG8gYmUgYW4gZXhlY3V0YWJsZQogY29kZSBpbWFnZS4gVGhlIHZlcmlmaWNhdGlvbiBtZWNoYW5pc20gaXMgbm90IHN1YmplY3QgdG8gc3RhbmRhcmRpemF0aW9uOwogaG93ZXZlciwgaXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3QgYSBkYXRhIGludGVncml0eSAoZS5nLiwgQ1JDKSBjaGVjayBvZgogdGhlIGVudGlyZSBjb2RlIGltYWdlLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIhwgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgdmFsaWQKCg0KBQQFAgYEEgRvBGgaCgwKBQQFAgYFEgNvBAgKDAoFBAUCBgESA28JEQoMCgUEBQIGAxIDbxQVCngKBAQFAgcSA3QEExprIFVSTCB3aGVyZSB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlCiBVUkwgTVVTVCBiZSBmdWxseSBxdWFsaWZpZWQsCiBpbmNsdWRpbmcgZmlsZW5hbWUsIHVzZXJuYW1lIGFuZCBwYXNzd29yZAoKDQoFBAUCBwQSBHQEbxYKDAoFBAUCBwUSA3QECgoMCgUEBQIHARIDdAsOCgwKBQQFAgcDEgN0ERIKrQEKBAQFAggSA3kEFhqfASBSZXByZXNlbnRzIHRoZSB2ZW5kb3IvZGV2aWNlIG1mcgogTmVlZHMgdG8gbWF0Y2ggdGhlIHZlbmRvciBvZiB0aGUgZGV2aWNlIHRoZSBpbWFnZSB3aWxsIGJlIGluc3RhbGxlZCBvbgogb3B0aW9uYWwsIGlmIG5vdCBtYXRjaGVkIG5vIGNoZWNrIHdpbGwgYmUgcGVyZm9ybWVkCgoNCgUEBQIIBBIEeQR0EwoMCgUE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BBUCCAQSBusDBOoDFgoNCgUEFQIIBRIE6wMECgoNCgUEFQIIARIE6wMLHAoNCgUEFQIIAxIE6wMfIAoMCgQEFQIJEgTsAwQhCg8KBQQVAgkEEgbsAwTrAyEKDQoFBBUCCQYSBOwDBBEKDQoFBBUCCQESBOwDEhsKDQoFBBUCCQMSBOwDHiBiBnByb3RvMwryLwofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSvgtCgcSBR4AiAEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8RsKAgQAEgV8AIgBARrjGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQgW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZyBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKQogd2l0aCB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZQogY2FuIHVzZSB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoKCgMEAAESA3wIEQqdAQoEBAACABIEgQECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDgoFBAACAAQSBYEBAnwTCg0KBQQAAgAFEgSBAQIHCg0KBQQAAgABEgSBAQgPCg0KBQQAAgADEgSBARITCuUBCgQEAAIBEgSHAQISGtYBIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZQogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlcwogdGhhdCBjb3VudCBmb3J3YXJkIGluIHRpbWUuIE11c3QgYmUgZnJvbSAwIHRvIDk5OSw5OTksOTk5CiBpbmNsdXNpdmUuCgoPCgUEAAIBBBIGhwECgQEUCg0KBQQAAgEFEgSHAQIHCg0KBQQAAgEBEgSHAQgNCg0KBQQAAgEDEgSHARARYgZwcm90bzMKpWgKGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvEgVldmVudBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8ingEKEkV2ZW50RmlsdGVyUnVsZUtleSKHAQoTRXZlbnRGaWx0ZXJSdWxlVHlwZRIOCgpmaWx0ZXJfYWxsEAASDAoIY2F0ZWdvcnkQARIQCgxzdWJfY2F0ZWdvcnkQAhISCg5rcGlfZXZlbnRfdHlwZRADEhUKEWNvbmZpZ19ldmVudF90eXBlEAQSFQoRZGV2aWNlX2V2ZW50X3R5cGUQBSJoCg9FdmVudEZpbHRlclJ1bGUSPwoDa2V5GAEgASgOMi0uZXZlbnQuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUinwEKC0V2ZW50RmlsdGVyEg4KAmlkGAEgASgJUgJpZBIWCgZlbmFibGUYAiABKAhSBmVuYWJsZRIbCglkZXZpY2VfaWQYAyABKAlSCGRldmljZUlkEh0KCmV2ZW50X3R5cGUYBCABKAlSCWV2ZW50VHlwZRIsCgVydWxlcxgFIAMoCzIWLmV2ZW50LkV2ZW50RmlsdGVyUnVsZVIFcnVsZXMiPAoMRXZlbnRGaWx0ZXJzEiwKB2ZpbHRlcnMYASADKAsyEi5ldmVudC5FdmVudEZpbHRlclIHZmlsdGVycyI7Cg9Db25maWdFdmVudFR5cGUiKAoFVHlwZXMSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIiZwoLQ29uZmlnRXZlbnQSMAoEdHlwZRgBIAEoDjIcLmV2ZW50LkNvbmZpZ0V2ZW50VHlwZS5UeXBlc1IEdHlwZRISCgRoYXNoGAIgASgJUgRoYXNoEhIKBGRhdGEYAyABKAlSBGRhdGEiKgoMS3BpRXZlbnRUeXBlIhoKBVR5cGVzEgkKBXNsaWNlEAASBgoCdHMQASKqAgoOTWV0cmljTWV0YURhdGESFAoFdGl0bGUYASABKAlSBXRpdGxlEg4KAnRzGAIgASgBUgJ0cxIqChFsb2dpY2FsX2RldmljZV9pZBgDIAEoCVIPbG9naWNhbERldmljZUlkEhsKCXNlcmlhbF9ubxgEIAEoCVIIc2VyaWFsTm8SGwoJZGV2aWNlX2lkGAUgASgJUghkZXZpY2VJZBI8Cgdjb250ZXh0GAYgAygLMiIuZXZlbnQuTWV0cmljTWV0YURhdGEuQ29udGV4dEVudHJ5Ugdjb250ZXh0EhIKBHV1aWQYByABKAlSBHV1aWQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEijgEKEE1ldHJpY1ZhbHVlUGFpcnMSPgoHbWV0cmljcxgBIAMoCzIkLmV2ZW50Lk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsMBChFNZXRyaWNJbmZvcm1hdGlvbhIxCghtZXRhZGF0YRgBIAEoCzIVLmV2ZW50Lk1ldHJpY01ldGFEYXRhUghtZXRhZGF0YRI/CgdtZXRyaWNzGAIgAygLMiUuZXZlbnQuTWV0cmljSW5mb3JtYXRpb24uTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBItoBCghLcGlFdmVudBItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI5CghwcmVmaXhlcxgDIAMoCzIdLmV2ZW50LktwaUV2ZW50LlByZWZpeGVzRW50cnlSCHByZWZpeGVzGlQKDVByZWZpeGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLQoFdmFsdWUYAiABKAsyFy5ldmVudC5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEigwEKCUtwaUV2ZW50MhItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI3CgpzbGljZV9kYXRhGAMgAygLMhguZXZlbnQuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSLzAQoLRGV2aWNlRXZlbnQSHwoLcmVzb3VyY2VfaWQYASABKAlSCnJlc291cmNlSWQSKgoRZGV2aWNlX2V2ZW50X25hbWUYAiABKAlSD2RldmljZUV2ZW50TmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoHY29udGV4dBgEIAMoCzIfLmV2ZW50LkRldmljZUV2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASLaAgoIUlBDRXZlbnQSEAoDcnBjGAEgASgJUgNycGMSIQoMb3BlcmF0aW9uX2lkGAIgASgJUgtvcGVyYXRpb25JZBIYCgdzZXJ2aWNlGAMgASgJUgdzZXJ2aWNlEhkKCHN0YWNrX2lkGAQgASgJUgdzdGFja0lkEh8KC3Jlc291cmNlX2lkGAUgASgJUgpyZXNvdXJjZUlkEiAKC2Rlc2NyaXB0aW9uGAYgASgJUgtkZXNjcmlwdGlvbhI2Cgdjb250ZXh0GAcgAygLMhwuZXZlbnQuUlBDRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0Ei0KBnN0YXR1cxgIIAEoCzIVLmNvbW1vbi5PcGVyYXRpb25SZXNwUgZzdGF0dXMaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEidgoNRXZlbnRDYXRlZ29yeSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiUgoQRXZlbnRTdWJDYXRlZ29yeSI+CgVUeXBlcxIHCgNQT04QABIHCgNPTFQQARIHCgNPTlQQAhIHCgNPTlUQAxIHCgNOTkkQBBIICgROT05FEAUiZgoJRXZlbnRUeXBlIlkKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAxINCglSUENfRVZFTlQQBCLcAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjYKCGNhdGVnb3J5GAIgASgOMhouZXZlbnQuRXZlbnRDYXRlZ29yeS5UeXBlc1IIY2F0ZWdvcnkSQAoMc3ViX2NhdGVnb3J5GAMgASgOMh0uZXZlbnQuRXZlbnRTdWJDYXRlZ29yeS5UeXBlc1ILc3ViQ2F0ZWdvcnkSKgoEdHlwZRgEIAEoDjIWLmV2ZW50LkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCHJhaXNlZFRzEjsKC3JlcG9ydGVkX3RzGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKcmVwb3J0ZWRUcyLGAgoFRXZlbnQSKgoGaGVhZGVyGAEgASgLMhIuZXZlbnQuRXZlbnRIZWFkZXJSBmhlYWRlchI3Cgxjb25maWdfZXZlbnQYAiABKAsyEi5ldmVudC5Db25maWdFdmVudEgAUgtjb25maWdFdmVudBIuCglrcGlfZXZlbnQYAyABKAsyDy5ldmVudC5LcGlFdmVudEgAUghrcGlFdmVudBIxCgprcGlfZXZlbnQyGAQgASgLMhAuZXZlbnQuS3BpRXZlbnQySABSCWtwaUV2ZW50MhI3CgxkZXZpY2VfZXZlbnQYBSABKAsyEi5ldmVudC5EZXZpY2VFdmVudEgAUgtkZXZpY2VFdmVudBIuCglycGNfZXZlbnQYBiABKAsyDy5ldmVudC5SUENFdmVudEgAUghycGNFdmVudEIMCgpldmVudF90eXBlQkwKGm9yZy5vcGVuY29yZC52b2x0aGEuZXZlbnRzWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSvtMCgcSBQAAoQIBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDADMKCQoCCAESAwMAMwoICgECEgMFAA4KCQoCAwASAwcAJgoJCgIDARIDCAApCgkKAgMCEgMJACQKCgoCBAASBAwAFgEKCgoDBAABEgMMCBoKDAoEBAAEABIEDgQVBQoMCgUEAAQAARIDDgkcCg0KBgQABAACABIDDwgXCg4KBwQABAACAAESAw8IEgoOCgcEAAQAAgACEgMPFRYKDQoGBAAEAAIBEgMQCBUKDgoHBAAEAAIBARIDEAgQCg4KBwQABAACAQISAxATFAoNCgYEAAQAAgISAxEIGQoOCgcEAAQAAgIBEgMRCBQKDgoHBAAEAAICAhIDERcYCg0KBgQABAACAxIDEggbCg4KBwQABAACAwESAxIIFgoOCgcEAAQAAgMCEgMSGRoKDQoGBAAEAAIEEgMTCB4KDgoHBAAEAAIEARIDEwgZCg4KBwQABAACBAISAxMcHQoNCgYEAAQAAgUSAxQIHgoOCgcEAAQAAgUBEgMUCBkKDgoHBAAEAAIFAhIDFBwdCgoKAgQBEgQYABsBCgoKAwQBARIDGAgXCgsKBAQBAgASAxkEMwoNCgUEAQIABBIEGQQYGQoMCgUEAQIABhIDGQQqCgwKBQQBAgABEgMZKy4KDAoFBAECAAMSAxkxMgoLCgQEAQIBEgMaBBUKDQoFBAECAQQSBBoEGTMKDAoFBAECAQUSAxoECgoMCgUEAQIBARIDGgsQCgwKBQQBAgEDEgMaExQKCgoCBAISBBwAIgEKCgoDBAIBEgMcCBMKCwoEBAICABIDHQQTCg0KBQQCAgAEEgQdBBwVCgwKBQQCAgAFEgMdBAoKDAoFBAICAAESAx0LDQoMCgUEAgIAAxIDHRARCgsKBAQCAgESAx4EFAoNCgUEAgIBBBIEHgQdEwoMCgUEAgIBBRIDHgQICgwKBQQCAgEBEgMeCQ8KDAoFBAICAQMSAx4SEwoLCgQEAgICEgMfBBkKDQoFBAICAgQSBB8EHhQKDAoFBAICAgUSAx8ECgoMCgUEAgICARIDHwsUCgwKBQQCAgIDEgMfFxgKCwoEBAICAxIDIAQaCg0KBQQCAgMEEgQgBB8ZCgwKBQQCAgMFEgMgBAoKDAoFBAICAwESAyALFQoMCgUEAgIDAxIDIBgZCgsKBAQCAgQSAyEEJwoMCgUEAgIEBBIDIQQMCgwKBQQCAgQGEgMhDRwKDAoFBAICBAESAyEdIgoMCgUEAgIEAxIDISUmCgoKAgQDEgQkACYBCgoKAwQDARIDJAgUCgsKBAQDAgASAyUEJQoMCgUEAwIABBIDJQQMCgwKBQQDAgAGEgMlDRgKDAoFBAMCAAESAyUZIAoMCgUEAwIAAxIDJSMkCgoKAgQEEgQoAC4BCgoKAwQEARIDKAgXCgwKBAQEBAASBCkELQUKDAoFBAQEAAESAykJDgosCgYEBAQAAgASAyoIECIdIEEgbmV3IGNvbmZpZyBoYXMgYmVlbiBhZGRlZAoKDgoHBAQEAAIAARIDKggLCg4KBwQEBAACAAISAyoODwoqCgYEBAQAAgESAysIEyIbIEEgY29uZmlnIGhhcyBiZWVuIHJlbW92ZWQKCg4KBwQEBAACAQESAysIDgoOCgcEBAQAAgECEgMrERIKKgoGBAQEAAICEgMsCBMiGyBBIGNvbmZpZyBoYXMgYmVlbiB1cGRhdGVkCgoOCgcEBAQAAgIBEgMsCA4KDgoHBAQEAAICAhIDLBESCgoKAgQFEgQwADUBCgoKAwQFARIDMAgTCgsKBAQFAgASAzEEIwoNCgUEBQIABBIEMQQwFQoMCgUEBQIABhIDMQQZCgwKBQQFAgABEgMxGh4KDAoFBAUCAAMSAzEhIgpBCgQEBQIBEgMzBBQiNCBoYXNoIGZvciB0aGlzIGNoYW5nZSwgY2FuIGJlIHVzZWQgZm9yIHF1aWNrIGxvb2t1cAoKDQoFBAUCAQQSBDMEMSMKDAoFBAUCAQUSAzMECgoMCgUEBQIBARIDMwsPCgwKBQQFAgEDEgMzEhMKMgoEBAUCAhIDNAQUIiUgdGhlIGFjdHVhbCBuZXcgZGF0YSwgaW4ganNvbiBmb3JtYXQKCg0KBQQFAgIEEgQ0BDMUCgwKBQQFAgIFEgM0BAoKDAoFBAUCAgESAzQLDwoMCgUEBQICAxIDNBITCgoKAgQGEgQ3ADwBCgoKAwQGARIDNwgUCgwKBAQGBAASBDgEOwUKDAoFBAYEAAESAzgJDgpFCgYEBgQAAgASAzkIEiI2IHNsaWNlOiBhIHNldCBvZiBwYXRoL21ldHJpYyBkYXRhIGZvciBzYW1lIHRpbWUtc3RhbXAKCg4KBwQGBAACAAESAzkIDQoOCgcEBgQAAgACEgM5EBEKOwoGBAYEAAIBEgM6CA8iLCB0aW1lLXNlcmllczogYXJyYXkgb2YgZGF0YSBmb3Igc2FtZSBtZXRyaWMKCg4KBwQGBAACAQESAzoICgoOCgcEBgQAAgECEgM6DQ4KQAoCBAcSBEEAVgEaNAogU3RydWN0IHRvIGNvbnZleSBhIGRpY3Rpb25hcnkgb2YgbWV0cmljIG1ldGFkYXRhLgoKCgoDBAcBEgNBCBYKNQoEBAcCABIDQgQVIiggTWV0cmljIGdyb3VwIG9yIGluZGl2aWR1YWwgbWV0cmljIG5hbWUKCg0KBQQHAgAEEgRCBEEYCgwKBQQHAgAFEgNCBAoKDAoFBAcCAAESA0ILEAoMCgUEBwIAAxIDQhMUCj4KBAQHAgESA0MEEiIxIFVUQyB0aW1lLXN0YW1wIG9mIGRhdGEgKHNlY29uZHMgc2luY2UgZXBvY2gpIG9mCgoNCgUEBwIBBBIEQwRCFQoMCgUEBwIBBRIDQwQKCgwKBQQHAgEBEgNDCw0KDAoFBAcCAQMSA0MQEQrxAQoEBAcCAhIDSQQhIiUgVGhlIGxvZ2ljYWwgZGV2aWNlIElEIG9mIHRoZSBWT0xUSEEKMrwBIHdoZW4gdGhlIG1ldHJpYyBvciBtZXRyaWMgZ3JvdXAgd2FzIGNvbGxlY3RlZC4KIElmIHRoaXMgaXMgYSAxNS1taW4gaGlzdG9yaWNhbCBncm91cCwgaXQgaXMgdGhlCiB0aW1lIG9mIHRoZSBjb2xsZWN0aW9uIGFuZCByZXBvcnRpbmcsIG5vdCB0aGUKIHN0YXJ0IG9yIGVuZCBvZiB0aGUgMTUtbWluIGdyb3VwIGludGVydmFsLgoKDQoFBAcCAgQSBEkEQxIKDAoFBAcCAgUSA0kECgoMCgUEBwICARIDSQscCgwKBQQHAgIDEgNJHyAKkAEKBAQHAgMSA00EGRpZIChlcXVpdmFsZW50IHRvIHRoZSBEUElEIHRoYXQgT05PUyBoYXMKIGZvciB0aGUgVk9MVEhBIGRldmljZSB3aXRob3V0IHRoZQogICdvZjonIHByZWZpeAoiKCBUaGUgT0xULCBPTlUsIC4uLiBkZXZpY2Ugc2VyaWFsIG51bWJlcgoKDQoFBAcCAwQSBE0ESSEKDAoFBAcCAwUSA00ECgoMCgUEBwIDARIDTQsUCgwKBQQHAgMDEgNNFxgKMwoEBAcCBBIDTgQZIiYgVGhlIE9MVCwgT05VLCAuLi4gcGh5c2ljYWwgZGV2aWNlIElECgoNCgUEBwIEBBIETgRNGQoMCgUEBwIEBRIDTgQKCgwKBQQHAgQBEgNOCxQKDAoFBAcCBAMSA04XGAo3CgQEBwIFEgNQBCQiKiBOYW1lIHZhbHVlIHBhaXJzIHRoYXQgcHJvdmlkZSBhZGRpdGlvbmFsCgoNCgUEBwIFBBIEUAROGQoMCgUEBwIFBhIDUAQXCgwKBQQHAgUBEgNQGB8KDAoFBAcCBQMSA1AiIwptCgQEBwIGEgNUBBQiKSBUcmFuc2FjdGlvbiBpZGVudGlmaWVyIHVzZWQgdG8gbWF0Y2ggT24KMjUgY29udGV4dCBpbmZvcm1hdGlvbiBvbiB0aGUgbWV0cmljcyBiZWluZwogcmVwb3J0ZWQuCgoNCgUEBwIGBBIEVARQJAoMCgUEBwIGBRIDVAQKCgwKBQQHAgYBEgNUCw8KDAoFBAcCBgMSA1QSEwqlAQoCBAgSBFwAYQEamAEKIFN0cnVjdCB0byBjb252ZXkgYSBkaWN0aW9uYXJ5IG9mIG1ldHJpYy0+dmFsdWUgcGFpcnMuIFR5cGljYWxseSB1c2VkIGluCiBwdXJlIHNoYXJlZC10aW1lc3RhbXAgb3Igc2hhcmVkLXRpbWVzdGFtcCArIHNoYXJlZCBvYmplY3QgcHJlZml4IHNpdHVhdGlvbnMuCgoKCgMECAESA1wIGAokCgQECAIAEgNfBCMaFyBNZXRyaWMgLyB2YWx1ZSBwYWlycy4KCg0KBQQIAgAEEgRfBFwaCgwKBQQIAgAGEgNfBBYKDAoFBAgCAAESA18XHgoMCgUECAIAAxIDXyEiCnkKAgQJEgRnAGoBGm0KIFN0cnVjdCB0byBncm91cCBtZXRhZGF0YSBmb3IgYSBtZXRyaWMgKG9yIGdyb3VwIG9mIG1ldHJpY3MpIHdpdGggdGhlIGtleS12YWx1ZQogcGFpcnMgb2YgY29sbGVjdGVkIG1ldHJpY3MKCgoKAwQJARIDZwgZCgsKBAQJAgASA2gEIAoNCgUECQIABBIEaARnGwoMCgUECQIABhIDaAQSCgwKBQQJAgABEgNoExsKDAoFBAkCAAMSA2geHwoLCgQECQIBEgNpBCMKDQoFBAkCAQQSBGkEaCAKDAoFBAkCAQYSA2kEFgoMCgUECQIBARIDaRceCgwKBQQJAgEDEgNpISIK4AEKAgQKEgRxAHsBGtMBCiBMZWdhY3kgS1BJIEV2ZW50IHN0cnVjdHVyZWQuICBJbiBtaWQtQXVndXN0LCB0aGUgS1BJIGV2ZW50IGZvcm1hdCB3YXMgdXBkYXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYSBtb3JlIGVhc2lseSBwYXJzYWJsZSBmb3JtYXQuIFNlZSBWT0wtMTE0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoKCgMECgESA3EIEAoLCgQECgIAEgNzBCAKDQoFBAoCAAQSBHMEcRIKDAoFBAoCAAYSA3MEFgoMCgUECgIAARIDcxcbCgwKBQQKAgADEgNzHh8KZwoEBAoCARIDdwQRIjsgVVRDIHRpbWUtc3RhbXAgb2YgZGF0YSBpbiBzbGljZSBtb2RlIChzZWNvbmRzIHNpbmNlIGVwb2MpCjIdIEZpZWxkcyB1c2VkIHdoZW4gZm9yIHNsaWNlOgoKDQoFBAoCAQQSBHcEcyAKDAoFBAoCAQUSA3cECQoMCgUECgIBARIDdwoMCgwKBQQKAgEDEgN3DxAKCwoEBAoCAhIDeQQvCg0KBQQKAgIEEgR5BHcRCgwKBQQKAgIGEgN5BCEKDAoFBAoCAgESA3kiKgoMCgUECgICAxIDeS0uCgsKAgQLEgV9AIYBAQoKCgMECwESA30IEQogCgQECwIAEgN/BCAaEyBUeXBlIG9mIEtQSSBFdmVudAoKDQoFBAsCAAQSBH8EfRMKDAoFBAsCAAYSA38EFgoMCgUECwIAARIDfxcbCgwKBQQLAgADEgN/Hh8KaQoEBAsCARIEggEEEhodIEZpZWxkcyB1c2VkIHdoZW4gZm9yIHNsaWNlOgoiPCBVVEMgdGltZS1zdGFtcCBvZiBkYXRhIGluIHNsaWNlIG1vZGUgKHNlY29uZHMgc2luY2UgZXBvY2gpCgoOCgUECwIBBBIFggEEfyAKDQoFBAsCAQUSBIIBBAoKDQoFBAsCAQESBIIBCw0KDQoFBAsCAQMSBIIBEBEKTwoEBAsCAhIEhQEELjJBIG9mIHRoZSB0aW1lIHRoaXMgZW50aXJlIEtwaUV2ZW50IHdhcyBwdWJsaXNoZWQgdG8gdGhlIGthZmthIGJ1cwoKDQoFBAsCAgQSBIUBBAwKDQoFBAsCAgYSBIUBDR4KDQoFBAsCAgESBIUBHykKDQoFBAsCAgMSBIUBLC0KOAoCBAwSBosBAJgBARoqCiBEZXNjcmliZXMgdGhlIGV2ZW50cyBzcGVjaWZpYyB0byBkZXZpY2UKCgsKAwQMARIEiwEIEwpWCgQEDAIAEgSNAQQbGkggSWRlbnRpZmllciBvZiB0aGUgb3JpZ2luYXRpbmcgcmVzb3VyY2Ugb2YgdGhlIGV2ZW50LCBmb3IgZXg6IGRldmljZV9pZAoKDwoFBAwCAAQSBo0BBIsBFQoNCgUEDAIABRIEjQEECgoNCgUEDAIAARIEjQELFgoNCgUEDAIAAxIEjQEZGgpQCgQEDAIBEgSQAQQhGkIgZGV2aWNlX2V2ZW50X25hbWUgaW5kaWNhdGVzIGNsZWFybHkgdGhlIG5hbWUgb2YgdGhlIGRldmljZSBldmVudAoKDwoFBAwCAQQSBpABBI0BGwoNCgUEDAIBBRIEkAEECgoNCgUEDAIBARIEkAELHAoNCgUEDAIBAxIEkAEfIAo3CgQEDAICEgSTAQQbGikgVGV4dHVhbCBleHBsYW5hdGlvbiBvZiB0aGUgZGV2aWNlIGV2ZW50CgoPCgUEDAICBBIGkwEEkAEhCg0KBQQMAgIFEgSTAQQKCg0KBQQMAgIBEgSTAQsWCg0KBQQMAgIDEgSTARkaCloKBAQMAgMSBJYBBCQaTCBLZXkvVmFsdWUgc3RvcmFnZSBmb3IgZXh0cmEgaW5mb3JtYXRpb24gdGhhdCBtYXkgZ2l2ZSBjb250ZXh0IHRvIHRoZSBldmVudAoKDwoFBAwCAwQSBpYBBJMBGwoNCgUEDAIDBhIElgEEFwoNCgUEDAIDARIElgEYHwoNCgUEDAIDAxIElgEiIwpACgIEDRIGnAEAtAEBGjIKIERlc2NyaWJlcyB0aGUgZXZlbnRzIHNwZWNpZmljIHRvIGFuIFJQQyByZXF1ZXN0CgoLCgMEDQESBJwBCBAKGAoEBA0CABIEngEEExoKIFJQQyBuYW1lCgoPCgUEDQIABBIGngEEnAESCg0KBQQNAgAFEgSeAQQKCg0KBQQNAgABEgSeAQsOCg0KBQQNAgADEgSeARESCk4KBAQNAgESBKEBBBwaQCBUaGUgb3BlcmF0aW9uIGlkIG9mIHRoYXQgcmVxdWVzdC4gIENhbiBiZSBhIGxvZyBjb3JyZWxhdGlvbiBJRAoKDwoFBA0CAQQSBqEBBJ4BEwoNCgUEDQIBBRIEoQEECgoNCgUEDQIBARIEoQELFwoNCgUEDQIBAxIEoQEaGwpBCgQEDQICEgSkAQQXGjMgSWRlbnRpZmllcyB0aGUgc2VydmljZSBuYW1lIG9yaWdpbmF0aW5nIHRoZSBldmVudAoKDwoFBA0CAgQSBqQBBKEBHAoNCgUEDQICBRIEpAEECgoNCgUEDQICARIEpAELEgoNCgUEDQICAxIEpAEVFgo6CgQEDQIDEgSnAQQYGiwgSWRlbnRpZmllcyB0aGUgc3RhY2sgb3JpZ2luYXRpbmcgdGhlIGV2ZW50CgoPCgUEDQIDBBIGpwEEpAEXCg0KBQQNAgMFEgSnAQQKCg0KBQQNAgMBEgSnAQsTCg0KBQQNAgMDEgSnARYXClYKBAQNAgQSBKoBBBsaSCBJZGVudGlmaWVzIHRoZSByZXNvdXJjZSB1cG9uIHdoaWNoIHRoZSBhY3Rpb24gaXMgdGFrZW4sIGUuZy4gZGV2aWNlX2lkCgoPCgUEDQIEBBIGqgEEpwEYCg0KBQQNAgQFEgSqAQQKCg0KBQQNAgQBEgSqAQsWCg0KBQQNAgQDEgSqARkaCjAKBAQNAgUSBK0BBBsaIiBUZXh0dWFsIGV4cGxhbmF0aW9uIG9mIHRoZSBldmVudAoKDwoFBA0CBQQSBq0BBKoBGwoNCgUEDQIFBRIErQEECgoNCgUEDQIFARIErQELFgoNCgUEDQIFAxIErQEZGgpaCgQEDQIGEgSwAQQkGkwgS2V5L1ZhbHVlIHN0b3JhZ2UgZm9yIGV4dHJhIGluZm9ybWF0aW9uIHRoYXQgbWF5IGdpdmUgY29udGV4dCB0byB0aGUgZXZlbnQKCg8KBQQNAgYEEgawAQStARsKDQoFBA0CBgYSBLABBBcKDQoFBA0CBgESBLABGB8KDQoFBA0CBgMSBLABIiMKJwoEBA0CBxIEswEEJBoZIFN0YXR1cyBvZiB0aGUgUlBDIEV2ZW50CgoPCgUEDQIHBBIGswEEsAEkCg0KBQQNAgcGEgSzAQQYCg0KBQQNAgcBEgSzARkfCg0KBQQNAgcDEgSzASIjCkcKAgQOEga5AQDDAQEaOQogSWRlbnRpZnkgdGhlIGFyZWEgb2YgdGhlIHN5c3RlbSBpbXBhY3RlZCBieSB0aGUgZXZlbnQuCgoLCgMEDgESBLkBCBUKDgoEBA4EABIGugEEwgEFCg0KBQQOBAABEgS6AQkOCg4KBgQOBAACABIEuwEIGgoPCgcEDgQAAgABEgS7AQgVCg8KBwQOBAACAAISBLsBGBkKDgoGBA4EAAIBEgS8AQgYCg8KBwQOBAACAQESBLwBCBMKDwoHBA4EAAIBAhIEvAEWFwoOCgYEDgQAAgISBL0BCBYKDwoHBA4EAAICARIEvQEIEQoPCgcEDgQAAgICEgS9ARQVCg4KBgQOBAACAxIEvgEIFAoPCgcEDgQAAgMBEgS+AQgPCg8KBwQOBAACAwISBL4BEhMKDgoGBA4EAAIEEgS/AQgXCg8KBwQOBAACBAESBL8BCBIKDwoHBA4EAAIEAhIEvwEVFgoqCgYEDgQAAgUSBMABCBUiGiBBZGQgbmV3IGV2ZW50IGFyZWFzIGhlcmUKCg8KBwQOBAACBQESBMABCBAKDwoHBA4EAAIFAhIEwAETFApHCgIEDxIGyAEA0gEBGjkKIElkZW50aWZ5IHRoZSBmdW5jdGlvbmFsIGNhdGVnb3J5IG9yaWdpbmF0aW5nIHRoZSBldmVudAoKCwoDBA8BEgTIAQgYCg4KBAQPBAASBskBBNEBBQoNCgUEDwQAARIEyQEJDgoOCgYEDwQAAgASBMoBCBAKDwoHBA8EAAIAARIEygEICwoPCgcEDwQAAgACEgTKAQ4PCg4KBgQPBAACARIEywEIEAoPCgcEDwQAAgEBEgTLAQgLCg8KBwQPBAACAQISBMsBDg8KDgoGBA8EAAICEgTMAQgQCg8KBwQPBAACAgESBMwBCAsKDwoHBA8EAAICAhIEzAEODwoOCgYEDwQAAgMSBM0BCBAKDwoHBA8EAAIDARIEzQEICwoPCgcEDwQAAgMCEgTNAQ4PCg4KBgQPBAACBBIEzgEIEAoPCgcEDwQAAgQBEgTOAQgLCg8KBwQPBAACBAISBM4BDg8KKwoGBA8EAAIFEgTPAQgRIhtBZGRpbmcgTm9uZSBmb3IgUlBDIEV2ZW50cwoKDwoHBA8EAAIFARIEzwEIDAoPCgcEDwQAAgUCEgTPAQ8QCisKAgQQEgbXAQDfAQEaHQogSWRlbnRpZnkgdGhlIHR5cGUgb2YgZXZlbnQKCgsKAwQQARIE1wEIEQoOCgQEEAQAEgbYAQTeAQUKDQoFBBAEAAESBNgBCQ4KDgoGBBAEAAIAEgTZAQgZCg8KBwQQBAACAAESBNkBCBQKDwoHBBAEAAIAAhIE2QEXGAoOCgYEEAQAAgESBNoBCBYKDwoHBBAEAAIBARIE2gEIEQoPCgcEEAQAAgECEgTaARQVCg4KBgQQBAACAhIE2wEIFwoPCgcEEAQAAgIBEgTbAQgSCg8KBwQQBAACAgISBNsBFRYKDgoGBBAEAAIDEgTcAQgZCg8KBwQQBAACAwESBNwBCBQKDwoHBBAEAAIDAhIE3AEXGAoOCgYEEAQAAgQSBN0BCBYKDwoHBBAEAAIEARIE3QEIEQoPCgcEEAQAAgQCEgTdARQVCkcKAgQREgbkAQCEAgEaOQogSWRlbnRpZnkgdGhlIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgb3JpZ2luYXRpbmcgdGhlIGV2ZW50CgoLCgMEEQESBOQBCBMKRAoEBBECABIE5gEEEho2IFVuaXF1ZSBJRCBmb3IgdGhpcyBldmVudC4gIGUuZy4gdm9sdGhhLnNvbWVfb2x0LjEyMzQKCg8KBQQRAgAEEgbmAQTkARUKDQoFBBECAAUSBOYBBAoKDQoFBBECAAESBOYBCw0KDQoFBBECAAMSBOYBEBEKQQoEBBECARIE6QEEJRozIFJlZmVycyB0byB0aGUgZnVuY3Rpb25hbCBhcmVhIGFmZmVjdCBieSB0aGUgZXZlbnQKCg8KBQQRAgEEEgbpAQTmARIKDQoFBBECAQYSBOkBBBcKDQoFBBECAQESBOkBGCAKDQoFBBECAQMSBOkBIyQKOgoEBBECAhIE7AEELBosIFJlZmVycyB0byBmdW5jdGlvbmFsIGNhdGVnb3J5IG9mIHRoZSBldmVudAoKDwoFBBECAgQSBuwBBOkBJQoNCgUEEQICBhIE7AEEGgoNCgUEEQICARIE7AEbJwoNCgUEEQICAxIE7AEqKwovCgQEEQIDEgTvAQQdGiEgUmVmZXJzIHRvIHRoZSB0eXBlIG9mIHRoZSBldmVudAoKDwoFBBECAwQSBu8BBOwBLAoNCgUEEQIDBhIE7wEEEwoNCgUEEQIDARIE7wEUGAoNCgUEEQIDAxIE7wEbHArtAQoEBBECBBIE9QEEHBreASBUaGUgdmVyc2lvbiBpZGVudGlmaWVyIGZvciB0aGlzIGV2ZW50IHR5cGUsIHRodXMgYWxsb3dpbmcgZWFjaAogZXZlbnQgdHlwZSB0byBldm9sdmUgaW5kZXBlbmRlbnRseS4gVGhlIHZlcnNpb24gc2hvdWxkIGJlIGluIHRoZQogZm9ybWF0IOKAnE1BSk9SLk1JTk9S4oCdIGZvcm1hdCBhbmQgbWlub3IgY2hhbmdlcyBtdXN0IG9ubHkgYmUgYWRkaXRpdmUKIGFuZCBub24tYnJlYWtpbmcuCgoPCgUEEQIEBBIG9QEE7wEdCg0KBQQRAgQFEgT1AQQKCg0KBQQRAgQBEgT1AQsXCg0KBQQRAgQDEgT1ARobCqgCCgQEEQIFEgT8AQQsGpkCIFRpbWVzdGFtcCBhdCB3aGljaCB0aGUgZXZlbnQgd2FzIGZpcnN0IHJhaXNlZC4KIFRoaXMgcmVwcmVzZW50cyB0aGUgVVRDIHRpbWUgc3RhbXAgc2luY2UgZXBvY2ggKGluIHNlY29uZHMpIHdoZW4gdGhlCiB0aGUgZXZlbnQgd2FzIGZpcnN0IHJhaXNlZCBmcm9tIHRoZSBzb3VyY2UgZW50aXR5LgogSWYgdGhlIHNvdXJjZSBlbnRpdHkgZG9lc24ndCBzZW5kIHRoZSByYWlzZWRfdHMsIHRoaXMgc2hhbGwgYmUgc2V0CiB0byB0aW1lc3RhbXAgd2hlbiB0aGUgZXZlbnQgd2FzIHJlY2VpdmVkLgoKDwoFBBECBQQSBvwBBPUBHAoNCgUEEQIFBhIE/AEEHQoNCgUEEQIFARIE/AEeJwoNCgUEEQIFAxIE/AEqKwq9AgoEBBECBhIEgwIELhquAiBUaW1lc3RhbXAgYXQgd2hpY2ggdGhlIGV2ZW50IHdhcyByZXBvcnRlZC4KIFRoaXMgcmVwcmVzZW50cyB0aGUgVVRDIHRpbWUgc3RhbXAgc2luY2UgZXBvY2ggKGluIHNlY29uZHMpIHdoZW4gdGhlCiB0aGUgZXZlbnQgd2FzIHJlcG9ydGVkICh0aGlzIHRpbWUgc3RhbXAgaXMgPj0gcmFpc2VkX3RzKS4KIElmIHRoZSBzb3VyY2UgZW50aXR5IHRoYXQgcmVwb3J0ZWQgdGhpcyBldmVudCBkb2Vzbid0IHNlbmQgdGhlIAogcmVwb3J0ZWRfdHMsIHRoaXMgc2hhbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFzIHJhaXNlZF90cy4KCg8KBQQRAgYEEgaDAgT8ASwKDQoFBBECBgYSBIMCBB0KDQoFBBECBgESBIMCHikKDQoFBBECBgMSBIMCLC0KIAoCBBISBokCAKECARoSCiBFdmVudCBTdHJ1Y3R1cmUKCgsKAwQSARIEiQIIDQocCgQEEgIAEgSLAgQbGg4gZXZlbnQgaGVhZGVyCgoPCgUEEgIABBIGiwIEiQIPCg0KBQQSAgAGEgSLAgQPCg0KBQQSAgABEgSLAhAWCg0KBQQSAgADEgSLAhkaCjoKBAQSCAASBo4CBKACBRoqIG9uZW9mIGV2ZW50IHR5cGVzIHJlZmVycmVkIGJ5IEV2ZW50VHlwZS4KCg0KBQQSCAABEgSOAgoUCiUKBAQSAgESBJACCCUaFyBSZWZlcnMgdG8gQ29uZmlnRXZlbnQKCg0KBQQSAgEGEgSQAggTCg0KBQQSAgEBEgSQAhQgCg0KBQQSAgEDEgSQAiMkCiIKBAQSAgISBJMCCB8aFCBSZWZlcnMgdG8gS3BpRXZlbnQKCg0KBQQSAgIGEgSTAggQCg0KBQQSAgIBEgSTAhEaCg0KBQQSAgIDEgSTAh0eCiMKBAQSAgMSBJYCCCEaFSBSZWZlcnMgdG8gS3BpRXZlbnQyCgoNCgUEEgIDBhIElgIIEQoNCgUEEgIDARIElgISHAoNCgUEEgIDAxIElgIfIAolCgQEEgIEEgSZAgglGhcgUmVmZXJzIHRvIERldmljZUV2ZW50CgoNCgUEEgIEBhIEmQIIEwoNCgUEEgIEARIEmQIUIAoNCgUEEgIEAxIEmQIjJAomCgQEEgIFEgScAggfGhggUmVmZXJzIHRvIGFuIFJQQyBFdmVudAoKDQoFBBICBQYSBJwCCBAKDQoFBBICBQESBJwCERoKDQoFBBICBQMSBJwCHR5iBnByb3RvMwqCIQoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvEgZjb25maWciaQoLQWxhcm1Db25maWcSUAoYb251X2l0dV9wb25fYWxhcm1fY29uZmlnGAEgASgLMhYuY29uZmlnLk9udUl0dVBvbkFsYXJtSABSFG9udUl0dVBvbkFsYXJtQ29uZmlnQggKBmNvbmZpZyK+CQoOT251SXR1UG9uQWxhcm0SFQoGcG9uX25pGAEgASgHUgVwb25OaRIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKCGFsYXJtX2lkGAMgASgOMh4uY29uZmlnLk9udUl0dVBvbkFsYXJtLkFsYXJtSURSB2FsYXJtSWQSagoZYWxhcm1fcmVwb3J0aW5nX2NvbmRpdGlvbhgEIAEoDjIuLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybVJlcG9ydGluZ0NvbmRpdGlvblIXYWxhcm1SZXBvcnRpbmdDb25kaXRpb24SYAoVcmF0ZV90aHJlc2hvbGRfY29uZmlnGAUgASgLMiouY29uZmlnLk9udUl0dVBvbkFsYXJtLlJhdGVUaHJlc2hvbGRDb25maWdIAFITcmF0ZVRocmVzaG9sZENvbmZpZxJUChFyYXRlX3JhbmdlX2NvbmZpZxgGIAEoCzImLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlUmFuZ2VDb25maWdIAFIPcmF0ZVJhbmdlQ29uZmlnEmMKFnZhbHVlX3RocmVzaG9sZF9jb25maWcYByABKAsyKy5jb25maWcuT251SXR1UG9uQWxhcm0uVmFsdWVUaHJlc2hvbGRDb25maWdIAFIUdmFsdWVUaHJlc2hvbGRDb25maWcaXAoIU29ha1RpbWUSKAoQYWN0aXZlX3NvYWtfdGltZRgBIAEoB1IOYWN0aXZlU29ha1RpbWUSJgoPY2xlYXJfc29ha190aW1lGAIgASgHUg1jbGVhclNvYWtUaW1lGr0BChNSYXRlVGhyZXNob2xkQ29uZmlnEjIKFXJhdGVfdGhyZXNob2xkX3Jpc2luZxgBIAEoBlITcmF0ZVRocmVzaG9sZFJpc2luZxI0ChZyYXRlX3RocmVzaG9sZF9mYWxsaW5nGAIgASgGUhRyYXRlVGhyZXNob2xkRmFsbGluZxI8Cglzb2FrX3RpbWUYAyABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lGqMBCg9SYXRlUmFuZ2VDb25maWcSKAoQcmF0ZV9yYW5nZV9sb3dlchgBIAEoBlIOcmF0ZVJhbmdlTG93ZXISKAoQcmF0ZV9yYW5nZV91cHBlchgCIAEoBlIOcmF0ZVJhbmdlVXBwZXISPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRp9ChRWYWx1ZVRocmVzaG9sZENvbmZpZxInCg90aHJlc2hvbGRfbGltaXQYASABKAZSDnRocmVzaG9sZExpbWl0EjwKCXNvYWtfdGltZRgCIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUiGQoHQWxhcm1JRBIOCgpSRElfRVJST1JTEAAiUgoXQWxhcm1SZXBvcnRpbmdDb25kaXRpb24SEgoOUkFURV9USFJFU0hPTEQQABIOCgpSQVRFX1JBTkdFEAESEwoPVkFMVUVfVEhSRVNIT0xEEAJCCAoGY29uZmlnQkkKE29yZy5vcGVuY29yZC52b2x0aGFaMmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHQvY29uZmlnStgVCgYSBA0ARQEK0QQKAQwSAw0AEhrGBCBDb3B5cmlnaHQgKGMpIDIwMjAgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg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c3RhbmNlIjYKEkdldERpc3RhbmNlUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiMQoTR2V0RGlzdGFuY2VSZXNwb25zZRIaCghkaXN0YW5jZRgBIAEoDVIIZGlzdGFuY2UiMgoUR2V0T251VW5pSW5mb1JlcXVlc3QSGgoIdW5pSW5kZXgYASABKA1SCHVuaUluZGV4IuEEChVHZXRPbnVVbmlJbmZvUmVzcG9uc2USUAoIYWRtU3RhdGUYASABKA4yNC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkFkbWluaXN0cmF0aXZlU3RhdGVSCGFkbVN0YXRlEk8KCW9wZXJTdGF0ZRgCIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuT3BlcmF0aW9uYWxTdGF0ZVIJb3BlclN0YXRlEk8KCWNvbmZpZ0luZBgDIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQ29uZmlndXJhdGlvbkluZFIJY29uZmlnSW5kIsIBChBDb25maWd1cmF0aW9uSW5kEgoKBlVOS09XThAAEhIKDlRFTl9CQVNFX1RfRkRYEAESFgoSSFVORFJFRF9CQVNFX1RfRkRYEAISGAoUR0lHQUJJVF9FVEhFUk5FVF9GRFgQAxIWChJURU5fR19FVEhFUk5FVF9GRFgQBBISCg5URU5fQkFTRV9UX0hEWBAFEhYKEkhVTkRSRURfQkFTRV9UX0hEWBAGEhgKFEdJR0FCSVRfRVRIRVJORVRfSERYEAciRwoTQWRtaW5pc3RyYXRpdmVTdGF0ZRIWChJBRE1TVEFURV9VTkRFRklORUQQABIKCgZMT0NLRUQQARIMCghVTkxPQ0tFRBACIkYKEE9wZXJhdGlvbmFsU3RhdGUSFwoTT1BFUlNUQVRFX1VOREVGSU5FRBAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIrcBChJHZXRPbHRQb3J0Q291bnRlcnMSFgoGcG9ydE5vGAEgASgNUgZwb3J0Tm8SQgoIcG9ydFR5cGUYAiABKA4yJi5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzLlBvcnRUeXBlUghwb3J0VHlwZSJFCghQb3J0VHlwZRIQCgxQb3J0X1VOS05PV04QABIVChFQb3J0X0VUSEVSTkVUX05OSRABEhAKDFBvcnRfUE9OX09MVBACIswDChpHZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZRIYCgd0eEJ5dGVzGAEgASgEUgd0eEJ5dGVzEhgKB3J4Qnl0ZXMYAiABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSHAoJcnhQYWNrZXRzGAQgASgEUglyeFBhY2tldHMSJgoOdHhFcnJvclBhY2tldHMYBSABKARSDnR4RXJyb3JQYWNrZXRzEiYKDnJ4RXJyb3JQYWNrZXRzGAYgASgEUg5yeEVycm9yUGFja2V0cxImCg50eEJjYXN0UGFja2V0cxgHIAEoBFIOdHhCY2FzdFBhY2tldHMSJgoOcnhCY2FzdFBhY2tldHMYCCABKARSDnJ4QmNhc3RQYWNrZXRzEiYKDnR4VWNhc3RQYWNrZXRzGAkgASgEUg50eFVjYXN0UGFja2V0cxImCg5yeFVjYXN0UGFja2V0cxgKIAEoBFIOcnhVY2FzdFBhY2tldHMSJgoOdHhNY2FzdFBhY2tldHMYCyABKARSDnR4TWNhc3RQYWNrZXRzEiYKDnJ4TWNhc3RQYWNrZXRzGAwgASgEUg5yeE1jYXN0UGFja2V0cyJEChRHZXRPbnVQb25PcHRpY2FsSW5mbxIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHkihAIKHEdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2USKgoQcG93ZXJGZWVkVm9sdGFnZRgBIAEoAlIQcG93ZXJGZWVkVm9sdGFnZRIyChRyZWNlaXZlZE9wdGljYWxQb3dlchgCIAEoAlIUcmVjZWl2ZWRPcHRpY2FsUG93ZXISNgoWbWVhbk9wdGljYWxMYXVuY2hQb3dlchgDIAEoAlIWbWVhbk9wdGljYWxMYXVuY2hQb3dlchIqChBsYXNlckJpYXNDdXJyZW50GAQgASgCUhBsYXNlckJpYXNDdXJyZW50EiAKC3RlbXBlcmF0dXJlGAUgASgCUgt0ZW1wZXJhdHVyZSKvAQofR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeRJSCglkaXJlY3Rpb24YASABKA4yNC5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeS5EaXJlY3Rpb25SCWRpcmVjdGlvbiI4CglEaXJlY3Rpb24SDQoJVU5ERUZJTkVEEAASDAoIVVBTVFJFQU0QARIOCgpET1dOU1RSRUFNEAIikwUKJ0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZRIeCgpkcm9wRXZlbnRzGAEgASgNUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoDVIGb2N0ZXRzEhgKB3BhY2tldHMYAyABKA1SB3BhY2tldHMSKgoQYnJvYWRjYXN0UGFja2V0cxgEIAEoDVIQYnJvYWRjYXN0UGFja2V0cxIqChBtdWx0aWNhc3RQYWNrZXRzGAUgASgNUhBtdWx0aWNhc3RQYWNrZXRzEiwKEWNyY0Vycm9yZWRQYWNrZXRzGAYgASgNUhFjcmNFcnJvcmVkUGFja2V0cxIqChB1bmRlcnNpemVQYWNrZXRzGAcgASgNUhB1bmRlcnNpemVQYWNrZXRzEigKD292ZXJzaXplUGFja2V0cxgIIAEoDVIPb3ZlcnNpemVQYWNrZXRzEigKD3BhY2tldHM2NG9jdGV0cxgJIAEoDVIPcGFja2V0czY0b2N0ZXRzEjIKFHBhY2tldHM2NVRvMTI3b2N0ZXRzGAogASgNUhRwYWNrZXRzNjVUbzEyN29jdGV0cxI0ChVwYWNrZXRzMTI4VG8yNTVPY3RldHMYCyABKA1SFXBhY2tldHMxMjhUbzI1NU9jdGV0cxI0ChVwYWNrZXRzMjU2VG81MTFvY3RldHMYDCABKA1SFXBhY2tldHMyNTZUbzUxMW9jdGV0cxI2ChZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzGA0gASgNUhZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzEjgKF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzGA4gASgNUhdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cyJAChBHZXRPbnVGZWNIaXN0b3J5EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLyAQoYR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlEiYKDmNvcnJlY3RlZEJ5dGVzGAEgASgNUg5jb3JyZWN0ZWRCeXRlcxIuChJjb3JyZWN0ZWRDb2RlV29yZHMYAiABKA1SEmNvcnJlY3RlZENvZGVXb3JkcxIeCgpmZWNTZWNvbmRzGAMgASgNUgpmZWNTZWNvbmRzEiYKDnRvdGFsQ29kZVdvcmRzGAQgASgNUg50b3RhbENvZGVXb3JkcxI2ChZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzGAUgASgNUhZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzIkcKFUdldE9udUNvdW50ZXJzUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCKNAQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQSHAoIdW5pSW5kZXgYAiABKA1IAFIIdW5pSW5kZXgSFAoFcmVzZXQYAyABKAhSBXJlc2V0Qg4KDGlzX3VuaV9pbmRleCJDChFHZXRSeFBvd2VyUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCLkDAoWR2V0T251Q291bnRlcnNSZXNwb25zZRIZCgdpbnRmX2lkGAEgASgHSABSBmludGZJZBIXCgZvbnVfaWQYAiABKAdIAVIFb251SWQSJwoOcG9zaXRpdmVfZHJpZnQYAyABKAZIAlINcG9zaXRpdmVEcmlmdBInCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBkgDUg1uZWdhdGl2ZURyaWZ0EjoKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBkgEUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh8KCmJpcF9lcnJvcnMYBiABKAZIBVIJYmlwRXJyb3JzEh0KCWJpcF91bml0cxgHIAEoBkgGUghiaXBVbml0cxI0ChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZIB1ITZmVjQ29ycmVjdGVkU3ltYm9scxI4ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBkgIUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSQAobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGSAlSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSJQoNZmVjX2NvZGV3b3JkcxgLIAEoBkgKUgxmZWNDb2Rld29yZHMSMAoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBkgLUhFmZWNDb3JyZWN0ZWRVbml0cxIoCg94Z2VtX2tleV9lcnJvcnMYDSABKAZIDFINeGdlbUtleUVycm9ycxIdCgl4Z2VtX2xvc3MYDiABKAZIDVIIeGdlbUxvc3MSKAoPcnhfcGxvYW1zX2Vycm9yGA8gASgGSA5SDXJ4UGxvYW1zRXJyb3ISLQoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGSA9SD3J4UGxvYW1zTm9uSWRsZRIZCgdyeF9vbWNpGBEgASgGSBBSBnJ4T21jaRIZCgd0eF9vbWNpGBIgASgGSBFSBnR4T21jaRI6ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBMgASgGSBJSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIbCghyeF9ieXRlcxgUIAEoBkgTUgdyeEJ5dGVzEh8KCnJ4X3BhY2tldHMYFSABKAZIFFIJcnhQYWNrZXRzEhsKCHR4X2J5dGVzGBYgASgGSBVSB3R4Qnl0ZXMSHwoKdHhfcGFja2V0cxgXIAEoBkgWUgl0eFBhY2tldHMSIwoMYmVyX3JlcG9ydGVkGBggASgGSBdSC2JlclJlcG9ydGVkEiEKC2xjZGdfZXJyb3JzGBkgASgGSBhSCmxjZGdFcnJvcnMSHwoKcmRpX2Vycm9ycxgaIAEoBkgZUglyZGlFcnJvcnMSHgoJdGltZXN0YW1wGBsgASgHSBpSCXRpbWVzdGFtcEIMCgppc19pbnRmX2lkQgsKCWlzX29udV9pZEITChFpc19wb3NpdGl2ZV9kcmlmdEITChFpc19uZWdhdGl2ZV9kcmlmdEIdChtpc19kZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb25CDwoNaXNfYmlwX2Vycm9yc0IOCgxpc19iaXBfdW5pdHNCGgoYaXNfZmVjX2NvcnJlY3RlZF9zeW1ib2xzQhwKGmlzX2ZlY19jb2Rld29yZHNfY29ycmVjdGVkQiAKHmlzX2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZUISChBpc19mZWNfY29kZXdvcmRzQhgKFmlzX2ZlY19jb3JyZWN0ZWRfdW5pdHNCFAoSaXNfeGdlbV9rZXlfZXJyb3JzQg4KDGlzX3hnZW1fbG9zc0IUChJpc19yeF9wbG9hbXNfZXJyb3JCFwoVaXNfcnhfcGxvYW1zX25vbl9pZGxlQgwKCmlzX3J4X29tY2lCDAoKaXNfdHhfb21jaUIeChxpc19yeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yQg0KC2lzX3J4X2J5dGVzQg8KDWlzX3J4X3BhY2tldHNCDQoLaXNfdHhfYnl0ZXNCDwoNaXNfdHhfcGFja2V0c0IRCg9pc19iZXJfcmVwb3J0ZWRCEAoOaXNfbGNkZ19lcnJvcnNCDwoNaXNfcmRpX2Vycm9yc0IOCgxpc190aW1lc3RhbXAijAUKG09tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbRIfCgtkcm9wX2V2ZW50cxgBIAEoBlIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKAZSBm9jdGV0cxIWCgZmcmFtZXMYAyABKAZSBmZyYW1lcxIpChBicm9hZGNhc3RfZnJhbWVzGAQgASgGUg9icm9hZGNhc3RGcmFtZXMSKQoQbXVsdGljYXN0X2ZyYW1lcxgFIAEoBlIPbXVsdGljYXN0RnJhbWVzEiwKEmNyY19lcnJvcmVkX2ZyYW1lcxgGIAEoBlIQY3JjRXJyb3JlZEZyYW1lcxIpChB1bmRlcnNpemVfZnJhbWVzGAcgASgGUg91bmRlcnNpemVGcmFtZXMSJwoPb3ZlcnNpemVfZnJhbWVzGAggASgGUg5vdmVyc2l6ZUZyYW1lcxIoChBmcmFtZXNfNjRfb2N0ZXRzGAkgASgGUg5mcmFtZXM2NE9jdGV0cxI0ChdmcmFtZXNfNjVfdG9fMTI3X29jdGV0cxgKIAEoBlITZnJhbWVzNjVUbzEyN09jdGV0cxI2ChhmcmFtZXNfMTI4X3RvXzI1NV9vY3RldHMYCyABKAZSFGZyYW1lczEyOFRvMjU1T2N0ZXRzEjYKGGZyYW1lc18yNTZfdG9fNTExX29jdGV0cxgMIAEoBlIUZnJhbWVzMjU2VG81MTFPY3RldHMSOAoZZnJhbWVzXzUxMl90b18xMDIzX29jdGV0cxgNIAEoBlIVZnJhbWVzNTEyVG8xMDIzT2N0ZXRzEjoKGmZyYW1lc18xMDI0X3RvXzE1MThfb2N0ZXRzGA4gASgGUhZmcmFtZXMxMDI0VG8xNTE4T2N0ZXRzIvQCCiZHZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZRJCCgh1cHN0cmVhbRgBIAEoCzImLmV4dGVuc2lvbi5PbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SCHVwc3RyZWFtEkYKCmRvd25zdHJlYW0YAiABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgpkb3duc3RyZWFtEosBCiZvbWNpX2V0aGVybmV0X2ZyYW1lX2V4dGVuZGVkX3BtX2Zvcm1hdBgDIAEoDjI4LmV4dGVuc2lvbi5HZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZS5Gb3JtYXRSIW9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbUZvcm1hdCIwCgZGb3JtYXQSEgoOVEhJUlRZX1RXT19CSVQQABISCg5TSVhUWV9GT1VSX0JJVBABIpgBChJHZXRSeFBvd2VyUmVzcG9uc2USFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSHwoLZmFpbF9yZWFzb24YBCABKAlSCmZhaWxSZWFzb24SGQoIcnhfcG93ZXIYBSABKAFSB3J4UG93ZXIigwUKD0dldFZhbHVlUmVxdWVzdBI7CghkaXN0YW5jZRgBIAEoCzIdLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlcXVlc3RIAFIIZGlzdGFuY2USOwoHdW5pSW5mbxgCIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVxdWVzdEgAUgd1bmlJbmZvEkEKC29sdFBvcnRJbmZvGAMgASgLMh0uZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc0gAUgtvbHRQb3J0SW5mbxJJCg5vbnVPcHRpY2FsSW5mbxgEIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb0gAUg5vbnVPcHRpY2FsSW5mbxJSCg1ldGhCcmlkZ2VQb3J0GAUgASgLMiouZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlIAFINZXRoQnJpZGdlUG9ydBI9CgpmZWNIaXN0b3J5GAYgASgLMhsuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlIAFIKZmVjSGlzdG9yeRJCCgpvbnVQb25JbmZvGAcgASgLMiAuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVxdWVzdEgAUgpvbnVQb25JbmZvEkwKB29udUluZm8YCCABKAsyMC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdEgAUgdvbnVJbmZvEjgKB3J4UG93ZXIYCSABKAsyHC5leHRlbnNpb24uR2V0UnhQb3dlclJlcXVlc3RIAFIHcnhQb3dlckIJCgdyZXF1ZXN0IqoIChBHZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24SPAoIZGlzdGFuY2UYAyABKAsyHi5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXNwb25zZUgAUghkaXN0YW5jZRI8Cgd1bmlJbmZvGAQgASgLMiAuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZUgAUgd1bmlJbmZvEksKDHBvcnRDb3V0bmVycxgFIAEoCzIlLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZUgAUgxwb3J0Q291dG5lcnMSUQoOb251T3B0aWNhbEluZm8YBiABKAsyJy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZUgAUg5vbnVPcHRpY2FsSW5mbxJiChFldGhCcmlkZ2VQb3J0SW5mbxgHIAEoCzIyLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2VIAFIRZXRoQnJpZGdlUG9ydEluZm8SRQoKZmVjSGlzdG9yeRgIIAEoCzIjLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2VIAFIKZmVjSGlzdG9yeRJLCg5vbnVQb25Db3VudGVycxgJIAEoCzIhLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1Jlc3BvbnNlSABSDm9udVBvbkNvdW50ZXJzElUKC29udUNvdW50ZXJzGAogASgLMjEuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlSABSC29udUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXIiMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIirQEKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABEhUKEUlOVkFMSURfREVWSUNFX0lEEAISFQoRSU5WQUxJRF9QT1JUX1RZUEUQAxILCgdUSU1FT1VUEAQSFAoQSU5WQUxJRF9SRVFfVFlQRRAFEhIKDklOVEVSTkFMX0VSUk9SEAYSEgoOSU5WQUxJRF9ERVZJQ0UQB0IKCghyZXNwb25zZSJWCg9TZXRWYWx1ZVJlcXVlc3QSOAoMYWxhcm1fY29uZmlnGAEgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgkKB3JlcXVlc3Qi/gEKEFNldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbiIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiI0CgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQASJpChVTaW5nbGVHZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uR2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZUdldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UiaQoVU2luZ2xlU2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLlNldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlMrMBCglFeHRlbnNpb24SUgoLR2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USUgoLU2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCUgodb3JnLm9wZW5jb3JkLnZvbHRoYS5leHRlbnNpb25aMWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHRlbnNpb25KtHkKBxIFDgCfAwEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn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X21pYl9kYi5wcm90bxIEb21jaSI8ChBNaWJBdHRyaWJ1dGVEYXRhEhIKBG5hbWUYASABKAlSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIqABCg9NaWJJbnN0YW5jZURhdGESHwoLaW5zdGFuY2VfaWQYASABKA1SCmluc3RhbmNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIaCghtb2RpZmllZBgDIAEoCVIIbW9kaWZpZWQSNgoKYXR0cmlidXRlcxgEIAMoCzIWLm9tY2kuTWliQXR0cmlidXRlRGF0YVIKYXR0cmlidXRlcyJeCgxNaWJDbGFzc0RhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSMwoJaW5zdGFuY2VzGAIgAygLMhUub21jaS5NaWJJbnN0YW5jZURhdGFSCWluc3RhbmNlcyI+Cg1NYW5hZ2VkRW50aXR5EhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEhIKBG5hbWUYAiABKAlSBG5hbWUiMAoLTWVzc2FnZVR5cGUSIQoMbWVzc2FnZV90eXBlGAEgASgNUgttZXNzYWdlVHlwZSLQAgoNTWliRGV2aWNlRGF0YRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSJAoObGFzdF9zeW5jX3RpbWUYAyABKAlSDGxhc3RTeW5jVGltZRIiCg1taWJfZGF0YV9zeW5jGAQgASgNUgttaWJEYXRhU3luYxIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEiwKB2NsYXNzZXMYBiADKAsyEi5vbWNpLk1pYkNsYXNzRGF0YVIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyIuChFPcGVuT21jaUV2ZW50VHlwZSIZCgVUeXBlcxIQCgxzdGF0ZV9jaGFuZ2UQACJWCg1PcGVuT21jaUV2ZW50EjEKBHR5cGUYASABKA4yHS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb21jaUq3EwoGEgQPAEkBCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQwoJCgIICxIDEQBDCggKAQgSAxIAMQoJCgIIARIDEgAxCggKAQISAxQADQoKCgIEABIEFgAZAQoKCgMEAAESAxYIGAoLCgQEAAIAEgMXBBsKDQoFBAACAAQSBBcEFhoKDAoFBAACAAUSAxcECgoMCgUEAAIAARIDFwsPCgwKBQQAAgADEgMXGRoKCwoEBAACARIDGAQbCg0KBQQAAgEEEgQYBBcbCgwKBQQAAgEFEgMYBAoKDAoFBAACAQESAxgLEAoMCgUEAAIBAxIDGBkaCgoKAgQBEgQbACEBCgoKAwQBARIDGwgXCgsKBAQBAgASAxwEIAoNCgUEAQIABBIEHAQbGQoMCgUEAQIABRIDHAQKCgwKBQQBAgABEgMcCxYKDAoFBAECAAMSAxweHwoLCgQEAQIBEgMdBCAKDQoFBAECAQQSBB0EHCAKDAoFBAECAQUSAx0ECgoMCgUEAQIBARIDHQsSCgwKBQQBAgEDEgMdHh8KCwoEBAECAhIDHgQgCg0KBQQBAgIEEgQeBB0gCgwKBQQBAgIFEgMeBAoKDAoFBAECAgESAx4LEwoMCgUEAQICAxIDHh4fCgsKBAQBAgMSAyAELQoMCgUEAQIDBBIDIAQMCgwKBQQBAgMGEgMgDR0KDAoFBAECAwESAyAeKAoMCgUEAQIDAxIDICssCgoKAgQCEgQjACcBCgoKAwQCARIDIwgUCgsKBAQCAgASAyQEIAoNCgUEAgIABBIEJAQjFgoMCgUEAgIABRIDJAQKCgwKBQQCAgABEgMkCxMKDAoFBAICAAMSAyQeHwoLCgQEAgIBEgMmBCoKDAoFBAICAQQSAyYEDAoMCgUEAgIBBhIDJg0cCgwKBQQCAgEBEgMmHSYKDAoFBAICAQMSAyYoKQoKCgIEAxIEKQAsAQoKCgMEAwESAykIFQoLCgQEAwIAEgMqBBkKDQoFBAMCAAQSBCoEKRcKDAoFBAMCAAUSAyoECgoMCgUEAwIAARIDKgsTCgwKBQQDAgADEgMqFxgKCwoEBAMCARIDKwQZCg0KBQQDAgEEEgQrBCoZCgwKBQQDAgEFEgMrBAoKDAoFBAMCAQESAysLDwoMCgUEAwIBAxIDKxcYCgoKAgQEEgQuADABCgoKAwQEARIDLggTCgsKBAQEAgASAy8EHAoNCgUEBAIABBIELwQuFQoMCgUEBAIABRIDLwQKCgwKBQQEAgABEgMvCxcKDAoFBAQCAAMSAy8aGwoKCgIEBRIEMgA9AQoKCgMEBQESAzIIFQoLCgQEBQIAEgMzBCAKDQoFBAUCAAQSBDMEMhcKDAoFBAUCAAUSAzMECgoMCgUEBQIAARIDMwsUCgwKBQQFAgADEgMzHh8KCwoEBAUCARIDNAQgCg0KBQQFAgEEEgQ0BDMgCgwKBQQFAgEFEgM0BAoKDAoFBAUCAQESAzQLEgoMCgUEBQIBAxIDNB4fCgsKBAQFAgISAzUEIAoNCgUEBQICBBIENQQ0IAoMCgUEBQICBRIDNQQKCgwKBQQFAgIBEgM1CxkKDAoFBAUCAgMSAzUeHwoLCgQEBQIDEgM2BCAKDQoFBAUCAwQSBDYENSAKDAoFBAUCAwUSAzYECgoMCgUEBQIDARIDNgsYCgwKBQQFAgMDEgM2Hh8KCwoEBAUCBBIDNwQgCg0KBQQFAgQEEgQ3BDYgCgwKBQQFAgQFEgM3BAoKDAoFBAUCBAESAzcLEgoMCgUEBQIEAxIDNx4fCgsKBAQFAgUSAzkEJgoMCgUEBQIFBBIDOQQMCgwKBQQFAgUGEgM5DRkKDAoFBAUCBQESAzkaIQoMCgUEBQIFAxIDOSQlCgsKBAQFAgYSAzsEMAoMCgUEBQIGBBIDOwQMCgwKBQQFAgYGEgM7DRoKDAoFBAUCBgESAzsbKwoMCgUEBQIGAxIDOy4vCgsKBAQFAgcSAzwEKwoMCgUEBQIHBBIDPAQMCgwKBQQFAgcGEgM8DRgKDAoFBAUCBwESAzwZJgoMCgUEBQIHAxIDPCkqCgoKAgQGEgQ/AEMBCgoKAwQGARIDPwgZCgwKBAQGBAASBEAEQgUKDAoFBAYEAAESA0AJDgpACgYEBgQAAgASA0EIGSIxIEEgc3RhdGUgbWFjaGluZSBoYXMgdHJhbnNpdGlvbmVkIHRvIGEgbmV3IHN0YXRlCgoOCgcEBgQAAgABEgNBCBQKDgoHBAYEAAIAAhIDQRcYCgoKAgQHEgRFAEkBCgoKAwQHARIDRQgVCgsKBAQHAgASA0YEJQoNCgUEBwIABBIERgRFFwoMCgUEBwIABhIDRgQbCgwKBQQHAgABEgNGHCAKDAoFBAcCAAMSA0YjJAouCgQEBwIBEgNIBBQiISBhc3NvY2lhdGVkIGRhdGEsIGluIGpzb24gZm9ybWF0CgoNCgUEBwIBBBIESARGJQoMCgUEBwIBBRIDSAQKCgwKBQQHAgEBEgNICw8KDAoFBAcCAQMSA0gSE2IGcHJvdG8zCpgcCiF2b2x0aGFfcHJvdG9zL29tY2lfYWxhcm1fZGIucHJvdG8SBG9tY2kiPgoSQWxhcm1BdHRyaWJ1dGVEYXRhEhIKBG5hbWUYASABKAlSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIqQBChFBbGFybUluc3RhbmNlRGF0YRIfCgtpbnN0YW5jZV9pZBgBIAEoDVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBI4CgphdHRyaWJ1dGVzGAQgAygLMhgub21jaS5BbGFybUF0dHJpYnV0ZURhdGFSCmF0dHJpYnV0ZXMiYgoOQWxhcm1DbGFzc0RhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSNQoJaW5zdGFuY2VzGAIgAygLMhcub21jaS5BbGFybUluc3RhbmNlRGF0YVIJaW5zdGFuY2VzIkMKEkFsYXJtTWFuYWdlZEVudGl0eRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBISCgRuYW1lGAIgASgJUgRuYW1lIjUKEEFsYXJtTWVzc2FnZVR5cGUSIQoMbWVzc2FnZV90eXBlGAEgASgNUgttZXNzYWdlVHlwZSLqAgoPQWxhcm1EZXZpY2VEYXRhEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIuChNsYXN0X2FsYXJtX3NlcXVlbmNlGAMgASgNUhFsYXN0QWxhcm1TZXF1ZW5jZRIkCg5sYXN0X3N5bmNfdGltZRgEIAEoCVIMbGFzdFN5bmNUaW1lEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLgoHY2xhc3NlcxgGIAMoCzIULm9tY2kuQWxhcm1DbGFzc0RhdGFSB2NsYXNzZXMSQwoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIYLm9tY2kuQWxhcm1NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSOwoNbWVzc2FnZV90eXBlcxgIIAMoCzIWLm9tY2kuQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibAoSQWxhcm1PcGVuT21jaUV2ZW50EkIKBHR5cGUYASABKA4yLi5vbWNpLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASwEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBCBIDEQBDCgkKAggLEgMRAEMKCAoBCBIDEgAxCgkKAggBEgMSADEKCAoBAhIDFAANCgoKAgQAEgQXABoBCgoKAwQAARIDFwgaCgsKBAQAAgASAxgEGwoNCgUEAAIABBIEGAQXHAoMCgUEAAIABRIDGAQKCgwKBQQAAgABEgMYCw8KDAoFBAACAAMSAxgZGgoLCgQEAAIBEgMZBBsKDQoFBAAC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dG9zL2FkYXB0ZXIucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8iXQoMQ29yZUluc3RhbmNlEh8KC2luc3RhbmNlX2lkGAEgASgJUgppbnN0YW5jZUlkEiwKBmhlYWx0aBgCIAEoCzIULmhlYWx0aC5IZWFsdGhTdGF0dXNSBmhlYWx0aCI7Cg1Db3JlSW5zdGFuY2VzEioKBWl0ZW1zGAEgAygLMhQudm9sdGhhLkNvcmVJbnN0YW5jZVIFaXRlbXMiwAMKBlZvbHRoYRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEiwKCGFkYXB0ZXJzGAIgAygLMhAuYWRhcHRlci5BZGFwdGVyUghhZGFwdGVycxJGCg9sb2dpY2FsX2RldmljZXMYAyADKAsyHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlUg5sb2dpY2FsRGV2aWNlcxIoCgdkZXZpY2VzGAQgAygLMg4uZGV2aWNlLkRldmljZVIHZGV2aWNlcxI1CgxkZXZpY2VfdHlwZXMYBSADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVILZGV2aWNlVHlwZXMSNwoNZXZlbnRfZmlsdGVycxgHIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgxldmVudEZpbHRlcnMSPwoRb21jaV9taWJfZGF0YWJhc2UYHCADKAsyEy5vbWNpLk1pYkRldmljZURhdGFSD29tY2lNaWJEYXRhYmFzZRJFChNvbWNpX2FsYXJtX2RhdGFiYXNlGB0gAygLMhUub21jaS5BbGFybURldmljZURhdGFSEW9tY2lBbGFybURhdGFiYXNlSgQIBhAHMsczCg1Wb2x0aGFTZXJ2aWNlEkQKCUdldFZvbHRoYRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoOLnZvbHRoYS5Wb2x0aGEiD4LT5JMCCRIHL2FwaS92MRJdChFMaXN0Q29yZUluc3RhbmNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Db3JlSW5zdGFuY2VzIhmC0+STAhMSES9hcGkvdjEvaW5zdGFuY2VzElMKD0dldENvcmVJbnN0YW5jZRIKLmNvbW1vbi5JRBoULnZvbHRoYS5Db3JlSW5zdGFuY2UiHoLT5JMCGBIWL2FwaS92MS9pbnN0YW5jZXMve2lkfRJTCgxMaXN0QWRhcHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaES5hZGFwdGVyLkFkYXB0ZXJzIhiC0+STAhISEC9hcGkvdjEvYWRhcHRlcnMSbQoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gh4ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZXMiH4LT5JMCGRIXL2FwaS92MS9sb2dpY2FsX2RldmljZXMSYwoQR2V0TG9naWNhbERldmljZRIKLmNvbW1vbi5JRBodLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJuChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhwubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMSiAEKFEdldExvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBobLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0IjSC0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9Eo0BChdFbmFibGVMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEo8BChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjYiNC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2Rpc2FibGUSZAoWTGlzdExvZ2ljYWxEZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3MSgwEKHFVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93VGFibGUSHC5vcGVuZmxvd18xMy5GbG93VGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJyIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93czoBKhKEAQodVXBkYXRlTG9naWNhbERldmljZU1ldGVyVGFibGUSGy5vcGVuZmxvd18xMy5NZXRlck1vZFVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoIiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyczoBKhJnChdMaXN0TG9naWNhbERldmljZU1ldGVycxIKLmNvbW1vbi5JRBoTLm9wZW5mbG93XzEzLk1ldGVycyIrgtPkkwIlEiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVycxJ0ChtMaXN0TG9naWNhbERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIjCC0+STAioSKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSkwEKIVVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93R3JvdXBUYWJsZRIhLm9wZW5mbG93XzEzLkZsb3dHcm91cFRhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0iKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHM6ASoSTwoLTGlzdERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDy5kZXZpY2UuRGV2aWNlcyIXgtPkkwIREg8vYXBpL3YxL2RldmljZXMSTwoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmNvbW1vbi5JRHMiGYLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHMSVQoQUmVjb25jaWxlRGV2aWNlcxILLmNvbW1vbi5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGg4uZGV2aWNlLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEmIKEUZvcmNlRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiMqIS9hcGkvdjEvZGV2aWNlcy97aWR9L2ZvcmNlX2RlbGV0ZRJ4Cg1Eb3dubG9hZEltYWdlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI5iAIBgtPkkwIwIisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9OgEqEoUBChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI9iAIBgtPkkwI0EjIvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L3N0YXR1cxJ4ChBHZXRJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI2iAIBgtPkkwItEisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EmkKEkxpc3RJbWFnZURvd25sb2FkcxIKLmNvbW1vbi5JRBoWLmRldmljZS5JbWFnZURvd25sb2FkcyIviAIBgtPkkwImEiQvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMSewoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNogCAYLT5JMCLSorL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRKLAQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV91cGRhdGU6ASoSiQEKEVJldmVydEltYWdlVXBkYXRlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJGiAIBgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3JldmVydDoBKhKIAQoVRG93bmxvYWRJbWFnZVRvRGV2aWNlEiIuZGV2aWNlLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLoLT5JMCKBImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9kb3dubG9hZF9pbWFnZXMSdwoOR2V0SW1hZ2VTdGF0dXMSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9pbWFnZXNfc3RhdHVzEokBChlBYm9ydEltYWdlVXBncmFkZVRvRGV2aWNlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWJvcnRfdXBncmFkZV9pbWFnZXMSVgoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEuZGV2aWNlLk9udUltYWdlcyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9vbnVfaW1hZ2VzEnsKDUFjdGl2YXRlSW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiMYLT5JMCKyImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hY3RpdmF0ZV9pbWFnZXM6ASoSdwoLQ29tbWl0SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiL4LT5JMCKSIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9jb21taXRfaW1hZ2VzOgEqElAKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgouY29tbW9uLklEGhEuZGV2aWNlLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJVCg9MaXN0RGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93cxJlChRMaXN0RGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiKILT5JMCIhIgL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSXAoPTGlzdERldmljZVR5cGVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZGV2aWNlLkRldmljZVR5cGVzIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlX3R5cGVzElIKDUdldERldmljZVR5cGUSCi5jb21tb24uSUQaEi5kZXZpY2UuRGV2aWNlVHlwZSIhgtPkkwIbEhkvYXBpL3YxL2RldmljZV90eXBlcy97aWR9EkYKEFN0cmVhbVBhY2tldHNPdXQSFi5vcGVuZmxvd18xMy5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBEkUKEFJlY2VpdmVQYWNrZXRzSW4SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS5vcGVuZmxvd18xMy5QYWNrZXRJbiIAMAESSwoTUmVjZWl2ZUNoYW5nZUV2ZW50cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLm9wZW5mbG93XzEzLkNoYW5nZUV2ZW50IgAwARJdChFDcmVhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiIILT5JMCGiIVL2FwaS92MS9ldmVudF9maWx0ZXJzOgEqElUKDkdldEV2ZW50RmlsdGVyEgouY29tbW9uLklEGhMuZXZlbnQuRXZlbnRGaWx0ZXJzIiKC0+STAhwSGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9EmIKEVVwZGF0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaEi5ldmVudC5FdmVudEZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfToBKhJjChFEZWxldGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9El4KEExpc3RFdmVudEZpbHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5ldmVudC5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLmRldmljZS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhguZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSTQoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEqEl4KC0dldEV4dFZhbHVlEhkuZXh0ZW5zaW9uLlZhbHVlU3BlY2lmaWVyGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcyIb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vCISBrYECLgECgo4CgQGAAI/Ega8BATBBAUaKCBvbWNpIHN0YXJ0IGFuZCBzdG9wIGNsaSBpbXBsZW1lbnRhdGlvbgoKDQoFBgACPwESBLwECBsKDQoFBgACPwISBLwEHDAKDQoFBgACPwMSBLwEOksKDwoFBgACPwQSBr0ECMAECgoTCgkGAAI/BLDKvCISBr0ECMAEClACYgZwcm90bzMKgT0KIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvEgxjb3JlX2FkYXB0ZXIaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGh12b2x0aGFfcHJvdG9zL29tY2lfdGVzdC5wcm90byJuChNBZGFwdGVyUmVnaXN0cmF0aW9uEioKB2FkYXB0ZXIYASABKAsyEC5hZGFwdGVyLkFkYXB0ZXJSB2FkYXB0ZXISKwoGZFR5cGVzGAIgASgLMhMuZGV2aWNlLkRldmljZVR5cGVzUgZkVHlwZXMikgEKEUNoaWxkRGV2aWNlRmlsdGVyEhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSIwoNc2VyaWFsX251bWJlchgCIAEoCVIMc2VyaWFsTnVtYmVyEhUKBm9udV9pZBgDIAEoDVIFb251SWQSJAoOcGFyZW50X3BvcnRfbm8YBCABKA1SDHBhcmVudFBvcnRObyJxCgpQb3J0RmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIyCglwb3J0X3R5cGUYAyABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIIcG9ydFR5cGUi+AEKD0RldmljZURpc2NvdmVyeRIbCglwYXJlbnRfaWQYASABKAlSCHBhcmVudElkEiQKDnBhcmVudF9wb3J0X25vGAIgASgNUgxwYXJlbnRQb3J0Tm8SKgoRY2hpbGRfZGV2aWNlX3R5cGUYAyABKAlSD2NoaWxkRGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAQgASgNUgljaGFubmVsSWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIjCg1zZXJpYWxfbnVtYmVyGAYgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAcgASgNUgVvbnVJZCLTAQoRRGV2aWNlU3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwYXJlbnRfZGV2aWNlX2lkGAIgASgJUg5wYXJlbnREZXZpY2VJZBI5CgtvcGVyX3N0YXR1cxgDIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEjwKC2Nvbm5fc3RhdHVzGAQgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSCmNvbm5TdGF0dXMisAEKCVBvcnRTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCXBvcnRfdHlwZRgCIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZRIXCgdwb3J0X25vGAMgASgNUgZwb3J0Tm8SOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyKTAQoPUG9ydFN0YXRlRmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQcG9ydF90eXBlX2ZpbHRlchgCIAEoDVIOcG9ydFR5cGVGaWx0ZXISOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyJTCghQYWNrZXRJbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSFgoGcGFja2V0GAMgASgMUgZwYWNrZXQigwEKCVBhY2tldE91dBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEiQKDmVncmVzc19wb3J0X25vGAIgASgNUgxlZ3Jlc3NQb3J0Tm8SMwoGcGFja2V0GAMgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSBnBhY2tldCJDCgxEZXZpY2VSZWFzb24SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIWCgZyZWFzb24YAiABKAlSBnJlYXNvbiLOAQoJQnVsa0Zsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIoCgVmbG93cxgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgVmbG93cxIvCgZncm91cHMYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIuEBChBJbmNyZW1lbnRhbEZsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIuCgVmbG93cxgCIAEoCzIYLm9wZW5mbG93XzEzLkZsb3dDaGFuZ2VzUgVmbG93cxI1CgZncm91cHMYAyABKAsyHS5vcGVuZmxvd18xMy5GbG93R3JvdXBDaGFuZ2VzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIl4KDVBtQ29uZmlnc0luZm8SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIwCgpwbV9jb25maWdzGAIgASgLMhEuZGV2aWNlLlBtQ29uZmlnc1IJcG1Db25maWdzIogBChBTd2l0Y2hDYXBhYmlsaXR5EikKBGRlc2MYASABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYAiABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcyJrChRJbWFnZURvd25sb2FkTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKwoFaW1hZ2UYAiABKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaW1hZ2UiYwoIT01DSVRlc3QSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEi8KB3JlcXVlc3QYAiABKAsyFS5vbWNpLk9tY2lUZXN0UmVxdWVzdFIHcmVxdWVzdCJ2ChRTaW11bGF0ZUFsYXJtTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USNgoHcmVxdWVzdBgCIAEoCzIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdFIHcmVxdWVzdCK2AQoSR2V0RXh0VmFsdWVNZXNzYWdlEjMKDXBhcmVudF9kZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgxwYXJlbnREZXZpY2USMQoMY2hpbGRfZGV2aWNlGAIgASgLMg4uZGV2aWNlLkRldmljZVILY2hpbGREZXZpY2USOAoKdmFsdWVfdHlwZRgDIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIJdmFsdWVUeXBlImcKElNldEV4dFZhbHVlTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKQoFdmFsdWUYAyABKAsyEy5leHRlbnNpb24uVmFsdWVTZXRSBXZhbHVlQlgKIG9yZy5vcGVuY29yZC52b2x0aGEuY29yZV9hZGFwdGVyWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vY29yZV9hZGFwdGVySt0kCgcSBQAAggEBCggKAQwSAwAAEgoICgEIEgMCAEsKCQoCCAsSAwIASwoICgEIEgMDADkKCQoCCAESAwMAOQoJCgIDABIDBQAkCgkKAgMBEgMGACQKCQoCAwISAwcAKQoJCgIDAxIDCAAlCgkKAgMEEgMJACQKCQoCAwUSAwoAKAoJCgIDBhIDCwAnCggKAQISAw0AFQojCgIEABIEEQAUATIXIENvcmUtQWRhcHRlciBtZXNzYWdlcwoKCgoDBAABEgMRCBsKCwoEBAACABIDEgQhCg0KBQQAAgAEEgQSBBEdCgwKBQQAAgAGEgMSBBMKDAoFBAACAAESAxIUGwoMCgUEAAIAAxIDEh8gCgsKBAQAAgESAxMEIgoNCgUEAAIBBBIEEwQSIQoMCgUEAAIBBhIDEwQWCgwKBQQAAgEBEgMTFx0KDAoFBAACAQMSAxMg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b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2V2ZW50cy5wcm90bzKUEwoOQWRhcHRlclNlcnZpY2USOwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzEjUKC0Fkb3B0RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI5Cg9SZWNvbmNpbGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERlbGV0ZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNwoNRGlzYWJsZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOUmVFbmFibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDFJlYm9vdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOU2VsZlRlc3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKEEdldE9mcERldmljZUluZm8SDi5kZXZpY2UuRGV2aWNlGh4uY29yZV9hZGFwdGVyLlN3aXRjaENhcGFiaWxpdHkSOQoPQ2hpbGREZXZpY2VMb3N0Eg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIyCgpFbmFibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLRGlzYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCg9VcGRhdGVGbG93c0J1bGsSFy5jb3JlX2FkYXB0ZXIuQnVsa0Zsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElIKGFVwZGF0ZUZsb3dzSW5jcmVtZW50YWxseRIeLmNvcmVfYWRhcHRlci5JbmNyZW1lbnRhbEZsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkAKDVNlbmRQYWNrZXRPdXQSFy5jb3JlX2FkYXB0ZXIuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkUKDlVwZGF0ZVBtQ29uZmlnEhsuY29yZV9hZGFwdGVyLlBtQ29uZmlnc0luZm8aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUwoQRG93bmxvYWRPbnVJbWFnZRIiLmRldmljZS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEkwKEUdldE9udUltYWdlU3RhdHVzEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEk8KFEFib3J0T251SW1hZ2VVcGdyYWRlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEi0KDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLmRldmljZS5PbnVJbWFnZXMSSwoQQWN0aXZhdGVPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJJCg5Db21taXRPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPCg1Eb3dubG9hZEltYWdlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJYChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNDYW5jZWxJbWFnZURvd25sb2FkEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNBY3RpdmF0ZUltYWdlVXBkYXRlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJTChFSZXZlcnRJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESOwoNU3RhcnRPbWNpVGVzdBIWLmNvcmVfYWRhcHRlci5PTUNJVGVzdBoSLm9tY2kuVGVzdFJlc3BvbnNlEkoKDVNpbXVsYXRlQWxhcm0SIi5jb3JlX2FkYXB0ZXIuU2ltdWxhdGVBbGFybU1lc3NhZ2UaFS5jb21tb24uT3BlcmF0aW9uUmVzcBI7Cg1TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPQoPVW5TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoLR2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuR2V0RXh0VmFsdWVNZXNzYWdlGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcxJHCgtTZXRFeHRWYWx1ZRIgLmNvcmVfYWRhcHRlci5TZXRFeHRWYWx1ZU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoOR2V0U2luZ2xlVmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USVQoOU2V0U2luZ2xlVmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCdAojb3JnLm9wZW5jb3JkLnZvbHRoYS5hZGFwdGVyX3NlcnZpY2VCFFZvbHRoYUFk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ZXZpY2UgaXMgZ2V0dGluZyBkZWxldGVkIGZyb20gYWRhcHRlciBzdGF0ZQoKDgoHBAAEAAIDARIDEggdCg4KBwQABAACAwISAxIgIQpTCgYEAAQAAgQSAxQIKxpEIFRoZSBkZXZpY2UgaXMgZGVsZXRlZCBmcm9tIGFkYXB0ZXIgYW5kIGlzIGdldHRpbmcgZGVsZXRlZCBpbiBjb3JlLgoKDgoHBAAEAAIEARIDFAgmCg4KBwQABAACBAISAxQpKgpGCgYEAAQAAgUSAxYIGho3IFN0YXRlIHRvIHJlcHJlc2VudCB0aGF0IHRoZSBkZXZpY2UgZGVsZXRpb24gaXMgZmFpbGVkCgoOCgcEAAQAAgUBEgMWCBUKDgoHBAAEAAIFAhIDFhgZCkEKBgQABAACBhIDGAQeGjIgU3RhdGUgdG8gcmVwcmVzZW50IHRoYXQgcmVjb25jaWxlIGlzIGluIHByb2dyZXNzCgoOCgcEAAQAAgYBEgMYBBkKDgoHBAAEAAIGAhIDGBwdCgsKBAQAAgASAxoEHgoNCgUEAAIABBIEGgQZBQoMCgUEAAIABhIDGgQJCgwKBQQAAgABEgMaChkKDAoFBAACAAMSAxocHWIGcHJvdG8zCukbCiF2b2x0aGFfcHJvdG9zL2NvcmVfc2VydmljZXMucHJvdG8SDGNvcmVfc2VydmljZRobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGiB2b2x0aGFfcHJvdG9zL2NvcmVfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzL5CwoLQ29yZVNlcnZpY2USOwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzEkwKD1JlZ2lzdGVyQWRhcHRlchIhLmNvcmVfYWRhcHRlci5BZGFwdGVyUmVnaXN0cmF0aW9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERldmljZVVwZGF0ZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLUG9ydENyZWF0ZWQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJJChBQb3J0c1N0YXRlVXBkYXRlEh0uY29yZV9hZGFwdGVyLlBvcnRTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI0Cg5EZWxldGVBbGxQb3J0cxIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1HZXREZXZpY2VQb3J0EhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDC5kZXZpY2UuUG9ydBIsCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMSTAoRRGV2aWNlU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQQoURGV2aWNlUE1Db25maWdVcGRhdGUSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKE0NoaWxkRGV2aWNlRGV0ZWN0ZWQSHS5jb3JlX2FkYXB0ZXIuRGV2aWNlRGlzY292ZXJ5Gg4uZGV2aWNlLkRldmljZRI2ChBDaGlsZERldmljZXNMb3N0EgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjoKFENoaWxkRGV2aWNlc0RldGVjdGVkEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EicKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2USQQoOR2V0Q2hpbGREZXZpY2USHy5jb3JlX2FkYXB0ZXIuQ2hpbGREZXZpY2VGaWx0ZXIaDi5kZXZpY2UuRGV2aWNlEi4KD0dldENoaWxkRGV2aWNlcxIKLmNvbW1vbi5JRBoPLmRldmljZS5EZXZpY2VzEj4KDFNlbmRQYWNrZXRJbhIWLmNvcmVfYWRhcHRlci5QYWNrZXRJbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChJEZXZpY2VSZWFzb25VcGRhdGUSGi5jb3JlX2FkYXB0ZXIuRGV2aWNlUmVhc29uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKD1BvcnRTdGF0ZVVwZGF0ZRIXLmNvcmVfYWRhcHRlci5Qb3J0U3RhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOwoVUmVjb25jaWxlQ2hpbGREZXZpY2VzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek0KHkdldENoaWxkRGV2aWNlV2l0aFByb3h5QWRkcmVzcxIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzGg4uZGV2aWNlLkRldmljZRIzCghHZXRQb3J0cxIYLmNvcmVfYWRhcHRlci5Qb3J0RmlsdGVyGg0uZGV2aWNlLlBvcnRzEk4KE0NoaWxkcmVuU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTVXBkYXRlSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QmsKIG9yZy5vcGVuY29yZC52b2x0aGEuY29yZV9zZXJ2aWNlQhFWb2x0aGFDb3JlU2VydmljZVo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2NvcmVfc2VydmljZUqxDQoGEgQAACwBCggKAQwSAwAAEgoICgEIEgMCAEsKCQoCCAsSAwIASwoICgEIEgMDADkKCQoCCAESAwMAOQoICgEIEgMEADIKCQoCCAgSAwQAMgoICgECEgMGABUKCQoCAwASAwgAJQoJCgIDARIDCQAqCgkKAgMCEgMKACQKCQoCAwMSAwsAJAoJCgIDBBIDDAAkCp8BCgIGABIEEAAsARqSASBUaGUgQ29yZVNlcnZpY2UgaXMgYSBnUlBDIHNlcnZpY2UgaW1wbGVtZW50ZWQgYnkgdGhlIFZvbHRoYSBSVy1Db3JlIGZvciB0aGUKIHNvbGUgcHVycG9zZSBvZiBzZXJ2aW5nIHJlcXVlc3RzL3VwZGF0ZXMgZnJvbSB0aGUgVm9sdGhhIGFkYXB0ZXJzLiAKCgoKAwYAARIDEAgTCiYKBAYAAgASAxIITRoZCSBpbiBjb3JlUHJveHkgaW50ZXJmYWNlCgoMCgUGAAIAARIDEgwbCgwKBQYAAgAC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SW50ZXJmYWNzIsAECg5JbnRlcmZhY2VTdGF0ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHR5cGUYAiABKAlSBHR5cGUSRwoMYWRtaW5fc3RhdHVzGAMgASgOMiQuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5BZG1pblN0YXR1c1R5cGVSC2FkbWluU3RhdHVzEkQKC29wZXJfc3RhdHVzGAQgASgOMiMuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5PcGVyU3RhdHVzVHlwZVIKb3BlclN0YXR1cxIfCgtsYXN0X2NoYW5nZRgFIAEoCVIKbGFzdENoYW5nZRIZCghpZl9pbmRleBgGIAEoBVIHaWZJbmRleBIhCgxwaHlzX2FkZHJlc3MYByABKAlSC3BoeXNBZGRyZXNzEiYKD2hpZ2hlcl9sYXllcl9pZhgIIAMoCVINaGlnaGVyTGF5ZXJJZhIkCg5sb3dlcl9sYXllcl9pZhgJIAMoCVIMbG93ZXJMYXllcklmEhQKBXNwZWVkGAogASgEUgVzcGVlZCJCCg9BZG1pblN0YXR1c1R5cGUSDgoKQURNSU5fRE9XThAAEhEKDUFETUlOX1RFU1RJTkcQARIMCghBRE1JTl9VUBACInAKDk9wZXJTdGF0dXNUeXBlEgsKB0RPUk1BTlQQABIUChBMT1dFUl9MQVlFUl9ET1dOEAESCwoHVU5LTk9XThACEgsKB1RFU1RJTkcQAxIGCgJVUBAEEggKBERPV04QBRIPCgtOT1RfUFJFU0VOVBAGQkgKGG9yZy5vcGVuY29yZC52b2x0aGEuaWV0ZlosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2lldGZK0A8KBhIEAAA1AQoICgEMEgMAABIKCAoBCBIDAgBDCgkKAggLEgMCAEMKCAoBCBIDAwAxCgkKAggBEgMDADEKCAoBAhIDBQANCgoKAgQAEgQHAAkBCgoKAwQAARIDBwgSCgsKBAQAAgASAwgEKgoMCgUEAAIABBIDCAQMCgwKBQQAAgAGEgMIDRYKDAoFBAACAAESAwgXJQoMCgUEAAIAAxIDCCgpCgoKAgQBEgQKABUBCgoKAwQBARIDCggRCgsKBAQBAgASAwsEFQoNCgUEAQIABBIECwQKEwoMCgUEAQIABRIDCwQKCgwKBQQB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b2ZpbGUucHJvdG8SDHRlY2hfcHJvZmlsZRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byKAAgoPU2NoZWR1bGVyQ29uZmlnEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhI/Cg1hZGRpdGlvbmFsX2J3GAIgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAMgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBCABKAdSBndlaWdodBJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kiuAEKElRyYWZmaWNTaGFwaW5nSW5mbxIQCgNjaXIYASABKAdSA2NpchIQCgNjYnMYAiABKAdSA2NicxIQCgNwaXIYAyABKAdSA3BpchIQCgNwYnMYBCABKAdSA3BicxIQCgNnaXIYBSABKAdSA2dpchJICgphZGRfYndfaW5kGAYgASgOMioudGVjaF9wcm9maWxlLkluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25SCGFkZEJ3SW5kIp0CChBUcmFmZmljU2NoZWR1bGVyEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoB1IHYWxsb2NJZBI7CglzY2hlZHVsZXIYAyABKAsyHS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQ29uZmlnUglzY2hlZHVsZXISUgoUdHJhZmZpY19zaGFwaW5nX2luZm8YBCABKAsyIC50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NoYXBpbmdJbmZvUhJ0cmFmZmljU2hhcGluZ0luZm8SJgoPdGVjaF9wcm9maWxlX2lkGAUgASgHUg10ZWNoUHJvZmlsZUlkIroBChFUcmFmZmljU2NoZWR1bGVycxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJFCg50cmFmZmljX3NjaGVkcxgDIAMoCzIeLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVyUg10cmFmZmljU2NoZWRzIjYKFVRhaWxEcm9wRGlzY2FyZENvbmZpZxIdCgpxdWV1ZV9zaXplGAEgASgHUglxdWV1ZVNpemUihQEKEFJlZERpc2NhcmRDb25maWcSIwoNbWluX3RocmVzaG9sZBgBIAEoB1IMbWluVGhyZXNob2xkEiMKDW1heF90aHJlc2hvbGQYAiABKAdSDG1heFRocmVzaG9sZBInCg9tYXhfcHJvYmFiaWxpdHkYAyABKAdSDm1heFByb2JhYmlsaXR5IrMBChFXUmVkRGlzY2FyZENvbmZpZxI0CgVncmVlbhgBIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgVncmVlbhI2CgZ5ZWxsb3cYAiABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IGeWVsbG93EjAKA3JlZBgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgNyZWQi6AIKDURpc2NhcmRDb25maWcSQgoOZGlzY2FyZF9wb2xpY3kYASABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJeChh0YWlsX2Ryb3BfZGlzY2FyZF9jb25maWcYAiABKAsyIy50ZWNoX3Byb2ZpbGUuVGFpbERyb3BEaXNjYXJkQ29uZmlnSABSFXRhaWxEcm9wRGlzY2FyZENvbmZpZxJOChJyZWRfZGlzY2FyZF9jb25maWcYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ0gAUhByZWREaXNjYXJkQ29uZmlnElEKE3dyZWRfZGlzY2FyZF9jb25maWcYBCABKAsyHy50ZWNoX3Byb2ZpbGUuV1JlZERpc2NhcmRDb25maWdIAFIRd3JlZERpc2NhcmRDb25maWdCEAoOZGlzY2FyZF9jb25maWcipQMKDFRyYWZmaWNRdWV1ZRI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhkKCHBiaXRfbWFwGAMgASgJUgdwYml0TWFwEiUKDmFlc19lbmNyeXB0aW9uGAQgASgIUg1hZXNFbmNyeXB0aW9uEkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeRIaCghwcmlvcml0eRgGIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJCCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnItoBCg1UcmFmZmljUXVldWVzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkEKDnRyYWZmaWNfcXVldWVzGAYgAygLMhoudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZVINdHJhZmZpY1F1ZXVlcxImCg90ZWNoX3Byb2ZpbGVfaWQYByABKAdSDXRlY2hQcm9maWxlSWQiZgoPSW5zdGFuY2VDb250cm9sEhAKA29udRgBIAEoCVIDb251EhAKA3VuaRgCIAEoCVIDdW5pEi8KFG1heF9nZW1fcGF5bG9hZF9zaXplGAMgASgJUhFtYXhHZW1QYXlsb2FkU2l6ZSKCAgoLUVRocmVzaG9sZHMSIQoMcV90aHJlc2hvbGQxGAEgASgNUgtxVGhyZXNob2xkMRIhCgxxX3RocmVzaG9sZDIYAiABKA1SC3FUaHJlc2hvbGQyEiEKDHFfdGhyZXNob2xkMxgDIAEoDVILcVRocmVzaG9sZDMSIQoMcV90aHJlc2hvbGQ0GAQgASgNUgtxVGhyZXNob2xkNBIhCgxxX3RocmVzaG9sZDUYBSABKA1SC3FUaHJlc2hvbGQ1EiEKDHFfdGhyZXNob2xkNhgGIAEoDVILcVRocmVzaG9sZDYSIQoMcV90aHJlc2hvbGQ3GAcgASgNUgtxVGhyZXNob2xkNyKzBQoRR2VtUG9ydEF0dHJpYnV0ZXMSHQoKZ2VtcG9ydF9pZBgBIAEoB1IJZ2VtcG9ydElkEhwKCm1heF9xX3NpemUYAiABKAlSCG1heFFTaXplEhkKCHBiaXRfbWFwGAMgASgJUgdwYml0TWFwEiUKDmFlc19lbmNyeXB0aW9uGAQgASgJUg1hZXNFbmNyeXB0aW9uEksKEXNjaGVkdWxpbmdfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSEHNjaGVkdWxpbmdQb2xpY3kSHQoKcHJpb3JpdHlfcRgGIAEoB1IJcHJpb3JpdHlREhYKBndlaWdodBgHIAEoB1IGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GAggASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSRQoOZGlzY2FyZF9jb25maWcYCSABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZxJHChFkaXNjYXJkX2NvbmZpZ192MhgOIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg9kaXNjYXJkQ29uZmlnVjISIQoMaXNfbXVsdGljYXN0GAogASgJUgtpc011bHRpY2FzdBIoChBtdWx0aWNhc3RfZ2VtX2lkGAsgASgHUg5tdWx0aWNhc3RHZW1JZBI9ChtkeW5hbWljX2FjY2Vzc19jb250cm9sX2xpc3QYDCABKAlSGGR5bmFtaWNBY2Nlc3NDb250cm9sTGlzdBI7ChpzdGF0aWNfYWNjZXNzX2NvbnRyb2xfbGlzdBgNIAEoCVIXc3RhdGljQWNjZXNzQ29udHJvbExpc3QiogIKE1NjaGVkdWxlckF0dHJpYnV0ZXMSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgNUgdhbGxvY0lkEj8KDWFkZGl0aW9uYWxfYncYAyABKA4yGi50ZWNoX3Byb2ZpbGUuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYBCABKAdSCHByaW9yaXR5EhYKBndlaWdodBgFIAEoB1IGd2VpZ2h0EkQKDnFfc2NoZWRfcG9saWN5GAYgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSDHFTY2hlZFBvbGljeSLABgoTRVBPTlF1ZXVlQXR0cmlidXRlcxIcCgptYXhfcV9zaXplGAEgASgJUghtYXhRU2l6ZRIZCghwYml0X21hcBgCIAEoCVIHcGJpdE1hcBIdCgpnZW1wb3J0X2lkGAMgASgNUglnZW1wb3J0SWQSJQoOYWVzX2VuY3J5cHRpb24YBCABKAlSDWFlc0VuY3J5cHRpb24SIQoMdHJhZmZpY190eXBlGAUgASgJUgt0cmFmZmljVHlwZRI0ChZ1bnNvbGljaXRlZF9ncmFudF9zaXplGAYgASgNUhR1bnNvbGljaXRlZEdyYW50U2l6ZRIpChBub21pbmFsX2ludGVydmFsGAcgASgNUg9ub21pbmFsSW50ZXJ2YWwSMgoVdG9sZXJhdGVkX3BvbGxfaml0dGVyGAggASgNUhN0b2xlcmF0ZWRQb2xsSml0dGVyEj4KG3JlcXVlc3RfdHJhbnNtaXNzaW9uX3BvbGljeRgJIAEoDVIZcmVxdWVzdFRyYW5zbWlzc2lvblBvbGljeRIcCgpudW1fcV9zZXRzGAogASgNUghudW1RU2V0cxI8CgxxX3RocmVzaG9sZHMYCyABKAsyGS50ZWNoX3Byb2ZpbGUuUVRocmVzaG9sZHNSC3FUaHJlc2hvbGRzEksKEXNjaGVkdWxpbmdfcG9saWN5GAwgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSEHNjaGVkdWxpbmdQb2xpY3kSHQoKcHJpb3JpdHlfcRgNIAEoDVIJcHJpb3JpdHlREhYKBndlaWdodBgOIAEoDVIGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GA8gASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSRQoOZGlzY2FyZF9jb25maWcYECABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZxJHChFkaXNjYXJkX2NvbmZpZ192MhgRIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg9kaXNjYXJkQ29uZmlnVjIirgQKC1RlY2hQcm9maWxlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIhCgxwcm9maWxlX3R5cGUYAyABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBCABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBSABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSRAoMdXNfc2NoZWR1bGVyGAYgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC3VzU2NoZWR1bGVyEkQKDGRzX3NjaGVkdWxlchgHIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgtkc1NjaGVkdWxlchJnCiB1cHN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgIIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IcdXBzdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdBJrCiJkb3duc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAkgAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUh5kb3duc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QiwwMKD0Vwb25UZWNoUHJvZmlsZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SIQoMcHJvZmlsZV90eXBlGAMgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAQgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAUgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEiEKDHBhY2thZ2VfdHlwZRgGIAEoCVILcGFja2FnZVR5cGUSZAoddXBzdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYByADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IadXBzdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QSaAofZG93bnN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgIIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhxkb3duc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0IusEChNUZWNoUHJvZmlsZUluc3RhbmNlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEiEKDHByb2ZpbGVfdHlwZRgEIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgFIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgGIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBJECgx1c19zY2hlZHVsZXIYByABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILdXNTY2hlZHVsZXISRAoMZHNfc2NoZWR1bGVyGAggASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC2RzU2NoZWR1bGVyEmcKIHVwc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAkgAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUhx1cHN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0EmsKImRvd25zdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCiADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHmRvd25zdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdCKbBAoXRXBvblRlY2hQcm9maWxlSW5zdGFuY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISIQoMcHJvZmlsZV90eXBlGAQgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAUgASgNUgtudW1HZW1Qb3J0cxIZCghhbGxvY19pZBgGIAEoDVIHYWxsb2NJZBJIChBpbnN0YW5jZV9jb250cm9sGAcgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEiEKDHBhY2thZ2VfdHlwZRgIIAEoCVILcGFja2FnZVR5cGUSZAoddXBzdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCSADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IadXBzdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QSaAofZG93bnN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgKIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhxkb3duc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0IrsBChBSZXNvdXJjZUluc3RhbmNlEhMKBXRwX2lkGAEgASgNUgR0cElkEiEKDHByb2ZpbGVfdHlwZRgCIAEoCVILcHJvZmlsZVR5cGUSMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIZCghhbGxvY19pZBgEIAEoDVIHYWxsb2NJZBIfCgtnZW1wb3J0X2lkcxgFIAMoDVIKZ2VtcG9ydElkcyo8CglEaXJlY3Rpb24SDAoIVVBTVFJFQU0QABIOCgpET1dOU1RSRUFNEAESEQoNQklESVJFQ1RJT05BTBACKjsKEFNjaGVkdWxpbmdQb2xpY3kSBwoDV1JSEAASEgoOU3RyaWN0UHJpb3JpdHkQARIKCgZIeWJyaWQQAipuCgxBZGRpdGlvbmFsQlcSFQoRQWRkaXRpb25hbEJXX05vbmUQABITCg9BZGRpdGlvbmFsQldfTkEQARIbChdBZGRpdGlvbmFsQldfQmVzdEVmZm9ydBACEhUKEUFkZGl0aW9uYWxCV19BdXRvEAMqPwoNRGlzY2FyZFBvbGljeRIMCghUYWlsRHJvcBAAEg0KCVdUYWlsRHJvcBABEgcKA1JlZBACEggKBFdSZWQQAyqcAQocSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbhIlCiFJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX05vbmUQABIoCiRJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Fzc3VyZWQQARIrCidJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Jlc3RFZmZvcnQQAkJYCiBvcmcub3BlbmNvcmQudm9sdGhhLnRlY2hfcHJvZmlsZVo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3RlY2hfcHJvZmlsZUrIZAoHEgUOAP8BAQrRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQgSAxAASwoJCgIICxIDEABLCggKAQgS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ZXJJbmQSPgoMb251X2Rpc2NfaW5kGAQgASgLMhoub3Blbm9sdC5PbnVEaXNjSW5kaWNhdGlvbkgAUgpvbnVEaXNjSW5kEjEKB29udV9pbmQYBSABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25IAFIGb251SW5kEjQKCG9tY2lfaW5kGAYgASgLMhcub3Blbm9sdC5PbWNpSW5kaWNhdGlvbkgAUgdvbWNpSW5kEjQKB3BrdF9pbmQYByABKAsyGS5vcGVub2x0LlBhY2tldEluZGljYXRpb25IAFIGcGt0SW5kEjgKCnBvcnRfc3RhdHMYCCABKAsyFy5vcGVub2x0LlBvcnRTdGF0aXN0aWNzSABSCXBvcnRTdGF0cxI4CgpmbG93X3N0YXRzGAkgASgLMhcub3Blbm9sdC5GbG93U3RhdGlzdGljc0gAUglmbG93U3RhdHMSNwoJYWxhcm1faW5kGAogASgLMhgub3Blbm9sdC5BbGFybUluZGljYXRpb25IAFIIYWxhcm1JbmRCBgoEZGF0YSLrDQoPQWxhcm1JbmRpY2F0aW9uEjEKB2xvc19pbmQYASABKAsyFi5vcGVub2x0Lkxvc0luZGljYXRpb25IAFIGbG9zSW5kEkQKDmR5aW5nX2dhc3BfaW5kGAIgASgLMhwub3Blbm9sdC5EeWluZ0dhc3BJbmRpY2F0aW9uSABSDGR5aW5nR2FzcEluZBJBCg1vbnVfYWxhcm1faW5kGAMgASgLMhsub3Blbm9sdC5PbnVBbGFybUluZGljYXRpb25IAFILb251QWxhcm1JbmQSVwoUb251X3N0YXJ0dXBfZmFpbF9pbmQYBCABKAsyJC5vcGVub2x0Lk9udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTdGFydHVwRmFpbEluZBJaChZvbnVfc2lnbmFsX2RlZ3JhZGVfaW5kGAUgASgLMiMub3Blbm9sdC5PbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbkgAUhNvbnVTaWduYWxEZWdyYWRlSW5kElsKF29udV9kcmlmdF9vZl93aW5kb3dfaW5kGAYgASgLMiMub3Blbm9sdC5PbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbkgAUhNvbnVEcmlmdE9mV2luZG93SW5kElQKEW9udV9sb3NzX29tY2lfaW5kGAcgASgLMicub3Blbm9sdC5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb25IAFIOb251TG9zc09tY2lJbmQSVwoUb251X3NpZ25hbHNfZmFpbF9pbmQYCCABKAsyJC5vcGVub2x0Lk9udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTaWduYWxzRmFpbEluZBJPCgxvbnVfdGl3aV9pbmQYCSABKAsyKy5vcGVub2x0Lk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmdIAFIKb251VGl3aUluZBJgChdvbnVfYWN0aXZhdGlvbl9mYWlsX2luZBgKIAEoCzInLm9wZW5vbHQuT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUFjdGl2YXRpb25GYWlsSW5kEmAKGG9udV9wcm9jZXNzaW5nX2Vycm9yX2luZBgLIAEoCzIlLm9wZW5vbHQuT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbkgAUhVvbnVQcm9jZXNzaW5nRXJyb3JJbmQSZQoZb251X2xvc3Nfb2Zfc3luY19mYWlsX2luZBgMIAEoCzIqLm9wZW5vbHQuT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUxvc3NPZlN5bmNGYWlsSW5kElUKFW9udV9pdHVfcG9uX3N0YXRzX2luZBgNIAEoCzIhLm9wZW5vbHQuT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uSABSEW9udUl0dVBvblN0YXRzSW5kEmwKHG9udV9kZWFjdGl2YXRpb25fZmFpbHVyZV9pbmQYDiABKAsyKS5vcGVub2x0Lk9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSGW9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmQSVwoVb251X3JlbW90ZV9kZWZlY3RfaW5kGA8gASgLMiIub3Blbm9sdC5PbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uSABSEm9udVJlbW90ZURlZmVjdEluZBJzChxvbnVfbG9zc19nZW1fZGVsaW5lYXRpb25faW5kGBAgASgLMjEub3Blbm9sdC5PbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uSABSGG9udUxvc3NHZW1EZWxpbmVhdGlvbkluZBJ2CiBvbnVfcGh5c2ljYWxfZXF1aXBtZW50X2Vycm9yX2luZBgRIAEoCzIsLm9wZW5vbHQuT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb25IAFIcb251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZBJbChNvbnVfbG9zc19vZl9hY2tfaW5kGBIgASgLMisub3Blbm9sdC5PbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uSABSD29udUxvc3NPZkFja0luZBJvChtvbnVfZGlmZl9yZWFjaF9leGNlZWRlZF9pbmQYEyABKAsyLy5vcGVub2x0Lk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uSABSF29udURpZmZSZWFjaEV4Y2VlZGVkSW5kQgYKBGRhdGEiLgoNT2x0SW5kaWNhdGlvbhIdCgpvcGVyX3N0YXRlGAEgASgJUglvcGVyU3RhdGUiSAoOSW50ZkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAiABKAlSCW9wZXJTdGF0ZSJoChFPbnVEaXNjSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSOgoNc2VyaWFsX251bWJlchgCIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIikwQKDU9udUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEh8KC2FkbWluX3N0YXRlGAUgASgJUgphZG1pblN0YXRlEjoKDXNlcmlhbF9udW1iZXIYBCABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEkwKC2ZhaWxfcmVhc29uGAYgASgOMisub3Blbm9sdC5PbnVJbmRpY2F0aW9uLkFjdGl2YXRpb25GYWlsUmVhc29uUgpmYWlsUmVhc29uIocCChRBY3RpdmF0aW9uRmFpbFJlYXNvbhIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9OT05FEAASJgoiT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUkFOR0lORxABEjYKMk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1BBU1NXT1JEX0FVVEhFTlRJQ0FUSU9OEAISIgoeT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTE9TEAMSIQodT05VX0FDVElWQVRJT05fRkFJTF9PTlVfQUxBUk0QBBIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1NXSVRDSF9PVkVSEAUiYAoSSW50Zk9wZXJJbmRpY2F0aW9uEhIKBHR5cGUYASABKAlSBHR5cGUSFwoHaW50Zl9pZBgCIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZSJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLxAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYCCABKAdSBW9udUlkEhUKBnVuaV9pZBgJIAEoB1IFdW5pSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IoUBCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IsUJCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEh4KCnRlY2hub2xvZ3kYBSABKAlSCnRlY2hub2xvZ3kSIAoMb251X2lkX3N0YXJ0GAYgASgHUgpvbnVJZFN0YXJ0EhwKCm9udV9pZF9lbmQYByABKAdSCG9udUlkRW5kEiQKDmFsbG9jX2lkX3N0YXJ0GAggASgHUgxhbGxvY0lkU3RhcnQSIAoMYWxsb2NfaWRfZW5kGAkgASgHUgphbGxvY0lkRW5kEigKEGdlbXBvcnRfaWRfc3RhcnQYCiABKAdSDmdlbXBvcnRJZFN0YXJ0EiQKDmdlbXBvcnRfaWRfZW5kGAsgASgHUgxnZW1wb3J0SWRFbmQSIgoNZmxvd19pZF9zdGFydBgNIAEoB1ILZmxvd0lkU3RhcnQSHgoLZmxvd19pZF9lbmQYDiABKAdSCWZsb3dJZEVuZBJACgZyYW5nZXMYDyADKAsyKC5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXNSBnJhbmdlcxqVBAoURGV2aWNlUmVzb3VyY2VSYW5nZXMSGQoIaW50Zl9pZHMYASADKAdSB2ludGZJZHMSHgoKdGVjaG5vbG9neRgCIAEoCVIKdGVjaG5vbG9neRJDCgVwb29scxgDIAMoCzItLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sUgVwb29scxr8AgoEUG9vbBJKCgR0eXBlGAEgASgOMjYub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuUG9vbFR5cGVSBHR5cGUSUwoHc2hhcmluZxgCIAEoDjI5Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlNoYXJpbmdUeXBlUgdzaGFyaW5nEhQKBXN0YXJ0GAMgASgHUgVzdGFydBIQCgNlbmQYBCABKAdSA2VuZCJBCghQb29sVHlwZRIKCgZPTlVfSUQQABIMCghBTExPQ19JRBABEg4KCkdFTVBPUlRfSUQQAhILCgdGTE9XX0lEEAMiaAoLU2hhcmluZ1R5cGUSFgoSREVESUNBVEVEX1BFUl9JTlRGEAASHwobU0hBUkVEX0JZX0FMTF9JTlRGX0FMTF9URUNIEAESIAocU0hBUkVEX0JZX0FMTF9JTlRGX1NBTUVfVEVDSBACIoQDCgpDbGFzc2lmaWVyEhUKBm9fdHBpZBgBIAEoB1IFb1RwaWQSEwoFb192aWQYAiABKAdSBG9WaWQSFQoGaV90cGlkGAMgASgHUgVpVHBpZBITCgVpX3ZpZBgEIAEoB1IEaVZpZBIXCgdvX3BiaXRzGAUgASgHUgZvUGJpdHMSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhkKCGV0aF90eXBlGAcgASgHUgdldGhUeXBlEhcKB2RzdF9tYWMYCCABKAxSBmRzdE1hYxIXCgdzcmNfbWFjGAkgASgMUgZzcmNNYWMSGQoIaXBfcHJvdG8YCiABKAdSB2lwUHJvdG8SFQoGZHN0X2lwGAsgASgHUgVkc3RJcBIVCgZzcmNfaXAYDCABKAdSBXNyY0lwEhkKCHNyY19wb3J0GA0gASgHUgdzcmNQb3J0EhkKCGRzdF9wb3J0GA4gASgHUgdkc3RQb3J0EiAKDHBrdF90YWdfdHlwZRgPIAEoCVIKcGt0VGFnVHlwZSKFAwoJQWN0aW9uQ21kEiIKDWFkZF9vdXRlcl90YWcYASABKAhSC2FkZE91dGVyVGFnEigKEHJlbW92ZV9vdXRlcl90YWcYAiABKAhSDnJlbW92ZU91dGVyVGFnEiAKDHRyYXBfdG9faG9zdBgDIAEoCFIKdHJhcFRvSG9zdBIsChJyZW1hcmtfb3V0ZXJfcGJpdHMYBCABKAhSEHJlbWFya091dGVyUGJpdHMSLAoScmVtYXJrX2lubmVyX3BiaXRzGAUgASgIUhByZW1hcmtJbm5lclBiaXRzEiIKDWFkZF9pbm5lcl90YWcYBiABKAhSC2FkZElubmVyVGFnEigKEHJlbW92ZV9pbm5lcl90YWcYByABKAhSDnJlbW92ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9pbm5lcl90YWcYCCABKAhSEXRyYW5zbGF0ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9vdXRlcl90YWcYCSABKAhSEXRyYW5zbGF0ZU91dGVyVGFnIrgBCgZBY3Rpb24SJAoDY21kGAEgASgLMhIub3Blbm9sdC5BY3Rpb25DbWRSA2NtZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIXCgdvX3BiaXRzGAMgASgHUgZvUGJpdHMSFQoGb190cGlkGAQgASgHUgVvVHBpZBITCgVpX3ZpZBgFIAEoB1IEaVZpZBIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSFQoGaV90cGlkGAcgASgHUgVpVHBpZCLHBgoERmxvdxIkCg5hY2Nlc3NfaW50Zl9pZBgBIAEoD1IMYWNjZXNzSW50ZklkEhUKBm9udV9pZBgCIAEoD1IFb251SWQSFQoGdW5pX2lkGAsgASgPUgV1bmlJZBIXCgdmbG93X2lkGAMgASgGUgZmbG93SWQSKgoRc3ltbWV0cmljX2Zsb3dfaWQYEiABKAZSD3N5bW1ldHJpY0Zsb3dJZBIbCglmbG93X3R5cGUYBCABKAlSCGZsb3dUeXBlEhkKCGFsbG9jX2lkGAogASgPUgdhbGxvY0lkEiYKD25ldHdvcmtfaW50Zl9pZBgFIAEoD1INbmV0d29ya0ludGZJZBIdCgpnZW1wb3J0X2lkGAYgASgPUglnZW1wb3J0SWQSMwoKY2xhc3NpZmllchgHIAEoCzITLm9wZW5vbHQuQ2xhc3NpZmllclIKY2xhc3NpZmllchInCgZhY3Rpb24YCCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uEhoKCHByaW9yaXR5GAkgASgPUghwcmlvcml0eRIWCgZjb29raWUYDCABKAZSBmNvb2tpZRIXCgdwb3J0X25vGA0gASgHUgZwb3J0Tm8SGQoIZ3JvdXBfaWQYDiABKAdSB2dyb3VwSWQSJgoPdGVjaF9wcm9maWxlX2lkGA8gASgHUg10ZWNoUHJvZmlsZUlkEiUKDnJlcGxpY2F0ZV9mbG93GBAgASgIUg1yZXBsaWNhdGVGbG93EkgKD3BiaXRfdG9fZ2VtcG9ydBgRIAMoCzIgLm9wZW5vbHQuRmxvdy5QYml0VG9HZW1wb3J0RW50cnlSDXBiaXRUb0dlbXBvcnQSRQoOZ2VtcG9ydF90b19hZXMYEyADKAsyHy5vcGVub2x0LkZsb3cuR2VtcG9ydFRvQWVzRW50cnlSDGdlbXBvcnRUb0FlcxpAChJQYml0VG9HZW1wb3J0RW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARo/ChFHZW1wb3J0VG9BZXNFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBIlQKDFNlcmlhbE51bWJlchIbCgl2ZW5kb3JfaWQYASABKAxSCHZlbmRvcklkEicKD3ZlbmRvcl9zcGVjaWZpYxgCIAEoDFIOdmVuZG9yU3BlY2lmaWMi/gsKDlBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSKAoQcnhfdWNhc3RfcGFja2V0cxgEIAEoBlIOcnhVY2FzdFBhY2tldHMSKAoQcnhfbWNhc3RfcGFja2V0cxgFIAEoBlIOcnhNY2FzdFBhY2tldHMSKAoQcnhfYmNhc3RfcGFja2V0cxgGIAEoBlIOcnhCY2FzdFBhY2tldHMSKAoQcnhfZXJyb3JfcGFja2V0cxgHIAEoBlIOcnhFcnJvclBhY2tldHMSGwoJcnhfZnJhbWVzGBEgASgGUghyeEZyYW1lcxIgCgxyeF9mcmFtZXNfNjQYEiABKAZSCnJ4RnJhbWVzNjQSJwoQcnhfZnJhbWVzXzY1XzEyNxgTIAEoBlINcnhGcmFtZXM2NTEyNxIpChFyeF9mcmFtZXNfMTI4XzI1NRgUIAEoBlIOcnhGcmFtZXMxMjgyNTUSKQoRcnhfZnJhbWVzXzI1Nl81MTEYFSABKAZSDnJ4RnJhbWVzMjU2NTExEisKEnJ4X2ZyYW1lc181MTJfMTAyMxgWIAEoBlIPcnhGcmFtZXM1MTIxMDIzEi0KE3J4X2ZyYW1lc18xMDI0XzE1MTgYFyABKAZSEHJ4RnJhbWVzMTAyNDE1MTgSLQoTcnhfZnJhbWVzXzE1MTlfMjA0NxgYIAEoBlIQcnhGcmFtZXMxNTE5MjA0NxItChNyeF9mcmFtZXNfMjA0OF80MDk1GBkgASgGUhByeEZyYW1lczIwNDg0MDk1Ei0KE3J4X2ZyYW1lc180MDk2XzkyMTYYGiABKAZSEHJ4RnJhbWVzNDA5NjkyMTYSLwoUcnhfZnJhbWVzXzkyMTdfMTYzODMYGyABKAZSEXJ4RnJhbWVzOTIxNzE2MzgzEiIKDXJ4X2NyY19lcnJvcnMYDiABKAZSC3J4Q3JjRXJyb3JzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIoChB0eF91Y2FzdF9wYWNrZXRzGAogASgGUg50eFVjYXN0UGFja2V0cxIoChB0eF9tY2FzdF9wYWNrZXRzGAsgASgGUg50eE1jYXN0UGFja2V0cxIoChB0eF9iY2FzdF9wYWNrZXRzGAwgASgGUg50eEJjYXN0UGFja2V0cxIoChB0eF9lcnJvcl9wYWNrZXRzGA0gASgGUg50eEVycm9yUGFja2V0cxIbCgl0eF9mcmFtZXMYHCABKAZSCHR4RnJhbWVzEiAKDHR4X2ZyYW1lc182NBgdIAEoBlIKdHhGcmFtZXM2NBInChB0eF9mcmFtZXNfNjVfMTI3GB4gASgGUg10eEZyYW1lczY1MTI3EikKEXR4X2ZyYW1lc18xMjhfMjU1GB8gASgGUg50eEZyYW1lczEyODI1NRIpChF0eF9mcmFtZXNfMjU2XzUxMRggIAEoBlIOdHhGcmFtZXMyNTY1MTESKwoSdHhfZnJhbWVzXzUxMl8xMDIzGCEgASgGUg90eEZyYW1lczUxMjEwMjMSLQoTdHhfZnJhbWVzXzEwMjRfMTUxOBgiIAEoBlIQdHhGcmFtZXMxMDI0MTUxOBItChN0eF9mcmFtZXNfMTUxOV8yMDQ3GCMgASgGUhB0eEZyYW1lczE1MTkyMDQ3Ei0KE3R4X2ZyYW1lc18yMDQ4XzQwOTUYJCABKAZSEHR4RnJhbWVzMjA0ODQwOTUSLQoTdHhfZnJhbWVzXzQwOTZfOTIxNhglIAEoBlIQdHhGcmFtZXM0MDk2OTIxNhIvChR0eF9mcmFtZXNfOTIxN18xNjM4MxgmIAEoBlIRdHhGcmFtZXM5MjE3MTYzODMSHQoKYmlwX2Vycm9ycxgPIAEoBlIJYmlwRXJyb3JzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIuYHCg1PbnVTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEiUKDnBvc2l0aXZlX2RyaWZ0GAMgASgGUg1wb3NpdGl2ZURyaWZ0EiUKDm5lZ2F0aXZlX2RyaWZ0GAQgASgGUg1uZWdhdGl2ZURyaWZ0EjgKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBlIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIdCgpiaXBfZXJyb3JzGAYgASgGUgliaXBFcnJvcnMSGwoJYmlwX3VuaXRzGAcgASgGUghiaXBVbml0cxIyChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSNgoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZSFWZlY0NvZGV3b3Jkc0NvcnJlY3RlZBI+ChtmZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGUYCiABKAZSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSIwoNZmVjX2NvZGV3b3JkcxgLIAEoBlIMZmVjQ29kZXdvcmRzEi4KE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZSEWZlY0NvcnJlY3RlZFVuaXRzEiYKD3hnZW1fa2V5X2Vycm9ycxgNIAEoBlINeGdlbUtleUVycm9ycxIbCgl4Z2VtX2xvc3MYDiABKAZSCHhnZW1Mb3NzEiYKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBlINcnhQbG9hbXNFcnJvchIrChJyeF9wbG9hbXNfbm9uX2lkbGUYECABKAZSD3J4UGxvYW1zTm9uSWRsZRIXCgdyeF9vbWNpGBEgASgGUgZyeE9tY2kSOAoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgSIAEoBlIVcnhPbWNpUGFja2V0c0NyY0Vycm9yEhkKCHJ4X2J5dGVzGBMgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYFCABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgVIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGBYgASgGUgl0eFBhY2tldHMSIQoMYmVyX3JlcG9ydGVkGBcgASgGUgtiZXJSZXBvcnRlZBIfCgtsY2RnX2Vycm9ycxgYIAEoBlIKbGNkZ0Vycm9ycxIdCgpyZGlfZXJyb3JzGBkgASgGUglyZGlFcnJvcnMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAi3QEKEUdlbVBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgGUgdyeEJ5dGVzEh0KCnR4X3BhY2tldHMYBSABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgGIAEoBlIHdHhCeXRlcxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCK7AQoORmxvd1N0YXRpc3RpY3MSFwoHZmxvd19pZBgBIAEoB1IGZmxvd0lkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAiQAoNTG9zSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMiXQoTRHlpbmdHYXNwSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKjAgoST251QWxhcm1JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCmxvc19zdGF0dXMYAyABKAlSCWxvc1N0YXR1cxIdCgpsb2Jfc3RhdHVzGAQgASgJUglsb2JTdGF0dXMSKAoQbG9wY19taXNzX3N0YXR1cxgFIAEoCVIObG9wY01pc3NTdGF0dXMSMQoVbG9wY19taWNfZXJyb3Jfc3RhdHVzGAYgASgJUhJsb3BjTWljRXJyb3JTdGF0dXMSHwoLbG9maV9zdGF0dXMYByABKAlSCmxvZmlTdGF0dXMSIQoMbG9hbWlfc3RhdHVzGAggASgJUgtsb2FtaVN0YXR1cyJlChtPbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimQEKGk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUikwEKGk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdBIXCgduZXdfZXFkGAUgASgHUgZuZXdFcWQiaAoeT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpoBChtPbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKCAQoiT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQicQoeT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh8KC2ZhaWxfcmVhc29uGAMgASgHUgpmYWlsUmVhc29uImsKIU9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJUChJSZGlFcnJvckluZGljYXRpb24SJgoPcmRpX2Vycm9yX2NvdW50GAEgASgGUg1yZGlFcnJvckNvdW50EhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIpYBChhPbnVJdHVQb25TdGF0c0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSQQoNcmRpX2Vycm9yX2luZBgDIAEoCzIbLm9wZW5vbHQuUmRpRXJyb3JJbmRpY2F0aW9uSABSC3JkaUVycm9ySW5kQgcKBXN0YXRzIk4KHE9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiagogT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiagoZT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpyZGlfZXJyb3JzGAMgASgGUglyZGlFcnJvcnMioQEKKE9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSLQoSZGVsaW5lYXRpb25fZXJyb3JzGAQgASgHUhFkZWxpbmVhdGlvbkVycm9ycyJtCiNPbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJsCiJPbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIowBCiZPbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIaCghkaXN0YW5jZRgEIAEoB1IIZGlzdGFuY2Ui9gEKC0dyb3VwTWVtYmVyEiEKDGludGVyZmFjZV9pZBgBIAEoDVILaW50ZXJmYWNlSWQSSQoOaW50ZXJmYWNlX3R5cGUYAiABKA4yIi5vcGVub2x0Lkdyb3VwTWVtYmVyLkludGVyZmFjZVR5cGVSDWludGVyZmFjZVR5cGUSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZBIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkiPQoNSW50ZXJmYWNlVHlwZRIHCgNQT04QABIQCgxFUE9OXzFHX1BBVEgQARIRCg1FUE9OXzEwR19QQVRIEAIihgIKBUdyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEjwKB2NvbW1hbmQYAiABKA4yIi5vcGVub2x0Lkdyb3VwLkdyb3VwTWVtYmVyc0NvbW1hbmRSB2NvbW1hbmQSLgoHbWVtYmVycxgDIAMoCzIULm9wZW5vbHQuR3JvdXBNZW1iZXJSB21lbWJlcnMSJwoGYWN0aW9uGAQgASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbiJLChNHcm91cE1lbWJlcnNDb21tYW5kEg8KC0FERF9NRU1CRVJTEAASEgoOUkVNT1ZFX01FTUJFUlMQARIPCgtTRVRfTUVNQkVSUxACIl0KClZhbHVlUGFyYW0SHgoDb251GAEgASgLMgwub3Blbm9sdC5PbnVSA29udRIvCgV2YWx1ZRgCIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIFdmFsdWUiwwIKDlBvblJ4UG93ZXJEYXRhEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzElIKC2ZhaWxfcmVhc29uGAQgASgOMjEub3Blbm9sdC5Qb25SeFBvd2VyRGF0YS5Sc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uUgpmYWlsUmVhc29uEikKEXJ4X3Bvd2VyX21lYW5fZGJtGAUgASgBUg5yeFBvd2VyTWVhbkRibSJqChlSc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uEhQKEEZBSUxfUkVBU09OX05PTkUQABIcChhGQUlMX1JFQVNPTl9OT19ERUxJTUlURVIQARIZChVGQUlMX1JFQVNPTl9OT19BQ0NFU1MQAiIHCgVFbXB0eTKfFAoHT3Blbm9sdBJECgpEaXNhYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Rpc2FibGU6ASoSRgoLUmVlbmFibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIXgtPkkwIRIgwvdjEvUmVlbmFibGU6ASoSRQoLQWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0VuYWJsZU9udToBKhJICg1EZWFjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9EaXNhYmxlT251OgEqEkMKCURlbGV0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRGVsZXRlT251OgEqEkkKCk9tY2lNc2dPdXQSEC5vcGVub2x0Lk9tY2lNc2caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9PbWNpTXNnT3V0OgEqEk8KDE9udVBhY2tldE91dBISLm9wZW5vbHQuT251UGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvT251UGFja2V0T3V0OgEqElgKD1VwbGlua1BhY2tldE91dBIVLm9wZW5vbHQuVXBsaW5rUGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIegtPkkwIYIhMvdjEvVXBsaW5rUGFja2V0T3V0OgEqEkAKB0Zsb3dBZGQSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9GbG93QWRkOgEqEkYKCkZsb3dSZW1vdmUSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9GbG93UmVtb3ZlOgEqElMKDkhlYXJ0YmVhdENoZWNrEg4ub3Blbm9sdC5FbXB0eRoSLm9wZW5vbHQuSGVhcnRiZWF0Ih2C0+STAhciEi92MS9IZWFydGJlYXRDaGVjazoBKhJNCgtFbmFibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRW5hYmxlUG9uSWY6ASoSTwoMRGlzYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9EaXNhYmxlUG9uSWY6ASoSUgoNR2V0RGV2aWNlSW5mbxIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkRldmljZUluZm8iHILT5JMCFiIRL3YxL0dldERldmljZUluZm86ASoSPwoGUmVib290Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFYLT5JMCDyIKL3YxL1JlYm9vdDoBKhJVChFDb2xsZWN0U3RhdGlzdGljcxIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9Db2xsZWN0U3RhdGlzdGljczoBKhJZChBHZXRPbnVTdGF0aXN0aWNzEgwub3Blbm9sdC5PbnUaFi5vcGVub2x0Lk9udVN0YXRpc3RpY3MiH4LT5JMCGSIUL3YxL0dldE9udVN0YXRpc3RpY3M6ASoSawoUR2V0R2VtUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0Lk9udVBhY2tldBoaLm9wZW5vbHQuR2VtUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldEdlbVBvcnRTdGF0aXN0aWNzOgEqEnIKF0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnM6ASoScgoXUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9SZW1vdmVUcmFmZmljU2NoZWR1bGVyczoBKhJmChNDcmVhdGVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9DcmVhdGVUcmFmZmljUXVldWVzOgEqEmYKE1JlbW92ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL1JlbW92ZVRyYWZmaWNRdWV1ZXM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABEl0KFVBlcmZvcm1Hcm91cE9wZXJhdGlvbhIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IiSC0+STAh4iGS92MS9QZXJmb3JtR3JvdXBPcGVyYXRpb246ASoSSQoLRGVsZXRlR3JvdXASDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRGVsZXRlR3JvdXA6ASoSVwoLR2V0RXh0VmFsdWUSEy5vcGVub2x0LlZhbHVlUGFyYW0aFy5leHRlbnNpb24uUmV0dXJuVmFsdWVzIhqC0+STAhQiDy92MS9HZXRFeHRWYWx1ZToBKhJdChFPbnVJdHVQb25BbGFybVNldBIWLmNvbmZpZy5PbnVJdHVQb25BbGFybRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL09udUl0dVBvbkFsYXJtU2V0OgEqEnAKGUdldExvZ2ljYWxPbnVEaXN0YW5jZVplcm8SDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiiC0+STAiIiHS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvOgEqEmgKFUdldExvZ2ljYWxPbnVEaXN0YW5jZRIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiJILT5JMCHiIZL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZToBKhJUCg1HZXRQb25SeFBvd2VyEgwub3Blbm9sdC5PbnUaFy5vcGVub2x0LlBvblJ4UG93ZXJEYXRhIhyC0+STAhYiES92MS9HZXRQb25SeFBvd2VyOgEqQl0KG29yZy5vcGVuY29yZC52b2x0aGEub3Blbm9sdEINVm9sdGhhT3Blbk9MVFovZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5vbHRK2PcBCgcSBQ4AgQYQCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBCBIDEABGCgkKAggLEgMQAEYKCAoBCBIDEQA0CgkKAggBEgMRADQKCAoBCBIDEgAuCgkKAggIEgMSAC4KCAoBAhIDFAAQCgkKAgMAEgMVACYKCQoCAwESAxYAKgoJCgIDAhIDFwAoCgkKAgMDEgMYACgKCwoCBgASBRoA6AEBCgoKAwYAARID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KA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEkQKC3RwX2luc3RhbmNlGAQgASgLMiEudGVjaF9wcm9maWxlLlRlY2hQcm9maWxlSW5zdGFuY2VIAFIKdHBJbnN0YW5jZRJRChBlcG9uX3RwX2luc3RhbmNlGAUgASgLMiUudGVjaF9wcm9maWxlLkVwb25UZWNoUHJvZmlsZUluc3RhbmNlSABSDmVwb25UcEluc3RhbmNlQhIKEHRlY2hfdHBfaW5zdGFuY2UilAEKFERlbGV0ZUdlbVBvcnRNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFQoGdW5pX2lkGAIgASgNUgV1bmlJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAMgASgJUg50cEluc3RhbmNlUGF0aBIeCgtnZW1fcG9ydF9pZBgEIAEoDVIJZ2VtUG9ydElkIo0BChJEZWxldGVUY29udE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkInIKFE9udUluZGljYXRpb25NZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSPQoOb251X2luZGljYXRpb24YAiABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25SDW9udUluZGljYXRpb24i6gEKIVRlY2hQcm9maWxlSW5zdGFuY2VSZXF1ZXN0TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAiABKAlSDnRwSW5zdGFuY2VQYXRoEigKEHBhcmVudF9kZXZpY2VfaWQYAyABKAlSDnBhcmVudERldmljZUlkEiYKD3BhcmVudF9wb25fcG9ydBgEIAEoDVINcGFyZW50UG9uUG9ydBIVCgZvbnVfaWQYBSABKA1SBW9udUlkEhUKBnVuaV9pZBgGIAEoDVIFdW5pSWRCWgohb3JnLm9wZW5jb3JkLnZvbHRoYS5pbnRlcl9hZGFwdGVyWjVnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vaW50ZXJfYWRhcHRlckq6EQoGEgQAADwBCggKAQwSAwAAEgoICgEIEgMCAEwKCQoCCAsSAwIATAoICgEIEgMDADoKCQoCCAESAwMAOgoJCgIDABIDBQAkCgkKAgMBEgMGACQKCQoCAwISAwcAKgoJCgIDAxIDCAAlCgkKAgMEEgMJACQKCAoBAhIDCwAWCiQKAgQAEgQQABYBMhggSW50ZXItQWRhcHRlciBtZXNzYWdlcwoKCgoDBAABEgMQCBMKCwoEBAACABIDEQQWCg0KBQQAAgAEEgQRBBAVCgwKBQQAAgAFEgMRBAkKDAoFBAACAAESAxEKEQoMCgUEAAIAAxIDERQVCgsKBAQAAgESAxIEMgoNCgUEAAIBBBIEEgQRFgoMCgUEAAIBBhIDEgQeCgwKBQQAAgEBEgMSHy0KDAoFBAACAQMSAxIwMQoLCgQEAAICEgMTBDEKDQoFBAACAgQSBBMEEjIKDAoFBAACAgYSAxMEHgoMCgUEAAICARIDEx8sCgwKBQQAAgIDEgMTLzAKCwoEBAACAxIDFAQgCg0KBQQAAgMEEgQUBBMxCgwKBQQAAgMFEgMUBAoKDAoFBAACAwESAxQLGwoMCgUEAAIDAxIDFB4fCgsKBAQAAgQSAxUEHwoNCgUEAAIEBBIEFQQUIAoMCgUEAAIEBRIDFQQKCgwKBQQAAgQBEgMVCxoKDAoFBAACBAMSAxUdHgoKCgIEARIEGAAgAQoKCgMEAQESAxgIIgoLCgQEAQIAEgMZBBkKDQoFBAECAAQSBBkEGCQKDAoFBAECAAUSAxkECgoMCgUEAQIAARIDGQsUCgwKBQQBAgADEgMZFxgKCwoEBAECARIDGgQWCg0KBQQBAgEEEgQaBBkZCgwKBQQBAgEFEgMaBAoKDAoFBAECAQESAxoLEQoMCgUEAQIBAxIDGhQVCgsKBAQBAgISAxsEIAoNCgUEAQICBBIEGwQaFgoMCgUEAQICBRIDGwQKCgwKBQQBAgIBEgMbCxsKDAoFBAECAgMSAxseHwoMCgQEAQgAEgQcBB8FCgwKBQQBCAABEgMcChoKQAoEBAECAxIDHQg5IjMgcmVsZXZhbnQgZm9yIEdQT04sIFhHUE9OIGFuZCBYR1MtUE9OIHRlY2hub2xvZ2llcwoKDAoFBAECAwYSAx0IKAoMCgUEAQIDARIDHSk0CgwKBQQBAgMDEgMdNzgKKwoEBAECBBIDHghCIh4gcmVsZXZhbnQgZm9yIEVQT04gdGVjaG5vbG9neQoKDAoFBAECBAYSAx4ILAoMCgUEAQIEARIDHi09CgwKBQQBAgQDEgMeQEEKCgoCBAISBCIAJwEKCgoDBAIBEgMiCBwKCwoEBAICABIDIwQZCg0KBQQCAgAEEgQjBCIeCgwKBQQCAgAFEgMjBAoKDAoFBAICAAESAyMLFAoMCgUEAgIAAxIDIxcYCgsKBAQCAgESAyQEFgoNCgUEAgIBBBIEJAQjGQoMCgUEAgIBBRIDJAQKCgwKBQQCAgEBEgMkCxEKDAoFBAICAQMSAyQUFQoLCgQEAgICEgMlBCAKDQoFBAICAgQSBCUEJBYKDAoFBAICAgUSAyUECgoMCgUEAgICARIDJQsbCgwKBQQCAgIDEgMlHh8KCwoEBAICAxIDJgQbCg0KBQQCAgMEEgQmBCUgCgwKBQQCAgMFEgMmBAoKDAoFBAICAwESAyYLFgoMCgUEAgIDAxIDJhkaCgoKAgQDEgQpAC4BCgoKAwQDARIDKQgaCgsKBAQDAgASAyoEGQoNCgUEAwIABBIEKgQpHAoMCgUEAwIABRIDKgQKCgwKBQQDAgABEgMqCxQKDAoFBAMCAAMSAyoXGAoLCgQEAwIBEgMrBBYKDQoFBAMCAQQSBCsEKhkKDAoFBAMCAQUSAysECgoMCgUEAwIBARIDKwsRCgwKBQQDAgEDEgMrFBUKCwoEBAMCAhIDLAQgCg0KBQQDAgIEEgQsBCsWCgwKBQQDAgIFEgMsBAoKDAoFBAMCAgESAywLGwoMCgUEAwICAxIDLB4fCgsKBAQDAgMSAy0EGAoNCgUEAwIDBBIELQQsIAoMCgUEAwIDBRIDLQQKCgwKBQQDAgMBEgMtCxMKDAoFBAMCAwMSAy0WFwoKCgIEBBIEMAAzAQoKCgMEBAESAzAIHAoLCgQEBAIAEgMxBBkKDQoFBAQCAAQSBDEEMB4KDAoFBAQCAAUSAzEECgoMCgUEBAIAARIDMQsUCgwKBQQEAgADEgMxFxgKCwoEBAQCARIDMgQtCg0KBQQEAgEEEgQyBDEZCgwKBQQEAgEGEgMyBBkKDAoFBAQCAQESAzIaKAoMCgUEBAIBAxIDMissCgoKAgQFEgQ1ADwBCgoKAwQFARIDNQgpCgsKBAQFAgASAzYEGQoNCgUEBQIABBIENgQ1KwoMCgUEBQIABRIDNgQKCgwKBQQFAgABEgM2CxQKDAoFBAUCAAMSAzYXGAovCgQEBQIBEgM3BCAiIiB0ZWNobm9sb2d5IHByb2ZpbGUgaW5zdGFuY2UgcGF0aAoKDQoFBAUCAQQSBDcENhkKDAoFBAUCAQUSAzcECgoMCgUEBQIBARIDNwsbCgwKBQQFAgEDEgM3Hh8KCwoEBAUCAhIDOAQgCg0KBQQFAgIEEgQ4BDcgCgwKBQQFAgIFEgM4BAoKDAoFBAUCAgESAzgLGwoMCgUEBQICAxIDOB4fCgsKBAQFAgMSAzkEHwoNCgUEBQIDBBIEOQQ4IAoMCgUEBQIDBRIDOQQKCgwKBQQFAgMBEgM5CxoKDAoFBAUCAwMSAzkdHgoLCgQEBQIEEgM6BBYKDQoFBAUCBAQSBDoEOR8KDAoFBAUCBAUSAzoECgoMCgUEBQIEARIDOgsRCgwKBQQFAgQDEgM6FBUKCwoEBAUCBRIDOwQWCg0KBQQFAgUEEgQ7BDoWCgwKBQQFAgUFEgM7BAoKDAoFBAUCBQESAzsLEQoMCgUEBQIFAxIDOxQVYgZwcm90bzMK1AgKLXZvbHRoYV9wcm90b3Mvb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzKUAgoWT2x0SW50ZXJBZGFwdGVyU2VydmljZRI7Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMSRgoQUHJveHlPbWNpUmVxdWVzdBIaLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdQoWR2V0VGVjaFByb2ZpbGVJbnN0YW5jZRIwLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlGikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUrdAwoGEgQAABQBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAUAQoKCgMGAAESAw0IHgqhAQoEBgACABIDEARJGpMBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGFuIE9sdEludGVyQWRhcHRlclNlcnZpY2UgY2xpZW50IHRvIHZlcmlmeSBjb25uZWN0aXZpdHkKIHRvIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAISAxAYKQoMCgUGAAIAAxIDEDRHCgsKBAYAAgESAxIEVAoMCgUGAAIBARIDEggYCgwKBQYAAgECEgMSGTIKDAoFBgACAQMSAxI9UgoMCgQGAAICEgQTBIMBCgwKBQYAAgIBEgMTCB4KDAoFBgACAgISAxMfTgoNCgUGAAICAxIEE1mBAWIGcHJvdG8zCr4LCi12b2x0aGFfcHJvdG9zL29udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UucHJvdG8SGW9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y2wMKFk9udUludGVyQWRhcHRlclNlcnZpY2USOwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzEkwKDU9udUluZGljYXRpb24SIy5pbnRlcl9hZGFwdGVyLk9udUluZGljYXRpb25NZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKDk9tY2lJbmRpY2F0aW9uEhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJYChNEb3dubG9hZFRlY2hQcm9maWxlEikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCg1EZWxldGVHZW1Qb3J0EiMuaW50ZXJfYWRhcHRlci5EZWxldGVHZW1Qb3J0TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJICgtEZWxldGVUQ29udBIhLmludGVyX2FkYXB0ZXIuRGVsZXRlVGNvbnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QpABCi1vcmcub3BlbmNvcmQudm9sdGhhLm9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2VCHFZvbHRoYU9udUludGVyQWRhcHRlclNlcnZpY2VaQWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlSoAFCgYSBAAAFwEKCAoBDBIDAAASCggKAQgSAwIAWAoJCgIICxIDAgBYCggKAQgSAwMARgoJCgIIARIDAwBGCggKAQgSAwQAPQoJCgIICBIDBAA9CggKAQISAwYAIgoJCgIDABIDCAAkCgkKAgMBEgMJACUKCQoCAwISAwoAKwoJCgIDAxIDCwAkCgoKAgYAEgQNABcBCgoKAwYAARIDDQgeCqEBCgQGAAIAEgMQBEkakwEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYW4gT251SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gdmVyaWZ5IGNvbm5lY3Rpdml0eQogdG8gdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIE9udUludGVyQWRhcHRlclNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxAIFwoMCgUGAAIAAhIDEBgpCgwKBQYAAgADEgMQNEcKCwoEBgACARIDEgRaCgwKBQYAAgEBEgMSCBUKDAoFBgACAQISAxIWOAoMCgUGAAIBAxIDEkNYCgsKBAYAAgISAxMEUgoMCgUGAAICARIDEwgWCgwKBQYAAgICEgMTFzAKDAoFBgACAgMSAxM7UAoLCgQGAAIDEgMUBGYKDAoFBgACAwESAxQIGwoMCgUGAAIDAhIDFBxECgwKBQYAAgMDEgMUT2QKCwoEBgACBBIDFQRaCgwKBQYAAgQBEgMVCBUKDAoFBgACBAISAxUWOAoMCgUGAAIEAxIDFUNYCgsKBAYAAgUSAxYEVgoMCgUGAAIFARIDFggTCgwKBQYAAgUCEgMWFDQKDAoFBgACBQMSAxY/VGIGcHJvdG8z