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IHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQAQgoJCgIICxIDJABCCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALwoJCgIICBIDJgAvCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCvEbCgIEABIFfACIAQEa4xsgQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gY3VycmVudCB0aW1lIGluIFB5dGhvbi4KCiAgICAgdGltZXN0YW1wID0gVGltZXN0YW1wKCkKICAgICB0aW1lc3RhbXAuR2V0Q3VycmVudFRpbWUoKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBUaW1lc3RhbXAgdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIGluIHRoZQogW1JGQyAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGZvcm1hdC4gVGhhdCBpcywgdGhlCiBmb3JtYXQgaXMgInt5ZWFyfS17bW9udGh9LXtkYXl9VHtob3VyfTp7bWlufTp7c2VjfVsue2ZyYWNfc2VjfV1aIgogd2hlcmUge3llYXJ9IGlzIGFsd2F5cyBleHByZXNzZWQgdXNpbmcgZm91ciBkaWdpdHMgd2hpbGUge21vbnRofSwge2RheX0sCiB7aG91cn0sIHttaW59LCBhbmQge3NlY30gYXJlIHplcm8tcGFkZGVkIHRvIHR3byBkaWdpdHMgZWFjaC4gVGhlIGZyYWN0aW9uYWwKIHNlY29uZHMsIHdoaWNoIGNhbiBnbyB1cCB0byA5IGRpZ2l0cyAoaS5lLiB1cCB0byAxIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiksCiBhcmUgb3B0aW9uYWwuIFRoZSAiWiIgc3VmZml4IGluZGljYXRlcyB0aGUgdGltZXpvbmUgKCJVVEMiKTsgdGhlIHRpbWV6b25lCiBpcyByZXF1aXJlZC4gQSBwcm90bzMgSlNPTiBzZXJpYWxpemVyIHNob3VsZCBhbHdheXMgdXNlIFVUQyAoYXMgaW5kaWNhdGVkIGJ5CiAiWiIpIHdoZW4gcHJpbnRpbmcgdGhlIFRpbWVzdGFtcCB0eXBlIGFuZCBhIHByb3RvMyBKU09OIHBhcnNlciBzaG91bGQgYmUKIGFibGUgdG8gYWNjZXB0IGJvdGggVVRDIGFuZCBvdGhlciB0aW1lem9uZXMgKGFzIGluZGljYXRlZCBieSBhbiBvZmZzZXQpLgoKIEZvciBleGFtcGxlLCAiMjAxNy0wMS0xNVQwMTozMDoxNS4wMVoiIGVuY29kZXMgMTUuMDEgc2Vjb25kcyBwYXN0CiAwMTozMCBVVEMgb24gSmFudWFyeSAxNSwgMjAxNy4KCiBJbiBKYXZhU2NyaXB0LCBvbmUgY2FuIGNvbnZlcnQgYSBEYXRlIG9iamVjdCB0byB0aGlzIGZvcm1hdCB1c2luZyB0aGUKIHN0YW5kYXJkIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcgW2BzdHJmdGltZWBdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS90aW1lLmh0bWwjdGltZS5zdHJmdGltZSkKIHdpdGggdGhlIHRpbWUgZm9ybWF0IHNwZWMgJyVZLSVtLSVkVCVIOiVNOiVTLiVmWicuIExpa2V3aXNlLCBpbiBKYXZhLCBvbmUKIGNhbiB1c2UgdGhlIEpvZGEgVGltZSdzIFtgSVNPRGF0ZVRpbWVGb3JtYXQuZGF0ZVRpbWUoKWBdKAogaHR0cDovL3d3dy5qb2RhLm9yZy9qb2RhLXRpbWUvYXBpZG9jcy9vcmcvam9kYS90aW1lL2Zvcm1hdC9JU09EYXRlVGltZUZvcm1hdC5odG1sI2RhdGVUaW1lJTJEJTJECiApIHRvIG9idGFpbiBhIGZvcm1hdHRlciBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgdGltZXN0YW1wcyBpbiB0aGlzIGZvcm1hdC4KCgoKCgoDBAABEgN8CBEKnQEKBAQAAgASBIEBAhQajgEgUmVwcmVzZW50cyBzZWNvbmRzIG9mIFVUQyB0aW1lIHNpbmNlIFVuaXggZXBvY2gKIDE5NzAtMDEtMDFUMDA6MDA6MDBaLiBNdXN0IGJlIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8KIDk5OTktMTItMzFUMjM6NTk6NTlaIGluY2x1c2l2ZS4KCg4KBQQAAgAEEgWBAQJ8EwoNCgUEAAIABRIEgQECBwoNCgUEAAIAARIEgQEIDwoNCgUEAAIAAxIEgQESEwrlAQoEBAACARIEhwECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDwoFBAACAQQSBocBAoEBFAoNCgUEAAIBBRIEhwECBwoNCgUEAAIBARIEhwEIDQoNCgUEAAIBAxIEhwEQEWIGcHJvdG8zCt1kCgxkbWkvaHcucHJvdG8SA2RtaRofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byIaCgRVdWlkEhIKBHV1aWQYASABKAlSBHV1aWQiKwoKSGFyZHdhcmVJRBIdCgR1dWlkGAEgASgLMgkuZG1pLlV1aWRSBHV1aWQiFwoDVXJpEhAKA3VyaRgBIAEoCVIDdXJpIoQDCg5Db21wb25lbnRTdGF0ZRJIChJzdGF0ZV9sYXN0X2NoYW5nZWQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhBzdGF0ZUxhc3RDaGFuZ2VkEjkKC2FkbWluX3N0YXRlGAIgASgOMhguZG1pLkNvbXBvbmVudEFkbWluU3RhdGVSCmFkbWluU3RhdGUSNgoKb3Blcl9zdGF0ZRgDIAEoDjIXLmRtaS5Db21wb25lbnRPcGVyU3RhdGVSCW9wZXJTdGF0ZRI5Cgt1c2FnZV9zdGF0ZRgEIAEoDjIYLmRtaS5Db21wb25lbnRVc2FnZVN0YXRlUgp1c2FnZVN0YXRlEjkKC2FsYXJtX3N0YXRlGAUgASgOMhguZG1pLkNvbXBvbmVudEFsYXJtU3RhdGVSCmFsYXJtU3RhdGUSPwoNc3RhbmRieV9zdGF0ZRgGIAEoDjIaLmRtaS5Db21wb25lbnRTdGFuZGJ5U3RhdGVSDHN0YW5kYnlTdGF0ZSLzAgoTQ29tcG9uZW50U2Vuc29yRGF0YRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUSKAoEdHlwZRgCIAEoDjIULmRtaS5TZW5zb3JWYWx1ZVR5cGVSBHR5cGUSKwoFc2NhbGUYAyABKA4yFS5kbWkuU2Vuc29yVmFsdWVTY2FsZVIFc2NhbGUSHAoJcHJlY2lzaW9uGAQgASgFUglwcmVjaXNpb24SKQoGc3RhdHVzGAUgASgOMhEuZG1pLlNlbnNvclN0YXR1c1IGc3RhdHVzEiMKDXVuaXRzX2Rpc3BsYXkYBiABKAlSDHVuaXRzRGlzcGxheRI4Cgl0aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgl0aW1lc3RhbXASKgoRdmFsdWVfdXBkYXRlX3JhdGUYCCABKA1SD3ZhbHVlVXBkYXRlUmF0ZRIbCglkYXRhX3R5cGUYCSABKAlSCGRhdGFUeXBlIrcFCglDb21wb25lbnQSEgoEbmFtZRgBIAEoCVIEbmFtZRIoCgVjbGFzcxgCIAEoDjISLmRtaS5Db21wb25lbnRUeXBlUgVjbGFzcxIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SFgoGcGFyZW50GAQgASgJUgZwYXJlbnQSJAoOcGFyZW50X3JlbF9wb3MYBSABKAVSDHBhcmVudFJlbFBvcxIqCghjaGlsZHJlbhgGIAMoCzIOLmRtaS5Db21wb25lbnRSCGNoaWxkcmVuEiEKDGhhcmR3YXJlX3JldhgHIAEoCVILaGFyZHdhcmVSZXYSIQoMZmlybXdhcmVfcmV2GAggASgJUgtmaXJtd2FyZVJldhIhCgxzb2Z0d2FyZV9yZXYYCSABKAlSC3NvZnR3YXJlUmV2Eh0KCnNlcmlhbF9udW0YCiABKAlSCXNlcmlhbE51bRIZCghtZmdfbmFtZRgLIAEoCVIHbWZnTmFtZRIdCgptb2RlbF9uYW1lGAwgASgJUgltb2RlbE5hbWUSFAoFYWxpYXMYDSABKAlSBWFsaWFzEhkKCGFzc2V0X2lkGA4gASgJUgdhc3NldElkEhUKBmlzX2ZydRgPIAEoCFIFaXNGcnUSNQoIbWZnX2RhdGUYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgdtZmdEYXRlEhoKA3VyaRgRIAEoCzIILmRtaS5VcmlSA3VyaRIdCgR1dWlkGBIgASgLMgkuZG1pLlV1aWRSBHV1aWQSKQoFc3RhdGUYEyABKAsyEy5kbWkuQ29tcG9uZW50U3RhdGVSBXN0YXRlEjkKC3NlbnNvcl9kYXRhGBQgAygLMhguZG1pLkNvbXBvbmVudFNlbnNvckRhdGFSCnNlbnNvckRhdGEiawoISGFyZHdhcmUSOwoLbGFzdF9jaGFuZ2UYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpsYXN0Q2hhbmdlEiIKBHJvb3QYAiABKAsyDi5kbWkuQ29tcG9uZW50UgRyb290IqkCChNNb2RpZmlhYmxlQ29tcG9uZW50EhIKBG5hbWUYASABKAlSBG5hbWUSKAoFY2xhc3MYAiABKA4yEi5kbWkuQ29tcG9uZW50VHlwZVIFY2xhc3MSJgoGcGFyZW50GAMgASgLMg4uZG1pLkNvbXBvbmVudFIGcGFyZW50EiQKDnBhcmVudF9yZWxfcG9zGAQgASgFUgxwYXJlbnRSZWxQb3MSFAoFYWxpYXMYBSABKAlSBWFsaWFzEhkKCGFzc2V0X2lkGAYgASgJUgdhc3NldElkEhoKA3VyaRgHIAEoCzIILmRtaS5VcmlSA3VyaRI5CgthZG1pbl9zdGF0ZRgIIAEoDjIYLmRtaS5Db21wb25lbnRBZG1pblN0YXRlUgphZG1pblN0YXRlKoEECg1Db21wb25lbnRUeXBlEhwKGENPTVBPTkVOVF9UWVBFX1VOREVGSU5FRBAAEhoKFkNPTVBPTkVOVF9UWVBFX1VOS05PV04QARIaChZDT01QT05FTlRfVFlQRV9DSEFTU0lTEAISHAoYQ09NUE9ORU5UX1RZUEVfQkFDS1BMQU5FEAMSHAoYQ09NUE9ORU5UX1RZUEVfQ09OVEFJTkVSEAQSHwobQ09NUE9ORU5UX1RZUEVfUE9XRVJfU1VQUExZEAUSFgoSQ09NUE9ORU5UX1RZUEVfRkFOEAYSGQoVQ09NUE9ORU5UX1RZUEVfU0VOU09SEAcSGQoVQ09NUE9ORU5UX1RZUEVfTU9EVUxFEAgSFwoTQ09NUE9ORU5UX1RZUEVfUE9SVBAJEhYKEkNPTVBPTkVOVF9UWVBFX0NQVRAKEhoKFkNPTVBPTkVOVF9UWVBFX0JBVFRFUlkQCxIaChZDT01QT05FTlRfVFlQRV9TVE9SQUdFEAwSGQoVQ09NUE9ORU5UX1RZUEVfTUVNT1JZEA0SHgoaQ09NUE9ORU5UX1RZUEVfVFJBTlNDRUlWRVIQDhIjCh9DT01QT05FTlRfVFlQRV9HUE9OX1RSQU5TQ0VJVkVSEA8SJgoiQ09NUE9ORU5UX1RZUEVfWEdTX1BPTl9UUkFOU0NFSVZFUhAQKrMBChNDb21wb25lbnRBZG1pblN0YXRlEh4KGkNPTVBfQURNSU5fU1RBVEVfVU5ERUZJTkVEEAASHAoYQ09NUF9BRE1JTl9TVEFURV9VTktOT1dOEAESGwoXQ09NUF9BRE1JTl9TVEFURV9MT0NLRUQQAhIiCh5DT01QX0FETUlOX1NUQVRFX1NIVVRUSU5HX0RPV04QAxIdChlDT01QX0FETUlOX1NUQVRFX1VOTE9DS0VEEAQqqAEKEkNvbXBvbmVudE9wZXJTdGF0ZRIdChlDT01QX09QRVJfU1RBVEVfVU5ERUZJTkVEEAASGwoXQ09NUF9PUEVSX1NUQVRFX1VOS05PV04QARIcChhDT01QX09QRVJfU1RBVEVfRElTQUJMRUQQAhIbChdDT01QX09QRVJfU1RBVEVfRU5BQkxFRBADEhsKF0NPTVBfT1BFUl9TVEFURV9URVNUSU5HEAQqpgEKE0NvbXBvbmVudFVzYWdlU3RhdGUSHgoaQ09NUF9VU0FHRV9TVEFURV9VTkRFRklORUQQABIcChhDT01QX1VTQUdFX1NUQVRFX1VOS05PV04QARIZChVDT01QX1VTQUdFX1NUQVRFX0lETEUQAhIbChdDT01QX1VTQUdFX1NUQVRFX0FDVElWRRADEhkKFUNPTVBfVVNBR0VfU1RBVEVfQlVTWRAEKo4CChNDb21wb25lbnRBbGFybVN0YXRlEh4KGkNPTVBfQUxBUk1fU1RBVEVfVU5ERUZJTkVEEAASHAoYQ09NUF9BTEFSTV9TVEFURV9VTktOT1dOEAESIQodQ09NUF9BTEFSTV9TVEFURV9VTkRFUl9SRVBBSVIQAhIdChlDT01QX0FMQVJNX1NUQVRFX0NSSVRJQ0FMEAMSGgoWQ09NUF9BTEFSTV9TVEFURV9NQUpPUhAEEhoKFkNPTVBfQUxBUk1fU1RBVEVfTUlOT1IQBRIcChhDT01QX0FMQVJNX1NUQVRFX1dBUk5JTkcQBhIhCh1DT01QX0FMQVJNX1NUQVRFX0lOVEVSTUVESUFURRAHKrwBChVDb21wb25lbnRTdGFuZGJ5U3RhdGUSIAocQ09NUF9TVEFOREJZX1NUQVRFX1VOREVGSU5FRBAAEh4KGkNPTVBfU1RBTkRCWV9TVEFURV9VTktOT1dOEAESGgoWQ09NUF9TVEFOREJZX1NUQVRFX0hPVBACEhsKF0NPTVBfU1RBTkRCWV9TVEFURV9DT0xEEAMSKAokQ09NUF9TVEFOREJZX1NUQVRFX1BST1ZJRElOR19TRVJWSUNFEAQqoQMKD1NlbnNvclZhbHVlVHlwZRIfChtTRU5TT1JfVkFMVUVfVFlQRV9VTkRFRklORUQQABIbChdTRU5TT1JfVkFMVUVfVFlQRV9PVEhFUhABEh0KGVNFTlNPUl9WQUxVRV9UWVBFX1VOS05PV04QAhIeChpTRU5TT1JfVkFMVUVfVFlQRV9WT0xUU19BQxADEh4KGlNFTlNPUl9WQUxVRV9UWVBFX1ZPTFRTX0RDEAQSHQoZU0VOU09SX1ZBTFVFX1RZUEVfQU1QRVJFUxAFEhsKF1NFTlNPUl9WQUxVRV9UWVBFX1dBVFRTEAYSGwoXU0VOU09SX1ZBTFVFX1RZUEVfSEVSVFoQBxIdChlTRU5TT1JfVkFMVUVfVFlQRV9DRUxTSVVTEAgSIAocU0VOU09SX1ZBTFVFX1RZUEVfUEVSQ0VOVF9SSBAJEhkKFVNFTlNPUl9WQUxVRV9UWVBFX1JQTRAKEhkKFVNFTlNPUl9WQUxVRV9UWVBFX0NNTRALEiEKHVNFTlNPUl9WQUxVRV9UWVBFX1RSVVRIX1ZBTFVFEAwqqAQKEFNlbnNvclZhbHVlU2NhbGUSIAocU0VOU09SX1ZBTFVFX1NDQUxFX1VOREVGSU5FRBAAEhwKGFNFTlNPUl9WQUxVRV9TQ0FMRV9ZT0NUTxABEhwKGFNFTlNPUl9WQUxVRV9TQ0FMRV9aRVBUTxACEhsKF1NFTlNPUl9WQUxVRV9TQ0FMRV9BVFRPEAMSHAoYU0VOU09SX1ZBTFVFX1NDQUxFX0ZFTVRPEAQSGwoXU0VOU09SX1ZBTFVFX1NDQUxFX1BJQ08QBRIbChdTRU5TT1JfVkFMVUVfU0NBTEVfTkFOTxAGEhwKGFNFTlNPUl9WQUxVRV9TQ0FMRV9NSUNSTxAHEhwKGFNFTlNPUl9WQUxVRV9TQ0FMRV9NSUxMSRAI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a3NIAFIFdXBwZXISJwoFbG93ZXIYAiABKAsyDy5kbWkuV2F0ZXJNYXJrc0gAUgVsb3dlckILCgl0aHJlc2hvbGQifgoUVGhyZXNob2xkSW5mb3JtYXRpb24SNQoOb2JzZXJ2ZWRfdmFsdWUYASABKAsyDi5kbWkuVmFsdWVUeXBlUg1vYnNlcnZlZFZhbHVlEi8KCnRocmVzaG9sZHMYAiABKAsyDy5kbWkuVGhyZXNob2xkc1IKdGhyZXNob2xkcyKKAQoIRXZlbnRDZmcSKAoIZXZlbnRfaWQYASABKA4yDS5kbWkuRXZlbnRJZHNSB2V2ZW50SWQSIwoNaXNfY29uZmlndXJlZBgCIAEoCFIMaXNDb25maWd1cmVkEi8KCnRocmVzaG9sZHMYAyABKAsyDy5kbWkuVGhyZXNob2xkc1IKdGhyZXNob2xkcyIwCglFdmVudHNDZmcSIwoFaXRlbXMYASADKAsyDS5kbWkuRXZlbnRDZmdSBWl0ZW1zIoYBChJMaXN0RXZlbnRzUmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbhImCgZldmVudHMYAyABKAsyDi5kbWkuRXZlbnRzQ2ZnUgZldmVudHMirQEKGkV2ZW50c0NvbmZpZ3VyYXRpb25SZXF1ZXN0EioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSKgoHY2hhbmdlcxgCIAEoCzIOLmRtaS5FdmVudHNDZmdIAFIHY2hhbmdlcxIqChByZXNldF90b19kZWZhdWx0GAMgASgISABSDnJlc2V0VG9EZWZhdWx0QgsKCW9wZXJhdGlvbiJnChtFdmVudHNDb25maWd1cmF0aW9uUmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbiKUAQoNRXZlbnRNZXRhRGF0YRIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkEjAKDmNvbXBvbmVudF91dWlkGAIgASgLMgkuZG1pLlV1aWRSDWNvbXBvbmVudFV1aWQSJQoOY29tcG9uZW50X25hbWUYAyABKAlSDWNvbXBvbmVudE5hbWUiggIKBUV2ZW50EjkKDmV2ZW50X21ldGFkYXRhGAEgASgLMhIuZG1pLkV2ZW50TWV0YURhdGFSDWV2ZW50TWV0YWRhdGESKAoIZXZlbnRfaWQYAiABKA4yDS5kbWkuRXZlbnRJZHNSB2V2ZW50SWQSNwoJcmFpc2VkX3RzGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIIcmFpc2VkVHMSQAoOdGhyZXNob2xkX2luZm8YBCABKAsyGS5kbWkuVGhyZXNob2xkSW5mb3JtYXRpb25SDXRocmVzaG9sZEluZm8SGQoIYWRkX2luZm8YBSABKAlSB2FkZEluZm8q0Q4KCEV2ZW50SWRzEhgKFEVWRU5UX05BTUVfVU5ERUZJTkVEEAASHgoaRVZFTlRfVFJBTlNDRUlWRVJfUExVR19PVVQQZBIdChlFVkVOVF9UUkFOU0NFSVZFUl9QTFVHX0lOEGUSLQopRVZFTlRfVFJBTlNDRUlWRVJfVk9MVEFHRV9BQk9WRV9USFJFU0hPTEQQZhItCilFVkVOVF9UUkFOU0NFSVZFUl9WT0xUQUdFX0JFTE9XX1RIUkVTSE9MRBBnEjEKLUVWRU5UX1RSQU5TQ0VJVkVSX1RFTVBFUkFUVVJFX0FCT1ZFX1RIUkVTSE9MRBBoEjEKLUVWRU5UX1RSQU5TQ0VJVkVSX1RFTVBFUkFUVVJFX0JFTE9XX1RIUkVTSE9MRBBpEi0KKUVWRU5UX1RSQU5TQ0VJVkVSX0NVUlJFTlRfQUJPVkVfVEhSRVNIT0xEEGoSLQopRVZFTlRfVFJBTlNDRUlWRVJfQ1VSUkVOVF9CRUxPV19USFJFU0hPTEQQaxIuCipFVkVOVF9UUkFOU0NFSVZFUl9SWF9QT1dFUl9BQk9WRV9USFJFU0hPTEQQbBIuCipFVkVOVF9UUkFOU0NFSVZFUl9SWF9QT1dFUl9CRUxPV19USFJFU0hPTEQQbRIuCipFVkVOVF9UUkFOU0NFSVZFUl9UWF9QT1dFUl9BQk9WRV9USFJFU0hPTEQQbhIuCipFVkVOVF9UUkFOU0NFSVZFUl9UWF9QT1dFUl9CRUxPV19USFJFU0hPTEQQbxIdChlFVkVOVF9UUkFOU0NFSVZFUl9GQUlMVVJFEHASNwozRVZFTlRfVFJBTlNDRUlWRVJfVk9MVEFHRV9BQk9WRV9USFJFU0hPTERfUkVDT1ZFUkVEEHESNwozRVZFTlRfVFJBTlNDRUlWRVJfVk9MVEFHRV9CRUxPV19USFJFU0hPTERfUkVDT1ZFUkVEEHISOwo3RVZFTlRfVFJBTlNDRUlWRVJfVEVNUEVSQVRVUkVfQUJPVkVfVEhSRVNIT0xEX1JFQ09WRVJFRBBzEjsKN0VWRU5UX1RSQU5TQ0VJVkVSX1RFTVBFUkFUVVJFX0JFTE9XX1RIUkVTSE9MRF9SRUNPVkVSRUQQdBI3CjNFVkVOVF9UUkFOU0NFSVZFUl9DVVJSRU5UX0FCT1ZFX1RIUkVTSE9MRF9SRUNPVkVSRUQQdRI3CjNFVkVOVF9UUkFOU0NFSVZFUl9DVVJSRU5UX0JFTE9XX1RIUkVTSE9MRF9SRUNPVkVSRUQQdhI4CjRFVkVOVF9UUkFOU0NFSVZFUl9SWF9QT1dFUl9BQk9WRV9USFJFU0hPTERfUkVDT1ZFUkVEEHcSOAo0RVZFTlRfVFJBTlNDRUlWRVJfUlhfUE9XRVJfQkVMT1dfVEhSRVNIT0xEX1JFQ09WRVJFRBB4EjgKNEVWRU5UX1RSQU5TQ0VJVkVSX1RYX1BPV0VSX0FCT1ZFX1RIUkVTSE9MRF9SRUNPVkVSRUQQeRI4CjRFVkVOVF9UUkFOU0NFSVZFUl9UWF9QT1dFUl9CRUxPV19USFJFU0hPTERfUkVDT1ZFUkVEEHoSJwojRVZFTlRfVFJBTlNDRUlWRVJfRkFJTFVSRV9SRUNPVkVSRUQQexIXChJFVkVOVF9QU1VfUExVR19PVVQQyAESFgoRRVZFTlRfUFNVX1BMVUdfSU4QyQESFgoRRVZFTlRfUFNVX0ZBSUxVUkUQygESIAobRVZFTlRfUFNVX0ZBSUxVUkVfUkVDT1ZFUkVEEMsBEhYKEUVWRU5UX0ZBTl9GQUlMVVJFEKwCEhcKEkVWRU5UX0ZBTl9QTFVHX09VVBCtAhIWChFFVkVOVF9GQU5fUExVR19JThCuAhIgChtFVkVOVF9GQU5fRkFJTFVSRV9SRUNPVkVSRUQQrwISKQokRVZFTlRfQ1BVX1RFTVBFUkFUVVJFX0FCT1ZFX0NSSVRJQ0FMEJADEiYKIUVWRU5UX0NQVV9URU1QRVJBVFVSRV9BQk9WRV9GQVRBTBCRAxIzCi5FVkVOVF9DUFVfVEVNUEVSQVRVUkVfQUJPVkVfQ1JJVElDQUxfUkVDT1ZFUkVEEJIDEjAKK0VWRU5UX0NQVV9URU1QRVJBVFVSRV9BQk9WRV9GQVRBTF9SRUNPVkVSRUQQkwMSGgoVRVZFTlRfSFdfREVWSUNFX1JFU0VUEPQDEi8KKkVWRU5UX0hXX0RFVklDRV9URU1QRVJBVFVSRV9BQk9WRV9DUklUSUNBTBD1AxIsCidFVkVOVF9IV19ERVZJQ0VfVEVNUEVSQVRVUkVfQUJPVkVfRkFUQUwQ9gMSOQo0RVZFTlRfSFdfREVWSUNFX1RFTVBFUkFUVVJFX0FCT1ZFX0NSSVRJQ0FMX1JFQ09WRVJFRBD3AxI2CjFFVkVOVF9IV19ERVZJQ0VfVEVNUEVSQVRVUkVfQUJPVkVfRkFUQUxfUkVDT1ZFUkVEEPgDMrcBCh1OYXRpdmVFdmVudHNNYW5hZ2VtZW50U2VydmljZRI2CgpMaXN0RXZlbnRzEg8uZG1pLkhhcmR3YXJlSUQaFy5kbWkuTGlzdEV2ZW50c1Jlc3BvbnNlEl4KGVVwZGF0ZUV2ZW50c0NvbmZpZ3VyYXRpb24SHy5kbWkuRXZlbnRzQ29uZmlndXJhdGlvblJlcXVlc3QaIC5kbWkuRXZlbnRzQ29uZmlndXJhdGlvblJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vb3BlbmNvcmQvZGV2aWNlLW1hbmFnZW1lbnQtaW50ZXJmYWNlL3YzL2dvL2RtaUqdKAoHEgUAAJkBAQoICgEMEgMAABIKCAoBCBIDAgBQCgkKAggLEgMCAFAKCAoBAhIDAwAMCgkKAgMAEgMFABsKCQoCAwESAwYAFgoJCgIDAhIDBwApCkUKAgUAEgQLAEIBMjkgTWFuYWdlbWVudCBvZiBFdmVudHMgYW5kIHByb3RvcyBmb3IgZW5jb2Rpbmcgb2YgRXZlbnRzDQoKCgoDBQABEgMLBQ0KCwoEBQACABIDDAQdCgwKBQUAAgABEgMMBBgKDAoFBQACAAISAwwbHAosCgQFAAIBEgMPBCUaHyBFdmVudHMgZnJvbSB0aGUgVHJhbnNjZWl2ZXJzDQoKDAoFBQAC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kwEEOxoyIExpc3QgdGhlIHN1cHBvcnRlZCBldmVudHMgZm9yIHRoZSBwYXNzZWQgZGV2aWNlDQoKDQoFBgACAAESBJMBCBIKDQoFBgACAAISBJMBEx0KDQoFBgACAAMSBJMBJzkK8AEKBAYAAgESBJgBBGMa4QEgVXBkYXRlcyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgbGlzdCBvZiBldmVudHMgaW4gdGhlIHJlcXVlc3QNCiBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgZGV2aWNlIGlzIHRvIHJlcG9ydCBhbGwgdGhlIHN1cHBvcnRlZCBldmVudHMNCiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgcGVyc2lzdGVkIGFjcm9zcyByZWJvb3RzIG9mIHRoZSBkZXZpY2Ugb3IgdGhlIGRldmljZSBtYW5hZ2VyDQoKDQoFBgACAQESBJgBCCEKDQoFBgACAQISBJgBIjwKDQoFBgACAQMSBJgBRmFiBnByb3RvMwq4EgobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWidnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvZW1wdHn4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK/hAKBhIEHgAzEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPgoJCgIICxIDIwA+CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKwoJCgIICBIDJQArCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAHwoJCgIIHxIDKAAfCvsCCgIEABIDMwAQGu8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRW1wdHlgIGlzIGVtcHR5IEpTT04gb2JqZWN0IGB7fWAuCgoKCgMEAAESAzMIDWIGcHJvdG8zCoNUCh9kbWkvaHdfbWFuYWdlbWVudF9zZXJ2aWNlLnByb3RvEgNkbWkaEWRtaS9jb21tb25zLnByb3RvGgxkbWkvaHcucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90byJGChhQaHlzaWNhbEludmVudG9yeVJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZCKSAQoZUGh5c2ljYWxJbnZlbnRvcnlSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEisKCWludmVudG9yeRgDIAEoCzINLmRtaS5IYXJkd2FyZVIJaW52ZW50b3J5IqABChlIV0NvbXBvbmVudEluZm9HZXRSZXF1ZXN0EioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSMAoOY29tcG9uZW50X3V1aWQYAiABKAsyCS5kbWkuVXVpZFINY29tcG9uZW50VXVpZBIlCg5jb21wb25lbnRfbmFtZRgDIAEoCVINY29tcG9uZW50TmFtZSKUAQoaSFdDb21wb25lbnRJbmZvR2V0UmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbhIsCgljb21wb25lbnQYAyABKAsyDi5kbWkuQ29tcG9uZW50Ugljb21wb25lbnQi1AEKGUhXQ29tcG9uZW50SW5mb1NldFJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIwCg5jb21wb25lbnRfdXVpZBgCIAEoCzIJLmRtaS5VdWlkUg1jb21wb25lbnRVdWlkEiUKDmNvbXBvbmVudF9uYW1lGAMgASgJUg1jb21wb25lbnROYW1lEjIKB2NoYW5nZXMYBCABKAsyGC5kbWkuTW9kaWZpYWJsZUNvbXBvbmVudFIHY2hhbmdlcyJmChpIV0NvbXBvbmVudEluZm9TZXRSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uIpMBChtTdGFydE1hbmFnaW5nRGV2aWNlUmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbhIqCgtkZXZpY2VfdXVpZBgDIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkIi8KGVN0b3BNYW5hZ2luZ0RldmljZVJlcXVlc3QSEgoEbmFtZRgBIAEoCVIEbmFtZSJmChpTdG9wTWFuYWdpbmdEZXZpY2VSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uIkwKFk1hbmFnZWREZXZpY2VzUmVzcG9uc2USMgoHZGV2aWNlcxgBIAMoCzIYLmRtaS5Nb2RpZmlhYmxlQ29tcG9uZW50UgdkZXZpY2VzIp0BChlTZXRMb2dnaW5nRW5kcG9pbnRSZXF1ZXN0EioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSKQoQbG9nZ2luZ19lbmRwb2ludBgCIAEoCVIPbG9nZ2luZ0VuZHBvaW50EikKEGxvZ2dpbmdfcHJvdG9jb2wYAyABKAlSD2xvZ2dpbmdQcm90b2NvbCJlChlTZXRSZW1vdGVFbmRwb2ludFJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24ivAEKGkdldExvZ2dpbmdFbmRwb2ludFJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24SKQoQbG9nZ2luZ19lbmRwb2ludBgDIAEoCVIPbG9nZ2luZ0VuZHBvaW50EikKEGxvZ2dpbmdfcHJvdG9jb2wYBCABKAlSD2xvZ2dpbmdQcm90b2NvbCJDChhTZXRNc2dCdXNFbmRwb2ludFJlcXVlc3QSJwoPbXNnYnVzX2VuZHBvaW50GAEgASgJUg5tc2didXNFbmRwb2ludCKOAQoZR2V0TXNnQnVzRW5kcG9pbnRSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEicKD21zZ2J1c19lbmRwb2ludBgDIAEoCVIObXNnYnVzRW5kcG9pbnQiWQoQRW50aXRpZXNMb2dMZXZlbBIpCghsb2dMZXZlbBgBIAEoDjINLmRtaS5Mb2dMZXZlbFIIbG9nTGV2ZWwSGgoIZW50aXRpZXMYAiADKAlSCGVudGl0aWVzInUKElNldExvZ0xldmVsUmVxdWVzdBIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkEjMKCWxvZ2xldmVscxgCIAMoCzIVLmRtaS5FbnRpdGllc0xvZ0xldmVsUglsb2dsZXZlbHMiSwoTU2V0TG9nTGV2ZWxSZXNwb25zZRI0CglyZXNwb25zZXMYASADKAsyFi5kbWkuRGV2aWNlTG9nUmVzcG9uc2VSCXJlc3BvbnNlcyKJAQoRRGV2aWNlTG9nUmVzcG9uc2USKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIjCgZzdGF0dXMYAiABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAMgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uIlwKEkdldExvZ0xldmVsUmVxdWVzdBIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkEhoKCGVudGl0aWVzGAIgAygJUghlbnRpdGllcyLAAQoTR2V0TG9nTGV2ZWxSZXNwb25zZRIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkEjMKCWxvZ0xldmVscxgCIAMoCzIVLmRtaS5FbnRpdGllc0xvZ0xldmVsUglsb2dMZXZlbHMSIwoGc3RhdHVzGAMgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgEIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbiJIChpHZXRMb2dnYWJsZUVudGl0aWVzUmVxdWVzdBIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkMqkIChlOYXRpdmVIV01hbmFnZW1lbnRTZXJ2aWNlElMKE1N0YXJ0TWFuYWdpbmdEZXZpY2USGC5kbWkuTW9kaWZpYWJsZUNvbXBvbmVudBogLmRtaS5TdGFydE1hbmFnaW5nRGV2aWNlUmVzcG9uc2UwARJVChJTdG9wTWFuYWdpbmdEZXZpY2USHi5kbWkuU3RvcE1hbmFnaW5nRGV2aWNlUmVxdWVzdBofLmRtaS5TdG9wTWFuYWdpbmdEZXZpY2VSZXNwb25zZRJIChFHZXRNYW5hZ2VkRGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRobLmRtaS5NYW5hZ2VkRGV2aWNlc1Jlc3BvbnNlElcKFEdldFBoeXNpY2FsSW52ZW50b3J5Eh0uZG1pLlBoeXNpY2FsSW52ZW50b3J5UmVxdWVzdBoeLmRtaS5QaHlzaWNhbEludmVudG9yeVJlc3BvbnNlMAESVwoSR2V0SFdDb21wb25lbnRJbmZvEh4uZG1pLkhXQ29tcG9uZW50SW5mb0dldFJlcXVlc3QaHy5kbWkuSFdDb21wb25lbnRJbmZvR2V0UmVzcG9uc2UwARJVChJTZXRIV0NvbXBvbmVudEluZm8SHi5kbWkuSFdDb21wb25lbnRJbmZvU2V0UmVxdWVzdBofLmRtaS5IV0NvbXBvbmVudEluZm9TZXRSZXNwb25zZRJUChJTZXRMb2dnaW5nRW5kcG9pbnQSHi5kbWkuU2V0TG9nZ2luZ0VuZHBvaW50UmVxdWVzdBoeLmRtaS5TZXRSZW1vdGVFbmRwb2ludFJlc3BvbnNlEkAKEkdldExvZ2dpbmdFbmRwb2ludBIJLmRtaS5VdWlkGh8uZG1pLkdldExvZ2dpbmdFbmRwb2ludFJlc3BvbnNlElIKEVNldE1zZ0J1c0VuZHBvaW50Eh0uZG1pLlNldE1zZ0J1c0VuZHBvaW50UmVxdWVz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Co0CCgQGAAIKEgSsAQRVGv4BIEdldHMgdGhlIGVudGl0aWVzIG9mIGEgZGV2aWNlIG9uIHdoaWNoIGxvZyBjYW4gYmUgY29uZmlndXJlZC4gQSBmZXcgYXJlIGV4cGVjdGVkLCBsaWtlIE9TLCBQT04gTWFuYWdlbWVudCBldGMuDQogSW4gZ2VuZXJhbCBhbiBlbnRpdHkgaXMgYW55IGl0ZW0gd2l0aGluIGFuIGhhcmR3YXJlIHN5c3RlbSB0aGF0IGNhbiBlbWl0IGxvZ3MsIGUuZy4gc2VydmljZSwgcHJvY2Vzcywgc3Vic3lzdGVtLA0KIGludGVyZmFjZSwgcGFja2FnZSBldGMuDQoKDQoFBgACCgESBKwBCBsKDQoFBgACCgISBKwBHDYKDQoFBgACCgMSBKwBQFMKswIKBAYAAgsSBLEBBEUapAIgU2V0cyB0aGUgbG9nIGxldmVsIGZvciBvbmUgb3IgbW9yZSBkZXZpY2VzIGZvciBlYWNoIGdpdmVuIGVudGl0eSB0byBhIGNlcnRhaW4gbGV2ZWwuDQogSWYgb25seSBvbmUgRW50aXRpZXNMb2dMZXZlbCBpcyBwcm92aWRlZCBmb3IgdGhlIGRldmljZSBhbmQgdGhhdCByZXF1ZXN0IGNvbnRhaW5zIG9ubHkgYSBsb2cgbGV2ZWwgd2l0aA0KIG5vIGVudGl0eSBpbiB0aGUgbGlzdCBpdCdzIGFzc3VtZWQgdGhhdCB0aGUgY2FsbGVyIHdhbnRzIHRvIHNldCB0aGF0IGxldmVsIGZvciBhbGwgdGhlIGVudGl0aWVzLg0KCg0KBQYAAgsBEgSxAQgTCg0KBQYAAgsCEgSxARQmCg0KBQYAAgsDEgSxATBDCr4BCgQGAAIMEgS1AQRFGq8BIEdldHMgdGhlIGNvbmZpZ3VyZWQgbG9nIGxldmVsIGZvciBhIGNlcnRhaW4gZW50aXR5IG9uIGEgY2VydGFpbiBkZXZpY2UuDQogSWYgbm8gZW50aXR5IGlzIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdCBhbGwgdGhlIGVudGl0aWVzIHdpdGggdGhlaXIgbG9nIGxldmVsIHNob3VsZCBiZSByZXR1cm5lZC4NCgoNCgUGAAIMARIEtQEIEwoNCgUGAAIMAhIEtQEUJgoNCgUGAAIMAxIEtQEwQ2IGcHJvdG8zCoQ2CiFkbWkvaHdfbWV0cmljc19tZ210X3NlcnZpY2UucHJvdG8SA2RtaRoRZG1pL2NvbW1vbnMucHJvdG8aDGRtaS9ody5wcm90byKHAQoMTWV0cmljQ29uZmlnEi0KCW1ldHJpY19pZBgBIAEoDjIQLmRtaS5NZXRyaWNOYW1lc1IIbWV0cmljSWQSIwoNaXNfY29uZmlndXJlZBgCIAEoCFIMaXNDb25maWd1cmVkEiMKDXBvbGxfaW50ZXJ2YWwYAyABKA1SDHBvbGxJbnRlcnZhbCI8Cg1NZXRyaWNzQ29uZmlnEisKB21ldHJpY3MYASADKAsyES5kbWkuTWV0cmljQ29uZmlnUgdtZXRyaWNzIo0BChNMaXN0TWV0cmljc1Jlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24SLAoHbWV0cmljcxgDIAEoCzISLmRtaS5NZXRyaWNzQ29uZmlnUgdtZXRyaWNzIrIBChtNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIuCgdjaGFuZ2VzGAIgASgLMhIuZG1pLk1ldHJpY3NDb25maWdIAFIHY2hhbmdlcxIqChByZXNldF90b19kZWZhdWx0GAMgASgISABSDnJlc2V0VG9EZWZhdWx0QgsKCW9wZXJhdGlvbiJoChxNZXRyaWNzQ29uZmlndXJhdGlvblJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24ilQEKDk1ldHJpY01ldGFEYXRhEioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSMAoOY29tcG9uZW50X3V1aWQYAiABKAsyCS5kbWkuVXVpZFINY29tcG9uZW50VXVpZBIlCg5jb21wb25lbnRfbmFtZRgDIAEoCVINY29tcG9uZW50TmFtZSKlAQoGTWV0cmljEi0KCW1ldHJpY19pZBgBIAEoDjIQLmRtaS5NZXRyaWNOYW1lc1IIbWV0cmljSWQSPAoPbWV0cmljX21ldGFkYXRhGAIgASgLMhMuZG1pLk1ldHJpY01ldGFEYXRhUg5tZXRyaWNNZXRhZGF0YRIuCgV2YWx1ZRgDIAEoCzIYLmRtaS5Db21wb25lbnRTZW5zb3JEYXRhUgV2YWx1ZSJzChBHZXRNZXRyaWNSZXF1ZXN0EjAKCW1ldGFfZGF0YRgBIAEoCzITLmRtaS5NZXRyaWNNZXRhRGF0YVIIbWV0YURhdGESLQoJbWV0cmljX2lkGAIgASgOMhAuZG1pLk1ldHJpY05hbWVzUghtZXRyaWNJZCKCAQoRR2V0TWV0cmljUmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbhIjCgZtZXRyaWMYAyABKAsyCy5kbWkuTWV0cmljUgZtZXRyaWMq2QUKC01ldHJpY05hbWVzEhkKFU1FVFJJQ19OQU1FX1VOREVGSU5FRBAAEhQKEE1FVFJJQ19GQU5fU1BFRUQQARITCg9NRVRSSUNfQ1BVX1RFTVAQZBIfChtNRVRSSUNfQ1BVX1VTQUdFX1BFUkNFTlRBR0UQZRIcChdNRVRSSUNfVFJBTlNDRUlWRVJfVEVNUBDIARIfChpNRVRSSUNfVFJBTlNDRUlWRVJfVk9MVEFHRRDJARIcChdNRVRSSUNfVFJBTlNDRUlWRVJfQklBUxDKARIgChtNRVRSSUNfVFJBTlNDRUlWRVJfUlhfUE9XRVIQywESIAobTUVUUklDX1RSQU5TQ0VJVkVSX1RYX1BPV0VSEMwBEiIKHU1FVFJJQ19UUkFOU0NFSVZFUl9XQVZFTEVOR1RIEM0BEhUKEE1FVFJJQ19ESVNLX1RFTVAQrAISGQoUTUVUUklDX0RJU0tfQ0FQQUNJVFkQrQISFgoRTUVUUklDX0RJU0tfVVNBR0UQrgISIQocTUVUUklDX0RJU0tfVVNBR0VfUEVSQ0VOVEFHRRCvAhImCiFNRVRSSUNfRElTS19SRUFEX1dSSVRFX1BFUkNFTlRBR0UQsAISKAojTUVUUklDX0RJU0tfRkFVTFRZX0NFTExTX1BFUkNFTlRBR0UQsQISFAoPTUVUUklDX1JBTV9URU1QEJADEhgKE01FVFJJQ19SQU1fQ0FQQUNJVFkQkQMSFQoQTUVUUklDX1JBTV9VU0FHRRCSAxIgChtNRVRSSUNfUkFNX1VTQUdFX1BFUkNFTlRBR0UQkwMSFQoQTUVUUklDX1BPV0VSX01BWBD0AxIXChJNRVRSSUNfUE9XRVJfVVNBR0UQ9QMSIgodTUVUUklDX1BPV0VSX1VTQUdFX1BFUkNFTlRBR0UQ9gMSIgodTUVUUklDX0lOTkVSX1NVUlJPVU5ESU5HX1RFTVAQ2AQy+QEKHk5hdGl2ZU1ldHJpY3NNYW5hZ2VtZW50U2VydmljZRI4CgtMaXN0TWV0cmljcxIPLmRtaS5IYXJkd2FyZUlEGhguZG1pLkxpc3RNZXRyaWNzUmVzcG9uc2USYQoaVXBkYXRlTWV0cmljc0NvbmZpZ3VyYXRpb24SIC5kbWkuTWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0GiEuZG1pLk1ldHJpY3NDb25maWd1cmF0aW9uUmVzcG9uc2USOgoJR2V0TWV0cmljEhUuZG1pLkdldE1ldHJpY1JlcXVlc3QaFi5kbWkuR2V0TWV0cmljUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9vcGVuY29yZC9kZXZpY2UtbWFuYWdlbWVudC1pbnRlcmZhY2UvdjMvZ28vZG1pSuojCgcSBQAAggEBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAGwoJCgIDARIDBgAWCtgBCgIFABIEDQA0ATKOASBUaGUgbW9kZWwgdXNlZCB0byByZXByZXNlbnQgdGhlIGV2ZW50IGRhdGEgb24gdGhlIFNlbnNvckRhdGEgb2YgYSBjb21wb25lbnQgYXMgZGVzY3JpYmVkDQogaW4gUkZDODM0OCAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzgzNDgpDQoyOyBNYW5hZ2VtZW50IG9mIE1ldHJpY3MgYW5kIHByb3RvcyBmb3IgZW5jb2Rpbmcgb2YgTWV0cmljcw0KCgoKAwUAARIDDQUQCgsKBAUAAgASAw4EHgoMCgUFAAIAARIDDgQZCgwKBQUAAgACEgMOHB0KIwoEBQACARIDEQQZ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a25vdyBhYm91dCB0aGUgbWV0cmljcyB0aGF0IGEgcGFydGljdWxhciBkZXZpY2Ugc3VwcG9ydHMgYW5kDQogdGhlbiB1c2UgdGhlIFVwZGF0ZU1ldHJpY3NDb25maWd1cmF0aW9uIEFQSSB0byBtb25pdG9yIG9ubHkgdGhlIHJlcXVpcmVkIG1ldHJpY3MuDQoKDAoFBgACAAESA3cIEwoMCgUGAAIAAhIDdxQeCgwKBQYAAgADEgN3KDsKpgIKBAYAAgESA34EZhqYAiBVcGRhdGVzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBsaXN0IG9mIG1ldHJpY3MgaW4gdGhlIHJlcXVlc3QNCiBBY3RzIHVwb24gc2luZ2xlIG1ldHJpYyBjb25maWd1cmF0aW9uLCBjb2xsZWN0aW9uIG9mIGEgc2luZ2xlIG1ldHJpYyBjYW4gYmUgc3RhcnRlZC9zdG9wcGVkDQogYnkgY2hhbmdpbmcgaXRzIGNvbmZpZ3VyYXRpb24uDQoNCiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgcGVyc2lzdGVkIGFjcm9zcyByZXN0YXJ0IG9mIHRoZSBkZXZpY2Ugb3IgdGhlIGRldmljZSBtYW5hZ2VyDQoKDAoFBgACAQESA34IIgoMCgUGAAIBAhIDfiM+CgwKBQYAAgEDEgN+SGQKNwoEBgACAhIEgQEEPxopIEdldCB0aGUgaW5zdGFudGVub3VzIHZhbHVlIG9mIGEgbWV0cmljDQoKDQoFBgACAgESBIEBCBEKDQoFBgACAgISBIEBEiIKDQoFBgACAgMSBIEBLD1iBnByb3RvMwrTGAoSZG1pL3N3X2ltYWdlLnByb3RvEgNkbWkaEWRtaS9jb21tb25zLnByb3RvIkcKDEltYWdlVmVyc2lvbhIdCgppbWFnZV9uYW1lGAEgASgJUglpbWFnZU5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbiKoAQoQSW1hZ2VJbmZvcm1hdGlvbhInCgVpbWFnZRgBIAEoCzIRLmRtaS5JbWFnZVZlcnNpb25SBWltYWdlEjAKFGltYWdlX2luc3RhbGxfc2NyaXB0GAIgASgJUhJpbWFnZUluc3RhbGxTY3JpcHQSGwoJaW1hZ2VfdXJsGAMgASgJUghpbWFnZVVybBIcCglzaGEyNTZzdW0YBSABKAlSCXNoYTI1NnN1bSKeBAoLSW1hZ2VTdGF0dXMSIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEi8KBnJlYXNvbhgCIAEoDjIXLmRtaS5JbWFnZVN0YXR1cy5SZWFzb25SBnJlYXNvbhIxCgVzdGF0ZRgDIAEoDjIbLmRtaS5JbWFnZVN0YXR1cy5JbWFnZVN0YXRlUgVzdGF0ZRIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24i0AEKCkltYWdlU3RhdGUSEwoPVU5ERUZJTkVEX1NUQVRFEAASEQoNQ09QWUlOR19JTUFHRRABEhQKEElOU1RBTExJTkdfSU1BR0UQAhIUChBDT01NSVRUSU5HX0lNQUdFEAMSFAoQUkVCT09USU5HX0RFVklDRRAEEhQKEFVQR1JBREVfQ09NUExFVEUQBRISCg5VUEdSQURFX0ZBSUxFRBAGEhcKE0FDVElWQVRJT05fQ09NUExFVEUQBxIVChFBQ1RJVkFUSU9OX0ZBSUxFRBAIIpABCgZSZWFzb24SFAoQVU5ERUZJTkVEX1JFQVNPThAAEhQKEEVSUk9SX0lOX1JFUVVFU1QQARISCg5JTlRFUk5BTF9FUlJPUhACEhkKFURFVklDRV9JTl9XUk9OR19TVEFURRADEhEKDUlOVkFMSURfSU1BR0UQBBIYChRXUk9OR19JTUFHRV9DSEVDS1NVTRAFQjtaOWdpdGh1Yi5jb20vb3BlbmNvcmQvZGV2aWNlLW1hbmFnZW1lbnQtaW50ZXJmYWNlL3YzL2dvL2RtaUrKEQoGEgQAADYBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAGwpDCgIEABIECQAMATI3IFByb3RvcyBmb3IgbW9kZWxpbmcgYSBzb2Z0d2FyZSBpbWFnZSBhbmQgaXQncyBzdGF0dXMNCgoKCgMEAAESAwkIFAoLCgQEAAIAEgMKBBoKDQoFBAACAAQSBAoECRYKDAoFBAACAAUSAwoECgoMCgUEAAIAARIDCgsVCgwKBQQAAgADEgMKGBkKCwoEBAACARIDCwQXCg0KBQQAAgEEEgQLBAoaCgwKBQQAAgEFEgMLBAoKDAoFBAACAQES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BAICAgMSAzMXGAp2CgQEAgIDEgM1BBsaaSBkZXNjcmlwdGlvbiBjb250YWlucyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwcm9jZWR1cmUgYW5kIGlzIGRldmljZSBkZXBlbmRhbnQNCgoNCgUEAgIDBBIENQQzGQoMCgUEAgIDBRIDNQQKCgwKBQQCAgMBEgM1CxYKDAoFBAICAwMSAzUZGmIGcHJvdG8zCsAVCh9kbWkvc3dfbWFuYWdlbWVudF9zZXJ2aWNlLnByb3RvEgNkbWkaEWRtaS9jb21tb25zLnByb3RvGgxkbWkvaHcucHJvdG8aEmRtaS9zd19pbWFnZS5wcm90byKWAQoaU29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb24SOgoPYWN0aXZlX3ZlcnNpb25zGAEgAygLMhEuZG1pLkltYWdlVmVyc2lvblIOYWN0aXZlVmVyc2lvbnMSPAoQc3RhbmRieV92ZXJzaW9ucxgCIAMoCzIRLmRtaS5JbWFnZVZlcnNpb25SD3N0YW5kYnlWZXJzaW9ucyKmAQolR2V0U29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb25SZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEjMKBGluZm8YAyABKAsyHy5kbWkuU29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb25SBGluZm8ieAoURG93bmxvYWRJbWFnZVJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBI0CgppbWFnZV9pbmZvGAIgASgLMhUuZG1pLkltYWdlSW5mb3JtYXRpb25SCWltYWdlSW5mbzKnAgofTmF0aXZlU29mdHdhcmVNYW5hZ2VtZW50U2VydmljZRJRChJHZXRTb2Z0d2FyZVZlcnNpb24SDy5kbWkuSGFyZHdhcmVJRBoqLmRtaS5HZXRTb2Z0d2FyZVZlcnNpb25JbmZvcm1hdGlvblJlc3BvbnNlEj4KDURvd25sb2FkSW1hZ2USGS5kbWkuRG93bmxvYWRJbWFnZVJlcXVlc3QaEC5k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