RG9jdW1lbnRhdGlvbiBmb3IgZHZiLXVzYi1mcmFtZXdvcmsgbW9kdWxlIGFuZCBpdHMgZGV2aWNlcwoKSWRlYSBiZWhpbmQgdGhlIGR2Yi11c2ItZnJhbWV3b3JrCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSW4gTWFyY2ggMjAwNSBJIGdvdCB0aGUgbmV3IFR3aW5oYW4gVVNCMi4wIERWQi1UIGRldmljZS4gVGhleSBwcm92aWRlZCBzcGVjcyBhbmQgYSBmaXJtd2FyZS4KClF1aXRlIGtlZW4gSSB3YW50ZWQgdG8gcHV0IHRoZSBkcml2ZXIgKHdpdGggc29tZSBxdWlya3Mgb2YgY291cnNlKSBpbnRvIGRpYnVzYi4KQWZ0ZXIgcmVhZGluZyBzb21lIHNwZWNzIGFuZCBkb2luZyBzb21lIFVTQiBzbm9vcGluZywgaXQgcmVhbGl6ZWQsIHRoYXQgdGhlCmRpYnVzYi1kcml2ZXIgd291bGQgYmUgYSBjb21wbGV0ZSBtZXNzIGFmdGVyd2FyZHMuIFNvIEkgZGVjaWRlZCB0byBkbyBpdCBpbiBhCmRpZmZlcmVudCB3YXk6IFdpdGggdGhlIGhlbHAgb2YgYSBkdmItdXNiLWZyYW1ld29yay4KClRoZSBmcmFtZXdvcmsgcHJvdmlkZXMgZ2VuZXJpYyBmdW5jdGlvbnMgKG1vc3RseSBrZXJuZWwgQVBJIGNhbGxzKSwgc3VjaCBhczoKCi0gVHJhbnNwb3J0IFN0cmVhbSBVUkIgaGFuZGxpbmcgaW4gY29uanVuY3Rpb24gd2l0aCBkdmItZGVtdXgtZmVlZC1jb250cm9sCiAgKGJ1bGsgYW5kIGlzb2MgKFRPRE8pIGFyZSBzdXBwb3J0ZWQpCi0gcmVnaXN0ZXJpbmcgdGhlIGRldmljZSBmb3IgdGhlIERWQi1BUEkKLSByZWdpc3RlcmluZyBhbiBJMkMtYWRhcHRlciBpZiBhcHBsaWNhYmxlCi0gcmVtb3RlLWNvbnRyb2wvaW5wdXQtZGV2aWNlIGhhbmRsaW5nCi0gZmlybXdhcmUgcmVxdWVzdGluZyBhbmQgbG9hZGluZyAoY3VycmVudGx5IGp1c3QgZm9yIHRoZSBDeXByZXNzIFVTQgogIGNvbnRyb2xsZXIpCi0gb3RoZXIgZnVuY3Rpb25zL21ldGhvZHMgd2hpY2ggY2FuIGJlIHNoYXJlZCBieSBzZXZlcmFsIGRyaXZlcnMgKHN1Y2ggYXMKICBmdW5jdGlvbnMgZm9yIGJ1bGstY29udHJvbC1jb21tYW5kcykKClRoZSBzb3VyY2UgY29kZSBvZiB0aGUgcGFydGljdWxhciBEVkIgVVNCIGRldmljZXMgZG9lcyBqdXN0IHRoZSBjb21tdW5pY2F0aW9uCndpdGggdGhlIGRldmljZSB2aWEgdGhlIGJ1cy4gVGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgRFZCLUFQSS1mdW5jdGlvbmFsaXR5CmlzIGRvbmUgdmlhIGNhbGxiYWNrcywgYXNzaWduZWQgaW4gYSBzdGF0aWMgZGV2aWNlLWRlc2NyaXB0aW9uIChzdHJ1Y3QKZHZiX3VzYl9kZXZpY2UpIGVhY2ggZGV2aWNlLWRyaXZlciBoYXMgdG8gaGF2ZS4KCkZvciBhbiBleGFtcGxlIGhhdmUgYSBsb29rIGluIGRyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvdnA3MDQ1Ki4KCk9iamVjdGl2ZSBpcyB0byBtaWdyYXRlIGFsbCB0aGUgdXNiLWRldmljZXMgKGRpYnVzYiwgY2luZXJneVQyLCBtYXliZSB0aGUKdHR1c2I7IGZsZXhjb3AtdXNiIGFscmVhZHkgYmVuZWZpdHMgZnJvbSB0aGUgZ2VuZXJpYyBmbGV4Y29wLWRldmljZSkgdG8gdXNlCnRoZSBkdmItdXNiLWxpYi4KClRPRE86IGR5bmFtaWMgZW5hYmxpbmcgYW5kIGRpc2FibGluZyBvZiB0aGUgcGlkLWZpbHRlciBpbiByZWdhcmQgdG8gbnVtYmVyIG9mCmZlZWRzIHJlcXVlc3RlZC4KClN1cHBvcnRlZCBkZXZpY2VzIFVTQjEuMQo9PT09PT09PT09PT09PT09PT09PT09PT0KClByb2R1Y2VkIGFuZCByZXNlbGxlZCBieSBUd2luaGFuOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBUd2luaGFuRFRWIFVTQi1UZXIgRFZCLVQgRGV2aWNlIChWUDcwNDEpCglodHRwOi8vd3d3LnR3aW5oYW4uY29tL3Byb2R1Y3RfdGVycmVzdHJpYWxfMy5hc3AKCi0gVHdpbmhhbkRUViBNYWdpYyBCb3ggKFZQNzA0MWUpCglodHRwOi8vd3d3LnR3aW5oYW4uY29tL3Byb2R1Y3RfdGVycmVzdHJpYWxfNC5hc3AKCi0gSEFNQSBEVkItVCBVU0IgZGV2aWNlCglodHRwOi8vd3d3LmhhbWEuZGUvcG9ydGFsL2FydGljbGVJZCoxMTA2MjAvYWN0aW9uKjI1OTgKCi0gQ1RTIFBvcnRhYmxlIChDaGluZXNlIFRlbGV2aXNpb24gU3lzdGVtKSAoMikKCWh0dHA6Ly93d3cuMmN0cy50di9jdHNwb3J0YWJsZS8KCi0gVW5rbm93biBVU0IgRFZCLVQgZGV2aWNlIHdpdGggdmVuZG9yIElEIEh5cGVyLVBhbHRlawoKClByb2R1Y2VkIGFuZCByZXNlbGxlZCBieSBLV29ybGQ6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gS1dvcmxkIFYtU3RyZWFtIFhQRVJUIERUViBEVkItVCBVU0IKCWh0dHA6Ly93d3cua3dvcmxkLmNvbS50dy9lbi9wcm9kdWN0L0RWQlQtVVNCL0RWQlQtVVNCLmh0bWwKCi0gSmV0V2F5IERUViBEVkItVCBVU0IKCWh0dHA6Ly93d3cuamV0d2F5LmNvbS50dy9ldmlzbi9wcm9kdWN0L2xjZC10di9EVlQtVVNCL2R0di11c2IuaHRtCgotIEFEU1RlY2ggSW5zdGFudCBUViBEVkItVCBVU0IKCWh0dHA6Ly93d3cuYWRzdGVjaC5jb20vcHJvZHVjdHMvUFRWLTMzMy9pbnRyby9QVFYtMzMzX2ludHJvLmFzcD9waWQ9UFRWLTMzMwoKCk90aGVyczoKLS0tLS0tLQotIFVsdGltYSBFbGVjdHJvbmljL0FydGVjIFQxIFVTQiBUVkJPWCAoQU4yMTM1LCBBTjIyMzUsIEFOMjIzNSB3aXRoIFBhbmFzb25pYyBUdW5lcikKCWh0dHA6Ly84Mi4xNjEuMjQ2LjI0OS9wcm9kdWN0cy10dmJveC5odG1sCgotIENvbXBybyBWaWRlb21hdGUgRFZCLVUyMDAwIC0gRFZCLVQgVVNCICgyKQoJaHR0cDovL3d3dy5jb21wcm91c2EuY29tL3Byb2R1Y3RzL3ZtdTIwMDAuaHRtCgotIEdyYW5kdGVjIFVTQiBEVkItVAoJaHR0cDovL3d3dy5ncmFuZC5jb20udHcvCgotIEFWZXJNZWRpYSBBdmVyVFYgRFZCVCBVU0IKCWh0dHA6Ly93d3cuYXZlcm1lZGlhLmNvbS8KCi0gRGlCY29tIFVTQiBEVkItVCByZWZlcmVuY2UgZGV2aWNlIChub24tcHVibGljKQoKClN1cHBvcnRlZCBkZXZpY2VzIFVTQjIuMC1vbmx5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gVHdpbmhhbiBNYWdpY0JveCBJSQoJaHR0cDovL3d3dy50d2luaGFuLmNvbS9wcm9kdWN0X3RlcnJlc3RyaWFsXzcuYXNwCgotIFR3aW5oYW5EVFYgQWxwaGEKCWh0dHA6Ly93d3cudHdpbmhhbi5jb20vcHJvZHVjdF90ZXJyZXN0cmlhbF84LmFzcAoKLSBEaWdpdGFsTm93IFRpbnlVU0IgMiBEVkItdCBSZWNlaXZlcgoJaHR0cDovL3d3dy5kaWdpdGFsbm93LmNvbS5hdS9EaWdpdGFsTm93JTIwdGlueVVTQjIlMjBTcGVjaWZpY2F0aW9ucy5odG1sCgotIEhhbmZ0ZWsgVU1ULTAxMAoJaHR0cDovL3d3dy5nbG9iYWxzb3VyY2VzLmNvbS9zaS82MDA4ODE5NzU3MDgyL1Byb2R1Y3REZXRhaWwvRGlnaXRhbC1UVi9wcm9kdWN0X2lkLTEwMDA0NjUyOQoKClN1cHBvcnRlZCBkZXZpY2VzIFVTQjIuMCBhbmQgVVNCMS4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gVHlwaG9vbi9ZYWt1bW8vSEFNQS9ZdWFuIERWQi1UIG1vYmlsZSBVU0IyLjAKCWh0dHA6Ly93d3cueWFrdW1vLmRlL3Byb2R1a3RlL2luZGV4LnBocD9waWQ9MSZhZz1EVkItVAoJaHR0cDovL3d3dy55dWFuLmNvbS50dy9lbi9wcm9kdWN0cy92ZG9fdWIzMDAuaHRtbAoJaHR0cDovL3d3dy5oYW1hLmRlL3BvcnRhbC9hcnRpY2xlSWQqMTE0NjYzL2FjdGlvbioyNTYzCglodHRwOi8vd3d3LmFudWJpc2xpbmUuY29tL2VuZ2xpc2gvYXJ0aWNsZWMuYXNwP2lkPTUwNTAyJmNhdGlkPTAwMgoKLSBBcnRlYyBUMSBVU0IgVFZCT1ggKEZYMikgKDIpCgotIEhhdXBwYXVnZSBXaW5UViBOT1ZBLVQgVVNCMgoJaHR0cDovL3d3dy5oYXVwcGF1Z2UuY29tLwoKLSBLV29ybGQvQURTVGVjaCBJbnN0YW50IERWQi1UIFVTQjIuMCAoRGlCMzAwME0tQikKCi0gRGlCY29tIFVTQjIuMCBEVkItVCByZWZlcmVuY2UgZGV2aWNlIChub24tcHVibGljKQoKLSBBVmVyTWVkaWEgQXZlclRWIEE4MDAgRFZCLVQgVVNCMi4wCgoxKSBJdCBpcyB3b3JraW5nIGFsbW9zdCAtIHdvcmstaW4tcHJvZ3Jlc3MuCjIpIE5vIHRlc3QgcmVwb3J0cyByZWNlaXZlZCB5ZXQuCgowLiBIaXN0b3J5ICYgTmV3czoKICAyMDA1LTA0LTE3IC0gYWxsIGRpYnVzYiBkZXZpY2VzIHBvcnRlZCB0byBtYWtlIHVzZSBvZiB0aGUgZHZiLXVzYi1mcmFtZXdvcmsKICAyMDA1LTA0LTAyIC0gcmUtZW5hYmxlZCBhbmQgaW1wcm92ZWQgcmVtb3RlIGNvbnRyb2wgY29kZS4KICAyMDA1LTAzLTMxIC0gcG9ydGVkIHRoZSBZYWt1bW8vSGFtYS9UeXBob29uIERWQi1UIFVTQjIuMCBkZXZpY2UgdG8gZHZiLXVzYi4KICAyMDA1LTAzLTMwIC0gZmlyc3QgY29tbWl0IG9mIHRoZSBkdmItdXNiLW1vZHVsZSBiYXNlZCBvbiB0aGUgZGlidXNiLXNvdXJjZS4gRmlyc3QgZGV2aWNlIGlzIGEgbmV3IGRyaXZlciBmb3IgdGhlCiAgICAgICAgICAgICAgIFR3aW5oYW5EVFYgQWxwaGEgLyBNYWdpY0JveCBJSSBVU0IyLjAtb25seSBEVkItVCBkZXZpY2UuCgogIChjaGFuZ2UgZnJvbSBkdmItZGlidXNiIHRvIGR2Yi11c2IpCiAgMjAwNS0wMy0yOCAtIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBBVmVyTWVkaWEgQXZlclRWIERWQi1UIFVTQjIuMCBkZXZpY2UgKFRoYW5rcyB0byBHbGVuIEhhcnJpcyBhbmQgSml1bi1LdWVpIEp1bmcsIEFWZXJNZWRpYSkKICAyMDA1LTAzLTE0IC0gYWRkZWQgc3VwcG9ydCBmb3IgdGhlIFR5cGhvb24vWWFrdW1vL0hBTUEgRFZCLVQgbW9iaWxlIFVTQjIuMAogIDIwMDUtMDItMTEgLSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgS1dvcmxkL0FEU1RlY2ggSW5zdGFudCBEVkItVCBVU0IyLjAuIFRoYW5rcyBhIGxvdCB0byBKb2FjaGltIHZvbiBDYXJvbgogIDIwMDUtMDItMDIgLSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgSGF1cHBhdWdlIFdpbi1UViBOb3ZhLVQgVVNCMgogIDIwMDUtMDEtMzEgLSBkaXN0b3J0ZWQgc3RyZWFtaW5nIGlzIGdvbmUgZm9yIFVTQjEuMSBkZXZpY2VzCiAgMjAwNS0wMS0xMyAtIG1vdmVkIHRoZSBtaXJyb3JlZCBwaWRfZmlsdGVyX3RhYmxlIGJhY2sgdG8gZHZiLWRpYnVzYgogICAgICAgICAgICAgLSBmaXJzdCBhbG1vc3Qgd29ya2luZyB2ZXJzaW9uIGZvciBIYW5mVGVrIFVNVC0wMTAKICAgICAgICAgICAgIC0gZm91bmQgb3V0LCB0aGF0IFlha3Vtby9IQU1BL1R5cGhvb24gYXJlIHByZWRlc3NvcnMgb2YgdGhlIEhhbmZUZWsgVU1ULTAxMAogIDIwMDUtMDEtMTAgLSByZWZhY3RvcmluZyBjb21wbGV0ZWQsIG5vdyBldmVyeXRoaW5nIGlzIHZlcnkgZGVsaWdodGZ1bAogICAgICAgICAgICAgLSB0dW5lciBxdWlya3MgZm9yIHNvbWUgd2VpcmQgZGV2aWNlcyAoQXJ0ZWMgVDEgQU4yMjM1IGRldmljZSBoYXMgc29tZXRpbWVzIGEKICAgICAgICAgICAgICAgUGFuYXNvbmljIFR1bmVyIGFzc2VtYmxlZCkuIFR1bmVycHJvYmluZyBpbXBsZW1lbnRlZC4gVGhhbmtzIGEgbG90IHRvIEd1bm5hciBXaXR0aWNoLgogIDIwMDQtMTItMjkgLSBhZnRlciBzZXZlcmFsIGRheXMgb2Ygc3RydWdnbGluZyBhcm91bmQgYnVnIG9mIG5vIHJldHVybmluZyBVUkJzIGZpeGVkLgogIDIwMDQtMTItMjYgLSByZWZhY3RvcmVkIHRoZSBkaWJ1c2ItZHJpdmVyLCBzcGxpdHRlZCBpbnRvIHNlcGFyYXRlIGZpbGVzCiAgICAgICAgICAgICAtIGkyYy1wcm9iaW5nIGVuYWJsZWQKICAyMDA0LTEyLTA2IC0gcG9zc2liaWxpdHkgZm9yIGRlbW9kIGkyYy1hZGRyZXNzIHByb2JpbmcKICAgICAgICAgICAgIC0gbmV3IHVzYiBJRHMgKENvbXBybywgQXJ0ZWMpCiAgMjAwNC0xMS0yMyAtIG1lcmdlZCBjaGFuZ2VzIGZyb20gRGlCMzAwME1DX3ZlcjIuMQogICAgICAgICAgICAgLSByZXZpc2VkIHRoZSBkZWJ1Z2dpbmcKICAgICAgICAgICAgIC0gcG9zc2liaWxpdHkgdG8gZGVsaXZlciB0aGUgY29tcGxldGUgVFMgZm9yIFVTQjIuMAogIDIwMDQtMTEtMjEgLSBmaXJzdCB3b3JraW5nIHZlcnNpb24gb2YgdGhlIGRpYjMwMDBtYy9wIGZyb250ZW5kIGRyaXZlci4KICAyMDA0LTExLTEyIC0gYWRkZWQgYWRkaXRpb25hbCByZW1vdGUgY29udHJvbCBrZXlzLiBUaGFua3MgdG8gVXdlIEhhbmtlLgogIDIwMDQtMTEtMDcgLSBhZGRlZCByZW1vdGUgY29udHJvbCBzdXBwb3J0LiBUaGFua3MgdG8gRGF2aWQgTWF0dGhld3MuCiAgMjAwNC0xMS0wNSAtIGFkZGVkIHN1cHBvcnQgZm9yIGEgbmV3IGRldmljZXMgKEdyYW5kdGVjL0F2ZXJtZWRpYS9BcnRlYykKICAgICAgICAgICAgIC0gbWVyZ2VkIG15IGNoYW5nZXMgKGZvciBkaWIzMDAwbWIvZGlidXNiKSB0byB0aGUgRkVfUkVGQUNUT1JJTkcsIGJlY2F1c2UgaXQgYmVjYW1lIEhFQUQKICAgICAgICAgICAgIC0gbW92ZWQgdHJhbnNmZXIgY29udHJvbCAocGlkIGZpbHRlciwgZmlmbyBjb250cm9sKSBmcm9tIHVzYiBkcml2ZXIgdG8gZnJvbnRlbmQsIGl0IHNlZW1zCiAgICAgICAgICAgICAgIGJldHRlciBzZXR0bGVkIHRoZXJlIChhZGRlZCB4ZmVyX29wcy1zdHJ1Y3QpCiAgICAgICAgICAgICAtIGNyZWF0ZWQgYSBjb21tb24gZmlsZXMgZm9yIGZyb250ZW5kcyAobWMvcC9tYikKICAyMDA0LTA5LTI4IC0gYWRkZWQgc3VwcG9ydCBmb3IgYSBuZXcgZGV2aWNlIChVbmtvd24sIHZlbmRvciBJRCBpcyBIeXBlci1QYWx0ZWspCiAgMjAwNC0wOS0yMCAtIGFkZGVkIHN1cHBvcnQgZm9yIGEgbmV3IGRldmljZSAoQ29tcHJvIERWQi1VMjAwMCksIHRoYW5rcwogICAgICAgICAgICAgICB0byBBbWF1cnkgRGVtb2wgZm9yIHJlcG9ydGluZwogICAgICAgICAgICAgLSBjaGFuZ2VkIHVzYiBUUyB0cmFuc2ZlciBtZXRob2QgKHNldmVyYWwgdXJicywgc3RvcHBpbmcgdHJhbnNmZXIKICAgICAgICAgICAgICAgYmVmb3JlIHNldHRpbmcgYSBuZXcgcGlkKQogIDIwMDQtMDktMTMgLSBhZGRlZCBzdXBwb3J0IGZvciBhIG5ldyBkZXZpY2UgKEFydGVjIFQxIFVTQiBUVkJPWCksIHRoYW5rcwogICAgICAgICAgICAgICB0byBDaHJpc3RpYW4gTW90c2Noa2UgZm9yIHJlcG9ydGluZwogIDIwMDQtMDktMDUgLSByZWxlYXNlZCB0aGUgZGlidXNiIGRldmljZSBhbmQgZGliMzAwMG1iLWZyb250ZW5kIGRyaXZlcgoKICAob2xkIG5ld3MgZm9yIHZwNzA0MS5jKQogIDIwMDQtMDctMTUgLSBmb3VuZCBvdXQsIGJ5IGFjY2lkZW50LCB0aGF0IHRoZSBkZXZpY2UgaGFzIGEgVFVBNjAxMFhTIGZvcgogICAgICAgICAgICAgICBQTEwKICAyMDA0LTA3LTEyIC0gZmlndXJlZCBvdXQsIHRoYXQgdGhlIGRyaXZlciBzaG91bGQgYWxzbyB3b3JrIHdpdGggdGhlCiAgICAgICAgICAgICAgIENUUyBQb3J0YWJsZSAoQ2hpbmVzZSBUZWxldmlzaW9uIFN5c3RlbSkKICAyMDA0LTA3LTA4IC0gZmlybXdhcmUtZXh0cmFjdGlvbi0yLjQyMi1wcm9ibGVtIHNvbHZlZCwgZHJpdmVyIGlzIG5vdyB3b3JraW5nCiAgICAgICAgICAgICAgIHByb3Blcmx5IHdpdGggZmlybXdhcmUgZXh0cmFjdGVkIGZyb20gMi40MjIKICAgICAgICAgICAgIC0gI2lmIGZvciAyLjYuNCAoZHZiKSwgY29tcGlsZSBpc3N1ZQogICAgICAgICAgICAgLSBjaGFuZ2VkIGZpcm13YXJlIGhhbmRsaW5nLCBzZWUgdnA3MDQxLnR4dCBzZWMgMS4xCiAgMjAwNC0wNy0wMiAtIHNvbWUgdHVuZXIgbW9kaWZpY2F0aW9ucywgdjAuMSwgY2xlYW51cHMsIGZpcnN0IHB1YmxpYwogIDIwMDQtMDYtMjggLSBub3cgdXNpbmcgdGhlIGR2Yl9kbXhfc3dmaWx0ZXJfcGFja2V0cywgZXZlcnl0aGluZwogICAgICAgICAgICAgICBydW5zIGZpbmUgbm93CiAgMjAwNC0wNi0yNyAtIGFibGUgdG8gd2F0Y2ggYW5kIHN3aXRjaGluZyBjaGFubmVscyAocHJlLWFscGhhKQogICAgICAgICAgICAgLSBubyBzZWN0aW9uIGZpbHRlcmluZyB5ZXQKICAyMDA0LTA2LTA2IC0gZmlyc3QgVFMgcmVjZWl2ZWQsIGJ1dCBrZXJuZWwgb29wcyA6LwogIDIwMDQtMDUtMTQgLSBmaXJtd2FyZSBsb2FkZXIgaXMgd29ya2luZwogIDIwMDQtMDUtMTEgLSBzdGFydCB3cml0aW5nIHRoZSBkcml2ZXIKCjEuIEhvdyB0byB1c2U/CjEuMS4gRmlybXdhcmUKCk1vc3Qgb2YgdGhlIFVTQiBkcml2ZXJzIG5lZWQgdG8gZG93bmxvYWQgYSBmaXJtd2FyZSB0byBzdGFydCB3b3JraW5nLgoKZm9yIFVTQjEuMSAoQU4yMTM1KSB5b3UgbmVlZDogZHZiLXVzYi1kaWJ1c2ItNS4wLjAuMTEuZncKZm9yIFVTQjIuMCBIYW5mVGVrOiBkdmItdXNiLXVtdC0wMTAtMDIuZncKZm9yIFVTQjIuMCBEaUJjb206IGR2Yi11c2ItZGlidXNiLTYuMC4wLjguZncKZm9yIFVTQjIuMCBBVmVyTWVkaWEgQXZlclRWIERWQi1UIFVTQjI6IGR2Yi11c2ItYXZlcnR2LWE4MDAtMDEuZncKZm9yIFVTQjIuMCBUd2luaGFuRFRWIEFscGhhL01hZ2ljQm94IElJOiBkdmItdXNiLXZwNzA0NS0wMS5mdwoKVGhlIGZpbGVzIGNhbiBiZSBmb3VuZCBvbiBodHRwOi8vd3d3LmxpbnV4dHYub3JnL2Rvd25sb2FkL2Zpcm13YXJlLyAuCgpXZSBkbyBub3QgaGF2ZSB0aGUgcGVybWlzc2lvbiAoeWV0KSB0byBwdWJsaXNoIHRoZSBmb2xsb3dpbmcgZmlybXdhcmUtZmlsZXMuCllvdSdsbCBuZWVkIHRvIGV4dHJhY3QgdGhlbSBmcm9tIHRoZSB3aW5kb3dzIGRyaXZlcnMuCgpZb3Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlICJnZXRfZHZiX2Zpcm13YXJlIGR2Yi11c2IiIHRvIGdldCB0aGUgZmlybXdhcmU6Cgpmb3IgVVNCMS4xIChBTjIyMzUpIChhIGZldyBBcnRlYyBUMSBkZXZpY2VzKTogZHZiLXVzYi1kaWJ1c2ItYW4yMjM1LTAxLmZ3CmZvciBVU0IyLjAgSGF1cHBhdWdlOiBkdmItdXNiLW5vdmEtdC11c2IyLTAxLmZ3CmZvciBVU0IyLjAgQURTVGVjaC9Ld29ybGQgVVNCMi4wOiBkdmItdXNiLWFkc3RlY2gtdXNiMi0wMS5mdwpmb3IgVVNCMi4wIFlha3Vtby9UeXBob29uL0hhbWE6IGR2Yi11c2ItZHR0MjAwdS0wMS5mdwoKMS4yLiBDb21waWxpbmcKClNpbmNlIHRoZSBkcml2ZXIgaXMgaW4gdGhlIGxpbnV4IGtlcm5lbCwgYWN0aXZhdGluZyB0aGUgZHJpdmVyIGluCnlvdXIgZmF2b3JpdGUgY29uZmlnLWVudmlyb25tZW50IHNob3VsZCBzdWZmaWNpZW50LiBJIHJlY29tbWVuZAp0byBjb21waWxlIHRoZSBkcml2ZXIgYXMgbW9kdWxlLiBIb3RwbHVnIGRvZXMgdGhlIHJlc3QuCgpJZiB5b3UgdXNlIGR2Yi1rZXJuZWwgZW50ZXIgdGhlIGJ1aWxkLTIuNiBkaXJlY3RvcnkgcnVuICdtYWtlJyBhbmQgJ2luc21vZC5zaApsb2FkJyBhZnRlcndhcmRzLgoKMS4zLiBMb2FkaW5nIHRoZSBkcml2ZXJzCgpIb3RwbHVnIGlzIGFibGUgdG8gbG9hZCB0aGUgZHJpdmVyLCB3aGVuIGl0IGlzIG5lZWRlZCAoYmVjYXVzZSB5b3UgcGx1Z2dlZAppbiB0aGUgZGV2aWNlKS4KCklmIHlvdSB3YW50IHRvIGVuYWJsZSBkZWJ1ZyBvdXRwdXQsIHlvdSBoYXZlIHRvIGxvYWQgdGhlIGRyaXZlciBtYW51YWxseSBhbmQKZnJvbSB3aXRoaW5nIHRoZSBkdmIta2VybmVsIGN2cyByZXBvc2l0b3J5LgoKZmlyc3QgaGF2ZSBhIGxvb2ssIHdoaWNoIGRlYnVnIGxldmVsIGFyZSBhdmFpbGFibGU6Cgptb2RpbmZvIGR2Yi11c2IKbW9kaW5mbyBkdmItdXNiLXZwNzA0NQpldGMuCgptb2Rwcm9iZSBkdmItdXNiIGRlYnVnPTxsZXZlbD4KbW9kcHJvYmUgZHZiLXVzYi12cDcwNDUgZGVidWc9PGxldmVsPgpldGMuCgpzaG91bGQgZG8gdGhlIHRyaWNrLgoKV2hlbiB0aGUgZHJpdmVyIGlzIGxvYWRlZCBzdWNjZXNzZnVsbHksIHRoZSBmaXJtd2FyZSBmaWxlIHdhcyBpbgp0aGUgcmlnaHQgcGxhY2UgYW5kIHRoZSBkZXZpY2UgaXMgY29ubmVjdGVkLCB0aGUgIlBvd2VyIi1MRUQgc2hvdWxkIGJlCnR1cm5lZCBvbi4KCkF0IHRoaXMgcG9pbnQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHN0YXJ0IGEgZHZiLWNhcGFibGUgYXBwbGljYXRpb24uIEknbSB1c2UKKHR8cyl6YXAsIG1wbGF5ZXIgYW5kIGR2YnNjYW4gdG8gdGVzdCB0aGUgYmFzaWNzLiBWRFIteGluZSBwcm92aWRlcyB0aGUKbG9uZy10ZXJtIHRlc3Qgc2NlbmFyaW8uCgoyLiBLbm93biBwcm9ibGVtcyBhbmQgYnVncwoKLSBEb24ndCByZW1vdmUgdGhlIFVTQiBkZXZpY2Ugd2hpbGUgcnVubmluZyBhbiBEVkIgYXBwbGljYXRpb24sIHlvdXIgc3lzdGVtCiAgd2lsbCBnbyBjcmF6eSBvciBkaWUgbW9zdCBsaWtlbHkuCgoyLjEuIEFkZGluZyBzdXBwb3J0IGZvciBkZXZpY2VzCgpUT0RPCgoyLjIuIFVTQjEuMSBCYW5kd2lkdGggbGltaXRhdGlvbgoKQSBsb3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyBhcmUgVVNCMS4xIGFuZCB0aHVzIHRoZXkgaGF2ZSBhCm1heGltdW0gYmFuZHdpZHRoIG9mIGFib3V0IDUtNiBNQml0L3Mgd2hlbiBjb25uZWN0ZWQgdG8gYSBVU0IyLjAgaHViLgpUaGlzIGlzIG5vdCBlbm91Z2ggZm9yIHJlY2VpdmluZyB0aGUgY29tcGxldGUgdHJhbnNwb3J0IHN0cmVhbSBvZiBhCkRWQi1UIGNoYW5uZWwgKHdoaWNoIGlzIGFib3V0IDE2IE1CaXQvcykuIE5vcm1hbGx5IHRoaXMgaXMgbm90IGEKcHJvYmxlbSwgaWYgeW91IG9ubHkgd2FudCB0byB3YXRjaCBUViAodGhpcyBkb2VzIG5vdCBhcHBseSBmb3IgSERUViksCmJ1dCB3YXRjaGluZyBhIGNoYW5uZWwgd2hpbGUgcmVjb3JkaW5nIGFub3RoZXIgY2hhbm5lbCBvbiB0aGUgc2FtZQpmcmVxdWVuY3kgc2ltcGx5IGRvZXMgbm90IHdvcmsgdmVyeSB3ZWxsLiBUaGlzIGFwcGxpZXMgdG8gYWxsIFVTQjEuMQpEVkItVCBkZXZpY2VzLCBub3QganVzdCB0aGUgZHZiLXVzYi1kZXZpY2VzKQoKVGhlIGJ1Zywgd2hlcmUgdGhlIFRTIGlzIGRpc3RvcnRlZCBieSBhIGhlYXZ5IHVzYWdlIG9mIHRoZSBkZXZpY2UgaXMgZ29uZQpkZWZpbml0ZWx5LiBBbGwgZHZiLXVzYi1kZXZpY2VzIEkgd2FzIHVzaW5nIChUd2luaGFuLCBLd29ybGQsIERpQmNvbSkgYXJlCndvcmtpbmcgbGlrZSBjaGFybSBub3cgd2l0aCBWRFIuIFNvbWV0aW1lcyBJIGV2ZW4gd2FzIGFibGUgdG8gcmVjb3JkIGEgY2hhbm5lbAphbmQgd2F0Y2ggYW5vdGhlciBvbmUuCgoyLjMuIENvbW1lbnRzCgpQYXRjaGVzLCBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHZlcnkgdmVyeSB3ZWxjb21lLgoKMy4gQWNrbm93bGVkZ2VtZW50cwogICBBbWF1cnkgRGVtb2wgKGFkZW1vbEBkaWJjb20uZnIpIGFuZCBGcmFuY29pcyBLYW5vdW5uaWtvZmYgZnJvbSBEaUJjb20gZm9yCiAgICBwcm92aWRpbmcgc3BlY3MsIGNvZGUgYW5kIGhlbHAsIG9uIHdoaWNoIHRoZSBkdmItZGlidXNiLCBkaWIzMDAwbWIgYW5kCiAgICBkaWIzMDAwbWMgYXJlIGJhc2VkLgoKICAgRGF2aWQgTWF0dGhld3MgZm9yIGlkZW50aWZ5aW5nIGEgbmV3IGRldmljZSB0eXBlIChBcnRlYyBUMSB3aXRoIEFOMjIzNSkKICAgIGFuZCBmb3IgZXh0ZW5kaW5nIGRpYnVzYiB3aXRoIHJlbW90ZSBjb250cm9sIGV2ZW50IGhhbmRsaW5nLiBUaGFuayB5b3UuCgogICBBbGV4IFdvb2RzIGZvciBmcmVxdWVudGx5IGFuc3dlcmluZyBxdWVzdGlvbiBhYm91dCB1c2IgYW5kIGR2YgogICAgc3R1ZmYsIGEgYmlnIHRoYW5rIHlvdS4KCiAgIEJlcm5kIFdhZ25lciBmb3IgaGVscGluZyB3aXRoIGh1Z2UgYnVnIHJlcG9ydHMgYW5kIGRpc2N1c3Npb25zLgoKICAgR3VubmFyIFdpdHRpY2ggYW5kIEpvYWNoaW0gdm9uIENhcm9uIGZvciB0aGVpciB0cnVzdCBmb3IgcHJvdmlkaW5nCiAgICByb290LXNoZWxscyBvbiB0aGVpciBtYWNoaW5lcyB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbmV3IGRldmljZXMuCgogICBHbGVuIEhhcnJpcyBmb3IgYnJpbmdpbmcgdXAsIHRoYXQgdGhlcmUgaXMgYSBuZXcgZGlidXNiLWRldmljZSBhbmQgSml1bi1LdWVpCiAgICBKdW5nIGZyb20gQVZlck1lZGlhIHdobyBraW5kbHkgcHJvdmlkZWQgYSBzcGVjaWFsIGZpcm13YXJlIHRvIGdldCB0aGUgZGV2aWNlCiAgICB1cCBhbmQgcnVubmluZyBpbiBMaW51eC4KCiAgIEplbm5pZmVyIENoZW4sIEplZmYgYW5kIEphY2sgZnJvbSBUd2luaGFuIGZvciBraW5kbHkgc3VwcG9ydGluZyBieQoJd3JpdGluZyB0aGUgdnA3MDQ1LWRyaXZlci4KCiAgIFNvbWUgZ3V5cyBvbiB0aGUgbGludXgtZHZiIG1haWxpbmcgbGlzdCBmb3IgZW5jb3VyYWdpbmcgbWUKCiAgIFBldGVyIFNjaGlsZG1hbm4gPnBldGVyLnNjaGlsZG1hbm4tbm9zcGFtLWF0LXdlYi5kZTwgZm9yIGhpcwogICAgdXNlci1sZXZlbCBmaXJtd2FyZSBsb2FkZXIsIHdoaWNoIHNhdmVzIGEgbG90IG9mIHRpbWUKICAgICh3aGVuIHdyaXRpbmcgdGhlIHZwNzA0MSBkcml2ZXIpCgogICBVbGYgSGVybWVuYXUgZm9yIGhlbHBpbmcgbWUgb3V0IHdpdGggdHJhZGl0aW9uYWwgY2hpbmVzZS4KCiAgIEFuZHLpIFNtb2t0dW4gYW5kIENocmlzdGlhbiBGcvZtbWVsIGZvciBzdXBwb3J0aW5nIG1lIHdpdGgKICAgIGhhcmR3YXJlIGFuZCBsaXN0ZW5pbmcgdG8gbXkgcHJvYmxlbXMgdmVyeSBwYXRpZW50Lgo=