CsQuChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWixnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9hbnlwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rdLAoHEgUeAKEBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAQwoJCgIICxIDIgBDCggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAKQoJCgIICBIDJAApCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAOwoJCgIIJRIDJwA7CvwRCgIEABIFfwChAQEa7hEgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CiAgICAgLy8gb3IgLi4uCiAgICAgaWYgKGFueS5pc1NhbWVUeXBlQXMoRm9vLmdldERlZmF1bHRJbnN0YW5jZSgpKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uZ2V0RGVmYXVsdEluc3RhbmNlKCkpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IGFueXBiLk5ldyhmb28pCiAgICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBhbnkuVW5tYXJzaGFsVG8oZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN/CAsKvAsKBAQAAgASBJ0BAhYarQsgQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4gQXMgb2YgTWF5IDIwMjMsIHRoZXJlIGFyZSBubyB3aWRlbHkgdXNlZCB0eXBlIHNlcnZlcgogaW1wbGVtZW50YXRpb25zIGFuZCBubyBwbGFucyB0byBpbXBsZW1lbnQgb25lLgoKIFNjaGVtZXMgb3RoZXIgdGhhbiBgaHR0cGAsIGBodHRwc2AgKG9yIHRoZSBlbXB0eSBzY2hlbWUpIG1pZ2h0IGJlCiB1c2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2VtYW50aWNzLgoKCg0KBQQAAgAFEgSdAQIICg0KBQQAAgABEgSdAQkRCg0KBQQAAgADEgSdARQVClcKBAQAAgESBKABAhIaSSBNdXN0IGJlIGEgdmFsaWQgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgb2YgdGhlIGFib3ZlIHNwZWNpZmllZCB0eXBlLgoKDQoFBAACAQUSBKABAgcKDQoFBAACAQESBKABCA0KDQoFBAACAQMSBKABEBFiBnByb3RvMwqfEAobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvEgdhZGFwdGVyGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvIlIKDUFkYXB0ZXJDb25maWcSQQoRYWRkaXRpb25hbF9jb25maWcYQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UhBhZGRpdGlvbmFsQ29uZmlnIqMDCgdBZGFwdGVyEg4KAmlkGAEgASgJUgJpZBIWCgZ2ZW5kb3IYAiABKAlSBnZlbmRvchIYCgd2ZXJzaW9uGAMgASgJUgd2ZXJzaW9uEi4KBmNvbmZpZxgQIAEoCzIWLmFkYXB0ZXIuQWRhcHRlckNvbmZpZ1IGY29uZmlnEksKFmFkZGl0aW9uYWxfZGVzY3JpcHRpb24YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UhVhZGRpdGlv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fQoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWi5nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9lbXB0eXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSr4QCgYSBB4AMhAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEUKCQoCCAsSAyIARQoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACsKCQoCCAgSAyQAKwoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwoICgEIEgMoAB8KCQoCCB8SAygAHwq7AgoCBAASAzIAEBqvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCgoKCgMEAAESAzIIDWIGcHJvdG8zCpVhChp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxIGY29tbW9uIhcKA0tleRIQCgNrZXkYASABKAlSA2tleSIUCgJJRBIOCgJpZBgBIAEoCVICaWQiJwoDSURzEiAKBWl0ZW1zGAEgAygLMgouY29tbW9uLklEUgVpdGVtcyJ6CgpDb25uZWN0aW9uEhoKCGVuZHBvaW50GAEgASgJUghlbmRwb2ludBIgCgtjb250ZXh0SW5mbxgCIAEoCVILY29udGV4dEluZm8SLgoTa2VlcF9hbGl2ZV9pbnRlcnZhbBgDIAEoA1IRa2VlcEFsaXZlSW50ZXJ2YWwiaAoKQWRtaW5TdGF0ZSJaCgVUeXBlcxILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEIp8BCgpPcGVyU3RhdHVzIpABCgVUeXBlcxILCgdVTktOT1dOEAASDgoKRElTQ09WRVJFRBABEg4KCkFDVElWQVRJTkcQAhILCgdURVNUSU5HEAMSCgoGQUNUSVZFEAQSCgoGRkFJTEVEEAUSDwoLUkVDT05DSUxJTkcQBhIWChJSRUNPTkNJTElOR19GQUlMRUQQBxIMCghSRUJPT1RFRBAIIkUKDUNvbm5lY3RTdGF0dXMiNAoFVHlwZXMSCwoHVU5LTk9XThAAEg8KC1VOUkVBQ0hBQkxFEAESDQoJUkVBQ0hBQkxFEAIi8gEKDU9wZXJhdGlvblJlc3ASPQoEY29kZRgBIAEoDjIpLmNvbW1vbi5PcGVyYXRpb25SZXNwLk9wZXJhdGlvblJldHVybkNvZGVSBGNvZGUSJwoPYWRkaXRpb25hbF9pbmZvGAIgASgJUg5hZGRpdGlvbmFsSW5mbyJ5ChNPcGVyYXRpb25SZXR1cm5Db2RlEhUKEU9QRVJBVElPTl9TVUNDRVNTEAASFQoRT1BFUkFUSU9OX0ZBSUxVUkUQARIZChVPUEVSQVRJT05fVU5TVVBQT1JURUQQAhIZChVPUEVSQVRJT05fSU5fUFJPR1JFU1MQAyLbFgoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEiEKCnJ4X3BhY2tldHMYAyABKAZCAhgBUglyeFBhY2tldHMSLAoQcnhfdWNhc3RfcGFja2V0cxgEIAEoBkICGAFSDnJ4VWNhc3RQYWNrZXRzEiwKEHJ4X21jYXN0X3BhY2tldHMYBSABKAZCAhgBUg5yeE1jYXN0UGFja2V0cxIsChByeF9iY2FzdF9wYWNrZXRzGAYgASgGQgIYAVIOcnhCY2FzdFBhY2tldHMSLAoQcnhfZXJyb3JfcGFja2V0cxgHIAEoBkICGAFSDnJ4RXJyb3JQYWNrZXRzEhsKCXJ4X2ZyYW1lcxgRIAEoBlIIcnhGcmFtZXMSIAoMcnhfZnJhbWVzXzY0GBIgASgGUgpyeEZyYW1lczY0EicKEHJ4X2ZyYW1lc182NV8xMjcYEyABKAZSDXJ4RnJhbWVzNjUxMjcSKQoRcnhfZnJhbWVzXzEyOF8yNTUYFCABKAZSDnJ4RnJhbWVzMTI4MjU1EikKEXJ4X2ZyYW1lc18yNTZfNTExGBUgASgGUg5yeEZyYW1lczI1NjUxMRIrChJyeF9mcmFtZXNfNTEyXzEwMjMYFiABKAZSD3J4RnJhbWVzNTEyMTAyMxItChNyeF9mcmFtZXNfMTAyNF8xNTE4GBcgASgGUhByeEZyYW1lczEwMjQxNTE4Ei0KE3J4X2ZyYW1lc18xNTE5XzIwNDcYGCABKAZSEHJ4RnJhbWVzMTUxOTIwNDcSLQoTcnhfZnJhbWVzXzIwNDhfNDA5NRgZIAEoBlIQcnhGcmFtZXMyMDQ4NDA5NRItChNyeF9mcmFtZXNfNDA5Nl85MjE2GBogASgGUhByeEZyYW1lczQwOTY5MjE2Ei8KFHJ4X2ZyYW1lc185MjE3XzE2MzgzGBsgASgGUhFyeEZyYW1lczkyMTcxNjM4MxIiCg1yeF9jcmNfZXJyb3JzGA4gASgGUgtyeENyY0Vycm9ycxIuChJyeFVuZGVyc2l6ZVBhY2tldHMYJyABKAZSEnJ4VW5kZXJzaXplUGFja2V0cxIsChFyeE92ZXJzaXplUGFja2V0cxgoIAEoBlIRcnhPdmVyc2l6ZVBhY2tldHMSFAoFcnhHZW0YKyABKAZSBXJ4R2VtEiIKDHJ4R2VtRHJvcHBlZBgsIAEoBlIMcnhHZW1Ecm9wcGVkEhwKCXJ4R2VtSWRsZRgtIAEoBlIJcnhHZW1JZGxlEiYKDnJ4R2VtQ29ycmVjdGVkGC4gASgGUg5yeEdlbUNvcnJlY3RlZBIiCgxyeEdlbUlsbGVnYWwYLyABKAZSDHJ4R2VtSWxsZWdhbBIoCg9yeEZyYWdtZW50RXJyb3IYMCABKAZSD3J4RnJhZ21lbnRFcnJvchIqChByeFBhY2tldHNEcm9wcGVkGDEgASgGUhByeFBhY2tldHNEcm9wcGVkEjgKF3J4Q3B1T21jaVBhY2tldHNEcm9wcGVkGDIgASgGUhdyeENwdU9tY2lQYWNrZXRzRHJvcHBlZBIUCgVyeENwdRgzIAEoBlIFcnhDcHUSFgoGcnhPbWNpGDQgASgGUgZyeE9tY2kSNAoVcnhPbWNpUGFja2V0c0NyY0Vycm9yGDUgASgGUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISLAoRcnhGY3NFcnJvclBhY2tldHMYPiABKAZSEXJ4RmNzRXJyb3JQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEiEKCnR4X3BhY2tldHMYCSABKAZCAhgBUgl0eFBhY2tldHMSLAoQdHhfdWNhc3RfcGFja2V0cxgKIAEoBkICGAFSDnR4VWNhc3RQYWNrZXRzEiwKEHR4X21jYXN0X3BhY2tldHMYCyABKAZCAhgBUg50eE1jYXN0UGFja2V0cxIsChB0eF9iY2FzdF9wYWNrZXRzGAwgASgGQgIYAVIOdHhCY2FzdFBhY2tldHMSLAoQdHhfZXJyb3JfcGFja2V0cxgNIAEoBkICGAFSDnR4RXJyb3JQYWNrZXRzEhsKCXR4X2ZyYW1lcxgcIAEoBlIIdHhGcmFtZXMSIAoMdHhfZnJhbWVzXzY0GB0gASgGUgp0eEZyYW1lczY0EicKEHR4X2ZyYW1lc182NV8xMjcYHiABKAZSDXR4RnJhbWVzNjUxMjcSKQoRdHhfZnJhbWVzXzEyOF8yNTUYHyABKAZSDnR4RnJhbWVzMTI4MjU1EikKEXR4X2ZyYW1lc18yNTZfNTExGCAgASgGUg50eEZyYW1lczI1NjUxMRIrChJ0eF9mcmFtZXNfNTEyXzEwMjMYISABKAZSD3R4RnJhbWVzNTEyMTAyMxItChN0eF9mcmFtZXNfMTAyNF8xNTE4GCIgASgGUhB0eEZyYW1lczEwMjQxNTE4Ei0KE3R4X2ZyYW1lc18xNTE5XzIwNDcYIyABKAZSEHR4RnJhbWVzMTUxOTIwNDcSLQoTdHhfZnJhbWVzXzIwNDhfNDA5NRgkIAEoBlIQdHhGcmFtZXMyMDQ4NDA5NRItChN0eF9mcmFtZXNfNDA5Nl85MjE2GCUgASgGUhB0eEZyYW1lczQwOTY5MjE2Ei8KFHR4X2ZyYW1lc185MjE3XzE2MzgzGCYgASgGUhF0eEZyYW1lczkyMTcxNjM4MxIuChJ0eFVuZGVyc2l6ZVBhY2tldHMYKSABKAZSEnR4VW5kZXJzaXplUGFja2V0cxIsChF0eE92ZXJzaXplUGFja2V0cxgqIAEoBlIRdHhPdmVyc2l6ZVBhY2tldHMSFAoFdHhHZW0YNiABKAZSBXR4R2VtEhQKBXR4Q3B1GDcgASgGUgV0eENwdRIWCgZ0eE9tY2kYOCABKAZSBnR4T21jaRI2ChZ0eERyb3BwZWRJbGxlZ2FsTGVuZ3RoGDkgASgGUhZ0eERyb3BwZWRJbGxlZ2FsTGVuZ3RoEiwKEXR4RHJvcHBlZFRwaWRNaXNzGDogASgGUhF0eERyb3BwZWRUcGlkTWlzcxIqChB0eERyb3BwZWRWaWRNaXNzGDsgASgGUhB0eERyb3BwZWRWaWRNaXNzEiYKDnR4RHJvcHBlZFRvdGFsGDwgASgGUg50eERyb3BwZWRUb3RhbBIdCgpiaXBfZXJyb3JzGA8gASgGUgliaXBFcnJvcnMSGwoJYmlwX3VuaXRzGD0gASgGUghiaXBVbml0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcBImCg9yeF91Y2FzdF9mcmFtZXMYPyABKAZSDXJ4VWNhc3RGcmFtZXMSJgoPcnhfbWNhc3RfZnJhbWVzGEAgASgGUg1yeE1jYXN0RnJhbWVzEiYKD3J4X2JjYXN0X2ZyYW1lcxhBIAEoBlINcnhCY2FzdEZyYW1lcxImCg9yeF9lcnJvcl9mcmFtZXMYQiABKAZSDXJ4RXJyb3JGcmFtZXMSJgoPcnhfcmlnaHRfZnJhbWVzGEMgASgGUg1yeFJpZ2h0RnJhbWVzEiYKD3R4X3VjYXN0X2ZyYW1lcxhEIAEoBlINdHhVY2FzdEZyYW1lcxImCg90eF9tY2FzdF9mcmFtZXMYRSABKAZSDXR4TWNhc3RGcmFtZXMSJgoPdHhfYmNhc3RfZnJhbWVzGEYgASgGUg10eEJjYXN0RnJhbWVzEiYKD3R4X2Vycm9yX2ZyYW1lcxhHIAEoBlINdHhFcnJvckZyYW1lcxIuChNyeF9kaXNjYXJkZWRfZnJhbWVzGEggASgGUhFyeERpc2NhcmRlZEZyYW1lcyocCgxUZXN0TW9kZUtleXMSDAoIYXBpX3Rlc3QQAEJFChNvcmcub3BlbmNvcmQudm9sdGhhWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vY29tbW9uSodDCgcSBQAA0gEBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgECEgMEAA8KCAoBCBIDBgAsCgkKAggBEgMGACwKJAoCBAASBAkACwEaGCBGdWxsIHBhdGggZm9yIEtWIHN0b3JlCgoKCgMEAAESAwkICwoLCgQEAAIAEgMKBBMKDAoFBAACAAUSAwoECgoMCgUEAAIAARIDCgsOCgwKBQQAAgADEgMKERIKKgoCBAESBA4AEAEaHiBDb252ZXkgYSByZXNv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bGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnP4AQGiAgRHQVBJSrNzCgcSBQ8A+wIBCr4ECgEMEgMPABIyswQgQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgECEgMRABMKCAoBCBIDEwAfCgkKAggfEgMTAB8KCAoBCBIDFABYCgkKAggLEgMUAFgKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAqCgkKAggIEgMWACoKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAiCgkKAggkEgMYACIKzQEKAgQAEgQdACoBGsABIERlZmluZXMgdGhlIEhUVFAgY29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIHNlcnZpY2UuIEl0IGNvbnRhaW5zIGEgbGlzdCBvZgogW0h0dHBSdWxlXVtnb29nbGUuYXBpLkh0dHBSdWxlXSwgZWFjaCBzcGVjaWZ5aW5nIHRoZSBtYXBwaW5nIG9mIGFuIFJQQyBtZXRob2QKIHRvIG9uZSBvciBtb3JlIEhUVFAgUkVTVCBBUEkgbWV0aG9kcy4KCgoKAwQAARIDHQgMCqIBCgQEAAIAEgMhAh4alAEgQSBsaXN0IG9mIEhUVFAgY29uZmlndXJhdGlvbiBydWxlcyB0aGF0IGFwcGx5IHRvIGluZGl2aWR1YWwgQVBJIG1ldGhvZHMuCgogKipOT1RFOioqIEFsbCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcnVsZXMgZm9sbG93ICJsYXN0IG9uZSB3aW5zIiBvcmRlci4KCgwKBQQAAgAEEgMhAgoKDAoFBAACAAYSAyELEwoMCgUEAAIAARIDIRQZCgwKBQQAAgADEgMhHB0KkwIKBAQAAgESAykCKxqFAiBXaGVuIHNldCB0byB0cnVlLCBVUkwgcGF0aCBwYXJtZXRlcnMgd2lsbCBiZSBmdWxseSBVUkktZGVjb2RlZCBleGNlcHQgaW4KIGNhc2VzIG9mIHNpbmdsZSBzZWdtZW50IG1hdGNoZXMgaW4gcmVzZXJ2ZWQgZXhwYW5zaW9uLCB3aGVyZSAiJTJGIiB3aWxsIGJlCiBsZWZ0IGVuY29kZWQuCgogVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90IGRlY29kZSBSRkMgNjU3MCByZXNlcnZlZCBjaGFyYWN0ZXJzIGluIG11bHRpCiBzZWdtZW50IG1hdGNoZXMuCgoMCgUEAAIBBRIDKQIGCgwKBQQAAgEBEgMpByYKDAoFBAACAQMSAykpKgq7UwoCBAESBrwCAPICARqsUyAjIGdSUEMgVHJhbnNjb2RpbmcKCiBnUlBDIFRyYW5zY29kaW5nIGlzIGEgZmVhdHVyZSBmb3IgbWFwcGluZyBiZXR3ZWVuIGEgZ1JQQyBtZXRob2QgYW5kIG9uZSBvcgogbW9yZSBIVFRQIFJFU1QgZW5kcG9pbnRzLiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBidWlsZCBhIHNpbmdsZSBBUEkgc2VydmljZQogdGhhdCBzdXBwb3J0cyBib3RoIGdSUEMgQVBJcyBhbmQgUkVTVCBBUElzLiBNYW55IHN5c3RlbXMsIGluY2x1ZGluZyBbR29vZ2xlCiBBUElzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlYXBpcy9nb29nbGVhcGlzKSwKIFtDbG91ZCBFbmRwb2ludHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9lbmRwb2ludHMpLCBbZ1JQQwogR2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSksCiBhbmQgW0Vudm95XShodHRwczovL2dpdGh1Yi5jb20vZW52b3lwcm94eS9lbnZveSkgcHJveHkgc3VwcG9ydCB0aGlzIGZlYXR1cmUKIGFuZCB1c2UgaXQgZm9yIGxhcmdlIHNjYWxlIHByb2R1Y3Rpb24gc2VydmljZXMuCgogYEh0dHBSdWxlYCBkZWZpbmVzIHRoZSBzY2hlbWEgb2YgdGhlIGdSUEMvUkVTVCBtYXBwaW5nLiBUaGUgbWFwcGluZyBzcGVjaWZpZXMKIGhvdyBkaWZmZXJlbnQgcG9ydGlvbnMgb2YgdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8gdGhlIFVSTAogcGF0aCwgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4gSXQgYWxzbyBjb250cm9scyBob3cgdGhlCiBnUlBDIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkuIGBIdHRwUnVsZWAgaXMKIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYW4gYGdvb2dsZS5hcGkuaHR0cGAgYW5ub3RhdGlvbiBvbiB0aGUgZ1JQQyBtZXRob2QuCgogRWFjaCBtYXBwaW5nIHNwZWNpZmllcyBhIFVSTCBwYXRoIHRlbXBsYXRlIGFuZCBhbiBIVFRQIG1ldGhvZC4gVGhlIHBhdGgKIHRlbXBsYXRlIG1heSByZWZlciB0byBvbmUgb3IgbW9yZSBmaWVsZHMgaW4gdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlLCBhcyBsb25nCiBhcyBlYWNoIGZpZWxkIGlzIGEgbm9uLXJlcGVhdGVkIGZpZWxkIHdpdGggYSBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlLgogVGhlIHBhdGggdGVtcGxhdGUgY29udHJvbHMgaG93IGZpZWxkcyBvZiB0aGUgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8KIHRoZSBVUkwgcGF0aC4KCiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEve25hbWU9bWVzc2FnZXMvKn0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG5hbWUgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgdGV4dCA9IDE7IC8vIFRoZSByZXNvdXJjZSBjb250ZW50LgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYW4gSFRUUCBSRVNUIHRvIGdSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgIHwgYEdldE1lc3NhZ2UobmFtZTogIm1lc3NhZ2VzLzEyMzQ1NiIpYAoKIEFueSBmaWVsZHMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSB3aGljaCBhcmUgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlCiBhdXRvbWF0aWNhbGx5IGJlY29tZSBIVFRQIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhlcmUgaXMgbm8gSFRUUCByZXF1ZXN0IGJvZHkuCiBGb3IgZXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIG1lc3NhZ2UgU3ViTWVzc2FnZSB7CiAgICAgICAgIHN0cmluZyBzdWJmaWVsZCA9IDE7CiAgICAgICB9CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICAgIGludDY0IHJldmlzaW9uID0gMjsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHJldmlzaW9uYC4KICAgICAgIFN1Yk1lc3NhZ2Ugc3ViID0gMzsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHN1Yi5zdWJmaWVsZGAuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1Nj9yZXZpc2lvbj0yJnN1Yi5zdWJmaWVsZD1mb29gIHwKIGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiIHJldmlzaW9uOiAyIHN1YjogU3ViTWVzc2FnZShzdWJmaWVsZDoKICJmb28iKSlgCgogTm90ZSB0aGF0IGZpZWxkcyB3aGljaCBhcmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBhCiBwcmltaXRpdmUgdHlwZSBvciBhIHJlcGVhdGVkIHByaW1pdGl2ZSB0eXBlIG9yIGEgbm9uLXJlcGVhdGVkIG1lc3NhZ2UgdHlwZS4KIEluIHRoZSBjYXNlIG9mIGEgcmVwZWF0ZWQgdHlwZSwgdGhlIHBhcmFtZXRlciBjYW4gYmUgcmVwZWF0ZWQgaW4gdGhlIFVSTAogYXMgYC4uLj9wYXJhbT1BJnBhcmFtPUJgLiBJbiB0aGUgY2FzZSBvZiBhIG1lc3NhZ2UgdHlwZSwgZWFjaCBmaWVsZCBvZiB0aGUKIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIGEgc2VwYXJhdGUgcGFyYW1ldGVyLCBzdWNoIGFzCiBgLi4uP2Zvby5hPUEmZm9vLmI9QiZmb28uYz1DYC4KCiBGb3IgSFRUUCBtZXRob2RzIHRoYXQgYWxsb3cgYSByZXF1ZXN0IGJvZHksIHRoZSBgYm9keWAgZmllbGQKIHNwZWNpZmllcyB0aGUgbWFwcGluZy4gQ29uc2lkZXIgYSBSRVNUIHVwZGF0ZSBtZXRob2Qgb24gdGhlCiBtZXNzYWdlIHJlc291cmNlIGNvbGxlY3Rpb246CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIm1lc3NhZ2UiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgVXBkYXRlTWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBtYXBwZWQgdG8gdGhlIFVSTAogICAgICAgTWVzc2FnZSBtZXNzYWdlID0gMjsgICAvLyBtYXBwZWQgdG8gdGhlIGJvZHkKICAgICB9CgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZCwgd2hlcmUgdGhlCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBpbiB0aGUgcmVxdWVzdCBib2R5IGlzIGRldGVybWluZWQgYnkKIHByb3RvcyBKU09OIGVuY29kaW5nOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIG1lc3NhZ2UgeyB0ZXh0OiAiSGkhIiB9KWAKCiBUaGUgc3BlY2lhbCBuYW1lIGAqYCBjYW4gYmUgdXNlZCBpbiB0aGUgYm9keSBtYXBwaW5nIHRvIGRlZmluZSB0aGF0CiBldmVyeSBmaWVsZCBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUKIHJlcXVlc3QgYm9keS4gIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlIGRlZmluaXRpb24gb2YKIHRoZSB1cGRhdGUgbWV0aG9kOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShNZXNzYWdlKSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIioiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdGV4dCA9IDI7CiAgICAgfQoKCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIHRleHQ6ICJIaSEiKWAKCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBgKmAgaW4gdGhlIGJvZHkgbWFwcGluZywgaXQgaXMgbm90IHBvc3NpYmxlIHRvCiBoYXZlIEhUVFAgcGFyYW1ldGVycywgYXMgYWxsIGZpZWxkcyBub3QgYm91bmQgYnkgdGhlIHBhdGggZW5kIGluCiB0aGUgYm9keS4gVGhpcyBtYWtlcyB0aGlzIG9wdGlvbiBtb3JlIHJhcmVseSB1c2VkIGluIHByYWN0aWNlIHdoZW4KIGRlZmluaW5nIFJFU1QgQVBJcy4gVGhlIGNvbW1vbiB1c2FnZSBvZiBgKmAgaXMgaW4gY3VzdG9tIG1ldGhvZHMKIHdoaWNoIGRvbid0IHVzZSB0aGUgVVJMIGF0IGFsbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEuCgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIG11bHRpcGxlIEhUVFAgbWV0aG9kcyBmb3Igb25lIFJQQyBieSB1c2luZwogdGhlIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBvcHRpb24uIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBnZXQ6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGFkZGl0aW9uYWxfYmluZGluZ3MgewogICAgICAgICAgICAgZ2V0OiAiL3YxL3VzZXJzL3t1c2VyX2lkfS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB1c2VyX2lkID0gMjsKICAgICB9CgogVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdHdvIGFsdGVybmF0aXZlIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZ3M6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIpYAogYEdFVCAvdjEvdXNlcnMvbWUvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKHVzZXJfaWQ6ICJtZSIgbWVzc2FnZV9pZDoKICIxMjM0NTYiKWAKCiAjIyBSdWxlcyBmb3IgSFRUUCBtYXBwaW5nCgogMS4gTGVhZiByZXF1ZXN0IGZpZWxkcyAocmVjdXJzaXZlIGV4cGFuc2lvbiBuZXN0ZWQgbWVzc2FnZXMgaW4gdGhlIHJlcXVlc3QKICAgIG1lc3NhZ2UpIGFyZSBjbGFzc2lmaWVkIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBwYXRoIHRlbXBsYXRlLiBUaGV5IGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcGF0aC4KICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XS4gVGhleQogICAgYXJlIHBhc3NlZCB2aWEgdGhlIEhUVFAKICAgICAgcmVxdWVzdCBib2R5LgogICAgLSBBbGwgb3RoZXIgZmllbGRzIGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIHRoZQogICAgICBwYXJhbWV0ZXIgbmFtZSBpcyB0aGUgZmllbGQgcGF0aCBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlLiBBIHJlcGVhdGVkCiAgICAgIGZpZWxkIGNhbiBiZSByZXByZXNlbnRlZCBhcyBtdWx0aXBsZSBxdWVyeSBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBzYW1lCiAgICAgIG5hbWUuCiAgMi4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgIioiLCB0aGVyZSBpcyBubyBVUkwKICBxdWVyeSBwYXJhbWV0ZXIsIGFsbCBmaWVsZHMKICAgICBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuCiAgMy4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgb21pdHRlZCwgdGhlcmUgaXMgbm8gSFRUUAogIHJlcXVlc3QgYm9keSwgYWxsCiAgICAgZmllbGRzIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBVUkwgcXVlcnkgcGFyYW1ldGVycy4KCiAjIyMgUGF0aCB0ZW1wbGF0ZSBzeW50YXgKCiAgICAgVGVtcGxhdGUgPSAiLyIgU2VnbWVudHMgWyBWZXJiIF0gOwogICAgIFNlZ21lbnRzID0gU2VnbWVudCB7ICIvIiBTZWdtZW50IH0gOwogICAgIFNlZ21lbnQgID0gIioiIHwgIioqIiB8IExJVEVSQUwgfCBWYXJpYWJsZSA7CiAgICAgVmFyaWFibGUgPSAieyIgRmllbGRQYXRoIFsgIj0iIFNlZ21lbnRzIF0gIn0iIDsKICAgICBGaWVsZFBhdGggPSBJREVOVCB7ICIuIiBJREVOVCB9IDsKICAgICBWZXJiICAgICA9ICI6IiBMSVRFUkFMIDsKCiBUaGUgc3ludGF4IGAqYCBtYXRjaGVzIGEgc2luZ2xlIFVSTCBwYXRoIHNlZ21lbnQuIFRoZSBzeW50YXggYCoqYCBtYXRjaGVzCiB6ZXJvIG9yIG1vcmUgVVJMIHBhdGggc2VnbWVudHMsIHdoaWNoIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMIHBhdGgKIGV4Y2VwdCB0aGUgYFZlcmJgLgoKIFRoZSBzeW50YXggYFZhcmlhYmxlYCBtYXRjaGVzIHBhcnQgb2YgdGhlIFVSTCBwYXRoIGFzIHNwZWNpZmllZCBieSBpdHMKIHRlbXBsYXRlLiBBIHZhcmlhYmxlIHRlbXBsYXRlIG11c3Qgbm90IGNvbnRhaW4gb3RoZXIgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCiBtYXRjaGVzIGEgc2luZ2xlIHBhdGggc2VnbWVudCwgaXRzIHRlbXBsYXRlIG1heSBiZSBvbWl0dGVkLCBlLmcuIGB7dmFyfWAKIGlzIGVxdWl2YWxlbnQgdG8gYHt2YXI9Kn1gLgoKIFRoZSBzeW50YXggYExJVEVSQUxgIG1hdGNoZXMgbGl0ZXJhbCB0ZXh0IGluIHRoZSBVUkwgcGF0aC4gSWYgdGhlIGBMSVRFUkFMYAogY29udGFpbnMgYW55IHJlc2VydmVkIGNoYXJhY3Rlciwgc3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBwZXJjZW50LWVuY29kZWQKIGJlZm9yZSB0aGUgbWF0Y2hpbmcuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBleGFjdGx5IG9uZSBwYXRoIHNlZ21lbnQsIHN1Y2ggYXMgYCJ7dmFyfSJgIG9yCiBgInt2YXI9Kn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZSBjbGllbnQKIHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLiBUaGUKIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHt2YXJ9YC4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIG11bHRpcGxlIHBhdGggc2VnbWVudHMsIHN1Y2ggYXMgYCJ7dmFyPWZvby8qfSJgCiBvciBgInt2YXI9Kip9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUKIGNsaWVudCBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+LzAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuCiBUaGUgc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZywgZXhjZXB0ICIlMkYiIGFuZCAiJTJmIiBhcmUgbGVmdAogdW5jaGFuZ2VkLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7K3Zhcn1gLgoKICMjIFVzaW5nIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbgoKIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAoc2VydmljZSBjb25maWcpIGlzIGEgY29uZmlndXJhdGlvbiBsYW5ndWFnZQogZm9yIGNvbmZpZ3VyaW5nIGEgZ1JQQyBzZXJ2aWNlIHRvIGJlY29tZSBhIHVzZXItZmFjaW5nIHByb2R1Y3QuIFRoZQogc2VydmljZSBjb25maWcgaXMgc2ltcGx5IHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgZ29vZ2xlLmFwaS5TZXJ2aWNlYAogcHJvdG8gbWVzc2FnZS4KCiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbm5vdGF0aW5nIHlvdXIgcHJvdG8gZmlsZSwgeW91IGNhbiBjb25maWd1cmUgZ1JQQwogdHJhbnNjb2RpbmcgaW4geW91ciBzZXJ2aWNlIGNvbmZpZyBZQU1MIGZpbGVzLiBZb3UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGEKIGBIdHRwUnVsZWAgdGhhdCBtYXBzIHRoZSBnUlBDIG1ldGhvZCB0byBhIFJFU1QgZW5kcG9pbnQsIGFjaGlldmluZyB0aGUgc2FtZQogZWZmZWN0IGFzIHRoZSBwcm90byBhbm5vdGF0aW9uLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdQogaGF2ZSBhIHByb3RvIHRoYXQgaXMgcmV1c2VkIGluIG11bHRpcGxlIHNlcnZpY2VzLiBOb3RlIHRoYXQgYW55IHRyYW5zY29kaW5nCiBzcGVjaWZpZWQgaW4gdGhlIHNlcnZpY2UgY29uZmlnIHdpbGwgb3ZlcnJpZGUgYW55IG1hdGNoaW5nIHRyYW5zY29kaW5nCiBjb25maWd1cmF0aW9uIGluIHRoZSBwcm90by4KCiBFeGFtcGxlOgoKICAgICBodHRwOgogICAgICAgcnVsZXM6CiAgICAgICAgICMgU2VsZWN0cyBhIGdSUEMgbWV0aG9kIGFuZCBhcHBsaWVzIEh0dHBSdWxlIHRvIGl0LgogICAgICAgICAtIHNlbGVjdG9yOiBleGFtcGxlLnYxLk1lc3NhZ2luZy5HZXRNZXNzYWdlCiAgICAgICAgICAgZ2V0OiAvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9L3tzdWIuc3ViZmllbGR9CgogIyMgU3BlY2lhbCBub3RlcwoKIFdoZW4gZ1JQQyBUcmFuc2NvZGluZyBpcyB1c2VkIHRvIG1hcCBhIGdSUEMgdG8gSlNPTiBSRVNUIGVuZHBvaW50cywgdGhlCiBwcm90byB0byBKU09OIGNvbnZlcnNpb24gbXVzdCBmb2xsb3cgdGhlIFtwcm90bzMKIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbikuCgogV2hpbGUgdGhlIHNpbmdsZSBzZWdtZW50IHZhcmlhYmxlIGZvbGxvd3MgdGhlIHNlbWFudGljcyBvZgogW1JGQyA2NTcwXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjU3MCkgU2VjdGlvbiAzLjIuMiBTaW1wbGUgU3RyaW5nCiBFeHBhbnNpb24sIHRoZSBtdWx0aSBzZWdtZW50IHZhcmlhYmxlICoqZG9lcyBub3QqKiBmb2xsb3cgUkZDIDY1NzAgU2VjdGlvbgogMy4yLjMgUmVzZXJ2ZWQgRXhwYW5zaW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIFJlc2VydmVkIEV4cGFuc2lvbgogZG9lcyBub3QgZXhwYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIGA/YCBhbmQgYCNgLCB3aGljaCB3b3VsZCBsZWFkCiB0byBpbnZhbGlkIFVSTHMuIEFzIHRoZSByZXN1bHQsIGdSUEMgVHJhbnNjb2RpbmcgdXNlcyBhIGN1c3RvbSBlbmNvZGluZwogZm9yIG11bHRpIHNlZ21lbnQgdmFyaWFibGVzLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogcmVmZXIgdG8gYW55IHJlcGVhdGVkIG9yIG1hcHBlZCBmaWVsZCwKIGJlY2F1c2UgY2xpZW50IGxpYnJhcmllcyBhcmUgbm90IGNhcGFibGUgb2YgaGFuZGxpbmcgc3VjaCB2YXJpYWJsZSBleHBhbnNpb24uCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIiBjaGFyYWN0ZXIuIFRoZSByZWFzb24KIGlzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlICJ7dmFyfSIgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIKIGNoYXJhY3Rlci4gRm9yIGNvbnNpc3RlbmN5LCBhbGwgcGF0aCB2YXJpYWJsZXMgbXVzdCBzaGFyZSB0aGUgc2FtZSBiZWhhdmlvci4KCiBSZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBtdXN0IG5vdCBiZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGJlY2F1c2UKIG5vIGNsaWVudCBsaWJyYXJ5IGNhbiBzdXBwb3J0IHN1Y2ggY29tcGxpY2F0ZWQgbWFwcGluZy4KCiBJZiBhbiBBUEkgbmVlZHMgdG8gdXNlIGEgSlNPTiBhcnJheSBmb3IgcmVxdWVzdCBvciByZXNwb25zZSBib2R5LCBpdCBjYW4gbWFwCiB0aGUgcmVxdWVzdCBvciByZXNwb25zZSBib2R5IHRvIGEgcmVwZWF0ZWQgZmllbGQuIEhvd2V2ZXIsIHNvbWUgZ1JQQwogVHJhbnNjb2RpbmcgaW1wbGVtZW50YXRpb25zIG1heSBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuCgoLCgMEAQESBLwCCBAKjwEKBAQBAgASBMECAhYagAEgU2VsZWN0cyBhIG1ldGhvZCB0byB3aGljaCB0aGlzIHJ1bGUgYXBwbGllcy4KCiBSZWZlciB0byBbc2VsZWN0b3JdW2dvb2dsZS5hcGkuRG9jdW1lbnRhdGlvblJ1bGUuc2VsZWN0b3JdIGZvciBzeW50YXgKIGRldGFpbHMuCgoNCgUEAQIABRIEwQICCAoNCgUEAQIAARIEwQIJEQoNCgUEAQIAAxIEwQIUFQrQAQoEBAEIABIGxgIC3AIDGr8BIERldGVybWluZXMgdGhlIFVSTCBwYXR0ZXJuIGlzIG1hdGNoZWQgYnkgdGhpcyBydWxlcy4gVGhpcyBwYXR0ZXJuIGNhbiBiZQogdXNlZCB3aXRoIGFueSBvZiB0aGUge2dldHxwdXR8cG9zdHxkZWxldGV8cGF0Y2h9IG1ldGhvZHMuIEEgY3VzdG9tIG1ldGhvZAogY2FuIGJlIGRlZmluZWQgdXNpbmcgdGhlICdjdXN0b20nIGZpZWxkLgoKDQoFBAEIAAESBMYCCA8KXAoEBAECARIEyQIEExpOIE1hcHMgdG8gSFRUUCBHRVQuIFVzZWQgZm9yIGxpc3RpbmcgYW5kIGdldHRpbmcgaW5mb3JtYXRpb24gYWJvdXQKIHJlc291cmNlcy4KCg0KBQQBAgEFEgTJAgQKCg0KBQQBAgEBEgTJAgsOCg0KBQQBAgEDEgTJAhESCkAKBAQBAgISBMwCBBMaMiBNYXBzIHRvIEhUVFAgUFVULiBVc2VkIGZvciByZXBsYWNpbmcgYSByZXNvdXJjZS4KCg0KBQQBAgIFEgTMAgQKCg0KBQQBAgIBEgTMAgsOCg0KBQQBAgIDEgTMAhESClgKBAQBAgMSBM8CBBQaSiBNYXBzIHRvIEhUVFAgUE9TVC4gVXNlZCBmb3IgY3JlYXRpbmcgYSByZXNvdXJjZSBvciBwZXJmb3JtaW5nIGFuIGFjdGlvbi4KCg0KBQQBAgMFEgTPAgQKCg0KBQQBAgMBEgTPAgsPCg0KBQQBAgMDEgTPAhITCkIKBAQBAgQSBNICBBYaNCBNYXBzIHRvIEhUVFAgREVMRVRFLiBVc2VkIGZvciBkZWxldGluZyBhIHJlc291cmNlLgoKDQoFBAECBAUSBNICBAoKDQoFBAECBAESBNICCxEKDQoFBAECBAMSBNICFBUKQQoEBAECBRIE1QIEFRozIE1hcHMgdG8gSFRUUCBQQVRDSC4gVXNlZCBmb3IgdXBkYXRpbmcgYSByZXNvdXJjZS4KCg0KBQQBAgUFEgTVAgQKCg0KBQQBAgUBEgTVAgsQCg0KBQQBAgUDEgTVAhMUCpgCCgQEAQIGEgTbAgQhGokCIFRoZSBjdXN0b20gcGF0dGVybiBpcyB1c2VkIGZvciBzcGVjaWZ5aW5nIGFuIEhUVFAgbWV0aG9kIHRoYXQgaXMgbm90CiBpbmNsdWRlZCBpbiB0aGUgYHBhdHRlcm5gIGZpZWxkLCBzdWNoIGFzIEhFQUQsIG9yICIqIiB0byBsZWF2ZSB0aGUKIEhUVFAgbWV0aG9kIHVuc3BlY2lmaWVkIGZvciB0aGlzIHJ1bGUuIFRoZSB3aWxkLWNhcmQgcnVsZSBpcyB1c2VmdWwKIGZvciBzZXJ2aWNlcyB0aGF0IHByb3ZpZGUgY29udGVudCB0byBXZWIgKEhUTUwpIGNsaWVudHMuCgoNCgUEAQIGBhIE2wIEFQoNCgUEAQIGARIE2wIWHAoNCgUEAQIGAxIE2wIfIArEAgoEBAECBxIE5AICEhq1AiBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBmaWVsZCB3aG9zZSB2YWx1ZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAgcmVxdWVzdAogYm9keSwgb3IgYCpgIGZvciBtYXBwaW5nIGFsbCByZXF1ZXN0IGZpZWxkcyBub3QgY2FwdHVyZWQgYnkgdGhlIHBhdGgKIHBhdHRlcm4gdG8gdGhlIEhUVFAgYm9keSwgb3Igb21pdHRlZCBmb3Igbm90IGhhdmluZyBhbnkgSFRUUCByZXF1ZXN0IGJvZHkuCgogTk9URTogdGhlIHJlZmVycmVkIGZpZWxkIG11c3QgYmUgcHJlc2VudCBhdCB0aGUgdG9wLWxldmVsIG9mIHRoZSByZXF1ZXN0CiBtZXNzYWdlIHR5cGUuCgoNCgUEAQIHBRIE5AICCAoNCgUEAQIHARIE5AIJDQoNCgUEAQIHAxIE5AIQEQqZAgoEBAECCBIE7AICHBqKAiBPcHRpb25hbC4gVGhlIG5hbWUgb2YgdGhlIHJlc3BvbnNlIGZpZWxkIHdob3NlIHZhbHVlIGlzIG1hcHBlZCB0byB0aGUgSFRUUAogcmVzcG9uc2UgYm9keS4gV2hlbiBvbWl0dGVkLCB0aGUgZW50aXJlIHJlc3BvbnNlIG1lc3NhZ2Ugd2lsbCBiZSB1c2VkCiBhcyB0aGUgSFRUUCByZXNwb25zZSBib2R5LgoKIE5PVEU6IFRoZSByZWZlcnJlZCBmaWVsZCBtdXN0IGJlIHByZXNlbnQgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcmVzcG9uc2UKIG1lc3NhZ2UgdHlwZS4KCg0KBQQBAggFEgTsAgIICg0KBQQBAggBEgTsAgkWCg0KBQQBAggDEgTsAhkbCrsBCgQEAQIJEgTxAgItGqwBIEFkZGl0aW9uYWwgSFRUUCBiaW5kaW5ncyBmb3IgdGhlIHNlbGVjdG9yLiBOZXN0ZWQgYmluZGluZ3MgbXVzdAogbm90IGNvbnRhaW4gYW4gYGFkZGl0aW9uYWxfYmluZGluZ3NgIGZpZWxkIHRoZW1zZWx2ZXMgKHRoYXQgaXMsCiB0aGUgbmVzdGluZyBtYXkgb25seSBiZSBvbmUgbGV2ZWwgZGVlcCkuCgoNCgUEAQIJBBIE8QICCgoNCgUEAQIJBhIE8QILEwoNCgUEAQIJARIE8QIUJwoNCgUEAQIJAxIE8QIqLApHCgIEAhIG9QIA+wIBGjkgQSBjdXN0b20gcGF0dGVybiBpcyB1c2VkIGZvciBkZWZpbmluZyBjdXN0b20gSFRUUCB2ZXJiLgoKCwoDBAIBEgT1AggZCjIKBAQCAgASBPcCAhIaJCBUaGUgbmFtZSBvZiB0aGlzIGN1c3RvbSBIVFRQIHZlcmIuCgoNCgUEAgIABRIE9wICCAoNCgUEAgIAARIE9wIJDQoNCgUEAgIAAxIE9wIQEQo1CgQEAgIBEgT6AgISGicgVGhlIHBhdGggbWF0Y2hlZCBieSB0aGlzIGN1c3RvbSB2ZXJiLgoKDQoFBAICAQUSBPoCAggKDQoFBAICAQESBPoCCQ0KDQoFBAICAQMSBPoCEBFiBnByb3RvMwr6jgQKIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvEg9nb29nbGUucHJvdG9idWYiTQoRRmlsZURlc2NyaXB0b3JTZXQSOAoEZmlsZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvUgRmaWxlIpgFChNGaWxlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHcGFja2FnZRgCIAEoCVIHcGFja2FnZRIeCgpkZXBlbmRlbmN5GAMgAygJUgpkZXBlbmRlbmN5EisKEXB1YmxpY19kZXBlbmRlbmN5GAogAygFUhBwdWJsaWNEZXBlbmRlbmN5EicKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBVIOd2Vha0RlcGVuZGVuY3kSQwoMbWVzc2FnZV90eXBlGAQgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1ILbWVzc2FnZVR5cGUSQQoJZW51bV90eXBlGAUgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlEkEKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJvdG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4EjIKB2VkaXRpb24YDiABKA4yGC5nb29nbGUucHJvdG9idWYuRWRpdGlvblIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCLHBAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uElkKC2RlY2xhcmF0aW9uGAIgAygLMjIuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5EZWNsYXJhdGlvbkIDiAECUgtkZWNsYXJhdGlvbhI3CghmZWF0dXJlcxgyIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UghmZWF0dXJlcxJoCgx2ZXJpZmljYXRpb24YAyABKA4yOC5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zLlZlcmlmaWNhdGlvblN0YXRlOgpVTlZFUklGSUVEUgx2ZXJpZmljYXRpb24alAEKC0RlY2xhcmF0aW9uEhYKBm51bWJlchgBIAEoBVIGbnVtYmVyEhsKCWZ1bGxfbmFtZRgCIAEoCVIIZnVsbE5hbWUSEgoEdHlwZRgDIAEoCVIEdHlwZRIaCghyZXNlcnZlZBgFIAEoCFIIcmVzZXJ2ZWQSGgoIcmVwZWF0ZWQYBiABKAhSCHJlcGVhdGVkSgQIBBAFIjQKEVZlcmlmaWNhdGlvblN0YXRlEg8KC0RFQ0xBUkFUSU9OEAASDgoKVU5WRVJJRklFRBABKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUEVBVEVEEAMSEgoOTEFCRUxfUkVRVUlSRUQQAiJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIsoJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlEjcKCGZlYXR1cmVzGDIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci9AMKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJWCiZkZXByZWNhdGVkX2xlZ2FjeV9qc29uX2ZpZWxkX2NvbmZsaWN0cxgLIAEoCEICGAFSImRlcHJlY2F0ZWRMZWdhY3lKc29uRmllbGRDb25mbGljdHMSNwoIZmVhdHVyZXMYDCABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAQQBUoECAUQBkoECAYQB0oECAgQCUoECAkQCiKtCgoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSLgoPdW52ZXJpZmllZF9sYXp5GA8gASgIOgVmYWxzZVIOdW52ZXJpZmllZExhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSKAoMZGVidWdfcmVkYWN0GBAgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSSwoJcmV0ZW50aW9uGBEgASgOMi0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25SZXRlbnRpb25SCXJldGVudGlvbhJICgd0YXJnZXRzGBMgAygOMi4uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25UYXJnZXRUeXBlUgd0YXJnZXRzElcKEGVkaXRpb25fZGVmYXVsdHMYFCADKAsyLC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkVkaXRpb25EZWZhdWx0Ug9lZGl0aW9uRGVmYXVsdHMSNwoIZmVhdHVyZXMYFSABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24aWgoORWRpdGlvbkRlZmF1bHQSMgoHZWRpdGlvbhgDIAEoDjIYLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uUgdlZGl0aW9uEhQKBXZhbHVlGAIgASgJUgV2YWx1ZSIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACIlUKD09wdGlvblJldGVudGlvbhIVChFSRVRFTlRJT05fVU5LTk9XThAAEhUKEVJFVEVOVElPTl9SVU5USU1FEAESFAoQUkVURU5USU9OX1NPVVJDRRACIowCChBPcHRpb25UYXJnZXRUeXBlEhcKE1RBUkdFVF9UWVBFX1VOS05PV04QABIUChBUQVJHRVRfVFlQRV9GSUxFEAESHwobVEFSR0VUX1RZUEVfRVhURU5TSU9OX1JBTkdFEAISFwoTVEFSR0VUX1RZUEVfTUVTU0FHRRADEhUKEVRBUkdFVF9UWVBFX0ZJRUxEEAQSFQoRVEFSR0VUX1RZUEVfT05FT0YQBRIUChBUQVJHRVRfVFlQRV9FTlVNEAYSGgoWVEFSR0VUX1RZUEVfRU5VTV9FTlRSWRAHEhcKE1RBUkdFVF9UWVBFX1NFUlZJQ0UQCBIWChJUQVJHRVRfVFlQRV9NRVRIT0QQCSoJCOgHEICAgIACSgQIBBAFSgQIEhATIqwBCgxPbmVvZk9wdGlvbnMSNwoIZmVhdHVyZXMYASABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLRAgoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSVgomZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMYBiABKAhCAhgBUiJkZXByZWNhdGVkTGVnYWN5SnNvbkZpZWxkQ29uZmxpY3RzEjcKCGZlYXR1cmVzGAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYigQIKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSNwoIZmVhdHVyZXMYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSKAoMZGVidWdfcmVkYWN0GAMgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLVAQoOU2VydmljZU9wdGlvbnMSNwoIZmVhdHVyZXMYIiABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKZAwoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSNwoIZmVhdHVyZXMYIyABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiL8CQoKRmVhdHVyZVNldBKLAQoOZmllbGRfcHJlc2VuY2UYASABKA4yKS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5GaWVsZFByZXNlbmNlQjmIAQGYAQSYAQGiAQ0SCEVYUExJQ0lUGOYHogENEghJTVBMSUNJVBjnB6IBDRIIRVhQTElDSVQY6AdSDWZpZWxkUHJlc2VuY2USZgoJZW51bV90eXBlGAIgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuRW51bVR5cGVCI4gBAZgBBpgBAaIBCxIGQ0xPU0VEGOYHogEJEgRPUEVOGOcHUghlbnVtVHlwZRKSAQoXcmVwZWF0ZWRfZmllbGRfZW5jb2RpbmcYAyABKA4yMS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5SZXBlYXRlZEZpZWxkRW5jb2RpbmdCJ4gBAZgBBJgBAaIBDRIIRVhQQU5ERUQY5geiAQsSBlBBQ0tFRBjnB1IVcmVwZWF0ZWRGaWVsZEVuY29kaW5nEngKD3V0ZjhfdmFsaWRhdGlvbhgEIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlV0ZjhWYWxpZGF0aW9uQiOIAQGYAQSYAQGiAQkSBE5PTkUY5geiAQsSBlZFUklGWRjnB1IOdXRmOFZhbGlkYXRpb24SeAoQbWVzc2FnZV9lbmNvZGluZxgFIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lk1lc3NhZ2VFbmNvZGluZ0IgiAEBmAEEmAEBogEUEg9MRU5HVEhfUFJFRklYRUQY5gdSD21lc3NhZ2VFbmNvZGluZxJ8Cgtqc29uX2Zvcm1hdBgGIAEoDjImLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lkpzb25Gb3JtYXRCM4gBAZgBA5gBBpgBAaIBFxISTEVHQUNZX0JFU1RfRUZGT1JUGOYHogEKEgVBTExPVxjnB1IKanNvbkZvcm1hdCJcCg1GaWVsZFByZXNlbmNlEhoKFkZJRUxEX1BSRVNFTkNFX1VOS05PV04QABIMCghFWFBMSUNJVBABEgwKCElNUExJQ0lUEAISEwoPTEVHQUNZX1JFUVVJUkVEEAMiNwoIRW51bVR5cGUSFQoRRU5VTV9UWVBFX1VOS05PV04QABIICgRPUEVOEAESCgoGQ0xPU0VEEAIiVgoVUmVwZWF0ZWRGaWVsZEVuY29kaW5nEiMKH1JFUEVBVEVEX0ZJRUxEX0VOQ09ESU5HX1VOS05PV04QABIKCgZQQUNLRUQQARIMCghFWFBBTkRFRBACIkMKDlV0ZjhWYWxpZGF0aW9uEhsKF1VURjhfVkFMSURBVElPTl9VTktOT1dOEAASCAoETk9ORRABEgoKBlZFUklGWRACIlMKD01lc3NhZ2VFbmNvZGluZxIcChhNRVNTQUdFX0VOQ09ESU5HX1VOS05PV04QABITCg9MRU5HVEhfUFJFRklYRUQQARINCglERUxJTUlURUQQAiJICgpKc29uRm9ybWF0EhcKE0pTT05fRk9STUFUX1VOS05PV04QABIJCgVBTExPVxABEhYKEkxFR0FDWV9CRVNUX0VGRk9SVBACKgYI6AcQ6QcqBgjpBxDqByoGCItOEJBOSgYI5wcQ6Aci/gIKEkZlYXR1cmVTZXREZWZhdWx0cxJYCghkZWZhdWx0cxgBIAMoCzI8Lmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0RGVmYXVsdHMuRmVhdHVyZVNldEVkaXRpb25EZWZhdWx0UghkZWZhdWx0cxJBCg9taW5pbXVtX2VkaXRpb24YBCABKA4yGC5nb29nbGUucHJvdG9idWYuRWRpdGlvblIObWluaW11bUVkaXRpb24SQQoPbWF4aW11bV9lZGl0aW9uGAUgASgOMhguZ29vZ2xlLnByb3RvYnVmLkVkaXRpb25SDm1heGltdW1FZGl0aW9uGocBChhGZWF0dXJlU2V0RWRpdGlvbkRlZmF1bHQSMgoHZWRpdGlvbhgDIAEoDjIYLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uUgdlZGl0aW9uEjcKCGZlYXR1cmVzGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLQAgoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGusBCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZBJSCghzZW1hbnRpYxgFIAEoDjI2Lmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uLlNlbWFudGljUghzZW1hbnRpYyIoCghTZW1hbnRpYxIICgROT05FEAASBwoDU0VUEAESCQoFQUxJQVMQAirqAQoHRWRpdGlvbhITCg9FRElUSU9OX1VOS05PV04QABITCg5FRElUSU9OX1BST1RPMhDmBxITCg5FRElUSU9OX1BST1RPMxDnBxIRCgxFRElUSU9OXzIwMjMQ6AcSFwoTRURJVElPTl8xX1RFU1RfT05MWRABEhcKE0VESVRJT05fMl9URVNUX09OTFkQAhIdChdFRElUSU9OXzk5OTk3X1RFU1RfT05MWRCdjQYSHQoXRURJVElPTl85OTk5OF9URVNUX09OTFkQno0GEh0KF0VESVRJT05fOTk5OTlfVEVTVF9PTkxZEJ+NBkJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSpK0AwoHEgUmAMEJAQqqDwoBDBIDJgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBkaXJlY3RseSB0byBhIEZpbGVEZXNjcmlwdG9yUHJvdG8KIHdpdGhvdXQgYW55IG90aGVyIGluZm9ybWF0aW9uIChlLmcuIHdpdGhvdXQgcmVhZGluZyBpdHMgaW1wb3J0cykuCgoICgECEgMoABgKCAoBCBIDKgBECgkKAggLEgMqAEQKCAoBCBIDKwAsCgkKAggBEgMrACwKCAoBCBIDLAAxCgkKAggIEgMsADEKCAoBCBIDLQA3CgkKAgglEgMtADcKCAoBCBIDLgAhCgkKAggkEgMuACEKCAoBCBIDLwAfCgkKAggfEgMvAB8KCAoBCBIDMwAcCn8KAggJEgMzABwadCBkZXNjcmlwdG9yLnByb3RvIG11c3QgYmUgb3B0aW1pemVkIGZvciBzcGVlZCBiZWNhdXNlIHJlZmxlY3Rpb24tYmFzZWQKIGFsZ29yaXRobXMgZG9uJ3Qgd29yayBkdXJpbmcgYm9vdHN0cmFwcGluZy4KCmoKAgQAEgQ3ADkBGl4gVGhlIHByb3RvY29sIGNvbXBpbGVyIGNhbiBvdXRwdXQgYSBGaWxlRGVzY3JpcHRvclNldCBjb250YWlu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JRqkCSBJZiB0cnVlLCB0aGlzIGlzIGEgcHJvdG8zICJvcHRpb25hbCIuIFdoZW4gYSBwcm90bzMgZmllbGQgaXMgb3B0aW9uYWwsIGl0CiB0cmFja3MgcHJlc2VuY2UgcmVnYXJkbGVzcyBvZiBmaWVsZCB0eXBlLgoKIFdoZW4gcHJvdG8zX29wdGlvbmFsIGlzIHRydWUsIHRoaXMgZmllbGQgbXVzdCBiZSBiZWxvbmcgdG8gYSBvbmVvZiB0bwogc2lnbmFsIHRvIG9sZCBwcm90bzMgY2xpZW50cyB0aGF0IHByZXNlbmNlIGlzIHRyYWNrZWQgZm9yIHRoaXMgZmllbGQuIFRoaXMKIG9uZW9mIGlzIGtub3duIGFzIGEgInN5bnRoZXRpYyIgb25lb2YsIGFuZCB0aGlzIGZpZWxkIG11c3QgYmUgaXRzIHNvbGUKIG1lbWJlciAoZWFjaCBwcm90bzMgb3B0aW9uYWwgZmllbGQgZ2V0cyBpdHMgb3duIHN5bnRoZXRpYyBvbmVvZikuIFN5bnRoZXRpYwogb25lb2ZzIGV4aXN0IGluIHRoZSBkZXNjcmlwdG9yIG9ubHksIGFuZCBkbyBub3QgZ2VuZXJhdGUgYW55IEFQSS4gU3ludGhldGljCiBvbmVvZnMgbXVzdCBiZSBvcmRlcmVkIGFmdGVyIGFsbCAicmVhbCIgb25lb2ZzLgoKIEZvciBtZXNzYWdlIGZpZWxkcywgcHJvdG8zX29wdGlvbmFsIGRvZXNuJ3QgY3JlYXRlIGFueSBzZW1hbnRpYyBjaGFuZ2UsCiBzaW5jZSBub24tcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgYWx3YXlzIHRyYWNrIHByZXNlbmNlLiBIb3dldmVyIGl0IHN0aWxsCiBpbmRpY2F0ZXMgdGhlIHNlbWFudGljIGRldGFpbCBvZiB3aGV0aGVyIHRoZSB1c2VyIHdyb3RlICJvcHRpb25hbCIgb3Igbm90LgogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciByb3VuZC10cmlwcGluZyB0aGUgLnByb3RvIGZpbGUuIEZvciBjb25zaXN0ZW5jeSB3ZQogZ2l2ZSBtZXNzYWdlIGZpZWxkcyBhIHN5bnRoZXRpYyBvbmVvZiBhbHNvLCBldmVuIHRob3Vn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IHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgShAwgTCvQBCgQECgIAEgSnAwIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEpwMCCgoNCgUECgIABRIEpwMLEQoNCgUECgIAARIEpwMSHgoNCgUECgIAAxIEpwMhIgrxAgoEBAoCARIErgMCKxriAiBDb250cm9scyB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlciBKYXZhIGNsYXNzIGdlbmVyYXRlZCBmb3IgdGhlIC5wcm90byBmaWxlLgogVGhhdCBjbGFzcyB3aWxsIGFsd2F5cyBjb250YWluIHRoZSAucHJvdG8gZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMKIHdlbGwgYXMgYW55IHRvcC1sZXZlbCBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhlIC5wcm90byBmaWxlLgogSWYgamF2YV9tdWx0aXBsZV9maWxlcyBpcyBkaXNhYmxlZCwgdGhlbiBhbGwgdGhlIG90aGVyIGNsYXNzZXMgZnJvbSB0aGUKIC5wcm90byBmaWxlIHdpbGwgYmUgbmVzdGVkIGluc2lkZSB0aGUgc2luZ2xlIHdyYXBwZXIgb3V0ZXIgY2xhc3MuCgoNCgUECgIBBBIErgMCCgoNCgUECgIBBRIErgMLEQoNCgUECgIBARIErgMSJgoNCgUECgIBAxIErgMpKgqmAwoEBAoCAhIEtgMCOxqXAyBJZiBlbmFibGVkLCB0aGVuIHRoZSBKYXZhIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgYSBzZXBhcmF0ZSAuamF2YQogZmlsZSBmb3IgZWFjaCB0b3AtbGV2ZWwgbWVzc2FnZSwgZW51bSwgYW5kIHNlcnZpY2UgZGVmaW5lZCBpbiB0aGUgLnByb3RvCiBmaWxlLiAgVGh1cywgdGhlc2UgdHlwZXMgd2lsbCAqbm90KiBiZSBuZXN0ZWQgaW5zaWRlIHRoZSB3cmFwcGVyIGNsYXNzCiBuYW1lZCBieSBqYXZhX291dGVyX2NsYXNzbmFtZS4gIEhvd2V2ZXIsIHRoZSB3cmFwcGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBjb250YWluIHRoZSBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcyB3ZWxsIGFzIGFueQogdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCg0KBQQKAgIEEgS2AwIKCg0KBQQKAgIFEgS2AwsPCg0KBQQKAgIBEgS2AxAjCg0KBQQKAgIDEgS2AyYoCg0KBQQKAgIIEgS2Ayk6Cg0KBQQKAgIHEgS2AzQ5CikKBAQKAgMSBLkDAkUaGyBUaGlzIG9wdGlvbiBkb2VzIG5vdGhpbmcuCgoNCgUECgIDBBIEuQMCCgoNCgUECgID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aG91bGQgbm90IHVzZSB0aGlzIGZvciBhbnkgb3RoZXIgcmVhc29uOiAgSXQncyBsZXNzCiBlZmZpY2llbnQsIGhhcyBmZXdlciBmZWF0dXJlcywgYW5kIGlzIG1vcmUgY29tcGxpY2F0ZWQuCgogVGhlIG1lc3NhZ2UgbXVzdCBiZSBkZWZpbmVkIGV4YWN0bHkgYXMgZm9sbG93czoKICAgbWVzc2FnZSBGb28gewogICAgIG9wdGlvbiBtZXNzYWdlX3NldF93aXJlX2Zvcm1hdCA9IHRydWU7CiAgICAgZXh0ZW5zaW9ucyA0IHRvIG1heDsKICAgfQogTm90ZSB0aGF0IHRoZSBtZXNzYWdlIGNhbm5vdCBoYXZlIGFueSBkZWZpbmVkIGZpZWxkczsgTWVzc2FnZVNldHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0aW9ucyBhcmUgbm90IGVuZm9yY2VkIGJ5CiB0aGUgcHJvdG9jb2wgY29tcGlsZXIuCgoNCgUECwIABBIErQQCCgoNCgUECwIABRIErQQLDwoNCgUECwIAARIErQQQJwoNCgUECwIAAxIErQQqKwoNCgUECwIACBIErQQsPQoNCgUECwIABxIErQQ3PArrAQoEBAsCARIEsgQCRhrcASBEaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgc3RhbmRhcmQgImRlc2NyaXB0b3IoKSIgYWNjZXNzb3IsIHdoaWNoIGNhbgogY29uZmxpY3Qgd2l0aCBhIGZpZWxkIG9mIHRoZSBzYW1lIG5hbWUuICBUaGlzIGlzIG1lYW50IHRvIG1ha2UgbWlncmF0aW9uCiBmcm9tIHByb3RvMSBlYXNpZXI7IG5ldyBjb2RlIHNob3VsZCBhdm9pZCBmaWVsZHMgbmFtZWQgImRlc2NyaXB0b3IiLgoKDQoFBAsCAQQSBLIEAgoKDQoFBAsCAQUSBLIECw8KDQoFBAsCAQESBLIEEC8KDQoFBAsCAQMSBLIEMjMKDQoFBAsCAQgSBLIENEUKDQoFBAsCAQcSBLIEP0QK7gEKBAQLAgISBLgEAjEa3wEgSXMgdGhpcyBtZXNzYWdlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgS4BAIKCg0KBQQLAgIFEgS4BAsPCg0KBQQLAgIBEgS4BBAaCg0KBQQLAgIDEgS4BB0eCg0KBQQLAgIIEgS4BB8wCg0KBQQLAgIHEgS4BCovCgsKAwQLCRIEugQCEwoMCgQECwkAEgS6BAsMCg0KBQQLCQABEgS6BAsMCg0KBQQLCQACEgS6BAsMCgwKBAQLCQESBLoEDg8KDQoFBAsJAQESBLoEDg8KDQoFBAsJAQISBLoEDg8KDAoEBAsJAhIEugQREgoNCgUECwkCARIEugQREgoNCgUECwkCAhIEugQREgqgBgoEBAsCAxIE0QQCHhqRBiBOT1RFOiBEbyBub3Qgc2V0IHRoZSBvcHRpb24gaW4gLnByb3RvIGZpbGVzLiBBbHdheXMgdXNlIHRoZSBtYXBzIHN5bnRheAogaW5zdGVhZC4gVGhlIG9wdGlvbiBzaG91bGQgb25seSBiZSBpbXBsaWNpdGx5IHNldCBieSB0aGUgcHJvdG8gY29tcGlsZXIKIHBhcnNlci4KCiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50YXRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCg0KBQQLAgMEEgTRBAIKCg0KBQQLAgMFEgTRBAsPCg0KBQQLAgMBEgTRBBAZCg0KBQQLAgMDEgTRBBwdCiQKAwQLCRIE0wQCDSIXIGphdmFsaXRlX3NlcmlhbGl6YWJsZQoKDAoEBAsJAxIE0wQLDAoNCgUECwkDARIE0wQLDAoNCgUECwkDAhIE0wQLDAofCgMECwkSBNQEAg0iEiBqYXZhbmFub19hc19saXRlCgoMCgQECwkEEgTUBAsMCg0KBQQLCQQBEgTUBAsMCg0KBQQLCQQCEgTUBAsMCt0DCgQECwIEEgTgBAJQGs4DIEVuYWJsZSB0aGUgbGVnYWN5IGhhbmRsaW5nIG9mIEpTT04gZmllbGQgbmFtZSBjb25mbGljdHMuICBUaGlzIGxvd2VyY2FzZXMKIGFuZCBzdHJpcHMgdW5kZXJzY29yZWQgZnJvbSB0aGUgZmllbGRzIGJlZm9yZSBjb21wYXJpc29uIGluIHByb3RvMyBvbmx5LgogVGhlIG5ldyBiZWhhdmlvciB0YWtlcyBganNvbl9uYW1lYCBpbnRvIGFjY291bnQgYW5kIGFwcGxpZXMg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EgT+BAsMCg4KBgQMBAACAhIEgAUEFQoPCgcEDAQAAgIBEgSABQQQCg8KBwQMBAACAgISBIAFExQK0wMKBAQMAgESBIkFAhsaxAMgVGhlIHBhY2tlZCBvcHRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHJlcGVhdGVkIHByaW1pdGl2ZSBmaWVsZHMgdG8gZW5hYmxlCiBhIG1vcmUgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9uIHRoZSB3aXJlLiBSYXRoZXIgdGhhbiByZXBlYXRlZGx5CiB3cml0aW5nIHRoZSB0YWcgYW5kIHR5cGUgZm9yIGVhY2ggZWxlbWVudCwgdGhlIGVudGlyZSBhcnJheSBpcyBlbmNvZGVkIGFzCiBhIHNpbmdsZSBsZW5ndGgtZGVsaW1pdGVkIGJsb2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4gIFRoaXMgb3B0aW9uIGlzIHByb2hpYml0ZWQgaW4KIEVkaXRpb25zLCBidXQgdGhlIGByZXBlYXRlZF9maWVsZF9lbmNvZGluZ2AgZmVhdHVyZSBjYW4gYmUgdXNlZCB0byBjb250cm9sCiB0aGUgYmVoYXZpb3IuCgoNCgUEDAIBBBIEiQUCCgoNCgUEDAIBBRIEiQULDwoNCgUEDAIBARIEiQUQFgoNCgUEDAIBAxIEiQUZGgqaBQoEBAwCAhIElgUCMxqLBSBUaGUganN0eXBlIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBKYXZhU2NyaXB0IHR5cGUgdXNlZCBmb3IgdmFsdWVzIG9mIHRoZQogZmllbGQuICBUaGUgb3B0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGZvciA2NCBiaXQgaW50ZWdyYWwgYW5kIGZpeGVkIHR5cGVzCiAoaW50NjQsIHVpbnQ2NCwgc2ludDY0LCBmaXhlZDY0LCBzZml4ZWQ2NCkuICBBIGZpZWxkIHdpdGgganN0eXBlIEpTX1NUUklORwogaXMgcmVwcmVzZW50ZWQgYXMgSmF2YVNjcmlwdCBzdHJpbmcsIHdoaWNoIGF2b2lkcyBsb3NzIG9mIHByZWNpc2lvbiB0aGF0CiBjYW4gaGFwcGVuIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBmbG9hdGluZyBwb2ludCBKYXZhU2NyaXB0LgogU3BlY2lmeWluZyBKU19OVU1CRVIgZm9yIHRoZSBqc3R5cGUgY2F1c2VzIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBjb2RlIHRvCiB1c2UgdGhlIEphdmFTY3JpcHQgIm51bWJlciIgdHlwZS4gIFRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBvcHRpb24KIEpTX05PUk1BTCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCgogVGhpcyBvcHRpb24gaXMgYW4gZW51bSB0byBwZXJtaXQgYWRkaXRpb25hbCB0eXBlcyB0byBiZSBhZGRlZCwgZS5nLgogZ29vZy5tYXRoLkludGVnZXIuCgoNCgUEDAICBBIElgUCCgoNCgUEDAICBhIElgULEQoNCgUEDAICARIElgUSGAoNCgUEDAICAxIElgUbHAoNCgUEDAICCBIElgUdMgoNCgUEDAICBxIElgUoMQoOCgQEDAQBEgaXBQKgBQMKDQoFBAwEAQESBJcFBw0KJwoGBAwEAQIAEgSZBQQSGhcgVXNlIHRoZSBkZWZhdWx0IHR5cGUuCgoPCgcEDAQBAgABEgSZBQQNCg8KBwQMBAECAAISBJkFEBEKKQoGBAwEAQIBEgScBQQSGhkgVXNlIEphdmFTY3JpcHQgc3RyaW5ncy4KCg8KBwQMBAECAQESBJwFBA0KDwoHBAwEAQIBAhIEnAUQEQopCgYEDAQBAgISBJ8FBBIaGSBVc2UgSmF2YVNjcmlwdCBudW1iZXJzLgoKDwoHBAwEAQICARIEnwUEDQoPCgcEDAQBAgICEgSfBRARCv8NCgQEDAIDEgTABQIrGvANIFNob3VsZCB0aGlzIGZpZWxkIGJlIHBhcnNlZCBsYXppbHk/ICBMYXp5IGFwcGxpZXMgb25seSB0byBtZXNzYWdlLXR5cGUKIGZpZWxkcy4gIEl0IG1lYW5zIHRoYXQgd2hlbiB0aGUgb3V0ZXIgbWVzc2FnZSBpcyBpbml0aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKIEFzIG9mIE1heSAyMDIyLCBsYXp5IHZlcmlmaWVzIHRoZSBjb250ZW50cyBvZiB0aGUgYnl0ZSBzdHJlYW0gZHVyaW5nCiBwYXJzaW5nLiAgQW4gaW52YWxpZCBieXRlIHN0cmVhbSB3aWxsIGNhdXNlIHRoZSBvdmVyYWxsIHBhcnNpbmcgdG8gZmFpbC4KCg0KBQQMAgMEEgTABQIKCg0KBQQMAgMFEgTABQsPCg0KBQQMAgMBEgTABRAUCg0KBQQMAgMDEgTABRcYCg0KBQQMAgMIEgTABRkqCg0KBQQMAgMHEgTABSQpCq8BCgQEDAIEEgTFBQI3GqABIHVudmVyaWZpZWRfbGF6eSBkb2VzIG5vIGNvcnJlY3RuZXNzIGNoZWNrcyBvbiB0aGUgYnl0ZSBzdHJlYW0uIFRoaXMgc2hvdWxkCiBvbmx5IGJlIHVzZWQgd2hlcmUgbGF6eSB3aXRoIHZlcmlmaWNhdGlvbiBpcyBwcm9oaWJpdGl2ZSBmb3IgcGVyZm9ybWFuY2UKIHJlYXNvbnMuCgoNCgUEDAIEBBIExQUCCgoNCgUEDAIEBRIExQULDwoNCgUEDAIEARIExQUQHwoNCgUEDAIEAxIExQUiJAoNCgUEDAIECBIExQUlNgoNCgUEDAIEBxIExQUwNQroAQoEBAwCBRIEywUCMRrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgYWNjZXNzb3JzLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsIHRoaXMKIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgZmllbGRzLgoKDQoFBAwCBQQSBMsFAgoKDQoFBAwCBQUSBMsFCw8KDQoFBAwCBQESBMsFEBoKDQoFBAwCBQMSBMsFHR4KDQoFBAwCBQgSBMsFHzAKDQoFBAwCBQcSBMsFKi8KPwoEBAwCBhIEzgUCLBoxIEZvciBHb29nbGUtaW50ZXJuYWwgbWlncmF0aW9uIG9ubHkuIERvIG5vdCB1c2UuCgoNCgUEDAIGBBIEzgUCCgoNCgUEDAIGBRIEzgULDwoNCgUEDAIGARIEzgUQFAoNCgUEDAIGAxIEzgUXGQoNCgUEDAIGCBIEzgUaKwoNCgUEDAIGBxIEzgUlKgqXAQoEBAwCBxIE0gUCNBqIASBJbmRpY2F0ZSB0aGF0IHRoZSBmaWVsZCB2YWx1ZSBzaG91bGQgbm90IGJlIHByaW50ZWQgb3V0IHdoZW4gdXNpbmcgZGVidWcKIGZvcm1hdHMsIGUuZy4gd2hlbiB0aGUgZmllbGQgY29udGFpbnMgc2Vuc2l0aXZlIGNyZWRlbnRpYWxzLgoKDQoFBAwCBwQSBNIFAgoKDQoFBAwCBwUSBNIFCw8KDQoFBAwCBwESBNIFEBwKDQoFBAwCBwMSBNIFHyEKDQoFBAwCBwgSBNIFIjMKDQoFBAwCBwcSBNIFLTIKxQEKBAQMBAISBtcFAtsFAxq0ASBJZiBzZXQgdG8gUkVURU5USU9OX1NPVVJDRSwgdGhlIG9wdGlvbiB3aWxsIGJlIG9taXR0ZWQgZnJvbSB0aGUgYmluYXJ5LgogTm90ZTogYXMgb2YgSmFudWFyeSAyMDIzLCBzdXBwb3J0IGZvciB0aGlzIGlzIGluIHByb2dyZXNzIGFuZCBkb2VzIG5vdCB5ZXQKIGhhdmUgYW4gZWZmZWN0IChiLzI2NDU5MzQ4OSkuCgoNCgUEDAQCARIE1wUHFgoOCgYEDAQCAgASBNgFBBoKDwoHBAwEAgIAARIE2AUEFQoPCgcEDAQCAgACEgTYBRgZCg4KBgQMBAICARIE2QUEGgoPCgcEDAQCAgEBEgTZBQQVCg8KBwQMBAICAQISBNkFGBkKDgoGBAwEAgICEgTaBQQZCg8KBwQMBAICAgESBNoFBBQKDwoHBAwEAgICAhIE2gUXGAoMCgQEDAIIEgTdBQIqCg0KBQQMAggEEgTdBQIKCg0KBQQMAggGEgTdBQsaCg0KBQQMAggBEgTdBRskCg0KBQQMAggDEgTdBScpCq0CCgQEDAQDEgbjBQLuBQManAIgVGhpcyBpbmRpY2F0ZXMgdGhlIHR5cGVzIG9mIGVudGl0aWVzIHRoYXQgdGhlIGZpZWxkIG1heSBhcHBseSB0byB3aGVuIHVzZWQKIGFzIGFuIG9wdGlvbi4gSWYgaXQgaXMgdW5zZXQsIHRoZW4gdGhlIGZpZWxkIG1heSBiZSBmcmVlbHkgdXNlZCBhcyBhbgogb3B0aW9uIG9uIGFueSBraW5kIG9mIGVudGl0eS4gTm90ZTogYXMgb2YgSmFudWFyeSAyMDIzLCBzdXBwb3J0IGZvciB0aGlzIGlzCiBpbiBwcm9ncmVzcyBhbmQgZG9lcyBub3QgeWV0IGhhdmUgYW4gZWZmZWN0IChiLzI2NDU5MzQ4OSkuCgoNCgUEDAQDARIE4wUHFwoOCgYEDAQDAgASBOQFBBwKDwoHBAwEAwIAARIE5AUEFwoPCgcEDAQDAgACEgTkBRobCg4KBgQMBAMCARIE5QUEGQoPCgcEDAQDAgEBEgTlBQQUCg8KBwQMBAMCAQISBOUFFxgKDgoGBAwEAwICEgTmBQQkCg8KBwQMBAMCAgESBOYFBB8KDwoHBAwEAwICAhIE5gUiIwoOCgYEDAQDAgMSBOcFBBwKDwoHBAwEAwIDARIE5wUEFwoPCgcEDAQDAgMCEgTnBRobCg4KBgQMBAMCBBIE6AUEGgoPCgcEDAQDAgQBEgToBQQVCg8KBwQMBAMCBAISBOgFGBkKDgoGBAwEAwIFEgTpBQQaCg8KBwQMBAMCBQESBOkFBBUKDwoHBAwEAwIFAhIE6QUYGQoOCgYEDAQDAgYSBOoFBBkKDwoHBAwEAwIGARIE6gUEFAoPCgcEDAQDAgYCEgTqBRcYCg4KBgQMBAMCBxIE6wUEHwoPCgcEDAQDAgcBEgTrBQQaCg8KBwQMBAMCBwISBOsFHR4KDgoGBAwEAwIIEgTsBQQcCg8KBwQMBAMCCAESBOwFBBcKDwoHBAwEAwIIAhIE7AUaGwoOCgYEDAQDAgkSBO0FBBsKDwoHBAwEAwIJARIE7QUEFgoPCgcEDAQDAgkCEgTtBRkaCgwKBAQMAgkSBPAFAikKDQoFBAwCCQQSBPAFAgoKDQoFBAwCCQYSBPAFCxsKDQoFBAwCCQESBPAFHCMKDQoFBAwCCQMSBPAFJigKDgoEBAwDABIG8gUC9QUDCg0KBQQMAwABEgTyBQoYCg4KBgQMAwACABIE8wUEIQoPCgcEDAMAAgAEEgTzBQQMCg8KBwQMAwACAAYSBPMFDRQKDwoHBAwDAAIAARIE8wUVHAoPCgcEDAMAAgADEgTzBR8gCiIKBgQMAwACARIE9AUEHiISIFRleHRwcm90byB2YWx1ZS4KCg8KBwQMAwACAQQSBPQFBAwKDwoHBAwDAAIBBRIE9AUNEwoPCgcEDAMAAgEBEgT0BRQZCg8KBwQMAwACAQMSBPQFHB0KDAoEBAwCChIE9gUCMAoNCgUEDAIKBBIE9gUCCgoNCgUEDAIKBhIE9gULGQoNCgUEDAIKARIE9gUaKgoNCgUEDAIKAxIE9gUtLwo9CgQEDAILEgT5BQIkGi8gQW55IGZlYXR1cmVzIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljIGVkaXRpb24uCgoNCgUEDAILBBIE+QUCCgoNCgUEDAILBhIE+QULFQoNCgUEDAILARIE+QUWHgoNCgUEDAILAxIE+QUhIwpPCgQEDAIMEgT8BQI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEDAIMBBIE/AUCCgoNCgUEDAIMBhIE/AULHgoNCgUEDAIMARIE/AUfMwoNCgUEDAIMAxIE/AU2OQpaCgMEDAUSBP8FAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQMBQASBP8FDRgKDQoFBAwFAAESBP8FDREKDQoFBAwFAAISBP8FFRgKHAoDBAwJEgSBBgINIg8gcmVtb3ZlZCBqdHlwZQoKDAoEBAwJABIEgQYLDAoNCgUEDAkAARIEgQYLDAoNCgUEDAkAAhIEgQYLDAo5CgMEDAkSBIIGAg4iLCByZXNlcnZlIHRhcmdldCwgdGFyZ2V0X29ic29sZXRlX2RvX25vdF91c2UKCgwKBAQMCQESBIIGCw0KDQoFBAwJAQESBIIGCw0KDQoFBAwJAQISBIIGCw0KDAoCBA0SBoUGAI4GAQoLCgMEDQESBIUGCBQKPQoEBA0CABIEhwYCIxovIEFueSBmZWF0dXJlcyBkZWZpbmVkIGluIHRoZSBzcGVjaWZpYyBlZGl0aW9uLgoKDQoFBA0CAAQSBIcGAgoKDQoFBA0CAAYSBIcGCxUKDQoFBA0CAAESBIcGFh4KDQoFBA0CAAMSBIcGISIKTwoEBA0CARIEigYCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBA0CAQQSBIoGAgoKDQoFBA0CAQYSBIoGCx4KDQoFBA0CAQESBIoGHzMKDQoFBA0CAQMSBIoGNjkKWgoDBA0FEgSNBgIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEDQUAEgSNBg0YCg0KBQQNBQABEgSNBg0RCg0KBQQNBQACEgSNBhUYCgwKAgQOEgaQBgCuBgEKCwoDBA4BEgSQBggTCmAKBAQOAgASBJQGAiAaUiBTZXQgdGhpcyBvcHRpb24gdG8gdHJ1ZSB0byBhbGxvdyBtYXBwaW5nIGRpZmZlcmVudCB0YWcgbmFtZXMgdG8gdGhlIHNhbWUKIHZhbHVlLgoKDQoFBA4CAAQSBJQGAgoKDQoFBA4CAAUSBJQGCw8KDQoFBA4CAAESBJQGEBsKDQoFBA4CAAMSBJQGHh8K5QEKBAQOAgESBJoGAjEa1gEgSXMgdGhpcyBlbnVtIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIGVudW0sIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwgdGhpcwogaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBlbnVtcy4KCg0KBQQOAgEEEgSaBgIKCg0KBQQOAgEFEgSaBgsPCg0KBQQOAgEBEgSaBhAaCg0KBQQOAgEDEgSaBh0eCg0KBQQOAgEIEgSaBh8wCg0KBQQOAgEHEgSaBiovCh8KAwQOCRIEnAYCDSISIGphdmFuYW5vX2FzX2xpdGUKCgwKBAQOCQASBJwGCwwKDQoFBA4JAAESBJwGCwwKDQoFBA4JAAISBJwGCwwKyAIKBAQOAgISBKQGAk8auQIgRW5hYmxlIHRoZSBsZWdhY3kgaGFuZGxpbmcgb2YgSlNPTiBmaWVsZCBuYW1lIGNvbmZsaWN0cy4gIFRoaXMgbG93ZXJjYXNlcwogYW5kIHN0cmlwcyB1bmRlcnNjb3JlZCBmcm9tIHRoZSBmaWVsZHMgYmVmb3JlIGNvbXBhcmlzb24gaW4gcHJvdG8zIG9ubHkuCiBUaGUgbmV3IGJlaGF2aW9yIHRha2VzIGBqc29uX25hbWVgIGludG8gYWNjb3VudCBhbmQgYXBwbGllcyB0byBwcm90bzIgYXMKIHdlbGwuCiBUT0RPIFJlbW92ZSB0aGlzIGxlZ2FjeSBiZWhhdmlvciBvbmNlIGRvd25zdHJlYW0gdGVhbXMgaGF2ZQogaGFkIHRpbWUgdG8gbWlncmF0ZS4KCg0KBQQOAgIEEgSkBgIKCg0KBQQOAgIFEgSkBgsPCg0KBQQOAgIBEgSkBhA2Cg0KBQQOAgIDEgSkBjk6Cg0KBQQOAgIIEgSkBjtOCg4KBgQOAgIIAxIEpAY8TQo9CgQEDgIDEgSnBgIjGi8gQW55IGZlYXR1cmVzIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljIGVkaXRpb24uCgoNCgUEDgIDBBIEpwYCCgoNCgUEDgIDBhIEpwYLFQoNCgUEDgIDARIEpwYWHgoNCgUEDgIDAxIEpwYhIgpPCgQEDgIEEgSqBgI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEDgIEBBIEqgYCCgoNCgUEDgIEBhIEqgYLHgoNCgUEDgIEARIEqgYfMwoNCgUEDgIEAxIEqgY2OQpaCgMEDgUSBK0GAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQOBQASBK0GDRgKDQoFBA4FAAESBK0GDREKDQoFBA4FAAISBK0GFRgKDAoCBA8SBrAGAMQGAQoLCgMEDwESBLAGCBgK9wEKBAQPAgASBLUGAjEa6AEgSXMgdGhpcyBlbnVtIHZhbHVlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIGVudW0gdmFsdWUsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBlbnVtIHZhbHVlcy4KCg0KBQQPAgAEEgS1BgIKCg0KBQQPAgAFEgS1BgsPCg0KBQQPAgABEgS1BhAaCg0KBQQPAgADEgS1Bh0eCg0KBQQPAgAIEgS1Bh8wCg0KBQQPAgAHEgS1BiovCj0KBAQPAgESBLgGAiMaLyBBbnkgZmVhdHVyZXMgZGVmaW5lZCBpbiB0aGUgc3BlY2lmaWMgZWRpdGlvbi4KCg0KBQQPAgEEEgS4BgIKCg0KBQQPAgEGEgS4BgsVCg0KBQQPAgEBEgS4BhYeCg0KBQQPAgEDEgS4BiEiCq4BCgQEDwICEgS9BgIzGp8BIEluZGljYXRlIHRoYXQgZmllbGRzIGFubm90YXRlZCB3aXRoIHRoaXMgZW51bSB2YWx1ZSBzaG91bGQgbm90IGJlIHByaW50ZWQKIG91dCB3aGVuIHVzaW5nIGRlYnVnIGZvcm1hdHMsIGUuZy4gd2hlbiB0aGUgZmllbGQgY29udGFpbnMgc2Vuc2l0aXZlCiBjcmVkZW50aWFscy4KCg0KBQQPAgIEEgS9BgIKCg0KBQQPAgIFEgS9BgsPCg0KBQQPAgIBEgS9BhAcCg0KBQQPAgIDEgS9Bh8gCg0KBQQPAgIIEgS9BiEyCg0KBQQPAgIHEgS9BiwxCk8KBAQPAgMSBMAGAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQPAgMEEgTABgIKCg0KBQQPAgMGEgTABgseCg0KBQQPAgMBEgTABh8zCg0KBQQPAgMDEgTABjY5CloKAwQPBRIEwwYCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBA8FABIEwwYNGAoNCgUEDwUAARIEwwYNEQoNCgUEDwUAAhIEwwYVGAoMCgIEEBIGxgYA2wYBCgsKAwQQARIExgYIFgo9CgQEEAIAEgTJBgIkGi8gQW55IGZlYXR1cmVzIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljIGVkaXRpb24uCgoNCgUEEAIABBIEyQYCCgoNCgUEEAIABhIEyQYLFQoNCgUEEAIAARIEyQYWHgoNCgUEEAIAAxIEyQYhIwrZAwoEBBACARIE1AYCMhrfASBJcyB0aGlzIHNlcnZpY2UgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgc2VydmljZSwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIHNlcnZpY2VzLgoy6AEgTm90ZTogIEZpZWxkIG51bWJlcnMgMSB0aHJvdWdoIDMyIGFyZSByZXNlcnZlZCBmb3IgR29vZ2xlJ3MgaW50ZXJuYWwgUlBDCiAgIGZyYW1ld29yay4gIFdlIGFwb2xvZ2l6ZSBmb3IgaG9hcmRpbmcgdGhlc2UgbnVtYmVycyB0byBvdXJzZWx2ZXMsIGJ1dAogICB3ZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhlbSBsb25nIGJlZm9yZSB3ZSBkZWNpZGVkIHRvIHJlbGVhc2UgUHJvdG9jb2wKICAgQnVmZmVycy4KCg0KBQQQAgEEEgTUBgIKCg0KBQQQAgEFEgTUBgsPCg0KBQQQAgEBEgTUBhAaCg0KBQQQAgEDEgTUBh0fCg0KBQQQAgEIEgTUBiAxCg0KBQQQAgEHEgTUBiswCk8KBAQQAgISBNcGAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQQAgIEEgTXBgIKCg0KBQQQAgIGEgTXBgseCg0KBQQQAgIBEgTXBh8zCg0KBQQQAgIDEgTXBjY5CloKAwQQBRIE2gYCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBBAFABIE2gYNGAoNCgUEEAUAARIE2gYNEQoNCgUEEAUAAhIE2gYVGAoMCgIEERIG3QYA/QYBCgsKAwQRARIE3QYIFQrWAwoEBBECABIE6AYCMhrcASBJcyB0aGlzIG1ldGhvZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXRob2QsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXRob2RzLgoy6AEgTm90ZTogIEZpZWxkIG51bWJlcnMgMSB0aHJvdWdoIDMyIGFyZSByZXNlcnZlZCBmb3IgR29vZ2xlJ3MgaW50ZXJuYWwgUlBDCiAgIGZyYW1ld29yay4gIFdlIGFwb2xvZ2l6ZSBmb3IgaG9hcmRpbmcgdGhlc2UgbnVtYmVycyB0byBvdXJzZWx2ZXMsIGJ1dAogICB3ZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhlbSBsb25nIGJlZm9yZSB3ZSBkZWNpZGVkIHRvIHJlbGVhc2UgUHJvdG9jb2wKICAgQnVmZmVycy4KCg0KBQQRAgAEEgToBgIKCg0KBQQRAgAFEgToBgsPCg0KBQQRAgABEgToBhAaCg0KBQQRAgADEgToBh0fCg0KBQQRAgAIEgToBiAxCg0KBQQRAgAHEgToBiswCvABCgQEEQQAEgbtBgLxBgMa3wEgSXMgdGhpcyBtZXRob2Qgc2lkZS1lZmZlY3QtZnJlZSAob3Igc2FmZSBpbiBIVFRQIHBhcmxhbmNlKSwgb3IgaWRlbXBvdGVudCwKIG9yIG5laXRoZXI/IEhUVFAgYmFzZWQgUlBDIGltcGxlbWVudGF0aW9uIG1heSBjaG9vc2UgR0VUIHZlcmIgZm9yIHNhZmUKIG1ldGhvZHMsIGFuZCBQVVQgdmVyYiBmb3IgaWRlbXBvdGVudCBtZXRob2RzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgUE9TVC4KCg0KBQQRBAABEgTtBgcXCg4KBgQRBAACABIE7gYEHAoPCgcEEQQAAgABEgTuBgQXCg8KBwQRBAACAAISBO4GGhsKJAoGBBEEAAIBEgTvBgQYIhQgaW1wbGllcyBpZGVtcG90ZW50CgoPCgcEEQQAAgEBEgTvBgQTCg8KBwQRBAACAQISBO8GFhcKNwoGBBEEAAICEgTwBgQTIicgaWRlbXBvdGVudCwgYnV0IG1heSBoYXZlIHNpZGUgZWZmZWN0cwoKDwoHBBEEAAICARIE8AYEDgoPCgcEEQQAAgICEgTwBhESCg4KBAQRAgESBvIGAvMGJgoNCgUEEQIBBBIE8gYCCgoNCgUEEQIBBhIE8gYLGwoNCgUEEQIBARIE8gYcLQoNCgUEEQIBAxIE8gYwMgoNCgUEEQIBCBIE8wYGJQoNCgUEEQIBBxIE8wYRJAo9CgQEEQICEgT2BgIkGi8gQW55IGZlYXR1cmVzIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljIGVkaXRpb24uCgoNCgUEEQICBBIE9gYCCgoNCgUEEQICBhIE9gYLFQoNCgUEEQICARIE9gYWHgoNCgUEEQICAxIE9gYhIwpPCgQEEQIDEgT5BgI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQIDBBIE+QYCCgoNCgUEEQIDBhIE+QYLHgoNCgUEEQIDARIE+QYfMwoNCgUEEQIDAxIE+QY2OQpaCgMEEQUSBPwGAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBPwGDRgKDQoFBBEFAAESBPwGDREKDQoFBBEFAAISBPwGFRgKiwMKAgQSEgaFBwCZBwEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBIUHCBsKywIKBAQSAwASBosHAo4HAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNl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ZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGFudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQVAgAEEgTGCAIKCg0KBQQVAgAGEgTGCAsTCg0KBQQVAgABEgTGCBQcCg0KBQQVAgADEgTGCB8gCg4KBAQVAwASBscIApoJAwoNCgUEFQMAARIExwgKEgqJBwoGBBUDAAIAEgTfCAQsGvgGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uIG9jY3Vycy4KIEZvciBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQVAwACAAQSBN8IBAwKDwoHBBUDAAIABRIE3wgNEgoPCgcEFQMAAgABEgTfCBMXCg8KBwQVAwACAAMSBN8IGhsKDwoHBBUDAAIACBIE3wgcKwoQCggEFQMAAgAIAhIE3wgdKgrSAgoGBBUDAAIBEgTmCAQsGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQVAwACAQQSBOYIBAwKDwoHBBUDAAIBBRIE5ggNEgoPCgcEFQMAAgEBEgTmCBMXCg8KBwQVAwACAQMSBOYIGhsKDwoHBBUDAAIBCBIE5ggcKwoQCggEFQMAAgEIAhIE5ggdKgqlDAoGBBUDAAICEgSXCQQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gbW9vLgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gbW9vLgogICBvcHRpb25hbCBkb3VibGUgbW9vID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIG1vbyBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBhdHRhY2hlZAogICAgKiB0byBjb3JnZS4gIExlYWRpbmcgYXN0ZXJpc2tzCiAgICAqIHdpbGwgYmUgcmVtb3ZlZC4gKi8KICAgLyog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IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgECEgMQABMKCQoCAwASAxIAHwoJCgIDARIDEwAqCggKAQgSAxUAWAoJCgIICxIDFQBYCggKAQgSAxYAIgoJCgIIChIDFgAiCggKAQgSAxcAMQoJCgIICBIDFwAxCggKAQgSAxgAJwoJCgIIARIDGAAnCggKAQgSAxkAIgoJCgIIJBIDGQAiCgkKAQcSBBsAHgEKHAoCBwASAx0CGxoRIFNlZSBgSHR0cFJ1bGVgLgoKCgoDBwACEgMbByQKCgoDBwAGEgMdAgoKCgoDBwABEgMdCw8KCgoDBwADEgMdEhpiBnByb3RvMwqpCQoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8SBmhlYWx0aBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvIn0KDEhlYWx0aFN0YXR1cxI2CgVzdGF0ZRgBIAEoDjIgLmhlYWx0aC5IZWFsdGhTdGF0dXMuSGVhbHRoU3RhdGVSBXN0YXRlIjUKC0hlYWx0aFN0YXRlEgsKB0hFQUxUSFkQABIOCgpPVkVSTE9BREVEEAESCQoFRFlJTkcQAjJhCg1IZWFsdGhTZXJ2aWNlElAKD0dldEhlYWx0aFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULmhlYWx0aC5IZWFsdGhTdGF0dXMiD4LT5JMCCRIHL2hlYWx0aEJMChpvcmcub3BlbmNvcmQudm9sdGhhLmhlYWx0aFouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2hlYWx0aEqPBgoGEgQAACIBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDADMKCQoCCAESAwMAMwoICgECEgMFAA8KCQoCAwASAwcAJgoJCgIDARIDCAAlCjcKAgQAEgQLABYBGisgRW5jb2RlIGhlYWx0aCBzdGF0dXMgb2YgYSBWb2x0aGEgaW5zdGFuY2UKCgoKAwQAARIDCwgUCh0KBAQABAASBA4EEgUaDyBIZWFsdGggc3RhdGVzCgoMCgUEAAQAARIDDgkUCigKBgQABAACABIDDwgUIhkgVGhlIGluc3RhbmNlIGlzIGhlYWx0aHkKCg4KBwQABAACAAESAw8IDwoOCgcEAAQAAgACEgMPEhMKQAoGBAAEAAIBEgMQCBciMSBUaGUgaW5zdGFuY2UgaXMgb3ZlcmxvYWRlZCwgZGVjcmVhc2UgcXVlcnkgcmF0ZQoKDgoHBAAEAAIBARIDEAgSCg4KBwQABAACAQISAxAVFgpHCgYEAAQAAgISAxEIEiI4IFRoZSBpbnN0YW5jZSBpcyBpbiBhIGNyaXRpY2FsIGNvbmRpdGlvbiwgZG8gbm90IHVzZSBpdAoKDgoHBAAEAAICARIDEQgNCg4KBwQABAACAgISAxEQEQo+CgQEAAIAEgMVBBsaMSBDdXJyZW50IHN0YXRlIG9mIGhlYWx0aCBvZiB0aGlzIFZvbHRoYSBpbnN0YW5jZQoKDAoFBAACAAYSAxUEDwoMCgUEAAIAARIDFRAVCgwKBQQAAgADEgMVGBkKJQoCBgASBBkAIgEaGSBIZWFsdGggcmVsYXRlZCBzZXJ2aWNlcwoKCgoDBgABEgMZCBUKQQoEBgACABIEHAQgBRozIFJldHVybiBjdXJyZW50IGhlYWx0aCBzdGF0dXMgb2YgYSBWb2x0aGEgaW5zdGFuY2UKCgwKBQYAAgABEgMcCBcKDAoFBgACAAISAxwYLQoMCgUGAAIAAxIDHDhECg0KBQYAAgAEEgQdCB8KChEKCQYAAgAEsMq8IhIEHQgfCmIGcHJvdG8zCr3nBwofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxILb3BlbmZsb3dfMTMaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8iYwoKb2ZwX2hlYWRlchIYCgd2ZXJzaW9uGAEgASgNUgd2ZXJzaW9uEikKBHR5cGUYAiABKA4yFS5vcGVuZmxvd18xMy5vZnBfdHlwZVIEdHlwZRIQCgN4aWQYAyABKA1SA3hpZCKrAQoVb2ZwX2hlbGxvX2VsZW1faGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV90eXBlUgR0eXBlElEKDXZlcnNpb25iaXRtYXAYAiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyJPChFvZnBfZGV2aWNlX3N0YXR1cxI6CgZzdGF0dXMYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZGV2aWNlX2Nvbm5lY3Rpb25SBnN0YXR1cyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMifAoNb2ZwX2Vycm9yX21zZxIvCgZoZWFkZXIYASABKAsyFy5vcGVuZmxvd18xMy5vZnBfaGVhZGVyUgZoZWFkZXISEgoEdHlwZRgCIAEoDVIEdHlwZRISCgRjb2RlGAMgASgNUgRjb2RlEhIKBGRhdGEYBCABKAxSBGRhdGEigwEKGm9mcF9lcnJvcl9leHBlcmltZW50ZXJfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSIgoMZXhwZXJpbWVudGVyGAMgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgEIAEoDFIEZGF0YSJ2ChVvZnBfbXVsdGlwYXJ0X3JlcXVlc3QSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSJ0ChNvZnBfbXVsdGlwYXJ0X3JlcGx5EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkijwEKCG9mcF9kZXNjEhkKCG1mcl9kZXNjGAEgASgJUgdtZnJEZXNjEhcKB2h3X2Rlc2MYAiABKAlSBmh3RGVzYxIXCgdzd19kZXNjGAMgASgJUgZzd0Rlc2MSHQoKc2VyaWFsX251bRgEIAEoCVIJc2VyaWFsTnVtEhcKB2RwX2Rlc2MYBSABKAlSBmRwRGVzYyLSAQoWb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLFAwoOb2ZwX2Zsb3dfc3RhdHMSDgoCaWQYDiABKARSAmlkEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgCIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgDIAEoDVIMZHVyYXRpb25Oc2VjEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eRIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSFAoFZmxhZ3MYByABKA1SBWZsYWdzEhYKBmNvb2tpZRgIIAEoBFIGY29va2llEiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyLXAQobb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoInwKGW9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkSIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQSHQoKZmxvd19jb3VudBgDIAEoDVIJZmxvd0NvdW50Iu0DChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eRI8CgR0eXBlGAEgASgOMigub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlUgR0eXBlElYKDGluc3RydWN0aW9ucxgCIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zSABSDGluc3RydWN0aW9ucxJSCgtuZXh0X3RhYmxlcxgDIAEoCzIvLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXNIAFIKbmV4dFRhYmxlcxJHCgdhY3Rpb25zGAQgASgLMisub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zSABSB2FjdGlvbnMSOwoDb3htGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG1IAFIDb3htElYKDGV4cGVyaW1lbnRlchgGIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIHCgV2YWx1ZSJnCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9ucxJACgxpbnN0cnVjdGlvbnMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyJKCiJvZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzEiQKDm5leHRfdGFibGVfaWRzGAEgAygNUgxuZXh0VGFibGVJZHMiUwoeb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjUKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htEhcKB294bV9pZHMYAyADKA1SBm94bUlkcyKRAQojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAyABKA1SB2V4cFR5cGUSKwoRZXhwZXJpbWVudGVyX2RhdGEYBCADKA1SEGV4cGVyaW1lbnRlckRhdGEikwIKEm9mcF90YWJsZV9mZWF0dXJlcxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBISCgRuYW1lGAIgASgJUgRuYW1lEiUKDm1ldGFkYXRhX21hdGNoGAMgASgEUg1tZXRhZGF0YU1hdGNoEiUKDm1ldGFkYXRhX3dyaXRlGAQgASgEUg1tZXRhZGF0YVdyaXRlEhYKBmNvbmZpZxgFIAEoDVIGY29uZmlnEh8KC21heF9lbnRyaWVzGAYgASgNUgptYXhFbnRyaWVzEkcKCnByb3BlcnRpZXMYByADKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eVIKcHJvcGVydGllcyKXAQoPb2ZwX3RhYmxlX3N0YXRzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGFjdGl2ZV9jb3VudBgCIAEoDVILYWN0aXZlQ291bnQSIQoMbG9va3VwX2NvdW50GAMgASgEUgtsb29rdXBDb3VudBIjCg1tYXRjaGVkX2NvdW50GAQgASgEUgxtYXRjaGVkQ291bnQiMQoWb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8i3QMKDm9mcF9wb3J0X3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIdCgpyeF9wYWNrZXRzGAIgASgEUglyeFBhY2tldHMSHQoKdHhfcGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgEUgdyeEJ5dGVzEhkKCHR4X2J5dGVzGAUgASgEUgd0eEJ5dGVzEh0KCnJ4X2Ryb3BwZWQYBiABKARSCXJ4RHJvcHBlZBIdCgp0eF9kcm9wcGVkGAcgASgEUgl0eERyb3BwZWQSGwoJcnhfZXJyb3JzGAggASgEUghyeEVycm9ycxIbCgl0eF9lcnJvcnMYCSABKARSCHR4RXJyb3JzEiAKDHJ4X2ZyYW1lX2VychgKIAEoBFIKcnhGcmFtZUVychIeCgtyeF9vdmVyX2VychgLIAEoBFIJcnhPdmVyRXJyEhwKCnJ4X2NyY19lcnIYDCABKARSCHJ4Q3JjRXJyEh4KCmNvbGxpc2lvbnMYDSABKARSCmNvbGxpc2lvbnMSIQoMZHVyYXRpb25fc2VjGA4gASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGA8gASgNUgxkdXJhdGlvbk5zZWMiNAoXb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiVgoSb2ZwX2J1Y2tldF9jb3VudGVyEiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50IpcCCg9vZnBfZ3JvdXBfc3RhdHMSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSGwoJcmVmX2NvdW50GAIgASgNUghyZWZDb3VudBIhCgxwYWNrZXRfY291bnQYAyABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYBCABKARSCWJ5dGVDb3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJCCgxidWNrZXRfc3RhdHMYByADKAsyHy5vcGVuZmxvd18xMy5vZnBfYnVja2V0X2NvdW50ZXJSC2J1Y2tldFN0YXRzIo8BCg5vZnBfZ3JvdXBfZGVzYxIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAiABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMidgoPb2ZwX2dyb3VwX2VudHJ5Ei8KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3IifAoPb2ZwX21ldGVyX2VudHJ5EjUKBmNvbmZpZxgBIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBmNvbmZpZxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IFc3RhdHMidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siawoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kEhAKA3hpZBgDIAEoDVIDeGlkIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJpCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kEhAKA3hpZBgDIAEoDVIDeGlkInEKFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZBIQCgN4aWQYAyABKA1SA3hpZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI8CgZNZXRlcnMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfZW50cnlSBWl0ZW1zIkAKCkZsb3dHcm91cHMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZW50cnlSBWl0ZW1zImkKC0Zsb3dDaGFuZ2VzEikKBnRvX2FkZBgBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgV0b0FkZBIvCgl0b19yZW1vdmUYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IIdG9SZW1vdmUirgEKEEZsb3dHcm91cENoYW5nZXMSLgoGdG9fYWRkGAEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IFdG9BZGQSNAoJdG9fcmVtb3ZlGAIgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9SZW1vdmUSNAoJdG9fdXBkYXRlGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9VcGRhdGUiUwoIUGFja2V0SW4SDgoCaWQYASABKAlSAmlkEjcKCXBhY2tldF9pbhgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5SCHBhY2tldEluIlcKCVBhY2tldE91dBIOCgJpZBgBIAEoCVICaWQSOgoKcGFja2V0X291dBgCIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UglwYWNrZXRPdXQi4gEKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzEjIKBWVycm9yGAMgASgLMhoub3BlbmZsb3dfMTMub2ZwX2Vycm9yX21zZ0gAUgVlcnJvchJFCg1kZXZpY2Vfc3RhdHVzGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2RldmljZV9zdGF0dXNIAFIMZGV2aWNlU3RhdHVzQgcKBWV2ZW50IkUKDEZsb3dNZXRhZGF0YRI1CgZtZXRlcnMYASADKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZtZXRlcnMq1QEKC29mcF9wb3J0X25vEhAKDE9GUFBfSU5WQUxJRBAAEhAKCE9GUFBfTUFYEID+//8HEhQKDE9GUFBfSU5fUE9SVBD4////BxISCgpPRlBQX1RBQkxFEPn///8HEhMKC09GUFBfTk9STUFMEPr///8HEhIKCk9GUFBfRkxPT0QQ+////wcSEAoIT0ZQUF9BTEwQ/P///wcSFwoPT0ZQUF9DT05UUk9MTEVSEP3///8HEhIKCk9GUFBfTE9DQUwQ/v///wcSEAoIT0ZQUF9BTlkQ/////wcqyAUKCG9mcF90eXBlEg4KCk9GUFRfSEVMTE8QABIOCgpPRlBUX0VSUk9SEAESFQoRT0ZQVF9FQ0hPX1JFUVVFU1QQAhITCg9PRlBUX0VDSE9fUkVQTFkQAxIVChFPRlBUX0VYUEVSSU1FTlRFUhAEEhkKFU9GUFRfRkVBVFVSRVNfUkVRVUVTVBAFEhcKE09GUFRfRkVBVFVSRVNfUkVQTFkQBhIbChdPRlBUX0dFVF9DT05GSUdfUkVRVUVTVBAHEhkKFU9GUFRfR0VUX0NPTkZJR19SRVBMWRAIEhMKD09GUFRfU0VUX0NPTkZJRxAJEhIKDk9GUFRfUEFDS0VUX0lOEAoSFQoRT0ZQVF9GTE9XX1JFTU9WRUQQCxIUChBPRlBUX1BPUlRfU1RBVFVTEAwSEwoPT0ZQVF9QQUNLRVRfT1VUEA0SEQoNT0ZQVF9GTE9XX01PRBAOEhIKDk9GUFRfR1JPVVBfTU9EEA8SEQoNT0ZQVF9QT1JUX01PRBAQEhIKDk9GUFRfVEFCTEVfTU9EEBESGgoWT0ZQVF9NVUxUSVBBUlRfUkVRVUVTVBASEhgKFE9GUFRfTVVMVElQQVJUX1JFUExZEBMSGAoUT0ZQVF9CQVJSSUVSX1JFUVVFU1QQFBIWChJPRlBUX0JBUlJJRVJfUkVQTFkQFRIhCh1PRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVRVUVTVBAWEh8KG09GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVBMWRAXEhUKEU9GUFRfUk9MRV9SRVFVRVNUEBgSEwoPT0ZQVF9ST0xFX1JFUExZEBkSGgoWT0ZQVF9HRVRfQVNZTkNfUkVRVUVTVBAaEhgKFE9GUFRfR0VUX0FTWU5DX1JFUExZEBsSEgoOT0ZQVF9TRVRfQVNZTkMQHBISCg5PRlBUX01FVEVSX01PRBAdKkMKE29mcF9oZWxsb19lbGVtX3R5cGUSEgoOT0ZQSEVUX0lOVkFMSUQQABIYChRPRlBIRVRfVkVSU0lPTkJJVE1BUBABKmUKEG9mcF9jb25maWdfZmxhZ3MSFAoQT0ZQQ19GUkFHX05PUk1BTBAAEhIKDk9GUENfRlJBR19EUk9QEAESEwoPT0ZQQ19GUkFHX1JFQVNNEAISEgoOT0ZQQ19GUkFHX01BU0sQAypAChBvZnBfdGFibGVfY29uZmlnEhEKDU9GUFRDX0lOVkFMSUQQABIZChVPRlBUQ19ERVBSRUNBVEVEX01BU0sQAyo+CglvZnBfdGFibGUSEQoNT0ZQVFRfSU5WQUxJRBAAEg4KCU9GUFRUX01BWBD+ARIOCglPRlBUVF9BTEwQ/wEquwEKEG9mcF9jYXBhYmlsaXRpZXMSEAoMT0ZQQ19JTlZBTElEEAASEwoPT0ZQQ19GTE9XX1NUQVRTEAESFAoQT0ZQQ19UQUJMRV9TVEFUUxACEhMKD09GUENfUE9SVF9TVEFUUxAEEhQKEE9GUENfR1JPVVBfU1RBVFMQCBIRCg1PRlBDX0lQX1JFQVNNECASFAoQT0ZQQ19RVUVVRV9TVEFUUxBAEhYKEU9GUENfUE9SVF9CTE9DS0VEEIACKnYKD29mcF9wb3J0X2NvbmZpZxIRCg1PRlBQQ19JTlZBTElEEAASEwoPT0ZQUENfUE9SVF9ET1dOEAESEQoNT0ZQUENfTk9fUkVDVhAEEhAKDE9GUFBDX05PX0ZXRBAgEhYKEk9GUFBDX05PX1BBQ0tFVF9JThBAKlsKDm9mcF9wb3J0X3N0YXRlEhEKDU9GUFBTX0lOVkFMSUQQABITCg9PRlBQU19MSU5LX0RPV04QARIRCg1PRlBQU19CTE9DS0VEEAISDgoKT0ZQUFNfTElWRRAEKt0CChFvZnBfcG9ydF9mZWF0dXJlcxIRCg1PRlBQRl9JTlZBTElEEAASEQoNT0ZQUEZfMTBNQl9IRBABEhEKDU9GUFBGXzEwTUJfRkQQAhISCg5PRlBQRl8xMDBNQl9IRBAEEhIKDk9GUFBGXzEwME1CX0ZEEAgSEAoMT0ZQUEZfMUdCX0hEEBASEAoMT0ZQUEZfMUdCX0ZEECASEQoNT0ZQUEZfMTBHQl9GRBBAEhIKDU9GUFBGXzQwR0JfRkQQgAESEwoOT0ZQUEZfMTAwR0JfRkQQgAISEQoMT0ZQUEZfMVRCX0ZEEIAEEhAKC09GUFBGX09USEVSEIAIEhEKDE9GUFBGX0NPUFBFUhCAEBIQCgtPRlBQRl9GSUJFUhCAIBISCg1PRlBQRl9BVVRPTkVHEIBAEhEKC09GUFBGX1BBVVNFEICAARIWChBPRlBQRl9QQVVTRV9BU1lNEICAAipECg9vZnBfcG9ydF9yZWFzb24SDQoJT0ZQUFJfQUREEAASEAoMT0ZQUFJfREVMRVRFEAESEAoMT0ZQUFJfTU9ESUZZEAIqRgoVb2ZwX2RldmljZV9jb25uZWN0aW9uEhQKEE9GUERFVl9DT05ORUNURUQQABIXChNPRlBERVZfRElTQ09OTkVDVEVEEAEqMwoOb2ZwX21hdGNoX3R5cGUSEgoOT0ZQTVRfU1RBTkRBUkQQABINCglPRlBNVF9PWE0QASprCg1vZnBfb3htX2NsYXNzEhAKDE9GUFhNQ19OWE1fMBAAEhAKDE9GUFhNQ19OWE1fMRABEhsKFU9GUFhNQ19PUEVORkxPV19CQVNJQxCAgAISGQoTT0ZQWE1DX0VYUEVSSU1FTlRFUhD//wMqkAgKE294bV9vZmJfZmllbGRfdHlwZXMSFgoST0ZQWE1UX09GQl9JTl9QT1JUEAASGgoWT0ZQWE1UX09GQl9JTl9QSFlfUE9SVBABEhcKE09GUFhNVF9PRkJfTUVUQURBVEEQAhIWChJPRlBYTVRfT0ZCX0VUSF9EU1QQAxIWChJPRlBYTVRfT0ZCX0VUSF9TUkMQBBIXChNPRlBYTVRfT0ZCX0VUSF9UWVBFEAUSFwoTT0ZQWE1UX09GQl9WTEFOX1ZJRBAGEhcKE09GUFhNVF9PRkJfVkxBTl9QQ1AQBxIWChJPRlBYTVRfT0ZCX0lQX0RTQ1AQCBIVChFPRlBYTVRfT0ZCX0lQX0VDThAJEhcKE09GUFhNVF9PRkJfSVBfUFJPVE8QChIXChNPRlBYTVRfT0ZCX0lQVjRfU1JDEAsSFwoTT0ZQWE1UX09GQl9JUFY0X0RTVBAMEhYKEk9GUFhNVF9PRkJfVENQX1NSQxANEhYKEk9GUFhNVF9PRkJfVENQX0RTVBAOEhYKEk9GUFhNVF9PRkJfVURQX1NSQxAPEhYKEk9GUFhNVF9PRkJfVURQX0RTVBAQEhcKE09GUFhNVF9PRkJfU0NUUF9TUkMQERIXChNPRlBYTVRfT0ZCX1NDVFBfRFNUEBISGgoWT0ZQWE1UX09GQl9JQ01QVjRfVFlQRRATEhoKFk9GUFhNVF9PRkJfSUNNUFY0X0NPREUQFBIVChFPRlBYTVRfT0ZCX0FSUF9PUBAVEhYKEk9GUFhNVF9PRkJfQVJQX1NQQRAWEhYKEk9GUFhNVF9PRkJfQVJQX1RQQRAXEhYKEk9GUFhNVF9PRkJfQVJQX1NIQRAYEhYKEk9GUFhNVF9PRkJfQVJQX1RIQRAZEhcKE09GUFhNVF9PRkJfSVBWNl9TUkMQGhIXChNPRlBYTVRfT0ZCX0lQVjZfRFNUEBsSGgoWT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTBAcEhoKFk9GUFhNVF9PRkJfSUNNUFY2X1RZUEUQHRIaChZPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFEB4SHQoZT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVBAfEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9TTEwQIBIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfVExMECESGQoVT0ZQWE1UX09GQl9NUExTX0xBQkVMECISFgoST0ZQWE1UX09GQl9NUExTX1RDECMSFwoTT0ZQWE1UX09GQl9NUExTX0JPUxAkEhcKE09GUFhNVF9PRkJfUEJCX0lTSUQQJRIYChRPRlBYTVRfT0ZCX1RVTk5FTF9JRBAmEhoKFk9GUFhNVF9PRkJfSVBWNl9FWFRIRFIQJyozCgtvZnBfdmxhbl9pZBIPCgtPRlBWSURfTk9ORRAAEhMKDk9GUFZJRF9QUkVTRU5UEIAgKskBChRvZnBfaXB2NmV4dGhkcl9mbGFncxISCg5PRlBJRUhfSU5WQUxJRBAAEhEKDU9GUElFSF9OT05FWFQQARIOCgpPRlBJRUhfRVNQEAISDwoLT0ZQSUVIX0FVVEgQBBIPCgtPRlBJRUhfREVTVBAIEg8KC09GUElFSF9GUkFHEBASEQoNT0ZQSUVIX1JPVVRFUhAgEg4KCk9GUElFSF9IT1AQQBIRCgxPRlBJRUhfVU5SRVAQgAESEQoMT0ZQSUVIX1VOU0VREIACKvwCCg9vZnBfYWN0aW9uX3R5cGUSEAoMT0ZQQVRfT1VUUFVUEAASFgoST0ZQQVRfQ09QWV9UVExfT1VUEAsSFQoRT0ZQQVRfQ09QWV9UVExfSU4QDBIWChJPRlBBVF9TRVRfTVBMU19UVEwQDxIWChJPRlBBVF9ERUNfTVBMU19UVEwQEBITCg9PRlBBVF9QVVNIX1ZMQU4QERISCg5PRlBBVF9QT1BfVkxBThASEhMKD09GUEFUX1BVU0hfTVBMUxATEhIKDk9GUEFUX1BPUF9NUExTEBQSEwoPT0ZQQVRfU0VUX1FVRVVFEBUSDwoLT0ZQQVRfR1JPVVAQFhIUChBPRlBBVF9TRVRfTldfVFRMEBcSFAoQT0ZQQVRfREVDX05XX1RUTBAYEhMKD09GUEFUX1NFVF9GSUVMRBAZEhIKDk9GUEFUX1BVU0hfUEJCEBoSEQoNT0ZQQVRfUE9QX1BCQhAbEhgKEk9GUEFUX0VYUEVSSU1FTlRFUhD//wMqVgoWb2ZwX2NvbnRyb2xsZXJfbWF4X2xlbhISCg5PRlBDTUxfSU5WQUxJRBAAEhAKCk9GUENNTF9NQVgQ5f8DEhYKEE9GUENNTF9OT19CVUZGRVIQ//8DKs8BChRvZnBfaW5zdHJ1Y3Rpb25fdHlwZRIRCg1PRlBJVF9JTlZBTElEEAASFAoQT0ZQSVRfR09UT19UQUJMRRABEhgKFE9GUElUX1dSSVRFX01FVEFEQVRBEAISFwoTT0ZQSVRfV1JJVEVfQUNUSU9OUxADEhcKE09GUElUX0FQUExZX0FDVElPTlMQBBIXChNPRlBJVF9DTEVBUl9BQ1RJT05TEAUSDwoLT0ZQSVRfTUVURVIQBhIYChJPRlBJVF9FWFBFUklNRU5URVIQ//8DKnsKFG9mcF9mbG93X21vZF9jb21tYW5kEg0KCU9GUEZDX0FERBAAEhAKDE9GUEZDX01PRElGWRABEhcKE09GUEZDX01PRElGWV9TVFJJQ1QQAhIQCgxPRlBGQ19ERUxFVEUQAxIXChNPRlBGQ19ERUxFVEVfU1RSSUNUEAQqowEKEm9mcF9mbG93X21vZF9mbGFncxIRCg1PRlBGRl9JTlZBTElEEAASFwoTT0ZQRkZfU0VORF9GTE9XX1JFTRABEhcKE09GUEZGX0NIRUNLX09WRVJMQVAQAhIWChJPRlBGRl9SRVNFVF9DT1VOVFMQBBIXChNPRlBGRl9OT19QS1RfQ09VTlRTEAgSFwoTT0ZQRkZfTk9fQllUX0NPVU5UUxAQKlMKCW9mcF9ncm91cBIQCgxPRlBHX0lOVkFMSUQQABIQCghPRlBHX01BWBCA/v//BxIQCghPRlBHX0FMTBD8////BxIQCghPRlBHX0FOWRD/////BypKChVvZnBfZ3JvdXBfbW9kX2NvbW1hbmQSDQoJT0ZQR0NfQUREEAASEAoMT0ZQR0NfTU9ESUZZEAESEAoMT0ZQR0NfREVMRVRFEAIqUwoOb2ZwX2dyb3VwX3R5cGUSDQoJT0ZQR1RfQUxMEAASEAoMT0ZQR1RfU0VMRUNUEAESEgoOT0ZQR1RfSU5ESVJFQ1QQAhIMCghPRlBHVF9GRhADKlAKFG9mcF9wYWNrZXRfaW5fcmVhc29uEhEKDU9GUFJfTk9fTUFUQ0gQABIPCgtPRlBSX0FDVElPThABEhQKEE9GUFJfSU5WQUxJRF9UVEwQAiqLAQoXb2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb24SFgoST0ZQUlJfSURMRV9USU1FT1VUEAASFgoST0ZQUlJfSEFSRF9USU1FT1VUEAESEAoMT0ZQUlJfREVMRVRFEAISFgoST0ZQUlJfR1JPVVBfREVMRVRFEAMSFgoST0ZQUlJfTUVURVJfREVMRVRFEAQqbgoJb2ZwX21ldGVyEg0KCU9GUE1fWkVSTxAAEhAKCE9GUE1fTUFYEICA/P8HEhUKDU9GUE1fU0xPV1BBVEgQ/f///wcSFwoPT0ZQTV9DT05UUk9MTEVSEP7///8HEhAKCE9GUE1fQUxMEP////8HKm0KE29mcF9tZXRlcl9iYW5kX3R5cGUSEgoOT0ZQTUJUX0lOVkFMSUQQABIPCgtPRlBNQlRfRFJPUBABEhYKEk9GUE1CVF9EU0NQX1JFTUFSSxACEhkKE09GUE1CVF9FWFBFUklNRU5URVIQ//8DKkoKFW9mcF9tZXRlcl9tb2RfY29tbWFuZBINCglPRlBNQ19BREQQABIQCgxPRlBNQ19NT0RJRlkQARIQCgxPRlBNQ19ERUxFVEUQAipnCg9vZnBfbWV0ZXJfZmxhZ3MSEQoNT0ZQTUZfSU5WQUxJRBAAEg4KCk9GUE1GX0tCUFMQARIPCgtPRlBNRl9QS1RQUxACEg8KC09GUE1GX0JVUlNUEAQSDwoLT0ZQTUZfU1RBVFMQCCqkAwoOb2ZwX2Vycm9yX3R5cGUSFgoST0ZQRVRfSEVMTE9fRkFJTEVEEAASFQoRT0ZQRVRfQkFEX1JFUVVFU1QQARIUChBPRlBFVF9CQURfQUNUSU9OEAISGQoVT0ZQRVRfQkFEX0lOU1RSVUNUSU9OEAMSEwoPT0ZQRVRfQkFEX01BVENIEAQSGQoVT0ZQRVRfRkxPV19NT0RfRkFJTEVEEAUSGgoWT0ZQRVRfR1JPVVBfTU9EX0ZBSUxFRBAGEhkKFU9GUEVUX1BPUlRfTU9EX0ZBSUxFRBAHEhoKFk9GUEVUX1RBQkxFX01PRF9GQUlMRUQQCBIZChVPRlBFVF9RVUVVRV9PUF9GQUlMRUQQCRIeChpPRlBFVF9TV0lUQ0hfQ09ORklHX0ZBSUxFRBAKEh0KGU9GUEVUX1JPTEVfUkVRVUVTVF9GQUlMRUQQCxIaChZPRlBFVF9NRVRFUl9NT0RfRkFJTEVEEAwSHwobT0ZQRVRfVEFCTEVfRkVBVFVSRVNfRkFJTEVEEA0SGAoST0ZQRVRfRVhQRVJJTUVOVEVSEP//AypCChVvZnBfaGVsbG9fZmFpbGVkX2NvZGUSFwoTT0ZQSEZDX0lOQ09NUEFUSUJMRRAAEhAKDE9GUEhGQ19FUEVSTRABKu0CChRvZnBfYmFkX3JlcXVlc3RfY29kZRIWChJPRlBCUkNfQkFEX1ZFUlNJT04QABITCg9PRlBCUkNfQkFEX1RZUEUQARIYChRPRlBCUkNfQkFEX01VTFRJUEFSVBACEhsKF09GUEJSQ19CQURfRVhQRVJJTUVOVEVSEAMSFwoTT0ZQQlJDX0JBRF9FWFBfVFlQRRAEEhAKDE9GUEJSQ19FUEVSTRAFEhIKDk9GUEJSQ19CQURfTEVOEAYSFwoTT0ZQQlJDX0JVRkZFUl9FTVBUWRAHEhkKFU9GUEJSQ19CVUZGRVJfVU5LTk9XThAIEhcKE09GUEJSQ19CQURfVEFCTEVfSUQQCRITCg9PRlBCUkNfSVNfU0xBVkUQChITCg9PRlBCUkNfQkFEX1BPUlQQCxIVChFPRlBCUkNfQkFEX1BBQ0tFVBAMEiQKIE9GUEJSQ19NVUxUSVBBUlRfQlVGRkVSX09WRVJGTE9XEA0qnAMKE29mcF9iYWRfYWN0aW9uX2NvZGUSEwoPT0ZQQkFDX0JBRF9UWVBFEAASEgoOT0ZQQkFDX0JBRF9MRU4QARIbChdPRlBCQUNfQkFEX0VYUEVSSU1FTlRFUhACEhcKE09GUEJBQ19CQURfRVhQX1RZUEUQAxIXChNPRlBCQUNfQkFEX09VVF9QT1JUEAQSFwoTT0ZQQkFDX0JBRF9BUkdVTUVOVBAFEhAKDE9GUEJBQ19FUEVSTRAGEhMKD09GUEJBQ19UT09fTUFOWRAHEhQKEE9GUEJBQ19CQURfUVVFVUUQCBIYChRPRlBCQUNfQkFEX09VVF9HUk9VUBAJEh0KGU9GUEJBQ19NQVRDSF9JTkNPTlNJU1RFTlQQChIcChhPRlBCQUNfVU5TVVBQT1JURURfT1JERVIQCxISCg5PRlBCQUNfQkFEX1RBRxAMEhcKE09GUEJBQ19CQURfU0VUX1RZUEUQDRIWChJPRlBCQUNfQkFEX1NFVF9MRU4QDhIbChdPRlBCQUNfQkFEX1NFVF9BUkdVTUVOVBAPKvoBChhvZnBfYmFkX2luc3RydWN0aW9uX2NvZGUSFwoTT0ZQQklDX1VOS05PV05fSU5TVBAAEhUKEU9GUEJJQ19VTlNVUF9JTlNUEAESFwoTT0ZQQklDX0JBRF9UQUJMRV9JRBACEhkKFU9GUEJJQ19VTlNVUF9NRVRBREFUQRADEh4KGk9GUEJJQ19VTlNVUF9NRVRBREFUQV9NQVNLEAQSGwoXT0ZQQklDX0JBRF9FWFBFUklNRU5URVIQBRIXChNPRlBCSUNfQkFEX0VYUF9UWVBFEAYSEgoOT0ZQQklDX0JBRF9MRU4QBxIQCgxPRlBCSUNfRVBFUk0QCCqlAgoSb2ZwX2JhZF9tYXRjaF9jb2RlEhMKD09GUEJNQ19CQURfVFlQRRAAEhIKDk9GUEJNQ19CQURfTEVOEAESEgoOT0ZQQk1DX0JBRF9UQUcQAhIbChdPRlBCTUNfQkFEX0RMX0FERFJfTUFTSxADEhsKF09GUEJNQ19CQURfTldfQUREUl9NQVNLEAQSGAoUT0ZQQk1DX0JBRF9XSUxEQ0FSRFMQBRIUChBPRlBCTUNfQkFEX0ZJRUxEEAYSFAoQT0ZQQk1DX0JBRF9WQUxVRRAHEhMKD09GUEJNQ19CQURfTUFTSxAIEhUKEU9GUEJNQ19CQURfUFJFUkVREAkSFAoQT0ZQQk1DX0RVUF9GSUVMRBAKEhAKDE9GUEJNQ19FUEVSTRALKtIBChhvZnBfZmxvd19tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQRk1GQ19VTktOT1dOEAASFgoST0ZQRk1GQ19UQUJMRV9GVUxMEAESGAoUT0ZQRk1GQ19CQURfVEFCTEVfSUQQAhITCg9PRlBGTUZDX09WRVJMQVAQAxIRCg1PRlBGTUZDX0VQRVJNEAQSFwoTT0ZQRk1GQ19CQURfVElNRU9VVBAFEhcKE09GUEZNRkNfQkFEX0NPTU1BTkQQBhIVChFPRlBGTUZDX0JBRF9GTEFHUxAHKqEDChlvZnBfZ3JvdXBfbW9kX2ZhaWxlZF9jb2RlEhgKFE9GUEdNRkNfR1JPVVBfRVhJU1RTEAASGQoVT0ZQR01GQ19JTlZBTElEX0dST1VQEAESHgoaT0ZQR01GQ19XRUlHSFRfVU5TVVBQT1JURUQQAhIZChVPRlBHTUZDX09VVF9PRl9HUk9VUFMQAxIaChZPRlBHTUZDX09VVF9PRl9CVUNLRVRTEAQSIAocT0ZQR01GQ19DSEFJTklOR19VTlNVUFBPUlRFRBAFEh0KGU9GUEdNRkNfV0FUQ0hfVU5TVVBQT1JURUQQBhIQCgxPRlBHTUZDX0xPT1AQBxIZChVPRlBHTUZDX1VOS05PV05fR1JPVVAQCBIZChVPRlBHTUZDX0NIQUlORURfR1JPVVAQCRIUChBPRlBHTUZDX0JBRF9UWVBFEAoSFwoTT0ZQR01GQ19CQURfQ09NTUFORBALEhYKEk9GUEdNRkNfQkFEX0JVQ0tFVBAMEhUKEU9GUEdNRkNfQkFEX1dBVENIEA0SEQoNT0ZQR01GQ19FUEVSTRAOKo8BChhvZnBfcG9ydF9tb2RfZmFpbGVkX2NvZGUSFAoQT0ZQUE1GQ19CQURfUE9SVBAAEhcKE09GUFBNRkNfQkFEX0hXX0FERFIQARIWChJPRlBQTUZDX0JBRF9DT05GSUcQAhIZChVPRlBQTUZDX0JBRF9BRFZFUlRJU0UQAxIRCg1PRlBQTUZDX0VQRVJNEAQqXQoZb2ZwX3RhYmxlX21vZF9mYWlsZWRfY29kZRIVChFPRlBUTUZDX0JBRF9UQUJMRRAAEhYKEk9GUFRNRkNfQkFEX0NPTkZJRxABEhEKDU9GUFRNRkNfRVBFUk0QAipaChhvZnBfcXVldWVfb3BfZmFpbGVkX2NvZGUSFAoQT0ZQUU9GQ19CQURfUE9SVBAAEhUKEU9GUFFPRkNfQkFEX1FVRVVFEAESEQoNT0ZQUU9GQ19FUEVSTRACKl4KHW9mcF9zd2l0Y2hfY29uZmlnX2ZhaWxlZF9jb2RlEhUKEU9GUFNDRkNfQkFEX0ZMQUdTEAASEwoPT0ZQU0NGQ19CQURfTEVOEAESEQoNT0ZQU0NGQ19FUEVSTRACKloKHG9mcF9yb2xlX3JlcXVlc3RfZmFpbGVkX2NvZGUSEQoNT0ZQUlJGQ19TVEFMRRAAEhEKDU9GUFJSRkNfVU5TVVAQARIUChBPRlBSUkZDX0JBRF9ST0xFEAIqxQIKGW9mcF9tZXRlcl9tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQTU1GQ19VTktOT1dOEAASGAoUT0ZQTU1GQ19NRVRFUl9FWElTVFMQARIZChVPRlBNTUZDX0lOVkFMSURfTUVURVIQAhIZChVPRlBNTUZDX1VOS05PV05fTUVURVIQAxIXChNPRlBNTUZDX0JBRF9DT01NQU5EEAQSFQoRT0ZQTU1GQ19CQURfRkxBR1MQBRIUChBPRlBNTUZDX0JBRF9SQVRFEAYSFQoRT0ZQTU1GQ19CQURfQlVSU1QQBxIUChBPRlBNTUZDX0JBRF9CQU5EEAgSGwoXT0ZQTU1GQ19CQURfQkFORF9ERVRBSUwQCRIZChVPRlBNTUZDX09VVF9PRl9NRVRFUlMQChIYChRPRlBNTUZDX09VVF9PRl9CQU5EUxALKqkBCh5vZnBfdGFibGVfZmVhdHVyZXNfZmFpbGVkX2NvZGUSFQoRT0ZQVEZGQ19CQURfVEFCTEUQABIYChRPRlBURkZDX0JBRF9NRVRBREFUQRABEhQKEE9GUFRGRkNfQkFEX1RZUEUQAhITCg9PRlBURkZDX0JBRF9MRU4QAxIYChRPRlBURkZDX0JBRF9BUkdVTUVOVBAEEhEKDU9GUFRGRkNfRVBFUk0QBSrOAgoSb2ZwX211bHRpcGFydF90eXBlEg4KCk9GUE1QX0RFU0MQABIOCgpPRlBNUF9GTE9XEAESEwoPT0ZQTVBfQUdHUkVHQVRFEAISDwoLT0ZQTVBfVEFCTEUQAxIUChBPRlBNUF9QT1JUX1NUQVRTEAQSDwoLT0ZQTVBfUVVFVUUQBRIPCgtPRlBNUF9HUk9VUBAGEhQKEE9GUE1QX0dST1VQX0RFU0MQBxIYChRPRlBNUF9HUk9VUF9GRUFUVVJFUxAIEg8KC09GUE1QX01FVEVSEAkSFgoST0ZQTVBfTUVURVJfQ09ORklHEAoSGAoUT0ZQTVBfTUVURVJfRkVBVFVSRVMQCxIYChRPRlBNUF9UQUJMRV9GRUFUVVJFUxAMEhMKD09GUE1QX1BPUlRfREVTQxANEhgKEk9GUE1QX0VYUEVSSU1FTlRFUhD//wMqSgobb2ZwX211bHRpcGFydF9yZXF1ZXN0X2ZsYWdzEhYKEk9GUE1QRl9SRVFfSU5WQUxJRBAAEhMKD09GUE1QRl9SRVFfTU9SRRABKkwKGW9mcF9tdWx0aXBhcnRfcmVwbHlfZmxhZ3MSGAoUT0ZQTVBGX1JFUExZX0lOVkFMSUQQABIVChFPRlBNUEZfUkVQTFlfTU9SRRABKuQDChtvZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGUSGAoUT0ZQVEZQVF9JTlNUUlVDVElPTlMQABIdChlPRlBURlBUX0lOU1RSVUNUSU9OU19NSVNTEAESFwoTT0ZQVEZQVF9ORVhUX1RBQkxFUxACEhwKGE9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUxADEhkKFU9GUFRGUFRfV1JJVEVfQUNUSU9OUxAEEh4KGk9GUFRGUFRfV1JJVEVfQUNUSU9OU19NSVNTEAUSGQoVT0ZQVEZQVF9BUFBMWV9BQ1RJT05TEAYSHgoaT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MQBxIRCg1PRlBURlBUX01BVENIEAgSFQoRT0ZQVEZQVF9XSUxEQ0FSRFMQChIaChZPRlBURlBUX1dSSVRFX1NFVEZJRUxEEAwSHwobT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTEA0SGgoWT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRBAOEh8KG09GUFRGUFRfQVBQTFlfU0VURklFTERfTUlTUxAPEhoKFE9GUFRGUFRfRVhQRVJJTUVOVEVSEP7/AxIfChlPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTEP//AyqTAQoWb2ZwX2dyb3VwX2NhcGFiaWxpdGllcxISCg5PRlBHRkNfSU5WQUxJRBAAEhgKFE9GUEdGQ19TRUxFQ1RfV0VJR0hUEAESGgoWT0ZQR0ZDX1NFTEVDVF9MSVZFTkVTUxACEhMKD09GUEdGQ19DSEFJTklORxAEEhoKFk9GUEdGQ19DSEFJTklOR19DSEVDS1MQCCprChRvZnBfcXVldWVfcHJvcGVydGllcxIRCg1PRlBRVF9JTlZBTElEEAASEgoOT0ZQUVRfTUlOX1JBVEUQARISCg5PRlBRVF9NQVhfUkFURRACEhgKEk9GUFFUX0VYUEVSSU1FTlRFUhD//wMqcQoTb2ZwX2NvbnRyb2xsZXJfcm9sZRIXChNPRlBDUl9ST0xFX05PQ0hBTkdFEAASFAoQT0ZQQ1JfUk9MRV9FUVVBTBABEhUKEU9GUENSX1JPTEVfTUFTVEVSEAISFAoQT0ZQQ1JfUk9MRV9TTEFWRRADQlUKHm9yZy5vcGVuY29yZC52b2x0aGEub3BlbmZsb3cxM1ozZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5mbG93XzEzSvyXBgoHEgU5AJkSAQr+FAoBDBIDOQASGvkGCiBUaGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcmVuZGVyaW5nIG9mIE9wZW5GbG93IG1lc3NhZ2UKIGRlZmluaXRpb25zIGludG8gcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2VzLiBXZSBwcmVzZXJ2ZWQgdGhlIHNuYWtlCiBjYXNlIHN5bnRheCwgYW5kIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogLSBhbGwgcGFkIGZpZWxkcyBkcm9wcGVkCiAtIGZvciBlYWNoIGVudW0gdmFsdWUgYWJvdmUgMHg3ZmZmZmZmZiB0aGUgTVNCIGlzIGRyb3BwZWQuIEZvciBleGFtcGxlLAogICAweGZmZmZmZmZmIGlzIG5vdyAweDdmZmZmZmZmLgogLSAnPHR5cGU+IHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3JlcGVhdGVkIDx0eXBlPiB0aGluZycKIC0gJ2NoYXIgdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnc3RyaW5nIHRoaW5nJwogLSAndWludDhfdCBkYXRhWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ2J5dGVzIGRhdGEnCiAtIHRoZSBmb2xsb3dpbmcgc3lzdGVtYXRpYyBjaGFuZ2VzIGFyZSBkb25lIHRvIHZhcmlvdXMgaW50ZWdlciB0eXBlczoKICAgdWludDhfdCAgLT4gdWludDMyCiAgIHVpbnQxNl90IC0+IHVpbnQzMgogICB1aW50MzJfdCAtPiB1aW50MzIKICAgdWludDY0X3QgLT4gdWludDY0CiAtIHJlbW92ZWQgbW9zdCBsZW5ndGgsIGxlbiwgc2l6ZSBmaWVsZHMgd2hlcmUgdGhlc2UgdmFsdWVzIGNhbiBiZSBkZXRlcm1pbmVkCiAgIGZyb20gdGhlIGV4cGxpY2l0bHkgZW5jb2RlZCBsZW5ndGggb2YgInJlcGVhdGVkIiBwcm90b2J1ZiBmaWVsZHMuCiAtIGV4cGxpY2l0IHVzZSBvZiBlbnVtIHR5cGVzIHdoZXJlZXZlciBpdCBpcyB1bmFtYmlnb3VzIChhbmQgbm90IHVzZWQgYXMKICAgYml0bWFzay9mbGFncyB2YWx1ZS4KCjLADSBDb3B5cmlnaHQgKGMpIDIwMDggVGhlIEJvYXJkIG9mIFRydXN0ZWVzIG9mIFRoZSBMZWxhbmQgU3RhbmZvcmQKIEp1bmlvciBVbml2ZXJzaXR5CiBDb3B5cmlnaHQgMjAxMS0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBiZXR3ZWVuIGNvbnRyb2xsZXIgYW5kIGRhdGFwYXRoLiAKCAoBCBIDOwBKCgkKAggLEgM7AEoKCAoBCBIDPAA3CgkKAggBEgM8ADcKCAoBAhIDPgAUCgkKAgMAEgNAACYKpgQKAgUAEgRUAGkBGjUgUG9ydCBudW1iZXJpbmcuIFBvcnRzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDEuIDJjIFZlcnNpb24gbnVtYmVyOgogT3BlbkZsb3cgdmVyc2lvbnMgcmVsZWFzZWQ6IDB4MDEgPSAxLjAgOyAweDAyID0gMS4xIDsgMHgwMyA9IDEuMgogICAgIDB4MDQgPSAxLjMKMlUgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGluIHRoZSB2ZXJzaW9uIGZpZWxkIGlzIHJlc2VydmVkIGFuZCBtdXN0CiBiZSBzZXQgdG8gemVyby4KMnojZGVmaW5lIE9GUF9WRVJTSU9OICAgMHgwNAojZGVmaW5lIFBJUEVMSU5FX1RBQkxFUyA2NAojZGVmaW5lIE9GUF9NQVhfVEFCTEVfTkFNRV9MRU4gMzIKI2RlZmluZSBPRlBfTUFYX1BPUlRfTkFNRV9MRU4gIDE2CjItIE9mZmljaWFsIElBTkEgcmVnaXN0ZXJlZCBwb3J0IGZvciBPcGVuRmxvdy4gMjYjZGVmaW5lIE9GUF9UQ1BfUE9SVCAgNjY1MwojZGVmaW5lIE9GUF9TU0xfUE9SVCAgNjY1MwoyRCNkZWZpbmUgT0ZQX0VUSF9BTEVOIDYgICAgICAgICAgLyogQnl0ZXMgaW4gYW4gRXRoZXJuZXQgYWRkcmVzcy4gKi8KCgoKAwUAARIDVAUQCgsKBAUAAgASA1UEGAoMCgUFAAIAARIDVQQQCgwKBQUAAgACEgNVFhcKQwoEBQACARIDWAQhGjYgTWF4aW11bSBudW1iZXIgb2YgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc3dpdGNoIHBvcnRzLiAKDAoFBQACAQESA1gEDAoMCgUFAAIBAhIDWBYgCrwBCgQFAAICEgNbBCEaLyBSZXNlcnZlZCBPcGVuRmxvdyBQb3J0IChmYWtlIG91dHB1dCAicG9ydHMiKS4gIn4gU2VuZCB0aGUgcGFja2V0IG91dCB0aGUgaW5wdXQgcG9ydC4gIFRoaXMKcmVzZXJ2ZWQgcG9ydCBtdXN0IGJlIGV4cGxpY2l0bHkgdXNlZAppbiBvcmRlciB0byBzZW5kIGJhY2sgb3V0IG9mIHRoZSBpbnB1dApwb3J0LiAKDAoFBQACAgESA1sEEAoMCgUFAAICAhIDWxYgCnsKBAUAAgMSA18EISJuIFN1Ym1pdCB0aGUgcGFja2V0IHRvIHRoZSBmaXJzdCBmbG93IHRhYmxlCk5COiBUaGlzIGRlc3RpbmF0aW9uIHBvcnQgY2FuIG9ubHkgYmUKdXNlZCBpbiBwYWNrZXQtb3V0IG1lc3NhZ2VzLiAKDAoFBQACAwESA18EDgoMCgUFAAIDAhIDXxYgCjMKBAUAAgQSA2IEISImIEZvcndhcmQgdXNpbmcgbm9uLU9wZW5GbG93IHBpcGVsaW5lLiAKDAoFBQACBAESA2IEDwoMCgUFAAIEAhIDYhYgCjEKBAUAAgUSA2MEISIkIEZsb29kIHVzaW5nIG5vbi1PcGVuRmxvdyBwaXBlbGluZS4gCgwKBQUAAgUBEgNjBA4KDAoFBQACBQISA2MWIAo0CgQFAAIGEgNkBCEiJyBBbGwgc3RhbmRhcmQgcG9ydHMgZXhjZXB0IGlucHV0IHBvcnQuIAoMCgUFAAIGARIDZAQMCgwKBQUAAgYCEgNkFiAKIgoEBQACBxIDZQQhIhUgU2VuZCB0byBjb250cm9sbGVyLiAKDAoFBQACBwESA2UEEwoMCgUFAAIHAhIDZRYgCiUKBAUAAggSA2YEISIYIExvY2FsIG9wZW5mbG93ICJwb3J0Ii4gCgwKBQUAAggBEgNmBA4KDAoFBQACCAISA2YWIApeCgQFAAIJEgNnBCEiUSBTcGVjaWFsIHZhbHVlIHVzZWQgaW4gc29tZSByZXF1ZXN0cyB3aGVuCm5vIHBvcnQgaXMgc3BlY2lmaWVkIChpLmUuIHdpbGRjYXJkZWQpLgoMCgUFAAIJARIDZwQMCgwKBQUAAgkCEgNnFiAKCwoCBQESBWsAngEBCgoKAwUBARIDawUNCjcKBAUBAgASA24EKBoVIEltbXV0YWJsZSBtZXNzYWdlcy4gIhMgU3ltbWV0cmljIG1lc3NhZ2UgCgwKBQUBAgABEgNuBA4KDAoFBQECAAISA24mJwogCgQFAQIBEgNvBCgiEyBTeW1tZXRyaWMgbWVzc2FnZSAKDAoFBQECAQESA28EDgoMCgUFAQIBAhIDbyYnCiAKBAUBAgISA3AEKCITIFN5bW1ldHJpYyBtZXNzYWdlIAoMCgUFAQICARIDcAQVCgwKBQUBAgICEgNwJicKIAoEBQECAxIDcQQoIhMgU3ltbWV0cmljIG1lc3NhZ2UgCgwKBQUBAgMBEgNxBBMKDAoFBQECAwISA3EmJwogCgQFAQIEEgNyBCgiEyBTeW1tZXRyaWMgbWVzc2FnZSAKDAoFBQECBAESA3IEFQoMCgUFAQIEAhIDciYnCkoKBAUBAgUSA3UEKBogIFN3aXRjaCBjb25maWd1cmF0aW9uIG1lc3NhZ2VzLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoMCgUFAQIFARIDdQQZCgwKBQUBAgUCEgN1JicKKAoEBQECBhIDdgQoIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDAoFBQECBgESA3YEFwoMCgUFAQIGAhIDdiYnCigKBAUBAgcSA3cEKCIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCgwKBQUBAgcBEgN3BBsKDAoFBQECBwISA3cmJwooCgQFAQIIEgN4BCgiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoMCgUFAQIIARIDeAQZCgwKBQUBAggCEgN4JicKKAoEBQECCRIDeQQoIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDAoFBQECCQESA3kEEwoMCgUFAQIJAhIDeSYnCjYKBAUBAgoSA3wEKRoYIEFzeW5jaHJvbm91cyBtZXNzYWdlcy4gIg8gQXN5bmMgbWVzc2FnZSAKDAoFBQECCgESA3wEEgoMCgUFAQIKAhIDfCYoChwKBAUBAgsSA30EKSIPIEFzeW5jIG1lc3NhZ2UgCgwKBQUBAgsBEgN9BBUKDAoFBQECCwISA30mKAocCgQFAQIMEgN+BCkiDyBBc3luYyBtZXNzYWdlIAoMCgUFAQIMARIDfgQUCgwKBQUBAgwCEgN+JigKSQoEBQECDRIEgQEEKRoeIENvbnRyb2xsZXIgY29tbWFuZCBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECDQESBIEBBBMKDQoFBQECDQISBIEBJigKKQoEBQECDhIEggEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAg4BEgSCAQQRCg0KBQUBAg4CEgSCASYoCikKBAUBAg8SBIMBBCkiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIPARIEgwEEEgoNCgUFAQIPAhIEgwEmKAopCgQFAQIQEgSEAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECEAESBIQBBBEKDQoFBQECEAISBIQBJigKKQoEBQECERIEhQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhEBEgSFAQQSCg0KBQUBAhECEgSFASYoCkAKBAUBAhISBIgBBCkaFSBNdWx0aXBhcnQgbWVzc2FnZXMuICIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhIBEgSIAQQaCg0KBQUBAhICEgSIASYoCikKBAUBAhMSBIkBBCkiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQITARIEiQEEGAoNCgUFAQITAhIEiQEmKAo+CgQFAQIUEgSMAQQpGhMgQmFycmllciBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECFAESBIwBBBgKDQoFBQECFAISBIwBJigKKQoEBQECFRIEjQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhUBEgSNAQQWCg0KBQUBAhUCEgSNASYoCkoKBAUBAhYSBJABBCkaHyBRdWV1ZSBDb25maWd1cmF0aW9uIG1lc3NhZ2VzLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIWARIEkAEEIQoNCgUFAQIWAhIEkAEmKAopCgQFAQIXEgSRAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECFwESBJEBBB8KDQoFBQECFwISBJEBJigKVQoEBQECGBIElAEEKRoqIENvbnRyb2xsZXIgcm9sZSBjaGFuZ2UgcmVxdWVzdCBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECGAESBJQBBBUKDQoFBQECGAISBJQBJigKKQoEBQECGRIElQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhkBEgSVAQQTCg0KBQUBAhkCEgSVASYoClAKBAUBAhoSBJgBBCkaJSBBc3luY2hyb25vdXMgbWVzc2FnZSBjb25maWd1cmF0aW9uLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIaARIEmAEEGgoNCgUFAQIaAhIEmAEmKAopCgQFAQIbEgSZAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECGwESBJkBBBgKDQoFBQECGwISBJkBJigKKQoEBQECHBIEmgEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhwBEgSaAQQSCg0KBQUBAhwCEgSaASYoCl0KBAUBAh0SBJ0BBCkaMiBNZXRlcnMgYW5kIHJhdGUgbGltaXRlcnMgY29uZmlndXJhdGlvbiBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECHQESBJ0BBBIKDQoFBQECHQISBJ0BJigKLwoCBAASBqEBAKcBARohIEhlYWRlciBvbiBhbGwgT3BlbkZsb3cgcGFja2V0cy4gCgsKAwQAARIEoQEIEgocCgQEAAIAEgSiAQQXIg4gT0ZQX1ZFUlNJT04uIAoNCgUEAAIABRIEogEECgoNCgUEAAIAARIEogELEgoNCgUEAAIAAxIEogEVFgorCgQEAAIBEgSjAQQWIh0gT25lIG9mIHRoZSBPRlBUXyBjb25zdGFudHMuIAoNCgUEAAIBBhIEowEEDAoNCgUEAAIBARIEowENEQoNCgUEAAIBAxIEowEUFQqAAQoEBAACAhIEpAEEEyJyIFRyYW5zYWN0aW9uIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhY2tldC4KUmVwbGllcyB1c2UgdGhlIHNhbWUgaWQgYXMgd2FzIGluIHRoZSByZXF1ZXN0CnRvIGZhY2lsaXRhdGUgcGFpcmluZy4gCg0KBQQAAgIFEgSkAQQKCg0KBQQAAgIBEgSkAQsOCg0KBQQAAgIDEgSkARESCiUKAgUCEgarAQCuAQEaFyBIZWxsbyBlbGVtZW50cyB0eXBlcy4KCgsKAwUCARIEqwEFGAoMCgQFAgIAEgSsAQQmCg0KBQUCAgABEgSsAQQSCg0KBQUCAgACEgSsASQlCiwKBAUCAgESBK0BBCYiHiBCaXRtYXAgb2YgdmVyc2lvbiBzdXBwb3J0ZWQuIAoNCgUFAgIBARIErQEEGAoNCgUFAgIBAhIErQEkJQo0CgIEARIGsQEAtgEBGiYgQ29tbW9uIGhlYWRlciBmb3IgYWxsIEhlbGxvIEVsZW1lbnRzIAoLCgMEAQESBLEBCB0KIAoEBAECABIEsgEEISISIE9uZSBvZiBPRlBIRVRfKi4gCg0KBQQBAgAGEgSyAQQXCg0KBQQBAgABEgSyARgcCg0KBQQBAgADEgSyAR8gCg4KBAQBCAASBrMBBLUBBQoNCgUEAQgAARIEswEKEQoMCgQEAQIBEgS0AQg3Cg0KBQQBAgEGEgS0AQgkCg0KBQQBAgEBEgS0ASUyCg0KBQQBAgEDEgS0ATU2CiwKAgQCEga5AQC7AQEaHiBWZXJzaW9uIGJpdG1hcCBIZWxsbyBFbGVtZW50IAoLCgMEAgESBLkBCCQKNAoEBAICABIEugEEICImIExpc3Qgb2YgYml0bWFwcyAtIHN1cHBvcnRlZCB2ZXJzaW9ucyAKDQoFBAICAAQSBLoBBAwKDQoFBAICAAUSBLoBDRMKDQoFBAICAAESBLoBFBsKDQoFBAICAAMSBLoBHh8KzAEKAgQDEgbAAQDEAQEaqAEgT0ZQVF9IRUxMTy4gIFRoaXMgbWVzc2FnZSBpbmNsdWRlcyB6ZXJvIG9yIG1vcmUgaGVsbG8gZWxlbWVudHMgaGF2aW5nCiB2YXJpYWJsZSBzaXplLiBVbmtub3duIGVsZW1lbnRzIHR5cGVzIG11c3QgYmUgaWdub3JlZC9za2lwcGVkLCB0byBhbGxvdwogZm9yIGZ1dHVyZSBleHRlbnNpb25zLiAiE29mcF9oZWFkZXIgaGVhZGVyOwoKCwoDBAMBEgTAAQgRCi8KBAQDAgASBMMBBDAaFCBIZWxsbyBlbGVtZW50IGxpc3QgIgsgMCBvciBtb3JlIAoNCgUEAwIABBIEwwEEDAoNCgUEAwIABhIEwwENIgoNCgUEAwIAARIEwwEjKwoNCgUEAwIAAxIEwwEuLwo2CgIFAxIGyAEAzgEBMigjZGVmaW5lIE9GUF9ERUZBVUxUX01JU1NfU0VORF9MRU4gICAxMjgKCgsKAwUDARIEyAEFFQpPCgQFAwIAEgTKAQQbGhsgSGFuZGxpbmcgb2YgSVAgZnJhZ21lbnRzLiAiJCBObyBzcGVjaWFsIGhhbmRsaW5nIGZvciBmcmFnbWVudHMuIAoNCgUFAwIAARIEygEEFAoNCgUFAwIAAhIEygEZGgofCgQFAwIBEgTLAQQbIhEgRHJvcCBmcmFnbWVudHMuIAoNCgUFAwIBARIEywEEEgoNCgUFAwIBAhIEywEZGgo3CgQFAwICEgTMAQQbIikgUmVhc3NlbWJsZSAob25seSBpZiBPRlBDX0lQX1JFQVNNIHNldCkuIAoNCgUFAwICARIEzAEEEwoNCgUFAwICAhIEzAEZGgozCgQFAwIDEgTNAQQbIiUgQml0bWFzayBvZiBmbGFncyBkZWFsaW5nIHdpdGggZnJhZy4gCg0KBQUDAgMBEgTNAQQSCg0KBQUDAgMCEgTNARkaCiUKAgQEEgbRAQDYAQEaFyBTd2l0Y2ggY29uZmlndXJhdGlvbi4gCgsKAwQEARIE0QEIGQo8CgQEBAIAEgTTAQQVGhNvZnBfaGVhZGVyIGhlYWRlcjsKIhkgQml0bWFwIG9mIE9GUENfKiBmbGFncy4gCg0KBQQEAgAFEgTTAQQKCg0KBQQEAgABEgTTAQsQCg0KBQQEAgADEgTTARMUCn0KBAQEAgESBNQBBB0ibyBNYXggYnl0ZXMgb2YgcGFja2V0IHRoYXQgZGF0YXBhdGgKc2hvdWxkIHNlbmQgdG8gdGhlIGNvbnRyb2xsZXIuIFNlZQpvZnBfY29udHJvbGxlcl9tYXhfbGVuIGZvciB2YWxpZCB2YWx1ZXMuCgoNCgUEBAIBBRIE1AEECgoNCgUEBAIBARIE1AELGAoNCgUEBAIBAxIE1AEbHApGCgIFBBIG2wEA3gEBGjggRmxhZ3MgdG8gY29uZmlndXJlIHRoZSB0YWJsZS4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIAoLCgMFBAESBNsBBRUKDAoEBQQCABIE3AEEFgoNCgUFBAIAARIE3AEEEQoNCgUFBAIAAhIE3AEUFQofCgQFBAIBEgTdAQQeIhEgRGVwcmVjYXRlZCBiaXRzIAoNCgUFBAIBARIE3QEEGQoNCgUFBAIBAhIE3QEcHQpKCgIFBRIG4QEA6wEBGjwgVGFibGUgbnVtYmVyaW5nLiBUYWJsZXMgY2FuIHVzZSBhbnkgbnVtYmVyIHVwIHRvIE9GUFRfTUFYLiAKCwoDBQUBEgThAQUOCgwKBAUFAgASBOMBBBYKDQoFBQUCAAESBOMBBBEKDQoFBQUCAAISBOMBFBUKKQoEBQUCARIE5gEEHBobIExhc3QgdXNhYmxlIHRhYmxlIG51bWJlci4gCg0KBQUFAgEBEgTmAQQNCg0KBQUFAgECEgTmARcbCmIKBAUFAgISBOkBBBwaDiBGYWtlIHRhYmxlcy4gIkQgV2lsZGNhcmQgdGFibGUgdXNlZCBmb3IgdGFibGUgY29uZmlnLApmbG93IHN0YXRzIGFuZCBmbG93IGRlbGV0ZXMuIAoNCgUFBQICARIE6QEEDQoNCgUFBQICAhIE6QEXGwo5CgIEBRIG7wEA8wEBGisgQ29uZmlndXJlL01vZGlmeSBiZWhhdmlvciBvZiBhIGZsb3cgdGFibGUgCgsKAwQFARIE7wEIFQpUCgQEBQIAEgTxAQQYGhNvZnBfaGVhZGVyIGhlYWRlcjsKIjEgSUQgb2YgdGhlIHRhYmxlLCBPRlBUVF9BTEwgaW5kaWNhdGVzIGFsbCB0YWJsZXMgCg0KBQQFAgAFEgTxAQQKCg0KBQQFAgABEgTxAQsTCg0KBQQFAgADEgTxARYXCicKBAQFAgESBPIBBBYiGSBCaXRtYXAgb2YgT0ZQVENfKiBmbGFncyAKDQoFBAUCAQUSBPIBBAoKDQoFBAUCAQESBPIBCxEKDQoFBAUCAQMSBPIBFBUKNwoCBQYSBvYBAP8BARopIENhcGFiaWxpdGllcyBzdXBwb3J0ZWQgYnkgdGhlIGRhdGFwYXRoLiAKCwoDBQYBEgT2AQUVCgwKBAUGAgASBPcBBBwKDQoFBQYCAAESBPcBBBAKDQoFBQYCAAISBPcBGhsKIAoEBQYCARIE+AEEHCISIEZsb3cgc3RhdGlzdGljcy4gCg0KBQUGAgEBEgT4AQQTCg0KBQUGAgECEgT4ARobCiEKBAUGAgISBPkBBBwiEyBUYWJsZSBzdGF0aXN0aWNzLiAKDQoFBQYCAgESBPkBBBQKDQoFBQYCAgISBPkBGhsKIAoEBQYCAxIE+gEEHCISIFBvcnQgc3RhdGlzdGljcy4gCg0KBQUGAgMBEgT6AQQTCg0KBQUGAgMCEgT6ARobCiEKBAUGAgQSBPsBBBwiEyBHcm91cCBzdGF0aXN0aWNzLiAKDQoFBQYCBAESBPsBBBQKDQoFBQYCBAISBPsBGhsKLAoEBQYCBRIE/AEEHSIeIENhbiByZWFzc2VtYmxlIElQIGZyYWdtZW50cy4gCg0KBQUGAgUBEgT8AQQRCg0KBQUGAgUCEgT8ARocCiEKBAUGAgYSBP0BBB0iEyBRdWV1ZSBzdGF0aXN0aWNzLiAKDQoFBQYCBgESBP0BBBQKDQoFBQYCBgISBP0BGhwKMAoEBQYCBxIE/gEEHiIiIFN3aXRjaCB3aWxsIGJsb2NrIGxvb3BpbmcgcG9ydHMuIAoNCgUFBgIHARIE/gEEFQoNCgUFBgIHAhIE/gEaHQrZAQoCBQcSBoUCAIwCARrKASBGbGFncyB0byBpbmRpY2F0ZSBiZWhhdmlvciBvZiB0aGUgcGh5c2ljYWwgcG9ydC4gIFRoZXNlIGZsYWdzIGFyZQogdXNlZCBpbiBvZnBfcG9ydCB0byBkZXNjcmliZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiAgVGhleSBhcmUKIHVzZWQgaW4gdGhlIG9mcF9wb3J0X21vZCBtZXNzYWdlIHRvIGNvbmZpZ3VyZSB0aGUgcG9ydCdzIGJlaGF2aW9yLgoKCwoDBQcBEgSFAgUUCgwKBAUHAgASBIYCBBsKDQoFBQcCAAESBIYCBBEKDQoFBQcCAAISBIYCGRoKLgoEBQcCARIEhwIEGyIgIFBvcnQgaXMgYWRtaW5pc3RyYXRpdmVseSBkb3duLiAKDQoFBQcCAQESBIcCBBMKDQoFBQcCAQISBIcCGRoKMgoEBQcCAhIEiQIEGyIkIERyb3AgYWxsIHBhY2tldHMgcmVjZWl2ZWQgYnkgcG9ydC4gCg0KBQUHAgIBEgSJAgQRCg0KBQUHAgICEgSJAhkaCi8KBAUHAgMSBIoCBBwiISBEcm9wIHBhY2tldHMgZm9yd2FyZGVkIHRvIHBvcnQuIAoNCgUFBwIDARIEigIEEAoNCgUFBwIDAhIEigIZGwo0CgQFBwIEEgSLAgQcIiYgRG8gbm90IHNlbmQgcGFja2V0LWluIG1zZ3MgZm9yIHBvcnQuIAoNCgUFBwIEARIEiwIEFgoNCgUFBwIEAhIEiwIZGwplCgIFCBIGkQIAlgIBGlcgQ3VycmVudCBzdGF0ZSBvZiB0aGUgcGh5c2ljYWwgcG9ydC4gIFRoZXNlIGFyZSBub3QgY29uZmlndXJhYmxlIGZyb20KIHRoZSBjb250cm9sbGVyLgoKCwoDBQgBEgSRAgUTCgwKBAUIAgASBJICBBsKDQoFBQgCAAESBJICBBEKDQoFBQgCAAISBJICGRoKKQoEBQgCARIEkwIEGyIbIE5vIHBoeXNpY2FsIGxpbmsgcHJlc2VudC4gCg0KBQUIAgEBEgSTAgQTCg0KBQUIAgECEgSTAhkaCh8KBAUIAgISBJQCBBsiESBQb3J0IGlzIGJsb2NrZWQgCg0KBQUIAgIBEgSUAgQRCg0KBQUIAgICEgSUAhkaCi0KBAUIAgMSBJUCBBsiHyBMaXZlIGZvciBGYXN0IEZhaWxvdmVyIEdyb3VwLiAKDQoFBQgCAwESBJUCBA4KDQoFBQgCAwISBJUCGRoKOgoCBQkSBpkCAKsCARosIEZlYXR1cmVzIG9mIHBvcnRzIGF2YWlsYWJsZSBpbiBhIGRhdGFwYXRoLiAKCwoDBQkBEgSZAgUWCgwKBAUJAgASBJoCBBkKDQoFBQkCAAESBJoCBBEKDQoFBQkCAAISBJoCFxgKLwoEBQkCARIEmwIEGSIhIDEwIE1iIGhhbGYtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgEBEgSbAgQRCg0KBQUJAgECEgSbAhcYCi8KBAUJAgISBJwCBBkiISAxMCBNYiBmdWxsLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQICARIEnAIEEQoNCgUFCQICAhIEnAIXGAowCgQFCQIDEgSdAgQZIiIgMTAwIE1iIGhhbGYtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgMBEgSdAgQSCg0KBQUJAgMCEgSdAhcYCjAKBAUJAgQSBJ4CBBkiIiAxMDAgTWIgZnVsbC1kdXBsZXggcmF0ZSBzdXBwb3J0LiAKDQoFBQkCBAESBJ4CBBIKDQoFBQkCBAISBJ4CFxgKLgoEBQkCBRIEnwIEGiIgIDEgR2IgaGFsZi1kdXBsZXggcmF0ZSBzdXBwb3J0LiAKDQoFBQkCBQESBJ8CBBAKDQoFBQkCBQISBJ8CFxkKLgoEBQkCBhIEoAIEGiIgIDEgR2IgZnVsbC1kdXBsZXggcmF0ZSBzdXBwb3J0LiAKDQoFBQkCBgESBKACBBAKDQoFBQkCBgISBKACFxkKLwoEBQkCBxIEoQIEGiIhIDEwIEdiIGZ1bGwtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgcBEgShAgQRCg0KBQUJAgcCEgShAhcZCi8KBAUJAggSBKICBBsiISA0MCBHYiBmdWxsLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIIARIEogIEEQoNCgUFCQIIAhIEogIXGgowCgQFCQIJEgSjAgQbIiIgMTAwIEdiIGZ1bGwtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgkBEgSjAgQSCg0KBQUJAgkCEgSjAhcaCi4KBAUJAgoSBKQCBBsiICAxIFRiIGZ1bGwtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgoBEgSkAgQQCg0KBQUJAgoCEgSkAhcaCiwKBAUJAgsSBKUCBBwiHiBPdGhlciByYXRlLCBub3QgaW4gdGhlIGxpc3QuIAoNCgUFCQILARIEpQIEDwoNCgUFCQILAhIEpQIXGwoeCgQFCQIMEgSmAgQcIhAgQ29wcGVyIG1lZGl1bS4gCg0KBQUJAgwBEgSmAgQQCg0KBQUJAgwCEgSmAhcbCh0KBAUJAg0SBKcCBBwiDyBGaWJlciBtZWRpdW0uIAoNCgUFCQINARIEpwIEDwoNCgUFCQINAhIEpwIXGwohCgQFCQIOEgSoAgQcIhMgQXV0by1uZWdvdGlhdGlvbi4gCg0KBQUJAg4BEgSoAgQRCg0KBQUJAg4CEgSoAhcbChYKBAUJAg8SBKkCBB0iCCBQYXVzZS4gCg0KBQUJAg8BEgSpAgQPCg0KBQUJAg8CEgSpAhccCiEKBAUJAhASBKoCBB0iEyBBc3ltbWV0cmljIHBhdXNlLiAKDQoFBQkCEAESBKoCBBQKDQoFBQkCEAISBKoCFxwKJQoCBAYSBq4CAL4CARoXIERlc2NyaXB0aW9uIG9mIGEgcG9ydCAKCwoDBAYBEgSuAggQCgwKBAQGAgASBK8CBBcKDQoFBAYCAAUSBK8CBAoKDQoFBAYCAAESBK8CCxIKDQoFBAYCAAMSBK8CFRYKHwoEBAYCARIEsAIEICIRIFtPRlBfRVRIX0FMRU5dOwoKDQoFBAYCAQQSBLACBAwKDQoFBAYCAQUSBLACDRMKDQoFBAYCAQESBLACFBsKDQoFBAYCAQMSBLACHh8KHwoEBAYCAhIEsQIEFCIRIE51bGwtdGVybWluYXRlZCAKDQoFBAYCAgUSBLECBAoKDQoFBAYCAgESBLECCw8KDQoFBAYCAgMSBLECEhMKKAoEBAYCAxIEswIEFiIaIEJpdG1hcCBvZiBPRlBQQ18qIGZsYWdzLiAKDQoFBAYCAwUSBLMCBAoKDQoFBAYCAwESBLMCCxEKDQoFBAYCAwMSBLMCFBUKKAoEBAYCBBIEtAIEFSIaIEJpdG1hcCBvZiBPRlBQU18qIGZsYWdzLiAKDQoFBAYCBAUSBLQCBAoKDQoFBAYCBAESBLQCCxAKDQoFBAYCBAMSBLQCExQKgAEKBAQGAgUSBLgCBBQaXSBCaXRtYXBzIG9mIE9GUFBGXyogdGhhdCBkZXNjcmliZSBmZWF0dXJlcy4gIEFsbCBiaXRzIHplcm9lZCBpZgogdW5zdXBwb3J0ZWQgb3IgdW5hdmFpbGFibGUuICITIEN1cnJlbnQgZmVhdHVyZXMuIAoNCgUEBgIFBRIEuAIECgoNCgUEBgIFARIEuAILDwoNCgUEBgIFAxIEuAISEwo2CgQEBgIGEgS5AgQaIiggRmVhdHVyZXMgYmVpbmcgYWR2ZXJ0aXNlZCBieSB0aGUgcG9ydC4gCg0KBQQGAgYFEgS5AgQKCg0KBQQGAgYBEgS5AgsVCg0KBQQGAgYDEgS5AhgZCi8KBAQGAgcSBLoCBBkiISBGZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIHBvcnQuIAoNCgUEBgIHBRIEugIECgoNCgUEBgIHARIEugILFAoNCgUEBgIHAxIEugIXGAosCgQEBgIIEgS7AgQUIh4gRmVhdHVyZXMgYWR2ZXJ0aXNlZCBieSBwZWVyLiAKDQoFBAYCCAUSBLsCBAoKDQoFBAYCCAESBLsCCw8KDQoFBAYCCAMSBLsCEhMKLQoEBAYCCRIEvAIEGyIfIEN1cnJlbnQgcG9ydCBiaXRyYXRlIGluIGticHMuIAoNCgUEBgIJBRIEvAIECgoNCgUEBgIJARIEvAILFQoNCgUEBgIJAxIEvAIYGgooCgQEBgIKEgS9AgQaIhogTWF4IHBvcnQgYml0cmF0ZSBpbiBrYnBzIAoNCgUEBgIKBRIEvQIECgoNCgUEBgIKARIEvQILFAoNCgUEBgIKAxIEvQIXGQogCgIEBxIGwQIAzgIBGhIgU3dpdGNoIGZlYXR1cmVzLiAKCwoDBAcBEgTBAggbCpMBCgQEBwIAEgTDAgQbGhNvZnBfaGVhZGVyIGhlYWRlcjsKInAgRGF0YXBhdGggdW5pcXVlIElELiAgVGhlIGxvd2VyIDQ4LWJpdHMgYXJlIGZvcgphIE1BQyBhZGRyZXNzLCB3aGlsZSB0aGUgdXBwZXIgMTYtYml0cyBhcmUKaW1wbGVtZW50ZXItZGVmaW5lZC4gCg0KBQQHAgAFEgTDAgQKCg0KBQQHAgABEgTDAgsWCg0KBQQHAgADEgTDAhkaCi0KBAQHAgESBMcCBBkiHyBNYXggcGFja2V0cyBidWZmZXJlZCBhdCBvbmNlLiAKDQoFBAcCAQUSBMcCBAoKDQoFBAcCAQESBMcCCxQKDQoFBAcCAQMSBMcCFxgKNwoEBAcCAhIEyQIEGCIpIE51bWJlciBvZiB0YWJsZXMgc3VwcG9ydGVkIGJ5IGRhdGFwYXRoLiAKDQoFBAcCAgUSBMkCBAoKDQoFBAcCAgESBMkCCxMKDQoFBAcCAgMSBMkCFhcKLgoEBAcCAxIEygIEHCIgIElkZW50aWZ5IGF1eGlsaWFyeSBjb25uZWN0aW9ucyAKDQoFBAcCAwUSBMoCBAoKDQoFBAcCAwESBMoCCxcKDQoFBAcCAwMSBMoCGhsKQgoEBAcCBBIEzQIEHBoLIEZlYXR1cmVzLiAiJyBCaXRtYXAgb2Ygc3VwcG9ydCAib2ZwX2NhcGFiaWxpdGllcyIuIAoNCgUEBwIEBRIEzQIECgoNCgUEBwIEARIEzQILFwoNCgUEBwIEAxIEzQIaGwo0CgIFChIG0QIA1QIBGiYgV2hhdCBjaGFuZ2VkIGFib3V0IHRoZSBwaHlzaWNhbCBwb3J0IAoLCgMFCgESBNECBRQKIwoEBQoCABIE0gIEFiIVIFRoZSBwb3J0IHdhcyBhZGRlZC4gCg0KBQUKAgABEgTSAgQNCg0KBQUKAgACEgTSAhQVCiUKBAUKAgESBNMCBBYiFyBUaGUgcG9ydCB3YXMgcmVtb3ZlZC4gCg0KBQUKAgEBEgTTAgQQCg0KBQUKAgECEgTTAhQVCjcKBAUKAgISBNQCBBYiKSBTb21lIGF0dHJpYnV0ZSBvZiB0aGUgcG9ydCBoYXMgY2hhbmdlZC4gCg0KBQUKAgIBEgTUAgQQCg0KBQUKAgICEgTUAhQVCjYKAgULEgbYAgDbAgEaKCBXaGF0IGNoYW5nZWQgYWJvdXQgdGhlIHBoeXNpY2FsIGRldmljZSAKCwoDBQsBEgTYAgUaCiUKBAULAgASBNkCBB0iFyBUaGUgZGV2aWNlIGNvbm5lY3RlZC4gCg0KBQULAgABEgTZAgQUCg0KBQULAgACEgTZAhscCigKBAULAgESBNoCBB0iGiBUaGUgZGV2aWNlIGRpc2Nvbm5lY3RlZC4gCg0KBQULAgEBEgTaAgQXCg0KBQULAgECEgTaAhscCjsKAgQIEgbeAgDiAgEaLSBBIHBoeXNpY2FsIHBvcnQgaGFzIGNoYW5nZWQgaW4gdGhlIGRhdGFwYXRoIAoLCgMECAESBN4CCBcKNAoEBAgCABIE4AIEHxoTb2ZwX2hlYWRlciBoZWFkZXI7CiIRIE9uZSBvZiBPRlBQUl8qLiAKDQoFBAgCAAYSBOACBBMKDQoFBAgCAAESBOACFBoKDQoFBAgCAAMSBOACHR4KDAoEBAgCARIE4QIEFgoNCgUECAIBBhIE4QIEDAoNCgUECAIBARIE4QINEQoNCgUECAIBAxIE4QIUFQo9CgIECRIG5QIA6AIBGi8gQSBwaHlzaWNhbCBkZXZpY2UgaGFzIGNoYW5nZWQgaW4gdGhlIGRhdGFwYXRoIAoLCgMECQESBOUCCBkKNQoEBAkCABIE5wIEJRoTb2ZwX2hlYWRlciBoZWFkZXI7CiISIE9uZSBvZiBPRlBERVZfKi4gCg0KBQQJAgAGEgTnAgQZCg0KBQQJAgABEgTnAhogCg0KBQQJAgADEgTnAiMkCjQKAgQKEgbrAgD5AgEaJiBNb2RpZnkgYmVoYXZpb3Igb2YgdGhlIHBoeXNpY2FsIHBvcnQgCgsKAwQKARIE6wIIFAohCgQECgIAEgTtAgQXGhNvZnBfaGVhZGVyIGhlYWRlcjsKCg0KBQQKAgAFEgTtAgQKCg0KBQQKAgABEgTtAgsSCg0KBQQKAgADEgTtAhUWCh4KBAQKAgESBO4CBCAiEFtPRlBfRVRIX0FMRU5dOwoKDQoFBAoCAQQSBO4CBAwKDQoFBAoCAQUSBO4CDRMKDQoFBAoCAQESBO4CFBsKDQoFBAoCAQMSBO4CHh8KuwEKBAQKAgISBPQCBBYakAEgVGhlIGhhcmR3YXJlIGFkZHJlc3MgaXMgbm90CmNvbmZpZ3VyYWJsZS4gIFRoaXMgaXMgdXNlZCB0bwpzYW5pdHktY2hlY2sgdGhlIHJlcXVlc3QsIHNvIGl0IG11c3QKYmUgdGhlIHNhbWUgYXMgcmV0dXJuZWQgaW4gYW4Kb2ZwX3BvcnQgc3RydWN0LiAiGiBCaXRtYXAgb2YgT0ZQUENfKiBmbGFncy4gCg0KBQQKAgIFEgT0AgQKCg0KBQQKAgIBEgT0AgsRCg0KBQQKAgIDEgT0AhQVCjYKBAQKAgMSBPUCBBQiKCBCaXRtYXAgb2YgT0ZQUENfKiBmbGFncyB0byBiZSBjaGFuZ2VkLiAKDQoFBAoCAwUSBPUCBAoKDQoFBAoCAwESBPUCCw8KDQoFBAoCAwMSBPUCEhMKVQoEBAoCBBIE9wIEGSJHIEJpdG1hcCBvZiBPRlBQRl8qLiAgWmVybyBhbGwgYml0cyB0byBwcmV2ZW50CmFueSBhY3Rpb24gdGFraW5nIHBsYWNlLiAKDQoFBAoCBAUSBPcCBAoKDQoFBAoCBAESBPcCCxQKDQoFBAoCBAMSBPcCFxgKpAQKAgUMEgaGAwCJAwEaqQMgVGhlIG1hdGNoIHR5cGUgaW5kaWNhdGVzIHRoZSBtYXRjaCBzdHJ1Y3R1cmUgKHNldCBvZiBmaWVsZHMgdGhhdCBjb21wb3NlIHRoZQogbWF0Y2gpIGluIHVzZS4gVGhlIG1hdGNoIHR5cGUgaXMgcGxhY2VkIGluIHRoZSB0eXBlIGZpZWxkIGF0IHRoZSBiZWdpbm5pbmcKIG9mIGFsbCBtYXRjaCBzdHJ1Y3R1cmVzLiBUaGUgIk9wZW5GbG93IEV4dGVuc2libGUgTWF0Y2giIHR5cGUgY29ycmVzcG9uZHMKIHRvIE9YTSBUTFYgZm9ybWF0IGRlc2NyaWJlZCBiZWxvdyBhbmQgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgYWxsIE9wZW5GbG93CiBzd2l0Y2hlcy4gRXh0ZW5zaW9ucyB0aGF0IGRlZmluZSBvdGhlciBtYXRjaCB0eXBlcyBtYXkgYmUgcHVibGlzaGVkIG9uIHRoZQogT05GIHdpa2kuIFN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgaXMgb3B0aW9uYWwuCjIiICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIDIiICMjIE9wZW5GbG93IEV4dGVuc2libGUgTWF0Y2guICMjIDIiICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIAoLCgMFDAESBIYDBRMKGwoEBQwCABIEhwMEFyINIERlcHJlY2F0ZWQuIAoNCgUFDAIAARIEhwMEEgoNCgUFDAIAAhIEhwMVFgopCgQFDAIBEgSIAwQXIhsgT3BlbkZsb3cgRXh0ZW5zaWJsZSBNYXRjaCAKDQoFBQwCAQESBIgDBA0KDQoFBQwCAQISBIgDFRYKLQoCBAsSBowDAI8DARofIEZpZWxkcyB0byBtYXRjaCBhZ2FpbnN0IGZsb3dzIAoLCgMECwESBIwDCBEKHgoEBAsCABIEjQMEHCIQIE9uZSBvZiBPRlBNVF8qIAoNCgUECwIABhIEjQMEEgoNCgUECwIAARIEjQMTFwoNCgUECwIAAxIEjQMaGwoZCgQECwIBEgSOAwQqIgsgMCBvciBtb3JlIAoNCgUECwIBBBIEjgMEDAoNCgUECwIBBhIEjgMNGgoNCgUECwIBARIEjgMbJQoNCgUECwIBAxIEjgMoKQq3CAoCBQ0SBqgDAK0DARrmASBPWE0gQ2xhc3MgSURzLgogVGhlIGhpZ2ggb3JkZXIgYml0IGRpZmZlcmVudGlhdGUgcmVzZXJ2ZWQgY2xhc3NlcyBmcm9tIG1lbWJlciBjbGFzc2VzLgogQ2xhc3NlcyAweDAwMDAgdG8gMHg3RkZGIGFyZSBtZW1iZXIgY2xhc3NlcywgYWxsb2NhdGVkIGJ5IE9ORi4KIENsYXNzZXMgMHg4MDAwIHRvIDB4RkZGRSBhcmUgcmVzZXJ2ZWQgY2xhc3NlcywgcmVzZXJ2ZWQgZm9yIHN0YW5kYXJkaXNhdGlvbi4KMqkBIENvbXBvbmVudHMgb2YgYSBPWE0gVExWIGhlYWRlci4KIFRob3NlIG1hY3JvcyBhcmUgbm90IHZhbGlkIGZvciB0aGUgZXhwZXJpbWVudGVyIGNsYXNzLCBtYWNyb3MgZm9yIHRoZQogZXhwZXJpbWVudGVyIGNsYXNzIHdpbGwgZGVwZW5kIG9uIHRoZSBleHBlcmltZW50ZXIgaGVhZGVyIHVzZWQuIDKTBSNkZWZpbmUgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgSEFTTUFTSywgTEVOR1RIKSBcCiAgICAoKChDTEFTUykgPDwgMTYpIHwgKChGSUVMRCkgPDwgOSkgfCAoKEhBU01BU0spIDw8IDgpIHwgKExFTkdUSCkpCiNkZWZpbmUgT1hNX0hFQURFUihDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMCwgTEVOR1RIKQojZGVmaW5lIE9YTV9IRUFERVJfVyhDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMSwgKExFTkdUSCkgKiAyKQojZGVmaW5lIE9YTV9DTEFTUyhIRUFERVIpICgoSEVBREVSKSA+PiAx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ciBhIHBhY2tldCByZWNlaXZlZCBvbiBhIHR1bm5lbCBpbnRlcmZhY2UgZGVmaW5lZCBvdmVyIGEgbGluawogYWdncmVnYXRpb24gZ3JvdXAgKExBRykgd2l0aCB0d28gcGh5c2ljYWwgcG9ydCBtZW1iZXJzLiAgSWYgdGhlIHR1bm5lbAogaW50ZXJmYWNlIGlzIHRoZSBsb2dpY2FsIHBvcnQgYm91bmQgdG8gT3BlbkZsb3cuICBJbiB0aGlzIGNhc2UsCiBPRlBYTVRfT0ZfSU5fUE9SVCBpcyB0aGUgdHVubmVsJ3MgcG9ydCBudW1iZXIgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBpcwogdGhlIHBoeXNpY2FsIHBvcnQgbnVtYmVyIG9mIHRoZSBMQUcgb24gd2hpY2ggdGhlIHR1bm5lbCBpcyBjb25maWd1cmVkLgoKIFdoZW4gYSBwYWNrZXQgaXMgcmVjZWl2ZWQgZGlyZWN0bHkgb24gYSBwaHlzaWNhbCBwb3J0IGFuZCBub3QgcHJvY2Vzc2VkIGJ5IGEKIGxvZ2ljYWwgcG9ydCwgT0ZQWE1UX09GX0lOX1BPUlQgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBoYXZlIHRoZSBzYW1lCiB2YWx1ZS4KCiBUaGlzIGZpZWxkIGlzIHVzdWFsbHkgbm90IGF2YWlsYWJsZSBpbiBhIHJlZ3VsYXIgbWF0Y2ggYW5kIG9ubHkgYXZhaWxhYmxlCiBpbiBvZnBfcGFja2V0X2luIG1lc3NhZ2VzIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSBPWE1fT0ZfSU5fUE9SVC4KCiBQcmVyZXFzOiBPWE1fT0ZfSU5fUE9SVCBtdXN0IGJlIHByZXNlbnQuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CAwUSBIsECA4KDQoFBA0CAwESBIsEDxwKDQoFBA0CAwMSBIsEHyAKrQIKBAQNAgQSBJcECCIajgEjZGVmaW5lIE9YTV9PRl9NRVRBREFUQSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiNkZWZpbmUgT1hNX09GX01FVEFEQVRBX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAybiBUYWJsZSBtZXRhZGF0YS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAgQFEgSXBAgOCg0KBQQNAgQBEgSXBA8dCg0KBQQNAgQDEgSXBCAhCuIDCgQEDQIFEgSkBAgaGpgCI2RlZmluZSBPWE1fT0ZfRVRIX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX0RTVCAoZXhhY3RseSA2IGJ5dGVzKSAyhwEgU291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gRXRoZXJuZXQgaGVhZGVyLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CBQUSBKQECA0KDQoFBA0CBQESBKQEDhUKDQoFBA0CBQMSBKQEGBkKPQoEBA0CBhIEpQQIGiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1NSQyAoZXhhY3RseSA2IGJ5dGVzKSAKDQoFBA0CBgUSBKUECA0KDQoFBA0CBgESBKUEDhUKDQoFBA0CBgMSBKUEGBkK6QEKBAQNAgcSBK8ECBwaRiNkZWZpbmUgT1hNX09GX0VUSF9UWVBFICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfVFlQRSwyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9UWVBFIDJzIFBhY2tldCdzIEV0aGVybmV0IHR5cGUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIHBRIErwQIDgoNCgUEDQIHARIErwQPFwoNCgUEDQIHAxIErwQaGwqDCwoEBA0CCBIE1QQIHBqOASNkZWZpbmUgT1hNX09GX1ZMQU5fVklEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKI2RlZmluZSBPWE1fT0ZfVkxBTl9WSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fVklEIDLDCSA4MDIuMVEgVklELgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tSUQgKFZJRCkgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcsIHdpdGggdGhlIENGSSBiaXQgZm9yY2VkIHRvIDEuIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUQogaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZSBPRlBWSURfTk9ORS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggYml0IDEzIGluZGljYXRpbmcKIHByZXNlbmNlIG9mIFZMQU4gaGVhZGVyIGFuZCAzIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDEzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIGluIHZhcmlvdXMgd2F5czoKCiAgIC0gSWYgaXQgaXMgbm90IGNvbnN0cmFpbmVkIGF0IGFsbCwgdGhlIG54X21hdGNoIG1hdGNoZXMgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCAweDAgbWF0Y2hlcyBvbmx5IHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBWSUQgdmFsdWUgd2l0aCBDRkk9MSBtYXRjaGVzIHBhY2tldHMKICAgICB0aGF0IGhhdmUgYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgc3BlY2lmaWVkIFZJRC4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIG5vbnplcm8gVklEIHZhbHVlIHdpdGggQ0ZJPTAgZG9lcwogICAgIG5vdCBtYWtlIHNlbnNlLiAgVGhlIHN3aXRjaCBtYXkgcmVqZWN0IHRoaXMgY29tYmluYXRpb24uCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MCwgbnhtX21hc2s9MHgwZmZmIG1hdGNoZXMgcGFja2V0cyB3aXRoIG5vIDgwMi4xUQogICAgIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIFZJRCBvZiAwLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTB4MTAwMCwgbnhtX21hc2s9MHgxMDAwIG1hdGNoZXMgcGFja2V0cyB3aXRoCiAgICAgYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKDQoFBA0CCAUSBNUECA4KDQoFBA0CCAESBNUEDxcKDQoFBA0CCAMSBNUEGhsK0AMKBAQNAgkSBOUECB0aRyNkZWZpbmUgT1hNX09GX1ZMQU5fUENQICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1BDUCwgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1BDUCAy2AIgODAyLjFRIFBDUC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLVBDUCBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZy4gIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUSBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlCiAwLgoKIFByZXJlcXM6IE9YTV9PRl9WTEFOX1ZJRCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIE9GUFZJRF9OT05FLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuCgoNCgUEDQIJBRIE5QQIDgoNCgUEDQIJARIE5QQPFwoNCgUEDQIJAxIE5QQaHAqoAwoEBA0CChIE8QQIHBpHI2RlZmluZSBPWE1fT0ZfSVBfRFNDUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9EU0NQLCAxKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0RTQ1AgMrECIFRoZSBEaWZmIFNlcnYgQ29kZSBQb2ludCAoRFNDUCkgYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCAyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDYgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CCgUSBPEECA4KDQoFBA0CCgESBPEEDxYKDQoFBA0CCgMSBPEEGRsKjQMKBAQNAgsSBP0ECBsaRSNkZWZpbmUgT1hNX09GX0lQX0VDTiAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9FQ04sIDEpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRUNOIDKZAiBUaGUgRUNOIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgsFEgT9BAgOCg0KBQQNAgsBEgT9BA8VCg0KBQQNAgsDEgT9BBgaCo0CCgQEDQIMEgSHBQgdGkcjZGVmaW5lIE9YTV9PRl9JUF9QUk9UTyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfUFJPVE8sIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfUFJPVE8gMpUBIFRoZSAicHJvdG9jb2wiIGJ5dGUgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CDAUSBIcFCA4KDQoFBA0CDAESBIcFDxcKDQoFBA0CDAMSBIcFGhwKjQQKBAQNAg0SBJUFCB0apAIjZGVmaW5lIE9YTV9PRl9JUFY0X1NSQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkNfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVF9XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X1NSQyAytwEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CDQUSBJUFCA4KDQoFBA0CDQESBJUFDxcKDQoFBA0CDQMSBJUFGhwKLAoEBA0CDhIElgUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9EU1QgCg0KBQQNAg4FEgSWBQgOCg0KBQQNAg4BEgSWBQ8XCg0KBQQNAg4DEgSWBRocCqEDCgQEDQIPEgSjBQgcGowBI2RlZmluZSBPWE1fT0ZfVENQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1RDUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9TUkMgMuQBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVENQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAg8FEgSjBQgOCg0KBQQNAg8BEgSjBQ8WCg0KBQQNAg8DEgSjBRkbCisKBAQNAhASBKQFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9EU1QgCg0KBQQNAhAFEgSkBQgOCg0KBQQNAhABEgSkBQ8WCg0KBQQNAhADEgSkBRkbCqUDCgQEDQIREgSxBQgcGowBI2RlZmluZSBPWE1fT0ZfVURQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1VEUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9TUkMgMugBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVURQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTcgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIRBRIEsQUIDgoNCgUEDQIRARIEsQUPFgoNCgUEDQIRAxIEsQUZGworCgQEDQISEgSyBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfRFNUIAoNCgUEDQISBRIEsgUIDgoNCgUEDQISARIEsgUPFgoNCgUEDQISAxIEsgUZGwqqAwoEBA0CExIEvwUIHRqOASNkZWZpbmUgT1hNX09GX1NDVFBfU1JDICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfU0NUUF9EU1QgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfRFNULCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfU1JDIDLqASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFNDVFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxMzIgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQITBRIEvwUIDgoNCgUEDQITARIEvwUPFwoNCgUEDQITAxIEvwUaHAosCgQEDQIUEgTABQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX0RTVCAKDQoFBA0CFAUSBMAFCA4KDQoFBA0CFAESBMAFDxcKDQoFBA0CFAMSBMAFGhwKhwMKBAQNAhUSBM0FCCAamAEjZGVmaW5lIE9YTV9PRl9JQ01QVjRfVFlQRSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY0X0NPREUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUsIDEpCiIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUgMroBIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxIGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhUFEgTNBQgOCg0KBQQNAhUBEgTNBQ8aCg0KBQQNAhUDEgTNBR0fCi8KBAQNAhYSBM4FCCAiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFIAoNCgUEDQIWBRIEzgUIDgoNCgUEDQIWARIEzgUPGgoNCgUEDQIWAxIEzgUdHwrVAgoEBA0CFxIE2wUIGxpFI2RlZmluZSBPWE1fT0ZfQVJQX09QICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9PUCwgMikKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9BUlBfT1AgMuEBIEFSUCBvcGNvZGUuCgogRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBvcGNvZGUgaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMAogb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhcFEgTbBQgOCg0KBQQNAhcBEgTbBQ8VCg0KBQQNAhcDEgTbBRgaCrUECgQEDQIYEgTqBQgcGpgCI2RlZmluZSBPWE1fT0ZfQVJQX1NQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9TUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiIYIEZvciBPRlBYTVRfT0ZCX0FSUF9TUEEgMvEBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBwcm90b2NvbCBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIYBRIE6gUIDgoNCgUEDQIYARIE6gUPFgoNCgUEDQIYAxIE6gUZGwomCgQEDQIZEgTrBQgcIhggRm9yIE9GUFhNVF9PRkJfQVJQX1RQQSAKDQoFBA0CGQUSBOsFCA4KDQoFBA0CGQESBOsFDxYKDQoFBA0CGQMSBOsFGRsKtwQKBAQNAhoSBPkFCBsanAIjZGVmaW5lIE9YTV9PRl9BUlBfU0hBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9TSEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiIiIEZvciBPRlBYTVRfT0ZCX0FSUF9TSEEgKDYgYnl0ZXMpIDLlASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgaGFyZHdhcmUgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CGgUSBPkFCA0KDQoFBA0CGgESBPkFDhUKDQoFBA0CGgMSBPkFGBoKMAoEBA0CGxIE+gUIGyIiIEZvciBPRlBYTVRfT0ZCX0FSUF9USEEgKDYgYnl0ZXMpIAoNCgUEDQIbBRIE+gUIDQoNCgUEDQIbARIE+gUOFQoNCgUEDQIbAxIE+gUYGgr6AwoEBA0CHBIEiAYIHBqkAiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQoiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X1NSQyAyqQEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUHY2IGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAhwFEgSIBggNCg0KBQQNAhwBEgSIBg4WCg0KBQQNAhwDEgSIBhkbCicKBAQNAh0SBIkGCBwiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X0RTVCAKDQoFBA0CHQUSBIkGCA0KDQoFBA0CHQESBIkGDhYKDQoFBA0CHQMSBIkGGRsKnQMKBAQNAh4SBJcGCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwgMtMBIFRoZSBJUHY2IEZsb3cgTGFiZWwKCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMzItYml0IGludGVnZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIeBRIElwYIDgoNCgUEDQIeARIElwYPGgoNCgUEDQIeAxIElwYdHwqDAwoEBA0CHxIEpAYIIBqWASNkZWZpbmUgT1hNX09GX0lDTVBWNl9UWVBFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNl9DT0RFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUsIDEpCiIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFIDK9ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QdjYgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIfBRIEpAYIDgoNCgUEDQIfARIEpAYPGgoNCgUEDQIfAxIEpAYdHwoqCgQEDQIgEgSlBgggIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUgCg0KBQQNAiAFEgSlBggOCg0KBQQNAiABEgSlBg8aCg0KBQQNAiADEgSlBh0fCpEDCgQEDQIhEgSzBggiGlcjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RBUkdFVCBPWE1fSEVBREVSIFwKICAgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQsIDE2KQoiHyBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCAyiAIgVGhlIHRhcmdldCBhZGRyZXNzIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5IG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGVpdGhlciAxMzUgb3IgMTM2LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIQUSBLMGCA0KDQoFBA0CIQESBLMGDhwKDQoFBA0CIQMSBLMGHyEKlwMKBAQNAiISBMEGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfU0xMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCAynAIgVGhlIHNvdXJjZSBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIiBRIEwQYIDQoNCgUEDQIiARIEwQYOGQoNCgUEDQIiAxIEwQYcHgqXAwoEBA0CIxIEzwYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMIDKcAiBUaGUgdGFyZ2V0IGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM2LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiMFEgTPBggNCg0KBQQNAiMBEgTPBg4ZCg0KBQQNAiMDEgTPBhweCv4CCgQEDQIkEgTbBggfGkojZGVmaW5lIE9YTV9PRl9NUExTX0xBQkVMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfTEFCRUwsIDQpCiIbIEZvciBPRlBYTVRfT0ZCX01QTFNfTEFCRUwgMoYCIFRoZSBMQUJFTCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50CiBiaXRzIGZvcmNlZCB0byAwLiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIkBRIE2wYIDgoNCgUEDQIkARIE2wYPGQoNCgUEDQIkAxIE2wYcHgrcAgoEBA0CJRIE5wYIHBpHI2RlZmluZSBPWE1fT0ZfTVBMU19UQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX1RDLCAxKQoiGCBGb3IgT0ZQWE1UX09GQl9NUExTX1RDIDLqASBUaGUgVEMgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIlBRIE5wYIDgoNCgUEDQIlARIE5wYPFgoNCgUEDQIlAxIE5wYZGwrkAgoEBA0CJhIE8wYIHRpJI2RlZmluZSBPWE1fT0ZfTVBMU19CT1MgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19CT1MsIDEpCiIZIEZvciBPRlBYTVRfT0ZCX01QTFNfQk9TIDLvASBUaGUgQm9TIGJpdCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlc3QgYml0IGhhdmUgYSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiYFEgTzBggOCg0KBQQNAiYBEgTzBg8XCg0KBQQNAiYDEgTzBhocCqoDCgQEDQInEgSCBwgdGo4BI2RlZmluZSBPWE1fT0ZfUEJCX0lTSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQojZGVmaW5lIE9YTV9PRl9QQkJfSVNJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiIZIEZvciBPRlBYTVRfT0ZCX1BCQl9JU0lEIDLvASBJRUVFIDgwMi4xYWggSS1TSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYSBQQkIgaGVhZGVyLCB0aGlzIGlzIHRoZSBJLVNJRCBmcm9tIHRoZQogb3V0ZXJtb3N0IHNlcnZpY2UgdGFnLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODhFNyBleGFjdGx5LgoKIEZvcm1hdDogMjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQNAicFEgSCBwgOCg0KBQQNAicBEgSCBw8XCg0KBQQNAicDEgSCBxocCrwGCgQEDQIoEgSWBwgeGpQBI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQojZGVmaW5lIE9YTV9PRl9UVU5ORUxfSURfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiIaIEZvciBPRlBYTVRfT0ZCX1RVTk5FTF9JRCAy+gQgTG9naWNhbCBQb3J0IE1ldGFkYXRhLgoKIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGxvZ2ljYWwgcG9ydC4KIElmIHRoZSBsb2dpY2FsIHBvcnQgcGVyZm9ybXMgZW5jYXBzdWxhdGlvbiBhbmQgZGVjYXBzdWxhdGlvbiwgdGhpcwogaXMgdGhlIGRlbXVsdGlwbGV4aW5nIGZpZWxkIGZyb20gdGhlIGVuY2Fwc3VsYXRpb24gaGVhZGVyLgogRm9yIGV4YW1wbGUsIGZvciBhIHBhY2tldCByZWNlaXZlZCB2aWEgR1JFIHR1bm5lbCBpbmNsdWRpbmcgYSAoMzItYml0KSBrZXksCiB0aGUga2V5IGlzIHN0b3JlZCBpbiB0aGUgbG93IDMyLWJpdHMgYW5kIHRoZSBoaWdoIGJpdHMgYXJlIHplcm9lZC4KIEZvciBhIE1QTFMgbG9naWNhbCBwb3J0LCB0aGUgbG93IDIwIGJpdHMgcmVwcmVzZW50IHRoZSBNUExTIExhYmVsLgogRm9yIGEgVnhMQU4gbG9naWNhbCBwb3J0LCB0aGUgbG93IDI0IGJpdHMgcmVwcmVzZW50IHRoZSBWTkkuCiBJZiB0aGUgcGFja2V0IGlzIG5vdCByZWNlaXZlZCB0aHJvdWdoIGEgbG9naWNhbCBwb3J0LCB0aGUgdmFsdWUgaXMgMC4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQNAigFEgSWBwgOCg0KBQQNAigBEgSWBw8YCg0KBQQNAigDEgSWBxsdCqgDCgQEDQIpEgSjBwggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFIgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQojZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUl9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSIDLeASBUaGUgSVB2NiBFeHRlbnNpb24gSGVhZGVyIHBzZXVkby1maWVsZC4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDkgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTWFza2FibGUuIAoNCgUEDQIpBRIEowcIDgoNCgUEDQIpARIEowcPGgoNCgUEDQIpAxIEowcdHwpNCgQEDQgBEgaoBwTABwUaPSBPcHRpb25hbCBtYXNrIHZhbHVlcyAobXVzdCBiZSBwcmVzZW50IHdoZW4gaGFzX21hc2sgaXMgdHJ1ZSAKDQoFBA0IAQESBKgHCg4KJwoEBA0CKhIEqQcIKSIZIEZvciBPRlBYTVRfT0ZCX01FVEFEQVRBIAoNCgUEDQIqBRIEqQcIDgoNCgUEDQIqARIEqQcPIgoNCgUEDQIqAxIEqQclKAo3CgQEDQIrEgSrBwghIikgRm9yIE9GUFhN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bG93IHRhYmxlIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9zdGF0cy4gCg0KBQUuAgMBEgSkDQQPCg0KBQUuAgMCEgSkDRITCooBCgQFLgIEEgSpDQQZGnwgUG9ydCBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydF9zdGF0cy4gCg0KBQUuAgQBEgSpDQQUCg0KBQUuAgQCEgSpDRcYCpcBCgQFLgIFEgSuDQQUGogBIFF1ZXVlIHN0YXRpc3RpY3MgZm9yIGEgcG9ydAogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzIAoNCgUFLgIFARIErg0EDwoNCgUFLgIFAhIErg0SEwqRAQoEBS4CBhIEsw0EFBqCASBHcm91cCBjb3VudGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzLiAKDQoFBS4CBgESBLMNBA8KDQoFBS4CBgISBLMNEhMKdAoEBS4CBxIEuA0EGRpmIEdyb3VwIGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfZGVzYy4gCg0KBQUuAgcBEgS4DQQUCg0KBQUuAgcCEgS4DRcYCmkKBAUuAggSBL0NBB0aWyBHcm91cCBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX2ZlYXR1cmVzLiAKDQoFBS4CCAESBL0NBBgKDQoFBS4CCAISBL0NGxwKkwEKBAUuAgkSBMINBBQahAEgTWV0ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS4CCQESBMINBA8KDQoFBS4CCQISBMINEhMKlwEKBAUuAgoSBMcNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUuAgoBEgTHDQQWCg0KBQUuAgoCEgTHDRkbCmkKBAUuAgsSBMwNBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS4CCwESBMwNBBgKDQoFBS4CCwISBMwNGx0KsQIKBAUuAgwSBNQNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLgIMARIE1A0EGAoNCgUFLgIMAhIE1A0bHQptCgQFLgIN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DQoFBFMCBQUSBKIRBAoKDQoFBFMCBQESBKIRCxcKDQoFBFMCBQMSBKIRGhsKTQoEBFMCBhIEoxEEHSI/IFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg0KBQRTAgYFEgSjEQQKCg0KBQRTAgYBEgSjEQsYCg0KBQRTAgYDEgSjERscCusGCgIFNBIGvBEAwREBGhMgQ29udHJvbGxlciByb2xlcy4gMscGIENvbmZpZ3VyZXMgdGhlICJyb2xlIiBvZiB0aGUgc2VuZGluZyBjb250cm9sbGVyLiAgVGhlIGRlZmF1bHQgcm9sZSBpczoKCiAgICAtIEVxdWFsIChPRlBDUl9ST0xFX0VRVUFMKSwgd2hpY2ggYWxsb3dzIHRoZSBjb250cm9sbGVyIGFjY2VzcyB0byBhbGwKICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuIEFsbCBjb250cm9sbGVycyBoYXZlIGVxdWFsIHJlc3BvbnNpYmlsaXR5LgoKIFRoZSBvdGhlciBwb3NzaWJsZSByb2xlcyBhcmUgYSByZWxhdGVkIHBhaXI6CgogICAgLSBNYXN0ZXIgKE9GUENSX1JPTEVfTUFTVEVSKSBpcyBlcXVpdmFsZW50IHRvIEVxdWFsLCBleGNlcHQgdGhhdCB0aGVyZQogICAgICBtYXkgYmUgYXQgbW9zdCBvbmUgTWFzdGVyIGNvbnRyb2xsZXIgYXQgYSB0aW1lOiB3aGVuIGEgY29udHJvbGxlcgogICAgICBjb25maWd1cmVzIGl0c2VsZiBhcyBNYXN0ZXIsIGFueSBleGlzdGluZyBNYXN0ZXIgaXMgZGVtb3RlZCB0byB0aGUKICAgICAgU2xhdmUgcm9sZS4KCiAgICAtIFNsYXZlIChPRlBDUl9ST0xFX1NMQVZFKSBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgcmVhZC1vbmx5IGFjY2VzcyB0bwogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gIEluIHBhcnRpY3VsYXIgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBmbG93IHRhYmxlCiAgICAgIHdpbGwgYmUgcmVqZWN0ZWQgd2l0aCBhbiBPRlBCUkNfRVBFUk0g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ZGFwdGVycwoKCwoDBGIBEgSWEggUCj0KBARiAgASBJgSBDUaLyBNZXRlcnMgYXNzb2NpYXRlZCB3aXRoIGZsb3ctdXBkYXRlIHRvIGFkYXB0ZXIKCg0KBQRiAgAEEgSYEgQMCg0KBQRiAgAGEgSYEg0pCg0KBQRiAgABEgSYEiowCg0KBQRiAgADEgSYEjM0YgZwcm90bzMKyBEKInZvbHRoYV9wcm90b3MvbG9naWNhbF9kZXZpY2UucHJvdG8SDmxvZ2ljYWxfZGV2aWNlGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvIjgKDUxvZ2ljYWxQb3J0SWQSDgoCaWQYASABKAlSAmlkEhcKB3BvcnRfaWQYAiABKAlSBnBvcnRJZCLyAQoLTG9naWNhbFBvcnQSDgoCaWQYASABKAlSAmlkEjAKCG9mcF9wb3J0GAIgASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIkCg5kZXZpY2VfcG9ydF9ubxgEIAEoDVIMZGV2aWNlUG9ydE5vEhsKCXJvb3RfcG9ydBgFIAEoCFIIcm9vdFBvcnQSQQoOb2ZwX3BvcnRfc3RhdHMYBiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0c1IMb2ZwUG9ydFN0YXRzIkEKDExvZ2ljYWxQb3J0cxIxCgVpdGVtcxgBIAMoCzIbLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0UgVpdGVtcyLcAQoNTG9naWNhbERldmljZRIOCgJpZBgBIAEoCVICaWQSHwoLZGF0YXBhdGhfaWQYAiABKARSCmRhdGFwYXRoSWQSKQoEZGVzYxgDIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzEiQKDnJvb3RfZGV2aWNlX2lkGAUgASgJUgxyb290RGV2aWNlSWQiRQoOTG9naWNhbERldmljZXMSMwoFaXRlbXMYASADKAsyHS5s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cGRhdGUSRAofYWNjZXB0c19hZGRfcmVtb3ZlX2Zsb3dfdXBkYXRlcxgEIAEoCFIbYWNjZXB0c0FkZFJlbW92ZUZsb3dVcGRhdGVzEkwKI2FjY2VwdHNfZGlyZWN0X2xvZ2ljYWxfZmxvd3NfdXBkYXRlGAcgASgIUh9hY2NlcHRzRGlyZWN0TG9naWNhbEZsb3dzVXBkYXRlEiEKDGFkYXB0ZXJfdHlwZRgIIAEoCVILYWRhcHRlclR5cGUiNwoLRGV2aWNlVHlwZXMSKAoFaXRlbXMYASADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVIFaXRlbXMiwAEKCFBtQ29uZmlnEhIKBG5hbWUYASABKAlSBG5hbWUSKwoEdHlwZRgCIAEoDjIXLmRldmljZS5QbUNvbmZpZy5QbVR5cGVSBHR5cGUSGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIfCgtzYW1wbGVfZnJlcRgEIAEoDVIKc2FtcGxlRnJlcSI4CgZQbVR5cGUSCwoHQ09VTlRFUhAAEgkKBUdBVUdFEAESCQoFU1RBVEUQAhILCgdDT05URVhUEAMikwEKDVBtR3JvdXBDb25maWcSHQoKZ3JvdXBfbmFtZRgBIAEoCVIJZ3JvdXBOYW1lEh0KCmdyb3VwX2ZyZXEYAiABKA1SCWdyb3VwRnJlcRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEioKB21ldHJpY3MYBCADKAsyEC5kZXZpY2UuUG1Db25maWdSB21ldHJpY3Mi8wEKCVBtQ29uZmlncxIOCgJpZBgBIAEoCVICaWQSIQoMZGVmYXVsdF9mcmVxGAIgASgNUgtkZWZhdWx0RnJlcRIYCgdncm91cGVkGAMgASgIUgdncm91cGVkEiMKDWZyZXFfb3ZlcnJpZGUYBCABKAhSDGZyZXFPdmVycmlkZRItCgZncm91cHMYBSADKAsyFS5kZXZpY2UuUG1Hcm91cENvbmZpZ1IGZ3JvdXBzEioKB21ldHJpY3MYBiADKAsyEC5kZXZpY2UuUG1Db25maWdSB21ldHJpY3MSGQoIbWF4X3NrZXcYByABKA1SB21heFNrZXcijwIKBUltYWdlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhISCgRoYXNoGAMgASgNUgRoYXNoEikKEGluc3RhbGxfZGF0ZXRpbWUYBCABKAlSD2luc3RhbGxEYXRldGltZRIbCglpc19hY3RpdmUYBSABKAhSCGlzQWN0aXZlEiEKDGlzX2NvbW1pdHRlZBgGIAEoCFILaXNDb21taXR0ZWQSGQoIaXNfdmFsaWQYByABKAhSB2lzVmFsaWQSEAoDdXJsGAggASgJUgN1cmwSFgoGdmVuZG9yGAkgASgJUgZ2ZW5kb3ISFAoFY3JjMzIYCiABKA1SBWNyYzMyIucHCg1JbWFnZURvd25sb2FkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhAKA3VybBgDIAEoCVIDdXJsEhAKA2NyYxgEIAEoDVIDY3JjEk8KDmRvd25sb2FkX3N0YXRlGAUgASgOMiguZGV2aWNlLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEiMKDWltYWdlX3ZlcnNpb24YBiABKAlSDGltYWdlVmVyc2lvbhIpChBkb3dubG9hZGVkX2J5dGVzGAcgASgNUg9kb3dubG9hZGVkQnl0ZXMSSAoGcmVhc29uGAggASgOMjAuZGV2aWNlLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb25SBnJlYXNvbhInCg9hZGRpdGlvbmFsX2luZm8YCSABKAlSDmFkZGl0aW9uYWxJbmZvEh8KC3NhdmVfY29uZmlnGAogASgIUgpzYXZlQ29uZmlnEhsKCWxvY2FsX2RpchgLIAEoCVIIbG9jYWxEaXISSQoLaW1hZ2Vfc3RhdGUYDCABKA4yKC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZUFjdGl2YXRlU3RhdGVSCmltYWdlU3RhdGUSGwoJZmlsZV9zaXplGA0gASgNUghmaWxlU2l6ZSK3AQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIWChJET1dOTE9BRF9DQU5DRUxMRUQQBiKGAQoaSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEg0KCUNBTkNFTExFRBAFIowBChJJbWFnZUFjdGl2YXRlU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhMKD0lNQUdFX1JFVkVSVElORxAEEhIKDklNQUdFX1JFVkVSVEVEEAU6AhgBIkEKDkltYWdlRG93bmxvYWRzEisKBWl0ZW1zGAIgAygLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSBWl0ZW1zOgIYASItCgZJbWFnZXMSIwoFaW1hZ2UYASADKAsyDS5kZXZpY2UuSW1hZ2VSBWltYWdlIrABCghPbnVJbWFnZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEh4KCmlzQ29tbWl0ZWQYAiABKAhSCmlzQ29tbWl0ZWQSGgoIaXNBY3RpdmUYAyABKAhSCGlzQWN0aXZlEhgKB2lzVmFsaWQYBCABKAhSB2lzVmFsaWQSIAoLcHJvZHVjdENvZGUYBSABKAlSC3Byb2R1Y3RDb2RlEhIKBGhhc2gYBiABKAlSBGhhc2giMwoJT251SW1hZ2VzEiYKBWl0ZW1zGAEgAygLMhAuZGV2aWNlLk9udUltYWdlUgVpdGVtcyJjChBEZXZpY2VJbWFnZVN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoKaW1hZ2VTdGF0ZRgCIAEoCzISLmRldmljZS5JbWFnZVN0YXRlUgppbWFnZVN0YXRlIoIICgpJbWFnZVN0YXRlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24STAoOZG93bmxvYWRfc3RhdGUYAiABKA4yJS5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSPQoGcmVhc29uGAMgASgOMiUuZGV2aWNlLkltYWdlU3RhdGUuSW1hZ2VGYWlsdXJlUmVhc29uUgZyZWFzb24SSAoLaW1hZ2Vfc3RhdGUYBCABKA4yJy5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZUFjdGl2YXRpb25TdGF0ZVIKaW1hZ2VTdGF0ZSLQAQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIXChNET1dOTE9BRF9DQU5DRUxMSU5HEAYSFgoSRE9XTkxPQURfQ0FOQ0VMTEVEEAci9AEKEkltYWdlRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSGAoUQ0FOQ0VMTEVEX09OX1JFUVVFU1QQBRIaChZDQU5DRUxMRURfT05fT05VX1NUQVRFEAYSGgoWVkVORE9SX0RFVklDRV9NSVNNQVRDSBAHEhcKE09NQ0lfVFJBTlNGRVJfRVJST1IQCBIYChRJTUFHRV9SRUZVU0VEX0JZX09OVRAJIrgCChRJbWFnZUFjdGl2YXRpb25TdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSFAoQSU1BR0VfQ09NTUlUVElORxAEEhMKD0lNQUdFX0NPTU1JVFRFRBAFEh0KGUlNQUdFX0FDVElWQVRJT05fQUJPUlRJTkcQBhIcChhJTUFHRV9BQ1RJVkFUSU9OX0FCT1JURUQQBxIZChVJTUFHRV9DT01NSVRfQUJPUlRJTkcQCBIYChRJTUFHRV9DT01NSVRfQUJPUlRFRBAJEhUKEUlNQUdFX0RPV05MT0FESU5HEAoSHQoZSU1BR0VfRE9XTkxPQURJTkdfQUJPUlRFRBALIrcFCgRQb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIUCgVsYWJlbBgCIAEoCVIFbGFiZWwSKQoEdHlwZRgDIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUgR0eXBlEjkKC2FkbWluX3N0YXRlGAUgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYBiABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIbCglkZXZpY2VfaWQYByABKAlSCGRldmljZUlkEisKBXBlZXJzGAggAygLMhUuZGV2aWNlLlBvcnQuUGVlclBvcnRSBXBlZXJzEh0KCnJ4X3BhY2tldHMYCSABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgKIAEoBlIHcnhCeXRlcxIbCglyeF9lcnJvcnMYCyABKAZSCHJ4RXJyb3JzEh0KCnR4X3BhY2tldHMYDCABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgNIAEoBlIHdHhCeXRlcxIbCgl0eF9lcnJvcnMYDiABKAZSCHR4RXJyb3JzEjAKCG9mcF9wb3J0GA8gASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQaQAoIUGVlclBvcnQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIXCgdwb3J0X25vGAIgASgNUgZwb3J0Tm8icwoIUG9ydFR5cGUSCwoHVU5LTk9XThAAEhAKDEVUSEVSTkVUX05OSRABEhAKDEVUSEVSTkVUX1VOSRACEgsKB1BPTl9PTFQQAxILCgdQT05fT05VEAQSDQoJVkVORVRfT0xUEAUSDQoJVkVORVRfT05VEAYiKwoFUG9ydHMSIgoFaXRlbXMYASADKAsyDC5kZXZpY2UuUG9ydFIFaXRlbXMi2AoKBkRldmljZRIOCgJpZBgBIAEoCVICaWQSEgoEdHlwZRgCIAEoCVIEdHlwZRISCgRyb290GAMgASgIUgRyb290EhsKCXBhcmVudF9pZBgEIAEoCVIIcGFyZW50SWQSJAoOcGFyZW50X3BvcnRfbm8YFCABKA1SDHBhcmVudFBvcnRObxIWCgZ2ZW5kb3IYBSABKAlSBnZlbmRvchIUCgVtb2RlbBgGIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgHIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YCCABKAlSD2Zpcm13YXJlVmVyc2lvbhImCgZpbWFnZXMYCSABKAsyDi5kZXZpY2UuSW1hZ2VzUgZpbWFnZXMSIwoNc2VyaWFsX251bWJlchgKIAEoCVIMc2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgYIAEoCVIIdmVuZG9ySWQSKQoQYWRhcHRlcl9lbmRwb2ludBgZIAEoCVIPYWRhcHRlckVuZHBvaW50EhIKBHZsYW4YDCABKA1SBHZsYW4SHwoLbWFjX2FkZHJlc3MYDSABKAlSCm1hY0FkZHJlc3MSIwoMaXB2NF9hZGRyZXNzGA4gASgJSABSC2lwdjRBZGRyZXNzEiMKDGlwdjZfYWRkcmVzcxgPIAEoCUgAUgtpcHY2QWRkcmVzcxIkCg1ob3N0X2FuZF9wb3J0GBUgASgJSABSC2hvc3RBbmRQb3J0Eh0KCmV4dHJhX2FyZ3MYFyABKAlSCWV4dHJhQXJncxJACg1wcm94eV9hZGRyZXNzGBMgASgLMhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxI5CgthZG1pbl9zdGF0ZRgQIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEjkKC29wZXJfc3RhdHVzGBEgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSFgoGcmVhc29uGBYgASgJUgZyZWFzb24SQgoOY29ubmVjdF9zdGF0dXMYEiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxIsCgZjdXN0b20YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZjdXN0b20SMQoKcG1fY29uZmlncxiDASABKAsyES5kZXZpY2UuUG1Db25maWdzUglwbUNvbmZpZ3MSPwoPaW1hZ2VfZG93bmxvYWRzGIUBIAMoCzIVLmRldmljZS5JbWFnZURvd25sb2FkUg5pbWFnZURvd25sb2FkcxquAgoMUHJveHlBZGRyZXNzEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSHwoLZGV2aWNlX3R5cGUYAiABKAlSCmRldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgDIAEoDVIJY2hhbm5lbElkEigKEGNoYW5uZWxfZ3JvdXBfaWQYBCABKA1SDmNoYW5uZWxHcm91cElkEi8KE2NoYW5uZWxfdGVybWluYXRpb24YBSABKAlSEmNoYW5uZWxUZXJtaW5hdGlvbhIVCgZvbnVfaWQYBiABKA1SBW9udUlkEiQKDm9udV9zZXNzaW9uX2lkGAcgASgNUgxvbnVTZXNzaW9uSWQSKQoQYWRhcHRlcl9lbmRwb2ludBgIIAEoCVIPYWRhcHRlckVuZHBvaW50QgkKB2FkZHJlc3NKBAgLEAwiwgEKGkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSIwoFaW1hZ2UYAiABKAsyDS5kZXZpY2UuSW1hZ2VSBWltYWdlEiwKEWFjdGl2YXRlT25TdWNjZXNzGAMgASgIUhFhY3RpdmF0ZU9uU3VjY2VzcxIoCg9jb21taXRPblN1Y2Nlc3MYBCABKAhSD2NvbW1pdE9uU3VjY2VzcyKBAQoSRGV2aWNlSW1hZ2VSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhIoCg9jb21taXRPblN1Y2Nlc3MYAyABKAhSD2NvbW1pdE9uU3VjY2VzcyJfChNEZXZpY2VJbWFnZVJlc3BvbnNlEkgKE2RldmljZV9pbWFnZV9zdGF0ZXMYASADKAsyGC5kZXZpY2UuRGV2aWNlSW1hZ2VTdGF0ZVIRZGV2aWNlSW1hZ2VTdGF0ZXMipQEKEFNlbGZUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicuZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UuU2VsZlRlc3RSZXN1bHRSBnJlc3VsdCJQCg5TZWxmVGVzdFJlc3VsdBILCgdTVUNDRVNTEAASCwoHRkFJTFVSRRABEhEKDU5PVF9TVVBQT1JURUQQAhIRCg1VTktOT1dOX0VSUk9SEAMiLwoHRGV2aWNlcxIkCgVpdGVtcxgBIAMoCzIOLmRldmljZS5EZXZpY2VSBWl0ZW1zIqgDChRTaW11bGF0ZUFsYXJtUmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSHAoJaW5kaWNhdG9yGAIgASgJUglpbmRpY2F0b3ISFwoHaW50Zl9pZBgDIAEoCVIGaW50ZklkEiQKDnBvcnRfdHlwZV9uYW1lGAQgASgJUgxwb3J0VHlwZU5hbWUSIgoNb251X2RldmljZV9pZBgFIAEoCVILb251RGV2aWNlSWQSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgGIAEoBVITaW52ZXJzZUJpdEVycm9yUmF0ZRIUCgVkcmlmdBgHIAEoBVIFZHJpZnQSFwoHbmV3X2VxZBgIIAEoBVIGbmV3RXFkEioKEW9udV9zZXJpYWxfbnVtYmVyGAkgASgJUg9vbnVTZXJpYWxOdW1iZXISSAoJb3BlcmF0aW9uGAogASgOMiouZGV2aWNlLlNpbXVsYXRlQWxhcm1SZXF1ZXN0Lk9wZXJhdGlvblR5cGVSCW9wZXJhdGlvbiIlCg1PcGVyYXRpb25UeXBlEgkKBVJBSVNFEAASCQoFQ0xFQVIQASKQAQoXT251U2VyaWFsTnVtYmVyT25PTFRQb24SLgoNb2x0X2RldmljZV9pZBgBIAEoCzIKLmNvbW1vbi5JRFILb2x0RGV2aWNlSWQSIAoEcG9ydBgCIAEoCzIMLmRldmljZS5Qb3J0UgRwb3J0EiMKDXNlcmlhbF9udW1iZXIYAyABKAlSDHNlcmlhbE51bWJlciKZAQoMVXBkYXRlRGV2aWNlEg4KAmlkGAEgASgJUgJpZBIjCgxpcHY0X2FkZHJlc3MYAiABKAlIAFILaXB2NEFkZHJlc3MSIwoMaXB2Nl9hZGRyZXNzGAMgASgJSABSC2lwdjZBZGRyZXNzEiQKDWhvc3RfYW5kX3BvcnQYBCABKAlIAFILaG9zdEFuZFBvcnRCCQoHYWRkcmVzc0JaChpvcmcub3BlbmNvcmQudm9sdGhhLmRldmljZUIMVm9sdGhhRGV2aWNlWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSpmZAQoHEgUAAIUEAQoICgEMEgMAABIKCAoBCBIDAgBF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AgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwS8KBxIFHgCPAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAB8KCQoCCB8SAyIAHwoICgEIEgMjAEkKCQoCCAsSAyMASQoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlAC8KCQoCCAgSAyUALwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoADsKCQoCCCUSAygAOwraHQoCBAASBoQBAI8BARrLHSBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYEluc3RhbnQubm93KClgLgoKICAgICBJbnN0YW50IG5vdyA9IEluc3RhbnQubm93KCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPQogICAgICAgICBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobm93LmdldEVwb2NoU2Vjb25kKCkpCiAgICAgICAgICAgICAuc2V0TmFub3Mobm93LmdldE5hbm8oKSkuYnVpbGQoKTsKCiBFeGFtcGxlIDY6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gY3VycmVudCB0aW1lIGluIFB5dGhvbi4KCiAgICAgdGltZXN0YW1wID0gVGltZXN0YW1wKCkKICAgICB0aW1lc3RhbXAuR2V0Q3VycmVudFRpbWUoKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBUaW1lc3RhbXAgdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIGluIHRoZQogW1JGQyAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGZvcm1hdC4gVGhhdCBpcywgdGhlCiBmb3JtYXQgaXMgInt5ZWFyfS17bW9udGh9LXtkYXl9VHtob3VyfTp7bWlufTp7c2VjfVsue2ZyYWNfc2VjfV1aIgogd2hlcmUge3llYXJ9IGlzIGFsd2F5cyBleHByZXNzZWQgdXNpbmcgZm91ciBkaWdpdHMgd2hpbGUge21vbnRofSwge2RheX0sCiB7aG91cn0sIHttaW59LCBhbmQge3NlY30gYXJlIHplcm8tcGFkZGVkIHRvIHR3byBkaWdpdHMgZWFjaC4gVGhlIGZyYWN0aW9uYWwKIHNlY29uZHMsIHdoaWNoIGNhbiBnbyB1cCB0byA5IGRpZ2l0cyAoaS5lLiB1cCB0byAxIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiksCiBhcmUgb3B0aW9uYWwuIFRoZSAiWiIgc3VmZml4IGluZGljYXRlcyB0aGUgdGltZXpvbmUgKCJVVEMiKTsgdGhlIHRpbWV6b25lCiBpcyByZXF1aXJlZC4gQSBwcm90bzMgSlNPTiBzZXJpYWxpemVyIHNob3VsZCBhbHdheXMgdXNlIFVUQyAoYXMgaW5kaWNhdGVkIGJ5CiAiWiIpIHdoZW4gcHJpbnRpbmcgdGhlIFRpbWVzdGFtcCB0eXBlIGFuZCBhIHByb3RvMyBKU09OIHBhcnNlciBzaG91bGQgYmUKIGFibGUgdG8gYWNjZXB0IGJvdGggVVRDIGFuZCBvdGhlciB0aW1lem9uZXMgKGFzIGluZGljYXRlZCBieSBhbiBvZmZzZXQpLgoKIEZvciBleGFtcGxlLCAiMjAxNy0wMS0xNVQwMTozMDoxNS4wMVoiIGVuY29kZXMgMTUuMDEgc2Vjb25kcyBwYXN0CiAwMTozMCBVVEMgb24gSmFudWFyeSAxNSwgMjAxNy4KCiBJbiBKYXZhU2NyaXB0LCBvbmUgY2FuIGNvbnZlcnQgYSBEYXRlIG9iamVjdCB0byB0aGlzIGZvcm1hdCB1c2luZyB0aGUKIHN0YW5kYXJkCiBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nCiBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKSB3aXRoCiB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZSBjYW4gdXNlCiB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vam9kYS10aW1lLnNvdXJjZWZvcmdlLm5ldC9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUoKQogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCwoDBAABEgSEAQgRCp0BCgQEAAIAEgSIAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEiAECBwoNCgUEAAIAARIEiAEIDwoNCgUEAAIAAxIEiAESEwrlAQoEBAACARIEjgECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBI4BAgcKDQoFBAACAQESBI4BCA0KDQoFBAACAQMSBI4BEBFiBnByb3RvMwqKbwoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8SBWV2ZW50Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90byKeAQoSRXZlbnRGaWx0ZXJSdWxlS2V5IocBChNFdmVudEZpbHRlclJ1bGVUeXBlEg4KCmZpbHRlcl9hbGwQABIMCghjYXRlZ29yeRABEhAKDHN1Yl9jYXRlZ29yeRACEhIKDmtwaV9ldmVudF90eXBlEAMSFQoRY29uZmlnX2V2ZW50X3R5cGUQBBIVChFkZXZpY2VfZXZlbnRfdHlwZRAFImgKD0V2ZW50RmlsdGVyUnVsZRI/CgNrZXkYASABKA4yLS5ldmVudC5FdmVudEZpbHRlclJ1bGVLZXkuRXZlbnRGaWx0ZXJSdWxlVHlwZVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZSKfAQoLRXZlbnRGaWx0ZXISDgoCaWQYASABKAlSAmlkEhYKBmVuYWJsZRgCIAEoCFIGZW5hYmxlEhsKCWRldmljZV9pZBgDIAEoCVIIZGV2aWNlSWQSHQoKZXZlbnRfdHlwZRgEIAEoCVIJZXZlbnRUeXBlEiwKBXJ1bGVzGAUgAygLMhYuZXZlbnQuRXZlbnRGaWx0ZXJSdWxlUgVydWxlcyI8CgxFdmVudEZpbHRlcnMSLAoHZmlsdGVycxgBIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgdmaWx0ZXJzIjsKD0NvbmZpZ0V2ZW50VHlwZSIoCgVUeXBlcxIHCgNhZGQQABIKCgZyZW1vdmUQARIKCgZ1cGRhdGUQAiJnCgtDb25maWdFdmVudBIwCgR0eXBlGAEgASgOMhwuZXZlbnQuQ29uZmlnRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGhhc2gYAiABKAlSBGhhc2gSEgoEZGF0YRgDIAEoCVIEZGF0YSIqCgxLcGlFdmVudFR5cGUiGgoFVHlwZXMSCQoFc2xpY2UQABIGCgJ0cxABIqoCCg5NZXRyaWNNZXRhRGF0YRIUCgV0aXRsZRgBIAEoCVIFdGl0bGUSDgoCdHMYAiABKAFSAnRzEioKEWxvZ2ljYWxfZGV2aWNlX2lkGAMgASgJUg9sb2dpY2FsRGV2aWNlSWQSGwoJc2VyaWFsX25vGAQgASgJUghzZXJpYWxObxIbCglkZXZpY2VfaWQYBSABKAlSCGRldmljZUlkEjwKB2NvbnRleHQYBiADKAsyIi5ldmVudC5NZXRyaWNNZXRhRGF0YS5Db250ZXh0RW50cnlSB2NvbnRleHQSEgoEdXVpZBgHIAEoCVIEdXVpZBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKOAQoQTWV0cmljVmFsdWVQYWlycxI+CgdtZXRyaWNzGAEgAygLMiQuZXZlbnQuTWV0cmljVmFsdWVQYWlycy5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEiwwEKEU1ldHJpY0luZm9ybWF0aW9uEjEKCG1ldGFkYXRhGAEgASgLMhUuZXZlbnQuTWV0cmljTWV0YURhdGFSCG1ldGFkYXRhEj8KB21ldHJpY3MYAiADKAsyJS5ldmVudC5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEixwEKE01ldHJpY0luZm9ybWF0aW9uNjQSMQoIbWV0YWRhdGEYASABKAsyFS5ldmVudC5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESQQoHbWV0cmljcxgCIAMoCzInLmV2ZW50Lk1ldHJpY0luZm9ybWF0aW9uNjQuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBItoBCghLcGlFdmVudBItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI5CghwcmVmaXhlcxgDIAMoCzIdLmV2ZW50LktwaUV2ZW50LlByZWZpeGVzRW50cnlSCHByZWZpeGVzGlQKDVByZWZpeGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLQoFdmFsdWUYAiABKAsyFy5ldmVudC5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEigwEKCUtwaUV2ZW50MhItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI3CgpzbGljZV9kYXRhGAMgAygLMhguZXZlbnQuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSKFAQoJS3BpRXZlbnQzEi0KBHR5cGUYASABKA4yGS5ldmVudC5LcGlFdmVudFR5cGUuVHlwZXNSBHR5cGUSDgoCdHMYAiABKAFSAnRzEjkKCnNsaWNlX2RhdGEYAyADKAsyGi5ldmVudC5NZXRyaWNJbmZvcm1hdGlvbjY0UglzbGljZURhdGEi8wEKC0RldmljZUV2ZW50Eh8KC3Jlc291cmNlX2lkGAEgASgJUgpyZXNvdXJjZUlkEioKEWRldmljZV9ldmVudF9uYW1lGAIgASgJUg9kZXZpY2VFdmVudE5hbWUSIAoLZGVzY3JpcHRpb24YAyABKAlSC2Rlc2NyaXB0aW9uEjkKB2NvbnRleHQYBCADKAsyHy5ldmVudC5EZXZpY2VFdmVudC5Db250ZXh0RW50cnlSB2NvbnRleHQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEi2gIKCFJQQ0V2ZW50EhAKA3JwYxgBIAEoCVIDcnBjEiEKDG9wZXJhdGlvbl9pZBgCIAEoCVILb3BlcmF0aW9uSWQSGAoHc2VydmljZRgDIAEoCVIHc2VydmljZRIZCghzdGFja19pZBgEIAEoCVIHc3RhY2tJZBIfCgtyZXNvdXJjZV9pZBgFIAEoCVIKcmVzb3VyY2VJZBIgCgtkZXNjcmlwdGlvbhgGIAEoCVILZGVzY3JpcHRpb24SNgoHY29udGV4dBgHIAMoCzIcLmV2ZW50LlJQQ0V2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBItCgZzdGF0dXMYCCABKAsyFS5jb21tb24uT3BlcmF0aW9uUmVzcFIGc3RhdHVzGjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBInYKDUV2ZW50Q2F0ZWdvcnkiZQoFVHlwZXMSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIlIKEEV2ZW50U3ViQ2F0ZWdvcnkiPgoFVHlwZXMSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQSCAoETk9ORRAFInYKCUV2ZW50VHlwZSJpCgVUeXBlcxIQCgxDT05GSUdfRVZFTlQQABINCglLUElfRVZFTlQQARIOCgpLUElfRVZFTlQyEAISEAoMREVWSUNFX0VWRU5UEAMSDQoJUlBDX0VWRU5UEAQSDgoKS1BJX0VWRU5UMxAFItwCCgtFdmVudEhlYWRlchIOCgJpZBgBIAEoCVICaWQSNgoIY2F0ZWdvcnkYAiABKA4yGi5ldmVudC5FdmVudENhdGVnb3J5LlR5cGVzUghjYXRlZ29yeRJACgxzdWJfY2F0ZWdvcnkYAyABKA4yHS5ldmVudC5FdmVudFN1YkNhdGVnb3J5LlR5cGVzUgtzdWJDYXRlZ29yeRIqCgR0eXBlGAQgASgOMhYuZXZlbnQuRXZlbnRUeXBlLlR5cGVzUgR0eXBlEiEKDHR5cGVfdmVyc2lvbhgFIAEoCVILdHlwZVZlcnNpb24SNwoJcmFpc2VkX3RzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIIcmFpc2VkVHMSOwoLcmVwb3J0ZWRfdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpyZXBvcnRlZFRzIvkCCgVFdmVudBIqCgZoZWFkZXIYASABKAsyEi5ldmVudC5FdmVudEhlYWRlclIGaGVhZGVyEjcKDGNvbmZpZ19ldmVudBgCIAEoCzISLmV2ZW50LkNvbmZpZ0V2ZW50SABSC2NvbmZpZ0V2ZW50Ei4KCWtwaV9ldmVudBgDIAEoCzIPLmV2ZW50LktwaUV2ZW50SABSCGtwaUV2ZW50EjEKCmtwaV9ldmVudDIYBCABKAsyEC5ldmVudC5LcGlFdmVudDJIAFIJa3BpRXZlbnQyEjcKDGRldmljZV9ldmVudBgFIAEoCzISLmV2ZW50LkRldmljZUV2ZW50SABSC2RldmljZUV2ZW50Ei4KCXJwY19ldmVudBgGIAEoCzIPLmV2ZW50LlJQQ0V2ZW50SABSCHJwY0V2ZW50EjEKCmtwaV9ldmVudDMYByABKAsyEC5ldmVudC5LcGlFdmVudDNIAFIJa3BpRXZlbnQzQgwKCmV2ZW50X3R5cGVCTAoab3JnLm9wZW5jb3JkLnZvbHRoYS5ldmVudHNaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGFKy1AKBxIFAAC9AgEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMAMwoJCgIIARIDAwAzCggKAQISAwUADgoJCgIDABIDBwAmCgkKAgMBEgMIACkKCQoCAwISAwkAJAoKCgIEABIEDAAWAQoKCgMEAAESAwwIGgoMCgQEAAQAEgQOBBUFCgwKBQQABAABEgMOCRwKDQoGBAAEAAIAEgMPCBcKDgoHBAAEAAIAARIDDwgSCg4KBwQABAACAAISAw8VFgoNCgYEAAQAAgESAxAIFQoOCgcEAAQAAgEBEgMQCBAKDgoHBAAEAAIBAhIDEBMUCg0KBgQABAACAhIDEQgZCg4KBwQABAACAgESAxEIFAoOCgcEAAQAAgICEgMRFxgKDQoGBAAEAAIDEgMSCBsKDgoHBAAEAAIDARIDEggWCg4KBwQABAACAwISAxIZGgoNCgYEAAQAAgQSAxMIHgoOCgcEAAQAAgQBEgMTCBkKDgoHBAAEAAIEAhIDExwdCg0KBgQABAACBRIDFAgeCg4KBwQABAACBQESAxQIGQoOCgcEAAQAAgUCEgMUHB0KCgoCBAESBBgAGwEKCgoDBAEBEgMYCBcKCwoEBAECABIDGQQzCgwKBQQBAgAGEgMZBCoKDAoFBAECAAESAxkrLgoMCgUEAQIAAxIDGTEyCgsKBAQBAgESAxoEFQoMCgUEAQIBBRIDGgQKCgwKBQQBAgEBEgMaCxAKDAoFBAECAQMSAxoTFAoKCgIEAhIEHAAiAQoKCgMEAgESAxwIEwoLCgQEAgIAEgMdBBMKDAoFBAICAAUSAx0ECgoMCgUEAgIAARIDHQsNCgwKBQQCAgADEgMdEBEKCwoEBAICARIDHgQUCgwKBQQCAgEFEgMeBAgKDAoFBAICAQESAx4JDwoMCgUEAgIBAxIDHhITCgsKBAQCAgISAx8EGQoMCgUEAgICBRIDHwQKCgwKBQQCAgIBEgMfCxQKDAoFBAICAgMSAx8XGAoLCgQEAgIDEgMgBBoKDAoFBAICAwUSAyAECgoMCgUEAgIDARIDIAsVCgwKBQQCAgMDEgMgGBkKCwoEBAICBBIDIQQnCgwKBQQCAgQEEgMhBAwKDAoFBAICBAYSAyENHAoMCgUEAgIEARIDIR0iCgwKBQQCAgQDEgMhJSYKCgoCBAMSBCQAJgEKCgoDBAMBEgMkCBQKCwoEBAMCABIDJQQlCgwKBQQDAgAEEgMlBAwKDAoFBAMCAAYSAyUNGAoMCgUEAwIAARIDJRkgCgwKBQQDAgADEgMlIyQKCgoCBAQSBCgALgEKCgoDBAQBEgMoCBcKDAoEBAQEABIEKQQtBQoMCgUEBAQAARIDKQkOCiwKBgQEBAACABIDKggQIh0gQSBuZXcgY29uZmlnIGhhcyBiZWVuIGFkZGVkCgoOCgcEBAQAAgABEgMqCAsKDgoHBAQEAAIAAhIDKg4PCioKBgQEBAACARIDKwgTIhsgQSBjb25maWcgaGFzIGJlZW4gcmVtb3ZlZAoKDgoHBAQEAAIBARIDKwgOCg4KBwQEBAACAQISAysREgoqCgYEBAQAAgISAywIEyIbIEEgY29uZmlnIGhhcyBiZWVuIHVwZGF0ZWQKCg4KBwQEBAACAgESAywIDgoOCgcEBAQAAgICEgMsERIKCgoCBAUSBDAANQEKCgoDBAUBEgMwCBMKCwoEBAUCABIDMQQjCgwKBQQFAgAGEgMxBBkKDAoFBAUCAAESAzEaHgoMCgUEBQIAAxIDMSEiCkEKBAQFAgESAzMEFCI0IGhhc2ggZm9yIHRoaXMgY2hhbmdlLCBjYW4gYmUgdXNlZCBmb3IgcXVpY2sgbG9va3VwCgoMCgUEBQIBBRIDMwQKCgwKBQQFAgEBEgMzCw8KDAoFBAUCAQMSAzMSEwoyCgQEBQICEgM0BBQiJSB0aGUgYWN0dWFsIG5ldyBkYXRhLCBpbiBqc29uIGZvcm1hdAoKDAoFBAUCAgUSAzQECgoMCgUEBQICARIDNAsPCgwKBQQFAgIDEgM0EhMKCgoCBAYSBDcAPAEKCgoDBAYBEgM3CBQKDAoEBAYEABIEOAQ7BQoMCgUEBgQAARIDOAkOCkUKBgQGBAACABIDOQgSIjYgc2xpY2U6IGEgc2V0IG9mIHBhdGgvbWV0cmljIGRhdGEgZm9yIHNhbWUgdGltZS1zdGFtcAoKDgoHBAYEAAIAARIDOQgNCg4KBwQGBAACAAISAzkQEQo7CgYEBgQAAgESAzoIDyIsIHRpbWUtc2VyaWVzOiBhcnJheSBvZiBkYXRhIGZvciBzYW1lIG1ldHJpYwoKDgoHBAYEAAIBARIDOggKCg4KBwQGBAACAQISAzoNDgpACgIEBxIEQQBWARo0CiBTdHJ1Y3QgdG8gY29udmV5IGEgZGljdGlvbmFyeSBvZiBtZXRyaWMgbWV0YWRhdGEuCgoKCgMEBwESA0EIFgo1CgQEBwIAEgNCBBUiKCBNZXRyaWMgZ3JvdXAgb3IgaW5kaXZpZHVhbCBtZXRyaWMgbmFtZQoKDAoFBAcCAAUSA0IECgoMCgUEBwIAARIDQgsQCgwKBQQHAgADEgNCExQKPgoEBAcCARIDQwQSIjEgVVRDIHRpbWUtc3RhbXAgb2YgZGF0YSAoc2Vjb25kcyBzaW5jZSBlcG9jaCkgb2YKCgwKBQQHAgEFEgNDBAoKDAoFBAcCAQESA0MLDQoMCgUEBwIBAxIDQxARCvEBCgQEBwICEgNJBCEiJSBUaGUgbG9naWNhbCBkZXZpY2UgSUQgb2YgdGhlIFZPTFRIQQoyvAEgd2hlbiB0aGUgbWV0cmljIG9yIG1ldHJpYyBncm91cCB3YXMgY29sbGVjdGVkLgogSWYgdGhpcyBpcyBhIDE1LW1pbiBoaXN0b3JpY2FsIGdyb3VwLCBpdCBpcyB0aGUKIHRpbWUgb2YgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZywgbm90IHRoZQogc3RhcnQgb3IgZW5kIG9mIHRoZSAxNS1taW4gZ3JvdXAgaW50ZXJ2YWwuCgoMCgUEBwICBRIDSQQKCgwKBQQHAgIBEgNJCxwKDAoFBAcCAgMSA0kfIAqQAQoEBAcCAxIDTQQZGlkgKGVxdWl2YWxlbnQgdG8gdGhlIERQSUQgdGhhdCBPTk9TIGhhcwogZm9yIHRoZSBWT0xUSEEgZGV2aWNlIHdpdGhvdXQgdGhlCiAgJ29mOicgcHJlZml4CiIoIFRoZSBPTFQsIE9OVSwgLi4uIGRldmljZSBzZXJpYWwgbnVtYmVyCgoMCgUEBwIDBRIDTQQKCgwKBQQHAgMBEgNNCxQKDAoFBAcCAwMSA00XGAozCgQEBwIEEgNOBBkiJiBUaGUgT0xULCBPTlUsIC4uLiBwaHlzaWNhbCBkZXZpY2UgSUQKCgwKBQQHAgQFEgNOBAoKDAoFBAcCBAESA04LFAoMCgUEBwIEAxIDThcYCjcKBAQHAgUSA1AEJCIqIE5hbWUgdmFsdWUgcGFpcnMgdGhhdCBwcm92aWRlIGFkZGl0aW9uYWwKCgwKBQQHAgUGEgNQBBcKDAoFBAcCBQESA1AYHwoMCgUEBwIFAxIDUCIjCm0KBAQHAgYSA1QEFCIpIFRyYW5zYWN0aW9uIGlkZW50aWZpZXIgdXNlZCB0byBtYXRjaCBPbgoyNSBjb250ZXh0IGluZm9ybWF0aW9uIG9uIHRoZSBtZXRyaWNzIGJlaW5nCiByZXBvcnRlZC4KCgwKBQQHAgYFEgNUBAoKDAoFBAcCBgESA1QLDwoMCgUEBwIGAxIDVBITCqUBCgIECBIEXABhARqYAQogU3RydWN0IHRvIGNvbnZleSBhIGRpY3Rpb25hcnkgb2YgbWV0cmljLT52YWx1ZSBwYWlycy4gVHlwaWNhbGx5IHVzZWQgaW4KIHB1cmUgc2hhcmVkLXRpbWVzdGFtcCBvciBzaGFyZWQtdGltZXN0YW1wICsgc2hhcmVkIG9iamVjdCBwcmVmaXggc2l0dWF0aW9ucy4KCgoKAwQIARIDXAgYCiQKBAQIAgASA18EIxoXIE1ldHJpYyAvIHZhbHVlIHBhaXJzLgoKDAoFBAgCAAYSA18EFgoMCgUECAIAARIDXxceCgwKBQQIAgADEgNfISIKeQoCBAkSBGcAagEabQogU3RydWN0IHRvIGdyb3VwIG1ldGFkYXRhIGZvciBhIG1ldHJpYyAob3IgZ3JvdXAgb2YgbWV0cmljcykgd2l0aCB0aGUga2V5LXZhbHVlCiBwYWlycyBvZiBjb2xsZWN0ZWQgbWV0cmljcwoKCgoDBAkBEgNnCBkKCwoEBAkCABIDaAQgCgwKBQQJAgAGEgNoBBIKDAoFBAkCAAESA2gTGwoMCgUECQIAAxIDaB4fCgsKBAQJAgESA2kEIwoMCgUECQIBBhIDaQQWCgwKBQQJAgEBEgNpFx4KDAoFBAkCAQMSA2khIgq0AgoCBAoSBHIAdQEapwIKIFN0cnVjdCB0byBncm91cCBtZXRhZGF0YSBmb3IgYSBtZXRyaWMgKG9yIGdyb3VwIG9mIG1ldHJpY3MpIHdpdGggdGhlIGtleS12YWx1ZQogcGFpcnMgb2YgY29sbGVjdGVkIG1ldHJpY3MgdXNpbmcgNjQtYml0IGRvdWJsZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQuCiBUaGlzIHN1cHBvcnRzIGJvdGggZmxvYXRpbmctcG9pbnQgbWV0cmljcyBhbmQgbGFyZ2UgaW50ZWdlciBjb3VudGVycyB1cCB0byAyXjUzCiAoZS5nLiwgRkVDIGNvdW50ZXJzLCBHRU0gY291bnRlcnMsIG9wdGljYWwgcG93ZXIgbGV2ZWxzKS4KCgoKAwQKARIDcggbCgsKBAQKAgASA3MEIAoMCgUECgIABhIDcwQSCgwKBQQKAgABEgNzExsKDAoFBAoCAAMSA3MeHwoLCgQECgIBEgN0BCQKDAoFBAoCAQYSA3QEFwoMCgUECgIBARIDdBgfCgwKBQQKAgEDEgN0IiMK4QEKAgQLEgV8AIYBARrTAQogTGVnYWN5IEtQSSBFdmVudCBzdHJ1Y3R1cmVkLiAgSW4gbWlkLUF1Z3VzdCwgdGhlIEtQSSBldmVudCBmb3JtYXQgd2FzIHVwZGF0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGEgbW9yZSBlYXNpbHkgcGFyc2FibGUgZm9ybWF0LiBTZWUgVk9MLTExNDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKCgoDBAsBEgN8CBAKCwoEBAsCABIDfgQgCgwKBQQLAgAGEgN+BBYKDAoFBAsCAAESA34XGwoMCgUECwIAAxIDfh4fCmgKBAQLAgESBIIBBBEiOyBVVEMgdGltZS1zdGFtcCBvZiBkYXRhIGluIHNsaWNlIG1vZGUgKHNlY29uZHMgc2luY2UgZXBvYykKMh0gRmllbGRzIHVzZWQgd2hlbiBmb3Igc2xpY2U6CgoNCgUECwIBBRIEggEECQoNCgUECwIBARIEggEKDAoNCgUECwIBAxIEggEPEAoMCgQECwICEgSEAQQvCg0KBQQLAgIGEgSEAQQhCg0KBQQLAgIBEgSEASIqCg0KBQQLAgIDEgSEAS0uCgwKAgQMEgaIAQCRAQEKCwoDBAwBEgSIAQgRCiEKBAQMAgASBIoBBCAaEyBUeXBlIG9mIEtQSSBFdmVudAoKDQoFBAwCAAYSBIoBBBYKDQoFBAwCAAESBIoBFxsKDQoFBAwCAAMSBIoBHh8KaQoEBAwCARIEjQEEEhodIEZpZWxkcyB1c2VkIHdoZW4gZm9yIHNsaWNlOgoiPCBVVEMgdGltZS1zdGFtcCBvZiBkYXRhIGluIHNsaWNlIG1vZGUgKHNlY29uZHMgc2luY2UgZXBvY2gpCgoNCgUEDAIBBRIEjQEECgoNCgUEDAIBARIEjQELDQoNCgUEDAIBAxIEjQEQEQpPCgQEDAICEgSQAQQuMkEgb2YgdGhlIHRpbWUgdGhpcyBlbnRpcmUgS3BpRXZlbnQgd2FzIHB1Ymxpc2hlZCB0byB0aGUga2Fma2EgYnVzCgoNCgUEDAICBBIEkAEEDAoNCgUEDAICBhIEkAENHgoNCgUEDAICARIEkAEfKQoNCgUEDAICAxIEkAEsLQqrAQoCBA0SBpcBAKABARqcAQogS3BpRXZlbnQzIHdpdGggc3VwcG9ydCBmb3IgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgY291bnRlcnMuCiBVc2UgdGhpcyBmb3IgbWV0cmljcyB0aGF0IHJlcXVpcmUgZnVsbCA2NC1iaXQgcHJlY2lzaW9uIChlLmcuLCBGRUMgY291bnRlcnMsIEdFTSBjb3VudGVycykuCgoLCgMEDQESBJcBCBEKIQoEBA0CABIEmQEEIBoTIFR5cGUgb2YgS1BJIEV2ZW50CgoNCgUEDQIABhIEmQEEFgoNCgUEDQIAARIEmQEXGwoNCgUEDQIAAxIEmQEeHwppCgQEDQIBEgScAQQSGh0gRmllbGRzIHVzZWQgd2hlbiBmb3Igc2xpY2U6CiI8IFVUQyB0aW1lLXN0YW1wIG9mIGRhdGEgaW4gc2xpY2UgbW9kZSAoc2Vjb25kcyBzaW5jZSBlcG9jaCkKCg0KBQQNAgEFEgScAQQKCg0KBQQNAgEBEgScAQsNCg0KBQQNAgEDEgScARARCk8KBAQNAgISBJ8BBDAyQSBvZiB0aGUgdGltZSB0aGlzIGVudGlyZSBLcGlFdmVudCB3YXMgcHVibGlzaGVkIHRvIHRoZSBrYWZrYSBidXMKCg0KBQQNAgIEEgSfAQQMCg0KBQQNAgIGEgSfAQ0gCg0KBQQNAgIBEgSfASErCg0KBQQNAgIDEgSfAS4vCjgKAgQOEgalAQCyAQEaKgogRGVzY3JpYmVzIHRoZSBldmVudHMgc3BlY2lmaWMgdG8gZGV2aWNlCgoLCgMEDgESBKUBCBMKVgoEBA4CABIEpwEEGxpIIElkZW50aWZpZXIgb2YgdGhlIG9yaWdpbmF0aW5nIHJlc291cmNlIG9mIHRoZSBldmVudCwgZm9yIGV4OiBkZXZpY2VfaWQKCg0KBQQOAgAFEgSnAQQKCg0KBQQOAgABEgSnAQsWCg0KBQQOAgADEgSnARkaClAKBAQOAgESBKoBBCEaQiBkZXZpY2VfZXZlbnRfbmFtZSBpbmRpY2F0ZXMgY2xlYXJseSB0aGUgbmFtZSBvZiB0aGUgZGV2aWNlIGV2ZW50CgoNCgUEDgIBBRIEqgEECgoNCgUEDgIBARIEqgELHAoNCgUEDgIBAxIEqgEfIAo3CgQEDgICEgStAQQbGikgVGV4dHVhbCBleHBsYW5hdGlvbiBvZiB0aGUgZGV2aWNlIGV2ZW50CgoNCgUEDgICBRIErQEECgoNCgUEDgICARIErQELFgoNCgUEDgICAxIErQEZGgpaCgQEDgIDEgSwAQQkGkwgS2V5L1ZhbHVlIHN0b3JhZ2UgZm9yIGV4dHJhIGluZm9ybWF0aW9uIHRoYXQgbWF5IGdpdmUgY29udGV4dCB0byB0aGUgZXZlbnQKCg0KBQQOAgMGEgSwAQQXCg0KBQQOAgMBEgSwARgfCg0KBQQOAgMDEgSwASIjCkAKAgQPEga2AQDOAQEaMgogRGVzY3JpYmVzIHRoZSBldmVudHMgc3BlY2lmaWMgdG8gYW4gUlBDIHJlcXVlc3QKCgsKAwQPARIEtgEIEAoYCgQEDwIAEgS4AQQTGgogUlBDIG5hbWUKCg0KBQQPAgAFEgS4AQQKCg0KBQQPAgABEgS4AQsOCg0KBQQPAgADEgS4ARESCk4KBAQPAgESBLsBBBwaQCBUaGUgb3BlcmF0aW9uIGlkIG9mIHRoYXQgcmVxdWVzdC4gIENhbiBiZSBhIGxvZyBjb3JyZWxhdGlvbiBJRAoKDQoFBA8CAQUSBLsBBAoKDQoFBA8CAQESBLsBCxcKDQoFBA8CAQMSBLsBGhsKQQoEBA8CAhIEvgEEFxozIElkZW50aWZpZXMgdGhlIHNlcnZpY2UgbmFtZSBvcmlnaW5hdGluZyB0aGUgZXZlbnQKCg0KBQQPAgIFEgS+AQQKCg0KBQQPAgIBEgS+AQsSCg0KBQQPAgIDEgS+ARUWCjoKBAQPAgMSBMEBBBgaLCBJZGVudGlmaWVzIHRoZSBzdGFjayBvcmlnaW5hdGluZyB0aGUgZXZlbnQKCg0KBQQPAgMFEgTBAQQKCg0KBQQPAgMBEgTBAQsTCg0KBQQPAgMDEgTBARYXClYKBAQPAgQSBMQBBBsaSCBJZGVudGlmaWVzIHRoZSByZXNvdXJjZSB1cG9uIHdoaWNoIHRoZSBhY3Rpb24gaXMgdGFrZW4sIGUuZy4gZGV2aWNlX2lkCgoNCgUEDwIEBRIExAEECgoNCgUEDwIEARIExAELFgoNCgUEDwIEAxIExAEZGgowCgQEDwIFEgTHAQQbGiIgVGV4dHVhbCBleHBsYW5hdGlvbiBvZiB0aGUgZXZlbnQKCg0KBQQPAgUFEgTHAQQKCg0KBQQPAgUBEgTHAQsWCg0KBQQPAgUDEgTHARkaCloKBAQPAgYSBMoBBCQaTCBLZXkvVmFsdWUgc3RvcmFnZSBmb3IgZXh0cmEgaW5mb3JtYXRpb24gdGhhdCBtYXkgZ2l2ZSBjb250ZXh0IHRvIHRoZSBldmVudAoKDQoFBA8CBgYSBMoBBBcKDQoFBA8CBgESBMoBGB8KDQoFBA8CBgMSBMoBIiMKJwoEBA8CBxIEzQEEJBoZIFN0YXR1cyBvZiB0aGUgUlBDIEV2ZW50CgoNCgUEDwIHBhIEzQEEGAoNCgUEDwIHARIEzQEZHwoNCgUEDwIHAxIEzQEiIwpHCgIEEBIG0wEA3QEBGjkKIElkZW50aWZ5IHRoZSBhcmVhIG9mIHRoZSBzeXN0ZW0gaW1wYWN0ZWQgYnkgdGhlIGV2ZW50LgoKCwoDBBABEgTTAQgVCg4KBAQQBAASBtQBBNwBBQoNCgUEEAQAARIE1AEJDgoOCgYEEAQAAgASBNUBCBoKDwoHBBAEAAIAARIE1QEIFQoPCgcEEAQAAgACEgTVARgZCg4KBgQQBAACARIE1gEIGAoPCgcEEAQAAgEBEgTWAQgTCg8KBwQQBAACAQISBNYBFhcKDgoGBBAEAAICEgTXAQgWCg8KBwQQBAACAgESBNcBCBEKDwoHBBAEAAICAhIE1wEUFQoOCgYEEAQAAgMSBNgBCBQKDwoHBBAEAAIDARIE2AEIDwoPCgcEEAQAAgMCEgTYARITCg4KBgQQBAACBBIE2QEIFwoPCgcEEAQAAgQBEgTZAQgSCg8KBwQQBAACBAISBNkBFRYKKgoGBBAEAAIFEgTaAQgVIhogQWRkIG5ldyBldmVudCBhcmVhcyBoZXJlCgoPCgcEEAQAAgUBEgTaAQgQCg8KBwQQBAACBQISBNoBExQKRwoCBBESBuIBAOwBARo5CiBJZGVudGlmeSB0aGUgZnVuY3Rpb25hbCBjYXRlZ29yeSBvcmlnaW5hdGluZyB0aGUgZXZlbnQKCgsKAwQRARIE4gEIGAoOCgQEEQQAEgbjAQTrAQUKDQoFBBEEAAESBOMBCQ4KDgoGBBEEAAIAEgTkAQgQCg8KBwQRBAACAAESBOQBCAsKDwoHBBEEAAIAAhIE5AEODwoOCgYEEQQAAgESBOUBCBAKDwoHBBEEAAIBARIE5QEICwoPCgcEEQQAAgECEgTlAQ4PCg4KBgQRBAACAhIE5gEIEAoPCgcEEQQAAgIBEgTmAQgLCg8KBwQRBAACAgISBOYBDg8KDgoGBBEEAAIDEgTnAQgQCg8KBwQRBAACAwESBOcBCAsKDwoHBBEEAAIDAhIE5wEODwoOCgYEEQQAAgQSBOgBCBAKDwoHBBEEAAIEARIE6AEICwoPCgcEEQQAAgQCEgToAQ4PCisKBgQRBAACBRIE6QEIESIbQWRkaW5nIE5vbmUgZm9yIFJQQyBFdmVudHMKCg8KBwQRBAACBQESBOkBCAwKDwoHBBEEAAIFAhIE6QEPEAorCgIEEhIG8QEA+gEBGh0KIElkZW50aWZ5IHRoZSB0eXBlIG9mIGV2ZW50CgoLCgMEEgESBPEBCBEKDgoEBBIEABIG8gEE+QEFCg0KBQQSBAABEgTyAQkOCg4KBgQSBAACABIE8wEIGQoPCgcEEgQAAgABEgTzAQgUCg8KBwQSBAACAAISBPMBFxgKDgoGBBIEAAIBEgT0AQgWCg8KBwQSBAACAQESBPQBCBEKDwoHBBIEAAIBAhIE9AEUFQoOCgYEEgQAAgISBPUBCBcKDwoHBBIEAAICARIE9QEIEgoPCgcEEgQAAgICEgT1ARUWCg4KBgQSBAACAxIE9gEIGQoPCgcEEgQAAgMBEgT2AQgUCg8KBwQSBAACAwISBPYBFxgKDgoGBBIEAAIEEgT3AQgWCg8KBwQSBAACBAESBPcBCBEKDwoHBBIEAAIEAhIE9wEUFQoOCgYEEgQAAgUSBPgBCBcKDwoHBBIEAAIFARIE+AEIEgoPCgcEEgQAAgUCEgT4ARUWCkcKAgQTEgb/AQCfAgEaOQogSWRlbnRpZnkgdGhlIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgb3JpZ2luYXRpbmcgdGhlIGV2ZW50CgoLCgMEEwESBP8BCBMKRAoEBBMCABIEgQIEEho2IFVuaXF1ZSBJRCBmb3IgdGhpcyBldmVudC4gIGUuZy4gdm9sdGhhLnNvbWVfb2x0LjEyMzQKCg0KBQQTAgAFEgSBAgQKCg0KBQQTAgABEgSBAgsNCg0KBQQTAgADEgSBAhARCkEKBAQTAgESBIQCBCUaMyBSZWZlcnMgdG8gdGhlIGZ1bmN0aW9uYWwgYXJlYSBhZmZlY3QgYnkgdGhlIGV2ZW50CgoNCgUEEwIBBhIEhAIEFwoNCgUEEwIBARIEhAIYIAoNCgUEEwIBAxIEhAIjJAo6CgQEEwICEgSHAgQsGiwgUmVmZXJzIHRvIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgb2YgdGhlIGV2ZW50CgoNCgUEEwICBhIEhwIEGgoNCgUEEwICARIEhwIbJwoNCgUEEwICAxIEhwIqKwovCgQEEwIDEgSKAgQdGiEgUmVmZXJzIHRvIHRoZSB0eXBlIG9mIHRoZSBldmVudAoKDQoFBBMCAwYSBIoCBBMKDQoFBBMCAwESBIoCFBgKDQoFBBMCAwMSBIoCGxwK7QEKBAQTAgQSBJACBBwa3gEgVGhlIHZlcnNpb24gaWRlbnRpZmllciBmb3IgdGhpcyBldmVudCB0eXBlLCB0aHVzIGFsbG93aW5nIGVhY2gKIGV2ZW50IHR5cGUgdG8gZXZvbHZlIGluZGVwZW5kZW50bHkuIFRoZSB2ZXJzaW9uIHNob3VsZCBiZSBpbiB0aGUKIGZvcm1hdCDigJxNQUpPUi5NSU5PUuKAnSBmb3JtYXQgYW5kIG1pbm9yIGNoYW5nZXMgbXVzdCBvbmx5IGJlIGFkZGl0aXZlCiBhbmQgbm9uLWJyZWFraW5nLgoKDQoFBBMCBAUSBJACBAoKDQoFBBMCBAESBJACCxcKDQoFBBMCBAMSBJACGhsKqAIKBAQTAgUSBJcCBCwamQIgVGltZXN0YW1wIGF0IHdoaWNoIHRoZSBldmVudCB3YXMgZmlyc3QgcmFpc2VkLgogVGhpcyByZXByZXNlbnRzIHRoZSBVVEMgdGltZSBzdGFtcCBzaW5jZSBlcG9jaCAoaW4gc2Vjb25kcykgd2hlbiB0aGUKIHRoZSBldmVudCB3YXMgZmlyc3QgcmFpc2VkIGZyb20gdGhlIHNvdXJjZSBlbnRpdHkuCiBJZiB0aGUgc291cmNlIGVudGl0eSBkb2Vzbid0IHNlbmQgdGhlIHJhaXNlZF90cywgdGhpcyBzaGFsbCBiZSBzZXQKIHRvIHRpbWVzdGFtcCB3aGVuIHRoZSBldmVudCB3YXMgcmVjZWl2ZWQuCgoNCgUEEwIFBhIElwIEHQoNCgUEEwIFARIElwIeJwoNCgUEEwIFAxIElwIqKwq9AgoEBBMCBhIEngIELhquAiBUaW1lc3RhbXAgYXQgd2hpY2ggdGhlIGV2ZW50IHdhcyByZXBvcnRlZC4KIFRoaXMgcmVwcmVzZW50cyB0aGUgVVRDIHRpbWUgc3RhbXAgc2luY2UgZXBvY2ggKGluIHNlY29uZHMpIHdoZW4gdGhlCiB0aGUgZXZlbnQgd2FzIHJlcG9ydGVkICh0aGlzIHRpbWUgc3RhbXAgaXMgPj0gcmFpc2VkX3RzKS4KIElmIHRoZSBzb3VyY2UgZW50aXR5IHRoYXQgcmVwb3J0ZWQgdGhpcyBldmVudCBkb2Vzbid0IHNlbmQgdGhlIAogcmVwb3J0ZWRfdHMsIHRoaXMgc2hhbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFzIHJhaXNlZF90cy4KCg0KBQQTAgYGEgSeAgQdCg0KBQQTAgYBEgSeAh4pCg0KBQQTAgYDEgSeAiwtCiAKAgQUEgakAgC9AgEaEgogRXZlbnQgU3RydWN0dXJlCgoLCgMEFAESBKQCCA0KHAoEBBQCABIEpgIEGxoOIGV2ZW50IGhlYWRlcgoKDQoFBBQCAAYSBKYCBA8KDQoFBBQCAAESBKYCEBYKDQoFBBQCAAMSBKYCGRoKOgoEBBQIABIGqQIEvAIFGiogb25lb2YgZXZlbnQgdHlwZXMgcmVmZXJyZWQgYnkgRXZlbnRUeXBlLgoKDQoFBBQIAAESBKkCChQKJQoEBBQCARIEqwIIJRoXIFJlZmVycyB0byBDb25maWdFdmVudAoKDQoFBBQCAQYSBKsCCBMKDQoFBBQCAQESBKsCFCAKDQoFBBQCAQMSBKsCIyQKIgoEBBQCAhIErgIIHxoUIFJlZmVycyB0byBLcGlFdmVudAoKDQoFBBQCAgYSBK4CCBAKDQoFBBQCAgESBK4CERoKDQoFBBQCAgMSBK4CHR4KIwoEBBQCAxIEsQIIIRoVIFJlZmVycyB0byBLcGlFdmVudDIKCg0KBQQUAgMGEgSxAggRCg0KBQQUAgMBEgSxAhIcCg0KBQQUAgMDEgSxAh8gCiUKBAQUAgQSBLQCCCUaFyBSZWZlcnMgdG8gRGV2aWNlRXZlbnQKCg0KBQQUAgQGEgS0AggTCg0KBQQUAgQBEgS0AhQgCg0KBQQUAgQDEgS0AiMkCiYKBAQUAgUSBLcCCB8aGCBSZWZlcnMgdG8gYW4gUlBDIEV2ZW50CgoNCgUEFAIFBhIEtwIIEAoNCgUEFAIFARIEtwIRGgoNCgUEFAIFAxIEtwIdHgo8CgQEFAIGEgS6AgghGi4gUmVmZXJzIHRvIEtwaUV2ZW50MyAoNjQtYml0IGNvdW50ZXIgc3VwcG9ydCkKCg0KBQQUAgYGEgS6AggRCg0KBQQUAgYBEgS6AhIcCg0KBQQUAgYDEgS6Ah8gYgZwcm90bzMKvB8KHnZvbHRoYV9wcm90b3MvZXh0X2NvbmZpZy5wcm90bxIGY29uZmlnImkKC0FsYXJtQ29uZmlnElAKGG9udV9pdHVfcG9uX2FsYXJtX2NvbmZpZxgBIAEoCzIWLmNvbmZpZy5PbnVJdHVQb25BbGFybUgAUhRvbnVJdHVQb25BbGFybUNvbmZpZ0IICgZjb25maWcivgkKDk9udUl0dVBvbkFsYXJtEhUKBnBvbl9uaRgBIAEoB1IFcG9uTmkSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5CghhbGFybV9pZBgDIAEoDjIeLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybUlEUgdhbGFybUlkEmoKGWFsYXJtX3JlcG9ydGluZ19jb25kaXRpb24YBCABKA4yLi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1SZXBvcnRpbmdDb25kaXRpb25SF2FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEmAKFXJhdGVfdGhyZXNob2xkX2NvbmZpZxgFIAEoCzIqLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlVGhyZXNob2xkQ29uZmlnSABSE3JhdGVUaHJlc2hvbGRDb25maWcSVAoRcmF0ZV9yYW5nZV9jb25maWcYBiABKAsyJi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVJhbmdlQ29uZmlnSABSD3JhdGVSYW5nZUNvbmZpZxJjChZ2YWx1ZV90aHJlc2hvbGRfY29uZmlnGAcgASgLMisuY29uZmlnLk9udUl0dVBvbkFsYXJtLlZhbHVlVGhyZXNob2xkQ29uZmlnSABSFHZhbHVlVGhyZXNob2xkQ29uZmlnGlwKCFNvYWtUaW1lEigKEGFjdGl2ZV9zb2FrX3RpbWUYASABKAdSDmFjdGl2ZVNvYWtUaW1lEiYKD2NsZWFyX3NvYWtfdGltZRgCIAEoB1INY2xlYXJTb2FrVGltZRq9AQoTUmF0ZVRocmVzaG9sZENvbmZpZxIyChVyYXRlX3RocmVzaG9sZF9yaXNpbmcYASABKAZSE3JhdGVUaHJlc2hvbGRSaXNpbmcSNAoWcmF0ZV90aHJlc2hvbGRfZmFsbGluZxgCIAEoBlIUcmF0ZVRocmVzaG9sZEZhbGxpbmcSPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRqjAQoPUmF0ZVJhbmdlQ29uZmlnEigKEHJhdGVfcmFuZ2VfbG93ZXIYASABKAZSDnJhdGVSYW5nZUxvd2VyEigKEHJhdGVfcmFuZ2VfdXBwZXIYAiABKAZSDnJhdGVSYW5nZVVwcGVyEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUafQoUVmFsdWVUaHJlc2hvbGRDb25maWcSJwoPdGhyZXNob2xkX2xpbWl0GAEgASgGUg50aHJlc2hvbGRMaW1pdBI8Cglzb2FrX3RpbWUYAiABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lIhkKB0FsYXJtSUQSDgoKUkRJX0VSUk9SUxAAIlIKF0FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEhIKDlJBVEVfVEhSRVNIT0xEEAASDgoKUkFURV9SQU5HRRABEhMKD1ZBTFVFX1RIUkVTSE9MRBACQggKBmNvbmZpZ0JJChNvcmcub3BlbmNvcmQudm9sdGhhWjJnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vZXh0L2NvbmZpZ0qSFAoGEgQNAEUBCvEECgEMEgMNABIa5gQgQ29weXJpZ2h0IDIwMjAtMjAyNCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbiAoT05GKSBhbmQgdGhlIE9ORiBDb250cmlidXRvcnMKCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgEIEgMPAEkKCQoCCAsSAw8ASQoICgECEgMRAA8KCAoBCBIDEwAsCgkKAggBEgMTACwKCgoCBAASBBUAGQEKCgoD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EgNCFygKDAoFBAECBQMSA0IrLAoLCgQEAQIGEgNDBzcKDAoFBAECBgYSA0MHGwoMCgUEAQIGARIDQxwyCgwKBQQBAgYDEgNDNTZiBnByb3RvMwqT3AIKHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxIJZXh0ZW5zaW9uGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8iXQoIVmFsdWVTZXQSDgoCaWQYASABKAlSAmlkEjgKDGFsYXJtX2NvbmZpZxgCIAEoCzITLmNvbmZpZy5BbGFybUNvbmZpZ0gAUgthbGFybUNvbmZpZ0IHCgV2YWx1ZSIsCglWYWx1ZVR5cGUiHwoEVHlwZRIJCgVFTVBUWRAAEgwKCERJU1RBTkNFEAEiUQoOVmFsdWVTcGVjaWZpZXISDgoCaWQYASABKAlSAmlkEi8KBXZhbHVlGAIgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSJ0CgxSZXR1cm5WYWx1ZXMSEAoDU2V0GAEgASgNUgNTZXQSIAoLVW5zdXBwb3J0ZWQYAiABKA1SC1Vuc3VwcG9ydGVkEhQKBUVycm9yGAMgASgNUgVFcnJvchIaCghEaXN0YW5jZRgEIAEoDVIIRGlzdGFuY2UiNgoSR2V0RGlzdGFuY2VSZXF1ZXN0EiAKC29udURldmljZUlkGAEgASgJUgtvbnVEZXZpY2VJZCIxChNHZXREaXN0YW5jZVJlc3BvbnNlEhoKCGRpc3RhbmNlGAEgASgNUghkaXN0YW5jZSIyChRHZXRPbnVVbmlJbmZvUmVxdWVzdBIaCgh1bmlJbmRleBgBIAEoDVIIdW5pSW5kZXgi4QQKFUdldE9udVVuaUluZm9SZXNwb25zZRJQCghhZG1TdGF0ZRgBIAEoDjI0LmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQWRtaW5pc3RyYXRpdmVTdGF0ZVIIYWRtU3RhdGUSTwoJb3BlclN0YXRlGAIgASgOMjEuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5PcGVyYXRpb25hbFN0YXRlUglvcGVyU3RhdGUSTwoJY29uZmlnSW5kGAMgASgOMjEuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5Db25maWd1cmF0aW9uSW5kUgljb25maWdJbmQiwgEKEENvbmZpZ3VyYXRpb25JbmQSCgoGVU5LT1dOEAASEgoOVEVOX0JBU0VfVF9GRFgQARIWChJIVU5EUkVEX0JBU0VfVF9GRFgQAhIYChRHSUdBQklUX0VUSEVSTkVUX0ZEWBADEhYKElRFTl9HX0VUSEVSTkVUX0ZEWBAEEhIKDlRFTl9CQVNFX1RfSERYEAUSFgoSSFVORFJFRF9CQVNFX1RfSERYEAYSGAoUR0lHQUJJVF9FVEhFUk5FVF9IRFgQByJHChNBZG1pbmlzdHJhdGl2ZVN0YXRlEhYKEkFETVNUQVRFX1VOREVGSU5FRBAAEgoKBkxPQ0tFRBABEgwKCFVOTE9DS0VEEAIiRgoQT3BlcmF0aW9uYWxTdGF0ZRIXChNPUEVSU1RBVEVfVU5ERUZJTkVEEAASCwoHRU5BQkxFRBABEgwKCERJU0FCTEVEEAIitwEKEkdldE9sdFBvcnRDb3VudGVycxIWCgZwb3J0Tm8YASABKA1SBnBvcnRObxJCCghwb3J0VHlwZRgCIAEoDjImLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnMuUG9ydFR5cGVSCHBvcnRUeXBlIkUKCFBvcnRUeXBlEhAKDFBvcnRfVU5LTk9XThAAEhUKEVBvcnRfRVRIRVJORVRfTk5JEAESEAoMUG9ydF9QT05fT0xUEAIizAMKGkdldE9sdFBvcnRDb3VudGVyc1Jlc3BvbnNlEhgKB3R4Qnl0ZXMYASABKARSB3R4Qnl0ZXMSGAoHcnhCeXRlcxgCIAEoBFIHcnhCeXRlcxIcCgl0eFBhY2tldHMYAyABKARSCXR4UGFja2V0cxIcCglyeFBhY2tldHMYBCABKARSCXJ4UGFja2V0cxImCg50eEVycm9yUGFja2V0cxgFIAEoBFIOdHhFcnJvclBhY2tldHMSJgoOcnhFcnJvclBhY2tldHMYBiABKARSDnJ4RXJyb3JQYWNrZXRzEiYKDnR4QmNhc3RQYWNrZXRzGAcgASgEUg50eEJjYXN0UGFja2V0cxImCg5yeEJjYXN0UGFja2V0cxgIIAEoBFIOcnhCY2FzdFBhY2tldHMSJgoOdHhVY2FzdFBhY2tldHMYCSABKARSDnR4VWNhc3RQYWNrZXRzEiYKDnJ4VWNhc3RQYWNrZXRzGAogASgEUg5yeFVjYXN0UGFja2V0cxImCg50eE1jYXN0UGFja2V0cxgLIAEoBFIOdHhNY2FzdFBhY2tldHMSJgoOcnhNY2FzdFBhY2tldHMYDCABKARSDnJ4TWNhc3RQYWNrZXRzIkQKFEdldE9udVBvbk9wdGljYWxJbmZvEiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSKEAgocR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZRIqChBwb3dlckZlZWRWb2x0YWdlGAEgASgCUhBwb3dlckZlZWRWb2x0YWdlEjIKFHJlY2VpdmVkT3B0aWNhbFBvd2VyGAIgASgCUhRyZWNlaXZlZE9wdGljYWxQb3dlchI2ChZtZWFuT3B0aWNhbExhdW5jaFBvd2VyGAMgASgCUhZtZWFuT3B0aWNhbExhdW5jaFBvd2VyEioKEGxhc2VyQmlhc0N1cnJlbnQYBCABKAJSEGxhc2VyQmlhc0N1cnJlbnQSIAoLdGVtcGVyYXR1cmUYBSABKAJSC3RlbXBlcmF0dXJlIq8BCh9HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5ElIKCWRpcmVjdGlvbhgBIAEoDjI0LmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5LkRpcmVjdGlvblIJZGlyZWN0aW9uIjgKCURpcmVjdGlvbhINCglVTkRFRklORUQQABIMCghVUFNUUkVBTRABEg4KCkRPV05TVFJFQU0QAiKTBQonR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeVJlc3BvbnNlEh4KCmRyb3BFdmVudHMYASABKA1SCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgNUgZvY3RldHMSGAoHcGFja2V0cxgDIAEoDVIHcGFja2V0cxIqChBicm9hZGNhc3RQYWNrZXRzGAQgASgNUhBicm9hZGNhc3RQYWNrZXRzEioKEG11bHRpY2FzdFBhY2tldHMYBSABKA1SEG11bHRpY2FzdFBhY2tldHMSLAoRY3JjRXJyb3JlZFBhY2tldHMYBiABKA1SEWNyY0Vycm9yZWRQYWNrZXRzEioKEHVuZGVyc2l6ZVBhY2tldHMYByABKA1SEHVuZGVyc2l6ZVBhY2tldHMSKAoPb3ZlcnNpemVQYWNrZXRzGAggASgNUg9vdmVyc2l6ZVBhY2tldHMSKAoPcGFja2V0czY0b2N0ZXRzGAkgASgNUg9wYWNrZXRzNjRvY3RldHMSMgoUcGFja2V0czY1VG8xMjdvY3RldHMYCiABKA1SFHBhY2tldHM2NVRvMTI3b2N0ZXRzEjQKFXBhY2tldHMxMjhUbzI1NU9jdGV0cxgLIAEoDVIVcGFja2V0czEyOFRvMjU1T2N0ZXRzEjQKFXBhY2tldHMyNTZUbzUxMW9jdGV0cxgMIAEoDVIVcGFja2V0czI1NlRvNTExb2N0ZXRzEjYKFnBhY2tldHM1MTJUbzEwMjNvY3RldHMYDSABKA1SFnBhY2tldHM1MTJUbzEwMjNvY3RldHMSOAoXcGFja2V0czEwMjRUbzE1MThvY3RldHMYDiABKA1SF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzIkwKHEdldE9udUFsbG9jR2VtSGlzdG9yeVJlcXVlc3QSLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IrMDChVPbnVHZW1Qb3J0SGlzdG9yeURhdGESFAoFZ2VtSWQYASABKA1SBWdlbUlkEjIKFHRyYW5zbWl0dGVkR0VNRnJhbWVzGAIgASgNUhR0cmFuc21pdHRlZEdFTUZyYW1lcxIsChFyZWNlaXZlZEdFTUZyYW1lcxgDIAEoDVIRcmVjZWl2ZWRHRU1GcmFtZXMSNgoUcmVjZWl2ZWRQYXlsb2FkQnl0ZXMYBCABKA1CAhgBUhRyZWNlaXZlZFBheWxvYWRCeXRlcxI8Chd0cmFuc21pdHRlZFBheWxvYWRCeXRlcxgFIAEoDUICGAFSF3RyYW5zbWl0dGVkUGF5bG9hZEJ5dGVzEjAKE2VuY3J5cHRpb25LZXlFcnJvcnMYBiABKA1SE2VuY3J5cHRpb25LZXlFcnJvcnMSOQoZcmVjZWl2ZWRfcGF5bG9hZF9ieXRlc182NBgHIAEoBlIWcmVjZWl2ZWRQYXlsb2FkQnl0ZXM2NBI/Chx0cmFuc21pdHRlZF9wYXlsb2FkX2J5dGVzXzY0GAggASgGUhl0cmFuc21pdHRlZFBheWxvYWRCeXRlczY0IkkKE09udUFsbG9jSGlzdG9yeURhdGESGAoHYWxsb2NJZBgBIAEoDVIHYWxsb2NJZBIYCgdyeEJ5dGVzGAIgASgNUgdyeEJ5dGVzIqQBChZPbnVBbGxvY0dlbUhpc3RvcnlEYXRhEkYKDm9udUFsbG9jSWRJbmZvGAEgASgLMh4uZXh0ZW5zaW9uLk9udUFsbG9jSGlzdG9yeURhdGFSDm9udUFsbG9jSWRJbmZvEkIKC2dlbVBvcnRJbmZvGAIgAygLMiAuZXh0ZW5zaW9uLk9udUdlbVBvcnRIaXN0b3J5RGF0YVILZ2VtUG9ydEluZm8iegodR2V0T251QWxsb2NHZW1IaXN0b3J5UmVzcG9uc2USWQoWb251QWxsb2NHZW1IaXN0b3J5RGF0YRgBIAMoCzIhLmV4dGVuc2lvbi5PbnVBbGxvY0dlbUhpc3RvcnlEYXRhUhZvbnVBbGxvY0dlbUhpc3RvcnlEYXRhIkAKEEdldE9udUZlY0hpc3RvcnkSLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IuMDChhHZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2USKgoOY29ycmVjdGVkQnl0ZXMYASABKA1CAhgBUg5jb3JyZWN0ZWRCeXRlcxIyChJjb3JyZWN0ZWRDb2RlV29yZHMYAiABKA1CAhgBUhJjb3JyZWN0ZWRDb2RlV29yZHMSHgoKZmVjU2Vjb25kcxgDIAEoDVIKZmVjU2Vjb25kcxIqCg50b3RhbENvZGVXb3JkcxgEIAEoDUICGAFSDnRvdGFsQ29kZVdvcmRzEjoKFnVuY29ycmVjdGFibGVDb2RlV29yZHMYBSABKA1CAhgBUhZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzEjMKFmZlY19jb3JyZWN0ZWRfYnl0ZXNfNjQYBiABKAZSE2ZlY0NvcnJlY3RlZEJ5dGVzNjQSPAobZmVjX2NvcnJlY3RlZF9jb2RlX3dvcmRzXzY0GAcgASgGUhdmZWNDb3JyZWN0ZWRDb2RlV29yZHM2NBItChN0b3RhbF9jb2RlX3dvcmRzXzY0GAggASgGUhB0b3RhbENvZGVXb3JkczY0Ej0KG3VuY29ycmVjdGFibGVfY29kZV93b3Jkc182NBgJIAEoBlIYdW5jb3JyZWN0YWJsZUNvZGVXb3JkczY0IkcKFUdldE9udUNvdW50ZXJzUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCKNAQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQSHAoIdW5pSW5kZXgYAiABKA1IAFIIdW5pSW5kZXgSFAoFcmVzZXQYAyABKAhSBXJlc2V0Qg4KDGlzX3VuaV9pbmRleCJDChFHZXRSeFBvd2VyUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJMChRHZXRPbHRSeFBvd2VyUmVxdWVzdBIdCgpwb3J0X2xhYmVsGAEgASgJUglwb3J0TGFiZWwSFQoGb251X3NuGAIgASgJUgVvbnVTbiJaChJHZXRQb25TdGF0c1JlcXVlc3QSHgoJcG9ydExhYmVsGAEgASgJSABSCXBvcnRMYWJlbBIYCgZwb3J0SWQYAiABKAdIAFIGcG9ydElkQgoKCHBvcnRJbmZvIm8KE0dldFBvblN0YXRzUmVzcG9uc2USGAoHcG9uUG9ydBgBIAEoDVIHcG9uUG9ydBI+Cg5wb3J0U3RhdGlzdGljcxgCIAEoCzIWLmNvbW1vbi5Qb3J0U3RhdGlzdGljc1IOcG9ydFN0YXRpc3RpY3MiWgoSR2V0Tk5JU3RhdHNSZXF1ZXN0Eh4KCXBvcnRMYWJlbBgBIAEoCUgAUglwb3J0TGFiZWwSGAoGcG9ydElkGAIgASgHSABSBnBvcnRJZEIKCghwb3J0SW5mbyJvChNHZXROTklTdGF0c1Jlc3BvbnNlEhgKB25uaVBvcnQYASABKA1SB25uaVBvcnQSPgoOcG9ydFN0YXRpc3RpY3MYAiABKAsyFi5jb21tb24uUG9ydFN0YXRpc3RpY3NSDnBvcnRTdGF0aXN0aWNzIkkKGUdldE9udVN0YXRzRnJvbU9sdFJlcXVlc3QSFgoGaW50ZklkGAEgASgHUgZpbnRmSWQSFAoFb251SWQYAiABKAdSBW9udUlkIp0BChVPbnVHZW1Qb3J0SW5mb0Zyb21PbHQSFAoFZ2VtSWQYASABKA1SBWdlbUlkEhwKCXJ4UGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEhgKB3J4Qnl0ZXMYAyABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGAoHdHhCeXRlcxgFIAEoBFIHdHhCeXRlcyJLChVPbnVBbGxvY0lkSW5mb0Zyb21PbHQSGAoHYWxsb2NJZBgBIAEoDVIHYWxsb2NJZBIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzIqkBCh9PbnVBbGxvY0dlbVN0YXRzRnJvbU9sdFJlc3BvbnNlEkIKC2FsbG9jSWRJbmZvGAEgASgLMiAuZXh0ZW5zaW9uLk9udUFsbG9jSWRJbmZvRnJvbU9sdFILYWxsb2NJZEluZm8SQgoLZ2VtUG9ydEluZm8YAiADKAsyIC5leHRlbnNpb24uT251R2VtUG9ydEluZm9Gcm9tT2x0UgtnZW1Qb3J0SW5mbyJ2ChpHZXRPbnVTdGF0c0Zyb21PbHRSZXNwb25zZRJYChFhbGxvY0dlbVN0YXRzSW5mbxgBIAMoCzIqLmV4dGVuc2lvbi5PbnVBbGxvY0dlbVN0YXRzRnJvbU9sdFJlc3BvbnNlUhFhbGxvY0dlbVN0YXRzSW5mbyKWDQoWR2V0T251Q291bnRlcnNSZXNwb25zZRIZCgdpbnRmX2lkGAEgASgHSABSBmludGZJZBIXCgZvbnVfaWQYAiABKAdIAVIFb251SWQSJwoOcG9zaXRpdmVfZHJpZnQYAyABKAZIAlINcG9zaXRpdmVEcmlmdBInCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBkgDUg1uZWdhdGl2ZURyaWZ0EjoKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBkgEUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh8KCmJpcF9lcnJvcnMYBiABKAZIBVIJYmlwRXJyb3JzEh0KCWJpcF91bml0cxgHIAEoBkgGUghiaXBVbml0cxI0ChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZIB1ITZmVjQ29ycmVjdGVkU3ltYm9scxI4ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBkgIUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSQAobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGSAlSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSJQoNZmVjX2NvZGV3b3JkcxgLIAEoBkgKUgxmZWNDb2Rld29yZHMSMAoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBkgLUhFmZWNDb3JyZWN0ZWRVbml0cxIoCg94Z2VtX2tleV9lcnJvcnMYDSABKAZIDFINeGdlbUtleUVycm9ycxIdCgl4Z2VtX2xvc3MYDiABKAZIDVIIeGdlbUxvc3MSKAoPcnhfcGxvYW1zX2Vycm9yGA8gASgGSA5SDXJ4UGxvYW1zRXJyb3ISLQoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGSA9SD3J4UGxvYW1zTm9uSWRsZRIZCgdyeF9vbWNpGBEgASgGSBBSBnJ4T21jaRIZCgd0eF9vbWNpGBIgASgGSBFSBnR4T21jaRI6ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBMgASgGSBJSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIbCghyeF9ieXRlcxgUIAEoBkgTUgdyeEJ5dGVzEh8KCnJ4X3BhY2tldHMYFSABKAZIFFIJcnhQYWNrZXRzEhsKCHR4X2J5dGVzGBYgASgGSBVSB3R4Qnl0ZXMSHwoKdHhfcGFja2V0cxgXIAEoBkgWUgl0eFBhY2tldHMSIwoMYmVyX3JlcG9ydGVkGBggASgGSBdSC2JlclJlcG9ydGVkEiEKC2xjZGdfZXJyb3JzGBkgASgGSBhSCmxjZGdFcnJvcnMSHwoKcmRpX2Vycm9ycxgaIAEoBkgZUglyZGlFcnJvcnMSHgoJdGltZXN0YW1wGBsgASgHSBpSCXRpbWVzdGFtcBIfCgpoZWNfZXJyb3JzGBwgASgGSBtSCWhlY0Vycm9yc0IMCgppc19pbnRmX2lkQgsKCWlzX29udV9pZEITChFpc19wb3NpdGl2ZV9kcmlmdEITChFpc19uZWdhdGl2ZV9kcmlmdEIdChtpc19kZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb25CDwoNaXNfYmlwX2Vycm9yc0IOCgxpc19iaXBfdW5pdHNCGgoYaXNfZmVjX2NvcnJlY3RlZF9zeW1ib2xzQhwKGmlzX2ZlY19jb2Rld29yZHNfY29ycmVjdGVkQiAKHmlzX2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZUISChBpc19mZWNfY29kZXdvcmRzQhgKFmlzX2ZlY19jb3JyZWN0ZWRfdW5pdHNCFAoSaXNfeGdlbV9rZXlfZXJyb3JzQg4KDGlzX3hnZW1fbG9zc0IUChJpc19yeF9wbG9hbXNfZXJyb3JCFwoVaXNfcnhfcGxvYW1zX25vbl9pZGxlQgwKCmlzX3J4X29tY2lCDAoKaXNfdHhfb21jaUIeChxpc19yeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yQg0KC2lzX3J4X2J5dGVzQg8KDWlzX3J4X3BhY2tldHNCDQoLaXNfdHhfYnl0ZXNCDwoNaXNfdHhfcGFja2V0c0IRCg9pc19iZXJfcmVwb3J0ZWRCEAoOaXNfbGNkZ19lcnJvcnNCDwoNaXNfcmRpX2Vycm9yc0IOCgxpc190aW1lc3RhbXBCDwoNaXNfaGVjX2Vycm9ycyKMBQobT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtEh8KC2Ryb3BfZXZlbnRzGAEgASgGUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoBlIGb2N0ZXRzEhYKBmZyYW1lcxgDIAEoBlIGZnJhbWVzEikKEGJyb2FkY2FzdF9mcmFtZXMYBCABKAZSD2Jyb2FkY2FzdEZyYW1lcxIpChBtdWx0aWNhc3RfZnJhbWVzGAUgASgGUg9tdWx0aWNhc3RGcmFtZXMSLAoSY3JjX2Vycm9yZWRfZnJhbWVzGAYgASgGUhBjcmNFcnJvcmVkRnJhbWVzEikKEHVuZGVyc2l6ZV9mcmFtZXMYByABKAZSD3VuZGVyc2l6ZUZyYW1lcxInCg9vdmVyc2l6ZV9mcmFtZXMYCCABKAZSDm92ZXJzaXplRnJhbWVzEigKEGZyYW1lc182NF9vY3RldHMYCSABKAZSDmZyYW1lczY0T2N0ZXRzEjQKF2ZyYW1lc182NV90b18xMjdfb2N0ZXRzGAogASgGUhNmcmFtZXM2NVRvMTI3T2N0ZXRzEjYKGGZyYW1lc18xMjhfdG9fMjU1X29jdGV0cxgLIAEoBlIUZnJhbWVzMTI4VG8yNTVPY3RldHMSNgoYZnJhbWVzXzI1Nl90b181MTFfb2N0ZXRzGAwgASgGUhRmcmFtZXMyNTZUbzUxMU9jdGV0cxI4ChlmcmFtZXNfNTEyX3RvXzEwMjNfb2N0ZXRzGA0gASgGUhVmcmFtZXM1MTJUbzEwMjNPY3RldHMSOgoaZnJhbWVzXzEwMjRfdG9fMTUxOF9vY3RldHMYDiABKAZSFmZyYW1lczEwMjRUbzE1MThPY3RldHMi9AIKJkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlEkIKCHVwc3RyZWFtGAEgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIIdXBzdHJlYW0SRgoKZG93bnN0cmVhbRgCIAEoCzImLmV4dGVuc2lvbi5PbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SCmRvd25zdHJlYW0SiwEKJm9tY2lfZXRoZXJuZXRfZnJhbWVfZXh0ZW5kZWRfcG1fZm9ybWF0GAMgASgOMjguZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlLkZvcm1hdFIhb21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtRm9ybWF0IjAKBkZvcm1hdBISCg5USElSVFlfVFdPX0JJVBAAEhIKDlNJWFRZX0ZPVVJfQklUEAEidAoHUnhQb3dlchIVCgZvbnVfc24YASABKAlSBW9udVNuEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAMgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAQgASgBUgdyeFBvd2VyImUKFUdldE9sdFJ4UG93ZXJSZXNwb25zZRIdCgpwb3J0X2xhYmVsGAEgASgJUglwb3J0TGFiZWwSLQoIcnhfcG93ZXIYAiADKAsyEi5leHRlbnNpb24uUnhQb3dlclIHcnhQb3dlciKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIkoKGkdldE9udU9tY2lUeFJ4U3RhdHNSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLxAwobR2V0T251T21jaVR4UnhTdGF0c1Jlc3BvbnNlEikKEWJhc2VfdHhfYXJfZnJhbWVzGAEgASgNUg5iYXNlVHhBckZyYW1lcxIpChFiYXNlX3J4X2FrX2ZyYW1lcxgCIAEoDVIOYmFzZVJ4QWtGcmFtZXMSLgoUYmFzZV90eF9ub19hcl9mcmFtZXMYAyABKA1SEGJhc2VUeE5vQXJGcmFtZXMSLgoUYmFzZV9yeF9ub19ha19mcmFtZXMYBCABKA1SEGJhc2VSeE5vQWtGcmFtZXMSJwoQZXh0X3R4X2FyX2ZyYW1lcxgFIAEoDVINZXh0VHhBckZyYW1lcxInChBleHRfcnhfYWtfZnJhbWVzGAYgASgNUg1leHRSeEFrRnJhbWVzEiwKE2V4dF90eF9ub19hcl9mcmFtZXMYByABKA1SD2V4dFR4Tm9BckZyYW1lcxIsChNleHRfcnhfbm9fYWtfZnJhbWVzGAggASgNUg9leHRSeE5vQWtGcmFtZXMSNQoXdHhfb21jaV9jb3VudGVyX3JldHJpZXMYCSABKA1SFHR4T21jaUNvdW50ZXJSZXRyaWVzEjcKGHR4X29tY2lfY291bnRlcl90aW1lb3V0cxgKIAEoDVIVdHhPbWNpQ291bnRlclRpbWVvdXRzIk0KHUdldE9udU9tY2lBY3RpdmVBbGFybXNSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSJ9CglBbGFybURhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSHwoLaW5zdGFuY2VfaWQYAiABKA1SCmluc3RhbmNlSWQSEgoEbmFtZRgDIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24iWwoeR2V0T251T21jaUFjdGl2ZUFsYXJtc1Jlc3BvbnNlEjkKDWFjdGl2ZV9hbGFybXMYASADKAsyFC5leHRlbnNpb24uQWxhcm1EYXRhUgxhY3RpdmVBbGFybXMiwgEKIUdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVxdWVzdBJVCghzdGF0c0ZvchgBIAEoDjI5LmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1JlcXVlc3QuT2ZmbG9hZGVkQXBwUghzdGF0c0ZvciJGCgxPZmZsb2FkZWRBcHASDQoJVU5ERUZJTkVEEAASCwoHUFBQb2VJQRABEgwKCERIQ1B2NFJBEAISDAoIREhDUHY2UkEQAyKLFgoiR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXNwb25zZRJjCg1kaGNwdjRSYVN0YXRzGAEgASgLMjsuZXh0ZW5zaW9uLkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2UuREhDUHY0UkFTdGF0c0gAUg1kaGNwdjRSYVN0YXRzEmMKDWRoY3B2NlJhU3RhdHMYAiABKAsyOy5leHRlbnNpb24uR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXNwb25zZS5ESENQdjZSQVN0YXRzSABSDWRoY3B2NlJhU3RhdHMSYAoMcHBwb2VJYVN0YXRzGAMgASgLMjouZXh0ZW5zaW9uLkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2UuUFBQb2VJQVN0YXRzSABSDHBwcG9lSWFTdGF0cxr7BQoNREhDUHY0UkFTdGF0cxI6Chppbl9iYWRfcGFja2V0c19mcm9tX2NsaWVudBgBIAEoDVIWaW5CYWRQYWNrZXRzRnJvbUNsaWVudBI6Chppbl9iYWRfcGFja2V0c19mcm9tX3NlcnZlchgCIAEoDVIWaW5CYWRQYWNrZXRzRnJvbVNlcnZlchIzChZpbl9wYWNrZXRzX2Zyb21fY2xpZW50GAMgASgNUhNpblBhY2tldHNGcm9tQ2xpZW50EjMKFmluX3BhY2tldHNfZnJvbV9zZXJ2ZXIYBCABKA1SE2luUGFja2V0c0Zyb21TZXJ2ZXISMQoVb3V0X3BhY2tldHNfdG9fc2VydmVyGAUgASgNUhJvdXRQYWNrZXRzVG9TZXJ2ZXISMQoVb3V0X3BhY2tldHNfdG9fY2xpZW50GAYgASgNUhJvdXRQYWNrZXRzVG9DbGllbnQSTQokb3B0aW9uXzgyX2luc2VydGVkX3BhY2tldHNfdG9fc2VydmVyGAcgASgNUh9vcHRpb244Mkluc2VydGVkUGFja2V0c1RvU2VydmVyEksKI29wdGlvbl84Ml9yZW1vdmVkX3BhY2tldHNfdG9fY2xpZW50GAggASgNUh5vcHRpb244MlJlbW92ZWRQYWNrZXRzVG9DbGllbnQSRQogb3B0aW9uXzgyX25vdF9pbnNlcnRlZF90b19zZXJ2ZXIYCSABKA1SG29wdGlvbjgyTm90SW5zZXJ0ZWRUb1NlcnZlchJ7ChBhZGRpdGlvbmFsX3N0YXRzGAogAygLMlAuZXh0ZW5zaW9uLkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2UuREhDUHY0UkFTdGF0cy5BZGRpdGlvbmFsU3RhdHNFbnRyeVIPYWRkaXRpb25hbFN0YXRzGkIKFEFkZGl0aW9uYWxTdGF0c0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEa9QYKDURIQ1B2NlJBU3RhdHMSOgoaaW5fYmFkX3BhY2tldHNfZnJvbV9jbGllbnQYASABKA1SFmluQmFkUGFja2V0c0Zyb21DbGllbnQSOgoaaW5fYmFkX3BhY2tldHNfZnJvbV9zZXJ2ZXIYAiABKA1SFmluQmFkUGFja2V0c0Zyb21TZXJ2ZXISTQokb3B0aW9uXzE3X2luc2VydGVkX3BhY2tldHNfdG9fc2VydmVyGAMgASgNUh9vcHRpb24xN0luc2VydGVkUGFja2V0c1RvU2VydmVyEksKI29wdGlvbl8xN19yZW1vdmVkX3BhY2tldHNfdG9fY2xpZW50GAQgASgNUh5vcHRpb24xN1JlbW92ZWRQYWNrZXRzVG9DbGllbnQSTQokb3B0aW9uXzE4X2luc2VydGVkX3BhY2tldHNfdG9fc2VydmVyGAUgASgNUh9vcHRpb24xOEluc2VydGVkUGFja2V0c1RvU2VydmVyEksKI29wdGlvbl8xOF9yZW1vdmVkX3BhY2tldHNfdG9fY2xpZW50GAYgASgNUh5vcHRpb24xOFJlbW92ZWRQYWNrZXRzVG9DbGllbnQSTQokb3B0aW9uXzM3X2luc2VydGVkX3BhY2tldHNfdG9fc2VydmVyGAcgASgNUh9vcHRpb24zN0luc2VydGVkUGFja2V0c1RvU2VydmVyEksKI29wdGlvbl8zN19yZW1vdmVkX3BhY2tldHNfdG9fY2xpZW50GAggASgNUh5vcHRpb24zN1JlbW92ZWRQYWNrZXRzVG9DbGllbnQSVwopb3V0Z29pbmdfbXR1X2V4Y2VlZGVkX3BhY2tldHNfZnJvbV9jbGllbnQYCSABKA1SJG91dGdvaW5nTXR1RXhjZWVkZWRQYWNrZXRzRnJvbUNsaWVudBJ7ChBhZGRpdGlvbmFsX3N0YXRzGAogAygLMlAuZXh0ZW5zaW9uLkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2UuREhDUHY2UkFTdGF0cy5BZGRpdGlvbmFsU3RhdHNFbnRyeVIPYWRkaXRpb25hbFN0YXRzGkIKFEFkZGl0aW9uYWxTdGF0c0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEauQYKDFBQUG9lSUFTdGF0cxI+Chxpbl9lcnJvcl9wYWNrZXRzX2Zyb21fY2xpZW50GAEgASgNUhhpbkVycm9yUGFja2V0c0Zyb21DbGllbnQSPgocaW5fZXJyb3JfcGFja2V0c19mcm9tX3NlcnZlchgCIAEoDVIYaW5FcnJvclBhY2tldHNGcm9tU2VydmVyEjMKFmluX3BhY2tldHNfZnJvbV9jbGllbnQYAyABKA1SE2luUGFja2V0c0Zyb21DbGllbnQSMwoWaW5fcGFja2V0c19mcm9tX3NlcnZlchgEIAEoDVITaW5QYWNrZXRzRnJvbVNlcnZlchIxChVvdXRfcGFja2V0c190b19zZXJ2ZXIYBSABKA1SEm91dFBhY2tldHNUb1NlcnZlchIxChVvdXRfcGFja2V0c190b19jbGllbnQYBiABKA1SEm91dFBhY2tldHNUb0NsaWVudBJgCi52ZW5kb3Jfc3BlY2lmaWNfdGFnX2luc2VydGVkX3BhY2tldHNfdG9fc2VydmVyGAcgASgNUih2ZW5kb3JTcGVjaWZpY1RhZ0luc2VydGVkUGFja2V0c1RvU2VydmVyEl4KLXZlbmRvcl9zcGVjaWZpY190YWdfcmVtb3ZlZF9wYWNrZXRzX3RvX2NsaWVudBgIIAEoDVIndmVuZG9yU3BlY2lmaWNUYWdSZW1vdmVkUGFja2V0c1RvQ2xpZW50ElcKKW91dGdvaW5nX210dV9leGNlZWRlZF9wYWNrZXRzX2Zyb21fY2xpZW50GAkgASgNUiRvdXRnb2luZ010dUV4Y2VlZGVkUGFja2V0c0Zyb21DbGllbnQSegoQYWRkaXRpb25hbF9zdGF0cxgKIAMoCzJPLmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlLlBQUG9lSUFTdGF0cy5BZGRpdGlvbmFsU3RhdHNFbnRyeVIPYWRkaXRpb25hbFN0YXRzGkIKFEFkZGl0aW9uYWxTdGF0c0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAFCBwoFc3RhdHMi+AkKD0dldFZhbHVlUmVxdWVzdBI7CghkaXN0YW5jZRgBIAEoCzIdLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlcXVlc3RIAFIIZGlzdGFuY2USOwoHdW5pSW5mbxgCIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVxdWVzdEgAUgd1bmlJbmZvEkEKC29sdFBvcnRJbmZvGAMgASgLMh0uZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc0gAUgtvbHRQb3J0SW5mbxJJCg5vbnVPcHRpY2FsSW5mbxgEIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb0gAUg5vbnVPcHRpY2FsSW5mbxJSCg1ldGhCcmlkZ2VQb3J0GAUgASgLMiouZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlIAFINZXRoQnJpZGdlUG9ydBI9CgpmZWNIaXN0b3J5GAYgASgLMhsuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlIAFIKZmVjSGlzdG9yeRJCCgpvbnVQb25JbmZvGAcgASgLMiAuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVxdWVzdEgAUgpvbnVQb25JbmZvEkwKB29udUluZm8YCCABKAsyMC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdEgAUgdvbnVJbmZvEjgKB3J4UG93ZXIYCSABKAsyHC5leHRlbnNpb24uR2V0UnhQb3dlclJlcXVlc3RIAFIHcnhQb3dlchJLCgxvbnVPbWNpU3RhdHMYCiABKAsyJS5leHRlbnNpb24uR2V0T251T21jaVR4UnhTdGF0c1JlcXVlc3RIAFIMb251T21jaVN0YXRzEkEKCm9sdFJ4UG93ZXIYCyABKAsyHy5leHRlbnNpb24uR2V0T2x0UnhQb3dlclJlcXVlc3RIAFIKb2x0UnhQb3dlchJUCg9vbnVBY3RpdmVBbGFybXMYDCABKAsyKC5leHRlbnNpb24uR2V0T251T21jaUFjdGl2ZUFsYXJtc1JlcXVlc3RIAFIPb251QWN0aXZlQWxhcm1zEl4KEm9mZmxvYWRlZEFwcHNTdGF0cxgNIAEoCzIsLmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1JlcXVlc3RIAFISb2ZmbG9hZGVkQXBwc1N0YXRzElUKEG9udUFsbG9jR2VtU3RhdHMYDiABKAsyJy5leHRlbnNpb24uR2V0T251QWxsb2NHZW1IaXN0b3J5UmVxdWVzdEgAUhBvbnVBbGxvY0dlbVN0YXRzElAKD29udVN0YXRzRnJvbU9sdBgPIAEoCzIkLmV4dGVuc2lvbi5HZXRPbnVTdGF0c0Zyb21PbHRSZXF1ZXN0SABSD29udVN0YXRzRnJvbU9sdBJBCgtvbHRQb25TdGF0cxgQIAEoCzIdLmV4dGVuc2lvbi5HZXRQb25TdGF0c1JlcXVlc3RIAFILb2x0UG9uU3RhdHMSQQoLb2x0Tm5pU3RhdHMYESABKAsyHS5leHRlbnNpb24uR2V0Tk5JU3RhdHNSZXF1ZXN0SABSC29sdE5uaVN0YXRzQgkKB3JlcXVlc3Qi5w0KEEdldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbhI8CghkaXN0YW5jZRgDIAEoCzIeLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlc3BvbnNlSABSCGRpc3RhbmNlEjwKB3VuaUluZm8YBCABKAsyIC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlSABSB3VuaUluZm8SSwoMcG9ydENvdXRuZXJzGAUgASgLMiUuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc1Jlc3BvbnNlSABSDHBvcnRDb3V0bmVycxJRCg5vbnVPcHRpY2FsSW5mbxgGIAEoCzInLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlSABSDm9udU9wdGljYWxJbmZvEmIKEWV0aEJyaWRnZVBvcnRJbmZvGAcgASgLMjIuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZUgAUhFldGhCcmlkZ2VQb3J0SW5mbxJFCgpmZWNIaXN0b3J5GAggASgLMiMuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlSZXNwb25zZUgAUgpmZWNIaXN0b3J5EksKDm9udVBvbkNvdW50ZXJzGAkgASgLMiEuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVzcG9uc2VIAFIOb251UG9uQ291bnRlcnMSVQoLb251Q291bnRlcnMYCiABKAsyMS5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2VIAFILb251Q291bnRlcnMSOQoHcnhQb3dlchgLIAEoCzIdLmV4dGVuc2lvbi5HZXRSeFBvd2VyUmVzcG9uc2VIAFIHcnhQb3dlchJMCgxvbnVPbWNpU3RhdHMYDCABKAsyJi5leHRlbnNpb24uR2V0T251T21jaVR4UnhTdGF0c1Jlc3BvbnNlSABSDG9udU9tY2lTdGF0cxJCCgpvbHRSeFBvd2VyGA0gASgLMiAuZXh0ZW5zaW9uLkdldE9sdFJ4UG93ZXJSZXNwb25zZUgAUgpvbHRSeFBvd2VyElUKD29udUFjdGl2ZUFsYXJtcxgOIAEoCzIpLmV4dGVuc2lvbi5HZXRPbnVPbWNpQWN0aXZlQWxhcm1zUmVzcG9uc2VIAFIPb251QWN0aXZlQWxhcm1zEl8KEm9mZmxvYWRlZEFwcHNTdGF0cxgPIAEoCzItLmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlSABSEm9mZmxvYWRlZEFwcHNTdGF0cxJmChhvbnVBbGxvY0dlbVN0YXRzUmVzcG9uc2UYECABKAsyKC5leHRlbnNpb24uR2V0T251QWxsb2NHZW1IaXN0b3J5UmVzcG9uc2VIAFIYb251QWxsb2NHZW1TdGF0c1Jlc3BvbnNlEmEKF29udVN0YXRzRnJvbU9sdFJlc3BvbnNlGBEgASgLMiUuZXh0ZW5zaW9uLkdldE9udVN0YXRzRnJvbU9sdFJlc3BvbnNlSABSF29udVN0YXRzRnJvbU9sdFJlc3BvbnNlElIKE29sdFBvblN0YXRzUmVzcG9uc2UYEiABKAsyHi5leHRlbnNpb24uR2V0UG9uU3RhdHNSZXNwb25zZUgAUhNvbHRQb25TdGF0c1Jlc3BvbnNlElIKE29sdE5uaVN0YXRzUmVzcG9uc2UYEyABKAsyHi5leHRlbnNpb24uR2V0Tk5JU3RhdHNSZXNwb25zZUgAUhNvbHRObmlTdGF0c1Jlc3BvbnNlIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACIq0BCgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQARIVChFJTlZBTElEX0RFVklDRV9JRBACEhUKEUlOVkFMSURfUE9SVF9UWVBFEAMSCwoHVElNRU9VVBAEEhQKEElOVkFMSURfUkVRX1RZUEUQBRISCg5JTlRFUk5BTF9FUlJPUhAGEhIKDklOVkFMSURfREVWSUNFEAdCCgoIcmVzcG9uc2UirAEKEEFwcE9mZmxvYWRDb25maWcSJgoOZW5hYmxlREhDUHY0UkEYASABKAhSDmVuYWJsZURIQ1B2NFJBEiYKDmVuYWJsZURIQ1B2NlJBGAIgASgIUg5lbmFibGVESENQdjZSQRIkCg1lbmFibGVQUFBvRUlBGAMgASgIUg1lbmFibGVQUFBvRUlBEiIKDGFjY2Vzc05vZGVJRBgEIAEoCVIMYWNjZXNzTm9kZUlEIv4BChNBcHBPZmZsb2FkT251Q29uZmlnEiAKC29udURldmljZUlkGAEgASgJUgtvbnVEZXZpY2VJZBJLCgpwZXJVbmlJbmZvGAUgAygLMisuZXh0ZW5zaW9uLkFwcE9mZmxvYWRPbnVDb25maWcuUGVyVW5pQ29uZmlnUgpwZXJVbmlJbmZvGngKDFBlclVuaUNvbmZpZxIkCg1hZ2VudFJlbW90ZUlEGAIgASgJUg1hZ2VudFJlbW90ZUlEEiYKDmFnZW50Q2lyY3VpdElEGAMgASgJUg5hZ2VudENpcmN1aXRJRBIaCghvbnVVbmlJZBgEIAEoDVIIb251VW5pSWQi+gEKD1NldFZhbHVlUmVxdWVzdBI4CgxhbGFybV9jb25maWcYASABKAsyEy5jb25maWcuQWxhcm1Db25maWdIAFILYWxhcm1Db25maWcSSwoSYXBwX29mZmxvYWRfY29uZmlnGAIgASgLMhsuZXh0ZW5zaW9uLkFwcE9mZmxvYWRDb25maWdIAFIQYXBwT2ZmbG9hZENvbmZpZxJVChZhcHBfb2ZmbG9hZF9vbnVfY29uZmlnGAMgASgLMh4uZXh0ZW5zaW9uLkFwcE9mZmxvYWRPbnVDb25maWdIAFITYXBwT2ZmbG9hZE9udUNvbmZpZ0IJCgdyZXF1ZXN0IsQCChBTZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24iMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIiegoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAESFQoRSU5WQUxJRF9ERVZJQ0VfSUQQAhIZChVJTlZBTElEX09OVV9ERVZJQ0VfSUQQAxISCg5JTlZBTElEX1VOSV9JRBAEImkKFVNpbmdsZUdldFZhbHVlUmVxdWVzdBIaCgh0YXJnZXRJZBgBIAEoCVIIdGFyZ2V0SWQSNAoHcmVxdWVzdBgCIAEoCzIaLmV4dGVuc2lvbi5HZXRWYWx1ZVJlcXVlc3RSB3JlcXVlc3QiUQoWU2luZ2xlR2V0VmFsdWVSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIbLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlUghyZXNwb25zZSJpChVTaW5nbGVTZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uU2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZVNldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UyswEKCUV4dGVuc2lvbhJSCgtHZXRFeHRWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXNwb25zZRJSCgtTZXRFeHRWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXNwb25zZUJSCh1vcmcub3BlbmNvcmQudm9sdGhhLmV4dGVuc2lvbloxZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2V4dGVuc2lvbkrc0gEKBxIFDgDBBQEK8QQKAQwSAw4AEjLmBCBDb3B5cmlnaHQgMjAxOC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxl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aWxlLlZvaXBDb25maWdSCnZvaXBDb25maWcilQQKClZvaXBDb25maWcSRQoMaXBIb3N0Q29uZmlnGAEgASgLMiEudm9pcF9zeXN0ZW1fcHJvZmlsZS5JcEhvc3RDb25maWdSDGlwSG9zdENvbmZpZxJFCgx0Y3BVZHBDb25maWcYAiABKAsyIS52b2lwX3N5c3RlbV9wcm9maWxlLlRjcFVkcENvbmZpZ1IMdGNwVWRwQ29uZmlnEkUKDHZvaXBWb2ljZUN0cBgDIAEoCzIhLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcFZvaWNlQ3RwUgx2b2lwVm9pY2VDdHASUQoQdm9pcE1lZGlhUHJvZmlsZRgEIAEoCzIlLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcE1lZGlhUHJvZmlsZVIQdm9pcE1lZGlhUHJvZmlsZRJaChN2b2ljZVNlcnZpY2VQcm9maWxlGAUgASgLMigudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2ljZVNlcnZpY2VQcm9maWxlUhN2b2ljZVNlcnZpY2VQcm9maWxlEj8KCnJ0cFByb2ZpbGUYBiABKAsyHy52b2lwX3N5c3RlbV9wcm9maWxlLlJ0cFByb2ZpbGVSCnJ0cFByb2ZpbGUSQgoLcHB0cFBvdHNVbmkYByABKAsyIC52b2lwX3N5c3RlbV9wcm9maWxlLlBwdHBQb3RzVW5pUgtwcHRwUG90c1VuaSKQAgoMSXBIb3N0Q29uZmlnEhwKCWlwT3B0aW9ucxgBIAEoDVIJaXBPcHRpb25zEiQKDW9udUlkZW50aWZpZXIYAiABKAlSDW9udUlkZW50aWZpZXISHAoJaXBBZGRyZXNzGAMgASgJUglpcEFkZHJlc3MSEgoEbWFzaxgEIAEoCVIEbWFzaxIYCgdnYXRld2F5GAUgASgJUgdnYXRld2F5Eh4KCnByaW1hcnlEbnMYBiABKAlSCnByaW1hcnlEbnMSIgoMc2Vjb25kYXJ5RG5zGAcgASgJUgxzZWNvbmRhcnlEbnMSLAoRcmVsYXlBZ2VudE9wdGlvbnMYCCABKAlSEXJlbGF5QWdlbnRPcHRpb25zIkYKDFRjcFVkcENvbmZpZxIaCghwcm90b2NvbBgBIAEoDVIIcHJvdG9jb2wSGgoIdG9zRmllbGQYAiABKAlSCHRvc0ZpZWxkIjYKDFZvaXBWb2ljZUN0cBImCg5zaWduYWxsaW5nQ29kZRgBIAEoDVIOc2lnbmFsbGluZ0NvZGUilgUKEFZvaXBNZWRpYVByb2ZpbGUSGAoHZmF4TW9kZRgBIAEoDVIHZmF4TW9kZRIoCg9jb2RlY1NlbGVjdGlvbjEYAiABKA1SD2NvZGVjU2VsZWN0aW9uMRI2ChZwYWNrZXRQZXJpb2RTZWxlY3Rpb24xGAMgASgNUhZwYWNrZXRQZXJpb2RTZWxlY3Rpb24xEjAKE3NpbGVuY2VTdXBwcmVzc2lvbjEYBCABKA1SE3NpbGVuY2VTdXBwcmVzc2lvbjESKAoPY29kZWNTZWxlY3Rpb24yGAUgASgNUg9jb2RlY1NlbGVjdGlvbjISNgoWcGFja2V0UGVyaW9kU2VsZWN0aW9uMhgGIAEoDVIWcGFja2V0UGVyaW9kU2VsZWN0aW9uMhIwChNzaWxlbmNlU3VwcHJlc3Npb24yGAcgASgNUhNzaWxlbmNlU3VwcHJlc3Npb24yEigKD2NvZGVjU2VsZWN0aW9uMxgIIAEoDVIPY29kZWNTZWxlY3Rpb24zEjYKFnBhY2tldFBlcmlvZFNlbGVjdGlvbjMYCSABKA1SFnBhY2tldFBlcmlvZFNlbGVjdGlvbjMSMAoTc2lsZW5jZVN1cHByZXNzaW9uMxgKIAEoDVITc2lsZW5jZVN1cHByZXNzaW9uMxIoCg9jb2RlY1NlbGVjdGlvbjQYCyABKA1SD2NvZGVjU2VsZWN0aW9uNBI2ChZwYWNrZXRQZXJpb2RTZWxlY3Rpb240GAwgASgNUhZwYWNrZXRQZXJpb2RTZWxlY3Rpb240EjAKE3NpbGVuY2VTdXBwcmVzc2lvbjQYDSABKA1SE3NpbGVuY2VTdXBwcmVzc2lvbjQSGAoHb29iRHRtZhgOIAEoDVIHb29iRHRtZiLzAgoTVm9pY2VTZXJ2aWNlUHJvZmlsZRIqChBhbm5vdW5jZW1lbnRUeXBlGAEgASgNUhBhbm5vdW5jZW1lbnRUeXBlEiIKDGppdHRlclRhcmdldBgCIAEoDVIMaml0dGVyVGFyZ2V0EigKD2ppdHRlckJ1ZmZlck1heBgDIAEoDVIPaml0dGVyQnVmZmVyTWF4EiQKDWVjaG9DYW5jZWxJbmQYBCABKAhSDWVjaG9DYW5jZWxJbmQSMAoTcHN0blByb3RvY29sVmFyaWFudBgFIAEoDVITcHN0blByb3RvY29sVmFyaWFudBIoCg9kdG1mRGlnaXRMZXZlbHMYBiABKA1SD2R0bWZEaWdpdExldmVscxIsChFkdG1mRGlnaXREdXJhdGlvbhgHIAEoDVIRZHRtZkRpZ2l0RHVyYXRpb24SMgoUaG9va0ZsYXNoTWluaW11bVRpbWUYCCABKA1SFGhvb2tGbGFzaE1pbmltdW1UaW1lIvgBCgpSdHBQcm9maWxlEiIKDGxvY2FsUG9ydE1pbhgBIAEoDVIMbG9jYWxQb3J0TWluEiIKDGxvY2FsUG9ydE1heBgCIAEoDVIMbG9jYWxQb3J0TWF4EhoKCGRzY3BNYXJrGAMgASgJUghkc2NwTWFyaxIoCg9waWdneUJhY2tFdmVudHMYBCABKA1SD3BpZ2d5QmFja0V2ZW50cxIeCgp0b25lRXZlbnRzGAUgASgNUgp0b25lRXZlbnRzEh4KCmR0bWZFdmVudHMYBiABKA1SCmR0bWZFdmVudHMSHAoJY2FzRXZlbnRzGAcgASgNUgljYXNFdmVudHMiwwIKC1BwdHBQb3RzVW5pEhAKA2FyYxgBIAEoCVIDYXJjEiAKC2FyY0ludGVydmFsGAIgASgJUgthcmNJbnRlcnZhbBIcCglpbXBlZGFuY2UYAyABKA1SCWltcGVkYW5jZRIqChB0cmFuc21pc3Npb25QYXRoGAQgASgNUhB0cmFuc21pc3Npb25QYXRoEhYKBnJ4R2FpbhgFIAEoEVIGcnhHYWluEhYKBnR4R2FpbhgGIAEoEVIGdHhHYWluEioKEHBvdHNIb2xkT3ZlclRpbWUYByABKA1SEHBvdHNIb2xkT3ZlclRpbWUSLgoSbm9taW5hbEZlZWRWb2x0YWdlGAggASgNUhJub21pbmFsRmVlZFZvbHRhZ2USKgoQbG9zc09mU29mdFN3aXRjaBgJIAEoDVIQbG9zc09mU29mdFN3aXRjaCLLAwoJU2lwQ29uZmlnEkIKC3NpcFVzZXJEYXRhGAEgASgLMiAudm9pcF9zeXN0ZW1fcHJvZmlsZS5TaXBVc2VyRGF0YVILc2lwVXNlckRhdGESSwoOc2lwQWdlbnRDb25maWcYAiABKAsyIy52b2lwX3N5c3RlbV9wcm9maWxlLlNpcEFnZW50Q29uZmlnUg5zaXBBZ2VudENvbmZpZxJOCg9uZXR3b3JrRGlhbFBsYW4YAyABKAsyJC52b2lwX3N5c3RlbV9wcm9maWxlLk5ldHdvcmtEaWFsUGxhblIPbmV0d29ya0RpYWxQbGFuEmMKFnZvaXBGZWF0dXJlQWNjZXNzQ29kZXMYBCABKAsyKy52b2lwX3N5c3RlbV9wcm9maWxlLlZvaXBGZWF0dXJlQWNjZXNzQ29kZXNSFnZvaXBGZWF0dXJlQWNjZXNzQ29kZXMSeAoddm9pcEFwcGxpY2F0aW9uU2VydmljZVByb2ZpbGUYBSABKAsyMi52b2lwX3N5c3RlbV9wcm9maWxlLlZvaXBBcHBsaWNhdGlvblNlcnZpY2VQcm9maWxlUh12b2lwQXBwbGljYXRpb25TZXJ2aWNlUHJvZmlsZSLTAgoLU2lwVXNlckRhdGESIAoLdXNlclBhcnRBb3IYASABKAlSC3VzZXJQYXJ0QW9yEloKE3VzZXJuYW1lQW5kUGFzc3dvcmQYAiABKAsyKC52b2lwX3N5c3RlbV9wcm9maWxlLlVzZXJuYW1lQW5kUGFzc3dvcmRSE3VzZXJuYW1lQW5kUGFzc3dvcmQSNAoVdm9pY2VtYWlsU2VydmVyU2lwVXJpGAMgASgJUhV2b2ljZW1haWxTZXJ2ZXJTaXBVcmkSUAojdm9pY2VtYWlsU3Vic2NyaXB0aW9uRXhwaXJhdGlvblRpbWUYBCABKAVSI3ZvaWNlbWFpbFN1YnNjcmlwdGlvbkV4cGlyYXRpb25UaW1lEiIKDHJlbGVhc2VUaW1lchgFIAEoBVIMcmVsZWFzZVRpbWVyEhoKCHJvaFRpbWVyGAYgASgFUghyb2hUaW1lciKjBAoOU2lwQWdlbnRDb25maWcSMgoUb3V0Ym91bmRQcm94eUFkZHJlc3MYASABKAlSFG91dGJvdW5kUHJveHlBZGRyZXNzEiQKDXByaW1hcnlTaXBEbnMYAiABKAlSDXByaW1hcnlTaXBEbnMSKAoPc2Vjb25kYXJ5U2lwRG5zGAMgASgJUg9zZWNvbmRhcnlTaXBEbnMSJAoNc2lwUmVnRXhwVGltZRgEIAEoBVINc2lwUmVnRXhwVGltZRI0ChVzaXBSZXJlZ0hlYWRTdGFydFRpbWUYBSABKAVSFXNpcFJlcmVnSGVhZFN0YXJ0VGltZRIiCgxTaXBSZWdpc3RyYXIYBiABKAlSDFNpcFJlZ2lzdHJhchIeCgpzb2Z0U3dpdGNoGAcgASgJUgpzb2Z0U3dpdGNoElEKEHNpcFJlc3BvbnNlVGFibGUYCCABKAsyJS52b2lwX3N5c3RlbV9wcm9maWxlLlNpcFJlc3BvbnNlVGFibGVSEHNpcFJlc3BvbnNlVGFibGUSOgoYc2lwT3B0aW9uVHJhbnNtaXRDb250cm9sGAkgASgIUhhzaXBPcHRpb25UcmFuc21pdENvbnRyb2wSIgoMc2lwVXJpRm9ybWF0GAogASgJUgxzaXBVcmlGb3JtYXQSOgoYcmVkdW5kYW50U2lwQWdlbnRQb2ludGVyGAsgASgJUhhyZWR1bmRhbnRTaXBBZ2VudFBvaW50ZXIi5QEKD05ldHdvcmtEaWFsUGxhbhIwChNjcml0aWNhbERpYWxUaW1lb3V0GAEgASgNUhNjcml0aWNhbERpYWxUaW1lb3V0Ei4KEnBhcnRpYWxEaWFsVGltZW91dBgCIAEoDVIScGFydGlhbERpYWxUaW1lb3V0EiYKDmRpYWxQbGFuRm9ybWF0GAMgASgNUg5kaWFsUGxhbkZvcm1hdBJICg1kaWFsUGxhblRhYmxlGAQgASgLMiIudm9pcF9zeXN0ZW1fcHJvZmlsZS5EaWFsUGxhblRhYmxlUg1kaWFsUGxhblRhYmxlIkEKE1VzZXJuYW1lQW5kUGFzc3dvcmQSKgoQdmFsaWRhdGlvblNjaGVtZRgBIAEoBVIQdmFsaWRhdGlvblNjaGVtZSJyChBTaXBSZXNwb25zZVRhYmxlEigKD3NpcFJlc3BvbnNlQ29kZRgBIAEoCVIPc2lwUmVzcG9uc2VDb2RlEhIKBHRvbmUYAiABKAlSBHRvbmUSIAoLdGV4dE1lc3NhZ2UYAyABKAlSC3RleHRNZXNzYWdlIqEBCg1EaWFsUGxhblRhYmxlEh4KCmRpYWxQbGFuSWQYASABKA1SCmRpYWxQbGFuSWQSFgoGYWN0aW9uGAIgASgNUgZhY3Rpb24SJAoNZGlhbFBsYW5Ub2tlbhgDIAEoCVINZGlhbFBsYW5Ub2tlbhIyChRkaWFsUGxhblRhYmxlTWF4U2l6ZRgEIAEoDVIUZGlhbFBsYW5UYWJsZU1heFNpemUi0gQKFlZvaXBGZWF0dXJlQWNjZXNzQ29kZXMSLAoRY2FuY2VsQ2FsbFdhaXRpbmcYASABKAlSEWNhbmNlbENhbGxXYWl0aW5nEhoKCGNhbGxIb2xkGAIgASgJUghjYWxsSG9sZBIaCghjYWxsUGFyaxgDIAEoCVIIY2FsbFBhcmsSKgoQY2FsbGVySWRBY3RpdmF0ZRgEIAEoCVIQY2FsbGVySWRBY3RpdmF0ZRIuChJjYWxsZXJJZERlYWN0aXZhdGUYBSABKAlSEmNhbGxlcklkRGVhY3RpdmF0ZRI2ChZkb05vdERpc3R1cmJBY3RpdmF0aW9uGAYgASgJUhZkb05vdERpc3R1cmJBY3RpdmF0aW9uEjoKGGRvTm90RGlzdHVyYkRlYWN0aXZhdGlvbhgHIAEoCVIYZG9Ob3REaXN0dXJiRGVhY3RpdmF0aW9uEjQKFWRvTm90RGlzdHVyYlBpbkNoYW5nZRgIIAEoCVIVZG9Ob3REaXN0dXJiUGluQ2hhbmdlEjYKFmVtZXJnZW5jeVNlcnZpY2VOdW1iZXIYCSABKAlSFmVtZXJnZW5jeVNlcnZpY2VOdW1iZXISKAoPaW50ZXJjb21TZXJ2aWNlGAogASgJUg9pbnRlcmNvbVNlcnZpY2USNgoWdW5hdHRlbmRlZENhbGxUcmFuc2ZlchgLIAEoCVIWdW5hdHRlbmRlZENhbGxUcmFuc2ZlchIyChRhdHRlbmRlZENhbGxUcmFuc2ZlchgMIAEoCVIUYXR0ZW5kZWRDYWxsVHJhbnNmZXIilwQKHVZvaXBBcHBsaWNhdGlvblNlcnZpY2VQcm9maWxlEiAKC2NpZEZlYXR1cmVzGAEgASgNUgtjaWRGZWF0dXJlcxIwChNjYWxsV2FpdGluZ0ZlYXR1cmVzGAIgASgNUhNjYWxsV2FpdGluZ0ZlYXR1cmVzEkYKHmNhbGxQcm9ncmVzc09yVHJhbnNmZXJGZWF0dXJlcxgDIAEoDVIeY2FsbFByb2dyZXNzT3JUcmFuc2ZlckZlYXR1cmVzEjoKGGNhbGxQcmVzZW50YXRpb25GZWF0dXJlcxgEIAEoDVIYY2FsbFByZXNlbnRhdGlvbkZlYXR1cmVzEjIKFGRpcmVjdENvbm5lY3RGZWF0dXJlGAUgASgNUhRkaXJlY3RDb25uZWN0RmVhdHVyZRI4ChdkaXJlY3RDb25uZWN0VXJpUG9pbnRlchgGIAEoCVIXZGlyZWN0Q29ubmVjdFVyaVBvaW50ZXISPgoaYnJpZGdlZExpbmVBZ2VudFVyaVBvaW50ZXIYByABKAlSGmJyaWRnZWRMaW5lQWdlbnRVcmlQb2ludGVyEkAKG2NvbmZlcmVuY2VGYWN0b3J5VXJpUG9pbnRlchgIIAEoCVIbY29uZmVyZW5jZUZhY3RvcnlVcmlQb2ludGVyEi4KEmRpYWxUb25lRGVsYXlUaW1lchgJIAEoDVISZGlhbFRvbmVEZWxheVRpbWVyQmYKJ29yZy5vcGVuY29yZC52b2x0aGEudm9pcF9zeXN0ZW1fcHJvZmlsZVo7Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvaXBfc3lzdGVtX3Byb2ZpbGVKij4KBxIFDgDEAQEK8QQKAQwSAw4AEjLmBCBDb3B5cmlnaHQgMjAxOC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhl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EgIFARIEwAEJIAoNCgUEEgIFAxIEwAEjJAoMCgQEEgIGEgTBAQIoCg0KBQQSAgYFEgTBAQIICg0KBQQSAgYBEgTBAQkjCg0KBQQSAgYDEgTBASYnCgwKBAQSAgcSBMIBAikKDQoFBBICBwUSBMIBAggKDQoFBBICBwESBMIBCSQKDQoFBBICBwMSBMIBJygKDAoEBBICCBIEwwECIAoNCgUEEgIIBRIEwwECCAoNCgUEEgIIARIEwwEJGwoNCgUEEgIIAxIEwwEeH2IGcHJvdG8zCpoPCiV2b2x0aGFfcHJvdG9zL3ZvaXBfdXNlcl9wcm9maWxlLnByb3RvEhF2b2lwX3VzZXJfcHJvZmlsZRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byJ4ChZWb2lwVXNlclByb2ZpbGVSZXF1ZXN0EhAKA2tleRgBIAEoCVIDa2V5EkwKD3ZvaXBVc2VyUHJvZmlsZRgCIAEoCzIiLnZvaXBfdXNlcl9wcm9maWxlLlZvaXBVc2VyUHJvZmlsZVIPdm9pcFVzZXJQcm9maWxlIv0BCg9Wb2lwVXNlclByb2ZpbGUSMgoUdm9pcFN5c3RlbVByb2ZpbGVLZXkYASABKAlSFHZvaXBTeXN0ZW1Qcm9maWxlS2V5EhoKCHVzZXJuYW1lGAIgASgJUgh1c2VybmFtZRIaCghwYXNzd29yZBgDIAEoCVIIcGFzc3dvcmQSFgoGZG9tYWluGAQgASgJUgZkb21haW4SFAoFcHJveHkYBSABKAlSBXByb3h5EhIKBHBvcnQYBiABKA1SBHBvcnQSJgoOc2lwRGlzcGxheU5hbWUYByABKAlSDnNpcERpc3BsYXlOYW1lEhQKBXJlYWxtGAggASgJUgVyZWFsbUJiCiVvcmcub3BlbmNvcmQudm9sdGhhLnZvaXBfdXNlcl9wcm9maWxlWjlnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9pcF91c2VyX3Byb2ZpbGVK2QoKBhIEDgAmAQrxBAoBDBIDDgASMuYEIENvcHlyaWdodCAyMDE4LTIwMjQgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24gKE9ORikgYW5kIHRoZSBPTkYgQ29udHJpYnV0b3JzCgogTGljZW5zZWQgdW5kZXIg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UgdjcmVhdGVkEiQKDmxhc3Rfc3luY190aW1lGAMgASgJUgxsYXN0U3luY1RpbWUSIgoNbWliX2RhdGFfc3luYxgEIAEoDVILbWliRGF0YVN5bmMSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhIsCgdjbGFzc2VzGAYgAygLMhIub21jaS5NaWJDbGFzc0RhdGFSB2NsYXNzZXMSPgoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzITLm9tY2kuTWFuYWdlZEVudGl0eVIPbWFuYWdlZEVudGl0aWVzEjYKDW1lc3NhZ2VfdHlwZXMYCCADKAsyES5vbWNpLk1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiLgoRT3Blbk9tY2lFdmVudFR5cGUiGQoFVHlwZXMSEAoMc3RhdGVfY2hhbmdlEAAiVgoNT3Blbk9tY2lFdmVudBIxCgR0eXBlGAEgASgOMh0ub21jaS5PcGVuT21jaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29tY2lKxxEKBhIEDwBJAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgEIEgMRAEMKCQoCCAsSAxEAQwoICgEIEgMSADEKCQoCCAESAxIAMQoICgECEgMUAA0KCgoCBAASBBYAGQEKCgoDBAABEgMWCBgKCwoEBAACABIDFwQbCgwKBQQAAgAFEgMXBAoKDAoFBAACAAESAxcLDwoMCgUEAAIAAxIDFxkaCgsKBAQAAgESAxgEGwoMCgUEAAIBBRIDGAQKCgwKBQQAAgEBEgMYCxAKDAoFBAACAQMSAxgZGgoKCgIEARIEGwAhAQoKCgMEAQESAxsIFwoLCgQEAQIAEgMcBCAKDAoFBAECAAUSAxwECgoMCgUEAQIAARIDHAsWCgwKBQQBAgADEgMcHh8KCwoEBAECARIDHQQgCgwKBQQBAgEFEgMdBAoKDAoFBAECAQESAx0LEgoMCgUEAQIBAxIDHR4fCgsKBAQBAgISAx4EIAoMCgUEAQICBRIDHgQKCgwKBQQBAgIBEgMeCxMKDAoFBAECAgMSAx4eHwoLCgQEAQIDEgMgBC0KDAoFBAECAwQSAyAEDAoMCgUEAQIDBhIDIA0dCgwKBQQBAgMBEgMgHigKDAoFBAECAwMSAyArLAoKCgIEAhIEIwAnAQoKCgMEAgESAyMIFAoLCgQEAgIAEgMkBCAKDAoFBAICAAUSAyQECgoMCgUEAgIAARIDJAsTCgwKBQQCAgADEgMkHh8KCwoEBAICARIDJgQqCgwKBQQCAgEEEgMmBAwKDAoFBAICAQYSAyYNHAoMCgUEAgIBARIDJh0mCgwKBQQCAgEDEgMmKCkKCgoCBAMSBCkALAEKCgoDBAMBEgMpCBUKCwoEBAMCABIDKgQZCgwKBQQDAgAFEgMqBAoKDAoFBAMCAAESAyoLEwoMCgUEAwIAAxIDKhcYCgsKBAQDAgESAysEGQoMCgUEAwIBBRIDKwQKCgwKBQQDAgEBEgMrCw8KDAoFBAMCAQMSAysXGAoKCgIEBBIELgAwAQoKCgMEBAESAy4IEwoLCgQEBAIAEgMvBBwKDAoFBAQCAAUSAy8ECgoMCgUEBAIAARIDLwsXCgwKBQQEAgADEgMvGhsKCgoCBAUSBDIAPQEKCgoDBAUBEgMyCBUKCwoEBAUCABIDMwQgCgwKBQQFAgAFEgMzBAoKDAoFBAUCAAESAzMLFAoMCgUEBQIAAxIDMx4fCgsKBAQFAgESAzQEIAoMCgUEBQIBBRIDNAQKCgwKBQQFAgEBEgM0CxIKDAoFBAUCAQMSAzQeHwoLCgQEBQICEgM1BCAKDAoFBAUCAgUSAzUECgoMCgUEBQICARIDNQsZCgwKBQQFAgIDEgM1Hh8KCwoEBAUCAxIDNgQgCgwKBQQFAgMFEgM2BAoKDAoFBAUCAwESAzYLGAoMCgUEBQIDAxIDNh4fCgsKBAQFAgQSAzcEIAoMCgUEBQIEBRIDNwQKCgwKBQQFAgQBEgM3CxIKDAoFBAUCBAMSAzceHwoLCgQEBQIFEgM5BCYKDAoFBAUCBQQSAzkEDAoMCgUEBQIFBhIDOQ0ZCgwKBQQFAgUBEgM5GiEKDAoFBAUCBQMSAzkkJQoLCgQEBQIGEgM7BDAKDAoFBAUCBgQSAzsEDAoMCgUEBQIGBhIDOw0aCgwKBQQFAgYBEgM7GysKDAoFBAUCBgMSAzsuLwoLCgQEBQIHEgM8BCsKDAoFBAUCBwQSAzwEDAoMCgUEBQIHBhIDPA0YCgwKBQQFAgcBEgM8GSYKDAoFBAUCBwMSAzwpKgoKCgIEBhIEPwBDAQoKCgMEBgESAz8IGQoMCgQEBgQAEgRABEIFCgwKBQQGBAABEgNACQ4KQAoGBAYEAAIAEgNBCBkiMSBBIHN0YXRlIG1hY2hpbmUgaGFzIHRyYW5zaXRpb25lZCB0byBhIG5ldyBzdGF0ZQoKDgoHBAYEAAIAARIDQQgUCg4KBwQGBAACAAISA0EXGAoKCgIEBxIERQBJAQoKCgMEBwESA0UIFQoLCgQEBwIAEgNGBCUKDAoFBAcCAAYSA0YEGwoMCgUEBwIAARIDRhwgCgwKBQQHAgADEgNGIyQKLgoEBAcCARIDSAQUIiEgYXNzb2NpYXRlZCBkYXRhLCBpbiBqc29uIGZvcm1hdAoKDAoFBAcCAQUSA0gECgoMCgUEBwIBARIDSAsPCgwKBQQHAgEDEgNIEhNiBnByb3RvMwqoGgohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvEgRvbWNpIj4KEkFsYXJtQXR0cmlidXRlRGF0YRISCgRuYW1lGAEgASgJUgRuYW1lEhQKBXZhbHVlGAIgASgJUgV2YWx1ZSKkAQoRQWxhcm1JbnN0YW5jZURhdGESHwoLaW5zdGFuY2VfaWQYASABKA1SCmluc3RhbmNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIaCghtb2RpZmllZBgDIAEoCVIIbW9kaWZpZWQSOAoKYXR0cmlidXRlcxgEIAMoCzIYLm9tY2kuQWxhcm1BdHRyaWJ1dGVEYXRhUgphdHRyaWJ1dGVzImIKDkFsYXJtQ2xhc3NEYXRhEhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEjUKCWluc3RhbmNlcxgCIAMoCzIXLm9tY2kuQWxhcm1JbnN0YW5jZURhdGFSCWluc3RhbmNlcyJDChJBbGFybU1hbmFnZWRFbnRpdHkSGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSEgoEbmFtZRgCIAEoCVIEbmFtZSI1ChBBbGFybU1lc3NhZ2VUeXBlEiEKDG1lc3NhZ2VfdHlwZRgBIAEoDVILbWVzc2FnZVR5cGUi6gIKD0FsYXJtRGV2aWNlRGF0YRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSLgoTbGFzdF9hbGFybV9zZXF1ZW5jZRgDIAEoDVIRbGFzdEFsYXJtU2VxdWVuY2USJAoObGFzdF9zeW5jX3RpbWUYBCABKAlSDGxhc3RTeW5jVGltZRIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEi4KB2NsYXNzZXMYBiADKAsyFC5vbWNpLkFsYXJtQ2xhc3NEYXRhUgdjbGFzc2VzEkMKEG1hbmFnZWRfZW50aXRpZXMYByADKAsyGC5vbWNpLkFsYXJtTWFuYWdlZEVudGl0eVIPbWFuYWdlZEVudGl0aWVzEjsKDW1lc3NhZ2VfdHlwZXMYCCADKAsyFi5vbWNpLkFsYXJtTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyI/ChZBbGFybU9wZW5PbWNpRXZlbnRUeXBlIiUKEU9wZW5PbWNpRXZlbnRUeXBlEhAKDHN0YXRlX2NoYW5nZRAAImwKEkFsYXJtT3Blbk9tY2lFdmVudBJCCgR0eXBlGAEgASgOMi4ub21jaS5BbGFybU9wZW5PbWNpRXZlbnRUeXBlLk9wZW5PbWNpRXZlbnRUeXBlUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb21jaUrHEQoGEgQPAEsBCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQwoJCgIICxIDEQBDCggK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bGUucHJvdG8aJXZvbHRoYV9wcm90b3Mvdm9pcF91c2VyX3Byb2ZpbGUucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8iXQoMQ29yZUluc3RhbmNlEh8KC2luc3RhbmNlX2lkGAEgASgJUgppbnN0YW5jZUlkEiwKBmhlYWx0aBgCIAEoCzIULmhlYWx0aC5IZWFsdGhTdGF0dXNSBmhlYWx0aCI7Cg1Db3JlSW5zdGFuY2VzEioKBWl0ZW1zGAEgAygLMhQudm9sdGhhLkNvcmVJbnN0YW5jZVIFaXRlbXMiwAMKBlZvbHRoYRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEiwKCGFkYXB0ZXJzGAIgAygLMhAuYWRhcHRlci5BZGFwdGVyUghhZGFwdGVycxJGCg9sb2dpY2FsX2RldmljZXMYAyADKAsyHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlUg5sb2dpY2FsRGV2aWNlcxIoCgdkZXZpY2VzGAQgAygLMg4uZGV2aWNlLkRldmljZVIHZGV2aWNlcxI1CgxkZXZpY2VfdHlwZXMYBSADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVILZGV2aWNlVHlwZXMSNwoNZXZlbnRfZmlsdGVycxgHIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgxldmVudEZpbHRlcnMSPwoRb21jaV9taWJfZGF0YWJhc2UYHCADKAsyEy5vbWNpLk1pYkRldmljZURhdGFSD29tY2lNaWJEYXRhYmFzZRJFChNvbWNpX2FsYXJtX2RhdGFiYXNlGB0gAygLMhUub21jaS5BbGFybURldmljZURhdGFSEW9tY2lBbGFybURhdGFiYXNlSgQIBhAHMrs7Cg1Wb2x0aGFTZXJ2aWNlEkQKCUdldFZvbHRoYRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoOLnZvbHRoYS5Wb2x0aGEiD4LT5JMCCRIHL2FwaS92MRJdChFMaXN0Q29yZUluc3RhbmNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Db3JlSW5zdGFuY2VzIhmC0+STAhMSES9hcGkvdjEvaW5zdGFuY2VzElMKD0dldENvcmVJbnN0YW5jZRIKLmNvbW1vbi5JRBoULnZvbHRoYS5Db3JlSW5zdGFuY2UiHoLT5JMCGBIWL2FwaS92MS9pbnN0YW5jZXMve2lkfRJTCgxMaXN0QWRhcHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaES5hZGFwdGVyLkFkYXB0ZXJzIhiC0+STAhISEC9hcGkvdjEvYWRhcHRlcnMSbQoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gh4ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZXMiH4LT5JMCGRIXL2FwaS92MS9sb2dpY2FsX2RldmljZXMSYwoQR2V0TG9naWNhbERldmljZRIKLmNvbW1vbi5JRBodLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJuChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhwubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMSiAEKFEdldExvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBobLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0IjSC0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9Eo0BChdFbmFibGVMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEo8BChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjYiNC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2Rpc2FibGUSZAoWTGlzdExvZ2ljYWxEZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3MSgwEKHFVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93VGFibGUSHC5vcGVuZmxvd18xMy5GbG93VGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJyIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93czoBKhKEAQodVXBkYXRlTG9naWNhbERldmljZU1ldGVyVGFibGUSGy5vcGVuZmxvd18xMy5NZXRlck1vZFVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoIiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyczoBKhJnChdMaXN0TG9naWNhbERldmljZU1ldGVycxIKLmNvbW1vbi5JRBoTLm9wZW5mbG93XzEzLk1ldGVycyIrgtPkkwIlEiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVycxJ0ChtMaXN0TG9naWNhbERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIjCC0+STAioSKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSkwEKIVVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93R3JvdXBUYWJsZRIhLm9wZW5mbG93XzEzLkZsb3dHcm91cFRhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0iKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHM6ASoSTwoLTGlzdERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDy5kZXZpY2UuRGV2aWNlcyIXgtPkkwIREg8vYXBpL3YxL2RldmljZXMSTwoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmNvbW1vbi5JRHMiGYLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHMSVQoQUmVjb25jaWxlRGV2aWNlcxILLmNvbW1vbi5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGg4uZGV2aWNlLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEmIKEUZvcmNlRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiMqIS9hcGkvdjEvZGV2aWNlcy97aWR9L2ZvcmNlX2RlbGV0ZRJ4Cg1Eb3dubG9hZEltYWdlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI5iAIBgtPkkwIwIisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9OgEqEoUBChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI9iAIBgtPkkwI0EjIvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L3N0YXR1cxJ4ChBHZXRJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI2iAIBgtPkkwItEisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EmkKEkxpc3RJbWFnZURvd25sb2FkcxIKLmNvbW1vbi5JRBoWLmRldmljZS5JbWFnZURvd25sb2FkcyIviAIBgtPkkwImEiQvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMSewoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNogCAYLT5JMCLSorL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRKLAQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV91cGRhdGU6ASoSiQEKEVJldmVydEltYWdlVXBkYXRlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJGiAIBgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3JldmVydDoBKhKIAQoVRG93bmxvYWRJbWFnZVRvRGV2aWNlEiIuZGV2aWNlLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLoLT5JMCKBImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9kb3dubG9hZF9pbWFnZXMSdwoOR2V0SW1hZ2VTdGF0dXMSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9pbWFnZXNfc3RhdHVzEokBChlBYm9ydEltYWdlVXBncmFkZVRvRGV2aWNlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWJvcnRfdXBncmFkZV9pbWFnZXMSVgoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEuZGV2aWNlLk9udUltYWdlcyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9vbnVfaW1hZ2VzEnsKDUFjdGl2YXRlSW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiMYLT5JMCKyImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hY3RpdmF0ZV9pbWFnZXM6ASoSdwoLQ29tbWl0SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiL4LT5JMCKSIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9jb21taXRfaW1hZ2VzOgEqElAKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgouY29tbW9uLklEGhEuZGV2aWNlLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJVCg9MaXN0RGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93cxJlChRMaXN0RGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiKILT5JMCIhIgL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSXAoPTGlzdERldmljZVR5cGVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZGV2aWNlLkRldmljZVR5cGVzIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlX3R5cGVzElIKDUdldERldmljZVR5cGUSCi5jb21tb24uSUQaEi5kZXZpY2UuRGV2aWNlVHlwZSIhgtPkkwIbEhkvYXBpL3YxL2RldmljZV90eXBlcy97aWR9EkYKEFN0cmVhbVBhY2tldHNPdXQSFi5vcGVuZmxvd18xMy5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBEkUKEFJlY2VpdmVQYWNrZXRzSW4SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS5vcGVuZmxvd18xMy5QYWNrZXRJbiIAMAESSwoTUmVjZWl2ZUNoYW5nZUV2ZW50cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLm9wZW5mbG93XzEzLkNoYW5nZUV2ZW50IgAwARJdChFDcmVhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiIILT5JMCGiIVL2FwaS92MS9ldmVudF9maWx0ZXJzOgEqElUKDkdldEV2ZW50RmlsdGVyEgouY29tbW9uLklEGhMuZXZlbnQuRXZlbnRGaWx0ZXJzIiKC0+STAhwSGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9EmIKEVVwZGF0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaEi5ldmVudC5FdmVudEZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfToBKhJjChFEZWxldGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9El4KEExpc3RFdmVudEZpbHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5ldmVudC5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLmRldmljZS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhguZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSTQoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEqEl4KC0dldEV4dFZhbHVlEhkuZXh0ZW5zaW9uLlZhbHVlU3BlY2lmaWVyGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcyIbgtPkkwIVEhMvYXBpL3YxL0dldEV4dFZhbHVlElcKC1NldEV4dFZhbHVlEhMuZXh0ZW5zaW9uLlZhbHVlU2V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhuC0+STAhUSEy9hcGkvdjEvU2V0RXh0VmFsdWUSZAoTU3RhcnRPbWNpVGVzdEFjdGlvbhIVLm9tY2kuT21jaVRlc3RSZXF1ZXN0GhIub21jaS5UZXN0UmVzcG9uc2UiIoLT5JMCHCIXL2FwaS92MS9zdGFydF9vbWNpX3Rlc3Q6ASoShQEKFFB1dFZvaXBTeXN0ZW1Qcm9maWxlEi0udm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwU3lzdGVtUHJvZmlsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJoLT5JMCICIbL2FwaS92MS92b2lwX3N5c3RlbV9wcm9maWxlOgEqEnAKF0RlbGV0ZVZvaXBTeXN0ZW1Qcm9maWxlEgsuY29tbW9uLktleRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqKigvYXBpL3YxL3ZvaXBfc3lzdGVtX3Byb2ZpbGUve2tleX0vZGVsZXRlEn0KElB1dFZvaXBVc2VyUHJvZmlsZRIpLnZvaXBfdXNlcl9wcm9maWxlLlZvaXBVc2VyUHJvZmlsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHiIZL2FwaS92MS92b2lwX3VzZXJfcHJvZmlsZToBKhJsChVEZWxldGVWb2lwVXNlclByb2ZpbGUSCy5jb21tb24uS2V5GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAigqJi9hcGkvdjEvdm9pcF91c2VyX3Byb2ZpbGUve2tleX0vZGVsZXRlEloKEERpc2FibGVPbnVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHCIaL2FwaS92MS9kaXNhYmxlX29udV9kZXZpY2USWAoPRW5hYmxlT251RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiGC0+STAhsiGS9hcGkvdjEvZW5hYmxlX29udV9kZXZpY2USfAoWRGlzYWJsZU9udVNlcmlhbE51bWJlchIfLmRldmljZS5PbnVTZXJpYWxOdW1iZXJPbk9MVFBvbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjIiEvYXBpL3YxL2Rpc2FibGVfb251X3NlcmlhbF9udW1iZXISegoVRW5hYmxlT251U2VyaWFsTnVtYmVyEh8uZGV2aWNlLk9udVNlcmlhbE51bWJlck9uT0xUUG9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiiC0+STAiIiIC9hcGkvdjEvZW5hYmxlX29udV9zZXJpYWxfbnVtYmVyElsKDFVwZGF0ZURldmljZRIULmRldmljZS5VcGRhdGVEZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFyIVL2FwaS92MS91cGRhdGVfZGV2aWNlQmwKE29yZy5vcGVuY29yZC52b2x0aGFCDFZvbHRoYVByb3Rvc1ouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvbHRoYaoCFk9wZW5jb3JkLlZvbHRoYS5Wb2x0aGFK4G0KBxIFBgCHBQEKXAoBDBIDBgASMlIKIFRvcC1sZXZlbCBWb2x0aGEgQVBJIGRlZmluaXRpb24KCiBGb3IgZGV0YWlscywgc2VlIGluZGl2aWR1YWwgZGVmaW5pdGlvbiBmaWxlcy4KCggKAQgSAwgARQoJCgIICxIDCABFCggKAQISAwoADwoJCgIDABIDDAAmCgkKAgMBEgMNACUKCQoCAwISAw8AKwoJCgIKABIDDwcNCgkKAgMDEgMQACQKCQoCAwQSAxEALAoJCgIDBRIDEgAkCgkKAgMGEgMTACUKCQoCAwcSAxQAKQoJCgIDCBIDFQAkCgkKAgMJEgMWACgKCQoCAwoSAxcAMQoJCgIDCxIDGAAvCgkKAgMMEgMaACkKCQoCAw0SAxsAKwoJCgIDDhIDHAAnCggKAQgSAx4ALAoJCgIIARIDHgAsCggKAQgSAx8ALQoJCgIICBIDHwAtCggKAQgSAyAAMwoJCgIIJRIDIAAzCogBCgIEABIEJAAqARp8IENvcmVJbnN0YW5jZSByZXByZXNlbnRzIGEgY29yZSBpbnN0YW5jZS4gIEl0IGlzIGRhdGEgaGVsZCBpbiBtZW1vcnkgd2hlbiBhIGNvcmUKIGlzIHJ1bm5pbmcuICBUaGlzIGRhdGEgaXMgbm90IHBlcnNpc3RlbnQuCgoKCgMEAAES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BoIFCIQFCgoTCgkGAAJIBLDKvCISBoIFCIQFClACYgZwcm90bzMKtjYKIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvEgxjb3JlX2FkYXB0ZXIaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGh12b2x0aGFfcHJvdG9zL29tY2lfdGVzdC5wcm90byJuChNBZGFwdGVyUmVnaXN0cmF0aW9uEioKB2FkYXB0ZXIYASABKAsyEC5hZGFwdGVyLkFkYXB0ZXJSB2FkYXB0ZXISKwoGZFR5cGVzGAIgASgLMhMuZGV2aWNlLkRldmljZVR5cGVzUgZkVHlwZXMiogEKEUNoaWxkRGV2aWNlRmlsdGVyEhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSIwoNc2VyaWFsX251bWJlchgCIAEoCVIMc2VyaWFsTnVtYmVyEhoKBm9udV9pZBgDIAEoDUgAUgVvbnVJZIgBARIkCg5wYXJlbnRfcG9ydF9ubxgEIAEoDVIMcGFyZW50UG9ydE5vQgkKB19vbnVfaWQicQoKUG9ydEZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSMgoJcG9ydF90eXBlGAMgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSCHBvcnRUeXBlIvgBCg9EZXZpY2VEaXNjb3ZlcnkSGwoJcGFyZW50X2lkGAEgASgJUghwYXJlbnRJZBIkCg5wYXJlbnRfcG9ydF9ubxgCIAEoDVIMcGFyZW50UG9ydE5vEioKEWNoaWxkX2RldmljZV90eXBlGAMgASgJUg9jaGlsZERldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgEIAEoDVIJY2hhbm5lbElkEhsKCXZlbmRvcl9pZBgFIAEoCVIIdmVuZG9ySWQSIwoNc2VyaWFsX251bWJlchgGIAEoCVIMc2VyaWFsTnVtYmVyEhUKBm9udV9pZBgHIAEoDVIFb251SWQi0wEKEURldmljZVN0YXRlRmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQcGFyZW50X2RldmljZV9pZBgCIAEoCVIOcGFyZW50RGV2aWNlSWQSOQoLb3Blcl9zdGF0dXMYAyABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxI8Cgtjb25uX3N0YXR1cxgEIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUgpjb25uU3RhdHVzIrABCglQb3J0U3RhdGUSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIyCglwb3J0X3R5cGUYAiABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIIcG9ydFR5cGUSFwoHcG9ydF9ubxgDIAEoDVIGcG9ydE5vEjkKC29wZXJfc3RhdHVzGAQgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMikwEKD1BvcnRTdGF0ZUZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHBvcnRfdHlwZV9maWx0ZXIYAiABKA1SDnBvcnRUeXBlRmlsdGVyEjkKC29wZXJfc3RhdHVzGAQgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMiUwoIUGFja2V0SW4SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBISCgRwb3J0GAIgASgNUgRwb3J0EhYKBnBhY2tldBgDIAEoDFIGcGFja2V0IoMBCglQYWNrZXRPdXQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIkCg5lZ3Jlc3NfcG9ydF9ubxgCIAEoDVIMZWdyZXNzUG9ydE5vEjMKBnBhY2tldBgDIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UgZwYWNrZXQiQwoMRGV2aWNlUmVhc29uEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFgoGcmVhc29uGAIgASgJUgZyZWFzb24izgEKCUJ1bGtGbG93cxImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKAoFZmxvd3MYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFZmxvd3MSLwoGZ3JvdXBzGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IGZ3JvdXBzEj4KDWZsb3dfbWV0YWRhdGEYBCABKAsyGS5vcGVuZmxvd18xMy5GbG93TWV0YWRhdGFSDGZsb3dNZXRhZGF0YSLhAQoQSW5jcmVtZW50YWxGbG93cxImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USLgoFZmxvd3MYAiABKAsyGC5vcGVuZmxvd18xMy5GbG93Q2hhbmdlc1IFZmxvd3MSNQoGZ3JvdXBzGAMgASgLMh0ub3BlbmZsb3dfMTMuRmxvd0dyb3VwQ2hhbmdlc1IGZ3JvdXBzEj4KDWZsb3dfbWV0YWRhdGEYBCABKAsyGS5vcGVuZmxvd18xMy5GbG93TWV0YWRhdGFSDGZsb3dNZXRhZGF0YSJeCg1QbUNvbmZpZ3NJbmZvEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMAoKcG1fY29uZmlncxgCIAEoCzIRLmRldmljZS5QbUNvbmZpZ3NSCXBtQ29uZmlncyKIAQoQU3dpdGNoQ2FwYWJpbGl0eRIpCgRkZXNjGAEgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAIgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMiawoUSW1hZ2VEb3dubG9hZE1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEisKBWltYWdlGAIgASgLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSBWltYWdlImMKCE9NQ0lUZXN0EiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIvCgdyZXF1ZXN0GAIgASgLMhUub21jaS5PbWNpVGVzdFJlcXVlc3RSB3JlcXVlc3QidgoUU2ltdWxhdGVBbGFybU1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4uZGV2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eHRlbnNpb25zLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2V2ZW50cy5wcm90bzLyFQoOQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARI1CgtBZG9wdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOQoPUmVjb25jaWxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxEZWxldGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjcKDURpc2FibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlJlRW5hYmxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxSZWJvb3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlNlbGZUZXN0RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCChBHZXRPZnBEZXZpY2VJbmZvEg4uZGV2aWNlLkRldmljZRoeLmNvcmVfYWRhcHRlci5Td2l0Y2hDYXBhYmlsaXR5EjkKD0NoaWxkRGV2aWNlTG9zdBIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMgoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjMKC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoPVXBkYXRlRmxvd3NCdWxrEhcuY29yZV9hZGFwdGVyLkJ1bGtGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJSChhVcGRhdGVGbG93c0luY3JlbWVudGFsbHkSHi5jb3JlX2FkYXB0ZXIuSW5jcmVtZW50YWxGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJACg1TZW5kUGFja2V0T3V0EhcuY29yZV9hZGFwdGVyLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJFCg5VcGRhdGVQbUNvbmZpZxIbLmNvcmVfYWRhcHRlci5QbUNvbmZpZ3NJbmZvGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElMKEERvd25sb2FkT251SW1hZ2USIi5kZXZpY2UuRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJMChFHZXRPbnVJbWFnZVN0YXR1cxIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPChRBYm9ydE9udUltYWdlVXBncmFkZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRItCgxHZXRPbnVJbWFnZXMSCi5jb21tb24uSUQaES5kZXZpY2UuT251SW1hZ2VzEksKEEFjdGl2YXRlT251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USSQoOQ29tbWl0T251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USTwoNRG93bmxvYWRJbWFnZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESWAoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESUwoRUmV2ZXJ0SW1hZ2VVcGRhdGUSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBEjsKDVN0YXJ0T21jaVRlc3QSFi5jb3JlX2FkYXB0ZXIuT01DSVRlc3QaEi5vbWNpLlRlc3RSZXNwb25zZRJKCg1TaW11bGF0ZUFsYXJtEiIuY29yZV9hZGFwdGVyLlNpbXVsYXRlQWxhcm1NZXNzYWdlGhUuY29tbW9uLk9wZXJhdGlvblJlc3ASOwoNU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ej0KD1VuU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKC0dldEV4dFZhbHVlEiAuY29yZV9hZGFwdGVyLkdldEV4dFZhbHVlTWVzc2FnZRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMSRwoLU2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuU2V0RXh0VmFsdWVNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElUKDkdldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElUKDlNldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjoKEERpc2FibGVPbnVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjkKD0VuYWJsZU9udURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUQoWRGlzYWJsZU9udVNlcmlhbE51bWJlchIfLmRldmljZS5PbnVTZXJpYWxOdW1iZXJPbk9MVFBvbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJQChVFbmFibGVPbnVTZXJpYWxOdW1iZXISHy5kZXZpY2UuT251U2VyaWFsTnVtYmVyT25PTFRQb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPAoMVXBkYXRlRGV2aWNlEhQuZGV2aWNlLlVwZGF0ZURldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUJ0CiNvcmcub3BlbmNvcmQudm9sdGhhLmFkYXB0ZXJfc2VydmljZUIUVm9sdGhhQWRhcHRlclNlcnZpY2VaN2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9hZGFwdGVyX3NlcnZpY2VK3hYKBhIEAABcAQoICgEMEgMAABIKCAoBCBIDAgBOCgkKAggLEgMCAE4KCAoBCBIDAwA8CgkKAggBEgMDADwKCAoBCBIDBAA1CgkKAggIEgMEADUKCAoBAhIDBgAYCgkKAgMAEgMIACUKCQoCAwESAwkAJAoJCgIDAhIDCgAqCgkKAgMDEgMLACQKCQoCAwQSAwwAKAoJCgIDBRIDDQAkCgkKAgMGEgMOACQKCQoCAwcSAw8AJwoJCgIDCBIDEAAkClUKAgYAEgQTAFwBGkkgQWRhcHRlclNlcnZpY2UgaXMgYSBnUlBDIHNlcnZpY2UgdG8gc2VydmUgcmVxdWVzdHMgZnJvbSBWb2x0aGEgUldfQ29yZS4KCgoKAwYAARIDEwgWCpEBCgQGAAIAEgMWBFcagwEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYW4gQWRhcHRlclNlcnZpY2UgY2xpZW50IHRvIHZlcmlmeSBjb25uZWN0aXZpdHkKIHRvIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBBZGFwdGVyU2VydmljZSBzZXJ2aWNlCgoMCgUGAAIAARIDFggXCgwKBQYAAgAFEgMWGB4KDAoFBgACAAISAxYfMAoMCgUGAAIABhIDFjtBCgwKBQYAAgADEgMWQlUKFQoEBgACARIDGQRCGgggRGV2aWNlCgoMCgUGAAIBARIDGQgT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AgUCEgMWGBkKQQoGBAAEAAIGEgMYCCIaMiBTdGF0ZSB0byByZXByZXNlbnQgdGhhdCByZWNvbmNpbGUgaXMgaW4gcHJvZ3Jlc3MKCg4KBwQABAACBgESAxgIHQoOCgcEAAQAAgYCEgMYICEKPgoGBAAEAAIHEgMaCB8aLyBTdGF0ZSB0byByZXByZXNlbnQgdGhhdCByZWJvb3QgaXMgaW4gcHJvZ3Jlc3MKCg4KBwQABAACBwESAxoIGgoOCgcEAAQAAgcCEgMaHR4KCwoEBAACABIDHAQeCgwKBQQAAgAGEgMcBAkKDAoFBAACAAESAxwKGQoMCgUEAAIAAxIDHBwdYgZwcm90bzMK7RwKIXZvbHRoYV9wcm90b3MvY29yZV9zZXJ2aWNlcy5wcm90bxIMY29yZV9zZXJ2aWNlGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvMv0LCgtDb3JlU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKD1JlZ2lzdGVyQWRhcHRlchIhLmNvcmVfYWRhcHRlci5BZGFwdGVyUmVnaXN0cmF0aW9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERldmljZVVwZGF0ZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLUG9ydENyZWF0ZWQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJJChBQb3J0c1N0YXRlVXBkYXRlEh0uY29yZV9hZGFwdGVyLlBvcnRTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI0Cg5EZWxldGVBbGxQb3J0cxIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1HZXREZXZpY2VQb3J0EhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDC5kZXZpY2UuUG9ydBIsCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMSTAoRRGV2aWNlU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQQoURGV2aWNlUE1Db25maWdVcGRhdGUSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKE0NoaWxkRGV2aWNlRGV0ZWN0ZWQSHS5jb3JlX2FkYXB0ZXIuRGV2aWNlRGlzY292ZXJ5Gg4uZGV2aWNlLkRldmljZRI2ChBDaGlsZERldmljZXNMb3N0EgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjoKFENoaWxkRGV2aWNlc0RldGVjdGVkEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EicKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2USQQoOR2V0Q2hpbGREZXZpY2USHy5jb3JlX2FkYXB0ZXIuQ2hpbGREZXZpY2VGaWx0ZXIaDi5kZXZpY2UuRGV2aWNlEi4KD0dldENoaWxkRGV2aWNlcxIKLmNvbW1vbi5JRBoPLmRldmljZS5EZXZpY2VzEj4KDFNlbmRQYWNrZXRJbhIWLmNvcmVfYWRhcHRlci5QYWNrZXRJbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChJEZXZpY2VSZWFzb25VcGRhdGUSGi5jb3JlX2FkYXB0ZXIuRGV2aWNlUmVhc29uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKD1BvcnRTdGF0ZVVwZGF0ZRIXLmNvcmVfYWRhcHRlci5Qb3J0U3RhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOwoVUmVjb25jaWxlQ2hpbGREZXZpY2VzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek0KHkdldENoaWxkRGV2aWNlV2l0aFByb3h5QWRkcmVzcxIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzGg4uZGV2aWNlLkRldmljZRIzCghHZXRQb3J0cxIYLmNvcmVfYWRhcHRlci5Qb3J0RmlsdGVyGg0uZGV2aWNlLlBvcnRzEk4KE0NoaWxkcmVuU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTVXBkYXRlSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QmsKIG9yZy5vcGVuY29yZC52b2x0aGEuY29yZV9zZXJ2aWNlQhFWb2x0aGFDb3JlU2VydmljZVo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2NvcmVfc2VydmljZUqxDgoGEgQAAC4BCggKAQwSAwAAEgoICgEIEgMCAEsKCQoCCAsSAwIASwoICgEIEgMDADkKCQoCCAESAwMAOQoICgEIEgMEADIKCQoCCAgSAwQAMgoICgECEgMGABUKCQoCAwASAwgAJQoJCgIDARIDCQAqCgkKAgMCEgMKACQKCQoCAwMSAwsAJAoJCgIDBBIDDAAkCp8BCgIGABIEEAAuARqSASBUaGUgQ29yZVNlcnZpY2UgaXMgYSBnUlBDIHNlcnZpY2UgaW1wbGVtZW50ZWQgYnkgdGhlIFZvbHRoYSBSVy1Db3JlIGZvciB0aGUKIHNvbGUgcHVycG9zZSBvZiBzZXJ2aW5nIHJlcXVlc3RzL3VwZGF0ZXMgZnJvbSB0aGUgVm9sdGhhIGFkYXB0ZXJzLiAKCgoKAwYAARIDEAgTCokBCgQGAAIAEgMTBFcafCBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhIENvcmVTZXJ2aWNlIGNsaWVudCB0byB2ZXJpZnkgY29ubmVjdGl2aXR5CiB0byB0aGUgZ1JQQyBzZXJ2ZXIgaG9zdGluZyB0aGUgQ29yZVNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxMIFwoMCgUGAAIABRIDExgeCgwKBQYAAgACEgMTHzAKDAoFBgACAAYSAxM7QQoMCgUGAAIAAxIDE0JVCgsKBAYAAgESAxUIXwoMCgUGAAIBARIDFQwbCgwKBQYAAgECEgMVHT0KDAoFBgACAQMSAxVIXQoL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LnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeSK4AQoSVHJhZmZpY1NoYXBpbmdJbmZvEhAKA2NpchgBIAEoB1IDY2lyEhAKA2NicxgCIAEoB1IDY2JzEhAKA3BpchgDIAEoB1IDcGlyEhAKA3BicxgEIAEoB1IDcGJzEhAKA2dpchgFIAEoB1IDZ2lyEkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQinQIKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbxImCg90ZWNoX3Byb2ZpbGVfaWQYBSABKAdSDXRlY2hQcm9maWxlSWQiugEKEVRyYWZmaWNTY2hlZHVsZXJzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkUKDnRyYWZmaWNfc2NoZWRzGAMgAygLMh4udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJSDXRyYWZmaWNTY2hlZHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkiswEKEVdSZWREaXNjYXJkQ29uZmlnEjQKBWdyZWVuGAEgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjYKBnllbGxvdxgCIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgZ5ZWxsb3cSMAoDcmVkGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSA3JlZCLoAgoNRGlzY2FyZENvbmZpZxJCCg5kaXNjYXJkX3BvbGljeRgBIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5El4KGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIjLnRlY2hfcHJvZmlsZS5UYWlsRHJvcERpc2NhcmRDb25maWdIAFIVdGFpbERyb3BEaXNjYXJkQ29uZmlnEk4KEnJlZF9kaXNjYXJkX2NvbmZpZxgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSUQoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIfLnRlY2hfcHJvZmlsZS5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyKlAwoMVHJhZmZpY1F1ZXVlEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAhSDWFlc0VuY3J5cHRpb24SQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5EhoKCHByaW9yaXR5GAYgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkIKDmRpc2NhcmRfY29uZmlnGAkgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWciggIKDVRyYWZmaWNRdWV1ZXMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SQQoOdHJhZmZpY19xdWV1ZXMYBiADKAsyGi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlUg10cmFmZmljUXVldWVzEiYKD3RlY2hfcHJvZmlsZV9pZBgHIAEoB1INdGVjaFByb2ZpbGVJZBImCg9uZXR3b3JrX2ludGZfaWQYCCABKAdSDW5ldHdvcmtJbnRmSWQiZgoPSW5zdGFuY2VDb250cm9sEhAKA29udRgBIAEoCVIDb251EhAKA3VuaRgCIAEoCVIDdW5pEi8KFG1heF9nZW1fcGF5bG9hZF9zaXplGAMgASgJUhFtYXhHZW1QYXlsb2FkU2l6ZSKCAgoLUVRocmVzaG9sZHMSIQoMcV90aHJlc2hvbGQxGAEgASgNUgtxVGhyZXNob2xkMRIhCgxxX3RocmVzaG9sZDIYAiABKA1SC3FUaHJlc2hvbGQyEiEKDHFfdGhyZXNob2xkMxgDIAEoDVILcVRocmVzaG9sZDMSIQoMcV90aHJlc2hvbGQ0GAQgASgNUgtxVGhyZXNob2xkNBIhCgxxX3RocmVzaG9sZDUYBSABKA1SC3FUaHJlc2hvbGQ1EiEKDHFfdGhyZXNob2xkNhgGIAEoDVILcVRocmVzaG9sZDYSIQoMcV90aHJlc2hvbGQ3GAcgASgNUgtxVGhyZXNob2xkNyKzBQoRR2VtUG9ydEF0dHJpYnV0ZXMSHQoKZ2VtcG9ydF9pZBgBIAEoB1IJZ2VtcG9ydElkEhwKCm1heF9xX3NpemUYAiABKAlSCG1heFFTaXplEhkKCHBiaXRfbWFwGAMgASgJUgdwYml0TWFwEiUKDmFlc19lbmNyeXB0aW9uGAQgASgJUg1hZXNFbmNyeXB0aW9uEksKEXNjaGVkdWxpbmdfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSEHNjaGVkdWxpbmdQb2xpY3kSHQoKcHJpb3JpdHlfcRgGIAEoB1IJcHJpb3JpdHlREhYKBndlaWdodBgHIAEoB1IGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GAggASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSRQoOZGlzY2FyZF9jb25maWcYCSABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZxJHChFkaXNjYXJkX2NvbmZpZ192MhgOIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg9kaXNjYXJkQ29uZmlnVjISIQoMaXNfbXVsdGljYXN0GAogASgJUgtpc011bHRpY2FzdBIoChBtdWx0aWNhc3RfZ2VtX2lkGAsgASgHUg5tdWx0aWNhc3RHZW1JZBI9ChtkeW5hbWljX2FjY2Vzc19jb250cm9sX2xpc3QYDCABKAlSGGR5bmFtaWNBY2Nlc3NDb250cm9sTGlzdBI7ChpzdGF0aWNfYWNjZXNzX2NvbnRyb2xfbGlzdBgNIAEoCVIXc3RhdGljQWNjZXNzQ29udHJvbExpc3QiogIKE1NjaGVkdWxlckF0dHJpYnV0ZXMSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgNUgdhbGxvY0lkEj8KDWFkZGl0aW9uYWxfYncYAyABKA4yGi50ZWNoX3Byb2ZpbGUuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYBCABKAdSCHByaW9yaXR5EhYKBndlaWdodBgFIAEoB1IGd2VpZ2h0EkQKDnFfc2NoZWRfcG9saWN5GAYgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSDHFTY2hlZFBvbGljeSLABgoTRVBPTlF1ZXVlQXR0cmlidXRlcxIcCgptYXhfcV9zaXplGAEgASgJUghtYXhRU2l6ZRIZCghwYml0X21hcBgCIAEoCVIHcGJpdE1hcBIdCgpnZW1wb3J0X2lkGAMgASgNUglnZW1wb3J0SWQSJQoOYWVzX2VuY3J5cHRpb24YBCABKAlSDWFlc0VuY3J5cHRpb24SIQoMdHJhZmZpY190eXBlGAUgASgJUgt0cmFmZmljVHlwZRI0ChZ1bnNvbGljaXRlZF9ncmFudF9zaXplGAYgASgNUhR1bnNvbGljaXRlZEdyYW50U2l6ZRIpChBub21pbmFsX2ludGVydmFsGAcgASgNUg9ub21pbmFsSW50ZXJ2YWwSMgoVdG9sZXJhdGVkX3BvbGxfaml0dGVyGAggASgNUhN0b2xlcmF0ZWRQb2xsSml0dGVyEj4KG3JlcXVlc3RfdHJhbnNtaXNzaW9uX3BvbGljeRgJIAEoDVIZcmVxdWVzdFRyYW5zbWlzc2lvblBvbGljeRIcCgpudW1fcV9zZXRzGAogASgNUghudW1RU2V0cxI8CgxxX3RocmVzaG9sZHMYCyABKAsyGS50ZWNoX3Byb2ZpbGUuUVRocmVzaG9sZHNSC3FUaHJlc2hvbGRzEksKEXNjaGVkdWxpbmdfcG9saWN5GAwgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSEHNjaGVkdWxpbmdQb2xpY3kSHQoKcHJpb3JpdHlfcRgNIAEoDVIJcHJpb3JpdHlREhYKBndlaWdodBgOIAEoDVIGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GA8gASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSRQoOZGlzY2FyZF9jb25maWcYECABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZxJHChFkaXNjYXJkX2NvbmZpZ192MhgRIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg9kaXNjYXJkQ29uZmlnVjIirgQKC1RlY2hQcm9maWxlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIhCgxwcm9maWxlX3R5cGUYAyABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBCABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBSABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSRAoMdXNfc2NoZWR1bGVyGAYgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC3VzU2NoZWR1bGVyEkQKDGRzX3NjaGVkdWxlchgHIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgtkc1NjaGVkdWxlchJnCiB1cHN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgIIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IcdXBzdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdBJrCiJkb3duc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAkgAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUh5kb3duc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QiwwMKD0Vwb25UZWNoUHJvZmlsZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SIQoMcHJvZmlsZV90eXBlGAMgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAQgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAUgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEiEKDHBhY2thZ2VfdHlwZRgGIAEoCVILcGFja2FnZVR5cGUSZAoddXBzdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYByADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IadXBzdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QSaAofZG93bnN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgIIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhxkb3duc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0IusEChNUZWNoUHJvZmlsZUluc3RhbmNlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEiEKDHByb2ZpbGVfdHlwZRgEIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgFIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgGIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBJECgx1c19zY2hlZHVsZXIYByABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILdXNTY2hlZHVsZXISRAoMZHNfc2NoZWR1bGVyGAggASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC2RzU2NoZWR1bGVyEmcKIHVwc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAkgAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUhx1cHN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0EmsKImRvd25zdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCiADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHmRvd25zdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdCKbBAoXRXBvblRlY2hQcm9maWxlSW5zdGFuY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISIQoMcHJvZmlsZV90eXBlGAQgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAUgASgNUgtudW1HZW1Qb3J0cxIZCghhbGxvY19pZBgGIAEoDVIHYWxsb2NJZBJIChBpbnN0YW5jZV9jb250cm9sGAcgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEiEKDHBhY2thZ2VfdHlwZRgIIAEoCVILcGFja2FnZVR5cGUSZAoddXBzdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCSADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IadXBzdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QSaAofZG93bnN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgKIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhxkb3duc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0IrsBChBSZXNvdXJjZUluc3RhbmNlEhMKBXRwX2lkGAEgASgNUgR0cElkEiEKDHByb2ZpbGVfdHlwZRgCIAEoCVILcHJvZmlsZVR5cGUSMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIZCghhbGxvY19pZBgEIAEoDVIHYWxsb2NJZBIfCgtnZW1wb3J0X2lkcxgFIAMoDVIKZ2VtcG9ydElkcyo8CglEaXJlY3Rpb24SDAoIVVBTVFJFQU0QABIOCgpET1dOU1RSRUFNEAESEQoNQklESVJFQ1RJT05BTBACKjsKEFNjaGVkdWxpbmdQb2xpY3kSBwoDV1JSEAASEgoOU3RyaWN0UHJpb3JpdHkQARIKCgZIeWJyaWQQAipuCgxBZGRpdGlvbmFsQlcSFQoRQWRkaXRpb25hbEJXX05vbmUQABITCg9BZGRpdGlvbmFsQldfTkEQARIbChdBZGRpdGlvbmFsQldfQmVzdEVmZm9ydBACEhUKEUFkZGl0aW9uYWxCV19BdXRvEAMqPwoNRGlzY2FyZFBvbGljeRIMCghUYWlsRHJvcBAAEg0KCVdUYWlsRHJvcBABEgcKA1JlZBACEggKBFdSZWQQAyqcAQocSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbhIlCiFJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX05vbmUQABIoCiRJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Fzc3VyZWQQARIrCidJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Jlc3RFZmZvcnQQAkJYCiBvcmcub3BlbmNvcmQudm9sdGhhLnRlY2hfcHJvZmlsZVo0Z2l0aHViLmNvbS9vcGVuY29y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Cg0KBQQTAgEDEgT8ARobCgwKBAQTAgISBP0BBCUKDQoFBBMCAgUSBP0BBAoKDQoFBBMCAgESBP0BCyAKDQoFBBMCAgMSBP0BIyQKDAoEBBMCAxIE/gEEGAoNCgUEEwIDBRIE/gEECgoNCgUEEwIDARIE/gELEwoNCgUEEwIDAxIE/gEWFwoMCgQEEwIEEgT/AQQkCg0KBQQTAgQEEgT/AQQMCg0KBQQTAgQFEgT/AQ0TCg0KBQQTAgQBEgT/ARQfCg0KBQQTAgQDEgT/ASIjYgZwcm90bzMK5/0CCht2b2x0aGFfcHJvdG9zL29wZW5vbHQucHJvdG8SB29wZW5vbHQaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aIHZvbHRoYV9wcm90b3MvdGVjaF9wcm9maWxlLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8i4AUKCkluZGljYXRpb24SMQoHb2x0X2luZBgBIAEoCzIWLm9wZW5vbHQuT2x0SW5kaWNhdGlvbkgAUgZvbHRJbmQSNAoIaW50Zl9pbmQYAiABKAsyFy5vcGVub2x0LkludGZJbmRpY2F0aW9uSABSB2ludGZJbmQSQQoNaW50Zl9vcGVyX2luZBgDIAEoCzIbLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uSABSC2ludGZPcGVySW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI3Cgpwb3J0X3N0YXRzGAggASgLMhYuY29tbW9uLlBvcnRTdGF0aXN0aWNzSABSCXBvcnRTdGF0cxI4CgpmbG93X3N0YXRzGAkgASgLMhcub3Blbm9sdC5GbG93U3RhdGlzdGljc0gAUglmbG93U3RhdHMSNwoJYWxhcm1faW5kGAogASgLMhgub3Blbm9sdC5BbGFybUluZGljYXRpb25IAFIIYWxhcm1JbmQSSgoQb251X2Rpc2FibGVkX2luZBgLIAEoCzIeLm9wZW5vbHQuT251RGlzYWJsZWRJbmRpY2F0aW9uSABSDm9udURpc2FibGVkSW5kEkcKD29udV9lbmFibGVkX2luZBgMIAEoCzIdLm9wZW5vbHQuT251RW5hYmxlZEluZGljYXRpb25IAFINb251RW5hYmxlZEluZEIGCgRkYXRhIusNCg9BbGFybUluZGljYXRpb24SMQoHbG9zX2luZBgBIAEoCzIWLm9wZW5vbHQuTG9zSW5kaWNhdGlvbkgAUgZsb3NJbmQSRAoOZHlpbmdfZ2FzcF9pbmQYAiABKAsyHC5vcGVub2x0LkR5aW5nR2FzcEluZGljYXRpb25IAFIMZHlpbmdHYXNwSW5kEkEKDW9udV9hbGFybV9pbmQYAyABKAsyGy5vcGVub2x0Lk9udUFsYXJtSW5kaWNhdGlvbkgAUgtvbnVBbGFybUluZBJXChRvbnVfc3RhcnR1cF9mYWlsX2luZBgEIAEoCzIkLm9wZW5vbHQuT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVN0YXJ0dXBGYWlsSW5kEloKFm9udV9zaWduYWxfZGVncmFkZV9pbmQYBSABKAsyIy5vcGVub2x0Lk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uSABSE29udVNpZ25hbERlZ3JhZGVJbmQSWwoXb251X2RyaWZ0X29mX3dpbmRvd19pbmQYBiABKAsyIy5vcGVub2x0Lk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uSABSE29udURyaWZ0T2ZXaW5kb3dJbmQSVAoRb251X2xvc3Nfb21jaV9pbmQYByABKAsyJy5vcGVub2x0Lk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbkgAUg5vbnVMb3NzT21jaUluZBJXChRvbnVfc2lnbmFsc19mYWlsX2luZBgIIAEoCzIkLm9wZW5vbHQuT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVNpZ25hbHNGYWlsSW5kEk8KDG9udV90aXdpX2luZBgJIAEoCzIrLm9wZW5vbHQuT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZ0gAUgpvbnVUaXdpSW5kEmAKF29udV9hY3RpdmF0aW9uX2ZhaWxfaW5kGAogASgLMicub3Blbm9sdC5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIUb251QWN0aXZhdGlvbkZhaWxJbmQSYAoYb251X3Byb2Nlc3NpbmdfZXJyb3JfaW5kGAsgASgLMiUub3Blbm9sdC5PbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uSABSFW9udVByb2Nlc3NpbmdFcnJvckluZBJlChlvbnVfbG9zc19vZl9zeW5jX2ZhaWxfaW5kGAwgASgLMioub3Blbm9sdC5PbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb25IAFIUb251TG9zc09mU3luY0ZhaWxJbmQSVQoVb251X2l0dV9wb25fc3RhdHNfaW5kGA0gASgLMiEub3Blbm9sdC5PbnVJdHVQb25TdGF0c0luZGljYXRpb25IAFIRb251SXR1UG9uU3RhdHNJbmQSbAocb251X2RlYWN0aXZhdGlvbl9mYWlsdXJlX2luZBgOIAEoCzIpLm9wZW5vbHQuT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIZb251RGVhY3RpdmF0aW9uRmFpbHVyZUluZBJXChVvbnVfcmVtb3RlX2RlZmVjdF9pbmQYDyABKAsyIi5vcGVub2x0Lk9udVJlbW90ZURlZmVjdEluZGljYXRpb25IAFISb251UmVtb3RlRGVmZWN0SW5kEnMKHG9udV9sb3NzX2dlbV9kZWxpbmVhdGlvbl9pbmQYECABKAsyMS5vcGVub2x0Lk9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb25IAFIYb251TG9zc0dlbURlbGluZWF0aW9uSW5kEnYKIG9udV9waHlzaWNhbF9lcXVpcG1lbnRfZXJyb3JfaW5kGBEgASgLMiwub3Blbm9sdC5PbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbkgAUhxvbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kElsKE29udV9sb3NzX29mX2Fja19pbmQYEiABKAsyKy5vcGVub2x0Lk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb25IAFIPb251TG9zc09mQWNrSW5kEm8KG29udV9kaWZmX3JlYWNoX2V4Y2VlZGVkX2luZBgTIAEoCzIvLm9wZW5vbHQuT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb25IAFIXb251RGlmZlJlYWNoRXhjZWVkZWRJbmRCBgoEZGF0YSIuCg1PbHRJbmRpY2F0aW9uEh0KCm9wZXJfc3RhdGUYASABKAlSCW9wZXJTdGF0ZSJICg5JbnRmSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgCIAEoCVIJb3BlclN0YXRlImgKEU9udURpc2NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBI6Cg1zZXJpYWxfbnVtYmVyGAIgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciKTBAoNT251SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUSHwoLYWRtaW5fc3RhdGUYBSABKAlSCmFkbWluU3RhdGUSOgoNc2VyaWFsX251bWJlchgEIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISTAoLZmFpbF9yZWFzb24YBiABKA4yKy5vcGVub2x0Lk9udUluZGljYXRpb24uQWN0aXZhdGlvbkZhaWxSZWFzb25SCmZhaWxSZWFzb24ihwIKFEFjdGl2YXRpb25GYWlsUmVhc29uEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX05PTkUQABImCiJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9SQU5HSU5HEAESNgoyT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUEFTU1dPUkRfQVVUSEVOVElDQVRJT04QAhIiCh5PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9MT1MQAxIhCh1PTlVfQUNUSVZBVElPTl9GQUlMX09OVV9BTEFSTRAEEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfU1dJVENIX09WRVIQBSKDAQoVT251RGlzYWJsZWRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYBCABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIoIBChRPbnVFbmFibGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciKCBAoSSW50Zk9wZXJJbmRpY2F0aW9uEhIKBHR5cGUYASABKAlSBHR5cGUSFwoHaW50Zl9pZBgCIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIUCgVzcGVlZBgEIAEoB1IFc3BlZWQSHgoKdGVjaG5vbG9neRgFIAEoCVIKdGVjaG5vbG9neRJFCgZyYW5nZXMYBiABKAsyLS5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbi5QT05SZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGqICChFQT05SZXNvdXJjZVJhbmdlcxJICgVwb29scxgDIAMoCzIyLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGsIBCgRQb29sEk8KBHR5cGUYASABKA4yOy5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbi5QT05SZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlEhQKBXN0YXJ0GAMgASgHUgVzdGFydBIQCgNlbmQYBCABKAdSA2VuZCJBCghQb29sVHlwZRIKCgZPTlVfSUQQABIMCghBTExPQ19JRBABEg4KCkdFTVBPUlRfSUQQAhILCgdGTE9XX0lEEAMiUgoOT21jaUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3Qi8QEKEFBhY2tldEluZGljYXRpb24SGwoJaW50Zl90eXBlGAUgASgJUghpbnRmVHlwZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAggASgHUgVvbnVJZBIVCgZ1bmlfaWQYCSABKAdSBXVuaUlkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIXCgdmbG93X2lkGAMgASgHUgZmbG93SWQSFwoHcG9ydF9ubxgGIAEoB1IGcG9ydE5vEhYKBmNvb2tpZRgHIAEoBlIGY29va2llEhAKA3BrdBgEIAEoDFIDcGt0IkEKCUludGVyZmFjZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSGwoJaW50Zl90eXBlGAIgASgHUghpbnRmVHlwZSI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IqABCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIZCghhbGxvY19pZBgGIAEoB1IHYWxsb2NJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IrgHCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEhsKCW5uaV9wb3J0cxgUIAEoB1IIbm5pUG9ydHMSQAoGcmFuZ2VzGA8gAygLMigub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzUgZyYW5nZXMalQQKFERldmljZVJlc291cmNlUmFuZ2VzEhkKCGludGZfaWRzGAEgAygHUgdpbnRmSWRzEh4KCnRlY2hub2xvZ3kYAiABKAlSCnRlY2hub2xvZ3kSQwoFcG9vbHMYAyADKAsyLS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMa/AIKBFBvb2wSSgoEdHlwZRgBIAEoDjI2Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlElMKB3NoYXJpbmcYAiABKA4yOS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5TaGFyaW5nVHlwZVIHc2hhcmluZxIUCgVzdGFydBgDIAEoB1IFc3RhcnQSEAoDZW5kGAQgASgHUgNlbmQiQQoIUG9vbFR5cGUSCgoGT05VX0lEEAASDAoIQUxMT0NfSUQQARIOCgpHRU1QT1JUX0lEEAISCwoHRkxPV19JRBADImgKC1NoYXJpbmdUeXBlEhYKEkRFRElDQVRFRF9QRVJfSU5URhAAEh8KG1NIQVJFRF9CWV9BTExfSU5URl9BTExfVEVDSBABEiAKHFNIQVJFRF9CWV9BTExfSU5URl9TQU1FX1RFQ0gQAkoECAUQDEoECA0QDkoECA4QDyKEAwoKQ2xhc3NpZmllchIVCgZvX3RwaWQYASABKAdSBW9UcGlkEhMKBW9fdmlkGAIgASgHUgRvVmlkEhUKBmlfdHBpZBgDIAEoB1IFaVRwaWQSEwoFaV92aWQYBCABKAdSBGlWaWQSFwoHb19wYml0cxgFIAEoB1IGb1BiaXRzEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIZCghldGhfdHlwZRgHIAEoB1IHZXRoVHlwZRIXCgdkc3RfbWFjGAggASgMUgZkc3RNYWMSFwoHc3JjX21hYxgJIAEoDFIGc3JjTWFjEhkKCGlwX3Byb3RvGAogASgHUgdpcFByb3RvEhUKBmRzdF9pcBgLIAEoB1IFZHN0SXASFQoGc3JjX2lwGAwgASgHUgVzcmNJcBIZCghzcmNfcG9ydBgNIAEoB1IHc3JjUG9ydBIZCghkc3RfcG9ydBgOIAEoB1IHZHN0UG9ydBIgCgxwa3RfdGFnX3R5cGUYDyABKAlSCnBrdFRhZ1R5cGUihQMKCUFjdGlvbkNtZBIiCg1hZGRfb3V0ZXJfdGFnGAEgASgIUgthZGRPdXRlclRhZxIoChByZW1vdmVfb3V0ZXJfdGFnGAIgASgIUg5yZW1vdmVPdXRlclRhZxIgCgx0cmFwX3RvX2hvc3QYAyABKAhSCnRyYXBUb0hvc3QSLAoScmVtYXJrX291dGVyX3BiaXRzGAQgASgIUhByZW1hcmtPdXRlclBiaXRzEiwKEnJlbWFya19pbm5lcl9wYml0cxgFIAEoCFIQcmVtYXJrSW5uZXJQYml0cxIiCg1hZGRfaW5uZXJfdGFnGAYgASgIUgthZGRJbm5lclRhZxIoChByZW1vdmVfaW5uZXJfdGFnGAcgASgIUg5yZW1vdmVJbm5lclRhZxIuChN0cmFuc2xhdGVfaW5uZXJfdGFnGAggASgIUhF0cmFuc2xhdGVJbm5lclRhZxIuChN0cmFuc2xhdGVfb3V0ZXJfdGFnGAkgASgIUhF0cmFuc2xhdGVPdXRlclRhZyK4AQoGQWN0aW9uEiQKA2NtZBgBIAEoCzISLm9wZW5vbHQuQWN0aW9uQ21kUgNjbWQSEwoFb192aWQYAiABKAdSBG9WaWQSFwoHb19wYml0cxgDIAEoB1IGb1BiaXRzEhUKBm9fdHBpZBgEIAEoB1IFb1RwaWQSEwoFaV92aWQYBSABKAdSBGlWaWQSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhUKBmlfdHBpZBgHIAEoB1IFaVRwaWQixwYKBEZsb3cSJAoOYWNjZXNzX2ludGZfaWQYASABKA9SDGFjY2Vzc0ludGZJZBIVCgZvbnVfaWQYAiABKA9SBW9udUlkEhUKBnVuaV9pZBgLIAEoD1IFdW5pSWQSFwoHZmxvd19pZBgDIAEoBlIGZmxvd0lkEioKEXN5bW1ldHJpY19mbG93X2lkGBIgASgGUg9zeW1tZXRyaWNGbG93SWQSGwoJZmxvd190eXBlGAQgASgJUghmbG93VHlwZRIZCghhbGxvY19pZBgKIAEoD1IHYWxsb2NJZBImCg9uZXR3b3JrX2ludGZfaWQYBSABKA9SDW5ldHdvcmtJbnRmSWQSHQoKZ2VtcG9ydF9pZBgGIAEoD1IJZ2VtcG9ydElkEjMKCmNsYXNzaWZpZXIYByABKAsyEy5vcGVub2x0LkNsYXNzaWZpZXJSCmNsYXNzaWZpZXISJwoGYWN0aW9uGAggASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbhIaCghwcmlvcml0eRgJIAEoD1IIcHJpb3JpdHkSFgoGY29va2llGAwgASgGUgZjb29raWUSFwoHcG9ydF9ubxgNIAEoB1IGcG9ydE5vEhkKCGdyb3VwX2lkGA4gASgHUgdncm91cElkEiYKD3RlY2hfcHJvZmlsZV9pZBgPIAEoB1INdGVjaFByb2ZpbGVJZBIlCg5yZXBsaWNhdGVfZmxvdxgQIAEoCFINcmVwbGljYXRlRmxvdxJICg9wYml0X3RvX2dlbXBvcnQYESADKAsyIC5vcGVub2x0LkZsb3cuUGJpdFRvR2VtcG9ydEVudHJ5Ug1wYml0VG9HZW1wb3J0EkUKDmdlbXBvcnRfdG9fYWVzGBMgAygLMh8ub3Blbm9sdC5GbG93LkdlbXBvcnRUb0Flc0VudHJ5UgxnZW1wb3J0VG9BZXMaQAoSUGJpdFRvR2VtcG9ydEVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaPwoRR2VtcG9ydFRvQWVzRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ASJUCgxTZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGAEgASgMUgh2ZW5kb3JJZBInCg92ZW5kb3Jfc3BlY2lmaWMYAiABKAxSDnZlbmRvclNwZWNpZmljIuYHCg1PbnVTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEiUKDnBvc2l0aXZlX2RyaWZ0GAMgASgGUg1wb3NpdGl2ZURyaWZ0EiUKDm5lZ2F0aXZlX2RyaWZ0GAQgASgGUg1uZWdhdGl2ZURyaWZ0EjgKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBlIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIdCgpiaXBfZXJyb3JzGAYgASgGUgliaXBFcnJvcnMSGwoJYmlwX3VuaXRzGAcgASgGUghiaXBVbml0cxIyChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSNgoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZSFWZlY0NvZGV3b3Jkc0NvcnJlY3RlZBI+ChtmZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGUYCiABKAZSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSIwoNZmVjX2NvZGV3b3JkcxgLIAEoBlIMZmVjQ29kZXdvcmRzEi4KE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZSEWZlY0NvcnJlY3RlZFVuaXRzEiYKD3hnZW1fa2V5X2Vycm9ycxgNIAEoBlINeGdlbUtleUVycm9ycxIbCgl4Z2VtX2xvc3MYDiABKAZSCHhnZW1Mb3NzEiYKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBlINcnhQbG9hbXNFcnJvchIrChJyeF9wbG9hbXNfbm9uX2lkbGUYECABKAZSD3J4UGxvYW1zTm9uSWRsZRIXCgdyeF9vbWNpGBEgASgGUgZyeE9tY2kSOAoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgSIAEoBlIVcnhPbWNpUGFja2V0c0NyY0Vycm9yEhkKCHJ4X2J5dGVzGBMgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYFCABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgVIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGBYgASgGUgl0eFBhY2tldHMSIQoMYmVyX3JlcG9ydGVkGBcgASgGUgtiZXJSZXBvcnRlZBIfCgtsY2RnX2Vycm9ycxgYIAEoBlIKbGNkZ0Vycm9ycxIdCgpyZGlfZXJyb3JzGBkgASgGUglyZGlFcnJvcnMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAi3QEKEUdlbVBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgGUgdyeEJ5dGVzEh0KCnR4X3BhY2tldHMYBSABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgGIAEoBlIHdHhCeXRlcxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCK7AQoORmxvd1N0YXRpc3RpY3MSFwoHZmxvd19pZBgBIAEoB1IGZmxvd0lkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAiQAoNTG9zSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMiXQoTRHlpbmdHYXNwSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKjAgoST251QWxhcm1JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCmxvc19zdGF0dXMYAyABKAlSCWxvc1N0YXR1cxIdCgpsb2Jfc3RhdHVzGAQgASgJUglsb2JTdGF0dXMSKAoQbG9wY19taXNzX3N0YXR1cxgFIAEoCVIObG9wY01pc3NTdGF0dXMSMQoVbG9wY19taWNfZXJyb3Jfc3RhdHVzGAYgASgJUhJsb3BjTWljRXJyb3JTdGF0dXMSHwoLbG9maV9zdGF0dXMYByABKAlSCmxvZmlTdGF0dXMSIQoMbG9hbWlfc3RhdHVzGAggASgJUgtsb2FtaVN0YXR1cyJlChtPbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimQEKGk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUikwEKGk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdBIXCgduZXdfZXFkGAUgASgHUgZuZXdFcWQiaAoeT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpoBChtPbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKCAQoiT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQicQoeT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh8KC2ZhaWxfcmVhc29uGAMgASgHUgpmYWlsUmVhc29uImsKIU9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJUChJSZGlFcnJvckluZGljYXRpb24SJgoPcmRpX2Vycm9yX2NvdW50GAEgASgGUg1yZGlFcnJvckNvdW50EhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIpYBChhPbnVJdHVQb25TdGF0c0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSQQoNcmRpX2Vycm9yX2luZBgDIAEoCzIbLm9wZW5vbHQuUmRpRXJyb3JJbmRpY2F0aW9uSABSC3JkaUVycm9ySW5kQgcKBXN0YXRzIk4KHE9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiagogT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiagoZT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpyZGlfZXJyb3JzGAMgASgGUglyZGlFcnJvcnMioQEKKE9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSLQoSZGVsaW5lYXRpb25fZXJyb3JzGAQgASgHUhFkZWxpbmVhdGlvbkVycm9ycyJtCiNPbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJsCiJPbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIowBCiZPbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIaCghkaXN0YW5jZRgEIAEoB1IIZGlzdGFuY2Ui9gEKC0dyb3VwTWVtYmVyEiEKDGludGVyZmFjZV9pZBgBIAEoDVILaW50ZXJmYWNlSWQSSQoOaW50ZXJmYWNlX3R5cGUYAiABKA4yIi5vcGVub2x0Lkdyb3VwTWVtYmVyLkludGVyZmFjZVR5cGVSDWludGVyZmFjZVR5cGUSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZBIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkiPQoNSW50ZXJmYWNlVHlwZRIHCgNQT04QABIQCgxFUE9OXzFHX1BBVEgQARIRCg1FUE9OXzEwR19QQVRIEAIihgIKBUdyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEjwKB2NvbW1hbmQYAiABKA4yIi5vcGVub2x0Lkdyb3VwLkdyb3VwTWVtYmVyc0NvbW1hbmRSB2NvbW1hbmQSLgoHbWVtYmVycxgDIAMoCzIULm9wZW5vbHQuR3JvdXBNZW1iZXJSB21lbWJlcnMSJwoGYWN0aW9uGAQgASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbiJLChNHcm91cE1lbWJlcnNDb21tYW5kEg8KC0FERF9NRU1CRVJTEAASEgoOUkVNT1ZFX01FTUJFUlMQARIPCgtTRVRfTUVNQkVSUxACIl0KClZhbHVlUGFyYW0SHgoDb251GAEgASgLMgwub3Blbm9sdC5PbnVSA29udRIvCgV2YWx1ZRgCIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIFdmFsdWUiwwIKDlBvblJ4UG93ZXJEYXRhEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzElIKC2ZhaWxfcmVhc29uGAQgASgOMjEub3Blbm9sdC5Qb25SeFBvd2VyRGF0YS5Sc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uUgpmYWlsUmVhc29uEikKEXJ4X3Bvd2VyX21lYW5fZGJtGAUgASgBUg5yeFBvd2VyTWVhbkRibSJqChlSc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uEhQKEEZBSUxfUkVBU09OX05PTkUQABIcChhGQUlMX1JFQVNPTl9OT19ERUxJTUlURVIQARIZChVGQUlMX1JFQVNPTl9OT19BQ0NFU1MQAiJiChRPbnVBbGxvY0lkU3RhdGlzdGljcxIWCgZpbnRmSWQYASABKAdSBmludGZJZBIYCgdhbGxvY0lkGAIgASgHUgdhbGxvY0lkEhgKB3J4Qnl0ZXMYAyABKAZSB3J4Qnl0ZXMiowIKB09udUluZm8SFQoGb251X2lkGAEgASgHUgVvbnVJZBIvCgVzdGF0ZRgCIAEoDjIZLm9wZW5vbHQuT251SW5mby5PbnVTdGF0ZVIFc3RhdGUSJwoEbG9zaRgDIAEoDjITLm9wZW5vbHQuQWxhcm1TdGF0ZVIEbG9zaRInCgRsb2ZpGAQgASgOMhMub3Blbm9sdC5BbGFybVN0YXRlUgRsb2ZpEikKBWxvYW1pGAUgASgOMhMub3Blbm9sdC5BbGFybVN0YXRlUgVsb2FtaSJTCghPbnVTdGF0ZRILCgdVTktOT1dOEAASEgoOTk9UX0NPTkZJR1VSRUQQARIKCgZBQ1RJVkUQAhIMCghJTkFDVElWRRADEgwKCERJU0FCTEVEEAQi5wEKC1BvbkludGZJbmZvEhcKB2ludGZfaWQYASABKAdSBmludGZJZBI3CgVzdGF0ZRgDIAEoDjIhLm9wZW5vbHQuUG9uSW50ZkluZm8uUG9uSW50ZlN0YXRlUgVzdGF0ZRIlCgNsb3MYBCABKA4yEy5vcGVub2x0LkFsYXJtU3RhdGVSA2xvcyJfCgxQb25JbnRmU3RhdGUSCwoHVU5LTk9XThAAEhIKDkFDVElWRV9XT1JLSU5HEAESEgoOQUNUSVZFX1NUQU5EQlkQAhIMCghJTkFDVElWRRADEgwKCERJU0FCTEVEEAQihgEKHUludGVyZmFjZU9udVNlcmlhbE51bWJlck9udUlkEk4KEmludGZfaWRfc2VyaWFsX251bRgBIAEoCzIhLm9wZW5vbHQuSW50ZXJmYWNlT251U2VyaWFsTnVtYmVyUg9pbnRmSWRTZXJpYWxOdW0SFQoGb251X2lkGAIgASgHUgVvbnVJZCJ2ChhJbnRlcmZhY2VPbnVTZXJpYWxOdW1iZXISFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEkEKEW9udV9zZXJpYWxfbnVtYmVyGAIgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSD29udVNlcmlhbE51bWJlciIHCgVFbXB0eSodCgpBbGFybVN0YXRlEgcKA09GRhAAEgYKAk9OEAEyphsKB09wZW5vbHQSRAoKRGlzYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9EaXNhYmxlOgEqEkYKC1JlZW5hYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiF4LT5JMCESIML3YxL1JlZW5hYmxlOgEqEkUKC0FjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9FbmFibGVPbnU6ASoSSAoNRGVhY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRGlzYWJsZU9udToBKhJDCglEZWxldGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0RlbGV0ZU9udToBKhJJCgpPbWNpTXNnT3V0EhAub3Blbm9sdC5PbWNpTXNnGg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvT21jaU1zZ091dDoBKhJPCgxPbnVQYWNrZXRPdXQSEi5vcGVub2x0Lk9udVBhY2tldBoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL09udVBhY2tldE91dDoBKhJYCg9VcGxpbmtQYWNrZXRPdXQSFS5vcGVub2x0LlVwbGlua1BhY2tldBoOLm9wZW5vbHQuRW1wdHkiHoLT5JMCGCITL3YxL1VwbGlua1BhY2tldE91dDoBKhJACgdGbG93QWRkEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRmxvd0FkZDoBKhJGCgpGbG93UmVtb3ZlEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRmxvd1JlbW92ZToBKhJTCg5IZWFydGJlYXRDaGVjaxIOLm9wZW5vbHQuRW1wdHkaEi5vcGVub2x0LkhlYXJ0YmVhdCIdgtPkkwIXIhIvdjEvSGVhcnRiZWF0Q2hlY2s6ASoSTQoLRW5hYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0VuYWJsZVBvbklmOgEqEk8KDERpc2FibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvRGlzYWJsZVBvbklmOgEqElIKDUdldERldmljZUluZm8SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5EZXZpY2VJbmZvIhyC0+STAhYiES92MS9HZXREZXZpY2VJbmZvOgEqEj8KBlJlYm9vdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhWC0+STAg8iCi92MS9SZWJvb3Q6ASoSVQoRQ29sbGVjdFN0YXRpc3RpY3MSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvQ29sbGVjdFN0YXRpc3RpY3M6ASoSWQoQR2V0T251U3RhdGlzdGljcxIMLm9wZW5vbHQuT251GhYub3Blbm9sdC5PbnVTdGF0aXN0aWNzIh+C0+STAhkiFC92MS9HZXRPbnVTdGF0aXN0aWNzOgEqEmsKFEdldEdlbVBvcnRTdGF0aXN0aWNzEhIub3Blbm9sdC5PbnVQYWNrZXQaGi5vcGVub2x0LkdlbVBvcnRTdGF0aXN0aWNzIiOC0+STAh0iGC92MS9HZXRHZW1Qb3J0U3RhdGlzdGljczoBKhJyChdDcmVhdGVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEnIKF1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnM6ASoSZgoTQ3JlYXRlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvQ3JlYXRlVHJhZmZpY1F1ZXVlczoBKhJmChNSZW1vdmVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9SZW1vdmVUcmFmZmljUXVldWVzOgEqEjsKEEVuYWJsZUluZGljYXRpb24SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5JbmRpY2F0aW9uIgAwARJdChVQZXJmb3JtR3JvdXBPcGVyYXRpb24SDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIkgtPkkwIeIhkvdjEvUGVyZm9ybUdyb3VwT3BlcmF0aW9uOgEqEkkKC0RlbGV0ZUdyb3VwEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0RlbGV0ZUdyb3VwOgEqElcKC0dldEV4dFZhbHVlEhMub3Blbm9sdC5WYWx1ZVBhcmFtGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcyIagtPkkwIUIg8vdjEvR2V0RXh0VmFsdWU6ASoSXQoRT251SXR1UG9uQWxhcm1TZXQSFi5jb25maWcuT251SXR1UG9uQWxhcm0aDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9PbnVJdHVQb25BbGFybVNldDoBKhJwChlHZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIogtPkkwIiIh0vdjEvR2V0TG9naWNhbE9udURpc3RhbmNlWmVybzoBKhJoChVHZXRMb2dpY2FsT251RGlzdGFuY2USDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiSC0+STAh4iGS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2U6ASoSVAoNR2V0UG9uUnhQb3dlchIMLm9wZW5vbHQuT251Ghcub3Blbm9sdC5Qb25SeFBvd2VyRGF0YSIcgtPkkwIWIhEvdjEvR2V0UG9uUnhQb3dlcjoBKhJHCgpHZXRPbnVJbmZvEgwub3Blbm9sdC5PbnUaEC5vcGVub2x0Lk9udUluZm8iGYLT5JMCEyIOL3YxL0dldE9udUluZm86ASoSYAoTR2V0UG9uSW50ZXJmYWNlSW5mbxISLm9wZW5vbHQuSW50ZXJmYWNlGhQub3Blbm9sdC5Qb25JbnRmSW5mbyIfgtPkkwIZIhQvdjEvR2V0SW50ZXJmYWNlSW5mbzoBKhJuChRHZXRBbGxvY0lkU3RhdGlzdGljcxISLm9wZW5vbHQuT251UGFja2V0Gh0ub3Blbm9sdC5PbnVBbGxvY0lkU3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0QWxsb2NJZFN0YXRpc3RpY3M6ASoSZwoUR2V0UG9uUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0LkludGVyZmFjZRoWLmNvbW1vbi5Qb3J0U3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0UG9uUG9ydFN0YXRpc3RpY3M6ASoSZwoUR2V0Tm5pUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0LkludGVyZmFjZRoWLmNvbW1vbi5Qb3J0U3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0Tm5pUG9ydFN0YXRpc3RpY3M6ASoSXAoKRGlzYWJsZU9udRImLm9wZW5vbHQuSW50ZXJmYWNlT251U2VyaWFsTnVtYmVyT251SWQaDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiDi92MS9EaXNhYmxlT251EloKCUVuYWJsZU9udRImLm9wZW5vbHQuSW50ZXJmYWNlT251U2VyaWFsTnVtYmVyT251SWQaDi5vcGVub2x0LkVtcHR5IhWC0+STAg8iDS92MS9FbmFibGVPbnUSbwoWRGlzYWJsZU9udVNlcmlhbE51bWJlchIhLm9wZW5vbHQuSW50ZXJmYWNlT251U2VyaWFsTnVtYmVyGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhovdjEvRGlzYWJsZU9udVNlcmlhbE51bWJlchJtChVFbmFibGVPbnVTZXJpYWxOdW1iZXISIS5vcGVub2x0LkludGVyZmFjZU9udVNlcmlhbE51bWJlchoOLm9wZW5vbHQuRW1wdHkiIYLT5JMCGyIZL3YxL0VuYWJsZU9udVNlcmlhbE51bWJlckJdChtvcmcub3BlbmNvcmQudm9sdGhhLm9wZW5vbHRCDVZvbHRoYU9wZW5PTFRaL2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vcGVub2x0SvzzAQoHEgUOAKsHEArxBAoBDBIDDgASMuYEIENvcHlyaWdodCAyMDE4LTIwMjQgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24gKE9ORikgYW5kIHRoZSBPTkYgQ29udHJpYnV0b3JzCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBCBIDEABGCgkKAggLEgMQAEYKCAoBCBIDEQA0CgkKAggBEgMRADQKCAoBCBIDEgAuCgkKAggIEgMSAC4KCAoBAhIDFAAQCgkKAgMAEgMVACYKCQoCAwESAxYAKgoJCgIDAhIDFwAoCgkKAgMDEgMYACgKCQoCAwQSAxkAJAoLCgIGABIFGwDQAgEKCgoDBgABEgMbCA8KDAoEBgACABIEHQQiBQoMCgUGAAIAARIDHQgSCgwKBQYAAgACEgMdExgKDAoFBgACAAMSAx0jKAoNCgUGAAIABBIEHgghCgoRCgkGAAIABLDKvCISBB4IIQoKDAoEBgACARIEJAQpBQoMCgUGAAIBARIDJAgTCgwKBQYAAgECEgMkFBkKDAoFBgACAQMSAyQkKQoNCgUGAAIBBBIEJQgoCgoRCgkGAAIBBLDKvCISBCUIKAoKDAoEBgACAhIEKwQwBQoMCgUGAAICARIDKwgTCgwKBQYAAgICEgMrFBcKDAoFBgACAgMSAysiJwoNCgUGAAICBBIELAgvCgoRCgkGAAICBLDKvCISBCwILwoKDAoEBgACAxIEMgQ3BQoMCgUGAAIDARIDMggVCgwKBQYAAgMCEgMyFhkKDAoFBgACAwMSAzIkKQoNCgUGAAIDBBIEMwg2CgoRCgkGAAIDBLDKvCISBDMINgoKDAoEBgACBBIEOQQ+BQoMCgUGAAIEARIDOQgRCgwKBQYAAgQCEgM5EhUKDAoFBgACBAMSAzkgJQoNCgUGAAIEBBIEOgg9CgoRCgkGAAIEBLDKvCISBDoIPQoKDAoEBgACBRIEQARFBQoMCgUGAAIFARIDQAgSCgwKBQYAAgUCEgNAExoKDAoFBgACBQMSA0AlKgoNCgUGAAIFBBIEQQhECgoRCgkGAAIFBLDKvCISBEEIRAoKDAoEBgACBhIERwRMBQoMCgUGAAIGARIDRwgUCgwKBQYAAgYCEgNHFR4KDAoFBgACBgMSA0cpLgoNCgUGAAIGBBIESAhLCgoRCgkGAAIGBLDKvCISBEgISwoKDAoEBgACBxIETgRTBQoMCgUGAAIHARIDTggXCgwKBQYAAgcCEgNOGCQKDAoFBgACBwMSA04vNAoNCgUGAAIHBBIETwhSCgoRCgkGAAIHBLDKvCISBE8IUgoKDAoEBgACCBIEVQRaBQoMCgUGAAIIARIDVQgPCgwKBQYAAggCEgNVEBQKDAoFBgACCAMSA1UfJAoNCgUGAAIIBBIEVghZCgoRCgkGAAIIBLDKvCISBFYIWQoKDAoEBgACCRIEXARhBQoMCgUGAAIJARIDXAgSCgwKBQYAAgkCEgNcExcKDAoFBgACCQMSA1wiJwoNCgUGAAIJBBIEXQhgCgoRCgkGAAIJBLDKvCISBF0IYAoKDAoEBgACChIEYwRoBQoMCgUGAAIKARIDYwgWCgwKBQYAAgoCEgNjFxwKDAoFBgACCgMSA2MnMAoNCgUGAAIKBBIEZAhnCgoRCgkGAAIKBLDKvCISBGQIZwoKDAoEBgACCxIEagRvBQoMCgUGAAILARIDaggTCgwKBQYAAgsCEgNqFB0KDAoFBgACCwMSA2ooLQoNCgUGAAILBBIEawhuCgoRCgkGAAILBLDKvCISBGsIbgoKDAoEBgACDBIEcQR2BQoMCgUGAAIMARIDcQgUCgwKBQYAAgwCEgNxFR4KDAoFBgACDAMSA3EpLgoNCgUGAAIMBBIEcgh1CgoRCgkGAAIMBLDKvCISBHIIdQoKDAoEBgACDRIEeAR9BQoMCgUGAAINARIDeAgVCgwKBQYAAg0CEgN4FhsKDAoFBgACDQMSA3gmMAoNCgUGAAINBBIEeQh8CgoRCgkGAAINBLDKvCISBHkIfAoKDQoEBgACDhIFfwSEAQUKDAoFBgACDgESA38IDgoMCgUGAAIOAhIDfw8UCgwKBQYAAg4DEgN/HyQKDwoFBgACDgQSBoABCYMBCgoTCgkGAAIOBLDKvCISBoABCYMBCgoOCgQGAAIPEgaGAQSLAQUKDQoFBgACDwESBIYBCBkKDQoFBgACDwISBIYBGh8KDQoFBgACDwMSBIYBKi8KDwoFBgACDwQSBocBCIoBCgoTCgkGAAIPBLDKvCISBocBCIoBCgoOCgQGAAIQEgaNAQSSAQUKDQoFBgACEAESBI0BCBgKDQoFBgACEAISBI0BGRwKDQoFBgACEAMSBI0BJzQKDwoFBgACEAQSBo4BCJEBCgoTCgkGAAIQBLDKvCISBo4BCJEBCgoOCgQGAAIREgaUAQSZAQUKDQoFBgACEQESBJQBCBwKDQoFBgACEQISBJQBHSYKDQoFBgACEQMSBJQBMUIKDwoFBgACEQQSBpUBCJgBCgoTCgkGAAIRBLDKvCISBpUBCJgBCgoOCgQGAAISEgabAQSgAQUKDQoFBgACEgESBJsBCB8KDQoFBgACEgISBJsBID4KDQoFBgACEgMSBJsBSU4KDwoFBgACEgQSBpwBCJ8BCgoTCgkGAAISBLDKvCISBpwBCJ8BCgoOCgQGAAITEgaiAQSnAQUKDQoFBgACEwESBKIBCB8KDQoFBgACEwISBKIBID4KDQoFBgACEwMSBKIBSU4KDwoFBgACEwQSBqMBCKYBCgoTCgkGAAITBLDKvCISBqMBCKYBCgoOCgQGAAIUEgapAQSuAQUKDQoFBgACFAESBKkBCBsKDQoFBgACFAISBKkBHDYKDQoFBgACFAMSBKkBQUYKDwoFBgACFAQSBqoBCK0BCgoTCgkGAAIUBLDKvCISBqoBCK0BCgoOCgQGAAIVEgawAQS1AQUKDQoFBgACFQESBLABCBsKDQoFBgACFQISBLABHDYKDQoFBgACFQMSBLABQUYKDwoFBgACFQQSBrEBCLQBCgoTCgkGAAIVBLDKvCISBrEBCLQBCgoMCgQGAAIWEgS3AQQ+Cg0KBQYAAhYBEgS3AQgYCg0KBQYAAhYCEgS3ARkeCg0KBQYAAhYGEgS3ASkvCg0KBQYAAhYDEgS3ATA6Cg4KBAYAAhcSBrkBBL4BBQoNCgUGAAIXARIEuQEIHQoNCgUGAAIXAhIEuQEeIwoNCgUGAAIXAxIEuQEuMwoPCgUGAAIXBBIGugEIvQEKChMKCQYAAhcEsMq8IhIGugEIvQEKCg4KBAYAAhgSBsABBMUBBQoNCgUGAAIYARIEwAEIEwoNCgUGAAIYAhIEwAEUGQoNCgUGAAIYAxIEwAEkKQoPCgUGAAIYBBIGwQEIxAEKChMKCQYAAhgEsMq8IhIGwQEIxAEKCg4KBAYAAhkSBscBBMwBBQoNCgUGAAIZARIExwEIEwoNCgUGAAIZAhIExwEUHgoNCgUGAAIZAxIExwEpPwoPCgUGAAIZBBIGyAEIywEKChMKCQYAAhkEsMq8IhIGyAEIywEKCg4KBAYAAhoSBs4BBNMBBQoNCgUGAAIaARIEzgEIGQoNCgUGAAIaAhIEzgEaLwoNCgUGAAIaAxIEzgE6PwoPCgUGAAIaBBIGzwEI0gEKChMKCQYAAhoEsMq8IhIGzwEI0gEKCg4KBAYAAhsSBtUBBNoBBQoNCgUGAAIbARIE1QEIIQoNCgUGAAIbAhIE1QEiJQoNCgUGAAIbAxIE1QEwQgoPCgUGAAIbBBIG1gEI2QEKChMKCQYAAhsEsMq8IhIG1gEI2QEKCg4KBAYAAhwSBtwBBOEBBQoNCgUGAAIcARIE3AEIHQoNCgUGAAIcAhIE3AEeIQoNCgUGAAIcAxIE3AEsPgoPCgUGAAIcBBIG3QEI4AEKChMKCQYAAhwEsMq8IhIG3QEI4AEKCg4KBAYAAh0SBuMBBOgBBQoNCgUGAAIdARIE4wEIFQoNCgUGAAIdAhIE4wEWGQoNCgUGAAIdAxIE4wEkMgoPCgUGAAIdBBIG5AEI5wEKChMKCQYAAh0EsMq8IhIG5AEI5wEKCpgBCgQGAAIeEgbuAQTzAQUahwEgCiBHZXRPbnVJbmZvIHRha2VzIE9udSBpZCwgc2VyaWFsbnVtYmVyLCBhbmQgcG9uIGludGVyZmFjZSBhcyBhcmd1bWVudCBmcm9tIHRoZSBvbnUgc3RydWN0dXJlLgogUmV0dXJucyB0aGUgT251IGluZm8gZnJvbSB0aGUgZGV2aWNlLgoKDQoFBgACHgESBO4BCBIKDQoFBgACHgISBO4BExYKDQoFBgACHgMSBO4BISgKDwoFBgACHgQSBu8BCPIBCgoTCgkGAAIeBLDKvCISBu8BCPIBCgqBAQoEBgACHxIG+QEE/gEFGnEKIEdldFBvbkludGVyZmFjZUluZm8gdGFrZXMgdGhlIHBvbiBpbnRmIGlkIGFzIGFyZ3VtZW50LgogUmV0dXJucyB0aGUgcG9uIGludGVyZmFjZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkZXZpY2UuCgoNCgUGAAIfARIE+QEIGwoNCgUGAAIfAhIE+QEcJQoNCgUGAAIfAxIE+QEwOwoPCgUGAAIfBBIG+gEI/QEKChMKCQYAAh8EsMq8IhIG+gEI/QEKCq0CCgQGAAIgEgaGAgSLAgUanAIKIEdldEFsbG9jSWRTdGF0aXN0aWNzIHRha2VzIG9udUlkIGFuZCBhbGxvY0lkIGFzIGFyZ3VtZW50LgogVGhpcyBtZXRob2QgaW5jbHVkZXMgYSBkZWZhdWx0IHdhaXQgcGVyaW9kIG9mIDEwIHNlY3MgYmVmb3JlIGNvbGxlY3RpbmcgdGhlIHN0YXRzLgogVGhlIGNhbGxlciBoYXMgdG8gYmUgYXdhcmUgb2YgdGhpcyB3YWl0IGFuZCBoYW5kbGUgaXQgYWNjb3JkaW5nbHkuCiBSZXR1cm5zIEFsbG9jSWQgc3RhdGlzdGljcyBpbiB0aGUgZm9ybSBvZiBPbnVBbGxvY1N0YXRpc3RpY3Mgc3RydWN0dXJlCgoNCgUGAAIgARIEhgIIHAoNCgUGAAIgAhIEhgIdJgoNCgUGAAIgAxIEhgIxRQoPCgUGAAIgBBIGhwIIigIKChMKCQYAAiAEsMq8IhIGhwIIigIKCq4BCgQGAAIhEgaRAgWWAgUanQEKIEdldFBvblBvcnRTdGF0aXN0aWNzIHRha2VzIGludGVyZmFjZSBpZCBhbmQgdHlwZSBhcyBhcmd1bWVudCBmcm9tIEludGVyZmFjZSBzdHJ1Y3R1cmUuCiBSZXR1cm5zIFBvbiBwb3J0IHN0YXRpc3RpY3MgaW4gdGhlIGZvcm0gb2YgUG9uU3RhdHNEYXRhIHN0cnVjdHVyZS4KCg0KBQYAAiEBEgSRAgkdCg0KBQYAAiECEgSRAh4nCg0KBQYAAiEDEgSRAjJHCg8KBQYAAiEEEgaSAgiVAgoKEwoJBgACIQSwyrwiEgaSAgiVAgoKswEKBAYAAiISBpwCBaECBRqiAQogR2V0Tm5pUG9ydFN0YXRpc3RpY3MgdGFrZXMgdGFrZXMgaW50ZXJmYWNlIGlkIGFuZCB0eXBlIGFzIGFyZ3VtZW50IGZyb20gSW50ZXJmYWNlIHN0cnVjdHVyZS4KIFJldHVybnMgTm5pIHBvcnQgc3RhdGlzdGljcyBpbiB0aGUgZm9ybSBvZiBObmlTdGF0c0RhdGEgc3RydWN0dXJlCgoNCgUGAAIiARIEnAIJHQoNCgUGAAIiAhIEnAIeJwoNCgUGAAIiAxIEnAIyRwoPCgUGAAIiBBIGnQIIoAIKChMKCQYAAiIEsMq8IhIGnQIIoAIKCsEBCgQGAAIjEgapAgStAgUasAEKIERpc2FibGUgT05VIHNlcmFpbG51bWJlciwgZGlzYWJsZSBkZXZpY2UgYXQgUExPQU0uCiBUYWtlcyBpbnB1dCBhcyBpbnRmaWQsIG9udWlkLCBzbiBvZiB0aGUgT05VLgogUmV0dXJucyBzdWNjZXNzIGlmIHRoZSBjYWxsIHRvd2FyZHMgdGhlIGRldmljZSBpcyBzdWNjZXNzLCBlcnJvciBvdGhlcndpc2UuCgoNCgUGAAIjARIEqQIIEgoNCgUGAAIjAhIEqQIUMQoNCgUGAAIjAxIEqQI8QQoPCgUGAAIjBBIGqgIHrAIJChMKCQYAAiMEsMq8IhIGqgIHrAIJCsABCgQGAAIkEga0AgS4AgUarwEKIEVuYWJsZXMgT05VIHNlcmFpbG51bWJlciwgZW5hYmxlIGRldmljZSBhdCBQTE9BTS4KIFRha2VzIGlucHV0IGFzIGludGZpZCwgb251aWQsIHNuIG9mIHRoZSBPTlUuCiBSZXR1cm5zIHN1Y2Nlc3MgaWYgdGhlIGNhbGwgdG93YXJkcyB0aGUgZGV2aWNlIGlzIHN1Y2Nlc3MsIGVycm9yIG90aGVyd2lzZS4KCg0KBQYAAiQBEgS0AggRCg0KBQYAAiQCEgS0AhMwCg0KBQYAAiQDEgS0AjtACg8KBQYAAiQEEga1Age3AgkKEwoJBgACJASwyrwiEga1Age3AgkK8wEKBAYAAiUSBsACBMQCBRriAQogRGlzYWJsZSBPTlUgc2VyYWlsbnVtYmVyLCBkaXNhYmxlIGRldmljZSBhdCBQTE9BTQogVGFrZXMgaW5wdXQgYXMgaW50ZmlkIGFuZCBzbiBvZiB0aGUgT05VLiBHZW5lcmFsbHkgdXNlZCB3aGVuIHRoZSBvbnUgaXMgbm90IHByZXNlbnQgaW4gdGhlIE9MVC4KIFJldHVybnMgc3VjY2VzcyBpZiB0aGUgY2FsbCB0b3dhcmRzIHRoZSBkZXZpY2UgaXMgc3VjY2VzcywgZXJyb3Igb3RoZXJ3aXNlLgoKDQoFBgACJQESBMACCB4KDQoFBgACJQISBMACHzcKDQoFBgACJQMSBMACQkcKDwoFBgACJQQSBsECB8MCCQoTCgkGAAIlBLDKvCISBsECB8MCCQrzAQoEBgACJhIGywIEzwIFGuIBIAogRW5hYmxlcyBPTlUgc2VyYWlsbnVtYmVyLCBlbmFibGUgZGV2aWNlIGF0IFBMT0FNCiBUYWtlcyBpbnB1dCBhcyBpbnRmaWQgYW5kIHNuIG9mIHRoZSBPTlUuIEdlbmVyYWxseSB1c2VkIHdoZW4gdGhlIG9udSBpcyBub3QgcHJlc2VudCBpbiB0aGUgT0xULgogUmV0dXJucyBzdWNjZXNzIGlmIHRoZSBjYWxsIHRvd2FyZHMgdGhlIGRldmljZSBpcyBzdWNjZXNzLCBlcnJvciBvdGhlcndpc2UuCgoNCgUGAAImARIEywIIHQoNCgUGAAImAhIEywIeNgoNCgUGAAImAxIEywJBRgoPCgUGAAImBBIGzAIHzgIJChMKCQYAAiYEsMq8IhIGzAIHzgIJCgwKAgQAEgbSAgDhAgEKCwoDBAABEgTSAggSCg4KBAQACAASBtMCBOACBQoNCgUEAAgAARIE0wIKDgoMCgQEAAIAEgTUAggiCg0KBQQAAgAGEgTUAggVCg0KBQQAAgABEgTUAhYdCg0KBQQAAgADEgTUAiAhCgwKBAQAAgESBNUCCCQKDQoFBAACAQYSBNUCCBYKDQoFBAACAQESBNUCFx8KDQoFBAACAQMSBNUCIiMKDAoEBAACAhIE1gIILQoNCgUEAAICBhIE1gIIGgoNCgUEAAICARIE1gIbKAoNCgUEAAICAxIE1gIrLAoMCgQEAAIDEgTXAggrCg0KBQQAAgMGEgTXAggZCg0KBQQAAgMBEgTXAhomCg0KBQQAAgMDEgTXAikqCgwKBAQAAgQSBNgCCCIKDQoFBAACBAYSBNgCCBUKDQoFBAACBAESBNgCFh0KDQoFBAACBAMSBNgCICEKDAoEBAACBRIE2QIIJAoNCgUEAAIFBhIE2QIIFgoNCgUEAAIFARIE2QIXHwoNCgUEAAIFAxIE2QIiIwoMCgQEAAIGEgTaAgglCg0KBQQAAgYGEgTaAggYCg0KBQQAAgYBEgTaAhkgCg0KBQQAAgYDEgTaAiMkCgwKBAQAAgcSBNsCCC0KDQoFBAACBwYSBNsCCB0KDQoFBAACBwESBNsCHigKDQoFBAACBwMSBNsCKywKDAoEBAACCBIE3AIIJgoNCgUEAAIIBhIE3AIIFgoNCgUEAAIIARIE3AIXIQoNCgUEAAIIAxIE3AIkJQoMCgQEAAIJEgTdAggmCg0KBQQAAgkGEgTdAggXCg0KBQQAAgkBEgTdAhghCg0KBQQAAgkDEgTdAiMlCgwKBAQAAgoSBN4CCDUKDQoFBAACCgYSBN4CCB0KDQoFBAACCgESBN4CHy8KDQoFBAACCgMSBN4CMjQKDAoEBAACCxIE3wIINAoNCgUEAAILBhIE3wIIHAoNCgUEAAILARIE3wIfLgoNCgUEAAILAxIE3wIxMwoMCgIEARIG4wIA+QIBCgsKAwQBARIE4wIIFwoOCgQEAQgAEgbkAgT4AgUKDQoFBAEIAAESBOQCCg4KDAoEBAECABIE5QIIIgoNCgUEAQIABhIE5QIIFQoNCgUEAQIAARIE5QIWHQoNCgUEAQIAAxIE5QIgIQoMCgQEAQIBEgTmAggvCg0KBQQBAgEGEgTmAggbCg0KBQQBAgEBEgTmAhwqCg0KBQQBAgEDEgTmAi0uCgwKBAQBAgISBOcCCC0KDQoFBAECAgYSBOcCCBoKDQoFBAECAgESBOcCGygKDQoFBAECAgMSBOcCKywKDAoEBAECAxIE6AIIPQoNCgUEAQIDBhIE6AIIIwoNCgUEAQIDARIE6AIkOAoNCgUEAQIDAxIE6AI7PAoMCgQEAQIEEgTpAgg+Cg0KBQQBAgQGEgTpAggiCg0KBQQBAgQBEgTpAiM5Cg0KBQQBAgQDEgTpAjw9CgwKBAQBAgUSBOoCCD8KDQoFBAECBQYSBOoCCCIKDQoFBAECBQESBOoCIzoKDQoFBAECBQMSBOoCPT4KDAoEBAECBhIE6wIIPQoNCgUEAQIGBhIE6wIIJgoNCgUEAQIGARIE6wInOAoNCgUEAQIGAxIE6wI7PAoMCgQEAQIHEgTsAgg9Cg0KBQQBAgcGEgTsAggjCg0KBQQBAgcBEgTsAiQ4Cg0KBQQBAgcDEgTsAjs8CgwKBAQBAggSBO0CCDwKDQoFBAECCAYSBO0CCCoKDQoFBAECCAESBO0CKzcKDQoFBAECCAMSBO0COjsKDAoEBAECCRIE7gIIRAoNCgUEAQIJBhIE7gIIJgoNCgUEAQIJARIE7gInPgoNCgUEAQIJAxIE7gJBQwoMCgQEAQIKEgTvAghDCg0KBQQBAgoGEgTvAggkCg0KBQQBAgoBEgTvAiU9Cg0KBQQBAgoDEgTvAkBCCgwKBAQBAgsSBPACCEkKDQoFBAECCwYSBPACCCkKDQoFBAECCwESBPACKkMKDQoFBAECCwMSBPACRkgKDAoEBAECDBIE8QIIPAoNCgUEAQIMBhIE8QIIIAoNCgUEAQIMARIE8QIhNgoNCgUEAQIMAxIE8QI5OwoMCgQEAQINEgTyAghLCg0KBQQBAg0GEgTyAggoCg0KBQQBAg0BEgTyAilFCg0KBQQBAg0DEgTyAkhKCgwKBAQBAg4SBPMCCD0KDQoFBAECDgYSBPMCCCEKDQoFBAECDgESBPMCIjcKDQoFBAECDgMSBPMCOjwKDAoEBAECDxIE9AIIUwoNCgUEAQIPBhIE9AIIMAoNCgUEAQIPARIE9AIxTQoNCgUEAQIPAxIE9AJQUgoMCgQEAQIQEgT1AghSCg0KBQQBAhAGEgT1AggrCg0KBQQBAhABEgT1AixMCg0KBQQBAhADEgT1Ak9RCgwKBAQBAhESBPYCCEQKDQoFBAECEQYSBPYCCCoKDQoFBAECEQESBPYCKz4KDQoFBAECEQMSBPYCQUMKDAoEBAECEhIE9wIIUAoNCgUEAQISBhIE9wIILgoNCgUEAQISARIE9wIvSgoNCgUEAQISAxIE9wJNTwoMCgIEAhIG+wIA/QIBCgsKAwQCARIE+wIIFQoYCgQEAgIAEgT8AgQaIgogdXAsIGRvd24KCg0KBQQCAgAFEgT8AgQKCg0KBQQCAgABEgT8AgsVCg0KBQQCAgADEgT8AhgZCgwKAgQDEgb/AgCCAwEKCwoDBAMBEgT/AggWCgwKBAQDAgASBIADBBgKDQoFBAMCAAUSBIADBAsKDQoFBAMCAAESBIADDBMKDQoFBAMCAAMSBIADFhcKGAoEBAMCARIEgQMEGiIKIHVwLCBkb3duCgoNCgUEAwIBBRIEgQMECgoNCgUEAwIBARIEgQMLFQoNCgUEAwIBAxIEgQMYGQoMCgIEBBIGhAMAhwMBCgsKAwQEARIEhAMIGQoMCgQEBAIAEgSFAwQYCg0KBQQEAgAFEgSFAwQLCg0KBQQEAgABEgSFAwwTCg0KBQQEAgADEgSFAxYXCgwKBAQEAgESBIYDBCMKDQoFBAQCAQYSBIYDBBAKDQoFBAQCAQESBIYDER4KDQoFBAQCAQMSBIYDISIKDAoCBAUSBokDAJsDAQoLCgMEBQESBIkDCBUKDAoEBAUCABIEigMEGAoNCgUEBQIABRIEigMECwoNCgUEBQIAARIEigMMEwoNCgUEBQIAAxIEigMWFwoMCgQEBQIBEgSLAwQXCg0KBQQFAgEFEgSLAwQLCg0KBQQFAgEBEgSLAwwSCg0KBQQFAgEDEgSLAxUWChgKBAQFAgISBIwDBBoiCiB1cCwgZG93bgoKDQoFBAUCAgUSBIwDBAoKDQoFBAUCAgESBIwDCxUKDQoFBAUCAgMSBIwDGBkKGAoEBAUCAxIEjQMEGyIKIHVwLCBkb3duCgoNCgUEBQIDBRIEjQMECgoNCgUEBQIDARIEjQMLFgoNCgUEBQIDAxIEjQMZGgoMCgQEBQIEEgSOAwQjCg0KBQQFAgQGEgSOAwQQCg0KBQQFAgQBEgSOAxEeCg0KBQQFAgQDEgSOAyEiCioKBAQFBAASBpADBJgDBRoaKiBhY3RpdmF0aW9uIGZhaWwgcmVhc29uLiAKDQoFBAUEAAESBJADCR0KDgoGBAUEAAIAEgSSAwgsCg8KBwQFBAACAAESBJIDCCcKDwoHBAUEAAIAAhIEkgMqKwogCgYEBQQAAgESBJMDCC8iEFJhbmdpbmcgRmFpbHVyZQoKDwoHBAUEAAIBARIEkwMIKgoPCgcEBQQAAgECEgSTAy0uCigKBgQFBAACAhIElAMIPyIYUGFzc3dvcmQgYXV0aGVudGljYXRpb24KCg8KBwQFBAACAgESBJQDCDoKDwoHBAUEAAICAhIElAM9PgoUCgYEBQQAAgMSBJUDCCsiBExPUwoKDwoHBAUEAAIDARIElQMIJgoPCgcEBQQAAgMCEgSVAykqChsKBgQFBAACBBIElgMIKiILIE9OVSBBbGFybQoKDwoHBAUEAAIEARIElgMIJQoPCgcEBQQAAgQCEgSWAygpCicKBgQFBAACBRIElwMILCIXcHJvdGVjdGlvbiBzd2l0Y2ggb3ZlcgoKDwoHBAUEAAIFARIElwMIJwoPCgcEBQQAAgUCEgSXAyorCgwKBAQFAgUSBJkDBCkKDQoFBAUCBQYSBJkDBBgKDQoFBAUCBQESBJkDGSQKDQoFBAUCBQMSBJkDJygKDAoCBAYSBp0DAKEDAQoLCgMEBgESBJ0DCB0KDAoEBAYCABIEngMEGAoNCgUEBgIABRIEngMECwoNCgUEBgIAARIEngMMEwoNCgUEBgIAAxIEngMWFwoMCgQEBgIBEgSfAwQXCg0KBQQGAgEFEgSfAwQLCg0KBQQGAgEBEgSfAwwSCg0KBQQGAgEDEgSfAxUWCgwKBAQGAgISBKADBCMKDQoFBAYCAgYSBKADBBAKDQoFBAYCAgESBKADER4KDQoFBAYCAgMSBKADISIKDAoCBAcSBqMDAKcDAQoLCgMEBwESBKMDCBwKDAoEBAcCABIEpAMEGAoNCgUEBwIABRIEpAMECwoNCgUEBwIAARIEpAMMEwoNCgUEBwIAAxIEpAMWFwoMCgQEBwIBEgSlAwQXCg0KBQQHAgEFEgSlAwQLCg0KBQQHAgEBEgSlAwwSCg0KBQQHAgEDEgSlAxUWCgwKBAQHAgISBKYDBCMKDQoFBAcCAgYSBKYDBBAKDQoFBAcCAgESBKYDER4KDQoFBAcCAgMSBKYDISIKDAoCBAgSBqoDAMYDAQoLCgMECAESBKoDCBoKGAoEBAgCABIEqwMEFCIKIG5uaSwgcG9uCgoNCgUECAIABRIEqwMECgoNCgUECAIAARIEqwMLDwoNCgUECAIAAxIEqwMSEwoMCgQECAIBEgSsAwQYCg0KBQQIAgEFEgSsAwQLCg0KBQQIAgEBEgSsAwwTCg0KBQQIAgEDEgSsAxYXChgKBAQIAgISBK0DBBoiCiB1cCwgZG93bgoKDQoFBAgCAgUSBK0DBAoKDQoFBAgCAgESBK0DCxUKDQoFBAgCAgMSBK0DGBkKIAoEBAgCAxIErgMEFiISIG1lYXN1cmVkIGluIE1icHMKCg0KBQQIAgMFEgSuAwQLCg0KBQQIAgMBEgSuAwwRCg0KBQQIAgMDEgSuAxQVCgwKBAQIAgQSBK8DBBoKDQoFBAgCBAUSBK8DBAoKDQoFBAgCBAESBK8DCxUKDQoFBAgCBAMSBK8DGBkKDgoEBAgDABIGsQMEwwMFCg0KBQQIAwABEgSxAwwdChAKBgQIAwADABIGswMIwAMJCg8KBwQIAwADAAESBLMDEBQKEgoIBAgDAAMABAASBrUDDLoDDQoRCgkECAMAAwAEAAESBLUDERkKEgoKBAgDAAMABAACABIEtgMQGwoTCgsECAMAAwAEAAIAARIEtgMQFgoTCgsECAMAAwAEAAIAAhIEtgMZGgoSCgoECAMAAwAEAAIBEgS3AxAdChMKCwQIAwADAAQAAgEBEgS3AxAYChMKCwQIAwADAAQAAgECEgS3AxscChIKCgQIAwADAAQAAgISBLgDEB8KEwoLBAgDAAMABAACAgESBLgDEBoKEwoLBAgDAAMABAACAgISBLgDHR4KEgoKBAgDAAMABAACAxIEuQMQHAoTCgsECAMAAwAEAAIDARIEuQMQFwoTCgsECAMAAwAEAAIDAhIEuQMaGwoQCggECAMAAwACABIEvQMMHgoRCgkECAMAAwACAAYSBL0DDBQKEQoJBAgDAAMAAgABEgS9AxUZChEKCQQIAwADAAIAAxIEvQMcHQo/CggECAMAAwACARIEvgMMHiItIGxvd2VyIGJvdW5kIG9uIElEcyBhbGxvY2F0ZWQgZnJvbSB0aGlzIHBvb2wKChEKCQQIAwADAAIBBRIEvgMMEwoRCgkECAMAAwACAQESBL4DFBkKEQoJBAgDAAMAAgEDEgS+AxwdCj8KCAQIAwADAAICEgS/AwwcIi0gdXBwZXIgYm91bmQgb24gSURzIGFsbG9jYXRlZCBmcm9tIHRoaXMgcG9vbAoKEQoJBAgDAAMAAgIFEgS/AwwTChEKCQQIAwADAAICARIEvwMUFwoRCgkECAMAAwACAgMSBL8DGhsKDgoGBAgDAAIAEgTCAwggCg8KBwQIAwACAAQSBMIDCBAKDwoHBAgDAAIABhIEwgMRFQoPCgcECAMAAgABEgTCAxYbCg8KBwQIAwACAAMSBMIDHh8KDAoEBAgCBRIExQMEIQoNCgUECAIFBhIExQMEFQoNCgUECAIFARIExQMWHAoNCgUECAIFAxIExQMfIAoMCgIECRIGyAMAzAMBCgsKAwQJARIEyAMIFgoMCgQECQIAEgTJAwQYCg0KBQQJAgAFEgTJAwQLCg0KBQQJAgABEgTJAwwTCg0KBQQJAgADEgTJAxYXCgwKBAQJAgESBMoDBBcKDQoFBAkCAQUSBMoDBAsKDQoFBAkCAQESBMoDDBIKDQoFBAkCAQMSBMoDFRYKDAoEBAkCAhIEywMEEgoNCgUECQICBRIEywMECQoNCgUECQICARIEywMKDQoNCgUECQICAxIEywMQEQoMCgIEChIGzgMA2AMBCgsKAwQKARIEzgMIGAohCgQECgIAEgTPAwQZIhMgbm5pLCBwb24sIHVua25vd24KCg0KBQQKAgAFEgTPAwQKCg0KBQQKAgABEgTPAwsUCg0KBQQKAgADEgTPAxcYCgwKBAQKAgESBNADBBgKDQoFBAoCAQUSBNADBAsKDQoFBAoCAQESBNADDBMKDQoFBAoCAQMSBNADFhcKDAoEBAoCAhIE0QMEFwoNCgUECgICBRIE0QMECwoNCgUECgICARIE0QMMEgoNCgUECgICAxIE0QMVFgoMCgQECgIDEgTSAwQXCg0KBQQKAgMFEgTSAwQLCg0KBQQKAgMBEgTSAwwSCg0KBQQKAgMDEgTSAxUWCgwKBAQKAgQSBNMDBBsKDQoFBAoCBAUSBNMDBAsKDQoFBAoCBAESBNMDDBYKDQoFBAoCBAMSBNMDGRoKDAoEBAoCBRIE1AMEGAoNCgUECgIFBRIE1AMECwoNCgUECgIFARIE1AMMEwoNCgUECgIFAxIE1AMWFwoMCgQECgIGEgTVAwQYCg0KBQQKAgYFEgTVAwQLCg0KBQQKAgYBEgTVAwwTCg0KBQQKAgYDEgTVAxYXCgwKBAQKAgcSBNYDBBcKDQoFBAoCBwUSBNYDBAsKDQoFBAoCBwESBNYDDBIKDQoFBAoCBwMSBNYDFRYKDAoEBAoCCBIE1wMEEgoNCgUECgIIBRIE1wMECQoNCgUECgIIARIE1wMKDQoNCgUECgIIAxIE1wMQEQoMCgIECxIG2gMA3QMBCgsKAwQLARIE2gMIEQoMCgQECwIAEgTbAwQYCg0KBQQLAgAFEgTbAwQLCg0KBQQLAgABEgTbAwwTCg0KBQQLAgADEgTbAxYXCgwKBAQLAgESBNwDBBoKDQoFBAsCAQUSBNwDBAsKDQoFBAsCAQESBNwDDBUKDQoFBAsCAQMSBNwDGBkKDAoCBAwSBt8DAOEDAQoLCgMEDAESBN8DCBEKDAoEBAwCABIE4AMEJAoNCgUEDAIABRIE4AMECwoNCgUEDAIAARIE4AMMHwoNCgUEDAIAAxIE4AMiIwoMCgIEDRIG4wMA6QMBCgsKAwQNARIE4wMICwoMCgQEDQIAEgTkAwQYCg0KBQQNAgAFEgTkAwQLCg0KBQQNAgABEgTkAwwTCg0KBQQNAgADEgTkAxYXCgwKBAQNAgESBOUDBBcKDQoFBA0CAQUSBOUDBAsKDQoFBA0CAQESBOUDDBIKDQoFBA0CAQMSBOUDFRYKDAoEBA0CAhIE5gMEIwoNCgUEDQICBhIE5gMEEAoNCgUEDQICARIE5gMRHgoNCgUEDQICAxIE5gMhIgo1CgQEDQIDEgTnAwQUIicgcGVhayBpbmZvcm1hdGlvbiByYXRlIGFzc2lnbmVkIHRvIG9udQoKDQoFBA0CAwUSBOcDBAsKDQoFBA0CAwESBOcDDA8KDQoFBA0CAwMSBOcDEhMKDAoEBA0CBBIE6AMEHQoNCgUEDQIEBRIE6AMECAoNCgUEDQIEARIE6AMJGAoNCgUEDQIEAxIE6AMbHAoMCgIEDhIG6wMA8AMBCgsKAwQOARIE6wMIGgoMCgQEDgIAEgTsAwQYCg0KBQQOAgAFEgTsAwQLCg0KBQQOAgABEgTsAwwTCg0KBQQOAgADEgTsAxYXCgwKBAQOAgESBO0DBBcKDQoFBA4CAQUSBO0DBAsKDQoFBA4CAQESBO0DDBIKDQoFBA4CAQMSBO0DFRYKIwoEBA4CAhIE7gMEKiIVMGttIGxvZ2ljYWwgZGlzdGFuY2UKCg0KBQQOAgIFEgTuAwQLCg0KBQQOAgIBEgTuAwwlCg0KBQQOAgIDEgTuAygpCgwKBAQOAgMSBO8DBCUKDQoFBA4CAwUSBO8DBAsKDQoFBA4CAwESBO8DDCAKDQoFBA4CAwMSBO8DIyQKDAoCBA8SBvIDAPYDAQoLCgMEDwESBPIDCA8KDAoEBA8CABIE8wMEGAoNCgUEDwIABRIE8wMECwoNCgUEDwIAARIE8wMMEwoNCgUEDwIAAxIE8wMWFwoMCgQEDwIBEgT0AwQXCg0KBQQPAgEFEgT0AwQLCg0KBQQPAgEBEgT0AwwSCg0KBQQPAgEDEgT0AxUWCgwKBAQPAgISBPUDBBIKDQoFBA8CAgUSBPUDBAkKDQoFBA8CAgESBPUDCg0KDQoFBA8CAgMSBPUDEBEKDAoCBBASBvgDAP8DAQoLCgMEEAESBPgDCBEKDAoEBBACABIE+QMEGAoNCgUEEAIABRIE+QMECwoNCgUEEAIAARIE+QMMEwoNCgUEEAIAAxIE+QMWFwoMCgQEEAIBEgT6AwQXCg0KBQQQAgEFEgT6AwQLCg0KBQQQAgEBEgT6AwwSCg0KBQQQAgEDEgT6AxUWCgwKBAQQAgISBPsDBBgKDQoFBBACAgUSBPsDBAsKDQoFBBACAgESBPsDDBMKDQoFBBACAgMSBPsDFhcKDAoEBBACAxIE/AMEGwoNCgUEEAIDBRIE/AMECwoNCgUEEAIDARIE/AMMFgoNCgUEEAIDAxIE/AMZGgoMCgQEEAIEEgT9AwQZCg0KBQQQAgQFEgT9AwQLCg0KBQQQAgQBEgT9AwwUCg0KBQQQAgQDEgT9AxcYCgwKBAQQAgUSBP4DBBIKDQoFBBACBQUSBP4DBAkKDQoFBBACBQESBP4DCg0KDQoFBBACBQMSBP4DEBEKDAoCBBESBoEEAIQEAQoLCgMEEQESBIEECBQKDAoEBBECABIEggQEGAoNCgUEEQIABRIEggQECwoNCgUEEQIAARIEggQMEwoNCgUEEQIAAxIEggQWFwoMCgQEEQIBEgSDBAQSCg0KBQQRAgEFEgSDBAQJCg0KBQQRAgEBEgSDBAoNCg0KBQQRAgEDEgSDBBARCgwKAgQSEgaGBADBBAEKCwoDBBIBEgSGBAgSCgwKBAQSAgASBIcEBBYKDQoFBBICAAUSBIcEBAoKDQoFBBICAAESBIcECxEKDQoFBBICAAMSBIcEFBUKDAoEBBICARIEiAQEFQoNCgUEEgIBBRIEiAQECgoNCgUEEgIBARIEiAQLEAoNCgUEEgIBAxIEiAQTFAoMCgQEEgICEgSJBAQgCg0KBQQSAgIFEgSJBAQKCg0KBQQSAgIBEgSJBAsbCg0KBQQSAgIDEgSJBB4fCgwKBAQSAgMSBIoEBCAKDQoFBBICAwUSBIoEBAoKDQoFBBICAwESBIoECxsKDQoFBBICAwMSBIoEHh8KDAoEBBICBBIEiwQEGgoNCgUEEgIEBRIEiwQECgoNCgUEEgIEARIEiwQLFAoNCgUEEgIEAxIEiwQXGQoMCgQEEgIFEgSMBAQlCg0KBQQSAgUFEgSMBAQKCg0KBQQSAgUBEgSMBAsfCg0KBQQSAgUDEgSMBCIkCjcKBAQSAgYSBI0EBCMiKSB1c2VkIHRvIGluZGljYXRlIGFnZW50IHJlY29uY2lsZSBzdGF0dXMKCg0KBQQSAgYFEgSNBAQICg0KBQQSAgYBEgSNBAkdCg0KBQQSAgYDEgSNBCAiCjwKBAQSAgcSBJAEBBsaLiBUb3RhbCBudW1iZXIgb2YgcG9uIGludGYgcG9ydHMgb24gdGhlIGRldmljZQoKDQoFBBICBwUSBJAEBAsKDQoFBBICBwESBJAEDBUKDQoFBBICBwMSBJAEGBoKPAoEBBICCBIEkgQEGxouIFRvdGFsIG51bWJlciBvZiBubmkgaW50ZiBwb3J0cyBvbiB0aGUgZGV2aWNlCgoNCgUEEgIIBRIEkgQECwoNCgUEEgIIARIEkgQMFQoNCgUEEgIIAxIEkgQYGgr2AgoDBBIJEgSUBAQdIugCIE5vdCB1c2VkIGFueW1vcmUsIHRoaXMgaW5mb3JtYXRpb24gaXMgZGVmaW5lZCBwZXItcmFuZ2Ugb25seQogYW5kIGlzIGZ1bGx5IHByb3ZpZGVkIGJ5IERldmljZVJlc291cmNlUmFuZ2VzCgogc3RyaW5nIHRlY2hub2xvZ3kgPSA1OwogZml4ZWQzMiBvbnVfaWRfc3RhcnQgPSA2OwogZml4ZWQzMiBvbnVfaWRfZW5kID0gNzsKIGZpeGVkMzIgYWxsb2NfaWRfc3RhcnQgPSA4OwogZml4ZWQzMiBhbGxvY19pZF9lbmQgPSA5OwogZml4ZWQzMiBnZW1wb3J0X2lkX3N0YXJ0ID0gMTA7CiBmaXhlZDMyIGdlbXBvcnRfaWRfZW5kID0gMTE7CiBmaXhlZDMyIGZsb3dfaWRfc3RhcnQgPSAxMzsKIGZpeGVkMzIgZmxvd19pZF9lbmQgPSAxNDsKCgwKBAQSCQASBJQEDRQKDQoFBBIJAAESBJQEDQ4KDQoFBBIJAAISBJQEEhQKDAoEBBIJARIElAQWGAoNCgUEEgkBARIElAQWGAoNCgUEEgkBAhIElAQWGAoMCgQEEgkCEgSUBBocCg0KBQQSCQIBEgSUBBocCg0KBQQSCQICEgSUBBocCg4KBAQSAwASBqIEBL8EBQoNCgUEEgMAARIEogQMIAqHAQoGBBIDAAIAEgSmBAgmGncgTGlzdCBvZiAwIG9yIG1vcmUgaW50Zl9pZHMgdGhhdCB1c2UgdGhlIHNhbWUgdGVjaG5vbG9neSBhbmQgcG9vbHMuCiBJZiAwIGludGZfaWRzIHN1cHBsaWVkLCBpdCBpbXBsaWVzIEFMTCBpbnRlcmZhY2VzCgoPCgcEEgMAAgAEEgSmBAgQCg8KBwQSAwACAAUSBKYEERgKDwoHBBIDAAIAARIEpgQZIQoPCgcEEgMAAgADEgSmBCQlCjIKBgQSAwACARIEqQQIHhoiIFRlY2hub2xvZ3kgcHJvZmlsZSBmb3IgdGhpcyBwb29sCgoPCgcEEgMAAgEFEgSpBAgOCg8KBwQSAwACAQESBKkEDxkKDwoHBBIDAAIBAxIEqQQcHQoQCgYEEgMAAwASBqsECL0ECQoPCgcEEgMAAwABEgSrBBAUChIKCAQSAwADAAQAEgasBAyxBA0KEQoJBBIDAAMABAABEgSsBBEZChIKCgQSAwADAAQAAgASBK0EEBsKEwoLBBIDAAMABAACAAESBK0EEBYKEwoLBBIDAAMABAACAAISBK0EGRoKEgoKBBIDAAMABAACARIErgQQHQoTCgsEEgMAAwAEAAIBARIErgQQGAoTCgsEEgMAAwAEAAIBAhIErgQbHAoSCgoEEgMAAwAEAAICEgSvBBAfChMKCwQSAwADAAQAAgIBEgSvBBAaChMKCwQSAwADAAQAAgICEgSvBB0eChIKCgQSAwADAAQAAgMSBLAEEBwKEwoLBBIDAAMABAACAwESBLAEEBcKEwoLBBIDAAMABAACAwISBLAEGhsKEgoIBBIDAAMABAESBrMEDLcEDQoRCgkEEgMAAwAEAQESBLMEERwKEgoKBBIDAAMABAECABIEtAQQJwoTCgsEEgMAAwAEAQIAARIEtAQQIgoTCgsEEgMAAwAEAQIAAhIEtAQlJgpUCgoEEgMAAwAEAQIBEgS1BBAwIkAgU2hhcmVkIGFjcm9zcyBhbGwgaW50ZXJmYWNlcyBpbiBhbGwgdGVjaG5vbG9naWVzIGluIGFsbCByYW5nZXMKChMKCwQSAwADAAQBAgEBEgS1BBArChMKCwQSAwADAAQBAgECEgS1BC4vClwKCgQSAwADAAQBAgISBLYEEDEiSCBTaGFyZWQgYWNyb3NzIGFsbCBpbnRlcmZhY2VzIG9mIHRoZSBzYW1lIHRlY2hub2xvZ3kgdXNlZCBpbiB0aGlzIHJhbmdlCgoTCgsEEgMAAwAEAQICARIEtgQQLAoTCgsEEgMAAwAEAQICAhIEtgQvMAoQCggEEgMAAwACABIEuQQMHgoRCgkEEgMAAwACAAYSBLkEDBQKEQoJBBIDAAMAAgABEgS5BBUZChEKCQQSAwADAAIAAxIEuQQcHQoQCggEEgMAAwACARIEugQMJAoRCgkEEgMAAwACAQYSBLoEDBcKEQoJBBIDAAMAAgEBEgS6BBgfChEKCQQSAwADAAIBAxIEugQiIwo/CggEEgMAAwACAhIEuwQMHiItIGxvd2VyIGJvdW5kIG9uIElEcyBhbGxvY2F0ZWQgZnJvbSB0aGlzIHBvb2wKChEKCQQSAwADAAICBRIEuwQMEwoRCgkEEgMAAwACAgESBLsEFBkKEQoJBBIDAAMAAgIDEgS7BBwdCj8KCAQSAwADAAIDEgS8BAwcIi0gdXBwZXIgYm91bmQgb24gSURzIGFsbG9jYXRlZCBmcm9tIHRoaXMgcG9vbAoKEQoJBBIDAAMAAgMFEgS8BAwTChEKCQQSAwADAAIDARIEvAQUFwoRCgkEEgMAAwACAwMSBLwEGhsKDgoGBBIDAAICEgS+BAggCg8KBwQSAwACAgQSBL4ECBAKDwoHBBIDAAICBhIEvgQRFQoPCgcEEgMAAgIBEgS+BBYbCg8KBwQSAwACAgMSBL4EHh8KDAoEBBICCRIEwAQELgoNCgUEEgIJBBIEwAQEDAoNCgUEEgIJBhIEwAQNIQoNCgUEEgIJARIEwAQiKAoNCgUEEgIJAxIEwAQrLQoMCgIEExIGwwQA0wQBCgsKAwQTARIEwwQIEgoMCgQEEwIAEgTEBAQXCg0KBQQTAgAFEgTEBAQLCg0KBQQTAgABEgTEBAwSCg0KBQQTAgADEgTEBBUWCgwKBAQTAgESBMUEBBYKDQoFBBMCAQUSBMUEBAsKDQoFBBMCAQESBMUEDBEKDQoFBBMCAQMSBMUEFBUKDAoEBBMCAhIExgQEFwoNCgUEEwICBRIExgQECwoNCgUEEwICARIExgQMEgoNCgUEEwICAxIExgQVFgoMCgQEEwIDEgTHBAQWCg0KBQQTAgMFEgTHBAQLCg0KBQQTAgMBEgTHBAwRCg0KBQQTAgMDEgTHBBQVCgwKBAQTAgQSBMgEBBgKDQoFBBMCBAUSBMgEBAsKDQoFBBMCBAESBMgEDBMKDQoFBBMCBAMSBMgEFhcKDAoEBBMCBRIEyQQEGAoNCgUEEwIFBRIEyQQECwoNCgUEEwIFARIEyQQMEwoNCgUEEwIFAxIEyQQWFwoMCgQEEwIGEgTKBAQZCg0KBQQTAgYFEgTKBAQLCg0KBQQTAgYBEgTKBAwUCg0KBQQTAgYDEgTKBBcYCgwKBAQTAgcSBMsEBBYKDQoFBBMCBwUSBMsEBAkKDQoFBBMCBwESBMsEChEKDQoFBBMCBwMSBMsEFBUKDAoEBBMCCBIEzAQEFgoNCgUEEwIIBRIEzAQECQoNCgUEEwIIARIEzAQKEQoNCgUEEwIIAxIEzAQUFQoMCgQEEwIJEgTNBAQaCg0KBQQTAgkFEgTNBAQLCg0KBQQTAgkBEgTNBAwUCg0KBQQTAgkDEgTNBBcZCgwKBAQTAgoSBM4EBBgKDQoFBBMCCgUSBM4EBAsKDQoFBBMCCgESBM4EDBIKDQoFBBMCCgMSBM4EFRcKDAoEBBMCCxIEzwQEGAoNCgUEEwILBRIEzwQECwoNCgUEEwILARIEzwQMEgoNCgUEEwILAxIEzwQVFwoMCgQEEwIMEgTQBAQaCg0KBQQTAgwFEgTQBAQLCg0KBQQTAgwBEgTQBAwUCg0KBQQTAgwDEgTQBBcZCgwKBAQTAg0SBNEEBBoKDQoFBBMCDQUSBNEEBAsKDQoFBBMCDQESBNEEDBQKDQoFBBMCDQMSBNEEFxkKMAoEBBMCDhIE0gQEHSIiIHVudGFnZ2VkLCBzaW5nbGVfdGFnLCBkb3VibGVfdGFnCgoNCgUEEwIOBRIE0gQECgoNCgUEEwIOARIE0gQLFwoNCgUEEwIOAxIE0gQaHAoMCgIEFBIG1QQA3wQBCgsKAwQUARIE1QQIEQoMCgQEFAIAEgTWBAQbCg0KBQQUAgAFEgTWBAQICg0KBQQUAgABEgTWBAkWCg0KBQQUAgADEgTWBBkaCgwKBAQUAgESBNcEBB4KDQoFBBQCAQUSBNcEBAgKDQoFBBQCAQESBNcECRkKDQoFBBQCAQMSBNcEHB0KDAoEBBQCAhIE2AQEGgoNCgUEFAICBRIE2AQECAoNCgUEFAICARIE2AQJFQoNCgUEFAICAxIE2AQYGQoMCgQEFAIDEgTZBAQgCg0KBQQUAgMFEgTZBAQICg0KBQQUAgMBEgTZBAkbCg0KBQQUAgMDEgTZBB4fCgwKBAQUAgQSBNoEBCAKDQoFBBQCBAUSBNoEBAgKDQoFBBQCBAESBNoECRsKDQoFBBQCBAMSBNoEHh8KDAoEBBQCBRIE2wQEGwoNCgUEFAIFBRIE2wQECAoNCgUEFAIFARIE2wQJFgoNCgUEFAIFAxIE2wQZGgoMCgQEFAIGEgTcBAQeCg0KBQQUAgYFEgTcBAQICg0KBQQUAgYBEgTcBAkZCg0KBQQUAgYDEgTcBBwdCgwKBAQUAgcSBN0EBCEKDQoFBBQCBwUSBN0EBAgKDQoFBBQCBwESBN0ECRwKDQoFBBQCBwMSBN0EHyAKDAoEBBQCCBIE3gQEIQoNCgUEFAIIBRIE3gQECAoNCgUEFAIIARIE3gQJHAoNCgUEFAIIAxIE3gQfIAoMCgIEFRIG4QQA6QQBCgsKAwQVARIE4QQIDgoMCgQEFQIAEgTiBAQWCg0KBQQVAgAGEgTiBAQNCg0KBQQVAgABEgTiBA4RCg0KBQQVAgADEgTiBBQVCgwKBAQVAgESBOMEBBYKDQoFBBUCAQUSBOMEBAsKDQoFBBUCAQESBOMEDBEKDQoFBBUCAQMSBOMEFBUKDAoEBBUCAhIE5AQEGAoNCgUEFQICBRIE5AQECwoNCgUEFQICARIE5AQMEwoNCgUEFQICAxIE5AQWFwoMCgQEFQIDEgTlBAQXCg0KBQQVAgMFEgTlBAQLCg0KBQQVAgMBEgTlBAwSCg0KBQQVAgMDEgTlBBUWCgwKBAQVAgQSBOYEBBYKDQoFBBUCBAUSBOYEBAsKDQoFBBUCBAESBOYEDBEKDQoFBBUCBAMSBOYEFBUKDAoEBBUCBRIE5wQEGAoNCgUEFQIFBRIE5wQECwoNCgUEFQIFARIE5wQMEwoNCgUEFQIFAxIE5wQWFwoMCgQEFQIGEgToBAQXCg0KBQQVAgYFEgToBAQLCg0KBQQVAgYBEgToBAwSCg0KBQQVAgYDEgToBBUWCgwKAgQWEgbrBACEBQEKCwoDBBYBEgTrBAgMCgwKBAQWAgASBOwEBCAKDQoFBBYCAAUSBOwEBAwKDQoFBBYCAAESBOwEDRsKDQoFBBYCAAMSBOwEHh8KDAoEBBYCARIE7QQEGAoNCgUEFgIBBRIE7QQEDAoNCgUEFgIBARIE7QQNEwoNCgUEFgIBAxIE7QQWFwoMCgQEFgICEgTuBAQZCg0KBQQWAgIFEgTuBAQMCg0KBQQWAgIBEgTuBA0TCg0KBQQWAgIDEgTuBBYYCjgKBAQWAgMSBPAEBBgiKiB2b2x0aGEgZmxvdy1pZC4gMCBpcyBub3QgYSB2YWxpZCBmbG93X2lkCgoNCgUEFgIDBRIE8AQECwoNCgUEFgIDARIE8AQMEwoNCgUEFgIDAxIE8AQWFwptCgQEFgIEEgTxBAQjIl8gc3ltbWV0cmljIHZvbHRoYSBmbG93LWlkLCBpZiBhcHBsaWNhYmxlLiBBbGwgZGF0YSBwYXRoIGZsb3dzIGdlbmVyYWxseSBoYXZlIGEgc3ltbWV0cmljIGZsb3csCgoNCgUEFgIEBRIE8QQECwoNCgUEFgIEARIE8QQMHQoNCgUEFgIEAxIE8QQgIgq9AQoEBBYCBRIE9QQEGSIsIHVwc3RyZWFtLCBkb3duc3RyZWFtLCBicm9hZGNhc3QsIG11bHRpY2FzdAoygAEgYnV0IHRyYXAtdG8tY29udHJvbGxlciBmbG93cyBkbyBub3QgaGF2ZSBhIHN5bW1ldHJpYyBmbG93CiBCcm9hZGNvbSBCQUwgcmVxdWlyZXMgdGhhdCBzeW1tZXRyaWMgZmxvd3MgdXNlIHRoZSBzYW1lIEJBTCBmbG93LWlkCgoNCgUEFgIFBRIE9QQECgoNCgUEFgIFARIE9QQLFAoNCgUEFgIFAxIE9QQXGAoMCgQEFgIGEgT2BAQbCg0KBQQWAgYFEgT2BAQMCg0KBQQWAgYBEgT2BA0VCg0KBQQWAgYDEgT2BBgaCgwKBAQWAgcSBPcEBCEKDQoFBBYCBwUSBPcEBAwKDQoFBBYCBwESBPcEDRwKDQoFBBYCBwMSBPcEHyAKTAoEBBYCCBIE+AQEHCI+IFdoZW4gJ3JlcGxpY2F0ZV9mbG93JyBmaWVsZCBpcyB0cnVlLCB0aGlzIGZpZWxkIGlzIG9ic29sZXRlLgoKDQoFBBYCCAUSBPgEBAwKDQoFBBYCCAESBPgEDRcKDQoFBBYCCAMSBPgEGhsKDAoEBBYCCRIE+QQEHgoNCgUEFgIJBhIE+QQEDgoNCgUEFgIJARIE+QQPGQoNCgUEFgIJAxIE+QQcHQoMCgQEFgIKEgT6BAQWCg0KBQQWAgoGEgT6BAQKCg0KBQQWAgoBEgT6BAsRCg0KBQQWAgoDEgT6BBQVCgwKBAQWAgsSBPsEBBoKDQoFBBYCCwUSBPsEBAwKDQoFBBYCCwESBPsEDRUKDQoFBBYCCwMSBPsEGBkKZAoEBBYCDBIE/AQEGCJWIG11c3QgYmUgcHJvdmlkZWQgZm9yIGFueSBmbG93IHdpdGggdHJhcF90b19ob3N0IGFjdGlvbi4gUmV0dXJuZWQgaW4gUGFja2V0SW5kaWNhdGlvbgoKDQoFBBYCDAUSBPwEBAsKDQoFBBYCDAESBPwEDBIKDQoFBBYCDAMSBPwEFRcKZAoEBBYCDRIE/QQEGSJWIG11c3QgYmUgcHJvdmlkZWQgZm9yIGFueSBmbG93IHdpdGggdHJhcF90b19ob3N0IGFjdGlvbi4gUmV0dXJuZWQgaW4gUGFja2V0SW5kaWNhdGlvbgoKDQoFBBYCDQUSBP0EBAsKDQoFBBYCDQESBP0EDBMKDQoFBBYCDQMSBP0EFhgKDAoEBBYCDhIE/gQEGgoNCgUEFgIOBRIE/gQECwoNCgUEFgIOARIE/gQMFAoNCgUEFgIOAxIE/gQXGQoMCgQEFgIPEgT/BAQhCg0KBQQWAg8FEgT/BAQLCg0KBQQWAg8BEgT/BAwbCg0KBQQWAg8DEgT/BB4gCnkKBAQWAhASBIEFBB0iayBXaGVuIHRoaXMgZmllbGQgaXMgdHJ1ZSwgdXNlIHBiaXRUb0dlbVBvcnRJRCB0byBrbm93IHdoaWNoIHAtYml0IG5lZWRzIHRvIGJlIGNsYXNzZmllZCB0byB3aGljaCBnZW0gcG9ydC4KCg0KBQQWAhAFEgSBBQQICg0KBQQWAhABEgSBBQkXCg0KBQQWAhADEgSBBRocCisKBAQWAhESBIIFBC8iHSBNYXAgb2YgcC1iaXQgdG8gZ2VtIHBvcnQgSUQKCg0KBQQWAhEGEgSCBQQZCg0KBQQWAhEBEgSCBRopCg0KBQQWAhEDEgSCBSwuCjQKBAQWAhISBIMFBCsiJiBNYXAgb2YgZ2VtIHBvcnQgSUQgdG8gYWVzIGVuY3J5cHRpb24KCg0KBQQWAhIGEgSDBQQWCg0KBQQWAhIBEgSDBRclCg0KBQQWAhIDEgSDBSgqCgwKAgQXEgaGBQCJBQEKCwoDBBcBEgSGBQgUCgwKBAQXAgASBIcFBBgKDQoFBBcCAAUSBIcFBAkKDQoFBBcCAAESBIcFChMKDQoFBBcCAAMSBIcFFhcKDAoEBBcCARIEiAUEHgoNCgUEFwIBBRIEiAUECQoNCgUEFwIBARIEiAUKGQoNCgUEFwIBAxIEiAUcHQoMCgIEGBIGiwUApgUBCgsKAwQYARIEiwUIFQoMCgQEGAIAEgSMBQQYCg0KBQQYAgAFEgSMBQQLCg0KBQQYAgABEgSMBQwTCg0KBQQYAgADEgSMBRYXCgwKBAQYAgESBI0FBBcKDQoFBBgCAQUSBI0FBAsKDQoFBBgCAQESBI0FDBIKDQoFBBgCAQMSBI0FFRYKDAoEBBgCAhIEjgUEHwoNCgUEGAICBRIEjgUECwoNCgUEGAICARIEjgUMGgoNCgUEGAICAxIEjgUdHgoMCgQEGAIDEgSPBQQfCg0KBQQYAgMFEgSPBQQLCg0KBQQYAgMBEgSPBQwaCg0KBQQYAgMDEgSPBR0eCgwKBAQYAgQSBJAFBCkKDQoFBBgCBAUSBJAFBAsKDQoFBBgCBAESBJAFDCQKDQoFBBgCBAMSBJAFJygKDAoEBBgCBRIEkQUEGwoNCgUEGAIFBRIEkQUECwoNCgUEGAIFARIEkQUMFgoNCgUEGAIFAxIEkQUZGgoMCgQEGAIGEgSSBQQaCg0KBQQYAgYFEgSSBQQLCg0KBQQYAgYBEgSSBQwVCg0KBQQYAgYDEgSSBRgZCgwKBAQYAgcSBJMFBCYKDQoFBBgCBwUSBJMFBAsKDQoFBBgCBwESBJMFDCEKDQoFBBgCBwMSBJMFJCUKDAoEBBgCCBIElAUEKAoNCgUEGAIIBRIElAUECwoNCgUEGAIIARIElAUMIwoNCgUEGAIIAxIElAUmJwoMCgQEGAIJEgSVBQQtCg0KBQQYAgkFEgSVBQQLCg0KBQQYAgkBEgSVBQwnCg0KBQQYAgkDEgSVBSosCgwKBAQYAgoSBJYFBB8KDQoFBBgCCgUSBJYFBAsKDQoFBBgCCgESBJYFDBkKDQoFBBgCCgMSBJYFHB4KDAoEBBgCCxIElwUEJQoNCgUEGAILBRIElwUECwoNCgUEGAILARIElwUMHwoNCgUEGAILAxIElwUiJAoMCgQEGAIMEgSYBQQhCg0KBQQYAgwFEgSYBQQLCg0KBQQYAgwBEgSYBQwbCg0KBQQYAgwDEgSYBR4gCgwKBAQYAg0SBJkFBBsKDQoFBBgCDQUSBJkFBAsKDQoFBBgCDQESBJkFDBUKDQoFBBgCDQMSBJkFGBoKDAoEBBgCDhIEmgUEIQoNCgUEGAIOBRIEmgUECwoNCgUEGAIOARIEmgUMGwoNCgUEGAIOAxIEmgUeIAoMCgQEGAIPEgSbBQQkCg0KBQQYAg8FEgSbBQQLCg0KBQQYAg8BEgSbBQweCg0KBQQYAg8DEgSbBSEjCgwKBAQYAhASBJwFBBkKDQoFBBgCEAUSBJwFBAsKDQoFBBgCEAESBJwFDBMKDQoFBBgCEAMSBJwFFhgKDAoEBBgCERIEnQUEKwoNCgUEGAIRBRIEnQUECwoNCgUEGAIRARIEnQUMJQoNCgUEGAIRAxIEnQUoKgoMCgQEGAISEgSeBQQaCg0KBQQYAhIFEgSeBQQLCg0KBQQYAhIBEgSeBQwUCg0KBQQYAhIDEgSeBRcZCgwKBAQYAhMSBJ8FBBwKDQoFBBgCEwUSBJ8FBAsKDQoFBBgCEwESBJ8FDBYKDQoFBBgCEwMSBJ8FGRsKDAoEBBgCFBIEoAUEGgoNCgUEGAIUBRIEoAUECwoNCgUEGAIUARIEoAUMFAoNCgUEGAIUAxIEoAUXGQoMCgQEGAIVEgShBQQcCg0KBQQYAhUFEgShBQQLCg0KBQQYAhUBEgShBQwWCg0KBQQYAhUDEgShBRkbCgwKBAQYAhYSBKIFBB4KDQoFBBgCFgUSBKIFBAsKDQoFBBgCFgESBKIFDBgKDQoFBBgCFgMSBKIFGx0KDAoEBBgCFxIEowUEHQoNCgUEGAIXBRIEowUECwoNCgUEGAIXARIEowUMFwoNCgUEGAIXAxIEowUaHAoMCgQEGAIYEgSkBQQcCg0KBQQYAhgFEgSkBQQLCg0KBQQYAhgBEgSkBQwWCg0KBQQYAhgDEgSkBRkbCgwKBAQYAhkSBKUFBBsKDQoFBBgCGQUSBKUFBAsKDQoFBBgCGQESBKUFDBUKDQoFBBgCGQMSBKUFGBoKDAoCBBkSBqgFALAFAQoLCgMEGQESBKgFCBkKDAoEBBkCABIEqQUEGAoNCgUEGQIABRIEqQUECwoNCgUEGQIAARIEqQUMEwoNCgUEGQIAAxIEqQUWFwoMCgQEGQIBEgSqBQQbCg0KBQQZAgEFEgSqBQQLCg0KBQQZAgEBEgSqBQwWCg0KBQQZAgEDEgSqBRkaCgwKBAQZAgISBKsFBBsKDQoFBBkCAgUSBKsFBAsKDQoFBBkCAgESBKsFDBYKDQoFBBkCAgMSBKsFGRoKDAoEBBkCAxIErAUEGQoNCgUEGQIDBRIErAUECwoNCgUEGQIDARIErAUMFAoNCgUEGQIDAxIErAUXGAoMCgQEGQIEEgStBQQbCg0KBQQZAgQFEgStBQQLCg0KBQQZAgQBEgStBQwWCg0KBQQZAgQDEgStBRkaCgwKBAQZAgUSBK4FBBkKDQoFBBkCBQUSBK4FBAsKDQoFBBkCBQESBK4FDBQKDQoFBBkCBQMSBK4FFxgKDAoEBBkCBhIErwUEGwoNCgUEGQIGBRIErwUECwoNCgUEGQIGARIErwUMFQoNCgUEGQIGAxIErwUYGgoMCgIEGhIGsgUAuQUBCgsKAwQaARIEsgUIFgoMCgQEGgIAEgSzBQQYCg0KBQQaAgAFEgSzBQQLCg0KBQQaAgABEgSzBQwTCg0KBQQaAgADEgSzBRYXCgwKBAQaAgESBLQFBBkKDQoFBBoCAQUSBLQFBAsKDQoFBBoCAQESBLQFDBQKDQoFBBoCAQMSBLQFFxgKDAoEBBoCAhIEtQUEGwoNCgUEGgICBRIEtQUECwoNCgUEGgICARIEtQUMFgoNCgUEGgICAxIEtQUZGgoMCgQEGgIDEgS2BQQZCg0KBQQaAgMFEgS2BQQLCg0KBQQaAgMBEgS2BQwUCg0KBQQaAgMDEgS2BRcYCgwKBAQaAgQSBLcFBBsKDQoFBBoCBAUSBLcFBAsKDQoFBBoCBAESBLcFDBYKDQoFBBoCBAMSBLcFGRoKDAoEBBoCBRIEuAUEGwoNCgUEGgIFBRIEuAUECwoNCgUEGgIFARIEuAUMFQoNCgUEGgIFAxIEuAUYGgoMCgIEGxIGuwUAvgUBCgsKAwQbARIEuwUIFQoMCgQEGwIAEgS8BQQYCg0KBQQbAgAFEgS8BQQLCg0KBQQbAgABEgS8BQwTCg0KBQQbAgADEgS8BRYXCgwKBAQbAgESBL0FBBYKDQoFBBsCAQUSBL0FBAoKDQoFBBsCAQESBL0FCxEKDQoFBBsCAQMSBL0FFBUKDAoCBBwSBsAFAMQFAQoLCgMEHAESBMAFCBsKDAoEBBwCABIEwQUEGAoNCgUEHAIABRIEwQUECwoNCgUEHAIAARIEwQUMEwoNCgUEHAIAAxIEwQUWFwoMCgQEHAIBEgTCBQQXCg0KBQQcAgEFEgTCBQQLCg0KBQQcAgEBEgTCBQwSCg0KBQQcAgEDEgTCBRUWCgwKBAQcAgISBMMFBBYKDQoFBBwCAgUSBMMFBAoKDQoFBBwCAgESBMMFCxEKDQoFBBwCAgMSBMMFFBUKDAoCBB0SBsYFAM8FAQoLCgMEHQESBMYFCBoKDAoEBB0CABIExwUEGAoNCgUEHQIABRIExwUECwoNCgUEHQIAARIExwUMEwoNCgUEHQIAAxIExwUWFwoMCgQEHQIBEgTIBQQXCg0KBQQdAgEFEgTIBQQLCg0KBQQdAgEBEgTIBQwSCg0KBQQdAgEDEgTIBRUWCgwKBAQdAgISBMkFBBoKDQoFBB0CAgUSBMkFBAoKDQoFBB0CAgESBMkFCxUKDQoFBB0CAgMSBMkFGBkKDAoEBB0CAxIEygUEGgoNCgUEHQIDBRIEygUECgoNCgUEHQIDARIEygULFQoNCgUEHQIDAxIEygUYGQoMCgQEHQIEEgTLBQQgCg0KBQQdAgQFEgTLBQQKCg0KBQQdAgQBEgTLBQsbCg0KBQQdAgQDEgTLBR4fCgwKBAQdAgUSBMwFBCUKDQoFBB0CBQUSBMwFBAoKDQoFBB0CBQESBMwFCyAKDQoFBB0CBQMSBMwFIyQKDAoEBB0CBhIEzQUEGwoNCgUEHQIGBRIEzQUECgoNCgUEHQIGARIEzQULFgoNCgUEHQIGAxIEzQUZGgoMCgQEHQIHEgTOBQQcCg0KBQQdAgcFEgTOBQQKCg0KBQQdAgcBEgTOBQsXCg0KBQQdAgcDEgTOBRobCgwKAgQeEgbRBQDVBQEKCwoDBB4BEgTRBQgjCgwKBAQeAgASBNIFBBgKDQoFBB4CAAUSBNIFBAsKDQoFBB4CAAESBNIFDBMKDQoFBB4CAAMSBNIFFhcKDAoEBB4CARIE0wUEFwoNCgUEHgIBBRIE0wUECwoNCgUEHgIBARIE0wUMEgoNCgUEHgIBAxIE0wUVFgoMCgQEHgICEgTUBQQWCg0KBQQeAgIFEgTUBQQKCg0KBQQeAgIBEgTUBQsRCg0KBQQeAgIDEgTUBRQVCgwKAgQfEgbXBQDcBQEKCwoDBB8BEgTXBQgiCgwKBAQfAgASBNgFBBgKDQoFBB8CAAUSBNgFBAsKDQoFBB8CAAESBNgFDBMKDQoFBB8CAAMSBNgFFhcKDAoEBB8CARIE2QUEFwoNCgUEHwIBBRIE2QUECwoNCgUEHwIBARIE2QUMEgoNCgUEHwIBAxIE2QUVFgoMCgQEHwICEgTaBQQWCg0KBQQfAgIFEgTaBQQKCg0KBQQfAgIBEgTaBQsRCg0KBQQfAgIDEgTaBRQVCgwKBAQfAgMSBNsFBCcKDQoFBB8CAwUSBNsFBAsKDQoFBB8CAwESBNsFDCIKDQoFBB8CAwMSBNsFJSYKDAoCBCASBt4FAOQFAQoLCgMEIAESBN4FCCIKDAoEBCACABIE3wUEGAoNCgUEIAIABRIE3wUECwoNCgUEIAIAARIE3wUMEwoNCgUEIAIAAxIE3wUWFwoMCgQEIAIBEgTgBQQXCg0KBQQgAgEFEgTgBQQLCg0KBQQgAgEBEgTgBQwSCg0KBQQgAgEDEgTgBRUWCgwKBAQgAgISBOEFBBYKDQoFBCACAgUSBOEFBAoKDQoFBCACAgESBOEFCxEKDQoFBCACAgMSBOEFFBUKDAoEBCACAxIE4gUEFgoNCgUEIAIDBRIE4gUECwoNCgUEIAIDARIE4gUMEQoNCgUEIAIDAxIE4gUUFQoMCgQEIAIEEgTjBQQYCg0KBQQgAgQFEgTjBQQLCg0KBQQgAgQBEgTjBQwTCg0KBQQgAgQDEgTjBRYXCgwKAgQhEgbmBQDqBQEKCwoDBCEBEgTmBQgmCgwKBAQhAgASBOcFBBgKDQoFBCECAAUSBOcFBAsKDQoFBCECAAESBOcFDBMKDQoFBCECAAMSBOcFFhcKDAoEBCECARIE6AUEFwoNCgUEIQIBBRIE6AUECwoNCgUEIQIBARIE6AUMEgoNCgUEIQIBAxIE6AUVFgoMCgQEIQICEgTpBQQWCg0KBQQhAgIFEgTpBQQKCg0KBQQhAgIBEgTpBQsRCg0KBQQhAgIDEgTpBRQVCgwKAgQiEgbsBQDxBQEKCwoDBCIBEgTsBQgjCgwKBAQiAgASBO0FBBgKDQoFBCICAAUSBO0FBAsKDQoFBCICAAESBO0FDBMKDQoFBCICAAMSBO0FFhcKDAoEBCICARIE7gUEFwoNCgUEIgIBBRIE7gUECwoNCgUEIgIBARIE7gUMEgoNCgUEIgIBAxIE7gUVFgoMCgQEIgICEgTvBQQWCg0KBQQiAgIFEgTvBQQKCg0KBQQiAgIBEgTvBQsRCg0KBQQiAgIDEgTvBRQVCgwKBAQiAgMSBPAFBCcKDQoFBCICAwUSBPAFBAsKDQoFBCICAwESBPAFDCIKDQoFBCICAwMSBPAFJSYKDAoCBCMSBvMFAPgFAQoLCgMEIwESBPMFCCoKDAoEBCMCABIE9AUEGAoNCgUEIwIABRIE9AUECwoNCgUEIwIAARIE9AUMEwoNCgUEIwIAAxIE9AUWFwoMCgQEIwIBEgT1BQQXCg0KBQQjAgEFEgT1BQQLCg0KBQQjAgEBEgT1BQwSCg0KBQQjAgEDEgT1BRUWCgwKBAQjAgISBPYFBBYKDQoFBCMCAgUSBPYFBAoKDQoFBCMCAgESBPYFCxEKDQoFBCMCAgMSBPYFFBUKDAoEBCMCAxIE9wUEFgoNCgUEIwIDBRIE9wUECwoNCgUEIwIDARIE9wUMEQoNCgUEIwIDAxIE9wUUFQoMCgIEJBIG+gUA/gUBCgsKAwQkARIE+gUIJgoMCgQEJAIAEgT7BQQYCg0KBQQkAgAFEgT7BQQLCg0KBQQkAgABEgT7BQwTCg0KBQQkAgADEgT7BRYXCgwKBAQkAgESBPwFBBcKDQoFBCQCAQUSBPwFBAsKDQoFBCQCAQESBPwFDBIKDQoFBCQCAQMSBPwFFRYKDAoEBCQCAhIE/QUEHAoNCgUEJAICBRIE/QUECwoNCgUEJAICARIE/QUMFwoNCgUEJAICAxIE/QUaGwoMCgIEJRIGgAYAhAYBCgsKAwQlARIEgAYIKQoMCgQEJQIAEgSBBgQYCg0KBQQlAgAFEgSBBgQLCg0KBQQlAgABEgSBBgwTCg0KBQQlAgADEgSBBhYXCgwKBAQlAgESBIIGBBcKDQoFBCUCAQUSBIIGBAsKDQoFBCUCAQESBIIGDBIKDQoFBCUCAQMSBIIGFRYKDAoEBCUCAhIEgwYEFgoNCgUEJQICBRIEgwYECgoNCgUEJQICARIEgwYLEQoNCgUEJQICAxIEgwYUFQoMCgIEJhIGhgYAiQYBCgsKAwQmARIEhgYIGgofCgQEJgIAEgSHBgQgIhEgUkRJIEVycm9yIGNvdW50CgoNCgUEJgIABRIEhwYECwoNCgUEJgIAARIEhwYMGwoNCgUEJgIAAxIEhwYeHwo+CgQEJgIBEgSIBgQWIjAgb24vb2ZmIGJhc2VkIG9uIGNvbmZpZ3VyZWQgcmVwb3J0aW5nIGNvbmRpdGlvbgoKDQoFBCYCAQUSBIgGBAoKDQoFBCYCAQESBIgGCxEKDQoFBCYCAQMSBIgGFBUKDAoCBCcSBosGAJIGAQoLCgMEJwESBIsGCCAKDAoEBCcCABIEjAYEGAoNCgUEJwIABRIEjAYECwoNCgUEJwIAARIEjAYMEwoNCgUEJwIAAxIEjAYWFwoMCgQEJwIBEgSNBgQXCg0KBQQnAgEFEgSNBgQLCg0KBQQnAgEBEgSNBgwSCg0KBQQnAgEDEgSNBhUWCg4KBAQnCAASBo4GBJEGBQoNCgUEJwgAARIEjgYKDwodCgQEJwICEgSPBggtIg8gYWRkIG1vcmUgaGVyZQoKDQoFBCcCAgYSBI8GCBoKDQoFBCcCAgESBI8GGygKDQoFBCcCAgMSBI8GKywKDAoCBCgSBpQGAJcGAQoLCgMEKAESBJQGCCQKDAoEBCgCABIElQYEGAoNCgUEKAIABRIElQYECwoNCgUEKAIAARIElQYMEwoNCgUEKAIAAxIElQYWFwoMCgQEKAIBEgSWBgQXCg0KBQQoAgEFEgSWBgQLCg0KBQQoAgEBEgSWBgwSCg0KBQQoAgEDEgSWBhUWCgwKAgQpEgaZBgCdBgEKCwoDBCkBEgSZBggoCgwKBAQpAgASBJoGBBgKDQoFBCkCAAUSBJoGBAsKDQoFBCkCAAESBJoGDBMKDQoFBCkCAAMSBJoGFhcKDAoEBCkCARIEmwYEFwoNCgUEKQIBBRIEmwYECwoNCgUEKQIBARIEmwYMEgoNCgUEKQIBAxIEmwYVFgoMCgQEKQICEgScBgQWCg0KBQQpAgIFEgScBgQKCg0KBQQpAgIBEgScBgsRCg0KBQQpAgIDEgScBhQVCgwKAgQqEgafBgCjBgEKCwoDBCoBEgSfBgghCgwKBAQqAgASBKAGBBgKDQoFBCoCAAUSBKAGBAsKDQoFBCoCAAESBKAGDBMKDQoFBCoCAAMSBKAGFhcKDAoEBCoCARIEoQYEFwoNCgUEKgIBBRIEoQYECwoNCgUEKgIBARIEoQYMEgoNCgUEKgIBAxIEoQYVFgoMCgQEKgICEgSiBgQbCg0KBQQqAgIFEgSiBgQLCg0KBQQqAgIBEgSiBgwWCg0KBQQqAgIDEgSiBhkaCgwKAgQrEgalBgCqBgEKCwoDBCsBEgSlBggwCgwKBAQrAgASBKYGBBgKDQoFBCsCAAUSBKYGBAsKDQoFBCsCAAESBKYGDBMKDQoFBCsCAAMSBKYGFhcKDAoEBCsCARIEpwYEFwoNCgUEKwIBBRIEpwYECwoNCgUEKwIBARIEpwYMEgoNCgUEKwIBAxIEpwYVFgoMCgQEKwICEgSoBgQWCg0KBQQrAgIFEgSoBgQKCg0KBQQrAgIBEgSoBgsRCg0KBQQrAgIDEgSoBhQVCgwKBAQrAgMSBKkGBCMKDQoFBCsCAwUSBKkGBAsKDQoFBCsCAwESBKkGDB4KDQoFBCsCAwMSBKkGISIKDAoCBCwSBqwGALAGAQoLCgMELAESBKwGCCsKDAoEBCwCABIErQYEGAoNCgUELAIABRIErQYECwoNCgUELAIAARIErQYMEwoNCgUELAIAAxIErQYWFwoMCgQELAIBEgSuBgQXCg0KBQQsAgEFEgSuBgQLCg0KBQQsAgEBEgSuBgwSCg0KBQQsAgEDEgSuBhUWCgwKBAQsAgISBK8GBBYKDQoFBCwCAgUSBK8GBAoKDQoFBCwCAgESBK8GCxEKDQoFBCwCAgMSBK8GFBUKDAoCBC0SBrIGALYGAQoLCgMELQESBLIGCCoKDAoEBC0CABIEswYEGAoNCgUELQIABRIEswYECwoNCgUELQIAARIEswYMEwoNCgUELQIAAxIEswYWFwoMCgQELQIBEgS0BgQXCg0KBQQtAgEFEgS0BgQLCg0KBQQtAgEBEgS0BgwSCg0KBQQtAgEDEgS0BhUWCgwKBAQtAgISBLUGBBYKDQoFBC0CAgUSBLUGBAoKDQoFBC0CAgESBLUGCxEKDQoFBC0CAgMSBLUGFBUKDAoCBC4SBrgGAL0GAQoLCgMELgESBLgGCC4KDAoEBC4CABIEuQYIHAoNCgUELgIABRIEuQYIDwoNCgUELgIAARIEuQYQFwoNCgUELgIAAxIEuQYaGwoMCgQELgIBEgS6BggbCg0KBQQuAgEFEgS6BggPCg0KBQQuAgEBEgS6BhAWCg0KBQQuAgEDEgS6BhkaCgwKBAQuAgISBLsGCBoKDQoFBC4CAgUSBLsGCA4KDQoFBC4CAgESBLsGDxUKDQoFBC4CAgMSBLsGGBkKDAoEBC4CAxIEvAYIHQoNCgUELgIDBRIEvAYIDwoNCgUELgIDARIEvAYQGAoNCgUELgIDAxIEvAYbHAoMCgIELxIGvwYAygYBCgsKAwQvARIEvwYIEwoOCgQELwQAEgbABgTEBgUKDQoFBC8EAAESBMAGCRYKDgoGBC8EAAIAEgTBBggQCg8KBwQvBAACAAESBMEGCAsKDwoHBC8EAAIAAhIEwQYODwoOCgYELwQAAgESBMIGCBkKDwoHBC8EAAIBARIEwgYIFAoPCgcELwQAAgECEgTCBhcYCg4KBgQvBAACAhIEwwYIGgoPCgcELwQAAgIBEgTDBggVCg8KBwQvBAACAgISBMMGGBkKDAoEBC8CABIExQYEHAoNCgUELwIABRIExQYECgoNCgUELwIAARIExQYLFwoNCgUELwIAAxIExQYaGwoMCgQELwIBEgTGBgQlCg0KBQQvAgEGEgTGBgQRCg0KBQQvAgEBEgTGBhIgCg0KBQQvAgEDEgTGBiMkCgwKBAQvAgISBMcGBBsKDQoFBC8CAgUSBMcGBAoKDQoFBC8CAgESBMcGCxYKDQoFBC8CAgMSBMcGGRoKYAoEBC8CAxIEyAYEGCJSIFByaW9yaXR5IChhbmQgYWxzbyB0aGUgSUQpIG9mIHRoZSBkZWZhdWx0IGZpeGVkIHF1ZXVlIGZvciB0aGUgbXVsdGljYXN0IHRyYWZmaWMuCgoNCgUELwIDBRIEyAYECgoNCgUELwIDARIEyAYLEwoNCgUELwIDAxIEyAYWFwoMCgIEMBIGzAYA1wYBCgsKAwQwARIEzAYIDQoOCgQEMAQAEgbNBgTRBgUKDQoFBDAEAAESBM0GCRwKDgoGBDAEAAIAEgTOBggYCg8KBwQwBAACAAESBM4GCBMKDwoHBDAEAAIAAhIEzgYWFwoOCgYEMAQAAgESBM8GCBsKDwoHBDAEAAIBARIEzwYIFgoPCgcEMAQAAgECEgTPBhkaCg4KBgQwBAACAhIE0AYIGAoPCgcEMAQAAgIBEgTQBggTCg8KBwQwBAACAgISBNAGFhcKDAoEBDACABIE0wYEGAoNCgUEMAIABRIE0wYECgoNCgUEMAIAARIE0wYLEwoNCgUEMAIAAxIE0wYWFwoMCgQEMAIBEgTUBgQkCg0KBQQwAgEGEgTUBgQXCg0KBQQwAgEBEgTUBhgfCg0KBQQwAgEDEgTUBiIjCgwKBAQwAgISBNUGBCUKDQoFBDACAgQSBNUGBAwKDQoFBDACAgYSBNUGDRgKDQoFBDACAgESBNUGGSAKDQoFBDACAgMSBNUGIyQKDAoEBDACAxIE1gYEFgoNCgUEMAIDBhIE1gYECgoNCgUEMAIDARIE1gYLEQoNCgUEMAIDAxIE1gYUFQoMCgIEMRIG2QYA3AYBCgsKAwQxARIE2QYIEgoMCgQEMQIAEgTaBggUCg0KBQQxAgAGEgTaBggLCg0KBQQxAgABEgTaBgwPCg0KBQQxAgADEgTaBhITCgwKBAQxAgESBNsGCCsKDQoFBDECAQYSBNsGCCAKDQoFBDECAQESBNsGISYKDQoFBDECAQMSBNsGKSoKDAoCBDISBt4GAOoGAQoLCgMEMgESBN4GCBYKDgoEBDIEABIG3wYE4wYFCg0KBQQyBAABEgTfBgkiCg4KBgQyBAACABIE4AYIHQoPCgcEMgQAAgABEgTgBggYCg8KBwQyBAACAAISBOAGGxwKDgoGBDIEAAIBEgThBgglCg8KBwQyBAACAQESBOEGCCAKDwoHBDIEAAIBAhIE4QYjJAoOCgYEMgQAAgISBOIGCCIKDwoHBDIEAAICARIE4gYIHQoPCgcEMgQAAgICEgTiBiAhCgwKBAQyAgASBOUGBBgKDQoFBDICAAUSBOUGBAsKDQoFBDICAAESBOUGDBMKDQoFBDICAAMSBOUGFhcKDAoEBDICARIE5gYEFwoNCgUEMgIBBRIE5gYECwoNCgUEMgIBARIE5gYMEgoNCgUEMgIBAxIE5gYVFgoMCgQEMgICEgTnBgQWCg0KBQQyAgIFEgTnBgQKCg0KBQQyAgIBEgTnBgsRCg0KBQQyAgIDEgTnBhQVCgwKBAQyAgMSBOgGBC4KDQoFBDICAwYSBOgGBB0KDQoFBDICAwESBOgGHikKDQoFBDICAwMSBOgGLC0KDAoEBDICBBIE6QYEIQoNCgUEMgIEBRIE6QYECgoNCgUEMgIEARIE6QYLHAoNCgUEMgIEAxIE6QYfIAoMCgIEMxIG7AYA8AYBCgsKAwQzARIE7AYIHAoMCgQEMwIAEgTtBgQXCg0KBQQzAgAFEgTtBgQLCg0KBQQzAgABEgTtBgwSCg0KBQQzAgADEgTtBhUWCgwKBAQzAgESBO4GBBgKDQoFBDMCAQUSBO4GBAsKDQoFBDMCAQESBO4GDBMKDQoFBDMCAQMSBO4GFhcKDAoEBDMCAhIE7wYEGAoNCgUEMwICBRIE7wYECwoNCgUEMwICARIE7wYMEwoNCgUEMwICAxIE7wYWFwoMCgIFABIG8gYA9QYBCgsKAwUAARIE8gYFDwoMCgQFAAIAEgTzBgQOCg0KBQUAAgABEgTzBgQHCg0KBQUAAgACEgTzBgwNCgwKBAUAAgESBPQGBA4KDQoFBQACAQESBPQGBAYKDQoFBQACAQISBPQGDA0KzAEKAgQ0Egb7BgCMBwEavQEKIGNvbnRhaW5zIHRoZSBvbnUgaWQsIHN0YXRlIG9mIHRoZSBvbnUgYW5kIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWxhcm1zIG9uIHRoZSBvbnUuCiBBcyBvZiBub3cgb25seSBmZXcgYWxhcm1zIGFyZSBhZGRlZCwgYW55IGZ1cnRoZXIgaW5mb3JtYXRpb24gbmVlZGVkIGNhbiBiZSBhZGRlZCB0byB0aGUgc3RydWN0dXJlLgoKCwoDBDQBEgT7BggPCgwKBAQ0AgASBPwGBB8KDQoFBDQCAAUSBPwGBAsKDQoFBDQCAAESBPwGExkKDQoFBDQCAAMSBPwGHR4KDgoEBDQEABIG/QYEhwcFCg0KBQQ0BAABEgT9BgkRCssBCgYENAQAAgASBIIHCBsaugEKIFRoZXJlIGFyZSBvdGhlciBzdGF0ZXMgaW4gQkFMIGZvciBPTlUsIHdoaWNoIHZvbHRoYSBpcyBub3QgaW50ZXJlc3RlZCBhcyBvZiBub3cuCiBVTktOT1dOIGlzIHRvIGJlIGZpbGxlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN0YXRlcyBvdGhlciB0aGFuIE5PVF9DT05GSUdVUkVEL0FDVElWRS9JTkFDVElWRS9ESVNBQkxFRAoKDwoHBDQEAAIAARIEggcIDwoPCgcENAQAAgACEgSCBxkaCg4KBgQ0BAACARIEgwcIGwoPCgcENAQAAgEBEgSDBwgWCg8KBwQ0BAACAQISBIMHGRoKDgoGBDQEAAICEgSEBwgbCg8KBwQ0BAACAgESBIQHCA4KDwoHBDQEAAICAhIEhAcZGgoOCgYENAQAAgMSBIUHCBsKDwoHBDQEAAIDARIEhQcIEAoPCgcENAQAAgMCEgSFBxkaCg4KBgQ0BAACBBIEhgcIGwoPCgcENAQAAgQBEgSGBwgQCg8KBwQ0BAACBAISBIYHGRoKDAoEBDQCARIEiAcEHAoNCgUENAIBBhIEiAcEDAoNCgUENAIBARIEiAcSFwoNCgUENAIBAxIEiAcaGwoMCgQENAICEgSJBwQbCg0KBQQ0AgIGEgSJBwQOCg0KBQQ0AgIBEgSJBxIWCg0KBQQ0AgIDEgSJBxkaCgwKBAQ0AgMSBIoHBBsKDQoFBDQCAwYSBIoHBA4KDQoFBDQCAwESBIoHEhYKDQoFBDQCAwMSBIoHGRoKDAoEBDQCBBIEiwcEHAoNCgUENAIEBhIEiwcEDgoNCgUENAIEARIEiwcSFwoNCgUENAIEAxIEiwcaGwq+AQoCBDUSBpIHAJ0HARqvAQogSW50ZkluZm8gaGFzIHRoZSBpbnRlcmZhY2UgSWQgYW5kIGlmIHRoZXJlIGFyZSBhbnkgYWxhcm1zIGFjdGl2ZSBvbiB0aGF0IGludGVyZmFjZS4KIEFueSBmdXJ0aGVyIGluZm9ybWF0aW9uIG5lZWRlZCBmcm9tIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGNhbiBiZSBhZGRlZCB0byB0aGUgc3RydWN0dXJlLgoKCwoDBDUBEgSSBwgTCgwKBAQ1AgASBJMHBB0KDQoFBDUCAAUSBJMHBAsKDQoFBDUCAAESBJMHERgKDQoFBDUCAAMSBJMHGxwKDgoEBDUEABIGlAcEmgcFCg0KBQQ1BAABEgSUBwkVCg4KBgQ1BAACABIElQcIGwoPCgcENQQAAgABEgSVBwgPCg8KBwQ1BAACAAISBJUHGRoKDgoGBDUEAAIBEgSWBwgbCg8KBwQ1BAACAQESBJYHCBYKDwoHBDUEAAIBAhIElgcZGgoOCgYENQQAAgISBJcHCBsKDwoHBDUEAAICARIElwcIFgoPCgcENQQAAgICEgSXBxkaCg4KBgQ1BAACAxIEmAcIGwoPCgcENQQAAgMBEgSYBwgQCg8KBwQ1BAACAwISBJgHGRoKDgoGBDUEAAIEEgSZBwgbCg8KBwQ1BAACBAESBJkHCBAKDwoHBDUEAAIEAhIEmQcZGgoMCgQENQIBEgSbBwQbCg0KBQQ1AgEGEgSbBwQQCg0KBQQ1AgEBEgSbBxEWCg0KBQQ1AgEDEgSbBxkaCgwKBAQ1AgISBJwHBBkKDQoFBDUCAgYSBJwHBA4KDQoFBDUCAgESBJwHERQKDQoFBDUCAgMSBJwHFxgKVAoCBDYSBqIHAKUHARpGCiBNZXNzYWdlIHVzZWQgZm9yIGRpc2FibGluZyBkZXZpY2UgYnkgc2VyaWFsbnVtYmVyLCBkaXNhYmxlIGF0IFBMT0FNCgoLCgMENgESBKIHCCUKDAoEBDYCABIEowcENAoNCgUENgIABhIEowcEHAoNCgUENgIAARIEowcdLwoNCgUENgIAAxIEowcyMwoMCgQENgIBEgSkBwQgCg0KBQQ2AgEFEgSkBwQLCg0KBQQ2AgEBEgSkBxUbCg0KBQQ2AgEDEgSkBx4fCgwKAgQ3EganBwCqBwEKCwoDBDcBEgSnBwggCgwKBAQ3AgASBKgHBCEKDQoFBDcCAAUSBKgHBAsKDQoFBDcCAAESBKgHFRwKDQoFBDcCAAMSBKgHHyAKDAoEBDcCARIEqQcEKwoNCgUENwIBBhIEqQcEEAoNCgUENwIBARIEqQcVJgoNCgUENwIBAxIEqQcpKgoKCgIEOBIEqwcAEAoLCgMEOAESBKsHCA1iBnByb3RvMwrwHgohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvEg1pbnRlcl9hZGFwdGVyGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aIHZvbHRoYV9wcm90b3MvdGVjaF9wcm9maWxlLnByb3RvGht2b2x0aGFfcHJvdG9zL29wZW5vbHQucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvIv8BCgtPbWNpTWVzc2FnZRIYCgdtZXNzYWdlGAEgASgMUgdtZXNzYWdlEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIoICCgxPbWNpTWVzc2FnZXMSGgoIbWVzc2FnZXMYASADKAxSCG1lc3NhZ2VzEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIqcCChpUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSRAoLdHBfaW5zdGFuY2UYBCABKAsyIS50ZWNoX3Byb2ZpbGUuVGVjaFByb2ZpbGVJbnN0YW5jZUgAUgp0cEluc3RhbmNlElEKEGVwb25fdHBfaW5zdGFuY2UYBSABKAsyJS50ZWNoX3Byb2ZpbGUuRXBvblRlY2hQcm9maWxlSW5zdGFuY2VIAFIOZXBvblRwSW5zdGFuY2VCEgoQdGVjaF90cF9pbnN0YW5jZSKUAQoURGVsZXRlR2VtUG9ydE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEh4KC2dlbV9wb3J0X2lkGAQgASgNUglnZW1Qb3J0SWQijQEKEkRlbGV0ZVRjb250TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9j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X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLiAgoWT2x0SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkYKEFByb3h5T21jaVJlcXVlc3QSGi5pbnRlcl9hZGFwdGVyLk9tY2lNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKEVByb3h5T21jaVJlcXVlc3RzEhsuaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZXMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdQoWR2V0VGVjaFByb2ZpbGVJbnN0YW5jZRIwLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlGikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUq2BAoGEgQAABYBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAWAQoKCgMGAAESAw0IHgqnAQoEBgACABIDEARXGpkBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGEgT2x0SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gZGV0ZWN0IGEgY29ubmVjdGlvbgogbG9zdCB3aXRoIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAUSAxAYHgoMCgUGAAIAAhIDEB8wCgwKBQYAAgAGEgMQO0EKDAoFBgACAAMSAxBCVQoLCgQGAAIBEgMTBFQKDAoFBgACAQESAxMIGAoMCgUGAAIBAhIDExkyCgwKBQYAAgEDEgMTPVIKCwoEBgACAhIDFARWCgwKBQYAAgIBEgMUCBkKDAoFBgACAgISAxQaNAoMCgUGAAICAxIDFD9UCgwKBAYAAgMSBBUEgwEKDAoFBgACAwESAxUIHgoMCgUGAAIDAhIDFR9OCg0KBQYAAgMDEgQVWYEBYgZwcm90bzMK5AsKLXZvbHRoYV9wcm90b3Mvb251X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb251X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLfAwoWT251SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKDU9udUluZGljYXRpb24SIy5pbnRlcl9hZGFwdGVyLk9udUluZGljYXRpb25NZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKDk9tY2lJbmRpY2F0aW9uEhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJYChNEb3dubG9hZFRlY2hQcm9maWxlEikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCg1EZWxldGVHZW1Qb3J0EiMuaW50ZXJfYWRhcHRlci5EZWxldGVHZW1Qb3J0TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJICgtEZWxldGVUQ29udBIhLmludGVyX2FkYXB0ZXIuRGVsZXRlVGNvbnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QpABCi1vcmcub3BlbmNvcmQudm9sdGhhLm9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2VCHFZvbHRoYU9udUludGVyQWRhcHRlclNlcnZpY2VaQWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlSqIFCgYSBAAAFwEKCAoBDBIDAAASCggKAQgSAwIAWAoJCgIICxIDAgBYCggKAQgSAwMARgoJCgIIARIDAwBGCggKAQgSAwQAPQoJCgIICBIDBAA9CggKAQISAwYAIgoJCgIDABIDCAAkCgkKAgMBEgMJACUKCQoCAwISAwoAKwoJCgIDAxIDCwAkCgoKAgYAEgQNABcBCgoKAwYAARIDDQgeCqcBCgQGAAIAEgMQBFcamQEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYSBPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlIGNsaWVudCB0byBkZXRlY3QgYSBjb25uZWN0aW9uCiBsb3N0IHdpdGggdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIE9udUludGVyQWRhcHRlclNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxAIFwoMCgUGAAIABRIDEBgeCgwKBQYAAgACEgMQHzAKDAoFBgACAAYSAxA7QQoMCgUGAAIAAxIDEEJVCgsKBAYAAgESAxIEWgoMCgUGAAIBARIDEggVCgwKBQYAAgECEgMSFjgKDAoFBgACAQMSAxJDWAoLCgQGAAICEgMTBFIKDAoFBgACAgESAxMIFgoMCgUGAAICAhIDExcwCgwKBQYAAgIDEgMTO1AKCwoEBgACAxIDFARmCgwKBQYAAgMBEgMUCBsKDAoFBgACAwISAxQcRAoMCgUGAAIDAxIDFE9kCgsKBAYAAgQSAxUEWgoMCgUGAAIEARIDFQgVCgwKBQYAAgQCEgMVFjgKDAoFBgACBAMSAxVDWAoLCgQGAAIFEgMWBFYKDAoFBgACBQESAxYIEwoMCgUGAAIFAhIDFhQ0CgwKBQYAAgUDEgMWP1RiBnByb3RvMw==